Skip to content

블로그

대신증권 크레온 API로 실시간 주가 데이터 받기

이번 포스트에서는 대신증권 크레온 API를 이용한 실시간 주가를 획득하는 방법을 다룹니다. 여느 때와 같이 언어는 파이썬으로 진행합니다.

크레온 API는 문서화가 비교적 잘되어 있고 사용성이 좋습니다. [증권사 API 장단점 비교][/htsapi.html] 포스트에서 주요 증권사 API의 장단점을 비교해 놓았으니 참고하시기 바랍니다.

실시간 주가를 얻어오기 위한 모듈은 Dscbo1.StockCur이며 이에 대한 문서는 여기에서 확인할 수 있습니다.

실시간 데이터는 Publish/Subscribe 방식으로 데이터를 획득합니다. 크레온에서 실시간 주가 데이터를 발행(Publish)하고 사용자는 실시간 주가를 원하는 종목을 구독(Subscribe)합니다. 사용자는 크레온이 발행한 데이터를 콜백(callback)을 통해 받습니다.

그럼 파이썬으로 실시간 주가 데이터를 구독하는 함수와 데이터를 획득하는 콜백 함수를 구현해 보겠습니다.

import win32com.client
class Creon:
def __init__(self):
self.stockcur_handlers = {} # 주식/업종/ELW시세 subscribe event handlers
def subscribe_stockcur(self, code, cb):
if not code.startswith('A'):
code = 'A' + code
if code in self.stockcur_handlers:
return
obj = win32com.client.Dispatch('DsCbo1.StockCur')
obj.SetInputValue(0, code)
handler = win32com.client.WithEvents(obj, StockCurEventHandler)
handler.set_attrs(obj, cb)
self.stockcur_handlers[code] = obj
obj.Subscribe()
def unsubscribe_stockcur(self, code=None):
lst_code = []
if code is not None:
if not code.startswith('A'):
code = 'A' + code
if code not in self.stockcur_handlers:
return
lst_code.append(code)
else:
lst_code = list(self.stockcur_handlers.keys()).copy()
for code in lst_code:
obj = self.stockcur_handlers[code]
obj.Unsubscribe()
del self.stockcur_handlers[code]
class StockCurEventHandler:
def set_attrs(self, obj, cb):
self.obj = obj
self.cb = cb
def OnReceived(self):
item = {
'code': self.obj.GetHeaderValue(0),
'name': self.obj.GetHeaderValue(1),
'diffratio': self.obj.GetHeaderValue(2),
'timestamp': self.obj.GetHeaderValue(3),
'price_open': self.obj.GetHeaderValue(4),
'price_high': self.obj.GetHeaderValue(5),
'price_low': self.obj.GetHeaderValue(6),
'bid_sell': self.obj.GetHeaderValue(7),
'bid_buy': self.obj.GetHeaderValue(8),
'cum_volume': self.obj.GetHeaderValue(9), # 주, 거래소지수: 천주
'cum_trans': self.obj.GetHeaderValue(10),
'price': self.obj.GetHeaderValue(13),
'contract_type': self.obj.GetHeaderValue(14),
'cum_sellamount': self.obj.GetHeaderValue(15),
'buy_sellamount': self.obj.GetHeaderValue(16),
'contract_amount': self.obj.GetHeaderValue(17),
'second': self.obj.GetHeaderValue(18),
'price_type': chr(self.obj.GetHeaderValue(19)), # 1: 동시호가시간 예상체결가, 2: 장중 체결가
'market_flag': chr(self.obj.GetHeaderValue(20)), # '1': 장전예상체결, '2': 장중, '4': 장후시간외, '5': 장후예상체결
'premarket_volume': self.obj.GetHeaderValue(21),
'diffsign': chr(self.obj.GetHeaderValue(22)),
'LP보유수량':self.obj.GetHeaderValue(23),
'LP보유수량대비':self.obj.GetHeaderValue(24),
'LP보유율':self.obj.GetHeaderValue(25),
'체결상태(호가방식)':self.obj.GetHeaderValue(26),
'누적매도체결수량(호가방식)':self.obj.GetHeaderValue(27),
'누적매수체결수량(호가방식)':self.obj.GetHeaderValue(28),
}
self.cb(item)

이렇게 Creon 클래스에 실시간 주가를 구독하는 함수인 subscribe_stockcur와 구독을 취소하는 unsubscribe_stockcur 함수를 구현했습니다. subscribe_stockcur 함수에서 발행되는 주가 데이터를 처리하기 위한 StockCurEventHandler 클래스를 이어서 정의하였습니다.

subscribe_stockcur 함수에서 구독하는 종목마다 StockCurEventHandler를 할당해 주었습니다. 크레온이 주식 데이터를 발행하면 StockCurEventHandlerOnReceived 함수가 호출됩니다.

여기서 필요한 데이터를 획득할 수 있습니다. 여기서는 이렇게 획득한 데이터를 StockCurEventHandler 객체를 생성할 때 인자로 넘겨준 cb 함수로 전달하고 있습니다.

다음과 같이 종목명과 가격을 출력하는 간단한 cb 함수를 선언하고 NAVER와 미래에셋증권 두 종목의 실시간 주가를 구독해 보았습니다.

from quantylab.systrader.creon import Creon
c = Creon()
def cb(item):
print(item['name'], item['price'])
c.subscribe_stockcur('035420', cb)
c.subscribe_stockcur('006800', cb)
# ...
c.unsubscribe_stockcur()

그러면 이런식으로 종목명과 주가가 출력되는 것을 볼 수 있습니다.

NAVER 389500
미래에셋증권 9990
미래에셋증권 10000
NAVER 390000
NAVER 389500
NAVER 389500
미래에셋증권 9990
NAVER 389500
NAVER 389500
미래에셋증권 9990
미래에셋증권 9990
미래에셋증권 9990
미래에셋증권 10000
미래에셋증권 9990
NAVER 390000
NAVER 389500
NAVER 389500
미래에셋증권 9990

퀀티랩 systrader 프로젝트에서 실시간 주가 확인 외에도 다양한 크레온 API 기능을 연결하고 있습니다. 퀀티랩 Github systrader 리포지토리에서 전체 코드를 확인할 수 있습니다. 문의는 이 리포지토리 이슈로 또는 네이버 카페로 주세요.

파이썬으로 DART에서 재무제표 수집하기

이번 포스트에서는 전자공시시스템(DART)에서 제공하는 재무제표를 파이썬으로 다운로드하고 파싱하는 방법을 다룹니다.

DART에서 재무제표를 얻어오는 방법은 다양한데 여기서는 두 가지 방법을 다룹니다.

첫 번째로 단일회사 주요계정 API를 활용한 방법입니다.

DART Open API를 사용하려면 인증키가 필요합니다. 인증키 획득 방법은 이 포스트에서 확인하세요.

다음은 단일회사 주요계정 API를 호출하여 재무제표 정보를 획득하는 함수 입니다. 인증키, 회사 고유번호, 사업연도, 보고서 코드를 입력하여 재무제표를 받아올 수 있습니다.

def get_fs(crtfc_key, corp_code, bsns_year, reprt_code):
# 단일회사 주요계정
# crtfc_key API 인증키 STRING(40) Y 발급받은 인증키(40자리)
# corp_code 고유번호 STRING(8) Y 공시대상회사의 고유번호(8자리)
# ※ 개발가이드 > 공시정보 > 고유번호 API조회 가능
# bsns_year 사업연도 STRING(1) Y 사업연도(4자리)
# ※ 2015년 이후 부터 정보제공
# reprt_code 보고서 코드 STRING(5) Y 1분기보고서 : 11013
# 반기보고서 : 11012
# 3분기보고서 : 11014
# 사업보고서 : 11011
api = 'https://opendart.fss.or.kr/api/fnlttSinglAcnt.json'
params = {
'crtfc_key': crtfc_key,
'corp_code': corp_code,
'bsns_year': bsns_year,
}
data = []
reprt_name = REPRT_NAMES.get(reprt_code, "")
params['reprt_code'] = reprt_code
res = self._request(api, params=params)
if res is None:
return None
if res.status_code != 200:
return None
item = json.loads(res.text)
if item.get('status', '') != '000':
return None
for _item in item.get('list'):
_item['corp_code'] = corp_code
_item['reprt_code'] = reprt_code
_item['reprt_name'] = reprt_name
data.append(_item)
return data

get_fs(crtfc_key, '00266961', 2015, '11011')와 같이 호출하면 다음과 같은 결과를 받아올 수 있습니다.

[{'account_nm': '자산총계', 'bfefrmtrm_amount': '9,881,190,909,324', 'bfefrmtrm_dt': '2018.12.31 현재', 'bfefrmtrm_nm': '제 20 기', 'bsns_year': '2020', 'corp_code': '00266961', 'frmtrm_amount': '12,299,527,120,786', 'frmtrm_dt': '2019.12.31 현재', 'frmtrm_nm': '제 21 기', ...}, {'account_nm': '부채총계', 'bfefrmtrm_amount': '3,932,050,396,031', 'bfefrmtrm_dt': '2018.12.31 현재', 'bfefrmtrm_nm': '제 20 기', 'bsns_year': '2020', 'corp_code': '00266961', 'frmtrm_amount': '5,795,601,052,206', 'frmtrm_dt': '2019.12.31 현재', 'frmtrm_nm': '제 21 기', ...}, ...]

DART Open API 재무정보 일괄 다운로드

Section titled “DART Open API 재무정보 일괄 다운로드”

두 번째는 재무정보 일괄 다운로드로 한꺼번에 전체 기업의 재무제표 데이터를 받아오는 방법입니다. Open DART 사이트에서 공시정보 활용마당 / 재무정보 일괄다운로드를 클릭하면 다음과 같은 테이블을 볼 수 있습니다.

재무정보 일괄다운로드

여기서 다운로드 하면 해당 연도와 분기의 네 종류의 재무제표를 압축파일로 다운 받을 수 있습니다. 여기서는 다운로드, 압축해제를 포함하여 파이썬에서 재무제표를 읽어오는 방법을 다룹니다.

다음은 Selenium으로 다운로드 버튼을 클릭하여 파일을 다운로드하고 압축을 해제하는 코드입니다.

options = webdriver.ChromeOptions()
options.add_experimental_option("prefs", {
"download.default_directory": self.job_base,
"download.prompt_for_download": False,
"download.directory_upgrade": True,
"safebrowsing.enabled": True
})
options.add_argument("disable-infobars")
options.add_argument("--disable-extensions")
browser = webdriver.Chrome(executable_path=os.path.join(settings.QUANTYLAB_BASE, 'drivers/chromedriver'), chrome_options=options)
try:
browser.get('https://opendart.fss.or.kr/disclosureinfo/fnltt/dwld/main.do')
elem = browser.find_element_by_css_selector('table.tb01')
for elem_a in elem.find_elements_by_link_text('다운로드'):
filename = re.findall(r'.*\(.*\'(.+)\'\).*', elem_a.get_attribute('onclick'))[0]
# 파일 다운로드
elem_a.click()
time.sleep(10)
# 압축파일 로드
filepath = os.path.join(base, filename)
z = zipfile.ZipFile(filepath)
for info in z.infolist():
# 한글 파일명 인코딩 수정
_filename = info.filename.encode('cp437').decode('euc-kr')
_filepath = os.path.join(base, _filename)
if os.path.exists(_filepath):
continue
info.filename = _filename
# 압축해제
z.extract(info, base)
z.close()
except Exception as e:
print(str(e))
finally:
browser.quit()

이렇게 압축해제까지 하면 2020_1분기보고서_04_현금흐름표_20210211.txt과 같은 파일들이 생성되어 있을 것입니다.

이 텍스트 파일은 다음과 같이 pandas로 쉽게 DataFrame으로 읽어올 수 있습니다. 다만 sepencoding을 다음과 같이 적절하게 정해주는 것이 중요합니다.

df = pd.read_csv(filepath, sep='\t', encoding='cp949')

여기서 당기, 당기 1분기, 당기 반기 등의 다양한 컬럼이 생기는데 저는 이들을 당기로 통합하여 정리했습니다.

다음은 포괄손익계산서의 일부 항목을 나타낸 것입니다.

항목명결산기준일보고서종류당기
영업수익2018-12-31사업보고서5,586,904,533,355
영업이익(손실)2018-12-31사업보고서942,532,561,543
당기순이익(손실)2018-12-31사업보고서627,901,873,332

그런데 재무제표를 볼 때 항목의 흐름을 보는 것이 중요합니다. 예를 들어 영업 이익이 꾸준히 증가하고 있는지를 보고 싶은 것입니다.

그래서 동일 항목에 대해서 결산기준일 순서대로 DataFrame을 재구성하고자 합니다. 이를 위해 DataFramepivot 함수를 사용합니다.

df_pivot = df.pivot(values='value', index='항목명', columns='결산기준일')

동일 항목이지만 항목명이 다르게 적혀있는 경우가 있어서 이를 맞춰주는 처리를 했습니다.

그럼 다음과 같이 동일 항목의 값을 분기 순서대로 볼 수 있습니다.

항목명2015-12-312016-03-312016-06-302016-09-302016-12-312017-03-312017-06-302017-09-302017-12-312018-03-312018-06-302018-09-302018-12-312019-03-312019-06-302019-09-302019-12-312020-03-312020-06-302020-09-30
매출액3,251,157,100,000937,280,220,152987,281,364,2951,013,075,223,7704,022,629,619,9821,082,247,281,1961,129,631,366,8471,200,676,275,2204,678,468,928,0321,309,059,864,2481,363,615,953,3321,397,713,834,6745,586,904,533,3551,510,861,770,2821,630,275,004,3951,664,815,000,0786,593,400,065,2441,732,064,462,0971,902,467,957,4911,360,779,374,259
영업이익762,203,849,000256,827,536,675272,663,961,847282,298,051,5251,102,040,475,792290,797,289,304285,213,522,180312,084,238,4441,179,187,806,331256,980,563,870250,583,189,279221,718,402,565942,532,561,543206,244,504,954128,334,709,480202,086,039,366710,070,173,513221,495,078,328230,597,573,115291,726,798,004
당기순이익516,986,279,000165,036,146,535213,223,506,226198,000,157,034759,072,951,187210,876,050,870171,420,229,303215,798,264,368770,101,670,207153,751,654,038281,758,577,70168,386,763,908627,901,873,33287,585,903,29027,756,852,97585,268,053,088396,821,062,465134,874,581,86590,682,203,810235,342,965,699

퀀티랩 단타 모델 - 딥러닝으로 내일의 주가 방향을 예측하는게 가능할까?

기존의 퀀티랩 모델은 중/장기 투자를 목적으로 하는 딥러닝 모델입니다. 이 포스트에서는 데이트레이딩(일명 단타)를 위한 모델 구축에 대해 다룹니다.

이 글은 기계학습에 대한 기초 지식을 요합니다.

단타를 독려하는 것이 아니니 오해 없으셨으면 좋겠습니다.

우선 데이트레이딩에 대해 알아봅시다. 데이트레이딩에 대한 정의는 제각각이지만 대부분 다음 원칙을 가지고 있습니다.

  • 하루 안에서 모든 거래를 마친다. (오버나잇 하지 않는다.)
  • 종목을 발굴한다.
  • 현금을 많은 비중으로 둔다. (Ex. 90% 현금 보유)
  • 목표 수익률, 손절 라인을 설정한다. (1~2%의 낮은 손익률로 잡는다.)
  • 미수는 자제한다.
  • 장이 안좋을땐 관망한다.

데이트레이딩은 많은 지표들을 보고 종목을 발굴하고 하루동안 수십, 수백번의 매매를 하면서 수익을 내기위해 노력합니다. 매매를 위해 기술적 분석이 주로 사용되는데 기술적 분석 기법은 너무나도 다양해서 나열하기도 어렵습니다.

단타에서 주요 결정 사항 중 하나인 “어떤 종목을 노릴 것인가?”를 해결하기 위한 딥러닝 모델을 구축했습니다. 모델은 파이썬으로 구축했으며 사용한 프레임워크, 라이브러리는 다음과 같습니다.

  • TensorFlow 2.4 (with Keras)
  • Scikit-learn 0.22.1

학습데이터는 약 100개의 자질과 2.5M개의 인스턴스로 구성했습니다. 지도학습(Supervised Learning)으로 레이블(label)은 다음 거래일의 등락률의 sigmoid로 정했습니다. 그 수식은 다음과 같습니다.

y = sigmoid(next_close / today_close - 1)

자질들은 자세히 다루기 어렵지만 크게 다음 종류의 자질군으로 구성됩니다.

  • 종목 주가
  • 종목의 기본적 분석 지표
  • 종목의 기술적 분석 지표
  • 국내 주식 시장 지수
  • 해외 주식 시장 지수
  • 주요국 환율
  • 원자재 가격
  • … (기타 등등)

자질 값들의 스케일(Scale)이 달라서 Standardization 했습니다. 세 가지 스케일러(Scaler)를 시도해 봤는데 그 중에서 Robust Scaler를 채택했습니다.

신경망 아키텍처는 기본적인 Dense(Fully Connected) Layer를 다음과 같이 쌓았습니다.

model = tf.keras.models.Sequential([
tf.keras.layers.Dense(256, activation='linear'),
tf.keras.layers.Dense(128, activation='linear'),
tf.keras.layers.Dense(64, activation='linear'),
tf.keras.layers.Dense(1, activation='sigmoid'),
])

이렇게 마지막 레이어의 활성화 함수(Activation Function)을 Sigmoid로 정해서 0과 1사이의 값으로 Prediction 하도록 했습니다. 직관적으로는 Prediction 값이 0.5 이상(초과)이면 내일 오늘보다 주가가 오를 것이라 판단하는 것이고 0.5 이하(미만)이면 주가가 내릴 것이라 판단하는 것입니다.

이렇게 학습한 모델로 테스팅 데이터를 넣어서 내일의 주가 방향을 얼마나 잘 맞추는지 알아보았습니다. 테스팅 데이터는 20210101~20210305 동안의 인스턴스이며 당연히 학습 데이터에 없는 인스턴스들 입니다.

Prediction 값을 score라고 하겠습니다. score가 0.5, 0.6, 0.7, 0.8, 0.9 이상일 때의 Accuracy를 다음과 같이 확인했습니다.

  • score 0.5 이상: 313,319개 인스턴스에서 정확도 57.99%
  • score 0.6 이상: 51,390개 인스턴스에서 정확도 68.81%
  • score 0.7 이상: 10,962개 인스턴스에서 정확도 84.22%
  • score 0.8 이상: 3,864개 인스턴스에서 정확도 89.73%
  • score 0.9 이상: 113개 인스턴스에서 정확도 49.56%

1

Score가 마냥 높다고 정확도가 높아지는 것은 아니였습니다. 0.8 까지는 높아지다가 0.9 이상에서는 정확도가 오히려 급격하게 감소했습니다. 정확도가 가장 높은 범위를 찾아봤습니다.

Score 0.83 이상 0.835 미만의 295개 인스턴스에서 정확도 94.58%를 얻을 수 있었습니다.

2

여기에 포함된 Score Top 50 종목들은 다음과 같습니다.

동전주, 거래대금이 적은 종목은 제외(Filter Out)했습니다.

datenameclosescorediffratio_nextday
20200325삼강엠앤티2,3200.8350-0.43%
20200324E123,6500.83508.03%
20200325휴비스3,6250.83501.10%
20200325미창석유공업47,8500.83491.78%
20200409빙그레54,2000.8349-0.55%
20200323엘티씨5,1300.83498.38%
20200325갤럭시아머니트리1,9250.83490.78%
20200325한솔제지9,0000.83492.89%
20200325KC그린홀딩스2,5950.83495.97%
20200325이월드2,7300.834828.21%
20200325푸른기술5,9440.83475.82%
20200325신화인터텍1,6550.83478.76%
20200619아진엑스텍4,1230.83473.10%
20200325신세계건설16,4500.83478.81%
20200325애니플러스1,0300.83464.85%
20200323노랑풍선5,7200.83465.77%
20200325미래에셋생명2,5700.83469.14%
20200323유티아이7,0600.83467.51%
20200325스카이이앤엠1,5050.83451.33%
20200422코오롱생명과학41,1000.83453.53%
20200324디와이2,5000.83449.60%
20200325HSD엔진2,2200.83443.60%
20200325가온전선12,1000.83436.20%
20200325슈피겐코리아32,3000.8343-2.94%
20200323동국S&C1,1950.834310.88%
20200325케이씨티1,2100.83437.02%
20200325태림포장2,4550.83424.07%
20200325서플러스글로벌1,2500.83422.00%
20200325태웅4,2200.8342-1.66%
20200324노랑풍선6,0500.834210.74%
20200323일진다이아11,0000.834217.27%
20200324일진디스플1,8920.834111.89%
20200325하나마이크론3,7250.83416.58%
20200325파워넷2,2400.83414.69%
20200325홈캐스트2,4000.83403.12%
20200325유니온1,9400.83402.06%
20200325SCI평가정보1,4550.83404.12%
20200325우노앤컴퍼니2,5150.834029.82%
20200325화승알앤에이1,3000.83393.08%
20200324웨이브일렉트로8,5630.833914.56%
20200325잇츠한불9,5300.83398.60%
20200325파인디앤씨1,0000.83385.50%
20200323서연1,5550.833829.90%
20200323화신1,3900.83384.68%
20200325신도리코21,2000.83370.94%
20200323큐렉소2,4600.83376.71%
20200325휴스틸4,8050.83374.06%
20200325예림당1,7500.83379.71%
20200325빛샘전자3,2200.83376.21%
20200325정원엔시스1,0700.833714.02%

그럼 어제(20210304)의 상위 종목들 살펴보겠습니다.

datenameclosescorediffratio_nextday
20210304일양약품35,0000.6188-1.14%
20210304수산아이앤티28,5500.5753-5.43%
20210304대한그린파워1,4000.55327.50%
20210304진양산업4,3650.51960.46%
20210304이녹스11,0000.51742.27%
20210304인지컨트롤스18,6000.5040-3.23%
20210304웅진씽크빅2,6350.49853.04%
20210304세원셀론텍1,9950.4923-1.50%
20210304기가레인1,8250.4921-1.37%
20210304파루1,4500.49170.69%

최근 장이 안좋아서 그런지 Score 가장 높은게 0.6 정도입니다. 그럼 오늘 날짜의 Score 상위 종목에는 어떤 종목들이 있을까요?

datenameclosescore
20210305팬엔터테인먼트7,6700.8676
20210305풍강3,9900.8056
20210305중앙에너비스9,2000.5439
20210305플리토13,9000.5383
20210305한국주강1,7800.5381
20210305일양약품34,6000.5241
20210305극동유화3,4750.5151
20210305한일진공1,0400.5141
20210305인성정보2,3150.5056
20210305텔콘RF제약5,2700.4999

다음 거래일에 이 종목들이 어떤 움직임을 보일지 지켜보면 재미있을 것 같습니다.

어디까지나 투자는 본인이 결정하는 것입니다. 퀀티랩에서 제공하는 정보는 참고만 하시길 당부드립니다.

[2021-02-26] 딥러닝 모델 종목추천

퀀티랩 AI 주식 종목 랭킹 모델을 개선했습니다. 다양한 자질을 추가했고 학습 방식도 많이 변경했습니다. 백테스팅 결과 기존의 모델에 비해 더 나은 결과를 얻을 수 있었습니다.

특이 사항으로 거래 대금이 적은 종목에 약간의 패널티를 부여했습니다. 너무 거래가 적은 종목들은 피하자는 의도입니다.

개선한 모델의 2021년 2월 26일자 상위 랭크 종목들은 다음과 같습니다.

1

이들 중에 특히 주가가 많이 내려와 있는 KT&G, 한국전력이 눈에 뜁니다.

매일 업데이트 되는 랭킹 결과를 퀀티랩에서 확인하세요. 퀀티랩 AI 매매내역 페이지에서는 퀀티랩 AI의 수익률 차트, 현재 보유 종목, 매매 내역을 볼 수 있습니다.

요증 인플레이션 우려와 함께 미국 금리 인상이 앞당겨질 수 있다는 추측이 많아서 주식 시장이 좋지 않습니다. 잘 대응하셔서 성투하세요.

어디까지나 투자는 본인이 결정하는 것입니다. 퀀티랩에서 제공하는 정보는 참고만 하시길 당부드립니다.

매경, 한경 등의 경제 잡지 무료로 보기

틈틈히 경제 잡지를 읽어보는 것은 투자에 큰 도움이 된다고 생각합니다. 사서 보기는 부담스러울 수 있는 이러한 경제 잡지들을 전자 잡지 형태로 무료로 볼 수 있습니다.

  • 매경 ECONOMY
  • 한경 BUSINESS
  • MONEY
  • 이코노미조선
  • 포춘코리아
  • 머니S
  • 월간리치
  • 웰스매니지먼트
  • 이코노믹리뷰
  • NEXT economy
  • M이코노미
  • MIDAS

지역 도서관들이 모아진(moazin)이라는 전자 잡지 서비스와 계약하여 잡지들을 제공하고 있는 것 같습니다. 물론 우리들의 세금이 들어가는 것이겠지요.

먼저 살고계신 지역의 도서관에 정회원으로 가입을 해야 합니다. 이를 위해서 한번은 도서관을 방문해야 할 수 있습니다.

각 지역의 도서관 홈페이지마다 조금씩 다르겠지만 여기서는 서울시, 성남시, 용인시 도서관의 전자잡지 접근 방법을 다루겠습니다.

서울시의 경우 서울특별시교육청 전자도서관전자잡지 메뉴가 있습니다. 로그인 후 이용하시면 되겠습니다.

서울시도서관

성남시와 용인시의 경우 같은 경기도라 그런지 메뉴 구성이 같았습니다. 각 시의 도서관사업소 홈페이지에서 이용안내 > 디지털서비스 > 전자잡지 메뉴를 확인하시면 됩니다.

용인시도서관

이제 PC에서는 이런식으로 모아진에서 제공하는 전자잡지를 확인할 수 있습니다.

전자잡지PC

모바일에서 전자잡지를 보고싶을 경우 도서관 매거진 앱을 설치하면 됩니다.

도서관매거진앱

이후 본인이 정회원으로 가입된 도서관을 목록에서 선택해서 로그인하면 다음과 같이 전자잡지를 모바일에서 확인할 수 있습니다.

도서관매거진화면

우리 세금으로 운영되는 만큼 활용하셔서 투자에 도움이 되시길 바랍니다.

경제 분야 뿐만 아니라 시사, 과학, 문화, 예술, 패션, 라이프 등 다양한 분야의 잡지를 볼 수 있습니다.