데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      [데보션영과 함께하는 책읽기-24편] 핵심만 골라 배우는 젯팩 컴포즈 후기

      세연 24.12.01
      614 2 0
      DEVOTEE 요약
      데보션 영 3기는 '핵심만 골라 배우는 젯팩 컴포즈' 책을 통해 Jetpack Compose에 대해 공부하는 스터디를 진행했습니다. 스터디에서는 주로 상태 호이스팅 패턴과 같은 Jetpack Compose의 개념을 배우고 이를 실제 프로젝트에 적용해보며 실습을 통한 학습을 강조했습니다. 세 명은 스터디를 통해 서로의 인사이트를 공유하고, Jetpack Compose의 활용 방법에 대해 깊게 이해하며 앱 개발을 진행하였습니다.
      DEVOTEE 추천 블로그

      안녕하세요! 🤗

      Android 개발자 영들이 모여있는 '핵심만 골라 배우는 젯팩 컴포즈' 스터디의 TechWave조 장세연, TechWave조 피유진, DIVA조 노원희입니다!


      DEVOCEAN에서 관심 분야가 같은 영끼리 모여 도서 스터디를 할 수 있도록 도서를 지원해주시는데요!

      Android를 xml로 만 개발해봐서 'JetPack Compose'에 눈이 많이 갔던 저희는 Android를 딥하게 공부해보고

      Jetpack Compose도 사용해보고자 '핵심만 골라 배우는 젯팩 컴포즈' 도서를 선택했습니다.

      JetPack Compose를 다루는 책이 많지 않아서 검색에 시간을 많이 썼고, Android 개발하는 영들도 모아 스터디를 진행했습니다. 🤓


      젯팩 컴포즈 스터디 팀의 스터디 과정 소개드립니다! :D

      image.png


      스터디 진행 방식 📚

      세 명 모두 xml 개발만 해보고 Jetpack이 처음이었다보니, 다같이 이해하는 게 첫 번째 목표였고 누군가 이끌어주는 게 아니라 각자 공부해서 취합하고 더 성장하는 것을 목표로 했습니다.

      그래서 아래와 같이 지켜야하는 점을 정해두고 각자 공부해와서 공유하고, 소감을 정리하는 시간을 가졌습니다.

      스터디에서 지켜야할 것

      • 책을 읽고 와서 어려웠던 내용 공유하기

      • 안드로이드를 개발해본 경험이 있다보니, 기존에 알고 있었던 점과의 차별점, 그리고 앞으로 어떻게 잘 적용할 수 있는가에 대한 토론하기


      스터디 톺아보기 👀

      저희가 스터디를 하면서 작성했던 내용 중 하나를 가져와봤어요! :)


      ✅ 오늘의 주제 : 상태 호이스팅


      1️⃣ 내용 정리

      • 상태 호이스팅은 자식 컴포저블에서 부모 컴포저블로 상태를 전달하는 패턴을 말한다.

      • 부모 컴포저블이 상태를 소유하고 자식 컴포저블은 이벤트 핸들러를 통해 상태를 업데이트하는 구조를 가진다.

      • 이 패턴을 활용하면 상태 관리와 컴포저블 재사용성을 높일 수 있고, 더 명확하고 유지보수하기 쉬운 코드를 작성할 수 있다.

      // 부모 컴포저블
      @Composable
      fun DemoScreen() {
          var textState by remember { mutableStateOf("") }
          val onTextChange = { text: String ->
              textState = text
          }
          MyTextField(text = textState, onTextChange = onTextChange)
      }
      
      // 자식 컴포저블
      @Composable
      fun MyTextField(text: String, onTextChange: (String) -> Unit) {
          TextField(
              value = text,
              onValueChange = onTextChange
          )
      }

      위 코드는 부모 컴포저블에서 textState를 소유하고, 자식 컴포저블(MyTextField)로 전달한다.

      자식은 상태를 직접 소유하지 않고, 이벤트 핸들러를 통해 부모의 상태를 업데이트한다.


      2️⃣ 배운 점


      세연

      플러터 개발할 때 상태 호이스팅을 사용했던 경험이 있어서 익숙했지만, 젯팩 컴포즈에서도 동일한 개념으로 쓰인다는 점이 흥미로웠다.

      기존에 얕은 지식으로 실전에서 사용했었는데, 이론적으로 정리된 내용을 보니 더 명확하게 이해할 수 있었다.

      특히 부모와 자식 컴포저블 간 상태 관리가 어떻게 이루어지는지 코드로 보니, 재사용성을 높일 수 있는 방식이라는 점에서 설계적으로 훌륭하다고 느꼈다.

      유진

      안드로이드 개발을 오래 했지만 상태 관리 부분은 항상 조금 복잡하게 느껴졌었다.

      상태 호이스팅을 사용하면, 부모 컴포저블에서 자식 컴포저블에 이벤트와 상태를 함께 전달하기 때문에 더 직관적으로 관리할 수 있을 것 같았다.

      기존의 XML 기반 레이아웃에서의 데이터 바인딩과의 차이점을 고민하며, 실전 프로젝트에서 어떻게 활용할지 토론에서 이야기해본 게 좋았다.

      원희

      코드로 보니 상태 호이스팅의 구조가 꽤 간단해서 빠르게 적용할 수 있을 것 같다.

      이전에 뷰모델과 XML 레이아웃을 활용했을 때보다 훨씬 효율적으로 상태를 전달할 수 있다는 느낌이 들었다.

      앞으로 프로젝트에서 부모 컴포저블과 자식 컴포저블의 역할을 명확히 나눠서 구조적으로 더 깔끔하게 만들고 싶다.


      스터디원들의 각자 제일 인상깊었던 / 배운 내용

      세연

      안드로이드를 좀 해본 사람이라면 젯팩 컴포즈, 코루틴은 해봐야 한다! 고 들어와서 코루틴이 궁금했는데 제대로 배워본 적은 없었습니다.

      그래서 책의 목차를 보며 젯팩 컴포즈와 코루틴이 모두 있는 책을 열심히 찾았는데요!

      이 책을 통해 프로그래밍에 존재하던 한 형태인 것도, 내가 자주 사용했던 코드와 유사하게 생긴 것도 처음 알게 되었습니다.

      또한, 스터디원분들께 많이 배웠는데요.

      저는 Android 개발을 2년 전에 배우고 프로젝트 하나 해본 정도였는데,

      다른 분들은 Android를 많이 개발해보셔서 인사이트를 듣거나 스터디에 나온 주제에 대해 어떻게 생각하는지 자세히 들어볼 수 있는 기회였습니다.

      앞으로도 책을 참고해서 Android 공부를 이어나가볼 예정입니다. 😊


      유진

      책을 참고하면서 처음 접하는 젯팩 컴포즈를 이해할 수 있었고 조금씩 적용시켜 나가는 것에 적응할 수 있었습니다.

      처음 사용한 것을 이 책을 통해서 사용하게 되었고 프로젝트 중 갤럭시 워치 앱 개발을 해야하는 프로젝트가 있어서 처음으로 직접 적용해보았습니다.

      직접 적용시키다보니 이해가 좀 더 빨랐던 것 같고 모르는 내용이 있다면, 막막한 부분이 있다면 책을 참고해서 도움을 많이 받았던 것 같습니다.

      앱 개발을 완료할 수 있었고 어려운 내용은 아니지만 어떻게 접근해야할지, 어떤 방식으로 시작할지에 대한 감이 안잡혔던 것 같은데 이용할 수 있는 속성을 알고 하나씩 적용해볼 수 있었습니다. 👍🏻


      원희

      젯팩 컴포즈는 기존의 XML 뷰 시스템과는 완전히 다른 패러다임을 가진 UI 툴킷이라 처음에는 다소 생소했지만, 책의 프로젝트 기반 학습 방식의 구성 덕분에 한 걸음씩 이해하며 나아갈 수 있었습니다.

      단순히 개념만 배우는 것이 아니라 실습을 통해 직접 검증하며 배울 수 있어서 '이게 이렇게 동작하는구나!' 하고 체감하며 학습할 수 있었습니다.

      그중에서도 가장 인상 깊었던 내용은 '모디파이어 연결 순서'의 중요성이었어요.

      공식문서의 모디파이어 각 함수에 대한 설명만을 읽었을 때는 모디파이어를 그냥 나열하면 원하는 대로 작동할 줄 알았는데,

      책에서 'Chapter 24. 모디파이어 이용하기'를 읽고 나니 연결 순서가 결과물에 큰 영향을 미친다는 걸 알게 되었습니다.

      덕분에 개발 도중에 발생했던 UI 관련 오류를 빠르게 해결할 수 있었고, 컴포즈의 디테일을 이해할 수 있는 좋은 기회가 되었습니다.

      또한, 상태 관리와 UI의 동기화를 어떻게 효율적으로 처리할 수 있는지도 배우며, 이번 데보션 개발 과제 프로젝트에도 실제로 적용해보는 경험을 할 수 있었습니다 😚


      소감과 후기 😚

      💚 세연

      저는 선언형 UI로 개발해본 경험이 있는데요! Flutter로 앱을 만들며 선언형 UI, 상태 관리를 해봐서 이해는 많이 어렵지 않았습니다.

      그런데 Android를 xml로 개발하다가 Compose UI로 전환하려니 많이 달라서 당황스러웠습니다. 😂

      도서 스터디에 함께 참여하는 유진이가 같은 팀이어서 '올랑올랑' 프로젝트를 Jetpack Compose로 만들어보자! 큰 다짐을 하고 시작했지만

      아예 Compose로는 못 만들 것 같아서 혼용해서 사용하기로 했고, 어려운 뷰는 xml로 만들었습니다.

      하지만, 이것도 xml과 Compose UI를 혼용하는 게 너무 어려워서 xml로 다시 코드를 다 바꾸기도 했는데요. 🥲

      그래도 새로 배웠으니 다음에는 꼭 적용해볼 생각입니다. (방학에도 이어서 공부해볼 예정입니다!)

      추가로, 원희님은 Jetpack Compose 공부하시고 프로젝트에 적용한 내용을 발표도 해주셨는데 너무 멋있었어요! 젯팩컴포즈 스터디 최고 🥹


      💚 유진

      젯팩 컴포즈를 처음 사용해보는 거였는데 어떻게 시작해야할지 막막했었습니다.

      그런데 데보션영 도서 중 젯팩 컴포즈 책이 있어서 바로 신청하게 되었고 팀원들과 같이 학습하면서 적용시키다보니 두려움이 조금은 사라졌던 것 같습니다.

      XML을 이용해서 항상 뷰를 짜다가 코드만으로 뷰를 짠다는 것이 신기하기도 했고 처음에는 어려움도 있었지만

      같은 팀원들에게 물어보면서 해결해나가다보니 좀 더 익숙해질 수 있었던 것 같습니다.

      도서도 지원받고 그룹별로 활동하다보니 많은 도움을 받았던 것 같습니다!! 🥰


      💚 원희

      이번 스터디는 제가 젯팩 컴포즈를 배워 데보션 개발 과제 프로젝트에 실제 적용할 기회가 된 점에서 의미가 있었습니다.

      스터디 팀원들과 함께 책을 활용하여 학습하며, 개인적으로 책에서 학습한 내용을 바로 프로젝트에 녹여내는 과정이 특히 의미 있었던 것 같아요.

      젯팩 컴포즈를 처음 배울 때 기존의 XML 뷰 시스템고 다른 새로운 패러다임이 생소해서 막막할 때도 있었지만,

      책의 자세한 설명과 실습 위주의 구성 덕분에 복잡한 개념도 점차 이해할 수 있었습니다.

      특히 책에서 다룬 팁과 예제들은 실제 프로젝트 진행 중 마주한 문제를 해결하는 데 큰 도움을 줬고, 이런 과정을 통해 배우는 재미도 엄청 느꼈습니다 ㅎㅎ

      젯팩 컴포즈를 배우고 활용하고 발표하는 데까지의 과정 내내 좋은 기회를 지원 및 제공해주신 데보션에 다시 한번 감사드립니다. 😊


      끝으로, 긴 글 읽어주셔서 감사드리며 DEVOTEE AI로 만들어본 Android Jetpack Compose 스터디 사진도 첨부드립니다 :) 🤖

      image.png

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      세연 님의 최신 블로그

      더보기

      DEVOTEE 추천 블로그

      동영상 기고하기