본문 바로가기

분류 전체보기56

[MongoDB] MongoDB란? 특징과 장단점을 예제로 확인해보자. 몽고디비는 대용량 데이터를 처리할 때 우수한 성능을 발휘하는 NoSQL 데이터베이스입니다. 그러나 트랜잭션 처리의 엄격성이 상대적으로 떨어지며, 네이티브 조인을 지원하지 않는 등 모든 용도에 적합하지 않을 수 있습니다. 이 글에서는 몽고디비의 장단점과 함께 자세한 예시로 확인해보도록 하겠습니다. MongoDB MongoDB는 고성능, 고가용성 및 쉬운 확장성을 제공하는 NoSQL, Document 지향 데이터베이스입니다. 데이터를 배열 및 중첩 Document와 같은 복잡한 데이터 유형을 효율적으로 저장할 수 있는 유연한 JSON과 유사한 형식인 BSON(Binary JSON)으로 저장합니다. Database, Collection 및 Document Document MongoDB에서의 기본 데이터 단위로.. 2023. 4. 16.
[JPA] JPA 상속 관계 매핑 전략 : 조인, 단일 테이블, 구현 클래스별 테이블 비교 및 주요 어노테이션 사용법 JPA 상속 관계 매핑 전략과 주요 어노테이션에 대해 알아보고, 조인 전략, 단일 테이블 전략, 구현 클래스별 테이블 전략을 비교하여 각각의 장단점을 설명확인해 보도록 합니다. 더 자세한 정보는 https://www.inflearn.com/course/ORM-JPA-Basic 김영한님 강의나 http://www.yes24.com/Product/Goods/19040233 책을 확인하시는 것이 좋습니다. 상속 관계 매핑 관계형 데이터베이스는 상속 관계가 없다. 관계형 디비 슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사 상속관계 매핑 : 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑 왼쪽 논리모델 공통적인 속성 공통적인 데이터는 물품으로 두고 각각 음반 영화 책으로 서브타입으로 두는 .. 2023. 4. 15.
[Docker] Docker Image와 Image 생성하기, Tag 붙이기, 점진적 빌드하기 Docker Image는 코드, 런타임, 시스템 도구, 라이브러리, 설정 등 소프트웨어를 실행하는 데 필요한 모든 것을 포함하는 경량의 독립 실행형 소프트웨어 패키지입니다. Docker 이미지를 효율적으로 생성하고 관리하는 방법을 알아봅니다. Base Image, Layers, Dependencies, Hexadecimal IDs, Dockerfile 작성법과 Image 관리등을 살펴봅시다!!. Docker Image Base Image Base Image는 Docker 이미지를 만들기 위한 시작점입니다. Base Image는 특정 소프트웨어 패키지가 설치된 최소한의 pre-configured os입니다. Base Image는 소프트웨어 공급업체에서 제공하는 official 이미지 또는 커뮤니티에서 유지.. 2023. 4. 9.
[PostgreSQL] PostgreSQL로 보는 Database 실행 계획 & Explain Option 데이터베이스 실행 계획(Database Execution Plan) 또는 쿼리 실행 계획(Query Execution Plan)은 가능한 가장 효율적인 방법으로 데이터를 검색하거나 조작하기 위해 database management system's (DBMS) query optimizer에서 생성하는 일련의 단계입니다. 데이터베이스 실행 계획과 Explain 명령어에 대해서 알아보도록 하겠습니다. PostgreSQL 데이터베이스 실행 계획 PostgreSQL의 맥락에서 실행 계획은 쿼리 처리 파이프라인의 중요한 구성 요소로, 시스템이 쿼리를 빠르고 효율적으로 수행할 수 있도록 도와줍니다. PostgreSQL 쿼리 실행 프로세스는 여러 단계로 구성됩니다. PostgreSQL Query Process Pipe.. 2023. 4. 8.
[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.