반응형 분류 전체보기1065 [T.I.L] : 26 일일 배움을 위한 Today I Learned ! Spring Framework 자연어 처리를 공부하고 자연어 처리를 응용해서 웹 크롤링 후 자연어 처리를 해보는 공부를 했습니다. 2021.11.20 - [Framework/Spring Framework] - [Spring Framework] : 자연어처리 [Spring Framework] : 자연어처리 자연어처리? - 내가 말 하고 있는 단어, 타이핑하는 글 등을 컴퓨터가 인식할 수 있게 하는 걸 자연어처리라고 합니다. - 자연어처리는 한국어로 사용하기엔 어렵습니다. - 한국어 문장을 입력받 ohju.tistory.com 2021.11.20 - [Framework/Spring Framework] - [Spring Framework] : 웹 크롤링 후 자.. 2021. 11. 20. [Spring Framework] : 웹 크롤링 후 자연어 처리 네이버 뉴스 수집 서비스 구현 네이버 뉴스 기사를 크롤링해 데이터를 수집하고 수집된 기사 내용을 통해 자연어 처리를 합니다. 크롤링 할 기사를 선택하고 개발자 모드로 html 소스를 분석해 봅니다. 네이버 기사 본문 시작점입니다. package poly.service; public interface INewsCollectService { //네이버 뉴스 기사 크롤링으로 가져오기 String doNaverNewsContents(String url) throws Exception; } INewsCollectService package poly.service.impl; import org.apache.log4j.Logger; import org.jsoup.Jsoup; import org.jsoup.nodes... 2021. 11. 20. [Spring Framework] : 자연어처리 자연어처리? - 내가 말 하고 있는 단어, 타이핑하는 글 등을 컴퓨터가 인식할 수 있게 하는 걸 자연어처리라고 합니다. - 자연어처리는 한국어로 사용하기엔 어렵습니다. - 한국어 문장을 입력받아 한국어 어휘 형태 및 의미 와 문장의 구조 및 의미를 분석하여 언어를 이해하는 기술입니다. - 형태소 분석은 언어 분석 기술 중 하나로 문장을 분해가능한 의미 최소단위로 분리하고 품사를 태깅합니다. - 형태소 분석과 명사 분석은 가장 보편적으로 많이 사용된 분석 기술입니다. - 언어 분석은 반드시 데이터사전이 필요하며, 데이터사전은 꾸준히 학습시켜야 합니다. - 자연어처리는 주로 영어로 되어 있는데 영문학적으로 구조가 명확히 분류되어 있어서 (형태가 명확 1형식, 2형식, 품사가 명확하다. 띄어쓰기가 정확하다.).. 2021. 11. 20. [T.I.L] : 25 일일 배움을 위한 Today I Learned ! Data Modeling 논리 데이터 모델링에서 1차 정규화, 2차 정규화, 3차 정규화를 연습하고 물리 데이터 모델링 기초 정의에 대해 공부를 했습니다. 2021.11.19 - [Data Base/Data Modelling (DA#)] - [Data Modeling] : 논리 데이터 모델링 연습 [Data Modeling] : 논리 데이터 모델링 연습 논리 데이터 모델링 연습하기 이 엔터티를 가지고 정규화를 해 봅니다. 색상이 중복될 수 있기 때문에 따로 빼 줍니다. 식별자를 줘서 M : M 관계를 만들어 줄 수 있습니다. 이 엔터티를 가지고 정 ohju.tistory.com 2021.11.19 - [Data Base/Data Modelling (DA#.. 2021. 11. 19. [Data Modeling] : 물리 데이터 모델링 기초 물리 데이터 모델링 정의 물리 데이터 모델링은 논리적 모델을 특정 데이터베이스로 설계함으로써 생성된 데이터를 저장할 수 있는 물리적인 스키마를 말합니다. (논리데이터 모델을 사용하고자 하는 DBMS 특성을 고려해서 데이터 베이스의 저장 구조로 변환하는 것 ( 그 데이터의 타입, 사이즈 등)) 물리 데이터 모델링과 데이터베이스 디자인 - 물리 데이터 모델링은 데이터의 구조에 관련된 것들을 물리적인 모습까지 설계하는 것 입니다. -데이터베이스 디자인은 이러한 물리적인 모델(설계도면)을 DBMS 관점의 오브젝트로 생성하는 최적의 설계(디자인)를 하는 것입니다. 물리 데이터 모델의 의의 물리적 데이터 모델링은 관계 데이터 모델링이라고도 합니다. 논리적 데이터 모델을 각각 관계형 데이터 베이스 관리 시스템의 특성.. 2021. 11. 19. [Data Modeling] : 논리 데이터 모델링 연습 논리 데이터 모델링 연습하기 이 엔터티를 가지고 정규화를 해 봅니다. 색상이 중복될 수 있기 때문에 따로 빼 줍니다. 식별자를 줘서 M : M 관계를 만들어 줄 수 있습니다. 이 엔터티를 가지고 정규화 작업을 해 봅니다. 우선 딱 보이는 것은 반복적인 것은 하위 엔터티로 만들어줘야 하는 것 입니다. 출고 하나에 제품이 여러개가 생기기 때문에 1차 정규화를 했습니다. 그리고 나머지는 다 3차 정규화를 진행해 주면 이렇게 만들 수 있습니다. 주문을 할 때 하나만 하는 것이 아니라 여러개를 하기 때문에 출고, 출고상세 이렇게 나누어 볼 수 있습니다. 이것들을 하나로 관리하다 보면 출고에 대한 정보가 반복적으로 들어가게 됩니다. 그렇게 되면 변경 이상이 발생할 수 있기 때문에 데이터의 특정 정보만 수정하기 위해.. 2021. 11. 19. [T.I.L] : 24 일일 배움을 위한 Today I Learned ! 웹 서버 배포 (하둡, Hadoop) 이클립스에서 코딩한 프로젝트를 War 파일로 내보내어 하둡에서 서버를 실행시키고 실시간으로 로그를 받아 왔습니다. 추가로 메시지를 입력해 실시간 로그를 찍는 것 까지 진행했습니다. 2021.11.18 - [Data Base/Hadoop] - [Hadoop] : 웹 서버 배포(1부) [Hadoop] : 웹 서버 배포(1부) 웹 서버 배포 스프링 프레임워크 등 웹 프로젝트의 배포 방법은 보통 war 파일로 프로젝트를 압축하여 웹 서버에 파일을 업로드 합니다. war 파일은 압축효율 0%의 순하게 파일을 묶은 압축파일입 ohju.tistory.com 2021.11.18 - [Data Base/Hadoop] - [Hadoop.. 2021. 11. 18. [Hadoop] : 웹 서버 배포(3부) 데이터 수집 환경설정 Flume에서 자주 사용되는 예제입니다. vi로 flume-netcat을 만들어 줍니다. # The configuration file needs to define the sources, # ths channels and the sinks. # Sources, chnnels and sinks are defined per agent, # in this case called 'agent' agent.sources = s1 agent.channels = c1 agent.sinks = k1 agent.sources.s1.type = netcat agent.sources.s1.bind = localhost agent.sources.s1.port = 10001 agent.sources.s1.ch.. 2021. 11. 18. [Hadoop] : 웹 서버 배포(2부) 웹 접속 포트 변경 8080 포트에서 10000 포트로 변경합니다. server.xml 파일 내용을 수정해 줍니다. vi server.xml 편집 모드를 통해 server를 편집해 줍니다. 위에 8080포트는 변경이 가능합니다. 포트 번호를 10000으로 변경해 줬습니다. 이 부분은 https에서 ssl 인증서가 사용된 톰켓 서버라고 보면 됩니다. 아파치와 충돌하면 안 되기 때문에 정해준 것 입니다. 웹 서버 웹 애플리케이션 서버 ws was 아파치 톰켓 nginx 간단하게 보면 웹 서버와 웹 애플리케이션 서버에서 아파치와 톰켓이 나누어 집니다. 여기서 웹 서버는 html, css, js 등을 실행할 목적으로 사용되고 웹 애플리케이션 서버는 말 그대로 애플리케이션을 돌아가게 하기 위해 만들어진 것 입니다.. 2021. 11. 18. [Hadoop] : 웹 서버 배포(1부) 웹 서버 배포 스프링 프레임워크 등 웹 프로젝트의 배포 방법은 보통 war 파일로 프로젝트를 압축하여 웹 서버에 파일을 업로드 합니다. war 파일은 압축효율 0%의 순하게 파일을 묶은 압축파일입니다. - war 파일명은 반드시 ROOT.war (대소문자 구분)으로 생성해야 합니다. tar 압축과 유사합니다. War 파일을 압축하는 방법입니다. 우클릭하여 익스포트해 줍니다. 바탕화면에 ROOT.war 파일을 생성해 줍니다. ROOT.war 파일이 정상적으로 바탕화면에 익스포트 되었습니다. war 파일을 WinSCP를 통해 옮겨줍니다. 파일이 정상적으로 들어왔습니다. cp ROOT.war /usr/local/tomcat/webapps/ cd /usr/local/tomcat/webapps/ 복사를 해주고 확.. 2021. 11. 18. [T.I.L] : 23 일일 배움을 위한 Today I Learned ! Python 파이썬으로 웹 크롤링을 했습니다. 웹 크롤링은 자바로도 해 봤는데 파이썬이 확실히 더 간단하다고 느꼈습니다. 정적 웹과 동적 웹 모두 다 크롤링을 했고 다음엔 조금 더 활용을 해보려고 합니다. 아래 내용을 첨부합니다. 2021.11.17 - [프로그래밍언어/Python] - [Python] : 웹 크롤링 [Python] : 웹 크롤링 웹 크롤링 파이참에서 상단 메뉴 FIle 에서 Settings를 눌러줍니다. Project Interpreter을 선택해 주고 좌측 상단에 + 버튼을 눌러줍니다. bs4를 선택하고 Install을 합니다. 성공 메시지가 떴습니다. 정상적 ohju.tistory.com 2021.11.17 - [프로그래밍언어/Pyt.. 2021. 11. 17. [Python] : 동적 웹 페이지 크롤링 사전 준비 웹 페이지 분석하기 커피 브랜드 중 하나인 커피빈 전국 매장 정보를 크롤링 합니다. https://www.coffeebeankorea.com/store/store.asp COFFEE BEAN STORE COFFEE BEAN www.coffeebeankorea.com 커피빈 매장 찾기 페이지에 접속합니다. 지역 검색 탭에서 서울을 선택하면 매장 70개 목록이 표시되고 서울을 선택하기 전 마우스를 올리면 좌측 하단에 자바스크립트가 표시됩니다. 시/도를 선택하면 자바스크립트의 storeLocal2()함수가 호출되어 매장 목록이 표시됩니다. HTML 소스를 분석해 보면 HTML 소스에는 조회된 매장 목록이 없고 "시/도"를 선택하면 함수를 호출하여 매장 목록을 표시하는 동적 웹 페이지 구조입니다. 버.. 2021. 11. 17. [Python] : Selenium 라이브러리 설치 및 WebDriver 다운로드하기 Selenium 라이브러리 설치 터미널에서 파이썬이 있는 곳으로 이동한 뒤 pip install selenium 명령어로 라이브러리를 설치해 줍니다. Selenium에서 제공하는 WebDriver 모듈을 이욯하면 웹 브라우저에 대한 원격 제어가 가능해 자바스크립트 함수를 실행시키고 결과 데이터를 가져올 수 있습니다. WebDriver 다운로드하기 https://www.selenium.dev/downloads/ Downloads Selenium automates browsers. That's it! www.selenium.dev 크롬에서 위 링크에 접속해서 다운로드합니다. 페이지에 들어가서 스크롤을 내려 빨간 박스를 클릭하면 아래 페이지로 이동합니다. 다운로드를 눌러 줍니다. 자신의 크롬 버전을 먼저 확인.. 2021. 11. 17. [Python] : 정적 웹 페이지 크롤링 정적 웹 페이지 크롤링 국내 커피 브랜드 중 하나인 할리스 커피의 전국 매장 정보를 크롤링합니다. https://www.hollys.co.kr/robots.txt 웹 페이지 크롤링하기 전에 크롤링 허용 여부를 확인하기 위해 위 링크로 들어가 봅니다. User_agent: * Allow: / 또는 User-agent: * Disallow: 위 두개는 모든 접근을 허용합니다. User-agent:* Disallow: / 모든 접근을 금지합니다. User-agent:* Disallow:/user/ 특정 디렉토리만 접근을 금지합니다. 만약 robots.txt 파일이 없다면 수집에 대한 정책이 없으니 크롤링해도 된다는 의미로 받아들이면 됩니다. 매장 검색 페이지에서 HTML 소스를 분석해 보면 태그가 매장 정보 .. 2021. 11. 17. [Python] : 웹 크롤링 웹 크롤링 파이참에서 상단 메뉴 FIle 에서 Settings를 눌러줍니다. Project Interpreter을 선택해 주고 좌측 상단에 + 버튼을 눌러줍니다. bs4를 선택하고 Install을 합니다. 성공 메시지가 떴습니다. 정상적으로 다운이 됐습니다. 네이버에서 특정 글자 추출하기 import urllib.request url = "https://www.naver.com/" html = urllib.request.urlopen(url) print(html.read()) 웹에서 데이터를 받아오려면 http request라는 요청을 보내서 받아와야 합니다. 파이썬에서 웹의 특정 주소로 요청을 보내는 기능이 urlib.request입니다. urlib.reqeuest의 urlopen 함수로 네이버 첫 페.. 2021. 11. 17. [T.I.L] : 22 일일 배움을 위한 Today I Learned ! NOSQL NOSQL의 Fail Over와 복제 서버의 추가와 삭제, 리프리카셋의 동기화에 대해 공부했습니다. 내용은 아래 첨부를 참고하면 됩니다. 2021.11.16 - [Data Base/NOSQL] - [NOSQL] : Fail Over [NOSQL] : Fail Over Fail Over Primary 서버 노드에 장애가 발생하면 Secondary 서버가 Primary 서버로 Fail Over 되는 기능을 설정하는 방법입니다. 아래 글을 참고해서 서버를 우선 돌려줍니다. 2021.11.09 - [Data Base/NOSQL] - [.. ohju.tistory.com 2021.11.16 - [Data Base/NOSQL] - [NOSQL] : 복제 .. 2021. 11. 16. [NOSQL] : Replica Set 멤버의 동기화 리프리카셋(Replica Set) 멤버의 동기화 리프리카셋을 운영하다 보면 각 멤버의 데이터 구조에 장애가 발생하는 프라이머리 서버 또는 세컨더리 서버의 데이터를 이용하여 각 서버들간에 데이터들을 동기화해야 하는 경우가 발생합니다. 멤버들 간에 자동화된 동기화 방법입니다. 리프리카셋을 설정하게 되면 인스턴스를 활성화 했을 때 하나의 멤버와 다른 멤버와 동기화가 되어 있지 않은 경우 자동으로 동기화 작업을 수행해 줍니다. db.shutdownServer() 우선 실습을 위해 DB를 종료해 줍니다. 데이터 파일과 저널 파일을 모두 삭제해 줍니다. mongod --dbpath c:\mongodb\disk2 --port 10002 --bind_ip localhost --replSet rptmongo --oplo.. 2021. 11. 16. [NOSQL] : 복제 서버의 추가, 삭제 NOSQL 복제 서버 추가, 삭제하기 mkdir disk3 mongod --dbpath c:\mongodb\disk3 --port 10004 --bind_ip localhost --replSet rptmongo --oplogSize 10 db.printSlaveReplicationInfo() Secondray가 Primary가 된 것을 확인할 수 있습니다. rs.add("localhost:10004") 새로운 복제 서버를 추가합니다. db.printSlaveReplicationInfo() 10001이 Secondary 서버입니다. 10004도 정상적으로 추가가 된 것을 확인할 수 있습니다. rs.remove("localhost:10004") 복제 서버를 제거해주고 다시 확인해 보면 Port 10004 복.. 2021. 11. 16. [NOSQL] : Fail Over Fail Over Primary 서버 노드에 장애가 발생하면 Secondary 서버가 Primary 서버로 Fail Over 되는 기능을 설정하는 방법입니다. 아래 글을 참고해서 서버를 우선 돌려줍니다. 2021.11.09 - [Data Base/NOSQL] - [NOSQL] : Replica Sets 환경 설정 [NOSQL] : Replica Sets 환경 설정 파일을 먼저 생성해 줍니다. mongod --dbpath c:\mongodb\disk1 --port 10001 --bind_ip localhost --replSet rptmongo --oplogSize 10 Primary Server 활성화 시켜줍니다. mongod --dbpath c:\mongodb\disk2 -.. ohju.tistory.c.. 2021. 11. 16. [T.I.L] : 21 일일 배움을 위한 Today I Learned ! SQL SQL을 공부하면서 Null과 컬럼에 별칭을 부여하는 방법, 쿼리를 연결해주는 연산자와 중복을 제거하는 키워드를 공부했습니다. 공부하는 SQL은 Oracle DB를 사용하고 오라클에서 제공하는 SCOTT 사용자를 활성화 시켜 사용하고 있습니다. 자세한 내용은 아래 첨부 글을 확인하면 됩니다. 2021.11.15 - [Data Base/SQL] - [SQL] : NULL (널) [SQL] : NULL (널) NULL null(널)은 매우 중요한 데이터 입니다. 오라클에서는 컬럼에 널 값이 저장되는 것을 허용하는데 널 값을 제대로 이해하지 못 하면 쿼리문을 사용하는데 있어 원하는 결과를 얻기 어려울 수 ohju.tistory.com 2021.11.15.. 2021. 11. 15. [SQL] : Concatenation 연산자와 Distinct 키워드 Concatenation 연산자 정의 Concatenation는 연결이라는 뜻을 가지고 있습니다. 오라클에서 사용하는 Concatenation 연산자는 여러 개의 컬럼을 연결할 때 사용하고 연산자로는 || (수직바)를 사용합니다. select 2 ename ||'is a'|| job 3 from 4 emp; || 를 통해서 컬럼과 문자열 사이에 기술하여 하나로 연결하여 출력하면 됩니다. is a를 이름과 직업 사이에 넣어줬고 출력 결과를 보면 정상적으로 이름과 직업 사이에 is a가 추가된 것을 확인할 수 있습니다. DISTINCT 키워드 select 2 deptno 3 from 4 emp; 사원들이 소속되어 있는 부서 번호를 출력했습니다. 부서 번호 20에 속한 사람도 여럿이고, 30에 속한 사람도 여.. 2021. 11. 15. 이전 1 ··· 43 44 45 46 47 48 49 ··· 51 다음 반응형