Java 102

JDBC 트랜잭션 관리와 배치 처리

트랜잭션 관리(commit, rollback) 트랜잭션은 여러 SQL 문을 하나의 작업 단위로 묶어주는 것을 의미한다. commit은 트랜잭션을 완료하여 변경사항을 저장하고, rollback은 트랜잭션을 취소하여 변경사항을 되돌린다.  트랜잭션의 개념과 중요성트랜잭션의 개념:트랜잭션(Transaction)은 데이터베이스에서 하나의 논리적인 작업 단위를 의미한다. 여러 SQL 문이 하나의 작업으로 묶여서 실행된다.트랜잭션은 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)의 특성을 갖는다. 이를 ACID 특성이라고 한다.💡 원자성 (Atomicity) 원자성은 트랜잭션의 모든 작업이 성공적으로 완료되거나, 전혀 실행되지 않은 상태를 보장..

Java 2024.06.27

JDBC 기본 사용법

DriverManager 를 이용한 연결DriverManager 클래스는 JDBC 드라이버를 관리하고 데이터베이스와의 연결을 설정하는 데 사용된다. 1. 드라이버 로드 :먼저, JDBC 드라이버를 메모리에 로드한다.try { Class.forName("com.mysql.cj.jdbc.Driver"); // MySQL 드라이버 로드} catch (ClassNotFoundException e) { e.printStackTrace();}  데이터베이스 연결DriverManager.getConnection() 메소드를 사용해 데이터베이스와의 연결을 설정한다.예제 코드String url = "jdbc:mysql://localhost:3306/mydatabase?serverTimezone=Asia/Seo..

Java 2024.06.14

JDBC 구성 요소(아키텍처)

JDBC 아키텍처는 Java 애플리케이션과 데이터베이스 사이의 상호작용을 담당하는 여러 구성 요소로 이루어져 있다.각 구성 요소는 특정 역할을 수행하며, 이들이 어떻게 작동하는지 이해하는 것이 중요하다. JDBC 구성 요소DriverManagerDriverConnectionStatementResultSetSQLException 1. DriverManagerDriverManager는 JDBC 드라이버들을 관리하는 클래스이다. 데이터베이스 연결을 설정하기 위해 사용된다.애플리케이션이 데이터베이스에 연결 요청을 하면, DriverManager는 적절한 JDBC 드라이버를 찾아 연결을 설정한다.DriverManager는 여행사와 같다. 여행사는 여러 항공사와 협력하여 고객에게 적합한 항공편을 찾아주는 역할을 한..

Java 2024.06.14

JDBC

JDBC는 Java Database Connectivity의 약자로, Java 프로그램에서 데이터베이스에 연결하고 SQL 쿼리를 실행하여 데이터를 주고받는 표준 API이다. JDBC는 마치 커피숍에서 주문하는 바리스타와 같다. 우리가 원하는 커피를 주문하면 바리스타는 커피 머신과 재료를 사용해 커피를 만들어준다.JDBC는 Java 애플리케이션이 데이터베이스와 대화할 수 있도록 도와주는 중간다리이다. JDBC 개발 배경1990년대 중반, 기업들은 데이터를 효율적으로 저장하고 관리하기 위해 다양한 데이터베이스 관리 시스템(DBMS)을 사용하기 시작했다.그러나 문제는 각 데이터베이스가 서로 다른 접근 방식을 요구했다는 점이다.예를 들어, Oracle 데이터베이스에 접근하는 방식과 MySQL 데이터베이스에 접근..

Java 2024.06.14

1:1 양방향 통신

서버측 코드 작성인풋스트림, 아웃풋 스트림 둘 다 필요하다.package ch03;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class ServerFile { public static void main(String[] args) { // * 준비물 // 1. 서버 소켓이 필요 // 2. 포트 번호가 필요 ( 0 ~ 65535 까지 존재 ) // 2.1 잘 알려진 포트 번호 : 주로 ..

Java 2024.06.12

1:1 단방향 통신 (클라이언트측)

package ch02;import java.io.IOException;import java.io.PrintWriter;import java.net.Socket;public class ClientFile { public static void main(String[] args) { // 클라이언트 측 준비물 // 1. 서버 측 IP 주소와 포트 번호 // 2. 서버 측 소켓과 연결 될 소켓 Socket socket = null; try { socket = new Socket("localhost", 5001); PrintWriter writer = new PrintWriter(socket.getOutputStream(),true); writer.println("안녕 반가워 ..

Java 2024.06.12

1:1 단방향 통신 (서버측)

서버 측 기본 코드 작성의 목적네트워크 프로그래밍을 시작하면서 가장 먼저 배워야 할 것은 서버와 클라이언트 간의 통신이다.서버는 클라이언트의 요청을 받아들이고, 클라이언트가 보내는 데이터를 처리하는 역할을 한다.  서버 측 기본 코드를 작성해 보는 이유네트워크 통신의 기초 이해서버는 네트워크 통신의 핵심 역할을 한다. 서버 측 코드를 작성함으로써 우리는 네트워크 통신의 기본 개념을 이해할 수 있다.서버 소켓 (ServerSocket) 생성 : 네트워크 연결을 기다리는 소켓포트 바인딩 : 특정 포트 번호에 서버 소켓을 결합하여 외부에서 접근할 수 있도록 한다.클라이언트 연결 수락 : 클라이언트가 서버에 연결할 수 있도록 대기하고, 연결 요청을 받아들인다. 데이터 송수신 이해서버 측 코드에서 클라이언트로부터..

Java 2024.06.12

Socket

소켓(Socket)소켓은 컴퓨터 네트워킹에서 매우 중요한 역할을 하며, 특히 자바 I/O 에서 자주 사용된다.소켓은 네트워크 상에서 통신을 가능케 하는 끝점을 의미한다. 두 컴퓨터 간의 데이터를 주고받기 위해 사용되는 인터페이스로, 소켓을 통해 네트워크 연결을 설정하고 데이터를 송수신할 수 있다.쉽게 말해, 소켓은 네트워크를 통해 다른 컴퓨터와 대화하는 전화기 역할을 한다. (소켓은 사실, 파일 개념과 같다.)소켓은 물리적인 장치가 아니라 추상적인 개념의 약속이다. 네트워크 통신을 위해 소프트웨어적으로 정의 된 인터페이스로, 컴퓨터 간의 데이터 교환을 가능하게 하는 규칙과 방법을 의미한다. 이를 통해 네트워크 애플리케이션이 서로 통신할 수 있다. 일반 사용자 컴퓨터에서 네트워크 통신에 사용되는 주요 물리..

Java 2024.06.12

고수준 스트림(Data/Object Stream)

DataInputStream 과 DataOutputStreamDataInputStream과 DataOutputStream은 자바의 I/O 스트림 클래스 중 하나로, 원시 자료형(정수, 실수, 문자 등)을 쉽게 읽고 쓸 수 있도록 도와준다.이 두 클래스는 데이터의 형식을 유지하면서 입력 및 출력을 수행할 수 있어, 자료의 손실 없이 데이터를 주고 받을 수 있다. package io.file.ch08;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;public class MyDataStream { public static void m..

Java 2024.06.03

사용자모드와 커널모드

컴퓨터의 구성컴퓨터 시스템은 크게 하드웨어(Hardware)와 소프트웨어(Software) 두 가지로 나눌 수 있다.하드웨어는 물리적으로 컴퓨터 시스템을 구성하고 있는 기계 장치이고, 소프트웨어는 논리적으로 컴퓨터 시스템을 구성하고 하드웨어들을 관리하고 동작시키는 역할을 한다.소프트웨어는 명령어들의 집합으로 볼 수 있으며 일반적으로 그것들을 프로그램이라고 말할 수 있다. 운영체제의 핵심 - 커널OS 프로그램은 사용자에게 GUI를 제공해서 사용자와 컴퓨터 간 상호작용을 쉽게 처리할 수 있도록 도와주며 다양한 소프트웨어 응용프로그램 워드프로세서, 게임, 데이터베이스 관리 시스템, 파일 장치 관리 등등 많은 서비스를 지원한다.또한 스마트폰도 사용자에게 제공하는 서비스 종류는 다양하지만, 그 중에서도 전화, 문..

Java 2024.05.31