회고

항해 플러스 2주차 회고

반응형

2주차 발제 주제는 아키텍처로 나에겐 정말 낯선 주제였다. 

 

그동안 개발을 진행해 오면서 사실 아키텍처 부분에 있어서 심도 있게 고민해 본 적이 없었던 것 같다.

웹 개발을 조금이라도 배워봤으면 모두 다 알고 있는 레이어드 아키텍처 인생을 살고 있었기 때문에  당연하다는 듯이 레이어드 아키텍처를 사용해 왔다.

 

클린 아키텍처, 헥사고날 아키텍처는 얼핏 들어보기는 했지만 엄청난 패키지 구조를 보고 쉽게 이해하지 못했었다. (클린 아키텍처와 헥사고날 아키텍처의 차이점이 사실 아직 좀 애매한 것 같다.)

이번 주차 과제는 클린 + 레이어드 혹은 원하는 아키텍처를 선택하여 수강신청 API 를 구현하는 과제로 진행되었으며 과제를 진행하면서 정말 엄청난 일들을 경험했다.

 

우선 과제를 진행하기에 앞서서 이번 기회에 클린 아키텍처에 대해서 공부를 하기위해서 '만들면서 배우는 클린 아키텍처 - 톰 홈버그' 책을 구입해서 빠르게 읽었는데 책 제목은 클린 아키텍처지만 실제로 책에서 다루는 예제의 아키텍처는 헥사고날 아키텍처였다. 그래서 예제를 참고하여 헥사고날 아키텍처로 과제 진행을 했다.

 

헥사고날 아키텍처 구조로 과제를 시작하면서 정말 고민이 많았던 어려웠던 부분이 3가지 정도 있다.

 

- 패키지 구조와 어뎁터 & 포트 개념

- spring & jpa로 개발을 진행했는데, 서비스(도메인) - 엔티티(영속성) 분리를 해서 개발을 하다 보니 jpa의 dirty cache를 사용하기 힘들었던 점

- 동시성 통합 테스트 코드를 작성하면서 테스트 코드에서 서비스 객체를 new로 생성하면서 @Transactional 오류..

(spring starter가 로딩되면서 @Transactional 이 있는 코드는 프록시 객체를 생성하는 과정에서 테스트 코드에서 서비스 객체를 new로 생성하는 삽질..)

이 과정 덕분에 @Transactional에 대해서 다시 한번 공부를 하게 되었지만 머릿속에 쉽게 들어오지 않는다... 시간 날때 제대로 다시 한번 공부를 해야되겠다.

 

 

 

 

 

 

 

 

 

반응형

'회고' 카테고리의 다른 글

콘서트 예약 프로젝트 회고  (0) 2024.04.18
항해 플러스 4주차 회고  (0) 2024.04.13
항해 플러스 3주차 회고  (0) 2024.04.08
항해 플러스 1주차 회고  (0) 2024.03.28
항해 플러스 백엔드 과정 합류  (0) 2024.03.17