본문 바로가기
🎥프로젝트/위코드 프로젝트

노드.js 초기환경세팅(express, typeorm)

by 하루하루 나아가기 2022. 11. 15.
반응형

프론트와 첫 기획회의를 마치고 백엔드 팀원과 함께 개발초기환경세팅을 진행했다. 

 

초기환경세팅이란?

 

웹 개발 프로젝트에 앞서 사용하는 패키지들을 정하고 세팅하는 시간이다. 혼자개발을 진행하면 아무툴을 선택해서 진행하면 되는데 팀프로젝트는 팀원들끼리 어떤 툴을 쓸지 상의하고 공통된 툴을 다운받는 시간이 필요하다. 일종의 커뮤니케이션 수단이 생긴 것이다. 이 시간을 통해 회사에 간다면 그 회사에 맞는 초기환경세팅이 매우 중요하고 잘해야겠다는 생각을 했다. 

 

어떤 것들을 설치했나?

 

nodemon, cors, dbmate, dotenv,morgan,mysql2, express, typeorm을 설치했다. 

 

nodemon - Node에서는 코드에서 수정이 일어났을 때, 코드의 수정 사항이 서버에 자동으로 반영되지 않는다. 즉, 코드를 수정하고 나면, 서버를 계속 다시 켜주어 한다. nodemon을 활용하면 저장을 하면 바로 서버에 적용이 된다. 이를 위해서는 package.json파일의 Scripts에 "start" : "nodemon app.js"를 추가해줘야 한다. 

 

cors - 백엔드와 프론트 서버가 서로 다른 도메인에서 운영되는 현재의 3세대 웹 서비스 환경에서는 동일한 출처에서만 리소스를 주고받을 수 없다. 따라서 이러한 SOP정책을 올바르게 의도한 요청에 한해서 다소 완화시켜 서로 간 통신을 가능케 해야 한다. CORS 설정은 서로 다른 두 개의 origin/domain 끼리의 데이터를 주고받게 하기 위한 설정이다. 이를 생략하면 CORS 정책 위반을 이유로 웹 브라우저 차원에서 서버 통신을 막는다. 

 

dotenv - 환경변수 관리

 

morgan - Node.js 서버로 구성된 웹 환경에서는 기본적으로 제공되는 로깅(네트워크 통신기록) 기능이 없기에, 로그(log)를 관리하기 위해서 외부의 서드파티/모듈/라이브러리를 사용할 것을 권장한다. 그중 Morgan은 npm에서 사용되는 로그 관리를 위한 여러 패키지 중 하나이며 많은 개발자들이 사용하고 있다.

 

Layered Pattern 적용

 

처음에 API를 만들 때는 app.js파일에서 모든 코드를 작성했다. 처음에는 코드량이 많아 뿌듯했다. 하지만 서버통신을 할 때 에러가 발생하면 어디서 에러가 났는지 찾기가 어려웠다. 이후 Layered Pattern을 배우고 이에 따라 분리해서 코드를 다시 작성을 했다. Layered 아키텍처는 코드를 논리적인 부분 혹은 역할에 따라 독립된 모듈로 나누어 구성하는 패턴이다. 각 모듈이 서로의 의존도에 따라 층층이 쌓듯이 연결되어서 전체의 시스템을 구현하는 구조이다.  보통 Presentation Layer, Business Layer, Persistence Layer로 구성된다. 

 

이러한 형태로 분리를 했다. 

 

느낀점

- 다시 초기환경세팅을 진행하려고 하니 예전에 배웠던 것들이 기억이 나지 않아 힘들었다. 이번 초기환경세팅을 통해 다시 한번 설치하는 패키지들에 대한 이해를 할 수 있었다. 

 

반응형

댓글