-
Notifications
You must be signed in to change notification settings - Fork 0
BE 코딩 컨벤션
msjang4 edited this page Nov 20, 2023
·
2 revisions
- 네이밍
- 함수명, 변수명 : cammelCase
- 클래스 : PascalCase
- 상수 : UPPERCASE_SNAKE_CASE
- 파일명 : lower-case.lower.ts
- 스타일
-
eslint
module.exports = { parser: '@typescript-eslint/parser', parserOptions: { project: 'tsconfig.json', tsconfigRootDir: __dirname, sourceType: 'module', }, plugins: ['@typescript-eslint/eslint-plugin', 'import'], extends: [ 'airbnb-base', 'airbnb-typescript/base', 'plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended', ], root: true, env: { node: true, jest: true, }, ignorePatterns: ['.eslintrc.js'], rules: { '@typescript-eslint/no-use-before-define': 'off', 'class-methods-use-this': 'off', 'import/prefer-default-export': 'off', '@typescript-eslint/interface-name-prefix': 'off', '@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/no-explicit-any': 'off', 'prettier/prettier': [ 'error', { endOfLine: 'auto', }, ], }, };
-
.prettierrc
{ "printWidth": 100, "singleQuote": true, "trailingComma": "none", "endOfLine": "auto", "prettier.tabWidth": 2 }
-
- Mongoose를 사용할 때 custom provider를 작성하지 않고 MongooseModule과 InjectModel을 사용합니다.
- Swagger 스펙 명시 시 데코레이터 대신 NestJS CLI를 최대한 활용하여 작성합니다.
@ApiProperty({ description: '유저 닉네임', example: '페이커' }) nickname: string;
/** * 유저 닉네임 * @example '페이커' */ nickname: string;
🤔 우리는 왜 이런 선택을 했는가?
김민조
장지호
- VersionCatalog 적용기
- Glide 와 Coil 은 각각 어떻게 이미지를 불러오는가?
- Third-Party-Library 없이 비디오 컷 편집 기능 구현하기
- Ktor 적용기 (feat.Ktor Generics Response Handler)
- ImageCropper 라이브러리 없이 구현하기
- AccessToken 재발급과 예외 처리 (feat.Ktor)
- Third-Party-Library 없이 영상으로부터 빠르게 프레임 추출하기 (feat.YUV)
조준장
- MediaPlayer와 ExoPlayer를 비교해보자!
- 비디오 스트리밍을 최적화 해보자!
- MVI를 뿌셔보자!
- ExoPlayer Lifecycle를 관리해보자!(feat.DisposableEffect)
장민석
하채리