MSA) Spring Cloud 기반의 MSA 구조에서 Swagger 통합하기 + FastAPI의 Swagger까지
·
SpringBoot
들어가며 저번 시간에 FastAPI 서버를 Spring Cloud Eureka에 Client로 등록하는 방법에 이어서,이번에는 각 서비스마다 Swagger를 설정하여 이를 한 곳에서 통합하여 볼 수 있게끔 적용하려고 합니다. MSA 구조에서 프로젝트를 진행하면, 각 마이크로서비스들이 각각의 애플리케이션에서 돌아가기 때문에모놀리식 구조와 다르게 API 문서들을 관리하는데 어려움이 존재합니다.  쉽게 설명해보자면 모놀리식 구조의 경우 하나의 애플리케이션으로 운영 되므로애플리케이션에 Swagger를 하나만 띄우면 되지만 MSA 구조는 서비스들이 독립적으로 분리되어있기 때문에 서비스마다 Swagger를 띄워줘야합니다.이러한 상황에서 Swagger를 통합해주지 않는다면,API를 받아쓰는 프론트 입장에서는 호출하고..
소프트웨어 마에스트로 15기 발대식
·
SW마에스트로
발대식6월부터 소프트웨어 마에스트로 본 과정이 시작되면서, 6월 3일 15기의 시작을 알리는 발대식 행사가 개최되었습니다.  발대식 행사는 양재역에서 가까운 큰 예식장에서 진행되었고    행사장 층에 도착하니 포토존이랑 인생 네 컷이 준비되어 있었습니다.심지어 폴라로이드도 찍을 수 있게 마련되어 있었는데 행사 시작하기 전에 팀원들이랑 쉴 새 없이 찍었습니다 ㅎㅎ    행사장 내부에 들어갔을 때 규모도 크고 예쁘게 꾸며놓아서 정말 놀랐습니다..앞에는 내빈분들이랑 전 기수 우수자분들을 위한 테이블이 따로 있었고각 테이블들은 팀원들끼리 앉을 수 있도록 비치되어 있었습니다. 얘기가 딴 데로 새지만저희 팀 이름은 WE LIKE 2 CODING입니다 ㅎㅎ 오류 해결하느라 밤늦게 노래들으면서 코딩을 하는데 빅뱅 - ..
MSA) Spring Cloud Eureka에 FastAPI 서버를 Client로 등록하기
·
SpringBoot
들어가며저희 팀이 계획한 기획에서 python을 활용하여 데이터 분석과 여러 데이터들을 가져와야할 것 같아MSA 구조의 팀 프로젝트를 수행하기 전에, 연습하고 해당 내용을 기록하고자 글을 작성했습니다.  Python 기반의 백엔드 프레임워크를 Flask를 쓸지 FastAPI를 쓸지는 정확히 확정이 되진 않았지만,Flask는 작은 프로젝트에서 다뤄본 경험이 있기도 하고 FastAPI가 좋다고들 하는데 사용해보지는 않아서배워볼겸 FastAPI로 진행하고자 합니다.  적용한 내용을 보기 쉽게 그림으로 그려보았습니다.   FastAPI를 설치하기 전에, 가상환경 세팅하기# 가상환경을 만들 디렉토리로 이동$ cd {directory}# 가상환경 만들기$ python3 -m venv {venv name}# 가상환경..
Kubernetes 특강 3회차 공부 내용 정리1 - Annotation, CronJob
·
Kubernetes
3회차는 분량이 많기도 하고, 내용이 많이 어렵게 느껴져서 공부하면서 조금씩 정리해 보려고 합니다. 🥲🥲🥲  Annotationk8s에서 Annotation은 Pod, Deployment, Service 등과 같은 오브젝트에 대한 부가적인 정보를 추가로 제공하기 위한 메커니즘입니다. Label vs Annotation개인적으로, 강의 초반부터 언급되었던 레이블이 생각이 나면서 어노테이션의 개념과 약간 혼동이 되었으나,아래 문장을 보고 정리가 되었던 것 같습니다.Labels are for Kubernetes, while annotations are for humans. k8s에서 Label레이블은 관련 리소스 그룹을 필터링하여 식별하기 위해 Selector와 함께 사용됩니다.예를 들어, 특정 라벨을 ..
Kubernetes 특강 2회차 공부 내용 정리
·
Kubernetes
Kubernetes 클러스터 연결 설정하기멘토님께서 나눠주신 Kubernetes 클러스터의 구성을 정의하고 있는 yaml 파일을 가지고,kubectl 명령어로 설정해 준다면특정 클러스터와 사용자를 연결하여 클러스터 자원을 관리하고 접근할 수 있게 됩니다.### 쿠버네티스 클러스터 연결을 위한 변수 선언$ export KUBECONFIG=~/downloads/soma-k8s-lab-kubeconfig.yaml또는$ sudo cp ~/downloads/soma-k8s-lab-kubeconfig.yaml ~/.kube/config### 확인하는 방법$ echo $KUBECONFIG### 쿠버네티스 연결 확인$ kubectl get nodes### 네임스페이스 제작$ kubectl create namespace..
Kubernetes 특강 1회차 실습 문제
·
Kubernetes
문제 1somaweb라는 이름의 deployment를 아래 조건으로 생성합니다. Pod 이름: soma-wsReplicas 수: 4컨테이너 이름: nginx-container컨테이너 이미지: nginx:1.14  풀이1. somaweb.yaml라는 이름의 yaml 파일 작성하기apiVersion: apps/v1kind: Deploymentmetadata: name: somawebspec: replicas: 4 selector: matchLabels: app: soma-ws template: metadata: labels: app: soma-ws spec: containers: - name: nginx-container i..
Kubernetes 기본적인 이론 / 설치 및 명령어 내용 기록
·
Kubernetes
소프트웨어 마에스트로의 꽃인 멘토 특강을 수강하면서 배웠던 내용들을 기록하고 되새김하기 위해 작성한 글입니다!  멘토님의 쿠버네티스 기본 과정 총 4회 차 중, 1회 차는 아래의 내용을 다뤘습니다.가상화 기술 / 컨테이너 / Docker의 이해Docker 설치 및 기본 사용법 Docker 이미지 생성과 Docker Hub의 사용 쿠버네티스 기본 이론 kubectl 설치 및 기본 명령어 습득 Pod의 이해와 생성   DockerKubernetes를 배우려는데 갑자기 Docker가 웬 말이냐?라고 할 수도 있습니다. Kubernetes는 클러스터 내에서 컨테이너화된 애플리케이션을 효율적으로 관리하고 운영하기 위해 사용되는데,Docker를 알고 이해함으로써 컨테이너 기술의 기본 개념과 작동 방식을 습득하게 된..
Locust를 통해 부하 테스트를 진행하고 Prometheus/Grafana로 모니터링하기
·
SpringBoot
멀티 모듈 프로젝트를 구성하여 쿠폰 발급 시스템 개발을 진행했었습니다. 이제 종합적으로 Locust를 사용하여 부하 테스트를 진행하고 각 모듈에 가해지는 부하를 Prometheus에서 지표들을 수집하고, Grafana의 대시보드에서 확인하는 과정을 기록하려고 합니다. 우선 Prometheus와 Grafana 컨테이너를 띄워주고 Prometheus에 접속해줍니다. 현재 지표를 수집할 애플리케이션들이 켜져있지 않으므로 동작시켜 줍니다. Grafana에 접속했는데 현재 저의 경우 아래 사진과 같이 주황색 경고등이 떠있는 것을 확인할 수 있었습니다. 경고등에 마우스를 가져가면 This panel requires Angular (deprecated)라는 문구가 뜨는데 이는 대시보드가 ​​AngularJS가 필요한..
소프트웨어 마에스트로 15기 최종 합격 후기
·
SW마에스트로
아직 워크샵도 진행하진 않았지만 합격해서 기쁘기도하고 면접 때 받은 질문들 중에서, 다시 되돌아볼만한 질문도 있어서 그런 인상깊었던 내용들과 소마를 준비하시는 분들에게 조금이나마 도움이 되고자 글을 작성해보았습니다.  지원하게 된 이유국내에는 여러 부트캠프가 존재하지만소프트웨어 마에스트로는 정부에서 지원하는 사업인 만큼 인지도와 교육의 질이 가장 높은 프로그램으로 알고있습니다. 사실 저 나름대로 규모가 크진 않지만 대내외 활동을 여러가지를 해보고제 진로를 찾기 위해서 데이터분석 공모전이나 여러 공모전들을 참가했던 경험이 있습니다.여러 경험들을 하면서 백엔드 개발을 선택했고, 실력있는 연수생들과 함께 활동하며제가 지금 백엔드 개발자로 성장하기 위해서 어느 정도의 수준에 있는지 확인하며 단점을 보완하고 소마..
프로메테우스와 그라파나를 사용하여 모니터링 수행하기
·
SpringBoot
들어가며 우선 서비스 개발과 장기적인 운영 관점에서 애플리케이션을 모니터링하는 것은 매우 중요한 작업입니다. 애플리케이션에서 발생하는 동작들에 대한 메트릭을 수집하여 애플리케이션 성능을 분석하면서 추후에 성능을 최적화할 수 있고, 시스템 내부에서 발생할 수 있는 잠재적인 문제를 빠르게 식별하고 해결하는 데 도움이 될 수 있습니다. 또한 외부로 부터 발생하는 악의적인 활동이나 보안 위협을 식별하고 대응할 수 있기 때문에 모니터링 환경 구축은 필수적이라고 할 수 있습니다. 그러므로 이번에 스프링부트 환경에서 프로메테우스와 그라파나를 사용하여 모니터링 구축을 하면서 공부한 내용들을 기록해보았습니다. 용어 및 개념 Metric 위에서부터 메트릭이라는 용어를 사용했기 때문에, 해당 용어에 대해서 궁금하셨을 수도 ..