Skip to content

ParkIlHoon/deep-dive-into-heavy-traffic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

49 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿคฟ ๋Œ€์šฉ๋Ÿ‰ ํŠธ๋ž˜ํ”ฝ Deep Dive

What is Flitter?

ํŒ”๋กœ์›Œ๊ฐ€ 100๋งŒ๋ช…์ธ ์œ ์ €๊ฐ€ ์žˆ๋Š”(๊ฒƒ์„ ๊ฐ€์ •ํ•œ) SNS ์„œ๋น„์Šค์ด๋‹ค. ๋Œ€์šฉ๋Ÿ‰ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ํŠนํžˆ ๋™์‹œ์„ฑ ์ œ์–ด์— ๋Œ€ํ•œ ๊ณ ๋ฏผ๊ณผ ํ•™์Šต์ด ์ฃผ๋œ ๋ชฉํ‘œ์ด๋‹ค.

Architecture

์ด ํ”„๋กœ์ ํŠธ๋Š” ์•„๋ž˜์˜ ๋ชฉ์ ์„ ๊ฐ€์ง€๊ณ  ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜(Hexagonal Architecture)๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ๋‹ค.

  1. ์™ธ๋ถ€ ์‹œ์Šคํ…œ๊ณผ ์ธํ”„๋ผ์™€์˜ ์˜์กด์„ฑ์„ ๋‚ฎ์ถ˜ ์œ ์—ฐํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌํ˜„
  2. ๋น„์ฆˆ๋‹ˆ์Šค์™€ ๊ธฐ์ˆ ์„ ๋ถ„๋ฆฌ
  3. ์œ ์Šค์ผ€์ด์Šค๋ฅผ ํ†ตํ•ด ์†์‰ฌ์šด ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ์ดํ•ด
  4. ์•ˆ์ •์ ์ธ ํ…Œ์ŠคํŠธ

ํ—ฅ์‚ฌ๊ณ ๋‚  ์•„ํ‚คํ…์ฒ˜(Hexagonal Architecture)

Hexagonal Architecture

  • ์ด ์•„ํ‚คํ…์ฒ˜์˜ ์ฃผ์š” ๋ชฉํ‘œ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์™ธ๋ถ€ ์„ธ๊ณ„๋กœ๋ถ€ํ„ฐ ๊ฒฉ๋ฆฌ์‹œ์ผœ ์œ ์—ฐํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์‰ฌ์šด ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ
  • ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ ์ค‘์•™์˜ ๋„๋ฉ”์ธ ์˜์—ญ์— ์œ„์น˜ํ•˜๋ฉฐ, ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํฌํŠธ์™€ ์–ด๋Œ‘ํ„ฐ๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€์™€ ์†Œํ†ตํ•จ
  • ๋•Œ๋ฌธ์— ํฌํŠธ์™€ ์–ด๋Œ‘ํ„ฐ ์•„ํ‚คํ…์ฒ˜(Ports and Adapters Architecture)๋ผ๊ณ ๋„ ๋ถˆ๋ฆผ

Hexagonal Architecture in Flitter ๐Ÿค”

Hexagonal Architecture in Flitter ์ด ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๊ฐ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฃจํŠธ ํŒจํ‚ค์ง€(dev.hoon.deepdive.heavytraffic.flitter) ํ•˜์œ„์— ํŒจํ‚ค์ง€ ๋‹จ์œ„๋กœ ๊ตฌ๋ถ„ํ•˜๊ณ  ์žˆ๋‹ค.

์™ธ๋ถ€ ์˜์—ญ์— ํ•ด๋‹นํ•˜๋ฉฐ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”์–ด๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์–ด๋Œ‘ํ„ฐ(adapter.in ํŒจํ‚ค์ง€ ํ•˜์œ„ ํด๋ž˜์Šค)์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”์–ด์— ์˜ํ•ด ํ˜ธ์ถœ๋˜๋Š” ์–ด๋Œ‘ํ„ฐ(adapter.out ํŒจํ‚ค์ง€ ํ•˜์œ„ ํด๋ž˜์Šค)๊ฐ€ ์žˆ๋‹ค.

์–ด๋Œ‘ํ„ฐ์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ†ต์‹ ์„ ๋‹ด๋‹นํ•˜๋Š” ํฌํŠธ(application.port)์™€ ํ•ต์‹ฌ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๋Š” ์„œ๋น„์Šค(application.service)๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค. ํฌํŠธ๋Š” in/out์œผ๋กœ ๋‚˜๋‰˜์–ด์žˆ๋Š”๋ฐ ๊ฐ๊ฐ ์œ ์Šค์ผ€์ด์Šค ์ธํ„ฐํŽ˜์ด์Šค, ์–ด๋Œ‘ํ„ฐ์— ์˜ํ•ด ๊ตฌํ˜„๋˜๊ณ  ์ฝ”์–ด์— ์˜ํ•ด ํ˜ธ์ถœ๋˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋œ๋‹ค.

ํ”„๋กœ์ ํŠธ์˜ ๋„๋ฉ”์ธ ์—”ํ‹ฐํ‹ฐ๋ฅผ ํฌํ•จํ•˜๊ณ ์žˆ๋‹ค.