개발일지
개발일지 43일차
index.ys
2023. 5. 3. 04:19
Node.js lv5 과제
- lv4 과제를 아키텍쳐 패턴을 적용하여 코드를 작성하였다.
라우터 분리
- router폴더에 index.js에서 분기설정별로 경로를 설정해준다.
router.use('/posts', [likeRouter, postsRouter, commentRouter]);
router.use('/', authRouter);
클래스 선언
const PostService = require("../services/posts.service")
const LikeService = require("../services/likes.service")
class PostsController {
postService = new PostService()
likeService = new LikeService()
}
모듈내보내고 불러오기
- 모듈로 서비스계층 내보내기
module.exports = PostService
오류
- 컨트롤러 계층에서 서비스 계층을 참조하지 못했을때 서비스계층이 모듈로 exports 되어있는지 확인해보거나, 생성한 객체에 오타가 없는지 확인해보는편이 좋다
- create 메서드를 사용시 Posts.UserId = null일 경우 userId : userId가 아닌 DB에 입력된 UserId : userId로 변경
const createPostData = await Posts.create({ UserId: userId, nickname, title, content });
느낀점
- 아키텍쳐 패턴을 적용하여 기능 별로 계층을 나누고 클래스를 선언하여 코드를 리팩토링 하였다. 계층별로 파일을 나누고 파일의 역할별로 코드를 작성하였는데, 어떤 파일에 어떤 코드를 작성하는지 감이 잘 오지 않았다. 강의에서 제공해준 코드를 보고 작성해보려고 했으나, 코드 몇줄만 보고 아키텍쳐 패턴을 이해하는게 조금 어려워서 미리 작성된 다른 분들의 코드를 참고하여 과제를 작성하였다. 다른 분들의 코드를 참고하여 과제를 작성하다보니 아키텍쳐 패턴의 전체적인 흐름을 이해하는데는 무리가 없었지만 세부적인 코드를 이해하는것이 조금 부족하다고 느꼈다. 실무에서 아키텍쳐 패턴이 어느정도 쓰이는지 모르고 어떨때 쓰이는지 아직 잘 모르지만, 객체지향이라는 새로운 코드 작성방법을 접한 만큼, 객체지향 프로그래밍에 대해서 공부하고 타입스크립트와, nest에 대해서도 조금씩 공부해야 겠다는 생각이 들었다.