들어가며

작년 12월 말에 입사한 후 1월부터 9주 동안 진행된 신입 개발자 교육을 마쳤습니다!

교육이 어떤 식으로 진행되었는지, 무엇을 배웠는지 짧게나마 공유해드리고자 합니다.

일정

  • 1주차 ~ 2주차: 웹 프론트엔드 학습
  • 3주차 ~ 6주차: 웹 백엔드 학습
  • 7주차 ~ 9주차: 팀 프로젝트
  • 매주 목요일 오후: AWS, DB 및 CS(Computer Science) 기초 등등

크게 위 과정으로 진행되었는데, 모든 과정은 페어 프로그래밍(짝 프로그래밍)으로 진행되었습니다.

교육받기 전까지 혼자 결정하고 혼자 코딩하던 저에겐 적응하기 힘든 방식이었지만, 교육 후반쯤 되었을 때는 너무 적응을 한 나머지 혼자 결정하기가 무서워졌었죠..

그리고 교육은 대부분 실습으로 진행되었는데, Github으로 코드를 관리하며, 강사님들이 코드 리뷰를 통해 코드가 더 깔끔해질 수 있는 방법들을 말해주는 방식으로 진행되었습니다.

프론트는 티가 많이 난다. feat. Crong

먼저 저는 백엔드로 지원을 했습니다. 그 전에도 js(Javascript)를 다뤄봤었지만, 함수만 수십 개 만들어 구조란 찾아볼 수 없는 모습, 잘 돌아가는지 확인하기 위해 새로 고침만 수십번 누르다가 이내 질려버리고 말았었죠. (내가 못 짠 건 생각도 안 하고…)

하지만 교육을 받으며, js에도 클래스가 있고, 테스트 코드도 만들 수 있다는 걸 알았습니다. 그러면서 점점 구조가 잡히고, 새로 고침 대신 테스트코드를 돌리며 js의 맛을 조금 알게 되었습니다.

뿐만 아니라, Promise를 통한 비동기 처리, Event delegation을 통한 효과적인 이벤트 적용 방법, es5와 es6의 차이 등 백엔드를 공부하면서는 접하기 힘들었던 부분들을 알게 되었습니다.

이 시간 덕분에 프론트와 조금이나마 친해질 수 있었고, 프론트 개발하시는 분들을 이해할 수 있게 되었습니다.

백엔드는 티가 안 난다. feat. Pobi(자바지기)

백엔드 언어는 자바지기님이 지키는 Java로 진행되었습니다.

Java를 그래도 좀 안다고 생각했지만, 개발하면서 한 번도 들어본 적이 없는 Optional과 Stream을 만나고… 그건 어디까지나 제 착각이었다는 것을 뼈저리게 느꼈습니다…

또, 최대한 TDD를 따르려고 노력하며, HTTP, Spring 프레임워크, JPA 등을 배웠습니다. 테스트를 정말 열심히 만들었지만, 구조가 바뀌면서 망가지는 테스트들을 보며 정말 가슴 아팠습니다.

가장 기억에 남는 자바지기님의 한마디는 “비즈니스 로직은 상태 값을 가지는 객체가 하게 해라.” 라는 말인데, 평소 Spring Boot 기반으로 개발을 하면서 습관적으로 Service 계층에서 많은 비즈니스 로직을 처리하던 부분을 모델이 직접 처리하게 만들고 나서 보니 한층 코드가 깔끔해진 것을 느꼈습니다.

그리고 개발하면서 구글링을 하다 종종 뵀던 자바지기님이 이렇게 옆집 삼촌 같은 분인지 알게 되었던 귀중한 시간이었습니다.

팀 프로젝트

팀 프로젝트를 하면서 배웠던 모든 내용을 바탕으로 Trello 와 비슷한 서비스를 만들었는데, 각자의 직군으로 나눠서 개발하지 않고, 백엔드와 프론트를 모두 같이 만들었습니다.

혼자 프로젝트를 진행할 때와는 달리 직접 구현하지 않은 기능들이 생겼는데, 어떻게 만들었는지는 모르지만, 동료들을 믿고 내가 맡은 기능에 충실해야 한다는 것을 깨달았습니다.

또, 다른 사람과 의견대립이나 합의가 필요할 때, 빠르고 더 좋은 결과를 내기 위해 투표도 해보고, 팀장을 뽑아서 결정권을 위임하기도 해보았습니다.

느낀 점

교육을 받다 보니 다른 사람과 같이 일하는 방법을 배우는 것이 목적처럼 느껴졌는데, 제 생각이 맞다면 이 교육은 꽤나 성공적이었다고 생각합니다. 매일 붙어서 같이 코드를 짜면서 내 의견을 설득도 해보고, 설득당할 때도 있다 보니, 지식도 지식이지만, 서로 존중하면서 대화하는 방법을 더 많이 배울 수 있었습니다.

조금 신기했던 부분은, 교육을 받으면서 수많은 커뮤니케이션 과정에서 한 번쯤은 감정이 격해질 만도 한데, 동기들끼리 한 번도 싸우거나 멀어진 적이 없었습니다. 다들 한 인성 하던 분들인 듯… (저 포함)

아무튼 아주 만족스럽고 좋은 교육이었습니다. 현업에서도 교육받은 내용을 잘 적용할 수 있도록 노력하겠습니다. 읽어주셔서 감사합니다!

ps. 리눅스의 신 honux님, IOS 마스터 JK 님도 감사합니다!