Home
Youngho's Devlog
Cancel

[Apache Tiles] Apache Tiles

Apache Tiles란? 중복된 코드를 제거하기 위한 Apache에서 제공하는 오픈소스 자바 어플리케이션을 위한 무료 오픈 소스 templating framework MVC구조와 함께 할 수 있는 쉽고 가장 우아한 복잡한 웹사이트를 위한 방법 runtime시에 page조각들을 구성해서 하나의 완성된 페이지를 내게됨 전체 appli...

[Network] HTTP와 HTTPS의 차이

HTTP와 HTTPS의 차이 HTTP(Hyper Text Transfer Protocol) HTTP의 개요 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다. 즉, HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용한다. HTTP의 구조 ...

[MSA] Spring Cloud 개요

Spring Cloud란? 마이크로서비스의 개발, 배포, 운영에 필요한 아키텍처를 쉽게 구성할 수 있도록 지원하는 Spring Boot기반의 프레임워크 즉, MSA구성을 지원하는 Springboot기반의 프레임워크이다. Spring Cloud의 핵심 Component Spring cloud 컴포넌트 메뉴얼 Spring cloud는...

Kafka 컨슈머 Lag

카프카 컨슈머 Lag이란? 운영함에 있어 아주 중요한 모니터링 지표 중 하나 만약 프로듀서가 데이터를 넣는 속도보다 컨슈머가 가져가는 속도보다 빠르게 된다면? 프로듀서가 넣은 데이터의 오프셋, 컨슈머가 가져간 데이터의 오프셋간의 차이가 발생함, 이를 lag이라함 이 lag의 숫자를 통해 현재 해당 토픽에 대한 ...

[JPA] Spring Data JPA 개요

Spring Data JPA JPA를 사용해서 관계형 DB와 쉽게 연동하기 위한 Spring에서 제공하는 Spring ORM Module중 하나 Spring에서 CRUD 구현체를 제공 이를 통해 boiler-pate DAO코드를 최소화 entity type과 primary key의 정보만 넣어주면 자동으로 dao...

[JPA] QueryDSL

※ 실습 프로젝트는 Github에서 확인 할 수 있습니다. QueryDSL이란? Querydsl 정적 타입을 이용해서 SQL과 같은 쿼리를 생성할 수 있도록 해 주는 프레임워크다. 문자열로 작성하거나 XML 파일에 쿼리를 작성하는 대신, Querydsl이 제공하는 플루언트(Fluent) API를 이용해서 쿼리를 생성할 수 있다. QueryDSL를 ...

[JPA] JPA N+1 문제

N+1문제 JPA를 사용하면 자주 직면하게 되는 문제이다. 예를 들어, 아래와 같은 연관 관계를 가진 Entity가 있다고 가정해보자 구체적인 코드는 아래와 같고 ORM은 spring-data-jpa를 사용한다. Academy.java package com.example.domain...

[JPA] MultipleBagFetchException

MultipleBagFetchException JPA의 N+1문제에 대한 해결책으로 Fetch Join을 사용하다보면 자주 만나는 문제가 있다. 바로 MultipleBagFetchException이다. 이 문제는 2개 이상의 OneToMany 자식 테이블에 Fetch Join을 선언햇을때 발생한다. OneToOne, Man...

[JPA] JPA 양방향 Entity 무한재귀 문제

JPA 양방향 Entity 무한재귀 문제 @JsonIgnoreProperties 어노테이션으로 무시할 속성 지정 출처 https://thxwelchs.github.io/JPA%20%EC%96%91%EB%B0%A9%ED%96%A5%20Entity%20%EB%AC%B4%ED%95%9C%20%EC%9E%AC%EA%B7%80%20%EB%AC%B...

[JPA] JPA vs Hibernate

JPA vs Hibernate JPA(Java Persistence API): 구현물이 없는 인터페이스 Hibernate: JPA의 구현체 JPA만 가지고는 프로그래밍할 순 없고 Hibernate, EclipseLink, DataNucleus와 같은 구현체를 가지고 사용해야한다. SessionFactory(Hiber...