1일 1개념정리 24.08.09.금 ~
큰 결정에 큰 동기가 따르지 않을 때도 있다. 하지만 큰 결심이 따라야 이뤄낼 수 있다.
무조건 무조건 1일 1개의 개념 정리하기 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#40. Flutter
플러터는 팀 프로젝트에서 정말 자주 나오는 도구로, 구글에서 개발한 UI 툴킷이다. 플러터가 왜 인기가 많은지 한번 알아봅시다.

특징
무엇보다도 가장 선호하는 이유는 하나의 코드베이스로 android와 ios 앱을 동시에 개발할 수 있다는 점이다. 이를 각각 개발하는 건 매우 힘든데, 플러터는 이런 이중 작업이 아니라서 매우 효율적이다. 게다가 많이들 사용하는 조합이 플러터 + 파이어베이스 인데, 안드로이드와 ios 둘 다 개발하고 백엔드 관리도 손쉽게 할 수 있어서 빠른 개발이 가능하다.
1. Dart 언어 사용
- 플러터는 Dart라는 언어를 사용한다. 다트는 객체 지향적이고, *비동기 프로그래밍을 지원해서 UI 반응성을 높이는 데 도움을 준다. FastAPI가 사랑받는 이유가 비동기였듯, 다트도 사랑받는다. 그리고 JS와 문법이 유사하여 프론트엔드 개발자들이 쉽게 사용할 수 있다.
Q. 비동기가 왜 좋은데 ??
A. 동시에 여러 작업을 처리할 수 있게 해준다. 동기 방식은 한 작업이 끝나야 다음 작업을 할 수 있다. 그니까 커피 주문하고 상대가 커피 줄 때 까지 가만히 있는게 동기작업이다. 근데 비동기는 특정 작업이 끝날 때까지 기다리지 않고 다른 작업을 계속할 수 있어서 효율적이다. 비동기, 동기는 다음 포스팅을 참고하자.
1일1개 (22) - 동기 vs 비동기
1일 1개념정리 24.08.09.금 ~ 큰 결정에 큰 동기가 따르지 않을 때도 있다. 하지만 큰 결심이 따라야 이뤄낼 수 있다.무조건 무조건 1일 1개의 개념 정리하기 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!#22. 동기 vs 비동
100won-developer.tistory.com
2. 테스트 지원
- 플러터는 유닛 테스트, 위젯 테스트, 통합 테스트를 지원하여, 애플리케이션의 품질에 도움을 준다.
3. 퍼포먼스 튜닝
- Flutter는 GPU를 활용한 렌더링을 통해, 고품질의 애니메이션과 부드러운 스크롤을 제공한다. UX 측면에서 이는 중요하다.
4. 기타
- Flutter는 개발에 필요한 다양한 도구와 플러그인을 제공합니다. 예를 들어, Firebase와의 통합이 쉽고, RESTful API 호출을 위한 라이브러리도 잘 마련되어 있습니다. 그리고 커뮤니티도 활발해서 참고할 자료가 많다.
단점
- 크기 : 플러터는 기본적으로 다른 *네이티브 앱보다 크기가 더 클 수 있는데, 초기 로딩시간에 영향을 준다. 플러터가 네이티브 앱보다 큰 이유는, 자체 렌더링 엔진과 프레임워크를 포함하기 때문이다. 네이티브 앱은 플랫폼에서 제공하는 시스템 라이브러리와 UI 요소를 그대로 사용하지만, 플러터는 모든 UI 요소와 그래픽 렌더링 엔진을 자체적으로 포함해야한다. 그래서 크기가 더 커진다.
- 네이티브 기능 통합의 복잡성 : 특정 플랫폼의 고유 기능을 사용하려면 네이티브 코드와의 통합이 필요할 수 있으며, 이 과정이 복잡할 수 있습니다.
- 업데이트 : Flutter는 비교적 최신 기술이라 업데이트나 변경이 많아 호환 문제가 발생할 수 있다. 그리고 아직 모든 기능이 완벽하지 않을 수도 있다.
네이티브 앱 (플러터X)
위에서 말하는 네이티브 앱이 뭘까 ?? 일단 플러터는 네이티브 앱이 아니다. 네이티브 앱은 특정 플랫폼(Android, ios 등)에서 동작하도록 해당 플랫폼 고유의 언어로 개발된 애플리케이션이다.
ex)
Android : Java, Kotlin을 사용해서 Android Studio로 개발
ios : Swift나 Objective-C를 사용해서 Xcode로 개발
이렇게 개발하면 다음과 같은 장점이 있다.
- 플랫폼 맞춤 개발 : 네이티브 앱은 플랫폼에 맞춰 개발되기 때문에, 해당 OS의 모든 기능을 최대한 활용할 수 있다. 그래서 카메라, GPS, 알림 시스템 등을 직접 사용할 수 있다.
- 빠른 성능 : 아무래도 네이티브 앱은 플랫폼에서 최적화된 언어로 되어있으니까 속도나 성능 측면에서 뛰어나다. 게임이나 대규모 데이터 처리 같은 복잡한 기능을 구현할 때 적합하다. UX 측면에서도 최적화돼서 좀 더 부드럽고 자연스러운 느낌을 주게 된다.
그럼 모두 네이티브로만 하면 되는 것 아니냐? 할 수 있는데, 그건 아니다. 네이티브 앱의 단점은 다음과 같다.
- 이중 개발 필요 : android와 ios용을 따로 개발해야 하기 때문에 번거롭다.... 말 그대로 2번 개발해야한다. 이는 비용, 시간 등이 매우 크게 소모된다.
- 유지보수 복잡성 : 두 플랫폼에서 코드가 다르기 때문에, 버그 수정이나 기능 추가 시 각각 따로 작업해야 한다. 그래서 유지보수 하는 사람들도 서로 다른 사람이 하게 된다. 애당초 다른 언어니까 ....
그런데 플러터는 크로스 플랫폼이 가능해서 이중 작업을 피하면서도 어느정도 네이티브 앱의 성능을 유지할 수 있다. 그래서 많이 사랑받고 있다 ....
'1일 1개념정리 (24년 8월~12월) > 기타 WEB , GIT 등' 카테고리의 다른 글
1일1개 (99) - 프론트엔드 백엔드 연동할 때 99% 만나는 에러 (0) | 2024.12.07 |
---|---|
1일1개 (36) - Nexacro (1) | 2024.09.18 |
1일1개 (24) - 햄 vs 햄스터 (0) | 2024.09.03 |