디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

싱글톤이 안티 패턴이 될수도 있는 이유 쉽게 설명해줌

ㅆㅇㅆ(124.216) 2025.01.08 20:30:47
조회 986 추천 6 댓글 13

일단 무조건 싱글톤이 안티 패턴이다! 이런건 아님.


기본적으로 패턴은 코드 양식 같은거임 선배 개발자의 산물


근데 여기서 패턴 양식은 흔히 FP, DOP 같은것들이 있지만


우리가 흔히 말하는 코드 패턴은 객체지향 원칙임. 그래서 OOP의 원칙을 지키는데


여기서 상속-다형성-추상화-캡슐화(은닉)


인데 이걸 풀어서 보통 SOLID라고함. 어쨌건 이 원칙 안지키면 안티패턴이야! 라고들 함.


근데 싱글톤의 경우 전역 접근점으로 흔히 쓰여서 어디서든 쉽게 싱글톤 인스턴스에 접근해서 상태 변경이 가능함


이건 유닛 테스트도 하기 어렵지만, 기본적으로


DIP(의존성 역전 원칙)

OCP(개방 폐쇄 원칙)


에 위배됨.


싱글톤은 구체적 클래스에 의해서만 만들어지기때문에 추상화에 의존해야하는 DIP를 위반해서 코드 확장을 어렵게함.


또한 '일반적'싱글톤은 Is-a 관계에 제한되어있기때문에 확장에 닫혀 있어서, 기능 추가를 위한 확장성에 불리함


따라서 싱글톤은 이러한 경향이 있어서 잘못쓰면 안티패턴이라고 할 수 있음


그럼 DIP를 보통 어떻게 극복하는가? 싱글톤에 대해서 외부 의존성 주입(DI)를 하면 해결 가능. 즉 DI 컨테이너로 해결함


즉 인스턴스가 단일로 존재해야만 한다는 속성은 유지하되, 가져오는 방식을 추상화해야함.


그리고 OCP도 싱글톤을 추상화하는 방식으로 구현하면됨. 그리고 이때 책임원칙(자신의 추상화 방식)에 따라서 단일 책임만 해주면


싱글톤도 충분히 패턴이 됨


쉽게 말하자면 싱글톤의 기능을 인터페이스로, 그리고 싱글톤은 인터페이스를 구현하도록하면됨.


하지만, 보통은 저걸 다 지키기 힘들기때문에 안티패턴이 될 확률이 높다고 하는거


실제로 대부분의 싱글톤 패턴은 안티패턴으로 만들어져 있음.


추천 비추천

6

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 입금 전,후 관리에 따라 외모 갭이 큰 스타는? 운영자 25/01/20 - -
2800918 너무 힘들고 괴로울때 내가 돈을 벌어서 결혼할 미래의 가상 마누라 [2] ㅆㅇㅆ(124.216) 01.09 56 1
2800913 영하 10도 실한가? 헬마스터갤로그로 이동합니다. 01.09 182 0
2800912 하 수학 너무 어렵네...ㅇㅅㅇ [4] 나트륨찡갤로그로 이동합니다. 01.09 80 0
2800904 연락처 명단에 모르는 사람이 한둘이 아니네 헬마스터갤로그로 이동합니다. 01.09 68 0
2800903 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 01.09 48 0
2800894 32살연봉3500만6년차임베개발자의아침이밝았다노 [12] 현무E공인(211.234) 01.09 251 0
2800891 헬마스터님 프갤 운영 대행으로써 안건 하나 부탁드립니다. [6] ㅆㅇㅆ(124.216) 01.09 89 0
2800887 오전 2시간 코딩하고 막힌 지금 커피 하나 사먹으러 나가야겠다 [5] ㅆㅇㅆ(124.216) 01.09 86 0
2800871 일본 외노자 현직장에서 지쳤습니다 [26] 프로외노자갤로그로 이동합니다. 01.09 364 0
2800870 ㅅㅅ 망해가는건 국비 봐도 알 수 있지 [1] ㅇㅇ(118.235) 01.09 169 0
2800868 쎼쎼 이재명은 역시 뽑으면 안될거같군 [6] 헬마스터갤로그로 이동합니다. 01.09 76 0
2800850 광고봇 지랄났네아주 [24] ㅇㅇ(211.234) 01.09 111 0
2800836 ⚠+???: 미국도 내란 공범이다!!!!⚠+ [29] ㅇㅇ(211.234) 01.09 121 0
2800833 asciinema.org [2] 발명도둑잡기갤로그로 이동합니다. 01.09 38 0
2800818 시공간이론 만드는 중 ㅇㅅㅇ [17] 나트륨찡갤로그로 이동합니다. 01.09 74 0
2800817 오늘의 발명 실마리: github 자동 데모 설치기 발명도둑잡기갤로그로 이동합니다. 01.09 71 0
2800810 up - the Ultimate Plumber [5] 발명도둑잡기갤로그로 이동합니다. 01.09 108 0
2800809 FTXUI Functional Terminal (X) User inter [2] 발명도둑잡기갤로그로 이동합니다. 01.09 116 1
2800808 ▸[▓▓ xplr] 파일 관리자 발명도둑잡기갤로그로 이동합니다. 01.09 43 1
2800804 나 요새 언어 만드는 중 ㅇㅅㅇ [6] 나트륨찡갤로그로 이동합니다. 01.09 94 0
2800786 올해 게임 내보고 실패한다? 바로 태화강 숭어떼와 면담하러 간다 [31] ㅆㅇㅆ(124.216) 01.09 126 0
2800782 갤에 사람이 없는데 왜케 조회수가 높나 ㅇㅅㅇ [7] 나트륨찡갤로그로 이동합니다. 01.09 87 0
2800781 어떤 분야든 직군 상위 50퍼센트의 실력을 원해 [4] 나트륨찡갤로그로 이동합니다. 01.09 103 0
2800778 나는 상위 50퍼센트의 해킹과 인공지능과 개발 실력 ㅇㅅㅇ [4] 나트륨찡갤로그로 이동합니다. 01.09 89 0
2800774 오늘의 할 일 간단 요약 [8] ㅆㅇㅆ(124.216) 01.09 82 0
2800771 나는 진짜 개발자는 될 생각 없고 좋은 게임 만드는 개발자 될려고 [3] ㅆㅇㅆ(124.216) 01.09 100 0
2800770 진정한 개발자란 개발 직군 상위 50퍼센트의 실력을 말한다 [4] 나트륨찡갤로그로 이동합니다. 01.09 84 0
2800767 '진정한 개발자'란 무엇인가에 대해 묵상중 [4] ㅇㅇ(211.234) 01.09 93 0
2800762 '개발자가 아니라 엔지니어가 되라' 그 말이생각나는군 [4] ㅇㅇ(211.234) 01.09 110 0
2800754 개발자가 관리자로 살아남는걸 과연 살아남았다라고 볼수있을까 [7] ㅇㅇ(211.234) 01.09 111 0
2800732 c++ 갤에 C++ 책 추천좀 (pdf 가능해야함) [2] ㅇㅇ(223.38) 01.09 161 0
2800653 2024년 정리완료 [49] 프갤러(58.143) 01.09 166 0
2800641 c# 팔수록 c++ 같이 하게되네.. [4] 프갤러(211.243) 01.09 144 0
2800594 아오 이 씨발 담당자 쳐죽여버리고 싶네 [3] ㅇㅇ(123.111) 01.09 110 0
2800590 형냐들 쌀거같아ㅏㅏㅏ [6] ㅇㅇ(211.211) 01.09 85 0
2800572 하루종일 아무것도 못먹어서 조금만 도와줄 사람 있어? [7] 프갤러(182.220) 01.08 103 0
2800565 프갤러들은 낭만이없고 생각하는게 1차원적임 [5] 위키세카이(58.225) 01.08 446 0
2800562 키크론 K8 Pro 이거 좋음? [7] 프갤러(14.39) 01.08 158 0
2800559 <2025년 김진향의 한반도 평화실천전략 특강> [2] 발명도둑잡기갤로그로 이동합니다. 01.08 56 0
2800556 너네들 LLM 이용해서 정치하는 게임 만들어봐 [1] 프갤러(14.39) 01.08 84 1
2800555 '대북확성기 방송 중단 및 대북전단금지법 개정 촉구' 청원 발명도둑잡기갤로그로 이동합니다. 01.08 50 0
2800554 [🚩너머 45호] 윤석열 탄핵! 국민의힘 해체! 2025년 진보적 개헌 [6] 발명도둑잡기갤로그로 이동합니다. 01.08 70 0
2800552 "북한군, 우크라이나에 없다" [1] 발명도둑잡기갤로그로 이동합니다. 01.08 88 0
2800546 아 개씨발련아 [4] ㅇㅇ(211.211) 01.08 79 0
2800542 C/C++임베디드쪽은 1인1프로젝트로 업무가진행됨 [13] ㅇㅇ(211.234) 01.08 233 0
2800540 회독 공부법은 개발에도 통하는거 같음 [3] 프갤러(61.75) 01.08 105 0
2800529 아스카 오랜만에 힘들어서 울었다 [31] 아스카영원히사랑해갤로그로 이동합니다. 01.08 199 0
2800523 무경력으로 취업하려면 뭐가 핵심이야? [3] 프갤러(58.124) 01.08 144 0
2800517 매크로네 브레이버갤로그로 이동합니다. 01.08 46 0
2800515 스위치 쿨러 잠깐 도네요. 브레이버갤로그로 이동합니다. 01.08 46 0
뉴스 연세굿데이치과 박정철 원장 ‘MBC 기분좋은날’ 잇몸건강 지키는 관리법 공개 디시트렌드 01.22
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2