
1. Git이란? 개발자라면 Git을 모를 수가 없을 것이다. 사이드 프로젝트에서든 실무에서든 개발 프로젝트에서는 Git 없이는 개발과 협업이 거의 불가능할 정도로 개발자에게는 필수적인 Tool이다. Git은 형상 관리 도구(버전 관리 시스템) 중 하나로 소프트웨어를 개발하는 집단에서 코드를 효과적으로 관리할 수 있게 도와주는 무료이자 공개 소프트웨어다. 한 마디로 Git은 여러명의 개발자가 하나의 소프트웨어를 개발할 때 소스코드를 관리를 하기 위해서 사용한다고 생각하면 된다. (1) Git의 필요성 위에 언급한 것과 같이 Git은 여러명의 개발자가 하나의 소프트웨어를 개발 할 때 소스코드 관리를 위해서 사용한다고 하는 데 그렇다면 어떤 점의 이유 때문에 Git과 같은 버전 관리 시스템을 사용해야할까? ..
참고 자료 : https://mangkyu.tistory.com/69 오늘은 Cache, Cookie와 Session에 대해서 공부하고자 한다. 먼저 Cache, Cookie, Session은 왜 사용하는가?? 바로 HTTP 특징 때문인데, HTTP의 특징 중에서는 Stateless Protocol과 Connectionless Protocol이 있다. Stateless Protocol Client의 상태 정보를 가지지 않는 서버 처리 방식으로, Client와 첫번째 통신에서 데이터를 주고 받았다고 하더라도 두번째 통신에서 이전 데이터를 유지하지 않는다. Connectionless Protocol Client가 Server에 요청을 했을 때, 그 요청에 맞는 응답을 보낸 후 연결을 끊는 처리 방식 하지만 ..
Queue 컴퓨터의 자료구조로, 먼저 넣은 데이터가 먼저 나오는 FIFO(First In First Out) 구조로 저정하는 형식 Queue는 위에서 쌓이는 이미지로 설명한 Stack과 달리 위의 이미지와 같이 입구와 출구가 다른 구조라고 생각하면 쉽다. 데이터가 들어오는 입구와 나가는 출구는 동일하지 않기에, 입구로 먼저 들어온 데이터가 출구로 가장 먼저 나가는 구조를 가지고 있으며, Queue에서 데이터가 들어가는 입구를 rear이라고 하고, 데이터가 나오는 출구를 front라고 한다. Queue는 FIFO라고 하는 데, FIFO는 First In FIrst Out의 약자로, 처음 들어가는 데이터가 가장 먼저 나오는 구조라는 의미다. 전에 이야기 했던 Stack이 가지고 있는 LIFO 특성과 차이점은..
Stack 한 쪽 끝에서만 자료를 넣고 뺄 수 있는 LIFO(Last In First Out)형식의 자료 구조 Stack은 데이터가 한 줄로 위에서 아래로 들어간다고 생각하면 쉬운데, 아래로 데이터가 들어오거나 나갈 수 없고, 위에서 데이터가 들어와서 차곡차곡 쌓이고, 데이터가 나갈 때도 위에서부터 나가는 구조인데 이는 LIFO를 따르기 떄문이다. LIFO(Last In First Out)는 최근의 추가항 데이터가 가장 먼저 제거되는 것이다. Stack의 대표적인 기능은 아래와 같다. push : Stack에 요소를 추가한다. pop : Stack에서 요소를 뺀다. top : Stack의 입구와 가장 가까운 요소에 대해 반환한다. size : Stack의 크기를 반환한다.
참고 사이트 : https://velog.io/@hi_potato/Template-Engine-Template-Engine Template Engine 지정된 템플릿 양식과 데이터가 합쳐져서 HTML 문서를 출력하는 소프트웨어 Web Template Engine는 View(Html)와 Data Logic(DB)와 분리해주는 기능을 하며, 템플릿 엔진은 서버 사이드 템플릿 엔진과 클라이언트 사이드 템플릿 엔진으로 나누어진다. Server Side Template Engine 서버에서 DB 혹은 API에서 가져온 데이터를 미리 정의된 Template에 넣어서 HTML을 그리고 클라이언트에 전달해주는 역할을 수행하는 데, HTML 코드에 정적으로 사용되는 부분을 템플릿으로 만들어두고 동적으로 생성되는 부분(데..
HTTP Header에는 HTTP 전송에 필요한 모든 부가 정보가 담겨있다. ex) 서버 정보, 캐시 정보, 메세지 바디의 크기 ... 최신인 RFC7230에서는 메세지 본문을 통해 표현 데이터를 제공하며, 이를 페이로드(payload)라고 한다. 표현은 요청이나 응답에서 실제로 사용할 수 있는 데이터를 뜻하며, 표현 헤더는 표현 데이터를 해석할 수 있는 정보인 데이터 유형, 압축 정보, 데이터 길이등을 제공한다. 표현 헤더 표현 헤더는 응답과 요청에 모두 사용되며, 아래의 4가지가 있다. Content-type : 표현 데이터 형식 Content-Encoding : 표현 데이터 압축 방식 Content-Language : 표현 데이터의 자연 언어 Content-Length : 표현 데이터의 길이 Con..
2진법과 10진법 우리는 일상생활에서 주로 10진법을 사용한다. 1946년에 개발된 컴퓨터 에니악은 사람에게 익숙한 10진법을 사용하도록 설계되었지만, 전기 회로는 전압이 불안정하여 전압을 10단계로 나누어 처리하는 데 한계가 있었다. 그래서 1950년에 개발된 에드박은 단 두가지 단계, 전기가 흐르면 1, 전기가 흐르지 않으면 0으로만 동작하도록 설계되었고 매우 성공적이었기에, 지금까지 대부분의 컴퓨터는 2진법을 사용한다. 우리는 변수에 값을 저장하면 10진수로 저장되는 것처럼 보았지만, 실제로 컴퓨터는 2진수 밖에 모르기에, 2진수로 바뀌어 저장하게 된다. 따라서 age에 22를 저장하면 실제로는 2진수인 11001로 저장이 되는 것이다. 2진수는 0과 1로만 데이터를 표현하기에 10진수보다 많은 자..
HTTP 상태 코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능으로 크게 5가지로 구분된다. 1XX (Informational) : 요청이 수신되어 처리 중 2XX (Successful) : 요청 정상 처리 3XX (Redirection) : 요청을 완료하려면 추가 행동이 필요 4XX (Client ERROR) : 클라이언트 오류, 잘못된 문법등으로 서버가 기능을 수행 할 수 없다. 5XX (Server ERROR) : 서버 오류, 서버가 정상 요청을 처리하지 못 함. 2XX (Successful) 클라이언트의 요청을 성공적으로 처리 200 : 요청 성공 201 : 요청이 성공하여, 새로운 리소스가 생성됨 202 : 요청이 접수는 되었지만,처리가 되지 않았다. 204 : 서버가 요청을 성..
HTTP HyperText Transfer Protocol HTTP의 특징 클라이언트 서버 구조 무상태 프로토콜(Stateless), 비연결성 HTTP 메세지 단순함, 확장 가능 HTTP 버전 HTTP/1.1 : TCP -> 주로 해당 버전 사용 HTTP/2 : TCP HTTP/3 : UDP 1. 클라이언트와 서버 구조 클라이언트와 서버는 요청(Request)과 응답(Response)을 주고 받는다. 클라이언트는 요청을 보내고 응답을 대기하며, 서버는 요청에 대한 결과를 만들어서 응답한다. 2. 무상태 프로토콜(Stateless) 서버가 클라이언트의 상태를 보존하지 않기에, 서버 확장성이 높지만, 클라이언트가 지속적으로 추가 데이터를 전송해야한다. 3. 비연결성 HTTP는 연결을 유지하지 않는 모델로, ..
URI (Uniform Resource Identifier) Uniform : 리소스 식별하는 통일된 방식 Resource : 자원, URI로 식별 가능한 모든 것 Identifier : 다른 항모과 구분하는 데 필요한 정보 URI는 URL과 URN을 모두 포함하지만 주로 URN은 사용이 되지 않는다. URN (Uniform Resource Name) : 리소스에 이름을 부여한다. URL (Uniform Resource Locator) : 리소스가 있는 위치를 지정한다. 프로토콜(https) 호스트명(www.google.com) 포트 번호(443) 패스(/search) 쿼리 파라미터 예시 # 구조 scheme://[userinfo@]host[:port][/path][?query][#fragment] # ..