Skip to content

wonseokLee97/BojChatService

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 

Repository files navigation

BOJ Chat Service


프로젝트 기간 : 2025.01 ~ 2025.02 (8주)





🤔 프로젝트 소개

“알고리즘 문제를 풀고 있는 사람들과 실시간으로 소통하면 어떨까?”

본 프로젝트는 백준 온라인 저지(BOJ)에서 문제를 푸는 사용자들이 실시간으로 의견을 교환하고 도움을 주고받을 수 있도록, WebSocket을 활용해 만든 실시간 채팅 서비스입니다.



🌱 배경 및 동기

(1) 기존 커뮤니케이션 한계 백준 알고리즘 문제를 풀 때 막히는 점이 생기면, “질문 게시판”, “블로그 포스팅”, “카카오톡 오픈채팅방” 등을 통해 도움을 얻고는 했습니다. 하지만 이는 단방향 적이거나, 즉각적인 피드백을 받기 어려웠습니다.


(2) 실시간 소통의 필요성 알고리즘 문제를 풀 때, 필요시에 실시간으로 도움을 주고받고 토론할 수 있다면 학습 효율과 재미가 크게 높아질 것이라 생각했습니다.


(3) 크롬 익스텐션을 통한 확장 백준 서버 자체에 채팅 기능을 직접 추가할 수 없으므로, 크롬 익스텐션 개발을 통해 사용자가 BOJ 사이트를 이용할 때 자연스럽게 채팅 기능을 활용할 수 있도록 했습니다.



🔧 Stacks

Environment

Development


Comunication



🌐 아키텍처

image



📦 주요 기능

(1)

image image


(2)

image image image


(3)

image image


(4)

image image


(5)

image



🏗️ 디렉토리 구조

└─com
    └─prod
        └─realtimechat
            │  RealTimeChatApplication.java
            │
            ├─chat
            │  ├─application
            │  │      ChatService.java
            │  │      ChatServiceImpl.java
            │  │      SequenceGeneratorService.java
            │  │
            │  ├─config
            │  │      WebSocketConfig.java
            │  │
            │  ├─domain
            │  │      Chat.java
            │  │      ChatJpa.java
            │  │      Sequence.java
            │  │
            │  ├─exception
            │  │      CustomSocketException.java
            │  │
            │  ├─handler
            │  │      ChatListener.java
            │  │      CustomWebSocketHandler.java
            │  │      StompListener.java
            │  │      WebSocketBroadCaster.java
            │  │      WebSocketExceptionHandler.java
            │  │
            │  ├─infrastructure
            │  │  │  ChatRepository.java
            │  │  │
            │  │  ├─jdbc
            │  │  ├─jpa
            │  │  │      JpaChatRepository.java
            │  │  │
            │  │  ├─mongo
            │  │  │      MongoChatRepositoryImpl.java
            │  │  │      SpringDataMongoChatRepositoryImpl.java
            │  │  │
            │  │  └─springdata
            │  │      ├─springdatajpa
            │  │      │      SpringDataJpaChatRepositoryImpl.java
            │  │      │
            │  │      └─springdatamongo
            │  │              SpringDataMongoChatRepository.java
            │  │
            │  └─presentation
            │          ChatController.java
            │          ChatWebSocketController.java
            │          initController.java
            │
            ├─config
            │      CorsConfig.java
            │      MainConfig.java
            │      RedisConfig.java
            │      WebConfig.java
            │      WebSecurityConfig.java
            │
            └─shared
                ├─global
                │  ├─aop
                │  │      PerformanceLoggingAspect.java
                │  │
                │  ├─api
                │  │      ApiResponse.java
                │  │      ErrorResponse.java
                │  │
                │  ├─dto
                │  │      ChatMessageDto.java
                │  │      ChatRoomDto.java
                │  │
                │  ├─exception
                │  │      GlobalExceptionHandler.java
                │  │
                │  └─type
                │      │  Type.java
                │      │
                │      ├─http
                │      │      HttpErrorType.java
                │      │      HttpSuccessType.java
                │      │
                │      └─ws
                │              WsErrorType.java
                │
                ├─jwt
                │      JwtAuthenticationFilter.java
                │      JwtAuthenticationProvider.java
                │      JwtAuthenticationToken.java
                │      JwtChannelInterceptor.java
                │      JwtException.java
                │      JwtExceptionHandler.java
                │      JwtProperties.java
                │      JwtProvider.java
                │      TokenClaims.java
                │
                └─utils
                        IpAddressUtil.java

About

BojChatService

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published