[Android] 안드로이드 개발 회고록

ZEDY·2024년 7월 7일
0

회고

목록 보기
1/9
개발의 첫 시작 : 안드로이드

왜 안드로이드였나?

GDSC 활동을 통해 안드로이드 개발자로서의 첫 발을 내딛었다. 구글에 입사하는 것은 나의 큰 꿈이었고, 그 꿈을 이루기 위해 구글의 기술 중 하나인 안드로이드를 선택했다. 안드로이드 개발을 통해 내가 만든 앱이 실제로 어떻게 작동하는지 직관적으로 확인할 수 있는 시뮬레이터가 매력적이었다.

안드로이드가 매력적인 이유

안드로이드 개발이 매력적인 이유는 여러 가지가 있다.

  1. 광범위한 사용자 기반 : 안드로이드는 전 세계적으로 가장 많이 사용되는 모바일 운영체제다. 이를 통해 개발한 앱은 전 세계 수많은 사용자들에게 도달할 수 있다.

  2. 직관적인 UI/UX 디자인 : 안드로이드 스튜디오와 다양한 툴을 사용하여 UI/UX를 쉽게 디자인할 수 있다. 레이아웃 에디터를 통해 시각적으로 UI를 구성하고, 시뮬레이터를 통해 실시간으로 확인할 수 있다.

  3. 오픈 소스의 자유로움 : 안드로이드는 오픈 소스 플랫폼이기 때문에 다양한 라이브러리와 도구를 자유롭게 사용할 수 있다. 이는 개발자들에게 더 많은 선택지와 유연성을 제공한다.

  4. 풍부한 커뮤니티와 자료 : 안드로이드 개발을 위한 자료와 커뮤니티가 풍부하다. 구글의 공식 문서뿐만 아니라, 다양한 포럼과 튜토리얼을 통해 필요한 정보를 쉽게 얻을 수 있다. 특히 샘플 자료들이 너무 잘나와있어서 개발하기 용이하다.

개발 난이도

우선 눈에 직관적으로 보이는 특성상, 여기서 이러한 요소가 생기는 구나~ 직접 확인할 수 있다.
따라서 그나마 배우기 쉽다고 생각하지만, 안드로이드 개발은 처음 접하는 사람들에게는 다소 어려울 수 있다.

  1. 초기 진입 장벽 : 안드로이드 스튜디오 설치와 설정, 그리고 Java나 Kotlin 같은 언어를 배우는 과정은 초기 진입 장벽을 높인다. 실제로 나는 안드로이드 스튜디오를 설치만 하는데 진짜 한 일주일은 걸린거 같다. 컴퓨터 공간도 너무 많이 차지하고 과열도 엄청 되어서 중간에 노트북이 터진 적도 있다. 그때 생각만 하면 눈물이..ㅋ

  2. 복잡한 컴포넌트 : 안드로이드는 액티비티, 프래그먼트, 서비스, 브로드캐스트 리시버 등 다양한 컴포넌트를 포함하고 있어 이들을 이해하고 사용하는 데 시간이 필요하다. 솔직히 처음 개발을 할 때는 클론코딩을 하며 따라가기 바쁜데 저런 구성요소들을 이해하며 개발하는 것은 쉽지 않은게 현실이다.

  3. UI 디자인의 어려움: XML을 사용하여 레이아웃을 구성하는 과정은 처음에는 어렵게 느껴질 수 있다. 특히 다양한 화면 크기와 해상도를 지원해야 하는 점이 복잡하다. 특히 구성하는 요소들을 쌓아 올리는 과정은 순서 또한 중요하기에, 설계를 잘해야 한다.

  4. 스파게티 코드 : 초기에는 코드 구조나 디자인 패턴을 잘 알지 못해 스파게티 코드가 되기 쉽다. 이는 유지보수를 어렵게 만들고, 버그를 쉽게 발생시킬 수 있다. 명심하자. 스파게티는 먹는 것이어야만 한다.

공부 방법

사용 교재와 활동 개요

개발 공부는 "Do it! 안드로이드 앱 프로그래밍" 책으로 했다. 근데 나는 교내 동아리인 GDSC 활동을 하면서 배워서, 다양한 경험과 활동을 동시에 진행했다.
하지만 이러한 동아리 활동은 주로 개발을 어느정도 한 사람 위주로 활동이 이루어지는 경향이 있다. 또한, 개발 입문자가 따라가기 어려운 정도의 활동 과정이다. 솔직히 내가 바텀 네비게이션도 못만드는데 안드로이드 기술 세미나를 들으면, 흥미는 돋겠지만 개발에 별 도움은 되지 않는다.

스터디

GDSC 활동 중 하나로 스택 별로 팀을 이뤄서 스터디를 진행하는 활동을 하였다. 초반에는 처음 만나서 어색했고, 중간에는 시험기간과 겹쳐서 많이 만나지 못했으며, 끝에는 이탈자가 많아져서 활동이 잘 이루어지지 않았다. 물론 나는 다 참석을 했다.
우리 팀은 일주일동안 각자 공부를 하고 모여서 어떻게 공부를 했는지 공유했는데, 나는 스터디 진행을 이렇게 하는 것을 선호하지 않는다.

스터디를 하는 이유는 함께 공부를 하면서 어려운 점을 공유하고 함께 복습하며 성장하는 것이라고 생각한다.
그러나 동아리에서의 스터디인만큼 각자 전공과 학업, 일에 우선순위가 더 있었고 아쉽게도 이런 식으로 스터디를 하는게 최선의 방법이었다.

기술 세미나

내가 연사자가 되어 안드로이드 기술 세미나를 진행했다.

안드로이드 개발 트렌드 : 안드로이드 개발자들이 꼭 익혀야 할 기술들

기술세미나 PPT

기술 세미나 PPT
내가 직접 작성한 PPT이다.
이거는 나중에 다시 새로운 게시물로 정리해야겠다. 생각보다 길다.

프로젝트

안드로이드 only로는 프로젝트를 따로 하지는 않았다.
프로젝트를 시작하기 전 나는 Flutter를 알게 되었다.
그래서 이후 프로젝트를 할 때는 Flutter로 개발을 하였고, 안드로이드를 열심히 공부한 덕에 플러터를 생각보다 빠르게 배울 수 있었다.
플러터 이야기는 따로 빼야겠다.

좋았던 점

  1. 꾸준히 공부하는 습관이 길러짐
    GDSC 활동을 했기 때문에 항상 할당량이 있었고, 이를 스스로 부여하였지만 나는 자기주도학습을 어렸을 때부터 했기 때문에 성실하게 공부를 했다. (TMI이지만, 초등학교때부터 자기주도학습 상을 항상 수상했다..ㅋㅋㅋ 부상이 문화상품권이었는데, 이거 수상하려고 교육청인가? 암튼 엄마랑 거기가서 상 받아온게 기억난다.)

  2. 죽이 되든, 밥이 되든 어쨌든 '개발'을 시작함
    이전에 나는 개발에 대한 그런 진입장벽이 너무 컸다. 그래서 자퇴를 하려고 하였고, 나는 평생 못할 분야라고 생각했다. 그런데 안드로이드를 시작으로 플러터, 백엔드 개발을 하게 되었고 이는 내 인생의 터닝 포인트가 되었다.

아쉬웠던 점

스택을 미리 선택하지 말고 흥미로운 주제로 우선 개발을 시작했더라면 얼마나 더 좋았을까.. 라는 아쉬움이 있다.
저는 GDSC를 하기 위해 프론트/백엔드/안드로이드를 선택해야만 했고, 당시 저는 개발에 대한 지식이 전혀 없었기 때문에 그나마 진입장벽이 낮았던 안드로이드를 선택했던 것이다.
그러기 때문에 더 아쉬움이 남는다.

  1. 안드로이드가 뭔지 제대로 찾아보지 않고 선택함
    '구글이 안드로이드를 선호한다더라' 라는 말을 듣고 선택한거라 주체적으로 '안드로이드'를 선택했다고 하기는 어렵다.
    누군가의 무엇이 되기 위해 선택하는 게 아닌, 내가 어떤 개발을 하고 싶고 어떤 프로덕트를 만드는 것이 목표가 되어야 하는데 그렇지 못한 것이 아쉽다.

  2. 개발을 하기 위해 책을 암기 함
    개발을 하기 위해서는, 개발을 공부하기 위해서는 무엇을 해야 할까?
    답은 '개발'이다.
    개발을 하려면 개발을 해야 한다. 하지만 나는 개발을 하기도 전에 기술 세미나를 미리 듣고 (기술 세미나가 안좋다는 것이 아니라, 코드에 대한 이해도도 없는 상태에서 코드 최적화 이런 기술 세미나를 들은 시기가 문제라는 것이다.) 책을 읽었다.
    그리고 개발을 하기 위해서는 코딩을 해야 하는데, 나는 정석적인 수능 공부 스타일을 코딩에 적용해버렸다.
    즉, 위에 언급한 교재를 암기했다.
    나 왜그랬냐..

결국에는 나는 플러터로 갈아탔다. 그러므로 다음 회고록은 플러터 !

profile
Spring Boot 백엔드 주니어 개발자

0개의 댓글