Software Architecture

Software Architecture

Creator
Creator
Seonglae ChoSeonglae Cho
Created
Created
2020 Sep 11 13:54
Editor
Edited
Edited
2025 Nov 11 23:9

Organize layers hierarchically while reducing module dependencies (coupling) and increasing code cohesion

Spaghetti Code: No code layer & consistency, complex dependency
Rather than developing linearly in response to ad-hoc requests, it's much faster in the long run to pursue accelerated development through structural design, even if it delays immediate development. An ideal step-function progress graph that continuously presents new structures is optimal
  • Cohesion - Similar code with related responsibilities should be grouped together
  • Coupling - Modifying one feature should require changes to only one piece of code
Software Architectures
ย 
ย 
Software Architecture Notion
ย 
ย 
ย 
One thing that should be learned from the Bitter Lesson is the great power of general-purpose methods, of methods that continue to scale with increased computation even as the available computation becomes very great. - Richard Sutton
ย 
ย 
Hexagonal Architecture
๊ฐœ์š” ์ด๋ฒˆ ํฌ์ŠคํŒ… ์—์„œ๋Š”, ์œก๊ฐํ˜• ์•„ํ‚คํ…์ฒ˜(Hexagonal Architecture) ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ณ  ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ์œก๊ฐํ˜• ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ ์šฉ ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋„ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ณ„์ธตํ™” ์—†๋Š” ์ฝ”๋“œ = ์ŠคํŒŒ๊ฒŒํ‹ฐ ๋จผ์ € ์œก๊ฐํ˜• ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์ „์—, ์ œ๊ฐ€ ์ฒซ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ์„๋•Œ์˜ ์ด์•ผ๊ธฐ๋ฅผ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๋ชจ ๊ธฐ๊ด€์—์„œ ์•ˆ๋“œ๋กœ์ด๋“œ APK ๋ณด์•ˆ์ทจ์•ฝ์  ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•ด์ฃผ๋Š” ์„œ๋น„์Šค๋ฅผ ์ง„ํ–‰ํ–ˆ์„๋•Œ, ์ €๋Š” ๋ชจ๋“ˆํ™”๋‚˜
Hexagonal Architecture
ย 
ย 
ย 

Recommendations