본문 바로가기

분류 전체보기77

이직했어요 정신차려보니 벌써 7월입니다. 캐롤 들으면서 연말 분위기를 누린 것이 정말 얼마 안된 것 같은데, 장마에 불평을 늘어두고 있는 요즘이네요. 이런 계절의 변화를 알아차리지 못할 정도로 올 상반기는 여러 사건들이 있었습니다. 가장 큰 부분은 이직이었는데요. 간단하게 이야기 해보려 합니다. 동기 부여 업을 선택함에 있어, 상당히 많은 종류의 선택할 수 있는 가치가 존재합니다. 이는 금전일 수 있고, 경력일 수 있겠네요. 모두 중요한 가치지만, 저는 올 상반기를 지나오며 일을 해야하는 동기를 찾는 것이 상당히 큰 가치 중 하나임을 느낄 수 있었습니다. 이전 직장에서 golang을 이용하여 새로운 사업을 진행했는데, 시작할 때 들었던 서비스도 아니었고 사업적으로 이해가 되는 선택이 있지도 않았습니다. 기술적으로도.. 2023. 7. 16.
Functional Option Pattern in Go Go 언어로 서버 프레임워크를 개발한다고 가정해봅시다. 서버는 다양한 옵션을 가질 수 있으며, 생성자를 통해 이를 설정할 수 있어야 합니다. 예를 들어 서버의 주소, 읽기 타임아웃, 로깅 등의 옵션을 설정할 수 있어야 하는데요. 예시를 들어보겠습니다. // 예시 위와 같이 이러한 옵션은 필수적이거나 선택적일 수 있습니다. 그렇다면 저 상황에서 다른 옵션이 추가된다면 어떨까요? 그에 맞게 생성자를 추가해야하고, 각 옵션이 optional하다면 추가해야하는 생성자가 기하급수적으로 늘어납니다. 물론 메서드 오버로딩을 지원하지 않는 특성 상, 네이밍도 상당히 어렵습니다. 오늘 이야기 해보려 하는 Functional Option Pattern은 이러한 문제를 해결하고자 등장한 패턴입니다. Functional Op.. 2023. 7. 2.
git 별다줄 alias를 소개합니다. git을 사용하다보면 종종 명령어를 치기 귀찮은 경우가 존재합니다. 현재 브랜치만 push하고 싶은데, 브랜치 명이 너무 길다던지... main에 리베이스를 해야하는데 넘어가서 pull 땡겨오기 귀찮다던지... 저만 그런가요..? alias를 잘 사용하면 생산성 증대에도 큰 도움이 되는데요. 개인적인 생산성 증대를 위하여 사용하고 있는 별다줄 alias를 소개해보겠습니다. alias list co = checkout checkout 명령어의 단축키로 co를 사용하고 있어요. 이 alias를 사용하면 git checkout 대신 git co를 입력하여 브랜치를 전환할 수 있습니다. 간단하지만, 7글자나 쓰기 귀찮아서(...) 만들었습니다. 자매품으로 cob(checkout -b)도 있습니다. pr = "!.. 2023. 6. 18.
Golang과 함께하는 테스트 여정 - 통합 테스트 위 글에서 단위 테스트에 대하여 이야기 해보았습니다. 하지만, 테스트는 단위 테스트만으로 완벽하게 보장되지 않습니다. 예를 들면 어떠한 모듈을 모킹해둔 상태에서 그 모듈을 변경한다면 잘못되었지만 테스트는 잘 돌아가는 위양성 문제가 발생할 수 있으며, 회귀 테스트가 보장되지 않을 수 있습니다. 이를 보장하기 위해서는 다양한 모듈이 참여하는 통합 테스트가 필요한데요. Golang으로 통합 테스트를 작성하는 과정을 설명해보겠습니다. Pre-Condition 팀에서는 DI를 편하게 사용하기 위하여 fx라는 의존성 주입 프레임워크를 사용합니다. 여기서 만들어주는 것을 기반으로 글을 진행합니다. 생성의 책임을 위임한 서버 띄우기 최초에 테스트 환경을 어떻게 구축할지 고민을 많이 했는데요. 결론은 서버를 띄워서 ap.. 2023. 5. 21.