팬팬의 개발일지
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)
  • 홈
  • 태그
  • 방명록
Spring Data JPA를 쓸 때 주의할 점

Spring Data JPA를 쓸 때 주의할 점

Spring Data JPA란?Spring Data JPA란, JPA 기반의 데이터 접근 계층을 쉽게 구현하도록 돕는 프레임워크이다. Spring Data JPA는 단순히 JPA 스펙을 이용할 때 직접 엔티티 매니저를 획득하고 쿼리를 작성 및 실행하는 등의 로직을 반복 구현해주어야 하던 귀찮음을 대폭 감소시켜주었다.그러나 Spring Data JPA가 가져다주는 편리함의 이면에는 수많은 추상화가 숨어 있다. 이들은 반복 로직을 생략하여 코드를 간소화하는 것을 돕지만, 제대로 된 이해 없이 사용하면 의도하지 않은 동작을 야기할 수 있다.이번 글에서는 Spring Data JPA를 사용할 때 발생할 수 있는 4가지의 Side-Effect를 살펴보고 이들을 예방하기 위해 알아야 할 지식들에 대해 정리해보고자 ..

  • format_list_bulleted 개발 일지/Spring
  • · 2024. 10. 9.
  • textsms
글또 9기를 마치며 돌아보니 글쓰기가 더 좋아진 개발자 이야기

글또 9기를 마치며 돌아보니 글쓰기가 더 좋아진 개발자 이야기

이 글의 제목은 글또를 시작할 때 올렸던 글 '그럼에도 불구하고 여전히 글쓰기가 좋은 개발자 이야기'와 수미상관 구조를 이루기 위해 열심히 고민해보았다. 약 반 년 동안 글쓰기 커뮤니티 ‘글또’의 9기 일원으로 활동해왔다. 지금까지 참여해온 대부분의 IT 커뮤니티에서는 기술적인 성장을 목표로 두고 있었고, 활동을 마무리 할 때 쯤에는 기술적 성장, 함께 즐거웠고 고생했던 좋은 동료들을 얻으며 마무리했었다.그러나 글또에서는 조금 다른 가치들을 얻었는데, 오늘은 이 부분에 대해 크게 어떤 점이 좋았고, 어떤 점이 아쉬웠는지, 다음 기수에서는 어떤 점을 보완하고 싶은지에 대한 회고 내용을 적어보고자 한다.  글또에 참여하게 된 계기나는 평소에도 이런저런 글 쓰는 일을 좋아했다. 개발자로 진로를 정하게 된 대학..

  • format_list_bulleted 일상
  • · 2024. 5. 6.
  • textsms
@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
Long-Running 작업을 다루기 위한 지침들

Long-Running 작업을 다루기 위한 지침들

Long-Running 작업이란? Long-Running 작업이란, 클라이언트에게 리소스를 제공하기 위해 아주 긴 시간을 요구하는 작업을 말합니다. 고비용 연산을 요구하는 AI 기반 서비스들이 늘어나는 최근에는 이러한 Long-Running 작업의 사례를 주변에서 쉽게 찾아볼 수 있죠. 대표적인 사례로, chat GPT의 이미지 생성 기능인 'Dall-E'가 있습니다. 이러한 Long-Running 작업을 사용자에게 제공하기 위해서는 많은 요소를 고려해야 하는데요. 오랜 시간을 요구하는 작업인 만큼 자칫하면 서버에 부하를 가져올 수 있고, 그로 인해 사용자가 서비스를 제공받기 위해 너무 오랜 시간을 기다리게 만들 수도 있기 때문입니다. 이번 글에서는 제가 Long-Running 작업을 포함한 API를 효..

  • format_list_bulleted 개발 일지/Server
  • · 2024. 4. 14.
  • 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
도커 기초, 가볍게 톺아보기 (Feat. Udemy)

도커 기초, 가볍게 톺아보기 (Feat. Udemy)

이 글은 유데미 강의 ‘Docker & Kubernetes : 실전 가이드’의 쿠폰을 제공받아 수강하고 작성된 글입니다. 개요 개발을 해오면서 도커라는 도구를 아주 유용하게 쓰고 있다. 도커는 공식 문서와 참고 자료들이 아주 잘 정리되어 있고, 이들을 따라하는 것만으로도 쉽게 컨테이너를 생성해 운영할 수 있다. 하지만 그만큼 도커의 목적, 동작 원리 등에 대한 이해도를 갖추는 것에 소홀해지기 쉬운 것 같다고 느껴, 좋은 강의를 제공받은 김에 본 글에서는 도커의 동작 원리와 도커가 등장한 목적에 대해 살펴보고자 한다. 도커 도커란? 도커란, 컨테이너를 생성하고 관리하기 위한 도구다. 도커를 접해봤거나 사용해본 사람이라면 위와 같은 도커의 정의와 컨테이너란 단어가 익숙할 것이다. 하지만 여기서 의미하는 컨테..

  • format_list_bulleted 개발 일지/Server
  • · 2024. 3. 17.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • ···
  • 17
  • 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)
최근 글
인기 글
최근 댓글
태그
  • #spring
  • #java
  • #ML
  • #dl
  • #networking
  • #Node
  • #Database
  • #tensorflow
  • #algorithm
  • #Python
전체 방문자
오늘
어제
전체
Copyright © 팬팬의 개발 일지 All rights reserved.
Designed by JJuum

티스토리툴바