본문 바로가기

객체지향4

객체지향 설계 - 책임, 역할, 협력 개발 관련 일을 한지 5년정도 되다보니, 이제는 구현뿐만 아니라 설계적인 능력도 중요하게 되었다. 요즘 하나의 기능을 추가해도 깔끔하게 설계를 한 뒤에 프로그래밍하는 것이 습관이 되었다. 오늘은 객체지향 설계의 가장 중요한 요소인 책임, 역할, 협력의 관점에서 어떻게 설계를 해야할 지를 풀어나가 볼 예정이다. 대학생 때, 교수님 한분이 그런 말씀을 하셨다. "객체지향은 실세계를 모방하여 구현하는 것이 아니라 새로운 세계를 창조하는 것이다." 예전에 이말이 참 이해가 안되었는데, 실무를 경험하다 보니 조금은 이해가 된다. 객체지향은 말그대로 실세계를 조금 참고하여, 새로운 세계를 만들어내는 것이다. 우리는 실세계의 다양한 부분을 통해 객체지향의 기본 사상을 이해하고 학습한다. 객체지향 세계에서 모든 일은 .. 2022. 9. 6.
객체지향 SOLID 원칙 - SRP, OCP, LSP, ISP, DIP 오늘은 간단하게 객체지향 SOLID 5대 원칙에 대해 정리해두려고한다. 1.SRP (Single Responsibility Principle) - 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다. SRP 원칙은 클래스가 하나의 기능만을 가지며, 어떤 변화에 의해 클래스를 변경해야하는 이유는 오직하나 뿐이어야한다는 원칙이다. SRP에서는 책임자체가 분명해지기 때문에, 변경에 의한 연쇄 작용에서 자유로워 질 수가 있다. SRP를 잘 적용한다면 가독성과 유지보수가 좋아지기 때문에 실무에서 사용하기는 쉽진 않겠지만, 항상 생각하면서 프로그램을 짜면 코드의 품질은 올라갈 것이다. 예를 간단하게 보여주도록 하겠다. 아래 코드를 보자. public class Person { public static void .. 2021. 12. 25.
[Python] Python 은 객체 지향 언어인가? 하이 ㅎㅎ 요즘 Python 의 재미에 푹 빠졌다... ㅎㅎ 어서 기본적인 공부 끝내고 크롤링하고 싶은데 ... 쉽지가 않다. 결론 부터 말하자면 Python 은 객체지향 언어이다. ㅎㅎ 근데 .. 왜이리 파이썬이 객체지향언어 같지 않게 느껴지지 하는 분들 있을 것이다. 아마도 내생각에는 파이썬이 데이터 분석이나 통계 쪽으로 많이 활용되고 있어서 , 객체간의 통신이 아닌 사용자 정의 함수를 만들어 절차지향적인 코딩을 통해서 많이들 사용하기 때문이 아닐까 생각한다. 그래도 !! 파이썬은 객체지향 언어라는 거 알아두자. 오늘은 간단하게 객체지향언어라는 것을 증명하기 위해 파이썬으로 클래스를 하나 만들고 그 클래스로 객체를 하나 만들어 메서드를 사용해보는거 간단하게 코딩해볼꺼다. 1 2 3 4 5 6 7 8 .. 2020. 4. 8.
[OOP] 객체 지향 설계를 해야 하는 이유 내가 컴퓨터 공학을 전공으로 선택한 후, 처음으로 흥미를 느낀 영역은 객체 지향 프로그래밍 (OOP) 이었다. 심지어 휴학을 하고 한 학기 동안 객체지향만 공부한 적도 있었다. (그렇다고 잘하는 건 아니다 ㅜ_ㅜ) 요즘 회사에서 객체지향언어의 대표적인 언어인 자바를 많이 쓰고 있는데, 문득 이런 생각이 들었다. "내가 만약 책임자 직급이 되면 소스코드를 개발하고 수정하는 것을 넘어 설계까지 해야하는 때가 오지 않을까?" 그래서 오늘부터라도 그 순간을 위해 조금씩이나마 객체지향 설계에 대해 공부를 하려고 한다. 오늘 포스팅하는 내용은 정말 객체지향에 대해 아주 미미한 나의 지식을 끄적인 것이니 가볍게 읽고 넘어가 주면 좋겠다. 객체지향 설계의 핵심 예전에 한 회사 면접에 가니 면접관님이 이렇게 질문을 하셨.. 2020. 2. 9.