2022-05-18-TIL

Today I Learned

Multipart File Upload in Spring Boot

FE에서 기본적으로 확장자 및 용량이 제한되어 오겠지만, BE에서도 용량에 대한 검증이 필요하다. 스프링 부트에서는 application.properties 나 application.yml로 설정이 가능하다. 하지만 주의할 점은 Apache Tomcat에서 파일 용량 제한이 걸려있을 수 있으므로, 모두 확인해야한다.

  • https://spring.io/guides/gs/uploading-files/#:~:text=constrained%20as%20follows%3A-,spring.,file%20size%20cannot%20exceed%20128KB.
  • https://docs.spring.io/spring-boot/docs/current/api/org/springframework/boot/autoconfigure/web/servlet/MultipartProperties.html#getMaxRequestSize–
  • https://docs.oracle.com/javaee/7/api/javax/servlet/MultipartConfigElement.html?is-external=true
  • https://stackoverflow.com/questions/34177873/max-limit-of-multipartfile-in-spring-boot
  • https://andonekwon.tistory.com/4
  • https://velog.io/@jinho_pca/Spring-Boot-%ED%8C%8C%EC%9D%BC-%EC%97%85%EB%A1%9C%EB%93%9C-%EC%9A%A9%EB%9F%89%EC%A0%9C%ED%95%9C-%EC%84%A4%EC%A0%95#:~:text=%EB%94%B0%EB%A1%9C%20%EC%84%A4%EC%A0%95%ED%95%98%EC%A7%80%20%EC%95%8A%EC%95%98%EB%8B%A4%EB%A9%B4%20default,bytes%20%EB%A1%9C%20%EC%95%BD%201MB%EC%9D%B4%EB%8B%A4.
  • https://velog.io/@jinho_pca/Spring-Boot-%ED%8C%8C%EC%9D%BC-%EC%97%85%EB%A1%9C%EB%93%9C-%EC%9A%A9%EB%9F%89%EC%A0%9C%ED%95%9C-%EC%84%A4%EC%A0%95
  • https://velog.io/@park2348190/MultipartProperties%EC%9D%98-max-file-size-max-request-size%EC%9D%98-%EC%B0%A8%EC%9D%B4
  • https://stackoverflow.com/questions/64183581/spring-boot-file-multipart-accept-half-allowed-size

CDN 관련

  • http://dims.skcdn.com/sample.html
  • https://ston.readthedocs.io/ko/latest/admin/origin.html?highlight=%2Fdims%2Fresize#hash-suffix
  • https://music-flo.atlassian.net/wiki/spaces/MCP/pages/2031059049/FLO#resizing

Swagger Multiple Examples

  • https://swagger.io/docs/specification/describing-request-body/
  • https://swagger.io/docs/specification/adding-examples/

Java Optional

Optional은 값이 없음을 확실히 하기 위해서 만든 타입이지, 타입으로 선언하여 끌고 다니면서 로직상에서 여기저기에 사용하기 위함이 아니다. 버그의 가능성만 키울뿐이다. 따라서 .orElse 메서드로 조기에 처리해주는게 바람직하다.

  • https://homoefficio.github.io/2019/10/03/Java-Optional-%EB%B0%94%EB%A5%B4%EA%B2%8C-%EC%93%B0%EA%B8%B0/
  • https://www.baeldung.com/java-optional-return
  • https://ducmanhphan.github.io/2019-12-06-Best-practice-for-Optional-in-Java/#using-ifpresent()-or-ifPresentOrElse()-methods

Custom Exception in .orElseThrow()

  • https://stackoverflow.com/questions/22917138/java-8-method-references-provide-a-supplier-capable-of-supplying-a-parameterize