Taes-k DevLog
  • 몰라도 되는 스프링
  • Refactoring (2판)
  • Review
  • 요령과 기본(Spring)

R2DBC mysql (Spring reactive-2)

R2DBC 포스팅 작성일 기준 (2020.08.17) Spring boot 최신 버전인 spring-boot-2.3.x 에서는 신기술을 탐닉하는 스프링진영의 개발자들이라면 기다려왔을 R2DBC의 GA (General Availability)버전이 Spring-data 프로젝트에 포함되었습니다. The Reactive Relational Database Connectivity (R2DBC) 는 이름 그대로 RDB를 Reactive하게 사용...

17 Aug 2020

Reactive 프로그래밍 (Spring reactive-1)

reactive vs imperative 저를 포함한 대부분의 독자분들 께서는 reactive라 하면 늘 찬양하는 글과 발표주제들을 보셨을 겁니다. 소개 내용을 보면 효율적이고 멋진 프로그래밍을 할 수 있어보이지만 실제로 실무환경에서 reactive를 적용시켜보기에는 어려운점이 많으셨을거라 생각합니다. 이번 포스팅에서는 reactive의...

12 Aug 2020

Docker를 알아보자 (Docker-1)

Container 흔히들 Docker를 Container 기반의 가상화 기술이라고 설명을 하는데, Docker는 컨테이너 기술을 활용해 제공하는 플랫폼 서비스이자, 현 시점에서 컨테이너 기술을 선도하는 기업 입니다. 따라서 Docker를 이해하기 위해서는 Container에 대해서 알고 넘어가는것이 필수 입니다. Container 혹은...

31 Jul 2020

Redis를 운영하면서 반드시 알아야할 내용들

Redis 특성 Redis는 In-Memory Store로써, 기본적으로 빠른 데이터 입출력을 제공합니다. 그와 더불어 기본적으로 해시기반의 Key-Value 형식의 저장방식을 제공하면서 키 등록/ 조회에 O(1)의 성능을 보장합니다. Get : O(1) SET : O(1) Value로써 사용될 수 있는 자료구조로는...

23 Jul 2020

Spring boot 2.3.x update

요약 Spring boot 2.3 주요 패치사항을 요약해보자면, 다음과 같은 기능들이 강화되었습니다. Docker Image Custom Layer k8s monitoring Graceful shutdown 전반적으로 Container 기술을 효율적으로 사용하기 위한 기능들이 이번버전에서 업데이트 되었다고 할 수 있을것 같습니다. 자세한 내용은...

21 Jul 2020

Vertica jdbc bulk insert

vertica bulk insert 일반적으로 사용되는 OLTP(OnLine Transaction Processing)성 DB와는 다르게, Vertica는 OLAP(OnLine Analytical Processing)성 DB로, 대량데이터 처리에 초점이 맞추어져 있습니다. 따라서 서비스를 설계 할 때에도 이러한 DB의 특성에 맞추어 설계를 해야하는데, 예를 들어 MySQL에서 다량의...

09 Jul 2020

Redis 자료구조 변경으로 메모리 사용량을 줄여보자!

Redis 메모리 에러 저희팀에서는 상품 판별을 위해 DB 앞단에 Redis를 두고 상품정보를 persistant 하게 관리하고 있습니다. 그렇게 상품건수가 2억 5천만건을 넘어가던 어느날 Reedis에서 다음과 같은 에러가 발생하면서 정상적인 데이터 처리에 실패 했습니다. MISCONF Redis is...

05 Jul 2020

Jenkins - 내 PR을 자동으로 코드리뷰 받게하자!

CI 들어가기 앞서서, CI에대해 짧게나마 설명을 드리고 가도록 하겠습니다. Continuous Integration약어인 CI는 일반적으로 지속적 통합이라는 용어로 번역되는데, 이용어의 유래는 위키백과에 잘 설명되어있어 내용을 발췌합니다. 소프트웨어 개발에서 각 소프트웨어 개발자가 작업한 변경점을 프로젝트의 원래 소스 코드에...

22 Jun 2020

Scope에 따른 Spring bean life-cycle

Spring bean bean의 life-cycle을 알아보기에 앞서서 bean의 개념부터 간단하게 알아보도록 하겠습니다. (해당 포스팅 내용은 정확한 내용 전달을 위해 Spring doc 내용을 발췌 번역한 내용임을 알립니다. - docs.spring.io) bean은 SpringFramework에서 가장 중추적인 역할을 하는 Spring IoC...

14 Jun 2020

ChainedTransactionManager 데이터소스 트랜잭션 연결하기

다중 데이터소스 트랜잭션 연결 요새는 MSA로 시스템을 구축하여 서버와 DB도 모두 각각 분리하여 마이크로하게 시스템 설계를 하는 추세이지만, 서비스에 따라 여러가지 이유로인해 여러개의 Database를 연결하고 하나의 트랜잭션으로 묶어야 할 상황이 생길 수 있습니다. 이번 포스팅에서는...

09 Jun 2020

코드리뷰... 어떻게 더 잘할수 있을까?

코드리뷰 우리팀정도면 코드리뷰를 잘 하고있다고 생각하지만, 작업량이 많아지고 코드리뷰 건수 자체가 많아지면서 점점 부담이되고 죄송하게도 좀 더 자세히 리뷰를 못하게되고 있는듯하여 코드리뷰를 더 잘 할 수있는 방법을 찾기위해서 레퍼런스를 찾아 정리해 보았습니다. 카카오스토리팀 레퍼런스 정리...

29 May 2020

Mysql innoDB Lock, isolation level과 Lock 경쟁

InnoDB Lock MySql InnoDB 엔진의 경우 다양한 Lock을 이용하여 ACID(원자성, 일관성, 고립성, 지속성) 및 동시성을 보장합니다. Lock을 쿼리마다 사용자가 명시적으로 걸어 줄 수도 있지만, 일반적으로 Transaction isolation level에 따라 Lock을 걸어주게 되는데, level에 따른 lock을...

17 May 2020

좋은 개발문화를 만든다는것

애자일, 스크럼, 코드리뷰, CI/CD, Git-flow, 테스트코드, 기술공유, 스타일가이드, 사내 스터디… 너무나도 친숙한 이것들은 ‘개발 문화’를 만들기 위해 많은 회사들에서 시행하고있는 내용들입니다. 그렇다면 ‘개발 문화’란 무엇일까요. 앞서 나열한 다양한 방법 및 기술들은 ‘개발 문화’를 만들기위한 수단이지...

08 Apr 2020

Spring, master-slave dynamic routing datasource 사용하기

DB Replication 서비스를 운영하면서 DB의 부하를 줄이기 위한 방법으로 DB Replication을 통해 쿼리의 대부분을 차지하는 read 작업을 Slave DB를 사용하게끔 하여 부하를 분산 시킬수 있습니다. Read의 부하가 큰 서비스의 경우 Slave를 여러개 만들어 사용하는것도 가능합니다....

11 Mar 2020

Tomcat, Spring MVC의 동작 과정

(부제 : 스프링 웹 프로그래밍을 하는 당신, 클라이언트의 요청을 어떻게 처리하는지 알고 있는가?) Tomcat 일반적으로 탐캣(Tomcat)은 ‘WAS(Web Application Server)’의 대표적인 미들웨어 서비스로 알려져있습니다. 하지만 탐캣은 일반적으로 아파치 탐캣(Apache Tomcat)이라 불리며 회사명이자 웹서버의 대표적인 미들웨어인 아파치(Apache)의...

16 Feb 2020
Previous
Next
cobura12@gmail.com