전략 패턴 Strategy pattern

석준·2022년 8월 24일
0

Computer Science

목록 보기
3/6
post-thumbnail

전략 패턴

객체의 행위를 바꾸고 싶은 경우 '직접' 수정하기 보다 캡슐화한 알고리즘을 컨텍스트 안에서 바꿔주면서 교체가 되도록 만드는 패턴

전략 패턴(strategy pattern)은 정책 패턴(policy pattern)이라고 불리기도 한다.

컨텍스트: 프로그래밍에서의 컨텍스트는 상황, 맥락, 문맥을 의미하며 개발자가 어떤 작업을 완료하는 데에 필요한 모든 관련 정보를 말한다

JS의 전략패턴

passport는 Node.js에서 인증 모듈을 구현할 때 미들웨어 라이브러리로, 여러가지 전략(if문을 기반으로 한 함수)을 기반으로 인증할 수 있게 합니다.
username이 맞지 않다면 - 전략1
password가 맞지 않다면 - 전략2
err를 반환하는 전략을 사용합니다.

var passport = require('passport')
	, LocalStrategy = require('passport-local').Strategy;

passport.use(new LocalStrategy(
  function(username, password, done) {
    User.findOne({usernamm: 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);
    });
  }
  ));
profile
파이썬 서버 개발자 지망생

0개의 댓글