본문 바로가기

전체 글93

[JAVA] Map for-each 정리 Map 출력 방법 정리 Map 선언 Map map = new HashMap(); 1. Interator 클래스 사용 Interator keys = map.keySet().iterator(); while(keys.hasNext()) { String key = keys.next(); String value = map.get(key); System.out.println(key + " : " + value); } 2. Map method 사용 Map.keySet() 사용 for (String key : map.keySet()) { String value = map.get(key) System.out.println(key + " : " + value); } Map.Entry 사용 for (Map.Entry m :.. 2023. 6. 8.
[tomcat] 톰캣 가상 호스팅 1. ${catalina_home}/conf/server.xml 수정 Host태그를 보면 이렇게 되어있다. name 부분이 도메인 즉 호스트명이며 appBase 부분은 어플리케이션이 위치할 경로이며 ${catalina_home}다음 상대경로가 잡혀있다. (절대경로 입력가능) host 태그안에 context설정을 안하면 이렇게 디폴트값으 들어가는데 톰캣을 깔고 localhost:8080 을 들어가면 고양이페이지가 나오는데 그 index.jsp는 ${catalina_home}/webapps/ROOT/index.jsp 경로에 존재한다. so.com 을 호스트명으로 해주며 해당 호스트명으로 접속시 D:\aaa경로에서 어플리케이션을 찾는다는 설정이다. 2. 소스파일 위치 appBase 경로에 war를 넣던 프로젝.. 2023. 6. 6.
[JPA] 임베디드 타입 임베디드 타입 임베디드 타입 사용법 @Embeddable: 값 타입을 정의하는 곳에 표시 @Embedded: 값 타입을 사용하는 곳에 표시 기본 생성자 필수 임베디드를 사용하면 재사용이 가능하고 Period.isWork()처럼 해당 값 타입만 사용하는 의미 있는 메소 드를 만들 수 있습니다. @AttributeOverride: 속성 재정의 한 엔티티에서 같은 값 타입을 사용하려면 @AttributeOverrides, @AttributeOverride를 사용해서 컬러 명 속성을 재정의 합니다. 2023. 5. 1.
[JPA] 프록시와 연관관계(즉시로딩, 지연로딩, 영속성 전이) 프록시 객체의 초기화 Member를 조회할 때 Team도 함께 조회되는걸 막기 위해서 지연로딩을 사용한다. 이유는 쓸때없는 join을 해서 쿼리 조회 시간을 낭비 할수도 있기 때문입니다. 지연로딩 @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; @ManyToOne(fetch = FetchType.LAZY) //** @JoinColumn(name = "TEAM_ID") private Team team; .. } 지연로딩을 사용할 경우 실제 team을 사용하는 시점에서만 쿼리를 사용하게 됩니다. Team team = member.getTeam(); te.. 2023. 4. 29.
[JPA] 상속관계 매핑 관계형 데이터베이스는 상속 관계가 없습니다. 그래서 슈퍼타입 서브타입 관계라는 모델링 기으로 객체 상속과 유사하게 만들어 사용한다고 합니다. 상속관계 매핑: 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑 슈퍼타입 서브타입 논리 모델을 실제 물리 모델로 구현하는 방법은 크게 3가지가 있습니다. 각각 테이블로 변환 -> 조인 전략 통합 테이블로 변환 -> 단일 테이블 전략 서브타입 테이블로 변환 -> 구현 클래스마다 테이블 전략 장점 테이블 정규화 저장공간 효율화 외래 키 참조 무결성 제약조건 활용가능 단점 조인을 많이 사용해서 저능 저하 데이터저장시 INSERT 쿼리 2번 호출 장점 조인을 사용하지 않아서 조회 성능이 빠름 단점 엔티티가 매핑한 컬럼은 모두 null을 허용해야 한다 모든 테이블.. 2023. 4. 23.
[JPA] 다대일 [N:1] 일대일 [1:1] 다대다 [N:M] 다대일 단방향 정리 • 가장 많이 사용하는 연관관계 다대일 양방향 정리 • 외래 키가 있는 쪽이 연관관계의 주인 • 양쪽을 서로 참조하도록 개발 일대다 단방향 정리 • 일대다 단방향은 일대다(1:N)에서 일(1)이 연관관계의 주인 • 테이블 일대다 관계는 항상 다(N) 쪽에 외래 키가 있음 • 객체와 테이블의 차이 때문에 반대편 테이블의 외래 키를 관리하 는 특이한 구조 일대다 양방향 정리 • 이런 매핑은 공식적으로 존재X • @JoinColumn(insertable=false, updatable=false) • 읽기 전용 필드를 사용해서 양방향 처럼 사용하는 방법 • 다대일 양방향을 사용하자 일대일 정리 주 테이블에 외래 키 • 주 객체가 대상 객체의 참조를 가지는 것 처럼 주 테이블에 외래 키를 두고.. 2023. 4. 5.