본문 바로가기

자바/스터디15

[자바 스터디] 14주차 과제 - 제네릭(Generic) 본 게시글은 백기선 님의 live-study 과제를 수행하면서 작성한 글입니다. 목표 자바의 제네릭에 대해 학습하세요. 학습할 것 (필수) 제네릭 사용법 제네릭 주요 개념 (바운디드 타입, 와일드 카드) 제네릭 메서드 만들기 Erasure 제네릭이란? JDK1.5에 도입된 제네릭은 다양한 타입의 메서드나 컬렉션 클래스에 컴파일 시에 타입을 체크해주는 기능이다. 객체의 타입을 컴파일 시에 체크해줌으로써 의도치 않은 타입의 객체가 저장되는 것을 막아 타입 안정성을 높이고, 다른 타입으로 잘못 형변환되어 발생할 수 있는 오류를 줄여준다. 간단히 이야기하면 사용할 객체의 타입을 미리 명시해줌으로써 번거로운 형변환을 줄여준다. 제네릭의 장점 타입 안정성을 제공한다. 타입 체크와 형변환을 생략할 수 있다. 제네릭 .. 2021. 2. 26.
[자바 스터디] 13주차 과제 - I/O 본 게시글은 백기선 님의 live-study 과제를 수행하면서 작성한 글입니다. 목표 자바의 Input과 Ontput에 대해 학습하세요. 학습할 것 (필수) 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O InputStream과 OutputStream Byte와 Character 스트림 표준 스트림 (System.in, System.out, System.err) 파일 읽고 쓰기 자바 NIO 자바 4부터 새로운 입출력(New Input/Output)이라는 뜻에서 java.nio패키지가 포함되었는데, 자바 7부터 자바 IO와 NIO 사이의 일관성 없는 클래스 설계를 바로 잡고, 비동기 채널 등의 네트워크 지원을 대폭 강화한 NIO.2 API가 추가되었다. NIO.2는.. 2021. 2. 19.
[자바 스터디] 12주차 과제 - 애노테이션(Annotation) 본 게시글은 백기선 님의 live-study 과제를 수행하면서 작성한 글입니다. 목표 자바의 애노테이션에 대해 학습하세요. 학습할 것 (필수) 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 애노테이션이란? 소스 코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시킨 것. 애노테이션은 주석처럼 프로그래밍 언어에 영향을 미치지 않으면서 다른 프로그램에게 유용한 정보를 제공할 수 있다. 예를 들어 우리는 테스트 메서드를 작성할 때 메서드 위에 @Test 애노테이션을 붙인다. @Test void testMethod() { //... }여기서 @Test 애노테이션은 '이 메서드를 테스트해야 한다.'라는 것을 JUnit과 같은 테스트.. 2021. 2. 5.
[ 자바 스터디] 11주차 과제 - 열거형(Enum) 본 게시글은 백기선 님의 live-study 과제를 수행하면서 작성한 글입니다. 목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메서드 (values()와 valueOf()) java.lang.Enum EnumSet 열거형(Enum)이란? 열거형은 서로 관련이 있는 여러 상수를 편리하게 선언하기 위한 것으로, C언어와 달리 자바에서는 원래 열거형이 존재하지 않았지만 JDK1.5부터 새로 추가되었다. C언어의 열거형은 타입이 달라도 값이 같다면 == 비교에서 true를 리턴 하지만, 자바의 열거형은 '타입에 안전한 열거형'이라서 값이 같더라도 타입이 다르면 컴파일 에러가 발생한다. enum 정의하는 방법 enum 열거형이름 {상수명1, 상수명2, ..... 2021. 1. 29.
[자바 스터디] 10주차 과제 - 쓰레드 본 게시글은 백기선 님의 live-study 과제를 수행하면서 작성한 글입니다. 목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 쓰레드란? 프로세스 : 실행 중인 프로그램, OS로부터 실행에 필요한 자원을 할당받아 프로세스가 된다. 쓰레드: 프로세스의 자원을 이용해서 실제로 작업을 수행 멀티쓰레딩 하나의 프로세스 내에서 여러 쓰레드가 동시에 작업을 수행하는 것이다. CPU 코어는 한 번에 하나의 작업만 수행할 수 있으므로 실제로 동시에 처리되는 작업의 개수는 코어의 개소와 일치하지만, 아주 짧은 시간 동안 여러 작업을 번갈아 가면서 수행함으로써 여러 작업이 동시에 수행되.. 2021. 1. 23.
[자바 스터디] 9주차 과제 - 예외 처리 본 게시글은 백기선 님의 live-study 과제를 수행하면서 작성한 글입니다. 목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 Exception과 Error 실행 중인 프로그램이 오작동을 하거나 비정상적으로 종료되도록 하는 원인이 되는 것을 에러라고 한다. 컴파일 에러 : 컴파일 시에 발생하는 에러 런타임 에러 : 실행 시에 발생하는 에러 논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것 런타임 에러를 방지하기 위해서는 프로그램 실행.. 2021. 1. 15.