본문 바로가기
프로젝트/금융

네이버 금융 크롤링 : 주식 종목 DB 가져오기

by 으노으뇨 2022. 10. 27.
728x90
반응형
SMALL

안녕하세요~! ㅎㅎㅎ

오늘은 정기 배포가 있는 날이여서 조금 늦게 퇴근했네요 ㅠ 그래도 아무 사건사고없이 배포 완료하고 평소보다 더 일찍 와서 포스팅을 할 수 있음에 감사합니다 ㅠㅠ

##이제 포스팅 2개는 종목을 최신화하는 방법에 대해서 제 방식을 소개해드리겠습니다.##

오늘은 바로~~~

네이버 금융 주식 종목 DB 가져오기

입니다!

네이버 금융 주식 종목 DB 가져오기란 무엇이냐

저희가 증권사 HTS 라던가 MTS 등등으로

주로 어떤걸 하고있나요? 바로 주식 종목검색, 즐겨찾기 추가, 매매내역 확인 등등

전부 주식 종목에 대한 "값" 을 참조해서 해당 값을 통해서 가져옵니다.

그게 말이 쉽게 해서 "값"이지 하나의 "Key"로 관리가 되고 있습니다.!!

??? : 엥? 그게 무슨얘기냐?

바로 삼성전자! 하면 삼성전자. 이렇게 저장될 수 있지만

이것을 숫자코드로 관리합니다.

사진을 한번 보실까요?

위와 같이 숫자로 이루어진 숫자코드가 종목코드이며

이것은 각각의 Key값처럼 쓰입니다.

이게 이제 어디서 쓰이냐면

사진과 같이 각 개별 주식종목의 상세정보 화면을 나타낼때

Get 방식으로 code값으로 005930 를 Url에 담아서 보내고 있는것을 볼 수 있습니다.

https://finance.naver.com/item/main.naver?code=005930 

 

삼성전자 - 네이버 금융 : 네이버 금융

관심종목의 실시간 주가를 가장 빠르게 확인하는 곳

finance.naver.com

그래서 우리가 이 주식 종목들을 웹단에 가지고 있어야 관리하기 편합니다.

이 종목을 이제 다루고, 최신화 하는 방법에 대해서 포스팅 2편에 걸쳐서 알아보겠습니다.!!


1. 주식종목 DB 설계

제 포스팅에서는 DB를 설치하고,,, 테이블 만들고,.,, JDBC ,,, MYBATIS 이런 기초적인 설명은

현재 너무 길어질것 같으니 우선 

실질적으로 사용할 수 있는 주식종목을 관리하는 테이블에 대해 설계해봅시다!!

우선 주식 종목은 

1. 종목코드

2. 종목이름

3. 시장 구분(코스피, 코스닥 등)

이렇게 크게 이루어 져있고 구분하기 쉽겠습니다.

물론 개인마다 , 기업마다 system 필드를 추가하거나 추가적인 레퍼런스형 컬럼들을 추가해 줄 수 있으나,,

저희 프로젝트에는 너무 투머치이며 필요하다면 정규화를 잘하여 테이블을 따로 빼내어 사용한다면

간결한 테이블 형태로 관리 가능할 수 있습니다.

(설계이후 작성했지만 생성날짜 정보, 수정날짜 정보한 컬럼을 추가한다면 더 완벽할 것같습니다. 만들고 보니 아쉽네요 ㅎㅎ)

그래도 필수적인 3가지 컬럼을 만들어줍니다.

테이블 생성 쿼리를 올리고 싶었으나 그것은 현재 주제와 맞지않아

우선 생성한 테이블에 대한 정보를 간단하게 보여주고 넘어가겠습니다.

해당 정보들은 외부에서 엑셀 또는 CSV파일 형식을 통해 임포트 할터이니 너무 제약을 주는데 

에너지와 시간을 쏟을 필요는 없다고 판단하였습니다.

이제 해당 데이터, 주식종목을 구하기 위해

http://data.krx.co.kr/contents/MDC/MDI/mdiLoader/index.cmd?menuId=MDC0201 

 

KRX 정보데이터시스템

증권·파생상품의 시장정보(Marketdata), 공매도정보, 투자분석정보(SMILE) 등 한국거래소의 정보데이터를 통합하여 제공 서비스

data.krx.co.kr

위 사이트를 통해서 값을 수동으로 다운받아보겠습니다.

순서대로 누르면 다운로드가 되는것을 알 수 있습니다.

 다운로드해주시고

해당 엑셀파일을 실행시켜 보겠습니다.!!

이렇게 다운받은 엑셀파일을 열어 보겠습니다.

이렇게 나오는 것을 알 수 있습니다.

여기서 우리가 필요한 정보는 

단축코드 , 한글종목 약명, 시장구분

이렇게 3개입니다.

우선 오라클 데이터 임포트 간단하게 설명하면서 하겠습니다.

임포트 누르시고 해당 엑셀을 다운로드받은 엑셀을 열어주시고

해당 데이터들을 육안으로 확인해줍니다!!ㅎㅎㅎ

음~ 정상적으로 모두 들어왔네요

그리고 이제 열을 선택합니다!!

이때 중요한건 반드시 오른쪽에 사용할 컬럼을 놓아주셔야합니다.!!

단축코드엔 CODE

한글_종목약명 NAME

시장구분 EXCHANGE

정상적으로 각각 매핑해주고 다음다음 버튼을 눌러준다면!!

그럼 이제 모든 종목코드와 이름, 시장구분이 나오는 것을 알 수 있습니다.!!!

이것으로 우선 주식 종목 DB를 최신화 하는 방법에 대해서 알아봤습니다.

갑분끝...?

이라고 생각하시겠지만

1편에서는 우리가 보통 하는 방법을 소개해드리고

2편에서는 이제 이것을 웹상에서 엑셀을 업로드, 서버에서 해당 엑셀정보를 DB에 저장

이렇게 포스팅을 진행하고자 합니다.

(너무길면 ...) 

비록 현재 프로그래밍, 코딩에 대한 정보는 없었지만

다음 포스팅에서는 

지금까지 한 동작을 소스적으로 구현하여

매번 종목을 최신화 할때마다

1. 오라클을 열고

2. 해당 테이블을 모두 Delete로 날리고

3. 데이터 임포트를 하고 

4. 쿼리로 확인하고 

하는 기능을 소스적으로 , 서버단에서 할 수 있도록 

프로그래밍하는 것을 알아보겠습니다.!

지금까지 읽어주셔서 감사합니다.!!!!

728x90
반응형
LIST

댓글