본 서비스에서 제공하는 사용자의 개인정보 데이터를 포함하여 각 정보주체의 동의 없이 데이터를 무단으로 수집하는 행위를 금지 및 거부합니다. 공개된 데이터도 크롤링 등 기술적 장치를 이용해 허가 없이 수집하는 경우 개인정보 보호법에 따라 형사처벌 될 수 있음을 알려드립니다.
© 2025 Rocketpunch, 주식회사 더블에이스, 홍원표, 대한민국 서울특별시 성동구 성수일로10길 12, 12층 1호, 04793, support@rocketpunch.com, +82 10-2710-7121
사업자등록번호 206-87-09615
더보기


주원영
조직의 크기와 구조 및 구성원에 따라 어떤 기술 및 품질 기준이 적합하고 부적합한지에 대한 강한 철학을 가지고 있습니다. 최근에는 수십명 이하의 비즈니스 불확실성이 높은 조직에 적합한 Full-Stack Framework 와 HTML over the wire 류의 기술에 큰 관심을 갖고 있습니다.
커리어
게시물
경력
● 오르조/오르조클래스 백엔드 기능 개발 및 유지보수 - 백엔드 개발자가 별도로 없이 클라이언트 개발자가 서버리스 함수를 그때 그때 만들다보니 코드 중복, 사용 라이브러리 및 코드 스타일의 분화 등 아키텍처가 없는 상황이었고, 요청 검증/응답 검증/도메인 모델 검증/디버깅 가능한 에러 리포팅이 안되고 있었음 - 기존 기술 스택을 최대한 유지하면서 일관된 형식으로 백엔드 애플리케이션을 개발할 수 있도록 컨벤션 구축 및 발전 - Firebase Firestore, Firebase Functions, TypeScript, class-transformer, class-validator 사용 - 내부적으로 도입하다 지지부진 하고 있던 Firestore 에 대한 DDD Repository 추상화를 개선/발전 및 프로젝트 전반에 적용 - 에러 계층화 적용 및 에러에 컨텍스트 정보를 포함하도록 변경하여 프로덕션 디버깅 경험을 극적으로 향상 - 오르조클래스 수업 및 클리닉 관련 API 개발: Elasticsearch 를 이용하여 같은 유형의 다른 문제 n개 추천 - Firebase Functions 의 수평적 스케일 확장 실패에 대한 원인 분석 및 임시 해결 - OpenTelemetry 를 이용한 서버리스 함수 성능 문제 분석 및 해결 - 학습 통계 API 성능 개선 - 질문/답변 관련 API 개발 - 오르조클래스 선생님/학생 복수 초대 API 개발 ● 오르조 iPadOS 앱 기능 개발 및 유지보수 - SwiftUI 와 TCA(The Composable Architecture), PencilKit 을 활용한 고등학생 수능/내신 학습 태블릿 앱 - 에러 발생시 원인 파악이 가능하도록 에러 리포팅 라이브러리 구현 - 에러 발생 당시 콘텍스트 정보를 에러 정보에 추가하고 에러를 계층화하여 Crashlytics 에 리포팅 - 학습 앱의 핵심 기능인 필기 경험을 개선하기 위해 애플이 기본 제공하는 툴 피커 대신 커스텀 툴 피커 구현 - 컬러 프리셋, 컬러 피커(그리드, 스펙트럼), 투명도 조정 등의 컬러 팔레트 UI 구현 - 애플 PencilKit 에서 기본 제공하지 않는 직선 그리기 모드 구현 - 학생의 지식 수준에 따라 다른 도움을 주는 '오르조 힌트' 설계 참여 및 구현 - 해설을 트리 형태로 세분화하고, 해당 트리 노드에 해당하는 지식을 보유하고 있는지 확인을 위한 퀴즈 노출 - 학습 콘텐츠 소비 중 노트 필기나 연습장으로 사용할 수 있도록 필기노트를 멀티 윈도우로 제공 - 개발 진행 상황을 비개발자가 매일 확인할 수 있도록 오전 6시에 실행되는 TestFlight DEV 앱 CD 시스템 구축 - 전체/문항별 해설 보기 UX 개선 - 별도 모달을 사용해 보여주던 해설을, 동적 조판을 적용해 문제 풀이 영역 내에 심리스하게 보여주도록 변경 - Ghost blog platform 을 이용해 최소 공수로 새로운 에디터 콘텐츠 시스템을 구현 - 학습 자료 상세화면 디자인 리뉴얼 - 채점 결과 화면 디자인 리뉴얼 - 빌드 타임 개선을 위해 Tuist/SPM 를 이용한 애플리케이션 코드 모듈화
더보기
● 프론트엔드팀장 - iOS, Android, Web 개발자를 아우르는 프론트엔드팀에 대해 매니지먼트를 담당 - 팀원의 채용 프로세스부터 1:1 미팅, 성장 방향 제시 등 인사 전반에 대한 매니지먼트를 수행 - 근무시간 중 주 2~3회 기술에 대한 학습 시간을 고정 배치하여 학습과 업무가 함께 필요한 것임을 문화에 녹이려고 노력하였음 ● 정육각 런즈 iOS 앱 유지보수 - Fastlane을 통한 배포 관련 단순 작업 자동화 - Tuist를 이용해 .xcodeproj 와 .xcworkspace를 레포에서 제거하고 git checkout 시에 로컬에서 생성해 사용하도록 함 - 소스 양이 증가하면서 겪었던 증분 빌드 속도 문제를 내부 모듈 분리를 통해 개선 - NSError와 underlyingError, Crashlytics를 제대로 활용하기 위해 ErrorFactory를 만들고, 이를 통해 오류 발생시 원인 파악을 Crashlytics 콘솔 내에서 쉽게 할 수 있도록 함 ● 정육각 런즈 iOS 앱 출시 - 당일/새벽배송 일반인 기사들을 위한 배송 오퍼레이션 어플리케이션 - 모든 UI를 SwiftUI를 이용해 구현 - 비동기 처리는 모두 Combine을 이용 - The Composable Architecture를 사용하여 어플리케이션 코드를 composable한 함수형 feature module 들로 만들고 이를 조합 ● 정육각 커머스 iOS 앱 유지보수 - Fastlane을 통한 배포 관련 단순 작업 자동화 - RxSwift + ViewModel 구조를 ReactorKit을 이용한 단방향 아키텍처로 점진적 개선 - Tuist를 이용해 .xcodeproj 와 .xcworkspace를 레포에서 제거하고 git checkout 시에 로컬에서 생성해 사용하도록 함 - 소스 양이 증가하면서 겪었던 증분 빌드 속도 문제를 내부 모듈 분리를 통해 개선 - NSError와 underlyingError, Crashlytics를 제대로 활용하기 위해 ErrorFactory를 만들고, 이를 통해 오류 발생시 원인 파악을 Crashlytics 콘솔 내에서 쉽게 할 수 있도록 함 ● 정육각 커머스 iOS 앱 출시 - 일반 소비자를 위한 커머스 어플리케이션 - 기존 iOS 개발 담당자가 퇴사하여 소스를 인계받아 정육각 커머스 iOS 앱 첫 버전을 출시했음 - 뷰 컨트롤러에 대부분의 로직을 포함하고 있어 코드를 읽고 쓰기 어려운 문제를 RxSwift를 이용한 뷰모델 패턴을 일부 적용하며 출시하였음 - 정육각의 모든 데이터는 Firebase 내에 있어, Firebase의 실시간 데이터 수신과 RxSwift의 조합으로 많은 화면에서 실시간으로 데이터를 갱신하여 보여줌
더보기
● 산타토익 KR/JP iOS 앱 에러 리포팅 시스템 구축 - 크래시가 아닌 에러들의 발생이 제대로 추적되지 않고 있었음 - 앱 전체적으로 에러케이스를 enum으로 선언하고 에러마다 각각의 속성을 선언하였음(리포팅 여부, 복구 제안 메시지 등) - 에러 발생시 슬랙을 통해 유저 정보와 스크린샷, 에러 내용 등을 전송하도록 함 ● 산타토익 KR/JP iOS 앱 유지보수 - 100% Swift 코드 베이스 앱 - RxSwift가 아키텍처 전반에 광범위하게 사용된 앱 - 내부적으로 함수형, 반응형 및 선언적 아키텍처인 Elm 아키텍처로 구성된 앱 - 로직은 각각 Program이라 명명된 enum의 static function으로 구성됨 - 의존성 주입은 Reader 모나드 사용 - 코드베이스에 순수 함수형 프로그래밍적 요소가 많이 포함되어 진입 장벽이 매우 높았고, 이를 감소시키기 위해 지속적으로 의견 제시 및 논의 ● 산타토익 KR/JP 지속적 배포 환경 구성 - dev 브랜치에 변경 내역 있을 때마다 TestFlight에 바이너리 업로드 하도록 구성 - 매주 정해진 요일에 TestFlight에 바이너리 업로드 및 릴리즈 PR 생성하도록 구성
더보기
● iOS 앱 개편 - 기존 iOS 네이티브 앱을 React + WKWebView 임베딩(as Swift) 방식으로 재개발 - cordova, react-native도 시험해보았으나 개발 생산성과 결과물 퀄리티가 좋지 않아 WKWebView로 감싸기로 결정 - create-react-app + SCSS + yarn - 상태관리 라이브러리로 redux + redux-thunk 사용하다 Unstated 로 코드베이스 변경 - create-react-app v2로 마이그레이션 - React.lazy와 Suspense를 이용한 Code Splitting (초기 로드 속도 개선) - Sentry를 통한 에러 리포팅 ● 유저 API 서버 개편 - Ruby on Rails로 된 기존 유저 API 서버를 Golang으로 재개발 및 추가 API 구현 - echo + go-pg - Makefile + shell script + systemd 를 통한 배포 자동화 - Sentry를 통한 에러 리포팅 ● 랜딩 및 샵 페이지 개편 - 기존 랜딩페이지(https://heybeauty.me)를 React.js를 이용하여 재개발 - 별도의 상태관리 라이브러리 이용하지 않음 - create-react-app + SCSS + yarn - Sentry를 통한 에러 리포팅
더보기
● 삼성전자 빅데이터 플랫폼 2.0 개발 - 데이터 정제를 위한 Workflow 조합용 GUI를 웹 기반으로 구현 (JavaScript / jQuery / underscore.js) - 사용성 증대를 위한 클라이언트단 검증 및 자동 오류 수정 기능 구현 - 웹 GUI에서 전송된 데이터를 서버단에서 검증하기 위한 Validator 모듈 설계 및 구현 (Java/Spring) - 하둡 Metadata 매니지먼트 화면 개발 (JavaScript / Backbone.js / Marionette.js / underscore.js) - 메타데이터 설정에 대한 이력 관리를 위해 Revision 기능을 포함한 유사 SPA 구현 - 디비에 정제되어 있는 메타데이터를 조회하기 위한 REST API 개발 (Java/Spring) ● 삼성닷컴 한국사이트 리뉴얼 - 삼성닷컴 한국사이트와 삼성전자 온라인 스토어의 회원데이터 및 로그인 통합 - 다수의 기존 페이지에 대한 리뉴얼 작업 ● 사내 프로젝트 - 웹 File Browser 개발 (JavaScript / jQuery) - Amazon S3와 HDFS를 일관된 API로 Read/Write 할 수 있는 자바 모듈 & REST API 개발 - 자바스크립트 Grid 공통 모듈 개발 ● Samsung AdHub 3.0 (광고플랫폼) - QCO (Quality Control Officer) 활동 : 테스트 코드 커버리지 / 정적 코드 검사 / 오픈소스 라이센스 검토 등 - News 페이지 등 기본적인 CRUD 화면 개발
더보기
언어
중급 (업무상 의사소통)
이 프로필의 소유자이신가요?
인증을 통해 현재 프로필에 병합하거나 삭제할 수 있습니다. 만약 인증할 수 없는 경우 본인임을 증빙하는 서류 제출 후 프로필 관리 권한을 취득할 수 있습니다.