[Docker] Docker 초보 탈출! 명령어 총 정리
·
Dev/Docker
initDocker는 컨테이너 기술을 활용해 애플리케이션을 효율적으로 배포, 실행, 관리할 수 있는 강력한 도구입니다. 하지만 처음 접하면 방대한 명령어들 때문에 어디서부터 시작해야 할지 막막할 수 있죠. 그래서 이번 글에서는 Docker를 효과적으로 활용하기 위해 꼭 알아야 할 명령어들을 카테고리별로 정리했습니다.1. Docker 이미지 관리 (Manage Images)Docker 이미지는 컨테이너를 실행하기 위한 기반이 됩니다. 이미지를 잘 관리하면 작업 효율을 크게 높일 수 있습니다.`docker image ls`: 현재 시스템에 저장된 Docker 이미지 목록을 확인합니다.`docker image rm `: 필요 없는 이미지를 삭제하여 저장 공간을 절약합니다.ex) docker image rm `..
[Docker] 컨테이너 라이프 사이클 & CLI
·
Dev/Docker
init 컨테이너는 애플리케이션을 실행하기 위한 가볍고, 독립적이며, 이식 가능한 환경을 제공합니다. 도커(Docker)와 같은 컨테이너 플랫폼을 사용하면 애플리케이션의 빌드, 배포, 실행 과정을 표준화할 수 있습니다. 이 글에서는 컨테이너 라이프 사이클과 CLI 명령어를 통해 이를 어떻게 관리할 수 있는지 자세히 알아보겠습니다. 컨테이너 라이프 사이클 이해하기컨테이너의 라이프 사이클은 생성(Create)부터 종료(Remove) 까지 일련의 단계를 포합니다. 도커 이미지가 컨테이너로 생성될 때의 전체적인 라이프 사이클은 아래 그림과 같습니다.   Docker 컨테이너 상태 흐름Create → Destroy: 컨테이너 생성 후 바로 삭제.Create → Start → Stopped → Destroy: 생성..
[Docker] Docker Compose 설치 & 개념 정리
·
Dev/Docker
도커 컴포즈란? Docker Compose는 단일 호스트 환경에서 여러 개의 컨테이너를 한 번에 정의하고 관리할 수 있는 도구입니다. 개발 환경에서 여러 개의 서비스를 쉽게 실행하고 연결할 수 있도록 도와줍니다. 예를 들어, 하나의 애플리케이션을 실행하려면 데이터베이스, 웹 서버 등 여러 개의 서비스를 각각 설정하고 실행해야 하는 번거로움이 있다. 하지만 Docker Compose를 사용하면 이러한 서비스들을 한 번에 실행하고 손쉽게 관리할 수 있다.도커 컴포즈 사용 목적사용 목적설명일관된 환경 제공하나의 YAML 파일에서 여러 컨테이너를 정의하고 실행하여 복잡한 설정 과정을 단순화할 수 있음.팀 협업 최적화공유 가능한 설정 파일을 통해 개발 환경을 통일하고, 협업 시 일관된 환경을 유지할 수 있음.다중..
[Docker] Docker 기초 이론
·
Dev/Docker
init과거에는 애플리케이션을 다양한 환경에 배포하기 위해 각 환경별로 수동 설정을 해야 했으며, 종속성 문제와 버전 충돌을 해결하는 데 많은 노력이 필요했습니다. 이 과정에서 발생하는 오류는 흔한 일이었고, 개발팀과 운영팀 간의 원활한 협업을 방해하는 주요 요인이 되었습니다. 특히, 대규모 시스템에서는 이러한 복잡성이 더욱 두드러졌습니다. 그러나 Docker의 등장은 이러한 문제를 해결하는 데 있어 새로운 돌파구를 제시했습니다.컨테이너화 기술을 기반으로 한 Docker는 개발과 운영의 효율성을 획기적으로 개선하고, 애플리케이션의 이식성과 관리 편의성을 한층 높였습니다. 덕분에, 복잡한 환경 설정 없이도 일관된 실행 환경을 보장할 수 있게 되었고, 개발자들은 빠르고 안정적인 소프트웨어 배포를 실현할 수 ..
[Docker] 포테이너(Portainer) 설치 & 개념 정리
·
Dev/Docker
init도커를 쉽게 관리할 수 있는 방법은 Portainer를 이용하는 것입니다. Portainer란 Docker 환경을 쉽게 관리할 수 있도록 도와주는 웹 기반의 GUI 관리도구 입니다. 이번 포스팅에서는 Portainer의 개념을 정리하고, Ubuntu 24.04.1 LTS 환경에서 Portainer를 설치하는 방법을 작성하려 합니다.포테이너란?Portainer는 컨테이너 관리의 복잡성을 줄이기 위해 설계된 경량의 도구입니다. 이를 통해 사용자는 실행 중인 컨테이너, 설치한 이미지, 볼륨 등의 상태를 직관적으로 확인할 수 있으며, 몇 번의 클릭만으로 컨테이너의 상태를 변경하거나 필요한 애플리케이션을 빠르게 배포할 수 있습니다. 특히, 템플릿 기능을 활용하면 반복적인 작업을 줄이고 원하는 환경을 손쉽게..
[Docker] Ubuntu 24.04 Docker 설치
·
Dev/Docker
init소프트웨어 개발 환경을 보다 효율적으로 관리하기 위해 도커(Docker)를 사용하면 매우 유용합니다. 하지만 아직 도커에 대해 잘 알지는 못합니다. 🧐 이번에 직접 설치하면서 하나씩 배워가며, 그 과정과 배운 점을 블로그에 기록해 두려고 합니다. 이 글에서는 우분투 환경에서 도커를 설치하고 실행하는 방법을 단계별로 작성해 나가려합니다. 우분투 실행환경은 Ubuntu 24.04.1 LTS 입니다. (우분터 설치 링크 참고)1. 우분투 업데이트먼저 시스템 패키지를 최신 상태로 업데이트 합니다. $ sudo apt update && sudo apt upgrade -y2. 도커 패키지 설치 (공식 저장소 추가) 필수 패키지를 설치합니다. 해당 패키지는 우분투 버전에 따라 달라질 수 있으므로, 최신 정보..
[Linux] 우분투(Ubuntu) 초기 Setting 가이드
·
Dev/Linux
새로운 개발 환경을 세팅할 때는 그때그때 필요한 내용을 구글링하며 즉흥적으로 처리하곤 했습니다. 하지만 이번에는 늘 고민해왔던 개발 환경 초기 세팅을 체계적으로 정리해보고자 합니다. 새로 세팅시 내가 참고하기 위해 참고로 설치한 우분투 버전은 24.04.1입니다.Root 패스워드 설정 🔒우분투에서는 기본적으로 루트 계정이 비활성화 되어 있으며, 비밀번호도 설정되어 있지않다. 세팅 시작전에 루트 계정을 활성화 해줍니다. ( 세팅을 적용하기 앞서, root 계정으로 로그인 하는 것을 추천드립니다. )# 루트 계정 비밀번호 설정# 아래와같이 입력하면 Net password를 입력하고 나온다. 패스워드를 설정해줍니다.sudo passwdSetting 전 update & upgrade 🔄시작 전에 전체적으로 ..
[Linux] 우분투(Ubuntu) 설치
·
Dev/Linux
우분투(Ubuntu)는 리눅스 커널 기반의 오픈소스 운영체제로, 초보자부터 개발자까지 폭넓게 사용되는 대표적인 리눅스 배포판입니다. 리눅스를 익히고 경험을 쌓기 위해 이번에 서버에 설치해 보려 합니다.( 버전은 Ubuntu 24 LTS CLI 버전으로 설치 ) 1. 설치 파일 다운로드 "우분투 설치 파일(ISO) 다운로드 링크" 공식 사이트에 들어가 ISO 파일을 다운로드 받습니다. 2. 부팅 USB 드라이브 만들기부팅 가능한 USB 드라이브를 만들기 위해 나는 Rufus(Windows)를 사용했습니다. 이 도구를 이용하면 부팅 가능한 USB 메모리를 손쉽게 만들 수 있습니다.     - Rufus(rufus-4.6p.exe) 프로그램을 실행합니다        - 선택을 누르고 다운로드 받은 iso 파일..
[TypeScript] 4. 타입스크립트 Generics(제네릭) 이해하기
·
Dev/Typescript
이번 글에서는 타입스크립트에서 제너릭을 사용하는 방법과 유용한 패턴에 대해 공유합니다.1. 제네릭 이란?프로그래밍에서는 데이터를 저장하고 활용하기 위해 변수를 사용하며, 이는 값이 변할 수 있음을 의미합니다. 반대로, `number[]`, `string` 같은 타입은 한 번 정해지면 변하지 않는 고정된 타입입니다. 하지만 개발 환경에서는 상황이 항상 일정하지 않으며, 보다 유연한 타입 관리가 필요합니다. 이를 가능하게 하는 것이 바로 제너릭(Generic) 으로, "타입을 변수처럼 활용하는 기법" 입니다.2. 제네릭 기본 문법제네릭은 타입을 함수의 인자처럼 사용합니다.  선언할 때는 타입 파라미터 `` 를 적어주고, 생성하는 시점에 사용하는 타입을 결정해줍니다. ``: 타입 파라미터, 어떤 타입을 전달 ..
[TypeScript] 3. 타입스크립트 Class(클래스)
·
Dev/Typescript
initJavaScript를 사용하다 보면 데이터와 동작을 효율적으로 묶어 관리해야 할 때가 있습니다. 이때 등장하는 것이 바로 "클래스" 입니다. 클래스는 객체 지향 프로그래밍(OOP)의 핵심 개념 중 하나로, 데이터를 구조화하고 재사용 가능한 코드를 작성하는 데 유용합니다. 이 포스트에서는 JavaScript 클래스의 기본 개념과 구조에 대해 공유합니다.클래스 (Class)클래스 몸체에 메소드만을 포함할 수 있다. 클래스 몸체에 클래스 프로퍼티를 선언할 수 없고 반드시 생성자 내부에서 클래스 프로퍼티를 선언하고 초기화한다. 또한, 클래스에서는 메서드를 포함할 수 있으며, 메서드는 클래스 몸체에 정의되어 객체에서 호출할 수 있다. [ 용어 ] name: 프로퍼티,  constructor: 생성자(=초기..