분류 전체보기 420

[Java의 정석] 15-3. 입출력: 보조 스트림

"Java의 정석" 책을 정리한 포스팅 입니다. 4. 보조 스트림// 기반스트림 생성FileInputStream fis = new FileInputStream("text.txt"); // 보조스트림 생성BufferedInputStream bis = new BufferedInputStream(fis); // 보조스트림을 이용해서 데이터를 읽기bis.read();스트림의 기능 보완스트림을 먼저 생성한 다음, 이를 이용해서 보조 스트림을 생성합니다.기능 향상새로운 기능 추가 실제 데이터 통신 X데이터를 입출력할 수 있는 기능은 없습니다. 바이트 기반FilterInputStream & FilterOutputStream모든 바이트 기반 보조스트림의 부모 클래스 입니다. (데코레이터 패턴) BufferedInput..

Java 2023.11.29

[Java의 정석] 15-2. 입출력: 문자 기반 스트림

남궁성님의 "Java의 정석" 책을 정리한 포스팅 입니다. 3. 문자 기반 스트림문자를 처리하는 데 바이트 기반 스트림으로는 어려움이 있습니다.한 문자를 의미하는 char 형의 크기가 2byte 입니다.바이트 기반 스트림의 단위는 1byte 입니다.이 점을 보완하기 위해 문자 기반의 스트림이 제공됩니다. encoding읽기: utf-8로 인코딩하여 읽기쓰기: utf-8로 인코딩하여 작성 Reader문자 기반의 InputStream 입니다. read()스트림 소스에서 문자를 읽습니다.byte 배열대신 char 배열을 사용합니다. Writerwrite()문자를 스트림 소스에 씁니다.

Java 2023.11.29

[Java의 정석] 15-1. 입출력: 바이트 기반 스트림

"Java의 정석" 책을 정리한 포스팅 입니다. 1. 자바에서의 입출력입출력컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것을 말합니다. 스트림자바에서 입출력을 수행할 때, 두 대상을 연결하고 데이터를 전송할 수 있는 객체를 말합니다.데이터를 운반하는데 사용되는 연결통로 역할을 합니다. only 단방향 통신입력과 출력을 동시에 처리할 수 없습니다.각각 입력스트림과 출력스트림이 필요합니다. FIFO 구조먼저 보낸 데이터를 먼저 받습니다. 2. 바이트기반 스트림바이트 단위출력의 단위가 모두 1 byte 입니다. 구현체ByteArray: 메모리File: 파일Piped: 프로세스Audio: 오디오 장치 InputStreamread()데이터를 읽어옵니다. 구현체ByteArrayInputStrea..

Java 2023.11.29

[자바 ORM 표준 JPA 프로그래밍] 4. 엔티티 매핑

김영한 님의 "자바 ORM 표준 JPA 프로그래밍" 책을 정리한 포스팅 입니다. 4. 엔티티 매핑@Entity테이블과 매핑할 엔티티에 붙이는 어노테이션 입니다. 주의사항기본 생성자 필수final class, inner class, enum, interface 사용 불가final 키워드 사용 불가 @Table엔티티와 매핑할 테이블 지정 (생략 시, 엔티티 이름과 동일한 테이블) 속성name매핑할 테이블 이름catalogcatalog 기능이 있는 데이터베이스에서 catalog를 매핑함schemaschema 기능이 있는 데이터베이스에서 schema를 매핑함uniqueConstraints DDL 생성 시에 유니크 제약조건을 만듬 @Column컬럼 제약조건 설정 속성name컬럼 이름nullablenull값 허용 ..

[자바 ORM 표준 JPA 프로그래밍] 3. 영속성 관리

김영한 님의 "자바 ORM 표준 JPA 프로그래밍" 책을 정리한 포스팅 입니다. 3. 영속성 관리영속성 컨텍스트엔티티를 관리하는 환경입니다. 엔티티 생명주기new / transient (비영속)엔티티 객체를 생성한 시점의 상태입니다.영속성 컨텍스트와 전혀 연관이 없습니다. managed (영속)영속성 컨텍스트에 저장된 상태입니다. detached (준영속)영속성 컨텍스트에 저장되었다가 분리된 상태입니다.영속성 컨텍스트에서 삭제됨: 1차 캐시, 해당 엔티티 관련 쿼리 (내부 쿼리 저장소) removed (삭제)엔티티 객체가 삭제된 상태입니다. (데이터베이스에 삭제될 예정)준영속 상태의 엔티티가 대상입니다. (비영속 -> 영속 -> 준영속 -> 삭제) 상태 메서드find(): 엔티티 조회Member memb..

[자바 ORM 표준 JPA 프로그래밍] 2. JPA 시작

김영한 님의 "자바 ORM 표준 JPA 프로그래밍" 책을 정리한 포스팅 입니다. 2. JPA 시작애플리케이션 개발public class JpaMain { public static void main(String[] args) { // 엔티티 매니저 팩토리 생성 EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook"); EntityManager em = emf.createEntityManager(); // 엔티티 매니저 생성 EntityTransaction tx = em.getTransaction(); // 트랜잭션 기능 획득 try { ..

[자바 ORM 표준 JPA 프로그래밍] 1. JPA 소개

김영한 님의 "자바 ORM 표준 JPA 프로그래밍" 책을 정리한 포스팅 입니다. 1. SQL을 직접 다룰 때 발생하는 문제점Repetitionsteps for developing an sql mapper// JDBC 연결 정보String url = "jdbc:mysql://localhost:3306/mydatabase";String username = "root";String password = "password";// 데이터베이스 연결 및 쿼리 실행try (Connection connection = DriverManager.getConnection(url, username, password)) { String sql = "SELECT id, name, email FROM users WHERE id..

[Java의 정석] 13-2. 스레드: 우선순위, 그룹, 데몬 스레드

남궁성 님의 "Java의 정석" 책을 정리한 포스팅 입니다. 5. 우선순위Thread 클래스는 우선순위라는 속성을 가지고 있습니다.우선순위 값에 따라 스레드의 실행순서가 달라집니다.사용자에게 빠르게 반응해야 하는 작업에 우선순위를 높게 부여합니다. 우선순위 지정하기1~10이며, 숫자가 높을수록 우선순위가 높습니다.부모 스레드로부터 상속받습니다. 6. 스레드 그룹// 스레드 그룹 생성ThreadGroup group = new ThreadGroup("CustomGroup");// 그룹에 속한 스레드 생성Thread t1 = new Thread(group, () -> { System.out.println("Thread 1 is running");});Thread t2 = new Thread(group, ..

Java 2023.11.27

[Java의 정석] 13-1. 스레드: 프로세스와 스레드

남궁성 님의 "Java의 정석" 책을 정리한 포스팅 입니다. 1. 프로세스와 스레드프로세스실행중인 프로그램을 의미합니다. 자원OS로부터 실행에 필요한 자원을 할당받아 실행 스레드자원을 이용하여 실제 작업을 수행하는 실행 단위모든 프로세스에는 하나 이상의 스레드가 할당됨 멀티태스킹여러 프로세스가 동시에 실행될 수 있습니다.프로세스 생성비용과 컨텍스트 스위칭 비용이 스레드보다 많이 들많은 수의 사용자 요청을 서비스하기 어렵습니다. 멀티스레딩하나의 프로세스 내에서 여러 스레드가 동시에 작업을 수행하는 것입니다.짧은 시간동안 여러 작업을 번갈아 수행하면서 동시에 수행하는 것처럼 보이게 합니다.CPU 코어 당 하나의 작업을 수행할 수 있습니다. 장점자원을 효율적으로 사용할 수 있습니다. (CPU 사용률 향상)사..

Java 2023.11.27

[Real MySQL] 15-3. 데이터 타입: 날짜와 시간

"Real MySQL" 책을 정리한 포스팅 입니다. 날짜와 시간날짜, 시간만 저장하거나 날짜와 시간 같이 저장할 수 있습니다. 설명크기YEAR날짜(YYYY)1 byteDATE날짜(YYYY-MM-DD)3 byteTIME시간(HH:MM:SS.MS)3 ~ 5 byteTIMESTAMP날짜 + 시간4 ~ 7 byteDATETIME날짜 + 시간5 ~ 8 byte  밀리초단위 저장공간2자리당 1바이트씩 공간이 필요합니다.최대 6자리까지 표현할 수 있습니다.타입의 괄호에 몇 바이트를 사용할지 정할 수 있습니다. 타임존날짜 타입타임존 정보가 포함되지 않음클라이언트로부터 입력된 값을 그대로 저장하고 조회합니다. 시간 타입타임존 정보가 포함됨 (UTC TimeZone)TIMESTAMP: 설정된 타임존 기준으로 저장 및 조회..

Database/Mysql 2023.11.26