Notice
Recent Posts
Recent Comments
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

Spring & Java

[4일차] [내일배움캠프 사전캠프] + 스타터 노트 작성하기 본문

내일배움캠프 사전 학습

[4일차] [내일배움캠프 사전캠프] + 스타터 노트 작성하기

dev.hyuck 2025. 11. 13. 14:54

4일차 스터디 내용 

 

● JAVA 1 - 8 반복문 - 자동화의 첫 걸음.

[ 4일차 수강 목록 ]

● Java 문법 종합반 1-8. 반복문 까지

● SQL강의 1-5. 필터링할때 유용한 표현 알아보기 까지

학습 키워드 

 

○ for - 조건과 증감식을 포함한 반복

○ break - 반복문을 즉시 종

○ while - 조건이 참일때 반복 실행

○ do - while - 최소 한번 실행 후 조건 검사

 

(1) 반복문 

 

반복문을 왜 배워야 할까요?

● Java 세상에서 일하는 로봇이 있다고 상상해 봅시다.

● 이 로봇에게 10번 " 안녕하세요! " 라고 인사를 시켜 봅시다. 
● 그렇다면 로봇에게 어떻게 명령시켜야 할까요?

 

System.out.println("안녕하세요!");
System.out.println("안녕하세요!");
System.out.println("안녕하세요!");
System.out.println("안녕하세요!");
System.out.println("안녕하세요!");
.... //너무 작성하기 힘들지 않으세요?

 

너무 비효율적입니다. 10번 정도야 괜찮지만 100번, 1000번이면 어떻게 해야 할까요?

 

● 일정한 형태의 작업을 반복적으로 수행해야 할 때 필요한 것이 바로 반복문 입니다.

● 반복문을 사용하면 단 한줄로 해결 가능합니다.

for (int i = 1; i <= 10; i++) {
    System.out.println("안녕하세요!");
}

 

(2) for 문의 구조 

● for 반복문에서는 반복 작업을 시작하기 전에 종결 조건을 확인 합니다.

● 종결 조건이 참 ( true ) 일 경우 반복을 수생하고 거짓 (false)이면 반복을 끝냅니다.

 

for (시작조건; 종결조건; 조건변화수식) {
		...
}

 

 

for (int i = 1; i <= 10; i++) {
    System.out.println("안녕하세요!");
}

 

( 1 - 1 ) for 문 활용법 

● 로봇을 통해 손님들에게 인사를 시켜 봅시다.

public class Robot {

    public static void main(String[] args) {
		    
		    int customers = 5;
		    
		    for (int i = 1; i <= customers; i++) {
				    System.out.println(i + "번째 손님, 안녕하세요!");
			  }
    }
}

 

( 1 - 2 ) break 문 (탈출 버튼)과 함께 사용

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번째 손님, 안녕하세요!
반복문이 종료되었습니다.

 

●  i == 4 일 때 break 가 진행되므로 4번째 손님부터는 출력되지 않습니다.

● 1번째, 2번째, 3번째 손님에게만 인사 후 반목문을 빠져나오게 됩니다.

 

(1 - 3) continue 문 (건너뛰기 skip 버튼 )

 

● for문 활용 + continue 문은 건너뛰기 (스킵) 버튼 입니다.

● 특정 회차의 반복을 건너 뛸때 사용 됩니다.

● 2번째 손님에게 인사하고 싶지 않을때 continue문을 활용할 수 있습니다.

 

public class Robot {

    public static void main(String[] args) {

		    int customers = 5;

		    for (int i = 1; i <= customers; i++) {
				    if (i == 2) {
						    continue; // (1) 반복을 건너 뜁니다.
				    }
				    System.out.println(i + "번째 손님, 안녕하세요!");
			  }
			  System.out.println("반복문이 종료되었습니다.");
    }
}

 

오늘의 손님 수를 입력하세요: 5
1번째 손님, 안녕하세요!
3번째 손님, 안녕하세요!
4번째 손님, 안녕하세요!
5번째 손님, 안녕하세요!
반복문이 종료되었습니다.

 

(2) 두번째 반목문 while 

 

● while 반복문은 종결조건만 가지고 있습니다.

● 종결조건식이 true 일때 반복합니다.

● 즉 종결조건이 거짓(false)이 될때까지 명령문을 반복합니다.

-> 무한루프를 조심해야 합니다.

 

while (종결조건) {
		반복할 명령문;
}

 

int i = 1;
while (i <= 10) { // 1은 10보다 작음으로 반복!
		System.out.println("i 가 10 보다 작습니다.");
		i++; // ✅ 없을 경우 무한루프 발생
}

 

(3) 세번째 반복문 do-while

 

● do-while은 while 문과 비슷하지만 종결조건을 반복 적이 아니라 후에 체크한다는 점 입니다.

do {
		반복할 명령문..
} while (종결 조건)

 

int i = 1;
do {
		System.out.println("안녕하세요.");
		i++;
} while (i <= 10);

 

<기출 문제 > 

입력한 숫자의 구구단 출력하기

사용자로부터 2-9 사이의 숫자를 입력 받아 해당 숫자의 구구단을 출력하세요.

 

사용자가 3을 입력하면 3단을 출력해야 합니다. for 또는 whule문을 자유롭게 활용하세요.

package chapter1.loop;

import java.util.Scanner;

// 구구단 만들기
public class Test {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.print("출력할 구구단 단수를 입력하세여(2-9): ");
        int gugudan = sc.nextInt();

        // 2-9 사이의 숫자인지 확인
        if(gugudan < 2 || gugudan > 9) {
            System.out.println("2에서 9 사이의 숫자를 입력하세요!");
        } else {
            System.out.println("====" + gugudan + "단 ====");
            for (int i = 1; i <= 9; i++) {
                System.out.println(gugudan + " x " + i + " = " + (gugudan * i));
            }
        }


    }


}

 

[ 과제 ] 조건문과 반복문

package chapter1.loop;

public class GradeCalculator {
    public static void main(String[] args) {

                // TODO: 5개 과목 점수 배열 생성
                int[] scores = {85, 92, 78, 88, 95}; // 예시 점수

                // TODO: 총합 계산 (for문 사용)
                int total = 0;
                for (int i = 0; i < scores.length; i++) {
                    // 총합 계산 코드 작성
                    total += scores[i];
                }

                // TODO: 평균 계산
                double average = 0.0;
                average = total / scores.length;

                // TODO: 학점 결정 (if-else문 사용)
                char grade = 'F';
                if(average >= 90) {
                    grade = 'A';
                }
                else if(average >= 80) {
                    grade = 'B';
                }
                else if(average >= 70) {
                    grade = 'C';
                }
                else if(average >= 60) {
                    grade = 'D';
                }

                // TODO: 결과 출력
                System.out.println("=== 성적 계산기 ===");
                System.out.println(" 총점: " + total + " 평균: " + average + " 학점: " + grade);

            }
        }

 

MY SQL 1 - 4 필요한 사항만 뽑아서 사용하기

1) 원하는 컬럼을 선택하기
● 테이블의 모든 컬럼이 필요하지 않을 때, 필요한 것만 선택하여 조회 가능합니다.

● 모든 것을 조회한다는 '*' 대신에, 필요한 컬럼만 적어 줍니다.

 

select 컬럼1, 컬럼2
from 테이블


예를들어 주문 테이블에서 주문번호와 식당 이름만 필요할 때, 아래와 같이 적어줍니다.

select order_id, restaurant_name
from food_orders

 

● 컬럼이 많아서 필요한 정보를 확인하기 어려웠던 것에서, 원하는 컬럼만 조회하는 것으로 바뀐 것을 볼 수 있습니다.

 

2) 컬럼에 별명(alias)을 주기

 

● 원하는 컬럼만 뽑았지만, 평소에 사용하는 명칭과 다를 때가 있습니다.

이럴때 컬럼 명에 별명을 지정하여 변경할 수 있습니다.

● 별명 지정 방법 : 컬럼 옆쪽에 별명을 적어 줍니다. ( 아래 두 가지 방법 모두 가능합니다)

- 방법1 : 컬럼1 as 별명1
- 방법2 : 컬럼2 별명2

 

● 별명 지을 때 유의 사항

구분 영문,언더바 특스문자,한글
방법 별명만 적음 "별명"으로, 큰 따옴표 안에 적어줌
예시 ord_no "ord no" , "주문번호"

 

● 위의 예시에서 '주문번호' 와 '식당 이름'을 조회했는데, 컬럼명이 너무 길고 영문이라 보기가 어려웠습니다. 이 때 별명을 아래와 같이 지어주면 됩니다.

○ order_id  ord_no

○ restaurant_name > 식당 이름

 

SELECT order_id "oder_no", price "가격", quantity "수량"
FROM food_orders

 

 

 

1-5 조건에 맞는 데이터로 필터링 하기

1) WHERE 절의 개념

● 데이터 중에 특정 조건을 필터링 해야할 때가 있습니다. '나이 21살인 사람' 과 같은 경우 혹은 다른 툴을 이용하여 필터링을 해봣을 것이다.

● SQL의 'WHERE' 문접을 이용하면 전체 데이터 중 원하는 데이터만 필터링 할 수 있다.

 

● WHERE의 구조

select *
from 테이블
where 필터링 조건 (eg. 20살 이상)

 

● 기본 조건은 '='을 통하여 줄수 있다. 고객 (customers) 테이블에서 21살인 사람을 필터링을 하면 아래와 같다.

 

select *
from customers
where age=21

● 필터링은 숫자가 아닌 문자에서도 사용 가능하다, 문자를 사용 할 때는 작은 따옴표를 사용한다.

> 대소문자 구분 없이 사용 가능한가?

고객  테이블에서 여성을 필터링 하면 아래와 같다.

select *
from customers
where gender='female'

 

 

[ MYSQL 과제 ] 이제 좀 벌었으니 flex 한 번 해볼까요?!

-- 5 products 테이블에서 제품 이름(product_name)과 가격(price)만을 선택하는 쿼리를 작성해주세요.

//SELECT product_name, price FROM products;

 

-- 6 products 테이블에서 제품 이름에 '프로'가 포함된 모든 제품을 선택하는 쿼리를 작성해주세요.

//SELECT id, product_name, price, category, FROM products WHERE product_name LIKE '%프로%';

 

-- 7 products 테이블에서 제품 이름이 '갤'로 시작하는 모든 제품을 선택하는 쿼리를 작성해주세요.

//SELECT id, product_name, price, category, FROM products WHERE product_name LIKE'%갤%';

 

-- 8 products 테이블에서 모든 제품을 구매하기 위해 필요한 돈을 계산하는 쿼리를 작성해주세요.

//SELECT SUM(price) AS total_price FROM products;