Posts
All the articles I've posted.
-
Java Study #3 — Exception Handling · Concurrency · record · Modern Java · Gradle
Wrapping up the Java syntax sweep. Understood that exception handling isn't about debugging convenience — it's a safeguard so backend servers don't die in production. The difference between print vs throw — print doesn't convey failure to the caller, but exceptions force propagation. Concurrency with ExecutorService · newFixedThreadPool — 3 seconds sequential → 1 second parallel (measured 3008ms → 1006ms). record auto-generates fields, constructor, accessors, toString, equals, hashCode — a perfect fit for pure data containers like RainDataDTO from a rain gauge data logger. Also covered Modern Java features like var/switch arrows/text blocks. Finally, Gradle — once you have hundreds of files, compiling one by one with java is impossible, and it also auto-fetches external libraries. build.gradle is the core config file.
-
OST Closed Beta Prep — Error Robustness, Privacy Notice Draft, Consent Gate
Preparing to hand off the perfectionism companion app OneSmallThing (OST) to other users after 2 weeks of dogfooding. Today's three things — (1) discovering that optimistic mutation code had zero catch blocks and adding rollback, (2) drafting a privacy notice — closed beta doesn't require a full privacy policy (a fine of up to 50 million KRW applies at full launch if one isn't written), but consent is required for three items: general collection/use, sensitive information (emotions/records), and cross-border transfer (Anthropic API = US, no Korea region), (3) building a consent gate UI that re-prompts existing users who haven't consented yet. KISA and PIPC's free consulting (for SMEs, small business owners, solo developers) is the review path for full launch.
-
Java Study #2 — Collections (List / Map / Set) · Stream Pipelines · Null-Safe Handling with Optional
Week 2 of studying Java. I go through the core of the Collection Framework — List (ArrayList), Map (HashMap), Set — and notice the 'interface and implementation' pattern in each of them (List<String> books = new ArrayList<>()). Then I move on to Stream, building filter → map → collect pipelines without for loops, method references (System.out::println), and combining groupingBy + counting. Finally, Optional — I learn to always handle the absence-of-value case with ifPresent / orElse / map instead of calling get() right away.
-
Java Study #1 — First Java Run · Syntax Overview · OOP Basics (Classes · Encapsulation · Inheritance · Interfaces)
Starting Java study to fill in my lacking backend and production experience. In one day, I went from installing Java to covering the switch statement's -> arrow syntax, for-each, the need for double casting in integer division, the public class file rule, encapsulation with private + getter, the difference with and without static, the @Override annotation, and connecting interfaces with implements. Having Python / C++ experience, many concepts were already familiar.