Skip to main content

Fixture monkey 객체 생성 전략

· 16 min read
Haril Song
Owner, Software Engineer at 42dot

banner

info

예제 코드는 GitHub에서 보실 수 있습니다.

info

이 글은 오픈소스를 개인적으로 살펴보며 작성한 글이므로 잘못된 부분이 있을 수 있습니다. 얼마든지 지적해주시면 감사하겠습니다.

warning

FixtureMonkey 가 0.4.x 로 release 되면서 이 글에서 설명한 부분 중 일부 부분이 개선되거나 변경되었습니다.

Overview

Naver 에서 2021 년에 공개한 오픈소스이며, 테스트를 위한 객체 생성을 편리하게 할 수 있도록 도와준다.

아마 테스트 코드를 작성하는 것에 익숙한 분들은 테스트 코드 작성의 많은 시간이 테스트를 위한 데이터를 생성하는 것이라는 것에 공감하실 것이라고 생각한다. 그래서 테스트 객체를 생성하는 시간을 줄이고자 Factory 를 구현하여 사용하곤 했는데, Fixture monkey 를 사용하면 훨씬 더 편리하게 테스트 객체를 생성할 수 있다.

key generation error

· One min read
Haril Song
Owner, Software Engineer at 42dot
info

오류 해결 방법을 간단하게 공유합니다.

key generation error: Unknown signature subpacket: 34

Keybase 에 gpg key 를 등록하려던 중 위와 같은 에러가 발생했다. 해결을 위해 방법을 찾다보니 github 에 다음과 같은 해결법이 등록되어 있었다.

Vimium shortcut 변경하는 법

· 2 min read
Haril Song
Owner, Software Engineer at 42dot

Overview

최근 Vim 을 사용하게 되면서, 주변 모든 환경을 Vim 으로 맞추게 되었다. 그 중 safari 의 Vim 확장 프로그램인 Vimari 와 Chrome 의 확장인 Vimium 에서 몇가지 단축키가 다른 부분이 있어서 통일시키기 위해 특정 키를 새로 매핑했는데 vimium 에서 단축키를 매핑하는 법을 소개하고자 한다.

Docker network

· 10 min read
Haril Song
Owner, Software Engineer at 42dot

Overview

Docker 컨테이너는 격리된 환경에서 돌아가기 때문에 기본적으로 다른 컨테이너와 통신이 불가능하다. 하지만 여러개의 컨테이너를 하나의 Docker 네트워크에 연결시키면 서로 통신이 가능해진다. 이번에는 서로 다른 컨테이너들간에 통신을 위해서 네트워크를 어떻게 구성해야하는지 알아본다.

Docker volume

· 6 min read
Haril Song
Owner, Software Engineer at 42dot

Overview

도커 컨테이너는 기본적으로 완전 격리상태이기 때문에 기본적으로는 컨테이너 내부의 데이터를 호스트 머신에서 사용할 수 없다. 이 말은 곧, 컨테이너의 라이프 사이클에 내부 데이터가 완전히 의존하는 상태라는 것이다. 좀 더 쉽게 말하면 컨테이너가 사라지는 순간 데이터도 같이 사라지게 된다.

그럼 로그나 데이터베이스의 중요한 정보 등 컨테이너의 데이터를 컨테이너의 라이프사이클과는 관계없이 영구적으로 보관해야할 필요가 있는 경우에는 어떻게 해야할까?

바로 이럴 때 volume 을 사용할 수 있다.

[Jacoco] 멀티 모듈의 Jacoco report 를 하나로 합치기

· 3 min read
Haril Song
Owner, Software Engineer at 42dot

Overview

gradle 7.4 부터 여러 jacoco test report 를 집계하여 통합적으로 볼 수 있는 기능이 추가되었다. 과거에는 여러 모듈에 걸친 테스트의 결과를 하나의 파일로 확인하기가 무척 어려웠지만, 이제는 매우 편리하게 리포트를 하나로 합칠 수 있게 되었다.

Why Docker?

· 11 min read
Haril Song
Owner, Software Engineer at 42dot
info

이 글은 사내 정보 공유를 위해 작성되었기 때문에 Java 개발환경을 기준으로 설명합니다.

Docker 는 무엇일까?

Docker : Linux 컨테이너를 만들고 사용할 수 있도록 하는 컨테이너화 기술, 그리고 그 기술을 지원하는 가장 큰 회사의 이름이자 오픈소스 프로젝트의 이름

deploy-history 누구나 docker 에 대해 검색하면 한번쯤 봤을 그 그림

2013년에 등장한 돜는 인프라 세계를 컨테이너 세상으로 바꿔버렸다. 수많은 애플리케이션이 컨테이너로 배포하고 도커파일을 만들어 이미지를 빌드하고 컨테이너를 배포하는게 흔한 개발 프로세스가 되었다. 2019년 DockerCon 발표에선 무려 1052억번의 컨테이너 image pull 이 발생했다고 한다.

Docker 를 사용하면 컨테이너를 매우 가벼운 모듈식 가상머신처럼 다룰 수 있다. 또한 컨테이너를 구축, 배포, 복사하고 한 환경에서 다른 환경으로 이동하는 등 유연하게 사용할 수 있어서 애플리케이션을 클라우드에 최적화하도록 지원한다.

[Kubernetes] 쿠버네티스 훑어보기

· 6 min read
Haril Song
Owner, Software Engineer at 42dot

What is kubernetes?

쿠버네티스는 다음을 기능들을 제공한다.

  • 서비스 디스커버리와 로드 밸런싱
  • 스토리지 오케스트레이션
  • 자동화된 롤아웃과 롤백
  • 자동화된 빈 패킹
  • 자동화된 복구
  • 시크릿과 구성 관리

자세한 정보는 공식 문서에서 잘 설명해주니 공식 문서를 참조하자.

쿠버네티스를 실행할 수 있는 방법에는 여러가지가 있지만 공식 사이트에서는 minikube 를 사용하여 진행한다. 이 글에서는 Docker desktop 을 사용하여 쿠버네티스를 활용하는 방법을 정리하고 있다. minikube 를 사용하는 방법을 알고 싶다면, 공식 사이트를 참고하시면 되겠다.

minikube 는 일단 간단하게 짚어보고 넘어가자.