전체 글 425

(Linux 서버로 사용중인) 노트북 메모리 추가

Intro 집에서 2년째 가벼운 서버 용도로 사용하고 있는 노트북이 있습니다. 클라우드를 저렴하게 사용할 수 있다면 베스트겠지만, 여러 가지 무료 클라우드를 비교 해 보았을때, 오라클에서 제공하는게 가장 좋음에도 불구하고 최대 2개의 인스턴스 및 각각 1GB의 메모리를 사용 할 수 있다보니 도커 기반의 무엇인가를 올리기에는 엄두가 나지 않습니다. 그러다보니 오라클 클라우드는 개인 ip 주소를 드러내지 않기 위한 간단한 프론트 서버 용도 정도로만 사용 하고 있습니데. 제가 필요한 컨테이너 중에는 메모리를 크게 차지하는게 몇몇 있는데, 그 중에서도 엘라스틱 서치는 평소에도 제 PC 기준 5GB 정도의 많은 메모리를 잡아먹습니다. 램 용량과 클라우드 비용은 정비례를 할 만큼 램의 크기는 비용에 큰 영향을 주다..

IT Computer/Linux 2022.11.27

[Java] 불변객체(Immutable Object)의 JSON 직렬화 및 역직렬화

Intro DTO 혹은 VO 객체를 생성 할 때, Immutable 하게 생성 한다면 여러가지 장점이 있습니다. 멀티 쓰레드 환경에서 동기화를 고려 할 필요 없이 안전하게 사용 할 수 있으며, 캐싱을 하기에도 유리합니다. 특히 mutable 객체를 잘못 코딩함으로서 생기는 사이드이펙트는 예측하기도 어려울 뿐더러 오류가 발견되는것도 쉽지 않습니다. 한참이 지나서야 도대체 알 수 없는 오류가 발생해서 이것 저것 한참을 디버깅을 하다가 객체를 잘못 다룬게 발견될때는 거의 소름이 돋을 정도입니다. 프로퍼티의 값이 변화될 일이 없고, 값이 변경되어서는 안되는 객체를 방어적 복사를 하는 거 보다는 애초에 불변객체로 생성 하는것이 성능을 비롯한 여러 가지 장점이 있습니다. 재사용도 얼마든지 할 수 있습니다. 이전의 ..

Programming/Java 2022.11.20

Cannot find a (Map) Key deserializer for type 해결

문제 Cannot find a (Map) Key deserializer for type [simple type, com.example.GroupView] Map의 키를 단순 String이 아닌 클래스로 했더니 Jackson의 역직렬화 중 에러 발생 키로 사용하는 코드는 아래와 같이 간단한 DTO 객체 public class GroupView { public GroupView(String uuid, String name, String alias) { this.uuid = uuid; this.name = name; this.alias = alias; } private final String uuid; private final String name; private final String alias; } 원인 ..

[H2] Database "mem:testdb" not found, either pre-create it or allow remote database creation 해결

Intro 스프링부트에서는 아래와 같은 설정으로 간단하게 인메모리 H2 데이터베이스를 사용 할 수 있습니다. application.yml spring: datasource: url: jdbc:h2:mem:testdb username: sa build.gradle.kts runtimeOnly("com.h2database:h2") 이후 h2:console 설정을 켠다면, 콘솔 페이지에서 데이터베이스를 직접 확인 해 볼 수 있는데요 spring: h2: console: enabled: true settings: web-allow-others: true 위와 같이 설정했을때에는, /h2-console 경로로 들어가면 데이터베이스를 웹 페이지에서 직접 확인 해 볼 수 있습니다. 그런데, Test Connectio..

[인텔리제이] 한글이 들어간 파일 모두 찾기

Intro 프로젝트에서 국제화 작업을 진행이 대부분 마무리되어, 이제는 모든 뷰단에서 완전하게 하드코딩된 한글 메시지가 제거가 되었는지 확인이 필요 했습니다. 눈에 보이는 페이지를 하나 씩 일일이 찾아서 변경을 했지만, 거의 완료가 되고 나서도 특정 이벤트에만 등장하는 숨겨진 텍스트들이 꽤나 있었습니다. 이때는 정규식 표현을 활용하여 손쉽게 모든 파일에서 한글이 입력된 부분만 찾아낼 수 있습니다. 한글 찾기 파일에서 찾기 Shift 키를 연속으로 두 번 누르고 Find in Files 를 검색 하시면, 단축키를 찾아 낼 수 있습니다. Linux / Windows 에서는 Ctrl+Shift+F 키 이며, Mac 에서는 Ctrl 키 대신 커맨드 키가 들어갑니다. 해당 단축키를 입력 해 보면 위에 보이는 것과..