본문 바로가기

Spring74

스프링 코어2 - 악취 풍기는 로그 추적기 💩 🪰 로그 추적기를 서비스에 적용하기 사용자의 요청에 대한 로그 추적기를 만들어 보자. 만약 사용자가 주문 서비스를 사용했을 시에 아래 처럼 요청에 대한 로그들을 남기고 싶은 것이다. 요구사항을 간단히 정리하면 다음과 같다. 1. 모든 public 메서드의 호출과 응답 정보를 로그로 출력 2. 어플리케이션의 흐름을 변경하면 안됨 (로그를 남긴다고 해서 비즈니스 로직이 동작에 영향을 주면 안된다.) 3. 메서드 호출에 걸린 시간을 출력할 수 있어야 한다. 4. 정상 흐름과 예외 흐름을 구분하여야 한다. 먼저 프로젝는 start.spring.io에서 lombok과 Spring Web만을 추가한 가벼운 어플리케이션이다. 예시는 주문 서비스로 만들 것이기 때문에, OrderController, OrderService.. 2022. 1. 1.
스프링 파일 업로드 스프링이 제공하는 파일업로드 기능을 사용하면 서블릿의 기능을 사용할 때보다 훨씬 쉽게 파일 업로드가 가능합니다. MultipartFile 이라는 인터페이스로 멀티파트 파일을 매우 편리하게 지원합니다. saveFile메소드를 보면 @RequestParam으로 MultipartFile을 받고 있습니다. @RequestParam MultipartFile file : 업로드하는 HTML Form의 name에 맞추어 @RequestParam 을 적용하면 됩니다. 추가로 @ModelAttribute 에서도 MultipartFile 을 동일하게 사용할 수 있습니다. MultipartFile 주요 메서드 : file.getOriginalFilename() : 업로드 파일 명 file.transferTo(...) : 파.. 2021. 7. 20.
서블릿 파일 업로드 파일 업로드 HTML Form을 통한 파일 업로드에는 다음 두 가지 방식이 있습니다. • application/x-www-form-urlencoded • multipart/form-data application/x-www-form-urlencoded 방식은 HTML 폼 데이터를 서버로 전송하는 가장 기본적인 방법입니다. Form 태그에 별도의 enctype 옵션이 없으면 웹 브라우저는 요청 HTTP 메시지의 헤더에 다음 내용을 추가합니다. Content-Type: application/x-www-form-urlencoded 그리고 폼에 입력한 전송할 항목을 HTTP Body에 문자로 username=kim&age=20 와 같이 & 로 구분해서 전송합니다. 파일을 업로드 하려면 파일은 문자가 아니라 바이너.. 2021. 7. 20.
포맷터 - Formatter 이전까지 학습한 Converter 는 입력과 출력 타입에 제한이 없는, 범용 타입 변환 기능을 제공합니다. 일반적인 웹 애플리케이션 환경을 생각해보면 불린 타입을 숫자로 바꾸는 것 같은 범용 기능 보다는 개발자 입장에서는 문자를 다른 타입으로 변환하거나, 다른 타입을 문자로 변환하는 상황이 대부분입니다. 앞서 살펴본 예제들을 떠올려 보면 문자를 다른 객체로 변환하거나 객체를 문자로 변환하는 일이 대부분입니다. 웹 애플리케이션에서 객체를 문자로, 문자를 객체로 변환하는 예 : • 화면에 숫자를 출력해야 하는데, Integer String 출력 시점에 숫자 1000. 문자 "1,000" 이렇게 1000 단위에 쉼표를 넣어서 출력하거나, 또는 "1,000" 라는 문자를 1000 이라는 숫자로 변경해야 합니다... 2021. 7. 18.