MadPlay🚀
Category
Timeline
About
Category
Timeline
About
Enter a search term
No results found
Category
Covering 10 topics so far.
Algorithm/CS
(31)
Java/Kotlin
(120)
Frontend
(7)
Infra
(21)
Backend
(35)
Data
(13)
Spring
(31)
Career
(9)
Engineering
(11)
AI
(21)
Algorithm/CS (31)
The Proxy Pattern Hidden Behind @Transactional
April 12, 2024
Decorator Pattern: Combining Features Without Inheritance
August 12, 2023
Adapter Pattern: The Solution for Incompatible Interfaces
October 15, 2022
Template Method Pattern: Fixing the Skeleton, Changing the Steps
April 10, 2021
What Are Coupling and Cohesion?
January 04, 2021
Cryptographic Techniques: Substitution, Transposition, Block Ciphers, and Stream Ciphers
October 14, 2020
Builder Pattern for Many Parameters
June 13, 2020
Factory Method Pattern: Delegating Object Creation to Subclasses
August 17, 2019
Argument and Parameter
October 23, 2018
Difference Between Process and Thread
June 30, 2018
LeetCode 344. Reverse String
May 23, 2018
Binary Search Tree: Implementation in Java
May 04, 2018
Binary Search Tree: Theory and Introduction
May 02, 2018
Observer Pattern
April 20, 2018
LeetCode 2. Add Two Numbers
April 15, 2018
LeetCode 3. Longest Substring Without Repeating Characters
April 09, 2018
Functional Programming and Object-Oriented Programming
March 27, 2018
Why Are Computers Based on Binary System?
March 18, 2018
Strategy Pattern
March 10, 2018
Finding Prime Numbers Quickly Using Sieve of Eratosthenes
March 07, 2018
Singleton Pattern
March 06, 2018
Levenshtein Distance Algorithm (Edit Distance Algorithm)
February 19, 2018
Time Complexity and Space Complexity
February 12, 2018
LeetCode 412. Fizz Buzz
January 17, 2018
LeetCode 292. Nim Game
January 16, 2018
Big Endian and Little Endian
January 15, 2018
LeetCode 1. Two Sum
January 09, 2018
Selection Sort
January 07, 2018
Merge Sort
January 06, 2018
Quick Sort
January 06, 2018
Bracket Matching with a Stack (Java)
January 01, 2018
Java/Kotlin (120)
JDK 25 LTS Release Notes: Key Changes at a Glance
September 19, 2025
Kotlin Scope Functions Compared: let, run, with, apply, also
February 14, 2025
Kotlin Error Handling and Coroutine-Based Failure Resilience
February 08, 2025
Kotlin Coroutines: Concepts and Practical Usage
February 05, 2025
Kotlin Null Safety and Functional Programming
January 27, 2025
Kotlin Class Design and Type System Usage
January 13, 2025
Kotlin Basics: Syntax and Core Concepts
January 05, 2025
What Is a Java Record and When Should You Use It?
June 08, 2024
Java 21 LTS Is Here: What Changed?
September 20, 2023
Java Sealed Class vs Abstract Class vs Interface: When to Use Each
February 07, 2023
How to Generate Random Numbers in Java and What to Watch
August 15, 2022
FileNotFoundException When Running as a JAR
May 03, 2022
Java ThreadLocal: Usage and Caveats
November 06, 2021
What Is New in Java 17: First LTS Release in 3 Years
October 02, 2021
Java effectively final
March 09, 2021
Java BigDecimal: Accurate Real Numbers and Floating Point
February 17, 2021
Java Optional: 5. A Closer Look at Optional
February 08, 2021
Java Optional: 4. Terminal Optional Methods
February 05, 2021
Java Optional: 3. Intermediate Optional Methods
February 05, 2021
Java Optional: 2. Introduction to Optional
February 02, 2021
Java Optional: 1. What Is null?
January 28, 2021
Java BigInteger: Representing Very Large Integers
January 17, 2021
Encryption and Decryption in Java
December 02, 2020
How to Measure Code Execution Time in Java
September 19, 2020
What’s New in Java 14?
June 19, 2020
Java Scripting API: Migrating to GraalVM
May 23, 2020
Java Scripting API: Bindings, ScriptContext, and Execution Performance
April 26, 2020
Java Scripting API: Calling JavaScript Functions from Java
April 19, 2020
JSON Schema: Implementing a Validator in Java
March 14, 2020
Comparing Performance: String vs StringBuilder vs StringBuffer in Java
February 04, 2020
[Effective Java 3rd Edition] Item 11. Always Override hashCode When You Override equals
December 01, 2019
[Effective Java 3rd Edition] Item 76. Strive for Failure Atomicity
November 16, 2019
[Effective Java 3rd Edition] Item 23. Prefer Class Hierarchies to Tagged Classes
November 12, 2019
[Effective Java 3rd Edition] Item 24. Favor Static Member Classes over Nonstatic
November 10, 2019
[Effective Java 3rd Edition] Item 15. Minimize the Accessibility of Classes and Members
November 06, 2019
[Effective Java 3rd Edition] Item 86. Implement Serializable with Great Caution
November 02, 2019
[Effective Java 3rd Edition] Item 89. For Instance Control, Prefer Enum Types to readResolve
October 30, 2019
[Effective Java 3rd Edition] Item 90. Consider Serialization Proxies Instead of Serialized Instances
October 26, 2019
[Effective Java 3rd Edition] Item 88. Write readObject Methods Defensively
October 20, 2019
[Effective Java 3rd Edition] Item 87. Consider Using a Custom Serialized Form
October 16, 2019
[Effective Java 3rd Edition] Item 85. Prefer Alternatives to Java Serialization
October 12, 2019
[Effective Java 3rd Edition] Chapter 12. Serialization
October 11, 2019
[Effective Java 3rd Edition] Item 81. Prefer Concurrency Utilities to wait and notify
October 07, 2019
[Effective Java 3rd Edition] Item 80. Prefer Executors, Tasks, and Streams to Threads
October 03, 2019
[Effective Java 3rd Edition] Item 79. Avoid Excessive Synchronization
September 29, 2019
[Effective Java 3rd Edition] Chapter 11. Concurrency
September 27, 2019
[Effective Java 3rd Edition] Item 78. Synchronize Access to Shared Mutable Data
September 15, 2019
[Effective Java 3rd Edition] Chapter 10. Exceptions
September 03, 2019
[Effective Java 3rd Edition] Item 68. Adhere to Generally Accepted Naming Conventions
August 24, 2019
[Effective Java 3rd Edition] Item 62. Avoid Strings Where Other Types Are More Appropriate
August 21, 2019
[Effective Java 3rd Edition] Chapter 9. General Programming
August 14, 2019
[Effective Java 3rd Edition] Chapter 8. Methods
August 03, 2019
Java Serialization: readResolve and writeReplace
July 24, 2019
[Effective Java 3rd Edition] Item 44. Favor the Use of Standard Functional Interfaces
July 13, 2019
Java Serialization: writeObject and readObject
July 07, 2019
[Effective Java 3rd Edition] Chapter 7. Lambdas and Streams
June 30, 2019
[Effective Java 3rd Edition] Item 39. Prefer Annotations to Naming Patterns
June 15, 2019
[Effective Java 3rd Edition] Chapter 6. Enums and Annotations
June 03, 2019
[Effective Java 3rd Edition] Chapter 5. Generics
May 28, 2019
[Effective Java 3rd Edition] Chapter 4. Classes and Interfaces
May 21, 2019
[Effective Java 3rd Edition] Chapter 3. Methods Common to All Objects
May 04, 2019
The Difference Between map and flatMap in Java
April 28, 2019
Java Serialization: What to Consider and Why It Is Discouraged
April 17, 2019
Manage Multiple Java Versions with jEnv
March 25, 2019
Detect JAXB Parsing Errors with ValidationEventHandler
March 17, 2019
JAXB Marshalling and Unmarshalling
March 12, 2019
Java Exceptions: Checked vs Unchecked
March 02, 2019
Java Licensing? OpenJDK vs Oracle JDK
February 24, 2019
[Effective Java 3rd Edition] Chapter 2. Creating and Destroying Objects
February 19, 2019
Java Streams: 5. Common Mistakes
February 11, 2019
Java Streams: 4. Examples
February 09, 2019
Java Streams: 3. Terminal Operations
February 06, 2019
Java Streams: 2. Intermediate Operations
February 05, 2019
Java Streams: 1. API Overview and Stream Creation
February 04, 2019
[Effective Java 3rd Edition] Item 17. Minimize Mutability
February 02, 2019
[Effective Java 3rd Edition] Item 82. Document Thread Safety
January 28, 2019
The final Keyword in Java
January 28, 2019
[Effective Java 3rd Edition] Item 74. Document All Exceptions Thrown by Each Method
January 25, 2019
Numeric Literals and Underscores in Java
January 23, 2019
[Effective Java 3rd Edition] Item 66. Use Native Methods Judiciously
January 21, 2019
[Effective Java 3rd Edition] Item 58. Prefer for-each Loops to Traditional for Loops
January 15, 2019
[Effective Java 3rd Edition] Item 8. Avoid Finalizers and Cleaners
January 11, 2019
[Effective Java 3rd Edition] Item 31. Use Bounded Wildcards to Increase API Flexibility
January 07, 2019
[Effective Java 3rd Edition] Item 50. Make Defensive Copies When Needed
January 04, 2019
Java Serialization: What Is SerialVersionUID?
December 28, 2018
Java Serialization: What Is Serialization?
December 26, 2018
Benefits of Java Generics and Pitfalls to Avoid
December 19, 2018
[Effective Java 3rd Edition] Item 42. Prefer Lambdas to Anonymous Classes
December 19, 2018
[Effective Java 3rd Edition] Item 4. Enforce Noninstantiability with a Private Constructor
December 15, 2018
Java Generics
December 13, 2018
Java 8 Date and Time
December 11, 2018
Why Java Date and Calendar Are a Bad Fit
December 09, 2018
[Effective Java 3rd Edition] Item 28. Prefer Lists to Arrays
December 07, 2018
[Effective Java 3rd Edition] Item 34. Use Enums Instead of Int Constants
December 02, 2018
[Effective Java 3rd Edition] Item 18. Favor Composition over Inheritance
November 15, 2018
[Effective Java 3rd Edition] Item 26. Don't Use Raw Types
November 14, 2018
[Effective Java 3rd Edition] Item 10. Obey the general contract when overriding equals
November 10, 2018
[Effective Java 3rd Edition] Item 2. Consider a builder when faced with many constructor parameters
November 02, 2018
log4j, logback, and log4j2
September 21, 2018
Java Upcasting and Downcasting
August 04, 2018
Java and Behavior Parameterization
July 15, 2018
Java Method Overriding and Overloading
May 30, 2018
Java String Objects and String Literals
May 12, 2018
Java Collection Synchronization
April 16, 2018
Java References and Garbage Collection
April 02, 2018
Java Garbage Collection
March 29, 2018
Java String replaceAll Method $(Dollar Sign) Issue
March 12, 2018
Java Interface
March 02, 2018
Java Reflection and Dynamic Loading
February 25, 2018
The this Keyword in Java
February 08, 2018
Java File Compression and Decompression (ZipInputStream, ZipOutputStream)
February 03, 2018
Creating Java Executable Files
February 01, 2018
Abstract Classes and Methods in Java
January 29, 2018
Java Access Modifiers
January 24, 2018
Java Inheritance
January 23, 2018
Why Does Java Main Method Use public static?
January 20, 2018
Java Finalize Method
January 03, 2018
Java Swing LookAndFeel
January 02, 2018
Java Language Characteristics
January 01, 2018
Java Data Types
January 01, 2018
Frontend (7)
Add Comments to a Jekyll Blog with utterances
January 27, 2020
Why Do We Need Vuex?
March 29, 2019
Differences Between var, let, and const
December 05, 2018
Server-Side Rendering vs Client-Side Rendering
November 26, 2018
Installing Jekyll on Windows 10 and Creating GitHub Blog
September 04, 2018
Resolving Jekyll Execution Error on MacOS High Sierra
February 21, 2018
jQuery Sortable (Implementing Sorting with Drag and Drop)
January 04, 2018
Infra (21)
Differences Between HTTP/1.1 and HTTP/2
January 03, 2024
Optimizing Java Images with Dockerfile Best Practices
October 01, 2023
Docker Compose Operational Patterns and Environment-Specific Configuration Strategy
June 01, 2023
Building a Local Environment with the Docker Compose Specification
May 29, 2023
What Is Docker Compose?
May 27, 2023
Fixing gem Permission Errors (Gem::FilePermissionError)
November 30, 2022
Turn Off the Charging Chime on MacBook
July 24, 2022
Fix xcrun: invalid active developer path After a macOS Upgrade
April 21, 2022
How to Use the chmod Command on Linux
October 05, 2020
Symbolic Link
September 02, 2020
What Is the crossdomain.xml File?
May 02, 2020
What Is RSS? RSS 2.0 Specification and Format
March 05, 2020
FTP Active vs Passive Mode
March 09, 2019
Docker: Following Docker Installation and Commands
September 28, 2018
Cron Expressions
August 26, 2018
grep Examples and Options
July 20, 2018
OSI 7 Layer
February 17, 2018
TCP vs UDP Differences and TCP/IP
February 04, 2018
NTFS, FAT32, and exFAT Formats
January 17, 2018
scp and rsync (Secure Copy & Remote Synchronization)
January 12, 2018
Connecting Apache and Tomcat (apache, tomcat, mod_jk)
January 05, 2018
Backend (35)
Gradle Build Performance Tuning: From 5 Minutes Down to 2
August 10, 2024
Managing Dependencies in One Place with Gradle Version Catalog
July 20, 2024
Kafka Connect: Monitoring and Incident Response
March 23, 2024
Kafka Connect: Building a Debezium CDC Pipeline
March 16, 2024
Kafka Connect: Introduction and Architecture
March 09, 2024
Why Does a Kafka Consumer Keep Falling Behind?
July 18, 2023
Kafka Message Keys: Is It Really Enough to Just Put One In?
July 06, 2023
Kafka Exactly-Once: Is It Really Processed Only Once?
June 24, 2023
Kafka Producer: How Safe and How Fast?
June 14, 2023
Kafka Streams Error Handling and Recovery Strategies
June 02, 2023
Kafka Streams Windows and Joins
May 28, 2023
Kafka Streams KStream and KTable
May 21, 2023
Kafka Streams Concepts and Architecture
May 17, 2023
Kafka Consumer Offsets and Commit Strategies
May 11, 2023
Kafka Error Handling and Dead Letter Topic Design
May 06, 2023
What Is Kafka Schema Registry and Why Does It Matter?
May 03, 2023
Why Kafka Consumer Rebalancing Happens
April 26, 2023
How Many Kafka Partitions Do You Need? Why More Consumers Do Not Always Increase Throughput
April 07, 2023
Kafka Topic Configuration Reference
April 04, 2023
Kafka Consumer Reprocessing Strategies
January 05, 2023
JSON Schema: Combining Schemas, Conditional Schemas, and Reuse
March 07, 2020
JSON Schema: Basic Schema Definitions and Validation
February 27, 2020
JSON Schema: What Is JSON Schema?
February 19, 2020
Multiple Tomcat Instances
January 10, 2019
Installing Node.js on macOS and Running an Example
January 02, 2019
Getting Started with Node.js
December 30, 2018
Python switch Statements
November 18, 2018
Python URL Parsing and Calling (urllib)
November 09, 2018
Entering Korean Comments in Python (SyntaxError: Non-ASCII character)
November 04, 2018
Python if __name__ == "__main__" Meaning
October 28, 2018
Java Kafka Producer and Consumer configs Settings
September 13, 2018
Java Kafka Producer and Consumer Example Implementation
September 10, 2018
Gradle Project Structure and Gradle Wrapper
August 19, 2018
What is Gradle?
August 12, 2018
Resolving Maven Tomcat 404 Error
January 08, 2018
Data (13)
Four Decisions to Make Before Adding a Cache Layer to Redis
May 12, 2024
Why Redis Is Fast and How to Use Each Data Structure
May 11, 2024
How to Read MySQL EXPLAIN Query Plans
May 12, 2022
Why MySQL Joins and ORDER BY Get Slow
April 28, 2022
Why Is My MySQL Query Slow Even With an Index?
March 24, 2022
Where to Start When Analyzing MySQL Slow Queries
March 10, 2022
Querydsl: Avoid JPA N+1 with fetch join
January 07, 2021
Querydsl: Introduction and Usage
January 01, 2021
MyBatis Error: Invalid bound statement (not found)
November 16, 2020
How to Get the auto_increment Key Value After Insert in MyBatis
July 23, 2020
What Is the Difference Between #{} and ${} in MyBatis?
August 10, 2019
Sorting a MySQL VARCHAR Column as a Number
May 15, 2019
Resolving MySQL Root Password Change Error on Mac OS
February 19, 2018
Spring (31)
Building an LLM API with Spring AI
May 31, 2025
Spring Boot 2 to 3 Migration Checklist: Breaking Changes You Must Address
November 23, 2024
How Spring @Transactional Works Under the Hood
September 14, 2024
Spring RestClient Usage and Differences from RestTemplate
November 23, 2023
Auto-Create Spring Batch Metadata Tables
September 01, 2022
Set Default Values in Spring @Value Annotation
June 11, 2022
What Is Spring Cloud OpenFeign and What Should You Watch Out For
May 04, 2022
Simplify Object Mapping with MapStruct
January 03, 2022
What If a Spring Data JPA Field Name Matches a Database Reserved Word?
June 04, 2021
Managing SQL When Using Spring JDBC
May 07, 2021
Spring Cloud Config: Changes in Spring Boot 2.4
January 11, 2021
How to Avoid Storing _class Field in MongoDB from Spring Boot
December 27, 2020
Can Spring Register and Use Multiple DataSources?
November 03, 2020
RestTemplate and WebClient
October 21, 2020
How to Run Code When a Spring Boot Application Starts
July 04, 2020
Resolving DataBufferLimitException in Spring WebClient
June 08, 2020
Spring Cloud Config: Auto Refresh with Git Webhook
February 12, 2020
Spring Cloud Config: Spring Cloud Bus Example
February 01, 2020
Spring Cloud Config: Introduction and Example
January 31, 2020
Can Spring Include Package Names in Bean Identifiers?
January 22, 2020
Why Constructor Injection Is Preferred Over Field Injection with @Autowired
January 19, 2020
How to Fix ClassNotFoundException: JAXBException When Running a Spring Boot Project on Java 9
January 13, 2020
Handling JSONP in Spring Boot and Solving CORS Issues
May 11, 2019
Setting Up a Spring MVC + Maven Project in IntelliJ
February 08, 2019
How to Autowire a Static Field
January 19, 2019
Setting Up Log4j2 in Spring Boot
July 30, 2018
Setting Up Spring Boot Project in IntelliJ
July 22, 2018
Spring Bean Lifecycle Methods and Execution Order
June 13, 2018
Spring Framework Summary: Testing
March 30, 2018
Spring Framework Summary: Inversion of Control
March 22, 2018
Spring Framework Summary: Design Patterns
March 15, 2018
Career (9)
Design Your GitHub Profile
August 11, 2020
Stack Overflow, Growth and Experience Points for Developers
December 15, 2019
Naver Interview Review (SW Development, Phone Interview, Technical Interview)
June 23, 2018
NHN Technology Services Written Test Review (SW Development, NTS pretest)
June 19, 2018
Software Maestro Interview Review (Group Discussion Evaluation, Coding Test)
June 16, 2018
Com2us Interview Review (Platform Development)
June 11, 2018
Korea Electric Power Corporation Interview Review (IT Information & Communication)
June 02, 2018
LINE Plus Interview Review (SW Development, Technical Interview)
May 26, 2018
Lotte Data Communication Company Spectacle Audition Review
May 20, 2018
Engineering (11)
Fixing JUnit5 @DisplayName Not Working in IntelliJ
March 05, 2022
Profiling Applications in IntelliJ
February 04, 2022
git push Error: Please use a personal access token instead
August 13, 2021
Code With Me: Pair Programming with IntelliJ IDEA
October 28, 2020
How to Fix a Node.js Project Not Being Recognized in IntelliJ
August 02, 2020
Squash Commits with git rebase
April 20, 2019
Building an IntelliJ Plugin: 3. Build & Publish
April 13, 2019
Building an IntelliJ Plugin: 2. Define an Action
April 09, 2019
Building an IntelliJ Plugin: 1. Environment Setup
April 06, 2019
Fixing IntelliJ Error: source release 8 requires target release 1.8
March 20, 2019
Change Git Commit Author (Changing Commit Author)
July 03, 2018
AI (21)
When Subagents Aren't Enough: Claude Code Agent Teams
March 01, 2026
Claude Code Subagents: How Is Work Divided and Processed?
February 22, 2026
Beyond Prompts and Context: Harness Engineering for AI Agents
February 15, 2026
I Only Compressed CLI Output, Yet Tokens Dropped by 80%?
February 08, 2026
Why Did OpenClaw Suddenly Become a Hot Topic? (feat. Agent Runtime)
February 01, 2026
Five Critical Risks of Powerful AI That Anthropic's CEO Warns About: Reading 《The Adolescence of Technology》
January 31, 2026
Building Custom AI Agents with the Claude Agent SDK
January 09, 2026
Cursor vs Claude Code: How to Choose the Right AI Coding Tool
December 30, 2025
AI Agent Skills: How to Create and Use Them
December 28, 2025
Claude Code Settings Files: How to Separate Shared Rules from Private Configuration
October 17, 2025
Why You Should Run /init First in Claude Code
October 04, 2025
How to Manage Claude Code Context and Reduce Token Usage
August 25, 2025
Context Engineering: The Next Step After Prompt Engineering
July 01, 2025
How to Connect MCP Servers to Claude Code and What to Watch For
June 21, 2025
How to Install Claude Code and Run It for the First Time
May 23, 2025
What Is Vibe Coding?
March 15, 2025
The Optimistic Future Dario Amodei Described in 《Machines of Loving Grace》
November 01, 2024
Tree of Thoughts and RAG in Prompt Engineering
February 10, 2024
Prompt Engineering Techniques
February 03, 2024
Prompt Engineering Basics and LLM Settings
January 27, 2024
ChatGPT: Can AI Replace Developers?
December 12, 2022