본문 바로가기

CS

(7)
[DB] Connection Pool 간단 정리 (DBCP2 기반) 커넥션 풀(Connection Pool) 이란?일정 수의 DB 커넥션을 미리 생성해 풀(Pool)에 저장하고, 필요할 때 대여/반납 하는 방식 -> (Thread 풀과 유사) 커넥션 풀 설명에 앞서, DB 커넥션에 대해 간단하게 먼저 알아보자.(선행 개념) - DB Connection클라이언트(애플리케이션) DB 서버 간 통신 연결 객체 - JDBC -> Connection 객체// DB 정보 입력 (url, id, pw)Connection connection = DriverManager.getConnection("{url}, {id}, {pw}"); JDBC 에서 DB 커넥션은 Connection 객체를 이용해서 다룬다. 이를 위해 DriverManager 클래스의 메서드를 사용하는데, 내부 정보는 ..
[DB] JDBC 간단 정리: 설정부터 사용까지 JDBC란?JDBC(Java Database Connectivity) 는 자바에서 데이터베이스와 연결하고, SQL 을 실행할 수 있게 해주는 표준 API 이다.Java 프로그램 DBMS 연결SQL 실행, 트랜잭션 처리, 결과 조회 가능JDBC 드라이버를 통해 DB와 연결JDBC 기본 흐름JDBC 드라이버 로딩 - DBMS에 맞는 드라이버를 JVM에 로드함DB 연결 (Connection) - DB에 연결해 커넥션 객체를 얻음SQL 실행 (Statement/PreparedStatement) - 쿼리를 작성하고, 실행결과 처리(ResultSet) - 쿼리 결과를 가져와 데이터를 읽는다자원 해제 (Close) - 사용한 리소스 해제 (try-with-resource 구문 사용 가능)JDBC 기본 예제publi..
HTTP 간단 정리 HTTP(HyperText Transfer Protocol)는 클라이언트와 서버 간의 데이터를 교환하기 위해 만들어진 통신 규약이다.클라이언트가 서버에게 요청하고, 서버는 그에 맞는 응답을 약속된 구조로 보내는 것 위의 개념을 중심으로, HTTP는 아래의 특징들을 가지고 있는 일종의 편지라고 생각하면 된다.요청응답무상태성 비연결성응답과 요청은 우리가 흔히 알고 있는 Request/Response 방식이고, 무상태성은 서버가 클라이언트의 상태를 보존하지 않는 것을 의미한다. 이는 동일한 연결 상에서 전달되었다고 하더라도, '이전 요청'과 '다음 요청'이 서로 연관이 없다는 말이다. 이에 대해서는 나중에 다시 다뤄보겠다. 비연결성은 클라이언트 요청에 서버가 응답을 완료하면 연결을 종료하는 성질을 말하는데, ..
무결성 제약조건 데이터의 무결성을 유지하려면 어떻게 해야할까? 데이터베이스에 정확한 정보만을 기입하면 될 것이다. 그러나, 아무리 꼼꼼하게 데이터를 저장한다 해도, 한번의 실수가 데이터베이스의 무결성을 해치게 될 것이다. 이를 위해 무결성 제약조건을 미리 정의하여 부정확한 정보가 입력되는 것을 미연에 방지하자. 무결성 제약조건은 데이터베이스 스키마에 명세되어, 데이터베이스 인스턴스에 저장될 수 있는 데이터를 제한한다. 이때, 명세와 실제로 무결성 제약 조건이 집행되는 시기는 다르기 때문에, 유의해야한다. - 명세 : 데이터베이스 관리자가 데이터베이스 스키마를 정의할 때 무결성 제약조건을 정의한다.- 집행 : 데이터베이스 응용이 실행될 때 DBMS가 명세되어 있는 무결성 제약조건을 위반하는 사항에 대해 검사한 후 데이터 ..
릴레이션(Relation) 릴레이션(Relation)은 관계형 데이터베이스(RDB)에서 데이터를 구조적으로 표현하는 기본 단위이다. 릴레이션은 (릴레이션 스키마 + 릴레이션 인스턴스) 로 이루어진다. 릴레이션 스키마(Relation Schema) 란?데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 의미한다. 릴레이션 스키마는 릴레이션 이름, 각 속성(Attribute)의 이름, 각 속성의 도메인(Domain)을 명세한다. 도메인은 속성의 값, 타입 제약조건 등에 대한 값의 범위로, 릴레이션 스키마에서는 도메인 이름 으로 명세한다. 한마디로 테이블의 설계도라고 보면 된다. - 릴레이션 스키마 명세 (예시)학생(학번: 문자열, 이름: 문자열, 학과: 문자열, 학년: 정수)학생 : 릴레이션(테이블) 이름(학번, 이름, 학과, 학년..
데이터베이스 기본 개념 정리 (RDBMS vs NoSQL) 데이터베이스와 DBMS란?데이터베이스란?체계적으로 저장된 데이터의 집합을 의미한다.즉, 여러사람이 데이터를 쉽게 접근, 관리, 활용할 수 있도록 만든 저장 공간 - 주요 특징일관성 : 데이터가 논리적으로 일관성을 유지해야 함.무결성 : 데이터가 정확하고 신뢰할 수 있어야 함.보안 : 데이터 접근 권한을 설정할 수 있어야 함.동시성 : 데이터를 여러명이 동시에 접근해도 문제가 없어야 함.영속성 : 데이터가 영구적으로 저장될 수 있어야 함.DBMS(Database Management System) 란? 데이터베이스를 관리하는 소프트웨어이다.단순히 파일 시스템이 아니라, 데이터를 효율적으로 저장, 검색, 수정, 삭제 하는 기능을 제공한다. - 주요 기능데이터 저장 및 관리 : 데이터를 저장하고 쉽게 관리할 수..
[Socket] 소켓 기본 개념과 TCP 이해 소켓(Socket) 이란?소켓(Socket)은 네트워크 상에서 데이터를 주고받기 위한 양쪽 끝점(endpoint)이다. 쉽게 말해, 인터넷을 통해 컴퓨터끼리 대화를 나누려면 서로 연결되는 "통로"가 필요한데, 그 통로가 바로 소켓이다. 소켓을 전화 주문에 비유해보겠다. 음식점(서버) : 여러 손님(클라이언트)에게 음식을 판매하는 곳손님(클라이언트) : 음식점에 전화해서 음식을 주문하는 사람전화(소켓) : 주문을 주고받기 위한 통로전화번호(IP + 포트) : 해당 음식점에 전화를 걸기 위한 주소손님(클라이언트)은 음식점(서버)에 전화를 걸어(소켓 연결) 주문을 하고(데이터 전송) 음식점에서 주문을 받아 응답하는 형식이다. 아래에서 조금 더 자세하게 소켓에 대해 살펴보겠다.소켓의 기본 개념소켓은 기본적으로 ..