eta_kyung.blog

모든 기록

6 / 14 페이지
·5분

Codex CLI - 우분투에서 device-auth 로그인하기

1. 개요 우분투 서버에 Codex CLI를 설치한 뒤 ChatGPT 계정으로 로그인하려고 했는데, 브라우저를 자유롭게 사용할 수 없는 환경이라 로그인 과정에서 막힌 적이 있다. 이럴 때 codex login device auth 명령을 사용하면 장치 코드 방식으로 인…

·16분

스프링 핵심 원리 (15) - 빈 스코프

1. 개요 지금까지 다룬 스프링 빈은 모두 컨테이너가 시작될 때 생성되어 종료될 때까지 유지되는 싱글톤이었다. 하지만 스프링은 이 외에도 빈이 살아있는 범위, 즉 스코프를 다양하게 지정할 수 있게 해준다. 특히 매번 새 인스턴스가 필요한 프로토타입 스코프를 싱글톤 빈과…

·4분

Python (1) - 우분투에서 가상환경(venv) 구성하기

1. 개요 파이썬 프로젝트를 여러 개 다루다 보면 프로젝트마다 필요한 패키지 버전이 다른 경우가 생긴다. 시스템에 설치된 파이썬 하나에 모든 프로젝트의 패키지를 전역으로 설치하면 프로젝트 간 버전 충돌이 나기 쉽고, 최근 우분투는 시스템 파이썬 환경을 pip로 직접 건…

·13분

Docker (11) - Dockerfile 명령어 심화와 빌드 실습

1. 개요 Docker (4)에서 FROM, WORKDIR, COPY, RUN, ENV, EXPOSE, CMD로 이어지는 Dockerfile의 기본 골격과 멀티 스테이지 빌드를 다뤘다. 이번 글에서는 그때 다루지 않았던 나머지 명령어들(ENTRYPOINT, ADD, V…

·8분

Docker (10) - 브릿지 네트워크와 다중 컨테이너 연동

1. 개요 컨테이너는 기본적으로 호스트나 다른 컨테이너와 격리되어 있는 독립된 실행 환경이다. Docker(5)에서 사용자 정의 네트워크로 컨테이너끼리 이름으로 통신하는 방법을 다뤘는데, 이번 글에서는 그 배경이 되는 기본 브릿지 네트워크의 동작 원리 와, 포트포워딩이…

·9분

스프링 핵심 원리 (14) - 빈 생명주기 콜백

1. 개요 DB 커넥션 풀이나 네트워크 소켓처럼 외부 자원을 다루는 빈은 "애플리케이션이 뜰 때 연결하고, 종료될 때 끊는" 작업이 필요하다. 그런데 이 연결 작업을 생성자에 그냥 넣으면 문제가 생긴다. 스프링 빈은 객체가 먼저 만들어지고 그 다음에 의존관계(필드 값)…

·6분

Docker (9) - Docker Hub 이미지 배포 테스트

1. 개요 직접 만든 이미지( etakyung/for docker java:latest )를 Docker Hub에 올려두기만 하고 끝내면, 이게 다른 환경에서도 제대로 동작하는지는 알 수가 없다. 그래서 이번에는 로컬에서 이 이미지를 다시 pull 받아, MySQL 컨…

·10분

Docker (8) - 볼륨 마운트와 바인드 마운트

1. 개요 컨테이너 내부에 저장된 데이터는 컨테이너의 생명주기를 그대로 따라간다. 즉 컨테이너가 삭제되면 그 안에 쌓아둔 데이터도 함께 사라진다. DB 데이터처럼 컨테이너가 없어져도 유지되어야 하는 데이터가 있다면, 별도의 저장 매커니즘으로 데이터의 영속성을 확보해야…

·9분

Docker (7) - 컨테이너 생명주기와 실행 옵션 정리

1. 개요 Docker(2)에서 docker run 으로 컨테이너를 간단히 띄워봤지만, 실제로는 컨테이너가 어떤 상태를 거쳐 살아있고 사라지는지, run 의 옵션들이 각각 무엇을 하는지, 컨테이너 내부와 파일을 어떻게 주고받는지를 알아야 제대로 다룰 수 있다. 이번 글…

·3분

Docker (6) - 이미지를 파일로 저장하고 관리하기

1. 개요 지금까지는 이미지를 항상 Docker Hub 같은 레지스트리에서 pull 로 받아서 사용했다. 그런데 인터넷이 안 되는 폐쇄망이거나, 레지스트리를 거치지 않고 이미지를 바로 다른 서버로 옮기고 싶을 때는 이미지를 파일(tar)로 통째로 내보내고 다시 불러오는…