이론 공부

기타 개념 정리

Yuco 2023. 3. 29. 08:04

1. status code 200

- 웹 서비스에서 반환되는 상태 코드는 HTTP Status Code라고 불림

1) 200 : 요청이 성공적으로 되었음을 알려줌, 정보는 요청에 따른 응답으로 반환됨 (= 주로 서버가 요청한 페이지를 제공했다는 의미로 쓰임)
2) 404 Not Found : 서버가 요청받은 리소스를 찾을 수 없을 때 (브라우저에서 찾을 수 없는 URL을 입력했을 때, 서버에 존재하지 않는 페이지에 대한 요청이 있을 경우)
 

 

2. CRUD 

- 대부분 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말
+ 데이터베이스에서는 INSERT, SELECT, UPDATE, DELETE (데이터베이스를 사용하기 위한 기초적인 4가지 쿼리 형식)
클라이언트 서버 간 HTTP 프로토콜을 이용해 RESTful 하게 데이터를 전송할 때도 CRUD 개념이 활용됨 
Create = POST / Read = GET / Update = PUT / Delete = DELETE
 

 

3. 웹 서버 작동 설명

- 클라이언트가 서버에 요청을 보내면 서버는 요청에 대한 응답을 해줌
* HTTP : 클라이언트와 서버가 서로 통신할 수 있게 하기 위한 언어를 정의하는 애플리케이션 규약
 
1) Web Client : 사용자가 웹에 접근하는 프로그램으로 Chrome과 같은 웹 브라우저, 클라이언트는 사용자로부터 받은 URL에 대한 정보를 찾아 HTTP 메시지 형태로 서버에게 요청
2) Web Server : 웹 페이지를 저장하는 프로그램으로 Apache Web Server가 있음, 서버는 클라이언트에서 요청한 HTTP 메시지를 확인한 후 HTML, CSS, Image 등의 데이터를 처리하여 클라이언트에 응답
3) WAS(Web Application Server) : 앞에 말한 서버만으로 모든 로직을 수행한다면 과부하가 일어날 수 있기 때문에 서버를 돕는 조력자 역할을 함 서버는 DB의 연동을 위해 WAS에 처리 요청을 하기도 함, 사용자 컴퓨터나 장치에 웹 어플리케이션을 수행해주는 미들웨어로 Apache Tomcat이 있음
4) DB : 데이터의 정보를 저장하는 곳으로 WAS에서 데이터를 요청하면 필요한 데이터를 응답 
 
+ WAS에서 로직을 수행하다가 데이터를 저장하거나 받아오는 작업이 필요하면 SQL 질의를 통해 DB에 접근
 

 

4. open api

- 누구나 사용할 수 있도록 공개된 API
 
1) API : Application Programming Interface : 어떠한 응용 프로그램에서 데이터를 주고 받기 위한 방법 (특정 사이트에서 특정 데이터를 공유 할 경우 어떠한 방식으로 정보를 요청하고 받을 수 있는지에 대한 규격들이 API)
2) 인터페이스 : 어떤 기계(장치)끼리의 정보를 교환하기 위한 수단이나 방법
3) OPEN API 사용 방법 : 공개 키 발급 받아야 함

 

5. Camel Case, Snake Case, Kebab case

 

1) Camel Case

문자열의 첫 문자를 제외하고 단어의 첫 글자마다 대문자로 표현하는 방식 ex. camelCase

2) Snake Case

각 단어 사이에 언더바를 구분자로 사용하며, 모두 소문자로 처리하는 표현법 ex) snake_case

3) Kebab Case 

카멜 케이스와 달리 모두 소문자로 표현하며, 단어와 단어 사이를 대시(-)를 이용하여 구분 ex) kebab-case

4) Pascal Case

카멜 케이스와 유사하지만 첫 문자도 대문자로 표현 ex) PascalCase

 

 

6. 로드 밸런싱

- 트래픽을 분산시켜주는 컴퓨터 네트워크 기법 (여러대의 서버 사용)
- 하나의 인터넷 서비스에 발생하는 트래픽이 많을 때 여러 대의 서버가 분산 처리하여 서버의 로드율 증가, 부하량, 속도 저하 등을 고려하여 적절히 분산 처리하여 해결해주는 서비스

 

 

7. 쿠버네티스?

- 컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼
 

 

8. 서버리스 아키텍쳐?

- 클라우드 컴퓨팅 모델 중 하나로 개발자가 서버를 직접 관리할 필요가 없는 아키텍쳐
동적으로 서버의 자원 할당(사용자가 없다면 자원을 할당하지 않고 대기하며, 요청이 들어오면 그 때 자원을 할당해서 요청을 처리하고 다시 대기 상태로 들어감) = 자원을 효율적으로 사용할 수 있음
- 서버리스 아키텍쳐의 대표적인 두 가지 구현 방식은 FaaS(Function as a Service), BaaS(Backend as a Service) 
 

 

9. Firebase

- BaaS 중 하나(서버리스 아키텍쳐)
- 구글이 소유하고 있는 모바일 애플리케이션 개발 플랫폼으로 개발자가 앱을 구축, 배포 및 성장시키는 방식에 혁신을 가져옴 
앱을 개발하고, 개선하고, 키워갈 수 있는 도구 모음 
 

 

10. Serializer 

- 장고에 저장되어 있는 모델 인스턴스를 REST API에서 사용하는 JSON 형태로 바꿔주는 것 
DRF로 rest API 개발을 할때 데이터를 json 형식으로 주고 받는데, 장고에서 쓰는 모델객체를 쉽게 전달하기 위해 json으로 변환시켜주는게 serializer의 역할
 

 

11. TDD(테스트 주도 개발)

- 소프트웨어 개발 방법론 중 하나로 선 개발 후 테스트 방식이 아닌 선 테스트 후 개발 방식의 프로그래밍 방법 (테스트를 염두에 둔 프로그램 개발 방법)
- 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현(매우 짧은 개발 주기의 반복에 의존하는 개발 프로세스)

'이론 공부' 카테고리의 다른 글

python 이론 정리  (0) 2023.03.30
SOLID 원칙  (0) 2023.03.29
Java의 Call By Value, Call By Reference  (0) 2023.03.28
캐시 (Cache) / 캐싱 (Caching)  (0) 2023.03.28
AWS, Docker 개념  (0) 2023.03.28