Tag Archives: 프로그래밍

Visual Studio에서 SVN클라이언트 설치하고 사용하기

http://ankhsvn.open.collab.net/

이거를 설치한다.

그럼 이제 그냥 쓰면 된다.

프로젝트에 오른쪽 클릭하면 subversion 어쩌고가 뜬다.

view-repository explorer도 열 수 있다.

 

똘똘이svn가지고 연동하는 방법도 있는듯하다.

http://ssogarif.tistory.com/873

추천하지는 않는다. 귀찮은 방법이다.

잣은 갓 따서 원시인처럼 돌맹이로 깨서 먹어야 참 맛이 난다는 사람도 있지만…

언제 링크가 깨질지 모르겠지만 따로 퍼놓지는 않겠다. 그냥 별로 필요없을듯해서…

 

이클립스 윈도우 64비트에서 svn 설치하고 사용하기

이클립스에서 일단 svn을 설치

Help – Install 에서

네임 : Subclipse 1.6

주소 : http://subclipse.tigris.org/update_1.6.x

이렇게 추가해주고 대충 봐서 설치한다.

잘 모르면 다 하면 이런저런거 다 설치된다.  고민할 여유가 없고 용량도 많으니 고민 할 필요도 없다.

 

프로젝트에 우클릭 – Team – Share 클릭하면

다양한 에러메세지와 함께 오류를 토해낸다.

 

이 때 이걸 설치하면 된다능

http://subclipse.tigris.org/wiki/JavaHL

이라고 이클립스가 알려준다.

 

요기가서 64비트 윈도우를 클릭하면

Windows 64-bit

If you are using a 32-bit JVM, then Subclipse should just work. If you use a 64-bit JVM then you need to provide a 64-bit version of JavaHL. One such distribution is SlikSVN which you can get here:

http://www.sliksvn.com/en/download

With that package installed, Subclipse should find JavaHL on PATH and just work.

요렇게 써 있다. 이프유가 32비트 JVM을 쓰고있으면 섭클립스 그냥 일한다. 네가 만약 64비트를 쓰고 있다면 그 때는 64비트 JAVAHL을 내놔야 된다. 그냥 이거 깔어. 링크

OSx에서는 이렇게 하면 된다고 한다.

그 밑에는 리눅스도 있다.

OS X

The easiest thing to do is download and install the OSX package that is provided on openCollabNet. This installs Subversion, including the JavaHL library, into /opt/subversion. It then makes a symlink for the JavaHL library into /Library/Java/Extensions. This is a global location that the OSX JVM looks in when loading libraries via JNI. So basically, if you install this package, there is nothing else you need to do. It is OK to install this after you have installed Subclipse. These binaries are Universal including 32 and 64-bit variants which can be important if you use different JVM’s.

?MacPorts also provides an easy Subversion and JavaHL package, however on Snow Leopard ?MacPorts is still compiling these packages as simple 32-bit binaries. If you use the default Snow Leopard JVM which is 64-bit you will get an error like this when JavaHL is loaded:

 

Failed to load JavaHL Library.
These are the errors that were encountered:
no libsvnjavahl-1 in java.library.path
no svnjavahl-1 in java.library.path
/opt/local/lib/libsvnjavahl-1.0.0.0.dylib:  no suitable image found.  Did find:  /opt/local/lib/libsvnjavahl-1.0.0.0.dylib: mach-o, but wrong architecture

Note the error about wrong architecture. This is because the 64-bit JVM cannot load a 32-bit native library. The ?CollabNet binaries for OSX do not have this problem because they include both 32-bit and 64-bit versions.

 

JAVAHL만 선택해서 설치할수도 있고 뭐 다 깔아도 된다. 용량도 많은데 그냥 티피컬 OKOKNEXT 하면 된다.

 

이렇게 하면 진짜 된다.

2011.09.30 새벽

Eclipse Indigo에서…

알고리즘 자료구조 부분 순서 대략 정리

숫자 진수변환

스택과 큐

배열과 연결리스트

데이터 구조 – 트리, 이진트리, 그래프

다익스트라

해시테이블

하노이탑, 퍼펙추얼 무브먼트

프렉탈

Sort – 버블정렬, 선택정렬

검색 – 선형검색, 이진검색

인공지능탐색 – 체스나 퍼즐 등에 사용

패리티 비트

압축

암호화

튜링기계

C# 책을 쓴다면 목차와 분류

분류

1. 꼭 외워야 할 부분.

2. 읽어보고 찾아보면 될 부분

이 부분 궂이 쓸 피요 없음..MSDN검색방법으로 처리…

C언어 C++공부 해 본 사람 대상으로 200페이지 미만, 2만원 미만 책으로 완성하는게 목표.

가능하면 어플로도 출시.

 

목차 – 1. 꼭 외워야 할 부분

1. 콘솔 예시 Hello World

프로그램 구조 설명, WriteLine함수, 명령어 설명, HelloWorld문자열 설명, 세미콜론, 네임스페이스

…등 모든 부분

2. 변수

int, decimal까지만 변수 기본개념, 메모리 공간할당 개념, ConsoleWriteLine를 통한 변수출력연습.

3. 데이터 타입과 변수의 종류

데이터 타입의 종류, byte에서부터 ulong까지…decimal까지…bool…

System.String, System.Int32 등의 객체도 설명. int와 System.Int32의 차이 등..

4. 문자열

char string의 사용법..Console.WriteLine으로 사용법, string의 선언과 사용법..

string는 c언어의char[]과 어떻게 다른가. 문자열의 +결합.

5. Console.WriteLine의 서식 사용

Console.WriteLine(“{0}아아아{1}마마마{2}”,3,’A’,”안녕”); 사용방법 설명.

Console.WriteLine(“{0,5:C}”,10000); //이렇게 하면 출력은 10,000W 이렇게 된다.

http://msdn.microsoft.com/ko-kr/library/828t9b9h.aspx

6. 배열

배열 선언방법 1차원 배열 int [] arr

2차원 배열 int [,] arr

3차원이상… int [,,] arr

재그 배열

int [][] arr

7. 열거형

enum Fruits { 사과, 배, 당근}

숫자대입하는거나 등등

8. 연산자 종류

ㄱ.산술 연산자

ㄴ.증가감소연산자

ㄷ.논리연산자

ㄹ.비트연산자

ㅁ.대입연산자

ㅂ.비교연산자

ㅅ.논리연산자

ㅈ.연산자우선순위

9.데이터의 형변환

ㄱ. (char),(double), 사용자정의자료형의 형변환, object의 형변환.Convert.ToChar()

ㄴ. 오버플로우시.. checked, unchecked로 오버플로우 무시하거나 예외 발생시키기

10. 제어문

가. 반복문

ㄱ. for

ㄴ. while

ㄷ. do~ while

ㄹ.foreach

ㅁ. continue, break를 함께 포함.

나. 분기문

ㄱ.조건 연산자

bool selector;

int a = selector ? 0 : 1; //selector가 참이면 0 거짓이면 1이 대입된다.

ㄴ. if ~ else

ㄷ. if ~ else if~ else if~ 반복시키기

ㄹ. switch

11.클래스, 객체

ㄱ. 클래스 개념,

ㄴ. 객체 개념, 객체 생성 방법

ㄷ. 생성자

ㄹ. 필드, 멤버, 메소드,프로퍼티 등 용어와 정의, 사용법, 예제

ㅁ.public,private,protected,internal

ㅂ. 범위(scope)

12.메소드 호출 및 클래스 사용방법 예제포함

13. 오버로드

 

14. 프로퍼티(속성)과 인덱서

15. 상속개념

ㄱ. 기본개념, object클래스와 상속

ㄴ. is a, has a

ㄷ. public, protected, private 멤버의 상속

ㄹ. sealed, static 등의 수식어와 상속

ㅁ. 상속이 되면서 생성자와 소멸자의 호출

ㅂ. base 클래스의 멤버와 같은 이름을 new를 이용해서 생성. base 를 이용해서 base 클래스의 멤버를 호출

base.add 이런식…

ㅅ. 함수의 오버라이드 virtual과 override

ㅇ. 속성의 오버라이드 virtual과 voerride – 각각 이름 인수 반환값의 형이 같아야 함

ㅈ. override와 new

16. 구조체 struct

17. Call by value Call by Reference, ref, out

18. abstract추상 클래스, 추상 메서드

19. 인터페이스

20. 다형성

21. 박스화

22. delegate와 이벤트

23. 제네릭 함수, 제네릭 클래스

class AAA <T>
{
  public T t;
  public T x()
  {...........}
}

AAA <int> aaa = new AAA<int>();
/////////////////
T를 int로 치환한것과 같은 효과
public int t;
public int x()

class AAA <T,Y>
{
  public T t;
  public Y y;
}
AAA <int, string> aaa = new AAA<int,string>();

AAA<int,string> aaa = new (visual studio를 쓴다면 new까지만 치고 탭 누르면 자동완성해준다)

24. 예외처리 try catch finally

25. MSDN찾는 방법.

ㄱ. Console.WriteLine

ㄴ. Stream

ㄷ. 문자열처리

이벤트핸들러EventHandler

public class CalcEventArgs : EventArgs
//우선 이벤트를 넣을 클래스를 만들기.
//멤버가 없는 클래스인 EventArgs를 상속받아야됨

class Calculator
{
public event EventHandler CalcStock;
//이벤트를 발생시킬 Calculator클래스 안에서
//이벤트 키워드를 이용해서 이벤트 핸들러를 선언
public void Calculator(()
}
----------------
///////////////////////////////////////////////
delegate void CustomEvent();//delegate 선언

class EventClass
{
  public event CustomEvent customevent; //event선언
  public void Start()
  {
    if (customevent != null)
    {
      System.Threading.Thread.Sleep(1000);
      customevent();
    }
  }
}

class CustomSample
{
  static void handler()
  }
    Console.WriteLine("핸들러호출");
  }
  static void Main()
  {
    EventClass e = new EventClass();
    e.customevent += new CustomEvent(handler);
    e.Start();
  }
}
///////////////////////////////////////////////

이런식인듯… 외워야지… 필요할 때 찾아쓰는 용

HashTableSample해쉬테이블 사용 예제Example

해쉬테이블은 문자열 이름으로 소환되는 배열을 만들 수 있다.

public static Hashtable htHoga = new Hashtable();//htHoga라는 HashTable객체를 생성한다.

//ToolCS.CodeArray.Futures, Spreads는 종목코드를 갖고 있는 배열이다.

        const int 호가개수 = 5;
        public void HogaInit()
        {
            for (int i = 0; i < ToolCS.CodeArray.Futures.Length; i++)
            {
                htHoga.Add(ToolCS.CodeArray.Futures[i], NewHoga(ToolCS.CodeArray.Futures[i]));
            }
            for (int i = 0; i < ToolCS.CodeArray.Spreads.Length; i++)
            {
                htHoga.Add(ToolCS.CodeArray.Spreads[i], NewHoga(ToolCS.CodeArray.Spreads[i]));
            }

        }

        FutHoga NewHoga(string code)
        {
            FutHoga aHoga = new FutHoga();
            aHoga.종목코드 = code;
            aHoga.매도호가 = new double[호가개수];
            aHoga.매수호가 = new double[호가개수];
            aHoga.매도잔량 = new int[호가개수];
            aHoga.매수잔량 = new int[호가개수];

            for (int i = 0; i < 호가개수; i++)
            {
                aHoga.매도호가[i] = 0;
                aHoga.매수호가[i] = 0;
                aHoga.매도잔량[i] = 0;
                aHoga.매수잔량[i] = 0;
            }

            return aHoga;
        }

public struct FutHoga
    {
        public string 종목코드;
        public double[] 매도호가;
        public double[] 매수호가;
        public int[] 매도건수;
        public int[] 매수건수;
        public int[] 매도잔량;
        public int[] 매수잔량;
    }

그냥 내가 쓰던거 그대로 갖다 붙여놓은거…

나중에 꺼내쓸때는 htHoga(“101F6”);

이렇게 입력하면… 101F6는 Futures의 배열값을 꺼내준다.

원래 여기저기 다른 클래스랑 네임스페이스에 퍼져있던 코드를 모아놓은거라서…이거 그대로 붙여넣는다고 동작은 하지는 않겠지만… 참고정도는 될듯…

보정을 해야되는데 좀 귀찮은듯…

 

((Structs.StoHoga)Stock.htHoga[Code]).매도호가[i] = 500원

//이런식으로 꺼내쓸 수 잇다.
좀 복잡해보이지만.... 잘 생각해보면 어렵지는 않다.
배열을 문자열로 조회해야 하는 경우에 정말 유용하다.
(Struct.StoHoga) 헤쉬테이블은 오브젝트 형태로 저장되기 때문에 구조체 형식으로 강제로 형변환을 해 줘야한다.
그리고 ()괄호로 한번 더 감싸주면.... 구조체로 변신~
그리고 구조체처럼 쓰면된다.

 

식별자identifier

데이터, 함수, 프로그램 등에 각각을 식별할 수 있는 이름을 붙인다.

 

이 이름을 식별자라고 한다.

 

변수variable와 함수function에는 항상 이름이 있다.

int num1; //이 변수의 식별자는 num1

void AddNum(int x, int y);//이 함수의 식별자는 AddNum

class People//이 클래스의 식별자는 People

{

}

식별자는 그냥 편하게 이름이라고 부르는 경우가 많다.

 

식별자는 대부분의 경우 이 규칙을 따른다.

첫 글자는 a~z, A~Z, $, _ 이것들만 사용가능

첫글자가 아닌 곳에는 0~9도 사용가능

1num, 2_aaa 이것들은 안되고

num1, $aaa, _num1 이것들은 된다.

 

유니코드가 지원되는 C#, Delphi 등의 최신 컴파일러에서는 한글 이름(식별자)도 사용가능하다.

int 계좌잔고 = 10000;

 

대부분의 언어에서는 대소문자를 구분한다.

Add 와 add는 다르다.

 

옛날 언어중 하나인 turbo pascal에서는 대소문자를 구분하지 않고 앞에서 8글자까지만 구분을 한다.

Add와 add는 같고 abcdabcdjkjlk abcdabcdabcd 이 두개가 같은 이름으로 인식된다.

 

언어별로 차이가 있긴 하지만 이 포스팅에 있는게 표준으로 대부분 언어가 이것을 따른다.