쿠키와 세션의 필요성 쿠키와 세션일 왜 필요할까? 에 대해 묻는다면 아마 HTTP의 특징 때문일 것이다. HTTP에는 서버가 응답을 완료하면 연결이 끊어버리는 성질이 있는 비연결성(Connetionless) 요청에 답하는 동시에 연결을 끊고 통신을 종료하기 때문에 상태를 저장하지 않는다는 무상태성(Stateless) 이라는 큰 특징이 있는데 자주 사용하는 웹사이트에 들어갈 때마다 매번 로그인해야 한다던가 똑같은 팝업창이 매번 나온다던가 하는 등의 번거로움을 줄이기 위해 쿠키(Cookie) 와 세션(Session)이 등장했다. HTTP 특징 자세히 알아보기 쿠키(Cookie) 란? 크롬, 사파리 같은 브라우저에 저장되는 키와 값이 들어있는 작은 데이터 파일이다. 쿠키는 클라이언트의 상태 정보를 로컬(브라우..
동기 (Synchronous) 동기는 서버에서 요청을 보냈을 때 응답이 돌아와야 다음 동작을 수행하는 직렬적인 일처리를 말한다. 예를들어, A작업이 모두 진행될 때까지 B작업은 대기 상태에 있는다. 동기는 설계가 간단하고 직관적이라는 장점이 있는 반면, 응답이 올 때까지 대기해야 하므로 비효율적이라는 단점이 있다. 비동기 (Asynchronous) 비동기는 서버에서 요청을 보냈을 때 응답상태와 관련 없이 다음 동작을 수행하는 병렬적인 일처리를 말한다. 예를들어, A작업에 대한 요청을 보냄과 동시에 B작업을 실행한다. A작업은 결과값이 나오는 대로 출력한다. 비동기는 동기에 비해 복잡하고 결과가 주어지는 데까지 시간이 걸리지만, 그 시간 동안 다른 작업을 할 수 있으므로 효율적으로 자원을 사용할 수 있다는..
✏️HTTP 개념 및 진화과정 보러가기 HTTP 메서드 HTTP는 요청 메서드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타낸다. 총 9가지 종류가 있다. 주요 메서드 5가지 1. GET - 리소스를 조회한다. - 서버에 전달하고 싶은 데이터는 Query를 통해 전달한다. - 메세지 바디를 사용할 수 있지만 지원하지 않는 곳이 많아 권장하지 않는다. GET/MEMBER/1 2. POST - 요청데이터를 처리하며, 주로 데이터 등록에 사용한다. - 메세지 바디 안에 데이터를 담아 서버로 요청데이터를 전달한다. - 서버는 요청데이터를 처리한다. - 메세지 바디를 통해 들어온 데이터를 처리하는 모든 기능을 수행한다. - 주로 전달된 데이터로 신규 리소스를 등록하며 프로세스 처리에 사용한다. POST..
✏️HTTP 메서드 및 상태코드 보러가기HTTP란?HTTP (Hyper Text Transfer Protocol ) 란 HTTP는 월드 와이드 웹 (World Wild Web, WWW) 에 내재된 프로토콜로 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이다. 웹에서 이루어지는 모든 데이터 교환의 기초이며 클라이언트-서버 프로토콜이기도 하다. 클라이언트 서버 프로토콜(Client-Server Protocol) - 클라이언트에서 요청을 보내면 서버에서 응답을 하는 규칙 프로토콜 (Protocol) - 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계 HTTP의 시작과 진화HTTP의 진화과정을 간단하게 설명하면 아래 그림과 같다. HTTP/0.9 ( = 원-라..
API란? API(application programming interface 애플리케이션 프로그래밍 인터페이스, 응용 프로그램 프로그래밍 인터페이스)는 컴퓨터나 컴퓨터 프로그램 사이의 연결이다. 일종의 소프트웨어 인터페이스이며 다른 종류의 소프트웨어에 서비스를 제공한다. - 위키백과 (API) API란 둘 이상의 컴퓨터 프로그램이 서로 통신하는 방법이자 컴퓨터 사이에 있는 중계계층 (매개체)을 의미한다. 이 중계계층 안에는 어떤 프로토콜인지? (HTTP/ HTTPS), 메서드(get,post...), 데이터 교환 형식(JSON,XML) 등이 정의되어있다. 여기서 인터페이스(Interface)란 서로 다른 두 개의 시스템 사이에서 정보를 주고 받을 때 그 사이를 연결하는 연결장치를 말한다. 컴퓨터와 사용..
문제설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다.\ 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 array의 길이는 1 이상 100 이하입니다. a..
REST 란 "REpresetational State Transfer" 의 약자로 REST는 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다. HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해 해당 자원(URI)에 대한 CRUD Operation을 적용된다. API 란 애플리케이션 프로그래밍 인터페이스 (Application Programming Interface)의 약자이다. 프로그램들이 서로 상호작용 하는 것을 도와주는 매개체로 다른 소프트웨어 시스템과 통신하기 위해 따라하는 규칙을 정의..
절차지향 언어 (Procedural Programming) 어떤 기능을 어떤 순서로 처리할 것인가? 데이터 중심. 순차적. 빠른 실행속도. C언어 절차지향 언어는 절차지향 프로그래밍에 쓰이는 언어이다. 개체를 순차적으로 처리하여 프로그램 전체가 유기적으로 연결되어 있다. 그렇기 때문에 서로 분리되어서도 안되고 순서에 따라 진행되어야 한다. 프로그램의 순서와 흐름을 먼저 세운 뒤 필요한 자료구조와 함수들을 설계하는 방식이다. 특징 1) Top-Down 하나의 큰 기능을 처리하기 위해 작은 단위의 기능들로 나누어 처리한다. 2) 데이터와 함수를 별개로 취급 특정 기능을 수행할 때, 메서드를 직접 호출해야 한다. (객체가 메서드를 가지고 있는 객체지향 언어와 다름) 3) 모든 함수는 데이터 공유가 가능 메서드..