project-memo Memo API (3-2) 이번 포스트에서는 메모를 생성할 때 필요한 데이터의 유효성 검사와 예외 처리에 대한 기능을 구현했다. 유효성 검사와 관련된 Annotation을 사용하기 위해 build.gradle에 아래의 의존성을 추가한다. Controller에서 요청 데이터에 대한 유효성 검사를 하기 위해 CreateMemoRequest 앞에 @Valid를 추가했다. @field:(???)를 통해 CreateMemoRe... project-memoproject-memo Memo API (1) 지금까지 메모장 api를 여러 버전으로 만들어봤지만 다른 사람들한테 보여주거나 누군가가 참고하기에는 내용이 턱없이 모자르다는 느낌을 받았다. 그래서 이번 기회에 완성도가 높은 메모장 API를 만들어보려고 한다. 기능을 구현하기 전에 DB Schema부터 만들었다. ERD는 다음과 같다. Memo는 Tag와 File을 여러개 갖는다. 모듈 정보는 다음과 같다. 추가한 dependency imp... project-memoproject-memo Memo API (3-1) 이번 포스트에서는 메모를 생성하는 기능을 구현한다. Controller에서 Request으로부터 MultipartFile과 JsonData를 함께 받아서 처리하기 위해 @ModelAttribute을 사용했다. 파일명 중복을 방지하기 위해 파일을 저장할 때 파일명을 UUID로 변경했다. 물론 파일이 어마무시하게 많다면 파일명이 중복되는 문제가 발생할 수 있다. PostMan을 통해서 Reque... project-memoproject-memo
Memo API (3-2) 이번 포스트에서는 메모를 생성할 때 필요한 데이터의 유효성 검사와 예외 처리에 대한 기능을 구현했다. 유효성 검사와 관련된 Annotation을 사용하기 위해 build.gradle에 아래의 의존성을 추가한다. Controller에서 요청 데이터에 대한 유효성 검사를 하기 위해 CreateMemoRequest 앞에 @Valid를 추가했다. @field:(???)를 통해 CreateMemoRe... project-memoproject-memo Memo API (1) 지금까지 메모장 api를 여러 버전으로 만들어봤지만 다른 사람들한테 보여주거나 누군가가 참고하기에는 내용이 턱없이 모자르다는 느낌을 받았다. 그래서 이번 기회에 완성도가 높은 메모장 API를 만들어보려고 한다. 기능을 구현하기 전에 DB Schema부터 만들었다. ERD는 다음과 같다. Memo는 Tag와 File을 여러개 갖는다. 모듈 정보는 다음과 같다. 추가한 dependency imp... project-memoproject-memo Memo API (3-1) 이번 포스트에서는 메모를 생성하는 기능을 구현한다. Controller에서 Request으로부터 MultipartFile과 JsonData를 함께 받아서 처리하기 위해 @ModelAttribute을 사용했다. 파일명 중복을 방지하기 위해 파일을 저장할 때 파일명을 UUID로 변경했다. 물론 파일이 어마무시하게 많다면 파일명이 중복되는 문제가 발생할 수 있다. PostMan을 통해서 Reque... project-memoproject-memo