전체 글189 [Infra] Minikube를 활용하여 Kubernetes 핵심 개념을 익혀보자 오늘은 Minikube를 활용하여, Kubernetes 핵심 개념에 대해서 알아보겠습니다. 이를 위해 오늘은 먼저 간단하게 로컬 환경을 구축해보겠습니다. Mac을 기준으로 설명합니다.Minikube란Minikube는 로컬 환경에서 Kubernetes 클러스터를 쉽게 실행할 수 있도록 도와주는 도구입니다. 주로 개발자들이 로컬 머신에서 Kubernetes를 학습하거나 개발용으로 테스트할 때 사용됩니다. Minikube는 가상 머신(VM)이나 컨테이너를 사용하여 Kubernetes 클러스터를 실행하며, Kubernetes 클러스터의 주요 구성 요소인 API 서버, Controller Manager, Scheduler 등도 포함하여 실제 Kubernetes 환경과 유사한 환경을 제공합니다.명령형 구성먼저 아래.. Infra 2025. 3. 25. [Infra] Docker와 Kubernetes란 무엇인가? 개요등장 배경전통적인 배포 시대초기 조직은 애플리케이션을 물리 서버에서 실행했었다. 한 물리 서버에서 여러 애플리케이션의 리소스 한계를 정의할 방법이 없었기에, 리소스 할당의 문제가 발생했다.예를 들어 물리 서버 하나에서 여러 애플리케이션을 실행하면, 리소스 전부를 차지하는 애플리케이션 인스턴스가 있을 수 있고, 결과적으로 다른 애플리케이션의 성능이 저하될 수 있었다. 이에 대한 해결책은 물리적인 서버를 여러 개 두는 것이지만, 각 리소스가 충분히 활용되지 않는다는 점에서 확장 가능하지 않았으므로, 물리 서버를 유지하는 데 많은 비용이 소모되었다.가상화된 배포 시대가상화 기술의 등장 → 단일 물리 서버의 CPU에서 여러 가상 시스템을 실행 가능해졌다. 가상화를 사용하면 VM 간에 애플리케이션을 격리하고 .. Infra 2025. 3. 24. FastAPI 로 간단하게 로컬 서버 띄우기 서론오늘은 FastAPI 로 간단하게 로컬 서버 띄우는 방법에 대해서 알아보도록 하자. 기본적으로 python(Python 3.13.2 기준으로 작성됨)이 설치된 것을 가정하고 진행하겠다.FastAPI 간단 소개Python 서버 개발 프레임워크에는 대표적으로 FastAPi, Django, Flask가 있다. 오늘은 이 중에서도 FastAPI에 대해서 알아보겠다. FastAPi란 Python 기반의 초고속 비동기 웹 프레임워크. Starlette와 Pydantic 기반으로 만들어졌으며, 비동기 API와 자동 문서화(Swagger)를 강력하게 지원한다. Python 싱글스레드 한계를 이벤트루프 + 비동기로 극복해서 동시성 높인 게 FastAPI와 같은 최신 프레임워크의 특징이다. 참고로 Python 서버는 .. Framework 2025. 3. 15. 7가지 핵심 질문으로 알아보는 개발자를 위한 Redis 활용법 서론위 글은 최근 읽었던 개발자를 위한 Redis란 책을 요약 겸 복습하기 위해 정리한 글입니다. 핵심요약1. Redis란 무엇이고 어떤 원리로 동작할까?Redis란 무엇이며, 왜 사용하는가?Redis는 어떤 데이터 구조를 지원하는가?Redis의 주요 사용 사례는 무엇인가?2. Redis는 NoSQL인가? 그렇다면 어떤 데이터 구조를 제공하는가?String, List, Set, Sorted Set, Hash 등의 데이터 타입별 특징과 사용 예시는?Bitmaps, HyperLogLog, Streams 등 고급 데이터 타입은 언제 사용하면 좋은가?TTL(Time to Live) 및 Expire 기능을 어떻게 활용할 수 있는가?3. Redis를 캐시, 세션스토어, 메세지 브로커로 쓸 때 알아야 할 것들캐시(C.. DB 2025. 3. 14. 11가지 핵심 질문으로 알아보는 개발자를 위한 MySQL 서론위 글은 최근 읽었던 개발자를 위한 Redis란 책을 요약 겸 복습하기 위해 정리한 글입니다. 참고로 최신 버전인 8.0 버전이 아닌, 5.7 버전 기준으로 작성되었음을 말씀 드립니다.핵심요약MySQL 기본 개념관계형 데이터베이스(RDBMS)란 무엇이며, MySQL은 어떤 특징을 가지는가?MySQL과 다른 RDBMS(예: PostgreSQL, Oracle)와의 차이점은 무엇인가?MySQL의 주요 데이터 타입(정수, 문자열, 날짜 등)은 어떤 것들이 있고, 언제 어떤 타입을 선택해야 하는가?MySQL의 기본적인 SQL 문법(SELECT, INSERT, UPDATE, DELETE)은 어떻게 동작하는가?인덱스(Index)와 성능 최적화인덱스란 무엇이며, 어떤 원리로 데이터 조회 성능을 향상시키는가?B-Tr.. DB 2025. 3. 7. 14가지 핵심 질문으로 알아보는 마이크로서비스 아키텍처 구축하기 서론위 글은 작년에 읽었던 MSA 아키텍처 구축하기 책을 요약 겸 복습하기 위해 정리한 글입니다. MSA 아키텍처에 대해서 이미 알고 있다는 가정 하에, 글을 작성합니다. MSA 아키텍처가 처음이신 분은 해당 글을 참고해주세요.핵심요약마이크로 서비스를 하는 이유는 뭘까?마이크로서비스 간 경계를 구분하는 적합한 기준은 무엇일까?마이크로서비스 모델링 방법정보 은닉결합응집력도메인 주도 설계전환을 결정했다면, 어떻게 MSA로 전환하는 것이 좋을까?마이크로서비스 통신 방식비동기 호출과 동기 호출이벤트 기반의 협업 방식공통 데이터 방식마이크로서비스의 통신을 구현하는 방법은 무엇일까?마이크로서비스에서 버전 관리를 어떻게 처리해야 할까?분산 트랜잭션은 어떻게 보장할까?마이크로서비스는 어떻게 배포할까?마이크로서비스 테스.. 기타 2025. 2. 22. 1분강의 TechSpec 요약 (Summary)월급쟁이부자들에서 제작된 웰메이드 재테크 영상 컨텐츠들을 통해, 사용자들에게 재테크 정보를 전달합니다. 이 프로젝트는 사용자들이 서로 소통할 수 있도록 영상 컨텐츠에 대한 댓글과 좋아요 기능을 개발하는 것을 목표로 합니다. 관리자는 영상을 업로드하고, 사용자는 댓글을 달며, 좋아요 기능을 활용할 수 있습니다. 커뮤니티 기능을 강화하여 사용자 참여를 증대하려 합니다.배경 (Background)기존 커뮤니티 기능이 부족해 사용자가 단순히 조회 밖에 하지 못하는 문제가 있었습니다. 사용자들은 의견을 나누고, 토론할 수 있는 공간이 존재할 때, 더 오래 플랫폼에 체류하고 더 자주 방문할 것으로 예상합니다. 경쟁 커뮤니티 사이트들은 이러한 기능을 통해 높은 사용자 활동성을 보이고 있어 시장에.. 기타 2025. 2. 19. 간단하게 실습하며 배우는 Kubernetes와 Terraform (1) 로컬 Kubernetes 클러스터에 웹 서버 배포 자동화하기 서론오늘 로컬 환경에서 Kubernetes 및 Terraform에 대해 간단하게 실습하며, 적용해보겠습니다.참고로 설명은 Mac OS (M1 2020) 환경에 맞춰져 있습니다. Homebrew가 설치되어 있다는 가정 하에 실습이 진행됩니다.또한 Kubernetes 클러스터를 로컬에서 실행하기 위해, Docker가 로컬 환경에 설치된 상태여야 합니다.목표 이번 목표는 로컬 환경에서 Kubernetes 클러스터 위에 웹 서버 배포를 Terraform으로 자동화하는 것 입니다. 1단계 : 실습 환경 구축간단하게 Mac에서 brew를 이용하여, Kubernetes와 Terraform을 사용할 수 있는 환경을 구축해보겠습니다.brew install kubectl kubernetes-cli helm kind ter.. Infra 2025. 2. 8. [Batch] 배치 애플리케이션의 이해와 Spring Batch 기본 활용법 배치의 정의와 필요한 이유1. 배치의 정의배치(Batch)는 대량의 데이터를 정기적이고 반복적으로 처리하는 프로그램입니다. 주로 사용자가 없는 새벽 시간대에 실행되며, 대규모 데이터의 처리, 집계, 변환 등 비즈니스 로직을 실행하는 데 활용됩니다. 2. 배치 애플리케이션이 필요한 이유x2.1 WAS와 배치의 구분WAS (Web Application Server)는 사용자 요청을 실시간으로 처리하는 서버입니다.하지만 배치와 같이 대규모 데이터를 처리하거나 비즈니스 로직을 길게 실행해야 하는 작업은 WAS에서 실행하기 적합하지 않습니다.주요 이유는 다음과 같습니다:성능 문제: 실시간 요청을 처리하는 서버에서 대량 데이터 작업을 수행하면, 응답 속도가 느려져 사용자 경험이 저하됩니다.안정성 문제: 장시간 실행.. Framework/Spring 2025. 1. 19. [Index] 플랫폼 내 페이지네이션 방식에 대한 개선사항 제안 게시글 목록 개편2024년 4월, 월부 커뮤니티에서는 ‘잘 보여주기’를 위해, 더 많은 컨텐츠를 한 화면 안에서 보여주기 위해 썸네일을 제외하여 보여주는 방식으로 변경되었습니다. 기존에는 무한스크롤 방식으로 조회되던게, 페이지네이션 UI를 통한 검색으로 변경되었습니다. 이와 더불어, 마지막 페이지 조회가 가능하도록 변경되었습니다. 변경된 조회 방식으로 인해, 발생된 문제점과 단/장기 개선사항에 대해서 정리하여 보였습니다.현재 월부의 페이지네이션 방식 : LIMIT OFFSET현재 플랫폼의 페이지네이션 방식은 LIMIT OFFSET 방식을 사용하고 있습니다. 이 방식은 간단하고 구현이 쉬운 장점이 있지만, 대규모 데이터셋에서 성능 저하와 일관성 문제를 일으킬 수 있습니다.LIMIT OFFSET의 성능 저하.. DB/MySQL 2025. 1. 18. [Java] JVM의 동작 원리 (부제 : Java를 처음 공부하는 당신에게) Java의 탄생 배경Java는 1991년 썬 마이크로시스템즈(이하 썬)의 제임스 고슬링과 아서 밴 호프를 주축으로 한 엔지니어들이 플랫폼으로부터 독립적으로 실행 가능하도록 개발한 언어입니다. 참고로 여기서 플랫폼이란 운영체제와 CPU 아키텍처를 말합니다. 대표적으로 Windows, Linux, Mac 그리고 x86과 핸드폰에 주로 쓰이는 arm이 있습니다. 이해를 높이기 위해서, 잠시 91년도로 돌아가볼까요? 90년대 초는 C와 C++ 의 사용률이 높았던 시절입니다. 그들은 왜 당시 핫했던 C나 C++를 사용하지 않았을까요? 객체지향 프로그래밍을 하려면 C++로도 가능했지만, C++는 플랫폼에 따라 컴파일러에 차이가 있어 플랫폼 간 실행파일의 호환성이 보장되지 않았습니다. 이는 인터넷의 발전으로 다양한 .. Language/Java & Kotlin 2025. 1. 18. [CS] 프로그램, 프로세스, 쓰레드 서론오늘은 프로그램, 프로세스, 쓰레드의 차이점에 대해서 알아보도록 하겠습니다.본론프로그램과 프로세스의 차이프로그램이란 저장장치에 저장되어 있어 언제든지 실행 가능한 파일을 말합니다. 모든 프로그램은 운영체제가 실행되기 위한 메모리 공간을 할당해줘야 실행될 수 있는데, 프로그램은 아직 메모리에 올라가 있지는 않은 상태입니다.반면, 프로세스란 컴퓨터에서 실행되고 있는 컴퓨터 프로그램을 말합니다. 이는 프로그램과는 다르게, 메모리에 올라와 있는 상태입니다. 즉, 프로세스란 메모리에 올라와 있는 프로그램을 말합니다.프로세스와 쓰레드의 차이과거에는 프로그램을 실행할 때 실행 시작부터 실행 끝까지 프로세스 하나만을 사용해서 진행했다고 합니다. 그러나 프로그램이 더이상 하나의 작업 만을 수행하지 않게 되면서, 프로.. CS 2025. 1. 8. 이전 1 2 3 4 ··· 16 다음 반응형