TIL

9/7

iksadnorth 2023. 9. 7. 23:28

👣 개요

오늘은 주특기 2주차 시험을 봤다. 시험은 JPA 운용 능력에 대한 내용이 대부분이었다.

다대일 연관관계에 대해서도 물어보고 영속성 컨텍스트의 의미에 대해서도 물어봤다.
대충 이런 내용의 시험을 보고 그 이후에는 Lv 4 과제를 진행했다.

Lv 4 과제는 기존의 Spring Security를 적용하지 않은 상태의 인증, 인가 기능을
Spring Security를 이용해서 인증 인가를 구현하는 과제였다.

Lv 3까지의 과제 위에 인증, 인가를 구현한 필터를 단순히 올려놓으면 되는 구조였기 때문에
큰 어려움은 없었던 것 같다. 

그 이후 '자바 ORM 표준 JPA 프로그래밍' 책의 13장을 읽으며
OSIV에 대해 공부했다.
여태 동안 Controller에서 요구하는 데이터가 변경될 때마다 담아주는 DTO가 변경되다 보니
이에 맞춰 Service 코드를 변경하는 경우가 많았다.
예를 들어, 쇼핑몰 프로젝트에서 상품 검색 결과 페이지에는 굳이 상품 판매자이름을 적지 않아도 되었으나
이후 판매자 이름을 같이 올리면 좋겠다는 생각에 DTO에 상품 뿐만아니라 User 데이터도 넣을 수 있게 했다.
나는 항상 글로벌 패치 전략을 LAZY로 설정하기 때문에 Service에서는 지연 로딩하는 코드도 삽입하고
쿼리 최적화를 위해 심지어 Repository의 @Query까지 이용하니 의존성이 어마무시했다.

만약 내가 OSIV의 존재를 알았다면 그냥 DTO 내부 코드만 바꿨다면 Controller, Service, Repository 코드를 아예
건드리지 않고 코드 수정을 할 수 있었을 것이다. 앞으로 웹 사이트의 변동사항이 빈번하다면
OSIV를 최대로 활용해 빠른 유지보수를 유도할 계획이다.

마지막으로 시험 결과를 바탕으로 기술 매니저님과 상담을 진행했다.
비록 시험 결과에 대한 피드백을 위해 상담을 시작한 것이지만
매니저님과 '양방향 연관 관계, 트랜잭션에 대해 이해, 이력서 작성 요령' 등등에 대한 
이야기를 나눴다. 매니저님 덕분에 앞으로 기술을 공부함에 있어서
기술 사용 이유와 내가 선호하는 기술, 그리고 선호하는 이유 등등에 대해
정리해야 함을 깨달았다. 

뿐만 아니라 '차후 프로젝트에 챌린지팀으로 참여할지 서비스팀으로 참여할지'에 대해 이야기를 나누기도 했다.
매니저님께서는 어느 쪽으로 가던 상관없지만 기술 선택 이유는 분명해야 한다고 말씀해주셨다.
물론 백엔드 기술에 더 집중할 수 있는 챌린지 팀을 선택하는 것이 좋을 수도 있지만
프론트 개발자, 기획자와 소통할 수 있는 서비스 팀을 경험하는 것도 충분히 매력적이기에 결정하기 매우 어려운 것 같다.
내가 가고 싶은 회사들의 JD를 좀더 살펴보며 결정해야 겠다는 생각을 했다.

'TIL' 카테고리의 다른 글

9/9  (0) 2023.09.09
9/8  (0) 2023.09.08
9/6  (0) 2023.09.06
9/5  (0) 2023.09.05
9/4  (0) 2023.09.04