분류 전체보기

·백엔드/JPA
JPA 에서 엔티티의 연관관계를 설계하는 방법은 대표적으로 2가지가 있습니다. 1. @JoinColumn (조인 컬럼 - 외래 키) 2. @JoinTable (조인 테이블 - 테이블 사용) 이 글은 2가지 방법중 하나인 조인 테이블 사용법에 대해 간략하게 정리한 글입니다. 조인 테이블 장점 외래 키에 null을 허용하는 관계를 피할 수 있다. 이게 무슨말인지 코드를 먼저 보여드리면 @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "member_id") private Long id; @Column(name = "name") @Comment("이름") private String..
·백엔드/JPA
@Access(AccessType.FIELD), @Access(AccessType.PROPERTY) 란? JPA가 엔티티 데이터에 접근하는 방식을 지정할 수 있는 어노테이션 @Access(AccessType.FIELD) - 필드 접근 @Access(AccessType.PROPERTY) - 프로퍼티 접근 먼저 필드 접근 방식부터 알아보자 @Access(AccessType.FIELD) - 필드 접근 방식 ... 생략 @Entity @Access(AccessType.FIELD)// 생략해도 동일함 public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Transient private String..
·백엔드/JPA
JPA 에서 가장 중요하다고 생각하는 영속성 컨텍스트에 대해 정리한 글입니다. 영속성 컨텍스트란? 엔티티 매니저로 엔티티를 저장하거나 조회하면 영속성 컨텍스트에 엔티티를 보관하고 관리한다. 한 마디로 요약하면 "엔티티를 영구 저장하는 환경" 이다. 엔티티의 4가지 상태 먼저 엔티티에는 4가지 상태가 존재한다. 비영속 영속 준영속 삭제 1. 비영속 Member member = new Member(); // 객체 생성 member.setId("member1"); member.setUsername("회원1"); 순수한 객체 상태이며 영속성 컨텍스트나 데이터베이스와는 전혀 관련이 없는 상태 2. 영속 em.persist(member); // 객체를 저장 영속성 컨텍스트에 저장한 상태, 영속 상태로써 영속성 컨텍..
·인프라/Linux
자주 사용되는 리눅스 터미널 명령어 기초에 대해 정리한 글입니다. ls - 파일 또는 디렉토리의 목록을 조회하는 명령어 위의 예시로는 ls Desktop 등 상대경로와 절대경로를 사용하여 다른 경로의 목록 조회 모두 가능 *상대경로 - 현재 접속 중인 경로 기준으로 사용하는 경로값 - 상대경로를 사용하는 경우 현재 경로 기준 상위 경로 하위 경로로만 이동 가능 *절대경로 - 최상위 경로부터 전체경로를 다 사용하는 경로값 절대경로 / 상대경로를 구분하는 가장 간단한 방법은 경로의 시작이 '/' 기호로 시작하는지 확인하면 됩니다. ls 관련 옵션 ll & ls -l 리스트를 상세 정보와 함께 출력 동일한 단축 명령어 권한정보, 크기, 소유자, 소유자 그룹, 수정일자 등 확인 가능 ls -a 숨김파일을 포함하..
·백엔드/JPA
자바 스프링 기반 백엔드 개발자라면 꼭 알아야 할 JPA의 기초에 대해서 요약 정리한 글입니다. JPA란 무엇인가? JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준 ORM 이란? ORM(Object-Relational Mapping)은 이름 그대로 객체와 관계형 데이터베이스를 매핑한다는 뜻 ORM 프레임워크는 객체와 테이블을 매핑해서 패러다임의 불일치 문제를 개발자 대신 해결해줌 자바 진영의 대표적인 ORM 프레임워크는 하이버네이트 프레임워크가 있다. JPA 의 대표적인 장점! 지루하고 반복적인 CRUD SQL을 알아서 처리해준다. 객체 모델링과 관계형 데이터베이스 사이의 차이점도 해결해준다. JPA를 사용하는 개발자는 SQL을 직접 작성하는 것이 아니라 어떤 SQL이 실행..
·백엔드/Spring
스프링 부트 테스트 실행 시 업로드 된 파일도 롤백 시점 사라질까?? 스프링 부트 테스트는 @Transactional 을 테스트 케이스에 선언 시 테스트 완료 후 항상 롤백을 하여, 다음 테스트에 영향을 주지 않는다. (물론 rollback false 지정하는 설정이 있음) 하지만 테스트 실행시 생성된 파일은 데이터 롤백 이후에도 그대로 남아있다. 파일 업로드 후 업로드된 파일을 삭제하는 테스트 코드를 작성해보자 먼저 아래를 보면 파일 업로드 테스트를 위한 파일 정보를 저장하는 엔티티가 있다. @Getter @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) @Table(name = "attach_file") public class AttachFile..
dami97
'분류 전체보기' 카테고리의 글 목록 (10 Page)