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..
Spring Boot 3.1 & Spring Security 6: Security Config 최적화 리팩토링 (12편)
·
Spring Security
이번에는 필요없는 필터는 없애고 최적화를 진행하기 위해 Security Config를 리팩토링 했다. 1. SecurityConfig 리팩토링 앞의 게시글을 확인해보면 작성한 코드가 있기에 변경된 메서드만 설명하겠다. 일단 나는 ssl(서버 사이드 랜더링)이기 때문에 에러페이지, 메인페이지, 회원가입, 로그인, 정적 리소스는 모두 접근을 허가해줬다. 여기서 특히 바뀐건 addFilterBefore() 이것이다. jwtAuthorizationFilter 다음 바로 customAuthenticationFilter로 가도록 했다. @Bean public SecurityFilterChain filterChain( HttpSecurity http, CustomAuthenticationFilter customAut..
Spring Boot 3.1 & Spring Security 6: JWT 검증 리팩토링 (11편)
·
Spring Security
JWT 필터 스프링 시큐리티 코드 리팩토링을 진행했다. 1. JwtAuthorizationFilter 클래스를 리팩토링 했다. 기존에는 한줄로 이루어져있던 코드를 extract method로 각각 역할별로 추출했다. import com.fasterxml.jackson.databind.ObjectMapper; import com.recipia.web.config.security.jwt.TokenUtils; import com.recipia.web.domain.user.constant.RoleType; import com.recipia.web.exception.ErrorCode; import com.recipia.web.exception.RecipiaApplicationException; import io...
[스프링, 스프링부트] Spring - 게시글 삭제중 발생한 오류 해결
·
Spring 기초/Spring 오류해결
게시글 삭제를 하던중에 오류가 발생했다. 이유를 알아보자 1. 상황 설명 아래와 같은 게시글 상세보기 페이지에서 대댓글이 달린 댓글을 삭제했을때 오류가 발생했다. 에러 메시지 확인 {"errorMessage":"could not execute statement [Cannot delete or update a parent row: a foreign key constraint fails (profile.board_sub_comment, CONSTRAINT FK_BOARD_SUB_COMMENT_board_comment_id_BOARD_COMMENT_board_commen FOREIGN KEY (board_comment_id) REFERENCES board_comment (board_comment_id) ON)..
SpringBoot: 인터셉터(interceptor)의 동작원리
·
Spring 기초/Spring 기초 지식
스프링 부트에서 사용되는 Interceptor의 동작원리를 알아보자 1. 스프링부트에서 인터셉터란? 스프링부트에서의 인터셉터 스프링부트에서 인터셉터는 웹 애플리케이션에서 요청과 응답을 처리하는 중간 단계에서 사용된다. 인터셉터는 특정 URI 패턴에 대한 요청을 가로채어, 컨트롤러가 처리하기 전후에 추가적인 작업을 할 수 있게 해 준다. 이를 통해, 로그인 체크, 권한 검증, 로깅 등과 같은 작업을 효율적으로 처리할 수 있다. 인터셉터의 동작 과정 클라이언트로부터 들어오는 요청(HttpRequest)을 가로챈다. 가로챈 요청에 대해 원하는 처리(예: 로그인 체크, 권한 체크 등)를 수행한다. 처리가 끝난 후, 요청을 원래의 목적지인 컨트롤러로 전달한다. 컨트롤러가 응답(HttpResponse)을 반환하면,..