들어가며
해당 포스팅의 목적은 "당신의 발자취" 안드로이드 파트에 참여하면서
맡은 사항인 갤러리 파트에 대해서 1.1 Ver API 연결을 완료하여
안드로이드의 서버 API를 엮으면서 새롭게 배운점과 느낀점들을 기록하기 위한 포스팅이다.
그리고, 개발하면서 어려웠던 점과, 여러 에러들을 겪어보면서
새롭게 개발에 대한 시야가 넓혀진 점들에 대해서도 기록하기 위한 포스팅이다.
Trouble Shooting (트러블 슈팅)
- 팝업 메뉴 아이콘 삽입 에러
- 에러 정의
- 팝업 메뉴 바에 아이콘 이미지가 삽입되지 않는 에러
- 에러 원인
- 팝업 메뉴 설정 시 추가 구현이 필요했음. (해외 레퍼런스로 해결…)
( Popup Menu (with Icons!) - Android Kotlin Tutorial )
- 팝업 메뉴 설정 시 추가 구현이 필요했음. (해외 레퍼런스로 해결…)
- 에러 통찰
- 해외 레퍼런스는 생각보다 더 쉽게 알려주는 방법들이 엄청 많았다… (영어 공부해야겠다 ^.^)
- 해외 레퍼런스는 생각보다 더 쉽게 알려주는 방법들이 엄청 많았다… (영어 공부해야겠다 ^.^)
- 에러 정의
- 팝업 메뉴 아이템 클릭 이벤트 에러
- 에러 정의
- 팝업 메뉴 아이템의 클릭 이벤트 처리에서 추가 코드 구현이 안되는 에러 (타입 불일치 에러라고 떳음.)
- 에러 원인
- 휴먼 에러…… 클릭 이벤트 발생 영역 표기인 “{ }” 를 사용하지 않아서, 뒷 줄 코드가 인식하지 못하는 에러였음
- 정체불명의 에러, 구글링 해봐도 레퍼런스가 잘 없는 것들은 휴먼에러를 의심해보자!
- 휴먼 에러는 유추해서 찾아야하기에, 처음 접하면 시간을 많이 잡아먹는다 ㅋㅋㅋㅋㅋㅋ.. (해당 에러 잡을려고, 통합 5시간 날린 듯 합니다…)
- 휴먼 에러는 단축 코드를 잘 살펴보면서, 찾아야 한다.
→ showToast()
→ { showToast() }에러 통찰
둘 다 에러없이 정상작동 한다. 첫번째 코드에서, 뒷줄에 코드를 작성하면, “타입에러” 가 발생한다 ㅎㅎ..
- 에러 정의
- API 응답 데이터객체 매핑 에러
- 에러 정의
- API 호출 후 응답 데이터가 매핑되지 않고, 요청 실패가 되어버리는 에러
- 에러 원인
- API 응답 데이터객체를 API 응답 데이터 형식으로 지정해주지 않았을 때 발생한다.
- 에러 해결 & 통찰
- API 명세서에 기입된 API 응답 데이터 형식으로, 안드로이드 API 응답데이터 모델 객체를 선언하고, 생성한다. 그리고, API 응답 데이터객체를 받아서, 뷰 업데이트를 진행한다.
- 해당 에러는 Log & 콘솔을 찍어두지 않았다면, 인지하기 힘든 에러다. Pre-셋팅에서 onFailure()메소드가 있다. 해당 메소드는 API 요청 & 응답 에러가 발생했을 때 실행되는 메소드로, API 요청 & 응답 에러를 확인하려면, Log를 직접 찍어서 확인해야 한다.
- Pre-셋팅된 사항을 이해하고, 개발시작하기 API 요청 과정을 이해하면, Log를 어디에 찍어둬야하는지 이해할 수 있기 때문이다.
- 에러 정의
해외 레퍼런스가 더 쉽게 잘 알려준다.
이번에 안드로이드 파트로 "개발자"로써 개발하면서 느낀 점 중 하나이다.
해외 "영문" 자료 레퍼런스는 국내 "한글" 레퍼런스보다 더 간결하고, 쉽게 알려준다는 사실을 이번 계기로 깨닫게 되었다.
구글 서칭할 때, "한글"로 검색해도 좋은 자료, 원하는 자료들이 많이 나오긴 하지만,
"영문"으로 검색하면, 구현하고자 하는 바에 부합하는 자료들이 더 많이 나오고,
더 쉽고 간결하게 설명해준다.
(심지어는 "유튜브" 영상으로 코드를 작성하는 방법과 이렇게 작성하는 이유에 대해서 설명하는 영상도 있었다.)
대표적인 영상 중 하나가 바로 아래의 영상이다.
"영문" 서칭을 통해 레퍼런스를 탐색하게 된다면, 이처럼 질 좋은 자료들을 쉽게 접할 수 있다는 사실을
이번 안드로이드 파트 개발자로써 개발을 수행하면서 깨닫게 되었다.
정리하면, 국내 "한글" 자료도 좋은 자료들이 많은 것은 사실이다.
그렇지만, 만국 공통 언어인 "영어"로 된 자료들은 더 많은 것이 실체이다.
이번 경험을 토대로 "영문" 레퍼런스의 힘을 직접적으로 느끼게 되었고,
영어 공부의 필요성을 개발하면서 느끼게 해준 뜻 깊은 경험이 되었다..
# 사담
참고로, 4월에 군입대를 앞두고 있기에,
군대에서 하고 싶었던 것들을 리스트를 생각하고 정리 중에 있습니다.
이번 경험을 토대로 "영어" 공부에 대한 흥미가 생겨서
아마 군대에서 영어 공부를 제대로 하지 않을까 싶습니다
군대 또한 남들이 해보지 못하는 경험이기에,
전 소중한 1년 6개월이라는 시간을 허투로 쓰지 않고 이전까지 못해보았던 공부 & 경험들을 해보려고 합니다 ^.^
(운동, 영어공부, 군대라는 곳에서의 사회생활, 서버공부, Deep한 알고리즘 공부, 책읽기)
4월 입대 전까지 위에 보이는 리스트를 더 늘려서
군대에서도 심심하지 않게 1년 6개월을 즐기다 올 수 있는 "동욱"이가 되도록 하죠
휴먼에러
휴먼에러는 개발자의 시간 깎기 기계같다.
휴먼에러는 문법 에러와 타입 에러와 같은 일반적인에러보다, 해결하기 쉽지만
눈에는 잘 보이지 않는, 개발자가 스스로 만들어 낸 에러를 뜻한다.
정리하면, 문법 & 데이터 에러도 아닌, 에러인 셈이다.
컴파일러가 에러를 인식하지 못하는 에러를 휴먼에러라고 지칭한다.
# 휴먼에러는 주로, 처음 접하는 개발환경에서 많이 발생한다.
처음 접하는 개발환경에선, 코드 문법을 정확하게 인지하지 못하며
그에 따라 개발하면서 작성한 코드들에 발생하는 에러들을 쉽게 알아채지 못한다.
그 중에 휴먼에러들이 섞여 해결하는 데 많은 시간이 소모하게 된다.
(내가 이번에 안드 개발하면서, 휴먼에러 하나 잡는데 5시간정도 모했다 ㅋㅋ...)
# 휴먼에러는 템플릿 로직, 코드 로직을 처음부터 살펴보면서 발견할 수 있다.
휴먼에러를 빨리 인지하고, 알아내는 방법은
개발환경에 빨리 적응하여 코드를 작성해내면 휴먼에러로 부터 벗어날 수 있다.
하지만, 처음 접하는 개발환경일 경우 빨리 개발환경에 적응하기에는 무리가 있다.
그런 면에서, 휴먼에러를 대처하는 방법은
템플릿 로직 & 코드 로직을 처음부터 다시 살펴보면서 발견하는 것이다.
정체불명의 에러가 발생한다면, 여러 레퍼런스들을 참고하면서
정체불명 에러 원인을 처음 코드를 작성했던 상황으로 돌아가서 파악하는 것이다.
그러다 보면, 휴먼에러를 발생시킨 지점을 찾아낼 수 있을 것이다.
(이번에 개발하면서 겪은 휴먼에러는
"{}" 를 하지 않아서 생긴 에러이다. for()문 과 for(){ } 문과 동일 시 여기는 것과 같이
휴먼에러를 찾아내려면 경험이 있어야 된다.)
정리해서, 처음 접하는 개발환경의 경우 "경험"이 존재하지 않기에
여러 레퍼런스들을 참조하면서 개발환경에 대해 "익숙해질" 필요가 있다.
마치며
이번 개발경험을 토대로
"영어 공부"의 필요성과 개발환경에 빨리 적응하는 능력을 깨닫게 되었다.
프로젝트가 막바지에 들어서며, "당신의 발자취" 팀은 처음인 기획단계에서보다
비교할 수 없을 만큼 튼튼해지고, 단단해졌다.
한마디로, 협업 시너지가 발휘한 듯이 앱 개발 프로젝트가 순조롭게 이뤄지는 중이다.
막바지에 접어들며, 프로젝트 과정들을 되새겨보듯이 생각해봤지만, 정말 신기했다.
처음에 안드로이드 파트원들끼리 처음 만나서 프로젝트 "기획회의"를 진행했을 때만 해도,
이 프로젝트가 과연 끝까지 갈 수 있을까? 라는 생각이 절반 넘게 차지했었다.
하지만, 지금 프로젝트 막바지에 접어들면서, 드는 생각은 UMC 3기 데모데이 때
"대상"을 탈 것 같은 생각이 든다.
대학교 1학년 겨울방학 프로젝트로 만난 "당신의 발자취" 팀원분들께
포기하지 않고, 책임감있게 자신의 파트에 최선을 다해주셔서 감사의 말씀을 드리고 싶다.
나 또한, 프로젝트 과정 중에 감정적으로 반응하지 않고, 이성적으로 임하고 있는 내 모습이 대견하고
뿌듯하다.
앞으로 남은 프로젝트 기간도 책임감있게, 이성적으로 프로젝트에 참여하는 안드로이드 개발자가 되도록 노력하겠다.
마치면서, 프로젝트가 끝이나고, UMC 데모데이가 끝난 뒤
프로젝트 전체 회고록을 작성할 예정이다.
해당 블로그에서 "당신의 발자취" 안드로이드 리드 개발자로써 활동한 경험들을 프로젝트 순차대로 차근차근 정리해보록 하겠다.
'🌤 프로젝트 > UMC 3기: 당신의 발자취' 카테고리의 다른 글
[팀 프로젝트] UMC 3기 앱 개발 프로젝트: 안드로이드 개발자 후기 (2) | 2023.02.17 |
---|---|
[팀 프로젝트] 서버 API 연결 (0) | 2023.01.27 |
[팀 프로젝트] Github 프로젝트 관리자로 활동하면서.. - 1차 병합완료 (0) | 2023.01.19 |
[팀 프로젝트] 갤러리 뷰 Fragment 구현 완료 - 개발 회고록 (0) | 2023.01.15 |
[팀 프로젝트] 안드로이드 개발템플릿 스터디 - 프로젝트 준비 (0) | 2023.01.03 |