2024.07.29.월.TIL 내일배움캠프 72일차 <최종프로젝트Day8>

김기남·2024년 7월 29일
post-thumbnail

안녕하세요, 오늘도 최종프로젝트 진행상황과 기술면접 준비내용을 정리해보았습니다.

GET, POST의 개념과 함께 데이터 흐름에 대해서 설명해주세요.

GET와 POST는 HTTP 요청 메서드로, 웹 클라이언트(예: 브라우저)가 서버에 요청을 보낼 때 사용합니다. 이 요청 메서드는 서버에 특정 작업을 수행하도록 지시하며, 각각의 용도와 데이터 흐름이 다릅니다.

GET

개념:

  • GET 메서드는 서버에서 데이터를 요청할 때 사용됩니다. 이 메서드는 요청하는 리소스의 경로와 함께 URL에 쿼리 매개변수를 추가하여 서버에 전달합니다.
  • 안전성: GET 요청은 데이터를 가져오기만 하기 때문에 서버 상태를 변경하지 않으며, 서버에 부작용을 일으키지 않습니다. 따라서 GET 요청은 안전한 요청으로 간주됩니다.
  • 캐시 가능성: GET 요청은 캐시될 수 있습니다. 브라우저나 중간 캐시 서버는 동일한 GET 요청에 대해 응답을 저장하고, 이후 동일한 요청이 들어오면 서버에 재요청하지 않고 캐시된 응답을 사용합니다.

데이터 흐름:

  • 클라이언트 -> 서버: 클라이언트가 GET 요청을 보내면, URL에 요청할 데이터의 정보(쿼리 매개변수)를 포함합니다. 예를 들어, http://example.com/data?param1=value1¶m2=value2.
  • 서버 -> 클라이언트: 서버는 요청을 처리하고, 요청된 데이터를 응답으로 클라이언트에 반환합니다. 이 데이터는 URL에 포함되어 있으므로, 브라우저 주소창에 그대로 표시됩니다.

POST

개념:

  • POST 메서드는 서버에 데이터를 제출하여 서버의 상태를 변경하거나, 서버에 리소스를 생성할 때 사용됩니다. 요청 데이터는 요청 본문(body)에 포함되어 전송됩니다.
  • 안전성: POST 요청은 데이터를 서버에 보내고 서버 상태를 변경하기 때문에 안전하지 않으며, 서버에 부작용을 일으킬 수 있습니다.
  • 캐시 가능성: POST 요청은 일반적으로 캐시되지 않습니다. 요청마다 서버가 새로 처리해야 하기 때문에, 브라우저나 중간 캐시 서버는 POST 요청을 캐시하지 않습니다.

데이터 흐름:

  • 클라이언트 -> 서버: 클라이언트가 POST 요청을 보내면, 요청 데이터는 HTTP 요청의 본문(body)에 포함됩니다. 예를 들어, http://example.com/submit URL로 요청을 보내며, 본문에 param1=value1¶m2=value2와 같은 데이터가 포함됩니다.
  • 서버 -> 클라이언트: 서버는 요청을 처리하고, 데이터의 처리 결과를 응답으로 클라이언트에 반환합니다. 응답 데이터는 클라이언트에 표시되거나, 다른 작업을 위해 사용됩니다.

요약

  • GET: 서버에서 데이터를 요청하여 가져오는 용도로 사용. 데이터는 URL에 쿼리 매개변수로 포함됨. 안전하고, 캐시 가능.
  • POST: 서버에 데이터를 제출하여 서버 상태를 변경하거나 리소스를 생성하는 용도로 사용. 데이터는 요청 본문에 포함됨. 안전하지 않으며, 캐시되지 않음.

이 두 가지 요청 메서드는 웹 애플리케이션에서 가장 기본적이고 중요한 기능을 제공하며, 클라이언트와 서버 간의 데이터 흐름을 관리하는 데 핵심적인 역할을 합니다.

OSI 7계층에 대해 아는대로 설명해주세요.

OSI (Open Systems Interconnection) 모델은 네트워크 통신을 계층으로 나눈 참조 모델로, 네트워크 프로토콜을 설계하고 상호 운용성을 보장하기 위해 만들어졌습니다. 이 모델은 총 7개의 계층으로 구성되어 있으며, 각 계층은 특정한 기능을 수행합니다. 아래는 OSI 7계층에 대한 설명입니다:

  1. 물리 계층 (Physical Layer)
    역할: 네트워크의 물리적인 연결을 담당합니다. 전기적 신호, 광 신호, 기계적 연결 등 실제 데이터 전송 매체와 관련된 모든 사항을 다룹니다.
    예: 케이블, 허브, 리피터, 전기적 신호의 변환 등.
  2. 데이터 링크 계층 (Data Link Layer)
    역할: 물리 계층에서 받은 데이터를 프레임 단위로 나누고, 에러 검출 및 수정, 흐름 제어를 담당합니다. 또한, 물리적인 주소(MAC 주소)를 사용하여 네트워크 장치 간의 통신을 관리합니다.
    예: 스위치, 브리지, MAC 주소, 이더넷.
  3. 네트워크 계층 (Network Layer)
    역할: 데이터를 목적지까지 최적의 경로로 전송합니다. 논리적인 주소(IP 주소)를 사용하여 네트워크 간의 경로 설정과 패킷 전달을 담당합니다.
    예: 라우터, IP 주소, ICMP, IP 프로토콜.
  4. 전송 계층 (Transport Layer)
    역할: 데이터의 전달이 신뢰성 있게 이루어지도록 합니다. 데이터의 분할 및 재조립, 오류 복구, 흐름 제어를 담당합니다. TCP와 UDP 프로토콜이 여기서 사용됩니다.
    예: TCP, UDP, 포트 번호.
  5. 세션 계층 (Session Layer)
    역할: 통신 세션을 설정, 관리, 종료하는 역할을 합니다. 세션 복구와 동기화를 통해 통신을 유지합니다.
    예: 세션 관리 프로토콜, RPC (Remote Procedure Call).
  6. 표현 계층 (Presentation Layer)
    역할: 데이터의 표현 형식을 관리합니다. 데이터 암호화, 압축, 변환 등을 통해 데이터를 응용 계층에서 사용 가능한 형태로 변환합니다.
    예: SSL/TLS, JPEG, GIF, MPEG, 데이터 인코딩/디코딩.
  7. 응용 계층 (Application Layer)
    역할: 사용자와 직접 상호작용하는 응용 프로그램이 사용하는 프로토콜을 제공합니다. 사용자가 네트워크에 접근하는 인터페이스를 제공합니다.
    예: HTTP, FTP, SMTP, DNS, Telnet, POP3.

계층 간 상호작용

  • 각 계층은 바로 아래 계층의 서비스를 이용하고, 바로 위 계층에 서비스를 제공합니다. 예를 들어, 네트워크 계층은 데이터 링크 계층의 서비스를 이용하여 데이터를 전달하며, 전송 계층에 데이터를 전달합니다.
  • 이러한 계층 구조를 통해 네트워크 통신이 체계적으로 이루어지며, 각 계층이 독립적으로 설계 및 수정될 수 있습니다.

OSI 모델의 중요성

  • 표준화: 네트워크 통신을 위한 공통 표준을 제공하여 다양한 네트워크 장비와 소프트웨어가 상호 운영될 수 있도록 합니다.
  • 문제 해결: 네트워크 문제를 특정 계층에서 쉽게 추적하고 해결할 수 있도록 합니다.
  • 교육 및 학습: 네트워크 개념과 구조를 체계적으로 이해하고 학습하는 데 도움을 줍니다.

OSI 모델은 실제 네트워크 구현에서는 모든 계층이 명확히 구분되지는 않지만, 네트워크 통신을 이해하고 설계하는 데 중요한 참조 모델로 사용됩니다.

최종프로젝트

회의

  • 스코프확장
  • 역할분배
  • 일정조율
  • 프론트 깃레포지토리 분리 확장

vue.js 초기세팅
프론트 역할분배
프론트 역할별 코딩

profile
새로운 시작~!

0개의 댓글