성공적인 1일 1커밋을 위한 서비스, COMMinITY
작성자
김수진
학과 또는 소속(회사명)
컴퓨터공학과
이메일
su10jin11@khu.ac.kr
조회수
3
평가(좋아요)수
0
댓글수
0
⏰ 성공적인 1일 1커밋을 위한 서비스, COMMinITY
1️⃣ 서비스 개요
- "1일 1커밋" 습관을 형성하도록 돕는 앱
- 사용자가 깃허브에서 경쟁하며 성공적인 코딩 습관을 길러주는 서비스
2️⃣ 1일 1커밋이란?
- "1일 1커밋"은 하루에 한 번 이상 깃허브(GitHub)에 코드를 업데이트하거나 작업 내용을 기록(커밋)하는 것을 의미합니다.
- 깃허브의 커밋은 코드 변경 사항을 저장하고 공유하는 단위이므로, 1일 1커밋은 꾸준히 개발 활동을 이어가겠다는 습관을 형성하는 데 초점이 맞춰져 있습니다.
- 깃허브 프로필에는 커밋 이력이 시각적으로 나타나기 때문에 매일 커밋을 하면 커밋 기록이 연속적으로 채워지며 이를 "커밋 잔디 채우기"라고도 부릅니다.
3️⃣ 기능 소개
1. 메인화면
- 오늘이 몇 시간, 몇 분 남았는지 알려주는 기능
하루의 마감까지 얼마나 남았는지를 실시간으로 확인 가능
- 친구들과의 경쟁
친구들이 오늘 커밋했는지 여부를 비교하며 동기부여 가능
2. 커밋달력
- 커밋 내용 시각화
내 깃허브 커밋 기록을 달력 형식으로 한눈에 확인
3. 기존 깃허브 앱과의 차별점
- 깃허브 Repository별로 커밋 내역을 볼 수 있지만 COMMinITy에서는 모든 커밋 기록을 바로 확인 가능
4. 마이페이지
- 팔로우/팔로잉 조회
유저가 팔로우하거나 팔로잉 중인 사람들의 목록을 확인
- 방명록 기능
유저 프로필 페이지에 방문 후 메모나 메시지를 남길 수 있는 기능
5. 커뮤니티
- 커밋 공유 기능
자신의 커밋 기록이나 개발 경험을 커뮤니티 내에서 자유롭게 공유 가능
다른 사용자들과의 활발한 소통 지원
4️⃣ 사용 기술
Client : Flutter(앱)
Server : node.js
Infra : AWS
< 아키텍처 >
1. 고가용성
- 다중 AZ에 배포된 EC2와 RDS를 사용하여 서비스 중단을 방지
- EC2 인스턴스는 두 개의 AZ(A와 C)에 분산되어 있으며, 특정 AZ에 장애가 발생해도 다른 AZ의 인스턴스를 통해 서비스가 계속 유지됨
- RDS도 다중 AZ 옵션을 사용하여 장애 복구를 자동화
2. 확장성
- Elastic Load Balancer (ELB)를 통해 트래픽을 EC2 인스턴스에 균등 분배
- 트래픽 증가 시 EC2 인스턴스를 자동으로 확장(오토 스케일링)하여 부하 처리
3. 보안 강화
- 퍼블릭 서브넷
사용자 요청을 처리하는 EC2 인스턴스를 배치하며, 인터넷 게이트웨이를 통해 외부와 통신
- 프라이빗 서브넷
RDS와 같은 민감한 데이터를 다루는 리소스를 배치해 외부 접근을 차단
EC2와 Redis는 VPC 내부 네트워크를 통해 통신하며, 보안 그룹 및 네트워크 ACL을 통해 트래픽을 제어
4. 자동화
✏️ GitHub Actions
- CI/CD 파이프라인을 구현하여 애플리케이션 코드를 자동으로 빌드, 테스트, 배포
- 새 코드가 푸시되면 EC2에 최신 애플리케이션 버전을 배포
✏️Terraform
- 인프라 프로비저닝을 자동화하여 클라우드 리소스를 코드로 관리하는 IaC Tool
- Terraform을 통한 VPC 생성
퍼블릭/프라이빗 서브넷, 인터넷 게이트웨이, 라우팅 테이블을 정의, 생성
- EC2 인스턴스 배포
애플리케이션 컨테이너 실행을 위해 Amazon Linux 또는 Ubuntu 기반의 EC2를 자동으로 생성 및 설정
- RDS 생성
Terraform을 통해 다중 AZ 구성이 포함된 RDS를 프로비저닝
- ELB 설정
대상 그룹, 리스너, 헬스 체크 등 ELB 구성 요소를 코드로 작성하여 관리
- 보안 그룹 관리
EC2, RDS, Redis에 필요한 포트 및 IP 범위를 Terraform 코드로 정의하여 일관된 보안 정책 적용
5️⃣ 1일 1커밋 관리 서비스의 필요성
1. 꾸준함 유지를 위한 지원
- 혼자 1일 1커밋을 지속하기 어렵고, 동기부여가 약해지기 쉬움
- 실시간 피드백과 기록 관리로 동기부여를 제공
2. 커밋 활동의 가시화
- 깃허브의 단순 커밋 달력 외에 구체적인 기록과 분석 필요
- 활동을 시각화하여 성과를 직관적으로 보여줌
3. 경쟁으로 인한 동기 부여
- 친구와의 비교 및 협력으로 긍정적인 경쟁 유도
- 커뮤니티 기능으로 지속 가능성과 재미 강화
✏️ 1일 1커밋 관리 서비스는 개발자들이 습관을 형성하고 성장할 수 있도록 돕는 필수적인 도구입니다.
꾸준한 관리와 동기부여를 통해 개발자의 성장을 함께 만들어 갑니다.
1️⃣ 서비스 개요
- "1일 1커밋" 습관을 형성하도록 돕는 앱
- 사용자가 깃허브에서 경쟁하며 성공적인 코딩 습관을 길러주는 서비스
2️⃣ 1일 1커밋이란?
- "1일 1커밋"은 하루에 한 번 이상 깃허브(GitHub)에 코드를 업데이트하거나 작업 내용을 기록(커밋)하는 것을 의미합니다.
- 깃허브의 커밋은 코드 변경 사항을 저장하고 공유하는 단위이므로, 1일 1커밋은 꾸준히 개발 활동을 이어가겠다는 습관을 형성하는 데 초점이 맞춰져 있습니다.
- 깃허브 프로필에는 커밋 이력이 시각적으로 나타나기 때문에 매일 커밋을 하면 커밋 기록이 연속적으로 채워지며 이를 "커밋 잔디 채우기"라고도 부릅니다.
3️⃣ 기능 소개
1. 메인화면
- 오늘이 몇 시간, 몇 분 남았는지 알려주는 기능
하루의 마감까지 얼마나 남았는지를 실시간으로 확인 가능
- 친구들과의 경쟁
친구들이 오늘 커밋했는지 여부를 비교하며 동기부여 가능
2. 커밋달력
- 커밋 내용 시각화
내 깃허브 커밋 기록을 달력 형식으로 한눈에 확인
3. 기존 깃허브 앱과의 차별점
- 깃허브 Repository별로 커밋 내역을 볼 수 있지만 COMMinITy에서는 모든 커밋 기록을 바로 확인 가능
4. 마이페이지
- 팔로우/팔로잉 조회
유저가 팔로우하거나 팔로잉 중인 사람들의 목록을 확인
- 방명록 기능
유저 프로필 페이지에 방문 후 메모나 메시지를 남길 수 있는 기능
5. 커뮤니티
- 커밋 공유 기능
자신의 커밋 기록이나 개발 경험을 커뮤니티 내에서 자유롭게 공유 가능
다른 사용자들과의 활발한 소통 지원
4️⃣ 사용 기술
Client : Flutter(앱)
Server : node.js
Infra : AWS
< 아키텍처 >
1. 고가용성
- 다중 AZ에 배포된 EC2와 RDS를 사용하여 서비스 중단을 방지
- EC2 인스턴스는 두 개의 AZ(A와 C)에 분산되어 있으며, 특정 AZ에 장애가 발생해도 다른 AZ의 인스턴스를 통해 서비스가 계속 유지됨
- RDS도 다중 AZ 옵션을 사용하여 장애 복구를 자동화
2. 확장성
- Elastic Load Balancer (ELB)를 통해 트래픽을 EC2 인스턴스에 균등 분배
- 트래픽 증가 시 EC2 인스턴스를 자동으로 확장(오토 스케일링)하여 부하 처리
3. 보안 강화
- 퍼블릭 서브넷
사용자 요청을 처리하는 EC2 인스턴스를 배치하며, 인터넷 게이트웨이를 통해 외부와 통신
- 프라이빗 서브넷
RDS와 같은 민감한 데이터를 다루는 리소스를 배치해 외부 접근을 차단
EC2와 Redis는 VPC 내부 네트워크를 통해 통신하며, 보안 그룹 및 네트워크 ACL을 통해 트래픽을 제어
4. 자동화
✏️ GitHub Actions
- CI/CD 파이프라인을 구현하여 애플리케이션 코드를 자동으로 빌드, 테스트, 배포
- 새 코드가 푸시되면 EC2에 최신 애플리케이션 버전을 배포
✏️Terraform
- 인프라 프로비저닝을 자동화하여 클라우드 리소스를 코드로 관리하는 IaC Tool
- Terraform을 통한 VPC 생성
퍼블릭/프라이빗 서브넷, 인터넷 게이트웨이, 라우팅 테이블을 정의, 생성
- EC2 인스턴스 배포
애플리케이션 컨테이너 실행을 위해 Amazon Linux 또는 Ubuntu 기반의 EC2를 자동으로 생성 및 설정
- RDS 생성
Terraform을 통해 다중 AZ 구성이 포함된 RDS를 프로비저닝
- ELB 설정
대상 그룹, 리스너, 헬스 체크 등 ELB 구성 요소를 코드로 작성하여 관리
- 보안 그룹 관리
EC2, RDS, Redis에 필요한 포트 및 IP 범위를 Terraform 코드로 정의하여 일관된 보안 정책 적용
5️⃣ 1일 1커밋 관리 서비스의 필요성
1. 꾸준함 유지를 위한 지원
- 혼자 1일 1커밋을 지속하기 어렵고, 동기부여가 약해지기 쉬움
- 실시간 피드백과 기록 관리로 동기부여를 제공
2. 커밋 활동의 가시화
- 깃허브의 단순 커밋 달력 외에 구체적인 기록과 분석 필요
- 활동을 시각화하여 성과를 직관적으로 보여줌
3. 경쟁으로 인한 동기 부여
- 친구와의 비교 및 협력으로 긍정적인 경쟁 유도
- 커뮤니티 기능으로 지속 가능성과 재미 강화
✏️ 1일 1커밋 관리 서비스는 개발자들이 습관을 형성하고 성장할 수 있도록 돕는 필수적인 도구입니다.
꾸준한 관리와 동기부여를 통해 개발자의 성장을 함께 만들어 갑니다.
동영상 링크
성공적인 1일 1커밋을 위한 서비스, COMMinITY
조회수
3
평가(좋아요)수
0
댓글수
0
게시 : 2024년 11월 20일
김수진
컴퓨터공학과
su10jin11@khu.ac.kr
성공적인 1일 1커밋을 위한 서비스, COMMinITY
조회수
3
평가(좋아요)수
0
댓글수
0
게시 : 2024-11-20
Member
김수진
Keyword
1일 1커밋, 깃허브, 잔디, flutter, 플러터, node.js, express, aws
- 모바일/IoT