※ 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 서버에 요청을 보낼 때 흔하게 발생.
- 서로 다른 도메인간에 자원을 공유하는 것을 뜻함.
'CS 백엔드' 카테고리의 다른 글
[DB 이론] Index (with. Django) (0) | 2022.05.24 |
---|---|
[CS] 백엔드 (추가중) - Django, Python (0) | 2022.03.25 |
[CS] 백엔드 (추가중) - 데이터베이스 (0) | 2022.03.25 |
[CS] 백엔드 (추가중) - 운영체제 (0) | 2022.03.25 |