2025/02 3

DB Replication 개념 (feat. MySQL)

DB Replication?운영중인 대규모 애플리케이션 환경에서는 데이터의 지속적인 가용성과 신뢰성이 매우 중요하기 때문에 원본 서버와 복제 서버 간의 데이터 동기화는 필수이다.바이너리 로그를 저장하는 방식은?Replication은Source 서버에서 발생하는 모든 데이터 변경 사항을 Replica 서버로 복제해서 두 서버 간의 데이터 일관성을 유지하는 메커니즘이다. 이러한 과정은 주로 바이너리로그를 기반으로 이루어진다.바이너리 로그는 Source서버에서 실행된 모든 데이터 변경 쿼리를 기록하는 역할을 한다. MySQL에서는 바이너리를 저장하는 방식으로 Row, Statement, Mixed의 세가지 방식을 제공하며, 각 방식은 고유한 장단점을 가지고 있다.Rowrow 방식은 데이터베이스의 각 행별로 변..

DB 2025.02.27

JS 비동기 프로그래밍 최종 정리

비동기 프로그래밍비동기 프로그래밍 탄생 배경CPU와 I/O 속도의 차이CPU는 매우 빠르게 연산을 수행하지만, 디스크, 네트워크, DB 등 I/O 작업은 상대적으로 느림.동기(Synchronous) 방식으로 실행하면 I/O 대기 시간 동안 CPU가 낭비됨.멀티태스킹과 병렬 처리의 필요성하나의 요청이 완료될 때까지 기다리면 다른 작업을 동시에 처리할 수 없음.여러 작업을 동시에 실행하기 위해 스레드 기반의 멀티태스킹이 등장.하지만 스레드 생성 비용이 높고, 컨텍스트 스위칭이 성능 저하를 초래함.이벤트 기반 & 논블로킹 방식 등장효율적인 리소스 사용을 위해 이벤트 루프(Event Loop)와 콜백 기반의 비동기 처리가 개발됨.대표적으로 Node.js, JavaScript Promise, Java의 Compl..

JavaScript 2025.02.14

내가 체크 해 봐야할 API들의 보안 취약점들

OWASPOWASP 웹 애플리케이션 보안을 목표로 무료 콘텐츠와 도구를 만드는 비영리 재단. 가장 일반적인 API취약점 10가지를 정리하여 발표했다.정보 누출API응답, 코드 저장소, 검색 결과, 소셜 미디어, 대상의 웹사이트, 공개 API 디렉터리 같은 공개된 소스를 통해 누출될 수 있다.불필요하게 자세한 응답메시지"제공된 사용자 ID가 존재하지 않습니다"라는 메시지를 통해 다른 ID를 넣어서 계속 시도를 했는데 만약 "잘못된 비밀번호입니다"라는 메시지가 나왔다면? 아! 이 메시지를 뱉으면 ID는 있는데 비밀번호만 찾으면 되겠네?! 하는 힌트를 주게된다.API응답시 사용자 이름을 반환하여 공격자가 응답을 통해 취한 사용자 이름으로 무차별 비밀번호 대입, 비밀번호 스프레이등으로 로그인시도BOLABOLA(..

보안 2025.02.03