일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- NoSQL
- nodejs
- reactor
- Lombok
- cache
- AWS
- effective
- redis
- Linux
- mybatis
- VCS
- libuv
- 데이터통신
- Elk
- Static
- spring
- javascript
- html
- ajax
- Java
- git
- HTTP
- Heap
- reactive
- socket
- r
- github
- 네트워크
- mongodb
- network
- Today
- Total
목록분류 전체보기 (187)
빨간색코딩
참고문서 https://github.com/ept/ddia-references 데이터 중심 애플리케이션 설계(마틴 클레프만, 위키북스) 초심자의 눈으로 이해한 내용을 정리해보았다. 책에 있는 내용을 기반으로 썼지만, 책에 없는 내용도 조금씩 적어보았다. 책은 꼭 사서 보시길 바랍니다.. 데이터 모델은 우리가 어떤 문제를 어떻게 해결해야하는지, 생각에도 영향을 미친다. 데이터 모델은 그 위에서 소프트웨어가 할 수 있는 일과 할 수 없는 일에 영향을 준다. ex) 어떤 연산은 빠르고, 어떤 연산은 느리다. 데이터 모델의 큰 범주 관계형 모델 문서 모델 그래프 모델 1. 관계형 모델과 문서 모델 관계형 모델 데이터는 관계(relation)으로 구성 각 관계는 순서없는 튜플(tuple)의 모음 SQL 은 정규화..
redis 기본 개념 포스팅 : https://sjh836.tistory.com/178 maxmemory https://redis.io/docs/manual/config/ redis.conf 에서 초기설정 가능 런타임에는 CONFIG SET 으로 가능 32bit : 3GB 64bit : 0 = 상한선없음 RAM을 모두 사용하면, 디스크 swap 까지 사용 swap 사용부터는 상당한 성능저하 redis cluster 에서도 동작은 한다. 다만, 한 장비에 N개의 노드를 뛰울 경우, maxmemory 를 잘 생각해야한다. A 장비에 master 노드, slave 노드를 뛰울거면, ÷2 를 해야.. RDB 에 스냅샷을 남기는 경우, BGSAVE 를 수행하는 스레드가 메모리를 사용할 수도 있으므로, 고려해야한다..
참조문서 https://github.com/ept/ddia-references 데이터 중심 애플리케이션 설계(마틴 클레프만, 위키북스) 초심자의 눈으로 이해한 내용을 정리해보았다. 책에 있는 내용을 기반으로 썼지만, 책에 없는 내용도 조금씩 적어보았다. 책은 꼭 사서 보시길 바랍니다.. 1. 데이터 시스템 어플리케이션은 계산 중심(compute-intensive)보다 데이터 중심(data-intensive)이 많다. 계산에 쓰이는 CPU보다는 데이터 양, 데이터 복잡도 등이 더 문제다. 데이터 중심 어플리케이션이 공통으로 필요로 할수 있는 기능들 : 데이터 시스템 데이터베이스 : 영속성 스토리지 캐시 : 읽기 속도 향상, 값비싼 수행 결과 기억 검색 색인 : 사용자가 키워드로 데이터를 검색하거나 다양한 ..
참조문서 https://flask-docs-kr.readthedocs.io/ko/latest/quickstart.html flask 를 간단히 쓸 용도로, 공식문서를 보고 대강 메모해두었다. 1. 시작하기 설치 : pip install flask hello world : app.py from flask import Flask app = Flask(__name__) @app.route('/') def home(): return 'This is Home!' if __name__ == '__main__': app.run('0.0.0.0',port=5000,debug=True) 2. 라우터 라우터에서 인자 받기 GET : request.args.get(매개변수명) POST : request.form[매개변수명]..
참조문서 점프 투 파이썬 : https://wikidocs.net/book/1 다른 언어에 어느정도 다룰 수 있는 상태라면, 아래만 봐도 파이썬을 이해하는데 크게 문제는 없을 정도로만 정리했다. 0. 개발환경 세팅 window10 기준 pyenv 설치 : https://github.com/pyenv-win/pyenv-win 여러 파이썬 버전을 설치하고 관리해줌. nodejs의 nvm 같은 것 환경변수 설정 PYENV, PYENV_ROOT, PYENV_HOME = %USERPROFILE%\.pyenv\pyenv-win PATH += %USERPROFILE%\.pyenv\pyenv-win\bin, %USERPROFILE%\.pyenv\pyenv-win\shims pyenv rehash pyenv instal..
참조문서 https://martinfowler.com/tags/domain%20driven%20design.html Domain Driven Design Quickly (도메인 주도 설계란 무엇인가? 쉽고 간략하게 이해하는 DDD, 플로이드 마리네스쿠 지음, 최수경 옮김)을 읽고 이해한 내용을 정리해보았다. Evans Eric 의 Domain-Driven Design: Tackling Complexity in the Heart of Software 는 2003년 8월 22일 초판인데, 이걸 기반으로 2011년에 쓴 책이라고 한다. 책에 있는 내용을 기반으로 썼지만, 좀 더 쉬운 이해를 위하여 예제를 덧붙이거나, 주관적 해석, 책에 없는 내용(반 버논의 주석, Spring 프레임워크에서 DDD 이야기 등)..
참조문서 https://docs.spring.io/spring-data/jpa/docs/2.5.2/reference/html/#reference https://arahansa.github.io/docs_spring/jpa.html 1. 개요 Repository 추상화를 통해 interface 선언만으로도 JPA 사용 가능 만약, Spring Data JPA 를 사용하지 않는다면, javax.persistence 패키지의 EntityManager 를 사용하거나 JPQL을 이용해서 쿼리를 날렸어야 했음. JpaRepository 상속 메소드 이름으로 쿼리 생성 지원 이외에도 다양한 지원(페이징, 정렬, 도메인 클래스 변환) 2. JpaRepository 살펴보기 JpaRepository는 CrudReposi..
참조문서 https://hibernate.org/orm/documentation/5.4/ https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html https://docs.jboss.org/hibernate/jpa/2.2/api/overview-summary.html 자바 ORM 표준 JPA 프로그래밍 (김영한 저) https://www.slideshare.net/NHNFORWARD/2018-mybatis-jpa 1. JPA 란? Java Persistence API 의 약자로 java진영의 ORM 표준스펙이다. 높은 생산성을 가져다주며, 동아시아(한중일)를 제외하고는 Data Access 레이어에 JPA..
참조문서 https://docs.spring.io/spring-batch/docs/current/reference/html/index.html https://github.com/spring-projects/spring-batch https://terasoluna-batch.github.io/guideline/5.0.0.RELEASE/en/Ch02_SpringBatchArchitecture.html 스프링 배치 완벽 가이드(마이클 미넬라, 에이콘) 초심자의 눈으로 이해한 내용을 정리해보았다. 책에 있는 내용을 기반으로 썼지만, 책에 없는 내용도 조금씩 적어보았다. 책은 꼭 사서 보시길 바랍니다.. 1. job과 step job은 단순하게 말하면 state machine 이다. 현재 상태를 나타내줌 청크 처..
참조문서 https://docs.spring.io/spring-batch/docs/current/reference/html/index.html https://github.com/spring-projects/spring-batch 스프링 배치 완벽 가이드(마이클 미넬라, 에이콘) 초심자의 눈으로 이해한 내용을 정리해보았다. 책에 있는 내용을 기반으로 썼지만, 책에 없는 내용도 조금씩 적어보았다. 책은 꼭 사서 보시길 바랍니다.. 1. 배치 처리는 언제? 배치 처리는 상호 작용이나 중단없이 유한한 양의 데이터를 일괄로 처리하는 것 실시간 처리가 불필요하거나 최선이 아니고, 주기적으로 반복해야할 때 월별 거래명세서 자원의 효율적 사용 데이터과학분야 2. 배치 역사 과거에는 메인프레임 서버에서 코볼로 개별 배치..
참조문서 https://kafka.apache.org/documentation/ https://godekdls.github.io/Apache%20Kafka/contents/ 1. 개요 링크드인에서 2011년 개발 Apache 프로젝트 오픈소스 Message Queue 분산 메세징 시스템, 확장성, 고가용성 메세지 전달의 중앙 플랫폼으로 두고 필요한 모든 데이터 시스템과 연결된 파이프라인을 만드는 것을 지향함 이벤트 스트리밍 jdk 1.8 이상 1-1. 기존 MQ(RabbitMQ 등)와 차이점 대용량 실시간 로그 처리에 특화 분산 및 복제가 쉬움 AMQP(Advanced Message Queuing Protocol) 프로토콜이나 JMS API를 사용하지 않고 단순한 메시지 헤더를 지닌 TCP기반의 프로토콜..
참조문서 https://projectreactor.io/ https://github.com/reactor/reactor-core https://godekdls.github.io/Reactor%20Core/contents/ 리액티브 스트림을 기본적으로 이해해야, Reactor 도 수월하게 이해할 수 있다. cf) 리액티브 스트림 포스팅 : https://sjh836.tistory.com/182 예제코드는 io.projectreactor:reactor-core:3.4.2 기준으로 작성되었다. 1. Reactor의 탄생 reactor 1.0은 13년 7월에 출시되었다. spring 프레임워크의 개발팀인 pivotal 에서 만든 오픈소스이다. 리액터 패턴, 함수형 프로그래밍, 메세지 기반 등의 설계와 모범사례들..
참조문서 https://dzone.com/articles/understanding-reactor-pattern-thread-based-and-eve https://stackoverflow.com/questions/14317992/thread-per-connection-vs-reactor-pattern-with-a-thread-pool https://hila.sh/2019/12/28/reactor.html 1. 반응자(Reactor) 패턴이란? 동시성을 다루는 디자인 패턴 중 하나로, 동시에 들어오는 여러 클라이언트의 요청들을 처리하는 기법이다. 순차적으로 처리 멀티프로세스, 멀티스레드 대신 싱글스레드를 채택함으로써, C10K 문제 해결 이벤트 핸들링 패턴, event driven architecture ..
1. RxJava는? https://github.com/ReactiveX/RxJava 리액티브 프레임워크 중 하나이다. 다른 구현체로는 Akka, 리액터 등 RxJava 1.3.8을 끝으로 EOL 되었지만, 개념을 익히는 용도로만 사용해보자 RxJava 2.x 나 3.x 사용 권장 아래에서 사용하는 API들은 매우 기본적인 거라, 다른 버전에서도 호환됨 2. 스트림의 생산과 소비 @Test public void 스트림의_생산과_소비() { // 스트림 생산 : 이벤트 생성기 Observable observable = Observable.create(new Observable.OnSubscribe() { @Override public void call(Subscriber
참조문서 http://www.reactive-streams.org https://github.com/reactive-streams/reactive-streams-jvm/ https://engineering.linecorp.com/ko/blog/reactive-streams-with-armeria-1/ 1. Reactive Streams 란? 리액티브 스트림 스펙을 정의하고, 인터페이스를 제공하는 reactive-streams.org 를 살펴보면, 다음과 같다. Reactive Streams is an initiative to provide a standard for asynchronous stream processing with non-blocking back pressure. non-blocking b..