서브메뉴

본문

방구석 부트캠프 자바 (기본으로 돌아가 체계적으로 시작하는 견고한 개발자 되기)
방구석 부트캠프 자바 (기본으로 돌아가 체계적으로 시작하는 견고한 개발자 되기)
저자 : 김경록
출판사 : 리코멘드
출판년 : 20241021
ISBN : 9791194084051

책소개


여러분의 방구석을 실리콘밸리로 만들어 줄 58일간의 자바 부트캠프

『방구석 부트캠프 자바』는 자바를 실용적이고 체계적으로 학습하기 위한 입문서다. 코딩은 AI가 더 잘하는 시대가 맞지만, AI 시대에 필요한 종합적인 개발자 역량은 단순한 코딩 기술을 넘어, 복잡한 문제를 창의적으로 해결하는 능력, 프로젝트 전체를 조망하고 효과적으로 협업할 수 있는 의사소통 능력, 그리고 빠르게 변화하는 기술 환경에 적응하며 지속적으로 학습할 수 있는 자기 주도적 학습 능력이 요구된다. 무엇보다 AI 도구를 효과적으로 활용하여 업무 효율성을 높이는 것은 AI 시대를 살아가는 개발자의 필수 역량이다. 이 책은 그러한 흐름에 발맞춰 단순히 자바 언어의 문법, 명령어 등과 같은 기술 습득에 그치지 않고 만들고자 하는 것을 논리적 사고 단계에 따라 하나씩 업그레이드하면서 상황에 맞게, 예측할 수 있게, 읽기 편하게 코딩하는 방법을 알려주는 것에 초점을 맞추고 있다.

자바의 모든 것을 알려주고 있다고 할 순 없지만 적어도 이 책으로 자바를 시작한 독자가 포기하지 않고 끝까지 학습한 후, 이 책에서 이해한 것을 바탕으로 프로그래밍에 흥미를 느끼고 더 공부해 보고 싶다고 느끼도록 하는 것을 목표로 한다. 프로그래밍을 처음 시작한다면, 자바를 처음 시작한다면 더도 덜도 말고 딱 58일 과정으로 구성된 체계적인 학습 구조를 통해 프로그래밍에 입문할 수 있기를 바란다.

목차


CHAPTER 01 자바 프로그래밍 틀잡기

[DAY 01] 자바와 객체 지향 프로그래밍 알아보기
_객체 지향 프로그래밍을 배워 볼 필요
_객체 지향 프로그래밍 언어, 자바
_객체의 의미
_추상화의 의미

[DAY 02] 개발 환경 구축하기
_인텔리제이를 쓰는 이유
_인텔리제이 설치하기
_인텔리제이 실행하기
_인텔리제이에서 프로젝트 만들기
_인텔리제이 프로젝트 화면 살펴보기
_인텔리제이 환경 설정하기

[DAY 03] Hello를 출력하는 기능 만들기
_클래스 선언하기
_메서드 선언하기
_명령 추가하기
_메인 메서드 만들기
_인스턴스화하기
_Hello 대신 1+1 출력하기

CHAPTER 02 입력과 출력

[DAY 04] 한 글자씩 입력받기
_프로그래밍에서 입력받는다는 것의 의미
_InputStreamReader로 입력받기
_아스키 코드의 역할
_주석의 작동 원리
_두 글자씩 데이터 입력받기

[DAY 05] 버퍼를 이용해 한 줄 단위로 입력받기
_BufferedReader로 입력받기
_두 개의 숫자 입력받기
_입력받은 숫자 더하기

[DAY 06] 숫자형 데이터를 입력받아 안내문 출력하기
_Scanner로 입력받은 정수 더하기
_Scanner로 입력받은 문자 합치기
_입력 시 안내문 출력하기

[DAY 07] 여러 가지 방법으로 출력하기
_메인 메서드에서 바로 실행하기
_printf()로 포매팅해서 출력하기
_한 줄 띄우기
_소수점 출력하기

[DAY 08] 입력과 출력 활용하기(종합 예제)
_입력받은 세 개의 숫자 평균 구하기
_입력받은 값을 곱해서 세 자리마다 ,로 구분해서 출력하기

CHAPTER 03 변수와 타입

[DAY 09] 변수를 선언하고 초기화하기
_변수의 의미
_타입의 의미
_변수의 크기
_변수가 필요한 경우
_변수 선언하기
_변수 초기화하기
_변수 선언과 초기화를 한 번에 하기
_상수 선언과 값 할당하기
_강타입 언어 vs 동적 타입 언어

[DAY 10] 변수와 상수 활용하기(종합 예제)
_변수에 값을 담아 출력하기
_변수에 담았던 값 출력하기
_변수에 담긴 값 바꾸기

[DAY 11] 멤버 변수 알아보기
_멤버 변수의 의미
_멤버 변수가 필요한 경우
_멤버 변수 선언하기
_멤버 변수로 접근하기
_가비지 컬렉션

[DAY 12] 멤버 변수 활용하기(종합 예제)
_2D 좌표 평면상의 점 표현하기
_User를 클래스와 멤버 변수로 표현하기
_공장(Factory)을 클래스와 멤버 변수로 표현하기

[DAY 13] 숫자와 논리를 나타내는 타입 알아보기
_원시 타입과 참조 타입
_적절한 타입 사용의 중요성
_소수점을 다루는 float와 double
_true와 false를 저장하는 boolean 타입

[DAY 14] 데이터 타입을 변환하는 타입 캐스팅
_원시 타입 간 타입 캐스팅하기
_문자열(String)을 정수형(int)으로 타입 캐스팅하기
_소수점 문자열을 실수형으로 변환하기

[DAY 15] 문자열을 나타내는 String 타입 알아보기
_문자열 연결하기
_문자열 포매팅하기
_문자열 자르기
_문자열 비교하기
_문자열에서 문자열의 위치
_문자열 분리하기

CHAPTER 04 배열

[DAY 16] 배열 알아보기
_배열 선언하기
_배열을 선언하면서 초기화하기
_배열 값에 접근하기
_배열에 값 할당하기
_여러 가지 타입의 배열 선언하기
_참조 타입의 배열 선언하기
_배열을 멤버 변수로 사용하기

[DAY 17] 2차원 배열 알아보기
_2차원 배열 선언하기
_2차원 배열 값에 접근하기
_2차원 배열에 값 할당하기
_배열의 길이
_2차원 배열의 길이

[DAY 18] 2차원 배열 활용하기(종합 예제)
_가로 한 줄에 값 채우기
_세로 한 줄에 값 채우기
_배열 인덱스 간에 값 바꾸기
_한 줄로 숫자를 입력받아서 합계 구하기

CHAPTER 05 연산자

[DAY 19] 연산자 알아보기
_연산자와 피연산자
_연산자의 특징
_연산자의 종류
_연산자의 우선순위

[DAY 20] 산술 연산자 알아보기
_사칙 연산자와 나머지 연산자의 종류
_숫자를 산술 연산하기
_변수를 산술 연산하기

[DAY 21] 산술 연산자 활용하기(종합 예제)
_배열의 중간에 있는 숫자 구하기
_초를 "분:초"로 표현하기
_나머지 구하기

[DAY 22] 대입 연산자 알아보기
_변수에 값 누적하기
_문자열 누적하기
_10으로 나눈 결과를 누적해 자릿수 더하기

[DAY 23] 복합 대입 연산자와 증감 연산자 알아보기
_복합 대입 연산자의 종류
_복합 대입 연산자로 변수에 값 누적하기
_자릿수 더하기에 복합 대입 연산자 적용하기
_증감 연산자의 종류
_증감 연산자로 변수 값 증감시키기

[DAY 24] 대입, 복합 대입, 증감 연산자 활용하기(종합 예제)
_대입 연산자로 배열에 있는 모든 값 더하기
_증감 연산자로 배열의 인덱스 값 출력하기
_복합 대입 연산자로 복리 계산하기

[DAY 25] 비교 연산자, 논리 연산자, 조건 연산자 알아보기
_비교 연산자의 종류
_비교 연산자로 변수 값 비교하기
_논리 연산자의 종류
_AND 연산자로 조건 비교하기
_OR 연산자로 조건 비교하기
_NOT 연산자로 조건 비교하기
_조건 연산자

[DAY 26] 비교, 논리 연산자 활용하기(종합 예제)
_비교 연산자로 배열 값 간 비교하기
_AND 연산자로 보일러 온도 체크하기
_OR 연산자로 승진 가능 여부 확인하기
_NOT 연산자로 미성년자 여부 확인하기

CHAPTER 06 제어문

[DAY 27] if문 알아보기
_if문 사용하기
_비교 연산으로 논리값 받기
_논리 연산으로 논리값 받기
_else 사용하기
_else if 사용하기

[DAY 28] if문 활용하기(종합 예제)
_홀수인지 짝수인지 판단하기
_승진 대상자 확인하기
_배열에서 자리 바꾸기
_병원 진료 부위 확인하기

[DAY 29] switch-case문 알아보기
_switch-case문 사용 방법
_switch-case문을 개선한 switch 표현식
_표현식과 문의 차이
_switch 표현식의 결과를 변수에 대입하기

[DAY 30] switch-case문 활용하기(종합 예제)
_진료 시간 표현하기
_권한에 따른 접근 제어

[DAY 31] for문 알아보기
_반복문 사용하기
_반복 횟수와 시작 숫자 제어하기
_역순으로 반복하기
_i 값을 2씩 늘리기
_1부터 n까지 무한히 출력하기
_2i를 조건식의 비교 대상으로 삼기
_for-each문

[DAY 32] for문 활용하기(종합 예제)
_구구단 출력으로 반복문 익히기
_1부터 n까지 합 구하기
_n! 구하기

[DAY 33] while문과 do-while문 알아보기
_while문 사용 방법
_do-while문 사용 방법

[DAY 34] while문과 do-while문 활용하기(종합 예제)
_while문으로 카운트 다운하기
_while문으로 팩토리얼(n!) 구하기
_do-while문과 switch 표현식으로 고객센터 메뉴 구현하기

[DAY 35] 반복문과 조건문 함께 쓰기
_if문과 for문으로 홀수의 합 구하기
_while문으로 홀수의 합 구하기
_약수 구하기
_소수인지 판별하기
_최대 값 구하기
_break로 반복문 멈추기
_while문에서 break로 반복문 멈추기
_continue로 반복문으로 돌아가기

CHAPTER 07 메서드

[DAY 36] 메서드 선언하고 호출하기
_클래스와 메서드
_메서드 선언하기
_메서드 호출하기
_메서드를 사용하는 이유

[DAY 37] 메서드 구성 요소 알아보기
_접근 제어자
_리턴 타입
_메서드 이름

[DAY 38] 리턴 알아보기
_리턴 사용 방법
_참조 타입 리턴하기
_리턴값을 이용하여 조건 연산하기

[DAY 39] 매개변수 알아보기
_메서드에 매개변수 사용하기
_두 개 이상의 매개변수 사용하기
_원시 타입을 매개변수로 전달하는 방식 이해하기
_참조 타입을 매개변수로 전달하는 방식 이해하기

[DAY 40] 리턴과 매개변수 활용하기(종합 예제)
_String 타입의 매개변수 사용하기
_On인지 Off인지 알려 주는 메서드 사용하기

[DAY 41] 메인 메서드 알아보기
_메인 메서드 구성 요소
_접근 제어자 public
_static 키워드
_리턴 타입 void
_메서드 이름 main
_매개변수 String[] args

[DAY 42] 스태틱, 게터, 세터 메서드 알아보기
_스태틱 메서드 선언하기
_스태틱 메서드 호출하기
_게터 메서드와 세터 메서드가 필요한 순간
_게터, 세터 사용하기

[DAY 43] 스태틱 메서드 활용하기(종합 예제)
_스태틱 메서드로 중복된 코드 제거하기
_스태틱 메서드로 구구단 선택 출력하기
_게터, 세터를 Machine 클래스에 적용하기

[DAY 44] 메서드 오버로딩 활용하기
_메서드 오버로딩하기
_메서드 오버로딩으로 주차 정산하기

CHAPTER 08 생성자

[DAY 45] 생성자 알아보기
_생성자 선언하기
_생성자로 초기 값 설정하기

[DAY 46] this를 사용하여 생성자로 초기 값 설정하기
_this를 사용하여 멤버 변수의 초기 값 설정하기
_여러 개 멤버 변수의 초기 값 설정하기
_상황에 따라 유동적으로 매개변수의 초기 값 설정하기

[DAY 47] 생성자 오버로딩 알아보기
_생성자 오버로딩하기
_this()로 다른 생성자 호출하기

CHAPTER 09 상속과 추상 클래스

[DAY 48] 상속과 오버라이딩 알아보기
_상속 사용 방법
_메서드 오버라이딩하기
_메서드 오버라이딩으로 관리자 계정 만들기

[DAY 49] 추상 클래스 알아보기
_추상 클래스 선언하기
_추상 클래스를 상속받아 구현하는 방법
_추상 클래스 사용하기

[DAY 50] 추상 클래스 활용하기(종합 예제)
_직각삼각형 모양으로 별표 출력하기
_피라미드 모양으로 별표 출력하기

CHAPTER 10 인터페이스

[DAY 51] 인터페이스 알아보기
_인터페이스 선언하기
_인터페이스 구현하기
_인터페이스를 사용하는 이유

[DAY 52] 인터페이스 다중 상속하기
_다중 상속 구현하기
_다중 상속 사용하기

[DAY 53] 인터페이스 활용하기(종합 예제)
_ 최대 값 구하기
_최대 값을 이용해 최소 값 구하기
_인터페이스로 최대 값과 최소 값 동시에 구하기

[DAY 54] 의존성 주입 활용하기
_의존성 주입 적용하기
_변수를 선언하지 않고 의존성 주입하기
_익명 클래스 사용하기
_람다 표현식 사용하기

CHAPTER 11 자바 더 알아보기

[DAY 55] 제네릭 알아보기
_제네릭 선언 방법
_인터페이스에 제네릭 적용하기
_두 개 이상의 타입을 받는 인터페이스에 제네릭 적용하기
_클래스에 제네릭 적용하기
_내장 인터페이스에 제네릭 적용하기
_일반적으로 사용하는 타입 매개변수

[DAY 56] enum 알아보기
_열거 타입 선언 방법
_열거 타입의 상수에 값 지정하기
_switch 표현식에 열거 타입 활용하기

[DAY 57] 예외 알아보기
_예외 처리란
_예외 처리하기
_catch 소괄호 블록에 있는 변수 사용하기
_예외 발생 여부와 상관 없이 코드 실행하기
_throws를 이용한 예외 처리하기
_예외 처리 활용하기
_예외와 에러의 차이점

[DAY 58] 람다 표현식 알아보기
_람다 표현식 선언 방법
_매개변수가 없는 인터페이스 구현하기
_매개변수가 한 개인 인터페이스 구현하기
_매개변수가 두 개인 인터페이스 구현하기
_람다 표현식의 제약사항

QuickMenu