Book
cs-for-interview
ch01_design_pattern
Part03 Strategy Pattern

전략 패턴

정리

전략 패턴이란?

  • 전챡 패턴(strategy pattern) 또는 정책 패턴(policy pattern)이라고 함
  • 객체의 행위를 바꾸고 싶은 경우 '직접' 수정하지 않고 전략이라고 부르는 캡슐화한 알고리즘을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴

passport 라이브러리의 전략 패턴

  • passport (opens in a new tab)는 Node.js에서 인증 모듈을 구현할 때 쓰는 미들웨어 라이브러리로, 여러 가지 '전략'을 기반으로 인증할 수 있게 한다
  • LocalStrategy 전략(회원가입된 아이디와 비밀번호를 기반으로 인증)과 OAuth 전략 등을 지원한다
var passport = require('passport')
    , LocalStrategy = require('passport-local').Strategy;
 
passport.use(new LocalStrategy(
    function(username, password, done) {
        User.findOne({ username: username }, function (err, user) {
          if (err) { return done(err); }
            if (!user) {
                return done(null, false, { message: 'Incorrect username.' });
            }
            if (!user.validPassword(password)) {
                return done(null, false, { message: 'Incorrect password.' });
            }
            return done(null, user);
        });
    }
));
  • passport.use(new LocalStrategy(...))처럼 passport.use() 메서드에 '전략'을 매개변수로 넣어서 로직을 수행한다