인터뷰 레벨로그

ttomy·2023년 3월 29일
0
  • 전략패턴/의존성 주입의 사용 시 유의점
    아무거나 분리해서 주입받으려고 해서는 안된다.
    공통적인 것/변하지 않는 것은 두고 변경될 것에 대한 부분만 분리해야 한다. 변경의 여지가 거의 없는 부분에 괜히 썻다가 오히려 명료성이 떨어질 수 있다.
  • Null pointer Error유의하기
    NPE의 위험을 생각하며 프로그래밍해야겠다.
    고려해볼 방식들: EmptyPiece 같은 비어있다는 의미의 클래스 정의,
    값이 이미 있는 객체를 기준으로 검사하기, Optional의 사용
    명시적 NULL검사 등
  • Dto
    계층 간 데이터의 전달이 필요할 때, Dto를 사용하면 정보가 직접적으로
    노출되는 것을 막을 수 있다.
  • VO
    값을 나타내는 클래스를 두어 값을 도메인적인 단위로 사용하며, 불변성을
    부여할 수 있다.
  • equals(동일성과 동등성)
    반사성,대칭성,추이성,일관성,null검사... equals는 생각보다
    섬세하게 다뤄야 하는 메서드이다. hashCode도 같이 정의하자.
  • 커맨드 패턴
    동작에 대한 추상화/캡슐화를 할 수 있다.
  • 상태 패턴
    객체의 상태를 추상화해서 상태에 따라 달리 행동하는 구현이 가능하다.
  • 정적 팩토리 메서드
    기본 생성자를 막아 인스턴스에 대한 관리 가능, 메서드명 부여 가능
    다형성을 이용해서 인자에 따라 다른 하위객체 반환 가능
  • 일급 컬렉션
    컬렉션만을 가지게 포장하면 상태에 대한 검증을 넘겨 클라이언트는 로직에 더 집중가능하다. 어울리는 동작에 대한 책임도 넘길 수 있다.
  • 가변 vs 불변
    불변의 장점: 멀티쓰레드 안전, 실패 원자성 제공, 안정적인 공유 가능
    하다는 장점이 있다.
    불변의 단점: 새로운 객체를 만들때의 비용, 값이 조금만 바뀌어도 아예 새 객체를 만들어야 함.
  • 객체지향 solid원칙
    단일책임, OCP, 리스코프 치환 원칙, 인터페이스 분리 ,의존성 역전

0개의 댓글