이전에도 자바 공부를 한적 있었는데, 이번에는 강의를 들으면서 공부를 해보겠다.
2025.01.23 - [백엔드 부트캠프[사전캠프]/TIL] - [내일배움캠프-사전캠프 04일차] 자바 공부
[내일배움캠프-사전캠프 04일차] 자바 공부
len 만해도 python에서는 len() 이런식만 해도 출력이 됐고, 문자열 * 숫자 하면 숫자만큼 문자열이 더해졌는데. 자바는 그런 게 안 된다.그렇다 보니 하나 하나 함수를 찾아보아야 한다.1. 문자열 반
sintory-04.tistory.com
✅ 1주차 - 01 ] JAVA의 탄생
- C, C++ 같은 언어들은 운영체제마다 코드가 다르게 동작하는 문제가 있었음.
- James Gosling의 주도로 자바라는 언어가 탄생. 한번작성하면 어디서든 동작할 수 있도록 만든 언어임.
1. 플랫폼 독립성
" 프로그램은 어디서든 동작 "
- JDK? : 자바프로그램을 개발할 때 필요한 도구 모음임.
- Javac 자바 컴파일러? .java 언어를 Javac가 바이트 코드로 변환해줌.
- 바이트코드란? .class Java 프로그램이실행되기 위해 변환되는 중간 단계의 코드. JVM이 해석할 수 있는 코드임.
- VJM이란 ? 바이트코드를 해석하고 자바 프로그램을 실행시키는 역할
2. 객체지향
" 모든것이 클래스 "
- 자바의 세계는 모두 객체, 클래스로 이루어져 있음
- 객체와 클래스는 개념적으로는 다르지만 실무에선 혼용해서 많이 쓰임
- 자바에서 코드를 작성할때 서로 관련있는 기능을 묶어 하나의 클래스로 관리
- 파일이라고 생각하고 넘어가도 됨
- 클래스 비유: 설계도 / 설명: 객체를 만들기 위한 정의
- 객체 비유: 설계도를 기반으로 만들어진 존재 / 설명: 클래스에서 만들어진 존재
> 오 이렇게 설계도를 기반해서 얘기하니까 좀 이해가 되네 'ㅡ'
3. 거대한 생태계
- 이미 다양한 오픈소스 라이브러리, 프레임워크 등을 가지고 있음. 관련 학습자료를 쉽게 찾아 볼 수 있음.
+) 디버그: 문제를 해결하는 과정
✅ 1주차 - 02 ] 강의 컴퓨터의 기억 방식
1. 메모리 (RAM) 주기억장치
- 사람은 주 기억장치로 뇌를 ,컴퓨터는 RAM 사용함
- RAM의 특징: 휘발성, 빠른 속도
2. 보조 기억 장치 HDD/SSD
- 컴퓨터가 영구적으로 정보를 저장하기 위해 하드디스크를 활용
- 보조기억장치 특징: 영구저장, 느린 속도
- 저장된 정보는 영구적으로 유지되나, 저장된 정보를 가져오기 위해서는 더 큰 비용이 소모 됨.
RAM | 주기억장치 | 휘발성, 빠름 |
---|---|---|
HDD/SSD | 보조기억장치 | 영구저장, 느림 |
3. 컴퓨터가 메모리를 관리하는 방법
1) 바이트:
1바이트는 8 비트로 구성되어 있음.
2) 비트
- 컴퓨터가 데이터를 저장하고 처리하는 단위 중 하나
- 비트는 메모리의 최소 저장 단위임.
- 1 비트는 0 혹은 1중 한개를 저장할 수 있는 공간이다.
=> 따라서 1비트가 있을 때 표현할 수 있는 경우의 수는 2개인 것이다. (이거를 1비트에 저장할 수 있는 데이터의 수라고 표현)
✅ 1주차 - 03 ] 자바 프로젝트 관리
1. 명명 규칙
1) 카멜 케이스 camelCase
: 대문자가 혹처럼 튀어나온다.
firstName, lastName, fullName
2) 스네이크 케이스 (snake_case)
: 언더스코어가 뱀처럼 이어짐
frist_name, last_name, full_name
3) 패키지 명명 규칙
- 소문자만 가능 / 숫자로 시작 금지, 특수문자 사용 금지, 예약어 사용 금지
- ⭕ : chpater1
- ❌ : chapTer1 1chapter chapter#1 class public static
4) 클래스 명명규칙
- 클래스 이름을 작성할 때는 첫 글자 대문자 + 카멜케이스 조합으로 작성
- ⭕ MyNewClass
- ❌ : myNewClass, My_new_class, 1MyNewClass, My#New#Class, Class, Public, Static
2. 패키지 (폴더)
: Java 프로젝트에서는 파일들의 묶음을 패키지라고 표현
- 자바 클래스들을 그룹으로 묶는 기능 / 폴더처럼 파일(클래스)을 정리해서 관리할 수 있도록 도와주는 역할
✅ 1주차 - 04 ] 변수 - 데이터의 저장 공간
1. 변수
: 데이터의 저장공간임.
2. 변수의 구조
[자료형] [변수이름] [세미콜론]
int a;
3. 변수 명명 규칙
- 가독성을 위해 카멜케이스를 권장함. 명사형태로 사용할 것.
- ⭕ : car1, myCar
- ❌ : 1stCar, my car, int, class, public
4. 변수 활용
1) 변수 선언
: 데이터 저장 공간을 만드는 것을 변수를 선언한다 라고 표현
int a;
int b;
2) 변수에 값을 할당
: 변수에 값을 넣어주는 것.
리터럴- 변수 안에 직접 넣은 "값"을 뜻함
// a 는 변수이름(Variable)
// 1 은 리터럴(literal)
a = 1;
3) 선언과 동시에 값 할당
int c = 3;
4) 기존 변수에 데이터 재할당
c = 4; //(1)
c = 5; //(2)
c = 6; //(3)
5) 변수에 변수를 할당
- 자바의 경우 코드가 1번부터 실행됨
int d = 1;
int e = d;
d = 10;
System.out.println("e = " + e); // 정답 1
5. 자료형 메모리를 사용하는 단위
- 자료형이 무엇인지 알아보기.
- 자료형은 상자에 담을 수 있는 데이터의 크기를 결정하는 규칙
자료형 | 종류 | 범위 | 바이트 | 비트 |
---|---|---|---|---|
boolean |
논리형 | true/ false | 1 | 8 |
char |
문자형 | 0~65535 유니코드값 | 2 | 16 |
byte |
정수형 | -128-127 | 1 | 8 |
short |
정수형 | -32,768 ~ 32,767 | 2 | 16 |
int |
정수형 | -2,147,483,648 ~ 2,147,483,647 | 4 | 32 |
long |
정수형 | -9,233,372,036,854,775,808 ~ 9,233,372,036,854,775,807 | 8 | 64 |
float |
실수형 | 약 소수점 6~7자리까지 | 4 | 32 |
double |
실수형 | 약 소수점 15~17자리까지 | 8 | 64 |
- float
와 double
형의 범위를 약이라고 표현한 이유
: IEEE 754 부동소수점 표현 방식. Java의 float
과 double
은 2진수 기반의 부동소수점으로 저장되며 이는 10진수에서 정확한 자릿수를 보장하지 못하는 경우가 있기 때문임.
6. 변수의 선언과 메모리 할당
- 변수에서 메모리는 1바이트 주소로 관리됨.
int a = 10; // 4 바이트 크기의 a 변수에 정수형 데이터 10을 넣어 초기화.
int b; // 4바이트 크기의 b 변수에 어떤 값이 저장돼 있는지 알 수 없음.
7. 형변환(Casting)
- 형 변환은 변수의 자료형을 다른 자료형으로 변경하는 것
- 업캐스팅(UpCasting): 작은 데이터를 큰 데이터로 변경 / 데이터손실 X
int smallBox = 10;
double bigBox = smallBox; // ✅ double <- int 자동형 변환
System.out.println(bigBox); // ✅ 출력: 10.0
- 다운캐스팅(DownCasting) : 큰 데이터를 작은 데이터로 변경 / 강제로 형 변환 > 데이터의 손실이 발생함
double bigBox = 10.111;
int smallBox = (int) bigBox; // ✅ int <- double 명시적변환
System.out.println(smallBox); // ✅ 출력: 10 !데이터손실발생!
형 변환 종류 | 형변환 방식 | 자동 형 변환 여부 | 설명 |
다운캐스팅 | 명시적 | ❌ | 큰상자 → 작은상자 |
업캐스팅 | 묵시적 | ✅ | 작은상자 → 큰상자 |
✅ 1주차 - 05 ] 입출력 - 프로그램과 사용자 간의 대화
1. 출력
" 결과를 콘솔로 보여주는 것 "
1) 출력 방법
// \n 포함한 출력
System.out.println("Hello");
// \n 포함하지 않은 출력
System.out.print("Hello");
2) 출력방법 정리
출력방법 | 설명 |
System.out.print() |
줄 바꿈 없이 출력
|
System.out.println()
|
출력 후 줄 바꿈
|
2. 입력
"데이터를 자바로 전달하는 것, Java에서는 데이터를 읽을때 객체를 사용하는데 Scanner라는 객체를 통해 입력을 전달 가능"
1) Scanner 객체 소환
import java.util.Scanner; // Scanner를 사용하려면 import 필요
public class ScannerPractice {
public static void main(String[] args) {
// ✅ Scanner 객체 생성 & 변수에 담기
Scanner scanner = new Scanner(System.in);
}
}
2) 문자열 받기
- scanner.nextLine();
Scanner scanner = new Scanner(System.in);
System.out.print("좋아하는 문장을 입력하세요: ");
String sentence = scanner.nextLine();
3) Int 받기
- scanner.nextInt();
System.out.print("정수를 입력하세요: ");
int num1 = scanner.nextInt();
4) Double 받기
- scanner.nextDouble();
System.out.print("실수를 입력하세요: ");
double num2 = scanner.nextDouble();
5) Long 받기
- scanner.nextLong();
System.out.print("큰 정수를 입력하세요: ");
long num3 = scanner.nextLong();
✅ 명명규칙 정리
명명규칙은 손에 익어야하므로 따로 정리해보았다.
1️⃣패키지 명명 규칙
- 소문자만 가능 / 숫자로 시작 금지, 특수문자 사용 금지, 예약어 사용 금지
- ⭕ : chpater1
- ❌ : chapTer1 1chapter chapter#1 class public static
2️⃣클래스 명명규칙
- 클래스 이름을 작성할 때는 첫 글자 대문자 + 카멜케이스 조합으로 작성
- ⭕ MyNewClass
- ❌ : myNewClass, My_new_class, 1MyNewClass, My#New#Class, Class, Public, Static
3️⃣변수
- 가독성을 위해 카멜케이스를 권장함. 명사형태로 사용할 것.
- ⭕ : car1, myCar
- ❌ : 1stCar, my car, int, class, public
✅ 1주차 - 06] 사칙연산
1. 사칙연산
1) 기본적인 연산
int a = 10;
int b = 3;
// 기본 사칙연산
int sum = a + b;
System.out.println("sum = " + sum);
int sub = a - b;
System.out.println("sub = " + sub);
int mul = a * b;
System.out.println("mul = " + mul);
int div = a / b;
System.out.println("div = " + div); // ⚠️ 3 (소수점 버려짐)
double div2 = a / 3.0;
System.out.println("div2 = " + div2); // ✅ 3.333... (소수점 유지)
- 정수끼리 나누게 되면 소수점이 버려집니다.
- 소수점을 유지하려면 소수점과 연산을 시켜야 합니다.
2) 모듈러 연산 / 몫 계산하기
- 시간을 연산할시 좋음.
int mod = 10 % 3;
System.out.println("mod = " + mod); // 나머지: 1
int mod2 = 15 % 4;
System.out.println("mod2 = " + mod2); // 나머지: 3
int mod3 = 20 % 7;
System.out.println("mod3 = " + mod3); // 나머지: 6
2. 대입 연산자
1) 대입연산자
- 대입연산자(
=
) 는 변수에 값을 할당하는데 사용됩니다. - 연산자 중에 제일 마지막에 수행됩니다.
int num = 5;
System.out.println("변수 num의 값: " + num); // 10
2) 복합 대입 연산자(+=
,-=
, *=
, /=
, %=
)
- 복합대입연산자는 누적 값을 구할 때 자주 활용
int num = 5;
num += 3; // num = num + 3;
System.out.println("+= 결과: " + num); // 8
num -= 2; // num = num - 2;
System.out.println("-= 결과: " + num); // 6
num *= 2; // num = num * 2;
System.out.println("*= 결과: " + num); // 12
num /= 3; // num = num / 3;
System.out.println("/= 결과: " + num); // 4
num %= 3; // num = num % 3;
System.out.println("%= 결과: " + num); // 1
3. 증감 연산자
1) 증감연산자 활용
- 증감 연산자는 변수를 1 증가 (++) 또는 1 감소 (--) 시킬 때 사용
int a = 5;
System.out.println("++a: " + (++a)); // 6 (먼저 증가 후 출력)
System.out.println("현재 a 값: " + a); // 6
2) 전위연산과 후위연산
- 증감 연산자는 변수 앞(
++i
)에 위치하는지 뒤(i++
)에 위치하는 지에 따라 실행 순서가 달라집니다.
// 1. 전위연산
int a = 5;
System.out.println("++a: " + (++a)); // 6 (먼저 증가 후 출력)
System.out.println("현재 a 값: " + a); // 6
// 2. 후위연산
int b = 5;
System.out.println("b++: " + (b++)); // 5 (출력 후 증가)
System.out.println("현재 b 값: " + b); // 6
4. 비교연산자
1) 같음 연산자
- 두 값이 같으면
true
, 다르면false
를 반환 합니다.
System.out.println("10 == 10: " + (10 == 10)); // true
2) 다름 연산자
- 두 값이 다르면
true
, 같으면false
를 반환합니다.
System.out.println("10 != 5: " + (10 != 5)); // true
3) 크기 비교 연산자
- 양쪽의 값을 비교했을때 논리에 맞으면
true
를 반환 - 논리에 어긋나면
false
를 반환합니다.
System.out.println("10 < 5: " + (10 < 5)); // false
System.out.println("10 >= 10: " + (10 >= 10)); // true
System.out.println("10 <= 5: " + (10 <= 5)); // false
연산자 | 설명 | 예제 | 결과 |
---|---|---|---|
== |
두 값이 같으면 true |
10 == 10 | true |
!= |
두 값이 다르면 true |
10 != 5 | true |
> |
왼쪽 값이 크면 true |
10 > 5 | true |
< |
왼쪽 값이 작으면 true |
10 < 5 | false |
>= |
왼쪽 값이 크거나 같으면 true |
10 >= 10 | true |
<= |
왼쪽 값이 작거나 같으면 true |
10 <= 5 | false |
5. 논리연산자
1) AND 연산자(&&
) 는 두 조건이 모두 참일 때 true
를 반환합니다.
2) OR 연산자(||
) 둘 중 하나라도 참이면 true
를 반환합니다.
- OR연산자는 일반적인 키보드에서
Enter
키 위에 위치해있습니다. Shift
+\
를 누르면|
을 입력할 수 있습니다.
3) NOT 연산자(!
) true
일때 false
로, false
일때 true
로 변경합니다.
true
→false
false
→true
연산자 | 설명 | 예제 | 결과 |
---|---|---|---|
&& (AND) |
두 조건이 모두 참일 때만 true |
true && true | true |
true && false | false | ||
false && true | false | ||
(OR) | 하나라도 참이면 true |
||
true | |||
false | |||
false | |||
! (NOT) |
참이면 거짓, 거짓이면 참으로 변경 | !true | false |
!false | true |
6. 연산자 우선순위
1) 산술연산자 우선순위
- 기본적인 수학 사칙연산의 우선순위 적용
2) 기본 연산자 우선순위
- 산술 → 비교 → 논리 → 대입
boolean flag = 10 + 5 > 12 && true;
System.out.println(flag);
// 실행 순서: (10 + 5) > 12 && true : 산술
// → 15 > 12 && true : 비교
// → true && true : 논리
// → flag = true 대입
3) 비교 연산자와 산술연산자의 우선순위
- 산술 연산 → 비교 연산
4) 논리 연산자 우선순위 ( !
→ &&
→ ||
)
!
가 제일 먼저 연산 → 두 번째로&&
→ 마지막으로||
7. 문자열 비교
- 문자열 비교는 항상
.equals()
를 활용하세요.(동등성/동일성 문제) ==
는 문자열 값을 비교하는 것이 아니라 메모리 주소를 비교하는 방식
String text1 = "Hello";
String text2 = "Hello";
boolean isEqual = text1.equals(text2);
System.out.println("text1과 text2가 같은가? " + isEqual);
✅ 1주차 - 07] 조건문
1. 조건문 구조
- 조건 수식 부분이 참(
true
) 혹은 거짓(false
) 에 따라 명령문이 실행될지 결정
if (조건수식) {
명령문; // 실행할까? 말까 ?
}
2. if문 실습 if
, if-else
, else if
1) if
문 - 조건이 참일 때만 실행.
2) if-else
문 - 조건이 거짓일때 처리
3) else-if
문 - 여러 개의 조건을 처리해야 할때 사용
3. Switch
- 괄호안에 단일값만 들어갈 수 있음. 조건식은 사용할 수 없음.
break
- 해당 조건문을 나가는 것fall-through
현상 주의break
문을 스위치에서 사용하지 않으면 다음case
가 실행됩니다.
✅ 1주차 - 08] 반복문
1. for
문
for
반복문에서는 반복작업을 시작하기 전에 종결 조건을 확인합니다.- 종결 조건이 참(
true
) 일 경우 반복을 수행하고 거짓(false
)이면 반복을 끝냅니다.
for (시작조건; 종결조건; 조건변화수식) {
...
}
1) for
문 + break
문
break
문은 탈출 버튼- 반복을 벗어나야할때 사용합니다.
public class Robot {
public static void main(String[] args) {
int customers = 5;
for (int i = 1; i <= customers; i++) {
if (i == 4) {
break; // (1) 반복을 벗어납니다.
}
System.out.println(i + "번째 손님, 안녕하세요!");
}
System.out.println("반복문이 종료되었습니다.");
}
}
// 출력 예시:
오늘의 손님 수를 입력하세요: 5
1번째 손님, 안녕하세요!
2번째 손님, 안녕하세요!
3번째 손님, 안녕하세요!
반복문이 종료되었습니다.
2) continue
문(건너뛰기 skip 버튼)
continue
문은 건너뛰기(스킵) 버튼- 특정 회차의 반복을 건너뛸때 사용
2. while
문
while
반복문은 종결조건만 가지고 있음.- 종결조건식이
true
일때 반복. - 즉 종결조건이 거짓(
false
)이 될때까지 명령문을 반복합니다.
→ 무한루프를 조심
while (종결조건) {
반복할 명령문;
}
3. do-while
문
do-while
은while
문과 비슷하지만 종결조건을 반복 전이 아니라 후에 체크한다는 점입니다.
✅ 1주차 - 09] 배열
1. 배열(Array)
1) 배열이란?
- 비슷한 주제의 데이터들을 하나의 그룹으로 묶어서 표현.
- 관련된 데이터를 편리하게 관리하기 위해 사용됨.
- 모든 자료형의 종류로 배열을 만들 수 있음.
2) 배열의 길이
- 배열의 길이는 배열에 들어갈 수 있는 데이터의 개수를 의미합니다.
- 배열을 만들 때 한 번 크기를 정하면 변경할 수 없습니다. (
정적배열
) - 아래 문법으로 배열의 길이를 구할 수 있습니다.
배열이름.length
int arrLenght = adventurerList.length;
3) 배열 선언(Array Declaration)
new
키워드를 사용해 배열을 선언할 수 있습니다.
자료형[] 변수이름 = new 자료형[배열의길이]; // 배열선언
- (1)배열의 이름과 (2)길이 설정을 각 다른 줄에서 할 수 있습니다.
int[] arr;
arr = new int[5]
- 배열 선언과 배열길이설정은 같은 줄에 할 수도 있습니다.
int[] arr = new int[5];
int
자료형은4바이트
크기의 자료형입니다.- 길이가
5
인int
형 배열은 메모리에서20바이트
크기를 가집니다. (4바이트 * 5 = 20바이트)
4) 문자열 배열
// 길이가 5인 문자열 배열 arrA 를 선언
String[] arrA = new String[5];
5) 논리형 배열
// 길이가 3인 논리형 배열 arrB 를 선언
boolean[] arrB = new boolean[3];
6) 배열의 요소
- 배열 안에 들어있는 각각의 값을
배열의요소
라고 함 - 배열 선언과 동시에 배열의 요소를 설정할 수도 있음
int[] arr = {10, 20, 30, 40, 50};
7) 인덱스
- 각 배열의 요소에 접근하려면 인덱스(index) 를 이해해야 합니다.
index
의 시작은 0 입니다.- 인덱스를 통해 원하는 배열의 요소에 빠르게 접근할 수 있습니다.
- 배열의 범위에 벗어난 요소에 접근 시
ArrayIndexOutOfBoundsException
에러가 발생 - 인덱스(index) 를 활용할 때는 배열의 범위를 벗어나지 않게 주의
8) 배열에 정보 삽입 수정
- 인덱스(index) 를 활용해 각 요소의 값을 삽입 수정할 수 있습니다.
int[] arr = new int[5];
arr[0] = 100; // ✅ 1번째 요소를 100로 설정
arr[1] = 200; // ✅ 2번째 요소를 200로 설정
arr[2] = 300; // ✅ 3번째 요소를 300로 설정
arr[3] = 400; // ✅ 4번째 요소를 400로 설정
arr[4] = 500; // ✅ 5번째 요소를 500로 설정
arr[5] = 600; // ❌ 접근 불가
9) 배열 탐색
- 인덱스(index) 를 활용해 배열을 탐색할 수 있습니다.
- 변수를 인덱스(index) 로 활용한다면 반복문을 통해 쉽게 배열을 탐색할 수 있습니다.
int[] arr = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length; i++) {
// ✅ 숫자대신 변수i 를 인덱스 활용
System.out.println("numbers[" + i + "] = " + arr[i]);
}
10) 향상된 for
문
- 배열의 모든 요소를 하나씩 꺼내서 활용할 때 편리한 반복문
index
직접 활용하지 못함for (int a : arr)
→ 배열arr
에서 하나씩 꺼내서a
에 저장IndexOutOfBoundsException
에러가 발생하지 않음.
for(배열의요소 : 배열) {
명령문;
}
2. 2차원 배열
- 2차원배열은 2차원적인 정보를 표현할 때 적합
- 첫 번째 인덱스는
행
=가로
방향을 의미 - 두 번째 인덱스는
열
=세로
방향을 의미
boolean[][] board = new boolean[2][2]; // 2 x 2 2차원 배열 선언
✅ 1주차 - 10] 메서드
메서드
는 작업을 표현하는 방법임. 함수, 기능이라고도 합니다.- 여러 개의 작은 명령문을 한곳에 모아 사용하는 단위를
메서드
라고 함. - 생각해 보면 프로그램에게 커피를 마셔라! 라고 알려주는 것은 굉장히 어려운 일
1. 메서드 구조
public class 클래스이름 {
[반환자료형] [메서드이름](매개변수..) {
작업 명령문들...
}
}
- 메서드(함수, 기능)는
호출부
,선언부
로 나누어집니다. - 호출부 - 메서드를 사용하는 곳
- 선언부 - 메서드가 정의되어 있는 곳
- 호출부
매개변수
를 활용해 메서드 연산에 필요한 데이터를 전달할 수 있습니다. 지역변수
의 개념- 각 메서드는 자신만의 영역을 가지고 있습니다.
- 영역은 중괄호
{}
로 표현합니다. - 중괄호 안에 선언된 변수는 중괄호 안에서만 생존할 수 있습니다.
2. 선언부
public class Calculator {
int sum(int value1, value2) { // ✅ 메서드 선언된 곳
int result = value1 + value2;
return result;
}
}
public class Main {
public static void main(String[] args {
Calculator calculator = new Calculator(); // ✅ Calculator 객체 소환
int result = calculator.sum(1, 2); // ✅ 호출부
System.out.println("결과: " + result);
}
}
3. 반환값이 있을 때 return
- 반환 값이 있는 메서드
return
키워드를 활용해 반환되는 데이터를 표현.- 반환된 데이터는 호출부에서 받아서 활용.
public class Calculator {
int sum(int value1, value2) {
int result = value1 + value2;
return result; // ✅ result 가 반환됩니다.
}
}
4. 반환값이 없을 때 void
- 반환 데이터가 없는 메서드
- 반환 데이터가 없을때는 반환자료형 위치에
void
를 선언. void
는 “비어있다” 의미.
public class Calculator {
// ✅ void 로 반환 데이터가 없다는 것을 표시
void sum(int value1, value2) {
int result = value1 + value2;
System.out.println("계산결과는 " + result + "입니다.");
}
}
회고를 적었어야 했는데,, 피곤해서 적지 못했었다 😇😇😇
'백엔드 부트캠프 > TIL' 카테고리의 다른 글
[내일배움캠프Spring-8일차] Java 3주차 (1) | 2025.02.26 |
---|---|
[내일배움캠프Spring-7일차] Java 강의 2주차 수강 (1) | 2025.02.25 |
[내일배움캠프Spring-5일차] 미니 프로젝트 Iteration[리터레이션] (0) | 2025.02.21 |
[내일배움캠프Spring-4일차] 미니 프로젝트 4일차[최종] (3) | 2025.02.20 |
[내일배움캠프Spring-3일차] 미니 프로젝트 3일차 (4) | 2025.02.19 |