본문 바로가기
반응형

전체 글1065

[프로그래머스] : Python,파이썬 카펫 풀이 def solution(brown, yellow): ab = brown + yellow for b in range(1, ab+1): if (ab / b) % 1 == 0: a = ab/ b if a >= b: if a*2 + b*2 == brown + 4: return [a,b] 방정식을 활용해야 한다. 전제 조건을 살펴보면 카펫의 가로 길이는 세로 길이와 같거나 길다. 즉, 가로 ≥ 세로가 된다. 가로를 a 세로를 b라고 했을 때 갈색과 노란색 칸 수를 구해보면 수식은 2a - 2b - 4 = Brown이 된다. 가로 * 세로를 했을 때 각 겹치는 모서리 부분을 빼줘야 하기 때문에 -4를 해준다. 즉, 저 수식에서 a 값만 구하면 b값을 알 수 있게 된다. for 문으로 전체 네모칸 만큼 반복시킨다. .. 2022. 4. 29.
[TIL] : 184 일일 배움을 위한 Today I Learned ! Hadoop 하둡으로 간단한 프로젝트를 진행했다. 2022.04.28 - [Data Base/Hadoop] - [Hadoop] : 맵리듀스 버전 별 차이 2022.04.28 - [Data Base/Hadoop] - [Hadoop] : 하둡, 맵리듀스 프로젝트, 3글자 이상인 단어만 빈도 수 분석해보기 2022.04.28 - [Data Base/Hadoop] - [Hadoop] : 하둡, 맵리듀스 프로젝트 IP 별 호출 빈도 수 분석하기 소경관 csv 파일 처리에 대해 고민하고 있다. 정보처리기사 시험이 얼마 남지 않아 책으로 공부하고 있다. 2022. 4. 28.
[Hadoop] : 하둡, 맵리듀스 프로젝트 IP 별 호출 빈도 수 분석하기 access_log 파일로부터 URL을 호출한 IP별 빈도수를 분석한다. Access_log에 저장되는 항목들은 전세계 공통이다. 주요 항목 구성으 IP주소 - 접속시간 - 통신방법 - 통신프로토콜 - 전송코드이다. cd /data/file gzip -d access_log hadoop fs -put /data/file/access_log /access_log 파일 압축을 풀어주고 hadoop으로 옮겨준다. 코드는 아래 링크에서 확인한다. https://ohju96.notion.site/IP-5f41cf74fc6846a6ab8b652c7c2c6634 IP 별 호출 빈도수 분석하기 access_log 파일로부터 URL을 호출한 IP별 빈도수를 분석한다. ohju96.notion.site 빌드를 다시 해서 .. 2022. 4. 28.
[Hadoop] : 하둡, 맵리듀스 프로젝트, 3글자 이상인 단어만 빈도 수 분석해보기 단어의 길이가 3글자 이상인 단어만 빈도수를 분석하도록 하는 프로젝트를 시작한다. 단어는 대소문자를 따로 구분하지 않고 분석하지만 일단 소문자로 처리해 본다. 자세한 코드는 아래서 확인이 가능하다. https://ohju96.notion.site/3-0e58681981d141139f93ccc44de10c03 3글자 이상인 단어만 빈도수 분석하기 단어의 길이가 3글자 이상인 단어만 빈도수를 분석하도록 하는 프로젝트를 시작한다. ohju96.notion.site 2022. 4. 28.
[Hadoop] : 맵리듀스 버전 별 차이 하둡의 기능 개선으로 인해 필수 핵심 코어인 맵리듀스 API도 변경이 된다. 맵리듀스 API는 Old API와 New API로 구분이 된다. 1.x 버전을 MRv1이라 표현하고 2.x 버전을 MRv2라고 표현한다. 검색할 때 확실히 체크할 수 있는 게 패키지 명이 mapreduce.*면 2.xx대 버전, mapred.*면 1.xx대 이다. 객체 명도 좀 바뀌었다. 2.x 버전에서 생긴 setup과 cleanup 생겨다. 각각 맵이 실행하기 전에 실행되는 함수, 맵 함수가 완전히 끝나고 난 뒤에 실행이 되는 함수이다. 이렇게 관점, 시점에 따른 프로그래밍이 가능하게 바뀌었다. https://ohju96.notion.site/f6d35a9fd82c4a5c8d9f311fff2cefe9 2022. 4. 28.
[TIL] : 183 일일 배움을 위한 Today I Learned ! Git 깃 허브로 버전 관리를 위해 pull request를 사용해 보기로 했다. 테스트하고 글을 남겼다. 2022.04.27 - [DevOps/Git] - [Git] : git pull request 활용하기 (프로젝트 관리) 소경관 파이썬 프로젝트 셋팅을 했다. 아무래도 csv 파일 읽고 저장하는 것과 ocr 분석은 파이썬으로 해야할 것 같다. 파이썬 프로젝트를 해 본 적이 없어서 본격 삽질이 곧 시잘될 것 같다. 정보처리기사 10일 정도 시험이 남았다. 벼락치기 공부를 빨리 시작해야 한다. 공부하는 동안은 프로젝트는 하루 2시간 정도만 진행하고 나머지는 모두 정보처리기사 공부를 해야겠다. 2022. 4. 27.
[Git] : git pull request 활용하기 (프로젝트 관리) 협업이나 혼자 프로젝트를 진행하면서 오늘 작업한 내용을 기능 단위로 관리하고 체크하기 위해 git pull request를 사용하기로 했다. 오픈 소스 프로젝트에 기여할 때는 fork를 하고 아래를 따라하면 된다. 테스트로 build.gradle에 메일 관련 라이브러리 의존성을 추가해주었는데 이것을 pull request로 올려보겠다. git checkout -b mail **git checkout -b 브랜치명** 명령어를 통해 기능 혹은 사용자 단위로 브랜치명을 생성해 준다. 보통은 기능 단위로 브랜치명을 생성해 주는 것 같다. -b 가 브랜치 생성을 말한다. git branch -a 명령어로 브랜치를 확인할 수 있다. git branch -d 브랜치명 로컬 브랜치 삭제도 가능하다. git push .. 2022. 4. 27.
[TIL] : 182 일일 배움을 위한 Today I Learned ! Hadoop 하둡의 맵리듀스를 사용해서 글자를 카운팅하는 작은 프로젝트를 만들어봤다. 2022.04.26 - [Data Base/Hadoop] - [Hadoop] : 맵리듀스 기본 개념, 특징, 주요 처리 과정과 프로젝트 설명 2022.04.26 - [Data Base/Hadoop] - [Hadoop] : 맵리듀스를 활용해서 단어별 빈도수 분석, 단어 세기 2022. 4. 26.
[Hadoop] : 맵리듀스를 활용해서 단어별 빈도수 분석, 단어 세기 아래 링크에서 확인이 가능하다. https://ohju96.notion.site/1d16c6f74f7246e28aabe7c23a82681d 맵리듀스 실습 단어별 빈도수 분석 (단어 세기) ohju96.notion.site 2022. 4. 26.
[Hadoop] : 맵리듀스 기본 개념, 특징, 주요 처리 과정과 프로젝트 설명 맵리듀스 기본 개념 하둡 핵심 코어 기술 중 하나이다. 분산된 다양한 노드들의 작업을 통해 처리하는 기술이다. 각 노드에 분산되어 있는 데이터를 하나의 노드에 저장된 것 같이 처리할 수 있다. 맵리듀스는 Map과 Reduce로 구성되어있다. 맵리듀스 특징 자동으로 분산 및 병렬 처리 수행 장애 허용(Fault Tolerance) 개발자에 적합한 처리 기술 맵리듀스는 Java로 개발되었다. 맵리듀스 프로그래밍도 Java로 개발한다. 맵리듀스 주요 처리 과정 Map 싱글 HDFS 블록들에 대해 각 Map 작업이 수행된다. Map 작업들은 대체로 블록이 저장된 노드에서 실행된다. Shuffle and Sort 모든 Mapper에서 Shuffle and Sort 작업이 실행된다. 모든 Map 작업들이 종료될 때.. 2022. 4. 26.
[TIL] :181 일일 배움을 위한 Today I Learned ! MongoDB MongoDB 프로젝트를 완성해 나가고 있다. insertMany를 통해 많은 데이터를 한 번에 넣는 작업을 했고, 이미 있는 컬렉션을 삭제하는 공통 로직을 생성해주었다. 2022.04.25 - [Data Base/MongoDB] - [MongoDB] : 방대한 양의 데이터를 저장하기 위해 insertMany 사용하기 2022.04.25 - [Data Base/MongoDB] - [MongoDB] : Collection 삭제 공통 로직 2022. 4. 25.
[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.
[MongoDB] : 몽고디비 find 쿼리 사용 멜론에 수집된 노래들의 가수를 검색한다. find 쿼리를 사용해서 방탄소년단을 검색하고 멜론 top 100순위에 있는 방탄소년단의 노래 리스트를 뽑아본다. 코드는 아래 링크에서 확인한다. https://ohju96.notion.site/Find-e4f1977f8856495f8d98f0f3b14caa9a Find 쿼리를 사용해서 조건 검색하기 멜론에 수집된 노래들의 가수를 검색한다. ohju96.notion.site 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.
[TIL] : 178 일일 배움을 위한 Today I Learned ! 알고리즘 소수 찾기 관련 알고리즘을 다시 봤다. MongoDB 프로젝트에서 MongoDB를 사용해야 하는데 아직 활용을 잘 할 줄 몰라서 천천히 작은 프로젝트로 연습해 보고 있는 중이다. 2022.04.22 - [Data Base/MongoDB] - [MongoDB] : MongoDB란? 2022.04.22 - [Data Base/MongoDB] - [MongoDB] : CentOS에서 MongoDB 설치 및 셋팅하기 2022.04.22 - [Data Base/MongoDB] - [MongoDB] : Data Grip으로 MongoDB 외부 접속하기 2022.04.22 - [Data Base/MongoDB] - [MongoDB] : Spring Boot .. 2022. 4. 22.
[MongoDB] : Spring Boot 연동 및 MongoDB Test Code 작성 Spring Initializr 먼저, 위 페이지에서 Spring Boot 프로젝트를 생성해 준다. 버전 체크하고 의존성을 추가한다. 나중에 Redis도 사용할 예정이라 추가해주었다. Redis를 할 필요가 없다면 굳이 체크하지 않아도 된다. 이제 프로젝트를 임포트하고 웹 크롤링을 위한 라이브러리를 추가해 주어야 한다. jsoup 라이브러리를 사용하는데 프로젝트를 만드는 곳에서 따로 지원을 안 하는 것 같다. implementation 'org.jsoup:jsoup:1.14.3' dependencies{} 안에 추가해 주면 된다. 이제 MongoDB랑 Spring Boot랑 연동을 해줘야 한다. # MongoDB 연동 spring.data.mongodb.host=192.168.228.142 spring... 2022. 4. 22.
[MongoDB] : Data Grip으로 MongoDB 외부 접속하기 외부 접속을 위해 방화벽을 먼저 해제해야 한다. CentOS에서 MongoDB 설치 및 셋팅하기 CentOS에서 MongoDB 설치 및 셋팅하기 yum 레포지토리 생성을 통한 설치와 tar.gz 압축된 파일 설치가 있다. yum을 통한 설치가 환경 변수 설정이나 관리가 수월해서 추천한다. www.notion.so 위 링크에서 맨 아래 부분에 보면 방화벽 설정하는 방법을 참고한다. MongoDB를 선택해 열어준다. 이름 붙여주고 Host는 ifconfig 명령어로 체크하고 적어준다. → Test Connection을 눌러 성공이 뜨면 OK를 누른다. db.createUser({ user:'root', pwd:'1234', roles:['root'] }) admin을 우클릭해서 쿼리 콘솔을 열어주고 root.. 2022. 4. 22.
반응형