글 목록
-
Study
무엇을 단위로 볼 것인가?
단위 테스트란?단위 테스트란 무엇일까? 당장 구글에 단위 테스트를 검색하면 '가장 작은 단위의 코드 블록(함수 또는 메서드)을 검증하는 테스트'라는 설명이 보편적이다. 나도 그렇게 알고 있었고, 실제로 그렇게 많이 알려져 있는 듯 하다. Classicist, Mockist그런데 최근에 단위 테스트란 무엇인가를 정의하는 두 학파(클래시스트(Classicist), 모키스트(Mockist)) 가 있다는 것을 알게 됐다. 대뜸 처음 듣는 말이어서 두 학파의 이야기를 알아보았다. 두 학파가 다르게 보는 것은 '무엇이 단위인가?' 에 대한 것이다. 여러 가지 차이가 있지만, 근본적으로 단위를 보는 관점이 다름으로부터 오는 차이들이다. Classicist 는 단위를 [관련 클래스들의 모음] 으로 정의한다. 이는 너무..
-
Study
가족 아카이브
가족 아카이브를 만들면서우리 가족은 평일에는 대부분 흩어져서 지내고, 대신 1년에 두세 번 정도로 자주 다 같이 여행을 간다. 그런데 그렇게 찍은 사진들은 각자의 폰 갤러리에, 또는 여러 개의 단톡방에 흩어져 있었다. 즉, 가족이 함께 쌓아온 히스토리를 한군데 모아두고 같이 들여다볼 공간이 없었던 것이다. 또, 톡방에 올라온 사진은 업로드된 그 순간만 보게 되고, 대화에 밀려 올라가고 나면 거의 찾아보지 않게 된 채로 만료기간이 지나는 일이 허다했다. 이런 것들이 문제로 여겨져 가족 아카이브를 기획하게 되었다.그래서 가족 8명이 사용할 가족 아카이브를 만들었다. 배포/사용/피드백/개선/배포 루프를 벌써 여러 번 돌았다. 그 안에서 가족들의 목소리로 서비스가 변화하는 모습들을 담아 보았다.기획: MVP를 ..
-
Study
DDD 는 silverbullet일까?
DDD는 silverbullet일까?DDD(Domain-Driven Design)는 그때나 지금이나 개발자들 사이에서 최고의 해법처럼 회자되는 방법론이다. 정확한 뜻을 몰라도 이름만으로 뭔가 있어 보이는, 오히려 초심자 입장에서 더 끌리게 되는, 그런 매력을 가진 이름이라고 생각한다. 프로젝트 당시 나 또한 그에 끌리는 사람 중 한명이었기 때문에, 프로젝트에 DDD를 도입하자는 팀원들의 제안을 마냥 뿌리치기가 힘들었다.본격적으로 도입을 준비하면서 공부를 시작했는데, 조금씩 의문이 생기기 시작했다. "우리 프로젝트에서 사용해도 괜찮은가?" "DDD를 해서 우리가 실제로 얻는 게 뭘까?" 하는 질문들이었다. 나도 DDD 전문가는 아니었기 때문에 아키텍처 경험이 있는 지인에게도 조언을 구했는데, 원칙 수준의 ..
-
카테고리 없음
CI 의 사실과 오해
CI 의 사실과 오해다음은 전에 내가 블로그에 적어놓은 ci 와 cd 에 대한 정의이다. *** "CI - 지속적 통합 지속적 통합은, 빌드 및 테스트 자동화를 말한다. 다시 말해, 지속적인 "통합" 자체를 자동화 해 주지 않는다. 지속적으로 통합을 하는 것을 목표로, 빈번한 통합을 유용하게 해 주는 작업( = 개발자가 직접 하면 많은 리소스가 낭비되는 작업인 빌드&테스트 를 자동화) 인 것이다. CD 는 두 가지가 있다. 지속적 제공(Continuous Delivery), 지속적 배포(Continuous Deployment) 가 그것인데, 둘은 CD 단계에서 "자동화가 어느 수준까지 진행되었는지" 에 따라 갈리는 개념이다. " *** 위 설명, 특히 ci 에 대한 설명을 보면 ci 라기보단 c..
-
Study
코드리뷰를 왜 할까?
팀 프로젝트를 하면서 내게 가장 지루했던 일은 코드리뷰였다. 남이 한 작업물을 보며 내가 작성한 코드처럼 이해하고 리뷰해야 한다니. 백엔드 개발자가 4명이면 내 코드보다 4배의 코드를 샅샅이 살펴봐야 한다. 정말 개발자답지 않은 관점이지만 안타깝게도 내가 느끼는 것이 그랬다. 코드리뷰로 나에게 그리고 팀에게 어떤 득이 생기는지 피부로 이해하지 못했던 것 같다. 마지막 팀 프로젝트까지도 내게 가장 지루한 작업은 코드리뷰였고, 멘토와 이 사실을 이야기했을 때 질문을 받았다." 코드리뷰를 하는 이유가 뭐라고 생각해?" 코드리뷰를 하는 이유단순해 보이는 질문이었는데, 막상 대답하려니 생각보다 말이 매끄럽게 안 나왔다. 내 대답은 다음과 같았다. "코드 리뷰를 하는 이유는 두 가지 측면이 있을 것 같다. 하나는..