설계 지식

PepsiZero·2024년 4월 5일
0
post-thumbnail

패키징
빌드

개발
콜백함수
async
await
promise
https://springfall.cc/article/2022-11/easy-promise-async-await
operation

CI/CD/CT

릴리즈 노트

보일러 플레이트

LC(Life cycle) 생명주기

v model

srs

sds

OSS 문서작성

Ora 의존성 트리

마이크로서비스 아키텍처

ACID vs BASE

트랜젝션

관계형 데이터베이스

레이어의 뜻

엔트리포인트

x스크립트

map 주의점

Restful(Post, Get, Put, Delete, Patch)

  1. V8엔진: V8은 C++로 만든 오픈 소스 자바스크립트 엔진
    엔진은 파서, 컴파일러, 인터프리터, 가비지 컬렉터, 콜스택, 힙으로 구성
  1. Node.js 아키텍처

  1. node.js 장/단점

장점
1. 비동기 이벤트 기반 IO를 사용해 동시에 여러 요청을 다루기가 용이하다.
2. 자바스크립트를 사용해 프론트엔드 개발자의 백엔드 진입이 용이하다.
3. 클라이언트와 같은 언어를 사용하면 서버의 코드에 사용된 로직을 클라이언트에서도 사용가능
4. 개발자 생태계가 잘 구성되어 있어서, 패키지 매니저에서 필요한 대부분을 제공함
5. V8엔진이 JIT 컴파일러 이므로 서버 기동이 빠르다.

단점
1. 기본적으로 CPU를 하나만 사용하므로 멀티코어를 사용하려면 별도의 작업이 필요하다.
2. 비동기 지원을 하지않은 IO 요청이나 CPU 작업은 주의해서 작업해야 한다.
3. 콜백을 중첩해서 계속 사용하면 코드 작성 및 디버깅이 힘들어진다.
4. 이벤트 기반으로 프로그래밍을 해본 적이 없다면 코드 작성이 타 언어에 비해 상대적으로 어려울 수 있다.

  1. URL 구조

  2. Promise : 이 코드는 미래의 어느 시점에 실행할 것이다 라는 약속하는 객체.

특징
1. Promise는 이행, 거절, 대기 3가지의 상태를 가질 수 있다.

  1. 객체이므로 new 연산자로 인스턴스를 생성 할 수 있다.
  1. ACID(관계형 데이터베이스) VS BASE(NoSQL 데이터베이스)

트랜잭션 : 데이터베이스에서 원자적으로 수행되어야 하는 작업의 단위

ACID의 특징
1. 원자성(Atomicity): 트랙잭션 내의 모든 작업은 전부 성공하거나 전부 실패

  1. 일관성(Consistency): 트랜잭션이 실행 중 어떤 문제가 발생하더라도 데이터베이스는 일관성을 유지, 즉 트랙잭션 수행 전과 완료 후의 상태가 같아야한다.

  2. 격리성(Isolation) : 여러 트랜잭션이 동시에 실행되더라도 각 트랜잭션은 서로 영향을 미치지 않고 독립적으로 실행되는 것처럼 보여야 한다. 이는 각 트랜잭션이 다른 트랜잭션의 작업을 볼 수 없음을 의미

  3. 지속성(Duralbility) : 트랜잭션이 성공적으로 완료된 후에는 해당 변경 사항이 영구적으로 저장되어야 한다. 즉 시스템 장애 또는 전원 고장 등 같은 문제가 발생하더라도 데이터 손실이 없어야함

BASE의 특징
1. 기본적인 가용성(Basically Available): 시스템의 가용성을 우선시 함. 즉 어떤 상황에서도 응답을 보장한다.

  1. 소프트 스테이트(Soft state) : 노드의 상태가 외부 정송된 정보를 통해 결정된다. 최신 상태의 데이터로 덮어씌어짐

  2. 결과적 일관성(Eventually Consistent) : 일시적으로 비일관적인 상태가 되어도 최적으로는 일관성이 있는 상태가 되는 성질, 시스템 부하, 네트워크 속도 등의 외부 요인으로 인해 일관성이 일시적으로 깨질 수 있다.

  1. REST API

HTTP URI를 통해 자원을 명시하고, HTTP Method (POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD OPERATION을 적용하는 것을 의미한다.
즉, REST는 자원 기반의 구조 (ROA: Resource Oriented Architecture) 설계의 중심에 Resoure가 있고 HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍쳐를 의미한다.

HTTP 메서드

GET : 주로 데이터를 조회할 때 사용, 서버의 상태나 데이터를 변경하지 않는다.

POST : 데이터를 서버에 제출하여 처리할 때 사용, 폼 데이터나 파일 업로드 시 POST 사용

PUT : 기존에 있는 리소스를 대체하거나 새로운 리소스를 저장

DELETE : 리소스를 삭제

PATCH : 리소스의 일부를 수정하는데 사용, PUT과 달리 PATCH는 리소스의 "일부"를 수정한다.

profile
존나 버틴놈이 존나 성공한다.

0개의 댓글