h2 란 무엇일까? document를 살펴보자 http://h2database.com/html/main.html the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; disk-based or in-memory databases Transaction support, multi-version concurrency Browser based Console application 특징을 살펴보면 -> 자바 sql db이며, 빠르고 내장형 인메모리 db이며 브라우저 기반의 콘솔 어플이다. Connection Modes Embedded mode (local connectio..
Entity를 영구 저장하는 환경 엔티티의 생명주기 - 비영속 : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 - 영속 : 영속성 컨텍스트에 관리되는 상태 - 준영속 : 영속성 컨텍스트에 저장되었다가 분리된 상태 - 삭제 영속성 컨텍스트의 이점 - 1차 캐시 : 영속 컨텍스트에 pk로 지정한 id 값이 엔터티와 함께 key와 value로 저장되어 있다. JPA의 Find~~ 는 모두 영속성 컨텍스트에서 1차 캐시로 엔터티를 갖고오는 것이다. Member member = new Member(); member.setId("member1"); member.setUsername("회원"); // 엔티티 영속 em.persist(member) 단, 1차 캐시는 하나의 트랜잭션 안에서 발생하는 캐시이다. 전체가..
코드 작성 후 실행 시 테스트 코드로 모두 커버하지 못하는 영역이 있으며 (사실 테스트 코드로 대부분 커버를 해야한다... 아직 테스트 코드를 작성 할 줄 몰라서ㅎㅎㅎ) 테스트 코드를 제대로 작성하지 못하는 상황이라면 에러를 자세히 살펴보면서 프로그래밍을 진행해야한다. 에러를 콘솔에서 볼 수도 있지만, 대체적올 에러를 기억하고 비슷하게 발생하는 에러를 보기 위해서는 에러를 따로 모아서 관리하는게 좋겠다는 생각을 해보았다. 그래서 logback을 이용하여 로그를 파일로 관리하는 방법을 알아보고 로그를 다양한 방법으로 관리하는 방법을 알아보자. 아래의 document를 살펴보면서 공부해보자. https://docs.spring.io/spring-boot/docs/2.1.8.RELEASE/reference/h..

이번 주 배운 내용을 상기시켜보자... 크흠... 뭐 배웠냐... ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ heap - 힙은 완전 이진 트리이다. - 힙은 최대, 최소 값을 빠르게 찾기 위한 자료구조이다. - 힙은 반정렬된 상태이다. (부모노드와 자식노드간의 관계가 중요하다.) 최대힙, 최소힙 이냐에 따라서 노드간의 관계가 달라진다. heap구현을 살펴보자. class BinaryMaxHeap: """ init len percolate_up percolate_down insert extract """ def __init__(self): self.items = [None] def __len__(self): return len(self.items) - 1 def _percolate_up(self): cur = len(self) ..
""" 고정점이란, 수열의 원소 중에서 그 값이 인덱스와 동일한 원소를 의미한다. 예를 들어 수열 a = [-15, -4, 2, 8, 13]이 있을 때, a[2] = 2이므로, 고정점은 2가 된다. 하나의 수열이 N개의 서로 다른 원소를 포함하고 있으며, 모든 원소가 오름차순으로 정렬되어 있다. 이 때 이 수열에서 고정점이 있다면, 고정점을 출력하는 프로그램을 작성해라. 고정점은 최대 1개만 존재한다. 만약 고정점이 없다면 -1을 출력한다. 단, 이 문제는 시간 복잡도 O(logN)으로 알고리즘을 설계하지 않으면 '시간 초과' 판정을 받는다. """ """ IDEA mid 와 lst[mid]를 계산해 나간다. mid는 인덱스로 0,1,2,3... 으로 진행한다. 해당 mid는 함수로 y = x 로 표현할..
""" N개의 원소를 포함하고 있는 수열이 오름차순으로 정렬되어 있습니다. 이때 이 수열에서 x가 등장하는 횟수를 계산하세요. 단, 이 문제의 시간 복잡도 O(logN)으로 알고리즘을 설계하지 않으면 '시간 초과' 판정을 받습니다. 입력 예시 7 2 1 1 2 2 2 2 3 출력 예시 4 """ import bisect """ 해당 문제를 푸는데 기억해야할 것은 '정렬'된 배열이라는 것이다. 즉, target의 숫자의 가장 왼쪽과 오른쪽 idx를 구한 후 해당 idx의 차이를 반환하면 된다. """ def solution(lst, target): left_idx = bisect.bisect_left(lst, target) if not (0
https://leetcode.com/problems/search-in-rotated-sorted-array/ Search in Rotated Sorted Array - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com There is an integer array nums sorted in ascending order (with distinct values). Prior to being passed to your function, nums is possibly r..
이진탐색 정렬된 배열을 절반씩 줄여나가면서 탐색하는 기법 https://leetcode.com/problems/binary-search/ Binary Search - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 구현 def bs1(lst, target): def bs(start_index, end_index): # start_index 와 end_index가 == 경우 해당 값을 찾은 경우 이므로 -1을 리턴하면 안된다. if start_index > end_..