분류 전체보기 35

[Trouble Shooting] HTTP 리다이렉션 시 POST, PUT, DELETE (CUD)가 GET으로 바뀌는 문제점

HTTP의 POST, PUT, DELETE의 경우 HTTPS로 리다이렉션 시 GET으로 바뀐다. 이는 HTTP의 특성인데, 이를 알게된 계기와 해결 방법을 아래에 기술한다. 1. 문제 발생 🤬 쿠버네티스 각 Pod의 서비스 간 API 통신을 테스트 하기 위해 Postman으로 CRUD API 테스트를 진행했다. (Local에 WAS를 띄우고 Pod에 배포된 다른 서비스를 Postman으로 콜하는 방식 ) 그러나 Postman에서 HTTP로 POST, PUT, DELETE 요청할 경우 405로 Response 받고, GET의 경우 정상적(200)으로 Response를 받았다. Ingress Controller의 로그를 확인하니 HTTP의 POST, PUT, DELETE의 요청들이 HTTPS의 GET로 변경..

Trouble Shooting 2023.10.23

[Spring Batch] Spring Batch 5.0 migration Guide - initial Database schema updates

Spring Batch 5.0 migration Guide - initial Database schema updates Spring Batch가 5.0으로 버전 업하면서 여러 사항들이 변경 됐다. 자세한 내용은 아래 첨부한 링크에서 확인! 그 중 Spring Batch의 메타 데이터 저장 테이블의 Schema가 변경되어 Migration하거나, 초기 시작일 경우 생성하는 방법에 대해 기술하고자 한다. Spring Batch가 제공하는 배치 메타 데이터 저장 테이블에 대한 정보는 아래 첨부한 링크에서 확인! 1. Schema Create 🚀 Spring Batch 작업을 처음 할 경우 Database에서 Schema에 대한 Create 쿼리는 아래와 같다. (Oracle 기준임. 다른 DBMS의 경우 아래..

[AWS] CloudWatch란?

CloudWatch란? Amazon CloudWatch는 AWS 리소스와 AWS에서 실시간으로 실행 중인 애플리케이션을 모니터링하는 서비스입니다. 지표를 감시해 알림을 보내거나 임계값을 위반한 경우 모니터링 중인 리소스를 자동으로 변경하는 경보를 생성할 수 있습니다. 다양한 이벤트들을 수집하여 로그파일로 저장합니다. ex) 경보의 예로 인스턴스 중지, Auto Scaling, Amazon SNS 작업 시작, 종료 등이 있습니다. 이벤트 : S3 버킷에 파일 업로드, 삭제, 접근 거부, RDS 접속 시도 등 CloudWatch 용어 정리 Namespace : 지표를 측정하기 위한 AWS 서비스 (EC2, RDS 등) Metric(지표) : 측정하고자 하는 지표 (CPU 자원 사용률 등) Dimension ..

AWS 2023.08.02

[AWS] CloudFront(CDN)이란?

CloudFront란? CloudFront는 AWS에서 제공하는 CDN 서비스입니다. 캐싱을 통해 사용자에게 좀 더 빠른 전송 속도를 제공함을 목적으로 합니다. CloudFront는 전 세계 이곳저곳에 Edge Server(Location)을 두고 Client에 가장 가까운 Edge Server를 찾아 Latency를 최소화시켜 빠른 데이터를 제공합니다. Origin Server : 원본 데이터를 가지고 있는 서버입니다. 보통 AWS에서의 Origin Server는 S3, EC2, Instance 입니다. Edge Server = Edge Location : AWS에서 실질적으로 제공하는 전 세계에 퍼져있는 서버입니다. Edge Server에는 요청 받은 데이터에 대해서 같은 요청에 대해서 빠르게 응답해..

AWS 2023.08.02

Git hub branch 작업 프로세스

Pull Request (PR) 이란?: push 권한이 없는 사용자가 해당 오픈소스에 기여를 할 때 사용하는 방법 Upstream : Maintainer(팀장)의 Github Repository Origin : Maintainer(팀장)의 Github Repository를 Fork한 나의 Github Repository Local : 나의 Local Repository 1. Upstream Repoitory (main)에서 나의 Origin Repository (main)으로 Fork 2. Origin Repository (main)에서 Local Repository (main)으로 Clone - Origin Repository와 Local Repository에 각각 branch 생성 3. Local ..

[Spring Boot] Actuator dependency와 Swagger Starter 3.0.0 충돌 에러

Spring boot 2.7.3에서 Swagger 3.0.0 버전과 함께 Actuator dependency를 추가하는 과정에서 아래와 같은 오류가 발생했다. Swagger 3.0.0 dependency를 추가했던 과정에서 발생한 오류와 동일했다. 1. 문제 발생 🤬 Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException porm.xml - Dependency HTML 삽입 미리보기할 수 없는 소스 2. 문제 해결 😁 Swagger는 모든 endpoint에 대해 documentation을 해주는 기능이다. Actuator 또한 endpoint(refresh, beans..

Trouble Shooting 2023.04.14

[Spring Boot] Springfox - documentationPluginsBootstrapper 오류

Spring boot 2.7.3에서 springfox 3.0.0 버전을 이용하기 위해 진행하던 중 아래와 같은 오류가 발생했다. 참 swagger는 버전 이슈가 정말 많은거 같다ㅜㅜ 1. 문제 발생 🤬 Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException porm.xml - Dependency HTML 삽입 미리보기할 수 없는 소스 SwaggerConfig Class HTML 삽입 미리보기할 수 없는 소스 2. 문제 해결 😁 Spring boot 2.6버전 이후 spring.mvc.pathmatch.matching-strategy의 값이 ant_apth_matcher..

Trouble Shooting 2023.04.14

[Vue.js] Vuex와 State

Vuex란? Vue.js의 상태 관리를 위한 패턴이자 라이브러리입니다. 다른 상태 관리 패턴이나 라이브러리와 비교했을 때 뷰의 반응성(Reactivity) 체계를 효율적으로 활용하여 화면을 업데이트한다는 차이점이 있습니다. 상태 관리란? 상태 관리란 여러 컴포넌트 간의 데이터 전달과 이벤트 통신을 한 곳에서 관리하는 패턴을 의미합니다. 뷰와 성격이 비슷한 프레임워크인 리액트(React)에서는 Redux, Mobx와 같은 상태 관리 라이브러리를 사용하고 있고 뷰에서는 Vuex라는 상태 관리 라이브러리를 사용합니다. 상태 관리(State Management)가 왜 필요한가? 컴포넌트 기반 프레임워크에서는 작은 단위로 쪼개진 여러 개의 컴포넌트로 화면을 구성합니다. 예를 들면, Header, button, L..

Framework/Vue.js 2023.04.09

[Spring Boot] API Docs : Springdoc & Springfox-Swagger

인프런의 'Spring Boot를 이용한 RESTful Web Services 개발'의 강의 중 REST API Documentation을 위한 Swagger에서 버전 문제로 인한 이슈를 해결한 방법에 대해 얘기하고자 한다. 1. 문제 발생 🤬 강의에서는 Springfox Swagger를 사용한다. porm.xml - Dependency HTML 삽입 미리보기할 수 없는 소스 SwaggerConfig Class HTML 삽입 미리보기할 수 없는 소스 위와 같은 설정에서 정상적으로 동작하지 않았고 찾아본 결과 Springfox Swagger는 Springboot 2.7.X 이하의 버전에서만 가능하다고 한다. (나는 Springboot 3.0.0을 사용하고 있었다.) 2. 문제 해결 😁 검색해보니 Sprin..

Trouble Shooting 2023.04.05

[Etc] 3계층 구조 (3 Tier - Architecture)

3계층 구조(3 Tier - Architecture) 란? 어떠한 플랫폼을 3계층으로 나누어 별도의 논리적/물리적 장치에 구축 및 운영하는 형태 웹 서버 운영을 예로 들면, 서버 한대에 한꺼번에 모든 기능들을 구축하는 것이 아니라 데이터를 저장하고 읽는 데이터 계층(Data Tier), 데이터를 처리하는 애플리케이션 계층(Application Tier), 그리고 데이터를 표현해주는 클라이언트(프레젠테이션) 계층(Client Tier) 과 같이 각각 3계층으로 나누어 각각의 기능으로 별도의 논리적/물리적인 장치에서 운영하는 방식 Citent(Presentation) Tier 클라이언트(프레젠테이션) Presentation Logic Application Tier 웹/애플리케이션 서버 Business Log..

반응형