Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Comide 프로젝트

📌 프로젝트 정보

  • 프로젝트 명 : Comide(코미디)
  • 프로젝트 기간 : 2023년 12월 18일 ~ 2024년 11월 6일
  • 배포 링크 : 🔗Comide
  • 시연 영상 : 🎥영상

📑목차

  1. 프로젝트 개요
  2. 개발 환경 및 일정
  3. 팀원 구성

🔍프로젝트 개요

💡프로젝트 소개

  • Comide는 Community + IDE의 합성어입니다.
  • 다양한 사용자들의 개발 능력향상 시키고 소통하며 프로젝트 진행까지 지원하는 웹 커뮤니티입니다.

🛠️개발 동기 및 목적

💡개발 동기

개발을 진행할 때 여러 가지 도구를 동시에 사용해야 합니다.

  • 🖥️ 코드 작성을 위한 에디터
  • 🗣️ 팀원과 소통하기 위한 커뮤니케이션 도구
  • ❓ 문제 해결을 위한 개발자 커뮤니티
  • 🤖 편리한 코드 작성을 위한 AI 서비스

하지만 이처럼 다양한 도구를 병행하는 것은 비효율적이며 생산성을 저하시킵니다.
또한, 개발 지식이 부족한 입문자는 개발자 커뮤니티를 적극적으로 활용하기 어려운 문제도 존재합니다.

🎯개발 목적

이 프로젝트는 코드 작성, 협업, 문제 해결, AI 지원을 하나의 플랫폼에서 제공하는 통합 개발 환경을 목표로 합니다.
이를 통해 개발자들은 보다 효율적으로 작업할 수 있으며 입문자들도 직관적인 UI/UX를 통해 쉽게 활용할 수 있습니다. 🚀

⚙️개발 환경 및 일정

🖥️개발 환경

  • [백엔드]
    • Java 17
    • Spring Boot 3.2.2
    • WebSocket
    • MySql
  • [인프라]
    • AWS S3
    • AWS CloudFront
    • AWS EC2
    • AWS RDS
  • [협업 툴]
    • GitHub
    • Figma
    • Discord

📅개발 일정

  • 2023년 12월 18일 ~ 2024년 11월 6일

👥팀원 구성

Backend Backend Frontend Frontend

이제휘

김민성

강지원

김민중


역할

🍕이제휘

  • Google 소셜 로그인: Spring Security + JWT를 이용한 사용자 인증 시스템 개발
  • 실시간 채팅: WebSocket STOMP 프로토콜을 이용한 개인 및 그룹 채팅 기능 개발
  • 실시간 팝업 알림: WebSocket STOMP를 통한 즉각적인 알림 전송 기능 개발
  • 친구 관리 기능: 친구 요청, 수락, 거절 기능 개발로 사용자 네트워크 강화
  • AI 질의응답 기능: AI를 활용하여 사용자 코드 문제 해결 및 학습 지원
  • 프론트엔드 배포: AWS S3 + CloudFront를 이용해 Vue 3 기반 프론트엔드 배포
  • 백엔드 배포: AWS EC2를 이용해 Spring Boot 기반 백엔드 배포 및 관리
  • 도메인 연동: 도메인을 서비스와 연동하여 사용자 접근성 개선

👻김민성


😎강지원


🐬김민중


트러블 슈팅

💡Spring Security의 버전 업그레이드로 인한 코드 작성 방식 변경

기존 Spring Security 5.7버전 이전에는 WebSecurityConfigurerAdapter를 상속받아 메소드 체이닝 방식으로 설정을 구성했지만 이후 버전에서는 SecurityFilterChain을 빈으로 등록하는 새로운 설정 방식이 도입되었습니다.
프로젝트에서 사용한 Spring Boot 3.2.2 버전은 Spring Security 6 버전을 사용하고 있어 기존 학습 내용과는 완전히 다른 방식으로 구현해야 했습니다.
새로운 코드 작성 방식에 대한 자료가 부족한 상황에서 당장 요구되는 기능을 구현해야 했기에 초기에는 Spring Security를 제외한 REST API 방식으로 로그인 기능을 구현했습니다.
이후 Spring Security 관련 문서를 추가로 학습한 뒤 기존 코드를 Spring Security 기반으로 마이그레이션하여 보안을 강화했습니다.

💡순환 참조로 인한 알림 서비스 문제 해결

프로젝트에서 알림 기능은 댓글 작성, 그룹 생성 등의 이벤트 발생 시 서비스 내에서 알림을 생성하고 전송하는 방식으로 구현되었습니다.
하지만 그룹 서비스에서 그룹을 생성할 때 채팅 서비스가 호출되고 그 채팅 서비스 안에서 다시 알림 서비스가 호출되는 구조에서 순환 참조 문제가 발생했습니다.
이로 인해 그룹 서비스 → 채팅 서비스 → 알림 서비스 → 그룹 서비스 순으로 순환 참조가 발생하며 예기치 않은 동작이 일어났습니다. 이를 해결하기 위해 알림 발생 로직의 일부를 서비스 계층에서 컨트롤러로 이동시키는 방식으로 수정했습니다. 이제 그룹 생성이나 채팅 생성과 같은 이벤트가 발생할 때 해당 이벤트를 처리하는 컨트롤러에서 알림을 직접 발생시키도록 변경하여 서비스 간의 순환 참조를 피할 수 있었습니다.

💡EC2 프리 티어의 메모리 부족으로 인한 Spring Boot 빌드 실패

AWS EC2 프리 티어 환경에서 Spring Boot 프로젝트를 빌드 하는 과정에서 메모리 부족으로 인해 빌드가 중단되는 문제가 발생했습니다.

프리 티어 인스턴스는 기본 제공 메모리가 1GB로 제한되어 있어 빌드 과정에서 Out of Memory 오류가 발생했습니다. 이를 해결하기 위해 EBS 일부를 Swap 메모리로 설정하여 가상 메모리를 확보했고 이후 정상적으로 빌드 및 실행이 가능해졌으며 프리 티어 환경에서도 안정적인 배포가 가능하도록 구성했습니다.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages