자바

IntelliJ IDEA – 파일 인코딩 설정 방법

사진: Unsplash의Markus Spiske IntelliJ는 파일을 열 때 아래의 순서로 인코딩을 적용한다.  Byte Order Mark가 있는 경우 해당 인코딩을 적용한다.  XML, HTML, JSP 등에 파일 인코딩 선언이 있는 경우 선언된 인코딩을 적용한다.  settings에 정의한 인코딩을 적용한다.  개발을 하다 보면 하나의 프로젝트에서 UTF-8, MS949, EUC-KR 등 여러 인코딩이 적용된 파일을 다루기도 해야 한다. 요즘은 프로젝트 설정이 대부분 […]

기타 개발

Docker Compose 활용 팁

사진: Unsplash의Adrià Crehuet Cano “컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커“에서 작동 중인 컨테이너의 설정을 변경할 수 없는 이유를 배웠다.  도커 컨테이너는 변경 불가능한 인프라(immutable infrastructure)를 지향합니다. 변경 불가능한 인프라는 초기에 인프라를 구성하면 임의로 디렉토리 연결이나 포트 노출과 같은 설정을 변경할 수 없습니다. 따라서 컨테이너에 적용된 설정을 변경하려면 새로운 컨테이너를 생성해야 합니다. 이러한 특성 덕분에 컨테이너로

기타 개발

Java DB (Apache Derby) 이야기

사진: Unsplash의Anukrati Omar 노트북에 설치한 JDK 버전은 1.8.0_202, Java DB를 찾아보니 없다. ‘왜 없지?’ 하는 생각에 ChatGPT에 물어봤다. JDK 7 이후부터 빠졌다고 한다. 이상하다. JDK 1.8.0_162 버전에서 사용한 기억(기록)이 있다.  오라클 사이트에서 확인해 보니 2018년 7월 17일 패치부터 JDK 7과 JDK 8에서 제거되었다고 나온다. As announced in June 2015, JavaDB is no longer included in

기타 개발

Apache Derby – 외부 접속, 계정 생성, 백업/복원 방법

사진: Unsplash의Mitchell Griest 오랜 만에 Apache Derby를 사용했다. Docker에 설치하고 보니, 이런 저런 허들이 있었다.  Docker 외부에서 Derby에 접속을 할 수 없었고,  사용자 계정을 만드는 방법을 몰랐고,  백업과 복원하는 방법을 몰랐다.  Docker 외부에서 Derby에 접속하는 방법 Derby를 실행할 때 호스트 옵션을 추가한다.  1 –h 0.0.0.0 cs 관리자, 사용자 계정을 만드는 방법 관리자 계정은 ij에 접속하여 DB를

기타 개발

[Docker] ERROR: Pool overlaps with other one on this address space

사진: Unsplash의Sigmund docker-compose를 실행할 때 에러가 발생했다. 1 2 3 4 c:PlutoDocker_Install>docker–compose up –d Creating network “pluto_install_default” with driver “bridge” ERROR: Pool overlaps with other one on this address space c:PlutoDocker_Install> Colored by Color Scripter cs 해결 방법은 기존 Docker Network를 삭제하는 것이다. 1 2 3 4 5 6 7 c:PlutoDocker_Install>docker network prune WARNING! This will remove all custom networks not used by at least one container. Are you sure you want to continue? [y/N] y Deleted Networks: mercury_network venus_network c:PlutoDocker_Install> Colored by Color Scripter cs 그리고 docker-compose를 다시 실행하면 된다. 1 2 3 4

책 읽기

돈과 운의 법칙

왜 읽었냐하면 이런 종류의 책에는 관심이 없지만, 가까운 사람의 강력 추천으로 읽게 되었다.  읽는 내내 머릿속을 맴돌던 의문 기억나는 대로 책의 내용을 짚어보면 운에 대해 이렇게 이야기한다.  운이 잘 풀리는 시기가 있다.  운이 잘 풀리는 시기에 일을 벌이면 성공한다.  어디에서 어떤 일을 벌이는지에 따라 그릇의 크기는 달라진다.  운이 풀리지 않는 시기에 일을 벌이면 망하는 지름길이다. 

책 읽기

최소 노력의 법칙

왜 읽었지? 산적한 문제들, 저마다 먼저 해결해 달라고 아우성치는 것 같다. 여지없이 흐르는 시간 속에서 꾸역꾸역 처리해 나가고 있는 상황이다. ‘좀 피곤하다’ 싶은 기분이 들었는데, 이 책이 눈에 띄었다. 동시에 ‘공부에 왕도는 없다’라는 말이 떠올랐다. 그래도 속는 셈 치고 읽어 보기로 했다. 하나라도 건지면 좋겠다는 심정이었다.  엄친아 엄친아 사례 모음집인 줄 알았다. 모든 이야기가 한결같다.

기타 개발

도커 컨테이너에서 호스트의 서비스 포트에 접속하는 방법

사진: Unsplash의Venti Views 상황 노트북(윈도 10)에 Docker Desktop을 설치하여 여러 Container를 돌리고 있다.  노트북에 설치한 IntelliJ IDEA에서 자바로 테스트용 소켓 서버를 작성했다.  Docker Container에서 테스트용 소켓 서버로 데이터를 보내야 한다.  방법 Docker Container에서 호스트를 목적지로 하는 방법은 간단하다. IP 대신 아래 2개의 DNS 이름을 사용하는 것이다.  host.docker.internal gateway.docker.internal 어떻게 가능할까? Docker Desktop이 노트북의 hosts 파일에

자바

TomEE + IntelliJ IDEA – DataSource 설정 방법

사진: Unsplash의Jari Hytönen 상황 Eclipse와 IntelliJ IDEA에서 여러 애플리케이션을 개발하고 있다.  J2EE 서버로는 TomEE를 사용하고 있다.  여러 애플리케이션은 서로 다른 DataSource를 사용하고 있다.  문제 TomEE는 하나만 설치하고 모든 애플리케이션이 공동으로 사용하고자 한다.  공동으로 사용하는 TomEE에 개별 애플리케이션을 위한 설정을 넣고 싶지 않다.  IDE에서 개별 애플리케이션을 위한 DataSource를 설정할 수 있을까?  방법 IDE 내에 있는 개별

기타 개발

JMeter, 원격 분산 테스트 수행 방법

구성도 Controller 역할 Worker들의 시작과 종료를 관리한다.  Worker들의 테스트 결과를 수집한다.  Worker 역할 부하를 발생시킨다.  2-3GHz CPU 기준 1,000에서 2,000 쓰레드가 적당하다.  테스트 결과를 Controller로 보낸다.  실행방법 성능테스트는 CLI 모드에서 실행한다.  Worker 노드에 있는 JMeter 들을 server 모드로 실행한다.  1 2 3 4 [pluto@pluto jmeterWorker1]$ SERVER_PORT=2001 ./jmeter-server Created remote object: UnicastServerRef2 [liveRef: [endpoint:[192.168.100.11:35825](local),objID:[-30cxxx5a:188xxxx9e1a:-7fff, 106xxxx542xxx03868]]]   Colored by Color Scripter cs 기본 포트(1099)를 다른 프로그램이

위로 스크롤