Posts
All the articles I've posted.
-
자바 공부 #3 — 예외 처리 · 동시성 · record · Modern Java · Gradle
자바 문법 훑기 마무리 편. 예외 처리는 디버깅 편의가 아니라 백엔드 서버가 프로덕션에서 안 죽게 하기 위한 방어막이었음을 이해. print vs throw 의 차이 — print 는 호출자에게 실패를 전달하지 않지만 예외는 강제로 전파. 동시성은 ExecutorService · newFixedThreadPool 로 3초 순차 → 1초 병렬 (실측 3008ms → 1006ms). record 는 필드·생성자·접근자·toString·equals·hashCode 자동 생성 — 강우량계 데이터로거의 RainDataDTO 같은 순수 데이터 컨테이너에 딱 맞음. var/switch 화살표/텍스트 블록 같은 Modern Java 도 훑음. 마지막으로 Gradle — 파일이 수백 개 될 때 java 로 하나씩 컴파일하는 건 불가능, 외부 라이브러리도 자동으로 받아옴. build.gradle 이 핵심 설정 파일.
-
OST 클로즈베타 준비 — 에러 견고성 · 개인정보 고지 초안 · 동의 게이트
완벽주의 동행 앱 OneSmallThing (OST) 를 2주 dogfooding 후 다른 사용자에게도 넘길 준비. 오늘은 세 가지 — (1) optimistic mutation 코드에 catch 가 하나도 없었던 것 발견 후 rollback 추가, (2) 개인정보 고지 초안 — 클로즈베타는 완전한 개인정보처리방침까지는 불필요 (정식 출시 시 미작성 과태료 5천만원 이하), 다만 일반 수집·이용 + 민감정보 (감정·기록) + 국외이전 (Anthropic API = 미국, 한국 리전 없음) 세 항목 동의 필수, (3) 동의 게이트 UI 를 만들어 기존 유저도 미동의면 재동의 요구. KISA · 개인정보위 무료 컨설팅 (중소기업 · 소상공인 · 1인 개발자 대상) 이 정식 출시 검토 경로.
-
자바 공부 #2 — 컬렉션 (List / Map / Set) · Stream 파이프라인 · Optional 로 null 안전 처리
자바 공부 2주차. Collection Framework 핵심 — List (ArrayList), Map (HashMap), Set 을 훑고, 각각 '인터페이스와 구현체' 패턴이 보임 (List<String> books = new ArrayList<>()). 이후 Stream 으로 넘어가 for 문 없이 filter → map → collect 파이프라인, method reference (System.out::println), groupingBy + counting 조합. 마지막은 Optional — get() 즉시 호출 대신 ifPresent / orElse / map 으로 값 없을 때를 항상 함께 처리해야 하는 감각.
-
자바 공부 #1 — 자바 첫 실행 · 문법 훑기 · OOP 기본 (클래스 · 캡슐화 · 상속 · 인터페이스)
부족한 백엔드 · 상용화 경험을 채우기 위해 자바 학습 시작. 자바 설치부터 시작해서 switch 의 -> 화살표 문법 · for-each · 정수 나눗셈에서 double 캐스팅 필요성 · public class 파일 규칙 · private + getter 로 캡슐화 · static 유무의 차이 · @Override 어노테이션 · implements 로 인터페이스 연동까지 하루에 훑음. Python / C++ 경험이 있어 개념적으로는 익숙한 부분이 많았음.