매 분기별로 해왔던 것들을 되돌아보고, 더 나아갈 점들을 생각하곤 했는데 올 하반기엔 바빴다는 핑계로 짧게나마 쓰지 않았었다. 올해가 가기전에 그래도 되돌아보는 시간을 갖고자 한다.
해외연수 일정으로 San Jose에서 2주가량 현지생활을 하다 왔는데, 그 당시 하루 일과가 끝날 무렵 현지에서 NHN Academy 추가 선발 코딩테스트를 응시했었다.(시차때문에 한국은 그 다음날 오전 9시였었다.)
흔히 생각하는 알고리즘 PS 문제들은 아니었고, 객체지향적으로 코드를 짜야 하는 문제들이나 Java의 정석에서 볼법한 내용들을 응용했던 문제들이 나왔던 것으로 기억한다. (일부는 디자인 패턴도 있었다.)
귀국즈음 합격 문자를 받고, 일주일정도 뒤부터 Java 백엔드과정(본과정)에 참여하게 되었다.
// https://nhnacademy.github.io/
8월 말부터 광주 캠퍼스에서 다음과 같은 교육을 들어왔다. NHN Dooray에 계시는 수석님들께서 직접 출장으로 내려오셔서 실무 기술을 가르쳐주시는 흔치않은 곳이었다. 지난 6월, 우리 학교와 연계해서 광주 캠퍼스를 개설한다며 사전 설명회를 들었을 때 개인적으론, 기회가 된다면 무조건 지원해서 들어봐야겠다 생각했던 부트캠프였다.
특히나, NHN 수석님들께서 지난 수년간 신입사원 교육 경험을 토대로 커리큘럼을 거의 그대로 가져오셔서 진행했던 터라 그 수준 또한 다를것이라 자부하셨다.
첫 4주를 Java만 했는데 그래도 Spring도 꽤 했었고 나름 Java를 잘한다고 생각했는데 큰 착각이었다. 내가 하던 코딩은 프레임워크에 의존해서 편하게 짰을 뿐, 기본은 하나도 없어서 몰랐던 것이다.
예를 들면 다음과 같은 질문들에 대해 코드로 증명해보는 시간들도 있었다.
어렴풋이 알고 있던 것들 조차 확신하고 답변할 수 없었던 문제들이다. 게다가, Thread를 통해 Socket 통신 프로그래밍이든, 플로우 기반 프로그래밍(flow-based programming, FBP)을 직접 구현하곤 했었는데 멀티 쓰레드를 이런식으로 사용해본 기억이 없었어서, 그때의 한달은 개인적으로 제일 많이 깨졌던 한달이었다.
이 시기에 개인적으론 Java의 정석, 모던 자바 인 액션을 보며 추가적인 학습을 많이 했었다.
이 후엔 Spring을 위한 초석을 다지다 Spring Core, Servlet, Spring MVC, DB Access, Spring Security, Spring Boot 순으로 매주 주제가 바뀌었다.
중간에 TDD/Clean Code나 Database, Network 기본 전산학 수업도 있었는데, 특히나 조던 수석님이 가르쳐주신 TDD/Clean Code는 내 마음속 Top 3 안에 들어가는 교육 내용이었다.
Spring 관련 기술 없이 Servlet으로만 Web을 구현할 때 익숙하지 않은 과거의 기술이다보니 꽤 힘들었었다.
지나고보면, 매주 수행했던 일일 과제든 주간 평가 과제든 NHN Academy에 합류하기 전엔 하더라도 혼자 1달정도 투자해야 수행할 수 있을법한 난이도와 주제였는데 신기하게도 자리가 자리라서 그런건진 모르겠으나 짧은 기한 안에 일일과제/주간 평가과제 제출로 다 하게 됐다. 그 만큼 실력도 상당히 올라간 기분이다. 다만, 일정이 너무 타이트하고 과제 양이 상당했어서 복습하지 못했던 부분들에 대해선 반성하고 다시 공부해야 할 것 같다. 이 또한 핑계라고 생각한다.
코로나 시국과 더불어 학교나 환경 문제도 있고, 주위에서 개발을 하는 사람이 드문데다 Spring/Spring Boot 기반으로 뭔가를 같이 해볼만한 사람들이 없었어서 늘 잘하고 있는건지 의아했던게 사실이다.
NHN Academy에서 지난 4개월간 같은 주제로 다같이 고민하며 공부할 수 있었고, 내가 모르는 것을 물어보기도, 내가 아는 것들을 마음껏 공유할 수도 있었어서 그동안 목말랐던 갈증이 해소되는 시간이었다.
나보다 더 뛰어난 사람들도 굉장히 많았어서 신선한 자극도 느낄 수 있었어서 더 열심히 할 수 있었다.
힘이 들때 쯤, 학장님께서 수업에 참관하셔서 이리저리 돌아다니시며 피가되고 살이되는 조언들을 많이 해주셔서 특히나 감사했다. 개인 면담을 해야 하는 일도 있었어서 1대1 면담을 하게 됐을 땐, 진짜 자신감을 북돋아 주셔서 너무나도 좋은 스승님을 만났다는 기분이 들었다.
후반부에 합류하신 TA님들도 매번 학생들의 질문을 받느라 고생이 많으셨고, 개인적으로 좀 더 공부할 거리, 고민할 거리가 생겼을 때 여쭤보면 선배의 입장에서 함께 고민해주시고 함께 공부해주시는 모습이 너무 인상적이었다.
무엇보다, 이 힘들고 타이트한 과정을 포기하지 않고 끝까지 함께 갔던 나의 동료들에게 박수를 쳐주고 싶다. 내가 많이 알고 있는 것은 아니지만, 내가 가진 지식과 문제 해결 방법을 이 사람들과 함께 고민할 수 있었어서 더 많이 배울 수 있었고 힘든 시간이었지만 늘 기뻤다.
모두가 좋은 개발자로 성장해서 꼭 다시 만나고 싶다.
지난주 목요일에 최종 평가 시험을 9시간동안 개발형 과제평가로 치렀다.
그동안 배운 것을 바탕으로 주어진 스펙에 맞게 개발하면 되는 문제였다. 이 평가를 토대로 다음 프로젝트 인증과정에 참여할 수 있는지 면접과 함께 선발하게 된다.
오늘(12월 19일) 면접 여부 발표를 하루종일 기다렸지만, 연락이 너무 없어서 꽤 걱정했는데 다행히도 면접 없이 다음 과정에 합류할 수 있게 되었다.
팀 프로젝트를 앞으로 2달간 수행하며 최종 발표는 NHN 사옥에서 채용 연계에 참여하는 회사 관계자분들과 NHN Dooray 수석님들 앞에서 하게 될텐데, 어떤 결과를 갖게 되더라도 내 스스로에게 부끄럼 없이 최선을 다해봐야겠다.
4개월의 시간이 짧지만 길었다. 늘 구현했던 코드가 돌아가기만 하면 끝나는 것을 좋아하지 않았어서 그 내부 원리를 이해하려고 노력해왔는데 그 사소한 점이 아카데미에서 보낸 시간을 더 의미있게 만들지 않았을까 한다. 게다가 좋은 코드와 좋은 테스트 코드란 어떤 것인지에 대해 리뷰 없이 혼자 공부하다보면 놓치기 쉽고 감을 잡기가 굉장히 어려웠는데 그 부족한 부분을 넘칠 정도로 채워주신 조던 수석님을 비롯해 하나라도 더 알려주시려 열정적으로 가르쳐주신 NHN Dooray 수석님들께 감사의 인사를 전하고 싶다.
(김병부 수석님, 책 재미있게 잘 보며 학습하고 있습니다. 좋은 책 써주셔서 감사합니다.😄)
1주일 푹 쉬고, 준비 잘해서 프로젝트 하러가자. 20000~
안녕하세요! 좋은 글 너무 잘 읽었습니다!
저도 스프링 개발에 관심이 많아 NHN 아카데미에 지원하고자 하는데 혹시 궁금한 것 오픈카톡으로 여쭤봐도 될까요?
매번 제 글에 댓글로 문의주시거나, 다이렉트로 이메일 문의 주시는 분들이 정기적으로 있으신데, 한 가지 당부드리자면 다음과 같은 질문은 답변 드릴 수 없으니 양해 부탁드립니다...
이런 질문이 아니라면, 이 게시글에 댓글로 문의 없이 제 이메일로 언제든지 물어보셔도 좋아요. 공부방향이라던지, '실무 개발은 많이 다른가요?' 등등 개발과 관련된 어떤 고민이든 좋습니다. 다만, 답장은 빠르지 않아요^^;
안녕하세요 이번 아카데미 2기 과정 듣고있는데 궁금한게 있어서 혹시 오픈카톡 남겨주실수 있나요