팀 이야기

매쉬업 안드로이드팀 10기 # AndroidLog

가짜 개발자 2021. 3. 25. 00:08


안녕하세요. 오늘은  IT 연합동아리인 Mash-Up 안드로이드 팀에선 어떤 활동을 진행하고 있는지에 대한 글을 작성해보려고 합니다.

 

글을 통해 간접적으로라도 "이런 활동을 하고 있구나"를 체험해볼 수 있도록 랜선 탐방을 컨셉으로 잡아 이름하여

Android + VLog를 합쳐 AndroidLog로 지었습니다.

 

💻  안드로이드 팀

  • 우선 안드로이드 팀의 현재 구성원은 총 13명이 있습니다.
  • 각 구성원마다 나이/ 학생, 직장인 유무/ 사는 곳 등등은 다르지만, 안드로이드 개발을 좋아하고 잘하고 싶은 마음은 저희 팀의 공통적인 관심사이자 목표가 아닐까 생각이 듭니다.
  • 매주 토요일마다 1시간 ~ 2시간 정도 모임을 진행하고 있습니다.

💡  안드로이드 스터디

  • 현재 코로나 시대로 접어들면서 오프라인 활동은 진행하지 못하고 있습니다.
  • 그래서 모든 활동을 온라인으로 진행하고 있지만, 그 시간들을 보람차고 즐겁게 보낼 수 있게 안드로이드 팀의 팀장, 부팀장님을 필두로 모든 구성원들이 적극적으로 참여하고 있습니다.

 

안드로이드 팀의 스터디는 주차별로 2명씩 10분 세미나를 발표하는 식으로 진행하고 있습니다.

 

발표의 주제는 안드로이드 위클리, 코틀린 위클리 등의 안드로이드 정보 사이트를 참고하여 

안드로이드의 최신 기술에 대해 발표를 하거나 혹은 안드로이드에 관련된 어떠한 주제도 세미나의 주제로 발표 가능합니다.

 

그동안 발표했던 세미나의 내용을 몇 개만 간략하게 살펴보자면

 

1. Dagger Hilt

 

Dagger Hilt Google에서 DI(Dependecny-Injection)를 위해 새롭게 출시한 라이브러리입니다.

 

번역하면 의존성 주입이라는 뜻인데, 비유를 들자면 어떤 건물의 5층에 가기 위해 우리는 건물 내부의 엘리베이터를 타고 올라가겠죠? 그럼 우리는 엘리베이터에 의존을 하고 있고 여기서 의존성이 생깁니다. 만약 어느 날 엘리베이터가 고장이 나버리면 그동안 엘리베이터에 의존했던 우리도 영향을 받겠죠? 이런 상황을 예방하기 위해 의존성 "외부에서 주입한다"라는 것이 DI의 개념입니다.

 

그래서 DI는 의존도를 낮추어 코드의 유지보수를 편하게 하자라는 목표로 안드로이드 개발에 있어 가장 주목받고 있는 디자인 패턴 중 하나입니다. 

 

안드로이드 팀은 하나의 프로젝트를 예제로 팀원들끼리 Dagger Hilt를 적용해서 Git에 올리는 실습을 진행했습니다.

 

 

2. Clean Architecture

 

안드로이드뿐만 아니라 개발자는 모두 개발 분야에 있어  좋은 코드를 짜기 위해 노력하고 있습니다. 그럼 좋은 코드란 뭘까?라고  고민해본다면 "가독성이 좋은 코드", "테스트하기 좋은 코드", "유지 보수하기 쉬운 코드" 등이 있겠습니다. 이러한 조건들을 만족시키기 위해서는 코드가 잘 분리되어 있어야 하고, 외부 변화에 따른 코드 변경이 적어야 하겠죠?

 

그런 방법을 제시하는 가이드가 Clean Architecture입니다. 위의 표는 Clean Architecture의 다이어 그램입니다. 원 모양으로 생긴 4개의 레이어가 존재합니다. Clean Architecture의 목적은 위의 계층에서 아래의 계층으로 갈수록 의존성이 낮아야 한다는 것을 말하고 있습니다.

 

지구로 비유를 들어보겠습니다. 지구에도 표피, 맨틀, 외핵, 내핵이 존재하고 있습니다. 저희가 살고 있는 표피에서는 아파트도 짓고, 백화점도 짓고, 빌딩도 짓는 등 충격을 가하는 많은 일들이 발생합니다. 하지만, 그런 일들이 지구 내부에서 발생하면 어떻게 될까요? 내핵이 외부의 충격을 받게 된다면 지구가 폭발할 수도 있겠죠? 즉 코드에서도 외부 레이어에서는 변화가 많이 발생해도 내부 레이어로 갈수록 영향을 받지 않아야 합니다. 

 

그렇게 되면 변화에 잘 대응할 수 있는 즉 좋은 코드라고 불리는 코드에 조금 더 가까워지지 않을까라는 생각이 듭니다. 


그동안 발표했던 세미나 자료는 모두가 공유할 수 있게 Git을 통해 관리하고 있습니다.

 

 

또한, 건의하고 싶은 내용이 있다면 안드로이드 팀의 오픈 채팅방을 통해 누구나 부담 없이 자유롭게 건의할 수 있습니다. 

 

👨‍💻  비동기 스터디

  • 비동기 처리는 안드로이드에서 가장 핵심적인 기술이라고 해도 과언이 아닙니다.
  • 비동기 처리를 위한 대표적인 라이브러리인 RxJava Coroutines 이 두 팀으로 나뉘어 안드로이드 팀 스터디 전에 1시간 정도 비동기 스터디를 진행하고 있습니다.
  • 비동기 팀의 스터디는 안드로이드 공식 문서를 읽고 번역해 주차별로 발표하고 질의응답하는 시간을 가지고 있습니다.

 

 

각 팀원마다 RxJava Coroutines 중 본인이 원하는 것을 선택하여 해당 비동기 팀에 배정되어 스터디를 진행하고 있습니다.

 

팀 선택에 있어 여러 가지 이유들이 존재할 수 있는데, 저 같은 경우는 안드로이드를 만든 Google에서 Coroutine 기술을 계속해서 발전시키고 밀어주고 있다는 느낌을 받았고, 그래서 Coroutine을 더욱 자세하게 알고 싶은 마음에 Coroutine 팀을 선택하였습니다.

 

RxJava Corutine 중에 어떤 기술이 더 좋다고 단정 짓긴 어렵지만, 두 가지 기술 모두 훌륭한 기술들이고 각 장/단점이 존재합니다.

 

  • RxJava는 제공하는 함수의 개수가 많아 여러 상황에서 활용성이 높습니다.
  • 학습 곡선이 높습니다. 즉 처음에 RxJava를 배우게 된다면 어렵다는 느낌이 들 수 있습니다.

 

  •  Corutine은 RxJava에 비해  학습 곡선은 낮은 편입니다. 즉 RxJava 보다는 처음에 배울 때 이해하기 쉬울 겁니다.
  •  RxJava에 비해 함수의 개수가 적어 여러 상황에서 활용성은 낮을 수 있습니다.

 

안드로이드 팀의 스터디는 주로 Discord 또는 Google Meet을 통해 행아웃으로 진행하고 있습니다.

안드로이드 팀의 10분간의 세미나가 끝나면 자유롭게 서로 질문을 주고받고 토론을 하고 있습니다.

 

이러한 과정을 통해 몰랐던 기술들에 알게 되고 더욱 깊게 고민하는 시간을 가지게 되는 것 같아 아주 값진 시간들이라고 생각합니다. 👍


🚀 친목

스터디를 하며 실력을 쌓아가는 것도 중요하지만, 즐겁게 친목을 쌓는 것도 못지않게 중요하지 않을까요?

안드로이드 팀은 친목을 위해 랜선 회식도 진행하고 있습니다. 🔥

 

비록 랜선 회식이지만 다음날 아침까지 회식이 진행될 정도로 안드로이드 팀의 뜨거운 놀고 싶은 열정을 느낄 수 있었습니다. 

 

몇 차례의 회식을 통해 아직까지 한 번도 실물을 영접하진 못했지만, 매일 Discord에서 새벽까지 많은 대화를 나눌 정도로 끈끈한 친목을 자랑하고 있다고 들었습니다.

 

현재 5인 이상 집합 금지 규제로 인해 Mash-Up  안드로이드 팀의 오프라인 모임이 지체되고 있습니다.

하지만 조만간 완화되어 꼭 만날 수 있기를 간절히 바라봅니다. 👏


📝  Epilog

짧은 글로나마 IT 연합동아리 Mash-Up 안드로이드 팀에 대해 알아보는 시간을 가졌습니다. 

이 글을 읽고 안드로이드 팀에 대해 더 궁금한 사항이 있거나 마음이 두근거림을 느끼신 분들은

주저 말고 Mash-Up 다음 기수에  안드로이드 팀에 지원해보시는 것을 추천드립니다.

 

 

그럼 안녕👋