Skip to content

20201130

HYUNJUN SON edited this page Dec 7, 2020 · 1 revision

201130 스터디

Jack

  • 오랜만에 참여했고 성장하는 회사할 수 있다는 기대가 된다. 회사 언어도 코틀린이라 만족스럽다.

Han

  • 12월 전에 수습 결과가 나온다. 긴장된다. 다른 분이 수습을 통과못해서 걱정도 된다.

Sunny

  • 토요일 코테 봤는데 잘 못 봐서 아쉽다. 12.18에 면접 대기 중.

David

  • 프로젝트가 너무 힘들었다. 텔레그렘처럼 e2e 암호화를 함께 구현했다.

Items

[아이템 31] 한정적 와일드카드를 사용해 API 유연성을 높이라

  • 생산자와 소비자의 개념이 헷갈린다 -> 생산자는 새로운 원소를 기존 컬렉션에 넣어야 하니 기존 원소들보단 하위 타입이어야 한다. 소비자는 기존 컬렉션에서 사용되서 리턴하니 기존 원소보다 상위 타입이다.

[아이템 32] : 제네릭과 가변인수를 함께 쓸 때는 신중하라

  • 이 varargs 매개변수 배열이 호출자로부터 그 메서드로 순수하게 인수들을 전달하는 일만 한다면 그 메서드는 안전하다. 하지만 신중하라는 말에서처럼 모르면 잘 쓰지 않는게 낫을 것 같다.

[아이템 33] 타입 안전 이종 컨테이너를 고려하라

  • 타입 안전 이종 컨테이너는 굳이 map이 아니더라도 키를 타입 객체화하는 것을 의미한다.

[아이템 34] int 상수 대신 열거 타입을 사용하라

p.210 세번째 문단. 열거 타입에 새로운 상수를 추가하거나 순서를 바꿔도 다시 컴파일하지 않아도 된다. 공개되는 것이 오직 필드의 이름뿐이라 정수 열거 패턴과 달리 상수의 값이 클라이언트로 컴파일되어 각인되지 않기 때문이다.

-> 컴파일러는 각 enum의 이름 공간을 기억한다. 반면에 정수 패턴은 순서로 기억한다. 그래서 컴파일을 다시 할 필요없다는 의미는 이름으로 기억하니 순서가 바껴도 컴파일을 다시 할 필요가 없다는 이야기이다.

[아이템 35] ordinal 메서드 대신 인스턴스 필드를 사용하라

  • 인스턴스 필드로 잘 쓰자!