일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 코딩테스트
- 애자일프로그래밍
- 클린코드
- 코딩
- 그리디
- 프레임워크
- 코드
- 애자일기법
- 읽기쉬운코드
- ES
- 백준
- 개발자
- API
- 스프링
- Spring
- 엘라스틱서치
- cleancode
- 데이터베이스
- Elasticsearch
- spring boot
- Baekjoon
- 애자일
- 그리디알고리즘
- 알고리즘
- 개발
- framework
- JPA
- 자바
- Java
- database
- Today
- Total
목록전체 글 (173)
튼튼발자 개발 성장기🏋️
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/HHskB/btrzvxwhN0W/fWDX9lwK3y720j2FtEbxmK/img.png)
대규모 데이터의 처리는 왜 소규모 데이터보다 어려운가? 데이터는 디스크에서 로드해서 메모리에 저장한다고 이전 토픽에서 언급한 바있다. 속도를 따지고 보자면 메모리가 디스크보다 훨신 빠르기 때문에 메모리에서 계산해야 빠른 결과를 볼 수 있는 것이다. 이 부분이 포인트가 된다. 메모리는 비교적 디스크보다 크기가 작기 때문에 대규모 데이터를 처리하기엔 적합하지 않다. 그러나 속도 측면에서 볼 때는 디스크보다 메모리에서 계산하는 것이 효율적이다. 이 사실에서 알 수 있는 부분은 메모리 내에서 계산할 수 없는 정도의 데이터라면 디스크에 두고 특정 데이터를 검색한다는 것이다. 디스크는 왜 메모리보다 느린가? 디스크는 물리적인 탐색을 통해 검색하기 때문에 속도에 영향이 있을 수 있다. 디스크에는 헤드라고 하는 녀석과..
동기 지난번에 개발자라면 누구나 꿈꾸지만 높은 연봉만큼 일이 너무 많다는 소문이 자자한 기업 xx에서 오퍼가 왔다. 그 곳으로 이직할 생각은 없었으나, 해당 기업 면접을 한 번도 본적이 없었기 때문에 그 기업은 어떤 것에 관심이 있고 어떤 인재를 추구하는지 궁금해서 면접을 보았다. 약 1시간 30분동안 대용량 트래픽과 그에 따른 WAS 혹은 DB서버, 앱서버 관리 및 장애대응에 대한 이야기로 가득했다. 개발 경력 4년동안 운영업무와 DB관리를 해본적이 없는 나는 굉장히 창피할정도로 무식(?)했다. 해당 포지션이 데브옵스가 아닌데도 개발적인 내용보다 운영 내용이 많았던 것 같다. 면접이 끝나고 운영 지식을 쌓아볼까 해서 책을 구매하여 매일 한 챕터씩 읽기로 했다. 본 도서는 일본기업 "하테나"에서 근무했던..
※ 본 '코인 자동 매매 프로그램 만들기' 시리즈 포스팅은 개인적인 학습용으로 개발하게 되는 프로그램입니다. 투자의 책임은 투자자 본인에게 있음을 알려드립니다. 다른건 제외하고 핵심인 매수/매도 중에서 포인트만 포스팅을 해볼까 한다. 각 투자자들은 자신만의 매수점과 매도점을 계산할때 사용하는 지표들이 다를 것이다. 나는 참고로 RSI를 좋아해서 RSI를 계산하여 매수점과 매도점을 예측한다. if(rsi < BUY_RSI_STANDARD) { // 호가조회 Map orderBook = nonAuthAPI.getCoinOrderBook(coinName).get(0); List orderBookUnits = JsonUtil.jsonString2List(String.valueOf(orderBook.get(API..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/d1iOhX/btrsH9Cblgm/47EPusBr2qgim67VEtK8MK/img.png)
※ 본 '코인 자동 매매 프로그램 만들기' 시리즈 포스팅은 개인적인 학습용으로 개발하게 되는 프로그램입니다. 투자의 책임은 투자자 본인에게 있음을 알려드립니다. 이번 포스팅에서는 scheduling에 대해 설명한다. 내가 배치로 실행할 scheduler는 아래와 같다. Alarm class : 내가 투자를 하면서 가장 내 자신이 한심하다고 느낀 것이 하루종일 앱만 보고 있는 나의 모습이었다. 그래서 앱을 보지 않게 하기 위해 일정한 시간 간격으로 나의 포트폴리오 상태를 slack을 통해 알람을 발송한다. Buy class : 말 그래도 매수만을 담당한다. 그러나 내가 사지 않은 새로운 코인만을 매수한다. (추가매수 x) DailyVisual class : 나의 포트폴리오에 대해서 매일 9시에 시각화한다...
※ 본 '코인 자동 매매 프로그램 만들기' 시리즈 포스팅은 개인적인 학습용으로 개발하게 되는 프로그램입니다. 투자의 책임은 투자자 본인에게 있음을 알려드립니다. 이번 포스팅은 프로그램에 사용될 resource에 대해 이야기한다. encrypted.a.key={업비트에서_발급받은_암호화된_access_key} encrypted.s.key={업비트에서_발급받은_암호화된_secret_key} 나는 업비트에서 API를 사용하기 위해 발급되는 access key와 secret key를 한 번 암호화 해서 사용한다. 실제 배치에서는 해당 키를 사용해서 로그인을 시도할 때, 복호화가 진행되게 해서 보안에 신경썼다. 암호화의 종류는 선호하는 방식을 진행하면 된다. key={암호화_key_32byte} iv={암호화_i..
※ 본 '코인 자동 매매 프로그램 만들기' 시리즈 포스팅은 개인적인 학습용으로 개발하게 되는 프로그램입니다. 투자의 책임은 투자자 본인에게 있음을 알려드립니다. 혼자 무언가를 만들어 볼까 하다가 작년에 파이썬으로 코인 자동 매매 프로그램을 만들게 떠올랐다. 그걸 java로 포팅한다면!? ㅋㅋㅋㅋㅋㅋ 사실 파이썬이 훨신 참고할 데이터가 많았고 많이 사용되어지고 있어서 파이썬을 사용했지만 java로 포팅한 이유는, spring을 공부하기 위함이었다.(전 직장에서 spring을 쓰지 않았기 때문 ㅠㅠ) 코인 자동 매매 프로그램을 만들기 앞서서 미리 준비해야할 사항(플랫폼 선정, 가입, API token 수령 등)은 패스한다. 왜냐하면 이 포스팅 시리즈의 메인은 java-spring이기 때문이다. 훨신 더 좋은..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/c6WqzB/btrr05m56bd/LeG8Tia7Hnx7XwlPn7hY30/img.jpg)
이직하게 된 배경은? 최근들어 개발자의 몸 값이 치솟는다는 이야기를 많이 듣는다. 주위에 개발자가 아닌 지인들에게 "나도 개발자 할껄...", "개발자 얼마나 많이 버냐?" 등 기분 나쁜(?) 이야기를 많이 듣는다. 내가 생각하기에는 "요즘 개발자가 부족하다."라는 사회에 떠도는 이야기는 틀린 말인듯 하다. 명확하게 "요즘 찐개발자가 부족하다."가 맞는 표현인 것 같다. 요즘 사회에 [보통 6개월 강의(혹은 국비교육 등)를 듣고 신입 개발자]로 지원하여 초봉 7천을 부른다는 이야기를 들었다. (정말 한 숨이 절로 나왔다.) 나는 4년제 대학에서 보통 학생과는 다르게 연구실에 들어가 학사 논문도 써보기도 하고 졸업작품과 졸업논문에 대해서 특허출원의 기회도 얻었다. 더불어 졸업하자마자 취업해서 사회로 다이빙..
JPA를 사용하면서 가장 중요한 일이 java의 entity와 database의 table을 매핑하는 것이라고 해도 과언이 아니다. 따라서 우리는 매핑 어노테이션을 충분히 알고 써야할 책임이 있다. JPA는 4가지의 매핑 어노테이션을 지원한다. - 객체와 테이블 매핑 : @Entity, @Table - 기본 키 매핑 : @Id - 필드와 컬럼 매핑 : @Column - 연관관계 매핑 : @ManyToOne, @JoinColumn @Entity 테이블과 엔티티를 매핑할 때에는 필수로 사용해야한다. @Entity 어노테이션에서 지원하는 속성은 다음과 같이 정리할 수 있다. 속성 기능 default name 엔티티 명 지정. 다른 패키지에 이름이 같은 엔티티 클래스가 있을 때 사용하여 충돌이 일어나지 않도록 ..