토마토의 개발일지
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 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
Error/트러블슈팅

[JAVA] ENUM에 setter를 쓰면 생기는 일 (feat. 싱글턴)

⚠️운영 환경에서 Java enum의 상태 변경으로 인한 문제 발생Java에서 enum을 사용하여 미리 메시지를 설정해두고, 해당 메시지가 동적으로 변경되는 로직이 있었다. 그러나 운영 환경에서 간헐적으로 이상한 메시지가 내려가는 문제가 발생하였다. 👌문제찾기Issue에 사용자가 이상한 오류 메시지를 받는 문제가 있었다.간헐적으로 비정상적인 Validation 오류 메시지가 사용자에게 반환되었다. ex) 비밀번호를 입력해주세요 -> 잘못된 아이디 입니다처음에는 해당 메시지가 어디서 오는지 찾고 있었지만, 외부 API에서도 코드에서도 해당 메시지를 발견할 수 없었다. 하지만 DB에 특정 오류 상황에 해당 메시지가 저장되는걸 발견했지만, 해당 API에서 메시지가 변경되는걸 확인할 수 없었다.그렇다면 원인은..

2024. 12. 10. 20:16
회고

[TOSS NEXT 2024]실패에도 굴하지 않고 토스 최종 면접까지 두달간의 여정

😂떨어졌지만 괜찮아9월 23일부터 11월 25일까지 2024 토스 NEXT 개발자 챌린지가 끝났다. 두달간 엄청나게 힘들고 지치고 포기하고 싶은 순간들이 많았는데 아쉽지만 최종 면접에서 불합격했다. 그렇지만 확실하게 레벨업을 하는 순간들이 있었기에 이 경험을 잊지 않기위해 글로 적어두려 한다.자세한 내용은 NDA로 인해 말하지 못하지만, 과정을 정리했다.https://toss.im/career/next-developer-2024 [Step 1. 온라인 코딩테스트]10/5(토) 오후 2시에 코딩 테스트가 진행되었다. 문제 내용에 대해서 말할수는 없지만, 무작정 높은 난이도의 알고리즘 문제보다  개발에 대해 생각하고 고민한 사람을 원한다는게 느껴졌다. 평소에 기업의 기술 블로그를 보는게 도움이 되었다. 1..

2024. 11. 27. 20:13
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
Error/개발환경

[ElasticSearch] Spring data elasticSearch 인증 관련 오류 해결

개요엘라스틱 서치 환경을 구축하고, Spring Data Elasticsearch를 연결하는데 문제가 발생하였다.그 이유는 바로 로컬에서 테스트 할 때 와는 다르게 실서버에서는 인증(https, 인증서, Authorization)이 필요했다.하지만 해당 객체를 통해 해결할 수 있다는 기본적인 설정이 있었지만 https와 cert 인증서를 포함하여 Authorization을 모두 포함하는 코드는 찾아볼 수 없었다. 결국 하나씩 디버깅을 해가며 원인 분석을 한 내용을 공유하고자 한다.추가로 Spring data Elasticsearch는 처음 bean이 컨테이너에 생성되면서 handshake를 하게 되는데 이때 elasticsearch의 health를 하게 되는데 네트워크 in/out bound도 확인해야 ..

2024. 9. 6. 18:55
Study/이펙티브 자바

[Effective Java] 스레드 안전성 수준을 문서화하라

💥 개요한 메서드를 여러 스레드가 동시에 호출할 때 그 메서드가 어떻게 동작하느냐는 해당 클래스와 이를 사용하는 클라이언트 사이의 중요한 계약과 같다. 아무 언급도 없으면 가정을 해야하고, 그 가정이 틀리면 동기화를 충분히 못하거나 지나치게한 상태일 것이며, 두 가지 심각한 오류로 이어질 수 있다. ⚠️ 자바독 기본 옵션 생성 API 문서는 synchronized가 포함되지 않는다.메서드 선언에 synchronized 한정자를 선언할지는 구현 이슈일 뿐 API에 속하지 않는다.멀티 스레드 환경에서도 API를 안전하게 사용하게 하려면 클래스가 지원하는 스레드 안전성 수준을 정확히 명시해야 한다. 일반적인 경우 스레드 안전성이 높은 순서는 아래와 같다.불변(immutable) : 이 클래스의 인스턴스는 마..

2024. 5. 20. 21:11
  • «
  • 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)
애드센스 광고 영역
  • 최근 글
  • 최근 댓글

최근 글

최근댓글

태그

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

전체 방문자

오늘
어제
전체

블로그 인기글

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

티스토리툴바