채용 공고 현황 & 부족한 부분
1. 주요 자격 요건 & 우대 사항
- 채용 공고에서 자주 나오는 항목들을 총 5 가지의 카테고리로 분류하여 정리해 보았습니다.
더보기
언어
- Kotlin 개발 경험 (대부분은 Kotlin이 많았음)
- Java 개발 경험
아키텍처
- 안드로이드 플랫폼에 대한 이해
- AAC, Clean Architecture
- 디자인 패턴 (구조 패턴 )
협업
- 서버 개발자와의 협업
- Git / Git-Flow를 이용한 개발 경험
- 타 직군과(디자이너, 기획자) 협업 경험
기술 스택 & 라이브러리
- Jetpack 라이브러리 (Compose 등)
- Coroutine, Flow 개발 경험
- DI(Koin/Hilt/Dagger) 라이브러리 개발 경험
- Retrofit2 개발 경험
개발 경험
- 백그라운드 프로세스 개발 경험
- 여러 해상도별 UI 구현 경험
- 디바이스 별 다양한 트러블 슈팅 경험
- REST API (API 설계 및 개발 경험)
- TDD 방법론을 통한 개발 경험
UI/UX
- 생각보다 안드로이드 모집 공고에서 UI/UX가 자격 요건으로 들어있는 경우가 많았습니다.
- 평소 UI/UX에 굉장히 신경 쓰는 편이기에 회사별로 자격 요건들을 정리 해보았습니다.
- UI/UX
- UI/UX의 디테일에 대한 집착과 욕심이 있으신 분 (애니메이션 등) - 비엘큐(테스트밸리)
- 모바일 개발 트렌드 및 UI/UX에 대한 이해가 높은 분 - 누아
- 다양한 UI/UX 개발 경험이 있으신 분 - 이즈피엠피
- 1px이라도 어긋난 것, 동작이 부드럽지 않은 걸 고치고 싶은 분 - 보이저엑스
- figma를 통한 디자인 리소스 관리 - 마드라스체크, 토기
- 모바일 개발 트렌드 및 UI/UX에 대한 이해가 높은 분 - 피앤씨테크놀로지
2. 자격 요건 중 현재 프로젝트에 적용된 부분 & 적용되지 않은 부분
- 자격 요건 중 현재 프로젝트에 적용 중 or 적용 예정인 부분을 형광펜(밑줄)로 표시 해보았습니다.
더보기
언어
- Kotlin 개발 경험
아키텍처
- 안드로이드 플랫폼에 대한 이해
- AAC, Clean Architecture
- 디자인 패턴 ( 구조 패턴 )
- mvvm 패턴 적용 중
- proxy 패턴 적용 고려 중
협업
- 서버 개발자와의 협업
- Git / Git-Flow를 이용한 개발 경험 (적용 예정)
- 타 직군과(디자이너, 기획자) 협업 경험
- 디자이너분 1명과 같이 작업 중 입니다.
기술 스택 & 라이브러리
- Jetpack 라이브러리 (Compose 등)
- Coroutine, Flow 개발 경험 (적용 예정)
- DI(Koin/Hilt/Dagger) 라이브러리 개발 경험 (적용 예정)
- Retrofit2 개발 경험
개발 경험
- 백그라운드 프로세스 개발 경험 (적용 예정)
- 프로젝트의 블루투스 기능에서 적용될 예정 입니다.
- REST API (API 설계 및 개발 경험)
- 여러 해상도별 UI 구현 경험
- 디바이스 별 다양한 트러블 슈팅 경험
- TDD 방법론을 통한 개발 경험
UI/UX
- UI/UX
- 현재 Figma를 통해 직접 UI 설계도 같이 하고 있습니다.
3. 내가 생각하는 부족한 부분
기술 측면
- AAC, Clean Architecture ★
- 현재 MVVM 패턴을 적용하고 있고, MVVM, MVP, MVC 패턴 별로 각각 프로젝트를 개발한 경험이 있어 익숙하기도하고, 평소 구조나 코드 중복에 대해 매우 신경을 많이 쓰는 편이라 고민을 많이하는데, 구조 패턴을 잘 쓰고 있는지는 의문이 들기는 합니다.
- AAC나 Clean Architecture를 이번 프로젝트에서 적용하는 것도 고려 중인데, MVVM을 제대로 사용하고 있는지 확실하지 않아서 많이 고민 중입니다.
- AAC나 Clean Architecture를 적용하고 싶은데, 너무 욕심만 앞서는게 아닌가 싶어 고민이 많이 되는 것 같습니다.
- Coroutine & Flow
- Coroutine & Flow에 대한 개념은 거의 없는 상태입니다.
- Coroutine도 Retrofit2 사용하면서 거의 기본 기능만 사용해본 정도입니다.
- 이번 방학에 공부해서 프로젝트에 적용하려고 하고 있지만, 아직 개념이 많이 부족한 상태인 것 같습니다.
- Jetpack
- 안드로이드를 접한지 약 6~7개월 정도 밖에 되지 않아서, Jetpack에 대한 개발 경험이 없습니다.
- 기본적으로 안드로이드 네이티브에 대한 개념과 경험을 쌓아야 겠다고 생각하고 있어서, 아직 Jetpack은 프로젝트에 적용하지 않은 상태입니다.
- 이번 프로젝트를 마무리한 후 AAC와 함께 Jectpack을 도입하여 리팩토링하는 방안도 생각 중입니다.
- Test
- 테스트 코드를 짜본 경험이 없습니다.
- 아직 안드로이드에서 모르는 부분도 많고, 공부해야 될 것도 많기 때문에 계속 미루는 중입니다..
기타 측면
- UI 구현에 대한 이해 ★
- 안드로이드도 앱들을 보면 매우 다양한 UI를 볼 수 있는데, 그런 커스텀 UI들을 어떻게 구현하는지 아직 감이 많이 부족한 것 같습니다.
- 웹 같은 경우에는 UI에 대한 소스 코드 예시가 정말 많아서 예시들을 보고 감을 잡을 수 있었는데, 안드로이드의 경우 커스텀 UI에 대한 예시 코드를 찾기가 쉽지 않았습니다 ㅠ
- 화면을 설계하면서도 UI/UX적으로 더 좋은 방법이 있지만, 구현을 할 수가 없어 다른 방법으로 타협을 본 경우가 많습니다.
아직 안드로이드에 대한 이해가 깊지 않은 것 같습니다.
라이브러리나 UI 등이 잘 적용된 실제 예시들을 보면서 공부하고 싶은데 안드로이드는 그런 예시를 찾기가 생각보다 힘들어서 공부하는데에 있어 힘이드는 것 같습니다.
특히 주변에 안드로이드 개발하는 사람이 없어서 정보나 자료 찾기도 힘들다는게 가장 큰 벽으로 느껴지는 것 같습니다.
이번에 안드고 님의 멘토링을 통해서 실무에서 어떤 기술을 사용하는지, 참고할 자료들을 어떻게 잘 찾을 수 있을 지에 대해서 많이 배우고 싶습니다.
현재 진행 중인 프로젝트 개요
1. 프로젝트 개요 및 기능 요구사항
- 프로젝트에 대한 대략적인 설명과 현재 구상 중인 기능들에 대해서 정리한 내용입니다.
프로젝트 개요
- 현재 교정 관리 시스템을 개발하고 있습니다. (하드웨어 + 안드로이드 앱)
- 학과 연구실에서 추후 기업으로 기술 이전을 목표로 하고 있기 때문에 프로젝트의 자세한 내용은 생략하겠습니다 !
- 실제 구글 플레이스토어에 출시하는 것을 목표로 하고 있습니다.
- 그만큼, 기능적인 부분, 성능(대용량 데이터 처리), UI/UX 적인 부분에서 신경을 많이 쓰고 있습니다.
- 운영까지는 실질적으로 힘들기에 트래픽 처리에 대한 부분은 미뤄둔 상태입니다.
기능 요구사항
- 학과 연구실 프로젝트이므로 프로젝트의 자세한 내용을 공개할 수는 없을 것 같아서 대략적으로 작성했습니다 !
- 프로젝트의 데드라인은 2023년 6월로 계획 중입니다.
더보기
- 소셜 로그인
- 구글, 카카오 소셜 로그인( JWT 토큰 기반으로 구현 예정 )
- 블루투스 기능
- 저희가 제작한 장치와의 연동을 위해 저전력 블루투스(BLE) 모듈을 사용하고 있습니다.
- 장치 검색, 장치 페어링, 자동 연결 등 기본 적인 블루투스 관련 기능을 개발할 예정입니다.
- 백그라운드 실행 (앱이 종료 되어도 장치와의 연동은 지속되어야 하므로 백그라운드 기능도 개발할 예정 입니다.)
- 장치 데이터 관리
- 장치로 부터 얻어온 데이터를 관리하는 기능입니다.
- 앱 내부 DB를 최대한 활용하여 서버에 부담을 최대한 줄이는 방향으로 설계 중입니다.
- 데이터가 하루 단위로 쌓이고, 서버에도 날짜별로 저장할 예정입니다.
- 브로드캐스트 리시버를 통해 특정 시간에 데이터를 서버로 전송하면 특정 시간에 트래픽이 몰릴 수 있으므로, 앱 내부 DB에 저장해두었다가 로그인하는 시점에 서버로 전송되지 않은 데이터가 있는지 확인한 후 서버로 전송하는 방법을 채택 하였습니다.
- 병원 정보 관리
- 제휴를 맺은 병원들에 대한 정보를 관리하는 기능입니다.
- 지도를 통한 제휴 병원 위치 표시
- 병원 상세정보 (위치, 운영 시간, 휴일 등) 등의 기능을 제공할 예정입니다.
- 리마인더
- 병원 예약을 리마인더 형식으로 관리하는 기능입니다.
- 체크리스트
- 교정에 중요한 습관 등을 체크리스트 형식으로 관리하는 기능입니다.
- 챗봇
- 챗봇을 통해 상담 기능을 지원할 예정입니다.
- 챗봇을 직접 구현할 지, 기존의 서비스를 이용할 지는 고려 중입니다.
- 챗봇을 통해 상담 기능을 지원할 예정입니다.
- 출석 체크 & 마일리지 시스템
- 사용자가 들어오고 싶은 앱을 만들기 위해 마일리지 시스템을 구상 중입니다.
- 꾸준한 출석 & 체크리스트 수행 등을 통해 마일리지를 적립할 수 있는 기능입니다.
- 교정 퀴즈
- 교정에 관련된 퀴즈를 통해 알아두면 좋은 지식이나 주의할 점 등을 알리기 위한 기능입니다.
- 마찬가지로, 퀴즈를 풀면 마일리지가 적립 되도록 구상 중입니다.
- 구글 어시스턴트 지원
- 음성 인식 기능과 챗봇을 결합하여 구글 어시스턴트 지원이 가능하게 할 예정입니다.
- 홈 버튼을 꾹 누르면 바로 챗봇과 대화가 가능하도록 구상 중입니다.
- 사용자 상태 측정 (구현 완료)
- 자신의 상태를 측정하고 기록하는 기능입니다.
- 인공지능을 통해 미세한 변화를 잡아내어 동기부여를 극대화하기 위한 기능입니다.
2. 프로젝트 목표
- (프로젝트 주제의 목표가 아닌 해당 프로젝트를 통해서 어떤 경험을 쌓고 싶은 지, 어떤 부분을 채우고 싶은 지에 대한 내용입니다.)
- 한 번에 너무 많은 새로운 기술을 적용하기엔 부담이 많이 클 것 같아서, 중요한 몇 가지 기술 스택만 골라서 확실하게 이해하고 응용해보는 것을 목표로 할 예정입니다.
이번 프로젝트에서 새로 적용될 부분
- Clean Architecture (고려 중)
- Hilt 라이브러리
- Coroutine & Flow
- Git-Flow를 통한 팀원과의 협업
- 커스텀 UI (제가 원하는 대로 UI를 구현할 수 있도록 다양한 UI를 시도해 볼 예정입니다)
- 여러 해상도별 UI 구현 경험
프로젝트 개선을 위한 방안
위에서 고른 기술 스택들에 대해 깊은 이해가 필요할 것 같습니다.
이전에는 사용할 수 있을 정도로만 공부하고 썼는데, 확실히 개념을 정리한 후 좀 더 잘 활용할 수 있는 방안을 생각해보는 방향으로 진행해야 할 것 같습니다.
실제 예시들을 많이 참고하면서 좋은 예시를 눈에 익히며 느리더라도 확실하게 적용할 수 있도록 할 예정입니다.
새로운 기술을 잘 적용하는 것도 좋지만, 이전에 개발했던 프로젝트의 문제점을 개선하는 것도 중요하다고 생각하고 있습니다.
이번 프로젝트에선 저장해야 할 데이터의 양이 많아서 이 데이터들을 어떻게 효율적으로 저장하고, 서버에 가해지는 부하를 줄일 수 있을지를 많이 고민하고 있습니다.
- 안드로이드에서 대용량 데이터를 효율적으로 처리하는 것
- 기존에 서버에만 저장하던 데이터를 서버측 DB와 앱 내부 DB로 나누는 방법
등을 고려하여 완성도 높은 앱을 만들고 싶습니다.
'안드로이드' 카테고리의 다른 글
[ 안드로이드 ] 구글 캘린더 구현하기 (3) - 캘린더 Week <-> Month 전환 구현 (0) | 2023.02.28 |
---|---|
[ 안드로이드 ] 구글 캘린더 구현하기 (2) - CalendarView 라이브러리 속성 정리 (0) | 2023.02.28 |
[ 안드로이드 ] 구글 캘린더 구현하기 (1) - CalendarView 라이브러리 추천 / 예제 (0) | 2023.02.27 |