sookim-1

번호 : 002, 작성일자: 2024-02-13

2024.02.05 ~ 2024.02.12

🚴🏻‍♂️ Dart 언어 접근


지난 주부터 노마드코더에서 진행하는 Flutter챌린지를 시작했다.

Flutter는 Dart라는 프로그래밍언어를 사용 중이기 때문에 Dart언어에 대해서 먼저 시작했다.

Dart언어를 공부하면서 가장 신기했던 점은 컴파일러가 다양하다는 점이였고 대부분의 문법은 최신 프로그래밍언어들과 큰 차이가 없는 것 같았다.

Dart언어특징, 변수, 자료형, 함수, 클래스에 대해서 이번주 모두 강의가 끝났다.

강의의 특징은 Dart언어의 모든 부분을 학습하는 것이 아니라 Flutter를 사용하는데 필요한 수준정도로만 진행하는 것 같았다.

🚨 Legacy 코드 영향


프로젝트에서 프로그래밍언어 또는 라이브러리등이 업데이트가 되었을 때나 새로운 코드를 작성했을 때 영향이 갈 수 있는 기존 코드(Legacy)를 자세히 보는 습관을 가져야겠다.

🚀 Sentry


모바일앱에서 충돌이 발생했을 때 어떤 이유로 충돌이 발생했는지 알려주는 서비스로 대표적으로 Firebase Crashlytics를 사용한다.

Firebase Crashlytics는 무료이고 모바일이라는 범주안에서는 괜찮은 선택인 것 같다. 하지만 서버가 충돌했을 때 로그를 기록하기 위해서 Sentry라는 서비스도 좋은 도구라고 한다.

Sentry를 확인해보고 느낀 점은 조금 더 충돌이유와 충돌시점에 스크린샷, 뷰의 상관관계등 옵션들이 매우 다양했다.

🛫 CI/CD


Firebase AppDistribution란? 앱파일을 배포한 후 해당 서비스를 이용하여 앱을 다운로드하고 테스트할 수 있는 서비스다. 기존의 Apple에서 사용하는 TestFlight와 유사하지만 안드로이드는 TestFlight를 사용할 수 없지만 AppDistribution은 안드로이드, iOS 모두 사용가능하다.

iOS에서 사용하기 위해서는 AppTester라는 앱을 다운로드 받아야한다. 하지만 앱을 직접 다운로드할 수는 없고 웹사이트 바로가기형태로 앱을 다운로드 받을 수 있다. iOS에서 사용했을 때 느낀점은 속도는 TestFlight보다 빠른 것 같지만 프로파일설정도 해야하고 기기등록도해야하는 등 처음설정하는 부분이 복잡한 것 같았다. 그래서 안드로이드를 배포할 예정이 없는 프로젝트의 경우는 접근성이 편리한 TestFlight를 자주 사용할 것 같다.

지지난주에 만든 Slack Slash를 이용하여 배포하는 작업을 조금 변형하여 Jenkins를 이용해서 Bitbucket pipeline을 트리거하려고 Jenkins에 대해서 공부했다. 하지만 Jenkins에서 해당 파이프라인을 실행하기 위해서는 동작하는 머신이 Mac이여야 한다.

🙋🏻‍♂️ 기타 사항


  1. 네이버지도 SDK에서는 카메라영역을 제한하여 지도가 제한한 영역밖으로 이동하지 못하게 하는 기능이 있다.
  2. FCM토큰을 관리할 때 옛날에는 직접 재발급하는 코드를 제공해왔지만 현재기준으로 공식문서에서는 직접 재발급하는 작업을 권장하지 않는 것 같다.
  3. 프로젝트에서 메모리해제여부는 항상 확인하며 작업을 진행해야 한다.
태그: