Java Collection Framework 의 개요 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합 특징 배열과 달리 가변적인 크기를 가짐 데이터 삽입, 탐색, 정렬 등 편리한 API 제공 List, Queue, Set, Map 등의 인터페이스를 제공, 이를 통해 일관된 API를 사용할 수 있음 계층 및 종류 리스트 (List) : 인덱스 순서로 요소를 저장. 중복된 데이터를 저장할 수 있음. 큐 (Queue) : 데이터가 저장된 순서대로 출력되는 선입선출 (FIFO: First In First Out) 의 구조를 갖는 선형 자료구조이다. 집합 (Set) : 순서가 없고, 데이터를 중복하여 저장할 수 없음. 집합 연산 (합집합, 교집합, 차집합 등) 을 지원. ..
최악의 상황을 구체적으로 정의하라 벤저민 디즈레일리(영국 정치가) - 행동이 항상 행복을 가져다 주지는 않지만, 행동 없는 행복은 존재할 수 없다. 할 것인가, 말 것인가? 시도해야 하는가, 포기해야 하는가? 우리는 대부분 '하지 않는' 쪽을 선택한다. 고민하는 내내 '불확실하다', '실패할 것이다'라는 문장이 머릿속에 떠다니기 때문이다. 그래서 우리는 하지 않는 '불행'을 선택한다. 회사를 차려 매일 15시간씩 일했다. 그러지 않으면 당장 내일 회사가 문을 닫을지도 모른다는 불안이 내 삶 전부를 갉아먹고 있었다. 매일 새벽에 깨어나면, 회사를 떠나 재충전의 시간을 가져야 한다는 생각이 들었다. 하지만 그 생각은 출근해 사무실 문을 여는 순간 사라지곤 했다. 그러던 어느 날 책에서 다음의 문장들을 만났다..
지금 이 순간에 감사하라 알랭 드 보통 우리가 두려움에서 벗어나기 힘든 이유는 자신의 삶을 타인에게 맡기고 있기 때문이다. 자신이 진짜로 원하는 것과 향하는 곳을 알면 타인의 중요성은 약해진다. 진정한 성공이란 평화로운 상태에 놓이는 것이다. 평화로운 상태를 얻으려면 타인이 나를 이해하고 받아주기를 바라지 않아야 한다. 지금 이 순간의 좋은 일에 감사하자. 인간은 나약하다. 해고, 질병, 경제적 압박 등 조금만 상황이 틀어져도 우리는 무너진다. 나약함을 받아들이고, 무탈하게 지나가는 하루에 진심을 다해 감사할 때 극복의 길이 열린다. 샘 해리스 티베트 불교의 수행법 족첸(Dzogchen)을 아는가? 두렵고 불안할 때, 고개를 들고 맑은 하늘과 지평선 너머를 쳐다보자. 그리고 현재 경험하고 있는 것에 아무..
2022-10-28 01:23:46.064 INFO 29124 --- \[ restartedMain\] .RepositoryConfigurationExtensionSupport : Spring Data JDBC - Could not safely identify store assignment for repository candidate interface org.deco.gachicoding.comment.domain.repository.CommentRepository. If you want this repository to be a JDBC repository, consider annotating your entities with one of these annotations: org.springframew..
Index란? 우리말로 색인, 쉽게 찾아볼 수 있도록 일정한 순서에 따라 놓은 목록 DB의 Index 데이터베이스에서 조회 및 검색 성능을 향상하는 자료구조. where 절 등을 통해 활용된다. DBMS의 인덱스는 항상 정렬된 상태를 유지. 하나의 데이터베이스 객체. 데이터베이스 크기의 약 10% 정도의 저장공간 필요. DB의 스캔 방식 DB의 스캔 방식에는 Full Table Scan과 Index Scan이 있다. Full Table Scan 순차적 접근 테이블에 존재하는 모든 데이터를 읽어 가면서 조건에 맞으면 추출, 맞지 않으면 버림 접근 비용 감소 사용하는 경우 적용가능한 인덱스가 없는 경우 인덱스 처리 범위가 넓은 경우 (인덱스가 있더라도 처리 범위가 넓어 성능상의 이점이 없을 때) 작은 테이블..
데이터베이스 커넥션 애플리케이션과 데이터베이스의 연결을 뜻함 애플리케이션에서 데이터베이스에 접속하고 접속을 종료하는 일련의 과정을 의미. 풀(Pool) 필요할 때마다 개체를 할당하고 파괴하는 대신, 사용 준비된 상태로 초기화된 개체 집합 즉, 데이터베이스 커넥션 풀은 커넥션(개체)을 미리 생성해 사용 준비된 상태로 초기화된 커넥션 집합 자바의 Connection 인터페이스 java.sql 패키지에 정의된 Connection 인터페이스에는 다음과 같이 설명한다. A connection (session) with a specific database. SQL statements are executed and results are returned within the context of a connection. ..
Lock이란? 락(Lock)이란 데이터베이스에서 데이터에 잠금을 걸어 동시성을 제어하는 방법이다. 여러 사용자가 동시에 데이터베이스에 접근하여 데이터를 변경하는 상황에서 충동을 방지하기 위해 사용된다. InnoDB의 Lock MySql 공식 문서에 따르면 InnoDB는 다음과 같은 다양한 종류의 lock을 사용한다. Shared and Exclusive Locks Intention Locks Record Locks Gap Locks Next-Key Locks Insert Intention Locks AUTO-INC Locks Predicate Locks for Spatial Indexes 이 글에서는 다른 DBMS에서도 존재하는 개념인 공유 잠금과 배타 잠금에 대해서만 정리해보겠다. 공유 잠금(Share..
트랜잭션 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위 특징 원자성(Atomicity) 트랜잭션의 작업이 모두 수행되거나, 모두 수행되지 않는 것 트랜잭션 내의 모든 명령은 반드시 완벽히 수행되어야하고, 하나라도 오류가 발생하면 전부 취소되어야 함 일관성(Consistency) 데이터베이스의 상태는 일관되어야 함. 트랜잭션의 처리 전, 후 데이터베이스의 상태는 항상 유효해야 함을 의미 트랜잭션 처리 후 여전히 데이터베이스의 제약조건 및 데이터 규칙에 위배되지 않는 것 격리성(Isolation) 트랜잭션은 다른 트랜잭션으로부터 독립(및 격리)되어있어야 하는 것 여러 개의 트랜잭션은 서로 격리되어 마치 순차적으로 실행되는 것처럼 작동 여러 개의 격리 수준으로 나뉘어 격리성을 보장 지속성(D..