분류 전체보기89 [ElasticSearch] ElasticSearch 인덱스 생성하기 사전 준비이미 Spring Boot + MySQL로 간단한 게시판 서비스를 만들어 놓은 상태로 실습을 진행하였습니다.Elasticsearch와 Kibana는 둘 다 Elastic의 공식 Docker 이미지를 제공하며, Docker Compose를 사용하면 두 컨테이너를 쉽게 구성하고 실행할 수 있습니다.저는 로컬 환경에 도커 이미지를 받아 컨테이너 띄워서 실습을 진행하였습니다version: '3.8'services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.5.0 container_name: elasticsearch environment: - node.name=elasticsearch .. 2024. 11. 5. [GitHub] BFG Repo-Cleaner를 이용하여 깃허브에 올라간민감 정보 지우기 플젝을 진행하면서 계속 private repository로 진행했는데...코드 좀 다듬고(아직 멀었음)1차 배포 테스트 후 public으로 바꿨습니다. 근데...바로 경고 이메일 날라왔어요...OAuth 로그인을 위해 사용하는 API Key가 노출되었다는 것 인데요...현재는 바꾼 상태이지만, 초기에 팀원분이 로그인 구현하실 때 application-local.yml에 올리고 PR 날리셨고그것을 제가 리뷰하면서 오케이했고...플젝 초기에 이런거 정말 유의해야하는데...다른 코드 보다가 놓쳤나보네요 어쨌든 개인정보를 소중하게 보호하기 위해서는 빨리 지워야합니다.여러 가지 방법이 있습니다. 해결 방법 정리git rebase -i 사용하기:오래된 커밋의 메시지를 수정하거나 파일을 제거하려면, 인터랙티브 .. 2024. 11. 2. [CI/CD] GitHub Actions ./gradledew perpission denied 이슈 문제 상황프로젝트를 진행하면서 GitHub Actions로 CI를 구축하고 있었습니다. 그러던 중 아래와 같은 에러를 만나게 되었습니다...이전 프로젝트에서 actions 사용할 때 이 부분은 신경 쓰지 않고 그냥 넘어갔었는데... ./gradledew에 실행 권한이 없다는 것 인데요 원인왜 이전 프로젝트와 다르게 실행 권한이 없나 찾아봤더니Springboot 세팅을 한 사람(It's me)의 개발환경이 Window이기 때문이라고 합니다. 이전 프로젝트 세팅해주신 팀원분은 mac을 사용하셨습니다. Windows에서 생성된 파일은 기본적으로 644 권한을 가지며, 실행 파일로 인식되지 않습니다. 따라서 GitHub Actions에서 빌드할 때 문제가 발생할 수 있습니다. GitHub Actions는 .. 2024. 10. 27. [ElasticSearch] ElasticSearch 개념 정리 ElasticSearchElasticSearch는 Apache Lucene을 기반으로 하는 분산 검색 엔진으로, 대규모 데이터에서 빠른 검색과 집계 기능을 제공합니다. 실시간 검색 및 분석을 필요로 하는 시스템에서 많이 사용되며, JSON 기반의 RESTful API를 통해 상호작용합니다. 주요 특징1. 분산 아키텍처ElasticSearch는 클러스터로 구성되며, 각 클러스터는 여러 노드(Node)로 이루어집니다.샤드(Shard): 데이터를 분산 저장하며, 장애 복구를 위해 복제본(Replica)을 유지하여 데이터 안정성을 보장합니다. 2. RESTful APIHTTP 메서드를 이용한 JSON 문서 기반 상호작용이 가능합니다. 즉, HTTP 메서드(GET, POST, PUT, DELETE)를 사용하여 데.. 2024. 10. 24. 유클리드 호제법 유클리드 호제법 유클리드 호제법(Euclidean algorithm)은 두 수의 최대공약수(GCD)를 효율적으로 구하는 고대의 알고리즘입니다. 이 방법은 두 수를 계속해서 나눗셈과 나머지 연산을 반복함으로써 최대공약수를 찾는 방식입니다. *코딩테스트 준비용 알고리즘 학습을 위한 것이기 때문에 수학적 증명은 생략하겠씁니당 유클리드 호제법의 과정 다음과 같은 단계로 유클리드 호제법을 통해 최대 공약수를 구할 수 있습니다.1. 두 수 a, b를 MOD2. b와 나머지로 MOD3. 나머지가 0이 되는 순간의 b가 최대 공약수 최소공배수 lcm는 gcd를 이용하여 구하는 것이 일반적입니다. 아래에 반복문을 이용하여 최소공배수와 최대공약수를 구하는 함수를 작성하였습니다.import java.io.IOExc.. 2024. 10. 12. [Spring] JwtTokenFilter Exception 예외 처리하기(feat. Security Exceptions) Handling Security Exceptions상황: 사이드 프로젝트 Muud 개선 과정에서 Spring Security를 도입하게 되었습니다.기존에는 JwtInterceptor로 처리하던 인가 및 토큰 검증 로직을 JwtTokenFilter로 수정하였습니다. 이전 후 예외 테스트를 진행하면서 해당 부분이 이후 정상적으로 작동하지 않음을 발견하였습니다. 문제 상황Given: JWT 토큰 검증이 Filter로 구현되어 있습니다.When: 토큰이 비어있거나 유효하지 않은 토큰으로 API에 접근해보았습니다.Then:아래와 같이 403 에러 응답을 받았습니다.응답 상태 코드가 403으로 설정되어 예외 처리는 가능하지만, body 없이 응답이 가기 때문에 클라이언트에서 정확한 사유를 확인할 수 없습니다.또한,.. 2024. 10. 11. 이전 1 2 3 4 ··· 15 다음