Project 10

[Pocket Art] 프로젝트 시작

졸업 작품 시작 1. 주제인공지능 CycleGAN을 활용한 그림 자동완성 AR 서비스 2. 시장/기술 분석3. UseCase 4. 서비스 구성도[Backend]1. Frontend에서 받은 정보를 토대로 Springboot RestAPI 호출2. 파라미터로 넘겨 받은 모델 가중치를 Djl library를 통해 서버 내부 코드에 전달3. 서버 DB의 부담을 줄이기 위해 사용자가 업로드한 사진 및 변환된 사진들은 AWS S3 Bucket에서 관리 [Frontend]1. Flutter 프레임워크를 사용하여 사용자에게 정보를 입력받고 서버에 전달함2. 사용자에게 선택한 화풍에 맞게 변환된 이미지를 보여줌 [AI]1. 사용자가 선택한 화풍을 파라미터로 넘겨 받는다.2. 사전에 Pytorch를 통해 학습된 모델 ..

Project/Pocket Art 2025.04.26

[ SUNNY] 커뮤니티 기능

[ 커뮤니티 기능 ]작성한 요구 사항 명세서에 맞게 커뮤니티 기능 개발을 시작하였다. 커뮤니티 기능을 개발하기 위해 생성해야 하는 테이블들은 다음과 같다.users커뮤니티와 다대일 관계를 맺기 위해 필요한 테이블사용자가 여러 개의 게시글을 작성할 수 있기 때문에 다대일 관계 → [N:1]N : community (*연관관계 주인)1 : users마이페이지에서 사용자가 자신이 작성한 게시글을 조회할 수 있기 때문에 (연관관계에서 주인이 아닌 쪽에서 조회를 해야함) 양방향 매핑을 해야함users → @oneToMany , community → @ManyToOneusers 쪽에 @oneToMany (mappedBy = “users”) 를 꼭 명시함으로써 양방향을 성립하도록 한다.communityphoto(me..

Project/SUNNY 2025.04.26

[SUNNY] Apple 로그인 기능

[ 사전 준비 ]Apple Developer Program 에 가입되어 있어야 한다. 등록하면 하단의 정보들을 받게 된다. 👀 ( * 해당 내용은 노출되면 안되니 조심 !! )1. TEAM_ID : 2. CLIENT_ID : 3. REDIRECT_URL : 4. KEY_ID : 5. Bundle ID :1. 애플 로그인 [ 로그인 Flow ]모바일(App-client)로부터 로그인 요청을 받음애플 서버가 auth code(authorization_code)를 발급해 준다.애플 서버에서 받은 code를 스프링 서버(App-server)에 전달서버는 이 토큰을 들고 애플서버로 가서 사용자가 진짜 맞는지 검증맞으면 사용자에 대한 정보 id_token을 내려줌id_token은 jwt 형태이기 때문에 decod..

Project/SUNNY 2025.04.26

[SUNNY] API 통신 정리

⚠️ 클라이언트의 요청이 올바르지 않은 요청일 경우 서버는 어떻게 응답하는 것이 좋을까?HTTP (HyperText Transfer Protocol): 웹 환경에서 정보를 주고받기 위한 프로토콜클라이언트는 HTTP의 상태 코드를 확인하여 요청의 성공 or 실패를 확인할 수 있다.1. 성공 코드 : 2XX Success2xx번대의 상태 코드들은 “서버가 클라이언트의 요청을 성공적으로 처리했다” 는 의미이다.200 - OK클라이언트의 요청을 서버가 정상적으로 처리했다. (성공에 대한 모든 상태 코드를 200 으로 응답해도 크게 상관x) ✅ 상태 코드는 200 으로 성공인데 body 내용엔 실패에 관한 내용을 return 하고 있으면 올바른 설계 x201 - Created클라이언트의 요청을 서버가 정상적으로 ..

Project/SUNNY 2025.04.26

(4) 채팅 개발 - kafka 사용

📝 이번 포스팅은 본격적으로 Kafka를 사용하고자 한다.우선 앞서 살펴본 채팅 요구사항에 의하면 채팅은 DM, 모임, 운동 으로 3가지로 나뉜다.지난 포스팅으로 Kafka에 대해 알아봤으니 이번에는 본격적으로 어떻게 사용할 지 정하려고 한다.1. TOPIC사전에 팀원들과 함께 Kafka 정의서를 작성하였다. TOPIC은 말 그대로 해당 토픽에 대해 Publisher가 발행하면 그 토픽을 구독한 Consumer가 해당 메시지를 소비하게 된다.채팅방 Type이 3가지이므로 Topic 역시 해당 Type에 따라 구성하였다.2. EXERCISE TOPICEXERCISE_CREATED : 운동 채팅방 생성EXERCISE_DELETED : 운동 채팅방 삭제EXERCISE_COMPLETED : 운동이 완료될 경우..

(3) 채팅 개발 - Kafka 도입

이번 포스팅은 채팅 개발에 앞서 Kafka 도입에 대해 얘기해보려고 한다.📚1. Kafka 도입 배경앞서 확인한 요구사항에 따르면 채팅 도메인이 많은 도메인과 의존성이 있는 것을 확인했다. 채팅 도메인을 비동기적으로 처리하지 않고 사용한다면 운동/모임 도메인 쪽에서 코드가 수정되면 채팅쪽 코드도 동시에 계속 수정해야해서 추후 유지보수에 굉장히 안좋을 것이라는 판단을 했다. 따라서 이벤트 기반 스트리밍인 Kafka를 도입하기로 했다.2. Why Kafka?왜 많은 비동기 처리 방식 중 Kafka를 선택했을까?! 그 이유에 대해 알아보자.우선 Kafka의 특징에 대해 알아보자.3. Kafka 특징고성능 분산 이벤트 스트리밍 플랫폼Pub-Sub 모델의 메시지 큐 형태로 동작이벤트 브로커 방식** 이벤트 브로..

(2) 프로젝트 요구사항 정리

지난 포스팅에 이어.. 이번 포스팅은 내가 맡게 된 채팅 요구사항을 정리하고자 한다.채팅은 크게 3가지 (모임,운동,개인) 로 구분되며 모임과 운동 생성시에 채팅이 자동 생성되어야 한다.채팅방 생성 요구사항⚠️ 주의사항1. 개인 채팅은 친구 신청 후 채팅을 할 수 있다.2. 모임과 운동 생성과 채팅방 생성 주기가 같아야 한다.3. 모임과 운동에 신규 참가자가 추가되면 채팅방도 자동으로 추가해야한다.채팅방 수정 요구사항채팅방 삭제 요구사항 ⚠️ 주의사항1. 채팅방이 삭제되어도 채팅 메시지는 DB에 보관해야 한다.2. 운동 완료 or 모임 삭제 시 채팅방이 자동으로 삭제되어야 한다. 정리 - 본격적인 개발에 앞서..🤔채팅 도메인이 모임과 운동 도메인의 생명 주기가 같다.생명 주기가 같다는 것은 도메인과의 ..

(1) 프로젝트 소개

프로젝트 소개"전국 배드민턴 동호회원들을 위한 올인원 배드민턴 플랫폼!"여러 플랫폼을 거치지 않고 하나의 플랫폼으로 대회 일정 확인 및 신청부터 운동 가입 & 채팅 & 실시간 게임 확인 등 다양한 기능을 즐길 수 있다.프로젝트 개요기간: 2024.06~타겟층 : 전국 배드민턴 동호회원 or 배드민턴에 관심있는 누구나!목표: 8월 내에 1차 MVP 기능 출시 (현재 출시 완료⭐️)프로젝트 기능로그인 기능 ( 애플, 카카오, 네이버, 전화번호)모임 및 운동 생성 기능실시간 운동 현황 조회 기능게임 매치 및 심판 기능채팅 기능 -> 🔥 담당 역할!! 🔥커뮤니티 기능내 프로필 조회 기능알림 기능협업 규칙주 1~2회 정도 Discord 회의Jira 통한 이슈 및 형상 관리이슈가 생기면 언제든지 Discord..

(2) 프로젝트 요구사항 정리

저번 포스팅에 이어 프로젝트 요구사항들을 정리하려고 한다.기능들이 꽤 많기 때문에 꼼꼼히 정리하는 것이 중요할 것 같다!1. 로그인 기능사용자는 애플 로그인을 할 수 있다.이메일 수집은 필수가 아니며, 애플에서 제공하는 기능 중 하나인 이메일 가리기를 해도 앱에 가입할 수 있다.2. 닉네임 설정 기능사용자는 로그인이 끝난 후 닉네임을 설정할 수 있다.닉네임은 2~10자로 제한되며, 특수문자 + 숫자까지 허용 가능하다. 이모지는 허용 불가닉네임은 중복하여 사용할 수 없다.3 .커뮤니티 기능사용자는 커뮤니티 기능을 이용할 수 있다. (절약 꿀팁, 자유 게시판)사용자는 게시글을 작성할 수 있다.- [게시글 폼] : 제목, 내용, 미디어 첨부(이미지, 동영상)사용자는 게시글을 삭제할 수 있다.- 사용자는 자..

Project/SUNNY 2025.04.24

(1) 프로젝트 소개

프로젝트 소개1020 세대를 겨냥, 재미를 통해 동기를 부여하는 절약 보조 서비스!프로젝트 개요기간 : 2023.07~타겟층 : 1020 세대, MZ 세대목표 : 앱스토어 출시 (현재 출시 완료⭐️)프로젝트 기능로그인 기능 (애플) ->🔥 담당커뮤니티 기능 -> 🔥 담당채팅 기능친구 기능대결 기능절약 목표 등록 기능 -> 🔥 담당지출 등록 기능 -> 🔥 담당내 프로필 조회 기능알림 기능 -> 🔥 담당협업 규칙주 1~2회 정도 Google Meet 회의Notion, Jira를 통한 이슈 및 형상 관리정리처음으로 출시를 목표로 진행하는 사이드 프로젝트이다. 담당 기능을 멋지게 수행해서 성공적으로 마무리했으면 좋겠다.이미 출시 완료, 지금은 리팩토링 진행중인데 노션으로 기록하던 것들을 블로그에 옮기고..

Project/SUNNY 2025.04.24
728x90