전략 패턴
정리
전략 패턴이란?
- 전챡 패턴(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() 메서드에 '전략'을 매개변수로 넣어서 로직을 수행한다