<객체지향 프로그래밍이란>
객체 지향 프로그래밍 (Object-Oriented Programming, OOP)은 프로그램을 데이터와 그 데이터를 조작하는 함수 (메서드)를 하나의 객체로 묶어 관리하는 프로그래밍 패러다임입니다. 현실 세계의 객체처럼, 객체는 상태(데이터)와 행위(메서드)를 가지며, 객체들 간의 상호작용을 통해 문제를 해결해 나가는 방식
객체지향 프로그래밍의 핵심 개념 정리
클래스(Class) | 객체를 생성하기 위한 틀(설계도). 속성과 메서드를 정의 |
객체(Object) | 클래스에 의해 생성된 실체. 실제 동작하는 단위 |
속성(필드) | 객체가 가지는 데이터, 예: 이름, 나이 |
메서드(Method) | 객체가 수행할 수 있는 동작, 예: 말하다(), 걷다() |
캡슐화(Encapsulation) | 데이터와 메서드를 하나의 객체로 묶고, 외부로부터 숨김 |
상속(Inheritance) | 기존 클래스의 특성을 물려받아 새로운 클래스를 생성 |
다형성(Polymorphism) | 같은 이름의 메서드가 다른 동작을 수행할 수 있음 |
추상화(Abstraction) | 불필요한 정보는 숨기고 핵심만 노출 |
<클래스의 인스턴스란>
C#에서 클래스의 인스턴스는 클래스 정의를 기반으로 생성된 객체를 의미합니다. 클래스는 객체의 설계도 역할을 하며, 인스턴스는 실제로 메모리에 할당되어 사용되는 객체 자체를 나타냅니다. 쉽게 말해, 클래스는 붕어빵 틀이고, 인스턴스는 붕어빵 틀로 찍어낸 붕어빵이라고 비유할 수 있습니다.
클래스 (Class):
클래스는 특정 유형의 객체를 생성하기 위한 청사진 또는 템플릿입니다. 속성(데이터)과 메서드(동작)를 정의하여 객체의 구조와 행동을 결정합니다. 예를 들어, "Car"라는 클래스는 색상, 모델, 제조사 등의 속성과, 가속, 제동 등의 메서드를 가질 수 있습니다.
인스턴스 (Instance):
인스턴스는 클래스를 기반으로 생성된 개별 객체입니다. 각 인스턴스는 독립적인 메모리 공간을 가지며, 고유한 속성 값을 가질 수 있습니다. 예를 들어, "Car" 클래스로부터 "MyCar"와 "YourCar"라는 두 개의 인스턴스를 만들면, 각각 다른 색상과 모델을 가질 수 있습니다.
정의 구성 요소별 상세 분석
클래스(Class) | 객체를 만들기 위한 템플릿(청사진). 필드와 메서드를 정의 |
객체(Object) | 클래스에 따라 생성된 데이터의 집합 (C#에서 보통 "인스턴스"와 동일한 의미로 사용) |
인스턴스(Instance) | 클래스를 new 키워드로 실제로 메모리에 올린 것. 프로그램 실행 중 사용할 수 있는 실체 |
메모리 상 위치 | 인스턴스는 힙(Heap) 영역에 저장되며, 참조 변수는 스택(Stack)에 저장되어 힙에 있는 객체를 가리킴 |
클래스명 및 변수명 네이밍 규칙
1. 카멜식 (Camel case)
- 낙타 모양에서 따온 방법으로 첫글자는 소문자로 시작, 두번째 단어부터는 대문자로 표현하는 방식으로 많이 사용합니다.
원문 : USER LOGIN LOG
카멜식 : userLoginLog
2. 파스칼식 (Pascal case)
- 카멜식이랑 비슷하지만 차이점은 첫단어를 대문자로 시작합니다.
원문 : USER LOGIN LOG
파스칼식 : UserLoginLog
3. 케밥식 (Kebab case)
- 먹는 케밥에 꼬챙이를 낀 모습이며, 모두 소문자로 표현하며, 단어와 단어 사이에는 하이픈(-)를 사용합니다.
- 스프링의 yml 파일이나 url 주소에서 주로 사용합니다.
원문 : USER LOGIN LOG
케밥식: user-login-log
4. 스네이크식(Snake case)
- 케밥식은 하이픈(-)를 사용했다면 스네이크식은 언더바(_)를 사용합니다.
- 상수를 선언할떄 자주 주로 사용합니다.
원문 : USER LOGIN LOG
스네이크식 : user_login_log 또는 USER_LOGIN_LOG
사용방법은 간단하니 각 환경에 맞는 네이밍을 사용하시면 됩니다.
'유니티개발 TIL' 카테고리의 다른 글
2주차 1일 TIL_C#기초-1(자료형, 연산자) (4) | 2025.07.07 |
---|---|
1주차 5일 TIL - 간단한 기능 모작(포켓몬스터-02), TIL정리 (1) | 2025.07.04 |
1주차 3일 TIL - 간단한 기능 모작(포켓몬스터-01) (2) | 2025.07.02 |
1주차 2일 TIL - 모바일게임개발(3, 4) (1) | 2025.07.01 |
1주차 1일 TIL - 모바일게임개발(1, 2주차) 및 Git 1차 학습 (1) | 2025.06.30 |