도리안의 개발 잡설 #398 - 양방향 데이터 바인딩 적용 중 발생한 무한 루프
(Image from Pixabay)
안드로이드 앱을 개발하면서 설정 화면에 스위치 뷰를 추가하였다. 요즘에는 데이터 바인딩을 적용하는 것이 일반적이라 스위치에도 그것을 적용하고자 했다. 사용자가 on/off 조작을 하므로 양방향 데이터 바인딩을 적용해야 하는데, 문제는 이를 구현하면서 무한 루프가 발생했다는 것이다. 데이터 바인딩은 데이터가 바뀌면 UI 내용도 자동으로 바뀌는 것을 의미한다. 단방향 데이터 바인딩은 데이터가 바뀌면 UI도 바뀌는 것이다. 양방향 데이터는 이 뿐만 아니라 UI를 사용자가 조작해도 데이터가 변경되는 것이다. 여기서 주의해야 할 점은 '데이터 변경 -> UI 변경 -> 데이터 변경 -> UI 변경 -> ...' 패턴으로 무한 루프가 발생할 수 있다는 것이다. 이번에 이를 경험하며 잠깐이었지만 고생을 했다.
이번에는 일정상 시간 부족으로 인해 이 스위치에는 데이터 바인딩을 적용하지 않기로 했다. 왜 그렇게 했는지는 며칠 안에 보다 자세하게 적어볼 예정이다.
지난 개발 잡설들
- #397 - 잠시 붕 뜬 상태라 생각했지만, 추가로 할 일은 금방 눈앞에 나타난다
- #396 - 분위기가 뒤숭숭해서 집중력이 떨어진 하루
- #395 - 집중력이 떨어지는 하루
- #394 - API 관련 유튜브 동영상
- #395 - 안드로이드에서 내게는 아직 낯선 테이블 구현
- #394 - 우여곡절 끝에 심사 통과한 iOS 앱
- #393 - 안드로이드 앱 심사 탈락. 이유는...
- #392 - 페이스북 로그인 이슈 분석 중
- #391 - 또 다시 심사에 탈락한 iOS 앱
- #390 - 미처 보지 못 했던 페이스북 로그인 관련 이슈
- #389 - 심사 거절 당한 iOS 앱
- #388 - 쉽지 않은 두 앱 작업
- #387 - 안드로이드 앱 업로드 오류로 허비한 하루
- #386 - 은근 쉽지 않은 앱 등록 과정
- #385 - 노션으로 API 활용이 가능하구나
- #384 - 명확해진 1차 출시 일정
- #383 - 요구사항이 조금만 달려져도 개발은 쉽지 않은 듯
- #382 - 안드로이드 스튜디오의 오작동으로 힘든 하루
- #381 - 간만에 접수받은 이력서
- #380 - 간만에 재택 근무
- #379 - 공부를 계속 해야 하면 사이드 프로젝트는 언제?
- #378 - 공부 때문에 못한 조기 퇴근
- #377 - 버그 수정 중 그리고 다음 주에 새로 할 일
- #376 - 갑작스레 발생한 gitlab 서버 장애 그리고 앱 소스 복구 시도
- #375 - 구조 변경을 요하는 추가 요구 사항
- #374 - 쉽지 않은 공부의 길
- #373 - 개념이라도 알아둘 필요가 있는 PWA
- #372 - 토요일에는 휴식을, 일요일에는 공부를
- #371 - 테스트 버전 배포
- #370 - 사라져 버린 JIRA 프로젝트
- #369 - 안드로이드 내비게이션부터 차근차근 복습을...
- #368 - 갑자기 공부할 게 늘어서 당황스럽다
- #367 - 월요병이 없어서 다행이다
- #366 - 간만에 주말 근무
- #365 - 주말 근무 하기로...
- #364 - 최근 면접 본 분의 포기 의사
- #363 - 자꾸 신경쓰이는 뒷자리 직원의 잡담
- #362 - 간만에 조기 퇴근
- #361 - 작업이 길어지면서 늦어지는 자료 정리
- #360 - 프로젝트 일정대로 잘 가고 있는가...
- #359 - 맥북이 켜지지 않아 고생해야 했던 시간
- #358 - 오늘은 과감히(?) 일찍 퇴근
- #357 - GraphQL에 대해 간략히 알아두자
- #356 - 개발하면서 JIRA를 잘 활용하자
- #355 - 야근할 때 주의해야 할 점
- #354 - 주52시간 근무체계 바뀔까? 바뀌면 개발자들은 어떻게 될까?
- #353 - 클린 아키텍처 먼저 경험한 동료의 도움이 필요
- #352 - 옆 팀의 전직 안드로이드 개발자는 우리 팀으로 합류 안 하기로
- #351 - 아니 이런 미친 헤드헌터를 봤나? ㅎㅎㅎㅎㅎ
- #301 ~ #350
- #251 ~ #300
- #201 ~ #250
- #151 ~ #200
- #101 ~ #150
- #51 ~ #100
- #1 ~ #50
Sort: Trending
[-]
successgr.with (73) 2 years ago