목록JS (21)
Día de Ruru
모듈이란 여러 기능들에 관한 코드가 모여있는 하나의 파일을 말한다. 모듈은 코드의 유지보수성, 재사용성 등을 위해서 사용한다. node.js에서 사용하는 모듈 시스템은 대표적으로 CommonJS와 ES6 가 있다. 1. CommonJS 자바스크립트의 공식 스펙이 브라우저만 지원했기 때문에 이를 서버사이드에서 지원하기 위해 CommonJS가 만들어졌으며 자바스크립트가 범용적인 언어로 쓰이기 위한 스펙을 정의하고 있다. 범용적인 언어로 만들기 위해서는 모듈화의 개념이 필요했고 CommonJS만의 모듈 방식을 정의하게 되었다. CommonJS에서 다른 모듈을 사용할 때는 require을 쓰고 모듈을 해당 스코프 밖으로 보낼때에는 module.exports를 사용한다. 2. ES6 Node.js는 기본적으로 C..
1. 웹 서버 (Web Server)와 웹 어플리케이션 서버 (Web Application Server)의 차이점 - 웹서버 : 웹브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(html, 이미지, 파일 등) 를 제공하는 서버 : 정적인 컨텐츠를 제공할 때 WAS를 거치지 않고 바로 자원을 제공한다. : 동적인 컨텐츠를 제공해야 할 때 클라이언트의 요청을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에게 전달한다. : Apache, Nginx등이 있다. - WAS (웹 어플리케이션 서버) : DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 어플리케이션 서버 : 웹서버의 기능들을 구조적으로 분리하여 처리하고자 하는 목적으로 사용한다. : 웹서버와 DBMS사..
1. 보안 (Security)과 관련된 문제 크로스 사이트 스크립팅 (Cross-Site Scripting, XSS): XSS는 사용자로부터 입력된 데이터를 적절하게 처리하지 않을 때 발생할 수 있는 취약점입니다. 악의적인 사용자가 스크립트 코드를 삽입하여 웹 페이지에 표시되거나 실행되도록 만들 수 있습니다. 이를 통해 사용자의 개인 정보를 탈취하거나 악성 행동을 수행할 수 있습니다. 크로스 사이트 요청 위조 (Cross-Site Request Forgery, CSRF): CSRF는 인증된 사용자의 의도와 상관없이 악의적인 웹 사이트가 사용자의 권한으로 다른 웹 사이트에 요청을 보내는 공격입니다. 이를 통해 사용자의 계정이 탈취되거나 비정상적인 동작이 발생할 수 있습니다. 클릭재킹 (Clickjackin..
1. 자료구조와 알고리즘 중에서 자주 사용되는 것들은 어떤 것이 있나요? - 자료구조 : 데이터를 어떠한 형태로 저장하고 관리할 것인지에 대한 방법 - 알고리즘 : 저장된 데이터를 찾고나 변형할 때 필요한 방법 - 선형 자료구조 : 데이터가 순차적으로 하나의 선처럼 나열된 형태의 자료구조 : 배열, 리스트(Array List, Linked List), 스택, 큐 - 비선형 자료구조 : 데이터가 순차적으로 나열되지 않은 형태의 자료구조, 선형 자료구조 외의 나머지 자료구조 : 맵, 트리, 그래프 2. 데이터베이스와 ORM ORM이란 Object Relational Mapping의 약자이며 객체와 데이터베이스의 관계를 매핑해주는 도구입니다. - ORM을 사용하는 이유 1. 데이터베이스 접근을 프로그래밍 언어..
1. HTTP와 HTTPS HTTP(Hyper Text Transfer Protocol)란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜입니다. HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용하고 있습니다. 따라서 HTTP 서버가 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 80번 포트로 요청을 보내게 됩니다. HTTP는 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동합니다. HTTP는 상태를 가지고 있지 않는 Stateless 프로토콜이며 Method, Path, Version, Headers, Body 등으로 구성됩니다. HTTPS는 HTTP에 데이터 암호화가 추가된 프로토콜입니다. HTTPS는 HTTP와 다르게 443번 포트를 사..
1. 동기와 비동기 코드 실행 방식 동기는 순차적으로 프로그램이 진행되며 이전 요청이 처리되는 동안 다음 요청을 처리하지 못하며 요청이 완료되어야만 다음 처리가 가능한 방식입니다. 비동기는 하나의 요청 처리가 완료되기 전에 제어권을 다음 요청으로 넘깁니다. 비동기로 처리되는 요청은 메인스레드가 아닌 브라우저(Web API)에서 실행이되며 값을 반환할 준비를 마친 상태에서 콜백큐에서 대기상태가 됩니다. 비동기 처리 함수는 promise, setTimeout 등이 있습니다. async/await를 사용해서 비동기 함수를 동기식으로 작동하게 할 수 있습니다. 동기방식으로 프로그램이 실행되면 IO처리를 Blocking하는데 이 문제를 스레드로 처리하게 됩니다. 비동기 방식에서는 IO처리가 Blocking 되지 ..