Computer Science

💋 인트로 안녕하세요. 우아한테크코스 5기 깃짱이라고 합니다. 이번 포스팅에서는 DB Connection Pool Size를 줄일 수록 오히려 성능이 개선될 수 있는 이유에 대해서 작성했습니다. 아래 내용은 HikariCP에서 작성한 깃허브 Wiki의 내용을 토대로 작성했습니다. 💋 커넥션 풀의 크기를 결정할 때, 얼마나 작게 하는지가 더 중요하다? 커넥션 풀을 설정하는 것은 개발자들이 자주 실수하는 부분입니다. 커넥션 풀을 구성할 때 이해해야 할 몇 가지 원칙이 있습니다. 동시에 10,000명의 사용자가 있는 서비스를 상상해보세요. 아마도 페이스북처럼 대규모는 아니더라도 10,000명의 사용자가 동시에 데이터베이스 요청을 하는 경우입니다. 이는 초당 약 20,000개의 트랜잭션을 의미합니다. 이때 커넥..
💋 인덱스란? 데이터베이스의 테이블에서 데이터를 검색하고 정렬하는 데 사용되는 구조 예를 들어, 한 대학교에서 학생들 테이블을 관리한다고 생각해 보자. column으로는 id(primary key), name, age, major 등등이 있다. 이때 이름을 기반으로 한 검색이 매우 많다고 하자. 예를 들어 아래와 같은 검색이다. SELECT * FROM STUDENTS WHERE NAME='깃짱'; 이 경우에 매번 primary key로만 정렬된 테이블에서 '깃짱'이라는 이름을 한 학생을 찾으려면 테이블을 전부 뒤져봐야 한다. 이렇게 값을 찾는 방식을 full scan이라고 한다. 대강 생각해봐도 상당히 비효율적이다. 이름 기반 검색이 자주 사용된다면, 이름을 가나다 순으로 만든 테이블을 별도로 두고 관..
💋 H2 데이터베이스 버전 확인 버전 확인 방법이다! 먼저 h2 데이터베이스에 들어간다. 쿼리문으로 아래 명령어를 작성하고 실행한다. SELECT H2VERSION() FROM DUAL; 버전을 확인할 수 있다!
네트워크 지식은 전공지식이어서 그런가, 공부를 해도 해도 하루만 지나도 계속 까먹는다. 이번엔 진짜 잊지 않겠다는 마음으로 포스팅을 꼼꼼히 쉬운 언어로 해보려고 한다. 다른 사람들에게도 도움이 되면 좋겠다! 💋 OSI 7 Layer란? OSI 7 계층은 네트워크 통신에서 기본이 되는 구조로, 네트워크 관련 기술을 공부하거나 개발할 때 중요한 개념 중 하나이다. 내가 어딘가 다른 컴퓨터로 데이터를 보내고 싶다 하면, 처음에는 가장 사람의 언어에 가까운 Application Layer부터 시작한다. 아래 계층으로 내려갈 수록 데이터를 전송할 수 있는 형태로 네트워크 개발자들이 정해놓은 수많은 약속에 따라 포장하고, 결국에는 전송 가능한 전선에 보내는 01010101의 형태로 만들어서 다른 컴퓨터로 보내게 된..
💋 H2란? H2는 가볍고 편리한 데이터베이스다. 개발 과정에서, 혹은 테스트 용도로 주로 사용하며, SQL을 실행할 수 있는 간단한 화면을 제공한다. 💋 H2 설치하기 ✔ H2 dependencies 추가 build.gradle 파일에서 dependencies에 아래와 같은 코드를 추가한다 runtimeOnly 'com.h2database:h2' 반드시 새로고침 ✔ 스프링부트 버전에 맞는 h2 다운로드 https://www.h2database.com/html/download-archive.html Archive Downloads www.h2database.com 위 사이트에 들어가서 내 스프링부트 버전에 맞는 h2를 설치한다. 현재 내 스프링부트 버전에 맞는 h2 버전은 프로젝트 바에서 아래와 같이 ..
💋 다중 기본키가 왜 필요함? 오늘 이리내랑 JAVA로 만든 체스 게임을 DB에 연결하고 있었다. 체스판에서 각 위치를 A1, A2, A3,...,B1,B2,...H8라고 부르는데, 우리는 각 위치에 체스말(Piece)의 종류(King, Queen, Knight...)와 그 색깔(Black, White)을 저장하고 싶었다. 아마도 두 가지 방법이 있을 것이다. 1. A,B,C...H(File)과 1,2,...8(Rank)를 다중 기본키로 설정하는 방법! 만약 내 코드가 이 두 가지를 Position이라는 클래스 내에서 별도로 관리중이라면 굉장히 유용할 것이다. 이 경우 다중 기본키를 지정한 테이블을 만들어야 한다. 💋 다중 기본키 테이블 만들기 (SQL) CREATE TABLE chess_game( po..