본문 바로가기

개인 공부/기술 면접

(8)
[ #8 ] 쿠키, 세션의 개념과 차이를 설명해보세요 키워드 : 무상태(stateless), 이 기술이 왜? 생겨났는지 쿠키와 세션은 HTTP의 Connectless(비연결성)와 Stateless(무상태성)을 보장하기 위해 사용되는 기술로 웹에서 사용자의 상태를 유지하고 유저를 식별하기 위해 사용되는 기술입니다. 비연결성은 실제로 요청을 주고받을 때만 연결을 유지하고 응답을 주나면 연결을 끊는 성질을 의미하고, 무상태성은 서버가 클라이언트의 상태를 보존하지 않는 특징을 말합니다 쿠키는 클라이언트 측에서 정보를 저장하는 작은 데이터 파일이고,  세션은 서버 측에서 사용자 상태를 관리하기 위한 방법입니다 쿠키와 세션의 큰 차이점은 사용자의 정보가 저장되는 위치이며  쿠키는 서버의 자원을 전혀 사용하지 않으며, 세션은 서버의 자원을 사용합니다 보안 면에서 세션이..
[ #7 ] 브라우저의 작동방식에 대해서 설명해주세요 키워드 : 단계별로 상세한 프로세스를 나눠서 설명 사용자가 URL을 입력하면 브라우저는 웹 서버에 HTTP 요청을 보내고 데이터를 수신합니다. 받은 HTML과 CSS는 파싱되어 DOM과 CSSOM 트리를 생성하며, 이들은 렌더 트리로 병합됩니다. 렌더 트리를 기반으로 레이아웃 단계에서 각 요소의 크기와 위치를 계산합니다. 계산된 정보로 화면에 페이지를 그리는 페인팅 단계가 이루어집니다. 필요한 JavaScript가 실행되고 모든 요소가 로드되면 페이지가 완성되어 사용자와 상호 작용합니다 출처 : https://velog.io/@theon2/%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80%EC%9D%98-%EC%9E%91%EB%8F%99%EB%B0%A9%EC%8B%9D%EC%97%90-%..
[ #6 ] CORS(Cross Origin Resource Sharing)에 대해 설명해주세요 키워드 : SOP, CORS 필요 이유, CORS 정의 교차 출처 리소스 공유 정책, 브라우저에서 다른 출처의 리소스를 안전하게 사용할 수 있도록 해주는 방법입니다 브라우저는 origin, 서버는 access-control-allow-origin 헤더를 통해 사용할 수 있습니다Origin 은 프로덕트(http, https)와 호스트(사이트 도메인)와 Post(포트번호)가 모두 합쳐진 URL 을 의미합니다 같은 프로토콜, 호스트, 포트를 사용한다면 뒤에 다른 요소들은 다르더라도 같은 출처로 인정되지만 하나라도 다를 경우, 브라우저는 동일 출처 정책상(SOP) 차단하게 됩니다 개발을 하다보면 기능상 어쩔수없이 다른 출처의 API와 상호작용을 해야하는 케이스가 있는데 이와 같은 예외사항을 두기 위해 CORS ..
[ #5 ] HTTP 메서드에 대해 설명해주세요 키워드주요 메서드 : GET, POST, PUT, PATCH, DELETE기타 메서드 : HEAD, OPTIONS, CONNECT, TRACE 클라이언트와 서버 사이에 이뤄지는 요청과 응답 데이터를 전송하는 방식입니다 총 9가지가 있으며 주로 GET, POST, PUT, PATCH, DELETE를 사용합니다 GET은 리소스를 조회하는 메서드로 서버에 전달하고 싶은 데이터를 쿼리를 통해서 전달합니다 POST는 요청 데이터를 처리하는 메서드로, 메시지 바디를 통해 서버로 요청 데이터를 전달하고 데이터를 처리하여 응답합니다 PUT은 리소스가 있다면 요청을 보낸 데이터를 완전히 덮어씌우고, 리소스가 없다면 새로 생성합니다 PATCH는 PUT과 다르게 리소스의 부분 변경합니다 DELETE는 요청받은 리소스를 제거..
[ #4 ] Primary Key, Foreign Key에 대해 설명해주세요 키워드 : 1:1, 1:N, N:MPK : not null uniqueFK : PK 참조 Primary Key :  관계형 데이터베이스의 기본키이며 특정 레코드를 유일하게 식별하기 위해 사용되는 필드 또는 필드의 집합입니다 테이블의 각 레코드에는 하나의 Primary Key 값이 반드시 있어야 하고 NULL 값과 중복이 허용되지 않습니다 예를 들면, 사용자에게 할당되어 있는 고유한 ID가 될 수 있습니다 Foreign Key : 관계형 테이터베이스의 외래키이며 하나의 테이블에서 다른 테이블의 기본키를 참조하는 필드입니다 외래키를 통해 다른 테이블 간의 관계를 정의할 수 있으며 외래키 값이 참조하는 기본키 값과 일치하도록 데이터 무결성을 유지함으로써 참조 무결성을 보장합니다 CASCADE 제약 조건을 통해..
[ #3 ] RDBMS의 정규화에 대해 설명해주세요 키워드 : 중복데이터, 무결성 정규화는 관계형 데이터베이스의 설계에서 데이터를 중복 없이 효율적으로 저장하기 위한 과정입니다 이를 통해 데이터베이스의 구조가 불필요한 중복을 최소화하고 데이터의 무결성을 유지할 수 있게 됩니다 그러나 정규화는 데이터베이스의 구조를 복잡하게 만들 수 있어 성능과 유지보수성을 고려하여 적절한 정규화 수준을 선택하는 것이 중요합니다 정규화는 1 정규화 ~ 6 정규화 까지 여러 과정이 존재하지만, 실제로 보통 1 ~ 3 정규화까지의 과정을 거치게 된다고 합니다. 제1 정규화란 테이블의 모든 열에는 원자값만 포함되어야 합니다 제2 정규화란 부분적 종속성을 제거하는데 초점을 맞춥니다. 부분적 종속성이란 기본 키가 아닌 부분집합의 열이 기본 키에 종속되는 경우를 말합니다. 제3 정규화..
[ #2 ] mvc 패턴에 대해서 설명해주세요 키워드 : model, view, controller 왜 MVC패턴을 사용해야 할까. MVC 패턴은 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고 있으며, 이러한 관심사 분리로 애플리케이션은 더욱 모듈화되고, 유지 관리 및 확장 가능해집니다Model, View, Controller 3가지로 구성되어 있고 Model은 데이터 및 비즈니스 로직을 담당하고, View는 사용자 인터페이스를 표현하며, Controller는 사용자 요청을 처리하기 위해 Model과 View의 흐름을 제어하는 다리 역할을 합니다  + 내용 보강 필요 model : 컨트롤러가 호출을 하면 DB와 연동하여 사용자의 입출력 데이터..
[ #1 ] NoSQL과 RDBMS의 특징과 차이점에 대해서 장, 단점을 들어 설명해주세요 키워드RDBMS : 관계형 데이터베이스, Schema, Table, SQLNoSQL : 대용량데이터, 비규격화, Key-Value RDBMS 는 데이터를 2차원 테이블 형태로 표현하는 관계형 데이터베이스입니다 정해진 스키마에 맞춰 데이터를 관리하기 때문에 명확한 데이터 구조를 보장합니다 하지만 시스템이 커질 수록 쿼리가 복잡해지고 스키마로 인해 데이터가 유연하지 않습니다 중복된 데이터가 없어 변경이 용이하기 때문에 관계를 맺고 있는 데이터가 자주 변경이 이루어지는 시스템에 적합합니다 NoSQL 은 RDBMS 와 반대로 데이터간의 관계를 정의하지 않는 데이터베이스입니다 스키마가 없어서 유연하고 자유로운 데이터 구조를 가집니다 그렇기에 명확한 데이터 구조가 보장되지 않아 테이터 구조 결정이 어려울 수 있습니..