분류 전체보기
-
[Cassandra] Cassandra Partition에 대해 알아보자Computer Science/Cassandra 2024. 2. 5. 01:23
Cassandra Partition에 대해 알아보자 고가용성과 확장성을 위해 설계된 분산형 NoSQL 데이터베이스 시스템인 Cassandra에서 파티셔닝은 중요한 개념입니다. Cassandra는 데이터를 더 작은 파티션으로 나누어 클러스터에 분산하는 과정인 파티셔닝을 통해서 여러 노드에 걸쳐 데이터를 저장합니다. 카산드라를 사용할 때 성능을 최적화하고 데이터 분산을 균일하게 하기 위해서는 파티셔닝을 제대로 이해하고 구성하는 것은 아주 중요하고 필수적입니다. (안그러면 카산드라 사용하는 이유 및 효율성이 매우 떨어지는..) 본격적인 내용을 들어가기 전에 가볍게 Cassandra Partition Key, Clustering Key, Primary Key에 대해서 살짝만 알아보겠습니다. Primary Key..
-
[Kafka] Kafka를 처음 공부할 때 보면 좋은 내용들DevOps/Kafka 2023. 1. 8. 00:57
Kafka 처음 사용할 때 알면 좋은 것들 이 글은 제가 Kafka를 사용하면서 겪은 경험보다는 Kafka를 공부하면서 처음 사용할 때 알면 좋은 것들의 이론에 대해 정리한 글입니다. 참고한 곳은 맨 아래에 있습니다. Kafka 기본 Cluster, Broker란? Lag 란? Topic, Partition 이란? 레코드란? 컨트롤러란? 코디네이터란? 데이터 삭제 Replication Factor란? 리더 팔로워란? ISR 이란? Producer Producer 주요 옵션 ack=all과 브로커의 min.insync.replicas 옵션의 관계 Consumer Consumer 대표 옵션 컨슈머 그룹이란? 컨슈머 리밸런스 특징 컨슈머 하트비트란? 컨슈머 그룹 특징 토픽의 파티션에는 하나의 컨슈머만 연결 가..
-
2022년 0년차 개발자의 회고Retrospect 2023. 1. 1. 01:42
2022년 0년차 개발자의 회고 이번 글에서는 2022년 0년차 개발자가 된 한 해의 회고를 진행해보려 한다. 회고의 제목은 0년차 개발자의 회고 이지만, 내용은 내가 한 해 동안 어떤 일들이 있었는지 2021년 회고와 비교해보고, 기록하면서 회고해보려 한다. 대학교 9학기 2021년이 끝났을 때만 해도 드디어 나도 대학교를 졸업하는 줄 알았다. 하지만 2022년 1월 초에 0.5점이 부족해서 졸업할 수 없다는 학교의 전화를 받았다.(130 학점을 채워야 졸업인데 129.5 학점을 채웠다.) 계절학기 수강신청도 다 끝났기 때문에 0.5학점을 채우기 위해서는 무조건 9학기를 다녀야 하는 상황이었다. 졸업 사정 확인을 제대로 못한 나의 책임이 100% 였기에 누구도 탓할 수 없었고 너무나 속상했다. 바보도 ..
-
[Spring] Multi Module에서 implementation으로 참조 못하는 에러 해결하기Server/Spring 2022. 11. 27. 18:06
Multi Module JPA Cannot Access Error 해결하기 이번 글은 Multi-Module을 사용했을 때 반드시 발생하는 에러는 아니고 필자처럼 사용했을 때 에러가 발생할 수 있는 상황이다. Cannot access 'org.springframework.data.repository.Repository' which is a supertype of 'org.springframework.data.repository.CrudRepository'. Check your module classpath for missing or conflicting dependencies Multi Module로 진행할 때 JPA에서 제공해주는 findById 메소드를 사용하려는데 위와 같은 에러가 발생했다. 또 에..
-
[Kafka] acks=all 일 때 min.insync.replicas=2 설정을 권장하는 이유DevOps/Kafka 2022. 10. 14. 01:05
acks=all 일 때 min.insync.replicas=2로 설정해야 하는 이유는 무엇일까? acks=all : 리더는 ISR의 팔로워로부터 데이터에 대한 ack를 기다리고, 하나의 팔로워가 있는 한 데이터는 손실되지 않으며 데이터 무손실에 대해 가장 강력하게 보장 ISR: In Sync Replica의 약어로 현재 리플리케이션이 되고 있는 리플리케이션 그룹(replication group)을 의미 min.insync.replicas: 최소 리플리케이션 팩터를 지정하는 옵션 Replication Factor 는 토픽의 파티션의 복제본을 몇 개를 생성할 지에 대한 설정 본 내용에 들어가기 전에 카프카 용어에 대해 간략하게 정리하면 위와 같습니다. 여기서 이번 글에서는 min.insync.replicas..
-
[Spring] 멀티 모듈에서 모듈별 yml 파일 관리하는 법Server/Spring 2022. 10. 4. 00:18
Multi module에서 yml 파일 관리하는 법 이번 글에서는 Multi-Module을 사용할 때 모듈 별 yml 파일 관리하는 법에 대해서 정리해보려 합니다. api 모듈 application.yml domain 모듈 application.yml 만약에 위와 같이 2개의 모듈이 있을 때, 각 모듈마다 application.yml을 가지고 있을 것입니다. 그런데 지금까지 Multi-Module로 프로젝트를 할 때는 모듈별로 yml 파일을 분리하지 않고 api 모듈 하나에 모든 설정들을 다 넣었습니다. yml이 잘 분리가 되었다면 api 모듈의 yml에서는 api와 관련된 설정(ex: Swagger)들이 있을 것이고 domain 모듈의 yml에는 대표적으로 DB 접근 정보 및 JPA 설정들이 존재할 것..
-
[Spring] Security WebSecurityConfigurerAdapter Deprecated 해결하기Server/Spring 2022. 6. 29. 00:06
WebSecurityConfigurerAdapter Deprecated 해결하기 최근에 Spring Security를 설정해보려고 WebSecurityConfigurerAdapter를 사용하려 보니 Deprecated가 되어 있었는데요. @RequiredArgsConstructor @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { private final ObjectMapper objectMapper; private final JwtAuthenticationFilter jwtAuthenticationFilter; @Override public void configure(WebSecurity web..
-
[Spring] Multi-Module에서 Domain 모듈 테스트 실행하는 법Server/Spring 2022. 6. 23. 01:21
Multi Module Domain 모듈에서 테스트 코드 실행하는 법 위와 같이 main 클래스를 가지는 api 모듈과 domain 모듈로 2개가 분리되어 있습니다. api 모듈에서 domain 모듈을 사용할 때 위와 같이 참조해서 사용하는데요. 즉, api 모듈에서 Domain 모듈을 import해서 사용한다고 생각하면 됩니다. Domain 모듈에서 테스트 코드를 실행해보자. 그러면 이제 Domain 모듈에서 통합 테스트 코드를 간단하게 작성하여 실행해보면 위와 같은 아리송한 에러 메세지를 볼 수 있습니다. 에러가 발생하는 이유를 생각해보면 Domain 모듈에서 통합 테스트 코드를 작성한다면 @SpringBootTest 어노테이션을 사용해서 진행할 것인데요. @SpringBootTest 어노테이션은 S..