분류 전체보기154 Kafka Partition key를 사용하여 데이터 순서대로 처리하기 Kafka에서 하나의 Topic은 여러 Partition으로 파티셔닝 될 수 있다. 하나의 Partition은 동일한 Consumer Group 내에서 하나의 Consumer에 의해 처리되기 때문에, Partition의 개수를 늘려 Consumer Group에 대해 하나의 Topic에 대한 처리량을 늘릴 수 있다. (참고: Can multiple Kafka consumers read the same message from a partition?) (* 하지만 Partition을 무조건 늘리는건 좋지 않다 - 참고: How to Choose the Number of Topics/Partitions in a Kafka Cluster?) Topic의 어느 Partition에 적재될지는 publish 할 때 p.. 2023. 1. 12. [Spring Data JPA] entity update 후 JpaRepository.save 호출에 관하여 통상적으로 Spring Data Jpa를 사용하면 Hibernate를 사용하게 되고, 그로인해 dirty checking도 사용하게 된다. 그렇기 때문에 아래와 같이 코드에 따로 update를 명시하지 않아도, entity의 변경을 감지하여 update 문이 실행된다. import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service @Transactional public class UpdatePostService { private final Po.. 2023. 1. 9. [Java] List, Set, Map 구현체들 Java로 개발을 할 때 가장 많이 쓰이는 자료구조는 List, Set과 Map이며 이들은 모두 interface로 여러 구현체들을 제공한다. 하지만 대부분 관성적으로 ArrayList, HashSet, HashMap을 주로 사용한다. 각 자료 구조의 대표적인 기능은 구현체마다 모두 동일하기 단순히 자료를 담는 역할로써 단순히 위 구현체들을 쓰는건 크게 문제가 되지 않지만, 각 구현체는 엄연히 다른 기능을 한다. 이번 포스팅에서는 java.util 에서 기본적으로 제공해주는 List, Set, Map의 구현체들을 몇가지를 살펴보도록 하겠다. List List는 중복을 허용하는 데이터를 담는 역할을 한다. ArrayList ArrayList는 클래스 명에서도 나타내듯 List 내부에 Array를 두고, 이.. 2023. 1. 6. [springdoc-openapi] 고정 header 설정하기 서버 API 문서화 시 주로 간편한 설정과 직접 요청을 보낼 수 있는 UI를 제공하는 Swagger UI를 주로 사용한다. 하지만 실서비스 용 서버는 주로 인증 기능이 붙어있기 때문에 API 요청 시 인증 용 토큰 등이 필요한 경우가 대다수이다. 이번 포스팅에서는 springdoc-openapi를 사용하여 Swagger UI를 구성할 때, header 기반 인증을 처리하는 방법 중 하나로 고정 header를 설정하는 방법에 대해 알아보겠다. (org.springdoc:springdoc-openapi-ui:1.6.14 기준) (코드 예제는 여기에서 확인할 수 있다) ※ 참고 Springfox는 현재 maintain이 되고있지 않기 때문에, 되도록 springdoc-openapi를 사용하는 것을 추천한다. .. 2022. 12. 31. 2022년도 개발인생 연말정산 2022년 짧은 소회 개발을 업으로 삼은지도 5년이 가까워지고 있다. 예전에는 막연히 연차가 높아지면 개발이 더 쉬워질 줄 알았는데, 오히려 아는게 더 생기다보니 필요 이상으로 생각을 하는 경우도 생기고 가끔은 단순할 수 있는걸 더 꼬아서 생각할 때도 있어서 여전히 개발은 쉽지 않은 것 같다. 그래도 개발을 하면서 어느 부분을 더 신경을 써야할지, 문제가 생길 만한 부분은 어디인지 보이는게 많아지는 것 같다. 또 예전에는 기술적인 것만 팠었는데 서비스 사용성이나 프로젝트 매지닝 같은 부분도 신경을 쓰게 되는 것 같다. (그런걸 메인으로 고려해야하는 포지션에 있는건 아니지만 업무에서 중요한 부분이니...) 그리고 나이도 먹어가고 경력이 쌓이면서 말에 영향력이 생기는 것을 느낀다. "권력이 생긴다"라는 뜻 .. 2022. 12. 27. [Tools] Video CC Translator - 영상 자막 번역 Chrome 확장프로그램 Youtube에서 컨퍼런스 영상을 보거나, 국내에서 자료를 찾을 수 없어 Udemy 강의를 들을 때 영어 자막을 제공해주는 경우가 있다. 영어를 대강 알아먹을 수 있다해도 아무래도 한글만큼은 편하진 않고 가끔 모르는 단어가 나오면 pause를 하고 사전에서 찾아보곤 하는데, 그럴 때 마다 집중이 끊기게 되는 경우가 많았다. 그래서 영상 번역 툴이 있나해서 보니 Video CC Translator 라는 Chrome 확장 프로그램이 있었고, 사용해보니 인터페이스가 단순해서 사용하기 편리한 것 같다. Youtube, Udemy, Udacity의 영상에서 제공하는 자막을 기반으로 번역 자막을 추가로 보여주는데, Youtube는 아래와 같다. Chrome 확장 프로그램을 설치하면 Youtube 동영상 우하단 아이.. 2022. 12. 26. 이전 1 ··· 7 8 9 10 11 12 13 ··· 26 다음