[스코클][회고] 비개발자를 위한 웹개발 종합반
소프트웨어 엔지니어, 웹 개발자가 되기 위한 본격적인 훈련에 앞서서 1) 내가 재밌게 할 수 있을지, 2) 내가 잘 할 수 있을지에 대해 탐구해 보기 위해 스파르타코딩클럽에서 제공하는 "비개발자를 위한 웹개발 종합반"이라는 수업을 듣게 되었다. 수업을 듣고 난 후에 돌이켜보자면, 들어보기 잘했다는 생각이 든다.
먼저 이 수업을 통해 몇가지 사실/의견을 알게/가지게 되었다. 다만, 이것은 웹개발에 국한된 내용은 아닌 것 같다. 그럼에도 불구하고 아래에 웹개발은~ 이라고 적은 것은 내가 웹개발만 맛봤기 때문이다.
느낀점
1. 웹개발은 쉽지 않다: 나같이 해당 지식이 전무한 사람에게는 특히 더 그렇다. 생각체계(?, thought process), 언어, 도구 등이 모두 일상의 그것과는 전혀 다르기 때문이다.
2. 웹개발은 익숙해져야 한다: 많은 사람이 웹개발을 자전거타기, 운전 등에 비유하는데, 이는 공부 보다는 연습이 더 필요한 과정이기 때문인 것 같다.
3. 웹개발은 이론 공부도 필요하다: 한편, 나는 웹개발의 (program language) 이론적인 공부도 어느정도는 필요하다는 생각이 든다. 성인 학습자로서 외국어를 배울 때 연습 뿐만 아니라 언어의 규칙, 문화적 배경, 맥락 등이 중요한데, program 'language'도 비슷하다는 생각이 들었다. 배경지식 없이, 어떤 패턴/규칙에 대한 이해 없이 이 언어를 배우는 것에는 시행착오가 많이 따를 것 같다는 생각을 하였다. 영어를 배울때 성문종합영어를 n회독 하고 시작하는 것이 아주 안좋은 것 처럼, program language 역시 이론적인 부분만 집중해서도 안되겠지만, 이론적인 부분 없이 연습만으로는 성장속도에 한계가 있겠다라는 생각을 하였다.
4. 웹개발은 검색을 잘 해야 한다: 내가 했던 고민/어려움은 다 누군가 이미 했다는 말이 있다고 한다. 특히 개발 분야는 커뮤니티쉽이 잘 갖춰져 있기 때문에, 인터넷에서 잘 찾아보면 내가 고민했던 부분을 이미 겪은 많은 사람들의 지혜를 찾을 수 있다고 한다. 그래서 검색을 잘 해야 하는 것 같다.
5. 웹개발은 배운것을 잘 정리하는 습관이 있어야 한다: 이번 5주과정을 훈련하고 나서 가장 크게 느꼈던 것은, 배운건 알겠는데, 어떻게 하는지 기억이 나지 않는다는 것이었다. 물론, 내가 익숙해지지 않아서 그런 것도 있겠지만, 그렇기 때문에 휘발성도 상당히 강한 것 같았다. 내가 모든걸 외울순 없고 (그럴 필요도 없지만), 내가 배웠다는 것을 기억하고, 필요할 때 꺼내 볼 수 있는 cheat sheet이 필요하겠다는 생각이 들었다. 그러기 위해서 블로깅과 git 활동을 열심히 해야겠다는 생각이 든다. - 그래서 오늘의 할일은 git 배우기/해보기:)
대략적인 커리큘럼
총 5주간의 커리큘럼으로 구성되어 있었고, 일종의 풀스택 코스였다. 녹화된 영상 강의로 진행되었는데 주당 1~2시간 정도 분량의 영상이 있었다. 짧은 시간동안 웹개발의 모든 부분을 조금이나마 경험해보도록 하는 것이 이 수업의 목적이었기 때문에 진도는 굉장히 빨랐고, 얕고 넓게 배운다는 느낌이 많았다. 비록 러닝타임은 주당 1~2시간정도였지만, 이해안가는 부분이 많고, 진행이 빨랐기때문에, 영상을 끊고 연습하는 시간이 많이 필요했다. 그래서 나는 주차별 적게는 5시간에서 많게는 10시간 이상 써야 했던 것 같다. - 주차별로 숙제도 있었다.
강의 세부 내용은 HTML/CSS/JS 등의 클라이언트 사이드를 먼저 다루고, 이어서 Python 으로 서버 만들기를 배우고, DB와 연결, Cloud에 연결, 이를 도메인과 연결하여 실제로 웹사이트를 배포까지 하는 경험을 할 수 있었다. 좀 더 구체적으로 살피자면, 방명록, 웹크롤링, 버킷리스트, 각종API (날씨, 미세먼지정보등) 을 활용해보는 경험을 했다.
사실 제한된 시간동안 이 많은 것들을 배웠어야 했기 때문에, 일종의 따라해보기 과정에 좀 더 가까웠지만, 위에서 언급했듯 코딩은 익숙해져야 하는 대상이기 때문에, 이 수업에서 배운것을 여러번 되새기며 계속 만들어보는 경험을 하다보면 그 구조와 연결에 대해서 익숙해질 수 있겠다라는 생각이 들었다.
소감
위에서 적은 느낀점이 (웹)개발에 관한 전반적인 생각이라면, 지금부터 쓸 소감은, 좀 더 나와 관련한 이야기이다.
1. 이 수업을 통해 웹개발이 뭔지에 대해 약간의 idea를 얻은 것 같다. 검색을 통해 웹개발에는 프론트엔드, 백엔드가 있고, 각각이 어떤 것이라는 것을 수박 겉핧기 식으로 배웠다면, 이번 수업을 통해서는, 그래서 구체적으로 어느분야가 무엇을 하는지에 대해 좀 더 구체적으로 알 수 있었다. (물론 이것도 누군가가 보기에는 겉핧기일 것 같긴 하다)
2. 내가 어느 수준에서 무얼 할 수 있고, 무얼 할 수 없는지에 대해 생각해볼 수 있었다. 예를들어, 이 수업을 듣기 전에는 막연하게, 특정 고객층을 대상으로 인스타그램 같은 서비스를 만들어서 배포해보자라는 생각을 갖았었는데, 이게 몇달 배워서는 택도 없는 것이라는 것을 알게되었다. 심지어, 일반 게시판만드는 것 조차 배거운 일이라는 것을 느꼈다.
3. 그럼에도 불구하고, 내가 시간과 노력만 투자한다면, 최소한 흉내는 낼 수 있을 것 같다는 생각을 하였다. 게시판 만드는 일도 내겐 너무너무 복잡한 일이지만, 그래도 오픈소스 등을 활용해 비스무레하게 만들 수는 있을 것 같다. - 그래서 목표가 게시판 등을 포함한 일종의 개인 홈페이지같은 것을 만드는 것이다.
4. 재미를 느꼈다. 왠만한 인간이라면, 무언가를 창조하는 것에 대한 로망이나 재미, 그리고 애정이 있을 것 같다. 예를들면, 미니카 조립, 레고블록 만들기, 애 만들기(..?) 같은. 이번 과정을 통해 나도 열심히 배우고 연습하면, 무언가를 창조해 내거나, 그에 기여할 수 있겠다라는 기대가 생겼다. 이미, 뭘 만들어야 겠다는 계획까지 하고 있다 심지어..ㅎ 아무튼 무언가 (유용한 것을) 만드는 것 자체가 재미있다면, 개발에 대해 좀 더 깊이 있게 공부하는 것도 나쁘지 않겠다는 생각이 들었다. 사실, 아직 이것이 미치도록 좋다는 수준은 아니지만, 그정도는 아마 좀 더 나의 관련 지식과 경험, 그리고 시야가 넓어지면 생기지 않을까 하는 생각이 든다.
5. 하지만, 내가 특출난가? 라는 질문은 겨우 5주과정의 수업을 듣고 하긴 힘든 것 같다. 확실한 것은, 오래 할 수록 잘해질것 같다는 생각은 하였다. 재미를 계속해서 발굴해 나가고 이를 바탕으로 열심히 하다보면 언젠가 특출나 질 것이라는 믿음은 조금 생긴 것 같다.
앞으로..
이번 수업을 통해 내가 재밌게 할 수 있을지, 그리고 내가 잘할 수 있을지에 대해 찾고 싶었다. 명확한 답을 찾지는 못한 것 같다. 하지만 최소한, 더 해보고싶다. 라는 생각은 든다. 이번에 배운 경험을 토대로 좀 더 연습해서,
1) K디지털 트레이닝, 부트캠프 등을 지원해서 공부해볼 생각이다. 이런 교육기관에 참여하기 전까지는,
2) 지금까지 배웠던 것을 연습/복습해보고 싶고, 간단(하지만 내겐 여전히 어려울)한 토이프로젝트를 진행하고,
3) 앞으로 배우게 될 Java공부에 시간을 투자하고 싶다. 우아한 테크코스에 지원하면 관련된 입문 강의를 들을 수 있다고 하는데, 이를 적극적으로 활용하고, 얼마전에 구입한 Java의 정석이라는 책도 한번 읽어봐야겠다.
4) 마지막으로, Cosera에서 제공하는 프로그래밍의 기초 수업도 수강할 생각이다. - 사실 지금 1주차를 수강중인데, Computer Science: Programming with a purpose 라는 프린스턴 대학 강의이다. Java를 활용한 수업이라고 하니 아마 다른 Java 공부와 시너지 효과를 낼 수 있지 않을까 하는 생각이 든다. 사실 이 수업이 얼마나 좋은지 어떤지는 잘 모르겠는데, 컴퓨터 사이언스에 대한 개념이 전혀 없기 때문에 (그리고 좋은 대학 강의니까:) 한번 경험삼아 들어보면 좋을 것 같아서 신청했다. 공짜수업이라 부담없이 들을 수 있을 것 같다.