전체 글

    [12주차] 자바스터디 - 애노테이션

    애노테이션 정의하는 방법 Annotation 이란? 자바 개발을 하면서 다들 @Overrive 같은 표시들을 봐왔다. 이것이 바로 애노테이션인데 이 애노테이션은 JEE 5부터 추가된 요소이다. 애노테이션을 통해 데이터의 유효성 검사 등 다양한 목적으로 쓰이고 있지만, 메타 데이터의 비중이 가장 크다고 한다. 여기서 메타데이터는 데이터를 설명하기 위한 데이터를 말한다. 애노테이션 정의하는 방법 애노테이션은 보기와 같이 @키워드 를 통해 정의하고 사용할 수 있다. java에서 제공하는 애노테이션 @Override 선언 된 메소드가 오버라이드 되었음을 나타낸다. 상위 클래스에서 메소드를 찾을 수 없을 경우 에러를 발생시킨다. 만약 해당 애노테이션을 사용하지 않는다면 오버라이드 되었음을 컴파일러는 알 수 없게 ..

    [11주차] 자바스터디 - Enum

    목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet enum 정의하는 방법 JDK 1.5 버전 이전에는 자바에서 열거체를 사용할 수 없었지만 JDK 1.5 버전 이후부터는 열거체를 정의한 Enum 클래스를 사용할 수 있게 되었습니다. 자바의 열거체는 열거체를 비교할 때 타입까지도 체크하고, 상숫값이 재정의 되더라도 컴파일 할 필요가 없다는 장점을 가지고 있습니다. 자바에서 열거체를 정의하는 방법은 enum 키워드를 사용하는 방법입니다. enum 열거체명 { 상수1, 상수2, ... 상수N; } enum School{ CLASS1, CLASS2, ... CLASSN; }..

    [10주차] 자바스터디 - 멀티쓰레드

    목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 Thread 클래스와 Runnable 인터페이스 스레드에 대해 이해하기 위해서는 우선 프로세스라는 개념에 대해 알 필요가 있다. 우선 개념 정리를 해보자 프로세스(process) 프로세스는 실행중인 프로그램을 말하는 것으로, OS의 메모리를 할당받아 실행 중인 것을 의미한다. 프로세스는 데이터와 메모리 따위의 자원과 스레드로 구성된다. 스레드(thread) 스레드는 프로세스에서 작업을 수행하는 실체를 말한다. 모든 프로세스 안에는 한개 이상의 스레드가 존재한다. 이러한 스레드를 구현하는 방법은 스레드 클래스(Thread C..

    [JAVA] 팰린드롬(palindrome) (COS Pro 2급 문제 풀이)

    문제8 앞에서부터 읽을 때와 뒤에서부터 읽을 때 똑같은 단어 또는 문장을 팰린드롬(palindrome)이라고 합니다. 예를 들어서 racecar, noon은 팰린드롬 단어입니다. 소문자 알파벳, 공백(" "), 그리고 마침표(".")로 이루어진 문장이 팰린드롬 문장인지 점검하려 합니다. 문장 내에서 알파벳만 추출하였을 때에 팰린드롬 단어이면 팰린드롬 문장입니다. 예를 들어, "Never odd or even."과 같은 문장은 팰린드롬입니다. 소문자 알파벳, 공백(" "), 그리고 마침표(".")로 이루어진 문장 sentence가 주어질 때 팰린드롬인지 아닌지를 return 하도록 solution 메소드를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않..

    [9주차] 자바스터디 - 예외 처리

    목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 예외 처리 방법 자바에서 예외처리를 하기 위해서는 try, catch, finally 문을 사용한다. try{ 예외가 발생할 수 있는 코드 } catch(Exception e1){ e1 예외가 발생할 경우 코드 } catch(Exception e2){ e2 예외가 발생할 경우 코드 } finally{ 예외 ..

    [JAVA] 토익수강대상 (COS Pro 2급 문제 풀이)

    문제7 A 대학에서는 수준별 영어 강의를 제공하고 있습니다. 초급 영어 강의는 토익시험에서 650점 이상 800점 미만의 성적을 취득한 학생만을 수강대상으로 하고 있습니다. 초급 영어 강의에 수강신청한 사람이 10명일 때, 이 중에서 몇명이 수강 대상에 해당하는지 확인하려합니다. 수강신청자들의 토익 성적이 들어있는 배열 scores가 매개변수로 주어질 때, 수강 대상자들의 인원수를 return 하도록 solution 메소드를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 _한 줄_만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정해주세요. 매개변수 설명 수강신청자들의 토익 성적이 들어있는 배열 scores가 solution..

    [8주차] 자바스터디 - 인터페이스

    목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스 정의하는 방법 인터페이스 정의 하위 클래스가 여러 상위 클래스를 상속 받을 수 있다면 더 다양한 동작을 구현할 수 있다. 하지만 클래스를 이용해 다중 상속을 하게 되면 여러가지 문제점이 생겨나 자바에서는 클래스를 이용한 다중상속은 지원하지 않는다. 이런 다중 상속의 이점을 이용하기 위해 자바에서 인터페이스를 통해 다중상속을 지원하고 있고, 이러한 인터페이스는 클래스를..

    [JAVA] 369 게임 (COS Pro 2급 문제 풀이)

    문제6 369 게임은 여러 명이 같이하는 게임입니다. 게임의 규칙은 아래와 같습니다. 1부터 시작합니다. 한 사람씩 차례대로 숫자를 1씩 더해가며 말합니다. 말해야 하는 숫자에 3, 6, 9중 하나라도 포함되어있다면 숫자를 말하는 대신 숫자에 포함된 3, 6, 9의 개수만큼 손뼉을 칩니다. 어떤 수 number가 매개변수로 주어질 때, 1부터 number까지 369게임을 올바르게 진행했을 경우 박수를 총 몇 번 쳤는지를 return 하도록 solution 메소드를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해주세요. 매개변수 설명 number가 solution 메소드의 매개변수로 주어집니다. number는 10 이상 1,000 이하의 자연수입니다. return 값 설명 1부터 number까지 369게..