Posts by Year

2021

[Kotlin Cookbook] Chapter7. 영역함수

March 30 2021

7장에서는 영역함수 let, run, apply, also에 대해 설명한다. 1. apply로 객체 생성 후에 초기화 객체를 사용하기 전에 생성자 인자만으로는 할 수 없는 초기화 작업이 피요할 땐 apply 함수를 사용한다. // apply 함수는 this를 인자로 전달하고 thi...

[Kotlin Cookbook] Chapter2. 코틀린 기초

March 20 2021

1. 코틀린에서 널 허용 타입 사용하기 널 허용(nullable) 타입은 안전 호출 연산자(?)나 엘비스 연산자(?:)와 결합해서 사용한다. // Person 클래스 class Person(val first: String, val middel: String?, val last...

맨 위로 이동 ↑

2020

[이펙티브 자바] 이왕이면 제네릭 메서드로 만들라

December 21 2020

클래스와 마찬가지로, 메서드도 제네릭으로 만들 수 있다. 매개변수와 타입을 받는 정적 유틸리티 메서드는 보통 제네릭이다. 예컨대 Collections의 ‘알고리즘’ 메서드(binarySearch, sort 등)는 모두 제네릭이다.

[이펙티브 자바] 인터페이스는 구현하는 쪽을 생각해 설계하라

December 13 2020

자바 8 전에는 기존 구현체를 깨뜨리지 않고는 인터페이스에 메서드를 추가할 방법이 없었지만, 자바 8 이후에는 기존 인터페이스에 메서드를 추가할 수 있도록 디폴트 메서드를 지원하기 시작했습니다. 디폴트 메서드를 선언하면, 그 인터페이스를 구현한 후 디폴트 메서드를 재정의하지 않은...

[이펙티브 자바] 상속보다는 컴포지션을 사용하라

December 02 2020

상속은 코드를 재사용하는 강력한 수단이지만 항상 최선의 방법은 아니다. 잘못 사용하게 되면 오류를 범하기 쉽다. 여기에서 말하는 상속은 “클래스가 다른 클래스를 확장(extends)하는” 구현 상속을 말한다. 클래스가 인터페이스를 구현하거나 또는 인터페이스가 또 다른 인터페이...

[이펙티브 자바] toString을 항상 재정의하라

November 26 2020

Object의 기본 toString 메서드가 우리가 작성한 클래스에 적합한 문자열을 반환하는 경우는 거의 없다. 이 메서드는 PhoneNumber@adbbd처럼 단순히 클래스이름@16진수로_표현한_해시코드를 반환할 뿐이다. toString의 일반 규약에 따르면, 간결하면서 사람이 ...

프로그래머스 - 타겟넘버

July 22 2020

프로그래머스의 코딩테스트 고득점 Kit의 DFS/BFS유형 문제들 중 Level 2 ‘타겟넘버’를 풀어보았습니다.

프로그래머스 - H-Index

July 16 2020

프로그래머스의 코딩테스트 고득점 Kit의 정렬유형 문제들 중 Level 2 ‘H-Index’를 풀어보았습니다.

프로그래머스 - 베스트앨범

July 14 2020

프로그래머스의 코딩테스트 고득점 Kit의 해시유형 문제들 중 Level 3 ‘베스트앨범’을 풀어보았습니다.

프로그래머스 - 위장

July 13 2020

프로그래머스의 코딩테스트 고득점 Kit의 해시유형 문제들 중 Level 2 ‘위장’을 풀어보았습니다.

[토비의 스프링] 6장(4) - 스프링의 프록시 팩토리 빈

July 10 2020

1. ProxyFactoryBean 자바 JDK에서 제공하는 다이나믹 프록시 외에도 편리하게 프록시를 만들 수 있도록 지원해주는 다양한 기능이 있다. 스프링은 프록시 오브젝트를 생성해주는 기술을 추상화한 팩토리 빈을 제공해준다.

[토비의 스프링] 6장(3) - 다이내믹 프록시와 팩토리 빈

July 09 2020

트랜잭션 경계설정 코드를 비즈니스 로직 코드에서 분리해낼 때 적용했던 기법을 다시 검토해보자. 트랜잭션 기능은 사용자 관리 비즈니스 로직과는 성격이 다르기 때문에 아예 그 적용 사실 자체를 밖으로 분리할 수 있다. 아래 그림과 같이 부가기능 전부를 핵심코드가 담긴 클래스에서 독립...

맨 위로 이동 ↑