본문 바로가기

전체 글221

H2 임베디드 데이터 베이스 com.h2database h2 의존성 인-메모리 데이터베이스 기본 연결 정보 확인하는 방법 URL: “testdb” username: “sa” password: “” H2 콘솔 사용하는 방법 spring-boot-devtools를 추가하거나... spring.h2.console.enabled=true 만 추가. /h2-console로 접속 (이 path도 바꿀 수 있음) spring.datasource.hikari.driver-class-name=org.h2.Driver spring.datasource.hikari.jdbc-url=jdbc:h2:mem:testdb spring.datasource.hikari.username=sa spring.datasource.hikari.password= pangtr.. 2019. 9. 13.
Neo4J 컨테이너 docker run -p 7474:7474 -p 7687:7687 -d --name neo4j_boot neo4j 컨테이너 생성(앞의 포트매핑은 http를 위한 것, 뒤의 포트매핑은 bolt프로토콜을 위한 것이라고 함) http://localhost:7474/browser 에서 설정과 학습, 테스트를 제공한다. 기본 비밀번호는 neo4j이며 로그인 후에는 기본 비밀번호를 무조건 변경하도록 되어있다. Neo4jTemplate (Deprecated) SessionFactory Neo4jRepository @NodeEntity 2019. 9. 12.
MongoDB 컨테이너 docker run -p 27017:27017 --name mongo_boot -d mongo 컨테이너 생성 docker exec -i -t mongo_boot bash 인터렉티브 모드 db use test db.accounts.find({}) MongoTemplate MongoRepository 내장형 MongoDB도 지원 (테스트용) de.flapdoodle.embed de.flapdoodle.embed.mongo test @DataMongoTest (슬라이싱 테스트 지원) @Document(collection = "accounts") 2019. 9. 12.
Redis 컨테이너 docker run -p 6379:6379 --name redis_boot -d redis 컨테이너 생성 docker exec -i -t redis_boot redis-cli 인터렉티브 모드 StringRedisTemplate 또는 RedisTemplate CrudRepository @RedisHash("accounts") 2019. 9. 11.
Postgresql 컨테이너 org.postgresql postgresql 의존성 docker run -d -p 5430:5432 --name postgres_boot -it --rm -v pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=pass -e POSTGRES_USER=sungmin -e POSTGRES_DB=springdata postgres 컨테이너 생성(경량 리눅스와 그안에 postgres를 가진형태) docker volume create pgdata docker run -itd -v pgdata:/var/lib/postgresql/data postgres 데이터를 계속해서 유지해야 한다면 Docker 볼륨옵션을 이용해서 한번더 run 시키자 docker exec -it p.. 2019. 9. 11.
윈도우10기반 아나콘다 환경에 각종 라이브러리 설정하기 Scikit-learn설치 (아나콘다에 의해 Scikit-learn이 같이 설치된다. 의존하고있는 Numpy와 Scipy도 한꺼번에 같이 설치된다.) Jupyter Notebook설치 conda install -c conda-forge jupyterlab jupyter notebook KoNLPy설치 conda install -c conda-forge jpype1 pip install konlpy 여기서 JPype는 파이썬 프로그램이 Java클래스 라이브러리에 접근하고자 할 때 필요하다고 한다. Kaggle-api설치 conda install -c conda-forge kaggle Missingno설치 conda install -c conda-forge missingno 2019. 9. 7.
타입파라미터를 제한하는 방법은 두가지이다. 이것이 자바다 - 13장 제네릭-제한된 타입 파라미터 으로 작성해서 제한하는 내용을 타입파라미터에 명시하는 방법과 public static V getValue(P p, K k) { if(p.getKey() == k) { return p.getValue(); } else { return null; } 제한하는 내용을 그냥 파라미터의 다형성을 활용하는 방법 두가지 다 활용될 수 있다. public static V getValue(Pair p, K k) { if(p.getKey() == k) { return p.getValue(); } else { return null; } } 참조: https://cafe.naver.com/thisisjava/14898 이것이 자바다 13제네릭 4번문제 대한민국 모임의 시작.. 2019. 9. 2.
Thread상태상수인 WAITING, BLOCKED와 상태제어 메소드인 wait()과 notify()의 관계 이것이 자바다 - 12장 멀티스레드 - 스레드 상태 제어 notify()메소드와 wait()메소드는 스레드에서 사용하는 것이 아니라 공유객체에서만 사용된다. 스레드 상태중에 일시정지를 의미하는 상수로 WAITING, BLOCKED, TIMED-WAITING이 있다. 상태를 중심으로 생각해보면, TIMED-WAITING은 sleep()메소드를 사용하면 이뤄지는 상태변화이다. WAITING은 wait()메소드나 join()메소드를 사용하면 이뤄지는 상태변화이다. BLOCKED는 공유객체의 synchronized메소드나 synchronized블록을 수행하는 스레드가 있는 상황에서 이 공유객체에 접근하는 다른 스레드들이 얻게되는 상태변화이다. 이제 거꾸로 wait()메소드나 notify()메소드 같이 메소드를 .. 2019. 9. 1.
Future<T> submit(Runnable task, T result)는 무엇을 리턴하나? 이것이 자바다 - 12장 멀티스레드 - 리턴값이 있는 작업 완료 통보 책에서 Runable은 작업에 리턴값이 없을때 사용하고, Callable은 작업에 리턴값이 있을 때 사용한다고 한다. submit(Runnable task) future.get() -> null future.get() -> 예외 발생 submit(Runnable task, Integer result) future.get() -> Integer 타입 값 future.get() -> 예외 발생 submit(Callable task) future.get() -> String 타입 값 future.get() -> 예외 발생 그러나 책에서 제공하는 위의 표에 가운데에 있는 있는 submit은 Runnable임에도 불구하고 두번째 파라미터가 re.. 2019. 8. 31.
DDD이해를 위한 키워드 모음 포프 https://youtu.be/n_9fBLl1gb4 차영호 https://youtu.be/cWdFxBi6joA Domain Object Value Object 최범균 https://youtu.be/N3NSISzolSw 바운디드 컨텍스트 최범균 https://youtu.be/OjMshMPVx5I 이벤트를 사용하는 것은 결합도를 낮춰주므로 선호된다. 애그리거트 단위의 이벤트 소싱, CQRS, Axon프레임워크 최범균 https://youtu.be/BE5ysejA2cQ 프로세스(SAGA) 매니저: 패턴으로 치면 mediator 패턴과 비슷한 역할을 한다고 볼 수 있다. 2019. 8. 31.