항해14기 본과정/항해14기 개발일지

[항해 14기] 개발일지23 (Prettier, Socket, Domain)

스쿼트잘함 2023. 4. 29. 00:52

Node.js 심화

 

1. Prettier

1) 코드 서식

- 일관적으로 처리하면 오타 감소, 가독성 상승

- 협업 시 코드 충돌 방지

2) 코드 컨벤션을 통하여 규약 통일

- JS 코딩 컨벤션 예시(https://ui.toast.com/fe-guide/ko_CODING-CONVENTION)

3) Prettier

- 코드 서식 관리 도구

- 기본 규칙(https://prettier.io/docs/en/configuration.html#basic-configuration)

4) vscode

- 익스텐션으로 간단하게 사용 가능

5) npm

- npm i prettier -D

- .prettierrc.js 생성 이후(app.js파일과 같은위치), 아래 코드 입력

{
  "printWidth": 80, //  줄 바꿈 할 폭 길이
  "tabWidth": 2, // 탭 너비 
  "singleQuote": true, // single 쿼테이션 사용 여부
  "trailingComma": "all", // 여러 줄을 사용할 때, 후행 콤마 사용 방식
  "jsxBracketSameLine": false, // JSX의 마지막 `>`를 다음 줄로 내릴지 여부
}

- package.json 파일 스크립트 안에 "prettify": "prettier --write *.js **/*.js" 추가

- npm run prettify 실행

 

 

 

2. Protocol

1) TCP

- 서버와 클라이언트간 신뢰성 있는 데이터 송수신을 위해 만들어진 프로토콜
- 연결 지향성 프로토콜이라고도 불림
- 데이터를 나눠서 보낼수 있으며, 데이터를 받는쪽에서 나눠 받은 데이터를 재조립

- 누락된 데이터가 존재하면 다시 요청하여 완전한 데이터를 완성, 데이터 순서가 바뀌지 않아 안정적
- 서버/클라이언트간 데이터를 양방향으로 주고 받을수 있음

2) UDP

- 비연결성 프로토콜
- 데이터를 보내고 제대로 받았는지 확인하지 않아 신뢰도가 낮음
- 데이터를 순서가 바뀔 수 있음
- 데이터를 보내기만 하기 때문에 TCP보다 비용이 적고 전송 속도가 빠름

 

 

 

3. Socket

1) 정의

- 네트워크 상에서 돌아가는 두 개의 프로그램 간 양방향 통신의 하나의 엔트 포인트. 소켓은 포트 번호에 바인딩되어 TCP 레이어에서 데이터가 전달돼야하는 애플리케이션을 식별할 수 있게 함

- 일종의 콘센트

2) 종류

- 대표적으로 tcp,udp

3) 패킷

- 소켓을 통해 송수신하는 데이터 덩어리의 하나, 소켓 통신을 위해 형식화된 데이터

- 콘센트에 흐르는 전기

4) 웹소켓

- 실시간 웹 제공을 위한 것

- 웹소켓 지원하지 않는 브라우저를 위해 socket.io 라이브러리를 사용

 

 

 

4. Domain

1) 정의

- 비즈니스 프로세스가 지원하는 활동(개발자 한정)

- 해결하고자 하는 문제의 영역

2) 도메인 모델

- 유용한 특성을 포함하는 프로세스나 현상의 지도

- 엔티티, 값 객체, 도메인 서비스 포함

3) 엔티티

- db테이블과 연관된 핵심 클래스

- 엔티티를 기준으로 테이블생성 및 db스키마 변경

- 데이터의 집합을 의미

- 유일한 식별자를 가지고 있어야하며, 2개 이상의 인스턴스(행)가 있어야 한다

- 속성을 가지고 있어야하며 다른 엔티티와 한개 이상의 관계가 있어야 한다

- 테이블이라고 볼 수 있음