2010년 10월 27일 수요일

C# 공부한거 정리 #2

Collection

 

IEnumerable

IEnumerator - 내부 데이터 접근 Interface (Iterator)

-- Current

-- MoveNext()

-- Reset()

ICollection

-- int Count - 객체 수

-- bool IsSynchronized - 접근 동기화

-- object SyncRoot - 스레드에서의 동기화 객체 반환

-- void CopyTo - Collection -> Array

IList Property

- IsFixedSize - 고정 길이 리스트 체크

- IsReadOnly - 읽기전용 체크

- this[index] - 인덱서

IList Method

- Add(object) - 추가

- Clear() - 싹다제거

- Contains(object) - 존재 체크

- Indexof(object) - 위치반환

- Insert(index, object) - 데이터 삽입

- Remove(object) - 객체 제거

- Remove(index) - 그 위치 객체 제거

IDictionary Property

- IsFixedSize

- IsReadOnly

- Keys - 키 전부 나열 - 키는 유일해야 한다

- Values - 값 전부 나열

IDictionary Method (e.g. Hashtable)

- Add(key, value)

- Clear

- Contains(key) - 연관성 검사

- GetEnumerator() - 나열을 위해 인터페이스 반환

- Remove(key) - 키로 지움

IDictionaryEnumerator Property

- DictionaryEntry - 키, 값 반환

- object Key - 키 반환

- object Vaule - 값 반환

 

 

 

대표적 Collection

- ArrayList  - vector

- Hashtable  - map ( object, value )

- SortedList - key기준 정렬, key검색활용

- Queue - Enquere(), Dequeue()활용

- Stack

- NameValueCollection

---- System.Collections.Specialized

---- String, String 형 맵

 

 

 

 

Generic

- 초기의 C# : Object의 Upcasting을 활용하여 제너릭이 필요가 없었다.

- 제너릭 도입 이유 : 형식 안정성, Object : 캐스팅 낭비 없앰, Value : Boxing/UnBoxing 부하가 없음

 

Collection의 Generic변환

ArrayList -> List<T>

Hashtable -> Dictionary<T>

SortedList -> SortedDictionary<T>, SortedDictionary<K, V>

Stack -> Stack<T>

Queue -> Queue<T>

 

Exception

finally : 예외처리 여부와 상관없이 무조건 실행되는 문장

 

Stream

- I/O stream

- File stream

---- File, Directory - static ( 객체 생성할수 없다 )

---- FileInfo, DirectoryInfo -  객체 생성 활용 가능

FileInfo fi = new FileInfo(@"c:\test\a.txt"");

fi.CopyTo(@"c:\test\b.txt\");

 

File Class (public sealed class ), using System.IO

File.Copy(src, dest, overwritted여부(true/false))

bool exist = File.Exists(src);

DateTime dt = File.GetCreationTime(src);

 

 

 

- File Class

OpenRead(src);

OpenText(src);

OpenWrite(src); 등등

접근 방식

StreamReader r = new StreamReader (fs, System.Text.Encoding.Default);  // 문자스트림 변환

r.BaseStream.Seek(0, SeekOrigin.Begin); // 커서 위치를 첫부분으로

r.Peek() == -1 // EOF check

r.ReadLine() -> 파일스트림에서 Line단위 읽기

r.Write(byte[], 0, byte[].Length)

 

r.Flush();

r.Close() -> 스트림 닫기

 

SeekOrigin 열거형 상수 - Begin, Current, End

 

- Directory Class

 디랙터리 생성, 이동, 삭제등을 위한 Class

- Path class

파일 디렉토리 경로 확장, 변경 수정 클래스

 

 

- BuffedStream

Default : 4096 Bytes

 

- MemoryStream

메모리 대상 Stream

 

- BinaryReader, BinaryWriter

데이터 타입의 크기만큼 데이터를 저장 & 읽을때 사용하는 스트림 ( FileStream의 데이터 단위 스트림 )

 

- TextReader, TextWriter

문자 스트림 입출력관장 최상위 추상 클래스

 

- StringReader & StringWriter

public class StringReader : TextReader

public class StringWriter : TextWriter

 

- StreamReader & StreamWriter

ByteStream->CharacterStream

 

 

 

 

 

 

 

 

 

 

C# 공부한거 정리 #1

C/C++ 호환성을 위해 사용

pointer - unsafe, fixed

struct - stack에 memory allocation

 

Garbage Collector - heap 관리

 

Type

- Value type(Built-in type)

- Reference Type : Class Object

- readonly 추가 (const 비슷함)

 

전달법

- Call by Value (Value Copy)

- Call by Reference (ref, out)

 

Class 추가 기능

Access Identifer 추가

- internal

- protected internal

Property 추가 (set, get) - set 인자 value

sealed - 상속금지

Overriding-

-- new public void Method() 활용법

-- base : 상위접근

Polymorphism

-- abstract // overlide

-- Interface

-- Upcasting (객체의 묵시적 캐스팅)

 

Casting

-- Object 형? - 모든 object가 가지는 최상위 class

-- Boxing : value -> ref 변환 // UnBoxing

 

Delegate

-- 활용? 함수포인터 // 쓰레드/이벤트 제어 --> 캡슐화

 

계약적 다형성 (Contract)

-- Interface활용 ( 빌더 패턴과 유사? )

 

배열 생성법

int[] name = new int [10];

배열 선언후에는 하나씩 할당하는 방법이외에 다른 방법은 없다.

int[] ref = ref2; (참조값이 할당됨 유의)

 

-- value array

-- object array - 메모리 할당 필요

 

다차원 배열

int[,] myarray = new int[4,3];

 

가변 배열 (Jagged Array)

int[][] jagarray = new int[3][]; // matrix 표현 불가능

jagarray[0] = new int[10]; 하부열 할당필요

 

배열의 property

Length, Rank(차원의 수)

배열 지원 함수 -> System.Array [ICloneable, IList, ICollection, IEnumerable]

복사 방법 Copy(), Clone() [ 일부, 전체 복사 ]

 

foreach

- Array, Collection에서 활용 ( foreach(int i in array)

- 읽기전용 / 검색전용 제어문 ( Iterator )

 

Indexer

public object this[int index]{ get{} set{} }

 

문자열

string - 수정 불가 -> 대체안 : StringBuilder - 문자열 조작의 cost time을 기하급수적으로 줄여준다.

 

 

 

C/C++ 차이점

묵시적 캐스팅 - 무조건 에러

if에 조건식이 없거나 true, false 결과값이 없다 - 무조건 에러

다중 상속 불가 - interface를 활용한 샛길

함수포인터 활용 - delegate

 

C++의 STL? -> System.Collections

C++의 RTTI? -> System.Reflaction

C++의 Console IO? -> System.Console

 

 

2010년 5월 19일 수요일

TML C++ 스터디 기획서

C++ Programming 스터디

 

 

스터디 참가 요건
1. C의 문법을 배웠다는 전제하에 수업을 진행한다.

2. memory 구조와 그 활용법에 대해서 어느 정도 알고 있다.
3. user defined function 을 제작할 수 있다.
4. 기본 data structure에 대해 알고 있다.

 

스터디 진행 방식
1주에 1번 강의를 가지고 그 후 자체적인 복습을 요구합니다.
OOP의 개념에 능숙해 지기 위하여 임의의 과제를 지속적으로 제시합니다.


1주차 강의 내용

- C++ 맛보기 (표준 입출력)
--- iostream
--- fstream
- C++ initialization
- namespace
- string class 활용
- inline function 활용


2주차 강의 내용

- Stack Frame, Heap memory 영역에 대한 이해
- reference
--- const reference
--- const pointer
- new, delete 활용
- function overloading
- MSDN 활용법

 

3주차 강의 내용

- Class
--- access 지시자
--- Constructor
----- Copy Constructor
--- Destructor
--- this
--- Static member variable
--- Static member function


4주차 강의 내용

- Class
--- const member
--- mutable
--- Inheritence
--- Containment, Nest
--- Virtual Function
----- abstract class (pure virtual function)
----- Virtual Destructor

 

5주차 강의 내용

- Class
--- friend
--- Operator Overloading (copy, assignment에 대해서만)
- Design Pattern 맛보기
- RTTI
- C++ Casting


6주차 강의 내용

- Template
--- Function Template
--- Class Template
- STL 기본
--- vector, map, pair...
--- iterator 활용
- Exception


7주차 강의 내용
- Type Conversion 규칙
- Operator overloading
- Visual Studio에서 프로젝트 설정 자유롭게 조작하기
- Header 파일 규칙
- Preprocesser
- 다중 소스+헤더 프로그램 작성

 

화이팅 이제 한 주 남았다.....

거저 2개월 칠판에 낙서하면서 나름 가르치다보니까 제 자신에게 도움이 되었던건 둘째치고

교수님들이 참여도 낮다고 맨날 학생들한테 뭐라고 하는 그 심정이 많이 이해가 갑니다.

 

2010년 5월 9일 일요일

천안-함

2ch, 4chan, cnn, 어디를 다 둘러봐도

침수설밖에 안돌고 있고 진상규명이 왜 한달이나 걸리는지 이해를 못하는 실정이던데

다들 한국에 선거가 끝나면 그때부터 진상규명이 될 거라고 예상을 하고 있음.



별로 블로그에 정치적 견해를 밝히고 어떻고 할 생각은 없지만

침수설을 내놓으면 빨갱이 취급을 받고 있는게 지금 세상인데





순직자들을 정치적으로 이용해 먹는 사태를 보고 있으니 열이 받습니다.

난 해군 입대한 친구들 천안함 사건 터질때 걱정해서 조마조마하고 있었단 말이다....

2010년 4월 24일 토요일

드럼매니아 V7!

 

글이 길고 사진이 많습니다.

2010년 4월 19일 월요일

인터넷 커뮤니티에서 보기 싫은글들

프로그래밍 커뮤니티 아닌데 C나 C++한다고 유세떨지마라

 

왜 꼭 프로그래밍하는 애들이 다른 커뮤니티 가서 쓸데없이 C소스 올리고 잘난체하지?

 

쪽팔리고 한심하고 여튼 그럼

 

질문도 하지마라

 

아무리 커뮤니티 자유게시판이 자유로운 글 올리자는 취지긴 하지만 왜 질문하기 더 좋은 곳 놔두고 취지 엇글러진 곳에서 자기 프로그래밍 공부합니다 이거 어렵습니다 유세 떨고 싶어서 환장을 했냐

 

볼때마다 짜증남

2010년 4월 16일 금요일

이번 드럼매니아 V7에 대한 좌담





여튼 그렇습니다.

좌담회 펼쳐보기



정말 이번 V7 오리지널 신곡 없는 정도는 좀 심한 느낌입니다.


분석적으로 얘기를 하자면

이번에 오리지널 신곡들중에서 확인해보면 작곡가들이 상당선 안보이고 판권이나 제공곡들에 많이 치우쳐져 있습니다.

대표적으로 기대했던 아티스트들의 참가가 없었는데요
일단 TAG,
똥곡이나마 떡밥 곡을 잘 던져주었던 Des-Row,
토모스케,
기타도라 대표 2대 아이돌 그룹중 하나의 작곡을 맡았던 나오키 (테라)
지미 웨클
최근 들어 기타도라에 부각을 드러내던  good-cool

투덱팀에서는 V5때는 LED랑 TAKA가 참여해주더니 V7때는 소타가 참여해줬네요. 소타 신곡 정말 재미있습니당
센본마츠는 이미 퇴사설이 확실시 되고 있으니 기대가 안되고요 ㅜㅜ
후루카와는 제가 기억하기로 퇴사한지 오래되고 V3때만 곡 외주로 넘겨줬다고 들은거 같은데 이 기억이 맞는지는 모르겠네요.



여튼 이번 V7에서 느낀건 시스템문제에 있어서도 많이 허술하고 성의가 없는 면이 보이지만
시스템뿐만이 아니고 이 정도까지 판권곡이나 제공곡으로 도배하길 원하진 않았습니다.
XG가 첫시리즈라서 당연히 판권으로 많은 사람들을 끌여들여야 할지는 모르겠지만
이번에는 그 정도가 심하지 않나 싶습니다...

아마 저 뿐만이 아니고 많은 분들이 코나미 오리지널 아티스트들의 곡들에 매료되서 기타도라 시리즈에 빠진 사람들이 많지 않았나 싶은데

투덱도 특유의 곡들이 아니고 판권곡으로만 밀어버리는 일이 발생한다면 솔직히 좀 그렇지 않나여? 이번 기타도라시리즈가 그 방향성을 타고 있는거 같습니다. 뭘 해도 재미가 떨어지고 그래요..

차라리 신규 컴포저들을 더 육성을 하고 발굴을 해내는거면 모를까 왜 이렇게 판권곡으로 밀려버린걸까... 시리즈자체의 걱정도 들고 나중에 유비트 니트가 나올때 컴포저들 방향이 어떻게 될지 거기서 왠지 코마니의 방향성이 판단될듯한 느낌이 듭니다.

그리고 IMI, IMITATION TOUCH, 러브카니발, Eau Rouge 이 네 곡은 제발...
v7에서도 플레이하게 해주세요 ㅜㅜㅜㅜㅜㅜ



2010년 4월 12일 월요일

드럼매니아 구간 공략 - 마술피리


슬라이드 사용법과 정석 왼손 사용법
R -> R 을 L -> R 로 처리 후 HH와 SN을 LR로 처리
100초에서 HH+SN -> LT -> HT -> SY를 LR -> L -> R -> R 로 처리할때와 같은 요령으로?

2010년 2월 27일 토요일

고인의 명복을 빕니다.

http://ie6funeral.com/

큰 별이 졌습니다..

다 같이 추모해주세요

3월 1일 발인이라고 합니다.

지금 2ch터는거 보다 위대한 별을 기리는게 더 중요하지 않을까요? (존나 슬퍼하는 심정으로)

위대한 별을 기리는 기념으로 2ch나 털러가려고요... 안녕

2010년 2월 25일 목요일

Steins;Gate 클리어 완료

スカイクラッドの観測者

Skyclad의 관측자

 


作詞/作曲:志倉千代丸
編曲:磯江俊道
歌:いとうかなこ

 

작사/작곡 : Chiyomaru Shikura

편곡 : Tosimichi Isoe

Vocal : ITO KANAKO

번역 : 나

 

 

 

 

 

過去は離れて行き 未来は近づくの?
観測者いつか 矛盾に気付く

과거는 멀어져 가며 미래는 점점 가까워져 오고

관측자는 언젠가 모순에 눈치를 챈다

 

 

神の創り出した世界は 完全なるもので 絶対の均衡
それは折り重なる偶然 宇宙規模の奇跡
守られてきた ゲート「規制」は終わった

신이 창조해낸 세계는 완전한 것으로 절대적인 균형을 가진다.

그것은 겹쳐지는 우연, 우주규모의 기적

유지되어 왔던 게이트의 규제가 끝났다.

 

 

Open The Eyes----
「0」が過去で 「1」が未来 「今」は何処にもない
背く事の出来ぬ ロジック

Open The Eyes

[0]가 과거고 [1]이 미래, [지금]은 어디에도 없어

거역이 불가능한 로직

 

 

Open The Eyes----
並行する無数の線 選択は冒涜へ
僕らの「存在」さえ疑う その目に映る景色は
「収束」をする

Open The Eyes

평행하는 무수의 선에서 선택은 모독으로

우리들의 존재조차 의심하며 그 눈에 비치는 풍경은

[수속]을 한다

 

 

二つの針が指す 時間の概念も
観測者しだいで 歪みを見せる

두개의 침이 가르치는 시간의 개념도

관측자에 따라서 일그러짐을 보인다

 

 

神に与えられた英知は 必ず「果て」がある 絶対の領域
それは愚か故の偶然 招かれざる奇跡
閉ざされてきた ゲート「規制」は終わった

신에게 주어진 지혜에는 반드시 그 끝이 있다. 그 것이 절대의 영역.

어리석음으로 인한 우연, 환영받지 못한 기적

잠겨져있었던 게이트의 규제가 끝났다

 

 

 

Open The Eyes----
光速へと手を伸ばした 想い出のパルスが
飛び込む不可思議な ロジック

Open The Eyes

추억의 맥박이 광속의 안으로 손을 뻗어서

뛰어드는 불가사의한 로직


Open The Eyes----
宇宙がまだ隠し持った 秩序のない理論
無限と呼ばれた点と点が 不正な力を借りて
「再生」をする

Open The Eyes

우주가 아직 숨기고 있었던 질서가 없는 이론

무한이라 불렸던 점과 점이 부정한 힘을 빌려서

재생을 한다

 


== 「0」が過去で 「1」が未来 
== 並行する無数の線 

[0]가 과거고 [1]이 미래

평행하는 무수의 선

 


 

Open The Eyes----
「0」が過去で 「1」が未来 「今」は何処にもない
背く事の出来ぬ ロジック

Open The Eyes

[0]가 과거고 [1]이 미래, [지금]은 어디에도 없어

거역이 불가능한 로직

 


Open The Eyes----
並行する無数の線 選択は冒涜へ
僕らの「存在」さえ疑う その目に映る景色は
「収束」をする

Open The Eyes

평행하는 무수의 선에서 선택은 모독으로

우리들의 존재조차 의심하고

그 눈에 비치는 풍경은

[수속]을 한다

 

 

 

 

슈타인즈 게이트 전부 클리어 했습니다

엑박게임으로는 1000점 처음 채웠네요

엑박있으신분들, 그리고 비쥬얼 노벨류에 관심이 있으신 분들께 극히 추천합니다.

단 공식홈페이지는 보지말고 하세요.... 공식홈페이지에 스포일링이 대거 나와있는 게임 중에 하나일 허슬

영어위키도 절대 보지 말것 (그냥 끝까지 다 스포일러 해둠)

사실 노래가사도 거의 스포일링에나 마찬가진데 게임 못하면 뭔말인지도 이해 못 할 가사니 별 상관없을 간지 (그러할 간지(정보))

 

 

관련 영상

STEINS;GATE OP : http://www.youtube.com/watch?v=ah5PQa6chyQ&feature=related

STEINS;GATE 2nd PV : http://www.youtube.com/watch?v=woy2qtUsGUs&feature=related

2010년 2월 19일 금요일

소집해제




끝났습니다.

뭔가 공익이긴 한데 전역증이나 줄까하고 도키도키하고 있었는데 준거 이거 달랑 한장

그래 2011년부터 예비군이구나...

2년동안 여러모로 즐거웠고

복학합니다. 이제 드디어 돌아갑니다.