스터디/LiveStudy 15

Java online LiveStudy 후기

Java online LiveStudy 후기 설명 라이브 스터디 유튜브로 진행하는 라이브 스터디 운영 프로젝트입니다. 이슈 게시판에 과제를 올리고 댓글로 과제 풀이 링크를 제출하시면 검토해 드리고 라이브 방송으로 피드백을 드립니다. 현재, 자바 기초 스터디를 진행중입니다. LiveStudy Link 자바 기초 스터디 수료 기준 및 선물 전체 18주 과정의 스터디로, 스터디 과제 제출율 80%를 넘긴 참여자에게 수료 기념으로 티셔츠를 선물해 드립니다. 참고 자료 책, 블로그, 인터넷 강의 뭐든지 참고해도 좋습니다. 저는 개인적으로 Java in a Nutshell을 참고하고 있습니다. Java in a Nutshell을 구하고 싶은 분들은 지난 2020년 11월 13일 자바 뉴스에서 소개한 헙블 북 번들에..

스터디/LiveStudy 2021.03.01

15주차 과제: 람다식

15주차 과제: 람다식 람다 표현식(Lambda Expressions) 람다식이란? 식별자 없이 실행가능한 함수 메소드를 하나의 식으로 표현하는 것이라고 볼 수 있다. 람다식으로 표현하면 return 이 없어지므로 람다식을 anonymous function(익명 함수) 이라고도 한다. 람다식의 장단점 장점 코드를 간결하게 만들 수 있다 가독성이 향상된다 멀티쓰레드환경에서 용이하다 함수를 만드는 과정 없이 한번에 처리하기에 생산성이 높아진다 단점 람다로 인한 무명함수는 재사용이 불가능하다 디버깅이 많이 까다롭다 람다를 무분별하게 사용하면 코드가 클린하지 못하다 재귀로 만들 경우 부적합하다 람다식 사용법 (매개변수) -> 표현 바디 (매개변수) -> { 표현 바디 } () -> { 표현 바디 } () -> ..

스터디/LiveStudy 2021.03.01

14주차 과제: 제네릭

14주차 과제: 제네릭 시작하기 전에 제네릭이 무엇이고 제네릭을 왜 사용해야하는지 알아보자 제네릭이란? 데이터 타입(data type)을 일반화(generalize)하는것을 의미한다 제네릭은 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법이다. 이렇게 컴파일 시 type check를 하면 장점이 있다. 클래스나 메소드 내부에서 사용되는 객체의 타입의 안정성을 높일 수 있다. 반환값에 대한 타입 변환 및 타입 검사에 들어가는 노력을 줄일 수 있다. Java 5 이전에서는 여러 타입을 사용하는 대부분의 클래스나 메소드에서 인수나 반환값으로 Object타입을 사용했었다. 하지만 이 경우에는 반환된 Object 객체를 다시 원하는 타입으로 타입을 변환해야하고 , 이때 오류가 발생할..

스터디/LiveStudy 2021.02.21

13주차 과제 : I/O

13주차 과제: I/O 목표 자바의 Input과 Output에 대해 학습하세요. 학습할 것 (필수) 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O InputStream과 OutputStream Byte와 Character 스트림 표준 스트림 (System.in, System.out, System.err) 파일 읽고 쓰기 13주차 과제 : I/O I/O란? Input, Output의 약자로 입출력 통칭하는 용어로 I/O라고 부르며 I/O는 JVM을 기준으로 읽을 때에는 Input을 파일로 쓰거나 외부로 전송할 때는 Output이라는 용어를 사용한다. Input과 Output은 JVM의 기준이다 File과 Files 클래스 File클래스 FIle 클래스는 파일 및 ..

스터디/LiveStudy 2021.02.08

12주차 과제 : 애노테이션

12주차 과제: 애노테이션 목표 자바의 애노테이션에 대해 학습하세요. 학습할 것 (필수) 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 어노테이션 클래스나 메소드 등의 선언시에 @를 사용하는 것을 말한다. 메타데이터(Metadata)라고도 불린다 어노테이션의 사용 컴파일러에게 정보를 알려주거나 컴파일할 때와 설치시의 작업을 지정하거나 실행할 때 별도의 처리가 필요할 때 어노테이션은 클래스, 메소드, 변수 등 모든 요소에 선언할 수 있다 어노테이션 정의하는 방법 어노테이션 선언 예제) import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lan..

스터디/LiveStudy 2021.01.31

11주차 과제: Enum

11주차 과제: Enum 목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet enum 정의하는 방법 먼저 enum 에 대해 알아보자 enum(enumeration) 클래스( 상수의 집합) 열거형 클래스이며, java 1.5 부터 사용이 가능하다 셈, 계산, 열거, 목록, 일람표 (enumeration) 의 앞부분을 딴 예약어 장점 열거체를 비교할 때 실제 값뿐만 아니라 타입까지도 체크한다 열거체의 상숫값이 재정의되더라도 다시 컴파일할 필요가 없다. 데이터들 간의 연관 관계 표현이 가능하다 상태와 행위를 한곳에서 관리가 가능하다 데이터 그룹관리가 가능하다 특징 클래스를 ..

스터디/LiveStudy 2021.01.25

10주차 과제: 멀티쓰레드 프로그래밍

10주차 과제: 멀티쓰레드 프로그래밍 목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 학습 하기 전 생각 Thread 관련 공부할때 쉽지 않은 부분이였다. 멀티 쓰레드 프로그래밍과 Thread와 Runnable에 대한 동기화 등등 생각나는 것들이 많아 어떻게 포스팅을 해야할지 감이 오지 않는다.. 선장님이 말씀하신 깊은 범위는 가진 않지만 기본적인 것과 추가적으로 생각나는 것들(?)로 내용을 넣어볼까한다. 이번 주차 포스팅은 내용이 많아 보기 부담되시는 분도 계실거라 생각이 되지만 사용하는 방법이나 왜 사용하는지 어떻게 사용하는지에 대해 포스팅해보고자 한다. 기본적인 것..

스터디/LiveStudy 2021.01.18

9주차 과제: 예외 처리

9주차 과제: 예외 처리 목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 Exception과 Error의 차이는? 먼저 알아보기 전에 Exception 과 Error에 대해 알아보자 예외의 종류 checked exception error runtime exception 혹은 unchecked exception Error 개념 컴퓨터 하드웨어의 오동작 또는 고장으로 인해 응용프로그램에 이상이 생겼거나 JVM 실행에 문제가 생겼을 경우 발생하는 것..

스터디/LiveStudy 2021.01.11

8주차 과제: 인터페이스

목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개체 역할까지 담당하는 추상 클래스보다 추상적인 추상 클래스를 의미한다 자바에서 추상 클래스는 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함될 수 있지만 인터페이스는 오로지 추상 메소드와 상수만을 포함할 수 있다.(JDK 1.8 이전) 인터페이스와 추상 클래스를 사용하는 이..

스터디/LiveStudy 2021.01.04

7주차 과제: 패키지

패키지 package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 classpath 옵션 접근지시자 Package 패키지 자바에서 패키지란 클래스와 인터페이스등의 집합(폴더)을 의미한다. 파일들을 묶음으로써 파일을 효율적으로 관리할 수 있게 한다. 협업 시 서로 작업한 클래스 사이에서 발생할 수 있는 이름 충돌 문제까지도 패키지를 이용하면 피할 수 있다 ex) me.thewing.livestudy._4week 패키지의 test.java me.thewing.livestudy._5week 패키지의 test.java 자바에서 패키지는 물리적으로 하나의 디렉토리를 의미한다 따라서 하나의 패키지에 속한 클래스나 인터페이스 파일은 모두 해당 패키지 이름의 디렉터리에 포함되어 있다 디렉터리의 계층..

스터디/LiveStudy 2020.12.30