본문 바로가기

전체 글

(93)
6. Spring Boot Annotations 자주 사용하다보면 몸에 익을 것이다. @Controller Response는 기본적으로 Html 구조 @RestController ObjectMapper를 통해 Json구조로 응답한다 @RequestMapping 원하는 http 메소드를 지정해야하는데 지정하지 않으면 모든 메소드가 동작한다. 이를 세분화 한게 @Get, post put delete 가 있는 것 @Component class 단위 @Bean 메서드 단위 , 클래스 단위 x @Autowired DI를 위한 것, 기본적으로 생성자로 된 메서드는 스프링을 알아서 주입해준다. 하지만 명시적으로 받고 싶을 떄 사용. @After 예외가 발생해도 실행 @Around 이전 이후 모두 포함 하는 것 @AfterReturning 메서드 호출이 정상일 떄 ..
5. ObjectMapper 전에 RequestBody에 들어있는 Json 데이터가 변환하는지 알아야하고 어떠한 형태로 바뀌는 지 확인할 수 있었다. ObjectMapper가 SpringFreamwork 에서 활용되는 라이브러리지만 꼭 사용되는 것은 아니다. Json을 관련 된 라이브러리 구글 Gson, ObjectMapper 등이 있다. 스프링은 ObjectMapper를 많이 사용한다. *https://mvnrepository.com/ Maven Repository: Search/Browse/Explore Dropwizard Jetty Support Last Release on Jun 30, 2022 mvnrepository.com 스프링 부트의 Repository를 찾는 곳. 여기서 라이브러리를 찾을 수 있다. 보통은 새로운 버..
4. AOP 코딩 실습-2 AOP+ Custom annotation을 만들어서 특정 메서드의 실행 시간 측정하기. 컨트롤러에서는 서비스에 대한 로직만 남겨두고 나머지 반복되는 로직은 AOP에서 작성하는 것이 좋다. 또한 사용할 어노테이션을 만들고 사용하는 것도 가능하다. 사용할 어노테이션 : @Around package com.example.aop.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target({ElementType.TYPE, ElementType.METHO..
3. AOP 코드 실습 Aspect Oriented Programming 관점지향 프로그래밍 스프링 어플리케이션은 대부분 특별한 경우를 제외 하고는 MVC 웹 어플리케이션에서는 Web Layer, Business Layer, Data Layer로 정의. Web Layer: REST API를 제공하며, Client 중심의 로직 적용 Business Layer: 내부 정책에 따른 logic을 개발하며, 주로 해당 부분을 개발 Data Layer: 데이터 베이스 및 외부와의 연동을 처리 AOP는 메소드들, 특정 구역에 반복되는 로직들을 한 곳에서 몰아 코딩 할 수 있게 해준다. => 스프링 어플리케이션의 특징. 코드 실습 aop 실습을 위해 build.gradle에 의존성 추가 implementation 'org.springfram..
2. IOC 코드 실습 예전 했던 코드로 IOC 코드 실습을 진행했다. @Component: class에 붙이면 Spring bean 취급을 한다. @Component import org.springframework.stereotype.Component; import java.util.Base64; @Component public class Base64Encoder implements IEncoder{ public String encode(String message){ return Base64.getEncoder().encodeToString(message.getBytes()); } } @Component public class UrlEncoder implements IEncoder { public String encode(S..
1. IoC, DI/ DI 관련 코드 실습 IoC란? Inversion of Control 스프링에서는 일반적인 Java 객체를 new로 생성하여 개발자가 관리 하는 것이 아닌 Spring Container에 모두 맡긴다. 즉 개발자에서 프레임워크로 제어의 객체 관리의 권한이 넘어 갔음으로 "제어의 역전" 이라고 합니다. DI란? Dipendency Injection 객체를 사용하기 위해 주입을 받는다라는 사전적인 의미. 외부로부터 사용할 객체를 주입 받는다. = DI 주입의 주체는 Spring Container 장점 1. 의존성으로 부터 격리시켜 코드 테스트에 용이하다. 2. DI를 통하여, 불가능한 상황을 Mock와 같은 기술을 통하여, 안정적으로 테스트 가능하다. 3. 코드를 확장하거나 변경 할 때 영향을 최소화 한다.(추상화) 4. 순환 ..
8. Object Mapper Object mapper는 Text Json을 Object로 바꿔주고 Object를 Json으로 바꿔준다. 컨트롤러에서 Json 요청이 들어오면 object로 바꿔주고 response object를 Json(text)로 변환해왔다. 이 것을 직접 객체로 생성해서 활용할 수 있는 방법을 알아보았다. package com.example.objectmapper; public class User { private String name; private int age; public User(String name, int age){ this.name = name; this.age = age; } @Override public String toString() { return "User{" + "name='" + nam..
7. Response Response를 내리는 다양한 방법. import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("/api") public class ApiController { @GetMapping("/text") public String text(@RequestParam String ..