본문 바로가기
Record/boostcourse

[boostcourse] 2. 웹 백엔드 프로그래밍 기초 생각해보기 #1

by doongjun 2021. 7. 20.

#1 Web개발의 이해

 

1-1) 프론트엔드부터 서버 개발까지 한 가지 프로그래밍 언어를 사용하여 개발한다면
어떤 언어를 사용하는 것이 좋을까?

프론트엔드는 물론 node.js 프레임워크를 사용해 백엔드 개발까지 할 수 있는 javascript라고 생각한다.

 

1-2) 다양한 라이브러리, 쉬운 개발, 읽기 쉽고 적은 코드를 장점으로 한다면
어떤 언어를 사용하는 것이 좋을까?

읽기 쉽고 적은 코드로 프로그래밍을 할 수 있는 Python이라고 생각한다.

 

1-3) 프로그래밍 언어에게 좋은 커뮤니티가 있다는 것은 어떤 장점을 가질까?

혼자 해결할 수 없는 오류와 궁금한 내용들을 질문하거나 자신이 알고있는 내용을 공유함으로써

더 쉽게 지식을 얻고 자신이 알고 있는 내용을 상기시킬 수 있다.

 

2) HTTP와 HTTPS는 무엇이 다를까?

WWW 통신 프로토콜인 HTTP의 보안이 강화된 버전이다.

통신의 인증과 암호화를 지원하며 전자 상거래에서 널리 쓰인다.

소켓 통신에서 일반 텍스트를 이용하는 대신에,

SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화하여 데이터의 적절한 보호를 보장한다.

HTTPS의 기본 TCP/IP 포트는 443이다.

HTTPS를 사용하는 웹페이지의 URI는 'http://'대신 'https://'로 시작한다.

 

3) 흔히 브라우저 탐색을 할 때 스크롤을 하거나, 어떤 것을 클릭하면서 화면의 위치를 바꿀 때,
브라우저는 어떻게 다시 화면을 그릴까?

페이지 변경과 같이 Render Tree가 변경된다면 브라우저는 다시 렌더링을 진행하고

스크롤과 같이 Render Tree가 변경되지 않는다면  렌더링을 진행하지 않고 화면에 보이는 UI를 바꿀 것이다.

 

4) 네이버, 구글과 같은 검색을 할 수 있는 사이트에서는 검색어를 입력하면 검색어가 포함된 웹 페이지 목록을 보여줍니다. 네이버와 구글은 검색어가 포함된 웹페이지를 어떻게 알 수 있었을까요?

웹에서 어떤 정보를 찾으려 하면 관련된 정보가 포함된 웹 페이지는 수천, 수백 만 개까지 존재할 수 있을 것이다.

사용자가 검색하기 전에, 구글은 구글 검색 색인에 웹페이지에 관한 정보를 구성한다. 

검색어를 입력하면 저장해둔 엄청난 크기의 색인 도서관에서

그 검색어 색인을 가진 웹 문서를 우선 순위에 따라 가중치를 매겨 가져온다.

 

5) 톰캣 버전별 차이점에 대해 알아보세요.

1. Apache Tomcat 7.x

Apache Tomcat 7.x 는 Tomcat 6.0.x의 향상된 기능을 기반으로하며 Servlet 3.0 , JSP 2.2 , EL 2.2 및 WebSocket 1.1 사양을 구현합니다. 그 외에도 다음과 같은 개선 사항이 포함됩니다.

  • 웹 응용 프로그램 메모리 누수 감지 및 예방
  • Manager 및 Host Manager 응용 프로그램의 향상된 보안
  • 일반적인 CSRF 보호
  • 웹 애플리케이션에 직접 외부 컨텐츠를 포함 할 수 있도록 지원
  • 리팩토링 (커넥터, 라이프 사이클) 및 많은 내부 코드 정리

2. Apache Tomcat 8.x

Apache Tomcat 8.0.x 는 Tomcat 7.0.x를 기반으로하며 Servlet 3.1 , JSP 2.3 , EL 3.0 및 WebSocket 1.1 사양을 구현합니다. 여기에는 다음과 같은 중요한 개선 사항이 포함됩니다.

  • 이전 버전에서 제공된 여러 리소스 확장 기능을 대체하기위한 단일 공통 리소스 구현입니다.

Apache Tomcat 8.5.x 는 Apache Tomcat 8.0.x와 동일한 Servlet, JSP, EL 및 WebSocket 사양 버전을 지원합니다. 이 외에도 JASPIC 1.1 스펙을 구현한다 .

그것은 Tomcat 9.0.0.M4 (알파) 마일스톤 릴리스에서 포크로 2016 년 3 월에 만들어졌습니다. Tomcat 9.x 코드베이스의 HTTP / 2 지원 및 기타 기능을 제공하며 Tomcat 8.0 런타임 및 사양 요구 사항과 호환됩니다. (Tomcat 9가 타겟으로하는 Java EE 사양이 겨우 몇 년 후 완성 되었기 때문에, Tomcat 9.0의 안정적인 릴리스는 그 당시 생성 될 수 없었습니다).

Tomcat 8.5는 Tomcat 8.0을 대신하는 것으로 생각됩니다. Tomcat 8.5로 마이그레이션하는 방법에 대한 지침은 마이그레이션 가이드 를 참조하십시오 .

Apache Tomcat 8.5.x의 주요 개선 내용은 다음과 같습니다.

  • HTTP / 2에 대한 지원을 추가합니다 ( Tomcat 네이티브 라이브러리 필요 ).
  • JSSE 커넥터 (NIO 및 NIO2)와 함께 TLS 지원을위한 OpenSSL 사용에 대한 지원을 추가합니다.
  • SNI (TLS 가상 호스팅)에 대한 지원을 추가합니다.

다음 기술은 Apache Tomcat 8.5.x에서 제거되었습니다.

  • HTTP 및 AJP 커넥터의 BIO 구현
  • Comet API 지원

후드 아래 많은 부분에서 중요한 변화가있어 성능, 안정성 및 총 소유 비용이 향상됩니다. 자세한 내용은 Apache Tomcat 8.5 Changelog를 참조하십시오.

Tomcat 8.0의 사용자는 Tomcat 8.0 의 수명이 다한 것을 알고 있어야합니다 . Tomcat 8.0.x 사용자는 Tomcat 8.5.x 이상으로 업그레이드해야합니다.

 

3. Apache Tomcat 9.x

Apache Tomcat 9.x 는 가장 최신형 버전이며 아직 안정적인 단계는 아닙니다. Tomcat 8.0.x 및 8.5.x를 기반으로하며 Servlet 4.0 , JSP 2.3 , EL 3.0 , WebSocket 1.1 및 JASPIC 1.1 사양 (Java EE 8 플랫폼에 필요한 버전)을 구현합니다. 여기에는 다음과 같은 중요한 개선 사항이 포함됩니다.

  • HTTP / 2에 대한 지원 추가 (Java 9 (Apache Tomcat 9.0.0.M18 이후) 또는 Tomcat 네이티브 라이브러리가 설치되어 있어야 함)
  • JSSE 커넥터 (NIO 및 NIO2)와 함께 TLS 지원을위한 OpenSSL 사용에 대한 지원을 추가합니다.
  • SNI (TLS 가상 호스팅)에 대한 지원을 추가합니다.

출처: https://isabeller.tistory.com/23 [라헬로그]

댓글