Spring Boot에서 REST 컨트롤러 활용하기: @RestController 어노테이션 이해하기
·
Spring/Spring 기초 지식
@RestController는 주로 API를 생성할때 작성되는데 이번 시간에 한번 알아보도록 하자 1. Spring Boot의 REST Controller 1-1. Spring Boot의 REST Controller 이해하기 웹 서비스를 구축할 때 REST(Representational State Transfer) 아키텍처 스타일을 자주 접하게 된다. REST는 웹 서비스의 핵심으로, 자원(Resource)을 중심으로 설계되며, 이 자원에 대해 CRUD(Create, Read, Update, Delete) 연산을 수행한다. Spring Boot에서는 이러한 RESTful 웹 서비스를 구현하기 위해 @RestController 어노테이션을 활용한다. 이 어노테이션은 클래스 레벨에서 사용되며, 해당 클래스의..
Spring Boot 심화: 커스텀 어노테이션 만들기 (2편)
·
Spring/Spring 기초 지식
커스텀한 어노테이션(Custom Annotation)이란 무엇일까? 그리고 우리가 주로 사용하는 어노테이션을 분석해보자 1. 커스텀 어노테이션을 만드는 방법 Java에서는 사용자 정의 어노테이션을 만들 수 있다. 이를 위해선 @interface 키워드를 사용하면 된다. // @interface를 통해 어노테이션을 정의한다. public @interface MyCustomAnnotation { String value() default ""; int number() default 0; } 위의 예제 코드에서, MyCustomAnnotation은 어노테이션의 이름이다. value와 number는 이 어노테이션의 요소(또는 매개변수)이며, 기본값으로 각각 빈 문자열과 0을 가지고 있다. 어노테이션 요소의 유형은..
Spring Boot 기초: 어노테이션 활용하기 (1편)
·
Spring/Spring 기초 지식
Spring에서 자주 사용되는 @로 작성하는 어노테이션이 뭔지 알아보자 1. 어노테이션 - Annotation 어노테이션은 주로 프로그래밍 언어에서 특정 기능이나 동작을 정의하거나 설명하는데 사용되는 메타데이터를 말한다. 주로 자바, 파이썬 등에서 많이 볼 수 있다. 어노테이션의 출현 배경은 주로 두 가지 이유에서 비롯된다. 코드의 가독성 향상: 어노테이션은 코드의 특정 부분이 어떤 목적을 가지고, 어떻게 동작하는지를 명확하게 표현할 수 있게 한다. 따라서 개발자는 코드를 읽을 때 어노테이션을 통해 빠르게 이해할 수 있다. 코드의 간결성: 특정 패턴이나 템플릿 코드를 반복해서 작성하는 것은 번거로울 뿐만 아니라 실수를 유발할 수 있다. 어노테이션을 통해 이러한 반복적인 코드를 줄이고, 개발자가 실제 로직..
[Spring] 다형성, 개방-폐쇄 원칙(OCP), 인터페이스 활용
·
Spring/Spring 기초 지식
1. 다형성이란 무엇인가객체지향 프로그래밍에서 다형성은 매우 중요한 개념입니다. 이 개념은 단순하게 말해, 하나의 인터페이스나 클래스가 다양한 형태로 동작할 수 있다는 것을 의미합니다. 다형성을 잘 활용한다면 코드의 유연성과 재사용성을 높여줍니다. 다형성의 실제 예시예를 들어, 'Animal'이라는 인터페이스가 있고 이 인터페이스에는 'sound'라는 메서드가 정의되어 있다고 생각해 봅시다. 이 'sound' 메서드는 모든 동물이 내는 소리를 추상화한 것입니다.public interface Animal { void sound();}public class Dog implements Animal { @Override public void sound() { System.out.pr..
@ControllerAdvice, @RestControllerAdvice - 중앙집중 예외처리
·
Spring/Spring 기초 지식
@ControllerAdvice를 사용한 중앙집중 예외처리 0. 패키지 구조 1. ErrorCode를 정의한다. Enum 타입으로 ErrorCode 클래스를 정의했다. 이렇게 관리하면 커스텀한 에러처리를 할수가 있다. 우선 나는 status, code, message를 필드로 선언했고 이 모든것들을 생성자로 받도록 설정했다. status에는 우리가 자주보는 400번대 500에러가 있고 code에는 내가 직접 지정한 커스텀 에러코드를 넣어줬다. 마지막으로 message에는 알아보기 쉽게 한글에러 메시지를 넣어줬다. import lombok.AllArgsConstructor; import lombok.Getter; import org.springframework.http.HttpStatus; /** * 커스..
스프링은 Singleton 패턴을 어떻게 활용할까?
·
Spring/Spring 기초 지식
Singleton 패턴은 객체지향 프로그래밍에서 자주 사용되는 디자인 패턴으로, 스프링 프레임워크의 핵심적인 동작 원리 중 하나입니다. 이번 글에서는 Singleton 패턴의 개념과 스프링에서 이를 어떻게 활용하는지에 대해 자세히 알아보겠습니다.  Singleton 패턴이란?Singleton 패턴은 클래스의 인스턴스를 단 하나만 생성하여, 애플리케이션 전체에서 이를 공유하는 디자인 패턴입니다. 이 방식은 메모리 효율성과 데이터 일관성을 보장하며, 전역적으로 접근 가능한 리소스를 관리할 때 유용합니다. Singleton 패턴의 주요 특징유일한 인스턴스: 동일한 클래스의 인스턴스는 애플리케이션에서 한 번만 생성됩니다.전역 접근 가능: 애플리케이션 어디에서든 동일한 인스턴스에 접근할 수 있습니다.메모리 절약:..
스프링의 제어의 역전 (IoC, Inversion of Control)
·
Spring/Spring 기초 지식
안녕하세요 개발자 stark입니다!우리가 스프링 프레임워크를 공부하다 보면 반드시 등장하는 개념 중 하나가 바로 "제어의 역전" (Inversion of Control, IoC)입니다. 이는 스프링의 핵심 원리 중 하나로, 현대적인 소프트웨어 개발에서 매우 중요한 원칙입니다. 이번 글에서는 IoC가 무엇인지, 왜 중요한지, 그리고 스프링에서 어떻게 활용되는지를 쉽게 설명하겠습니다.  제어의 역전 (IoC)이란?기존의 프로그래밍 방식일반적으로 프로그래밍에서는 코드가 실행되는 흐름을 개발자가 직접 제어합니다. 예를 들어, 메인 함수에서 객체를 생성하고, 필요한 데이터를 전달하며, 메서드를 호출하여 작업을 수행합니다. 이러한 방식에는 다음과 같은 특징이 있습니다.사용자 중심의 흐름 제어: 코드의 흐름과 객체 ..
[Spring] 의존성 주입(DI - Dependency Injection)과 결합도 낮추기
·
Spring/Spring 기초 지식
안녕하세요. 개발자 Stark입니다.이번 포스팅은 의존성 주입에 대한 설명입니다. 기존에 작성했던 내용을 개선하여 리팩터링 하였습니다.특히 기존에는 없던 설명들을 조금 부각했으며 이해하기 쉽도록 구성해 보았습니다. 중간중간 객체 간의 결합에 대한 설명 같은 것들이 있으니 많은 도움이 되었으면 좋겠습니다.  의존성과 의존성 주입이란?의존성이란?객체 지향 프로그래밍에서 의존성은 클래스나 모듈 간의 관계를 의미합니다. 한 클래스가 다른 클래스에 의존한다는 것은 해당 클래스가 다른 클래스의 인스턴스나 메서드를 사용한다는 뜻입니다. 의존성은 클래스 간의 결합도를 나타내며, 결합도가 높으면 변경에 취약한 코드가 될 가능성이 높아집니다. 의존성 주입이란?의존성 주입(Dependency Injection)은 객체가 필..