Experience/2021's Experience

개발자가 되기로 결심했던 2021년에 대한 회고

ikjo 2022. 1. 4. 00:53

 

저는 공기업에서 신재생에너지 관련 업무를 했었고(2018. 1.~2021. 1.) 2021년 3월 9일 개발자가 되기로 했었습니다. 아직 부족한 점이 많지만, 이 글은 지난 2021년 저의 성장 과정을 기록한 글이기도 하며, 지금 이 순간에도 프로그래밍을 막 시작하신 분들께 조금이나마 도움을 드려보고자 작성한 글이기도 합니다. :)

 

 

에너지 공학도에서 개발자로의 진로 전향

저는 전기전자제어공학을 전공하여 학부 시절 제가 희망했었던 진로는 사실 에너지 관련 분야였습니다. 정확히 말하자면 "에너지 신산업" 관련 분야였습니다. 이를 위해 학부 시절에는 주로 전력 계통이나 전기기기에 대해 학습했었고, 에너지 공기업에 취업하여 신재생에너지 업무를 하는 것이 목표였습니다. 학부 시절 부단히 노력했던 끝에 신재생 에너지 업무를 할 수 있는 에너지 공기업에 취업할 수 있었습니다.

 

하지만 회사를 다니면서 1~2년간 진로에 대해 정말 많은 고민을 했었고, 동료들과 직장 선배들과 정말 많은 상담을 했었습니다. 결론적으로 저는 2021년 1월 4일 퇴사 후 약 2개월간 진로에 대한 고민 끝에 개발자로 진로를 전향하기로 결심했습니다. 이에 대한 상세 내용은 아래 별도의 링크를 남겨 보았습니다. :)

 

 

공기업을 퇴사하고 개발자를 준비하게 된 이유

2021년 10월 17일 기술 블로그를 운영하기 시작하면서 처음으로 회고글을 작성하게 되었습니다. 제가 처음으로 작성하기로 한 회고글은 "왜 공기업을 퇴사하고 개발자를 준비하는가?"에 대한 내용

ikjo.tistory.com

 

 

처음으로 배운 프로그래밍 언어, 파이썬

개발자가 되기로 결심한 후 제가 처음 프로그래밍 언어로 배운 것은 파이썬이었습니다. 그래도 대학 학부 시절 C, C++, Atmega128, Arduino UNO 등 프로그래밍한 경험이 없진 않았었기에 어느 정도 자신감을 가지고 유튜브 "나도코딩" 채널을 통해 파이썬을 배우며 프로그래밍 언어를 배우기 시작했습니다.

 

해당 채널을 통해 자료형, 변수, 연산자, 문자열, 자료구조, 조건문, 반복문, 함수, 입출력, 클래스, 예외처리 등 파이썬의 기본 문법을 습득할 수 있었는데 이는 나중에 Java, Javascript 등의 프로그래밍 언어를 배울 때 연관되어 많은 도움이 되었습니다. 아울러, 해당 채널에서는 파이썬의 여러 라이브러리를 통해 게임, GUI 프로그램, 웹 스크래핑, RPA 등을 개발(클론 코딩)할 수 있는데, 이 과정을 수강하면서 파이썬이라는 프로그래밍 언어는 정말 생산성이 높다라는 것을 체감할 수 있었습니다.

 

또한 저는 전 직장에서 겪었던 PDF 문서 작업 시 느꼈던 불편함을 개선하기 위해 해당 과정에서 배우지 않았던 내용들을 추가적으로 학습해서 PDF 편집 프로그램을 별도로 개발해보았고 이를 지인들에게 배포하기도 했습니다. 현재 모두들 해당 프로그램을 통해 현업에서 편리함을 느끼고 있다고 평가해주고 있습니다. :)

 

 

PDF 편집 프로그램 개발을 통해 배운 점(feat. 소스 코드 공개)

해당 글은 PDF 편집 프로그램 개발을 통해 배운 점에 대해 회고한 글입니다 :) 아울러 마지막에 제가 개발한 PDF 편집 프로그램의 소스 코드가 필요하신 분은 아래 하단 제 깃허브 주소를 참고해주

ikjo.tistory.com

 

아무쪼록 유튜브 "나도코딩" 채널은 제가 프로그래밍 언어에 입문하는데 정말 많은 도움이 되었고 학습하는데 있어 많은 흥미를 느낄 수 있게 해준 채널이었습니다.

 

 

나도코딩

코딩, 쉽고 재미있게 "무료"로 배우세요

www.youtube.com

 

 

IT 기본에 대해 알기 위해 했던 노력들

앞서 언급했듯이 대학 학부 시절 프로그래밍을 한 경험이 아에 없는 것은 아니었지만 저 역시 학부 시절 4년 동안 컴퓨터 공학과는 다소 거리가 먼 전기회로, 전자회로, 전력공학 등(사실 컴퓨터를 구성하는 트랜지스터 등은 이러한 이론들을 기반으로 존재하는 것이긴 하지만)의 전력 계통 위주의 과정을 밟아온데다가 3년간 신재생 에너지 업무를 해왔기 때문에 프로그래밍 언어를 학습하기에 앞서 어느 정도는 IT 기본에 대해서 알아야겠다고 생각했습니다.

 

부스트코스 "모두를 위한 컴퓨터 과학(CS50)"

이를 위해 우선 네이버 커넥트 재단에서 운영하는 부스트코스 "모두를 위한 컴퓨터 과학(CS50)"이라는 강의를 수강했었습니다. 해당 강의는 David J. Malan 하버드 컴퓨터 공학 교수의 강의로 진행되는데 우선 2진법과 비트, 바이트, 아스키 코드, 유니코드, 픽셀 등 컴퓨터 과학의 기초 중에 기초 개념에 대해 학습할 수 있었고, 컴파일링, 배열, 알고리즘, 메모리 등에 대한 개념을 학습할 수 있었습니다.

 

가장 인상적이었던 경험은 파이썬으로 프로그래밍할 때는 전혀 고려하지 않았었던 메모리 할당과 반환 작업을 C언어를 통해 실습해 볼 수 있었던 것이었습니다. 아울러, 강의 마지막 챕터에서는 연결리스트를 C언어로 직접 구현해보는 실습도 진행되었는데 이를 통해 자료구조에 대한 이해도를 높일 수 있었습니다.

 

 

C언어로 연결리스트 자료 구조 구현해보기

자료 구조란? 자료 구조는 기존의 컴퓨터 메모리를 보다 더 효율적으로 사용 및 관리하기 위해 새로 정의하는 구조체로서 컴퓨터 메모리에 정보를 각기 다른 방법으로 저장할 수 있도록 해준다.

ikjo.tistory.com

 

티더블유아이지 출판 "비전공자를 위한 이해할 수 있는 IT 지식"

하지만 모두를 위한 컴퓨터 과학은 초심자들에게 설명이 잘 되있는 강의이지만, 컴퓨터 시스템 구조 자체에 초점이 맞춰져 있다보니, 딱딱한 이론 내용들이 비전공자인 저에게는 와닿는 느낌이 적었습니다. 관련 자료를 찾던 중 티더블유아이지에서 출판한 "비전공자를 위한 이해할 수 있는 IT 지식"이라는 책을 발견하고 읽게 되었습니다.

 

이 책은 결론부터 말씀드리면 웹 개발 초심자가 읽기에 정말 적합한 책이었습니다. 특히, "컴퓨터 구성 요소와 운영체제"에 대한 설명은 지금까지 제가 봤었던 어떤 설명보다 가장 쉽게 설명되어 있었습니다.

 

이 책을 통해 느낀 것은 개발을 잘하는 것도 중요하지만 IT에 대해 잘 모르는 사람들도 이해시킬 수 있는 설명력 역시 개발자의 중요한 자질이라는 점을 느낄 수 있었고 향후 개발자과 되어 기획자들과 대화를 함에 있어서도 기술적 고충을 얘기할 때 이처럼 이해하기 쉽도록 설명하는 역량을 키워야할 필요성을 느꼈습니다.

 

비전공자를 위한 이해할 수 있는 IT 지식

 

 

웹 개발에 대한 관심과 시작

유튜브 "생활코딩"

저는 웹 개발을 한국에 있는 모든 개발자들에게 유명한 "생활코딩"을 통해 처음으로 접할 수 있었습니다. 저는 생활코딩의 "웹 n 시리즈"를 수강했었는데 해당 과정을 통해 HTML, CSS, JavaScript의 기본적인 사용법들을 배울 수 있었고, Home Server, DNS, HTTP, DATABASE에 대한 기본적인 개념과 이를 활용하여 PHP 백엔드 서버와 MySQL 데이터베이스를 연동한 웹 서버를 구동해보는 경험을 해볼 수 있었습니다.

 

생활코딩은 초심자들 역시 이해하기 쉽게 설명되 있어 저 역시 생활코딩 채널을 통해서 웹의 기초에 대해 쉽게 배울 수 있었고 이 채널을 통해 웹 개발에 관심을 갖을 수 있었고 지금까지 웹 개발자(백엔드)를 준비할 수 있게 해주었습니다. 생활 코딩, 김영한님의 HTTP 기본 지식 강의 등 제가 웹 개발 관련 지식을 공부해서 정리한 내용은 제 기술블로그 "Web" 카테고리를 통해 확인해 보실 수 있습니다. :)

 

 

'Technology/Web' 카테고리의 글 목록

안녕하세요!! 문제 해결을 즐기는 개발자 ikjo 입니다 🙋‍♂️ 기술뿐만 아니라 역사, 경제, 시사 등에도 관심이 많으며 사회의 다양한 문제들을 해결하는 개발자를 꿈꾸고 있습니다 ✨

ikjo.tistory.com

 

부스트코스 "웹 프로그래밍(풀스택)"

하지만 생활 코딩만으로는 웹 개발을 하기에 부족하다고 생각하여 제가 직접 주도적으로 코드를 설계하고 작성할 수 있는 프로젝트 기반의 과정을 시작하게 되었습니다. 이 과정은 네이버 커넥트 재단에서 운영하는 부스트코스 과정 중 "웹 프로그래밍(풀스택)" 과정이었는데, 프로젝트를 수행하기 전 강사분들께서 기초적인 지식만 설명하신 후 수강생이 혼자 알아서 단계별 프로젝트(자기소개 홈페이지, 투두리스트, 예약관리시스템)를 프론트엔드와 백엔드 모두 처음부터 끝까지 구현해야하는 과정이었습니다.

 

지금 되돌아 보면 사실 이 과정은 초심자가 시작하기에는 어렵다고 생각이 듭니다. 기본적으로 프론트 엔드를 구현하기 위해 HTML, CSS, Vanilla JavaScript(제이쿼리 등 사용 금지)에 대해서 어느 정도 숙련이 되어있어야하고, 백엔드를 구현하기 위해서도 Java, MySQL, Spring에 대한 개념 역시 어느 정도 잡혀있어야 합니다. 처음 자기소개 홈페이지 프로젝트의 경우 큰 무리없이 구현이 가능하나, 상당 수가 두번재 프로젝트 To do list에서 좌절을 느끼는 것으로 알고있습니다.

 

저 역시 To do list를 구현하기 위해 밥도 안 먹고 밤낮을 지새우며 코딩하다가 결국, 위염이 심하게 오고 말았습니다.(사실 위염은 회사 생활할 때도 있었습니다...😂) 아픔을 통해서 겪은 것은 개발자는 단기간에 많은 성과를 내는 것 보다 작은 성과라도 꾸준히 오래 성과 내는 것이 중요하기 때문에 앞으로 개발자가 되어서도 항상 건강 관리를 철저히 해야 할 필요성을 많이 느꼈던 경험이었습니다.

 

또한 프로그래밍이 아무리 실전형 학문이라고는 하지만, 어느 정도 기본기는 갖추어야 할 필요성을 많이 느꼈습니다. 이때 중요한 것은 내가 어떤 기능을 구현함에 있어서 무엇이 필요한지를 알아야 되는 것이었습니다. 내가 무엇이 필요한지만 알아도 구글에 검색하다보면 쉽게 발견할 수 있는 것들이 많기 때문입니다.

 

이를 위해 과감히 진행 중이던 프로젝트를 중단하고 유튜브 드림코딩의 자바스크립트 기초 강의, 유튜브 생활코딩의 자바 기초 강의, 위키북스 출판 "스프링 입문을 위한 자바 객체 지향의 원리와 이해" 등의 관련 언어의 기초를 다지기 시작했습니다.

 

결론적으로 올해가 가기 전에 해당 과정의 꽃인 마지막 프로젝트 "예약관리시스템(상품 정보 조회, 상품 예약, 상품 한줄평 쓰기 등의 기능)"까지 모두 구현해냈고 네이버, 카카오 등 현직자들의 평가 및 코드 리뷰 그리고 지속적인 리팩토링 작업과 함께 본 과정을 마무리할 수 있었습니다. 저는 이 과정을 통해 정말 많은 것을 배웠기 때문에 이 과정에 대한 상세한 회고를 다음과 같이 별도의 다음 링크로 남기겠습니다. :)

 

 

부스트코스 웹 프로그래밍(풀스택) 과정을 마치며...

해당 글은 네이버 커넥트 재단에서 운영하는 부스트코스 과정 중 "웹 프로그래밍(풀스택)"을 마치며 이 과정을 통해 얻을 수 있었던 경험에 대해 작성한 회고 글입니다 :) 1. 과정 시작 동기 및 간

ikjo.tistory.com

 

참고로 저는 이 과정을 통해 웹에서 사용자에게 보여지는 UI를 구현하는 것 보다는 서버와 서버간 주고받는 API를 설계하고 구현하는 것이 더 흥미로워 백엔드 개발자가 되고 싶었습니다. 백엔드는 클라이언트나 데이터베이스로부터 데이터를 얻어와 이를 처리하는 등 서버 내부 로직을 프로그래밍하는 경우가 많이 있는데, 이러한 서버 내부 로직을 프로그래밍하는 것이 보여지는 것을 프로그래밍하는 것 보다 좀 더 흥미롭게 느껴지는 경우가 많았습니다.

 

 

프로그래밍의 기초 체력 증진

부스트코스 웹 프로그래밍(풀스택) 과정을 진행하는데, 자바 웹 프레임워크 Spring을 하기에 앞서 무엇보다 자바 프로그래밍에 대한 기초 학습이 부족하다는 느낌을 많이 받았었습니다. 이에 잠시 진행 중인 프로젝트를 중단하고 자바 프로그래밍 기초 학습을 하기로 했습니다.

 

자바 프로그래밍 기초 학습

이때 자바의 객체 지향 프로그래밍을 이해하는데 도움을 많이 받았던 책은 위키북스 출판의 "스프링 입문을 위한 자바 객체 지향의 원리와 이해"라는 책이었습니다. 특히, 이 책의 "자바가 확장한 객체 지향 파트"와 "객체 지향의 4대 특성" 부분은 지금도 한번씩 보고있습니다.

 

스프링 입문을 위한 자바 객체 지향의 원리와 이해

 

알고리즘 역량 키우기 : 코드업

하지만 프로그래밍은 역시 실전인 만큼 알고리즘 테스트를 통해 자바 프로그래밍을 학습하고자 했습니다. 제가 처음 알고리즘 테스트를 풀기 위해 이용했던 알고리즘 트레이닝 사이트는 "코드업"이었습니다. 코드업은 초심자가 풀기에 좋은 기초 문제들이 많았고 이 문제들을 통해 자바 기초를 학습하기 매우 수월했습니다. 특히 기초 100제, 기초1 출력문 ~ 기초 6 함수 문제는 프로그래밍 기초 학습을 원하시는 분들이라면 풀어보기를 강력 추천드립니다.

 

하지만 간혹 정답율 10%대의 문제들이 있습니다. 그 중 "Java 언어"로 풀기 가장 어려웠던 문제로 "기억력 테스트 2"라는 문제가 있는데 해당 문제 하나를 풀기 위해 2~3일 정도 소요되었습니다.. 이 문제에 대한 풀이 회고는 별도로 남기고 싶어 다음 링크로 남겼습니다. :)

 

 

[코드업 - 1430] 기억력 테스트2 - Java

문제 설명 문제 주현이 엄마는 주현이를 영재로 키우기 위해 매일 혹독한 기억력 테스트를 하고 있다. N개의 숫자를 먼저 말해주고, M개의 질문을 하면서 그 숫자가 있었는지 없었는지 테스트한

ikjo.tistory.com

 

결과적으로 코드업에서는 현재 총 543문제를 풀었으며 500위대 정도의 순위를 간신히 유지하고 있습니다..😂 코드업에서 풀었던 문제들 덕에 Java 프로그래밍에 대해 자신감을 키울 수 있었습니다.

 

코드업 문제 풀이 통계

 

알고리즘 역량 키우기 : 프로그래머스

그 다음 이용했던 알고리즘 트레이닝 사이트는 "프로그래머스"였습니다. 프로그래머스 문제의 경우 특이한 점은 해당 문제를 풀고나면 다른 사람들의 모범 코드를 볼 수 있다는 점입니다. 이때 문제를 다 풀었다고 해서 바로 다음 문제로 넘가가지 않고 순위별로 1~2개 정도의 모범 코드를 확인해보며 나의 로직의 부족한 점을 확인해보고 새로운 접근 방법을 배울 수 있었습니다. 아울러 불필요한 로직을 줄이는 연습도 많이 되었습니다.

 

프로그래머스는 Level 1부터 Level 5로 구성되는데 현재 저는 Level 1 문제는 모두 풀었고, Level 2 문제는 아직 진행 중에 있습니다. 또한 프로그래머스에서는 SQL 문제도 제공해주는데 개인적으로 프로그래밍 언어에 비하면 쉽게 느껴졌습니다. SQL 문제는 총 29문제로 구성되어 있는데 부스트코스 웹 프로그래밍(풀스택)에서 MySQL을 사용했었던 경험 덕에 모두 금방 풀 수 있었던 것 같습니다.

 

프로그래머스 문제 풀이 현황

 

생애 첫 코딩테스트

프로그래머스 문제를 푸는 중 마침 프로그래머스에서 "2021 Dev-Matching: 웹 백엔드 개발자(하반기)_진짜마지막" 챌린지 공고를 확인했는데, 이는 프로그래머스에서 작성한 이력서 한 장으로 다양한 기업에 동시 지원할 수 있는 채용 프로그램이었습니다. 하지만 앞서 알고리즘 테스트가 진행되는데 다음 안내문에 문구가 마음에 걸렸습니다. 비록 Level 1의 문제를 모두 푼 상태이긴 했으나 아직 Level 2 문제를 진행 중인 상태였고, Level 1 문제들 중에서도 몇몇 문제는 고심해서 풀었기 때문입니다.

 

2021 Dev-Matching: 웹 백엔드 개발자(하반기)_진짜마지막 테스트 상세 안내

 

더욱이 아직 제가 취업을 할 수 있는 수준이 아니라고 생각했지만 현재 나의 알고리즘 테스트 풀이 역량을 측정해보고 싶었고 이후 실제 취업 준비 시 어려운 알고리즘 테스트 문제에 대비해 경험을 쌓고 싶었기에 해당 챌린지에 원서를 접수 했습니다.

 

문제는 프로그래밍 3문제, SQL 1문제로 총 4문제 였고, 시험 시간은 2시간, 화상카메라로 시험을 감독하는 형식이었습니다. 시험 결과 저는 총 4문제 중 2.55문제(프로그래밍 1.55문제, SQL 1문제)를 풀었습니다. 이때 0.55점을 맞았던 문제의 경우 시험이 끝나고 5분 정도 다시 고민해보니 완전히 풀렸기에 아쉬움이 컸습니다.

 

하지만 정말 운이 좋게도 "2021 Dev-Matching: 웹 백엔드 개발자(하반기)_진짜마지막" 챌린지 코딩테스트에 합격할 수있었습니다. 비록 짧은 시간이었지만 지난 1~2개월간 틈틈이 프로그래밍 기초를 학습하면서 차근차근 문제를 풀어나간 덕분이라고 생각합니다. 아울러 "답이 보이지 않는 상황 속에서라도 포기하지만 않으면 해답은 있다."라는 경험을 배울 수 있었습니다.

 

 

자바 프로그래밍 기초 학습을 통해 이룬 성과

결론적으로 약 1~2개월간의 자바 기초 학습과 코드업, 프로그래머스 등 알고리즘 문제 풀이 연습을 통해서 자바 프로그래밍 역량이 이전 보다 훨씬 성장한 것을 느낄 수 있었습니다. 사실 웹 개발하는 것과 알고리즘 테스트를 푸는 것은 약간 다르다고들 현직 개발자분들께서 자주 얘기하시지만 저는 적어도 알고리즘 테스트를 공부를 통해서 논리적 사고력을 이전 보다 기를 수 있었고 프로그래밍 역량도 이전보다 훨씬 성장했다는 것을 느낄 수 있었습니다. 또한 웹 프로그래밍(풀스택) 프로젝트를 다시 시작하며 코드 리뷰를 평가해주시는 코드 리뷰어로부터도 이전 보다 좋은 평가도 받을 수 있었습니다.

 

 

 

성장을 위한 밑거름 : 기술 블로그, 깃허브

개발 공부를 해오면서 제가 아차했었던 것은 매번 학습하기 급급해 기술블로그, 깃허브 등에 학습했던 것들을 기록하지 않았었던 점이었습니다. 부리나케 기술 블로그와 깃허브에 자료들을 기록하고자 했지만, 이는 당장 해결되는 문제가 아니었습니다. 이때를 계기로 작은 일이라도 꾸준히 하는 것의 중요성을 느낄 수 있었습니다.

 

또한 단지 글의 개수를 채우기 위함이 아닌 제 스스로가 성장하기 위한 양질의 콘텐츠를 작성해야 할 필요성을 느꼈습니다. 예전에는 개발 공부만 하는 것도 벅찬 일이기에 처음에는 기술 블로그를 운영하는 것이 시간 낭비라고 생각했었지만 누군가가 내 블로그를 볼 수도 있다는 생각을 가지다 보니 제가 평상시에 알고 있다고 생각했던 특정 기술이나 알고리즘에 대한 내용을 자세하게 적게 되었는데, 오히려 그 과정에서 제가 미처 알지 못했던 부분들이 정말 많았던 것을 발견할 수 있었습니다. 아울러 기술 블로그에 상세히 적다 보면 복잡한 내용도 머리속에 잘 정리정돈되는 효과가 있었습니다.

 

저는 2021년 10월 17일부터 지금까지 기술 블로그를 꾸준히 운영해오고있습니다. 아직 조회수는 현저히 낮지만 앞으로 기술 블로그에 다양한 기술, 알고리즘, 회고 등에 대한 콘텐츠를 꾸준히 작성함으로써 현재의 기술 블로그를 좀 더 크게 키우고 싶은 욕심이 있습니다. 깃허브 역시 좀 늦게 시작했지만 2021년 12월 1일부터 지금까지 꾸준히 활성화 시키는 중입니다. 앞서 개발했었던 PDF 편집 프로그램 역시 오픈 소스로 현재 제 깃허브 저장소에 게재되있는 상태입니다. :)

 
 

한 단계 더 성장하기 위해 선택한 것 : 부트캠프

프로그래밍 언어 학습, IT 관련 지식 학습, 웹 애플리케이션 개발 등 그동안 독학을 해오면서 아쉬웠던 점은 누군가와 문제를 해결하기 위해 협업하거나 특정 문제에 대해 토론과 의견을 주고받는 게 제한적인 점이었습니다. 또한 팀원들과 시너지 효과를 내며 한 단계 더 성장하고 싶었기에 저는 2022년도 부트캠프를 준비하기 시작했습니다.

 

지원 과정부터 참교육을 받았던 우아한 테크코스

저는 자바 프로그래밍을 중점적으로 하는 부트캠프에 가고싶었기 때문에 "우아한 테크코스"와 "코드 스쿼드"에 지원하고자 했습니다. 먼저 우아한 테크코스에 지원했었는데, 결과는 1차 탈락이었습니다.(서류+온라인 코딩 테스트 평가)

 

온라인 코딩 테스트는 전체 7문제 중 5문제를 풀었는데, 온라인 코딩 테스트는 일정 점수를 넘으면 만점 처리가 되기 때문에 개인적으로는 서류 평가에서 탈락했을 것으로 추정됩니다. 다음 글은 지금 생각해보면 정말 부끄러운(흑역사) 당시 우아한 테크코스에 제출했었던 제 자기소개서 문항 중 일부 내용입니다.

 

Q. 우아한테크코스는 프로그래밍에 대한 기본 지식과 경험을 가진 교육생을 선발하기 때문에 프로그래밍 경험이 있는 상태에서 지원하게 됩니다. 프로그래밍 학습을 어떤 계기로 시작했으며, 어떻게 학습해왔는지, 이를 통해 현재 어느 정도의 역량을 보유한 상태인지를 구체적으로 작성해 주세요.

 

A. (...) 현재 웹 백엔드의 주요 역량으로는 Java, Spring, MySQL을 다룰 수 있으며 다음 기술 요구사항들을 충족시킬 수 있습니다. 첫째, Maven 기반 Spring JDBCWeb MVC 모듈을 이용하여 MySQL를 연동시킨 레이어드 아키텍쳐 웹을 개발할 수 있습니다. 둘째, RestController 활용 용도에 맞는 Web API를 개발할 수 있습니다. (...) 또한 웹 프론트엔드의 주요 역량으로는 HTML, CSS, Vanilla JavaScript를 다룰 수 있으며 특히 Vanilla JavaScript를 통해 다음 기술 요구사항들을 충족시킬 수 있습니다. 첫째, XMLHTTPRequest를 통한 Ajax 요청을 통해 (...)

 

당시 제출했을 때는 생각 못했지만 지금 생각해보면 제가 평가자였어도 이 지원자는 바로 탈락시켰을 것 같습니다. 제 글에는 학습을 해왔었던 과정이 없고 결과 나열 중심에 피상적으로 특정 기술에 대해서 다룰 수 있다(이조차 검증하기 어려움)고만 되있었기 때문입니다. 평가자 입장에서는 지원자의 글만 보고 평가해야되기 때문에 그 글을 보고 최소한 "공감"을 느낄 수 있어야 하는데, 당시 제 자기소개서는 어떠한 공감도 느낄 수 없었고, 오히려 불신만 불러오게 만드는 것이었습니다.

 

다음은 우아한 테크코스 박재성님으로부터 받은 피드백 중 일부 내용인데, 보고 정말 많은 생각이 들었습니다.

 

(...) 학습 과정의 경우 어떤 내용을 학습했다는 결과 위주의 내용이 아니라 어떤 내용을 학습하는데 어떤 어려움이 있었는데 어떻게 극복했다와 같이 구체적인 사례를 들어야 공감을 얻을 수 있거든요. 자기소개서에서 얻고 싶은 가장 큰 부분은 여러분이 생각에만 그치지 않고 행동으로 얼마나 실행했는지를 보고 싶은 것이라 생각합니다. 누구나 생각은 할 수 있지만 이를 실행으로 옮겨 일정 수준의 성취를 만들기는 쉽지 않다고 생각해요. 작은 성취라도 만들어 가는 과정에서의 깨달음들을 보여준다면 여러분의 합격률이 조금은 더 높아지리라 생각해요. (...)

 

지난 우아한 테크코스 지원을 통해 저는 개발자는 프로그래밍 능력도 중요하지만 글을 쓰는 능력도 중요하다는 것을 배울 수 있었습니다. 이 경험으로 저는 그동안 작성했었던 글들에 대해 되돌아봄으로써 노력과 성취 그리고 깨달음 등의 과정이 잘 표현되도록 글을 작성하는 안목을 배울 수 있었습니다.

 

나의 첫 부트캠프, 코드스쿼드

이후 코드스쿼드에 지원했을 때는 1차 평가로 Sokoban 게임을 구현하는 과제가 주어졌는데, 최대한 기존 코드를 재사용하고 기능별로 분리하여 코드를 작성하는 등 최대한 객체지향적으로 프로그래밍하고자 노력했습니다.  이에 대한 풀이 과정과 코드 설명 등은 아래 제 깃허브 링크를 통해 확인해볼 수 있습니다. :)

 

 

GitHub - ikjo93/Sokoban-Game: Sokoban-Game using Java

Sokoban-Game using Java. Contribute to ikjo93/Sokoban-Game development by creating an account on GitHub.

github.com

 

1차 평가는 다행히 합격할 수 있었고 2차 평가 면접에 앞서 설문지를 작성해야했습니다. 이때 단순히 그동안 학습했었던 내용들을 나열하기 보다는 학습이나 프로젝트를 진행하면서 했었던 노력들과 성취 그리고 깨달음 등 학습 과정이 최대한 잘 표현되도록 작성했습니다.

이때 이전의 경험 덕분에 훨씬 더 나은 글을 작성할 수 있었습니다. 2차 평가는 30분간 Java 웹 백엔드 과정의 마스터 호눅스와의 다대일 면접으로 진행되었고 2차 평가 역시 다행히 합격할 수 있었고 최종적으로 코드스쿼드 2022 마스터즈 코스 Java 웹 백엔드 과정에 합류할 수 있었습니다.

 

Java 웹 백엔드 클래스 마스터 호눅스의 합격 안내 메일

 

 

최근 근황 및 2022년 계획

2021년을 마무리한 저는 현재 코드스쿼드 2022 마스터즈 코스 Java 웹 백엔드 과정 중에 있습니다. 여기에 와보니 저보다 훨씬 훌륭하신 분들이 너무 많아 위축도 되는 반면 자극도 많이 되고 있습니다. 그동안 어떻게 보면 독학하며 나름 편한 환경에서만 공부해왔었는데, 오히려 코드스쿼드라는 각박한(?) 환경 속에서 2021년 보다 더 성장할 자신을 기대하고 있습니다.

 

2022년에 꼭 이루고 싶은 것은 우선 코드스쿼드 2022 마스터즈 코스 Java 웹 백엔드 과정을 무사히 수료하는 것입니다. 현재는 CS10 과정 중에 있는데, 앞으로 있을 과제들의 난이도가 심상치 않아 보입니다. 또한 해당 과정 중에도 꾸준히 기술 블로그에 글을 올려 지금 보다 더욱 활성화된 기술 블로그를 만들어 보고 싶습니다.

 

아울러 그동안 웹 개발을 할 때 주로 프로토타입 형식의 웹만 개발했었는데 이 과정을 통해 웹 개발 역량을 충분히 기른 후 실제 웹 서비스를 구현하고 직접 운영도 해보는 것입니다. "인생은 실전이다."라는 격언(?)이 있는 것처럼 웹 서비스 역시 구현하는 게 끝이 아니라 운영할 때부터 시작이라고 생각합니다.

 

그리고 2022년에는 백엔드 개발자로 취업하는 것이 목표입니다. 하지만 취업에 급급하여 기초를 다지는데 소홀히 하지는 않을 계획입니다.

 

이외에도 프로그래머스 레벨 3까지 알고리즘 문제 다 풀기, 인프런 김영한님의 스프링 강의 완강하기, 자바의 정석 정독하기 등이 있는데 마지막으로 2021년은 위염으로 2개월간 휴식을 취했었던 만큼 2022년은 건강에 탈 없이 개발 학습에 전진할 수 있도록 건강 관리를 철저히 하는 것입니다.

 

 

 

제 2021년에 대한 회고 글은 여기까지 입니다!

 

글을 다 쓰고나니 이제야 2021년이 다 끝난 것 같습니다. 😂

 

이 글을 보시는 분들 모두 2022년도 목표하시는 일 다 이루어지셨으면 좋겠습니다. :))

 

긴 글 읽어주셔서 진심으로 감사드립니다.