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. 📚Books

📙데이터 중심 어플리케이션 설계

신뢰할 수 있고 확장 가능한데이터 모델과 질의 언어저장소와 검색부호화와 발전복제파티셔닝트랜잭션분산 시스템의 골칫거리일관성과 합의일괄 처리
Previous입출력 시스템Next신뢰할 수 있고 확장 가능한

Last updated 2 years ago