๐Ÿ”ญ
Ellery's study archive
Resume(์ˆ˜์ •์ค‘)GithubTistory
  • framework, library
    • Spring core
      • ์Šคํ”„๋ง ํŠธ๋ผ์ด์•ต๊ธ€ - POJO, IOC/DI, AOP, PSA
      • Servlet
    • Spring MVC
      • DispatcherServlet
      • Validation
    • Spring Boot
    • Spring Security
    • Spring Batch
    • Spring Webflux
    • JPA
    • JUnit, Spring Test
    • etc
      • Slf4j MDC(Mapped Diagnostic Context)
  • ETC, ๊ฐœ๋ฐœ ํŒ๋“ค
    • ๊ฐœ๋ฐœ ํŒ๋“ค
      • ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ init ์‹œ์— ํ•ด์•ผ๋  ๊ฒƒ๋“ค
      • vim ํ•œ๊ธ€ ๊นจ์งˆ ๋•Œ ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹ ์ง€์ •
      • EC2 ssh connection ์‰ฝ๊ฒŒ ํ•˜๊ธฐ
      • ๋ฆฌ๋ˆ…์Šค ์ปค๋งจ๋“œ, netstats
      • Forkํ•œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ origin ์—…๋ฐ์ดํŠธ
      • git merge, rebase
      • Intellij ์ž์ฃผ ์“ฐ๋Š” ๊ธฐ๋Šฅ ๋‹จ์ถ•ํ‚ค
      • JSON handling
      • aws user-data.sh
    • Lombok annotation, ๊ถŒ์žฅ ๋ฐฉ์‹
    • DB ๋ชจ๋ธ๋ง ์‹œ์— ์ธ์กฐ ์‹๋ณ„์ž ์ •์˜ํ•˜๋Š” ์ผ€์ด์Šค
    • Redis pub/sub vs Apache kafka
  • Language
    • Java
      • ์ž๋ฐ” ๋ฒ„์ ผ๋ณ„ feature
      • JVM architecture
      • Garbage collection
      • Java String pool
      • java 8 Concurrent
      • Optional
      • Stream
      • Comparator, Comparator
      • Error, Exception
      • Java์˜ Call by value(pass by value)
      • Java ๋ณ€์ˆ˜ ๊ฐ„ ๊ฐ’ Swap ๋ฐฉ์‹ 5๊ฐ€์ง€
    • Javascript
      • ์ž์ฃผ ์“ฐ๋Š” ES6 ๋ฌธ๋ฒ• ์ •๋ฆฌ
      • ES6 module
      • ES6 proxy
      • scope, var closure ์ด์Šˆ, let, const
    • Python
      • @lru_cache
  • CS
    • OS
      • Process, Thread
      • CPU scheduling
      • sync vs async, blocking vs nonblocking
      • Memory segmentation
      • virtual memory
      • ํŽ˜์ด์ง€ ๊ต์ฒด ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • Network
      • UDP
      • TCP
      • DNS
      • HTTP
      • web server, WAS
      • Proxy, Load balancer
      • web socket, WebRTC
      • gRPC
      • web secure
    • DB
      • MySQL
      • index
      • ์ •๊ทœํ™”
      • DB ํŠธ๋žœ์žญ์…˜, ๋™์‹œ์„ฑ ์ œ์–ด ๋ฌธ์ œ
      • ํด๋Ÿฌ์Šคํ„ฐ๋ง
      • ๋ ˆํ”Œ๋ฆฌ์ผ€์ด์…˜
      • ์ƒค๋”ฉ
    • Data Structure, Algorithm
      • AVL tree, Red black tree
      • B-tree, B*tree, B+tree
      • Hash
    • Design pattern
      • SOLID
      • ์ƒ์„ฑ ํŒจํ„ด
        • ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด
        • ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ ํŒจํ„ด
        • ๋นŒ๋” ํŒจํ„ด
        • Null ๊ฐ์ฒด ํŒจํ„ด
      • ๊ตฌ์กฐ ํŒจํ„ด
        • ํผ์‚ฌ๋“œ ํŒจํ„ด
        • ํ”„๋ก์‹œ ํŒจํ„ด
        • ์–ด๋Œ‘ํ„ฐ ํŒจํ„ด
        • ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด
      • ํ–‰์œ„ ํŒจํ„ด
        • ์ „๋žต ํŒจํ„ด
        • ํ…œํ”Œ๋ฆฟ ๋ฉ”์„œ๋“œ ํŒจํ„ด
        • ์ƒํƒœ ํŒจํ„ด
        • ์˜ต์ €๋ฒ„ ํŒจํ„ด
  • ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ณ
    • Layered Architecture
    • ํด๋ฆฐ ์•„ํ‚คํ…์ณ
    • DDD
    • etc
      • DTO vs VO
  • ๊ฐœ๋ฐœ ์„œ์ ๋“ค
    • ์†ŒํŠธ์›์Šค ์•ค์†”๋กœ์ง€์—์„œ ์†Œ๊ฐœ๋˜๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์ƒํ™œ ์ฒด์กฐ ์›์น™ ๊ฐ„๋žต ์ •๋ฆฌ
    • ์—˜๋ ˆ๊ฐ•ํŠธ ์˜ค๋ธŒ์ ํŠธ - ์ƒˆ๋กœ์šด ๊ด€์ ์—์„œ ๋ฐ”๋ผ๋ณธ ๊ฐ์ฒด์ง€ํ–ฅ
    • ๋งŒ๋“ค๋ฉด์„œ ๋ฐฐ์šฐ๋Š” ํด๋ฆฐ ์•„ํ‚คํ…์ณ
  • ํ…Œํฌ ๋ธ”๋กœ๊ทธ
Powered by GitBook
On this page
Edit on GitHub
  1. ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ณ

Layered Architecture

Previous์˜ต์ €๋ฒ„ ํŒจํ„ดNextํด๋ฆฐ ์•„ํ‚คํ…์ณ

Last updated 2 years ago

  • layered architecture - ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ์— ๋”ฐ๋ผ ์‹œ์Šคํ…œ์„ ์œ ์‚ฌํ•œ ์ฑ…์ž„์„ ์ง€๋‹Œ layer๋กœ ๋ถ„๋ฆฌํ•˜๊ณ , ๊ฐ๊ฐ์˜ ๋ ˆ์ด์–ด๊ฐ€ ํ•˜์œ„ ๋ ˆ์ด์–ด์—๋งŒ ์˜์กดํ•˜๋„๋ก ๊ตฌ์„ฑํ•˜๋Š” ์•„ํ‚คํ…์ณ ํŒจํ„ด

    1. presentation ๋ ˆ์ด์–ด

      • HTTP ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ, Body๋ฅผ validation, ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์œ„์ž„, ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•จ

      • (์ถ”๊ฐ€) ํ•จ์ˆ˜(์—ฐ์‚ฐ) ๋ ˆ๋ฒจ์—์„œ์ด ๋ช…๋ น๊ณผ ์กฐํšŒ์˜ ์ฑ…์ž„์„ ๋ถ„๋ฆฌํ•˜๋Š” CQS(command query seperation)์„ ์ ์šฉํ•ด์„œ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ๋ช…์‹œ์ ์œผ๋กœ ๋ช…๋ น๊ณผ ์กฐํšŒ๋กœ ๋ถ„๋ฆฌํ•ด์„œ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Œ

    2. application ๋ ˆ์ด์–ด

      • ํ๋ฆ„ ์ œ์–ด ๋ชฉ์ , AOP๋ฅผ ์‚ฌ์šฉํ•œ ์ข…์ &ํšก์  ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ, ๋„๋ฉ”์ธ ๋ชจ๋ธ ๋„์ž…, ๋‹จ์ผ ์ฑ…์ž„์„ ์ง€๋‹ˆ๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ์„œ๋น„์Šค๋กœ ๋ถ„ํ•ดํ•˜๊ณ  ์—ญํ• ์„ ์œ„์ž„

      • ๋‹จ์ผ ๊ฐœ์ฒด ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์—ˆ์„ ๋•Œ ๋‹จ์  โ†’ ํ•˜๋Š” ์—ญํ• ์ด ๋„ˆ๋ฌด ๋งŽ์•„์„œ ๋ณต์žก๋„ ์ฆ๊ฐ€. ์—ฐ๊ด€์„ฑ์ด ์ ์€ ๊ฐœ์ฒด๊ฐ€ ์„œ๋น„์Šค ๊ฐœ์ฒด์— ๋ฐ€์ง‘ํ•˜๊ฒŒ ๋˜๋ฉด ์˜์กดํ•˜๋Š” ๊ฐœ์ฒด๊ฐ€ ๋งŽ์•„์ง€๊ณ , ๊ทธ๋Ÿฌ๋ฉด ๋ณ€๊ฒฝ์— ์ทจ์•ฝํ•œ ์ฝ”๋“œ๊ฐ€ ๋จ

    3. domain ๋ ˆ์ด์–ด

      • CQS ์›์น™์— ๋”ฐ๋ผ ๋ช…๋ น ์ฑ…์ž„๊ณผ ์กฐํšŒ ์ฑ…์ž„์„ ๋ถ„๋ฆฌ

      • DIP์— ๋”ฐ๋ผ ๋„๋ฉ”์ธ ๋ ˆ์ด์–ด์—์„œ๋Š” ๊ณ ์ˆ˜์ค€์˜ ๋น„์ง€๋‹ˆ์Šค ๋กœ์ง์„ ํ•ด๊ฒฐํ•ด์•ผ๋˜๊ณ , ์ €์ˆ˜์ค€์˜ ๊ธฐ์ˆ  ๊ตฌํ˜„, ์™ธ๋ถ€ ์ธํ”„๋ผ์— ์˜์กดํ•˜์ง€ ์•Š๋„๋ก ๊ตฌ์„ฑํ•ด์•ผ๋จ

        • ๋„๋ฉ”์ธ ๋ ˆ์ด์–ด๋Š” ์ถ”์ƒ์ ์ด์—ฌ์•ผ๋˜๊ณ , ๋‹ค๋ฅธ ์™ธ๋ถ€ ์˜์กด์„ฑ์„ ์ฐธ์กฐํ•˜์ง€ ์•Š์•„์•ผ๋จ

    4. infrastructure ๋ ˆ์ด์–ด

      • Data access ๊ธฐ์ˆ , IoC ์ปจํ…Œ์ด๋„ˆ, ๊ทธ ์™ธ ๊ธฐ์ˆ ์ ์ธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ชจ๋“  ๊ฐœ์ฒด๋ฅผ ํฌํ•จ

        • Spring IoC ํ™˜๊ฒฝ ๊ตฌ์„ฑ

        • Session, JWT ๋ณด์•ˆ ๊ธฐ๋Šฅ

        • Data Access(Hibernate๋‚˜ MyBatis, JDBC)

        • ๋ฉ”์„ธ์ง• ํ(Rabbit MQ, Kafka)

        • ๋ฉ”์ผ(JavaMail)

https://techblog.woowahan.com/2561/
DAO์™€ Repository์˜ ์ฐจ์ด์ Dev.Isaac
Layered Architecture Deep DiveMedium
Logo