JPA - Auditing
JPA를 사용하면서 한가지 항상 해야할 것이 있다. 항상 DTO를 Entity로 바꿔주는 일이다. 이러한 과정을 거칠 때면 한가지 상황이 생길 수 있다. 예를들어 DTO는 아이디, 비밀번호로 구성이 되어있고 Entity는 아이디, 비밀번호, 생성일자, 최근 수정일자, 생성한 사람, 수정한 사람의 프로퍼티로 구성되어있다고 가정하자. MappedSuperClass 이 때, 추가적인 정보들에 대해서 또한 자주 다른 Entity 생성시에도 저런 정보가 계속 추가된다면, 하나로 묶어놓고 항상 자동으로 생성해 삽입된다면 굉장히 편할 것이다. JPA Auditing 사전적인 의미로는 감사, 감시라는 의미이다. 리스너처럼 JPA의 상황을 주시하다가 특정 동작을 수행(누가, 언제 이 엔터티에 접근했는지 변경했는지)하는 ..
모험가 길드
문제 공포도가 X인 모험가는 반드시 X명 이상의 길드원이 필요하다. 예를 들어, 한 모험가의 공포도가 3이면 그 사람은 3명 이상의 길드에 들어간다. 모험가들의 수, 각각의 공포도가 주어질 때, 만들 수 있는 길드의 최대 수를 구하라 (단, 모든 모험가가 길드에 속할 필요는 없다.) 유형 파악 그리디 문제들은 최소한의, 최대한의, 가장 큰, 가장 작은 등의 단어가 들어간다. 이런 단어가 나온다면 항상 그리디는 아니지만 그리디를 먼저 의심하는 습관이 필요하다. 아이디어 및 정당성 만약, 공포도가 2 3 1 2 2이라고 가정하자 이 때, 정렬하면 1 2 2 2 3 이다. 1은 혼자서도 그룹이 가능하다. 2는 둘 이상의 사람이 필요하다, 3은 세명 이상의 사람이 필요하다. "공포도가 적은 사람일 수록 많은 팀..