데이터 엔지니어링

패스트캠퍼스 환급챌린지 23일차: 데이터엔지니어링 초격차 강의 후기

Big Byte 2025. 4. 23. 23:41

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

 

자바의 조리도구와 네비게이션: 연산자와 조건문 마스터하기! 🍳🧭

 

안녕하세요! 자바 레벨업에 열심인 여러분! 또 오셨군요! 👋

지난 시간에는 데이터를 담는 상자(변수, 상수)와 그 내용물의 종류(자료형)에 대해 알아봤죠? 📦🏷️

 

마치 요리를 위한 신선한 재료 준비와 같았다고 할 수 있겠네요! 다들 잘 보관하고 계시죠? 😊

오늘은 그 재료들을 가지고 실제로 무언가를 만들고, 상황에 따라 다른 행동을 하도록 '지시'하는 방법을 배울 차례입니다! 바로 연산자(Operator)조건문(Conditional Statement) 인데요, 요리의 도구🔪🧂와 레시피📖, 그리고 갈림길에서의 똑똑한 선택🧭과 같다고 생각하시면 이해가 쉬울 거예요.

 

데이터를 다루는 기술을 배웠으니, 이제 그 데이터를 활용해 더 똑똑한 프로그램을 만들어 볼까요? 🔥

 

1. 자바의 만능 도구 상자: 연산자(Operator) 🛠️

연산자는 변수와 값들을 가지고 덧셈, 뺄셈 같은 계산을 하거나, 값들을 비교하는 등 다양한 '작업'을 수행하는 특별한 기호들이에요. 마치 요리할 때 쓰는 칼, 믹서기, 저울 같은 도구들이죠!

주요 연산자들을 살펴볼까요?

  • 산술 연산자 (Arithmetic Operators): 수학 시간처럼 더하고, 빼고, 곱하고, 나누는 연산을 합니다.
    • + (더하기), - (빼기), * (곱하기), / (나누기), % (나머지)
    int a = 10;
    int b = 5;
    int sum = a + b; // sum은 15
    int difference = a - b; // difference는 5
    int product = a * b; // product는 50
    int quotient = a / b; // quotient는 2
    int remainder = a % b; // remainder는 0 (10 나누기 5의 나머지)
    System.out.println("합계: " + sum);
  • 대입 연산자 (Assignment Operators): 변수에 값을 '넣어주는' 역할을 해요. = 가 기본이고, 다른 연산과 결합해서 축약형으로도 많이 쓰여요.
    • = (대입), += (더해서 대입), -= (빼서 대입), *= (곱해서 대입), /= (나눠서 대입), %= (나머지를 대입)
    int score = 80;
    score += 10; // score = score + 10; 과 동일. score는 이제 90
    System.out.println("최종 점수: " + score);
  • 비교 연산자 (Comparison Operators): 두 값을 비교해서 그 결과가 '맞다'(true) 또는 '틀리다'(false)인지 알려줘요. 조건문에서 아주 중요하게 쓰이죠!
    • == (같다), != (다르다), > (크다), < (작다), >= (크거나 같다), <= (작거나 같다)
    int age = 20;
    boolean isAdult = age >= 19; // isAdult는 true (20은 19보다 크거나 같으므로)
    boolean isSame = (age == 20); // isSame은 true
    System.out.println("성인인가요? " + isAdult);
  • 논리 연산자 (Logical Operators): 여러 개의 조건을 조합할 때 사용해요. '그리고'(AND), '또는'(OR), '아니다'(NOT)의 의미를 가집니다.
    • && (AND): 두 조건이 모두 true일 때만 true
    • || (OR): 두 조건 중 하나라도 true이면 true
    • ! (NOT): 결과(true/false)를 반대로 뒤집음
    int math = 85;
    int english = 90;
    boolean passed = (math >= 80) && (english >= 80); // 두 과목 모두 80점 이상이어야 합격 (true)
    boolean extraActivity = (math > 95) || (english > 95); // 둘 중 하나라도 95점 넘으면 특별활동 대상 (false)
    boolean isNotPassed = !passed; // 합격하지 않았는가? (false)
    System.out.println("합격 여부: " + passed);
  • 증감 연산자 (Increment/Decrement Operators): 변수의 값을 1씩 증가시키거나 감소시키는 편리한 방법이에요.
    • ++ (1 증가), -- (1 감소)
    int count = 5;
    count++; // count는 이제 6
    System.out.println("카운트: " + count);
    count--; // count는 다시 5
    System.out.println("카운트: " + count);
    (Tip: ++--가 변수 앞에 붙는지 뒤에 붙는지에 따라 값이 적용되는 시점이 약간 다른데, 이건 나중에 더 자세히 알아봐도 괜찮아요!)

2. 똑똑한 네비게이션: 조건문 (if, else if, else) 🧭

프로그램을 만들다 보면 특정 '조건'에 따라 다른 행동을 해야 할 때가 많아요. "만약 날씨가 맑으면 소풍을 가고, 그렇지 않으면 집에서 영화를 본다" 처럼요. 자바에서는 if 문을 사용해 이런 '조건에 따른 흐름 제어'를 할 수 있습니다. 마치 갈림길에서 어떤 길로 갈지 알려주는 이정표 같아요!

  • if 문: 가장 기본적인 조건문. 괄호 () 안의 조건이 true일 경우에만 {} 안의 코드가 실행됩니다.
    int temperature = 30;
    if (temperature > 25) {
        System.out.println("날씨가 덥네요! 아이스크림 드세요! 🍦");
    }
  • if-else 문: 조건이 true일 때 실행할 코드와, false일 때 실행할 코드를 모두 지정하고 싶을 때 사용합니다. 둘 중 하나는 반드시 실행돼요.
  • int hour = 14; // 오후 2시
    if (hour < 12) {
        System.out.println("오전입니다. 좋은 아침!");
    } else {
        System.out.println("오후입니다. 힘내세요!");
    }
  • if-else if-else 문: 여러 개의 조건을 순서대로 체크하고 싶을 때 사용합니다. 첫 번째 if 조건부터 확인하고, true인 조건을 만나면 해당 코드 블록을 실행하고 전체 if-else if-else 구조를 빠져나옵니다. 모든 조건이 false이면 마지막 else 블록이 실행됩니다. (마지막 else는 생략 가능해요)
  • int score = 75;
    if (score >= 90) {
        System.out.println("학점: A");
    } else if (score >= 80) {
        System.out.println("학점: B");
    } else if (score >= 70) {
        System.out.println("학점: C"); // score가 75이므로 여기서 true! 이 블록 실행 후 종료.
    } else {
        System.out.println("학점: D");
    }

3. 깔끔한 선택지: switch 문 🚦

if-else if-else 문이 길어질 때, 특정 변수의 '값'에 따라 여러 경우를 처리해야 한다면 switch 문이 더 깔끔하고 가독성이 좋을 수 있어요. 마치 자판기에서 원하는 음료수 버튼을 누르는 것과 비슷하죠!

int choice = 2;
String beverage;

switch (choice) {
    case 1:
        beverage = "콜라";
        break; // 중요! 해당 case 실행 후 switch 문을 빠져나가라는 의미
    case 2:
        beverage = "사이다"; // choice가 2이므로 여기가 실행됨
        break;
    case 3:
        beverage = "환타";
        break;
    default: // 위의 어떤 case에도 해당하지 않을 때 실행됨
        beverage = "물";
        break;
}
System.out.println("선택한 음료: " + beverage); // 결과: 선택한 음료: 사이다

switch 문에서는 각 case 끝에 break;를 넣어주는 것이 중요해요! 그렇지 않으면 다음 case의 코드까지 연달아 실행될 수 있거든요 (특별한 의도가 아니라면 실수하기 쉬워요!). default는 선택 사항이지만, 예상치 못한 값에 대한 처리를 위해 넣어주는 것이 좋습니다.

4. 정리하며 📝

와~ 오늘은 자바 코드가 스스로 계산하고, 비교하고, 상황에 따라 다른 길을 선택하게 만드는 강력한 도구들! 연산자조건문에 대해 알아봤습니다! 🤓

  • 연산자(Operator): 데이터를 가공하고 비교하는 만능 도구 🛠️ (산술, 대입, 비교, 논리, 증감)
  • 조건문(Conditional Statement): if, else if, else를 사용하여 조건에 따라 코드 실행 흐름을 제어하는 네비게이션 🧭
  • switch 문: 특정 값에 따른 여러 선택지를 깔끔하게 처리하는 방법 🚦

이제 변수에 담긴 데이터를 가지고 다양한 연산을 수행하고, 조건에 따라 프로그램이 다르게 동작하도록 만들 수 있게 되었어요! 점점 더 동적인 프로그램을 만들 수 있게 된 것 같아 뿌듯하지 않나요? 😊

벌써 한 주의 절반인 수요일이 훌쩍 지나갔네요! 오늘 배운 내용들, 특히 연산자 종류와 조건문 구조를 잘 복습해 보시고, 남은 한 주도 즐겁게 코딩하면서 힘차게 달려봅시다! 💪 포기하지 않고 꾸준히 하는 것이 중요해요!

다음 시간에는 또 어떤 흥미로운 자바의 세계가 기다리고 있을지 기대하며, 오늘은 이만 물러갈게요! 다음에 또 만나요! 👋

 

https://abit.ly/lisbva