정의 : 

데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 수행되어야 할 일련의 연산들을 의미한다.

 

데이터베이스는 정확한 데이터를 유지 및 오류 할 발생 시 빠르게 복구하고, 데이터베이스가 항상 정확하고 일관된 상태를 유지할 수 있도록 다양한 기능을 제공하는데, 그 중심에서 가장 중요한 역할을 하는 것이 바로 트랜잭션이다. 
     -  트랜잭션이라는 것을 관리함으로써 데이터 베이스의 회복과 병행 제어가 가능.

 

데이터베이스 연산은 SQL문으로 표현되므로 트랜잭션을 작업 수행에 필요한 SQL 문들의 모임으로 이해해도 됨.

트랜잭션의 모든 명령문이 완벽하게 처리되거나 하나도 처리되지 않아야 데이터 베이스 모순이 없는 일관된 상태를 유지.

 

트랜잭션은 데이터베이스에 장애가 발생했을 때 복구작업을 수행하거나, 다수의 사용자가 동시에 사용할 수 있도록 제어 작업을 하는 데 중요한 단위로 사용.

 

특징 : 

1. 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위이다.

2. 사용자가 시스템에 대한 서비스 요구시 시스템이 응답하기 위한 상태 변호나 과정의 작업단위이다.

3. 하나의 트랜잭션은 Commit 되거나 Rollback된다.

 

성질 : 

원자성(Atomicity)

1. 트랜잭션의 연산은 데이터베이스에 모두 반영 or 한개도 반영 X 둘중 하나이다.

2. 모든 명령은 완벽히 수행되어야 하며, 한개라고 오류가 생기면 전부가 취소되어야 한다.

 

일관성(Consistency)

1. 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환한다.

2. 시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 한다.

 

독립성(Isolation)

1. 둘 이상의 트랜잭셔이 동시에 병행 실앻되는 경우, 서로의 연산에 끼어들 수 없다.

2. 수행중인 트랜잭션은 완전히 완료될 떄까지 다른 트랜잭션에서 수행 결과를참조할 수 없다.

 

영속성(Durability)

1. 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.

 

연산 종류 : 

Commit 

1. 한개의 트랜잭션에 대한 작업이 성공적으로 끝났고 DB가 다시 일관도니 상태에 있을때 갱신이 완료되었다고 알려주는 연산이다.

 

Rollback

1. 트랜잭션 연산중 하나라도 비정상적으로 종료되어 DB의 일관성을 깨뜨렸을 때, 모든 연산을 취소하는 연산이다.

2. Rollback시에는 해당 트랜잭션을 재시작하거나 폐기한다.

 

상태 : 

활동(Active) : 트랜잭션이 실행중인 상태

실패(Failed) : 트랜잭션 실행에 오류가 발생하여 중단된 상태

철회(Aborted) :  트랜잭션이 비정상적으로 종료되어 Rollback 연산을 수행한 상태

부분 완료 (Partially Committed) : 트랜잭션의 마지막 연산까지 실행했지만, Commit 연산이 실행되기 전의 상태

완료(Committed) : 트랜잭션이 성공적으로 졸요되어 Commit 연산을실행한 후의 상태

 


참고 : 

https://coding-factory.tistory.com/226

 

https://brunch.co.kr/@skeks463/27

 

https://devuna.tistory.com/30

 

https://victorydntmd.tistory.com/129

 

'개발합시다. > BackEnd 공부' 카테고리의 다른 글

OPEN API와 Json (java)  (0) 2021.08.19
ACID란?  (0) 2021.08.18
마이그레이션이란  (0) 2021.08.18
ORM이란  (0) 2021.08.17
PostgreSQL이란?  (0) 2021.08.17

정의 :

IT에서 마이그레이션이란 (Migration) 어떤 환경(운영체제, DB 등등)에서 더 낫다고 여겨지는 환경으로 옮겨가는 과정을 말한다.

 

크게 소프트웨어 마이그레이션 / 하드웨어 마이크레이션이 있는데 이번에는 소프트웨어 마이그레이션에 대해 알아보겠다.

 

종류 : 

 

데이터 마이그레이션

: 데이터를 한 종류의 스토리지에서 다른 종류의 스토리지로 이동하는 것이다. 

이유는 스토리지 용량확장, 성능 향상, 비용 절감, 물리적 설치공간 축소, 새로운 기능 추가를 위한 업그레이드 등이 있다.

 

세단계로 진행된다.

  1. 데이터 추출
  2. 데이터 변환
  3. 데이터 로드

 

데이터베이스 마이그레이션

: 데이터베이스를 업그레이드 하는 과정에서 새로운 인프라로 이동하면서 데이터베이스가 변경되는 것입니다.

데이터를 다른 DB로 이동하려면 소스 DB의 스키마가 대상 DB와 호환되고 변경되어야 합니다.

 

 

애플리케이션 마이그레이션

: 소프트 애플리케이션을 한 IT시스템에서 다른 IT 시스템으로 이동하는 것입니다.

 

종류로는

재호스팅 / 리팩토링 / 플랫폼 재구성 / 종료 또는 교체 등이 있습ㄴ디ㅏ.

 

오늘날에는 많은 IT조직인 컨테이너화된 서비스를 도입하고 DevOps 프로세스를 이용합니다.

 

 

운영체제 마이그레이션

IT 시스템을 다른 OS로 이동하는 것입니다. 

예를 들어 Linux에서 Windows로 옮기는 등이 있다.

 

준비 - 자동화 - 마이그레이션 단계를 따릅니다.

 

 

클라우드 마이그레이션

: 위와 같이 클라우드에서 다른 클라우드로 옮겨가는 것을 뜻합니다.

 


참고 : 

https://www.redhat.com/ko/topics/automation/what-is-it-migration

 

https://mmcmobile.files.wordpress.com/2010/12/01-eba788ec9db4eab7b8eba088ec9db4ec8598-eab09cec9a94.pdf

 

 

 

 

 

 

'개발합시다. > BackEnd 공부' 카테고리의 다른 글

ACID란?  (0) 2021.08.18
트랜잭션(Transaction)이란?  (0) 2021.08.18
ORM이란  (0) 2021.08.17
PostgreSQL이란?  (0) 2021.08.17
운영체제 메모리 관리란?  (0) 2021.08.16

영속성이란?

데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터의 특성을 말합니다.

영속성을 갖지 않는 데이터는 단지 메모리에서만 존재하기 때문에 프로그램을 종료하면 모두 사라집니다.

 

그렇기에 우리는 관계형 DB, 객체 DB 등을 활용하여 데이터에 영구적으로 영속성을 부여합니다.

 

정의 :

ORM(Object-Relational Mapping)은 객체(클래스)와 관계(DB)와의 설정을 의미합니다.

객체 지향 프로그래밍은 클래스를 사용하고 관계형 데이터 베이스는 테이블을 사용합니다.

여기서 객체 모델과 관계형 모델간에 불일치가 존재하는데 이 객체간의 관계를 바탕을 ㅗSQL을 자동 생성하여 불일치를 해결하는 것이 ORM입니다.

 

쉽게 말해서

Object -> 매핑 -> DB데이터

여기서 매핑을 하는것이 ORM입니다.

 

장점 : 

객체 지향적인 코드로 인해 더 직관적이고, 비즈니스 로직에 더 집중할 수 있게 도와줍니다.

 

재사용성 및 유지보수의 편리성이 증가합니다.

 

DBMS에 대한 종속성이 줄어듭니다.

 

단점 : 

완벽한 ORM으로만 서비스를 구현하기가 어렵습니다

 

프로시저가 많은 시스템에서는 ORM의 객체 지향적인 장점을 활용하기 어렵습니다.

 

ORM 프레임워크들 : 

 

JPA/Hibernate 

Sequelize
Django ORM


참조

https://velog.io/@dnjscksdn98/Database-ORM%EC%9D%B4%EB%9E%80

 

https://geonlee.tistory.com/207

 

https://gmlwjd9405.github.io/2019/02/01/orm.html

 

https://velog.io/@alskt0419/ORM%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C...-iek4f0o3fg

 

 

'개발합시다. > BackEnd 공부' 카테고리의 다른 글

트랜잭션(Transaction)이란?  (0) 2021.08.18
마이그레이션이란  (0) 2021.08.18
PostgreSQL이란?  (0) 2021.08.17
운영체제 메모리 관리란?  (0) 2021.08.16
스레드와 동시성  (0) 2021.08.16

 

정의 :

RDBMS 중 하나로 안정되고 진보된 데이터베이스로 알려져 있습니다.

 

특징 : 

Windows, Linux, MAC을 지원합니다.

 

트랜잭션 속성인 ACID에 대한 구현 및 로우레벨 락킹 등이 구현되 있습니다.

 

대용량 데이터 처리에 유용합니다. -> 테이블 파티션, 테이블 스페이스 기능 등

 

웹 기반 또는 GUI 관리 도구를 제공하여 모니터링, 관리, 튜닝까지 가능합니다.

 

표준 SQL을 잘 따르고 있습니다.

 

독창적인 자료형이 있고, jsonb,json형식으로 저장 가능 및 여러 편의성 기능이 있습니다.

 

단점 :

기존 SQL과 다른 문법때문에 새로 배워야합니다.

 

다른 DB로 migration이 쉽지 않습니다.

 

내부구조 : 

기본적인 RDBMS 구조와 같습니다.

PostgreSQL을 구동하면 Postmaster라는 메인 프로세스가 동작합니다.

Postmaster는 공유메모리와 PostgreSQL에 필요한 child process를 생성합니다.

 

후기 : 

사실 직접써보지 않아서 잘 감이 안온다.

다음에 기회가 있으면 꼭 써보고 싶다.


참조

https://d2.naver.com/helloworld/227936

 

https://mangkyu.tistory.com/71

 

http://www.gurubee.net/postgresql/basic

 

https://velog.io/@doohyunlm/SQL-PostgreSQL-%EC%86%8C%EA%B0%9C

 

https://mozi.tistory.com/541

'개발합시다. > BackEnd 공부' 카테고리의 다른 글

마이그레이션이란  (0) 2021.08.18
ORM이란  (0) 2021.08.17
운영체제 메모리 관리란?  (0) 2021.08.16
스레드와 동시성  (0) 2021.08.16
웹호스팅이란??  (0) 2021.08.13

메모리의 정의

메인 메모리, RAM을 뜻한다.

프로그램 실행 시 피룡한 주소, 정보들을 저장하고 가져다 사용할 수 있게 만드는 공간. 즉, 작업을 위해 사용되는 공간

 

메모리 관리의 필요성

각각의 프로세스는 독립된 메모리 공간을 갖고, 운영체제 혹은 다른 프로세스의 메모리 공간에 접근할 수 없는 제한이 걸려있다.

단지, 운영체제 만이 운영체제 메모리 영역과 상요자 메모리 영역의 접근에 제약을 받지 않기 때문에 운영체제에서 메모리를 관리한다.

또한 멀티프로그래밍 환경으로 변화하면서 한정된 메모리를 효율적으로 사용해야 했고, 운영체제가 이를 어떻게 관리하는지에 대한 관리방법이 중요해졌다.

 

운영체제의 역할

실행파일이 로더에 의해 메모리에 올라오고 운영체제는 이 실행파일을 메모리에 어느 부분에 올릴지 결정한다.

 

Swapping

메모리 관리를 위해 사용되는 기법

간단히 말해서 메모리에 적재되어 있으나 현재 사용되지 않고 있는 프로세스를 관리하는 역할.

표준 Swapping 방식으로는 round-robin 과 같은 스케줄링의 다중 프로그래밍 환경에서 CPU 할당 시간이 끝난 프로세스의 메모리를 backing store(보조기억장치 , e.g 하드디스크)로 내보내고 다른 프로세스의 메모리를 불러 들일 수 있다..

 

단편화란

: 메모리 공간이 작은조각으로 나뉘어 사용 가능한 메모리가 충분히 졵내하지만 할당(사용)이 불가능한 상태

 

1. 내부 단편화

2. 외부 단편화

 

메모리 관리 방법

 

1. 연속 메모리 할당 :

프로세스를 메모리에 연속적으로 할당하는 기법

 

특징 : 할당과 제거를반복하다 보면 Scattered Holes가 생겨나고 이로 인한 외부 단편화가 발생

 

a. 최초 적합 (First Fit) 

- 가장 처음 만나는 빈 메모리 공간에 할당

 

b. 최적 적합 (Best Fit)

- 빈 메모리 공간으 ㅣ크기와 프로세스의 크기 차이가 가장 적은 곳에 할당

 

c. 최악 적합 (Worst Fit)

- 빈 메모리 공간의 크기와 프로세스의 크기 차이가 가장 큰 곳에 프로세스를 할당

 

2. 페이징 :

하나의 프로세스가 사용하는 메모리 공간이 연속적이어야 한다는 제약을 없애는 메모리 관리 방법이다. 

외부 단편화와 압축 작업을 해소하기 위해 생긴 방법론으로, 물리메모리는 Frame이라는 고정 크기로 분리되어 있고, 논리 메모리는 페이지라 불리는 고정 크기의 블록으로 분리된다.

 

특징 :

논리 메모리는 물리 메로리에 저장될 때, 연속되어 저장될 필요가 없고 물리 메모리으 ㅣ남는 프레인에 적절히 배치된으로 외부 단편화를 해결할 수 있는 장점

 

단점 : 

내부 단편화 문제의 비중이 늘어나게 된다.

 

3. 세그멘테이션(Segmentation) - 가상메모리 사용

페이징에서처럼 논리 메모리와 물리메모리를 같은 크기의 블록이 아닌, 서로 다른 크기의 논리적 단위인 세그먼트로 분할.

사용자가 두 개의 주소로 지정, 세그먼트 테이블에는 각 세그먼트의 기준과 한계를 저장

 

특징 : 

내부 단편화 해결 / 외부 단편화 존재

 

단점 : 

서로 다른 크기의 세그먼트들이 메모리에 적재되고 제거되는 일이 반복되다 보면, 자유 공간들이 많은 수의 작은 조각들로 나누어져 못 쓰게 될 수도 있다.

 

4. 메모리 풀 : 

필요한 메모리 공간을 필요한 크기, 개수 만큼 사용자가 직접 지정하여 미리 할당받아 놓고 필요할 때마다 사용하고 반납하는 기법

 

특징 :

미리 공간을 할당해놓고 가져다 쓰고 반납하기 때문에 할당과 해제로 인한 외부 단편하가 발생하지 않는다.

또한 필요한 크기만큼 할당을 해놓기 때문에 내부 단편화 또한 생기지 않는다.

 

단점 :

메모리 단편화로 인한 메모리 낭비량보다 메모리 풀을 만들었지만 쓰지 않았을 때 메모리 양이 커질 경우 사용하지 않아야 한다.

 


참조 : 

https://technote-mezza.tistory.com/92

 

https://daeun28.github.io/%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B3%B5%ED%95%99-%EC%8A%A4%ED%84%B0%EB%94%94/post18/

 

https://jinhyy.tistory.com/33

 

 

'개발합시다. > BackEnd 공부' 카테고리의 다른 글

ORM이란  (0) 2021.08.17
PostgreSQL이란?  (0) 2021.08.17
스레드와 동시성  (0) 2021.08.16
웹호스팅이란??  (0) 2021.08.13
도메인 & 도메인네임 이란?  (0) 2021.08.13

스레드의 정의

어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다.

CPU 사용하는 기본단위를 뜻한다.

일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 방식을 멀티스레드라고 한다.

 

 

 

멀티 스레딩

멀티 스레드란 하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것을 의미한다.

멀티 스레드는 각 스레드가 자신이 속한 프로세스의 메모리를 공유한다.

 

멀티스레딩의 장점

  • NonBlocking 으로 처리를 할수있다.
  • Resource 자원을 공유가 쉽다. (프로세스의 shared-memory 나 message-passing 방식에 비해 쉽다.)
  • Context switching 비용이 적다 (프로세스보다 적은 overhead)
  • Scalability 확장성이 뛰어나다.

 

동시성

싱글 코어에서 멀티 스레드를 동작시키기 위한 방식으로 멀티 태스킹을 위해 여러개의 스레드가 번갈아가면서 실행되는 성질을 말한다.

동시성을 이용한 싱글 코어의 멀티 태스킹은 각 스레드들이 병렬적으로 실행되는 것처럼 보이지만 사실은 번갈아가면서 조금씩 실행되고 있는 것이다.

 

병렬성

멀티코어에서 멀티스레드를 동작시키는 방식으로, 한개 이상의 스레드를 포함하는 각 코어들이 동시에 실행되는 성질을 말한다.

 


참고 : 

https://velog.io/@goban/%EC%8A%A4%EB%A0%88%EB%93%9C%EC%99%80-%EB%8F%99%EC%8B%9C%EC%84%B1

 

https://chanto11.tistory.com/63

 

https://beststar-1.tistory.com/24

 

 

 

 

'개발합시다. > BackEnd 공부' 카테고리의 다른 글

PostgreSQL이란?  (0) 2021.08.17
운영체제 메모리 관리란?  (0) 2021.08.16
웹호스팅이란??  (0) 2021.08.13
도메인 & 도메인네임 이란?  (0) 2021.08.13
HTTP 란 무엇인가?  (0) 2021.08.10

정의

웹사이트 또는 웹 애플리케이션을 인터넷에 출시할 수 있게 하는 온라인 서비스다.

웹 호스팅 서비스에 가입하면, 웹사이트 작동에 필요한 파일과 데이터를 저장할 수 있는 물리적인 서버 공간을 할당받게 된다.

 

예를들어 html과 css로 웹페이지를 만들었다고 치면, 배포를 하고 도메인연결까지 해야 다른 사람들이 사용할 수 있다.

웹 호스팅은 이 배포 과정을 전문 업체에 맡기는 것이다.

 

작동방식

서버 공간을 제공하는 호스팅 제공자가 필요하다.

웹호스트는 웹사이트의 모든 데이터를 보관하는데, 사용자가 주소창에 웹사이트 줏를 입력하면, 호스트는 요청에 부합하는 파일들을 전송한다.

 

웹호스트는 웹사이트 데이터 저장을 위한 공간을 제공할 뿐만 아니라 SSL 인증, 이메일 호스팅, 개발자 도구, 백업 등을 지원한다.

 

종류

- Shared hosting

- VPS hosting

- Cloud hosting

- WordPress hosting

- Dedicated hsoting

 

웹호스팅과 도메인 이름의 차이

웹 호스팅 서비스에 가입하는 것 외에도 웹사이트를 운영하려면 도메인 이름이 필요하다.

웹호스팅은 웹사이틀 위한 공간을제공해주는 것

도메인이름은 웹사이트의 주소 역할을 한다.

즉 도메인 이름을 통해 웹호스팅 서비스에 등록하고, 해당 도메인으로 접속한 사용자에게 웹호스팅 서비스는 웹사이트의 데이터를 제공한다.

 

정리

개인 블로그나 소규모 트래픽이 필요한 곳 : 웹 호스팅

트래픽과 DB의 사용량이 많아 서버 관리 인프라가 같이 필요한 곳 : 서버 호스팅

트래픽의 변화에 유동적인 대처가 가능하며 빠른 시간안에 서버를 구축할 수 있는 서비스 : 클라우드 호스팅


참고 : 

https://oneroomtable.tistory.com/entry/%EC%9B%B9-%ED%98%B8%EC%8A%A4%ED%8C%85%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C

 

ozhome.co.kr/hosting/about.html

 

https://jonghyuck.tistory.com/22

 

https://brunch.co.kr/@webbible/41

'개발합시다. > BackEnd 공부' 카테고리의 다른 글

운영체제 메모리 관리란?  (0) 2021.08.16
스레드와 동시성  (0) 2021.08.16
도메인 & 도메인네임 이란?  (0) 2021.08.13
HTTP 란 무엇인가?  (0) 2021.08.10
브라우저는 어떻게 동작할까???  (0) 2021.08.10

정의 

도메인(Domain)은 인터넷상의 주소입니다.

서로 통신할 컴퓨터 위치를 알아야되는데, 그 위치를 확인 할 수 있는 것인 도메인입니다.

 

IP에 대해서 알아보자면, 인터넷에 연결되어있는 장치들은 각각을 식별할 수 있는 주소를 가지고 있습니.

그 식별번호를 IP라고 한다.

ex) 115.68.24.88, 192.168.0.1 등등

 

ip는 사람이 이해하고 기억하기 힘들어서 각 ip에 이름을 부여한 것이 바로 도메인이다. 

ex) naver.com <- 220.95.233.172

 

구조

오른쪽에서부터 1단계, 2단계, 3단계 도메인이라고 불리면서, 오른쪽에서 왼쪽으로 갈수록 도메인 범위가 작아집니다.

 

www.myname.co.kr 로 예시를 들면

 

1단계 : kr (국가 도메인)

2단계 : co (도메인의 성격 - 어떤 도메인인지)

3단계 : myname (원하는 이름)

 

맨 앞에 있는 www는 호스트명입니다.

도메인을 보유하고 있으면 해당 도메인을 활용하여 다양한 호스트 컴퓨터를 운용할 수 있습니다. 

 

예를들어 myname.co.kr 도메인이 있으면, hompate.myname.co.kr, hosting.myname.co.kr와 같이 자유롭게 운영할 수 있습니다.

 

체계

도메인은 전세계적으로 유일하게 존재하므로 일정한 체계가 있습니다.

인터넷의 모든 도메인은 루트(Root)라 불리는 도메인 이하에 트리모양을 이루어 계층적으로 구성되어 있습니다.

 

루트 도메인 아래의 단계를

1단계 도메인(=최상위 도메인(TLD, Top-Level Domain))이라고 하며

그다음 단계를

2단계 도메인(SLD, Second-Level Domain)이라 합니다.

 

도메인의 동작과정은 아래 링크를 참조

https://karice.tistory.com/222

 

DNS란?

1. 정의 DNS : Domain Name System은 사람이 읽을 수 있는 도메인 이름 (www.amazon.com)을 머신이 읽을 수 있는 IP 주소 (192.0.2.44)로 변환합니다. 2. 동작 인터넷상의 모든 컴퓨터는 숫자를 사용하여 서로를..

karice.tistory.com

 


참고 : 

https://blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=lge24528&logNo=120054724365 

 

https://opentutorials.org/course/228/1450

 

https://minemanemo.tistory.com/80

 

'개발합시다. > BackEnd 공부' 카테고리의 다른 글

스레드와 동시성  (0) 2021.08.16
웹호스팅이란??  (0) 2021.08.13
HTTP 란 무엇인가?  (0) 2021.08.10
브라우저는 어떻게 동작할까???  (0) 2021.08.10
DNS란?  (0) 2021.08.10

python *args

 

여러개의 인자를 함수로 받을 때 사용

*args라고 받아도 되고 앞에 *만 붙이면 어떤 단어든 가능하다.

 

def testcode(*args):
	for i in args:
    	print(i[0])
 
 testcode("abc", "cde")

*args를 인자로 받으면 리스트를 인자로 받은 것처럼 사용할 수 있음

 

참고

https://3months.tistory.com/347

https://brunch.co.kr/@princox/180

 

 

python에서 자료형 convert 함수

def convert(data, convertType, default=None, min_len=None, max_len=None):
    try:
        result = convertType(data)
        cmp_val = result if convertType in (int, float) else len(result)

        if ((min_len is not None and cmp_val < min_len) or
                (max_len is not None and max_len < cmp_val)):
            result = default
        return result
    except:
        return default

data의 값을 convertType 자료형으로 변경하고, default와 최솟값, 최댓값을 설정할 수 있는 함수

 

 

django 세팅

 

프로젝트 생성

django-admin startproject myproject(프로젝트 이름)

- myproject만 변경해주면 됨

 

앱폴더 생성 (manage.py가 있는 폴더에서 실행)

python manage.py startapp myapp(앱 이름)

-myapp만 원하는 값으로 변경해주면 됨

 

참고 :

https://seongonion.tistory.com/58

정의

 

Hyper Text Transfer Protocol의 약자로 인터넷에서 데이터를 주고 받을 수 있는 프로토콜(규칙)입니다.

 

동작 

 

클라이언트 즉, 사용자가 브라우저를 통해서 어떠한 서비스를 url을 통하거나 다른 것을 통해서 요청(request)을 하면 서버에서는 해당 요청사항에 맞는 결과를 찾아서 사용자에게 응답(response)하는 형태로 동작한다.

 

  • HTTP 메시지는 HTTP 서버와 HTTP 클라이언트에 의해서 해석이 됩니다.
  • TCP/IP를 이용하는 응용 프로토콜(application protocol)입니다.
  • HTTP는 연결 상태를 유지하지 않는 비연결성 프로토콜입니다. (이러한 단점을 해결하기 위해 Cookie와 Seesion 등장)
  • HTTP는 연결을 유지하지 않는 프로토콜이기 떄문에 요청/응답(request/response) 방식으로 동작합니다.

-서버 : 어떠한 자료에 대한 접근을 관리하는 네트워크 상의 시스템 (요청에 대한 응답을 보내준다.)

-클라이언트 : 그 자료에 접근할 수 있는 프로그램
Ex) 웹 브라우저, 핸드폰 어플리케이션 등...

 

  • 요청 : client -> server
  • 응답 : server -> client

 

Request (요청)

 

클라이언트가 서버에게 연락하는 것을 요청이라고 하며 요청을 보낼때는 요청에 대한 정보를 담아 서버로 보낸다.

 

Request Method (요청의 종류)

 

GET : 자료를 요청할 때 사용
POST : 자료의 생성을 요청할 때 사용
PUT : 자료의 수정을 요청할 때 사용
DELETE : 자료의 삭제를 요청할 때 사용

 

Response (응답)

서버가 요청에 대한 답변을 클라이언트에게 보내는 것을 응답이라고 한다.

 

Status Code (상태 코드)

 

상태 코드에는 굉장히 많은 종류가 있다. 모두 숫자 세 자리로 이루어져 있으며, 아래와 같이 크게 다섯 부류로 나눌 수 있다.

-1XX (조건부 응답) : 요청을 받았으며 작업을 계속한다.
-2XX (성공) : 클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며 성공적으로 처리했음을 가리킨다.
-3XX (리다이렉션 완료) : 클라이언트는 요청을 마치기 위해 추가 동작을 취해야 한다.
-4XX (요청 오류) : 클라이언트에 오류가 있음을 나타낸다.
-5XX (서버 오류) : 서버가 유효한 요청을 명백하게 수행하지 못했음을 나타낸다.


참조

 

https://www.zerocho.com/category/HTTP/post/5b344f3af94472001b17f2da

 

https://medium.com/@lunay0ung/protocol-http%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C-84a896c5fc93

 

https://velog.io/@surim014/HTTP%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

 

https://velog.io/@sejong202/HTTP%EB%8A%94-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C%EC%9A%94

 

+ Recent posts