• 티스토리 홈
  • 프로필사진
    아몬드맛빼빼로
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
  • 반응형
아몬드맛빼빼로
  • 프로필사진
    아몬드맛빼빼로
    • 분류 전체보기 (70)
      • Java (13)
      • C (3)
      • Spring (8)
      • Kotlin (2)
      • 회고 (7)
      • Backend (19)
      • 기타 (9)
      • DevOps (4)
      • Network (3)
      • CS (2)
  • 방문자 수
    • 전체:
      1,656
    • 오늘:
      0
    • 어제:
      0
# Home
# 공지사항
#
# 태그
# 검색결과
# 방명록
  • 포스트글 썸네일 이미지
    [Java] Java Platform Module System
    아몬드맛빼빼로:
    JPMSJPMS(Java Platform Module System)는 Java 9부터 도입되어 Java 애플리케이션의 구조화를 개선하기 위해 만들어진 시스템이다. 기존에도 Gradle과 같은 빌드 도구를 이용해 멀티 모듈을 사용할 수 있었지만 JPMS를 사용하여 빌드 도구 없이도 모듈을 분리할 수 있게 되었고 이를 통하여 패키지(Package) 기반 관리의 한계를 뛰어넘을 수 있게 되었다.패키지의 한계?패키지를 사용하여 클래스/인터페이스 등을 논리적으로 분할하고 그룹화할 수 있는데 이를 통하여 패키지 단위로 컴파일할 수도 있었고 배포될 수도 있었다. 그러나 Java 애플리케이션의 규모가 커지면서 여러 문제가 가시화되었는데 예를 들어 클래스는 접근 지정자(public, private, protected 등..
    • 0
    • 2026-03-17 11:32:25
  • 포스트글 썸네일 이미지
    [Java] GC 알고리즘?
    아몬드맛빼빼로:
    GC, 즉 가비지 컬렉터(Garbage Collector)는 이제 사용되지 않는 포인터와 같은 메모리 상의 쓰레기를 제거하는 역할을 한다. 이를 통하여 프로덕션의 지속적인 안정성을 확보하고 개발자가 메모리 관리에 신경 쓰지 않아도 되게 만들어 주는 고마운 존재다. Java에선 이런 GC가 아주 오랜 시간 동안 다양한 변화를 거치며 발전해 왔는데 이것을 간단히 정리해 볼 것이다.Serial GCJava에 처음 도입된 GC로 아주 간단하게 동작하는 형태이다. 단일 쓰레드로 동작하며 Stop-The-World가 가장 길다.더보기Stop-The-World?GC가 메모리 정리를 위해 애플리케이션이 잠시 멈추는 시간을 의미한다.Parallel GCJava 5 ~ 8 기간 동안 기본 GC였으며 이전과는 다르게 You..
    • 0
    • 2026-03-16 12:29:17
  • 포스트글 썸네일 이미지
    [Backend] 1:1 연관관계에서 JPA 지연 로딩
    아몬드맛빼빼로:
    @OneToOneJPA에는 1:1 연관관계를 표현하기 위해 @OneToOne 어노테이션을 활용할 수 있다. 이때 연결된 엔티티를 언제 조회할지 결정하는 적재 전략을 설정할 수 있는데 EAGER, LAZY 중에 설정할 수 있다. EAGER는 연결된 엔티티를 쿼리 즉시 JOIN으로 가져오는 것이고 LAZY는 연결된 엔티티를 실제로 해당 엔티티가 조회될 때 가져오는 것이다. 항상 연결된 엔티티가 조회되는 게 아니라 잘 조회되지 않는다면 단순히 FK로 이어져 있다는 이유로 적재하지 않도록 하는 것이 성능상 유리하게 LAZY 전략을 사용할 때가 있는데 1:1 연관관계에서는 유의할 점이 있다.양방향 연관관계실제 데이터베이스에서와 JPA를 이용한 코드상의 클래스에서 차이 때문에 발생하는 문제가 있다. 예를 들어 이런..
    • 0
    • 2026-02-24 22:14:32
  • 포스트글 썸네일 이미지
    [Backend] 캐시 스탬피드
    아몬드맛빼빼로:
    상황 가정대규모 트래픽 상황에서 분산 환경을 관리하는데 캐싱 전략으로 캐시 미스 시 적재 전략(Cache Aside)을 사용한다고 먼저 가정한다. 이때 동시에 수많은 요청이 캐시 미스를 확인하고 캐시를 적재하여 중복으로 쓰기가 발생하는 현상을 캐시 스탬피드(Cache Stampede) 또는 Thundering Herd 현상이라고 한다. 캐시 스탬피드 현상은 DB와 캐시의 성능에 영향을 줄 수 있기에 사전에 방지해야 한다.해결 방법?먼저 락(Lock)을 걸어 해결할 수 있다. 요청 처리 쓰레드가 해당 캐시 키에 대한 잠금을 획득하면 다른 쓰레드들은 잠시 대기한다. 잠금을 획득한 쓰레드는 사용자 요청에 응답하는 과정 동안 캐시 적재 작업을 비동기 쓰레드로 처리할 수 있으며 락을 사용하기 때문에 성능 저하 가..
    • 0
    • 2026-01-22 23:54:37
  • 포스트글 썸네일 이미지
    [Backend] 일급 컬렉션
    아몬드맛빼빼로:
    이게 뭐야일급 컬렉션(First-Class Collection)은 하나의 컬렉션을 감싸는 클래스를 만든 후에 그 클래스에서 컬렉션과 관련된 비즈니스 로직을 관리하는 패턴을 의미한다. import java.util.Collections;import java.util.List;public class Inventory { private static final int MAX_CAPACITY = 20; private final List items; public Inventory(List items) { validate(items); this.items = List.copyOf(items); } private void validate(List items) { ..
    • 0
    • 2026-01-21 15:08:46
  • 포스트글 썸네일 이미지
    [회고] SDK 만들기
    아몬드맛빼빼로:
    querydsl-mysql-json-query-support QueryDSL에서 MySQL JSON 쿼리를 쉽게 지원하기 위한 라이브러리 👉 GitHub 저장소 열기 ">querydsl-mysql-json-query-supportQueryDSL에서 MySQL JSON 쿼리를 쉽게 지원하기 위한 라이브러리 👉 GitHub 저장소 열기 querydsl-mysql-json-core Maven Central에서 제공하는 querydsl-mysql-json-support 코어 라이브러리 🔗 mvnrepository.com에서 보기 ">querydsl-mysql-json-coreMaven Central에서 제공하는 querydsl-mysql-json-support 코어 ..
    • 0
    • 2026-01-20 17:43:01
  • 포스트글 썸네일 이미지
    [기타] 미친 AI 사용법(돈 없는 학생을 위한)
    아몬드맛빼빼로:
    대 AI 시대정말 모든 것을 AI로 한다. 2025년 9월~10월 기준 ChatGPT 서비스의 월간 활성 사용자(MAU)는 8억 명을 돌파하였다. 기존에 개발자들을 위한 모델과 서비스를 주로 하던 Anthropic 사도 얼마전 Cowork라는 비개발자용 에이전틱 서비스를 공개하였고 후발주자였던 Gemini와 Grok도 이미지/비디오 생성이나 폭넓은 지식 베이스라는 각자의 확실한 장점을 부각하고 있으며 Meta에선 생성형 AI는 아니지만 특화 AI인 SAM3 등을 개발하고 있다. 하루가 멀다 하고 새로운 기술이 나오고 사용법을 학습해야 한다. 이런 상황에서 내가 AI를 활용해 개발자로서 '미친' 생산성을 달성했던 방법을 공유하고자 한다. 글 제목에도 언급되었듯이 이건 나같은 '돈 없는 학생을 위한' 한 가..
    • 0
    • 2026-01-19 22:08:39
  • 포스트글 썸네일 이미지
    [Backend] Transactional Outbox Pattern
    아몬드맛빼빼로:
    Transactional Outbox Pattern트랜젝셔널 아웃박스 패턴(Transactional Outbox Pattern)이란 분산 시스템에서 트랜젝션과 이벤트 발행이 원자적으로 진행되지 않아 발생하는 문제를 해결하기 위한 디자인 패턴이다. 예를 하나 들어보자, @Service@RequiredArgsConstructorpublic class OrderService { private final OrderRepository orderRepository; private final KafkaTemplate kafkaTemplate; @Transactional public void createOrder(OrderRequest request) { Order order = re..
    • 0
    • 2026-01-19 19:52:14
조회된 결과가 없습니다.
[1][2][3][4][···][9]
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
목차
표시할 목차가 없습니다.
    • 안녕하세요
    • 감사해요
    • 잘있어요

    티스토리툴바