Tag Archives: 프로그래밍

예약어reserved word = 키워드key word

예약어란

각 언어에서 미리 어떤 의미로 사용하기로 정해놓은 단어들을 의미한다.

이 단어들은 변수로 사용할 수 없다.

 

쉽게 말해서 VisualStudio, Eclipse 등의 ide에서 입력하면 색이 변하는 단어들은 거의 예약어이다.

 

외울 필요는 없고.. 쓰다보면 알게된다.

abstract, class, new, include, int, double…등의 단어들… 각 언어마다 정해진 예약어가 있다.

 

예약어들이 흔히 쓰일 수 있는 단어들이라서 무심코 사용하게 되는 경우가 간혹 있다. 최근에는 ide에서 예약어를 입력하면 색이 변하기 때문에 그런 실수를 잘 하지는 않지만…. 그래도 조심해야한다.

new는 예약어이지만 newNum1, cntinclude 등의 이름은 사용이 가능하다. 그래도 이런 식으로 이름을 지으면 헷갈릴 수 있으니 되도록이면 피하는게 좋다.

 

C# 프로젝트간 데이터 교환

인터넷에 검색 해 보면…

포트를 열고 통신을 시킨다던가

파일로 공유한다던가… 다양한 방법이 있는 것 같다.

내 경우에는 실시간으로 이뤄져야 하고 용량이 커서 파일 공유는 문제가 있었다.

그럼 메모리를 통한 공유도 문제가 되고..

문제상황:

갑 프로젝트에서 컨트롤하는 을1, 을2, 을3 프로젝트가 있다.

갑프로젝트에서 을1,2,3프로젝트의 함수를 호출한 후 나온 데이터를 처리한 후 갑 프로젝트로 보내줘야한다. 갑 프로젝트는 데이터를 받으면 바로 처리를 해서 화면에 띄운다.

리턴형태로 보내줄수도 있지만…. 리턴형태로 하나하나 해주다 보니 너무 복잡해진다. 그래서 데이터를 편하게 주고받을 방법을 찾아보려고… 생각한게 새 프로젝트..

요구사항:

데이터를 자유롭게 공유할 수 있어야 함.

빠른 공유가 가능해야함.

데이터가 변경될 때 마다 이벤트를 줄 수 있어야함

public static class ClsData//공유용 클래스...
{
  public static DataTable dtbl공유용;
  public static int a;
}

클래스라이브러리 프로젝트를 대강 이런식으로 만들어서 양쪽에서 사용했다. 스태틱으로 선언하면 양쪽 프로젝트에서 접근해도 같은 값을 유지한다. 새로운 객체가 생성이 안되니까..

이벤트를 전달할 수 없다는게 아쉽긴 했지만….

이벤트를 전달하지 못한다는 점에서 완벽한 해결책은 아니다.

포트통신으로 하면 왠지 어려울것같고.. 불편할 것 같고….

……..뭔가 꼬이긴 했는데 … 다시 만들기도 그렇고.. 다시만들어도 똑같은 꼴이 날 것 같고… 어떻게든 고쳐서 쓰긴 해야겠는데…

일단은 이정도로 만족해야할 듯 하다.

이벤트를 전달할 방법만 찾으면 될듯 싶다.

함수화 변수의 유효범위

{

}

중괄호로 포장된 사이에 있는것은 그 사이에서만 Local변수로 성립한다.

int i=3;
for(int i=0;i<5;i++)
{

}
Console.WriteLine(i);

여기서 콘솔창에 출력되는 i는 3이다. 0이나 4가 아니고…

이런것이 변수의 범위…

함수의 범위도 그냥 쉽게 생각하면된다

클래스 안에서는 자유롭게 사용가능하고… C#은 그냥 상식적이고 논리적으로 만들었다.

생각하는대로 하면 그게다 그거임…

 

객체지향 프로그래밍OOP,Objective Oriented Programming

말 그대로 객체지향 프로그래밍…

C++,C#,JAVA등을 이용하여 객체지향적인 프로그래밍을 하는것이다

절차지향적인 C나 포트란 등과 다른점은….

처음에서 끝으로 이어지는 순서를 갖고 있는것이 아닌

객체에서 객체로 연결되는… 왔다갔다 정신없는 프로그래밍이 가능하다는 것이다

객체지향이기에 멀티스레딩이 가능해진다? 편리해지는건가…

도스와 같은 한번에 한가지 작업만 할 수 있는 시스템에서는 절차지향으로 충분했는데

윈도우처럼 멀티태스킹이 가능해지고 하면서…. 객체지향이 더 중요해졌다는 것 같다.

전공자가 아니면.. 프로그래밍 하는데는 별 상관없는 지식인 것 같다.

객체Object와 개체entity,Instance

개체 >= 객체  >= 인스턴스

라는데…

아직도헷갈린다

클래스를 인스턴스화 하면 객체가 된다.

개체는 사물처럼 모든 개개의 사물과 생물들이 될 수도 있고 하나하나를 의미한다.

하나하나의 개체들…

객체는.. 좀 개념적인 의미로.. 프로그래밍에서 쓰이는것..

 

재귀 함수recursive function

재귀함수…

가끔 써야 할 때가 있기는한데…

여러가지 다른 방법을 통해서 재귀를 피해갈 수있다

재귀함수를 90번정도 돌리니까…stack overflow 오류가 나버린다.

이건 별 수 없다

그냥 재귀를 안 쓰면된다.. 어떤 상황도 재귀를 안 쓰고 해결할 수 있다.

고 생각한다.

 

잘 기억이 안 나는데 어떤 알고리즘은 재귀를 통해서 매우 쉽게 풀렸던것같은데…

객체를 두개 생성하고 컨트롤 객체를 하나 더 생성해서 세개 객체를 이용해서 돌리면 해결 가능하지싶다.