본문 바로가기
개발/개발자 취업준비

Node.js 백엔드 개발자 면접 질문 정리 1 (RDS, Restful API, 세션과 쿠키, Status Code 200, 400, 500)

by 코딩하는짱구 2023. 8. 22.
반응형

자바스크립트 (node.js)백엔드 개발자라면 필수적으로 알아야할 면접 질문 정리 입니다. 아래의 내용은 기본적으로 숙지하고 있으셔야 개발하실때 원리를 이해하기 쉬우니 꼭 짚고 넘어가시면 좋습니다. 

Node.js 백엔드 개발자 면접 질문 정리 1

목차

1. RDS

2. Restful API

3. 세션과 쿠키란? 차이점은?

4. Status Code 200, 400, 500 

추천글

위의 목차를 클릭하면 해당 글로 자동 이동 합니다.

 

🔍RDS(Relational Database Service) 

RDS: 아마존 웹 서비스 (AWS)에서 제공하는 관리형 관계형 데이터베이스 서비스, 즉 여러 RDBMS 엔진에 대한 호스팅을 제공한다. RDS 는 확장성, 백업 및 복구, 보안 등의 작업을 쉽게 관리할 수 있게 한다. 

Amazon RDS

RDBMS: 관계형 데이터베이스를 관리하는 소프트웨어 시스템 ex) MySQL, PostgreSQL, Oracle etc

 

 

 

🔍Restful API

웹 기반의 아키텍쳐 스타일, 클라이언트와 서버간의 통신을 위한 웹 서비스 디자인 원칙을 지침으로 삼아 API를 설계 하는 방식

1. 자원(Resource): API의 주요 요소는 "자원" 이며 각 자원은 고유한 식별자(URI)를 가지고 있다. ex) 사용자, 게시물, 주문 등이 모두 자원

2. 표현(Representation): JSON, XML, HTML등으로 표현될 수 있다 

3. 상태전이(State Transfer): 클라이언트와 서버간의 통신은 상태 전이를 통해 이루어진다. 주로 HTTP 메서드인 CRUD (GET, POST, PUT, DELETE 등) 을 사용하여 구현된다. 

4. 캐시가능(Cacheable): 응답은 캐싱될 수 있어야 한다. 

5. 계층화(Layered System): 계층화구조로 시스템의 확장성과 보안성을 향상시킨다.

 

 

 

🔍세션과 쿠키란? 차이점은?

클라이언트와 서버간의 상태 유지와 데이터 전달을 위해 사용된다.

1. 쿠키(Cookie)

클라이언트(웹브라우저)에 저장되는 작은 데이터 조각으로, 웹사이트에서 사용자 정보를 유지하거나 추적하기 위해 사용된다. ex)로그인 상태유지, 사용자 환경설정, 장바구니 정보 저장 등에 활용된다

쿠키가 사용되는 이유: HTTP는 상태를 따로 저장하지 않는다(Stateless), 즉 연결이 끊어지는 순간 모든 상태 정보가 사라지게 되므로 서버는 클라이언트가 첫번째 통신 때 보낸 정보를 두번째 통신 때 알 수 없다. 이러한 HTTP 특성 때문에 쿠키가 사용된다.  

쿠키의 구성: 이름, 값, 유효시간, 도메인, 경로(쿠키를 전송할 요청 경로)

쿠키의 동작방식

서버는 클라이언트의 요청을 받고 클라이언트의 정보를 담은 쿠키를 생성한다. 이 후 HTTP헤더에 set-cookie 옵션을 통해 쿠키를 포함한 응답을 보낸다. 즉 로그인할 때 받아온 쿠키를 쿠키 저장소에 넣어놓고 그 다음엔 다시 로그인할 필요 없이(다시 cookie를 생성할 필요 없이) 웹사이트를 이용하는 것. 

 

2. 세션(Session)

서버측에서 클라이언트의 상태를 유지하기 위한 메커니즘. 세션은 클라이언트가 서버에 최초로 접속할 때 서버측에서 고유한 세션 ID를 생성하고 이를 클라이언트에게 쿠키로 전송한다.  클라이언트는 이 세션 ID를 쿠키로 저장하고 서버는 해당 세션 ID를 사용하여 클라이언트의 세션 데이터를 식별하고 관리한다. 세션을 통해 로그인 정보, 장바구니 내용등을 서버에 저장하고 관리할 수 있다.

세션의 동작방식

사용자가 로그인을 요청할 때 서버는 클라이언트의 요청을 받고 클라이언트의 정보를 담은 세션을 생성한다. 이후 세션ID를 담은 쿠키를 생성하고, HTTP 헤더에 set-cookie 옵션을 통해 쿠키를 포함한 응답을 보낸다. 클라이언트는 해당 쿠키를 쿠키 저장소에 저장해놓는다. 

 

로그인 완료 후 첫 페이지에 접근할 때의 동작방식

로그인을 완료했으니 쿠키저장소에 세션 ID가 담긴 쿠키가 저장되어 있다. 페이지 요청을 할 때 쿠키저장소의 쿠키를 꺼내 담아 전송하고, 서버는 HTTP 요청의 쿠키를 읽어 쿠키 안의 세션 ID 를 통해 클라이언트를 식별할 수 있다.

 

3. 쿠키와 세션의 차이

  • 저장장소: 쿠키는 클라이언트 측 (브라우저)에 저장되고, 세션은 서버측에 저장된다.
  • 저장되는 데이터의 양: 쿠키는 일반적으로 작은양의 데이터를 저장하는 데 사용되며, 세션은 상대적으로 더 많은 데이터를 저장한다
  • 수명: 쿠키는 만료날짜나 시간 설정을 통해 수명을 조절하며 세션은 클라이언트가 브라우저를 닫거나 세션이 만료될 때까지 유지된다.

 

4. 쿠키와 세션을 함께 사용하는 이유?

  • 보안 및 개인정보 보호: 민감한 정보를 클라이언트의 쿠키에 저장하면 보안 위험이 증가할 수 있다, 세션은 서버측에서 관리되므로 민감한 정보를 서버에 저장하고 클라이언트에는 세션 ID만 전달하는 방식으로 보안성을 높일 수 있다. 
  • 용량 제한: 쿠키는 브라우저에 저장되기 때문에 용량에 제한이 있고, 세션은 서버측에서 관리되므로 더 많은 데이터를 저장할 수 있다. 
  • 성능 개선: 쿠키를 사용하면 클라이언트와 서버간의 데이터 교환횟수가 증가하며, 이는 네트워크 부하를 초래할 수 있다. 

 

 

 

🔍Status Code 200, 400, 500

Status Code 200

  • 200 : OK 요청 성공적 수행
  • 201 : Created (요청 성공적 수행+ 결과로 새로운 리소스 생성 POST, PUT) ex. 회원 가입
  • 204 : No Content (요청 성공적 수행 + 결과로 리소스 삭제 완료) ex. 게시글 삭제

Status Code 400

  • 400 : Bad Request (사용자의 잘못된 요청을 처리할 수 없음) ex. Number로 응답해야하는 값을 string으로 보냄.
  • 401 : Unauthorized (인증이 필요한 페이지 요청) ex. 로그인이 필요한 페이지에 접근
  • 403 : Forbidden (접근 권한 없음) ex. 관리자의 권한이 필요한 페이지에 접근
  • 404 : Not found (요청한 페이지-리소스 없음) ex. 경로 잘못되거나 자원 없는 경우
  • 405 : Method not allowed (허용되지 않는 HTTP Method를 사용한 경우)
  • 408 : Request Timeout (요청 시간 초과)

Status Code 500

  • 500 : Internal Server Error (내부 서버 오류)
  • 502 : Bad Gateway(게이트웨이 오류)

 

위의 정보들을 그냥 읽지말고 인터뷰 현장에 있는 것 처럼 스스로 실습해보시길 바랍니다. 추가적인 내용을 유투브나 구글에 서치하여 머릿속에 확실히 인지하시는 것을 추천합니다. 화이팅!

 

 

 

추천글

이부분에는 플러그인 -> 이전글 발행 기능을 이용해서 이 글과 관련되거나 추천할 만한 글 몇개의 링크를 걸어주시는걸 추천 드립니다.

https://code-lab1.tistory.com/298

 

[Web] 쿠키(Cookie)와 세션(Session)의 차이, 쿠키란? 세션이란?

쿠키(Cookie)란? 쿠키는 클라이언트(로컬)에 저장되는 키와 값이 들어있는 작은 데이터 파일이다. 이러한 쿠키는 클라이언트에 저장되어 필요시 정보를 참조하거나 재사용할 수 있다. 보통 웹 환

code-lab1.tistory.com

 

반응형