Spring Boot 프로젝트에서 ResponseEntity 는 HTTP 응답을 효과적으로 제어하고 다양한 측면에서 사용자에게 정확한 응답을 제공하는 데 사용됩니다.ResponseEntityResponseEntity 는 HTTP 응답을 나타내는 Spring Framework 의 클래스입니다.이 클래스는 요청에 대한 응답의 HTTP Header , Status Code 를 포함하여 클라이언트에게 전달할 수 있는 다양한 기능을 제공합니다.사용하는 이유ResponseEntity 를 사용하면 응답에 대한 HTTP 상태 코드를 명시적으로 지정할 수 있습니다.이는 클라이언트에게 정확한 상태 정보를 제공하는 데 도움이 됩니다.또한 응답 본문과 헤더를 세밀하게 제어할 수 있습니다.ResponseEntity 에서 자주 ..
설명API 서버를 만들 때 일반적으로 클라이언트한테 JSON 형식으로 데이터를 넘겨주어야 합니다.하지만 아래처럼 JSON 데이터를 일일이 조립하면 생산성도 떨어질뿐더러 오류가 날 확률이 높습니다.String json = "{\"name\" : \"" + name + "\"}";return json; Spring에서는 @ResponseBody Annotation을 통해 객체를 직접 JSON으로 변환시켜 줄 수 있습니다.JSON 형태로 Response 를 보내는 방법에 대하여 설명하겠습니다.JSON 형태로 반환하기우선 JSON 으로 변환시킬 객체를 만들어야 합니다.여기서는 Lombok 라이브러리를 사용하였기 때문에 감안하셔서 보시는 것을 권장드립니다.package hello.core.common;import..
스프링 IoC 컨테이너스프링의 IoC 컨테이너는 Bean 객체들을 책임지고 의존성을 관리합니다.객체들을 관리한다는 것은 객체의 생성부터 소멸까지의 생명주기( LifeCycle ) 관리를 개발자가 아닌 컨테이너가 대신해준다는 말입니다. 그로 인해 개발자는 객체 관리의 주체가 프레임워크( Container ) 가 되기 때문에 로직에 집중할 수 있는 장점이 있습니다.스프링 빈의 LifeCycle스프링 컨테이너 생성 → Bean 생성 -> 의존성 주입 → 초기화 콜백 → Bean 사용 → 소멸 전 콜백 → 스프링 종료빈 생명주기 콜백의 필요성먼저 콜백에 대해 설명하면, 주로 콜백함수를 부를 때 사용되는 용어이며 콜백함수를 등록하면 특정 이벤트가 발생했을 때 해당 메소드가 호출됩니다. 즉, 조건에 따라 실행될 수..
빈이 2개 이상일 때 생기는 오류스프링에서는 같은 타입의 빈이 여러 개일 때, 어떤 빈을 사용할지 모호성이 발생합니다.예를 들어 @Autowired 는 타입으로 빈을 조회하기 때문에 interface 가 discountPolicy 인 구현체가 2개 이상이라면 오류가 발생합니다. 당연하게도 discountPolicy 로 만든 구현체가 하나여야 하는데 2개 이상이라서 어떤 구현체를 불러와야 할지 모르기 때문입니다.@Componentpublic class FixDiscountPolicy implements DiscountPolicy {}@Componentpublic class RateDiscountPolicy implements DiscountPolicy {}@Autowiredprivate final Disc..
의존성 주입 ( DI )의존성 주입(Dependency Injection, DI)은 객체 지향 프로그래밍에서 객체 간의 관계를 설정하는 방식 중 하나입니다.객체가 필요한 의존성( 다른 객체 )을 직접 생성하지 않고 외부에서 주입받는 방식을 말합니다.이를 통해 객체 간의 결합도를 낮추고, 유연한 코드와 테스트 가능성을 높일 수 있습니다. 만약 우리가 자동차를 만들고 있다고 했을 때, 자동차는 엔진, 타이어, 핸들 등 여러 부품이 필요합니다. 만약 자동차가 엔진을 스스로 만들어야 한다면, 자동차 클래스 내부에서 엔진을 직접 생성해야 합니다. 이 경우, 자동차와 엔진이 강하게 결합되어 있어서 자동차를 테스트하거나 엔진을 교체하는 것이 매우 어렵습니다. 하지만 의존성 주입을 사용하면, 자동차가 엔진을 외부에서 ..
간단한 설명Tomcat 은 웹 서버 소프트웨어 중 하나로, Java 로 만들어진 웹 애플리케이션을 실행할 수 있게 도와주는 프로그램입니다.쉽게 말해, Java 프로그램이 인터넷에서 동작할 수 있게 만들어주는 도구라고 생각하면 됩니다. 들어가기에 앞서톰캣을 설명하기 전에 혹시나 WAS , 웹 서버를 모르는 분들을 위해 설명하겠습니다.웹 서버란웹 서버는 우리가 인터넷 브라우저(크롬, 엣지등) 를 사용해 웹사이트를 볼 때, 그 웹사이트의 데이터를 보내주는 역할을 합니다. 만약 네이버에 접속하면, 네이버의 웹 서버가 네이버 화면을 여러분에게 보내줍니다.WAS(Web Application Service)WAS 는 웹 서버와 웹 컨테이너의 결합으로, 다양한 기능을 컨테이너에 구현하여 다양한 역할을 수행할 수 있는 ..