목록개발 (31)
레커
What is NestJS Interceptor? NestJS Interceptor는 request와 response시에 중간에서 값을 Intercept 한 뒤, 보내는 역할을 합니다. Interceptor는 추가적인 로직이 필요한 경우 사용합니다. Interceptor를 쓰는 대표적 케이스가 Logger입니다. Logger의 경우 request에 대한 정보, response에 대한 정보를 logging을 해야 하기에 Interceptor로 구현할 수 있습니다.. Observable Observable은 event가 흐르는 stream입니다. Observable은 누군가 구독(subscribe)을 해야 event를 발행(publish) 합니다. Observer가 Observable을 구독하면서 next,..
크로스 오리진 리소스 공유(CORS)는 애플리케이션을 통합하기 위한 메커니즘으로 한 도메인에서 로드되어 다른 도메인에 있는 리소스와 상호 작용하는 클라이언트 웹 애플리케이션에 대한 방법을 정의합니다. ex) 요청 방식에 따라(img, script 태그 등) -> Cross-Origin 정책, XMLHttpRequest, Fetch API 스크립트 -> Same-Origin 정책 출처(Origin) Origin : Protocol + Host + Port SOP 동일 출처 정책(Same-Origin Policy) 동일 출처 서버에 있는 리소스는 자유롭게 가져올 수 있지만, 다른 출처 서버에 있는 이미지나 영상 같은 리소스는 상호작용일 불가하다. 출처가 다른 어플리케이션끼리 자유롭게 소통한다는 것은 꽤 위험..
- Container 컨테이너는 애플리케이션을 언제든 실행 가능하도록 필요한 모든 요소를(소스코드, 구성요소, 종속성 등) 하나의 런타임 환경으로 패키징한 논리적 공간을 말한다. 애플리케이션과 종속 항목을 하나로 묶어, 실행하게 해주는 운영 시스템을 가상화한 경량의 격리된 프로세스 라고 할 수 있다. ( microVM / 운영체제 수준의 가상화 제공 / 독립성을 갖기 때문에 다른 컨테이너에 영향을 주지 않은 statless 환경 제공 - Container 기술이란 개인 데스크탑 / 기업내 서버/ 클라우드까지 언제 어디서든 빠르고 효율적으로 배포가 가능하고 확장을 가질 수 있도록 하는 기술입니다. 이를 통해 서버구성, OS설치, 네트워크, 개발도구 구성 등의 반복적 작업을 줄여 개발에 집중할 수 있도록 해..
1. NoSQL과 RDBMS의 특징과 차이점에 대해서 장, 단점을 들어 설명해주세요. RDBMS은 데이터를 column 과 row로 구성된 테이블로 데이터를 저장하는 방식으로, 스키마를 통해 테이블/column/row/인덱스/테이블 관계 등 데이터베이스의 요소를 명확하게 규정하는 방식입니다. 대표적으로 SQL이 있습니다. NoSQL은 기존의 RDBMS 방식이 다른 방식으로 데이터를 저장하는 방식을 말합니다. NoSQL 데이터베이스는 키-값, 문서, 그래프 등으로 데이터 모델을 만들어 저장합니다. 대표적으로 몽고디비/레디스/allegrograph 등이 있습니다. RDBMS는 데이터 구조가 명확하고 중복된 데이터를 최소화 할 수 있으며, ACID 속성을 보장할 수 있습니다. 다만, 모든 데이터의 관계가 명확..
프로세스 프로세스는 작업의 기본 단위 실행 중인 프로그램을 의미한다. 프로그램 디스크 상에 저장된 파일의 내용으로서 수동적인 개념이다. 결론 프로세스는 프로그램이 메모리에 적재되어 실행 가능한 상태로 존재하는 능동적인 개념이며, 레지스터(registers), 메모리(memory), 프로그램 카운터(program counter)와 같은 자원을 필요 Steps in Process Switching 1. CPU를 사용하기 위해 Ready 상태 2. Process A가 스케줄링 3. Process A의 A0를처리하고 다음 실행할 곳을 PC에 작성 (Program Counter) 기록 4. Process A의 A1를처리하고 다음 실행할 곳을 PC에 작성 (Program Counter) 기록 5. ProcessA ..
프로세스?스레드? 프로세스(process) 운영체제로부터 자원을 할당받은 작업의 단위 자신만의 데이터를 가지다 스레드(thread) - 경량 프로세스 ( Ligth Weight Process) - 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위 - 동일한 데이터를 공유한다. 스레드를 사용하는 이유 Process Context Switching 보다 Thread Context Switching가 자원을 절약하고 오버헤드를 줄 일 수 있다. 등등... 이런 말들 어려워~~못 알아 듣겠다. 위에 내용들은 운영체제 입장에서 말을 하는 것 같다. 내가 자바스크립트로 하나의 어플리케이션을 만들다면(프르그램) 입장에서 스레드는 뭘까? 웹 브라우저에서 웹 페이지를 보면서 동시에 파일을 다운로드할 수 있다. 워드 ..
- Nest.js nest 처음 느끼는 src 폴더를 보면 main.ts / app.controller.ts / app.module.ts / app.service.ts / app.controller.spec.ts 가 있었다 app.controller.ts는 express에서 라우터 기능을 하고 있는 것 같고 app.module.ts는 모듈을 한 번에 관리하는 곳 같았고 app.service.ts는 로직이나 기능을 모아놓는 곳 같았다. DTO는 구조체나 클래스처럼 형식을 지정하는 느낌이 들었다. 코드를 봤을 떄 구현기능별로 코드를 정리하는 느낌이다. board / user 폴더를 만들어 user.controller.ts / user .module.ts / user .service.ts 를 만들어서 관리를 ..