최근 어플리케이션의 사용자가 많아지면서 대충 만들었던 notification 에 대한 안정성을 평가하고, 코드 리팩토링을 진행하게 되었습니다. expo sdk 를 이용하여 하이브리드 어플리케이션을 제작하고 spring boot 를 이용하여 api server를 만드는 경우 사용하게 되는 expo-server-sdk-java 의 사용법에 대해서 알아보려고 합니다. 0. expo push notification expo-notifications 을 이용하면 어플리케이션에서 ExponentPushToken[...] 형식의 expo push token 을 받아 올 수 있습니다. 어플리케이션에서 전달받은 expo push token 을 database 에 저장하고 백엔드 언어에 맞는 expo-server-sdk-..
가끔 production 브랜치에 merge 한 이후 (새로운 버전을 배포하고 아주 신나는 순간) 갑자기 발생한 에러때문에 급하게 코드를 수정하는 일들이 있다. 급한 마음에 production 브랜치에 그대로 코딩을 하게 되는데, 이런 unstaged 된 코드를 다른 브랜치(특히 dev)에 커밋해야하는 경우가 생긴다. 만약 prod 브랜치에서 a.txt 파일을 수정하고 staging 하지 않은 상태에서 dev 브랜치로 옮겨간다면 지금 작업한 작업물들이 손실됩니다. 이 경우 다음과 같은 프로세스를 통해서 prod 에서 변경한 코드를 dev에 commit 할 수 있습니다. 지금까지 한 작업을 어딘가에 저장한다. prod 에서 변경한 코드를 최신 커밋으로 되돌린다. dev 브랜치로 이동한다 1번에서 저장한 작..
최근 spring boot 프로젝트에서 공무원 월급일자를 계산해야하는 일이 생겼습니다. 공무원의 경우 월급날이 공휴일이거나, 주말인 경우 월급을 앞당겨서 지급받기 때문에 특정년도의 공휴일을 계산해주는 계산기가 필요했습니다. 0. 라이브러리 추가 gradle project 에 음력달력을 사용하기 위한 라이브러리를 추가해줍니다. dependencies { // https://mvnrepository.com/artifact/com.ibm.icu/icu4j implementation group: 'com.ibm.icu', name: 'icu4j', version: '4.0.1' } 1. 공휴일 처리 클래스 Lunar2Solar 메서드를 이용하여 음력기준의 공휴일을 양력날자로 변환해준뒤, 대체 공휴일이 적용되는 ..
https://programmers.co.kr/learn/courses/30/lessons/43164?language=java 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr dfs 를 이용해 가능한 모든 경우를 확인하면서 그중 알파벳 순으로 가장 앞서는 답을 구하는 방식입니다. Collections.min() 의 부분에서 따로 Comparator 객체를 람다를 이용해서 넣은것을 확인할 수 있습니다. 이는 1. 긴 답이 먼저오도록 2. 둘이 길이가 같다면 알파벳 순으로 앞서는..