기술면접 3주차(2)

강연주·2024년 10월 18일

🙋‍♀️ 기술면접

목록 보기
23/112

15. 쿠키, 세션, 웹스토리지의 차이를 설명해보세요.

  • 쿠키는 브라우저에 작은 데이터를 저장하고 서버로 전송되며, 세션은 서버에 데이터를 저장하고 세션 식별자를 클라이언트에 전달합니다. 웹 스토리지는 브라우저에 데이터를 저장하고 서버로 자동으로 전송되지 않습니다.

🪅 쿠키, 세션, 웹스토리지


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

  • 클라이언트 사이드 렌더링 : SPA(싱글페이지렌더링)에서 자바스크립트로 동작, 하나의 페이지에 모든 요소들을 처음 한 번 렌더링 하고 변경 사항도 여기서 복작복작 적용되는..?

  • 서버 사이드 렌더링 : 각각 페이지의 HTML 요소를 서버에서 다 뚝딱뚝딱 해줘서 응답 보내주면 그게 화면에 보입니다. 매번 서버 요청을 보내야 한다.

  • 클라이언트 사이드 렌더링(CSR)은 웹 애플리케이션에서 페이지의 초기 로드 후에 추가적인 데이터를 받아와서 동적으로 렌더링하는 방식이고, 초기 HTML은 정적으로 제공되며, JavaScript를 사용하여 클라이언트에서 동적으로 컨텐츠를 렌더링합니다.

    장점은 초기 페이지 로드 시 필요한 최소한의 HTML, CSS, JavaScript만 전달되므로 초기 로딩이 빠르고,페이지가 로드된 이후에도 JavaScript를 사용하여 데이터를 비동기적으로 가져와 동적으로 업데이트할 수 있습니다.

    단점은 초기 HTML에 동적으로 렌더링되는 컨텐츠가 포함되지 않기 때문에 검색 엔진 최적화에 어려움이 있을 수 있고,초기 로드 이후에 추가적인 데이터를 받아오기 때문에, 초기 로딩 이후의 지연이 발생할 수 있습니다.

  • 서버 사이드 렌더링(SSR)은 서버에서 완전한 HTML을 생성하여 클라이언트에게 전송하는 방식이고,서버에서 렌더링된 HTML을 받아와서 화면에 표시합니다.

    장점은 검색 엔진은 서버에서 렌더링된 완전한 HTML을 수용하기 때문에 SEO에 유리하고, 사용자가 페이지를 요청할 때 서버에서 이미 렌더링이 완료된 HTML을 제공하므로 초기 로딩이 빠릅니다.

    단점은 매 요청마다 서버에서 새로운 HTML을 생성해야 하므로, 전체적인 성능 면에서 클라이언트 사이드 렌더링보다 느릴 수 있고,많은 사용자가 동시에 서버에 접속하는 경우 서버 부하가 증가할 수 있습니다.


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

  • TCP (Transmission Control Protocol):
    TCP는 통신을 시작하기 전에 연결을 설정하고, 통신이 끝나면 연결을 해제하는 연결 지향 프로토콜입니다. 이를 통해 안정적이고 신뢰성 있는 데이터 전송이 가능합니다.수신 측에서 전송 측으로부터 수신 확인 응답을 받고, 만약 데이터가 손상되었다면 재전송을 요청합니다.
    파일 전송, 이메일 전송, 웹 브라우징 등 신뢰성이 중요한 응용 프로그램에서 주로 사용됩니다.

  • UDP (User Datagram Protocol):
    UDP는 연결을 설정하지 않고 데이터를 즉시 보내는 비연결 지향 프로토콜입니다. 간단하고 빠른 통신이 가능하지만, 데이터의 손실이나 순서의 불일치가 발생할 수 있습니다.
    수신 측에서는 데이터의 유효성을 확인하지 않습니다. 오류 발생 시 복구나 재전송을 하지 않습니다.
    동영상 스트리밍, 음성 통화, 온라인 게임 등에서 실시간 통신이 필요한 응용 프로그램에서 주로 사용됩니다.

🪅 전승 계층 프로토콜, TCP, UDP


18. http, https 차이점에 대해 설명해주세요.

  • HTTP는 데이터를 평문으로 전송합니다. 따라서 데이터가 네트워크를 통해 전송되는 동안 암호화되지 않습니다.암호화하지 않기 때문에 중간에서 데이터를 가로채거나 수정하는 공격이 쉽게 발생할 수 있습니다. 일반적인 웹 페이지 로딩, 정보 검색 등에서 사용됩니다.

  • HTTPS는 보안 소켓 계층(SSL 또는 TLS)을 사용하여 데이터를 암호화합니다. 이는 중간에서 데이터를 가로채도 읽을 수 없게 합니다. 통신하는 양쪽 간의 데이터를 암호화하여 도청이나 데이터의 변조를 방지합니다.웹 서버의 신원을 확인하고, 클라이언트와 서버 간의 안전한 통신을 보장하는데 사용되는 인증서를 필요로 합니다. 민감한 정보 전송, 로그인 페이지, 결제 정보 입력 등과 같이 보안이 필요한 상황에서 사용됩니다.

🪅 HTTP, HTTPS


19. 라이프사이클이 의미하는 바에 대해서 설명해주세요.

  • 라이프사이클은 어떤 시스템, 객체, 또는 소프트웨어 컴포넌트가 생성되고 동작하며 소멸하는 과정을 나타내는 개념입니다. 라이프사이클은 일반적으로 여러 단계로 나뉘어져 있으며, 각 단계에서는 특정한 작업이 수행됩니다.

🍃 라이프사이클


20. 라이프사이클 메소드에 대해 설명해주세요.

  • React 컴포넌트의 라이프사이클은 컴포넌트가 생성, 업데이트, 제거되는 과정에서 일어나는 메서드들을 나타냅니다.
  1. 생성 단계:
    • constructor: 컴포넌트가 생성될 때 실행되는 메소드로, 초기 상태 설정 등을 수행합니다.
    • componentDidMount: 컴포넌트가 DOM에 마운트된 후 실행되는 메소드로, 필요한 데이터 로딩 등을 수행합니다.
  2. 업데이트 단계:
    • shouldComponentUpdate: 상태나 속성 변경 시 리렌더링 여부를 결정하는 메소드입니다.
    • componentDidUpdate: 업데이트가 이루어진 후 실행되는 메소드로, 업데이트 후 필요한 작업을 수행합니다.
  3. 소멸 단계:
    • componentWillUnmount: 컴포넌트가 DOM에서 제거되기 직전에 실행되는 메소드로, 리소스 해제 등의 정리 작업을 수행합니다.

🫐 리액트 라이프사이클 메서드


21. 쓰로틀링과 디바운싱의 개념과 사용하는 이유에 대해서 설명해주세요.


22. 자바스크립트와 타입스크립트의 차이, 장/단점에 대해 설명해주세요.

이거 컴파일과 인터프리터 개념도 같이 이해해서 설명하고 싶은데 지식 부족..! 타입스크립트는 자바스크립트가 런타임에 가서야 오류를 발생시키는 단점을 보완하기 위해, 코드 작성 시에 타입을 지정해서 안정성을 제고합니다.

profile
아무튼, 개발자

0개의 댓글