월요일, 1월 21, 2019

[B급 프로그래머] 1월 3주 소식(개발/관리도구, 고성능 서버/데이터베이스 부문)

(오늘의 짤방: 소스트리의 한국인 개발자 채용 방식 via @caesiumpark)
  1. 개발/관리도구
  2. 고성능 서버/데이터베이스
보너스: 어떤 사이트의 아이디 정책 via @hibiyasleep
EOB

토요일, 1월 19, 2019

[B급 프로그래머] 동작하게 만들고, 제대로 만들고, 빠르게 만든다

소프트웨어 개발에 있어 가장 중요한 원칙 중 하나는 "동작하게 만들고, 제대로 만들고, 빠르게 만든다"라고 생각한다. 일단 동작하지 않으면 프로그램을 작성한 의미가 없기 때문에 동작에 최우선순위를 부여하고, 일단 동작하면 리펙터링으로 클린 코드를 만들어 유지보수와 확장이 가능한 형태로 만들고, 마지막으로 성능 튜닝과 최적화로 들어가야 한다. 이런 방식은 사업적으로도 무척 의미가 깊다. 이런 원칙을 어길 경우 개발이 지연되며 이는 사업적인 기회를 상실하게 만들거나 고객과 약속을 지키지 못하게 만드는 주요 원인이 된다. 지난 번에 올려드린 [B급 프로그래머] 모바일 앱이 아닌 웹 사이트부터 시작해야 하는 이유라는 글에서도 복잡한 모바일 앱 대신 웹부터 먼저 만들어야 한다는 주장이 나오는데 일맥 상통하는 내용으로 보인다.

Make It Work, Make It Right, Make It Fast라는 글을 읽다보니 사업적으로 풀어서 설명한 내용이 있어 소개드리겠다.

  1. 동작하게 만든다: 프로젝트를 성공이라 부르기 위해 사업에 필요한 최소 요구 사항을 충족시킨다.
  2. 제대로 만든다: 프로그램의 오류 처리를 강화하고 기능을 풍부하게 만들기 위한 부가 기능을 추가한다.
  3. 빠르게 만든다: 처리 과정에서 낭비를 찾아 제거한다. 시작 과정에서 파악한 몇 가지 가정은 올바르지 않을 가능성이 있다. 불필요한 비즈니스 논리를 제거하고, 더 나은 성능을 위해 코드를 개선하라.

'동작하게 만들고, 제대로 만들고, 빠르게 만든다'라는 원칙을 다양한 각도로 바라볼 수 있지만, 한 가지 사실은 확실해보인다. 일단 최소로 동작하는 프로그램을 만들어라. 이는 당신이 관리자이거나 기획자이거나 개발자이거나 상관없이 적용 가능한 몇 안 되는 교훈 중 하나이므로, 프로젝트 진행 과정에서 사람들 사이에 논쟁이 발생할 경우 가장 중요한 의사 결정 수단으로 사용하면 좋겠다.

EOB

수요일, 1월 16, 2019

[B급 프로그래머] 1월 2주 소식(빅데이터/인공지능, 암호화폐/블록체인, 읽을거리 부문)

(오늘의 짤방: What weird things have you used as a bookmark ? via @PhilosophyMttrs)
  1. 빅데이터/인공지능
  2. 암호화폐/블록체인
  3. 읽을거리
보너스: 감귤 생산 시기 via @jeju__orange
EOB