전체 글

전체 글

    [Concept/Algorithm] 이분/이진 탐색 (Binary Search)

    이분 탐색 알고리즘은 정렬된 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법입니다. 이분 탐색 알고리즘은 배열 내부의 데이터가 정렬되어 있어야만 사용할 수 있는 알고리즘입니다. 변수 3개 시작, 끝, 중간 값(start, end, mid)을 사용하여 탐색합니다. 찾으려는 target과 중간 위치 값 mid를 반복 비교하여 원하는 데이터를 찾아가는 과정입니다. 시간복잡도는 단계마다 범위를 절반으로 줄여나가므로 O(logN) 입니다. ex) 32개 데이터-> 16개 데이터-> 8개-> 4개 이분 탐색은 반복문과 재귀 호출 방식으로 구현할 수 있습니다. public classBinary_Search { //재귀 호출 방식으로 구현 private static intbinary_search_recu..

    [ORM > JPA] 영속성 컨텍스트

    [ORM > JPA] 영속성 컨텍스트

    EntityManagerEntityManager는 Entity(객체와 테이블이 매칭되는 개념)를 관리하는 역할을 합니다.EntityManagerFactory가 요청이 올때마다 생성하는 비용이 매우 크기 때문에, 대신 생성비용이 거의 없는 EntityManager가 생성됩니다.public interface EntityManagerFactory { /** * Create a new application-managed EntityManager. * This method returns a new EntityManager instance each time * it is invoked. * The isOpen method will return true on the returned..

    CS 정리 [자료구조]

    CS 정리 [자료구조]

    해당 포스팅은 "기출로 대비하는 개발자 전공면접 [CS 완전정복]"을 수강하며 정리하였습니다. 기술면접에 대비하기 위해 많은 내용을 담지 않은 "질문과 작성" 틀을 갖춘 내용으로 작성할 예정입니다 다음과 같은 순서로 작성합니다. 🟥 질문 keyword 🚀 답변 (모든 답변은 더보기를 누르면 확인할 수 있습니다.) 🔏 추천 자료구조 🟥 Array는 어떤 자료구조인지 설명해주세요. keyword ✔️ 메모리에 순차적인 데이터 저장 ✔️ 고정된 저장 공간 🚀 더보기 Array는 "고정된 저장공간으로 할당"하여, 연관된 data를 메모리 상에 "순차적으로 저장"하는 자료구조입니다. 장점 Array는 index 기능을 이용하므로 조회와 마지막 인덱스에 데이터 추가하는 것이 빠릅니다. 단점 고정된 크기라는 배열의 ..

    Spring Boot에서 Connection Pool 이용하기 (HikariCP)

    Spring Boot와 MySQL을 연동한 상태에서 HikariCP 라이브러리를 이용해 Connection Pool을 직접 등록하고 이를 이용하여 쿼리문을 수행하는 실습을 진행하겠습니다.  의존하고 있는 라이브러리들은 아래와 같습니다.dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.testng:testng:7.1.0' implementation 'junit:junit:4.13.1' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testI..

    🌼 Connection Pool

    🌼 Connection Pool

    👋 어쩌다 등장했나?일반적인 데이터 연동과정은 웹 애플리케이션이 필요할 때마다 데이터베이스에 연결하여 작업하는 방식입니다.더보기일반적인 데이터베이스 연결 Life Cycle아래 단계만 봐도 데이터베이스 연결은 상당한 비용이 소모되는 작업임을 알 수 있습니다.데이터베이스 드라이버를 로드한 후 데이터베이스로의 연결 객체를 생성하여 open데이터 조회/생성을 위해 TCP Socket open소켓을 통해 데이터를 읽고 쓴다.연결 close소켓 close아래 내용은 INSERT문을 수행하는 과정에서 필요한 비용의 비율을 나타냅니다. (MySQL 8.0 기준)  : 참고 링크Connecting: (3)Sending query to server: (2)Parsing query: (2)Inserting row: (1..

    [JAVA] 프로그래머스 - 행렬 테두리 회전하기 LV2

    [JAVA] 프로그래머스 - 행렬 테두리 회전하기 LV2

    문제는 아래 링크를 통해 확인해주세요. 조건 rows, columns가 주어지면 규칙에 맞게 matrix를 초기화한다. (+1씩 증가하는 규칙! i행 j열의 수는 ((i-1) x columns + j) 이라는 규칙이 있다고 지문에 나와있기도 한다.) rows와 columns는 2 이상 100 이하 queries의 각 행은 [x1, y1, x2, y2]로 이루어지고, 행(회전)의 개수는 1 이상 10,000 이하 x1과 x2는 1 이상 rows 이하, y1과 y2는 1 이상 columns 이하 회전을 한 값들 중 최솟값을 구하여 배열에 담아야 한다. 시계방향으로 회전한다. 회전 시 테두리의 값들만 변화가 있다. 시작위치(왼쪽 위)는 x1, y1이고 끝(오른쪽 아래) 위치는 x2, y2이다. 설계 1. 좌측..