Search
Duplicate
🧑🏻‍💻

멘토링 - 김종필 멘토님

간단소개
버넥트의 테크리더 김종필 멘토님을 만나서 C#, Unity 그리고 신입개발자 취업에 대해서 멘토링을 받았습니다.
ContributorNotionAccount
주제 / 분류
멘토링후기
Unity
태그
C#
unity
Scrap
팔만코딩경 컨트리뷰터 (Library DB (속성)에 관계됨)에 관계됨
7 more properties

멘토링 리스트

이전 멘토링 글도 읽으시면 도움이 되실 것 입니다.

김종필 멘토님 소개

버넥트 테크리더
버넥트 개발센터에서 Unity 제품 개발팀, Native 개발팀(Android, iOS), Web 개발팀을 중점적으로 리드
버넥트 초창기에 합류해서 5년 이상 근무하심

시작

유니티를 처음 접하고 프로젝트를 진행할 때 김종필 멘토님에게 처음 42_멘토링을 받았었다. Unity의 전반적인 개념을 질문하면서 유익하고 재밌는 시간을 보냈었다. 나는 1기 카뎃이기 때문에 일주일이 지나면 42seoul을 수료하게 되는데, 마지막 멘토링을 김종필 멘토님에게 받음으로써 C#, Unity, 개발자의 진로에 대해서 조언을 받고자 하였다. 두 번째 멘토링은 버넥트 회사를 방문하여 오프라인으로 진행하였다.
출처: 내 핸드폰
버넥트 회의실에서 멘토링을 받을 수 있었다.
 아래 내용은 멘토링에서 들은 내용을 바탕으로 작성하였으나 기억력에 의존하여 주관적으로 작성하였기때문에 멘토님의 실제의도와 다른 내용이 담겼을 수 있습니다. 멘토링을 직접 받으시는 것을 추천드립니다ㅎㅎ

질문

Q1. 이전 멘토링 하셨던 내용을 보면 “Remote hololens 제품 코드 리뷰 및 WebRTC 기술 리뷰” 를 하신다고 보았습니다. 기업에서 코드리뷰는 어떤 방식으로 진행하나요?

(나)
실제로 테크리더로써 버넥트에서 하시는 업무를 실시간으로 보여주셨다. 개발 툴과 협업도구에서 버넥트 기업의 Private한 Notion, Slack, Github를 잠깐이나마 볼 수 있었다. 김종필 멘토님의 회사 깃허브를 들어가보니 92%의 코드리뷰와 8%의 커밋으로 업무를 진행하셨다. 개발센터에서 13명의 개발자들의 코드 리뷰를 책임지고 있으시다고 하셨다. 회의실에서 직접 PR에 간단한 승인처리를 보여주시면서 다양한 협업툴이 같이 연동되는 모습을 통해 코드리뷰를 어떻게 진행하는지 간접경험 할 수 있었다. 코드리뷰가 진행되어야 dev 혹은 master로 올라가기 때문에, 코드작성과 코드리뷰를 독립적으로 보면 안된다.
아래 git-flow을 커스터마이징한 버넥트만의 git-flow가 있다.
git-flow.jpg

Q2. 멘토님이 개인적으로 신입에게 바라는 요건, 중요하게 보시는 조건이 궁금합니다.

(멘토님)
1.
지원 분야에 대한 관심도와 준비기간
2.
포트폴리오에 작성한 프로젝트에 대한 진정성 면접을 진행시에는 프로젝트 과정을 엿볼 수 있는 질문을 많이 함

Q3. C#언어의 장점과 철학

(멘토님)
마이크로소프트가 C# 릴리즈 후에 10년 정도 지나서 Java를 따라했다고 고백함. MS가 뒤늦게라도 이 이야기를 할 수 있었던 이유는 10년 정도 지나서는 Java와 결이 달라진 언어가 되어버렸기 때문이다.
C#의 장점은 비동기를 처리하는 방식이 매우 우월하다.
특히 async, await 기능이 있다. 이 기능은 javascript가 따라하게 된다. C++에는 그런 기능이 없어서 함수 포인터로 콜백함수 이용해야함.

Q4. 버넥트의 개발직군에서는 어떤 언어를 다루고 있는지 직무마다 궁금합니다.

(멘토님)
프론트에 해당하는 유니티 앱은 C#, 웹은 당연히 Javascript에 TypScript, Vue 의 스택을 가지고 있다.
서버에서는 java Spring과 Go 서버 프레임워크을 사용한다. Go 프레임워크를 사용하는 이유는 게임처럼 높은 성능은 아니지만 적절한 수준의 성능이 필요하면서 효율성 있는 코드를 작성할때 Go framework를 사용한다.

Q5. “조사 기업의 80.5%가 XR 사업 연매출이 10억원에 못 미쳤다.” 기사를 보았습니다. XR의 현실에 대해서 알려주세요. (2021년 6월 기사)

(멘토님)
2021년 6월 조사. 실제로 정부 지원 사업의 일환으로 투입되는 돈은 굉장히 많으나 이 돈은 매출로 포함되지 않는다. 실제로 산업에 유의미한 매출을 내는 기업이 굉장히 적다.
버넥트는 매출이 50억 이상이다.

Q6. 버넥트에서 코로나로 인한 원격근무가 있었다면 장단점이 있나요? 개발자들은 긍정적인 의견이 많나요?

(멘토님)
연차가 쌓인 개발자를 제외하면 원격보다는 출근하여 근무를 하는게 효율적으로 보인다.
1.
테크리더 및 팀장
모든 것을 총괄하고 지시해야하기 때문에 슬랙 메세지로 디렉팅하는 것은 의미가 제대로 전달되지 못 할 수 있다. 원격 근무가 사실상 불가능하다.
2.
신입
신입이면 당연히 업무 프로세스가 익숙치 않기 때문에 어렵다.
3.
회사 업무에 어느 정도 적응해서 퍼포먼스를 내는 사람들은 재택으로 효율적으로 일을 할 수 있다.

Q7. 저는 C#, Unity에 관심이 있으나 게임 개발에는 관심이 없습니다. 멘토님의 발자취를 보면 비슷한 부분이 있는 것 같습니다.

학창시절부터 새내기때까지는 게임을 꾸준히 하심 → 대학교 3학년 때까지는 게임개발쪽을 공부하심
하지만 이후에 게임이 추구하는 즐거움보다는 좀 더 생산적이고 사람들에게 도움이 되는 제품을 만들고 싶어하심
대학교 졸업당시는 C/C++이 주류이고, C# 은 막 태동, Java의 객체지향에 대해 사람들의 관심이 몰리는 시기임
첫 직장은 윈도우 앱 어플리케이션 개발하는 회사를 가셨다가, 회사 생활도중에 Unity를 필요로 하는 필요에 의해서 학습한 이후에 현재는 Unity, C#에 많은 업을 진행중에 계심 (그 이전에는 Unity는 C#으로 할 수 있는 것들 중에 하나로 접근하셨다고 하신다.)

Q8. C#에서 string은 immutable 객체이기 때문에 자주 할당하거나 수정하는 것은 리소스를 많이 잡아먹습니다. stringbuilder를 써서 문제를 해결하는 방법이 있는데, 현업에서도 string을 다룰때, stringbuilder를 사용하나요?

(멘토님)
거의 사용하지 않는다. 왜냐하면 string이 수정되는 부분이 많은 부분을 차지하지 않을 확률이 높기 때문이다. 만약에 사용한다면 코드를 잘못 짠 경우일 확률이 높다. 예를 들면, 문자열의 수정을 반복문으로 돌리는 경우가 해당된다.

Q9. 네이버에서도 “Naver Line AR Labs, Naver Labs AR” AR에 대한 포지션을 뽑고 있는데, 여기서는 AR Engine 그 자체를 구현하는 것 인가요? (C/C++로 있는 것)https://careers.linecorp.com/ko/jobs/957

(멘토님)
우선 AR 개발의 직군을 두가지로 나눌 수 있다.
AR엔진 및 SDK를 만드는 연구소
SDK를 활용하여 애플리케이션을 만드는 프론트단
C/C++ 언어를 다룬다면 높은 확률로 AR 엔진과 SDK를 다룬다고 본다.

Q10. 많은 AR기업에서 Graphic API에서 Vulkan, OpenGL, DirectX를 다뤄본 경험을 묻는 경우가 있습니다. 어느정도까지 학습하는 것이 좋을까요?

(멘토님)
신입개발자라면, 다양한 프로젝트에 따라서 필요에 따라 어떤 API를 사용해봤다. 정도로 충분할 수 있다.
깊게 파고 든다면, Unity의 Material의 Shader에서 Vulkan, OpenGL에 따라서 다르게 코드를 짜야하는 부분의 차이점까지 안다면 좋을 것 같다.

Q11. QA 직군에 대한 현직자의 직접적인 설명과 버넥트에서 QA직군은 어떤 작업을 하는지 궁금합니다.

(멘토님)
1.
릴리즈 된 제품을 테스트하고 실제로 슬랙에서 제품별+기간별로 어떤 테스트를 했고 몇가지 이슈가 발생했는지 슬랙을 통해 공유하는 모습을 실제로 같이 확인함.
2.
QA를 리드하는 직원 2명과 나머지 6명의 인턴으로 QA 직군이 구성되어있음. 2분은 정확히 QA 직군에 대한 이해를 하고 전문성이 있는 사람으로 구성되어있음. 나머지 직원분들은 리드에 따라 테스트를 진행한다.

번외

개발자 이직 및 연봉에 대한 이모저모

(멘토님)
3월에 대거 이직 준비를 한다. 따라서 그전에 회사에 지원하는 것이 전략적으로 우수하다. 1, 2월에 연봉 협상 테이블에서 재계약을 하지 않은 사람들이 3월에 대거 이직 준비를 하기때문에 신입이라면 3월전에 지원하는것이 전략적으로 우수하다. (대기업의 경우는 사람이 많아서, 사람마다 연봉협상을 하는 시기가 매우 다르다.) 이직을 하는 이유는 이직을 통해 연봉을 올리는 것은 쉽지만, 같은 회사에서 연차가 쌓임에 따라서 연봉을 올리는 것은 매우 어렵기 때문이다. 그리고 이것도 작은 회사의 특성상 일정 수준 이상의 오퍼를 받고 이직 하는 건 어렵다. 높은 연봉을 받으려면 개발이 아닌 리더, 매니저급 역량을 키워서 개발자들을 성장 시키는 일을 하거나 아니면 유망한 스타트업 회사의 창립멤버로 들어가거나 본인이 창업해야한다.
신입이라면 면접에 붙어야한다는 마음이더라도 연봉에 대해서 가장 먼저 질문하는 것이 중요하다. 붙더라도 자신이 생각했던 연봉 기준보다 낮은 연봉계약서를 보면 실망이 크기 때문에 먼저 연봉 수준을 확인하고 합격 통보를 받는 것이 좋다.
버넥트는 신입 기준 개발자 연봉이 4천만원 이상으로 책정되어 있고, 특히 연구소와 협업해서 버넥트 제품을 개발하는 개발센터의 개발자 신입 연봉은 5천만원이다.

느낀점

버넥트 회사 전반에 대해서 모든 것을 오픈해주시면서 회사의 Workflow를 간접경험 할 수 있었다는 것이 오프라인을 통해서 얻을 수 있었던 특별함 경험이였다. 첫 멘토링때에는 Unity에 기능에 대해서 많은 질문을 했었고, 이번 멘토링에서는 기업에 대한 질문을 많이 함으로써 조금 더 실무에 가까워진 느낌을 받았다. 모든 질문에 친절하게 답변해주신 김종필멘토님에게 다시 한번 감사의 인사를 드리고 싶다..!
마지막으로 Unity와 C#에 대해서 관심이 있는 42seoul 카뎃이라면 멘토링을 받아보는 것을 강력히 추천한다!
인증사진