본문 바로가기

Programming66

[디자인 패턴] 팩토리 메소드 패턴 (Factory method pattern) ▶ 주제 : 팩토리 메소드 패턴 (Factory method pattern). 생성 패턴의 하나. 팩토리라는 인터페이스를 정의하고 인스턴스화를 해내는 부분을 서브 클래스에 위임하는 패턴이다. ▶ 관련 문서▷ 추상 팩토리 패턴▷ 위키피디아 ▶ 구조 팩토리 인터페이스를 정의하여 이를 서브 클래스가 상속받아 구현하는 형태이다. 서브 클래스는 Product 타입 객체를 생성하고 반환하는 createProduct 함수를 정의해야한다. ▶ 예시 아래 예시는 C#을 기반으로 작성하였다. public interface IFactory { IProduct CreateProduct(); } 팩토리 인터페이스를 정의한다. 인터페이스에는 특정 타입을 반환할 함수가 선언되어야 한다. public interface IProduc.. 2019. 3. 20.
[디자인 패턴] 복합체 패턴 (Composite pattern) ▶ 주제 : 복합체 패턴 (Composite pattern). 구조 패턴의 하나. 복합 객체 그룹(전체)과 단일 객체를 동일하게 취급하거나 다룰 수 있게 해주는 방식으로, 재귀적 특성을 띄며 트리(tree) 구조에 가까운 패턴이다. ▶ 구조 복합체 패턴의 구조는 크게 4가지로 분류된다.▷ 첫 번째 : 컴포넌트 인터페이스(추상클래스도 가능) : Leaf와 Composite를 같은 타입으로 취급하기 위한 인터페이스로써, Leaf와 Composite가 동일하게 가져야 할 함수를 여기에 선언한다.▷ 두 번째 : 리프 클래스 : 단일 객체를 표현할 클래스로, 그룹의 구성원 역할을 하며 트리구조로 따지면 가장 밑단에 존재하는 나뭇잎 역할을 한다고 보면 된다.▷ 세 번째 : 컴포지트(복합체) 클래스 : 복합 객체 그.. 2019. 3. 12.
[디자인 패턴] 빌더 패턴 (Builder pattern) 빌더 패턴 (Builder pattern)생성 패턴중 하나인 빌더 패턴에 대해 알아보자.시리즈2019.02.13 - [Programming/프로그래밍 이론] - [디자인 패턴] 싱글톤 패턴 (Singleton pattern)2019.02.14 - [Programming/프로그래밍 이론] - [디자인 패턴] 추상 팩토리 패턴 (Abstract factory pattern)2019.03.12 - [Programming/프로그래밍 이론] - [디자인 패턴] 복합체 패턴 (Composite pattern)2019.03.20 - [Programming/프로그래밍 이론] - [디자인 패턴] 팩토리 메소드 패턴 (Factory method pattern)빌더 패턴이란?클래스 설계에서 생성 부분을 분리하여, 객체를 깔.. 2019. 3. 9.
[C#] 프로젝트에 DLL 추가하기 ▶ 주제 : 프로젝트에 DLL 추가하기. C# 프로젝트에서는 DLL 파일을 참조 추가함으로써 다른 사람이 만든 라이브러리를 사용할 수 있다. ▶ 관련 문서 ▷ DLL 추출하기 [C#] DLL 추출하기 ▶ 주제 : DLL 추출하기 DLL은 간단하게 생각해서 라이브러리 파일 같은 것인데 Visual studio는 직접 DLL를 만들어 추출할 수 있는 기능을 제공한다. 기본적으로 프로젝트 단위로 DLL이 추출된다. ▶ 작성 환경.. spiralmoon.tistory.com ▶ 작성 환경 ▷ Visual studio 2017 ▶ DLL 참조 추가 방법 우선 프로젝트에 추가할 DLL 파일을 확보한다. 예시로 저번 포스트에서 추출한 LibraryExample.dll을 사용해서 진행 프로젝트를 열고 참조(Refere.. 2019. 3. 8.
[C#] DLL 추출하기 ▶ 주제 : DLL 추출하기 DLL은 간단하게 생각해서 라이브러리 파일 같은 것인데 Visual studio는 직접 DLL를 만들어 추출할 수 있는 기능을 제공한다. 기본적으로 프로젝트 단위로 DLL이 추출된다. ▶ 작성 환경 ▷ Visual studio 2017 ▷ C# project (project type : Class Library) ▶ 관련 문서 ▷ 프로젝트에 DLL 추가하기 [C#] 프로젝트에 DLL 추가하기 ▶ 주제 : 프로젝트에 DLL 추가하기. C# 프로젝트에서는 DLL 파일을 참조 추가함으로써 다른 사람이 만든 라이브러리를 사용할 수 있다. ▶ 관련 문서 ▷ DLL 추출하기 [C#] DLL 추출하기 ▶ 주제 : DLL 추출하기.. spiralmoon.tistory.com ▶ 예시 우선 .. 2019. 2. 15.
[디자인 패턴] 추상 팩토리 패턴 (Abstract factory pattern) ▶ 주제 : 추상 팩토리 패턴 (Abstract factory pattern). 생성 패턴의 하나. 비슷한 속성의 제품(객체)들을 인터페이스로 규격화된 공정(팩토리)에서 일관된 방식으로 생성하고, 생성된 제품끼리는 쉽게 교체될 수 있도록 고안한 패턴이다. ▶ 구조 추상 팩토리 패턴의 구조는 크게 4가지로 분류된다.▷ 첫 번째, 추상 팩토리 인터페이스(추상클래스도 가능) : 추상 제품을 생산하는 인터페이스 제공▷ 두 번째, 구현 팩토리 클래스 : 구현된 제품을 생산하는 방법 구현▷ 세 번째, 추상 제품 인터페이스(추상클래스도 가능) : 제품에 대한 추상적 인터페이스 제공▷ 네 번째, 구현 제품 클래스 : 팩토리가 생성할 구체적인 제품 ▶ 예시 기타(Guitar) 공장에서 통기타, 일렉기타 등 여러 종류의 .. 2019. 2. 14.
[디자인 패턴] 싱글톤 패턴 (Singleton pattern) 싱글톤 패턴 (Singleton pattern)생성 패턴중 하나인 싱글톤 패턴에 대해 알아보자.시리즈2019.02.14 - [Programming/프로그래밍 이론] - [디자인 패턴] 추상 팩토리 패턴 (Abstract factory pattern)2019.03.09 - [Programming/프로그래밍 이론] - [디자인 패턴] 빌더 패턴 (Builder pattern)2019.03.12 - [Programming/프로그래밍 이론] - [디자인 패턴] 복합체 패턴 (Composite pattern)2019.03.20 - [Programming/프로그래밍 이론] - [디자인 패턴] 팩토리 메소드 패턴 (Factory method pattern)싱글톤 패턴이란?객체지향 언어에서 프로그램 시작 후에 어떤 클.. 2019. 2. 13.
[C#] Task란? ▶ 주제 : Task란?. Task는 "작업" 혹은 "작업의 단위"를 뜻하며, C#에서는 Task 클래스를 이용하여 여러개의 작업을 동시에 관리하거나 비동기식으로 처리가 가능하다. public class Task : IAsyncResult, IDisposable Task는 인스턴스 가능한 클래스이며 IAsyncResult와 IDisposable을 상속한다. ▶ 예시 아래의 예시들은 Task를 이용하는 가장 기초적인 실행 방법들이다. ▷ Task 객체 초기화 시 Action을 파라미터로 넣어주는 방법using System; using System.Threading.Task; class Program { static void Main(string[] args) { var task = new Task(Prin.. 2019. 2. 8.
[C 프로그래밍] 연산자 - 산술 연산자 프로그래밍 언어에는 여러가지 연산자가 종류합니다. +, -, =, >, & 등등... 이번 포스팅에서는 초등학생 때 배운 산술 연산자를 강의하겠습니다. 더하기빼기 곱하기 나누기 나머지 +- * / % ​​ ​ 이 코드로 진행해보겠습니다. +연산은 설명할 필요도 없습니다. A와 B의 값을 더하는 연산자 입니다. 여기서 A는 100 B는 200입니다. 다른 연산자들도 사용 방법은 같습니다만 몇 가지 유의사항이 있습니다. ​ ​나누기 연산은 연산후에 나머지 값을 버립니다. 일반 수학에서 20을 3으로 나누면 6.66666...이 나옵니다만 컴퓨터 연산에서는 최대로 나눌 수 있는 횟수(20 / 3에서는 6)를 구하고 나머지 값(20 / 3에서는 2)를 버립니다. ​​ ​그렇다면 과연 나머지 연산은 무엇일까요? .. 2017. 2. 10.
[C 프로그래밍] scanf()로 값을 입력하자 헤더 파일 : stdio.h함수의 원형 : int scanf(const char *format, … ); 함수의 사용 방법 : scanf("형식 지정자", &변수);함수의 기능 : 콘솔창에서 변수에 값을 입력하는 함수 printf()가 출력 함수라면 scanf()는 입력 함수입니다. 코드 내에서 정해진 값이 아닌프로그램이 진행중인 상태에서 사용자의 입력을 받아 변수에 값을 대입하려고 하는 경우scanf()를 사용합니다. 이 불쌍한 예제를 봅시다. a가 선언되었지만 초기화가 되지 않은 상태에서 출력을 하려고 합니다. 실행해봅시다. 초기화가 되지 않은 변수를 출력을 하려고 하다니 당연히 오류가 뜨거나 쓰레기값이 출력됩니다. 위 소스에 scanf() 함수를 추가해줍니다. scanf("%d", &a)의 뜻은 변.. 2017. 2. 10.
[C 프로그래밍] printf()와 이스케이프 시퀀스 printf()함수는 문자열, 변수의 내용 등을 출력할 수 있었습니다. 위 코드를 적고 실행을 해봅시다.​ Hello World! 가 출력 되었습니다. 그런데 왜 \n는 출력되지 않았을까요?​ 그 이유는 바로 \n는 문자로 인식하는 것이 아니라,어떠한 역할을 수행하는 명령으로 인식하기 때문입니다.​​​​뒤의 \n을 지우고 다시 한번 실행 해봅시다. ​ 처음 실행 화면과 달리Hello World! 를 출력한 후에 줄바꿈이 되지 않았습니다. \n은 줄바꿈을 수행하는 명령어라고 이해하시면 됩니다. 이 처럼 printf()함수의 문자열 내에서어떠한 역할을 수행하는 \으로 시작하는 명령어를 이스케이프 시퀀스라고 합니다. 이스케이프 시퀀스는 \n만 있는 것이 아니라 \t 등 여러가지가 있습니다. (출처 : http.. 2017. 2. 10.
[C 프로그래밍] printf()와 형식 지정자 헤더 파일 : stdio.h​​함수의 원형 : int printf( const char *format, ... ); 함수의 사용 방법 : printf("문자열 또는 형식 지정자", 변수);​​함수의 기능 : 콘솔창에 문자열이나 변수 등을 출력하는 함수 ​​ ​​​변수 시간에도 자주 등장했었던 printf() 함수를 배워봅시다. 위 코드는 문자열 Hello World!를 콘솔창에 출력하는 코드입니다. ​​​성공적으로 실행되었습니다. 이처럼 우리는 printf() 함수를 이용하여 콘솔창에 무언가를 출력할 수 있습니다. ​​printf()함수는 출력할 문자열을 ""에 감싸서 재료로 넣어줍니다. 또한, 변수의 내용을 출력할 수 도 있습니다. ​​​위의 printf() 코드는 a의 내용을 출력하는 코드입니다. 여.. 2017. 2. 10.
반응형