메세지화면에서 공통으로 사용되는 다양한 메세지를 한 곳에서 관리하도록 하는 기능을 메세지 기능이라고 합니다.메세지 기능을 사용하지 않을 경우 우리는 모든 메세지를 각각 하드코딩으로 입력해야 합니다. 상품 ID 상품명 가격 수량 아이템 상세를 보여주는 위 HTML 태그들에는 각각 하드코딩으로 상품ID, 상품명, 가격, 수량이 적혀있습니다.또한 해당 명칭들은 나머지 다른 많은 페이지에서 공통으로 쓰이고 있다고 할 대 기획 변경으로 상품명을 제품명으로 바꿔야 한다면 어떻게 할까요? 메세지 기능을 사용하지 않았다면 모든 소스파일에서 하나하나 상품명이라 적혀있는 곳을 찾아 제품명이라 바꿔주어야 합니다. 하지만 메세지 기능을 사용했다면 다음과 같이 메세지를 변수화 ..
Lombok이란?Lombok은 Java에서 반복적으로 작성해야 하는 보일러플레이트(boilerplate) 코드를 자동으로 생성해주는 라이브러리입니다. 이를 통해 getter/setter, toString(), equals(), hashCode(), 생성자 등의 코드를 직접 작성할 필요 없이 간결한 코드로 유지할 수 있습니다.Lombok을 사용하면 코드의 가독성이 향상되고 유지보수가 쉬워지며 컴파일 타임에 실제 메서드를 생성해주므로 성능에도 영향을 미치지 않습니다.Lombok 설정 방법Lombok 의존성 추가Lombok을 사용하려면 pom.xml(Maven) 또는 build.gradle(Gradle)에 Lombok을 추가해야 합니다.Maven 사용 시 (pom.xml) org.proje..
📌@Valid, @Validated우리가 웹사이트에서 회원가입을 할 때, 이런 걸 검사해야 합니다.✔ 이름을 입력했는지?✔ 나이가 너무 어리진 않은지?✔ 이메일 형식이 맞는지? 이런 검사를 백엔드(Spring) 에서 자동으로 해주는 게 @Valid랑 @Validated입니다.@Valid 사용법 (기본 검사)예를 들어 회원가입할 때, 이름이 비어있으면 안 되고, 나이는 18살 이상이어야 한다는 조건을 붙인다고 생각합시다.UserDTO (데이터 저장하는 클래스)import jakarta.validation.constraints.Min;import jakarta.validation.constraints.NotBlank;import jakarta.validation.constraints.NotNull;publ..
설명Spring Boot 에서 @Scheduled 어노테이션을 사용하면 일정한 시간 간격으로, 혹은 특정 시간에 코드가 실행되도록 설정할 수 있습니다.주기적으로 실행해야 하는 작업이 있을 대 적용해 쉽게 사용할 수 있습니다.사용법@Scheduled 어노테이션을 사용하기 위해 다음과 같이 Application Class 에서 @EnableScheduling 을 추가해야 합니다.@EnableScheduling@SpringBootApplicationpublic class SchedulerApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); ..
Spring Framework는 Java 애플리케이션 개발에서 핵심적인 역할을 하며, 특히 웹 애플리케이션에서는 사용자의 요청을 처리하고 적절한 응답을 반환하기 위해 다양한 애노테이션을 제공합니다. 그중 @Controller와 @RestController는 자주 혼동되는 두 가지 애노테이션입니다. @Controller@Controller는 Spring MVC에서 컨트롤러 역할을 하는 클래스에 사용되는 애노테이션입니다. 주로 뷰(View)를 반환하는 데 사용되며, HTML 페이지와 같은 템플릿 엔진과 함께 사용됩니다. @Controller 는 반환 값이 뷰 이름으로 해석됩니다. Spring 은 해당 이름을 기반으로 HTML, JSP 와 같은 뷰 파일을 렌더링 해줍니다. 또한 일반적으로 HTTP 응답 자체를..
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 사용 → 소멸 전 콜백 → 스프링 종료빈 생명주기 콜백의 필요성먼저 콜백에 대해 설명하면, 주로 콜백함수를 부를 때 사용되는 용어이며 콜백함수를 등록하면 특정 이벤트가 발생했을 때 해당 메소드가 호출됩니다. 즉, 조건에 따라 실행될 수..