목록개발일지/HELLO FOLIO (11)
Lsiron
대표적으로 최근에 포스팅 한, 이미지 업로드, 삭제 기능을 리팩토링 해 보겠다. 먼저, 초기 코드에서는 이미지 업로드와 삭제 기능이 myPageRouter.js 파일 안에 직접 구현되어 있었다. 이 코드 구조는 작은 프로젝트에서는 문제되지 않을 수 있지만, 프로젝트가 커지면서 유지보수가 어려워질 수 있다. 따라서 service와 controller 그리고 router로 나눠보려고 한다. 초기 코드의 문제점.관심사의 분리 부족: 업로드와 삭제 로직이 라우터와 함께 존재하므로, 코드가 복잡해지고 읽기 어려웠다.중복 코드: 비슷한 로직이 여러 곳에 반복되어 코드 중복이 발생했다.테스트 어려움: 모든 로직이 한 파일에 모여 있어, 개별적인 테스트가 어렵다.리팩토링의 주요 목표는 다음과 같다.코드 구조 개선: 관..
현재 폴더 구조web_project/├── db/│ ├── model # 각종 모델 폴더│ ├── schemas # 각종 스키마 폴더│ └── index.js # db 연결파일├── middleware/ # 각종 middleware 폴더├── passport/ # 로그인 관련 passport 폴더│ ├── strategies # 전략 구성│ └── index.js # 전략 exports 파일├── routes/ # 라우트 관련 폴더│ └── index.js # 라우트 exports 파일├── services/ ..
현재 폴더 구조web_project/├── db/│ ├── model # 각종 모델 폴더│ ├── schemas # 각종 스키마 폴더│ └── index.js # db 연결파일├── middleware/ # 각종 middleware 폴더├── passport/ # 로그인 관련 passport 폴더│ ├── strategies # 전략 구성│ └── index.js # 전략 exports 파일├── routes/ # 라우트 관련 폴더│ └── index.js # 라우트 exports 파일├── services/ ..
현재 폴더 구조web_project/├── db/│ ├── model # 각종 모델 폴더│ ├── schemas # 각종 스키마 폴더│ └── index.js # db 연결파일├── middleware/ # 각종 middleware 폴더├── passport/ # 로그인 관련 passport 폴더│ ├── strategies # 전략 구성│ └── index.js # 전략 exports 파일├── routes/ # 라우트 관련 폴더│ └── index.js # 라우트 exports 파일├── services/ ..