본문 바로가기

CS 백엔드

[CS] 백엔드 (추가예정) - 네트워크

 

※ Debelopment Common Sense


좋은 코드란?

  • 읽기 쉬운 코드
  • 중복이 없는 코드
  • 테스트가 용이한 코드

객채지향언어 ?

  • 프로그램을 다수의 '객체'로 만들고, 이들이 서로 상호작용을 통해 만들어지는 방식의 언어.
  • 간단히 말해서, 각 기능의 역할을 각각의 독립된 부품(객체)로 만들어서 유지보수하기에 용이하도록 하는 것.

객체지향언어의 특징 ?

  • 캡슐화
  • 상속
  • 다형성
  • 추상화

객체지향언어의 장점 및 단점 ?

장점 ->

  • 재사용서
  • 생상성 향상
  • 자연적인 모델링
  • 유지보수의 우수성

단점 ->

  • 개발속도가 느림
  • 실행속도가 느림
  • 고딩난이도 상승

종류 -> 본인이 사용하는 언어 == 파이썬

  • 파이썬[Python] : 인터프리터식, 객체지향적, 동적 타이핑 대화형 언어

Rest API 와  Restful API

REST ->

네트워크 상에서 Client와 Server 사이의 통신 방식.

 

REST의 구성요소 ->

1. 자원 (Resource) - URI

  • 모든 자원에는 고유한 ID가 존재하고, 이 자원은 Server에 존재한다.
  • 자원을 구별하는 ID는 '/exgroups/:exgroup_id'와 같은 HTTP URI 입니다.
  • Client는 URI를 이용해 자원을 지정하고 해당 자원의 상태(정보)에 대한 조작을 Server에 요청합니다.

 

2. 행위 (Verb) - MEthod

  • HTTP 프로토콜의 Method를 사용합니다.
  • HTTP 프로토콜은 GET, POST, PUT, PATCH, DELETE의 Method를 제공합니다.

 

3. 표현 (Representation of Resource)

  • Client와 Server가 데이터를 주고받는 형태로 JSON, XML, TEXT, RSS 등이 있습니다.
  • JSON, XML을 통해 데이터를 주고 받는 것이 일반적입니다.

HTTP 메서드 종류와 역할 ->

  • GET 요청은 서버에 존재하는 데이터를 요청하는 것입니다. CRUD로 따지면 R입니다.
  • POST 요청은 서버에 데이터를 생성하는 것을 요청합니다. CRUD로 따지면 C입니다.
  • PUT 요청은 서버에 존재하는 데이터의 모든 것을 수정하거나 존재하지 않으면 생성합니다. CRUD로 따지면 C,U입니다.
  • DELETE 요청은 서버에 데이터를 제거할 것을 요청합니다. 존재하지 않아도 동일하게 동작합니다. CRUD로 따지면 D입니다.
  • PATCH 요청은 서버에 존재하는 데이터를 일부 수정합니다. CRUD로 따지면 U입니다.

REST API ->

API :

  • 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스.

REST API :

  • REST의 특징을 기반으로 서비스 API를 구현한 것.
  • 각 요청이 어떤 동작이나 정보를 위한것인지를 그 요청의 모습 자체로 추론이 가능한 것.
  • URI는 정보의 자원만 표현해야 하며, 자원의 상태와 행위는 HTTP Method에 명히한다는 것입니다.

RESTful API:

  • REST의 설계 규칙을 잘 지켜서 설계된 API.
  • RESTful API는 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것.

HTTP와 HTTPS

HTTP ->

  • 따로 암호화 과정을 거치지 않기 때문에 중간에 패킷을 가로챌 수 있고, 수정할 수 있습니다.
  • 따라서, 보안이 취약해짐을 알수 있습니다.

HTTPS ->

  • HTTP를 보안하기 위해 나온 것이며,
  • 중간에 암호화 계층을 거쳐서 패킷을 암호화합니다.

CORS

  • 웹 개발을 하다가 흔히 만날 수 있는 이슈.
  • 보통은 프론트엔드 개발 시에 로컬에서 API 서버에 요청을 보낼 때 흔하게 발생.
  • 서로 다른 도메인간에 자원을 공유하는 것을 뜻함.