소요시간 : 1 ~ 2시간 사이
깃허브 : https://github.com/GoF9490/NodeToSpring-Board
GitHub - GoF9490/NodeToSpring-Board
Contribute to GoF9490/NodeToSpring-Board development by creating an account on GitHub.
github.com
정말 타이밍이 좋다고 해야할지, 전에 했던 작업에서의 오류, 그 외 개선사항 등등이 현재 제가 듣고있는 강의에서 그대로 나와서 간단하고 빠르게 몇개만 적용시켜서 리팩토링 했습니다.
코드 자체는 크게 변하지 않았지만 범위가 넓어서 바꾼 코드들 하나하나 올리기는 좀 그렇고, 무엇을 바꾸었는지 정도만 언급하고 바뀐 코드는 직접 깃허브 링크에서 확인해주시면 감사하겠습니다.
1. service 단계 코드들 인터페이스 생성, 다형성 적용. ( DI 는 autowired 로 구현해놓은 상태였습니다. )
2. ManyToOne 태그들 fetch 를 전부 LAZY 로 변경.
( 아마 댓글 갯수 카운팅하는 로직이 있어서 똑같이 전부 끌어오겠지만 나중에 그룹바이로 댓글 수만 카운팅해서 가져오는 방식의 로직을 따로 구현하게 된다면 성능개선을 노려볼 수 있을것 같습니다. )
3. Entity 객체들을 생성자에서 정적 팩토리 메서드 패턴으로 변경.
4. 핵심 로직을 기준으로 패키지 분리. ( 좀더 세분화가 필요할지 잘 모르겠네요. )
수업 내용, 강의 내용을 중심으로 간단하게 리팩토링 해봤습니다. 당장에 생각나는것은 id를 시퀀스방식으로 수정 정도의 리팩토링인데, 현재 수업 내용도 많고 강의도 들을게 많아서 언제 따로 찾아보고 적용할지는 잘 모르겠습니다. 수업 내용중에 언급되면 좋을텐데ㅎㅎ.
하여튼, 배운걸 바로 적용해 볼 수 있는 작업물이 있는것은 편하고 좋네요. 당분간은 배우는 내용을 위주로 이렇게 사소하게 기능구현 및 리팩토링을 진행하지 않을까 싶습니다.
'프로젝트' 카테고리의 다른 글
CodeStates / StackOverflow 프리프로젝트 1, 2주차 (0) | 2023.02.27 |
---|---|
토이프로젝트 / NodeToSpring - 페이징 기능 개선 (SqlResultSetMapping ) (0) | 2022.12.25 |
토이프로젝트 - NodeToSpring 3. controller (0) | 2022.12.04 |
토이프로젝트 - NodeToSpring 2. repository / service (C, R) (0) | 2022.12.04 |
토이프로젝트 - NodeToSpring 1. entity 설계 (0) | 2022.12.04 |