📚 우리를 위한 디자인 패턴

디자인 패턴은 아키텍처 사용과 확장성 있고 유지 관리하기 쉬운 깔끔한 코드를 구성하는데 도움을 줄 수 있는 일종의 표준이 된 모범 사례로 소프트웨어 개발의 일반적인 문제, 즉 다양한 프로그래밍 언어에서 공통적으로 개발자가 직면할 수 있는 문제에 대한 해결책을 제시합니다. 디자인 패턴을 익혀두면 다른 사람들이 작성한 코드에서 어떤 패턴이 사용되었을 경우 이를 빨리 파악하여 코드에 대한 이해를 높일 수 있고 새 프로젝트를 시작하는 경우 상황에 맞는 적절한 디자인 패턴을 적용함으로써 견고하게 프로젝트를 구축할 수 있습니다. 디자인 패턴은 다음과 같이 크게 3가지 종류로 구분하고 있습니다. 📌 생성(Creational) 생성 패턴은 객체를 생성하는 방법에 중점을 두는 디자인 패턴을 말하는데요, 생성 패턴에 속한 디자인 패턴들은 객체 생성에 관련된 로직을 캡슐화하여 코드의 재사용성을 향상시켜줍니다. 📌 구조(Structural) 구조 패턴은 객체와 클래스의 관계를 재정의하여 새로운 구조로 만드는 디자인 패턴을 말합니다. 예를 들어 서로 호환되지 않는 인터페이스를 연결하거나, 서로 다른 인터페이스를 가진 클래스들이 상호 작용할 수 있도록 만드는 방식 등을 말합니다. 📌 행동(Behavioral) 행동 패턴은 객체의 상호작용과 책임 분산에 초점을 둔 디자인 패턴을 말합니다. 시스템 설계 시 행동 패턴을 적용하면 복잡한 객체 간 통신을 간소화하고, 각 객체의 독립성을 유지할 수 있습니다. 또한 객체를 독립적으로 다룰 수 있게 되어 테스트를 편리하게 진행할 수 있으며, 코드의 재사용성도 높일 수 있습니다. 디자인 패턴의 주의할 점은 디자인 패턴은 모든 문제에 대한 해결책은 아니라는 점입니다. 올바르지 않은곳에 억지로 적용할경우 재앙에 가까운 끔찍한 코드를 마주할 수 있습니다. 따라서 올바른곳에 디자인 패턴을 사용하게끔 각 패턴의 개념과 유즈케이스 등을 익혀둘 필요가 있는데요, 각 디자인 패턴에 대한 개념과 샘플 코드를 자세히 정리한 글이 있어 공유드립니다. 📚 원문 - 원문: https://github.com/kamranahmedse/design-patterns-for-humans/blob/master/readme.md - 번역글: https://soobing.github.io/cs/design-patterns-for-humans/ 📚 같이 보면 좋은 글 - 자바 생성 패턴을 실제 프로젝트에 적용하려면?: https://yozm.wishket.com/magazine/detail/2155/ - 자바 어댑터 패턴은 어떻게 쓰일까?: https://yozm.wishket.com/magazine/detail/2077/ - 자바 구조 패턴은 어떻게 쓰일까?: https://yozm.wishket.com/magazine/detail/2122/ - 자바 행동 패턴은 어떻게 사용해야할까?: https://yozm.wishket.com/magazine/detail/2190/

design-patterns-for-humans/readme.md at master · kamranahmedse/design-patterns-for-humans

GitHub

design-patterns-for-humans/readme.md at master · kamranahmedse/design-patterns-for-humans

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 8월 29일 오전 7:59

 • 

저장 39조회 3,234

댓글 0

    함께 읽은 게시물

    GraphRAG 에 대한 생각

    2000년 초반부터 온톨로지 연구를 해왔고, 관심을 갖고 있는 사람으로서 GraphRAG 에 대해 갖고 있는 생각을 적어봤습니다.

    ... 더 보기

    📰 OpenAI가 ChatGPT의 커넥터 기능을 업데이트하면서 MCP 지원을 추가했네요.

    ... 더 보기

    앱 개발 개척시대

    A

    ... 더 보기

    앱 개발 개척시대

    K리그 프로그래머

    앱 개발 개척시대

     • 

    저장 2 • 조회 812


    ChatGPT 버전명 설명

    ChatGPT 사용할 때 어떤 모델을 선택해야할지 망설여집니다. 모델명만 봐서는 어떤게 좋은지 모르겠더라고요.

    ... 더 보기

    직장인으로서 10년 정도 일하게 되면 피할 수 없는 순간이 바로 조직에서 리더의 역할을 받게 되는 인사발령이다. 팀원이었을 때는 내게 주어진 업무를 내가 가진 능력과 주변 동료들의 도움으로 해결하고, 그에 합당한 평가와 보상을 기다리며, 나쁘지 않는 리워드와 내 위치에 안도하며 또 새해를 맞이하고 하루하루를 버텨나가는 과정에 큰 어려움이 없다.

    ... 더 보기

     • 

    저장 3 • 조회 735


    AI(LLM) 애플리케이션의 발전 속도가 AI 지능(능력)의 발전 속도를 따라가지 못하고 있는 상태가 되었다. 즉, 이제 AI가 부족한 것이 문제가 아니라, AI의 능력을 100% 활용하지 못하고 있는 것이 문제인 상태가 되었다는 이야기.