본문 바로가기

전체 글

(27)
데이타 로밍을 알뜰하게 사용하기 해외에 놀러갈때 나에게 아무런 연락이 않오는게 가장 좋겠지만 혹시 누군가의 연락이 필요하거나 길치, 방향치라면 지도나 인터넷을 조회해 보기 위해서라도 반드시 데이타 로밍을 해야한다. 가장 큰 이유는 데이타 로밍을 안해가면 정말 심심하다. 그래서 해외 나갈때 가장 저렴하게 데이타 로밍을 해갈 수 있는 방법을 찾아 보도록 하자. 데이타 로밍을 하는 방법 데이타 로밍을 하는 방법은 크게 3개가 있다. 통신사의 데이타 로밍 사용하기 wifi 도시락 대여하기 현지 usim 사용하기 내가 떠나기로한 여행 일정은 밤 비행기로 가서 밤 비행기로 도착하는데 월요일 저녁 22시에 출발 하여 다음주 월요일 새벽 04시에 도착하는 일정으로 총 여행에 소요되는 일자만 8일이고 실제 현지에서 로밍이 필요한 여행일자는 6일이다. ..
철 지난 블랙베리 키원의 1년 사용기 문득 인터넷을 서핑하다 이상하게 생긴 폰을 봤다. 키보드가 달린 스마트폰이라 굉장히 요상하게 보였지만 예전 2g 폰을 사용하던 기억이 떠올라 왠지 한번 사용해 보면 재미있을 것만 같았다. 마침 사용하던 lg v20 폰이 배터리가 수명이 다되었는지 반나절이면 호흡이 간당간당해 충전기로 간신히 연명하고는 했는데 이때다 이건 질러야 하는 기회야!! 라고 자기 합리화를 하며 구입을 했다. 마침 초안을 작성해 둔 내용도 있고 구매한지 일년이 다되어 가는 시점에 간단히 사용기를 남겨보기로 하자.1 구매구매를 할 때 주의해야 되는 점은 이 제품은 헬로비전 단독 상품이라는 점이다. kt, sk 에서 제공 받을 수 있는 각종 요금 혜택이나 서비스 그리고 심리적 위안? 을 받을 수 없다는 이야기다. 만약 온 가족 할인이나..
JPA 환경에서 MyBatis 를 사용하여 데이타를 가지고 오기 앞서 JPA 관련된 이야기를 할때 JPA 와 Mybatis 를 비교하면서 서로의 장점과 단점에 대한 이야기를 나눈 적이 있습니다. 그때 JPA 를 사용함으로써 얻는 가장 큰 이점은 드러나지 않아 파악하기 어려운 Query 구문이 로직상으로 도출이 됨으로 인해 향후 유지보수가 용이해지며 테스트를 쉽게 할 수 있는 유연한 구조를 얻을 수 있다는 점 이였지만 복잡한 데이타를 집계 한다거나 여러 Entity 간의 관계를 통한 결과를 도출하려고 하는 용도로는 적합하지 않으며 결국은 Query 를 사용해 데이타를 가지고 올 수 밖에는 없는데 이를 위해 Mybatis 와 JPA 가 같이 사용해야 된다는 점을 이야기 드렸습니다.이번 글에는 이전 JPA 가 설정된 동일한 소스 코드에 어떻게 MyBatis 를 사용 하는지..
JPA Repository 를 이용한 데이타 사용 Entity 에 있는 데이타를 조회하거나 저장과 변경 그리고 삭제를 할때 Spring JPA 에서 제공하는 Repository 라는 인터페이스를 정의해 해당 Entity 의 데이타를 사용 할 수 있습니다. Repository 는 내부적으로 EntityManager 가 직접 대상 Entity의 데이타를 관리하고 있기 때문에 굳이 Repository 인터페이스를 정의하지 않고도 직접 EntityManager 를 사용해 Persistance Layer 를 구현 할 수도 있지만 Spring JPA 에서 Repository 의 내부 구현체를 자동으로 생성시켜 주기 때문에 별도의 구현체를 따로 생성하지 않아도 됩니다. Repository 는 대게 Entity 와 1:1 로 매칭된다고 볼 수도 있으나 꼭 그런것은 아..
JPA 관계와 그 사용법에 대해 (양방향) 데이타베이스에서 테이블간의 관계를 구성하는 방법은 OneToOne, OneToMany, ManyToOne, ManyToMany 가 있습니다. 테이블간의 관계에서는 단방향과 양방향에 대한 구분이 없지만 JPA 상에서는 사용하는 Entity 에 따른 차이가 존재합니다. 단방향은 FK (Foreign Key) 를 소유한 Entity 에서 대상 Entity 를 참조하는 방식이며 양방향은 FK 를 소유한 Entity 와 대상 Entity 에서 서로가 서로를 참조할 수 있는 방식입니다.양방향 관계를 지정할때 유의해야 할 점은 서로의 Entity 데이타에 대해 동일한 사용 권한을 가지기 때문에 의도치 않은 데이타의 오염이 일어 날 수 있다는 점 입니다. Entity 의 값이 변경 되었는데 이게 누구에 의한 데이타의 ..
JPA 관계와 그 사용법에 대해 (단방향) 데이타베이스의 관계 앞서 관계형 데이타베이스의 데이타를 객체로 표현해 관리하는 것이 orm 의 기본 방향이라고 이야기 드렸습니다. 하지만 객체로 표현하기 어려운 데이타간의 관계를 위해 jpa 에서 기능을 제공하고 있는데 크게 단방향과 양방향의 관계로 나뉘어 집니다. 단방향과 양방향을 구분짓는 차이는 데이타를 사용하는 관점에서 누가 주도권을 가지는 것인가에 대한 차이이며 둘다 동일한 데이타베이스 테이블간의 관계를 의미합니다. 이글에서는 단방향에 대해서 먼저 다루겠습니다.데이타베이스에서 사용하는 관계는 OneToOne(1:1), OneToMany(1:n), ManyToOne(n:1), ManyToMany(n:m) 가 있습니다. 이중 ManyToMany(n:m) 는 데이타베이스에서 물리적으로 지원하진 않지만 ..
JPA 기본 사용 문법 파악하기 @Entity @Entity 어노테이션은 데이타베이스의 테이블과 일대일로 매칭되는 객체 단위이며 Entity 객체의 인스턴스 하나가 테이블에서 하나의 레코드 값을 의미합니다. 그래서 객체의 인스턴스를 구분하기 위한 유일한 키값을 가지는데 이것은 테이블 상의 Primary Key 와 같은 의미를 가지며 @Id 어노테이션으로 표기 됩니다. 먼저 Spring Boot 를 설정할때 spring.jpa.hibernate.ddl-auto 설정이 create 혹은 update 로 되어 있을 경우 Spring 프로젝트가 시작될때 EntityManager 가 자동으로 DDL 을 수행해 테이블을 생성해 줍니다.이때 명시적으로 @Entity 의 name 속성을 이용해 데이타베이스상의 실제 테이블 명칭을 지정하지 않는다면 E..
JPA 개요와 Spring Boot 개발 환경구성 사용기술 Spring boot 2.0.5.RELEASE maven JPA MyBatis H2 DBMS Hikari CP java 1.8 개요 JPA 는 java persistence API 의 약자 이며 java 에서 제공하는 JDBC 와 같은 API spec 을 의미 합니다. JDBC 와 JPA 는 둘다 데이타베이스 와 데이타를 주고 받기 위한 방법을 정의 하였으나 JDBC 는 보다 하위 레벨에서 데이타베이스와 직접 SQL 쿼리를 질의 하는 API 스펙 이며 JPA 는 ORM API 스펙 입니다. JPA 이전에는 hibernate 와 MyBatis 가 보편적으로 사용 되고 있었지만 JPA 스펙이 발표가 된 이후 보다 쉽게 데이타를 사용 할 수 있기 때문에 JPA 가 주로 사용 되고 있습니다. 하지만 J..