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 위에서부터 메트릭이라는 용어를 사용했기 때문에, 해당 용어에 대해서 궁금하셨을 수도 ..
기존에 동시성 이슈 문제 해결을 위해 사용한 Redisson 대신 Redis의 script를 사용해서 성능 올리기
·
SpringBoot
들어가며public void issue(long couponId, long userId) { // 캐시를 통해 쿠폰에 대한 유효성 검증 수행 CouponRedisEntity coupon = couponCacheService.getCouponCache(couponId); coupon.checkIssuableCoupon(); // 레디스 동시성 이슈 해결하기 위함 distributeLockExecutor.execute("lock_%s".formatted(couponId), 3000, 3000, () -> { couponIssueRedisService.checkCouponIssueQuantity(coupon, userId); issueRequest(coupo..
Mockito 에러 - UnnecessaryStubbingException 해결
·
SpringBoot
문제 사용자가 게시판에 올린 미션 인증 글을 관리자가 승인을 해주는 기능을 만들었는데, 이와 관련해서 테스트 코드를 작성하고 있었습니다. 그 중에 사용자가 올린 미션 인증 글의 상태가 승인 대기중인 글이 아닐 때, 이에 맞는 오류 메시지를 반환해야 했습니다. @Test @DisplayName("미션 인증글 승인 - 승인 대기중인 글이 아닐 때, 오류 메시지를 잘 반환하는지?") void acceptMission_4() { // given Team team = TeamMock.create("팀1"); User user = UserMock.create(team, UserRole.MENTOR, passwordEncoder); Mission mission = MissionMock.create(); Mission..
쿠폰 발급 요청 시, 확인하는 쿠폰 정보를 Redis Cache에 담아 개선하기
·
SpringBoot
들어가며선착순 쿠폰 발급 기능 개발을 진행하고 있는데, 현재 쿠폰 발급 요청에 대한 서비스 로직에 쿠폰 발급 전에 확인하는 것 중 하나인 해당 쿠폰의 유효성 검증 부분에 개선점이 필요했습니다. Coupon coupon = couponIssueService.findCoupon(couponId); 클라이언트에서 쿠폰 발급 요청 API를 호출할 때마다, 위와 같은 방식으로 데이터베이스에 있는 couponId에 대한 쿠폰 정보를 가져와서, 쿠폰의 유효성 검증을 수행했습니다. 여기서 유효성 검증은사용자가 쿠폰 발급을 요청한 해당 쿠폰이 발급 가능 기간에 속하는지 검증하는 단계라고 보면 됩니다. 하지만 이러한 방식은 사용자가 요청할 때마다, 데이터베이스에서 값을 조회하기 때문에순식간에 많은 사용자가 쿠폰 발급을 요..
[LeetCode Hard] 262. Trips and Users
·
SQL 문제 풀이
테이블 정보  문제The cancellation rate is computed by dividing the number of canceled (by client or driver) requests with unbanned users by the total number of requests with unbanned users on that day. Write a solution to find the cancellation rate of requests with unbanned users (both client and driver must not be banned) each day between "2013-10-01" and "2013-10-03". Round Cancellation Rate to two d..