본문 바로가기
Daily Life/Diary

Simple is the Best

by devson 2022. 5. 2.

세상엔 어떤 문제를 풀기위한 수십가지 방법들이 있다.
그렇기에 개발자로서 우리는 무언가를 만들면서 "좋은" 결정을 내려야한다.

 

그러면 "좋은" 결정이란 무엇일까?

나같은 경우, 개발에서 "좋은" 결정은 요구사항을 충족시키면서 동시에 간단하고 이해하기 쉬운 것이라고 생각한다.

매 챌린지 마다 항상 우아하게, 복잡하게 갈 필요는 없다고 생각한다.

 

만약 '분산 시스템에서 Unique ID 생성하기'와 같은 주제를 찾아보았다면 아마도 Flickr의 Ticket Server 방식을 본 적이 있을 것이다.

https://code.flickr.net/2010/02/08/ticket-servers-distributed-unique-primary-keys-on-the-cheap/

 

이 방식은 동일한 년도에 발표한 Twitter의 Snowflake 방식보다 매우 심플한 아이디어를 제시한다.

 

또한 위 Flickr의 글의 말미에서 이렇게 얘기한다.

So There’s That

It’s not particularly elegant, but it works shockingly well for us having been in production since Friday the 13th, January 2006, and is a great example of the Flickr engineering dumbest possible thing that will work design principle.

 

개인적으로 복잡한 솔루션을 선호하진 않는다.

사람으로서 한 번에 생각할 수 있는 정보의 양은 그리 크지 않고,

복잡한 시스템 내에 있는 각각의 컴포넌트들을 동시에 고려할 순 없기 때문이다.

 

테크 블로그에 올릴만한 "우아한" 솔루션도 좋지만

쉽고 단순한 그렇지만 제대로 동작하는 솔루션이 최고의 솔루션이 아닐까?

 


같이 읽어볼만한 글

https://disquiet.io/@jennyh/makerlog/530

http://laughingmeme.org/2009/09/29/try-coding-dear-boy/

댓글