Tuesday, July 12, 2016

날짜 표시, 필터설정 저장 기능 추가

소소한 기능 개선이 있었습니다.

날짜 표시 기능

마법공식 테이블 우상단에 처리 기준일 정보를 삽입했습니다. 언제적 데이턴지 가끔 문의가 와서요.

"2016-07-12 종가 기준"이라고 날짜가 표시됩니다. 

지표 필터 기억

시장 정보(전체/코스피/코스닥)와 정렬 정보()를 필터링하는 기능이, 페이지를 이동하면 풀려버려서 앞뒤를 오가며 여러 종목을 볼 때 불편한 부분이 있었습니다.
그래서 해당 정보를 쿠키로 처리해서 예전에 설정했던 필터 설정이 유지되도록 수정했습니다.

그럼 성투하시길.

Sunday, July 10, 2016

종목 조회 기능 추가

종목 조회 기능이 추가되었습니다.



기존의 마법공식을 비롯한 지표 순위는 '종목 추천'이라는 메뉴에서 표시가 되고, 그 옆에 '종목 정보'라는 메뉴가 추가되었습니다.

종목 추천에서 표시되는 종목명을 클릭하면 기존에는 네이버 증권으로 이동을 했었는데, 이제는 종목 정보로 이동하게 변경되었습니다. 네이버 증권으로 이동하려면 해당 화면에 링크가 있습니다.

이번 개편의 핵심은 마법 공식을 비롯한 지표에 대하여 6개월 간의 차트로 표시하는 기능입니다! 처음에는 지수와 마법공식 차트만 표시가 됩니다만... 차트 상단의 [지표 선택] 메뉴를 이용하면 PER, PBR, ROA 순위도 함께 볼 수 있습니다.

마법공식 외에 PER, PBR, ROA 도 함께 표시할 수 있습니다.

클릭하면 정확한 수치를 보여줍니다.


사실 종목명 조회 기능에 자동 완성을 추가했고, 종목 추천 메뉴의 순위 조회를 BigQuery 가 아닌 RDB 로 조회하도록 해서 속도가 매우 빨라진 등의 개선 사항도 있습니다만, 이용자 입장에서는 그리 큰 관심은 아닐 것 같아 언급만 했습니다.

어쨌든 이번 개편으로 좀더 다각도로 변화 추이를 살펴볼 수 있는 기회가 되었으면 합니다. :-)

다만 개편에 따라 서비스가 불안정할 수도 있으므로 이 점은 감안해 주시길..

Monday, June 27, 2016

사이트 개편의 변

오늘은 사이트 개편의 배경에 대해 좀더 자세히 설명해볼까 합니다.

우선 kkal.kr 사이트를 만들게 된 이유는.. 개발을 직접 하지 않는 회사에서 일함과 동시에 취미 생활로 주식 투자를 해보면서, 개발에 대한 감을 잃지 않기 위한 토이 서비스를 만들고자 하는 목적이 컸습니다.

이 때 매우 중요한 원칙 중의 하나는, 절대절대절대 서버 비용을 들이지 말자는 것이었습니다. 사실 마법 공식 조회 서비스를 만든 이유도, 최신의 마법 공식을 조회해 보려면 유로 서비스에 가입해야 하는데, 단 몇 백만원으로 투자금을 굴리는 개미 투자자 입장에서는 이역시 부담되는 일이었으니까요. 이런 맥락에서 앱엔진은 이를 위한 최적의 플랫폼이었지요. 일정 수준까지는 무료로 서비스를 할 수 있으니까요.

일년에 만원 정도하는 도메인 비용은 광고로 해결하자(쪼잔하지만..)는 취지로 블로그에 광고를 붙였고, 한달에 1달러 남짓한 수익은 이런 조건을 간신히 만족했습니다.

그런데 트래픽이 아주 조금 생기면서부터 조금씩 문제가 생겼습니다. 앱엔진은 리소스를 다양하게 분할해서 과금을 하는데, 하루에 한 번씩 갱신하는 주가 정보를 저장하고 조회하는 것만으로도 금새 트래픽을 초과하게 되었습니다.
Memcache를 이용하면 어느정도 커버가 되지만 무료버전의 경우 저장 용량을 보장하지 않기 때문에 이역시 금새 한계에 부딪혔습니다.

그래서 택한 방법은 주가 정보의 저장과 조회는 BigQuery를 이용하자는 것이었는데요, BigQuery는 빅데이터 분석용 서비스이기 때문에 데이터 처리 용량은 넉넉한 대신 조회시 수초 정도의 지연 시간이 있습니다. 그럼에도 불구하고 서비스는 가능한 수준이었기 때문에 현재 앱엔진+빅쿼리 형태로 서비스를 운영하고 있습니다.

다음은 UI 문제가 있었는데요.. 처음에는 PC로만 사이트를 이용하다 보니 bootstrap의 기본 테마에 angular.js(취미 개발을 위한 쓸고퀄)로 처발처발 해서 만들었는데.. 몇 년 지나다 보니 폰은 스마트 폰으로 바뀌었는데.. 엄청 불편하더군요. bootstrap 은 mobile friendly 하지만 저는 PC only 로 만들었다는 게 함정이었지요.
하여 모바일 용으로 개편을 하려고 보니.. angular. js는 다 잊어버렸고 그나마도 하위 호환성을 보장하지 않는 2.0 버전이 나온지라 다시 익히기도 귀찮고 어쩌고 해서 그냥 버려두었습지요.
회사를 옮기면서 개발을 직접 하는 일도 생기다보니 사이트를 손볼 여력이나 관심이 떨어진 부분도 한몫 했습니다.
그리고 올들어 관리자가 되면서 다시 취미 개발에 대한 관심이 생겼고, 만만한 kkal. kr을 다시 들춰보기에 이릅니다. 다시 접속을 해보니, 새로고침 수십번하면 금새 쿼터를 소진해 버려 데이터가 제대로 나오지 않는다거나 하는 고질적인 문제도 남아있는데, 코드는 다 까먹었고 심지어 소스 관리도 제대로 안되어 손대기가 막막하더군요.

그래도 이번엔 큰 마음을 먹고, 코드 베이스를 새로 가져가면서 테스트 케이스도 만들고, 모바일이 지원되도록 UI도 바꾸고, 트렌디한 머티리얼 디자인 플러그인도 깔고, angular.js 는 걷어내고 바닐라 jquery 로 새로 개편하기에 이른 것입니다.

현재 조금 더 손을 보고 있는 것은, 서버를 어딘가에서 수급해서, mysql 서버를 운영용 db로 이용하는 api 서버를 만들어서 BigQuery는 데이터 저장용 백엔드로 전환하고 빠르게 데이터를 조회하도록 하는 작업입니다.
아마 며칠 내로 적용할 수 있을 것으로 보이고, 이마저 적용이 되면, 이제는 기존 데이터를 빠르게 조회할 수 있으므로 종목별 차트나 즐겨찾기 같은 개인화된 기능을 추가하는 형태로 발전시키려고 합니다.

이를 통해 얻고자 하는 것은, 취미 개발자와 취미 투자자로서 필요한 기능을 그때그때 만들어 쓰고, 기왕이면 함께 쓸 수 있는 형태의 서비스로 발전시켜 나가는 것입니다.

Tuesday, June 21, 2016

kkal.kr 리뉴얼 - dopany.com

간만에 kkal.kr 사이트를 리뉴얼합니다.

휴대폰에서 보기도 힘들고 UI 도 후지지만, 그래도 돌긴 도니까.. 라며 방치하던 중에, 서비스도 잘 안도는 지경에 이르러 구조를 바꾸고 새로 업데이트했습니다.

또 다른 이유로 kkal.kr 도메인은 장기적으로 폐기하고 dopany.com 으로 이전하려고 합니다.
일단 kkal.kr 은 그대로 유지중인데, 혹시 관심 있으시면(특히 휴대폰으로 이용하는 분은) http://dopany.com 으로 접속해 보시기 바랍니다.


Wednesday, April 1, 2015

Index 설정

앱엔진으로 호스팅을 옮긴 후 괜찮겠거니 했는데 제대로 처리가 되지 않는 문제를 발견했습니다.
바로.. DB 쓰기 오퍼레이션에 대한 쿼터가 넘어가고 있었던 것입니다..


앱엔진에서 model 에 별다른 설정을 해주지 않으면 모든 프로퍼티에 대해 인덱스를 거는데, 이렇게 인덱스가 걸리면 용량을 많이 잡아먹기 때문에 하루에 2000건 남짓한 쓰기만 했는데도 불구하고 쿼터에 걸려버리는 겁니다.

앱엔진의 DB 비용이 만만치 않다고 들었는데 이런 데서 걸려 버리네요 -_-

그래서 인덱스가 필요없는 프로퍼티에 대해 설정을 풀어주었습니다.

아마 내일 오후부터는 정상적으로 결과가 출력될 것으로 기대하고 있으니 참고하시기 바랍니다.

Sunday, March 15, 2015

kkal.kr 호스팅 이전

지난 한달간 서비스가 접속이 되지 않았습니다.

호스팅 서버가 다운되었는데, 인지하지 못하고 있었던 문제가 있었고, 접속이 원활하지 않아 제대로 장애를 처리할 수 없었습니다.

이런저런 문제로 서버를 구글 앱앤진으로 옮기고 마이그레이션 작업을 했습니다.
최근 업데이트 시간을 표시하는 부분이 지금 안되고 있는데, 이 부분은 조만간 수정하기로 하겠습니다.

이번 장애를 계기로, 이 서비스를 쓰는 분이 소수나마 계시단 점을 알게 되었습니다 --;
앞으로는 좀더 신경 써서 관리하도록 하겠습니다.

감사합니다.

Wednesday, December 10, 2014

kkal.kr Update : Last Updated 추가



kkal.kr 의 데이터는 1시간 주기로 크롤링합니다.
만약 크롤링한 데이터가 변경되었으면 해당 데이터와 순위 정보를 갱신합니다.
그런데 표시되는 데이터가 언제 갱신된 데이터인지 궁금해 하시는 의견이 있어 갱신된 시각을 표시하도록 조금 수정했습니다.
디자인이 너무너무 후졌지만 널리 양해를 부탁드립니다..