디시인사이드 갤러리

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

갤러리 본문 영역

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

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

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


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


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


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


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


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


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


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


DIP(의존성 역전 원칙)

OCP(개방 폐쇄 원칙)


에 위배됨.


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


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


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


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


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


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


싱글톤도 충분히 패턴이 됨


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


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


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


추천 비추천

6

고정닉 0

0

댓글 영역

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

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 뒤숭숭한 시국에 기부나 선행으로 모범이 되는 스타는? 운영자 25/01/06 - -
2801069 납땜 ㅇㅈ? 도리스아(119.195) 01.09 52 0
2801068 나만 5년 못해! [1] 헬마스터갤로그로 이동합니다. 01.09 34 0
2801064 java, 스프링 입문자입니다.. 프갤러(115.138) 01.09 58 0
2801061 어차피 프로그래밍 다 외워서 하는 사람 없음 [2] ㅆㅇㅆ(124.216) 01.09 63 0
2801058 프로그래밍 공부하는데 이해가 안돼서 두려운데 조언좀 [1] 비상계엄군갤로그로 이동합니다. 01.09 74 0
2801057 백트래킹 이거 공부중인데 걍 이거임? 프갤러(210.104) 01.09 30 0
2801056 다음주 월요일 첫출근하는데 프갤러(175.113) 01.09 30 0
2801053 내 코드 내가 봐도 너무 복잡하게 짜서 교통정리 해야겠다. [3] ㅆㅇㅆ(124.216) 01.09 116 0
2801050 20년간 닌텐도 게임기성능과 게임 모습 겜돌이(211.210) 01.09 54 0
2801047 우리나라 자동차업계 망할거같은데? [1] 프갤러(58.225) 01.09 92 0
2801046 이 씨발 하루종일 버그잡다가 끝나가네 ㅆㅇㅆ(124.216) 01.09 26 0
2801042 2023년쯤글인데 트럼프 파나마 그린란드 발언전 미국 움직임 ㄷㄷ ㅇㅇ(211.235) 01.09 40 0
2801038 일이너무나 없다 [1] ㅇㅇ(211.235) 01.09 40 0
2801037 스프링 책으로봤는데 ㅅㅂ 텬됴대한의아들갤로그로 이동합니다. 01.09 50 0
2801034 여기에 세일즈포스 개발하는 사람있어??? 프갤러(121.65) 01.09 21 0
2801031 지금 웹시장에 핑크빛전망이 없는 이유 프갤러(119.193) 01.09 43 0
2801028 현실도피가 하고싶구나... [10] 주아갤로그로 이동합니다. 01.09 91 0
2801024 나도 최근에 이직 성공함 [1] ㅇㅇ(118.235) 01.09 54 0
2801020 아무리 차갑고 맑은 공기를 들이마셔도 만족감이 없다는구나.... [2] ㅇㅇ(123.213) 01.09 29 0
2801017 개발자들 영어식으로 말하게 되지 않음? [2] ㅇㅇ(223.38) 01.09 48 0
2801012 이직 힘들었다.. [4] ㅇㅇ(121.133) 01.09 121 0
2801011 코모도어64용 유닉스 클론 LUnix 발명도둑잡기갤로그로 이동합니다. 01.09 24 0
2801010 코모도어6 [2] 발명도둑잡기갤로그로 이동합니다. 01.09 47 0
2801009 윈도우 1.0 정보 사이트 [10] 발명도둑잡기갤로그로 이동합니다. 01.09 54 0
2801008 일본 FMTowns용 윈도우3.1 삽화 발명도둑잡기갤로그로 이동합니다. 01.09 18 0
2801002 근데 담배랑 진짜 불법약물이랑 차이가 심함 ㅇㅅㅇ?? [1] ㅇㅇ(223.38) 01.09 81 0
2800999 한글 윈도우 2.1이 있었다는데 구하기 어렵다고 한다 [3] 발명도둑잡기갤로그로 이동합니다. 01.09 56 0
2800996 꼬치달고 태어나 너무 억울하다. 에혀... [1] ㅇㅇ(223.38) 01.09 75 0
2800995 40대 동남아 백수. 끼니를 떼우고 있습니다.... [6] 40대프린이(223.118) 01.09 83 0
2800992 개발자 취업은 무조건 웹앱 백엔드 개발자임? [1] 프갤러(119.69) 01.09 123 0
2800989 요즘 취업 어떻소 ㅇㅇ(218.39) 01.09 56 0
2800978 근데 너네는 해외 프로그래밍 흐름 어떻게 파악하냐? [5] ㅆㅇㅆ(124.216) 01.09 239 0
2800976 코딩은 무엇인가 참으로 나에겐 어려운 것 ㅆㅇㅆ(124.216) 01.09 44 0
2800973 뭔 컴공이 실력주의여 단순노동직 다됐는데 ㅋㅋㅋ [8] 프갤러(211.210) 01.09 344 2
2800972 보안얘기좀하자 [3] ㅇㅇ(106.101) 01.09 98 0
2800971 나님 어쩌면 범죄자 이재명 뽑을지도? [7] 헬마스터갤로그로 이동합니다. 01.09 161 0
2800970 남이 만들어둔 에셋을 사던가 해야지 [9] ㅆㅇㅆ(124.216) 01.09 115 1
2800969 너네 그거 아냐 윈도우즈란 이름 게이츠 때문에 집착한거 [1] 발명도둑잡기갤로그로 이동합니다. 01.09 58 0
2800968 광고 댓글 뭐냐대체 [2] ■x(59.151) 01.09 83 0
2800967 프로젝트룸 내부망에서 [4] 아스카영원히사랑해갤로그로 이동합니다. 01.09 73 0
2800966 해킹할때 보안이 이러면 어케됨? [2] ㅇㅇ갤로그로 이동합니다. 01.09 122 0
2800965 나 신입인데 이걸로 까였는데 맞는거임? [4] 프갤러(39.7) 01.09 98 0
2800963 나는 인플루엔자 A. 전파상이다. [1] 넥도리아(223.38) 01.09 66 0
2800962 좇센은 슈카 잇섭 조민 기안같은 새끼들이 잘삼 [2] 뒷통수한방(1.213) 01.09 150 0
2800961 ㅈ소 프붕이 월급올랐다 프갤러(118.235) 01.09 79 0
2800960 요즘 일이 너무 많아져서 [2] 아스카영원히사랑해갤로그로 이동합니다. 01.09 106 0
2800958 사는동안 여자랑 카톡 못해봤으면 문제있는거냐? [14] 조커갤로그로 이동합니다. 01.09 99 0
2800951 깃허브 PR 안되는거 빨리 고쳐놔라 ㅇㅅㅇ [1] ㅇㅇ(112.157) 01.09 59 0
2800945 금연 6일차. 어김없이 흡연욕구와 싸우는중 ㅅㅂ... [1] ㅇㅇ(123.213) 01.09 41 0
2800943 나로님 코딩 시작합니다 Naro갤로그로 이동합니다. 01.09 32 0
뉴스 ‘尹 지지’ JK김동욱 “공연 요청 감사…왜 전설인지 보여줄 것” 디시트렌드 01.09
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2