/* * 파일명: script.js * 위치: /assets/js/script.js * 기능: 키워드 조합기 JavaScript * 작성일: 2025-06-15 */ // =================================== // 전역 변수 // =================================== /* 애플리케이션 상태 */ var currentCardCount = 4; var MAX_CARDS = 4; var MIN_CARDS = 1; var MAX_KEYWORDS = 100; // =================================== // 초기화 함수 // =================================== /** * 페이지 로드 시 초기화 */ $(document).ready(function() { console.log('페이지 로드 완료'); initializeCards(); bindEvents(); updateCardControls(); }); /** * 카드 초기화 */ function initializeCards() { console.log('카드 초기화 시작'); generateCards(currentCardCount); } /** * 이벤트 바인딩 */ function bindEvents() { console.log('이벤트 바인딩 시작'); // 카드 추가/제거 버튼 $(document).on('click', '.add-card-btn', addCard); $(document).on('click', '.remove-card-btn', removeCard); // 조합 생성 버튼 $(document).on('click', '.generate-btn', generateCombinations); // 다운로드 버튼 $(document).on('click', '.download-excel-btn', downloadExcel); $(document).on('click', '.download-txt-btn', downloadTxt); // 키워드 입력 시 실시간 카운트 $(document).on('input', '.keyword-textarea', updateKeywordCount); } // =================================== // 카드 관리 함수 // =================================== /** * 카드 생성 */ function generateCards(count, preserveData) { console.log('카드 생성: ' + count + '개'); // 기존 데이터 보존이 필요한 경우 수집 var existingData = {}; if (preserveData) { $('.keyword-textarea').each(function() { var cardNum = $(this).data('card'); existingData[cardNum] = $(this).val(); }); } var cardsHtml = ''; for (var i = 1; i <= count; i++) { cardsHtml += '
생성된 조합이 없습니다.
'; emptyHtml += '