Spring & SpringBoot 3

HTTP 웹 기본 지식 (1) - 인터넷 네트워크, 웹 브라우저 요청 흐름, HTTP 기초

1. 인터넷 네트워크IP (Internet Protocol)역할: 패킷(Packet)이라는 통신 단위로 지정한 IP 주소에 데이터를 전달하는 역할을 수행한다.과정클라이언트는 패킷(출발지 IP, 목적지 IP, 데이터, 그 외)을 꾸려 인터넷에 전달한다.패킷은 인터넷상의 노드를 거쳐 목적지 IP를 가진 서버에 도달한다.서버가 패킷을 잘 전달받으면 패킷(출발지 IP, 목적지 IP, 상태, 그 외)을 클라이언트에게 전달한다.패킷은 인터넷 상의 노드를 거쳐 클라이언트에게 전달되는데 이때 클라이언트에서 서버까지의 도달했던 경로와 다른 경로로 클라이언트에게까지 전달될 수 있다.한계비연결성: 패킷을 받을 대상 서버가 서비스 불능 상태여도 패킷을 전송한다.비신뢰성패킷 소실: 클라이언트가 서버로 인터넷을 통해 패킷을 전송..

Spring & SpringBoot 2024.08.23

[Spring 입문] Spring 웹 개발 기초 (정적 컨텐츠, MVC와 템플릿 엔진, API)

스프링 웹은 정적 컨텐츠, MVC와 템플릿 엔진, API를 기본으로 개발된다. 각 개념이 무엇인지, 어떻게 개발하는지를 알아보도록 하자. 정적 컨텐츠SpringBoot는 /static 디렉토리나 ServletContext의 루트에서 정적 컨텐츠를 가져와 전달하는 한다. 아래와 같이 static 디렉토리 아래 hello-static.html을 작성하고 localhost:8080/[파일명]으로 접근하면 정적 컨텐츠를 확인할 수 있다.  아래는 정적 컨텐츠가 사용자에게 나타나는 과정을 나타낸다.웹 브라우저에서 hello-static.html를 찾으면내장 톰켓 서버가 스프링에 전달한다.스프링은 hello-static 관련 컨트롤러를 먼저 찾는다. (controller의 우선순위가 resources보다 높다는 걸..

Spring & SpringBoot 2024.07.25

[Spring 입문] Spring Boot 프로젝트 생성, 실행, 빌드

Spring Boot 기반으로 Spring 프로젝트를 만들어주는 spring initializr를 통해 프로젝트를 생성한다. 프로젝트는 다음과 같이 선택하면 된다.Project: Gradle - GroovySpring Boot: 3.0.0 이상 (정식 릴리즈된 버전으로 선택하기)Language: JavaPackaging: JarJava: 17 or 21Project Metadatagroupid: 도메인명을 작성artifact: 빌드되어 나올 때의 결과물 즉, 프로젝트명DependenciesSpring Web: 웹 프로젝트를 만들기 위해 선택해야 하는 dependencyThymeleaf: HTML을 만들어줄 템플릿 엔진 여기서 잠깐⚠️ Project 선택 시 Maven과 Gradle 둘 중 하나를 선택할 ..

Spring & SpringBoot 2024.07.16