oauth login 2

디자인 패턴을 적용한 oauth login 구현 Part 3

마지막으로 서비스 단에서 가독성이 더 좋고, 코드를 조금 더 재활용할 수 있도록 디자인 패턴을 적용해보자. 1. Strategy (전략 패턴) 전략 패턴은 중간에 추상화된 인터페이스를 하나 만들고, 필요에 따라 적절한 클래스에 속하는 인스턴스를 껴서 사용하는 방식이다. 덕 타이핑이라는 용어가 있는데, "만약 어떤 동물이 오리처럼 꽥꽥거리고, 뒤뚱거리면서 걷고, 수영하고 등등 오리가 하는걸 다 한다면 난 그걸 오리라고 취급하겠다" 라는 뜻에서 용어를 그렇게 정했다고 한다. 상황에 완전히 들어맞지는 않지만 나는 이 패턴을 이해하는데 도움이 되었다. 코드에 대입하자면 몇가지 함수가 정의된 인터페이스가 있고 (class와 비슷하다고 보면 된다.), 다른 클래스가 이 인터페이스에 정의된 함수를 다 가지고 있다면,..

Nodejs 2023.12.10

디자인 패턴을 적용한 oauth login 구현 Part 2

이어서 실제로 oauth login을 구현하는 코드를 짜보자. 1. 코드 작성 controller, service단을 주로 보게 될텐데, 내가 처음 카카오 api를 이용해 oauth login을 구현할 땐 다음과 같았다. 1-1. controller import { Controller, Get, Query, Res } from "@nestjs/common"; import { LoginService } from "./login.service"; import { ConfigService } from "@nestjs/config"; @Controller("login") export class LoginController { constructor( private readonly loginService: Logi..

Nodejs 2023.11.29