본문 바로가기

Road to Web Developer

동기와 비동기의 개념 1. 동기 방식(Synchronous)요청이 들어온 순서에 맞게 하나씩 처리하는 방식이다. 순서에 맞춰 진행되는 장점이 있지만, 여러 가지 요청을 동시에 처리할 수 없다. 위 그림의 (a)처럼 커피 주문을 받고 나올 때까지 기다리는 것이 동기 방식의 예시라고 할 수 있다. 2. 비동기 방식 (Asynchronous)하나의 요청에 따른 응답을 즉시 처리하지 않아도, 그 대기 시간동안 또 다른 요청에 대해 처리 가능한 방식이다. 여러 개의 요청을 동시에 처리할 수 있는 장점이 있지만 동기 방식보다 속도가 떨어질 수도 있다. 위 그림의 (b)처럼 점원 한명이 커피 주문을 받고 다른 점원이 커피를 건네주는 것이 비동기 방식의 예시다. 동기와 비동기의 차이는 어떤 요청이나 혹은 그와 관련된 작업을 처리하고자 하는..
HTTP Status Code 1. HTTP Status Code (상태 코드) 클라이언트가 서버에 HTTP 요청을 보냈을 때 정상적으로 처리되었는지 아니면 에러가 발생했는지 알려주는 것이다. 클래스의 정의만 지킨다면 RFC2616에서 정의된 상태 코드를 변경하거나, 서버 독자의 상태 코드를 만들 수 있다. HTTP 상태 코드는 60종류 이상이 있지만, 그 중에서 대표적으로 사용되는 상태 코드를 살펴본다. 2. 응답 상태 코드 2.1 2xx: 성공(Success)2xx 응답은 클라이언트의 요청이 정상적으로 처리되었음을 나타낸다. ① 200 OK클라이언트가 보낸 요청을 서버가 정상 처리하였음을 나타낸다. 응답할 때 상태 코드와 함께 되돌아 오는 정보는 메소드에 따라 다르다. ② 204 No Content이 응답은 서버가 요청을 받아서 ..
URI / URL / URN 1. URI (Uniform Resource Identifier)통합 자원 식별자로, 네트워크에 있는 자원을 나타내는 유일한 주소이다. 네트워크에서 요구되는 기본 조건으로써 프로토콜에 항상 붙어 다닌다. 2. URL (Uniform Resource Locator)통합 자원 지시자로, 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약이다. 리소스가 정확히 어디에 있고 어떻게 접근할 수 있는지 분명하게 알려준다. 3. URN (Uniform Resource Name) 통합 자원 이름으로 URN은 콘텐츠를 이루는 한 리소스에 대해, 그 리소스의 위치에 영향 받지 않는 유일무이한 이름 역할을 한다. 리소스의 이름을 변하지 않게 유지하는 한, 여러 종류의 프로토콜로 접근해도 문제없다.
SOLID 원칙 객체지향 디자인 원리들을 사용하면 좀 더 유지보수하기 쉽고, 유연하고, 확장이 쉬운 소프트웨어를 만들 수 있다. 이 원리들은 그 크기를 대비해 보면 패턴보다 훨씬 작지만, 표준화 작업에서부터 아키텍처 설계에 이르기까지 다양하게 적용되는 원칙이다. ① Single Responsibility Principle : 단일 책임의 원칙(SRP) 한 클래스에 하나의 책임만 가진다. 여기서 책임이란 '기능' 정도로 생각하면 된다. 설계를 잘한 프로그램은 기본적으로 새로운 요구사항과 프로그램 변경에 영향을 적게 받는다. 즉, 응집도는 높지만 결합도는 낮은 프로그램이다. 만약 한 클래스가 갖는 책임이 많아지면 클래스 내부의 함수끼리 결합도가 높아져서 유지보수가 어려워질 수 있다. 그래서 책임을 분산시킬 필요가 있다. ②..
OOP(Object-Oriented Programming)이란? 1. OOP?객체지향 프로그래밍(Object-Oriented Programming)의 줄임말로, 프로그램을 어떻게 설계해야 하는지에 대한 일종의 개념이자 방법론이다. 프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라 수많은 '객체'라는 기본 단위로 나누고 이 객체들의 상호작용으로 서술하는 방식이다. 2. OOP의 특성① 추상화(Abstraction)공통의 속성이나 기능을 묶어 이름을 붙이는 것으로, 사물들의 공통된 특징을 파악해 인식의 대상으로 삼는 행위를 말한다. 각 개체의 구체적인 개념보다 추상적인 개념에 의존해야 설계를 유연하게 변경할 수 있다. 강아지, 고양이의 공통된 특징은 '동물'이라는 집합으로 다룬다. '강아지나 고양이 고유의 울음소리(구체적인 개념)'이 아니라 '울음소리(추상적인..
Cookie vs Session vs Local Storage 간략 비교 1. Cookie후속 요청으로 서버로 다시 보내야하는 데이터를 저장한다. 만료는 유형에 따라 다르며 만료 기간은 서버 측 또는 클라이언트 측 (일반적으로 서버 측)에서 설정할 수 있다.쿠키는 주로 서버 측에서 읽기(클라이언트 측에서 읽을 수도 있음) 위한 것이며, Local Storage 및 Session Storage는 클라이언트 측에서만 읽을 수 있다.크기는 4KB보다 작아야 한다.해당 쿠키에 대해 httpOnly 플래그를 true로 설정하여 쿠키를 안전하게 만들 수 있다. 이렇게하면 쿠키에 대한 클라이언트 측 액세스가 차단된다. 2. Local Storage만료일이 없는 데이터를 저장하고 JavaScript를 통해서만 지워진다.저장 용량 한도는 3가지 중에서 가장 높다. 3. Session Stor..
REST와 RESTful API 1. REST (REpresentational Safe Transfer)?웹에 존재하는 모든 리소스(이미지, 동영상, DB)에 고유한 URI를 부여해 활용하는 것으로, 리소스를 정의하고 리소스에 대한 주소를 지정하는 방법론을 의미한다. 2. REST의 탄생REST는 웹의 창시자(HTTP) 중의 한 사람인 Roy Fielding의 2000년 논문에 의해서 소개되었다. 현재의 아키텍쳐가 웹의 본래 설계의 우수성을 많이 사용하지 못하고 있다고 판단하면서 웹의 장점을 최대한 활용할 수 있는 네트워크 기반의 아키텍쳐를 소개하면서 REST가 대두되었다. REST가 대두되기 시작한 큰 이유는 '애플리케이션 분리 및 통합', '다양한 클라이언트의 등장'이다. 애플리케이션의 복잡도가 증가하면서 애플리케이션을 어떻게 분리..
HTTP 개념 및 주요 내용 정리 1. HTTP란?HTTP(Hypertext Transfer Protocol)하이퍼텍스트 전송 규약. 웹 브라우저(web browser) 같은 응용프로그램을 통해 웹 클라이언트(사용자)와 웹 서버(서비스 제공자) 사이 데이터를 전송하는 프로토콜이다. HTTP를 통해 주고 받는 대표적인 파일은 HTML 문서파일이 있다. 2. HTTP의 특징- HTTP 클라이언트와 HTTP 서버에 의해서 해석이 된다.- TCP/IP를 이용하는 응용 프로토콜(application protocol)이다.- 연결 상태를 유지하지 않는 비연결성 프로토콜이다.- 요청/응답(Request/Response) 방식으로 동작한다. 연결 상태를 유지하지 않기 때문에 정보를 저장하기 위해 쿠키(Cookie)와 세션(Session)이 등장했다. ..