대규모 트래픽을 처리하는 게시판 서비스에서 게시글 목록 조회는 가장 빈번하게 호출되는 핵심 API입니다. 특히 페이지 번호 기반 페이징에서 offset이 커질수록 느려지는 문제는 많은 개발자가 겪는 이슈입니다. 해당 내용은 인프런 강의 내용을 듣고 작성한 내용으로 정말 제가 하는 프로젝트에서 도움이 많이 되어 글로 정리하고자 합니다. DB는 miaradb11입니다.1. 페이지 번호 방식의 문제점총 게시글 1000만 건, 페이지당 30개 , 4 페이지 조회 (offset = 90)select * from articlewhere board_id = 1order by created_at desclimit 30 offset 90;조회 속도: 13s 456msEXPLAIN: type = ALL, Extra = U..
NAT 인스턴스퍼블릭 서브넷에 배치된 EC2 인스턴스가 프라이빗 서브넷의 인터넷 요청을 대신 전달(SNAT) 하는 구조로 즉 인터넷으로 나가는 프록시 서버 역할을 하는 EC2 특징직접 관리, EC2 크기와 설정에 따라 성능이 달라진다. 비용이 매우 저렴하지만 운영 부담 존재한다. t3.micro 기준 시간당 0.013달러의 비용이 발생한다. 더 저렴한 t4g.nano은 0.0052달러이다. NAT 게이트웨이AWS에서 완전 관리형으로 제공하는 NAT 서비스로 퍼블릭 서브넷에 생성 후 Elastic ip를 연결하면 프라이빗 서브넷 인스턴스들이 외부로 나갈 수 있다. 특징관리 불필요하고 비용은 비싸지만 안정적이고 유지보수 부담이 적다. 서울 기준 NAT 게이트웨이 요금 0.059 달러의 비용이 발생한다. 24..
JWT란?JWT(json web token)는 클라이언트와 서버 간 인증 정보를 토큰 형태를 안전하게 전달하기 위한 표준이다. 기존 세선/쿠키 방식과 달리 서버는 상태를 저장하지 않고 토큰 자체만으로 정보의 유효성을 검증할 수 있어 서버 자원 소모를 줄일 수 있다. 즉 서버가 세션을 들고 있지 않아도 클라이언트가 JWT만 가지고 있다면 인증이 가능하다. 그래서 Stateless 인증 방식이라고 부른다.3가지 구성 요소구분설명Header(헤더)토콘의 타입과 해싱 알고리즘(HS256, HS512) 정보가 담김Payload(정보)유저 정보, 권한, 만료시간 등이 포함Signature(서명)위 두 정보를 서버의 비밀키로 서명하여 생성, 서버는 이 서명을 통해 토큰의 위변조 여부를 확인JWT를 관리하는 대표적인 ..
테라폼(Terraform)하시코프에서 개발한 오픈소스 코드형 인프라(IaC) 도구입니다. 코드를 사용하여 인프라를 선언적으로 정의하고 프로비저닝(구축 및 관리)할 수 있게 해 준다. 테라폼은 사용자가 원하는 인프라의 최종 상태를 HCL이라는 전용 설정 언어를 사용하여 파일(.tf)로 작성한다. 이 코드는 단순히 명령을 순차적으로 나열하는 것이 아니라 어떤 리소스가 필요하다 고 선언하는 방식이다.핵심 특징이름설명IaC(Infrastructure as Code)인프라를 수동으로 설정하는 대신 코드로 정의하고 관리하는 자동화, 일관성, 반복 가능성을 확보한다.선언적사용자는 무엇을 원하는지를 코드로 선언하면 테라폼이 어떻게 해당 상태에 도달할지(생성, 수정, 삭제)를 결정하고 실행한다.멀티 클라우드 지원AWS,..
Spring Batch로 배치 적재 기능을 개발하면서 Writer를 JPA로 구현할지 JDBC로 할지를 고민하게 되었습니다. 프로젝트에서 데이터 조회는 이미 JPA를 기반으로 하고 있었고 Spring Batch에서도 JpaItemWriter를 기본적으로 제공하므로 처음에는 자연스럽게 이를 선택했습니다. 실제로 코드도 간결했고 데이터량도 적다 보니 성능도 충분하다고 판단했습니다. 하지만 Writer를 JDBC 기반으로 변경하면 어떤 차이가 있을지 궁금해 JdbcBatchItemWriter로 동일한 작업을 수행해 보았고 결과적으로 예상 이상의 성능 향상 효과를 확인했습니다.두 Writer의 성능을 비교하기 위해 청크 단위의 실행 시간을 측정하는 WriterTimingListener를 추가로 구현했습니다.@S..
뉴스 피드 시스템사용자가 팔로우하거나 친구로 등록한 사람들의 최신 활동을 시간순 또는 추천 방식으로 보여주는 기능으로 대표적인 서비스로는 페이스북, 인스타 등이 있습니다. 11장은 이 뉴스 피드 시스템의 설계 방법을 다룹니다. 뉴스 피드 시스템의 주요 기능과 요구사항 정리1. 웹 및 모바일 지원2. 피드 발행3. 피드 읽기4. 최신순으로 표시5. 한 명의 사용자는 최대 5000명의 친구를 가질 수 있고 매일 천만 명이 방문6. 이미지, 비디오 등의 미디어 파일도 포함 두 가지 핵심 부분1. 피드 발행은 사용자가 스토리를 포스팅하면 데이터를 캐시와 DB에 기록하고 새 포스팅은 친구의 뉴스 피드에도 전송한다.2. 뉴스 피드 생성은 사용자가 뉴스 피드 화면을 요청했을 때 사용자가 최신 포스팅 목록을 보여주는 ..
AWS VPCAWS안에 내가 직접 만드는 나만의 공간이다. AWS에서 사용하는 가상 네트워크 환경으로 서브넷 EC2, RDS 같은 리소스를 올린다. 기본적으로 AWS에서 EC2를 생성할 때 자동 제공해 준다. 즉 VPC는 AWS 위에 내 전용 사설 네트워크를 만드는 것이다. 여기 안에 EC2, RDS 같은 리소스를 넣어 보안적으로 안전하고 통제 가능한 구조를 만들기 위해 세팅하는 것이다. 퍼블릭/프라이빗 서브넷 구분구분인터넷 접속예시 용도 필요 구성요소퍼블릭 서브넷외부에서 접속 가능웹 서버/로드밸런서인터넷 게이트웨이 + 퍼블릭IP프라이빗 서브넷외부에서 직접 접속 불가DB/내부 API/ 백엔드 작업 서버NAT 게이트웨이(나갈때만) 인터넷 게이트웨이, NAT, 라우팅 정리Internet Gateway(IGW..
- Total
- Today
- Yesterday
- isdigit
- combinations
- Python
- operators
- If
- index
- permutations
- Method
- isalpha
- Lambda
- function
- Upper
- zip
- bool
- find
- counter
- for
- Lower
- Built-in Functions
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |