Docker를 사용하면서 불필요한 컨테이너와 이미지가 쌓이면 용량 부족 문제가 발생할 수 있습니다. 이 글에서는 Docker의 컨테이너와 이미지를 안전하게 삭제 및 정리하는 방법을 정리했습니다. 1. 컨테이너 삭제하기 ▼ 1. 특정 컨테이너 삭제 컨테이너 이름이나 ID를 사용하여 특정 컨테이너를 중지하고 삭제합니다. ▼ 2. 다음은 예시입니다. ▼ 3. 종료된 컨테이너 조회하기 종료된 상태의 컨테이너만 조회할 수 있습니다. ▼ 4. 종료된 컨테이너 일괄 삭제 (안전) 종료된 컨테이너를 안전하게 한 번에 삭제할 수 있습니다. ▼ 5. 확인 없이 즉시 삭제하려면 다음과 같은 명령을 사용합니다. ▼ 6. prune을 사용하지 않고 동일한 작업을 수행하는 명령어는 다음과 같습니다. ..
Docker를 활용하여 MongoDB, 백엔드, 프론트엔드 환경을 구성하는 방법을 정리했습니다. MongoDB 설정 ▼ 1. MongoDB는 별도로 포트를 열어줄 필요 없이 --network 설정만으로 컨테이너를 실행할 수 있습니다. MONGO_INITDB_ROOT_USERNAME: MongoDB의 루트 사용자 이름MONGO_INITDB_ROOT_PASSWORD: MongoDB의 루트 사용자 비밀번호-v data:/data/db: 데이터 저장을 위한 볼륨 설정 백엔드 설정 ▼ 2. MongoDB에 보안 연결을 설정할 때는 다음과 같은 연결 문자열을 사용합니다. ▼ 3. 만약 문제가 발생한다면 MongoDB의 볼륨 연결을 확인하고, 기존 볼륨을 제거한 후 다시 실행합니다. ▼ 4. 백엔드 컨테이..
도커 설치기존에 쓰던 애플실리콘에서는 문제없이 잘되던 도커 설치가 인텔 맥에서는 정상동작하지 않아 다른 방법을 찾던 중 brew 로 설치하는 방법이 있어서 소개합니다. --cask 옵션은 Homebrew Cask를 사용하여 GUI 애플리케이션 및 바이너리 소프트웨어를 설치할 때 사용하는 옵션입니다. brew install : 터미널에서 실행되는 도구 (git, node, python...)brew install --cask : GUI 앱이나 바이너리 패키지 (docer, google-chrome, slack...) ▼ 1. brew 명령어로 도커를 설치합니다. 도커 버전 확인 ▼ 1. 도커 버전을 확인합니다. ▼ 1.도커 컴포즈 버전도 확인합니다. 테스트 이미지 실행 ▼ 1.테스트를 위..
도커 볼륨의 종류 ▼ 1. 익명 볼륨(Anonymous Volume)명시적 이름이 없이 도커가 자체적으로 이름을 만들어서 생성합니다. 컨테이너 삭제시 볼륨도 함께 사라집니다. 컨테이너를 실행할 때만 필요한 임시 데이터라면 익명 볼륨을 사용하는 것이 좋습니다. ▼ 2. 명시적 볼륨 (Managed Volume)도커 자체적으로 관리하는 볼륨으로 컨테이너가 삭제되더라도 데이터가 유지되는 특징이 있습니다. 때문에 컨테이너끼리 쉽게 공유가 가능합니다. 운영 환경에서 데이터의 영속성을 원한다면 명시적 볼륨을 사용합니다. 또한 익명의 볼륨과 달리 DockerFile 에서 생성이 불가능합니다. -v 옵션으로만 생성이 가능하고 특정 컨테이너와 연결되어 있지 않습니다. 때문에 컨테이너 간의 공유가 가능합니다. ..
도커로 이미지를 푸시하려면 hub.docker.com 에서 할 수 있습니다. Private 레포지토리는 1개로 제한되어 있고 Public 레포지토리는 개수의 제한은 없지만 빌드 자동화가 불가능하며 Pull 에 대한 제한이 있을 수 있습니다.https://hub.docker.com/ Docker Hub Container Image Library | App ContainerizationIncrease your reach and adoption on Docker Hub With a Docker Verified Publisher subscription, you'll increase trust, boost discoverability, get exclusive data insights, and much more...
터미널에서 Swift 패키지 만드는 방법 ▼ 1. 새로운 디렉터리를 만들고 해당 디렉터리로 이동합니다. ▼ 2. Swift 패키지 생성를 생성합니다. 옵션--name 패키지 이름 지정 swift package init --name MyLibrary--type 패키지 유형 지정 swift package init --type library--platforms 지원할 플랫폼 지정 swift package init --platforms iOS--package-path 패키지를 특정 경로에 생성 swift package init --package-path ./MyLibrary 패키지 열기 ▼ 3. open 명령어를 이용해서 Xcode 를 실행해 프로젝트를 열 수 있습니다. 빌드 및 실행 ▼ ..
도커 설치WS에서 제공하는 기본 Amazon Linux AMI(Amazon Linux 2, Amazon Linux 2023)는 CentOS/RHEL 기반이며 Amazon Linux AMI에는 Docker가 기본 설치되어 있지 않아서 yum 을 이용해 설치하고 service 를 이용해 실행해야 합니다. ▼ 1. yum 을 이용해 업데이트를 합니다. ▼ 2. yum 을 이용해 docker 를 설치합니다. ▼ 3. docker 버전을 확인합니다. ▼ 4. Docker 서비스를 실행합니다. SUDU 그룹 추가 및 테스트 ▼ 1. EC2 인스턴스에서 Docker를 실행하려면 ec2-user가 docker 그룹에 속해야 합니다. 변경 사항을 적용하려면 로그아웃 후 다시 로그인해야 합니다. ▼ 2..
Mise mise는 개발 환경 관리를 위한 툴로 여러 프로그래밍 언어와 도구의 버전 관리를 깔끔하게 할 수 있습니다. Tuist 를 설치하려면 homebrew 로 직접 설치가 가능하지만 mise 로 설치하는 것을 권장하고 있습니다. 계속 Tuist 의 버전이 바뀌기도 하고 관리 차원에서 mise 를 사용하면 수월하게 버전 컨트롤이 가능합니다. node 기반의 nvm 과 같은 것도 관리할 수 있으니 편리할 것 같습니다. Tuist 관련 설치▼ 1. homebrew 를 설치하지 않았다면 우선 terminal 에서 다음 코드를 입력해 homebrew 를 설치합니다. https://brew.sh/ HomebrewThe Missing Package Manager for macOS (or Linux).bre..
S3는 단순히 저장 공간만 제공하는 것이 아니라, 확장성, 접근성, 비용 효율성을 갖춘 데이터 중심 서비스입니다. 반면, 블록 스토리지는 데이터베이스와 같은 저지연 I/O가 필요한 애플리케이션 워크로드에 적합합니다. 또한 EFS 는 여러대의 컴퓨터가 동일한 데이터에 접근할 때 주로 사용됩니다. 블록 (block) 스토리지 - Amazon EBS (Elastic Block Store)단일 스토리지 볼륨(Volume)을 블록이라는 개별 단위로 분할해서 저장각 블록은 저장된 위치에 고유한 주소가 있음일반적으로 SAN(Storage Area Network) 또는 가상 머신의 디스크로 사용데이터 입출입이 많은 서비스에 적합한 번에 하나의 인스턴스만 연결하여 사용할 수 있다.Amazon S3 에 볼륨 내 데이터 사..
df (Disk Free)파일시스템 전체의 사용량 및 남은 공간을 확인합니다. 디스크 전체 공간과 사용 가능 공간을 보여줍니다.파일시스템 단위로 작동하며 폴더나 파일에 국한되지 않습니다. -h: human-readable저장 장치의 여유 공간 및 사용량을 사람이 읽기 쉬운 형태로 표시합니다. 출력 내용파일시스템 이름전체 용량사용된 공간남은 공간사용률 (%)마운트된 경로 du (Disk Usage)특정 디렉토리나 파일의 디스크 사용량을 확인합니다. 특정 경로나 파일의 실제 사용량을 계산하며디렉토리별 상세한 크기도 확인이 가능합니다. -s: summarize전체 디렉토리의 크기를 요약하여 한 줄로 표시합니다.-h: human-readable바이트, 킬로바이트(KB), 메가바이트(MB) 등 사람이 읽기 ..
시스템의 안정성을 테스트하거나, 특정 조건에서 CPU의 성능을 평가하려면 스트레스 테스트 도구를 사용하는 것이 유용합니다. 이 글에서는 stress-ng라는 강력한 스트레스 테스트 도구를 설치하고 사용하는 방법을 다룹니다. stress-ng 설치▼ stress-ng는 다양한 스트레스 테스트를 지원하는 도구로, 리눅스 배포판에서 쉽게 설치할 수 있습니다.아래는 stress-ng를 설치하는 명령어입니다. 설치가 완료되면 stress-ng 명령을 사용할 준비가 됩니다. yum: CentOS, RHEL 등의 리눅스 배포판에서 패키지 관리 도구.install -y: 패키지를 설치하며, -y 옵션은 모든 설치 확인을 자동으로 승인합니다.stress-ng: 설치할 패키지 이름. CPU 스트레스 테스트 실행▼ 설치..
깃을 사용하면서 가끔 clone 할 때 패스워드를 물어보는 경우를 만나게 됩니다. 그런데 어떤 시스템에서는 패스워드를 묻지 않고도 잘 클론이 되기도 하고 어떤 때는 최초에는 물어보고 그 다음에 pull, push 할때는 안물어 보는 경우도 있습니다. 원격 레포지토리 주소가 SSL 로 되어 있으면 상관 없고 https 로 되어 있는 경우는 매번 로그인 정보를 입력해줘야 합니다. 하지만 이건 매우 불편하고 그에 따른 해결책이 있습니다. Basic 인증 사용하기1. ID 와 비밀번호를 포함하기▼ 이 방법은 아이디 패스워드를 직접입력하는 방식인데 http 통신의 Basic 인증을 사용합니다. 다만 노출된 만큼 위험하고 권장하는 방식이 아닙니다. Credential 기능 사용하기2. 캐싱하는 방법▼ Git에서는 ..
Visual Studio Code로 Workspace 생성하는 방법Visual Studio Code는 다양한 개발 프로젝트를 효율적으로 관리할 수 있는 강력한 도구입니다. 여러 프로젝트를 한곳에서 작업하려면 워크스페이스를 생성하여 활용하는 것이 좋습니다. 워크스페이스를 만드는 방법이 어려우시다면, 아래 단계를 참고해보세요 1. 프로젝트 폴더 선택하기▼ 먼저, 작업하고자 하는 프로젝트의 폴더를 준비합니다. 여러 프로젝트를 함께 관리하고 싶다면 관련된 모든 폴더를 하나의 워크스페이스에 추가할 수 있습니다. 직접 원하는 폴더를 열어 해당 작업트리를 열어도 상관 없지만 다음과 같이 "작업 영역에 폴더 추가" 메뉴를 통해서 프로젝트를 열 수도 있습니다. File -> Add Folder to Workspace ..
▼ 맥 homebrew 를 이용한 설치 ▼ Ubuntu 리눅스 에서 apt 를 이용한 설치 ▼ devices 명령으로 설치 확인
Amazon Linux 2023에서 MySQL 설치시, 다음 과정이 필요합니다. ▼ 1. RPM 파일 다운로드 ▼ 2. GPG 퍼블릭 키 설정 ▼ 3. 퍼블릭키 import - 모든 시스템 패키지를 최신 버전으로 업데이트하라는 명령- 자동으로 업데이트를 진행하고, 중간에 확인을 요구하지 않음 ▼ 4. MySQL 설치 mysql-client 설치 mysql-server 설치
API 호출을 통해 JSON 데이터를 파싱 하는 과정에서 플러터에서 한글 깨짐 문제가 생겼습니다. Chat GPT 코드를 그대로 사용했는데 발생한 에러라서 뭔가 GPT 가 코드를 잘못 만들었을 것이라고 생각해서 인터넷에 검색해보니 많은 사람들이 해당 케이스의 상황을 겪고 있더군요.▼ 한글이 깨질 경우 다음과 같이 utf8 디코딩이 필요하고 response.body가 아닌 response.bodyBytes 로 값을 변경해서 쓰면 됩니다. ▼ 실제 예제 코드입니다.
Tuist 로 개발을 하려면 몇가지 설정을 해야 하는데 실제 개발 폰으로 앱을 빌드하려면 Team Id 를 설정해야 합니다. 하지만 매번 generate 할 때마다 Team ID 가 None 으로 변경되면 Tuist 를 꼭 써야 하나 하는 의문이 생깁니다. 이를 수정하기 위해서는. Tuist 의 Project.swift 파일을 수정해야 합니다. Project의 프로퍼티 순서는 다음과 같습니다. 그중에 settings 속성을 변경해야 합니다.PropertiesnameorganizationNameclassPrefixoptionspackagestargetsschemessettingsfileHeaderTemplateadditionalFilesresourceSynthesizerscontainsExternalDep..
brew로 swiftlist 설치▼ CocoaPods을 사용해서 설치 할게 아니라면 brew를 실행해서 swiftlint를 설치한다.brew install swiftlint .swiftlint.yml 파일 생성▼ Xcode에서 Empty 파일을 생성하고 파일명을 .swiftlint.yml 으로 지정한다. 파일 숨김 처리를 함으로 Xcode에서 경고창이 ㄸ는데 Use "." 로 선택하고 창을 닫는다.다음은 프로젝트 룰에서 제거할 목록이다.disabled_rules: - colon - comma - control_statement - identifier_name - shorthand_operator - empty_count - line_length - type_name - force_cast..
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.