본문 바로가기

전체 글109

zod로 타입 검사하기 목차1. zod란?2. 왜 zod로 타입검사를 할까?3. 타입들과 메서드4. 사용법1. zod란?Typescript의 스키마 선언 및 데이터 검증을 위한 유효성 검증 라이브러리자바스크립트와 같은 동적 프로그래밍 언어를 사용하여 프로그래밍을 할 때 중요하게 다루어야할 문제 중 하나가 데이터의 타입과 유효성을 검증하는 것이다. 자바스크립트는 해당 타입의 문제를 해결하기 위해 Typescript를 사용하는데 이것만으로는 부족한 부분이 있다. 왜 사용하는지, 어떻게 사용하는지 알아보고 필요할 때 적절히 사용해보도록 하자.2. 왜 zod로 타입검사를 할까?typescript에서는 type을 통해 생성한 DTO, interface 등 검증을 위한 방법이 있다. 그럼에도 불구하고 왜 zod를 사용하는 것일까?type.. 2024. 7. 25.
passport 목차1. passport라이브러리?2. 사용법1. passport 라이브러리OAuth를 사용하기 위한 node의 인증 미들웨어기존에 OAuth를 사용하여 인증을 할 때 코드를 통해 토큰을 발급받고 그 토큰으로 사용자의 정보를 가져오는 등 과정이 복잡하였다. 이러한 과정을 간소화하고 필요한 정보를 사용할 수 있도록 하기 위해 개발되었다. 2. 사용법1) 설치passport는 외부모듈이기 때문에 설치를 해주어야 한다.npm i @nestjs/passport passport passport-google2) 모듈모듈에서 passportModule을 가져와 사용할 수 있도록 포함시키고 Strategy에 대한 의존성을 추가해준다.@Module({ imports: [PassportModule], controlle.. 2024. 7. 24.
AOP 목차1. AOP란?2. OOP와 차이3. 어떻게 구현할까?1. AOP란?Aspect Oriented Programming관점 지향 프로그램공통 사항과 핵심 비즈니스 로직을 분리하여 공통 사항을 모듈화하는 프로그래밍 방식코드를 작성하다 보면 로깅이나 권한 인증같이 중복되는 코드가 발생할 수 있다. 이런 중복되는 코드들을 따로 분리하여 관리하면 전체적인 코드의 양이 줄어드니 가독성이 높아지고 유지보수가 좀 더 편해질 것이다.  1) 개념▶ 관점(Aspect): 공통의 관심사를 캡슐화하는 모듈입니다.    ex) 로깅, 보안, 트랜잭션 관리 등 ▶ 조인 포인트(Join Point): 코드에서 관점이 적용될 수 있는 지점▶ 포인트컷(Pointcut): 어드바이스가 적용될 조인 포인트를 정의하는 표현식▶ 어드바이.. 2024. 7. 23.
HTTP의 상태코드 목차1. 상태코드란?2. 코드별 의미3. 상태코드를 임의로 추가하기1. 상태코드란?HTTP 상태 코드는 클라이언트가 서버에 요청한 작업이 완료되었는지 알려주는 지표로 웹에서 클라이언트와 서버 간의 통신을 표준화하고, 양측이 서로의 상태를 명확하게 이해할 수 있도록 하기 위해 만들어졌다. 2. 코드별 의미1) 1XX▶ 클라이언트가 요청한 작업을 처리중임을 알려주는 코드① 100 Continue클라이언트가 요청을 계속 보내도 된다는 의미② 101 SwitchingProtocols서버가 클라이언트가 요청한 프로토콜로 전환중임을 나타내는 의미HTTP/1.1 -> webSocket 2) 2XX▶ 클라이언트의 요청이 성공적으로 완료되었음을 알려주는 코드① 200 OK요청이 성공적으로 처리되었음을 의미GET요청의 응.. 2024. 7. 22.