파란하늘의 지식창고
vaadin 사용해 보기 (2)
Study/Java 2023. 11. 4. 01:56

2023.09.19 - [Study/Java] - vaadin 사용해 보기 이전 글에 이어 사용하면서 익혔던 몇 가지 기능들을 정리해 보았다. Vaadin을 학습해 보면서 최종적으로 느낀 점은 다음과 같다. 실 라이브 서비스에 쓰일만한 라이브러리는 아니고 FE 관여 없는 관리툴 개발 시 쓰임이 있다. java script 작성이나 css 설정의 단계가 생략되어 얼핏 좋아 보이지만 기반 지식을 염두에 두고 vaadin 코드를 작성해야 해서 오히려 학습의 난이도가 높아졌다. 그냥 javascript 라이브러리나 css를 사용하는 게 더 좋다고 느꼈다. Spring의 singleton 기반 bean 객체 관리와 다르게 prototype으로 코드가 처리되어서 성능이 떨어지고 Spring과 연계가 복잡해진다. V..

vaadin 사용해 보기
Study/Java 2023. 9. 19. 05:06

Vaadin 소개 https://vaadin.com/ vaadin은 ui component 구성을 제공해 주는 java기반 웹프레임워크이다. Swing이나 AWT를 작성하는 것처럼 java 코드를 작성하면 요청에 대해 대응되는 web ui를 제공해 준다. ui관련 html, javascript, css 작업을 따로 하지 않아도 되고 Java 대신 TypeScript를 사용할 수도 있다. 기본 기능은 open-source로 제공되며 생산성 향상을 위한 vaadin UI 관련 테스트 도구나 Advanced UI component는 유료로 제공된다. Vue, Svelte 같은 Front-end Framework를 흥미를 가지고 공부해 보았지만 너무나 변화하는 속도가 빠르다 보니 다른 방법이 없을까 싶어 찾아보..

article thumbnail
annotation 을 가진 class 검색에 reflection util 대신 Spring TypeFilter 사용으로 대체하기
Study/Java 2023. 7. 31. 01:04

Reflection 소개 reflection 은 java의 classpath metadata를 scan 하고 캐싱하는 라이브러리이다. https://github.com/ronmamo/reflections 다음과 같은 것들을 scan 할 수 있다. type의 subtype annotation으로 주석이 달린 type annotatoin, parameters, return type이 있는 method classpath 경로에서 찾을 수 있는 resource ... 사용 방법은 간단하다. dependency를 추가하고 # Maven org.reflections reflections 0.10.2 # Gradle implementation 'org.reflections:reflections:0.10.2' 다음과 ..

java record 사용시 @JsonIgnore 설정 주의점
Study/Java 2023. 1. 14. 19:58

기존에 다음과 같이 사용한 domain이 있다. @Data public class User { private long idx; private String userId; private String userName; @JsonIgnore private String password; @JsonIgnore private ZonedDateTime createdDate; @JsonIgnore private boolean accountNonExpired; @JsonIgnore private boolean accountNonLocked; @JsonIgnore private boolean credentialsNonExpired; @JsonIgnore private boolean enabled; private List u..

JDK 17부터 Locale language old ISO code 사용 비활성으로 기본 설정 변경
Study/Java 2022. 11. 23. 21:34

Java의 Locale은 로케일 데이터 교환을 위한 LDML (UTS#35, UnicodeLocale Data Markup Language) BCP 47 호환 확장을 지원하는 RFC 4647 "Matching of LanguageTags" 및 RFC 5646 "Tags for Identifying Languages"로 구성된 IETF BCP 47을 구현한 것이다. 여러 속성들이 있지만 보통 Language가 필수이고 추가로 country, script, variant, extensions를 사용한다. (거의 대부분 {language}_{country}의 형태로 사용한다. ex: ko_KR) 언어나 국가에 대한 code는 불변이 아니고 세월이 변하면 달라질 수 있다. 이전 버전 JDK의 java.util...

java에서 OpenCV로 face detection 해보기
Study/Java 2022. 2. 24. 23:15

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..

article thumbnail
java에서 OpenCV 사용해보기
Study/Java 2022. 2. 4. 00:46

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..

java Exception은 어떻게 사용하는게 좋을까?
Study/Java 2018. 11. 12. 17:33

Exception을 사용하는 방법에 대한 글은 아니고 어떻게 쓰는게 좋은지에 대해 정리해보았다. 시대가 변하면 방법도 변하기 마련이다. 이 글의 내용이 정답은 아니고 다만 글을 쓴 시점에서 어떤게 가장 좋을지 정리해본 글이다.과거 사용하던 에러 처리 방식 1예전에는 아래와 같은 방식으로 Exception을 모두 감싸고 결과를 반환하는 형태로 개발하던 시절도 있었다. //대상 객체 public class Article { // ... article 설정 } // 결과 반환 객체 public class ArticleResult extends Article { boolean isSuccess; String errorCode; String errorMessage; // ... 에러 관련 설정 } // 대상 서비..