채용공고 올리기

이후기님을 응원해보세요!

이직/구직 중이에요

미리보기

기본 정보

이름
이후기
직업
안드로이드 개발자
간단 소개

읽기 쉽고, 유지보수가 편하고, 유연한 코드를 작성하고자 합니다.

자기소개

자기소개

Mindset

  • 저는 정리정돈 하는것을 좋아합니다. 저의 코드철학은 첫째는 중복코드 배제, 둘째는 관심사 분리입니다.
  • 저는 지식을 기록하는 것을 즐깁니다. 무제 노트에 기록하던 습관이 이제는 노션에 학습내용을 기록 하는것으로 일상이 되었습니다.

Comunication

  • 저는 명확한 의사소통을 중시합니다. 주어와 목적어를 분명히 하여 의견전달이 명확하게 될수 있도록 합니다.
  • 저는 상대방의 의견과 피드백을 적극적으로 경청합니다. 상대방의 의견을 경청하되 적극적으로 의견 제시도 합니다. 그에 따라 객관적으로 봤을 때 더 효율적이고 나아가는 결과를 지향합니다.

Vision

  • 포지션을 가리지않고 여러 프로젝트를 경험한것을 기반으로 안드로이드를 주 업으로 삼고, 백엔드 개발을 서브로 하는것을 목표로 하고 있습니다.
  • 최근에는 ComposeMVI 아키텍쳐에 관심을 두고 있습니다

기술 스택

기술 스택

Java, Kotlin, RxJava, MVVM, Android Compose, Swift, Angular, IONIC, Spring Boot, Spring Security, spring-jpa, MySQL, mybatis

경력

회사명

(주)소프트넷

직급 | 부서 | 근무 유형

하이브리드 앱 개발자 | IoT 기술연구소 | 재직 중

근무 기간

2021.09. ~ 재직 중 (3년 6개월)

담당 업무

모바일 앱 개발

주로 안드로이드 네이티브 앱개발과 Ionic 을 이용한 하이브리드 앱개발을 진행했습니다.

웹서비스 유지보수 및 운영

운영중인 웹서비스(Spring)의 이슈 코드 수정, 만료된 SSL 인증서 교체, 플랫폼 결제등의 유지보수를 진행했습니다.

프로젝트

프로젝트명

Inphr TEMP

소속/기관명

(주)소프트넷

프로젝트 기간

2023.10. ~ 진행 중

프로젝트 내용

Overview

웨어러블 디바이스 체온계를 이용해, 영유아의 체온을 측정하고, 관리하는 앱

Achievements

  1. Jetpack-Compose 도입 및 화면개발
  • Presentation 영역을 100% Compose 로 작성했으며, 기존의 View System 을 따르던 MP Chart 는 Android View 로 감싸서 처리했습니다.
  1. MVVM, MVI 패턴 혼합 적용
  • 로직이 복잡한 화면은 MVI 패턴을 따르는 MVI ViewModel 추상 클래스를 만들어 상속을 통해 구현하도록 작성했습니다.
  • Event 를 받으면 State 를 변경하고, Effect 는 ViewModel 에서 Channel 을 통해 방출하고 Presentation 영역에서 구독해 처리하도록 작성했습니다.
  1. 웨어러블 체온계 BLE 연동 로직 개발
  • 기존의 RxJava 로 되어있던 로직을 RxJava의 의존성을 버리고, 100% Kotlin 을 사용하도록 스트림 처리를 Kotlin Flow 로 대체했습니다.
  1. Backend API 연동
  • Retrofit 2 와 Json Paser는 Moshi 를 이용해 Repository 패턴을 따르도록 구현했습니다.
  • 캐싱이 필요한 부분은 Room 을 이용해 Repository 에서 캐싱처리를 하도록 구현했습니다.

Tech Stack

Android-Compose, MVVM, Kotlin, Flow, Retrofit2, Moshi, Coil, Room, BluetoothManager

프로젝트명

Inphr AIR

소속/기관명

(주)소프트넷

프로젝트 기간

2023.07. ~ 2023.09.

프로젝트 내용

Overview

항공기내 실시간 승객 건강 모니터링 시스템 (하이브리드 앱)
https://www.inphr.com/service/inphrair

Achievements

  1. Ionic - Angular 를 이용한 하이브리드 앱 개발
  • 화면을 Angular를 사용해 구현하고 Ionic 을 사용해 웹뷰로 띄우는 하이브리드 앱 개발을 진행했습니다.
  1. 웨어러블 밴드 BLE 연동 로직 작성
  • 이전 프로젝트(Inphr Smart)에서 개발한 BLE 모듈을 기반으로 Angular 에서 RxJS를 이용해 밴드를 연동하고, 생체 데이터를 조회하는 로직을 작성했습니다.
  1. Room 을 이용한 좌석-밴드 매칭 / 좌석조회 /생체데이터, 이상유무 저장 로직 개발
  • 구역별 좌석을 입력하고 해당되는 좌석번호에 밴드의 Mac Address 를 입력해 구역별로 Advertising 데이터를 필터링하여 가져오도록 구현했습니다.
  1. Capacitor Plugin 을 이용한 로컬 데이터베이스 부분과 BLE 연동로직 모듈화
  • 안드로이드 네이티브로 작성된 코드 로직을 Capacitor Plugin 을 이용해 모듈화했습니다.
  • 구현한 모듈은 내부 Nexus Repository 에 업로드하여 NPM install 만 실행해도 모듈 설치가 되도록 했습니다.

Tech Stack

Android, RxJava, BluetoothManager, Room, Ionic, Angular, Typescript, RxJS

프로젝트명

사내에서 사용하기 위한 간단한 출퇴근 관리 웹서비스

소속/기관명

(주)소프트넷

프로젝트 기간

2023.04. ~ 2023.05.

프로젝트 내용

Overview

사내에서 사용하기 위한 간단한 출퇴근 관리 웹서비스

Achievements

  1. 로그인 API 개발
  • Spring Security 를 이용해 Json Web Token 을 이용한 인증방식으로 구현했습니다.
  • 로그아웃은 서버는 Stateless 를 유지하는게 바람직하기 때문에 클라이언트에서 토큰을 삭제하도록 했습니다.
  • 권한은 유저와 관리자 두개를 주었고, 각각 Admin 과 User 테이블로 관리하도록 설계했습니다.
  1. 출근 / 퇴근 / 연차 / 외근 입력 API 개발
  • 출근 / 퇴근 / 연차 / 외근 입력의 CRUD를 JPA 를 이용해 구현했고, Restful API 규약에 맞춰 디자인했습니다.
  1. 월별 근무시간 통계 이메일 자동전송 기능 개발
  • Spring Scheduler + JavaMailSender 를 이용해 구현했습니다.
  1. Docker 를 이용한 배포
  • Dockerfile 은 빌드 스테이지와 실행 스테이지를 나눠서 각각 openjdk 이미지를 기반으로 작성했습니다.
  • DNS 설정 사이트와 Nginx 에 도메인을 등록한뒤 docker-compose 를 이용해 배포했습니다

Tech Stack

Java, Spring Boot, Spring Security, Spring-Data-JPA, MySQL, Docker

프로젝트명

Inphr Smart

소속/기관명

(주)소프트넷

프로젝트 기간

2022.01. ~ 2023.04.

프로젝트 내용

Overview

(정부과제) 웨어러블 밴드를 활용한 covid 자가격리자 안전보호 시스템 (격리자 앱/ 공무원 앱/ 관리자 웹 대시보드)
https://www.inphr.com/service/inphrsmart

Achievements

  1. Ionic - Angular 웹뷰를 이용한 하이브리드 앱 화면 개발
  • 화면을 Angular를 사용해 구현하고 Ionic 을 사용해 웹뷰로 띄우는 하이브리드 앱 개발을 진행했습니다.
  • 격리자 앱 / 공무원 앱 / 관리자 웹 대시보드 3개의 프로젝트를 개발 진행했습니다.
  1. 웨어러블 밴드 BLE 통신모듈 개발
  • Android - Bluetooth Manager 를 이용했으며 비동기 스트림은 RxJava 를 사용했습니다.
  • iOS - CoreBluetooth 를 이용했으며 비동기 스트림은 RxSwift 를 사용했습니다.
  • 네이티브로부터 스트림 또는 단일 데이터를 전달받으면 Angular 웹뷰에서 RxJS 를 이용해 데이터를 차트에 표시하거나 가공해 전송하도록 구현했습니다.
  • BLE 통신방식은 BLE 연결을 통해 데이터를 조회하는 방식과 비콘방식으로 구현했습니다.
  • 소스 관리의 용이성을 위해 Android - iOS 의 Bluetooth 로직, 패키지 구조 등을 통일했으며 Error 코드를 따로두어 공통된 에러를 핸들링 하도록 했습니다.
  1. 격리이탈 판단 기능 개발
  • 격리이탈 판정은 현재 좌표를 조회하여 미리 설정한 좌표로부터 일정거리 이상 차이가 나면 격리이탈이 되도록 구현했습니다.
  • GPS 의 오차범위 등을 감안해 3번이상의 격리이탈이 감지되면 격리이탈로 판정되도록 정책을 지정했습니다.
  • Android - GmsFusedLocation 을 이용해 구현했습니다.
  • iOS - CoreLocation 을 이용해 구현했습니다.
  1. 지속적인 생체정보조회 및 격리이탈 감지 (백그라운드) 기능 개발
  • Android 의 경우 Deep Doze 로 인해 많은 시행착오 겪었으나 최종적으로는 FCM 을 수신하면, WorkManager 의 신속옵션을 활용해 BLE 스캔과 GPS 좌표측정을 진행해 서버로 데이터를 전송하도록 구현했습니다.
  • iOS 의 경우 백그라운드 BLE 스캔을 진행하려면 펌웨어를 수정해 Service UUID 를 얻어와야 되었으므로 포그라운드에서만 생체정보조회 및 격리이탈 감지를 하도록 구현했습니다.
  1. TTA 인증 및 GS 인증 1등급 흭득

Tech Stack

Web : Angular, TypeScript, RxJS, CSS
Android : Java, RxJava, Retrofit2, BluetoothManager, FusedLocation
iOS : Swift, RxSwift, Alamofire , CoreBluetooth, CoreLocation

프로젝트명

InphrCare Web

소속/기관명

(주)소프트넷

프로젝트 기간

2021.10. ~ 2021.12.

프로젝트 내용

Overview

건강 관리 플랫폼 InphrCare Web
https://www.inphrcare.com/

Achievements

  1. DNS 수정, SSL 만료 인증서 교체, 로그 확인, 및 이슈 트래킹 등의 유지보수 작업
  2. InPHR 플랫폼 소개 리뉴얼 화면 개발

Tech Stack

AngularJS, CSS, Javascript, Java, Spring Boot, Mybatis

포트폴리오

URL

link

깃허브

깃허브
link

기술 블로그

노션

교육

소속/기관명

한신대학교

종류 | 전공

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

재학 기간 | 재학 상태

2011.02. ~ 2019.02. | 졸업

소속/기관명

송파 공업 고등학교

종류 | 전공

고등학교 | 컴퓨터과

재학 기간 | 재학 상태

2009.02. ~ 2011.02. | 졸업

자격증

자격증명

정보처리기사

점수 | 발급기관

기사 | 산업인력공단

취득연월

2019.09.

댓글