- [Code - Abstraction]
- [Code - Logic and the Flow of Thought]
- [Code - The Object-Oriented Programming Paradigm]
- [Code - Applying Object-Oriented Programming]
- [Code - Refining Your Code]
- [Code - Refactoring Practice]
- [Code - Conditions for Better Memory]
- Java - Class
- Java - Java Memory
- Java β Solving Concurrency Issues with Synchronized
- Java - synchronized
- Java β Instance Variable & Local Variable vs final
- Java β Object
- Java β Immutable Object
- Java β String
- Java β Wrapper Class
- Java β ENUM
- Java β Nested Class & Inner Class & Local Class & Anonymous Class
- Java β Generic
- Java β ArrayList
- Java β LinkedList
- Java β List
- Java β Set
- Java β Hash
- Java β HashSet
- Java β Map & Stack & Queue
- Java β Iterate & Sort
- Java - Process & Thread
- Java - Thread Creation & Execution
- Java - Thread Control & LifeCycle
- Java - Memory Visibility
- Java - Advanced Synchronization
- Java - Producer/Consumer Problem
- Java - Synchronization & Atomic Operation
- Java - Concurrent Collection
- Java - Thread Pool & Executor Framework
- Java - Character Encoding
- Java - I/O
- Java - File & Files
- Java - Reflection
- Java - Annotation
- Java - Lambda
- Java - Functional Interface
- Java - Lambda vs Anonymous Class
- Java - Method Reference
- Java - Stream API
- Java - Optional
- Java - Default Method
- Java - Parallel Stream
- Java - Functional Programming
- Java - JVM & GC & SOLID
- Java - Data Storage and Memory Allocation: Primitive vs. Reference
- Java β Static Keyword: Efficient Resource Management at the Class Level
- Java β OOP
- Java β Collection Framework Selection Standard
- Java β Multi Threading & Concurrent Programming
- Java β Exception Handling & Advanced Java
- Java β Java 8+
- Java β Java Application Performance Tuning
- Java - CAS
- Java - Virtual Thread
- Java - Benchmark
- Kotlin - Variables, Types, and Operators in Kotlin
- Kotlin - Control Flow in Kotlin
- Kotlin - Object-Oriented Programming in Kotlin
- Kotlin - Functional Programming in Kotlin
- Kotlin - Key Features of Kotlin
- Kotlin - Generics in Kotlin
- Kotlin - Lazy Initialization and Delegation in Kotlin
- Kotlin - Advanced Functional Programming in Kotlin
- Kotlin - Operator Overloading and Kotlin DSL
- Kotlin - Annotations and Reflection in Kotlin
- Kotlin - Miscellaneous Topics in Kotlin
- Coroutine - Limitations of Thread-Based Work & the Emergence of Coroutines
- Coroutine - runBlocking
- Coroutine - CoroutineDispatcher
- Coroutine - Controlling Coroutines with Job
- Coroutine - Receiving Results from Coroutines
- Coroutine - Coroutine Context
- Coroutine - Structured Concurrency
- Coroutine - Exception Handling
- Coroutine - Suspended Functions
- Coroutine - Understanding Coroutines
- Coroutine - Advanced Coroutines
- Coroutine - Coroutine Testing
- Spring - OOP & Spring
- Spring - Spring Container & Spring Bean
- Spring - Singleton Container
- Spring - Dependency Injection
- Spring - Bean LifeCycle Callback
- Spring - Bean Scope
- Spring β Web Server, Web Application server
- Spring β Servlet
- Spring β Servlet & JSP & MVC
- Spring β MVC Framework
- Spring β Spring MVC
- Spring - Thymeleaf
- Spring - Message & Internationalization
- Spring - Validation
- Spring - Bean Validation
- Spring - Cookie & Session
- Spring - Filter & Interceptor
- Spring - API Exception Handling
- Spring - Spring Type Converter
- Spring - File Upload
- Spring - Connection Pool & DataSource
- Spring - Transaction
- Spring β Spring Exception Abstraction
- Spring - Database Access
- Spring β Spring Transaction
- Spring β Spring Transaction Propagation
- Spring β Thread Local
- Spring β Template Method Pattern & Callback Pattern
- Spring β Dynamic Proxy
- Spring β Spring Proxy
- Spring β Bean Processor
- Spring β @Aspect AOP
- Spring β Spring AOP
- Spring β Spring AOP Application
- Spring - MyBatis
- Spring β URL Encoding
- Spring - Cache Annotation
- Spring - Retry
- Spring Security - Initialization
- Spring Security - Authentication Process
- Spring Security - Authentication Architecture
- Spring Security - Authentication Status Persistence Processing Mechanism
- Spring Security - Session Management
- Spring Security - Exception Handling
- Spring Security - Mechanisms for responding to Malicious Attacks
- Spring Security - Authorization Process
- Spring Security - Authorization Architecture
- Spring Security - Multiple Security Settings
- Spring Security - Redis Redundancy Settings
- Spring Security - Event
- Spring Security - Integration
- Spring Security - OAuth 2.0
- Spring Security - OAuth 2.0 Authorization Type
- Spring Security - Open ID Connect
- Spring Security - OAuth 2.0 Client
- Spring Security - OAuth 2.0 Client Fundamentals
- Spring Security - OAuth 2.0 oauth2Login
- Spring Security - OAuth 2.0 oauth2Client
- Spring Security - OAuth 2.0 Resource Server
- Spring Security - OAuth 2.0 Resource Server API
- Spring Security - OAuth 2.0 Verification
- Spring Security - OAuth 2.0 MAC & RSA Token Verification
- Spring Security - OAuth 2.0 Resource Server Permission Implementation
- Spring Security - OAuth 2.0 opaque()
- Spring Security - Authorization Server
- Spring Security - Authorization Server Main Domain Class
- Spring Security - Authorization Server Endpoint Protocol
- Spring Batch - Scheduler vs Batch
- Spring Batch - Batch Concept
- Spring Batch - Batch Domain
- Spring Batch - Job
- Spring Batch - Step
- Spring Batch - Flow
- Spring Batch - Chunk Process
- Spring Batch - ItemReader
- Spring Batch - ItemWriter
- Spring Batch - ItemProcessor
- Spring Batch - Retry & Error Handling
- Spring Batch - Multi Threads Processing
- [Spring Batch - Batch Event Listener]
- [Spring Batch - Batch Test]
- [Spring Batch - File Processing]
- [Spring Batch - Read and Write Operations in Relational Databases and NoSQL]
- [Spring Batch - FaultTolerant & ItemStream]
- [Spring Batch - Partitioning]
- Reactive Programming - Reactive System & Reactive Programming
- Reactive Programming - Fundamentals of WebFlux and Reactor
- Reactive Programming - Core Operators in WebFlux Reactor
- Reactive Programming - Practical Patterns in WebFlux
- Reactive Programming - WebFlux Patterns with Spring Boot
- Database - Database Introduction
- Database - Search & Sort
- Database - Data Processing
- Database - Aggregation & Grouping
- Database - Inner Join
- Database - Outer Join & Etc Join
- Database - Sub Query
- Database - UNION
- Database - CASE
- Database - Index
- Database - Data Integrity
- Database - Transaction
- Database - Why Database Design Matters
- Database - Concept Modeling
- Database - Logical Data Modeling
- Database - Identifying Relationship & Non-Identifying Relationship
- Database - Normalization
- Database - Physical Data Modeling
- Database - Common Code Design
- Database - Hierarchical Structure Design
- Database - Data Change History Design
- Database - SOFT DELETE
- Database - Statistics Table Design
- Database - Inheritance Relationship Design
- Database - Entity-Attribute-Value (EAV) Model
- Database - JSON Schema Design
- MySQL β Solving Concurrency Problems using Database-Level Locking
- MySQL - Multi Column Index
- MySQL - Covering Index & RDB vs ElasticSearch Diff
- MySQL - ORDER BY
- MySQL - INSERT
- MySQL - AUTO_INCREMENT_LOCK
- MySQL - Index Dive Using In Query
- MySQL - Why don't use prefix index in default
- MySQL - MySQL LockType
- MySQL - DeadLock Case
- MySQL - NoOffset For Query Tuning
- MySQL β Skip Locked for Session
- MySQL - Checking DB Metrics with SQL Queries
- MySQL - Data Modeling for Practical Service Development
- MySQL - Basic CRUD in MySQL
- MySQL β MySQL Internal Architecture and Storage Engines
- MySQL - MySQL Horizontal Scaling
- MySQL β OperationalβLevel System Design
- MySQL - MySQL Fundamentals
- MySQL - Why You Should Use MySQL: JOIN
- MySQL - Must-Know SQL Anti-Patterns
- MySQL - Learning Data Modeling Through Practical Examples
- MySQL - Foreign Key & Strategic Patterns
- MySQL - Advanced Topics in MySQL
- Redis β Redis
- Redis β Redis Manual
- Redis β Redis Cache Strategy
- Redis β Redis Master-Slave
- Redis - Redis Cluster Mode
- Redis - Redis Cluster Example
- Redis - Redis Data Structure
- Redis - Redis pub/sub & streams
- Redis - Redis Server
- Redis - Reduce DB write load using Redis
- Redis - Solving Concurrency Issues (1)
- Redis β Solving Concurrency Issues (2)
- Redis - Solving Concurrency Issues (3)
- Redis - Implementing Popular Searches
- Redis - API Rate Limiting
- Redis - Geospatial
- Redis - DAU Counting Application
- Redis - Session Management Application
- Redis - Redis Transaction ACID
- Redis - Redis Data Persistence
- Redis - Redis Keys Management
- Redis - Decoupling microservices with Redis Pub/Sub
- Redis - Redis Pipelining & RTT(Round Trip Time)
- Redis - Redis Streams
- Redis - Hash Slot Rebalancing
- JPA - Java Persistence API
- JPA - Entity Mapping & PK Strategy
- JPA β JPA Association Mapping
- JPA - Proxy Association
- JPA - Value Type
- JPA - Dirty Checking vs. Merge: Understanding the Difference in JPA
- JPA - Cascading and Orphan Removal in JPA
- JPA - Introduction to Object-Oriented Query Languages in JPA
- JPA - Spring Data JPA
- JPA β Solving Concurrency Issues with Pessimistic Locking
- JPA β Solving Concurrency Issues with Optimistic Locking
- JPA - Lazy Loading and Performance Optimization in JPA
- JPA - ManyToOne Important Things
- JPA - OneToMany Important Things
- JPA - OSIV
- MicroService Architecture - Service Communications Patterns(RESTful API)
- MicroService Architecture - Service Communications Patterns(GraphQL)
- MicroService Architecture - Service Communications Patterns(gRPC)
- MicroService Architecture - API Gateway Patterns
- MicroService Architecture - Asynchronous Communications Patterns
- MicroService Architecture - Data Management Patterns
- MicroService Architecture - CQRS Patterns
- MicroService Architecture - Distributed Transactions
- [MicroService Architecture - Event-Driven Architecture]
- [MicroService Architecture - Resilience & Observability and Monitoring]
- [MicroService Architecture - Security Patterns]
- [MicroService Architecture - Testing Strategies]
- [MicroService Architecture - Scalability & Caching Patterns]
- [MicroService Architecture - Deployment Patterns]
- [MicroService Architecture - Serverless Architecture]
- [MicroService Architecture - GraphQL]
- [MicroService Architecture - Evolution of Distributed Systems and Their Drawbacks]
- [MicroService Architecture - Protocol Buffers]
- [MicroService Architecture - gRPC Communication Patterns]
- [MicroService Architecture - gRPC Optimization Strategies and Implementation]
- MicroService Architecture - 2PC
- MicroService Architecture - TCC
- MicroService Architecture - SAGA
- Apache Kafka - Kafka Introduction
- Apache Kafka - Kafka CLI
- Apache Kafka - Kafka Producer Application
- Apache Kafka - Kafka Consumer Application
- Apache Kafka - Idempotent Producer & Transactional Producer & Transactional Consumer
- Apache Kafka - Kafka Streams
- Apache Kafka - Kafka Topic/Producer/Consumer
- Apache Kafka - Producer Mechanism
- Apache Kafka - Consumer Mechanism
- Apache Kafka - Multi Node Kafka Cluster
- Apache Kafka - Producer & Consumer Serialization/DeSerialization
- Apache Kafka - Topic Segment Management
- Apache Kafka - KSQLDB Stream
- Apache Kafka - KSQLDB Table
- Apache Kafka - KSQLDB Application
- Apache Kafka - Group by & Mview
- [Apache Kafka - Join]
- [Apache Kafka - Time & Windows]
- [Apache Kafka - Connecting KSQLDB to Kafka Connect]
- [Apache Kafka - Kafka Connect]
- [Apache Kafka - JDBC Source Connector]
- [Apache Kafka - JDBC Sink Connector]
- [Apache Kafka - Debezium MySQL CDC Source Connector]
- [Apache Kafka - Schema Registry]
- Apache Kafka - Differences Between RocksDB and In-Memory KeyValueStore in GlobalKTable
- Apache Kafka - Kafka Streams
- [Apache Kafka - Kafka Connect]
- [Apache Kafka - Idempotent Producers and Transactional Producers & Consumers]
- [Apache Kafka - CDC(Change Data Capture)]
- [Apache Flink - Apache Flink Architecture]
- [Apache Flink - Stream Processing]
- [Apache Flink - Data Stream API & Window]
- [Apache Flink - State Management]
- HTTP - Internet Network
- HTTP - URI & Browser Request Flow
- HTTP - HTTP Basic
- HTTP - HTTP Method
- HTTP - HTTP Method Application
- HTTP - HTTP Status Code
- HTTP β HTTP Default Header
- HTTP - HTTP Cache & Condition Request
- AWS - AWS CDK(Cloud Development Kit)
- AWS - Signed URL
- AWS - PreSigned URL
- AWS - Cognito
- AWS - Signed URL Logic
- Docker - Docker
- Docker β Docker CLI
- Docker β Docker Volume
- Docker - Dockerfile Image
- Docker β Docker Compose Container Management
- Docker β Deploy(feat. AWS ECR)
- Docker - Cloud Native Technology
- Docker - Docker Essentials(1)
- Docker - Docker Essentials(2)
- Docker - Docker Network and Storage
- Docker - Building and Managing Containerized Application
- Docker - Container Orchestration
- Docker - Docker Security
- Docker - Logging and Monitoring
- Docker - Advanced Docker Usage
- Docker - Container-to-Container Communication
- Kubernetes - Probe
- Kubernetes - ConfigMap & Secret
- Kubernetes - PV/PVC & Deployment & Service & HPA
- Kubernetes - Helm & Kustomize
- Kubernetes - Pod 1
- [Kubernetes - Pod 2]
- Kubernetes - Controller 1
- [Kubernetes - Controller 2]
- [Kubernetes - Object]
- [Kubernetes - Ingress & Nginx Application]
- [Kubernetes - Node Scheduling]
- [Kubernetes - Monitoring]
- [Kubernetes - Logging]
- Kubernetes - Deployment using Amazon EKS
- Jenkins - Jenkins Fundamentals & Environment Setup
- Jenkins - Jenkins Jobs: Freestyle & Pipeline
- Jenkins - Jenkins Pipeline Project
- Jenkins - Implementing Continuous Integration(CI) with Jenkins
- Nginx β Nginx Introduction
- Nginx β Nginx Supplementary Summary
- Nginx β Deploying Domain with Nginx
- Nginx β Implementing HTTPS with Nginx
- Nginx β Backend Deployment via Nginx Reverse Proxy
- Nginx β Load Balancing with Nginx
- [Nginx - Advanced Concept]
- [Nginx - Advanced Reverse Proxy]
- [Monitoring - Log Concept]
- [Monitoring - Log Level & Filter]
- [Monitoring - Logback]
- [Monitoring - Log Collection with ELK Stack]
- [Monitoring - Log Monitoring with Kibana]
- [Monitoring - Building a Monitoring System with Spring Boot Actuator]
- [Monitoring - Server Monitoring with Prometheus and Grafana with Discord Alerts]
- [Test - Load Testing Fundamentals]
- [Test - Identifying Bottlenecks with Load Testing]
- [Test - Resolving Bottlenecks and Improving Performance]
- Test - JUnit5
- Test - Mockito
- Test - TestContainers
- Test - JMeter
- Test - Chaos Monkey
- Test - ArchUnit
- [Test - Testing with Spring & JPA]
- Test - A Guide to Effective Mocking
- Test - Appendix: Tips for Better Testing
- [gRPC - Writing .proto Files with Protocol Buffers]
- [gRPC - Various Communication Patterns in gRPC]
- [gRPC - gRPC Optimization Techniques and Advanced Features]
- TDD - Introduction to TDD
- TDD - Iterating with TDD
- TDD - Managing System Data
- TDD - Handling Unexpected Test Failures
- TDD - Abstraction & Reusability
- TDD - Building a Testing DSL
- TDD - Managing Test Context
- TDD - Driving Input Code with Output Tests
- TDD - Pagination Test
- [ElasticSearch - Search Fundamentals & How Search Works]
- [ElasticSearch - Korean-Optimized Search]
- [ElasticSearch - Mapping & Data Types]
- [ElasticSearch - Common Search Features]
- [ElasticSearch - Building a Product Search Engine with Elasticsearch]
- [ElasticSearch - Deploying Elasticsearch with Elastic Cloud]
- [ElasticSearch - Managing Documents]
- [ElasticSearch - Analysis & Mapping]
- [ElasticSearch - Search Fundamentals]
- [ElasticSearch - Query Joins]
- [ElasticSearch - Processing Search Results]
- [ElasticSearch - Aggregations]
- [ElasticSearch - Tips for Improving Search Results]
- [ElasticSearch - Elasticsearch Clients]
- [ElasticSearch - Understanding How Elasticsearch Works]
- [ElasticSearch - Monitoring Elasticsearch]
- [ElasticSearch - Elasticsearch Troubleshooting]
π Effective Java 3/E
- (Effective Java Item 1) Java β μμ±μ λμ μ μ ν©ν 리 λ©μλλ₯Ό κ³ λ €νλΌ
- (Effective Java Item 2) Java - μμ±μμ λ§€κ°λ³μκ° λ§λ€λ©΄ λΉλλ₯Ό κ³ λ €νλΌ
- (Effective Java Item 3) Java - private μμ±μλ μ΄κ±° νμ μΌλ‘ μ±κΈν΄μμ 보μ¦νλΌ
- (Effective Java Item 4) Java - μΈμ€ν΄μ€νλ₯Ό λ§μΌλ €κ±°λ private μμ±μλ₯Ό μ¬μ©νλΌ
- (Effective Java Item 5) Java - μμμ μ§μ λͺ μνμ§ λ§κ³ μμ‘΄ κ°μ²΄ μ£Όμ μ μ¬μ©νλΌ
- (Effective Java Item 6) Java β λΆνμν κ°μ²΄ μμ±μ νΌνλΌ
- (Effective Java Item 7) Java - λ€ μ΄ κ°μ²΄ μ°Έμ‘°λ₯Ό ν΄μ νλΌ
- (Effective Java Item 8) Java - finalizerμ cleaner μ¬μ©μ νΌνλΌ
- (Effective Java Item 9) Java - tryβfinally보λ€λ tryβwithβresourcesλ₯Ό μ¬μ©νλΌ
- (Effective Java Item 10) Java β equalsλ μΌλ° κ·μ½μ μ§μΌ μ¬μ μνλΌ
- (Effective Java Item 11) Java β equalsλ₯Ό μ¬μ μνλ €κ±°λ hashCodeλ μ¬μ μνλΌ
- (Effective Java Item 12) Java - toStringμ νμ μ¬μ μνλΌ
- (Effective Java Item 13) Java β clone μ¬μ μλ μ£Όμν΄μ μ§ννλΌ
- (Effective Java Item 14) Java β Comparableμ ꡬνν μ§ κ³ λ €νλΌ
- (Effective Java Item 15) Java β ν΄λμ€μ λ©€λ²μ μ κ·Ό κΆνμ μ΅μννλΌ
- (Effective Java Item 16) Java β public ν΄λμ€μμλ public νλκ° μλ μ κ·Όμ λ©μλλ₯Ό μ¬μ©νλΌ
- (Effective Java Item 17) Java β λ³κ²½ κ°λ₯μ±μ μ΅μννλΌ
- (Effective Java Item 18) Java β μμ보λ€λ μ»΄ν¬μ§μ μ μ¬μ©νλΌ
- (Effective Java Item 19) Java β μμμ κ³ λ €ν΄ μ€κ³νκ³ λ¬ΈμννλΌ. κ·Έλ¬μ§ μμλ€λ©΄ μμμ κΈμ§νλΌ
- (Effective Java Item 20) Java β μΆμ ν΄λμ€λ³΄λ€λ μΈν°νμ΄μ€λ₯Ό μ°μ νλΌ
- (Effective Java Item 21) Java β μΈν°νμ΄μ€λ ꡬννλ μͺ½μ μκ°ν΄ μ€κ³νλΌ
- (Effective Java Item 22) Java β μΈν°νμ΄μ€λ νμ μ μ μνλ μ©λλ‘λ§ μ¬μ©νλΌ
- (Effective Java Item 23) Java β νκ·Έ λ¬λ¦° ν΄λμ€λ³΄λ€λ ν΄λμ€ κ³μΈ΅κ΅¬μ‘°λ₯Ό νμ©νλΌ
- (Effective Java Item 24) Java β λ©€λ² ν΄λμ€λ λλλ‘ staticμΌλ‘ λ§λ€λΌ
- (Effective Java Item 25) Java β ν±λ 벨 ν΄λμ€λ ν νμΌμ νλλ§ λ΄μΌλΌ
- (Effective Java Item 26) Java β λ‘ νμ μ μ¬μ©νμ§ λ§λΌ
- (Effective Java Item 27) Java β λΉκ²μ¬ κ²½κ³ λ₯Ό μ κ±°νλΌ
- (Effective Java Item 28) Java β λ°°μ΄λ³΄λ€λ 리μ€νΈλ₯Ό μ¬μ©νλΌ
- (Effective Java Item 29) Java β μ΄μμ΄λ©΄ μ λ€λ¦ νμ μΌλ‘ λ§λ€λΌ
- (Effective Java Item 30) Java β μ΄μμ΄λ©΄ μ λ€λ¦ λ©μλλ‘ λ§λ€λΌ
- (Effective Java Item 31) Java - νμ μ μμΌλμΉ΄λλ₯Ό μ¬μ©ν΄ API μ μ°μ±μ λμ΄λΌ
- (Effective Java Item 32) Java - μ λ€λ¦κ³Ό κ°λ³μΈμλ₯Ό ν¨κ» μΈ λλ μ μ€νλΌ
- (Effective Java Item 33) Java β νμ μμ μ΄μ’ 컨ν μ΄λλ₯Ό κ³ λ €νλΌ
- (Effective Java Item 34) Java - int μμ λμ μ΄κ±° νμ μ μ¬μ©νλΌ
- (Effective Java Item 35) Java - ordinal λ©μλ λμ μΈμ€ν΄μ€ νλλ₯Ό μ¬μ©νλΌ
- (Effective Java Item 36) Java β λΉνΈ νλ λμ EnumSetμ μ¬μ©νλΌ
- (Effective Java Item 37) Java β ordinal μΈλ±μ± λμ EnumMapμ μ¬μ©νλΌ
- (Effective Java Item 38) Java β νμ₯ν μ μλ μ΄κ±° νμ μ΄ νμνλ©΄ μΈν°νμ΄μ€λ₯Ό μ¬μ©νλΌ
- (Effective Java Item 39) Java β λͺ λͺ ν¨ν΄λ³΄λ€ μ λν μ΄μ μ μ¬μ©νλΌ[Effective Java Item 39]
- (Effective Java Item 40) Java β @Override μ΄λ Έν μ΄μ μ μΌκ΄λκ² μ¬μ©νλΌ
- (Effective Java Item 41) Java β μ μνλ €λ κ²μ΄ νμ μ΄λΌλ©΄ λ§μ»€ μΈν°νμ΄μ€λ₯Ό μ¬μ©νλΌ
- (Effective Java Item 42) Java β μ΅λͺ ν΄λμ€λ³΄λ€λ λλ€λ₯Ό μ¬μ©νλΌ
- (Effective Java Item 43) Java β λλ€λ³΄λ€λ λ©μλ μ°Έμ‘°λ₯Ό μ¬μ©νλΌ
- (Effective Java Item 44) Java - νμ€ ν¨μν μΈν°νμ΄μ€λ₯Ό μ¬μ©νλΌ
- (Effective Java Item 45) Java - μ€νΈλ¦Όμ μ£Όμν΄μ μ¬μ©νλΌ
- (Effective Java Item 46) Java - μ€νΈλ¦Όμμλ λΆμμ© μλ ν¨μλ₯Ό μ¬μ©νλΌ
- (Effective Java Item 47) Java - λ°ν νμ μΌλ‘λ μ€νΈλ¦Όλ³΄λ€ 컬λ μ μ΄ λ«λ€
- (Effective Java Item 48) Java β μ€νΈλ¦Ό λ³λ ¬νλ μ£Όμν΄μ μ¬μ©νλΌ
- (Effective Java Item 49) Java β λ§€κ°λ³μκ° μ ν¨νμ§ κ²μ¬νλΌ
- (Effective Java Item 50) Java β μ μμ λ°©μ΄μ 볡μ¬λ³Έμ λ§λ€λΌ
- (Effective Java Item 51) Java β λ©μλ μκ·Έλμ²λ₯Ό μ μ€ν μ€κ³νλΌ
- (Effective Java Item 52) Java β λ€μ€μ μλ μ μ€ν μ¬μ©νλΌ
- (Effective Java Item 53) Java β κ°λ³μΈμλ μ μ€ν μ¬μ©νλΌ
- (Effective Java Item 54) Java - nullμ΄ μλ, λΉ μ»¬λ μ μ΄λ λ°°μ΄μ λ°ννλΌ
- (Effective Java Item 55) Java β μ΅μ λ λ°νμ μ μ€ν νλΌ
- (Effective Java Item 56) Java β 곡κ°λ API μμμλ νμ λ¬Έμν μ£Όμμ μ¬μ©νλΌ
- (Effective Java Item 57) Java β μ§μλ³μμ λ²μλ₯Ό μ΅μννλΌ
- (Effective Java Item 58) Java β μ ν΅μ μΈ for문보λ€λ forβeachλ¬Έμ μ¬μ©νλΌ
- (Effective Java Item 59) Java β λΌμ΄λΈλ¬λ¦¬λ₯Ό μ΅νκ³ μ¬μ©νλΌ
- (Effective Java Item 60) Java β μ νν λ΅μ΄ νμνλ€λ©΄ floatμ doubleμ νΌνλΌ
- (Effective Java Item 61) Java β λ°μ±λ κΈ°λ³Έ νμ 보λ€λ κΈ°λ³Έ νμ μ μ¬μ©νλΌ
- (Effective Java Item 62) Java β λ€λ₯Έ νμ μ΄ μ μ νλ€λ©΄ λ¬Έμμ΄ μ¬μ©μ νΌνλΌ
- (Effective Java Item 63) Java β λ¬Έμμ΄ μ°κ²°μ λ리λ μ£ΌμνλΌ
- (Effective Java Item 64) Java β κ°μ²΄λ μΈν°νμ΄μ€λ₯Ό μ¬μ©ν΄ μ°Έμ‘°νλΌ
- (Effective Java Item 65) Java β 리νλ μ 보λ€λ μΈν°νμ΄μ€λ₯Ό μ¬μ©νλΌ
- (Effective Java Item 66) Java β λ€μ΄ν°λΈ λ©μλλ μ μ€ν μ¬μ©νλΌ
- (Effective Java Item 67) Java β μ΅μ νλ μ μ€ν νλΌ
- (Effective Java Item 68) Java β μΌλ°μ μΌλ‘ ν΅μ©λλ λͺ λͺ κ·μΉμ λ°λ₯΄λΌ
- (Effective Java Item 69) Java β μμΈλ μ§μ§ μμΈ μν©μλ§ μ¬μ©νλΌ
- (Effective Java Item 70) Java β 볡ꡬν μ μλ μν©μλ κ²μ¬ μμΈλ₯Ό, νλ‘κ·Έλλ° μ€λ₯μλ λ°νμ μμΈλ₯Ό μ¬μ©νλΌ
- (Effective Java Item 71) Java β νμ μλ κ²μ¬ μμΈ μ¬μ©μ νΌνλΌ
- (Effective Java Item 72) Java β νμ€ μμΈλ₯Ό μ¬μ©νλΌ
- (Effective Java Item 73) Java β μΆμν μμ€μ λ§λ μμΈλ₯Ό λμ§λΌ
- (Effective Java Item 74) Java β λ©μλκ° λμ§λ λͺ¨λ μμΈλ₯Ό λ¬ΈμννλΌ
- (Effective Java Item 75) Java β μμΈμ μμΈ λ©μμ§μ μ€ν¨ κ΄λ ¨ μ 보λ₯Ό λ΄μΌλΌ
- (Effective Java Item 76) Java β κ°λ₯ν ν μ€ν¨ μμμ μΌλ‘ λ§λ€λΌ
- (Effective Java Item 77) Java β μμΈλ₯Ό 무μνμ§ λ§λΌ
- (Effective Java Item 78) Java - 곡μ μ€μΈ κ°λ³ λ°μ΄ν°λ λκΈ°νν΄ μ¬μ©νλΌ
- (Effective Java Item 79) Java - κ³Όλν λκΈ°νλ νΌνλΌ
- (Effective Java Item 80) Java - μ°λ λ보λ€λ μ€νμ, νμ€ν¬, μ€νΈλ¦Όμ μ μ©νλΌ
- (Effective Java Item 81) Java - waitμ notifyλ λμμ± μ νΈλ¦¬ν°λ₯Ό μ μ©νλΌ
- (Effective Java Item 82) Java - μ°λ λ μμ μ± μμ€μ λ¬ΈμννλΌ
- (Effective Java Item 83) Java - μ§μ° μ΄κΈ°νλ μ μ€ν μ¬μ©νλΌ
- (Effective Java Item 84) Java - νλ‘κ·Έλ¨μ λμμ μ°λ λ μ€μΌμ€λ¬μ κΈ°λμ§ λ§λΌ
- (Effective Java Item 85) Java - μλ° μ§λ ¬νμ λμμ μ°ΎμΌλΌ
- (Effective Java Item 86) Java - Serializableμ ꡬνν μ§λ μ μ€ν κ²°μ νλΌ
- (Effective Java Item 87) Java - 컀μ€ν μ§λ ¬ν ννλ₯Ό κ³ λ €ν΄λ³΄λΌ
- (Effective Java Item 88) Java - readObject λ©μλλ λ°©μ΄μ μΌλ‘ μμ±νλΌ
- (Effective Java Item 89) Java - μΈμ€ν΄μ€ μλ₯Ό ν΅μ ν΄μΌ νλ€λ©΄ readResolve보λ€λ μ΄κ±° νμ μ μ¬μ©νλΌ
- [(Effective Java Item 90) Java - μ§λ ¬νλ μΈμ€ν΄μ€ λμ μ§λ ¬ν νλ‘μ μ¬μ©μ κ²ν νλΌ]
- (Effective Kotlin Item 1) Kotlin - κ°λ³μ±μ μ ννλΌ
- (Effective Kotlin Item 2) Kotlin - μκ³ μμμ μ κ±°νλΌ
- (Effective Kotlin Item 3) Kotlin - κ°λ₯ν ν 빨리 νλ«νΌ νμ μ μ κ±°νλΌ
- (Effective Kotlin Item 4) Kotlin - λ³μμ μ€μ½νλ₯Ό μ΅μννλΌ
- (Effective Kotlin Item 5) Kotlin - μΈμμ μνμ λν κΈ°λμΉλ₯Ό λͺ μνλΌ
- (Effective Kotlin Item 6) Kotlin - μ¬μ©μ μ μ μ€λ₯λ³΄λ€ νμ€ μ€λ₯λ₯Ό μ νΈνλΌ
- (Effective Kotlin Item 7) Kotlin - κ²°κ³Όκ° μμ κ°λ₯μ±μ΄ μλ κ²½μ° λ κ°λ₯ λλ Result λ°ν νμ μ μ νΈνλΌ
- (Effective Kotlin Item 8) Kotlin - useλ₯Ό μ¬μ©νμ¬ λ¦¬μμ€λ₯Ό λ«μλΌ
- (Effective Kotlin Item 9) Kotlin - λ¨μ ν μ€νΈλ₯Ό μμ±νλΌ
- (Effective Kotlin Item 10) Kotlin - κ°λ μ±μ λͺ©νλ‘ μ€κ³νλΌ
- (Effective Kotlin Item 11) Kotlin - μ°μ°μμ μλ―Έλ ν¨μμ μ΄λ¦κ³Ό μΌμΉν΄μΌ νλ€
- (Effective Kotlin Item 12) Kotlin - κ°λ μ±μ λμ΄λ €λ©΄ μ°μ°μλ₯Ό μ¬μ©νλΌ
- (Effective Kotlin Item 13) Kotlin - νμ λͺ μλ₯Ό κ³ λ €νλΌ
- (Effective Kotlin Item 14) Kotlin - 리μλ²λ₯Ό λͺ μμ μΌλ‘ μ°Έμ‘°νλΌ
- (Effective Kotlin Item 15) Kotlin - νλ‘νΌν°λ λμμ΄ μλ μνλ₯Ό λνλ΄μΌ νλ€
- (Effective Kotlin Item 16) Kotlin - Unit?μ λ°νμ΄λ μ°μ°μ μ¬μ©νμ§ λ§λΌ
- (Effective Kotlin Item 17) Kotlin - μ΄λ¦ μλ μΈμ μ¬μ©μ κ³ λ €νλΌ
- (Effective Kotlin Item 18) Kotlin - μ½λ© 컨벀μ μ μ€μνλΌ
- (Effective Kotlin Item 19) Kotlin - knowledgeλ₯Ό λ°λ³΅νμ§ λ§λΌ
- (Effective Kotlin Item 20) Kotlin - μΌλ°μ μΈ μκ³ λ¦¬μ¦μ λ°λ³΅νμ§ λ§λΌ
- (Effective Kotlin Item 21) Kotlin - μΌλ°μ μΈ μκ³ λ¦¬μ¦μ ꡬνν λ μ λ€λ¦μ μ¬μ©νλΌ
- (Effective Kotlin Item 22) Kotlin - νμ λ§€κ°λ³μμ μλμμ νΌνλΌ
- (Effective Kotlin Item 23) Kotlin - μ λ€λ¦ νμ μ λ³μ± νμ μ μ¬μ©μ κ³ λ €νλΌ
- (Effective Kotlin Item 24) Kotlin - κ³΅ν΅ λͺ¨λμ μΆμΆν΄μ μ¬λ¬ νλ«νΌμμ μ¬μ¬μ©νλΌ
- (Effective Kotlin Item 25) Kotlin - κ°κ°μ ν¨μλ νλμ μΆμν μμ€μΌλ‘ μμ±νλΌ
- (Effective Kotlin Item 26) Kotlin - λ³κ²½μΌλ‘λΆν° μ½λλ₯Ό 보νΈνλ €λ©΄ μΆμνλ₯Ό μ¬μ©νλΌ
- (Effective Kotlin Item 27) Kotlin - API μμ μ±μ λͺ μνλΌ
- (Effective Kotlin Item 28) Kotlin - μΈλΆ APIλ₯Ό λννλ κ²μ κ³ λ €νλΌ
- (Effective Kotlin Item 29) Kotlin - κ°μμ±μ μ΅μννλΌ
- (Effective Kotlin Item 30) Kotlin - λ¬Έμλ‘ κ·μ½μ μ μνλΌ
- (Effective Kotlin Item 31) Kotlin - μΆμν κ·μ½μ μ€μνλΌ
- (Effective Kotlin Item 32) Kotlin - 보쑰 μμ±μ λμ ν©ν 리 ν¨μλ₯Ό κ³ λ €νλΌ
- (Effective Kotlin Item 33) Kotlin - μ΄λ¦ μλ μ νμ μΈμλ₯Ό κ°λ κΈ°λ³Έ μμ±μ μ¬μ©μ κ³ λ €νλΌ
- (Effective Kotlin Item 34) Kotlin - 볡μ‘ν κ°μ²΄ μμ±μ μν΄ DSL μ μλ₯Ό κ³ λ €νλΌ
- (Effective Kotlin Item 35) Kotlin - μμ‘΄μ± μ£Όμ μ κ³ λ €νλΌ
- (Effective Kotlin Item 36) Kotlin - μμλ³΄λ€ ν©μ±μ μ νΈνλΌ
- (Effective Kotlin Item 37) Kotlin - λ°μ΄ν° λ¬Άμμ ννν λ data νμ μλ₯Ό μ¬μ©νλΌ
- (Effective Kotlin Item 38) Kotlin - μ°μ°κ³Ό νλμ μ λ¬νλ €λ©΄ ν¨μ νμ μ΄λ ν¨μν μΈν°νμ΄μ€λ₯Ό μ¬μ©νλΌ
- (Effective Kotlin Item 39) Kotlin - μ νλ κ³μΈ΅κ΅¬μ‘°λ₯Ό νννκΈ° μν΄ sealed ν΄λμ€μ sealed μΈν°νμ΄μ€λ₯Ό μ¬μ©νλΌ
- [(Effective Kotlin Item 40) Kotlin - νκ·Έ ν΄λμ€ λμ ν΄λμ€ κ³μΈ΅κ΅¬μ‘°λ₯Ό μ νΈνλΌ]
- [(Effective Kotlin Item 41) Kotlin - μ΄κ±°ν ν΄λμ€λ₯Ό μ¬μ©ν΄μ κ° λͺ©λ‘μ λνλ΄λΌ]
- [(Effective Kotlin Item 42) Kotlin - equalsμ κ·μ½μ μ€μνλΌ]
- [(Effective Kotlin Item 43) Kotlin - hashCodeμ κ·μ½μ μ€μνλΌ]
- [(Effective Kotlin Item 44) Kotlin - compareToμ κ·μ½μ μ€μνλΌ]
- [(Effective Kotlin Item 45) Kotlin - APIμ νμμ μ΄μ§ μμ λΆλΆμ νμ₯μΌλ‘ μΆμΆνλ κ²μ κ³ λ €νλΌ]
- [(Effective Kotlin Item 46) Kotlin - λ©€λ² νμ₯ ν¨μλ₯Ό νΌνλΌ]
- (Effective Kotlin Item 3) Kotlin - variable
- (Effective Kotlin Item 4) Kotlin - primitive types, literals, and operations
- (Effective Kotlin Item 5) Kotlin - control Flow: if, when, try, and while
- (Effective Kotlin Item 6) Kotlin - function
- (Effective Kotlin Item 7) Kotlin - for
- (Effective Kotlin Item 8) Kotlin - Null Safety and Nullable Types
- (Effective Kotlin Item 9) Kotlin - Class
- (Effective Kotlin Item 10) Kotlin - Extend
- (Effective Kotlin Item 11) Kotlin - Data Class
- (Effective Kotlin Item 12) Kotlin - Object
- (Effective Kotlin Item 13) Kotlin β Exception
- (Effective Kotlin Item 14) Kotlin - Enum Classes
- (Effective Kotlin Item 15) Kotlin - Sealed Classes and Interfaces
- (Effective Kotlin Item 16) Kotlin - Annotation Classes
- (Effective Kotlin Item 17) Kotlin - Extensions
- (Effective Kotlin Item 18) Kotlin - Collections
- (Effective Kotlin Item 19) Kotlin - Operator Overloading
- (Effective Kotlin Item 20) Kotlin - The Beauty of the Type System
- (Effective Kotlin Item 21) Kotlin - Generic
- Reactive Programming - Reactive Streams
- Reactive Programming - Blocking I/O & Non-Blocking I/O
- Reactive Programming - Reactor Outline
- Reactive Programming - Marble Diagram
- Reactive Programming - Cold Sequence & Hot Sequence
- [Reactive Programming - Backpressure]
- [Reactive Programming - Sinks]
- [Reactive Programming - Scheduler]
- [Reactive Programming - Context]
- [Reactive Programming - Debugging]
- [Reactive Programming - Testing]
- [Reactive Programming - Operators]
- [Reactive Programming - Spring Webflux]
- [Reactive Programming - Annotation Based Controller]
- [Reactive Programming - Functional Endpoint]
- [Reactive Programming - Spring Data R2DBC]
- [Reactive Programming - Exception Handling]
- [Reactive Programming - WebClient]
- [Reactive Programming - Reactive Streaming Data Processing]
- κ°μ λ©΄μ μ¬λ‘λ‘ λ°°μ°λ λκ·λͺ¨ μμ€ν μ€κ³ κΈ°μ΄ 1 - μ¬μ©μ μμ λ°λ₯Έ κ·λͺ¨ νμ₯μ±
- κ°μ λ©΄μ μ¬λ‘λ‘ λ°°μ°λ λκ·λͺ¨ μμ€ν μ€κ³ κΈ°μ΄ 1 - κ°λ΅μ μΈ κ·λͺ¨ μΆμ
- κ°μ λ©΄μ μ¬λ‘λ‘ λ°°μ°λ λκ·λͺ¨ μμ€ν μ€κ³ κΈ°μ΄ 1 - μ²λ¦¬μ¨ μ ν μ₯μΉμ μ€κ³
- [κ°μ λ©΄μ μ¬λ‘λ‘ λ°°μ°λ λκ·λͺ¨ μμ€ν μ€κ³ κΈ°μ΄ 1 - μμ ν΄μ μ€κ³]
- [κ°μ λ©΄μ μ¬λ‘λ‘ λ°°μ°λ λκ·λͺ¨ μμ€ν μ€κ³ κΈ°μ΄ 1 - ν€-κ° μ μ₯μ μ€κ³]
- [κ°μ λ©΄μ μ¬λ‘λ‘ λ°°μ°λ λκ·λͺ¨ μμ€ν μ€κ³ κΈ°μ΄ 1 - λΆμ° μμ€ν μ μν μ μΌ ID μμ±κΈ° μ€κ³]
- [κ°μ λ©΄μ μ¬λ‘λ‘ λ°°μ°λ λκ·λͺ¨ μμ€ν μ€κ³ κΈ°μ΄ 1 - URL λ¨μΆκΈ° μ€κ³]
- [κ°μ λ©΄μ μ¬λ‘λ‘ λ°°μ°λ λκ·λͺ¨ μμ€ν μ€κ³ κΈ°μ΄ 1 - μΉ ν¬λ‘€λ¬ μ€κ³]
- [κ°μ λ©΄μ μ¬λ‘λ‘ λ°°μ°λ λκ·λͺ¨ μμ€ν μ€κ³ κΈ°μ΄ 1 - μλ¦Ό μμ€ν μ€κ³]
- [κ°μ λ©΄μ μ¬λ‘λ‘ λ°°μ°λ λκ·λͺ¨ μμ€ν μ€κ³ κΈ°μ΄ 1 - λ΄μ€ νΌλ μμ€ν μ€κ³]
- [κ°μ λ©΄μ μ¬λ‘λ‘ λ°°μ°λ λκ·λͺ¨ μμ€ν μ€κ³ κΈ°μ΄ 1 - μ±ν μμ€ν μ€κ³]
- [κ°μ λ©΄μ μ¬λ‘λ‘ λ°°μ°λ λκ·λͺ¨ μμ€ν μ€κ³ κΈ°μ΄ 1 - κ²μμ΄ μλμμ± μμ€ν μ€κ³]
- [κ°μ λ©΄μ μ¬λ‘λ‘ λ°°μ°λ λκ·λͺ¨ μμ€ν μ€κ³ κΈ°μ΄ 1 - μ νλΈ μ€κ³]
- [κ°μ λ©΄μ μ¬λ‘λ‘ λ°°μ°λ λκ·λͺ¨ μμ€ν μ€κ³ κΈ°μ΄ 1 - κ΅¬κΈ λλΌμ΄λΈ μ€κ³]
π Clean Code
- (Clean Code 2) Clean Code - μλ―Έ μλ μ΄λ¦
- (Clean Code 3) Clean Code - ν¨μ
- (Clean Code 4) Clean Code - μ£Όμ
- (Clean Code 5) Clean Code - νμ λ§μΆκΈ°
- (Clean Code 6) Clean Code - κ°μ²΄μ μλ£κ΅¬μ‘°
- (Clean Code 7) Clean Code - μ€λ₯ μ²λ¦¬
- (Clean Code 8) Clean Code - κ²½κ³
- (Clean Code 9) Clean Code - λ¨μ ν μ€νΈ
- (Clean Code 10) Clean Code - ν΄λμ€
π 리ν©ν λ§ 2ν
- μ£Όλμ΄ λ°±μλ κ°λ°μκ° λ°λμ μμμΌ ν μ€λ¬΄ μ§μ - λλ €μ§ μλΉμ€, μ΄λλΆν° λ΄μΌ ν κΉ
- μ£Όλμ΄ λ°±μλ κ°λ°μκ° λ°λμ μμμΌ ν μ€λ¬΄ μ§μ - μ±λ₯μ μ’μ°νλ DB μ€κ³μ 쿼리
- μ£Όλμ΄ λ°±μλ κ°λ°μκ° λ°λμ μμμΌ ν μ€λ¬΄ μ§μ β μΈλΆ μ°λμ΄ λ¬Έμ μΌ λ μ΄ν΄λ΄μΌ ν κ²λ€
- μ£Όλμ΄ λ°±μλ κ°λ°μκ° λ°λμ μμμΌ ν μ€λ¬΄ μ§μ β λΉλκΈ° μ°λ, μΈμ μ΄λ»κ² μ¨μΌ ν κΉ
- μ£Όλμ΄ λ°±μλ κ°λ°μκ° λ°λμ μμμΌ ν μ€λ¬΄ μ§μ β λμμ±, λ°μ΄ν°κ° κΌ¬μ΄κΈ° μ μ μ‘μμΌ νλ€
- μ£Όλμ΄ λ°±μλ κ°λ°μκ° λ°λμ μμμΌ ν μ€λ¬΄ μ§μ β IO λ³λͺ©, μ΄λ»κ² ν΄κ²°νμ§
- μ£Όλμ΄ λ°±μλ κ°λ°μκ° λ°λμ μμμΌ ν μ€λ¬΄ μ§μ β μ€λ¬΄μμ κΌ νμν 보μ μ§μ
- μ£Όλμ΄ λ°±μλ κ°λ°μκ° λ°λμ μμμΌ ν μ€λ¬΄ μ§μ β λͺ¨λ₯΄λ©΄ λ΅λ΅ν΄μ§λ λ€νΈμν¬ κΈ°μ΄
- μ£Όλμ΄ λ°±μλ κ°λ°μκ° λ°λμ μμμΌ ν μ€λ¬΄ μ§μ β μμ£Ό μ°λ μλ² κ΅¬μ‘°μ μ€κ³ ν¨ν΄
- μ£Όλμ΄ λ°±μλ κ°λ°μκ° λ°λμ μμμΌ ν μ€λ¬΄ μ§μ β μ²μ ν΄λ³΄λ μ±λ₯ ν μ€νΈλ₯Ό μν κΈ°λ³Έ μ 리
- μ£Όλμ΄ λ°±μλ κ°λ°μκ° λ°λμ μμμΌ ν μ€λ¬΄ μ§μ β NoSQL μ΄ν΄νκΈ°
- μ£Όλμ΄ λ°±μλ κ°λ°μκ° λ°λμ μμμΌ ν μ€λ¬΄ μ§μ β DBλ‘ λΆμ° μ κΈ κ΅¬ννκΈ°
- κ°λ°μκ° λ°λμ μ 볡ν΄μΌ ν κ°μ²΄ μ§ν₯κ³Ό λμμΈ ν¨ν΄ - κ°μ²΄ μ§ν₯
- κ°λ°μκ° λ°λμ μ 볡ν΄μΌ ν κ°μ²΄ μ§ν₯κ³Ό λμμΈ ν¨ν΄ - λ€νμ±κ³Ό μΆμ νμ
- κ°λ°μκ° λ°λμ μ 볡ν΄μΌ ν κ°μ²΄ μ§ν₯κ³Ό λμμΈ ν¨ν΄ - μ¬μ¬μ©: μμλ³΄λ¨ μ‘°λ¦½
- κ°λ°μκ° λ°λμ μ 볡ν΄μΌ ν κ°μ²΄ μ§ν₯κ³Ό λμμΈ ν¨ν΄ - μ€κ³ μμΉ: SOLID
- κ°λ°μκ° λ°λμ μ 볡ν΄μΌ ν κ°μ²΄ μ§ν₯κ³Ό λμμΈ ν¨ν΄ - DI(Dependency Injection)μ μλΉμ€ λ‘μΌμ΄ν°
- κ°λ°μκ° λ°λμ μ 볡ν΄μΌ ν κ°μ²΄ μ§ν₯κ³Ό λμμΈ ν¨ν΄ - μ£Όμ λμμΈ ν¨ν΄