기본적으로 2가지 방식이 있다 dto - User.java package com.example.exception.dto; import javax.validation.constraints.Min; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; public class User { @NotEmpty @Size(min=1,max=10) private String name; @Min(1) @NotNull private Integer age; public String getName() { return name; } public..
User.java @Size(min=6,max=6) private String reqYearMonth; //yyyyMM 근데 그냥 6글자 넣어도 가능하다... 다른 방법으로 해보자 User.java @AssertTrue(message = "yyyyMMdd의 형식에 맞지 않습니다") public boolean isReqYearMonthValidation(){ //(3)boolean 하려면, 메소드명 앞에 is 붙여줘야 함 System.out.println("Assert True Call"); //(2)호출이 잘 되는지 확인하기 위해 콘솔프린트 this.reqYearMonth=getReqYearMonth()+"01"; //(1)dd까지 붙이기 위해 사전작업 한것이라고 하는데.. //파싱이 잘 되면 true,..
위와 같은 코드에서는, 인자가 3개밖에 없으니 코드가 짧지만 인자가 늘어나면 늘어날수록 코드(validation)가 길어지고 정상적인 로직을 짜는데 문제가 생길 수 있다. 또 잘못 작성하면 에러가 난다. Validation은 변경되면 안된다! 그리고 잘 처리하기 위해 스프링에서 일관되게 제공하기 위해 어노테이션으로 제공한다 변수에다가 붙이면 된다 요청을 받을 것이기 때문에 cotroller 패키지 만들고 ValidationApplication.java만듦 package com.example.validation.controller; import com.example.validation.dto.User; import org.springframework.web.bind.annotation.PostMapping..
빌드란? - 소스코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정 또는 그에 대한 결과물이다. - 이를 좀더 쉽게 풀어 말하자면 우리가 작성한 소스코드(java), 프로젝트에서 쓰인 각각의 파일 및 자원 등(.xml, .jpg, .jar, .properties)을 JVM이나 톰캣같은 WAS가 인식할 수 있는 구조로 패키징 하는 과정 및 결과물이라고 할 수 있다. 빌드 도구(Build tool) - 빌드 도구란 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램. - 빠른기간동안 계속해서 늘어나는 라이브러리 추가, 프로젝트를 진행하며 라이브러리의 버전 동기화의 어려움을 해소하고자 등장. - 초기의 java 빌드도구로 Ant를 많이 사용하였으나 최근 많은 빌드도구..
File -> Setting encoding 검색 Project Encoding과 Properties Files 의 설정 -> UTF-8로 바꾸기 Apply -> OK Help -> Find Action edit custom 검색 edit custom VM options... 클릭 맨 마지막 줄에 -Dfile.encoding=UTF-8 추가 모든 Intellij 프로젝트 끄고 다시 켜기 해결!
스프링 프레임워크의 구성은 20여가지로 구성되어있다! 이러한 구성(모듈)들은 스프링의 핵심 기능인 DI, AOP, etc 등을 제공해준다. 필요한 구성만 골라 사용 가능! 웹 서버에 올리기 위한 스프링 부트 스프링 데이터 마이크로소프트 관련한 스프링 클라우드 일정한 데이터를 모아 대용량으로 처리할 때 스프링 배치 권한 관련한 스프링 시큐리티 스프링은 테스트가 용이하고, 느슨한 결합을 통해 디자인 패턴이나 유지 보수, 확장이 어렵지 않도록 하게 하는 것 다른 프레임워크와의 가장 큰 차이점은 IoC IoC (Inversion of Control) 스프링에서는 일반적인 Java 객체를 new로 생성하여 개발자가 관리하는 것이 아닌 Spring Container에게 모두 맡긴다. (객체가 이미 컨테이너 안에 다..
Object Mapper가 하는 일 : 1. TEXT 형태의 JSON -> Object로 바꿔줌 2. Object -> TEXT 형태의 JSON로 바꿔줌 Object Mapper의 예 : 1. Controller에서, TEXT 형태의 JSON 요청이 들어오면 자동적으로 Object로 바꿔줬었음 2. Responses를 Object로 리턴하게 되면, 자동적으로 TEXT 형태의 JSON으로 바꿔줬었음 이번엔 직접 Object Mapper를 객체로 만들어서 사용해보자 첫 번째로는 Object -> TEXT 형태의 JSON 두 번째로는 TEXT 형태의 JSON -> Object 만약 위와 같은 예를 사용해야 할 때는, ObjectMapper를 적극 활용하자! package com.example.object_ma..
TEXT로 내려주기 / JSON으로 내려주기 / 200 & 201 Status로 내려주기 package com.example.response.controller; import com.example.response.dto.User; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/api") public class ApiController { // TEXT @GetMapping("/text") public String test(@RequestPa..