<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Final Project on DDWU ACC</title><link>https://ddwu-aws-cloud-club.github.io/categories/final-project/</link><description>Recent content in Final Project on DDWU ACC</description><generator>Hugo -- 0.151.0</generator><language>ko</language><lastBuildDate>Sat, 04 Jan 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://ddwu-aws-cloud-club.github.io/categories/final-project/index.xml" rel="self" type="application/rss+xml"/><item><title>Final Project - 최종 프로젝트 발표</title><link>https://ddwu-aws-cloud-club.github.io/post/2nd/post-5-final-proj/</link><pubDate>Sat, 04 Jan 2025 00:00:00 +0000</pubDate><guid>https://ddwu-aws-cloud-club.github.io/post/2nd/post-5-final-proj/</guid><description>&lt;blockquote&gt;
&lt;p&gt;2024.9.10 - 2025.01.04 진행&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id="-final-project"&gt;💡 Final Project&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Case study를 마무리한 후, final project 팀 구성을 진행했어요.
&lt;ul&gt;
&lt;li&gt;서쪽솜솜 팀: 김시은, 권민정, 조정원, 최가람, 하서정&lt;/li&gt;
&lt;li&gt;솜솜파티 팀: 이가연, 황지민, 김민경, 이승연, 오은아&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="bingo"&gt;Bingo&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img alt="bingo" loading="lazy" src="https://ddwu-aws-cloud-club.github.io/2nd/final_proj/bingo.png"&gt;&lt;/th&gt;
&lt;th&gt;&lt;img alt="bingo" loading="lazy" src="https://ddwu-aws-cloud-club.github.io/2nd/final_proj/bingo_1.png"&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;9월 동안, 팀별 프로젝트 주제를 설정하고 팀별 빙고 활동을 진행했어요.&lt;/li&gt;
&lt;li&gt;두 팀 모두 빙고 활동에 적극적으로 참여했으며, 팀워크를 다지고 서로를 알아가는 소중한 시간을 보냈어요!&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="모의-프로젝트-발표-세션"&gt;모의 프로젝트 발표 세션&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img alt="westsomsom" loading="lazy" src="https://ddwu-aws-cloud-club.github.io/2nd/final_proj/westsomsom.png"&gt;&lt;/th&gt;
&lt;th&gt;&lt;img alt="partysomsom" loading="lazy" src="https://ddwu-aws-cloud-club.github.io/2nd/final_proj/partysomsom.png"&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;10월, 11월동안 프로젝트를 계획하고 준비하는 시간을 가졌어요.&lt;/li&gt;
&lt;li&gt;팀 별로 프로젝트에 사용할 기술 스택, 요구사항 분석, 아키텍처 설계 등의 활동을 진행했어요.&lt;/li&gt;
&lt;li&gt;11월 23일에는 지금까지 팀 별로 프로젝트의 진행 상황과 설계 내용을 발표하는 모의 프로젝트 발표 세션을 가졌어요.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="프로젝트-개발"&gt;프로젝트 개발&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;img alt="westsomsom" loading="lazy" src="https://ddwu-aws-cloud-club.github.io/2nd/final_proj/westsomsom_1.png"&gt;&lt;/th&gt;
&lt;th&gt;&lt;img alt="partysomsom" loading="lazy" src="https://ddwu-aws-cloud-club.github.io/2nd/final_proj/partysomsom_1.png"&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul&gt;
&lt;li&gt;기말고사가 마무리된 이후, 프로젝트의 본격적인 개발을 진행했어요.&lt;/li&gt;
&lt;li&gt;백엔드 서버와 AWS 아키텍처와의 연결부터 CI/CD 구축, 부하 테스트와 같은 심화적인 작업까지 수행했어요.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="서쪽솜솜-팝업-스토어-예약-시스템"&gt;서쪽솜솜: 팝업 스토어 예약 시스템&lt;/h2&gt;
&lt;p&gt;&lt;img alt="westsomsom" loading="lazy" src="https://ddwu-aws-cloud-club.github.io/2nd/final_proj/westsomsom_2.png"&gt;&lt;/p&gt;</description></item><item><title>Final Project 서쪽솜솜: 팝업 스토어 예약 시스템</title><link>https://ddwu-aws-cloud-club.github.io/post/2nd/post-6-final-proj-west-somsom/</link><pubDate>Sat, 04 Jan 2025 00:00:00 +0000</pubDate><guid>https://ddwu-aws-cloud-club.github.io/post/2nd/post-6-final-proj-west-somsom/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;DDWU ACC 2nd Final Project Team 1 west-somsom (서쪽솜솜)&lt;/strong&gt;
&lt;a href="https://github.com/orgs/west-somsom/repositories"&gt;https://github.com/orgs/west-somsom/repositories&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;h1 id="프로젝트-소개"&gt;프로젝트 소개&lt;/h1&gt;
&lt;hr&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;팝업 스토어를 이용하려는 사용자가 다양한 정보를 탐색하고 예약 및 소통을 원활하게 진행할 수 있도록 지원하는 통합 플랫폼&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Final Project 솜솜파티: 축제 예약 플랫폼</title><link>https://ddwu-aws-cloud-club.github.io/post/2nd/post-7-final-proj-party-somsom/</link><pubDate>Sat, 04 Jan 2025 00:00:00 +0000</pubDate><guid>https://ddwu-aws-cloud-club.github.io/post/2nd/post-7-final-proj-party-somsom/</guid><description>&lt;h1 id="서비스-소개"&gt;서비스 소개&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;사용자가 축제를 쉽고 직관적으로 예약하고, 참여자들과 정보를 공유하며 실시간 소통할 수 있는 종합 축제 예약 플랫폼.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id="서비스-주요-기능"&gt;서비스 주요 기능&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;회원가입/로그인
&lt;ul&gt;
&lt;li&gt;기본 정보(이메일, 비밀번호, 이름)를 입력하여 간편하게 회원가입할 수 있으며, 가입한 계정을 통해 서비스 이용 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;축제 정보 제공
&lt;ul&gt;
&lt;li&gt;축제 이름, 시작일과 종료일, 상세 설명 등 축제에 대한 전반적인 정보를 한눈에 확인할 수 있도록 제공.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;축제 예약
&lt;ul&gt;
&lt;li&gt;원하는 축제를 쉽고 빠르게 예약할 수 있으며, 대기열 페이지를 통해 실시간으로 예약 순서를 확인할 수 있도록 구성.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;채팅 시스템
&lt;ul&gt;
&lt;li&gt;실시간으로 소통하며 정보를 공유할 수 있는 채팅 기능을 제공.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;축제 검색
&lt;ul&gt;
&lt;li&gt;최신 축제 정보를 탐색하거나 사용자가 입력한 키워드를 통해 원하는 축제를 빠르게 검색할 수 있도록 지원.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;마이페이지
&lt;ul&gt;
&lt;li&gt;사용자가 예약한 축제와 참여 중인 채팅방을 확인하고 관리할 수 있도록 지원.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;축제 알림
&lt;ul&gt;
&lt;li&gt;예약한 축제가 시작되기 하루 전에 푸시 알림을 제공.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id="기술-스택"&gt;기술 스택&lt;/h1&gt;
&lt;h3 id="-tech-stack"&gt;📚 &lt;strong&gt;Tech Stack&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Spring Boot&lt;/li&gt;
&lt;li&gt;Spring JPA&lt;/li&gt;
&lt;li&gt;Spring Security&lt;/li&gt;
&lt;li&gt;JAVA&lt;/li&gt;
&lt;li&gt;JWT&lt;/li&gt;
&lt;li&gt;AWS SQS&lt;/li&gt;
&lt;li&gt;Kafka&lt;/li&gt;
&lt;li&gt;Stomp&lt;/li&gt;
&lt;li&gt;AWS Cognito&lt;/li&gt;
&lt;li&gt;Firebase Cloud Messaging&lt;/li&gt;
&lt;li&gt;AWS EventBridge&lt;/li&gt;
&lt;li&gt;AWS SNS&lt;/li&gt;
&lt;li&gt;AWS SQS&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-db"&gt;🔩 &lt;strong&gt;DB&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;MySQL (AWS RDS)&lt;/li&gt;
&lt;li&gt;Redis (AWS ElastiCache)&lt;/li&gt;
&lt;li&gt;DynamoDB&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="-devops"&gt;🗜 &lt;strong&gt;DevOps&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;AWS EC2&lt;/li&gt;
&lt;li&gt;AWS Application Load Balancer&lt;/li&gt;
&lt;li&gt;AWS Auto Scaling&lt;/li&gt;
&lt;li&gt;AWS Code Delploy&lt;/li&gt;
&lt;li&gt;GitHub Actions&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="프로젝트-산출물"&gt;&lt;strong&gt;프로젝트 산출물&lt;/strong&gt;&lt;/h1&gt;
&lt;h2 id="api-명세서"&gt;API 명세서&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;기능&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;API URI&lt;/th&gt;
&lt;th&gt;HTTP Method&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;회원가입&lt;/td&gt;
&lt;td&gt;/signup&lt;/td&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;회원가입 이메일 인증&lt;/td&gt;
&lt;td&gt;/confirm-signup&lt;/td&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;로그인&lt;/td&gt;
&lt;td&gt;/login&lt;/td&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;로그아웃&lt;/td&gt;
&lt;td&gt;/signout&lt;/td&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;토큰 유효성 검사&lt;/td&gt;
&lt;td&gt;/verify-token&lt;/td&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;토큰 갱신&lt;/td&gt;
&lt;td&gt;/refresh-token&lt;/td&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;페스티벌 생성&lt;/td&gt;
&lt;td&gt;/festivals/create&lt;/td&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;페스티벌 목록 조회&lt;/td&gt;
&lt;td&gt;/festivals&lt;/td&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;페스티벌 세부 정보 조회&lt;/td&gt;
&lt;td&gt;/festivals/{festivalId}&lt;/td&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;페스티벌 검색&lt;/td&gt;
&lt;td&gt;/festivals/search&lt;/td&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;티켓 예매&lt;/td&gt;
&lt;td&gt;/reservations&lt;/td&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;내 예약 목록 조회&lt;/td&gt;
&lt;td&gt;/reservations&lt;/td&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;채팅방 참여&lt;/td&gt;
&lt;td&gt;/festivals/chatting/{chatRoomId}/join&lt;/td&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;채팅방 진입&lt;/td&gt;
&lt;td&gt;/festivals/chatting/{chatRoomId}&lt;/td&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;참여 중인 채팅방 목록 조회&lt;/td&gt;
&lt;td&gt;/festivals/chatting/list&lt;/td&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;채팅방 나가기&lt;/td&gt;
&lt;td&gt;/festivals/chatting/delete&lt;/td&gt;
&lt;td&gt;DELETE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FCM 토큰 비활성화&lt;/td&gt;
&lt;td&gt;/notification/deactivate&lt;/td&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FCM 토큰 활성화&lt;/td&gt;
&lt;td&gt;/notification/activate&lt;/td&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;대기열 등록&lt;/td&gt;
&lt;td&gt;/queues/{queue}/waiting-room/users/{email}&lt;/td&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;대기열에서 유저 순위 반환&lt;/td&gt;
&lt;td&gt;/queues/{queue}/users/{email}/rank&lt;/td&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;예약 페이지 진입 가능 여부 반환&lt;/td&gt;
&lt;td&gt;/queues/{queue}/users/{email}/allowed&lt;/td&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;대기열 탈퇴&lt;/td&gt;
&lt;td&gt;/queues/{queue}/users/{email}/leave&lt;/td&gt;
&lt;td&gt;DELETE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;대기 완료열 탈퇴&lt;/td&gt;
&lt;td&gt;/queues/{queue}/users/{email}/leave-proceed&lt;/td&gt;
&lt;td&gt;DELETE&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="erd"&gt;ERD&lt;/h2&gt;
&lt;p&gt;&lt;img alt="image" loading="lazy" src="https://ddwu-aws-cloud-club.github.io/2nd/final_proj_partysomsom/image_1.png"&gt;&lt;/p&gt;</description></item><item><title>9th Session: Final Project - 최종 프로젝트 발표</title><link>https://ddwu-aws-cloud-club.github.io/post/1st/post-14-9th-session/</link><pubDate>Sun, 14 Apr 2024 00:00:00 +0000</pubDate><guid>https://ddwu-aws-cloud-club.github.io/post/1st/post-14-9th-session/</guid><description>&lt;blockquote&gt;
&lt;p&gt;2023.04.14 / 14:00 - 16:00&lt;br&gt;
jitsi (온라인)&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id="-팀-별-프로젝트-발표"&gt;💡 팀 별 프로젝트 발표&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;약 한달간 진행된 팀 프로젝트를 발표하고 의견을 주고받았어요.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="팀-a-콘서트-예약-프로그램"&gt;팀 A: 콘서트 예약 프로그램&lt;/h3&gt;
&lt;p&gt;MSA기반의 콘서트 예약 프로그램을 구현하고, 선착순 콘서트 예약은 Redis 를 이용하여 구성하고, 개발하였습니다. 자세한 내용은 &lt;a href="https://ddwu-aws-cloud-club.github.io/post/1st/post-15-final-proj-a/"&gt;다음 페이지&lt;/a&gt;에서 확인해주세요
&lt;img alt="5" loading="lazy" src="https://ddwu-aws-cloud-club.github.io/1st/session_3/5.png" title="5"&gt;&lt;/p&gt;</description></item><item><title>Final Project A: 콘서트 예약 프로그램</title><link>https://ddwu-aws-cloud-club.github.io/post/1st/post-15-final-proj-a/</link><pubDate>Sun, 14 Apr 2024 00:00:00 +0000</pubDate><guid>https://ddwu-aws-cloud-club.github.io/post/1st/post-15-final-proj-a/</guid><description>&lt;h2 id="1프로젝트-아키텍처"&gt;1️⃣ 프로젝트 아키텍처&lt;/h2&gt;
&lt;hr&gt;
&lt;ul&gt;
&lt;li&gt;외부 사용자 또는 클라이언트는 API Gateway를 통해 서비스에 액세스합니다.&lt;/li&gt;
&lt;li&gt;각 서비스는 독립적으로 배포되며, EC2 인스턴스에서 실행됩니다.&lt;/li&gt;
&lt;li&gt;서비스 별 데이터는 각 RDS 인스턴스에 저장되며, 프라이빗 서브넷에 배치됩니다.&lt;/li&gt;
&lt;li&gt;API Gateway를 통해 서비스 간 통신이 이루어지며, Gateway는 각 서비스의 IP 및 포트에 대한 정보를 갖고 있습니다.&lt;/li&gt;
&lt;li&gt;JWT 토큰을 사용하여 인증 및 권한을 부여하고, 서브넷 및 보안 그룹으로 네트워크 보안을 강화했습니다.&lt;/li&gt;
&lt;li&gt;유레카 서버는 서비스의 등록 및 검색을 관리하며, 서비스 Discovery를 지원합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Untitled" loading="lazy" src="https://ddwu-aws-cloud-club.github.io/1st/final_a/Untitled.png"&gt;&lt;/p&gt;</description></item><item><title>Final Project B: 모의 수강신청 프로그램</title><link>https://ddwu-aws-cloud-club.github.io/post/1st/post-16-final-proj-b/</link><pubDate>Sun, 14 Apr 2024 00:00:00 +0000</pubDate><guid>https://ddwu-aws-cloud-club.github.io/post/1st/post-16-final-proj-b/</guid><description>&lt;h2 id="b팀-프로젝트-소개"&gt;B팀 프로젝트 소개&lt;/h2&gt;
&lt;p&gt;솜솜이의 수강 신청을 책임질, 모의 수강신청 프로젝트&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/ddwu-aws-cloud-club/team-b"&gt;https://github.com/ddwu-aws-cloud-club/team-b&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;요구사항 및 시나리오 정의&lt;/p&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;수강신청 서비스는 새학기가 시작될 때 사용자가 몰릴 것이다.
&lt;ul&gt;
&lt;li&gt;특정 기간에 사용자 트래픽이 과중된다.&lt;/li&gt;
&lt;li&gt;트래픽 분산이 필요하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;사용자의 데이터와 서비스의 안정성을 위해 이중화 구성(Multi - AZ)이 필요하다.
&lt;ul&gt;
&lt;li&gt;사용자 1 ~ n 명의 경우 인스턴스 경량화가 필요하다.&lt;/li&gt;
&lt;li&gt;사용자가 100명이 될 경우, 관리형 서비스가 필요할 것이다.&lt;/li&gt;
&lt;li&gt;사용자가 1000명이상이 될 경우, 부하를 줄이기 위한 아키텍처 구성이 필요하다. ← 저희 서비스에서는 이 부분에 집중하게 되었습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 id="아키텍처-설계"&gt;아키텍처 설계&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;적은 사용자에 대한 고려&lt;/p&gt;</description></item></channel></rss>