본문 바로가기
빌드노트 검색

빌드노트

검색 결과

검색어를 입력해 글을 찾아보세요.

글 검색

글 목록

총 480개의 글

  1. data-enabled="false"인데 조건문은 참으로 들어간다

    data-enabled="false"는 불리언이 아니라 문자열이다. 새 브라우저 문서에서 false·true·빈 값·누락을 비교하고, "true" 명시 비교와 잘못된 값을 거절하는 파서 중 어떤 계약을 쓸지 정한다.

  2. @ConfigurationProperties 키를 틀렸는데 정상 시작하는 이유

    @ConfigurationProperties는 기본적으로 모르는 키를 무시한다. Boot 3.5.7의 최소 컨텍스트에서 정상 키·오타·표기 변형·누락·prefix 오타를 비교하고, ignoreUnknownFields=false의 적용 범위와 필수값 검증의 차이를 확인한다.

  3. Spring Boot 프로필에 서버 하나를 적으면 기본 List가 교체된다

    Spring Boot 프로필에 List 한 항목을 적으면 기본 목록 전체가 교체된다. 기본·dev·Map만 추가·완성 목록의 실제 바인딩을 비교하고, List로 전체 집합을 지정할지 Map으로 이름별 속성을 유지·수정할지 고른다.

  4. URLSearchParams.append로 검색어를 바꿨더니 q가 두 번 남는다

    검색어를 바꾸려던 append는 기존 q를 남기고 새 값을 추가한다. 쿼리 원문과 get/getAll, loopback의 실제 요청 대상을 비교해 set으로 교체할 키와 여러 값을 보존할 키를 구분한다.

  5. @Value 필드는 채워졌는데 생성자에서 만든 값은 왜 null일까

    @Value 필드 주입은 생성자 실행 뒤에 일어난다. 생성자에서 만든 문자열이 초기값을 유지하는 관찰을 바탕으로, 생성자 매개변수 주입과 @PostConstruct 계산을 선택하는 기준을 설명한다.

  6. 이벤트를 발행했는데 @TransactionalEventListener가 호출되지 않는다

    일반 이벤트는 받는데 트랜잭션 리스너만 조용하다면 등록과 발행 순간의 트랜잭션을 나눠 확인한다. Spring 6.2.19와 H2에서 트랜잭션 없음·커밋·롤백을 비교하고, fallbackExecution이 커밋 이후 처리 계약을 어떻게 바꾸는지 살펴본다.

  7. ScheduledExecutorService 주기 작업이 한 번 실패한 뒤 멈춘다

    ScheduledExecutorService의 주기 작업은 한 회차의 예외가 밖으로 나오면 후속 실행을 중단한다. 반환 Future와 회차 기록을 읽고, 다음 회차를 허용할 실패만 안에서 처리하는 경계를 실제 비교로 확인한다.

  8. Java에서 2월 30일을 파싱했는데 2월 28일이 됐다

    Java 날짜 파싱의 기본 SMART는 2월 30일을 월말로 보정한다. 평년·윤년 입력을 직접 비교하고, uuuu와 STRICT로 잘못된 일자를 거절하는 방법 및 yyyy에 STRICT만 붙였을 때 정상 날짜가 실패하는 이유를 설명한다.

  9. @Valid를 붙였는데 자식 DTO의 빈 문자열이 통과한 이유

    요청 인자의 @Valid와 자식 참조의 @Valid는 검증에서 맡는 위치가 다르다. 빈 이름·null 자식·정상 자식의 오류 경로, MockMvc 상태와 서비스 호출을 비교하고, 자식 객체를 필수로 받을 때 @NotNull을 더할 기준을 설명한다.

  10. 같은 클래스에서 부른 @Transactional 메서드는 왜 롤백되지 않을까

    같은 @Transactional 메서드도 프록시를 거쳐 호출했는지에 따라 결과가 달라진다. Spring과 메모리 H2에서 트랜잭션 활성 상태·자동 커밋·예외 후 행 수를 비교하고, 서비스 분리와 TransactionTemplate, 바깥 트랜잭션 중 필요한 경계를 고른다.

  11. CompletableFuture.orTimeout 뒤에도 작업이 계속된다

    CompletableFuture.orTimeout() 뒤에도 작업의 변경이 실행될 수 있다. Future 완료와 작업 종료를 latch로 따로 확인하고, 중단 요청을 보내는 곳과 실제 변경 전에 확인할 곳을 구분한다.

  12. Java toLowerCase()로 만든 조회 키가 서버마다 달라질 때

    같은 ASCII 식별자도 Java의 기본 로캘에 따라 소문자 키가 달라진다. 영어·터키어·ROOT의 문자열과 코드 포인트, Map 조회를 실제 비교하고, 언어 중립 키에 ROOT를 적용할 위치와 기존 저장 키의 한계를 설명한다.