본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
Ch 1. Java 프로그래밍 시작하기
자바 프로그래밍의 기본 이해 : 변수, 연산자, 그리고 개발 환경 설정
1. 자바(Java)는 어떤 언어인가요?
자바는 1990년대 중반에 썬 마이크로시스템즈(Sun Microsystems)에서 개발된 고급(not high quality) (high-level), 클래스 기반(class-based), 객체 지향 프로그래밍 언어(object-oriented programming language)입니다. "한 번 작성하면 어디서든 실행된다(Write Once, Run Anywhere)"는 슬로건처럼, 자바는 구현 종속성이 적도록(few implementation dependencies) 설계되어 다양한 플랫폼에서 실행될 수 있다는 큰 장점을 가지고 있습니다.
현재 TIOBE 프로그래밍 커뮤니티 인덱스에서도 높은 순위를 유지하며 널리 사용되고 있는 언어 중 하나입니다. 특히 기업 환경, 안드로이드 앱 개발, 빅데이터 처리 등 다양한 분야에서 여전히 강력한 입지를 자랑하고 있습니다.
2. 변수와 할당 개념: 데이터 다루기
프로그래밍에서 변수(Variable)는 데이터를 저장하는 추상적인 저장 위치(abstract storage location)를 의미합니다. 이 저장 위치는 우리가 기억하기 쉬운 변수명(symbolic name)과 연결되어 있으며 , 특정 데이터 값(value)을 담고 있습니다. 수학에서 변하는 값을 나타내는 '변수'의 개념이 컴퓨터 프로그래밍으로 확장된 것이라고 이해할 수 있습니다.
예를 들어, 자바 코드에서 String message = "Hello, World!"; 라는 문장을 살펴보면
- String: 이것은 타입(Type)입니다. 타입 시스템은 모든 용어(단어, 구문 또는 다른 기호 집합)에 정수, 부동 소수점, 문자열과 같은 속성인 '타입'을 할당하는 규칙 세트를 포함하는 논리 시스템입니다. String은 문자열 데이터를 저장하는 타입입니다.
- message: 이것이 바로 우리가 데이터를 저장할 공간에 붙인 변수 이름(symbolic name)입니다.
- =: 이 기호는 할당 연산자(Assignment Operator)라고 불립니다. 할당 문장은 변수 이름으로 지정된 저장 위치에 값을 설정하거나 다시 설정합니다. 즉, 값을 변수에 복사하는 역할을 합니다.
- "Hello, World!": 이 부분이 변수 message에 저장될 값(Value)입니다.
이 한 줄의 코드는 크게 두 가지 작업을 수행합니다.
- 선언(Declaration): String message는 message라는 이름의 변수가 String 타입의 데이터를 저장할 것임을 선언하는 부분입니다. 선언은 언어 구성 요소로, 식별자의 속성을 지정하여 단어(식별자)의 의미를 선언합니다.
- 할당(Assignment): = 기호를 사용하여 "Hello, World!"라는 값을 message 변수에 할당하는 부분입니다.
예제 코드:
public class VariableExample {
public static void main(String[] args) {
String message = "Hello, World!"; // 변수 선언 및 할당 [cite: 6]
System.out.println(message); // 변수에 저장된 값 출력
int score = 100; // 정수형 변수 선언 및 할당
System.out.println("Score: " + score);
score = 95; // 변수 값 재할당
System.out.println("New Score: " + score);
}
}
이 코드에서 message 변수는 "Hello, World!"라는 문자열을 저장하고, score 변수는 정수를 저장합니다.
3. 주요 연산자: 데이터 조작하기
연산자(Operator)는 프로그래밍 언어 내에 정의된 구성 요소로, 일반적으로 함수처럼 동작하지만 구문적 또는 의미적으로 다르게 동작합니다. 자바에는 다양한 종류의 연산자가 있으며, 주요 연산자들은 다음과 같습니다.
3.1. 산술 연산자 (Arithmetic Operators)
수학적 계산을 수행하는 데 사용됩니다.
연산자 | 설명 | 예시 | 결과 | |
+ | 덧셈 연산자 (문자열 연결에도 사용) | System.out.println(1 + 1); |
2 | |
- | 뺄셈 연산자 | System.out.println(5 - 2); | 3 | |
* | 곱셈 연산자 | System.out.println(3 * 4); | 12 | |
/ | 나눗셈 연산자 | System.out.println(10 / 2); | 5 | |
% | 나머지 연산자 (나눗셈 후의 나머지 반환) | System.out.println(4 % 3); |
1 |
3.2. 동등/비교 연산자 (Equality and Relational Operators)
두 값의 관계를 비교하여 true 또는 false를 반환합니다.
연산자 | 설명 | 예시 | 결과 | |
== | 같다 | System.out.println(4 == 3); |
false | |
!= | 같지 않다 | System.out.println(4 != 3); |
true | |
> | 보다 크다 | System.out.println(4 > 3); |
true | |
>= | 보다 크거나 같다 | System.out.println(4 >= 4); | true | |
< | 보다 작다 | System.out.println(3 < 4); | true | |
<= | 보다 작거나 같다 | System.out.println(3 <= 3); | true |
3.3. 조건 연산자 (Conditional Operators)
논리적인 AND(&&) 또는 OR(||) 연산을 수행합니다.
연산자 | 설명 | 예시 | 결과 | |
&& | 조건부 AND | System.out.println(true && false); |
false | |
` | ` | 조건부 OR | ||
! | 논리적 부정 (NOT) | System.out.println(!false); |
true |
3.4. 증감 연산자 (Increment and Decrement Operators)
변수의 값을 1 증가시키거나 감소시킵니다.
- ++ (증가): 변수 값을 1 증가시킵니다.
- -- (감소): 변수 값을 1 감소시킵니다.
이 연산자들은 변수 앞에 붙는 전위(prefix) 형태 (++i)와 변수 뒤에 붙는 후위(postfix) 형태 (i++)에 따라 동작 방식이 약간 다릅니다.
예제 코드:
public class OperatorExample {
public static void main(String[] args) {
int i = 0; // [cite: 146]
// 증감 연산자 예시
System.out.println("i (초기값): " + i); // 0
System.out.println("i++ (후위 증가): " + (i++)); // 0 (출력 후 i가 1 증가) [cite: 156]
System.out.println("i (i++ 후): " + i); // 1 [cite: 157]
System.out.println("++i (전위 증가): " + (++i)); // 2 (i가 1 증가 후 출력) [cite: 158]
System.out.println("i (++i 후): " + i); // 2 [cite: 159]
int a = 5;
int b = 3;
// 산술 연산자 예시
System.out.println("a + b = " + (a + b)); // 8
System.out.println("a % b = " + (a % b)); // 2
// 비교 연산자 예시
System.out.println("a > b = " + (a > b)); // true
System.out.println("a == b = " + (a == b)); // false
// 논리 연산자 예시
boolean isTrue = true;
boolean isFalse = false;
System.out.println("isTrue && isFalse = " + (isTrue && isFalse)); // false
System.out.println("!isTrue = " + (!isTrue)); // false
}
}
4. 개발 도구 설치: 자바 개발 환경 구축하기
자바 프로그래밍을 시작하려면 적절한 개발 도구(Development Tools)를 설치해야 합니다. 여기서는 자바 개발 키트(JDK)와 Visual Studio Code를 이용한 환경 설정을 안내합니다.
4.1. JDK (Java Development Kit) 설치
JDK는 자바 프로그램을 개발하고 실행하는 데 필요한 모든 도구를 포함합니다.
- JDK 버전 선택: 최신 LTS(Long Term Support) 버전인 JDK 17을 권장합니다. JDK 17은 Oracle No-Fee Terms and Conditions(NFTC)에 따라 프로덕션 환경에서 무료로 사용할 수 있습니다.
- 운영체제 및 CPU 아키텍처 선택: 본인의 운영체제(Windows, macOS, Linux)와 CPU 아키텍처(ARM64, x64)에 맞는 파일을 선택하세요.
- JDK 다운로드: Oracle 웹사이트(https://www.oracle.com/java/technologies/downloads)에서 JDK를 다운로드합니다.
- 설치: 다운로드한 설치 프로그램을 실행하여 지시에 따라 설치를 진행합니다.
4.2. Visual Studio Code 설치
Visual Studio Code(VS Code)는 빠르고 강력한 코드 편집기로, 자바 개발에 매우 유용합니다.
- VS Code 다운로드: 공식 웹사이트(https://code.visualstudio.com/)에서 VS Code를 다운로드합니다.
- 설치: 다운로드한 설치 프로그램을 실행하여 지시에 따라 설치합니다.
4.3. Java Coding Pack for VS Code 설치
자바 개발을 위한 필수 확장 기능을 쉽게 설치할 수 있도록 Visual Studio Code는 Java Coding Pack을 제공합니다.
- Java Coding Pack 다운로드: https://code.visualstudio.com/docs/java/java-tutorial 페이지에서 운영체제에 맞는 Coding Pack을 다운로드합니다. 설치가 완료되면 Java Development Kit: 17 및 Visual Studio Code가 구성 요소로 표시됩니다.
- 설치: Coding Pack을 실행하면 필요한 JDK와 Java 확장 기능들이 자동으로 설치되거나 기존 설치를 업데이트/복구합니다.
5. 첫 번째 자바 프로그램 작성 및 실행하기
이제 개발 환경 설정이 완료되었으니, 간단한 자바 프로그램을 작성하고 실행해봅시다.
- 새 파일 생성: VS Code를 열고 새 파일을 생성한 후 App.java로 저장합니다.
- 코드 작성: 다음 코드를 파일에 입력합니다.
public class App { public static void main(String[] args) throws Exception { // [cite: 6, 19, 524, 526] System.out.println("Hello, World!"); // [cite: 7, 20, 525] } }
- 실행:
- VS Code에서 코드 상단에 나타나는 Run 버튼을 클릭하거나 터미널을 열고 javac App.java 명령어로 컴파일한 뒤, java App 명령어로 실행할 수 있습니다. 성공적으로 실행되면 터미널에 "Hello, World!"가 출력될 것입니다.
오늘의 실습
오늘의 느낀점
보통 자바 개발은 이클립스나 인텔리제이를 많이 사용했는데, vscode로 하니까 에디터가 상대적으로 가벼워서 좋았다. 업무때문에 JDK 는 openjdk21 로 사용중인데 (이걸 갈아엎으면 안드로이드 빌드할때 gradle 이며 다 꼬여서 골치가 아파진다) 그래도 실습하는데 전혀 이상은 없어서 괜찮다 ㅎㅎ 지금 회사에서 사용하고 있는 프레임워크도 자바로 만들어져서 딱히 낯선 언어는 아니지만 그래도 강의로 한번 다시 훑으니까 나쁘지 않은듯~ㅎㅎ
https://fastcampus.info/4n8ztzq
(~6/20) 50일의 기적 AI 환급반💫 | 패스트캠퍼스
초간단 미션! 하루 20분 공부하고 수강료 전액 환급에 AI 스킬 장착까지!
fastcampus.co.kr
'개발공부 > Java' 카테고리의 다른 글
패스트캠퍼스 환급챌린지 21일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 (2) | 2025.07.21 |
---|---|
패스트캠퍼스 환급챌린지 20일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 (0) | 2025.07.20 |
패스트캠퍼스 환급챌린지 19일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 (0) | 2025.07.19 |
패스트캠퍼스 환급챌린지 18일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 (0) | 2025.07.18 |
패스트캠퍼스 환급챌린지 17일차 : 한 번에 끝내는 컴퓨터 공학 & 인공지능 복수전공 초격차 패키지 강의 후기 (0) | 2025.07.17 |