반응형

IT 정보/Spring 29

[Spring] REST API가 무엇인가?

REST 아키텍처 스타일을 기반으로, HTTP 프로토콜을 이용하여 서버와 클라이언트 간에 데이터를 주고받기 위해 설계된 인터페이스 구성 요소자원(Resource) : 서버에 존재하는 데이터를 의미하며, 각각 고유한 URL로 식별된다.행위(HTTP Method) : 클라이언트가 자원에 대해 수행하려는 동작을 정의GET, POST, PUT, DELETE표현(Representation) : 자원의 상태를 전달하는 형태로, 주로 JSON, XML 등의 포맷으로 표현 REST API의 기본 원칙Uniform Interface (일관된 인터페이스)URL, HTTP 메소드 사용 규칙이 일관되어야 함Stateless (무상태성)서버는 각 요청 간에 클라이언트 상태를 저장하지 않습니다. (모두 요청은 독립적)Client..

IT 정보/Spring 2025.04.29

[Spring] 스프링에서 주기적 일정(Scheduler) 설정하고 실행하는 방법

Spring Scheduler로 정기 작업 자동화하기 Scheduler란?스케줄러는 일정한 시간 간격이나 특정 시간에 맞추어 자동으로 실행되는 작업(태스크)을 의미합니다. Java 기반의 Spring 프레임워크에서는 @Scheduled 어노테이션을 사용하여 스케줄러를 간편하게 구현할 수 있습니다. 구성 방법@EnableScheduling@Component@Scheduled(cron = "0 0 1 * * *") // 매일 오전 1시에 실행* 위 3가지를 설정하면 스케줄링이 실행된다. 아래 스냅샷을 통해 예시를 보세요 1. 스케쥴링 활성화// Scheduling 기능을 사용하기 위해서는 애플리케이션 진입점 또는// 설정 클래스에 @EnableScheduling을 선언해야 합니다.@SpringBootApp..

IT 정보/Spring 2025.04.16

[Spring] Spring Bean의 조건부 활성화/비활성화 방법 5가지

왜? 조건부로 활성화/비활성화가 필요한가?외부 라이브러리는 가져다 사용하는 경우 특정 조건에만 적용해야 할 때가 있다. 예를 들면 운영에서만 사용되는 라이브러리의 Bean이 있는 경우에 내부 개발환경에서 문제가 발생할 수 있기 때문이다. 이와 같이 여러 상황에서 Bean 등록을 통제하고 싶다면 아래와 같은 조건부 활성화/비활성화 방법을 활용하여 내가 사용할 수 있는 방법을 찾아 적용하면 된다. Spring Bean의 조건부 활성화/비활성화 방법 5가지@Profile : 프로파일 기반 조건@Conditinal : 조건부 설정의 기본@ConditionalOnProperty: 특정 프로퍼티 값 조건@ConditionalOnMissingBean, @ConditionalOnBean: Bean 존재 유무 기반@C..

IT 정보/Spring 2025.04.16

[Spring] 스프링 AOP (Spring AOP)란 무엇인가? 프록시 기반 AOP, @AOP

스프링 AOP (Aspect Oriented Programming) : 관점 지향 프로그래밍AOP는 관점 지향 프로그래밍의 약자이다.객체 지향 프로그래밍 (OOP)이 '클래스 단위'로 관심사를 분리했다면, (AOP)는 '관심사 단위'로 분리하여 횡단 관심사 (Cross-Cutting Concern)를 모듈화할 수 있게 해줍니다. 횡단 괌심사(Cross-Cutting Concern)란? 애플리케이션의 여러 모듈에 공통적으로 적용되어야 하는 기능.예: 로깅, 보안, 트랜잭션, 성능 모니터링, 예외 처리 등.이들을 비지니스 로직에서 분리하지 않으면, 코드 중복과 유지보수 어려움이 발생. 용어 정리Aspect(관점) : 공통 기능(횡단 관심사)을 모듈화 한 것. ex) 트랜잭션 처리 모듈Join Point :..

IT 정보/Spring 2025.04.15

[Spring] @RestControllerAdvice & @ControllerAdvice

@ControllerAdvice와 @RestControllerAdvice는 모두 Spring에서 예외를 처리하기 위해 사용되는 어노테이션주로 반환하는 데이터 형식과 관련된 차이가 있습니다. 이를 통해 예외 처리 방식에 조금 다른 동작을 할 수 있습니다.@ControllerAdvice용도: @ControllerAdvice는 일반적으로 @Controller에서 발생하는 예외를 처리하는 데 사용됩니다.특징:@ControllerAdvice는 뷰 템플릿 (예: JSP, Thymeleaf)을 사용하는 웹 애플리케이션에서 주로 사용됩니다.@ControllerAdvice는 예외 처리 메서드에서 반환되는 객체가 뷰 이름이나 ModelAndView일 수 있다는 점을 고려합니다.보통 @ResponseBody가 명시되지 않은..

IT 정보/Spring 2024.12.12

[Spring] API 문서화

API 문서클라이언트가 REST API 백엔드 애플리케이션에 요청을 전송하기 위해 필요한 정보 문서화 ( 요청 URI, Parameter 등등 )API 사용을 위한 정보가 담긴 문서를 API 문서 or API 스펙이라 불림 Swagger장점애너테이션 기반의 API 문서화 방식Postman처럼 API툴로써 기능을 사용 가능 (대표적)단점애너테이션이 기존 코드에 더해지면서 가독성 및 유지보수성이 떨어짐API문서와 API코드 간의 정보 불일치 문제 발생할 수 있음Spring Rest Docs장점테스트 코드 기반의 API 문서화 방식애플리케이션 기능 구현 관련코드에 API문서 생성을 위한 코딩이 필요 없음애플리케이션의 API 문서정보와 API의 문서 스펙이 불일치 하면 failed되면서 API문서가 생성 안됨 ..

IT 정보/Spring 2022.07.18

[Spring] 스프링 MVC 정리 (1)

서블릿 @WebServlet ( name = "helloServlet" , urlPattern = "/hello" ) HttpServletRequest : 요청정보 사용 HttpServletResponse : 응답 정보 사용 WAS는 Request, Response 객체를 만들어 서블릿 객체를 호출 Request 객체에서 HTTP 요청 정보를 꺼내서 사용 Response 객체에 HTTP 응답 정보를 입력 WAS는 Response 객체에 담긴 내용으로 HTTP 응답 정보 생성 서블릿 컨테이너 서블릿은 지원하는 WAS를 서블릿 컨테이너라고 함 서블릿 컨테이너는 객체를 생성, 초기화, 호출, 종료하는 생명주기를 관리 서블릿 객체는 싱글톤으로 관리 최초 로딩시점에 서블릿 객체 생성하고 재활용 모든 고객의 요청이..

IT 정보/Spring 2022.07.16

[스프링 부트와 JPA 활용] 2편

[핵심 내용] Entity를 외부에 노출 하지 말 것 (DTO 사용할 것) ⭐⭐⭐⭐⭐ 의존관계는 반드시 한방향으로 흐르게 만들 것 ( order -> service -> repository ) ⭐⭐⭐⭐ Command 와 Quary를 분리 Transaction이 연결되어 있으면, 영속성 컨텍스트에서 조회, 수정 ~ DTO 생성 이유는 Entity와 관계를 끊어주기 위함 ( One To Many 주의 ) 회원 등록/ 수정/ 조회 API API 개발에서는 핸들러 메서드 생성시 필요에 맞게 DTO 생성해서 사용 리턴값, 입력값의 클래스(DTO)를 새로 생성해서 사용 필요한 필드값만 사용할 수 있고, 응답값의 key값도 변경 가능 조회시 응답 객체를 조회할 멤버 List를 한번 감싸서 다른 필드값을 넣어줄 수 있..

IT 정보/Spring 2022.07.14
반응형