며칠 전에 팀 프로젝트 코드를 보다 주먹도끼로 뒤통수를 맞은 느낌이 든 코드를 보았다
내가 짠 건 아니고.. 팀원분이 짠 코드인데
이유를 설명하기 전에 내가 코드를 작성하는 법을 대충 적자면
1. 프론트단에서 필요한 데이터를 생각함
2. 레포지토리+sql구조가 어떻게 되어있는지 확인함
3. 각 레포지토리에서 정보를 가져오고 서비스에서 조합을 함
4. 조합한 코드를 하나의 오브젝트로 만들어 프론트단에 보냄
대충 이러하다 그런데 내가 뒤통수를 한 대 맞았다고 하는 건..
3번이 다르다,
3. 각 레포지토리에서 > sql에서 조인으로 가져와서 한방에 서비스에 보냄
별 거 아니다고 생각할 수도 있지만 데이터가 만개 오만 개 십만 개 늘어나는 상황을 가정하면
어린아이라도 조인문으로 sql에서 한 번에 가져오는 것이
네트워크 간의 통신도 최소화시킬 수도 있고
후처리에 필요한 시간도 줄일 수 도있고
코드도 더 짧아지는 것
이라는 것을 알 수 있다
아침에 비몽사몽 하면서 pull request 들어온 코드는 하나하나 쭉 읽다가
그 문제가 되는 코드 부분만 한 20분 보면서 생각이 많아졌다
"아, 이렇게 짜야하는데"
"아, 진짜.. 와.. 하 ;; "
그리고 내 코드들을 봤다
다수의 코드들은 한 테이블에서 들고 와서 그냥 where문으로 끝내 놓은 코드지만
몇몇의 코드를 보며
"아 이 쓰레기 코드 ㅠㅠ 조인으로 들고 오면 3배는 짧아졌겠다" 하면서 한 시간 동안 한탄을 했다
여하튼, 이제 최대한 코드를 효율적으로,
빠르게, sql + 서버 + 프론트 가 나누어진 이유를
더욱더 생각하면서 코드를 짜야겠다 라는 생각을 했다
강사님이 "팀 프로젝트 때 실력이 많이 상승한다"라는 말을 해주셨는데 그게 맞는 말인듯하다
실제로 나 혼자 공부했으면 이런 코드를 볼 수도 없었을 것이고..
그전에 이런 코드를 보고 이런 생각을 할 수 있을 만큼 성장을 할 수 있었을까 라는 생각도 든다
팀원분에게 감사한다, 종종 항상 내 생각의 틀을 깨 주고 좋은 코드를 보여주니.. 행복할 따름이다
'프로그래밍 > 팀프로젝트' 카테고리의 다른 글
[팀프로젝트 외전] 라이트세일, 스왑메모리, 내장톰캣 (0) | 2022.09.28 |
---|---|
:: 국비학원 팀프로젝트 7 - 골대가 보인다 (0) | 2022.09.24 |
:: 국비학원 팀프로젝트 6 - 시간과의 싸움 (0) | 2022.09.11 |
:: 국비학원 팀프로젝트 5 - 백엔드(3) (0) | 2022.09.03 |
:: 국비학원 팀프로젝트 3+1 - 백엔드.. 스프링부트.. 흑흑흑 (0) | 2022.08.28 |