본문 바로가기

Framework12

[Gradle] Jib Build 에 대해서 알아보자 Gradle Jib Build를 활용한 Image Build를 Jenkins를 활용해서 사용하고 있다. Jib을 활용한 Image Build가 갖는 장점과 속도점 이점에 대해서 한번도 확인해 본 적이 없어서 이번 기회해 한번 정리하면서 확인해 보았다. Jib 이란? Jib은 Docker 데몬 없이 Java 애플리케이션을 컨테이너화하여 Docker Hub, Google Container Registry 등 원하는 레지스트리로 직접 푸시할 수 있는 Gradle 및 Maven 플러그인. 애플리케이션을 빌드함과 동시에 컨테이너 이미지를 생성하고 푸시까지 할 수 있게 하여, 빌드와 Dockerfile 작성 과정을 단일화하는 파이프라인을 제공. 간략하게 미리 보는 Jib 의 주요 장점 1. 간편함(Simple an.. 2024. 3. 31.
[JPA] JPA 상속 관계 매핑 전략 : 조인, 단일 테이블, 구현 클래스별 테이블 비교 및 주요 어노테이션 사용법 JPA 상속 관계 매핑 전략과 주요 어노테이션에 대해 알아보고, 조인 전략, 단일 테이블 전략, 구현 클래스별 테이블 전략을 비교하여 각각의 장단점을 설명확인해 보도록 합니다. 더 자세한 정보는 https://www.inflearn.com/course/ORM-JPA-Basic 김영한님 강의나 http://www.yes24.com/Product/Goods/19040233 책을 확인하시는 것이 좋습니다. 상속 관계 매핑 관계형 데이터베이스는 상속 관계가 없다. 관계형 디비 슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사 상속관계 매핑 : 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑 왼쪽 논리모델 공통적인 속성 공통적인 데이터는 물품으로 두고 각각 음반 영화 책으로 서브타입으로 두는 .. 2023. 4. 15.
[JPA] JPA 연관관계 매핑 - 단방향, 양방향, 주인 설정 및 mappedBy 속성 활용하기 JPA에서 연관관계 매핑의 중요 개념들, 단방향 및 양방향 연관관계, 양방향 연관관계에서의 주인 설정, mappedBy 속성, 객체 지향과 관계형 디비 두 가지 다른 패러다임 간에 오는 차이점등을 살펴봅니다. 그리고 그를 통해서 JPA를 사용한 객체 관계 매핑에 대해 효율적으로 접근해보도록 하겠습니다. 연관관계가 필요한 이유 ‘객체지향 설계의 목표는 자율적인 객체들의 협력 공동체를 만드는 것이다.’ 조영호(객체지향의 사실과 오해) teamId → 외래키를 그대로 가져와버림 Team team = new Team(); team.setName("TeamA"); em.persist(team); Member member = new Member(); member.setUsername("memeber1"); memb.. 2023. 4. 3.
[Spring] SpringWebFlux에서의 효과적 Error처리와 백프레셔(BackPressure) Reactive Programming에서 백프레셔(Backpressure) 처리 전략을 이해하고, Spring WebFlux를 활용하여 구현하는 방법을 알아보도록 합니다. Project Reactor의 예제 코드를 활용하여 Publisher 와 Consumer 측에서의 백프레셔(Backpressure) 전략을 확인해 봅니다. traditional try-catch traditional 한 명령형 프로그래밍에서 오류 처리는 일반적으로 try-catch 블록을 통해 처리됩니다. try { // 예외를 발생시킬 수 있는 작업 수행 int result = performOperation(); System.out.println("Result: " + result); } catch (ArithmeticExceptio.. 2023. 4. 1.
[Spring] Tomcat VS Netty Connector - NIO(non-blocking I/O) or BIO(Blocking I/O) Tomcat과 Netty의 차이점을 클라이언트의 요청과 응답을 처리하는 Server Connect의 측면에서 우선 적으로 살펴보도록 하겠습니다. BIO (Blocking I/O) 및 NIO (Non-blocking I/O) 커넥터의 작동 원리에 대해서 알아보겠습니다. Connector Spring에서 커넥터는 클라이언트 요청을 수신 및 처리하고, 추가 처리를 위해 애플리케이션으로 전달하고, 응답을 클라이언트로 다시 보내는 역할을 하는 필수 구성 요소입니다. 커넥터의 주요 역할 1. 연결을 설정하고 관리하여 클라이언트와 서버 간의 통신을 활성화합니다. 2. 클라이언트 요청을 애플리케이션이 처리할 수 있는 형식으로 변환하고, 응답의 경우 그 반대로 변환합니다. 3. 동시 클라이언트 요청을 효율적으로 처리하기.. 2023. 3. 26.
[Spring] Project Reactor EventLoop와 Flux와 Mono. Project Reactor는 JVM(Java Virtual Machine)에서 비동기 및 반응형 애플리케이션을 구축하기 위해 Reactive Streams를 활용하는 라이브러리입니다. 주요 publisher인 Mono와 Flux와 함께 다양한 연산자들을 제공하여 개발자들이 비동기 이벤트 시퀀스를 효율적으로 처리할 수 있도록 지원합니다. 이러한 기능 덕분에 Reactor는 Spring WebFlux와 같은 반응형 라이브러리 및 프레임워크의 기반으로 널리 사용되고 있습니다. Reactive Programing과 Reactive Stream에 대해서는 이전 포스팅을 참조해 주시면 감사하겠습니다. [Spring] Reactive Programming 개요 [Spring] Reactive Programming .. 2023. 3. 21.