과제리뷰를 하며 대체적으로 많이들 들었던 리뷰 세가지를 꼽았다.
이는 나 또한 바로 적용가능한 부분이고,
그만큼 중요하다고 생각해서 이를 토대로 바로 리팩토링해야할 요소들이라고 생각한다.
무분별한 Setter 금지
Setter를 굉장히 조심히 써야한다는 말을 들었었다.
왜냐하면 Setter가 있다는 것은 이 자료가 바뀔 가능성이 있다라는 것.
데이터의 무결성을 지키기 위해 Getter, Setter를 통해 멤버 변수에 접근하지만
요즘 실무에서는 거기서 더 나아가 Setter 자체를 조심하는 분위기다.
비즈니스 로직에서 자체적으로 접근하는 방식을 더 선호한다.
@NoArgsConstructor 신중히
비어있는 객체를 만들 수 있는 생성자를 명시한다는 의미이다.
무분별하게 만든다면 비어있는 객체가 생성되고 이는 객체들의 데이터의 일관성을 해칠 수 있다.
팔로잉유저가 팔로우하는 팔로워 유저 이 두 유저를 담을 중간테이블 역할의 엔티티로 만든 Follow 클래스이다.
이 경우에 두 유저가 무조건 들어있어야 하는데 위처럼 @NoArgsConstructor가 포함되어 있었다.
비어있는 follow객체를 생성할 위험이 있기에 이는 제거해 주는 것이 더 좋다고 본다.
Build가 있다면 적극 활용하자
HttpEntity나 여타 다른 클래스들에 builder를 제공하는 경우가 종종있다.
우선, 빌더를 제공하는 지 확인하고 인지해두고 이를 잘 활용하는 것이 기본적인 생성자를 통한 객체 생성보다
더욱 안정성을 가져간다고 한다.
이는 새로운 기술의 개념이라기보단 디테일이라고 생각한다. builder를 사용하지 않더라도 구현에는 문제가 없던 기존 프로젝트에 이를 활용한다면 이후의 안정성을 더 추가할 수 있으니 말이다.
지난 주에 느꼈던, 많을 것 같지만 뭔지 감이 오질 않는 나의 빈틈들이 몇몇 느껴졌다.
이제 슬슬 지금껏 배웠던 기술들을 통해서 나만의 사이트를 만들며 연습해나가고,
이를 통해 튜터님들에게 코드리뷰를 받고 빈틈을 채워 나가봐야겠다.
'TIL : Today I learned (or Week)' 카테고리의 다른 글
TIL 230804 : 테스트 코드의 막막함. (0) | 2023.08.07 |
---|---|
TIL 230803 : Test하며 자잘한 깨달음 몇 개 (0) | 2023.08.03 |
WIL 230723 : 익숙하면서도 낯선 팀플. (0) | 2023.07.25 |
TIL 230721 : HTTP 한번 짚고 넘어가기. (0) | 2023.07.25 |
TIL 230719 : CORS 첫 대면 (0) | 2023.07.20 |