| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- R
- coding test
- 윤성우 열혈자료구조
- C programming
- s
- JSON
- Selection Sorting
- 이것이 자바다
- 이스케이프 문자
- Algorithm
- insertion sort
- stream
- 윤성우의 열혈 자료구조
- Stack
- 혼자 공부하는 C언어
- list 컬렉션
- 메모리구조
- 알기쉬운 알고리즘
- datastructure
- buffer
- Graph
- C 언어 코딩 도장
- Serialization
- Today
- Total
목록Server (76)
Engineering Note
본 포스팅은 인프런 김영한님의 강의를 보고 정리한 글입니다. 강의의 목표는 지연로딩으로 발생하는 문제(N+1문제)의 원인을 알아보고 해결하는 것입니다. 강의보고 흐름 그대로 정리한 글 Order Entitypackage jpabook.jpashop.domain;import static jakarta.persistence.FetchType.LAZY;import jakarta.persistence.CascadeType;import jakarta.persistence.Column;import jakarta.persistence.Entity;import jakarta.persistence.EnumType;import jakarta.persistence.Enumerated;import jakarta.persi..
이번 포스팅은 인프런의 김영한님의 JPA 컬렉션 최적화 강의를 보고 정리한 글입니다.이커머스 프로젝트에서 Entity는 Order, Member, OrderItem, Item, Delivery Entity가 있고, 주문내역을 조회하는 상황입니다. package jpabook.jpashop.domain;import static jakarta.persistence.FetchType.LAZY;import jakarta.persistence.CascadeType;import jakarta.persistence.Column;import jakarta.persistence.Entity;import jakarta.persistence.EnumType;import jakarta.persistence.Enumerate..
CommandLineRunner- 스프링부트가 실행되고 트래픽을 받기전 실행하고 싶은 코드가 있을 때 사용하는 인터페이스 사용 예시package com.example.demo;import com.example.demo.entity.Member;import com.example.demo.repository.MemberRepository;import lombok.RequiredArgsConstructor;import org.springframework.boot.CommandLineRunner;import org.springframework.stereotype.Component;import java.time.LocalDateTime;@Component@RequiredArgsConstructorpublic c..
Spring Data JPA를 이용해서 별도의 코드 없이도 CRUD가 실행 가능한 기능뿐 아니라 개발자들에게는 개발 속도를 빠르게 하는 페이징 처리 기능을 제공합니다.페이징 처리는 Pageable이라는 타입의 객체를 구성해서 파라미터로 전달하면 됩니다. Pageable은 인터페이스로 설계되어 있고, 일반적으로는 PageRequest.of()라는 기능을 이용해서 개발이 가능합니다. PageRequest.of(페이지 번호, 사이즈): 페이지 번호 0 부터PageRequest.of(페이지 번호, 사이즈, Sort): 정렬 조건 추가PageRequest.of(페이지 번호, 사이즈, Sort.Direction, 속성): 정렬 방향과 여러 속성 지정 파라미터로 Pageable을 이용하면 리턴 타입은 Page 타입을..
연관관계 주인JPA에서 양방향 관계로 Entity가 있을 때 외래키를 관리해줄 주인을 정해주어야 한다. JPA는 연관관계의 주인이 어떤 Entity라고 지정하지 않고 연관관계 주인이 아니라는 의미로 'mapped by' 옵션으로 외래키를 관리 하지 않는다고 지정한다.Book과 BookStore 엔티티를 예시로 생각해볼 수 있다. Book과 BookStores는 다대일 관계고, 양방향으로 세팅을 해주었다. Book Entity@Entity@Getter @Setterpublic class Book { @Id @GeneratedValue private Long id; private String isbn; private String title; @ManyToOne priva..
직접 할당: @ID 만 사용 자동 생성(@GeneratedValue) strategy(GenerationType = ) IDENTITY: 데이터베이스에 위임, MySQL(Auto Increment) SEQUENCE: 데이터베이스 시퀀스 오브젝트 사용, ORACLE AUTO: 방언에 따라 자동 지정, 기본값 TABLE:키 생성용 테이블 사용, 모든 DB에서 사용. => 거의 사용 X 참고 자료 : 인프런 JPA 기본편(김영한)
빌드 도구 종류- 메이븐, 그레이들 메이븐- 프레임워크에 관계없이 앱의 빌드 프로세스를 쉽게 관리하는데 사용하는 빌드 도구 그레이들- 메이븐과 마찬가지로 앱 프로세스를 쉽게 관리하는 빌드 도구 빌드도구가 수행하는 일- 앱에 필요한 의존성 내려받기- 테스트 실행- 구문이 정의한 규칙 준수 여부 검증- 보안 취약점 확인- 앱 컴파일- 실행 가능한 아카이브에 앱 패키징(JAR, WAR) GroupId : 관련된 여러 프로젝트를 그룹화 하는데 사용아티팩트 ID: 현재 애플리케이션 이름=> 지정하지 않으면 기본값으로 설정된다. 메이븐 프로젝트 구조는 프로젝트 개발을 위해 선택한 IDE에 의존하지 않는데, 메이븐 프로젝트 구조에서 중요한 파일은 pom.xml이다. maven 프로젝트 주요 구성pom.xml:..
본 글은 Spring의 핵심인 AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)를 학습하면서 @Transactional 어노테이션이 AOP의 대표적인 사례로 볼 수 있음을 알고 두 개념의 관계를 살펴보면서 각 개념을 더 깊이 이해하기 위한 목적으로 작성한 글입니다. @Transactional 어노테이션과 Spring AOP의 관계@Transactional은 **Spring AOP (Aspect-Oriented Programming, 관점 지향 프로그래밍)** 개념이 적용된 대표적인 예시입니다.Spring은 AOP를 활용하여 개발자가 **비즈니스 로직(핵심 관심사)**과 **트랜잭션 처리(Commit/Rollback 등 부가 기능, 횡단 관심사)**를 분리할 수 있도록 지..