ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 주니어 개발자를 위한 100가지 질문(답변 포함) - 8
    언어/JSP 2023. 11. 1. 12:02
    728x90
    반응형

    8️⃣ internet

     

    📌 301과 302 상태 코드의 의미와 차이는 무엇인가요?

    301과 302는 HTTP 상태 코드입니다. 301은 "Moved Permanently", 즉 요청한 리소스가 영구적으로 새 위치로 이동되었음을 나타냅니다. 이후 동일한 URL에 대한 요청은 새로운 URL로 자동으로 리디렉션됩니다. 302는 "Found" 또는 "Moved Temporarily"로, 요청한 리소스가 임시로 다른 위치에 있음을 나타냅니다. 이후 동일한 URL에 대한 요청은 원래의 URL로 이루어질 수 있습니다.

     

    📌 forward와 redirect의 차이는 무엇인가요?

    "forward"는 서버 내에서 페이지의 제어를 다른 리소스로 넘기는 것입니다. URL이 변경되지 않고, 요청은 서버 내부에서 이루어집니다. "redirect"는 클라이언트에게 새로운 페이지를 요청하도록 지시하는 것으로, URL이 변경되며 새로운 요청이 발생합니다.

     

    📌 tcp와 udp의 차이점을 말해주세요.

    TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 데이터를 전송하는 방식에 차이가 있습니다. TCP는 연결 지향적이고, 데이터 전송의 정확성을 보장합니다. 이에 반해 UDP는 연결을 설정하지 않고, 데이터 전송의 정확성을 보장하지 않습니다. 따라서 TCP는 신뢰성이 중요한 데이터 전송에 사용되고, UDP는 신속한 데이터 전송이 필요한 경우에 사용됩니다.

     

    📌 왜 tcp는 3 handshakes를 필요로 하나요? 왜 2개가 아니죠?

    TCP는 데이터 전송의 정확성을 보장하기 위해 3-way handshake 과정을 거칩니다. 이 과정을 통해 클라이언트와 서버는 서로에게 데이터를 전송할 준비가 되었음을 확인하고, 연결을 시작합니다. 2-way handshake로는 이러한 확인 과정이 완전히 이루어지지 않으므로, 데이터 전송의 신뢰성을 보장하기 어렵습니다.

     

    📌  tcp packet은 어떻게 생성되나요?

    TCP 패킷은 TCP 프로토콜에 따라 생성됩니다. 패킷은 헤더와 페이로드로 구성되며, 헤더에는 소스 포트, 목적지 포트, 시퀀스 번호, 확인 응답 번호, 데이터 오프셋, 예약, 플래그, 윈도우 크기, 체크섬, 긴급 포인터 등의 정보가 포함됩니다. 페이로드에는 실제 전송할 데이터가 포함됩니다.

     

    📌 OSI 7계층에 대해서 설명해주세요.

    OSI(Open Systems Interconnection) 7계층은 네트워크 통신을 7개의 계층으로 나눈 모델입니다. 각 계층은 다음과 같습니다.

    • 1계층: 물리 계층. 물리적 매체를 통한 데이터 전송을 담당합니다.
    • 2계층: 데이터 링크 계층. 네트워크 기기간의 데이터 전송과 오류 감지를 담당합니다.
    • 3계층: 네트워크 계층. 다른 네트워크와의 통신 경로를 설정합니다.
    • 4계층: 전송 계층. 호스트 간의 데이터 전송을 관리합니다.
    • 5계층: 세션 계층. 세션 설정, 관리, 종료를 담당합니다.
    • 6계층: 표현 계층. 데이터 포맷 변환, 암호화, 복호화 등을 담당합니다.
    • 7계층: 응용 계층. 사용자와 가장 가까운 계층으로, 네트워크 서비스와 응용 프로그램 간의 통신을 담당합니다. 

     

    📌 get과 post요청의 차이를 말해주세요.

    GET과 POST는 HTTP 프로토콜에서 사용되는 두 가지 요청 방식입니다. GET은 서버로부터 정보를 조회하는 데 사용되며, POST는 서버로 정보를 전송하는 데 사용됩니다. GET 요청의 경우, 요청 정보가 URL에 포함되어 전송되며, POST 요청의 경우, 요청 정보가 HTTP 메시지의 본문에 포함되어 전송됩니다. 

     

    📌 어떻게 도메인 간의 요청이 작동하나요?

    도메인 간의 요청이 작동하는 방식은 DNS(Domain Name System)를 통해 이루어집니다. 사용자가 웹 브라우저에 도메인 이름을 입력하면, 먼저 DNS 서버에게 해당 도메인의 IP 주소를 조회하는 요청을 보냅니다. DNS 서버는 요청받은 도메인의 IP 주소를 반환하고, 웹 브라우저는 해당 IP 주소로 HTTP 요청을 보냅니다. 

     

    📌 JSONP의 구현 원칙은 무엇인가요?

    JSONP(JSON with Padding)는 Same-Origin Policy를 우회하기 위해 사용되는 기법입니다. JSONP 요청을 만들면, 서버는 데이터를 JavaScript 함수 호출로 감싼 형태로 응답합니다. 이 함수는 클라이언트 사이드에서 미리 정의되어 있어야 하며, 이렇게 함으로써 웹 브라우저는 이 스크립트를 동일 도메인에서 로드된 것으로 간주하고 실행합니다. 

     

    📌 디자인 패턴에 대해 말해주세요.

    디자인 패턴은 소프트웨어 설계에서 반복적으로 나타나는 문제들을 해결하기 위한 재사용 가능한 해결책입니다. 이는 코드의 유지 관리와 이해를 용이하게 하며, 효율적인 설계를 가능하게 합니다. 

     

    📌 알고 있는 디자인 패턴이 있으신가요?

    대표적으로는 Singleton, Factory, Abstract Factory, Builder, Prototype, Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy, Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor 등이 있습니다. 

     

    📌 추상 팩토리와 심플 팩토리의 차이가 무엇인가요?

    "심플 팩토리"와 "추상 팩토리"는 모두 객체를 생성하는 디자인 패턴입니다만, 사용되는 상황과 복잡성에 차이가 있습니다. 

    "심플 팩토리 패턴"은 이름에서 알 수 있듯이 가장 간단한 형태의 팩토리 패턴입니다. 이 패턴은 클라이언트가 생성할 객체의 클래스를 명시하지 않고도 객체를 생성할 수 있게 합니다. 심플 팩토리는 특정 기능을 수행하는 객체를 생성하는 역할을 담당하며, 클라이언트는 심플 팩토리에게 요청하여 객체를 얻습니다.

    반면에 "추상 팩토리 패턴"은 관련된 또는 의존적인 객체들의 그룹을 생성하는 인터페이스를 제공합니다. 이 패턴은 '팩토리의 팩토리'라고도 불리며, 이 패턴을 사용하면 구체적인 클래스를 지정하지 않고도 서로 관련된 객체들을 생성할 수 있습니다. 따라서, 심플 팩토리는 단일 객체 생성에 초점을 맞춘 반면, 추상 팩토리는 관련된 객체들의 그룹을 생성하는 데에 초점을 맞춥니다.

    728x90
    반응형

    댓글

Designed by Tistory.