뚠뚜 개발일지

[면접준비] 기술 면접 기초 7일차 본문

일상/취준일지

[면접준비] 기술 면접 기초 7일차

뚠뚜 2024. 3. 11. 15:50

클라이언트 사이드 렌더링(CSR)과 서버 사이드 렌더링(SSR)의 개념과 장/단점을 설명해주세요.

클라이언트 렌더링과 서버 렌더링은 웹 페이지를 구성해서 사용자에게 전달하고 표시하는 방식의 차이입니다.

 

클라이언트 사이드 렌더링 (CSR):

  • 개념: 브라우저에서 HTML을 직접 렌더링합니다. JavaScript가 브라우저에서 실행되어 페이지를 구성하며, 초기 로드 후 추가 데이터는 AJAX요청을 통해 받습니다. 
  • 장점: 
    • 사용자와의 상호작용이 빠르고 매끄럽습니다
    • 서버 부하가 적으며, 캐싱이 용이 합니다.
    • SPA(Single Page Application)에 적합합니다.
  • 단점:
    • 초기 로딩 속도가 느릴 수 있습니다.
    • 검색 엔진 최적화(SEO)가 어려울 수 있습니다.

서버 사이드 렌더링 (SSR):

  • 개념: HTML을 렌더링하고 완성된 페이지를 클라이언트로 전송합니다. 클라이언트는 렌더링된 HTML을 받아 브라우저에서 표시합니다.
  • 장점:
    • 초기 로딩 속도가 빠릅니다.
    • SEO에 유리합니다.
  • 단점:
    • 서버에 부하가 더 많이  가해질 수 있습니다.
    • 사용자의 상호작용이 CSR에 비해 다소 느릴 수 있습니다.
장점    
구분 CSR SSR
속도 초기 로딩 속도가 느릴 수 있음 초기 로딩 속도가 빠름
SEO SEO에 불리함 SEO에 유리함
사용자 경험 페이지 전환이 자연스럽고 앱 느낌 제공 페이지 새로고침이 발생하여 끊김 현상 발생 가능성 있음
개발 개발 및 유지 보수가 더 복잡할 수 있음 개발 및 유지 보수가 비교적 간편함
서버 부하 서버 부하가 적음 서버 부하가 증가할 수 있음

 

단점    
구분 CSR SSR
속도 페이지 로딩 후 추가적인 JavaScript 실행으로 인해 전체 로딩 속도가 느려질 수 있음 서버 렌더링 과정으로 인해 초기 로딩 속도가 느려질 수 있음
SEO JavaScript 실행 전에는 페이지 내용을 인식하지 못하는 검색엔진에 불리함 완성된 HTML 페이지 제공으로 SEO에 유리하지만, JavaScript 의존적인 콘텐츠는 인식하지 못할 수 있음
사용자 경험 첫 페이지 로딩 이후 빠른 페이지 전환 제공 첫 페이지 로딩 속도가 느리고, JavaScript 오류 발생 시 사용자 경험 저하 가능성 있음
개발 JavaScript 프레임워크에 대한 숙련도가 필요함 서버 측 렌더링 기술 이해 필요
서버 부하 서버 부하가 적음 서버 렌더링 과정으로 인해 서버 부하 증가 가능성 있음

TCP/UDP에 대해서 설명해주세요.

Transmission Control Protocol (TCP)와 User Datagram Protocol (UDP)은 인터넷 프로토콜 스택의 전송 계층에 해당하는 프로토콜로, 데이터를 전송하는 방법에 차이가 있습니다.

 

TCP (Transmission Control Protocol) 전송 제어 프로토콜:

    1. 연결 지향: TCP는 통신을 시작하기 전에 연결을 설정하고 종료 시 연결을 종료합니다.
    2. 데이터 신뢰성: 패킷 손실 시 재전송을 수행하여 신뢰성 있는 데이터 전송이 가능합니다.
    3. 순서 보장: 패킷들은 정확한 순서로 도착하게 됩니다.
    4. 흐름 제어 및 혼잡 제어: 네트워크 상황에 따라 데이터 전송 속도를 조절합니다.
    5. 비교적 느림: 상기 기능들로 인해 처리가 복잡하고 상대적으로 느릴 수 있습니다.
    적용 분야:
    • 파일 전송, 웹 브라우징, 이메일, FTP 등 신뢰성이 중요한 서비스에 적합합니다.

UDP (User Datagram Protocol) 사용자 데이터그램 프로토콜:

    1. 연결 비지향: 통신을 시작하기 전에 연결을 설정하지 않으며, 종료도 없습니다.
    2. 데이터 신뢰성 없음: 패킷 손실 시 재전송을 하지 않으므로 신뢰성이 없을 수 있습니다.
    3. 순서 보장 없음: 패킷들이 순서대로 도착한다는 보장이 없습니다.
    4. 흐름 제어 및 혼잡 제어 없음: 데이터 전송 속도 조절이 없습니다.
    5. 비교적 빠름: 처리가 단순하므로 상대적으로 빠르며, 실시간 스트리밍 등에 적합합니다.
    적용 분야:
    • 스트리밍 미디어, VoIP, 게임 등 속도가 중요하고 신뢰성이 덜 중요한 서비스에 적합합니다.

포인트

  • TCP: 신뢰성과 순서 보장이 필요한 경우에 사용 (예: 웹 페이지, 이메일)
  • UDP: 빠른 전송이 중요하고, 일부 패킷 손실이 허용되는 경우에 사용 (예: 음성 및 비디오 스트리밍)

http와 https의 차이점에 대해 설명해주세요.

HTTP (Hypertext Transfer Protocol):

  • 웹에서 데이터를 전송하는데 사용하는 기본 프로토콜
  • 텍스트, 이미지, 비디오 등 다양한 유형의 데이터를 전송 가능
  • 보안 기능이 없어 데이터를 암호화하지 않음
  • 공격자가 데이터를 가로챌 수 있어 민감한 정보 전송에 적합하지 않음

HTTPS (Hypertext Transfer Protocol Secure):

  • HTTP에 SSL/TLS 암호화 기술을 적용한 보안 프로토콜
  • 모든 데이터를 암호화하여 공격자가 데이터를 가로채거나 변조하는 것을 방지
  • 웹사이트의 신뢰성을 높이고 사용자 정보를 안전하게 보호
  • 온라인 쇼핑, 금융 거래, 로그인 등 민감한 정보를 다루는 웹사이트에 필수