일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 스파르타코딩클럽
- nginx
- Sequelize
- 웹 스크래핑(크롤링)
- Node.js
- NoSQL
- MongoDB
- post
- 항해99
- 개발일지
- Get
- JWT
- 트랜잭션
- db
- 노드 윈스턴
- OpenAPI
- 1주차
- 3주차
- 4주차
- 위키백과
- Transaction
- 비동기
- SQL
- 5주차
- cors
- 부트스트랩
- 숙제
- node winston
- HTTPS
- 2주차
- Today
- Total
목록
728x90
2022/12 (39)
얼음꽃의 일지
Node.js 란? 1. 자바스크립트 언어를 사용 -> 자바스크립트를 사용 할 수 있으면, 프론트 & 백 로직을 다 구현이 가능하다는 장점이 있다 2. 논 블로킹(Non-Blocking) I/O -> 모든 API가 비동기 방식이라 호출 후 응답을 기다리지 않도 다른 API 바로 호출 -> 응답이 오면 이벤트 루트가 확인 후 처리 -> https://nodejs.org/ko/docs/guides/blocking-vs-non-blocking/ 3. 빠른 속도 -> 구글에서 엔진이기에 속도는 짱입니다. -> 물론 다른 곳도 있긴 합니다. https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8_%EC%97%94%EC..
OSI 7계층이란? -> 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것 OSI 7계층의 간단의 예시 ( 택배 배송 과정 ) -> 1. 집화 -> 2. 서브 -> 3. 상품이동(1차) -> 4. 허브터미널 -> 5. 상품이동(2차) -> 6. 서브 터미널 -> 7. 배달 1계층 - 물리 계층(Physical) - 단위 : bit - 장비 : 케이블, 리피터, 허브 - 기계적인 특성을 이용해 데이터를 전송 - 이 데이터는 0과 1로만 이루어져있음 - 전달만 하기 때문에 따른 기능이 없음 2계층 - 데이터 링크 계층(Data Link) - 단위 : frame - 장비 : 스위치, 브리지 - 물리적인 연결을 통해 인접한 두 장치 간의 신뢰성 있는 정보 전송을 담당 - 정보 전송 간에 오류 및 재전송 할 ..
소셜 로그인 without Passport 기본적인 순서 1. 프론트에서 인가코드를 받는다 2. 인가코드를 백에게 전달한다 3. 받은 인가코드로 백은 소셜로그인 하는 곳에 토큰을 요청한다 4. 받은 토큰을 가지고 소셜로그인 하는 곳에 유저 정보를 요청한다 5. 받은 유저정보를 가지고 프로젝트에 사용되는 jwt 토큰으로 다시 변환한다 6. 변환된 토큰을 프론트에게 넘겨준다 7. 프론트가 쓴다 3개 다 프론트, 백이 가지고있는게 동일해야합니다. 서로 developer 신청해서 하면 access key, refresh key, client id 등 달라지기 때문에 한사람껄 같이 써야합니다. 보통 들어가는 값들은 다음과 같습니다. - Client_ID - Redirect_URI - SECRET - State (..
Helmet은 Express로 만들어진 웹 사이트의 보안을 강화하기 위해 사용되는 모듈입니다. npm install helmet const helmet = require("helmet"); // 헬멧의 모든 기능 사용 app.use(helmet()); // 헬멧의 특정 기능 사용 app.use(helmet.contentSecurityPolicy()); app.use(helmet.dnsPrefetchControl()); app.use(helmet.expectCt()); app.use(helmet.frameguard()); app.use(helmet.hidePoweredBy()); app.use(helmet.hsts()); app.use(helmet.ieNoOpen()); app.use(helmet.noSn..
WebSocket 과 Socket.io는 사용하는 방향성에 따라 차이가 있으나, 이게 무조건 좋아 , 저게 무조건 나빠라는 부분은 없습니다. 그러나 Socket.io가 WebSocket보다는 평안한 부분이 있는건 사실입니다. Websocket - 엄청나게 가벼워서 단순한 사용에 적합 - 누구인지에 따라 절대적인 통제권을 가짐 - 로깅, 구독, 방, 네임스페이스, 자동복구 등 기술들이 없으므로 모두 직접 구현 - 디자인을 먼저 디버깅해야 하는데 시간이 오래 걸림 - http처럼 한번 요구하고 한번 받고 끝인 형태가 아닌 실시간으로 상태저장하면서 사용 - 서버 계층이 각각의 개별 websocket 연결을 추적하고 상태 정보를 유지 및 관리를 해야하기 때문에 대규모 처리가 까다로움 - 일부 브라우저는 webs..
서버를 돌리다보면 이런 생각 듭니다. 개발중에서는 로컬을 켜서 돌려가지고 오류 생겨서 멈추면 오류 확인하고 고치고 다시 돌려보고 할 수 있지만, 다 만들고 배포를 하게되면 그때는 오류로 인해 꺼지면 안되고, 계속 실행을 시켜놔야합니다. 즉, 1. 서비스 사용 도중 오류로 인해 서버가 꺼지는 문제를 해결 2. Node자체가 싱글 스레드인데 이걸 늘리는 문제를 해결 ( 클러스터링 ) 이때, 사용할 수 있는게 PM2(Process Manager 2) 입니다. PM2 는 백그라운드 프로세스를 쉽게 관리할 수 있는 생산 등급 프로세스 관리자입니다. 이걸 사용하게되면 모니터링, 로그확인, 애플리케인션 배포가 간단해 집니다. 거기다 메모리가 넘친거나, 오류로 인해 강제종료 등 문제가 생겨도 알아서 자동으로 켜집니다...
아키텍처 패턴이란? - 소프트웨어의 구조를 구성하기 위한 가장 기본적인 토대를 제시 - 각각의 시스템들과 그 역할이 정의되어 있고, 여러 시스템 상이의 관계와 규칙 등이 포함되어 있음 - 검증된 구조로 개발을 진행하기 때문에 안정적인 개발 가능 - 도메인이 복잡할수록 모델이나 코드를 더 쉽게 변경할 수 있는 측면에서 큰 이익 대표적인 아키텍처 패턴 - 저장소 패턴(Repository Pattern) : 영속적인 저장소에 대한 추상화 - 서비스 계층 패턴(Service Layer Pattern) : 유스 케이스의 시작과 끝을 명확하게 정의하기 위한 패턴 - 작업 단위 패턴(Unit Of Work Pattern) : 원자적 연산을 제공 - 애그리게이트 패턴(Aggregate Pattern) : 데이터 정합성..