Spring-Java/Spring17 @Valid, @Validated 세 줄 요약- 도메인 지식은 도메인 클래스 내부에서 머물러야 한다.- 컨트롤러에서 매개변수에 대한 유효성 검사는 @Valid를 통해 진행한다.- 클래스에 @Validated를 선언하면 컨트롤러 외에도 모든 계층에서 유효성 검사를 진행할 수 있다. Bean Validation Validation(유효성 검사)데이터가 스펙(요구사항)에 맞는지 확인하는 작업을 의미합니다. Bean ValidationJSR(Java Specification Requests)-303(or 308) 이라는 스펙을 사용하여 유효성을 검사하는 행위를 의미합니다.해당 스펙을 만족하는 대표적인 구현체로 'Hibernate Validator'가 있습니다.스프링에선 'Spring Boot Starter Validation'을 제공하며, .. 2024. 4. 25. @RequiredArgsConstructor 세 줄 요약 롬복에서 지원하는 생성자 DI를 위한 어노테이션 스프링 4.3부터 해당 어노테이션으로 더욱 간단하게 DI 가능 final 혹은 @NonNull이 붙은 필드에 대해서만 적용됨 의존성 주입 (DI) * DI(Defendency Injection)? : 객체를 생성해줌으로써 의존관계가 성립되는 것을 의미. XML 파일을 통해 직접 설정하거나, @Autowired 어노테이션을 사용해 주입. 1) 생성자(Constructor) 주입 @Controller public class DummyController { private DummyService dsvc; @Autowired// 생성자 주입 public DummyController(DummyService dsvc) { this.dsvc = dsvc; .. 2023. 12. 21. @RequestBody, @ResponseBody (feat.@ModelAttribute) 세 줄 요약 - @RequestBody, @ResponseBody 해당 어노테이션들은 비동기 통신에 사용됨 - 클라이언트 → 서버 : @RequestBody, 서버 → 클라이언트 : @ResponseBody - @RequestBody와 @ModelAttribute는 서로 비슷해 보일 수 있지만 분명한 차이점 존재 동기 / 비동기 통신 동기(Synchronous) 통신 - 단일 스레드로 한 번에 하나의 작업이나 프로그램만 실행 - 차단(blocking) 방식 : 요청에 대한 서버의 응답이 있을 때까지 기다림 - 코딩하기 쉬움 - 느리지만 체계적 비동기(Asynchronous) 통신 - 다중 스레드로 여러 작업이나 프로그램이 병렬로 실행 - 비 차단(non-blocking) 방식 : 서버에 여러 요청을 보낼.. 2023. 12. 18. @RequestParam (feat.@ResponseBody) 세 줄 요약 View로부터 넘겨준 쿼리문의 값을 파라미터 이름으로 바인딩 속성에는 1) value, 2) required, 3) default 가 있음 value의 경우 View에서 넘겨준 파라미터 이름과 매개변수의 이름이 같다면 생략가능 @ResponseBody sourcecode @ResponseBody 해당 어노테이션을 사용하면 ViewResolver 대신 HttpMessageConverter가 동작 - @Controller 어노테이션이 적용 되었더라도, View 조회를 무시하고 HTTP message body에 직접 return값을 반환 * HttpMessageConverter Java와 HTTP 웹 어플리케이션 간에 객체변환을 통한 파라미터 전달을 도와주는 어노테이션 여러 가지 타입의 데이터 처.. 2023. 12. 15. Day55_HTTP 요청/응답 사이클 2023.11.03 Day55 세 줄 요약 브라우저를 통해 HTTP request가 들어오면 Controller ↔ Service ↔ DAO(mapper) ↔ DB 순으로 프로세스 진행 mybatis에서 type : 해당 DTO 클래스 경로, alias : mapper의 parameterType 혹은 resultType에 사용할 객체 이름 @RequestParam : 파라미터 이름으로 요청 파라미터를 바인딩해주는 어노테이션 HTTP 요청 / 응답 사이클 list.jsp → view.jsp View ↔ Controller ↔ Service ↔ DAO(mapper) ↔ DB sourcecode 1) user가 상세보기 할 회원 아이디(mId) 클릭 - 브라우저를 통해 HTTP 요청(request)이 들어옴 .. 2023. 12. 14. Day53_Spring Legacy Project 설정 2023.11.01 Day53 세 줄 요약 Spring Legacy Project : Spring Boot를 사용하지 않는 Spring 프레임워크 기반 프로젝트 프로젝트의 최상위 패키지 경로는 관습적으로 'com.소속.어플리케이션이름' 과 같은 naming rule에 따라 설정 Spring 프레임워크를 사용하기 위한 초기설정이 다소 복잡 Spring Legacy Project Spring Legacy Project Spring Boot를 사용하지 않는 스프링 프레임워크 기반의 프로젝트 현재는 Spring에서 STS3의 지원을 공식적으로 중단했기 때문에 추천되지 않는(매우 오래된) 프로젝트 타입 " 낡은(오래된) 기술이지만 현대까지도 남아 쓰이거나, 더 이상 쓰이지 않더라도 현대의 기술에 영향을 주는 경우.. 2023. 12. 14. 이전 1 2 3 다음