어려웠던 용어 및 개념 - 1
- 교착 상태(膠着狀態, 영어: deadlock)란 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 가리킨다. 예를 들어 하나의 사다리가 있고, 두 명의 사람이 각각 사다리의 위쪽과 아래쪽에 있다고 가정한다. 이때 아래에 있는 사람은 위로 올라 가려고 하고, 위에 있는 사람은 아래로 내려오려고 한다면, 두 사람은 서로 상대방이 사다리에서 비켜줄 때까지 하염없이 기다리고 있을 것이고 결과적으로 아무도 사다리를 내려오거나 올라가지 못하게 되듯이, 전산학에서 교착 상태란 다중 프로그래밍 환경에서 흔히 발생할 수 있는 문제이다.
- 프로세스(process)는 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램을 말한다. 종종 스케줄링의 대상이 되는 작업(task)이라는 용어와 거의 같은 의미로 쓰인다.
프로세스 상태
커널 내에는 준비 큐, 대기 큐, 실행 큐 등의 자료 구조가 있으며 커널은 이것들을 이용하여 프로세스의 상태를 관리한다.
- 생성(create) : 프로세스가 생성되는 중이다.
- 실행(running) : 프로세스가 CPU를 차지하여 명령어들이 실행되고 있다.
- 준비(ready) : 프로세스가 CPU를 사용하고 있지는 않지만 언제든지 사용할 수 있는 상태로, CPU가 할당되기를 기다리고 있다. 일반적으로 준비 상태의 프로세스 중 우선순위가 높은 프로세스가 CPU를 할당받는다.
- 대기(waiting) : 보류(block)라고 부르기도 한다. 프로세스가 입출력 완료, 시그널 수신 등 어떤 사건을 기다리고 있는 상태를 말한다.
- 종료(terminated) : 프로세스의 실행이 종료되었다.
- 스레드와 멀티스레드
스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드(multithread)라고 한다.
- 해시맵
HashMap이란 Map인터페이스의 한종류로써 Key와 Value 값으로 데이터를 저장하는 형태를 가지고 있다.
Map은 키(Key), 값(Value) 을 하나의 쌍으로 묶어서 저장하는 컬렉션 클래스들을 구현하는 데 사용된다.
쉽게 말해 key, value 값으로 저장하는 List 와 비슷하다.
- REST
Representational safe transfer (REST)는 웹의 장점을 최대한 활용할 수 있는 네트워크 기반의 아키텍처이다.
REST 원리를 따르는 시스템은 종종 RESTful이란 용어로 지칭된다.
영어의 접미사인 ful이란 단어는 가득한 풍부한이라는 뜻이다. REST가 가득하다는 뜻이다.
REST는 요소로는 크게 리소스,메서드,메세지 3가지 요소로 구성된다.
예를 들어서 “name이 sanghyun인 users를 생성한다” 라는 호출이 있을 때
"users" 는 생성되는 리소스,
"생성한다" 라는 행위에 POST 메서드,
"name이 sanghyun인 users" 는 메시지가 된다
이를 REST 형태로 표현해보면
HTTP POST , http://localhost/users/
1 2 3 4 5 | { "users":{ "name":"sanghyun" } } | cs |
1 2 3 4 | { "name":"sanghyun", "hobby":"game" } | cs |
1 2 3 4 | { "name":"sanghyun", "hobby":"piano" } | cs |
HTTP
Web-Browser(브라우저)같은 응용프로그램을 통해
Web-Client(사용자)와 Web-Server(서비스제공자)사이
데이터를 전송하는 프로토콜이다.
1. HTTP는 TCP/IP를 이용하는 응용 프로토콜이다.
컴퓨터와 컴퓨터 간 데이터 전송
2. HTTP는 연결 상태를 유지하지 않는 프로토콜이다.
연결이 지속적이지 않기에 Web-Client와 연결 종료 후
추가적인 Web-Client의 요청시 어떤 Web-Client이 요청인지 모른다는 점 발생해
Cookie, Session, URL Rewriting, Hidden Form Field로 해결
HTTP와 반대로 연결 상태 유지는 프로토콜은 FTP, Telnet이 있다.(TCP/IP)
3. HTTP는 연결 상태를 유지하지 않는 프로토콜이기 때문에
요청/응답(request/response)방식으로 동작한다.
참고 :
https://ko.wikipedia.org/wiki/%EC%9C%84%ED%82%A4
http://bcho.tistory.com/953