팬팬의 개발일지
close
프로필 배경
프로필 로고

팬팬의 개발일지

  • 분류 전체보기 (101)
    • 개발 일지 (68)
      • 알고리즘 문제풀이 (6)
      • Web FrontEnd (6)
      • Java (7)
      • Spring (5)
      • Server (17)
      • Infra (5)
      • Python (2)
      • JS (4)
      • ML (10)
      • Git (3)
      • Linux (2)
      • 자동화 (1)
    • 프로젝트 회고 (0)
    • 학습 (27)
      • Algorithm (11)
      • Operating System (0)
      • Computer Architecture (1)
      • Networking (8)
      • Database (7)
    • 일상 (5)
  • 홈
  • 태그
  • 방명록
@JsonNaming이 Query Parameter 또는 Form Data 요청에서 동작하지 않는 이유

@JsonNaming이 Query Parameter 또는 Form Data 요청에서 동작하지 않는 이유

Introduction현재 일부 API는 요청으로 들어오는 request data와 응답으로 반환되는 json의 네이밍 컨벤션으로 snake case를 채택하고 있다. 최근의 가장 대표적인 사례로는 oauth2 스펙을 준수한 API들의 지원이 있었는데, 이러한 snake case 변수명들이 Java 코드에까지 침투하도록 두고 싶지는 않았다.이를 해결하기 위해 지금까지는 jackson의 ObjectMapper의 직렬화/역직렬화 단계에서 카멜 케이스와 스네이크 케이스의 자동 변환을 수행할 수 있게 해주는 @JsonNaming 어노테이션을 이용해왔는데, 최근 유사한 이슈를 같은 방법으로 해결하려 했지만 동작하지 않았던 경험이 있어 이를 정리해보고자 한다.  @RequestBody의 Snake Case 매핑@G..

  • format_list_bulleted 카테고리 없음
  • · 2024. 4. 27.
  • textsms
당신의 컴퓨터의 now는 내 컴퓨터와 다를 수 있다 - timestamp precision

당신의 컴퓨터의 now는 내 컴퓨터와 다를 수 있다 - timestamp precision

개요 로컬에서 통과하던 테스트가 GitHub Action에서는 실패했다 제가 근무하는 팀에서는 GitHub에 PR을 생성하면 GitHub Action Trigger에 의해 모든 테스트 케이스를 문제 없이 통과하는지 검증하는 workflow가 실행됩니다. 저는 여느 때와 같이 로컬에서 모든 테스트 케이스가 All pass임을 확인하고, PR을 작성했습니다. 그런데, GitHub Action Runner(이하 runner)에서 수행된 테스트는 일부 테스트의 실패로 인해 workflow run fail 이라는 결과를 맞았습니다. runner 실행 환경에서 테스트가 실패하면 artifact로 test report를 업로드해 실패한 테스트를 확인할 수 있는데요. report를 확인해보니, 두 개의 LocalDat..

  • format_list_bulleted 개발 일지/Java
  • · 2024. 3. 31.
  • textsms
멀티스레딩을 통한 병렬 처리와 성능 최적화

멀티스레딩을 통한 병렬 처리와 성능 최적화

이 글은 유데미 강의 ‘Java 멀티스레딩, 병행성 및 성능 최적화 - 전문가 되기’ 의 쿠폰을 받아 수강하고 작성한 글입니다. 멀티스레딩? 하나의 프로세스는 하나 이상의 스레드를 가질 수 있다. 프로그램들은 때에 따라 단일 스레드로 동작하기도, 여러 스레드로 동작하기도 한다. 멀티스레딩이란, 말 그대로 하나의 프로세스가 여러 개의 스레드를 사용하도록 프로그램을 작성하는 프로그래밍 기법이다. 이번 글에서는 멀티스레딩에 대해 아래와 같은 점들을 살펴본다. 단일 스레드 프로그램의 단점 멀티스레딩의 이점 멀티스레딩을 도입할 때 유의할 점 단일 스레드와 멀티 스레드 프로세스를 카페, 스레드를 점원에 비유해 점원이 한 명인 카페와 여러 명인 카페의 운영 방식을 상상해보자. 점원이 한 명인 카페의 문제점 먼저 한 ..

  • format_list_bulleted 개발 일지/Java
  • · 2024. 1. 30.
  • textsms
서평 - 이펙티브 자바 3판

서평 - 이펙티브 자바 3판

이펙티브 자바란? 자바 개발자의 필독서라고 불리는 책. 자바의 기본 문법에 대해 다루기보다는 어떤 상황에서 어떤 방법으로 문제를 해결해나가면 좋을지에 대한 가이드를 해 주는 책이다. 그렇기 때문에 언어의 문법에 대해 다루는 책보다는 난이도가 있는 편으로, 나 역시 첫 번째 시도 때에는 초반부를 읽다가 어려워서 책을 덮고 현업에서 일한지 만 1년이 다 되어가는 이 시점에서야 1회독을 한 책이다. 또한, 책 구성도 그러하고 저자 역시 권장하듯 순서대로 읽지 않고 원하는 아이템을 먼저 읽어도 되며, 다회독을 하는 것도 좋아 보인다. 나 역시 1회독에는 순서대로 읽으며 카테고리별 팁을 얻는 데에 집중했고, 2회독부터는 미리 정리해둔 요약집을 기반으로 그때그때 필요한/흥미가 가는 내용들을 골라 읽을 예정이다. 이..

  • format_list_bulleted 개발 일지/Java
  • · 2023. 12. 3.
  • textsms
Java의 새로 출시된 LTS 버전 21, 변경점 모아보기!

Java의 새로 출시된 LTS 버전 21, 변경점 모아보기!

드디어 가상 스레드가 도입된 Java의 새 LTS 버전이 출시되었다. 이번 포스팅에서는 이 Java 21의 주요 변경점들을 정리해보았다. Java 21? 2021년 출시된 Java 17 이후 2년만에 출시된 Java의 4번째 LTS(Long Term Support) 버전 주요 변화는 다음과 같다. Sequenced Collections Virtual Thread Record, Switch 개선 1. Sequenced Collections 기존 컬렉션은 순서를 다루기 불편함 기존 컬렉션 프레임워크는 컬렉션 내 원소들에 순서가 존재할 때 사용되는 문법이 제각각이고, 일부는 가독성도 좋지 않았다. 예를 들어, List 인터페이스의 첫 번째와 마지막 원소 접근 코드는 아래와 같다. List wordList = ..

  • format_list_bulleted 개발 일지/Java
  • · 2023. 10. 14.
  • textsms

왜 Java의 정렬 함수 sort()는 static 메소드일까?

Introduction 최근에 Python으로 알고리즘 문제 풀이를 하다가, Java로 코딩 테스트를 준비할 일이 있었다. 준비를 위해 Java에서 주로 사용되는 알고리즘 문제 풀이 문법을 정리하다가 의문점이 생겼다. 왜 자바는 정렬을 array.sort()가 아닌 Array.sort(array)로 지원하는 걸까? 내장 함수 vs 스태틱 함수 보통 Python 등의 언어에서는 정렬 등의 동작이 객체 내부 함수를 통해 이루어진다. list = [3, 1, 4, 5, 2] list.sort() print(list) # [1, 2, 3, 4, 5] 그러나 Java에서는 배열/리스트를 다루는 클래스에서 static 함수로 정렬 기능을 제공한다. import java.util.Arrays; public class..

  • format_list_bulleted 개발 일지/Java
  • · 2022. 10. 6.
  • textsms
  • navigate_before
  • 1
  • 2
  • navigate_next
공지사항
  • 2020.07.13 개인 개발 블로그 시작
전체 카테고리
  • 분류 전체보기 (101)
    • 개발 일지 (68)
      • 알고리즘 문제풀이 (6)
      • Web FrontEnd (6)
      • Java (7)
      • Spring (5)
      • Server (17)
      • Infra (5)
      • Python (2)
      • JS (4)
      • ML (10)
      • Git (3)
      • Linux (2)
      • 자동화 (1)
    • 프로젝트 회고 (0)
    • 학습 (27)
      • Algorithm (11)
      • Operating System (0)
      • Computer Architecture (1)
      • Networking (8)
      • Database (7)
    • 일상 (5)
최근 글
인기 글
최근 댓글
태그
  • #Node
  • #dl
  • #networking
  • #Database
  • #spring
  • #tensorflow
  • #Python
  • #algorithm
  • #ML
  • #java
전체 방문자
오늘
어제
전체
Copyright © 팬팬의 개발 일지 All rights reserved.
Designed by JJuum

티스토리툴바