본문 바로가기

반응형

Blog for Programming

(167)
[비트코인 자동 거래 시스템] 문제해결 - 복잡한 시스템을 개발할 때 유용한 unittest frame work 1. 개요 비트코인 자동거래 시스템을 만들던 중 참고했던 책을 보니, 큰 시스템을 만드려면 각 API를 호출하거나 각 기능을 따로 분류하여 모듈 단위로 개발하는 것이 유용하다는 것을 알게 되었다. 전 글을 보면 Korbit API에서 내가 필요한 API의 기능을 각각 실행시키는 모듈을 만드는 것을 알 수 있다. 지금은 Database에 대한 모듈을 작성중인데, CRUD 그리고 연결 부분까지 하면 모듈의 갯수가 꽤나 많아진다는 것이다. 이렇게 되면 많아지는 모듈의 갯수때문에 각각의 모듈을 test하기 힘들게 된다. 지금도 일일이 하나의 Test Class를 만들고 이를 실행하는데 어려움을 겪고 있다. 분명 이러한 문제를 해결할 수 있는 방법이 있을 것이라는 생각을 하고, python에 개발 방법을 찾아보았..
[비트코인 자동 거래 시스템] 2주차 Python을 활용한 코빗 API 메소드 구현 1. 개요 2주차이다. 말이 2주차이지, 사실 1주차를 구현한지 몇일 되지 않았다. 다만 단계별로 기록지를 올리고 싶어 한 단계를 끝내고 글을 써본다. 언어는 Python을 활용하였다. 이유는 특별한 프레임워크를 사용하는 것도 아니고 서버에 자동적으로 실행되어야 하기에 라이브러리가 많고 쉬운 Python을 사용하였다. 2. 본문 2주차에 한 작업은 코빗 API에서 내가 필요할만한 것들을 확인하고 이를 메소드로 불러올 수 있도록 클래스를 작성하였다. 객체지향언어의 힘을 믿기에 각 기능별로 메소드와 Class를 분류하고, 이를 최종적으로 연결하는 작업으로 개발을 진행하기로 하였다. 다음은 내가 작성한 Class이다. 이것은 가장 기본이 되는 메소드 이고, 이 밑에 해당 API별로 각 메소드를 구분하였다. 그..
[비트코인 자동 거래 시스템] 1주차 코빗 계정 생성과 API 테스트 및 개발 환경 설정 1. 개요 어쩌다가 SNL에서 진행한 이준석님의 인터뷰를 봤다. 프로그램으로 비트코인을 자동매매한다고 하였는데, 대선 3번할 금액을 벌었다고 하셨다. 3억원의 기탁금이 있어야 출마를 할 수 있다는데 그럼 9억원을 벌었다는 것이다. 어떤 방식으로 해야하는지 책을 참고하여 프로그램을 작성해볼 계획이다. 책은 박재현 님이 작성하신 암호화폐 자동 거래 시스템을 참고하였다. 책 링크: http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9791158391027 파이썬으로 만드는 암호화폐 자동 거래 시스템 - 교보문고 24시간 운영되는 나만의 스마트 트레이딩 시스템 만들기 | 트레이딩을 위한 데이터를 저장, 가공, 분석하..
[CJ 올리브네트웍스 기록지] #1 - 회사에 적응 시작 1. 개요 운좋게 CJ 올리브네트웍스에 입사하게 되었다. 정말 운이 좋았다. 맡은 업무는 사내 시스템을 제작하는 팀에 투입되어 하나의 시스템을 설계단계부터 완성단계까지 경험할 수 있는 좋은 업무였다. 다만 특이한 점은 실리콘벨리의 신기술을 적용해야 한다는 것. 덕문에 외국인들과 회의도 하고 새로운 경험을 하며 많은 것을 배우는 중이다. 2. 본론 환경이 중요하다는 것을 알게되었다. 그리고 좋은 환경에 가기위해 그만큼 노력해야 한다는 것도 말이다. 전에 잠시 있었던 회사는 대화가 적고 업무 환경이 침침했던 반면에 대화가 넘치고 질문의 분위기가 자유로운 분위기에서 업무를 하다보니 정말 좋은 분위기에서 일을 할 수 있었다. 많은 것을 배웠다. 조직에 대해 기여한다는 것이 무엇인지를 알게 되었다. 영어 강의의 ..
MSSQL 헷갈리는 자료형 정리(char, varchar, nchar, nvarchar) 1. 개요 MSSQL을 배우던 도중, 대용량 서비스에서 자료형이 미치는 영향을 보았다. 선배께서는 자료형의 고려없이 무조건 대용량의 자료형을 설정한 데이터베이스와, 자료형을 고려하여 효율적으로 설계한 데이터베이스의 차이를 보여주셨다. 조금더 자세하게 말하자면, 만약 사람의 이름을 저장할 때, 데이터 형식을 nvarchar(255)로 설정한 데이터베이스와 nvarchar(15)으로 설정한 데이터베이스의 차이를 볼 수 있었다. 데이터가 조금 들어갔다면 차이가 없었겠지만, 선배는 실제 회사에서 사용하는 데이터베이스를 예로 보여주셨다. 즉 데이터가 대용량이라는 뜻이다. 데이터가 많아지면 많이질수록 전자와 후자의 경우는 차이가 많이 났다. 'SELECT * FROME [TABLE]'과 같이 단순하지만 많은 양의 ..
MSSQL 설치와 네트워크 세팅 1. 개요 MSSQL을 사용할 이유가 생겼다. 따라서 처음부터 차근 차근 설치 내용을 정리해보고자 한다. 2. 본문 - MSSQL이란? 가장 먼저 배운것은 MSSQL이다. MSSQL은 말 그대로 Microsoft에서 만든 데이터베이스로 아직 MSSQL을 사용하는 회사나 사람들이 꽤 있다. 사실 많이 사용한다고는 할 수 없지만 꾸준이 사용하자가 존재하고 나아가 사용자가 늘어나는 분야임에는 틀림없다. Oracel, MySQL 다음으로 많이 사용하는 데이터베이스 서버이기에 사용자가 적다고는 할 수 없을 것 같다. 오늘은 이 MSSQL을 설치해보고 네트워크 설정, 로그인 방법에 대해 올려보고자 한다. - MSSQL 설치 방법 일단 Installer를 다운받아야 한다. 다음 URL에 접속하여 Express버전을 ..
[백준 알고리즘] 1744번 - 수 묶기 (그리디 알고리즘) 1. 문제 및 예시 실행결과 그리디와 정렬을 사용하는 문제이다. 문제의 핵심만을 파악하면 구현은 어렵지 않은 문제이지만, 핵심을 파악하고 알고리즘을 정의하는 과정이 조금 어려웠다. 출처: https://www.acmicpc.net/problem/1744 1744번: 수 묶기 길이가 N인 수열이 주어졌을 때, 그 수열의 합을 구하려고 한다. 하지만, 그냥 그 수열의 합을 모두 더해서 구하는 것이 아니라, 수열의 두 수를 묶으려고 한다. 어떤 수를 묶으려고 할 때, 위치에 www.acmicpc.net 수열에서 두 수를 묶어 최대한 큰 수를 만드는 과정은 그렇게 어렵지 않다. 정렬한 후 뒤에서부터 두개의 수를 묶어 곱하면 된다. 가장 큰 수 두개를 곱하는 것이 가장 큰 수를 만드는 방법이기 때문이다. 이 과정..
[C++, 코딩테스트] '인덱스'로 특정 문자 제거하기 1. 개요 구현 문제단원을 풀어보는 과적엥서 문자를 찾아 지우는 erase()함수는 있어도, 인덱스를 기준으로 삭제해주는 함수가 없기에 만들어보면 유용할 것 같다는 생각이 들었다. 인덱스를 기준으로 문자 하나를 입력했을 때 해당 자리의 문자를 제거해주는 함수를 만들어 보았다. 2. 이론 구현 이론은 간단하다. 해당 인덱스까지의 문자열을 자르고 그 뒤의 인덱스를 다시 잘라 기존 전자의 인덱스와 더해주면 된다. 3. 코드 - 인덱스 기준의 문자 제거 코드 string erase_char(string str, int index) { string buff; buff = str.substr(0, index); buff += str.substr(index + 1, str.size() - (index + 1)); r..