본문 바로가기

전체글110

SQL Mapper vs ORM 기술 SQL Mapper vs ORM 기술목차개요SQL MapperORM (Object-Relational Mapping)결론1. 개요SQL Mapper와 ORM(객체 관계 매핑, Object-Relational Mapping) 기술은 데이터베이스와 객체지향 프로그래밍을 연결하는 두 가지 주요 접근 방식입니다. 각각의 특징, 장단점 및 사용 사례를 살펴보려고 한다.2. SQL MapperSQL Mapper는 SQL 쿼리를 사용하여 객체와 데이터베이스 간의 매핑을 처리하는 도구이다.특징직접적인 SQL 제어: 개발자가 직접 SQL 쿼리를 작성하고 이를 통해 데이터베이스와 상호작용한다.유연성: 복잡한 쿼리와 최적화된 SQL을 사용할 수 있어 성능 최적화에 유리하다.매핑 파일: 객체와 SQL 간의 매핑을 정의하는 X.. 2024. 6. 19.
카프카(kafka) 조금 아는척하기 - 3 목차개요컨슈머토픽 파티션은 그룹 단위 할당커밋과 오프셋커밋된 오프셋이 없는 경우컨슈머 설정자동 커밋/수동 커밋재처리와 순서세션 타임아웃, 하트비트, 최대 poll 간격종료 처리주의: 쓰레드 안전하지 않음결론1. 개요지난번에 이어서 이번에는 컨슈머에 대해 알아보려고 한다. 이전에 1편과 2편은 다음과 같다.1편 - https://github.com/Jammini/TIL/blob/master/etc/kafka1.md2편 - https://github.com/Jammini/TIL/blob/master/etc/kafka2.md2. 컨슈머토픽 파티션에서 레코드 조회Properties prop = new Properties();prop.put("bootstrap.servers", "localhost:9092");p.. 2024. 5. 28.
카프카(kafka) 조금 아는척하기 - 2 목차개요프로듀서란?프로듀서의 기본 흐름Sender의 기본 동작처리량 관련 주요 속성전송 결과 확인 안함전송 결과 확인함전송 보장과 acks에러 유형실패 대응재시도와 메시지 중복 전송 가능성재시도와 순서결론1. 개요지난 카프카 아는척하기 - 1 편에서는 기본적인 구조에 대해서 정리를 하였다. 링크는 아래와 같다. https://github.com/Jammini/TIL/blob/master/etc/kafka1.md이번에는 프로듀서에 대해 자세히 알아보려 한다.2. 프로듀서란?토픽에 메시지 전송 → 토픽, 키, 값Properties prop = new Properties();prop.put("bootstrap.servers", "kafka01:9092,kafka01:9092,kafka01:9092");prop.. 2024. 5. 28.
카프카(kafka) 조금 아는척하기 - 1 목차개요카프카란?기본구조토픽과 파티션파티션과 오프셋, 메시지 순서여러 파티션과 프로듀서여러 파티션과 컨슈머카프카와 성능리플리카 - 복제결론1. 개요결제시스템 프로젝트를 진행하면서 카프카를 사용하였는데, 대략적인 내용만 알고 있어 카프카에 대한 정리가 필요하였다. 그래서 카프카에 대해 정리하기 위해 쉽게 정리된 내용이 없을까 하다가 최범균님의 ‘카프카 조금 아는 척하기’를 보게 되었고 그것에 대해 정리해서 익혀보려고한다.2. 카프카란?카프카의 공식사이트 https://kafka.apache.org/ 를 들어가보면 아래와 같은 그림이 나온다.카프카는 분산 이벤트 스트리밍 플랫폼(distributed event streaming platform)으로 소개하고 있으며 고성능(high-performance)를 강.. 2024. 5. 27.
브라우저에 URL을 입력하면 어떤 일이 벌어질까? 목차 개요 웹브라우저 URL을 입력하고 Enter 키 입력 웹 브라우저가 도메인명의 IP 주소 조회 웹 브라우저가 서버와의 TCP 연결 시작 웹 브라우저가 HTTP 요청을 서버로 전송 웹 서버가 요청을 처리하고 응답을 다시 전송 웹 브라우저가 콘텐츠 렌더링 결론 1. 개요 우리는 매일 웹 브라우저를 열고 즐겨찾는 웹사이트를 탐색한다. 주소창에 URL을 입력하거나 페이지 링크를 클릭하면 해당 페이지로 이동한다. 그런데, 그 뒷단에서 무슨 일이 일어나는지 생각해 본 적이 있는가? 이 글에서는 웹브라우저에 URL을 입력하면 어떤 일이 벌어지는지 살펴보겠다. 2. 웹브라우저 URL을 입력하고 Enter 키 입력 위와 같이 브라우저에 https://www.naver.com 입력한 URL을 분류해보자. 즉 nave.. 2024. 3. 26.
대용량 트래픽 처리를 위한 경매 기능 최적화 목차 개요 경매 기능 구조 상품 가격을 위한 캐싱 실시간 최고 입찰액을 갱신하는 웹소켓 대용량 트래픽 처리를 위한 메시지 큐 결론 1. 개요 경매는 정해진 시간에 높은 가격을 제시한 회원이 상품 구매 자격을 얻는 거래체결 방식이다. 경매를 진행하면 순간적으로 많은 입찰 요청이 들어 오고 실시간으로 상품 가격이 변동 된다. 수많은 트래픽과 사용자 경험을 개선하기 위해 프로젝트에서는 Redis, WebSocket, RabbitMQ를 이용해 경매 기능을 최적화 한다. 2. 경매 기능 구조 경매 기능은 프로젝트의 핵심 기능이며 요구사항은 다음과 같다. 상품을 보고 있는 사람은 매순간 변경된 입찰 최고 금액을 실시간으로 화면에 보여져야 한다. 높은 가격을 먼저 서버로 요청한 사람이 구매권한을 가진다. 즉, 순서에.. 2024. 3. 20.