팬팬의 개발일지
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)
  • 홈
  • 태그
  • 방명록
주니어 백엔드 개발자의 2023년 회고 (Feat. 육각형 개발자)

주니어 백엔드 개발자의 2023년 회고 (Feat. 육각형 개발자)

좋은 주니어 되기 2022년 12월, 처음 백엔드 개발자라는 타이틀을 달고 시작한 개발자로서의 커리어. 앞으로 근 3년은 단 한가지의 목표, 좋은 주니어 개발자 되기에 집중하며 살기로 결심했었다. 하지만 ‘좋은’ 이라는 수식어는 참 모호하고 추상적이다. 나는 좋은 개발자가 되고 싶었지만 누군가 내게 “좋은 개발자는 어떤 개발자라고 생각하세요?” 라는 질문을 던진다면 멋지게 대답할 자신은 없었다. 그러던 중 최근에 ‘육각형 개발자’라는 책을 추천받아 읽게 되었다. 책 내용에 공감되는 점도 많고, ‘좋은 시니어가 되기 위한 좋은 주니어의 자세’의 정의에 대해 대다수가 납득할 만한 기준에 맞게 정의내리고 있다는 느낌을 받았다. 그래서 현업 개발자가 되고 처음으로 진행해보는 이번 회고에서는 이 책에서 소개하는 ..

  • format_list_bulleted 일상
  • · 2023. 12. 23.
  • 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

동적 쿼리로 조건 검색 기능 구현하기 (Spring Boot 3, Querydsl)

Introduction 저는 현재 주문제작 케이크 업체 탐색 서비스 “당도”의 백엔드 개발을 담당하고 있습니다. 당도에서는 사용자들이 원하는 업체를 빠르고 효율적으로 찾아낼 수 있도록 업체 검색 시 다양한 필터를 제공하고 있는데요. 제공되는 필터의 종류는 다음과 같습니다. 업체가 만드는 케이크의 카테고리 (꽃, 캐릭터, 레터링 등) 업체가 판매하는 메뉴의 최소/최대가 업체가 제공하는 외부 서비스 링크의 종류 (카카오톡 채널, 인스타그램 등) 케이크 수령 방식 (배송, 픽업) 업체 검색 API는 이러한 조건들을 모두 고려하여 제공할 데이터를 구성하게 되는데요. 이러한 조건을 적용한 쿼리는 Spring Data JPA의 Query Method 방식으로 생성하기에는 너무 많은 조건을 가지고 있었습니다. 그렇다..

  • format_list_bulleted 개발 일지/Spring
  • · 2023. 4. 29.
  • textsms
TIL 자동화 도전기 🤓

TIL 자동화 도전기 🤓

Introduction 나는 2021년 12월 무렵부터 TIL(Today I Learned) 이라는 Github Repository를 관리하고 있다. 기술 블로그를 따로 운영함에도, 학습 내용을 TIL에 정리하게 된 이유는 다음과 같다. 블로그에는 잘 정리된 포스팅 형태로 글을 게시하고 싶었기 때문에, 정말 날 것 그대로의 학습 내용을 저장할 장소가 필요했다. 마크다운 문서를 예쁘게 보여줬으면 좋겠으므로, 먼저 Notion을 이용해 학습 정리를 하게 되었다. 그러나 Notion은 학습 내용을 여러 사람에게 공유하기 어려워(단순히 문서를 Public으로 설정하는 것은 접근성이 떨어질 것 같아) Github Public Repository를 별도로 운영하게 되었다. Problem 그러나 개인적으로 생각하는 ..

  • format_list_bulleted 개발 일지/자동화
  • · 2023. 4. 9.
  • textsms

Browser Caching (브라우저 캐싱)

필요한 HTTP Header 브라우저 캐싱을 도입하기 위해서는 아래의 헤더들이 설정되어야 한다. Cache-Control 브라우저의 캐싱 방법을 정하기 위해 서버/클라이언트가 사용하는 HTTP Header 캐시의 저장 여부, 유효 시간 등을 지정할 수 있음 자주 사용하는 디렉티브(directive) 목록 public/private: public은 이 리소스를 받는 모든 주체가 캐싱을 하도록 하고, private는 오직 end-user(마지막 수신자)만이 캐싱을 하도록 함 must-revalidate: 반드시 재검증을 거쳐 캐시된 리소스를 사용하도록 함 max-age=: 캐시가 유효하다고(최신 상태라고) 판단할 최대 시간 E-Tag 리소스를 식별하는 식별자 역할을 하는 HTTP Header response..

  • format_list_bulleted 개발 일지/Server
  • · 2023. 3. 30.
  • textsms

사용자의 정보 관리, Session vs Token?

서버가 클라이언트를 식별하는 방법 HTTP는 기본적으로 stateless다. HTTP 요청에 포함되는 정보들은 현재 요청을 처리하기 위한 정보들만을 제공할 뿐, 그 이전 또는 이후의 요청에 대한 정보는 제공하지 않는다. 그러나 이러한 정보만으로는 적절한 응답을 내려주기 어려운 요청들이 있다. 대표적인 예시로 사용자의 인증(로그인된 사용자인가?) 여부에 따라 허용을 달리하는 API로의 요청이 있다. 이러한 API를 호출하기 위해, 통상적으로 두 가지 방법이 사용된다. 하나는 서버가 부가적인 정보를 소유하는 세션 방법이고, 다른 하나는 클라이언트가 부가적인 정보를 소유하는 토큰 방법이다. 두 가지 모두 활발하게 사용되고 있고, 나름의 장단점을 가진다. 본 글에서는 두 가지의 특징을 분석하고 어떤 상황에서 어..

  • format_list_bulleted 개발 일지/Server
  • · 2023. 1. 8.
  • textsms

[Database] 트랜잭션 격리 수준(Transaction Isolation Level)

이 글은 최범균 님의 유튜브 “프로그래밍 초식 : DB 트랜잭션 조금 이해하기 02 격리”를 시청하고 작성되었습니다. 같은 데이터에 동시 접근? 동시성은 초심자가 놓치기 쉬운 문제를 발생시킴 ex) 당직 담당자를 최소 1명은 유지해야 한다. 2명의 담당자 A, B가 존재한다. A가 담당자 수를 SELECT ⇒ 결과: 2 B가 담당자 수를 SELECT ⇒ 결과: 2 A는 자신이 빠져도 최소 1명을 만족하므로 자신을 당직에서 제거하도록 UPDATE B가 자신이 빠져도 최소 1명을 만족하므로 자신을 당직에서 제거하도록 UPDATE 결과적으로 남은 당직자는 0명. 최소 1명을 유지해야 한다는 비즈니스 로직 위반 왜? A와 B가 동시에 같은 데이터(당직자 수)에 접근했기 때문 따라서 트랜잭션을 격리하여 이러한 동..

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

티스토리툴바