
1. 기술면접 #3
예상 질문
Q1. Primary Key, Foreign Key에 대해 설명해주세요.
Primary Key (기본 키): 테이블에서 각 행을 고유하게 식별하는 열이나 열의 집합입니다. 주로 이 열에는 NULL 값을 허용하지 않고, 중복된 값을 포함하지 않는 유일한 값이 할당됩니다.
Foreign Key (외래 키): 다른 테이블의 기본 키를 참조하는 열이나 열의 집합입니다. 외래 키는 데이터 무결성을 유지하고 관계를 정의하는 데 사용됩니다. 이를 통해 여러 테이블 간의 관계를 구축할 수 있습니다.
Q2. HTTP 메서드에 대해 설명해주세요.
-
주요 메서드
- GET: 리소스의 표시를 요청합니다.
- POST: 새로운 데이터를 생성합니다.
- PUT: 지정된 위치에 데이터를 업데이트하거나 새로 생성합니다.
- PATCH: 리소스의 일부를 수정합니다.
- DELETE: 지정된 리소스를 삭제합니다.
-
기타 메서드
- HEAD: GET 요청과 동일하지만, 응답 본문을 포함하지 않고 헤더만 반환합니다.
- OPTIONS: 서버가 지원하는 HTTP 메서드를 확인하거나 리소스에 대한 옵션을 요청합니다.
- CONNECT: 목적 리소스로 식별된 서버로의 연결을 설정합니다.
- TRACE: 클라이언트가 요청을 서버에게 반복해서 보내어 경로를 디버깅합니다.
추가 질문
Q3. HTTP 메서드 Get 과 Post의 차이
-
데이터 전송 방식
- GET: GET 메서드는 데이터를 URL의 쿼리 문자열에 포함하여 전송합니다. 이는 주로 데이터를 서버로 보내는 데 사용되며, 브라우저에서 링크를 클릭하거나 폼을 제출할 때 사용됩니다.
- POST: POST 메서드는 HTTP 요청의 본문(body)에 데이터를 포함하여 전송합니다. 이는 주로 데이터를 서버로 보내는 데 사용되며, 보안적인 이유나 데이터의 크기가 큰 경우에 주로 사용됩니다.
-
데이터 길이 제한
- GET: URL에 데이터를 포함하기 때문에 보낼 수 있는 데이터의 길이에 제한이 있습니다. 일반적으로 브라우저와 서버 간의 통신에서는 약 2,048자 정도의 제한이 있습니다.
- POST: POST 메서드는 HTTP 요청 본문에 데이터를 포함하기 때문에 데이터 길이에 대한 제한이 없습니다. 따라서 POST 메서드를 사용하면 더 많은 양의 데이터를 보낼 수 있습니다.
-
보안
- GET: GET 메서드는 URL에 데이터를 노출하기 때문에 보안적인 측면에서 취약할 수 있습니다. 또한, 브라우저 히스토리나 서버 로그에 데이터가 노출될 수 있습니다.
- POST: POST 메서드는 HTTP 요청의 본문에 데이터를 포함하기 때문에 GET에 비해 보안적인 측면에서 더 안전합니다. 데이터가 URL에 노출되지 않기 때문에 민감한 정보를 전송할 때 주로 사용됩니다.
Q4. HTTP 상태코드 100번대 ~ 500번대 특징
-
100번대 (Informational, 정보)
- 요청이 받아들여졌고 프로세스를 계속 진행하기 위한 초기 응답을 나타냅니다.
- 주로 클라이언트가 서버에게 추가 정보를 전송할 때 사용됩니다.
-
200번대 (Success, 성공)
- 요청이 성공적으로 처리되었음을 나타냅니다.
- 주로 클라이언트의 요청이 정상적으로 처리되었을 때 사용됩니다.
-
300번대 (Redirection, 리디렉션)
- 클라이언트가 추가 작업을 수행해야 함을 나타냅니다.
- 주로 리소스가 옮겨졌거나 요청된 리소스의 위치가 변경되었을 때 사용됩니다.
-
400번대 (Client Error, 클라이언트 오류)
- 클라이언트의 요청에 오류가 있음을 나타냅니다.
- 주로 잘못된 요청 구문, 권한 없음, 찾을 수 없는 리소스 등의 오류를 나타냅니다.
-
500번대 (Server Error, 서버 오류)
- 서버가 유효한 요청을 처리하지 못했음을 나타냅니다.
- 주로 서버의 내부 오류나 서버가 요청을 처리할 수 없는 상태일 때 사용됩니다.