이번 한 주는 과도기였던 것 같다. 나도, 사수님도 정신없이 바쁘며(나는 왜바뻤을까?) 한주가 또 정신 없이 지나갔다.
9-3주차에는 사수님이 해보라고 던져주신 주제가 조금 계속해서 바뀌었다. 그래서 이거했다가, 저것 했다가, 또 다시 돌아왔다가 다시 다른것 했다가 왔다리 갔다리 했다.
받았던 과제
1. 지난 주에 작성한 쿼리 개선하기
filter()를 할 때의 작성쿼리를 개선해보라는 과제를 던져 주셨다. 해당 부분은 내가 작성했던 쿼리가 "조건을 추가 할 때마다 쿼리를 새로 날리는것이 아니냐?" 하는 의문에 시작된 부분이였다. 해당 부분은 테스트를 통해 쉽게 검증이 가능한 부분이였는데 근데 우리는 테스트가 없다..그리고 또 테스트를 작성하면 환경 문제가 터져서 테스트가 안돌아간다...(진짜 왜이런건지 의문이다..) 그래서 나는 쿼리 로그를 통해 확인을 했다.
확인 결과 쿼리는 lazy loading 때문에 맨 마지막 호출할 때(조건이 모두 추가되었을 때) 실행이 되었다. 그래서 이 부분에 대한 사수님께 이야기를 한 뒤, 어영부영..? 넘어갔다.
그리고 이번 경험을 통해 테스트의 필요성을 좀 더 느끼게 되었다..(테스트 작성하고싶다!!!)
2. SQL 공부하기
두번째 과제는 SQL 문법 정리 및 작성된 쿼리를 분석하고 설명하라는 과제였다. 나의 지금 상태는 SQL을 코딩테스트 문제풀이를 할 수 있는 수준이다.(완전히 다 풀이할 수 있는 수준은 아니지만 거의 왠만한것은 풀 수 있는 수준이다.) 그래서 나는 쿼리를 작성하는데 있어서 두려움(?)이 없었다.
하지만 문제는 당황스러운 레거시였다.(사실은 내가 문제인 것이지..) 레거시 코드는 관계형 데이터 베이스를 사용하지만, 관계가 없었다... 나는 키가 묶여있지 않은데 이걸 어떻게 요리를 해야하나,,, 하는 고민에 크게 빠졌고.. 근데 또 기존 쿼리 작성된 것을 보면 이해는 간다.. 근데 웃긴것은 그렇게 쿼리를 작성을 잘 못하겠더라.. 그래서 기초부터 다시하자는 마음으로, 정리를 다시 하기 시작했다.
3. 작성했던 쿼리를 Raw query로 작성하여 최적화 하기
나는 이 부분이 가장 힘들었다. Raw query를 작성해서 기능 구현을 한다는게... 너무 힘들었다. Row query에 조건을 추가하는것은 문자열로 WHERE 절에 조건을 추가하는 것인데.. 이렇게 하는게 최적화가 되는 것 이 맞나? 하는 고민때문에 가장 힘들었던 것 같다.
더 놀랐던 것은 기존의 php 레거시에서는 이 방법을 통해 WHERE 절에 조건을 추가하는 방식을 사용했다는 것.. (이게 최선이었을까.. 하는 충격이 있었다.)
4. 레거시 소스 코드 분석
이번 주 가장 즐거웠던 부분이 이 부분이다. 나는 다른사람의 코드를 보고 분석하고 이해하고 영감을 받는게 너무 재밌고 즐겁다. 도메인을 이해하면서 이 부분은 이렇게 작성될 것 같다는 생각을 갖게 되는데 실제 프로덕션 코드(현재 돌아가는코드)와는 어떤 차이가 있을까? 하는 생각도 들고, 무엇보다 책에서 보는 내용들을 많이 직접 볼 수 있어서 너무 좋다.(책의 내용을 더 이해하게 되고, 프로덕션 코드를 더 깊게 이해할 수 있다는 자신감이 생긴다!) 하지만 아직 전부 이해하고 정리를 할 수 있는 것은 아니다..! 그렇지만 좋다.. 행복하다... 해보고 싶던 것들을 마음 껏 할 수 있어서 너무 좋다..
느낀점
매주 그렇지만 이번 한주도 정신 없이 지나갔다. 매 주 정신 바짝 차려보겠다고 하지만 이게 생각보다 쉽지 않다.. 주어진 일에만 열심히 해도 하루 8시간이 순식간에 사라진다.. 출 퇴근 길에는 책을 보고, 퇴근하고 나서는 개인 공부를 하고있는데, 이젠 하루하루도 너무 짧다. 개인 공부를 기록하는데 이제 어느정도 틀도 잡혀가고, 공부한 내용, 그리고 공부할 내용을 잘 정리해서 남은 9월 알차게 보내야지!
'회고 > WIL' 카테고리의 다른 글
WIL 10-1 리눅스 공부, CS 공부, 정보처리 기사 공부, DB 스키마 분석 (0) | 2022.10.03 |
---|---|
WIL 9-4 도메인 분석과 이해 (0) | 2022.09.25 |
WIL 9 - 2주차 : 첫 API 작성 완료 (0) | 2022.09.09 |
WIL 8월 마감 , 9월 시작 (0) | 2022.09.04 |
[WIL] 클린아키텍처, 주간보고 (0) | 2022.08.21 |