Today
Total
07-03 00:02
관리 메뉴

T-coding

[후기] 2023 현대자동차 소프티어 부트캠프 수료 (백엔드) 본문

SofteerBootcamp

[후기] 2023 현대자동차 소프티어 부트캠프 수료 (백엔드)

Tcoding 2023. 2. 27. 16:40
728x90
728x90

2023 현대자동차 소프티어 부트캠프

1. 소개

 

현대자동차 소프티어 부트캠프란?

 

현대자동차그룹 소프티어 부트캠프 2023

현대자동차그룹 소프티어 부트캠프 2023

www.softeerbootcamp.com

모집 대상, 교육 기간 및 일정은 위의 링크에 자세하게 나와있다.

 

2. 수료 과정 소개

처음으로 부트캠프를 진행해 보았고, 모든 과정이 새롭게 느껴졌다. 교육은 코드스쿼드라는 곳에 진행하였다. 기존 코드스쿼드 코스와는 다르게 2개월 동안 진행되는 과정이었으므로 기존 교육 과정과는 다르게 진행되었다.

 

교육 과정은 크게 2단계로 나뉘었다.

1. 매주 팀을 바꿔가며 java와 was에 대해 공부(1~4주 차)

2. 팀을 정하여 프로젝트를 진행하고 배포(5~8주 차)

 

 

1 ~ 4주 차 과정

1주 차는 Git 사용법을 익히면서 Java로 Lotto 프로그램을 만드는 과정을 진행했다. 

이때 처음 코드 컨벤션을 지켜가면서 코딩을 진행했다. 메소드의 indent(들여쓰기) depth를 1단계로 구현해야 했고, else문을 사용할 수 없었다. 한 메소드가 한 가지 일만 할 수 있도록 쪼개는 작업이 많이 어려웠다. 이후 enum, exception을 이용하는 과정이 있었지만, 이때 자바로 거의 처음 코딩을 진행했어서 적용하는 데에 시간이 좀 오래 걸렸다. 하지만 팀으로 교육을 진행했고, 본인이 모른다고 조급해하지 말고 천천히 공부해 나가면 된다는 호눅스님의 말씀을 들으면서 조급해하지 않고 공부해 나갔던 기억이 난다.

 

2주 차는 HTTP를 학습하고 웹 서버를 구현하는 과정을 진행했다.

재학시절에 Spring Boot로 프로젝트를 진행했지만, 자세히 공부를 하진 않고 동작할 수 있도록만 하다 보니 기초 지식이 많이 부족했다. 이때 웹 서버에 대한 전반적인 이해와 Java 멀티스레드 프로그래밍에 대해 경험할 수 있었다.

또한 HTTP GET 프로토콜과 parameter가 어떻게 전달되는지 어떻게 처리할 수 있는지에 대해 학습했다. 단순히 Spring Boot에서 어노테이션으로 처리했던 과정이 어떻게 동작하는지에 대해 알 수 있었다. 또한 HTTP Response에 대해 학습하고 MIME 타입에 대해 이해하고 적용하는 과정도 이루어졌다.

 

3주 차는 HTTP POST 동작 방식에 대해 공부하고 이를 적용하였다. 

POST로 요청을 보낼 때 Request Body에 값을 보내고, 이를 전달받아 값을 추출하여 객체에 저장하는 과정을 손수 해보면서 동작과정에 대한 이해를 확실히 가져갈 수 있었다.

쿠키와 세션을 이용한 로그인을 구현하였는데, 개인적으로 이 과정이 가장 얻어가는 점이 많은 부분이었다고 생각한다. 로그인 과정에 대한 막연한 어려움을 느끼고 있었는데, 어떠한 방식으로 동작하는지에 대해 정확히 알고 갈 수 있었다. 이후 프로젝트를 진행할 때도 이때 진행한 쿠키 세션 공부가 많은 도움이 되었다.

JVM 동작 방식에 대한 수업도 진행되었으나 이 부분은 정말 어려워서 잘 이해할 수 없었다. 이 부분에 대해서는 추가적으로 많은 공부가 필요하다는 생각이 들었다.

 

4주 차는 DB를 연결하여 새로운 기능을 추가하는 과정을 진행했다.

jdbc를 사용하여 구현했고, DB를 어떻게 연결하고, 어떻게 쿼리문을 작성해야 하며, 값을 객체로 어떻게 저장하는지에 대해 확실하게 알아갈 수 있는 시간이었다. 이때 배운 내용을 바탕으로 다른 DB를 사용할 때도 적용해 봐야겠다. 이후에는 리팩토링을 계속해서 진행했다. 사실 중간중간 계속해서 코드를 리팩토링 했으나, 고쳐야 할 점이 산더미였다. 제일 신경 썼던 부분은 메소드와 클래스를 분리하는 과정이었다. 

아래 객체지향 생활 체조 9가지 원칙을 참고하면서 진행했다.

  • 한 메서드에 오직 한 단계의 들여 쓰기만 한다.
  • else 예약어를 쓰지 않는다.
  • 모든 원시 값과 문자열을 포장한다.
  • 한 줄에 점을 하나만 찍는다.
  • 줄여 쓰지 않는다(축약 금지).
  • 모든 엔티티를 작게 유지한다.
  • 3개 이상의 인스턴스 변수를 가진 클래스를 쓰지 않는다.
  • 일급 컬렉션을 쓴다.
  • getter/setter/프로퍼티를 쓰지 않는다.

 

5 ~ 8주 차 과정

5주 차부터는 팀을 정해서 프로젝트를 진행하였다. 앞선 과정에서 배운 지식들을 바탕으로 프로젝트를 진행하였다.

이 과정에서 프론트엔드, 백엔드 동료들이 팀을 이루어 주어진 기간 내에 프로젝트를 진행하였다. 나의 경우 이 과정을 통해 처음으로 AWS를 사용해 보았고, EC2, S3 등 AWS의 서비스들을 사용해 볼 수 있었다. 이외에도 Github Action을 이용한 자동 배포, Docker를 이용한 배포 등 다양한 기술을 사용해 보았다. 배포 경험과 쿠키와 세션을 이용한 로그인을 구현해 봄으로써 백엔드로서 웹 프로그래밍에 대한 시야가 조금 더 넓어질 수 있었다고 생각한다. 

프로젝트를 진행하면서 가장 중요하게 느낀 점은 무엇보다 소통의 중요성이었다. 백엔드와 프론트엔드 협업을 하면서 상대 프론트엔드 기술에 대한 지식을 내가 가지고 있지 않은 점이 많이 아쉬웠다. 기능 구현 면에서나 오류 해결, 배포를 진행함에 있어서, 프론트엔드에 대한 경험이 없다 보니 소통에서 많은 어려움을 느꼈다. 상대의 기술에 대해 어느 정도 숙지를 해두면 숙지를 하지 않았을 때와 소통이 진행되는 데 있어서 차이가 굉장히 심하다는 것을 느낄 수 있었다.

 

 

3. 수료 후기

교육에서 가장 강조했던 점은 협력과 피드백, 그리고 함께 성장하기였다. 그래서 그런지 매일 오전에 그룹 스크럼을 진행하며 팀원들과 안부를 묻고, 당일에 진행할 계획에 대해서 이야기하는 시간이 있었다. 처음에는 많이 어색하기도 하고 무슨 말을 해야 할지 좀 어려웠지만 시간이 지날수록 자연스럽게 잡담하는 시간이 늘어나고 빠르게 친해질 수 있었던 거 같다. 이외에도 팀원들 혹은 다른 동료들과 소통할 수 있는 시간이 자주 있었는데 이 또한 좋은 경험이었던 거 같다.

그리고 가장 좋은 습관을 가질 수 있던 것은 코드 리뷰 시간이었다. 사실 코드 작성은 재학시절에 코딩 테스트 혹은 알고리즘 공부를 하기 위해 작성할 때를 제외하고는 거의 안 했는데 그러다 보니 다른 사람들에게 보여주기 위한, 다른 사람들이 읽기 쉬운 코드보다는 내가 작성하기 편한 방식으로만 적었다. 하지만 매일 다른 팀원들의 코드를 리뷰해주어야 했고, 팀원들이 내 코드를 리뷰해 주었기 때문에 코드 컨벤션을 신경 쓰고, 가독성이 좋은 코드를 작성하기 위해 노력했다. 또한 다른 팀원들의 코드를 리뷰해 주려면 그 코드를 이해하고 해석할 수 있어야 했는데, 이 점에서 다른 사람 코드 보는 능력이 많이 올라간 거 같다.

하루의 마지막에는 성장 노트를 작성하였는데, 현재 이 글에서도 느껴질지 모르겠지만 나는 글 쓰는 능력이 많이 부족하다. 그래서 그런지 처음에는 무슨 말을 써야 할지, 내가 오늘 뭘 했는지를 정리하는데 많은 어려움을 느꼈다. 하지만 이도 두 달 동안 열심히 적다 보니 처음에 비해서는 수월하게 적을 수 있었다. 팀원들 중에는 교육 과정을 블로그에 정리하는 인원도 있었는데, 나 역시도 늦었지만 부지런하게 내가 공부하는 과정을 블로그에 정리해보고 싶어서 소프티어 부트캠프 수료를 시작으로 꾸준하게 블로그에 글을 작성해보려고 한다.

 

728x90
300x250