이 글은 코드프레소 Java 웹 개발 체험단 활동 중 처음시작하는 Java 프로그래밍 강좌를 기반으로 작성하였습니다.
코드프레소 URL: https://www.codepresso.kr/
강의 목차
먼저 강의 목차는 아래 그림과 같이 구성되어 있습니다.
과정 소개
첫 번째 목차인 과정 소개에서는 코드프레소 플랫폼 사용법에 대해 소개시켜줍니다.
Java 프로그래밍 언어의 소개
두 번째 목차인 Java 프로그래밍 언어의 소개에서는 Java 언어 소개와 Java 주요 용어에 대해 설명해줍니다.
Java 언어 소개
- 1991년 제임스 고슬링 주축인 그린 프로젝트로 시작
- TV 셋톱박스 등의 다양한 종류의 기기에서 동작하는 언어를 지향
- 1995년 Sun Microsystems에서 Java 1.0 공식 발표
- 2021년 현재 Java 18까지 출시 됨
Java 언어의 특징
- WORA - Write Once Run Anywhere
- Java 이전 C, C++은 하드웨어에 의존적
- 다른 종류의 하드웨어에서 실행하기 위해서는 재 컴파일 필요
- Java는 한번 작성 및 컴파일 된 결과물이 어디서는 동작 가능
- JVM(Java Virtual Machine)이 핵심!
- 객체 지향 언어
- Java 코드는 class를 기본 단위로 구성 됨
- 상속, 다형성, 캡슐화 등의 객체지향적 요소를 언어적으로 지원
- 자동화 된 메모리 관리
- 프로그램은 컴퓨터 메모리를 사용
-메모리 자원은 한정적이며, 효율적인 관리가 필수
- JVM의 Garbage Collector가 사용되지 않는 메모리 자원을 회수
- 개발자가 직접 메모리 관리를 하지 않아도 됨
Java 언어 적용 분야
- 모바일 애플리케이션 개발
- 웹 애플리케이션 개발
- 빅데이터 솔루션 개발
- 데이터베이스 개발
- 데스크탑 GUI 애플리케이션 개발
- 빅데이터 분석, 머신러닝
- 게임 개발
- 임베디드 SW 개발
Point!
- Wirte Once, Run Anywhere
- Java는 객체 지향 언어
- JVM의 Garbage Collector가 메모리를 자동 관리
Bytecode와 JVM
-
Bytecode
- Java 소스코드를 빌드 했을 경우 생성 되는 중간 코드
- 어셈블리어와 유사한 형태
- 기계가 바로 실행할 수 없음
-
JVM
- Java Virtual Machine
- Bytecode를 실행하기 위한 가상 머신
- Write Once, Run Anywhere를 구현하는 핵심
- OS, HW 독립적으로 Bytecode를 실행 가능
- Java Bytecode와 OS/HW 사이의 번역기
JRE와 JDK
-
JRE
- Java Runtime Environment
- JVM + Java 애플리케이션 실행에 필요한 추가적인 라이브러리 등을 포함
- Java 애플리케이션을 실행하기 위한 기본 단위
-
JDK
- Java Development Kit
- JRE + Java 개발 도구를 포함
- Java 개발을 위해서는 JDK 설치가 필수
Point!
-
Java 소스코드를 컴파일하면 Bytecode라는 중간 코드가 생성 됨
-
JVM으로 플랫폼 독립적인 WORA를 수현
-
JRE는 실행 환경, JDK는 개발 도구를 제공
실습 환경 세팅
세 번째 목차인 실습 환경 세팅에서는 해당 강의에서 사용할 SW(JDK)와 IDE(IntelliJ)를 알려주고 설치 방법을 설명합니다.
나의 첫 Java 애플리케이션
네 번째 목차인 나의 첫 Java 애플리케이션에서는 IntelliJ로 Java 프로젝트를 직접 생성해보고 Main 메소드를 구현하고 실행해봅니다. 또한 Java 기초 문법 요소와 입문자가 자주 겪는 에러에 대해 설명합니다.
클래스와 객체
- 클래스는 Java 프로그램의 기본 단위
- Java 프로그램은 한 개 이상의 클래스로 구성 됨
- 일반적으로 1개의 클래스는 1개의 Java 파일
- 파일명과 클래스명이 동일해야함
- Java는 객체지향(Object Oriented) 언어
- 객체는 사물(또는 우리가 상상할 수 있는 개념)
- 객체는 속성과 행동을 갖고 있음
- 클래스는 객체를 만들기 위한 틀 또는 템플릿
핵심
- Java 프로그램의 기본 단위는 클래스이다
- (일반적으로) 1개의 클래스는 1개의 Java 파일과 매핑 된다
- 이름도 동일해야 한다(대문자로 시작)
- 클래스로 객체를 생성하며, 객체는 속성(데이터)와 행동(메소드)를 갖는다
변수와 연산자
다섯번째 목차인 변수와 연산자에서는 변수에대한 개념, Java 자료형, 연산자에 대해서 배웁니다.
변수
- 컴퓨터 프로그램은 데이터와 그 데이터를 처리하는 알고리즘으로 구성 됨
- 변수(Variable)는 데이터를 저장하기 위한 공간
- 실제 데이터는 컴퓨터 메모리에 저장 됨
- 변수는 이름이 존재
- name, age, title, content, ...
- 명확한 이름은 그 변수에 어떤 데이터가 들어 있는지 쉽게 파악할 수 있게 함
변수의 작명 Rules and Conventions(규칙과 규약)
- Rule
- 반드시 따라야 하는 것
- Convention
- 따르는 것을 강하게 권장하는 것
- 따르지 않는다고 에러가 발생하지 않음
- 따르는 경우 코드의 품질, 가독성이 향상 됨
변수의 작명 Rules
- 변수의 이름은 알파벳, _, $ 로만 시작한다
- 변수의 이름은 대소문자를 구분한다
- age와 Age는 서로 다른 변수
- Java 언어에서 사용되는 키워드는 변수의 이름으로 사용 불가
- if, true, class, public 등 Java 언어에서 사용 되는 키워드 사용 불가
- 특수문자는 _와 $만 사용 가능
변수의 작명 Conventions
- 변수의 이름은 최대한 의미 있는 이름으로 짓는다
- 저장되는 데이터를 가장 잘 표현하는 이름
- 변수의 이름은 알파벳 소문자로 시작한다
- 여러 단어 연결 시 각 단어의 첫 글자를 대문자로 한다(camelCase)
- fixedPrice, colorOfSky, maxHeight
Point!
- 변수는 데이터를 저장하기 위한 공간으로 이름을 갖고 있다
- 변수는 선언 후 데이터를 대입(저장)할 수 있다.
- 변수의 이름으로 변수에 저장 되어 있는 데이터를 사용한다
- Rule과 Convention을 잘 따라서 변수의 이름을 정해야 한다.
정수 자료형
- 크기에 따라 더 큰 값을 저장 가능
- 자료형의 크기보다 더 큰 값을 저장 시 에러 발생
- int 범위를 넘어서는 숫자를 사용하기 위해서는 숫자 뒤에 L 접미사 필요
- 자바 컴퍼일러가 숫자 값을 default로 int형으로 판단
실수 자료형
- double이 float 보다 더 크고 정확한 실수를 저장 및 연산 가능
- float 값에는 접미사 f 필요
문자 자료형
- 1개의 문자를 저장
- 작은따옴표를 사용하여 값을 표현
- 큰따옴표는 문자열을 의미, char에 저장 불가
- 2개 이상의 연속된 문자(문자열)를 저장 불가
논리 자료형
- 참(true) 또는 거짓(false)을 저장하는 자료형
Java 참조 자료형
- String
- 문자열 데이터를 저장하기 위한 자료형
- Array
- Collections(List, Map, Set, ...)
- 개발자가 만든 객체
문자열 자료형
- 하나 이상의 연속 된 문자들의 집합을 저장
- 큰 따옴표를 사용하여 표현
- String은 객체이기 때문에 속성과 행동을 갖고 있음
- String 변수의 메소드(행동) 호출
- 문자열변수명.메소드이름() ex) 문자열변수명.length()
Java 연산자의 종류
기본 자료형의 형 변환(Type Conversion/Casting)
- 형 변환
- 특정 자료형의 값을 다른 자료형으로 변환하는 것
- 기본 자료현 간의 형 변환의 종류
- 확장 형 변환: 작은 크기의 자료형에서 더 큰 크기의 자료형으로 형 변환
- 축소 형 변환: 큰 크기의 자료현에서 더 작은 크기의 자료형으로 형 변환
조건문
여섯번째 목차인 조건문에서는 단일 조건문과 if-else문과 switch-case문과 같은 자바에서 사용하는 조건문에 대해 배웁니다.
제어문(Control Flow Statement)
- 자바 프로그램은 기본적으로 위에서 아래로 순차적으로 실행 됨
- 프로그램의 실행 순서를 제어 가능
- 조건에 따라 실행 코드를 분기 - 조건문(Conditional Statement)
- 특정 코드를 반복해서 실행 - 반복문(Loop Statement)
조건문 - 단일 if문의 활용
- 조건문의 유형 1 - 단일 if문(if Statement)
- 문법
- if 다음에 나오는 조건식을 체크 (조건식의 결과는 true 또는 false)
- 조건식의 결과가 true 이면 if 내부의 코드를 실행
- 조건식이 결과가 false 이면 if 내부의 코드를 실행하지 않음
if - else 문의 활용
- 조건문의 유형 2: if - else 문
- 문법
- 조건식의 결과에 따라 실행할 코드의 위치가 달라짐
switch - case 문
- 조건문을 switch - case 문으로 표현 가능
- 조건식의 경우의 수가 많아지더라도 간결하게 표현할 수 있음
- 처리속도가 if - else if 문 보다 빠름
배열
일곱번째 목차인 배열에서는 자바에서의 배열에 대한 개념에 대해 배웁니다.
Java 배열(Array)
- 데이터를 담을 수 있는 상자가 연결되어 있는 형태
- 단일 배열에는 동일한 자료형의 데이터만 저장 가능
- 배열은 길이 속성을 갖고, 길이는 생성 시에 고정 됨
- 배열은 순서가 존재하며, 0으로 시작하는 번호를 갖고 있음(index)
반복문
일곱번째 목차인 반복문에서는 반본문의 개념, for문, while문에 대해서 배웁니다.
반복문
- 특정 코드 집합(코드 블록)을 반복적으로 수행
- 주어진 조건을 만족할 때까지 반복하거나, 일정 회수 만큼 반복
- HelloWorld을 10번 출력
- 2의 거듭제곱을 반복하여, 결과가 1000이 넘을 때까지 반복
for문의 흐름
1) 초기식을 실행한다.
2) 조건식을 실행하여 조건식의 결과가 true 이면,
3) 반복문 내의 코드를 실행한다.
4) 코드의 실행이 모두 끝나면 증감식을 실행한다.
while 문
- 반복문 구현을 위한 방법 중에 하나로 구조가 비교적 간결함
- 문법
- 반복문을 위한 while 키워드를 사용하여 구문을 시작
- 반복을 위한 조건식을 작성
- 중괄호 {} 내에는 조건식의 결과가 true인 동안 실행할 코드들을 작성