avatar
fc0o0ce

면접을 위한 CS 전공지식 노트: 디자인 패턴: 전략 패턴

면접을 위한 CS 전공지식 노트 / 1장. 디자인 패턴과 프로그래밍 패러다임
디자인패턴전략패턴
5 days ago
·
3 min read

책 내용을 정리하는 것이 아니라, 해당 범위에서 특별히 정리하고 싶은 내용이나 책을 읽으면서 들었던 궁금한 부분을 작성한다.

읽다가 갑자기 정리하고 싶은 내용을적기도 한다. 꼬꼬무,,,(꼬리에 꼬리를 무는 공부)

궁금한 부분에 대한 답변은 의문이 해소된 후에 작성한다 (영원히 작성되지 않을수도..)

정리

전략 패턴이란?

  • 전챡 패턴(strategy pattern) 또는 정책 패턴(policy pattern)이라고 함

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

passport 라이브러리의 전략 패턴

  • passport는 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() 메서드에 '전략'을 매개변수로 넣어서 로직을 수행한다


- 컬렉션 아티클






주 3회 블로그 업로드를 목표로!