반응형

 오늘은 2020년 9월 1일이자 2학년 2학기가 시작하는 날이다. 7월에서 8월에는 자격증을 준비하기보다는 내가 하고 싶은 것들을 해보자고 생각했다. 왜냐하면 자격증 기간이 대부분 2년인데 지금 따봤자 인턴할 때야 쓰겠지만 나중에 정작 취업할 때는 쓸 수 없기 때문에 자격증은 2학년 겨울방학 때 따고, 이번 여름방학 때는 내가 해보고 싶은 것을 해보자고 생각했기 때문이다. 그 중에 1학년 겨울방학 때 하던 어플리케이션 제작을 조금 더 심도 있게 해보자고 생각하였고, 안드로이드 어플리케이션 개발을 했다. 방학 때는 부산여행 갔다오고, 대부분의 시간을 안드로이드에 쏟았고 조금의 시간을 알고리즘에 투자하였다. 구글, stack overflow, stack overrun, youtube(특히 인도 분들 youtube), 카톡방 등을 참고해가면서 오류를 해결하고 공부했다. 또한 서버를 구축하고 서버에 DB를 올리는 작업을 진행하였으며, 어플리케이션에서는 DB에서 글과 사진을 보여주는 식으로 구현하였다. 

 위 사진은 내 깃 커밋 내역이다. 방학을 헛되게 보내지 않기 위해서 초록색을 칠하려고 노력하였다. 저 회색인 부분들은 Repository를 삭제해서 뜯겨 나간 부분이다. 색은 남아있는 줄 알았는데 색까지 뜯겨 나가버리는 상황이 발생해버렸다...

 


간략하게 어플리케이션에 어떤 기능들이 쓰였는지 보자.

 

개발 툴 : 안드로이드 스튜디오, 파이참, DB browser, ngrok

사용 언어 : Java, Python, XML, SQL

 

*안드로이드 스튜디오

   - 대부분의 Layout ConstraintLayout으로 작성

   - 사진 보여주는 곳에서는 Glide사용

   - 사진 확대 기능 위해 PhotoView Library사용

   - 하단 banner 광고 위해 Google Play Service Ad 사용

   - 자동 넘김 ViewPager위해 중국 Library인 youth.banner library사용

   - Naver 지도 API 사용

   - 서버에서 DB 수신 위해 Retrofit2 사용

   - 로딩에서 SpinKit library 사용

   - pagination 구현하려 하였으나 실패

 

*서버

   - DB : sqlite3

   - framework : Django rest framework

   - AWS를 사용하려고 하였으나 배포 시에 AWS사용하고, 임시로 무료인 ngrok 사용

   - 사진은 URL 사용, URL은 사진으로 직접 링크가 가능한 postimages.org에서 url 생성


   아쉬운 점

 서버에서 사진을 불러와서 화면에 띄우는데 로딩이 많이 걸린 것이 아쉽다. 처음에는 구글 Drive 사진 URL을 사용하여 DB에 저장한 후 어플리케이션에 넣어줬는데 구글 드라이브가 생각보다 느렸다. 그래서 postimages.org에서 사진 URL을 받아오고, 사진도 크기를 10분의 1로 줄여서 올렸다. 그래서 속도는 5배~10배 가량 빨라졌지만 그것 또한 너무 느려서 어플리케이션을 사용할 수 없을 정도였다. 그런데 그럴 수밖에 없었던 이유는 ArrayList에 35장의 사진을 한 번에 불러와서 넣어줘야 하기 때문에 사진을 가져오는데 10초가 넘는 시간이 걸렸다. 다시 말해서 어플리케이션을 쓸 수가 없었다. 그래서 사진을 줄이고, 그 부분에 사진에 대한 설명을 넣는 Text를 넣을 수도 있었지만 Pagination을 구현하고 싶었다. 그래서 앱 개발 마지막 단계에 서버에서 사진을 불러오는 시간을 줄이기 위해 Pagination을 도입하려고 하였으나 8월 31일까지 시간이 얼마 남지 않았고 결국 실패하고 말았다. 이틀동안 Pagination에 매달리고, 이 기능만 도입이 완료되면 앱 개발이 끝나는 것이였으나 결국 하지 못했고 아쉬웠다. Paginatino 기능을 공부하기 위해 Android 채널에서 올라온 영상을 시청했는데, Java에 대한 예시는 없고 Kotlin에 대한 예시만 있었다. 

 위 사진은 Android Developer에서 올린 Pagination 영상의 좋아요가 가장 많은 댓글이고, 그에 대한 답글이다. 댓글을 번역하면 "자바에 대한 예시가 없는데, 이는 나에게로 하여금 구글이 자바의 사용률을 낮추기 위한 계획으로 믿게 만들었다"이다. 그리고 답글에는 "미래는 Kotlin", "Kotlin이 좋다"라는 댓글들이 있어 Kotlin도 새로 배워야 할 지 고민이 되었다. 구글이나 Stackoverflow에서 몇 번 봤었고, Kotlin으로 설명 된 글을 보고 Java에 적용할 때도 몇 번 봤었는데 그렇게 크게 다를 것 같지는 않다고 생각 되었다. 그래도 새로운 언어를 배우는 것은 새로운 언어를 배우는 것이다.


   고민

 아쉬운 점과 고민 등을 적다 보니 부정적인 얘기가 많다ㅋㅋ.

 

 IOS로 넘어가야 할 지 고민된다. 비슷한 실력이 있을 때 IOS가 Android보다 취직이 더 잘 된다고 한다. 당연한 것이 IOS 개발자가 그만큼 적기 때문이다. 그러나 안드로이드도 포기하기도 좀 그렇기 때문에 Flutter를 배워야 할지.. 안드로이드를 계속 한다고 할 때 Kotlin을 배워야 할 지.. 사실 이 고민에 대한 전제는 내가 개발을 하겠다는 것이다. 대학교에 입학하고 나서 지금 2학년 2학기까지 나는 어플리케이션 개발을 하고 싶다고 생각했고 지금도 계속 그렇다. 

 

 위 사진은 내가 잠시 베타 버전을 배포 했을 때의 반응이었다. 좋아요 100개가 넘는 게시물이 잘 없는데 거의 100개까지 달렸으며, 수많은 응원의 댓글들과 친구들의 응원은 개발을 하는데 있어 큰 힘이 되었다. 어플리케이션 개발은 여러모로 나의 적성과 잘 맞는 것 같다.


   마무리하며,

 최근 나의 고민들을 적어 보았다. 뭔가 자격증을 따지 않거나, 대외활동을 하지 않으면 불안하지만 후회는 없다. 매일 밤 자기 직전에 거울을 보면 내 눈은 항상 충혈되어 있었다. 많은 노력은 아니지만, 내 여름방학이 헛되지 않았으면 좋겠다. 이번 2학기도 후회없는 학기가 되도록 최선을 다해야 겠다. 

반응형

+ Recent posts