분류 전체보기 53

[Kafka] 카프카 이론 - 토픽(Topic), 파티션(Partition), 오프셋(Offset) (1)

회사에서 실무를 시작하게 되면서 Kafka를 사용하게 되었는데,이에 대한 개념이 부족해 Kafka에 대한 개념을 공부하고, 정리하는 시간을 갖게 되었다.이번 포스팅에서는 Kafka의 Topic, Partition, Offset이 무엇인지 알아보자. 카프카(Kafka)란 무엇이며, 왜 사용하는가?아파치 카프카(Apache Kafka)는 실시간 데이터 스트리밍을 처리하는 분산형 메시지 시스템이다.카프카는 2010년 LinkedIn에서 개발되어 대규모 데이터 처리를 위해 사용되었으며, 이후 실시간 데이터 처리, 로그 집계, 이벤트 소싱 및 데이터 스트림 파이프라인 구축 등의 다양한 용도로 널리 사용되었다.기존의 메시지 큐와 달리 높은 확장성, 내구성을 제공하며, 특히 대용량의 데이터를 빠르고 안정적으로 처리할..

Kafka 2025.04.29

[Spring] Spring AOP 개념

AOP란? AOPAspect Oriented Programming의 약어핵심 비즈니스 로직과 횡단 관심사를 분리하여 모듈화, 유지보수성과 재사용성 향상횡단 관심사: 로깅, 트랜잭션 관리 등 여러 모듈에서 공통으로 처리해야 하는 기능 주요 개념 Aspect공통 관심사를 구현한 모듈 Join Point메서드 호출 시점, 예외 발생 지점 등 AdviceAspect에서 실행될 구체적 동작을 정의하는 부분으로 언제, 어떤 동작을 수행할지 결정@Before: 타겟 메서드 실행 전 동작@After: 타겟 메서드 실행 후 동작@AfterReturning: 메서드 정상 반환 후 동작@AfterThrowing: 메서드 예외 발생 시 동작@Around: 메서드 실행 전후 동작 제어, 직접 호출도 가능 PointcutAdv..

Spring 2025.04.28

[Spring] @RestControllerAdvice을 사용해 기존의 예외 처리 방식 변경하기

여태까지 공부했던 내용을 응용하기 위해 기존에 진행했던 프로젝트인 큐터디 프로젝트에 대한 고도화 작업을 시작하게 되었다.고도화 작업을 위한 첫 번째 관문은 개별 예외 처리를 전역 예외 처리 방식으로 변경하는 것이었다. 이를 위해 Spring에서 제공하는 @RestControllerAdvice를 사용하게 되었으며, 이번 포스팅은 해당 과정을 정리한 글이다.  기존 예외 처리 방식 PostController@Slf4j@RequiredArgsConstructor@RestControllerpublic class PostController { private final PostsService postsService; private final AuthService authService; @PatchM..

Spring 2024.10.19

[Spring] 동시성 문제를 해결하는 방법

동시성 문제는 백엔드 개발에 있어 매우 중요한 문제 중 하나이다.백엔드 개발자는 동시성을 고려한 프로그래밍을 할 줄 알아야 한다.따라서 이번 장에서는 스프링과 자바를 사용하여간단한 예시를 통해 동시성 문제가 발생하는 경우에 대해 살펴보고이를 해결하는 3가지 방법에 대해 알아보도록 한다.  재고시스템 재고감소 로직 작성재고시스템의 간단한 재고감소 로직을 예시로 동시성 문제를 살펴볼 것이다. 해당 글은 동시성 문제에 대해 집중적으로 다루는 글이므로 코드에 대한 상세한 내용은 생략하고 설명을 진행한다. Stockpackage com.example.stock.domain;import jakarta.persistence.Entity;import jakarta.persistence.GeneratedValue;imp..

Spring 2024.09.19

[Infra] 실무에 필요한 인프라 용어 정리

이번에 좋은 기회로 멘토님과 함께 하루마다 10분 분량으로 기술에 대해 서로 정리하고 설명하는 시간을 갖게 되었다.이에 대한 첫 번째 글로 실무에 필요한 인프라 용어에 대해 간단히 정리하는 시간을 가져본다. 장비 데이터 센터데이터 센터는 각종 서버들이 모이는 공간이다  랙 (RACK)서버들이 꽂히는 공간으로 각종 시스템 장비들이 들어가서 시스템 구성에 필요한 환경을 만들어준다. 상면장비나 설비를 설치할 수 있는 공간이다. 랙보다 더 큰 개념으로 사용된다.  XaaS, 온프레미스, 온디맨드 XaaS (X as a Service)XaaS란 서비스형 시스템을 의미한다.클라우드 컴퓨팅 서비스 시스템 이용 시 사용자가 활용할 수 있게 제공되는 각종 IT 자원을 통칭하는 용어이다. IaaS (Infrastruct..

Infra 2024.09.19

[JPA] @CreatedDate, @LastModifiedDate가 적용되지 않는 문제

문제 상황@CreatedDate , @LastModifiedDate 어노테이션을 적용하였으나, 실제 db에 저장된 값을 확인해 보면, 값이 저장되지 않는 문제가 발생했다. 해결 방법Application 실행 부분에 @EnableJpaAuditing 어노테이션으로 Auditing 기능 활성화@SpringBootApplication@EnableJpaAuditingpublic class FitherApiApplication { public static void main(String[] args) { SpringApplication.run(FitherApiApplication.class, args); }}@CreatedDate , @LastModifiedDate 어노테이션을 사용하는 엔티티에서 @Ent..

Troubleshooting 2024.09.18

[Docker] 이미지(Image) 개념, 컨테이너(Container)와의 관계, 관련 명령어 정리 (3)

지난 글에서 컨테이너 가상화 기술을 사용하는 도커의 아키텍처에 대해 알아보고, 간단히 도커 컨테이너를 실행해 보았다. 이번 장에서는 도커 이미지에 대해 살펴보고, 관련 명령어에 대해 정리를 진행한다.  이미지 (Image)Docker 이미지는 컨테이너를 생성하는 데 사용된다.이미지는 파일 시스템(디렉터리)에서 특정 시점을 저장해 놓은 압축 파일이다. 소프트웨어뿐만 아니라 소프트웨어가 실행하기 위해서 필요한 모든 요소들을 준비해서 압축한다. 따라서 우리는 docker run [이미지명] 명령어만 실행하면 이미지를 다운 받아 격리된 공간에 컨테이너를 만들고, 컨테이너 내부에서프로그램을 실행할 수 있다. 이미지는 컨테이너를 사용하는 데 있어 가장 중요한 기능 중 하나이다. nginx 이미지처럼 다른 사람의..

Docker 2024.08.26

[IaC] Terraform을 사용해 EC2를 생성하고, 종료해보자

지난번 글에서 Terraform을 사용하기 위해 Terraform을 설치하는 방법에 대해 알아 보았다.이번 장에서는 Terraform을 사용하여 AWS EC2 인스턴스를 생성하고, 종료하는 방법에 대해 알아본다.  전제 조건그 전에, Terraform으로 EC2를 생성하기 위해서는 아래의 세 가지 조건이 필요하다.Terraform 1.2.0 이상의 버전이 설치되어 있어야 한다.AWS 계정과 계정에 대한 권한 자격 증명이 필요하다.AWS CLI가 설치되어 있어야 한다. 만약 해당 조건들이 설정되어 있지 않다면, 아래의 두 포스팅을 참고하면 된다. 2024.08.25 - [Infra/AWS] - [AWS] AWS CLI 설치 (Mac OS) [AWS] AWS CLI 설치 (Mac OS)AWS CLI(Comm..

Infra/IaC 2024.08.25

[IaC] Terraform 설치 (Mac OS)

이번 장에서는 Terraform을 사용하기에 앞서 Terraform을 설치하는 법에 대해 알아보도록 한다.(Mac OS를 기준으로 설명을 진행한다) Terraform이란?Terraform은 Hashicorp가 개발한 오픈 소스 코드형 인프라 도구이다(IaC). 즉, 코드를 사용해 인프라를 관리할 수 있다.Terraform을 사용하면 프로그래머가 인프라를 안전하고 효율적으로 구축, 변경 및 버전화할 수 있다.  Terraform 설치 Homebrew를 이용한 설치MacOS에서는 terraform을 Homebrew를 이용해 설치할 수 있다.brew tap hashicorp/tapbrew install hashicorp/tap/terraform 설치 확인최신 버전으로 업그레이드brew updatebrew up..

Infra/IaC 2024.08.25

[AWS] AWS CLI 설치 (Mac OS)

AWS CLI(Command Line Interface)AWS CLI는 터미널에 명령을 사용해 AWS 서비스와 상호 작용할 수 있는 오픈 소스 도구이다. 여러 개의 AWS 서비스를 명령줄에서 제어하고 스크립트를 통해 자동화할 수 있다. AWS CLI 설치해당 글에서는 Mac OS를 기준으로 AWS CLI v2를 설치하는 방법에 대해 살펴보며, Homebrew가 이미 설치되어 있다고 가정하고 설명을 진행한다. Mac OS에서는 Homebrew를 사용해 간단하게 AWS CLI를 설치할 수 있다.brew install awscli // awscli 설치which aws // 설치 경로 확인-> /opt/homebrew/bin/awsaws --version // 설치 버전 확인-> aws-cli/2.17.32 ..

Infra/AWS 2024.08.25