우테코 5기

레벨 1 레벨로그

teo_99 2023. 3. 30. 08:10

예외처리 메커니즘

  • 예외 메커니즘은 예외 상황의 문맥을 전달하기 위해 사용합니다.
  • 커스텀 예외란, 개발자가 직접 정의한 예외입니다.
  • 예외는 예외 상황에서만 사용해야 합니다.
  • 예외처리를 클라이언트에게 강제하고 싶은 경우, Checked Exception을 사용합니다.

디미터 법칙

  • 디미터 법칙이란 의존성을 관리하기 위한 한 가지 법칙입니다.
  • 디미터 법칙은 TDA(Tell, Don’t Ask)원칙을 준수하게 만듭니다.
  • 디미터 법칙은 대상이 자료구조라면 위반될 가능성이 없습니다.

추상 클래스, 인터페이스

  • 추상 클래스 상속(구현 상속)은 개념 면에서 밀접한 연관이 있는 객체들에게 사용합니다.
  • 인터페이스 상속은 개념적으로 관련이 없더라도 공통 행위를 정의하고 싶다면 사용합니다.
  • 인터페이스는 다중 상속이 가능합니다.

일급 컬렉션

  • 비즈니스에 종속적인 자료구조입니다.
  • 상태에 대한 행위를 한 곳에서 이루어지도록 합니다.
  • 명령-쿼리를 기타 로직으로부터 분리할 수 있으므로 코드의 가독성, 유지보수성이 개선됩니다.

MVC

  • UI와 비즈니스 로직을 분리하기 위해 고안되었습니다.
  • 컨트롤러, 뷰, 도메인(모델)은 각각 고유한 역할을 가집니다.

TDD

  • 실패하는 테스트를 먼저 작성하고, 해당 테스트를 통과할 만큼만 프로덕션 코드를 작성합니다.
  • 이후 리팩토링 과정을 통해 테스트, 프로덕션 코드를 개선합니다.
  • 위 과정을 끊임없이 반복하면 불필요한 코드, 작업이 스며들지 않고 필요한 기능만 구현하게 됩니다.

객체지향 설계란

  • 객체지향 설계가 기존의 설계와 다른 점은, ‘변경가능성’을 염두에 둬야 한다는 것입니다.
  • 변경에 유연한 설계를 만들기 위해서는 의존성을 적절히 관리해야 합니다.
  • 자주 변경될 수 있는 부분에 추상화를 적용시킬 수 있습니다.
  • 변경을 격리시키고 유지보수하기 좋은 코드를 만드는 것이 핵심입니다.