Programming Language/java 15

[자바 ORM 표준 JPA 프로그래밍] 4~7장

4장. 엔티티 매핑 @Entity : 객체와 테이블을 매핑하는 어노테이션, JPA를 사용하여 테이블과 매핑할 클래스를 지정한다. - 기본 생성자 필수 - final 클래스, enum, interface, inner 클래스 사용 불가 - 저장한 필드에 final을 사용 불가 @Table : 객체와 테이블을 매핑하는 어노테이션, 엔티티와 매핑할 테이블을 지정한다. - DDL 생성시 유니크 제약조건을 만든다. - JPA 설정을 통해 애플리케이션 실행 시점에 데이터베이스 테이블을 자동으로 생성한다. 설정에 따라 기존의 테이블을 삭제하고 다시 생성할 수 있다. 운영서버에서는 DDL을 수정하는 옵션을 사용하면 안된다. 이를 사용하여 데이터베이스의 테이블이나 컬럼 정보가 변경될 수 있다. create : Table ..

[자바 ORM 표준 JPA 프로그래밍] 1~3장

1장. JPA 소개 SQL Mapper MyBatis(iBatis), JdbcTemplate 등을 이용하여 SQL과 JDBC API 사용 코드를 직접 작성하여 애플리케이션 개발에서 데이터베이스를 사용하는데 방식 객체지향의 장점이 부곽되지 못하고, CRUD SQL에 대한 작성이 매번 필요 SQL을 직접 다루며 계층 분할의 어려움, 신뢰할 수 없는 엔티티, SQL에 의존적인 개발이라는 고질적인 문제를 직면 ORM(Object Relational Mapping) JPA은 자바 진영의 ORM 표준 객체 모델링과 관계형 데이터베이스 사이의 차이점을 해결 개발자가 SQL을 직접 작성하는 것이 아닌, 실행에 대한 관점을 갖고 개발을 진행할 수 있도록 도움 패러다임의 불일치 객체지향 프로그래밍은 추상화, 캡슐화, 정보..

[whiteship_java_study] 12주차 - 애노테이션(annotaion)

목표 자바의 annotation을 학습 목차 annotation 정의하는 방법 @retention @target @documented annotation 프로세서 java.lang.Enum 컴퓨터 프로그래밍에서 열거형(Enumerated type, enumberation) 요소를 나타내는 자료형이다. final static string 등으로 상수를 정의하는 경우의 문제를 보완하기 위해 Enum을 사용한다. Enum은 열거형이라고 불리며 서로 연관된 상수들의 집합을 의미한다. fianl static string의 효과를 가지며 다양한 긍정적 효과를 얻을 수 있다. 1. 가독성 높은 코드 2. 인스턴스 생성과 상속을 방지하여 상수 값의 타입 안정성이 보장 3. 새로운 상수들의 타입을 정의하여 타입 체크 가..

[whiteship_java_study]11주차. Enum

목표 자바의 열거형에 대해 학습하세요. 학습내용 java.lang.Enum EnumSet enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet java.lang.Enum 컴퓨터 프로그래밍에서 열거형(Enumerated type, enumberation) 요소를 나타내는 자료형이다. final static string 등으로 상수를 정의하는 경우의 문제를 보완하기 위해 Enum을 사용한다. Enum은 열거형이라고 불리며 서로 연관된 상수들의 집합을 의미한다. fianl static string의 효과를 가지며 다양한 긍정적 효과를 얻을 수 있다. 가독성 높은 코드 인스턴스 생성과 상속을 방지하여 상수 값의 타입 안정성이 보장 새로..

[whiteship_java_study]10주차. 멀티쓰레드 프로그래밍

목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습내용 Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 Thread 클래스와 Runnable 인터페이스 쓰레드(Thread) 쓰레드(thread)란 프로세스(process) 내에서 실제로 작업을 수행하는 주체를 의미한다. 모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행한다. 또한, 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스(multi-threaded process)라고 한다. 프로세스(Process) 프로세스(process)란 단순히 실행 중인 프로그램(program)이라고 할 수 있다. 즉, 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받..

[whiteship_java_study]9주차. 예외 처리

목표 자바의 예외처리에 대해 학습하세요. 학습내용 Exception과 Error의 차이는? 자바에서 예외 처리 방법(try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외를 만드는 방법 Exception과 Error의 차이는? 컴퓨터 시스템이 동작하는 도중에 예상하지 못한 사태가 발생하여 실행 중인 프로그램이 영향을 받는 것을 오류(error)와 예외(exception) 두 가지로 구분할 수 있습니다. 예외(Exception) 프로그램을 비정상적으로 종료시키지만, 발생할 수 있는 상황을 미리 예측하여 처리할 수 있다. 개발자는 예외 처리(Exception Handling)을 통해 예외 상황을..

[whiteship_java_study]8주차. 인터페이스

목표 자바의 인터페이스에 대해 학습하세요. 학습내용 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스(Interface) 영어의 뜻을 해석하면 대면부, 결합부이다. 두개 이상의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면이다. 자바에서 인터페이스란 다른 클래스를 작성할때 기본이 되는 틀을 제고하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미한다. 또한, 인터페이스는 일반적인 추상클래스와 다르게 다중 상속을 지원한다. 단..

[whiteship_java_study]7주차. 패키지

목표 자바의 패키지에 대해 학습하세요. 학습 내용 package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 package 키워드 패키지(Package) 비슷한 성격의 자바 클래스들을 모아 넣는 자바의 디렉토리이다. 우리가 사용하는 디렉토리의 구조, 트리구조이다. 서브패키지(Subpackage) 패키지의 하위 패키지이다. 여러갈래의 서브패키지가 생길 수 있다. 패키지의 특징 클래스의 분류가 용이하다. 패키지가 다르면 동일한 클래스명을 사용할 수 있다. 접근지시자에 따라 클래스간 이동을 제한할 수 있다. //week.seven package //seven은 week 의 subpackage package week.seven; public class Pa..

[whiteship_java_study]6주차. 상속

목표 자바의 상속에 대해 학습하세요. 학습내용 자바 상속의 특징 상속(Inheritiance) 상속이란 기존의 클래스게 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것을 의미한다. 이러한 상속은 캡슐화, 추상화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나이다. 상속을 이용하면 기존에 정의되어있는 클래스의 모든 필드와 메소드를 물려받아, 새로운 클래스를 생성할 수 있다. 기존에 정의되어 있던 클래스를 부모/상위/기초 클래스라고 부른다. 상속을 통해 작성되는 클래스는 자식/하위/파생 클래스 라고 한다. 상속의 장점 기존의 클래스 재활용 클래스간 계층적 관계 구성으로 다형성의 문법 기반 생성 상속 방법 자식 클래스에서는 부모 클래스의 필드와 메소드만 상속도디며, 생성자와 초기화 블록..

[whiteship_java_study]5주차. 클래스(Class)

목표 클래스 정의하는 방법 객체 지향 프로그래밍(OOP, Object Oriented Programming)이란 모든 데이터를 객체(Object)로 취급하며 객체 중심으로 프로그래밍을 하는 것을 말한다. 이때, 객체를 만들기 위한 설계도의 개념을 클래스 라고 한다. 클래스는 필드(field), 메소드(method)로 구성된다. 접근제어자 class 클래스명{ 필드 선언( 클래스 내 지역 변수) 메소드 선언 } 자바에서 클래스를 사용하기 위해서는 해당 클래스 타입의 객체(object)를 선언해야한다. 이때, 클래스로부터 객체를 선언하는 과정을 클래스의 인스턴스 화라고 한다. 클래스의 모양대로 객체를 생성하여 메모리에 할당하는 것을 말하고, 이때부터 객체가 메모리에 할당되어있다. 객체 만드는 방법 (new ..