2년 반쯤 전에 Spring Data JDBC를 살펴보면서 Data JPA를 대체할 수 있을지 고민해보았었다. 2019.07.28 - [Study/Java] - Spring Data JDBC로 Spring Data Jpa를 대체할 수 있을까? 시간이 흘렀고 기존에 살펴보았던 Spring Data JDBC 1.0.9.RELEASE도 현재 2.3.2 버전으로 판올림 되었다. 현재 버전의 Spring Data JDBC가 사용할만한지 살펴보았다. Spring Data JDBC란? Spring Data JDBC는 데이터와 java object를 연계하기 위해 제공되는 Spring Data의 라이브러리 중 하나이다. (DB를 연결하여 사용하기 위해 제공되는 Spring JDBC와 다른 라이브러리이다.) Spring..
Spring에서 mp4 동영상 같이 용량이 큰 파일을 내려보내 주려면 어떻게 해야 할까? 파일 읽어 들이고 내보내기 요청에 대해 응답으로 데이터를 내보내야 한다. 자바에서는 데이터를 InputStream으로 가져와서 OutputStream으로 내보낸다. 최상위인 InputStream과 OutputStream 추상 클래스를 extends 한 여러 class를 java.io package에서 제공하는데 대략 다음과 같다. InputStream OutputStream BufferedInputStream BufferedOutputStream ByteArrayInputStream ByteArrayOutputStream DataInputStream DataOutputStream FileInputStream File..
java에서 OpenCV를 사용해보기 위한 설정을 이전 글에서 해보았다. 2022.02.04 - [Study/Java] - java 에서 OpenCV 사용해보기 이 글의 예제를 테스트하기 위해선 해당 설정이 먼저 진행되어야 한다. 다음으로 OpenCV를 이용해 face detection (얼굴 인식)을 해보았다. opencv 홈페이지의 튜토리얼 문서의 경우 c++과 python을 기준으로 안내가 되어 있다. https://docs.opencv.org/4.5.5/d0/dd4/tutorial_dnn_face.html java 기반의 경우 대부분의 예제가 swing 또는 안드로이드에서 gui를 처리하는 식이어서 일단 swing 방식으로 작성을 해보았다. swing으로 동영상 띄워보기 아래와 같이 작성해서 sw..
바로 이전 글에서 github이 markdown 문서에 mermaid를 지원하게 되었다고 소개했었다. 2022.02.16 - [Study/ETC] - Github markdown diagram 지원 소식 다만 github 사이트에서 markdown 문서 보기 할 경우만 지원이라 내가 만든 asciidoctor 문서에 mermaid를 사용해서 빌드할 수 없나 싶어 찾아보니 이미 있었다. Asciidoctor Diagram 소개 https://docs.asciidoctor.org/diagram-extension/latest/ Asciidoctor Diagram - Asciidoctor Diagram README for the Asciidoctor Diagram extension for Asciidoctor...
OpenCV 소개 유튜브 강의 영상을 보다 보니 파이썬으로 동영상의 얼굴을 인식하고 얼굴에 캐릭터를 씌우는 걸 설명하는 걸 보았다. 어떻게 영상에서 얼굴을 인식하는지 궁금했는데 OpenCV 를 이용하면 가능하다고 한다. https://opencv.org/ OpenCV(Open Source Computer Vision)는 실시간 computer vision을 위한 라이브러리로 C/C++로 개발되었고 TensorFlow, Torch/PyTorch 및 Caffe의 deep learning framework를 지원한다고 한다. OpenCV의 문서를 보면 DNN (Deep Neural Networks)의 Face Detection을 사용한다고 하는데 관련된 tutorial은 다음과 같다. Deep Neural N..
history Java는 오래된 언어이다 보니 내역이 복잡하다. 어떻게 흘러왔는지를 간략하게 알고 있는 것이 도움이 될 듯하여 찾아보았다. 1995년 Sun microsystems에서 제임스 고슬링이 개발하여 최초 버전인 1.0을 공개하였다. 이는 이후 2010년에 Oracle이 Sun microsystems를 인수하면서 Java 저작권이 Oracle로 넘어가게 되고 Oracle이 Java 8까지 운영하다 이후 오픈소스인 OpenJDK와 상업용 OralcleJDK를 나누게 된다. 처음엔 JDK 1.0, JDK 1.1이란 이름으로 발표되었는데 이후 J2SE 1.2, 1.3, 1.4로 발표되었고 Standard Edition과 구분된 J2EE 1.2, 1.3, 1.4 (Enterprise Edition), ..
JDK version Java SE 5 이전 자바는 JDK 1.0, JDK 1.1, J2SE 1.2, J2SE 1.3, J2SE 1.4처럼 1.x로 버전을 관리하였다. 이후 6, 7, 8과 같은 숫자로 변경이 되었는데 이때 이후 각 버전 별 업데이트가 계속 올라가게 된다. (관련 히스토리는 너무 길어 링크로 대체함) https://namu.wiki/w/Java/%EB%B2%84%EC%A0%84%20%EC%A0%95%EB%B3%B4 각 버전 별 업데이트 관리를 해야 하는 부담이 커지자 오라클은 상용과 오픈소스를 나누기로 하고 openjdk와 oraclejdk를 분리하고 6개월 주기로 major 버전을 변경하고 3년 주기로 LTS (Long Term Support) 버전을 관리하기로 하였다. 이에 대해서는 ..
전체 Release Notes 목록은 이 곳에서 확인할 수 있습니다. https://luvstudy.tistory.com/tag/Release%20Notes https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.6-Release-Notes Upgrading from Spring Boot 2.5 Deprecations from Spring Boot 2.4 Spring Boot 2.4에서 더 이상 사용되지 않는 class, method 및 properties가 이번 release에서 제거되었습니다. upgrade 하기 전에 더 이상 사용되지 않는 method를 호출하지 않는지 확인하세요. Circular References Prohibited ..
STS 4.12.1이 나와서 사용하려고 보니 프로젝트 빌드 시 java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module... 와 같은 오류가 발생한다. 해당 에러는 lombok을 사용하는 경우 발생하며 발생하는 이유는 JDK 16에서 강화된 보안정책 때문에 private 접근자에 대한 강제 접근 처리가 되지 않으면서 해당 방식의 코드를 사용한 lombok을 사용할 경우 발생되는 오류이다. https://openjdk.java.net/jeps/396 JEP 396: Strongly Encapsulate JDK Internals by Default JEP 396: Strongly Enc..
STS 4.12.0에서 코드 변경 시 progress에 associate sources and javadoc with classpath 가 뜨고 끝없이 무한 반복하는 현상이 발생했다. 원인은 STS 4.12.0에서 사용하고 있는 eclipse-m2e의 버그다. https://github.com/eclipse-m2e/m2e-core/issues/252 install New Software에서 아래 주소를 추가하여 버전을 업그레이드하면 된다. https://download.eclipse.org/technology/m2e/releases/latest/ 2021-11-01 추가 내용 위 패치 내용을 포함한 버전의 STS 4.12.1이 release 되었다. 따라서 STS를 이후 버전으로 사용하면 해당 문제가 해..