내일배움캠프 기술면접 4일차

Skadi·2024년 3월 29일
0

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, 서버 오류)

    • 서버가 유효한 요청을 처리하지 못했음을 나타냅니다.
    • 주로 서버의 내부 오류나 서버가 요청을 처리할 수 없는 상태일 때 사용됩니다.

0개의 댓글