생활코딩

생활코딩

    WEBn (Fin.)

    가장 최근에 학습 한 WEB7 강의를 끝으로, 내가 계획했던 이고잉님의 WEBn 강의들을 모두 학습했다. 2020년 7월, WEB1을 처음 시작할 때에는, '군대라는 특수한 공간에서 꾸준히 공부를 이어나갈 수 있을까?'라는 의문이 들기도 했다. 실제로 중간에 다른 공부에 집중했던 탓에 긴 공백도 있었고, 제한적인 환경으로 인한 어려움도 많았고, 시간도 부족했다. 군대가 아닌 사회에서 WEBn을 학습했더라면, 훨씬 짧은 시간 내에 집중해서 학습을 마무리했을지도 모른다. 하지만, 열악한 환경에서 방법을 찾아가며 꾸준히 학습했던 지난 시간은 나에게 그 자체로 큰 의미가 있다. 앞으로 개발자로, 또 개발자이기 전에 한 사람으로 살아가면서, 나의 삶에는 분명 많은 어려움이 닥칠 것이다. 좋지 않은 환경에서 나태해..

    DATABASE2 - lowdb / WEB5 - Passport _ REWORK

    계획의 재검토 지난번 작성한 Passport.js 글에서도 잠깐 언급했지만, 그 다음 강의는 DATABASE2 - lowdb 강의였다. 하지만, 강의 영상이 제작된 이후 lowdb가 2.0 버전으로 업데이트 되었는데, 문법이 많이 바뀌어 학습에 어려움이 있을 것 같았다. 이와 더불어 전역 후에는 알고리즘 공부를 하려고 계획하고 있었기 때문에, 공부 계획을 재검토하게 되었다. 웹 프로그래밍 공부 중단 및 알고리즘 공부 시작, lowdb가 아닌 다른 데이터베이스를 사용한 웹 프로그래밍 공부 지속 등의 방안이 있었다. 우선, 학습하고 있던 WEBn 시리즈 완강이 얼마 남지 않아 여기서 중단하기엔 너무 아쉽다는 판단이 섰다. 이후 웹 공부를 지속하기 위해 정보를 조사하던 중, 다행히 npm으로 패키지의 특정 버..

    WEB5 - Passport.js

    이번에는 Node.js의 인증 미들웨어인 Passport.js를 학습했다. 이전 강의들에서 쿠키와 세션을 이용해 웹사이트에서 로그인 기능을 구현했는데, Passport.js는 이러한 기초적인 방법보다 훨씬 강력했다. Passport에서 로그인 방식은 'Strategy'로 표현하는데, 자체적으로 로그인을 구현하는 local과, 구글, 페이스북, 네이버, 카카오 등의 대형 기업들이 가지고 있는 사용자 정보를 사용하는 여러 방법들이 존재했다. 자체적으로 사용자 정보를 관리할 경우 서버와 보안 소요가 커지기 마련인데, Passport.js를 이용하면 사용자 정보를 자체적으로 따로 저장하지 않으면서 인증 기능만 제공하는 '소셜 로그인' 기능을 구현할 수 있다는 점이 흥미로웠다. 이번 강의에서는 가장 기초적인 lo..

    WEB3 - Node.js - Cookie & Auth / WEB4 - Express - Session & Auth

    이번에 학습한 두 개의 강의는 모두 '인증'에 관한 것이었다. 첫 번째 강의는 Node.js 환경에서 쿠키(Cookie)를 활용해 로그인 기능을 구현하는 내용이었고, 두 번째 강의는 Node.js의 Express 프레임워크 환경에서 세션(Session)을 활용해 로그인 기능을 구현하는 내용이었다. 두 강의 모두 이전 강의와 마찬가지로 구름IDE 환경에서 학습했다. 쿠키(Cookie)란 클라이언트의 로컬에 저장되는 작은 데이터 파일이다. 대표적으로 Name-Value 값으로 구성되며, 이 외에도 웹브라우저 상에서의 쿠키 조작을 방지하기 위한 'HttpOnly', 각각 활성화 될 디렉토리와 도메인을 지정하는 'Path', 'Domain', Https 환경에서만 전송하는 'Secure', 만료 시기를 지정하는..

    WEB3 - Express

    이번에는 Node.js의 대표적인 웹 프레임워크 중 하나인 Express에 대해 학습했다. 이번에도 이전 강의들 처럼 Visual Studio Code를 사용해 코딩을 지속하려고 했지만, 부대 내 사이버지식정보방 프로그램 업데이트로 터미널 사용이 제한되었다. 따라서 강의 초반에 부득이하게 다시 VSCode에서 구름IDE로 작업 환경을 변경했다. 환경을 다시 변경해야 해 번거롭기도 했고, 아무래도 로컬PC에서 Node.js를 구동하는 것보다 불편한 점이 많았지만, 다행히 학습에 문제가 생길 정도로 큰 어려움은 없었다. 강의 초반부는 기존의 Node.js 기반 코드를 Express 프레임워크에 맞게 변경하는 내용으로 구성되었다. 어려운 내용은 아니었지만, 부대 사정으로 인해 학습이 자꾸 끊겼던 탓에 내용들이..

    DATABASE2 - MySQL / Node.js & MySQL

    DATABASE2 - MySQL DATABASE1 수업을 끝마치고, 바로 다음 목표인 DATABASE2 - MySQL을 시작했다. MySQL은 무료로 사용할 수 있는. 세계에서 가장 많이 쓰이는 관계형 데이터베이스인데, 나 역시 이번 강의를 통해 학습하기 전부터 익히 들어 알고 있기도 했다. Bitnami 사에서 개발한 WAMP Stack 프로그램을 이용해 MySQL를 편리하게 설치할 수 있었다. MySQL을 설치한 이후 본격적인 학습에 들어갔다, GUI 환경을 제공하는 MySQL Workbench 프로그램이 존재하지만, 처음부터 학습하는 단계였기에 정직하게 명령 프롬프트로 시작했다. 강의 내용을 따라가며 차례대로 스키마, 테이블을 생성하고, 데이터를 입력했다. 강의에서 이고잉님은 마이크로소프트 엑셀과 ..

    WEB2 - Node.js

    2020년 7월 20일, 구름IDE에 Node 컨테이너를 생성하고 WEB2 - Node.js 강의를 학습하기 시작했다. 이전 WEBn 강의들은 구름IDE에서 제공하는 서버에 접속해 웹사이트에서 코드 변경 여부를 확인했는데, Node.js를 공부할 때는 이와 함께 터미널도 활용해야 했다. 강의 영상에서의 실행 환경과 나의 실행 환경에 꽤 차이가 있었기 때문에, 처음에는 터미널 사용이 꽤 어색했다. 구글링과 몇 번의 시도 끝에 실습 환경에 적응했고, 본격적으로 강의 학습에 들어갔다. 하지만, Node.js 학습을 시작한 지 얼마 되지 않아 OSAM 프로젝트에 도전했고, 그 뒤에는 K-MOOC의 강의를 2개나 학습하게 되어 Node.js 학습을 중단하게 되었다. 다른 공부에 열중했던 몇 달의 시간이 지났고, ..

    WEB2 - Domain Name System / WEB2 - HTTP

    JavaScript와 CSS 강의를 통해 웹 프로그래밍의 기초를 학습했다. 다음으로 바로 Node.js 수업으로 넘어갈까 했지만, 생활코딩 WEBn 모듈에 어떤 다른 강의들이 있는지 살펴보던 중, 두 강의가 눈에 띄었다. Web2 - Domain Name System과 Web2 - HTTP이다. 두 강의 모두 분량이 많지도 않았고, 웹 프로그래밍의 기초 지식을 쌓는 데 도움이 될 것 같아 Node.js보다 먼저 들어보기로 결정했다. 두 강의 중 먼저 들었던 강의는 Domain Name System이다. 직접 hyositive.com이라는 도메인을 구매해 블로그에 적용했지만, 사실 정확한 도메인의 개념에 대해 몰랐었다. 때문에 도메인을 티스토리 블로그에 적용할 때 원리도 몰랐었고, 도메인 구매 대행업체의 ..

    WEB2 - JavaScript / WEB2 - CSS

    Web1 - HTML & Internet 완강 후 바로 Web2 - JavaScript 강의를 듣기 시작했다. 다음 강의라 확실히 Web1보다는 수준이 있었는데, 코딩을 많이 접해본 나에게 어려운 수준은 아니었다. 조건문, 반복문, 배열, 함수 등 학교를 다닐 때 배웠던 내용들을 자바스크립트를 통해 구현해볼 수 있었다. 또 HTML만을 이용해 만들었던 웹은 정적이었지만, JavaScript를 적용해 유저가 직접 변화를 줄 수 있는 동적인 웹으로 변화했기에 더욱 재밌었다. 강의 분량이 Web1보다 꽤 길었는데, 몰입해 듣다보니 금방 끝났다. 여담으로, 이 수업을 통해 "HTML은 프로그래밍 언어가 아니다"라는 말의 정확한 이유를 배우기도 했다. 다음 강의로는 Web2 - CSS를 선택했다. 장기적 목표였던..

    Prologue / WEB1 - HTML & Internet

    군대에서 교양 뿐만 아니라 프로그래밍 공부를 하기로 마음먹었다. 스스로 전공적으로 많이 부족하다고 느꼈기 때문이다. 그러나 싸지방 컴퓨터 사양과 공부 환경 때문에 코딩 공부를 하는 것은 굉장히 힘들었다. 비주얼 스튜디오 등의 프로그램을 설치하려고 했지만 실패했다. 또, 만약 다른 가벼운 프로그램을 설치한다고 해도, 재부팅 시 자료가 삭제되어 매번 세팅하는 데 너무 오랜 시간을 빼앗길 것이 뻔했다. 제한적인 환경 속에서 방법을 찾기 위해 많은 고민과 조사를 거쳤다. 그 결과 나온 결론은 '클라우드 IDE를 통한 웹 프로그래밍 공부'였다. 우선, 클라우드 IDE를 사용하면 다른 프로그램의 설치가 필요없이 코딩 환경을 구축할 수 있다. 나는 가장 일반적으로 사용되는 구름 IDE를 선택해 사용중이다. 덕분에 컴..