JunnyLang Blog
  • 👻JUNNYLAND BLOG
  • JVM
    • ☕JAVA
      • Basic
        • Clamp
        • Yield
        • SOAP
        • Final
        • Enhanced java beans
        • Lambda
        • Instance Cache
        • New Builder ?
        • try-catch
          • Remove resource
      • Thread
        • Thread
        • Runnable
        • Executor
        • Callable
        • Syncronize
        • Volatile
        • Thread Local
        • LifeCycle
      • Reflection
        • Class
        • Method
        • Field
      • NIO
        • NIO&FILE
        • BUFFER
        • Channel
        • TCP Channel (Blocking)
        • TCP Channel (Non-Blocking)
        • UDP Channel
      • Security
        • MD5
      • Stream
        • 병렬 처리와 커스텀 스레드 풀
    • 🔮KOTLIN
      • Basic
        • Setting
        • Destructuring Declarations
        • Recursive
        • Functional Interface
        • Type Alias
        • Grammer
          • Variable
          • Array
        • 10분 코틀린 기초떼기
        • Lazy
        • Inline
      • Coroutine
        • 병렬처리
        • Job
    • 🤖JVM
      • Compile
        • Just in Time
        • Byte Code
        • Java & Kotlin
      • Core
        • Monitor
        • Sychronization
        • JVM&Heap
        • GC Tuning
        • GC
    • 🆙Testing
      • Junit
        • 소개
      • JMH
    • 📚Books
      • 📕Modern Java in Action
        • 자바 8, 9, 10, 11
        • 동작 파라미터화 코드 전달하기
        • 람다 표현식
        • STREAM
        • STREAM2
        • Collector
        • 병렬 데이터 처리
        • 스트림과 람다를 이용한 효과적 프로그래밍
        • 리팩터링, 테스팅, 디버깅
        • null 대신 Optional 클래스
        • 디폴트 메서드
        • 자바 모듈 시스템
        • CompletableFuture와 리액티브 프로그래밍
        • CompletableFuture
        • 리액티브 프로그래밍
        • 함수형
        • 함수형 프로그래밍
      • 📗Kotlin in Action
        • 코틀린이란
        • 기초
        • 함수
        • 클래스, 객체, 인터페이스
        • 람다
        • Null
        • 관례
        • 고차함수
        • 제너릭
        • 어노테이션
        • DSL
      • 📗자바 병렬 프로그래밍
        • 개요
        • 스레드 안정성
        • 객체 공유
        • 객체 구성
        • 구성 단위
        • 작업 실행
        • 중단 및 종료
        • 스레드 풀 활용
        • 활동성을 최대로 높이기
        • 성능, 확장성
        • 명시적인 락
        • 단일 연산 변수와 넌블로킹 동기화
        • 메모리 모델
      • 📗코틀린으로 배우는 함수형 프로그래밍
        • 함수형 프로그래밍이란?
        • 코틀린으로 함수형 프로그래밍 시작하기
        • 재귀
        • 고차 함수
        • 컬렉션으로 데이터 다루기
        • 함수형 타입
        • 펑터
        • 애플리케이티브 펑터
        • 모노이드
        • 모나드
        • 로깅, 예외처리, 테스트, 디버깅
      • 📘Effective Kotlin
        • 가변성을 제한하라
        • 변수의 스코프를 최소화하라
        • 최대한 플랫폼 타입을 사용하지 마라
        • inferred 타입으로 리턴하지 말라
        • 예외를 활용해 코드에 제한을 걸어라
        • 사용자 정의 오류보다는 표준 오류를 사용하라
        • 결과 부족이 발생할 경우 null과 failure를 사용하라
        • 적절하게 null을 처리하라
        • use를 사용하여 리소스를 닫아라
        • 단위 테스트를 만들어라
        • 가독성을 목표로 설계하라
        • 연산자 오버로드를 할 때는 의미에 맞게 사용하라
        • Unit?을 리턴하지 말라
        • 변수 타입이 명확하지 않은 경우 확실하게 지정하라
        • 리시버를 명시적으로 참조하라
        • 프로퍼티는 동작이 아니라 상태를 나타내야 한다.
        • 이름 있는 아규먼트를 사용하라
        • 코딩 컨벤션을 지켜라
        • knowledge를 반복하여 사용하지 말라
        • 일반적인 알고리즘을 반복해서 구현하지 말라
        • 일반적인 프로퍼티 패턴은 프로퍼티 위임으로 만들어라
        • 일반적인 알고리즘 구현 시 제네릭을 써라
        • 타입 파라미터의 섀도잉을 피하라
        • 제네릭 타입과 variance 한정자를 활용하라
        • 공통 모듈을 추출해서 여러 플랫폼에서 재사용하라
        • 함수 내부의 추상화 레벨을 통일하라
        • 변화로부터 코드를 보호하려면 추상화를 사용하라
        • API 안정성을 확보하라
        • 외부 API를 wrap해서 사용하라
        • 요소의 가시성을 최소화하라
        • 문서로 규약을 정의하라
        • 추상화 규약을 지켜라
        • 생성자 대신 팩토리 함수를 사용하라
        • 기본 생성자에 이름 있는 옵션 아규먼트를 사용하라
        • 복잡한 객체를 생성하기 위한 DSL을 정의하라
        • 상속보다는 컴포지션을 사용하라
        • 데이터 집합 표현에 data 한정자를 사용하라
        • 연산 또는 액션을 전달할 때는 인터페이스 대신 함수 타입을 사용하라
        • 태그 클래스보다는 클래스 계층을 사용하라
        • equals의 규약을 지켜라
        • hashCode의 규약을 지켜라
        • compareTo의 규약을 지켜라
        • 필수적이지 않은 부분을 확장 함수로 추출
        • 불필요한 객체 생성을 피하라
        • 함수 타입 파라미터를 갖는 함수에 inline 한정자를 붙여라
        • 인라인 클래스의 사용을 고려하라
        • 더 이상 사용하지 않는 객체의 레퍼런스를 제거하라
        • 하나 이상의 처리 단계를 가진 경우 시퀀스를 써라
        • 컬렉션 처리 단계 수를 제한하라
        • 성능이 중요한 부분에는 기본 자료형 배열을 사용하라
        • mutable 컬렉션 사용을 고려하라
      • 📗Java bible
        • 자바를 시작하기 전에
        • 변수
        • 연산자
        • 배열
        • 객체지향 프로그래밍 1
        • 객체지향 프로그래밍 2
        • 객체지향 프로그래밍 3
        • 예외처리
        • java.lang패키지와 유용한 클래스
        • 날짜와 시간
        • 컬렉션 프레임웍
        • 제너릭, 열거형, 애너테이션
        • 쓰레드
        • 람다와 스트림
        • 입출력 I/O
        • 네트워킹
      • 📕Optimizing java
        • 성능과 최적화
        • JVM Overview
        • 하드웨어와 운영체제
        • 성능 테스트 패턴 및 안티패턴
        • 마이크로벤치마킹과 통계
        • 가비지 수집 기초
        • 가비지 수집 고급
      • 📙Java Performance Fundamentals
        • Java Virtual Machine
        • Runtime Data Area
        • Garbage Collection
        • Class loader
        • Execution Engine
      • 📘JVM 밑바닥부터 파헤치기
        • 자바 메모리 영역과 메모리 오버플로
      • 📕자바 성능 튜닝
      • 📗코틀린 동시성 프로그래밍
        • Concurrent ?
        • Thread ?
        • lifecycle ?
        • suspend ?
        • iterator ?
        • mutex ?
      • 📕Unit Testing
        • 단위 테스트의 목표
        • 단위 테스트란 무엇인가
        • 단위 테스트 구조
        • 좋은 단위 테스트의 4대 요소
        • 목과 테스트 취약성
  • GO
    • 📚Books
      • Go in action
        • Go 와의 첫 만남
        • Go 간단히 살펴보기
  • Spring
    • 🌫️Data
      • Hikari
        • 커넥션 풀링의 필요성과 기본 개념
        • 소개 및 아키텍처
        • 유틸클래스
        • 최적화된 컬렉션
        • 동시성 처리
        • 예외 처리
        • 커넥션 프록시 누수 감지
        • 커넥션 테스트와 유효성 검사
      • Data Rest
      • JDBC
        • Datasource
      • Neo4j
      • GraphQL
        • Setting
      • MongoDB
    • ☁️Cloud
      • Dataflow
        • Intro
      • Eureka
        • Service discovery
        • Eureka setting
        • TLS Authentication
    • 🗝️Core
      • Run Spring
      • Inversion of Control
        • Introduce
        • Container Context
        • Bean Overview
        • Bean Scopes
        • Customize Bean
        • Bean definition inheritance
        • Container Extension Points
        • Classpath Scanning and Managed Components
        • Environment Abstraction
      • Dependencies
        • Dependency Injection
      • Servlet
        • MVC
      • Aop
        • ControllerAdvice
      • Async
    • 🚪GateWay
      • Kafka
        • Listener
      • Integration
        • 개요
        • 채널 어댑터와 메시징 게이트웨이
        • 메시지 변환과 라우팅
        • 메시지 흐름 제어와 오류 처리
        • 메시징 엔드포인트
        • 고급 기능
      • Http
        • RestTemplate Logging
        • Okhttp
      • Socket
    • ⁉️Testing
      • Test Without @Autowire
    • 🪙WebFlux
      • base
        • UDP
        • TCP
      • Netty
        • Netty 등장의 이유
        • Echo Server
        • Structure
        • Transport
        • ByteBuf
        • ChannelHandler&ChannelPipeline
        • Eventloop& Thread Model
        • Bootstrapping
        • The codec framework
        • Provided ChannelHandlers and codecs
        • Web Socket
    • 🥟Integration
      • Page
    • 📚Books
      • 📓Java web을 다루는 기술
        • 서블릿 계층 구조
        • 비즈니스 로직 처리
        • 서블릿 포워드
        • 웹페이지 연결
        • JSP
      • 📗Spring in Action
        • 고급 와이어링
        • 애스펙트 지향 스프링
        • 스프링 MVC 시작하기
        • 웹 뷰 렌더링
        • 고급 스프링 MVC
        • 웹 애플리케이션 보안
        • JDBC
        • ORM
        • NoSQL
        • 데이터 캐싱
        • 시큐리티
        • 원격 서비스
        • 이메일
        • JMX
        • 스프링 부트
      • 📘Spring security in action
        • 오늘날의 보안
        • 안녕! 스프링 시큐리티
        • 사용자 관리
        • 암호 처리
        • 인증 구현
        • 작고 안전한 웹 어플리케이션
        • 액세스 제한
        • 제한 적용
        • 필터 구현
        • CSRF&CORS 적용
        • 실전 : 책임의 분리
        • Oauth2가 작동하는 방법
        • Oauth2 리소스 서버
        • 전역 메서드 보안
  • DATA
    • 📊GraphQL
      • introduce
      • 기본 기능
      • 스키마
      • 유지보수
    • 📩KAFKA
      • Kafka
        • Kafka intro ?
        • ISR
        • Topic
        • LeaderEpoch
      • Troubleshooting
      • Connector
        • Kafka Connector?
        • Source Connector
      • Producer
        • Idempotent Producer
        • Transaction Producer
        • Patitioner
        • Exactly Once Semantics
        • Transaction
      • Consumer
        • Multi Thread Consumer
        • Consumer Lag
    • 🧮NOSQL
      • 🥭MONGO
      • 💎ELASTIC
    • 🗒️RDB
      • Mysql
        • 아키텍쳐
      • Execution Plan
      • default
        • Cardinality
        • Covering Index
    • 📚Books
      • Real Mysql(2)
        • 쿼리 작성 및 최적화
      • 실전 레디스
        • 기초
        • 자료형과 기능
        • 고급 기능
        • 데이터 영속성
        • 트러블 슈팅
        • 레플리케이션
      • Mysql 성능 최적화 선택과 집중
        • 쿼리 응답 시간
  • INFRA
    • 📄LOGGER
      • Logback
    • 💾Storage
      • Minio
    • 🧩CI&CD
      • Waypoint
      • Jenkins
        • Multi Java version
        • Feestyle Job
        • Github
      • Argo
        • job
    • 🎛️LINUX
      • Troubleshooting
        • No child processes
        • Too many open files
      • Command
        • lsof
        • awk
        • sed
        • Resources
        • Nohup
        • Url call
        • Default set
        • Swap
    • 🔀Load Balance
      • haproxy
      • nginx
    • 🔩K8s
      • K8s?
        • kubectl
        • Kubelet
        • Kubeadm
      • Helm
      • Tip
        • Control node schedule
      • Error
        • 8080 refuse
        • Network CNI Error
    • 🗯️GIT
      • mailmap
      • gitmodules
      • gitattributes
      • gitignore
      • author
    • 📚Books
      • 📓컨테이너 환경 구축을 위한 쿠버네티스&도커
        • 컨테이너 인프라 환경이란
      • 📙그림으로 공부하는 IT 인프라 구조
        • 인프라 아키텍처를 살펴보자
        • 서버를 열어보자
        • 3계층형 시스템을 살펴보자
        • 직렬/병렬
        • 인프라를 지탱하는 응용 이론
        • 시스템을 연결하는 네트워크 구조
        • 무정지를 위한 인프라 구조
        • 성능 향상을 위한 인프라 구조
      • 📘PRO GIT
        • Git 기초
        • Git Branch
        • Git Server
        • 분산 환경 GIT
        • Git tool
        • Git 맞춤
        • Git 이전
        • Git의 내부
  • Computer Science
    • 🔫Software Design
      • Pattern of Enterprise Application Architecture
        • 소개
          • 계층화
          • 도메인 논리 구성
          • 관계형 데이터베이스 접근
          • 웹 프레젠테이션
          • 동시성
          • 세션 상태
          • 종합
        • 패턴
          • 도메인 논리 패턴
          • 데이터 원본 아키텍처 패턴
          • 객체 관계형 동작 패턴
          • 객체 관계형 구조 패턴
          • 웹 프레젠테이션 패턴
          • 분산 패턴
          • 오프라인 동시성 패턴
          • 세션 상태 패턴
          • 베이스 패턴
      • Clean Architecture
        • 설계와 아키텍처란?
        • 행위, 구조
        • 프로그래밍 패러다임
        • 구조적 프로그래밍
        • 객체 지향 프로그래밍
        • 함수형 프로그래밍
        • SRP: 단일 책임 원칙
        • OCP: 개방-폐쇄 원칙
        • LSP: 리스코프 치환 원칙
        • ISP: 인터페이스 분리 원칙
        • DIP: 의존성 역전 원칙
        • 컴포넌트
        • 컴포넌트 응집도
    • 🎀System Design
      • Pre-Scaling
    • 🔒SECURITY
      • CIA Triad
      • Password
      • SHA
    • 🖇️Algorithm
      • DFS(Depth-First Search)
      • Greedy
      • Fibonacci
      • Union-Find
      • Bitmask
      • LCA(Lowest Common Ancestor)
      • Recursive
      • Binary Search
      • SequentialSearch
      • Sum of array
      • Euclid
      • Big Oh
      • Sort
        • GnomeSort
        • MergeSort
    • ⛓️Data Structure
      • intro
      • Array
      • Linked List
      • Stack
      • Queue
      • Binary tree
      • Binary Searsh Tree
      • AVL Tree
      • Multiway search tree
      • Binary Heap
      • Hash Table
        • Hash Function
        • Hash Collision
      • Graph
      • Tree Traversal
    • ⚙️Operating System
      • Strace with system call
      • Top Half& Bottom Half
      • Context Switch
      • x86 vs ARM
      • BIOS&UEFI
      • Memory Address
      • NAND & NOR
      • Shell vs Kernel vs API
      • Process VS Thread
      • DMA Controller
    • 🛠️Network
      • BASIC
        • MAC Address
        • PACKET
        • Protocol
        • Internet Map
        • DNS
      • TCP
        • IP ?
        • Internet ?
      • UDP
    • 🎁Architectural Patterns
      • Peer-to-peer pattern
      • Master slave pattern
      • Client Server pattern
      • Broker pattern
      • Pipe filter pattern
      • Layered pattern
    • 💡Design pattern
      • Behavioral
        • Role Change
        • Template Method
        • Observer
        • Command
        • Memento
        • Strategy
        • Interpreter
      • Structural
        • Adapter
        • Proxy
        • Flyweight
        • Bridge
        • Composite
        • Decorator
      • Creational
        • Singleton
        • Abstract Factory
        • Factory Method
        • Prototype
      • Specification
    • 📃Coding Test
      • 가장 많이 받은 선물
    • 📚Books
      • 📓Operating System
        • 운영체제 개요
          • 컴퓨터 시스템 조직
          • 컴퓨터 시스템 아키텍처
          • 운영체제 동작
          • 자원 관리
          • 보안 및 보호
          • 가상화
          • 분산 시스템
          • 커널 데이터 구조
          • 컴퓨터 시스템 조직
        • 운영체제 서비스
          • 사용자 인터페이스와 시스템 호출 인터페이스
          • 시스템 호출
          • 시스템 콜
          • 시스템 서비스
          • 운영체제 구조
          • 운영체제 구성 및 부팅
        • 프로세스
          • 프로세스의 개념
          • 프로세스 스케줄링
          • 프로세스간 연산
          • 프로세스 통신
          • 공유 메모리
          • POSIX 공유 메모리
      • 📙DNS 실전 교과서
        • IP주소와 이름의 관계
      • 📕쉽게 배우는 운영체제
        • 운영체제
        • 컴퓨터 구성
        • 프로세스
        • 스케줄링
        • 프로세스 간 통신
        • 교착 상태
        • 메모리 관리
        • 가상 메모리
        • 요구 페이징
        • 입출력 시스템
      • 📙데이터 중심 어플리케이션 설계
        • 신뢰할 수 있고 확장 가능한
        • 데이터 모델과 질의 언어
        • 저장소와 검색
        • 부호화와 발전
        • 복제
        • 파티셔닝
        • 트랜잭션
        • 분산 시스템의 골칫거리
        • 일관성과 합의
        • 일괄 처리
      • 📗혼자 공부하는 컴퓨터 구조와 운영체제
        • 컴퓨터 구조 시작하기
        • 데이터
        • 명령어
        • CPU의 작동 원리
        • CPU 성능 향상 기법
        • 메모리와 캐시 메모리
        • 보조 기억 장치
        • 입출력 장치
        • 운영체제
        • 프로세스와 스레드
        • CPU 스케줄링
        • 프로세스 동기화
        • 교착 상태
        • 가상 메모리
        • 파일시스템
      • 📕HTTP 완벽가이드
        • http
        • URL & RESOURCE
        • HTTP Message
        • Connection 관리
        • Web Server
        • Proxy
        • Cache
        • Gateway
        • Web Robot
        • http 2.0
        • Client&Cookie
        • Authentication
        • Digest
        • 보안 HTTP
        • 엔티티&인코딩
        • 국제화
        • 내용 협상& 트랜스 코딩
        • 웹 호스팅
        • 배포 시스템
      • 📓도메인 주도 설계 구현
        • DDD를 시작하며
        • 도메인, 서브도메인, 바운디드 컨텍스트
        • Page 2
      • 📗도메인 주도 설계
        • 지식 탐구
        • 의사소통과 언어 사용
        • 모델과 구현의 연계
        • 도메인의 격리
        • 소프트웨어에서 표현되는 모델
        • 도메인 객체 생명 주기
        • 언어의 사용
        • 도약
        • 암묵적인 개념을 명시적으로 만들기
        • 유연한 설계
        • 모델과 디자인 패턴의 연결
        • 더 심층적인 통찰을 위한 리팩터링
        • 전략적 설계
        • 디스틸레이션
  • FINTECH
    • AML ?
  • AI
    • Koog
      • Intro
      • Page 1
    • Books
  • ETC
    • MATH
      • Function
        • Constant Function
    • Rust
      • Grammar
        • Variable
  • STUDY
    • Books
      • 📕디버깅을 통해 배우는 리눅스 커널의 구조와 원리
        • 리눅스 소개와 전망
      • 📘Atomic kotlin
      • 📓REAL MYSQL 8.0
        • SETTING
        • 아키텍쳐
        • 트랜잭션과 잠금
        • 2권
        • 1권
          • 설정
          • 권한
          • 아키텍처
          • 트랜잭션과 잠금
          • 데이터 압축
          • 인덱스
          • 옵티마이저와 힌트
      • 📙Hexagonal Architecture
      • 📘Toby Spring
        • 오브젝트와 의존관계
        • 테스트
        • 템플릿
        • 예외
      • 📓객체지향 사실과오해
      • 📘Effective java
        • 1 ~ 9
        • 10 ~ 14
        • 15 ~ 25
        • 26 ~ 33
        • 42 ~ 48
      • 📕Clean agile
        • 애자일
      • 📘Effective kotlin
      • 📙Clean software
      • 📘JPA 완벽가이드
        • JPA 소개
        • JPA 시작
        • 영속성 관리
        • 매핑
        • 연관 관계
        • 연관 관계 2
      • 📗운영체제 세가지 이야기
        • 운영체제 개요
        • CPU 가상화와 프로세스 개요
        • CPU 가상화 구현 - 제한적 직접 실행
        • 스케쥴링 개요
      • 📕클린 코더
        • 서평
      • 📙Practical Java utility
        • 서평
      • 📓JAVA 에서 KOTLIN으로
      • 📓운영체제
        • 서론
        • 운영체제 구조
        • 프로세스
        • 쓰레드
        • CPU 스케줄링
        • 동기화
      • 📕쿠버네티스 완벽가이드
        • 도커 복습과 Kubernetes
        • 왜 쿠버네티스가 필요할까?
        • 쿠버네티스 환경 선택
        • 쿠버네티스 기초
        • 커맨드 라인 인터페이스 도구
      • 📙아파치 카프카 애플리케이션 프로그래밍 with 자바
        • 들어가며
        • 카프카 빠르게 시작해보기
        • 카프카 기본 개념 설명
      • 📓TCP/IP 완벽가이드
      • 📙이펙티브 소프트웨어 테스팅
      • 📘TCP/IP 쉽게 더 쉽게
        • 컴퓨터 네트워크
      • 📘데이터 통신과 컴퓨터 네트워크
        • 네트워크 관련 기초 용어
        • 네트워크 개념
        • 네트워크 기술
        • 데이터 전송 기초
        • MAC 계층
        • 데이터 링크 계층
        • IP프로토콜
        • 네트워크 계층
        • TCP
        • 전송 계층
        • 상위 계층의 이해
      • 📙Object
        • 1장 객체,설계
        • 2장 객체지향
        • 3장 역할, 책임, 협력
        • 4장 설계 품질과 트레이드오프
        • 5장 책임 할당
        • 7장 메시지와 인터페이스
      • 📓Refactoring 2e
        • 1장
        • 2장
        • 3장
        • 4장
        • 6장
        • 7장
        • 8장
      • 📗만들면서 배우는 클린 아키텍처
        • 계층형 아키텍처의 문제
        • 의존성 역전하기
        • 코드 구성하기
        • 유스케이스 구현하기
        • 웹 어댑터 구현하기
        • 영속성 어댑터 구현하기
        • 아키텍처 요소 테스트하기
        • 경계 간 매핑하기
        • 애플리케이션 조립하기
        • 아키텍처 경계 강제하기
        • 의식적으로 지름길 사용하기
      • 📗Clean code
        • 의미있는 이름
        • 함수
        • 주석
        • 형식
        • 객체와 자료구조
        • 오류 처리
        • 경계
        • 단위 테스트
        • 클래스
        • 시스템
        • 창발성
        • 동시성
        • 점진적인 개선
        • 냄새와 휴리스틱
      • 📕Spring5를 활용한 리액티브 스트림
        • 왜 리액티브인가?
        • 기본개념
        • 리액티브 스트림
        • 리액티브
      • 📕텐초의 파이토치
        • 실습환경
      • 📙가장 쉬운 AI 입문서
Powered by GitBook
On this page
  1. Computer Science
  2. 🔫Software Design
  3. Pattern of Enterprise Application Architecture

패턴

도메인 논리 패턴데이터 원본 아키텍처 패턴객체 관계형 동작 패턴객체 관계형 구조 패턴웹 프레젠테이션 패턴분산 패턴오프라인 동시성 패턴세션 상태 패턴베이스 패턴
Previous종합Next도메인 논리 패턴