{"id":27603167,"url":"https://github.com/sieunkiim/metachat","last_synced_at":"2026-02-16T09:32:57.686Z","repository":{"id":155074851,"uuid":"478844603","full_name":"SieunKiim/metaChat","owner":"SieunKiim","description":"Spring boot, Thymeleaf를 활용한 1:N 웹 채팅 (소켓 통신)","archived":false,"fork":false,"pushed_at":"2022-11-22T23:07:04.000Z","size":3360,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-04T17:45:14.589Z","etag":null,"topics":["spring","websockets"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SieunKiim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-04-07T05:48:26.000Z","updated_at":"2022-12-05T00:32:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"9e348968-9f7a-4163-806d-f1c17338a3cf","html_url":"https://github.com/SieunKiim/metaChat","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SieunKiim/metaChat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SieunKiim%2FmetaChat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SieunKiim%2FmetaChat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SieunKiim%2FmetaChat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SieunKiim%2FmetaChat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SieunKiim","download_url":"https://codeload.github.com/SieunKiim/metaChat/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SieunKiim%2FmetaChat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29504755,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T09:05:14.864Z","status":"ssl_error","status_checked_at":"2026-02-16T08:55:59.364Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["spring","websockets"],"created_at":"2025-04-22T19:13:37.551Z","updated_at":"2026-02-16T09:32:57.681Z","avatar_url":"https://github.com/SieunKiim.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MetaChat\n\n# 🚧 공사중 🚧\n\n# 개발 동기\n\n---\n\n비대면 수업 비중이 점점 늘어나면서 학교에 처음 오는 신입 및 쉰입생 학우들을 위해 개발하게 되었다.\n\n아직 학교가 익숙하지 않은 학우와, 심심한 학우들을 위한 지도 기반 채팅 서비스다.\n\n- 에브리타임에 질문 글 올려도 답이 없었던 경험이 있는가?\n- 장소에 관련된 질문 (식당에 사람 많나요?, 버스 정류장에 분실물 있나요? 등..)의 상대방 답에 신뢰할 수 있을까?\n\n\u003e 이런 고충을 해결하기 위해 즉각적인 반응과, 사용자의 위치를 바탕으로 그 건물에 있는지 판단하여 채팅에 나타날 수 있도록 했다\n\u003e \n\n[상황 예시]\n\n\u003caside\u003e\n▶️ 학생A : 지금 학식 먹으러 가면 많이 기다려야하나요??\n\n\u003c/aside\u003e\n\n\u003caside\u003e\n▶️ 학생B : 사람 완전 많아요..! 차라리 다른거 드세요..!\n\n\u003c/aside\u003e\n\n이 때 학생 B의 말이 진짜인지 아닌지는 순전히 믿음의 영역에 달렸다. 어쩌면 식당에 있지도 않은 친구들이 장난삼아 하는 말일지 고민되는 상황에서, 채팅의 신뢰도를 높이기 위해 학생 B가 식당 건물 내부에 있지 않다면 채팅을 조금 다르게 보여주는 방법을 택했다.\n\n# 프로젝트 설명\n\n---\n\n처음 지도 화면에서 사용자가 원하는 채팅방을 클릭한다 ( 건물 )\n\n해당 채팅방에 입장할 때, 사용자의 위치정보를 가져와 저장되어있는 건물의 위치 사이 거리를 계산하여 반경 45미터 이내의 경우, 건물 내부에 사용자가 있는 것으로 생각한다.\n\n건물 외부에서 채팅방에 입장할 경우, 사용자의 닉네임 앞에 천사 이모티콘이 (😇) 등장하여 사용자의 현재 위치를 간접적으로 알 수 있도록 한다.\n\n사용자의 위치를 지속적으로 얻기 위해서 사용자의 위치가 아닌, 채팅이 발송되는 위치를 체크했다.\n\n\n---\n처음 채팅방 입장 시 보여주는 학교 지도\n- 건물을 클릭해 입장 가능하다.\n\n![처음 채팅방 입장 시 보여주는 학교 지도](MetaChat%202e9f2e59accb4126bd09ebb6cf95898c/학교.png)\n\n---\n채팅 사용 상황\n![기숙사 채팅방에서 아직 도착하지 않은 “승현”이, 먼저 도착한 “정훈”에게 학교 기숙사 소감을 물어보는 상황이다.](MetaChat%202e9f2e59accb4126bd09ebb6cf95898c/Untitled%201.png)\n\n기숙사 채팅방에서 아직 도착하지 않은 “승현”이, 먼저 도착한 “정훈”에게 학교 기숙사 소감을 물어보는 상황이다.\n\n왼쪽 그림과 같이 특정 건물에서 사용자가 채팅을 보낼 때 해당 채팅이 전송된 위치 정보를 통해서 \n\n건물의 중심 위치와 사용자의 위치 사이의 거리를 통해 건물 내 외부를 판별한다.\n\n(학교 건물의 크기를 평균으로 대략 반지름 45미터로 반경을 계산하였다.)\n\n# 프로젝트 상세 - 리팩토링 진행중\n\n## Websocket\n\n\u003caside\u003e\n▶️ Websocket 헨드셰이크를 위한 엔드포인트 지정 ( ”/university” )\n\n[StompConfig]\n    prefix : ( “/pub” )\n    broker : ( “/sub” )\n\n\u003c/aside\u003e\n\n- STOMP broker   ws://localhost/university/pub/chat/enter\n    \n    입장시 로직 처리 → ~~/sub/chat/room/{roomId} 로 입장 안내 메시지 전달\n    \n    직접 환영 인사를 메시지에 set\n    \n    ![Untitled](MetaChat%202e9f2e59accb4126bd09ebb6cf95898c/Untitled%206.png)\n    \n- STOMP broker   ws://localhost/university/pub/chat/message\n    \n    사용자가 전송한 메시지 전달 → ~~/sub/chat/room/{roomId} 로 입장 안내 메시지 전달\n    \n    ![Untitled](MetaChat%202e9f2e59accb4126bd09ebb6cf95898c/Untitled%207.png)\n    \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsieunkiim%2Fmetachat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsieunkiim%2Fmetachat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsieunkiim%2Fmetachat/lists"}