🙋🏻 홈서버를 만들게된 이유는 ?요즘 회사 업무 이외로 멋쟁이 프론트 개발자와 서비스를 구축하고 있다. 아키텍쳐 제작 중 운영해야 될 서버가 생각보다 많다고 느껴져 지갑이 텅텅 비기 전에 자체 서버를 구축하기로 마음먹었다 ! 호스팅 서버를 통해 운영하고 있는 작은 사이트도 있기 때문에 장기적으로 봤을 때 비용 면에서 확실히 좋아 보였다 ! AWS, Google 등 다양한 클라우드 서버의 선택지도 있었지만 프리티어로 사용한다 해도 언제 요금이 빠져나갈지 몰라 불안에 떨기 싫었다. 그럼 맥 미니를 선택한 이유는 ?앱등이인 나는 맥 포기 못해.....가 가장 큰 이유였다. 홈서버 구축을 생각한 뒤 라즈베리파이, 미니 PC, 노트북 등 수 많은 블로그 포스팅 글과 커뮤니티 통해 조사해 봤지만 어느 하나 특출..
전체 글
개발의 모든 것 !❓이벤트(Event)와 Spring Boot 이벤트의 이해먼저 프로그래밍에서 이벤트란, 애플리케이션 내에서 발생시킬 수 있는 어떤한 사건이나 상태 변경 등을 의미한다. 애플리케이션에는 어떠한 이벤트를 발생시키는 주체와 정해진이벤트의 발생을 탐지해 동작을 처리하는 주체가 존재할 수 있다. Spring Boot는 이벤트 처리를 위해 ApplicationEvent 클래스와 ApplicationEventPublisher 인터페이스를 제공한다.Spring에서 발생하는 모든 이벤트는 ApplicationEvent 클래스를 상속하여 정의되며, 이벤트를 발생시킬 때 전달되고, ApplicationEventPublisher는 이벤트를 발생시키고 이벤트를 구독하는 리스너에게 전달하는 역할을 합니다. Spring Conte..
2025년 들어 기술블로그 글을 많이 올리지 못했다. 이유는 내가 작성한 글을 돌아볼 때마다 게시글의 내용이 알차지 못하고, 정리 정돈이 되어있지 않다고 느껴졌다.글을 썼다 지우고 썼다 지우고, 임시저장 되어있는 글이 수두룩하다.어떻게 정리해야 가독성이 좋고, 어떤 레퍼런스를 참고해서 공부를 해야되는지 다른 분들의 기술블로그를 보면서 기록하는 방법에 대해 열심히 공부하고 있다.이 회고글도 임시저장 목록에 그대로 쌓일지, 등록할지는 잘 모르겠다~ ☀️ 2025년기획과 설계의 결과물 1월6년간 이어오던 느릿느릿한 ASP로 만든 사이트를 걷어내고 리팩토링하기 위해 8월부터 몇 달간 기획과 설계를 했다. 운영중인 서비스라 유지보수하면서 기획하고, 다른 사이트도 운영하고 이런 저런 상황에 기획과 설계의 속도가 빠..
Kafka topic을 조작하는 Shell Script인 Kafka-topics.sh, Kafka-configs.sh 등의 명령어를 정리해보겠습니다 !당장 학습하며 자주 사용하는 명령어 위주로 작성할 예정이지만 Kafka를 계속 공부하면서 지속적으로 업데이트할 예정입니다 ! Kafka-topics.sh 명령어topic 생성하기(기본 옵션)bin/kafka-topics.sh --create --bootstrap-server my-kafka:9092 --topic hello.kafkahello.kafka는 생성하고 싶은 topic 이름my-kafka는 Kafka브로커의 호스트이름 또는 도메인 이름topic 생성하기(옵션 추가)bin/kafka-topics.sh --create --bootstrap-serv..
프로젝트에 데이터를 캐시로 관리하던 중 Redis 캐시에 대해 글을 작성하기 전 캐시와 캐싱에 대해 한번 정리하면 좋을 것 같아 빠르게 정리하고 넘어가려고 합니다 !❓ 캐시와 캐싱이란 ?먼저 캐시와 캐싱에 대해 알아봅시다 !캐시동일한 데이터에 반복해서 접근해야 하거나 많은 연산이 필요할 때, 결과를 빠르게 이용하고자 성능이 좋은 혹은 가까운 곳에 저장하는 것입니다. 즉, 캐시는 컴퓨터의 성능을 향상 시키기 위해 사용되는 메모리를 말합니다. 주기억장치와 CPU 사이에 위치하고, 자주 사용하는 데이터를 기억합니다.캐싱이 캐시 영역으로 데이터를 가져와서 접근하는 방식이며, 해당 영역을 사용하는 것을 캐싱이라고 합니다.서버의 관점에서 봤을 때 캐싱은 DB로 접근하여 가져오는 자주 사용하는 데이터를 캐시 저장소에..
Kafka의 내부 구조기존에 1:1 매칭으로 개발하고 운영하던 데이터 파이프라인은 커플링으로 인해 한쪽의 이슈가 다른 한쪽의 애플리케이션에 영향을 미치곤 했지만, 카프카는 이러한 의존도를 타파하였습니다.이제 소스 애플리케이션에서 생성되는 데이터는 어느 타깃 애플리케이션으로 보낼 것인지 고민하지 않고 이단 Kafka로 넣으면 됩니다. Kafka 내부에 데이터가 저장되는 파티션의 동장은 FIFO방식으로 큐 자료구조와 유사합니다.큐에 데이터를 보내는 것이 프로듀서이고 큐에서 데이터를 가져가는 것이 컨슈머입니다. Kafka가 데이터 파이프라인으로 적합한 이유높은 처리량동일한 양의 데이터를 보낼 때 네트워크 통신 횟수를 최소한으로 줄인다면 동일 시간 내에 더 많은 데이터를 전송할 수 있습니다. 많은 양의 데이터..
회사 업무도 많고, 혼자 만들고 있는 서비스도 있고 이런 저런 공부도 하고 바쁘다 바빠 현대사회~~~~~그래도 꾸준하게 공부하기 위해 개념만 알고 서비스에 간단하게 적용만 해보았던 Kafka를 유료 강의와 함께 깊게 공부해 보려고합니다 !! 🦾 Kafka 설치하기설치 환경 : Mac OS M1카프카 버전 : 3.1.0 카프카를 설치하기 전 Java JDK를 먼저 설치해주세요 ! 3.1.0에 맞는 JDK 버전은 11이라고 합니다. 먼저 아래의 경로를 통해 .tgz 파일을 다운 받아줍니다 ! Apache KafkaApache Kafka: A Distributed Streaming Platform.kafka.apache.org 저는 강의에 맞춰 아래 파일을 다운 받았습니다 ! 다운 받은 파일의 압축을 해제..
전에 만들어 놨던 클래스명에 오타가 있어 수정하고 작동을 했더니 아래와 같은 에러가 발생했다 !org.springframework.beans.factory.BeanDefinitionStoreException: I/O failure while processing configuration class [최상의 클래스] 원인클래스 경로에 포함된 설정 파일의 경로나 구성이 잘못되어 있을 경우 또는 파일이 손상되어 읽을 수 없을 때 발생할 수 있다고합니다 ! 해결방법파일이 삭제된 것이 아닌 변경된 클래스를 찾지 못하는 것 같아 build clean를 진행한 후 다시 빌드를 하니 JVM이 정상적으로 경로를 찾아 실행이 되었습니다 !