no image
[IDE] pyCharm, pyenv, poetry 환경에서 저장소 SSL 사용 해제
pypi 저장소 이용 시와 번외로 https 가 명시되어 있는 외부 API 호출 시 경우로 나누었다. 아래의 글은 MacOS 기준으로 작성했다. 배경사내 SSL 암복호화 때문에 인증서를 따로 사용하는데 이 경우 아래와 같은 오류 코드들을 만나게 되었다.certificate verify failed: unable to get local issuer certificatecertificate verify failed: self-signed certificate in certificate chain해결pypi 저장소 이용 시pyCharm따로 건드려야 하는 설정은 없다.pyenv, virtualenv가상환경에 있는 pip 의 설정 파일(pip.conf)을 추가하거나 내용을 수정해서 해결 가능하다.만약, 해당 파일..
2025.03.12
no image
[IDE] Jetbrains 에서 웹 브라우저 로드가 되지 않을 때
개발을 할 때 Chrome 보다는 Firefox 가 더 편해서 주로 사용하고 있긴 한데, 그 중에서도 Firefox Developer Edition 을 사용한다.일반 Firefox 와는 다르게 다른 경로를 가지고 있기도 해서 Jetbrains 에서 Firefox 브라우저 이용 시 실행이 되지 않는 경우가 있다. 이럴 경우, Settings 창을 연 다음 좌측 메뉴에서 Tools > Web Browsers and Preview 로 들어가면 브라우저별로 열 수 있는 목록이 나온다. 나 같은 경우에는 MacOS 를 사용하고 있어서 직접 경로를 설정해주어야 했는데 MacOS 의 경우 Firefox Developer Edition 은 아래와 같은 경로에 설치되어 있었다. /Applications/Firefox D..
2025.03.12
no image
[GIT] GitLab 에서 Renovate 를 이용하여 자동으로 의존성 버전을 관리해보자
소개Renovate 는 쉽게 말하면 자동화된 의존성 업데이트 도구다. GitHub 로 따지자면 dependabot 같은 역할로 보면 된다.해당 도구로 의존성 버전을 자동으로 관리해주게 하여 보안 이슈 등으로 인한 라이브러리 버전 업데이트 발생 시 개발자가 버전을 관리하는 부분을 어느 정도 신경쓰지 않도록 도와준다. dependabot의 경우 GitHub을 built-in 의존하는 부분이 있지만, renovate 의 경우 멀티 플랫폼 및 여러 언어에서 동작할 수 있도록 지원하며 커스터마이징도 쉽다. (봇 비교 문서)GitLab 의 경우, https://gitlab.com/renovate-bot/renovate-runner 를 통해 사용할 수 있으며 해당 저장소에서 제공하는 템플릿 파일을 통해 renovat..
2024.12.30
no image
[Linux] Mac Apple 실리콘에서 PHP7 이하, Composer, OCI8, xdebug 설치하기
ZShell, Rosetta 가 이미 설치되어 있는 환경이라고 가정한다.Homebrew (x86 환경) 설치$ arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"아키텍처에 따라 Homebrew 의 설치되는 경로가 다르다.애플 실리콘 - /opt/homebrew인텔 - /usr/local/opt따라서 기존 Homebrew 와의 경로가 서로 겹칠 일이 없으니 신경쓰지 않아도 된다. 나중에 아키텍처 바꿔서 Homebrew 실행해야 할 때 편하게 실행할 수 있도록 ibrew 라는 이름으로 별칭을 정해주자.먼저 아래처럼 .zshrc 를 연 다음$ vi .zshrcalias..
2024.12.30
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
[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 ENAM..
2024.03.11