들어가며 현 회사에서 비즈니스 Feature 개발을 하면서 유저에게 필요한 다양한 데이터를 가공해서 전달하기 위해서 Presto DB 를 사용하고 있습니다. 이 과정에서 Presto DB 의 TimeZone 설정으로 인해서 꽤나 많은 고생을 겪게 되었는데 그 해결 과정을 공유하고자 합니다. Presto DB 란? Presto 는 대량의 (~ 수십 TB) 데이터를 분산처리 할 수 있는 클러스터 이자 쿼리엔진입니다. 쿼리엔진 측면에서 Presto 는 다수의 Woker Node 에서 대량의 데이터를 저장소로 부터 읽어 가공을 수행합니다. 이때 저장소는 다양한 종류(S3, MySQL, Elasticsearch 등)를 지원합니다. (자세한 내용은 공식 문서를 참고) 문제 발생 어느날 Feature 개발을 위해서 ..
들어가며 회서 업무를 하다보면 보통 커밋 컨벤션이 있기 마련인데 필자의 경우에는 JIRA 를 사용하면서 JIRA 티켓 번호를 prefix 로 불여주고 있다. ex. [PROJ-9321] refactor: ..... 다만 매번 티켓 번호를 타이핑 하는 것에 피로감이 느껴지면서 자동으로 붙여줄 수 없을가 고민하면서 git hooks 라는 방법을 적용해보았다. Git Hooks Git 에서 제공해주는 기능으로 다양한 상황 (commit, merge 등) 에서 트리거되는 작업에서 실행되는 동작을 정의할 수 있다. 자세한 내용은 공식 문서 참고 Git - Git Hooks If you’re writing a script/hook that others will need to read, prefer the long..
Billing 연동 토스 페이먼츠를 사용하여 카드 자동결제 (Billing) 연동을 해보겠습니다. 본 글에서는 카드정보를 입력 받아 정보에 해당하는 Billing Key를 발급 받는 과정까지를 진행해봅니다. Billing 이란? 최근 구독 형태의 서비스를 하는 서비스들은 유저에게 카드 정보를 입력을 받아 정기적으로 (Monthly) 결제를 수행하는 방식을 이용하고 있습니다. 보통 일반 P.G의 결제 기능을 사용하게 되면 매번 결제 시점에 유저가 인증을 해야 하는 방식입니다. 이때 사용할 수 있는 방식 중 하나가 P.G 사에서 제공하는 정기결제(Billing) 기능을 사용하여 구현할 수 있습니다. 카드 등록 시점 이후에는 P.G 사에서 제공하는 Billing Key 를 통해서 결제 요청을 할 수 있는 방..
들어가며 Android Studio 에서 직접 기기를 연결해서 디버깅을 시도 했는데 아래와 같이 에러 메시지가 발생하면서 디버깅이 되지 않았다. $ adb shell am start -n "cafe.adriel.androidaudioconverter.sample/cafe.adriel.androidaudioconverter.sample.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D Waiting for application to come online: cafe.adriel.androidaudioconverter.sample Waiting for application to come online: cafe...
도커 컨테이너, 이미지 일괄 삭제 도커를 사용하다보면 Docker Container, Image 가 쌓이면서 용량을 많이 차지할때가 있습니다. 이때 사용할 수 있는 일괄 삭제 커맨드입니다. 해결방법 Shell Script 로 사용하셔도 매우 편리합니다. # Docker 컨테이너 삭제 $ docker container prune -f # Docker 이미지 삭제 $ docker rmi $(docker images -a -q)
들어가며 리눅스 환경에서 터미널에서 Command Line을 통한 chrome 설치 방법을 알아보겠습니다. 설치 방법 아래 명령어를 참고하시면 됩니다. 현재 기준으로 stable 버전으로 install 하게 됩니다. curl -LO https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb apt-get install -y ./google-chrome-stable_current_amd64.deb rm google-chrome-stable_current_amd64.deb 만약 특정 버전이 필요한 경우에는 아래 명령어의 ${CHROME_VERSION} 부분을 원하는 버전을 넣어주면 됩니다. linux chrome stable 버전에 대..
들어가며 여러 파일을 하나의 파일로 합치고 싶은 경우가 있다.(Raw Data, Log Data 을 보고 싶을 때) 이때 terminal 의cat 명령어를 사용하면 간단하게 해결이 가능하다. 해결방법 아래 처럼 디렉터리내에 여러 파일이 있을 때 ➜ ll total 1832 -rw-r--r--@ 1 kimjs staff 61K 12 23 02:33 360133_2021-12-22_1#128.json -rw-r--r--@ 1 kimjs staff 25K 12 23 02:33 360133_2021-12-22_10#128.json -rw-r--r--@ 1 kimjs staff 21K 12 23 02:33 360133_2021-12-22_11#128.json -rw-r--r--@ 1 kimjs staff 9.0..
들어가며 Test Case를 작성하다 보면 테스트 하고자 하는 로직에 대해서 검증 로직과는 상관 없는 Extension Function 에 대해서 Mocking 을 해야 할 때가 있습니다. 저의 경우에는 확장 함수를 주로 아래와 같은 Converting 의 목적(DTO -> VO, VO -> Entity, VO -> DTO 등)으로 사용하고 있었는데요 fun Context.toResult(): Result { /** * Convert Code ... * * return Result( * name = title * content = title + content * code = resultCode.name * reason = resultCode.reason * subject = content * ETC ...
- Total
- Today
- Yesterday
- 이펙티브 자바
- 배낭 여행
- 이펙티브자바
- git
- 자전거 여행
- 일본여행
- effective java
- 방통대 과제물
- 일본 여행
- JavaFX Window Close
- springboot
- effectivejava
- JavaFX 종료
- 텐트
- JavaFX Table View
- 일본 배낭여행
- 일본 자전거 여행
- Java UI
- 자전거
- java
- windows
- 배낭여행
- JavaFX 테이블뷰
- JavaFX
- 인텔리제이
- TableView
- 자바
- intelij
- 스프링부트
- 이펙티브
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |