본문 바로가기

OOP6

객체지향 설계 - 책임, 역할, 협력 개발 관련 일을 한지 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] 니객망 1탄 - 객체지향 프로그래밍 이란? 하이~ 어렸을 때 부터 나는 농구를 좋아했고, 고향팀인 창원 LG팀을 거의 20년 넘게 응원하고 있다. 창원 LG 감독 중에 강을준이라는 감독이 있었는데 작전 타임때 종종 구수한 사투리로 ...! '니가 갱기를 망치고 있어 ~' 라는 말을 자주 했다. ㅎㅎㅎ 오늘 부터는 그동안 내가 잘못 이해하고 있던 .. 그리고 개념을 안다고 생각했던 객체지향에 대해 완벽하고 꼼꼼하게 포스팅을 해보려한다. 이름하여 ....! '니가 객체지향을 망치고 있어~' 니!! 객!! 망!! 시리즈~~ 대부분의 회사에서 프로젝트를 할때 설계를 하고 설계문서를 바탕으로 코딩을 할 것이다. 대표적으로 사용하는 설계방식이 바로 객체지향 설계인듯 하다. 그 만큼 이 개념을 확실히 잘 알고 사용하는게 좋을 듯한데, 개인적인 바램으로는 직접.. 2020. 2. 18.
[OOP] 객체 지향 설계를 해야 하는 이유 내가 컴퓨터 공학을 전공으로 선택한 후, 처음으로 흥미를 느낀 영역은 객체 지향 프로그래밍 (OOP) 이었다. 심지어 휴학을 하고 한 학기 동안 객체지향만 공부한 적도 있었다. (그렇다고 잘하는 건 아니다 ㅜ_ㅜ) 요즘 회사에서 객체지향언어의 대표적인 언어인 자바를 많이 쓰고 있는데, 문득 이런 생각이 들었다. "내가 만약 책임자 직급이 되면 소스코드를 개발하고 수정하는 것을 넘어 설계까지 해야하는 때가 오지 않을까?" 그래서 오늘부터라도 그 순간을 위해 조금씩이나마 객체지향 설계에 대해 공부를 하려고 한다. 오늘 포스팅하는 내용은 정말 객체지향에 대해 아주 미미한 나의 지식을 끄적인 것이니 가볍게 읽고 넘어가 주면 좋겠다. 객체지향 설계의 핵심 예전에 한 회사 면접에 가니 면접관님이 이렇게 질문을 하셨.. 2020. 2. 9.
[Kotlin] 코틀린 뽀개기 - 객체지향 언어인 코틀린! 안녕 여러분 ~~!! 진짜 오랜만에 Kotlin 글을 쓴다. 혹시나 다들 까먹으셨을까봐 !! 링크를 올린다. https://devkingdom.tistory.com/25 https://devkingdom.tistory.com/26 https://devkingdom.tistory.com/29 https://devkingdom.tistory.com/30 https://devkingdom.tistory.com/31 https://devkingdom.tistory.com/32 혹시나 코틀린 기초를 까먹으셨다면 쭉 정독하고 오기를 바란다 !! 자바를 공부해 보신분들은 자바가 객체지향 언어라는 걸 알고 계실 거다. 객체지향언어에 대한 기본 개념은 다들알고 계시겠지만, 기억안나시는 분을 위해 간단하게 개념만 이야기하.. 2019. 11. 27.