본문 바로가기
한화시스템 Beyond SW Camp/회고

한화시스템 Beyond SW Camp 12기_14주차 회고 (2025.02.24~2025.02.28)

by taeh00n 2025. 3. 3.

한화시스템 Beyond SW Camp 12기 14주차가 끝났다.

이번 주는 Sping Boot 수업이 끝났고 MSA에 대해서도 배웠다. Spring Boot 수업에서는 중요한 개념 중 하나인 동시성 제어와 N+1 문제 해결 방법을 배우면서 이를 실제 프로젝트에도 적용해보았다. N+1 문제를 해결하는 과정에서 단순히 fetch join이나 EntityGraph 등을 활용하는 것만이 아니라 연관 관계의 주인이 아닌 테이블에서 쿼리를 실행할 경우 예상과 달리 연관된 테이블들이 즉시 로딩 방식으로 동작하는 것을 발견했다. 처음에는 하나의 쿼리만 실행될 것이라고 생각했는데 실제로는 추가적인 쿼리들이 자동으로 실행되는 것을 확인할 수 있었다. 이 문제를 해결하기 위해 엔티티를 지연 로딩으로 실행하라고 명시적으로 애노테이션을 달아주기도 해봤지만 추가적인 쿼리들이 자동으로 실행되는 것은 막을 수 없었다. 이제 다음주에 MSA 수업을 마무리하고 백엔드 프로젝트를 계속 할텐데 

 

KPT(KEEP, PROBLEM, TRY)

Keep (현재 만족하고 있는 부분, 계속 이어갔으면 하는 부분)

● 프로젝트를 위한 계속적인 토론 하는 부분

이번 주에 백엔드 프로젝트의 더 나은 설계를 위해 의논을 하고 내가 생각하는 방식이 좋은 방식인지 아닌지에 대해 물어보고 고민해봤었다. 프로젝트를 위해 이렇게 의논하는 게 나중 프로젝트의 완성도를 이어갈 것이라 생각해서 계속해서 의논하는 것이 중요할 것 같다.

 

● 프로젝트에서 N+1 문제 해결

문제를 해결하는 과정에서 단순히 해결 방법을 적용하는 데 그치지 않고 구글링과 추가적인 학습을 통해 보다 깊이 있는 이해를 하려고 노력했다.

 

Problem (불편하게 느끼는 부분, 개선이 필요하다고 생각되는 부분)

● MSA 수업에 대한 이해 부족

MSA 개념을 학습했지만 경험이 부족하여 깊이 있는 이해가 어려웠다. 

 

Try (Problem에 대한 해결책, 실행 가능한 것)

● MSA 개념 정리 및 핵심만 학습

프로젝트로 인해 시간이 부족한 상황이므로, MSA를 깊이 있게 공부하기보다는 핵심 개념만 정리해놓고 백엔드 프로젝트 끝난 후 열심히 복습해야겠다. 

 

● 수업 때 보았던 영상 다시보기

수업 떄 보았던 배달의민족 MSA 발전기를 다시보며 MSA에 대한 개념을 조금 더 잡아야 할 것 같다.