spring boot 5

서버 2대중 1대만 특정 태스크를 (알람) 하도록 하는 법

1차 시도 master_server db 를 만들어서 마스터가 될 ip 정보를 넣어두었다 그리고 서버들은 1분마다 아래 체크를 해서 본인이 마스터인지 확인을 했다 @Transactional(isolation = Isolation.SERIALIZABLE) fun checkIfMasterServer(): Boolean { val masterServerEntity = masterServerRepository.findByIdOrNull(1) ?: MasterServerEntity(1) val expireAt = masterServerEntity.expireAt if (expireAt?.isBefore(LocalDateTime.now()) != false) { masterServerEntity.ip = InetA..

Backend 2022.09.14

kotlin으로 java springboot 프로젝트 리팩토링 하기 2

kotlin 으로 java springboot 프로젝트를 리팩토링 하며 알게된.. java와 kotlin의 차이 java와 kotlin 코드에 사용되는 몰랐던 개념 좋은 코드를 위한 고민 Any type을 Any라는 키워드로 지정할 수 있다 Any Java의 Object에 해당된다 when 인수에 대응하는 모든 분기를 조건이 충족될때까지 순차적으로 맞춰본다 모든 가능한 경우가 존재한다고 증명할 수 없는 경우에 else는 꼭 있어야 한다 companion object 코틀린에는 정적변수 혹은 메소드가 없고, 대신 패키지 내에 함수를 선언하여 사용할 수 있다 kotlin은 static 키워드 대신 companion object 기능을 제공 companion은 클래스 내부에 companion이라는 정적(sta..

Backend 2020.04.19

kotlin으로 java springboot 프로젝트 리팩토링 하기

spring boot + java로 만들어진 API 제공 서비스를 kotlin으로 리팩토링 하기 👩🏻‍🍳 intelliJ gradle 프로젝트 불러오기 spring boot maven으로 빌드하는법을 배운지 얼마되지 않아 갑자기 이번 프로젝트는 gradle으로 빌드 해야 했다. dependency를 선언하는데에 있어서, 프로젝트를 불러올때 작은 차이가 있었다 프로젝트 불러오는법 gradle.build 파일로 import gradle에 필요한 external library가 자동으로 불러지지 않는 경우 .idea 파일을 지운다음 다시 import 하여 해결 gradle 프로젝트로 인식 못할 때 🙅🏻‍♀️ 기존 프로젝트의 버전을 그대로 사용? 기존 프로젝트의 버전은 아래와 같았다 gradle : 4.3 sp..

Backend 2020.04.11

👩🏻‍💻신입사원의 레거시 코드 뽀개기

신입사원은 레거시 코드를 받았고 뽀개려 합니다 💼 새로운 부서 새로운 일 2020년 3월, 드디어 정직원으로서의 첫 부서를 배치받았다. 네이버 지도를 서비스하는 팀에 들어와서 초반 1주차는 지도, 좌표계에 관련된 여러 자료들을 살펴보고 도메인 지식을 쌓는데에 주력했다. 새로운 팀, 새로운 업무를 맡게 되니 당연스레 레거시 코드를 인수인계 받았다. 난생 처음 레거시 코드를 받고보니 어디서부터 살펴보아야 하는가, 이걸 내가 다 볼 수 있을까?, 어떻게 봐야 다 봤다고 할 수 있을까 등등 많은 생각이 들었다. (난생 처음 재택근무도 하고 있다 COVID-19😷) 🗂 부여받은 업무 내가 부여받은 업무는 퇴사자 분이 인수인계 해주신 업무를 (java, spring boot로 된 API) kotlin으로 리팩토링하..

Backend 2020.04.03

[에러 해결] Caused by: java.net.BindException: Address already in use

😩 에러 발생 spring-boot 프로젝트를 여느때와 다름없이 intelliJ에서 실행시켰더니 갑자기 아래와 같은 오류들이 발생하며 실행이 안되었다….🤦🏻‍♀️ Caused by: java.net.BindException: Address already in use Execution failed for task ':Application.main()'. > Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 Caused by: org.apache.catalina.LifecycleExce..

error 2020.04.02