2024 공개SW 개발자대회 복기3 - 프로젝트 마무리
·
project/2024 공개SW 개발자대회
CI/CD각 플러그인마다 .github/workflows 안에 yaml 파일을 작성하여 깃허브에 코드를 push하면,dockerhub에 업데이트된 이미지가 올라가고, cloudforet에 변경사항이 반영되며,Slack으로 webhook 알람이 오는 것까지 구축하고 개발을 마무리했다. Helm chart packaging Github Collector 플러그인에 대해서 Helm Chart 패키징을 적용해봤다.Helm Chart Packaging은 Helm 차트를 하나의 패키지로 묶어 .tgz 파일 형식으로 만드는 작업이다.한 번 패키징된 Helm Chart는 여러 환경에 재사용할 수 있어 동일한 애플리케이션을 다른 클러스터나 환경에 쉽게 배포할 수 있다.이렇게 하면 Kubernetes 애플리케이션의 배포 ..
2024 공개SW 개발자대회 복기2 - 플러그인 개발기
·
project/2024 공개SW 개발자대회
플러그인 개발플러그인 개발을 위해 메가존 클라우드 현직자분들이 개발해 놓으신 소스를 참고했다. 정해진 디렉터리 구조가 존재했다.도움이 많이 되었지만, 개발 기간이 짧은 탓도 있었고, 모두가 이 대회 하나에만 올인할 수 없었던 환경이었기에Cloudforet의 완전한 구조를 흡수하지 못했던 것에 아쉬움이 남는다. 개발한 플러그인 소스https://github.com/ChainsoMen/plugin-github-inven-collector GitHub - ChainsoMen/plugin-github-inven-collector: OSS project Cloudforet plugin-github-inven-collectorOSS project Cloudforet plugin-github-inven-collect..
2024 공개SW 개발자대회 복기1 - 개발 환경 구축기
·
project/2024 공개SW 개발자대회
💡 2024 공개SW 개발자대회 메가존 클라우드의 기업 지정 과제를 수행하며 정리한 내용입니다. SpaceONE에서 DevOps toolchain 연동 개발 및 관리 기능을 구현했고, CI/CD 파이프라인의 정보들을 수집하는 것에 중점을 두었습니다. 사전 지식GitHub Actions: GitHub에서 소프트웨어 워크플로우를 자동화하는 CI/CD 서비스Jenkins: 오픈 소스 자동화 서버로, 애플리케이션의 빌드, 테스트, 배포를 자동화ArgoCD: Kubernetes에 GitOps 방식으로 애플리케이션을 배포하고 모니터링하는 도구Helm: Kubernetes 패키지 관리자로, 애플리케이션 배포를 간편하게 해주는 도구Helm Chart: Kubernetes 애플리케이션 템플릿으로 구성된 패키지Docke..
2024 공개SW 개발자대회 1차 합격 복기
·
project/2024 공개SW 개발자대회
2024 공개SW개발자대회 1차 평가에 합격했다. 메가존 클라우드 기업형 과제로 지원했으며, 팀원은 프론트엔드 1명, 서버/인프라 3명으로 구성했다. 기업형 과제는 주제가 크게 3개 있었고, 정해져 있음에도 불구하고 결정하기까지 많은 고민을 했다. 최종적으로 선택한 주제는 “DevOps 관리 기능 구현 - DevOps Toolchain 연동 개발(ex. GitHub Actions, GitLab, Argo CD, Jenkins 등)”로 초기 기획은 SpaceONE에서 CI/CD 구축을 ‘딸깍’ ‘딸깍’으로 가능하게끔 하도록 하는 것이 목표였다. SpaceONE은 리눅스 재단에 등재된 오픈소스 기반 멀티 클라우드 플랫폼으로 AWS, GCP, Azure 등 다양한 클라우드를 연동하여 통합 관리한다. 이 때 필..
개발계 Jar 파일 배포 에러 - no main manifest attribute
·
project/poppin-server
💡 FCM 키워드 알람 테스트를 하려고 개발을 마친 후 개발계에서 배포하고 테스트를 진행하려다가 발생한 문제에 대한 해결 과정 기록 문제 상황./gradlew build -x test 로 빌드scp 명령어를 통해 빌드 산출물인 jar 파일을 로컬 → Bastion 서버 → 개발계 private 서버로 옮김개발계에서 nohup java -jar [jar 파일명] & 으로 jar 파일을 실행시키려고 했을 때 에러가 발생한다.로컬에서는 잘만 실행된다. (^R로 실행) Error 로그no main manifest attribute, in poppin-server-0.0.1-SNAPSHOT.jar2024-09-06T16:40:35.129Z INFO 1165 --- [ionShutdownHook] o.s.c.s..
MSA project - 프로젝트 환경 세팅
·
project/MSA-side
프로젝트 개요🏁 Goal: MSA 구성, Redis 캐싱, Docker 기반 CI/CD 구성MSA 아키텍처를 직접 구성Eureka, Ribbon 을 이용해서 분산처리 시스템을 구성MSA 환경에서 병목 현상이 발생 하여도 쉽게 오류가 나는 부분을 찾을 수 있도록 구성Redis 캐싱 적용Docker 사용, Git Push 만으로 서버에 자동으로 업데이트 구성🤔 notification : 과제 요구 사항 패키지명 규칙과 포트 규칙 준수패키지명은 msa_exam 으로 설정, 유레카 서버는 19090 포트로 실행게이트웨이 서비스는 msa_exam.gateway 패키지로 추가하고 19091 포트로 실행상품 서비스를 msa_exam.product 패키지로 추가하고 19093,19094 포트로 실행주문 서비스를 m..
@Transactional 최적화
·
project/poppin-server
팝핀(Poppin) 프로젝트 회고@Transactional이 무분별하게 사용되는 것을 방지하고자 트랜잭션 최적화 작업을 일부 수행했다.@Transactional특정 메서드나 클래스에서 수행되는 트랜잭션 관리를 위해 사용하는 어노테이션이다.해당 어노테이션을 선언하면 런타임 중 트랜잭션에 오류가 발생하면 트랜잭션이 롤백(rollback)되고 변경 사항이 모두 취소된다.이는 트랜잭션의 ACID 성질 중 원자성(Atomicity)과 관련이 있다.여러 개의 작업을 하나로 묶은 논리적 단위가 트랜잭션이 되는데 이 작업들 중 하나라도 실패하면 모든 작업을 실패한 것으로 간주하고 트랜잭션이 실행되기 전으로 돌아간다.반면, 모든 작업이 성공하면 커밋(commit)되고 변경사항이 반영된다.둘 중 어느 것을 사용해야 할까❓..
Refresh Token Rotation을 통한 보안 강화
·
project/poppin-server
팝핀(Poppin) 프로젝트 회고Refresh Token서버와 클라이언트는 토큰을 주고 받으며 인증과 인가를 처리할 수 있다.Refresh Token은 Access Token이 만료되었을 때, 새로 재발급 해주는 열쇠가 된다.Access Token은 보통 짧은 만료 기간을 가지는 반면, Refresh Token은 상대적으로 긴 만료 기간을 가진다.만약 Access Token이 긴 만료 시간을 가지게 되면, 탈취당하여 악의적인 공격에 사용될 수 있다.포스트맨에서 API 테스트를 할 때 만료되지 않은 토큰을 헤더의 Authorization Bearer에 집어넣는다.즉, API 명세를 알고 해당 토큰을 가지고 있는 누구나 필요로 하는 서버 자원을 가져올 수 있는 것이다.이러한 토큰은 발급한 후 삭제가 불가능하..
조원준입니다
'project' 카테고리의 글 목록