엘리스
[TIL] 엘리스 SW 엔지니어 트랙 Day 035
[TIL] 엘리스 SW 엔지니어 트랙 Day 035
2021.12.13📖 오늘 배운 내용 - 2021.12.10 회원가입 구현 Passport.js Session Store 회원과 게시글의 연동 CSR로 댓글 기능 구현하기 📝 회원가입 구현하기 [Node.js] 회원가입 구현하기 🎯 회원가입 구현하기 회원가입 시 다양한 정보를 받기보다는 절차를 간단하게 만들어서 사용자들이 부담 없이 가입할 수 있도록 해야 된다. 📝 회원 정보를 데이터베이스에 저장하기 회원의 lakelouise.tistory.com 📝 Passport.js와 로그인 Express.js 애플리케이션에 간단하게 사용자 인증 기능을 구현하게 도와주는 패키지이다. 유저 세션 관리 및 다양한 로그인 방식 추가할 수 있다. [Node.js] Passport.js와 로그인 🎯 Passport.js와 로그인 📝 Pass..
[TIL] 엘리스 SW 엔지니어 트랙 Day 034
[TIL] 엘리스 SW 엔지니어 트랙 Day 034
2021.12.10📖 오늘 배운 내용 - 2021.12.09 OAuth JWT passport Session Cookie 📝 OAuth 접근 권한 위임(delegation)을 위한 공개 표준 간단히 말하면 인증서 같은 거다. 유저가 쉽게 사용할 수 있다. (원 클릭 로그인) ⇒ 비밀번호를 기억할 필요가 없다. 유저 허용 여부에 따라 이메일, 프로필 사진, 닉네임 등의 기본 정보를 얻을 수 있다. 📝 JWT와 쿠키 📕 Session의 단점 서버에 따라 검증 가능 여부가 달라진다. → 세션을 위한 서버를 따로 분리하지 않는 이상은 분산된 서버를 사용하기 애매함 특정 서버의 과부하 현상에 대한 위험 증가 세션 테이블을 만들어 서버에 저장함으로 서버 공간 및 자원 낭비 📕 JWT의 장점 SECRET key가 공유된 서버라면 서버..
[TIL] 엘리스 SW 엔지니어 트랙 Day 033
[TIL] 엘리스 SW 엔지니어 트랙 Day 033
2021.12.09📖 오늘 배운 내용 - 2021.12.08 Pug 게시판 CRUD 만들기 Async Request Handler Pagination PM2 Process Manager 📝 Pug [Pug] Pug에 대해서 간단하게 알아보자! 🎯 Pug에 대해서 간단하게 알아보자! 들여 쓰기 표현식을 이용해 가독성이 좋고 개발 생산성이 높다. HTML을 잘 모르더라도 문법적 실수를 줄일 수 있다. layout, include, mixin 등 강력한 기능 제공한 lakelouise.tistory.com 📝 게시판 CRUD 만들기 Create, Read, Update, Delete 데이터를 다루는 네 가지 기본적인 기능 일반적으로 위 네 가지에 대한 구현이 가능해야 서비스 개발에 필요한 요구사항을 충족할 수 있다. Updat..
[TIL] 엘리스 SW 엔지니어 트랙 Day 032
[TIL] 엘리스 SW 엔지니어 트랙 Day 032
2021.12.08📖 오늘 배운 내용 - 2021.12.07 게시판 CRUD - 게시글 생성하기 CRUD 사용자 추가하기 Pagination 사용하기 📝 게시판 CRUD - 게시글 생성하기 게시판 CRUD - 게시글 생성하기 📝 CRUD 사용자 추가하기 CRUD 사용자 추가하기 📝 Pagination 사용하기 Pagination 사용하기 💡 오늘 깨달은 것 프로그래밍은 무엇을 알고 있는가에 대한 것이 아니다. 그것은 당신이 무엇을 알아낼 수 있는가에 대한 것이다. const { Post } = require('../models'); 이렇게 작성하면 알아서 ./models/index.js 파일을 알아서 찾아간다. res.redirect('/'); : 괄호 안에 있는 경로로 이동 웹은 유저의 사용성을 위해서 성능을 조금 포기..
[TIL] 엘리스 SW 엔지니어 트랙 Day 031
[TIL] 엘리스 SW 엔지니어 트랙 Day 031
2021.12.07📖 오늘 배운 내용 - 2021.12.04 MongoDB 대용량 데이터를 처리하기 유리하다. 스키마를 정의하는 과정 없이 빠르게 데이터베이스를 구축할 수 있다. NoSQL 데이터베이스에 속한다. Mongoose ODM MongoDB의 Collection에 집중해 관리하도록 도와주는 패키지이다. 간단하게 데이터베이스와 연결 상태를 관리할 수 있다. Code-Level에서 스키마를 정의하고 관리할 수 있다. Query populate Sequelize ORM 📝 MongoDB [MongoDB] MongoDB 기본 개념, 설치, 사용 방법 🎯 MongoDB 대표적인 NoSQL, Document DB Mongo는 Humongous에서 따온 말로, 엄청나게 큰 DB라는 의미 → 대용량 데이터를 처리하기 좋다. 📝..
[TIL] 엘리스 SW 엔지니어 트랙 Day 030
[TIL] 엘리스 SW 엔지니어 트랙 Day 030
2021.12.07📖 오늘 배운 내용 - 2021.12.03 Middleware REST API JSON MVC 패턴 Postman 사용하기 exports와 module.exports의 차이 Router 사용하기 미들웨어 body-parser 사용하기 📝 Middleware란? [Node.js] Node.js Middleware란? 🎯 Node.js Middleware란? 미들웨어는 Express.js 동작의 핵심이다. HTTP 요청과 응답 사이에서 단계별 동작을 수행해주는 함수이다. 📝 미들웨어 동작 원리 Express.js의 미들웨어는 HTTP 요청이 들어온 순 lakelouise.tistory.com 📝 REST API [Node.js] Node.js REST API란? 🎯 Node.js REST API란? REST..
[TIL] 엘리스 SW 엔지니어 트랙 Day 029
[TIL] 엘리스 SW 엔지니어 트랙 Day 029
2021.12.07📖 오늘 배운 내용 - 2021.12.02 시맨틱 버전 규칙 라우터 미들웨어 .env REST API 📝 시맨틱 버전 규칙 패치 버전 Z : 하위 호환을 하지만 버그 수정이 있을 때 올라간다. 버그 수정은 내부적으로 잘못 처리되고 있는 것을 고치는 것을 의미한다. 작은 버전 Y : 새로운 기능이 추가되었지만 기존의 공개 API가 하위 호환되고 있을 때 올라간다. 이는 패치 수준의 변화를 포함할 수 있으나, 작은 버전이 올라가면 패치 버전은 꼭 0이 되어야 한다. 주요 버전 X : 하위 호환되지 않는 변화가 추가될 때 반드시 올라가야 한다. 이는 패치 수준과 작은 수준의 변화를 포함할 수 있으나, 주요 버전이 올라가면 작은 버전과 패치 버전은 꼭 0이 되어야 한다. 📝 라우터란? 하나의 페이지를 만들기 위..
[TIL] 엘리스 SW 엔지니어 트랙 Day 028
[TIL] 엘리스 SW 엔지니어 트랙 Day 028
2021.12.02📖 오늘 배운 내용 - 2021.12.01 Node.js npm, npx Express.js 📝 Node.js의 특징 크래스 플랫폼에서 실행된다. 동작에 큰 제한이 없다. 사용 분야의 제한 없이 다양한 분야에서 사용 가능하다. 하나의 쓰레드를 사용한다. 비동기 동작의 완료를 확인하기 위해 이벤트 방식을 사용한다. 비동기 방식으로 작동한다. 📕 Node.js 이해하기 복잡한 JS를 실행하기 위해 고성능의 자바스크립트 실행기가 필요했는데 구글에서는 크롬 V8엔진을 만들었다. ⇒ 자바스크립트 실행 속도가 상당히 빨라짐 ⇒ JS를 브라우저 외부에서 사용 ⇒ Node.js 탄생 즉, Node.js는 자바스크립트를 어느 환경에서나 실행할 수 있게 해주는 실행기이다. 📕 Node.js vs Browser 브라우저에서..
[TIL] 엘리스 SW 엔지니어 트랙 Day 027
[TIL] 엘리스 SW 엔지니어 트랙 Day 027
2021.11.30📖 오늘 배운 내용 - 2021.11.30 Node.js EsLint Prettier 📝 Node.js 크롬 V8 자바스크립트 엔진으로 빌드된 JavaSript 런타임이다. 📕 런타임 환경이란? 런타임 환경은 컴퓨터가 실행되는 동안 프로세스나 프로그램을 위한 소프트웨어 서비스를 제공하는 가상 머신의 형태이다. 운영 체제 자체에 속하는 경우도 있고 운영 체제에서 작동하는 소프트웨어를 뜻할 수도 있다. 즉, JS코드를 브라우저에서만 돌렸는데 Node.js를 사용하면 로컬에서도 돌릴 수 있다. 📕 내장 모듈(기본 모듈) Node.js 내부에서 제공하는 모듈 📕 외장 모듈(확장 모듈) 일반 개발자들이 만들어 놓은 모듈로, npm을 통해 사용 가능 📝 EsLint 코드를 분석해 문법적인 오류나 안티 패턴을 찾아주..
[TIL] 엘리스 SW 엔지니어 트랙 Day 026
[TIL] 엘리스 SW 엔지니어 트랙 Day 026
2021.11.29📖 오늘 배운 내용 - 2021.11.27 Union Type Intersection Type Type Guard Optional Chaining null 병합 연산자 함수 오버로딩 타입 단언 Index Signature 데코레이터 📝 Union Type & Intersection Type [TypeScript] 타입스크립트 유니온 타입 & 인터섹션 타입 (Union Type & Intersection Type) 🎯 타입스크립트 유니온 타입 & 인터섹션 타입 interface Animal { eat: () => void sleep: () => void } class Dog implements Animal { eat() {} sleep() {} } class Cat implements Animal { ea..
[TIL] 엘리스 SW 엔지니어 트랙 Day 025
[TIL] 엘리스 SW 엔지니어 트랙 Day 025
2021.11.27📖 오늘 배운 내용 - 2021.11.26 Interface Strategy pattern Generic Factory Pattern 📝 Interface 일반적으로 타입 체크를 위해 사용되며 변수, 함수, 클래스에 사용할 수 있다. function sayName(obj: { name: string } ) { console.log(obj.name); } let person = { name: 'John' } sayName(person) // 인터페이스 사용 interface Person { name: string } function sayName(obj: Person) { console.log(obj.name); } let person = { name: 'John' } sayName(person) [Typ..
[TIL] 엘리스 SW 엔지니어 트랙 Day 024
[TIL] 엘리스 SW 엔지니어 트랙 Day 024
2021.11.26📖 오늘 배운 내용 - 2021.11.25 interface generic Union Type Intersection Type 📝 interface 타입 체크를 위해 사용되며 변수, 함수, 클래스에 사용 가능 여러 가지 타입을 갖는 프로퍼티로 이루어진 새로운 타입 정의 프로퍼티와 메서드를 가질 수 있다는 점에서 클래스와 유사 단, 직접 인스턴스를 생성할 수 없음 / 모든 메서드는 '추상 메서드' 임 단, 추상 클래스의 추상 메서드와 달리 abstract 키워드를 사용하지 않음 interface는 타입이며 선언만 존재 ⇒ JS로 변환되면서 인터페이스는 사라짐 interface 간의 extends를 사용하여 다중 상속 가능(class와 비슷) 📕 interface 사용 이유 협업하여 개발 시 공통적으로 사용..