-
[항해4기] 스파르타코딩클럽 Node.js 기초반 3주차 회고록스파르타코딩클럽 Node.js 기초반 2021. 11. 16. 14:43
스파르타코딩클럽 Node.js 기초반
3주차 개발일지
목차
- REST, REST API
- DB에 대해서
- Insomnia
- 3주차 숙제
- 3주차 소감
1. REST, REST API
REST(Representational State Transfer)
- 월드 와이드 웹과 같은 분산 하이퍼 미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다.
- 웹에 존재하는 모든 자원(이미지, 동영상, DB자원)에 고유한 URI를 부여해 활용하는 것
REST API
- REST라는 규칙을 따르는 API라고 생각하면 된다.
REST API의 구성
1. 자원(Resource) - URL
- 우리가 만들 소프트웨어가 관리하는 모든 것을 자원으로 표현할 수 있다. 쇼핑몰이라면 상품(Goods)에 대해서 정보를 관리할것이고 또는 장바구니(Carts)에 담긴 상품들도 관리를 해야한다.
2. 행위 - HTTP method
- GET, POST 등으로 해당 자원에 대한 행위를 표현할 수 있다. 예를 들어서 GET메소드는 해당 자원의 조회, POST 메소드는 해당 자원의 생성 이런식으로다.
- 아래와 같이 나누어진 것을 보통 CRUD라고 한다. 자원에 대한 생성/조회/수정/삭제를 각각의 method로 나누어 놓은 것이다.
Create : 생성(POST)
Read : 조회(GET)
Update : 수정(PUT)
Delete : 삭제(DELETE)위와 같이 쓰이는 것들이 일반적으로 쓰이는 method사용방식이다. 하지만 이것은 필수인 부분이 아니고 모든 곳에서 다 이렇게 지켜서 사용하지는 않는다. 상황에 따라서 저것을 완벽하게 지키기 어려운 부분들도 있으니 참고를 해야한다.
3. 표현
- 해당 자원을 어떻게 표현할지에 대한 설명이다. 보통 JSON, XML 같은 형식을 이용해서 자원을 표현한다.
2. DB에 대해서
DB (DATABASE)
- 데이터를 안전하고 편리하게 보관하고 가져다가 쓸 수 있는 서비스이다.
DB의 두 가지 종류
1. RDBMS(SQL)
- 행과 열의 생김새가 정해진 액셀에 데이터를 저장하는 것과 유사하다. 데이터가 50만개가 적재된 상태에서, 갑자기 중간에 열을 하나 더하기는 어려울 것이다. 그러나, 정형화되어 있는 만큼, 데이터의 일관성이나 분석에 용이할 수 있다.
ex) MS-SQL, My-SQL 등
2. No-SQL
- 딕셔너리 형태로 데이터를 저장해두는 DB이다. 고로 데이터 하나 하나 마다 같은 값들을 가질 필요가 없게되고, 자유로운 형태의 데이터 적재에 유리한 대신, 일관성이 부족할 수 있다.
ex) MongoDB
3. Insomnia 설치 및 사용
Insomnia
- Insomnia라는 HTTP 클리언트 툴을 통해서 로컬에 API를 요청하는 툴
4. 3주차 숙제
3주차 숙제는 POST method를 이용해서 물건을 10개를 추가해주는 매우 간단한 숙제였다. 이 숙제는 Insomnia를 사용해서 진행했다.
/* 1 */ { "_id" : ObjectId("61931734368d0945a74a0afe"), "goodsId" : 1, "name" : "맛있는 저녁", "thumbnailUrl" : "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRKRQ3NDs5bjulPr3JaXJzP7DH3Y-71WX9wzQ7N8XD9KLUHjT6L&usqp=CAc", "category" : "food", "price" : 15000, "__v" : 0 } /* 2 */ { "_id" : ObjectId("6193347cdaf0bc7b19fb1d10"), "goodsId" : 2, "name" : "시원한 콜라", "thumbnailUrl" : "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRk7JqMw7ZYZP4ZW136wcoMTmLzbrMIJzUWb1Dhu9cHwCPp0gA&usqp=CAc", "category" : "drink", "price" : 3000, "__v" : 0 } /* 3 */ { "_id" : ObjectId("61933a4ddaf0bc7b19fb1d19"), "goodsId" : 3, "name" : "아이스 아메리카노", "thumbnailUrl" : "http://image.auction.co.kr/itemimage/18/79/2f/18792f67a6.jpg", "category" : "drink", "price" : 5500, "__v" : 0 } /* 4 */ { "_id" : ObjectId("61933aa1daf0bc7b19fb1d21"), "goodsId" : 4, "name" : "발베니 12년", "thumbnailUrl" : "https://file.mk.co.kr/meet/neds/2019/06/image_readtop_2019_372645_15593364623770668.jpeg", "category" : "drink", "price" : 100000, "__v" : 0 } /* 5 */ { "_id" : ObjectId("61933b1edaf0bc7b19fb1d27"), "goodsId" : 5, "name" : "망고 요거트 스무디", "thumbnailUrl" : "https://cdn.imweb.me/thumbnail/20200902/05d4e4fdd5929.jpg", "category" : "drink", "price" : 7000, "__v" : 0 } /* 6 */ { "_id" : ObjectId("61933b67daf0bc7b19fb1d2b"), "goodsId" : 6, "name" : "물", "thumbnailUrl" : "http://health.chosun.com/site/data/img_dir/2020/03/04/2020030402617_0.jpg", "category" : "drink", "price" : 1000, "__v" : 0 } /* 7 */ { "_id" : ObjectId("61933baedaf0bc7b19fb1d2f"), "goodsId" : 7, "name" : "치킨", "thumbnailUrl" : "https://w.namu.la/s/0757e0521734bb19004e9c35b3d64e26509edd9480b184cdc591364f7d336c01294622cc7c3ec3a1cf95caf9d177e1abb2039b315958a3989b168e637497fb54ac296cab8950f3f81720029a246ced799154d29b3619401c53acbcba57fb0b38", "category" : "food", "price" : 20000, "__v" : 0 } /* 8 */ { "_id" : ObjectId("61933becdaf0bc7b19fb1d34"), "goodsId" : 8, "name" : "갈비찜", "thumbnailUrl" : "http://m.nbfood.co.kr/web/product/big/202010/b20760c89bb0b68905b4fb3681d3cd49.jpg", "category" : "food", "price" : 35000, "__v" : 0 } /* 9 */ { "_id" : ObjectId("61933c2ddaf0bc7b19fb1d38"), "goodsId" : 9, "name" : "김치볶음밥", "thumbnailUrl" : "https://m.cjthemarket.com/cjom/design/detail/prd_deatil_40063646_01.jpg", "category" : "food", "price" : 8000, "__v" : 0 } /* 10 */ { "_id" : ObjectId("61933c87daf0bc7b19fb1d3e"), "goodsId" : 10, "name" : "우니", "thumbnailUrl" : "http://hansando.godohosting.com/yamtable_cdn/data/goods/20/03/13/1000000206/1000000206_detail_031.jpg", "category" : "food", "price" : 75000, "__v" : 0 }
5. 3주차 소감
그 전에 웹개발 종합반이나 웹개발 플러스 강의를 들었을 때는 서버 쪽을 파이썬으로 했다. 그때는 뭔가 되게 쉬었다는 느낌을 받았는데
Node.js는 뭔가 어려웠다. 근데 다시 돌려서 보면 쉽다. 뭔가 안해본거라서? 어색해서 그런것같다. 강의를 듣고 직접 실습을 해보면
뭔가 잘 할 수 있을 것 같은 느낌도 들면서 금주 토요일에 제출해야할 개인 프로젝트도 걱정이 크다...
'스파르타코딩클럽 Node.js 기초반' 카테고리의 다른 글
[항해4기] 스파르타코딩클럽 Node.js 기초반 5주차 회고록 (0) 2021.11.17 [항해4기] 스파르타코딩클럽 Node.js 기초반 2주차 회고록 (0) 2021.11.15 [항해4기] 스파르타코딩클럽 Node.js 기초반 1주차 회고록 (0) 2021.11.15