미리보기
기본 정보
브릿지 벤처스 스타트업에서 1년간 iOS 개발자로 일하며, ‘프로’ 강의 플랫폼 앱 출시 및 배포 경험이 있습니다.
기술 스택
MVVM, RxSwift, modules, clean-architecture
경력
브릿지벤처스
사원 | 모바일
2022.05. ~ 2023.04. (1년)
음성 채팅 앱을 컨설팅 플랫폼 앱으로 피봇팅하는 시기에 입사하여 개발 / 출시하였습니다.
입사하여 스토리보드 기반의 코드를 AutoLayout 기반 코드로 리팩토링하였고, MVVM구조를 UseCase를 추가하여 비즈니스 로직을 분리하는 리팩토링을 수행하였습니다.
피처개발로는 다음 기능들을 개발하였습니다.
프로필, 피드, AgoraKit의 소켓을 이용하여 채팅, 비디오 채팅 기능을 개발하였습니다.
GSPlayer 라이브러리를 이용하여 동영상 피드를 개발하였습니다.
프로젝트
프로젝트: 미디어 피드 개발
브릿지벤처스 iOS
2022.10. ~ 2023.04.
기술 스택: GSPlayer, AVFoundation
기여한 부분
미디어 피드 리스트 개발: 스크롤 중앙에 있는 비디오만 재생하는 기능 개발
비디오 인코딩 및 업로드: AssetReader/Writer와 Serial Queue 이용 비디오 압축. 썸네일, 프리뷰용 20초 영상 생성 업로드 개발
비디오 PIP, 커스텀 비디오 컨트롤 UI 개발: 재생 슬라이더, 화면 전환 기능, 일시정지
프로필 피드 리스트 추가: 피드 리스트 추상화하여 프로필에도 추가. Nested ScrollView 구현
VideoAsset duration 캐싱 개발: Asset load 시 duration을 또 load해서, UX 경험 개선을 위해 개발함
프로젝트: 비디오 Voip 개발, 채팅 기능 개발
브릿지벤처스 iOS
기술스택: AgoraKit, CallKit
비디오 채팅 기여한 부분
AgoraKit 소켓 이용 접속 여부 표시 및 소켓 접속 관리
AgoraKit 영상 통화 개발 및 Call 상태 관리
CallKit 이용하여 Call push 알림 개발
타이머 이용 제한 시간 종료 시, 통화 종료 관리
AgoraKit 소켓 이용 컨텐츠 녹화 상호 동의 기능 개발
채팅 기여한 부분
채팅 이미지 전송 기능 추가
Section 분리하여 전송 실패 메세지 처리 및 재전송 개발
Background push 시, 채팅방 이동 딥링크 로직 개발
프로젝트 - 아키텍처 리팩토링, PG 사 연동 개발
브릿지벤처스 iOS
기술스택: UIKit, RxSwift, MVVM, SnapKit, AWS S3
기여한 부분
UI 개선: Storyboard → SnapKit AutoLayout 개선
Massive ViewModel 개선: UseCase 통해 ViewLogic과 Business Logic 분리, VM Input/Output패턴으로 이벤트 명시적으로 선언
PG 사 연동 개발: WebView Bridge 기반 결제, 결제 취소, 리다이렉트 개발
AppCoordinator 도입하여 앱 시작 분기: 프로/일반유저 레벨 별 탭바 버튼 갯수, 이미지 상태 관리
Moya 이용 NetworkLayer 구축: 관심사별 API 분리
포트폴리오
URL
교육
한성대학교
대학교(학사) | 컴퓨터공학부
2014.03. ~ 2020.02. | 졸업
선린인터넷고등학교
고등학교 | 웹운영과
2010.03. ~ 2013.02. | 졸업
자기소개
브릿지 벤처스 스타트업에서 1년간 iOS 개발자로 일하며, ‘프로’ 강의 플랫폼 앱 출시 및 배포 경험이 있습니다.
다양한 디자인 패턴과 아키텍처를 적용하여 효율적이고 확장 가능한 소프트웨어를 개발하는데 관심이 있습니다. Composite, Decorator, Builder, Factory, State, Command 패턴을 사용한 경험이 있으며, 이러한 패턴을 통해 코드의 재사용성과 유지보수성을 높였습니다.
저는 RIBs, MVVM, ReactorKit, Coordinator 등 다양한 아키텍처 패턴을 적용한 경험이 있으며, 새로운 기능을 추가하기 쉬운 구조를 유지하려고 항상 노력합니다. 특히 OCP와 SRP원칙을 준수하려고 노력합니다.
저는 항상 더 나은 아키텍처와 디자인 패턴을 적용하려고 노력하며, 이를 통해 사용자와 동료 개발자 모두에게 도움이 되는 소프트웨어를 개발하는 것을 목표로 하고 있습니다.