본문 바로가기

Dev Story/C#

C# 영어문장 생성 프로그램 #1 (크몽 개발 의뢰건)

이번에 소개할 프로젝트는 영어 선생님으로 부터 의뢰 받은 건으로

영어 문장을 입력하게 되면 원하는 알고리즘으로 문장을 변형하여 구성하는

프로그램 이다.

프로그램설명

SOURCE 입력란 에 문장을 입력하면 RESULT 입력 란에 영어 문장이 생성 되는 프로그램 이다.

 

① 출제될 문제의 수를 설정 한 후 실행 버튼을 누르면 입력된 수 만큼 문제가 출제 된다.

② [A / B] 형태로 A는 정답 B는 오답으로 문제 생성될 대상을 인식 하도록 합니다.

① 에 설정한 숫자 만큼  ② 에 입력된 문장중 출제할 문제를 랜덤으로 출제 된다.

 

용어설명

 

C#: MS가 개발한 닷넷 프레임워크 (윈도우 프로그램 개발 및 실행환경) 안에서 실행되는

객체지향 언어 로 컴파일 되어서 실행 되며 자동적으로 메모리를 관리 해주는 (Managed Code) 형태 입니다.

 

 

클래스: 객체를 정의 해놓은 것 혹은 객체를 생성하기 위한 설계도 라 할수 있다.

아래 그림은 밑줄형 문장을 생성하기 위해 생성한 클레스 입니다. 

구성은 멤버변수 (전역변수로 클래스 내부혹은 외부에서 사용하기위한목적)

생성자(클래스가 생성될때 호출되어 지는 부분으로 주로 파라미터를 정의)

메서드(클래스 내부 함수로 정의되며 주로 행동 관련된 내용을 정의)

 

클래스는 붕어빵으로 비유를 많이 하는데 붕어빵을 만드는 틀을 클래스라고 하고 만들어진

붕어빵을 인스턴스 객체라고 한다 그 객체가 만들어지면 메모리에 할당되어서 의도했던

목적되로 데이터 처리가 가능 하다.

 

실제로 초보들이 여러워 하는 부분이 이 부분인데 코드가 메모리에 할당되어서

처리 되는 것을 조금더 살펴 보자

 

코드들은 메모리 영역(Stack, Heap)에 저장되어 CPU가 이를 가져다 명령을 수행 하는 구조 이다.  

C#에는 자료 형식에 따라 Value Type  Reference Type이 있는데 클래스는 Reference Type에 속한다.

 

Value Type: 값의 크기가 고정되어 있어서 (System.Int32 4byte) 생성시 즉시 할당 할수 있어서 

stack 영역에 저장되며 파라미터 형태로 값을 전달 할때도 값 자체가 복사 되어진다.

종류로는 int, double, float, bool 등의 기본 데이터 타입이 이에 속한다.

 

Refrence Type: 값의 크기가 가변적(메모리크기가 변동이 가능) 힙 영역에 값이 저장되고  

stack 영역에는 힙 영역에 저장된 데이터를 참조하는 주소 값이 저장되어 두 영역을 사용 한다

파라미터 형태로 값을 전달 할때는 stack 영역의 주소 값이 전달 되어 참조 하는 형식이 된다.

종류로는 object, string class, interface, delegate 등이 있습니다.

 

다음 내용은 2부에서 설명 하겠다.