20230907 _[69일차]_01. MongoDB 사용해보기
몽고DB _ NOSQL
https://www.scylladb.com/glossary/nosql-design-principles/
NoSQL Design Principles
Learn the definition of NoSQL design principles and get answers to FAQs regarding: What are NoSQL base design principles vs ACID, how do you design NoSQL schema & more.
www.scylladb.com
다운로드 받자.
Download MongoDB Community Server | MongoDB
우리가 사용해볼건 아래꺼다.
MongoDB Atlas란? (원격 DB가 생성된다.) _ 계정생성 및 설치방법 자세히 나와있음
[MongoDB] 무료 몽고디비(MongoDB) Atlas (tistory.com)
[MongoDB] 무료 몽고디비(MongoDB) Atlas
MongoDB Atlas 란? MongoDB Atlas는 MongoDB를 설계한 사람들이 만든 모든 것을 관리하는 클라우드 데이터베이스 AWS, Azure, GCP를 통해 배포에 관한 모든 것을 통합 관리해줌 -위키백과- - MongoDB를 설치하면
dev-cini.tistory.com
여기에서 다운로드 할건데 일단 계정먼저 만든다. (google계정으로 만듬)
https://www.mongodb.com/cloud/atlas
MongoDB Atlas Database | Multi-Cloud Database Service
The multi-cloud database service at the heart of our developer data platform that accelerates and simplifies how you build with data. Try MongoDB Atlas today!
www.mongodb.com
아래처럼 해준다. 가운데꺼는 아무거나 해주고 마지막꺼만 자바로 체크
vCPU가 뭔지 찾아보기
M0로 선택 (무료계정)
다른것들은 신용카드가 필요한데 과금주의
그다음페이지에서 계정만들고 내 ip주소 추가하고
아래 페이지가 나오면 window 선택하고 다운로드한다.
설치가 완료되면 실행하고
위에서 복사한 주소를 여기에 넣어준다.
패스워드가 제대로 안들어가 있으면 아래에서 패스워드 입력해줘도 된다.
연결성공
새로운 db하나 만들자
db명은 test, 컬렉션명도 test로 일단 생성
test라는 이름으로 생성됐다.
ADD DATA 클릭해보면 아래처럼 뜨는데
CSV file 은?? _ 찾아보기 엑셀파일이란다.
insert document를 클릭해보면
아래처럼 제이슨 형태인걸 볼수있다.
데이터 추가해본다. ket : value 형식맞춰서
객체형태의 데이터가 있는 문서로 하나더 추가해본다.
이제 java에 연결해보자
이클립스 새로운 프로젝트(sep07) 생성
설정추가 (Spring Data MongoDB 추가)
gradle에 요렇게 있으면 된다. PDF 참고
mongodB 아이디랑 패스워드, db명 넣어준다.
spring.thymeleaf.cache=false => 불필요한 템플릿 캐싱을 막는 역할
(재시작할 필요없이 새로고침만 해도 수정사항이 반영된다)
entity 패키지 & test 클래스 만든다.
변수선언해준다.
pdf 참고하기
컨트롤러 & 서비스 패키지, 클래스 생성
인터페이스 TestRepository 생성
컨트롤러에 /test 요청에 대한 로직 생성
db값을 Test타입인 List로 받아와서 model에 붙여 리턴.
서비스에서 findAll() 메소드 실행
아래에서 자동으로 쿼리를 만들어주기 때문에 findAll() 메소드를 사용할 수 있다.
test.html 생성하고 list를 출력해보자
오류난다 정보 다시 확인해보자
아래 클릭해서 connection 경로 복사해온다.
다시 경로설정해주기
근데 또 에러가 난다.
컨트롤러에서 아래 두개 추가해준다,
@AllArgsConstructor : 모든 필드 값을 파라미터로 받는 생성자를 만듦
@NoArgsConstructor : 클래스의 기본생성자 자동
생성, JPA에서 Entity 클래스를 작성할 때 많이 사용
Lombok 라이브러리에서 제공되는 어노테이션 _ (9/1일자 참고)
hobby를 담아올 데이터타입도 Map으로 다시 수정해준다.
com.phyho.web으로 해서 하위 패키지들을 못불러와서 계속 404 오류가 났었다. **주의**
이제 잘 뜬다.
entity 하위에 Board 만들어준다
같은 과정으로 Board 컨트롤러, 서비스, fl 만들어준다.
write도 만들어준다.
파일들을 다 주셔서
detail도 만듬....
id가 없는경우 처리해주기 위해 Optional을 사용하기도 한다.
객체가 있다 없다의 메소드를 가지고 있따고 한다.
아니면 .get() 으로 처리해준다.
일단 컨트롤러에서는 get() 으로 처리해주고 서비스에서 Optional 처리해준다.
sns 로직도 넣어준다.
list를 날짜순으로 정리해준거다.
sns가보면 내가 넣어준 사진이 아래형태로 뜬다.
detail에서 수정/삭제 로직 복붙
삭제 잘된다.
글의 갯수도 띄워줘보자 (count)
이제 수정로직 (detail로직과 똑같다.)
detail 페이지에 id를 넣어줘서 id가 있다면 update가 적용되도록 해준거다.