목록백엔드 (20)
스터디
async와 await라는 특별한 문법을 사용하면 Promise를 좀 더 편하게 사용할 수 있다. > asyncasync는 function 앞에 위치한다.async function func() { return 1;} function 앞에 async를 붙이면 해당 함수는 항상 Promise를 반환한다.Promise가 아닌 값을 반환하더라도 이행 상태의 Promise(resolved promise)로 값을 감싸 이행된 Promise가 반환되도록 한다.아래 예시의 함수를 호출하면 result가 1인 이행 Promise가 반환된다.async function func() { return 1;}func.then(alert); // 1 명시적으로 Promise를 반환하는 것도 가능한데 결과는 동일하다...
자바스크립트는 비동기 처리를 위해 콜백 함수를 사용하지만, 콜백을 남용하게 되면 콜백 지옥에 빠질 수 있다. 에러 처리도 힘들 뿐더러 여러 개의 비동기 처리를 한 번에 하는 데 한계가 있다. 이러한 콜백 함수의 단점을 보완하며 자바스크립트 비동기 처리에 사용되는 객체가 프로미스(promise)이다. > promise의 장점 비동기 처리 시점을 명확하게 표현할 수 있다. 연속된 비동기 처리 작업을 수정, 삭제, 추가하기 편하고 유연하다. 비동기 작업 상태를 쉽게 확인할 수 있다. 코드의 유지보수성이 증가한다. const promise = new Promise((resolve, reject) => { // 비동기 작업 수행 console.log('doing something); }); ..
클라이언트가 보낸 HTTP 요청에 대한 서버의 응답 코드로, 상태 코드에 따라 요청의 성공/실패 여부를 판단한다. > HTTP 상태 코드 분류 1xx (Informational): 조건부 응답 2xx (Successful): 성공 3xx (Redirection): 리다이렉션 완료 4xx (Client Error): 요청 오류 5xx (Server Error): 서버 오류 > 1xx (Informational): 조건부 응답 요청이 수신되어 처리 중을 의미한다. (이 상태 코드를 만날 일은 거의 없다고 한다.) 상태 코드 설명 100 Continue (클라이언트가 서버로 보낸 요청에 문제가 없으니 다음 요청을 이어서 보내도 된다는 것을 의미한다.) > 2xx (Successful..
Representational State Transfer의 약자로 자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고받는 모든 것을 의미한다. 자원(Resource): URI 행위(Verb): HTTP Method 표현(Representations) 여기서 HTTP Method가 나오게 된다. 즉, REST를 지키면서 행위를 전달하는 방법이라고 생각하면 된다. 메소드는 총 9개가 존재하며 아래와 같다. GET: 서버로부터 데이터를 취득 POST: 서버에 데이터를 추가, 작성 등 PUT: 서버의 데이터를 갱신, 작성 등 DELETE: 서버의 데이터를 삭제 HEAD: 서버 리소스의 헤더(메타 데이터의 취득) OPTIONS: 리소스가 지원하고 있..
> 개념 소프트웨어 세계에 구현할 대상이다. 클래스에 선언된 모양 그대로 생성된 실체이다. > 특징 '클래스의 인스턴스(instance)'라고도 부른다. 객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖는다. oop의 관점에서 클래스의 타입으로 선언되었을 때 '객체'라고 부른다. > 개념 설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체이다. 즉, 개체를 소프트웨어에 실체화하면 그것을 '인스턴스'라고 부른다. 실체화된 인스턴스는 메모리에 할당된다. > 특징 인스턴스는 객체에 포함된다고 볼 수 있다. oop의 관점에서 객체가 메모리에 할당되어 실제 사용될 때 '인스턴스'라고 부른다. 추상적인 개념(또는 명세)과 구체적인 객체 사이의 관계..
> SOLID란 객체지향 설계에서 지켜줘야 할 5개의 소프트웨어 개발 원칙(SRP, OCP, LSP, ISP, DIP)을 말한다. SOLID 객체지향 원칙을 적용하면 코드를 확장하고 유지보수 관리가더 쉬워지며, 불필요한 복잡성을 제거해 리팩토링에 소요되는 시간을 줄임으로써 프로젝트 개발의 생산성을 높일 수 있다. > 단일 책임 원칙 - SRP(Single Responsibility Principle) 단일 책임 원칙은 클래스(객체)는 단 하나의 책임만 가져야 한다는 원칙이다. 여기서 '책임'이라는 의미는 하나의 '기능 담당'으로 보면 된다. 만일 하나의 클래스에 기능(책임)이 여러 개 있다면 기능 변경(수정)이 일어났을 때 수정해야 할 코드가 많아진다. SRP 원칙을 ..
> enum은 상수 값 중에 비슷한 종류들을 묶어두기 위한 용도로 자주 사용된다. 많은 프로그래밍 언어들은 enum을 데이터 타입에 포함하고 있지만 자바스크립트는 포함하고 있지 않다. 하지만 조금이나마 비슷하게 작동할 수 있는 데이터를 자바스크립트에서도 간단하게 만들 수 있기는 하다. > enum의 장점 코드가 단순해지고 가독성이 좋아진다. enum이란 이름 자체만으로 열거 의도를 분명히 알 수 있다. 하나의 변수에 대해 고정값으로 이용이 가능하다. 안정적이며 읽기 쉽고, 오류의 발생도 줄일 수 있다. const Season = { SPRING: "spring", SUMMER: "summer", AUTUMN: "autumn", WINTER: "winter" }; const Seas..
> REST API는 REST를 기반으로 서비스 API를 구현한 것을 의미한다. REST(Representational State Transfer)는 HTTP를 기반으로 클라이언트가 서버의 리소스에 접근하는 방식을 규정한 아키텍처이다. > REST의 기본 원칙을 성실히 지킨 서비스 디자인을 RESTful이라고 표현한다. RESTful은 REST를 정의하는 비공식적 가이드라고 한다. 반드시 지켜야 하는 것은 아니지만 여러 의견들을 모아 효율적으로 정의하기 위해 만들었다고 한다. > REST API의 구성 REST API는 자원, 행위, 표현의 3가지 요소로 구성된다. REST는 자체 표현 구조로 구성되어 REST API만으로 HTTP 요청의 내용을 이해할 수 있다. 구성 요소 내용 표현 방..