22.12.03.(토) TIL - 디자인패턴에 대한 첫 고민

22.12.03.(토) TIL - 디자인패턴에 대한 첫 고민

오늘은 <실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발>에서 주문 서비스 코드를 작성하였다.

  • 하다보니 강의를 보면서 코드를 작성하는 것보다 코드를 먼저 작성해보고 강의를 듣는 것이 코드와 강의를 이해하는게 더 좋은 것 같다.

  1. 강의를 들으면서 궁금했던 점은 entity에 비즈니스 로직을 넣어도 괜찮은지. 그리고 new XXX() 을 사용해서 인스턴스를 만들어서 사용하지 않는지에 대한 내용이었다.

  2. 그러면 import해온 entity는 어떻게 저장이 될까... 게다가 repository를 호출 안하고 주문 취소 로직을 작성하는데 어떻게 DB에 데이터가 수정이 될지에 대한 것이었다.

 

  • 2번 질문에 대한 대답은 JPA의 강점은 entity 내에서 바뀌는 값들을 알아서 쿼리를 만들어 db에 날려준다.(영한님 말로는 변경된 감지라고 한다.) 그러면서 1번 질문에 대한 대답은 인스턴스를 여기저기 생성하여 코드를 작성하면 나중에 유지보수가 어려워진다고 하였다. 요즘 읽고 있는 <심플 소프트웨어>에서 "둘은 너무 많다"는 내용이 떠올랐다. 똑같은 걸 나타내는 상수든 함수든 뭐든지 두 개 이상이면 하나도 만들라는 이야기이다.

 

  • 또 강의를 보면서 다른 분들이 적은 질문도 보는데 정적 팩토리 메서드, 프록시 같은 개념들도 나왔다. 공부하면 할 수록 더 공부해야되는게 많아지는 느낌이다. 내가 몰랐던 새로운 것들이 나타날 때 방대한 바다에서 헤어나오지 못해 허우적 되는 느낌이랄까...

 

  • 더 공부해야 할 것

    • JPA를 사용할 때는 도메인 모델 패턴

    • SQL를 사용할 때는 트랜잭션 스크립트 패턴

      • 사내에서는 myBatis를 쓰니 트랜잭션 스크립트 패턴을 더 보아야겠다.

 

  • 요약

    • 여러가지 디자인패턴에 대해 알게 되었다. 아직도 많이 모르고 있구나라는 생각이 든다. 그래도 지금이라도 알아서 다행이고, 나중에 연차가 쌓이면 이것들에 대해 진지하게 고민해보고 적용해 볼 날을 기대하며

    • 거인 위에 어깨에 올라타 있지만 내가 몰랐던 새로운 것이 나타날 때는 나는 작아진다.

    • 그래도 시간 지나 과거에 적은 TIL을 보면서 지난 날보다 성장했음에 뿌듯함을 느낄 날을 기대하면서 오늘도 공부하면서 성장하자.

 

 

댓글을 작성해보세요.