일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JWT
- OpenAPI
- MongoDB
- post
- 5주차
- 노드 윈스턴
- NoSQL
- Sequelize
- Get
- 1주차
- 비동기
- 2주차
- node winston
- Transaction
- Node.js
- 숙제
- 웹 스크래핑(크롤링)
- nginx
- 트랜잭션
- db
- 개발일지
- 3주차
- 부트스트랩
- 4주차
- 위키백과
- 항해99
- 스파르타코딩클럽
- SQL
- HTTPS
- cors
- Today
- Total
목록
728x90
항해 일지 (46)
얼음꽃의 일지
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) : 데이터 정합성..
트랜잭션 : 여러 개의 작업을 하나로 묶어서 실행하는 것입니다. 좀 더 자세히 말하자면 데이터베이스에서 트랙재션은 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위입니다. 단일 트랜잭션은 DB 내에 읽거나 쓰는 여러 개 쿼리를 요구합니다. 이때, 중요한 것은 데이터베이스가 수행된 일부 쿼리가 남지 않는 것입니다. 예를 들면, 송금을 할 때 한 계좌에서 인출되면 다른 계좌에서 입금이 확인되는 것이 중요합니다. 즉, 자신의 계좌에서 돈이 차감되고 나서 돈을 받은 계좌에서 입금이 되어야하는데 차감만 될뿐 입금이 안되면 돈이 증발 하기때문에 이런일이 발생하면 처음부터 다시 하도록 rollback 해주는 것입니다. 만약 문제가 없으면 그때는 commit을 해주는 것이구요. 이게 트랙잭션의 한 과정이..
NoSQL : No + SQL 이 아니라 Not Only SQL 이라는 뜻으로 SQL뿐만 아니라 라는 의미가 있습니다. 즉, SQL 뿐만 아니라 다른 데이터베이스도 존재한다라는 뜻입니다. SQL(관계형 데이터베이스)은 대표적으로 MySQL, Oracle 등이 존재하고 NoSQL(비관계형 데이터베이스)은 대표적으로 MongoDB, Redis 등이 존재합니다. RDBMS 가 있는데 NoSQL이 나온 이유는 다음과 같습니다. - ACID의 완화 - 수평 확장 가능한 분산 시스템 - Schema의 정의가 없음 그럼 RDBMS와 NoSQL의 차이점은 무엇인가? RDBMS NoSQL 데이터 모델 정규화와 참조 무결성이 보장된 스키마 스키마가 없는 자유로운 데이터 모델 트랜젝션 강한 ACID 완화된 ACID 확장 수..