본문 바로가기

공부/JAVA10

여러대의 서버에서 스케줄 처리하기 (ShedLock) 요즘에는 트래픽을 분산시키거나 서버가 다운 되었을 때에도 안정적으로 서비스가 돌아가게 하기 위해 서버를 여러 대 두고 어플리케이션을 운영하는 것이 추세이다. 하지만 스케줄링을 하는데 있어 여러대의 서버에서 중복으로 여러개의 스케줄링이 일어나는 것은 곤란하다.! 이러한 중복 실행을 막기 위해 ShedLock 이라는 라이브러리를 사용해보았다. 자세한 것은 깃헙을 참고하면 된다. ShedLock GitHub Page - 주요 내용 - if one task is already being executed on one node, execution on other nodes does not wait, it is simply skipped. 버전은 JDK 버전을 고려하여 사용하면 된다. If you are using .. 2023. 5. 15.
Spring Boot SLF4J + Logging(Logback) 으로 로그 파일 남기기 Log 를 file로 추출하고 싶어서 찾아보았다. Logging이란? 정보를 제공하는 일련의 기록인 로그를 생성하도록 시스템을 작성하는 활동 Application 을 운영기위해선 요청을 보내거나, 응답을 받거나, 문제가 발생하였을때 생기는 정보들이 필요하다. 특히 아래와 같을때 유용하게 사용할 수 있다. 초보자들은 프로그램을 이해하기 위해, 설계자들은 시스템의 복잡성을 이해하기 위해 테스트 시 버그에 대한 정보를 알기위해 구문 혹은 함수들 사이에 걸리는 시간 등의 성능에 관한 통계와 정보를 알기 위해 Log Library 가장 간단하게 로그를 출력하는 방법은 System.out.println() 이다. 하지만 System.out.println 은 출력되는 로그의 양과 수준을 조절할 수 없고, 출력된 로그.. 2022. 12. 21.
Mac Java_Home 환경 변수 설정 JDK 기본 설치 경로는 /Labrary/Java/JavaVirtualMachines 이다. 나는 웹에서 설치하지 않고 SDKMAN! 이라는 SDK의 병렬 버전을 관리하기 위한 도구를 사용해서 Java를 설치했었다. Java_Home을 설정했다면 설치 경로를 확인 할 수 있다. SDKMAN 설치 방법 curl -s "https://get.sdkman.io" | bash zsh 사용자는 vi .zshrc , bash 사용자는 vi .bash_profile 파일에 아래 코드를 추가한다. export SDKMAN_DIR="$HOME/.sdkman" [[ -s "$SDKMAN_DIR/bin/sdkman-init.sh" ]] && source "$SDKMAN_DIR/bin/sdkman-init.sh" 그리고 아래.. 2022. 11. 21.
[JAVA] java 버전, maven(?) error 엄청난 에러가 발생하였다. 자바 버전 관련 설정파일을 들여다보다가 정말 그냥 들여다 보기만했는데 갑자기 설정 바뀌었는지 암코토 실행되지 않았다. ㅠㅠ 에러 발생 경위 해결 하고 보니 maven 문제였던것 같다. build path에서 maven Dependencies가 없었는데 해결 후에 다시 생겼다. Run As에 아래는 하나도 뜨지 않았었다. 나는 단지 properties 에서 Project Factes를 구경했을 뿐인데!! 이 창을 닫자마자 에러가 발생했다. 아마 내가 뭔가 Apply 했겠지..? 잘 기억 나지 않는다. 이렇게 치명적인 에러를 뿜을줄 몰랐거든 설정 파일을 건드릴땐 항상 조심하자. 해결방법 java version 확인 어..? 매우 높다 뭐든 잘 굴러갈것같다. 2. pol.xml에서 .. 2022. 7. 4.
[JAVA] Extends 와 Super 자바 코딩을 하다보면 무조건 보게 되는 extends 와 super 정확한 뜻을 몰라서 일단 되는 대로 썼지만.. 이제는 제대로 알고 넘어갈 때가 된것같다.! 아래와 같이 서로 다른 클래스들이 상속관계를 갖고 있다고 가정해보자. 1. , 2022. 6. 22.
[JAVA] 제네릭(Generic) 문득 강의를 듣다가 "제네릭 타입으로 지정해 줍니다" 라는 말을 정확하게 이해 하고 싶어서 포스팅을 하게 되었다. 너무너무 잘 정리되어 있는 블로그가 있어서 내용을 좀 많이 발췌해왔지만!! 나의 언어로 다시 써보도록 한다. 참고 블로그 : https://st-lab.tistory.com/153 자바 [JAVA] - 제네릭(Generic)의 이해 정적언어(C, C++, C#, Java)을 다뤄보신 분이라면 제네릭(Generic)에 대해 잘 알지는 못하더라도 한 번쯤은 들어봤을 것이다. 특히 자료구조 같이 구조체를 직접 만들어 사용할 때 많이 쓰이기도 하고 st-lab.tistory.com 1. 제네릭이란? 직역 하면 "일반적인" 이라는 뜻이다. "데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터.. 2022. 6. 21.