일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- reduce
- 노마드코더
- ubuntu
- Joi
- it
- java
- 자바스크립트
- npm
- JWT
- JavaScript
- MYSQL
- TypeScript
- Load Balancer
- https
- 조건문
- 프로그래머스
- nginx
- 생활코딩
- CORS
- Node.js
- 메소드
- nomadcoder
- 항해99
- 타입스크립트
- mongodb
- Nodejs
- AWS
- mongoose
- elb
- wil
- Today
- Total
V-logue
[항해99] WIL(Week I Learn) - 4주차 본문
저번주에 미처 배포에 실패했던 과제지만,
이번 주차에는 과제 배포에는 성공했다.
물론 모든 기능 구현에는 실패했는데.......................
분명히 댓글 수정버튼을 만들고 수정했을 때 success가 뜨길래 나는 수정이 됐다고
생각했는데, 어제 코드를 분석할 겸 확인해보니
댓글 수정이 안되고 success만 뜨는 모습을 확인했다.
무척 안습한상황..
주말 동안 수정버튼을 고치는데 몰두했다.
이번 주차에는 ORM 프레임워크인
Sequelize를 사용하여 my SQL을 사용했다.
sequelize는 my sql을 쉽게 사용할 수 있도록 지원하는 라이브러리로
ORM으로 분류된다.
ORM이란 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다. 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다.
그러니까 시퀄라이즈는 Js 객체와 db간 릴레이션을 매핑시켜준다고 할 수 있다.
자바스크립트 구문을 알아서 SQL문으로 바꿔준다.
일단 시퀄라이즈로 my sql서버에 접속하는 일련의 코드를 터미널에 입력하고,
npm i sequelize mysql2 -S
npm i sequelize-cli -D
// D는 devDependency 개발을 할 때 쓰이는 모듈을 설치하기 위해 붙이는 플래그
// sequelize 모델 설치
npx sequelize init
// 설치 사용 준비,
npx sequelize db:create
// SQL db 생성 , Refresh , // 패스워드 데이터 타입 String으로
npx sequelize model:generate --name User --attributes email:string,nickname:string,password:string
// 시퀄라이즈를 실행하는데, 모델:generate를 실행해서 모델 이름은 User
// attribues 어떤속성? email은 문자열, nickname:string .... 이런식으로 유저 모델을 만든다.
// models 파일에 User가 생겼다./ migrations 파일에도 미그레이션 .User가 생긴다.
// migration 파일을 만들려면 위 양식처럼 만들어야 한다.
npx sequelize db:migrate
// 위 코드를 실행해야 sql db에 테이블이 생긴다
위와 같은 과정들을 거치게된다면, my sql서버의 db를 사용할 수 있게된다.
그 동안은 몽고db를 사용했는데, 이제는 my sql을 사용한다니
no sql과 sql의 차이점에 대해서 생각해봤다.
sql은 명확하게 정의된 스키마를 기반으로 데이터의 무결성을 어느정도 보장한다면,
no sql은 스키마가 없기 때문에 유연하다. 언제든 저장된 데이터를 조정할 수 있다.
데이터를 읽는 속도도 빨라지고 수직 및 수평 확장이 가능하기 때문에
앱이 발생시키는 모든 읽기/쓰기 요청을 처리할 수 있다.
sql은 보통 정확한 스키마를 정의하고 써야할 때 좋고,
no sql은 데이터 변경이 적고, 변경 확장 될 수 있을 때 좋다고 한다.
둘 중 어느것을 사용해야 하는지에 대한 정답은 없고, 상황과 환경에 따라 적절하게
선택해서 사용해야 한다.
그리고 이번주에는 테스트코드에 대해서 배웠는데,
처음 배운 코드들은.. 정말이지 무슨 소리를 하는지 하나도 알아들을 수가 없었다....
그리고 지금도 같다....
다음주 월화수목안으로 테스트코드를 이해하는 날이 오기를....
PS.
이글을 보는 사람이 있고, 현재 코딩공부에 대해 회의감이 든다면
https://brunch.co.kr/@jypthemiracle/14#comment
이 글을 한번 보기를 추천한다.
조금 지치고, 나는 지능이 모자른 걸까 고민하던 시점에 이글을 읽고 다시 의지를
힘을 낼수가 있었다. 여자친구에게 감사
'항해 99' 카테고리의 다른 글
[항해99] WIL(Week I Learn) - 6주차 (0) | 2022.06.20 |
---|---|
[항해99] WIL(Week I Learn) - 5주차 (0) | 2022.06.12 |
[항해99] WIL(Week I Learn) - 3주차 (0) | 2022.05.29 |
[항해99] WIL(Week I Learn) - 2주차 (0) | 2022.05.22 |
[항해99] Javascript라는 언어의 특성 (0) | 2022.05.18 |