반응형

스터디 68

[스프링 퀵스타트] Day2 - chapter1. 스프링 AOP (v2024)

스프링 프레임워크는 AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)를 통해 공통적인 관심사(Cross-Cutting Concerns)를 분리하여 코드의 응집도를 높이고, 결합도를 낮춥니다. 이번 포스팅에서는 스프링 AOP의 개념과 XML을 활용한 설정 방법에 대해 정리하겠습니다.1. AOP의 개념과 필요성낮은 결합도 = IoC (Inversion of Control)객체 간의 의존성을 스프링 컨테이너가 관리함으로써 결합도를 낮추고 유연한 구조를 제공합니다.높은 응집도 = AOP공통적으로 반복되는 로직(예: 로깅, 예외 처리, 트랜잭션 관리 등)을 핵심 로직과 분리하여 코드의 응집도를 높입니다.관심사 분리 (Separation of Concerns)핵심 비즈니스 로직과 부..

[스프링 퀵스타트] Day1 - chapter5. 어노테이션 기반 설정 (v2024)

1. 컴포넌트 스캔과 애노테이션 설정스프링은 @Component와 이를 확장한 여러 애노테이션을 통해 빈을 스캔하고 등록합니다. 이를 위해 을 설정하거나 @ComponentScan 애노테이션을 활용합니다.@Component스프링 컨테이너가 자동으로 관리해야 하는 클래스를 정의할 때 사용합니다.@Service서비스 레이어를 나타내는 애노테이션으로, 비즈니스 로직이 구현된 클래스에 사용됩니다.@Repository데이터 엑세스 레이어를 나타내며, DAO 클래스에 사용합니다.@Controller프레젠테이션 레이어를 나타내며, 웹 요청을 처리하는 클래스에 사용합니다.이러한 애노테이션을 통해 클래스의 역할을 명확히 하여 컨테이너가 자동으로 빈을 관리하도록 합니다.2. 의존성 주입 (Dependency Injecti..

[쿠버네티스 인 액션] 7장. 컨피그맵과 시크릿 - 컨피그맵, 시크릿 + 참고영상

7.4 컨피그맵으로 설정 분리 - kubectl create configmap 명령어 사용 kubectl create configmap fortune-config --from-literal=sleep-interval=25  kubectl get configmap fortune-config -o yaml...apiVersion: v1data: sleep-interval: "25"kind: ConfigMapmetadata: creationTimestamp: "2024-10-01T14:04:20Z" name: fortune-config namespace: default resourceVersion: "1459822" uid: 9ebe8eea-8264-44a6-bb7c-9d804670abc9 ... ..

[쿠버네티스 인 액션] 7장. 컨피그맵과 시크릿 - 컨테이너에 명령어 인수 전달, 각 컨테이너에 사용자 정의 환경변수 지정

7.1 컨테이너화된 애플리케이션 설정 - 일반적으로 명령줄 인수로 설정 넘겨주는 것으로 시작해서 옵션 목록이 커지면 파일에 저장하고 사용한다. - 컨테이너화된 애플리케이션에서는 설정을 애플리케이션에 전달할 때 환경변수를 사용한다. 왜 그럴까 ?> 만약 파일에 저장할 경우, 설정 파일을 컨테이너 이미지 안에 포함하거나 파일이 포함돼 있는 볼륨울 컨테이너에 마운트 해야해서 어렵다.> 또, 파일을 이미지 안에 넣고 빌드하는 것은 애플리케이션 소스코드에 설정 파일을 넣고 하드코딩하는 것과 동일하다. - 다른 방법으로는 최상위 레벨의 쿠버네티스 리소스에 저장하고 이를 기타 다른 깃 저장소 혹은 다른 파일 기반 스토리지에 저장하고 사용.  ▶ 정리하면, 다음 3가지 방법이 있다. 1) 컨테이너에 명령줄 인수 전달 ..

[스프링 퀵스타트] Day1 - chapter4. 의존성 주입 (v2024)

Inversion of Control (IoC) in Spring FrameworkInversion of Control (IoC) is a fundamental principle in the Spring Framework. It states that the container automatically manages the creation and dependencies of objects. This allows for more modular, testable, and maintainable code. Let's break down the key concepts illustrated in the image for a detailed blog post.핵심 개념: 제어의 역전 (Inversion of Contr..

[쿠버네티스 인 액션] 6장.볼륨 - 퍼시스턴트볼륨과 퍼시스턴트볼륨클레임 +참고영상

이상적으로 쿠버네티스에 애플리케이션을 배포하는 개발자는 기저에 어떤 종류의 스토리지 기술이 사용되는지 알 필요가 없어야 하고, 동일한 방식으로 파드를 실행하기 위해 어떤 유형의 물리 서버가 사용되는지 알 필요가 없어야 한다.  6.5 퍼시스턴트볼륨과 퍼시스턴트볼륨클레임 소개 - 퍼시스턴트볼륨 PV PersistentVolume- 퍼시스턴트볼륨클레임 PVC PersistentVolumeClaim - 개발자가 파드에 기술적인 세부사항을 기재한 볼륨을 추가하는 대신 클러스터 관리자가 기반 스토리지를 설정하고 쿠버네티스 API 서버로 퍼시스턴트볼륨 리소스 생성해 쿠버네티스에 등록한다.- 퍼시스턴트볼륨이 생성되면 관리자는 크기와 지원 가능한 접근모드를 지정한다.   IT 용어에서 "볼륨(Volume)"과 "클레임..

[쿠버네티스 인 액션] 6장.볼륨

6.1 불륨 소개 - 쿠버네티스 볼륨은 파드의 구성 요소로 컨테이너와 동일하게 파드 스펙에서 정의. ㄴ 독립적인 쿠버네티스 오브젝트가 아니므로 자체적으로 생성, 삭제될 수 없음  - 첫 번째 파드에는 publicHTML 이라는 볼륨이 있어서 이 볼륨은 WebServer 컨테이너의 /var/htdocs에 마운트되어 웹 서버에서 서비스 - 두번째 파드에서는 첫 번째 파드의 동일 볼륨이 ContentAgent 컨테이너에 /var/html의 다른 경로에 마운트돼 있고, ContentAgent는 해당 경로에 작성하고 이 내용을 웹 서버가 서비스 - 세번째 파드는 로그를 작성하는 lovVo1 볼륨을 가지고, 이 볼륨은 WebServer와 LogRotator z컨테이너의 /var/logs 에 마운트  - 사용 가능한..

[스프링 퀵스타트] Day1 - chapter3. 스프링 컨테이너 및 설정 (v2024)

스프링 컨테이너는 애플리케이션의 객체들을 관리하고 의존성을 주입해주는 핵심 역할을 합니다. 스프링 컨테이너의 종류와 XML 설정 방식을 중심으로 설명해보겠습니다.1. 스프링 컨테이너 구동 방식스프링 컨테이너는 스프링 애플리케이션에서 객체를 생성, 관리하며, 다양한 구동 방식을 제공합니다.BeanFactory: 스프링의 가장 기본적인 컨테이너로, 빈의 생성을 지연(lazy-loading)하여 애플리케이션의 시작 시간을 줄일 수 있습니다.ApplicationContext: BeanFactory의 확장판으로 더 많은 기능을 제공합니다. 예를 들면, 이벤트 전달, 메시지 리소스 처리 등이 있습니다. ApplicationContext는 두 가지 주요 구현체를 가집니다.GenericXmlApplicationCont..

[쿠버네티스 인 액션] 5장.서비스 - 레디니스 프로브, 헤드리스 서비스, 서비스 해결

5.6 레디니스 프로브 - 주기적으로 호출되며 특정 파드가 클라이언트 요청을 수신할 수 있는지를 결정한다. - 컨테이너의 레디니스 프로브가 성공을 반환하면 컨테이너가 요청을 수락할 준비가 됐다는 신호다. - 3가지 유형의 레디니스 프로브가 있다. 1) exec 프로브는 컨테이너의 상태를 프로세스의 종료 상태로 결정 2) get 프로브는 get 요청을 컨테이너로 보내고 결정 3) tcp 소켓 프로브는 지정된 포트로 tcp 연결 후 연결되면 준비된 것으로 간주  kubernetes-in-action/Chapter05/kubia-rc-readinessprobe.yaml at master · luksa/kubernetes-in-action (github.com) kubernetes-in-action/Chapte..

[쿠버네티스 인 액션] 5장.서비스 - 서비스 앤드포인트, 외부 클라이언트 연결 (노드포트, 로드밸러스, 인그레스)

5.5 서비스 엔드포인트 1) 서비스 엔드포인트란 - 서비스는 파드에 직접 연결되지 않는다. - 대신 앤드포인트 리소스가 그 사이에 있다.  2) externalname 서비스 생성 서비스의 엔드포인트를 수동으로 구성해 외부 서비스를 노출하는 대신 FQDN으로 외부 서비스를 참조할 수 있다. kubernetes-in-action/Chapter05/external-service-externalname.yaml at master · luksa/kubernetes-in-action (github.com)apiVersion: v1kind: Servicemetadata: name: external-servicespec: type: ExternalName externalName: api.somecompany...

반응형