no image
[Spring] Gradle 캐시 적용으로 CI 파이프라인과 빌드를 빠르게 하기
$GRADLE_USER_HOME아래 내용을 이해하려면 이 환경 변수를 우선 알고 있어야 한다.Gradle 은 GRADLE_USER_HOME 이라는 환경 변수를 지원하여 사용자가 직접 지정하여 이용할 수 있도록 지원해주고 있다. 이 환경 변수에는 단순히 폴더 경로만 지정해주면 되는데 이 환경 변수는 전역 설정 property, 초기화 스크립트, 캐시, 로그 파일 등을 저장하는 용도로 쓰인다.GRADLE_USER_HOME 이라는 환경 변수를 읽지 못했을 때는 사용자 홈 디렉토리의 .gradle 폴더를 바라본다. 프로젝트 저장소의 .gradle 폴더와는 다르기 때문에 혼동하면 안 된다. Wrapper 및 의존성Wrapperhttps://docs.gradle.org/current/userguide/gradle_..
2024.11.15
no image
[Spring] OpenFeign @SpringQueryMap 사용 시 별도 파라미터로 사용하기
어떤 API 에 쿼리 파라미터로 전달해야 하는 항목 중 파라미터를 다르게 전달해야 하는 경우가 있다고 생각해보자.예를 들어, keywordType 을 keyword_type 이라는 이름으로 전달해야 하는 상황이라고 생각해보자. @SpringQueryMap 을 사용하면 아래와 같이 작성할 수 있을 것이다.@FeignClientpublic interface MemberApiClient { @GetMapping(value = "/users") UserResponseDto userSearch(@SpringQueryMap UserRequestDto request);}@Builder@Getterpublic class UserRequestDto { @Builder.Default private U..
2024.11.15
no image
[여행] 거제도 여행 (10/09 ~ 10/10, feat. Nikon Zf)
NIKON ZF와 NIKKOR Z 28-120mm f/4 S, NIKKOR Z 35mm f/1.8 S 렌즈를 챙기고 갔다.원래 혼자 가려고 했으나 일행이 늦게 추가되어 두 명이서 여행을 가게 되었다. 거제도 내에서 이동할 수단은 대중 교통으로 타고 다니려고 했으나 버스의 배차 간격이 어마무시해서 쏘카 렌트카를 빌려 차를 타고 다니는 것으로 했다. 수원에서 진주로 갔다가 냉면을 먹고, 진주에서 거제고현터미널까지 해서 실제로 거제도에 도착하기까지 매우 오랜 시간이 걸렸다. 직접 운전하면서 스터번 호텔에 먼저 짐을 놓고 나섰다. 해당 호텔은 뒷 장소에 전용 주차장이 있는데 사람들이 잘 모르는 것 같아 늦은 시간에 주차해도 아주 널널해서 매우 편하게 이용할 수 있었다. 오션뷰여서 창문 밖으로 보이는 방 안은 좋..
2024.11.01
no image
[Linux] Mac 에서 python 2 설치하기 (Homebrew + pyenv)
1. pyenv 설치 $ brew install pyenv ==> Auto-updating Homebrew... Adjust how often this is run with HOMEBREW_AUTO_UPDATE_SECS or disable with HOMEBREW_NO_AUTO_UPDATE. Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`). ==> Auto-updated Homebrew! Updated 3 taps (shivammathur/php, homebrew/core and homebrew/cask). ==> New Formulae dissent ==> New Casks lookaway loungy You have 16 outdated f..
2024.03.29
no image
[회고] 멀티모듈 고군분투 회고
처음에 Java Spring 프로젝트를 다룰 때 모듈화에 대해 어렴풋이 알고는 있었다. 다만, 당시에는 생소한 개념이었고 이해하기 어려웠었다. 프로젝트를 만들 때 멀티모듈을 어떻게 만들어야 하는지부터 Github나 블로그 등을 엄청 찾아다녔다. 우아한형제들의 블로그에서도 멀티모듈에 대한 설계 게시글이 있어서 어떻게 의존성의 범위를 설정하고 프로젝트 설계를 했는지 구체적으로 설명이 되어 있는 게시글도 찾아보고 그랬지만, 처음부터 잘 모르는 상태에서 이를 실천하다간 나중에 어려워 질것 같아서 단일 모듈로 시작했었다. 프로젝트를 만들어서 실제 서비스에 적용하고 팀원들이 Java Spring 프로젝트들을 하나씩 만들다 보니 저장소도 늘어나기 시작했는데 설정이나 Entity, 클라이언트 등 중복되는 클래스들이 계..
2024.03.13
no image
[DB] Oracle PIVOT 사용 방법 및 조회 시 성능 주의사항
Oracle의 PIVOT 문법은 Oracle 11g부터 지원하는 기능으로 행을 열로 변환하여 사용할 수 있게 도와준다. SELECT ( 출력컬럼 ) FROM ( PIVOT 대상 쿼리문 ) PIVOT ( 집계함수(집계컬럼) FOR 컬럼 IN (컬럼값 AS 별칭 ... ) FROM절에 대상이 되는 테이블의 모든 컬럼은 GROUP BY의 대상이 된다. PIVOT문에 가로로 출력할 컬럼은 가로로 나열할 때의 GROUP BY의 대상이 된다. 집계함수에 사용되는 컬럼은 집계 대상이므로 GROUP BY 대상에서 제외되고 나머지 컬럼들은 세로로 나열할 때 GROUP BY 대상이 된다. 예를 들면 EMP 테이블에 아래와 같은 데이터가 있다고 하자 아래처럼 질의문을 작성하고 SELECT * FROM ( SELECT ENA..
2024.03.11
no image
[JPA] Querydsl LocalDateTime 에서 Date 로 변환할 때 오류나는 경우 (feat. Oracle)
@Entity@Table(name = "SOME_ENTITY")public class SomeEntity { @Id @Column(name = "id") private Long id; @Column(name = "created_at") private LocalDateTime createdAt;}@Getter@Builder@NoArgsConstructor@AllArgsConstructorpublic class SomeDto { private LocalDateTime createdAt;}위와 같은 Entity와 결과를 받아올 클래스가 있다고 가정하자.여기서 Querydsl의 Projections.field를 이용하여 createdAt 이라는 값을 select 한다고 해보자. 그러..
2024.03.06
no image
[DB] Oracle 날짜 계산 시 INTERVAL 보단 ADD_MONTHS 를 사용하자
회사에서 INTERVAL을 사용하는 쿼리 때문에 장애가 발생해서 남기는 글이다. Oracle에서 날짜를 더하거나 뺄 때 두 가지 방법이 있는데 하나는 INTERVAL을 사용하는 것이고, 다른 하나는 ADD_MONTHS를 사용하는 것이다. INTERVAL은 아래와 같이 사용할 수 있다. SELECT SYSDATE - (INTERVAL '1' YEAR) , SYSDATE + (INTERVAL '1' YEAR) , SYSDATE + (INTERVAL '1' MONTH) , SYSDATE + (INTERVAL '1' DAY) , SYSDATE + (INTERVAL '1' HOUR) , SYSDATE + (INTERVAL '1' MINUTE) , SYSDATE + (INTERVAL '1' SECOND) FROM ..
2024.03.04
no image
[회고] 2023년
이번 년도는 개인적으로 회사 프로젝트는 약간 아쉬움이 있었지만 나쁘지 않은 경험이었고, 취미 생활로 하는 악기 연주에서는 많은 사람들 앞에서 연주회를 2번이나 하였는데 주목도 받고 인기(?)도 많아져서 보람은 있는 해였던 것 같다. 회사에서는 2023년 처음부터 다른 팀으로 가서 내가 해보지 않은 경험도 해보고 싶다고 이사님에게 요청했었다. 팀 이동을 요청했고 결국 기다리라고 답변을 받았으나 1년이 지나도록, 2024년 현재 지금까지 아무 이야기도, 면담도 없었다. 연봉 협상도 원래부터 통보식이었으나 나 뿐만이 아닌 다른 사람들도 윗 사람과 같이 대면하는 자리조차도 없었다. 이번에 담당 임원이라는 제도가 생기면서 따로 개발 이사님에게 전달할 기회가 생겼었고, 이 기회를 통해 합리적인 이유를 들어 2024..
2024.01.01