토마토의 개발일지
  • 홈
  • 태그
  • 방명록
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 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)
  • 홈
  • 태그
  • 방명록
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
Study/Certificate

[AWS] AWS Solution Architect Associate(SAA-C03) 시작

❓Why개인적인 시간에 공부를 하려고 항상 계획을 먼저 세워두는 편인데, 이번에 SAA를 하게 된 계기는 판교 퇴근길 밋업 - 가을특집 with 개발바닥에서 시작됐다.질의응답 시간에서 한 질문자 분이 본인은 백엔드 개발자를 하고 싶은데 시스템(devops)를 다뤄서 고민이라는 주제였다. 이직을 해야할지 지금 하는것도 즐겁지만 백엔드 개발을 하고 싶은 분 이였고 향로님과 호돌맨님 두분 다 동일하게 비슷한 맥락으로 얘기하셨다. 이런저런 좋은 얘기도 더 해주셨지만 결국 시니어로 가고싶으면 어차피 거쳐가야 하는 일이며 시스템을 보지 못하고 단순하게 코드만보면서 고치는 사람과 시스템도 같이 볼 줄 아는 사람의 격차는 크다. 라는 얘기를 듣고 내가 면접에서도 몇번이나 미끄러졌다고 생각하는 약점인 인프라와 클라우드에..

2024. 10. 10. 19:05
Study/이펙티브 자바

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

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

2024. 5. 20. 21:11
Study/이펙티브 자바

[Effective Java] 공개된 API 요소에는 항상 문서화 주석을 작성하라

💥 개요 API를 작성함에 있어서 잘 작성된 문서는 중요하다. 공식 언어 명세에는 없지만 자바 프로그래머라면 알아야하는 업계 표준 API라 할 수 있다. 자바에서는 이 귀찮은 작업을 자바독이라는 유틸리티가 도와준다. https://www.oracle.com/technical-resources/articles/java/javadoc-tool.html How to Write Doc Comments for the Javadoc Tool Javadoc Home Page This document describes the style guide, tag and image conventions we use in documentation comments for Java programs written at Java Sof..

2024. 3. 18. 21:34
  • «
  • 1
  • 2
  • 3
  • »

공지사항

  • 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)
애드센스 광고 영역
  • 최근 글
  • 최근 댓글

최근 글

최근댓글

태그

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

전체 방문자

오늘
어제
전체

블로그 인기글

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

티스토리툴바