AWS EC2 인스턴스 생성 및 Termius를 이용한 접속 방법: 초보자 가이드
·
AWS/EC2
이번 포스트에서는 앞으로 많은 포스트의 기본이 될 AWS의 EC2를 생성하고 AWS CLI가 아닌 외부 터미널인 Termius(무료버전)을 사용해서 접속하는 방법까지 설명하도록 하겠다. 1. EC2 생성하기 1-1. AWS에서 로그인을 하고 EC2 대시보드에 들어간다. 1-2. 인스턴스 시작 버튼을 클릭한다. 1-3. 이름 및 태그 작성 1-4. 애플리케이션 및 OS 이미지 선택 하단의 AMI 부분 박스를 선택해서 다른 종료의 Ubuntu도 선택이 가능하다 1-5. 인스턴스 유형 선택 인스턴스 유형도 하단의 박스를 선택해서 변경이 가능하다. (요금 검색을 통해 선택하도록 하자) https://calculator.aws/#/addService/ec2-enhancement (여기서 선택해서 요금을 계산하고 ..
Spring: @ControllerAdvice와 AOP를 함께 사용하여 에러 로깅하기
·
Spring 기초/Spring 기초 지식
@ControllerAdvice와 AOP 를 동시에 적용하여 로깅을 해보자 📌 서론 Spring Boot에서는 일반적으로 @ControllerAdvice와 @ExceptionHandler를 사용하여 전역 에러 핸들링을 수행한다. 그러나 이러한 방식은 상세한 로깅에 한계가 있을 수 있다. 이 글을 작성하게 된 계기는 많은 개발자들이 로깅을 어떻게 효율적으로 할 수 있을지, 그리고 예외 상황에서 어떻게 로깅을 해야 할지에 대한 고민을 하고 있기 때문이다. 다니선 회사의 동료 또한 이에 대한 궁금증을 가졌기에 이 글을 통해 그러한 고민을 조금이라도 해결할 수 있으면 좋겠다. 1. 문제 상황 파악 @ExceptionHandler가 명시된 메서드에서는 지정된 Exception 객체만을 받을 수 있기 때문에, 에러..
Spring Boot: @ControllerAdvice/@RestControllerAdvice로 예외처리하기
·
Spring 기초/Spring 기초 지식
@ControllerAdvice와 @RestControllerAdvice에 대해 자세히 알아보자 📌 서론 프로그래밍에서 예외 처리는 매우 중요한 부분이며, Spring Boot에서는 @ControllerAdvice와 @RestControllerAdvice를 통해 이를 효율적으로 수행할 수 있다. 이 어노테이션들은 코드의 재사용성과 유지 보수성을 높여, 복잡한 비즈니스 로직에서도 예외 상황을 안정적으로 관리할 수 있게 해준다. 1. @ControllerAdvice이해 @ControllerAdvice란? @ControllerAdvice는 Spring 3.2에서 도입된 어노테이션으로, 모든 @Controller 클래스가 공유하는 공통 로직을 정의할 때 사용한다. 주로 예외 처리와 바인딩 설정, 모델 객체 등에..
Matomo 대시보드 및 API 활용: 데이터 추출 방법 (6편)
·
DevOps/웹분석tool (GA, Matomo)
이번 포스트에서는 Matomo 대시보드 확인방법 및 Matomo에서 자체 제공하는 URL(API)를 호출해서 사용하는 방법에 대해서 설명한다. 1. 대시보드 정보 기본적으로 설정을 완료하고 트래픽 추적이 된다면 아래와 같은 정보를 보여주게 된다. 실시간 방문자에 대한 정보 개요 그래프 3분 이내의 실시간 방문자 최근 방문 그래프 페이지 url별 페이지뷰 정보 2. 메뉴 정보 (자주 사용하게될 메뉴) 좌측의 Behaviour 메뉴로 가면 페이지에 대한 굉장히 많은 추적정보들이 존재한다. 모두 확인 가능하고 API로 추출할 수 있다. 방문 메뉴에도 실시간 방문자에 대한 많은 지표들을 제공한다. 3. 설정 3-1. 마토모의 설정에 들어가면 가장 먼저 다음과 같은 창을 볼 수가 있다. Quick Links : ..
Spring Security6 - Authentication(인증)
·
Spring Security
1. 인증 관련 주요 클래스와 인터페이스 및 동작원리 Authentication: 인증 요청과 인증된 주체를 나타내는 인터페이스이다. AuthenticationManager: 실제로 인증을 처리하는 인터페이스이다. UserDetailsService: 사용자의 세부 정보를 로드하는 방법을 정의한다. PasswordEncoder: 비밀번호의 암호화 또는 해싱을 처리한다. Spring Security 6의 주요 인증 방식(Basic Authentication, Form-Based Authentication, OAuth2, JWT)은 모두 AuthenticationManager를 사용한다. AuthenticationManager는 UserDetailsService를 호출하여 사용자 정보를 로드하고, Authen..
Spring Security와 CORS: 크로스 도메인 요청 처리 기법 알아보기
·
Spring Security
웹 애플리케이션을 개발하면서 보안과 리소스 공유는 중요한 고려사항이다. 이번에는 Spring Security와 CORS(Cross-Origin Resource Sharing)에 대해서 자세히 알아보자 1. 크로스 도메인(Cross-Domain) 이해하기 1-1. 크로스 도메인 정의: 크로스 도메인은 한 도메인에서 실행되는 웹 페이지가 다른 도메인의 리소스에 접근할 때 발생하는 상황을 의미한다. 예시: http://domain-a.com에서 로딩된 웹 페이지가 http://domain-b.com의 이미지나 API에 접근하는 것이다. domain-a.com: 여기서 로딩된 웹 페이지가 다른 도메인의 리소스에 접근하려고 한다. domain-b.com: 이 도메인은 이미지나 API와 같은 리소스를 제공한다. A..
SpringBoot와 Kafka(1) - 기본설명
·
Apache Kafka
1. SpringBoot + Kafka Apache Kafka는 여러 다양한 상황에서 사용될 수 있다. 실시간 이벤트 스트리밍, 실시간 분석, 데이터 파이프라이닝, 로그 수집 등의 다양한 애플리케이션에서 Kafka를 활용하곤 한다. Spring Boot 개발자로서 Apache Kafka는 다음과 같은 상황에서 사용될 수 있다. 1. 마이크로서비스 아키텍처: Kafka는 마이크로서비스 간에 데이터를 비동기적으로 전달하는 메시지 브로커 역할을 수행할 수 있다. 서비스 간의 커뮤니케이션에 대한 복잡성을 줄이고 시스템의 전체적인 성능을 향상시키는데 도움이 된다. 2. 이벤트 소싱과 CQRS: 이벤트 소싱(Event Sourcing)과 CQRS(Command Query Responsibility Segregati..
Apache Kafka 오프셋(Offset) 관리와 커밋(Commit) 작동 원리 (8편)
·
Apache Kafka
카프카의 Offset과 Commit의 작동 원리를 알아보자 1. Kafka 2.x 버전에서의 Offset과 Commit 이해하기 1-1. 구조 설명 Broker: Kafka 클러스터 내의 브로커다(Kafka 인스턴스). 파티션을 관리한다. Partition: 메시지가 저장되는 파티션이다. Consumer에게 메시지를 전달한다. __consumer_offsets: Consumer가 처리한 마지막 메시지의 위치(offset)를 저장하는 특수한 토픽이다. Consumer Group: 하나 이상의 Consumer로 구성된 그룹이다. 각 Consumer는 파티션에서 메시지를 가져와 처리한다. 1-2. 동작 과정 Broker가 Partition을 관리: Broker는 여러 파티션을 관리하며, 각 파티션에 메시지를 ..