100%를 한번에 바꾸는건 어려워도 1%를 100번 바꾸는건 쉽다.

생각정리 자세히보기

분류 전체보기 82

[Node.js] Passport (로컬 로그인 with session)

Passport란? Passport is authentication middleware for Node.js. Extremely flexible and modular, Passport can be unobtrusively dropped in to any Express-based web application. A comprehensive set of strategies support authentication using a username and password, Facebook, Twitter, and more. 즉, Passport는 Node.js에서 인증을 도와주는 미들웨어이며, 여러가지 전략 (인증 방법을 전략이라고 칭한다.)을 지원함. 필자는 API서버로서 session기반의 전통적인 ID, PW..

[Node.js] Cookie 공부

프로젝트를 하면서 인증에 관련된 부분을 진행하면서 지식의 부족함을 느꼈다. 그래서 생활코딩의 강의를 참고해서 공부를 진행하였다, 추후에 더 공부를 해야할 것 같다. 예제 코드 var http = require('http'); // 서버 모듈 var cookie = require('cookie'); // cookie를 파싱하는 모듈 http.createServer(function(req, res){ var cookies = {}; // 쿠키를 담을 객체 if (req.headers.cookie !== undefined) { // 쿠키 예외처리 cookies = cookie.parse(req.headers.cookie); // 객체에 헤더안의 쿠키를 파싱 } res.writeHead(200, { 'Set-c..

[42 Seoul] Libft

Libft 나만의 첫 번째 라이브러리 요약: 이 프로젝트의 목적은 흔히 쓰이는 함수들을 재구성하여 이후의 모든 프로젝트에서 사용될 C 라이브러리를 제작하는 것입니다. 알아야할 선수지식 C 문법 const란? 해당 식별자의 값을 변경할 수 없도록 선언한다는 키워드 매개변수에 const를 붙이는 이유? 특정 함수에 전달하는 포인터의 내용이 훼손되는 것을 방지하기 위해서이다. 다른 함수에 포인터가 전달될 경우, call-by-reference 형태로 전달되므로 다른 함수 내에서 포인터의 값을 임의 조작할 수 있기 때문이다. size_t란? 플랫폼마다 다른 bit의 부호없는 정수형을 사용하기 위해서 사용하는 typedef, 이론상으로 가장 큰 사이즈를 담을 수 있는 unsigned 데이터 타입 Introduct..

42 Seoul 2022.01.07

[내 이야기] 2021년 회고

회고를 시작하며 누구나 다사다난했지만 개인적으로는 엄청나게 많은일이 있었고 원하는 바를 이루어낸 21년도였습니다. 사실 저는 엄청난 사회적 지위가 있는것은 아닙니다만 저 자신을 중간점검을 한다는 느낌으로 적는 회고입니다. 혹시 이 이야기를 듣고 저라는 사람에게 흥미가 생긴다면, 나중에 성공했을 때 저의 모든 이야기를 회고해보도록 하겠습니다. 1월 전에 다니던 SI회사를 퇴사하려고 마음먹은 시기였습니다. 전에 SSO 엔지니어로 1년정도 일한 경력이 있어서 2년차로 입사한지 5개월째 되는 시점이였고 나름 적응도 잘 마쳤던 시기였습니다. 그럼에도 왜 퇴사를 결정하였는지 그 이유를 적어보려고 합니다. 1. 낮은 연봉에 비한 높은 업무 강도 모든 SI회사가 연봉이 낮은것은 아니지만, 제가 다녔던 회사는 대졸 초임..

[Node.js] Node.js에 MVP 패턴을 적용하기

디자인 패턴이란? 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여 특정한 "규약"을 통해 쉽게 쓸 수 있는 형태로 만든 것. 즉, 더 쉽고 편리하게 개발을 할 수 있는 특정한 방법들이다. MVP패턴이란? 어플리케이션을 3가지로 나눠서 구축하는 개발 방법론이다. MVC패턴에서 파생된 디자인 패턴중에 하나이다. Model : 데이터를 처리하고 가공하는 핵심 알고리즘 및 로직 View : 그래프, 그림 등 사용자에게 보여지는 UI Presenter : View에서 들어오는 요청을 받고 Model에 데이터를 요청후, 다시 View에 응답 Node.js에 MVP 패턴 적용. Node.js에서는 Router에서 요청을 받고 DB에 접..

[Node.js] dotenv 적용하기

dotenv란 .env라는 파일에 정보를 저장하고, 그 안의 정보를 환경변수로 등록해주는 모듈이다. 요즘 진행하는 프로젝트에 dotenv를 적용했다. dotenv를 적용한 이유 1. config폴더 밑에 db에 관련된 계정정보, 메일을 전송하기 위한 계정정보를 JSON형식으로 관리했다. 2. 나중에 더 민감한 정보를 다룰때에 환경변수로 등록해서 관리하면 보안이나 관리하는데에 용이하다고 판단하여 적용했다. dotenv 적용 방법 우선, dotenv모듈을 설치해야한다. npm i dotenv 설치를 하면 패키지가 추가된것을 확인할 수 있다. 패키지를 추가하면 .env 파일을 프로젝트 최상단에 추가한다. .env파일의 형식은 다음과 같다. # Server Port PORT=9000 # Connect DataB..

[Node.js] nodemailer를 이용한 메일 전송

프로젝트에서 nodemailer를 사용을 했다... 4시간이나 삽질을 해서 다음에는 해매지않도록 기록을 해두려고 한다. 먼저 패키지를 설치해야한다. npm i -s nodemailer 패키지를 설치하면 package.json이 다음처럼 변경된다. { "name": "back", "version": "0.0.0", "private": true, "scripts": { "start": "node ./bin/www" }, "dependencies": { "cookie-parser": "~1.4.4", "debug": "~2.6.9", "express": "~4.16.1", "morgan": "~1.9.1", "mysql2": "^2.3.3", "nodemailer": "^6.7.2", "sequelize": ..

[Node.js] Sequelize Model 설정

Sequelize의 동작방식 크게 두가지 방식으로 나눌수있다. 1. DB 스키마를 DB에서 다루는 방식 2. DB 스키마를 Sequelize에서 다루고 실행때마다 model 폴더안에 있는 entity들을 가져와서 스키마를 생성한다. 1번의 경우는 ERD를 따로 작성했을경우에 사용한다고 한다. 2번의 경우는 JS에서 DB를 관리할수있는 편리함이 있다. 2번이 더 유용해보이지만 따로 DBA가 있는경우 1번 방식을 사용한다고 한다. 이번 프로젝트를 진행하는 목적이 공부를 하기위함이고, 이미 ERD를 작성했으니 1번 방식으로 진행을 하려고 한다. DB 테이블을 자동으로 models폴더에 js파일로 생성하기. 설정하는 파트의 부분은 ERD를 전부 작성했다는 전제하로 설명한다. sequelize-auto라는 라이브..

[Git] Git으로 협업하기

사이드 프로젝트의 설계를 전부 마치고, 이제 본격적으로 개발환경을 잡아가면서 Git을 사용하기 시작했다. 사용하면서 헷갈리는 부분이 있었다. 바로 Git Branch와 Git Flow에 관한 부분이 헷갈렸었다. 사실 많이 사용은 했었지만, 막상 이 부분을 설명할때 막히는 부분이 있었다... 열심히 공부해야겠다... 다음 사진은 우리가 Git으로 협업하는 방법을 그림으로 표현한것이다. 참고 https://techblog.woowahan.com/2553/ https://www.holaxprogramming.com/2018/11/01/git-commands/

개발/Git 2021.12.15