Tag: 학습
All the articles with the tag "학습".
-
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.
-
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.
-
RAG Embedding Comparison — Measuring recall@k on My Blog Data (OpenAI vs bge-m3)
After establishing the ["feeling-based benchmarking → numeric benchmarking" principle](/en/posts/quant-study-00-pandas) in my quant retrospective, I actually quantified an embedding model comparison this time. I indexed 441 chunks from my blog posts with OpenAI text-embedding-3-small and bge-m3 respectively, then measured recall@3 with a test set of 20 question-answer source pairs. Overall: OpenAI 80% vs bge-m3 90%. bge-m3 hit 100% on hard-difficulty questions — the decisive factor was connecting to the source text by meaning even when words didn't overlap. On easy questions, the misses turned out to be caused by typos (cladue, underscores) — a twist showing the grading criteria itself was wrong.