분류 전체보기
-
Redis Cluster 입문하기Redis 2025. 8. 14. 19:06
Redis는 InMemory 데이터 저장소로 자주 사용되지만 안정적인 운영을 위해서는 고가용성을 확보하는것이 중요하기 때문에 Redis Cluster를 사용해야 합니다.해당 글에서는 공식 문서를 기반으로 Redis Cluster의 개념을 설명하겠습니다.고가용성이란? 시스템이 다운타임 없이 오랫동안 지속적으로 정상 운영 될 수 있는 능력을 의미합니다.Redis Cluster란?Redis Cluster는 데이터를 여러 노드(서버)에 분산 저장하는 시스템입니다.확장성 : 노드를 추가해 용량과 처리량을 향상시킵니다.고가용성 : 노드 장애 시 자동 복구가 가능합니다.성능 : 작업을 분담 처리하기 때문에 성능적으로 향상시킵니다.Redis 3.0 이상부터 지원하며 최대 1000개 노드까지 확장 가능합니다.Redis ..
-
java.util.concurrent.FutureJAVA 2025. 8. 7. 18:07
1. Future란 무엇일까?Java의 Future Interface는 비동기 연산의 결과를 나타내는 핵심 컴포넌트입니다.Future는 Multi Thread 환경에서 비동기적으로 실행되는 작업의 결과를 관리하기 쉽게 해줍니다.시간이 오래 걸리는 작업을 Background에서 실행 하는 경우여러 작업을 병렬로 실행하고 결과를 기다리는 경우작업의 진행 상태를 확인하거나 취소해야 하는 경우2. Future의 기본 개념2-1. 비동기 연산의 생명 주기Future로 관리하는 비동기 작업은 다음과 같이 나타낼 수 있습니다.생성 -> 실행 -> 완료 / 취소 / 예외2-2. Generic TypeFuture는 Generic Interface이기 때문에 반환될 결과의 타입을 지정할 수 있습니다.Future strin..
-
Redis Replication 정리Redis 2025. 7. 24. 18:06
1. Redis Replication 이란?Master 서버의 데이터를 Replica 서버에 복사하는 기능입니다.데이터 안전성 : Master 서버가 죽어도 Replica 서버에 데이터가 남아있습니다.성능 향상 : 읽기 요청을 Replica로 분산하여 속도를 향상시킵니다.고가용성 : Master 서버가 죽더라도 Replica 서버가 Master로 승격해서 서비스를 이어갈 수 있습니다.2. Redis Replication 작동 방식Redis Replication은 기본적으로 비동기 방식을 사용합니다.Master 서버는 Replica 서버가 데이터를 받았는지 확인하지 않고 자기 할 일을 합니다.2-1. 정상 연결 상태Master 서버가 Client의 쓰기 요청 혹은 데이터 만료를 처리하면 이 처리 데이터에 ..
-
java.util.concurrent.locksJAVA 2025. 7. 17. 18:06
java.util.concurrent.locks 패키지는 내장된 동기화(synchronization) 및 모니터(monitor) 기능과는 구별되는 락(lock)과 조건(condition) 대기를 위한 프레임워크를 제공하는 인터페이스 및 클래스들로 구성되어 있습니다. 구문(syntax)이 다소 복잡해지는 대가로 락과 조건 변수 사용에 있어 훨씬 더 유연한 방식을 허용합니다.Lock Interface : 유연한 동시성 제어를 위한 핵심 도구주요 구현체 : ReentrantLockLock 인터페이스는 재진입, 공정성 등 다양한 락 제어 방식을 지원하며 synchronized처럼 코드 블록 단위로만 락을 거는 방식과 달리 필요한 시점에 직접 락을 걸고 해제할 수 있기 때문에 노드 하나씩 이동하며 락을 넘겨주는 ..
-
WiFi 접속 시 DHCP 작동 원리와 OSI 7계층 흐름Hacking/개념 및 이론 2025. 7. 17. 16:13
WiFi에 접속하고 웹사이트에 접속하는 과정은 다음과 같은 단계들을 거칩니다.1. WiFi 접속사용자가 WiFi에 접속하게 되면 어떻게 사설 IP를 부여 받는지 설명합니다.1-1. DHCP Discover사용자가 WiFi에 연결을 시도하면 가장 먼저 자신에게 할당될 IP 주소를 찾기 위해 DHCP Discover 메시지를 브로드캐스트(Broadcast) 방식으로 전송하게 되는데 이 과정을 아래에서 OSI 계층 모델을 통해 이해하기 쉽게 살펴 보겠습니다.4️⃣ Transport Layer (4계층)DHCP는 빠른 요청과 응답이 중요하기 때문에 UDP를 사용합니다.DHCP Discover 메시지를 보내는 사용자는 UDP 68번 포트를 사용하고 이 메시지를 수신할 DHCP 서버를 위해 UDP 67번 포트를 목..
-
XPath injection - AuthenticationHacking/CTF 문제 풀이 2025. 7. 12. 19:18
Working through problems이 문제는 DOM 기반의 XML 인증 로직에서 발생할 수 있는 XPath Injection 취약점을 활용하여 인증 우회를 수행하는 문제입니다.서버는 내부적으로 PHP의 SimpleXMLElement::xpath() 메서드를 이용해 XPath 표현식을 평가합니다.DOM 방식은 XML 전체를 메모리에 적재한 뒤 XPath를 사용하여 특정 노드를 탐색하며 이때 사용자 입력이 XPath 쿼리에 삽입되는 구조라면 Injection이 가능합니다.동작 방식 유추오류 메시지 및 함수 이름을 통해 내부적으로 사용된 XPath 구문은 다음과 유사할 것으로 추정됩니다:xpath("//user[username/text()='$id' and password/text()='$pw']")..
-
PHP - SerializationHacking/CTF 문제 풀이 2025. 7. 11. 10:12
Working through problems✅ Source CodeRestricted Access$message";// admin ?if($_SESSION['login'] === "superadmin"){ require_once('admin.inc.php');}// user ?elseif (isset($_SESSION['login']) && $_SESSION['login'] !== ""){ require_once('user.inc.php');}// not authenticated ? else {?>Demo mode with guest / guest !superadmin says : New authentication mechanism without any database. Our source c..
-
CRLFHacking/CTF 문제 풀이 2025. 7. 10. 10:11
Working through problemsCRLF(Carriage Return + Line Feed, %0D%0A) 인젝션을 이용해 서버 로그에 인증 성공 로그를 조작하여 인증 우회를 시도하는 문제입니다.문제를 시작하면 다음과 같은 서버 로그 출력 형식이 주어집니다.admin failed to authenticate.admin authenticated.guest failed to authenticate.서버는 로그인 요청에 대해 결과 로그를 남깁니다.특정 문자열 admin authenticated.가 로그에 존재할 경우 인증된 것으로 간주되고 플래그를 반환할 것으로 추정됩니다.먼저 브라우저에서 일반적인 로그인을 테스트 해봤습니다.admin / admin로그인은 실패했고 아래와 같이 로그가 추가된다.ad..