본문 바로가기

Java8

[Java] JGit Progress Monitor 퍼센트 Slf4j 로거로 출력하기 JGit JGit은 git protocol을 Java에서 사용할 수 있게 하는 라이브러리다. JGit is an EDL (new-style BSD) licensed, lightweight, pure Java library implementing the Git version control system https://www.eclipse.org/jgit/ 개인적으로 업무상 자주 사용할 일이 많은데, 은근히 로깅 처리할 일 이 많을때 git clone 진행상태를 실시간으로 확인할 수 있게 설정해 놓으면 훨신 시간가늠이 편하고 디버깅 하기 쉽기 때문에 주로 설정해놓는 편이다. 👉 그래서 오늘은 Progress Monitor 를 생성하여 Slf4j 로거를 통해 진행현황을 출력시키는 방법을 적어보려고 한다. ^^ .. 2022. 4. 26.
[Java] 함수를 매개변수로 전달하기 중복되는 형태의 코드가 있을 때 모듈화를 하고 싶은 마음이 생긴다. 하필 모듈화를 해야할 부분에서 내부 클래스의 내부 함수를 사용하는 경우에, 어떻게 따로 모듈화를 할지 어렵게 느껴질 수 있다. 이런 경우 java.lang.reflect.Method 를 이용해서 사용할 함수를 다른 함수의 파라미터로 전달해 해결할 수 있다. 다음은 ID를 생성해 DB에 저장하기 전에 중복을 방지하는 코드이다. //ID 생성 String id = String.valueOf(UUID.randomUUID()); while (true) { // 혹시나 있을 중복 아이디 제거 if (getById(id) != null) id = String.valueOf(UUID.randomUUID()); else break; } 기존코드 다음처.. 2021. 4. 8.
[Lombok] 경고 해결하기 @EqualsAndHashCode - 경고문구 Generating equals/hashCode implementation but without a call to superclass, even though this class does not extend java.lang.Object. If this is intentional, add '@EqualsAndHashCode(callSuper=false)' to your type. - 경고의 의미 Lomok 의 @Data 는 @ToString, @EqualsAndHashCode, @Getter, @Setter 및 @RequiredArgsConstructor 를 한번에 생성시켜주는 어노테이션이다. 주로 모든 Model들에 @Data 어노테이션을 추가하게되는데, 상속받은 클래스의 경우 위 경고 메세.. 2021. 4. 7.
[스프링] Page 사용법 페이지 리스폰스용 오브젝트로 스프링의 Page 사용법 org.springframework.data.domain.Page 도큐먼트 보기 Page는 Pageable로 리퀘스트가 들어와 리스폰스로 결과값을 전달할 때 사용할 수 있는 오브젝트다. @Query annotation을 사용하는 것이 이 오브젝트의 의도인 것 같다. 쿼리문만 넣어주면 다음과 같이 손쉽게 페이징 처리를 할 수 있는 장점이 있는 것 같다. //컨트롤러 public ResponseEntity findUserByName(String name, Pageable pageable) { Page result = memberRepository.findByUsername( name, pageable); //... } //생성할 JPA repository.. 2021. 3. 24.
[Java] Map 을 String 으로 바꾸기 Guava를 이용한다 www.baeldung.com/guava-joiner-and-splitter-tutorial 2021. 2. 9.
Visual Studio Code로 Java 스프링 코딩하기 다음 확장 기능을 설치하면 된다. 1. Language support for Java TM for Visual Studio Code (redhat.java) 2. Java Extension Pack (vscjava.vscode-java-pack) 3. Debugger for Java (vscjava.vscode-java-debug) 4. Spring Boot Support (Pivotal.vscode-spring-boot) 5. Maven Project Explorer (vscjava.vscode-maven) 2020. 12. 17.
[프로그래머스][Java] 기능 개발 programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 쉬운 문제다. 순회를 하면서 앞에 자기보다 작업시간이 더 길거나 같은 작업이 있으면 보류되고, 없다면 앞선 작업을 배포시키면 된다. 먼저 progresses와 speeds값으로 쉽게 각 작업별 작업시간을 구할 수 있다. getWorkDays 함수를 만들어 readability를 높인다. getWorkDays(int progress, int speed) progress:.. 2020. 11. 29.
[프로그래머스][스택/큐][JAVA] 주식가격 [프로그래머스][스택/큐][JAVA] 주식가격 스택으로 풀기 programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 순회를 하면서 자신보다 뒷쪽에 자신보다 더 작은값의 위치가 어디인지만 알면된다. 따라서 뒤에서부터 순회하면서 앞의값보다 작은 값들의 위치를 스택에 쌓아 기억하는 것이 핵심이다. 맨 마지막 숫자의 답은 무조건 0이니 그 전 숫자부터 순회한다. 순회를 하면서 다음과 같이 액션해주.. 2020. 11. 28.