Jinsu's Technical Blog
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기 (250)
      • Java (18)
      • Spring Framework (33)
        • Toby's Spring 3.1 (6)
        • Spring IoC (6)
        • TDD (6)
        • Reflection (6)
        • AOP (6)
      • Spring Boot (11)
      • Spring Security (22)
      • Database (17)
        • Mysql (2)
        • JDBC (2)
        • JPA (13)
      • Build and Development Tools (3)
        • Maven (1)
        • Gradle (1)
        • Lombok (1)
      • Network (12)
      • Apache Tomcat (11)
      • Microservices Architecture (33)
      • Linux (9)
      • React (10)
      • Docker (22)
      • OAuth (10)
      • DevOps (2)
      • Git (2)
      • HTML (1)
      • CSS (1)
      • JavaScript (1)
      • Problem and Solution Guide (8)
        • Java (1)
        • Spring Framework (4)
        • Reflection (1)
        • Dynamic Proxy (1)
        • JPA (1)
      • Note-Taking (23)
  • 홈
  • 태그
  • 방명록
Microservices Architecture

12 팩터 앱(12 Factor App)

✅ 12 팩터 앱(12 Factor App)은 클라우드 환경에서 실행되는 현대적인 애플리케이션을 설계하고 배포하기 위한 방법론입니다. Heroku의 개발자들이 정의했으며, 애플리케이션을 유지보수하기 쉽고 확장 가능하게 만드는 12가지 원칙을 제공합니다. 📌 12 Factor App의 개요목적: 클라우드 네이티브 애플리케이션의 유연성, 확장성, 이식성을 극대화 대상: 마이크로서비스 아키텍처 및 컨테이너 기반 배포에 적합 핵심 가치: 독립적인 구성, 무상태성, 포터블(이식 가능)한 코드베이스 1️⃣ 코드베이스(Codebase)"코드베이스는 단일 저장소이며 여러 환경에 배포된다."하나의 코드베이스를 사용하고, 각 배포는 코드베이스의 스냅샷입니다. 버전 관리 시스템(예: Git)으로 관리하며, 여러 ..

2024. 12. 10. 09:54
Microservices Architecture

스프링 클라우드 패턴

1️⃣ 개발 패턴 (Development Patterns)마이크로서비스 개발 시 설정 관리, 서비스 발견, 통신과 같은 개발의 핵심 요소를 처리합니다.📌 주요 패턴분산 설정 관리 패턴 도구: Spring Cloud Config 목적: 설정 파일을 중앙화된 서버에서 관리해 모든 마이크로서비스가 공유합니다. 예시:spring: cloud: config: uri: http://localhost:8888서비스 디스커버리 패턴 도구: Eureka, Consul 목적: 서비스 간 동적 연결 및 위치 검색을 지원합니다. 예시:eureka: client: service-url: defaultZone: http://localhost:8761/eureka/서비스 간 통신 패턴 ..

2024. 12. 10. 09:15
Docker

Docker in Action Chapter 8

8장: Dockerfile을 통한 이미지 자동 빌드이 장에서는 Docker 이미지를 자동으로 빌드하기 위한 표준 도구인 Dockerfile을 다룹니다. 앞서 7장까지는 이미지를 수동으로 생성하는 과정을 경험하면서, 이미지와 레이어, 메타데이터의 개념을 익혔습니다. 이제는 수동 단계를 자동화하고, 코드로 관리할 수 있는 Dockerfile을 통해 더 쉽게, 더 일관성 있게, 그리고 더 유지 보수 가능하게 이미지를 빌드하는 방법을 배우게 됩니다.Dockerfile 빌드의 기본 개념Dockerfile은 텍스트 기반의 스크립트 파일로, 이미지를 빌드하기 위해 수행해야 할 커맨드와 설정을 단계별로 정의합니다. 빌더는 Dockerfile에 적힌 명령을 위에서부터 아래로 순서대로 실행하며, 각 명령은 새로운 레이어를..

2024. 12. 9. 16:51
Docker

Docker in Action Chapter 7

7장: Packaging Software in Images (이미지로 소프트웨어 패키징하기)이 장에서는 컨테이너 이미지의 빌드 과정을 수동으로 경험하고, 이미지와 레이어의 상호작용, 그리고 이미지 설계 시 고려할 점들을 다룹니다. 또한 간단한 "Hello, World" 예제에서 시작하여 실제 소프트웨어(Git)를 설치해보며, 컨테이너 파일 시스템을 변경하고 그 결과를 새로운 이미지로 커밋하는 과정을 체계적으로 이해할 수 있습니다.핵심 목표: 컨테이너 내부에서 소프트웨어를 설치하거나 변경하고, 이를 커밋(commit)하여 새로운 이미지를 빌드하는 실습 과정을 통해 이미지를 수동 생성하는 워크플로를 익힙니다. 이미지 레이어, 파일 시스템 변화, 그리고 이미지 크기 관리 문제를 심층적으로 이해하고, 더 나..

2024. 12. 9. 16:49
Docker

Docker in Action Chapter 6

6장: Limiting risk with resource controls (자원 제어를 통한 위험 제한)이전 장들에서 네임스페이스와 가상화된 리소스를 이용해 애플리케이션을 격리하는 방법을 배웠다면, 이번 장에서는 시스템 자원을 좀 더 구체적으로 제어하는 방법에 초점을 둡니다. 컨테이너에서 CPU, 메모리 등 자원 할당량을 조정하고, 사용자 권한(UID/GID)과 특수 권한(capabilities), SELinux/AppArmor 보안 정책 등을 통해 실행 환경을 강화할 수 있습니다. 이를 통해 실패나 공격 발생 시 영향을 최소화하고, 컨테이너가 호스트와 다른 컨테이너에 미치는 위험을 줄일 수 있습니다.자원 할당량 설정 (Resource Controls)메모리 제한(-m 또는 --memory): 컨테이너가..

2024. 12. 9. 16:46
Docker

Docker in Action Chapter 5

5장: Single-host networking (단일 호스트 네트워킹)이전 장에서 우리는 컨테이너의 실행 환경, 스토리지 관리 등을 다루었다면, 이번 장에서는 컨테이너 네트워킹에 집중합니다. 대부분의 애플리케이션은 네트워크를 통해 통신하므로, 컨테이너화된 애플리케이션의 네트워크 접근 방식, 서비스 노출, 컨테이너 간 통신을 이해하는 것은 매우 중요합니다.기본 개념: 프로토콜, 인터페이스, 포트프로토콜(Protocol): 소프트웨어 간 통신을 위한 “언어”입니다. 예: HTTP, TCP, UDP 등네트워크 인터페이스(Interface): IP 주소를 갖는 네트워크 장치. 로컬호스트(lo), 이더넷(eth0) 등이 있으며, 각 인터페이스는 특정 네트워크 위치를 의미합니다.포트(Port): 인터페이스 위에서..

2024. 12. 9. 16:29
Docker

Docker in Action Chapter 4

4장: Working with storage and volumes (스토리지와 볼륨 다루기)이전 장들에서는 주로 이미지를 통한 소프트웨어 실행에 집중했다면, 이번 장에서는 컨테이너 실행 시 발생하는 데이터 관리 문제에 집중합니다. 실제 운영 환경에서는 애플리케이션이 로그, 설정 파일, 업로드된 콘텐츠, 데이터베이스 데이터 등 다양한 형태의 동적 데이터를 다룹니다. Docker를 사용하면 이 데이터를 컨테이너 수명과 독립적으로 관리할 수 있으며, 이는 유연하고 재사용 가능한 시스템 설계에 매우 중요합니다.주요 개념 정리마운트 포인트(Mount Point):리눅스 시스템에서는 여러 디스크나 저장 장치를 하나의 파일 트리 구조로 통합합니다. 마운트 포인트는 특정 디렉토리를 특정 저장 장치(디스크 파티션, 네트..

2024. 12. 9. 16:28
Docker

Docker in Action Chapter 3

3장: Software installation simplified (소프트웨어 설치 단순화)이 장에서는 Docker를 사용하여 소프트웨어를 식별하고, 찾고, 설치하는 과정을 단계별로 살펴봅니다. 또한 파일 시스템 격리와 레이어 개념을 통해 이미지 내부 구조를 이해하고, 실제 설치 과정에서 중요한 최선의 방법들을 익힙니다.소프트웨어 설치 과정의 3단계소프트웨어 식별:어떤 프로그램을 설치할지 이름, 버전, 출처(리포지토리 및 태그)를 정확히 지정해야 합니다. Docker는 소프트웨어를 ‘이미지’ 단위로 다루며, 이미지는 특정 레지스트리 내의 리포지토리와 태그를 통해 식별됩니다.리포지토리 찾기 및 이미지 설치:Docker Hub(기본 레지스트리)나 다른 레지스트리를 통해 이미지를 검색하고 pull 명령어로 ..

2024. 12. 9. 16:26
Docker

Docker in Action Chapter 2

2장: 컨테이너로 소프트웨어 실행하기(Running software in containers)이 장에서는 실제 컨테이너 환경에서 소프트웨어를 실행하고 관리하는 기초를 다룹니다. 컨테이너 안에 다양한 애플리케이션(웹 서버, 모니터링 프로그램, 메일러 등)을 넣어 실행하며, 컨테이너 상태 확인, 로그 조회, 정리, 환경 변수 주입, 재시작 정책 설정 등 중요한 Docker 운영 기법을 살펴봅니다.컨테이너 실행과 프로세스 격리프로세스 격리의 중요성:리눅스 컨테이너 기술은 프로세스, 파일 시스템, 네트워크 등을 네임스페이스로 격리하여, 하나의 호스트에서 서로 다른 애플리케이션이 독립적으로 실행되도록 합니다. 이를 통해 소프트웨어 간 충돌을 방지하고 보안·관리 측면에서 이점을 얻을 수 있습니다.PID 네임스페이스..

2024. 12. 9. 16:25
Docker

Docker in Action Chapter 1

1장: Docker에 오신 것을 환영합니다(Welcome to Docker)이 장에서는 Docker의 기본 개념, 컨테이너가 무엇이며 왜 중요한지, 컨테이너와 기존 가상화 기술의 차이점, 그리고 Docker가 소프트웨어 설치·배포·실행 문제를 어떻게 해결하는지를 소개합니다. 또한 "Hello, World" 예제를 통해 Docker를 실제로 어떻게 사용하는지 체험하고, Docker 사용 시 유용한 도구와 생태계에 대해 간략히 다룹니다.리눅스 컨테이너 기본 개념컨테이너란?리눅스 커널 기능(네임스페이스, cgroups)을 활용하여 프로세스 격리와 자원 관리를 제공하는 운영체제 수준 가상화 기술.각 컨테이너는 독립적인 파일 시스템, 네트워크 스택, 프로세스 공간을 가지며, 호스트 커널을 공유한다.컨테이너의 특징..

2024. 12. 9. 16:24
Microservices Architecture

Resilience4j

Resilience4j는 마이크로서비스 아키텍처에서 자주 발생하는 장애에 대한 복원력(resilience)을 제공하기 위한 경량화 라이브러리입니다. Java 8+ 기반으로 개발되었으며, 특히 함수형 프로그래밍의 개념을 활용하고 있습니다.Resilience4j는 Netflix Hystrix의 대안으로 주목받고 있으며, Spring Boot와의 통합이 용이한 것이 특징입니다. Circuit Breaker 패턴을 포함해 다양한 탄력성 패턴을 제공하여 시스템의 신뢰성과 가용성을 높이는 데 도움을 줍니다.주요 기능들 🔍Circuit Breaker (서킷 브레이커)실패율이 높을 때 특정 기능 호출을 차단하여 시스템 전체 장애를 방지하는 패턴입니다.상태 관리: CLOSED → OPEN → HALF-OPEN실패율이나..

2024. 12. 9. 14:20
Microservices Architecture

온프레미스(On-Premise)

온프레미스(On-Premise)란 무엇인가?온프레미스(On-Premise)는 기업이나 조직이 자체적으로 데이터센터를 구축하고 IT 인프라(서버, 스토리지, 네트워크)를 보유하며 운영하는 방식을 의미합니다. 클라우드와 대비되는 개념으로, 온프레미스 환경에서는 하드웨어, 소프트웨어, 네트워크가 모두 조직 내에서 관리되며, 물리적 서버가 특정 장소(예: 기업의 데이터센터)에 설치됩니다.온프레미스는 데이터 보안, 커스터마이징, 규제 준수 등의 이유로 여전히 많은 기업과 조직에서 채택되고 있는 IT 인프라 운영 방식입니다.온프레미스의 주요 특징물리적 인프라의 소유 및 관리 조직이 서버, 스토리지, 네트워크 장비 등을 구매하고 직접 설치 및 유지보수합니다. 모든 데이터와 시스템은 내부 데이터센터에 위치합니다.보..

2024. 12. 9. 11:43
Microservices Architecture

프로비저닝(Provisioning)

프로비저닝(Provisioning)이란?프로비저닝(Provisioning)이란 IT 인프라에서 특정 리소스(서버, 네트워크, 스토리지, 소프트웨어 등)를 준비하고 설정하여 사용할 수 있는 상태로 만드는 과정 또는 기술을 의미합니다. 이를 통해 시스템, 서비스, 애플리케이션 등이 원활하게 동작할 수 있도록 리소스를 자동으로 할당, 배포, 설정할 수 있습니다.프로비저닝의 개념프로비저닝은 단순히 하드웨어나 소프트웨어를 설치하는 것뿐만 아니라, 리소스를 최적화하고 자동화하는 과정입니다. 오늘날 클라우드와 가상화 환경이 확산되면서 프로비저닝은 더욱 중요해졌으며, 자동화된 프로비저닝이 대세가 되었습니다.프로비저닝의 주요 유형서버 프로비저닝(Server Provisioning) 서버를 물리적 또는 가상 머신(VM)..

2024. 12. 9. 11:38
Microservices Architecture

클라우드 네이티브(Cloud Native)

클라우드 네이티브(Cloud Native)란 무엇인가?클라우드 네이티브(Cloud Native)란 클라우드 컴퓨팅 환경에 최적화된 애플리케이션 개발 및 운영 방법론을 의미합니다. 클라우드 네이티브는 클라우드의 유연성과 확장성을 극대화하기 위해 마이크로서비스 아키텍처, 컨테이너화, DevOps, 자동화된 배포, 오케스트레이션 등을 기반으로 애플리케이션을 설계하고 배포하는 접근 방식입니다.클라우드 네이티브는 단순히 클라우드 환경에서 실행하는 것에 그치지 않고, 탄력적이고, 자동화되며, 분산된 시스템을 구축하여 빠르게 변화하는 비즈니스 요구에 신속하게 대응하는 것을 목표로 합니다.클라우드 네이티브의 핵심 원칙마이크로서비스 아키텍처(Microservices Architecture) 애플리케이션을 독립적으로 배..

2024. 12. 9. 11:23
Microservices Architecture

마이크로서비스 아키텍처 요소

서비스 디스커버리(Service Discovery)개념 및 필요성:마이크로서비스 환경에서는 서비스 인스턴스가 동적으로 늘어나거나 줄어들고, 컨테이너나 VM 재시작 시 IP나 포트가 변경될 수 있습니다. 전통적인 정적 설정(IP, DNS)으로는 유연한 대응이 어렵습니다. 서비스 디스커버리는 이런 동적 변화를 중앙 레지스트리에 반영하고, 다른 서비스가 특정 서비스의 "논리적 이름"만 알고 있으면 동적으로 실제 IP/포트를 얻어올 수 있게 합니다.기술 요소: Eureka(Netflix OSS), Consul(HashiCorp), Zookeeper(Apache) 등이 대표적입니다. 각 서비스는 시작 시 자신을 디스커버리 서버에 등록(Register)하고, 주기적으로 Heartbeat를 전송하거나 TTL 기반..

2024. 12. 9. 10:44
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • ···
  • 17
  • »

공지사항

  • Jinsu's GitHub

전체 카테고리

  • 분류 전체보기 250
    • Java 18
    • Spring Framework 33
      • Toby's Spring 3.1 6
      • Spring IoC 6
      • TDD 6
      • Reflection 6
      • AOP 6
    • Spring Boot 11
    • Spring Security 22
    • Database 17
      • Mysql 2
      • JDBC 2
      • JPA 13
    • Build and Development Tools 3
      • Maven 1
      • Gradle 1
      • Lombok 1
    • Network 12
    • Apache Tomcat 11
    • Microservices Architecture 33
    • Linux 9
    • React 10
    • Docker 22
    • OAuth 10
    • DevOps 2
    • Git 2
    • HTML 1
    • CSS 1
    • JavaScript 1
    • Problem and Solution Guide 8
      • Java 1
      • Spring Framework 4
      • Reflection 1
      • Dynamic Proxy 1
      • JPA 1
    • Note-Taking 23

블로그 인기글

전체 방문자

오늘
어제
전체
Powered by Privatenote Copyright © Jinsu's Technical Blog All rights reserved. TistoryWhaleSkin3.4

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.