테트리스 강좌

초등학생도 쉽게 따라할 수 있는 Unity 테트리스 게임 개발 강좌 자료

멤버와 메소드 (한눈에)

멤버 = 클래스 안의 변수 (저장소)
메소드 = 클래스 안의 함수 (보통 그 저장소를 읽거나 바꾸는 일)

멤버 변수 vs 로컬 변수

왜 클래스에 넣나요?
관련된 저장소(멤버) 와 그걸 다루는 함수(메소드) 를 한 덩어리로 두면, 의미가 분명해지고 나중에 코드를 읽기 쉬워집니다.

public class Player
{
    public int score;     // 멤버 (저장소)
    public void AddScore(int points)  // 메소드 (score를 다루는 함수)
    {
        score += points;
    }
}

📚 각 단계에서 조금씩 익히기

이 개념은 한 번에 외우지 말고, 아래 단계별 학습을 하면서 조금씩 익히면 됩니다.

단계 이번 단계에서 익히는 것
1단계 변수 = 값을 넣어 두는 저장소
2단계 함수 = 할 일을 묶어 둔 것
4단계 저장소를 다루는 함수 = MoveLeft()가 position을 바꾸는 것처럼, 어떤 변수를 바꾸는 함수
5단계 메소드 = 클래스 안에 들어간 함수 (이름만 다름)
6~7단계 멤버 = 클래스 안에 들어간 변수. 클래스 = 멤버 + 메소드를 묶어 둔 것

각 단계 문서 끝의 💡 이번 단계에서 익히는 개념을 읽어 보세요.


🛠️ 실습: 메소드만 → 멤버 + 메소드 단계별로 느끼기

목표: 먼저 “메소드 = 클래스 안의 함수”만 쓰고, 그다음 “저장소(멤버) + 그걸 다루는 함수(메소드)” 짝을 단계별로 느껴 봅니다.

실습 단계

단계 할 일 구분
1단계 메소드만 (저장소 없이, 할 일만 묶은 함수) 메소드 = 클래스 안의 함수
2단계 멤버 변수 + 메소드 (저장소와 그걸 다루는 함수) 멤버 + 메소드 = 짝으로 쓰기

이 실습 전용 씬 만들기 (환경 설정)

먼저 이 실습 전용 씬을 만든 뒤 아래 순서로 진행합니다. (자세한 씬 만드는 방법은 개념 실습 테스트 환경 가이드의 씬 만드는 방법 참고.)

이 실습만 할 전용 씬이 없으면 아래 순서로 한 번만 만듭니다. (이미 ConceptTest_MemberMethod 씬이 있으면 File → Open Scene으로 열고 아래 실습만 이어서 하세요.)

  1. File → New Scene → Basic (Built-in) 또는 Empty → Create
  2. File → Save As → 저장 위치: Assets/Scenes → 파일 이름: ConceptTest_MemberMethod → Save
  3. 아래 실습은 모두 이 씬에서 진행합니다.

실습 1단계: 메소드만 (저장소 없이)

목표: 클래스 안에 들어간 함수(메소드) 만 써 봅니다. 아직 “저장소(멤버 변수)”는 쓰지 않습니다.

  1. 스크립트 생성: 이름 MemberMethodTest
  2. 아래 코드로 1단계만 작성 후 Play
using UnityEngine;

public class MemberMethodTest : MonoBehaviour
{
    // 메소드 = 클래스 안의 함수 (할 일을 묶어 둔 것)
    void SayHello()
    {
        Debug.Log("안녕!");
    }

    void PrintNumber(int num)
    {
        Debug.Log("숫자: " + num);
    }

    void Start()
    {
        SayHello();        // 메소드 호출
        PrintNumber(100);  // 메소드 호출 (인자 전달)
    }
}
  1. Play → Console 확인: “안녕!”, “숫자: 100” 출력.
  2. 정리: SayHello(), PrintNumber() 는 메소드입니다. 클래스 안에 들어간 함수이고, 지금은 “저장소를 바꾸는” 역할은 없고 할 일만 합니다.

실습 2단계: 멤버 변수 + 메소드 (저장소와 그걸 다루는 함수)

목표: 멤버 변수(저장소) 와 그걸 바꾸는 메소드가 짝인 걸 느껴 봅니다.

  1. 같은 스크립트를 아래처럼 멤버 변수 + 메소드를 같이 쓰도록 바꿉니다.
using UnityEngine;

public class MemberMethodTest : MonoBehaviour
{
    // 멤버 변수 (저장소): 클래스 안, 메소드 밖
    private int myScore = 0;

    // 메소드: 이 저장소(myScore)를 다루는 함수
    void AddScore(int points)
    {
        myScore += points;
    }

    void Start()
    {
        Debug.Log("처음 점수: " + myScore);  // 0
        AddScore(50);                         // 메소드로 저장소를 바꿈
        Debug.Log("AddScore(50) 후: " + myScore);  // 50
        AddScore(30);
        Debug.Log("AddScore(30) 후: " + myScore);  // 80
    }
}
  1. Play → Console 확인: 0 → 50 → 80 순서로 출력.
  2. 정리: myScore 는 멤버 변수(저장소), AddScore() 는 그 저장소를 바꾸는 메소드입니다. “저장소 + 그걸 다루는 함수”가 짝입니다.

  3. 직접 해보기: void SubtractScore(int points) { myScore -= points; } 메소드를 추가하고, Start에서 SubtractScore(10); 호출 후 점수를 출력해 보세요.

  4. 이어서: 로컬 vs 멤버 변수 차이를 더 느끼려면 멤버 변수와 로컬 변수 실습 1·2·3단계를 진행하세요.

← 개념 목록으로