live-study
-
[white-ship] 자바 스터디 후기
오늘은 자바 스터디 후기를 작성해보려고 한다. 매번 작성해야지 라는 생각을 하고 있었는데 막상 블로그 글쓰기 버튼을 누르는 건 지금 출근하기 40분 전이다. 이번 스터디는 자기 주도 학습 같은 느낌이 났다. 매주 선장님이 학습 목표를 정해주면 벌 때 처럼 달려들어 자기의 재량 껏 깊게 또는 넓게 학습하여 블로그나 메모장에 정리하여 링크를 제출하는 방식이다. 제출된 몇몇 링크들은 선장님이 확인해 라이브 방송에서 다룬다. 매주 7일이라는 시간이 있었지만 제출 하기 직전 금요일, 토요일에 스터디를 시작했고, 생각보다 다루는 내용이 어려워서 밤을 새운 적도 마감 가까스로 제출한 적도 있었다. 아쉬웠던 점은 다뤘던 주제에 대해서 이야기를 한다면 아직 정확히 안다고 할 수 없다. 좋았던 점은 정확히 안다고 할 순 ..
2021.04.13
-
15주차 과제: 람다식
목표 자바의 람다식에 대해 학습하세요. 학습할 것 (필수) 람다식 사용법 함수형 인터페이스 Variable Capture 메소드, 생성자 레퍼런스 람다란 무엇일까? 람다 표현식은 메서드로 전달할 수 있는 익명 함수를 단순화한 것이라고 할 수 있다. 람다 표현식에는 이름은 없지만 파라미터 리스트, 바디, 반환형식, 발생할 수 있는 예외 리스트는 가질 수 있다. 익명 보통의 메서드와 달리 이름이 없으므로 익명 이라 표현한다. 구현해야 할 코드에 대한 걱정거리가 줄어든다. 함수 람다는 메서드처럼 특정 클래스에 종속되지 않으므로 함수라고 부른다. 하지만 메서드처럼 파라미터 리스트, 받, 반환 형식, 가능한 예외 리스트를 포함한다. 전달 람다 표현식을 메서드 인수로 전달하거나 변수로 저장할 수 있다. 간결성 익명..
2021.03.14
-
14주차 과제: 제네릭
목표 자바의 제네릭에 대해 학습하세요. 학습할 것 (필수) 제네릭 사용법 제네릭 주요 개념 (바운디드 타입, 와일드 카드) 제네릭 메소드 만들기 Erasure 제네릭 등장 이전의 자바 코드가 갖는 불편함과 문제점 제네릭이 갖는 의미는 '일반화'이다. 그리고 자바에서 그 일반화의 대상은 자료형이다. 그럼 제네릭이 존재하지 않던 시절의 코드와 제네릭이 존재하는 시절의 코드 비교에서부터 이야기를 시작하겠다. 제네릭 이전의 코드 사과와 오렌지를 담는 상자를 담는 상자를 각각 생성하여 그상자에 사과와 오렌지를 담았다가 꺼내는 과정을 보이는 다음 예제를 관찰하자. public class FruitAndBox { public static void main(String[] args) { AppleBox aBox = n..
2021.02.27
-
13주차 과제: I/O
목표 자바의 Input과 Ontput에 대해 학습하세요. 학습할 것 (필수) 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O InputStream과 OutputStream Byte와 Character 스트림 표준 스트림 (System.in, System.out, System.err) 파일 읽고 쓰기 1. 스트림 (Stream) / 버퍼 (Buffer) / 채널 (channel) 기반의 I/O IO (Input Output) 입출력 컴퓨터는 입출력 (IO) 포트라고도 하는 하나 이상의 통신 인터페이스를 통해 외부와 통신한다. 스트림 통신을 균일하게 처리하기 위해 자바에서는 스트림 개념을 사용. 스트림은 한 엔티티가 소스이고 다른 엔티티가 대상이라는 조건을 가진 두 ..
2021.02.20
-
12주차 과제: 애노테이션
목표 자바의 애노테이션에 대해 학습하세요. 학습할 것 (필수) 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 Annotation 읽는 것 부터 햇갈린다. 어노테이션?, 애노테이션?. 애너테이션?, 어너테이션?, 언노테이션?, 아노타션 이 중에 원래발음 애녀 테이션 이다. 애노테이션 주석이라는 기능은 가지고 있지 않지만 뜻을 가지고 있으면서 메타데이터(징표, 마크)를 가지고 있다.. (ex. @Controller, @Deprecated...) 애노테이션 정의 Target 과 Retention 그리고 @interface 를 사용해서 정의는 다음과 같이 할 수 있다. @Target({ElementType.TYPE}) @Retention(RetentionPo..
2021.02.06