1월 12, 2015의 게시물 표시

C#의 HashTable, indexer를 알아보겠습니다.

이미지
안녕하세요 메르세데스입니다. 이번시간에는 C#에서의  HashTable, Indexer를 알아보겠습니다. 이것도 역시 컬렉션중에 하나죠.. 지난시간에 했었던..stack,queue처럼 말이죠.. 이름이... 무슨.. 알고리즘비슷한것 같네요..   1.Hashtable  빠르게 탐색이 가능한 특징이 있습니다. 또한 어떠한 형식으로도 키를 지정할 수 있는 특징이 있습니다 예를들어.. hash[1] = "test"; hash["asdf"] = "aaa"; 이런 표현이 가능하다는거죠.. 탐색이 상당히 빠르다고하니.. 한번 써보시는것도 좋겠네요.. 2.Indexer 이것은 인덱스를 이용해서 객체내의 데이터를 접근하게하는것입니다.   전시간에 프로퍼티를 배웠었는데 그것과 비슷하다고하네요 프로퍼티를 사용할때는..   get{...} set{...} 이런식으로 했었던기억이 나는데요.. 식별자에 index라는 형식을 넣어서 하는것이 다릅니다. 예제를 만들어서 한번 돌려봤습니다. 이것도 마찬가지로 System.Collections를 추가해주셔야하겠죠.. 클래스를 만들어서..  public int this[int index]  이렇게 인덱서를 만들어 넣어놓고요.. public int Length 로..또한 만들어 놨습니다.. 프로퍼티같네요..  그래서 메인클래스/메소드부분에서..  list객체를 생성하면서.. 마치 배열처럼 값을 넣었네요.. 위에서 그렇게 선언했기때문에 가능하겠죠.. 또한.. 출력부분에서  public int Length로 만들어놓은것을 길이체크하는것으로 지정했네요.. 배열의 길이체크하는 것처럼..  MyList에서 프로퍼티로 만들어놓았네요.. 그래서 길이만큼 루프를 돌려서  list[i]으로 배열처럼 값...

티스토리 구글애드센스 달기 카테고리 상,하단광고넣기

이미지
안녕하세요 메르세데스입니다. 이번시간에 알아볼 것은 티스토리의 구글광고 삽입하기중.. 카테고리 목록의 상, 하단에  넣는것입니다. 구글정책에따라 한 화면에  최대 3개까지 적용할 수 있기 때문에 정책에 위배되지 않는 범위내에서 최대한 배너를 달아 수익을 극대화 하셔야겠죠.. 한편으로는.. 애드센스 정책에 위반되지 않도록 화면설정부분도 신경을 써 주셔야합니다.  한페이지에 하나의 포스트만 보이도록 설정을 하셔야겠죠.. 일단 첫번째 시간으로..  카테고리영역을 선택하였을 경우에  표시하는 방법입니다. 광고달기에 앞서 구글애드센스가 가입되어 있으셔야겠죠..^^   이것 적용하면.. 아래화면과 같이 .. 카테고리항목을 선택하면.. 위 .. 아래로  적용이 됩니다. 대개는 네이버나 구글 다음등의 포털에서 키워드나 블로그의 검색을 통해서 블로그로 들어오시기 때문에 바로 포스팅글과 연관이되어..직접적으로 노출이 되지 않아 큰 효과를 기대하기는 어렵지만.. 꾸준함과 성실함으로 블로그를 잘 운영하신다면.. 같은 카테고리안에 있는 다른 글 들도 검색하여 보시지 않을까? 하는 기대감이 있기때문에 ^^ 우선 관리자메뉴로 들어갑니다. HTML/CSS 편집을 누르신 후  Skin.html 소스에서 ctrl+f를 이용해서..  list_conform  를 찾으시면 됩니다. 위 아래로  아래보이는것 처럼 넣어주시면 되겠습니다. 위에쪽에 게재해주시면.. 카테고리의 상단에 아래쪽에 넣어주시면.. 카테고리의 하단에 게제가 되겠습니다. 자신의 티스토리 홈페이지의 테마등에 맞는 것을 선택해서 넣어주시면되겠습니다. 저는 큰걸 좋아해서..ㅎㅎ 사이즈가 홈페이지에 비해 작아 왼쪽으로 치우치는게 보기 싫어서.. 가운데 정렬하고 싶으시다면..  <...

C#에서 말하는 Queue , Stack을 알아보겠습니다.

이미지
안녕하세요 메르세데스입니다. 요즘한창 열심히 C# 공부를 하고있는데요.. 이번시간에 알아볼 것은 Queue와 Stack입니다. 대학교 컴퓨터공학전공시절에 수도없이 들었던 내용인데요.. 프로그램개발을 하면서.. 써먹어본적이 없었네요;; 근데 실생활에서는 자주 사용이되고있습니다.   이것을 저도 개발하는데 적용해서 하였다면 뭔가 효율적이고 획기적으로 개선할수 있었던것이 분명있었을텐데 역시.. 책을 한번 정독하면서 배운거랑 어께넘어러 편법?위주로 배워온 것이랑 많이 다른것 같습니다.   1. Queue (대기열..) 프린터기 스풀이라던가.. 버퍼링같은데에.. 순차적으로 작업이 필요한것들에 들어갑니다. 먼저들어온것들을 들어온 순서대로 작업하는것이지요..    데이터를 입력하는곳과 데이터를 꺼내사용하는것이 다릅니다. 입력은 뒤에서 하고.. 출력은 앞에서..합니다. [ 1 ] [ 2 ] [ 3 ][ 4 ]    <- Endqueue (이 메소드를 통해서 입력] 값을 insert하는 예.. 반대로 출력같은경우.. Dequeue()메소드를 이용해서 데이터를 꺼내게되는되요.. 꺼내지고나면.. 사용한 데이터는 삭제가됩니다. Queue qu = new Queqe(); … Console.WriteLine(qu.Dequeue()); 이런특징이 있어서 흥미롭네요..  강의시간에는 별로흥미롭지 않았는데말이죠..ㅜㅜ Queue를 사용하려면 using System.Collections;를 추가시켜주신 후 사용이 가능합니다. 컬렉션중에하나죠..   예제에서처럼.. 큐에 데이터를 넣은후.. while문으로 안에있는 갯수만큼 반복하면서 Dequeue()메소드를 실행하니 값을 콘솔창에 찍어주면서 데이터가 사라져버리는게 확인이 됩니다.. 2.St...

C# 컬렉션(collection)의 ArrayList 를 알아보자!

이미지
 C#에서 Collection을 알아보도록 하겠습니다.  정의하기를... 같은성격을 띄는 데이터모음을 담는 자료구조다! 라고 말하고있습니다. 배열과 가장 닯아있는 collection중에 ArrayList가 있습니다. 이 것을 사용하려면.. using System.Collections;를 추가해 주신다음에 사용하실 수 있습니다. 델파이에서 TStringList와 비슷한 것 같네요..  가장 큰 특징이라면..  용량을 지정할 필요가 없이 추가할때마다 알아서 자동으로 늘어난다는것입니다. 편리하겠죠.. 또한.. 형식에 얽메이지않고..  여러가지 형태의 자료형을 담을 수 있습니다. (Object형이기에..) 하지만  object형식으로 자료를 Boxing, UnBoxing을 이용하여 데이터가 처리되기때문에 데이터가 많아질 수록 성능저하가 일어날 수 있다고 하네요.. 선언형식과 값을 넣고 빼는작업을 하려면 아래와 같이 하시면됩니다. 생각보다 간단하죠..? 하지만 데이터가 많아지면.. 성능저하가 일어날 수 있다고하니.. 사용하는데 망설여지네요.. int형뿐만아니라.. string 형의 데이터도 위와같이 하면.. 에러없이 잘 들어갑니다. 자주사용하는.. 메소드가 3개인데요.. Add(), RemoveAt(), Insert() 이렇습니다. 예제를 통해 한번 돌려보아서.. 살펴보겠습니다. 순차적으로 숫자를 0~4까지 집어넣었고..   인덱스값 2에 해당하는.. 2를제거하고..( 0,1,2,3,4 죠..인덱스는..) 2번인덱스에 "테스트"를 집어넣어보기도하고.. add를 이용해서 값을 추가해보기도 하였습니다. *Add()의 경우 가장마지막리스트 아래에 추가하는것입니다. *RemoveAt() 는.. ()안에 입력한 인덱스번호에 해당하는 것을 지워버리는거죠.. *Insert() 는...

C# 가변배열을 알아보자!

이미지
이번시간에 알아볼 것은 C#의 가변배열입니다. 그동안에 알아왔던 것과 좀 다른데요.. 좀 특이합니다. 한마디로 표현하자면...  배열을 갖는  배 열 ? 이라고 하겠습니다. Jagged Array라고하는데.. Jagged라는 말이 들쑥날쑥하다라는 뜻이죠.. 들쑥 날뚝한.. 게임의 철퇴 종류의 아이템이 생각나는건.. 저 뿐일까요?ㅎㅎ 기존의 고전 언어에비해 편리함이 추가가된 형식이어서.. 아무래도 가장 나중에 나온 언어니까요.. 알아보도록 하겠습니다. 선언을 할때는..  2차원 Array 을 선언하는 것과 비슷하게 보이지만 엄연한 차이가 있습니다. 데이터형 [][]  Array명 = new 데이터형[JaggedArray사이즈][]; int [][] array = new int [3][]; array[0] = new int[3]{1,2,3}; array[1] = new int[]{5,6,7}; array[2] = new int[]{10,300}; 2차원 이라면.. [ , ] 이런식으로 표현을 했죠.. int[ , ] array = new int[2,1]{... }  햇갈리지 않도록 유의해야겠습니다. 가변배열의경우 각선언된 Array의 각 요소의 크기가 다른 배열을 할당하는것이죠..   선언과 동시에 할당할 수 도 있습니다. 위에는 선언을 하고 아래에 값을 할당한것이죠.. new생성자를 사용해서 바로 할당하면 됩니다.. int[][] array2 = new int[2][]{  new int[]{10,20,30},                                             ...

C#, Array 배열을 알아보자...

이미지
C#, 배열을 알아보자... 이번시간에 알아볼 것은 배열입니다. 모든 프로그램언어에서 기본이죠.. 데이터를 다루는 것을 많이 해보셨다면 이것 없이는 정말 불편했을것입니다. 각기 언어들마다  표현하는 문법들이 다르기 때문에 여러 언어를 접해보셨다면 햇갈리실 수도 있겠네요.. 저도 줄곧 델파이만 사용해오다가 C#에 입문해서 이것저것 해보다보니 햇갈리고.. 델파이 문법까지도 햇갈리기 시작하고 있습니다. ㅜㅜ 기본 표현 문법표현을 알아보겠습니다. new연산자를 이용하여 int[] 타입의 객체에  사이즈가 10인  배열 을 할당해주는것이네요.. 객체지향에 눈이 슬슬익어가네요.. 객체지향언어에서는 모든것을 객체로 표현할 수 있다죠..^^; 10개의 공간을 갖는 배열을 만들지만.. 다들 잘 아시겠지만.. 인덱스번호는 0번부터~9번까지 10개죠.. C#에서는 배열을 좀 편하게 다룰 수 있는 foreach문이 있습니다.  물론 for문이 나쁘다는것은 아니지만..   foreach문에는 해당하는 사이즈만큼 이라는 문구가 생략이 되어있어.. 타이핑을 좀 덜치고 프로그래밍을할 수 있어 정말 편한 것같습니다. int sum = 0; foreach( int ary in array)     sum += ary; 이것을 초기화하는 방법을 알아보겠습니다. 셋다 같은 표현입니다. 세번째 방법은 정말 간단해서 좋습니다^^; new생성자까지 생략이 가능합니다.. 예제야.. 그냥 일반 변수를 모와놓은 것이기 때문에 큰 의미는 없을 것같고요.. 도움이되는 메소드를 알아보는게 좋겠죠.. 가령 이런거 있잖아요.. 정렬을 한다던가..  Array 안의 인덱스를 안다던가 같은거요.. Sort() : 정렬을 합니다.  (메소드) Index...