사전에 요청받거나 저와 관련있는 분들만을 위한 멘토링입니다.
따라서 가격은 설정할 수 있는 최저로 설정되어 있어요.
일정은 멘토링 확정 이후 조율할 예정이니 아무렇게나 기입해 주세요.
신청하실 때, 이름 및 저와 어디서 소통했는지만 짧게 기입 부탁드려요.
블로그
전체 152025. 06. 06.
0
[인프런 워밍업 클럽 4기 - DevOps] 2주차 발자국
강의 수강학습 내용 요약Sprint 1 - 2주차 커리큘럼 완강2주차 관련 모든 미션, 모든 복습 수행 완료학습 내용 회고지난 주에 이해를 위해 Spring 1의 모든 강의를 이미 다 들었어서, 복습을 작성하면서 복습이 잘 되어 좋았다.배운 내용들을 실제 실무에서도 적용해 보았고, 배운 내용들이 정확하게 다 사용이 되어서 뿌듯했다.미션해결 과정 요약친절히 설명되어 있는 미션을 따라 실습을 진행했다.확인하기 위한 명령어나 대시보드 들을 찾아가며 캡처 후 제출했다.미션 해결 회고미션의 난이도가 어렵다기 보다는, 이를 증빙하고 제출하는 문서를 작성하는 게 쉽지 않았다.이번 주는 미션이 3개여서 힘들었는데, 남은 두 주 모두 1개씩만 수행하면 되어 복습만 잘 챙기면 될 것 같다.
커리어 · 자기계발 기타
・
워밍업클럽
2025. 06. 04.
0
[인프런 워밍업 클럽 4기 - DevOps] 미션 4. PV/PVC, Deployment등
1-1. PV, PVC - local동작 확인1-2. PV, PVC - hostPath 동작 확인대시보드 > 디플로이먼트 > 편집으로 아래 구문 수정, 기존 레플리카 셋 제거# spec > template > spec > volumes persistentVolumeClaim: # 제거 claimName: api-tester-1231-files # 제거 hostPath: # 추가 path: /root/k8s-local-volume/1231 # 추가동작 확인2-1. Deployment - RollingUpdateminReplica 2로 바꾸기동작 확인배포되는 동안 두 버전이 공존2-2. Deployment - RollingUpdate (maxUnavailable: 0%, maxSurge: 100%)대시보드 > 디플로이먼트 > 편집으로 아래 구문 수정# spec > strategy rollingUpdate: maxUnavailable: 0% maxSurge: 100%동작 확인블루 그린 배포와 비슷하게 버전이 한 번에 변경됨2-3. Deployment - Recreate대시보드 > 디플로이먼트 > 편집으로 아래 구문 수정# spec > strategy type: Recreate # 수정 rollingUpdate: # 삭제 maxUnavailable: 0% # 삭제 maxSurge: 100% # 삭제동작 확인배포 중 서비스 중단2-4. Deployment - Rollback동작 확인배포 중 서비스 중단3-1. Pod 내부에서 Service 명으로 API 호출 [서비스 디스커버리]대시보드 > 파드 > 새로 생성된 Pod에서 Exec3-2. Deployment에서 Pod의 ports 전체 삭제, Service targetPort를 http -> 8080으로 수정대시보드 > 디플로이먼트 > 편집으로 아래 구문 수정# spec > template > spec > containers ports: # 제거 - name: http # 제거 containerPort: 8080 # 제거 protocol: TCP # 제거대시보드 > 서비스 > 편집으로 아래 구문 수정# spec > ports targetPort: 8080 # 변경대시보드 > 파드 > 새로 생성된 Pod에서 Exec4. HPA부하 발생한 번에 하나 스케일링 확인kubectl edit -n anotherclass-123 hpa api-tester-1231-default# spec > behavior > scaleUp stabilizationWindowSeconds: 120 # 삭제부하 발생빠르게 최대로 스케일링 확인
데브옵스 · 인프라
・
쿠버네티스
・
워밍업클럽
2025. 06. 03.
0
[인프런 워밍업 클럽 4기 - DevOps] 미션 3. ConfigMap, Secret
▶ 응용1 : Configmap의 환경변수들을 Secret을 사용해서 작성하고, App에서는 같은 결과가 나오도록 확인해 보세요.대시보드 > 신규 리소스 생성apiVersion: v1 kind: Secret metadata: namespace: anotherclass-123 name: api-tester-1231-properties labels: part-of: k8s-anotherclass component: backend-server name: api-tester instance: api-tester-1231 version: 1.0.0 managed-by: dashboard stringData: spring_profiles_active: "dev" application_role: "ALL" postgresql_filepath: "/usr/src/myapp/datasource/dev/postgresql-info.yaml"대시보드 > 시크릿 확인대시보드 > 디플로이먼트 > 편집으로 아래 구문 수정, 기존 레플리카 셋 제거# spec > template > spec > containers envFrom: - secretRef: name: api-tester-1231-properties대시보드 > 파드 > 새로 생성된 Pod에서 Exec > 명령어를 통해 환경 변수 확인env ▶ 응용2 : 반대로 Secret의 DB정보를 Configmap으로 만들어보고 App을 동작시켜 보세요대시보드 > 신규 리소스 생성apiVersion: v1 kind: ConfigMap metadata: namespace: anotherclass-123 name: api-tester-1231-postgresql labels: part-of: k8s-anotherclass component: backend-server name: api-tester instance: api-tester-1231 version: 1.0.0 managed-by: dashboard data: postgresql-info.yaml: | driver-class-name: "org.postgresql.Driver" url: "jdbc:postgresql://postgresql:5431" username: "dev" password: "dev123"대시보드 > 컨피그 맵 확인대시보드 > 디플로이먼트 > 편집으로 아래 구문 수정, 기존 레플리카 셋 제거# spec > template > spec volumes: - name: configmap-datasource configMap: name: api-tester-1231-postgresql # spec > template > spec > containers volumeMounts: - name: configmap-datasource mountPath: /usr/src/myapp/datasource/dev대시보드 > 파드 > 새로 생성된 Pod에서 Exec > 명령어를 통해 파일 확인cat /usr/src/myapp/datasource/dev/postgresql-info.yaml
데브옵스 · 인프라
・
쿠버네티스
・
워밍업클럽
2025. 06. 02.
1
[인프런 워밍업 클럽 4기 - DevOps] 미션 2. Probe 응용과제
미션 전 사전 준비HPA minReplica 1로 바꿔서 Pod 1개로 진행 ▶ 응용1 : startupProbe가 실패 되도록 설정해서 Pod가 무한 재기동 상태가 되도록 설정해 보세요.대시보드 > 디플로이먼트 > 편집으로 아래 구문 수정, 기존 레플리카 셋 제거startupProbe: httpGet: path: "/startup" port: 8080 periodSeconds: 5 failureThreshold: 1 ▶ 응용2 : 일시적 장애 상황(App 내부 부하 증가)가 시작 된 후, 30초 뒤에 트래픽이 중단되고, 3분 뒤에는 App이 재기동 되도록 설정해 보세요.대시보드 > 디플로이먼트 > 편집으로 아래 구문 수정, 기존 레플리카 셋 제거readinessProbe: httpGet: path: "/readiness" port: 8080 periodSeconds: 10 failureThreshold: 3 livenessProbe: httpGet: path: "/liveness" port: 8080 periodSeconds: 60 failureThreshold: 3부하가 발생한 직후에는 API 요청이 성공하였으나, 30초 후 요청이 차단된 것 확인60초 간격으로 livenessProbe 3번 실패 후 App 재시작 확인 ▶ 응용3 : Secret 파일(/usr/src/myapp/datasource/postgresql-info.yaml)이 존재하는지 체크하는 readinessProbe를 만들어 보세요.대시보드 > 디플로이먼트 > 편집으로 아래 구문 수정, 기존 레플리카 셋 제거readinessProbe: exec: command: ["cat", "/usr/src/myapp/datasource/postgresql-info.yaml"] periodSeconds: 10 failureThreshold: 3해당 파일은 존재하므로 실패 로그 확인 불가.
데브옵스 · 인프라
・
쿠버네티스
・
워밍업클럽
2025. 05. 31.
1
[인프런 워밍업 클럽 4기 - DevOps] 1주차 발자국
강의 수강학습 내용 요약Sprint 1 - 1주차 커리큘럼 완강1주차 관련 모든 미션 수행 완료학습 내용 회고복습에 시간을 많이 쏟았지만, 그만큼 잘 정리한 것 같고 공부가 잘 된 것 같다.Object 그려보며 이해하기 부분이 이해가 잘 안되어서 Sprint 1의 모든 강의를 다 듣고 다시 들으며 복습하니 이해가 잘 되었다.미션해결 과정 요약친절히 설명되어 있는 미션을 따라 실습을 진행했다.Mac 환경에 맞지 않는 미션이었어서, 질문 답변을 통해 확인하고 진행했다.미션 해결 회고확실히 따라 해보며 흐름을 이해하는 데 도움이 되었다.확실하지 않은 부분은 빠르게 질문 답변을 통해 확인 받고 진행하는 것이 좋은 것 같다.
커리어 · 자기계발 기타
・
워밍업클럽
2025. 05. 28.
1
[인프런 워밍업 클럽 4기 - DevOps] 미션 1. 쿠버네티스 설치 구간별 상태 확인
참고 사항Mac-m시리즈에서 구동하였으므로 내 PC 자원은 Mac 기준,VM 관련 정보는 쿠버네티스 빠른설치 (Mac-m시리즈)를 기준으로 작성하였습니다.[1-1] 내 PC 네트워크 확인[1-2] 내 PC 자원 확인[1-3] UTM 설치 버전 확인[1-4] Termius 설치 버전 확인 (개인적으로 사용하는 터미널 앱)[2-1] UTM VM 확인[2-2] 내 VM에 적용된 네트워크 확인[3-1] Rocky Linux 버전 확인[3-2] Hostname 확인[3-3], [3-4] Network 확인[3-5] 자원(cpu, memory) 확인[4] Rocky Linux 기본 설정▶ 타임존 설정 확인[5] kubeadm 설치 전 사전작업▶ 방화벽 해제 확인▶ 스왑(swap) 비활성화 확인(Swap에 할당된 자원이 없어야 함)(# 표시로 주석 처리가 잘 됐는지)[6] 컨테이너 런타임 설치[6-1] 컨테이너 런타임 설치 전 사전작업▶ iptables 세팅[6-2] 컨테이너 런타임 (containerd 설치)[6-2-1] containerd 패키지 설치 (option2)[6-2-1-1] docker engine (containerd.io)만 설치▶ docker repo 설정 확인▶ containerd 설치 확인▶ 설치 가능한 버전의 containerd.io 리스트 확인[6-3] 컨테이너 런타임 (CRI활성화)▶ cri 활성화 설정 확인▶ kubelet cgroup 확인 (configmap)▶ kubelet cgroup 확인 (kubelet)[7] kubeadm 설치▶ repo 설정 확인▶ SELinux 설정 확인▶ kubelet, kubeadm, kubectl 패키지 설치▶ 설치 가능한 버전의 kubeadm 리스트 확인[8] kubeadm으로 클러스터 생성[8-1] 클러스터 초기화 (Pod Network 세팅)▶ 클러스터 상태 확인[8-2] kubectl 사용 설정▶ 인증서 설정 확인[8-3] CNI Plugin 설치 (calico)▶ calico pod 설치 및 pod network cidr 적용 확인[8-4] Master에 pod를 생성 할 수 있도록 설정▶ Master Node에 Taint 해제 확인[9] 쿠버네티스 편의 기능 설치[9-1] kubectl 자동완성 기능▶ kubectl 기능 설정 확인[9-2] Dashboard 설치▶ dashboard 설치 확인[9-3] Metrics Server 설치▶ metrics server 설치 확인
데브옵스 · 인프라
・
쿠버네티스
・
워밍업클럽
2025. 03. 21.
1
[인프런 워밍업 클럽 3기 - CS] 3주차 발자국
강의 수강학습 내용 요약그림으로 쉽게 배우는 운영체제 강의 - 완강그림으로 쉽게 배우는 자료구조와 알고리즘 - 완강학습 내용 회고후반부로 갈 수록 모르던 내용이 많아서 이해하기 위해 노력했다.동적 프로그래밍이나 알고리즘은 꾸준히 복습이 필요할 것 같다.미션해결 과정 요약미션 질문을 읽고, 바로 떠오르지 않는 내용은 강의를 다시 보며 복습하고 정리하여 작성했다.정답이 어느 정도 정해져 있더라도 조금 더 내 생각을 곱씹어 보며 미션을 수행했다.미션 해결 회고원리는 이해했는데 용어가 잘 안 외워지고 설명이 어려워서 조금 더 연습이 필요할 것 같다.개념을 정리하는 데에 조금 더 집중했던 것 같다.
커리어 · 자기계발 기타
・
워밍업클럽
2025. 03. 21.
0
[인프런 워밍업 클럽 3기 - CS] 3주차 자료구조와 알고리즘 미션
1. 지금까지 배운 5개의 정렬 알고리즘의 장단점과 시간 복잡도를 적어주세요.버블정렬장점 : 구현이 간단하다.단점 : 성능이 좋지 않다.시간 복잡도 : O(n²)선택정렬장점 : 구현이 간단하다.단점 : 성능이 좋지 않다.시간 복잡도 : O(n²)삽입정렬장점 : 구현이 간단하다.단점 : 성능이 좋지 않다.시간 복잡도 : O(n²)병합정렬장점 : 성능이 좋다.단점 : 구현이 복잡하다.시간 복잡도 : O(nlogn)퀵정렬장점 : 성능이 좋다. 또한 단점 : 구현이 복잡하다. 시간 복잡도 : Θ(nlogn), O(n²) (대부분 좋은 피벗을 선택하고 최악의 경우가 발생할 경우가 극히 낮아서 병합정렬에 비해 더 적은 비교와 더 적은 메모리 공간을 차지하여 더 좋은 알고리즘으로 평가된다.) 2. 메모리가 부족한 시스템에서 어떤 문제를 해결하는데 재귀로 쉽게 구현이 가능할 것 같습니다. 여러분이라면 메모이제이션과 타뷸레이션 중 어떤 걸 이용하실 건가요? 이유를 함께 적어주세요.메모이제이션을 사용하여 재귀로 쉽게 구현은 가능할 수 있지만, 결국 메모리가 부족하여 시스템에서 문제가 발생할 우려가 있으므로 구현이 조금 복잡할 수 있더라도 조금 더 메모리를 효율적으로 사용할 수 있는 타뷸레이션을 이용할 것 같다.
알고리즘 · 자료구조
・
워밍업클럽
2025. 03. 21.
0
[인프런 워밍업 클럽 3기 - CS] 3주차 운영체제 미션
1. 메모리의 종류는 어떤 것들이 있나요? 각 메모리의 특징도 함께 적어주세요.레지스터 : 가장 빠른 기억장소로 CPU 내에 존재한다. 컴퓨터의 전원이 꺼지면 데이터가 사라지는 휘발성 메모리이다.캐시 : 메인 메모리에 있는 데이터를 레지스터로 옮기는 시간이 오래 걸리므로, 필요할 것 같은 데이터를 저장해둔다. 캐시는 성능 상의 이유로 여러 개를 둔다. 컴퓨터의 전원이 꺼지면 데이터가 사라지는 휘발성 메모리이다.메인 메모리 : 실제 운영체제와 다른 프로세스들이 올라가는 공간. 하드디스크나 SSD보다 속도는 빠르지만 비싸기 때문에 실행중인 프로그램만 올린다. 컴퓨터의 전원이 꺼지면 데이터가 사라지는 휘발성 메모리이다.보조저장장치(HDD, SSD) : 속도가 느리고 용량이 크고 가격이 저렴하다. 컴퓨터의 전원이 꺼져도 데이터가 사라지지 않는 비휘발성 메모리이다. 2. 사용자 프로세스가 메모리의 운영체제 영역에 침범하지 못하도록 만든 레지스터는 어떤 레지스터일까요?경계 레지스터. 메모리 관리자가 사용자 프로세스가 경계 레지스터의값을 벗어났는지 검사하고 만약 벗어났다면 종료시킨다. 3. 메모리 할당 방식에서 가변 분할 방식과 고정 분할 방식의 장단점은 뭔가요?가변 분할 방식장점 : 메모리의 연속된 공간에 할당되기 때문에 더 크게 할당되어 낭비되는 공간인 "내부 단편화"가 없다.단점 : 메모리의 빈 공간이 연속적으로 존재하지 않게 되는 "외부 단편화"가 발생한다.고정 분할 방식장점 : 구현이 간단하고 오버헤드가 적다.단점 : 작은 프로세스도 큰 영역에 할당되어 "내부 단편화"가 발생한다. 4. CPU 사용률을 올리기 위해 멀티프로그래밍을 올렸지만 스왑이 더 많이 이루어져 CPU 사용률이 0%에 가까워 지는 것을 뭐라고 할까요?스레싱 5. HDD나 SSD는 컴퓨터를 실행시키는데 꼭 필요한 걸까요?말 그대로 "컴퓨터를 실행"시키는 것이라면 운영체제 설치 없이도 전원이 들어오고 바이오스 진입까지는 가능하기 때문에 아니라고 볼 수 있으나, 현실적으로는 운영체제를 설치해야 하여 필수적이라고 보는 게 타당한 것 같다. 6. 파일을 삭제해도 포렌식으로 파일을 복구할 수 있는 이유가 무엇일까요?파일을 삭제할 때 파일시스템은 파일의 모든 정보를 지우는 것이 아니라 파일 테이블의 헤더만 삭제하고 사용했던 블록의 데이터는 그대로 남아있기 때문에 복구가 가능하다.
시스템 · 운영체제
・
워밍업클럽
2025. 03. 13.
0
[인프런 워밍업 클럽 3기 - CS] 2주차 발자국
강의 수강학습 내용 요약그림으로 쉽게 배우는 운영체제 강의 - 섹션 7까지 완강그림으로 쉽게 배우는 자료구조와 알고리즘 - 섹션 3 유닛 5까지 완강학습 내용 회고알고 있었던 내용들은 복습할 수 있었고, 디테일하게 잘 몰랐던 MLFQ나 은행원 알고리즘 등에 대해서는 새로 학습할 수 있었다.대부분 알고 있었던 자료 구조에 대해 복습하고 다시금 익히는 계기가 되었다. 미션해결 과정 요약미션 질문을 읽고, 바로 떠오르지 않는 내용은 강의를 다시 보며 복습하고 정리하여 작성했다.알고리즘 구현은 여러 가지 방안으로 테스트해 보면서 미션에 가장 깔끔한 방향이라고 생각되는 방향으로 구현했다.미션 해결 회고운영체제 관련 내용은 항상 개념은 이해하고 있어도 명확하게 설명하기는 어려운 것 같아서 어느 정도는 정리된 표현을 암기하는 것도 필요한 것 같다.알고리즘 구현은 난이도가 상당히 쉬운 미션이었다고 생각한다.
커리어 · 자기계발 기타
・
워밍업클럽