전체 글

모르는 내용 및 아는 내용 모두 꼼꼼히 복습하여 익숙해지는 그 날까지 꾸준히 공부하겠습니다.
Spring Framework/JPA

[JPA] JPA 상속 관계 매핑과 @MappedSuperClass 사용하기 - 조인전략, 싱글 테이블, @CreatedDate, @LastModifiedDate

상속관계 매핑 관계형 데이터베이스에는 상속 관계가 없습니다. 객체의 상속 구조와 DB의 슈퍼타입 - 서브타입 관계를 매핑 슈퍼타입-서브타입 논리 모델을 물리 모델로 구현하는 3가지 방법 조인 전략 : 각각 테이블로 변환 단일 테이블 전략 : 통합 테이블로 변환 구현 클래스마다 테이블 전략 : 서브 타입 테이블로 변환 (비추천) 주요 어노테이션 @Inheritance(strategy=InheritanceType.XXX) JOINED : 조인 전략 SINGLE_TABLE : 단일 테이블 전략 TABLE_PER_CLASS : 구현 클래스마다 테이블 전략 슈퍼 타입 엔티티 @DiscriminatorColumn(name=’DTYPE’) 부모 클래스에 선언합니다. 하위 클래스를 구분하는 용도의 컬럼입니다. 관례는 ..

Spring Framework/JPA

[JPA] JPA 페치조인과 DISTINCT - 컬렉션 페치 조인 데이터 중복 문제 해결

다대일 페치 조인 (Member - Team) 다대일 페치 조인을 하게 되면 데이터 중복이 발생하지 않습니다. String jpql = "select m from Member m join fetch m.team"; List members = em.createQuery(jpql, Member.class) .getResultList(); for (Member member : members) { //페치 조인으로 회원과 팀을 함께 조회해서 지연 로딩X System.out.println("username = " + member.getUsername() + ", " + "teamName = " + member.getTeam().name()); } // username = 회원1, teamname = 팀A // u..

Spring Framework/JPA

[JPA] 연관관계 매핑, 양방향, 연관관계 주인, mappedBy

목표 객체와 테이블 연관관계의 차이 이해 객체의 참조와 테이블의 외래 키 매핑 이해 단방향, 양방향 이해 다중성 : 다대일, 일대다, 다대다 이해 연관관계의 주인 연관관계가 필요한 이유 객체를 테이블에 맞추어 모델링 (연관관계가 없는 객체 / 사용 X) @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String @Column(name = "TEAM_ID") private Long teamId; } @Entity public class Team { @Id @GeneratedValue private Long id; private String name; } 참조 대신에 외래 ..

Spring Framework/JAVA

[JAVA] 자바 JUnit5 & AssertJ 테스트 코드 사용법

AssertJ 란 테스트코드를 작성 시, JUnit 보다 더욱 테스트 코드의 가독성과 편의성을 높여 주는 라이브러리이다. 메소드 체이닝을 지원하기 때문에 좀 더 깔끔하고 읽기 쉬운 테스트 코드를 작성할 수 있습니다. 형식 : assertThat(테스트 타겟).메소드1().메소드2().메소드3()’ assertThat() 으로 시작한다. JUnit 5 어노테이션 JUnit5 내용 JUnit4 @Test 테스트 Method임을 선언함. @Test @DisplayName 테스트 클래스 또는 메소드의 사용자 정의 이름을 선언할 때 사용함. @BeforeEach 모든 테스트 실행 전에 실행할 테스트에 사용함. @Before @AfterEach 모든 테스트 실행 후에 실행한 테스트에 사용함. @After @Befo..

Spring Framework/JAVA

[JAVA] 자바 enum 클래스 - 열거형, 특정값 매핑 이해하기

자바의 Enum 클래스는 연관된 상수들의 집합을 정의할 수 있는 데이터 유형입니다. Enum 클래스를 통해 관련 있는 상수들을 그룹으로 묶어 표현할 수 있고, 코드를 보다 읽기 쉽게 만들어 줍니다. Enum 특징 1. 열거형으로 선언된 순서에 따라 0부터 index 값을 가집니다. 2. 선언된 상수들은 모두 대문자로 이어야 합니다. 3. 열거형 변수들을 선언한 후 마지막에 세미콜론(;)을 찍지 않습니다. Enum 문법 문법 : public enum Day {MONDAY, TUESDAY, WEDNESDAY ...} 사용법 : Day.MONDAY Enum 메소드 values() : 열거형의 모든 상수를 배열에 담아 반환합니다. ordinal() : 정의된 순서를 정수로 반환합니다. valueOf() : 지정..

CS/Database

[Mysql] mysql select 쿼리 실행 순 익히기, 스키마 create&drop

스키마 생성과 CREATE, DROP 릴레이션 정의 및 생성 create table department( deptno integer not null, deptname char(10), floor integer, primary key(deptno)); create table employee( empno integer not null, empname char(10), title char(10), manager integer, salary integer, dno integer, primary key(empno), foreign key(manager) references employee(empno), foreign key(dno) references department(deptno) on delete casca..

CS/Network

[Network] 포워드 프록시(Forward Proxy)와 리버스 프록시(Reverse Proxy)란 무엇인가, 쉽게 이해하기

포워드 프록시(Forward Proxy)란포워드 프록시는 클라이언트 앞에 위치하여, 클라이언트가 서버로 요청을 보낼 때 포워드 프록시 서버가 해당 요청을 대신 받아서 서버에게 전달해 줍니다. 이후에 서버의 응답을 포워드 프록시가 대신 받아 클라이언트에게 전달해줍니다. 간단히, 사용자들은 서버에게 요청을 보내면 이 요청들은 포워드 프록시가 받아서 원하는 외부 서버에 전달해 주고 응답 값을 대신 받아 전달해 주는 역할을 합니다.장점온라인상에서 클라이언트 신원 보호가 가능하다.캐싱 및 사용자 기능을 향상시킨다. (어느 서버에 요청을 보내야 하는지 알 필요 없음)특정 콘텐츠에 대한 액세스 차단 (방화벽 : 포워드 프록시 앞에 방화벽을 두어 민감한 콘텐츠인 경우 사전에 차단할 수 있다) 리버스 프록시(Revers..

CS/Network

[Server] WAS란 무엇인가, 웹 서버와 WAS(Web Application Server) 차이 이해하기

WAS(Web Application Server)를 이해하기 전에 예전부터 사용하고 있던 Web Server는 무엇이고, 어떤 기능을 수행했는지 파악한 다음에 WAS 서버가 왜 생기게 됐는지 순으로 정리하겠습니다. 웹서버란 HTTP 프로토콜을 기반으로 클라이언트가 웹 브라우저에서 어떠한 요청을 하면 그 요청을 받아 정적 컨텐츠를 제공하는 서버입니다. 💡 정적 컨텐츠란 단순 HTML 문서, CSS, 이미지, 파일 등 즉시 응답 가능한 컨텐츠입니다. 이때 웹 서버가 정적 컨텐츠가 아닌 동적 컨텐츠를 요청받으면 WAS에게 해당 요청을 넘겨주고, WAS에서 처리한 결과를 클라이언트에게 전달하는 역할도 해줍니다. 이러한 웹 서버에는 Apache, NginX 등이 있습니다. Web Server의 개념 소프트웨어와 ..

kylo
오늘도 열심히 - BE