Upgrade to Pro — share decks privately, control downloads, hide ads and more …

설레발 주도 개발

설레발 주도 개발

매시업 안드로이드 세미나 발표 자료

---

## 1. 인트로

안녕하세요, 저는 설레발 주도 개발이라는 주제로 발표할 지성빈입니다. 땡땡 주도 개발. 다들 많이 들어보셨을 법한 개발 방법론인데요,

## 2. 현실 세계의 흔한 주도 개발

우리 주변에서 흔하게 볼 수 있는 주도 개발로는 테스트 주도 개발, 도메인 주도 개발, 행위 주도 개발, 모델 주도 개발, 데이터 주도 개발이 있습니다.

## 3. 아는 사람만 아는 주도 개발

이 밖에 아는 사람만 아는 주도 개발로는 이력서 주도 개발, 알콜 주도 개발, 커피 주도 개발, 주둥아리 주도 개발, 설레발 주도 개발도 있습니다.

이 발표에서는 마지막 항목에 있는

## 4. 설레발 주도 개발

설레발 주도 개발. 하입 드리븐 디벨롭맨트를 소개합니다. 이 개발 방법론을 알고 있으면 개발에 도움이 될 거라 생각되어 이를 주제로 선정하였습니다.

## 5. 설레발 주도 개발 - 2

설레발 주도 개발은 2016년 11월 23일에 등장한 개발 방법론으로, 무려 8년에 가까운 역사를 갖고 있습니다.

설레발 주도 개발은 소프트웨어 구조 설계 과정에서 시작합니다. 우리 주변에서 가끔 볼 수 있는 설계 과정을 예시로 들어 보겠습니다.

## 6. 소프트웨어 구조 설계 과정

먼저 SNS 혹은 주변 개발자들 사이에서 핫한 기술 스택을 조사합니다.

## 7. 소프트웨어 구조 설계 과정 - 2

조사한 스택 중에서 내가 사용해 보고 싶은 스택을 선정합니다.

## 8. 소프트웨어 구조 설계 과정 - 3

선정된 스택을 바로 소프트웨어 구조로 도입합니다.

## 9. 소프트웨어 구조 설계 과정 - 4

단, 제대로된 연구나 프로젝트에 미치게 될 영향의 진지한 고민 없이 오직 재미만 고려되었습니다.

## 10. 설레발 주도 개발자

이런 과정으로 소프트웨어 구조가 설립된다면 그 팀은 모두 설레발 주도 개발자가 됩니다. 간단하죠?

## 11. HDD의 다양한 방법 - 트위터

이 밖에도 설레발 주도 개발, 줄여서 HDD를 시작할 수 있는 방법은 다양합니다.

트위터는 보통 GDE나 인플루언서분이 가장 먼저 소식을 전하는 곳입니다. 트위터에 올라온 핫한 기술에 기반을 주고 기술 스택을 선정한다면 트위터 주도 개발로 HDD를 시작할 수 있습니다.

## 12. HDD의 다양한 방법 - 컨퍼런스

개발 컨퍼런스는 새로운 기술을 공유하기 정말 좋은 기회입니다. 컨퍼런스에서 들은 새로운 기술을 기반으로 HDD를 시작할 수도 있습니다.

## 13. HDD의 다양한 방법 - 목소리 큰 사람

또한 옆에서 어떤 사람이 이번에 등장한 새로운 기술을 써보고 싶다고 계속 떠든다면 우리도 모르게 그 사람에 현혹되어 새로운 기술로 HDD를 시작하고 있을 수도 있습니다.

## 14. HDD의 다양한 방법 - 라이브러리

라이브러리는 다른 사람의 코드를 활용함으로서 적은 노력에 비해 큰 이점을 얻을 수 있습니다. 즉, 과한 라이브러리의 사용도 HDD의 시작점이 되기 정말 좋습니다.

## 15. HDD의 다양한 방법 - 지식인

마지막으로 정말 유명한 방법으로 지식인 주도 개발이 있습니다. 스택 오버플로우나 블로그에 있는 코드 스니펫을 제대로 이해하지 않고 그냥 복붙해 오는 방법입니다.

지금까지의 발표를 들었을 때 무슨 생각이 드시나요?

## 16. 이건 하면 안 되겠는데

혹시 “이건 하면 안 되겠는데..?” 라는 생각이 드셨나요? 그렇다면 정상입니다. 이 발표는 HDD를 하면 안 되는 이유를 소개합니다.

## 17. HDD 나쁜점

설레발의 출처는 대부분 SNS라는 공통점이 있고, SNS는 새로운 아이디어의 테스트가 끝나기도 전에 잽싸게 전파되는 성질이 있습니다. 새로운 아이디어의 장단점이 모두 파악되기 훨씬 전부터 설레발 폭풍이 들이닥치게 됩니다.

## 18. HDD 나쁜점

설레발 폭풍에 갇힌 개발자는 나쁜 결정을 쉽게 내리도록 유도하고, 잘못된 기술 스택 선정은 팀 전체를 평생 괴롭힐 수 있습니다.

대부분의 설레발 폭풍은 비슷한 구조를 갖습니다.

## 19. 설레발 1단계

큰 문제가 있던 회사가 있습니다. 회사의 개발자는 겪고 있는 문제의 해결책이 현재의 기술 스택이나 구조를 넘어서는 일이라 판단했습니다. 따라서 새로운 프레임워크나 라이브러리, 혹은 패러다임을 만들어서 문제를 해결합니다.

## 20. 설레발 2단계

문제를 해결한 팀은 신나서 결과물을 세상에 보여주고 팀만의 해결책을 자랑합니다. 사람들은 새로운 형태의 결과물을 보고 흥분하고 사용해 보고 싶은 욕구가 생기지만, 이 결과물이 무엇을 해결하고자 탄생했는지는 이해하지 못합니다.

## 21. 설레발 3단계

방금 보았던 신기술이 대단하고 흥미롭다는 생각이 지속되고, 이 신기술이 우리 팀에도 도움 될 거란 설레발을 갖고 도입을 결정합니다.

## 22. 설레발 4단계

작업이 계속되면서 앞서 도입한 신기술이 크게 도움이 되지 않고 있다는 걸 느낍니다. 오히려 더 많은 학습이 필요해지고 재작성되는 코드만 점점 늘어나고 있었습니다.

## 23. 설레발 5단계

팀은 뒤를 돌아보고 성급한 신기술 도입의 대가가 무엇이었는지 생각해 봅니다. 곧이어 이게 무엇을 위한 기술이었는지를 깨닫습니다.

## 24. React 설레발

예전에 페이스북으로부터 리액트라는 새로운 기술이 발표되었을 때 비슷한 현상이 있었습니다.

페이스북은 복잡한 상태 관리 이벤트로 정신이 사납고 전체적인 상태가 어떻게 되어가고 있는지 추적하기 어렵던 문제가 있었습니다.

## 25. React 설레발 - 2

페이스북은 해당 문제의 해결책으로 새로 개발한 리액트라는 프레임워크의 핵심 키워드를 가지고 새로운 패러다임을 홍보하기 시작합니다.

## 26. React 설레발 - 3

리액트 설레발 폭풍에 빠진 개발자가 탄생하고, 큰 고민 없이 팀 내에 리액트를 도입합니다.

## 27. React 설레발 - 4

이후로 아주 많은 일들이 진행되지만 별다른 성과는 나오지 않습니다.

## 28. React 설레발 - 5

리액트는 실시간 알림이 아주 많은 단일 페이지 웹 앱을 만드는데에 아주 훌륭하지만,
그보다 간단한 경우에는 딱히 필요 없는 기술이었음을 깨닫습니다.

저를 포함한 이 발표를 듣는 여러분도 생각해 보면 나도 모르게 HDD를 하고 있던 경우가 있을 겁니다.

## 29. HDD 예방법

HDD는 내가 원하는 기술을 도입하기 전에 충분히 연구하고 테스트해 보는 아주 간단한 단계로 예방할 수 있습니다.

앞으로 새로운 기술을 레퍼런스가 아니라 경험으로 배우도록 해봅시다. 신기술 도입을 결정하기 전에 해당 기술을 이용한 프로토타입을 빠르게 만들어봐도 좋습니다.

또한 새로운 기술로 해커톤을 진행해 봐도 좋습니다. 이렇게하면 팀원들의 경험에 기반한 현명한 결정을 내릴 수 있습니다.

## 30. HDD 응용

그렇다면 HDD는 아예 무쓸모일까요? 모든 기술은 특정한 문제를 해결하기 위해 만들어집니다. 특정한 문제에 공감할 수 있고 현재 겪고 있는 문제에 속한다면 HDD를 시작하기 좋은 시기입니다.

## 31. 끝!

제 발표는 여기까지입니다. 이 발표가 여러분의 슬기로운 개발 생활에 도움이 되길 빕니다. 감사합니다.

Ji Sungbin

May 31, 2023
Tweet

More Decks by Ji Sungbin

Other Decks in Technology

Transcript

  1. 현실 세계의 흔한 주도 개발 • Test Driven Development •

    Domain Driven Development • Behavior Driven Development • Model Driven Development • Data Driven Development
  2. 아는 사람만 아는 주도 개발 • Resume Driven Development •

    Alcohol Driven Development • Coffee Driven Development • Ju Dung A - Li Driven Development • Hype Driven Development
  3. 소프트웨어 구조 설계 과정 1. SNS 혹은 주변 개발자들 사이에서

    핫한 기술 스택을 조사한다. 2. 내가 사용해 보고 싶은 스택을 선정한다.
  4. 소프트웨어 구조 설계 과정 1. SNS 혹은 주변 개발자들 사이에서

    핫한 기술 스택을 조사한다. 2. 내가 사용해 보고 싶은 스택을 선정한다. 3. 선정된 스택을 바로 도입한다.
  5. 소프트웨어 구조 설계 과정 1. SNS 혹은 주변 개발자들 사이에서

    핫한 기술 스택을 조사한다. 2. 내가 사용해 보고 싶은 스택을 선정한다. 3. 선정된 스택을 바로 도입한다. 4. 단, 제대로 된 연구나 프로젝트에 미치게 될 영향의 진지한 고려 없이. Only 재미.
  6. HDD의 다양한 방법 • 트위터 주도 개발 • 컨퍼런스 주도

    개발 • 목소리 큰 사람 주도 개발 • 라이브러리 주도 개발
  7. HDD의 다양한 방법 • 트위터 주도 개발 • 컨퍼런스 주도

    개발 • 목소리 큰 사람 주도 개발 • 라이브러리 주도 개발 • 지식인 주도 개발
  8. 라는 생각이 들었다면 정상입니다. 이 발표는 HDD를 하면 안 되는

    이유를 소개합니다. 이건 하면 안 되겠는데..?
  9. HDD가 그렇게 나빠? • 설레발의 출처는 대부분 SNS이다. 
 SNS는

    새로운 아이디어의 테스트가 끝나기도 전에 잽싸게 전파되는 성질이 있다. 
 새로운 아이디어의 장단점이 모두 파악되기 훨씬 전부터…
  10. HDD가 그렇게 나빠? • 설레발의 출처는 대부분 SNS이다. 
 SNS는

    새로운 아이디어의 테스트가 끝나기도 전에 잽싸게 전파되는 성질이 있다. 
 새로운 아이디어의 장단점이 모두 파악되기 훨씬 전부터… • 👉 나쁜 결정을 쉽게 내리도록 유도한다. 
 기술 스택 선정을 한번 잘못하면 팀 전체를 평생 괴롭힐 수 있다.
  11. 1단계: 진짜 문제와 해결책 1. 큰 문제가 있던 회사가 있다.

    2. 해당 문제의 해결책은 현재의 기술 스택이나 구조를 넘어서는 일이라 판단했다. 3. 새로운 프레임워크나 라이브러리, 혹은 패러다임을 만들어서 문제를 해결했다.
  12. 2단계: 발표, 자랑, 설레발 키워드 1. 문제를 해결한 팀은 신나서

    결과물을 세상에 보여주고 팀만의 해결책을 자랑한다. 2. 사람들은 결과물을 보고 흥분하고, 사용해 보고 싶은 욕구가 생긴다. 3. 하지만 이 결과물이 무엇을 해결하고자 탄생했는지는 이해하지 못했다.
  13. 3단계: 빠돌이 탄생 1. 새로운 기술이 대단하고 흥미롭다는 생각이 계속된다.

    2. 이 신기술이 우리 팀에도 도움 될 거란 설레발을 갖고 도입을 결정한다.
  14. 4단계: 실망 1. 작업이 계속되면서 앞서 도입한 신기술이 크게 도움이

    되지 않고 있다는 걸 느낀다. 2. 오히려 더 많은 학습이 필요해지고 재작성되는 코드만 점점 늘어나고 있었다.
  15. 5단계: 현실 인식 1. 팀은 뒤를 돌아보고 성급한 신기술 도입의

    대가가 무엇이었는지 생각해 본다. 2. 이게 무엇을 위한 기술이었는지를 깨닫는다.
  16. React로 알아보는 현실 세계의 설레발 1. 페이스북이 문제에 직면합니다. 


    복잡한 상태 관리 이벤트로 정신이 사납고 전체적인 상태가 어떻게 되어가고 있는지 추적하기 어렵습니다.
  17. React로 알아보는 현실 세계의 설레발 1. … 2. 페이스북이 함수형,

    가상 DOM, 컴포넌트 같은 키워드로 새로운 패러다임을 홍보하기 시작합니다.
  18. React로 알아보는 현실 세계의 설레발 1. … 2. … 3.

    빠돌이: 페이스북이 새 시대의 프론트엔드 프레임워크를 만들었다! 이제 모든 것들을 리액트로 다시 만들자!
  19. React로 알아보는 현실 세계의 설레발 1. … 2. … 3.

    … 4. 아주 많은 일들이 진행되지만 별다른 성과는 나오지 않습니다.
  20. React로 알아보는 현실 세계의 설레발 1. … 2. … 3.

    … 4. … 5. 리액트는 실시간 알림이 아주 많은 단일 페이지 웹 앱을 만드는데에 아주 훌륭하지만, 
 그보다 간단한 경우에는 딱히 필요 없는 기술이었습니다.
  21. HDD 예방법 결정하기 전에 연구하고 테스트하기 • 레퍼런스가 아니라 경험으로

    기술을 배우자. • 결정을 내리기 전에 새로운 기술을 이용한 프로토타입을 빠르게 만들어봐도 좋다. 
 • 새로운 기술로 해커톤을 진행해 보자. • 팀원들의 경험에 기반한 현명한 결정을 내릴 수 있다.
  22. 지성빈 감사합니다. 이 발표는 Marek Kirejczyk의 Hype Driven Development 를

    기반으로 합니다. 이 슬라이드에는 토스팀에서 제공한 토스페이스가 적용되어 있습니다.