연습장/삽질의 흔적

본격 삽질 일대기 자율주행 첫삽

찬찬잉 2022. 10. 27. 14:17

anti pattern은 무엇인가? 오류를 찾던 도중 난 자바스크립트가 아무리 유연해도 지킬건 지켜줭~

이란 댓글을 보았다. 그래서  anti pattern이 무엇인가 찾아본다.

 

anti pattern이란?

간단하게 이야기하면 패턴과 반대로 프로그래밍을 하는 과정에서 프로그래머들이 흔히 범하기 쉬운 바람직하지 않은 방법들과 그로 인한 폐해를 의미한다...

 

내가 처음 배운 자바스크립트는 타입이 없다 그렇기에 난 타입을 대충만 알지 제대로 모르고 유연한 언어라그런지 많이 오류를 범하고 있다... 이제 삽질 첫 삽인데 제대로 뼈맞았다! 잘해보자

 

그렇다면 흔히 발생하는 anti pattern 오류가 뭐가있을까?

1. 관리상의 anti pattern 문제 : 프로젝트의 프로세스와 프로젝트 구성원의 잘못 된 관리2. 아키텍쳐 상의 anti pattern 문제 : 설계와 구조상의 잘못 된 정의3. object설계 anti pattern 문제 : object를 설계상의 잘못 된 정의4. 방법론 상의 anti pattern 문제 : 개발 방법론 상의 잘못 된 정의 도는 잘못 된 진행5. 설정 관리 상의 anti pattern 문제 : version 또는 configuration 관리 상의 잘못 된 정의6. 개발상의 anti pattern 문제 : 코드 상의 잘못 된 사례

 

잘 알려진 안티 패턴

1. 스파게티 코드 : 개발과정에서 다양한 기능들을 추가 또는 유지보수에 의해 코드가 복잡하게 꼬여버린다.- 지금 나 ㅋㅋㅋㅋㅋㅋㅋ였네... 이것 저것 기능만 추가했지 제대로 유지보수도 생각 안한 나...

2. 스토브 파이프 시스템 : 다양한 솔루션들을 확실한 추상화의 개념 없이 임의로 묶어 하나의 제품을 만들면 신뢰성이 떨어지며 유지보수가 힘든 제품이 탄생된다.

3. 분석마비 : 분석 단계에서 완벽하고 완전한 분석을 꿈꾸면 이는 소프트웨어 개발 진행을 마비시켜 버린다.

4. 신의 객체 : 하나의 객체에 너무 많은 기능과 인터페이스를 담아버리면 복잡하고 유지보수하기 힘들고 상호 의존성이 높은 클래스가 탄생된다.

5. singletonitis : singleton pattern의 불필요하게 남용 / 그럼 singleton이 뭔데? : 객체의 인스턴스가 오직 1개만 생성

6. yo-yo problem : 구조를 지나치게 분리하게 되면, 더욱 이해하기 힘든 구조가 된다.

7. action at a distance : 예상되지 않은 상호작용은 시스템을 광범위하게 구분해 버린다.

8. 변조 된 요구사항 (phony Requirements - 아키텍쳐) : 프로젝트에서 모든 요구사항이 문서로 상세화되지 않고, 유선이나 개개인의 구두로 전달이 된다면 변조(허위) 된 요구사항이 발생된다.

9. 애매한 관점 : 명확하지 않은 관점에서 모델링을 수행하면 객체 모델링에서 객체들을 정확하게 정의 할 수 없다.