공통 프로젝트 후기 정리 - (2)
2024. 8. 15. 18:36
프로젝트/JaNyang
들어가며이번 글에서는 벡엔드 파트에서 일어났었던 문제점들을 중점적으로 적고 개인적인 생각을 붙이면서 이어나가려고 한다.특별히 언급할 것은 Spring Boot를 사용한 프로젝트 API 서버 전체를 필자가 담당했다는 것 정도이다.역할 분담개발을 들어가기 전에 역할 분담을 다시 해야할 필요가 있었다.프로젝트가 이전에 해본 적이 거의 없었던 모바일 앱과 관련된 주제이다 보니 Flutter를 FE 2명이 담당하기에는 시간이 부족할 수 있다는 것이었다.그래서 역할을 재분류를 한 결과 다음과 같은 분담이 이루어졌다.모바일 앱 프론트엔드 파트 : 3명(FE 파트 2명 + BE 파트 1명)Open Vidu 파트 : 2명(BE 파트 2명)API 서버 개발 : 1명(필자)어쩌다 보니 API 서버 전체를 내가 담당하게 되었..
공통 프로젝트 후기 정리
2024. 8. 15. 17:12
프로젝트/JaNyang
공통 프로젝트 JaNyang(자냥)SSAFY 에서의 2학기 1차 프로젝트인 공통 프로젝트가 내일이면 마무리된다.기록을 위해 프로젝트의 시작부터 끝까지 어떤 것을 만들었고 만들면서 어떤 이슈가 있었는지에 대해 이야기해보려고 한다. 기획주제 선정프로젝트의 주제를 정하는 것은 여태까지 3번 정도의 프로젝트를 진행해 보았지만 개인적으로 가장 힘든 부분이라고 생각한다.이것은 비단 나 뿐만이 아니라 같은 팀원들도 비슷했었다. 그래도 다행이었던 것은 어느 정도의 가이드라인이 제공되었다는 것이었다.가이드라인의 내용은 혹시나 몰라 공개하지 않지만 그래도 어느 정도의 방향성을 잡을 수 있는 부분까지는 제공되었다. 그래서 프로젝트 극초반에는 해당 가이드라인의 내용을 읽으면서 생각해본 것이 많았었다.여러 주제들이 나왔었다. ..
[Jenkins] Jenkins로 CI/CD 구축 해보기 - (5)
2024. 6. 5. 17:00
Infra/CI-CD
Introduction저번 포스트에서 CD 부분까지를 마치고 테스트를 진행했다. 이번에는 지금까지 우리가 구성한 CI/CD의 전체적인 구조를 한 번 보고, github push와 같은 특정 명령어를 실행했을 때 자동으로 빌드를 할 수 있게끔 자동화하는 것을 볼 것이다. 구조 확인하기지금까지 우리가 구축한 그림이다. 플로우를 보면 다음과 같다.사용자 PC(우리)에서 Jenkins instance에 접속하여 Jenkins에게 빌드해라는 지시를 내린다. Jenkins는 해당 Job에 정의된 Jenkins Pipeline 스크립트를 따라가며 먼저 github repository에서 소스 코드를 가져오는 것 부터 시작한다.github에서 코드를 가져온다. 그러면 적절한 처리를 수행한 후 maven 또는 grad..
[Jenkins] Jenkins로 CI/CD 구축 해보기 - (4)
2024. 6. 5. 14:02
Infra/CI-CD
Introduction이전 글에서는 Jenkins로 배포를 제외한 부분을 완성하였다. 즉 CI/CD에서 CI까지 완성했다고 볼 수 있다.이번 글에서는 CD 부분을 구현할 것이다.CD의 과정먼저 이전에 보았던 Jenkins Pipeline 스크립트를 보도록 하자.pipeline { agent any tools { maven "M3" // Jenkins에서 설정한 Maven의 이름 } stages { //... stage('Deploy') { steps { script { // 원격 서버에서 애플리케이션 실행 sshagent(['depl..
[Jenkins] Jenkins로 CI/CD 구축해보기 - (3)
2024. 6. 4. 22:43
Infra/CI-CD
Introduction저번 게시글에서 Jenkins의 초기 세팅과 플러그인 설치까지 진행했다.이번 게시글에서는 Jenkins Pipeline을 작성하고 우리가 Pipeline을 실행시키는데 필요한 여러 데이터들을 넣어 볼 것이다.주의!필자의 현재 진행 환경이 AWS에서 Vultr로 변경되었음을 알려 드립니다. 다만 진행하는 모든 과정을 AWS에서 이미 한 번 해보았고 해당 과정을 완벽하게 그대로 진행했음을 알려 드립니다.글을 작성하는 지금 실행 환경은 다음과 같습니다.Ubuntu LTS 24.04 Jenkins Pipeline 작성하기다시 메인메뉴로 돌아온다. 우측에 초록 원에 있는 Create a job을 클릭한다.Jenkins는 여러 아이템들을 추가해 놓을 수 있는데 우리는 여기에서 Pipeline을..
[Jenkins] Jenkins로 CI/CD 구축해보기 - (2)
2024. 6. 3. 11:15
Infra/CI-CD
1. Introduction저번 과정에서 Jenkins를 띄울 EC2 인스턴스 서버를 만드는 것 까지 수행했었다. 이번 파트에서는 Jenkins를 EC2 인스턴스에 설치하고 설정을 진행하는 부분을 진행해 볼 것이다.주의!필자의 현재 진행 환경이 AWS에서 Vultr로 변경되었음을 알려 드립니다. 다만 진행하는 모든 과정을 AWS에서 이미 한 번 해보았고 해당 과정을 완벽하게 그대로 진행했음을 알려 드립니다.글을 작성하는 지금 실행 환경은 다음과 같습니다.Ubuntu LTS 24.04 2. Swap Memory 설정우리는 Jenkins를 EC2에 다이렉트로 설치하지 않고 Docker를 사용하여 설치할 것이다. 하지만 Docker나 Jenkins 모두 메모리가 충분하지 않으면 제대로 동작하지 않는 경우가 많..
[Jenkins] Jenkins로 CI/CD 구축해보기 - (1)
2024. 6. 3. 01:48
Infra/CI-CD
1. Introduction이번 주를 지나면서 CI/CD 툴로 많이 사용할 수 있는 Jenkins를 사용해 실제 CI/CD 파이프라인을 구축하는 것을 블로그로 남기려고 한다.실제로 수행했던 시간은 6/1, 6/2 2일 정도로 몇몇 문제에 대해서는 결국 해결하지 못해 플랫폼을 변경하여 구축을 완료하였다.전체적인 과정과 더불어 왜 이렇게 하는가에 대해서도 공부하면서 적어보려고 한다. 2. CI/CDCI/CD라는 용어는 매우 많이 들어왔던 용어이고 놓쳐서는 안되는 용어와 개념이라고 생각한다.먼저 CI는 Continuous Integration의 약어로 한국어로는 지속적 통합이라고 한다.이때 지속적 통합의 대상은 기본적으로(또한 일반적으로) 프로덕션 코드이다.하나의 프로젝트에서 개인이 모든 부분에 대해 개발을 ..
[SWEA] 19189 순열의 아름다움
2024. 1. 22. 21:03
Algorithm/DP
문제 https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AYzIcBsq_agDFAQ9&categoryId=AYzIcBsq_agDFAQ9&categoryType=CODE&&& SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 접근 여러 가지 접근이 있는데 필자가 접근한 단계로 차근차근 진행해 보도록 하겠다. BruteForce 구현 모든 경우의 수를 구해야 하는데... 문제를 보면 $1 \leq N \leq 250000$ 이다. 우리가 찾는 아름다운 쌍을 찾기 위해서는 먼저 $250000!$ 개의 행들을 훑어야 하는데 당연히 시..
[BOJ] 13265 색칠하기
2024. 1. 22. 19:54
Algorithm/BFS, DFS
문제 https://www.acmicpc.net/problem/13265 13265번: 색칠하기 각 테스트 케이스에 대해서 possible 이나 impossible 을 출력한다. 2 가지 색상으로 색칠이 가능하면 possible. 불가능하면 impossible 이다. www.acmicpc.net 접근 예제를 그래프로 그려서 확인해 보자. 각 노드를 R, G로 색칠해야 한다고 하자. 1번을 R로 색칠하면 문제의 조건에 의해 2, 3이 G로 색칠되어야 한다. 그런데 2번과 3번도 연결되어 있으므로 서로 다른 색이 되어야 하는데 G로 동일하므로 해당 그림은 두 가지 색으로 색칠할 수 없다. 이를 확인하는 방법은 BFS를 사용하여 구현할 수 있다. 시작 노드를 하나의 색으로 정해 칠한 뒤, 자신과 인접한 노드들..
[BOJ] 14629 숫자 조각
2024. 1. 22. 19:44
Algorithm/BFS, DFS
문제 https://www.acmicpc.net/problem/14629 14629번: 숫자 조각 곧 7살을 맞이하는 준하는 유치원에서 숫자가 적힌 나무 조각들을 가지고 노는 것을 좋아한다. 숫자 조각은 총 10개이며, 각각의 조각엔 0부터 9까지의 숫자가 한 숫자씩 적혀있다. 준하는 각 숫 www.acmicpc.net 접근 기본적인 백트레킹(DFS) 문제 N이 1,000,000,000,000 까지로 매우 크다. 그런데 생각해보면 0부터 9까지 만들 수 있는 것은 9자리로 한정되고 그마져도 9876543210 을 초과하는 순간 답은 9876543210으로 고정된다. 그 이외에는 0부터 9까지를 사용하도록 DFS를 만들면서 만들어진 수가 $N$과 얼마나 차이가 나는지를 확인하고 갱신해주면 해결된다. 정답 ..