일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- gitlab
- gptapi
- 노드버전
- db
- 패키지설치에러
- javascript
- 버킷생성
- 자바
- git
- iam사용자
- class
- Github
- java
- openaiapi
- ChatGPT
- 웹소켓연결끊김
- 클래스
- Database
- Express
- nvmrc
- 호스팅영역
- 웹소켓재시작
- 웹소켓연결
- 클라우드
- aiapi
- GPT3.5
- gpt3.5turbo
- nodejs
- chatGPTAPI
- aws
- Today
- Total
목록Backend/Backend 기본 (19)
IT's Jenna
Socket이란? 추상적인 개념의 통신 접속 포인트이자 종착점(Endpoint) 통신에서 각 단말기간 연결해주는 인터페이스 서버 입장에선 접속 포인트이자 접속한 단말이 socket이라고 할 수 있다 socket을 활용해서 통신할 때 사용하는 프로토콜이 TCP & UDP이다. (관련 포스팅 참고) 1. TCP 기반 통신 TCP 프로토콜을 지원하는 모듈인 net을 require 해서 사용할 수 있다. createServer로 서버를 생성한다. socket 관련 동작은 서버가 생성된 후 그 내부에서 동작하게끔 만들어준다. socket.write : socket 즉, 서버의 단말기 측으로 메시지를 보낸다. socket.on('data',function(chunk){}) : socket으로부터 메시지(data)를..
네트워크에서 데이터를 주고받을 때 사용하는 프로토콜은 TCP와 UDP이다. 이때 프로토콜이란, 원거리 통신 장비에서 데이터를 주고받을 때 사용하는 규칙과 양식의 체계를 말한다. 우선 TCP와 UDP의 가장 큰 차이점은 TCP는 데이터의 송수신 확인이 가능하지만, UDP는 송신만 할 뿐 수신 확인은 하지 않는다는 것이다. 아래 그림을 보자. 1. TCP ( Transmission Control Protocol ) 위 그림처럼 TCP 통신 방식이 송수신 확인이 가능한 이유는 TCP는 연결형 가상회선 방식을 제공하기 때문이다. 가상 회선 방식이란 송신지부터 수신지까지 데이터 패킷을 어떻게 보낼지에 대해서 가상으로 경로를 배정한다는 의미다. 여기서 패킷이란, 원활한 데이터의 흐름을 위해 맞춰진 데이터의 형식화된..
하나의 서비스를 완성하기 위해선 수많은 개발자들이 투입된다. 그렇기 때문에 개발을 함에 있어서 협업은 굉장히 중요하다. 백엔드 엔지니어가 API를 만들면 프론트엔드 엔지니어가 해당 API를 활용해야 하기 때문에 그에 대한 정보 공유가 필수다. 따라서 백엔드 엔지니어는 각각의 API가 어떤 매개변수를 입력받아서 어떤 결과를 내놓는지 등의 API 스펙에 관한 문서를 만든다. 하지만 이것을 워드나 엑셀로 만든다면 만드는 사람도 상당히 귀찮고 그것을 확인하는 입장에서도 굉장히 불편하다. 따라서 보다 편하게 API문서를 자동으로 관리할 수 있도록 나온 것이 swagger다. swagger 공부를 처음 시작할 때 참고하기 좋은 사이트가 있다. Swagger에서 자체적으로 개발자들을 위한 Editor을 오픈해두었다 ..
이제 본격적으로 DB의 데이터를 활용하는 서버 API를 만들어 보자. 우선 코딩 설명을 들어가기 전에 다시 한번 express 프레임워크의 구조를 정리해보았다. bin - www : 통신 관련 설정 (포트 및 http 관련) components : 모든 routes 에서 사용되는 공통 API들을 구분하여 정리 config : 데이터 베이스 연결 models : 각 routes에서 사용하는 데이터 베이스의 CRUD API 정의 (insert, update, delete, getList) public : 정적 파일 보관 장소 routes : 라우팅 경로별 client에 응답 동작 설정 (POST, PUT, DELETE, GET) app.js : express 프레임워크의 메인 스크립트로서 라우팅 서버 추가 ..
데이터베이스 모델링 - 현실에 존재하는 복잡한 데이터들을 체계화 및 단순화하여 컴퓨터상의 데이터베이스로 옮기는 과정 - 데이터베이스 모델링을 어떻게 하느냐에 따라 데이터 품질 및 서비스의 질이 달라질 수 있다 데이터베이스 모델링 설계할 때 가이드 - 데이터 중복 줄이기 - 유연하게 설계 (서비스 동작이 변경될 때 대응할 수 있도록 설계되어야 함) - 일관적으로 설계 (설계 및 명명 기준이 명확할 수 있도록) - 데이터베이스에 null 값이 없도록 설계 but, 현실적으로 위 규칙을 지키는 것이 쉽지는 않다.. ERD (Entity Relationship Diagram) - Entity : 하나의 독립적인 데이터 (테이블), Entity는 관계에 따라 다른 데이터를 속성으로 가질 수 있다. - ERD : ..
기본적으로 http 통신 프로토콜에선 req, res에 텍스트를 전달하면서 통신한다. 텍스트 외의 파일을 업로드하기 위해서는 form-data 형식으로 통신을 해야 하고 form-data 형식을 사용하기 위해선 추가 모듈이 필요하다. 이때 사용하는 모듈이 formidable이다. formidable 모듈은 npm i formidable --save로 설치해서 사용할 수 있다. 공부하고 있는 단계에서는 서버와 Database 그리고 파일을 저장하는 storage까지 하나의 PC에서 사용하지만 실무에서는 server 컴퓨터, database 컴퓨터, storage 컴퓨터를 모두 분리해서 사용한다. 이렇게 PC를 분리해서 사용해야 추후에 PC 확장이 용이하다. 파일을 업로드할 때의 절차를 한번 알아보자. 예를..