테스트 코드가 막막한 개발자를 위한 가이드
·
개발
이 글에서는 테스트 코드를 작성할 때 고려해야하는 "무엇을 검증할 것인가"에 대한 약속인 Given-When-Then 패턴에 대해 다룹니다. 이것만 염두에 두고 테스트코드를 작성하면 테스트 코드의 구조를 잡기 쉽습니다. 테스트 코드의 공식: Given-When-Then모든 테스트는 기본적으로 이 3단계로 구성합니다.Given (준비): 테스트를 위해 필요한 데이터나 상황을 준비합니다.When (실행): 준비된 것들로 검증하려는 알고리즘을 실행합니다.Then (검증): 실행 결과가 예상과 같은지 확인합니다.준비하고, 실행하고, 검증한다.어떻게 보면 테스트를 해야겠다고 느낀 순간부터 본능적으로 알고 있던 과정일지도 모릅니다.하지만 이걸 의식하는 것이 좋은 테스트 코드 작성의 시작입니다. 어디서부터 시작할..
[개발 편의] Scoop 편합니다. Scoop 써 보십쇼.
·
개발
이게 항상 불편했거든요다른 컴퓨터로 작업 환경을 옮기면, 매번 개발 환경을 다시 세팅해줬어야 했습니다.데스크탑에서 너무 편하다며 추가했던 설정이, 노트북으로 가면 또 다시 설정해줘야하는 귀찮음이었습니다. Scoop으로 관리하고 나의 성공시대 시작됐다Scoop은 윈도우용 커맨드 라인 패키지 매니저입니다.그 동안엔 `tcping` 같은 거나 편하게 설치하고 싶어서 `Chocolatey`를 썼는데, scoop이 더 개발자 친화적이라고 느꼈습니다.그것보다, 제일 중요한 '뭘 할 수 있는지'를 얼른 말씀드리겠습니다. 모든 업데이트를 명령어 한 줄로`scoop update` 명령어 한 줄로, scoop으로 설치한 모든 프로그램이 최신 버전으로 업데이트됩니다. 쉽게 옮길 수 있는 설정. 포터블함.scoop으로 설치한..
[Docker] 도커 공식문서로 배우기 (6): 이미지 레이어 구조, 유니온 파일 시스템, chroot
·
개발
도커를 이해하는 데 있어 가장 중요한 개념 중 하나가 바로 이미지 레이어(Image Layer) 입니다.도커 이미지는 단일 파일이 아니라, 여러 개의 레이어가 쌓인 구조로 만들어집니다.이 레이어 구조 덕분에 도커는 저장 공간을 효율적으로 사용하고, 빠른 배포와 실행을 하며, 컨테이너를 격리합니다.이 글에서는 도커 이미지 레이어가 어떻게 구성되고, 유니온 파일 시스템과 chroot가 어떤 역할을 하는지를 자세히 알아봅니다.이미지가 여러 레이어로 구성된다는 것도커 이미지는 여러 개의 레이어로 나누어 만들어집니다.각 레이어는 Dockerfile의 한 줄 한 줄이 만든 결과물이라고 이해하면 쉽습니다.예를 들어 자바 애플리케이션 이미지를 간단히 구성해 보면 다음과 같은 레이어 구조가 됩니다.Ubuntu 레이어JD..
[Docker] 도커 공식문서로 배우기 (5): Docker Compose
·
개발
도커 컨테이너는 각 컨테이너가 하나의 기능만 제대로 수행하는 것이 좋습니다. 한 컨테이너가 여러 기능을 담당하는 것은 일반적으로 권장되지 않습니다. 그렇다면 하나의 서비스를 실행하기 위해서는 여러 종속성 컨테이너들 모두에 대해 각각 `docker run` 명령을 실행해야 할까요?그렇게 해도 되지만 실행 외에도 우리는 할 일이 너무 많습니다. 도커는 그런 상황을 위해 `Compose`를 지원합니다. 이 글은 도커 컴포즈가 무엇인지, 그리고 어떻게 사용하는 지에 대해 다룹니다. Docker Compose도커 컴포즈로 우리는 모든 컨테이너와 구성(configuration)을 한 개의 YAML 파일 안에 정의할 수 있습니다. 어떤 프로젝트가 도커 컴포즈로 구성되었다면 아무리 여러 실행 환경을 포함한다 해도, 다..
[Docker] 도커 공식문서로 배우기 (4): 컨테이너, 이미지, 리포지토리, 레지스트리
·
개발
컨테이너기본적으로 하나의 프로세스이고 프론트엔드의 React앱, 또 다른 어떤 백엔드 앱, 데이터베이스 등 각 앱의 구성요소를 위한 격리된 프로세스특징필요한 모든 걸 스스로 가지고 있음컨테이너는 격리되어있어 다른 컨테이너와 서로의 영향이 최소화됨.어디서든 동일하게 작동하며 휴대성이 뛰어남.VM(가상머신)과의 차이VM은 하나의 앱을 격리하기 위해 별도의 커널, 별도의 OS를 생성하고, 이건 오버헤드가 큼여러개의 컨테이너를 실행하는 것은 모두 동일한 커널을 공유하므로 더욱 효율적임 이미지이미지(컨테이너 이미지)는 컨테이너를 실행하는데 필요한 모든 종속성이 포함된 패키지특징이미지는 한 번 생성되면 수정할 수 없음.이미지는 레이어로 구성됨. 레이어는 파일 시스템 변경 사항의 집합임.레지스트리컨테이너 이미지를..
[Docker] 도커 공식문서로 배우기 (3): 도커 이미지 생성과 리포지토리에 푸시
·
개발
이 글에서는 도커 이미지를 생성하고 도커 허브에 공유하는 과정에 대한 내용을 다룹니다.이를 간략히 나타내면 이러합니다.도커 허브에 로그인하고, 이미지 저장소를 생성합니다.컨테이너 이미지를 빌드합니다.도커 허브에 이미지를 푸시합니다.이미지 저장소를 생성Docker Hub에 가입 또는 로그인합니다. `Create a Repository` 메뉴를 찾아가 리포지토리를 만듭니다. 푸시할 이미지를 빌드이미지를 빌드할 프로젝트의 디렉토리로 이동하고, 빌드 명령어를 실행합니다.cd somewheredocker build -t 유저이름/getting-started-todo-app . `docker image ls` 명령어를 입력하면 아래처럼 로컬에 있는 현재 이미지들을 확인할 수 있습니다.REPOSITORY ..