웹프로그래밍

웹프로그래밍

    WEBn (Fin.)

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

    WEB7 - Login with Google / Facebook on Passport

    WEB7 - Login with Google WEB5와 WEB6에서는 Passport의 local strategy(전략)을 사용하며 Passport의 작동 원리와 인증 시스템 전반에 대해 공부했다. 이를 바탕으로 이번 WEB7에서는 각각 구글과 페이스북 계정을 연동해 웹 서비스에서 인증 기능을 구현하는 것을 배웠다. 우선 구글 전략(Google Strategy)을 먼저 진행했다. npm으로 passport-google-oauth 패키지를 설치했고, Passport.js 공식 홈페이지의 가이드 대로 구글 인증을 위한 코드를 추가했다. 다음으로는 Google Cloud Platform에 방문 해 'WEB7-Passport-Google'이라는 이름의 프로젝트를 생성했다. 이후 사용자 인증 정보(Credenti..

    WEB6 - Multi User Auth / WEB2 - OAuth 2.0

    WEB6 - Multi User Auth WEB5에서 발생한 문제를 해결한 후, 드디어 WEB6를 시작했다. 제목은 'Multi User Auth'로, 한 명의 사용자만 로그인할 수 있었던 기존의 서비스를 개선해 여러 명의 사용자가 로그인할 수 있는 서비스를 구현하는 방법을 배우는 강의였다. WEB5 - Passport를 두 번 학습하며 Passport에 대한 이해도도 높아졌고, 다중 사용자는 실질적으로 웹 서비스를 만들 때 필수적인 기능이었기에 기대가 되었다. WEB5에선 한 명의 사용자만 존재했기 때문에, 미리 auth.js 파일에 사용자의 정보를 저장해 두었고, 웹 상에서 새로운 사용자를 등록하는 것은 불가능했다. 하지만 다중 사용자 시스템에서는 새로운 사용자의 등록이 필수적이었고, 이를 위해 re..

    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 프로그램이 존재하지만, 처음부터 학습하는 단계였기에 정직하게 명령 프롬프트로 시작했다. 강의 내용을 따라가며 차례대로 스키마, 테이블을 생성하고, 데이터를 입력했다. 강의에서 이고잉님은 마이크로소프트 엑셀과 ..

    Study Plan / DATABASE1

    WEB2 - Node.js 강의를 모두 끝마치고, 중간 점검의 시간을 가졌다. 지금까지 공부 해 온 것들을 되돌아보고, 앞으로의 공부 계획을 세우기 위함이었다. 지금까지 Opentutorials 사이트의 이고잉님의 WEBn 강의가 매우 만족스러웠기 때문에, 기본적으로 WEBn 시리즈의 다른 강의를 들을 생각이었다. 이고잉님은 자신의 강의들을 연결해 놓은 지식지도를 만들어 놓았고, 강의 페이지에도 선수과목을 명시해 두었는데, 덕분에 앞으로의 학습 계획을 짜는 데 큰 도움이 되었다. 이고잉님의 가이드라인을 바탕으로 개인적인 흥미와 관심을 반영해 간단한 텍스트 파일을 작성했다. 사실 데이터베이스는 복학 후 학교에서 강의를 들으려고 했으나, WEBn의 심화 강의를 이해하기 위해서는 데이터베이스에 대한 이해가 필..

    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이라는 도메인을 구매해 블로그에 적용했지만, 사실 정확한 도메인의 개념에 대해 몰랐었다. 때문에 도메인을 티스토리 블로그에 적용할 때 원리도 몰랐었고, 도메인 구매 대행업체의 ..