개발 블로깅
-
[2019.06.10] Serverless framework를 이용하여 lambda 배포하는 법개발 블로깅/Server&DataBase 개념 2019. 6. 11. 01:41
AWS에서 제공하는 lambda를 serverless framework를 이용하여 배포하는 법을 알아보자. serverless란 lambda를 AWS에 배포하는 작업을 더욱 쉽게 작업할 수 있도록 도와주는 프레임워크이다. #서버리스 모듈 설치 $ npm i -g serverless lambda를 이용하기 위해서는 AWS에서 IAM 계정을 연동해줘야 한다. AWS 사이트에서 IAM계정을 생성한다. # IAM 계정 생성하는 법 '서비스 찾기'에서 IAM를 검색하면 바로 나온다. 'IAM 리소스' 중 '사용자'를 선택한다. '사용자 추가'를 선택한다. IAM 계정에 등록할 사용자 이름을 자유롭게 입력한다. 하위의 액세스 유형을 체크하고 '다음:권한' 버튼을 클릭한다. 상단의 세 개의 탭 중 마지막 탭인 '기존..
-
[2019.06.07] 오늘의 TIL - typeScript 빌드 후, js파일이 여전히 .ts파일을 참조하는 문제개발 블로깅/오늘의 TIL 2019. 6. 7. 19:58
어느정도 API를 구현하고 드디어 AWS에 올리려고 ts파일을 빌드를 해봤다. 다행히도 빌드는 이상없이 잘 됐다. 그러나 빌드 후, js파일을 돌리니...js파일의 모든 import 경로가 ts파일 경로를 가리키고 있는 것이다... import 경로를 '../'와 같이 상대경로로 지정하는 방식으로 한 문제 말고는 도저히 ts파일을 가리킬 이유가 없었다. js파일코드를 확인해 봐도 이상이 없고...고치고 싶어도, 빌드과정으로 생긴 코드여서 너무 복잡하고 알아볼 수가 없었다..ㅜ.ㅜ 엔지니어 분께 도움을 요청하니, 아마도 빌드 후에도 코드 내의 상간관계가 풀리지 않아서 그런것 같다고 하셨다. 해결방법 node를 루트에서 실행시키지 말고, 빌드된 디렉토리로 가서 직접 실행 시키는 방법 __dirname 등의 ..
-
[2019.06.06] 오늘의 TIL - TypeORM relation column update하는 방법개발 블로깅/오늘의 TIL 2019. 6. 6. 20:12
난 오늘도 열심히 삽질을 한다.... passport도 나를 그렇게 힘들게 하더니... 이제 API를 좀 만들어 보려고 하니까 TypeORM이 나를 괴롭힌다..흑흑.. 아래와 같은 테이블이 구성되어 있다고 가정한다. post.ts class post extends BaseEntity{ @PrimaryGeneratedColumn() id: number; @ManyToOne(type => Categories, categories => categories.post) categories : Categories } 테이블 [id int(11), categoriesId int(11)] 그러면 post를 select 할 때는, 실제 테이블에서 칼럼명이 categoriesId인 것이 categories로 associa..
-
[2019.06.04] 오늘의 TIL - passport로 Facebook 로그인 시 cors 에러가 나던 문제개발 블로깅/오늘의 TIL 2019. 6. 4. 18:53
passport... 이녀석 정말 한 번 적응하기 너무 어렵다..ㅜㅜ 어제도 이녀석 때문에 밤새 나를 괴롭혀놓고, 오늘도 오전 내내 나를 괴롭힌 또 다른 문제가 하나 있었다.. facebook strategy 방식의 로그인 기능을 구현하려고 passport로 구성시켰다. passport.use( new FacebookStrategy(facebookCredentials, function( req: any, accessToken: any, refreshToken: any, profile: any, done: any ) { console.log(profile); done(null, profile); // profile이 facebook을 통해 계정 정보를 담고있는 변수 }) ); 웹 브라우저 주소창에 해당 라..
-
[2019.06.04] 오늘의 TIL- 암호화 bcrypt.compare가 무조건 false로 나던 문제개발 블로깅/오늘의 TIL 2019. 6. 4. 18:24
회원가입 및 로그인 기능을 작업하던 중.. 회원가입 할 때 입력한 패스워드를 bcrypt 라이브러리를 이용하여 해싱 시키고 데이터베이스에 저장을 하였다. var password = '1q2w3e4r'; var hash_password = await bcrypt.hash(password, 10); // 비동기 함수 그리고 로그인 시, 로그인을 위해 입력한 패스워드랑 DB에 저장되어있던 해싱된 패스워드가 유효한 지 확인하기 위해 bcrypt.compare()함수를 이용하였다. var check = await bcrypt.compare('1q2w3e4r',/* 해쉬된 패스워드*/); 새로 입력한 패스워드 '1q2w3e4r'가 기존에 해싱시킨 패스워드와 같으면 true, 아니면 false를 반환한다. 그런데, ..
-
[2019.06.04] 오늘의 TIL - passport deserializeUser 호출이 안되는 문제(postman은 정상작동하고 브라우저에서는 안되는 문제)개발 블로깅/오늘의 TIL 2019. 6. 4. 09:56
어제 밤새 꽁꽁 싸매던 문제가 하나 있었다. passport.serializeUser(async function(user, done) { done(null, user); }); passport.deserializeUser(function(user, done) { done(null, user); }); passport.use( "local", new LocalStrategy( { usernameField: "Email", passwordField: "password", session: true }, async (username, password, done) => { /* 유효한 계정인지 조회 */ done(null, user); } ) ); passport localstrategy에서 serializeUs..
-
[2019.06.01] 오늘의 TIL - passport 세팅 후 LocalStrategy 호출이 안되는 현상개발 블로깅/오늘의 TIL 2019. 6. 1. 14:14
어제 하루종일 passport를 익히고, 우리 프로젝트에 브랜치를 하나 따서 passport 환경을 세팅 후 postman으로 호출을 해 보았다. 그런데 localStrategy에 놔둔 콘솔로그가 계속 찍히지 않는 것이다... 시간을 많이 뺏길 위기를 느끼고 긴장상태에 들어갔다.. 문제를 해결하기까지 결린 시간은 40분 정도... 해결한 과정은 다음과 같다. 해결 과정 4주 프로젝트 코드의 LocalStrategy에 콘솔로그가 찍히지 않음. 라우터 연결부분이 문제라고 판단. 라우터에 passport 설정 대신, 일반 funciton(req,res) 함수로 콘솔로그 실행. 아주 잘 찍힘. 그러면 미들웨어 실행순서에 문제가 있다고 판단하여, 어제 passport 구현해본거랑 확인해봄. 순서 차이 없음. 남은..
-
[2019.05.30] 오늘의 TIL - gitignore에 추가를 해도 반영이 안되는 이유개발 블로깅/오늘의 TIL 2019. 5. 30. 22:56
2주 프로젝트 때도 그렇고, 이번 4주 프로젝트 진행 중에도, scret키, API키 등의 내용을 github에 올리지 않으려고 gitignore에 추가를 했다. .gitignore node_modules/ package-lock.json secret/ ormconfig.json secret/ 디렉토리에 github에 올리지 않으려고 추가를 했으나, 'git status'로 확인하면 계속 수정 내역으로 나오는 것이다. 철자 하나 틀리지 않았다. 그런데 왜 .gitignore 반영이 되지 않는 것일까.. 무시하려는 파일이 이미 github repository에 올라가 있으면, 이후에 gitignore에 추가해도 반영이 되지 않는다. gitignore에 추가를 하기 전에, 이미 한번 이상 github에 올린..