일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 3계층구조
- secret코드
- 쿼리스트링
- JWT 쓰는 방법
- 알림생성모듈
- 토큰
- N+1
- 패스파라미터
- 네비게이션 한번에
- 포트번호
- 스테이지어스
- JWT
- JSON Web Token
- Winston
- .env
- 이미지가 포함된 게시글
- route 53
- JWT 쓰는이유
- 환경변수
- element.style
- 레포지토리
- 메뉴바 한번에
- unnest
- N+1문제
- 부트캠프
- 알림생성
- 게시글 이미지
- 메뉴바
- getComputedStyle
- 게시글 이미지 업로드
- Today
- Total
목록TIL (40)
기주
모듈 분리, 서비스 코드 분리 기준에 대해 생각해보자 각각 언제해야할까? 예를들어 댓글 CRUD기능과 댓글 좋아요기능이 있다고 가정해보자 그럼 1. 댓글 CRUD기능과 댓글 좋아요 기능의 서비스 코드를 분리해야할까? -> 특정 서비스내의 메서드들 중에서 어떤 것은 export를 해야하고 어떤 것은 export를 할 필요가 없다(해서는 안된다). 이때 각 메서드들은 별도의 클래스로 분리해야한다( 객체지향설계 SOLID 중 인터페이스 분리 원칙) (인터페이스 분리 원칙 : 클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다는 원칙이다. -> 사용하지않는 불필요한 메서드 들은 가져오면 안된다. 꼭 필요한 메서드들만 주입 받아야한다 ) 2. 댓글 CRUD기능과 댓글 좋아요 기능의..
의존성 주입을 쓰는이유 1. 클래스간 결합도를 낮출 수 있다 -> 결합도를 낮춘다는 것(의존성을 줄인다는 것)은 변화에 강하다는것 객체의 생성과 사용을 분리한다 다른 객체를 직접 생성하지않고 외부에서 필요한 객체를 주입받기 때문에 각 역할을 분리할 수 있다 2. 테스트가 가능하다* -> 테스트코드를 작성하는 것은 별도의 모의 객체를 생성하고 그 객체의 함수가 어떤 값을 반환한다고 가정한다(모킹) -> 이것도 의존성을 낮춰줘서 가능한일. 의존성 주입을 하지않으면 모의 객체의 함수를 모킹하는것이 아니라 실제 클래스의 함수를 가져와야하는데, 그럼 문제가 발생한다. 실제로 동작하면 안되는 것들이 동작하게 될 수 있다. 실제객체가 아닌 모의객체를 이용한 테스트가 가능해진다 (예시1 : db연결이 실제..
왜 swagger를 쓰는가?) swagger 를 사용하면 api명세서를 코드내에서 자동으로 쓸 수 있게해준다 api가 많아질경우 api명세서를 쓰는 시간을 훨씬 더 단축시킬 수 있고, 백엔드 작업을 하다보면 놓친부분이나, api명세서 변경이 꽤 많이 일어난다. 그럴때마다 코드와 api명세서를 둘다 수정하는 것은 시간도 오래걸리고, 만약 코드만 수정하고, api명세서 수정하는 것을 깜빡하면 프론트엔드쪽에서는 잘못된 명세서를 많은 시간을 낭비하게된다. swagger 설치하기 npm install --save @nestjs/swagger main.ts에 swagger 적용하기) main.tsimport { NestFactory } from '@nestjs/core';import { Swag..
nest project를 실행할때 에러가 발생했다. ReferenceError: exports is not defined in ES module scopeThis file is being treated as an ES module because it has a '.js' file extension and '/Users/kiju/dev/study/crime-city/package.json' contains "type": "module". To treat it as a CommonJS script, rename it to use the '.cjs' file extension. package.json에 "type" : "module" 을 지웠더니 해결되었다 참고)https://stackoverflo..
Express static 미들웨어 express 에서 기본적으로 제공하는 미들웨어이고, express 객체안에서 바로 꺼내 쓸 수 있다정적파일인 이미지, css, javascript등 파일을 쓸때 사용한다 지정된 디렉토리에서 파일을 찾아서 클라이언트에게 제공한다 이 미들웨어를 통해 정적파일에 restful한 방식으로 접근할 수 있다. 사용법 예시1)app.use('요청경로', express.static('실제경로'));app.use('/', express.static(path.join(__dirname, 'public'))); app.use('/', express.static(path.join(__dirname, 'public')));ㄴ 현재 위치한 파일에 대한 절대경로 + '/public' => 이..
- nonserial schedule(논시리얼 스케쥴) : 트랜잭션이 순차적이지않고 겹쳐서 실행되는 스케쥴 장점) 트랜잭션이 겹침 동시성이 올라간다 (성능이 향상된다) I/O작업마다 다음 트랜잭션 동작 실행한다 (I/O 입출력 작업은 CPU가 유휴상태로 있는 작업이다. 그래서 CPU가 유휴상태로있는 시간동안 다른 트랜잭션의 동작을 실행함으로써 CPU의 유휴시간이 줄어들고 성능이 좋아진다.) 단점) 결과가 이상해질 수 있다 (동시에 트랜잭션을 수행하다보니 잘못된 값을 읽거나 써서 결과가 이상해질 수 있다) - serial schedule(시리얼 스케쥴) : 트랜잭션이 순차적으로 수행되는 스케쥴 장점) 결과가 이상해질 가능성이 없다 (하나의 트랜잭션이 완전히 끝나고 다음 트랜잭션이 수행되기때문에 결과가 이상..