2. 계산하고 비교하기 (연산자)/2.1 계산기처럼 계산하기 (산술 연산자)

2.1.2 나머지 구하기 (%) - 나누고 남은 것을 찾는 특별한 계산

thejavascript4kids 2025. 6. 28. 05:05

📘 2.1.2 나머지 구하기 (%) - 나누고 남은 것을 찾는 특별한 계산

안녕하세요, 여러분. 지난 시간에 우리는 기본적인 네 가지 계산(더하기, 빼기, 곱하기, 나누기)을 부드럽게 배웠죠? 이제 조금 더 특별한 계산을 만나볼 차례예요! 오늘 배울 나머지 계산 %는 일상생활에서 "나누고 남은 것"을 구할 때 사용하는 매우 유용한 도구랍니다.

친구들과 과자를 나누어 먹을 때나, 시계의 시간을 계산할 때 자주 만나게 되는 개념이에요. 마치 나누고 남은 것을 찾아주는 탐정같은 계산이라고 생각하면 돼요!

🧠 새로운 단어들과 친해지기

나머지 계산과 관련된 중요한 단어들을 쉽게 풀어서 설명해드릴게요.

단어 쉬운 설명
나머지 계산 기호 나눗셈을 했을 때 남는 값을 구하는 특별한 계산 기호예요.
나머지 나눗셈을 한 후에 남게 되는 부분의 값이에요.
% (퍼센트 기호) 나머지를 구할 때 사용하는 계산 기호로, 퍼센트와 같은 모양이지만 완전히 다른 의미예요.

나머지 계산 기호는 마치 "남은 것 찾기 도우미"와 같아요. 10 % 3이라고 하면 "10개를 3개씩 나누고 나서 몇 개가 남았나요?"라고 묻는 것과 같아요.

✨ 나머지 계산이 뭔지 알아보기

나머지 계산 기호 %는 나눗셈의 완전히 다른 면을 보여주는 계산이에요. 일반적인 나누기 /가 "몇 번 들어갈까요?"를 알려준다면, 나머지 계산은 "나누고 나서 무엇이 남을까요?"를 알려줘요.

이 계산의 가장 신기한 특징은 결과가 항상 예측 가능하다는 점이에요. 어떤 숫자를 5로 나눈 나머지는 항상 0, 1, 2, 3, 4 중 하나예요. 절대 5 이상이 나올 수 없죠. 이런 특성 때문에 나머지 계산은 홀수와 짝수를 구분하거나, 돌아가면서 반복하는 패턴을 만들 때 매우 유용해요.

또한 나머지 계산은 주기적으로 반복되는 현상을 다룰 때 따뜻한 도구가 돼요. 요일 계산, 시간 변환, 색깔 순환 등 우리 주변의 많은 것들이 일정한 주기로 반복되는데, 이런 패턴들을 나머지 계산으로 간단하게 표현할 수 있어요.

재미있는 비유: 학교 급식실의 나누기 시간

나머지 계산을 더 재미있게 이해하기 위해 '학교 급식실의 나누기 시간'을 상상해볼까요?

급식실에는 두 명의 계산 도우미가 있어요. 나누기 도우미나머지 계산 도우미예요.

나누기 도우미 (/)는 "나누어요!" 하고 말해서 큰 숫자를 여러 부분으로 나누어줘요. 과자 13개를 친구 5명에게 나누어 주라고 하면 "한 명당 2개씩 줄 수 있어요!"라고 대답하죠. (13 / 5 = 2.6, 즉 2개씩)

그런데 나머지 계산 도우미 (%)는 완전히 다른 질문에 관심이 있어요. "나누어요!" 가 끝난 후 "그럼 몇 개가 남았나요?"라고 묻죠. 과자 13개를 5명에게 2개씩 나누어주면 10개가 나가고, 3개가 남게 되거든요. 바로 이 3개가 나머지 계산 도우미의 답이에요! (13 % 5 = 3)

나머지 계산 도우미는 "순환 도우미"이기도 해요. 빨강, 파랑, 노랑 3가지 색을 계속 반복하고 싶다면, 색깔 번호에 % 3을 해주면 0, 1, 2, 0, 1, 2... 무한히 반복되는 패턴을 만들 수 있답니다.

시간 계산도 가능해요! 24시간제 15시를 12시간제로 바꾸고 싶다면? 15 % 12 = 3으로 오후 3시가 되는 거죠.

🎯 왜 나머지 계산을 배워야 할까요?

나머지 계산이 왜 이렇게 중요할까요? 여러 가지 실용적인 이유가 있어요.

첫 번째는 홀수와 짝수 구분하기예요. 어떤 숫자든 2로 나눈 나머지가 0이면 짝수, 1이면 홀수라는 간단한 규칙으로 판별할 수 있어요. 이는 게임에서 번갈아 가며 턴을 주거나, 줄무늬 패턴을 만들 때 매우 유용해요.

두 번째는 돌아가면서 반복하는 패턴 만들기예요. 요일, 달, 계절처럼 주기적으로 반복되는 것들을 계산할 때 나머지 계산만큼 편리한 도구는 없어요. 세 번째는 범위 제한하기예요. 게임에서 화면 끝에 도달하면 반대편으로 나타나게 하는 등의 작업에 활용돼요.

마지막으로 배수 확인하기예요. 어떤 수가 특정 수의 배수인지 확인할 때, 나머지가 0인지만 검사하면 돼요. 이는 수학 문제뿐만 아니라 프로그래밍에서도 매우 자주 사용되는 기법이에요.

⚙️ 기본 사용법 배우기

나머지 계산의 기본 사용법은 매우 간단해요.

let remainder = 큰숫자 % 작은숫자;

자주 사용하는 패턴들:

// 홀수/짝수 판별하기
let number = 7;
let isOdd = number % 2;        // 0이면 짝수, 1이면 홀수

// 돌아가면서 반복하는 패턴 (0, 1, 2, 0, 1, 2, ...)
let cycleIndex = count % 3;    // 3개씩 순환

// 특정 배수인지 확인하기
let isDivisibleBy5 = number % 5;  // 0이면 5의 배수, 아니면 배수가 아님

🧪 직접 해보면서 배우기

이제 실제 예시를 통해서 나머지 계산의 사용법을 자세히 알아볼게요.

🔹 첫 번째 예시: 나머지 계산의 기본 동작 파악하기

첫 번째 예시에서는 여러 가지 상황에서 나머지가 어떻게 계산되는지 관찰해볼게요.

// 기본적인 나머지 계산들을 해보자.
console.log("=== 나머지 계산 기본 동작 ===");

// 10을 3으로 나눈 나머지
let result1 = 10 % 3;          // 10개를 3개씩 나누고 남은 개수를 계산하는 상자
console.log("10을 3으로 나눈 나머지: " + result1);  // 1이 출력돼요
console.log("확인: 10 ÷ 3 = 3 나머지 1");

// 15를 4로 나눈 나머지  
let result2 = 15 % 4;          // 15개를 4개씩 나누고 남은 개수를 계산하는 상자
console.log("15를 4로 나눈 나머지: " + result2);  // 3이 출력돼요
console.log("확인: 15 ÷ 4 = 3 나머지 3");

// 20을 5로 나눈 나머지 (딱 떨어지는 경우)
let result3 = 20 % 5;          // 20개를 5개씩 나누고 남은 개수를 계산하는 상자
console.log("20을 5로 나눈 나머지: " + result3);  // 0이 출력돼요
console.log("확인: 20 ÷ 5 = 4 나머지 0 (딱 떨어짐)");

// 작은 수를 큰 수로 나눈 나머지
let result4 = 7 % 10;          // 7개를 10개씩 나누려고 하는 상자
console.log("7을 10으로 나눈 나머지: " + result4);  // 7이 출력돼요
console.log("확인: 7 ÷ 10 = 0 나머지 7 (한 번도 못 들어감)");

// 나머지의 범위 확인하기
console.log("\n=== 5로 나눈 나머지의 패턴 ===");
console.log("0 % 5 = " + (0 % 5));   // 0
console.log("1 % 5 = " + (1 % 5));   // 1
console.log("2 % 5 = " + (2 % 5));   // 2
console.log("3 % 5 = " + (3 % 5));   // 3
console.log("4 % 5 = " + (4 % 5));   // 4
console.log("5 % 5 = " + (5 % 5));   // 0 (다시 0부터 시작)
console.log("6 % 5 = " + (6 % 5));   // 1
console.log("7 % 5 = " + (7 % 5));   // 2
console.log("8 % 5 = " + (8 % 5));   // 3
console.log("9 % 5 = " + (9 % 5));   // 4
console.log("10 % 5 = " + (10 % 5)); // 0 (다시 반복)
console.log("나머지는 항상 0, 1, 2, 3, 4 중 하나예요!");

이렇게 다양한 나눗셈 상황에서 나머지가 어떻게 계산되는지 확인해요. 딱 떨어지는 경우, 작은 수를 큰 수로 나누는 경우 등을 통해 나머지 계산의 다양한 동작을 이해하죠.

🔹 두 번째 예시: 홀수와 짝수 구분하기

두 번째 예시에서는 나머지 계산의 가장 실용적인 활용법 중 하나인 홀짝 판별을 연습해볼게요.

// 홀수와 짝수를 구분하는 계산을 해보자.
console.log("=== 홀짝 판별 계산 ===");

// 여러 숫자들을 2로 나눈 나머지를 확인해봐요.
let number1 = 5;
let remainder1 = number1 % 2;
console.log(number1 + "을 2로 나눈 나머지: " + remainder1 + " → 홀수");

let number2 = 8;
let remainder2 = number2 % 2;
console.log(number2 + "을 2로 나눈 나머지: " + remainder2 + " → 짝수");

let number3 = 13;
let remainder3 = number3 % 2;
console.log(number3 + "을 2로 나눈 나머지: " + remainder3 + " → 홀수");

let number4 = 20;
let remainder4 = number4 % 2;
console.log(number4 + "을 2로 나눈 나머지: " + remainder4 + " → 짝수");

// 특정 숫자의 홀짝 판별하기
console.log("\n=== 특정 숫자 홀짝 판별 ===");
let myNumber = 37;                    // 확인하고 싶은 숫자를 담는 상자
let myRemainder = myNumber % 2;       // 2로 나눈 나머지를 계산하는 상자

console.log("숫자 " + myNumber + "을 검사해요.");
console.log(myNumber + " % 2 = " + myRemainder);
console.log("나머지가 " + myRemainder + "이므로 홀수예요!");

// 규칙 정리
console.log("\n=== 홀짝 판별 규칙 ===");
console.log("어떤 숫자든 2로 나눈 나머지가:");
console.log("0이면 → 짝수");
console.log("1이면 → 홀수");

이 예시를 통해 나머지 계산이 어떻게 실생활 문제를 해결하는 도구가 되는지 확인할 수 있어요. 단순히 숫자를 2로 나눈 나머지만으로 홀수와 짝수를 완벽하게 구분할 수 있어요.

🔹 세 번째 예시: 배수 찾기와 시간 계산하기

세 번째 예시에서는 나머지 계산의 다른 유용한 활용법들을 경험해볼게요.

// 3의 배수 찾기
console.log("=== 3의 배수 찾기 ===");

let test1 = 9;
let remainder_test1 = test1 % 3;
console.log(test1 + "을 3으로 나눈 나머지: " + remainder_test1);
console.log("나머지가 0이므로 " + test1 + "은 3의 배수예요!");

let test2 = 10;
let remainder_test2 = test2 % 3;
console.log(test2 + "을 3으로 나눈 나머지: " + remainder_test2);
console.log("나머지가 0이 아니므로 " + test2 + "은 3의 배수가 아니예요.");

let test3 = 15;
let remainder_test3 = test3 % 3;
console.log(test3 + "을 3으로 나눈 나머지: " + remainder_test3);
console.log("나머지가 0이므로 " + test3 + "은 3의 배수예요!");

// 시간 변환 계산하기
console.log("\n=== 24시간제를 12시간제로 변환 ===");

let hour1 = 13;              // 24시간제 오후 1시
let converted1 = hour1 % 12; // 12로 나눈 나머지
console.log(hour1 + "시 → " + converted1 + "시 (오후)");

let hour2 = 15;              // 24시간제 오후 3시
let converted2 = hour2 % 12; // 12로 나눈 나머지
console.log(hour2 + "시 → " + converted2 + "시 (오후)");

let hour3 = 21;              // 24시간제 오후 9시
let converted3 = hour3 % 12; // 12로 나눈 나머지
console.log(hour3 + "시 → " + converted3 + "시 (오후)");

// 순환 패턴 만들기
console.log("\n=== 색깔 순환 패턴 ===");
console.log("빨강(0), 파랑(1), 노랑(2) 순서로 반복:");

let day0 = 0 % 3;  // 0번째 날
console.log("0번째: 색깔 번호 " + day0 + " → 빨강");

let day1 = 1 % 3;  // 1번째 날
console.log("1번째: 색깔 번호 " + day1 + " → 파랑");

let day2 = 2 % 3;  // 2번째 날
console.log("2번째: 색깔 번호 " + day2 + " → 노랑");

let day3 = 3 % 3;  // 3번째 날 (다시 처음으로)
console.log("3번째: 색깔 번호 " + day3 + " → 빨강 (다시 처음)");

let day4 = 4 % 3;  // 4번째 날
console.log("4번째: 색깔 번호 " + day4 + " → 파랑");

let day5 = 5 % 3;  // 5번째 날
console.log("5번째: 색깔 번호 " + day5 + " → 노랑");

이 예시는 나머지 계산이 실제 생활에서 얼마나 유용한지를 보여줘요. 단순한 수학 계산을 넘어서 배수 찾기, 시간 변환, 색깔 패턴 등 다양한 순환적 문제들을 해결할 수 있는 따뜻한 도구임을 확인할 수 있어요.

🔄 나머지 계산 사용하는 순서 정리하기

지금까지 학습한 나머지 계산 사용 과정을 정리해볼게요.

첫 번째 단계는 문제 상황 파악하기예요. 해결하려는 문제가 나누고 남은 것을 구하는 것인지, 홀짝을 판별하는 것인지, 아니면 돌아가면서 반복하는 패턴을 만드는 것인지 파악해야 해요. 두 번째는 적절한 나누는 수 선택하기예요. 홀짝 판별이면 2, 요일 계산이면 7, 계절 계산이면 4처럼 상황에 맞는 수를 선택하죠.

세 번째는 나머지 계산 수행하기예요. 큰숫자 % 작은숫자 형태로 계산하여 결과를 얻어요. 네 번째는 결과 해석하기예요. 나머지가 0이면 배수, 1이면 홀수, 특정 범위 내의 값이면 순환 패턴의 위치 등으로 해석하는 거예요.

마지막으로 결과 활용하기예요. 계산된 나머지를 실제 문제 해결에 활용하여 원하는 동작을 구현해요.

🧚‍♀️ 이야기로 다시 배우기: 학교의 규칙 도우미

지금까지 배운 내용을 하나의 이야기로 다시 정리해볼까요?

어느 학교에 규칙 도우미가 있었어요. 이 도우미는 규칙적으로 반복되는 일들을 관리하는 전문가였답니다.

어느 날, 학교 사람들이 찾아와서 여러 가지 문제를 해결해 달라고 했어요.

첫 번째 방문자는 급식실 아주머니였어요. "도우미님, 빵 17개를 5명에게 똑같이 나누어 주고 싶은데, 몇 개가 남을까요?" 규칙 도우미는 나머지 계산을 사용했어요. "17 % 5 = 2, 빵 2개가 남을 거예요!"

두 번째 방문자는 체육 선생님이었어요. "우리 반 학생들을 두 팀으로 나누는데, 1번부터 30번까지 홀수는 A팀, 짝수는 B팀으로 나누고 싶어요." 도우미가 답했어요. "간단해요! 각 번호를 2로 나눈 나머지가 1이면 A팀, 0이면 B팀이에요!"

세 번째 방문자는 미술 선생님이었어요. "교실 벽에 빨강, 파랑, 노랑 그림을 번갈아 가며 붙이려는데 100번째 그림은 무슨 색이어야 할까요?" 도우미는 계산해보고 말했어요. "100 % 3 = 1, 두 번째 색인 파랑 그림이에요!"

마지막 방문자는 시계 수리공이었어요. "24시간제 시계를 12시간제로 바꾸는 방법을 알려주세요." 도우미가 설명했어요. "시간을 12로 나눈 나머지를 구하면 돼요. 15시면 15 % 12 = 3, 오후 3시가 되는 거죠!"

모든 사람들이 도우미의 나머지 계산에 감탄하며 돌아갔고, 그날부터 학교 사람들은 나머지 계산을 자주 사용하게 되었답니다.

🧠 자주 하는 실수와 주의할 점

나머지 계산을 사용할 때 흔히 발생하는 실수들을 알아보고, 어떻게 예방할 수 있는지 살펴볼게요.

❌ 실수 1: 나머지와 나눗셈 결과를 헷갈리기

let number = 17;        // 나눌 숫자를 담는 상자
let divisor = 5;        // 나누는 숫자를 담는 상자

let division = number / divisor;    // 3.4 (나눗셈 결과)
let remainder = number % divisor;   // 2 (나머지)

console.log("17 ÷ 5 = " + division);    // 3.4
console.log("17 % 5 = " + remainder);   // 2

이런 헷갈림이 생기는 이유는 /%가 나눗셈과 관련되어 있지만 완전히 다른 정보를 제공하기 때문이에요. /는 몫을 (소수점 포함), %는 나머지만을 알려줘요.

❌ 실수 2: 0으로 나머지를 구하려고 시도하기

let totalCandies = 20;   // 총 사탕 개수를 담는 상자
let friends = 0;         // 친구가 0명인 상자

let candiesRemainder = totalCandies % friends;  // 이상한 값이 나와요
console.log(candiesRemainder);     // 이상한 값 출력

0으로는 나눌 수 없으므로 이상한 값이 나와요. 이는 이후 계산에서 예상치 못한 결과를 일으킬 수 있어요.

✏️ 직접 해보기 - 쉬운 연습 문제들

이제 배운 내용을 편안한 마음으로 연습해볼게요. 천천히, 자신감을 가지고 해보세요.

Ex1) 여러 가지 나머지 계산을 해보고 왜 그런 결과가 나오는지 확인해보자

// 여러 나머지 계산을 해보자.
let calculation1 = 25 % 7;    // 25를 7로 나눈 나머지를 계산하는 상자
let calculation2 = 18 % 5;    // 18을 5로 나눈 나머지를 계산하는 상자
let calculation3 = 12 % 4;    // 12를 4로 나눈 나머지를 계산하는 상자

console.log("25 % 7 = " + calculation1);  // 4 - 25를 7로 나누면 3 나머지 4
console.log("18 % 5 = " + calculation2);  // 3 - 18을 5로 나누면 3 나머지 3
console.log("12 % 4 = " + calculation3);  // 0 - 12를 4로 나누면 3 나머지 0 (딱 떨어짐)

// 각 결과가 왜 그렇게 나오는지 확인해보자.
console.log("확인: 25 ÷ 7 = 3 나머지 4");  // 계산 과정 보여주기
console.log("확인: 18 ÷ 5 = 3 나머지 3");  // 계산 과정 보여주기
console.log("확인: 12 ÷ 4 = 3 나머지 0");  // 계산 과정 보여주기

Ex2) 주어진 숫자들이 홀수인지 짝수인지 판별해보자

// 주어진 숫자들이 홀수인지 짝수인지 판별해보자.
let num1 = 13;
let remainder1 = num1 % 2;
console.log(num1 + "을 2로 나눈 나머지: " + remainder1);
console.log(num1 + "는 홀수예요.");

let num2 = 24;
let remainder2 = num2 % 2;
console.log(num2 + "을 2로 나눈 나머지: " + remainder2);
console.log(num2 + "는 짝수예요.");

let num3 = 7;
let remainder3 = num3 % 2;
console.log(num3 + "을 2로 나눈 나머지: " + remainder3);
console.log(num3 + "는 홀수예요.");

let num4 = 16;
let remainder4 = num4 % 2;
console.log(num4 + "을 2로 나눈 나머지: " + remainder4);
console.log(num4 + "는 짝수예요.");

Ex3) 3의 배수를 찾아보자

// 여러 숫자 중에서 3의 배수를 찾아보자.
console.log("3의 배수 찾기:");

let test1 = 9;
let remainder_test1 = test1 % 3;
console.log(test1 + "을 3으로 나눈 나머지: " + remainder_test1);
console.log(test1 + "는 3의 배수예요!");

let test2 = 10;
let remainder_test2 = test2 % 3;
console.log(test2 + "을 3으로 나눈 나머지: " + remainder_test2);
console.log(test2 + "는 3의 배수가 아니예요.");

let test3 = 15;
let remainder_test3 = test3 % 3;
console.log(test3 + "을 3으로 나눈 나머지: " + remainder_test3);
console.log(test3 + "는 3의 배수예요!");

let test4 = 17;
let remainder_test4 = test4 % 3;
console.log(test4 + "을 3으로 나눈 나머지: " + remainder_test4);
console.log(test4 + "는 3의 배수가 아니예요.");

let test5 = 21;
let remainder_test5 = test5 % 3;
console.log(test5 + "을 3으로 나눈 나머지: " + remainder_test5);
console.log(test5 + "는 3의 배수예요!");

🤔 조금 더 어려운 문제로 실력 확인하기

기본 연습을 마치셨다면, 이제 조금 더 깊이 있는 문제들을 통해서 나머지 계산에 대한 이해를 확인해볼게요.

Q1. 다음 계산의 결과와 그 이유를 설명해보세요.

let result = 47 % 8;

정답: 7

해설: 47을 8로 나누면 5 나머지 7이므로, 47 % 8 = 7이에요. (47 = 8 × 5 + 7)

Q2. 어떤 수가 동시에 2의 배수이면서 3의 배수인지 확인하는 방법을 나머지 계산으로 표현해보세요.

정답: 2로 나눈 나머지가 0이고, 동시에 3으로 나눈 나머지도 0이어야 해요.

해설:

let number = 12;                    // 확인하고 싶은 숫자를 담는 상자
let remainder2 = number % 2;        // 2로 나눈 나머지
let remainder3 = number % 3;        // 3으로 나눈 나머지

console.log(number + "을 2로 나눈 나머지: " + remainder2);
console.log(number + "을 3으로 나눈 나머지: " + remainder3);

// 둘 다 0이면 2의 배수이면서 3의 배수

✅ 학습 완료 체크리스트

이번 시간에 배운 내용들을 모두 이해했는지 확인해보세요!

학습 내용 이해했나요?
나머지 계산 기호(%) 기본 개념
홀수/짝수 판별 방법
배수 찾기 방법
순환 패턴 만들기
실전 예제 이해

지금까지 나머지 계산의 모든 특성과 활용법을 차분히 알아보았어요. 이 작은 % 기호 하나로 홀짝 판별부터 복잡한 순환 패턴까지 다룰 수 있다는 것이 정말 신기하지 않나요? 앞으로 여러분이 프로그래밍을 하면서 이 나머지 계산을 자주 만나게 될 텐데, 오늘 배운 내용을 기억하며 활용해보세요!



🚀 더 체계적인 JavaScript 학습을 원하신다면?
이 포스팅에서 다룬 내용을 실제로 실습해보세요!
무료 JavaScript 학습 플랫폼에서 단계별 학습과 실시간 코드 실행을 통해
더욱 효과적이고 재미있게 학습하실 수 있습니다.
📝 실시간 코드 실행 📊 학습 진도 관리 👥 체계적 커리큘럼
📚 171개 체계적 학습레슨 · 📋 855개 4지선다 연습문제 · 🆓 완전 무료 · ⚡ 즉시 시작