
아래 내용은 “app.js 파일을 만들어서 간단한 계산기 로직을 구현하기 전, 변수(let)와 상수(const)에 대해 알아보기”를 중심으로, 파일 구조 포함하여 쉽고 자세하게 풀어드린 설명입니다. 한 번 읽어보시면 전반적인 흐름과 개념이 잘 잡히실 거예요.
우선, 프로젝트 안에 스크립트 파일과 HTML 파일을 어떻게 배치하면 좋을지 간단히 살펴봅시다. 아래는 예시 구조입니다.
my-calculator/
┣─ index.html
└─ assets/
┣─ scripts/
│ ├─ vendor.js (강의에서 제공된 파일 혹은 공통 코드를 담는 곳)
│ └─ app.js (직접 작성할 핵심 로직)
└─ styles/
└─ app.css (스타일 시트)
<script> 태그를 써서 vendor.js와 app.js를 불러올 겁니다.실제로는 아주 기초적인 로직이지만, 여기에 변수와 상수 개념이 자연스럽게 등장합니다.
alert 코드는 지우기이전에 alert('This works!') 같이 테스트하셨다면, 이제는 해당 코드를 제거하고 본격적인 계산 로직을 위한 코드를 작성해 봅시다.
let currentResult = 0; // 현재까지의 계산 결과를 저장할 변수
let 키워드는 “이건 변할 수 있는 값(변수)야!”라고 선언하는 것.currentResult는 직접 지은 이름입니다. (마음대로 바꿀 수 있지만, 의미가 잘 드러나도록 짓는 게 좋아요.)= 0;은 초깃값을 0으로 설정하겠다는 뜻입니다.currentResult에 다른 값을 재할당(대입)할 수 있습니다. 예를 들어,currentResult = 5; // 새로운 값 할당const defaultResult = 0; // 절대 바뀌지 않을 기본값
const 키워드는 “이건 바꾸면 안 되는(바뀌지 않는) 값이야!”라는 의미입니다.defaultResult에 새로운 값을 넣으려고 시도하면 에러가 납니다.아직 “완전한 계산 기능”을 구현하기 전, 단순히 변수/상수를 선언해보는 예시 코드를 보여드릴게요.
// app.js
const defaultResult = 0;
let currentResult = defaultResult;
currentResult = (currentResult + 10) * 3 / 2 - 1;
let calculationDescription = '(' + defaultResult + ' + 10) * 3 / 2 - 1';
outputResult(currentResult, calculationDescription);
위 코드를 app.js에 작성하시고,
index.html에서 <script src="assets/scripts/app.js"></script>로 불러온 뒤,
웹 브라우저(예: Chrome)에서 index.html을 열어 개발자 도구(콘솔 탭) 를 열어보세요.
콘솔 탭에서 “현재 결과: 0” → “새로운 결과: 5” 같은 메시지가 찍히면, 코드는 잘 연결된 겁니다.
아직 브라우저 화면에는 이 값이 표시되지 않지만, 변수와 상수를 만들고 콘솔에서 확인하는 단계를 해봤다는 점이 중요해요. 이제 이 값을 화면에 표시하고, 버튼 클릭 이벤트와 연동하면 실제로 계산기 형태를 갖출 수 있게 됩니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Basics</title>
<link
href="https://fonts.googleapis.com/css?family=Roboto:400,700&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="assets/styles/app.css" />
</head>
<body>
<header>
<h1>The Unconventional Calculator</h1>
</header>
<section id="calculator">
<input type="number" id="input-number" />
<div id="calc-actions">
<button type="button" id="btn-add">+</button>
<button type="button" id="btn-subtract">-</button>
<button type="button" id="btn-multiply">*</button>
<button type="button" id="btn-divide">/</button>
</div>
</section>
<section id="results">
<h2 id="current-calculation">0</h2>
<h2>Result: <span id="current-result">0</span></h2>
</section>
<script src="assets/scripts/vendor.js"></script>
<script src="assets/scripts/app.js"></script>
</body>
</html>
vendor.js → app.js 순서대로 불러와야, 만약 app.js가 vendor.js 내부 함수를 참조할 때 문제가 없습니다.vendor.js가 어느 정도 기능을 제공하고, app.js에서 그 기능을 이용할 수 있기 때문이죠.let currentResult = 0; currentResult = 5; 가능. const defaultResult = 0; defaultResult = 5; → 에러 발생. const. let.이제 다음 단계에서는 실제로 버튼을 누르거나 입력란에 숫자를 치면 이 변수가 갱신되도록 하고, 그 결과를 HTML 요소(결과를 보여주는 곳)에 표시하게끔 만들어 볼 수 있겠죠.
my-calculator/
┣─ index.html
└─ assets/
┣─ scripts/
│ ├─ vendor.js
│ └─ app.js
└─ styles/
└─ app.cssalert 코드는 지우고, 변수(let), 상수(const)를 사용해 기본적인 계산 로직의 토대를 만든다.<script src="assets/scripts/vendor.js"></script> <script src="assets/scripts/app.js"></script> 이상으로, app.js 파일 안에서 간단한 변수와 상수를 선언하고, 이를 통해 기본 계산 로직을 준비하는 과정을 살펴봤습니다.
앞으로 이벤트 처리나 화면 업데이트 과정을 추가하면, 사용자가 숫자를 입력→버튼 클릭→결과 변경 식의 계산기가 완성될 거예요.
즐거운 코딩 되시길 바랍니다!
아래 내용은 “계산기에 필요한 변수를 만들고, 변수(또는 상수) 이름을 지을 때 지켜야 할 규칙”을 중심으로, 파일 구조까지 포함하여 쉽게 자세히 풀어낸 설명입니다. 처음 JavaScript로 계산기 로직을 작성하려는 분들에게 도움이 될 만한 기초 개념과 실무적인 팁을 담았으니 편하게 읽어보세요.
먼저, 간단한 예시 구조를 살펴봅시다. 실제로는 자유롭게 수정 가능하지만, 아래와 비슷한 형태를 추천합니다:
my-simple-calculator/
┣─ index.html
└─ assets/
┣─ scripts/
│ ├─ vendor.js (제공된/공통 코드)
│ └─ app.js (직접 작성할 계산 로직, 변수 선언 등)
└─ styles/
└─ app.css (스타일 시트)
<script> 태그로 JS 파일들을 불러옵니다.이제 app.js 안에서 본격적으로 변수를 선언하고, 계산 로직을 작성하게 됩니다.
currentResult)let currentResult = 0;
let 키워드: 변경 가능한 값을 선언할 때 사용.currentResult: 우리가 붙인 변수 이름(= 식별자).= 0: 초깃값. 숫자 0으로 초기화하여, 이제부터 currentResult에 다른 숫자를 계속 할당할 수 있음.참고로,
let currentResult;처럼 값을 주지 않고 선언만 할 수도 있습니다. 그런 경우 “초기화되지 않은 변수(uninitialized variable)”가 되며, 나중에currentResult = 10;처럼 값을 지정할 수 있습니다.
userName, currentResult, maxValue userName과 UserName은 전혀 다른 변수로 취급됩니다. $와 _ 1value (X, 오류 발생)value1 (O, 정상)$, _는 변수가 시작할 때도 쓸 수 있지만, 일반적인 상황에선 자주 쓰이지 않습니다(라이브러리나 특수 용도에서 가끔 사용).user_name, current_result let, const, if, for 같은 JavaScript의 예약어는 변수 이름으로 쓸 수 없습니다. let let = 0; → 에러 JavaScript에서는 문장(코드 한 줄)의 끝을 세미콜론(;)으로 표시할 수 있습니다.
let currentResult = 0; 아래는 “계산기 로직”을 위한 변수 설정의 아주 간단한 예시입니다:
const defaultResult = 0;
let currentResult = defaultResult;
currentResult = (currentResult + 10) * 3 / 2 - 1;
let calculationDescription = '(' + defaultResult + ' + 10) * 3 / 2 - 1';
outputResult(currentResult, calculationDescription);
위와 같은 변수를 활용해, 나중에 실제 버튼 클릭 이벤트나 화면 표시 로직을 추가하면 단순 계산기처럼 동작하게 됩니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Basics</title>
<link
href="https://fonts.googleapis.com/css?family=Roboto:400,700&display=swap"
rel="stylesheet"
/>
<link rel="stylesheet" href="assets/styles/app.css" />
</head>
<body>
<header>
<h1>The Unconventional Calculator</h1>
</header>
<section id="calculator">
<input type="number" id="input-number" />
<div id="calc-actions">
<button type="button" id="btn-add">+</button>
<button type="button" id="btn-subtract">-</button>
<button type="button" id="btn-multiply">*</button>
<button type="button" id="btn-divide">/</button>
</div>
</section>
<section id="results">
<h2 id="current-calculation">0</h2>
<h2>Result: <span id="current-result">0</span></h2>
</section>
<script src="assets/scripts/vendor.js"></script>
<script src="assets/scripts/app.js"></script>
</body>
</html>
<script src="..."> 태그를 통해, 우리가 만든 app.js를 불러옵니다. vendor.js 파일 안에 있는 내용이 필요하다면, 반드시 vendor.js를 먼저 불러와야 app.js에서 해당 코드를 문제없이 쓸 수 있겠죠.index.html + assets/scripts/app.js 형태로 분리하고, <script> 태그로 연결.currentResult, userName). $/_ 외 특수문자 불가.let: 값이 변경될 수 있는 변수. const: 값이 변경될 수 없는 상수(초기 설정 후 고정).let currentResult;)만 해두고 뒤에서 초기화할 수도 있고, = 0처럼 초깃값을 바로 주어도 됨.이렇게 변수 이름 규칙과 기본적인 초기화 과정을 알아보았습니다.
다음 단계로, 사용자가 입력한 숫자를 버튼 클릭 시 currentResult에 반영하고, 그 결과를 화면에 표시하는 로직을 추가해 보세요. 그러면 비로소 간단한 계산기가 완성될 것입니다.
즐거운 코딩 되세요!
아래 내용은 “자바스크립트에서 간단한 수학 연산을 통해 계산 결과를 화면에 표시하기”를 쉽고 자세히 풀어낸 설명입니다. 처음 입문하는 분들도 차근차근 이해할 수 있도록, 변수 선언부터 연산자, 그리고 결과를 브라우저에 출력하는 과정까지 길게 정리했으니 편하게 읽어보세요.
currentResult우리는 이미 currentResult라는 변수를 선언했고, 초깃값으로 0을 넣었습니다:
let currentResult = 0;
이 변수는 “현재 계산 결과”를 저장하기 위한 그릇(데이터 컨테이너)입니다. 이제 이 값을 바꿔가며 간단한 수학 연산을 해볼 거예요.
사용자 입력(즉, 실제 폼이나 버튼 클릭으로 받는 값)을 아직 처리하지 않으므로, 임의의 숫자(여기서는 10)를 직접 더해 보겠습니다. 예를 들어 다음과 같이 코드를 작성할 수 있습니다:
currentResult = currentResult + 10;
currentResult + 10 (오른쪽 식)을 먼저 계산한 뒤, 그 결과를 currentResult(왼쪽)에 재할당합니다. currentResult가 0이었다면 0 + 10 = 10이 되고, 이 값이 다시 currentResult에 덮어씌워집니다. currentResult는 10이 됩니다.참고:
=연산자는 “할당 연산자”라 부르며, 항상 오른쪽 식을 먼저 계산해 왼쪽 변수에 대입합니다.
currentResult + 10→ 계산 → 결과값- 그 결과를
currentResult = ...왼쪽에 할당.
outputResult 함수 활용)이제 계산된 결과(currentResult)를 브라우저 화면 하단에 표시하고 싶습니다. 이를 위해 강의에서 제공된 vendor.js 파일에는 outputResult()라는 함수가 있습니다. 이 함수를 호출하면, 우리가 넣은 값을 HTML 페이지 내 특정 영역(예: “Result: 10”)에 출력해 줍니다.
outputResult(currentResult, '');
currentResult)을 넘기고, ''(빈 문자열)로 두었습니다.페이지를 새로고침하면, 아래쪽에 10이 표시되는 걸 확인할 수 있습니다.
(어떻게 표시되는지 구체적인 내부 코드는 vendor.js에 있으며, 우리는 이 함수를 “결과를 보여주는 도우미 함수”로 쓰기만 하면 됩니다.)
자바스크립트에는 기본적인 수학 연산자들이 있습니다:
+ : 덧셈 - : 뺄셈 * : 곱셈 / : 나눗셈 우리가 작성하는 식에 따라, 수학 계산 방식대로 처리됩니다.
예시:
currentResult = currentResult + 10; // 덧셈
currentResult = currentResult - 5; // 뺄셈
currentResult = currentResult * 3; // 곱셈
currentResult = currentResult / 2; // 나눗셈
% : 나눗셈의 나머지를 구함 ** : 거듭제곱 예시:
let modExample = 10 % 3; // 10 나누기 3의 나머지 = 1
let powExample = 2 ** 3; // 2의 3제곱 = 8
이처럼 수학 연산에 필요한 다양한 연산자가 준비되어 있습니다.
수학과 마찬가지로, 자바스크립트도 연산자마다 우선순위가 있습니다. 곱셈과 나눗셈이 덧셈과 뺄셈보다 먼저 계산되는 식이죠. 하지만 괄호를 사용하면 계산 순서를 원하는 대로 바꿀 수 있습니다.
// 예시: 여러 연산을 한 줄에 쓸 수도 있습니다.
currentResult = currentResult + 10 * 3 / 2 - 1;
10 * 3 = 30, 30 / 2 = 15, 그 후에 currentResult + 15, 마지막으로 - 1 순으로 계산합니다. (currentResult + 10)을 먼저 해주면, 그 부분을 먼저 계산합니다.예시:
// 괄호 활용
currentResult = (currentResult + 10) * 3 / 2 - 1;
currentResult + 10)이 먼저 이뤄지고, 그 다음 곱셈, 나눗셈, 뺄셈 순서가 됩니다.이렇게 연산자와 괄호를 적절히 조합해 원하는 수학 계산을 진행할 수 있습니다.
아래는 전체 흐름을 간단히 보여주는 예시입니다.
const defaultResult = 0;
let currentResult = defaultResult;
currentResult = (currentResult + 10) * 3 / 2 - 1;
let calculationDescription = '(' + defaultResult + ' + 10) * 3 / 2 - 1';
outputResult(currentResult, calculationDescription);
14가 표시됩니다. 지금은 숫자만 다루고 있지만, 자바스크립트에서는 문자열(문자, 단어, 문장), 불리언(true/false), 객체 등도 변수에 저장해 쓸 수 있습니다. 다만 계산기 예제의 핵심은 숫자 연산이니, 우선은 숫자 연산에 집중하시면 됩니다.
+10 같은 연산을 해봄. outputResult() 함수를 이용해 결과를 웹페이지에 출력. (vendor.js가 이 함수를 제공) +, -, *, /, %, **)와 괄호를 사용해 다양한 수식을 만들 수 있음. 다음 단계로는 사용자 입력을 실제로 받아와(prompt나 <input> 이용), 그 값을 숫자로 변환해 currentResult에 적용해 볼 수 있습니다. 또한 버튼을 클릭했을 때 함수를 실행하도록 이벤트 처리를 추가하면, “사용자가 숫자 입력 → 버튼 클릭 → 계산 결과 표시” 흐름이 완성되어 진짜 계산기처럼 동작하게 되죠.
이상으로 “변수에 값(숫자) 할당하고, 기본 수학 연산자와 괄호를 사용하여 결과를 구한 뒤, 이를 화면에 출력하는” 과정을 쉽게 살펴봤습니다.
연산자와 괄호에 익숙해지면, 조금 더 복잡한 식도 거침없이 다룰 수 있습니다. 즐거운 코딩 되세요!
아래 내용은 outputResult 함수가 어떤 일을 하는지를 최대한 쉽게, 자세히 풀어서 설명한 것입니다. outputResult 함수는 어디서 갑자기 나타나는 함수인지, 어떤 식으로 동작하는지를 처음 접하는 분들도 이해할 수 있도록 정리했으니 참고하세요!
outputResult 함수는 어디에 있나?vendor.js라는 파일 안에 미리 정의되어 있습니다. vendor.js 파일은 “공통 코드” 또는 “도우미 함수” 등을 모아둔 파일이라고 생각하면 됩니다.일단, outputResult는 자바스크립트 함수입니다.
outputResult(값1, 값2); 처럼 함수를 호출할 때, 값(인수, argument) 을 넘겨줄 수 있습니다. 자세한 함수 작성법과 동작 원리는 나중 강의(함수 파트)에서 깊이 다룰 예정입니다.
지금은 “함수=어떤 작업을 할 수 있는 도구” 정도로 이해하면 충분합니다.
outputResult(currentResult, '') 호출이 의미하는 것예를 들어, 우리가 아래와 같은 코드를 작성했다고 합시다:
outputResult(currentResult, '');
outputResult: 함수 이름(“결과를 출력”하는 기능을 하는 것으로 추정) currentResult: 우리가 계산한 숫자 값(예: 14, 29, 등)을 인자로 넘김. '': 두 번째 인자로 빈 문자열을 넘김.currentResultcurrentResult라는 변수 안에는 우리가 연산을 통해 얻은 최종 숫자 결과가 들어 있습니다(예: 14). outputResult 함수에게 보내주면, 함수는 그 값을 HTML 화면에 표시할 준비를 합니다.'' (빈 문자열)''는 말 그대로 아무 글자도 없는 빈 텍스트입니다. outputResult 함수는 “결과 값”과 “부가적인 문자열 정보”를 받도록 만들어져 있는데, 여기서는 굳이 어떤 메시지도 넣지 않고 빈 문자열만 넘기는 상황입니다. outputResult(currentResult, 'You added 5!')” 처럼 문장을 넣으면, 추가 설명 같은 걸 출력하도록 확장할 수 있습니다.자, 우리가 outputResult(currentResult, '')를 호출하면, 내부적으로 무슨 일이 일어날까요?
함수 실행
vendor.js 안의 outputResult 함수가 즉시 호출됩니다. currentResult(숫자)와 빈 문자열('')을 받아요.HTML 요소 찾기
<h2 id="current-calculation">, <span id="current-result">)을 찾아냅니다.값을 채워넣기
currentResult)을 텍스트로 삽입하거나, 다른 방법으로 동적으로 표시합니다. <span id="current-result">0</span> 이었던 부분이 <span id="current-result">14</span>처럼 변경될 수 있음.화면 업데이트
<span id="current-result">0</span>라고 정적으로 0이 써 있었다면, JavaScript 코드가 실행되면서 그 부분을 실시간으로 14(또는 다른 값)로 변경합니다. outputResult(계산값, 메시지)처럼 JavaScript에서 값을 넣어주면, 그때그때 계산 결과에 따라 표시되는 숫자가 달라짐.즉, outputResult는 “하드코딩된 텍스트”를 대체해서, 실제 계산 결과를 반영해주는 일을 합니다.
outputResult 함수는 vendor.js 파일에 정의되어 있음. outputResult(a, b)” 식으로 함수를 호출(call) 하면, 두 개(혹은 필요한 만큼)의 정보를 함수에게 넘겨줄 수 있음. currentResult)과 문구(''는 빈 문구)가 실시간으로 표시되는 것. outputResult(currentResult, 'You added 5'). outputResult에 넘기면, 그 계산 과정을 화면에 보여줄 수도 있습니다. outputResult는 “화면에 결과를 보여주는 도우미 함수”라고 기억하시면 됩니다. vendor.js 코드를 살펴보면서 배울 내용이지만, 지금은 “함수를 불러서 필요한 데이터를 주면, 화면에 반영된다” 정도로 이해해도 충분합니다.이처럼 outputResult는 우리가 매번 직접 HTML 코드를 수정하지 않아도, 결과 값을 자동으로 페이지에 표시하게끔 만들어 주는 중간 역할을 담당합니다. 앞으로 함수에 대해 자세히 학습하면, 이런 구조가 훨씬 명료하게 느껴질 것입니다.
이상으로 “outputResult의 역할을 쉽게 자세히 설명”한 내용이었습니다.
이제 함수 개념을 배워가면서, “인자(Argument)”, “매개변수(Parameter)”, “리턴(Return) 값” 등도 익히면, 이런 작업을 직접 구현할 수도 있을 거예요.
즐거운 코딩 되세요!