ved_Rony
article thumbnail
싱글턴 패턴 (제네릭 + thread-safe)

이전에 싱글턴에 대해서 알아봤는 데, 간단히 말해 하나의 intance 만 만들어 놓고 여기저기서 가져오기 위한 패턴이다. 하지만, 싱글턴을 사용하고자 하는 클래스마다 싱글턴을 만들기엔 여러 문제가 있었고, 코드도 복잡하다. 또한, 싱글턴 패턴의 남용을 장려하지 않기 때문에, 잘 생각하고 만들어야한다. 유니티에서 싱글턴 클래스들을 한 곳으로 모아놓고 관리하는 게 편한데, 이를 위해 제네릭을 통한 싱글턴을 만들고자 한다. public class Singleton : MonoBehaviour where T : MonoBehaviour { private static T _Instance; public static T Instance { get { if (_Instance == null) { _Instance ..

article thumbnail
객체지향 - 복사와 참조

-들어가기에 앞서 객체지향 방식으로 개발을 하다보면, 클래스, 인스턴스화, 생성자, static 등 여러 용어가 나오면서 참조를 한다거나, 인스턴스를 만들어서 값만 변경해준다거나 하는 말을 많이 들어 봤을 것이다. 이러한 말을 이해 하기 위해선 작업 영역에 대한 근본적인 이해가 수반되어야 한다. 이번에는 이를 위한 내용을 다뤄 보고자 한다. 스택(stack) & 힙(heap) 스택(stack): 비교적 불안전한 메모리 영역이라 생각하면 좋다. 주로, int, double, float등 값타입의 메모리들이 들어간다. 이전 struct에서 다뤘던 내용에서 박싱과 언박싱에서 스택에 값이 들어가고 참조가 힙에 들어가는 이미지를 참고 하면 좋을 듯하다. 힙(heap): 안정적인 메모리영역. 주로 참조 타입이 머무..

article thumbnail
객체지향 프로그래밍(OOP) - 속성 및 원칙
Programming/Dev Architecture 2022. 6. 25. 17:47

객체지향의 4가지 속성 - 추상, 캡슐, 상속, 다형성 추상화 (Abstraction) 객체들의 공통적인 특징(기능, 속성)을 추출해서 정의하는 것 실제로 존재하는 객체들을 프로그램으로 만들기 위해 공통적인 특성을 파악한 후, 필요 없는 특성을 제거해 하나의 묶음으로 만들어내는 과정을 가르킨다. 객체지향적 관점에서는 클래스를 정의하는 것을 추상화라고 할 수 있다. ex) 게임에 대포를 만드는데 뭔가 필요할까..탄두방향 필요할것 같고, 탄두 범위도 필요할것같고, 공기저항은 총알에 줄까? 이런과정이 추상화 -> 이렇게 하면 큰대포, 작은 대포 등등 추가하여 쓸수 있다. 추상화하였기에. 쉽게말해, 프로그래밍에 들어가기 앞서 설계하는 단계라고 생각하면 된다. 캡슐화 (Encapsulation) 외부에서 객체를 ..

article thumbnail
객체지향 프로그래밍(OOP) 이란?
Programming/Dev Architecture 2022. 6. 25. 17:26

- 객체지향 프로그래밍은 우리 주변에서 매우 쉽게 보이는 프로그래밍 방식이기도 하고 대규모 프로젝트 단위에서 자주 쓰이기 때문에, 필수적인 요소가 된지 이미 오래이다. 그렇다면, 객체지향이란 무엇이고, 왜 나왔으며, 어떻게 만들어야 하는 것인가? 알아가보도록 하자. 객체지향이란? - 객체란, 존재하는 모든 것을 의미한다. 흔히 객체(object)란 말을 들으면, 질량을 가진 어떤 것을 떠올리곤 하는 데, 실상은 존재하는 모드것을 칭한다. - 특히, 프로그래밍의 관점에서 본다면 데이터 + 기능 으로 이루어진다. 즉, 변수와 메소드로 이루어진 것이 객체란 것이다. - 이렇게 객체로 묶어진 단위의 프로그래밍을 한다면, 데이터 분산의 위험을 예방하고, 데이터와 기능을 하나로 묶어줄수 있기에 직관적으로 받아들이기..

article thumbnail
GoF - 싱글턴 패턴 Singleton Pattern

싱글턴 패턴이란? 어떤 클래스가 한번만 메모리를 할당(Static)하고, 그 메모리에 인스턴스를 만들어 사용하는 디자인패턴. 즉, 메모리에 단하나의 인스턴스를 할당한 후에 그 인스턴스를 계속 참조하여 사용하는 것. 생성자가 여러차례 호출이 되더라도 생성된 객체 하나만 호출이 된다. 싱글톤 패턴을 쓰는 이유 메모리 낭비를 방지할 수 있음 싱글톤으로 만들어진 클래스의 인스턴스는 전역 인스턴스이기 때문에 다른 클래스의 인스턴스들이 데이터를 공유하기 쉽다 공통된 객체를 여러개 생성해서 사용해야하는 상황에서 많이 사용 DBCP(DataBase Connection Pool)처럼 공통된 객체를 여러개 생성해서 사용해야하는 상황에서 많이 사용. (쓰레드풀, 캐시, 대화상자, 사용자 설정, 레지스트리 설정, 로그 기록 ..

검색 태그