2019/10

일대다 (1:N) 일대다 관계는 엔티티를 하나 이상 참조할 수 있으므로 자바 컬렉션인 Collection, List, Set, Map 중에 하나를 사용해야 한다. 일대다 단방향 하나의 팀은 여러 회원을 참조할 수 있다. 팀 : 회원 = 1 : N 일대단 단방향의 특이한 점은 보통 자신이 매핑할 테이블의 외래키를 관리하는데, 이 매핑은 반대쪽 테이블에 있는 외래 키를 관리한다.(일대다 고나계에서 외래 키는 항상 다쪽 테이블에 존재) public class Member { public Member(String id, String username){ this.id = id; this.username = username; } @Id @Column(name = "MEMBER_ID") private String i..
엔티티의 연관관계를 매핑할 때 고려해야할 점 다중성(@ManyToOne, @OneToMany, @OneToOne ...) 단방향, 양방향 연관관계의 주인 단방향, 양방향 테이블은 외래 키 하나로 조인을 사용해서 양방향으로 쿼리가 가능하므로 사실상 방향이라는 개념이 없다. 객체는 참조용 필드를 가지고 있는 객체만 연관된 객체를 조회할 수 있기 대문에, 한 쪽만 참조하는 것을 단방향, 양쪽 서로 참조하는 것을 양방향 관계라 한다. 연관관계의 주인 데이터베이스는 외래 키 하나로 두 테이블의 연관관계를 맺는다. 따라서 테이블의 연관관계를 관리하는 포인트는 외래키 하나다. 반면에 엔티티를 양방향으로 매핑하면 A→B, B→A 2곳에서 서로를 참조한다. 따라서 객체의 연관관계를 관리하는 포인트는 2곳이다. JPA는 ..
파싱(Parsing) String으로 표현된 날짜형식을 LocalDate, LocalDateTime 으로 변환시켜준다. DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd"); LocalDate localDate = LocalDate.parse("2024.05.21", formatter); DateTimeFormatter를 설정해 주지 않으면 기본적으로 ISO_LOCAL_DATE 포멧터를 사용해서 파싱한다.(yyyy-MM-dd 형식) 포멧팅(Formatting) 날짜형식을 문자열로 변환시키켜준다. LocalDateTime now = LocalDateTime.now(); DateTimeFormatter dateTimeFormatter..
Format 클래스 형식 클래스는 java.text 패키지에 포함되어 있다. 숫자 형식 : DecimalFormat 날짜 형식 : SimpleDateFormat 문자열 형식 : MessageFormat 숫자 형식 클래스(DecimalFormat) DecimalFormat df = new DecimalFormat("#,###.0"); String result = df.format("1234567.89"); 기호 의미 패턴 예 1234567.89 변환결과 0 10진수(빈자리는 0으로 채움) 0 0.0 0000000000.0000 1234568 1234567.9 0001234567.8900 # 10진수(빈자리는 채우지 않음) # #.# ##########.#### 1234568 . 소수점 #.0 1234567..
Class 클래스 자바는 클래스와 인터페이스의 메타데이터를 java.lang 패키지에 소속된 Class 클래스로 관리한다. (메타 데이터 : 클래스의 이름, 생성자 정보, 필드 정보, 메소드 정보) Class 객체 얻기(getClass(), forName()) 최상위 클래스인 Object의 getClass()메소드를 이용해서 Class 객체를 얻을 수 잇다. // 해당 클래스로 객체를 생성했을 때 Class clazz = obj.getClass(); // 객체를 생성하기전 Class 객체 얻기 try{ Class clazz = Class.forName(String className); }catch(ClassNotFoundException e){ } 예제코드 package basic; public clas..
Vuex 소개 복잡한 애플리케이션의 컴포넌트들을 효율적으로 관리하는 라이브러리 무수히 많은 컴포넌트의 데이터를 관리하기 위한 상태 관리 패턴이자 라이브러리 React의 Flux 패턴에서 기인함 Flux와 MVC 패턴 소개 및 Flux 등장 배경 Vuex 설치 및 등록 npm install vuex --savestore.js (src/store/store.js) import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex); export const store = new Vuex.Store({ // });main.js import Vue from 'vue' import App from './App.vue' ..
객체 관계 매핑(ORM)에서 가장 어려운 부분이 객체 연관관계와 테이블 연관관계를 매핑하는 일이다. 연관관계를 매핑할 때 다음 3가지를 고려해야 한다. 방향(Direction) [단방향, 양방향] 존재 회원, 팀 관계가 있을 때 회원 → 팀 또는 팀 → 회원 둘 중 한 쪽만 참조한다면 단방향 회원 → 팀, 팀→ 회원 양쪽 모두 서로 참조하는 것은 양방향 관계 방향은 객체관계에만 존재하고, 테이블은 항상 양방향 다중성(multiplicity) [다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M)] 존재 회원, 팀 관계가 있을 때 여러 회원은 한팀에 속하므로 회원 : 팀 = N : 1 한팀에 여러 회원에 속하므로 팀 : 회원 = 1 : N 연관관계의 주인(owner) 객체를 양방향 연관관계..
Table에 추가적인 데이터를 Json 문자열로 저장하기 위해, JPA Converter를 이용하려고한다. 즉, 서비스단에서는 bean으로 사용을하고, DB에 저장될 때는 이 bean을 Json 문자열로 자동 파싱하여 저장하기 위해서이다. 일단 샘플로 Student 클래스를 만들자 @Entity @Getter @Setter public class Student { @Id private String key; private String name; private int age; private AdditionalData additionalData; } Student는 추가데이터(additionalData)를 갖고 있으며, 이 데이터는 additionalData라는 컬럼에 Json 형태로 들어갈 것이다. @Get..
이름기반 VirtualHost 설정 하나의 서버가 여러개의 도메인을 가지고 있고, 각각의 도메인마다 다른 서비스를 하고 싶을 때 아파치의 VirtualHost를 사용하면 하나의 서버로 각기 다른 도메인을 서비스할 수 있다. 만약의 서버의 아이피가 192.168.0.5이고, 쇼핑몰 사이트와 책구매 사이트를 운영하고 싶다고 생각해보자. 우리는 두 개의 사이트를 운영해야하기 때문에 도메인을 2개 구입했다. (shopping.com, book.com) 이렇게되면 두개의 도메인은 둘다 192.168.0.5서버를 바라보게 된다. 하지만 우리는 shopping.com 으로 접속했을 때는 쇼핑몰 사이트를, book.com에 접속했을 때는 책 구매 사이트를 보여주고 싶다. 이럴 때 가상호스트(VirtualHost)를 사..
$CATALINA_BASE/conf 내에는 여러 종류의 설정 파일이 존재한다. server.xml을 포함한 주요 설정 파일 및 Tomcat 구성 요소, 그리고 가상 호스트 구성에 대해 알아보자. server.xml , , , , 등의 구성 요소들을 확인할 수 있음 Server(org.apache.catalina.Server) 최상위 element로써, shutdown 요청 처리를 위한 address와 port속성을 가지고 있다. 각각 shutdown 요청을 받기 위해 listen하는 IP address와 포트를 설정하며 기본 값은 localhost 8005이다. port속성을 -1로 설정하면 shutdown 포트 기능을 사용하지 않는다. shutdown 속성은 Shutdown 명령어(패스워드)를 설정한다..
깡냉쓰
'2019/10 글 목록