항해 99 6주차는 간단한 비 회원제 블로그의 게시글 및 댓글 CRUD 기능을 구현하였다. Node.js와 MongoDB를 이용하였는데, 라이브러리는 mongoose와 express를 이용하였다. 미들웨어와 라우터의 개념에 대해서 알게 되었고, mongoose 라이브러리를 통하면 model 객체를 상속하는 schema를 통해 마치 RDB를 이용하는 것처럼 각 collection의 형태를 조정할 수 있다는 것을 알게 되었다.
DB는 보통 데이터를 저장하는 컴퓨터, 혹은 그 데이터의 저장과 사용을 도와주는 프로그램을 지칭한다. DB는 크게 SQL과 No SQL로 구분지을 수 있다. SQL DB는 관계형 데이터베이스라고도 하는데, My SQL과 Oracle DB로 대표된다. SQL DB에서는 모든 데이터를 2차원 형태로 저장한다. SQL 언어를 통해 데이터에 접근, 조작할 수 있으며 SQL DBMS들을 조작하기 위해 필요한 SQL 언어는 대동소이하다. 데이터들 간의 관계를 이용하여 데이터를 저장하여 중복되는 부분을 제거할 수 있고, 데이터를 효과적으로 읽어들일 수 있다. 또한, Table 형태로 저장하기 때문에 데이터의 무결성이 보장되지만 최초 schema를 설계할 때 신중하게 접근해야 한다. 이미 작성된 table의 형태를 수정하거나 추가, 제거하는 것이 몹시 어렵기 때문이다. No SQL DB는 MongoDB로 대표되지만, 같은 No SQL DB라고 하더라도 상이한 부분이 많을 수 있어 공통적인 특징을 꼽기 힘들지만, 데이터의 형식이 자유롭고, 그 때문에 데이터의 무결성이 보장되지 않는다.
ORM은 Object Relational Mapping의 준말이다. 단순하게 말하면 객체지향 언어에서 이용이 용이하도록 RDB (SQL DB)에서의 테이블을 객체러럼 이용할 수 있게 클래스로 구현해 놓은 것이다. 객체지향 언어에서 이용하기 용이하도록 구현해놓은 형태이기 때문에 코드가 더 직관적이고, 유지보수가 더 용이해진다는 장점이 있다. 그러나 구현 과정에서 DB의 꼴을 완벽하게 따라가지 못할 수 있고, 설계 및 구현에 문제가 있는 경우에는 속도가 저하되는 등의 장애가 발생할 수 있다. Java의 경우 Hibernate, Node의 경우 Sequelize 등의 라이브러리를 통해 이용할 수 있다.
이제부터는 react를 공부 중인 분들, 그리고 같은 node 를 공부하는 분들과 함께 새로운 조를 이루어 조금 복잡해진 웹사이트를 만드는 중이다. 게시글 및 댓글의 CRUD, 그리고 좋아요와 실시간 알림과 회원 가입, 로그인 기능이 구현 목표이다.
'항해 99' 카테고리의 다른 글
항해 99 8주차를 끝내며 (0) | 2022.03.07 |
---|---|
항해 99 7주차를 끝내며 (0) | 2022.02.28 |
항해 99 5주차를 끝내며 (0) | 2022.02.14 |
항해 99 4주차를 끝내며 (0) | 2022.02.06 |
항해 99 3주차를 끝내며 (0) | 2022.01.30 |