현재 solid 원칙에 대해서 리프레쉬하기에 좋은 시기인 것 같습니다. Solid의 S인 Single Responsibility Principle (단일 책임의 원칙) 부터 살펴보겠습니다. 단일책임의 원칙(Single Responsibility Principle)은 solid 원칙의 첫번째 원칙입니다. 하나의 클래스를 변경하는 이유는 반드시 하나여야만 한다 모든 모듈 혹은 클래스는 소프트웨어에 제공해야할 하나의 기능에 대한 책임을 가져야 합니다. 해당 책임은 클래스라는 단위로 캡슐화되어야 합니다. 단일책임의 원칙에 위배된 경우 예를 들어, 네비게이션 소프트웨어를 생각해보세요. 주어진 방향(동서남북)에 따라 위치가 변경되어야 합니다. Position 클래스는 xAxis와 yAxis의 값을 가집니다. pac..
안녕하세요. 저는 현재 java/spring 환경에서 upbit API를 활용하여 트레이딩 시스템을 개발하고 있습니다. 트레이딩 시스템은 현재 1차 배포까지 완성이 되어 트레이딩을 진행하고 있으며, 그간에 있었던 내용중 공유하고자 하는 내용이 있어 글을 작성합니다. 현재 트레이딩 시스템의 가장 주요한 난제는 알고리즘 최적화입니다. 적절한 알고리즘에 따라 필요하지 않은 로직은 수행하지 않고 시간을 많이 잡아먹는 로직, 혹은 코인에 대해 트래킹이 필요하고 왜 그랬는지 대처를 해야 좀더 적절한 대응이 가능하게 됩니다. 그 중 가장 기본은 각 코인당 발생하는 동일한 service를 태웠을 때 허용 가능한 시간동안의 로직을 수행했느냐를 체크하는 것이 필요했습니다. @Slf4j @RequiredArgsConstru..
자바 스프링 환경에서 개발하게되면 습관적으로 Lombok을 주입받아 많이 사용하곤 한다. 그중에서 @Builder 어노테이션이 편한 사용성때문에 많이 쓰게되는데 오늘은 초기값을 설정했을 때 발생하는 오류를 공유하고자 한다. @Builder @Data public class OrderListRequest { private String market; // 마켓 아이디 private List uuids; // 주문 UUID의 목록 private List identifiers; // 주문 identifier의 목록 private OrderState state; // 주문 상태 private List states; // //미체결 주문(wait, watch)과 완료 주문(done, cancel)을 혼합하여 조회하..
아이맥에서 작업하던 프로젝트를 m1 맥북에 새로 셋팅하다가 발견하게된 에러 로그. 로그를 보니 기존 아이맥은 maven 버전이 3.8.1 버전 미만이었나보다 싶어서 maven 버전을 사용하던 버전으로 맞춰주면 되지 않을까? 싶어서 찾아봄. 하지만 재택중이라 현재 회사 아이맥의 메이븐 버전을 직접확인할 수는 없어서 임시방편으로 인텔리제이가 사용하는 maven 버전을 프로젝트에서 읽어오도록 변경함. preferences -> 빌드, 실행, 배포 -> 빌드도구 -> Maven 경로에서 Maven 홈 경로(H) 를 찾아 Maven 래퍼 사용으로 수정. 해당 설정은 .mvn/wrapper/maven-wrapper.properties 에 정의된 값을 읽으므로 기존 프로젝트에서 쓰던 메이븐 버전으로 불러올 것임. 깔..
안녕하세요. 오늘은 웹소켓으로 제공되는 데이터를 수신하기 위한 자바 클라이언트 예제를 구현해보려 합니다. https://docs.upbit.com/docs/upbit-quotation-websocket 업비트 개발자 센터 업비트 Open API 사용을 위한 개발 문서를 제공 합니다.업비트 Open API 사용하여 다양한 앱과 프로그램을 제작해보세요. docs.upbit.com 현재까지 구현된 소스코드는 여기에서 확인하실 수 있습니다. 스프링을 이용하며 데모 프로젝트를 개발중에 있지만 우선은 main 메소드를 활용하여 작성한 예제코드를 제공하려 합니다. 현재 해당 WebSocket 예제를 작성하기까지 제가 필요했던 부분은 바로 체결강도라는 수치입니다. 체결강도란 현재 매수세가 강한지 매도세가 강한지에 대해..
안녕하세요. upbit api를 활용하여 간단히 매수 / 매도 주문을 넣는 예제를 작성해보겠습니다. 자동매매의 가장 기본이 되는 기능일텐데 우선 API 문서 및 예제 코드를 통해 소스분석을 해보겠습니다. 제가 보고있는 API 레퍼런스는 아래의 주소에 해당하는 API 입니다. https://docs.upbit.com/reference/%EC%A3%BC%EB%AC%B8%ED%95%98%EA%B8%B0 업비트 개발자 센터 업비트 Open API 사용을 위한 개발 문서를 제공 합니다.업비트 Open API 사용하여 다양한 앱과 프로그램을 제작해보세요. docs.upbit.com market은 어떤 종목을 주문할 것인지에 대한 정보입니다. 처음에는 KRW나 BTC, USDT처럼 거래단위인줄 알았는데 주식으로 치면..
안녕하세요. 오늘은 우연히 업비트 OPEN API의 레퍼런스를 접하게 되었고 생각보다 잘 정리되어 있는 모습이 매우 호감이어서 이를 간단히 사용해보기 위한 포스팅을 진행하겠습니다. 업비트 open api 레퍼런스 주소는 다음과 같습니다. 관심있으신 분들은 본인만의 프로그래밍을 해보시기 바랍니다 ㅎㅎ https://docs.upbit.com/reference 업비트 개발자 센터 업비트 Open API 사용을 위한 개발 문서를 제공 합니다.업비트 Open API 사용하여 다양한 앱과 프로그램을 제작해보세요. docs.upbit.com 우선 업비트 api도 모든 open api처럼 access token을 별도로 챙겨야합니다. open api 사용등록 방법 먼저 업비트 홈페이지를 PC 환경으로 접속합니다. h..
안녕하세요! 오늘은 주니어 개발자라면 누구나 고민했던! 커리어, 이력서, 포트폴리오! 에 대한 이야기입니다! 사실 제 블로그에서 가장 조회수가 많은 검색어가 "개발자 포트폴리오" 입니다. 저 또한 어떻게 이력서와 포트폴리오를 구성할지 확실한 방향이 없었을 때 많은 선배 개발자분들이 공유해주셨던 포트폴리오 페이지를 탐색하여 작성했던 것 같아요. 누구나 이런 경험이 있었을거에요. 내가 작성한 포트폴리오에 대한 누군가의 피드백을!! 강렬히 원했던 경험!! 그 수요를 캐치한 서비스를 소개하고자 합니다!! in!t https://www.in-it.io/ 주니어 개발자라면 당장 In!t 주니어 개발자를 위한 커리어 성장 플랫폼 junior.in-it.io init 서비스의 기본적인 프로세스를 소개하자면!! 우선 위..
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.