채용공고 올리기

김태욱님을 응원해보세요!

좋은 제안에 열려있어요
책임감
솔루션 지향
목표 지향적
기술적
참을성

미리보기

기본 정보

이름
김태욱
직업
안드로이드 개발자
간단 소개

안녕하세요. 작동을 제대로 하면서도 유지보수가 원활한 지속 가능한 소스코드를 만들기 위해 노력하는 안드로이드 개발자 김태욱입니다.

기술 스택

기술 스택

Android, Java, Kotlin, Flutter, iOS

프로젝트

프로젝트명

가상 e-Amusement Application

소속/기관명

프로젝트 기간

2024.07. ~ 진행 중

프로젝트 내용

즐겨하는 아케이드 게임인 일본 코나미사의 계정카드인 e-Amusement PASS 카드를 따로 들고 다닐 필요없이 휴대폰 상에서 가상의 카드를 에뮬레이션 해주는 앱입니다. 원래 원할한 Test를 위해서 ViewModelAndroid Platform에 의존적이지 않기 위해 Context를 직접적으로 받지 않아야하나 NFC기능의 직접적인 활용을 위해 불가피하게 ContextView로 부터 의존성 주입을 한점이 기술적으로 아쉬움이 남습니다. 현재도 지속적으로 개발을 진행중입니다.

Use : NFC(HCE-F), Jetpack Compose, MVVM

Learned : 기존 XML기반으로 UI를 작성하는 방식은 아무래도 XML에서 코드로 Databinding을 거쳐야 하는등 복잡했으나 FlutterSwiftUI와 같은 선언형 UI 방식을 이용한 Jetpack Compose를 사용하니 코드 상에서 직접적으로 UI를 선언할수 있어 개발이 한결 편해졌다고 생각합니다.

프로젝트명

Coinminer

소속/기관명

프로젝트 기간

2022.07. ~ 2022.09.

프로젝트 내용

Code : https://github.com/neolabs120-mobile/ethermine

블록체인에도 관심이 많아 이더리움이 POS로 전환되기전 지분보증 방식을 POW시기 일때 GPU를 활용한 채굴을 한적이 있었습니다. 그런데 채굴 Pool의 현황을 보여주는 사이트가 따로 모바일 앱을 지원하지 않아서 마침 관심이 있었던 Flutter를 기반으로 채굴 Pool 현황을 파싱하여 화면에 보여주는 애플리케이션을 개발하였습니다.

프로젝트명

Passcode - 패스워드 저장 애플리케이션

소속/기관명

프로젝트 기간

2021.01. ~ 2021.03.

프로젝트 내용

암호화된 DB를 사용한 개인계정 및 패스워드 저장 어플리케이션 입니다.

Use : Kotlin, Room

Learned : 애플리케이션 성격 특성상 패스워드 원문을 암호화해서 저장해두어야 했습니다. 또한 이러한 과정에서 메모리 안의 패스워드 원문이 유출되는 일이 없도록 신경을 써야 했는데 이 과정에서 앱 보안에 대해 많은것을 배웠습니다. 저장을 해둬야하는곳이 중요한 개인정보인 비밀번호인 만큼 비밀번호를 암호화하는 RSA 암호화 방식에 대하여 공부하였으며, 특히 아래 링크를 적극적으로 참고하여서 개발을 진행하였습니다.

안드로이드 앱의 Persistent data를 제대로 암호화해 보자! (1/2)

PASSCODE - password manager - Apps on Google Play

‎PASSCODE - password manager

프로젝트명

여행 관련 애플리케이션 리뉴얼

소속/기관명

프로젝트 기간

2018.07. ~ 2018.09.

프로젝트 내용

여행관련 애플리케이션 앱 리뉴얼 및 코드레벨 리팩토링 진행 프로젝트 입니다.

저렴한 항공권을 조건에 맞게 검색하여 결과를 검색하는 애플리케이션 입니다.

외주 프로젝트 였기 때문에 디자인이 이미 정해져 있었고, 그에 맞게 프로그래밍 하기 위해 여러가지 어려움을 해결하였습니다.

Use : Rxjava2, Retrofit2, ViewPager, Glide, AirCalendar

  • AirCalendar 라는 오픈소스 달력 라이브러리를 수정하여, CustomViewClient요구에 맞게 수정하여서 원하는 모양에 맞게 구현하였습니다.

  • 클라이언트 요구에 맞추어서 복잡한 UI를 구성하는 여러가지 방법을 외주 프로젝트를 통해서 알게되었습니다. 이 과정에서 디자이너와 협업을 위해 Zeplin을 활용하였습니다.

  • ViewPager를 활용하여서 각 지역에 맞는 특가항공권을 보여주는것을 구현하였고, 이미지 로딩에 Glide라는 이미지 라이브러리를 활용하였습니다. Glide라는 오픈소스 라이브러리가 타 라이브러리에 비해 라이브러리 자체의 용량은 많고 무거운 편이지만 확장성, 이미지 로드 성능등이 타 라이브러리에 비해 나은것 같아 Glide를 사용하기로 하였습니다.

프로젝트명

Kok!

소속/기관명

프로젝트 기간

2018.10. ~ 2018.11.

프로젝트 내용

'특정 장소에 내가 방문했다는 흔적을 남기고 그를 통해 사용자와 소통할수 있는 SNS앱을 만들면 어떨까?'라는 생각에서 출발한 앱입니다. 사용기술로는 Android, Java, Kotlin, Node.js(백엔드), MongoDB, Retrofit2(GET통신), Glide(이미지 처리)가 있습니다.

Use : Android, Java, Kotlin, Node.js, MongoDB, Retrofit2, Glide

-Node.js 서버를 작성할때 이미지 저장 처리를 코딩한게 제일 기억에 남습니다. 전혀 시도해보지 않은 분야였지만 Youtube 영상등을 참고하여서 끝까지 시도하였고, 결국에는 기능구현에 성공하였습니다.

프로젝트명

반려견 관리 앱 개발

소속/기관명

프로젝트 기간

2018.07. ~ 2018.08.

프로젝트 내용

-서버 구현 일부 + 레이아웃 + UI + 날씨 가져오기를 담당하였습니다. (전체 코드의 약 45%)

활용기술 : Kotlin, Java, Retrofit2

개고생 프로젝트란, 애견인을 위한 앱으로써 사료 자동배급 기능, 원적외선 원격 On/Off, 애견 과 통화하기, 원격으로 노래틀어주기, 사료 자동구매 기능등을 구현한 애플리케이션으로 본인은 이에 대해 안드로이드 앱 개발을 담당했습니다. 앱은 Kotlin + Java로 개발되었으며, 사용한 라 이브러리는 Retrofit2로, 서버와의 통신을 위해 사용하였습니다. 공동 개발한 어플리케이션으로, 서버 구현 일부 + 레이아웃 + UI + 날씨 가져오기 등을 담당하였습니다

프로젝트명

네이버 안드로이드 부스트코스 과정 수료

소속/기관명

네이버 커넥트재단

프로젝트 기간

2018.06. ~ 2018.07.

프로젝트 내용

Use : Sqlite, RecyclerView, Volley, Fragment, Viewpager

Refactoring Use : Databinding, Retrofit2, Room, Coroutine, Kotlin, Dagger-Hilt

프로젝트 소개 : 1단계에서 8단계로 이루어져 있으며, 각각 영화상세 화면을 만들고, 한줄평 화면을 만들고, 영화목록을 만드는 프로젝트 였습니다.

Learned : 신입 안드로이드 개발자에게 필수적으로 필요한 것을 속성 과정으로 배우는 좋은 계기가 되었습니다. (Activity, Fragment, RecyclerView, Java 등등) 코스 과정이 만들어진 시기 전후 안드로이드 개발 패러다임이 많이 바뀌어서 리팩토링 소스코드도 대격변을 겪었습니다. 소스 리팩토링 후 소스코드는 모두 공개되어 있습니다. 우선 많이 쓰이지 않고 확장성이 떨어지는 Volley 대신 안드로이드에서 자주 쓰이는 네트워크 통신을 위해 Retrofit2 라이브러리를 이용하였고, 데이터를 체계적으로 저장하는것을 구현하는데에 더 편리한 SQL DB 사용을 위해 AAC JetPack중 하나인 Room을 활용하였습니다. 또한 비동기 처리를 위해 Coroutine을 활용하였으며 DI를 위해 기존 Dagger2에서 간소화된 Dagger-Hilt를 사용하였습니다.

포트폴리오

URL

link

https://neolabs123.notion.site/Mobile-Developer-480371983f3c42c5bb0cca3377e107ab?pvs=4

노션

교육

소속/기관명

평생교육진흥원

종류 | 전공

대학교(학사) | 컴퓨터공학과

재학 기간 | 재학 상태

2020.02. ~ 2024.08. | 졸업

자격증

자격증명

정보처리기능사

점수 | 발급기관

취득 | 한국산업인력공단

취득연월

2011.09.

외국어

외국어명

영어

점수

비즈니스 회화 가능

자기소개

자기소개

안드로이드 라는 플랫폼을 과거부터 접하면서 현재는 deprecated된 Asynctask 등을 이용하여 비동기 처리를 하다가, RxJava를 알게 된후 더 간편해진 비동기 처리와 개선된 코드 가독성에 편리함을 느꼈던 기억이 납니다. 이후에는 프로젝트에서 Rx를 덜어내고 Coroutine + Flow 을 이용한 비동기 + 함수형 프로그래밍 처리와 클린 아키텍처를 익힌후에는 프로젝트를 모두 위의 기술 스택을 활용하여 만들고 있습니다.

댓글