Simplifying Software Design with Hexagonal Architecture | by Rohit Doshi |  Medium

Interface & Infrastructure Layer

Hexagonal Architecture๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, ํฌ๊ฒŒ domain, application, infrastructure ์„ธ ๊ฐœ๋กœ ํด๋”๋ง๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์œ„์˜ ์ด๋ฏธ์ง€๋ฅผ ๋ณด๋ฉด, ๊ธฐ๋ณธ์ ์ธ REST Controller ๋“ฑ์€ Interface Layer๋กœ ๋ถ„๋ฅ˜๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์œผ๋ฉฐ, DB ๋“ฑ์€ Infrastructure Layer๋กœ ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋‘˜์„ ๊ทธ๋ƒฅ infrastructure๋ผ๋Š” ํฐ ๋ฌถ์Œ ์•ˆ์— in๊ณผ out์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.

๋” ์ž์„ธํ•˜๊ฒŒ๋Š” Interface Layer๋ฅผ Primary Adapters, Infrastructure Layer๋ฅผ Secondary Adapters๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค.

Persistence Adapter

  • DB ์™€ ์ง์ ‘ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Œ
  • DB ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ, ์กฐํšŒ, ์ˆ˜์ •, ์‚ญ์ œ ๋“ฑ์˜ ์˜์†์„ฑ ๊ธฐ๋Šฅ์„ ์ œ๊ณต
  • ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋น„์Šค๋Š” ์ด ์–ด๋Œ‘ํ„ฐ๋ฅผ ํ†ตํ•ด์„œ๋งŒ DB ์— ์ ‘๊ทผ ๊ฐ€๋Šฅ