[WIL] 05/17 - 05/23 항해 시작
항해99에 합류한 지 자체 1주차!
사전 학습 기간은 5월 24일부터지만 한 주 먼저 시작할 수 있게 되었고, 이번 주는 학습을 1차 완료하는데 집중했다.
웹개발 종합반
웹개발 종합반에서 학습한 내용은 다음과 같다.
- front: HTML, CSS, JS(jQuery) 기본 학습, ajax 통신
- back: Python이용. 웹크롤링(스크래핑), flask 서버 구축
- 도메인 구입 및 설정
- AWS EC2 사용하여 배포
물론 이외에도 더 많은 내용이 있지만 범위를 크게 나눠보았다.
HTML, CSS, JS(jQuery) & ajax
지난 5개월 간 프론트엔드 위주로 독학해왔기 때문에 어렵지는 않았다.
다만 처음 다뤄 본 jQuery와 매번 나중으로 미뤄왔던 Bootstrap 두 가지를 사용해 본 점이 만족스러웠다.
jQuery
프론트엔드 공부를 하는 사람 중에 jQuery를 들어보지 않은 사람은 없을 것이다.
하지만 프론트엔드 개발자 공고를 보면 jQuery가 자격요건인 곳은 거의 없어졌기 때문에 배울 생각을 해보지 못했다.
그런 jQuery를 처음 써 본 내 느낌은 '편하다!' 였다.
jQuery의 철학이 Write less, do more 이라더니, 그 말이 딱이었다.
왜 과거에 jQuery의 인기가 높았는지 '편하다'는 한 문장으로 설명이 가능했다.
동시에 너무 편해서 이상했다.
vanillaJS를 쭉 써오다 보니 코드를 보면'이게 이렇게 한 줄로 끝난다고?'라는 생각이 들었다.
// Javascript
document.getElementByID('form-input');
// jQuery
$('#form-input')
jQuery에 대해 찾아보면 여전히 강력하다는 주장과 jQuery의 시대는 지나갔다는 주장이 공존한다.
어떤 주장이 더 현실적인지와 별개로 왜 jQuery의 위상이 높았는지 알고 어떤 점이 장점인지 알게된 것은 앞으로 JS를 사용하는데 있어 좋은 경험이 될 거라 생각한다.
Bootstrap
Bootstrap 역시 아주 유명한 프레임워크다.
슬라이드(carousel) 같이 CSS, JS로 직접 구현하려면 좀 귀찮은 작업들을 Bootstrap의 룰만 지켜준다면 쉽게 구현할 수 있다.
처음 CSS를 공부할 때부터 직접 구현해버릇 했더니 Bootstrap을 써야겠다는 생각을 많이 못해봤다.
그러다보니 부트스트랩의 클래스를 기억하기 어려웠고, 커스터마이징하는데 시간이 걸리니 또 부트스트랩과 멀어졌었다.
하지만 이번 기회에 처음부터 부트스트랩을 사용해보면서 별도의 디자인을 가지고 있지 않다면 오히려 더 깔끔하게 구현할 수 있다는 것을 새삼 깨달았다.
특히 간단한 토이프로젝트를 할 때 부트스트랩을 이용한다면 다른 기능 구현에 더 집중할 수 있을 것이다.
부트스트랩을 멀리했던 과거의 나를 반성한다.
Python(웹크롤링(스크래핑), flask 서버 구축)
Python은 정말 오랜만이었다.
개발자가 되어야겠다고 생각한 적도 없던 작년 9월, 네이버 edwith의 외국교수님의 Python 강의로 개발을 시작했다.
몇 달을 해보니 너무 재밌어서 진로를 틀었지만 프론트엔드에 집중해야겠다고 결정한 이후에는 Python은 다룰 시간이 없었다.
웹크롤링(스크래핑)
bs4와 requests를 이용한 웹스크래핑을 배웠다.
사실 위에 말한 몇 달의 Python 학습 중에는 노마드코더의 '웹 스크래퍼 만들기'가 있었다.
당시에는 bs4가 무슨 일을 하는지, CSS selector가 무엇인지 제대로 이해도 못한 채로 따라했었다.
하지만 그랬던 경험마저도 도움이 되는지 다시 웹스크래핑을 할 때는 자신있게 할 수 있었다😊😊
Flask 서버 구축
NodeJS, Express로 서버를 만들어 본 적이 있다.(Anstagram)
강의를 들은 후 복습 겸 만들어봤는데, 처음 서버를 만드는 데다가 규모도 커서 정말 힘들었던 경험으로 남아있었다.
웹개발 종합반에 서버 구축이 있는 걸 봤을 때는 조금 겁을 먹었다.
그런데 Flask를 이용하니 몇 줄 적지도 않았는데 구동 되는 서버..............?
더 이상 서버가 두렵지 않다.🙋♀️🙋♀️
물론 Flask 역시 상용 웹 서버를 구현할 때는 단순하지만은 않다고 한다.
그래도 내가 서버가 무섭지 않아졌다면 그 걸로 Flask는 된 거 아닐까?😏😏
도메인 구입 및 설정
이전에 만들어 놓은 Anstagram이나 다른 토이 프로젝트들은 heroku나 gh-pages를 통해 배포했더니 매번 괴로운 도메인을 갖게 되었다.
웹개발 종합반에서 제시한 대로 gabia에서 도메인을 구입하고 설정했다.
구매한 도메인에 값만 잘 설정해주면 끝이었다.
도메인을 구매해 본적이 없으니 도메인이란 미지의 세계였고 어렵게만 생각했다.
해야겠다고 생각한 걸 미뤄두지 말자는 교훈을 얻었다. 생각보다 어렵지 않을 수 있다.
AWS EC2
AWS EC2(Electric Compute Colud)란 가상의 컴퓨팅 환경이다.
서버를 돌리기 위해 내 컴퓨터를 계속 켜둘 수 없으니 AWS에서 제공하는 컴퓨터를 이용하는 것이다.
다행히 아직 프리티어 기간이라 인스턴스를 무료로 사용할 수 있었다.
인스턴스에 어떻게 파일을 올리는 지 궁금했는데, fileZilla를 이용해서 쉽게 해결할 수 있었다.
웹개발 종합반 외
파이썬 문법
뇌 깊숙이 숨어있던 파이썬 문법을 찾아오는 시간이었다.
개발을 처음 공부할 때 어디선가 '한 언어를 알면 다른 언어를 배우는 것이 어렵지 않다'는 말을 들은 적이 있다.
솔직히 Python을 (가볍게) 공부한 후 자바스크립트를 만났을 때는 그 말에 공감할 수 없었다.
아마 Python을 문법 공부와 강의 따라치기 수준 이상을 경험하지 못했기 때문이라고 예상한다.
하지만 몇 달간 자바스크립트와 동고동락하고 Python을 만나니 깨달음을 얻은듯 했다.
Python을 처음 공부할 때 Dictionary가 와닿지 않았다.
왜 필요한지도 모르겠고, 이런 모양새 자체가 익숙하지도 않았다.
지금은?
매일매일 key: value를 만들었더니 그냥 '아...' 소리가 나온다😂
특히나 JSON 파일을 많이 이용하다보면 key-value 구조가 너무 편안하고 당연해진다.
그 외에 삼항 연산자나 반복문 사용도 금방 적응할 수 있었다.
(이러다 나중에 C언어 정복해보겠다고 할 수도 있다.)
알고리즘
항해99에서는 파이썬으로 알고리즘 수업을 진행한다고 해서 미리 익숙해지려고 노력했다.
알고리즘에 대한 이론은 작년 SAFFY를 객기로 도전해본다고 할 때부터 조금씩 접해와서 익숙해졌다.
하지만 아직도 코드로 풀라고 하면 멍해진다.
일단은 어떤 분의 백준 알고리즘 순서 추천 순서로 문제를 풀어보고 있다.
입출력 문제들은 대부분 문제없이 풀었지만 동적계획법부터는 벌써 난항을 겪고 있다.
꾸준히 풀고 복기하다보면 깨달음을 얻을거라 믿는다😄
(github: https://github.com/Jihyun85/Algorithm)
마무리
4월부터 마음만 조급해서 스스로를 몰아쳤다.
그러면 역효과로 공부가 손에 잡히지 않고 프로젝트가 완성되지 않았다.
컴퓨터 과학, 알고리즘 등 알아야 할 것은 많은데 시간은 부족했다.
도움을 줄 사람도 없었다.
그게 항해99를 시작하게 된 계기다.
올바른 길을 빠르게 찾아갈 수 있는 방법은 함께 가는 것이라고 생각한다.
99일이 결코 짧지 않지만 혼자 갈 때보다 더 빨리 도착할 것이라고 믿는다😁
Author And Source
이 문제에 관하여([WIL] 05/17 - 05/23 항해 시작), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hwiyu25/WIL-0517-0523저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)