Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

카카오뱅크 모바일앱 개발 이야기

3,477 views

Published on

박이랑(bernard.park) / 카카오뱅크
---
카카오뱅크의 모바일앱은 어떻게 개발되었는지 그 험난한 비하인드 스토리에 대해 얘기하고, 기존 은행에 대한 불편한 점들을 어떻게 카카오뱅크만의 차별점으로 만들었는지에 대해 말해봅니다. 또한 현재는 어떻게 은행 앱을 운영/개발하고 있는지 카카오뱅크만의 노하우를 공개합니다.

Published in: Software
  • Be the first to comment

카카오뱅크 모바일앱 개발 이야기

  1. 1. 카카오뱅크 모바일앱 개발 이야기 박이랑(bernard.park) 카카오뱅크
  2. 2. 발표자 소개 박이랑 bernard.park 모바일 개발 파트 (bernard.park@kakaobank.com) 다음카페 대문 - 포토 에디터 - 디지털뷰 지도 - 수식 편집기 - 스마트 업로더 Pix (사진 필터) - 키즈스토리 - 위드 - 솔깃 - 카카오스토리 카카오뱅크
  3. 3. 들어가기에 앞서 ‘ 카카오뱅크 모바일앱, 이렇게 만들었어요. ’ 개발 - 오픈 - 운영까지 시간 순으로 설명 각 시간 시점의 주요 이벤트 별 비하인드 스토리 질문 예측 자답 시스템
  4. 4. 모바일앱서버 코어뱅킹 빅데이터 인프라 카카오뱅크 시스템 대략적인 구성도 이번 발표 영역
  5. 5. 2016. 05. 01 우리가 은행앱을 만든다고? x 2016.7.25 2016.11.8 2016.12.1 2017.1.16 2017.4.5 2017.5.25 2017.7.27 2018.9.32016.6.12016.5.1 2017.12.20
  6. 6. 열정 우리가 은행앱을 만든다고? • 안드로이드 1명, 아이폰 1명, 디자인 1명 서로 모여 앉아... • 은행을 만든다고 해서 왔긴 왔는데... • 실감 나지 않고 불안했던 시기 • 해맑고 의욕적인 아이데이션 안정성 기초튼튼 막연함 두려움 2016.5.1
  7. 7. 다같이 모여 아이디어를 냈던 시절... • 이런 은행이었으면 좋겠다 • 기존 은행에서 이것만은 없었으면 좋겠다 • 이런 적금이 있었으면 좋겠다 • 내가 꿈꾸는 은행앱의 첫 화면은? • 내가 생각하는 간편한 이체의 모습은? • 친구들과 함께 할 수 있는 형태는 없을까? 어떤 질문들을 던졌는지? • 앱에서 돈을 쉽게 빌리는 모습은? ( 2016.5.3 ) 우리가 은행앱을 만든다고?2016.5.1
  8. 8. 2016. 06. 01 4명에서 의욕적인 출발 x 2016.7.25 2016.11.8 2017.1.16 2017.4.5 2017.5.25 2017.7.27 2018.9.32016.5.1 2016.6.1 2016.12.1 2017.12.20
  9. 9. 4명에서 의욕적인 출발2016.6.1 이때 머릿속의 은행의 모습 안드로이드 개발자 1명과 iOS 개발자 1명의 극적인 합류 이체 계좌조회 예금 적금 대출 외환 ‘‘ 안드로이드 2명, iOS 2명이니깐.. 그래 ~! 이제 해보자 ~!! ’’
  10. 10. 4명에서 의욕적인 출발2016.6.1 본격적인 개발 환경 만들기 착수 개발 프레임워크 논의 및 적용 오픈소스 라이브러리 선정 보안 솔루션 선정 • 효율적인 개발을 위해 필수 • 오픈 이후 안정적인 개발 위해 • MVC / MVP / MVVM • 최신 트렌드 반영 • 검증되지 않은 라이브러리 지양 • 이후 추가는 신중히 검토 • 업체 미팅 및 선정
  11. 11. 예상질문 ① 카카오뱅크 앱에서 사용하고 있는 보안 솔루션은 어떤 것들이 있나요?
  12. 12. 예상질문 ① 카카오뱅크 앱에서 사용하고 있는 보안 솔루션은 어떤 것들이 있나요? 난독화 소스코드 난독화 앱 위변조 탐지 안티디버깅 등 루팅/탈옥 백신 Android 루팅 탐지 iOS 탈옥 감지 악성앱 방어 백신 Android / iOS Android / iOS Android
  13. 13. 예상질문 ① 카카오뱅크 앱에서 사용하고 있는 보안 솔루션은 어떤 것들이 있나요? 가상키보드 가상 키보드 보안 내재화 지문/패턴/핀 지문/패턴 로그인 지문/핀 거래 인증 내재화 자체인증서 공인인증서 대체 내재화
  14. 14. 2016. 07. 25 첫 프로토타입 시연회 x 2016.11.8 2017.1.16 2017.4.5 2017.5.25 2017.7.27 2018.9.32016.6.1 2016.7.252016.5.1 2016.12.1 2017.12.20
  15. 15. 2차 프로토타입 시연회2016.11.8 ‘ 계좌 개설 프로세스 ’ (그 당시 기준) 상품 설명서 휴대폰 본인확인 고객정보 입력 비밀번호 입력 약관 동의 신청서 작성 체크카드 신청 신분증 확인 타행계좌 이체 계좌개설 완료
  16. 16. 첫 프로토타입 시연회2016.7.25 ‘‘ 계좌 개설은 어떤 느낌일까? ’’ • 로그인 > 홈 > 요구불 개설 • 디자인이 붙어있지 않은 상태 범위 • 계좌 개설 프로세스의 느낌을 느끼고 싶다.. 상태 목적
  17. 17. 예상질문 ② 이 시기에 개발적인 중요한 의사결정을 했을 것 같은데 어떤 것들이 있었나요?
  18. 18. 예상질문 ② 이 시기에 개발적으로 중요한 의사결정을 했을 것 같은데 어떤 것들이 있었나요? 하이브리드 앱 네이티브 앱 오픈소스 미사용 오픈소스 적극 사용 OS 최소 버전 낮음 OS 최소 버전 : iOS 9, AND 4.3 iOS 개발 언어 : Objective C iOS 개발 언어 : Swift ‘ 가보지 않은 길을 가다 ’
  19. 19. 예상질문 ② 이 시기에 개발적으로 중요한 의사결정을 했을 것 같은데 어떤 것들이 있었나요? ‘ 모바일 퍼스트 ’ 모바일 퍼스트였기 때문에.. 모바일 퍼스트로 하지 않았다면.. • 모바일 퍼스트에 대해 뜨거운 찬반 논쟁 • 모든 프로세스를 모바일 사용자 경험으로 고민할 수 있었음 • 조금만 애매한 케이스는 모두 웹에서 하라고 했을.. • 현재 PC의 역할은 증명서 발급 등 모바일을 뒷받침하는 정도
  20. 20. 2016. 11. 08 2차 프로토타입 시연회 x 2016.7.25 2017.1.16 2017.4.5 2017.5.25 2017.7.27 2018.9.32016.11.82016.5.1 2016.12.12016.6.1 2017.12.20
  21. 21. 2차 프로토타입 시연회2016.11.8 ‘‘ 디자인을 입힌 모습은 어떨까? ’’ • 가입 > 로그인 > 홈 > 요구불 개설 > 이체 • 서버 연동과 디자인이 적용된 상태 범위 • 카카오뱅크를 어떤 모습으로 만들고 있는지 공유 상태 목적
  22. 22. 2차 프로토타입 시연회2016.11.8 ‘ 생각보다 좋았던 당시 분위기 ’ ‘‘ 그래~ 될 것 같다! 계속 열심히 만들어보자~ ’’ 이뻐서 은행앱 같지 않아 보임 돈이 왔다 갔다 하긴 하는데.. 신기함 ‘‘ 괜찮다.. ’’ 라는 반응이 많았음~
  23. 23. 2016. 12. 01 좌충우돌 험난한 시련 x 2016.7.25 2017.1.16 2017.4.5 2017.5.25 2017.7.27 2018.9.32016.11.82016.5.1 2016.12.12016.6.1 2017.12.20
  24. 24. 좌충우돌 험난한 시련2016.12.1 입출금 계좌 이체 예적금 외환 카드 보안센터비상금 마이너스 신용대출 고객센터 홈 회원 약관 설명서 푸시알림 전자서명 영상통화 핀 재설정 보안점검 메뉴접근 에러 팝업 디자인 검수 네트웍 보안 재수행 접근제한 업데이트 추천탭가이드탭 패턴 재설정 . . . . . . ‘ 까도 까도 계속 나오네.. ’
  25. 25. 좌충우돌 험난한 시련2016.12.1 ‘ 네이티브 앱 개발 시행착오 ’ 기존 개발사례 없음 빠른 대응에 대한 두려움 안드로이드/iOS 동기화
  26. 26. 예상질문 ③ 왜 하이브리드 앱으로 만들지 않고 네이티브 앱으로 만들었는지?
  27. 27. 예상질문 ③ 왜 하이브리드 앱으로 만들지 않고 네이티브 앱으로 만들었는지? 네이티브 앱 속도를 절대 따라갈 수가 없음 넘사벽 2개 플랫폼의 사용자 경험(UX) 만족시킬 수 없음 불가능 하이브리드 앱의 히든 코스트 꼭꼭 숨겨짐 1. 1개의 코드 베이스에서 2개의 앱을 운영하는 게 더 어려움 2. 최신 OS 대응 및 신규 기능을 대응하기가 어려움 3. 웹 개발자와 앱 개발자의 협업 비용 ※ 히든 코스트 하이브리드 앱의 단점
  28. 28. 예상질문 ③ 왜 하이브리드 앱으로 만들지 않고 네이티브 앱으로 만들었는지? 개선됨 • 안드로이드 : 2시간 • 아이폰 : 3일 ~ 7일 > 1일 더 깔끔함 • 코드/관리 부분에서 오히려 더 깔끔함 • 네이티브 개발 툴은 좋은 성능과 정교한 레이아웃을 만들 수 있는 최적의 툴 제공 오히려 절약 • 장기적으론 시간과 비용이 절감되는 효과 버그 또는 UI 수정에 앱 업데이트가 필요함 2개의 플랫폼을 각각 개발해야 함 시간과 개발인력이 더 많이 들어감 네이티브 앱의 단점
  29. 29. 예상질문 ③ 왜 하이브리드 앱으로 만들지 않고 네이티브 앱으로 만들었는지? 은행 고객들이 원하는 건 거창한 게 아닐 수도 있다는 생각 은행앱의 빠른 성능 좋은 사용자 경험 (UX) 고객의 입장에서 고민한 흔적들 그래서 네이티브 앱으로 개발하기로 결정
  30. 30. 예상질문 ③ 왜 하이브리드 앱으로 만들지 않고 네이티브 앱으로 만들었는지? 카카오뱅크도 힘들었지만 견뎠다 아무도 가보지 않았던 길이기 때문에 주변의 우려 훨씬 좋을 거라는 믿음과 직접 써보면서 생긴 확신 험난했지만 흔들리지 않았던 기존 은행과는 다른 경영진 카카오뱅크의 네이티브 앱 개발 결정은 순조로웠나?
  31. 31. 2017. 01. 16 은행업 본인가 심사 x 2016.7.25 2017.4.5 2017.5.25 2017.7.27 2018.9.32016.11.82016.5.1 2017.1.162016.12.12016.6.1 2017.12.20
  32. 32. 은행업 본인가 심사2017.1.16 ‘ 은행이 되기 위한 최종 심사 ’ 본인가 신청 2017.1.6 본인가 심사 2017.1.16 본인가 승인 2~3개월
  33. 33. 은행업 본인가 심사2017.1.16 ‘ 본인가를 위한 마지막 시연 ’ 마지막 시연을 위한 준비 • 영업을 할 수 있는 수준의 품질 ( + 시연 전용 시나리오 ) 금융당국 심사 관계자들에게 앱 시연 • 안과 밖의 다른 풍경 • 가입 > 계좌개설 > 일반/간편이체 > 예/적금 개설 > 비상금 대출 등
  34. 34. 2017. 04. 05 본인가 승인 x 2016.7.25 2017.5.25 2017.7.27 2018.9.32016.11.82016.5.1 2017.1.16 2017.4.52016.12.12016.6.1 2017.12.20
  35. 35. 본인가 승인2017.4.5 ‘ 공식적인 은행업 인가 ’ 본인가 승인 기념 만찬.. 그란데 말입니다. • 이틀전에 타사 인터넷 은행 런칭 (2017.4.3) 2년 뒤 타임캡슐 ( ~ 2019.4.5 ) • 2년 뒤 카카오뱅크의 모습 • 2년 뒤 카카오뱅크에서 나의 모습
  36. 36. 본인가 승인2017.4.5 버그 버그 버그 집 버그 타사 은행 일정 본인가 만찬
  37. 37. 2017. 05. 25 클로즈 베타 오픈 x 2016.7.25 2017.7.27 2018.9.32016.11.82016.5.1 2017.1.16 2017.4.5 2017.5.252016.12.12016.6.1 2017.12.20
  38. 38. 클로즈 베타 오픈2017.5.25 ‘ 실질적인 오픈 = 실전 ’ 내부 및 협력사 직원에게 실제로 은행 오픈 • 장애가 나면 실제 상황 • 이슈가 나올 때마다 걱정과 긴장의 연속 베타 오픈 피로 + 스트레스 + 긴장감
  39. 39. 클로즈 베타 오픈2017.5.25 ‘ 실질적인 오픈 = 실전 ’ 사내 CBO 사내직원 협력사 CBO 협력사 직원 주주사 CBO 카카오, 한국투자 등
  40. 40. 2017. 07. 27 퍼블릭 오픈 x 2016.7.25 2018.9.32016.11.82016.5.1 2017.1.16 2017.4.5 2017.5.25 2017.7.27 2017.12.202016.12.12016.6.1
  41. 41. 퍼블릭 오픈2017.7.27 00시 07시 10시 3일 뒤 1.0.0 스토어 출시 팝업으로 막아둠 팝업 제거 오픈 대략 동접 2천명 대략 동접 2~3만명 접속 장애 당직근무 접속 안정화 . . . 안드로이드 출시 당시 iOS 출시 당시
  42. 42. 2017. 12. 20 앱 안정화에 집중 x 2016.7.25 2018.9.32016.11.82016.5.1 2017.1.16 2017.4.5 2017.5.25 2017.7.27 2017.12.202016.12.12016.6.1
  43. 43. 앱 안정화에 집중2017.12.20 안드로이드 일자 업데이트 유형 아이폰 일자 업데이트 유형 1.0.0 2017.07.27 정규 업데이트 1.0.0 2017.07.27 정규 업데이트 1.0.1 2017.07.29 1.0.1 2017.07.29 1.0.2 2017.08.04 1.0.2 2017.08.08 권장 업데이트 강제 업데이트 1.0.3 2017.08.17 1.0.3 2017.08.17 1.0.4 2017.08.28 1.0.4 2017.08.28 1.0.5 2017.09.04 1.1.0 2017.09.25 정규 업데이트 1.1.0 2017.09.25 정규 업데이트 1.2.0 2017.11.06 정규 업데이트 1.2.0 2017.11.06 정규 업데이트 1.2.1 2017.11.15 1.2.3 2017.11.18 1.2.4 2017.11.20 강제 업데이트 1.2.2 2017.11.20 강제 업데이트 1.3.0 2017.12.06 정규 업데이트 1.3.0 2017.12.08 정규 업데이트 1.3.1 2017.12.07 1.3.1 2017.12.20 강제 업데이트 앱 업데이트 히스토리 ( ~ 2017.12.20)
  44. 44. 앱 안정화에 집중2017.12.20 은행이기 때문에 할 수밖에 없었던 노력들 고객 현장지원/해결 문제 고객에게 직접 앱설치 대응 휴대폰 제조사와 협업 • 오픈 초기 안드로이드에서 특정 디바이스 오류들 발생 (키스토어) • 개발/기획자가 직접 고객을 만나서 원인 파악 및 해결 • 긴급한 상황의 고객에게 대응버전의 앱을 전달해서 원인 파악 및 해결 • LG/삼성전자/애플과 디바이스 오류에 대해서 협업
  45. 45. FaceID 로그인 빠른 적용 앱 안정화에 집중2017.12.20 빠른 최신 OS 대응 빠른 최신 OS 대응 • 아이폰 X 대응 • 안드로이드 오레오 대응 • 개발툴 및 SDK 빠른 업데이트
  46. 46. 예상질문 ④ 네이티브 앱이라서 빠른 대응이 힘들지 않나요?
  47. 47. 예상질문 ④ 네이티브 앱이라 빠른 대응이 힘들지 않나요? 네이티브 앱 배포는 빠른 대응을 하는데 충분했음 앱 심사 시간 : 30분 ~ 1시간 노출까지 걸리는 시간 : 10분 ~ 1시간 노출까지 걸리는 시간 : 10분 ~ 2시간 안드로이드 iOS 앱 심사 시간 : 대략 1일 웬만한 대응은 거의 가능 배포 후 문제가 생기면 롤백 또는 핫픽스
  48. 48. 예상질문 ④ 네이티브 앱이라 빠른 대응이 힘들지 않나요? 그럼 정말 긴급한 대응은? 중요하거나, 자주 변경될 데이터는 서버에서 가져오도록 사전 설계 앱 안정화 기간에 서버에서 데이터를 가져오도록 지속적으로 작업 앱 배포 없이 웬만하면 서버 배포로 해결 시간을 다투는 배포는 거의 없었음
  49. 49. 2018. 09. 03 지금은 열심히 영업 중 x 2016.7.25 2016.11.82016.5.1 2017.1.16 2017.4.5 2017.5.25 2017.7.27 2018.9.32016.12.12016.6.1 2017.12.20
  50. 50. 지금은 열심히 영업 중2018.9.3 2018.1.23 2018.4.10 세이프박스 1000만원 확대 2018.5.23 지문(FaceID)으로 거래 가능 대출 만기연장 기능 추가 2018.6.26 26주적금 출시 체크카드 신규 3종 추가 2018.7.23 보안 강화 : OTP 항상 가능 전월세 보증금 대출 출시
  51. 51. 예상질문 ⑤ 어떻게 일하고 있나요?
  52. 52. 예상질문 ⑤ 어떻게 일하고 있나요? 은행이지만 애자일 하게 ... 일일 10분 스크럼 회의 주 단위 스프린트 자기주도적인 자유로운 업무 할당 앱 릴리즈 후 회고 세미나, 스터디 등 자기계발 시간 보장
  53. 53. 예상질문 ⑥ 모바일앱 품질관리는 어떻게 하고 있나요?
  54. 54. 예상질문 ⑥ 모바일앱 품질관리는 어떻게 하고 있나요? 은행이라서 철저하게 ... 철저한 코드리뷰 단위 테스트 UI 자동화 테스트 QA 테스트
  55. 55. 예상질문 ⑥ 모바일앱 품질관리는 어떻게 하고 있나요? UI 자동화 테스트 패턴 로그인 > 홈 > 탭 이동 패턴 로그인 > 홈 > 계좌이체
  56. 56. 2016.5.1 2016.6.1 4명에서 의욕적인 출발 우리가 은행앱을 만든다고? 2016.7.25 첫 프로토타입 시연회 2016.11.8 2차 프로토타입 시연회 2016.12.1 좌충우돌 험난한 시련 2017.1.16 은행앱 본인가 심사 2017.4.5 2017.5.25 클로즈 베타 오픈 본인가 승인 2017.7.27 퍼블릭 오픈 2017.12.20 앱 안정화에 집중 2018.9.3 지금은 열심히 영업 중 요약
  57. 57. 질문 1. 질문 2. 이 시기에 개발적으로 중요한 의사결정을 했을 것 같은데 어떤 것들이 있었나요? 카카오뱅크에서 사용하고 있는 보안 솔루션은 어떤 것들이 있나요? 질문 3. 왜 하이브리드 앱으로 만들지 않고 네이티브 앱으로 만들었는지? 질문 4. 네이티브 앱이라서 빠른 대응이 힘들지 않나요? 질문 5. 어떻게 일하고 있나요? 질문 6. 모바일앱 품질 관리는 어떻게 하고 있나요? 요약
  58. 58. 마치며 ...
  59. 59. ‘‘ 카카오뱅크 앱은 ’’
  60. 60. ‘‘ 오픈하기까지 많은 험난한 과정들을 잘 견뎌냈습니다 ’’
  61. 61. ‘‘ 오픈 후에도 많은 시행착오를 겪었고 ’’
  62. 62. ‘‘ 네이티브 앱의 운영 노하우를 쌓으며 성장하고 있습니다 ’’
  63. 63. ‘‘ 그리고 여러분들의 과분한 사랑은 ’’
  64. 64. ‘‘ 은행의 역사를 바꾸는 첫번째 앱이 되어달라고 ’’
  65. 65. ‘‘ 고객을 위한 은행이 되어달라고 말하는 것 같습니다 ’’
  66. 66. ‘‘ 이런 과분한 사랑에 보답하기 위해 ’’
  67. 67. ‘‘ 더 카카오뱅크스럽게 고객을 위해 만들겠습니다 ’’
  68. 68. ‘‘ 앞으로도 많은 사랑과 응원 부탁드립니다 ’’
  69. 69. 감사합니다.

×