CodeGym /Java Blog /무작위의 /Part 1. Spring과 JavaEE를 배우기 전에 알아야 할 사항
John Squirrels
레벨 41
San Francisco

Part 1. Spring과 JavaEE를 배우기 전에 알아야 할 사항

무작위의 그룹에 게시되었습니다
Java SE 학습을 이미 완료했거나 거의 완료했다면 이제 Java 개발자의 직업을 정복하기 위한 다음 단계에 대해 생각할 때입니다. Part 1. Spring과 JavaEE를 배우기 전에 알아야 할 것 - 1 한편으로는 이미 Java를 잘 이해하고 있습니다. IDE로 작업하고 프로그램을 작성하는 방법 등을 알고 있습니다. 그러나 프로그램으로 다음에 무엇을 해야 합니까? 당신은 어떻게 그것들을 더 시원하게 만들고 "세상에 풀어놓을" 수 있습니까? 엔터프라이즈 기술에 대한 연구를 시작해야 할 때임이 분명해지고 있습니다. 이제 재미가 시작됩니다. 어떤 기술 스택으로 시작하기로 결정했는지는 중요하지 않습니다. 그것이 JavaEE이든 Spring이든, 당신은 당신의 이해력을 훨씬 넘어서는 수많은 것들을 접하게 될 것입니다. Java 기본과 고급 기술 사이에는 방대한 문서를 읽을 때 남은 자제력과 자신감을 유지하기 위해 취해야 하는 지식의 중간 단계가 남아 있습니다. 그러므로,JavaEE 또는 Spring에 대한 추가 학습에 필요한 최소한의 이론적 지식을 제공합니다. 이 자료는 7 부분으로 나뉩니다.
  1. 네트워킹에 대해 조금 이야기하겠습니다.
  2. 클라이언트-서버 및 3계층 아키텍처를 살펴보겠습니다.
  3. HTTP/HTTPS 프로토콜을 살펴보겠습니다.
  4. Maven에 대해 알아야 할 모든 것을 배우게 됩니다.
  5. 우리는 로깅에 대해 이야기하고 있습니다.
  6. 서블릿 컨테이너 정보.
  7. 그리고 마지막으로 MVC에 대해.

파트 1. 네트워킹에 대해 조금 이야기하겠습니다.

모든 소셜 네트워크, 웹 서비스 및 웹 앱, 인스턴트 메신저 및 간단한 웹 사이트가 구축되는 네트워크( 이 기사 시리즈의 맥락에서 "네트워크"라는 용어는 인터넷을 의미함 ) 에 대해 이야기하면서 가장 중요한 것부터 시작하겠습니다. . 네트워크는 엄청난 수의 컴퓨터로 구성되어 있습니다. 서로 연결되어 있고 통신할 수 있습니다. 웹 응용 프로그램이 한 컴퓨터에서 다른 컴퓨터로 정보를 보내기 때문에 이를 수행하는 방법을 이해하는 것이 중요합니다.

OSI 모델

OSI(Open Systems Interconnection) 모델은 네트워크 구축에 대한 계층화된 접근 방식을 생성합니다. 동일한 네트워크의 어떤 계층 엔터티가 서로 어떻게 그리고 어떤 계층에서 상호 작용할 수 있는지 명확하게 보여줍니다. 전체적으로 이 모델에는 7개의 레이어가 포함되어 있습니다.
7 애플리케이션
6 프레젠테이션
5 세션
4 수송
회로망
2 데이터 링크
1 물리적
모델을 추상화 계층으로 나누면 전송 계층에서 작업하는 개발자가 예를 들어 네트워크 및 세션 계층 수준에서 구현 세부 사항에 대해 생각할 필요가 없습니다. 이 접근 방식은 프로그래밍에도 사용됩니다. OSI 모델의 모든 계층을 고려하고 관심 있는 계층을 결정해 보겠습니다.
  1. 물리 계층 — 이 계층은 물리 법칙과 이를 목적에 맞게 사용하는 방법을 다룹니다. 예를 들어 케이블을 생성하고 네트워크의 엔티티에 배치합니다.

    이 레이어는 관심이 없습니다.

  2. 데이터 링크 계층 — 이 계층은 네트워크 노드로 데이터를 전송하고 물리적 개체에 대한 데이터 전송 채널을 생성하는 역할을 합니다.

    데이터 링크를 설정하는 하드웨어용 펌웨어를 작성하지 않는 한 이 계층은 관심이 없습니다.

  3. 네트워크 계층 — 이 계층은 개별 네트워크 사용자의 주소와 경로를 결정하기 위한 것입니다. 이 계층의 세부 사항, 즉 네트워크 주소에 대해 자세히 알아보는 것이 좋습니다.

    네트워크 주소는 특수 프로토콜로 정의됩니다. 가장 일반적인 프로토콜은 IPv4(인터넷 프로토콜 버전 4)입니다. 이것은 웹 프로그래머가 다른 네트워크 사용자에게 연락하기 위해 사용해야 하는 프로토콜입니다.

    IPv4 주소는 마침표로 구분된 4바이트 값으로 구성됩니다(예: 192.0.2.235). 이러한 값은 바이트이며 0..255 범위 내에 있음을 의미합니다.

    차례로 IP 주소는 클래스로 나뉩니다. 단순히 아름다운 숫자 조합을 할당할 수는 없지만 여기서는 깊이 들어가지 않겠습니다. IP 주소가 네트워크 사용자를 고유하게 식별하고 해당 사용자에게 연락하는 데 사용할 수 있다는 점을 이해하는 것으로 충분합니다.

  4. 전송 계층 — 이 계층은 수신자에게 정보 전달을 처리합니다. 이를 위해 다양한 프로토콜이 사용됩니다. 지금은 관심이 없습니다. 우리는 이 계층에 나타나는 포트 개념에 훨씬 더 관심이 있습니다 .

    포트는 컴퓨터에서 특정 응용 프로그램을 식별하는 역할을 합니다. 예를 들어 Java로 채팅 앱을 작성하고 2대의 컴퓨터에 설치하고 친구에게 메시지를 보내고 싶다고 가정합니다. 귀하의 메시지가 패키지화되어 특정 IP 주소로 전송되고 친구에게 배달되지만 친구의 컴퓨터는 어떤 응용 프로그램이 귀하의 메시지를 처리해야 하는지 이해하지 못하기 때문에 받은 정보로 무엇을 해야할지 모릅니다. 네트워크 엔터티가 통신할 때 포트는 정보를 처리해야 하는 응용 프로그램을 나타내는 데 사용됩니다.

    포트는 0~65535 범위의 숫자입니다. 콜론 다음에 IP 주소에 추가됩니다: 192.0.2.235:8080 . 그러나 지정된 범위의 모든 포트를 사용할 수는 없습니다. 그 중 일부는 운영 체제용으로 예약되어 있고 나머지는 특정 목적을 위해 관례적으로 사용됩니다. 우리는 다른 포트의 목적을 탐구하지 않을 것입니다. 지금은 네트워크 통신 과정에서 이들의 역할을 이해하는 것으로 충분합니다.

  5. 세션 계층 — 이 계층은 통신 세션을 생성하고 관리합니다. 이 계층에서는 애플리케이션이 상호 작용하여 서비스 수준 요청을 보내는 것이 가능해집니다. 우리가 알아야 할 것은 이 계층에서 두 사용자 사이에 세션이 열리고 세션을 사용하여 작업해야 한다는 것입니다.

    세션은 사용자 간에 연결이 설정될 때 생성되는 엔터티입니다. 사용자 및 사용자와의 상호 작용 이력에 대한 필요한 정보를 저장할 수 있습니다. 중요한 세부 사항은 정보 교환이 중지되면 세션이 사라지지 않는다는 것입니다. 대신 일정 시간 동안 상태를 유지하므로 휴식 후 사용자가 계속해서 정보를 교환할 수 있습니다.

    응용 프로그램이 동시에 여러 사용자와 통신하는 경우 해당 연결 수(따라서 세션)가 설정됩니다. 각 세션 에는 응용 프로그램이 통신 중인 사용자를 구별할 수 있는 고유 식별자(ID)가 있습니다 .

  6. 프리젠테이션 계층 — 이 계층은 데이터 인코딩/디코딩을 담당합니다. 분명히 "Hello web"이라는 문자열을 다른 사용자에게 보내야 하는 경우 먼저 이진 코드로 변환(인코딩)한 다음에만 보냅니다. 수신자에게 도달하면 메시지가 다시 변환(디코딩)되고 수신자는 원래 문자열을 볼 수 있습니다. 이러한 작업은 프레젠테이션 계층에서 발생합니다.

  7. 애플리케이션 계층은 우리에게 가장 흥미로운 계층입니다. 응용 프로그램이 네트워크와 통신할 수 있습니다. 이 계층에서 우리는 메시지를 주고받으며 서비스 및 원격 데이터베이스에 요청합니다.

    이 계층에는 POP3, FTP, SMTP, XMPP, RDP, SIP, TELNET 및 물론 HTTP/HTTPS와 같은 많은 프로토콜이 사용됩니다. 프로토콜은 통신할 때 준수하는 보편적인 합의입니다. 우리는 확실히 HTTP/HTTPS에 대한 별도의 자세한 설명을 제공할 것입니다.

Part 1. Spring과 JavaEE를 배우기 전에 알아야 할 것 - 2모델의 모든 계층이 어떻게 작동하는지 알 필요가 없습니다. 가장 중요한 것은 웹 애플리케이션을 작성할 때 작업해야 하는 요소의 작동 원리를 이해하는 것입니다.
  • IP 주소 — 네트워크의 사용자 주소
  • 포트 — 특정 사용자의 애플리케이션 주소
  • 세션 — 두 사용자 간의 통신 기간 내내 존재하는 개체
  • 애플리케이션 프로토콜(HTTP/HTTPS) — 메시지를 작성하고 보낼 때 따라야 할 규칙입니다.
예를 들어 온라인 상점을 방문하면 주소와 포트를 표시합니다. 처음 방문하면 세션이 생성됩니다. 상점은 세션에 정보를 기록할 수 있습니다. 예를 들어, 상점은 장바구니에 남겨둔 항목에 대한 정보를 저장할 수 있습니다. 온라인 상점에서 탭을 닫았다가 나중에 다시 열면 항목이 세션에 저장되기 때문에 장바구니에 계속 남아 있습니다. 물론 스토어에서 받는 모든 정보는 HTTP/HTTPS 프로토콜을 통해 받고 브라우저는 이를 처리하는 방법을 알고 있습니다. 당신은 브라우저에 주소와 포트를 입력한 적이 없으며 부분적으로 옳을 것이라고 말하면서 이의를 제기할 수 있습니다. 당신이 한 일은 DNS 서버에 의해 변환된 도메인 이름을 입력하는 것이었습니다. 여기에 무엇이 있는지 더 잘 살펴 보겠습니다.

DNS(도메인 이름 시스템)

이미 배운 것처럼 각 네트워크 사용자는 고유한 주소를 가지고 있습니다. 응용 프로그램에 대해 이야기하는 경우 고유 주소는 IPv4-address:port 입니다 . 이 주소를 알면 애플리케이션에 직접 액세스할 수 있습니다. 실시간으로 모든 국가의 평균 기온을 표시하는 웹 애플리케이션을 작성했다고 상상해 보십시오. 주소가 226.69.237.119인 서버의 포트 8080에 배포했습니다. 정보를 받으려면 사용자가 브라우저에 5개의 숫자(226.69.237.119:8080)를 입력해야 합니다. 사람들은 일련의 숫자를 암기하는 것을 좋아하지 않습니다. 우리 중 많은 사람들이 두 개 이상의 전화번호를 기억하지 못합니다. 그렇기 때문에 도메인 네임 시스템은발명되었습니다. 예를 들어 world-temperature.com과 같이 주소에 "별칭"을 만들 수 있습니다. 기억하기 어려운 5개의 숫자로 구성된 주소를 사용하여 우리를 찾는 대신 사용자는 브라우저의 주소 표시줄에 도메인 이름을 입력할 수 있습니다. 도메인 이름을 실제 주소에 매핑하는 DNS 서버가 있습니다 . 예를 들어 사용자가 브라우저에 codegym.cc를 입력하면 요청이 DNS 서버로 전송되어 실제 주소로 변환됩니다. Part 1. Spring과 JavaEE를 배우기 전에 알아야 할 사항 - 4애플리케이션이 도메인 이름과 실제 주소로 원격 서비스를 호출하기 때문에 이를 이해하는 것이 중요합니다. 두 경우 모두 서비스가 동일하다는 것을 이해해야 합니다. 지금은 그게 다야! 이 기사에서는 웹 프로그래밍을 배우기 시작할 때 유용한 네트워킹의 기본 사항을 살펴보았습니다.다음 시간에는 클라이언트-서버 아키텍처가 무엇이며 이해하는 것이 왜 중요한지 살펴보겠습니다. 2부. 소프트웨어 아키텍처에 대해 조금 이야기해 봅시다. 3부. HTTP/HTTPS 4부. Maven의 기본 사항 5부. 서블릿 및 Java Servlet API. 간단한 웹 애플리케이션 작성 6부. 서블릿 컨테이너 7부. MVC(Model-View-Controller) 패턴 소개
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION