📌2020 07 11 MySql -> NoSql 데이터 베이스 변경 , 개인프로젝트이기 때문에 몽고DB가 더 적절하다고 판단함 수업에서는 한명의 User당 Order 데이터를 여러개 생성했는데, 이럴경우 Order에 들어간 아이템들이 무의미하게 겹쳐질 수 있겠다 생각함, 따라서 한명의 User당 하나의 Order데이터만 갖고 Order에 들어갈 아이템 리스트를 Object Array로 변경하여 Order 데이터에 Embeded함. 추후에 유저 한명 당 여러개의 Order를 생성해야하는 경우에는 이전 방식으로 다시 돌아가도록! 기존의 Order에는 아이템의 정보를 Embeded 했지만, products와 order의 관계가 다대다(Many to Many) 관계라고 판단하여 Products를 참조(ref)하..
MongoDB 커넥션 풀 mongoConnection으로 dbname에 해당하는 데이터베이스(클러스터)로 연결한다. 존재하지 않으면 생성해준다. 연결된 결과를 _db 변수에다 담아준다. getDb 메서드를 이용해 _db 변수를 반환한다. const mongodb = require('mongodb'); const MongoClient = mongodb.MongoClient; let _db; const mongoConnect = (callback) =>{ // for connecting, and storing database MongoClient.connect('mongodb+srv://moonhee:.mongodb.net/shop?retryWrites=true&w=majority') .then(client..
14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 다이나믹 프로그래밍? 혹은 브루트포스 ? 문제이다. 일단 1일차부터 N일차까지 각 상담을 첫 상담으로 한다고 하면, i일차 상담 + ( [i일차 상담이 끝나는 날짜~N일차 상담] 중에서 가장 이득이 큰 상담)이 해당 일차의 가장 이득이 높은 상담이 될 것이다. 그러면 또 i일차 상담이 끝나는 날짜 ~ N일차 상담 중에서 가장 이득이 큰 상담을 구하려면, 해당 일자를 j 일로 놓고 j일차 상담 + ( [ j일차 상담이 끝나는 날짜~ N일차 상담 ] 중에서 가장 이득이 큰 상담) 을 구하면 된다. 그러면 이걸 1일차부터 N일차까지 모두 구하면 되는 것이다. 이걸 더 완벽한 DP로 풀기위해서는 bottom..
17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 문제 설명에 나온대로 구현하면 되는 시뮬레이션 문제이다. 확산: 4방향으로, 모든 미세먼지가 동시에 확산된다. 정화: 공기청정기의 윗부분과 아랫부분의 바람의 방향에 따라서 미세먼지의 자리가 옮겨진다. 로직은 아래와 같다. BFS로 4방향 확산을 시켜준다. 여기서 확산시킨 미세먼지의 값은 변경해주되, 확산 된 미세먼지의 값은 다른 배열에 같은 위치에 저장(플러스) 해둔다. 모든 위치의 미세먼지의 확산이 끝났다면, 저장해둔 확산된 미세먼지를 각 위치에 더해준다. 공..