코드 작성 원칙
코드 작성 원칙에 대해서 궁금해서 알아본 내용입니다.
규칙 없이 작성된 코드는 재사용되기 어렵습니다.
오늘은 객체지향 개발을 할 때의 원칙들인 DRY, KISS, YAGNI , SOLID원칙들에 대해 알아보려고 합니다.
목차
- DRY : Don't Repeat Yourself (중복 배제)
- KISS : Keep It Simple, Stupid
- YAGNI : You Ain't Gonna Need It
- SOLID
DRY : Don't Repeat Yourself ( 중복 배제 )
반복하지 마라의 원칙, 시스템 내에서 로직은 단 한 곳에서 명확하고 신뢰할 수 있도록 존재해야 합니다.
로직, 지식, 의도, 비즈니스 로직이 중복되지 않도록 작성한다.
- 안 지키면 하나의 비즈니스 로직이 여러 곳에 존재하게 된다.
- 수정 작업을 진행할 때 비즈니스 로직 여러 개를 전부 수정해야 된다.
- 가장 기본적으로 지켜야 하는 원칙이라고 생각한다.
KISS : Keep It Simple, Stupid ( 키스 원칙 >-< )
프로그래머들 사이에 많이 통용되는 격언이다. 이 디자인 원리는 간단하고, 나중에도 쉽게 이해되는 해결 방법을 최적의 해결책으로 생각한다. KISS는 과학 이론에서 있으나 없으나 차이가 없는 불필요한 가정은 잘라내야 한다는 오컴의 면도날 원칙과도 맞닿아 있다.
- 심플하고 멍청하게 유지하자
- 시스템을 디자인할 때 심플하고 간결하게 작성하자.
- Code, Function, Class , View, Service, System 전체에 해당하는 의미
- 함축된 코드보다 가독성이 좋게 작성하자.
- 함수명에 함수의 의미가 들어가도록 작성하자
- 변수명에 변수의 의미가 들어가도록 작성하자
YAGNI : You Ain't Gonna Need It
실제로 필요할 때 무조건 구현하되, 그저 필요할 것이라고 예상할 때에는 절대 구현하지 말라
하지 말 것
- 필요하지 않은 기능
- 사용하지 않는 기능
- 지나치게 미래 지향적인 기능(지나친 확장성).
하도록 노력할 것
- 깨끗하게
- 변경이 쉽게
- 유지보수 용이하게
SOLID
S - SRP(Single Responsibility Principle) : 단일 책임 원칙
모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함을 일컫는다.
O - OCP(Open/Closed Principle) : 개방-폐쇄 원칙
개방-폐쇄 원칙이 잘 적용되면, 기능을 추가하거나 변경해야 할 때 이미 제대로 동작하고 있던 원래 코드를 변경하지 않아도, 기존의 코드에 새로운 코드를 추가함으로써 기능의 추가나 변경이 가능하다.
L - LSP(Liskov Substitution Principle) : 리스 코프 치환 원칙
데이터 타입 T의 하위 타입 S에 대해, T 대신 S가 프로그램 내에서 사용된다 하더라도 정확도, 업무 수행능력 등이 변화 없이 동작해야 한다.
I - ISP(Interface Segregation Principle) : 인터페이스 분리 원칙
큰 덩어리의 인터페이스들을 구체적이고 작은 단위들로 분리시킴으로써 클라이언트들이 꼭 필요한 메서드들만 이용할 수 있게 한다.
D - DIP(Dependency Inversion Principle) : 의존관계 역전 원칙
- 상위 모듈은 하위 모듈에 의존해서는 안된다. 상위 모듈과 하위 모듈 모두 추상화에 의존해야 한다.
- 추상화는 세부 사항에 의존해서는 안된다. 세부사항이 추상화에 의존해야 한다.
마무리
프로그래밍을 할 때 하다 보면 위 원칙들을 다 지키긴 힘들지만 DRY 원칙은 꼭 지키도록 노력하는 게 좋습니다.
나머지 원칙들은 지키면 코드의 가독성, 시간 절약이 되는 원칙들인데
DRY 원칙은 안 지키면 비즈니스 로직이 여러 인터페이스로 구현돼있으면 아우 생각만 해도 집어던지고 싶겠네요.. ㅋㅋ
그럼 이만~
'기타글 > 재미있는 IT글 모으기' 카테고리의 다른 글
개발 블로그는 어떻게 써야할까? (1) | 2021.05.26 |
---|---|
개발자들이 StackOverflow에서 얼마나 Copy & Paste 할까? (0) | 2021.05.02 |