Skip to content

Latest commit

 

History

History
75 lines (47 loc) · 3.39 KB

2022 if KaKao.md

File metadata and controls

75 lines (47 loc) · 3.39 KB

카카오뱅크 iOS 프로젝트의 모듈화 여정: Tuist를 활용한 모듈 아키텍처 설계 사례 - 안정민(민소네)님

11000개 파일 104만줄 프로젝트가 되면서 사람이 많아지고 코드 수가 많아지면서 문제가 발생하였다.

  • 결합도 증가
  • 빌드 문제

따라서 모듈화를 진행하였습니다. 많은 모듈을 Embeded 하는 것을 관리해줄 필요가 있었습니다. (모듈 110개)

장점

  • 빠른 증분 빌드
  • 빠른 코드 실행
  • 데모앱 기반 개발
  • 빠른 테스트 작성
  • 안정적인 상품 개발

프레임워크는 동적/정적 구분이 안되어있어서 embed 하는 것을 관리가 어렵습니다.

동적 프레임워크를 Embeded 하지 않으면 크래시 정적 프레임워크 사용 시 코드 중복 복사 문제

트위스트는 하위 모듈도 알아서 Embeded 해줍니다.

모듈 구성도

Screen Shot 2022-12-25 at 1 09 39 PM

Screen Shot 2022-12-25 at 1 10 14 PM

Screen Shot 2022-12-25 at 1 11 05 PM

모듈아키텍처 설계로 얻은 이점

  • 전체적인 의존관계 파악가능
  • 증분빌드 활용
  • 코드에서 모듈로 관점 변경

후기

현재 iOS 개발시장에서 Tuist를 이용한 모듈화 아키텍처가 왜 유행하고 필요로하는지를 잘 설명해주신 것 같습니다. 쉽게 설명해주셔서 너무 좋았고 저희 회사에서도 Tuist 를 도입하여 느꼈던 이점 외에도 많은 이점들을 알게되었고(데모빌드와 같은) 모듈 문서화 등이나 어떤 기준으로 모듈의 레이어를 구분하는지도 참고 할 수 있어서 좋았습니다.

레퍼런스

https://www.youtube.com/watch?v=Up0wYoyY3o0

카카오 페이 iOS 웹뷰 소개 및 리팩토링 이야기 - 윤한울(조이)님

페이의 웹뷰의 타입

풀 스크린 웹뷰 - 스크린을 덮는 모달 방식 바텀 시트 웹뷰 네이티브 네비게이션을 지우고 웹뷰로 네비게이션 구성

초기 웹뷰

앱 스킴 방식으로 스크립트를 전달

2.0 웹뷰

스크립트, JSAPI, Configure 방식으로 이용 간단한건 Script 복잡한고 양방향은 JSAPI 인터랙션이나 핸들링 할 UI는 Configuration(구조체) Ex: 파라미터로 받아 스켈레톤 스타일, 스태이터스바 등

리팩토링

Screen Shot 2022-12-26 at 9 39 58 PM

공통되는 레이어를 모듈로 만듭니다.

후기

웹뷰를 잘쓰면 네이티브앱처럼 자연스럽고 좋은 사용자 경험을 줄 수 있는 것 같다. 또한 SwiftUI 를 쓰지 않더라도 Combine 을 종종 쓰는 회사들이 있는 것 같아서 나도 공부해보면 좋겠다는 생각이 들었다. 웹뷰를 적용하면 네이티브 개발자는 할 일이 많이 없을 줄 알았는데 나의 착각이었던 것 같다. 내가 썼던 방식은 스크립트뿐이구나.. 생각하며.. 반성하게 되었다...

레퍼런스

https://www.youtube.com/watch?v=LoquQp90xbM