Nodejs - 버전2

이율곡·2023년 2월 27일
0

Node js

목록 보기
19/26
post-thumbnail

쇼핑몰 만들기 버전2

https://github.com/leeyulgok/NodejsPracticeVersion2

클론코딩을 한 것을 토대로 버전관리를 하고 있다. 지난 번 버전은 데이터베이스를 사용하지 않고, JSON 객체를 저장하는 걸로 만들었는데 이번 버전에는 MySQL로 데이터 베이스를 관리하여 만들었다. 처음에는 MySQL의 execute() 메서드로 쿼리를 사용했지만 다음에는 Sequelize라는 라이브러리를 사용했다.

Sequelize는 이전 포스트들에서 설명을 해서 자세한 내용은 넘어가려 한다. 이번 포스트에서는 이번 버전을 만들면서의 생각과 중요했던 부분을 적으려 한다.

Promise 객체

이번 버전을 만들면서 드는 생각은 Promise 객체가 확실히 콜백 함수에 비해 코드 가독성을 향상 시켜준다는 것을 알았다. 만약 계속해서 콜백 함수를 사용했다면, 정말 콜백 헬에 빠졌을 것이다. Sequelize가 Promise를 반환했기 때문에 then()과 catch() 메서드를 잘 활용하여 값을 처리할 수 있었다.

특히 Promise 체이닝이 정말 편하면서도 나중에는 답답함을 느꼈다. 콜백에서 벗어나 Promise 체이닝을 사용할 때는 편하다 생각이 들었는데 얼마 안 가서 무한 체이닝에 들어가니까 또 await가 왜 필요한지를 느꼈다.

콜백부터 Promise까지 느끼고 그 다음에는 async과 await를 느낄 차례인데 단계별로 충분히 느낀 다음 넘어가야겠다.

관계 형성

클론 코딩을 할 때의 단점은 나의 생각으로 다루는 것이 아니기 때문에 무작정 따라만 해서는 실력이 늘지 않는다. 주도적으로 생각하면서 코딩을 따라가야 한다. 그런데 Sequlize로 테이블로 관계를 형성하려니까 버벅거렸다. 특히 다대다 테이블을 만들 때는 중간의 연결테이블이 필요한데, MySQL 쿼리로 다룰 때는 어렵지 않은 부분이었는데 Sequelize로 다룰려니까 쉽지 않았다.

그래서 찬찬히 다시 보고 이해하고 넘어갔다. 그리고 관계 형성을 했다는 것은 A 모델을 통해 B 모델의 값을 가져올 수 있는 것인데 이러한 데이터의 흐름을 이해하는 것 또한 너무 중요했다.

정리하기

이번에는 Node js로 쇼핑몰 버전2를 만들면서 중요하게 생각하는 부분과 생각을 정리했다. DB를 다룬다는 것부터 쉽지 않지만 이를 쿼리를 사용하지 않고 라이브러리를 활용하는 것도 더 쉽지 않다. 하지만 이해하며 공부하면 어려울 것이 없고 노력하면 이루지 못할 것은 없다 생각한다. 다음은 NoSQL인 MongoDB를 활용한 버전3이다. NoSQL을 제대로 공부해 본 적은 없지만 기대되고 도전해보려 한다.

profile
음악을 좋아하는 사람이 음악을 만들 듯, 개발을 좋아하게 될 사람이 쓰는 개발이야기

0개의 댓글