일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- compose
- 문제개선
- Developer
- WorkManager
- foregroundservice
- 앱심사대응
- 개발시작
- Kotlin
- SharedPreference
- 모바일앱개발
- Swift
- 앱심사경험
- 개발자도전기
- Jitpack
- chatGPT
- SwiftUI
- 코루틴
- 상태관리
- 앱개발
- coroutines
- 안드로이드
- 코틀린
- 문제해결
- EncryptedSharedPreferences
- 초보개발자
- ios
- 클래스 설계
- androidstudio
- Java
- Android
- Today
- Total
개발린생
데이터 바인딩이란 무엇일까? (with Android&Swift) 본문
스위프트 컨퍼런스에 방문하기 전, 스위프트 입문자로써 어느정도 개념, 정보, 지식 등 알고가면 좋겠다는 생각이 들었다.
내가 키워드를 알고 있다면 검색을 해보겠고, 시간의 여유가 있다면 전문 서적을 읽어보겠지만
시간이 없으니 chatGPT를 통해 알아보자!! (미리 공부안함...
역시 chatGPT는 누군가가 블로그에 작성할만한 개념 정도로 요약해줬고,
항상 그랬듯이 난 꽂히는 키워드를 질의하는 식으로 접근했다.
(요새는 새로운 정보를 찾다가도, 이미 겪어봤지만 제대로 짚고가지 못한 것을 공부하려고 함)
chatGPT는 알고 가면 좋은 개념 중 Combine을 언급했다.
- Combine: 데이터 스트림과 SwiftUI에서 데이터 바인딩을 다룰 때 중요한 개념
안드로이드 개발을 할 때도 dataBinding, viewBinding이 존재하기 때문에, 데이터 바인딩이라는 키워드가 눈에 들어왔다.
그리하여 데이터 바인딩에 대한 글을 작성하게 되었다.
바인딩(Binding) 이란?
바인딩(Binding)은 소프트웨어 개발에서 데이터와 UI 요소를 연결하는 것을 말한다.
데이터를 변경하면 UI가 자동으로 업데이트되거나, 반대로 UI에서 사용자의 입력이 데이터에 자동으로 반영되도록 도와준다.
Android와 Swift의 데이터 바인딩 개념 비교
바인딩의 일반적인 의미
- 연결: 데이터(Model)와 UI(View)를 연결하는 것이다.
- 자동 업데이트: 데이터가 변경되면 UI가 자동으로 변경되고, UI 입력이 데이터에 반영된다.
- 목적: 코드 간결화와 유지보수성을 높이는 것이다.
Android에서의 데이터 바인딩과 뷰 바인딩
View Binding:
- 역할: XML 레이아웃 파일과 해당 뷰를 연결하며, 기존 findViewById를 대체한다.
- 사용법: 자동으로 생성된 바인딩 클래스를 통해 레이아웃의 뷰에 접근한다.
- 특징:
- 단순히 XML 뷰와 코드의 연결만 담당한다.
- 데이터 변화에 따른 UI 업데이트는 직접 구현해야한다.
Data Binding:
- 역할: XML에서 정의된 UI와 데이터(Model)를 직접 바인딩한다.
- 사용법: XML 파일에서 표현식을 통해 데이터를 UI에 바인딩하고, 데이터가 변경되면 UI가 자동으로 업데이트된다.
- 특징:
- 양방향 데이터 바인딩이 가능하다.
- XML에서 코드 없이 데이터 로직 작성이 가능하다.
iOS Swift에서의 데이터 바인딩
Swift에서는 데이터 바인딩이라는 용어 자체는 덜 쓰이지만, 같은 역할을 하는 Combine이나 SwiftUI의 데이터 흐름이 있다.
Swift의 데이터 바인딩:
- Combine:
- 이 프레임워크는 Swift에서 데이터와 UI를 연결하는 도구이다.
- UIKit 또는 AppKit에서도 Combine을 활용해 데이터 바인딩을 구현할 수 있다.
SwiftUI의 데이터 바인딩:
- @State와 @Binding: SwiftUI에서 데이터와 UI를 연결하는 핵심 키워드
- 역할: 데이터가 변경되면 UI가 자동으로 업데이트된다. 반대로 UI에서 데이터를 변경하면 상태도 변경된다.
💬 안드로이드 Data Binding과 View Binding에 대한 내 생각
난 개인적으로 Data Binding 보다는 View Binding을 더 많이 사용하고, 선호한다.
뷰 바인딩은 데이터 바인딩이 출시된 후 뷰 바인딩이 출시되었다.
뷰 바인딩의 목적은 데이터 바인딩의 복잡성을 줄이고, 단순히 XML 뷰와 코드 간 연결을 쉽게 만드는 것이다.
비교하자면 데이터 바인딩이 뷰 바인딩에 비해 더 구조적이고, 특히 MVVM 패턴을 구현할 때 유리하지만,
나의 경우 안드로이드는 주로 MVC 패턴으로 구현해와서인지 데이터 바인딩이 복잡하게 느껴진달까..
그리고 난 XML 파일에서 표현식을 사용하는 것이 가독성이 떨어지는 느낌이 든다. 뷰 바인딩이 좀 더 단순하고 직관적이다.
💬 Swift, SwiftUI 데이터 바인딩, Combine은..
개념적으로만 학습하고 실제로 개발하며 경험해봐야할 것 같다.! 아자자🤣
'Dev Lab ✧.·˚ > Android & iOS' 카테고리의 다른 글
[Android/Compose] 별점 평가 Rating Bar 라이브러리 제작 및 배포 경험 (2) | 2024.12.14 |
---|---|
[Android/Kotlin] API Response 공통 필드 효율적으로 처리하기 (1) | 2024.11.28 |
Compose와 SwiftUI 기본 구조 - 리스트 및 반복 처리 (2) | 2024.11.09 |
Compose와 SwiftUI 기본 구조 - 레이아웃 시스템 (2) | 2024.10.25 |
Compose와 SwiftUI 기본 구조 - Composable 함수와 View 구조체 (2) | 2024.10.21 |