Skip to content
View sjh9714's full-sized avatar
๐Ÿ”ฌ
Testing managed MCP hosts โ†’ mcp-host-canary
๐Ÿ”ฌ
Testing managed MCP hosts โ†’ mcp-host-canary

Block or report sjh9714

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please donโ€™t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this userโ€™s behavior. Learn more about reporting abuse.

Report abuse
sjh9714/README.md

์„ฑ์ง„ํ˜

Backend Developer

๋ฌธ์ œ๋ฅผ ๋‚˜๋ˆ„๊ณ  ์ธก์ •ํ•ด ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ”ฌ Current Experiment

MCP Host Canary | managed MCP host๊ฐ€ ์‹ค์ œ๋กœ ๋„๋‹ฌํ•œ protocol boundary ๊ธฐ๋ก

Role: ์„ค๊ณ„ ยท ๊ตฌํ˜„ ยท ๊ณต๊ฐœ ๊ฒ€์ฆ ์ „์ฒด ยท ๊ธฐ๊ฐ„: 2026.08 ยท Stack: TypeScript ยท Hono ยท MCP SDK ยท React

  • UI ์ƒํƒœ์™€ ์„œ๋ฒ„ ๊ด€์ธก ๋ถ„๋ฆฌ: initialize ยท tools/list ยท ์‹ค์ œ tool callback์„ ์„œ๋กœ ๋‹ค๋ฅธ ๋‹จ๊ณ„๋กœ ๊ธฐ๋กํ•˜๊ณ , ์ˆ˜์‹  ์š”์ฒญ๊ณผ callback ์‹คํ–‰๋„ ๊ตฌ๋ถ„
  • ๋™์ผ canary์˜ ๋‹ค๋ฅธ ๊ฒฝ๊ณ„: Claude Web์€ 258๊ฐœ manifest๋ฅผ ๋‘ ๋ฒˆ ๊ฐ€์ ธ๊ฐ”์ง€๋งŒ sentinel_257 callback์€ ์—†์—ˆ๊ณ , ChatGPT Developer mode๋Š” ๊ฐ™์€ sentinel์„ ์„ธ ๋ฒˆ ์‹คํ–‰
  • ๊ณผ์žฅํ•˜์ง€ ์•Š๋Š” ๊ฒฐ๊ณผ: ๋‹จ์ผ ์‹œ์ ์˜ server-observed event์ด๋ฉฐ, ํ˜ธ์ŠคํŠธ์˜ ํ˜ธํ™˜์„ฑ ๋“ฑ๊ธ‰์ด๋‚˜ ๋‚ด๋ถ€ ์›์ธ ํŒ์ •์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ
  • ๋น„๋ฐ€ ๋น„๋ณด์กด: token ยท prompt ยท request body ยท tool argument ยท IP ยท raw User-Agent๋ฅผ ๋ณด์กดํ•˜์ง€ ์•Š๊ณ  30๋ถ„ ๋’ค endpoint๋ฅผ ํ๊ธฐ

๐Ÿ”— Source ยท 30-minute live beta ยท Independent host pilot


๐Ÿ“Š Stats

GitHub ํ†ต๊ณ„ - ๋ณ„, ์ปค๋ฐ‹, PR, ์ด์Šˆ์™€ ๋“ฑ๊ธ‰ ๋ฐฑ์ค€ solved.ac ํ‹ฐ์–ด์™€ ํ‘ผ ๋ฌธ์ œ ์ˆ˜

๐ŸŒฑ Experience

  • ๊ฐ€ํ†จ๋ฆญ๋Œ€ํ•™๊ต ์ปดํ“จํ„ฐ๊ณตํ•™ | ์žฌํ•™ (2021.03 ~ )
  • ํ•˜๋‚˜๊ธˆ์œต๊ทธ๋ฃน x ๊ธˆ์œต๊ฐ๋…์› ์ฒญ๋…„ ๊ธˆ์œต์ธ์žฌ ์–‘์„ฑ ํ”„๋กœ์ ํŠธ | ๊ธˆ์œต๋ฐ์ดํ„ฐ ๋ถ„์„ ยท ์ƒ์„ฑํ˜• AI ยท LLM (2026.04 ~ 2026.08)
  • Tech4Good ํ•ด์ปคํ†ค | ํ•˜๋‚˜๊ธˆ์œต๊ทธ๋ฃน x SKํ…”๋ ˆ์ฝค SKT FLY AI ์—ฐํ•ฉ (2026.07)
  • ๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ ๋Œ€ํ•™ 12๊ธฐ | Backend ยท ์ค‘์•™ํ•ด์ปคํ†ค(2024.08) ยท ๋ฐ๋ชจ๋ฐ์ด(2024.12) (2024.03 ~ 2024.12)
  • GGUM ํ•ด์ปคํ†ค | ๊ฐ€ํ†จ๋ฆญ๋Œ€ ์ปดํ“จํ„ฐ์ •๋ณด๊ณตํ•™๋ถ€ ์—ฐํ•ฉ ํ•ด์ปคํ†ค ยท Backend (2024.10)

๐Ÿ“‚ Team Projects

1. FinMate | 20๋Œ€์˜ ์ฒซ ๊ธˆ์œต ์˜จ๋ณด๋”ฉ ์„œ๋น„์Šค

Role: Backend ยท ๊ธฐ๊ฐ„: 2026.04 ~ 2026.08 ยท ํŒ€: 4์ธ ๊ฒฐ๊ณผ: ํ•˜๋‚˜๊ธˆ์œต๊ทธ๋ฃน x ๊ธˆ์œต๊ฐ๋…์› ์ฒญ๋…„ ๊ธˆ์œต์ธ์žฌ ๊ฒฐ์„  ์ง„์ถœ์ž‘

  • API ์„œ๋ฒ„ ๊ตฌํ˜„: Java ยท Spring ยท PostgreSQL ๋กœ ์ธ์ฆ ยท ๋ฏธ์…˜ ยท ๋˜๋ž˜ ๋น„๊ต ยท ๋ฆฌํฌํŠธ๊นŒ์ง€ ์„œ๋น„์Šค API ์ „ ๋ฒ”์œ„๋ฅผ ์„ค๊ณ„ํ•˜๊ณ  ๊ตฌํ˜„
  • ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ: Testcontainers ๋กœ ์‹ค์ œ PostgreSQL ์„ ๋„์›Œ ๊ฒ€์ฆํ•˜๋Š” ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ 50๊ฐœ๋ฅผ ๋ถ™์—ฌ, ๋กœ์ปฌ๊ณผ CI ๊ฐ€ ๊ฐ™์€ DB ์—์„œ ๋Œ๊ฒŒ ํ•จ
  • ์ €์žฅ์†Œ ๋ถ„๋ฆฌ: ์›น์•ฑ ยท API ยท ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ์„ ์„ธ ์ €์žฅ์†Œ๋กœ ๋‚˜๋ˆ„๊ณ  API ๊ณ„์•ฝ ๋ฌธ์„œ๋ฅผ API ์ €์žฅ์†Œ์— ๋ชจ์•„ ๋ฐฐํฌ ์ฃผ๊ธฐ๋ฅผ ๋ถ„๋ฆฌ
  • ์ฃผ์ œ ์ „ํ™˜ ๋Œ€์‘: ์˜ˆ์„ ์—์„œ ์“ฐ๋˜ ์œ ํ•™์ƒ ์˜จ๋ณด๋”ฉ์„ 20๋Œ€ ๊ธˆ์œต ์˜จ๋ณด๋”ฉ์œผ๋กœ ์˜ฎ๊ธฐ๋ฉฐ ๋„๋ฉ”์ธ ๋ชจ๋ธ์„ ๋‹ค์‹œ ์„ธ์›€

๐Ÿ”— https://github.com/gaga-studio/finmate-app


2. My ETA | ๊ตํ†ต์•ฝ์ž๋ฅผ ์œ„ํ•œ ๋ฐฐ๋ฆฌ์–ดํ”„๋ฆฌ ๊ธธ์ฐพ๊ธฐ

Role: Backend ยท ๊ธฐ๊ฐ„: 2026.07 ~ 2026.08 ยท ํŒ€: 7์ธ (ํ•˜๋‚˜๊ธˆ์œต๊ทธ๋ฃน x SKํ…”๋ ˆ์ฝค Tech4Good)

  • ๊ฐœ์ธํ™” ETA ๋ณด์ •: ํ‘œ์ค€ ๋ณดํ–‰์†๋„ ๋Œ€์‹  ์‚ฌ์šฉ์ž์˜ ํ‰์†Œ ์†๋„์™€ ์•ˆ๋‚ด ์ค‘ ์ˆ˜์ง‘ํ•œ ์œ ํšจ ์†๋„ ํ‘œ๋ณธ์œผ๋กœ ๋„๋ณด ๊ตฌ๊ฐ„ ๋„์ฐฉ์‹œ๊ฐ„์„ ๋‹ค์‹œ ๊ณ„์‚ฐ
  • ๊ณต๊ณต๋ฐ์ดํ„ฐ ์—ฐ๋™: ์„œ์šธ ๋ฒ„์Šคยท์ง€ํ•˜์ฒ  ์‹ค์‹œ๊ฐ„ ๋„์ฐฉ์ •๋ณด, ์ €์ƒ๋ฒ„์Šค ์—ฌ๋ถ€, ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ ์ ‘๊ทผ์„ฑ ์ •๋ณด๋ฅผ ๊ฒฝ๋กœ์— ๋ฐ˜์˜
  • ๋ฏธํ™•์ธ ์ •๋ณด ํ‘œ๊ธฐ: ํ™•์ธ๋˜์ง€ ์•Š์€ ์‹œ์„ค ์ •๋ณด๋ฅผ ์ด์šฉ ๊ฐ€๋Šฅ์œผ๋กœ ๋‹จ์ •ํ•˜์ง€ ์•Š๊ณ  UNKNOWN ์ƒํƒœ๋กœ ๋…ธ์ถœ
  • ์žฌํƒ์ƒ‰: ๊ฒฝ๋กœ ์ดํƒˆ๊ณผ ๋Œ€์ค‘๊ตํ†ต ๋†“์นจ์„ ๊ฐ์ง€ํ•ด ํ˜„์žฌ ์œ„์น˜ ๊ธฐ์ค€์œผ๋กœ ๊ฒฝ๋กœ์™€ ETA ๋ฅผ ๋‹ค์‹œ ๊ณ„์‚ฐ
  • ์ง€์—ญ ํ™•์žฅ ์—ฌ์ง€: ํ’ˆ์งˆ ๋ณด์žฅ ๋ฒ”์œ„๋ฅผ ์„œ์šธ๋กœ ํ•œ์ •ํ•˜๊ณ , ๋‹ค๋ฅธ ์ง€์—ญ ๋ฐ์ดํ„ฐ ๊ณต๊ธ‰์ž๋ฅผ ์–ด๋Œ‘ํ„ฐ๋กœ ๊ฐˆ์•„ ๋ผ์šธ ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌ์„ฑ

๐Ÿ”— https://github.com/tech4good-2026/eta


3. Student Start Mode | ์œ ํ•™์ƒ ๊ธˆ์œต ์˜จ๋ณด๋”ฉ

Role: ๊ธฐํš ยท ํ”„๋กœํ† ํƒ€์ž… ยท ๊ธฐ๊ฐ„: 2026.04 ~ 2026.05 ยท ํŒ€: 4์ธ ๐Ÿ† ์ฒญ๋…„ ๊ธˆ์œต์ธ์žฌ ์˜ˆ์„  ํ†ต๊ณผ ยท ๋ณธ์„  ํ•ฉ๊ฒฉ์ž‘

  • ์ƒํƒœ ๊ธฐ๋ฐ˜ ์ฒดํฌ๋ฆฌ์ŠคํŠธ: ์ •๋ณด๋ฅผ ๋ชจ์•„ ๋ณด์—ฌ์ฃผ๋Š” ๋Œ€์‹  ์ง€๊ธˆ ๊ฐ€๋Šฅ / ๋‹ค์Œ ๋‹จ๊ณ„ / ์ž ๊น€ ์œผ๋กœ ๋‚˜๋ˆ , ํ˜„์žฌ ์ƒํƒœ์—์„œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋งŒ ์•ž์— ๋‘ 
  • ์ƒํƒœ ๋ณ€ํ™” ๋ฐ˜์˜: ARC ์ˆ˜๋ น ๊ฐ™์€ ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธฐ๋ฉด ์ž ๊ธด ํ•ญ๋ชฉ์„ ํ’€๊ณ  ๋‹ค์Œ ์ž‘์—…์„ ์•ˆ๋‚ด
  • ์—ญํ•  ๋ถ„๋ฆฌ: ํŒ๋‹จ์€ ์ƒํƒœ์™€ ๊ทœ์น™์ด ํ•˜๊ณ , AI ์ฑ„ํŒ…์€ ์„ธ๋ถ€ ์งˆ๋ฌธ์„ ๋•๋Š” ๋ณด์กฐ๋กœ ํ•œ์ •
  • ์ผ์ • ์•ˆ๋‚ด: ๋น„์ž ๋งŒ๋ฃŒ์ผ ยท ARC ์ˆ˜๋ น์ผ ยท ๊ณ„์ขŒ ๊ฐœ์„ค ๊ถŒ์žฅ์ผ์„ ์บ˜๋ฆฐ๋”๋กœ ๋ฌถ์–ด ๋‹ค์Œ์— ํ•  ์ผ์ด ๋‚ ์งœ๋กœ ๋ณด์ด๊ฒŒ ํ•จ
  • ์ถœ์ฒ˜ ๋…ธ์ถœ: ํ•˜๋‚˜์€ํ–‰๊ณผ ๊ธˆ์œต ๊ทœ์ •์— ๊ทผ๊ฑฐํ•œ ์•ˆ๋‚ด์ž„์„ ํ™”๋ฉด ์•ˆ์—์„œ ํ•จ๊ป˜ ํ‘œ์‹œ

๐Ÿ”— https://github.com/sjh9714/Student_Start_Mode_demo


4. Memory of Year | ์ถ”์–ต ์•จ๋ฒ” ์„œ๋น„์Šค

Role: Backend ยท ๊ธฐ๊ฐ„: 2024.10 ~ 2024.12 ยท ํŒ€: 7์ธ (๋””์ž์ธ 1 ยท ํ”„๋ก ํŠธ 2 ยท ๋ฐฑ์—”๋“œ 4) ยท ๋ฉ‹์Ÿ์ด์‚ฌ์ž์ฒ˜๋Ÿผ ๋ฐ๋ชจ๋ฐ์ด

  • ๋„๋ฉ”์ธ API ๊ตฌํ˜„: ์ธ์ฆ ยท ์•จ๋ฒ” ยท ํŽธ์ง€ ยท ์‚ฌ์ง„ ๋„ค ๊ฐˆ๋ž˜์˜ ๋ฐฑ์—”๋“œ ๊ธฐ๋ฐ˜์„ ๋งก์•„ ์„ค๊ณ„ํ•˜๊ณ  ๊ตฌํ˜„
  • ์ธํ”„๋ผ ์ง์ ‘ ๊ตฌ์„ฑ: AWS EC2 ยท DB ยท S3 ยท HTTPS ๋ฅผ ์ง์ ‘ ์„ธ์›Œ ํŒ€์ด ์‹œ์—ฐํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋ฒ„๋ฅผ ์šด์˜
  • ํ”„๋ก ํŠธ ์—ฐ๋™: ๋ฐฐํฌ๋œ API ๋กœ ํ”„๋ก ํŠธ์—”๋“œ ํ™”๋ฉด์„ ๋ถ™์ด๊ณ  ๋ฐ๋ชจ๋ฐ์ด ์‹œ์—ฐ๊นŒ์ง€ ์ง„ํ–‰
  • ์‚ฌํ›„ ์žฌ๊ฒ€์ฆ: 2026๋…„์— ๋‹ค์‹œ ์—ด์–ด ์•จ๋ฒ” ์†Œ์œ ๊ถŒ ํŒ์ •๊ณผ MySQL ยท S3 ์‚ฌ์ด์˜ ๊ฒฝ๊ณ„๋ฅผ ์žฌ๊ฒ€ํ† 

๐Ÿ”— https://github.com/sjh9714/memory_of_year


5. BorrowMe | ๊ต๋‚ด ๋ฌผํ’ˆ ๋Œ€์—ฌ ์„œ๋น„์Šค

Role: Backend ยท ๊ธฐ๊ฐ„: 2024.10 (GGUM ํ•ด์ปคํ†ค, 11์ธ) โ†’ 2026 ๊ฐœ์ธ ์žฌ์ž‘์—…

  • ์•Œ๋ฆผ ๊ธฐ๋Šฅ (2024): ๋Œ“๊ธ€ยท๋‹ต๊ธ€ ์•Œ๋ฆผ ์ƒ์„ฑ๊ณผ ์กฐํšŒ ยท ์ฝ์Œ ์ฒ˜๋ฆฌ ยท ์‚ญ์ œ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  NotificationController ๋ฅผ REST API ๋กœ ์ „ํ™˜
  • ๋Œ€์—ฌ ์ƒ๋ช…์ฃผ๊ธฐ ์™„์„ฑ (2026): ์š”์ฒญ ์ฆ‰์‹œ ์žฌ๊ณ ๋ฅผ ๊นŽ๊ณ  ์ทจ์†Œํ•˜๋ฉด ๋˜๋Œ๋ฆฌ๋Š” ์ˆ˜์ค€์ด๋˜ ๊ฒƒ์„, ์Šน์ธ โ†’ ์ธ๋„ โ†’ ๋ฐ˜๋‚ฉ ํ™•์ธ๊นŒ์ง€ ์ƒํƒœ๋กœ ๋‹ค๋ฃจ๋„๋ก ์žฌ์„ค๊ณ„
  • ๋™์‹œ์„ฑ ๋ณดํ˜ธ: ๊ฐ™์€ ๋ฌผ๊ฑด์— ์š”์ฒญ์ด ๋ชฐ๋ฆด ๋•Œ ์žฌ๊ณ ๊ฐ€ ์Œ์ˆ˜๋กœ ๋‚ด๋ ค๊ฐ€์ง€ ์•Š๋„๋ก ๋ง‰๊ณ , ์ด๋ฅผ ๊ณ ์ •ํ•˜๋Š” ๋™์‹œ์„ฑ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ
  • ๊ถŒํ•œ๊ณผ ์žฌ์‹œ๋„: ์Šน์ธยท์ธ๋„ยท๋ฐ˜๋‚ฉ ๊ฐ ๋‹จ๊ณ„์˜ ๊ถŒํ•œ์„ ๋ถ„๋ฆฌํ•˜๊ณ , ๊ฐ™์€ ์š”์ฒญ์ด ๋‘ ๋ฒˆ ๋“ค์–ด์™€๋„ ์ƒํƒœ๊ฐ€ ํ•œ ๋ฒˆ๋งŒ ๋„˜์–ด๊ฐ€๋„๋ก ์ฒ˜๋ฆฌ
  • ์Šคํ‚ค๋งˆ ์ด๊ด€: ๊ธฐ์กด ๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ ์ƒํƒœ ๋ชจ๋ธ๋กœ ์˜ฎ๊ธฐ๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ž‘์„ฑํ•˜๊ณ  CI ์— ์—ฐ๊ฒฐ

๐Ÿ”— https://github.com/sjh9714/borrow_me


๐Ÿ’ป Backend Portfolio

๋™์‹œ์„ฑ ยท ์ •ํ•ฉ์„ฑ ยท ์‹ค์‹œ๊ฐ„ ์ „๋‹ฌ ยท ๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜์„ ์ฃผ์ œ๋กœ ์ง์ ‘ ๋งŒ๋“ค๊ณ  ์ธก์ •ํ•œ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ์ •๋ฆฌ๋œ ํ™”๋ฉด์€ sjh9714.vercel.app ์— ์žˆ์Šต๋‹ˆ๋‹ค.

1. ์ขŒ์„ ์˜ˆ์•ฝ ์‹œ์Šคํ…œ | ๋Œ€๊ธฐ์—ด ยท ๋ฝ ์ „๋žต ยท ์ด๋ฒคํŠธ ์ „๋‹ฌ

Role: ์„ค๊ณ„ ยท ๊ตฌํ˜„ ยท ์ธก์ • ์ „์ฒด ยท ๊ธฐ๊ฐ„: 2026.02 ~ 2026.05 ยท Stack: Java ยท Spring Boot ยท PostgreSQL ยท Redis ยท React

  • ์ค‘๋ณต ํŒ๋งค ์ฐจ๋‹จ: ๊ฐ™์€ ์ขŒ์„์— 100๋ช…์ด ๋ชฐ๋ฆด ๋•Œ ๋‚˜๋˜ oversell ์„ ๋ฝ 3์ข…์„ ๋น„๊ตํ•ด 0๊ฑด์œผ๋กœ, p95 ๋Š” 106โ€“215ms ๋กœ ์‹ค์ธก
  • ๊ฒฝํ•ฉ ์›์ธ ๊ทœ๋ช…: ๋‹ค๋ฅธ ์ขŒ์„์ธ๋ฐ ์˜ˆ๋งค๊ฐ€ ์„œ๋กœ ์‹คํŒจํ•˜๋˜ ์›์ธ์ด ์ž”์—ฌ์„ ์นด์šดํ„ฐ ํ•œ ์ค„์ž„์„ ๋ฐํ˜€ ์„ฑ๊ณต๋ฅ  40% โ†’ 100%
  • ๋งค์ง„ ์ขŒ์„ ์„ ํ•„ํ„ฐ: ๋งค์ง„๋œ ์ขŒ์„ ์š”์ฒญ๊นŒ์ง€ DB ๋ฅผ ์žก๋˜ ๊ฒƒ์„ Redis ์—์„œ ๋ฏธ๋ฆฌ ๊ฑธ๋Ÿฌ ์“ฐ๊ธฐ p95 37ms โ†’ 6ms, ์ด RPS 969 โ†’ 1,005
  • ๋Œ€๊ธฐ์—ด๊ณผ ๋ฉฑ๋“ฑ์„ฑ: ์ˆœ๋ฒˆ์„ SSE ๋กœ ๋‚ด๋ ค๋ณด๋‚ด๊ณ , ํ† ํฐ ์‘๋‹ต์ด ์œ ์‹ค๋ผ ์žฌ์š”์ฒญํ•ด๋„ ์˜ˆ๋งค๋Š” ํ•œ ๊ฑด๋งŒ ์ƒ๊ธฐ๋„๋ก ์ฒ˜๋ฆฌ
  • ์ด๋ฒคํŠธ ์ „๋‹ฌ: Outbox ๋กœ ์˜ˆ๋งค ํ™•์ • ์ด๋ฒคํŠธ๋ฅผ ํ˜๋ ค๋ณด๋‚ด ํ›„์† ์ฒ˜๋ฆฌ์™€ ์˜ˆ๋งค ํŠธ๋žœ์žญ์…˜์„ ๋ถ„๋ฆฌ

๐Ÿ”— https://github.com/sjh9714/concert-booking


2. ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์„œ๋ฒ„ | ๋‹ค์ค‘ ์ธ์Šคํ„ด์Šค ยท ์˜์†ํ™” ยท ์ „๋‹ฌ ๊ฒ€์ฆ

Role: ์„ค๊ณ„ ยท ๊ตฌํ˜„ ยท ์ธก์ • ์ „์ฒด ยท ๊ธฐ๊ฐ„: 2026.02 ~ 2026.05 ยท Stack: Java ยท Spring Boot ยท STOMP ยท Redis ยท React

  • ์ „๋‹ฌ ๋ณด์žฅ: DB ์ปค๋ฐ‹์ด ๋๋‚œ ๋’ค์—๋งŒ ๋ธŒ๋กœ๋“œ์บ์ŠคํŠธํ•˜๋„๋ก ์ˆœ์„œ๋ฅผ ๊ฐ•์ œ. 50๋ช…์ด ๋‘ ์ธ์Šคํ„ด์Šค์— ๋‚˜๋‰œ 3ํšŒ ๋ฐ˜๋ณต์—์„œ ๊ธฐ๋Œ€ 4,900๊ฑด ์ „๋ถ€ ๋„์ฐฉ, ๋ˆ„๋ฝยท์ค‘๋ณตยท์ˆœ์„œ ์œ„๋ฐ˜ 0๊ฑด
  • N+1 ์ œ๊ฑฐ: ์ฑ„ํŒ…๋ฐฉ ๋ชฉ๋ก์ด ๋ฐฉ ๊ฐœ์ˆ˜๋งŒํผ ์ฟผ๋ฆฌ๋ฅผ ๋‚ ๋ฆฌ๋˜ ๊ฒƒ์„ JPQL ํ”„๋กœ์ ์…˜๊ณผ IN ๋ฐฐ์น˜๋กœ ๋ชจ์•„ ๋ฐฉ 50๊ฐœ ๊ธฐ์ค€ 101ํšŒ โ†’ 3ํšŒ ๊ณ ์ •
  • ์ธ๋ฑ์Šค ์„ค๊ณ„: ์ปค์„œ ํŽ˜์ด์ง€๋„ค์ด์…˜ ยท ๋ฉฑ๋“ฑ์„ฑ ยท unread ์ฟผ๋ฆฌ๋ฅผ EXPLAIN ANALYZE ๋กœ ๋ถ„์„ํ•ด ์ธ๋ฑ์Šค 5๊ฐœ ์ถ”๊ฐ€, ์ด๋ฏธ ์ปค๋ฒ„๋˜๋Š” 3๊ฐœ๋Š” ๊ทผ๊ฑฐ๋ฅผ ์ ๊ณ  ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Œ
  • ๋ถ€ํ•˜ ์ธก์ •: 200 VU ์กฐํšŒ ๋ถ€ํ•˜ 3ํšŒ ๋ฐ˜๋ณต์—์„œ RPS 1,806โ€“1,940 ยท p95 129โ€“133ms ยท 39.8๋งŒ ์š”์ฒญ ์ค‘ HTTP ์‹คํŒจ 0๊ฑด
  • ์žฌ์—ฐ๊ฒฐ ๋ณด์ถฉ: ๋Š๊ฒผ๋‹ค ๋Œ์•„์˜จ ์‚ฌ์šฉ์ž๊ฐ€ ๋งˆ์ง€๋ง‰ ์ˆ˜์‹  ID ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋†“์นœ ๊ตฌ๊ฐ„๋งŒ ๋”ฐ๋ผ์žก๋„๋ก ๊ตฌํ˜„

๐Ÿ”— https://github.com/sjh9714/realtime-chat


โœ๏ธ Recent Posts


Pinned Loading

  1. krea2-wildcards krea2-wildcards Public

    511 Krea 2 Turbo prompts with generated examples and ComfyUI wildcards

    HTML 17 5

  2. dsh-win32 dsh-win32 Public

    Fix and diagnose DeepSeek Harness on native Windows. Official PowerShell, Workspace Write, shortcuts, and legacy preset repair. No WSL.

    TypeScript 17 2

  3. mergewarden mergewarden Public

    See which external pull requests need context before code review. Deterministic, no login, no AI.

    TypeScript 14 7

  4. dsh-movein dsh-movein Public

    Migrate Claude Code setup into DeepSeek Harness. Import skills, commands, agents, hooks, permission rules, and MCP config. Codex and OpenCode supported.

    JavaScript 7 1

  5. cover-my-repo cover-my-repo Public

    One command turns any GitHub repo into three designed social preview cards. Codex or Cursor writes them and local Chrome renders them.

    JavaScript 5

  6. mcp-host-canary mcp-host-canary Public

    Disposable remote MCP canary receipts showing the last server-observed boundary reached by Claude, ChatGPT, Cursor, or another managed host.

    TypeScript