TIL - CDC로 향하는 가는 첫 번째 과정(1) : OracleDB 트랜잭션 로그(Redo log)를 읽어서 Kafka에 적재하기
·
[TIL]
📌 개요기존 데이터를 다른 시스템에 중단없이, 그리고 끊임없이 동기화를 어떻게 시킬 수 있을까? 라는 고민에서 나온 CDC 프로젝트 과정입니다. 트랜잭션 로그를 분석하는 방법부터, 배치를 활용하여 카프카에 적재하는 과정까지 꽤나 많은 삽질과 배움이 있었습니다. 그럼 본격적으로 어떠한 과정이 있었는지 포스팅 해보겠습니다.  1. Source DB에서 실시간성 캡쳐하기CDC의 핵심은, 기존 운영중인 DB에 끊임없이 쏟아지는 데이터 변경에 대해서 실시간으로 캡쳐하고 다른 시스템에 옮겨야 하는 것 입니다. 좀 더 데이터베이스 관점으로 바라본다면, 데이터베이스에 쏟아지는 수많은 DML을 캐치하고 이를 다른 시스템에 그대로 알려줘야 한다는 것으로 바라볼 수 있습니다. 저희는 SourceDB가 OracleDB로 구..
[ TIL ] RECOVER_YOUR_DATA : RDS 해킹 일지
·
[TIL]
📌 개요어느 날, 배포해놨었던 프로젝트의 서버가 난데없이 죽어있길래 부랴부랴 로그를 살펴보니.. DB의 스키마를 찾지 못한다는 로그를 발견 할 수 있었습니다..  제가 직접 건들지 않는이상 database 는 절대 발생 할 수 없는 로그인데 무슨일인가 DB 를 확인해봤으나 웬걸... 사용되고 있던 스키마는 통째로 없어지고 아래와 같은RECOVER_YOUR_DATA 의 스키마와 함께 RECOVER_YOUR_DATA 테이블이 생성되어 있는것을 마주할 수 있었습니다😂 테이블 내의 데이터를 확인해보면 더욱 난감할 수 밖에 없었습니다. 'All your data is backed up. You must pay 0.0105 BTC to bc1q307y2v8aujqwrej8m9v998yj0m242km989t8d2..
Kubernetes 분산 서버에 의한 Oauth2 소셜 인증 실패 및 극복 방법 (sticky session service 추가)
·
[TIL]
📌 개요저는 kubernetes 환경을 통해서, spring boot 서버를 하나가 아닌, 다중으로 두어 로드밸런서를 통해 부하 분산을 하게 환경 구축을 하였습니다. 이 로드밸런싱과 oauth2 의 충돌 문제점이 발생하여, 트러블 슈팅을 기록하게 되었습니다. 문제 지점 이해를 돕기 위한 시스템 아키텍처의 일부입니다. 1) frontend-svc 를 통해 유저들이 프론트엔드 웹페이지 접근을 한다.2) nginx 리버스프록시를 통해 backend-svc 서비스를 가리키게 한다.-> 이때 backend-svc 는 로드밸런서로 구성되어 있기 때문에, 존재하는 다중 파드에게 부하를 분산하여 요청을 보낸다. 2번 과정중, 빨간 부분이 바로 문제지점 입니다. 이제 왜 해당 로드밸런싱과 oauth2 인증 과정 중에 ..
JWT 보안성 강화시키기 (Access Token, Refresh Token -RTR, BlackList 그리고 Redis)
·
[TIL]
📌개요프로젝트를 진행하면서 로그인 유지 기법  으로는 크게 세션 VS 토큰으로 비교 대상군이 되고는 합니다.이 중에서 저는 세션 방식과 토큰 방식 중 왜 토큰 방식을 택했으며, 토큰 방식 중 JWT를 선택하게 되면서 얻었던 보안적인 고찰에 대해서 적어보고자 합니다. 해당 포스팅은 JWT에 대한 설명 보다는 JWT 에 보안을 올려왔던 과정에 대한 글 인점을 참고해주세요!  🔍프로젝트에서 토큰 방식을 택했던 이유저는 서버를 단일 서버가 아닌 쿠버네티스 환경에 올렸기 때문에,쿠버네티스 환경을 통해서 서버의 개수를 자유롭게 늘리고 줄일 수 있는 자율성을 가질 수 있었습니다.  하지만 세션 방식의 가장 큰 단점이라고 한다면 아래와 같을 것 입니다.세션 정보의 가장 큰 단점은회원이 서버1 에서 로그인 요청을 하..
ELK 에 대해서 알아보자! ( ElasticSearch - Logstash - Kibana )
·
[TIL]
개요 📌저는 진행중인 쇼핑몰 프로젝트 속에서, 기존의 QueryDsl 을 활용하여 기능을 구현했던 적이 있습니다.물론 기능적인 면에서 QueryDsl 로도 충분히 가능할지 모르겠으나, 수많은 데이터를 보유한 DB입장에선, 성능적으로 개선은 불가피합니다. 따라서 검색 성능을 높이기 위해서, ElasticSearch를 도입해보고자 간단히 개념적으로 짚고 넘어가보고자 포스팅을 하게 되었습니다. 그럼 본격적으로 ElasticSearch란 무엇이며, ES 를 공부하다보면 자연스럽게 딸려오는 ELK 가 무엇인지 알아보겠습니다!   🔍 ElasticSearch란? ElasticSearch는 검색성능을 높이기 위한 도구이다. 무엇이다. 여럿 말들이 많지만, 결론적으로 말씀드리자면  ElasticSearch는 결국 ..
Cookie 에 Http Only 와 secure 를 적용시켜보자! [ Spring boot + Vue 3.x]
·
[TIL]
개요프로젝트 진행 중, JWT 를 사용하여 웹 브라우저 쿠키에 토큰을 심어주었습니다. 다만, Cookie 의 특성 상, 한 번 전달한 토큰은 더이상 관리하지 않는다는 점에서 보안적으로 위험하지 않을까? 에서 파생된 여러가지 대처 방안을 적용하고자 합니다. 그 방법 중, Refresh Token, Http Only , Secure 적용등이 있는데, 이 중 Http only 와 Secure 적용을 통해토큰의 보안성을 강화시켜 보겠습니다. 📌 개념정리! ❓ Cookie 쿠키? 🍪쿠키란 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각 입니다.웹 브라우저는 그 쿠키라는 작은 데이터 조각들을 저장해 놓았다가, 동일한 서버에 재요청 시 저장된 데이터를 함께 전송합니다.이를 이용하면 사용자의 로그인 상태를..
[TIL] 도메인 적용 방법 + HTTP에서 HTTPS로 전환 방법 [Nginx, 내도메인한국, Zerossl]
·
[TIL]
개요https://develop-706.tistory.com/29 Vue + Nginx : EC2에 배포하기사전 준비사전에 AWS 에서 EC2 인스턴스를 생성하고 보안그룹을 편집 해 놔야합니다!해당 포스팅에서는 앞선 사전 준비는 제외하고 진행하도록 하겠습니다. 저는 EC2 : ubuntu /  t2.micro /  ap-northeastdevelop-706.tistory.com 지난 포스팅으로 AWS - EC2 위에 제가 만든 Vue 프로젝트를 배포한 바 있습니다.해당 포스팅에서는 인증서 보안이 걸려있지 않아 HTTP 로 배포가 되었으며,고유적인 도메인 또한 없어 IP 를 치고 들어가야하는 불편함이 있었습니다. 해당 포스팅에서는 지난번 포스팅에 이어, 내도메인한국 사이트 + zerossl 을 통해서 도메..