Good programmer 3 - 최소화 하기

in #kr-dev7 years ago

첫번째 글에서 코드량에 대해서 이야기를 했는데, 좀 바꾸어 이야기 해 보도록 하겠습니다.

  • 작성하는 코드는 최소가 되어야 하며, 중복은 없어야 합니다.
  • 저장소 크기는 최소한으로 유지해야 합니다.

한번은 오픈마켓 쇼핑몰에서 개발팀장과 이런 이야기를 한적이 있습니다.

"코드 유지 보수가 안된다"
소스 저장소가 기가 단위다"

소스코드만 저장소에 들어있다면 이럴리가 없지만, 각종 이미지, UI 등등 많은 파일들이 올라가서 이러한 일이 생겼습니다.
처음부터 그런건 아니었겠지만, 일단 커지면 수습할 수 없습니다. 그 주된 원인은,

$ git add *
$ git commit -m "7/17일 작업"

question1.jpg

"해결 방법은 없을까?"
"12번가를 만들면 좀 나아질 수 있을거야, 그래도 안되면 13번가를 만들고, 20번가쯤 되면 좋아지겠지"
"12번가를 만들어서 잘 될 자신이 있으면 그렇게 했지... ㅠ.ㅠ"

저장소의 크기는 Continuous Integration/ Continuous Delivery 에도 치명적인 영향을 줍니다.
저장소 하나가 1기가라면 CI/CD 도구를 사용하기 위해 얼마나 많은 디스크 용량이 소모될까요?

페이스북은 매일 2번 정도의 코드 수정이 일어납니다. 그 동안 서비스가 멈추지 않으며, 우리는 "어 이게 언제 추가되었지?" 하면서 다른 점을 발견합니다.
페이스북 개발자가 코드를 생산하면,

각종 테스트 "Unit test", "Integration test", "Acceptance test" 등등이 수행되고,
코드 리뷰가 진행되며, 이러한 일련의 과정이 통과되면 서비스에 반영됩니다.

반영하는 과정에도 테스트가 포함되어있을 것이고, 컴퓨터가 서비스에 코드 수정을 반영합니다.
이러한 소프트웨어 Integration/Delivery 를 CI/CD 라고 합니다.

우리는 네트웍이나 저장소의 사용량에 대해서 큰 관심을 갖지 않습니다만,
이것은 비용 계산을 하지 않아서입니다.

네플릭스는 5년마다 새로 개발한다고 합니다.
새롭고 효율적인 방법을 도입하고 비용을 절감하는 것입니다.
네플릭스가 1년에 서비스하는 영화가 1억개라고 합시다.
여기서 네트웍크 사용량 및 저장소를 줄여 1불씩만 줄인다면 1억불이 줄어들게 되겠지요?

다음에는 코딩 중급으로 넘어가기 위한 테스트와 리팩토링에 대해서 이야기를 하려고 합니다.

감사합니다.

  1. 내가 관리할 수 있는 코드량은? https://steemit.com/kr-dev/@agile/good-programmer-1
  2. HOWTO be Professional https://steemit.com/kr-dev/@agile/good-programmer-2-howto-be-professional
  3. 최소화 하기 *
  4. 코딩 중급으로 가는 길
Sort:  

좋은 글 감사합니다. 인디 게임을 만들고 있는데요. 뭐랄까요 그러다보니 정말 회사라던지 대규모 단위에서 있을 법한 일들에 대해서는 무지하거든요. 이런 글 좋네요 감사합니다.

애자일님 덕분에 애자일을 조금씩 알아갑니다.

벌써 궁금하네요