나만의 MVC 프레임워크 만들기

이진호·2023년 1월 24일
0

01.나만의 MVC 프레임워크 만들기

ch01.강의소개

ch02.개발 환경 구성하기

  • tomcat
  • docker

ch03.객체지향 패러다임

테스트코드 실습

테스트 코드를 작성하는 이유?
  1. 문서화 역할
  2. 코드에 결함을 발견하기 위함
  3. 리팩토링 시 안정성 확보
  4. 테스트 하기 쉬운 코드를 작성하다 보면 더 낮은 결합도를 가진 설계를 얻을 수 있음
TDD
  • Test Driven Development(테스트 주도 개발)
  • 프로덕션 코드보다 테스트 코드를 먼저 작성하는 개발 방법
  • TFD(Test First Development) + 리팩토링
  • 기능 동작을 검증 (메소드 단위)
BDD
  • Behavior Driven Development (행위 주도 개발)
  • 시나리오 기반으로 테스트 코드를 작성하는 개발 방법
  • 하나의 시나리오는 Given, When, Then 구조를 가짐

객체지향 개념 다지기

객체지향 4가지 특징

1.추상화(Abstraction)
2.다형성(Polymorphism)
3.캡슐화(Encapsulation)
4.상속(Inheritance)

객체지향의 5가지 설계 원칙(SOLID)

1.SRP: Single Responsibility Priciple (단일 책임 원칙)
2.OCP: Open/Closed Principle (개방 폐쇄 원칙)
3.LSP: Liskov's Substitution Principle (리스코프 치환 원칙)
4.ISP: Interface Segregation Principle (인터페이스 분리 원칙)
5.DIP: Dependency Inversion Principle (의존성 역전 원칙)

객체지향 패러다임
  • 적절한 객체에게 적절한 책임을 할당하여 서로 메시지를 주고 받으며 협력하도록 하는 것
  • 점점 증가하는 SW 복잡도를 낮추기 위해 객체지향 패러다임 대두
  • 개인적으로 생각하는 두 가지 중요 포인트
    • 클래스가 아닌 객체에 초점을 맞추는 것
    • 객체들에게 얼마나 적절한 역할과 책임을 할당하는지
절차지향 프로그래밍 vs 객체지향 프로그래밍
  • 책임이 한곳에 집중돼 있는 방식 (getter)
  • 책임이 여러 객체로 적절히 분산돼 있는 방식

high cohesion, loose coupling

  1. 도메인을 구성하는 객체에는 어떤 것들이 있는지 고민
  2. 객체들 간의 관계를 고민
  3. 동적인 객체를 정적인 타입으로 추상화해서 도메인 모델링 하기
  4. 협력을 설계
  5. 객체들을 포괄하는 타입에 적절한 책임을 할당
  6. 구현하기

참고

  • 객체지향 세계에서는 모든 객체가 능동적인 존재

출처

0개의 댓글