전체 글 14

프록시와 AOP의 흐름

1 프록시란2 프록시를 적용한 AOP 3 다양한 프록시의 활용 1. 프록시란 프록시 객체란 대상객체를 대신하여 클라이언트의 호출을 받는객체를 말한다. 대상 객체를 직접 호출하는대신 프록시 객체를 거쳐서 호출하는 방식이다. 원본 객체를 감싸 대신요청을 처리하는 대리인의 개념으로 이해하면 쉽다. (proxy : 대리, 대신) 이런 프록시 객체를 활용하면 기존 객체의 코드를 수정하지 않으면서(폐쇄), 객체의 행동에 간섭하거나 확장핤 수 있게된다.SOLID원칙중 OCP원칙에(개방-폐쇄 원칙. 확장에는 열려있어야 하고, 변경에는 닫혀있어야한다) 굉장히 잘 부합하는 패턴이다. 2. 아래는 스프링에서 프록시객체와 트랜잭션을 활용하여 AOP를 적용하는 코드이다. Spring 실행시 @ComponentScan으로..

카테고리 없음 2025.07.04

Test코드

목차1 테스트코드란 2 Test코드를 작성하는 주요 요소들3 좋은테스트코드를 짜는법4 테스트코드실습 1. 테스트 코드란 테스트코드는 개발자의 생산성 향상을 위해 쓰이며 개발한 코드가 예상대로 동작하는지 확인하기 위해 작성하는 코드이다. 실제 코드에 영향이 가지 않도록 작성하기 때문에 거대한 프로젝트 개발 상황에서, 내 코드의 파급효과에 대한 심리적 부담감을 줄여준다. 1-1 ) TDD(Test Driven DevelopMnet)TDD는 테스트 코드를 먼저 작성하고, 해당 테스트를 성공시키도록 실제 코드를 작성한 후 리팩토링하는 개발 기법이다. 이는 코드의 안정성을 높이고 설계 개선에 도움을 준다. 1-2 ) Given - When - then 패턴테스트 코드를 작성할때 사용되는 패턴이다.Given :..

카테고리 없음 2025.06.12

정적팩토리메서드

목차1. 의문상황2. 알게된 점3. 알게된점을 활용 1. 문제 상황 강의에서는 클라이언트에게 응답을 보낼 때 대부분 return new ResponseEntity(dto, HttpStatus) 방식을 사용했습니다.과제를 하며 요청사항이 늘어나며 반복되는 코드들이 많아졌고 응답을 할때마다 같은 방식으로 길게 응답 인스턴스를 생성하는것에 대한 의문을 느꼇습니다. 이렇게 반복적인 코드들은 전세계의 석박사님들이 그냥 두지는 않았을것이라는 생각에 ResponseEntity 클래스에 대해 조금 더 알아보았습니다. 2. 알게된점 1) 메서드체이닝 ResponseEntity는 return ResponseEntity.ok().build()처럼 메서드를 . 으로 연결하여 사용하는 메서드 체이닝 방식을 지원..

카테고리 없음 2025.05.26

필수값검증

오류상황 : postman put 요청에서 , , "title" : "수정된 제목" 만 400badRequest "title" 일때는 null값으로 채워짐 검증어노테이션 Bean Validation @Not null @Not Blank 해결방법 public class ScheduleUpdateRequestDto { @NotBlank(message = "제목은 필수입니다.") private String title; @NotBlank(message = "본문은 필수입니다.") private String body; }해결방법 2@PutMapping("/{id}") public ResponseEntity updateScheduleBYId( @PathVar..

카테고리 없음 2025.05.12

HTTP요청 정보

Spring 에서 HTTP 요청의 정보를 다루는 네가지 방식1. HttpServletRequest 1997서블릿 인터페이스 기반의 클래스. Http의 모든 정보를 직접 접근해 가져올 수 있는 가장 기본적인방식. HTTP 요청의 헤더, 파라미터, URI 등 모든정보를 가져올수있다. (Filter, Interceptor)무거운 기능이기에 세밀한요청정보(헤더, 세션, 쿠키 등)을 다룰때 쓰고, 간결하고 유지보수가 좋은 어노테이션들을 주로 활용하는게좋다.@RestController@RequestMapping("/api")public class Controller1 { @GetMapping("/request-info") public String getRequestInfo(HttpServletRequ..

카테고리 없음 2025.05.08

스프링 MVC 요청매핑

요청 매핑 (RequestMapping)매핑은 특정 URL 요청을 컨트롤러 메서드와 연결하는 과정이다.즉, 클라이언트가 보낸 요청이 어떤 로직이 처리할지 결정하는 과정. 매핑의 주요개념 URL 매핑 > 특정 URL을 컨트롤러 메서드와 연결HTTP 메서드 매핑 GET, POST, PUT, DELETE 등 요청 방식에 따라 처리방법을 결정경로변수(Path Variables) 매핑 > URL 내부에서 변수를 받아 매핑 @RestController@RequestMapping("/user") // 기본 URL 매핑public class UserController { @GetMapping("/{id}") // GET 요청을 특정 메서드와 매핑 public String getUser(@PathVariab..

카테고리 없음 2025.05.07