01. 도메인(Domain) ==> 개발자 대부분은 비즈니스 프로세스를 개선하거나 자동화하기 위해 일한다. 도메인은 이런 프로세스가 지원하는 활동을 의미한다. ==> 개발자 입장에서 구현해야 할 소프트웨어의 대상이 도메인이 된다. ==> 하나의 도메인은 하위 도메인으로 나눌 수 있다. (하위 도메인은 다른 하위 도메인과 연동하여 완전한 기능을 제공) ==> 하위 도메인은 B2B(Business-to-Business), B2C(Business to Consumer)로 나눌 수 있다. 도메인 모델(Domain Model) ==> 유용한 특성을 포함하는 프로세스나 현상의 지도(Map)을 뜻한다. ==> 비즈니스를 수행할 사람이 자신의 비즈니스에 대해 마음속에 가지고 있는 지도와 같다. ==> 도메인을 개념적으..
01. Access Token Access Token? ==> 사용자의 권한이 확인되었을 경우 해당 사용자를 인증하는 용도로 발급 ==> 예시로 Expires 기간이 지날 때 인증이 만료되게 하는 JWT Token도 Access Token이 있다. ==> Token을 생성할 때 사용한 비밀키 (Secret Key)를 가지고 인증한다. 복잡한 설계없이 코드를 구현할 수 있고, 여러 분기를 거치지 않아도 된다는 장점이 있다. ==> Stateless(무상태), Node.js 서버가 죽었다 살아나더라도 동일한 동작을 하는 방식. 즉, JWT를 이용해 사용자의 인증 여부는 확인할 수 있지만 처음 발급한 사용자 본인인지 확인할 수 없다는 단점이 있다. ==> 다시 말하면 Access Token은 그 자체로도 사용..
01. TCP / UDP TCP 란? 서버와 클라이언트간 신뢰성 있는 데이터 송수신을 위해 만들어진 프로토콜 연결 지향성 프로토콜 데이터를 나눠서 보낼 수 있으며, 데이터를 받는 쪽에서 나눠 받은 데이터를 재조립한다. ( 누락된 데이터가 존재하면 다시 요청해서 받아와 완전한 데이터를 만든다.) TCP로 연결이 된 경우 데이터를 양방향으로 주고 받을 수 있다. 데이터의 순서가 뒤바뀌는 일이 없으며 안정적이라 신뢰 가능하다. UDP에 비해 데이터 송수신 비용(부담)이 크다. 또한, UDP보다 전송 속도가 느리다. UDP 란? 비연결성 프로토콜 데이터를 보내고 확인하지 않는다. 따라서 데이터가 제대로 도착했는지 보장되지 않아 신뢰도가 비교적 낮다. 데이터를 순차적으로 보내도 받는 쪽에서는 다른 순서로 전달 받..
01. 코드 서식 코드 서식이란? ==> 코드의 형식, 다시 쉽게 말하면 우리가 코드를 작성하는 방식을 말한다. ==> Space, Tab, line break, semicolon 등을 개인마다 다르게 사용한다. ==> 한줄에 작성하는 코드 작성 길이도 포함된다. 좋은 코드는 가독성이 좋은 간결한 코드도 좋은 코드라 불리기에 코드 서식은 개발자에게는 중요한 부분 Prettier ==> 이런 부분을 Prettier로 해결할 수 있다. Prettier는 코드 서식 관리 도구다. 1. npm i prettier 설치 2. app.js가 있는 폴더에 .prettierrc.js 파일 생성 3. 생성한 파일에 기본 설정 추가하기 module.exports = { "printWidth": 80, // 줄 바꿈 할 폭..
01. Sequelize Sequelize란? ==> ORM(Object Relational Mapping)으로써 Javascript 객체(Object)와 데이터베이스의 관계를 연결 해주는 도구 ==> Node.js 환경에서는 TypeORM, Prisma, Sequelize 등 다양한 ORM이 존재한다. ==> Sequelize와 같은 ORM은 여러가지의 관계형 데이터베이스(RDB)를 사용할 수 있다. RDB 종류에는 MySQL, Oracle, MariaDB, PostgreSQL등이 있다. Sequelize vs, mongoose ==> mongoose는 ODM(Object Document Mapping)으로 Javascript의 객체를 Document와 연결한다. ==> mongoose는 지원하는 데이..
미들웨어 (Middleware) 미들웨어란? ==> 웹 서버에서 요청/응답에 대해 공통적으로 관리 및 처리할 때 사용 ==> Apache, Nginx에서 사용하는 모듈이 미들웨어와 비슷하다. ==> Express.js에는 unlencoded라는 규격의 body 데이터를 손쉽게 코드에서 사용할 수 있게 도와주는 미들웨어와 JSON이라는 규격의 body 데이터를 손쉽게 코드에서 사용할 수 있게 도와주는 미들웨어를 사용한다. app.use(express.urlencoded({ extended: false })); app.use(express.json()); Express.js에서 미들웨어 작성 app.use((req, res, next) => { // 필요한 코드 }); ==> req: 요청(Request)에..