본문 바로가기

전체 글273

[ubuntu + node.js + pm2] 환경변수 설정했는데 안불러와져요! ~/.bashrc 파일에 아래 처럼 환경변수를 등록하여 확인함 => 정상 $export TEST=1234 $echo $TEST //1234 근데 pm2 로 띄운 프로세스에서 TEST 변수를 못읽는 현상이 발생함. 이는 이미 생성한 pm2 프로세스에도 업데이트한 환경변수가 반영이 안되어있어서 그랬던 것. "--update-env" 옵션으로 업데이트하여 해결 :) $pm2 restart all --update-env 2023. 6. 30.
[git] core sparse-checkout 기능 사용했다가 롤백한 이야기 사건의 전말 1. apple, banana, chocolate 디렉토리가 있는 레포지토리가 있음 2. apple 디렉토리는 A 서버에서 운영되고 3. banana 디렉토리는 B 서버에서 운영되고 4. chocolate 디렉토리는 C 서버에서 운영되고 있음 5. A, B, C 서버는 각각 서로 바라보지도 않는 다른 디렉토리를 가지고 있음 5번이 맘에 들지 않은게 시작이었습니다.. 구글링을 해보니 git 의 sparse-checkout 기능을 사용하면 원하는 디렉토리만 형상관리가 가능한 것 같더라구요. 제대로 알고 쓰는게 아니라 불안했지만 일단 사용해보았습니다. ## $ git init ## configuration $ git core.sparse-checkout true ## $ git remote add.. 2022. 12. 22.
[Java] Comparator 로 복잡한 정렬 비즈니스 녹여내기 오랜만에 올리는 게시글은 Java 8 의 Comparator 사용하여 복잡하고 null-safe 한 정렬 비즈니스를 녹였던 방법에 대한 정리 글이다. * 여기서 복잡하다는 건, 같은 정렬조건이면 한번 더 정렬 할 우선순위가 존재함을 뜻함 전제 조건 1. 정렬할 대상은 서울에 있는 (모든)학교 리스트다. ==> schools 2. 정렬조건 [1순위] 각 학교에 있는 도서관의 사서 선생님 연세 내림차순 ==> school > library > teacher.age (학교1:도서관1:사서쌤1 관계) [2순위] (나이가 같으면) 학교 seq 오름차순 3. 이때 학교 정보가 없을 수도 있고, 사서 선생님의 연세 또한 null 일 수 있다고 가정하자. 생각나는대로 적은 정렬 코드 모든학교리스트.sort( Compa.. 2022. 11. 21.
[Oracle, QueryDsl] SQL Error: 17059, SQLState: 99999 내부 표기로 변환할 수 없습니다 SQL Error: 17059, SQLState: 99999 java.sql.SQLException: 내부 표기로 변환할 수 없습니다 at oracle.jdbc.driver.CharCommonAccessor.getInt(CharCommonAccessor.java:139) at oracle.jdbc.driver.T4CVarcharAccessor.getInt(T4CVarcharAccessor.java:503) ... 오류 내용에 해답이 있다. QueryDsl Select Query 는 나갔으나 변환에 실패했고, stackTrace 에 `getInt` 가 찍힌걸 보아하니 형변환에 실패한거니 select 절에 mapping 된 Entity 분석.. 원인: Entity 에서 Enum Field 에 `@Enumer.. 2022. 9. 23.
[Docker] 도커에 대하여.. Docker 에 대해 정리하기 전에, DevOps 에 대해 얘기하고자 한다. DevOps: Development + Operations (개발 + 운영) 엔지니어가 개발에서 테스트, 배포, 운영에 이르기까지 전체 애플리케이션 수명 주기에 걸쳐 작업하고 단일 기능에 한정되지 않은 광범위한 기술을 개발합니다. -aws- "DevOps" 는 나에게 예전부터 눈에 밟히던 단어다. 나는 직장생활을 하면서는 항상 인프라팀이 있었고, (자주 하진 않지만) 사이드 프로젝트를 구현할 땐 인프라까지 구현해본적이 없었기에 솔직히 말하자면 나는 인프라에 대해 제대로 아는 게 없다. 그래서 DevOps 라는 단어는 대단하고, 두려운 느낌을 주었다. 그치만 요즘 들어서는 '얉은 지식이라도 알아두는 게 좋다' 라는 생각을 가지고 .. 2022. 8. 27.
[ubuntu] Error: NJS-045: cannot load the oracledb add-on binary .../node_module/oracledb/lib/oracledb.js:46 throw new Error(nodbUtil.getErrorMessage('NJS-045'); Error: NJS-045: cannot load the oraacledb add-on binary at Object. (/...) Error: NJS-045: cannot load the oracledb add-on binary 개요 ubuntu 환경에서 oracle-instantclient 설치 후 oracle db 연결 시 해당 오류 발생 환경 node version: v8.11.4 ubuntu version: 20.04LTS oracle-instantclient version: 12.1.0 해결 oracle-instantcli.. 2022. 6. 17.
[ubuntu] Error: libmq11.so: cannot open shared object file: No such file or directory Error: libmq11.so: cannot open shared object file: No such file or directory 개요 : ubuntu 환경에서 oracle-instantclient 설치 후 db 붙는 로직에서 위와 같은 오류를 만났다. 해결 : oracle guide 에 나와있듯이 특정 환경변수를 설정해주면 된다. $ export LD_LIBRARY_PATH=/usr/lib/oracle/18.3/client64/lib:$LD_LIBRARY_PATH $ export PATH=/usr/lib/oracle/18.3/client64/bin:$PATH 2022. 6. 17.
could not target platform 'java se 11' using tool chain 'jdk 8 (1.8)' could not target platform 'java se 11' using tool chain 'jdk 8 (1.8)' gradlew AWS EC2 에 올린 인스턴스에 ssh 연결하여 테스트 코드를 돌렸는데, 위와 같은 오류를 만났다. [ec2-user@ip-...]$ ./gradlew test 오류 내용은 너무나도 명백해서 상황에 맞게, 편한 방법으로 수정하면 된다. JDK 11 문법을 사용하지 않은 레포지토리라면 target version 을 1.8 로 변경한다. JDK 11 문법을 사용하거나 11 버전으로 테스트를 돌리고 싶다면, JDK 11 로 버전을 올려주자. 1번 build.gradle 파일에서 아래 부분을 1.8 버전에 맞춰 수정하자. sourceCompatibility = 1.8 ta.. 2022. 5. 16.
[Gradle] Unable to find method ''java.lang.String org.gradle.api.artifacts.result.ComponentSelectionReason.getDescription()'' Unable to find method ''java.lang.String org.gradle.api.artifacts.result.ComponentSelectionReason.getDescription()''. Possible causes for this unexpected error include: Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.) Re-download dependencies and sync project (requires network) The state of a Gradle build process (daemon) may be corrupt. Stoppi.. 2022. 2. 4.