테라폼(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..
스프링부트 3 버전 프로젝트를 진행하면서 예전처럼 RestTemplate을 활용해 외부 api를 호출했었습니다. 그런데 스프링 부트 3부터는 RestTemplate가 deprecated 된다는 얘기를 들은 적이 있었고 WebFlux의 등장 이후에는 WebClient 사용이 권장된다는 점도 알고 있었습니다. 하지만 토비 님의 유튜브 내용을 확인해 보니 RestTemplate가 삭제되는 것이 아닌 더 이상 새로운 기능이 추가되지 않고 버그 수정만 이루어지는 유지보수 모드라는 사실을 알게 되었습니다. 덕분에 흔히 생길 수 있는 오해와 진실을 바로 잡을 수 있었습니다. 어떤 방식으로 개발해야 할지 고민이 되었다. WebClient를 사용하려면 WebFlux 의존성을 추가해야 한다는 점이 부담스러웠고 비동기 환경..
쿠버네티스 정리쿠버네티스는 다수의 컨테이너를 효율적으로 배포, 확장, 관리하기 위한 시스템이다. 컨테이너화된 애플리케이션을 클러스터 환경에서 자동으로 배포하고 필요에 따라 확장과 축소하며 장애가 발생했을 때 복구까지 담당한다. 흔히 docker compose와 비교되지만 compose가 단일 서버 내 다수 컨테이너 관리에 초점을 둔다면 쿠버네티스는 여러 서버에 걸친 대규모 컨테이너 오케스트레이션을 지원한다. docker compose의 확장판으로 이해할 수 있지만 더 많은 기능을 제공한다. 주요 장점컨테이너 관리 자동화로 배포, 업데이트, 롤백을 자동 처리하고 다수의 파드로 들어온 요청을 균등하게 분배해 로드 밸런싱을 한다. 트래픽 상황에 따라 파드 개수를 자동으로 늘리거나 줄여 쉬운 스케일링이 있고 셀..
Redis는 무엇이며 장점은?레디스는 키-값 구조의 비정형 데이터를 저장하고 관리하는 비관계형 DB입니다. 인메모리에 모든 데이터를 저장하여 데이터의 처리 속도가 매우 빠른 장점이 있습니다. 디스크 보다 메모리가 데이터 처리 속도가 빠른데 RDBMS는 대부분 디스크에 데이터를 저장하고 레디스는 메모리(RAM)에 데이터를 저장합니다.Redis 주요 사용 사례캐싱, 세션관리, 메시지 큐, 실시간 채팅 및 메시징 등 내장된 기능이 많아서 사용하는 용도가 많습니다. 레디스 설명은 이 정도만 하고 레디스에서 제일 많이 사용되는 캐시 적용 및 레디스의 클러스터 구성에 대해서 설명하겠습니다.캐시, 캐싱이란?원본 저장소 보다 빠르게 가져올 수 있는 임시 데이터 저장소를 의미를 캐시라고 하고 임시 저장소에 접근해서 데이..
- Total
- Today
- Yesterday
- for
- Built-in Functions
- Python
- combinations
- find
- bool
- function
- If
- permutations
- isdigit
- Upper
- counter
- isalpha
- zip
- index
- Lambda
- Method
- Lower
- operators
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |