2023. 1. 30. 23:04, TIL
오늘 진행한 것들 🤔
- 토이 팀 프로젝트
- 게시판 만들기 설계
- 데이터베이스 설계
- API 엔드포인트 설계
- 비즈니스 로직 설계
- 게시판 만들기 설계
- 개인 토이 프로젝트
- 테스트 코드 작성과 리팩토링
오늘 겪었던 문제 🤔
오늘 해결한 오류 🤔
오늘의 배운점🤔
- 처음으로 팀 설계를 진행해보았다.
- 확실히 같이 진행하는 인원이 있으면 재미도 두배, 안정성도 두배인것같다.
- 내가 개인 프로젝트를 진행할때 놓칠 수 있을만한 부분을 다 챙겨가는거같다.
- 특히 api를 설계할때, 기존의 개인 프로젝트는 단순한 틀만 만들고 꾸준한 수정을 진행했던 반면, 팀으로 진행하니 미리 여러 api들을 설계 후 진행해 크게 어려울게 없을것 같았다.
- 테스트 코드 작성
- 테스트 코드 작성에 대해서 대해서 새로운걸 알게되었다.
- 하나의 메소드가 하나의 책임만을 갖고있어야 한다는것.
- 해당 부분을 인지하고 테스트 코드를 작성할때, 알아서 코드도 리팩토링을 하게 되더라.
- 테스트코드를 매번 밀린 숙제 하듯이 작성했었는데, TDD의 필요성을 점점 느끼고있다.
- 팀프로젝트를 계속 진행할 일이 생긴다면.. TDD 방식으로 개발을 하는게 맞을까... 라는 생각을 꾸준히 해왔는데, 맞다 라는 쪽으로 기울어지고 있는것 같다.
- 내가 짜놓은 코드의 문제점에 대해서 또 한번 깨닳았다.
- 하나의 책임만을 갖고있어야 하는데, 메소드가 여러개의 행동을 동시에 진행한다던지, 그러한 비즈니스 로직이 여러개 존재했다.
- 마찬가지로 , 스프링이 여러 기능을 제공해주는데 단순히 자주 쓰는 기능만 사용하고, 다른 기능들은 찾아서 활용해볼 노력조차 하지 않고있었다.
- 대표적으로 어드바이스, AOP, 인터셉터이다.
- 인터셉터 같은 경우에는 매번 인증을 확인하는 절차라던지, 그걸 컨트롤러단에서 똑같은 코드를 몇번을 반복하며 처리하고있었다.
- 정말 쓸데없는 짓이었다. 인터셉터로 단순히 메소드 하나만 띡 만들어주면 그 반복되는 몇줄 혹은 몇십줄의 코드가 깔끔하게 처리되는것이다.
- AOP같은 경우에는 현재 프로젝트상 성능 확인이 필요한 부분 (캐릭터 상세 조회시에 한번에 10번 이상의 api를 호출함) 이라던가, 쨋든 공통적으로 처리되어야 하는 부분 (인터셉터와는 별개로)은 또 따로 메소드로 뺄 수 있지만, Util 클래스가 아닌 이상 주입을 시키기 애매한 클래스에서 동작하는 메소드가 존재할 때도 있다.
- 이럴때 AOP를 사용하여 적절한 행동을 실행하도록 정의 하고, 어노테이션만 붙여주면 공통적으로 실행하기 때문에 관리가 편해진다.
- 어드바이스 또한 글로벌 예외처리로 매번 꾸준히 컨트롤러에서 캐치를 해준다거나 할 필요 없이 따로 클래스 하나만 생성해 각 예외를 어떻게 잡을지만 처리한다면 문제가 해결된다.
- 공통적으로 공통된 행동을 분리시킴에 있어서 효과적인 방안을 제시해준다.
- 이래서 본인이 사용하는 프레임워크에 얼마나 이해도를 갖고있느냐가 결국 유지보수를 하기 쉬운 코드를 만들 수 있는 지름길이 된다.. 공부가 답이다.
- '객체지향'은 정말 코드를 짜면 짤수록 내가 더 부족함을 느끼게 하는 단어이다.. 나태해지지말고 꾸준히 해야겠다.
- 대표적으로 어드바이스, AOP, 인터셉터이다.
- 별개로 몇달동안 내가 코딩인지 코딩이 나인지 모를정도로 살아왔는데.. 점점 한계가 오는거같다. 이대로 가는게 맞는것일지.. 방안을 찾아봐야겠다.
- 내일도 화이팅!
- 테스트 코드 작성에 대해서 대해서 새로운걸 알게되었다.
'TIL' 카테고리의 다른 글
23-02-01~02 TIL (0) | 2023.02.03 |
---|---|
23-01-31 TIL (0) | 2023.02.01 |
23-01-29 TIL (0) | 2023.01.30 |
23-01-25~26 TIL (0) | 2023.01.26 |
23-01-20~23 TIL (0) | 2023.01.25 |
Comments, Trackbacks