
DeleteApiControllerpackage com.tenco.demo_v1.controller;import org.springframework.http.ResponseEntity;import org.springframework.web.bind.annotation.DeleteMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;@RestController // IoC 대상public class DeleteApiContr..

PUT 방식은 HTTP 메서드 중 하나로, 리소스를 생성하거나 업데이트할 때 사용됩니다.주로 RESTful API에서 특정 리소스를 완전히 대체하거나 수정할 때 사용됩니다. 주요 특징전체 업데이트:PUT 요청은 클라이언트가 서버에 특정 리소스의 전체 데이터를 보내 해당 리소스를 완전히 대체하거나 새로 생성하는 요청입니다. 즉, 리소스의 일부가 아닌 전체 데이터를 전송하여 갱신합니다.멱등성:PUT 요청은 멱등성을 가집니다. 즉, 동일한 요청을 여러 번 보내도 결과가 동일합니다. 예를 들어, 동일한 데이터를 PUT 요청으로 여러 번 보내도 리소스 상태는 변하지 않습니다.리소스 식별:PUT 요청은 URL을 통해 업데이트할 리소스를 명확히 식별합니다. 예를 들어, /users/1 URL로 PUT 요청을 보내면..

스프링부트 요청과 응답 흐름클라이언트 측에서 /user로 GET 요청을 합니다. 이 요청은 톰캣을 거쳐 스프링 부트 애플리케이션으로 전달됩니다.이때, 스프링 부트의 디스패처 서블릿(DispatcherServlet)이 요청을 받습니다. 디스패처 서블릿은 요청된 URL을 분석하고, 이를 처리할 수 있는 컨트롤러와 해당 메서드를 찾습니다.컨트롤러에서 비즈니스 로직이 필요한 경우, 비즈니스 계층(Service) 및 퍼시스턴스 계층(Repository)을 통해 데이터를 처리합니다.응답 과정에서 MIME 타입(예: JSON, HTML, XML 등)에 따라 다음과 같이 응답 방식이 달라집니다:JSON, XML 등 데이터 포맷으로 응답해야 하는 경우, 메시지 컨버터가 작동합니다. 예를 들어, @ResponseBody가..

1. MVC 패턴 (Model-View-Controller)MVC 패턴은 애플리케이션의 기능을 세 가지 역할로 분리하는 구조입니다:Model (모델): 데이터와 비즈니스 로직을 관리합니다.View (뷰): 사용자에게 데이터를 시각적으로 보여줍니다.Controller (컨트롤러): 사용자의 요청을 받아 모델을 통해 처리하고, 결과를 뷰에 전달합니다.이 패턴은 애플리케이션의 UI 로직과 데이터 처리 로직을 분리하여 코드의 가독성을 높이고, 유지보수를 쉽게 합니다. 2. 레이어드 아키텍처 (계층 구조)레이어드 아키텍처는 애플리케이션을 세 가지 주요 계층으로 나누어 각각의 책임을 명확히 하는 구조를 말합니다.프레젠테이션 계층 (Presentation Layer):역할: 사용자와 상호작용하는 계층으로, HTTP ..

1. 스프링 프레임워크(Spring Framework)일반적인 정의: 스프링 프레임워크는 자바 플랫폼을 위한 강력한 애플리케이션 프레임워크입니다. 객체 지향 프로그래밍의 원칙에 기반하여 애플리케이션을 구성하고 관리하는 방식으로, 주로 엔터프라이즈급 애플리케이션을 구축할 때 사용됩니다.설정 방식: 스프링은 초기 설정이 복잡할 수 있습니다. XML 설정 파일이나 자바 기반의 설정 클래스를 통해 다양한 기능을 직접 구성해야 합니다.기능: 스프링은 의존성 주입(DI), AOP(관점 지향 프로그래밍), 트랜잭션 관리, 데이터 액세스, 웹 애플리케이션 개발, 보안 등 광범위한 기능을 제공합니다. 그러나 이 모든 기능을 사용하기 위해서는 상당한 양의 설정 작업이 필요합니다. 2. 스프링 부트(Spring Boot)일..
사전 기반 지식인터페이스와 다형성: 인터페이스를 사용하여 서로 다른 구현체를 동일하게 처리하는 개념을 이해해야 합니다.메서드 오버라이딩: 상위 클래스나 인터페이스에서 정의된 메서드를 하위 클래스에서 재정의하여 사용하는 방법을 알고 있어야 합니다. 전략 패턴 (Strategy Pattern)동작 방식을 캡슐화하여, 동적으로 전략을 변경할 수 있도록 하는 디자인 패턴 특정 기능을 수행할 여러 방법이 있을 때,그 방법들을 전략(클래스)으로 정의하고 필요에 따라 적절한 전략을 선택하여 사용할 수 있습니다. package strategy;import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.net.URLEncoder;i..
사전 기반 지식객체지향 프로그래밍(OOP): 클래스와 객체의 개념, 상속과 인터페이스에 대한 기본적인 이해.다형성: 상위 클래스나 인터페이스를 통해 다양한 하위 클래스를 처리하는 능력.호환성 문제: 서로 다른 인터페이스를 가진 클래스 간의 호환성 문제 해결을 위해 어댑터 패턴을 사용하는 상황을 이해해야 한다. 어댑터 패턴(Adapter Pattern)호환되지 않는 인터페이스를 가진 클래스들을 함께 동작할 수 있도록 변환해주는 디자인 패턴 즉, 기존 클래스의 인터페이스가 요구사항과 맞지 않을 때,새로운 인터페이스를 기존 클래스에 맞추어 주는 역할을 합니다. 이를 통해 호환성 문제를 해결하고, 기존 코드를 수정하지 않고도 새로운 코드와 결합할 수 있습니다. package adapter;public class..
사전 기반 지식객체 지향 프로그래밍: 클래스와 객체 생성에 대한 기본 개념.추상화: 구현과 인터페이스를 분리하는 개념.다형성: 상위 클래스나 인터페이스를 통해 다양한 하위 클래스를 처리하는 능력 팩토리 패턴이란(Factory Pattern)객체 생성 로직을 감추고, 클라이언트(사용자)가 어떤 객체를 생성할지 결정만 하면내부적으로 그 객체를 생성하는 패턴 예를 들어, 자판기는 다양한 음료를 제공하는데, 사용자가 음료를 선택하면 자판기가 내부에서 해당 음료를 준비해줍니다. 사용자는 음료가 준비되는 과정을 신경 쓸 필요 없이, 자판기에 요청만 하면 음료가 나오는 형태 입니다.이것이 팩토리 패턴의 핵심입니다. 팩토리 패턴을 사용하면 객체 생성 과정이 클라이언트 코드로부터 분리되어,클라이언트는 필요한 객체만 요..
빌더 패턴복잡한 객체를 단계적으로 생성할 수 있도록 도와주는 디자인 패턴 특히 많은 옵션이나 매개변수를 가진 객체를 만들 때 유용합니다. 일반적인 생성자는 매개변수가 많아지면 복잡해지기 때문에,빌더 패턴은 각 단계에서 선택적인 매개변수를 추가할 수 있게 해줍니다. 햄버거 예제와 빌더 패턴햄버거를 주문할 때, 특정 업체에서는 다양한 재료 중에서 자신만의 햄버거를 만들 수 있습니다.먼저 빵과 패티 같은 필수 재료를 선택하고, 그다음으로 치즈, 양상추, 토마토 같은 선택적인 재료를 추가합니다.이 과정은 빌더 패턴과 매우 유사합니다. 필수 요소와 선택 요소필수 요소: 햄버거를 만들기 위해선 반드시 있어야 하는 재료가 있습니다. 예를 들어, 빵과 패티는 꼭 필요한 요소입니다. 빌더 패턴에서는 객체를 만들기 위한..
사전기반 지식클래스와 객체: 자바에서 클래스는 객체를 생성하기 위한 틀입니다. 일반적으로 하나의 클래스에서 여러 객체를 생성할 수 있지만, 싱글톤 패턴은 단 하나의 객체만을 보장합니다.생성자(Constructor): 객체가 생성될 때 호출되는 메서드로, 싱글톤 패턴에서는 생성자를 외부에서 호출하지 못하도록 제한합니다.정적 변수와 메서드: 싱글톤 패턴에서 주로 사용되는 정적(static) 멤버에 대한 이해가 필요합니다. 싱글톤 패턴 특정 클래스의 인스턴스를 하나만 생성하고, 이를 전역적으로 접근할 수 있도록 하는 디자인 패턴 주요 목적은 시스템 전체에서 공통된 리소스를 공유하거나, 객체 생성을 제한하여 메모리 낭비를 줄이기 위함입니다. package singleton;// 1. 정적 변수를 선언한다. //..