[토비의 스프링 3.1] - 1장 오브젝트와 의존관계

2020. 12. 2. 23:14개발공부/Spring

프로젝트를 진행하면서 '설계'가 중요하다는 것을 느꼈습니다. 스프링 프레임워크로 웹서비스를 만드는 건 뼈대를 가진 목재 구조의 집을 짓는 것과 비슷합니다. 시멘트를 깔기전에 보일러 열선도 깔아야 되고 차단제라던가 여러 설계들을 신경써야 되듯이 웹사이트 구현에 필요한 객체들 의존관계를 어떻게 형성하고 코드로 구현하는지 사전 설계가 50%는 차지 한다고 생각합니다.

그래서 참고할만한 책들을 찾았고 그 중에 우아한 형제 개발자로 알고 있는 저자 토비의 스프링이란 책을 도서관에서 빌려왔습니다. 오늘 너무 피곤해서 많이 읽지는 못했지만 디자인 패턴도 몇가지 알게 되었고 스프링 원리를 이해할 수 있었습니다. 프로젝트를 진행하는 과정에선 이론까지 정리하기엔 무리라서 이렇게 책으로 보완해나가니 도움이 돼줄것 같습니다. 

한번에 많이 하기보단 매일 꾸준히 보면서 스프링에 대한 이해를 높이는 게 목표입니다.

요약

  • 리팩토링을 염두해가며 코딩하자
  • TODO: 관계 설정의 분리부터 읽기

기록

  • 관심사의 분리: 같은 기능을 가진 객체들끼리 모이게 하고 다를수록 분리하는 개념
  • 리팩토링: 외부에 나타나는 기능은 같지만 내부 코드 구조를 수정에 용이하고 관리하기 쉽게 바꿔 중복이 적은 코드(참고도서: [리팩토링] 마틴 파울러 저)
  • 추상클래스를 사용하면 상속을 원하는 메서드만 골라서 서브클래스에 넘겨줄 수 있다.(템플릿 메서드 패턴)
  • 서브클래스에서 구체적인 객체 생성 방법을 결정하게 하는 것을 팩토리 메서드 패턴이라고 부르기도 한다.
  • 클래스의 분리: 다른 기능을 가진 클래스를 독립해서 생성함(UserDAO & GetConnection)
  • 독립된 클래스 간 추상화를 하기위한 가장 유용한 도구는 인터페이스임