전체 글
docker-compose 어느 순간부터 명령어가 안먹는다면?
터미널에서 어느 순간 잘 동작하던 명령어가 갑자기 실행할 수 없다는 문제는 너무 흔히 접하게 되는 것 같다.OS든 사용하고 있는 툴이 업데이트가 되었거나, 새로운 환경에서는 더더욱 그렇다.사용하고 있는 툴들이 자동 업데이트 설정이 되어있는지 잘 확인해보자.필자 같은 경우에는 docker-desktop 설정을 다음과 같이 해놓았다.항상 최신 버전을 자동으로 체크하고, 백그라운드로 해당 툴을 자동 업데이트 시키도록 해두었다.그러던 어느날 잘 동작하던 스크립트가 갑자기 실행할 수 없는 명령어라면서 종료되어지고 있었다.zsh: command not found: docker-compose 바로 뇌정지가 한번 오긴 했지만, 차분하게 검색해보았다.우선 아래의 링크에서 해결방법을 찾을 수 있었다.https://doc..
Docker Volume과 Docker 네트워크의 종류
2.2.6 도커 볼륨컨테이너의 치명적인 단점?컨테이너를 삭제하면 컨테이너 계층에 저장돼있던 DB 정보도 함께 삭제도커의 컨테이너는 생성과 삭제가 매우 쉬움.💡 데이터를 영속적으로 활용하기 위해 도커 볼륨을 활용 한다.2.2.6.1 호스트 볼륨 공유볼륨을 활용하는 첫 번째 방법-v /home/wordpress_db:/var/lib/mysql # [호스트의 공유 디렉터리]:[컨테이너의 공유 디렉터리]호스트의 /home/wordpress_db 디렉터리와 컨테이너의 /var/lib/mysql 디렉터리를 공유한다는 의미즉, 컨테이너의 /var/lib/mysql 디렉터리는 호스트의 /home/wordpress_db 디렉터리와 동기화되는게 아니라, 완전히 동일한 디렉터리이다.디렉터리 단위 공유뿐만 아니라 단일 파일..
Docker Engine과 Docker Image의 개념
2장. 도커 엔진2.1 도커 이미지와 컨테이너💡 도커 엔진의 기본 단위는 `이미지` 와 `컨테이너` 이다. 즉, 이 기본 단위가 도커 엔진의 핵심이다.2.1.1 도커 이미지이미지는 컨테이너를 생성할 때 필요한 요소가상 머신을 생성할 때 사용하는 iso 파일과 비슷한 개념이미지의 형태[저장소 이름]/[이미지 이름]:[태그] 형식 이다.태그를 생략하면 도커 엔진은 이미지의 태그를 latest 로 인식한다.별도로 설치하는게 아니라, 명령어로 이미지를 내려받을 수 있다.이미지는 여러 계층으로 된 바이너리 파일이다.컨테이너를 생성하고 실행할 때 읽기 전용으로 사용한다. {repository_name}/{image_name}:{tag}2.1.2 도커 컨테이너💡 도커 이미지와 컨테이너는 1:N 관계이다.우분투 ..
Docker의 개념
최근.. 은 아니고 한 몇 달 전부터 도커 책을 통해서 공부를 했었다.그리고 실무에서도 최근에 개발 환경 관련해서 도커 컨테이너화 시켜서 개발하고 있는게 너무 생각보다 재밌고 편하기도 해서개념을 공부했던 내용을 업로드 해보기로 했다! 1장. 도커란?1.1 가상 머신과 컨테이너기존 가상화 기술과 도커 컨테이너의 차이기존 가상화 기술은..하이퍼바이저를 이용해 여러 운영체제를 하나의 호스트에서 생성하여 사용각종 시스템 자원을 가상화 → 독립된 공간 생성 = 하이퍼바이저를 반드시 거쳐야하므로 일반 호스트에 비해 성능의 손실을 발생또한, 가상 머신을 배포하기 위해 이미지로 만들었을 때 게스트 운영체제를 위한 라이브러리, 커널을 모두 포함해야 하므로 이미지의 크기가 커진다.기존 가상화 기술은 완벽한 운영체제를 만들..
PyCharm Django에서 Django 콘솔 구성하기
파이참에서는 빌드, 실행, 배포 > 콘솔 > Django 콘솔을 제공해주는데, 여기서 아래쪽에 시작 스크립트 부분에서는 직접 코드를 수정할 수 있도록 제공해준다.이 시작 스크립트에 작성된 부분은 IDE에서 해당 콘솔을 시작할 때 실행시켜주며, 이 콘솔을 통해서 다양한 작업들을 할 수 있게 도와준다.예를 들어, 디버그 해야 하는 부분이 있어서 환경을 맞추고 디버그하기 위해 사용한다거나 필요한 실행 스크립트를 직접 실행시킨다거나 등등..아무튼 그러면 나의 Django 프로젝트에서 사용하고 있는 모델 정보들을 이 시작 스크립트에서 모두 불러오게 커스텀이 필요하다! 1. django_extensions 설치프로젝트 내에 해당 라이브러리를 설치해주어야 한다.이 라이브러리는 운영단까지는 필요없으므로, 개발 환경단에..
안드로이드 로컬 앱을 빌드하는 과정
정~~ 말 오랜만에 작성해 보는 삽질 기록..앱 프로젝트를 로컬 환경에서 세팅하는 과정은 따로 시간 내서 정리해 보도록 하고,프로젝트 실행 환경을 세팅했다고 우선 가정해보자. 프로젝트는 모노레포로 구성되어 있고next의 웹 프로젝트와 RN으로 작성된 앱 프로젝트가 있다.하려고 하는 건, 앱 프로젝트에서 안드로이드 앱을 로컬에서 빌드시켜서 에뮬레이터를 통해서 실행하는 것이었다.새로운 빌드를 하기 전에는 항상 아래의 명령어로 이전에 빌드했던 잔재가 남아있지 않도록 clean을 해주도록 한다.❯ ./gradlew clean이 명령어는./gradlew 파일이 있는 곳에서 실행해주어야 한다.그러면 아래와 같이 성공했다는 메시지가 나오면 이제 새로운 빌드 준비를 마친 상태 BUILD SUCCESSFUL in 18s..
파이참 django 프로젝트 소스 디렉터리 설정
파이참에서 django 프로젝트를 켰을 때 import 구문에서 불러올 수 없는 문제가 있었다.그치만 서버를 로컬에서 실행하는데에는 문제가 없었음.빨간 줄을 없애보자~우선 , + command로 파이참 설정 창을 띄운 후에 프로젝트 구조 섹션으로 이동하면 된다.그러면 소스 폴더와 제외된 폴더, 템플릿 등등을 추가하거나 삭제할 수 있는데,나의 django 프로젝트 같은 경우에는 프로젝트 루트에 `manage.py`가 있는게 아니고 `web` 디렉터리 하위에 존재하기 때문에소스 폴더에 `web`을 추가해주었다.최종 해결 모습
테스트 자동화 하기
Refactoring"Whenever you read [Refactoring], it’s time to read it again. And if you haven’t read it yet, please do before writing another line of code." ?David Heinemeier Hansson, Creator of Ruby on Rails, Founder & CTO at Basecamp Fully Revised and Updated-Includes New Refactorings and Code Examples “Any fool can write code that a computer can understand. Good programmers write code that humans..
CH3. 좋은 코드의 일반적인 특징
내용은 "유지보수가 쉬운 파이썬 코드를 만드는 비결" 이라는 책을 보고 요약 정리한 내용입니다. 목표 견고한 소프트웨어의 개념 작업 중 잘못된 데이터를 다루는 방법 새로운 요구사항을 쉽게 수용하고 확장할 수 있는 유지보수가 쉬운 SW 설계 재사용 가능한 SW 설계 생산성을 높이는 효율적인 코드 작성 계약에 의한 디자인 디자인 바이 컨튜렉 컴포넌트는 기능을 숨겨 캡슐화하고 이를 사용할 수 있도록 API(인터페이스)를 노출해야 한다. API를 디자인할 때에는 예상되는 입출력과 부작용을 문서화해야 한다. 이때 계약 이라는 개념이 생긴다. 💡 계약에 의한 디자인이란? 양측이 동의하는 계약을 먼저 한 다음, 계약을 어겼을 경우 명시적으로 왜 계속할 수 없는지 예외를 발생시키라는 것이다. def divide(a: ..