DATABASE2 - MySQL
DATABASE1 수업을 끝마치고, 바로 다음 목표인 DATABASE2 - MySQL을 시작했다. MySQL은 무료로 사용할 수 있는. 세계에서 가장 많이 쓰이는 관계형 데이터베이스인데, 나 역시 이번 강의를 통해 학습하기 전부터 익히 들어 알고 있기도 했다. Bitnami 사에서 개발한 WAMP Stack 프로그램을 이용해 MySQL를 편리하게 설치할 수 있었다.
MySQL을 설치한 이후 본격적인 학습에 들어갔다, GUI 환경을 제공하는 MySQL Workbench 프로그램이 존재하지만, 처음부터 학습하는 단계였기에 정직하게 명령 프롬프트로 시작했다. 강의 내용을 따라가며 차례대로 스키마, 테이블을 생성하고, 데이터를 입력했다. 강의에서 이고잉님은 마이크로소프트 엑셀과 MySQL에 동일한 데이터를 입력하고, 엑셀과 비슷한 기능들과 MySQL에서만 사용할 수 있는 기능들을 차례로 사용하며 우리가 왜 데이터베이스를 사용해야 하는지를 설명했다. 이 과정에서 SELECT, JOIN과 같은 MySQL의 기본적인 명령어들을 학습했다.
사실 중간에 MySQL 프로그램이 에러를 일으켜 약 이틀동안 진도를 나가지 못하고 헤메는 일도 있었지만, 분량이 많지는 않았던 탓에 오래 지나지 않아 완강할 수 있었다. 비록 기초적인 내용만을 다루었지만, MySQL, 더 나아가서는 관계형 데이터베이스의 기본적인 사용법을 익힐 수 있었고, 추후에 필요에 따라 더 심화적인 내용을 공부할 때에 필요한 기반을 닦게 되어 기분이 좋았다.
Node.js & MySQL
다음 수업은 이전에 학습한 Node.js와 MySQL를 함께 활용하는 'Node.js & MySQL' 수업이었다. 이번 수업은 지난 번 학습했던 WEB2 - Node.js의 코드를 바탕으로 했기 때문에, Github에서 기존의 WEB2-Node 저장소를 Import해 Node.js-MySQL 저장소를 생성했다. Import를 통해 생성한 저장소였기 때문에, 기존의 Node.js 저장소의 모든 파일과 commits를 그대로 가져올 수 있었다. 학습 환경 설정을 위해 필요없는 파일들을 삭제하는 등 약간의 수정을 거치고 VSCode에서 연동되는 저장소를 변경한 이후, 첫 번째 commit을 실행했다.
데이터베이스와 웹앱을 연동하기 위해 VSCode에서 Node.js의 MySQL 모듈을 설치했다. 처음에는 데이터베이스에 입력한 데이터가 웹에 표시되고, 다시 웹에서의 데이터 수정이 그대로 데이터베이스에 반영된다는 사실 자체가 너무 신기했다. 차례로 글 생성, 수정, 삭제 기능을 학습했고, 이후에는 글의 author 정보를 수정하는 내용을 학습했다. 마지막에는 데이터베이스 보안에 대한 내용인 SQL Injection을 예방하기 위한 방법에 대해서도 배웠다. SQL Injection에 대한 내용은 2018년에 웹해킹 스터디에 참여하며 잠깐 배웠던 내용이라 반갑기도 했다.
코드가 점점 복잡해지고, 모듈화를 진행하면서 파일이 점점 많아졌다. 게다가 학습 도중 부대 사정으로 사이버지식정보방 사용이 잠시동안 제한되는 일도 있었다. 지난번 WEB2 - Node.js를 학습할 때도 마찬가지였지만, 공백기 이후에는 이전 학습 내용이 잘 기억나지 않아 강의를 듣다가도 멈추고 이전 내용을 다시 공부해야 하는 상황이 찾아오기도 했다. 이처럼 꽤 어려움이 있었지만, 지금까지와 마찬가지로 꾸준히 노력한 덕분에 결국에는 끝까지 잘 마무리할 수 있었다.
WEBn 강의들을 차례로 학습하면서, 웹앱의 기능이 확실히 발전하고 있음을 느끼고 있다. WEB1에서는 이미 만들어진 내용만을 웹이 표시했다면, 이번 강의를 통해서는 마침내 사용자가 직접 데이터베이스의 데이터에 접근할 수 있게 되었다. 물론 아직은 강의 내용을 따라하며 코딩을 하고 있는 것에 불과하지만, 단계적인 학습을 통해 실력이 점점 쌓이는 것 같아 뿌듯하다. 준비된 자만이 기회를 잡을 수 있기에, 언젠가 찾아올 기회를 놓치지 않기 위해 앞으로도 꾸준한 학습을 통해 실력을 키울 것이다.
강의명 : Opentutorials - DATABASE2 - MySQL (by Egoing)
학습 기간 : 2021.01.29 ~ 2021.02.07
강의명 : Opentutorials - Node.js & MySQL (by Egoing)
학습 기간 : 2021.02.09 ~ 2021.02.15 / 2021.03.08 ~ 2021.03.14
'Dev' 카테고리의 다른 글
WEB3 - Node.js - Cookie & Auth / WEB4 - Express - Session & Auth (0) | 2021.06.03 |
---|---|
WEB3 - Express (0) | 2021.04.23 |
Study Plan / DATABASE1 (0) | 2021.01.31 |
WEB2 - Node.js (0) | 2021.01.30 |
2020 인하대학교 프로그래밍 경진대회(IUPC) (0) | 2021.01.13 |