본문 바로가기

분류 전체보기

(142)
[Javascript] Javascript 인코딩 인코딩은 정보의 형태가 형식을 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해서 다른 형태나 형식으로 변환하는 처리 혹은 그 처리 방식을 말한다. 즉, 컴퓨터가 이해할 수 있는 형식으로 바꾸어 주는 것이다. - Javascript 인코딩 함수 ※ escape(),unescape() 함수는 자바스크립트 1.5버전부터 더는 지원하지 않으므로, encodeURI(),decodeURI() 함수나 encodeURIComponent(), decodeURIComponent() 함수를 대신 사용해야 합니다. 1. escaepe(), unescape() 전달받은 문자열에서 특정 문자들을 16진법 이스케이프 시퀀스 문자로 변환한다. escape('https://freewebdev.tistory.com/게시판/..
[Javascript] 함수 호이스팅( hoisting ) 자바스크립트에서 함수의 유효 범위라는 것은 함수 안에서 선언된 모든 변수는 함수 전체에 걸쳐 유효하다는 의미입니다. 그런데 이 유효 범위의 적용이 변수가 선언되기 전에도 똑같이 적용됩니다. 이러한 자바스크립트의 특징을 함수 호이스팅( hoisting )이라고 합니다. 즉, 자바스크립트 함수 안에 있는 모든 변수의 선언은 함수의 맨 처음으로 이동된 것처럼 동작합니다. - 예제 var globalNum = 10; // globalNum을 전역 변수로 선언함. function printNum() { document.write("지역 변수 globalNum 선언 전의 globalNum의 값은 " + globalNum + "입니다. "); // ① var globalNum = 20; // globalNum을 지역..
[자바 ORM 표준 JPA 프로그래밍] 실전 예제3 - 다양한 연관관계 매핑( 4/4 ) - 배송, 카테고리 추가 1. 엔티티 주문과 배송은 1:1( @OneToMany ) 상품과 카테고리는 N:M( @ManyToMany ) 2. ERD 다대다( N:M )연관관계를 추천하지는 않지만 예제를 보여주기 위해서 'CATEGORT_ITEM' 테이블을 생성했습니다. 3. 엔티티 - N:M 관계는 1:N, N:1로 테이블의 N:M 관계는 중간 테이블을 이용해서 1:N, N:1으로 변경해야한다. 실무에서는 중간 테이블이 단순하지 않다. @ManyToMany는 제약 필드 추가 X 엔티티 테이블 불일치 실무에서는 @MaynToMany 사용 X - 테이블이 올바르게 생성되지 않을 경우 기존 테이블들 삭제 DROP TABLE IF EXISTS ORDERS CASCADE; DROP TABLE IF EXISTS I..
[자바 ORM 표준 JPA 프로그래밍] 다양한 연관관계 매핑 - 다대다( 3/4 ) 1. 다대다 [ N : M ] 실무에서는 쓰면 안된다고 합니다. 관계형 데이터베이스는 정규화된 테이블 2개로 다대다 관계를 표현할 수 없음 연결 테이블을 추가해서 일대다, 다대다 관계로 풀어내야함 테이블 객체 객체는 컬렉션을 사용해서 객체 2개로 다대다 관계 가능 @ManyToMany 사용 @JoinTable로 연결 테이블 지정 다대다 매핑 단방향, 양방향 가능 - 다대다 매핑의 한계 편리해 보이지만 실무에서 사용 X 연결 테이블이 단순히 연결만 하고 끝나지 않음 주문시간, 수량 같은 데이터가 들어올 수 있음 - 다대다 매핑의 한계 극복 연결 테이블용 엔티티 추가( 연결 테이블을 엔티티로 승격 ) @ManyToMany -> @OneToMany, @ManyToOne '다대다 매핑의 한계' 사진처럼 'MEM..
[자바 ORM 표준 JPA 프로그래밍] 다양한 연관관계 매핑 - 일대일( 2/4 ) 1. 일대일 [ 1 : 1 ] 일대일 관계는 그 반대도 일대일 주 테이블이나 대상 테이블 중에 외래 키 선택 가능 주 테이블에 외래 키 대상 테이블에 외래 키 외래 키에 데이터베이스 유니크( UNI ) 제약조건 추가 비즈니스 룰 한 회원은 하나의 락커만 가질 수 있다. 1) 일대일 : 주 테이블에 외래 키 단방향 다대일( @ManyToOne ) 단방향 매핑과 유사 - Member @Getter @Setter @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME") private String..
[자바 ORM 표준 JPA 프로그래밍] 다양한 연관관계 매핑 - 다대일, 일대다 ( 1/4 ) - 연관관계 매핑시 고려사항 3가지 다중성 단방향, 양방향 연관관계의 주인 - 다중성 데이터베이스 관점에서 매핑하기 위한 어노테이션 이다. 대칭성이 있으므로 역으로 생각하면 편하다. 다대다 @ManyToOne 일대다 @OneToMany 일대일 @OneToOne 다대다 @ManyToMany 실무에서 쓰면 안된다. - 단방향, 양방향 테이블 외래 키는 하나로 양쪽 조인 가능 사실 방향이라는 개념이 없음 객체 참조용 필드가 있는 쪽으로만 참조 가능 한쪽만 참조하면 단방향 양쪽이 서로 참조하면 양방향 사실 양방향이라는건 없다. 단방향이 두개가 있는 것이다. - 연관관계의 주인 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음 객체 양방향 관계는 A -> B, B -> A 처럼 참조가 2군데 객체 양방향 관계..
[자바 ORM 표준 JPA 프로그래밍] 실전 예제2 - 연관관계 매핑 시작( 3/3 ) - 실전예제 1에 이어서 진행 https://github.com/oss0202/jpashop oss0202/jpashop Contribute to oss0202/jpashop development by creating an account on GitHub. github.com - 테이블 구조 실전예제1과 테이블 구조는 동일 외래키(FK)가 있는 테이블이 연관관계 주인 - 객체 구조 참조를 사용하도록 변경 - 단방향 매핑 진행 객체 입장에서는 무조건 단방향이 좋다. 양방향일 경우 신경쓸 부분이 많아진다. - Order, OrderItem 수정 외래키가 있으므로 연관관계의 주인 // Order.java // 이전 @Column(name = "MEMBER_ID") private Long memberId; //..
[자바 ORM 표준 JPA 프로그래밍] 연관관계 매핑 기초 - 양방향 연관관계 와 연관관계의 주인( 2/3 ) ※ 이 강의에서 아래의 두가지가 제일 중요하다고 합니다. 영속성 컨텍스트 메커니즘 양방향 연관관계와 연관관계의 주인 메뉴얼에 있는 기능만 쓰지 말고 잘 알고 넘어가야 합니다. 테이블은 단방향과 양방향은 차이가 없습니다. 테이블의 경우에는 TEAM_ID를 알고 있으면 MEMBER, TEAM의 정보를 다 알 수 있다. 그러나 이전의 단방향의 경우에는 TEAM에서 MEMBER에 대한 정보(ex. username)를 알 수가 없습니다. .. @OneToMany(mappedBy = "team")// 1: 다 매핑에서 뭐랑 매핑 되는건가?, 반대편 사이트 private List members = new ArrayList(); ... https://github.com/oss0202/ex1-hello-jpa/blob/..