ETC/회고록

[Review] Google I/O Extended Seoul 2023 참석 후기

Hodie! 2023. 7. 31. 20:31
반응형

Google I/O Extended Seoul 2023 참석 후기

 

꽤 오랜만에 안드로이드 내용이 담긴 오프라인 행사에 참석하였다.

이번에 참석한 Google I/O Extended Seoul 2023는 7월 29일 코엑스에서 13시부터 17시까지 진행되었는데, 시간대 별로 1개 내지 2개의 세션이 진행되었고 나는 그 중에 주로 Track 1 세션을 들었다.

 

더 기억이 나지 않기전에, 각 발표자분들이 발표한 내용들 중 새롭게 알게되거나 깊이 공감해서 기억에 남았던 부분들을 중심으로 작성해 놓으려고 한다.

참석 세션 요약

이번 행사에서 참석해서 들었던 세션은 다음과 같다.

1. What’s New in Android Development Tools - 노현석 (카카오뱅크)

2. Dagget Hilt로 의존성 주입하기 - 안성용 (네이버웹툰)

3. Flutter에 Clean Architecture을 얹어보자 - 양수장 (GDG Songdo / Flutter Songdo)

4. 일 잘하는 개발자는 회사에서 어떻게 일할까? - 박상권 (헤이딜러)

참석 세션

1. What's New in Android Development Tools

세션 소개

Android 앱 개발자를 위한 최신 Android Studio의 새로운 기능을 소개합니다. Android Studio Flamingo/Giraffe/Hedgehog 버전을 다룹니다.

기억에 남았던 부분

  • 해당 세션은 13시 20분 부터 시작했었는데... 다소 늦게 참석한 관계로 중간부분부터 들었다.
  • 그럼에도 불구하고, Android Studio의 업데이트 된 기능에 대해 잘 모르고 있던 부분이 많았다고 느껴졌고, 생각보다 유용하게 사용할 수 있는 기능들을 잘 소개해주셔서 기억에 많이 남는 세션이었다.
  • 특히, 프로젝트를 진행하다보면 개발환경을 한번 세팅하고 나면 최대한 개발 외적인 사이드 이펙트를 줄이고자 사용하고 있는 개발 환경을 그대로 유지하는 경우가 많고 그 과정에서 Android Studio의 업데이트를 뒤로 미루는 경우도 많은데 이번 세션을 통해서 Android Studio 버전을 한 번 업데이트 해봐도 괜찮을 것 같다고 생각했다.
  1. Network Inspector interception
    • 통신을 하는 앱이라면 성능 체크시에 Network Inspector를 사용해본 경험이 있을 것이다. 그때, 보통은 Response 내용과 주고받는 트래픽 등에 대해서 Real-time으로 볼 수 있었을 것이다.
    • 여기까지는 Network logging interceptor를 보통 사용하므로 별로 흥미롭지 않을수도 있지만, Android Studio Flamingo 버전부터 incoming connection에 대해 custom-rule을 적용할 수 있고 이를 통해 앱에서 실제로 보여지는 응답값을 보여줄 수 있다는 것이 기억에 남는 점이었다.
    • 기억에 남았던 이유는, 기존에 네트워크 통신시에 Response 값을 변경하기 위해서는 서버의 도움을 받거나, 직접 테스트 관련 내용들을 만들어서 다시 빌드했어야 했는데, 이를 거치지 않고 Rule을 적용하면 실시간으로 Network Response/header 등을 변경할 수 있다는 것이었다.
    • 이를 통해 Empty List가 오는 상황과 null이 오는 상황등 처럼 오류를 발생시킬 수 있는 엣지케이스들을 직접 확인하고자 할 떄 유용하게 사용할 수 있을 것으로 생각된다.
    • 이에 대해 소개한 내용을 따로 검색한 결과, 나중에 사용할 때 다시 알아보도록 해야겠다.
      Applying Rules for Network Inspector in Android Studio Flamingo [Link]
  2.  Gradle Version Catalogs
    • 기존 Dependency를 관리하는 방법에는 여러가지 방식이 있었다.
    • 이때 Version Catalog를 통해 관리하게 되면 버전을 깔끔하게 관리할 수 있고, bundle형태로 묶어서 관리할 수도 있다!
  3. Compose Animation Preview
    • 기존에도 Compose를 이용한 Animation에 대한 Preview가 가능했는데, 이번에 이것이 좀 더 개선이 되었다고 한다
    • 상태를 설정해서 애니메이션 디버깅도 가능하고, 여러 부분에서 개선이 이루어지고 있다고 한다
  4. Android Studio Bot
    • Android Studio내에서 사용할 수 있는 프로그래밍 보조 AI Studio Bot이 발표되었다고 한다.
    • Coding Assistant인 만큼, IDE내에서 도구창으로 통합되어 사용할 수 있는 것을 볼 수 있었는데, 한국어와 영어로 물어봤을 때 발표당시에 보인 자료로는 영어가 좀 더 정확하게 대답해 주는 것 같았다. 특히, 어떤 코드에 대해서 주석을 다는 것을 요구하는 모습을 보여주셨는데, 코딩을 할 때 보조 도구로 잘 사용할 수 있지 않을까? 하는 예시였던 것 같다 (다른 사람의 코드를 읽는 것은 힘든 일이니까...) 
    • 다만, 아직까지는 실험버전이라 부정확한 모습을 많이 보인다고 한다.
    • 거기다, 미국 국내에서만 이용가능하도록 제한이 걸려있기 때문에, 사용하려면 VPN을 거쳐서 사용해볼 수 있을 것 같다.
    • 그럼에도 IDE에 이러한 것들을 통합시키려는 것만으로도 의미가 있다고 생각했다!

2. Dagger Hilt로 의존성 주입하기

세션 소개

Dagger Hilt를 이용하여 의존성을 주입하는 방법을 알아보고, 실제 경험을 기반으로 권장할 만한 UseCase를 공유합니다.
 

Dagger Hilt로 의존성 주입하기

2023년 7월 29일 (토) I/O Extended 2023 Seoul 행사에서의 발표자료입니다. https://festa.io/events/3683

speakerdeck.com

기억에 남았던 부분

  • 기존에 Hilt를 많이 사용했었기 때문에 어느정도 익숙한 상태에서 들을 수 있었다!
  • 발표는 특정 상황에서 Hilt를 활용하는 방법으로 케이스 중심으로 진행되었다. Hilt을 어떻게 하면 활용하는게 잘 활용하는 것인지 다시 생각해보게 되는 계기가 되었다. 여전히 Hilt는 어려운것 같다
  • 다행히 발표시간이 짧았던 탓인지 코드부분이 빠르게 넘어가서 아쉬웠는데, 발표자료를 올려주신 곳이 있어서 참고할 수 있을 것 같다!

3. Flutter에 Clean Architecture을 얹어보자

세션 소개

플러터로 서비스를 런칭하면서 적용했던 아키텍처 구조와 사용한 라이브러리에 대해 발표를 진행하며, 실제 동작가능한 예제와 간단한 유닛테스트를 함께 공유합니다. 해당 예제를 통해 Flutter에서 Clean Architecture의 구현 방법을 실제로 살펴보고, 간단한 유닛 테스트로 앱을 더욱 견고하게 만드는 방법을 다룹니다.

기억에 남았던 부분

  • 기존에 Flutter 개발을.. 해본적이 없었기 때문에, 걱정은 조금 했지만 다행히 발표자분도 그러한 부분을 어느정도 이해하신건지 Android 네이티브만 개발한 입장에서도 대략적으로 이해갈 수 있게 설명해주셨다고 느꼈다.
  • 특히 마지막에 Folder Structure에 대해서 소개해주셨는데, 이부분이 가장 기억에 남았고 Clean Architecture에 대해서 짚어주셔서 이에 대해 다시 한번 되새기는 계기가 되어서 좋았다..

4. 일 잘하는 개발자는 회사에서 어떻게 일할까?

세션 소개

‘일을 잘하는 개발자’란 어떤 사람들을 말하는걸까요? 단순히 기술적인 코딩을 잘하는 사람이 회사에서 ‘일을 잘한다' 라고 평가 받을까요? ‘일을 잘하는 개발자'들이 회사에서 어떤 방식으로 일하는지 공유합니다.

기억에 남았던 부분

  • 많은 공감을 하게되는 세션이였고, 실제로 주변의 다른 사람들도 발표를 들으시면서 많이 공감하셨던것 같다.
  • "일 잘하는 개발자는 어떻게 일할까?"에 대해 발표자분이 개인적으로 생각하신 부분에 대해 맨 처음에 목차로 13개를 소개해주셨는데, 하나하나 다 맞는 말이라 생각했다. (실천하기가...어려울 때가 있을 뿐...)
  • 특히 1번째로 "암묵지 없애기"를 말씀하셨었는데, 너무 공감됐던 부분이었다. 동시에 없어질래야 없어지기 어려운 부분이라 어떻게 해결해야 하는지 다시 한 번 되새기는 계기가 되었다. 같은 프로젝트를 진행해도 동상이몽을 꾸는 경우가 너무 많은데 이 부분에 대해서 어떻게 해결해 나가고 있는 지에 대해 사례로 보여주셔서 좀 더 참고하는 계기가 되었고 너무 좋았다.
  • 그외의 "최적의 피쳐 개발방향 찾기"완성도를 5%를 떨어트리더라도 개발시간을 80%이상 단축할 수 있다면 제안하는 것이 중요하다는 부분에서 기존의 기획을 무조건적으로 지키려고 했던 지난 날들이 스쳐지나갔다... 자식 같은 코드라고 집착하지 않는게 중요한데.. 개발하다보면 자꾸 그 부분을 놓쳐서 아쉬웠던 만큼 다시 한 번 생각하는 계기가 되었다..
  • 이외에도 회고의 중요성 등을 이야기 해주셨는데, 하나하나 마다 과거의 내 모습이 스쳐지나가면서 공감되면서도 다시 한 번 반성하게 되는 계기가 되었던 세션이였다..

전체 후기

  • 세션 발표 내용중에 알고있어서 공감되거나, 다시 한 번 생각하는 부분들도 있고, 미처 인지하지 못해서 놓쳤던 부분들도 있었는데 그러한 것들을 모두 느낄 수 있는 행사였어서 참석 여부를 고민했던 행사였는데 가길 잘했다고 생각했다!
  • 특히, 이번에 발표된 내용들을 보면 내용에는 잘 안드러났지만, Jetpack Compose과 엮어서 설명하는 부분이 많았는데 확실히 Compose를 처음 알게되었을 때보다 Compose로 대세가 옮겨가고 있는건가? 싶은 생각은 많이 들었던 행사였다. XML을 레이아웃을 만드는데 주로 사용하고 있지만, XML은 언제까지 갈 수 있을까? (Legacy가 있는한..?) Compose에 대해 좀 더 배우고 진행하는 프로젝트에 한 번 사용해봐야겠다는 생각이 많이 들었다.
반응형