목표 자바의 Input과 Output에 대해 학습하기 학습할 것 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O InputStream과 OutputStream Byte와 Character 스트림 표준 스트림 (System.in, System.out, System.err) 파일 읽고 쓰기 1. 스트림 (Stream) / 버퍼(Buffer) / 채널(Channel) 기반의 I/O [I/O] INPUT과 OUTPUT의 약자로 입력과 출력을 나타낸다. 즉, 컴퓨터 내부 또는 외부 장치와 프로그램간의 데이터를 주고 받는 것을 말한다. [스트림] 자바 8부터 추가된 컬렉션(배열 포함)의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 도와주는 반복자이다. Itera..
목표 자바의 애노테이션에 대해 학습하기 학습할 것 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 1. 애노테이션 정의하는 방법 애노테이션은 메타데이터라고 볼 수 있는데 메타데이터란 애플리케이션이 처리해야 할 데이터가 아니라, 컴파일 과정과 실행 과정에서 코드를 어떻게 컴파일하고 처리할 것인지를 알려주는 정보이다. 어노테이션은 다음과 같은 형태로 작성된다. @AnnotationName 애노테이션의 경우 다음과 같이 세 가지 용도로 사용된다. 컴파일러에게 코드 문법 에러를 체크하도록 정보를 제공 소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보를 제공 실행 시(런타임 시) 특정 기능을 실행하도록 정보를 제공 컴파일러에게 코드 문..
[목표] 자바의 열거형에 대해 학습하기 [학습할 것] enum을 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet 1. enum을 정의하는 방법 한정된 값만 가진 데이터를 열거 타입이라고 하며 요일이나 계절과 같은 것이 열거 타입에 해당될 수 있다.열거 타입(enumeration type)을 선언하기 위해서는 열거 타입 소스 파일을 생성해주어야 한다.관례적으로 열거 타입의 이름은 첫 문자를 대문자로 생성한다. public enum Week { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } Enum을 사용하게 되면 타입을 통일할 수 있고 코드가 단순하고 가독성이 좋아..

목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하기 학습할 것 Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 1. Thread 클래스와 Runnable 인터페이스 멀티 스레드로 실행하는 애플리케이션을 개발할 때는 몇 개의 작업을 병렬로 실행할지 결정하고 각 작업별로 스레드를 생성해야 한다. 어떤 자바 애플리케이션이건 메인 스레드는 반드시 존재하므로 메인 작업 이외 추가적인 병렬 작업의 수만큼 스레드를 생성하면 된다. 자바에서는 작업 스레드도 객체로 생성되기 때문에 클래스가 필요하며 2가지 방법으로 스레드를 생성할 수 있다. java.lang.Thread 클래스를 직접 객체화해서 생성 Thread를 상속해 하위 클래스를 만들어 생성 java.l..

목표 자바의 예외 처리에 대해 학습하기 학습할 것 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이 RuntimeException과 RuntimeException이 아닌 것의 차이 커스텀한 예외를 만드는 방법 1. 자바에서 예외를 처리하는 방법 (try, catch, throw, throws, finally) 예외란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말한다.예외에는 두 가지 종류가 있는데 하나는 일반 예외(Exception)이고, 다른 하나는 실행 예외(Runtime Exception)이다. 일반 예외 : 컴파일러 체크 예외라고도 하며 자바 소스를..

목표 자바의 패키지에 대해 학습하기 학습할 것 package 키워드 import 키워드 클래스 패스 CLASSPATH 환경변수 -classpath 옵션 접근 제한자 1. package 키워드 프로젝트를 개발할 때 많은 클래스를 작성해야 하기 때문에 클래스들을 체계적으로 관리하지 않으면 클래스 간의 관계가 복잡해진다. 자바에서는 클래스를 체계적으로 관리하기 위해 package 키워드를 사용한다. 윈도우에서 폴더를 만들어 파일을 저장하는 것처럼 자바에서는 패키지를 만들어 클래스를 저장하고 관리한다. 패키지는 클래스를 유일하게 만들어주는 식별자 역할을 하여 클래스 이름이 동일하더라도 패키지가 다르면 다른 클래스로 인식된다. 클래스의 전체 이름은 "패키지명+클래스명"이며 패키지가 상·하위로 구분되어 있다면 도트..
목표 자바의 상속에 대해 학습하기 학습할 것 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 1. 자바 상속의 특징 자바에서는 부모 클래스의 멤버를 자식 클래스에게 물려줄 수 있는데 이를 상속이라고 하며 프로그램에서는 부모 클래스를 상위 클래스라고 부르기도 하고 자식 클래스를 하위 클래스 또는 파생 클래스라고 부른다. 상속은 이미 개발된 클래스를 재사용해서 새로운 클래스를 만들기 때문에 코드의 중복을 줄여주고 또한 클래스의 수정을 최소화시킬 수도 있다. 부모 클래스의 수정으로 모든 자식 클래스들의 수정 효과를 가져오기 때문에 유지 보수 시간을 최소화시켜준다. 프로그램에서는 자식이..
목표 자바의 클래스에 대해 학습하기 학습할 것 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 1. 클래스를 정의하는 방법 자바에서 클래스(class)란 객체를 정의하는 설계도와 같은 의미로 사용되며 클래스를 가지고 여러 객체를 생성하여 사용하게 된다. 클래스는 객체의 상태를 나타내는 필드(field)와 객체의 행동을 나타내는 메소드(method)로 구성되며 메소드(method)란 어떠한 특정 작업을 수행하기 위한 명령문의 집합이라고 할 수 있다. 또한, 클래스는 생성된 객체의 필드를 초기화해주는 특별한 메소드인 생성자를 가지게 된다. 클래스를 선언할 때는 다음과 같은 규칙을 따라야 한다. 하나 이상의 문자로 이루어져야..