See the Pen 상품 가격 계산기 by yoonbitnara (@yoonbitnara) on CodePen.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style/style.css">
    <title>상품가격계산</title>
  </head>
<body>
    <div id="wrap">
        <h1>상품 가격 계산</h1>
        <fieldset>
            <div id="goodsPriceArea">
                상품가격
                <span id="goodsPrice">12000</span>
            </div>
            <div id="goodsCntArea">
                <span onclick="fnCntChange('0')">-</span>
                <input type="text" name="goodsCnt" id="goodsCnt" value="1" maxlength="2" onkeyup="fnCalc()">
                <span onclick="fnCntChange('1')">+</span>
            </div>
        </fieldset>
        <div id="resArea">
            총액 : <span id="res">0</span>
        </div>
    </div>
    <!-- div#wrap -->
    <script src="script/script.js"></script>
  </body>
</html>
* {
    box-sizing: border-box;
}
div#wrap {
    border: 1px solid #000;
    width: 600px;
    padding: 10px 20px;
    margin: 20px auto;
}
#wrap fieldset {
    font-size: 28px;
    display: flex;
    padding-top: 16px;
    user-select: none;
}
#wrap fieldset div {
    margin-right: 60px;
}
#wrap fieldset input {
    width: 60px;
    text-align: center;
    font-size: 25px;
    
}
#wrap fieldset div#goodsCntArea span {
    width: 32px;
    height: 32px;
    text-align: center;
    line-height: 28px;
    font-size: 24px;
    border: 1px solid #000;
    display: inline-block;
    transform: translateY(2px);
    cursor: pointer;
}
#wrap fieldset div#goodsPriceArea::after {
    content: "원"
}
#wrap fieldset div#goodsCntArea span:hover {    
    text-shadow: 0.5px 0.5px rgba(0, 0, 0, 0.616);
    background-color: rgba(0, 0, 0, 0.05);
}
#wrap fieldset div#goodsCntArea span:active {
    border-width: 1.1px;
}
#wrap div#resArea {
    font-size: 30px;
    margin: 30px 0;
}
#wrap div#resArea::after {
    content: "원";
}
function fnCalc() {
    let domInput = document.querySelector('#goodsCnt'); 
    let nowCnt = domInput.value;
    
    if(nowCnt == "") {
        
        return;
    }
    nowCnt = Number(nowCnt.trim()); //공백제거 후 숫자형으로 변환
    if(nowCnt <=1 || nowCnt >= 20) {
        alert("상품수량은 1~20에서 선택하실수있습니다.");
        domInput.value = 1;
        document.querySelector('#res').innerText = 0;
        return;
    }
    // 총액 계산
    
    let goodsPrice = Number(document.querySelector('#goodsPrice').innerText);
    let priceSum = 0;
    priceSum = goodsPrice * nowCnt;
    document.querySelector('#res').innerText = priceSum;
}
function fnCntChange(param) { // 상품수량 변경
    let domInput = document.querySelector('#goodsCnt'); 
    let nowCnt = domInput.value;
    nowCnt = Number(nowCnt.trim()); //공백제거 후 숫자형으로 변환
    let min = 1; // 최소 구매수량
    let max = 20; //최대 구매수량
    if(param == "0") {
        
        if(nowCnt == min) {
            alert("최소 " + min +"개 이상 선택필수 입니다.");
            
        } else {
            
            domInput.value = --nowCnt;
        }
        
    }
    if(param == "1") {
        
        if(nowCnt == max) {
            
            alert("최대 구매수량은 " + max + "20개입니다.");
        } else {
            
            domInput.value = ++nowCnt;
        }
        console.log(param);
    }
    // 총액 계산
    
    let goodsPrice = Number(document.querySelector('#goodsPrice').innerText);
    let priceSum = 0;
    priceSum = goodsPrice * nowCnt;
    document.querySelector('#res').innerText = priceSum;
}