프로그래밍 언어/Java + Kotlin

프로그래밍 언어/Java + Kotlin

[Kotlin] 쿠폰적용가 성능 개선기

1. 개요 지난 5월 지마켓 사이트 내 상품 상세 페이지에 쿠폰적용가(이하 VIP 쿠폰적용가)를 도입했었다. https://dev.gmarket.com/89 G마켓 쿠폰적용가 도입기 - 캐시를 중심으로 안녕하세요. 저는 Club & Discount Engineering 팀에서 지마켓 할인/쿠폰 개발 업무를 맡고 있는 윤영택입니다. 저는 올해 상반기에 G마켓 쿠폰적용가 개발에 참여했으며, 그 과정을 본 포스팅을 통해 나 dev.gmarket.com 사이트 내 쿠폰적용가를 노출하고자 하는 니즈가 늘어나면서 검색 결과 페이지에도 쿠폰적용가(이하 SRP 쿠폰적용가)를 도입하게 되었는데, 프로젝트를 진행하며 병목현상을 제거하여 성능을 향상한 경험을 공유하고자 한다. 기존의 VIP 쿠폰적용가에 비해 SRP 쿠폰적용..

프로그래밍 언어/Java + Kotlin

[Kotlin] 특정 프로퍼티 Json 직렬화/역직렬화 시 제외시키기

data class로 레디스에 객체를 역직렬화하는 과정에서 다음과 같은 에러가 발생했다. 에러 내용은 ttl이라는 필드가 non-nullable인데, 실제로는 null이 들어가서객체 생성에 실패했다는 것이다. Could not read JSON: Instantiation of [simple type, class ...] value failed for JSON property ttl due to missing (therefore NULL) value for creator parameter ttl which is a non-nullable type class는 대략 다음과 같은 형태였다. 분명 @JsonIgnore 애너테이션으로 직렬화/역직렬화에서 해당 프로퍼티를 제외했는데, 왜 직렬화/역직렬화에 포함된 ..

프로그래밍 언어/Java + Kotlin

[Java] 제네릭 타입 소거(Generic Type Erasure)에 대해 알아보자

1. 의미 타입 소거란 컴파일러가 제네릭 타입의 타입 파라미터 정보를 제거하는 것을 의미한다. 즉, 런타임 시점에 제네릭 타입 정보가 제거되는 것이다. , ,

프로그래밍 언어/Java + Kotlin

[Java] Collection과 Collections의 차이

1. Collection 인터페이스 Collection에 앞서 컬렉션 프레임워크(collection framework)에 대한 이해가 필요하다. 컬렉션 프레임워크란 다수의 객체(컬렉션)를 다루기 위해 자바에서 제공하는 표준화된 프로그래밍 방식이다. 컬렉션 프레임워크에서는 데이터를 저장하는 자료구조에 따라 List, Set, Map 등의 다양한 인터페이스를 정의하고 있다. Collection은 컬렉션을 다루기 위한 최상위 인터페이스로서 java.util에 정의되어 있다. List, Queue, Set 등이 Collection을 상속하는 반면, Map은 Key, Value라는 별도의 구조를 취하므로 Collection을 상속받지 않는다. 단순하게 생각해서 컬렉션 타입이 여러 개 있고, 이것들이 Collect..

프로그래밍 언어/Java + Kotlin

[Java] 생성자 총정리

1. 생성자란? 인스턴스가 생성될 때마다 호출되는 인스턴스 초기화 메서드 즉, 생성자는 인스턴스가 생성될 때 필드를 초기화하기 위한 것이다 생성자는 특별한 메서드로서 일반 메서드와 다음과 같은 차이를 지닌다 인스턴스 생성 시 자동으로 호출된다 반환값이 없으므로 리턴 타입을 명시하지 않는다 클래스 이름과 같기 때문에 일반 메서드와 다르게 대문자로 시작한다 2. 생성자의 특징 형태: 메서드 형태 리턴 타입: 리턴 타입을 선언하지 않는다 이름: 소속된 클래스 이름과 같다 역할: 필드의 초기화를 담당한다 호출 시기: 인스턴스 생성 시 자동으로 호출된다 // 생성자 선언 접근제한자 클래스명(매개변수) { 실행문; } // 예시 public Member(String name, int age) { this.name..

코택
'프로그래밍 언어/Java + Kotlin' 카테고리의 글 목록