백기선

    시작글 - 디자인 패턴

    Gof의 디자인패턴은 90년 초반에 나와서 지금까지 가장 많은 사랑을 받는 디자인 패턴 책으로 개발자가 겪어온 많은 문제를 해결하는 과정에서 공통적으로 발견된 패턴 23가지를 정리한 책이다. 나도 상반기에 Gof의 디자인패턴을 읽으면서 예전에 일할 때 알았으면 좋았을 패턴이 몇가지 있어서 아쉽운 생각이 들기도 했다. 하지만 이 책의 문제점은 너무 오래되어서 당시 기준으로 작성된 예제를 이해하기가 힘들었다. 구글링으로 비교하면서 알아보려 했지만 제대로 이해하지도 못한게 꽤 있다. 나는 억지로 진행했지만 중후반쯤에 책을 덮고는 다시 열어보지도 못하고 있다. 그러다 최근에 백기선님이 인프런에서 Gof의 디자인 패턴을 주제로 강의를 내주셨다. 코딩으로 학습하는 GoF의 디자인 패턴 - 인프런 | 강의 디자인 패..

    11주차 과제 : enum

    11주차 과제: Enum · Issue #11 · whiteship/live-study 목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet 마감일시 2021년 1월 30일 토요일 오후 1시까지. github.com 목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet enum 정의하는 방법 Enum 는 열거형 혹은 상수집합으로 부른다 class 대신 enum 으로 정의한다 정의 방법은 3가지로 나눠진다 // 1. java 파일로 정의 ..

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

    10주차 과제: 멀티쓰레드 프로그래밍 · Issue #10 · whiteship/live-study 목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 마감일시 2021년 1월 23일 github.com 목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 Thread 클래스와 Runnable 인터페이스 프로세스와 스레드에 대해 알아보자 프로세스(Process) 운영체제에서 실행중인 하나의 애플리케이션을 프로세스라고 한다 프로세스는 운영체제로부터..

    9주차 : 예외처리

    9주차 과제: 예외 처리 · Issue #9 · whiteship/live-study 목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 github.com 목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 개발자의 고통... 그 이름..

    자바 8주차 : 인터페이스

    8주자 과제: 인터페이스 · Issue #8 · whiteship/live-study 목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터 github.com 목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스 정의하는 방법 인터페이스는 추상클래스를 더 추상화한 것으로 공통적인 기능을 규격..

    7주차 : 패키지

    github.com/whiteship/live-study/issues/7 7주차 과제: 패키지 · Issue #7 · whiteship/live-study 목표 자바의 패키지에 대해 학습하세요. 학습할 것 (필수) package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 마감일시 2021년 1월 2일 토요일 오후 1시까지. github.com 학습할 것 (필수) package 키워드 import 키워드 접근지시자 클래스패스 CLASSPATH 환경변수 -classpath 옵션 package 패키지란 클래스를 체계적으로 관리하기 위한 폴더 저장 방식이자, 패키지명과 클래스명을 합쳐(FQCN:full qualified class name) 클래스를 유일..

    6주차 : 상속

    github.com/whiteship/live-study/issues/6 6주차 과제: 상속 · Issue #6 · whiteship/live-study 목표 자바의 상속에 대해 학습하세요. 학습할 것 (필수) 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 마 github.com 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 자바 상속의 특징 상속이란 부모의 멤버를 자식에게 물러주는 것으로 사용 용도는 코드 중복을 방지하고 공통 코드를 재사용하기다 다..

    5주차 : 클래스(Class)

    github.com/whiteship/live-study/issues/5 5주차 과제: 클래스 · Issue #5 · whiteship/live-study 목표 자바의 Class에 대해 학습하세요. 학습할 것 (필수) 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 마감일시 github.com 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 5주차가 되었다. 이제 자바에서 중요한 클래스를 알아보자 그전에 알고 넘어가야 할 개념이 존재한다 바로 객체(Object) 다. 객체란? "객체란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것..