본문 바로가기
반응형

몽고디비20

[TIL] : 222 일일 배움을 위한 Today I Learned ! 소경관 MongoDB 컬렉션을 조회해 오는 부분을 살짝 리팩토링 해주었다. 2022.06.05 - [Project/소경관] - [소경관] : 완료 항목 보기 리팩토링하기 2022. 6. 5.
[소경관] : 완료 항목 보기 리팩토링하기 체크를 마치고 완료 항목 리스트를 볼 때 모든 컬렉션 리스트가 아니라 로그인 사용자의 컬렉션 리스트만 보이도록 바꿔주었다. for (String colNm : mongo.getCollectionNames()) { if (colNm == null) { colNm = new String(); } // 컬렉션 명을 _ 기준으로 잘라 String 배열에 담는다. String res[] = colNm.split("_"); // String 배열 중 ID값이 있는 부분과, 세션의 id값을 각 String 변수에 담는다. String result = res[0]; String sessionId = userDTO.getUserId(); // 두 String을 비교하여 같을 시 리스트에 담아준다. if (result.e.. 2022. 6. 5.
[소경관] : 등록한 차량 초기화 등록한 차량 초기화하는 기능을 구현했다. 사실 등록한 차량을 초기화 하는 것 자체는 어렵지 않다. 컬렉션만 날려주면 되서 MongoDB 라이브러리에서 제공하는 템플릿을 통해 drop만 해주면 된다. mongo.dropCollection("Car"); 코드로 보면 이렇게 한 줄이면 되고, 리턴은 boolean으로 나중에 true, false로 성공, 실패 여부만 따로 체크해 줄 수 있도록 했다. 2022. 5. 31.
[TIL] : 213 일일 배움을 위한 Today I Learned ! 소경관 MongoDB에 저장된 컬렉션 중 원하는 것만 가져와서 View에 뿌려주는 작업을 하고 간단하게 정리했다. 2022.05.27 - [Project/소경관] - [소경관] : MongoDB에서 원하는 Collection 명만 가져와서 View에 List로 뿌려주기 2022. 5. 27.
[소경관] : MongoDB에서 원하는 Collection 명만 가져와서 View에 List로 뿌려주기 저장 목록 View에서는 데이터를 가져와서 뿌려주는 작업만 한다. 나중에 추가하면 클릭해서 상세 보는 것도 추가해야 하지만 일단은 이렇다. public interface ICheckMapper { // 완료 항목 보기 List viewCheck() throws Exception; } 인터페이스에서 정의해주고 오버라이딩해서 사용한다. @Override public List viewCheck() throws Exception { List viewCarDTOList = new LinkedList(); for (String colNm : mongo.getCollectionNames()) { if (colNm == null) { colNm = new String(); } if (colNm.length() > 5).. 2022. 5. 27.
[소경관] : 프로젝트 중간 발표 및 MongoDB Collection 명 중 특정 Collection만 가져오기와 그 이후 진행 예정 오늘 학교에서 프로젝트 중간 발표가 있었다. 지금까지 만들어 둔 기능은 그렇다고 해도 지적받은 부분이 프론트가 별로 이쁘지 않다는 점인데 아직 가져온 부트스트랩 템플릿을 따로 수정하진 않았지만 벌써 답답한 느낌이 든다.. 오늘은 MongoDB에 저장된 Collection을 가져와서 리스트로 보여줘야 하는데 Collection 중 특정 컬렉션 명만 가져와서 보여줘야 했다. 여기서 CHECK_로 시작하는 Collection만 가져와야 해서 길이를 기준으로 끊어서 가져왔다. 어차피 다른 Collection이 없어서 길이로 기준으로 끊었다. 결과적으로는 가져오긴 했지만 클릭했을 때 다시 세부 정보를 보여줘야 하는 로직은 아직 시작하지 않았다. 이번주 마무리 하면서 완성시키고 다음 주 부터는 차량 번호판 이미지 .. 2022. 5. 26.
[TIL] : 201 일일 배움을 위한 Today I Learned ! 소경관 MongoDB 공통 로직을 짜봤다. package project.SPM.mapper; import com.mongodb.client.model.Indexes; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.data.mongodb.core.MongoTemplate; @Slf4j @RequiredArgsConstructor public abstract class AbstractMongoDBComon { protected MongoTemplate mongodb; /** * 컬렉션 생성하기 * @param colNm 생성할 .. 2022. 5. 15.
[소경관] : 주민(방문자, 블랙리스트) 차량 조회 로직 MongoDB에 등록한 차량 정보 중 주민 차량만 가져오는 로직을 구현한다. 이름 연락처 차량번호 주소 구분 View에서는 carDTOList를 받아서 th:each로 반복시켜 리스트를 쭉 뽑아준다. package project.SPM.mapper; import project.SPM.dto.CarDTO; import java.util.List; public interface ICarListMapper { List getResidentList() throws Exception; } 주민 차량 조회를 위한 메서드와 리턴 타입을 정의해 준다. // 주민 차량 조회 @Override public List getResidentList() throws Exception { // 조회 결과를 전달하기 위한 객체 생성.. 2022. 5. 14.
[MongoDB] : Collection 삭제 공통 로직 컬렉션이 존재할 때 삭제하고 다시 만들기 위해 삭제 공통 로직을 만들어주었다. 따로 설명할 게 없는 코드이다. 자세한 코드는 아래 링크에서 확인이 가능하다. https://ohju96.notion.site/Collection-2bdaa877c5fa4ad7bdaa726e7ac29b78 Collection 삭제 공통 로직 컬렉션이 존재할 때 삭제하고 다시 만들기 위해 삭제 공통 로직을 만들어주었다. ohju96.notion.site 2022. 4. 25.
[MongoDB] : 방대한 양의 데이터를 저장하기 위해 insertMany 사용하기 멜론 크롤링으로 수집된 노래 100개를 한 번에 저장한다. 데이터 저장헤는 insertMany쿼리를 사용한다. insertOne에 비해 동일한 양의 데이터를 저장할 경우 insertMany가 저장 속도는 월등히 빠르다. 람다식을 사용해서 코드를 작성해 본다. 위 경로로 접속하여 성공 문구가 뜨는지 확인한다. insertMany 쿼리를 사용해 한 번에 100개의 노래를 저장해주었다. 코드는 아래 링크에서 확인 가능하다. https://ohju96.notion.site/insertMany-bd4cc8be3326441fb1e1124f903a6de7 방대한 양의 데이터를 저장하기 위해 insertMany 사용하기 멜론 크롤링으로 수집된 노래 100개를 한 번에 저장한다. ohju96.notion.site 2022. 4. 25.
[TIL] : 180 일일 배움을 위한 Today I Learned ! MongoDB MongoDB 조회하는 쿼리를 작성하고 테스트했다. 멜론 인기 차트를 가져오고 그 중에서 방탄소년단의 리스트만 뽑았다. 2022.04.24 - [Data Base/MongoDB] - [MongoDB] : 몽고디비 find 쿼리 사용 2022. 4. 24.
[TIL] : 179 일일 배움을 위한 Today I Learned ! MongoDB 몽고디비를 사용하는 프로젝트를 간단하게 만들어봤다. 2022.04.23 - [Data Base/MongoDB] - [MongoDB] : Spring Boot 웹 크롤링하여 MongoDB에 데이터 넣고 조회하기 스터디 오늘 스터디도 잘 마쳤다. 이제 1회차만 남겨두고 있다. 2022.04.23 - [발전소/동아리 및 스터디] - [코딩 스터디 2기] : 8주차 2022. 4. 23.
[코딩 스터디 2기] : 8주차 오늘 스터디도 잘 마무리했다. 쌤 한 명이 전 날에 과음으로 참여하지 못 하셨지만 다른 쌤들은 모두 참여했다. https://ohju96.notion.site/8-9da12734cb834f06bff0a8a61d9f1e30 8주차 리뷰 ohju96.notion.site 한 주간 공부한 내용을 첨부하고 이번에 Filter 구현한 것을 발표하고 몇 가지 피드백을 받았다. 스터디 시간에는 Melon 인기 차트를 크롤링해와서 MongoDB에 넣는 코드를 짰고 작동 확인까지 하고 마무리했다. 2022. 4. 23.
[MongoDB] : Spring Boot 웹 크롤링하여 MongoDB에 데이터 넣고 조회하기 웹 크롤링을 위해서 먼저 해당 페이지가 웹 크롤링을 해도 되는 페이지인지 확인하기 위해 사이트 주소 뒤에 /robots.txt 붙여 확인한다. https://www.melon.com/robots.txt chart 크롤링이 허용되어 있다. Disallow로 명시되어 있으면 크롤링을 할 수 없다. 멜론 차트 탑 100을 수집하고 저장한다. 저장한 차트를 조회한다. 가수별 차트에 등록된 노래 수를 카운트한다. Online JSON Viewer Online JSON Viewer jsonviewer.stack.hu JSON 웹 뷰어에서 조금 더 편하게 볼 수 있다. 코드는 아래 링크에서 확인이 가능하다. https://ohju96.notion.site/TOP-100-2011fd56ff7547a2b1e15682e5.. 2022. 4. 23.
[소경관] : Ubuntu MongoDB root 계정 설정 및 Robo 3T 외부 접속 Ubuntu MongoDB root 계정 설정 및 Robo 3T 외부 접속 MongoDB 관리자 계정 추가 sudo service mongod start MongoDB를 시작한다. mongo MongoDB에 접속해 준다. 참고 | exit를 통해 빠져나올 수 있다. use admin admin 유저에 접속한다. db.createUser( { user:'root', pwd:'1234', roles:['root'] } ) root 계정을 생성해 준다. db.dropUser("root") root를 삭제한다. db.getUsers() 사용자 목록을 확인할 수 있다. MongoDB 접속 인증 설정 인증 과정을 거쳐 접속하기 위해 설정 파일을 수정한다. sudo service mongod stop MongoDB를.. 2021. 12. 24.
[오류 노트] : cannot connect to the mongodb at :27017. error: network is unreachable. reason: couldn't connect to server :27017, connection attempt failed: socketexception: error connecting to27017 :: caused by :: ǻ ϳ ź ƿ ߽ θ . 문제 cannot connect to the mongodb at :27017. error: network is unreachable. reason: couldn't connect to server :27017, connection attempt failed: socketexception: error connecting to27017 :: caused by :: ǻ ϳ ź ƿ ߽ θ . MongoDB를 Robo 3T를 통해 외부 접속하려고 했는데 연결하는 도중에 이런 오류가 떴다. 해결 sudo service mongod status 우선 MongoDB의 작동 상태를 확인했는데 정상적으로 돌아가고 있었다. sudo service mongod stop MongoDB의 작동을 잠시 멈춰주고 멈춘 상태를 다시 .. 2021. 12. 24.
[TIL] : 41 일일 배움을 위한 Today I Learned ! NOSQL 몽고DB 설계를 위한 논리적 구조 설계 이론과 몽고DB 설계 기준을 공부했습니다. 2021.12.06 - [Data Base/NOSQL] - [NOSQL] : MongoDB 논리적 구조 설계 2021.12.06 - [Data Base/NOSQL] - [NOSQL] : MongoDB의 설계 기준 2021. 12. 6.
[NOSQL] : MongoDB의 설계 기준 MongoDB를 구축하기 위한 설계 기준입니다. 데이터 조작은 어떻게 하나요? 하나의 Collection은 여러 개의 필드로 구성됩니다. 소량의 데이터, 대용량의 데이터 등 여러 데이터를 저장하는 필드들이 있습니다. 매일 참조되는 필드가 있을 수도 있고, 일 년에 한 번씩 참조되는 필드가 있을 수도 있습니다. 다양한 필드들을 하나의 Collection으로 생성하게 되면 불필요하게 메모리와 CPU 등 시스템 자원을 낭비하게 되고 시스템 성능을 저하시키는 원인이 될 수 있습니다. ACCESS PATTERN은 어떤가요? 빅데이터에 대한 쓰기 작업이 빈번한 Collection은 여러 개의 Collection으로 분리 설계하게 되면 초당 몇 만건의 데이터를 빠르게 저장하는데 한계가 있을 수 밖에 없습니다. 빅데이.. 2021. 12. 6.
[NOSQL] : MongoDB 논리적 구조 설계 MongoDB, 몽고디비 논리적 구조 설계 시 주요 특징 MongoDB는 데이터와 프로세스 모두가 설계의 중심입니다. 파일 시스템을 이용한 데이터 저장 기술은 기업의 업무적 프로세스 중심으로 데이터를 해석하고 구조를 설계하는 방법입니다. 데이터베이스 관리 시스템을 이용한 방ㅂ접은 기업에서 발생하는 데이터를 중심으로 분석, 설계하는 방법입니다. NoSQL 기술에서는 기업의 업무적 프로세스와 데이터 모두를 설계의 중심으로 두어 유연한 데이터 구조를 설계하고 관리할 수 있습니다. Rich Document Structure를 제공합니다. Rich Document Structure는 일부 데이터 중복이 발생한다고 해도 빠른 데이터 처리 및 효율적인 관리가 보장도니다면 비정규화된 설계구조도 하나의 설계 방법이 될 .. 2021. 12. 6.
01 . MongoDB 서버 실행 및 클라이언트 접속 MongoDB를 다운로드 하고 C드라이브 아래 파일을 만들어서 가져옵니다. 윈도우 명령 프롬프트를 열어주고 cd c"\mongodb 명령어를 통해서 경로로 이동해 줍니다. mkdir test 메모리, 파일, 프로세스 영역을 활성화 하기 위해서 데이터가 저장될 물리적 경로를 생성해 줍니다. cd bin 아까 mongodb 경로에서 bin 경로로 들어가 주고 mongod --version 저장된 mongoDB 버전이 본인이 설치한 버전인지 체크해 줍니다. mongod --dbpath C:\mongodb\test 이제 아까 만든 test 파일을 경로로 mongoDB의 인스턴스를 활성화 시켜줍니다. ( mongoDB를 시작할 때 사용되는 서버 프로그램인 mongod.exe가 실행됩니다.) 이 단계에서 어떤 장애.. 2021. 8. 31.
반응형