미리보기
기본 정보
배움의 속도가 빠른 경력같은 신입 개발자, 조전욱입니다
기술 스택
Python, C#, C++, C, ros2, PyQT, MySQL, Docker, GitHub
경력
(주)티쓰리엔터테인먼트
대리 | 개발2팀
2014.10. ~ 2015.07. (10개월)
게임 전반적인 메인 시스템 기획
콘텐츠 기획
개발 일정 관리, 타 부서와의 업무 협업, 게임 전반적인 품질 관리
(주)라이징게임즈
2013.09. ~ 2014.10. (1년 2개월)
메인 필드 레벨 디자인
캐릭터 컨셉, 스킬, 밸런스, 애니메이션 기획
전투 규칙 시스템 기획
유료 상점 기획
주식회사위메이드엑스알
2012.07. ~ 2013.08. (1년 2개월)
게임 시스템 기획
게임 레벨 디지인 및 밸런스 수정
게임 UI/UX 기획
(주)엘엔케이로직코리아
2009.04. ~ 2011.01. (1년 10개월)
게임의 세계관, 캐릭터, 시스템 설계
게임 레벨 디자인 및 밸런스 조정
게임 UI/UX 기획 및 개선
(주)엘엔케이로직코리아
2008.11. ~ 2008.11. (1개월)
게임의 세계관, 캐릭터, 시스템 설계
게임 레벨 디자인 및 밸런스 조정
게임 UI/UX 기획 및 개선
프로젝트
푸드코트 서빙 로봇 Servee
에드인에듀
2024.10. ~ 2024.11.
서비는 주문 관리, 서빙, 그릇 회수, 매장 상태 모니터링 등 매장 운영 전반을 체계적인 관리하는 시스템입니다. 여기서 저는 로봇의 이동과 벽체크, 월드 경로 생성과 Behavior Tree를 활용하여 로봇의 상태를 구현했습니다.
자세한 내용은 아래의 링크 또는 포트폴리오 문서에 첨부했습니다.
포트폴리오
교육
한국IT직업전문학교
대학교(전문학사) | 게임기획
2005.03. ~ 2009.02. | 졸업
자기소개
실패를 딛고 새롭게 도전
게임 기획자 근무
저는 2008년부터 2016년까지 게임기획자로 근무한 경험이 있습니다. 당시에 뉴스에도 나올 만큼 잦은 야근, 임금 체불 등 잦은 고생을 하고 정신적인 회복을 위해 휴식이 필요했습니다. 이때, 자기 계발 차원에서 게임 프로그래밍(유니티)을 공부했습니다.
프로그래밍 시작
처음 접해보는 프로그램 세계였지만 적성에 맞는지 빠르게 습득할 수 있었습니다. 웹DB, 실시간 멀티플레이 등 텍스트 기반의 모바일 게임 빵셔틀 키우기 출시를 시작으로 프로그램의 재미를 느낄 수 있었습니다.
실패와 좌절
근무하던 시절에 맺은 지인들과 게임 개발을 시작했습니다. 약 3년 정도 도전을 했지만 경제적 이유로 결국 실패했습니다. 그 후 아르바이트를 병행하며 혼자라도 끝을 맺고자 계속 도전했지만, 시간이 지날수록 현실적인 문제에 저도 지쳐가고 결국 사업을 접기로 결정했습니다. 긴 시간 노력했지만 실패를 경험하고 자신감이 무너지고 긴 공백 기간과 나이라는 현실이 두려워졌습니다. “나는 이제 무엇을 하고 살아야 할까?..”
극복과 도전
큰 실패를 경험하니 경제적 상황도 나빴지만, 그 보다 더 힘들었던 건 정신적 건강이었습니다. 그래서 저는 현재 상황을 이겨낼 의지를 만들고자 일단 운동을 시작했습니다. 그리고 다시 도전할 의지를 되찾을 수 있었습니다. ChatGPT의 등장으로 세상이 빠르게 변하고 있다는 것을 체감하고 변하는 시대에 함께하고 싶다는 생각이 들어 4차 산업 중 하나라고 생각하는 로봇 제어에 도전합니다.
국비지원으로 얻은 경험
프로젝트 진행 중 가장 도전적이었던 문제를 해결했던 사례
자율주행 로봇 개발 프로젝트에서 좁은 필드의 노이즈로 인해 위치 추정에 어려움을 겪었으나, 로봇의 특성을 파악하여 안정적인 이동을 구현한 경험이 있습니다. 조명, 반사, 센서 한계로 인한 노이즈 문제를 해결하기 위해 AMCL 데이터를 간헐적 위치 보정에 활용하고, 맵 데이터와 Odometry를 결합해 목표 지점 도달에 성공했습니다. 또한, Lidar 데이터를 사용해 벽과의 거리를 체크하며 충돌 방지와 위치 재보정을 통해 안정성을 향상시켰습니다. 프로젝트 경험과 이전 경력의 노하우를 바탕으로 목표 달성과 이슈 대응에 창의적으로 접근하는 개발자로 성장하겠습니다.
팀워크를 통해 좋은 성과를 내거나, 소통에서의 문제를 해결한 경험
팀원들에 성향에 따라 강한 동기부여를 통한 목적을 달성하게 하는 리더십과 팀원의 아이디어를 적극적으로 수용하고 확장하는 방향으로 프로젝트의 방향성과 가이드라인을 제시하는 리더십을 발휘할 수 있는 유연함을 가지고 있습니다. 팀에 의욕이 넘치는 팀원이 있을 때는 하고자 했던 의도의 방향성과 가이드라인만 제시하고, 팀원의 아이디어를 적극적으로 수용하고 확장하는 방향으로 팀워크를 강화했습니다. 프로젝트의 의도와 목적을 파악하고, 이를 달성하기 위해 필요한 기능들을 정의하여 가이드라인을 제시했습니다. 이를 통해 팀원들이 하나의 목표 아래 아이디어를 구상하고 작업할 수 있도록 했습니다.
학습한 내용을 실제 프로젝트에 적용하기
자율주행 서빙 로봇의 소프트웨어 개발 중 상태 간 결합도로 인해 문제가 연쇄적으로 발생하는 이슈를 해결하며, 기존에 친숙한 FSM 대신 새롭게 학습한 Behavior Tree를 적용하여 역량을 확장한 경험이 있습니다. FSM은 상태 간 결합도가 높아 유연성이 부족한 반면, BT는 각 상태를 독립적인 노드로 구성하여 수정과 추가 작업이 용이하다는 점을 활용했습니다. 이를 통해 상태 간 의존성을 명확히 분리하고 유지보수와 디버깅 효율성을 크게 향상시켰습니다. 앞으로도 새로운 기술을 학습하고 실무에 적극적으로 적용하며 성장하는 개발자가 되겠습니다.
이런 생각을 가지고 있습니다.
입사 후 기대하는 부분
독학으로 게임을 출시한 경험이 있을 만큼 프로그램이 친숙하고 빠르게 습득할 자신이 있으나, 개발자로서 다른 개발자 등과의 협업 경험은 부족하다고 생각합니다. 그래서 다른 개발자들과 협업하며 우수한 개발 문화를 체험하는 것을 가장 기대하고 있습니다.
마음 가짐
비록 늦은 나이에 도전하는 만큼 누구보다 더 성실하고 책임감을 가져야 한다고 생각합니다. 항상 상대방을 배려하고 존중하는 태도를 가지며 회사 문화에 적극 협조하고 맞춰가며 맡은 포지션을 빠르게 적응해 나가겠습니다.
주요 기술
ROS2
ROS2의 통신 및 노드 시스템을 활용, 센서 데이터 수집 및 자율주행 시스템에서의 센서 퓨전 및 경로 계획을 구현 경험
패키지, 인터페이스 생성 및 각 패키지들을 통합하여 로봇 시스템을 구축 가능
SLAM & Navigation
LIDAR와 카메라 데이터를 통합하여 실시간으로 로봇의 위치를 추정하고, 목표 지점으로 안전하게 이동하는 경로 계획을 설계
LIDAR로 벽과의 거리를 체크해서 충돌 방지 시스템 구현
ROS2와 통합하여 SLAM 및 경로 계획 알고리즘 적용 경험
Python
ROS2와 SLAM 알고리즘, 자율주행의 경로 계획 및 센서 데이터를 처리하는 데 주요 언어로 활용
Pyqt를 활용한 UI 구현
opencv의 aruco maker를 활용하여 정밀한 주차시스템 구현
BehaviorTree로 로봇의 상태를 모듈화
UDP, ROS(DDS) 통신 개발
C 언어
C 언어의 참조와 포인터 개념을 이해하고 활용 가능
스택, 힙, 전역 메모리 등 메모리 구조에 대한 이해
C#
유니티 엔진으로 간단한 실시간 멀티플레이 RPG 게임 제작 가능
C#의 객체 지향 프로그래밍(OOP) 개념을 활용하여 효율적인 게임 로직 설계
LINQ를 활용한 데이터 처리 및 쿼리 최적화
비동기 프로그래밍(Async/Await)을 활용한 부드러운 게임 플레이 구현
유니티 UI 시스템 및 애니메이션 기능 활용 경험
C++
C 언어와 C#의 경험을 바탕으로 C++의 기본 문법과 객체 지향 프로그래밍 (OOP) 개념 활용
참조와 포인터, 메모리 구조에 대한 이해를 바탕으로 동적 메모리 관리 및 스마트 포인터 사용
클래스, 상속, 다형성 등 객체 지향 프로그래밍 개념을 C++로 적용한 경험
기존 코드 분석 및 디버깅, 간단한 기능 확장 작업
MySql
데이터베이스 생성 및 관리
테이블 생성 및 수정
데이터 추가, 조회, 수정 등의 Query 작성