Skip to content

Instantly share code, notes, and snippets.

@appkr
Last active Nov 9, 2020
Embed
What would you like to do?
러시아 페인트공, 마세라티, 야크 털깍기

러시아 페인트공 알고리즘

페인트공이 첫날은 차선 페인트 작업을 300야드 칠함 둘째 날은 150야드 칠함 셋째 날은 30야드 칠함 첫 날은 어떻게 10배를 칠했는지 관리자가 묻자 저도 어쩔 수 없었습니다. 매일 페인트 통에서 점점 멀어지니까요

  • "조엘 온 소프트웨어" by 조엘스폴스키(스택오버플로, 트렐로 창업자)
  • 잘 작동했지만 일정 이상 규모가 되면 급격히 성능이 저하되고 문제를 일으키는 코드
  • 레거시, 기술 부채 등

마세라티 문제

  • 어떤 마세라티 모델과 색상을 구매할 지 고민하는 것. "boat naming"이라고도 함
  • 나중에 마세라티를 살 능력이 됐을 때 할 고민을 미리하는 것
  • 당장 필요하지 않은 기술을 담보되지 않은 미래의 큰 성공에 대비하여 준비하는 것
  • 천만명을 처리할 서비스는 사용자가 10만은 됐을 때 고민하면 됨

-> 엔지이어만 있는 스타트업에서 자주 발생하는 현상

야크 털깍기

  • 어떤 목적을 달성하기 위해 전혀 상관없는 연속된 작업을 해야 하는 상황

봄이 와서 세차를 하려는데 호스가 터졌음 차로 HomeDepot에 가서 호스를 사려면 다리를 지나야 하는 데 통행 카드가 필요함 통행 카드가 없어서 옆집 Bob한테 빌려 달라했더니, 내 아들이 캠핑간다고 Bob한테 베개를 빌린 후에 안 갖다 줬다함 그런데 Bob에게 빌린 베개를 보니, 속에 있던 야크 털이 많이 빠져서 지금 베개를 갖다 줄 수 없음 그래서 세차를 하기 위해 동물원에 가서 야크 털을 깍는 중 "이제는 작은 것이 큰 것이다" by 세스 고딘

  • e.g. 컴파일된 바이너리/패키지가 이미 있는데, 성능 어쩔시구리..라며 소스코드를 직접 컴파일함
  • e.g. SaaS를 쓰면 될 것을 내부에서 직접 구현하거나 설치 (e.g. 그룹웨어가 대표적 사례)
  • 예정보다 많은 시간이 걸리면 멈추고, 원래 하려고 했던 것을 상기해보고, 야크털을 깍고 있다면 과감히 중지할 것

출처: https://www.slideshare.net/ssuser800974/laravel-69640926

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment