글 모음
관심 있는 언어와 주제를 선택해 글을 모아보세요.
언어
카테고리
Non-business day table design in Oracle for business day calculations — weekend strategy, unique constraints, and code taxonomy.
영업일 계산용 비영업일 테이블을 Oracle에서 설계할 때 주말 처리, UNIQUE 제약, 코드 체계까지 실무 설계 결정을 정리합니다.
Business day calculation done right: why a non-business day table beats a holiday-only table, plus batch sync with a government holiday API.
영업일+N 계산이 필요할 때 공휴일만 저장하면 안 되는 이유와, 비영업일 테이블 + 공공데이터 API 연동 + Spring Batch로 구축하는 전체 설계를 다룹니다.
Fix favicon.ico 404 or 500 errors in Spring Boot when a catch-all controller hijacks static resource requests. Diagnosis and Filter-based solution.
Spring Boot에서 favicon.ico가 로컬은 되고 서버 배포 후 404/500 에러가 나는 원인과 Filter를 이용한 해결 방법을 정리합니다.
Fix SVN E155015 remains in conflict error caused by tree conflicts. Step-by-step resolution via terminal and IntelliJ.
SVN E155015 remains in conflict 에러의 원인인 tree conflict를 이해하고, 터미널과 IntelliJ에서 해결하는 방법을 정리합니다.
When building Spring MVC features that accept a resource ID as a URL parameter, IDOR vulnerabilities are easy to miss. Here's how to catch and fix them.
URL 파라미터로 타인의 리소스 ID를 받는 Spring 기능을 만들 때 IDOR 취약점이 생기는 구조와 서버 검증으로 방어하는 방법을 정리했습니다.
How to build Ajax-powered search pages in Spring MVC with Thymeleaf — fragment separation, the replaceWith() bug, DAO/DTO split, and MyBatis dynamic queries.
Thymeleaf Ajax 검색 화면 구현 시 replaceWith 버그, DAO/DTO 분리, MyBatis 동적 쿼리까지 실무에서 겪은 핵심 포인트를 정리했습니다.
Learn how to quickly check your installed Java version using the terminal with simple commands for developers.
터미널에서 java -version 명령어를 사용하여 내 컴퓨터의 자바(Java) 버전을 쉽고 빠르게 확인하는 방법을 알아봅니다.
How to convert a single-record Oracle SQL query into a per-entity aggregate for list views. Practical patterns with MyBatis and CTEs.
Oracle SQL에서 특정 ID 조회용 상세 쿼리를 엔티티별 집계 쿼리로 변환하는 방법. MyBatis 환경에서 실전 예시로 설명합니다.
ORA-02292 FK 제약조건 오류 해결 방법을 단계별로 설명합니다. 자식 레코드 문제의 원인과 빠른 디버깅 방법까지 정리했습니다.
String comparison, array membership checks, and static constants — the three places where JS-to-Java conversions quietly break.
JS 함수를 Java로 바꿀 때 놓치기 쉬운 문자열 비교, 배열 포함 검사, 정적 상수 선언 패턴을 정리했습니다.
How I designed a feature letting approvers view requesters' budgets in a B2B e-commerce platform, with lessons on scope control.
B2B 커머스에서 승인자가 상신자의 예산현황을 조회하는 기능을 설계한 과정. 스코프 조정과 권한 설계 판단 기록.
Oracle YYYYMMDD date strings can be compared without TO_DATE. Learn why lexicographic order equals chronological order and how to avoid ORA-01839.
Oracle에서 YYYYMMDD 문자열 날짜를 TO_DATE 없이 비교하는 방법과 원리. ORA-01839 에러 원인과 해결책을 정리합니다.
Add a favicon to your Spring Boot Thymeleaf project — from generation to Security config to fixing manifest BOM errors.
Spring Boot + Thymeleaf 프로젝트에 파비콘을 추가하는 방법. 생성, 배치, Security 설정, manifest BOM 에러 해결까지.
Spring Session throws OutOfMemoryError during Redis deserialization. Here's why it happens and how to fix it permanently with serializer changes and session trimming.
Spring Session에서 Redis session deserialization 중 OutOfMemoryError가 발생하는 원인과 serializer 교체, session 경량화 등 근본 해결 방법을 정리합니다.
Three Thymeleaf patterns for displaying a product's selected option next to its name in a cart list — with proper null handling.
Thymeleaf 장바구니 페이지에서 상품명 옆에 옵션명을 표시하는 3가지 패턴. th:if로 null 처리까지 깔끔하게.
A step-by-step breakdown of a real Java cart DTO assembly method: multi-type branching, external API calls in loops, and delivery fee calculation strategy.
복잡한 장바구니 DTO 조립 로직을 단계별로 분석한다. 다중 분기, 외부 API 의존, 배송비 계산 전략까지 실제 코드 패턴을 해부한다.
Stop wasting resources on unreasonable log retrieval requests. Learn how to professionally push back by leveraging privacy policies and system design.
상대 회사의 갑작스러운 데이터 확인 요청에 당황하셨나요? 개인정보 보호 정책과 시스템 구조를 근거로 주도권을 가져오는 전문적인 비즈니스 커뮤니케이션 전략을 소개합니다.
How a shared Thymeleaf layout caused unnecessary DB queries and resource loading on a login page, and the simple layout split that fixed it.
Thymeleaf Layout Dialect 기반 프로젝트에서 로그인 페이지가 불필요한 DB 호출과 정적 리소스를 로드하는 문제를 layout 분리로 해결한 과정을 정리합니다.
대기업 개발자 취업 전략을 직장인 기준으로 정리했습니다. 코딩테스트, 프로젝트, 시간 관리까지 현실적으로 실행 가능한 방법을 제공합니다.
Can CSS group elements into one container? Learn the difference between DOM structure and CSS, and how to properly group elements in real projects.
CSS로 요소를 묶을 수 있을까? DOM 구조와 CSS의 역할 차이를 이해하고, 실제로 요소를 그룹화하는 올바른 방법을 정리합니다.
Spring 글로벌 예외 처리 로그를 제대로 남기는 방법을 정리합니다. StackTrace, traceId 기반으로 운영 장애를 빠르게 추적하는 실전 전략.
Confused about DAO vs DTO in Java? Learn the difference, common mistakes, and the exact naming conventions your team expects.
Java에서 DAO와 DTO의 역할 차이와 패키지·클래스 네이밍 규칙을 코드 예시와 함께 정리했습니다.
Learn how to search logs with grep in Linux, including file patterns, useful options, and real-world debugging techniques.
리눅스 grep으로 로그에서 특정 문자열을 빠르게 찾는 방법을 정리합니다. 파일 패턴, 옵션, 실전 분석까지 한 번에 이해할 수 있습니다.
MyBatis #{param} fails in IntelliJ Database Console because it's not real SQL. Learn how to fix it using ? parameter binding correctly.
MyBatis #{param} IntelliJ에서 실행 안 되는 이유와 해결 방법을 정리합니다. 실제 DB 실행 구조와 ? 바인딩 방식까지 설명합니다.
Oracle hierarchy query using CONNECT BY solves menu sorting issues that ORDER BY cannot handle. Learn the correct pattern for tree-structured data.
Oracle 메뉴 트리 정렬 문제를 해결하려면 ORDER BY가 아닌 CONNECT BY를 사용해야 합니다. 계층 구조 유지 원리와 실전 쿼리까지 정리했습니다.
Learn how to query Oracle synonyms and find their target tables using ALL_SYNONYMS, including how to detect broken synonyms.
Oracle synonym 조회 방법과 FOR 대상 테이블을 찾는 방법을 정리했습니다. ALL_SYNONYMS를 활용한 실전 SQL까지 포함합니다.
Spring exception logging explained. Learn how to use stack traces and traceId to quickly find the root cause in production systems.
Thymeleaf null boolean error happens when SpEL cannot convert null to boolean. Learn the root cause and how to fix it properly.
Thymeleaf null boolean 오류는 SpEL에서 null을 boolean으로 처리하지 못해 발생합니다. 원인과 해결 방법을 실무 관점에서 정리했습니다.
Java 멀티 인스턴스 환경에서 모바일 웹 배포 후 변경사항이 간헐적으로 반영되지 않는 문제의 원인 분석과 해결 과정을 단계별로 정리했습니다. JAR 배포는 됐는데 반영이 안 되는 상황, 새로고침할 때마다 결과가 다른 상황에 도움이 됩니다.
도메인 선택부터 Next.js 배포까지, 개인 블로그를 만드는 전 과정을 기록했다.
테스트용으로 개설 과정 추가