728x90
반응형

파이썬 클린코드 6

파이썬(PYTHON) 클린코드 #9_ SOLID, 인터페이스 분리 원칙(ISP)

안녕하세요. 문범우입니다.이번 포스팅에서는 SOLID 원칙 중, 인터페이스 분리 원칙(ISP)에 대해서 알아보도록 하겠습니다. 1. ISP(Interface Segregation Principle) 인터페이스 분리 원칙(ISP)은, 클라이언트가 자신이 이용하지 않는 메소드에 의존하면 안된다라는 원칙이다.다른 방향으로 해석해보자면, 하나의 인터페이스는그 책임에 맞는 메소드만 가지고 있어야 한다는 의미이다. 책임이라는 용어, 매우 익숙할 것이라고 생각한다. SOLID에 대해서 알아보며 첫번째로 다루었던 SRP원칙과 매우 유사하게 느껴질 것이다. 물론 SOLID 원칙 모두가 상호 연관 관계가 있고, 좋은 코드를 목표로 하고 있기 때문에 더욱 그렇게 느껴질 수 있다.이번에 다뤄볼 ISP와 이전에 학습한 SRP의..

파이썬(PYTHON) 클린코드 #7_ SOLID, 개방 폐쇄 원칙(OCP)

안녕하세요. 문범우입니다.이번 포스팅에서는 SOLID 원칙 중, 개방 폐쇄 원칙(Open/Close Principle)에 대해서 다뤄보도록 하겠습니다. 1. OCP(Open/Close Principle) 개방 폐쇄 원칙(Open/Close Principle)이란 소스가 기능 확장에는 열려있지만, 기능 수정에는 닫혀있어야 한다는 원칙이다. 보다 쉽게 말해서, 새로운 기능을 추가함에 있어서는 신규 기능에 대한 소스 추가만 진행해야 하고 기존의 코드를 수정해야 하는 일은 없어야 한다는 것이다.만약, 새로운 기능을 추가하는데에 있어서 기존의 코드를 수정해야 한다면 기존의 코드가 좋지 않게 디자인 되었다는 것으로 생각할 수 있다. 바로 예제를 통해 확인해보도록 하자. 다음의 코드는 OCP가 잘 지켜지지 못한 코드..

파이썬(PYTHON) 클린코드 #6_ SOLID, 단일 책임 원칙(SRP)

안녕하세요. 문범우입니다.이번 포스팅에서는 SOLID 원칙에 대해서 알아봅니다. SOLID는 5가지 원칙을 줄여서 말하는 내용인데, 한번에 5가지 모두를 알아보지 않고, 각 원칙에 대해서 코드로 함께 살펴보며 총 5개의 포스팅으로 나누어 설명드릴 예정입니다. 0. SOLID란? 우선 솔리드, SOLID는 객체 지향 프로그래밍 및 설계의 다섯가지 기본 원칙을 이야기한다. 프로그램이 시간이 지나도 유지 보수 및 확장이 쉬울 수 있도록 하기 위한 원칙이며, 우리가 학습하고자 했던 클린코드를 위한 원칙이기도 하다. 조금 더 구체적으로, SOLID는 아래와 같은 5가지 원칙을 이야기 한다. 1. Single Responsibility Principle(단일 책임 원칙) 2. Open/Closed Principle..

파이썬(PYTHON) 클린코드 #4_ 상속과 컴포지션

안녕하세요. 문범우입니다.이번 포스팅에서는 상속과 컴포지션에 대해서 알아보도록 하겠습니다.어떤 경우에 상속을 쓰는 것이 올바른 것인지, 그리고 파이썬에서 상속과 파이썬을 어떻게 사용하는지에 대해서 코드로 함께 살펴보겠습니다. 1. 상속(Inheritance) 상속이란 기본적으로 자신이 가진 속성과 메소드를 물려주는 클래스(부모클래스, Parent class, Super class)와 이를 물려받는 클래스(자식클래스, Child class, Sub class)로 이루어진다.객체 지향적 소프트웨어를 디자인하고 구현할 때 상속은 중요한 개념으로, 또 자주 사용된다. 하지만 이를 다시 생각해보자. 상속개념을 활용하면 부모클래스와 자식클래스간에 강력한 결합력(Coupling)이 발생하게 된다.좋은 코드, 유지보수..

파이썬(PYTHON) 클린코드 #2_ Annotation

안녕하세요. 문범우입니다. 이번 포스팅에서는, 파이썬에서 제공되는 annotation에 대해서 알아보도록 하겠습니다. 1. Annotation 이란? 우선 Annotation의 사전적 정의는 "주석"이다. 즉, 쉽게 말해서 코드에 대한 추가적인 설명을 이야기하는 무언가를 의미한다.대표적으로 Java언어에서 함수나 클래스 상단에 @를 통해 annotation을 표시한다. 위는 java의 spring 프레임워크를 사용한 코드 중 일부인데, 10번, 13번, 16번 라인을 보면 @를 통해 annotation을 사용하고 있음을 볼 수 있다. 물론 자바에서의 annotation과 파이썬에서의 annotation은 차이가 있을 수 있다. 하지만 기본적으로 로직이 되는 코드를 "도와주는" 의미에서는 크게 다르지 않다..

파이썬(PYTHON) 클린코드 #1_ Docstring

안녕하세요. 문범우입니다. 파이썬 언어를 활용하는데 보다 좋은 코드, 유지보수가 가능한 코드, 팀원들과 함께 협업할 수 있는 코드를 작성하기 위해 다양한 방법을 알아보고자 합니다. 흔히들 이야기 하듯, 클린코드를 작성하는 방법에 대해서 파이썬에서는 어떻게 구현될까를 함께 알아볼 것 입니다.물론 클린코드라는 것에 정확한 방법과 기준은 없습니다. 하지만 함께 알아보는 내용들을 통해 그를 위한 다양한 방법과 방향에 대해서는 알아볼 수 있을 것 입니다. 하나씩 공부해보며 자신의 상황과 프로젝트에 맞게 적용시키면 좋을 것 같네요. 이번 포스팅에서는 그 첫번째로, 파이썬의 docstring에 대해서 알아보도록 하겠습니다. 0. 문서화 Docstring에 대해서 알아보기전에 문서화에 대해서 한번 짚어보자. 프로젝트를..

728x90
반응형