Node.js

Dev

[WE SOPT APPJAM 개발 아티클] Firebase Auth - Kakao Login (1)

나는 현재 대학생 IT벤처창업 동아리 SOPT에서 3주 장기 해커톤인 Appjam(앱잼)에 참여하고 있다. 내가 속한 팀 HAVIT(해빗)에서는, 사용자가 기억하고 싶은 콘텐츠를 카테고리별로 아카이빙 할 수 있는 앱을 개발하고 있다. 사용자의 쉬운 사용과 보안 향상을 위해 최초 기획 단계에서는 소셜 로그인 구현을 계획했으나, 시간적 제한으로 인해 후순위로 미뤄 두었다. 당장 구현하지는 않지만, 내가 담당했던 기능이기도 했고 릴리즈까지 염두에 두고 있기에 소셜 로그인에 대해 공부한 내용에 대해 정리 해 보고자 한다. 사실 SOPT에 들어오기 전에도, Passport.js라는 라이브러리를 활용해서 페이스북과 구글 소셜 로그인을 구현해 본 적이 있었다. 하지만 이번 프로젝트에서는 서버를 FIrebase 환경에..

Dev

WEBn (Fin.)

가장 최근에 학습 한 WEB7 강의를 끝으로, 내가 계획했던 이고잉님의 WEBn 강의들을 모두 학습했다. 2020년 7월, WEB1을 처음 시작할 때에는, '군대라는 특수한 공간에서 꾸준히 공부를 이어나갈 수 있을까?'라는 의문이 들기도 했다. 실제로 중간에 다른 공부에 집중했던 탓에 긴 공백도 있었고, 제한적인 환경으로 인한 어려움도 많았고, 시간도 부족했다. 군대가 아닌 사회에서 WEBn을 학습했더라면, 훨씬 짧은 시간 내에 집중해서 학습을 마무리했을지도 모른다. 하지만, 열악한 환경에서 방법을 찾아가며 꾸준히 학습했던 지난 시간은 나에게 그 자체로 큰 의미가 있다. 앞으로 개발자로, 또 개발자이기 전에 한 사람으로 살아가면서, 나의 삶에는 분명 많은 어려움이 닥칠 것이다. 좋지 않은 환경에서 나태해..

Dev

WEB7 - Login with Google / Facebook on Passport

WEB7 - Login with Google WEB5와 WEB6에서는 Passport의 local strategy(전략)을 사용하며 Passport의 작동 원리와 인증 시스템 전반에 대해 공부했다. 이를 바탕으로 이번 WEB7에서는 각각 구글과 페이스북 계정을 연동해 웹 서비스에서 인증 기능을 구현하는 것을 배웠다. 우선 구글 전략(Google Strategy)을 먼저 진행했다. npm으로 passport-google-oauth 패키지를 설치했고, Passport.js 공식 홈페이지의 가이드 대로 구글 인증을 위한 코드를 추가했다. 다음으로는 Google Cloud Platform에 방문 해 'WEB7-Passport-Google'이라는 이름의 프로젝트를 생성했다. 이후 사용자 인증 정보(Credenti..

Dev

DATABASE2 - lowdb / WEB5 - Passport _ REWORK

계획의 재검토 지난번 작성한 Passport.js 글에서도 잠깐 언급했지만, 그 다음 강의는 DATABASE2 - lowdb 강의였다. 하지만, 강의 영상이 제작된 이후 lowdb가 2.0 버전으로 업데이트 되었는데, 문법이 많이 바뀌어 학습에 어려움이 있을 것 같았다. 이와 더불어 전역 후에는 알고리즘 공부를 하려고 계획하고 있었기 때문에, 공부 계획을 재검토하게 되었다. 웹 프로그래밍 공부 중단 및 알고리즘 공부 시작, lowdb가 아닌 다른 데이터베이스를 사용한 웹 프로그래밍 공부 지속 등의 방안이 있었다. 우선, 학습하고 있던 WEBn 시리즈 완강이 얼마 남지 않아 여기서 중단하기엔 너무 아쉽다는 판단이 섰다. 이후 웹 공부를 지속하기 위해 정보를 조사하던 중, 다행히 npm으로 패키지의 특정 버..

Dev

WEB5 - Passport.js

이번에는 Node.js의 인증 미들웨어인 Passport.js를 학습했다. 이전 강의들에서 쿠키와 세션을 이용해 웹사이트에서 로그인 기능을 구현했는데, Passport.js는 이러한 기초적인 방법보다 훨씬 강력했다. Passport에서 로그인 방식은 'Strategy'로 표현하는데, 자체적으로 로그인을 구현하는 local과, 구글, 페이스북, 네이버, 카카오 등의 대형 기업들이 가지고 있는 사용자 정보를 사용하는 여러 방법들이 존재했다. 자체적으로 사용자 정보를 관리할 경우 서버와 보안 소요가 커지기 마련인데, Passport.js를 이용하면 사용자 정보를 자체적으로 따로 저장하지 않으면서 인증 기능만 제공하는 '소셜 로그인' 기능을 구현할 수 있다는 점이 흥미로웠다. 이번 강의에서는 가장 기초적인 lo..

Dev

WEB3 - Node.js - Cookie & Auth / WEB4 - Express - Session & Auth

이번에 학습한 두 개의 강의는 모두 '인증'에 관한 것이었다. 첫 번째 강의는 Node.js 환경에서 쿠키(Cookie)를 활용해 로그인 기능을 구현하는 내용이었고, 두 번째 강의는 Node.js의 Express 프레임워크 환경에서 세션(Session)을 활용해 로그인 기능을 구현하는 내용이었다. 두 강의 모두 이전 강의와 마찬가지로 구름IDE 환경에서 학습했다. 쿠키(Cookie)란 클라이언트의 로컬에 저장되는 작은 데이터 파일이다. 대표적으로 Name-Value 값으로 구성되며, 이 외에도 웹브라우저 상에서의 쿠키 조작을 방지하기 위한 'HttpOnly', 각각 활성화 될 디렉토리와 도메인을 지정하는 'Path', 'Domain', Https 환경에서만 전송하는 'Secure', 만료 시기를 지정하는..

Dev

WEB3 - Express

이번에는 Node.js의 대표적인 웹 프레임워크 중 하나인 Express에 대해 학습했다. 이번에도 이전 강의들 처럼 Visual Studio Code를 사용해 코딩을 지속하려고 했지만, 부대 내 사이버지식정보방 프로그램 업데이트로 터미널 사용이 제한되었다. 따라서 강의 초반에 부득이하게 다시 VSCode에서 구름IDE로 작업 환경을 변경했다. 환경을 다시 변경해야 해 번거롭기도 했고, 아무래도 로컬PC에서 Node.js를 구동하는 것보다 불편한 점이 많았지만, 다행히 학습에 문제가 생길 정도로 큰 어려움은 없었다. 강의 초반부는 기존의 Node.js 기반 코드를 Express 프레임워크에 맞게 변경하는 내용으로 구성되었다. 어려운 내용은 아니었지만, 부대 사정으로 인해 학습이 자꾸 끊겼던 탓에 내용들이..

Dev

DATABASE2 - MySQL / Node.js & MySQL

DATABASE2 - MySQL DATABASE1 수업을 끝마치고, 바로 다음 목표인 DATABASE2 - MySQL을 시작했다. MySQL은 무료로 사용할 수 있는. 세계에서 가장 많이 쓰이는 관계형 데이터베이스인데, 나 역시 이번 강의를 통해 학습하기 전부터 익히 들어 알고 있기도 했다. Bitnami 사에서 개발한 WAMP Stack 프로그램을 이용해 MySQL를 편리하게 설치할 수 있었다. MySQL을 설치한 이후 본격적인 학습에 들어갔다, GUI 환경을 제공하는 MySQL Workbench 프로그램이 존재하지만, 처음부터 학습하는 단계였기에 정직하게 명령 프롬프트로 시작했다. 강의 내용을 따라가며 차례대로 스키마, 테이블을 생성하고, 데이터를 입력했다. 강의에서 이고잉님은 마이크로소프트 엑셀과 ..

Dev

WEB2 - Node.js

2020년 7월 20일, 구름IDE에 Node 컨테이너를 생성하고 WEB2 - Node.js 강의를 학습하기 시작했다. 이전 WEBn 강의들은 구름IDE에서 제공하는 서버에 접속해 웹사이트에서 코드 변경 여부를 확인했는데, Node.js를 공부할 때는 이와 함께 터미널도 활용해야 했다. 강의 영상에서의 실행 환경과 나의 실행 환경에 꽤 차이가 있었기 때문에, 처음에는 터미널 사용이 꽤 어색했다. 구글링과 몇 번의 시도 끝에 실습 환경에 적응했고, 본격적으로 강의 학습에 들어갔다. 하지만, Node.js 학습을 시작한 지 얼마 되지 않아 OSAM 프로젝트에 도전했고, 그 뒤에는 K-MOOC의 강의를 2개나 학습하게 되어 Node.js 학습을 중단하게 되었다. 다른 공부에 열중했던 몇 달의 시간이 지났고, ..

HYOSITIVE
'Node.js' 태그의 글 목록