Latest

Spring Batch CSV Reader & Writer

Spring Batch CSV Reader & Writer

Spring Batch를 이용해서 데이터베이스에 저장되어 있는 정보를 CSV file로 저장을 하는 방법에 대해서 작성해보겠습니다. CSV Writer 데이터 흐름 payment csv 데이터의 흐름은 간단합니다. payment table -> payment.csv으로 변경됩니다. payment table의 불필요한 칼럼 id, created_ay, updated_at은 빼고 amount, order_id만 CSV에 저장하겠습니다. Batch Code @Configuration class CsvWriterJobConfiguration( private

By Yun
Golang xORM 편리한 기능 소개

Golang xORM 편리한 기능 소개

xORM은 필자가 선호하는 ORMObject–relational mapping 프레임워크이다. 주요 특징Features은 아래와 같다. xORM은 대부분의 ORM에서 지원하는 테이블 간의 연관 관계 처리를 지원하지 않는다. 필요하면 직접 구현해야 한다. 언뜻 생각하면 불편할 것 같은데 연관 관계를 포기함으로써 기능들이 단순화되어 익히는데 시간이 짧게 걸리고 쓰기 쉽다는 장점이 있다. 이 글은 필자가 xORM을 사용하며 편리하다고

By 유 영모
스타트업 개발자 혼자 빠르게 싸게 서버 구축하기 - 4편 빌드와 배포

스타트업 개발자 혼자 빠르게 싸게 서버 구축하기 - 4편 빌드와 배포

* 스타트업 개발자 혼자 빠르게 싸게 서버 구축하기 - 1편 * 스타트업 개발자 혼자 빠르게 싸게 서버 구축하기 - 2편 * 스타트업 개발자 혼자 빠르게 싸게 서버 구축하기 - 3편 * 스타트업 개발자 혼자 빠르게 싸게 서버 구축하기 - 4편 지난 3편에서는 애플리케이션을 빌드/배포할 때 호스트 서버에 쉘 스크립트Shell script를 만들어 사용했다. 워드프레스와 마찬가지로 개발 서버 역시

By 유 영모
Hadoop Resource Localization 파헤치기

Hadoop Resource Localization 파헤치기

하둡 클러스터를 온프레미스에서 운영하면서 발생했던 ResourceLocalizationService 관련 장애 하나를 소개해 드리려고 합니다. 장애 상황을 설명해 드리기 전에, YARN 의 ResourceLocalizationService 가 어떤 역할을 하는 서비스인지 살펴보겠습니다.   YARN 애플리케이션 동작방식 위 그림은 YARN 에서 MapReduce 애플리케이션이 동작하는 순서를 도식화 해놓은 그림입니다. 왼쪽 상단의 MapReduce program 이 하나의 Job 으로 실행되면, 전체

By 홍 태희
아기 발걸음 원칙과 아기 발걸음으로 OKR 적용하기

아기 발걸음 원칙과 아기 발걸음으로 OKR 적용하기

지난 글에 부연 설명없이 아기발걸음을 언급했다. 나는 꽤 오랜 기간 아기발걸음 원칙을 따르고 있어 자연스레 얻은 혜택이 많다.  그래서, 아기발걸음 원칙에 대해 아는 바를 써보려고 한다. 그리고, OKR 적용과 아기발걸음 원칙이 어떤 연관이 있는지 설명하는 식으로 이야기를 풀겠다. 아기 발걸음 원칙 많은 경우 나는 습관적으로 아기발걸음 원칙을 따른다. 특히 처음하는

By 안영회
가격의 진정한 의미는 무엇인가?

가격의 진정한 의미는 무엇인가?

그간 가격을 결정하는 문제에 관심이 없었다. 그럴 만한 동기가 없었으니 어쩌면 당연한 일이다. 그러던 차에 우리 회사의 서비스의 가격을 책정해야 하는 난감한 문제를 만났다. 하지만, 아는 것이 너무 없어 어떻게 시작해야 할지 모르던 차에 마침 열정적인 지인의 권유로 <프라이싱>이란 책을 읽은 것이 아마도 긴 여정의 첫 시작이

By 안영회
Spring Cloud Gateway

Spring Cloud Gateway

해당 코드는 Github 공개되어 있습니다. 용어 명칭 설명 라우트(Route) 라우트는 목적지 URI, 조건자 목록과 필터의 목록을 식별하기 위한 고유 ID로 구성된다. 라우트는 모든 조건자가 충족됐을 때만 매칭된다 조건자(Predicates) 각 요청을 처리하기 전에 실행되는 로직, 헤더와 입력돤값 등 다양한 HTTP 요청이 정의된 기준에 맞는지를 찾는다. 필터(Filters) HTTP 요청

By Yun
결과적 일관성인가? 최종적 일관성인가?

결과적 일관성인가? 최종적 일관성인가?

분산 컴퓨팅 분야에서 일관성을 말할 때 자주 언급되는 것이 Eventual Consistency이다. 간단하게 말하자면 단기적으로 일관성을 잃더라도 결국에는 일관성을 유지하는 모델을 뜻하는데 이 용어는 더글라스 테리 외에 의해 만들어졌고 워너 보겔스에 의해 대중화되었다고 한다.[1] 일관성을 데이터 관점으로 좁혀보면 데이터 정합성整合性으로 이어진다. 전통적으로 관계형 데이터베이스에서는 테이블 간 데이터 정합성을 지키는 방법으로

By 유 영모
OKR 실전 적용 경험담

OKR 실전 적용 경험담

OKR 책을 읽었다. 매우 훌륭한 책이다. 반도 읽기 전에 계속 읽기만 할 것이 아니라 당장 써먹어야겠다는 욕구가 일었다. 지금이 시도해볼 적기란 생각까지 들었다. 마침 복잡한 사정으로 베이징에서 전원 철수하고, 서울에서 서비스를 키워야 하는 상황이 찾아왔기 때문이다. 더군다나 코로나 때문에 베이징에 왕래도 할 수 없는 상태로 이동도 쉽지 않고, 자가 격리에

By 안영회
동일한 Bean(Class)에서 @Transactional 동작 방식

동일한 Bean(Class)에서 @Transactional 동작 방식

동일한 Bean 내에서 @Transactional을 사용하는 경우 예상했던 것과 다르게 동작할 수 있습니다. 발생 원인과 해결 방법에 대해서 정리한 포스팅입니다. @Service class CouponService( private val couponRepository: CouponRepository ) { fun something(i: Int) { println("something CurrentTransactionName: ${TransactionSynchronizationManager.getCurrentTransactionName()}") this.save(i) } @Transactional fun save(i: Int) { println("save CurrentTransactionName: ${TransactionSynchronizationManager.

By Yun
Presto를 이용하여 Google Sheets와 mysql 등 DB 데이터 JOIN 하기

Presto를 이용하여 Google Sheets와 mysql 등 DB 데이터 JOIN 하기

데이터를 보는 많은 분들이 특징이 내가 만든 또는 내 PC의 엑셀에 있는 데이터하고 DB와 같이 서버에 있는 데이터하고 같이 볼 수 있는 방법이 없나? 라는 요구사항입니다. 이번 글에서 비슷하게 나마 요구사항을 만족시킬 수 있는 방법을 소개해 드리겠습니다. 최근 지인의 요청으로 AWS 환경을 좀 볼 수 있는 시간을 가졌습니다. 지인의 서비스는

By 김형준
위챗 미니프로그램에서 위챗 페이 연동 삽질기(부제.Golang에서 EUC-KR 서버와 HTTP 통신하기)

위챗 미니프로그램에서 위챗 페이 연동 삽질기(부제.Golang에서 EUC-KR 서버와 HTTP 통신하기)

최근 중국 전자 상거래 동향 중 하나는 모바일 거래와 해외 직구가 크게 성장하고 있다는 것이다.[1] 이런 상황에서 필자는 중국인들이 모바일을 통해 한국 상품을 구매할 수 있는 역직구몰을 만들고 있다. 모바일이라고 하면 안드로이드나 아이폰 앱을 떠올릴 수 있겠지만 앱 스토어 같은 곳에서 다운로드해 설치해야 하는 불편함과 서비스를 이용을 위한 회원

By 유 영모