본문 바로가기

전체 글81

[디자인패턴] 생성 패턴(5) : 프로토타입(Prototype) 목차 프로토타입(Prototype) 프로토타입 디자인 패턴은 생성 디자인 패턴의 하나로, 객체를 생성하는 비용이 높을 때 원본 객체를 복제하는 방식으로 새 객체를 생성하는 기법이다. 이 패턴은 '프로토타입'이라는 용어에서 유래했다. 프로토타입(Prototype)이란 원형이나 본보기를 의미하며, 이 패턴에서는 객체의 원형(프로토타입)을 복제(clone)하여 새 객체를 생성한다. 패턴 미적용 예시 코드 C#에서 프로토타입 패턴을 적용하지 않은 경우, 객체를 생성할 때마다 새로운 인스턴스를 처음부터 생성해야 한다. 복잡한 객체의 경우 생성 과정이 비효율적이 될 수 있다. using System; class ComplexObject { public int Property1 { get; set; } public .. 2024. 3. 24.
[디자인패턴] 생성 패턴(4) : 빌더(Builder) 목차 빌더(Builder) 빌더(Builder) 디자인 패턴은 복잡한 객체의 생성 과정과 그 표현 방법을 분리해, 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있도록 하는 생성 디자인 패턴이다. 이 패턴은 주로 객체의 생성이 복잡하거나, 객체의 구성 요소가 많고, 구성이 단계적으로 이루어져야 할 때 사용한다. 패턴명의 어원은 실제 건축에서의 빌더와 유사하다. 건축에서 건물을 짓는 과정은 매우 복잡하며, 다양한 단계와 부품이 필요하다. 이 과정을 프로그래밍에 적용하여, 복잡한 객체를 단계별로 조립해 나가는 것을 '빌더 패턴'이라고 부른다. 패턴을 미적용한 예시 코드 빌더 패턴을 적용하지 않고 복잡한 객체를 생성하는 경우, 객체의 생성자가 과도하게 복잡해지거나, 필요한 데이터를 모두 생성자에 넘겨줘.. 2024. 3. 24.
[디자인패턴] 생성 패턴(3) : 팩토리 메서드(Factory Method) 목차 팩토리 메서드(Factory Method) 팩토리 메서드 패턴은 생성 디자인 패턴에 속한다. 이 패턴의 목적은 객체 생성 처리를 서브클래스에 위임하여 부모 클래스에서는 어떤 클래스의 인스턴스를 생성할지에 대한 결정을 하지 않도록 하는 것이다. 즉, 객체 생성 코드를 전체 프로그램 코드와 분리하여 유연성을 높이고, 코드의 관리를 용이하게 한다. 패턴의 이름은 "공장(Factory)"이라는 단어에서 유래했다. 실제 공장에서 제품을 만들듯, 팩토리 메서드 패턴에서는 객체를 생성하는 '공장' 역할을 하는 메서드를 제공한다. 이 패턴을 사용함으로써, 객체 생성 과정을 서브클래스에게 맡기고, 클라이언트 코드는 추상화된 인터페이스를 통해 원하는 객체를 얻게 된다. 패턴 미적용 예시 코드 // 패턴 미적용 상황:.. 2024. 3. 24.
[디자인패턴] 생성 패턴(2) : 추상 팩토리(Abstract Factory) 목차 추상 팩토리(Abstract Factory) Abstract Factory 패턴은 서로 관련있거나 의존적인 객체들의 그룹을 생성하기 위한 인터페이스를 제공하지만, 구체적으로 어떤 클래스의 인스턴스를 생성할지는 서브클래스가 결정하게 하는 생성 디자인 패턴이다. 즉, 클라이언트는 생성할 객체의 정확한 클래스를 명시하지 않고도 객체를 생성할 수 있다. 이 패턴은 객체 생성에 관련된 로직을 프로그램의 나머지 부분으로부터 분리하며, 코드의 유연성과 재사용성을 높인다. Abstract Factory 패턴은 생성(Creational) 디자인 패턴에 속한다. 이 패턴은 객체의 생성 과정을 추상화함으로써, 클라이언트가 특정 클래스의 인스턴스에 직접적으로 의존하지 않도록 하여, 시스템의 결합도를 낮추고, 확장성과 유.. 2024. 3. 24.
[디자인패턴] 생성 패턴(1) : 심플 팩토리(Simple Factory) 목차 심플 팩토리(Simple Factory) Simple Factory 패턴은 객체의 생성을 전담하는 클래스를 사용하여 객체 생성 과정의 복잡성을 감추고, 코드의 유연성과 재사용성을 높이는 디자인 패턴이다. 이 패턴은 객체 생성에 필요한 로직을 캡슐화하여, 클라이언트 코드가 구체적인 클래스 타입에 직접 의존하지 않도록 한다. 즉, 클라이언트는 생성하고자 하는 객체의 정확한 타입을 몰라도, 팩토리를 통해 필요한 객체를 얻을 수 있다. Simple Factory 패턴은 생성(Creational) 디자인 패턴에 속한다. 이유는 이 패턴이 객체 생성 과정에 초점을 맞추며, 인스턴스화 로직을 클라이언트로부터 분리하여 객체 생성의 책임을 담당하는 클래스(Factory)에 위임하기 때문이다. 따라서, 코드의 유지보.. 2024. 3. 24.
[디자인 패턴] 디자인 패턴의 역사와 종류 목차  디자인 패턴디자인 패턴은 소프트웨어 설계에서 반복적으로 발생하는 문제를 해결하기 위한 해결책을 체계적으로 정리한 것이다. 이러한 패턴들은 개발 과정에서 발생하는 다양한 문제에 대해 재사용 가능한 솔루션을 제공한다. 디자인 패턴의 역사와 발전 과정, 그리고 주요 패턴들에 대해 알아보자. 역사1987년: 컴퓨터 과학자 워드 커닝햄과 켄트 벡이 Smalltalk 언어를 사용하여 디자인 패턴에 대한 아이디어를 실험하기 시작했다. 이들의 작업은 객체 지향 프로그래밍 커뮤니티에 큰 영향을 미쳤다.1994년: 에릭 감마, 리처드 헬름, 랄프 존슨, 존 블리시디스 네 명의 저자가 "Design Patterns: Elements of Reusable Object-Oriented Software"라는 책을 출간했다.. 2024. 3. 24.
[소프트웨어공학] 결합도와 응집도 목차 결합도와 응집도는 소프트웨어 설계의 중요한 개념으로, 각각 모듈 간의 상호 의존성과 모듈 내부의 기능적 관련성을 나타낸다. 이 두 개념을 이해하고 구분하는 것은 효율적이고 유지보수가 용이한 시스템을 설계하는 데 필수적이다. 결합도(Coupling) 유형 결합도는 다른 모듈과 얼마나 강하게 연결되어 있는지, 즉 모듈 간의 의존도 수준을 나타낸다. 낮은 결합도를 유지하는 것이 바람직하다. 6가지 결합도 유형 ( 높은 결합도 => 낮은 결합도 👍 ) 내용 결합(Content): 한 모듈이 다른 모듈의 내부를 직접 참조하거나 변경하는 경우. 공통 결합(Common): 두 모듈이 같은 전역 변수를 공유하여 사용할 때. 외부 결합(External): 두 모듈이 외부 데이터 포맷이나 통신 프로토콜 등을 공유할 .. 2024. 3. 21.
[데이터베이스] 무결성 제약 조건 (Integrity Constraints : IC) 목차 1. 무결성 조건 데이터의 정확성 및 일관성을 보장하는 속성 데이터가 정확하게 저장되고 유지되도록 함으로써, DB 시스템의 기본적인 목표인 데이터의 신뢰성을 확보하는 데 중요한 역할 DB 무결성을 유지하기 위한 여러 유형의 제약 조건과 규칙이 있으며, 이러한 무결성은 크게 세 가지 주요 유형으로 나눌 수 있다. 이러한 규칙은 데이터의 추가, 삭제, 수정이 이루어질 때 적용되어 DB의 무결성을 유지하는 데 필수적이다. 2. 기본 무결성 규칙 다음은 기본적인 3개 무결성 규칙으로 각종 국가고시에도 출제되는 중요한 내용이다. 2.1 개체 무결성(Entity Integrity) 정의: 테이블의 모든 행은 유일한 식별자를 가져야 한다. 목적: 각 행(레코드)을 고유하게 식별하여 데이터 중복을 방지하고, 데이.. 2024. 3. 21.
[학습&생산성] 기억능력 향상시키기 (신체적 특징 활용) 목차 1. 신체적 특징을 활용한 4가지 기억력 증진 방법 다음은 앤드류 후버만이 최근 발표한, 기억력 증진을 위해 신체에 적용할 수 있는 4가지 방법이다. 참고자료 : https://www.youtube.com/watch?v=XQIVvTA4r2k 1-1. 감정을 이용한 학습 - 기억은 반복과 강한 자극으로 만들어낸다. - 여기서 자극의 강도를 높일수록 시간 절약이 가능하다. - 특히 감정을 활용해서 강한 자극을 만들어낼 것. 1- 2. 아드레날린 이용 아드레날린은 학습에 큰 영향을 미치기 때문에 잘 활용할 필요가 있다. 핵심 - 학습 중간 : 안정적으로 학습을 수행한 뒤 - 학습 직후 : 학습 직후 아드레날린 스파크를 낼 수 있는 활동을 추가한다. 종류 - 얼음물 자극 - 카페인 (학습 직후 15분 내).. 2024. 3. 20.