개발

자바, 파이썬 중심의 실무 개발 기록과 도구 활용, 회고 및 기타 기술들을 정리합니다.

파이썬

Python 개발환경 쉽게 옮기는 방법 (feat. Anaconda Cloud)

새 컴퓨터에 Python 개발환경을 만들어야 할 때, Anaconda Cloud를 사용하면 시간을 절약할 수 있다. 요약하면 다음과 같다.  기존 컴퓨터에서 Python으로 만들어 놓은 가상환경들을 Anaconda Cloud에 Backup 한다.  새 컴퓨터에 Anaconda를 설치하고, Anaconda Navigator를 실행한다. Import를 클릭하여 Cloud에 Backup한 가상환경을 가져온다.  조금 더 자세히 정리하면 아래와 같다.  1. [기존 컴퓨터] Anaconda Navigator를 실행한다.  2. [기존 컴퓨터] […]

자바

Tomcat, TomEE, Spring Framework 버전 별 스펙 정리

사진: Unsplash의Nathan Dumlao 느린 소식 하나 Java Enterprise Edition이 오라클에서 이클립스 재단으로 넘어갔다. 그리고 패키지 경로가 javax.* 에서 jakarta.* 로 변경되었다. Tomcat, TomEE, Spring Framework를 사용한다면 사전에 버전별로 스펙을 확인하고 적용하자.  Apache Tomcat 버전 별 스펙 Apache TomEE 버전 별 스펙 Spring Framework 버전 별 스펙

기타 개발

Tizen Studio, Emulator 실행 오류 조치 방법

사진: Unsplash의傅甬 华 요약 (인텔 CPU 기준) CPU가 가상화를 지원하는 모델인지 확인한다.  CPU가 가상화를 지원하는 경우, BIOS에서 가상화 기능을 활성화 시킨다.  Windows 기능 중 Hyper-V, Windows 하이퍼바이저 플랫폼, 가상 머신 플랫폼을 비활성화 시킨다.  Tizen Studio: Emulator 실행 오류 Cannot initialize HAX. Failed to open the HAX device. It might not be installed. Please try to install

자바

ContentCachingRequestWrapper 사용 방법

사진: Unsplash의Jørgen Håland Servlet에서 사용된 request와 response 복원 방법 Servlet에서 사용한 HttpServletRequest와 HttpServletResponse의 content는 다시 꺼내서 사용할 수 없다.  Servlet 호출을 수행한 후에 AOP에서 request와 response의 content를 다시 확인하고 싶으면 어떻게 해야 할까? 스프링 프레임워크에서 제공하는 ContentCachingRequestWrapper와 ContentCachingResponseWrapper를 이용하여 Servlet Filter를 추가하면 가능하다. 필터를 적용하면 request와 response의 content는 서블릿에서 사용된 후에, byte 배열로 복원할 수

자바

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 파일에

위로 스크롤