클라이언트 사이드 렌더링 : SPA(싱글페이지렌더링)에서 자바스크립트로 동작, 하나의 페이지에 모든 요소들을 처음 한 번 렌더링 하고 변경 사항도 여기서 복작복작 적용되는..?
서버 사이드 렌더링 : 각각 페이지의 HTML 요소를 서버에서 다 뚝딱뚝딱 해줘서 응답 보내주면 그게 화면에 보입니다. 매번 서버 요청을 보내야 한다.
클라이언트 사이드 렌더링(CSR)은 웹 애플리케이션에서 페이지의 초기 로드 후에 추가적인 데이터를 받아와서 동적으로 렌더링하는 방식이고, 초기 HTML은 정적으로 제공되며, JavaScript를 사용하여 클라이언트에서 동적으로 컨텐츠를 렌더링합니다.
장점은 초기 페이지 로드 시 필요한 최소한의 HTML, CSS, JavaScript만 전달되므로 초기 로딩이 빠르고,페이지가 로드된 이후에도 JavaScript를 사용하여 데이터를 비동기적으로 가져와 동적으로 업데이트할 수 있습니다.
단점은 초기 HTML에 동적으로 렌더링되는 컨텐츠가 포함되지 않기 때문에 검색 엔진 최적화에 어려움이 있을 수 있고,초기 로드 이후에 추가적인 데이터를 받아오기 때문에, 초기 로딩 이후의 지연이 발생할 수 있습니다.
서버 사이드 렌더링(SSR)은 서버에서 완전한 HTML을 생성하여 클라이언트에게 전송하는 방식이고,서버에서 렌더링된 HTML을 받아와서 화면에 표시합니다.
장점은 검색 엔진은 서버에서 렌더링된 완전한 HTML을 수용하기 때문에 SEO에 유리하고, 사용자가 페이지를 요청할 때 서버에서 이미 렌더링이 완료된 HTML을 제공하므로 초기 로딩이 빠릅니다.
단점은 매 요청마다 서버에서 새로운 HTML을 생성해야 하므로, 전체적인 성능 면에서 클라이언트 사이드 렌더링보다 느릴 수 있고,많은 사용자가 동시에 서버에 접속하는 경우 서버 부하가 증가할 수 있습니다.
TCP (Transmission Control Protocol):
TCP는 통신을 시작하기 전에 연결을 설정하고, 통신이 끝나면 연결을 해제하는 연결 지향 프로토콜입니다. 이를 통해 안정적이고 신뢰성 있는 데이터 전송이 가능합니다.수신 측에서 전송 측으로부터 수신 확인 응답을 받고, 만약 데이터가 손상되었다면 재전송을 요청합니다.
파일 전송, 이메일 전송, 웹 브라우징 등 신뢰성이 중요한 응용 프로그램에서 주로 사용됩니다.
UDP (User Datagram Protocol):
UDP는 연결을 설정하지 않고 데이터를 즉시 보내는 비연결 지향 프로토콜입니다. 간단하고 빠른 통신이 가능하지만, 데이터의 손실이나 순서의 불일치가 발생할 수 있습니다.
수신 측에서는 데이터의 유효성을 확인하지 않습니다. 오류 발생 시 복구나 재전송을 하지 않습니다.
동영상 스트리밍, 음성 통화, 온라인 게임 등에서 실시간 통신이 필요한 응용 프로그램에서 주로 사용됩니다.
HTTP는 데이터를 평문으로 전송합니다. 따라서 데이터가 네트워크를 통해 전송되는 동안 암호화되지 않습니다.암호화하지 않기 때문에 중간에서 데이터를 가로채거나 수정하는 공격이 쉽게 발생할 수 있습니다. 일반적인 웹 페이지 로딩, 정보 검색 등에서 사용됩니다.
HTTPS는 보안 소켓 계층(SSL 또는 TLS)을 사용하여 데이터를 암호화합니다. 이는 중간에서 데이터를 가로채도 읽을 수 없게 합니다. 통신하는 양쪽 간의 데이터를 암호화하여 도청이나 데이터의 변조를 방지합니다.웹 서버의 신원을 확인하고, 클라이언트와 서버 간의 안전한 통신을 보장하는데 사용되는 인증서를 필요로 합니다. 민감한 정보 전송, 로그인 페이지, 결제 정보 입력 등과 같이 보안이 필요한 상황에서 사용됩니다.
이거 컴파일과 인터프리터 개념도 같이 이해해서 설명하고 싶은데 지식 부족..! 타입스크립트는 자바스크립트가 런타임에 가서야 오류를 발생시키는 단점을 보완하기 위해, 코드 작성 시에 타입을 지정해서 안정성을 제고합니다.