토마토의 개발일지
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • Development (144)
      • Languege (39)
        • Java & Spring (27)
        • C# & ASP.NET (5)
        • JavaScript (2)
        • Kotlin (5)
      • DB (0)
        • Oracle (0)
      • Study (72)
        • 네트워크 (3)
        • 이펙티브 자바 (41)
        • 우아한 테크 코스 (7)
        • Next Step (3)
        • Certificate (5)
        • Side Proejct (6)
      • Error (18)
        • 개발환경 (10)
        • 트러블슈팅 (6)
      • Algorithm (12)
      • 개발환경 (1)
      • 회고 (2)
  • 홈
  • 태그
  • 방명록
Languege/Java & Spring

[Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트] 인프런 강의 후기, 강의 강추!!

의존성 주입을 통해 쉬운 테스트를 만드는 방법우선 강의는 Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트 이며, 해당 강의를 통해 학습한 내용을 정리해보았다.강의 후기는 그동안 추상적인 개념으로만 알고 있던 내용을 정말 잘 정리할 수 있는 기회이자 진작에 들었으면 많은 시행착오를 겪지 않아도 될만한 내용들이 강의에 담겼다고 본다. 그리고 개인적으로 이 강의가 가장 훌륭한점은 전달력이다. 해당 강사분은 카카오 개발자시니 개발 실력은 말할것도 없고, 딕션이나 설명하고자 하는 내용들이 부담없이 머리에 잘 들어온다. 개인적으로는 내용도 좋지만 전달력이 가장 좋아서 6시간 20분의 강의를 겨우 2~3일만에 전부 들었던 것 같다. 테스트의 중요성해당 강의에서는 기존 레이어드 아키텍처에서 출발하여 클..

2025. 7. 18. 16:42
Languege/Java & Spring

[Spring] Java Validation은 어떻게 한글 메시지가 나올까? 배포 중 장애 발생

1. 개요Spring Boot 프로젝트에서 @NotBlank 등 Bean Validation 어노테이션을 사용할 때, 로컬 환경에서는 한글 에러 메시지가 잘 나오지만, 배포(예: Jenkins → AWS EC2) 환경에서는 갑자기 영어 메시지(must not be blank)가 출력되어 당황하신 경험이 있으실 겁니다. 이 글에서는왜 로컬과 배포 환경에서 메시지가 다르게 나오는지어떻게 한글 메시지를 항상 보장할 수 있는지를 차근차근 살펴보겠습니다. 2. 문제 상황 재현개발자 PC(macOS, OS 로케일 = ko_KR)AWS EC2 인스턴스(기본 OS 로케일 = en_US)코드에는 어노테이션에 메시지를 따로 지정하지 않음배포 파이프라인에서 테스트 코드에 오류 발생배포가 안되는 오류 발생로컬과 배포 환경에서..

2025. 7. 17. 19:20
Languege/Java & Spring

[Swagger] Spring, Spring Boot 호환되는 버전 정리

springdoc-openapi × Spring Boot 버전 불일치로 Swagger `/api-docs` 가 500을 뿜었던 기록최근 사내 AI 서빙 모놀리식을 Spring Boot 3.x 로 올리면서Swagger-UI(/swagger-ui), OpenAPI JSON(/api-docs) 가 500 Internal Server Error 를 내뿜는 대참사가 있었다.검색하면 흔히 나오는 “순환 참조”‧“Security 설정” 문제와는 달리, 이번엔 버전 호환성이 주범이었다. 1. 증상요청결과`GET /swagger-ui`UI는 뜨지만 “Failed to load API definition” 경고`GET /api-docs` (또는 `/v3/api-docs`)**500 Internal Server Error*..

2025. 7. 8. 19:52
Languege/Java & Spring

[Spring Transaction] TransactionManager 동작방식

🎈 개요Mybatis와 JPA를 같이 사용중인 프로젝트가 있는데 TransactionManager가 분리되어 설정JpaTransactionManager의 beanName이  'transactionManager'로 설정되어 있어 mainDB에서 사용하는 TransactionManager와 BeanName이 중복되어 'jpaTransactionManager'로 변경 이후 JpaRepository.save() 메소드에서 transactionManager를 찾지 못하는 오류 발생 🔎 문제 원인 No bean named 'transactionManager' available: No matching TransactionManager bean found for qualifier 'transactionManager..

2025. 1. 24. 20:26
Languege/Java & Spring

[Java] jdk 17 - toList의 함정

🎈 개요위 코드에서 단순히 Member를 만들고, List에 담아 stream을 통해 뭔가 처리 한 뒤에 toList로 다시 변환한다.변환된 List에 add를 하면 어떤 일이 발생할까?보기에는 큰 문제가 없어 보인다. 하지만 jdk 17에서 어떤식으로 변화했는지 유심히 살펴보지 않았다면  큰 문제로 이어진다.결론부터 보자면 아래와 같다. (java.lang.UnsupportedOperationException - UOE 발생!!!) ❓ 왜 이런걸까?stream 인터페이스의 toList() 메소드를 확인해보자. default로 선언된 toList()는 기본적으로 Collections.unmodifiableList 을 호출하는데 불변리스트를 호출하는 것 이다. 그럼 해당 메소드의 호출 부분을 더 보자여기..

2024. 11. 14. 18:02
Languege/Java & Spring

[String Constant Pool] Heap? PermGen? 오해와 진실

🎈 개요 기술 면접을 준비하고 보던 도중, 한 면접관님께서 이런 질문을 하셨습니다. Q.문자열을 String str = "hello"; 라고 선언하면 어떻게 되나요? A.JVM 메모리 내의 Heap 영역에 있는 String Constant Pool에 저장이 됩니다. Q.String Constant Pool이 Heap영역에 저장되는게 맞아요?? 저는 당연히 Heap 영역 내부에 저장되는거 아니야? 라고 생각했습니다.(블로그를 통해서 학습 하신분은 반은 맞다. 라고 생각하실 수 있을거 같아요, 보통 Heap안에 PermGen안에 String Constant Pool이 있다고 설명함) 정확히, JAVA 7까지는 Permgen에 저장되고 JAVA 8 이후부터는 NativeMemory 내부의 Metaspace에 ..

2024. 1. 7. 18:00
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »

공지사항

  • GitHub & WorkSpace

전체 카테고리

  • Development (144)
    • Languege (39)
      • Java & Spring (27)
      • C# & ASP.NET (5)
      • JavaScript (2)
      • Kotlin (5)
    • DB (0)
      • Oracle (0)
    • Study (72)
      • 네트워크 (3)
      • 이펙티브 자바 (41)
      • 우아한 테크 코스 (7)
      • Next Step (3)
      • Certificate (5)
      • Side Proejct (6)
    • Error (18)
      • 개발환경 (10)
      • 트러블슈팅 (6)
    • Algorithm (12)
    • 개발환경 (1)
    • 회고 (2)
애드센스 광고 영역
  • 최근 글
  • 최근 댓글

최근 글

최근댓글

태그

  • #effective java
  • #스프링부트
  • #kotlin
  • #클라우드
  • #GCP
  • #객체지향
  • #백엔드
  • #김영한
  • #TDD
  • #김영한 스프링
  • #이펙티브자바
  • #saa
  • #구글 클라우드
  • #후기
  • #spring
  • #트러블슈팅
  • #코틀린
  • #도메인 주도 개발
  • #BOJ
  • #파이썬
  • #Java
  • #백준
  • #개발자
  • #우테코
  • #제네릭
  • #스프링
  • #이펙티브 자바
  • #AWS
  • #spring boot
  • #자바
MORE

전체 방문자

오늘
어제
전체

블로그 인기글

Powered by Privatenote Copyright © 토마토의 개발일지 All rights reserved. TistoryWhaleSkin3.4

티스토리툴바