동기 vs. 비동기 동기적 코드 실행 방식 특징 작업이 순차적으로 진행됨 코드가 한 줄 실행되고 그 다음 줄이 실행되는 순서를 기준으로 작업이 처리됨. 현재 작업이 끝나야 다음 작업이 실행됨 예) 주문을 하면 음료를 받을 때까지 기다리는 방식 (뒷사람들 기다림) 장
Injection Attacks 공격자가 취약 애플리케이션에 악성 코드를 작성하고 애플리케이션이 이를 실행했을 때 발생함. 종류 SQL injection NoSQL injection Command injection 문제 req로 받은 id가 SQL 쿼리에 바로 사용이 되는데 이 때 id값으로 1 혹은 1=1 등을 주게 된다면 users 테이블의 모든 ...
개발 방법론? 소프트웨어 또는 기타 제품의 개발을 관리하기 위한 구조적, 체계적 접근 방식. 팀이 효과적/효율적으로 고품질 소프트웨어를 개발하기 위한 가이드라인, 사례 및 프로세스를 제공함. 시작부터 배포까지 개발 싸이클을 구성/계획/실행하는 데에 사용됨. 고유의 규칙, 사례, 특성 등을 가진 다양한 방법론이 존재함. 주요 소프트웨어 개발 방법론 Wat...
Promise ES6에서 도입된 비동기 처리에 사용되는 객체. 전통적인 콜백 패턴이 가진 단점(콜백지옥, 오류처리)을 보완하며 비동기 처리 시점을 명확하게 표현할 수 있다는 장점이 있음. Promise의 4가지 상태 pending: 비동기 처리가 아직 수행되지 않은 상태 (resolve/reject가 아직 호출되지 않은 상태) fulfilled: 비동기 ...
Closure 클로저는 함수가 선언될 때 자신의 주변 환경(Lexical Environment)을 기억하여, 함수 내부에서 자유 변수(free variables)에 접근할 수 있게 해주는 기능. Lexical Environment 스코프와 변수 식별자(identifier)를 관리하는 데 사용되는 내부 데이터 구조. 함수/변수가 선언되는 위치에 따라 Lex...
Web Server 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(HTML, CSS, JPEG)를 제공한다. 동적인 컨텐츠를 처리하기보다는 정적인 컨텐츠를 빠르게 전달하는 게 주 목적이다. 클라이언트로부터 동적 컨텐츠를 요청받았다면 요청을 WAS에 보내고, WAS에서 처리한 결과를 받아 클라이언트에게 제공한다. Web Application Serve...
Programming Language 컴퓨터와 소통하기 위한 명령어의 집합으로 이루어진 컴퓨터 언어. 대부분의 프로그래밍 언어는 컴파일 과정을 거침. 컴파일 시 실행파일이 생기고 바로 실행 가능. 컴파일 과정 때문에 시간이 조금 걸림. 소스 코드 전체를 기계어로 변환 후 실행 파일을 생성하는 방식. 컴파일 시 오류를 미리 확인할 수 있어서 실행 시 발생할 ...