
웹 애플리케이션에서 HTTP 요청을 처리하고 응답을 생성하는 객체역할클라이언트 요청을 받아서 필요한 로직을 수행한 뒤, HTML, JSON 등의 응답을 반환함동작 흐름클라이언트 요청 → 서블릿 컨테이너 → 서블릿 실행 → 응답 반환실제 사용스프링 MVC 내부에서 Dis

인터넷 프로토콜 (IP) >192.168.0.1 같은 숫자는 IP 자체가 아닌 IP 주소이다. IP 주소 인터넷 통신 시에는 지정한 IP 주소에 데이터를 Packet 단위로 전달함 Packet 소스 IP(출발지), 대상 IP(도착지)를 포함하고 있어 어떤 컴퓨
도메인 이름과 IP 주소를 서로 변환하는 역할 수행즉, 사람이 읽을 수 있는 도메인 이름을 컴퓨터가 읽을 수 있는 IP 주소로 변환하는 것원하는 이름의 도메인 구매 후, DNS 서버에 등록DNS 서버에 도메인 이름을 입력하면 IP 주소를 반환함IP가 변경되면 DNS 서
단일 서버의 하드웨어 사용을 높임CPU, Memory 등의 스펙을 높임성능이 좋아질 수록 비용이 기하급수적으로 올라감요청에 대한 처리를 더욱 빠르게 할 수 있도록 만듦같은 사양의 서버를 여러 대 배치성능과 비용이 비례 관계를 가짐동시에 더 많은 사용자 요청을 처리할 수

HTTP/1.1에 대한 정리 글클라이언트는 요청 Request 을 보내고, 응답 Response 을 기다림서버는 요청 Request 에 대한 처리 후 결과를 응답 Response 함클라이언트는 UI에 중점을 두도록 만듦서버에서 데이터와 비즈니스 로직을 담당하도록 만듦서
REST를 잘 준수하는 API로, HTTP 프로토콜을 사용하여 클라이언트와 서버 간의 통신을 통해 자원(Resource)을 관리한다.자원은 고유한 URI로 식별되며, HTTP Method를 통해 다양한 작업을 수행한다.요청과 응답은 일반적으로 JSON 또는 XML 형식

Web Server는 HTTP 기반으로 동작하며 정적 리소스를 제공함HTTP 기반으로 동작하며 웹 서버의 기능을 포함한다.추가적으로 코드를 실행해서 Application 로직을 수행하고 DB와 상호작용하여 동적 컨텐츠를 생성한다.Web Server도 Applicatio
보일러 플레이트 코드를 줄여주는 라이브러리로 자동으로 보일러 플레이트 코드를 생성하여 코드의 가독성과 유지보수성을 높여준다.Lombok은 어노테이션 기반으로 동작하며, 주로 컴파일 시점에 소스 코드를 변환하여 필요한 메서드를 자동으로 생성한다.보일러 플레이트 코드(Bo

Java Application Framework엔터프라이즈 애플리케이션 개발에 주로 사용됨서버 성능, 안정성, 보안 문제를 고도화된 수준으로 해결해줌개발자는 위 문제를 제쳐두고, 비즈니스 로직 개발에 집중할 수 있게 됨애플리케이션의 다양한 구성 요소를 유연하게 연결하고

Groovy기반의 스크립트 언어 사용다양한 소프트웨어를 빌드(Build)할 수 있는 유연한 빌드 자동화 도구이다.복잡한 빌드 시나리오를 처리할 수 있는 유연한 시스템을 제공한다.빌드 스크립트를 통해 다양한 빌드 작업을 정의하고, 필요한 경우 커스터마이징할 수 있다.Bu
Spring 입문 - 3주차MVC 패턴 1강MVC 패턴 2강실습

Spring 입문 - 3주차Spring MVC 1강Spring MVC 2강Spring MVC 3강

인터페이스로, Logback같은 라이브러리를 구현체로 사용한다.로그를 출력해주는 어노테이션Thread 정보, 클래스 이름과 같은 부가 정보를 함께 확인할 수 있다.Log Level 설정을 통하여 Error 메세지만 출력하도록 하도록 하기도 하고 로그 메세지를 일자별로

특정 URL로 Request를 보내면 들어온 요청을 Controller 내부의 특정 Method와 Mapping 하기 위해 사용한다.Client로부터 요청이 왔을 때 어떤 Controller가 호출될지 Mapping하는것은 단순히 URL로 Mapping 하는것이 아니
크게 3가지가 있다.Query Parameter, HTTP Form Data, HTTP Request BodyURL의 Query Parameter를 사용해서 데이터를 전달하는 방법http://localhost:8080/request-params ?key1=va

Name: MemoType: Gradle - GroovyVer: 3.3.10JDK: Amazon Corretto 17.0.14Packaging: JarDependencies:Spring WebLombokThymeleaf요구사항 분석각각의 메모는 식별자, 제목, 내용으로

통신 데이터 형태는 JSON이다.각각의 메모는 식별자(id), 제목(title), 내용(contents)으로 구성되어 있다.응답을 각각의 API에 알맞게 해야 한다.메모를 생성할 수 있다. (CREATE)메모 생성 시 제목, 내용이 필요하다.생성된 데이터(식별자, 제목

현재 컨트롤러가 모든 것을 담당하고 있음요청, 응답, 비즈니스 로직, 예외 처리 등 3 Layered Architecture 개념을 적용하여 코드를 리팩토링함Controller , Service , Repository 레이어로 분리하여 책임을 나눔클라이언트의 요청을 받

컨트롤러가 모든 기능을 담당함임시 DB 생성 & 사용메모 객체 생성 & 업데이트메모의 식별자 지정클라이언트 요청 처리 (비즈니스 로직)메모 생성 / 조회 / 수정 / 삭제여전히 컨트롤러가 모든 기능을 담당함임시 DB 생성 & 사용매모 객체 생성 & 업데이트메모의 식별자

JPA에서 데이터를 조회할 때 즉시 로딩 EAGER 과 지연 로딩 LAZY 두 가지 방식이 있다.즉시 로딩데이터를 조회할 때 연관된 데이터도 전부 불러옴지연 로딩데이터를 조회할 때 필요한 시점에 연관된 데이터를 불러옴예시 코드를 살펴보자.지연 로딩은 SQL 쿼리가 두

Product 추상 클래스가 있고,Book 과 Coat 클래스가 Product 클래스를 상속받는 구조가 있다고 쳐봅시다.여기서 상속관계를 매핑할 수 있는 전략은 총 3가지가 있는데,그 방법 중 하나인 구현 클래스 (TABLE_PER_CLASS) 방식은 쓰지 않기 때문에

일상생활에서 가장 쉽게 빗대어 표현할 수 있는 것은 계좌이체돈을 주는 사람 계좌는 금액이 줄어야하고, 돈을 받는 사람은 금액이 늘어야 합니다.이 두 작업 중 하나라도 실패하면? 위 과정 전체가 실패처리되어야 합니다.이처럼 어떤 작업 단위가 정상적으로 끝나지 않았을 때,