세상에 토론을 즐겁게, 내 생각을 쉽게 나누자!
'아고라'는 고대 그리스의 도시들에 있었던 열린 '회의의 장소' 였습니다. 그리스의 시민들이 자유롭게 토론을 벌이던 '아고라'는 그리스 철학이 탄생하는 장소이며 동시에 도시의 운동, 예술, 정치 등 '삶의 중심지' 역할을 맡았습니다.
저희 AGORA는 고대 그리스의 '아고라'를 계승하여 현대인들이 즐겁게 토론을 즐길 수 있는 장소를 마련하고자 합니다. AGORA에서 나누어지는 수많은 이야기들이 세상을 더 좋은 방향으로 발전시키는 씨앗이 되기를 바랍니다.
AGORA는 'WebRTC' 기술을 기반으로 화상 토론 기능과 토론 관전 기능을 제공하는 웹서비스입니다. 자신이 주제를 선정하여 해당 내용으로 토론을 진행하는 방을 만들 수 있고, 관심 있는 주제의 토론 방에 참여해 발언하는 기회를 얻을 수 있습니다. 또한 직접 발언에 참여하지 않더라도 다른 사람들의 토론을 관전하고 설득력 있는 발언에 투표할 수 있습니다.
AGORA 서비스를 통해 사용자들은 쉽게 토론을 접근할 수 있어, 논리적인 말하기를 연습할 수 있습니다. 동시에 사회의 굉장히 주요한 문제들 뿐만 아니라 궁금한 내용을 주제로 하여 타인과 생각을 교류하게 함으로써, 새로운 지식을 얻고 생각을 넓히는 기회를 제공하고자 합니다.
- 이름
- 김싸피
- 나이
- 26
- 직업
- 면접에 자꾸 떨어지는 취준생
- 성격
- 조용한 편
- 현재 상황
- 타인의 의견을 잘 이해하고, 본인의 생각을 조리있게 전달하는 능력의 필요성을 느낌
- 익숙하지 않은 주제에 대한 정보도 얻고자 함
- 스토리
- 김싸피는 대학교를 졸업하고 취업을 준비하고 있는 20대이다. 여러 기업에 지원을 하였으나, 수줍은 성격 탓에 PT 면접과 그룹 토론 면접에서 좋은 모습을 보여주지 못했다. 김싸피는 자신감을 얻기 위해 타인과의 논리적인 말하기를 연습하고 싶고, 다양한 주제에 대한 식견을 넓혀 면접에서 유리한 고지를 점하고자 한다.
- 이름
- 이싸피
- 나이
- 18
- 직업
- 고등학생
- 성격
- 활발
- 호기심 많음
- 말하기 좋아함
- 취미
- 인터넷 방송 시청
- 현재 상황
- 교내 토론대회 수상을 목표로 함
- 인터넷 방송인 토론에 재미를 느껴 비슷한 컨텐츠를 찾고 있음
- 스토리 및 상황 요약 이제 이싸피는 고등학생 2학년으로 올라간다. 그래서 이싸피는 대학 진학을 위해 생활기록부를 채우려 하는데, 마침 교내토론대회가 개최되어 입상을 위해 준비하고 있다. 학교에서 대학 진학을 열심히 준비한 이싸피는 하교 후에는 인터넷 방송을 보며 휴식을 즐긴다. 좋아하는 스트리머의 방송을 시청하던 중 가볍고 재미있는 주제의 토론 컨텐츠에 흥미를 느껴 자신도 해보고 싶다고 느낀다.
- Hot Topic: 현재 시청자가 가장 많은 토론 방 5개를 볼 수 있어요!
- 열띤 토론 중: 다음으로 시청자가 많은 토론 방 10개를 볼 수 있어요.
- 토론 준비 중: 토론의 시작부터 함께 하고 싶거나 발언자로 참여하고 싶다면 여기를 주의 깊게 살펴보세요!
- 모두보기: 개설된 토론 방 전체가 보여지고, 원하는 필터를 적용하여 선택적으로 볼 수 있어요!
- 검색: 검색어를 입력하면 일치하는 해시태그, 방 제목, 방장 이름을 갖는 토론 방도 볼 수 있습니다.
- 선택의 중심에 서 있을 때,
- 또는 다른 사람들의 생각이 궁금할 때,
- 토론을 열어 다양한 사람들과 이야기를 나누어 보세요!
- 고민을 해소할 수도, 생각의 폭을 넓힐 수도 있습니다.
- 발언자로 토론에 참여해 자신의 생각과 논리를 펼칠 수 있습니다.
- 누구라도 설득시킬 수 있는 자신이 있다면 언제든지 참여하세요!
- 설령 자신이 없어도 일단 참여해 보세요. 무엇이든 하나씩 배워 가는 거니까요.
- 발언자로 참여하기 부담스럽다면?
- 시청자로 참여해 토론을 지켜보며 논리, 언변 등 여러 가지를 배울 수 있어요.
- 그냥 잠시 내려놓고 재미로만 즐기셔도 좋아요!
- 발언자들의 발언을 들어보고 더 마음이 끌리는 쪽에 투표를 해보세요!
-
- Openjdk 11
- Springboot 2.7.7
- Spring Data JPA
- Spring Security
- QueryDSL
- Swagger 3.0.0
- jjwt 0.9.1
- NodeJS 18.14.0 LTS
- ReactJS 18.2.0
- Recoil 0.7.6
- Styled-Component 5.3.6
- Axios 1.2.4
- MYSQL 8.0
- Redis 7.0
- Docker 20.10.23
- Jenkins 2.375.2
- Nginx 1.18.0
- AWS
- GCP
.
├── aop
├── auth
│ ├── domain
│ ├── dto
│ ├── exception
│ ├── filter
│ ├── provider
│ └── util
├── category
│ ├── domain
│ └── repository
├── common
│ └── dto
├── config
├── debatehistory
│ ├── controller
│ ├── domain
│ ├── dto
│ ├── repository
│ └── service
├── encrypt
│ ├── domain
│ ├── repository
│ ├── service
│ └── util
├── file
│ ├── controller
│ ├── dto
│ ├── exception
│ ├── service
│ └── util
├── local
├── oauth
│ ├── dto
│ ├── exception
│ ├── handler
│ ├── principal
│ ├── repository
│ └── service
├── openvidu
│ ├── config
│ ├── controller
│ ├── exception
│ └── service
├── report
│ ├── controller
│ ├── domain
│ ├── dto
│ ├── repository
│ └── service
├── room
│ ├── controller
│ │ └── dto
│ ├── domain
│ ├── exception
│ ├── repository
│ ├── service
│ └── util
├── sse
│ ├── controller
│ └── service
└── user
├── controller
│ └── dto
├── domain
├── dto
├── exception
├── repository
└── service
.
├── nginx
├── public
└── src
├── api
├── assets
│ ├── icons
│ ├── images
│ ├── login
│ └── signup
├── components
│ ├── common
│ ├── debate
│ │ ├── list
│ │ └── search
│ ├── debateroom
│ ├── header
│ │ ├── center
│ │ ├── left
│ │ ├── right
│ │ └── style
│ ├── login
│ ├── main
│ │ ├── debate
│ │ ├── main-example
│ │ ├── mypage
│ │ ├── signup
│ │ └── welcome
│ └── video
├── pages
│ └── main
│ ├── debate
│ └── signup
├── stores
└── utils
└── hooks
이름 | 포지션 | 역할 |
---|---|---|
김용현 | Frontend | Frontend Leader |
오윤식 | Backend | 서비스 기획 |
윤재휘 | Frontend | UI/UX 담당 |
이상원 | Backend | PM, DevOps |
이승헌 | Backend | Backend Leader |
전인덕 | Frontend | UI/UX 담당 |
기능 명세서: 기능 명세서 Notion
비기능 명세서: 비기능 명세서 Notion
시퀀스 다이어그램은 sequence diagram 에서 확인하실 수 있습니다.
- 제목은 최대 50글자가 넘지 않도록 하고 마침표 및 특수기호는 사용하지 않는다.
- 영문으로 표기하는 경우 동사(원형)를 가장 앞에 두고 첫 글자는 대문자로 표기한다.(과거 시제를 사용하지 않는다.)
- 제목은 개조식 구문으로 작성한다. --> 완전한 서술형 문장이 아니라, 간결하고 요점적인 서술을 의미.
# 커밋 메세지 작성
# ex: [feat]: 로그인 기능 시작
# 커밋 세부 내용 아래 작성
# 커밋 메세지 컨벤션
# [feat] : 새로운 기능 추가
# [fix] : 버그 수정
# [docs] : 문서 수정
# [style] : 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
# [refactor] : 코드 리펙토링
# [test] : 테스트 코드, 리펙토링 테스트 코드 추가
# [chore] : 빌드 업무 수정, 패키지 매니저 수정
- 변수명은 camel case로 작성
- prettierrc.json으로 설정
- tab: 4
- intellij 세팅 통일
- package 구조 domain 기반
Branch 전략은 git flow
를 사용한다.
Branch | detail | ex |
---|---|---|
master | 배포 가능 브랜치 | master |
development | 개발 브랜치 | front/dev |
feature | 기능 개발 브랜치 | feat/back/user-login |
release | 배포 준비 브랜치 | release/1.0 |
hotfix | 출시 버전 버그 수정 브랜치 | hotfix-1.1.0 |
document | 문서 작업 브랜치 | docs/readme |