Code.presso Java 웹 개발 트랙 체험단 활동 중 수강하게 된 1주차 두번째 코스는 Java Programming 입문 과정이다🤗
강의 제목은 "처음시작하는 Java 프로그래밍"으로, 자세한 정보는 👇🏻아래👇🏻 링크를 통해 확인할 수 있다.
Java Programming 을 배우긴 했지만 주로 사용하는 언어는 아니었어서🤣 이번 강의를 통해 기초부터 다시 단단히 다지고, 완벽히 이해하고 넘어가려고 한다!
+) 변수와 연산자, 조건문, 반복문 등 이미 알고있는 기본 지식까지 모두 자세히 정리하진 않았고, 꼭 알아야 할 부분만 필자 나름대로 정리해보았다😉
✋🏻 포스팅 내 사용된 사진 파일들의 저작권은 모두 코드프레소에 있으며, 강의자료 공유 및 업로드는 불가능합니다.
Java 언어는 1991년 제임스 고슬링 주축인 그린 프로젝트로 시작되었으며, 2021년 기준 Java 18까지 출시되었다.
✔️ Java 특징, 하나
WORA - Write Once Run Anywhere
C
, C++
은 하드웨어에 의존적이라 다른 종류의 하드웨어에서 실행하려면 재컴파일이 필요하다.Java
는 한번 작성되고 컴파일 된 결과물이라면 어떤 OS 에서든 동작이 가능하다!JVM
(Java Virtual Machine)✔️ Java 특징, 둘
객체 지향 언어
Java
코드는 class를 기본 단위로 구성이 된다.✔️ Java 특징, 셋
자동화된 메모리 관리
JVM
의 Garbage Collector
는 개발자가 직접 메모리 관리를 하지 않아도, 사용되지 않는 메모리 자원을 알아서 회수한다.✔️ Java 언어 적용 분야
Java
는 다양한 분야에서 적용될 수 있는데 대표적으로,
분야에서 가장 많이 적용된다.
📌 Point
- Write Once Run Anywhere
- 객체 지향 언어
JVM Garbage Collector
의 메모리 관리
소스코드의 실행 과정이란, 소스코드를 컴퓨터가 이해할 수 있는 실행파일로 만들어주는 과정이다.
개발자가 소스코드를 만들면 컴파일/링킹/인터프리트의 과정을 거치고, 컴퓨터가 이해할 수 있는 결과물이 나오게 되고, 이 프로그램을 다양한 기기에서 실행할 수 있게 된다.
C언어의 경우, OS가 달라지면, 컴파일 과정을 다시 거쳐야 하는 번거로움이 있다😅
➡️ 이전에 설명했던 WORA와 맞지 않음
그렇다면, Java의 경우에는 어떨까🧐?
✔️ Bytecode
Java
소스코드를 빌드했을 때 생성되는 중간 코드이다.(어셈블리어와 유사한 형태)이 Bytecode
를 실행시키기 위해 필요한 것이 JVM 이다!
✔️ JVM
Bytecode
를 실행시키기 위한 가상 머신으로, WORA를 구현하는 핵심이다.Bytecode
를 실행할 수 있다.Java Bytecode
와 OS/HW 사이의 번역기✔️ JRE
JVM
+ Java
애플리케이션 실행에 필요한 추가적인 라이브러리JRE
에는 JVM
이 포함되어 있다는 뜻JRE
= JVM
+ 라이브러리✔️ JDK
JRE
와 여러 Java
개발 도구를 포함한다.Java
개발을 위해서는 JDK
를 필수로 설치 해야한다.JDK
= JRE
+ Java
개발 도구📌 Point
JVM
⊂JRE
⊂JDK
Java
소스코드를 컴파일하면,Bytecode
라는 중간코드가 생성된다.JVM
으로 플랫폼에 독립적인 WORA를 구현할 수 있다.JRE
는 실행 환경,JDK
는 개발 도구를 제공한다.
📌 규칙과 규약
- 규칙 : 반드시 따라야 하는 것으로, 그렇지 않을 경우 에러가 발생한다.
- 규약 : 따르는 것을 강하게 권장하는 것으로, 따르지 않는다고 에러가 발생하진 않지만, 따르는 경우 코드의 품질과 가독성이 향상된다.
✔️ 변수의 작명 규칙
_
와 $
만 사용할 수 있다.✔️ 변수의 작명 규약
camelCase
)
✔️ 기본 자료형 - Primitive Type
✔️ 참조 자료형 - Reference Type
문자열 자료형 이란🤔?
➡️ 하나 이상의 연속된 문자들의 집합으로 큰 따옴표를 사용하여 표현한다.
문자열도 객체이기 때문에, 속성과 행동을 가진다!
문자열변수명.메소드이름()
name.length()
여기서 아~주 중요한 부분💡
문자열은 객체이고, 참조형 변수이기 때문에 ==
가 아닌 equals()
를 통해 비교 연산을 진행해야 한다!
==
는 주소값을 비교하는 연산이고, equals()
는 값 자체를 비교하는 연산이다.
참조 변수는 객체에 대한 참조 값을 저장하게 되는데, ==
연산자를 사용할 시 위의 내용과 같이 참조 갑에 대한 비교를 수행한다.
문자열 비교와 같이 실제 객체 간의 동등 여부를 비교하기 위해서는 equals
메소드를 사용해야 한다는 점! 꼭 기억하자🤗
📌 이 부분에 대한 자세한 내용은 이전 포스팅에서 다룬 적이 있으므로 참고하자!
조건문의 경우 이미 이해하고 있는 단일 조건 if
문, if-else
문, if-else if-else
문은 제외하고, switch-case
문에 대해서만 정리해보겠다.
조건문을 switch-case
문으로 표현하면, 경우의 수가 많아지더라도 간결하게 표현할 수 있다.
처리속도가 if-else if-else
문 보다 빠르다!
switch
문에는 조건식을 기재하고 중괄호({}
)로 블록을 만든다.case
문에는 조건식에 대한 결과값을 명시하고, 끝에 콜론(:
)을 붙인다.case
문 내에는 각각이 수행할 코드와 끝에 break;
를 작성한다.default
문을 작성한다.switch
문의 조건식을 계산한다.case
문으로 들어가 코드를 수행한다.break
를 만나면 switch
문을 빠져나간다.case
문이 없을 경우 default
문을 수행한다✔️ break 문
break
문을 만나면 switch
문을 빠져나갈 수 있다.break
문을 통해 case
문의 코드 실행 영역을 구분할 수 있다.break
문은 생략이 가능하며, 대신 이러한 경우 switch
문이 종료될 때까지 모든 문장을 수행하게 된다case
에 OR
조건을 활용할 수 있다!switch
조건식의 결과는 정수 또는 문자열이어야 한다.case
문에는 정수 상수, 문자열 상수만 올 수 있다.(변수와 실수는 불가)Java 배열(Array)란, 데이터를 담을 수 있는 상자가 연결되어 있는 형태이다.
단일 배열에는 동일한 자료형의 데이터만 저장이 가능하며,
길이 속성을 가지고 있고 길이는 생성시에 고정된다.
또한 배열은 순서가 존재하며, 0으로 시작하는 번호 즉 index를 가진다.
Java
배열은 객체이며, 선언과 동시에 객체 생성이 가능하다.new
키워드를 사용한다.자료형[] 변수명 = new 자료형[길이]
➡️ int[] todayStockPrices = new int[10]
: 길이가 10인 int
형의 배열 객체
: todayStockPrices
변수에 생성한 배열 객체의 참조를 저장
: 배열은 객체이고, 배열을 저장하는 변수는 참조 자료형 변수
자료형[] 변수명 = {값1, 값2, ...}
➡️ int[] todayStockPrices = {1, 3, 5, 7}
➡️ 길이는 4
변수명[index]
➡️ int[] ages = {1, 2, 3, 4, 5}
➡️ ex) System.out.println(ages[0])
length
라는 속성을 가지고 있다.변수명.length
System.out.println(ages.length)
특정 코드를 반복해서 실행하는 반복문에 대해 간단히 알아보자!
반복문에는 대표적으로 for
문, while
문, continue-break
문이 있다.
✔️ for문 문법
for
키워드 사용한다.(초기식; 조건식; 증감식)
으로 구분한다.{}
로 for
문의 코드 블록을 명시한다.증감식에는 반복문을 제어하는 변수의 값을 증가 또는 감소시키는 식이 들어간다.
증가 연산자(++
), 감소 연산자(--
), 그리고 대입 연산자(+=
, -=
) 또한 활용할 수 있다.
✔️ for 문의 활용
특정 문자열을 가져와서 출력할 수도 있다.
이때 사용하는 메소드가 charAt()
메소드이다.
String text = "codepresso"
System.out.println(text.charAt(5));
이처럼 charAt(index)
로 특정 위치의 문자열을 가져올 수도 있다!
Enhanced for
문은 배열 내 저장된 모든 값을 순차적으로 참조하기 위한 다른 형태의 for
문이다.
Enhanced for
문은 별도의 종료 조건을 명시하지 않고, 배열에서 가져올 원소 데이터가 더 이상 없는 경우 반복문이 종료된다.
주로 배열, 컬렉션 등에 저장된 원소 데이터를 읽는 목적으로 사용된다.
for
문의 첫번째 값은 저장할 원소 데이터의 자료형과 변수명을 명시한다.:
)을 기재한다.{}
) 내에는 명시한 배열의 길이 만큼 실행할 코드를 작성한다.반복문 구현을 위한 방법 중 하나로 비교적 구조가 간결한 while
문에 대해 알아보자!
✔️ while문 문법
while
키워드를 사용하여 구문을 시작한다.{}
) 내에는 조건식의 결과가 참인 동안 실행할 코드들을 작성한다.✔️ 주의해야 할 점
while
문은 조건식 결과가 참이면 계속해서 반복문을 실행한다.{}
) 내에는 조건식의 결과를 false로 만들 별도의 코드가 필요하다.반복문을 제어하는 continue-break
에 대해 알아보자.
✔️ break - 반복의 완전 중단
if
문과 함께 사용된다.✔️ continue - 현재 반복의 중단
continue
를 만나면 현재 반복을 중단하고, 다음 반복을 위해 조건식으로 이동한다.if
문 내부에서 사용된다.1주차 두번째 강의인 "처음시작하는 Java 프로그래밍" 를 이렇게 완강했다!
이 코스는 Java를 처음 배우는 사람들을 위한 입문 코스이다.
기초 코스부터 다양한 분야의 IT 전문 교육 프로그램이 코드프레소 홈페이지(https://www.codepresso.kr/)에 존재하니 참고하면 좋을 것 같다😎