이것저것/부트캠프

부트캠프 지원 후기를 모아보자

긱북이 2024. 3. 23. 15:15

언제나 조져지는 건 나였다

 

부트캠프를 지원하는 것만큼 마음 편하게 자기소개서, 코딩테스트, 면접 등의 취업 과정을 체험해볼 수 있는 좋은 기회가 없는 것 같다.

하지만 부트캠프를 수강하고 있는 지금, 개인이 얼마나 열심히 하느냐에 따라 천차만별이겠지만 나와는 잘 맞지 않다고 느꼈다.

블로그에 그동안 지원했던 부트캠프에 대한 후기를 작성하며 그 이유에 대해 생각해보려고 한다.

 

 

[TECH!T] 백엔드 스쿨 7기

 

 

자기소개서를 제출한 후 TECH!T 백엔드 스쿨 7기 최종 합격 여부가 공지되었다.

선발 과정이 자기소개서 뿐이라 솔직히 기대는 하지 않았는데 결과는 합격이었다.

 

그러나 백엔드 스쿨은 평일 매 9시부터 6시까지 진행되는 실시간 온라인 수업이기 때문에, 재학 중인 나에게는 무리인 스케줄이었다.

부트캠프에 신청서를 넣어본 이유도 부담 없이 자기소개서를 작성해보는 경험을 갖기 위해서였다.

 

사실 마음에 걸리는 큰 이유는 따로 있었다.

K-Digital Traning(KDT)은 내일배움카드로 단 한 번밖에 지원되지 않기 때문이다.

부트캠프를 찾아보면서 들어가고 싶은 프로그램이 많았기 때문에 전화로 합격 포기 사실을 알렸다.

 

 

자기소개서 문항

 

1. KDT 백엔드 스쿨에 어떤 이유로 지원을 하셨나요? 또한 백엔드 개발자가 되기로 결심한 이유에 대해 기술해 주세요.

여러 분야의 프로젝트와 활동에 도전한 경험과 백엔드 개발이 내 적성에 맞는 이유, 백엔드 개발에 흥미를 느끼게 된 계기 등을 작성하였다. 나의 경우 백엔드 개발은 보이지 않는 부분에서 사용자의 요청을 처리하고 성능 최적화에 중점을 두기 때문에 외부 요인에 방해받지 않고 집중력 있게 작업할 수 있다는 점이 마음에 들었다. 문항에 ‘왜 멋사인가?’라는 설명이 있었는데 실무와 유사한 교육 과정, 시간을 효율적으로 이용할 수 있는 온라인 교육, 다양한 사람들과의 협업 경험 등이 마음에 들어서 지원하게 되었다. 이 부분은 지원 기간에 진행되는 사전 설명회에서 테킷 백엔드 스쿨에 대한 설명을 듣고 작성하는 것을 추천한다.

 

2. 프로그래밍 학습 과정과 현재 자신이 생각하는 프로그래밍 역량에 대해 기술해 주세요.

대학 전공에서부터 다양한 프로젝트와 소통 경험, 개인적으로 진행하고 있는 공부 등에 대해 작성하였다. 현재 프로그래밍 역량에 대해서는 솔직하게 작성하였다. 더하여 학습 과정을 통해 어떤 능력을 키웠고 어떤 성향을 가지고 있는지에 대해서도 작성하였다.

 

3. 6개월 간의 백엔드 스쿨을 통해 이루고자 하는 목표가 무엇인지 구체적으로 서술해 주세요.

현재 나에게 부족한 점과 이 부족한 점을 백엔드 스쿨이 어떻게 채워줄 수 있을지에 대해 작성하였다. 평소에 생각했던 ‘내가 원하는 개발자상’에 대해서도 작성하였다. 나의 경우 어려움을 겪을 때마다 회고 과정을 통해 되돌아보고, 꾸준한 기록을 통해 끈기 있게 성과를 이루어 내는 개발자가 되고자 한다.

 

 

 

[우아한테크코스] 우테코 6기

 

 

우아한테크코스를 작년부터 알고 있었다.

그 당시 나는 코딩테스트 없이 서류만 제출하고 프리코스 과정을 체험해보겠다는 생각으로 검토도 제대로 하지 않은 빈약한 내용의 지원서를 제출했다.

 

프리코스가 시작되었고 깃허브 Fork 기능조차 몰라 처음부터 어려움을 겪었다.

결국 학교 시험 일정과 겹치며 흐지부지 과제 제출도 못 하고 끝내버렸던 기억이 있다.

 

 

자기소개서 문항

 

1. 효과적인 학습 방식과 경험

캡스톤 프로젝트를 진행하며 찾아낸 ‘핵심을 빠르게 파악하고 경험을 통해 기술의 사용법을 우선 습득하는’ 야생형의 학습 방법에 대해 작성하였다. 이론에 매달리기보다 먼저 프로젝트를 진행하고 모르는 부분이 생긴다면 자세히 조사하는 것이 나에게는 효과적이었다.

 

2. 성장 중 겪은 실패와 극복

동기들과의 팀 프로젝트에서 1차 개발 마무리 후 2차 개발 과정에서 학업 및 다른 프로젝트로 인해 참여가 어렵게 되어 급하게 마무리지은 경험에 대해 작성했다. 상세한 계획 수립의 중요성을 깨달아, 다음 프로젝트부터는 개발 로드맵을 작성해 진행을 효율적으로 관리할 수 있었다.

 

3. 오랜 시간 몰입했던 경험 그리고 도전

가장 어려웠던 문항이었다. 제대로 된 취미도, 오래 몰입할 만큼 좋아했던 일도 없이 살아왔기 때문이다. 개발과 관련된 이야기는 다른 문항에서 모두 이야기해버렸기 때문에 쓰기 싫었다. 그러다가 문득 2학년 내내 활동했던 배드민턴 동아리가 떠올라 그걸 소재로 적기로 했다. 제대로 된 대회 하나 나가본 적 없는 소소한 취미 동아리였지만 몸과 마음 모두의 건강팀원과의 협력도전과 자기성장 등 다양한 키워드가 나와 만족스러웠다. 만약 내년에도 지원하게 된다면 그 때는 블로그와 1일 1커밋을 소재로 삼을 수 있었으면 좋겠다.

 

4. 원하는 프로그래머 모습

저번 자기소개서에서도 작성했던 문항이라 쉽게 작성하였다. 여러 분야의 프로젝트에 적극적으로 도전하는 열정, 매일 발전하기 위한 체계적인 기록, 되고 싶은 개발자 모습을 그린 로드맵을 키워드로 작성하였다.

 

 

구현하면서 느낀 점 (1주차)

 

  • 클린코드 규칙
  1. 한 함수에 최소한의 들여쓰기 허용 (한 기능만 맡도록 함수 분리)
  2. else 예약어 사용하지 않기. 조건 없이 모든 경우를 열어주는 코드 지양
  3. 3개 이상의 인스턴스 변수를 가진 클래스 구현하지 않기
  4. 메소드의 인자 수를 3개 이하로 제한하기
  5. 메서드가 한 가지 일만 담당하도록 구현

 

게임의 핵심 요소와 과정을 중심으로 readme 문서를 작성했다. 게임 진행에 필요한 요소들을 클래스로 먼저 정리하고 그 안의 메소드들을 추가하면서 구현 과정에서 계속 수정해나갔다. 처음에는 막막했지만 구현 목록을 작성하니 점점 다음에는 어떤 기능을 구현해야 하는지 알 수 있었고, 기능 별로 커밋하기에도 유용했다.

 

기능 구현 후에 클린 코드 원칙을 지키기 위해 리펙토링했다. 각 함수에서는 최소한의 들여쓰기만 허용했으며, else 예약어의 사용을 피하고, 메소드가 한 가지 일만 처리하도록 구현했다.

 

볼의 개수가 누적되는 문제가 있었다. 이는 컴퓨터와 사용자의 숫자 리스트를 초기화하는 코드인 .clear() 로 해결했다. 누적되는 원인은 사용자의 숫자 목록에 계속 추가되는 것이었다. 그 외에도 기본적인 기능 구현 후 예외로 처리한 결과가 계속 나타나는 문제가 있었다. 알고 보니 부등호의 사용 오류 때문이었다.
이를 통해 코딩에서 단순한 오류가 큰 문제를 일으킬 수 있으며, 잠시 기분 전환을 하거나 단순하게 생각해 보는 것이 중요하다는 것을 깨달았다.

 

하드코딩 대신 숫자를 상수화하고, 이해하기 쉬운 변수와 함수명에 대해 고민해야겠다.

또한, 테스트 코드 작성법에 대해서도 공부할 예정이다.

 

구현하면서 느낀 점 (2주차)

 

1주차에서는 객체지향과 디자인 패턴을 전혀 적용하지 않고 ‘작동만 되는 스파게티 코드’로 작성하였다. 그러나 이번 2주차 과제부터는 자바의 객체지향과 MVC 패턴을 공부하여 코드를 작성해보려고 한다.

 

MVC 패턴 적용이 처음이기 때문에, 처음에는 우선 작동되는 코드로 빠르게 프로그램을 작성한 다음 리펙토링하는 방식으로 진행하였다.

MVC 패턴을 적용하니 패키지 없이 파일만 있던 1주차 과제보다 훨씬 체계적으로 클래스를 나눌 수 있게 되었다. 게다가 Model 패키지 내용을 작성하다 보니 객체지향적인 코드를 짤 수 있게 되었다. 패키지가 독립적이고 각자 맡은 역할만 수행하다 보니 코드를 이해하기 쉬웠고 리펙토링하기도 편했다.

 

코드 리펙토링 과정에서 메서드가  가지 일만 하도록 나누고, 상수와 문자열을 모두 static final 선언하여 상수화했다. 예외 처리 코드를 작성하고 기능 테스트 코드를 생성하였다.

 

 

 

[엘리스트랙] Cloud 트랙 2기

 

 

 

컴퓨터공학과 3학년이지만 학교 커리큘럼만으로는 큰 부족함을 느꼈다. 프로젝트와 스터디를 병행하면 되지만 혼자서는 어려움이 많았다.

 

학교와 병행이 가능하고, 실시간 강의가 매일 있는 것이 아니며 오프라인으로 만날 공간이 있는 부트캠프가 있으면 좋겠다고 생각했는데 엘리스트랙이 조건에 딱 맞아 지원하게 되었다.

1기는 한달 전에 있었는데, 기간이 애매하여 딱 12월~6월에 진행하는 2기로 지원하였다.

 

 

자기소개서 문항

 

1. 엘리스트랙 지원 전까지 해본 학습 및 개발 경험

컴퓨터공학과 재학생이며, 유니티, AWS, 안드로이드, 데스크톱 앱 프로젝트를 경험했다.

 

2. 개발 학습에 투입한 기간 (“개월” 단위)

학년 개월 수로 적었다.

 

3. 지원 동기

개발자와 백엔드에 대해 관심을 갖게 된 동기와 벡엔드 개발의 매력적인 점, 엘리스 백엔드 트랙의 장점을 종합하였다.

 

4. 엘리스 트랙 수강 기간 동안의 학습 목표와 이를 통한 취업 계획

개발 관련하여 나에게 부족한 점과 이를 극복하기 위한 학습 계획, 내년과 졸업 후 계획을 작성하였다.

 

5. 개발 학습 노력을 통해서 성장 및 성취한 경험

Kotlin Multiplatform으로 개발한 데스크톱 앱 개발 프로젝트에 대해 작성하였다. 사용한 기술이 너무 최신 기술이어서 자료가 없었다는 것을 어려움으로 들며 문제 해결의 능동적인 태도를 강조하였다. 성취한 점을 구체적으로 작성하고 프로젝트를 통해 배운 점을 작성하였다.

 

6. 지원자의 각오 및 열정을 보여줄 수 있는 이야기 또는 자료의 링크를 제출해 주세요. (예시: Github, 개발 블로그 URL 등)

블로그와 GitHub 링크를 제출했다.

 

 

프리트랙

 

역량테스트에 대비할 수 있도록 논리력 문제, 컴퓨터 사이언스, JAVA 기초 강의로 이루어져 있다. 자체 플랫폼에서 강의와 실습, 채점까지 편하게 진행되었다.

역량 테스트까지 일주일 정도 남은 상태로 서류를 접수했기 때문에 일주일간 프리트랙을 수강하였다. 컴퓨터구조와 컴퓨터네트워크 과목에서 배운 CS 기초 지식과 조건문 & 반복문까지의 JAVA 강의가 준비되어 있었는데 전공 과목 복습이 되어 좋았다. 논리력 문제는 GSAT와 비슷한 문제로 이루어져 있었는데, 계산 문제가 조금 어려웠다.

기간 내에 틈틈이 프리트랙을 수강하여 역량 테스트 전에 모두 이수하였다.

 

 

역량 테스트

 

하루의 시간이 주어지고 원하는 시간에 논리력 문제와 코딩테스트 두 시험을 응시하면 되는 형식이었다. 마찬가지로 자체 플랫폼으로 시험이 진행되고 코딩테스트의 테스트케이스 검증도 알아서 해 준다.

코딩테스트는 5문제중에 3문제밖에 풀지 못 했다. 평소에 코딩테스트 공부를 잘 안 했기 때문에 메소드가 생각나지 않았다. 논리럭 테스트는 생각보다 시간이 많이 부족했다. 프리트랙에서 학습한 CS 지식도 문제에 나오므로 프리트랙을 정말 열심히 수강했다면 좋았을 것 같다.

원래 목표는 면접을 보지 않는 프리패스였는데, 역량 테스트를 보고 면접을 준비해야겠다고 생각했다

 

 

비대면 인터뷰

 

결과가 발표되고 이틀 후 있을 비대면 인터뷰의 시간을 정하기 위해 선착순으로 원하는 시간을 선택할 수 있었다.

진행 방식은 1:1 인터뷰로 시간은 10분이었다.

 

생각나는 질문은 다음과 같다.

  • 지원 동기
  • 내가 팀장이라고 가정했을 때, 팀플 시 잘 안 따라오는 사람과 못 따라오는 사람이 있다면?
  • 프로젝트 진행 중에 문제가 생긴 경험
  • 전공자인데, 교육 초반에 쉬운 내용으로 진행될텐데 괜찮은지
  • 학교와의 병행 계획은 어떤지
  • 출석, 성실함에 자신이 있는지
  • 교육 이수 후 취업 계획 (미래의 모습)
  • 궁금한 점

짧은 시간에 생각보다 많은 질문이 쏟아져서 당황했지만, 예상 질문들에 대한 답변을 모두 미리 준비해 두었기 때문에 수월하게 대답할 있었다. 졸업반이 아닌 재학생이지만 학점을 미리 채워 두었기 때문에 내년에 최소학점만 들으며 병행이 가능하고, 이러한 근거를 들어 성실함에 자신이 있다고 답하였더니 좋게 주신 같다.

궁금한 점은 실시간으로 이루어지는 강의가 무슨 요일인지 여쭈어보았다.