본문 바로가기
AppSheet

구글 앱스크립트 2차시 - 변수와 데이터 타입

by 에버리치60 2025. 12. 20.

구글 앱스크립트 2차시 - 변수와 데이터 타입

2차시: 변수와 데이터 타입

JavaScript 기초 - 데이터를 저장하고 활용하는 방법

📚 학습 목표
  • 변수의 개념과 선언 방법 이해하기
  • 다양한 데이터 타입(문자열, 숫자, 불린, 배열, 객체) 다루기
  • 변수를 활용하여 스프레드시트 조작하기

📖 변수란 무엇인가?

1 변수의 개념 이해하기
변수는 데이터를 저장하는 "상자"라고 생각하면 됩니다. 상자에 이름표를 붙이고, 그 안에 값을 넣어두었다가 필요할 때 꺼내 쓸 수 있습니다.
변수 선언 방법 3가지:
var: 옛날 방식 (함수 범위)
let: 현대적 방식 (블록 범위, 값 변경 가능)
const: 상수 선언 (블록 범위, 값 변경 불가)

🚀 실습 1: 변수 선언과 사용

2 새 프로젝트 준비하기
1. 지난 시간에 만든 "앱스크립트 연습" 스프레드시트를 엽니다
2. 확장 프로그램 → Apps Script를 클릭합니다
3. 새로운 함수를 작성할 준비를 합니다
3 기본 변수 다루기
다음 코드를 입력하고 실행해보세요:
function 변수연습() {
  // 문자열 변수
  let 이름 = "홍길동";
  let 인사말 = "안녕하세요, " + 이름 + "님!";
  
  // 숫자 변수
  let 나이 = 25;
  let 내년나이 = 나이 + 1;
  
  // 불린(참/거짓) 변수
  let 성인여부 = 나이 >= 20;
  
  // 로그로 확인
  Logger.log(인사말);
  Logger.log("나이: " + 나이);
  Logger.log("내년 나이: " + 내년나이);
  Logger.log("성인입니까? " + 성인여부);
}
실행 후 "실행 로그"를 클릭하여 결과를 확인하세요.
4 배열(Array) 사용하기
배열은 여러 개의 값을 하나의 변수에 저장할 수 있습니다:
function 배열연습() {
  // 배열 선언
  let 과일목록 = ["사과", "바나나", "포도", "딸기"];
  let 점수목록 = [95, 87, 92, 88, 90];
  
  // 배열 요소 접근 (인덱스는 0부터 시작)
  Logger.log("첫 번째 과일: " + 과일목록[0]);
  Logger.log("세 번째 과일: " + 과일목록[2]);
  
  // 배열 길이
  Logger.log("과일 개수: " + 과일목록.length);
  
  // 배열에 요소 추가
  과일목록.push("오렌지");
  Logger.log("추가 후 과일 목록: " + 과일목록);
  
  // 평균 계산
  let 합계 = 0;
  for (let i = 0; i < 점수목록.length; i++) {
    합계 = 합계 + 점수목록[i];
  }
  let 평균 = 합계 / 점수목록.length;
  Logger.log("평균 점수: " + 평균);
}
실행하고 로그를 확인하세요.
5 객체(Object) 사용하기
객체는 관련된 데이터를 묶어서 저장합니다:
function 객체연습() {
  // 객체 선언
  let 학생 = {
    이름: "김철수",
    나이: 20,
    학년: 2,
    전공: "컴퓨터공학",
    학점: 3.8
  };
  
  // 객체 속성 접근
  Logger.log("이름: " + 학생.이름);
  Logger.log("전공: " + 학생.전공);
  Logger.log("학점: " + 학생.학점);
  
  // 객체 속성 수정
  학생.학년 = 3;
  Logger.log("수정된 학년: " + 학생.학년);
  
  // 새로운 속성 추가
  학생.연락처 = "010-1234-5678";
  Logger.log("연락처: " + 학생.연락처);
}
실행하고 결과를 확인하세요.

🎯 실습 2: 스프레드시트에 데이터 입력하기

6 학생 명단 작성하기
배열과 반복문을 사용하여 여러 학생의 정보를 입력합니다:
function 학생명단작성() {
  let sheet = SpreadsheetApp.getActiveSheet();
  
  // 제목 행 작성
  sheet.getRange("A1").setValue("번호");
  sheet.getRange("B1").setValue("이름");
  sheet.getRange("C1").setValue("국어");
  sheet.getRange("D1").setValue("영어");
  sheet.getRange("E1").setValue("수학");
  
  // 학생 데이터 (배열 안에 배열)
  let 학생들 = [
    [1, "김민수", 85, 90, 88],
    [2, "이지은", 92, 87, 95],
    [3, "박준호", 78, 82, 80],
    [4, "최유진", 95, 93, 91],
    [5, "정하늘", 88, 85, 89]
  ];
  
  // 반복문으로 데이터 입력
  for (let i = 0; i < 학생들.length; i++) {
    let 행번호 = i + 2; // 2행부터 시작 (1행은 제목)
    let 학생 = 학생들[i];
    
    sheet.getRange(행번호, 1).setValue(학생[0]); // 번호
    sheet.getRange(행번호, 2).setValue(학생[1]); // 이름
    sheet.getRange(행번호, 3).setValue(학생[2]); // 국어
    sheet.getRange(행번호, 4).setValue(학생[3]); // 영어
    sheet.getRange(행번호, 5).setValue(학생[4]); // 수학
  }
  
  SpreadsheetApp.getActiveSpreadsheet().toast("학생 명단 작성 완료!", "완료", 3);
}
실행 후 스프레드시트에 데이터가 입력되었는지 확인하세요.
7 평균 점수 계산하기
각 학생의 평균을 계산하여 추가 열에 표시합니다:
function 평균계산() {
  let sheet = SpreadsheetApp.getActiveSheet();
  
  // 제목 추가
  sheet.getRange("F1").setValue("평균");
  
  // 2행부터 6행까지 반복 (학생 5명)
  for (let row = 2; row <= 6; row++) {
    // 국어, 영어, 수학 점수 가져오기
    let 국어 = sheet.getRange(row, 3).getValue();
    let 영어 = sheet.getRange(row, 4).getValue();
    let 수학 = sheet.getRange(row, 5).getValue();
    
    // 평균 계산
    let 평균 = (국어 + 영어 + 수학) / 3;
    let 평균반올림 = Math.round(평균 * 10) / 10; // 소수점 첫째자리
    
    // 평균 입력
    sheet.getRange(row, 6).setValue(평균반올림);
  }
  
  SpreadsheetApp.getActiveSpreadsheet().toast("평균 계산 완료!", "완료", 3);
}
실행 후 F열에 평균이 표시되는지 확인하세요.
8 등급 매기기
평균 점수를 기준으로 등급을 부여합니다:
function 등급매기기() {
  let sheet = SpreadsheetApp.getActiveSheet();
  
  // 제목 추가
  sheet.getRange("G1").setValue("등급");
  
  // 각 학생의 등급 계산
  for (let row = 2; row <= 6; row++) {
    let 평균 = sheet.getRange(row, 6).getValue();
    let 등급;
    
    // 조건문으로 등급 결정
    if (평균 >= 90) {
      등급 = "A";
    } else if (평균 >= 80) {
      등급 = "B";
    } else if (평균 >= 70) {
      등급 = "C";
    } else if (평균 >= 60) {
      등급 = "D";
    } else {
      등급 = "F";
    }
    
    sheet.getRange(row, 7).setValue(등급);
  }
  
  SpreadsheetApp.getActiveSpreadsheet().toast("등급 매기기 완료!", "완료", 3);
}
실행 후 G열에 등급이 표시되는지 확인하세요.
💡 데이터 타입 정리
  • 문자열(String): "안녕하세요", '홍길동' - 따옴표로 감싼 텍스트
  • 숫자(Number): 42, 3.14 - 정수와 소수
  • 불린(Boolean): true, false - 참 또는 거짓
  • 배열(Array): [1, 2, 3] - 순서가 있는 값들의 목록
  • 객체(Object): {이름: "김철수", 나이: 20} - 키-값 쌍의 모음
⚠️ 주의사항
  • 변수명은 의미있게 작성하세요 (a, b보다는 이름, 점수 등)
  • 배열의 인덱스는 0부터 시작합니다 (첫 번째 요소는 배열[0])
  • 문자열과 숫자를 더할 때는 결과가 문자열이 됩니다 ("점수: " + 90 → "점수: 90")
  • const로 선언한 변수는 값을 변경할 수 없습니다
🎯 2차시 정리
이번 시간에는 변수와 다양한 데이터 타입을 배우고, 실제 스프레드시트에 데이터를 입력하는 실습을 했습니다.
다음 차시에서는 조건문과 반복문을 더 깊이 배우고, 복잡한 로직을 구현해보겠습니다.