spring69 [Spring] 파일 업로드 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 파일 업로드 소개 기존의 HTML에서 form을 통해 데이터를 서버로 전달하던 방식은 Content-Type: application/x-www-form-urlencoded의 방식이다. 이 방식은 가장 기본적인 방법이기에, Form 태그에 별도의 enctype 옵션이 없으면 기본으로 사용한다. 또한 HTTP Body에 username=kim&age=20 와 같이 & 로 구분해서 전송한다. 하지만 파일을 업로드 하려면 파일은 문자가 아니기 때문에 바이너리 데이터를 전송해야 한다. 따라서 문자를 전송하는 방식으로는 파일을 전송하기 가 어렵다. 더 나아가 보통 파일을 전송할때는 파일만 전송.. BackEnd/Spring MVC 2022. 3. 21. [Spring] 스프링 타입 컨버터 - 2 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 6. 포맷터 - Formatter " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 개발자 입장에서는 문자를 다른 타입으로 변환하거나, 다른 타입을 문자로 변환하는 상황이 대부분이다. 화면에 숫자를 출력해야 하는데, Integer => String 출력 시점에 숫자 1000 문자 "1,000" 이렇게 1000 단위에 쉼표를 넣어서 출력하거나, 또는 "1,000" 라는 문자를 1000 이라는 숫자로 변경해야 한다. 이렇게 객체를 특정한 포멧에 맞추어 문자로 출력하거나 또는 그 반대의 역할을 하는 것에 특화된 기능이 바로 포맷터( Formatter )이다. 포맷.. BackEnd/Spring MVC 2022. 3. 18. [Spring] 스프링 타입 컨버터 - 1 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 스프링 타입 컨버터 소개 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 다음과 같은 컨트롤러가 하나 있다고 하자! @GetMapping("/hello-v1") public String helloV1(HttpServletRequest request){ String data = request.getParameter("data"); // 문자 타입 조회 Integer intValue = Integer.valueOf(data); System.out.println("intValue = " + intValue); return "OK"; } HTTP 요청 파라미.. BackEnd/Spring MVC 2022. 3. 18. [Spring] API 예외 처리 - 2 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 5. 스프링이 제공하는 ExceptionResolver1 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 스프링 부트가 기본으로 제공하는 ExceptionResolver 는 다음과 같다. HandlerExceptionResolverComposite 에 다음 순서로 등록되어 있다. 1. ExceptionHandlerExceptionResolver : @ExceptionHandler 를 처리한다. 2. ResponseStatusExceptionResolver : HTTP 상태코드를 지정해줄수 있다. 3. DefaultHandlerExceptionResolver.. BackEnd/Spring MVC 2022. 3. 15. [Spring] 예외 처리와 오류 페이지 - 2 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 6. 스프링 부트 - 오류 페이지 1 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이전글에서 예외 처리 페이지를 만들기 위해 복잡한 과정을 거쳤다. 1) WebServerCustomizer 를 만들고 2) 예외 종류에 따라서 ErrorPage 객체를 추가하고 3) 예외 처리용 컨트롤러 ErrorPageController를 사용자가 직접 만들었다. 스프링 부트는 이러한 과정을 전부 기본적으로 제공한다. 1) ErrorPage를 자동등록 한다. 이때 경로는 /error 이라는 기본 경로로 오류 페이지를 설정한다. 따라서 서블릿 밖으로 예외가 발생하거나, r.. BackEnd/Spring MVC 2022. 3. 14. [Spring] 예외 처리와 오류 페이지 - 1 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 서블릿 예외 처리 - 시작 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 서블릿은 2가지 방식으로 예외 처리를 지원해 준다. 1) Exception 2) response.sendError(HTTP 상태 코드, 오류 메시지) 웹 어플리케이션 에서는 사용자 요청별로 thread가 할당된다. 해당 thread에서 예외가 발생했는데, try - catch로 예외를 처리하지 못한다면 어떻게 될까? => 톰캣 같은 WAS 까지 예외가 전달된다. WAS(여기까지 전파) HTML 삽입 미리보기할 수 없는 소스 예외가 WAS까지 전달되면 WAS는 예외를 처리하는 오.. BackEnd/Spring MVC 2022. 3. 14. [Spring] 로그인 처리2 - 필터, 인터셉터 - 1 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 서블릿 필터 - 요청 로그 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스필터를 사용하여 사용자의 모든 요청에 로그를 남겨보자. ● LogFilter - 로그 필터@Slf4jpublic class LogFilter implements Filter{ @Override public void init(FilterConfig filterConfig) throws ServletException { log.info("log filter init"); } @Override public void doF.. BackEnd/Spring MVC 2022. 3. 13. [Spring] 로그인 처리1 - 쿠키, 세션 - 2 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 3. 로그인 처리하기 - 쿠키 사용 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번시간에는 로그인 상태를 유지하기 위해서 쿠키를 사용해 보자. 서버에서 로그인에 성공하면 HTTP 응답에 쿠키를 담아서 브라우저에 전달하자. 그러면 브라우저는 앞으로 서버로 요청을 보낼때 마다 이전에 받은 쿠키를 지속해서 서버로 보내준다. ● 쿠키의 종류 2가지 영속 쿠키: 만료 날짜를 입력하면 해당 날짜까지 유지 세션 쿠키: 만료 날짜를 생략하면 브라우저 종료시 까지만 유지 우선 로그인에 성공항 회원들에게 response에 cookie를 담아서 보내주자! ● LoginC.. BackEnd/Spring MVC 2022. 3. 9. [Spring] 로그인 처리1 - 쿠키, 세션 - 1 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 회원 가입 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 우선 데이터를 저장할 Member entity부터 만들어야 한다. ● Member @Data public class Member { private Long id; @NotEmpty private String loginId; // 로그인 ID @NotEmpty private String name; @NotEmpty private String password; } ● MemberRepository MemberRepository는 Member를 저장해두는 저장소 역할을 한게된다. @Slf4j @Re.. BackEnd/Spring MVC 2022. 3. 9. [Spring] 검증2 - Bean Validation - 2 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 5. Bean Validation - 오브젝트 오류 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 Bean Validation 에서 특정 FieldError가 아닌, 오브젝트 관련 에러 또한 처리가 가능하다. (다만 권장하지 않는 방식이다) 바로 @ScriptAssert()를 사용하면 된다. @Data @ScriptAssert(lang = "javascript", script = "_this.price * _this.quantity >= 10000", message = "총 합이 10000원을 넘어야 합니다") public class Item { priv.. BackEnd/Spring MVC 2022. 3. 7. [Spring] 검증2 - Bean Validation - 1 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. Bean Validation - 소개 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 기존에 직접 구현하였던 검증과정은 상당하게 번거롭다. 특정 필드에 대하여 하나 하나 전부 검증과정을 거처야 하니 노가다에 가까웠다. 이를 해결하기 위해 등장한것이 Bean Validation 이다. 우선 다음 코드를 살펴보자. public class Item { private Long id; @NotBlank private String itemName; @NotNull @Range(min = 1000, max = 1000000) private Integer price.. BackEnd/Spring MVC 2022. 3. 7. [Spring] @SpringBootTest SpringBoot에서 테스트 시작하기 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 Spring Boot는 애플리케이션을 테스트하기 위한 많은 기능을 제공해 줍니다! Spring boot에서 테스트 모듈은 spring-boot-test와 spring-boot-test-autoconfigure가 존재하는데, 대부분의 경우는 spring-boot-starter-test만으로도 충분하며, spring-boot-starter-test는 spring boot의 테스트에 사용되는 Starter 패키지입니다. spring-boot-starter-test는 JUnit는 물론이고, AssertJ, Hamcrest를 포함한 여러 유용한 라이브러리를 포함하고 있습니다. spring-boo.. BackEnd/Spring 2022. 3. 7. 이전 1 2 3 4 5 6 다음