본문 바로가기

Opensource5

[Kafka 1편] Kafka 는 무엇인가? 목차 [Kafka 1편] Kafka 는 무엇인가? Kafka 개념 카프카는 분산 스트리밍, 실시간 스트리밍 데이터를 처리하기 위한 목적으로 설계된 오픈 소스 입니다. 분산 처리 시스템이며, publish, subscribe message 플랫폼입니다. producer 는 하나의 토픽이 데이터를 넣고, 토픽은 여러 개의 partition 으로 이루어집니다. partition 은 consumer group 으로 매핑되며, consumer group 과 partition 이 늘어날수록 처리량이 늘어납니다. 카프카 사용 시 주의사항 중복 메시지 다음과 같은 상황이 있을 수 있습니다. partition 에서 consumer group 이 데이터를 가져가서 처리합니다. consumer group 에서 정상적으로 메.. 2022. 4. 14.
mybatis 와 PreparedStatement 정리 mybatis 와 PreparedStatement 정리 PreparedStatement vs Statement PreparedStatement PreparedStatement 는 동일하거나 비슷한 SQL 문을 효율적으로 처리하기 위한 기능을 뜻합니다. 동작 방식 준비 —> 컴파일 —> 변수 바인딩 —> 실행 단계입니다. 준비 단계에서는 ? 를 사용하여 쿼리 작성 insert into xxx (xxx) values(?,?). 컴파일 후, 실행 단계에서는 값을 바인딩 한 후, SQL 실행합니다.Statement Statement 는 위 PreparedStatement 1~4단계를 계속해서 반복해서 사용합니다. 차이점 PreparedStatement 는 처음 한 번만 1~3단계를 거친 후, 캐시에 담아 재사용.. 2022. 3. 11.
[apache-commons-email] 첨부파일 명에 한글 포함될 경우 깨지는 현상 apache-commons-email 첨부파일 명에 한글 포함될 경우 깨지는 현상 1. Issue Apache-common-email API 를 사용 중 첨부 파일명에 한글 명이 들어갈 경우 첨부파일 명이 깨지는 현상이 발생했습니다. 2. Environment apache-common-email.1.5.jar javax.mail-api.1.6.1.jar 3. 원인 분석 관련하여 Apache-email 소스를 분석한 결과 MultiPartEmail 쪽의 fileName 을 MimeUtility.encodeText(...) 를 사용하지 않을 경우 정상적으로 동작합니다. 테스트 했을 경우, pdf, jpg, text, zip 등 사용하고 있는 파일 확장자에 대해 정상적으로 출력 됩니다. 또한, javax.ma.. 2020. 7. 11.
apache-dbcp connectionFactory 개선사항 정리 dbcp 관련 개선사항을 정리하였습니다. 추후 관련 내용을 다시 봤을 때 기억이 안날 것 같아 기록해놨습니다. DBCP 개선 내용 MyBatis 에서 dbcp 를 통해 connection 을 가져올 때마다, connection 관련 initSql 을 실행해야하는 요건이 있었습니다. 그런데 connection 을 가져올 때 마다 initSql 를 수행하다 보니 기존에 이미 initSql 를 수행했던 Connection 이 또 다시 initSql 를 수행하니 오버헤드가 발생 됩니다. 그렇기에 dbcp 내에서 connection 을 생성할 때, 한 번만 initSql 을 수행하도록 진행할려고 했습니다. 하지만 dbcp 내에 connection 을 생성할 때, 해당 로직을 실행할 수 있는 interface 가 .. 2020. 7. 10.