본문 바로가기

[spring boot] 다중 DB 사용하기: ApacheShardingSphere 활용 들어가기 자바에서 샤딩용 라이브러리로 많이 사용하고 있는 Apache ShardingSphere을 사용해서 다중 DB사용하는 방법을 살펴볼려고 한다. 여기서는 간단하게 맞보기로 살펴볼 예정이다. 작성자: ospace114@empal.com, http://ospace.tistory.com/ Sharding 이름에도 나오지만 Apache의 ShardingSphere는 샤딩에 많이 사용된다. 샤딩이란 데이터를 여러 DB 서버로 분산해서 처리량을 높이는 방법이다. 이런 샤딩은 데이터를 분산하는 방식에 따라 여러 종류로 구분할 수 있다. Vertical: 부하가 몰리는 테이블을 분리해서 다른 DB로 분산 Horizontal: 한 테이블 데이터를 여러 DB로 분산 샤딩하는 방법은 직접 연결 구현하거나 중간 프록시를.. 더보기
[spring boot] 다중 DB 사용하기: AbstractionRoutingDataSource 활용 들어가기 AbstractionRoutingDataSource을 사용해서 다중 DB를 구현하는 방식이다. 작성자: ospace114@empal.com, http://ospace.tistory.com/ 설정파일 구성 다중 DB에서 사용할 설정파일에 어떻게 설정값을 할당하는지 살펴보자. 다중 DB에 사용할 application.properties 내용은 아래와 같다. spring.datasource.master.jdbc-url = jdbc:mysql://127.0.0.1:3306/db1?serverTimezone=UTC spring.datasource.master.username = foo spring.datasource.master.pasword = foopass spring.datasource.slave... 더보기
[spring boot] 다중 DB 사용하기: 설정 활용 들어가기 spring boot의 설정파일을 이용해서 다중 DB을 설정하는 기능이다. 이를 위해서는 순수한 spring boot 제공되는 설정은 1개 DB만 가능하기 때문에 그대로 사용하기에는 한계가 있다. 환경설정을 처리하기 위한 추가적인 작업이 필요하다. 작성자: ospace114@empal.com, http://ospace.tistory.com/ 설정파일 먼저 설정파일에 어떻게 설정할려고 하는지 먼저 살펴보자. 사용할 application.properties 내용은 아래와 같다. spring.datasource.db1.jdbc-url = jdbc:mysql://127.0.0.1:3306/db1?serverTimezone=UTC spring.datasource.db1.username = foo spri.. 더보기
[spring boot] jackson대신에 gson으로 사용하기 들어가기 최근에 참고한 자료에 따르면 gson이 성능이 좋아져서 jackson보다 더 좋아졌다는 글이 있었다. 그래서 한번 spring boot의 json 매퍼를 변경해서 사용해보았다. 작성자: ospace114@empal.com, http://ospace.tistory.com/ 기본 환경 먼저 dependency을 추가하자. spring boot을 사용한다면 version을 사용하지 않아도 자동으로 버전을 잡아준다. 현재 기준(2022.07.06)으로 버전 2.8.8 이하는 vulerability가 있어서 사용을 권장하지 않는다. com.google.code.gson gson 그리고 기존 jackson은 spring-boot-starter-web에서 exclusions에 포함시켜서 제외시켜준다. org.. 더보기
[spring] Spring Framework에서 DB연동 테스트 들어가기 Spring에서 사용하는 테스트 라이브러리와 활용을 살펴보자. 이 글은 spring.io에 Testing[1]에서 DB관련 일부 내용을 정리하였다. 작성자: ospace114@empal.com, http://ospace.tistory.com/ DB 설정 DB 환경설정 위한 2가지 방법있다. 직접 설정 Configuration 어노테이션을 사용한 datasource 설정 properties 파일을 사용한 datasource 설정 @Configuration @MapperScan("kr.co.test.foo.repository") public class RepositoryConfig { @Bean public DataSource dataSource() { return new EmbeddedDataba.. 더보기
protothreads 정리 들어가기 protothreads는 멀티스레드가 아닌 이벤트 모델을 기반으로 일반적인 쓰레드 형태의 제한된 제어 흐름을 구현하는 라이브러리이다. 멀티쓰레드에 비교하면, 이벤트 중심 프로그래밍에서는 쓰레드당 할당할 메모리가 필요 없다. 이벤트 중심 모델은 동기식 처리가 지원되지 않기 때문에 상태머신을 사용해서 높은 수준의 제어흐름을 구현할 때에 단일 이벤트 핸들러로 처리하기 힘들다. 또한 이벤트 중심 모델에서 상태머신의 제어흐름을 관리하는게 어렵다. 이로인해 버그가 발생하고 에러발생 가능성이 높아지게 된다. protothreads는 이런 이벤트 중심 프로그래밍의 복잡도로 인한 에러 발생 가능을 쓰레드 형태의 제어 흐름을 구현함으로써 줄이며, 자원을 효율적으로 활용하게 만든다. 이 글은 Protothreads.. 더보기
[node.js] gulp을 사용한 node.js 환경구성 들어가기 node.js로 프로젝트 관리할 수 있는 도구가 무엇이 있을까하다가 glup가 눈에 들어왔다. 한번 glup로 환경 구성을 해보자. eslint와 babel도 같이 설정했다. 작성자: ospace114@empal.com, http://ospace.tistory.com/ 초기화 node.js으로 개발하기 위한 기본 소스 환경을 구성해보자. 먼저 가장 기본적인 초기화부터 시작하자. 아래 명령을 이용해 package.json 기본 파일을 생성한다. npm init설치 glup 설치 다음으로 사용할 빌드 도구를 설치하자. 이는 전체 패키지로 한번만 설치하면 다른 곳에서도 사용 가능하다. npm i --save-dev glupbabel 설치 다음으로 트랜스 컴파일러를 설치한다. npm i --save-d.. 더보기
[autohotkey] chrome 제어하기 들어가기 autohotkey에서 chome을 실행하고 필요한 정보를 추출하고 제어하는 기능을 간단하게 살펴볼려고 한다. 작성자: ospace114@empal.com, http://ospace.tistory.com/ Chrome.ahk 다운로드 먼저 G33kDude님이 작성하신 Chrome.ahk가 필요하다. https://github.com/G33kDude/Chrome.ahk 파일을 다운로드을 받고 작업할 폴더에 넣어둔다. 스크립트 작성 이제 autohokey 스크립트를 작성해보자. 기본 환경 설정을 해보자. #include Chrome.ahk ; 프로파일용 폴더 생성 FireCreateDir, ChromeProfile ; 디버깅용 크롬 실행하고 생성된 프로파일 폴더(절대경로 권장) 지정 ChromeIn.. 더보기

반응형