Java에서 파일의 Mime type을 판별하는 방법 얼마전, 로컬 파일 시스템에 저장되어 있는 파일을 바이너리 형태로 내려주는 REST API를 작성할 일이 있었습니다. 파일을 내려줄 때 Content-Type 헤더에 Mime Type을 알맞게 지정해줘야 하는데요. 찾아보니 다음과 같은 방법으로 할 수 있었습니다. Path filePath = Paths.get("file/save/path"); String fileContentType = Files.probeContentType(path); 시스템에 따라 파일 타입을 감지하지 못하는 경우도 있는데요. 제 경우엔 Mac OSX에서 파일 타입을 감지하지 못하는 경우가 있었습니다. 때문에 알아보니 URLConnection을 이용하는 방법도 있었습니다. URLConnection.guessContentTypeFro.. Back-End/Java 2020. 11. 4. 21:36
JUnit5 사용해보기 JUnit은 Java를 위한 단위 테스트 (Unit Test) 프레임워크로 개발하는 프로그램에 대한 테스트케이스를 쉽게 작성할 수 있도록 도와줍니다. 그동안 JUnit4를 주로 사용해왔는데, 최근들어 JUnit5가 있음을 알게되고(사실 나온지는 2년이 넘은..) 어떤 차이점이 있는지 알아보고 사용해보려합니다. JUnit4에서 JUnit5로 넘어오며 달라진 점 먼저 JUnit5를 사용하기 위해서는 아래 지원범위에 만족하는지 확인해봐야합니다. Java8 이상 지원 IntelliJ IDEA 2016.2 이후 지원 Eclipse Oxygen 이후 지원 Kotlin 지원 JUnit5 User Guide 문서 첫 단락에 보면 다음과 같은 문구가 적혀있습니다. Unlike previous versions of JUn.. Back-End/Java 2020. 2. 1. 19:38
Lombok 사용 중 constructor ... is already defined in class 오류 발생 해결 Lombok 버전 : 1.16.22 스프링 Boot 프로젝트 배포를 위해 Maven Build 를 수행하던 중 Lombok 어노테이션을 적용해둔 도메인 클래스에서 컴파일 오류가 발생했다. 구글링 해본 결과 @Data와 @NoArgsConstructor를 같이 쓸 때 발생하는 버그로 지금은 fix된듯 하다. https://github.com/rzwitserloot/lombok/issues/1703 Lombok 버전을 변경하거나 @NoArgsContsructor를 먼저 선언해주는 방법으로 컴파일 오류 없이 컴파일 할 수 있었다.@NoArgsConstructor @Data public class SomeDomain { .... } Back-End/Java 2018. 12. 8. 12:17
자바 동일성, 동등성 차이 동일성은 인스턴스가 실제로 같은 인스턴스임을 의미하는 바로 == 연산자를 통해 비교한다. 동등성은 서로 다른 인스턴스이지만 가지고 있는 값이 같음을 의미하며 equals 메소드로 비교한다. Back-End/Java 2018. 11. 24. 12:34
Java NIO란 Java NIO에 관하여 좋은 글이 있어 공유합니다.출처 : http://opennote46.tistory.com----------------------------------------------------------------------------------------------------------------------------------------------------------------------------NIO (New Input/Output) vs IO (Input/Output) and NIO.2 in Java Non-blocking I/O (일반적으로 NIO라고 불리우고 때때로 New I/O라고도 함)은 강력한 I/O 오퍼레이션 기능을 제공하는 자바 프로그래밍 API이다. NIO는 J2S.. Back-End/Java 2018. 10. 2. 22:56