7월 OKKY 세미나 개발자에게 좋은 이직/퇴사를 위한 꿀팁
- 발표자 이경일님은?
- 왜 학교 공부보다 취업 준비를 했을까?
- 어떤 개발이 나와 잘 맞을까?
- 어떤 회사에서 시작하는 게 좋을까?
- 이직에 도움이 되는 역량을 습득하는 방법?
- 면접 이야기
- 퇴사 이야기
- 핵심 정리
- Q & A
세미나 정리를 다 했는데 회사 문서에만 올려놓고 제 개인블로그에는 올려놓지 않았네요ㅎㅎ 누군가에게 도움이 되길 바라며 늦었지만 올려봅니다 :)
이직/퇴사는 누구나 거쳐가는 길로 언젠가 겪어야 할 일입니다. 7월 15일 세미나에서 들었던 내용을 정리해봤습니다.
해당 세미나를 세세하게 적기보다는 핵심 위주로 적었습니다.
팀원분들께 조금이나마 도움이 되었으면 좋겠습니다. 감사합니다. 🙇
발표자 이경일님은?
- 네이버 쇼핑에서 글로벌주문정산 개발을 하시고 계심. 들어온 지 얼마 안됨
- 노가다를 즐기는 개발자. 단순한 작업을 좋아하심
- 비공식 커리어로 다양하게 일을 함. 대학교때 코딩 알바라든지, 프리랜서라든지…
- 학교 공부보다는 취업 준비를 했고 실무 경험과 경력을 위주로 쌓음
왜 학교 공부보다 취업 준비를 했을까?
- 대학교 1학년때부터 동아리 선배따라 코딩 알바를 했는데 학교 수업과 실무는 완전 다르다는 걸 느꼈다
- 학교에서는 너무 올드한 방식으로 교육하고 있었다
- 그러다보니 학교에 정을 못 붙였다
동아리 선배를 따라가다보니 좋은 기회를 얻었다. 본받을 사람을 가까운 곳에서 찾자
어떤 개발이 나와 잘 맞을까?
- 첫 회사에 들어갔을 때 회사가 너무 작다보니 모든 일을 혼자서 다함
- 하드웨어 구성부터 서버 발주, OS 설치, Apache, Mysql, 네트워크 연결하고 설정하고 접근환경 만들고 등등…
- 이때가 최고의 경험. 이때 자연스럽게 OS, 네트워크 지식이 쌓였다
- 그러나 안타까운 생각이 들 때가 있다
- 요즘에는 개발자들이 다양한 경험을 하기 힘들다
- 서버 개발자면 서버만 개발하고 프론트와 인프라는 안하는 게 아쉽다.
- 내가 자주 내는 면접 질문 : “당신은 서버 한 대만 주면 혼자서 서비스를 처음부터 끝까지 구현할 수 있나요?”
- 이 질문에 나는 얼마나 답할 수 있나? 생각해보자.
- 서버 아키텍쳐를 생각한대로 그릴 수 있을 정도가 되자
- 도메인도 매우 중요하다
- 그러나 대부분의 신입 개발자는 어떤 도메인이 잘 맞는지 알 수 없다
- 경험이 쌓이면 알 수 있다.
- 모든 도메인을 다 해볼 순 없으니 일단 경력을 쌓고 조금씩 다른 도메인을 접해보자.
서비스를 혼자서 처음부터 끝까지 만들어보자
어떤 회사에서 시작하는 게 좋을까?
- ‘어떤 회사에서 시작할 지?’는 생각보다 더 중요하다.
- 보통 세 가지로 분류한다
- SI 회사
- 좋은 품질로 개발할 시간이 부족하다. 제일 안 좋음
- 서비스 회사
- 가급적 여기서 시작하자.
- 본인의 서비스를 운영하고 있는 회사로
- 당근마켓, 오늘의 집 등등…
- IT가 아닌 대기업 회사
- 높은 확률로 개발을 외주로 맡길 가능성이 높다.
- 자신이 개발할 확률이 거의 없다
내가 오너십을 갖고 서비스를 개발하는 게 가장 좋다
이직에 도움이 되는 역량을 습득하는 방법?
- 기본기가 중요하다. 경력자는 CS 지식이 꼭 있어야 한다.
- 특정 언어나 특정 프레임워크를 고집하지마라
- 유튜브에 좋은 발표 자료등이 많다. 한 번 봐라 (백기선님, 김영한님, 이동욱님)
- 비대면 발표는 발표자가 생각보다 힘들다. 반응이 없어서… 알아줬으면 좋겠다ㅎㅎ
- 발표는 크게 2가지 성격으로 나눌 수 있다
- 내가 공부한 것을 발표하는 사람
- 내가 업무적으로 경험한 것을 발표하는 사람
- 이게 생각보다 도움이 된다.
- 기승전 토이프로젝트가 답이다.
- 토이프로젝트를 하더라도 서비스 운영 감각을 익히는 게 중요하다.
- 나도 아이폰 개발 재밌겠다고 생각해서 개발했다가 앱스토어 1위도 했었다. (다 찾아주마)
- 맨 처음부터 했기에 서버 구성이 매우 간단했다. 그러다 트래픽이 늘고 서버를 사고 여러 경험을 했다.
- 여행갔다가 서비스가 죽어서 그때 노트북으로 빨리 켜서 복구하기도 했다
- 서비스를 제로부터 직접 만들고 운영까지 해보면서 값진 경험을 얻었다
- 이런 경험을 해보면서 얻은 대용량 트래픽 대응은 내가 포털로 진출할 수 있게 된 밑거름이 됐다.
- 근데 대용량 트래픽은 서비스가 성공하지 못하면 경험 못하지 않나?
- Stress Test Tool을 이용하면 된다
- ngrinder 등…
- URL만 있어도 바로 가능하다
- 시스템 모니터링은 pinpoint로 해결
- Stress Test Tool을 이용하면 된다
- 근데 대용량 트래픽은 서비스가 성공하지 못하면 경험 못하지 않나?
- 책만 보고 하는 것보다 직접 코드를 작성하면서 경험을 해보는 게 좋다.
- 오픈 소스를 개발을 하면 인텔리제이 JetBrain 라이센스를 공짜로 준다. 오픈 소스 개발에 도전해봐라
- 역량을 습득하기 위해서는 뭐든 좋으니 행동을 했으면 좋겠다.
공부보다 행동을 하자. 혼자 개발해서 서비스 운영감각을 익히자
면접 이야기
- 50번정도 네이버나 카카오에서 면접관 경험 (거의 다 경력직)
- 사실 면접이란 운과 인연이 조금 필요하다. 내가 아무리 실력이 좋아도 안될 때가 있다.
- 내가 아는 것을 그림까지 그려가며 설명할 수 있어야 한다.
- 개인 프로젝트 한 건 소스코드 레벨로 다 보니 Github을 관리하자
- 블로그도 하되 본인의 생각이 녹아있는 블로그를 작성하자.
- 오픈소스 컨트리뷰트 경험도 있으면 좋다
- 코딩테스트는 기업에 맞춰서 준비하자. 내 생각엔 무조건 많이 풀어보는 사람이 유리하다.
- 현업에서 날고 긴 사람도 코딩테스트 경험없이 보면 못 푼다.
- 아무런 준비없이 보면 당연히 힘들다
- 제일 잘 보는 사람들은 대학생
- 해커랭크와 코딜리티 추천
- 기본적인 CS 지식은 꼭 준비해서 가자. HashTable, Map, Sorting 등 가끔 시킨다. 화이트보드에 큐를 작성하는 걸 경력자에게도 물어본다. 뻔하지만 뻔하다는 건 그만큼 기본적이라는 것
- 장애를 만났을 때 문제해결 능력이 중요하다. 얼마나 창의적으로 해결하는 지, 운영 경험 등…
- 마지막에 질문할 거 있냐고 했을 때 본인이 더 어필할 수 있는 부분이 남아있다면 이야기해서 어필하자.
- 면접도 연습이고 면접도 경험이다. 기회가 있으면 1년에 1번은 연습삼아 봐라
- 나도 올해 2월에 다른 곳 합격하고 안갔다.
면접을 봐야 내가 무엇이 부족한 지 알 수 있다.
퇴사 이야기
- 퇴사도 중요하다. 우리나라 IT 시장이 작다. 싸우고 나오지 말자.
- 보통 팀장이 기록을 한다. 나중에 레퍼체크를 꼭 한다.
- 평소에 동료들과 좋은 관계를 유지하자. 너무 공과 사를 구분하지 말자. 적당한 친분은 도움이 된다.
- 나 같은 경우는 퇴사하는 날까지 야근했다. 그랬더니 좋게 봐주신 것 같다?
- 나에게 도움이 될만한 좋은 사람들은 이미 내 주변에 있을지도 모른다. 사람 보는 눈을 키우자.
싸우지 말고 박수칠 때 더 나은 연봉받고 떠나라.
핵심 정리
- 가까운 사람 중에 본받을 만한 개발자 한 명쯤은 만들자
- 개발자가 알아야할 기본적인 CS지식을 갖추자
- 코딩 테스트는 지원하는 회사에서 사용하는 플랫폼으로 준비하자
- 면접에서는 자신감있고 당당하게 아는 것을 다 말할 수 있어야 한다
- 복사 & 붙여넣기가 아닌 본인의 생각을 꾸준하게 정리한 기술 블로그 운영
- 본인이 직접 운영하는 서비스(토이프로젝트)가 있고 그 서비스를 운영하면서 느낀 점
- 면접도 연습이다
Q & A
- 회사에서 업무 처리를 하는 시간이 너무 많다. 내 공부할 시간이 없다. 어떻게 하나?
- 하루에 업무를 7시간한다고 하면 하루에 10%나 20% 정도는 너의 공부를 해라. 너가 성장하는 게 회사에 도움이 된다.
- 하루에 1시간 정도는 본인 공부를 하도록 윗분에게 동의를 받아봐라
- 개발자를 하고싶은데 뭐가 중요한 지?
- 프로젝트 디자인이나 구조가 가장 중요하다.
- 그리고 하루 아침에 스프링을 막 소스까지 다 까면서 공부하진 마라. 어차피 나중에 자연적으로 까볼 수 밖에 없다. 스트레스 받아가면서 하지 마라.
- 체력관리는 어떻게 하나요?
- 일주일에 2~3번 달리기
- 영양제를 먹는다
- 평소에 학습할 때 루틴같은 게 있는지?
- 내가 하고싶은 도메인을 잡고 서비스를 만들어본다. 예를 들어, 코인했다가 물렸다면 코인에 대한 서비스를 새로운 언어가지고 간단하게 만들어본다.
- 무조건 만들어보는 게 1순위
- 나는 얇고 넓게 개발하고 필요할 때 파는 스타일
- 언제 퇴사욕구가 가장 심한지?
- 여기서 더 배울 게 없다고 판단되거나 다른 곳의 연봉이 더 높을 때
- 레퍼체크를 100% 신뢰하나?
- 내가 아는 사람. 1순위. 100% 신뢰
- 다른 사람에게 물어본다. (2명 정도)
- 장단점을 알려달라고 한다.
- 어차피 한 다리 건너면 다 알게 된다.
- 그러니 사회생활을 잘 해야한다
- SI 3년차 개발자인데 서비스로 가고 싶다. 신입으로 지원해야하나?
- 지금 회사에 다니면서 기술적인 발전을 못 느꼈다면 지금 하는 거에 대해 개선하는 걸 연습해봐라. TC를 작성해본다든지? Junit말로 Spock Framework을 써본다든지?
- 솔직히 네카라쿠배에 들어온다고 해서 달라지는 게 딱히 없다. 원래 Junit으로 작성했던 코드를 Spock 프레임워크로 작성할 수 있도록 발표해서 전파해보자. 내가 뭘 하고 싶으면 누군가를 설득하고 공부할 수 있는 여건을 직접 만들어보자.
- 그리고 회사를 퇴사하고 취준하지 말고 회사를 다니면서 해라. 무조건
- 회사 코드를 클린코드로 함께 만들고 싶은데 가르침을 받을 사람이 없다. 혼자라도 할 수 있는 방법이 있을까?
- 레거시 코드는 어쩔 수 없이 계속 실행해보고 계속 코드를 보는 방법밖에 없다.
- 금융 SI인데 개발해서 무엇을 만들기보다는 디버깅해서 사용하는 솔루션을 수정하는 일이 많다. 유지보수같은 업무가 서비스기업으로 이직할 때 이런 경력이 도움이 될 지? 이런 업무를 하면서 어떻게 성장할 수 있을지?
- 개인적인 생각으로는 남이 짜놓은 솔루션이나 디버깅 보면서 수정하는 건 엄청난 경험
- 다른 서비스 회사가도 똑같다. 신규 프로젝트를 맡기보다 레거시 프로젝트에서 살을 붙여나가는 수준이다. 그래서 문제점을 수정해본 적이 있으면 오히려 더 좋다
- 요즘 로그를 안보는 개발자들이 너무 많다.
- 원래 리펙토링을 할 시간을 주는 회사는 거의 없다.
- 리펙토링은 내가 해야되는 것이다
- 남이 싼 똥을 치우는 사람이 더 경험치가 높다.
- 3년차 백엔드 개발. 네카라쿠배중 한 곳에 이직을 하게 됐다. 그러나 내가 속한 팀이 비주류 서비스 팀에 가게 됐다. 대용량 트래픽을 경험할 수 없다. 그렇다보니 기대했던 부분들이 충족되지 않았다. 경일님은 이런 경우가 있었는지?
- 서비스에 따라 연봉도 차이가 난다.
- 네카라쿠배가 좋은 게 팀을 옮길 수 있는 제도가 있다는 것
- 현재 충실하게 할 수 있는 건 리팩토링.
- 1년 정도 하고 다른 팀으로 이동하는 걸 추천
- 백엔드 개발로 1년동안 하심. 그러나 서비스를 출시하지 못해서 트래픽조차 경험하지 못한 상태. 어떻게 해야하는지?
- 내가 이직을 할 거야. 다 준비를 끝내고 나서 나는 뭐 코틀린 책을 다 보고 나서 이직에 트라이하겠다.
- 절대 그러지 마라. 내가 이직을 해야겠다고 마음 먹었을 때 바로 면접을 봐라. 그러면 내가 부족한 게 뭔지 알 수 있다.
- AI에 취업해서 3개월 정도 일하고 있다. 일을 많이 한 건 아니지만 웹 개발 쪽으로 가고 싶다는 생각이 들어서 이직을 하고 싶다. 그만 두고 준비하는 게 좋을까?
- AI 개발과 웹 개발은 당연히 다르다.
- 퇴사는 빠르면 빠를 수록 서로에게 좋다. 나도 안 맞으면 바로 손절했다
- 언제 가장 많이 성장했나?
- CJ O Shopping, Kakao 커머스 이때 가장 많이 성장했다. 가장 많이 성장한 이유는 좋은 리더를 만났기 때문. 좋은 리더를 만나는 게 진짜 중요하다.
- 개발자들이 많이 모여있는 SNS를 해봐라. Fackbook에 생각보다 좋은 글들이 많다.