목록전체 글 (122)
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/ ..
- 트랜잭션을 어떤 크기로 관리 할 것인지, 어떤 수준으로 컨트롤 할 것인지에 따라서 동시성 문제가 달라짐 - sql쿼리문으로 작성하는게 좋음 일단 prisma 같은 라이브러리는 사용하지 않는게 좋다. => prisma 사용하지말고 sql 쿼리문으로만 해보기 - 일반 회원가입을 빼고 구글 로그인으로만 하도록 구현하는게 좋음. 굳이 일반 회원가입과 일반 로그인을 넣지 않아도 됨. - 유저테이블에 구글아이디 이렇게 넣지말고 컬럼에 타입(네이버)과 타입아이디(네이버아이디)만 추가할것 - 일반 로그인도 없애는 방향이 좋음. 소셜회원가입과 소셜로그인만 구현할 것 => 구글이랑 네이버 소셜회원가입과 로그인만 추가 - user 테이블에 deleted_at 컬럼 추가 - 이메일과 이름 VARCHAR 타입에 자리 수 제..