๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐฑ์—”๋“œ/spring&springboot

[๋‚ด์ผ๋ฐฐ์›€์บ ํ”„_Spring Boot ์ž…๋ฌธ์ฃผ์ฐจ] ํ…Œ์ŠคํŠธ ์ฝ”๋“œ

by alswlfl 2026. 6. 23.

ํ…Œ์ŠคํŠธ ๊ณผ์ •์ด ํ•„์š”ํ•œ ์ด์œ 

  • ๋ฒ„๊ทธ ๋ฐœ์ƒ ์‹œ, ์‚ฌ์šฉ์ž์—๊ฒŒ ์ƒ๊ฐ๋ณด๋‹ค ํฐ ๋ถˆํŽธ์ด๋‚˜ ํšŒ์‚ฌ์— ํฐ ์•…์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Œ
  • ๊ฐœ๋ฐœ์€ ๊ต‰์žฅํžˆ ์–ด๋ ค์›€
  • ๊ฐœ๋ฐœ ์ฝ”๋“œ๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์ „์— ์ตœ๋Œ€ํ•œ ๋ฒ„๊ทธ๋ฅผ ๋งŽ์ด ์ฐพ์•„๋‚ด๋Š” ๊ฒŒ ์ข‹์Œ!

ํ…Œ์ŠคํŠธ ๋ฐฉ์‹

1. ๋ธ”๋ž™๋ฐ•์Šค ํ…Œ์ŠคํŒ…

์†Œํ”„ํŠธ์›จ์–ด ๋‚ด๋ถ€ ๊ตฌ์กฐ๋‚˜ ๋™์ž‘์›๋ฆฌ๋ฅผ ๋ชจ๋ฅด๋Š” ๋ธ”๋ž™๋ฐ•์Šค์™€ ๊ฐ™์€ ์ƒํƒœ์—์„œ, ์ฆ‰ ์›น ์„œ๋น„์Šค์˜ ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ ๋™์ž‘์„ ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ์žฅ์ 
    • ๋ˆ„๊ตฌ๋‚˜ ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅํ•จ(๊ฐœ๋ฐœ์ž, ๋””์ž์ด๋„ˆ, ๋ฒ ํƒ€ ํ…Œ์Šคํ„ฐ ๋“ฑ)
  • ๋‹จ์ 
    • ๊ธฐ๋Šฅ์ด ์ฆ๊ฐ€๋ ์ˆ˜๋ก ํ…Œ์ŠคํŠธ ๋ฒ”์œ„๊ฐ€ ์ฆ๊ฐ€ํ•จ
    • ํ…Œ์ŠคํŠธํ•˜๋Š” ์‚ฌ๋žŒ์— ๋”ฐ๋ผ ํ…Œ์ŠคํŠธ ํ€„๋ฆฌํ‹ฐ๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ

2. ๊ฐœ๋ฐœ์ž ํ…Œ์ŠคํŠธ

๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๋ณธ์ธ์ด ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

  • ์žฅ์ 
    • ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•œ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•จ(์˜ˆ์ƒ ๋™์ž‘ vs ์‹ค์ œ ๋™์ž‘)
    • ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ๊ฐ€๋Šฅ(๋ฐฐํฌ ์ ˆ์ฐจ ์‹œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๊ฐ€ ์ˆ˜ํ–‰๋˜์–ด ๋™์ž‘ ๊ฒ€์ฆ)
    • ๋ฆฌํŒฉํ† ๋ง์ด๋‚˜ ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋ฅผ ํ•  ๋•Œ ๋”์šฑ ํŽธ๋ฆฌํ•จ
  • ๋‹จ์ 
    • ๊ฐœ๋ฐœ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆผ
    • ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์œ ์ง€๋ณด์ˆ˜ํ•˜๋Š” ๋น„์šฉ์ด ๋ฐœ์ƒํ•จ

์Šคํ”„๋ง์—์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ, Junit

์Šคํ”„๋ง์—์„œ๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์ธ Junit ์ œ๊ณตํ•จ

Junit์€ Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์šฉ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ

build.gradle

  • build.gradle ํŒŒ์ผ์— ์ด๋ฏธ test๋ผ๋Š” dependencies๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ์žˆ์Œ

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑํ•ด๋ณด๊ธฐ

1. ๊ณ„์‚ฐ๊ธฐ ํด๋ž˜์Šค ์ƒ์„ฑ

package com.sparta.springprepare.calculator;

public class Calculator {
    public Double operate(double num1, String op, double num2) {
        switch (op) {
            case "*":
                return num1 * num2;
            case "/":
                if (num2 != 0) {
                    return num1 / num2;
                } else {
                    return null;
                }
            case "+":
                return num1 + num2;
            case "-":
                return num1 - num2;
            default:
                throw new IllegalArgumentException("์ž˜๋ชป๋œ ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค.");
        }
    }
}

 

2. ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์ƒ์„ฑ

ํ…Œ์ŠคํŠธ ํŒŒ์ผ ๋งŒ๋“œ๋Š” ๊ณผ์ •
test ํด๋” ํ•˜์œ„์— ํ…Œ์ŠคํŠธ ํŒŒ์ผ ์ƒ์„ฑ ์™„๋ฃŒ

3. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

Java๋Š” Main ๋ฉ”์„œ๋“œ๋กœ ์‹œ์ž‘ํ•ด์„œ Main ๋ฉ”์„œ๋“œ๋กœ ๋๋‚˜์ง€๋งŒ, ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋Š” Main์ด ์—†์Œ!

Junit์€ ํ…Œ์ŠคํŠธ ์‹คํ–‰ ํ™˜๊ฒฝ์„ ๋”ฐ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, Main ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ์„œ๋ฒ„๋ฅผ ๋”ฐ๋กœ ์‹คํ–‰ํ•˜์ง€ ์•Š์•„๋„ ๊ธฐ๋Šฅ๋ณ„๋กœ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑํ•ด์„œ ์‹คํ–‰ ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Œ

package com.sparta.springprepare.calculator;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

class CalculatorTest {

    @Test // ํ…Œ์ŠคํŠธ ์–ด๋…ธํ…Œ์ด์…˜
    @DisplayName("๋”ํ•˜๊ธฐ ํ…Œ์ŠคํŠธ")
    void test1() {
        Calculator calculator = new Calculator();
        Double result = calculator.operate(8, "+", 2);
        System.out.println("result = "+result);

        // Assertions๋กœ ํ…Œ์ŠคํŠธ ํ™•์ธ
        // Assertions.assertEquals(์˜ˆ์ƒ๊ฐ’, ์ˆ˜ํ–‰๊ฒฐ๊ณผ): ์˜ˆ์ƒ๊ฐ’๊ณผ ์ˆ˜ํ–‰๊ฒฐ๊ณผ๊ฐ€ ๋™๋“ฑํ•œ์ง€ ๋น„๊ต
        Assertions.assertEquals(10, result);
    }

    @Test // ํ…Œ์ŠคํŠธ ์–ด๋…ธํ…Œ์ด์…˜
    @DisplayName("๋‚˜๋ˆ„๊ธฐ ํ…Œ์ŠคํŠธ")
    void test2() {
        Calculator calculator = new Calculator();
        Double result = calculator.operate(8, "/", 2);
        System.out.println("result = "+result);
        Assertions.assertEquals(4, result);
    }
}

๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ