빡대가리라 그런가
GPT한테 물어봐도 검색을 해봐도 직관적으로 이해가 안된다...
지금 내가 쓰는 조건에서는 걍 똑같이 동작하는거 같거든?
이런 상황에서는 싱글톤 대신 스태틱 쓰면 좆된다
이런 상황에서는 스태틱 대신 싱글톤 쓰면 좆된다
이런걸 겪어보면 딱 이해가 될거 같은데
코딩 좆뉴비라 그런 일도 없었고...
잘 모르겠으면 뭐 쓰면 됨?
빡대가리라 그런가
GPT한테 물어봐도 검색을 해봐도 직관적으로 이해가 안된다...
지금 내가 쓰는 조건에서는 걍 똑같이 동작하는거 같거든?
이런 상황에서는 싱글톤 대신 스태틱 쓰면 좆된다
이런 상황에서는 스태틱 대신 싱글톤 쓰면 좆된다
이런걸 겪어보면 딱 이해가 될거 같은데
코딩 좆뉴비라 그런 일도 없었고...
잘 모르겠으면 뭐 쓰면 됨?
싱글톤은 유일하게 하나뿐인 객체만 보장하는 개발 구현 패턴이고 - dc App
static은 키워드이자 문법 - dc App
예를 들어 GameManager.Instance.ThankYou(); 랑, static 함수 만들어서 GameManager.ThankYou(); 랑 똑같이 동작하면 걍 아무거나 쓰면 되는건지 그게 궁금했음
동작이 같다면 상관없지만, 후자는 인스턴싱된 클래스 종속 매서드가 아니 때문에 static 아닌 맴버 접근이 안 된다는 것만 알아서 구현하면 됌. 그게 큰 차이임 - dc App
어차피 ㅈ되네 어쩌네도 구조를 잡고 쓸 때 얘기라 객체지향 잘 모르면 걍 아무거나 쓰면 됨 근데 코드 관리 좀 한다하면 전역 클래스는 추상화 못해서 의존성 분리도 안 되고 함수 오버라이딩도 안 되고 메모리 올라가는 위치가 달라서 로드 시기도 컨트롤 안 되고 제약이 좀 많음
님 말 들어보면 아무거나 써도 되는 상황엔 싱글톤 쓰는게 좋아보이네 나중에 코드 관리좀 하게 됐을때 제약이 적으니까
본인도 뉴비지만 제 기준에서는 싱글톤은 객체로써 존재해야 할 경우, 모노비헤이비어 기능이 필요할 때 쓰고 (인스펙터 사용, 참조 할당, 씬 이동, 초기화 담당 등등) 스태틱은 유틸리티, 헬퍼용으로 씀. 주로 계산 작업이나 활성화/비활성화 같은 작업들.. 돈디스트로이 싱글톤은 게임매니저 하나만 사용함
static은 인스턴스 없이 클래스 자체에 들어있는 메소드/필드이고 싱글턴은 인스턴스 숫자를 1개로 보장하는 디자인 패턴을 말한것. 싱글턴을 구현하기 위해 static을 쓴것임. 다들 그냥 싱글턴=전역변수 처럼 생각하곤하는데 엄밀히는 완전히 틀린 얘기고 그냥 전역변수처럼 쓰려면 static 쓰는게 맞음
싱글톤은 객체 생성하는 비용 절감을 위한 거임 gameManager를 만약 다른 클래스에서 쓰려면 매번 new를 사용해서 객체를 만들고 메모리 할당이 일어날 것임 하지만 싱글톤이라는 디자인패턴을 사용하면 1번만 하면 됨.(상태관리가 편함 게임매니저의 경우 게임 로직에 의한 플래그 설정이 그냥 인스턴스.메소드() 해주면 되니까) static은 객체(메모리할당된) 에 속하는게 아니라 클래스에 속하게 되는 것을 뜻함. Animal1, Animal2 라는 zoo타입의 객체가 있으면 공통적인 요소를 미리 메모리에 적재해놓는거임 예시를 들면 zoo 하위에 static으로 동물개체수를 static으로 선언해놓으면 바로 zoo.nums 이런식으로 가져올 수 있음 (틀린점 지적바람)