채용공고 올리기

오윤성님을 응원해보세요!

이직/구직 중이에요

미리보기

기본 정보

이름
오윤성
직업
안드로이드 개발자
간단 소개

안녕하세요. 서비스 개발을 좋아하는 안드로이드 개발자 오윤성입니다. 좋은 서비스를 만들기 위해 항상 사용자 입장에서 고민하고, 안정성과 완성도 높은 앱을 만드는 것을 가장 중요하게 생각합니다.

기술 스택

기술 스택

Android, Kotlin, Java, coroutine, Jetpack, Flutter, dart, Python, JavaScript

경력

회사명

IMLAB

직급 | 부서 | 근무 유형

Android 개발자 | 개발팀 | 재직 중

근무 기간

2023.09. ~ 재직 중 (1년 6개월)

담당 업무

주요 프로젝트

“ZEPL” / 2023.9 ~ 2023.03 (6개월)

[주요 업무]

  • “ZEPL” 안드로이드 앱의 신규 개발, 유지 보수 및 배포 업무

[수행 역할 및 주요 성과]

  • AI 모델을 사용하여 카메라로 사용자 움직임 트래킹 및 마스킹 기능 개발
    • MLKit을 활용한 모션인식 기능 구현
    • 추론된 포즈의 결과값을 파싱해 실시간으로 포즈를 화면에 그리는 기능 구현
    • 모션 인식 결과가 튀는 현상이 있어 후처리로 이동평균 및 가우시안 필터링 적용
  • 비밀번호 찾기 기능 개발
    • 이메일 인증 방식
  • 실시간 1:1 채팅 기능 DB 설계 및 기능 개발
  • FAQ 채팅방 DB 설계 및 기능 구현
  • Git branch 전략을 활용환 버전 관리
  • webView와 native 앱간의 통신 기능 구현
    • javascriptInterface를 활용하여 유저의 상태에 맞는 반응형 UI 개발
  • Localization
  • Clean Architecture 적용
  • View로 개발된 UI를 Compose로 마이그레이션
  • RxJava로 개발된 비동기 처리 코드를 Coroutine으로 마이그레이션
  • Firebase Analytics를 사용하여 앱 사용성 트래킹

“CPR plus” / 2023.3 ~ 현재

[주요 업무]

  • Flutter를 사용하여 “CPR plus”의 안드로이드, iOS 앱의 신규 개발 및 배포 업무

[수행 역할 및 주요 성과]

  • 프로젝트 신규 개발 및 시스템 고도화 업무
  • AppStore, PlayStore 앱 배포 관리
  • Xcode cloud를 활용한 AppStore 배포 자동화 기능 추가
  • 자사 IOT 기기 검색 bluetooth Scan 알고리즘 개발
  • 튜토리얼 모드 개발
    • 응급상황 발생 시 119 신고부터 AED 사용 방법까지 상황을 학습할 수 있는 기능
    • AED 부착 시나리오 기능 개발
    • CPR 연습모드 개발
    • 119 신고 시나리오 모드 개발
  • Localization
  • Firebase analytics 연동 및 사용자 행동 트래킹 기능 추가
  • 모든 해상도를 고려한 UI 개발 (Tablet, Mobile)
  • 팀원과 자주 소통하며 빠르게 비즈니스적 문제 해결
    • 기획, 디자이너와 끊임없는 소통을 통한 UX/UI 개선을 바탕으로 사용자 중심의 개발에 기여
      • 모든 해상도를 고려하기 때문에 많은 기기에서 테스트를 하고, 어색한 UI가 생기는 부분에 대해서 빠르게 이슈를 공유하고 해결함.
  • 사용자 친화적인 UX/UI를 만들기 위한 끊임없는 고민
    • 사용자 입장에서 깊이 고민한 결과, 복잡한 조작 없이도 직관적으로 이해할 수 있는 인터페이스 개발.
      이러한 접근의 성과로, 6살 아동이 도움 없이 튜토리얼 모드에서 제공되는 가이드 음성만을 따라 모든 튜토리얼을 완료함.
회사명

(주) 튜닙

직급 | 부서 | 근무 유형

안드로이드 개발자 | Engineer

근무 기간

2023.04. ~ 2023.07. (4개월)

담당 업무

“DearMate” / 2023.4 ~ 2023.07 (3개월)


[주요 업무]

  • AI 페르소나 챗봇 서비스 “DearMate” 안드로드이드 앱 개발 및 유지보수

[수행 역할 및 주요 성과]

  • “DearMate 앱은 Sendbird SDK를 어떻게 사용하고 있을까?” 라는 주제로 발표
  • 3개월 간, 약 200건의 이슈 대응
  • SendBird SDK를 사용한 채팅 기능 고도화
    • 메시지 그룹화 기능
    • 채팅방 컨텐츠 화면 캡쳐 기능
    • 1:1 턴제 채팅 방식
    • 채팅방 고정(pin) 설정/해제 기능
회사명

비모소프트

직급 | 부서 | 근무 유형

사원 | 개발팀

근무 기간

2023.02. ~ 2023.04. (3개월)

담당 업무

인턴 기간 동안 아래 4가지 주제에 대한 학습 및 발표를 진행했습니다.

  1. 객체지향프로그래밍의 4가지 특징과 SOLID 원칙
  2. MVC, MVP, MVVM 아키텍처 패턴
  3. 안드로이드 4대 컴포넌트
  4. Activity, Lifecycle

프로젝트

프로젝트명

Mongsil

소속/기관명

몽실스튜디오

프로젝트 기간

2021.02. ~ 진행 중

프로젝트 내용

몽실은 하루의 감정을 솔직하게 기록할 수 있는 감정일기장 앱입니다.
두루뭉술한 무난한 하루를 보낸 분도, 파란만장한 하루를 겪은 분도 누구나 자유롭게 사용할 수 있도록 다양한 감정과 어느 시간때든 자유롭게 감정을 기록할 수 있도록 타임라인을 제공합니다.

github : https://github.com/Haeseong5/Mongsil
Playstore : https://play.google.com/store/apps/details?id=com.cashproject.mongsil

프로젝트명

몽실 다이어리

소속/기관명

개인

프로젝트 기간

2022.03. ~ 2022.07.

프로젝트 내용

몽실다이어리는 감정 이모티콘과 함께 감정을 기록할 수 있는 다이어리 앱입니다. 사용자들은 몽실다이어리를 통해 일상의 감정을 표현하고 기록할 수 있습니다.

주요 기능

  1. 매일 새로운 명언: 앱 화면 하단에 매일 새로운 명언을 제공하여 사용자들에게 다양한 영감을 주고 있습니다.
  2. 이모티콘과 타임라인: 사용자들은 시간대 별로 자신의 기분을 기록할 수 있으며, 감정을 표현하는 다양한 이모티콘과 함께 타임라인을 확인할 수 있습니다.
  3. 메모장과 캘린더: 사용자들은 사진을 첨부하고 메모를 작성할 수 있는 메모장을 제공하며, 아기자기하고 유니크한 캘린더를 활용할 수 있습니다.

프로젝트 링크

Google PlayStore 링크

프로젝트명

DynamicUI

소속/기관명

개인

프로젝트 기간

2022.11. ~ 2022.11.

프로젝트 내용

DynamicUI는 정의된 데이터를 기반으로 뷰의 배치 및 컨텐츠를 동적으로 구성할 수 있는 앱입니다. 웹 어드민에서 컨텐츠를 설정하고, 앱을 업데이트하지 않고도 UI를 변경할 수 있는 시나리오를 구현하기 위해 개발된 토이 프로젝트입니다.

주요 기능

  • 동적 UI 구성: MultiViewHolder를 사용하여 정의된 데이터에 따라 뷰의 순서와 컨텐츠를 동적으로 구성합니다.

프로젝트 링크

기획서

프로젝트명

LoGak(로각)

소속/기관명

개인

프로젝트 기간

2022.01. ~ 2022.02.

프로젝트 내용

LoGak은 온라인 게임 "로스트 아크"에서 아이템 별 능력치 조합에 대한 계산을 플레이어들이 편리하게 수행할 수 있도록 도와주는 앱입니다. "로스트 아크" 게임에서 아이템 조합에 따라 능력치가 어떻게 변하는지 직접 계산하는 불편함을 해소하고자 개발되었습니다.

주요 기능

  • 아이템 능력치 계산: LoGak은 "로스트 아크" 시즌2에서 사용되는 아이템들의 능력치 조합을 쉽게 계산할 수 있는 UI/UX를 제공합니다. 사용자는 아이템을 선택하고 조합해나가면서 능력치 변화를 즉시 확인할 수 있습니다.

프로젝트 링크

Google PlayStore 링크

프로젝트명

ConnecCar

소속/기관명

개인

프로젝트 기간

2023.06. ~ 진행 중

프로젝트 내용

Jetpack Compose 학습을 위한 토이프로젝트 입니다.

ConnecCar는 내차판매& 내차구매 등 다양한 기능을 제공하는 중고차 중계 서비스 어플리케이션 입니다.

팀 구성
Android : 1명
기획&디자이너 : 1명

프로젝트 링크 :
https://oyunseong.notion.site/ConnetCar-9125e57238c1470b86dce055c6a2456b?pvs=4

프로젝트명

실환경을 고려한 경량화된 점자인식 모델

소속/기관명

22년도 정보통신종합 설계/인하대학교

프로젝트 기간

2022.08. ~ 2022.12.

프로젝트 내용

"실환경을 고려한 경량화된 점자인식 모델"이라는 주제로 진행된 정보통신공학과 졸업 논문을 작성했습니다. 시각 장애인들의 점자 해독 능력을 향상시키기 위해 실환경을 고려한 점자 인식 모델을 연구하고 제안하였습니다.

논문 요약

  • 이 논문에서는 YOLOv7-w6 모델을 사용하여 기존 연구에 비해 더 정확하고 빠른 점자 추론을 가능하게 하였습니다. 또한 다양한 점자 데이터셋을 구축하여 실제 사용 환경에서의 점자 이미지 추론을 가능하게 하였습니다.

  • 실환경에서의 촬영 요소인 촬영 각도, 거리, 밝기를 고려하여 각 경우의 데이터셋을 구축하고, 이를 바탕으로 모델을 학습시킵니다. 또한 모델의 추론 능력과 시각적으로 인식할 수 있는 거리와 각도 범위를 분석하였습니다.

  • 최종적으로는 이 모델을 활용한 어플리케이션 개발을 통해 점자 해독에 어려움을 겪는 사람들에게 도움을 제공하고자 하였습니다.

주요 기능

  1. YOLOv7-w6 모델을 사용하여 점자 추론
  2. 앱에서 사진을 촬영하고 Google Colab Server로 전송하여 점자 추론을 수행한 후 결과를 받아와 UI를 업데이트합니다.
  3. 추론된 값을 Google TTS(Text-to-Speech)를 사용하여 음성으로 출력합니다.

담당 역할

  • 안드로이드 어플리케이션 개발: 사진 촬영, 이미지 파일 서버 전송, 결과값을 UI에 반영
  • 데이터 셋 구축: 데이터 라벨링(LabelImg tool 사용), 사진 촬영
  • 데이터 전처리: 가우시안 필터링 사용
  • 모델 학습 및 테스트
  • 딥러닝이 아닌 기법으로 점자 인식 테스트: 템플릿 매칭, 평균 해시 매칭

포트폴리오

URL

link

포트폴리오

노션
link

Github

깃허브
link

기술 블로그

URL 링크

대외활동

활동명

2022 인하대 소프트웨어 해커톤

소속/기관명

인하대학교

연도

내용

K-Culture가 외국에 전파되고 있지만, 실질적으로 외국인들이 K-Culture를 접해보지 못했거나, K-Culture를 한국의 문화가 아닌 다른 나라의 문화로 오해를 하는 경우가 많습니다. 이러한 문제를 해결하고자 K-Culture를 항목별로 분류하고, 한국에서 유행하는 문화 컨텐츠를 추천하는 프로토타입 앱을 개발했습니다.

2박 3일 동안 아이디에이션부터 기획, 개발까지 진행한 프로젝트입니다.

프로젝트 링크

활동명

에이지프리 키오스크(Age-Free Kiosk) - 2022 SW중심대학 공동해커톤

소속/기관명

에이지프리/소프트웨어중심대학협의회

연도

내용

키오스크 활용에 어려움과 두려움을 느끼는 '키오스크 포비아' 라는 신조어가 생겨날 만큼, 키오스크 서비스의 사회적 이슈가 대두되고 있습니다. 이에 따라 디지털 소외계층의 키오스크 접근성을 높이기 위해 기획한 키오스크 어플입니다.

성과

  • 대상(과학기술정보통신부장관상) 수상

주요 기능

  1. 얼굴 인식: OpenCV를 활용하여 사용자의 얼굴을 실시간으로 인식합니다.
  2. 성별과 나이 추정: Kakao Vision API를 사용하여 사용자의 얼굴을 분석하여 성별과 나이를 추정합니다.
  3. 맞춤형 UI/UX 제공: 추정된 성별과 나이에 따라 맞춤형 화면을 제공합니다. 성별에 따라 매출이 높은 제품을 상위에 노출시키고, 특정 나이 이상일 경우에는 크고 단순한 화면을 제공합니다.

담당 역할

  • OpenCv를 이용하여 얼굴 인식 기능 구현
  • Retrofit을 이용한 서버 통신 기능
  • 화면 캡처를 통해 얻은 이미지 파일을 서버로 전송하고, 응답값을 통해 연령대에 맞는 UI를 보여주기 위한 맞춤형 UI 구현

프로젝트 링크

자기소개

자기소개

안드로이드 앱 개발자가 되기 위한 여정

“로스트 아크”라는 온라인 게임을 플레이하면서 아이템 별 능력치 조합에 대한 계산을 매번 직접해야 한다는 점에 대해 불편함을 느꼈습니다. 빈번하게 필요한 기능이었음에도 불구하고 게임 내에서는 제공하지 않는 기능이었습니다. 커뮤니티 및 유저 인터뷰를 통해, 많은 유저들도 동일한 불편함을 느끼고 있었고, 해당 기능에 대한 수요가 있다는 것을 알게 되었습니다. 그래서 직접 해당 기능을 제공하는 앱을 개발하여 배포하였습니다. 현재 2000명 이상의 유저가 다운로드 받아 사용하고 있습니다.

제가 만든 소프트웨어를 실유저들이 사용한다는 점이 매우 흥미로웠고 뿌듯했습니다.
이를 계기로 사람들에게 재미를 줄 수 있고, 사람들이 겪고있는 문제를 빠르게 해결해 줄 수 있는 모바일 앱 개발자가 되는 것을 목표로 갖게 되었습니다.

다양한 프로젝트 및 협업 경험이 있습니다. 안드로이드 앱 개발은 학교에서 배울 수 있는 분야가 아니었고, 주변에 앱 개발을 하는 친구들이 많지 않았습니다. 그래서 해커톤, 스터디, 사이드 프로젝트 등 협업할 수 있는 경험을 쌓기 위해 노력했습니다. 대외활동의 첫 시작은 5명이서 진행한 안드로이드 앱 개발 스터디였습니다. 각자 담당 파트를 정하고, 해당 파트를 학습하여 서로에게 가르쳐주는 형태였습니다. 눈높이가 맞는 스터디원들과 서로 부담없이 질문, 답변을 주고 받고 학습한 것을 발표하는 과정에서 성장할 수 있었던 경험이었습니다.

또한 해커톤에 참가하여 밤을 세워가며 토론하고 개발하는 과정에서도 개발의 즐거움을 느낄 수 있었습니다. 프로토타입 수준이었지만 팀원들과 협업하여 결과물을 만들어내고 수상까지 경험한 것이 매우 흥미로웠습니다.

이처럼 꾸준히 성장할 수 있는 기회를 찾고, 프로젝트를 통해 경험을 쌓으며 더 나은 개발자로 성장하고자 합니다. 신입 개발자이지만 이러한 경험을 토대로 업무에 빠르게 적응할 수 있도록 노력하겠습니다.

저는 이렇게 개발하고 공부합니다.

Why?라는 질문을 던지며 항상 의문을 갖습니다.

항상 Why?라는 질문을 자기 자신에게 던집니다. 어떠한 내용을 공부할 때 단순히 그 내용을 이해하는 것만으로
끝내지 않고 ‘왜 이렇게 동작하는지, 왜 이렇게 설계되었는지'에 대해서 한번 더 고민하는 자세가 필요하다고
생각합니다.
해당 기술이 어떤 배경에서 탄생하게 됐는지, 장단점은 무엇인지를 살펴보며 기술에 대한 전반적인 이해를 위해
노력한다면 그 기술의 기능적인 부분이나 동작 원리를 조금 더 쉽고 싶게 이해할 수 있으며 완전히 내것으로 만들며
성장할 수 있고 프로젝트에서도 안정적인 코드를 작성할 수 있다고 생각합니다.

코드의 재사용성을 높이는 것을 좋아합니다.

중복되는 로직을 통합하여 메서드로 만드는 리팩토링을 자주 진행합니다. 코드 컨벤션을 지켜 다른 사람이 읽기 편한 코드를 작성하고 적절한 주석을 사용하여 다른사람이 내가 작성한 코드를 쉽게 재사용할 수 있도록 만들고 있습니다. 이러한 방식을 통해 저는 좋은 코드를 작성하기 위해 노력하고 있습니다.
동일한 기능을 가진 앱을 계속해서 리팩토링 하며 관심사를 분리하며 확장 가능한 코드를 짜기위해 노력합니다.
코드의 목적은 사용자의 요구사항을 충족시키는 것에 있다고 생각하지만, 확장가능하고 협업을 위해 공유할 수 있는 설계에 신경써야 함께 성장하는 코드를 작성할 수 있다고 생각합니다.

혼자보다는 함께합니다.

어려운 문제를 만났을 때, 오랜시간 동안 혼자 고민하기 보다는 주변 사람들에서 조언을 구합니다. 자신만의 생각에 정체되지 않도록 꾸준한 커뮤니케이션을 하며 문제를 고민하다보면 동료와 함께 문제를 해결하는 방식을 통해 서로 상호 보완하며 성장할 수 있다고 생각합니다.
또한 질문을 잘하기 위해 문제를 잘 전달하는 방법을 고민하다보면 미쳐 바라보지 못했던 부분을 생각할 수 있고 오래걸리는 일을 빠르게 해결할 수 있습니다.

최근 관심 있는 기술

선언형 UI 방식인 Compose를 사용하여 UI를 개발하고 있습니다. Compose는 기존 View 시스템을 사용했을 때 자주 발생했던 문제인 "UI와 데이터 불일치 문제"를 최소화할 수 있고, UI 컴포넌트화 과정을 단순화시킬 수 있는 등 많은 장점이 있다고 생각하기 때문입니다.
비동기 처리는 Coroutine을 사용하고 있습니다. 코루틴을 사용하면, 비동기 코드를 동기식 코드처럼 작성가능하여, 읽기 쉽고 직관적인 코드를 작성할 수 있기 때문입니다.
읽기 쉽고 유지보수하기 좋은 코드는 소프트웨어 개발의 생산성과 안정성에 직결된다고 생각합니다. 입사 후에도 좋은 코드를 작성하기 위해 노력하여, 서비스의 발전에 기여하겠습니다.

읽어주셔서 감사합니다.

댓글