JavaRush /Java Blog /Random-KO /Part 1. Spring과 JavaEE를 배우기 전에 알아야 할 사항

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

Random-KO 그룹에 게시되었습니다
이미 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(개방형 시스템 상호 연결) ​​모델은 네트워크 구축에 대한 계층적 접근 방식을 만듭니다. 동일한 네트워크의 구성원이 서로 상호 작용할 수 있는 방법과 수준을 명확하게 보여줍니다. 전체적으로 이 모델에는 7가지 레벨이 포함되어 있습니다.
7 적용된
6 대표
5 세션
4 수송
회로망
2 도관
1 물리적
추상화 계층으로 세분화하면 예를 들어 전송 계층에서 작업하는 전문가가 네트워크 및 세션 계층에서 네트워크 구현의 세부 사항에 대해 생각하지 않아도 됩니다. 이 접근 방식은 프로그래밍에도 사용됩니다. OSI 모델의 모든 계층을 살펴보고 어느 계층이 우리에게 흥미로운지 알아봅시다.
  1. 1. 물리적 수준 - 여기에서는 물리 법칙이 제 역할을 하며, 인간의 임무는 이것을 자신의 목적을 위해 사용하고 지시하는 것입니다. 예를 들어 케이블을 생성하여 네트워크 구성원에 배치합니다.

    우리는 관심이 없습니다.

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

    Нам не интересен, если только нет желания писать прошивку для каналообразующей аппаратуры.

  3. Сетевой уровень — для определения addressов отдельных пользователей сети и маршрутов к ним. На этом уровне стоит остановиться подробнее, а именно — на addressе пользователя в сети.

    Он определяется специальным протоколом: самый распространённый — IPv4 (Internet Protocol version 4). Именно его нужно использовать веб-программисту для обращения к другому абоненту сети.

    IPv4 состоит из четырех byteовых значений, разделенных точкой, например: 192.0.2.235. Стоит помнить, что значения byteовые, а значит, они лежат в пределах 0..255.

    IP-address, в свою очередь, делятся на классы, и просто так присвоить себе красивую комбинацию циферок не получится, но так сильно углубляться мы не станем. Достаточно понимать, что IP-address — это уникальный идентификатор абонента в сети, по которому мы сможем к нему обратиться.

  4. Транспортный уровень — занимается доставкой информации addressту. Для этого используются разные протоколы, которые нам пока не интересны. Гораздо больше нас интересует понятие, которое появляется на этом уровне, — port.

    Порты отвечают за идентификацию конкретного applications на компьютере. Например, ты написал чат на Java, установил на 2 компа и хочешь отправить своему собеседнику. Твое сообщение упаковывается, отправляется по конкретному IP-addressу, доставляется твоему собеседнику, но его ПК не знает, что делать с полученной информацией, так How не понимает, Howое приложение должно обработать твое сообщение. Для этого и указываются порты при общении абонентов в сети.

    Порт представляет собой число от 0 до 65535. Он добавляется к IP-addressу после двоеточия: 192.0.2.235:8080. Но нельзя использовать все порты из указанного диапазона: часть из них зарезервирована под операционную систему, еще часть принято использовать с конкретно оговоренной целью. В преднаmeaning разных портов углубляться не будем, пока достаточно понимать их роль в процессе общения в сети.

  5. Сеансовый уровень — создает и управляет сеансами связи приложений. На этом уровне становится возможным взаимодействие приложений, отправка requestов служебного уровня. Для нас важно знать, что на этом уровне между двумя абонентами открывается сессия (session), с которой нам часто придется работать.

    Сессия — сущность, которая создается при установке связи между двумя пользователями. В ней можно сохранять нужную нам информацию о юзере, об истории их взаимодействия. Важной деталью является то, что при остановке обмена информацией сессия не пропадает, а сохраняет свое состояние на протяжении установленного промежутка времени, поэтому пользователи могут продолжить обмен информацией после перерыва.

    애플리케이션이 여러 사용자와 동시에 통신하는 경우 적절한 수의 연결, 즉 세션이 설정됩니다. 각 세션 에는 응용 프로그램이 통신하는 사용자를 구별할 수 있는 고유 식별자(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:port 입니다 . 이 주소를 알면 바로 애플리케이션에 접속할 수 있습니다. 모든 국가의 평균 기온을 실시간으로 표시하는 웹 애플리케이션을 작성했다고 가정해 보겠습니다. 우리는 주소가 226.69.237.119이고 포트 8080인 서버에 배포했습니다. 사용자가 우리로부터 정보를 받으려면 브라우저에 226.69.237.119:8080의 5개 숫자를 입력해야 합니다. 사람들은 숫자 집합을 기억하는 것을 그다지 좋아하지 않습니다. 우리 모두가 두 개 이상의 전화번호를 기억하는 것은 아닙니다. 이것이 바로 도메인 이름 시스템이 발명된 이유입니다 . 예를 들어 world-temp.com과 같이 주소에 대한 "별칭"을 만들 수 있으며 5자리 주소를 사용하여 검색하는 대신 사용자는 브라우저의 주소 표시줄에 도메인 이름을 입력할 수 있습니다. 도메인 이름과 실제 주소를 일치시키기 위해 DNS 서버가 있습니다 . 예를 들어 사용자가 브라우저에 javarush.ru를 입력하면 해당 요청이 DNS 서버로 전송되어 실제 주소로 변환됩니다. Part 1. Spring과 JavaEE를 배우기 전에 알아야 할 것 - 4애플리케이션에서 도메인 이름과 실제 주소로 원격 서비스를 호출할 것이며 이는 동일한 서비스이기 때문에 이를 이해하는 것이 중요합니다. 그게 다야! 이 글에서는 웹 프로그래밍을 배우기 전에 도움이 될 네트워크 설계의 기본 사항을 살펴보았습니다. 다음 시간에는 클라이언트-서버 아키텍처가 무엇인지, 그리고 이를 이해하는 것이 왜 그렇게 중요한지 살펴보겠습니다. 2부. 소프트웨어 아키텍처에 대해 조금 이야기해 보겠습니다. 3부. HTTP/HTTPS 프로토콜 4부. Maven 기본 사항 5부. 서블릿. 간단한 웹 애플리케이션 작성 6부. 서블릿 컨테이너 7부. MVC(모델-뷰-컨트롤러) 패턴 소개 8부. 작은 스프링 부트 애플리케이션 작성
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION