학회_공부해요/기술_스터디

[LINE]멀쩡한 앱을 Flutter 앱으로 다시 짠 이유

yenas0 2023. 3. 28. 02:12
반응형

https://engineering.linecorp.com/ko/blog/demaecan-2nd-recode-kmm-to-flutter

멀쩡한 앱을 Flutter 앱으로 다시 짠 이유 - 일본 1위 배달 앱, 두 번째 Recode

안녕하세요, LINE+ ABC Studio에서 앱을 개발하고 있는 김종식, 남상혁입니다. 저희 팀은 현재 일본에서 운영하는 배달 서비스 '데마에칸(Demaecan, 出前館)' 프로덕트를 개발하고 있습니다. '데마에칸(

engineering.linecorp.com


1. flutter?
2017년 구글이 출시한 오픈 소스 크로스 플랫폼 GUI 애플리케이션 프레임워크. 다트 언어를 사용한다.

  • 크로스 플랫폼(cross-platform): 컴퓨터 프로그램, 운영 체제, 컴퓨터 언어, 소프트웨어 등이 여러 종류의 커퓨터 플랫폼에서 동작할 수 있다는 것
  • GUI(graphical user inerface): 사용자가 편리하게 사용할 수 있도록 입출력 등의 기능을 알기 쉬운 아이콘 따위의 그래픽으로 나타낸 것
  • 애플리케이션 프레임워크: 맨손으로 개발하지 않기 위해서 구조화된 것을 개발자에게 제공하는 것.

 
2. 데마에칸
일본의 대표적 배달 음식 서비스업체로 음식점과 소비자를 연결하는 플랫폼을 운영하고 배달과 포장 주문에서 발생하는 금액의 일부를 수수료로 수취한다.
 
3. 두 번째 Recode & Flutter 선택
기존 시스템의 불편함을 해소하겠다는 목표로 주문원과 배달원의 매칭 알고리즘을 개선하고 다중 배송 기능을 추가하는 등의 프로젝트를 시작했다. 첫 번째 Recode에서 Kotlin - Objective - C로 코드가 변환되어 오류 발생시 디버깅이어려웠고 기대한 바와 다르게 팀 차원에서 기술 교류가 잘 되지 않아 성장이 잘 되지 않는 등의 문제가 있었다. 
Flutter는 모바일 멀티 플랫폼 기술 중 온전히 앱 개발이 가능하기 때문에 염두에 두었으며 최종적으로 결정하게 된 이유는 자유도가 높다는 점과 플랫폼 확장성을 확보할 수 있다는 점 등이 있었다. Flutter는 Android와 iOS, PC와 웹으로도 개발할 수 있다.
 
4. 과정에서의 이슈
1) KMM과 비교해 구현 난이도가 높았던 사례
   :KMM 때는 네이티브 영여을 구현하여 복잡도가 높지 않았으나 Flutter로는 하나의 코드를 작성하다보니 코드 가독성이        저해되었다.
 
2)플랫폼별로 SDK(소프트웨어 개발 키트, Software development kit)나 패키지 작동이 다른 사례
 
3) 트러블 슈팅 사례
      ㄴ트러블 슈팅(troubleshooting): 문제 해결의 일종. 망가진 제품, 시스템 등을 수리하는 일에 적용된다.
 
   -Google 지도 관련
   -네이티브 영역에서 크래시 발생
   -제스처 미작동
   -텍스트 표시 관련 이슈
    :테스트 크기를 최대 혹은 최소로 설정 했을 때 제대로 표시되지 않는 문제를 해결하기 위해 고정된 텍스트 크기로 표시       되는 위젯을 만들어 대응하였다.


 
5.마침
평소에 배달 서비스를 즐겨 사용하는 입장에서 흥미로운 주제 같아 선택하게 되었다. 모르는 용어나 개념이 많아 글을 읽으며 중간중간 계속 검색하고 정리해야 했으나 쉽게 사용하는 배달 서비스 하나에도 사용자를 위해 고려해야 하는 부분들이 많음을 느끼게 되었다. 또한 지난 번 뱅크샐러드 레거시 서비스에 대한 스터디를 하면서도 느꼈지만 겉보기에는 변한게 크지 않아 보이는 기존의 서비스를 다른체제로 바꾸는 것이 얼마나 복잡한 일인지를 알게되어 재미있었다.

반응형