본문 바로가기

전체 글147

JPA 시작하기 1. HelloJPA 프로젝트 생성 h2 db연결 연결안될 때 : test.mv.db 생성 후 연결 localhost:8082 / jdbc:h2:tcp://localhost/~/test pom.xml 설정 2. Hello JPA - 애플리케이션 개발 JPA의 Persistence 클래스에서 설정정보 조회 → META-INF/persistence.xml 방언(dialect)를 설정할 수 있다. 예를들어, MySql과 Oracle 문법이 다른 부분이 있는데 JPA에서 설정을 통해 해결가능하다. JPA의 Persistence 클래스에서 EntityManagerFactory 생성 EntityManagerFactory : 하나만 생성해서 애플리케이션 전체에서 공유 EntityManagerFactory에서 Enti.. 2022. 6. 20.
JPA 소개 SQL 중심적인 개발의 문제점 1. 무한반복, 지루한 코드 CRUD UPDATE… SELECT… 2. 패러다임의 불일치 객체 VS 관계형 DB 객체 → SQL변환 → SQL → RDB 개발자 = SQL 매퍼 객체와 RDB의 차이 상속 연관관계 데이터 타입 데이터 식별 방법 3. 객체를 테이블에 맞추어 모델링 class Member { String id; Long teamId; // team이 아닌 team_id 사용 String username; } class Team { Lond id; String name; } 4. 엔티티 신뢰 문제 Class MemberService { public void process() { Member member = memberDao.find(memberId); member.. 2022. 6. 20.
[Kotlin] 연산자 오버로딩과 기타 관례 사용해보기 1. 산술 연산자 오버로딩 자바 : 원시타입, String 만 가능하다. 코틀린 : 클래스, 컬렉션에도 적용 가능 1-1. 이항 산술 연산 오버로딩 + - * / % 클래스 내부에 operator fun plus 를 추가한다 data class Point(val x: Int, val y: Int) { operator fun plus(other: Point): Point { // 오버로딩 return Point(x + other.x, y + other.y) } } fun main() { val p1 = Point(10, 20) val p2 = Point(30, 40) println(p1 + p2) // Point(40, 60) // 실제로, p1.plus(p2) 로 호출된다. } 식 함수이름 특징 연산자 .. 2022. 6. 20.
[Kotlin] 코틀린 타입 시스템 사용해보기 1. 널 가능성 NullPointerException 오류를 피할 수 있게 돕기 위한 코틀린 타입 시스템의 특성 실행시점 → 컴파일시점 감지 1-1. 널이 될 수 있는 타입 널을 인자로 받을 수 있도록 변경 : 타입이름 뒤 ?를 명시한다. 따라서, 모든 타입은 기본적으로 널이 될 수 없는 타입이다. 널이될 수 있는 타입은 null값을 다루어야 한다! fun strLenSafe(s: String?): Int = if (s != null) s.length else 0 fun strLenSafe(s: String?): Int = if (s != null) s.length else 0 1-2. 안전한 호출 연산자 ?. foo?.bar() foo가 null이 아닐 때, 정상 실행 foo.bar() foo가 nul.. 2022. 6. 20.
[chap17] 프로필과 프로퍼티 프로필 목적 개발목적 설정과 실 서비스 목적의 설정을 구분해서 작성하는 것 개발 중 운영중인 DB에 접근할 수 없다. → 개발용 DB로 접근 실제 서버에 배포하려면 실 서시브 환경에 맞는 JDBC 연결 정보 사용해야함 프로필 사용하기 1-1. @Configuration 에서 프로필 사용 @Profile 설정을 다음과 같이 했다고 가정 로컬 dev @Configuration @Profile("dev") public class DsDevConfig { @Bean(destroyMethod = "close") public DataSource dataSource() { ... } } 실 서비스 real @Configuration @Profile("real") public class DsDevConfig { @Be.. 2022. 6. 9.
[chap16] JSON 응답과 용청 처리 JSON 규칙 { "name" : "유관순", "birthday": "1902-12-16", "edu" : [ { "title" : "이화학당보통과", "year" : 1916 }, { "title" : "이화학당고등과", "year" : 1919 } ] } 중괄호 이름과 값 : 응답 : @RestController @Controller @ResponseBody JSON 형태 변경 1. 제외 예외처리 @JsonIgnore Response를 정해서 반환해주는데, 이걸 굳이 사용하는 경우가 있을까? public class Member { private id; private email; @JsonIgnore private String password; } 2. 날짜 형식 변환 처리1 @JsonFormat { .. 2022. 6. 9.