전체 글 25

[AWS] AWS RDS - MySQL vs Aurora

개요 요즘은 Service를 구성 할 때에 DB의 선택은 필연적이 되고 있다. 최근 다양한 종류 혹은 스타일의 DB들이 있지만 전통적인 Relational Database를 아직까지도 많은 분야에 이용되고 있으며, 특히 Transaction 기능이 필요한 분야에서는 필수적으로 선택이 되고 있다. AWS에서 AWS RDS라는 DB Service를 제공하고 있다. Service형태로 DB를 제공하기 때문에 이를 사용하는 입장에서 관리적인 이점이 매우 크게 다가오기 때문에 많은 기업들과 스타트업이 service형태의 DB를 사용하고 미래의 서비스를 위해서 선택하고 있다. 이글은 AWS에서 제공하는 다양한 형태의 DB중 AWS RDS(Relational Database Service)중 MySQL과 Aurora..

개발/backend 2022.02.27

[iOS] RxSwift + Reactorkit 을 사용해서 프로젝트를 구성해보자 - Project Template

플라워로드 기술 블로그 : http://blog.flowerroad.ai 해당 글은 2021년 5월 24일에 작성되었습니다. 아래 글에서 설명하고 있는 FLo는 현재 서비스 중인 플라워로드 앱을 의미하지만, 이 글은 해당 앱의 기능적인 특징보다 RxSwift + Reactorkit을 이용해서 프로젝트의 SW architecture를 어떻게 구성 하는가에 초점을 두고 있습니다. 배경 iOS - FLo(플라워로드 앱) 1.0의 경우 서비스 초기 MVP를 target으로 개발되었기 때문에 개발 당시 구조를 생각하지 않고 최대한 빠르게 simple한 기능만을 가지는 output를 만드는것이 목표였습니다. 이후 기능들이 많아지고, 시나리오가 복잡해져감에 따라 코드의 복잡도는 더욱 심각하게 복잡해지고 읽기 힘든코드..

개발/ios 2022.02.27

[Android] Android Unit Test를 적용해보자! (Feat. mokito)

플라워로드 기술 블로그 : http://blog.flowerroad.ai 원본 Link : https://flyingcorp.notion.site/Android-Android-Unit-Test-Feat-mokito-46a4845f75304665a581772323f18877 이글은 2020년 12월 25일에 작성된 글입니다. Unit Test? 일단 유닛테스트란 구현하는 method를 테스트하는 또 다른 method의 집합체 이다. 하나의 유닛 테스트 method는 테스트 하려고 하는 method의 특정 루틴을 검사한다. 이말은 하나의 method를 테스트 하기 위해 기본적으로 성공, 실패, 예외 등 여러 유닛 테스트 method가 필요하다. 스타트업에서 바쁜데 굳이 이걸?? 소프트웨어 엔즈니어라면 한번쯤..

개발/android 2022.02.25

[ios/Android] RIBs에 대해서 알아보자 (Design Pattern)

플라워로드 기술 블로그 : http://blog.flowerroad.ai Notion Link : https://flyingcorp.notion.site/Design-Pattern-RIBs-e523ddcba2a2479b905b195179a49846 💡 이글은 2021년 2월 27일에 작성되었습니다. 이 페이지는 RIB에 대한 배경, 내용등 이론적인 부분이 정리되어 있고, 모든 내용은 RIBs 공식 페이지에서 발췌,참고,번역해서 본인의 생각을 조금 덧붙여서 작성되었습니다. RIBs? 정의 R(router) I(interacter) B(builder) 공식 GitHub에서 정의 한 바에 따르면 Cross-Platform architecture Framework이라고 정의 하고 있다. 이 말은 ios이건 an..

개발/common 2022.02.25

[Backend] 공유 스쿠터 서비스 - 플라워로드 시스템 아키텍처 : AWS Architecture

플라워로드 기술 블로그 : http://blog.flowerroad.ai Notion Link : https://flyingcorp.notion.site/Backend-AWS-Architecture-4b91609eaa7441cda0ccf06714d9948b 이 글은 2020년 1월 16일에 포스팅 되었습니다. 2022년 2월 현재는 다수의 AWS service(ex. SQS, MQ, openSearch, route53, GraphQL등등) 혹은 VPC 분리등이 적용 되어 기존 구조 혹은 서비스들의 단점이나 추가 기능들을 보완한 구조로 운영중입니다. Overview 이전 두 포스팅인 플라워로드 시스템 아키텍처 - 사용되는 기술들 과 플라워로드 시스템 아키텍처 - 데이터 Flow 에서 대략적인 플라워로드 시..

개발/backend 2022.02.24

[Backend] 공유 스쿠터 서비스 - 플라워로드 시스템 아키텍처 사용 기술들

플라워로드 기술 블로그 : http://blog.flowerroad.ai Notion Link : https://flyingcorp.notion.site/Backend-Feat-AWS-584a382a5bc04f509b44da7500eef0b3 이글은 2020.12.27 일 작성된 내용입니다. 현재 아래에 나열된 기술 이외에 더 많은 서비스, 기술들을 사용하고 있습니다. 배경 저희 플라워로드 서비스는 전동 킥보드 공유서비스 시스템입니다. 개발 초기에 backend 를 어떻게 구성할지 많은 고민을 하게 되었습니다. 제가 시스템을 설계할때만해도 국내에는 전동 킥보드 공유 서비스를 하는 업체가 전혀 없고, dockless 공유 서비스(kakao T Bike같은..) 조차도 없어서 참고 할만한 대상을 찾기 위해 ..

개발/backend 2022.02.23

[Backend] 공유 스쿠터 서비스 - 플라워로드 시스템 아키텍쳐 데이터 FloW

플라워로드 기술 블로그 : http://blog.flowerroad.ai Notion Link : https://flyingcorp.notion.site/Backend-Flow-4b657c65bef14b2496acf2b41ae9aab9 도입 이전장(플라워로드 시스템 아키텍처 - 도입편)에서 우리 플라워로드 Backend 시스템에서 사용되는 기술들에 대해서 간략하게 알아보았습니다. 여기서는 설명한 기술들을 이용해서 시스템이 어떻게 구성되어 있고, 어떤 플로우로 서비스를 제공하고 있는지 살펴볼 예정입니다. 플라워로드는 크게 사용자앱, 관리자앱, 스쿠터 세가지의 Frontend로 구분할 수 있습니다. Backend 시스템 내에서 각각의 Frontend에 따른 구분은 없고, 기본적으로 Backend의 compu..

개발/backend 2022.02.23

[iOS] UI Test 를 자동화 해보자. - Basic 사용법

개요 UI Test 는 시뮬레이터 상에서 실제 앱을 구동시켜서 가상 컨트롤러를 이용해서 정해진 시나리오 대로 조작 후 해당 시나리오에 대한 결과를expected result와 비교하여 테스트의 성공/실패를 결정한다. UI Test는 개발자들사이에서는 많이 사용되지 않는 기능이기는 하나 개발 리소스 혹은 QC에 따로 리소스를 투입하기 힘든 스타트업과 같은 회사에서는 릴리즈시 테스트에 들어가는 비용을 줄여줄 수 있다. 다만 UI Test 또한 적지 않은 단점이 존재 하는데 이중 가장 큰것은 UI/UX가 바뀔때마다 테스트 또한 다시 작성하거나 수정을 해야하는 단점이 있다. UI Test는 화면상에 보여지는 글자, 문자열, 버튼, 아이콘 등 현재의 element를 기준으로 작성이 되고 tap, input tex..

개발/ios 2022.02.20

[iOS] Unit Test run fail - Test runner naver began excuting tests after launching.

1. 증상 XCode에서 Unit test 혹은 UI Test를 실행하면 simulator가 실행되면서 splash screen이 뜨지만 이후 test들이 실행되지 않고 일정시간 후 아래와 같은 error message와 함께 실패 한다. 2. 원인 현재 apple 에서 명확한 원인은 설명하고 있지 않고 mac 과 XCode, simulator에서 실행되는 iOS의 version에 dependency가 있는걸로 보여진다. 필자는 현재 MAC 12.1(21C52), XCode Version 13.2.1 (13C100), iOS 15 에서 테스트 중이고 이 경우 위와 같이 error가 발생 3. 해결 방법 Apple 에서 해결해줘야 하나 당장 뚜련한 해결책을 내놓지 않고 있기 때문에 임시방편을 사용해서 회피..

TroubleShooting/ios 2022.02.18

[iOS] NaverMap build error - Undefined symbols for architecture

ld: warning: ignoring file /User/xxx/.../Pods/NapsMap/framework/NMapsMap.framework/NMapsMap, building for iOS Simulator-x86_64 but attempting to link with file build for unknown-unsupported file format (... Undefined symbols for architecture x86_64 1. 증상 naver map SDK를 pod로 설치 후 빌드시 발생하는 build error 2. 원인 naver map을 SDK로 설치 할때에 대용량 파일을 git에서 정상적으로 받아 오지 못해서 발생하는 현상 이는 git-lfs를 적용함으로 해결 할 수 있다. 3..

TroubleShooting/ios 2022.02.16