Skip to content

ChatGPT와 함께하는 실시간 동시 편집 Web IDE 프로젝트 - 구름 풀스택 2회차 대박징조

Notifications You must be signed in to change notification settings

The-Great-Sign/IDE-Project-frontend-next

Repository files navigation

ChatGPT가 탑재된 컨테이너 기반 협업용 Web IDE

구름톤 트레이닝 풀스택 개발자 2회차 과정
개발 기간 : 2023.12.01 ~ 2023.12.28


👀 배포 주소

프론트엔드 서버 : https://the-greate-ide.vercel.app
백엔드 서버 : https://www.thegreatide.site


📝 팀 문서

😃 팀 노션
👉 백엔드 저장소


😎 팀 소개

Pictures
Name 정나리 문총미 문지원
Role
프론트엔드 팀장
  • 피그마 프로토타입 디자인
  • 소셜 로그인
  • 유저 마이페이지
  • 동시편집 파일트리
  • GitHub Actions 환경구축
  • 동시 편집이 가능한 코드 에디터 개발
  • 프로젝트 페이지 담당(프로젝트 삭제, 비밀번호 변경, 목록 UI)
  • 다크/라이트 테마 설정
  • 개발 환경설정(Github Actions, Husky, Next.js 환경구축)
  • 프로젝트 생성 및 입장 페이지 구현
  • 초대된 사용자 입장 페이지 구현
  • 터미널 구현
  • 그룹 채팅 구현
  • ChatGPT 채팅 구현
  • 웹소켓 연결
GitHub

☁️ 프로젝트 소개

1. 프로젝트 컨셉

  • 실시간 협업용 Web IDE
  • ChatGPT를 활용한 빠른 코드 리뷰

2. 기술 스택





3. 주요 기능

✨ 소셜 로그인

로그인 구글, 카카오 소셜 로그인을 통해 사용자는 번거로운 회원가입 / 로그인 과정을 거치지 않고 서비스를 이용할 수 있습니다. axios 인터셉터를 활용해 토큰 만료 5분 전 리프레시 토큰을 자동으로 받아오도록 구현해 사용자 경험을 향상시켰습니다. 또한 각 페이지 별 로그인하지 않은 사용자는 로그인 페이지로 이동되도록 구현했습니다.

✨ 파일트리 with 동시 편집

파일트리 react-arborist 라이브러리, 웹소켓을 활용해 다른 사용자의 파일/폴더 생성, 삭제가 실시간으로 반영되도록 파일트리를 구현했습니다. focus된 폴더 하위에 파일/폴더 생성이 가능하며, 파일트리 내의 context menu를 만들어 손쉽게 파일을 삭제할 수 있도록 하였습니다. 현재 지원중이지 않지만, 파일 드래그 앤 드랍 기능 또한 구현했습니다.

✨ 코드 에디터 with 동시 편집

코드에디터

codemirror, liveblocks, yjs 라이브러리를 이용해 다중 유저, 다중 파일 상황에서도 동시편집이 가능하도록 구현했습니다. 각 파일을 누르면 현재 파일을 보고 있는 사용자가 상단에 표시되고 편집시 각 사용자의 커서 위치가 표시, 커서 hover시 유저 이름이 나타납니다. 뒤로가기, 임시 저장이 가능하며 저장 버튼을 누를시 서버에 코드가 저장이 됩니다. codemirror를 이용한 다양한 언어별 자동완성과 코드 접기, 코드 검색 등 기본 코드 에디터 기능이 가능합니다.

✨ 프로젝트 생성, 관리

프로젝트생성,관리

프로젝트 언어, 이름, 비밀번호, 설명 정보를 받아 생성을 완료하면 다른 사용자에게 초대 링크를 공유하거나 프로젝트에 입장할 수 있습니다. 프로젝트 페이지에서 내가 생성한 프로젝트, 초대받은 프로젝트 목록이 보이고 내가 생성한 프로젝트는 비밀번호 변경과 삭제가 가능합니다.

✨ 프로젝트 입장, 초대

친구를 초대해용

입장 시에는 http와 웹소캣 연결을 통해 프로젝트의 초기화 설정에 대한 완료 메세지를 받아 프로젝트에 입장합니다.
초대 링크를 통해 접근한 사용자는 로그인 여부 / 비밀번호를 확인하여 프로젝트에 입장합니다

✨ 채팅

채팅

IDE의 프로젝트에 참여해있는 사용자간에 텍스트를 주고 받을 수 있는 기능입니다. 사용자의 입/퇴장시에 '@@@님이 입장 | 퇴장 했습니다.' 라는 문구가 보여집니다. sockjs, stompjs를 사용하여 브라우저간 호환성을 높였습니다. 구독 - 발행 모델을 사용하여 여러 사용자가 하나의 채팅방을 이용할 수 있습니다.

✨ 터미널

터미널 및 실행

터미널을 통해 프로젝트 파일에 대한 조작을 할 수 있으며 프로그램을 수행시킬 수 있습니다. 코드편집기에 있는 실행 버튼을 누르면 터미널에서 현재 실행중인 파일의 실행 결과를 확인할 수 있습니다. 웹소캣 연결을 통해 명령어의 실행결과를 터미널에 출력합니다.

✨ ChatGPT를 통한 코드 리뷰 및 질문

ChatGPT

현재 작성중인 소스코드에 대한 코드 리뷰를 간편하게 받을 수 있으며, 질문이 있는 경우 내장되어있는 ChatGPT와의 채팅 기능을 통해 결과를 받아 볼 수 있습니다.

About

ChatGPT와 함께하는 실시간 동시 편집 Web IDE 프로젝트 - 구름 풀스택 2회차 대박징조

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages