본문 바로가기

WEB개발/Spring

(8)
[Spring] Request를 처리하는 주석 (Annotation) @RequestParam  @PathVariable  @RequestBody @ModelAttribute  @RequestHeader @CookieValue  @SessionAttribute  @RequestPart  @RequestParam?name=value 같은 쿼리 파라미터 값을 받음 Content-typeapplication/x-www-form-urlencodedmultipart/form-data(쿼리 파라미터로 전달될 경우 Content-Type 상관없음) @GetMapping("/greet")public String greet(@RequestParam String name) { return "Hello, " + name;}  @RequestBodyJSON, XML 등의 HTTP 요청 본..
Spring Reactive [Mono, Flux, DeferredResult, WebClient, Future] Spring Reactive는 비동기적이고 논블로킹(Non-blocking) 방식으로 데이터를 처리하는 방법을 제공하는 Spring의 기능입니다. 주로 SpringWebFlux라는 모듈을 통해 구현되며, 이는 서버 응답의 지연 시간을 줄이고 높은 동시성을 처리할 수 있도록 돕습니다. 비동기처리 @GetMapping("rest") public Mono> rest(@RequestParam int idx) { String url = "/service?req={req}"; // 첫 번째 요청 보내기 return webClient.get() .uri(url, "rest" + idx) .retrieve() ..
[Spring] Spring Security Spring Security는 Java 기반의 애플리케이션에서 보안을 관리하고 구현하기 위한 프레임워크입니다. 주로 스프링 프레임워크와 함께 사용되며, 웹 애플리케이션과 RESTful API를 포함한 다양한 애플리케이션에서 인증(Authentication)과 권한 부여(Authorization) 기능을 제공합니다. 인증(Authentication): 사용자나 클라이언트가 누구인지 확인하는 과정입니다. 예를 들어, 사용자가 로그인할 때 사용자의 자격 증명(예: 사용자 이름과 비밀번호)을 확인하여 신원을 인증합니다.권한 부여(Authorization): 인증된 사용자가 어떤 자원이나 기능에 접근할 수 있는지 결정하는 과정입니다. 예를 들어, 관리자만 특정 페이지에 접근할 수 있도록 설정할 수 있습니다.보안 ..
하이버네이트(Hibernate) & JPA(Java Persistence API) JPA (Java Persistence API)는 Java에서 관계형 데이터베이스(RDBMS)와의 상호작용을 관리하기 위한 표준 API입니다. JPA는 Java 객체를 데이터베이스의 테이블에 매핑하고, 객체-관계 매핑(ORM)을 통해 객체지향적인 방식으로 데이터베이스 작업을 수행할 수 있도록 도와줍니다. 하이버네이트(Hibernate)는 객체 관계 매핑(ORM)을 지원하는 자바 오픈 소스 프레임워크입니다. 여러 가지 메소드와 기능을 제공합니다.=> Hibernate는 JPA 규격을 구현한 구체적인 ORM 일반적으로 다음과 같은 메소드들을 사용할 수 있습니다. session.save(Object obj)객체를 데이터베이스에 저장합니다.session.update(Object obj)데이터베이스에 있는 객체를..
[SpringBoot] 스프링부트 오류모음 1. thymeleaf에서 template를 못찾는 오류   1. thymeleaf에서 template를 못찾는 오류 에러발생 - thymeleaf 를 사용하면서, Intelli J에서 개발할 때는 이상 없이 html 파일을 찾아가며 화면이 노출되었는데, 리눅스 환경(AWS)에서 jar로 build 하고 외부에서 실행하면 아래와 같은 에러를 발생시키면서 화면에 접근하지 못하는 경우가 생긴다. 해결 - Controller에서 return 하여 html 파일을 불러오는 경로가 문제- 이 에러를 해결하기 위해 경로에 / 를 제거  2.
[SPRING]DI (MAP, SET, LIST), Root Application Context, Servlet Application Context DI (Dependency Injection): DI는 의존관계를 외부에서 결정하는 것이기 때문에, 클래스 변수를 결정하는 방법들이 곧 DI를 구현하는 방법이다. 런타임 시점의 의존관계를 외부에서 주입하여 DI 구현이 완성된다.Burger 레스토랑 주인이 어떤 레시피를 주입하는지 결정하는 예시로 설명하고자 한다. "햄버거 가게 요리사는 햄버거 레시피에 의존한다."  라는 DI를 아래코드로 표현  생성자를 이용class BurgerChef { private BurgerRecipe burgerRecipe; public BurgerChef(BurgerRecipe burgerRecipe) { this.burgerRecipe = burgerRecipe; }}class BurgerRes..
[Spring] MessageSource 다국어 MessageSource는 Spring에서 국제화(i18n)를 지원하기 위한 인터페이스로, 애플리케이션에서 다국어 메시지를 쉽게 관리할 수 있도록 도와줍니다. 보통 messages.properties 같은 파일을 사용하여 여러 언어에 대한 메시지를 정의하고, 필요할 때 해당 메시지를 가져올 수 있습니다. 1. MessageSource 설정 Spring Boot에서는 기본적으로 messages.properties 파일을 읽습니다.다국어 지원을 위해 messages_ko.properties, messages_en.properties 등을 추가할 수 있습니다. #pathspring.messages.basename=i18n/messagesspring.messages.encoding=UTF-8  src/main/..
[Spring] 주석 1(Annotation) @Configuration, @Bean, @EnableAsync, @Async, @ExceptionHandler, @ResponseStatus, @ControllerAdvice, @Controller,  @Service,  @Repository, @RequestMapping,  @GetMapping,  @PostMapping ,  @DateTimeFormat    @Configuration, @Bean @Configuration은 Spring Framework에서 사용되는 어노테이션 중 하나로, 해당 클래스가 Spring 애플리케이션 컨텍스트를 구성하는 데 사용된다는 것을 나타냅니다. @Configuration이 붙은 클래스는 Spring의 Java 기반 구성 방식 중 하나인 Java Config를 사..