회고록은 처음이다. 뭘 어떻게 시작해야 할지 모르겠다. 회고록 마저 남의 블로그 찾아서 참고해 쓰는 건 자존심이 허락하지 않을 것 같은데.. 하면서 이미 찾아봤다. 졌다.

그렇게 나는 2년차 Android 개발자가 되어가고 있었다. 이 회고록은 나의 과거를 돌아보게 하고 올 해 새로운 목표를 달성하기 위해 작성한다. 이렇게 하니까 뭐 되게 거창해 보이네..

2021년에 무얼 했는가?

일단 회사에서?

나는 블록체인 기술로 기술개발을 하는 회사에 재직 중이다. 그 중 블록체인 기반의 B2B 솔루션을 개발하는 팀에 속해 있다. 여느 때와 다르지 않게 여러 프로젝트를 진행했다.

처음으로 SDK라는 것을 제작해봄.
매일 클라이언트 앱만 만들던 내가 SDK제작이라는 업무를 배정받았다. 앞이 깜깜했다.. 다른 사람들이 만들어 놓은 거 받아다 쓰기만 했지 그걸 실제로 만들라니..

어떻게 보면 간단하지만 정말 생각할 것이 많은 놈이다. 어느 환경에서도 잘 동작해야 하며 오류가 적어야 하고 예기치 못한 예외상황까지 고려하여 처리를 해주어야 한다. 게다가 외부로 배포하는 거라 더욱 신경쓰인다 ㅠㅠ

그래도 큰 기능을 하는 것은 아니고 단순히 우리 블록체인 솔루션을 같이 사용하여 부가 기능을 제공해 주기만 하면 되었기 때문에 큰 부담은 없었다.

20년도에 입사할 때 내 목표가 모든 프로젝트는 Kotlin으로 작성하기였다. 그래서 SDK도 Kotlin 기반으로 만들었다. 하지만 실수였던거 같다. 차라리 구글 처럼 -ktx prefix 붙혀서 따로 배포했으면 베스트 였지만 그런 거 생각할 시간이 어딨었나? 라며 핑계 대본다.

Kotlin에서만 사용 가능했던 문법들은 고객사가 Java 를 사용하는지, Kotlin으로 사용하는지 알지도 못 한 체 열심히 만들어 놓은거라 죄다 롤백 시켰다. 뭐 결국 나중에 알고 보니 Kotlin쓴다더라. 그래도 호환성을 중요시 하는 것이 SDK인 만큼 이 삽질도 경험이라고 생각한다.

SDK에서 context 사용을 위해 initialize 하는 과정이 있는데, 이 부분은 올해 말 쯤 큰 실수가 있었다는 걸 알았다. initialize 는 한 번만 하도록 하는 것이 맞는데 내가 설계한 구조는 그게 아니었다. synchronized 키워드는 둘째치고 AtomicBoolean과 같은 동시성 문제에 대해선 전혀 대응이 되어있지 않았다. (멘붕…)

여하튼 이런 저런 이슈들을 처리해서 JFrog 플랫폼으로 SDK를 베포했었다. (몇 달 뒤 JCenter 지원 중단된다는 거 보고 한 번 더 멘붕…)

아직도 개선하고 싶은게 몇 가지 보이는 프로젝트.

리팩토링 이라는 것을 해봤다.
와 이거 장난없다. 사실 기존 프로젝트 인수인계 받은 것인데, Java + Kotlin 짬뽕에 구조 파악도 어려웠고 클래스마다 어떤 걸 담당하고 있는지 이해하기 너무 어려웠다.

그래서 결국 다시 만들기로 했다. 구글 형님이 가이드 제공하는 대로, AAC 사용해서 MVVM 패턴의 Clean Architecture 구조로 구현했다.

입사 후 처음 느껴보는 짜릿함과 미친 집중력.. 내가 하고픈거 하면서 일 하는게 이렇게 즐거울 줄이야.

다만 실제 프로덕트에 적용되진 못 했다. QA이슈부터 해서 검증할 시간이 없었다. 이때 정말 기운이 쫙 빠지면서.. 하고 싶은 마음이 싹 사라질 뻔 했다.

하지만 그 프로젝트는 다양한 방식으로 확장되고 있어서 언젠가는 리팩토링 된 버전을 사용하리라, 하며 희망고문을 해본다.

그 때 적용하면 되니까…. (언제가 될 진 아무도 모름.)

하드웨어 기기와 연동하는 작업
이번 프로젝트는 NFC기술을 이용한 기능이 핵심이었다.

프로젝트 자체가 계속 스핀오프 식으로 계속 진행되고 있기도 하거니와 각 프로젝트 마다 사용하는 하드웨어 기기들이 전부 다 달라서 여러 업체의 기기를 연동해야 했다.

덕분에 NFC 프로토콜도 익힐 수 있었고 모든 기기가 내 맘대로 동작해주지 않는다는 사실 또한 뼈저리게 느끼게 되었다.

억울한 건 그게 내가 수정하고 싶어도 수정할 수 없는 부분이 많았다는 것이다. 하드웨어 쪽 이슈를 내가 어떻게 고쳐. ㅠㅠ

개인적으로는 뭘 했나?

정말 바쁜 한 해였다. 핑계라면 핑계다. 올 해는 정말 한 것이 없다. 이번 github 블로그도 열심히 작성하리라 다짐했는데 생각보다 별로 작성을 하지 못 했다.

쓸만한게 없진 않았는데 나도 자료 조사하다가 중도포기 한 게시물이 많았다….

고민도 정말 많이 했다. 회고록 작성하는 시점에도 병특 복무중인데 22년 6월에 끝나면 복학 vs 업무 에 대한 고민이다.

아직도 고민중이다.. 22년 회고록에선 어떻게든 결정이 났겠지?

올 해는 더 분발할 수 있도록!

2022년은 무얼 할 것인가?

회사에서도 같은 프로젝트를 여러 형태로 제공을 해주는 업무를 하고 있어서 크게 뭘 할 수 있을것 같진 않다.

그냥 개인적으로 목표하고 있는 곳이 있는데 올 해 안으로 달성할 수 있도록 열심히 준비해야겠다.

사실 아직 학부 휴학생인데.. 1학년만 마치고 나온 입장이라 2학년 커리큘럼 강의를 하나도 듣지 못했다.

난 욕심이 많은 사람이라 자료구조 먼저 책 사서 공부 할 것이다.

안드로이드도 빠르게 변화하는 트렌드에 맞춰 유지보수 할 것이다.

개인프로젝트도 하나 해보고 싶다.

친구들끼리 진행하는 프로젝트도 있는데 21년 12월에 개발용 제품이 나왔다. 올 해 안엔 마무리 해야지.