본문 바로가기

시리즈30

[JAVA] 몰라서 못 썼던 정규 표현식을 알아보자 ① [ 정규표현식 시리즈 ] 몰라서 못 썼던 정규 표현식을 알아보자 ①몰라서 못 썼던 정규 표현식을 알아보자 ②몰라서 못 썼던 정규 표현식을 알아보자 ③몰라서 못 썼던 정규 표현식을 알아보자 ④  정규 표현식에 대해 알아보고자 자료를 찾다보면 위 이미지를 자주 마주치는 것 같습니다. 매번 보면서 어떻게 쓰이는지 대강 이해하는 식으로 넘어갔는데 이번에 정규표현식을 적용해 볼 기회가 생겨 제대로 알아보자는 생각에 찾아보면서 공부할 겸 이 글을 작성하게 되었습니다. # 정규표현식의 기본정규 표현식에는 기본이 되는 연산이 있습니다. 그것은 바로 접합, 선택 그리고 반복 연산입니다. 접합 연산"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusm.. 2024. 10. 19.
[JAVA] 직관성있는 자바 네이밍 규칙 개발을 하다 보면 가장 많이 고민하게 되는 부분 중 하나가 '이 이름, 괜찮을까?'라는 고민인것 같습니다. 이번에 우아한 프리코스 1주차를 시작하면서 제일 처음 고민한 부분이 이것이기도 한데 나름대로의 규칙을 지키면서 네이밍하였다 생각하지만 그건 자신만이 그렇게 느끼는 것일 수도 있고 다른 사람은 헷갈릴 수 있을만한 부분이다. 그렇기 때문에 프리코스 과제를 진행하기에 앞서 명확한 규칙을 가지고 가는게 중요하다고 생각했습니다. 결국 제 과제도 누군가 코드를 보고 평가할테고 네이밍을 보고 어떤 기능인지 보기 어렵다면 좋은 코드라 생각하지 않기에 이번에 확실하게 알고 가자라는 마음으로 이 글을 작성하게 되었습니다. 왜 직관적이고 명확한 네이밍 규칙을 지켜야 할까?유지보수의 어려움모호한 이름은 코드 수정 시 방.. 2024. 10. 18.
[JPA] N + 1 문제와 해결방안 프로젝트를 하다보면 가장 자주 들리는 문제이지 않나 싶다.대충 어떤 건지는 알고 있었지만, 최근 다시 공부를 하면서 내가 너무 수박 겉핥기 식으로 알고 있다는 생각에 자세히 정리해보고자 한다.아래에 작성된 코드 전체는 Github 에 있습니다.1. N + 1 쿼리 문제란?설명하기에 앞서 하나의 팀은 여러 멤버를 가질 수 있고 멤버는 하나의 팀을 가진다고 했을 때, 아래와 같은 코드로 표현할 수 있다.Entity@Getterpublic class Member { @Id @GeneratedValue private Long id; private String name; @ManyToOne(fetch = LAZY) @JoinColumn(name = "TEAM_ID") priv.. 2024. 8. 4.
[kafka] 카프카 토픽(Topic) 명령어 및 실행 예시 # Topic 생성 하기1. 경로 /opt/kafka_2.13-3.7.1/bin2. boker-ip : 172.0.0.001:9092,172.0.0.02:9092,172.0.0.03:9092 # --replication-factor 3# 토픽의 각 파티션을 복제할 복제본의 수를 설정# 브로커 중 하나가 다운되더라도 다른 복제본이 데이터를 유지# --partitions 3# 생성할 파티션의 수를 설정합니다. 여기서는 3개의 파티션이 생성# --bootstrap-server # Kafka 클러스터의 브로커 주소를 설정#./kafka-topics.sh --create --replication-factor 3 --partitions 3 --topic test --bootstrap-server  # Topic l.. 2024. 7. 19.
[kafka] 카프카 클러스터(Cluster) 구축 # 설치 환경AWS EC21. 3개의 인스턴스 2. t2.micro3. Amazon Linux Kafka1. Kafka_2.13-3.7.1 버전2. Zookeeper가 아닌 KRaft 모드로 구축  # 다운로드1. 각각의 인스턴스에서 모두 진행# java 찾기yum list java*# java 설치sudo yum install -y java-17-amazon-corretto.x86_64# 설치 확인java --versionjavac --version# javac 가 없다 나올 시sudo yum install java-17-amazon-corretto-devel.x86_64# java 환경 설정export JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto.x86_64ex.. 2024. 7. 18.
[kafka] 카프카의 개념 # 카프카의 등장Apache Kafka는 링크드인에서 처음 개발되어 현재는 Apache 재단에서 관리하고 있는 오픈소스이다.2011년 링크드인에서는 수많은 데이터를 실시간으로 처리하는 과정에서 많은 어려움을 겪고 있었는데 여러 시스템에서 개별적으로 프로듀서와 컨슈머가 연결을 가져가는 구조였고, 때문에 하나의 시스템만 추가되어도 구조가 복잡해지는 문제를 가지고 있었다고 한다. 이를 해결하기 위해 중앙화된 메시지와 데이터의 흐름을 관리하는 구조를 만들기로 하고 탄생한 것이 카프카이다.  # 카프카의 핵심은 고가용성 가용성이란 서버나 네트워크, 시스템이 정상적으로 사용 가능한 정도를 나타내는데 고가용성이라는 말은 '정상적으로 사용한 시간이 많다'는 뜻이다. 그렇다면 카프카는 왜 고가용성을 중요하게 생각하는지 .. 2024. 7. 18.