이것저것 전부다 힘들어요
'분류 전체보기'에 해당되는 글 230건
- 2008.05.18 요새 세상살기 힘들어요
- 2008.05.02 C# 에서의 변수 명명규칙
- 2008.05.02 헝가리안 코드 명명법
- 2008.04.26 Wipi 를 이클립스에서 컴파일 및 실행하기
- 2008.02.19 비주얼스튜디오 2008 한국어 버전이 나왔습니다
- 2008.02.07 비스타 서비스팩1 다운로드 2
- 2008.02.02 WPF에서 컨트롤의 이벤트 연결은 어떻게?
- 2008.02.02 블로그 하기가 귀찮아 지네요
- 2008.01.19 1월19일 토요일 지상파 방송 편성표
- 2008.01.18 1월18일 금요일 지상파 방송 편성표
이것저것 전부다 힘들어요
대부분의 경우에서 이름을 결정하는데는 파스칼 케이싱(Pascal casing)을 이용하여 변수의 대 소문자를 결정하길 권유한다. 파스칼 케이싱은 이름의 첫번째 문자가 항상 대문자이어야하는 법칙이다. 예를 들면 EmployeeSalary, ConfirmationDialog, PlaainTextEncoding 와 같다. 대 소문자를 결정하기 위해 사용하는 다른 규칙은 카멜 케이싱(camel casing)이다. 카멜케이싱은 단어의 첫번째 문자에 대문자를 사용하지 않는 것이다. 예를 들면 employeeSalary, confirmationDialog, plainTextEncoding와 같다. 카멜 케이싱은 다음 두가지 경우에 사용하자.
메소드에 전달되는 모든 매개변수의 이름은 카멜 케이싱이다.
public void RecordSale(string salesmanName, int quantity);
동일한 이름을 가지는 두 개의 항목을 구별하기 위해서도 카멜 케이싱을 사용한다. - 즉 프로퍼티와 필드를 구별할 때 사용한다.
private string employeeName;
public string EmployeeName
{
get
{
return employeeName;
}
}
private 멤버에 대해서는 카멜 케이싱을 사용하고 다른 public 멤버나 protected 멤버에 대해서는 파스칼 케이싱을 사용한다.
이름 스타일
변수 이름을 지을때는 일관적인 스타일을 사용해야 한다. 예를 들어 클래스의 메소드 중 하나가 ShowConfirmationDialog()라는 이름을 가졌다면 다른 메소드의 이름은 ShowDialogWaring()이나 WarningDialogShow()가 되어서는 안된다. 다른 메소드의 이름은 ShowWarningDialog()가 되어야한다.
네임스페이스 이름
네임 스페이스 이름은 .NET이 공유 어셈블리 내의 객체이름을 구별하는 단 한가지 방법이다. <회사이름>.<기술이름>으로 시작하는 네임스페이스 이름을 권한다.
이름과 키워드
C#과 C++은 소문자 키워드를 사용한다. 그러나 VB.NET은 키워드가 많고 대소문자를 구별하지 않기 때문에 주의가 필요하다. VB.NET에서 호출할 코드를 사용한다면 VB.NET키워드를 사용하지 않도록 주의한다. (264개의 키워드 있슴)
프로퍼티와 메소드 사용하기
변수처럼 사용되는 것은 프로퍼티로 사용하자.
프로퍼티 값을 읽어들이는 데 많은 시간이 걸리면 안된다.
프로퍼티를 순서에 상관없이 설정할 수 있어야한다.
프로퍼티를 계속해서 읽어들여도 일정한 값이 나와야한다.
필드 사용하기
필드는 항상 private가 되어야한다. 상수나 읽기전용 필드는 public 이어도 좋다.
헝기리안 표기법 정리
Hungarian Notation
Format
x_xXxxxxxx 0123456789 |
1 : 0 위치에 g 나 m 을 지정한 경우 _ 을 기술한다.
2 : 자료형의 종류를 나타낸다.(클래스 이름에 대해서는 관습적으로 자음축약형을 사용한다._
3 ~ : 변수의 의미 있는 이름을 기술하며, 3 위치는 대문자를 사용한다. 변수 이름이 너무 긴 경우 자음만을 기술한다.
Examples
int g_nCnt : 정수형 글로벌 카운터 unsigned char ucByte; :한 바이트 데이타 char cChar; :한 문자 unsigned char rgucByte[10]; :바이트 데이타 10개 char rgcChar[10]; :문자 데이터 10개 char szChar[16 +1]; :문자 16개를 저장할 수 있는 문자열 공간
Table
Prefix | Type | Description | Example |
b | bool | any boolean type | bool bTrue; |
c | char | character type | char cLetter; |
i | int | integer for index | int iCars; |
n | int | number, quantity | int nNum; |
l | long | long type | long lDistance; |
u | unsigned | unsigned type(4byte) | unsigned uPercent |
w | WORD | unsigned word(2byte) | WORD wCnt |
dw | DWORD | unsigned double word(4byte) | DWORD dwLength |
d | double | double floating point | double dPercent; |
f | float | floating point | float fPercent; |
s | static | a static variable | static short ssChoice; |
rg | array | stands for range | float rgfTemp[16]; |
p | * | any pointer | int *piAddr; |
sz | * | null terminated string of characters | char szText[16]; |
pfn | * | function pointer | int (*pifnFunc1)(int x, int y); |
t | struct | a user defined type | ... |
e | enum | variable which takes enumerated values | ... |
E | enum | Enumerated type | ... |
g_ | Global | Global Variable | String *g_psBuffer; |
m_ | Member | class private member variable | int m_iMember; |
k | constant formal parameter | ... | void vFunc(const long klGalaxies) |
r | reference formal parameter | ... | void vFunc(long &rlGalaxies) |
str | String | string class(C++) | String strName; |
prg | ... | dynamically allocated array | char *prgGrades; |
h | handle | handle to something | hMenu |
x/y | ... | used as size | int xWitdth, yHeight; |
일단 자바 JDK를 다운받으셨다는 가정하에 진행하겠습니다.
JDK가 없으신분은 여길 클릭해주세요
JDK를 설치해주신 분은 이제 이클립스를 다운받아야합니다.
이클립스는 여길 클릭해주세요
이클립스는 다운받으신후 압축만 풀으시면 바로 사용할수 있습니다.
그다음 AromaWIPI 에뮬레이터를 다운받으신뒤 설치해주셔야 합니다.
다운은 아래의 상자를 클릭해주세요
그 다음 이제 이클립스에서 아로마위피를 컴파일 및 실행하기 위한 방법을
설명하겠습니다.
이클립스 메뉴 항목중 Run이라는 항목을 선택합니다
Run항목밑에 보면 External tools라고 있습니다. 여길 선택하시면
옆에 Open External Tools Dialog라고 있습니다 이걸 클릭합니다
그럼 아래와 같은 창이 뜰겁니다. 왼쪽 아래에 program이라는 항목이 있고 그 밑에
3개의 하위 항목이 보이실겁니다. 이 3개의 하위 항목은 제가 만든것입니다.
아마 이클립스를 처음 실행하신분들은 하위 항목이 없을것입니다. 하위항목을 추가하시려면
program항목을 마우스로 더블클릭 해주시면 아래쪽이 하위 항목이 생성됩니다
항목을 추가하시면 오른쪽에 있는 항목들중에 가장 위에 있는 NAME이라는것은 이 설정에 대한 이름입니다. 좌측에 있는 emulator, make_jar,wipi_compile등과 같은 이름들입니다.
program 밑에 항목 3개를 만들어주시고 이름은 상관없지만 WIPI컴파일에 3단계의 작업이
필요하므로 알아보기 쉽게 표시를 해두시는것이 좋습니다.
일단 항목 3개를 만드시면 각 항목별로 path를 잡아주어야합니다.
path설정은 아래에 있는걸 그대로 붙여넣기 하시면 됩니다.
wipi_compiler (소스를 컴파일하는 역활을 합니다)
location : C:\Program Files\Java\jdk1.6.0_02\bin\javac.exe (자바SDK에서
javac.exe 파일의 경로를 입력해 주세요)
working directory : ${workspace_loc:/${project_name}/src}
arguments : -bootclasspath C:\AromaWIPI\JavaAppDemo\lib\classes.zip ${resource_name} (-bootclasspath 뒤에 있는 경로는 아로마위피 설치경로를JavaAppDemo\lib\classes.zip 부분 앞에까지 입력해주시면 됩니다)
make_jar(컴파일된 wipi파일을 jar 패키지로 묶어주는 역활을 합니다)
location : C:\Program Files\Java\jdk1.6.0_02\bin\jar.exe (자바 SDK에서 jar.exe 파일의 경로를 입력해주세요)
working directory : ${workspace_loc:/${project_name}/bin}
arguments : -cvf ${java_type_name}.jar *.*
WIPI emulator (jar파일을 위피에서 에뮬레이팅 해주는것에 대한 설정입니다 )
location : C:\AromaWIPI\Emulator\WIPIEmul.exe (위피에뮬레이터 실행파일
경로를 입력하세요)
working directory : C:\AromaWIPI\Emulator\ (위피에뮬레이터 폴더의 경로를 입력하세요)
arguments : -HEAPSIZE=1024 -classpath "${workspace_loc:/${project_name}/bin}\${java_type_name}.jar" org.kwis.msp.lcdui.Main ${java_type_name}
이러면 환경설정은 모두 끝났습니다. 자바프로젝트로 만드신뒤 library에 기존의 항목을 지우고 아로마위피내의 classes.zip파일을 추가해주신뒤에
프로젝트 주가에서는 class파일을 만드실때 superclass부분에 jlet을 넣어주시면 됩니다
작년 11월달? 정도에 출시된 비주얼스튜디오2008이 드디어
한글버전이 나왔습니다.
언어선택에서 korean을 선택하시면 됩니다~
Express Edition
http://www.microsoft.com/express/download/#webInstall
Team suite
http://www.microsoft.com/downloads/details.aspx?FamilyId=D95598D7-AA6E-4F24-82E3-81570C5384CB&displaylang=en
서비스팩1 RC2 와 버전의 차이가 없는것으로 보아 최종 RTM인것으로
보여진다고 합니다만. 흠 일단 패치파일의 버전을 확인해 보면 RC2와도 같네요
설치후 확실히 시스템 성능 향상 및 익스플로러의 오류 감소, 익스플로러의 속도 향상이
느껴집니다. 또한 작업관리자에서 보여지는 메모리도 줄어든것으로 보여집니다
다운받으실분들은 여기를 클릭하시면(2008년2월8일 새로고침) 다운받으실수 있습니다.
다운로드2
다룬로드3
설치하는데 상당한 시간이 걸립니다
제 노트북기준 (콘로1.8 램 2기가) 에서 약 40분 정도 소요되며 설치실패라 뜨며
설치가 되지않는 경우도 생겼습니다.
이때는 패치중에 모든 프로그램과 창을 닫으신 후에 하시거나
비스타를 깨끗이 포맷하신다음에 설치하시면 되겠습니다.
C#에서는 속성창에 보면 각 컨트롤에 대한 이벤트부분이 있어
그곳을 통해서 쉽게 작성이 가능했는데 WPF에서는 컨트롤을 아무리
눌러보아도 이벤트관련 부분이 안보이는 겁니다 -_-
그래서 몇일을 삽질하다 알아낸게 XAML이나 CS코드상에서 직접
이벤트를 등록시켜주어야 한다는겁니다
일단 폼상에(C#에서는 Form객체인데 WPF에서는 Window객체를 사용합니다. 속성도 좀 달라요) 가장 기본적인 버튼 컨트롤을 하나 올려놓겠습니다
버튼을 올려놓은뒤에 XAML코드를 보면
--------------------------------------------------------------------------------
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<Button Height="23" Margin="60,86,0,0" Name="button1" VerticalAlignment="Top" HorizontalAlignment="Left" Width="75">Button</Button>
</Grid>
</Window>
----------------------------------------------------------------------------------
빨간색으로 표시된 부분이 컨트롤에 관련된 XAML코드입니다. 저부분에서 버튼의 속성이나
이벤트를 정해줄수 있습니다. 현재 버튼의 크기는 23이고 윈도우객체로부터의 간격은
"Margin"속성에 설정을 하였습니다. 컨트롤의 이름은 button1이며 정렬상태를 보여주는
VerticalAlignment="Top" HorizontalAlignment="Left" 버튼의 폭은 75로 되어있습니다
<Button>에서부터 </Button>까지가 한개의 컨트롤에 대한 명세인데 이곳에 이벤트를 등록시켜주면 됩니다. 기본적인 click이벤트를 위해 click을 치면 인텔리센스를 통해서 이렇게
이벤트 항목이 나오면 이걸 선택해 주시면
아래와 같이 첨보는 항목이 나오죠
이 항목은 해당 컨트롤에서 click이벤트시에 연결할 메소드를 연결하는 역할을 합니다.
여기서 저 메뉴를 선택하면 자동으로 CS코드에 아래와 같이 메소드명이 명명됩니다.
(메소드명은 사용자가 임의로 바꾸어도 상관없습니다)
명명된 메소드명을 선택한뒤 마우스 오른쪽 버튼을 누르면 아래의메뉴를 선택해주시면
CS코드상에 컨트롤과 연결되는 이벤트 코드가 생성됩니다.
아래오 같이 생긴 코드안에 이벤트시 일어날 기능을 작성해 주시면 됩니다.
처음에는 의욕적으로 했는데 점점 접속하는 시간도 줄어들고
관리도 잘 안하게 되네요
에휴 이러면 안되는데~
빨리 다시 힘을내야겠습니다!
오전 | KBS1 | KBS2 | MBC | SBS | EBS | |||||||||||
6시 |
|
|
|
|
|
|||||||||||
7시 |
|
|
|
|
||||||||||||
8시 |
|
|
|
|
||||||||||||
9시 |
|
|
|
|
|
|||||||||||
10시 |
|
|
|
|||||||||||||
11시 |
|
|
|
|
|
|||||||||||
오후 | KBS1 | KBS2 | MBC | SBS | EBS | |||||||||||
12시 |
|
|
|
|
|
|||||||||||
1시 |
|
|
|
|
|
|||||||||||
2시 |
|
|
|
|
|
|||||||||||
3시 |
|
|
|
|
|
|||||||||||
4시 |
|
|
|
|
|
|||||||||||
5시 |
|
|
|
|
|
|||||||||||
6시 |
|
|
|
|
|
|||||||||||
저녁 | KBS1 | KBS2 | MBC | SBS | EBS | |||||||||
7시 |
|
|
|
|
||||||||||
8시 |
|
|
|
|
|
|||||||||
9시 |
|
|
|
|
||||||||||
10시 |
|
|
|
|
||||||||||
11시 |
|
|
|
|
|
|||||||||
12시 |
|
|
|
|
||||||||||
1시 |
|
|
||||||||||||
오전 | KBS1 | KBS2 | MBC | SBS | EBS | ||||||||||||
6시 |
|
|
|
|
|
||||||||||||
7시 |
|
|
|
|
|||||||||||||
8시 |
|
|
|
|
|
||||||||||||
9시 |
|
|
|
|
|
||||||||||||
10시 |
|
|
|
|
|||||||||||||
11시 |
|
|
|
|
|||||||||||||
오후 | KBS1 | KBS2 | MBC | SBS | EBS | |||||||||||||||
12시 |
|
|
|
|
|
|||||||||||||||
1시 |
|
|
|
|
|
|||||||||||||||
2시 |
|
|
|
|
||||||||||||||||
3시 |
|
|
|
|
||||||||||||||||
4시 |
|
|
|
|
|
|||||||||||||||
5시 |
|
|
|
|
|
|||||||||||||||
6시 |
|
|
|
|
|
|||||||||||||||
저녁 | KBS1 | KBS2 | MBC | SBS | EBS | |||||||||||
7시 |
|
|
|
|
|
|||||||||||
8시 |
|
|
|
|
|
|||||||||||
9시 |
|
|
|
|
|
|||||||||||
10시 |
|
|
|
|||||||||||||
11시 |
|
|
|
|
|
|||||||||||
12시 |
|
|
|
|
|
|||||||||||
1시 |
|
|
|
|||||||||||||