아래 글은 인프콘 2024에서 진행된 인프런 아키텍처 2024 ~ 2025 이라는 발표를 듣고 정리한 글입니다. 인프런의 CTO로 계시는 이동욱님께서 발표하신 인프런의 아키텍처 변화와 발전 방향에 대한 내용입니다. 1. 작년 아키텍처 리뷰와 현재 상황작년에는 MSA까지는 아니더라도 분산 환경으로의 전환을 목표로 했습니다. 각 목적 조직마다 레거시 시스템을 복제하여 가져가고, 이를 각 조직의 신규 시스템과 함께 점진적으로 개선하는 것이 계획이었습니다. 하지만 현실적으로는 일부 조직은 레거시가 조금씩 개선되었지만, 다른 조직은 레거시가 그대로 남아있고 신규 시스템의 코드가 아직 작은 상태로 유지되는 등 기술 스택 전환이 조직마다 불균형하게 진행되었습니다. 이런 상황에서 인프런은 현재 국제화를 진행하다 보니..
아래 글은 한국 스프링 사용자 모임(KSUG)에서 진행된 스프링 배치 스터디 내용을 정리한 게시글입니다.DEVOCEAN에 연재 중인 KIDO님의 글을 참고하여 실습한 내용을 기록했습니다. [SpringBatch 연재 04] FlatFileItemReader로 단순 파일 읽고, FlatFileItemWriter로 파일에 쓰기 devocean.sk.com 원본: [SpringBatch 연재 04] FlatFileItemReader로 단순 파일 읽고, FlatFileItemWriter로 파일에 쓰기 지난 시간에는 Chunk 모델에서 사용되는 ItemReader, ItemProcessor, ItemWriter의 개요를 살펴보았습니다. 이번에는 ItemReader와 ItemWriter의 구현체 중 하나인 Fl..
두 대의 노드로 구성된 홈 서버에 Kafka를 설치했더니 제한된 자원 때문에 서버가 그냥 다운되거나 Pod에 메모리 제한을 설정해도 OOMKilled 오류가 발생했습니다. 그래서 Pod가 아닌 컨테이너 자체의 메모리 할당을 조정하는 설정 방법을 찾게 되었습니다.이 글에서는 Kubernetes 환경에서 Helm을 사용하여 Bitnami Kafka를 설치하고, NFS 스토리지 설정을 통해 Volume을 설정하는 방법을 설명합니다.*Kafka는 Helm으로 쉽게 다운 가능한 Bitnami Kafka를 이용하였습니다. 1. 메모리 최적화 설정한정된 메모리 환경에서 Kafka의 안정성을 유지하려면 JVM의 힙 메모리를 적절하게 제한해야 합니다. 이를 위해 Bitnami Kafka Helm Chart의 kafka..
쿠버네티스를 좀 더 잘 사용하고 싶어 CKA 자격증 시험에 도전하게 되었습니다.먼저 결제부터 해두고, 시험까지 약 3주 정도 남은 상태에서 준비를 시작했습니다. 유명한 Udemy의 뭄샤드님 강의와 실습을 전부 진행해보고 싶었지만,시간이 부족하여 강의만 2배속으로 듣는 것으로 타협했습니다. 실습은 풀다가, 시간이 너무 많이 소요되어 더 이상 진행하지는 못했습니다. 대신, Lightening Lab과 Mock Exam을 여러 번 반복하여 문제들을 빠르게 풀 수 있도록 익숙해지도록 했습니다.문제를 풀 때는 공식 Docs를 참고하면서 진행했고, 모르는 부분은 다시 강의를 찾아보며 보충했습니다.문제 풀이에 대한 강의도 함께 들으면서 이해도를 높였습니다. 추가로, 시중에서 구할 수 있는 덤프 문제도 많이 풀어보았..
아래 글은 한국 스프링 사용자 모임(KSUG)에서 진행된 스프링 배치 스터디 내용을 정리한 게시글입니다.DEVOCEAN에 연재 중인 KIDO님의 글을 메인 교안으로 진행되는 스터디입니다. [메인 교안 바로 가기] 3회차는 SpringBatch ChunkModel과 TaskletModel을 주제로 스터디가 진행 되었습니다. 스터디 진행 전 교안을 공부하며 정리한 내용은 이곳에서 볼 수 있습니다. [3회차] SpringBatch ChunkModel과 TaskletModel아래 글은 한국 스프링 사용자 모임(KSUG)에서 진행된 스프링 배치 스터디 내용을 정리한 게시글입니다.DEVOCEAN에 연재 중인 KIDO님의 글을 참고하여 실습한 내용을 기록했습니다. [SpringBatch 연재yeseul-dev...
아래 글은 인프콘 2024에서 진행된 지속 성장 가능한 설계를 만들어가는 방법 이라는 발표를 정리한 글입니다. 토스페이먼츠의 김재민님께서 발표 해주셨습니다. 설계를 하지 않는 것이 설계를 잘하는 방법?설계보다 중요한 것은 '구현'이 핵심입니다.설계는 구현을 통해 완성되는 것이고, 완벽한 설계란 애초에 불가능합니다. 개념과 격벽을 통한 유연한 설계소프트웨어 개발에서 중요한 두 가지 개념, 개념과 격벽개념: 소프트웨어를 만들 때 떠오르는 다양한 요소들, 예를 들어 웹툰 서비스에서는 작가, 작품, 결제 등의 개념이 있을 수 있다. 이 개념들을 그룹화하고 그 관계를 잘 설정하는 것이 설계의 핵심.격벽: 개념 간에 무분별한 참조를 막고, 통제된 방식으로만 상호작용할 수 있게 하는 일종의 ‘벽’이다. 격벽을 잘 세..
아래 글은 한국 스프링 사용자 모임(KSUG)에서 진행된 스프링 배치 스터디 내용을 정리한 게시글입니다.DEVOCEAN에 연재 중인 KIDO님의 글을 참고하여 실습한 내용을 기록했습니다. [SpringBatch 연재 03] SpringBatch ChunkModel과 TaskletModel devocean.sk.com원본: [SpringBatch 연재 03] SpringBatch ChunkModel과 TaskletModel Spring Batch의 Chunk Model과 Tasklet Model에 대해서 알아봅니다. Chunk Model Chunk Model의 동작 순서는 2회차에서 진행되었던 내용에서도 볼 수 있듯이 청크 단위에 따라 ItemReader, ItemProcessor, ItemWriter ..
아래 글은 한국 스프링 사용자 모임(KSUG)에서 진행된 스프링 배치 스터디 내용을 정리한 게시글입니다.DEVOCEAN에 연재 중인 KIDO님의 글을 메인 교안으로 진행되는 스터디입니다. [메인 교안 바로 가기]2회차 공부하며 정리한 내용 바로가기: https://yeseul-dev.tistory.com/42 오늘은 Spring Batch 스터디 2회차가 있었습니다. 이번 스터디에서는 배치 처리의 기본 흐름과 핵심 개념들에 대해 다뤘습니다.Spring Batch를 처음 접할 때 놓치기 쉬운 부분들을 함께 논의하면서 더 명확히 이해할 수 있었습니다. 1. Spring Boot Application 시작 흐름스프링 부트 애플리케이션은 @SpringBootApplication 어노테이션으로 시작됩니다.Spri..