본문 바로가기

MBTI Project

(8)
MongoDB로 필드명 일괄 변경하기 MBTI 데이터를 정리하고 각 유형별 데이터를 확인해보니 문제가 생겼다. 위와같이 동일하거나 비슷한 이름의 컬럼이 여러개 있어 정리가 잘 되지 않는것이다. 예를들면 MBTI : "INFJ" MBTI 유형 : "INFJ" MBTI 성격유형 : "INFJ" 이 모두 다른 데이터로 표시되는 것이다. 방법은 하나다. 비슷한 컬럼명을 찾아 동일한 이름의 컬럼명으로 변경하는것. 방법을 찾아봤는데 알려진 간단한 방법은 없는 것 같았다. 그래서 아래와 같이 해결했다. 1. find() 명령어로 모든 데이터를 가져옴 2. 해시 테이블에 모든 컬럼명을 Set을 통해 담음 3. 비슷한 값을 모니터링해서 하나의 컬럼으로 합침 우선 updateParam 함수는 1번째 인자(배열)을 순회하며 2번째 인자로 받은 키워드를 포함한 ..
자바스크립트를 통해 mongoDB에서 데이터 필터링하고, 해당 데이터 모아서 다른 테이블에 저장하기 오늘은 자바스크립트를 통해 mongoDB에서 데이터를 필터링하고, 해당 데이터 모아서 다른 테이블에 저장하는 작업을 하고자 한다. 우선 생각해보았다. 궁극적으로는 rest api 방식의 쿼리를 생성할 것이고, 현재는 단순 db 필터링 및 데이터 삽입 작업을 해야한다. 그렇다면 지금 당장은 웹서버를 구동하거나 추가적인 라이브러리를 사용할 필요 없이 그냥 자바스크립트 코드만으로 이 작업을 완료할 수 있겠다. 우선 나는 현재 db의 구조가 아래와 같으므로 title:문서이름 text:문서내용 문서내용에 mbti의 프로필이 존재하는 문서만 필터링 하도록 로직을 작성하도록 한다. 이 작업은 구문분석이 필요하므로 간단한 명령어로 내 예상이 맞는지 먼저 검증한다. 제목에 '지옥'이 들어간 모든 문서를 찾는 로직 잘된..
간만에 커밋. 나무위키 크롤링하기 from selenium import webdriver import time chromedriver = "C:\chromeweb\chromedriver.exe" driver = webdriver.Chrome(chromedriver) name = "효연" driver.get('https://namu.wiki/w/'+name) print("+" * 100) print(driver.title) print(driver.current_url) print("킹무위키 크롤링") print("-" * 100) time.sleep(2) # 킹무위키 페이지 진입해서 프로필 테이블 추출 allProfileElement = driver.find_elements_by_css_selector( "div.wiki-table-wra..
2020.11.25오늘의 커밋. MBTI Project를 Vue로 변경 React로 작업중이었으나 회사의 내년 개발 제품이 Vue+Polymer로 만들어질 예정이라 한번에 React 기반의 MBTI Project와 Vue 공부의 병행은 아무래도 어려울 것 같아 기존 프로젝트를 Vue로 만들어야겠다. 아무래도 React를 좀 해봤으니 쉽게 배울 수 있을거라 생각했는데, 생각만큼 쉽지는 않았다. 리액트처럼 아예 떠먹여주는 수준의 튜토리얼이 아니기도 했고, 실질적인 예제가 없는 설명 기반의 문서여서 그렇기도 했다. 어찌되었든 이번주에는 최대한 달려서 Vue기반 프로젝트 프로토타입은 만들어야겠지 1. Vote 페이지 구현 2. 데이터 입출력 3. Router 이건 이번주에 해야겠다. 또한 이상하게 회사에서 하면 진도가 더럽게 안빠진다. 내일오전에도 이모양이면 그냥 회사에서는 알고리..
Prisma를 통한 개발 인프라 구축 - Prisma와 node 서버 연동 Prisma가 제대로 설치되었다고 하더라도 직접 Prisma의 Admin Playground에 접속해서 조작할것이 아니므로 Prisma에서 관리하는 데이터베이스를 node와 연동해 주어야한다. 사실, 연동은 이미 되어있다. 쿼리에 대한 스키마와 리졸버만 작성해주면 잘 동작한다. 가장 간단한 스키마와 리졸버다. 그러나 현재 서버를 실행하면 에러가 날 것이다. prisma 클라이언트가 생성되지 않았기 때문이다. prisma의 다양한 api를 사용하기 위해서는 클라이언트를 생성해주어야 한다. 간단하게 prisma generator 라는 명령어를 통해 생성할 수 있다. 그러나 prisma generator 이후에도 에러가 난다. 마지막으로 각각의 폴더에 나누어져 있는 스키마를 하나의 모델에 다시 정의해주어야 한..
Prisma를 통한 개발 인프라 구축 - Prisma 설치 및 CRUD 기본적인 GraphQL 서버가 만들어졌다면 prisma를 간단하게 설치하고 곧바로 사용할 수 있다. 1. Prisma 설치(간단) yarn add prisma yarn prisma init yarn prisma deploy 이 3가지 명령어만 써주면 된다. add prisma 이후 정상적으로 설치가 되었다면, (prisma에 가입은 되어있어야 함) prisma init을 하여 초기화를 한다. 이때 ? Set up a new Prisma server or deploy to an existing server? 서버가 따로 없다면 구축해서 쓰거나 Demo server + MySQL database 를 선택하자 ? Choose the region of your demo server 그냥 가장 빠른것을 쓰자 ? ..
Prisma를 통한 개발 인프라 구축 - git 저장소 및 의존성 모듈 설치 기본적인 개발을 위해 인프라 구축을 해야하는데, 굳이 어렵게 할 필요 없이 prisma를 사용하면 데이터 모델 생성부터, 기본적인 CRUD, admin까지 쉽게 만들 수 있다. 1. GitHub에 레파지토리 생성 http://github.com/new GitHub: Where the world builds software GitHub is where over 50 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and feat... github.com 에서 프로..
MBTI Community Project -프로그램 설계- 아주 오래전부터 계획했던 MBTI 프로젝트를 천천히 구현해보고자 한다. 1. 기능 설계 사람들은 남들이 어떤것을 좋아하는지 궁금해하고, 자기와 비슷한 사람들이 특정 내용에 대하여 어떻게 생각하는지 더 궁금해한다. 사용자를 특정 집단에 소속시키고, 사용자가 흥미있을만한 내용을 지속적으로 컨텐츠로 제공한다면, 상당히 재미있는 앱이 될 것이다. 그래서 구상했다. 이 앱은 사용자별 MBTI를 기반으로 다양한 사용자 설문 결과를 통한 통계를 시각적으로 표현한다. 예) 현재 사용자가 답변한 설문이 아래와 같다면 MBTI가 무엇인가요? 사는 지역은 어디인가요? 직업은 무엇인가요? 활동 커뮤니티가 무엇인가요? 취미는 무엇인가요? 선호하는 음식은 어떤가요? 아래와 같은 결과를 확인할 수 있어야 한다. INFJ는 어떤 직..