When Subagents Aren't Enough: Claude Code Agent Teams
Agent Teams, where multiple Claude Code instances divide tasks and exchange messages. Most of the time, subagents suffice, but there are moments when you need...
Agent Teams, where multiple Claude Code instances divide tasks and exchange messages. Most of the time, subagents suffice, but there are moments when you need...
Why does Claude Code spin up subagents instead of doing everything alone? What are the roles of the three built-in agents, and how do you...
Let's look at the concept of harness engineering, why it emerged, and how it differs from prompt engineering and context engineering.
Just by prepending 'rtk' to a command, the agent's token consumption was reduced by 80%. We explore the operational mechanics of the open-source CLI proxy...
What is OpenClaw, which has captured the attention of developers in a short period of time?
How can powerful AI destabilize society? This post reviews the five critical risks Dario Amodei identifies in 《The Adolescence of Technology》.
We examine the structure and core APIs of the Claude Agent SDK, exploring how to control agents with custom tools and hooks.
Cursor is an IDE. Claude Code is a terminal agent. Same model, different results. Here is why.
Isolate recurring rules and procedures into reusable skills. Learn the structure and authoring points of Agent Skills.
From permission blocking to environment variable management, learn how to build safe execution boundaries by separating team security rules from personal local settings.
Running /init first in Claude Code anchors project context in CLAUDE.md, eliminating repeated explanations and inconsistent first responses across sessions.
Let’s review the key changes in JDK 25, the fifth LTS Java release, based on the official release notes.
Longer sessions slow down due to the context window. Learn how to manage token usage with /compact, /clear, and /cost.
Explains context engineering, why it emerged, and how it differs from prompt engineering.
With MCP, Claude Code can work with external systems as well. This post explains how to connect an MCP server.
Walk through Spring AI's ChatClient and ChatModel abstractions, dependency setup, LLM integration, and a simple chat API from start to finish.
Install Claude Code, Anthropic's terminal-based agentic coding tool, and walk through the first run.
Andrej Karpathy coined the term vibe coding, a programming style where you describe what you want in plain English and let AI write the code....
Compares receiver reference style and return values of let, run, with, apply, and also with practical examples, and outlines criteria for choosing the right function....
Covers exception classification, coroutine timeout, retry design, unit testing, runCatching, and lazy patterns for Kotlin failure handling.
Covers coroutine fundamentals, CoroutineScope, Dispatcher, async/await, structured concurrency, and Flow. A concise guide to Kotlin coroutines for production use.
Covers Kotlin null safety operators and functional patterns for safer, concise code.
A concise guide to building safe domain models using constructor validation, access control, interfaces, sealed class, generics, delegation by, and enum/value class.
Introduces Kotlin syntax, variables, functions, control flow, and collections with practical examples.
Upgrading to Spring Boot 3 breaks your build immediately. Here are the compile-time breaking changes and how to fix each one.
What are the main ideas in Dario Amodei's 《Machines of Loving Grace》? And what does the optimistic future he describes actually look like?
From the proxy-based mechanism of Spring @Transactional to the self-invocation trap, propagation behavior, rollback rules, and readOnly optimization.
Find Gradle build bottlenecks with Build Scan, then cut build time in half using parallel execution and caching strategies.
Covers the TOML structure of Gradle Version Catalog, type-safe accessor usage, and migration strategies for existing projects.
A practical guide to Java records: how they work under the hood, their constraints, and when to choose them over regular classes for DTOs and...
Adding Redis as a cache does make things faster. The real question is which pattern to use and what to evict when memory fills up....
Everyone knows Redis is fast, but when should you reach for Hash, List, Set, or Sorted Set instead of plain String?
How does Spring's @Transactional manage transactions before and after method execution? The secret lies in the Proxy pattern!
Where do you start when a Connector falls into FAILED state?
Moving beyond JDBC polling, this post walks through building a real-time CDC pipeline that streams MySQL change events to Kafka with Debezium and indexes them...
Instead of writing producers and consumers from scratch, Kafka Connect lets you build data pipelines with a single configuration. How does it work?
Explains Tree of Thoughts and Retrieval-Augmented Generation and when to apply each approach.
Summarizes practical prompt engineering techniques with implementation-oriented examples.
Covers core prompt engineering concepts and practical LLM parameter settings for stable output quality.
HTTP/2 addresses the structural bottlenecks of HTTP/1.1 with binary framing, multiplexing, and header compression. Here is a breakdown of the key differences.
A practical guide to RestClient in Spring Framework 6.1, covering synchronous HTTP configuration, error handling, testing, and how it compares to RestTemplate.
How to reduce Java application image size and build time using Dockerfile best practices.
What has changed in Java 21 LTS?
The Decorator pattern dynamically adds features to objects without inheritance. How far can you wrap an object?
When lag grows and rebalancing repeats, what is actually happening inside the consumer? This post follows the flow of poll and fetch.
One message key changes ordering guarantees, parallelism, and even hot partitions.
Examines the differences and limits of at-most-once, at-least-once, and exactly-once, and organizes where duplicates and data loss occur in Kafka.
Walks through the Kafka producer send path, acks settings, batching and compression, the idempotent producer, and transactions with code.
Covers the handler architecture that processes deserialization, production, and business-logic errors in Kafka Streams, along with State Store recovery strategies.
Frequently used Docker Compose patterns and operational cautions from a production perspective.
How to build a consistent local backend environment based on the Docker Compose Specification.
Covers how Tumbling, Hopping, and Session windows work, along with KStream-KStream time-based joins, Grace Period, and State Store retention management.
What Docker Compose is, why it matters, and how to use it in local development.
Organizes why KStream and KTable interpret the same topic differently, and explains stateless and stateful operations, KStream-KTable joins, and Serdes configuration through code.
Compares direct Consumer/Producer API composition with Kafka Streams and explains core architectural concepts such as Topology, Task, and State Store through code.
Covers the internal structure of the __consumer_offsets topic, compares automatic and manual commit strategies, and reviews offset reset scenarios and consumer lag monitoring.
Covers Spring Kafka's error handler architecture, the internal behavior of ErrorHandlingDeserializer and DeadLetterPublishingRecoverer, and DLT topic design and replay strategies.
What Kafka Schema Registry is, why teams need it, and what to check in production adoption.
A production-focused guide to Kafka consumer rebalancing: causes, deployment lag spikes, duplicate processing, and scale-out checkpoints.
How to size Kafka partitions: throughput targets, ordering guarantees, and scaling pitfalls in production.
A practical guide to frequently used Kafka topic configurations (retention, cleanup policy, replication, and message size) with examples.
Compares sealed class, abstract class, and interface in Java with practical criteria and examples.
A code-focused guide to common Kafka consumer reprocessing patterns and how to choose among them.
The AI chatbot released by OpenAI. What is ChatGPT?
How to resolve Gem::FilePermissionError when running Ruby's gem package manager
When the interface of an external library does not match your system, the Adapter pattern connects the two without modifying existing code.
How to configure automatic creation of metadata tables used by Spring Batch
What options exist for random number generation in Java, and what caveats should you know?
Remove the notification sound that plays when you connect a charger to a MacBook
What default values can you use with Spring's @Value annotation, and how do you configure them?
A practical guide to reading MySQL EXPLAIN output and identifying the fields that actually matter for query tuning.
What is Spring Cloud OpenFeign, and what do you need to know before adopting it? A practical walkthrough covering synchronous calls, timeouts, retries, and more....
Cases where FileNotFoundException occurs when running a Java application as a JAR
MySQL joins and ORDER BY slow down because of intermediate result size, filesort overhead, OFFSET paging, and aggregation queries.
How to fix the "xcrun: error: invalid active developer path" error after upgrading macOS
Composite index ordering, function application, type casting, and covering indexes all determine whether MySQL actually benefits from your index.
Beyond execution time, what else matters in a MySQL slow query? Call frequency, rows examined, sorting, and aggregation all deserve a closer look.
How to fix cases where IntelliJ IDEA does not display labels declared with JUnit5 @DisplayName
What profiling tools are available in IntelliJ IDEA Ultimate?
Use MapStruct to simplify object mapping between DTOs and Entities (feat. Spring Boot, Lombok)
What ThreadLocal is in Java, how to use it, and what to watch out for in real applications.
A new Java LTS release after 3 years. What features were added in JDK 17?
If you see "Support for password authentication was removed on August 13, 2021. Please use a personal access token instead" while pushing to GitHub, how...
How to handle syntax errors when JPA entity class/field names match database reserved words such as order or group
Spring JDBC is simple to configure and has a low learning curve, but SQL gets mixed into business logic and hurts readability. How can we...
Fixing the overall flow while changing specific steps is the core of the Template Method pattern. Spring's JdbcTemplate also relies on this principle.
What is "effectively final" in Java, where a variable is not declared final but behaves as final because its reference is not changed after initialization?...
How can Java represent real numbers accurately, and what is floating-point representation?
How can you use Optional in ways that align with its intent?
How to end Optional chaining and extract values or handle branches conditionally
How to filter or transform values in Optional objects
What is the Optional class added in Java 8?
What is null in Java, and why does it cause so much pain?
How can Java represent very large integers?
Spring Cloud Config-related changes introduced in Spring Boot 2.4
Use Querydsl fetchJoin to avoid the N+1 problem in JPA
Why should we design for low coupling and high cohesion?
What is Querydsl, why do we need it, and how do we use it?
How to configure Spring Boot so MongoDB documents do not store the _class field
How to implement encryption and decryption in Java, including algorithm, mode of operation, and padding basics.
What if 'Invalid bound statement (not found)' occurs when executing a MyBatis query?
Let's register multiple DataSources with Spring AbstractRoutingDataSource and switch them by context.
Let's look at the 'Code With Me' feature that supports collaborative development and pair programming in IntelliJ IDEA.
RestTemplate is expected to be deprecated. Use WebClient.
What types of cryptographic techniques exist? Let's look at substitution and transposition ciphers, and block and stream ciphers.
Learn about the chmod command for changing file and directory permissions on Linux.
How can you measure how long code takes to execute in Java?
What is a symbolic link, a special kind of file that contains a reference to a file or directory in Linux?
Design your GitHub profile with README.md
How to resolve the "Unresolved function or method for require()" warning when developing a Node.js project with IntelliJ IDEA/WebStorm
How to get the auto_increment key value of inserted data after executing an insert query in MyBatis
Is there a way to run specific code when a Spring Boot application starts?
A practical overview of new features and notable changes introduced in JDK 14.
As the number of parameters in a constructor increases, the code becomes difficult to read. How does the Builder pattern solve this problem?
How to resolve DataBufferLimitException when WebClient exceeds the default codec memory buffer limit.
Let's replace Nashorn script engine, deprecated in Java 11, with GraalVM.
Let's look at crossdomain.xml, the security policy file required for Flash (SWF) to access data from external domains.
Execute JavaScript from Java, manage state with bindings and ScriptContext, and improve execution performance.
Use the Java Scripting API to invoke functions defined in a JavaScript file from Java.
Let's implement a JSON Schema validator in Java code.
How to combine JSON schemas, apply conditional logic, and reuse repeated schema fragments.
What is RSS (Rich Site Summary, Really Simple Syndication)? Let's look at RSS 2.0 specification and format.
Validate JSON data with JSON Schema using fundamental schema declaration and validation patterns.
Is there a way to validate JSON data? Like XSD for XML, how can you validate JSON?
Use a Git webhook to refresh Spring Cloud Config automatically whenever configuration changes.
What are the differences between String, StringBuilder, and StringBuffer in Java, and which one performs fastest?
Do we have to call every client whenever Spring Cloud Config changes? Connect all clients with Spring Cloud Bus.
How can you refresh Spring configuration changes without rebuild and redeploy, and externalize configuration files?
Add a comment system to a Jekyll blog by using utterances, which is backed by GitHub issues
Can classes with the same name in different packages be registered as Spring beans? How can package names be included in bean names?
Why is constructor injection generally recommended over field injection with @Autowired?
You upgraded to Java 9 and now your Spring Boot project fails at startup. How do you fix it?
Growth and experience points you can gain from the Stack Overflow community that most developers have visited at least once
[Effective Java 3rd Edition] Item 11. Always override hashCode when you override equals
[Effective Java 3rd Edition] Item 76. Strive for failure atomicity
[Effective Java 3rd Edition] Item 23. Prefer class hierarchies to tagged classes
[Effective Java 3rd Edition] Item 24. Favor static member classes over nonstatic
[Effective Java 3rd Edition] Item 15. Minimize the accessibility of classes and members
[Effective Java 3rd Edition] Item 86. Implement Serializable with great caution
[Effective Java 3rd Edition] Item 89. For instance control, prefer enum types to readResolve
[Effective Java 3rd Edition] Item 90. Consider serialization proxies instead of serialized instances
[Effective Java 3rd Edition] Item 88. Write readObject methods defensively
[Effective Java 3rd Edition] Item 85. Consider using a custom serialized form
[Effective Java 3rd Edition] Item 85. Prefer alternatives to Java serialization
[Effective Java 3rd Edition] Chapter12: Serialization
[Effective Java 3rd Edition] Item 81. Prefer concurrency utilities to wait and notify
[Effective Java 3rd Edition] Item 80. Prefer executors, tasks, and streams to threads
[Effective Java 3rd Edition] Item 79. Avoid excessive synchronization
[Effective Java 3rd Edition] Chapter11: Concurrency
[Effective Java 3rd Edition] Item 78. Synchronize access to shared mutable data
[Effective Java 3rd Edition] Chapter 10: Exceptions
[Effective Java 3rd Edition] Item 68. Adhere to generally accepted naming conventions
[Effective Java 3rd Edition] Item 62. Avoid strings where other types are more appropriate
What are the benefits of delegating object creation to subclasses? We examine the structure of the Factory Method pattern and its practical use cases in...
[Effective Java 3rd Edition] Chapter9: General Programming
When writing SQL in MyBatis XML mappers, what is the difference between #{} and ${}?
[Effective Java 3rd Edition] Chapter8: Methods
What roles do readResolve and writeReplace play in Java serialization?
[Effective Java 3rd Edition] Item 44. Favor the use of standard functional interfaces
What roles do writeObject and readObject play in Java serialization, and why are they private?
[Effective Java 3rd Edition] Chapter7: Lambdas and Streams
[Effective Java 3rd Edition] Item 39. Prefer annotations to naming patterns
Effective Java 3rd Edition Chapter 6: Enums and Annotations
Effective Java 3rd Edition Chapter 5: Generics
[Effective Java 3th Edition] Chapter4: Classes and Interfaces
How do you sort a VARCHAR column as a number in MySQL? Convert the string to a number and order it.
How do you implement JSONP responses in Spring Boot, and how do you solve cross-domain issues?
[Effective Java 3th Edition] Chapter3: Methods Common to All Objects
What is the difference between map and flatMap in Java 8?
How do you combine multiple commits into one? Use git rebase to clean up commit history.
What should you watch out for when using Java serialization, and why is it discouraged?
Build your IntelliJ plugin and publish it to the JetBrains plugin repository.
Define an Action to run an IntelliJ plugin
Build a plugin for IntelliJ IDEA from scratch
What is Vuex, and why does a Vue app need it?
Install jEnv on macOS and manage multiple JDK versions.
Fix the IntelliJ error: Error:java: javacTask: source release 8 requires target release 1.8.
Detect JAXB unmarshal errors and find the error line with ValidationEventHandler.
Use JAXB (Java Architecture for XML Binding) to marshal and unmarshal XML in Java.
What is the difference between FTP active and passive modes?
How does Java classify exceptions? Differences between checked and unchecked exceptions.
Oracle's Java licensing changes and the differences between OpenJDK and Oracle JDK.
[Effective Java 3rd Edition] Chapter 2. Creating and Destroying Objects
Common pitfalls and trade-offs when using the Java Stream API.
Practical examples using the Java Stream API.
Create a Maven-based Spring MVC project in IntelliJ IDEA.
What terminal operations exist in Java streams, and how do you use them?
What intermediate operations exist in Java streams, and how do you use them?
What are Java 8 streams? This post introduces the Stream API and ways to create streams.
[Effective Java 3rd Edition] Item 17. Minimize mutability
What does the final keyword mean in Java, and how should you use it?
[Effective Java 3rd Edition] Item 82. Document thread safety
[Effective Java 3rd Edition] Item 74. Document all exceptions thrown by each method
Since Java 7, you can use underscores in numeric literals to improve readability.
[Effective Java 3rd Edition] Item 66. Use native methods judiciously
Inject a bean into a static field in the Spring Framework.
[Effective Java 3rd Edition] Item 58. Prefer for-each loops to traditional for loops
[Effective Java 3rd Edition] Item 8. Avoid finalizers and cleaners
How do you run multiple Tomcat instances?
[Effective Java 3rd Edition] Item 31. Use bounded wildcards to increase API flexibility
[Effective Java 3rd Edition] Item 50. Make defensive copies when needed
Install Node.js on Mac OSX and run a Hello World example.
What is Node.js and what makes it different? A concise introduction.
What is SerialVersionUID, and how does it affect Java serialization?
What are serialization and deserialization in Java, and how do you use them?
[Effective Java 3rd Edition] Item 42. Prefer lambdas to anonymous classes
Why are Java generics useful, and what should you watch out for?
[Effective Java 3rd Edition] Item 4. Enforce noninstantiability with a private constructor
A practical overview of Java generics, including generic classes, interfaces, and methods.
Use Java 8 date/time classes (LocalDate, LocalDateTime) to handle dates and times.
Why should you avoid Java’s legacy Date and Calendar APIs?
[Effective Java 3rd Edition] Item 28. Prefer lists to arrays
Explore the differences between var, let, and const introduced in ECMAScript 2015 (ES6).
[Effective Java 3rd Edition] Item 34. Use enums instead of int constants
What is the difference between server-side rendering (SSR) and client-side rendering (CSR)?
How do you implement a switch statement in Python?
[Effective Java 3rd Edition] Item 18. Favor composition over inheritance
[Effective Java 3rd Edition] Item 26. Don't use raw types
[Effective Java 3th Edition] Item 10. Obey the general contract when overriding equals
urllib library that makes URL parsing and calling easy in Python
Let's learn about methods for entering comments in Korean in Python.
[Effective Java 3rd Edition] Item 2. Consider a builder when faced with many constructor parameters
What is the meaning of the if __name__ == "__main__" declaration in Python?
What's the difference between function arguments and parameters?
Docker, an open-source virtualization platform based on containers! Let's just do it!
Let's learn about log4j, logback, and log4j2, Java's logging frameworks.
Let's set configs for Kafka Producer and Kafka Consumer.
Implementing Kafka Producer and Kafka Consumer using Java.
Let's install Jekyll in Windows 10 environment and create a github blog
Let's learn about Cron Expressions used in Cron Scheduler
Let's learn about the structure of Gradle-based projects and Gradle Wrapper that enables builds even without Gradle installation.
Let's learn about Gradle, a build tool based on Groovy that focuses on build automation and development support
What are Upcasting and Downcasting in Java?
Let's set up Log4j2 for logging in Spring Boot projects
Let's create a Spring Boot project using IntelliJ IDE
Let's find specific strings in files with the grep command
Passing code to methods when execution behavior hasn't been decided yet.
I mistakenly entered the commit author and even pushed it. Can I change the commit author's name again?
What differences do processes and threads have?
Naver SW Development Interview Review
NHN Technology Services Written Test Review
Software Maestro (SW Maestro) Interview Review
What are the Bean Lifecycle methods in Spring Framework? And in what order are they executed?
Com2us Platform Development Interview Review
Korea Electric Power Corporation IT (Information & Communication) Interview Review
What's the difference between Method Overriding and Method Overloading in Java?
LINE Plus SW Development Interview Review
Output the input string in reverse
Review of the no-spec hiring process of Lotte Data Communication Company, an IT company of the Lotte Group
There are two ways to declare strings in Java. What's the difference between String and new String()?
A Java implementation of a Binary Search Tree.
Tree, a hierarchical structure similar to trees, combines with binary search. What is a Binary Search Tree?
When an object's state changes, is there a way for other objects that depend on it to know?
Synchronization is important. What I intended can appear differently to others. Learning about synchronization when using collections
Find the result of adding two lists consisting of positive numbers by each index
Find the longest substring without repeating characters in a given string
Following Garbage Collection, learning about object references of Java references.
Testing is one of the most effective methods for learning Spring.
Learning about Garbage, which refers to memory no longer in use, and Garbage Collection, which cleans it up.
Functional Programming and Object-Oriented Programming
Learning about Spring's Inversion of Control (IOC, Inversion of Control)
Learning why computers use the binary system.
Studying Spring Framework and design patterns!
Issues you may encounter when using String replaceAll method in Java
A pattern that encapsulates object behavior into classes to dynamically and freely change them
Finding prime numbers quickly using the Sieve of Eratosthenes!
Learning about the singleton pattern that limits the number of objects. And why is the singleton pattern called an anti-pattern?
What is an interface in Java? And how can multiple inheritance be implemented in Java?
Dynamically load (Dynamic Load) other classes within a class.
Resolving Jekyll execution errors in High Sierra version.
Resolving access denied for user... error
Examining the edit distance algorithm for finding similarity between strings.
Open System Interconnection 7 Layer
Learning about complexity for evaluating algorithm performance.
Learning about the this keyword that refers to the object itself in Java
Learning about the differences between TCP and UDP.
Java file compression and decompression using java.util.zip package
Creating Java executable files using JSmooth.
What's the reason for using abstract classes and abstract methods in Java?
What access modifiers are there in Java? What's the difference between public, protected, private, and default access modifiers?
Examining the concept and usage examples of inheritance in Java
Why is the structure of the main method in Java public static void main(String[] args)?
Differences in Windows file systems
Output Fizz for multiples of 3, Buzz for multiples of 5, and FizzBuzz for both from numbers 1 to N
Nim game, which can also be said to be the origin of Baskin-Robbins game
What's the difference between Big Endian and Little Endian? Learning about methods of arranging bytes.
Transferring files to or from a remote host! What's the difference between scp and rsync?
Given an array containing 1~N, find the indices of the array that can make the input number M
Finding various causes of 404 errors in Maven + Tomcat.
Learning about selection sort, one of the in-place sorting algorithms.
Learning about the quick sort algorithm based on divide & conquer.
Learning about the merge sort algorithm that goes through divide, conquer, and combine processes.
Connecting web server Apache and WAS Tomcat through modjk. And why do we connect Apache and Tomcat?
Implementing drag & drop sorting with jQuery UI!
How to release memory-allocated objects in Java?
Customize Swing UI with LookAndFeel.
What data types does Java provide?
Java is object-oriented and platform independent, and it supports multithreading and encapsulation. What else defines the language?
How can you verify matching brackets in an expression? Use a stack to validate pairs.