반응형

개발/개발 공통 21

g

[Design Pattern] Composite 패턴

Composite 패턴구조 패턴 (Structural Pattern) 중 하나입니다. Composite 패턴은 클라이언트로 하려면 객별 객체와 복합 객체를 모두 동일하게 다룰 수 있도록 합니다. 설명이 패턴의 핵심 아이디어는 개별 객체와 복합 객체(Composite)를 동일한 인터페이스를 갖도록 설계하여 사용하는 것입니다. 이렇게 하면 클라이언트 코드가 개별 객체든 복합 객체든 동일한 방식으로 다룰 수 있게 됩니다. 대표적인 예제로 메뉴를 선택하는 상황을 생각해 볼 수 있습니다. 메뉴의 종류가 많은데, 하위 메뉴가 하위 메뉴를 포함하는 경우들이 있습니다. 예를 들어 분식집 메뉴가 아래와 같다고 생각해 봅니다. 참치김밥, 치즈김밥, 라면, 떡볶이 그러면 아래와 같이 카테고리를 나눌 수 있고, 오늘의 메뉴와..

g

[객체지향 SOLID 원칙] 의존성 역전 원칙(DIP)의 이해와 예제

SOLID 원칙 중 마지막이면서 다소 어려운 의존성 역전 원칙에 대해서 예제를 통해 이해해 보도록 하겠습니다. 의존성 역전 원칙(DIP)의 이해와 예제 의존성 역전 원칙이란 객체들간의 의존관계는 있을 수밖에 없습니다. 이때 어디에서 어디로 의존하느냐가 중요합니다. 의존성 역전 원칙을 따르면, 상위 계층(정책 결정)이 하위 계층(세부 사항)에 의존하는 전통적인 의존관계를 반전(역전)시킴으로써 상위 계층이 하위 계층의 구현으로부터 독립되게 할 수 있습니다. 이 원칙은 다음과 같은 내용을 담고 있습니다. 첫째, 상위 모듈은 하위 모듈에 의존해서는 안된다. 상위 모듈과 하위 모듈 모두 추상화에 의존해야 한다. 둘째, 추상화는 세부 사항에 의존해서는 안된다. 세부사항이 추상화에 의존해야 한다. 이 원칙은 '상위와..

g

[객체지향 SOLID 원칙] 인터페이스 분리 원칙(ISP)의 이해와 예제

네 번째 SOLID 원칙인 인터페이스 분리 원칙에 대해서 예제를 통해 이해해 보도록 하겠습니다. 인터페이스 분리 원칙(ISP)의 이해와 예제 인터페이스 분리 원칙이란 인터페이스를 사용할 때 가능한 적은 인터페이스를 사용해야 한다는 원칙입니다. 거대한 인터페이스를 사용한다면 해당 인터페이스에서 사용 불가능하거나 의미 없는 인터페이스까지 사용할 수 있고 의존하게 되므로 불안정한 코드가 되거나 가독성에 좋지 않습니다. 따라서 꼭 필요한 전용 인터페이스를 사용하는 것을 선호해야 합니다. 2023.01.14 - [개발/개발 공통] - [객체 지향] SOLID 원칙에 대해서 알아보자 [객체 지향] SOLID 원칙에 대해서 알아보자 객체 지향을 공부하면서 SOLID 원칙을 빼놓을 수 없다. SOLID 원칙에 대해서 ..

g

[객체지향 SOLID 원칙] 리스코프 치환 원칙(LSP)의 이해와 예제

이번에는 세 번째 원칙인 리스코프 치환 원칙(LSP)에 대해서 알아보도록 하겠습니다. 리스코프 치환 원칙(LSP)의 이해와 예제 리스코프 치환 원칙이란 자료형 B가 자료형 A의 서브타입라면 필요한 프로그램의 속성(정확성, 수행하는 업무 등)의 변경 없이 자료형 B의 객체를 자료형 A의 객체로 교체(치환)할 수 있어야 한다는 원칙입니다. 2023.01.14 - [개발/개발 공통] - [객체 지향] SOLID 원칙에 대해서 알아보자 [객체 지향] SOLID 원칙에 대해서 알아보자 객체 지향을 공부하면서 SOLID 원칙을 빼놓을 수 없다. SOLID 원칙에 대해서 공부해 본다. SOLID란 로버트 마틴이 2000년대 초반에 명명한 객체지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이 growing-dev..

g

[객체지향 SOLID 원칙] 개방 폐쇄 원칙(OCP)의 이해와 예제

SRP 원칙에 이어서 개방 폐쇄 원칙인 OCP(Open Closed Principle)에 대해서 알아보도록 하겠습니다. 개방 폐쇄 원칙(OCP)의 이해와 예제 개방 폐쇄 원칙이란 소프트웨어 개발 작업에 이용된 많은 모듈 중에 하나에 수정을 가할 때 그 모듈을 이용하는 다른 모듈을 줄줄이 고쳐야 한다면, 이와 같은 프로그램은 수정하기가 어렵습니다. 개방-폐쇄 원칙은 시스템의 구조를 올바르게 재조직(리팩토링)하여 나중에 이와 같은 유형의 변경이 더 이상의 수정을 유발하지 않도록 하는 것입니다. 개방-폐쇄 원칙이 잘 적용되면, 기능을 추가하거나 변경해야 할 때 이미 제대로 동작하고 있던 원래 코드를 변경하지 않아도, 기존의 코드에 새로운 코드를 추가함으로써 기능의 추가나 변경이 가능합니다. 2023.05.26..

g

[객체지향 SOLID 원칙] 단일 책임 원칙(SRP)의 이해와 예제

이전 포스팅에서 SOLID 원칙에 대해서 알아보았습니다. 이번에는 좀 더 구체적으로 하나씩 이해해보려고 합니다. 첫 번째로 단일 책임 원칙에 대해서 예제를 통해 알아보도록 하겠습니다. 2023.01.14 - [개발/개발 공통] - [객체 지향] SOLID 원칙에 대해서 알아보자 [객체 지향] SOLID 원칙에 대해서 알아보자 객체 지향을 공부하면서 SOLID 원칙을 빼놓을 수 없다. SOLID 원칙에 대해서 공부해 본다. SOLID란 로버트 마틴이 2000년대 초반에 명명한 객체지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 마이 growing-dev101.tistory.com 단일 책임 원칙(SRP)의 이해와 예제 단일 책임 원칙 (SRP) 란 무엇인가 단일 책임 원칙 (Single Responsib..

g

좋은 코드 개발 문화 (클린 코드, 코드 리뷰, TDD)

소프트웨어 개발을 할 때 좋은 개발 문화는 무엇 일지에 대해서 개인적으로 고민해 보았습니다. 좋은 코드 개발 문화 (클린 코드, 코드 리뷰, TDD) 개발하면서 어려운 점 개인적으로 개발하면서 어려운 점을 생각해 보았습니다. 제가 겪었던 안 좋았던 상황들을 조금 정리해 보았습니다. 처음부터 요구사항이나 리소스, 테스트 등 모호한 것이 많다. 그래도 처음에는 나름 고민하여 만든 코드가 동작한다. 개발자 단계에서 하는 테스트가 많지 않고 최종 엔드투엔드 테스트에 의존한다. 특정 모듈, 특정 파트에 업무 로드가 집중된다. 문제가 발생했을 때 디버깅에 오래 걸리고 해결책은 최소 수정사항으로 해결하려고 한다. 수정했을 때 테스트가 잘 없고 테스트해 볼 수 있는 환경 제약이 많다. 결국 사이드 이펙트가 발생하여 다..

g

[ChatGPT] 챗GPT 가입, 사용법 및 활용 팁 정리

요즘 핫한 ChatGPT를 어떻게 가입하고 사용하고 활용하는지 활용 팁까지 정리해 보았다. 챗 GPT 가입, 사용법 및 활용 팁 정리 ChatGPT란 ChatGPT는 openAI라는 곳에서 만든 대화형 인공지능 AI기반 챗봇이다. ChatGPT(생성형 사전 학습 트랜스포머)의 원리는 딥러닝 기술을 사용하여 자연어를 이해하고 주어진 프롬프트나 대화에 대해 사람과 유사한 응답을 생성할 수 있는 언어 모델을 생성하는 것이다. 방대한 양의 텍스트 데이터에 대한 학습을 통해 언어의 기본 패턴과 구조를 학습할 수 있다고 한다. 이러한 학습을 통해 모델은 수신된 입력을 기반으로 가장 가능성이 높은 다음 단어 또는 단어 시퀀스를 예측하여 새로운 텍스트를 생성하는 것이라고 한다. 기존 챗봇들과 다르고 더 좋은 점은 딥러..

g

[개발 방법] 테스트 주도 개발(Test-Driven Development)에 대해서

오늘은 테스트 주도 개발(Test-Driven Development) 줄여서 TDD에 대해서 알아보고 장점과 단점은 무엇인지 공부해 본다. 테스트 주도 개발(Test-Driven Development)에 대해서 테스트 주도 개발 줄여서 TDD는 테스트 위주로 고려해서 개발을 하는 개발 방법론 중에 하나이다. 반복 테스트를 이용한 소프트웨어 방법론으로, 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다. 기존의 일반적인 방법론과는 다소 다르게 테스트를 매우 중요시한다는 것이 핵심이다. 아래는 켄트 벡의 테스트 주도 개발이라는 책에서 설명하고 있는 내용이다. 테스트 주도 개발의 바이블과도 같은 책이라고 할 수 있다. 테스트 주도 개발은 학계와 업계에서 많은 주목을 ..

g

[파일 형식] 마크다운(Markdown) 파일에 대해서

특정 문법을 사용해서 화면에 표시해 주는 마크업 language 중 하나인 마크다운 언어의 문법을 알아보고 사용해 보도록 한다. 마크다운(Markdown) 파일에 대해서 마크다운(Markdwon)이란 Markdown은 텍스트 기반의 마크업언어로 2004년 존그루버에 의해 만들어졌다. HTML로 변환이 가능하며 간단하게 작성할 수 있다. 특수기호와 문자를 이용해서 간단한 구조의 문법을 정하였으며 직관적이며 웹에서 쉽게 활용할 수 있다. 마크 다운이 대표적으로 많이 사용되는 곳이 GitHub이다. GitHub의 최초 README.md 가 바로 Markdown(. md) 파일이다. 각종 오픈소스 프로젝트에서 많이 활용되고 Wiki 등과 같은 곳에서 사용법과 가이드 문서 등을 자주 활용하게 되면서 널리 사용되고..

반응형