본문 바로가기

면접준비

(32)
http, https 차이점에 대해 설명해주세요 - HTTP와 HTTPS의 정의와 차이점: HTTP (HyperText Transfer Protocol): HTTP는 월드 와이드 웹(World Wide Web)에서 정보를 주고 받기 위한 프로토콜입니다. 텍스트 데이터를 주고 받으며, 보안 기능이 없어 데이터가 암호화되지 않습니다. HTTPS (HyperText Transfer Protocol Secure): HTTPS는 HTTP의 보안 버전으로, 데이터를 암호화하여 안전한 통신을 제공합니다. SSL(Secure Socket Layer) 또는 TLS(Transport Layer Security) 프로토콜을 사용하여 데이터를 암호화하고, 이를 통해 데이터의 조작 여부를 판단합니다. 차이점: 보안성: HTTP는 데이터를 평문으로 전송하기 때문에 보안성이 낮습니..
브라우저의 작동방식에 대해서 설명해주세요. 브라우저의 작동 방식은 다음과 같습니다: URL 해석 및 DNS 조회: 사용자가 URL을 입력하면 브라우저는 호스트명을 추출하고 DNS를 통해 IP 주소를 얻습니다. 서버와의 TCP 연결: 얻어진 IP 주소를 사용하여 서버와 TCP/IP 연결을 시도합니다. HTTP 요청: 서버에 HTTP 요청을 보내고 필요한 자원과 정보를 포함합니다. 서버 응답: 서버는 HTTP 응답을 생성하여 브라우저에 전송합니다. HTML 파싱 및 렌더링 트리 구성: HTML 문서를 파싱하여 DOM 트리를 구성합니다. CSS 파싱 및 스타일 트리 구성: CSS 스타일 시트를 파싱하여 스타일 트리를 구성합니다. 렌더링 트리 구성: DOM과 스타일 트리를 결합하여 렌더링 트리를 구성합니다. 레이아웃 및 페인팅: 렌더링 트리를 기반으로 ..
HTTP 메서드에 대해 설명해주세요. HTTP(하이퍼텍스트 전송 프로토콜)는 클라이언트와 서버 간의 통신을 위한 프로토콜로, 다양한 메서드(또는 HTTP 동사)를 정의하여 서로 다른 동작을 수행합니다. 아래는 주요한 HTTP 메서드와 간단한 설명입니다: GET: 정보를 요청하기 위해 사용되는 메서드. 데이터를 URL에 포함하여 전송하며, 주로 데이터를 요청하는데 사용. POST: 리소스를 생성하기 위해 사용되는 메서드. 데이터를 요청 본문에 담아 서버에 전송하며, 주로 폼 데이터를 제출하는데 사용. PUT: 리소스를 업데이트하기 위해 사용되는 메서드. 전체 리소스를 업데이트할 때 사용. PATCH: 리소스의 일부를 수정하기 위해 사용되는 메서드. 전체 리소스가 아닌 일부를 업데이트할 때 사용. DELETE: 리소스를 삭제하기 위해 사용되는 ..
NoSQL과 RDBMS의 특징과 차이점에 대해서 장, 단점을 들어 설명해주세요. NoSQL (Not Only SQL)과 RDBMS (Relational Database Management System)는 데이터베이스 시스템의 두 가지 주요 유형입니다. 각각의 특징과 차이점은 다음과 같습니다. NoSQL (비관계형 데이터베이스) 특징: 스키마 없음 (Schema-less): NoSQL은 스키마가 고정되어 있지 않아, 다양한 종류의 데이터를 저장할 수 있습니다. 수평 확장성 (Horizontal Scalability): 대부분의 NoSQL은 분산 데이터베이스로, 샤딩 등을 통해 수평 확장이 가능합니다. 유연한 데이터 모델: 다양한 데이터 모델을 지원하며, 키-값, 문서, 열 지향, 그래프 등 다양한 형태의 데이터를 다룰 수 있습니다. 높은 성능: 특정 작업에 특화된 구조를 가지고 있어,..
쿠키, 세션의 개념과 차이를 설명해보세요 쿠키와 세션의 개념과 차이: 쿠키(Cookie): 쿠키는 클라이언트 측에 저장되는 작은 데이터 조각으로, 브라우저에서 관리됩니다. 서버로부터 받은 정보를 클라이언트에 저장하며, 주로 사용자의 로그인 정보, 활동 추적, 선호 설정과 같은 정보를 보관합니다. 만료 기간을 설정할 수 있어, 클라이언트에서 지정한 시간까지 지속됩니다. 세션(Session): 세션은 서버 측에 데이터를 저장하는 방식으로, 클라이언트가 서버에 접속하면 서버는 고유한 식별자(세션 ID)를 생성하여 클라이언트에게 부여합니다. 이 ID를 사용하여 서버에 데이터를 저장하고 관리하며, 주로 사용자의 로그인 상태, 장바구니 정보 등을 저장합니다. 세션은 일반적으로 클라이언트가 브라우저를 닫거나 로그아웃할 때까지 지속됩니다. 무상태(Statel..
mvc 패턴에 대해서 설명해주세요. MVC는 Model-View-Controller의 약어로, 소프트웨어 디자인 패턴 중 하나입니다. 이 패턴은 소프트웨어를 세 가지 주요 구성 요소로 나누어 유지보수성과 확장성을 강화합니다. Model: 컨트롤러의 호출에 응답하여 DB와 상호작용하며 사용자의 입출력 데이터 및 관련 비즈니스 로직을 처리합니다. 데이터 추출, 저장, 삭제, 업데이트 등의 작업을 수행하여 시스템의 핵심 역할을 담당합니다. View: 사용자와 상호작용하며, 컨트롤러로부터 받은 모델의 결과를 사용자에게 화면으로 출력합니다. 사용자 인터페이스를 담당하여 시각적으로 정보를 전달하고 사용자에게 편리한 경험을 제공합니다. Controller: Model과 View 사이를 연결하는 인터페이스 역할을 합니다. Model이 데이터를 처리하는 ..
정렬 알고리즘에 대해서 아는대로 설명해주세요. 정렬 알고리즘은 데이터를 특정 기준에 따라 순서대로 나열하는 알고리즘입니다. 여러 가지 정렬 알고리즘이 있으며, 각각의 특징과 성능이 다릅니다. 몇 가지 대표적인 정렬 알고리즘에 대해 설명하겠습니다. 버블 정렬 (Bubble Sort): 인접한 두 원소를 비교하여 순서가 뒤바뀌어 있으면 서로 교환하는 방식으로 동작합니다. 각 패스마다 가장 큰 원소가 배열의 끝으로 이동하므로 "버블"이 올라가는 것처럼 보입니다. 시간 복잡도: O(n^2), 안정 정렬 선택 정렬 (Selection Sort): 주어진 리스트에서 최솟값을 찾아 맨 앞의 원소와 교환하는 방식을 반복합니다. 정렬된 부분과 정렬되지 않은 부분으로 나누어 진행됩니다. 시간 복잡도: O(n^2), 불안정 정렬 삽입 정렬 (Insertion Sort)..
ORM을 사용하면서 쿼리가 복잡해지는 경우에는 어떻게 해결하는게 좋을까요? ORM을 사용하면 간단한 쿼리나 조작은 편리하게 처리할 수 있지만, 복잡한 쿼리를 다루거나 특별한 성능 요구사항이 있는 경우 ORM의 추상화 레이어만으로는 한계에 부딪힐 수 있습니다. 이런 경우에는 다음과 같은 접근 방법을 고려할 수 있습니다: ORM을 사용하면서도 Native SQL을 직접 작성하여 실행할 수 있습니다. Hibernate에서는 createSQLQuery 메서드를 사용하여 Native SQL을 실행할 수 있습니다.Native SQL 사용: 하지만 이런 방식은 SQL 쿼리를 직접 작성해야 하므로 ORM의 이점을 일부 포기하는 측면이 있습니다. Specification 사용: Spring Data JPA에서는 Specifications을 사용하여 동적 쿼리를 작성할 수 있습니다. Specif..