분류 전체보기 (142) 썸네일형 리스트형 연관관계 맵핑 연관관계 맵핑 (단방향, 양방향) 테이블 외래키 하나로 양쪽으로 조인 가능 사실 방향이라는 개념이 없다 멤버와 팀 중 하나만 외래키를 두면 됨 객체 참조용 필드가 있는 쪽으로만 참조 가능 한쪽만 참조하면 단방향 양쪽이 서로 참조하면 양방향 (사실 단방향이 두 개) 연관관계의 주인 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺은 객체 양방향 관계는 A->B, B ->A 처럼 참조가 두 개 객체 양방향 관계는 참조가 2군데 있음, 둘 중 테이블의 외래 키를 관리할 곳을 지정해 주어야 함 (연관관계의 주인 설정) 연관관계의 주인: 외래 키를 관리하는 참조 주인의 반대편: 외래 키에 영향을 주지 않음(update X), 단순 조회만 다대일 [N:1] 단방향 다 쪽에 외래키가 있어야 가장 많이 사용 다대일 .. [Scala] State 6.1 부수 효과를 이용한 난수 발생 scala에서 제공하는 부수 효과에 의존하는 상당히 전형적인 imperative API 인 scala.util.Random를 이용하여 난수를 생성할 수 있다. scala.util.Random 안에서 일어나는 일을 알지 못해도 난수 발생기 객체 rng는 다른 랜덤 값을 생성하여 돌려주기 위해, 그 내부에 메서드 호출 때마다 갱신되는 내부 상태가 존재함을 가정할 수 있다. 상태 갱신은 부수효과로서 수행되므로 참조 투병하지 않다. 이러한 참조 투명하지 않은 함수는 검사, 합성, 모듈화가 어렵고, 쉽게 병렬화할 수 없다. - 검사 무작위성을 활용하는 메서드를 작성할 때에는 그런 메서드의 재현성을 검사할 필요가 있다. 주사위를 흉내 내는 다음 메서드는 반드시 1 이상 6 이하.. [Scala] Data Structures 3.1 함수적 자료구조의 정의 순수함수는 자료를 변경하거나, 기타 부수 효과를 수행하는 일이 없어야함. 따라서 함수적 자료구조는 정의에 의해 불변이 ( Immutable ) 이다. 자료구조의 조작시 기존의 변수를 수정하는 것이 아닌, 새로운 변수를 생성. 그렇다면, 여분의 복사가 많이 일어나지 않을까? 답은 "그렇지 않다" trait 하나의 추상 인터페이스로, 필요하다면 메서드의 구현을 담을 수 있다. sealed 모든 메서드가 이 파일 안에 선언되어 있어야 함을 뜻함 (abstract class를 사용해도 된다) case list의 두가지 구현, 즉 두가지 자료 생성자 이들은 list가 취할 수 있는 두 가지 형태를 나타낸다. 공변과 불변에 대해 trait List[+A] 선언에서 형식 매개변수 A 앞.. JPA 엔티티 메니저 -> 내부적으로 DB 커넥션 이용-> 영속성 컨텍스트 유지 엔티티 메니저 안에 영속성 컨텍스트가 존재 영속성 컨테스트 란? 엔티티를 영구 저장하는 환경 논리적 개념. persist : 디비에 저장하는 것이 아니라 영속성 컨텍스트에 저장한다.!! 엔티티 생명주기 - 비영속: 새로운 상태 객체만 생성한 상태. JPA와 관계 없는 상태 - 영속: 영속성 컨택스트에 의해 관리되는 상태 entity.persist(member); // member 객체를 영속성 컨텍스트에 등록한 상태 // 사실은 디비에 저장되지 않는 상태 디비 query는 트렌젝션 커밋할 때 .. - 준영속 em.detatch() - 삭제 em.remove() 영속성 컨텍스트가 존재하면, ?? 쿼리, 캐싱의 이점을 얻을 수 있다. .. [Scala] Functional data structures 3.1 함수적 자료구조의 정의 예를 들어 순수 함수 +에서, 3 + 4을 수행했을 때 3이나 4의 값이 변경되는 일 없이 새로운 값 7이 생성된다. 함수적 자료구조로 정의된 List에 새로운 항목을 추가해도 기존 List가 변경되지는 않는다. package fpinscala.datastructures sealed trait List[+A] // A 타입 List case object Nil extends List[Nothing] // empty list 생성자 case class Cons[+A](head: A, tail: List[A]) extends List[A] // nonempty lists를 나타내는 또 다른 생성자. // tail은 또 다른 List[A]로 Nil일 수도 Cons일 수도 있다. .. [Scala] Getting started with functional programming in scala 2.1 스칼라 언어의 소개: 예제 하나 private def formabAbs(x: Int) = { val msg = "The absolute value of %d is %d." msg.format(x, abs(x)) } private def formatFactorial(n: Int) = { val msg = "The factorial of %d is %d." msg.format(n, factorial(n)) } // 꼬리 재귀가 아닌 예: stack-overflow 위험이 있다. def factorial(n: Int): Int = { if (n Boolean): Int = { @annotation.tailrec def loop(n: Int): Int = if (n >= as.length) -1 else.. [JavaScript] enhanced object shorthand properties [JavaScript] template tag function 태그를 사용하면 템플릿 리터럴을 함수로 파싱 할 수 있습니다. 태그 함수의 첫 번째 인수는 문자열 값의 배열을 포함합니다. 나머지 인수는 표현식과 관련됩니다. 결국 함수는 조작 된 문자열을 반환. expression의 수는 언제나 string의 수보다 하나 적다 ✔️tag function을 이용하여 strings 또는 expressions 중 하나를 순회하여 특정 포멧 적용하기 이전 1 ··· 8 9 10 11 12 13 14 ··· 18 다음