본문 바로가기

전체 글82

2025년 체인지업 3월 참여 후기 교육을 마치고 체인지업에 참여를 하게 되었다이전에 체인지업을 알고는 있었지만 막상 취업에 뛰어들지 않고 있어서 시도를 하지 않고 있었다. 그러다가 취업에 많이 도전해 보면서 자소서에 어려움을 겪고 있었다. 그러다가 유투브에 구독 하고 있던 면접왕 이형에서 이 프로그램을 하는 것을 알게 되었다.바로 참여 하지는 않았지만 ( 비용도 드는 것이라..ㅠㅠ 1월에 체인지업 모집 공고를 보고 어떻게 운영이 되는지 보고 있었다) 이번 3월달에 참여를 하게 되었다해당 커리큘럼은 다음과 같다 체인지업 루틴 (경제신문 스크랩, 매일 시간관리, 1일 1 면접왕 이형 유튜브, 데일리 루틴 체크)세션 과제 (경험정리, 3C4P, 자소서 문항 생성, 면접 복기록, 지원동기 etc..)취업 포트폴리오 ( 지원한 회사 목록 관리)스.. 2025. 3. 27.
Cognito를 이용한 AWS 사용자 관리 서비스 서비스 목표💡AWS Cognito를 이용하여서 사용자 인증Cognito에서 발급하는 토큰을 가지고 API Gateway에서 권한 검사를 구현하여 다른 Endpoints 들에 인가DynamoDB를 통해 사용자 정보를 저장IAM VS Identity PoolIAM 역할은 특정 그룹이나 AWS 리소스에 대한 권한을 정의해 놓은 책입니다.이 책에는 누가 어떤 리소스에 접근할 수 있는지, 어떤 작업을 할 수 있는지 상세하게 적혀 있습니다.책 자체는 언제든 사용할 준비가 되어 있지만, 직접 읽으려면 누군가가 이 역할(책의 내용)을 "수행(Assume)"해야 합니다.Identity Pool은 도서관의 대출 서비스처럼 동작합니다.사용자가 인증되면, Identity Pool은 해당 사용자에게 특정한 "책"(IAM 역.. 2025. 1. 12.
Coginto 내용 정리 "캐싱이 API Gateway에서 수행된다"는 의미는, API Gateway가 Lambda Authorizer에서 반환된 정책을 일정 시간 동안 저장하고, 동일한 요청 토큰(예: Authorization 헤더에 포함된 JWT)이 반복적으로 들어오면 Lambda Authorizer를 다시 호출하지 않고 저장된 정책을 사용하여 요청을 처리한다는 것을 의미합니다.캐싱이 수행된다는 것의 구체적 의미정책 저장:Lambda Authorizer가 반환한 **권한 부여 정책(Authorization Policy)**을 API Gateway가 내부적으로 캐시에 저장합니다.이 정책은 사용자가 어떤 리소스에 접근할 수 있는지를 정의한 정보입니다.중복 호출 방지:동일한 Authorization 토큰을 가진 요청이 반복적으로 .. 2025. 1. 8.
CI/CD - github Action 적용 5. github Action 적용 응용 (BackEnd)5-1. 방법 1 : BackEnd1. 용도개인 프로젝트에서 사용2. 흐름→ github 에 push → githubAction 이 이벤트 감지 → git pull EC23. 장점git pull 을 활용해서 변경된 부분의 프로젝트 코드에만 업데이트를 하기 때문에 CI/CD의 속도가 빠르다⇒ 대부분의 CI/CD 방식은 전체 프로젝트를 갈아 끼우는 방식github Action 만 사용하기 때문에 인프라 구조가 복잡하지 않고 간단하다4. 단점빌드 작업을 EC2에서 직접 진행하기 때문에 운영하고 있는 서버의 성능에 영향이 있을 수 있다github 게정 정보다 EC2에 저장되기 때문에 믿을만할 사람들과 같이 진행하는 토이 프로젝트에서만 사용해야 한다5. 사.. 2024. 12. 31.
CI/CD - 기초 1. 개념테스트(Test), 통합 (Merge) , 배포 (Deploy)의 과정을 자동화 하는 것CI : continuous IntegrationCD : continuous deploy코드의 수정이 일어날 때마다 반복하기 귀찮고, 번거롭기 때문에 이러한 반복적인 과정을 자동화 시키기 위해 CI/CD 인프라를 구축하는 것이다2. CI/CD 구축 시 사용할 Github ActionsCI/CD 구축 ToolGithub Actions, Jenkins, Circle CI, Travis CI etc.현업에서 많이 사용하면서, 무료로 사용할 수 있고, 빌드용 서버가 필요 없는 Github Actions을 활용하는 경우가 많음Jenkins 도 많이 사용하지만, 단점으로 별도의 서버 구축이 필요하여 비용이 발생하기 된다.. 2024. 12. 25.
도커와 쿠버네티스 -K8S(spring boot 의 통신 with Ingress) 4. K8S 에서의 spring boot 통신4-1. K8S 와 spring boot 로 통신이란통신 흐름 client 의 request → Ingress → ClusterIP → pod(java.jar)사용하는 서비스Ingress K8S Cluster 외부에서 내부에 존재하는 K8S 서비스에 접근하기 위해 HTTP/HTTPS 를 활용한 라우팅 규칙을 제공하는 객체 Ingress를 사용하게 되면 K8S Cluster 내부에 존재하는 다수의 서비스들을 외부에 노출할 수 있어 프로덕션 환경에서 유용하게 사용할 수 있다Service ( ClusterIP) K8S Cluster 내부에서만 접근 가능한 IP를 할당하며 외부에서는 접근할 수 없다4-2. K8S Ingress 클러스터 설치 및 설정설치kind.si.. 2024. 12. 2.
도커와 쿠버네티스 -K8S(네트워크 통신_pod들의 통신) 1. IngressIngress 란기본적으로 ingress라는 용어는 네트워크에서 나왔다네트워크 트래픽에서 외부에서 내부로 들어오는 트래픽을 Ingress, 반대는 egress 라고 한다쿠버네티스에서의 Ingress 는 외부로부터 접근을 관리하는 API 오브젝트이다즉, URL을 통해 HTTP 접근 경로를 만들어서 외부 트래픽이 내부의 어디에 도달할 수 있는지에 대해 정의한 규칙 모음이다추가 : 서비스(Service)파드들은 각각 클러스터 안에서 새로운 IP를 발급 받고 관리를 하게 된다. 그러나 쿠버네티스에서 파드들은 하나의 노드(마스터, 워크)에 고정으로 존재하지 않고 다른 노드로 옮겨지거나 삭제 될 수 있다 이렇게 변화가 있을 때마다 파드의 IP주소가 변경되기 때문에 파드 간의 통신이나, 다른 노드 .. 2024. 11. 24.
도커와 쿠버네티스 -K8S(스토리지 볼륨) 1. 스토리지 볼륨K8S에서 컨테이너 파일을 보존하기 위해 사용되는 객체노드 내부의 일부 디스크 공간을 pod와 공유하는 방식으로 제공노드 외부의 스토리지 시스템과 연결하는 방식1-1. K8S 스토리지 볼륨 종류emptyDir : pod 내부에서 임시적으로 사용하는 볼륨(저장소)hostPath: 노드 내에 데이터를 저장할 수 있는 볼륨(저장소)PersistentVolume: 외부 서버(노드 외부)에 데이터를 저장하는 볼륨(저장소)1-2. emptyDirpod 내부에서 임시적으로 사용하는 볼륨(저장소)pod가 노드에 할당될 때 처음 생성pod가 노드에서 실행하는 동안만 존재(pod가 삭제되면 볼륨도 삭제됨)apiVersion: v1kind: Podmetadata: name: my-ev-podspec.. 2024. 11. 20.
도커와 쿠버네티스 -K8S(환경 변수) 1. 환경 변수0. 환경 변수 설정 방법컨테이너 내부에 직접 설정configMapsecret환경 변수는 컨테이너 단위로 정의가 되기 때문에 공통으로 사용될 환경 변수도 중복 해서 컨테이너에 정의될 수 있다또한 비밀번호, API KEY 등은 공개가 되면 공개가 되면 안되기 때문에 이러한 부분들을 해결하기 위한 ConfigMqp, Secret 객체가 존재ConfigMap, Secret 는 K8S에서 설정값을 저장하는 객체이다ConfigMap : 외부에 공개되어도 문제가 되지 않는 값을 저장 (Database Host Name, Database User)Secret : 외부에 공개가 되면 안되는 값을 저장 (Database Password)컨테이너 입장에서의 K8S 환경 변수의 장점K8S 입장에서의 환경 변수.. 2024. 11. 17.
도커와 쿠버네티스 -K8S (Deployment) 1. Deployment1-1. Deployment 개념구성 요소ReplicaSet 의 버전을 관리해주는 객체 (컨트롤러)ReplicaSet 내의 pod 들의 배포, 업데이트까지 담당하는 객체⇒ K8S 에 어떤 pod를 배포한다는 것은 결국 그 pod 의 버전까지 관리해야 하는 경우가 대부분⇒ 실제로 개발자들이 K8S 를 사용할 때 pod 나 ReplicaSet을 직접 사용하는 경우는 잘 없다⇒ Deployment를 사용해서 pod 나 ReplicaSEt ⇒ 그러므로 K8S 의 객체를 직접 생성하는 것보다 Deployment의 spec을 작성하고 관리하는 경우가 많아졌다1-2. Deployment spec 작성ReplicaSet의 spec을 포함하고 있다 그러므로 spec 이 동일하다strategy 가 .. 2024. 11. 14.
도커와 쿠버네티스 -K8S (multi container & replicaset) 1. 다중 컨테이너초기 컨테이너를 설정하고, 그 다음 동작할 컨테이너를 설정해 준다다중 컨테이너 설정 (정상 작동)kind: Podmetadata: name: my-multi-container-podspec: initContainers: - name: my-initializer image: busybox command: ["sh", "-c", "sleep 10"] containers: - name: nginx image: nginx:1.24 - name: redis image: reids다중 컨테이너 설정( 비정상 작동)apiVersion: v1kind: Podmetadata: na.. 2024. 11. 11.
K8s Setting 1. K8s1.0 환경 구축kind.sigs.k8s.ioUser Guide → Quick Start → Installtion → installing with a Package Manager1.1 kind 설치chocolatey 설치 : windows 용 커맨드 라인 패키지 매니저MS 공식 제공 도구는 아님https://community.chocolatey.orginstall Package → install Chocolatey for individual Use→ Now run the following command → copy → open window powershell master mode → paste and runchoco -v : show versionkind 설치choco install kindk.. 2024. 10. 27.