-
Floyd’s Tortoise and Hare - Two Pointers전공 지식/자료구조 && 알고리즘 2025. 4. 9. 01:05
LinkedList 에서 Cycle 이 존재하는지 확인 & Cycle 이 시작하는 위치를 찾는 방법 bool hasCycle(ListNode *head) { ListNode* slow = head; ListNode* fast = head; while(fast != NULL && fast->next != NULL) { slow = slow -> next; fast = fast->next->next; if(fast == slow) return true; } return false; } * Cycle 이 있다면 결국 두 포인터가 만난다 라는 부분에서 착안함.- Cycle 이 ..
-
Boyer moore majority vote algorithm 보이어무어 과반수 투표 알고리즘전공 지식/자료구조 && 알고리즘 2025. 3. 16. 19:17
Boyer moore majority vote algorithm 보이어무어 과반수 투표 알고리즘- 배열에서 과반수를 차지하는 숫자를 시간복잡도 O(n), 공간복잡도 O(1) 에 찾을 수 있는 알고리즘- 항상 과반수가 존재 할 때 성립하는 알고리즘임 int candidate = nums[0];int count = 1;for(int i = 1; i 1. 과반수가 될 후보를 골라낸다. 처음은 nums[0];2. 반복문을 돌며 과반수가 맞는지 확인하는 과정을 거친다.2-1. 과반수에 해당하는 숫자가 없다면 현재 숫자를 과반수 후보로 지정2-2. 현재 숫자가 과반수 후보와 같다면 갯수를 1 증가 시킨다.2-3. 과반수 후보와 다르다면 1을 감소 시킨다.--------------------------------..
-
Hibernate / MyBatis알아두면 좋은것 2023. 8. 22. 22:22
Hibernate MyBatis 컴파일 타임 오류 감지 런타임에 오류 감지 객체 지향적 Query Mapping 만 단순히 가능 복잡한 쿼리 불가능 대용량 처리가 어려움 N+1 문제 1차캐시, 쓰기지연, 변경감지, 지연로딩을 제공 JPA N+1 문제 의존관계를 가진 부모객체를 다건 쿼리할 경우, 자식 객체들에 대한 의존을 참조하면 N회 쿼리가 되는 문제 FetchType 를 Lazy 로 설정함 Fetch Join 을 사용함 (JPQL 로 작성해야함) FetchMode.SubSelect 를 이용함. 연관관계의 데이터를 조회 할 때, 서브 쿼리로 함께 조회하는 방법. BatchSize
-
Transaction - ACID 특성알아두면 좋은것 2023. 8. 19. 19:29
A: Atomicity 원자성 - 트랜잭션의 작업이 부분적으로 실행되거나 중단되지 않는 것. - 모두 성공하거나 모두 실패해야함. (일부분만 실행되지 않아야함) - rollback segment 를 통해 보장함 C: Consistency 일관성 - 트랜잭션 전후로 일관적인 DB 상태를 유지 하는 것 - 전후로 DB 규칙이 바뀌지 않는 것임 - triggering I: Isolation 고립성 - 트랜잭션 수행 시 다른 트랜잭션이 끼어들 수 없는 것 - 여러개 트랜잭션이 동시에 수행 한 결과 == 한개씩 수행 한 결과가 동일함. 서로 간섭 할 수 없기에 동시에 수행 되어도 하나씩 처리가 될 것임 - 트랜잭션 격리 수준의 설정을 잘 해야함 (shared lock, exclusive lock) D: Durab..
-
JPA Open-Session-In-View OSIV알아두면 좋은것 2023. 8. 19. 19:29
Open-Session-In-View OSIV - 영속성 컨텍스트가 트랜잭션 범위를 넘어선 레이어까지 살아있는지? T/F - API : 클라이언트에게 응답 / view - 렌더링 될 때까지 영속성 컨텍스트가 살아있음 False True True 인 경우엔 영속 상태로는 남아있기 때문에 OneToMany 와 같은 Fetch 시에 LazyLoading 인 상태인 데이터를 가져 올 수 있음 영속성 컨텍스트를 유지한다는 것은 DB Connection 을 계속 가지고 있는 것 -> 실시간 트래픽이 중요 한 경우 DB Connection 이 모자랄 수 있어서 성능상으론 False 가 유리함
-
CAP 이론알아두면 좋은것 2023. 8. 19. 19:29
C: Consistency 일관성 A : Availability 가용성 P : Partition Tolerance 분할 허용성 적정한 응답 시간 내에 세가지 속성을 모두 만족시키는 분산 시스템을 구성 할 수 없다는 이론 - 분산 데이터베이스 시스템은 반드시 네트워크 장애나 여러 이유들로 인해 장애가 발생할 수 밖에 없다. 그러므로 분산 데이터베이스 시스템은 반드시 분할 허용성을 가지고 있어야 하며, 일관성과 가용성 중 하나를 선택해야만 한다. 일관성 : 분산 데이터베이스 상의 어떤 노드와 통신하는 지 상관없이 같은 데이터를 조회할 수 있는 것을 의미함. 조회한 데이터 -> 가장 최근에 쓰여진 데이터. 하나의 노드 (Master) 에 쓰기 작업이 이루어졌다면 이는 모든 복제본에 반영이 되어야한다. 사용자..