[Node.js] Video Streaming - 2

심심한코더 ㅣ 2024. 1. 20. 05:48

프로젝트의 진정한 시작! 각종 설정 파일 작성하기

이번 글은 조금 지루한 부분이자 단순한 개인 프로젝트를 할때는 꼭 필수는 아닌 그런 부분을 작성하겠습니다.

기본으로 있는 .gitignore 파일에 저는 필요한 부분을 조금 추가 하는 편인데 이건 사람마다 달라서 꼭 필요한건지는 잘모르겠네요

(수정 전)

# compiled output
/dist
/node_modules

# Logs
logs
*.log
npm-debug.log*
pnpm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# OS
.DS_Store

# Tests
/coverage
/.nyc_output

# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace

# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

(수정 후)

# compiled output
/dist
/node_modules

# Logs
logs
*.log
npm-debug.log*
pnpm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# OS
.DS_Store

# Tests
/coverage
/.nyc_output

# IDEs and editors
/.idea
.project
.classpath
.c9/
*.launch
.settings/
*.sublime-workspace

# IDE - VSCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json

# config
.dev.env
.prod.env

지금 글을 쓰는 시점에서 추가로 뭐가 더 필요한지 생각이 안나서 마지막에 3줄만 추가했습니다.

다음 추가 할것으로는 경로 typescript의 절대 경로 지정입니다.

깔끔한 코드를 위해서라면 저는 꼭 필요하다고 생각하는 부분중 한 가지입니다.

절대 경로 지정전에 파일 구조를 정하겠습니다.

제 방식만이 정답은 아니기 때문에 이부분은 넘어가셔도 괜찮습니다.

src
├── common
│   ├── dtos
│   ├── entities
│   ├── guards
│   └── interfaces
├── config
│   ├── app
│   ├── database
│   │   ├── postgres
│   │   └── mongodb
│   └── jwt
├── providers
|   ├── aws
│   │   └── s3
|   └── cache
│        └── redis
├── app.controller.ts
├── app.module.ts
└── main.ts

제가 생각하기에는 이게 괜찮은거 같아서 사용중입니다.

파일 구조에서 보이듯이 postgresql과 mongodb, redis를 사용해 볼 생각입니다.

그럼 절대경로를 지정하겠습니다.

절대 경로는 tsconfig.json 파일을 수정하면 됩니다.

// compilerOptions안에서

{
    "compilerOptions": {
        ...,
          "paths": {
          "@app/*": ["src/*"],
          "@app/common/*": ["src/common","src/common/*"],
          "app/databases/*": ["src/config/databases", "src/config/databases/*"],
          "@app/providers/*": ["src/providers", "src/providers/*"],

        }
    }
}

저는 회사에 사수가 없기 때문에 뭐가 더 좋은 방식인지는 모르겠지만 아무튼! 저는 이렇게 해보겠습니다.

더 좋은 방식이 있다면 제 글을 읽어 보시고 댓글을 달아주시면 감사하겠습니다.