미리보기
기본 정보

Unity, Flutter, Web (React, Angular), Backend(Spring-Boot, node.js) 개발을 해왔고 최근에는 Kubernetes 를 이용한 프로젝트를 진행하는 등 다양한 영역에서 커리어를 쌓아온 13년 차 소프트웨어 엔지니어 홍성욱입니다.
기술 스택
경력
윤커뮤니케이션즈
책임연구원 • 기술연구소
'홍익인간 CMS' SaaS 구축 프로젝트
Yooncoms 사 의 홍익인간 CMS 서비스를 기존 Monolithic 에서 MSA 구조로 변경하는 프로젝트에 참여하였습니다.
- BE : Spring / FE: JSP / DB : Cubrid, MySQL
- ncloud 기반의 Kubernetes Cluster 구축 (NKS)
- ncloud의 Git CI / CD Pipeline 구축 (SorucePipeline)
- ncloud API Gateway 서비스를 이용한 API Gateway 구축
- 서비스 신청 및 관리 대시보드 연계 용 REST API 서버 개발 (Node.js)
https://github.com/TedHong/october-demo - Raon secure 솔루션을 이용한 통합 인증 시스템 구축
- Prometeus + Grafana 대시 보드 환경 구축
REST API 서버 개발 - Node.js
- 10월에 개발해 October 라고 이름을 붙인 서버입니다.
- SaaS Maker 라는 서비스에서 데이터를 전달 받아 메인 서비스에서 사용할 필요가 있었고 그것을 위해 REST API 서버를 개발했습니다.
- DB 는 Cubrid 를 사용했습니다.
- Kubernetes SDK 를 이용해 K8S 에 secret 를 생성하고 ingress 를 업데이트 하는 기능을 구현했습니다.
- 서버를 구동하고 어느 정도 API 가 호출되면 DB에 접근 할 수 없고 속도가 느려지는 문제가 발생했는데 DB Connection 의 Release 가 제대로 되지 않는 문제 였습니다. 그래서 DB Connection Pool 을 구현하고 Release 하는 시점을 꼼꼼히 체크해 문제를 해결했습니다.
- October 서버를 포함한 Monolitic -> MSA 전환을 성공적으로 마쳐 클라우드 서비스 확인제 인증, KORAS 인증 시험 통과, 정부 과제 완수하는 성과를 거두었습니다.
(1년 1개월 | 정규직)
넥슨코리아(NEXON)
차장 • 인텔리전스랩스/플랫폼인터페이스실
Unity SDK 개발
넥슨에서 서비스하는 게임에 제공되는 Nexon GamePlatform SDK (Toy Engine SDK) 프로젝트에 참여하였습니다.
기존에 모바일 SDK 에서 제공하는 기능을 Unity PC 환경에서도 동작하도록 기능을 만들기 위해 안드로이드, iOS,
Unreal 소스를 참고 분석하여 개발을 진행했습니다.
그래서 게임이용등급, 약관동의, 연동계정정보, 고객센터, 웹뷰 연결, FAQ, 포럼 등 공통 UI 부분을 개발했습니다.건강에 문제가 생겨 퇴사하였습니다.
(7개월 | 정규직)
알다
개발총괄 • 개발팀
다물어클럽 Web 서비스 개발 및 운영
- 인문OTT 서비스 개발 및 운영
-FE: angular
-BE: SpringBoot
-외주를 통해 개발 된 프로젝트를 넘겨 받아 리팩토링을 진행해 서비스를 시작했습니다.
-SpringBoot 로 개발되었고 AWS EC2 환경에서 서비스 했습니다. - 영상 소스 인코딩 파이프 라인 구성
: 영상 업로드 -> Lambda 에서 AWS Media Convert 명령어 실행 -> 인코딩 -> 결과 DB에 저장 - FCM 을 이용한 모바일 Push 기능 개발 : 일반 전송, 예약 전송
다물어클럽 모바일 (Flutter) 개발 및 운영
- Flutter 를 이용한 모바일 앱 개발 및 서비스 전 기능 개발 (API 는 웹 서비스용 사용)
- Video player 구현
: Pallycon DRM 을 적용하기 위해 Flutter Video Player 가 아닌 HTML5 + Video.js 를 사용하여 WebView 에서
Custom 플레이어를 새롭게 만들었습니다. (현재는 DRM 적용이 가능한 플레이어가 나왔지만 당시에는 없었습니다.) - 트래픽 절약을 위해 무료 영상은 Youtube 에 올리고 Youtube 플레이어를 내장해 서비스 했습니다.
- 음성 컨텐츠 재생을 위한 Audio player 구현
- Firebase DynamicLink를 이용한 Deep link 구현
- 소셜 로그인 구현 (Kakao, Google, Facebook, Apple)
- 기본 적인 기능 개발은
- iOS 와 AOS 동시 배포
B2B 대시보드 개발
- B2B 고객사용 Dashboard 개발 (Flutter Web)
- 배포 자동화 환경 구축 : Gitlab CI 를 이용해 빌드 후 AWS CLI 로 EC2 에 배포
(1년 7개월 | 정규직)
더팀엔터테인먼트
책임연구원 • 개발팀
체험컨텐츠 제작용 Unity VR/AR 자체 라이브러리 제작
Unity를 이용해 VR/AR 체험컨텐츠를 만드는데 사용할 자체 라이브러리 제작
외주 직원들과 많은 컨텐츠를 만들어야 했습니다. 그런데 개발 방법이 달라 결과물의 품질의 편차가 너무 심했고
수정 보완 하는 데도 많은 어려움이 있었습니다. 결국 이를 위해 만든 자체 라이브러리 입니다.컨텐츠의 시나리오를 Event Task 단위로 쪼개고 이것을 Coroutine Dictionary 에 추가한 뒤 순차적으로 진행시키는 라이브러리 입니다.
동작이 필요한 부분에 이벤트를 시작하는 코드만 추가하면 되기 때문에 간단하게 개발과 수정을 할 수 있습니다.
AR 은 Vuforia, VR 은 Google VR 을 사용합니다.
디지털 교과서용 AR/VR 컨텐츠 제작
- 디지털 교과서 앱에 들어갈 체험 컨텐츠 제작 (외주)
-- VR : 문화의 속성 (Google VR)
-- AR : 지속가능한 경제생활 계획하기 (Vuforia)
-- AR: 자연 재해의 발생 지역과 원인 (Vuforia)
유니버설 디자인 신호등 체험 프로젝트 (VR)
- 색맹/색약 환경에서 유니버설 디자인 신호등을 체험하는 컨텐츠
- SDK : Steam VR SDK
- Device : Odyssey
(6개월 | 정규직)
유저해빗
책임연구원 • 개발팀
Userhabit SDK for Unity 개발
- 유니티 엔진용 유저해빗 SDK 개발 (단독개발)
- 터치 좌표 수집 기능
- 이벤트 발생한 오브젝트 수집 기능
- 터치 이벤트 수집 기능
- 사용자 액션 데이터 압축 및 서버 전송
- 데이터 전송 실패에 따른 재전송 기능
- iOS / Android Native 와 유니티 간의 데이터 전송 기능
- 백그라운드 데이터 관리 기능
- iOS / Android 백그라운드 타이머 기능
- 유니티 및 iOS / Android Native Crash 수집 기능
- DLL 형태로 배포
유저해빗은 모바일 사용자의 행동 패턴을 수집해 시각화와 통계를 제공하는 SaaS 서비스 입니다.
게임 서비스 진출을 위해 유니티 SDK 개발이 필요해 입사하게 되었고 SDK 의 베타 버전까지 개발했습니다.
기존 모바일 버전 SDK 의 기능들을 유니티에 적용하기 위해서는 유니티의 코어 부분과 Android 나 iOS 네이티브에 대한 이해가 필요해 공식 문서와 여러 자료들을 살펴보고 하나씩 구현해 나갔습니다.
초기 버전을 만들고 난 뒤 테스트를 위해서 공게임즈와 협업하여 문제점들을 보완해 나갔고
NGUI 와 UGUI 환경에서 모두 동작하며 이벤트를 수집 할 수 있도록 노력했습니다.
게임 구동 속도에 영향을 줄 수 있는 파일의 저장과 백그라운드 동작을 새로운 thread 에서 처리했다면 더 좋았을 것 같다는 아쉬움이 있습니다.
(1년 9개월 | 정규직)
슈퍼노바일레븐(프렌즈게임즈)
사원 • 개발팀
놀러와 마이홈 for Kakao 클라이언트 개발
게임의 프로토 타입 개발부터 출시 후 라이브 서비스까지 전 과정에 참여했습니다.
편집모드 구현 (2D 좌표상에서 오브젝트의 생성, 이동 및 배치) - NPC AI 구현
인벤토리 구현
PET AI 구현
게임 UI 컨텐츠 제작(NGUI 사용)
: 업적,도감, 일일미션 컨텐츠 개발게임 설정 기능 개발
방명록 기능 (SNS) 개발
캡쳐기능 개발
튜토리얼 제작용 툴 구현
: 노드 추가 방식으로 기획자가 자유롭게 컨트롤 할 수 있도록 구현튜토리얼 시스템을 하드 코딩이 아닌 기획자가 원하는 대로 수정 할 수 있도록 튜토리얼 제작 툴을 만들어 제공했습니다.
게임 시스템을 보다 세밀하게 조정 하기 위해 Corutine 과 Action 단위로 행동을 컨트롤 할 수 있도록 개발했습니다.
생성한 튜토리얼용 데이터를 excel 로 저장하거나 excel 로 작성된 데이터를 튜토리얼 데이터 변환하는 기능도 개발했습니다.
(3년 3개월 | 정규직)
스튜디오EX (디즈니인터랙티브)
사원 • 개발1팀
스타워즈IP를 이용한 2D 액션 게임 개발
- SNS 회원 가입 및 로그인
- 게임 시스템 구현 RND 진행
[디즈니의 아시아 게임 사업 철수로 인한 폐업으로 인해 퇴사했습니다.]
(8개월 | 정규직)
엠브릭스
과장 • 개발팀
와일드샷 for Kakao 클라이언트 개발
- 유니티 클라이언트 개발 (메인 개발자)
- 게임 플레이어 시스템 개발 (2DToolKit, SmoothMoves 이용)
- 스테이지 및 몬스터 시스템 개발
- 캐릭터 시스템 개발
- 전투 시스템 개발
- 상점 기능 개발
- 로그인 및 결제 시스템 개발
[경영 악화로 퇴사했습니다.]
(9개월 | 정규직)
위메프
사원 • 지역개발본부
사진 SNS ‘치즈잇!’ 안드로이드 버전 개발
- 와플스토어라는 회사로 입사해 개발한 서비스입니다.
- 한국형 인스타그램을 표방한 사진 SNS 서비스
- 앱 아키텍쳐 구성- 네비게이션 구조 개발
- 안드로이드용 사진 필터 개발 (Java.Awt.Canvas 사용)
- 소셜 연동 기능 개발
- 앱 푸쉬 기능 개발 (GCM)
- 위치 기반 기능 개발
- 이후 위메프(나무인터넷)로 인수 합병 되었습니다.
맛집 쿠폰 앱 'Woohoo' 개발
- 위메프의 지역사업본부 프로젝트인 맛집 쿠폰 우후 서비스 개발
- 앱 전 기능 개발
- 위치 기반 쿠폰 리스트 메뉴 개발
- 쿠폰 사용 기능 개발
- 쿠폰 조회 및 저장 기능 개발
- 앱 푸쉬 기능 개발 (GCM)
위메프 앱 리팩토링 및 최적화 (안드로이드)
- Android용 위메프 앱 추가 기능 개발 및 유지 보수
- 지역리스트 메뉴 개발
- 마이페이지, 설정 메뉴 개발
- 이미지 로딩 시스템 최적화
- 메모리 누수 최적화
(1년 7개월 | 정규직)
인사이트랩
사원 • 개발팀
안드로이드 증권 거래 앱 개발
동부증권
--업무내용 : 내부제작한 공통 TCP/IP 모듈을 사용하여 조회 및 주문 기능 구현
현재가, 주문, ELW주문, 선물옵션주문 화면 구현
담당 : 프로젝트 시작부터 투입되어 마켓등록까지 전 기간동안 참여했습니다. 기본 네비게이션 구조를 만들었고 history 기능, 즐겨찾는 메뉴(퀵메뉴) 기능, 현재가 조회, 주식주문, ELW주문, 선물옵션 주문, 펀드주문 등을 담당했습니다.대신증권
--업무내용 : 소켓통신 모듈을 사용한 시세 조회 및 주문기능 구현
담당 : 내부 제작한 통신 모듈을 사용하여 서버에서 데이터를 받아 시세를 조회하고 주문을 하는 기능을
구현했습니다. 65%정도 진행된 상황에서 투입되어 마켓등록시까지 참여했습니다.메리츠종금 증권
--업무내용 : 주문, 시세조회 등의 화면 구현 및 소켓통신 모듈을 이용한 시세 조회 기능 구현
담당 : 첫 프로젝트 였고 사수없이 혼자 투입되어 많이 고생한 프로젝트 입니다. 어플리케이션 화면의 70%이상을 직접 만들었고 시세 조회 기능을 개발했습니다.
(1년 3개월 | 정규직)
프로젝트
프리랜서
DIOR 고객 관리용 Admin site 개발 (React)
- React 를 이용해 명품 브랜드 Dior 의 고객을 관리하는 어드민 페이지를 제작했습니다.
- 주요기능 : 캘린더, 차트, 게시판
프리랜서
Barista VR 관리자 툴(Unity) 및 중계 서버(Node.js) 개발
장애인 직업 교육용 바리스타 VR 의 관리자 툴 개발 (Unity)
: 교육 담당 강사가 학생들이 착용한 VR 을 컨트롤 할 수 있는 관리자 툴입니다.관리자 툴 / VR클라이언트 / AI 모듈을 연결하는 소켓 서버 개발(Node.js + Socket.io)
: socket.io 를 이용해 Unreal 로 개발된 VR 클라이언트와 Unity 로 개발 된 매니저 클라이언트 간의 데이터를 중계 해주고
데이터 분석 및 통계 제공을 위해 저장하는 역할을 하는 Application 입니다.- DB는 Sqlite 를 이용해 내부에 내장했습니다.
- 통신이 단절 되거나 프로그램이 강제 종료되는 상황에 대비해 일정 갯수 만큼 이벤트가 쌓이면 데이터를 파일로 백업하고 다음 실행 시 해당 데이터를 복원하는 기능을 구현하였습니다.
교육
고려사이버대학교
대학교(학사) | 컴퓨터정보통신과
2011.03. ~ 2015.02.
졸업
동아방송예술대학교
대학교(전문학사) | 인터넷방송 웹마스터전공
2000.03. ~ 2006.02.
졸업
숭실대학교
대학교(학사) | 경상계열
1999.03. ~ 1999.07.
중퇴
자격증
컴퓨터그래픽스운용기능사
2002.12.
자기소개
#강점
제 '인간적인 강점'은 다양한 경험을 바탕으로 한 문제 해결 능력, 나의 부족한 부분은 인정하고 타인의 장점을 받아들일 수 있는 열린 마음,
혼자 빠르게 나아가기 보다는 함께 꾸준히 나아가는 것이 옳다고 생각하는 점, 결과 보다는 행동 지향적인 성격 이라는 점입니다.든든하고 친근한 삼촌처럼 팀의 분위기를 이끌어 나갈 수 있는 성격을 가지고 있어 동료들에게 좋은 평가를 받고 있습니다.
1980년에 태어나 아날로그에서 디지털로의 전환을 겪으며 자란 세대라 옛 문화는 물론 새로운 문화를 이해하고 받아들이는데 익숙하고
이를 바탕으로 아날로그와 디지털의 원리를 이해하고 다루는데 능숙합니다.게임과 스포츠(축구,야구), 애니메이션을 좋아해서 20~50대까지 거의 대부분의 세대와 문화적으로 잘 어울리는 편입니다.
'다름'과 '틀림'의 차이를 이해하고 다름을 인정하며 존중할 수 있는 마음도 가지고 있습니다.
다만 다름이 선을 넘어 동료에게 피해를 주는 경우에는 그것이 틀렸다고 말할 수 있는 성격도 가지고 있습니다.'개발자로서의 강점'은 문제의 근본적인 원인을 유추해내는 능력과 끈기 있게 문제를 파고드는 집중력,
문제를 해결 한 뒤에는 미래의 나 또는 동료를 위해 기록해두는 습관, 생각을 논리 있게 정리해서 글로 남길 수 있는 글쓰기 능력,
내가 아는 것을 남들과 나누는 것을 서슴지 않는 점이 있습니다.
해결해야 하거나 새롭게 구현해야 할 이슈가 주어졌을 때 '안되요, 못해요' 보다는 '어렵지만, 이렇게 해보면 어떨까요?' 처럼 대안을 제시하려고 노력합니다.
새로운 기술을 배우거나 기술 동향을 알기 위해 관련 세미나나 컨퍼런스에도 적극적으로 참여하려고 노력 하고 있습니다.
#보유 기술
- JAVA(Spring-Boot ,전자정부프레임워크), Node.js 를 이용한 Backend 개발
- Kubernetes 환경 구축 및 운영
- Unity Client, Unity SDK 개발
- Android, Flutter 를 이용한 모바일 앱 개발 및 배포
- React, Angular, Thymeleaf 를 이용한 Web frontend 개발
- Cloud 환경 구축 및 운용 (AWS, ncloud)
- CI / CD 환경 구축 (Gitlab CI, ncloud Source Pipeline)
- 에자일, 칸반, 스크럼 경험
- Confluence, Jira, Git, SVN, Redmine, Slack 사용 경험
#포트폴리오