[Kafka] Apache Kafka 공식문서 살펴보기 (Design, 심화 이론)
·
Kafka
0. 들어가기 전바로 전에 Kafka의 기본 이론에 대해서 알아봤었습니다.https://ksh-coding.tistory.com/160 [Kafka] Apache Kafka 알아보기 (기본 이론)0. 들어가기 전이전에 MSA 프로젝트를 진행할 때, Kafka를 사용해본 적이 있습니다.하지만 그때는 먼저 구현을 했어야 했기에 제대로 된 Kafka의 이론은 모른채 구현만 쫓아갔던 기억이 있습니다. ksh-coding.tistory.com  이번에는 공식문서에서 언급하는 좀 더 심화적인 내용들을 살펴보도록 하겠습니다.Kafka 공식문서의 Design 챕터에서는 Kafka의 내부 구조, 원리를 다루고 어떤 장점이 있는지를 소개하고 있습니다.하나씩 알아보도록 하겠습니다.1. PersistenceKafka의 각 이..
[Kafka] Apache Kafka 공식 문서 살펴보기 (기본 이론)
·
Kafka
0. 들어가기 전이전에 MSA 프로젝트를 진행할 때, Kafka를 사용해본 적이 있습니다.하지만 그때는 먼저 구현을 했어야 했기에 제대로 된 Kafka의 이론은 모른채 구현만 쫓아갔던 기억이 있습니다. 현재는 실무에서도 Kafka를 사용하고 있는 시점이고 개인적으로도 어떤 기술이고 어떤 원리인지 궁금하기 때문에 자세히 알아보려 합니다.물론 하나의 기술을 알아볼 때, 실전 -> 이론으로 배우는 것이 빠를 수 있지만당장은 시간이 좀 있어서 이론 -> 실전 순으로 알아보려고 합니다 😀 (처음엔 시간 많았는데 다시 글 쓰려고 보니 이젠 없네요...) 기술을 공부할 때 저는 무조건 기술의 공식문서가 1순위라고 생각하기 때문에 공식문서를 저만의 언어로 풀어서 포스팅해보겠습니다!(거의 번역본일수도.. ㅎㅎ;;) ..
[PostgreSQL] 2. PostgreSQL Index 알아보기 (Index Type, Index Scan)
·
DB
0. 들어가기 전이전 챕터에서 PostgreSQL의 Internal, 내부 구조에 대해서 간략하게 살펴봤습니다. 이번에는 PostgreSQL에는 어떤 Index Type이 있는지, Index Scan은 어떤 것이 있는지 살펴보겠습니다.Index는 깊게 들어가면 너무나 어려운 내용이라서 간략하게만 다뤄보도록 하겠습니다 :(('PostgreSQL'의 Index에 대해서 알아보는 것이기 때문에, 기본 Index에 관한 개념은 알고 있다고 가정하고 다루지 않겠습니다!) PostgreSQL의 Index를 공부하면서 목표로 한 점은 다음과 같습니다.여러 PostgreSQL Index Type의 동작방식, 내부 원리를 설명할 수 있다.여러 PostgreSQL 타입, 상황에 대해 어떤 Index를 적용할지 떠올릴 수 ..
[PostgreSQL] 1. PostgreSQL 내부 구조 알아보기 (feat. 쿼리 처리 과정)
·
DB
0. 들어가기 전저는 이전까지 DB 벤더 중에서 학습용으로 MySQL만 사용해왔었습니다.그러나 이번 실무에서 PostgreSQL을 사용하게 되면서 PostgreSQL에 대해서 알아보고자 글을 작성하게 되었습니다. PostgreSQL의 모든 내용을 다루기에는 너무나 방대한 양이기에 제가 궁금한 부분, 중요한 부분들만 다뤄보도록 하겠습니다.하나의 주제를 잡아서 주제별로 PostgreSQL의 공식문서를 보고 글을 작성해보겠습니다. 처음은 PostgreSQL에서 커넥션을 맺고 쿼리를 어떻게 처리하는지 PostgreSQL의 내부 구조를 간략하게 추상적으로 살펴보도록 하겠습니다.https://www.postgresql.org/docs/17/overview.html Chapter 50. Overview of Pos..
[DB] DB PK 생성 전략 알아보기 (feat. Auto Increment, UUID, ULID, Snowflake ID, TSID)
·
DB
0. 들어가기 전이전까지 저는 모든 프로젝트에서 관성적으로 다음과 같이 Auto_Increment 전략을 사용해서 DB PK를 생성했습니다.public class XxxEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; ...} 이번에 프로젝트 코드 분석을 하는 도중에 JPA Entity에 다음과 같이 PK 생성을 하는 것을 보게 되었습니다.public class XxxEntity { @Id @Tsid private String id; ...} 관련해서 검색해보니, TSID라는 생성 전략이 있는 것을 확인했습니다.해당 TSID 외에도 다른 PK 생성 전략에 대해 무지했기 때문에 다른 ..
2022~2024 머글이 신입 백엔드 개발자로 전직하기까지의 회고
·
심심한 회고
0. 서론최근에 Big Event가 발생했다.바로 나의 취업.... 직장인으로 전직했다 😁사실 입사한지는 이제 거의 한달 차가 다 되어 가는데, 입사하고 나서는 정신없어서 이런 회고 글조차 작성할 겨를이 없었다. 추석 연휴가 되고 나서 과거를 돌아보니 너무 추억 돋아서 이럴거면 회고 글을 하나 작성해보자! 하고 작성을 시작한다 ㅎ__ㅎ최근(거의 모든 ㅋㅋㅋ) 글이 모두 기술 정보 글인데, 그 사이 한 줄기 감성회고 글이 될 것 같다! :) 개발자의 길을 걷기로 결심한 2022년부터 어찌저찌 신입 개발자가 되어버린 나의 회고를 연도별로 정리해보려고 한다!1. 2021년 말, 진로 마시다가 진로 고민... 🍺나는 성적따라 건축공학과에 진학해서 2021년 말 전까지 미래 고민 없이 충분히 현재를 즐기며..
[DB] AWS DynamoDB 알아보기
·
DB
0. 들어가기 전이번에 AWS의 DynamoDB를 사용할 기회가 생기게 되었습니다.이전에 사용해보지 못했던 기술이기 때문에 DynamoDB에 대한 이해가 선행되어야 했습니다.이번 글에서는 DynamoDB의 적용보다는 DynamoDB의 개념에 대해 알아보고 DynamoDB를 이루는 구성 요소들을 이해하고자 합니다.그래서 다음과 같은 AWS DynamoDB의 공식문서를 참고하여 글을 작성하면서 DynamoDB를 이해해보겠습니다.https://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/Introduction.html What is Amazon DynamoDB? - Amazon DynamoDB이 페이지에 작업이 필요하다는 점을 알려 주셔서 감..
[Redis] Redis의 다양한 자료구조와 활용 예시 알아보기
·
DB/Redis
0. 들어가기 전이전에 Redis에 대해서 간단하게 정리해봤었습니다.https://ksh-coding.tistory.com/127 [DB] Redis란?여러 프로젝트를 살펴보니, 인메모리 저장소로 Redis를 사용하는 것을 많이 볼 수 있었습니다.Redis가 무엇이고, 어떤 장점이 있길래 많이 사용하는 걸까요?프로젝트에 적용하기 전에 간략하게 Rediksh-coding.tistory.com 해당 글 이후에 여러 기능에서 Redis를 사용했고, 잘 동작하는 것을 확인할 수 있었습니다.그러나, Redis를 사용할 때 추상화된 Spring Data Redis를 사용하면서 어떤 자료구조로 저장되는지,어떤 자료구조가 해당 기능, 데이터에 적합한지, Redis에 어떤 자료 구조들이 존재하는지에 대해 모르고 사용했었..
[JPA] JPA, Spring Data JPA의 내부 동작 원리 알아보기
·
Spring/JPA
0. 들어가기 전이전에 대부분의 프로젝트에서 JPA를 사용해서 SQL을 작성하지 않고추상화된 메소드를 사용하여 영속화 계층에 접근하고, DB에 SQL을 반영했습니다. 이번에 개인적으로 JPA를 사용할 때 내부 동작 원리를 이해하지 않고 추상화된 메소드를 사용하기만 한다는 것을 깨닫게 되었습니다. 따라서, JPA에서 추상화된 메소드들이 어떻게 내부적으로 동작해서 쿼리가 생성되는지 알아보도록 하겠습니다.더 나아가서, Spring Data JPA은 어떻게 JPA를 추상화했는지도 살펴보도록 하겠습니다. 이번 포스팅은 JPA의 기본 개념, 동작들을 이미 안 상태에서 원리를 알아보는 것이므로기본적인 JPA의 개념이나 동작 설명들은 생략하고 가도록 하겠습니다!1. JPA의 기본 동작 원리먼저, JPA가 어떻게 객체와..
[이슈] JPA N+1 문제 해결 및 성능 비교 (feat. Batch Size)
·
이슈 & 트러블 슈팅
0. 들어가기 전현재 진행중인 프로젝트에서 쿼리를 카운트해본 결과, JPA의 N+1 문제가 발생하고 있었습니다. N+1 문제에 대한 소개, 고찰은 이전에 포스팅했었기 때문에 링크만 남기고 넘어가도록 하겠습니다!https://ksh-coding.tistory.com/146 [JPA] JPA N+1 문제 및 근본적인 원인에 대한 개인적인 고찰0. 들어가기 전 JPA를 사용하면서 발생하는 N+1 문제는 널리 알려져 있고, JPA를 사용하다보면 제법 자주 만나게 됩니다. 그래서 N+1 문제를 다룬 블로그나 다른 레퍼런스들이 상당히 많습니다. 저ksh-coding.tistory.com 그래서 이번에는 N+1 문제를 해결한 과정과 전후 성능 비교를 포스팅해보도록 하겠습니다!1. N+1 발생 배경먼저 어떤 엔티티에서..
BE_성하
성장하는 성하 Blog