수강 목적
개발 공부를 시작하면서 바로 하나의 프로그래밍 언어를 정해 그걸 시작으로 코딩을 배우고 싶지 않았다. 이유는 하나의 웹서비스가 어떻게 개발되는지 진행과정을 전체적으로 먼저 경험해 보고 싶었고 그 경험을 통해 내가 앞으로 공부할 언어나 분야를 정하는 방향성을 잡을 수 있지 않을까 하는 생각도 가지고 있었다. (개인적으로 생각하는 가장 이상적인 그림은 개발하고 싶은 웹서비스가 있고 그것을 완성하기 위해 필요한 개발 지식을 쌓아가는 것이라고 생각하지만 그런 생각을 가지기에도 버거울 만큼 개발에 대해 무지하다는 생각이 들어 최대한 빨리 직접 개발을 경험해 보고 싶었다.)
그렇게 국내에 존재하는 강의나 부트캠프를 찾아보는 와중에 스파르타 코딩클럽에서 진행하는 웹개발 종합반을 알게 되었고 그 중에서도 나는 국비지원을 받으며 5주 분량의 강의가 가장 마음에 들었다. 짧은 수강기간과 함께 국비지원을 받으면 가격도 굉장히 저렴하다는 점도 수강을 결정하는데 큰 이유가 되었다. 하지만 무엇보다 코딩을 이제 시작하는 사람도 수강하는데 무리없게, 또 나만의 웹서비스를 하나 만들어내는 것이 이 강의의 최종 목표라는 말이 가장 나의 마음을 이끌었고 이러한 수강목표라면 내가 추상적으로만 알고있던 개념들을 내가 직접 활용해 볼 수 있진 않을까, 그리고 직접 활용해보면서 앞서 말한 나의 방향성을 잡는데 도움이 될 수 있지 않을까 하는 기대감도 가지며 수강을 시작하게 되었다.
배운 점
# 웹페이지 제작 -> 런칭까지의 과정을 교육
수강 목적과 일치하게 웹페이지를 구성하고 API를 구축해 서버와 클라이언트가 어떻게 요청 및 응답을 하는지 웹 서비스 런칭은 어떻게 하는 건지 등 정말 하나의 전체적인 과정을 직접 경험해 볼 수 있었다. 이렇게 해보니까 API, 크롤링, AWS 등 듣기만 하고 추상적으로만 이해하고 있었던 기술들을 직접 만저보면서 조금 더 명확하게 이해한 느낌을 받았다.(그렇다고 내가 전부를 이해하고 있다고는 생각하지 않는다.)
# 코드를 외우지 마라
절대 모든 코드를 다 외우려고 하지 말라고 알려주신다. 튜터님 본인을 포함해 대부분의 개발자들도 코드를 하나부터 열까지 직접 코딩하지 않고 누군가 만들어놓은 정리되어있는 코드를 가져와 사용한다는 것을 강조하셨다. 그러니 외우는게 아니라 과정과 원리를 이해하는 것이 이 강의에서 배워가실 부분이다 라고 말씀하신다.
사실 이 부분에 대해 굉장히 어색한 감이 많다. 무언가를 배워갈 때 항상 기본적으로 암기를 하려고 노력했던 교육과정을 밟아와서 정답을 안보고도 내가 똑같이 모든 코드를 작성할 줄 알아야만 할 것 같은 생각이 나도 모르게 드는 것 같다. 하지만 이러한 방식은 개발공부에선 적용되지 않는다. 구글이라는 방대한 정보를 담은 책이 있으니 이를 검색하면서 문제를 해결해 나가는 것이 효율적인 방법인 것을 알 수 있었다.
# 하나씩 차근차근 해결해 나가라
문제를 해결할 땐 한번에 해결하려고 하지 말고 하나하나 단계를 나눠서 해결해야 한다. 이건 퀴즈를 풀 때도 숙제를 할 때도 적용되는 말이였다. 예를들어 내가 입력한 데이터가 DB에 저장되길 원한다면 데이터를 바로 DB에 저장시키는 방법
을 찾는 것이 아니라
1
2
3
4
5
서버와 브라우저를 연결
-> 서버에서는 브라우저에서 넘어올 데이터를 받아 DB에 저장
-> 클라이언트는 사용자가 입력한 데이터를 분류해 서버로 전송
-> 서버가 브라우저로부터 받은 데이터를 DB에 잘 저장했다면 완료되었다는 메세지 return
-> return 메세지를 브라우저에서 alert
처럼 여러 과정으로 나눠서 하나하나 코딩을 해 나가는 것을 배울 수 있었다. 이런 마음을 가지고 문제를 해결하다보면 정말로 내가 원하는 기능을 구현해 낼 수 있는 것이 신기할 따름이였다.
잘한 점
# 일단 스스로 해보기, 안되면 구글링, 최후의 보류 해설코드
강의에서는 튜터님이 미리 만들어 놓으신 기본 코드나 링크 API 주소 등을 제공해주신다. 이런 코드나 링크를 활용하면 시간 절약과 중점내용과는 관계없는 부분은 미리미리 제공해주시기 때문에 실습에만 집중할 수 있다.
하지만 그와 더불어 강의자료에는 퀴즈나 실습에 대한 정답코드도 제공해 주신다. 정답과도 같은 코드를 제공해 주시는 것은 실습간 오류가 발생하거나 전혀 감을 잡지 못하겠으면 해설코드를 보고 해보라는 의도라고 생각한다. 하지만 나는 정말 최대한 이 해설코드는 절대 보지 않고 스스로 오류를 해결해보려고 했다. 더 나아가서는 함께 풀어보는 간단한 퀴즈도 강의를 멈추고 혼자서 풀어보고 그 다음 강의를 들어보려고 노력했다.(결국 오류를 잡지 못한 경우는 대부분 오타의 문제ㅠ_ㅠ)
그저 튜터님도 정답을 복붙하라고 주시진 않았겠지만 정답 코드가 있다는 사실만으로 굉장히 큰 유혹(?)이였고 이를 뿌리치고 힘겹게 혼자 해결하려고 한 것이 강의를 모두 수강하고 나서 뿌듯한 맘이 든다😁.
결과물 공유
원페이지 쇼핑몰
AWS와 도메인을 구입해 런칭한 프로젝트는 원페이지 쇼핑몰 하나지만 실습을 한 미니 프로젝트 3개까지 총 4개의 개인 프로젝트를 경험해 볼 수 있다.
소감
한마디로 말하자면 뿌듯함이다.
내가 만든 프로젝트 모두 기능이나 디자인이 매우 단순하고 기초적인 것들이지만 이 강의에 내용들이 모두 녹아있는 결과물이란 생각이 든다.
여기서 내가 단순하고 기초적인 기능만 사용했다고 말하는 것이 문득 뿌듯하다는 생각이 들었다.
이유는 강의를 수강하기 이전에 같은 강의를 들으신 다른 수강생분들의 회고록에도 그 분들이 만든 같은 기능의 웹 페이지를 봤었는데, 그 땐 이 서비스가 내가 만들지 못하는 웹서비스니까 ‘어렵진 않을까’하는 걱정이 먼저 들었다. 하지만 지금은 나도 만들어낸 웹서비스이기에 이 페이지가 어떤 방식으로 작동하는지 그 과정과 원리를 배웠으니 단순하고 기초적인 기능이라고 말 할 수 있는 것이지 않을까 싶다.
누군가가 볼 땐 미비한 성장일 수 있겠지만 이제 개발공부를 시작한 나에겐 꽤 큰 변화라고 생각한다.
향후 목표
# 미니프로젝트에 기능 추가
‘원페이지 쇼핑몰’에 조금 더 디테일한 기능들을 추가해 보면서 강의 내용들을 복습할 계획이다.(예를 들면 조건문을 이용하여 input텍스트 양식을 정한다던지 등)
# 개인 토이프로젝트 제작
개발자가 공부하는 좋은 방법에 대해 여러 블로그를 찾아보면서 어떤 개발자분은 내가 맘편하게 만들고 부술 수 있는 ‘장난감’을 제작해 보는 것이 좋다는 글을 본 적이 있다. 내가 하고 싶은 서비스를 만들기 위해 필요한 기능을 구현해 내는 방법을 스스로 공부하기 때문이다.
이러한 토이 프로젝트를 하는 것이 나에게 큰 도움이 될 수 있겠다는 생각은 진작에 했지만 그럴 용기가 나지 않았던 것 같다. 구글링을 하는 방법조차 어색했고 기본 베이스가 전혀 없었기 때문이지 않을까 싶다. 하지만 이젠 하나의 서비스를 만드는 과정을 배웠으니 하나씩 차근차근 해보기로 결심했다.
# 알고리즘
알고리즘이 개발자에게 중요한 부분 중 하나라는 것은 공부 시작 전부터도 알고 있었고 취업을 위해서라도 코딩테스트 준비는 필수라는 것도 알고 있었다. 다만 개발언어 하나를 어느 정도 알아야만 시작할 수 있는 것이 아닌가라는 오해를 했던 것 같다. 개발언어를 잘 안다면 더 편할 수 있겠지만 이번 강의에서 배운 것은 문법 자체가 중요하지 않다는 점이다. 개인적인 프로젝트와 코딩테스트도 함께 꾸준히 준비할 생각이다.