2022/03 11

Docker) MariaDB 컨테이너 설치하기. IntelliJ IDEA 로 DB 접속하기

Intro 입사 전 국비학원에서 Oracle Database 교육을 몇주간 짧게 받은게 전부였는데 입사 후에도 맡은 프로젝트들에서 JPA를 사용하다 보니 쿼리를 직접 짤 일이 많지 않았습니다. 데이터베이스 공부를 따로 하려고 했는데 자바 심화과정, 스프링, JPA, 운영체제, 자료구조 및 알고리즘 등 평소 너무나도 공부하고싶었던 것들이 너무나도 많았다보니 자연스레 우선순위에서 밀려 아직까지도 손을 대지 못하고 있습니다. 업무중에 드문 드문 조금이라도 복잡한 쿼리를 짜내야 하는 일이 생길 때 마다 개념은 어렴풋 알고 있어도 정확한 사용법을 모르는 문법이나 함수 등을 매번 검색하다보니 병목이 생기는 구간이라는게 명백해졌습니다. 병목구간을 알면서도 외면하기엔 양심의 가책이 큽니다. 학습도 중요하지만 꾸준히 사..

Development/DevOps 2022.03.26

Linux) 리눅스에서 Apple Music 듣기 Cider App

Intro 저희집은 iPhone, MacBook, Apple TV, HomePod, iPad 등등 가족들이 사용하는 Apple 디바이스들이 많다보니 편의상 애플 뮤직을 꽤 오래 전 부터 구독 하고 있습니다. 13,500원인 Family Plan을 구독하면 무려 6명까지 제한 없이 음악을 들을 수 있습니다. 무려 세금도 포함한 금액으로, 꽉 채워 구독시 인당 2,250원이라는 믿기지 않는 가성비로 인해 잠시 Spotify 를 구독 하다가 다시 Apple Music으로 돌아온지도 이제 제법 되었습니다. 그런데 애플 기기에서는 Apple Music이라는 훌륭한 네이티브 앱이 있기 때문에 불편 없이 사용 할 수 있지만 윈도우즈에서 사용시 iTunes라는 멸종 위기의 소프트웨어를 사용 하거나 웹으로 접속을 해야 ..

IT Computer/Linux 2022.03.23

Ubuntu) Airpod 연결 설정 하기

우분투 20.04 에어팟 연결 설정 하는 방법 Intro 우분투에 에어팟을 연결 해 보려 하니 일반적인 Bluetooth 장비 메뉴로는 가능하지가 않았습니다. 일단 Unknown 장비들이 무지막지하게 뜨는데 그 중 어떤게 에어팟인지도 모르겠고, 연결도 되지 않았습니다. Bluetooth 설정 ControllerMode 변경 ControllerMode를 bredr로 변경 해 줘야 합니다. sudo vi /etc/bluetooth/main.conf 51 번 라인에 주석 처리된 걸 풀고 bredr를 입력 해 줍니다. Bluetooth 서비스 재시작 sudo /etc/init.d/bluetooth restart 블루투스 서비스를 재 시작 해 줍니다. Airpod 연결 이제 Settings > Bluetooth ..

IT Computer/Linux 2022.03.23

IntelliJ) 테스트 Live Templates 만들기

Intro 매번 테스트 코드를 만들 때 마다 반복해서 입력하는 @Test void test() { Assertion.assertThat() } 을 오늘도 여김없이 계속 입력하다가 이건 너무나도 비효율 적이란 생각이 들었습니다. 사실 클래스 생성시 애초에 기본 틀이 자동으로 만들어지도록 플러그인을 만들까 하다가 아직 거기까진 무리고.. 이클립스를 쓸 때에 이것 저것 추가해서 하던 것 처럼 인텔리제이에서도 당연히 기능이 있겠지 하며 찾아보니 Live templates이 눈에 띄었습니다. 그래도 여전히 커스텀 플러그인에 대한 필요성이 자주 느껴져서 올해 안에는 인텔리제이 플러그인을 만들어 보는게 목표 입니다. Live templates Preferences > Editor > Live Templates에 해당..

java) 151개의 포켓몬을 모두 모으려면 몇개의 포켓몬빵을 사먹어야 하는가

Intro 출처: 온라인 커뮤니티 포켓몬 빵으로 인해 간만에 온라인이 시끌벅쩍 합니다. 몇 해 마다 이런 특정 아이템의 품귀 현상이 반복되는데, 꼬꼬면과 허니버터칩에 이어 포켓몬까지 셋 다 전혀 다른 성격의 객체들이지만 잠깐의 유행에 그치고 말 것이란건 모두가 경험을 통해 잘 알고 있습니다. 20여년 전에는 맛 없는 빵을 먹는 것도 좋았고 스티커를 모으는 것도 설레였지만 아쉽게도 이제 둘 모두에 흥미를 잃었습니다. 다만 이번 상황을 접하며 모든 스티커를 다 모으려면 평균 몇개의 빵을 사야 하는지가 궁금해졌습니다. 실제 수많은 스트리머들이 수백개씩 빵을 벌크로 구매해서는 모든 스티커 모으기 컨텐츠를 진행하기도 합니다. 수학적인 풀이 방법도 있겠지만 컴퓨터에게 잘만 부탁하면 원하는 정보를 모두 계산해서 알려..

Programming/Java 2022.03.20

SourceTree Apple Silicon 지원 소식

Intro 정말 오래기다렸습니다. 사실 처음엔 기다린게 맞는데 진작에 포기하고 소스트리를 버린지 한참 되었습니다. 그러던 중 오랜만에 생각이 나 https://isapplesiliconready.com/ 를 확인 해 보니 M1 Native에 초록 불이 들어와 있었습니다. 그럼에도 atlassian 사이트에는 관련 언급이 따로 없길래 잘못된 정보인가? 하며 https://isapplesiliconready.com/app/SourceTree 다운로드 받아 설치를 해 보았는데 Apple Native로 잘 실행이 되었습니다. Git을 처음 접할 때 참 도움을 많이 받은 소프트웨어기 때문에 남다른 애착이 있었는데 반가운 마음에 소식을 가지고 왔습니다. 1년간의 이야기 듣기로는 SourceTree Mac 버전의 코..

IT Computer/News 2022.03.19

일간에러 More than one fragment with the name [spring_web] was found.

Intro Caused by: java.lang.IllegalArgumentException: More than one fragment with the name [spring_web] was found. This is not legal with relative ordering. See section 8.2.2 2c of the Servlet specification for details. Consider using absolute ordering. adm_1 | at org.apache.tomcat.util.descriptor.web.WebXml.orderWebFragments(WebXml.java:2205) adm_1 | at org.apache.tomcat.util.descriptor.web.WebX..

Spring Boot 1.5 -> 2.5 마이그레이션 회고

Intro 최근 스프링 부트 1.5 버전으로 작성된 프로젝트를 Spring Boot: 2.5.10 버전으로 올리는 작업을 진행 하였습니다. 스프링부트 앞자리 버전 차이가 굉장히 큰데, 온라인 게임에 비유한다면 메이플스토리에서의 빅뱅 혹은 와우의 대격변 전후를 생각하면 이해가 빠르겠습니다. 단순히 pom.xml에서 버전 명시를 변경한다고 뿅 하고 바뀌는건 아니고, 스프링 부트 변경에 따라 여러가지 클래스가 사라지고 새로 생겨났으며 각종 메서드들의 변화도 상당합니다. 스프링 설정 하는 방법도 달라지고, 구석구석 영향이 가지 않는 곳이 거의 없기 때문에 프로젝트가 크면 클수록 그 여파가 상당합니다. 제가 이번에 마이그레이션을 진행한 프로젝트도 몇년간 진행되며 몇번의 고도화를 거친 프로젝트이다 보니 규모도 제법..

일간에러 2022-03-15 WARN No appenders could be found for logger

Intro log4j:WARN No appenders could be found for logger (io.github.makbn.thumbnailer.util.mime.MimeTypeDetector). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.Spring Project 실행 시 위와 같은 에러가 발생했다. 일단 log4j 1.2 라는 에러 문구에서 쉽게 느낌이 왔기 때문에 어렵지 않게 해결 할 수 있겠다. 원인 일단 위에서 안내 해 주는 링크로 이동하면 https://logging.apache.or..

HikariCP) Connection Pool 설정 및 확인하기

Intro 실제 사용하는 커넥션 수에 비해서 커넥션 풀을 넉넉하게 잡고 있었는데, 해당 DB를 여기저기서 다 사용하다 보니 커넥션 풀을 조금 타이트하게 가져가 달라는 요청을 받았습니다. Connection Pool을 조절하고, 실제로 DB에서 커넥션을 몇개나 물고 있는지 확인 해 보도록 하겠습니다. 설정 application.yml 스프링 부트에서 Hikari 설정은 spring.datasource.hikari 에 합니다. 변경 전 spring: datasource: type: com.zaxxer.hikari.HikariDataSource driver-class-name: org.postgresql.Driver url: jdbc:postgresql://localhost:5432/postgres usern..

일간에러 2022-03-04 Lombok@Slf4j 적용 에러 해결

Error java: Can't get the delegate of the gradle IncrementalProcessingEnvironment. java: cannot find symbol symbol: variable log location: class openapi.OpenApiController롬복 플러그인을 활용해 @Slf4j 어노테이션을 사용하던 중 위와 같은 에러 발생. 해결 방법1 보통의 경우에는 Annotation Processor 설정이 안되있거나 Lombok 플러그인이 설치되어 있지 않을 때 발생. 둘중 하나라도 걸린다고 생각한다면 Lombok 플러그인이 설치되어 있는지 확인 하고, 없으면 설치 Preferences -> Build, Execution, Deployment -..