블로그를 시작했다. 사실 블로그는 자신이 없었다고 해야되나... 좋든싫든 다른 사람이 내 글을 볼텐데 내용이 부실한건 둘째치고 잘못된 정보를 전달하게 될수도 있을것 같아 조심스러운 면이 많았다. 회고록이나 에러대처 기록, 그외 특별한 사항들에 대한 기록 용도로 당장은 오픈했다.
그건 그렇고 블로그는 시작했는데.. 첫글 이 뭐가 좋을까 생각하다가 많이 배우고 깨진 4개월 인턴 회고록으로 시작하려고 한다. 퇴사 당시 노션에 적어놨던 글인데 첫글로 뭔가 느낌적인 느낌이 있는것 같아 게시해보려고 한다.
========================시작========================
스타트업 백엔드 개발자 인턴 4달... 길다면 길고 짧다면 짧은(사실 짧다) 기간 동안 ‘나름’ 실력적으로 향상 되고 개발을 대하는 태도(개발관) 의사소통 방식등등... 배운것, 느낀점이 많다고 생각되기도 하고 지금아니면 계속 안쓸거 같아 회고록을 남기려고 한다.
학교를 졸업하고 계속 혼자 공부하며 프로젝트를 완성하고 이력서를 돌리던중 지금 회사에 정규직으로 입사하게 되었다. 다만 6개월 수습(인턴) 기간후 정규직 전환이라 솔직히 고민되긴 했다. 하지만 환경적으로 부족함에도 불구하고 입사를 결정한데에는 몇가지 이유가 있다.
나는 지금도 그렇고 입사할 기업에 대해 최소한 바라는 부분이 있다.
1) java,spring-boot,jpa를 사용하는 즉, 내가 사용하고 있는, 앞으로 더 잘 하고 싶은 기술스택을 사용하고 있는지
2) 보고 배울수 있는 코드와 ‘사수’가 있는지.
3) 입사기업의 경우 면접관이 셨던 책임님과의 면접 경험(페어 프로그래밍, 기술면접)이 너무 좋았었다.
4) 게다가 자체서비스를 하는 스타트업이었다.
여러 만족조건이 맞아 떨어졌고 특히 1,2번 조건은 무조건 맞는 회사를 갈 생각이었기 때문에 조금 고민은 했지만 입사하게 되었던거 같다. 결과적으로 굉장히 좋은 책임님을 만나 여러부문에서 영감을 받고 성장할수 있었다고 생각한다.
사실 입사전엔 객체지향에 대해서 잘 몰랐다. 기껏해야 SOLID, 그중에서도 단일책임원칙 정도와 코드를 클린하게 하려 만드려는 노력 정도? (사실 그렇게 클린하지도 않았다...) 실력도 시야도 많이 부족했었다. 입사후 과제를 부여받고 코드리뷰를 진행했는데 개발 책임님의 객체지향적 코드를 보며 신선한 충격을 받았다. 왜 SOLID를 지키려고 하는지, 왜 중복되는 코드를 줄이는지, 왜 책임이 필요한지.. 아직도 많이 부족하지만 그나마 시야가 조오금 넓어졌다고 생각한다.
개발 스타일이 조금 모던해졌다고 생각한다. 그전엔 조금 주먹구구 식이었다면 지금은 구현하는데 약간의 규칙을 두고 구현하고 있다. 예를 들면 {} 안에 {} 가 들어가는 경우 내부의 {}는 메서드로 처리해 객체지향적이고 클린한 코드로 구현한다던지, 네이밍은 구현은 모르고 기능을 사용해야 하는 사람의 입장에서 잘 알아볼수 있도록 한다던지(이 부분은 노력이 더 필..요....) java 8의 기능인 스트림, 람다, optional을 적극 적으로 사용한다던지 등등.유용한 기술의 활용과 깨끗하고 단순한 코드를 만들려고 노력하고 있다.
입사하며 맡은 업무는 현재 기업 팀원들이 사용중인 어드민 서비스 재구현이었다(마이그레이션).
기존 어드민 코드는 너무너무너무 보기가 힘들었다. 네이밍은 그렇다 쳐도 하나의 dto의 길이가 300줄이 넘어가는 것도 있었다.. 엔티티가 아니고 dto다... 또 메서드간의 단일 책임 원칙도 지켜지지 않아 하나의 메서드가 여러 일을처리하고 같은 코드가 여러곳에 중복되고 테스트도 없는 코드들이 산재해 있었다.
책임님은 유지보수 보단 다시 구현하는게 빠르다고 판단하시고 개발에 들어가는 상황에서 내가 입사하게 되었다고 한다. 처음 겪는 실무와 페어프로그래밍 방식에 사실 조금 힘들긴했지만 재미도 있었다. 복잡한 도메인 요구사항들, 처음보는 설정, 기능, 테스트 등등 고난의 연속이었지만 항상 이런상황을 거치고 돌아보면 성장해 있다는걸 알기에 나름 열심히 했던것 같다.
결과적으로 지금에 와서 정말 많이 배우고 성장했다고 생각한다.역시 제일 좋은 스승은 좋은 코드인것 같다. 다만 마이그레이션 막바지에 조금 내 입장에서 회사업무에 대한 열정이 조금 떨어지는 사건이 있었다. 이 시기에 퇴사에 대한 생각과 동시에 책임님은 ‘소프트웨어장인’이라는 책을 읽어보라고 권해주셨다. 나중에 게시글로 따로 후기를 남길 예정이지만 여러 사건들 속에서 개발자의 태도에 대한 이야기를 하는 책이다. 애자일에 대한 설명부터 시작해 개발자가 개발에 임하는 마음가짐에 대한 이야기까지 진행한다. 읽으면서 조금 반성하는 부분들도 많고 다짐하는 부분들도 많았다. 자세한건 후기 게시글에서 다루려고 하고 결론은 개발적으로 많이 배우고 태도면에서도 느끼는게 많은 4개월이었다!
지금까지 나는 삽질이 너무 싫었다. 대학생때도 힘들었지만 졸업후 취업준비 기간에는 더욱더 힘들었다. 갈길은 먼데 에먼데 발목잡혀서 몇시간, 혹은 몇일을 앞으로 넘어가지 못하는 상황이면 답답함과 무력감이 한번에 밀려오곤했다. 입사해서도 마찬가지였다. 하루는 설정하나 하는데 하루를 꼬박써도 진행이 안되 지쳐있는 상황속에서 책임님이 조언을 해주셨다. ‘만약 삽질을 안했으면 아마 남는 시간에 누워서 유튜브를 보거나, 다른 게임을 하거나 하지 않았을까. 이렇게 삽질하는 시간도 개발에 도움이 되고 쌓여가는게 많다고 생각한다. 뭔가 낭비라는 생각보단 도전한다는 생각으로 임하면 훨씬 편하다.’ 라는 뉘앙스의 말을 해주셨다. 조언을 듣는 중에도 삽질에 대해 다시한번 생각해보게 되었지만 시간이 지나 지금에 와서 내린 결론으로는 ‘마음먹기 나름’ 이라는 생각이 강하게 든다. 결국 삽질 뿐만이 아닌 살아가는 동안 어떤 생각과 태도로 임하느냐가 중요하고 차이를 만들어내고 삶을 더 풍족하게 누릴수 있을거라는 생각이 들었다. 너무 멀리 간감이 있긴.... 하지만 지금의 내생각은 이렇다. 그래서 ‘긍정적’인 태도로 일을, 사람을, 삶을 대하려고 노력하려고 한다. 일단 인생 좌우명은 ‘마음먹기 나름’으로 정했다 ㅎㅎ
취준 당시 채용공고를 보면 거의 모든 공고에 있는 공통내용이 ‘의사소통’에 대한 내용이었다. 그 당시 나는 의사소통에 대한 걸 그다지 크게 생각하지 않았다. ‘의사소통 원활? 내 얘긴데?’라는 안일한 생각 이었다. 입사하고 보니 ‘의사소통’은 정말 어려운거 같다. 내가 생각하는걸 잘 풀어서 설명하는 것도, 남의 말을 잘 이해하는 것도 생각보다 쉽지 않은 부분이라고 느꼈다. 같이 일하는 인턴분들도 똑같은 이야기를 하시던걸 봐선 나만 어려운게 아닌것 같다(다행이다..). 의사소통을 어떻게 하면 잘할 수 있을까는 아직 잘모르겠다. 결론은 많은 사람들과 이야기 하며 상대입장에서 한번더 생각해보고, 말하기 전에 한번 더 생각해보는... 뻔한 내용이라 아직 부끄럽다. 다만 아직 개발자로서 원하는 경지가 있어 개발쪽에 조금 치우쳐져 있지만 근 시일 내에 향상시켜야 할 능력이라고 생각하고 있고 이에 관한 스터디를 친구와 진행해보기로 했다.
대학교 재학중 스타트업에 개발자로 입사하게 되면 빠른 성장이 가능하다는 말을 많이 들어왔고 좋은 복지, 훌륭한 팀원들, 최상의 워라벨, 자유로운 분위기 등등 약간의 환상도 가지고 있었던것 같다. 대학교를 졸업하고 취업준비를 하며 자연스럽게 목표를 스타트업 백엔드 개발자로 잡았고 좋은 기회를 통해 경험할수 있게 되었다. 환상은 어느정도는 맞는 부분도 있었다. 다만 나의 환상은 최상위권 스타트업들에 대한 생각이었고 현실적으로 중소규모의 스타트업은 기업마다 다르겠지만 생존과 성장에 포커싱이 맞춰져 있고 좋은 복지도 제공해주지 못했다.
또한 업무 체계도 재대로 잡혀있지 않은 부분도 많고 워라벨을 보장받지 못할 수도 있다.
다만 그럼에도 나는 다음 회사도 스타트업으로 목표를 잡았다.
이유는 크게 4가진데
1. 빠른 성장이 가능하다
2. 분위기가 자유로울 가능성이 높고 자유로운 분위기가 내가 일하기에 적합한 환경인듯 했다.
3. 다들 열심히 달려가는 모습에 자극받고 함께 성장하는 경험을 할 수 있다.
4. 개발적으로 여러 가지를 실무에 시도해 볼수 있다.
잡혀 있지 않은 체계는 시행착오를 거쳐 잡아가면 된다, 워라벨은 내가 성장할수 있다면 어느정도 포기해도 되는 부분이다, 좋은 복지는 회사가 성장하면 따라올것이고(아마?) 회사의 성장은 나의 성장이 필요하다. 결론적으로 내가 잘하면 단점들에 대해 어느정도 보완할수 있다는 결론을 내렸다. 물론 힘들겠지만 앞에서 이야기한듯 그런 고생 뒤에 더 성장해 있다는걸 알기에 충분히 좋은 경험이 될것 같다고 생각한다.
우선 객체지향을 조금더 공부해보고 프로젝트를 진행해 보고 싶다. 개인적으로 배우고 느낀부분들을 온전하게 프로젝트를 통해 고민하고 구현해보고 싶은 마음이 컷다. 코딩테스트도 준비하고 cs도 공부하고 싶지만 최우선 사항은 객체지향 공부로 정했다!
일단 여기까지 퇴사 당시 적어놨다. 당시 쓰고싶은 대로 써서 정리가 안되 있고 빠진 부분도 분명히 있을것 같다. 생각정리하고 내용도 추가해볼 생각이다.