📌 API API(Application Programing Interface) API는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다. 주로 파일 제어, 창 제어, 화상 처리, 문자 제어 등을 위한 인터페이스를 제공한다. 즉, API는 프로그램들이 서로 상호작용하는 것을 도와주는 매개체이자 규칙으로 볼 수 있다. 👉 API의 역할 서버와 데이터베이스에 대한 출입구 역할은 한다. 데이터베이스에는 정보들이 저장되는데 모든 사람들이 이 데이터베이스에 접근할 수 있으면 안 될 것이다. API는 이를 방지하기 위해 여러분이 가진 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여한다. 애플리케이션과 기기가..
👉 Go 프로젝트 구조 👉 Go 프로젝트는 모듈이다. Go 1.14부터 Go에는 Module 이라는 개념이 생겼다. Go Module이 나오기 전의 Go는 Python과 같이 기본적으로 실행 환경이 설치된 곳(GOPATH)에 의존 패키지가 모여서 설치되는 구조였다. 하지만 요즘 나오는 Go는 모두 다 Go Module 이라고 보면 된다. 각 모듈마다 의존 패키지는 따로 관리된다. 👉 Go Module 시작하기 $ go mod init [모듈명] go.mod 파일이 생성된다. go.mod module [모듈명] go 1.19 👉 src 디렉토리가 따로 없고, 모듈이 루트 패키지 이다. - Go 언어에서 루트 패키지는 모듈에 대한 공식적인 패키지 경로를 가리킨다. Go 모듈은 Go 코드의 패키지 의존성 관리..
🚨 API 요청을 구분할 수 있도록 하는 체계 클라이언트, 서버와 같은 서로 다른 프로그램에서 요청과 응답을 주고 받을 수 있게 만든 체계 클라이언트 컴퓨터에서 요청을 보내고 서버 컴퓨터에서 요청을 받아서 응답을 준다. 서버는 주소에 따라 요청의 종류를 정해놓아야 한다. API는 서버 개발자가 개발하고, 클라이언트 개발자는 그 API를 사용한다. API를 통해 요청과 응답을 주고 받을 때는 데이터도 같이 담긴다. 👉API의 4가지 요청 요소 : CRUD C(Create) : 생성 요청 R(Read) : 읽기 요청 U(Update) : 변경 요청 D(Delete) : 삭제 요청 🚨 RESTful API CRUD 요청은 각각의 주소를 가져서 CRUD 별로 주소가 생기면 주소가 너무 많아지고 관리가 힘들어져 ..
👉 DRF의 REST? API - 응용프로그램 데이터를 주고받는 규약 REST API - Json 형태로 CRUD 데이터를 주고받는 규약 RESTful - REST 방식을 따라서 개발하는 것(GET,POST,DELETE,PUT) 👉 DRF(Django REST Framwork) 장고 안에서 RESTful 한 API 서버를 쉽게 구축할 수 있도록 도와주는 오픈소스 라이브러리이다. DRF의 큰 기능은 Models를 serializers(직렬화)로 변환하는 것이다. 직렬화 : 추상적인 object를 구체적이고, 저장 가능하고, 전송 가능한 텍스트파일(연속된 byte 파일 = stream of bytes)로 바꿔주는 것 직렬화를 하는 이유? object는 메모리에 존재하고, 추상적인데 비해서 String or ..
👉 Django란? 파이썬 언어로 만들어진 무료 오픈소스 웹 어플리케이션 프레임워크이다. 👉 작동방식 사용자가 서버에 웹페이지를 보내달라고 요청(request) 한다. 서버가 메일박스(port)에서 요청이 도착했는지 확인한다. 장고의 urlresolver가 요청을 가져와 URL과 맞는지 확인한다. 만약 일치하는 것이 있으면, 해당 요청을 VIEW에 넘겨준다. 요청이 도착했으면, 웹페이지를 보내준다. 👉 Django 프로젝트 파일의 기능 manage.py (명령창을 통해, 각종 django의 명령을 실행하기 위한 파일) (프로젝트명으로 생성된 디렉토리, 함부로 수정 금지!) __init__.py (python이 이 폴더를 패키지로 인식되도록 하기 위해 필요한 빈 파일) asgi.py (웹서버와, djang..
📌 클러스터란? 보통 데이터베이스 구축의 경우 1개의 서버로 하나의 데이터베이스를 구축해서 사용한다. 그런데 이렇게 1개의 서버가 하나의 데이터베이스를 사용할 경우 이 서버가 죽으면 서비스가 죽는 현상이 발생하게 된다. 또는 사용자가 엄청나게 유입되었을 때 이에 대한 처리를 서버 하나가 처리할려고 하면 서버는 견디지 못하고 뻗어버리게 된다. 이런 여러가지 이유로 하나의 데이터베이스를 여러 서버가 나눠서 구축하게 된다. 이처럼 하나의 데이터베이스를 여러개의 서버로 구축되는 경우를 클러스터라고 지칭한다.
📌 스택(Stack)이란? 스택은 "쌓다"라는 의미로, 데이터를 차곡차곡 쌓아 올린 형태의 자료구조이다. 위의 사진과 같이 데이터가 순서대로 쌓이며 가장 마지막에 삽입된 자료가 가장 먼저 삭제되는 구조를 가지고 있다. 정해진 방향으로만 쌓을 수 있으며, top으로 정한 곳을 통해서만 접근할 수 있다. 새로 삽입되는 자료는 top이 가리키는 가장 맨 위에 쌓이게 되며, 자료를 삭제할 대도 top을 통해서 삭제가 가능하다. 스택에서는 삽입 연산을 push, 삭제 연산을 pop이라고 하며, 이러한 스택의 구조를 후입 선출 구조라고 하며, 줄여서 LIFO(Last In First Out)라고 부른다. 📌 스택(Stack) 사용 사례 웹 브라우저 방문기록(뒤로 가기) 실행 취소 📌 큐(Queue)의 개념 큐는 스..