- 데블스캠프2005/RUR-PLE/Harvest . . . . 151 matches
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
- WinampPluginProgramming/DSP . . . . 84 matches
기본 뼈대 프로그램은 다음과 같다.
// avoid stupid CRT silliness
BOOL WINAPI _DllMainCRTStartup(HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved)
// pitch value
int g_pitch=100;
// pitch control window
HWND pitch_control_hwnd;
// auxilary pitch buffer (for resampling from)
short *pitch_buffer=NULL;
int pitch_buffer_len=0;
int quit_pitch=0;
void initpitch(struct winampDSPModule *this_mod);
void quitpitch(struct winampDSPModule *this_mod);
// samples3-5 번 관련. pitch control 를 보여주기 위한 윈도우.
static BOOL CALLBACK pitchProc(HWND hwndDlg, UINT uMsg, WPARAM wParam,LPARAM lParam);
"Nullsoft Pitch/Tempo Control v0.2",
initpitch,
quitpitch
"Nullsoft Pitch/Tempo Control v0.3 - lower",
initpitch,
- MoreEffectiveC++/Efficiency . . . . 76 matches
'''80-20 규칙''' 이란? 프로그램의 80%의 리소스가 20%의 코드에서 쓰여진다.:실행 시간의 80%가 대략 20%의 코드를 소모한다;80%의 메모리는 어떤 20%의 코드에서 쓴다.;80%의 disk 접근은 20%의 코드에서 이루어진다.:80%의 소프트웨어 유지의 노력은(maintenance effort)는 20%의 코드에 쏟아 부어진다.[[BR]]
프로그래머의 노력이 당신의 소프트웨어의 성능 개선에 촛점을 맞추게 된다면 80-20 규칙은 당신의 생활을 '''간편하게(윤택하게)''', 혹은 좀더 '''복잡히(어렵게)''' 만들어 나갈것이다. '''간편하게(윤택하게)''' 쪽을 생각한다면, 80-20 규칙은 당신이 성능에 대하여 솔직히 어느 정도 평범한 코드의 작성을 대다수에 시간을 보낼수 있음을 의미한다.왜냐하면 당신이 일하는 시간의 80%에 작성된 것은 시스템의 성능에 관해 특별히 해를 끼치지 않는다는 의미이기 때문이다. 저의미는 아마 많은 부분이 당신을 위한 말은 아니지만, 그것은 당신의 스트레스 정도를 다소 줄여줄수 있다. '''복잡히(어렵게)'''를 생각해 본다면 80-20 규칙은 만약 당신이 성능문제를 가지고 있다면 당신 앞에 놓여진 일은 험하다는 걸 의미한다. 왜냐하면, 당신은 오직 그 문제를 일으키는 작은량의 코드들을 제거해야 하고, 성능을 비약적으로 향상시키는 방법을 찾아야 하기 때문이다. 이렇게 80-20 규칙은 두가지의 반대되는 다른 관점에서의 접근이 주어진다.:대다수 사람들은 그렇게하고, 옯은 방법을 행해야 할것이다.
대부분 프로그래머들은 그들의 프로그램에 관한 특성에 관하여 멍청한 직관력을 가지고 있다. 왜냐하면 프로그램 성능의 특징은 아주 직관적이지 못하다. 결과적으로 남에 눈에는 띄지 않고 말할수 많은 노력이 성능 향상을 위해 프로그램의 관련된 부분에 쏟아 부어 진다. 예를들어서 아마, 계산을 최소화 시키는 알고리즘과 데이터 구조가 프로그램에 적용 되다. 그렇지만 만약에 입출(I/O-bound)력 부분 적용된다면 저것은 허사가 된다. 증가되는 I/O 라이브러리는 아마 컴파일러에 의하여 바뀐 그 코드에 의해 교체될것이다. 그렇지만, 프로그램이 CPU-bound에 대한 사용이라면 또 이건 별로 중요한 포인터(관점)이 되지 않는 것이다.
저러한 상황에서, 만약 내가 느린 플그램이나 너무 많은 프로그램을 만나면 어떻게 해야하는가? 80-20 규칙은 프로그램의 랜덤 구역의 증가는 돕는데 썩좋지는 않다는 걸 의미한다. 사실, 프로그램은 성능 향상은 비직관적이다. 하지만 당신의 프로그램에서 단순한 랜덤 부분의 증가보다 성능의 병목 지점을 찾는 생각에 노력을 기울이는 것이 더 좋와 보이지는 않은 것이다. 자 그럼 일해 보실까요?
일을 할 그 부분은 실질적으로 당신의 프로그램의 20%로, 당신에게 고민을 안겨주는 부분이다. 그리고 끔찍한 20%를 찾는 방법은 프로그램 프로파일러(profiler:분석자)를 사용하는 것이다. 그렇지만 어떠한 프로파일러(profiler:분석자)도 못할일이다. 당신은 가장 관심 있는 직접적인 해결책을 내놓는 것을 원한다.예를 들자면 당신의 프로그램이 매우 느리다고 하자, 당신은 프로파일러(profiler:분석자)가 프로그램의 각각 다른 부분에서 얼마나 시간이 소비되는지에 관해서 말해줄껄 원한다. 당신이 만약 그러한 능률 관점으로 중요한 향상을 이룰수 있는 부분에 관해 촛점을 맞추는 방법만 알고 있다면 또한 전체 부분에서 효율성을 증대시키는 부분을 말할수있을 것이다.
프로파일러(profiler:분석자)는 각각의 구문이 몇번이나 실행되는가 아니면 각각의 함수들이 몇번이나 불리는거 정도를 알려주는 유틸리티이다. 성능(performance)관점에서 당신은 함수가 몇번 분리는가에 관해서는 그리 큰 관심을 두지 않을 것이다. 프로그램의 사용자 수를 세거나, 너무 많은 구문이 수행되어 불평을 받는 라이브러리를 사용하는 클라이언트의 수를 세거나, 혹은 너무 많은 함수들이 불리는 것을 세는 것은 다소 드문 일이기도 하다. 하지만 만약 당신의 소프트웨어가 충분이 빠르다면 아무도 실행되는 구문의 수에 관해 관여치 않는다. 그리고 만약 너무 느리면 반대겠지. (이후 문장이 너무 이상해서 생략, 바보 작성자)
몇번이나 구문이 실행되는가, 함수가 실행되는가는 때때로 당신의 소프트웨어 안의 모습을 이야기 해준다. 예를들어 만약 당신이특별한 형태의 객체를 수백개를 만든다고 하면, 생성자의 횟수를 세는것도 충분히 값어치 있는 일일 것이다. 게다가 구문과, 함수가 불리는 숫자는 당신에게 직접적인 해결책은 제시 못하겠지만, 소프트웨어의 한면을 이해하는데 도움을 줄것이다. 예를들어서 만약 당신은 동적 메모리 사용을 해결하기 위한 방법을 찾지 못한다면 최소한 몇번의 메모리 할당과 해제 함수가 불리는것을 아게되는것은 유용한 도움을 줄지도 모른다. (e.g., operators new, new[], delete and delete[] - Item 8참고)
물론,프로파일러(profiler:분석자)의 장점은 프로세스중 데이터를 잡을수 있다는 점이다. 만약 당신이 당신의 프로그램을 표현되지 않는 입력 값에 대하여 프로파일(감시 정도 의미로)한다고 하면, 프로파일러가 보여준 당신의 소프트웨어의 모습에서 보통의 속도와, 잘 견디는 모습을 보여준다면 - 그부분이 소프트웨어의 80%일꺼다. - 불만있는 구역에는 접근하지 않을 다는 의미가 된다. 프로파일은 오직 당신에게 프로그램의 특별난 부분에 관해서만 이야기 할수 있는걸 기억해라 그래서 만약 당신이 표현되지 않는 입력 데이터 값을 프로파일 한다면 당신은 겉으로 들어나지 않는 값에 대한 프로파일로 돌아가야 할것이다. 그것은 당신이 특별한 쓰임을 위하여 당신의 소프트웨어를 최적화 하는것과 비슷하다. 그리고 이것은 전체를 보는 일반적인 쓰임 아마 부정적인 영양을 줄것이다.
능률(efficiency)의 관점에서 최고의 계산은 결코 아무것도 수행하지 않는것이다. 말이 좀 이상한가? 생각해 봐라 당신이 어떤 일도 필요없을때 이건 맞는거다. 왜 당신은 당신의 프로그램안에서 가장 처음에 그것을 수행하려 하는가? 그리고 만약 당신이 어떤 일을 수행하기를 원할때 당신은 그 코드의 실행(excuting)을 피할수는 없을까?
lazy evaluation에서 다룰 세번째의 주제로, 당신이 많은 필드로 이루어진 큰 객체들을 사용하는 프로그램을 가지고 있다고 상상해 봐라. 그런 객체들은 반드시 프로그램이 실행때 유지되며, 나중에는 데이터 베이스 안에 저장된어진다. 각각의 객체는 각 객체를 알아볼수 있고, 유일성을 보장하는 데이터 베이스로 부터 객체를 불러올때 종류를 알아 볼수 있는, 식별자(identifier)를 가지고 있다.(OODB 인가.) :
'''lazy fetching'''을 적용 하면, 당신은 반드시 field1과 같은 const멤버 함수를 포함하는 어떠한 멤버 함수에서 실제 데이터 포인터를 초기화하는 과정이 필요한 문제가 발생한다.(const를 다시 재할당?) 하지만 컴파일러는 당신이 const 멤버 함수의 내부에서 데이터 멤버를 수정하려고 시도하면 까다로운(cranky) 반응을 가진다. 그래서 당신은 "좋와, 나는 내가 해야 할것을 알고있어" 말하는 방법을 가지고 있어야만 한다. 가장 좋은 방법은 포인터의 필드를 mutable로 선언해 버리는 것이다. 이것의 의미는 어떠한 멤버 함수에서도 해당 변수를 고칠수 있다는 의미로, 이렇게 어떠한 멤버 함수내에서도 수행할수 있다. 이것이 LargeObject안에 있는 필드들에 mutable이 모두 선언된 이유이다.
프로그램이 m3이후에 다음과 같은 짓(이건 예제가 열받게해서 이렇게 쓴다.)을 저지른다.
어떻게 행운이냐구? 행렬 계산의 분야에 대한 경험이 우리의 이러한 코드에 대한 노력에 가능성을 준다. 사실 lazy evaluation은 APL이라는 것에 기초하고 있다. APL은 1960년대에 상호 작용의(interactive) 쓰임을 위하여 행렬 계산이 필요한 사람들에 의하여 개발된 것이다. 현재보다 떨어진 수행능력을 가진 컴퓨터에서 APL은 더하고, 곱하고, 심지어 커다란 행렬을 직접 나눈는 것처럼 보이게 하였다. 그것에는 lazy evaluation이라는 방법이었다. 그 방법은 일반적으로 보통 효율적이었다. 왜냐하면 APL 사용자가 보통 더하고, 곱하고 나누는 것을 그것의 행렬의 조각들을 필요로 하고, 전체의 결과가 필요하기 전까지 수행하지 않는다. APL 은 lazy evaluation을 사용해서 행렬상의 결과를 정확히 알 필요가 있을때까지 게산을 지연시킨다. 그런 다음 오직 필요한 부분만을 계산한다. 실제로 이것은 과거 열악한 컴퓨터의 능력하에서 사용자들이 계산 집약적인(많은 행렬 계산을 요하는) 문제에 관하여 상호적으로(결과값과 수행 식간에 필요 값을 위해서 최대한 실제 연산을 줄여나가게) 수행된다.현재의 기계도 빨라졌지만, 데이터들이 커지고, 사용자들은 참을성이 줄어들기 때문에 요즘에도 이런 lazy evaluation의 장점을 이용한 행렬 연산 라이브러리를 사용한다.
각 값 간의 의존성과,;데이터 구조의 유지를 위하여, 값들, 의존성이나 두가지의 결합 방법을 저장해야 한다.; 그리고 많은 수치 계산이 필요한 분야에서 복사, 더하기 할당, 같은 operator의 overload 것이 필요하다. 반면에 lazy evaluation의 적용은 프로그램 실행중에서 정말 많은 시간들과 많은 자원들을 아낄수 있다. 그래서 lazy evaluation의 존재를 정당화 시켜 줄것이다.
이런 네가지의 예제는 lazy evaluation이 다양한 영역에서 활용될수 있음을 시사한다.:필요없는 객체의 복제 피하기, operator[]에 읽기와 쓰기를 구분하기, 데이터 베이스 상에서의 필요없는 자료 읽기를 피하기, 필요없는 수치 계산을 피하기. 그럼에도 불구하고 그것은 정말 훌륭한 생각만은 아니다. 단지 해치워야 할일을 미루어서 처리하는 것이기 때문에 만약에 당신의 부모가 계속 감시를 한다면 당신은 계속 그런 일들을 해주어야 한다. 마찬가지로 프로그램 상에서도 모든 연산들이 필요하다면 lazy evaluation은 어떠한 자원의 절약도 되지 않는다. 거기도 만약 당신의 모든 계산이 반드시 필요한 중요한 것들이라면, lazy evaluation은 아마 처음에 허상 데이터들과 의존 관계같은 것의 처리를 위하여, 실제보다 더 많은 연산을 하게되어 수행 속도를 느리게 할것이다. lazy evaluation은 오직 당신의 소프트웨어 상에서 피할수 있는 계산이 존재할 때만 유용히 쓰일수 있다.
Item 17에서 가능한한 할일을 뒤로 미루어두는, lazy(게으름)대한 원리를 극찬해 두었다. 그리고 lazy가 당신의 프로그램의 효율성을 증대시킬수 있는 방법에 대하여 설명하였다. 이번 item에서는 반대의 입장을 설명할 생각이다. 여기에는 laziness(게으름)이란 여지는 없다. 여기에서 당신의 소프트웨어가 그것이 요구하는것 보다 더 많은 일을 해서, 성능향성에 도움을 줄수 있는것을 보일것이다. 이번 item의 철학이라고 한다면 '''''over-eager evaluation''''' 이라고 표현할수 있다.:어떤 데이터를 요구하기도 전에 미리 계산해 놓는것.
이런 일을 행하는데에 가장 간단한 방법은 이미 계산된 값을 저장시켜 놓고, 다시 필요로할때 쓰는거다. 예를들어 당신이 직원들에 관한 정보를 제공하는 프로그램을 만든다고 가정하자, 그리고 당신이 자주 쓰인다고 예상할수 있는 정보중 하나는 직원들의 개인방(사무실 or 침실 or 숙소) 번호 이다. 거기에 직원들의 정보는 데이터 베이스에 저장되어 있다고 가정한다. 하지만 대다수(당신이 작성하는거 말고) 프로그램을 위하여 직원들의 개인방 번호는 잘 쓰이지 않는다. 그래서 데이터 베이스에서 그것을 찾는 방법에 관한 최적화가 되어 있지 않다. 당신은 직원들의 개인방 번호를 반복적으로 요구하는 것에 대한 데이터 베이스가 받는 과도한 스트레스에 어플리케이션단에서 특수한 구조로 만드는 걸 피하려면, findCubicleNumber 함수로서 개인방 번호를 캐시(임시저장) 시켜 놀수 있다. 이미 가지고 있는 개인방 번호에 대하여 연속적으로 불리는 요구는 데이터 베이스에 매번 쿼리(query)를 날리는것보다는 캐쉬를 조사하여 값을 만족 시킬수 있다.
이번 아이템은 일반적인 사용을 다루었다. 그리고 속도 향상은 상응 하는 메모리 비용을 지불을 해야만 할수 있다. 최대값, 최소값, 평균을 감안해서 요구되는 여분의 공간을 유지한다. 하지만 그것은 시간을 절약한다. cach 결과는 좀더 많은 메모리의 공간을 요구하지만 다시 할당되는 부분의 시간과 비용을 줄여서 비용을 절약한다. 미리 가지고 오고(prefetching)은 미리 가지고 와야 할것에 대한 공간을 요구하지만, 매번 그 자원에 접근해야 하는 시간을 줄여준다. 이러한 이야기(개념)은 Computer Science(컴퓨터 과학)에서 오래된 이야기 이다.:일반적으로 시간 자원과 공간 자원과의 교환(trade). (그렇지만 항상 이런 것이 가상 메모리와 캐쉬 페이지에 객체를 만드는것이 참은 아니다. 드문 경우에 있어, 큰 객체의 만드는 것은 당신의 소프트웨어의 성능(performance)을 향상 시킬 것이다. 왜냐하면 당신의 활성화 요구에 대한 활동이 증가하거나, 당신의 캐쉬에 대한 접근이 줄어 들또 혹은 둘다 일때 말이다. 당신은 어떻게 그러한 문제를 해결할 방법을 찾을 것인가? 상황을 점검하고 궁리하고 또 궁리해서 그문제를 해결하라(Item 16참고).)
이번 아이템에서의 나의 충고-caching과 prefetching을 통해서 over-eager의 전략으로 예상되는 값들의 미리 계산 시키는것-은 결코 item 17의 lazy evaluation(늦은 계산)과 반대의 개념이 아니다. lazy evaluation의 기술은 당신이 항상 필요하기 않은 어떠한 결과에대한 연산을 반드시 수행해야만 할때 프로그램의 효율성을 높이기 위한 기술이다. over-eager evaluation은 당신이 거의 항상 하는 계산의 결과 값이 필요할때 프로그램의 효율을 높여 줄것이다. 양쪽 모두다 eager evaluation(즉시 계산)의 run-of-the-mill(실행의 비용) 적용에 비해서 사용이 더 어렵다. 그렇지만 둘다 프로그램 많은 노력으로 적용하면 뚜렷한 성능 샹항을 보일수 있다.
C++ 내에서의 진짜 temporary객체는 보이지 않는다.-이게 무슨 소리인고 하니, 소스내에서는 보이지 않는다는 소리다. temporary객체들은 non-heap 객체로 만들어 지지만 이름이 붙지를 않는다. (DeleteMe 시간나면 PL책의 내용 보충) 단지 이름 지어지지 않은(unnamed)객체는 보통 두가지 경우중에 하나로 볼수 있는데:묵시적(implicit) 형변환으로 함수호출에서 적용되고, 성공시에 반환되는 객체들. 왜, 그리고 어떻게 이러한 임시 객체(temporary objects)가 생성되고, 파괴되어 지는지 이해하는 것은 이러한 생성과 파괴 과정에서 발생하는 비용이 당신의 프로그램의 성능에 얼마나 성능을 끼칠수 있는가 알아야 하기때문에 중요한 것이다.
- 새싹교실/2012/AClass/2회차 . . . . 76 matches
1.0과 1000 사이의 정수를 입력받아 모든 자릿수를 더하여 출력하는 프로그램을 짜 주세요.
2.소문자를 대문자로 바꾸는 프로그램을 작성해 주세요.
3.다음 모양을 출력하는 프로그램을 작성해 주세요.
4.다음 모양을 출력하는 프로그램을 작성해 주세요.
5.위 두 프로그램을 일반화 시켜 입력받은 숫자만큼 출력해주는 프로그램을 작성해주세요.(위 프로그램은 21을 입력)
6.위 프로그램처럼 숫자를 순서대로 출력하는 프로그램을 피라미드 형태로 작성해 주세요.
7.위 프로그램처럼 숫자를 순서대로 출력하는 프로그램을 다이아몬드 형태로 작성해 주세요.
8.아래 프로그램을 참고하여 60점 이하는 F, 61~70점 D, 71~80 C, 81~90 B, 90~ A인 프로그램을 작성해주세요.
10.재귀함수를 이용해 n!을 출력하는 프로그램을 작성해 주세요.
11.n!을 출력하는 프로그램을 for문으로 작성해주세요.
12.재귀함수를 이용해 1부터10까지를 더하는 프로그램을 작성해 주세요.
13.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열에서 3이 있는지 없는지를 찾아서 출력해주는 프로그램을 작성해주세요.
14.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열에서 1이 몇번째에 있는지를 찾아서 출력해주는 프로그램을 작성해주세요. (단, 7은 첫번째입니다)
15.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열에서 2가 있는지 없는지를 검사하고, 있다면 어디에 있는지 전부 출력해주는 프로그램을 작성해주세요.
16.배열에 {7,4,2,9,3,1,2}가 들어있습니다. 이 배열을 정렬(오름차순으로)하고, 출력하는 프로그램을 작성해주세요.
1.2차원 배열이 무엇인지 쓰고, 어떻게 선언하는지도 작성한 뒤, 이를 이용한 간단한 프로그램을 작성해주세요.
2.srand()함수가 무엇인지 찾아쓰고, time()을 이용해 랜덤으로 숫자를 하나 출력하는 프로그램을 작성해주세요.
3.포인터가 무엇인지 쓰고, 포인터를 선언하는 방법을 쓰세요.
1. 0과 1000 사이의 정수를 입력받아 모든 자릿수를 더하여 출력하는 프로그램을 짜 주세요.
2. 소문자를 대문자로 바꾸는 프로그램을 작성해 주세요.
- 새싹교실/2012/AClass/1회차 . . . . 75 matches
1. 컴파일(Compile), 빌드(Build), 링크(Linking)에 대해 책에서 찾아보고 써 주세요.
빌드: 컴파일과 링크를 합쳐 빌드라 한다. 빌드를 해야 컴퓨터가 실행할수 있는 형태의 기계 링크: 프로그램마다의 라이브러리를 내가 만든 것과 연결해 주는 작업
-상수형 :상수는 변환 할 수 없는 고유의 수, 프로그램을 개발할 때 변경되어 발생 할 수 있는 버그등의 위험을 줄이기 위해 사용(#define,const)
5.#define이 무엇을 의미하는지 쓰고, 이것을 사용한 '간단한' 프로그램을 하나 작성해보세요.
- 확장성이 큰 것으로 , 긴 프로그램을 설계할 때 #define으로 정의된 것을 사용할수 있어서 편리하다.
7.if, else, else if문을 이용한 프로그램을 하나 작성해주세요. else나 else if를 3번이상 써 주세요.
8.switch-case문을 이용한 간단한 프로그램을 하나 짜 보세요.(eg. Grade계산기 A,B,C)
9.while문을 이용한 프로그램을 하나 작성해 주세요. C수업시간이나 과제에 나온 것을 새로 짜보아도 좋습니다.
10.위 프로그램을 do-while문으로 바꿔 '똑같은'프로그램이 되도록 해보세요.
11.위 프로그램을 for문으로 바꿔 풀어보세요.
1.함수가 무엇인지 쓰고, 예제 프로그램을 하나 만들어 주세요.
- 함수란 프로그램내에서 동일한 명령문들의 반복되는 부분을 모아놓은 집합체이다. 피연산자나 식과 같이, 함수는 데이터형과 값을 갖고 있다.
- 함수형 프로그래밍은 프로그래밍의 주된 구조가 함수 호출에 기반을 둔 프로그래밍을 말한다. 기존 명령형 언어로 작성한 프로그램보다 간결하고 더 추상적이며 이해하기 쉽고 형식적인 분석과 조작이 용이하다는 특징이 있다.
6.배열을 사용한 간단한 프로그램을 하나 만들어보세요.
1.컴파일(Compile), 빌드(Build), 링크(Linking)에 대해 책에서 찾아보고 써 주세요.
전처리 과정 : 컴파일러가 프로그램을 처리하기전에 특별한 일을 수행해주는 과정
5.#define이 무엇을 의미하는지 쓰고, 이것을 사용한 '간단한' 프로그램을 하나 작성해보세요.
7.if, else, else if문을 이용한 프로그램을 하나 작성해주세요. else나 else if를 3번이상 써 주세요.
8.switch-case문을 이용한 간단한 프로그램을 하나 짜 보세요.(eg. Grade계산기 A,B,C)
9.while문을 이용한 프로그램을 하나 작성해 주세요. C수업시간이나 과제에 나온 것을 새로 짜보아도 좋습니다.
- Java Study2003/첫번째과제/장창재 . . . . 70 matches
- 자바(Java)를 이야기할 때 크게 두 가지로 나누어 이야기 할 수 있습니다. 먼저, 기계어, 어셈블리어(Assembly), 포트란(FORTRAN), 코볼(COBOL), 파스칼(PASCAL), 또는 C 등과 같이 프로그래밍을 하기 위해 사용하는 자바 언어가 있고, 다른 하나는 자바 언어를 이용하여 프로그래밍 하기 위해 사용할 수 있는 자바 API(Application Programming Interface)와 자바 프로그램을 실행시켜 주기 위한 자바 가상머신(Java Virtual Machine) 등을 가리키는 자바 플랫폼(Platform)이 있습니다. 다시 말해서, 자바 언어는 Visual C++와 비유될 수 있고, 자바 플랫폼은 윈도우 95/98/NT 및 윈도우 95/98/NT API와 비유될 수 있습니다.
자바 언어(Java Language)를 이용하여 작성한 자바 프로그램(Java Program)은 자바 컴파일러(Java Compiler)를 이용하여 자바 바이트코드(Java Byte code)로 컴파일 되고, 이 자바 바이트코드는 자바 가상머신에 의해 해석되어 실행되는데, 이때 자바 가상머신은 자바 바이트코드에 대한 해석기 즉 인터프리터(interpreter)로 동작하게 됩니다. 이렇게 자바 프로그램은 컴파일 방식 및 인터프리터 방식이 모두 적용된다는 것입니다.
자바 컴파일러(Java Compiler):
자바 언어로 작성된 자바 프로그램을 중간 언어(intermediate language) 형태인 자바 바이트코드로 컴파일 합니다<.
컴퓨터는 각 CPU에 따라 서로 다른 기계어를 갖습니다. 이러한 이유 때문에 도스 또는 윈도우 95/98/NT 등이 설치되어 있는 컴퓨터에서 실행되는 프로그램이 유닉스가 설치되어 있는 컴퓨터에서는 실행되지 않는 것입니다. 그러나, 자바 바이트코드는 이러한 플랫폼에 상관없이 자바 가상머신에 의해 실행될 수 있도록 정의된 중간코드입니다. 따라서, 자바 바이트코드로 컴파일 되기만 하면, 자바 인터프리터인 자바 가상머신이 설치되어 있는 곳이면 어디에서든 실행시켜 줄 수 있습니다. 이는 자바 개발자 또는 사용자로 하여금 자바 프로그램을 개발하거나 사용할 때 그 플랫폼이 윈도우 95/98/NT, 유닉스, 또는 매킨토시인지 전혀 신경 쓰지 않아도 되도록 합니다.
자바 바이트코드는 자바 가상머신에서 실행되는 기계어라고 생각하면 됩니다. 그리고, 모든 자바 인터프리터는 자바 가상머신을 구현해 놓은 것으로, 자바 가상머신과 자바 인터프리터를 같은 것으로 생각할 수 있습니다. . 이러한 자바 가상머신은 JDK(Java Development Kit)에 포함되어 있을 수도 있고, 자바 호환 웹 브라우저 내에 내장되어 있을 수도 있습니다. 또는, 자바 칩과 같이 하드웨어에 직접 구현될 수도 있습니다. 자바 바이트코드는 “write once, run anywhere”라는 말을 가능하게 해 줍니다. 다시 말해서, 자바 언어를 이용하여 작성한 자바 프로그램을 각 플랫폼(윈도우 95/98/NT, 리눅스, 유닉스, 매킨토시 등)에 맞게 제공되는 자바 컴파일러를 통해서 바이트코드로 컴파일 할 수 있습니다. 그리고, 이 바이트코드는 자바 가상머신이 있는 어떤 곳에서도 실행될 수 있습니다.
플랫폼이란 프로그램이 실행되는 하드웨어 또는 운영체제와 같은 소프트웨어적인 환경을 말합니다. 대부분의 플랫폼은 하드웨어와 운영체제를 함께 일컬어 말합니다. 그러나 자바 플랫폼은 하드웨어와 무관하게 동작하는 오직 소프트웨어적인 플랫폼이란 점에서 다른 플랫폼과 다릅니다. 이를 위해 자바 플랫폼은 다음과 같은 두 가지의 구성요소를 갖습니다.
자바 가상머신은 자바 플랫폼의기반을 이루며, 다양한 하드웨어기반 플랫폼에 포팅(poring) 됩니다. 다시 말해서, 자바 가상머신은 윈도우 95/98/NT, 유닉스, 또는 매킨토시 등과 같은 기존의 운영체제 또는 인터넷 익스플로러와 넷스케이프 등과 같은 웹 브라우저 등, 여러 가지 플랫폼에 설치되어 사용될 수 있으며, 사용자는 자바 바이트코드로 컴파일된 자바 프로그램을 실행시키기 위해서 이 자바 가상머신을 이용하면 됩니다.
자바 API(Java Application Programming Interface):
자바 API는 윈도우 API와 같이 운영체제에서 제공해 주는 라이브러리와 같은 것입니다. 다시 말해서, 자바 프로그램을 개발하기 위해 사용할 수 있는 라이브러리 또는 클래스들이라 할 수 있습니다. 이러한 자바 API는 서로 관련된 클래스들을 묶어서 패키지 단위로 제공되고 있습니다.
자바의 주된 특징은 기존의 C/C++ 언어의 문법을 기본적으로 따르고, C/C++ 언어가 갖는 전처리기, 포인터, 포인터 연산, 다중 상속, 연산자 중첩(overloading) 등 복잡하고 이해하기 난해한 특성들을 제거함으로써 기존의 프로그램 개발자들이 쉽고 간단하게 프로그램을 개발할 수 있도록 합니다.
자바는 컴파일 시에 에러 검사를 철저하게 하고, 실행 시에 발생할 수 있는 에러에 대해서도 실행 시에 철저하게 검사를 수행함으로써 신뢰도가 높은 프로그램을 작성할 수 있도록 해 줍니다. 또한, C/C++ 프로그램 개발자들을 가장 혼란스럽게 하고, 프로그램의 치명적인 오류를 발생시킬 수 있는 포인터 및 포인터 연산을 자바에서는 사용하지 않게 함으로써, 포인터를 사용함으로써 프로그래머가 범할 수 있는 오류를 없앴다는 것입니다.
자바는 분산환경에서 작동하도록 설계 되었습니다. 그러나, 자바는 자바 언어와 자바 런타임 시스템 내에 보안 기능이 내재되어 있기 때문에 보안성이 있는 프로그램을 개발할 수 있도록 해 줍니다. 이러한 특성은 자바 프로그램이 네트웍 환경에서 바이러스 등과 같은 프로그램이 파일 시스템을 파괴하려는 것을 막을 수 있도록 해 줍니다.
자바는 서로 다른 이종(Heterogeneous)의 네트워크 환경에서 분산 되어 실행될 수 있도록 설계되었습니다. 이와 같은 환경에서는 응용 프로그램들이 다양한 하드웨어 아키텍쳐 위에서 실행될 수 있어야만 합니다. 이를 위해 자바 컴파일러는 이종의 하드웨어 및 소프트웨어 플랫폼에서 효율적으로 코드를 전송하기 위해 설계된 아키텍쳐 중립적인 중간 코드인 바이트코드를 생성합니다. 이는 동일한 자바 프로그램의 자바 바이트코드가 자바 가상머신이 설치되어 있는 어떤 플랫폼에서도 실행될 수 있도록 하는 것입니다. 또한, 자바는 기본 언어 정의를 엄격하게 함으로써 효율적인 이식성을 제공해 주고 있습니다. 예를 들어, int 형과 같은 기본 데이터형의 크기를 플랫폼과 무관하게 일정하게 하고, 연산자의 기능을 확실하게 규정하고 있습니다. C 언어를 이용하여 int 형을 선언할 때, 도스에서는 16비트, 윈도우 95/98/NT 등 32비트 운영 체제 환경에서는 32비트, 유닉스에서는 32비트 등 그 플랫폼에 따라 크기가 다르지만, 자바에서는 플랫폼에 상관없이 32비트로 고정되도록 하였습니다. 이는 자바 프로그램이 실행되는 환경이 자바 가상머신으로 동일하기 때문입니다.
자바에서는 인터프-리터가 런타임 환경을 검사할 필요 없이 실행될 수 있도록 구성하였기 때문에 뛰어난 성능을 제공해 줍니다. 쓰레기 수집기(garbage collector) 즉 메모리 관리자는 자동으로 낮은 우선순위의 백그라운드 스레드로 실행되어 메모리가 필요할 때에만 동작하도록 함으로써, 자바 가상머신에게 무리를 주지 않으면서 보다 나은 수행 성능을 제공할 수 있도록 해 줍니다. 또한, 방대한 양의 계산을 수행하는 프로그램은 계산이 많은 부분을 본래의 플랫폼에 해당하는 기계어 코드로 재작성하여 자바 프로그램과 인터페이스 할 수 있도록 하였습니다.
자바 언어로 작성된 자바 프로그램을 중간언어 형태인 자바 바이트코드로 컴파일하고, 이렇게 생성된 자바 바이트코드를 자바 인터프리터가 해석함으로써, 자바 인터프리터와 런타임 시스템이 이식(porting)된 모든 플랫폼에서 자바 바이트코드를 직접 실행할 수 있습니다.
자바의 다중 스레드 기능은 동시에 많은 스레드를 실행시킬 수 있는 프로그램을 만들 수 있도록 해 줍니다. 자바는 동기화 메소드들을 기본적으로 키워드로 제공함으로써, 자바 언어 수준에서 다중 스레드를 지원해 줍니다. 자바 API에는 스레드를 지원해 주기 위한 Thread 클래스가 있으며, 자바 런타임 시스템에서는 모니터와 조건 잠금 함수를 제공해 줍니다.
자바는 몇 가지 단점을 가지고 있는데, 자바의 단점이라 할 수 있는 문제들과 그에 대해 자바에서는 어떤 기술 또는 방법을 이용하여 해결하려 하고 있는 지에 대해 살펴보도록 하겠습니다.
프로그램을 실행하는 중에 그 실행 형태를 분석하여 병목이 발생하는 부분을 찾아내어 최적화 시켜 줍니다.
세 번째, 모호한 언어적 특성, 비결정적 자바 가상머신, 표준화된 실시간 API가 없는 문제 때문에 실시간 응용이 어렵습니다. 이를 위해, 자바에서는 다음과 같은 기술을 개발하고 적용함으로써 실시간 응용을 가능하게 할 수 있습니다.
- 데블스캠프2005/RUR-PLE/Harvest/Refactoring . . . . 65 matches
def move_and_pick():
pick_beeper()
repeat(move_and_pick,6)
repeat(move_and_pick,5)
repeat(move_and_pick,5)
repeat(move_and_pick,4)
repeat(move_and_pick,4)
repeat(move_and_pick,3)
repeat(move_and_pick,3)
repeat(move_and_pick,2)
repeat(move_and_pick,2)
repeat(move_and_pick,1)
repeat(move_and_pick,1)
def pickLineBeeper():
pick_beeper()
pick_beeper()
pickLineBeeper()
pickLineBeeper()
pickLineBeeper()
pickLineBeeper()
- 새싹교실/2012/AClass . . . . 59 matches
* 코딩과제는 완전한 프로그램으로 써 주시고(에러나지 않도록), 서술하는 문제는 간단하게(1~3줄) 써 주세요.^^
1. 컴파일(Compile), 빌드(Build), 링크(Linking)에 대해 책에서 찾아보고 써 주세요.
1. #define이 무엇을 의미하는지 쓰고, 이것을 사용한 '간단한' 프로그램을 하나 작성해보세요.
1. if, else, else if문을 이용한 프로그램을 하나 작성해주세요. else나 else if를 3번이상 써 주세요.
1. switch-case문을 이용한 간단한 프로그램을 하나 짜 보세요.(eg. Grade계산기 A,B,C)
1. while문을 이용한 프로그램을 하나 작성해 주세요. C수업시간이나 과제에 나온 것을 새로 짜보아도 좋습니다.
1. 위 프로그램을 do-while문으로 바꿔 '똑같은'프로그램이 되도록 해보세요.
1. 위 프로그램을 for문으로 바꿔 풀어보세요.
1. 함수가 무엇인지 쓰고, 예제 프로그램을 하나 만들어 주세요.
1. 배열을 사용한 간단한 프로그램을 하나 만들어보세요.
1. 재귀함수를 이용한 프로그램을 하나 짜 보세요.(eg.1~n까지의 합, n!구하기등)
1. 배열에 숫자를 넣고, 그 배열에 특정 값이 있는지 찾는 프로그램(Search)을 작성해 주세요.
--> 프로그램의 종료를 위해
1.0과 1000 사이의 정수를 입력받아 모든 자릿수를 더하여 출력하는 프로그램을 짜 주세요.
2.소문자를 대문자로 바꾸는 프로그램을 작성해 주세요.
3.다음 모양을 출력하는 프로그램을 작성해 주세요.
4.다음 모양을 출력하는 프로그램을 작성해 주세요.
5.위 두 프로그램을 일반화 시켜 입력받은 숫자만큼 출력해주는 프로그램을 작성해주세요.(위 프로그램은 21을 입력)
6.위 프로그램처럼 숫자를 순서대로 출력하는 프로그램을 피라미드 형태로 작성해 주세요.
7.위 프로그램처럼 숫자를 순서대로 출력하는 프로그램을 다이아몬드 형태로 작성해 주세요.
- NamedPipe . . . . 48 matches
= NamedPipe =
A named pipe is a named, one-way or duplex pipe for communication between the pipe server and one or more pipe clients. All instances of a
named pipe share the same pipe name, but each instance has its own buffers and handles, and provides a separate conduit for client-server communication. The use of instances enables multiple pipe clients to use the same named pipe simultaneously.
Any process can access named pipes, subject to security checks, making named pipes an easy form of communication between related or unrelated processes. Named pipes can be used to provide communication between processes on the same computer or between processes on different computers across a network.
Any process can act as both a server and a client, making peer-to-peer communication possible. As used here, the term pipe server refers to a process that creates a named pipe, and the term pipe client refers to a process that connects to an instance of a named pipe.
Pipe란 두 프로세스간의 통신을 위해 만들어진 것으로 Named Pipe는 말 그대로 이름이 있는 파이프라는 것이다. 이는 다른 컴퓨터와도 네트워크를
HANDLE hPipe, hThread; // 쓰레드 핸들
LPTSTR lpszPipename = "\\.\pipe\mynamedpipe"; // 파이프 이름
// The main loop creates an instance of the named pipe and
hPipe = CreateNamedPipe(
lpszPipename, // pipe name
PIPE_ACCESS_DUPLEX, // read/write access
PIPE_TYPE_MESSAGE | // message type pipe
PIPE_READMODE_MESSAGE | // message-read mode
PIPE_WAIT, // blocking mode
PIPE_UNLIMITED_INSTANCES, // max. instances
PIPE_TIMEOUT, // client time-out
if (hPipe == INVALID_HANDLE_VALUE)
MyErrExit("CreatePipe");
// zero, GetLastError returns ERROR_PIPE_CONNECTED. // 만약 0 값이 리턴이 될 경우 ERROR_PIPE_CONNECTED를 리턴한다.
- MineFinder . . . . 47 matches
* 목표 : 윈도우의 지뢰찾기 프로그램과 직접 대화, 지뢰를 스스로 찾아내는 프로그램을 만든다.
* 윈98, 윈2000 지뢰찾기 프로그램 지원 (현재 2000 은 제대로 지원. 98 쪽 호환성 높이기중)
* 추후 프로그램이 커질 경우 '눈' 부분과 '지능' 부분을 따로 빼낼 수 있도록 궁리.
* '눈' 해당 부분 - 지뢰찾기 프로그램으로부터 비트맵을 얻어 데이터로 변환하는 루틴 관련부. 현재 bitmap 1:1 matching 부분이 가장 부하가 많이 걸리는 부분으로 확인됨에 따라, 가장 개선해야 할 부분.
* 추후 DP 로 확장된다면 StrategyPattern 과 StatePattern 등이 이용될 것 같지만. 이는 추후 ["Refactoring"] 해 나가면서 생각해볼 사항. 프로그램이 좀 더 커지고 ["Refactoring"] 이 이루어진다면 DLL 부분으로 빠져나올 수 있을듯. ('빠져나와야 할 상황이 생길듯' 이 더 정확하지만. -_-a)
* 지뢰찾기 프로그램의 윈도우 핸들을 얻고 해당 메세지를 보내어서 지뢰찾기 프로그램을 구동하는 루틴 관련 SpikeSolution. (아.. UnitTest 코드 넣기가 애매해서 안넣었다. 궁리해봐야 할 부분같다.)
* 지뢰찾기 프로그램의 윈도우 핸들을 얻은뒤 DC를 얻은후 화면 캡쳐. 그리고 캡쳐한 비트맵을 근거로 하여 데이터로 변환하는 루틴 관련 SpikeSolution
* 디자인 부분에서의 TFP의 중요성을 놓친것이 화근이 되었다는. -_-; 추후 알고리즘 부분으로 들어가면서 TFP를 게을리 한 점과 프로그램 돌아간다는 점에서의 즐거움에 시간낭비가 좀 심했다는..~
* 지금쯤 다시 짜라고 한다면 TFP를 좀 더 제대로 추구할 수 있을 것도 같다. (이 점에서 TFP를 할때 SpikeSolution 에 대한 어느정도의 충분한 시간을 두는 점이 좋을 것 같다는 생각이 들었다. 초기 SpikeSolution 으로 해당 부분을 간단하게 대강 해보고, Test를 할 수 있는 부분에 대한 구체화하기.)
습관성으로 여는 프로그램 Best: 1. Explorer 2. 프리셀 3. 지뢰찾기. -_-;
* 지뢰찾기 프로그램은 윈도우에 기본적으로 내장된 프로그램을 이용한다.
* 컴퓨터는 현재의 지뢰찾기 프로그램 상황을 알아서 판단하고, 해당 행동을 결정한다.
* 컴퓨터가 실패했을 경우 자동으로 다시 시작하여, 사용자가 중지시키거나 지뢰를 다 찾을때까지 프로그램을 계속 진행시킨다.
* CppUnit - 이번 플밍때 윈도우 메세지 관련 처리에 대해서는 코드를 작성못했다. (이 부분에 대해서는 전통적인 Manual Test방법을 쓸 수 밖에. GUI Testing 관련 글을 더 읽어봐야 겠다. 아직 더 지식이 필요하다.) 단, 나중에 비트맵 분석부분 & Refactoring 시에 TFP 를 할 수 있게 되었다.
글쌔. 무엇부터 해 나가야 할 것인가. 일단은 지뢰찾기 프로그램을 제어할 수 있는 프로그램이여야 하고, 지뢰찾기 알고리즘도 필요할테고.. 우어. 정신없다. 일단은 생각나는 것들에 대해 하나하나 잡아봐야겠다.
지뢰찾기 프로그램의 윈도우클래스 이름이 '지뢰 찾기' 였다. 윈도우 OS 의 특징상 해당 윈도우 핸들간 메세지의 발생에 따라 해당 윈도우프로시저에서 처리가 된다. 해당 윈도우 핸들은 윈도우 클래스 이름을 아는 이상 FindWindow 함수를 이용해서 찾으면 될 것이다.
손에 대한 모델링이여서 그런지 손에만 집착하게 되었군. -_-; 이 일을 위해서는 손, 눈, 머리가 있어야 하겠는데. 마우스 노가다를 위한 손, 해당 지뢰찾기 상태를 봐야 할 눈, 그리고 해당 상황에 따른 판단, 지시를 해야 할 머리의 모델링. (단, 여기에 각각에 대해 조건을 붙인다면 '지뢰찾기프로그램을 위한' 이라는 말이 붙겠지만.)
눈에 해당하는 부분은 어떻게 할까.. 하나는 신이 되는 방법이 있고 하나는 사람이 되는 방법이 있다. -_-; 즉, 하나는 직접 지뢰찾기 프로그램의 메모리부분을 얻어낸 뒤, 그중에 배열에 해당되는 부분 (어떤 데이터구조일지는 모르겠지만, 배열일 것 같다. -_-;)을 얻어내서 보던지, 아니면 사람처럼 화면을 봐야 할 것이다. 애석하게도 나는 지뢰찾기의 창조자도 아니고 윈도우의 창조자는 더더욱 아니므로. -_-; 후자를 선택하게 된다.
원리는 간단하다. 윈도우 핸들을 얻을 수 있다면, 해당 윈도우에 대한 DC를 얻을 수 있을 것이다. DC를 얻을 수 있다면, BitBlt 을 이용, 비트맵을 메모리DC 쪽으로 복사할 수 있을테니까. (간단한 캡쳐 프로그램시 이용할 수 있다.) 단, 화면을 복사하려는 프로그램이 다른 프로그램에 가려지면 안되겠다.
머리는? 지뢰찾기 알고리즘에 해당되는 부분은. 으흐~ 나중에. -_-; 대강 이쯤 해서 각 부분부분에 대해 맞는지를 알아보기 위한 프로그램을 간단하게 짰다.
- CToAssembly . . . . 44 matches
프로그램을 실행하기위해 필요한 함수들을 모아둔 기본 라이브러리나 사용자가 만든 라이브러리는 사용자 소프트웨어에 포함된다.
고급언어 변환기, 어셈블러, 편집기, 다른 프로그램을 만드는 작업을 돕는 프로그램들이 시스템 소프트웨어에 속한다. 우리는 이미 프로그래밍에는 기계어, 어셈블리어, 고급언어 세 단계가 있음을 안다.
기계어 프로그램은 컴퓨터가 이해하고 직접 실행할 수 있는 프로그램이다. 어셈블리어 명령어는 기계어 명령어와 보통 일대일 관계로 대응하지만, 우리가 쉽게 이해할 수 있는 문자열을 사용한다. 고급언어 명령어는 영어에 매우 가까워서 프로그래머가 생각하는 방식과 자연스럽게 대응한다. 결국 어셈블리어나 고급언어 프로그램은 변환기라는 프로그램에 의해 기계어로 변환되야 한다. 이 변환기를 각각 어셈블러(assembler), 컴파일러(compiler) 혹은 인터프리터(interpreter)라고 한다.
C/C++같은 고급언어의 컴파일러는 고급언어를 어셈블리코드로 변환할 수 있다. GNU C/C++ 컴파일러의 -S 옵션은 프로그램 소스에 해당하는 어셈블리코드를 생성한다. 반복, 함수 호출, 변수 선언과 같은 기본적인 구조가 어셈블리어로 어떻게 대응하는지 알면 C 내부를 이해하기 쉽다. 이 글을 이해하기위해서는 컴퓨터구조와 Intel x86 어셈블리어에 익숙해야 한다.
먼저 hello world를 출력하는 간단한 C 프로그램을 작성하고, -S 옵션으로 컴파일한다. 입력파일에 대한 어셈블리코드를 얻을 수 있다. GCC는 기본적으로 확장자 `.c'를 `.s'로 변경하여 어셈블러파일명을 짓는다. 어셈블러파일 끝의 몇줄을 해석해보자.
이 명령어는 eax 레지스터에 값 10을 저장한다. 레지스터명 앞의 `%'와 직접값(immediate value) 앞의 '$'는 필수 어셈블러 문법이다. 모든 어셈블러가 이런 문법을 따르는 것은 아니다.
목록 1은 first.s 파일에 저장한 우리의 첫번째 어셈블리어 프로그램이다.
프로그램의 첫번째 줄은 주석이다. 어셈블러 지시어 .globl은 심볼 main을 링커가 볼 수 있도록 만든다. 그래야 main을 호출하는 C 시작라이브러리를 프로그램과 같이 링크하므로 중요하다. 이 줄이 없다면 링커는 'undefined reference to symbol main' (심볼 main에 대한 참조가 정의되지않음)을 출력한다 (한번 해봐라). 프로그램은 단순히 레지스터 eax에 값 20을 저장하고 호출자에게 반환한다.
다음 목록 2 프로그램은 eax에 저장된 값의 계승(factorial)을 계산한다. 결과를 ebx에 저장한다.
복잡한 프로그램을 만들때 우리는 해결할 문제를 체계적으로 나눈다. 그리고 필요할때마다 호출할 함수를 작성한다. 목록 3은 어셈블리어 프로그램의 함수 호출과 반환을 보여준다.
일반적으로 함수는 함수가 사용할 변수들을 정의한다. 이 변수들을 유지하려면 공간이 필요하다. 함수 호출시 변수값을 유지하기위해 스택을 사용한다. 프로그램 실행중에 반복되는 재귀호출시(recursive call) activation record가 유지되는 방법을 이해하는 것이 중요하다. esp나 ebp같은 레지스터 사용법과 스택을 다루는 push와 pop같은 명령어 사용법은 함수호출과 반환방식을 이해하는데 중요하다.
프로그램의 메모리 일부를 스택으로 사용하기위해 비워두었다. Intel 80386 이상의 마이크로프로세서에는 스택 최상위 주소를 저장하는, 스택포인터(stack pointer)라는 esp 레지스터가 있다. 아래 그림 1은 스택에 저장된 세 정수값 49, 30, 72를 보여준다 (정수는 각각 4 바이트를 차지한다). esp 레지스터는 스택 최상위 주소를 저장한다.
C 프로그램은 수백 수천개의 변수를 다룰 수 있다. C 프로그램에 해당하는 어셈블리코드는 어떻게 변수를 저장하며 변수를 다루기위해 레지스터를 충돌없이 사용하는지 알려준다.
레지스터 개수가 적기때문에 프로그램의 모든 변수를 레지스터에 담을 수는 없다. 지역변수는 스택에 위치한다. 목록 4가 그 방법을 보여준다.
함수로 파라미터를 전달하기위해 스택을 사용할 수 있다. 우리는 함수가 eax 레지스터에 저장한 값이 함수의 반환값이라는 (우리가 사용하는 C 컴파일러의) 규칙을 따른다. 함수를 호출하는 프로그램은 스택에 값을 넣어서 함수에게 파라미터를 전달한다. 목록 5는 sqr이라는 간단한 함수로 이를 설명한다.
목록 6은 C 프로그램과 어셈블리어 함수를 보여준다. 파일 main.c에 C 함수가 있고 sqr.s에 어셈블리어 함수가 있다. cc main.c sqr.s를 입력하여 파일들을 컴파일하고 같이 링크한다.
이 프로그램은 C 문장 add(10,20)이 다음과 같은 어셈블러코드로 변환됨을 확인하면 명확해진다:
프로그램이 어셈블리로 수학 알고리즘만을 구현하지 않는다면, 입력을 받고, 출력하고, 종료하는 등 어떤 작업이 필요하다. 이를 위해 운영체제 서비스를 호출해야 한다. 사실 운영체제 서비스를 제외하고는 여러 운영체제간의 어셈블리어 프로그래밍이 매우 비슷하다.
Libc wrapper는 시스템호출 규칙이 변경되는 경우 프로그램을 보호하고, 커널에 그런 시스템호출이 없는 경우 POSIX 호환 인터페이스를 제공하기위해 만들어졌다. 그러나, 유닉스 커널은 보통 거의 POSIX에 호환한다: 즉 대부분의 libc "시스템콜"의 문법은 실제 커널 시스템호출의 문법과 (반대로도) 정확히 일치한다. 그러나 libc를 버리지않는 이유는 시스템콜 wrapper외에 printf(), malloc() 등 함수도 있기때문이다.
명령어 cc -g fork.c -static으로 프로그램을 컴파일한다. gdb 도구에서 명령어 disassemble fork를 입력한다. fork에 해당하는 어셈블리코드를 볼 수 있다. -static은 GCC의 정적 링커 옵션이다 (manpage 참고). 다른 시스템호출도 테스트해보고 실제 어떻게 함수가 동작하는지 살펴봐라.
- WhatToProgram . . . . 42 matches
무엇을 프로그램할지 고를 여유가 있는 사람의 입장에서 묻는 "우리는 무엇을 프로그램할까"
학교에서 숙제로 내주는 것들이란 정말 숙제를 위한 숙제인 경우가 있다. 아니, 꼭 그렇진 않더라도 나는 뭔가 내 페이스에서 스트레스 없이 내가 원하는 것을 만들어보고 싶다. 어찌되었건 프로그램을 잘하려면 프로그램을 자주 해봐야 한다고 말하지 않는가. 그럼 도대체 무엇을 프로그램할 것인가?
이 단계가 넘어서면(한 달 정도면 넘어서지 싶다) 자신에게 가까운 것을 프로그램하라고 하겠다. 주희의 근사록이라는 책이 있다. 말 그대로 "가까운 것들에 대한 생각을 적은 기록"이라는 말이다. 공부는 무릇 가까운 곳에서 시작해야 한다고 말한다. 내 삶 속에서 제대로 구현되지도 않으면서 우주를 걱정하는 것은 "위기지학"(자기를 위한 공부)을 하라는 가르침에 어긋난다.
프로그래밍의 궁극은 "사용자"와 프로그램의 사용을 통해 그가 받는 "현실적 가치"에 있다. 프로그래밍을 하면서 사용자를 생각하지 않는 것은 도무지 아무 의미가 없다. 프로그래밍이라는 행위 자체가 성립하질 않는다. 골방에 틀어박혀 자기만족적인 지적 유희를 즐기는 해커가 아니라면 말이다. 우리는 사용자의 마음을 꿰뚫어야 한다. 여기에 있어 직접 사용자가 되는 것만큼 좋은 방법은 없다. 업계에서 혹자는 요구사항 분석시 사용자와 한 달 간 같이 생활해 보라는 말도 한다.
자기 삶에서 의미가 있는 프로그램을 만들게 되면 스스로가 사용자가 된다. 목적이 분명해 진다. 자기가 편한 프로그램을 만드는 것이다. 이 프로그램은 꼭, "내가 쓸 마음이 나는 프로그램"이어야 한다(그 프로그램을 만들고 싶은 열정이 생기고, 그걸 생각하면 가슴이 두근거린다면 더더욱 좋다 -- 이런 호기가 있을 때 그것을 충분히 누리도록 하라). 아무리 간단한 프로그램일지라도 나에게 가치있는 프로그램은 존재한다. 특정 언어에 대한 경험이 한 두 달일지라도 분명 그런 프로그램을 만들 수 있다. 대부분은 다른 프로그램들을 엮어주는 것일지도 모른다. 만약 난관에 부딪혔다면 책을 읽고, 사람에 묻고 자료를 검색해서 기술과 도구를 배우면 된다.
이 프로그램을 개발해서 일주일이고, 한달이고 매일 매일 사용해 봐야 한다. 일주일에 한 번 사용하는 프로그램을 만들기보다 매일 사용할만한 프로그램을 만들라. 자신이 하는 작업을 분석해 보라. 무엇을 자동화하면 편리하겠는가. 그것을 프로그램 하라. 그리고 오랜 기간 사용해 보라. 그러면서 불편한 점을 개선하고, 또 개선하라. 때로는 완전히 새로 작성해야할 필요도 있을 것이다(see also [DoItAgainToLearn]). 아마도 이 단계에서 스스로를 위한 프로그램을 작성하다 보면 아이콘을 이쁘게 하는데 시간을 허비하거나, 별 가치없는 퍼포먼스 향상에 시간을 낭비하지는 않을 것이다. 대신 무엇을 프로그램하고 무엇을 말아야 할지, 무엇을 기계의 힘으로 해결하고 무엇을 여전히 인간의 작업으로 남겨둘지, 즉, 무엇을 자동화할지 선택하게 될 것이다. 또한, 같은 문제를 해결하는 여러가지 방법(기술, 도구, ...) 중에서 비용과 이익을 저울질해서 하나를 고르는 기술을 익히게 될 것이다.
사실 이 단계에서는 꼭 어떤 사용을 전제로 하지 않더라도 열정을 갖게 해주는 프로그램이라면 괜찮다. 어떤 것에 대해 호기심이 생기는가? 컴퓨터로 실험을 해보고 싶은가? 그 생각이 밥을 먹거나, 잠을 자거나 떠나지 않는다면 프로그램 하라. 그냥 이걸 프로그램하면 공부가 될 것 같다든가, 혹은 남들이 다 하길래 한다든지 하는 것과는 질적으로 다른 경험을 할 것이다. 열정을 가진 것은 대부분 가슴 속에 그 모양이 이미 형성이 되어 있다. 조각가는 조각품의 형상을 이미 가슴 속에 품고 있다. NoSmok:최한기 는 이것을 강조한다. 일이 제대로 이루어지려면 그 일을 흉중에 품고 있어야 한다고. 머리 속에서, 정말 손끝에 잡힐 것만 같고, 그 프로그램이 살아있는 것 같이 느껴진다면 프로그램 하라. 자신의 아이디어를 컴퓨터가 이해하는 언어로 표현해 내는, 그리고 그 프로그램이 자신의 아이디어를 더 발전시키게 하는 능력을 갖게 될 것이다.
이 과정이 어느 정도 되면, 타인을 위한 프로그램을 작성할 수 있다. 나에게는 별 의미가 없지만 남에게 "아주 귀중한 가치를 주는" 프로그램을 만들어라. 서로 만들어줘도 좋다. 자신이 컴퓨터 공학과라면 국문학과 학생에게 프로그램을 만들어주라. 그와 가까이 지내고 그가 진정 원하는 것이 무엇이며, 진정 필요로 하는 것이 무엇인지(원하는 것과 필요로 하는 것은 다르다) 분석하고, 프로그램 해줘라. 그가 그 프로그램을 한 달 이상 사용하는가? 그래야 한다. 그 정도로 가치있는 프로그램이어야 한다. 가치있는 프로그램이 꼭 복잡하거나 거대할 필요는 없다. 그가 프로그램의 수정을 요구한다면 가능하면 모두 들어주어라. 그게 힘들다면 그를 납득시켜라. 아마도 이 단계에서 타인을 위한 프로그램을 작성하면서 "작성자"와 "사용자"간의 프로그램을 통한 커뮤니케이션의 중요성에 눈을 뜨게 될 것이다. 인터페이스에 대해 고민할 것이다. 얼마나 이쁘냐보다, 얼마나 실수할 행위유발성을 제공하지 않느냐, 그리고 어떤 메타포를 사용할 것인가(이에 대해서는 비지칼크란 프로그램을 연구하라) 하는 문제를 생각할 것이다.
이 단계를 거치면 이제는 타인들을 위한 프로그램을 작성한다. 일단 사용자가 다수이다. 또, 어떤 사용자 집단을 상정할 수는 있지만 개개인을 전제할 수는 없다. 아마도 이 단계에서는 평균적 사용자에 대해 고민하게 될 것이고, 때로는 여러사람의 동시 사용자로 야기되는 동시성 제어나 퍼포먼스 문제로 고민할 것이다. 그리고 프로그램의 크기가 커지면서 그리고 요구사항 변경이 여러 소스를 통해 빈번히 들어오게 되면서 어떻게 설계해야 하느냐는 문제로 고민할 것이다.
프로그래밍 기술보다도 중요한 것은 어쩌면 현실세계의 문제를 해결하는 것 그 자체일지도 모른다(도구와 기술은 본질적 문제를 해결해 나가는 과정으로서 필요에 따라 공부하면 되겠다). 우리는 정말 사용자를 위한 프로그램을 만들어야 한다. 그리고 이 공부는 가까운 곳에서부터 출발한다.
- GDBUsage . . . . 37 matches
pipe를 통한 간단한 프로세스 통신의 일예
pid_t pid;
state = pipe(fd);
puts("pipe() error");
pid = fork();
if(pid == -1) {
else if (pid == 0) {
gcc pipe1.c -o pipe1 -g
'''gdb pipe1'''
welcome to change it and/or distribute copies of it under certain conditions.
12 pid_t pid;
15 state = pipe(fd);
해당 인자값을 구조 프로그램이 실행된다. 브레이크 포인터 설정을 통해서 진행을 중지하는 것이 가능하다.
Starting program: /home/staff/sapius/source/ipc_test/pipe1 15
17 puts("pipe() error");
21 pid = fork();
22 if(pid == -1) {
Breakpoint 1 at 0x80484cc: file pipe1.c, line 21.
Breakpoint 1 at 0x80484cc: file pipe1.c, line 21.
Starting program: /home/staff/sapius/source/ipc_test/pipe1
- Java Study2003/첫번째과제/노수민 . . . . 36 matches
자바의 주된 특징은 기존의 C/C++ 언어의 문법을 기본적으로 따르고, C/C++ 언어가 갖는 전처리기, 포인터, 포인터 연산, 다중 상속, 연산자 중첩(overloading) 등 복잡하고 이해하기 난해한 특성들을 제거함으로써 기존의 프로그램 개발자들이 쉽고 간단하게 프로그램을 개발할 수 있도록 합니다.
자바는 컴파일 시에 에러 검사를 철저하게 하고, 실행 시에 발생할 수 있는 에러에 대해서도 실행 시에 철저하게 검사를 수행함으로써 신뢰도가 높은 프로그램을 작성할 수 있도록 해 줍니다. 또한, C/C++ 프로그램 개발자들을 가장 혼란스럽게 하고, 프로그램의 치명적인 오류를 발생시킬 수 있는 포인터 및 포인터 연산을 자바에서는 사용하지 않게 함으로써, 포인터를 사용함으로써 프로그래머가 범할 수 있는 오류를 없앴다는 것입니다.
자바는 분산환경에서 작동하도록 설계 되었습니다. 그러나, 자바는 자바 언어와 자바 런타임 시스템 내에 보안 기능이 내재되어 있기 때문에 보안성이 있는 프로그램을 개발할 수 있도록 해 줍니다. 이러한 특성은 자바 프로그램이 네트웍 환경에서 바이러스 등과 같은 프로그램이 파일 시스템을 파괴하려는 것을 막을 수 있도록 해 줍니다.
자바는 서로 다른 이종(Heterogeneous)의 네트워크 환경에서 분산 되어 실행될 수 있도록 설계되었습니다. 이와 같은 환경에서는 응용 프로그램들이 다양한 하드웨어 아키텍쳐 위에서 실행될 수 있어야만 합니다. 이를 위해 자바 컴파일러는 이종의 하드웨어 및 소프트웨어 플랫폼에서 효율적으로 코드를 전송하기 위해 설계된 아키텍쳐 중립적인 중간 코드인 바이트코드를 생성합니다. 이는 동일한 자바 프로그램의 자바 바이트코드가 자바 가상머신이 설치되어 있는 어떤 플랫폼에서도 실행될 수 있도록 하는 것입니다. 또한, 자바는 기본 언어 정의를 엄격하게 함으로써 효율적인 이식성을 제공해 주고 있습니다. 예를 들어, int 형과 같은 기본 데이터형의 크기를 플랫폼과 무관하게 일정하게 하고, 연산자의 기능을 확실하게 규정하고 있습니다. C 언어를 이용하여 int 형을 선언할 때, 도스에서는 16비트, 윈도우 95/98/NT 등 32비트 운영 체제 환경에서는 32비트, 유닉스에서는 32비트 등 그 플랫폼에 따라 크기가 다르지만, 자바에서는 플랫폼에 상관없이 32비트로 고정되도록 하였습니다. 이는 자바 프로그램이 실행되는 환경이 자바 가상머신으로 동일하기 때문입니다.
자바에서는 인터프-리터가 런타임 환경을 검사할 필요 없이 실행될 수 있도록 구성하였기 때문에 뛰어난 성능을 제공해 줍니다. 쓰레기 수집기(garbage collector) 즉 메모리 관리자는 자동으로 낮은 우선순위의 백그라운드 스레드로 실행되어 메모리가 필요할 때에만 동작하도록 함으로써, 자바 가상머신에게 무리를 주지 않으면서 보다 나은 수행 성능을 제공할 수 있도록 해 줍니다. 또한, 방대한 양의 계산을 수행하는 프로그램은 계산이 많은 부분을 본래의 플랫폼에 해당하는 기계어 코드로 재작성하여 자바 프로그램과 인터페이스 할 수 있도록 하였습니다.
자바 언어로 작성된 자바 프로그램을 중간언어 형태인 자바 바이트코드로 컴파일하고, 이렇게 생성된 자바 바이트코드를 자바 인터프리터가 해석함으로써, 자바 인터프리터와 런타임 시스템이 이식(porting)된 모든 플랫폼에서 자바 바이트코드를 직접 실행할 수 있습니다.
자바의 다중 스레드 기능은 동시에 많은 스레드를 실행시킬 수 있는 프로그램을 만들 수 있도록 해 줍니다. 자바는 동기화 메소드들을 기본적으로 키워드로 제공함으로써, 자바 언어 수준에서 다중 스레드를 지원해 줍니다. 자바 API에는 스레드를 지원해 주기 위한 Thread 클래스가 있으며, 자바 런타임 시스템에서는 모니터와 조건 잠금 함수를 제공해 줍니다.
사용자는 자바 바이트코드로 컴파일된 자바 프로그램을 실행시키기 위해서 이 자바 가상머신을 이용하면 된다.
* 자바가상머신은 자바로 작성된 프로그램이 어떤 환경에서든지 작동할 수 있도록 해 준다
자바가상머신은 위의 같은 구조로 어떤 환경이든지 자바로 만든 프로그램이라면 실행시켜주는데 가상적인 하드웨어에 가깝다.
=== 자바 프로그램의 종류 ===
* 자바 언어를 이용하여 작성할 수 있는 자바 프로그램의 종류를 살펴보면 다음과 같다.
JDK와 함께 제공되는 자바 가상머신에 의해 독립적으로 실행될 수 있도록 작성된 자바 프로그램입니다. 다시 말해서, 여러분의 컴퓨터에서 윈도우의 도스창 또는 유닉스 쉘 등과 같은 쉘에서 자바 가상머신을 이용하여 실행시키는 자바 프로그램입니다. 위에 나오는 그림은 자바 애플리케이션의 실행 과정을 자세히 보여주고 있습니다.
<APPLET>~</APPLET> 태그를 이용하여 HTML 페이지 내에 포함되어, 자바 호환 웹 브라우저에 의해서 실행되도록 작성된 자바 프로그램입니다. 다시 말해서, 여러분의 홈 페이지 내에 삽입되어 자바 호환 웹 브라우저에 의해 실행되도록 규약에 맞추어 작성된 자바 프로그램을 말하는 것입니다. 다음에 나오는 그림은 자바 애플릿의 실행 과정을 자세히 보여주고 있습니다.
기존의 CGI 프로그램과 같이 웹 서버 프로그램의 기능을 확장하기 위한 자바 프로그램으로서, 웹 서버 내에 있는 자바 런타임 환경과 함께 제공되는 자바 가상머신에 의해 실행되도록 작성된 자바 프로그램입니다. 자바 서블릿은 웹 서버 내에서 자바 런타임 환경과 함께 제공되는 자바 가상머신에 의해 실행되고, 자바 애플릿은 웹 서버에서 웹 클라이언트로 다운로드 되어 웹 클라이언트에서 자바 호환 웹 브라우저에 내장된 자바 가상머신에 의해 실행된다는 차이점이 있습니다. 이렇게 웹 서버 내에서 실행될 수 있도록 작성된 자바 서블릿은 기존의 웹 서버 내에서 실행되는 프로그램인 CGI 프로그램을 대체할 수 있도록 고안되었습니다. 다음에 나오는 그림은 자바 서블릿의 실행 과정을 자세히 보여주고 있습니다.
델파이 또는 비주얼 베이직을 이용하여 프로그램을 작성할 때, 버튼이나 창과 같은 컨트롤들을 마우스로 끌어다 프로그램 내에 삽입할 수 있도록 되어 있는데, 이와 마찬가지로 자바 빈은 하나의 완벽한 기능을 갖고 재사용될 수 있도록 만들어진 소프트웨어 컴포넌트입니다. 마이크로소프트에서 제공되는 ActiveX 컴포넌트와 같이 자바에서 컴포넌트 프로그램을 가능하도록 해 줍니다.
다른 자바 프로그램에 의해 삽입(import)되어 사용될 수 있도록 작성된 자바 프로그램입니다. 이러한 자바 패키지는 기존의 프로그래밍 언어에서 사용하던 라이브러리 또는 운영체제에서 제공해 주는 API 등과 같다고 볼 수 있습니다. 자바 패키지 역시 해당 규약을 갖겠지요. 자바에서는 기본적으로 압축 파일의 형태로 'casses.zip"이라는 자바 패키지가 제공되고 있고, 압축 파일 내에는 디렉토리 단위로 패키지가 포함되어 있다.
- RUR-PLE/Etc . . . . 35 matches
def move_and_pick():
pick_beeper()
pick_beeper()
repeat(move_and_pick,6)
repeat(move_and_pick,6)
pick_carrot = pick_beeper
def pick_TwoCarrot():
pick_carrot()
def move_and_pick():
pick_TwoCarrot()
pick_beeper()
repeat(move_and_pick,6)
repeat(move_and_pick,6)
repeat(move_and_pick,6)
repeat(move_and_pick,5)
repeat(move_and_pick,6)
repeat(move_and_pick,5)
pick_carrot = pick_beeper
pick_beeper()
def pick_TwoCarrot():
- 니젤프림/BuilderPattern . . . . 35 matches
빌더 패턴은 소프트웨어 디자인 패턴의 하나이다. 빌더 패턴은 복잡한 객체를 생성하는 방법과, 표현하는 방법을 정의하는 클래스를 별도로 분리한다. 이 분리로서 얻어지는 효과는, 동일한 생성 과정이 다른 표현을 얻어낼 수 있게 되는 것이다.
class Pizza {
private String topping = "";
public void setTopping (String topping) { this.topping = topping; }
abstract class PizzaBuilder {
protected Pizza pizza;
public Pizza getPizza() { return pizza; }
public void createNewPizzaProduct() { pizza = new Pizza(); }
public abstract void buildTopping();
class HawaiianPizzaBuilder extends PizzaBuilder {
public void buildDough() { pizza.setDough("cross"); }
public void buildSauce() { pizza.setSauce("mild"); }
public void buildTopping() { pizza.setTopping("ham+pineapple"); }
class SpicyPizzaBuilder extends PizzaBuilder {
public void buildDough() { pizza.setDough("pan baked"); }
public void buildSauce() { pizza.setSauce("hot"); }
public void buildTopping() { pizza.setTopping("pepperoni+salami"); }
private PizzaBuilder pizzaBuilder;
public void setPizzaBuilder (PizzaBuilder pb) { pizzaBuilder = pb; }
public Pizza getPizza() { return pizzaBuilder.getPizza(); }
- 1002/Journal . . . . 32 matches
그림을 보고 나니, Inheritance 나 Delegation 이 필요없이 이루어진 부분이 있다는 점 (KeywordGenerator 클래스나 BookSearcher, HttpSpider 등) Information Hiding 이 제대로 지켜지지 않은것 같다는 점, (Book 과 관련된 데이터를 얻고, 검색하여 리스트를 만들어내는 것은 BookMapper 에서 통일되게 이루어져야 한다.) 레이어를 침범한것 (각각의 Service 클래스들이 해당 로직객체를 직접 이용하는것은 그리 보기 좋은 모양새가 아닌듯 하다. 클래스 관계가 복잡해지니까. 그리고 지금 Service 가 서블릿에 비종속적인 Command Pattern 은 아니다. 그리고 AdvancedSearchService 와 SimpleSearchService 가 BookMapper 에 촛점을 맞추지 않고 Searcher 클래스들을 이용한 것은 현명한 선택이 아니다.)
구조를 살피면서 리팩토링, KeywordGenerator 클래스와 HttpSpider 등의 클래스들을 삭제했다. 테스트 96개는 아직 잘 돌아가는중. 리팩토링중 inline class 나 inline method , extract method 나 extract class 를 할때, 일단 해당 소스를 복사해서 새 클래스를 만들거나 메소드를 만들고, 이를 이용한뒤, 기존의 메소드들은 Find Usage 기능을 이용하면서 이용하는 부분이 없을때까지 replace 하는 식으로 했는데, 테스트 코드도 계속 녹색바를 유지하면서, 작은 리듬을 유지할 수 있어서 기분이 좋았다.
기존의 AcceptanceTest 들이 작동을 못한다. (Python 에서 정규표현식 이용. 데이터 파싱 & 추출. Prometheus UI 가 바뀌면 다시 바뀜) 전에 구경한 것처럼 XPath 를 이용하는 방법을 궁리해보거나, Prometheus 쪽에서 XML + XSLT 를 이용하는 방법을 궁리했다. 하지만, 그러기엔 현재 Prometheus 의 JSP 부분을 전부 바꾸는데 부담이 크리라 판단, Servlet Controller 중 Service 클래스 부분에 대해 테스트 코드를 붙이는 방법을 생각해 냈다. 하지만, 막상 작성해보고 나니 그 또한 테스트 코드의 크기가 크긴 하다.
''리팩토링 책을 보고 방법을 배우지 마라. 대신 스스로 고민해라. "초록색 막대기 사이 기간"이 최소가 되게 하려면 어떻게 해야 할지. 그러고 나서 너의 방법과 책의 방법을 비교해 보거나, 혹은 하지 마라. --JuNe''
그리고, 각각의 테스트들을 위한 DB Property 설정이 자유로우려면 Server Property 화일은 스크립트 화일로 빠져나와야 한다. (테스트 돌릴때마다 프로그램 재컴파일 한다는건, 추후 프로그램 커졌을때 효율적인 방법이 아니다.)
그리고, 이전에 ProjectPrometheus 작업할때엔 서블릿 테스팅 방법을 몰랐다. 그래서 지금 ProjectPrometheus 코드를 보면 서블릿 부분에 대해 테스트가 없다. WEB Tier 에 대한 테스팅을 전적으로 AT 에 의존한다. 이번에 기사를 쓸때 마틴 파울러의 글을 인용, "WIMP Application 에 대해서 WIMP 코드를 한줄도 복사하지 않고 Console Application 을 만들수 있어야 한다" 라고 이야기했지만, 이는 WEB 에서도 다를 바가 없다고 생각한다.
카세트를 잘 안쓰기 때문에 테이프로는 잘 안들을까봐 Cool Edit 이용, MP3 로 녹음했다. 웨이브 화일도 결국은 데이터이기에, 마치 테이프 짤라서 이어붙이는 듯한 느낌으로 웨이브 화일 편집하는게 재미있었다. 이전에 르네상스 클럽때 웨이브 화일에 대해 텍스트화일로 변환 & 인덱싱하는 프로그램이 필요한 이유가 생겼다. 전체 녹음을 하고 난 뒤, Chapter 별로 짤라서 화일로 저장하려고하는데, 웨이브데이터에 대해 검색을 할수가 없다! 결국 '대강 몇분짜리 분량일 것이다' 또는 '대강 다음챕터로 넘어갈때 몇초정도 딜레이가 있으니까.. 소리 비트와 비트 사이가 대강 이정도 되면 맞겠지...' 식으로 찾아서 화일로 쪼개긴 했지만. 웨이브 데이터에 대한 text 검색이 일상화된다면 이러한 고생도 안하겠지 하는 생각이 든다.
지금 이전 노래방 프로그램 만들때 이용했었던 Audio Compression Manager 부분 이용하라고 하면 아마 다시 어떻게 API를 이용하는지 회상하는데 2일쯤 걸릴것이다. DX Media SDK 부분을 다시 이용하라고 하면 아마 하루정도 Spike 가 다시 필요할 것이다. 즉, 이전에 만들어놓은 소스가 있다고 그 지식이 현재 나의 일부라고 하기엔 문제가 있다.
그리고 정규표현식을 이용한 extract 가 과연 'The Simplest Thing' 일까라는 생각을 하게 되었다. 올바른 정규표현식을 찾아내야 하고, 그러다보면 데이터 코드와 정규표현식이 일종의 Duplication 을 만들어낸다. (파싱하려는 문서의 일부가 정규표현식에 들어가므로) 그리고 RE 는 RE 문법을 아는 사람이라면 모르겠지만, 그렇지 않고 막연한 경우에 TDD 할 경우 Try and Error 식으로 접근해버릴 수 있다. (나의 경우는 이걸 점진적으로 하기 위해 표본이 되는 데이터를 작게 시작한다.) extract 의 'Simplest Thing' 는 find & substring 일것이란 생각을 해본다.
아는 사람으로부터 부탁을 받아서 작성중. 이미 프리첼 게시판 백업 프로그램은 제로보드나 이지보드, 드림위즈 등에서 만들어졌는데, 앨범/자료실 추출은 아직 이루어지지 않았나 보다. 뭐, 조금있으면 나올 것도 같은데.. 그냥 개인적으로 연습겸 만들어보게 되었다.
Python 이용. 적당히 TDD 와 중간 UP Front를 섞었다. (CRC와 UML을 이용) 거의 정규표현식이나 find 등을 이용한 스트링 파싱 노가다급이지만, 하루 작업치곤 생각보다 많이 나간 것 같다.
중간 개개의 모듈을 통합할때쯤에 이전에 생각해둔 디자인이 제대로 기억이 나지 않았다.; 이때 Sequence Diagram 을 그리면서 프로그램의 흐름을 천천히 생각했다. 어느정도 진행된 바가 있고, 개발하면서 개개별 모듈에 대한 인터페이스들을 정확히 알고 있었기 때문에, Conceptual Model 보다 더 구체적인 Upfront 로 가도 별 무리가 없다고 판단했다. 내가 만든 모듈을 일종의 Spike Solution 처럼 접근하고, 다시 TDD를 들어가고 하니까 중간 망설임 없이 거의 일사천리로 작업하게 되었다.
근데.. 자기 학교수업 들으면서 수많은 사람들의 사랑을 받는 버전 4.0 이상을 바라보는 프로그램 만드는게 어디 쉬운일일까. 디자인 훌륭하고 깔끔한 코드를 만드는 것 말고 할일은 많다. 더 중요한, 근본적인, 자기가 하려고 하는 일의 목적은 무엇인가. Moa:WorseIsBetter
TDDBE를 PowerReading 에서의 방법을 적용해서 읽어보았다. 내가 필요로 하는 부분인 '왜 TDD를 하는가?' 와 'TDD Pattern' 부분에 대해서 했는데, 여전히 접근법은 이해를 위주로 했다. WPM 은 평균 60대. 이해도는 한번은 90% (책을 안보고 요약을 쓸때 대부분의 내용이 기억이 났다.), 한번은 이해도 40%(이때는 사전을 안찾았었다.) 이해도와 속도의 영향은 역시 외국어 실력부분인것 같다. 단어 자체를 모를때, 모르는 문법이 나왔을 경우의 문제는 읽기 방법의 문제가 아닌 것 같다.
어제 다이어리 셋팅한 것을 이용하고, XP 에서의 Story 정리방법을 약간 적용하였다. 아직 각 Story 에 대해서 Task 를 안나눴기 때문에, 일단 좀 더 할일들에 대해 구체적인 서술이 필요하다.
이번에는 TDD 로 하되, TDD쪽보다는 PBI 에 더 주안을 두고 했다. 이런 수학공식 구하기 스타일의 문제의 경우는 StepwiseRefinement 와도 같은 PBI가 굉장히 유용하다는 생각이 든다. 첫번째 문제 풀때 코드-테스트-재정의 식으로(중복보다는 재정의에 더 신경썼기 때문에) 넘어가는게 거의 1분을 넘어가지 않았다.
아직은 나에겐 '~한 점에서 결국은 다 같다' 라는 말보다는 '~한 점에서 다르다' 란 말로 배울 수 있는게 더 많은 것 같다. 아는 선배는 '결국 SE 의 큰 틀 내에서의 범주로 놓고 보면 RUP나 XP나 같은게 아니냐' 식으로 이야기한다. 나는 XP의 다른점(지극하게 가벼운 곳부터 시작하여 필요할때 테스크나 스토리로서 추가하는)으로 장점을 얻고자 한다. 아는 선배는 TDD로 하건 뭘로 하건 결국 빠르게 좋은 프로그램을 만들면 된다고 한다. 나는 TDD를 끝까지 해봄(디버깅 툴로 돌리는 시간이 거의 0라는 점, 내가 제어할 수 있는 좋은 질문 & 좋은 답을 만들어내기)으로서 장점을 얻고자 한다. 아직까지는 守의 단계이라 생각하기때문에.
''psyco는 가장 바깥쪽 함수, 클래스만 바인딩해주면 해당 코드가 호출하는 다른 코드들은 직접 알아서 다 바인딩 해준다. 즉, main이라는 함수가 있다면 그것만 바인딩하면 프로그램 내의 모든 코드가 바인딩 되는 셈. --JuNe''
* 아침시간을 잘 못 이용한다. 주로 밥먹고 신문을 보고 메일, 각 위키들 구경 이런식인데,
MMM 에서의 비유들은 참 멋지단 생각이 든다. 저번 Tar Pit 도 그렇지만, 이번 오믈렛의 비유 또한 정말;
- Java Study2003/첫번째과제/곽세환 . . . . 32 matches
자바의 주된 특징은 기존의 C/C++ 언어의 문법을 기본적으로 따르고, C/C++ 언어가 갖는 전처리기, 포인터, 포인터 연산, 다중 상속, 연산자 중첩(overloading) 등 복잡하고 이해하기 난해한 특성들을 제거함으로써 기존의 프로그램 개발자들이 쉽고 간단하게 프로그램을 개발할 수 있도록 합니다.
자바는 컴파일 시에 에러 검사를 철저하게 하고, 실행 시에 발생할 수 있는 에러에 대해서도 실행 시에 철저하게 검사를 수행함으로써 신뢰도가 높은 프로그램을 작성할 수 있도록 해 줍니다. 또한, C/C++ 프로그램 개발자들을 가장 혼란스럽게 하고, 프로그램의 치명적인 오류를 발생시킬 수 있는 포인터 및 포인터 연산을 자바에서는 사용하지 않게 함으로써, 포인터를 사용함으로써 프로그래머가 범할 수 있는 오류를 없앴다는 것입니다.
자바는 분산환경에서 작동하도록 설계 되었습니다. 그러나, 자바는 자바 언어와 자바 런타임 시스템 내에 보안 기능이 내재되어 있기 때문에 보안성이 있는 프로그램을 개발할 수 있도록 해 줍니다. 이러한 특성은 자바 프로그램이 네트웍 환경에서 바이러스 등과 같은 프로그램이 파일 시스템을 파괴하려는 것을 막을 수 있도록 해 줍니다.
자바는 서로 다른 이종(Heterogeneous)의 네트워크 환경에서 분산 되어 실행될 수 있도록 설계되었습니다. 이와 같은 환경에서는 응용 프로그램들이 다양한 하드웨어 아키텍쳐 위에서 실행될 수 있어야만 합니다. 이를 위해 자바 컴파일러는 이종의 하드웨어 및 소프트웨어 플랫폼에서 효율적으로 코드를 전송하기 위해 설계된 아키텍쳐 중립적인 중간 코드인 바이트코드를 생성합니다. 이는 동일한 자바 프로그램의 자바 바이트코드가 자바 가상머신이 설치되어 있는 어떤 플랫폼에서도 실행될 수 있도록 하는 것입니다. 또한, 자바는 기본 언어 정의를 엄격하게 함으로써 효율적인 이식성을 제공해 주고 있습니다. 예를 들어, int 형과 같은 기본 데이터형의 크기를 플랫폼과 무관하게 일정하게 하고, 연산자의 기능을 확실하게 규정하고 있습니다. C 언어를 이용하여 int 형을 선언할 때, 도스에서는 16비트, 윈도우 95/98/NT 등 32비트 운영 체제 환경에서는 32비트, 유닉스에서는 32비트 등 그 플랫폼에 따라 크기가 다르지만, 자바에서는 플랫폼에 상관없이 32비트로 고정되도록 하였습니다. 이는 자바 프로그램이 실행되는 환경이 자바 가상머신으로 동일하기 때문입니다.
자바에서는 인터프-리터가 런타임 환경을 검사할 필요 없이 실행될 수 있도록 구성하였기 때문에 뛰어난 성능을 제공해 줍니다. 쓰레기 수집기(garbage collector) 즉 메모리 관리자는 자동으로 낮은 우선순위의 백그라운드 스레드로 실행되어 메모리가 필요할 때에만 동작하도록 함으로써, 자바 가상머신에게 무리를 주지 않으면서 보다 나은 수행 성능을 제공할 수 있도록 해 줍니다. 또한, 방대한 양의 계산을 수행하는 프로그램은 계산이 많은 부분을 본래의 플랫폼에 해당하는 기계어 코드로 재작성하여 자바 프로그램과 인터페이스 할 수 있도록 하였습니다.
자바 언어로 작성된 자바 프로그램을 중간언어 형태인 자바 바이트코드로 컴파일하고, 이렇게 생성된 자바 바이트코드를 자바 인터프리터가 해석함으로써, 자바 인터프리터와 런타임 시스템이 이식(porting)된 모든 플랫폼에서 자바 바이트코드를 직접 실행할 수 있습니다.
자바의 다중 스레드 기능은 동시에 많은 스레드를 실행시킬 수 있는 프로그램을 만들 수 있도록 해 줍니다. 자바는 동기화 메소드들을 기본적으로 키워드로 제공함으로써, 자바 언어 수준에서 다중 스레드를 지원해 줍니다. 자바 API에는 스레드를 지원해 주기 위한 Thread 클래스가 있으며, 자바 런타임 시스템에서는 모니터와 조건 잠금 함수를 제공해 줍니다.
JDK와 함께 제공되는 자바 가상머신에 의해 독립적으로 실행될 수 있도록 작성된 자바 프로그램입니다. 다시 말해서, 여러분의 컴퓨터에서 윈도우의 도스창 또는 유닉스 쉘 등과 같은 쉘에서 자바 가상머신을 이용하여 실행시키는 자바 프로그램입니다. 위에 나오는 그림은 자바 애플리케이션의 실행 과정을 자세히 보여주고 있습니다.
<APPLET>~</APPLET> 태그를 이용하여 HTML 페이지 내에 포함되어, 자바 호환 웹 브라우저에 의해서 실행되도록 작성된 자바 프로그램입니다. 다시 말해서, 여러분의 홈 페이지 내에 삽입되어 자바 호환 웹 브라우저에 의해 실행되도록 규약에 맞추어 작성된 자바 프로그램을 말하는 것입니다. 다음에 나오는 그림은 자바 애플릿의 실행 과정을 자세히 보여주고 있습니다.
기존의 CGI 프로그램과 같이 웹 서버 프로그램의 기능을 확장하기 위한 자바 프로그램으로서, 웹 서버 내에 있는 자바 런타임 환경과 함께 제공되는 자바 가상머신에 의해 실행되도록 작성된 자바 프로그램입니다. 자바 서블릿은 웹 서버 내에서 자바 런타임 환경과 함께 제공되는 자바 가상머신에 의해 실행되고, 자바 애플릿은 웹 서버에서 웹 클라이언트로 다운로드 되어 웹 클라이언트에서 자바 호환 웹 브라우저에 내장된 자바 가상머신에 의해 실행된다는 차이점이 있습니다. 이렇게 웹 서버 내에서 실행될 수 있도록 작성된 자바 서블릿은 기존의 웹 서버 내에서 실행되는 프로그램인 CGI 프로그램을 대체할 수 있도록 고안되었습니다. 다음에 나오는 그림은 자바 서블릿의 실행 과정을 자세히 보여주고 있습니다.
델파이 또는 비주얼 베이직을 이용하여 프로그램을 작성할 때, 버튼이나 창과 같은 컨트롤들을 마우스로 끌어다 프로그램 내에 삽입할 수 있도록 되어 있는데, 이와 마찬가지로 자바 빈은 하나의 완벽한 기능을 갖고 재사용될 수 있도록 만들어진 소프트웨어 컴포넌트입니다. 마이크로소프트에서 제공되는 ActiveX 컴포넌트와 같이 자바에서 컴포넌트 프로그램을 가능하도록 해 줍니다.
다른 자바 프로그램에 의해 삽입(import)되어 사용될 수 있도록 작성된 자바 프로그램입니다. 이러한 자바 패키지는 기존의 프로그래밍 언어에서 사용하던 라이브러리 또는 운영체제에서 제공해 주는 API 등과 같다고 볼 수 있습니다. 자바 패키지 역시 해당 규약을 갖겠지요. 자바에서는 기본적으로 압축 파일의 형태로 'casses.zip"이라는 자바 패키지가 제공되고 있고, 압축 파일 내에는 디렉토리 단위로 패키지가 포함되어 있습니다. 다음에 나오는 그림은 JDK 1.2.2 에서 제공되는 패키지를 보여주고 있습니다.
* "Hello, World!" 출력프로그램
- MoreEffectiveC++/Miscellany . . . . 31 matches
* Item 32: 미래를 대비하는 프로그램
좋은 소프트웨어는 변화를 잘 수용한다. 새로운 기능을 수용하고, 새로운 플랫폼에 잘 적용되고, 새로운 요구를 잘 받아 들이며, 새로운 입력을 잘 잡는다. 이런 소프트웨어는 유연하고, 강하고, 신뢰성있고, 돌발 상황(사고)에 의해 죽지 않는다. 이런 소프트웨어는 미래에 필요한 요소를 예상하고, 오늘날 구현시에 포함시키는 프로그래머들에 의해서 디자인된다. 이러한 종류의 소프트웨어는-우아하게 변화하는 소프트웨어- ''program in the future tens''(매래의 프로그램:이하 영문 직접 사용)을 감안하는 사람들이 작성한다.
이런 좋은 소프트웨어를 만들기 위한 방법으로, 주석이나, 기타 다른 문서 대신에 C++ 내부에 디자인으로 구속해 버리는 것이다. 예를들자면 '''만약 클래스가 결코 다른 클래스로 유도되지를 원치 않을때''', 단시 주석을 헤더 파일에 넣는 것이 아니라, 유도를 방지하기 위하여 C++의 문법을 이용한 기술로 구속 시킨다.;이에 대한 방법은 '''Item 26'''에 언급되었다. 만약 클래스가 '''모든 인스턴스를 Heap영역에 생성시키고자 할때''', 클라이언트에게 말(문서)로 전달하는 것이 아니라. '''Item 27'''과 같은 접근으로 제한 시켜 버릴 수 있다. 만약 클래스에 대하여 복사와 할당을 막을려고 할때는, 복사 생성자와 할당(assignment) 연산자를 사역(private)으로 만들어 버려라. C++은 훌륭한 힘과, 유연성, 표현성을 제공한다. 이러한 언어의 특징들을 당신의 프로그래밍에서 디자인의 정책을 위해서 사용하라.
이식성 있는 코드를 만들어라. 이식성 있는 프로그램의 제작은 그렇지 않은 경우보다 매우 어려운게 아니다. 그리고 눈에 보일 만큼 성능면에서 이식성 없는 코드를 고집해야 하는 경우는 희귀하다.(Item 16참고) 특정한 하드웨어를 위한 프로그램의 디자인에서도, 얼마 안있어 하드웨어 성능이 동일한 수준의 성능을 가져다 주므로, 이식성 있도록 만들어라. 이식성 있는 코드의 작성은 플랫폼 간의 변환에 쉽고, 당신의 클라라이언트 기반을 공고히 하고, 오픈 시스템의 지원에 관하여 좋다. 만약, 한 OS에서 성능이 실패해도, 쉽게 복구할수 있다.
물론, 필요하다면 현재 감안하는 생각으로 접근한다. 당신이 개발중인 소프트웨어는 현재의 컴파일러에서 동작해야만 한다.;당신은 최신의 언어가 해당 기능을 구현할때까지 기다리지 못한다. 당신의 현재 가지고 있는 언어에서 동작해야 하고. 그래서 당신의 클라이언트에서 사용 가능해야 한다.;당신의 고객에게 그들의 시스템을 업그레이드 하거나, 수행 환경을(operating environment) 바꾸게 하지는 못할것이다. 그건은 '''지금''' 수행함을 보증해야 한다.;좀더 작은, 좀더 빠른 프로그램에 대한 약속은 라이프 사이클을 줄이고, 고객에게 기대감을 부풀릴 것이다. 그리고 당신이 만드는 프로그램은 '''곧''' 작동해야만 한다. 이는 종종 "최신의 과거"를 만들어 버린다. 이는 중요한 속박이다. 당신은 이를 무시할수 없다.
미래를 생각하는 것은 당신의 코드에 대한 재 사용성을 늘리고, 유지보수를 쉽게하며, 소프트웨어를 견고하게 만든다. 그리고 변화하는 환경에 우아하게 대처할 것이 확실하다. 미래에 대한 대처는 반드시 현재의 생각과 균형을 이루어야만 한다. 많은 프로그래머들이 현재 이외에는 생각을 하지 않는다. 하지만, 그래서 그들은 구현과 디자인에 긴 시각을 포기해야 한다. 다르게 하여라. 거부해라. 미래를 생각하는 프로그램을 만들어라.
이것은 mix-type의 할당이다.:Lizard는 오른쪽의 Chicken의 왼쪽에 있는 입장이다. Mixed-type 할당은 C++에서 평범한 문제는 아니다. 왜냐하면 언어의 strong typing은 보통 그것이 규정에서 어긋나게 하기 때문이다. 하지만, animal의 할당 연산자를 가상으로 하는 것에 의해, 닫혀진 Mix-type 연산자의 문이 열려 버린다.
솔직히, dynamic_cast를 사용해서 실행 시간에 검사하는건 좀 짜증난다. 한가지, 몇몇 컴파일러는 아직 dynamic_cast에 대한 지원이 부족해서, 이를 사용하면, 이론적으로는 이식성이 보장되지만 실제로는 그렇지 않다. 더 중요하게 Lizard와 Chicken의 클라이언트들은 bad_cast 예외에 대한 준비와, 할당을 수행할때의 각 코딩시에 민감하게 처리하지 못한다. 내 경험에 비추어 볼때 많은 프로그래머들이 그런 방법을 취하지 않고 있다. 만약 그들이 하지 않는다면, 할당이 일어나는 수많은 곳에서 정확하지 않은 처리상태로, 명료성을 보장 받을수 없다.
가상 할당 연산자를 이용하는 것 역시 불충분한 상태가 주어진다. 그것은 클라이언트가 문제있는 할당을 하는 것을 방지하는 방법을 찾도록 노력하는데 힘을쓰게 만든다. 만약 그러한 할당이 컴파일 중에 거부된다면, 우리는 잘못이 일어날 것에 대해 걱정할 필요가 없게된다.
이러한 전략은 당신이 의존하고 있는 라이브러리 벤더의 클래스가 업데이트 될때 마다 당신의 클래스를 업데이트를 할 준비가 되어 있는걸 요구한다. 또한 라이브러리 클래스상에서 가상 함수의 재정의 능력을 제거를 요구하기도 한다. 왜냐하면 당신은 상속 받기 전까지 가상 함수를 재정의 할수가 없다.
* Item 34: 같은 프로그램에서 C++와 C를 혼합하는 법 이해해라.
많은 면에서, C++와 C에서 컴포넌트를 만들때, 네가 하는 걱정은 C 컴파일러가 오브젝트 파일을 서투르게 처리 할때의 걱정과 같다. 다른 컴파일러들이 구현에 의존적인 요소들에 대하여 동일하지 않으면, 그런 파일들을 혼합해서 쓸 방법이 없다. (구현 의존 요소:int, double의 크기, 인자를 넘기고 받는 방법, 호출자와 호출간에 통신 ) 이러한 개발 환경에서 컴파일러들을 섞어서 사용하는 것에(mixed-compiler) 관한 실질적은 관점은 언어의 표준에 대한 노력에 의해서 아마 완전히 무시 된다. 그래서 컴파일러 A와 컴파일러 B의 오브젝트 파일을 안전하게 섞어서 쓸수 있는 신뢰성 있는 유일한 방법은, 컴파일러 A,B의 벤더들이 그들의 알맞는 output에 대한 product의 정보를 확실히 아는 것이다. 이것은 C++와 C를 이용하는 프로그램, 그런 모든 프로그램에 대하여 사실이다. 그래서 당신이 C++과 C를 같은 프로그램에서 섞어서 쓰기 전에는 C++와 C컴파일러가 알맞는 오브젝트 파일을 만들어 내야만 한다.
당신도 알다 시피, name mangling(이름 조정:이후 name mangling로 씀) 당신의 C++ 컴파일러가 당신의 프로그램상에서 각 함수에 유일한 이름을 부여하는 작업이다. C에서 이러한 작업은 필요가 없었다. 왜냐하면, 당신은 함수 이름을 오버로드(overload)할수가 없었기 때문이다. 그렇지만 C++ 프로그래머들은 최소한 몇개 함수에 같은 이름을 쓴다.(예를들어서, iostream 라이브러리를 생각해보자. 여기에는 몇가지 버전이나 operator<< 와 operator>>가 있다. ) 오버로딩(overloading)은 대부분의 링커들에게 불편한 존재이다. 왜냐하면 링커들은 일반적으로 같은 이름으로 된 다양한 함수들에 대하여 어두운 시각을 가진다. name magling은 링커들의 진실성의 승인이다.;특별히 링커들이 보통 모든 함수 이름에 대하여 유일하다는 사실에 대하여
그렇지만 만약 drawLine가 C함수라면, drawLine 함수를 호출할때 drawLine으로 포함하는 컴파일러된 버전으로 오브젝트( 혹은 동적 링크 라이브러리 등) 파일에 포함되어 있다.;name mangle이 되지 않은 체로 되어 있다. 당신이 이 둘을 모두 섞어서 프로그램 하려고 노력하면, 에러가 날것이다. 왜냐하면 링커는 xyzzy의 호출되는 함수를 찾고, 그에 관한 함수가 없기 때문이다.
그런 방법에 이용하는건, "표준" 적인 name mangle 알고리즘이란 없다. 다른 컴파일러는 다른 방법으로 name mangle 을 막는 방법을 제공한다. 이는 좋은 것이다. 만약에 모든 컴파일러가 같은 방법으로 name mangle을 수행 하면, 당신은 아마도 그들이 만들어 내는 알맞은 코드에 대한 생각에 안심해 할지 모른다. 만약 당신이 정확하지 않은 C++ 컴파일러로 부터 생성된 객체를 혼용하면 링크중에 에러를 발생할수 있는 좋은 기회를 맞이할것이다. 왜냐하면, mangle처리된 이름을 찾을수 없기 때문이다. 이것은 당신에게 알맞음을 따지는 또다른 문제를 의미하고, 또 도좋은 해결책을 찾아야 함을 의미한다.
일단 name mangle에 관한 내용을 익혔다면, C++코드에서 main 이전과 이후에 많은 코드들이 수행된다는 사실에 관해서 생각해볼 필요가 있다. 특별히, 전역 이름 공간, 파일 영역상의 정적(static) 클래스 객체는 보통 main 보다 먼저 실행된다. 이 과정이 ''static initialization'' 이라고 알려져 있다. 이는 프로그램의 실행시점 간에 C와 C++ 프로그램에 대한 방법으로 완전히 다른 방향을 취한다. 비슷하게, static initialization으로 만들어진 객체는 반드시 그들의 파괴자를 static destruct 동안에 불러주어야 한다.;그러한 과정은 일반적으로 main 이후에 진행된다.
때때로 C에 main 작성이 더 가치 있다고 보인다. - 대다수 프로그램이 C이고, C++이 단지 라이브러리 지원 이라면 이라고 말해라. 그렇기는 하지만, C++ 라이브러리는 정적(static) 객체(object)를 포함하는 것이 좋다.(좋은 기능이 많다는 의미) (만약 지금 없다해도 미래에 어쩌면 있을지 모르지 않는가? Item 32참고) 그래서 가능하다면 C++에서 main을 작성은 좋은 생각이다. 그것은 당신의 C코드를 제작성 하는것을 의미하지는 않는다. 단지 C에서 쓴 main을 realMain으로 이름만 바꾸고, main의 C++버전에서는 realMain을 호출한다.:
우리는 C++와 C프로그램 사이에 데이터 교환에 관해서 다룬다. C++의 개념을 이해하는 C 함수를 만드는것 불가능 하다. 그래서 이 두 언어간의 전달의 수준은 C가 표현할수 있는 개념으로 한정된다. 그래서 객체의 전달 방식이나, 포인터를 C 에서 작성된 루틴의 멤버 함수로 전달하는 방법은 이식성이 떨어질것은 분명하다. C는 일반적인 포인터 이해한다. 그래서 당신의 C++와 C컴파일러가 만들어 내는, 두가지의 언어에서 알맞는 함수는 pointer와 객체를 pointer와 non-member 나 static 함수를 안전하게 교체할수 있다.자연 스럽게, 구조체와 built-in형의 변수들 역시 자유로이 C+++/C의 경계를 넘나든다.
만약 당신이 C++와 C를 같은 프로그램에서 섞어서 쓰기를 원한다면, 간단한 가이드 라인을을 따를것을 기억하라.
post-ARM 은 C++로 좋은 프로그램을 작성 할수 있느냐에 큰 영향을 준다. 결과적으로 C++ 프로그래머들에게 ARM의 내용과 다른 표준 사항을 아는 것은 프로그래머들에게 첫번째로 중요한 문제가 될것이다.
- ProjectPrometheus/Journey . . . . 31 matches
* 근데, 해놓고 나서 커밋할 생각이.. 좀 안나긴 하다. 한편으로는 Test 들을 통과하니까 둘이 서로 정한 의도대로 한 것이니 상관없다는 생각. 하지만, 한편으로는 'Pair 로 한 것이 아닌데..' 하는 생각. 그냥 Spike 버전 정도로 생각해둘까나.
속좁은 ["1002"] 이 상민쓰에게 신경질 부리던날로 기억 -_-; 일종의 Test 에 대한 압박을 받아서이긴 한데, 처음에는 'Model, Logic' 부분에 대해서만 Test 정도 붙이면 되겠지 라고 생각했는데, Servlet 으로 작성한 Controller 부분이 커지면서, 각각 Command 에 해당하는 (service 라고 이름지었음) 부분에 대해 로직이 붙었기 때문이다. 근데, Servlet 이여서 테스트를 못붙이고, 작업은 작업대로 진행되는데 테스트 붙일 방법을 생각하지 못하는데, 잘 진행되어간다고 보이는 작업 발묶는것 같아서 이야기 못하고 꿍해있다는.
(그래서 수요일날에는 프로그램 작성전 Menual Test 방법을 먼저 생각해두고, 프로그래밍 작성을 하는 식으로 접근함)
이 부분도 일종의 Architecture 의 부분일것인데, 지금 작성한것이 웬지 화근이 된것 같다는. Architecture 부분에 대해서는 Spike Solution 을 해보던지, 아니면 TDD 를 한뒤, Data Persistence 부분에 대해서 내부적으로 Delegation 객체를 추출해 내고, 그녀석을 Mapper 로 빼내는 과정을 순차적으로 밟았어야 했는데 하는 생각이 든다.
Object-RDB Mapping 에 대해서는 ["PatternsOfEnterpriseApplicationArchitecture"] 에 나온 방법들을 읽어보고 그중 Data Mapper 의 개념을 적용해보는중. Object 와 DB Layer 가 분리되는 느낌은 좋긴 한데, 처음 해보는것이여서 그런지 상당히 복잡하게 느껴졌다. 일단 처음엔 Data Gateway 정도의 가벼운 개념으로 접근한뒤, Data Mapper 로 꺼내가는게 나았을까 하는 생각.
Spike Solution으로 만들어 두었던 것들이, 실제로 프로그래밍 소스로 전환되고 있는 과정 중이다. 이제 User내의 Spike Solution관련 코드들이 사라지면 Spike Solution의 Test들도 다 깨지면서 사라 질것이다. 내일이면 DB와의 연동이 마무리 되고, 웹에 인터페이스 노출이 이루어 질것 같다. 그렇게 되면 커다란 줄기는 완성되는 것이다. 역시나 감회가 새롭다. Acceptance Test에 관련한 코드들을 내가 너무 모르고 있다. 그쪽 코드를 보고 이해 해야 불안하고 들뜬 마음을 안정 시킬수 있을것 같다. 나는 즐거운거 맞는 걸까? 학교 더 일찍오면 확실히 즐거울꺼 같다. ;; --["상민"]
어차피 AcceptanceTest 관련 코드의 경우 Server 프로그램과 독립적으로 돌아가기에 그리 걱정하지 않아도 상관없을듯. 소스는 CVS에 올려놓고 있으니 시간있을때 확인하셔도 좋을듯. --["1002"]
* Code Review 로서 Refactoring 이 이용된다고 했다시피, Refactoring을 해 나가면서 전체 프로그램의 그림이 좀 더 이해가 갔다. 한동안 해당 프로그램에 대해서 플밍 리듬을 놓쳤을때 Refactoring 을 시도하는것도 좋은 전략이라 생각.
* MockObjects 를 이용, Database 에 대해서 MockObjects Test 와 Real DB Test 를 같이 해 나가보았다. DB - Recommendation System 연결을 위해서는 RS 에서의 object 들과 DB 와의 Mapping 이 필요하다고 판단, DB Schema 를 같이 궁리한 뒤, Test 를 작성하였다. 이때 이전 기억을 떠올리면서 MockObjects Test 를 상속받아서 Real DB Test 를 작성하는 식으로 접근해봤는데 좋은 방법이라 생각.
* Martin Fowler 의 PatternsOfEnterpriseApplicationArchitecture 를 읽어보는중. 우리 시스템의 경우 DataMapper 의 개념과 Gateway 의 개념을 적용해볼 수 있을 것 같다. 전자는 Data Object 를 얻어내는데에 대해 일종의 MediatorPattern 을 적용함. DB 부분과 소켓으로부터 데이터를 얻어올 때 이용할 수 있을 것 같다. 후자의 경우는 일반적으로 Object - RDB Data Mapping (또는 다른 OO 개념이 아닌 데이터들) 인데, RowDataGateway, TableDataGateway 의 경우를 이용할 수 있을것 같다.
상민쓰와 함께 ADO 를 이용한 부분에 대해 DB Mock Object 예제를 작성했다. 전에 상민이가 DB Layer 를 두지 않고, ADO Framework를 거의 치환하게끔 작성했다고 판단, 이번에는 내부적으로 ADO를 쓰건 가짜 데이터를 쓰건 신경쓰지 않는 방향으로 같이 작성하였다. ADO 는 기존에 ["1002"] 가 작업했던 프로그램에서 일부 사용한 소스를 고쳐썼다.
GJ가 도입되면 IBM의 Incremental Compile도 무용지물 아닐까. --["상민"]
* 한편으로 또 드는 생각은 아무리 우리가 공부를 하네 위키에 문서를 남기네 해도, 결국 저 사람에게는 '그저 저넘들 자기만족을 위한 행위' 그 이상이 아니라는 것. 피시실에서 게임을 하나 프로그램 개발을 하나 그저 '타인의 행동' 이상의 의미가 없다란 느낌이 들고 나니 서글퍼진다. 순간 울컥 하는 마음에 속으로 '차라리 자극 좀 받아보시고 거기 깔린 오락 좀 지워보시지. 젠장' 라고 읊어대었다. (갈수록 건방짐 높아져가는 ["1002"]. 솔직히 좀 화가 나서리..) 개인적으로 피시실이 사람들이 서로 개발이나 공부를 위해 시끌벅적한 작은 팀들이 많이 있고, 그 분위기에 다른 사람들이 조금이나마 휩쓸렸으면 하지만. 그러한 팀들은 늘 레포트가 나오던지 팀프로젝트가 나오던지 해야 만들어지려나.. 거참 엄청 재미도 나겠군. 역시 이상일 뿐이려나. (화이트보드 큼지막한 것이 있어도 우리가 알고리즘 구상하느냐고 써놓은 것들이 3-4일째 그대로이군.)
* Iteration 2 에 대한 SpikeSolution 계속 진행
* Iteration 2. Recommendation System 에 대한 SpikeSolution
일단 알고리즘부분을 대강 생각한뒤 Python 으로 TDD 를 했다. ([http://zeropage.org/browsecvs/index.php?&dir=ProjectPrometheus%2FPythonProject%2F&file=RSSpike.py&rev=1.1&cvsrep=ZeroPage 소스]). CRC 세션을 먼저하여 시나리오를 시각화해두고 프로그래밍을 했었다면 좀 더 빨리 작성할 수 있지 않았을까 하는 생각을 해본다.
알고리즘에 대한 SpikeSolution 에 대해서는, 일단 연습장에 명확하게 알고리즘을 세운뒤 프로그래밍에 들어가는 것이 좋겠다고 생각함. 그리고 알고리즘 디자인시에 Matrix 와 Graph 등의 모델을 그려서 생각해보는 것이 효율적이겠다는 생각이 들었다.
* HTML 문서 가져오는 클래스 (Spider) 작성
오늘 무엇을 할 것인가 하며 ["ProjectPrometheus/Iteration"] 를 보고선 HTML Parsing 을 진행하기로 했다. 그 전에 ["1002"] 는 '아, 작업하기 전에 Book Search 에 대한 전반적인 그림을 그려 놓는게 좋겠군. 그리고 난 뒤 HTML Parsing 부분에 대해 구현해야지' 라고 생각을 했다. 한편 ["neocoin"] 은 수요일때와 마찬가지로 'HTML Parsing 부분에 대해 일단은 SpikeSolution 으로 만든뒤 모듈화 시켜나가야지' 라는 생각을 했다. 프로그래밍 스타일이 다른 두 사람이 진행 방법에 대한 언급없이 진행을 하려고 했다. ["1002"] 는 '아 전체 그림' 하며 CRC 세션을 하려고 하는 중간. 한편 ["neocoin"] 은 같이 진행하고 있는 CRC 세션에 중간에 대해서 '지금 서로 무엇을 하고 있는거지?' 하며 혼란에 빠졌다. 똑같은 디자인 단계에 대해서 ["1002"] 는 전반적 Book Search 에 대해 생각을 하고 있었고, ["neocoin"] 은 모듈과 모듈간 연결고리에 대해 생각을 하였다.
하지만, 실제로 Library 내부에서는 많은 일들이 작동한다. 즉, keyword 를 해당 HTTP에서 GET/POST 스타일로 바꿔줘야 하고 (일종의 Adapter), 이를 HttpSpider 에게 넘겨주고 그 결과를 파싱하여 객체로 만든 뒤 Client 에게 돌려줘야 한다.
- SmallTalk/강좌FromHitel/소개 . . . . 31 matches
(application) 프로그램을 만드는데 사용할 수 있다는 것을 알려드리고자 합니
조적 프로그래밍 습관에 익숙한 우리들에게 객체 지향 기법을 구현할 수 있는 생
로그래밍을 하고, 따라서 객체지향 언어로 만들어진 프로그램이 전혀 객체지향
답지 안은 프로그램이 되고 만 것입니다. 그래서 저는 순수하게 객체지향적인 관
다. 이제는 '쓸만하다'고 생각되는 프로그램을 둘러보면 그 덩치가 어마어마하게
비대해져있음을 볼 수 있습니다. 따라서 이러한 프로그램이 얼만큼 빠르게 실행
되는가도 중요하겠지만, 얼만큼 빨리 이러한 프로그램을 만들 수 있느냐에 대한
경우 후자를 선택할 것입니다. 일단 빠른 시간 안에 프로그램의 개발을 끝내 놓
으면, 남는 시간은 프로그램의 수행 속도 향상을 위해 충분히 할예할 수 있기 때
프로그램을, C++의 갈래(class)를 사용하여 열 줄로 짰다고 해서, C++ 언어가 C
<바탕글 1> 200만개의 배열에서 특정 원소를 찾는 Delphi 프로그램
<바탕글 2> 200만개의 배열에서 특정 원소를 찾는 Smalltalk 프로그램
을 형성해 나아갑니다. 즉 다른 언어처럼 문법을 규정짓는 것이 아니라, 객체에
게 보내는 지시가 자연히 Smalltalk의 문법을 이루는 것입니다. 이는 흡사 인간
다. Smalltalk로 쓸만한 프로그램을 만들기 위해서는 필요로 하는 기능이 수백개
력하는 완전한 프로그램을 만들고 그것을 이해하려면 어느 정도의 시간이 필요합
니다. 그러나 Smalltalk에서 Hello World 프로그램을 만들 수 있다면, 그 다음은
정말 쉽게 쉽게 넘어갈 수 있습니다. C 언어의 경우, Hello World 프로그램을 만
는 내용밖에 알 수 없습니다. Smalltalk에서 Hello World 프로그램을 만들고 그
고 봐야합니다. Visual C++를 가지고 프로그램을 짜려면 적어도 MFC(Microsoft
- SmallTalk_Introduce . . . . 31 matches
(application) 프로그램을 만드는데 사용할 수 있다는 것을 알려드리고자 합니
조적 프로그래밍 습관에 익숙한 우리들에게 객체 지향 기법을 구현할 수 있는 생
로그래밍을 하고, 따라서 객체지향 언어로 만들어진 프로그램이 전혀 객체지향
답지 안은 프로그램이 되고 만 것입니다. 그래서 저는 순수하게 객체지향적인 관
다. 이제는 '쓸만하다'고 생각되는 프로그램을 둘러보면 그 덩치가 어마어마하게
비대해져있음을 볼 수 있습니다. 따라서 이러한 프로그램이 얼만큼 빠르게 실행
되는가도 중요하겠지만, 얼만큼 빨리 이러한 프로그램을 만들 수 있느냐에 대한
경우 후자를 선택할 것입니다. 일단 빠른 시간 안에 프로그램의 개발을 끝내 놓
으면, 남는 시간은 프로그램의 수행 속도 향상을 위해 충분히 할예할 수 있기 때
프로그램을, C++의 갈래(class)를 사용하여 열 줄로 짰다고 해서, C++ 언어가 C
<바탕글 1> 200만개의 배열에서 특정 원소를 찾는 Delphi 프로그램
<바탕글 2> 200만개의 배열에서 특정 원소를 찾는 Smalltalk 프로그램
을 형성해 나아갑니다. 즉 다른 언어처럼 문법을 규정짓는 것이 아니라, 객체에
게 보내는 지시가 자연히 Smalltalk의 문법을 이루는 것입니다. 이는 흡사 인간
다. Smalltalk로 쓸만한 프로그램을 만들기 위해서는 필요로 하는 기능이 수백개
력하는 완전한 프로그램을 만들고 그것을 이해하려면 어느 정도의 시간이 필요합
니다. 그러나 Smalltalk에서 Hello World 프로그램을 만들 수 있다면, 그 다음은
정말 쉽게 쉽게 넘어갈 수 있습니다. C 언어의 경우, Hello World 프로그램을 만
는 내용밖에 알 수 없습니다. Smalltalk에서 Hello World 프로그램을 만들고 그
고 봐야합니다. Visual C++를 가지고 프로그램을 짜려면 적어도 MFC(Microsoft
- 프로그래머의길 . . . . 29 matches
프로그래머는 화가와 같다. 화가의 그림에 대한 영감이 프로그래머의 코드에 대한 영감이며, 화가의 화판은 프로그래머의 자판인 것이다. 단지 프로그래머는 화가가 사용하는 붓대신 손을 이용한 코딩을 한다는 차이점 뿐이다. 맨처음 코딩에 대한 영감은 단순하게 시작한다. 하지만 그 영감을 현실속으로 끌어내기 위해서는 많은 시행착오를 거치게 된다. 자신의 실력을 한탄하기도 하면서 자신이 만들어낸 알고리즘에 흠뻑 취하기도 한다.
이와 반대로 이상을 선택하는 프로그래머는 그 다음부타 자신과의 싸움이 시적된다. 끈기 바로 이것이다. 흔히 우리는 능력이 탁월한 사람보다는 성실한 사람을 더 높이 평가해중다. 프로그래머 역시 끈기가 없으면, 완성도 높은 프로그램을 만들지 못한다. 자신이 만든 알고리즘이 아무리 탁월하다고 해도 이를 이용한 애플리케이션의 완성도가 높지 않으면, 아무리 탁월하다고 해도 이를 이용한 애플리케이션의 완성도가 높지 않으면, 아무도 알아주지 않는다. 필자는 수많은 디버깅과 요구사항을 수용해 나가면서 자신의 이상을 실현해 나가는 프로그래머를 높이 평가하고 싶다. 그리고 그러한 사람이야말로 발전 가능성이 있으며, 신뢰할 수 있는 프로그램을 만들기 때문이다.
초보자 들 중 주위 사람들 보다 좀더 많은 내용을 알고 있다는 자만심을 갖고 있는이들이 특히 그럴 확률이 높다. 이들은 일종의 유틸리티를 이용해 남들이 하지 못하는 기법을 익혀 이를 자랑하면서 우월감에 사로 잡히게 된다. 하지만 그러한 우월감은 그리 오래 가지 않는다. 자신보다 더 뛰어난 전문가를 만나면 '도대체 내가 무엇을 하고 있는가?'하는 반문이 생기기 때문이다. 여기서 이들은 '이해의 벽'을 피부로 느끼며, 컴퓨터를 이용한 새로운 도전을 받아들이게 된다. 물론 이 시점에서 이해의 벽을 뛰어넘지 못하는 이들도 있을 것이다.하지만 프로그신머의 길을 걸어가기를 원하는 이는 자신에게 닥친 상황을 돌파하기 위한 해결책을 찾는다. 이것이 바로프로그램이다. 필자는 이들에게 이렇게 말하고 싶다.
프로그램은 컴퓨터가 이해할 수 있는 기계어를 사람이 좀더 쉽게 알아볼 수 있도록 만든것에 불과하다 이를 다시 표현하자면, 기계와 언어소통하기 위해 프로그램을 배운다는 것이다. 우리는 외국어를 공부하면서 문화적 이질감으로 인해 단어의 의미를 파악하기 힘들때가 종종 있다. 이는 그 나라의 풍습과 역사를 이해하지 못하기 문이다. 컴퓨터도 마찬가지 이다. 컴퓨터를 이해하지 못하면 프로그램 역시 서투른 번역이 돼버린다. 다시 한번 논하지만, 프로그램을 배우는 과정을 컴퓨터를 이해한다는의미로 받아들이면 좀더 쉽게 중급자의 길로 도약할 수 있을 것이다.
첫번째 벽인 '''이해의 벽'''을 뛰어넘은 중급자는 그들만의 고유 영역을 갖게 된다. 이것이 바로 코딩이다. 코딩은 그 방법만 알면 쉽게 처리할 수 있다. 방법은 경륜이라 해도 과언이 아니다. 도공은 자신이 만든 도자기를 보며, 완벽하지 않은 것들을 일반인이 이해할 수 없을 정도로 부셔 버린다. 우리는 아무리 보아도 그것 들의 차이점을 알아낼 수가 없다. 하지만 경륜이 많은 도공은 도자기의 빛깔과 형태만 보아도 좋은 도자기인지 아니면 버려야할 도자기인지 알아낸다. 프로그램도 마찬가지이다. 컴퓨터를 이해하고 있는 프로그래머는 실행되고 있는 응용 프로그램만 보다도 어떻게 그것을 만들어 냈는지 알 수 있다 그리고 어떤 어려운 문제가 닥치더라도 해결점을 찾아낸다.
그렇다면 이 정도의 실력을 갖추기 위해서는 어떻게 해야할까? 아마도 많은 독자들이 궁금해하는 문제일 것이다. 정확한 해답이 있을 수 없는 질문이다. '''영어에 왕도는 없다'''라는 표현을 빌어 '''프로그램에는 왕도가 없다'''라고 표현하는 것이 정답일 것이다. 하지만 왕도는 없지만 방법은 있다. 바로 '''자신이 할 수 있다고 판단하는 것보다 항상 더 많은 일을 만들어 내라는 것이다.''' 의미는 도전 정신이 필요하다는 뜻이다. 예를 들어 자신에게 주어진 일이 10만큼의 크기라면 자신의 목표를 20정도로 세우는것이다. 그러면 10만큼도 하기 벅차다고 느끼던 것이 어느날 목표한 10을 이루고 20으로 다가가고 있는 자신을 발견하게 될것이다. 만약 목표한 10도 이루지 못했다고 해서 실망하지는 말자. 돌이켜 보면 프로젝트가 실패했다고 해서 잃는 것보다는 얻은 것 더 많다는 것을 알게 될것이다. 필자는 중급자의 벽인'창조의 벽'을 해결하기 위해서는 무엇보다도 도전 정신이 필요하다고 주장하고 싶다.
불교의 경전인 반야심경(般若心經)에 '색즉시공 공즉시색(色卽是空 空卽是色)이라는 용어가 있다. 이를 풀이하면 '얻는다는 것은 공 잃음이요, 잃어버리는 것이 곧 얻음이라'고 말할 수 있다. 필자가 이 깊은 말뜻을 이해하고 있다는 것은 아니다. 그렇다고 종교적 가치관이 뚜렷하다는 것은 더더욱 아니다. 하지만 프로그램을 자성해 오면서 반야심경이 전하는 이 말뜻을 조금이나마 이해하게 됐다는 표현이 적절할 것이다.
만약 이와 같이 생각한 독자가 있다면 필자가 의도하는 내용을 정확하게 파악한 것이 아니다. 버리라고 표현한 것은 자기 자신이 가지고 있는 생각, 즉 프로그램에 대한 생각을 버리라는 것이다. 우리 인간은 변화에 대한 불안함을 내포하고 있다 특히 나이가 들수록 그 정도는 심화되고, 젊은 사람들의 사고를 이해하기보다는 왜곡됐다고 평하게 된다. 이는 그 사람의 가치관이 고정돼 버렸기 때문에 자신의 사고와 일치하지 않는 다른 모든 행동을 잘못됐다고 생각한다.
프로그래머들이 가장 쉽게 빠져드는 유혹이 바로 이런 점이다. 자신이 지금까지 프로그램을 해도던 방식이야말로 정석이며, 진리라고 생각한다. 컴퓨터는 하루가 다르게 변하고 있지만 아직까지도 구시대 유물이 전부라고 생각한다. 필자는 단호하게 말하고 싶다.
그렇다면 어떤 시점에 코드를 버려햐 하는가? 필자는 크게 두 가지 시점에 대해 논하고자 한다. 첫번째 시점은 프로젝트를 진행하고 있는 과정에서 발생한다. 정확하게 표현하면, 새로운 기능의 가능성을 타진해 보는 프로토타입 프로그램을 완성한 시점이 된다. 소프트웨어 공학에서 설계의 중요성을 강조하기 위해 객체지향이라는 패러다임을 만들 만큼 코딩이전의 설계 단계를 강조하고 있다 물론 잘 작성된 프로그램 설계는 프로토타입이라는 중간 프로그램 생성이 필요 없이 설계 명세서에 의한 코딩만 하면 완벽한 응용 프로그램을 개발할 수 있다.
하지만 필자의 경험에 미뤄보면 이러한 경우는 업무 자동화와 같은 특정한 형식이 있는 응용 프로그램에 적용된다. 만약 프로젝트 설계자가 경험이 없는 응용 프로그램을 만들어야 한다는 가정을 두면 상황은 반전된다. 즉 설계자의 미경험에 의한 시행착오가 발생하는 것이다. 이러한 시행착오를 줄이는 방법이 새로운 기술에 대한 프로토타입의 개발이기는 하지만, 프로토타입으로 끝나야 한다. 하지만 우리의 실정은 아직까지도 프로토타입을 완성된 프로그램으로 생각하고 있는 경향이 지배적인것 같다.
코드를 버러야 하는 두번째 시점은 완성된 프로그램의 버젼 업그레이드에서 발생한다. 첫번째 경우보다 더 많은 용단을 필요로 하는 시점이기도 하다. 응용 프로그램의 버전업은 이미 만들어진 응용 프로그램에 사용자의 추가 요구사항을 수렴해서 개발한다는 의미와 이전 버전에서 발생된 문제점을 해결한다는 의미를 동시에 가지고 있다. 간혹 사용자의 추가 요구사항이 프로그래머가 상상할 수 없는 경우일 때도 있다. 그 모든 요구사항을 다 수렴해 프로그램을 만들수 는 없기 때문에 프로그래머는 타협점을 찾아 다음버전의 기능을 제한시키게 된다.
- MoreEffectiveC++/Exception . . . . 28 matches
여기에서 재미있는 기법을 이야기 해본다. 차차 소개될 smart pointer와 더불어 Standard C++ 라이브러리에 포함되어 있는 auto_ptr template 클래스를 이용한 해결책인데 auto_prt은 이렇게 생겼다.
일반적으로 C의 개념으로 짜여진 프로그램들은 createWindow and destroyWindow와 같이 관리한다. 그렇지만 이것 역시 destroyWindow(w)에 도달전에 예외 발생시 자원이 세는 경우가 생긴다. 그렇다면 다음과 같이 바꾸어서 해본다.
자 당신이 멀티미디어 주소록을 만든다고 상상하고, 프로그램을 짜보자 전화번호, 목소리, 사진, 이름 따위가 들어가야 할것이다. 다음 대강의 구현 코드들을 보면
그래서 더 좋은 방법은 Item 9에서 언급한 방법을 사용하는 것이다.
자 이건 괜찮아 보인다. 하지만 저 logDestruction상에서 예외가 발생한다면 어쩌게 할것인가? 해당 소스는 Session의 파괴자 안에서는 예외를 잡지 못한다. 그래서 해당 파괴자를 호출한 자에게 예외를 던진(전달한)다. 그렇지만 다른 에러들이 던져진 상황에서 파괴자가 스스로 자신을 부른거라면 함수의 종료가 자동으로 이루어지기를 원할 것이다. 그리고 당신의 프로그램은 이쯤에서 머추어 버릴 것이다. -해석이 이상하군, 암튼 다른 예외 처리시에 세션 파괴자 로그시 예외가 발생한다면 프로그램이 멈춘다는 소리다.
아마 대다수의 사람들이 이런 상태로 빠지는걸 원하지 않을 것이다. Session 객체의 파괴는 기록되지 않을 태니까. 그건 상당히 커다란 문제이다 그러나 그것이 좀더 심한 문제를 유발하는건 프로그램이 더 진할수 없을 때 일것이다. 그래서 Session의 파괴자에서의 예외 전달을 막아야 한다. 방법은 하나 try-catch로 잡아 버리는 것이다.
이렇게 아무런 처리를 하지 않는다면 logDestuction에서 발생한 예외가 전달되는걸 막고 프로그램 중지를 위하여 스택이 풀려나가는걸 막을수는 있을 것이다.
catch 구문을 사용할때 해당 구문을 통해서 전달받은 예외 객체들을 받는 방법을 잘알아야 한다. 당신은 세가지의 선택을 할수 있다. 바로 전 Item 12에서 언급한 것처럼 값(by value), 참조(by reference), 포인터(by pointer)이렇게 세가지 정도가 될것이다.
자, 먼저 pointer(by pointer)에 관한 전달을 생각해 보자. 이론적으로 이 방법은 throw위치에서 catch구분으로 예외를 특별한 변화 없이 느린 프로그램 수행 상태에서 전달하기에 가장 좋은 방법이다. 그 이유는 포인터의 전달은 해당 예외 객체가 복사되는 일없이 포인터 값만 전달되는 방법만을 취해야 하기 때문이다. 말이 좀 이상한데 예외를 보면서 설명한다.
이 코드는 깨끗하게 보이지만, 최선책은 아니다. 이런 일을 위해서 프로그래머는 예외 객체를 항상 품고있는 프로그램을 작성해야 할것이다. 간단히 전역(Global) staitc으로 선언하면 된다고 반문하겠지만, 전역의 위험성은 프로그래머가 그걸 쉽게 까먹을수 있다는데 있다. 다음 예제를 보면
이것도 피해야 할 방법이다. 왜냐하면 ''I-just-caught-a-pointer-to-a-destoyed-object'' 문제 때문이다. 게다가 catch구문에서 직면한 또하나의 문제는 대체 이 포인터를 누가 어디서 지우느냐 이다. 다른 면으로 생각해볼 문제는 예외 객체가 heap상에 배치된다면 지워 지지 않은 예외 객체는 틀임없이 resource leak를 발생 시킬 것이다. 너무 뻔한 이야기 인가. 그리고 프로그램의 행보가 어떻게 될지 예측 할수도 없다. 안그런가?
unexpected에 관련한 기본적인 행동은 terminate를 호출해서 terminate내에서 abort를 호출로 강제로 프그램을 멈추게 한다. 이 의미는 바로 abort는 프로그램을 종료할때 깨끗이 지우는 과정을 생략하기 때문에 활성화된 스택 프레임내의 지역 변수는 파괴되지 않는다.(즉, 프로그램이 멈추고 디버그시 그 상황에 현재의 자료 값을 조사할수 있다는 의미). 그래서 예외 처리의 명세을 어긴 문제는 상당히 심각한 상황이나, 거의 발생하지 않은 상황이다. 불행히도 그런 심각한 상황을 이르게 하는 함수 작성이 용이하다는게 문제이다. 컴파일러는 오직 예외 명세에 입각한대로 부분적으로 예외 사용에 관한 검사를 한다. 예외가 잡을수 없는것-언어 표준 상에서 거부하는(비록 주의(wanning)일지라도) ''금지하는'' 것- 은 함수를 호출할때 예외 명세에서 벗어나는 함수일것이다.
당신의 컴파일러가 예외 처리규정에 만족하지 않은 루틴을 가진 함수의 코드를 호출하는데 별 무리없다고, 그러한 호출이 아마 당신의 프로그램에서 프로그램의 중지를 유도하기 때문에 당신은 소프트웨어를 만들때 최대한 그런 만족되지 않은 호출을 최소화 하도록 결과를 유도해야 할것이다. 시작시 가장 좋은 방향은 템플릿상에서의 예외 스펙를 최대한 피하는 것이다. 자 다음의 어떠한 예외도 던지지 않은 템플릿을 생각해 보자.
만약 위와 같이 하고 bad_exception(표준 라이브러리 상의 exception의 기본 예외 클래스)를 당신의 모든 예외 명세에 포함시키면 당신은 결코 당신ㄴ의 프로그램이 불시에 멈추어 버리는것에 대한 걱정을 할 요는 없을 것이다. 거기다가 규정에 맞지않는 예외들도 bad_exception으로 교체되고 예외는 기본 예외 대신에 다시 던저 퍼진다.(propagate)
이제 당신은 예외 명세가 많은 문제를 가지고 있을수 있음을 이해 할것이다. 컴파일러는 그들의 부분적인 쓰임새를 검사해서 템플릿에서 문제를 발생할 소지를 않으며, 컴파일러는 의외로 규칙위반을 하기 쉽고, 컴파일러가 제대로 되지 않으면 프로그램을 불시에 멈추어 지도록 유도할것이다. 예외 명세 역시 또다른 문제를 안고 있는데, 예외명세는 높은 수준의 호출자가 예외 발생을 대비할때도 unexpected로의 결과물을 만들어 낸다.
Session의 파괴자는 logDestruction을 호출한다. 하지만 명시작은 어떠한 예외도 해당 logDestruction에서 던지지 못하도록 막아놓았다. 한번 logDestuction이 실패할때 불리는 함수들에 대하여 생각해 보자. 이것은 아마 일어나지 않을 것이다. 우리가 생각한대로이건 상당히 예외 명세의 규정 위반으로 인도하는 코드이다. 이런 예측할수 없는 예외가 logDestruction으로 부터 퍼질때 unexpected가 풀릴 것이다. 기본적으로 그것은 프로그램을 멈춘다. 이 예제는 그것의 수정 버전이지만, 그런 수행을 Session 파괴자의 제작자가 원할까? 작성자는 ''모든 가능한 예외'' 를 잡으려고 노력한다. 그래서 그건 Session 파괴자의 catch블럭에서수행되는 것이 다다면 그건 불공평한 처사라고 보인다. 만약 logDestruction이 아무런 예외 명세를 하지 않는다면, ''I'm-willing-to-catch-it-if-you'll-just-give-me-a-chance'' 시나리오는 결코 일어나지 않을것이다. (이런 문제의 예방으로 unexpected의 교체에 대한 설명을 위해 언급해 두었다.)
예외 명세의 균형있는 시각은 중요한것이다. 그것은 예외 발생을 예상하는 함수들의 예외 종류들을 보면 훌륭한 문서화가 될것이고, 잘못된 예외 명세의 상황하의 프로그램은 기본적으로 주어지는 상태 즉, 즉시 멈추는 것을 정당화할 만큼 잘못된 일이다. 같은 시각으로 예외는 컴파일러에 의하여 오직 부분적인 점검만을 당하고 예외는 의도하지 않은 잘못을 양산하기 쉬울것이다. 게다가 예외는 unexpected 예외에서 발생하는 높은 레벨의 예외 잡는 문제에 대하여 예방할수 있다.
'''자 그럼 전혀 예외 핸들링을 하지 않았을때의 지불 비용을 생각해 보자,''' 당신은 객체들이 적재되고, 유지되는 트랙이 필요한 데이터 구조의 사용을 위해 공간에 대한 비용 지불을 한다. 그리고 당신은 이런 데이터 구조들을 갱신하고 유지하는데 필요한 시간에 대한 비용을 지불한다. 이런 비용들은 일반적으로 정당한 요구이다. 반면에 프로그램이 예외를 위한 지원이 없이 컴파일 된다면 예외 지원을 하고 컴파일 하는 반대의 경우보다 좀더 빠르고, 좀더 작은 용량을 차지한다.
프로그램은 일반적으로 독립적으로 object 파일들이 생성되어 지고, 단지 하나의 작성되어 만들어진 object파일에서 예외 처리가 없다면 다른 것들상의 예외 처리가 아무런 의미가 없기때문에, 당신이 예외처리코드를 사용하지 않는다면, 당신은 컴파일러 제작사들이 이런 예외들을 지원시 일어나는 비용을 없앨 것이라고 예상한다. 게다가 object파일이 예외를 빼기위해 아무런 상호간의 링크가 되지 않는다면 예외 처리가 들어간 라이브러리와의 링크는 어떨까? 즉, 프로그램의 어떤 부분이라도 예외를 사용한다면 나머지 프로그램의 부분들도 예외를 지원해야 한다. 이런 부분적 예외 처리 상황은 실행시간에 정확한 예외를 잡는 수행이 불가능 하게 만들것이다.
물론 저것은 이론이다. 실질적으로 예외 지원 밴더들은 당신이 예외 작성을 위한 코드의 첨가를 당신이 예외를 지원하느냐 마느냐에 따라 조정할수 있도록 만들어 놓았다.(작성자주:즉 예외 관련 처리의 on, off가 가능하다.) 만약 당신이 당신의 프로그램의 어떠한 영역과, 연계되는 모든 라이브러리에서 try, throw, catch를 빼고 예외 지원 사항을 빼고 당신 스스로 속도, 크기 같은 예외처리시 발생하는 단점을 제거할수 있을 것이다. 시감이 지나 감에 따라 라이브러리에 차용되는 예외의 처리는 점점 늘어나게 되고, 예외를 제거하는 프로그래밍은 갈수록 내구성이 약해 질것이다. 하지만, 예외처리를 배제한 컴파일을 지원하는 현재의 C++ 소프트웨어 개발상의 상태는 확실히 예외처리 보다 성능에서 우위를 점한다. 그리고 그것은 또한 예외 전달(propagate) 처리와, 예외를 생각하지 않은 라이브러리들의 사용에 무리없는 선택이 될것이다.
- 데블스캠프2005/RUR-PLE/SelectableHarvest . . . . 28 matches
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_carrot()
def pick():
pick_beeper()
def carrot_pick():
pick()
def move_pick():
carrot_pick()
def move_pick5():
repeat(move_pick,5)
move_pick5()
carrot_pick()
carrot_pick()
- HolubOnPatterns/밑줄긋기 . . . . 26 matches
* 패턴은 이와 같이 일반적인 해결 방법이기 때문에 한 프로그램에서 다른 프로그램으로 디자인패턴을 복사해 붙여넣는 것은 거의 불가능하다.
* 프로그래머는 지금 앞으로 어떻게 될지 모를 기능을 추가하는 것이 아니라 새로운 기능을 추가하거나 기존의 것을 수정하기 쉽도록 프로그램을 작성해야 하는 것이다.
* 프로그래밍 프로세스는 디자인에서 시작하며 상속, 캡슐화, 디자인 패턴 등을 이용하고 디자은의 실체인 컴퓨터 프로그램을 내놓는다.
* 사실 많은 절차 지향적 프로그램은 사용자 인터페이스를 통해 데이터베이스 테이블을 보여주는 역할을 할 뿐이다.
* 절차 지향 시스템에서는 변화가 프로그램의 나머지에 '퍼져나가는'경향이 있다.
* 자바가 객체지향 프로그램을 줄거라 생각하지마!! - [서지혜]
* OO는 컴퓨터 프로그램에 내재하는 피할 수 없는 복잡성을 조직화 하는 것이지, 복잡성 자체를 제거하는 것이 아니다.
* 잘못된 마인드를 가진 프로그래머는 모든 언어를 이용해서 쓰레기 코드를 작성해 내는 마법을 부릴 수 있다.
* 셀룰러 오토마타(Cellular automata)의 프로그램 구현은 OO 시스템의 훌륭한 예가 된다. 셀룰러 오토마타 프로그램은 복잡한 문제를 정확히 객체 지향적인 방식으로 해결한다.
* 코드가 올바른 방식으로 구조화되지 않았기 때문에 유지 보수가 필요 이상으로 어렵다는 것이다. 이런 경우 리팩토링이 아닌 프로그램의 재디자인이 필요하다.
* 어떤 사람들은 이러한 방식으로 CRC카드를 이용해 실제 프로그램까지도 디자인하지만 이 방식은 복잡한 대규모 프로그램까지 수용할 정도로 효율적이지는 않다. 대부분의 프로그래머는 정식 프로세스를 사용하여 UML로 동적 모델과 정적 모델을 개발한다.
* 디자인 패턴은 크게 보면 구현 상속(extends)을 인터페이스 상속(implements)으로 바꾸는 방법을 설명하고 있다.
* 다형성이란 개념은 OO의 고유한 특성이며, 다형성을 사용하지 않는 프로그램은 객체 지향적이지 않다는 주장은 설득력있다.
* 애자일 병행 개발의 중심에는 유연성이란 개념이 있다. 새로 추가된 요구 사항을 쉽게 반영할 수 있는 코드를 만든다는 것이다. 또한 아마도 필요할지도 모르는 기능을 구현하기보다는 꼭 필요한 기능을 구현하되, 프로그램은 변화를 수용할 수 있어야 한다.
* 프로그램을 정상적으로 동작하게 할 수 있는 꼼수를 발견했다면 뭐 그런대로 괜찮다. 하지만 내 주장의 핵심은 '''애초에 상속으로 인한 문제가 발생하지 않도록 했어야 한다는 것이다.'''
* 디자인을 하는 데 어떤 방법을 따르느냐는 결과에 큰 영향을 미친다.
* 형진이가 지도해준 동적 모델링으로 우리가 하고있던 DB와 임상이 하는 SE를 모델링했을때는 참 재밌었지. 확실히. 내가 짠 프로그램보단 복잡도가 낮아보였어. 부럽. - [김준석]
* 상속한 메소드에서 예외를 던지지 말라. 즉 리스코프 대체 원칙(LSP)를 지키라. LSP를 어기면 다형성을 이용한 코딩을 할 수 없고, 결과적으로 개방 폐쇄의 원칙(OCP)도 지킬 수 없게 된다.
==== 팩토리를 이용한 동적 생성 ====
* 하드 코딩을 통해 어떤 객체를 생성할지를 결정하게 되면 프로그램이 실행되고 잇는 도중에는 행위를 바꾸지 못한다.
- Gof/Facade . . . . 23 matches
이러한 클래스들로부터 클라이언트들을 보호할 수 있는 고급레벨의 인터페이스를 제공하기 위해 컴파일러 서브시스템은 facade 로서 Compiler class를 포함한다. 이러한 클래스는 컴파일러의 각 기능성들에 대한 단일한 인터페이스를 정의한다. Compiler class는 facade (원래의 단어 뜻은 건물의 전면. 외관, 겉보기..) 로서 작용한다. Compiler class는 클라이언트들에게 컴파일러 서브시스템에 대한 단일하고 단순한 인터페이스를 제공한다. Compiler class는 컴파일러의 각 기능들을 구현한 클래스들을 완벽하게 은폐시키지 않고, 하나의 클래스에 포함시켜서 붙인다. 컴파일러 facade 는저급레벨의 기능들의 은폐없이 대부분의 프로그래머들에게 편리성을 제공한다.
Facade (Compiler)
3. 그러하면서도 어플리케이션은 여전히 서스시스템 클래스들을 사용할 방법을 제공한다. 사용의 편리성과 일반성을 선택할 수 있다.
자, Compiler 서브시스템에 어떻게 facade가 입혀지는지 자세히 보도록 하자.
Compiler 서브시스템은 BytecodeStream 클래스를 정의한다. 이 클래스는 Bytecode 객체의 스트림부를 구현한다. Bytecode 객체는 머신코드를 구체화하는 bytecode를 캡슐화한다. 서브시스템은 또한 Token 클래스를 정의하는데, Token 객체는 프로그램 언어내의 token들을 캡슐화한다.
우리가 토론해온 클래스들은 곧 Compiler 서브시스템을 이룰 것이다. 자 이제 우리는 이 모든 조각들을 함께 묶은 facade 인 Compiler 클래스를 소개할 것이다. Compiler는 소스 컴파일과 특정 machine에 대한 코드변환기능에 대한 단순한 인터페이스를 제공한다.
class Compiler {
Compiler ();
virtual void Compile (istream&, BytecodeStream&);
void Compiler::Compile (
이 구현에서는 사용하려는 code-generator의 형태에 대해서 hard-codes (직접 특정형태 부분을 추상화시키지 않고 바로 입력)를 했다. 그렇게 함으로서 프로그래머는 목적이 되는 아키텍처로 구체화시키도록 요구받지 않는다. 만일 목적이 되는 아키텍처가 단 하나라면 그것은 아마 이성적인 판단일 것이다. 만일 그러한 경우가 아니라면 우리는 Compiler 의 constructor 에 CodeGenerator 를 인자로 추가하기 원할 것이다. 그러면 프로그래머는 Compiler를 instance화 할때 사용할 generator를 구체화할 수 있다. Compiler facade는 또한 Scanner나 ProgramNodeBuilder 등의 다른 협동하는 서브시스템클래스를 인자화할 수 있다. 그것은 유연성을 증가시키지만, 또한 일반적인 사용형태에 대해 인터페이스의 단순함을 제공하는 Facade pattern의 의의를 떨어뜨린다.
Sample Code의 compiler 의 예는 ObjectWorksSmalltalk compiler system에서 영감을 얻은 것이다.[Par90]
앞의 다이어그램이 보여주듯, 가상 메모리 서브시스템은 내부적으로 다음과 같은 컴포넌트를 이용한다.
- 새싹교실/2012/AClass/3회차 . . . . 23 matches
7.2차원 배열(4x4) 두개의 곱을 구하는 프로그램 작성.
8.다음 형태로 출력되는 프로그램을 짜 보세요.
9.포인터를 이용한 예제코드 하나를 짜 보세요.
10.LinearSearch를 구현해보세요. 배열은 1000개로 잡고, random함수를 이용해 1부터 1000까지의 숫자를 랜덤으로 배열에 넣은 후, 777이 배열내에 있었는지를 찾으면 됩니다. 프로그램을 실행시킬 때마다 결과가 달라지겠죠?
- 다른 종류의 데이터를 하나로 묶어서 사용하는 데이터 결합법을 구조체라고 한다. 구조체는 같은 자료형을 묶어서 한다면 구조체는 다른 자료형을 묶어 사용한다.
2.동적할당이 무엇인지 알아보고, 동적할당을 하는 방법을 써 보세요.
4.스택, 큐가 무엇인지 설명하고, 이를 이용한 간단한 예제를 만들어보세요.
7.2차원 배열(4x4) 두개의 곱을 구하는 프로그램 작성.
8.다음 형태로 출력되는 프로그램을 짜 보세요.
9.포인터를 이용한 예제코드 하나를 짜 보세요.
10.LinearSearch를 구현해보세요. 배열은 1000개로 잡고, random함수를 이용해 1부터 1000까지의 숫자를 랜덤으로 배열에 넣은 후, 777이 배열내에 있었는지를 찾으면 됩니다. 프로그램을 실행시킬 때마다 결과가 달라지겠죠?
2.동적할당이 무엇인지 알아보고, 동적할당을 하는 방법을 써 보세요.
프로그램이 실행되는 동안에 할당해야 하는 메모리의 크기를 결정지을 수 있기 때문이다.
4.스택, 큐가 무엇인지 설명하고, 이를 이용한 간단한 예제를 만들어보세요.
8.2차원 배열(4x4) 두개의 곱을 구하는 프로그램 작성.
9.다음 형태로 출력되는 프로그램을 짜 보세요.
10.포인터를 이용한 예제코드 하나를 짜 보세요.
11.LinearSearch를 구현해보세요. 배열은 1000개로 잡고, random함수를 이용해 1부터 1000까지의 숫자를 랜덤으로 배열에 넣은 후, 777이 배열내에 있었는지를 찾으면 됩니다. 프로그램을 실행시킬 때마다 결과가 달라지겠죠?
2.동적할당이 무엇인지 알아보고, 동적할당을 하는 방법을 써 보세요.
4.스택, 큐가 무엇인지 설명하고, 이를 이용한 간단한 예제를 만들어보세요.
- 몬테카를로법 . . . . 22 matches
= 몬테카를로법 =
[몬테카를로법]이란, [시뮬레이션] 테크닉의 일종으로, 구하고자 하는 수치의 확률적 분포를 반복 가능한 실험의 통계로부터 구하는 방법을 가리킵니다. [확률변수]에 의거한 방법이기 때문에, 1949년 Metropolis Uram이 [모나코]의 유명한 도박의 도시 [몬테카를로]Monte Carlo의 이름을 본따 명명하였습니다.
[몬테카를로법]의 역사는 멀게는 확률론의 개척자들이었던 도박사들이 여러 번의 임의추출을 바탕으로 특정한 카드 조합이 나올 확률을 직접 계산했던 중세까지 거슬러올라갈 수 있습니다만, 진정한 의미에서의 몬테카를로법을 처음 사용한 사람은 현대 [컴퓨터] 구조의 완성자이기도 한 천재 수학자 [폰 노이만]으로, 그가 참여했던 [맨해튼 프로젝트](미국의 [원자폭탄] 개발 계획)에서 중성자 확산 시뮬레이션에 처음 사용한 것으로 알려져 있습니다.
간단하면서도 유명한 예로, 몬테카를로법을 이용한 파이(∏)의 계산법이 있습니다.
이와 같이 몬테카를로법은, 많은 수의 실험을 바탕으로 통계 자료를 얻어 그 자료로부터 역산하여 어떤 특정한 수치나 확률분포를 구하는 방법입니다. 특성상 통계자료가 많을수록, 또 입력값의 분포가 고를수록 결과의 정밀성이 보장된다는 것을 알 수 있습니다. 때문에 컴퓨터를 이용하여 시뮬레이션이 행해집니다.
몬테카를로법의 특징으로는, 우선 적용하기 쉽다는 점이 있습니다. 실제로 파이의 값을 정확히 구하기 위해서는 무한급수에 관한 지식과 오차범위에 관한 지식 등 다양한 배경 지식을 바탕으로 올바른 알고리즘을 만들어 그 값을 계산해야 하지만, 몬테카를로법은 그런 모든 절차와 관계없이 짧은 컴퓨터 프로그램 몇줄만으로 쉽게, 비교적 정확한 수치를 얻을 수 있습니다.
이런 장점은 이론적 배경만으로는 계산하기 어려운 수치들 - 예를 들면 복잡한 형태를 가진 표면에 빛을 비추었을 때 반사광의 분포, 복잡한 분자계의 화학적 특성 분석, 핵융합로에서 중성자 빔이 반응에 미치는 영향 등 - 을 직접 구할 필요가 있을 때 빛을 발합니다. 때문에 컴퓨터를 이용한 분석이 발달한 최근에는 거의 모든 과학과 공학 분야에 걸쳐 몬테카를로법이 광범위하게 사용되고 있습니다.
몬테카를로법을 통한 실험을 설계할 때는, 입력값의 확률분포와 실험의 수학적 모델링이 정확하지 않으면 몬테 카를로 방법은 무의미하다는 점에 주의하여야 하며, 난수의 분포가 분석에 큰 영향을 미치므로 필요한 난수의 범위와 분포에 따른 올바른 난수 생성 함수에도 주의를 기울여야 합니다.
* ["몬테카를로법/pi구하기"]
- 새싹교실/2012/startLine . . . . 21 matches
* 처음이라 간단하게 하려고 변수와 연산에 대해서만 말을 했는데, 간단하게 하려고 하니까 너무 내용이 간단해져서 뭔지 모르는 사이에 내용이 다 끝나버렸습니다. 그렇다고 잘 했느냐고 하면 그것도 딱히 아닌 느낌이네요. 앞으로는 실습 위주로 하면서 조금 더 자세하게 진행을 해야 하지 않을까 싶습니다. 경우에 따라서는 완전히 다른 방법을 써야 할지도 모르겠지만... 어쨌든 아는 것과 가르치는 것은 다르다는 것을 새삼 느낀 시간이었습니다. - [서민관]
* 박환희 - 오늘은 제어문에 대한 내용을 배웠고 느낌은 마음이 편하였고 제어문에는 이러한 종류가 있다는것을 알았고 앞으로 문법을 좀더 익혀야겠다는것을 생각했습니다.
* 서민관 - 제어문의 사용에 대한 수업(if문법, switch.. for...) 몇몇 제어문에서 주의해야 할 점들(switch에서의 break, 반복문의 종료조건등..) 그리고 중간중간에 쉬면서 환희가 약간 관심을 보인 부분들에 대해서 설명(윈도우 프로그래밍, python, 다른 c함수들) 저번에 생각보다 진행이 매끄럽지 않아서 이번에도 진행에 대한 걱정을 했는데 1:1이라 그런지 비교적 진행이 편했다. 그리고 환희가 생각보다 다양한 부분에 관심을 가지고 질문을 하는 것 같아서 보기 좋았다. 새내기들이 C를 배우기가 꽤 힘들지 않을까 했는데 의외로 if문이나 for문에서 문법의 이해가 빠른 것 같아서 좀 놀랐다. printf, scanf나 기타 헷갈리기 쉬운 c의 기본문법을 잘 알고 있어서 간단한 실습을 하기에 편했다.
* 포인터의 개념, 프로그램 실행시 메모리의 구조.
* malloc 함수를 이용한 메모리 할당.
* 처음에 간단하게 재현, 성훈이의 함수에 대한 지식을 확인했다. 그 후에 swap 함수를 만들어 보고 실행시의 문제점에 대해서 이야기를 했다. 함수가 실제로 인자를 그대로 전달하지 않고 값을 복사한다는 것을 이야기 한 후에 포인터에 대한 이야기로 들어갔다. 개인적으로 새싹을 시작하기 전에 가장 고민했던 부분이 포인터를 어떤 타이밍에 넣는가였는데, 아무래도 call-by-value의 문제점에 대해서 이야기를 하면서 포인터를 꺼내는 것이 가장 효과적이지 않을까 싶다. 그 후에는 주로 그림을 통해서 프로그램 실행시 메모리 구조가 어떻게 되는지에 대해서 설명을 하고 포인터 변수를 통해 주소값을 넘기는 방법(call-by-reference)을 이야기했다. 그리고 malloc을 이용해서 메모리를 할당하는 것과 배열과 포인터의 관계에 대해서도 다루었다. 개인적인 느낌으로는 재현이는 약간 표현이 소극적인 것 같아서 정확히 어느 정도 내용을 이해했는지 알기가 어려운 느낌이 있다. 최대한 메모리 구조를 그림으로 알기 쉽게 표현했다고 생각하는데, 그래도 정확한 이해도를 알기 위해서는 연습문제 등이 필요하지 않을까 싶다. 성훈이는 C언어 자체 외에도 이런저런 부분에서 질문이 많았는데 아무래도 C언어 아래 부분쪽에 흥미가 좀 있는 것 같다. 그리고 아무래도 예제를 좀 더 구해야 하지 않을까 하는 생각이 든다. - [서민관]
* 포인터의 기초와 포인터를 이용한 swap 함수 구현, 값 변환. 그리고 malloc의 형태 기초와 좀 더 쉽게 쓰는 법 익힘. 다음엔 malloc을 이용한 응용프로그램 구현을 해보고 싶다. - [최재현]
* 포인터의 개념, 프로그램 실행시 메모리의 구조.
* 개인적으로 현재 시점에서 과제를 낸다면 C의 문법을 익히기 위한 과제를 준비할 것 같은데 환희가 현재 시점에서 C 문법을 나름대로 잘 쓰는 만큼 그렇게까지 무리해서 과제를 낼 필요는 없지 않을까 싶다. 사실 언제쯤부터 어떤 과제들을 내야 할지 정확히 감이 안 잡히는 것도 있지만... - [서민관]
포인터변수가 가지는 값과 *, &연산자의 사용법을 잘(은 익혔는데 아직도 긴가민가하고..) 배웠구요..
* 포인터 변수에 값을 주어 초기화 하려면 어떻게 해야 하는가(malloc 함수의 사용)와 메모리 해제(free 함수)에 대한 이야기를 했다. 그리고 배열과 포인터에 대한 이야기를 했는데, 배열도 결국 연속된 메모리를 잡는다는 점에서 포인터와 같고 값의 참조도 포인터 변수와 똑같이 할 수 있다는 것을 다뤘다. 그 후에는 포인터 변수(배열)를 인자로 받는 함수를 만드는 법을 배우고, 배열을 인자로 받을 때는 반드시 길이를 관리해줘야 한다는 이야기를 했다. - [서민관]
* 정모 전에 두 시간, 정모 끝나고 두 시간이 걸린 정말 긴 새싹이었습니다. ;;;; 처음 계획으로는 재현이나 성훈이랑 비슷하게 구조체 문법과 사용에 대해서 간단하게 다룰 생각이었는데 환희가 왜 구조체가 필요한지에 대한 이야기를 하면서 이야기가 많이 다른 방향으로 흘러갔네요. 일단 구조체가 필요한 이유를 추상화의 관점에서 추상화 한 타입(구조체)과 타입에 관한 연산(함수)을 제공하기 위해서라고 말을 했는데 그래도 직접 피부에 와 닿았을지 어떨지는 좀 걱정입니다. 역시 이런 부분은 직접적으로 경험을 해 보지 않으면 안 될 것 같네요. 한 시스템(도서관 관리 프로그램이나 은행 시스템 등)을 재현이, 성훈이랑 셋이서 쪼개서 만들어 보게 하거나 하는 게 좀 괜찮지 않을까 싶습니다. 나중에 시켜봐야지. - [서민관]
* 프로그램을 의미단위(함수)로 쪼개기.
* 함수와 구조체 문법에 대한 복습과 '함수형 프로그래밍'에 대해서 다루었다. 복습은 시험이 끝나고 잊어버렸을 테니까 한 것이고 중요한 것은 뒤쪽에서 했던 함수형 프로그래밍 부분이다. 전체적인 내용은 프로그램을 의미단위(함수)로 쪼개는 의사코드를 적고 함수의 껍데기를 만든 후에 내용물을 채워 나가는 방식이었다. 개인적으로 내 새싹에서 꼭 다루고 싶었던 내용의 절반에 해당하는 부분이라 고민을 많이 했는데, 그래도 전하기는 잘 전한 것 같다. 다음으로는 가르쳐야 할 나머지 절반인 설계에 대한 실습을 좀 해 봐야 할 것 같다. - [서민관]
* winapi.co.kr
* Callback(winapi 이야기하면서) + winapi.co.kr
* 전체적으로 제대로 완성하는 프로그램을 만들어 본다는 점에 의의가 있을 것 같습니다.
- 작은자바이야기 . . . . 21 matches
* Java API와 주요 기술
* 현업 Java 개발자도 놓치기 쉬운 문제들을 짚어보고, 올바른 Java 프로그램을 빠르고 깔끔하게 구현하는데 필요한 중급 수준의 지식을 전달하기 위해
* 언어에 관한 것 뿐만 아니라 유용한 라이브러리, 자바 개발 환경 등 개발을 더 빠르고 편리하게 할 수 있는 방법을 배우기 위해서.
* 클래스와 그 멤버에 적용하는 기본 modifier들의 개념 및 용법을 다뤘습니다.
* JNI라는 기법을 사용해 네이티브 라이브러리를 연결하여 함수를 호출할 수 있음을 배웠습니다.
* c++에서 상호배제 관련으로 mutex나 critical section같은거 엄청 배웠었는데 자바에서는 synchronized를 이용해서 쉽게 처리할 수 있다는게 신기했습니다. os 수업 들은지 오래 됐는데 멀티프로세스와 멀티스레드 수업을 다시 들으니까 설명을 참 잘 해주셔서 좋았습니다. 함수에만 붙일 수 있는게 아니고 보호자원을 가진 객체를 이용한 synchronized(this){ ... } 같은 부분은 나중에 스레드를 쓸 경우에 참고가 될 것 같습니다. 그리고 인터페이스와 리플렉션을 이용한 초기화를 보니 생각을 잘 하면 구체클래스가 코드에 안드러나게 할 수 있다는 점도 볼만했습니다. -[서영주]
* 전체적으로 다른 언어에서는 볼 수 없는 자바의 문법 + 객체지향 원칙을 중점적으로 다룬 시간이었습니다. 중간중간 다른 이야기들(builder 패턴, 저작권)이 들어갔지만 그래도 다룬 주제는 명확하다고 생각합니다. 다만 그걸 어떻게 쓰느냐는 흐릿한 느낌입니다. 그건 아마도 각 원칙들이나 interface, 객체 등에 대한 느낌을 잡기 위해서는 경험이 좀 필요하기 때문이 아닌가 싶습니다 ;;; 수경이가 말한 대로 한 번이라도 해 본 사람은 알기 쉽다는 말이 맞지 않을까 싶네요. 그리고 전체적으로 이야기를 들으면서 현재 프로젝트 중인 코드가 자꾸 생각나서 영 느낌이 찝찝했습니다. 세미나를 들으면서 코드를 생각하니까 고쳐야 될 부분이 계속 보이는군요. 그래도 나름대로 코드를 깔끔하게 해 보려고 클래스 구조도 정리를 좀 하고 했는데 더 해야 할 게 많은 느낌입니다. ㅠㅠ 그 외에도 이번 시간에 들었던 메소드의 책임이 어디에 나타나야 하는가(객체 or 메소드) 라거나 상속을 너무 겁내지 말라는 이야기는 상당히 뚜렷하게 와 닿아서 좋았습니다. 아. DIP에서 Logic과 native API 사이에 추상화 레이어를 두는 것도 상당히 좋았는데 기회가 되면 꼭 코드로 보고 싶습니다. 아마 다음에 보게 되겠지만. - [서민관]
* Reflection API
* Generics와 Reflection을 이용한 ObjectMapper 만들기
* Class mapping by annotation
* Windows7 기준으로 [사용자이름]\.m2\[groupid]\[artifactid] 폴더에 jar 파일을 만들어 준다.
* mvn compile - src/main/java에 있는 소스파일을 컴파일해서 .class를 만들어 target/classes로 보낸다.
* abstract factory를 잘 쓰기 위해서는 인터페이스에 api가 잘 설계되어 있어야 한다.
* Statement, ResultSet에 대해서도 마찬가지로 인터페이스를 이용한 abstract factory가 사용됨.
* abstract factory는 확장 위주의 패턴이다. 자바 프레임 워크에서는 api의 확장이 중요하기 때문에 자주 보이지만 일반적인 어플리케이션에서는 확장성을 제공할 필요성이 적기 때문에 많이 나타나지 않는다.
* ~let : 외부의 컨테이너에서 라이프사이클을 관리해주는 프로그램. 안드로이드의 activity같은 경우 외부에서 실행시켜서 동작하게 됨. 그것과 비슷한 것.
* applet : 어플리케이션(브라우저)상에서 돌아가는 작은 프로그램.
* servlet : 서버상에서 돌아가는 작은 프로그램. 아파치 웹서버의 모듈 방식(외부에서 http request가 날아오면 서버가 받아서 알맞은 모듈에 전달해줌.)처럼 만들어 놓은 것.
* portlet : 포탈(관리프로그램 등)상에서 돌아가는 작은 프로그램.
* javaSE : JLS(java language specification) + java api를 가리킴. 자바의 실제 문법과 언어에 필요한 기본적인 기능들. 참조 구현체로는 hotspot JVM이 있다.
- SmallTalk/강좌FromHitel/강의2 . . . . 20 matches
1.1. 프로그램과 프로그래밍 언어
1.3. Smalltalk 맛보기 프로그램
Smalltalk를 사용하여 프로그램을 짜기 위해서는 우선 여러분의 시스템에
이름을 지원하는 압축 프로그램을 사용하여 압축을 푸십시오.
4. 다른 응용 프로그램을 설치할 때처럼 그냥 <Next> 단추를 누르면
든지 Dolphin Smalltalk를 제어판의 "프로그램 추가/삭제"를 통해서 제거할
Dolphin Smalltalk를 시작하기 위해서는 "시작 → 프로그램 → Dolphin
절차를 거치지 않았기 때문에 프로그램의 실행 결과를 저장할 수 없다는 것
1.3. Smalltalk 맛보기 프로그램
이 문장들에는 여러분이 Smalltalk 프로그램을 실행하는데 익숙해지도록, 그
프로그램들이 실려 있습니다. 이제 여기서는 이 창에 들어 있는 Smalltalk
프로그램을 실행하고 그 결과를 알아보는 방법을 알아봄으로써, Smalltalk
Smalltalk 시스템에 명령을 내리거나, 이미 만들어진 프로그램의 결과를 확
인하는 곳입니다. 일터는 '메모장'이나 '워드패드'와 비슷한 동작 방법을 가
☞ a SortedCollection(_FPIEEE_RECORD AbstractCardContainer
☞ a Process(a CompiledExpression, priority: 5, state: #ready)
글 1>은 간단한 디지털 시계를 만들어서 화면에 보이는 프로그램이었습니다.
<바탕글 2> 복권 추첨 프로그램
Smalltalk에서 응용 프로그램을 만드는 "MVP 짜임새"의 예를 보여주는 것입
창에 대해서도 나중에 상세하게 다루겠지만, 여기서는 단지 프로그램이 어떤
- 데블스캠프2002/날적이 . . . . 20 matches
드러나지 않은 보이지 않는 행위자가 하나 나왔는데, 이는 초기 데이터를 제공해줄 '무언가' 였다. 여기서는 이 프로그램 세계의 지배자인 'God' 를 상정했다. 신은 바퀴벌레의 창조자이며, 바퀴벌레의 운명 (여정)을 정해주며, 땅(판)을 만들어낸다.
2. Scenario Driven - 앞의 CRC 세션때에는 일반적으로 Class 를 추출 -> Requirement 를 읽어나가면서 각 Class 별로 Responsibility 를 주욱 나열 -> 프로그램 작동시 Scenario 를 정리, Responsibility 를 추가. 의 과정을 거쳤다. 이번에는 아에 처음부터 Scenario 를 생각하며 각 Class 별 Responsibility 를 적어나갔다. Colloboration 이 필요한 곳에는 구체적 정보를 적어나가면서 각 Class 별 필요정보를 적었다. 그리하여 모든 Scenario 가 끝나면 디자인 세션을 끝내었다.
* 위의 장점은 이미 이 프로그램을 우리가 알고 있다는 가정하에서의 장점이란 생각이 든다. Scenario 가 거의 한번에 뽑아져 나왔다는 점에서 더더욱.
* Scenario Driven 관계상 중간중간 실제 프로그램 구현시 어떻게 할것인가를 자주 언급되었다. 'What' 과 'How' 의 분리면에서는 두 사고과정이 왕복되는 점에서 효율성이 떨어진다고 생각한다.
* [영동] : 처음엔 남훈이 형의 세미나를 들었습니다. 제가 컴퓨터에 대해 거의 모르는 터라 처음 보는 용어가 너무 많았습니다. 그래서 그런지 "A는 어떤 어떤 일을 한다..."는 설명을 들으면 A가 어디에 속한 건지 혼란이 온달까... 그래도 나중에 동영상을 보니 그럭저럭 이해가 되는 것 같습니다. 남훈이 형 수고 많이 하셨습니다. 나중에 목소리 잘 안 나오는 거 보고 참 감사하다고 생각했습니다. 그리고 세미나가 끝나고 드디어 객체지향 프로그래밍으로 랜덤워크(스케쥴드워크로 개명됨)를 짜게 되었습니다. 어제 고민되던 문법은 의외로(?) 간단하더군요. 아직 구체적으로 들어간 게 없어서 그런가? 프로그래밍을 하는데 초반에는 5분에 한번씩 키보드를 파트너에게 넘기는 룰이 있었으나 후반엔 버그에 서로 정신이 팔려 그 규칙을 잊어버리고 거의 파트너였던 재니가 거의 짠 거 같습니다... 하여간 여기서 어려운 것은 전달인자를 넘기는 것이었습니다. 넘길 때 자꾸 변수 이름이 혼란스럽다는 것. 그리고 처음에 작성한 추상적으로 보이던 OOP 디자인. 여기서 프로그램을 이끌어 낼 수 있다는 것이 놀라웠습니다. 물론 그 이끌어 내는 과정이 너무 어렵다는 것이 문제지요. 또 한가지 놀라운 것은 확실히 객체지향 프로그래밍을 쓰면 코드의 길이가 확실히 줄어든다는 것이었습니다. 마지막으로... 세미나 준비하시고 프로그래밍 도와주신 선배님들 정말 감사합니다.
* [영동] : 우선 처음엔 랜덤워크의 변형인 랜덤워크2를 짰습니다만 "43134331256..."식으로 입력 받는 것과 x축의 칸수를 적게 하고 y축의 칸수를 많게 하고 계속 아래로 전진하면 숫자가 이상하게 올라가는 버그가 나왔는데 둘 다 아직 고치지 못 했습니다... 전자의 경우는 그래도 좀 연구하면 가망이 있어 보이는데 후자의 경우는 어디가 틀렸는지 감도 못 잡겠습니다. 그리고 선배님들께서 준비해 주신 구조적 프로그램, 객체지향 프로그램은 처음에 선배님들께서 해주신 강의까지는 그럭저럭 개념은 알겠는데 나중에 클래스로 랜덤워크 짜라는 것이 나온 후로는 데블스 캠프가 그냥 이걸로 끝이 아니라는 것을 느꼈습니다... 여기서 며칠 밤 새는 것 외에도 혼자서 공부해 나가야 할 것이 많다고 느꼈습니다.
* 기웅) 솔찍히 아직도 c++에 대해 잘 알지 못하는 형편이라.. 구체적으로 무엇이 문제구나라고는 말할 수 없을거 같네요. 우선은 아직 많이 부족하다는 생각이 드네요 다시 체계적인 공부를 해야 할듯.. 그리고 오늘 느낀건데 프로그램을 짤때는 무작정 벌리고 보는 것보다는 대충 구상을 끝내고 시작하는게 오류도 적게 나오고 쉽게짤 수 있을거 같네요.... 음 할말이 없네^^;; 아무튼 아제 좀 몬가 알거 같네요. 앞으로 열심히 할께요~
프로그래밍은 계속 랜덤워크만 했는데 무지 어려웠습니다. 프로그램을 하면서 에러가 아닌 실행중 잘못된 점을 찾지 못한것이 문제 였던
이 형이 생산성이 떨어진다더군요~ ㅡㅜ) 앞으로는 이것도 유의해서 프로그램을 짜도록 하겠습니다... 무진장 많은 삽질을 했지만 역시
나 프로그램을 짜는 것은 재밌습니다. ^^v
다시 와서 프로그램 짜려다가 너무 졸려서.............. -_-; 죄송..
그리고 또하나느낀 점은 순수하게 자기 머리와 손으로 짠 프로그램이 아니면..그건 자기 프로그램이 아니라는거..
이번학기 때 짰던 몇 개의 프로그램들이 사실은 책에 나온 알고리즘과 주변사람들의 도움이 보태져 짜여졌기
때문에..난 스스로 그 프로그램을 짤 수 있는 능력이 없었던 거다.
링크드리스트 - 자료구조 책에 나온 c루 짠 링크드 리스트는 typedef를 써서 글케 짰었는데..c++에선 아무래두 그런걸 안쓰는듯하다. 미묘한 에러가 자꾸 나는걸 보면..앞으로 c++을 얼른 공부해서 프로그램을 객체지향적으로 짜야할텐데..
* 현민 : ㅡㅜ 어려워요~ 흠냐..... 그래도 프로그램 짜는거는 시간가는줄 모르고 재밌게 할 수 있네요~ ^^;;;;;; 계속 재밌게 배웠으면 합니다!!
*[기웅] - 제로페이지 너무 좋은거 같아요^^ 덕분에 많이 배우고 가네요 특히 광식이형 오늘 절망적이었는데 정말 너무 고마워요 ^0^아잉~ 지금 패이스면 머지않아 저도 제대로된 프로그램 짤수 있을거 같아요 지금은 많이 서툴지만 열심히 할께요 많이 도와주세요~
다들 피곤하실텐데 수고 많았습니다. 잘 가르쳐 주신 선배들도 넘 고맙구요 나두 광식이 오빠 너무너무 특히 고마웠어요~ 이말은 ㅡ.ㅡ;;;;; 오늘 밤 낼도 많이 부탁한다는 소리 ㅡ.ㅡ;;;;; 오빠 때문에 프로그램짜는거 넘 많이 도움이 된것 같아요. 사소한것 까지 화 안내시구 다 들어주신거 넘 고마워요 감격감격 ㅠ.ㅠ 앙~ 마방진 못끝낸게 너무 아쉬워요 머리속에서는 돌아가는듯 하면서도 안돌아가구 손가락은 움직이지두 않구 자다가 놀러 가야 하기 때문에 이제 일어 났어요 아마 녹초가 되지 않을까 오늘밤에는... 그럼 난중 봐요 다들 ^0^ 뺘뺘 ^^/
- 새싹교실/2012/우리반 . . . . 20 matches
* Compile이란?
* 모든 C 프로그램의 기본은 여기서 시작된다.
1.int a=10,b=12,temp;가 있는데 a에 있는 값을 b에 넣고, b에 있는 값을 a에 넣는 프로그램을 짜 보세요.
3.다음 프로그램이 무엇을 출력하는지 생각해보고, 프로그램을 그대로 짜서 뭐가 나오는지 확인해봅시다.
4.Compile이란 뭘까? 자신이 생각하는 의미를 한줄로 요약해서 후기에 써보자.
(추가 : 인간이 쓰는 언어에 가까운 언어로 짠 프로그램을 기계어로 된 프로그램으로 변환시키는 것이라고 생각합니다.)
(추가 compile이란 High level language , 즉 인간이 구분하기 쉬운 언어로 작성된 프로그램을 Machine language(기계어)로 번역하여 처리하는 작업이라고 생각합니다.-[권도현]
* 180기준으로 크면 위너, 작으면 정상인. 그런데 164는 정진경, 171은 이미경, 187은 권도현이 나오는 프로그램 작성.
2-1.switch, case문을 이용해서 이번시간에 짰던 프로그램을 새로 짜 보도록 합니다.(키에 관한 프로그램)
2-2.char형을 통해 printf("%c%c%c%c%c",????);로 Woori가 나오는 프로그램을 짜보도록 합시다. 소스는 jereneal20@네이버.com으로 보내줘요.
}}} 이 프로그램의 출력값은?
}}} 스위치를 이용한 키 확인
* 공통과제 1: 구구단을 출력하는 프로그램 짜오기.
* 미경이 과제 : 숫자를 입력받고 해당한 만큼 별찍기를 하는 프로그램 짜오기.
* [http://www.winapi.co.kr/ WinAPI] 에서 for에 관한것 읽어보자.
* printf,\n,\t,\a,\\,\",return 0; in main,compile, link, scanf, int ==> variables, c=a+b;, %d, + => operator, %,if, ==, !=, >=, else, sequential execution, for, a?b:c, total variable, counter variable, garbage value, (int), 연산우선순위, ++a a++ pre/post in/decrement operator, math.h // pow,%21.2d, case switch, break, continue, logical operator || && ! 등.
- 이영호/미니프로젝트#1 . . . . 20 matches
목적 : irc에 접속해 있는 유저들을 자동적으로 공격하는 프로그램. & 차후 AI(망할 엉터리 AI 패러다임) bot이나 타자봇을 집어넣을 예정
방법론 : 프로세스를 여러개 만들어 비교적 프로그램이 쉬워지게 만든다.
2. 서버로부터 메세지 중 PING 부분 처리 -> 1번째 Child Process
file.c -> 파일 입출력을 다루는 함수와 메세지들을 Log하는 부분을 담당한다. 일단 프로그램을 어느 정도 만들고 구현하도록한다.
request.c -> IRC Server로 부터 날아오는 PING에 대한 PONG 처리.
// 향후 프로그램이 커지면 네트워크 부분은 따로 모듈을 만들어 낸다.
우선 구현할 부분 : main의 일부, parse의 PING 처리부분, request 부분
pid_t pid;
char check_ping[7];
pid = fork();
if(pid == -1)
else if(pid == 0){
sscanf(msg, "%6c%s",check_ping, pong);
if(strncmp(check_ping, "PING :", 6) == 0){
fprintf(stderr, "Child Process Created!: pid = %dn", pid);
pid_t pid;
pid = waitpid(-1, &last, WNOHANG);
fprintf(stderr, "Child Process Closed!: pid = %d, WEXITSTATUS = %Xn", pid, WEXITSTATUS(last));
- 캠이랑놀자/아영 . . . . 20 matches
r,g,b = im.getpixel((x,y))
im.putpixel((x,y), (r+30,g+30,b+30))
r,g,b = im.getpixel((x,y))
im.putpixel((x,y), (r-30,g-30,b-30))
r,g,b = im.getpixel((x,y))
im.putpixel((x,y), (r,g,b+30))
r,g,b = im.getpixel((x,y))
im2.putpixel((x,y), g)
r,g,b = im.getpixel((x,y))
im3.putpixel((x,y), b)
r1,g1,b1 = im.getpixel((x,y))
r2,g2,b2 = im.getpixel((x,y))
im.putpixel((x,y), (newR,newG,newB))
r,g,b = im.getpixel((x,y))
im2.putpixel((x,y), g)
r,g,b = im.getpixel((x,y))
im3.putpixel((x,y), b)
r,g,b = im.getpixel((x,y))
r2,g2,b2 = im2.getpixel((x,y))
im3.putpixel((x,y), (newR, newG, newB))
- MFC/DynamicLinkLibrary . . . . 19 matches
기존의 C/C++ 프로그래에서는 라이브러리를 LIB라는 확장자를 가진 형태로 제공하여 코드를 컴파일한후 링커가 프로그램에 필요한 부분을 라이브러리 파일에서 추출해서 만들어진 프로그램에 붙여넣는 방식으로 만들어졌다. 이런 구조가 윈도우 프로그램으로 오면서, 바뀌어야했는데..
종전의 방식처럼 정적으로 링크를 하게되면 윈도우 프로그램의 특성상 굉장히 메모리를 많이 차지하는 프로그램이 동시에 실행이 되면서 쓸데없이 동일한 코드영역이 중복적으로 메모리 공간안에 차지하게 되는 현상이 발생하였다. 여기서 착안하여 생겨난 것이 DLL이다. 이는 실제 프로그램의 수행부분을 한개로 두고서 여러개의 프로그램에서 그 부분을 공유하여 사용하는 것이다.
Win32API역시도 DLL을 통해서 구현이 되어있다.
Library.DLL을 3개의 프로그램 A,B,C가 동시에 공유한다고 하면 각각의 프로그램이 실행될때마다 각 프로그램에서는 DLL파일의 함수로의 링크가 일어난다. 이런 과정은 윈도우 운영체제에 의해서 자동으로 이루어지고, 한개의 프로그램이라도 실행이 종료되지 않으면 윈도우는 DLL을 메모리에서 제거하지 않고 남겨준다.
프로그램과 DLL이 메모리 안으로 로드되자마자 사용되는 함수들에 대한 링크가 성립된다.
프로그램이 먼저실행되데 DLL은 프로그램의 요청이 발생한 시점에서 메모리에 로드된다. 그때가 되서야 프로그램은 DLL로부터 함수의 어드레스를 얻고 그것을 사용해서 함수를 호출한다.
프로그램에서 필요한 메모리의 양을 최대한 줄이는 것이 가능하다.
runtime dynmaic linking 의 중요한 점은, 런타임 상에서 해당 모듈을 교체할 수 있다는 점이다. winamp 의 나 KMP 등와 같은 플러그인을 제공해주는 프로그램의 경우 대부분 이러한 runtime-dynamic linking 방법을 이용한다.
- 데블스캠프2005/RUR-PLE/Sorting . . . . 19 matches
pick_beeper() # move the beeper from larger column to smaller column
pick_beeper() # move the beeper from larger column to smaller column
pick_beeper()
def go_pick():
pick_beeper()
pick_beeper()
repeat(go_pick,5)
pick_beeper()
repeat(go_pick,5)
repeat(go_pick,6)
pick_beeper()
repeat(go_pick,5)
def go_pick_sub():
repeat(go_pick_sub,5)
repeat(go_pick_sub,5)
repeat(go_pick_sub,6)
repeat(go_pick_sub,5)
pick_beeper()
get = pick_beeper
- MatrixAndQuaternionsFaq . . . . 18 matches
Q16. What are Isotropic and Anisotropic matrices?
Q31. What are yaw, roll and pitch?
that C compilers will often make use of multiplication operations to
Any matrix with a determinant of 1.0 is said to be isotropic.
Thus all rotation matrices are said to be isotropic, since the
'''행렬식에 대한 설명입니다. 행렬의 역행렬이 존재하는지 아닌지를 판별해 준다는군요. 부호가 positive이면 존재합니다. 그리구.. isotropic의 개념이 나오는데
isotropic한 행렬의 경우 전치(회전부분3x3을)하면 역행렬이 됩니다. 음.. 그리구.. 4x4행렬에 보면 traslation 부분도 있는데 그 부분의 부호를 바꿔주면
역행렬이 됩니다. 그렇지만.. 스케일 같은 것이 섞이거나.. 어떻게 되서 isotropic 이 아니게 되면.. 아래아래..아래에 역행렬 공식을 꼭 써야 됩니다. '''
=== Q16. What are Isotropic and Anisotropic matrices? ===
An Isotropic matrix is one in which the sum of the squares of all
A matrix in which this is not the case, is said to be Anisotropic.
'''isotropic의 반대가 anisotropic이구요 음음.. anisotropic 한 행렬을 곱하면 이전의 vertex normal 두 다시 계산 해야 한다고 합니다.
=== Q31. What are Yaw, Roll and Pitch? ===
Yaw, Roll and Pitch are aeronautical terms for rotation using the
Pitch then becomes rotation in the X-axis, Yaw becomes rotation in the
rotation matrices. This defines a rotation in the X-axis (pitch) first,
When developing animation software, a common requirement is to find
- 논문번역/2012년스터디/이민석 . . . . 18 matches
오프라인 필기 글자 인식을 위한 시스템을 소개한다. 이 시스템의 특징은 분할이 없다는 것으로 인식 모듈에서 한 줄을 통째로 처리한다. 전처리, 특징 추출(feature extraction), 통계적 모형화 방법을 서술하고 저자 독립, 다저자, 단일 저자식 필기 인식 작업에 관해 실험하였다. 특히 선형 판별 분석(Linear Discriminant Analysis), 이서체(allograph) 글자 모형, 통계적 언어 지식의 통합을 조사하였다.
필기 글자 인식은 패턴 인식의 도전적인 분야다. 지금까지의 오프라인 필기 인식 시스템들은 대부분 우편 주소 읽기나 은행 수표 같은 형식을 처리하는 데 적용되었다. [14] 이들 시스템이 개별 글자나 단어 인식에 한정된 반면 제약 없는(unconstrained) 필기 글자 인식을 위한 시스템은 거의 없다. 그 이유는 이러한 작업이 크게 복잡하기 때문인데 글자 또는 단어의 경계에 대한 정보가 없는 데다 헤아릴 수 없을 정도로 어휘가 방대한 것이 특징이다. 그럼에도 필기 글자 인식 기법을 더 조사하는 것이 가치 있는 이유는, 계산 능력이 향삼함에 따라 더욱 복잡한 처리를 할 수 있기 때문이다.
본 논문에서는 은닉 마르코프 모형에 기반한, 어휘(lexicon)-free 오프라인 필기 인식 시스템을 소개하고 완전한 영어 문장 데이터베이스에 관한 몇 가지 실험을 저자 독립식 그리고 대조를 위해 다저자, 단일 저자식으로 수행했다. 전처리와 특징 추출 방법을 소개하고 이에 더해 선형 판별 분석, 이서체 글자 모형의 사용, 통계적 언어 모형 같은 더욱 정교한 기법들을 조사한다. 그 뒤의 절에서는 오프라인 필기 인식에 대한 관련 작업들을 짧게 검토한다. 우리가 사용한 데이터베이스는 3절에서 소개한다. 그 다음 전처리, 특징 추출 방법, 통계적 모델링과 인식을 위한 기법을 설명한다. 평가 결과는 제안한 방법의 효율성을 입증하기 위해 7절에서 소개한다.
반면에 방대하거나 아예 한계가 없는 어휘를 이용한 제약 없는 필기 글자 인식은 훨씬 어렵다. 이는 개별 단어 처리 시스템에 본질적으로 있는 문맥 지식과 단어 분할 정보가 없기 때문이다. 이런 난조에도 제약 없는 필기 글자 인식 시스템이 몇 개 개발되었다. [1, 9, 11, 18, 15, 17] 이들 시스템은 주로 추출한 특징의 종류와 한 줄이 인식 전에 단어별로 분할되는 지 아닌지에 차이가 있다. 은닉 마르코프 모형(HMM) 그리고 순환형 신경망과 HMM의 융합을 이용한 분할 기반 방법의 예로 각각 [1, 18]과 [15]가 있다. [15]의 실험은 단일 저자로부터 얻은 데이터베이스를 가지고 수행한 반면 [1, 18]의 실험은 여러 저자의 자료를 가지고 검사하였다. [16]에서는 오프라인 필기체 단어 인식을 광범위하게 조사하였다.
한 줄을 초기에 분할하여 발생하는 오류를 피하기 위해 [9]에서는 분할을 하지 않는, 즉 한 줄 전체를 인식 모듈에 넘기는 방법을 제안한다. 이 시스템은 단일 저자에 대해 검사되었고 통계적 언어 지식과 결합하여 유망한 인식 결과를 달성한다. [11]은 저자 수백 명으로부터 제작하고 보다 큰 데이터베이스에서 검사된, 저자에 무관한 제약 없는 글자 인식을 위한 발전된 시스템을 서술한다. 앞으로 나올 절에서 설명하는 시스템은 전처리와 특징 추출 방법이 약간 다른 비슷한 접근법을 사용한다. 그에 더해 이서체 글자 모형, 즉 글자 종류별 HMM 집합과 통계적 언어 모형의 사용 뿐 아니라 특징 벡터의 선형 판별 분석(LDA)을 적용한 결과도 조사한다.
우리의 시스템을 단일 저자식에서도 평가하기 위해 Senior [15]가 수집한 데이터베이스의 필기 서식으로도 실험을 수행했다. 이 데이터베이스는 한 저자가 쓴 25쪽으로 구성되며 웹에서 공개적으로 얻을 수 있다.1 두 데이터베이스의 필기 양식들은 256 그레이 레벨을 사용하여 300dpi 해상도로 스캔하였다. 그림 1에 각 데이터베이스의 예시가 있다.
수직 위치와 기울임은 [15]에 서술된 접근법과 비슷한 선형 회귀(linear regression)를 이용한 베이스라인 측정법을 적용하여 교정한 반면에, 경사각 계산은 가장자리edge 방향에 기반한다. 그러므로 이미지는 이진화되고 수평 흑-백과 백-흑 전환을 추출하는데 수직 stroke만이 경사 측정에 결정적이다. canny edge detector를 적용하여 edge orientation 자료를 얻고 각도 히스토그램에 누적한다. 히스토그램의 평균을 경사각으로 쓴다.
필기 줄을 전처리한 이미지는 특징 추출 단계의 입력 자료로 사용된다. sliding window 기법을 [11]이 설명하는 접근법과 비슷하게 적용한다. 우리의 경우 이미지의 높이와 열 네 개 크기의 창이 이미지의 왼쪽에서 오른쪽으로 두 열씩 겹치면서 움직이고 기하 추출의 쌍을 추출한다.
특징 벡터들을 decorrelate하고 종류 분별력을 향상하기 위해 우리는 훈련 단계와 인식 단계에서 LDA를 통합한다. (cf. [6]) 원래 특징 표현을 일차 변환하고 특징 공간의 차원을 점차 줄이며 최적화한다. 일차 변환 A를 구하기 위해 훈련 자료의 클래스내 분산(within class scatter) 행렬 Sw와 클래스간 분산(between class scatter) 행렬 Sb를 이용하여 고유 벡터 문제를 해결한다. 이 분산(scatter) 행렬들을 계산하여 각 특징 벡터의 HMM 상태와 함께 이름표를 붙여야 한다. 우리는 먼저 일반적인 훈련을 수행하고 훈련 자료들을 상태를 기준으로 정렬한다. 분산 행렬을 구했으면 LDA 변환은 다음 고유 벡터 문제를 풀어 계산한다.
위 식에서 P(W)는 글자 시퀀스 w의 언어 모형 확률이고 P(X|W)는 이 글자 시퀀스를 그 글자 모형에 따라 입력 데이터 x로서 관찰한 확률이다. 우리의 경우 absolute discounting과 backing-off for smoothing of probability distribution을 이용한 바이그램 언어 모형을 적용하였다. (cf. e.g. [3])
* 가우스 소거법을 이용한 역행렬 구하기: {{{[A I] -> [I A-¹]}}}
* 힐버트 행렬: 계산으로는 역행렬을 구하기 어렵다. 행렬의 차수가 높아지면 행렬식이 급격히 작아진다.
- AcceleratedC++/Chapter13 . . . . 17 matches
13장에서는 4장에서 만들었던 성적 계산 프로그램을 학부생, 대학원생에 대해서 동작하도록 기능을 확장하는 프로그램을 통해서 상속과 다형성(동적바인딩)의 개념을 배운다.
''(9.6절에 있는 기존의 프로그램을 이용한다.)''
이 프로그램의 경우 기존 객체와 다른 부분은 동일하지만 대학원생의 성적을 다루는 경우에는 논문과 관련된 점수가 포함된다는 가정을 하고 만들어진다.
'''만들어진 클래스를 이용해서 성적을 입력받고 보고서를 출력하는 프로그램 (Core)'''
'''만들어진 클래스를 이용해서 성적을 입력받고 보고서를 출력하는 프로그램 (Grad)'''
입력을 받는 record가 일반형이기 때문에 위에 2개의 프로그램은 각기 Core, Grad에 대해서 정적으로 바인딩된다.
이렇게 프로그램이 작성되면 동일한 기능을 하는 프로그램을 자료형에 따라서 2가지로 따로 작성해야한다.
단일프로그램을 작성하기위해서 타입 의존성을 제거해야할 부분
앞의 예에서처럼 vector<Core>의 컨테이너를 설정하게 되면 컨테이너 안에 저장되는 객체가 Core의 객체가 되므로 정적으로 바인딩된다. 이를 해결하기 위해서는 vector<Core*>를 통해서 객체를 동적으로 할당하고 관리하도록 하면, 서로 다른 타입의 객체를 저장하는 것도 가능하고 프로그램의 다른 부분에서 다형성의 이점을 이용하는 것도 가능하다.
위의 프로그램은 할당되지 않은 Core 공간에 값을 대입하려하기 때문에 에러를 발생시킨다. 프로그래머가 객체에 필요한 공간을 직접관리. 읽어들이는 레코드의 종류를 판단해야함.
입력과 출력의 각 부분에서 그리고 컨테이너의 요소를 사용할때 포인터를 이용함으로해서 프로그램이 동적바인딩을 이용해서 상당히 간결해진 것을 확인할 수 있다.
상기와 같은 방식으로 포인터를 이용해서 프로그램을 작성하게 되면 프로그래머가 메모리를 직접적으로 관리를 해야하기 때문에 여러가지 버그를 만드는 문제점을 가지고 있다.
특정 형의 포인터를 캡슐화시킨 인터페이스를 제공해서, 프로그래머에게 포인터가 보이지 않도록 하는 방법을 제공한다.
Core*를 Student_info를 통해서 Wrapping 시킴으로써 프로그래머는 실제로르 Student_info가 2가지 종류의 객체를 다룰 수 있지만 실제의 내부 구현은 알지 못하게 된다.
- MFC/ObjectLinkingEmbedding . . . . 17 matches
서로 다른 응용프로그램들이 프로그램 안에 있는 데이터를 편집할 수 있도록 하는 프록램을 작성할수 있도록 하는 메카니즘이다. (예를 들자면 오피스웨어에서 포토ㅤㅅㅑㅍ에서 수정하던 그림을 특정 포맷으로 변환하지 않고 바로 붙이기 하는 경우와 같은 경우....)
이렇게 다른 프로그램이 자신이 짠 프로그램에서 마치 자신의 프로그램의 데이터인 것 처럼 다루어지지만, 사실은 다른 프로그램이 그 데이터를 다루는 것 일 뿐이다.
외부 객체를 현재 프로그램에 대한 도큐먼트의 부분으로서 저장하지 않고, 다른 프로그램에서의 레퍼런스로만 저장시키는 방식, 두번째로는 다른 프로그램의 도큐먼트를 자신의 프로그램에 엠베딩 시켜서 내부에 아예 포함해버리는 방식. 이렇게 2가지가 있을 수 있다.
컨테이너 : 임베드된 객체를 처리할 수 있는 프로그램을 OLE 컨테이너라고 부른다.
OLE서버 : 서버는 컨테이너에 들어갈 객체를 생성한다. 풀서버는 독립적인 프로그램으로 작동할 수 있거나, 복합 도큐먼트 안에 임베드된 객체로 작동한다. 미니서버는 standalone 모드로서 작동하지 못한다. 오로지 객체를 만들기만 할 뿐이다.
OLE 컨테이너, 서버 사이의 통신은 윈도우 운영체제를 매개로 동작한다. 각 OLE 를 지원하는 프로그램은 공통의 OLE DLL을 가지는데 이 것이 윈도우의 기본지원 부분이다. DLL 안의 함수들은 이렇게 객체사이의 통신을 지원한다. 이때 이를 지원하는 표준적인 인터페이스가 COM(Component Object Model)이다. 본질적으로 엠비드된 객체의 모양과 컨테이너가 그것과 통신하는 방법을 정의한것이다.
OLE서버를 어떤 방식으로 식별할 것인가? OLE객체는 문서, 프로그램등 OLE를 지원하는 어떤 프로그램도 될 수 있다. 시스템에 있는 각각의 OLE객체는 클래스 ID 또는 CLSID라고 부르는 128비트의 숫자로 식별한다. 이들은 GUID라고도 불리우며 알고리즘을 통해서 생성되기 때문에 모두 독특한 값을 지니게된다. 이러한 정보는 윈도우 시스템의 레지스트리에 저장되게 된다.
서버측에는 COleServerDoc에서 파생된 도큐먼트를 이용한다. 서버측에서는 반드시 OnGetEmbeddedItem() 멤버를 구현해야한다. 이는 이 함수가 순수가상 함수이기 때문이다.
- Spring/탐험스터디/wiki만들기 . . . . 17 matches
* ORM(Object Relation Mapping) 프레임워크. Java persistence, EJB3.0을 같이 알면 좋다.
* 위키 문법을 별도로 정의하고 파서를 구현하는 대신 Markdown을 사용하기로 결정했다.
<groupId>org.pegdown</groupId>
* 오늘은 위키 문법을 구현하기로 하였다.
* 위키의 문법을 구현하기로 하였는데 직접 파서를 구현하기보다 Markdown의 파서를 사용하면(Markdown 문법을 사용해야 하지만) 편리할 것 같아(명백해서 증명할 필요가 없다!) Markdown 파서중 pegdown을 쓰기로 경정. Java 언어 기반의 파서중 그나마 문서화(GitHub의 소개페이지)가 잘되어있어서....
* url mapping 어떻게 하지?
* 컨트롤러 함수에 인자를 다르게 해서 OverLoading하려 했으나 ResuestMapping이 같아서 Spring이 Ambiguous Mapping Exception을 발생시켰다.
* RequestMappingHandlerMapping의 매핑 테이블을 보니 {[ URL ], methods=[ Method 타입 ], params=[],headers=[],consumes=[],produces=[],custom=[]}등으로 Request를 구분하고 있었다.
* @RequestMapping 어노테이션의 설정값들 중에 params를 이용해 파라메터 등록을 할 수 있다. 이렇게 하면 특정 파라메터가 넘어올 때에만 RequestMapping을 할 수 있다.
* 이를 이용해 RequestMapping의 value값, Method 타입이 같아도 특정 파라메터의 유무로 리퀘스트 핸들링을 달리할 수 있다.
* 예를들어 ''@RequestMapping(value = "/helloworld", method = RequestMethod.GET)''와 ''@RequestMapping(value = "/helloworld", method = RequestMethod.GET, params="param=param")''은 다르다. 각각 다른 함수에 mapping될 수 있다.
* RequestMapping의 method 타입을 이용해 signup 페이지 호출과 실제 signup을 구분하여 핸들링
- 새싹교실/2012/주먹밥 . . . . 17 matches
* [박도건] : 컴퓨터에 관한 여러가지 잡 지식 + 프로그램 사용법 습득, 네트워크 프로그래밍, 게임 만들어보기.
* [한원표] : 다양한 컴퓨터 프로그램에 익숙해지고 커리큘럼을 열심히 따라가겠다.
* 한원표 : 새싹교실 첫 수업이었다. 박도건, 용상훈이라는 동기들과 같이 하게되었는데 앞으로 친해졌으면 좋곘다. 처음에는 새싹교실을 하는 이유와, 진행방식 등에 대해 선배님께 설명을 들었다. 그리고 wiwki에 가입해서 앞으로 우리가 새싹교실에서 배운것, 느낀것을 직접 편집할 수 있다는 것이 좋았다. 그 후에 Virtual Box라는 것으로. Hello World라는 프로그램을 짯는데 새로운 환경을 볼 수 있어서 좋았지만 한편으로는 처음보는 환경이라 어색한 감이 있었다. 그리고 어플 프로그램을 보여주셨는데. 친구들은 이해하는것 같은데 나만 잘 못하는 것 같았다.
* 디버깅하는 방법을 앞에서 직접 보여줌. 몇번째 라인에 몇번쨰가 잘못된 라인이라고 나오죠? 이걸통해 원표와, 상훈이의 디버깅을 고쳐주었습니다. 띄어쓰기 잘하고 괄호 잘닫으라고.
* if문, switch()case: default:}, for, while문의 생김새와 존재 목적에 대해서 알려주었습니다. 말그대로 프로그램의 중복을 없애고 사용자의 흐름을 좀 더 편하게 코딩할수 있도록 만들어진 예약어들입니다. 아 switch case문에서 break를 안가르쳤네요 :(
* 박도건 - 윤년구하기
* 위와 같이 함수 추상화의 완성형은 Call-by-reference를 이용한 전달입니다. 잊지마세요!
* http://forum.falinux.com/zbxe/?document_srl=441104 를 참조하면 통신 프로그램을 짤 수 있을 것이다.
* 기본 파일 구조체에는 대략 이런정보가 들어가게 됩니다. 파일 경로, 이름, 크기, '''현재 얼마나 읽었는지'''. 자세한 사항은 http://winapi.co.kr/clec/cpp2/17-2-1.htm 에 들어가면 있답니다.
* 절대 경로와 상대경로. '절대 경로'는 운영체제 기준으로 운영체제가 젤 세부로 나눠주는 드라이브를 비유해서 설명해주었습니다. 운영체제 기준으로 {{{ C:\\Desktop\test.txt }}}를 같은 폴더 프로그램으로 불러와봅시다. 잘불러와지네요? 하지만 {{{C:\\Desktop\오리\test.txt }}}로 저 txt파일과 프로그램을 옮기면 실행이 될까요? 안되죠? 같은 폴더에 있는데도. 그럼 어떻게 해야할까요? 그래서 상대경로 라는것이 나왔습니다. {{{ .\test.txt }}} 면 같은 폴더에 있는 test파일을 찾고. {{{ ..\test.txt}}} 는 바로 위 상위폴더를 찾습니다. 다른폴더는 어떻게 하나고요? {{{ .\오리\test.txt }}}로 설정하면되죠. '''상대 경로'''는 해당 실행파일 기준으로 파일 위치를 추적 하는것이랍니다.
* 박도건의 프로그램 봐줌.
* 답변 : 객체 지향 프로그래밍(Object Oriented Programming)입니다. 프로그래밍 설계 기법이죠. 전에도 얘기했듯이 프로그래밍 설계 기법은 프로그래머의 설계를 도와 코드의 반복을 줄이고 유지보수성을 늘리는데 있습니다. 하지만 생산성이 있는 프로그래머가 되고싶다면 API를 쓰고 알고리즘을 병행해서 공부해야 된다는것을 알리고 싶습니다. 그리고 단순히 Class를 쓰는것과는 다른기법입니다. 객체 지향적으로 설계된 C++이나 Java에서 Class를 쓰기때문에 Class를 쓰는것이 객체지향으로 알고있는 사람들이 많습니다. 그건... 아니죠. 절차지향 프로그래밍과 다른점은 차차 가르쳐 드리겠습니다. C에서 Class란 개념이 설계상으로 발전했는지 알려드렸습니다. 함수 포인터와 구조체였죠. 그게 원형입니다.
* 질문 : 박도건, 용상훈 -> 플래시 프로그램은 왜 쉬운가요?
* 답변 : Windows API를 써본다면 이해하겠지만 윈도우창 띄우는데 30줄이 넘는 코드가 필요하죠? 한줄로 보여드립니다. javascript에서 alert(5)를치면? 딱 뜨죠? 참~~ 쉽죠?
* SVN 거북이를 이용하여 http://nforge.zeropage.org/svn/coordinateedit 에 코드를 올리는것을 올려놓음. 도건이 프로그램을 그곳에 올려놓고. 고쳐서 올려놓음. 받는건 숙제!!! 신남.
* 박도건 프로그램 봐줌
* prime 넘버 찾는 알고리즘 구하기.
- Java Study2003/첫번째과제/방선희 . . . . 16 matches
-- 기존의 compile/link/load방식의 언어에 비해 source를 compile만 하면 최종 수행코드가 생성됨으로 개발시간을 단축할 수 있다.
* VM이란? : 자바 언어 및 그 실행 환경의 개발자인 썬 마이크로시스템즈에 의해 사용된 용어이며, 컴파일된 자바 바이너리 코드와, 실제로 프로그램의 명령어를 실행하는 마이크로 프로세서(또는 하드웨어 플랫폼) 간에 인터페이스 역할을 담당하는 소프트웨어를 가리킨다.
* 장점 : 가상머신이 한 플랫폼에서 제공되면, 어떠한 자바 프로그램도 그 플랫폼에서 실행될 수 있다.
애플릿은 브라우저에 플러그인 형식으로 실행될 수 있는 자바 프로그램을 말하고 애플리케이션은 브라우저가 아닌 순수 자바 프로그램들을 말합니다. 굳이 따지자면 서블릿, 빈즈, JSP 모두 애플리케이션에 해당하겠죠.
빈즈에 대해서 이야기 하자면 웹 서비스라는 큰 테두리 내에서 이야기를 해야 하는데, 간단하게 말하자면 빈즈라는 것이 만들어진 이유는 프로그램의 DISPLAY 부분과 LOGIC 부분을 분리해서 좀 더 확장성있고 유연한 시스템을 개발하고자 하는 취지에서 탄생한 것입니다.(언뜻 이해가 안될 수도 있음...)
4. 자바로 "Hello World!"를 출력하는 프로그램 작성하기
* 이 내용들을 대충이라도 이해했으면 될꺼 같군요. 역시 마찬가지로 실제로 프로그램을 돌게끔 만들지를 못한거 같군요. 한번 해 보세요.
eclipse 나 Editplus의 사용법을 제대로 알고 다시 코드를 작성해보겠습니다.
* Java란 프로그램언어는 enterprise 급 기업의 web시스템에서부터 작은 핸드폰에 이르기까지어디든지 사용할 수 있다. 다시 말해 Java를 할 줄 알면 어느 곳에나 적용 가능한 프로그램을 개발 할 수 있다는 말이다. 그 뿐만 아니라, Java로 개발된 시스템은 다른 언어로 개발된 시스템보다도 훨씬 쉽게 확장이 가능하다.
* Java는 보안능력이 뛰어나다. 예를 들어 네트워크를 통해 내 PC로 download된 Java로 개발된 프로그램은 일반적으로 그 능력이 제한된다. 다시 말해 바이러스처럼 작용할 수 없다는 말이다 (이점은 MicroSoft의 Active X와 비교된다).
* MicroSoft windows에서 신나게 실행되는 게임이 Linux에서도 잘 돌까? 아마도 답은 '아니다' 일 것이다. 그러나 만약 그 게임이 Java로 제작되었다면 답은 '예' 이다. 다시 말해 Java로 개발된 프로그램은 PC, Macintosh, Linux등 machine이나 O/S에 종속되지 않는다.
기존에 Sun OS에서 Java로 개발한 인사시스템을 Windows NT로 이관하고 싶다. 이때 프로그램 수정없이 가능할까? Windows NT를 지원하는 JDK가 있다면 가능하다. 그러고 Windows NT를 지원하는 JDK는 있다.
* Java를 이용해 재사용 가능한 object를 만들 수 있다. 이 object는 향후 다른 프로그램내에서 그냥 재사용 가능하다. 강력한 Java의 재사용성은 Java가 가지고 있는 장점 중에서도 가장큰 장점이라고 말할 수 있다.
* 모호한 언어적 특성, 비결정적 자바 가상머신, 표준화된 실시간 API가 없는 문제 때문에 실시간 응용이 어렵습니다.
- JavaStudy2004/자바따라잡기 . . . . 16 matches
그런데 언제부터인지, 네트워크의 대명사인 인터넷에서 이 자바 커피가 하나밖에 없는 독특한 향기를 뿌리고 있다. 인터넷을 좀 아는 사람이라면 자바를 들어보지 못한 사람은 거의 없을 것이다. 자바는 월드와이드웹 상에서 프로그램을 실행할 수 있게 하는, 네트워크를 기반으로하는 언어로, 인터넷 프로그래밍 언어의 표준이 되었다.
자바가 인터넷 세계에서 관심의 초점이 된 것은 먼저 세계를 하나로 엮는다는 인터넷을 기본 환경으로 하고 있으면서 인터넷에 연결되는 수많은 서로 다른 운영체제(OS)들에서 동일한 모습으로 프로그램을 실행할 수 있다는 점이다.
요약해서 말하면 자바는 인터넷의 기반인 웹의 프로그램 언어(Language)라고 이해하면 된다.
이 문제를 해결하기 위하여 고슬링은 C와 C++를 개조해서 해결을 해보려고 시도를 했던 것이다.그래서 C언어의 불필요한 부분이나 문제가 될 부분들을 제거한 새로운 언어를 개발하게 되였는데, 이것이 바로 자바인 것이다. 최초로 자바를 이용한 프로젝트는 가전 제품과 전기 기기들을 통합하여 가정 환경에 새로운 인터페이스를 제공하는 소위 그린 프로젝트(Green Project)라는 것 이였다. 그러던 1993년, 그래픽 기반의 월드와이드웹이 발표되고 자바의 개발자들은 곧 이러한 웹 기반의 응용 프로그램에는 자바와 같은 기기(컴퓨터 및 그 운영체제)로부터 독립된 언어가 이상적이라는 것을 발견하였다. 그리하여 그들이 개발한 것이 나중에 핫자바(HotJava)로 이름이 바뀐 웹러너(WebRunner)라는 웹 브라우저였다. 이것이 최초로 자바를 지원한 웹 브라우저가 되었다. 자바라는 이름은 지역의 어느 커피점 안에서 얻었다. 그래서 지금은 웹 페이지에서 항상 끓고 있는 커피의 상징을 볼 수 있다.
* [http://www.homepi.co.kr/java/java_4.htm]참고하세요
*1. 최근의 컴퓨터 분야의 용례에서, 가상머신은 자바 언어 및 그 실행 환경의 개발자인 썬 마이크로시스템즈에 의해 사용된 용어이며, 컴파일된 자바 바이너리 코드와, 실제로 프로그램의 명령어를 실행하는 마이크로프로세서(또는 하드웨어 플랫폼) 간에 인터페이스 역할을 담당하는 소프트웨어를 가리킨다. 자바 가상머신이 일단 한 플랫폼에 제공되면, 바이트코드라고 불리는 어떠한 자바 프로그램도 그 플랫폼에서 실행될 수 있다. 자바는, 응용프로그램들이 각각의 플랫폼에 맞게 재작성 되거나, 다시 컴파일하지 않아도 모든 플랫폼에서 실행되는 것을 허용하도록 설계되었다. 자바 가상머신이 이를 가능하게 한다. 자바 가상머신의 규격은 실제 "머신"(프로세서)이 아닌 추상적인 머신을 정의하고, 명령어 집합, 레지스터들의 집합, 스택, 가배지를 모은 heap, 그리고 메쏘드 영역 등을 지정한다. 이러한 추상적, 혹은 논리적으로 정의된 프로세서의 실제 구현은, 실제 프로세서에 의해 인식되는 다른 코드, 혹은 마이크로프로세서 그 자체에 내장될 수도 있다. 자바 소스 프로그램을 컴파일한 결과를 바이트코드라고 부른다. 자바 가상머신은, 실제 마이크로프로세서의 명령어에 그것을 대응시키면서 한번에 한 명령어씩 바이트코드를 해석하거나, 또는 그 바이트코드는 실제 마이크로프로세서에 맞게 JIT 컴파일러라고 불리는 것을 이용해 나중에 컴파일될 수도 있다.
*3. IBM에서 말하는 가상머신이라는 용어는 또한, 내재된 콘트롤 프로그램에 의해 교대로 관리되는 운영체계를 의미하는데 사용되기도 한다. 그렇기에, IBM의 VM/ESA는 IBM S/390시스템 상의 다중 가상머신을 조정할 수 있는 것이다.
*4. 그 밖의 경우에서의 가상머신은, 컴퓨터를 실행하는 운영체계나, 어떤 프로그램을 의미하기 위해 사용되기도 했었다. 이를 인용하면
"실행되고 있는 프로그램은 간혹 가상머신이라고 불려진다. - 실제 물리적인 현실로 존재하지 않는 머신. 가상머신 아이디어는, 그 자체로 기술의 역사에서 가장 멋진 아이디어 중의 하나이며, 소프트웨어에 관한 아이디어의 진화에 있어 매우 결정적인 단계라고 말할 수 있다. 그것을 따라잡기 위해, 과학자와 기술자들은 프로그램을 운영하는 컴퓨터가, 단지 세탁이나 하는 세탁기가 아니라는 것을 인식해야만 했다. 세탁기는 그 안에 어떠한 옷들을 넣는다 해도 여전히 세탁기이지만, 컴퓨터는 새로운 프로그램을 넣는다면, 그것은 완전히 새로운 기계가 된다.... 가상머신, 그것은 소프트웨어를 이해하는 방법이며, 소프트웨어의 설계가 기계의 설계와 다르다는 것을 생각하게 한다."
[http://www.homepi.co.kr/java/java_1.htm]설명이 잘 되있습니다.
- MoreEffectiveC++/Techniques1of3 . . . . 16 matches
* 작성자주 : 이 부분은 Singleton 패턴과 연관해서 생각하면 재미있을 것 같다. Singleton 패턴이 DP에 논의될때 이것을 감안 안한것이 아쉽다. 1995년에 발간이라 STL도 제대로 다루지 않았고, C++의 기본적인 문법을 이용해 구현하였다. MEC++는 Techniques 부분은 C++의 문법과 개념을 극한으로 쓴다는 느낌이 든다.
Printer& Printer::thePrinter() // friend만 없앴지 마찬가지 방법을 제시한다.
'''첫번째'''로 만들어지는 객체의 위치이다. 위의 제시된 두가지의 방법에서, Printer 정적(staitc) 객체가 하나는 friend로 클래스의 제어권을 획득한 함수 내부에 있고, 또 하나는 클래스 멤버 메소드 내부에 있다. 함수에 있는 경우에는 정적(static) 객체는 항상 만들어져 있다. 이 의미는 해당 코드의 프로그램이 시작될때 부터 아예 객체가 만들어 진다는 의미이다. 즉, 한번도 그 객체를 사용하지 않아도, 객체는 이미 만들어져 비용을 지출하게 한다. 반면에, 함수 멤버 메소드 내부에 정적(static)객체를 만들 후자의 경우에는 객체를 만드는 역할을 하는 메소드인 Printer::thePrinter 가 제일 처음 호출될때 객체가 생성된다. 이것은 C++에서 "사용하지 않는 객체에 대한 비용은 지불하지 않는다."의 설계 다소 복잡한 이념에 근간을 둔 개념이다. 그리고 이러한 복잡한 개념은 당신을 해깔리게 만든다.
자, 이런걸로 한가지 재미있는 것을 만들수 있다. 만약 당신이 C++상에서 더이상 상속 되지 않는 클래스를 만들고 싶을때 어떻게 해야 할까?(주:참고로 Java나 C#의 경우 언어 설계 때부터 아예 해당 기능을 수행을 위한 키워드를 제공한다. 하지만 C++는 제공하지 않는다. 이런 방법을 설계자가 생각한건지, 차후 C++의 개발자들이 생각한건지 놀라울 뿐이다. 바로 이전에 나온 가상 복사 생성자의 아이디어와 비슷하다고 해야 할까)
이런 디자인은 단일 Printer객체에 관해서 행하여 질수는 없다. 하지만 서로 다른 프로그램의 서로 다른 부분에서 Printer객체는 이렇게 사용되어 질수 있다. 이것 역시 허용하지 못하게하는 것까지는 필요 없을것 같은데, 아무튼 오직 하나의 프린터 객체만 유지 시킨다는 것에는 벗어나지는 않는 거다. 하지만 여기에 우리가 해왔던 object-counting방법과, 일찍이 쓴 가짜 생성자(pseudo-constructor)를 혼합해서 기능을 구현해 본다.
만약, using을 지원하지 않은 컴파일러라면 다음과 같은 옛날 문법을 사용할수 있다.
* Item 27: Heap영역을 사용하는 객체 요구하기 or 피하기.
후자의 순서로 코드가 생성되어도 컴파일러에게 잘못은 전혀 없다. 그렇지만 '''set-a-bit-in-operator-new''' 방법을 사용한 상단의 예제는 두번째 순서에서는 실패 할수 밖에 없다.
이런 어려움이 "각 생성자에서 *this가 heap영역에 있는가에 대한 여부를 알아낸다." 라는 아이디어의 근간을 흔드는 것은 아니다. 거기에다가 이런 어려움들은 operator new나 operator new[] 안에서 bit set을 점검해 보는 것이 이런 기본 정보를 결정하는데 신뢰성 있는 방법이 아님을 반증하고 있다. 우리가 필요한 방법을 위해서 한번 생각해 본다.
절망하고 있는가? 그럼 한번 임시로나마 이식성이 떨어지는 영역에서까지 그런 아이디어를 확장해서 생각해 보자. 예를 들어서 많은 시스템 상에서 사실인, 프로그램의 주소 공간은 선형으로 배열되고, 프로그램의 스텍은 위에서 아래로 늘어 난다고 그리고 Heap영역은 밑에서 위로 늘어난다는 사실에 주목해 보자. 그림으로 표현되면 다음과 같은 모습이 된다.
이런 방식으로 구성된 프로그램의 시스템에서 다음과 같은 방법으로 비교를 할수 있지 않을까?
함수에서 이러한 생각은 참 의미롭다. onHeap함수내에서 onTheStack는 지역 변수(local variable)이다. 그러므로 그것은 스택에 위치할 것이고, onHeap가 불릴때 onHeap의 스텍 프레임은 아마 프로그램 스텍의 가장 위쪽에 배치 될것이다. 스택은 밑으로 증가하는 구조이기에, onTheStack는 방드시 어떠한 stack-based 변수나 객체에 비하여 더 낮은 위치의 메모리에 위치하고 있을 것이다. 만약 address 인자가 onTheStack의 위치보다 더 작다면 스택위에 있을수 없는 것이고, 이는 heap상에 위치하는 것이 되는 것이다.
우리는 앞쪽에서 "delete this"로 가상 파괴자로 객체가 스스로를 자살 시키는 방법으로 heap객체만을 사용하도록 제한 시키는 방법을 기억할 것이다. 이런 "delete this"식으로의 제거는 추천할 만한 방법이 결코 아니다. ( DeleteMe 모호) 그렇지만, 지우기 위한 객체의 안전성을 아는 것은 heap상에서 포인터가 지칭하는가를 간단히 알아네고자 하는 방법과 같은 것이 아니다. 자, 다시 UPNumber 객체를 가지는 Asset 객체의 관해서 생각해 보자.
설정될 시나리오는 분산 시스템상, 분산 DB에서, local 에 있는 객체와, remote에 있는 객체를 다루기 이다. 클라이언트 입장에서는 둘을 다루는 방법이 이원화 되어 있어서, 해당 객체의 프로시저 호출에 일관성이 없을 경우 프로그래밍 환경이 불편하고, 명시성이 떨어지는 등 여러 불리한 점이 있다. 그래서 아예 양쪽의 객체에 사용법에 대한 일관성을 가지고 싶어 한다. 이를 해결 하기 위해서 스마트 포인터로, 해당 객체를 둘러싸서, 프로시저의 일관된 사용 방법을 제공 받고자 한다. 다음은 그것을 구현한 코드들이다.:
많은 어플리 케이션에서 스마트 포인터와 같은 기법을 사용하므로 잘 알아 두기를 바란다. 특히나 계속 홍보해서 지겹겠지만 Reference count쪽에서 나온다니까. 주목하기를.
- ProjectZephyrus/ClientJourney . . . . 16 matches
["프로그램내에서의주석"]
* 이번 프로젝트의 목적은 Java Study + Team Project 경험이라고 보아야 할 것이다. 아쉽게도 처음에 공부할 것을 목적으로 이 팀을 제안한 사람들은 자신의 목적과 팀의 목적을 일치시키지 못했고, 이는 개인의 스케줄관리의 우선순위 정의 실패 (라고 생각한다. 팀 입장에선. 개인의 경우야 우선순위들이 다를테니 할말없지만, 그로 인한 손실에 대해서 아쉬워할정도라면 개인의 실패와도 연결을 시켜야겠지)로 이어졌다고 본다. (왜 초반 제안자들보다 후반 참여자들이 더 열심히 뛰었을까) 한편, 선배의 입장으로선 팀의 목적인 개개인의 실력향상부분을 간과하고 혼자서 너무 많이 진행했다는 점에선 또 개인의 목적과 팀의 목적의 불일치로서 이 또한 실패이다. 완성된 프로그램만이 중요한건 아닐것이다. (하지만, 나의 경우 Java Study 와 Team Project 경험 향상도 내 목적중 하나가 되므로, 내 기여도를 올리는 것은 나에게 이익이다. Team Project 경험을 위해 PairProgramming를 했고, 대화를 위한 모델링을 했으며, CVS에 commit 을 했고, 중간에 바쁜 사람들의 스케줄을 뺐다.) 암튼, 스스로 한 만큼 얻어간다. Good Pattern 이건 Anti Pattern 이건.
''100% 실패와 100% 성공 둘로 나누고 싶지 않다. Output 이 어느정도 나왔다는 점에서는 성공 70-80% 겠고, 그대신 프로젝트의 목적인 Java Study 와 성공적인 Team Play 의 운용을 생각해봤을때는 성공 40-50% 정도 라는 것이지. 성공했다고 생각한 점에 대해서는 (이 또한 개인의 성공과 팀의 성공으로 나누어서 생각해봤으면 한다.) 그 강점을 발견해야 하겠고, 실패했다고 생각한 점에 대해선 보완할 방법을 생각해야 겠지. --석천''
* PairProgramming 을 할때 가장 답답해지는 상황은 잘 이해 안가면서 넋놓고 있을때랑, 둘이 같이 있어도 Solo Programming 하느 사람 마냥 혼자서 문제를 끙끙거리며 풀려고 하는 모습이다. 꼭 문제를 스스로 삽질해서 풀어야만 자기실력이 향상되는것일까? 다른 사람에게 올바른 질문을 할 수 없는 사람은 혼자서 문제 푸는데에도 오래걸리게 된다고 생각한다. 상대방에게 질문을 하면서 자신이 모르는 것 자체를 구체화하고 (문제 자체가 모호한상태 자체가 문제다. 무엇이 문제인지, 자신이 모르는 것이 구체적으로 무엇인지 모르면서 어떻게 문제를 해결할까? 자신이 모르는게 버클리소켓 전체 사용과정인지 소켓 API의 인자들을 모르면서 네트웍 프로그래밍을 할 수 있을까. 그런사람들에게 '지금 모르겠는게 뭐지?' 라고 물으면 80-90%는 '다 몰라요' 이다. 모르겠는 부분에 대해서 하나하나 구체화시켜나가라. 구체화시킨 예로서 생각을 해봐도 좋을것이다. 시나리오를 만들어보면서, 그림을 그려보면서, 아니면 자기 자신이 그 시스템의 일부가 되어 보면서.) 다른 사람의 아이디어를 자신의 사고에 붙여나가면서 '더 좋은 방법' 을생각해낼 수는 없을까? 언제나 문제의 답을 내는 방법은 '이사람의 방식' 아니면 '저사람의 방식' 뿐일까.
(그 이후 창섭이가 와서 영서에게 JTree관련 Solo Programming 을 시켰는데, 말이 안되는 프로그래밍을 했다. -_-; 아직 영서가 Swing 에 익숙하지 않아서 그런데, 앞의 프로그램은 어떻게 만들어졌을까 의문이 들 정도였다; 아마 5분 간격 플밍시에는 서로 앞 사람 소스작성을 한 것을 기준으로 붙여나가는 방식이기에 그 흐름을 잡고 프로그래밍을 해서 Pair 가 성립이 가능했던것 같다는 생각도 해본다. 이는 처음 프로그래밍을 하는 사람과의 PairProgramming 시 궁리해봐야 할 사항인듯)
영서에게 JTree 관련 프로그래밍에 대해서 설명을 했다. JTree와 관련하여 미리 공부하라고 하긴 했는데, 아직은 힘든가 보다. 오늘 작업시간이 5시 30분부터 9시 (저녁 30분가량), 약 3시간 가량이 걸렸던것으로 기억된다. 팀으로 모일 수 있는 시간이 흔하지 않으므로, 각 필요한 부분에 대한 학습과 예제 코드등의 JDK에 대한 SpikeSolution 에 대해서는 집에서 해 봐야 할 것이다. 작업 시간에 학습시간을 같이 할애 하기엔 시간이 그리 넉넉치 않다. [[BR]]
* PairProgramming를 하면서 SpikeSolution 으로 한번 구성했던 소스를 다시 만들어보고, 여러번 말로 설명해보고, 더 쉬운 방법으로 설명해보려고 하는 동안 알고있는것에 대해 생각이 빨리 정리된다.
* 다른 MFC나 ["wxPython"] 등의 다른 GUI Framework와 ["디자인패턴"] 에 익숙하면 이러한 Swing 에 익숙해지는데에도 도움이 되었다. 대부분의 GUI 에선 ["CompositePattern"] 으로 윈도우들을 구성하기에. 그리고 Java API를 공부하는 동안 ["IteratorPattern"] 이나 ["DecoratorPattern"], MVC 등에 대해서도 이해하기 용이했다.
간단한 에코서버 관련 프로그래밍을 하는 것인데, 일부러 할일을 주석으로 쓴 뒤, 한단계씩 넘어가는 방법을 써 보았다. TDD 까지는 아니지만, 작은 단계단계를 만들고 확인해보는 것이 더 효과적인 것 같다. [[BR]]
Client 팀은 일단 메신저와 관련한 자신들의 디자인을 설명해보는 시간을 가졌다. 사람들은 프로그래밍을 하기 전에 어떤 스타일로 구상을 하게 될까. Agile Modeling 에서 봤던가. 모델 보다는 모델링이 중요하다고 했었던 이야기. 모델링을 해 나가면서 자신의 생각을 정리하고, 프로그램을 이해해 나가는 것이 중요하기에.[[BR]]
1002의 경우 UML을 공부한 관계로, 좀 더 구조적으로 서술 할 수 있었던 것 같다. 설명을 위해 Conceptual Model 수준의 Class Diagram 과 Sequence, 그리고 거기에 Agile Modeling 에서 잠깐 봤었던 UI 에 따른 페이지 전환 관계에 대한 그림을 하나 더 그려서 설명했다. 하나의 프로그램에 대해 여러 각도에서 바라보는 것이 프로그램을 이해하는데 더 편했던 것 같다. [[BR]]
창섭이는 프로그램의 작동 원리에 대한 자세한 시나리오를 써서 설명을 했다. 영서가 '아. 머릿속으로는 대강 구상을 했는데, 잘 정리가 안돼요' 라고 했다. 머리로만 생각해본 것과 글이나 도표로 한번 정리를 해본 것의 차이가 크다는 것을 느꼈겠지.
1002는 CVS 사용방법에 대한 예를 보이고 설명을 했다. wincvs 윈도우 버전에 익숙하지 않았던 관계로 command 입력방법을 가르쳐줬다. 그리고 영서와는 주로 Swing쪽을, 창섭과는 Java Socket Class 에 익숙해지기 위해 Socket 관련 SpikeSolution 을 했다.
후배들과의 PairProgramming 이다. 여태껏의 경험에 의하면 언제나 애매한 것이 Junior : Expert 문제이다. 이번에는 어차피 SpikeSolution 이므로, 내가 아는 한도에서 약간의 예를 보이고, 후배들로 하여금 해보도록 하는 식으로 했는데, 그 덕에 둘이 Pair 를 해보는 기회가 없었던 것 같다. 중간에 내가 화장실 갔다올때 잠시 둘이서 Pair 를 하는 모습을 봤었는데, 이 선은 내가 적절하게 지켜나가야겠다. 너무 멀리도, 너무 가까이도 아니도록. --1002
대학교들어와서 그정도로 열심히(?)공부한적은 별루 없었던거같다.. 그날 이얘기를 들은 1002형은 놀란표정이었지만 사실 그랬다.. 그러니깐 학점이 그렇게 나왔겠지.. -_-;; 암튼 일주일전에 봤던 자바 기본개념을 바탕으로 남들 다 해본 스윙 기본틀이나 메뉴같은걸 작성해봤다.. 아참 그전에 CVS사용법을 배우고, Architecture와 Design에 대해서도 들었다.. 신기하다.. 무슨 도면같았다.. 이제서야 느낀거지만 프로그램에 코딩이 차지하는비중은 1/2도 안되는구나라는걸 느꼈다.. (이제서야? --;;) 여지껏 놀은시간이 너무 아까웠다.. -_-;; --영서
- 5인용C++스터디/멀티쓰레드 . . . . 15 matches
스레드란 무엇인가? 실제로 말한다면 하나의 작업의 단위를 스레드라고 할수 있습니다. 윈도98는 멀티 테스킹이 가능한 프로그램입니다. 즉 한 번에 여러 작업을 할수 있다는 것입니다. CPU 자체는 한스텝에 한 개의 작업밖에는 하지 못합니다. 그렇다면 어떻게 윈도95는 멀티테스킹이 가능할까요? 바로 시간 분할입니다. CPU의 처리 속도가 1초에 99개의 작업 한다고 가정을 합시다. 그리고 현재 A,B,C 3개의 프로그램이 동작중이라고 예를 들어본다면 1초에 CPU는 A에 해당하는 작업 33개 B에 해당하는작업 33개 C에 해당하는 작업 33개로 나누어서 작업을 합니다.
이렇게 작업을 함으로써 작업을 멀티 테스킹으로 할수 있다라는 의미입니다. 이때 하나의 작업 단위들을 스레드라고 합니다. "그럼 프로그램 내부에 모든 작업은 스레드로 나누어 지겠네요?" 라는 질문이 있을 것 같은데 그렇지는 않습니다. 스레드란 독립적인 작업 단위입니다. 즉 다른것에 구애 받지않는 자체적인 작업 단위를 스레드라고 합니다. 윈도에서 워드 프로세서를 띄우고 대용량의 데이터를 로드하여 프린터로 출력한다고 가정을 합시다. 프린팅 작업 도중에 워드프로세서를 사용할수 있습니까? 물론 윈도 95에서는 프린터는 프린터 대로 작동을 하고 워드 프로세서는 워드 프로세서대로 작업을 할수 있습니다. 여기에 인터넷을 통해서 큰 데이터를 다운 받는다고 가정을 합시다. 프린터하고 원드프로세서로 새로운 내용을 입력하면서 인터넷을 통해서 데이터를 다운 받을수 있습니다? 물론 할수 있습니다. 여기에서 원드프로세서의 입력작업이 하나의 스레드 프린팅 작업이 하나의 스레드 또한 다운 로드가 또하나의 스레드입니다. 실지로 윈도 98의 내부적인 모든 프로그램의 동작은 멀티 스레드로 설정되어 있습니다. 그렇기 때문에 다중 작업을 할수 있는 것입니다.
프로그램 작성하다 보면 프로그램 수행도중 현재 프로그램은 다른 작업을 수행하면서 또하나의 작업을 수행하고자 할 때가 있을 것입니다. 이때 사용하는 것이 바로 스레드 입니다. 작업을 함수로 프로그래밍을 하고 난후에 이것을 스레드로 형태로 실행하면 됩니다
스레드를 동기화 시키는 것은 상당히 어려운 작업중의 하나입니다. 아주 작은 실수만 하더라도 프로그램은 생각과는 전혀 다른 방향으로 흘러가고 맙니다. 또한 여러개의 스레드를 동시에 디버깅 한다는 것도 쉬운일은 아닙니다. 그러나 다해이도 VC는 기본적으로 동기화가 잘 된 프로그램을 제공합니다. 작은 단위의 일을 하는 중간에 자신의 작업을 다른 스레드로 뺏기는 일이 별로 없다는 이야기입니다. 여기에서는 스레드의 동기화에 대한 맛보기 정도로만 소개합니다.
프로그램이 수행될 때 한 개의 데이터를 동시에 두 개의 프로그램이 핸들링할경우가 있습니다. 예를 들어 (a)라는 파일에 A프로그램은 데이터를 입력,수정하고 B라는 데이터는 데이터를 검색합니다. B가 읽고자 하는 시점에서 A라는 프로그램이 그데이터를 수정하고자 한다면 여기에서 문제가 발생됩니다. A가 수정한 후에 B가 읽게 할것인가? 아니면 B가 읽고 난후에 A라는 데이터가 수정을 하게 할것인가? 이런 문제점은 동시성을 가진 운영체제에서 해결해야할 중요한 항목입니다.
- ex)) 통신프로그램 작성시, 전송받은 데이터를 화면에 보여주는 일련의 작업은 반드시 데이터를 전송받은 후에 수행되어야 함 (동기화의 필요성)
* 프로그램이 로딩되어, 메모리 상에서 실행되고 있는 상태를 프로세스(process) 혹은 태스크(task)라 한다.
- UDK/2012년스터디 . . . . 15 matches
* [http://udn.epicgames.com/Three/UnGlossaryKR.html 용어집] 용어집부터 읽으면 이해가 쉽군여
* [http://udn.epicgames.com/Three/DevelopmentKitFirstScriptProjectKR.html 언리얼스크립트 시작하기] 읽어봅시다
* [http://udn.epicgames.com/Three/UnrealScriptReferenceKR.html 언리얼스크립트 레퍼런스] UnrealScript 사용자용
* [http://udn.epicgames.com/Three/MaterialsCompendiumKR.html 머터리얼 개론] 텍스쳐와 여러 가지 연산 기능을 이용하여 머터리얼 속성을 만듬
http://udn.epicgameskorea.com/Three/LandscapeCreatingKR.html
* [http://udn.epicgames.com/Three/MasteringUnrealScriptBaptismByFireKR.html 언리얼 마스터하기: 언리얼스크립트 통과의례]
* [http://udn.epicgames.com/Three/MasteringUnrealScriptClassesKR.html 언리얼 마스터하기: 언리얼스크립트 클래스]
* [http://udn.epicgames.com/Three/MasteringUnrealScriptFunctionsKR.html 언리얼 마스터하기: 언리얼스크립트 함수]
* [http://udn.epicgames.com/Three/MasteringUnrealScriptPreProcessorKR.html 언리얼 마스터하기: 언리얼스크립트 전처리기]
* [http://udn.epicgames.com/Three/MasteringUnrealScriptStatesKR.html 언리얼 마스터하기: 언리얼스크립트 스테이트]
* [http://udn.epicgames.com/Three/MasteringUnrealScriptDelegatesKR.html 언리얼 마스터하기: 언리얼스크립트 델리게이트]
* 스크립트 언어 수정을 이용한 Hello World 찍어보기
* 참고자료: [http://udn.epicgames.com/Three/UnrealScriptGameFlowKR.html 언리얼스크립트 게임 흐름]
좀 더 관심있으면 다음 예제도 도움이 될 듯. [http://udn.epicgames.com/Three/DevelopmentKitGemsConcatenateStringsKismetNodeKR.html Concatenate Strings (문자열 연결) 키즈멧 노드 만들기]
[http://udn.epicgames.com/Three/CollisionTechnicalGuideKR.html 콜리전 테크니컬 가이드]의 내용을 요약.
- 캠이랑놀자/보창/숙제1 . . . . 15 matches
r,g,b = im.getpixel((x,y))
newR.putpixel((x,y),(r,0,0))
newG.putpixel((x,y),(0,g,0))
newB.putpixel((x,y),(0,0,b))
r,g,b = im.getpixel((x,y))
newGray.putpixel((x,y),k)
r,g,b = im.getpixel((x,y))
im.putpixel((x,y),(r+50,g+50,b+50))
r,g,b = im.getpixel((x,y))
im.putpixel((x,y),(r-50,g-50,b-50))
r1,g1,b1 = im.getpixel((x,y))
r2,g2,b2 = im.getpixel((x,y-100))
im.putpixel((x,y-100),((r1+r2)/2,(g1+g2)/2,(b1+b2)/2))
t1,t2,t3 = im.getpixel((m,n))
im.putpixel((m,n),(r/25,g/25,b/25))
- Linux/필수명령어/용법 . . . . 14 matches
프로그램을 지금이 아닌 나중에 실행하도록 예약한다.
시간을 지정할 때 상당히 다양한 방법을 사용할 수 있다. hhmm 혹은 hh:mm 형태도 가능하며, noon, midnight이나 오후 4시를 의미하는 teatime이라고도 할 수 있다. 오전 오후를 쉽게 구분하려면 am pm 문자를 추가해도 된다. 이미 지나간 시간이라면 다음 날 그 시간에 수행될 것이다. 정확한 날짜를 지정하려면 mmddyy 혹은 mm/dd/yy 아니면 dd.mm.yy 형태 중 선택하라.
인수를 하나만 준다면 그 숫자는 연도를 의미하는 것으로 간주된다. 두 개의 숫자를 준다면 앞의 것은 월, 그 다음은 연도를 의미하는 것이 된다. 우리의 습관과는 다른 방법을 사용한다. 아무 인수도 주어지지 않으면 이번달의 달력을 표시한다. 연도를 표기할 때는 서기를 완전히 표기해야 한다. 예를들어 97은 1997년이 아니라 서기 97년의 달력을 출력할 것이다.
두 번째 형식은 어떤 사용자 레벨을 바꿀 것인가 어떻게 바꿀 것인가를 개별적으로 정하는 방법이다. 숫자를 사용하지 않고 ls 등을 사용할 때 실제로 볼 수 있는 기호 문자를 사용한다는 것과 특정 권한을 줄 것인가 뺄 것인가 지정할 수 있다는 장점이 있다. 특정한 경우 두 번째 형식이 편리하겠지만 고유한 값의 권한을 지정하는데에는 첫 번째 형식이 훨씬 편리할 것이다. 8진법을 다루는 것은 조금만 알면 너무나 쉽기 때문이다.
: 실행될 프로그램들과 스케줄의 cron 데몬을 구성한다.
- kill [-signalID] PID
-13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD
- p 이름붙여진 파이프(pipe)
셸을 사용할 때 어떤 명령의 사용법이 기억나지 않는 경우가 있다. 혹은 매번 사용하던 명령이라도 특수한 옵션이 필요할 때 그 기호나 사용법을 정확히 확인해야 하는 경우가 많이 있다. 물론 참고 서적을 보면 되겠지만 터미널 상에서 필요한 도움말을 언제라도 제공받을 수 있다. 시스템에 내장된 매뉴얼은 빠르게 볼 수 있을 뿐만 아니라 그 내용도 완벽한 것이어서 옵션의 종류 같은 것은 빠진 것이 없다. 만일 온라인 레퍼런스를 모두 종이로 출력한다면 그 분량은 엄청날 것이 틀림없다.
- PID : 프로세서 ID, 각 프로세서를 구분하기 위한 고유의 ID
요즘은 컴퓨터를 끄기 전에 반드시 shutdown 절차를 거쳐서 시스템을 정리해야 한다는 것이 상식으로 통한다. 8비트 컴퓨터를 사용할 때는 그런 복잡한 것은 생각하지 않아도 문제 없었는데 말이다. 하드웨어와 스위치를 내리는 데에 소프트웨어의 허락을 받아야만 하는 것이다. shutdown 명령은 미리 사용자들에게 경고만을 보내고, 정해진 시간에 시스템을 종료한다. 시간은 24시간 단위의 표기법을 사용하며 종료 5분전에는 시스템에 로그인이 금지된다. 시스템 종료 시간이 가까워짐에 따라 각 사용자들에게 메시지를 주기적으로 출력하여 경고를 보낸다.
프로그램이 수행되는 시간을 측정한다.
이것은 매우 강력한 기능의 스크린 에디터이다. 메뉴 방식이 아니라 명령 입력 방식이기 때문에 처음 학습이 불편하다는 단점이 있지만 사용법을 알면 매우 빠르게 작업을 수행할 수 있다. vi대한 자세한 내용은 이 책의 앞부분이나 다른 참고 서적을 참조하라.
등록된 path를 통해서 특정 프로그램을 찾는다.
- which 프로그램
만일 사용자의 path가 매우 긴 경우에 유용하게 사용될 수 있다. find와 유사한 기능이지만 path안에 있는 프로그램을 찾을 때 간단하게 사용된다.
지정된 path 안에서 tetries 프로그램을 찾는다.
- PairProgramming . . . . 14 matches
=== 동문서버 프로그램 개발중 ===
동문서버 프로그래밍 팀의 인수인계용으로 이용되었었다. PP를 주로 하고 한두번의 VPP를 했다. 해당 소스를 같이 만들어가면서 기존의 프로그램을 설명했다.
이 때에는 Expert는 놀지말고 (-_-;) Observer의 역할에 충실한다. Junior 의 플밍하는 부분을 보면서 전체 프로그램 내의 관계와 비교해보거나, '자신이라면 어떻게 해결할까?' 등 문제를 제기해보거나, reference, 관련 소스를 준비해주는 방법이 있다.
간단한 아날로그 시계를 만드는 프로그램이였다. MFC + CppUnit 로 작업했다.
* Pair 의 진행을 이끌어가는 것 - 프로그래밍의 흐름이라고 해야 할까. 디자인을 어느정도 선정도로 맞추고 어떠한 문제를 풀 것인가에 대한 약간의 선이 필요할 것 같다. 이 경우에는 초반 디자인이 허술했었다는 약점이 있었다. '전체적인 관점에서 무엇무엇을 하면 프로그램이 완성될 것이다' 라는 것. UserStory 만 생각하고 EnginneringTask 를 간과한 것이 큰 문제였다. (그때 EnginneringTask 에 대한 개념이 없었었다는. 어디서 함부로 주워만 지식. --; 사고를 하자 사고를. -_-)
* 하지만 UnitTest도 그렇듯이, 많은 장점을 가진 방법을 완벽하지 않다는 이유로 사용하지 않는다는 것은 아쉬운 일일 것이다.
* 자존심문제? - Pair를 의식해서여서인지 상대적으로 Library Reference나 Tutorial Source 를 잘 안보려고 하는 경향이 있기도 하다. 해당 부분에 대해서 미리 개인적 또는 Pair로 SpikeSolution 단계를 먼저 잡고 가벼운 마음으로 시작해보는 것은 어떨까 한다.
* On-Side Customer 와의 PairProgramming - 프로젝트 중간에 참여해서 걱정했었는데, 해당 일하시는 분과 직접 Pair를 하고 질문을 해 나가면서 전체 프로그램을 이해할 수 있었다. 특히 내가 ["BioInfomatics"] 에 대한 지식이 없었는데, 해당 도메인 전문가와의 Pair로서 서로 상호보완관계를 가질 수 있었다.
* Junior 의 위치에서 바라본 학습 효과 - 이전에 상경이형이 채팅 프로그램 만드는 법을 직접 보여줬을때가 생각이 난다. (그때 '자. 15분동안 하나 만들어줄께~' 하면서 후다다닥 MFC로 서버/클라이언트 예제를 바로 보여주던 모습은 잊혀지지 않는다;) Junior 의 입장에서 Expert 행동 하나하나는 Check Point 이다. 좋은 습관과 프로그래밍 스타일, 디버깅하는 모습을 직접 눈으로 확인할 수 있었다.
넷미팅, VNC 등의 개발 프로그램을 공유할 수 있는 프로그램과 음성채팅 등으로 Virtual PairProgramming을 할 수 있다. (오.. 좋아진 세상~) 단,PairProgramming 에 비해 아쉬운점들이 있다. (관련 책들을 찾아서 보여주지 못한다는 것 등등) 나중에는 PC카메라와 스캐너 등등 이용할 수 있지 않을까. ^^
1002는 VNC와 넷미팅 (그때 넷미팅 화면공유시 XP가 뻗었던 관계로. -_-;) 을 이용, Python을 공유해서 다른 곳에 있는 사람과 SpikeSolution 을 VPP로 시도한 적이 있다. VNC가 화면 refresh가 느리다는 단점 빼고는 별다른 지장이 없었다. 모르는 라이브러리들을 Pair 하는 사람이 다운받아주고, 라이브러리를 설치하고. 모르는 것은 Pair 에게 물어보고, 어떻게 만들까 토론했던 경험이 좋았다.
* http://www.objectmentor.com/publications/xpepisode.htm - Robert C.Martin 과 Robert S Koss 이 대화하면서 Pair를 하는 예제.
- TeachYourselfProgrammingInTenYears . . . . 14 matches
배운다:3일간에서는, 의미가 있는 프로그램을 얼마든지 쓰거나 그 과정에서의 성공이나 실패로부터 배우는 시간 등 짝이 없다.경험을 쌓은 프로그래머와 함께 작업을 실시해, 그러한 환경안에서의 생활이 어떤 것인가를 이해하는 얼마 되지 않다.빠른 이야기, 대단한 일을 배울 시간이 없다고 하는 것이다.따라서 그러한 서적은, 외관만 정통하는 것에 대하여 말할 뿐으로, 깊은 이해에는 연결되지 않는다.알렉산더제가 말한 것처럼, 서투른 병법은 상처의 원이다.
Pascal:3일간으로, Pascal 의 문법을 배우는 것은 가능할지도 모르는(유사한 언어를 이미 알고 있으면)가, 그 문법의 이용법까지는 충분히는 배울 수 없다.즉, 예를 들면 당신이 Basic 프로그래머이다고 하여, Basic 스타일로 Pascal 의 문법을 이용한 프로그램의 쓰는 법을 배울 수 있을지도 모르지만, Pascal 가 실제의 곳, 무엇에 향하고 있을까(향하지 않은가)를 배울 수 없다.그런데 여기서의 포인트는 무엇일까? Alan Perlis(역주1) 은 일찌기, 「프로그래밍에 대한 생각에 영향을 주지 않는 것 같은 언어는, 아는 가치는 없다」라고 말했다.여기서 생각되는 포인트는, 당신이 Pascal(그것보다 어느 쪽일까하고 말하면 Visual Basic 나 JavaScript 등의 (분)편이 현실에는 많을 것이다)를 그저 조금 배우지 않으면 안 된다고 하면(자), 그것은 특정의 업무를 실시하기 위해서(때문에), 기존의 툴을 사용할 필요가 있기 때문일 것이다.그러나, 그러면 프로그래밍을 배우는 것으로는 되지 않는다.그 업무의 방식을 배우고 있을 뿐이다.
다른 프로그래머와 이야기를 해, 타인의 프로그램을 읽는 것.이것은 어떠한 서적이나 트레이닝·코스보다 중요한 일이다.
프로그램을 쓰는 것.학습하는 최고의 방법은,실천에 의한 학습이다.보다 기술적으로 표현한다면, 「특정 영역에 있어 개인이 최대한의 퍼포먼스를 발휘하는 것은, 장기에 걸치는 경험이 있으면 자동적으로 실현된다고 하는 것이 아니고, 매우 경험을 쌓은 사람이어도, 향상하자고 하는 진지한 노력이 있기 때문에, 퍼포먼스는 늘어날 수 있다」(p. 366) 것이며, 「가장 효과적인 학습에 필요한 것은, 그 특정의 개인에게 있어 적당히 어렵고, 유익한 피드백이 있어, 게다가 반복하거나 잘못을 정정하거나 할 기회가 있는, 명확한 작업이다」(p. 20-21)의다(역주3).Cambridge University Press 로부터 나와 있는 J. Lave 의「Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life」(역주4)라고 하는 책은, 이 관점에 대한 흥미로운 참고 문헌이다.
다른 프로그래머가 일을 끝낸후의프로젝트에 임하는 것.사람이 쓴 프로그램의 이해에 열중하는 것.원래의 코드를 쓴 프로그래머가 근처에 없는 경우, 그 프로그램을 이해하거나 고치거나 하려면 무엇이 필요한가 생각하는 것.당신의 프로그램을, 다음에 다른 사람이 메인트넌스 하기 쉽게 하려면 어떻게 디자인하면 좋은가 생각하는 것.
적어도 반다스의 프로그램 언어를 배우는 것.그 중의 하나는 클래스 추상을 서포트하는 것(예를 들면 Java 나 C++), 하나는 함수 추상을 서포트하는 것(예를 들면 Lisp 나 ML), 하나는 구문 추상을 서포트하는 것(예를 들면 Lisp), 하나는 선언적 기술을 서포트하는 것(예를 들면 Prolog 나 C++ 템플릿), 하나는 coroutine 를 서포트하는 것(Icon 나 Scheme), 그리고 하나는 병렬처리를 서포트하는 것(예를 들면 Sisal)인 것.
언어 표준화의 시도에 참가하는 것.ANSI C++ 위원회라면 그것이 생길 것이고, 가족에서의 코딩·스타일에 대해, 인덴트의 공백을 2 문자로 할까 4 문자로 하는가 한 레벨에서도, 결정하게 될 수 있다.어쨌건 간에, 다른 사람이 프로그램 언어의 어떤 곳을 좋아하는가, 얼마나 깊고 좋아하는가, 그리고 아마, 왜 그렇게 좋아하는가는 일도 조금, 배우게 된다.
Bloom, Benjamin (ed.) Developing Talent in Young People, Ballantine, 1985.
- 논문번역/2012년스터디/서민관 . . . . 14 matches
특히, 선형 판별 해석(linear discriminant analysis)과 allograph 문자 모델, 통계적 언어 지식을 결합한 방법을 살펴볼 것이다.
[1, 18]과 [15]에 HMMs 방법을 사용하는 텍스트 분리에 기반을 둔 방법과 recurrent neural network와 HMMs를 혼합한 방법의 각 예시가 있다.
이어지는 섹션들에서 설명할 시스템은 비슷한 접근법을 사용하였는데, 전처리와 특징 추출 방법이 약간 다르다.
우리의 시스템을 단일 작성자인 경우에도 평가하기 위해서 노인(Senior)들에게서 수집된 데이터베이스에서 제공하는 필기 형태를 이용한 실험도 하였다.
두 데이터베이스의 필기 형태는 해상도 300dpi에서 256의 그레이 레벨로 스캔되었다.
따라서 각 행은 수필 지역 사이의 공백을 탐색하는 방법을 통해 나누어진다.
반면에 수직 위치와 일그러짐은 [15]에 나온 것과 비슷한 선형 회귀(linear regression)를 이용한 베이스라인 추정 방법을 이용해서 교정하였다. 일그러진 각도의 계산은 각의 방향을 기반으로 하였다.
이 전처리 단계의 효과는 말뭉치에서 전형적인 텍스트 라인을 이용한 그림 3에 나타나 있다.
필기 사이즈의 분산에 대해 견고함을 증가시키기 위해서 특징 (2)-(5)는 상단 기준선과 하단 기준선의 거리(지역 최고값을 이용한 line fitting으로 계산됨)를 이용해서 정규화되었다.
선형 변환과 특징 공간의 차원을 줄이는 방법을 적용하여 원형 특징 표현(........ original feature representation)을 최적화하였다.
가장 유사할 것 같은 문자 배열이 표준 Viterbi beam-search 방법을 이용해서 계산된다.
우리의 경우에는 absolute discounting 을 이용한 bi-gram언어 모델과 backing-off for smoothing of probability distributions가 적용되었다.
이 작업을 위해서 LDA(수축된 차원수 12)를 이용한 14.2%의 오류율을 가진 문자들이 얻어졌다. 에러율은 allograph 모델(각 소문자마다 6개의 allograph)을 이용하는 것으로 13.3%까지 감소한다.
- 데블스캠프2003/다루어볼문제와관련세미나 . . . . 14 matches
* 회의 때 나왔던 주제들 입니다. OOP, Computer System, 다양한 프로그램 언어 체험, 네트워크
* STL을 알려주는건 어떨까요? 좀 더 강력한 프로그래밍을 하는 방법을 다룰 수도 있을듯 한데...-[상욱]
* 작년 프로그램 잔치때 했던 여러 언어 중 하나를 골라서 뭔가를 짜보는 것도 괜찮을듯.. 여러가지 패러다임을 익히는 게 중요하다는 것을 알아서리.. --인수
* 계획을 말씀드리겠습니다. 여러 문제를 푸는것 또한 중요하지만, 큰(?) 프로그램을 다루는것도 괜찮은 생각 같아서 OOP를 2틀째 넣고 마지막날까지 팀으로 연속해서 만들어 데모를 하는 방법도 생각을 했었습니다.(정모 때요..) -[상욱]
입장을 바꿔서 생각해보세요. 과연 1학년때 큰 프로그램을 짜라고 하면 짤 수 있을지... 선배들과 짠다고 하면 선배들이 대부분 짜버리는 부정적인 결과가 나올지도 모를것 같습니다. 페어를 통해 배우는게 많기는 하겠지만 이제 막 ToyProblems 에 재미를 붙일 사람들인데 너무 목표를 크게 잡고 있는 것은 아닌지요... 아마도 제가 큰프로그램에 대해 잘 몰라서 이런 말을 하는 것 같습니다. 큰 프로그램에 대한 명확한 설명을 바랍니다. --[창섭]
큰 프로그램이라고 말은 해 봤자 선배님들이 풀면 4~5시간이면 풀어버릴 문제가 될꺼 같습니다. 휴대폰 메뉴 만들기나 PDA기능 만들기 등 이런 조그만 프로그램을 묶어놓는 프로그램을 하면서 OOP를 조금이나마 느껴보라는 차원에서 하는 것입니다. 물론 같이 페어를 하는 선배님들은 정말 기초적인 것만 알려주는 식이고요 그 팀을 이끌어 가서는 안되겠죠? ^^; -[상욱]
* 지나가다 잠시 말씀 드릴까 합니다. 아직 oop개념이나 프로그램 모듈화에 대해서 개념이 없는 분들에게 STL같은 것을 가르친다는 것은 약간 문제가 있지 않을까요? oop개념을 가르쳐도 구현 같이 base적인 경험이 없이 단지 가져다 쓰는것을 먼저 배우면 좋지 않을 것 같습니다. 1학년 분들 숙제 하는 것을 보니 모듈화 같은것을 가르쳐도 좋을 것 같은데. 많은 것을 가르치려고 하시는 것은 좋으나 능력에 적절하게 가르치는 것도 맞는 것 같군요. STL 같은 걸 가르치는 건 그 다음이 되었으면 좋겠구요.. 내부사정을 잘 모르니 틀리다 싶은 말이면 걍 흘려보내세요. 지우셔도 상관 없구요. ^^ - 00 나현철
* 저는 STL 같은 것은 그냥 할수 있을 만큼 사용할줄만 알면 되다고 생각합니다. Library 가 제공하는 것은 우리에게 좀더 고차원적인 사고에 전념할수 있는 것이 겠지요. 배열의 길이에 신경쓰지 않는 것만으로, C++에서 얼마나 무한한 사고가 가능할까요? 학교 교제는 C++을 가르치는 것이 아니라, C에다 어떻게 충돌을 일으키지 않고 문법을 추가시켜 C++이 되었는가를 가르치기 때문에 이런 기회는 필요 할것 같습니다. 아마 궁금한 사람은 STL의 소스를 보겠지요. 사족으로 STL은 OOP보다 Generic Programming의 관점에서 구현되 었습니다. --NeoCoin
* 도큐먼트나 튜토리얼을 이용하는 방법을 알려주는 것도 괜찮은 것 같습니다. 새내기들에게 MSDN 에서 검색을 하는 것을 알려줬더니 단지 영어라는 이유로 겁부터 먹고 사용을 못하더군요. 어떠한 주제를 던져주고 이러한 것들을 스스로 찾아서 사용하는 방법을 알려주는 것도 스스로 공부를 해 나가는데 있어서 좋은 경험이 되지 않을까 합니다. -- [상욱]
- 캠이랑놀자/아영/숙제1 . . . . 14 matches
r,g,b = im.getpixel((x,y))
imR.putpixel((x,y), (r, 0, 0))
imG.putpixel((x,y), (0, g, 0))
imB.putpixel((x,y), (0, 0, b))
r,g,b = im.getpixel((x,y))
imR.putpixel((x,y), r)
imG.putpixel((x,y), g)
imB.putpixel((x,y), b)
r,g,b = im.getpixel((x,y))
imW.putpixel((x,y), (r+30, g+30, b+30)
r,g,b = im.getpixel((x,y))
imD.putpixel((x,y), (r-30, g-30, b-30)
r,g,b = im.getpixel((x,y))
imW.putpixel((x,y), (r, g, b+30)
- AVG-GCC . . . . 13 matches
-dumpversion Display the version of the compiler'''컴파일러 버전'''[[BR]]
-dumpmachine Display the compiler's target processor[[BR]]
-print-search-dirs Display the directories in the compiler's search path[[BR]]
-print-libgcc-file-name Display the name of the compiler's companion library[[BR]]
-print-prog-name=<prog> Display the full path to compiler component <prog>[[BR]]
-print-multi-lib Display the mapping between command line options and[[BR]]
-pipe Use pipes rather than intermediate files[[BR]]
-B <directory> Add <directory> to the compiler's search paths[[BR]]
-v Display the programs invoked by the compiler[[BR]]
-E Preprocess only; do not compile, assemble or link[[BR]]
-S Compile only; do not assemble or link[[BR]]
-c Compile and assemble, but do not link[[BR]]
- AcceleratedC++/Chapter4 . . . . 13 matches
3장까지 봤던 것은 첫번째것만 있고, 나머지 것은 없다. 프로그램이 작을때는 별로 상관없지만, 커지기 시작하면서부터 2,3번째 것이 결여되면, 나중엔 제어가 불가능해진다. C++에서는 다른 언어와 마찬가지로 함수 + 자료구조를 제공함으로써, 프로그램을 구조화시킬수 있는 방법을 제공한다. 또한 함수 + 자료구조를 묶어서 가지고 놀 수 있는 class라는 도구를 제공해준다.(Chapter9부터 자세히 살펴본다.)
그러므로 이번장부터는 프로그램을 나눠서, 서로 다른 파일에 저장, 컴파일하는 법과, 나중에 합치는 법 등을 공부할 것이다.
* 3장까지의 프로그램을 보면 등급을 메기는 부분이 있다. 이 부분을 함수로 추출해보자. 함수로 추출함으로써, 나중에 똑같은 내용을 또 코딩할 필요가 없고, 알아보기도 쉬워진다. 또한 등급 메기는 방법을 바꿀때 그 함수 부분에만 문제를 한정지을 수가 있다. 또한 함수에 이름을 지어줌으로써, 더욱 추상화시킬수가 있게 된다.
* 함수 만드는 법을 요약해보자면
* 앞에서 우리는 vector에 들어가 있는 값에서 중간값 찾는 걸 했었다. Chapter8에서는 vector에 들어가 있는 type에 관계없이 작동하게 하는 법을 배울 것이다. 지금은 vector<double>로만 한정짓자. median 구하는 루틴을 함수로 빼보자.
* 여기서 살펴볼 게 몇가지 있다. 지난번에는 vector의 크기가 0이면 그냥 프로그램을 종료시켜버렸지만, 여기서는 예외처리라는 신기술을 사용했다. 이 방법은 여기서 끝내지 않고 다음 부분으로 넘어간다. <stdexcept>를 포함시켜 주면 된다.
* 이쯤 와서 함수의 유용함을 알았다면, 우리의 성적 매기는 방법을 따로 함수로 뽑아내고 싶을 것이다. 다음 예제를 보자.
* 여태까지는 한 학생의 데이터만 가지고 놀았다. 하지만 성적 처리 프로그램은, 모든 학생의 데이터를 대상으로 한다. 이에 다시 체계적인 데이터 구조가 필요하다.
=== 4.2.1 Keeping all of a student's data together ===
* 데이터 구조가 바뀌었으니, 우리의 프로그램도 약간 변경을 해야할 것이다. 먼저 read
- Linux/디렉토리용도 . . . . 13 matches
''이 책은 배포판에 의존적인 내용이 아니라 말그대로 리눅스를 그냥 쓰는 방법을 위주로 나오기 때문에
그래도 기본적은 프로그램을 깔정도가 되면 보는 것이 좋을듯하다. 처음에 이걸로 보다가 미치는줄 알았다''
* 프로그램들이 의존하고 있는 라이브러리 파일들 존재.
아파치를 비롯한 모든 서버의 환경설정 파일이 관리 되는 곳이다. 물론 사용자가 직접 바이너리로 설치했을 경우에는 이 곳에 위치하지 않을 수도있다. 그러나 대부분 패키지 관리자를 통해서 설치된 프로그램의 경우 이곳에서 설정이 가능하다. 직접 설치를 하는 경우라면 '''X11, apache2, init.d, rc.*, skel, xinitd.d''' 디렉토리를 많이 다루게 된다.
* 일반 사용자들을 위한 대부분의 프로그램 라이브러리 파일들이 위치.
* /usr/bin : 응용 프로그램의 실행 파일이 위치
* /usr/src : 프로그램소스 및 커널 소스들이 보관되어 있는 곳.
* /usr/local : 새로운 프로그램들이 설치되는 곳(windows의 Program Files 와 유사)
보통 바이너리 프로그램을 설치할 경우 /usr/local 에 설치하여 일관성을 유지한다. jdk등을 설치할 때에고 관습상 /usr/local 에 설치를 해주고, 배포판이 패키지 형태로 jdk등을 제공할때에는 배포판을 통해 설치하는 것이 패키지의 통일성 및 관리의 편의성 면에서 좋다.
이 디렉토리에는 커널의 바이너리 이미지가 위치한다. 보통은 부트로더를 /vmlinuz 로 부팅하게 설정하고, 현재 내가 쓰고 싶은 커널의 심볼릭 링크를 /vmlinuz 로 설정하여서 이용한다. 이 경우 커널의 버전업이나 테스팅을 위해서 커널의 버전이 필요할 경우 관리상 용이하다.
실제 파티션을 분할할때에는 어떤 목적으로 프로그램을 이용하는지에 대한 이해가 필요하다. 처음 설치하는 사용자의 경우에는 전체 파티션을 단일 파티션으로 잡고 설치를 해도 무방하지만 다중 사용자 계정을 지원할 용의가 있는 경우에는
|| / || 500M/30G || 커널 이미지, 각 프로그램의 설정파일등 크지 않은 파일들이 저장된다. ||
|| /usr || 8G/30G || 실제 응용프로그램의 대부분이 설치되므로 넉넉하게 설정하는 것이 필요하다. ||
- NumberBaseballGame/영동 . . . . 13 matches
int pitcher[3]={0,};
pitcher[0]=rand()%9+1;
pitcher[1]=rand()%9+1;
}while(pitcher[1]==pitcher[0]);
pitcher[2]=rand()%9+1;
}while(pitcher[2]==pitcher[1] || pitcher[2]==pitcher[0]);
cout<<pitcher[i];
if(pitcher[i]==batter[i])
if(pitcher[i]== batter[j]){
- ScheduledWalk/석천 . . . . 13 matches
["데블스캠프2002"]때 소개했었던 StructuredProgramming 기법을 처음부터 끝까지 진행하는 모습을 보여드립니다. 중간에 버그가 발생하고, 그 버그를 수정한 소스를 그대로 실어봅니다. 그대로 따라해보셔도 좋을듯. 단, 중간 삽질과 컴파일 에러에 겁먹지만 않으신다면. ^^;
StructuredProgramming 기법으로 StepwiseRefinement 하였습니다. 문제를 TopDown 스타일로 계속 재정의하여 뼈대를 만든 다음, Depth First (트리에서 깊이 우선) 로 가장 작은 모듈들을 먼저 하나하나 구현해 나갔습니다. 중반부터는 UnitTest 코드를 삽입하기를 시도, 중후반부터는 UnitTest Code를 먼저 만들고 프로그램 코드를 나중에 작성하였습니다.
=== Version 0.1 - 프로그램의 가장 추상적 단계 ===
말 그대로. 전형적인 '프로그램' 입니다. '입력을 받고, 처리해서 출력한다.' 라는;
위까진 프로그램의 트리중 1차 레벨이겠고, 이를 조금씩 재정의해나갔습니다. 컴파일 에러는 거의 뭐 무시를..~ 어차피 뼈대이므로. 컴파일 에러나 무한루프 등이 문제가 발생하는 경우엔 일단 void 형으로 리턴값을 적거나 return false; 식으로 채워넣습니다. 일단은 뼈를 잡는게 더 중요하므로.
이 답이 완벽한 답은 아니며, HIPO 이후 바로 프로그램 완성까지의 길에는 약간 거리가 있습니다. (왜냐. 이 Top-Down Design 의 결과가 완벽하다라고 말할수는 없으니까요. 하지만, 문제와 전반적 프로그램 디자인, 큰 밑그림을 그리고 이해하는데 도움을 줌에는 분명합니다. )
입력데이터를 받아서 처리하는 방법에는 두가지가 있겠습니다. 하나는 리턴값을 넘겨주는 방법, 하나는 인자로 해당 변수의 포인터 또는 레퍼런스를 받은뒤, 그 변수의 값을 변화시켜주는 방법. (scanf 함수가 그러한 방법이지요.) 여기선 간단하게 리턴값을 넘겨주는 방법을 이용했습니다. int 형 두개 변수를 리턴하는 것이라면 구조체를 이용하는 것이 더 간단하리라는 판단에서입니다.
// 일종의 Test Code. 프로그램이 완료되었다고 했을때 제가 원하는 상황입니다.
그렇다면, 틀린 생각을 맞다라고 가정하고 만들어진 IsJourneyEnd 또한 틀린 함수가 되겠군요. 이를 수정하고, 해당 소스도 수정합니다. 그리고 계속 프로그램을 돌려봅니다. 그리고 Test Case를 추가합니다.
["RandomWalk2/TestCase"] 에서 멈췄다면 큰일날 뻔 했군요. 테스트는 자주 해줄수록 그 프로그램의 신용도를 높여줍니다. 일종의 Quality Assurance 라고 해야겠죠.
음? 이런 계산이 이 프로그램 내에서 굉장히 많이 나오죠. 2차원 동적배열을 1차원 배열로 구현해줬기 때문에. 오호라..
여기서 얻을 수 있는 교훈 - 이런 변환 부분은 차라리 함수로 만들자는 겁니다. -_-; 이 경우 OO Language 라면 1차원 배열을 이용한 2차원 배열 클래스를 만들어 쓰는 것이 가장 편합니다. 문제를 해당 배열 클래스 내로 지역화 시킬 수 있죠. 여기서는 일단 C로 만들었다고 가정하고 배제합니다.
- VisualBasicClass/2006/Exam1 . . . . 13 matches
① 프로구램의 작동 순서가 완전히 프로그램에 의해서 지시되고 제어된다.
5. 비주얼 베이직의 기본적인 프로그램 작성 과정을 간략하게 나열한 것이다. 올바른 순서를 쓰시오?(1점)
C) 프로그램 기획 및 설계
6. 다음은 프로젝트에 새로운 컨드롤을 추가하는 방법을 나열한 것이다 올바른 순서를 쓰시오 ?(1점)
8. 다음 프로그램의 출력은?(1점)
9. 다음 프로그램은 입력된 문자열을 역순으로 나타내는 프로그램이다. 괄호안에 알맞은 것은?(4점)
Picture1.Cls
Picture1.Print temp
10. 다음 프로그램의 출력은?(1점)
13. 서브프로그램과 함수에 관련된 설명 중 가장 부적절한 것은?(1점)
① 지명 인수를 사용하여인수를 서브프로그램에 전달할 때는 반드시 파라미터의 순서대로 기술하여야 한다.
② 인수들을 서브프로그램에 모두 다 전달하기 부적절한 경우에는 Optional이란 키워드를 사용하면 효과적이다.
③ 함수는 수행한 결과를 호출한 프로그램에게 반한하는데 입력 인수는 여러 개일 수 있으나 출력 인수는 오직 하나이다.
15. 다음 프로그램에서 List1.Text의 역할에 대한 설명으로 맞는 것은?(1점)
- 데블스캠프2005/RUR-PLE . . . . 13 matches
* 사람들이 읽기 쉬운 프로그램을 작성해야 한다.
* 컴퓨터 프로그램을 작성할때는 반복을 하지 마라.
* beeper를 드는 명령어 : pick_beeper()
pick_beeper()
http://rur-ple.sourceforge.net/images/move_pick_start.png
http://rur-ple.sourceforge.net/images/move_pick_end.png
pick_carrot = pick_beeper
pick_carrot()
pick_carrot = pick_beeper
pick_carrot() # pick them all!
- 새싹교실/2012/사과나무 . . . . 13 matches
처음보는 운영체제라던가, 아직은 생소할 커맨드라인 프로그램 사용이라던가
과제로는 printf()와 scanf()의 사용법을 정리해오는 것을 주었습니다.
* 새싹교실 첫 수업이었다. 고한종 강사님이셨고 같이하는 팀원과는 같이못해 혼자듣게되었다. 선배님은 간담회때 처음뵜고 서정이누나는 뒤풀이때 처음봤다.새싹교실이라고해서 무거울줄 알았는데 내생각이 틀렸다. 아주 기본부터 차근차근 설명을해주셨고 문외한인 나에게 과제도주셨다. 더열심히 하라는 뜻인거같다.그리고 수업시간에는 간단한 사칙연산만 만들었는데 오늘 이차방정식을 푸는 프로그램을 만들어봤다. 도움을 받고 만든 프로그램이지만 다음엔 내가 스스로 만들어보고싶다. 앞으로 기대된다. - [김도익]
* 반이 바뀐 첫날, '이소라 때리기 게임'을 직접 손으로 타이핑을 시키고, 이 프로그램에 쓰인 개념들을 가르쳤다. 작년 나와 비슷한 수준이라 더 열심히 가르쳐야 겠다는 생각이 들었다. 둘 다 현재 수준이 많이 낮다는 걸 알았다. 앞으로는 좀 더 쉽게 설명해야겠다. - [김성원]
* 게임 프로그램 타이핑을 열심히 쳤다. 선생님께서 인내심이 좋으셔서 거북이 타자인 저를 잘 지켜보신 것 같다. 완전히 이해는 못 했지만 새로운 경험이 좋았고, 일단은 타이핑을 빨리치는 것이 급선무이다. 거부기 타이핑 개선하기!! - [김서정]
* 오늘은 이소라때리기라는 게임을 했다. 새 강사님과 시작을 해서 어려울 줄 알았는데 정말 친절하게 가르쳐주셨다. 알고리즘대로 구동되는 프로그램이 신기했다. 지난시간보다 더 많은 예약어를 이용했고, rand()라는 것도 사용했다. 가장 신기했던 것은 k와 p를 아닌 다른 문자를 이용했을 대 default문장이 나와 k와 p를 누를 수 있게 유도해준 것이다. 지난시간과 달리 조금 더 긴 프로그램을 짜봤는데 만들어져가는 과정이 눈으로 확인되니까 조금 더 욕심을 내보고 싶다. 앞으로 2탄을 더 복잡하게 만들고 싶다. - [김도익]
} //두 가지 방법을 사용했기 때문에 처음의 코드는 주석처리를 했다.
* 오늘은 제어문에 대해 배웠다. 지난시간에 했던 부분이지만 다시 공부하였다. 지난과제 구구단을 나눠서 출력하는 프로그램을 만드는데 \t 어떻게 써야할지 몰라서 많이 헤맸고,int k라는 개념도 생각을 하지 못해 나 스스로 만들지는 못했다. 변수를 2개만 해야한다는 고정관념을 버려야겠다. 오늘 배운점은 프로그램을 만들때 편협한 시각이 아닌 자유로운 생각으로 이것저것 생각하는 것이 너무나도 중요하다는 걸 보았다. 수학문제 풀이도 다양하듯이 프로그램도 마찬가지라고 생각한다. 한가지 주제에 대해 다양한 생각을 하는 연습을 해야겠다. - [김도익]
3. 수업을 자주 듣는 것보다 프로그램을 혼자 짜보는 것이 나의 공부가 도니 것 같았다.
- 영호의해킹공부페이지 . . . . 13 matches
[ Epilogue by Wyzewun:
me +-20 mins to do the whole thing, but at least I was keeping a log of me
(Copies string to DX register) [Actually the Segment:Offset address of where
(Copies 09 value to AH register) [09 is the function for MS-DOS to call - Ed]
(Now we start compiling our lil codey, awww how kewt;)
We could do this in any language which we can access the Win32 API from
yet, but I s'pose you can pick that up at other places.
Within a few hours, our sniffer logs begin to pick up all sorts of interesting
be stupid. :)
This technique was picked up by me when trying to phone ppl in Johannesburg
Hopping (on/off)
epi53 - | epi53-01.kn.saix.net | Empangeni dial up
pgb53 - | pgb53-01.nt.saix.net | Pietersburg dial up
pmb53 - | pmb53-01.kn.saix.net | Pietermaritzburg dial up
up53 - | up53-01.fs.saix.net | Upington dial up
- 이영호/64bit컴퓨터와그에따른공부방향 . . . . 13 matches
C, C++, Assembly, Linux Kernel, Network, Compilers
└저도 C (배우게 된다면 Assembly도.ㅎ)를 좋아 합니다.ㅎ 무엇보다 빠른 연산속도와 하드웨어 제어(해본적은 없지만), 포인터를 통한 메모리 접근등 좋은 점이 많아요.^^* 그렇지만 예를 들어 1만 팩토리얼을 출력하는 프로그램을 작성하시오. 라고 문제가 주어졌을때, C로 짜면 한나절이지만 파이썬으로 작성하게 되면 5분도 안걸리게 됩니다. 물런 연산속도가 느리기는 하지만 말입니다.^^ 이런 점에서 봤을때, 속도가 중요하다거나 특화된 프로그램을 작성해야할 경우에는 C와 같은 언어가 좋지만 보편적으로 사용하는 워드프로세서라든지 기타 응용프로그램이나, 제작해야할 프로그램의 제작시간이 짧을 경우에는 상위레벨의 언어가 좋을거라고 봅니다.^^ 뭐 이렇게 말은해도.. 사실 서로의 장점을 그때그때 맞춰서 섞어쓰는게 가장 좋지 않을까요?ㅎ (게임을 만들때 하위레벨의 언어로 하드웨어를 직접 사용한다 하더라도, 다이렉트를 이용하지 각각의 그래픽 카드에 맞춰서 프로그램을 만들지 않는것과 비슷한것 같아요.^^) 이상 지나가는 행인1의 잡다한 생각이었습니다.^^* - [조현태]
음. 아쉽게도 그런 용도로 Assembly를 평가 한게 아닙니다. 우수하고 못하다의 평가는 여기서도 나오는군요. 한가지만 파면 성공한다와 같은 맥락이랄까요... 저는 미래의 직장보다도 현재의 지식욕을 채우고 싶을 뿐입니다. 누구보다도 이것에 대해 많이 알고 싶고 또한 그렇게 되길 바랄뿐입니다. 과연 Java나 Python등을 공부하다보면 컴퓨터에 대한 가장 기초적인 지식들을 얻기 쉬울까요? 그렇기 때문에 Assembly에 대한 직접적인 접근을 하려고 하는 것입니다. 지식욕이 아니더래도 현직에 계시는 프로그래머분들께 컴퓨터에 대한 기초가 부족하고 프로그램만 짤 줄 아는 신참 직원들은 항상 한계에 다다르면 좌절한다라는 말을 들은적이 있습니다. 한번쯤은 생각해 볼 문제입니다. Assembly > C++을 평가한 것은 이런 맥락입니다. 컴퓨터에 대한 기초가 있느냐 없느냐. Assembly를 만지고 C++을 만진 사람의 경우는 모르겠지만 C++만 만지고 Assembly를 공부하지 않은 사람의 한계는 언젠가는 드러나게 되죠.
전 어제 제가 평생 해도 따라가지 못할것 같은 사람을 보았습니다. 그 사람과의 벽이랄까요. 물론 그분이 연륜이 있으시지만 컴퓨터 자체에 대한 기초적이고 깊은 지식은 따라가질 못하겠습니다. 그분의 소싯적에 C언어로만 짠 프로그램들은 컴퓨터에 대한 깊은 이해가 없으면 불가능한 것들이었습니다. 그분이 Assembly를 배우지 않고 C를 처음부터 만졌다면 어땠을까요? 그런 프로그램들을 짤 수 있었을까요? 이상, 우물 밖으로 튀어나온 개구리였습니다.
생각이 너무 한쪽에 치우신거 같네요. 아마도 저 말고 다른 선배님들도 저와 비슷한 심정(생각)으로 글을 쓰셨을거 같습니다. 선배님들 말이 어셈블러를 공부하지 말라? C++만 공부하라~~ 이렇게 들리셨나요? 저는 아닌거 같은데요. 조금만 더 생각하고 읽었으면 좋겠네요. 위에 쓰신 글들을 보니 어쩌면 프로그래밍에 관련해서 저보다 더 많이 알고 있으리라 생각되는데요. 우선 젤하고 싶은 생각은 남의 글을 비판적으로 읽는것도 중요하지만, 그사람의 입장에서 생각해보는게 좋을거 같군요. A라고 말했는데, B라고 들으면 안돼겠죠. 어셈을 익히고 C++을 익히는것도 좋습니다. 그렇다고 C++을 익히고 어셈을 익히는게 나쁜 방법이라고 생각하지는 않는데요..@,.@. 제생각에는 님은 "어셈을 꼭 인힌다음 C++을 익혀야돼" 라는 고정관념에 빠진듯 함니다. 어셈을 모른다고 프로그램을 적게 이해한다고 생각하지도 않구요. 제 의견이지만 특정 프로그램언어 보나는 알고리즘, 자료구조 이런것들이 더 중요하다고 생각합니다. 그리고 C++이 쉽다? 정말 그럴까요? 정말 C++이 어셈보다 쉽다고 생각하시나요? 이펙티스 C++이나 엑셀레이터 C++ 이런책들을 한번 읽어 보시는것도 좋을거 같네요. 머 주저리 주저리 쓰게 됐는데 어디까지나 제 생각이고, 다른사람들의 입장에서 글들을 한번 다시 읽어 보는것도 괜찮은 생각인거 같군요. - 상섭
'' '특정언어를 공부한다'에는 두가지 의미가 같이 포함되어서 그런 것 같습니다. 즉, 언어 자체를 공부하는 것과 해당 언어가 쓰이는 분야(시스템, 웹, 컨커런트 등)를 공부하는 것. 아마 영호군의 경우 강조하려는 것은 시스템 레벨에의 지식에 대한 공부일 것이므로, '알고리즘/자료구조 대신 특정 프로그램언어를 공부한다'는 기우가 아닐까 생각. (물론, 하려는 이야기는 이해했음..~)--[1002]''
잡담성 글이지만.. 예전의 제 모습과 비슷한것 같아 정이 가군요...^^ 저도 영호군처럼 시스템 레벨의 것들을 무척 좋아합니다. 중학교 다닐때 어렵게 구한 assembler와(그시절엔 인터넷이 쓰지 않았기에 구하기가 쉽지 않았죠...) 어머니가 주신 참고서값으로 몰래 산-_-;; assembly 책 한권으로 집에 오기만 하면 mov ax, 4c00h를 타이핑하곤 했습니다. 그리고 저도 제가 하는 것만을 계속 고집했었죠. 뭐.. 지금은 생각이 좀 바뀌었지만^^ --[상규]
- 코드레이스/2007/RUR_PLE . . . . 13 matches
* 사람들이 읽기 쉬운 프로그램을 작성해야 한다.
* 컴퓨터 프로그램을 작성할때는 반복을 하지 마라.
* beeper를 드는 명령어 : pick_beeper()
pick_beeper()
http://rur-ple.sourceforge.net/images/move_pick_start.png
http://rur-ple.sourceforge.net/images/move_pick_end.png
pick_carrot = pick_beeper
pick_carrot()
pick_carrot = pick_beeper
pick_carrot() # pick them all!
- DPSCChapter1 . . . . 12 matches
''디자인 패턴''은 객체지향 언어로 제작된 프로그램에 23개의 패턴을 제시합니다. 물론, 23개의 패턴이 객체지향 디자이너들이 필요로 할 모든 디자인의 난제들을 전부 잡아내지는 못합니다. 그럼에도 불구하고 "Gang of Four"(Gamma et al.)에서 제시한 23개의 패턴은 좋은 디자인의 든든한 출발을 보장합니다. 이 23개의 패턴은 Smalltalk class libraries에 기반을한 디자인 수준(design-level) 분석(analog)입니다. 이 패턴을 이용해서 모든 문제를 해결할 수는 없지만, 전반적이고, 실제 디자인의 다양한 문제들을 위한 해결책을 위한 유용한 지식들의 기반을 제공할것입니다. 또, 이 패턴을 통해서 전문가 수준의 디자인 지식을 취득하고, 우아하고, 사후 관리가 편하고, 확장하기 쉬운 객체지향 프로그램 개발에 기초 지식을 제공하는데 톡톡한 역할을 할것입니다.
다른 이론적인 테두리안에서 프로그램(''전통적인 절차식 스타일'')을 한 후 객체 지향 언어를 배우는 것은 어렵다. Smalltalk 안에서 복합된 응용 프로그램 하는 것을 배우는 것은 복잡한 새로운 기술과 문제에 대한 새로운 사고 방식을 요구한다.(" e.g Rosson & Carroll, 1990; Singley, & Alpert, 1991") "Smalltalk" 라는 산을 오르는 것은 확실히 사소한 것이 아니다. 일단 당신이 간단한 Smalltalk 응용 프로그램을 만드는 데 자신이 있는 경지에 닿았다고 해도, 아직 전문가의 경지와는 분명한 차이가 있다.
* 새로운 문제를 찾고 문제 해결을 위한 기존의 모듈을 재사용하기 위해, 또는 정적이거나 동적인 관점 양쪽 측면에서 프로그램을 이해하기 위해 어떻게 Smalltalk IDE 툴을 사용해야 하는가에 대해
그러므로, 전문가들은 어떻게 새로운 문제에 대하여 고아하고 확장성있는 해결책으로 안내하는 디자인 패턴의 활용 방법을 알고 있다.
(그러므로, 전문가들은 새로운 문제를 해결하기 위해 명쾌하고 확장성이 뛰어난 디자인 패턴을 적용하는 방법을 알고 있다.)
Christopher Alexander and his colleagues have written extensively on the use of design patterns for living and working spaces-homes, buildings, communal areas, towns. Their work is considered the inspiration for the notion of software design patterns. In ''The Timeless Way of Building''(1979) Alexander asserts, "Sometimes there are version of the same pattern, slightly different, in different cultures" (p.276). C++ and Smalltalk are different languages, different environments, different cultures-although the same basic pattern may be viable in both languages, each culture may give rise to different versions.
Gang of Four의 ''Design Patterns'' 은 C++의 관점에서 디자인의 이슈와 해결책들을 제시한다. Design Patterns는 대부분 C++을 이용한 패턴들과, C++의 적용(implementation)과 관련있는 이슈들에 관한 견해를 다루고 있다. 그러한 이슈들은 C++ 개발자들에게는 매우 중요할지 모르지만, 다른 언어들을 이용하고 있는 개발자들에게는 자칫 이해하고 패턴의 적용에 어려움을 가지고 온다.
* Many new examples, from application domains(insurance, telecommunications, etc.) and systems development (windowing systems, compilers, etc.)
* 응용 프로그램 영역(보험, 쌍방향 통신, 등등.) 과 시스템 개발(윈도우즈 시스템, 컴파일러, 등등.)의 많은 새로운 예제들을 다룬다.
- EffectiveC++ . . . . 12 matches
preprocessor(전처리기)보다는 compiler를 선호한다는 뜻.[[BR]]
DeleteMe #define(preprocessor)문에 대해 const와 inline을(compile)의 이용을 추천한다. --상민
몇달 지난 프로그램은 자기가 만든게 아닌거야!? , 예전에 상민이 형이 얘기해준.. --;; ㅎㅎㅎ 동감.. [[BR]]
set_new_handler를 이용한 memory 할당 실패처리.[[BR]]
The C++ language standard is unusually clear on this topic. 베이스 클래스에 대한 포인터를 사용해서 계승된 클래스를 [[BR]]
// prevents this from compiling.)
첫째, rhs를 리턴하는 경우는 compile 되지 않을 것이다. 왜냐하면, rhs는 const String에 대한 레퍼런스 이고, operator=는 String에 대한 레퍼런스를 리턴하기 때문이다. 뭐 이런 문제야 밑에서 처럼 고치면 문제 되지 않는다.
'왜 이런 대입을 하는거지. 프로그램 짜는 놈이 바보 인가?' 라는 생각을 할 수 도있지만, 밑의 코드가 있다고 하자.
그런데, 왜 최소한인가? 여러가지 일을 할수 있는 멤버 함수들을 계속 추가해 나가면 안되는 것인가? 대답은 안된다. 왜 안되는 것일까? 당신은 멤버 함수가 10개 있는 클래스와 100개가 있는 클래스중 어떤것이 이해하기 쉽다고 생각하는가? 나 만 쓰려는 클래스가 아닌이상 다른 사용자들이 쉽게 이해 할수 있도록 만들어야 하지 않겠는가? 그렇기 때문에 최소한의 인터페이스를 추구하는 것이다. 그리고, 관리적인 면에서 볼때 적은 함수들을 가진 클래스가 용이하다는 것이다. 중복된 코드라던지 아니면 개선할 것들을 향후에 하기 쉽다는 것이다. 또한, document를 작성한다 든지 할때 적은 멤버 함수들을 가진 클래스 쪽이 용이하다는 것이다. 마지막으로 아주 긴 클래스 정의는 긴 헤더 파일을 초래 한다. 일반적으로 헤더 파일들은 프로그램이 컴파일될 때마다 매 번 읽혀져야 하기 때문에 필요 이상 긴 클래스 정의는 프로젝트 주기 중의 총 컴파일 시간을 갉아 먹는다. 그런 이유들 때문에 최소한의 클래스 인터페이스를 추구하는 것이 좀더 나은 판단이라는 것이다.
=== Item 21. 가능한 const를 이용한다. ===
* 더 나은 방법을 아시는 분은 추가해주세요;;
이번 항목은 몇가지 방법으로 파일간의 의존성을 줄이는 방법을 제시한다.
- MoreEffectiveC++/Techniques2of3 . . . . 12 matches
Reference counting(이하 참조 세기, 단어가 길어 영어 혼용 하지 않음)는 같은 값으로 표현되는 수많은 객체들을 하나의 값으로 공유해서 표현하는 기술이다. 참조 세기는 두가지의 일반적인 동기로 제안되었는데, '''첫번째'''로 heap 객체들을 수용하기 위한 기록의 단순화를 위해서 이다. 하나의 객체가 만들어 지는데, new가 호출되고 이것은 delete가 불리기 전까지 메모리를 차지한다. 참조 세기는 같은 자료들의 중복된 객체들을 하나로 공유하여, new와 delete를 호출하는 스트레스를 줄이고, 메모리에 객체가 등록되어 유지되는 비용도 줄일수 있다. '''두번째'''의 동기는 그냥 일반적인 생각에서 나왔다. 중복된 자료를 여러 객체가 공유하여, 비용 절약 뿐아니라, 생성, 파괴의 과정의 생략으로 프로그램 수행 속도까지 높이고자 하는 목적이다.
만약 Item 30에 언급되는 proxy 클래스 방법을 사용해서 읽는 작업과, 쓰는 작업에 대한 것을 구분한다면 StringValue 객체의 숫자를 좀더 줄일수 있을 것이다. 그건 다음 장에서 보자.
이 StringValue버전은 이전에 보던것과 거의 동일한 형태를 보인다.단, refCount를 다루는 것만이 RCObject의 멤버 함수로서 모든 기능을 후행하는 것이다. 이 것의 더 구체적인 코드는 다음 장에서 보이는 스마트 포인터를 이용한 자동 참조 카운팅 기능을 덧붙이면서 어차피 모든 코드를 서술할 것이다.
opintee의 형은 pointer-to-T이다. 아마 String클래스에서는 이것이 String::StringValue의 복사 생성자 일것인데, 우리는 StringValue의 복사 생성자를 선언해 주지 않았다. 그래서 컴파일러가 자동적으로 C++내의 규칙을 지키면서 복사 생성자를 만들어 낼것이다. 그래서 복사는 오직 StringValue의 data 포인터에 해당하는 것만이 이루어 질것이다. data는 복사가 아닌 참조가 행해 질것이다. 이러한 이유로 이후, 작성되는 모든 틀래스에 복사 생성자가 추가되어야 한다.
대단하지 않은가? 누가 객체를 사용하지 않을까? 누가 캡슐화를 반대할까? 하지만, 이러한 신기한 String 클래스에 관한 기반 생각은 클라이언트 측에서 새부사항을 알필요가 없어야 밑이 나는 것이다. 알아야 할것이 없을수록 더 좋은 상태이다. 현재, String을 쓰는 기본 인터페이스는 바뀐것이 없다. 단지 참조세기의 기능이 추가되었을 뿐이다. 그래서 클라이언트는 기존 코드를 고칠 필요가 없다. 단, 재 컴파일(recompile)과 재링크(relink) 과정만이 남아 있을 것이다. 이러한 비용은 참조세기가 주는 이득에 비하면 정말 완전히 없는 비용이나 마찬가지이다. 캡슐화는 정말 좋은거다. (작성자주:뭐야 이 결론은..)
참조세기는 보통의 객체들을 공유해서 시스템의 비용을 줄이고자 하는 최적화 기술이다. 즉, 공유를 많이 하지 않은 프로그램 객체에 대하여 이를 적용하면 더 많은 비용과, 더 복잡한 프로그램을 작성할수 밖에 없다는 결론이 나는 것이다. 그 반대라면, 시간, 공간 비용 모두를 아끼게 해줄 것이다. 그러한 상황을 생각해 본다.
하지만 이러한 배열 객체의 사용은 완벽하지 않다. C와 C++상에서 기본 문법을 적용시킨다면, 괄호를 사용해서 객체의 index를 사용할수 있어야 한다.
만약 문법 때문에 골머리가 아프다면, 배열을 지원하는 많은 언어에서 사용하고 있는 방법을 따라서, ()를 이용하는 인텍스의 접근을 만들어 볼수도 있다. ()의 이용은 단지 operator()를 오버로드(overload)하면 된다.
Array2D 클래스의 클라이언트는 Array1D클래스에 관해서 신경 쓸필요 없다. 이러한 객체는 1차원의 배열에대한 객체의 표준이지만, 개념적으로는 존재하지 않는다. 이것들을 실제로 쓰는 그러한 클라이언트들은 이차원 배열을 정확히 프로그램 한다. C++의 엉뚱한 짓을 만족시키기 위하여, 일차원 배열을 다루는데 문법적으로 정확히 구현한 Array2D의 클라이어트들이 걱정하는 일이 없다.
다차원 배열과 같은 인스턴스를 만드는 프록시의 사용은 일반적이다. 하지만 프록시 클래스들은 일반 배열보다 유연하지 못하다. Item 5에서 예를 들어 보면 어떻게 프록시 클래스들이 의도하지 않은 생성자의 사용을 막을수 있는지 방법을 보여준다. 하지만 프록시 클래스의 다채로운 사용이 가장 잘알려진 것은 마로 operator[]에서 write와 read를 구분하는 것이다.
operator[]가 읽기와 쓰기를 구분 못하지만 일단 우리는 가능한한 이것을 구현해 보고자 하는 입장에서 접근해 보자. operator[]가 반환한 이후에 읽기와 쓰기의 상태를 알아내는 방법을 필요로 한다. 이것의 의미는 앞에 다루었던, lazy evaluation의 개념과 비슷하지 않을까?
- NSIS . . . . 12 matches
보통 프로그램을 개발하고 나서 '만들었다' 로 끝나는 경우가 많다. 하지만, 정작 배포때에는 할일이 많다. 특히 제어판 프로그램 등록/삭제 에 등록되는 방식이라던지, 레지스트리를 건드린다던지, Program Files 폴더에 복사한다던지. 이 경우에는 보통 전용 Installer 프로그램을 쓰게 되지만, 아직 제대로 써본 적이 없었던 것 같다.
이번에는 '배포' 라는 녀석에 대해 촛점을 맞춰보고자, 인스톨러중 하나인 NSIS 에 대해 간단히 정리하고자 한다. (자.. 이제 폼좀 내면서 만든 프로그램 보여주자. ^^; 이게 가장 큰 목적. --;)
NSIS의 원리는 간단하다. nsi 라는 스크립트 화일을 해석해서 해당 맞는 프로그램들을 하나의 화일로 압축시키고 실행프로그램으로 만드는 것이다. (마치 배치화일을 작성한다고 생각할수도 있겠다.)
1. 프로그램을 개발한다.
NSIS installer들은 'MakeNSIS' 프로그램에 의해서 NSI script (.NSI) 를 컴파일함으로서 만들어진다.
* /Olog (log 는 filename) - compile 중 screen 상에 해당 화일에 대한 log를 표시하는 대신 화일로 설정한다.
* 표현하고자하는 string 에 공백이 있으면 따옴표를 이용한다.
;레지스트리에 uninstall 프로그램 셋팅해주는 부분
--[fnwinter] 형 고마워여~ NSIS 쓰는거 정리 할 필요가 있었는 데 , PS 이거 말고도 INNO SETUP 이라는 프로그램이 있거든요. 그것도 괜찮은데, 한번 써보세요~
- 데블스캠프2009/월요일후기 . . . . 12 matches
* [김준석] - 단순하지만 있을건 있는 프로그램. Easy, Enjoy라는 개념이 어울린다. 프로그래머가 아닌 일반인(유치원생)도 이런 프로그램을 사용해봄으로서 나와 같은 프로그래머의 입장이 되어 쉽게(Easy) 즐길수(Enjoy) 있는 기회를 준것이다. 내가 1학년때 송기원교수님이 한 말이 떠오른다 "언젠가는 일반인도 쉽게 만들수 있는 프로그램 언어가 나올꺼다. 전화 프로그램 만들고 싶으면 사람하고 사람 그림 두개 따서 전화기 그림을 가운데 놓고 연결하면 이게 전화 프로그램이 되는. 그럼 너희들은 뭐 먹고 살래? 사람들이 머리만 조금 굴리면 알아서 딱딱 만드는 세상이 될텐데 아이디어랑 생각이 중요한거야." 딱, 이거 아닌가? 물론 프로그램 언어의 현상황에서 프로그래밍에 업을 달고 사는 사람에게 쉽고 즐긴다는 말은 저기 저 먼 안드메다에 있는 개념만큼 멀게 느껴지지만 마지막에 송지원학우님이 얘기해주신것처럼 프로그래밍이 단순히 어렵고 복잡한것을 뜻하는것만이 아니라 새로운 아이디어로 생각해 그 시각으로 바라보는것으로 개발자의 입장이되는 우리도 더 쉽고 재밌게 즐길수 있을것이다. 그렇지만 기본은 먹고 살아야지.
* '''서민관''' - 사실 09학번이 1학기 때 로보랩을 하지 않았더라면 월요일 수업 중에서 가장 괜찮은 수업이 되지 않았을까 싶다. 문자로 된 프로그램 언어를 시각적으로 접하게 하는 것이 목적인 것 같은데, 조작 또한 간단한 드래드 정도로 쉽게 할 수 있는 것도 굉장히 괜찮았다. 다만 몇몇 필요한 기능들이 없는 건지 못 찾은 건지 해서 괜찮은 물건을 만들지 못 한 것은 너무 안타까운 점이었다. 아. 정말 아쉽네요.
* '''강소현''' - c언어에서 쓰이던 거를 블럭으로 쉽게 나타내, 프로그래밍하는 방법을 전혀 몰라도 활용할 수 있어 좋았어요. 게다가 그림을 이용해 간단한 애니메이션이나 게임을 만들 수 있어, 이번 수업 이후에도 자주 애용할 거 같아요.
* '''강소현''' - 프로그램이 잘 깔리지 않아서 가입만 한 점도 있고, 페어로 활동하는 데 모르는 점이 많아 속도를 따라잡지 못해 아쉬웠습니다. 새싹스터디의 연장선으로 수경언니한테 여러 가지를 배운 듯;;...음..그래도, 다른 사람이나 폴더를 공유하고, 무언가를 수정했을 때 바뀐 부분을 바로 파악할 수 있고, 이전의 내용으로 다시 돌아갈 수도 있다는 점이 앞으로도 쓰기에 무척 좋다고 생각해요. 그보다...코드레이스를 했었구나 ㅇㅁㅇ..<<응?! ...어쩐지 앞쪽이 활발했었어...
* [김준석] - 과거 06년도 데블스 캠프때 서버 할당받아서 svn잠깐 써보고 그다음에 전혀 써보지않았던 svn... 다시쓰기가 난감 할정도는 아니었지만 까는거에서 에러나면 어떻게 하는거야? 뭐여튼 nForge로 할당받아서 프로젝트 하나하나 올리면 되겠는데 문제는 이게 제로페이지 공용이라서 과연 학생들이 학업중 팀프로젝트때도 쓸려나.. 사용법을 가르쳐주는것 만으로 충분하긴 한데.. Zeropage내의 프로젝트는 얼마 되지 않는데;; 외부프로젝트라도.. 몇개나 올라올지는 모르겠지만 일단봐야지. 한 4~5개만 나와도 엄청난 프로젝트 갯수를 채우는 거겠군.. 프로젝트 진행중 중요한건 여러명의 개발자가 사용한 프로그램이기에 주석과 구조 그리고 변수건 함수건간에 서로 알아보기 쉽게 암묵적인 규약이라도 있어야된다는거 하긴 혼자할때는 그런거 필요없지만 SVN을 통해 올리는 프로젝트는 그렇게 해야 참고하고 구경하러온 학우들에게 도움이 될테니까. 특별히 코드레이스는 엄청나게 신경쓰면서 열심히 해봤는데 마지막에 올릴때 그것의 미인증이 인터넷을 막는 바람에 못올린것에 전산센터는 좀 반성해야되! 그리고 아쉬운점은 코드레이스는 좀더 늦게하고 제로페이지에 참가한 학우들에게 알고리즘이나 객체, 구조 함수에대해서 좀더 알려주고 조금 더 생각할 문제를 풀었으면 재밌었을텐데.. 난 printf()만 나오는 그리는 문제에는 잼병이란 말이다! 그렇다고 머리를 잘쓰는건 아니지만. 뭐.. 그렇듯 코드로 짜는건 빠른 손가락만 움직이면 되지만 푸는건 머리라는 사실은 변함이 없다. 코드레이스때 특정함수를 쓰게해서 DBMS나 라이브러리 북을 찾아보는 연습하는것도 좋았을텐데... 뒤에서 원그리고 있는데 앞에서 로보코드하고있을때는 안습. 끝나고 포트2 강추.
* [송지원] - svn은 주변 프로그램이 많아서 더 어려운것 같다. 얼핏 생각하면 tortoise SVN으로 충분해보이지만, nForge나 트랙, notifier, websvn 등이 함께해야 더 시너지 효과를 발휘한다. 코드레이스를 하면서 느낀 것은, 왜 진작 1학년 때에 이에 흥미를 느끼지 못했는지다. 내가 잘 못해서, 아무것도 몰라서 흥미를 느끼지 못했지만 사실 따지고 보면 그건 나의 문제다. 물론 코드레이스를 내가 하는거보다 새내기가 하는걸 보는게 더 재밌긴 하다 ㅋㅋ 역시 나는 뭔가를 하는 것보다 잔소리하는게 적성인듯.
- 새싹교실/2012/해보자 . . . . 12 matches
- 프로그램 어디서나 참조 가능하다.
- 프로그램이 끝날 때 메모리상에서 지워진다.
- 선언된 이후 프로그램이 끝날 때 메모리상에서 지워진다.
1. #define pi 3.141592를 이용하여 구의 겉넓이, 부피를 계산하고 출력하는 프로그램을 만드시오.(코드를 여기에 올려주세요)
* 예제1) 정수를 입력받고 숫자가 짝수인지 홀수인지 판별하는 프로그램
- 무한반복의 성질이 있기 때문에 영원히 빠져나오지 못하는 프로그램을 만들 수 있다.
* 예제3) a부터 z까지 출력하는 프로그램 만들기
* 예제4) -1값을 입력할 때 까지 정수를 입력 받고 평균을 구하는 프로그램
* 예제5) -1값을 입력할 때 까지 정수를 입력 받고 짝수인 정수들만 평균 구하기
* int main()함수에서 return 0를 하는 이유: 메인 함수는 0을 반환하면 프로그램이 끝났다는 것을 알린다.
* 예제2) 숫자 2개를 입력 받아 평균을 구하는 프로그램 만들기.
- 후각발달특별세미나 . . . . 12 matches
전문적인 설명은 아니구, 제 생각에는 함수를 사용하여 메모리 사용하는 비용과 프로그래머가 함수를 더 사용하여 소스의 가독성을 올리고, 유지 보수 및 버그를 없애는 비용과 비교를 해볼때 후자가 훨씬더 큰 비중을 차지하기 때문에 함수를 더 사용하여 메모리를 더 사용하더라도 리펙토링의 중요성이 결코 줄어들지 않는다고 생각합니다. 그리고 짧은 소스에서는 리펙토링 하여 함수가 많아 지는것이 낭비처럼 보일지 몰라도 좀더 프로그램이 커질수록 리팩토링을 해놓음으로 해서 추후에 최적화를 하는데에도 훨씬 유리하기 때문에 결국에 가서는 자원도 더 효율적으로 사용하리라고 봅니다. - [상협]
메모리를 많이 사용한다는 우려의 원인은 많은 변수들에 있습니다. 전달인자를 받거나 값을 리턴할 때, 각각 상응되는 변수가 필요하기 때문이죠. 하지만 변수는 그 변수가 선언된 함수내에서만 효력을 발휘하고 함수가 종료되는 순간 사라집니다(메모리해제). 그러므로 모듈화된(쉽게 이야기해서 함수로 나뉜)프로그램에서는 함수내의 많은 변수들이 메모리를 많이 차지하더라도 그 함수가 끝나면 그 메모리는 해제되어 사용가능해집니다. 그리고 전역변수나 메인함수내의 변수만을 사용하는 프로그램은 프로그램이 끝날 때까지(메인함수가 종료될 때까지) 메모리를 잡아두므로 한번 할당된 메모리는 사용불가능합니다.
모듈화된 프로그램에서의 메모리 사용의 개념은 '''필요할 때마다 할당해서 쓰고 필요없으면 해제하자'''이고 전역변수나 메인함수내의 변수만을 사용하는 프로그램에서의 메모리 사용의 개념은 '''지금은 안쓰이더라도 나중에 쓸 메모리를 미리 할당하고 사용이 끝났더라도 메모리를 계속 잡아두자'''입니다. 전자의 경우에는 어느 순간 메모리를 많이 사용하는 경우도 있고 어느 순간에는 엄청 적게 사용하는 경우가 있습니다. 메모리 사용이 더 유동적이라고 할 수 있습니다. 밑에 참고 그래프(자체제작)를 참고해주시기 바랍니다. --[강희경]
함수의 갯수와 메모리 사용량은 직접적으로 관련이 없습니다. 메모리 사용량과 직접적으로 관련이 있는 것은 함수의 갯수가 아니라 프로그램의 길이 입니다.
함수가 많다고 프로그램의 길이가 긴 것은 아닙니다. 길이가 짧은 함수를 여러개 가진 프로그램과 길이가 엄청나게 긴 함수를 한개만 가진 프로그램이 있다고 해봅시다. 길이가 더 긴 프로그램은 어떤 것입니까?
리펙토링에 대해서 생각해 봅시다. 가장 먼저 배운 방법이 무엇이었습니까? 중복제거 입니다. 함수를 늘려 중복을 제거하면 프로그램의 길이는 길어질까요? 짧아질까요?
- AcceleratedC++/Chapter10 . . . . 11 matches
포인터도 일종의 반복자이다. 이사실에서 배열의 포인터를 이용한 접근을 생각해볼 수 잇다.
STL의 컨테이너들과는 달리 배열은 초기화에 있어서 다른 문법을 제공한다.
이 문법을 사용함으로써 배열의 초기화시에 사용자가 명시적으로 배열의 크기를 나타내지 않아도 된다.
대부분의 운영체제는 프로그램이 실행될때 인자로서 문자열을 주는 것이 가능하다. 이것은 main함수가 int, char** 의 2가지의 인자를 가지기 때문이다.
C++에서는 일반적인 표준 출력 스트림 뿐만아니라 표준 에러 스트림을 통해서 프로그램의 주석의 내용들. 즉 프로그램이 실행되는 동안의 상태정보를 출력하는 것이 가능하다.
대부분의 운영체제에서는 이런 2가지의 출력을 분리하여 처리하는 방법을 제공한다.
파일의 입출력을 위해서 iostream을 파일 입출력에 맞도록 상속시킨 ofstream, ifstream객체들을 이용한다. 이들 클래스는 '''<fstream>'''에 정의 되어있다.
단순한 프로그램이므로 설명은 생략함. 한번 쳐보자.
수가 종료되더라도 해제되지 않고 프로그램이 종료될때 해제된다. 따라서 메모리가 해제되지 않은 static 변수를 리턴하는 것이기에 유효하다.
|| 정적메모리 할당 || 정적 변수가 존재하는 블록이 처음 실행되는 동안 할당되어 프로그램이 실행되는 동안 계속 유효한 상태로 남는다. ||
- CCNA/2013스터디 . . . . 11 matches
|| 7계층 || 응용 프로그램 계층 (Application Layer) || 응용 프로그램의 네트워크 서비스 ||
|| 6계층 || 표현 계층 (Presentation Layer) || 응용 프로그램을 위한 데이터 표현 ||
|| 응용 프로그램 계층 || OSI 계층 모델의 세션과 표현 계층 포함. 데이터의 표현, 인코딩, 제어 ||
|| 계층 모델이다 || TCP/IP의 응용 프로그램 계층은 OSI의 표현 계층과 세션 계층 포함 ||
|| 응용 프로그램 계층 || TCP/I{의 네트워크 액세스 계층은 OSI의 데이터 링크 계층과 물리 계층 포함 ||
* 응용 프로그램에서의 세션의 수립/관리/해제 담당
* 응용 프로그램에서 사용하는 데이터의 형식, 암호화, 압축 등을 담당
* 응용 프로그램 계층
* Web Browser와 같은 프로그램
기존 전화망을 이용한 모뎀보다 훨씬 빠른 연결, 큰 대역폭 지원.
|| SAPI || C/R || EA || TEI || EA ||
- SPID(Service Profile Identifiers) : 고유 아이디. 전화번호와 비슷.
1. 한 쪽 라우터에서 Call 초기화를 시작하면 연결된 ISDN 스위치로 SPID를 보내고 Call 초기화, 시그널링, Call 해제를 한다.
2. ISDN SPID 설정
- CppUnit . . . . 11 matches
[http://janbyul.com/moin/moin.cgi/CppUnit/HowTo/Kor 이곳]에 VS2005용 설정방법을 간단하게 정리해둠. - 임인택
* app 클래스에 다음과 같은 runner 실행을 위한 코드를 추가한다. 다음 코드를 추가함으로써 프로그램 실행시에 GUI Test Runner 가 실행된다.
Runner 실행코드는 다음과 같이 MFC UI 의 Test Runner 를 이용한다.
=== Win32 API or Console 프로그래밍시 ===
Win API Programming 시에 Text Runner 를 이용하여 이용 가능. 다음과 같은 식으로 쓸 수도 있다.
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE, LPSTR, INT) {
코드를 보면 알겠지만, ASSERT 문들에 대해서 전부 매크로를 이용한다. 만일 이를 다른 언어들의 UnitTest Framework 처럼 assertEqual 이나 assert 문으로 쓰고 싶다면, 다음의 문장을 cppunit library 를 include 하기전에 추가해준다.
* 초기 준비할때 삽질하는 경우가 많다. -_-; CppUnit 의 경우는 헤더화일들의 include 순서들이 중요하다. 그리고 MFC 의 경우는 stdafx.h 를 각각의 화일들마다 include 해줘야 한다. (API에서 CppUnit 는 어떨지 궁금해진다.)
2.2) Why does the compiler report an error when linking with CppUnit library?
|| Upload:CppUnitCompile0.GIF ||
|| Upload:CppUnitCompile2.GIF ||
|| Upload:CppUnitCompile3.GIF ||
|| 다음과 같은 파일들을 Test Case를 작성할 프로그램에 필요하다. ||
싱가폴 국립대학의 소프트웨어 공학 프로젝트 수업에서 CppUnit을 사용하고 있는데, http://www.comp.nus.edu.sg/~cs3214s/tools/cppunitVC.html 에 가면 MSVC에서 CppUnit을 사용하는 방법을 쉽게 설명한 안내서를 볼 수 있다.
Win32 API환경에서 MFC TestRunner를 사용하는 방법을 찾았으면 좋겠군요. 여러가지로 시도해보았는데 MFC에 대한 지식이 너무 부족해서 계속 실패하네요. --[이응준]
- Gnutella-MoreFree . . . . 11 matches
대부분의 P2P 프로그램들이 누텔라의 방법을 기본으로 작성 되었으며 지금의 유동적
읽은 적이 있다. 이 때 되면 보다 획기적인 P2P 프로그램이 나올 것으로 보인다.
|| ping || 네트워크상의 호스트를 찾을 때 쓰인다. Payload가 없기 때문에 header의 Payload_Length = 0x00000000 로 설정된다. ||
|| pong || Ping을 받으면 주소와 기타 정보를 포함해 응답한다.Port / IP_Address / Num Of Files Shared / Num of KB Shared** IP_Address - Big endian||
1. Pong 은 Ping이 왔던 같은 길을 따라 전송된다. 만약 DescriptorID가 n
인 Pong을 받았는 데 Descriptor ID가 n인 Ping 보지 못했다면 Ping을 보
4. 전달 되었던 Ping과 Query를 제외하고 모든 Ping과 Query는 연결 된
기존의 Gnutella가 다른 프로그램(BearShare) 에 의해 서비스 되면서
GnutellaPacket packet_Header / packet_Ping / packet_Pong
Compile / Execute 가능한 Code를 손에 얻을 수 있는 프로그램이다. 물론
보다 좋은 프로그램으로 변형할 수 있을 것 같다.
이런 이유로 다른 몇몇 Gnutella 프로그램도 Gnucleus를 기반으로 작성 되어졌다.
http://www.gnucleus.com/ (Gnucleus 프로그램)
http://www.sourceforge.net/ (Gnutella Clone 프로그램)
void CGnuNode::Recieve_Ping(packet_Ping* Ping, int nLength)
key_Value* key = m_pComm->m_TableRouting.FindValue(&Ping->Header.Guid);
통해 받았던 핑인지 검사하고 if(key == NULL) 받았던 핑이 아니라 새로운 핑이라면 m_pComm->m_TableRouting.Insert(&Ping->Header.Guid, this) 처럼 라우팅 테이블에 넣고 Pong을 보내준다.
- Linux/MakingLinuxDaemon . . . . 11 matches
UID PID PPID PGID SID CLS PRI STIME TTY TIME CMD
root 7 5 0 0 TS 19 Oct15 ? 00:00:00 [kacpid]
root 11434 1461 11434 11434 TS 24 23:41 ? 00:00:00 sshd: sapius@pts/0
상기에서 확인가능 하듯 daemon 으로 동작하는 프로그램은 터미널이 할당되지 않는다. 또한 기본적으로 ParentPID (ProcessID)가 1번으로 설정되어있음을 알 수 있다. 이는 1번 PID를 가진 init 프로세스가 데몬의 동작을 관리한다는 사실을 알 수 있게 한다.
PPID 가 1인 프로세스를 작성하기 위해서 지켜야할 rule
2. setsid 이용 새로운 세션 생성, 현재 프로세스의 PID가 세션 제어권을 가지도록 설정
자식의 프로세스가 종료되기 전에 부모 프로세스가 종료되면 자식의 PPID는 1번 PID로 설정된다.
상대경로 지정으로 일어나는 프로그램내의 문제해결 (안해도 무관)
pid_t pid;
if (( pid = fork()) < 0)
else if(pid != 0)
// 여기에 프로그램 본체를 넣는다.
UID PID PPID PGID SID CLS PRI STIME TTY TIME CMD
root 7 5 0 0 TS 19 Oct15 ? 00:00:00 [kacpid]
root 11434 1461 11434 11434 TS 23 23:41 ? 00:00:00 sshd: sapius@pts/0
- MoniWikiPo . . . . 11 matches
msgid "Paste a new picture"
msgid "Draw new picture"
msgid "Create new picture"
#: ../plugin/sendping.php:13 ../plugin/trackback.php:40
#: ../plugin/sendping.php:54
#: ../plugin/sendping.php:72
msgid "Send TrackBack ping"
#: ../plugin/sendping.php:166
msgid "send ping"
msgid "Send TrackBack Ping to another Blog:"
"<b>Links:</b> JoinCapitalizedWords; [\"brackets and double quotes\"];\n"
"<b>연결:</b> JoinCapitalizedWords; [\"중괄호와 큰따옴표를 써서\"];\n"
- MoreEffectiveC++/Appendix . . . . 11 matches
A book pitched at roughly the same level as my Effective C++ books, but covering different topics, is ¤ MEC++ Rec Reading, P16
Murray's book is especially strong on the fundamentals of template design, a topic to which he devotes two chapters. He also includes a chapter on the important topic of migrating from C development to C++ development. Much of my discussion on reference counting (see Item 29) is based on the ideas in C++ Strategies and Tactics.
One topic Cargill does not discuss in C++ Programming Style is exceptions. He turns his critical eye to this language feature in the following article, however, which demonstrates why writing exception-safe code is more difficult than most programmers realize: ¤ MEC++ Rec Reading, P22
I generally refer to this as "the LSD book," because it's purple and it will expand your mind. Coplien covers some straightforward material, but his focus is really on showing you how to do things in C++ you're not supposed to be able to do. You want to construct objects on top of one another? He shows you how. You want to bypass strong typing? He gives you a way. You want to add data and functions to classes as your programs are running? He explains how to do it. Most of the time, you'll want to steer clear of the techniques he describes, but sometimes they provide just the solution you need for a tricky problem you're facing. Furthermore, it's illuminating just to see what kinds of things can be done with C++. This book may frighten you, it may dazzle you, but when you've read it, you'll never look at C++ the same way again. ¤ MEC++ Rec Reading, P27
A more narrowly focused newsgroup is °comp.std.c++, which is devoted to a discussion of °the C++ standard itself. Language lawyers abound in this group, but it's a good place to turn if your picky questions about C++ go unanswered in the references otherwise available to you. The newsgroup is moderated, so the signal-to-noise ratio is quite good; you won't see any pleas for homework assistance here. ¤ MEC++ Rec Reading, P49
Items 9, 10, 26, 31 and 32 attest to the remarkable utility of the auto_ptr template. Unfortunately, few compilers currently ship with a "correct" implementation.1 Items 9 and 28 sketch how you might write one yourself, but it's nice to have more than a sketch when embarking on real-world projects. ¤ MEC++ auto_ptr, P2
If your compilers don't yet support explicit, you may safely #define it out of existence: ¤ MEC++ auto_ptr, P6
If your compilers lack support for member templates, you can use the non-template auto_ptr copy constructor and assignment operator described in Item 28. This will make your auto_ptrs less convenient to use, but there is, alas, no way to approximate the behavior of member templates. If member templates (or other language features, for that matter) are important to you, let your compiler vendors know. The more customers ask for new language features, the sooner vendors will implement them. ¤ MEC++ auto_ptr, P8
- OpenGL스터디 . . . . 11 matches
=== 팝핑(popping)현상 ===
attachment:popping1.png
attachment:poping3.png
컴퓨터화면은 2차원이다. 하지만 우리가 3D게임을 할때 보면 그 내용물은 마치 3차원의 물체처럼 보인다. 하지만 실제로는 내용물은 2차원적인 것을 3차원처럼 보이게 만든것뿐이다. 그렇다면 어떻게 2차원적인것을 3차원적인것처럼 보이게 만들 수 있을까? 여러가지 방법이 잇지만 그중에 하나는 원근법을 사용한다는 것이다. '''원근법이란 가까히 있는 것은 크게 멀리있는것은 조그마하게 표현하는것을 말한다.''' 더 정확히 말하자면 '''선사이의 각도를 조절하여 3차원효과를 내는 기법'''을 말한다.
3차원적인 요소를 더 두드러지게 표현하기 위해서는 쉐이딩을 사용하면 된다. 쉐이딩이란 '''입체적인 물체에 음영이나 색상 밝기 등을 잘 조절하여 표면에 입히는 기법'''을 말한다. 이런 기법을 통해서 정육각형같은 경우는 각 면을 도드라지게 표현할 수 있고, 더욱 실감나는 3차원적인 표현을 가능케 한다.
란 계단현상을 부드럽게 표현해주는 방법을 말한다.
* 실시간 3D는 말그대로 사용자가 화면 구성에 필요한 데이터를 입력 즉시 화면에 반영하는 방식을 이야기한다. 예를 들어 비행기 시뮬레이션 프로그램이라던가, 게임을 예시로 들 수 있다.
실시간 3D 그래픽을 위한 API 프로그래밍 방식에는 즉시모드와 보류모드 두가지 방법이 있다.
* '''보류모드란, api상에서 미리 어떤 기본적인 도형의 구성방식이나 처리방식이 내부적으로 정해져있는 상태에서 도형을 구성하는 데이터를 API 또는 툴킷에 제공함으로써 도형을 구성(이미지 구성)하는 방식을 이야기한다.''' 장면내의 모든 물체들과 그 사이의 관계를 미리 만들어진 데이터 구조로 만들어두는것을 씬그래프(scene graph)라 한다.
* '''즉시모드란, 그래픽 프로세서에 직접적인 명령을 전달해서 상태를 변경시켜 이어지는 모든 명령에 그 상태를 반영하는 방식을 이야기한다.''' 이 방식은 위에서 언급한 씬그래프에 API의 내부적인 동작에도 이 방식이 쓰인다. 즉시모드에서 이미 실행된 명령은 그 다음 명령에 영향을 받지 않는데 예를 들자면 화면에 하늘에 대한 폴리곤을 텍스쳐를 입힌뒤 이 텍스쳐 상태를 해제하고, 땅에 조명효과에를 주기 위해 조명효과 상태를 변경시킨다면, 화면에는 하늘에 미리 구성된 텍스쳐에는 변함이 없으며 하늘에 조명효과가 반영이 되고 땅은 텍스쳐 상태가 반영이 안되고 조명효과에 대한 것만 반영이 될 것이다.
=== 뷰포트(viewport)와 클리핑(clipping) ===
* 들어가기전에 openGL은 프로그래밍 언어가 아닌 ''그래픽 하드웨어 제어를 위한 소프트웨어 인터페이스''이다. 그리고 높은 이식성을 지닌 그래픽&모델링 라이브러리이다. 다시말해, OpenGL은 언어가 아닌 API이다.
''더 자세한 용어 설명 : 어떤 목적에 맞추어 프로그램을 작성하는 것(목적을 만족시키는 것)을 ‘임플리먼트한다’고 한다. - from <네이버 지식백과>''
attachment:pipeLine2.png
- PracticalC . . . . 11 matches
=== 주석 없는 프로그램의 문제점 ===
2.프로그램을 유지,보수 하는 경우 프로그램을 이해하는데 많은 시간을 필요로 하므로
프로그램을 수정하고 업그래이드하기가 어렵다.
프로그램은 수필처럼 읽혀져야 한다. 즉 가능한 이해하기 쉬고 명쾌 해야한다.
제목 : 프로그램의 이름과 하는 일에 관한 간략한 설명
목적 : 이 프로그램을 만든 목적
사용법 : 프로그램 작동법에 대한 간략한 설명
참조 : 다른 프로그램을 참조했을 경우만
파일형식 : 프로그램이 읽고 쓸 수 있는 파일과 파일형식을 간략히 설명
제한 : 프로그램을 사용할때 제한범위를 설명(잘 모르겠음....)
- SmallTalk/강좌FromHitel/강의4 . . . . 11 matches
1.1. 프로그램과 프로그래밍 언어
1.3. Smalltalk 맛보기 프로그램
모두 Smalltalk로 프로그램을 짜는데 꼭 필요한 역할을 수행합니다.
프로그램을 실행하는데 중대한 잘못이 생겼다거나, 새로운 꾸러미를 불러왔
리고 프로그램의 어떤 부분을 만들기 전에 여기서 기본적으로 여러 가지 명
되는 창이므로, 그 사용 방법을 확실히 익혀두는 것이 좋을 것입니다.
프로그램을 만들 때, 그 프로그램과 관계된 여러 가지 객체들을 넣어놓고 관
다. "발자취 창"(walkback window)은 Smalltalk 프로그램이 실행되는 상태에
CompiledExpression>>value:
문제를 무시하고 계속 프로그램을 실행시킬 때 쓰고, 는 지금 실
- ZeroPage . . . . 11 matches
* 11회 중앙대학교 프로그래밍 경진대회(Programming Championship)
* 프로젝트 pinple : Pinple팀
* PinPle 프로젝트 - [변형진],[안혁준],[김민재],[정진경],[김수경],[서민관],[서영주],[권순의],[김태진]
* 프로그램 전시회 - 미실시
* 1회 프로그램 전시회
* 2002 1회 [http://www.natepda.com/popup/winner.htm SK 모바일 프로그램 경진대회 대상 수상] ([\"erunc0\"])
* 1994 삼성전자 번들용 영어 교육 프로그램
* 1993 비디오 도매상 관리 프로그램, '작은마녀' 게임 프로그램
* 1992 동남은행 Firm banking system, 치관 운영 관리 프로그램, 세탁소 관리 프로그램, 세일 정보 통신 재해자 관리 프로그램
- ZeroPageServer/SubVersion . . . . 11 matches
* Many improved APIs
* 기본적인 이용법은 거의 cvs와 동일하다. 심지어는 콘솔의 명령어도 거의 동일하다고 생각된다. 하물며 Tortoise같은 프로그램인데 오죽하랴. 다른 것은 저장소를 표기하는 방법이 다르다.
sapius@zeropage:/home/SVN$ htpasswd -n sapius
sapius:i2BKwIhXaPCbc // 이런 문장이다. Crypt 알고리즘으로 암호화된 문장이다.
* SSH를 통해서 접근을 하는 경우 상당히 잦은 패스워드 입력 창을 보게됩니다. 이를 해결하기 위해서 몇가지 방법이 존재하는데.. ''(터널링 프로토콜로 SSH를 이용하기 때문에 어찌하였던 SSH 프로그램을 등록해야함.)''
* SSH프로그램의 옵션으로 패스워드를 주는 방법
하지만 이런 방법을 통하지 않으면 SVN은 단위 작업을 할때마다 패스워드를 뭍기 때문에 가능하면 비슷한 방법이라도 쓰는 것이 좋다.
puttygen: rsa, dsa 공개키/비밀키 쌍 생성 프로그램
pageant: 키관리 프로그램
소스를 가져온 것이기 때문에 pageant와 호환이 되는 것이다. 푸티 비호환 프로그램에서는
그 프로그램에 맞는 키 에이전트를 설치하면 된다.
- 데블스캠프2011/셋째날/후기 . . . . 11 matches
* String Class를 만들고 java에서 상용하는 것과 같이 String의 함수들을 짜는 시간이었다. 처음 class의 생성자를 만드는데에만 시간을 거의 다 썼다. 생각과는 다르게 많이 어려웠다. 생성자를 만들고 한두개의 함수들을 만들자 시간이 끝낫다. 프로그램을 작성하는데 익숙해 질 때쯔음 끝나서 아쉬었다. 나중에 String class 를 완성시겨봐야겠다.
* RUR-PLE로 이것 저것 만들기를 시켰는데.. 노가다를 시키네요. 재.미.있.었.습.니.다. 뒤에 이것 저것 만들게 하는 건 만들다 보니 상당히 코드가 더러워지네요 -ㅅ-;; 그래도 프로그램이 잘 돌아가서 좋았습니다. 이것 저것 쉬운 난이도로 많이도 준비 했네요.
* python을 이용한 학습 프로그램이엇다. 로봇을 이용하여 beeper를 줍고 버리고 하며 여러가지 실습 프로그램을 하엿다. 교육용프로그램이라 쉬워보였는데 정작 프로그램을 짜는데 매 마음데로 되지 않아서 고생을 하엿다. rur-ple도 끝나갈 쯔음에 프로그매짜는거에 어느정도 적응이 되서어 미션을 수행할 수 있었다. 게다가 python은 그나마 익숙한 언어라서 재미 있었다.
* 초보자를 위한 RUR-PLE. 우선 1년만에 다시 공부를 하는데 좀더 많은것을 알았지만 프로그램적으로는 나는 발전이 없었구나 생각하게되었습니다. 프로그램을 새로 짜는데 발전이 없었으니까요. 그리고 RUR-PLE을 두번째 했을때 느끼는것은 무조껀 즐기는것이 좋고 단순했으면 하는데 그렇게 안되서 참난해했습니다. 수강생들은 대부분 안들었던 사람들이지만 재학생이어서 난이도 높은걸 할까 생각했었지만 단순한 Harvest문제도 처음 하는 사람들과 비슷한 속도로 풀게 되었죠. 그 원인을 보게 되면 참 재미있죠. 처음에 단순하게 즐기는 초보자는 단순하게 문제를 풀고. 아는 사람들은 아는걸 최대한 이용해서 문제에 최적화 해서 낭비를 줄이려 합니다 그대신 오래걸리죠. 위의 이유로 같은 문제 풀이도 많은 분기가 나오는걸 볼수 있었죠. 시간 제한을 안둬서 그런가. 다음부터는 원할한 진행을 위해 시간제한을 둬봅시다. 마지막으로 RUR-PLE에 대한 감상으로 교육 환경을 만든 사람들은 참 대단하다고 다시한번 생각합니다. 봐도 봐도 재밌긴 하네요. 다음에 이걸 다시 하게 된다면 더욱 재미있게 해보았으면 좋겠습니다.
* 약간 늦게 도착해서 초반 설명을 약간 듣지 못하고 짜게 되었네요. 이 프로그램이 파이썬을 배울 수 있는 용도로 짜여있다고 했는데, 명령어들은 NXT프로그래밍 명령어랑 정말 비슷했다고 생각했어요- (창설의 악몽이 되살아났다?) 간단한 설명을 듣고 1 주워담기를 위해 1을 놓아야하는데, 그게 귀찮아서(프로그래머적 '귀차니즘'면모 발현) 놓는걸 짜고 먹는걸 짰네요. 그 뒤에는 소트를 해야 했는데, 저는 한쪽으로 쭉 밀어 넣으면 좋겠다고 생각했으나.. 그건 소트라기보단 줄맞춤(?)에 가까운거였다고 하시더군요. 아무튼 치완이랑 제가 그걸 짜서 문상 GET! 끝나고나서는 미로도 짰는데 로봇녀석이 이미 방향이란걸 가지고 있다보니 C로 짠거보다 훨씬 쉽게 짰네요.
* 정말로 난해한 프로그래밍 언어였다. 프로그램도 난해하고, 세미나도 난해하고,,, 절대로 프로그래밍 하고 싶어지지 않는 언어들 이었다. 종하가 설명한 언어중에 비펀지로 피보나치수열을 짜는 미션을 받았는데 어떻게 해도 하나의 스텍으로 피보나치 수열을 짤 수가 없었다.
- 새싹교실/2011/쉬운것같지만쉬운반/2011.3.23 . . . . 11 matches
* 프로그램은 어떻게 만들까?
1. 문법에 맞춰 프로그램 로직 코딩
2. "프로그램"이 무엇일까요? 자유롭게 설명해보세요.
3. 나는 프로그램이 실행되고 CPU가 맨 먼저 호출하는 함수가 뭔지 안다! (O/X)
* 새싹교실에서 컴퓨터는 무엇인가, 프로그램은 무엇인가, 프로그램은 어떻게 만드는가 등을 배우고 직접 코딩도 해보았다. C언어는 정말 흥미로웠다. 새싹 선생님이 알려주신 tryhaskell홈페이지에 들어가서 haskell이란 언어도 체험해봤는데 뭔가 C언어보다 고급 언어라는 느낌이 들었다(맞나....) 다음주에 배우게 될 것이 궁금하고 기대가 된다. - [송치완]
* C언어 프로그래밍을 시작하기 위해 필요한 컴퓨터와 프로그램에 대한 지식을 공부하였다. C언어는 역시 멋진 언어인 것 같다. haskell을 해 보고 싶었는데 사이트가 이상했다 ㅠㅠ.. 프로그래밍 언어는 너무 많은 것 같다. 다 배우려고 하진 말아야지... - [장용운]
상기 코드가 정상적으로 진행되었기 때문에 main함수는 0을 리턴하고 프로그램이 종료된다.
프로그램은 여러 데이터를 가지고 사용자가 원하는 일을 수행하는 것입니다.
콘솔 응용 프로그램에선 main()
Win32 응용 프로그램에서는 APIENTRY WinMain()
- 새싹교실/2012/AClass/4회차 . . . . 11 matches
8.다음 형태로 출력되는 프로그램을 짜 보세요.
9.2중포인터를 이용하여 3x3행렬을 두개 만들고, 두 배열의 합을 출력하는 프로그램을 짜보세요.
LinkedList의 node를 선언하는 방법을 찾아보고, 왜 그런 형태인지 이해한만큼 써보자.
8. 다음 형태로 출력되는 프로그램을 짜 보세요.
9. 2중포인터를 이용하여 3x3행렬을 두개 만들고, 두 배열의 합을 출력하는 프로그램을 짜보세요.
LinearSearch를 구현해보세요. 배열은 1000개로 잡고, random함수를 이용해 1부터 1000까지의 숫자를 랜덤으로 배열에 넣은 후, 777이 배열내에 있었는지를 찾으면 됩니다. 프로그램을 실행시킬 때마다 결과가 달라지겠죠?
1. LinkedList의 node를 선언하는 방법을 찾아보고, 왜 그런 형태인지 이해한만큼 써보자.
1.LinkedList의 node를 선언하는 방법을 찾아보고, 왜 그런 형태인지 이해한만큼 써보자.
1)기존 자료형의 이름을 프로그램 내부에서 다른 이름으로 사용할 수 있게 하는 것
그리고 보통 자료형 int 처럼 사용하면 된다. NUM을 이용한 변수 값과, int를 이용한 변수의 값을 서로 연산을 해보면 정확하게 값이 나온다.
- 새싹교실/2012/세싹 . . . . 11 matches
* gcc 개발환경을 구축하는 법을 알아보았습니다.
* 숙제를 수행하기 위해 버추얼 박스를 설치하였습니다. 설치파일이 정상적으로 실행 않는 문제가 있었는데 인터넷으로 강제 압축해제하는 방법을 듣고 7z으로 압축을 해제하는 방법으로 해결하였습니다. 데몬이 없어 iso파일도 7z으로 풀었습니다. - [김희성]
3) 하지만 우리가 이 모든것을 반드시 알아야 통신 프로그램을 할 수 있는것은 아닙니다.
네트워크 통신을 위한 프로그램들은 소켓을 생성하고, 이 소켓을 통해서 서로 데이터를 교환한다. - wikipedia
* 오피에서 숙제를 했습니다. VS로 하려니까 뭔가 막 오류가 나는데 고치지는 못하겠고 그래서 우분투를 깔아서 시도를 했네요. 용어가 익숙하지 않아서 그런지 함수 설명을 봐도 한번에 와닿지 않아서 힘들었습니다. 아 그리고 숙제를 하다가 생긴 문제인데요. 서버 프로그램을 처음 실행했을 때는 괜찮은데 두 번째로 실행했을 때는 Bind에러가 나네요. 그래서 매번 실행할 때마다 포트값을 수정해야했습니다. 왜 이런 문제가 생긴걸까요? - [권영기]
* [권영기] 학생이 맞닥트린 bind 오류는, 해당 포트에 내가 가서 눌러앉으려고(bind하려고) 가 보니까 다른 놈이 이미 차지하고 있어서 bind하지 못했다는 오류입니다. 프로그램에서 bind한 후 다 쓰고 나서 bind를 해제하지 않으면 이런 일이 발생합니다. bind 해제 코드를 꼭 넣도록 하세요. - [황현]
* 다중접속 가능한 클라이언트랑 서버 (스레드를 이용한 일 대 다수 연결 구현)- [김희성]
* socket과 thread를 이용하여 메시지를 주고 받을 수 있는 채팅 프로그램을 작성하시오.
요즘 갑자기 과제가 늘어서 채팅 프로그램에 손을 대지 못했습니다. 시간을 현명하게 써야할 것 같습니다. - [권영기]
http://www.winapi.co.kr/reference/Function/CreateFile.htm
http://www.winapi.co.kr/reference/Function/ReadFile.htm
타임스탬프 포멧 변환 API - [김희성]
- 허아영/C코딩연습 . . . . 11 matches
틀린 부분이나, 더 좋은 방법의 코딩법을 아시면, 말씀해 주세요.
프로그램 입니다. **20051095 허아영**************************
*프로그램입니다. [컴퓨터공학부 20051095 허아영] *
직각 삼각형의 높이와 패턴모양을 입력받은 후 출력하는 프로그램입니다.
두 숫자를 입력받은후 두 숫자 중에 큰 숫자를 출력하고, 두 숫자의 차를 구하는 프로그램입니다.
* 차를 구하는 프로그램입니다.
문제1. 로또 복권의 6자리 수를 랜덤하게 생성하데, 사용자가 발생 횟수를 선택할 수 있도록 하시오. 예를 들면, 초기 화면에서 사용자가 5를 입력하면 랜덤 수 6개를 5번 출력 하는데 출력 양식이 다음과 같도록 프로그램을 완성하시오.
• 2 ∼ 9 까지의 구구단을 한 화면에 출력하는 프로그램을 작성하시오.
• 포인터로 배열들의 요소를 지적하고 배열간의 자료교환을 하는 프로그램을 작성하시오.
/*1에서 n까지의 곱을 구하는 프로그램입니다.
printf("영대문자, 영소문자, 수치문자, 특수문자의 수 알아내는 프로그램n");
- 훌륭한프로그래머의딜레마 . . . . 11 matches
우연치 않게 두 회사에 정확히 똑같은 내용의 주문이 들어왔다. "열나어려운문제" 해결을 위한 프로그램을 작성해 달라는 것이었다.
열심히씨는 처음 예상 소요 시간인 3개월 동안 정말 열심히 일했다. 하지만 일을 하면서 예상 외의 장애를 직면했고, 밤샘 작업까지 해가면서 3개월의 마지막 날 매니져에게 이런 말을 할 수 있었다. "정말 열나게 프로그램을 짰슴다. 밤샘도 하고요. 제가 지금까지 작성한 프로그램은 2000줄입니다. 그런데, 새로운 문제가 기술적으로 불가피하게 발생했습니다. 복잡한 버그(프로그램의 오류)도 몇 가지 해결해야 하고요. 한 달 가량이 더 필요합니다." 그러고 한달 후 열심히씨는 몇 개의 버그와 더불어 나름대로 작동하는 프로그램을 매니져와 고객에게 자랑스럽게 보여줄 수 있었다. 벌겋게 충혈된 눈과 미쳐 깎지 못한 수염, 무지무지 어렵고 복잡해 보이는 2500여 줄의 프로그램과 함께. "예상보다 훨씬 더 복잡한 문제였군요. 정말 수고하셨습니다."라는 칭찬을 들으면서.
훌륭한씨는 매니져가 "의무적으로" 잡아놓은 예상 소요 시간 3개월의 첫 2달 반을 빈둥거리며 지냈다. 매니져는 훌륭한씨가 월말이 되어서 "정말 죄송해요. 아직 한 줄도 못짰어요. 너무 어려워요. 좀 봐주세요."라고 처량하게 자비를 구할 날을 손꼽아 기다렸다. 웬걸, 마지막 날 훌륭한씨는 예의 "너무도 태연스러운" 모습으로 나타났다. 150여 줄의 프로그램과 함께. 그 프로그램은 멋지게 "열나어려운문제"를 해결했다. 하지만, 매니져가 그 코드를 들여다 보자, 한마디로 "너무도 쉬웠다." 초등학생도 생각해 낼 정도였다. 매니져와 고객은 이름을 "열나쉬운문제"로 바꾸는 데에 전적으로 동의한다. 훌륭한씨는 "이렇게 간단한 문제를 3개월 씩이나 걸려서 풀었습니까? 왜 이렇게 성실하지 못하죠?"라는 비난을 들어야 했다.
과거 IBM사에서는 프로그램의 줄 수에 따라 급여를 계산했었다. (사실 지금도 이런 회사가 상당수 있다) 그런데 프로그램 줄 수가 늘어날 수록 숨겨진 버그 수와 유지관리에 드는 비용은 기하 급수적으로 늘어나게 된다. 이 문제를 해결하기 위해 프로그램 줄 수는 더 늘어나게 되고, 덕분에 프로그래머는 돈을 더 벌게 된다.
- .bashrc . . . . 10 matches
export LESSOPEN='|/usr/bin/lesspipe.sh %s 2>&-' # lesspipe.sh 이 있다면 이걸 쓰세요
function my_ps() { ps $@ -u $USER -o pid,%cpu,%mem,bsdtime,command ; }
local pid pname sig="-TERM" # 기본 시그널
for pid in $(my_ps| awk '!/awk/ && $0~pat { print $1 }' pat=${!#} ) ; do
pname=$(my_ps | awk '$1~var { print $5 }' var=$pid )
if ask "Kill process $pid <$pname> with signal $sig?"
then kill $sig $pid
complete -A hostname rsh rcp telnet rlogin r ftp ping disk
complete -A helptopic help # currently same as builtins
- 1thPCinCAUCSE . . . . 10 matches
* 문제 성격: 국내 대학생 프로그램 경진 대회의 문제 출제 경향을 따른다. 2002년도 문제 샘플( http://cs.kaist.ac.kr/~acmicpc/problem.html see also ["2002년도ACM문제샘플풀이"] 참조)
* 프로그램의 실행시간이 일정시간(예: 10초)을 지나도 끝나지 않을 경우 틀린 문제가 됩니다.
* 프로그램 작성시 유의 사항:
1. 각 문제는 데이터를 외부에서 입력받아서 프로그램으로 답을 계산한 후 반드시 출력을 한다. 이때, 입출력은 표준입출력만 사용한다. 파일 입출력문을 쓰면 안됨.
아쉬운 점이라면, 국내 대학생 프로그램 경진 대회와 acm의 icpc를 모델로 하는 듯 한데, 그렇다면 사용언어와 플랫폼 역시 좀 선택의 폭 을 넓게 해주는 게 좋지 않을까 하군요.
수학 경진 대회건, 프로그래밍 경진 대회건 그걸 준비하는 사람들은 매일 비슷비슷한 유형의 문제들만 "최단시간내에" 풀어제끼는 훈련을 하고, 덕분에 어떤 해답 집합을 미리 외우고 있 습니다. 알고리즘 X하면 바로 무의식적으로 손 끝에서 해당 알고리즘을 구현한 모범 답안이 튀어나오게 자신이 프로그램 되어 있죠. 다 좋습니다만, 모든 사람이 그렇게 훈련받을 필요는 없지 않을까요?
C/C++(VC++6.0)만 사용할 수 있는 상황에서는 ["STL"]을 사용하냐 안하냐가 엄청난 차이를 불러올 것이라 생각한다. 그리고 팀이 두명이냐 세명이냐도 중요하긴 할 터인데, 어떻게 조직적으로 잘 활용하느냐에 따라 차이가 있기도 하고 별로 없기도 할 것이다. 또한 자가 테스트를 통해 어느 정도 검증된 프로그램만 제출을 할 수 있다면 페널티를 줄일 수 있기 때문에 훨씬 유리할 것이다.
또한 모든 문제에 대해 출제자가 예상하는 해답이 있을 것이고, 올바르게 작동은 하지만 수행시간이 훨씬 더 걸리는(알고리즘의 컴플렉시티가 훨씬 높은) 답안이 있을 터인데, "일정시간" 내에 수행이 완료될 수 있다면 더 단순한 답안을 고를 수 있는 능력도 아주 중요할 것이다. 예컨대, 이번 대회의 예제 문제 B번(http://cs.kaist.ac.kr/~acmicpc/B_word.pdf ) 경우, (아마도) 출제자가 예상하는 답안의 실행 시간이나, 혹은 그렇지는 않지만(꽤 무식한 방법을 쓰지만) 올바르게 작동하는 답안의 실행 시간이나 모두 1초 이내이다. 후자의 방법을 생각해 내고, 프로그램 하는 데에는 보통 전산학과 학생이라면(그리고 그가 ["STL"], 특히 Permutation Generator를 다룰 수 있다면) 5분이면 떡을 치고도 남는다.
- AcceleratedC++/Chapter7 . . . . 10 matches
기존에 이용한 vector, list는 모두 push_back, insert를 이용해서 요소를 넣어주었을 때,
이러한 순차컨테이너가 모든 프로그램의 자료구조의 대안이 되어 줄 수는 없다.
단순한 순차검색보다 더욱 빠른 수행 시간을 갖는 프로그램의 작성을 하고 싶을 수 있다.)
// read the input, keeping track of each word and how often we see it
문법과 주어진 단어를 이용하여서 간단한 문장조합 프로그램을 만들어 본다. 제시된 규칙은 다음과 같다.
상기의 규칙을 통해서 우리는 간단하게 {{{~cpp the table[noun-phrase, noun] jumps[verb] wherever it wants[location]}}} 같은 프로그램을 만들어 볼 수 있다.
참고) [http://douweosinga.com/projects/googletalk Google Talks] [http://bbs.kldp.org/viewtopic.php?t=54500 KLDP google talks perl clone]
상기에서는 map<string, vector<string> >의 형태로 구현해야한다. 그러나 <adjective>, <location>, <noun>과 같이 동일한 키 값에 대해서 규칙이 여러개가 존재하는 경우를 다루기 위해서 '''map <string, vector< vector<string> > >''' 의 타입을 이용한다.
//vector<string>의 첫번째 요소를 entry의 키값으로 이용한다. 2번째 요소부터 마지막 요소까지는 entry의 값으로 저장한다.
g:Grammar map에서 <sentence> 키값으로 실제의 문장에 관한 문법을 읽어들인다.
- AppletVSApplication/상욱 . . . . 10 matches
자바는 두 가지 종류의 프로그램 형태를 가진다. 하나는 일반적인 응용 프로그램 즉, 애플리케이션(Application)이고 또 하나는 작은 프로그램이
애플릿은 왜 작은 프로그램으로 불릴까? 그것은 항상 웹 페이지 안에서 자바를 지원하는 웹 브라우저에 의해서만 실행되기 때문이다. 웹 페이지
안에서 동적으로 사용자의 입력에 반응하거나 실시간으로 변화하는 다양한 자바 프로그램들은 모두 애플릿이며 자바로 만들어진 웹 브라우저인 핫
자바를 포함하여 독자적으로 일반 프로그램과 같이 실행될 수 있는 자바 프로그램은 모두 자바 애플리케이션이다.
자바 애플릿이란 HTML 페이지에 포함되어 자바 호환(java-compatible) 웹 브라우저에 의해 실행될 수 있는 된 자바 프로그램입니다. 자바 호환
에서 독립적인 프로그램으로 실행되고, 자바 애플릿은 자바 호환 웹 브라우저에 의해 웹서버에서 다운로드되어 실행되는 것처럼 실행환경의 차이에
- 애플릿이 실행되고 있는 클라이언트 컴퓨터 상의 어떤 프로그램도 실행할 수 없습니다.
- BigBang . . . . 10 matches
==== c++의 "hello world" 프로그램을 뜯어보자 ====
* 이걸로 프로그램이 제대로 끝났는지 판단한다.
* 참조는 내부적으로 포인터를 이용한다.
* mutex, semaphore, spinlock, critical section, race condition, dead lock
* printf의 경우에는 첫째인자로 형을 판단할수 있기 때문에 문제가 되지 않죠. 하지만 같은 이유에서인지 printf("%f", 3) 을 잘못출력하는 문제가 있습니다. 이 취약점을 이용한 해킹 방법도 존재하지요. - [안혁준]
* stl vector를 이용한 class vector 만들기
* template와 friend 사이에 여러 매핑이 존재한다. many to many, one to many, many to one, one to one : [http://publib.boulder.ibm.com/infocenter/comphelp/v7v91/index.jsp?topic=%2Fcom.ibm.vacpp7a.doc%2Flanguage%2Fref%2Fclrc16friends_and_templates.htm 참고]
* 가변인자의 취약점을 이용한 공격 (Format String Attack)
* #define은 매크로이기 때문에, preprocessor에 의해서 처리되고, typedef는 compiler에 의해 처리된다.
* vector<bool>은 일반적인 vector 연산이 불가능한데, 이걸 해결하기 위해 bitset을 이용한다.
- CubicSpline/1002/NaCurves.py . . . . 10 matches
class ErrorPiecewiseLagrange:
def __init__(self, aControlPointListX, aPieceSize):
self.piecewiseLagrange = PiecewiseLagrange(aControlPointListX, aPieceSize)
return self.normalFunc.perform(x) - self.piecewiseLagrange.perform(x)
class PiecewiseLagrange:
def __init__(self, aControlPointListX, aPieceSize):
self.pieceSize = aPieceSize
return Lagrange(self.getPiece(1)).perform(x)
return Lagrange(self.getPiece(2)).perform(x)
return Lagrange(self.getPiece(3)).perform(x)
return Lagrange(self.getPiece(4)).perform(x)
def getPiece(self, i):
if ((self.pieceSize-1)*(i-1)+self.pieceSize) > self.getCountControlPoints():
return self.controlPointListX[self.getCountControlPoints()-self.pieceSize : self.getCountControlPoints()]
return self.controlPointListX[self.getFirstPiecePoint(i) : self.getEndPiecePoint(i)]
def getFirstPiecePoint(self, i):
return (self.pieceSize-1)*(i-1)
def getEndPiecePoint(self, i):
return (self.pieceSize-1)*(i-1)+self.pieceSize
def getCountPieces(self):
- HelpOnFormatting . . . . 10 matches
위키위키는 좀 더 직관적이면서 이해하기 쉬운 단순한 세트의 문법 규칙을 가지고 있습니다. HTML 문서를 만들기 위해서 HTML문법을 알아야 하는 것 처럼 위키위키 페이지를 만들거나 고치기 위해서 위키위키 문법을 알아야 합니다. HTML문법은 직관적이지 않고 복잡한 측면이 있습니다. 그러나 대다수의 HTML문서는 매우 간단한 문법을 알기만 하면 만들 수 있습니다. 위키위키는 이러한 문법을 좀 더 단순화 시키고 직관적이고 이해하기 쉬운 단순한 규칙으로 구성되도록 고안되었으며 조금만 시간을 투자한다면 위키위키의 문법을 쉽게 이해하고 배우실 수 있습니다.
위키위키 문법을 무시하게 하기 위해서 중괄호 세개를 {{{ {{{이렇게}}} }}} 사용하게 되면 글꼴이 고정폭 글꼴로 보여지게 되며 ({{{monospace font}}}) 만약에 이 문법을 여러 줄에 걸쳐 사용하게 되면, 중괄호 블럭의 모든 공백이 보호되어 프로그램 코드를 직접 삽입하여 보여 줄 수 있습니다.
phpinfo();
위첨자의 기본 문법은 원래 {{{^윗첨자^}}}문법이지만 다른 문법들과 일관성있게 하기 위하여 {{{^^윗첨자^^}}}문법을 지원합니다 ^^이렇게^^.
- HowManyFibs?/문보창 . . . . 10 matches
void findPibNum(BigInteger& a, BigInteger& b)
static BigInteger pib[481];
pib[1].digit[0] = 1, pib[1].len = 1;
pib[2].digit[0] = 2, pib[2].len = 1;
pib[i].findPibNum(pib[i-1], pib[i-2]);
response = inA.isBigThan(pib[i]);
response = inB.isBigThan(pib[i]);
- Java2MicroEdition/MidpHttpConnectionExample . . . . 10 matches
=== Spike2.java ===
package com.minnysunny.mobilerssreader.spike;
public class Spike2 extends MIDlet implements CommandListener {
public Spike2() {
SpikeGetHtml sgh = new SpikeGetHtml("http://dduk.idaizy.com/j2me/test.txt");
=== SpikeGetHtml.java ===
package com.minnysunny.mobilerssreader.spike;
public class SpikeGetHtml {
public SpikeGetHtml(String url) {
- MFCStudy_2001/진행상황 . . . . 10 matches
* 모든 프로그램의 접수처는 neocoin@orgio.net 입니다. 링크 시키란 의미가 아닙니다.
* 1월 9일자 진행 프로그램: [http://zeropage.org/pds/Alcanoid1_혜영.exe 혜영] [http://zp.cse.cau.ac.kr/~nuburizzang/Arca.exe 인수] [http://zeropage.org/pds/arkanoid_선호.exe 선호] [http://zeropage.org/pds/omok_상협.exe 상협] (창섭이는 부탁으로 제외하고 다음 이시간에)
* 2002. 1. 7 월요일 1시 정모에 회원 모임 (모두 참석) 제출 프로그램:
* 2002. 1. 22 프로그램 진행 상황의 체크 종료. 진행상황 점검과, 체크사항, 프로그램에 대한 의견 교환
* 개인들에 관한 최종 정리 : 이번주 2월 3일까지 프로그램을 주세요. 최종 정리는 4~6일 사이에 이루어 집니다.
* 2002. 2.14 최종 정리 종료: 마지막으로 끝낸 프로그램을 결과물 페이지에 올렸습니다.
* 진행상황 체크는 하지 않지만 마지막 각자의 산출물을 30일에 링크 걸고 이 위키 페이지 최종 정리에 들어 갈것입니다. 30일 이후에 프로그램을 받겠습니다.
* 삽질중 : GetDC()만 쓰면 프로그램이 뻗어 버린다. 왜 그럴까..
* 느낀 점 : 역시 난 아직 걸음마를 익힌 단계에 불과한 넘이다. 이런 허접한걸 프로그램이라고 만들어 놓고 좋아하다니..--; 앞으로 더욱 열심히 매진을! 메모리 엄청 새고.. DC에 대해 더 공부를 해야 하는 걸까..
*1월 2일 : 메뉴 만들기[[BR]]Option으로 Ball Size, Paddle Size, Ball Speed를 사용자가 선택하도록 하기 위해서 필요. Ball Size는 11,13,15 Pixel 중에서 하나를 선택해야 함 - 중복 선택할 수 없도록하기 위한 처리..--;나중에 보니 1학기때 실습예제로 있었는데 몰라서 한참을 삽질) 그리고 게임중일때는 Option메뉴를 선택할 수 없도록 하기 위한 처리까지 했다.
- NSIS/Reference . . . . 10 matches
|| Name || "zp_exam_project" || 인스톨러 이름 (보통은 인스톨하려는 프로그램의 이름) ||
== Compiler Flags ==
Label은 Goto 명령어나 기타 조건제어문들 (IfErrors, MessageBox, IfFileExists, StrCmp 등)을 위해 이용한다.
|| Exec || command || 특정 프로그램을 실행하고 계속 다음진행을 한다. $OUTDIR 은 작업디렉토리로 이용된다. ex) Exec '"$INSTDIR\command.exe" parameters'||
|| ExecWait || command [user_var(exit code)] || 특정 프로그램을 실행시키고, 종료될 때까지 기다린다. ||
|| ExecShell || action command [parameters] [SW_SHOWNORMAL | SW_SHOWMAXIMIZED | SW_SHOWMINIMIZED]|| ShellExecute를 이용, 프로그램을 실행시킨다. action은 보통 'open', 'print' 등을 말한다. $OUTDIR 은 작업디렉토리로 이용된다.||
* $SMSTARTUP - 시작메뉴 programs/startup folder. 즉, '시작프로그램'
== Compiler utility commands ==
== Compiler defines / conditional compilation ==
- PNGFileFormat/FormatUnitTestInPythonLanguage . . . . 10 matches
# PIL과 비교. scanline by scanline 으로 비교해야 한다.
def testCompareWithPIL(self):
self.assertTrue(rgbmap[j][i].compare(im.getpixel((i,j)) ) )
def makeScanline(self, basepixel, ypos, stream, rgbmap): # method 는 PNG filter type, stream은 zlib 으로 decomposite된 값들
return self.makeScanlineBySub(basepixel, ypos, stream)
return self.makeScanlineByUp(basepixel, ypos, stream, rgbmap)
return self.makeScanlineByAverage(basepixel, ypos, stream, rgbmap)
return self.makeScanlineByPaeth(basepixel, ypos, stream, rgbmap)
def makeScanlineBySub(self, basepixel, ypos, stream):
def makeScanlineByUp(self, basepixel, ypos, stream, rgbmap):
def makeScanlineByAverage(self, basepixel, ypos, stream, rgbmap):
def makeScanlineByPaeth(self, basepixel, ypos, stream, rgbmap):
- PatternOrientedSoftwareArchitecture . . . . 10 matches
http://images.amazon.com/images/P/0471958697.01.__PE_PIm.arrow,TopLeft,-2,-19_SCMZZZZZZZ_.jpg wiki:ISBN:0471958697 http://images.amazon.com/images/P/0471606952.01.__PE_PIm.arrow,TopLeft,-2,-19_SCMZZZZZZZ_.jpg wiki:ISBN:0471606952
* 이렇게 레이어로 깨끗이 나누어서 프로그램을 짜면 팀으로 작업을 할때 좀더 능률적이다.
* Scenario3 - 레이어 N-1이 cache로 작용하여서, 레이어 N의 요청이 레이어 N-1에게만 전달되고 더이상 하위 레이어로 전달되지 않는다. 요청을 보내기만 하는 레이어들이 상태가 없는(stateless) 반면에 이러한 cache 레이어는 상태 정보를 유지한다. 상태가 없는 레이어들은 프로그램을 간단하게 한다는 이점이 있다.
* 당산의 추상적인 기준에 따라서 추상 레벨들의 갯수를 정하여라. trade-off를 생각해보면서 레이어를 통합하거나 분리해라. 너무 많은 레이어는 프로그램에 과중한 부담이 되고, 너무 적은 레이어는 구조적으로 좋지 않게 된다.
* APIs
* 레이어의 재활용 - 프로그래머들은 현재 존재하는 레이어가 자신의 목적에 맞지 낳는다고 이미 있는것을 재사용 하기보다는 새로 짜는 경우가 많다. 그러나 현재 존재하는 레이어를 재사용(black-box reuse)하는 것은 개발에 드는 노력과 프로그램의 결점들을 극적으로 감소 시킬 수 있다.
=== Pipes and Filters ===
* 이 패턴은 : data source - filter - pipes - filter - data sink, 의 순서로 되어 있고, 각 필터에서는 데이터를 처리하는 함수가 있을 수 있다. 레이어 패턴과 비슷한 점도 보이지만, 이 패턴의 특징은 쉬운 재조합과 재사용성이다. 에러를 처리하는 관점과 시스템의 신뢰성을 따지면 레이어가 더 낮다.
* 예제 : 여기서는 음성인식 시스템을 예로 들었다. 음성인식 프로그램은 단지 하나의 단어를 받아들일 뿐만 아니라 구문과 단어가 특정한 application에 필요한 단어나 구문론에 맞는 것으로 제한된 문장 전체를 받아 들인다. 원하는 output은 그 음성 인식한것에 맞는 기계적인 표현으로 바꾸는 것인데 이 변환 과정에는 음성을 음파적으로 인식하는 것과, 언어학적인 면에서 인식하는것과, 통계적인 전문성에서 인식하는 것이 필요하다.
* 해결책(solution) : Blackboard 구조의 바탕에 깔린 개념은 공동의 데이터 구조에 대해서 협동적으로 작동하는 독립된 프로그램들의 집합이다. 그 독립적인 프로그램들은 서로 다른 프로그램을 호출하지 않고 또한 그것의 행동에 대해 미리 정의된 순서는 없다. 대신에 시스템의 방향은 주로 현재의 상태나 진행(progress)에 의해 결정된다. 데이터-관리 조종 체계(data-directed control regime)는 opportunistic problem solving 이라고도 불린다. moderator(중재자) component는 만약 하나 이상의 component가 contribution을 만들수 있다면 프로그램들이 실행되는 순서를 결정한다.
- PrivateHomepageMaking . . . . 10 matches
만들어야하기 때문에 실제로 그 프로그램을 어느정도 뜯어 고칠 수 있는 능력이 필요하다.
대략 보드 기반의 홈페이지는 몇가지 공통적으로 이용하는 프로그램들이 많이 존재한다.
물론 프로그램에 관심이 있는 사람은 이 기회에 게시판으 한번정도 짜보는 것도 나쁘지 않을 것이다.
일반적으로 이용하는 게시판 프로그램으로는 다음의 것들이 있다.
보통 PHP, MySQL을 이용한 프로그램들이 대부분이다.
|| Zeroboard || http://www.nzeo.com || PHP 기반이며 DB는 MySQL 을 이용한다 ||
|| whitebbs || http://whitebbs.com || PHP 기반이며 파일 입출력을 이용한다. (DB서버 불필요) ||
BLOG 패키지 기반 홈페이지 역시 사이월드를 비롯한 사이트들이 유행을 하면서 만들어진 프로그램들이 존재한다.
컴퓨터 관련 사람들이 많이 이용한다. ㅡ.ㅡ;;; 대부분 이런 사이트의 운영자를 보면 프로그래머다.
- SpiralArray/임인택 . . . . 10 matches
처음에는 다른 디자인으로 접근을 했는데, 일단은 문제를 풀어보자는 취지 하에 제일 쉽게 풀릴것 같은 방법을 사용하였다.
def makeSpirialArray(rows, cols):
SpirialArray = []
SpirialArray += [[0]*cols]
SpirialArray[index[0]][index[1]] = value + 1
SpirialArray[index[0]][index[1]] = value + 1
return SpirialArray
print makeSpirialArray(3,3)
print makeSpirialArray(6,4)
[문제분류], SpiralArray
- WikiTextFormattingTestPage . . . . 10 matches
This page originated on Wiki:WardsWiki, and the most up-to-date copy resides there. This page has been copied here in order to make a quick visual determination of which TextFormattingRules work for this wiki. Currently it primarily determines how text formatted using the original Wiki:WardsWiki text formatting rules is displayed. See http://www.c2.com/cgi/wiki?WikiOriginalTextFormattingRules.
In at least one wiki (which? ''PikiPiki, and thus MoinMoin''), the weight (thickness) of the lines increases based on the number of dashes (starting at 4 dashes).
Simply typing a link (starting with http: and ending in .gif) also works.
Will pictures overlap? In WardsWiki, these 4 pictures form two rows of two pictures, separated by a horizontal blank line.
Foreign Characters, copied from the WikiWikiSandbox on 12/8/00:
verrry funny pictures for an old chinese; no more meaning like "FA3B27E5" or other Hex-Code
Wiki:TopicWikiEngineReview, CLUG:TopicUsingWiki, CLUG:TopicWikiEditingTraps
- 검색에이전시_temp . . . . 10 matches
* [http://prdownloads.sourceforge.net/goog-kongulo/kongulo-0.1.zip?download 웹스파이더(구글오픈소스)] - 이프로그램은 구글 데스크탑의 플러그인 같은 것으로서 이프로그램을 사용하여 특정 웹사이트 내용을 긁어서 구글 데스크탑 디비에 넣을 수 있다. 현재는 이 프로그램으로 구글 데스크탑이 아닌 그냥 파일에 쓰는식으로만 바꿔봄
http://minihp.cyworld.nate.com/pims/visitbook/visitbook_list.asp?tid=24808212&urlstr=bang
프레임있는 미니홈 : http://minihp.cyworld.nate.com/pims/main/pims_main4.asp?tid=24808212&urlstr=main
미니룸 : http://minihp.cyworld.nate.com/pims/main/main_inside.asp?tid=24808212
방명록 : http://minihp.cyworld.nate.com/pims/visitbook/visitbook_list.asp?tid=24808212&urlstr=bang
사진첩 : http://minihp.cyworld.nate.com/pims/board/image/imgbrd_list.asp?tid=24808212
게시판 : http://minihp.cyworld.nate.com/pims/board/general/board_list.asp?tid=24808212
- 고한종/십자가돌리기 . . . . 10 matches
int spin =0;
spin++;
printf("회전수 : %d\n",spin);
printf("회전수 : %d\n",spin);
printf("회전수 : %d\n",spin);
printf("회전수 : %d\n",spin);
printf("회전수 : %d\n",spin);
printf("회전수 : %d\n",spin);
printf("회전수 : %d\n",spin);
printf("회전수 : %d\n",spin);
- 데블스캠프2011/첫째날/후기 . . . . 10 matches
* 전날 누나/형들이 프로젝트하면서 nForge를 쓰시기에 '저건 뭔가?!' 하고 있었는데 오프닝하면서 바로 해결되었지요.. 문제는 SVN을 제대로 사용하는 법을 아직 잘 모르겠다라는 거일까요. 뭔가 똑같이 따라했는데 제대로 안된 느낌! (그러나 종하형 디스하는거만큼은 어렵지않게 되더군요.ㅋㅋ)
* 데블스캠프의 가장 중요한 부분인 기록을 위해서 SVN과 위키의 사용법에 대한 설명을 하는 시간. 사실 세 번째니만큼 그렇게까지 어색한 느낌은 아니었습니다. 오히려 세 번째인데도 SVN의 사용법을 완벽하게 알고 있지 못 한 자신에 더 놀랐습니다 -_- 배웠다고 썩히지 말고 좀 더 자주자주 쓰도록 노력을 해 봅시다...
* 전 늦게와서 오프닝은 잘 못들었기 때문에 svn을 활용해보지는 못했네요 ^^; 하지만 팀프로젝트를 할 때 편리한 프로그램인 것 같습니다.
* Play with Java에서는 1학년 때 승한이형이 여러 사람들이 함께 프로젝트를 진행할 때 누군가 어느 부분을 수정했는지 알 수 있게 해 주는 부분이 있다고 하셨었는데, 그걸 전역하고 나서야 다뤄보네요 -ㅅ-;; 쩝... 아무튼 간단한 프로그램을 만드는 것이라 재미있게 사용법도 익히고 좋았습니다. 자주 써 먹어야겠네요. ㅋ~
* 2009년에 Java와 JUnitTest를 주제로 진행했을 때 실습 미션을 잘못 준비해오고 시간이 많이 비었던 뼈아픈 기억 때문에 시간이 부족했음에도 불구하고 나름 신경을 많이 썼던 섹션이었는데 오히려 타임오버가 되었네요;; 프로그래밍보다 수학 시간이 되었던거 같은 실습시간.. (그래서 처음에 겉넓이를 뺐던 것이었는데 팀이 많아서 추가하고 으헝헝) 그리고 다들 프로그래밍을 잘해서 '''Unit Test를 굳이 하지 않아도 버그가 없었던''' 프로그램을 완성하는 바람에.. Unit Test의 필요성을 많이 체감하지 못한것 같아서 좀 아쉬웠어요. 역시 '''적절한 예제'''를 만들기는 어려운것 같아요.
* 새내기들과 tool을 접해보지 않은 학생들이 듣기에 적합했던 세미나였다고 생각합니다. 새내기에게는 C가 아닌 언어의 문법을, 다른 학생들에게는 JUnit과 Subversion실습을 할 수 있었던게 좋았습니다. 개인적으로는 태진이와 PP를 해서 좋았습니다. 그리고 농담식으로 나왔던 "선 커밋을 해라." 라는 말이 정말 인상이 깊었습니다. 왜일까요. 이 말을 들었을 때 '신뢰를 보낸다'는 메시지처럼 느껴지기도 하고, '내 책임은 아니야'라는 메시지처럼 느껴지기도 했습니다. VCS을 사용하다보면 '커밋분쟁, 커밋갈등'이 일어날 수 있다는 걸 깨닫게 되기도 했습니다.
* 앗 이 후기를 쓰지 않았다니! 자바를 처음으로 제가 코딩해볼 수 있었던 시간이었습니다. 전날까지 잘 몰랐던(ㅋㅋㅋㅋㅋㅋㅋ) '박' 성현이 형과 같이 진행했죠. 누구랑 같이 할지 선택하라고 했을때 성현이형을 보자마자 찰나의 고민도 없이 '아! 성현이형이랑 해야겠군!' 이라는 생각이 들엇달까요 ㅎㅎㅎㅎ. 개인적으로 지금은 새발의 피만큼 클래스와 객체의 개념에 대해서 좀 더 이해되는거 같습니다. 책보며 공부하고 있는데도 아직 어려움이 많네요. JUnit이라는 (뒤에가서 TDD도 배웠지만) 분산해서 프로그램 짜는걸 실습해볼 수 있어서 좋았습니다. 세미나가 3시간인게 정말 아쉬웠지요 ㅠㅠ 좀 더 시간이 많아서 많은걸 들을 수 있었다면 좋았을텐데 라는 아쉬움아닌 아쉬움이 남는 지원누나의 최고의 세미나였습니다.
* Playing with Java시간에는 지금까지 한번도 써보지 못했던 이클립스를 써봤는데 아직은 문법을 잘 몰라서 약간 생소했지만 좋은 경험이었다고 생각합니다. 또 처음으로 여러 팀에서 각자 담당한 프로그램들을 짜서 그 다음에 붙여보는 활동을 했는데 재미있고 새로운 시간이었습니다.
* 데블스 캠프를 낮밤을 함께 하자 제안했었는데, 어쩌다 보니 낮 시간인 날에 참가 못하게 되버렸지요 ㅠ.ㅠ SE 팀플을 할 때 svn을 써보긴 했지만.. 폴더 단위로 이동시키다가 supclipse로 하니 좋았어요:) 동시다발적으로 하려다 보니 충돌이 많이 나서 잘 안될 줄 알았는데..마지막에 프로그램이 돌아가는 걸 보고 감동적이었던! 처음에 클래스 선언 타입이나 그런 준비를 하는 것이 얼마나 중요한 지 깨달았어요.
- 보드카페 관리 프로그램 . . . . 10 matches
보드 게임 방 관리 프로그램
- 게임 3개 (jenga, citadell, pit)
- play {table1, table2, table3} {jenga, citadell, pit}
>> play table3 pit
table3 pit play
>> play table2 pit
have no pit
>> play table2 pit
table2 pit play
[보드카페 관리 프로그램/강석우]
- 소수구하기 . . . . 10 matches
|| ["소수구하기/재니"]||
|| ["소수구하기/임인택"] ||
|| ["소수구하기/zennith"] ||
|| ["소수구하기/영록"]||
|| ["소수구하기/영동"]||
|| ["소수구하기/인수"]||
|| ["소수구하기/상욱"]||
100억의 소수 즉 11자리 소수를 구하는 프로그램이나
11자리로된 모든 소수 구하기.
BBC의 방송 기사를 옮겨서 기사가 부실한것 같다. [http://bbs.kldp.org/viewtopic.php?t=39037&highlight=%BC%D2%BC%F6 관련내용] 그리고 이해가 안가는게, 메르센 소수를 발견하는게 그 사람의 목표였는지, 아니면 발견된것이 메르센 소수인지도 이해가 안가게 해두었지. 것참 관심없는 내용이라고 저렇게 해둔건가.--NeoCoin
- 위키설명회2005/PPT준비 . . . . 10 matches
1992년 : 동남은행 Firm banking system, 치관 운영 관리 프로그램, 세탁소 관리 프로그램, 세일 정보 통신 재해자 관리 프로그램
1993년 : 비디오 도매상 관리 프로그램, '작은마녀' 게임 프로그램
1994년 : 삼성전자 번들용 영어 교육 프로그램
2002년 : 1회 SK 모바일 프로그램 경진대회 대상 수상
그 밖에 프로그램 배틀, 조인트 스터디등등...의 계획
특히 방학때 ==> 스터디를 통해서 본격적으로 공부함... 여름방학 같은 경우 데블스 캠프, 2학기 프로그램 전시회 준비
7. 프로그램 전시회 (올해는 조금 무리인것 같고. 내년쯤에는 반드시 부활시키고자 합니다.)
- 이영호/기술문서 . . . . 10 matches
[http://bbs.kldp.org/viewtopic.php?t=24407] - Reference 에 의한 호출과 Pointer에 의한 호출 (결론: Reference는 포인터에 의해 구현되며 표현만 CallByValue 다.)
[http://bbs.kldp.org/viewtopic.php?t=21673] - printf & sprintf 팁
[http://bbs.kldp.org/viewtopic.php?t=21671] - 문자 파싱하는 tip
[http://bbs.kldp.org/viewtopic.php?t=20512] - Array 초기화를 쉽게 하는 방법...
[http://bbs.kldp.org/viewtopic.php?t=1244] - 디버깅 이야기: malloc, free, new [], delete []
[http://bbs.kldp.org/viewtopic.php?t=1133] - 디버깅 이야기: hex dump
[http://bbs.kldp.org/viewtopic.php?t=48059] - struct POS의 memcmp와 if 의 성능비교 (결과 : 다루는 배열이나 구조체가 커질수록 memory계 함수가 빠르다.)
[http://bbs.kldp.org/viewtopic.php?t=2128] - GNU C 에서의 printf 의 확장 및 locale 사용
[http://bbs.kldp.org/viewtopic.php?t=1045] - *NIX 계통의 Debug에 유용한 툴 (GNU/Linux에서는 strace = A system call tracer, ltrace = A library call tracer)
[http://bbs.kldp.org/viewtopic.php?t=30832] - 시스템 퍼퓨먼스 튜닝 (서버)
- 중위수구하기 . . . . 10 matches
=== 중위수구하기 ===
문제 : 세 수 A, B, C를 받아들여 그 중 중위수를 구하는 프로그램을 작성하여라.
* a = -999 이면 프로그램이 끝나게 한다.
|| [허아영] || C || 20분 || [중위수구하기/허아영] ||
|| [조현태] || C/C++ || . || [중위수구하기/조현태] ||
|| [문보창] || Java || . || [중위수구하기/문보창] ||
|| 김태훈([zyint]) || PHP || . || [중위수구하기/김태훈zyint] ||
|| [정수민] || C || 3시간; || [중위수구하기/정수민] ||
|| [남도연] || C/C++ || . || [중위수구하기/남도연] ||
|| 나휘동([Leonardong]) || python || . || [중위수구하기/나휘동] ||
- 진격의안드로이드&Java . . . . 10 matches
==== cmd에서 Compile & Decompile 방법 ====
// Compile
// Decompile
// Result of Decompile
Compiled from "ByteCode.java"
// Result of Decompile
Compiled from "ByteCode.java"
// Result of Decompile
Compiled from "ByteCode.java"
- 5인용C++스터디/다이얼로그박스 . . . . 9 matches
1-1 Visual Stdio Microsoft Visual C++ 프로그램을 실행 시킨다
이 부분에서 사용자가 선택하고 싶은 것을 선택을 한다. 이 Test프로그램은 Dialog based를
대부분의 대화상자는 modal이다. modal 대화상자는 부모 프로그램이 계속 실행되기 위해서 사용자의 응답을 기다린다. 이 말은 modal 대화상자는 사용자의 입력 확인 없이 부모 프로그램의 어떤 부분도 동작시킬 수 없다. modaless 대화상자는 부모 프로그램의 실행을 막지 않는다. 이것은 다른 부분의 프로그램의 실행을 대화장자가 막지 않는다는 것이다.
modal dialog의 예를 들면 프로그램에서 파일을 저장할 때 화면에 뜨는 Dialog를 들 수 있다.
즉 modal dialog는 그 dialog가 닫혀지기 전에는 부모 윈도우로 마우스를 이용한 focus이동을 할 수 없다. 따라서, dialog를 닫지 않는 이상 main window프로그램을 이용할 수 없다.
- 5인용C++스터디/키보드및마우스의입출력 . . . . 9 matches
키보드로부터 입력이 발생했을 경우 윈도우즈는 포커스를 가진 프로그램에게 키보드 메시지(WM_CHAR)를 보내주며 프로그램은 이 메시지를 받아 키보드 입력을 처리한다. 여기서 포커스(Focus)를 가진 프로그램이란 활성화되어 있는 윈도우를 말하며 한번에 오직 하나의 프로그램만 활성화된다. 아무리 여러개의 프로그램이 동시에 실행되는 멀티 태스킹 환경이라 하더라도 활성화될 수 있는 프로그램은 오직 하나밖에 없으며 활성화된 프로그램만 포커스를 가지고 키보드 입력을 받아들일 수 있다. 왜냐하면 시스템에 키보드는 하나뿐이며 키보드를 사용할 수 있는 사용자도 하나뿐이기 때문이다.
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
입력된 문자들을 바로 바로 출력하지 않고 반드시 문자열에 모아 두어야 하는 이유는 키보드 입력이 발생하는 시점과 문자열을 출력해야 할 시점이 분리되어 있기 때문이다. 키보드 입력 시점은 키보드 메시지인 WM_CHAR가 발생했을 때이며 이 메시지에서 문자열을 조립하기만 하고 문자열의 출력은 WM_PAINT에서 처리한다. 물론 WM_CHAR 메시지에서 문자열을 바로 바로 출력하는 것도 가능하기는 하지만 윈도우즈 프로그램은 화면을 다시 그릴 준비를 항상 해 두어야 하며 모든 출력은 WM_PAINT에서 하도록 되어 있다. 그렇지 않으면 출력된 문자들이 지워지면 다시 복구되지 않는다.
윈도우즈와 같은 GUI운영체제에서는 키보드보다 마우스가 더 많이 사용된다. 윈도우즈의 공식 입력 장치는 키보드이지만 그래픽 툴이나 DTP, CAD 등의 복잡한 프로그램에서는 마우스가 주요 입력 장치로 사용된다. 키보드 입력 처리를 메시지로 하는 것과 마찬가지로 마우스 입력 처리도 메시지를 받아 처리한다. 마우스 입력에 관한 메시지는 다음과 같은 종류가 있다.
- Android/WallpaperChanger . . . . 9 matches
* Android의 Wallpaper 바꾸는 API찾아보기
private static final int SELECT_PICTURE = 1;
//Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(Intent.createChooser(i, "Select Picture"), SELECT_PICTURE);
if (requestCode == SELECT_PICTURE) {
== Android의 Wallpaper 바꾸는 API찾아보기 ==
// 서비스에 대한 스레드에 연결된 Handler. 타이머 이용한 반복 처리시 사용.
* Picture Gallery 불러오는 방법 및 여러개 파일 받아오는 방법
= 프로그램 시나리오 =
* 프로그램을 켠다.
= 프로그램 작업현황 및 로그 기록소 =
|| 4/15 || 리스트 액티비티를 기본으로 만들고 기본 프로그램 구조를 잡음 ||
* 자바 OGG 사운드 처리 방법 생각 : http://www.gpgstudy.com/forum/viewtopic.php?t=20662
* Thumnail자동 제작해주는 API. 성능은 모르겠다 : http://code.google.com/p/thumbnailator/
IMAGE_PICK_OK(0),
누군가는 이 페이지상의 많은 조언이 "섣부른 최적화"나 마찬가지라고 비판할지도 모릅니다. 미시 최적화는 때로는 효율적인 데이터 구조와 알고리즘을 개발하는 것을 더 어렵게 만든다는 것은 사실입니다. 하지만, 핸드셋과 같은 임베디드 기기에서는 때로는 별다른 선택지가 없습니다. 예를 들어, 여러분이 데스크탑에서 개발할 때 생각하는 VM의 성능에 대한 가정을 안드로이드에도 적용한다면, 여러분은 시스템 메모리를 소진해버리는 코드를 꽤나 작성해 버리고 말 것입니다. 이것은 여러분의 애플리케이션이 바닥을 기도록 할 수 있습니다 — 시스템에서 동작하는 다른 프로그램들에게 무엇을 하는지 지켜보세요!
만약 (Foo,Bar) 튜플로 저장하는 컨테이너를 구현할 필요가 있다면, 직접 만든 (Foo,Bar) 객체의 단일 배열보다 두 개의 병렬 Foo[] 와 Bar[] 배열이 일반적으로 더욱 더 좋다는 것을 기억하십시오. (물론, 다른 코드들이 접근해야 하는 API를 설계할 때에는 예외가 있습니다; 이 경우 작은 속도 향상을 노리는 것 보다 좋은 API설계가 항상 좋습니다. 그러나 여러분의 내부 코드를 작성할 때에는 가능한 한 효율적인 코드가 되도록 해야 하겠습니다.)
여러분이 하는 일에 적합하여 HashMap사용을 선택했다면 Map으로 호출하는 것은 거의 가치가 없습니다. 코드를 리팩터링 해 주는 IDE의 가능성을 고려해 보더라도, Map으로 호출하는 것은 큰 가치가 없습니다. 여러분이 코드의 방향을 확신하지 못한다 해도 말입니다. (다시금 이지만, 공용 API는 예외입니다: 작은 성능 고려보다 좋은 API가 언제나 으뜸입니다.)
dumpItem(this.mItems[i]);
dumpItems(items[i]);
- Ant . . . . 9 matches
Platform 독립적인 Java 의 프로그램 컴파일, 배포 도구 이다. 비슷한 역할로 Unix의 make 툴과 Windows에서 프로그램 Installer 를 생각할수 있다.
make.gnumake,nmake,jam 과 같은 다른 Build 툴은 놔두고 왜 Ant 를 써야하는가에 대한 질문이다. Java 기반으로 프로그램을 짜고 컴파일 및 배포용 쉘 프로그램을 짜봤는가? 해봤다면 그것의 어려움을 잘 알것이다. 각 [OS] 마다 쉘 스크립트가 다르고 일반적으로 사용하고 있는 Unix 에는 또 각종 쉘들이 존재한다. 윈도우 쉘 또한 복잡하긴 매한가지이고 프로그램을 모두 작성하고 컴파일 및 배포 쉘 스크립트를 작성하기 위해서 이것들을 모두 작성하는것 자체가 프로그래머에게 또 하나의 고난이 아닐까 생각한다.(즉, 쉘 프로그램을 배워야 한다는 의미이다.)
Ant 는 OS Indepenent 하게 프로그램을 Build 할 수 있는 환경을 제공해준다. build.xml 이란 Build 파일을 작성해서 그 내용에 따라 Build 를 진행해 나갈 수 있다. Ant 는 ["Java"] 에서 거의 표준으로 굳혀져가고 있으며, 거의 모든 IDE들이 Ant 를 지원한다.
실행 파일 ant는 Unix 계열에서는 shell 스크립트로 Windows 계열에서는 ant.bat 라는 배치파일로 배포됩니다. 내부에 보면 java 프로그램을 실행하는데, 다음과 같이 자신이 직접할 수도 있습니다.
기존의 Makefile 이라던지 다른 Build 툴을 보면 의존관계(Dependency)라는 것이 있을 것이다. 즉, 배포(distribute)라는 target 을 수행하기 전에 compile 이라는 target 을 먼저 수행해야 하는 의존 관계가 발생할 수 있을 것이다. ''target'' 에서는 이런 의존관계(dependency)를 다음과 같은 방법으로 제공한다.
- Gof/Mediator . . . . 9 matches
MediatorPattern은 객체들의 어느 집합들이 interaction하는 방법을 encapsulate하는 객체를 정의한다. Mediator는 객체들을 서로에게 명시적으로 조회하는 것을 막음으로서 loose coupling을 촉진하며, 그래서 Mediator는 여러분에게 객체들의 interactions들이 독립적으로 다양하게 해준다.
다음 interaction diagram은 객체들이 리스트박스의 선택에서 변화를 다루기 위해 협동하는 방법을 묘사하고 있다.
director가 리스트 박스와 입력 필드 사이의 조정하는 방법을 요약하자. 도구들은 서로 단지 간접적으로 director을 통해서 통신한다. 그들은 서로에 대해서 몰라야 하며, 그들 모두는 director를 알아야 한다. 게다가 행위는 한 클래스에 지역화 되어지기 때문에 행위는 클래스를 확장하거나 교체함으로써 변하거나 바꿔질 수 있다.
4. MediatorPattern은 객체가 협동하는 방법을 추상화 시킨다. Mediation를 독립적인 개념으로 만들고 하나의 객체에 캡슐화하는 것은 여러분으로 하여금 객체의 행위는 제쳐두고 그 interaction에 집중하게 해준다. 이는 객체가 시스템 내에서 어떻게 interact하는 방법을 명확히 하는데 도움을 준다.
또 다른 방법은 colleague들이 보다 더 직접으로 communication할 수 있도록 특별한 interface를 mediator에게 심는 것이다. 윈도우용 Smalltalk/V가 대표적인 형태이다. mediator와 통신을 하고자 할 때, 자신을 argument로 넘겨서 mediator가 sender가 누구인지 식별하게 한다. Sample Code는 이와 같은 방법을 사용하고 있고, Smalltalk/V의 구현은 Known Uses에서 다루기로 하겠다.
DialogDirector의 subclass들은 적절한 widget작동하기 위해서 WidgetChanged를 override해서 이용한다. widget은 자신의 referece를 WidgetChanged에 argument로서 넘겨줌으로서 어떤 widget의 상태가 바뀌었는지를 director로 하여금 알게해준다. DialogDirector의 subclass들은 CreateWidget 순수 추상 연산자를 다이얼로그에 widget들을 만들기 위해 재정의한다.
SmallTalk/V는 Pane-ViewManager 통신을 위해 event 기법을 사용하고 있다. 어떤 pane은 어떤 정보를 mediator로 부터 얻기 원하거나 어떤 의미있는 일이 발생해서 이를 mediator에게 알려주기 위해서 event를 생성한다. 하나의 event는 그 event를 식별하는 symbol을 정의한다. 그 event를 다루기 위해서 ViewManager는 pane에 method selector를 등록한다. 이 selector는 event의 handler이다. 이것은 event가 발생한 때면 언제든지 수행될 것이다.
다음 코드 인용은 ListBox가 ViewManager subclass 내에서 만들어지는 방법과 #select event를 위해 ViewManager가 event handler를 등록하는 방법을 보여주고 있다.
- Gof/Singleton . . . . 9 matches
4. 여러개의 인스턴스를 허용한다. 프로그래머의 마음에 따라 쉽게 Singleton class의 인스턴스를 하나이상을 둘 수도 있도록 할 수 있다. 게다가 어플리케이션이 사용하는 인스턴스들을 제어하기 위해 동일한 접근방법을 취할 수 있다. 단지 Singleton 인스턴스에 접근하는 것을 보장하는 operation만 수정하면 된다.
클래스를 사용하는 Client는 singleton을 Instance operation을 통해 접근한다. _instance 는 0로 초기화되고, static member function 인 Instance는 단일 인스턴스 _Instance를 리턴한다. 만일 _instance가 0인 경우 unique instance로 초기화시키면서 리턴한다. Instance는 lazy-initalization을 이용한다. (Instance operation이 최초로 호출되어전까지는 리턴할 unique instance는 생성되지 않는다.)
생성자가 protected 임을 주목하라. client 가 직접 Singleton을 인스턴스화 하려고 하면 compile-time시 에러를 발새할 것이다. 생성자를 protected 로 둠으로서 늘 단일 인스턴스로 만들어지도록 보증해준다.
* (b) 모든 singleton들이 static initialization time 대 인스턴스되기 위한 충분한 정보를 가지고 있지 않을수도 있다. singleton은 프로그램이 실행될 때 그러한 정보를 얻을 수 있다.
이러한 link-approach 방법은 link-time때 singleton class 의 선택을 고정시켜버리므로, run-time시의 singleton class의 선택을 힘들게 한다. subclass를 선택하기 위한 조건문들 (switch-case 등등)은 프로그램을 더 유연하게 할 수 있지만, 그것 또한 이용가능한 singleton class들을 묶어버리게 된다. 이 두가지의 방법 다 그다지 유연한 방법은 아니다.
registry 는 string name 과 singletons 을 mapping 한다. singleton의 instance가 필요한 경우, registry에 string name으로 해당 singleton 을 요청한다. registry는 대응하는 singleton을 찾아서 (만일 존재한다면) 리턴한다. 이러한 접근방법은 모든 가능한 Singleton class들이나 instance들을 Instance operation이 알 필요가 없도록 한다. 필요한 것은 registry에 등록될 모든 Singleton class들을 위한 일반적인 interface이다.
Register operation은 주어진 string name으로 Singleton instance를 등록한다. registry를 단순화시키기 위해 우리는 NameSingletonPair 객체의 리스트에 instance를 저장할 것이다. 각 NameSingletonPair는 name과 instance를 mapping한다. Lookup operation은 주어진 이름을 가지고 singleton을 찾는다. 우리는 다음의 코드에서 environment variable이 원하는 singleton의 이름을 명시하고 있음을 생각할 수 있다.
Smalltalk-80[Par90] 의 SingletonPattern의 예는 ChangeSet current라는 코드에 대한 change들 집합들이다. 더 적합한 예제로는 클래스들과 그들의 '''metaclass''' 간의 관계이다. metaclass는 클래스의 클래스로, 각 metaclass는 하나의 인스턴스를 가진다. metaclass들은 이름을 가지지 않지만 (그들의 단일인스턴스를 통한 간접적인 방법을 ㅔㅚ하고), 그들의 단일 인스턴스를 유지하며 일반적으로 다른 클라이언트에 의해 생성되지 않는다.
InterViews user interface toolkit[LCI+92]는 toolkit의 Session과 WidgetKit 클래스의 unique instance에 접근하지 위해 SingletonPattern을 이용한다. Session은 application의 메인 이벤트를 dispatch하는 루프를 정의하고 사용자 스타일관련 데이터베이스를 저장하고, 하나나 그 이상의 물리적 display 에 대한 연결들(connections)을 관리한다. WidgetKit은 user interface widgets의 look and feel을 정의한다. WidgetKit::instance () operation은 Session 에서 정의된 환경변수에 기반하여 특정 WidgetKit 의 subclass를 결정한다. Session의 비슷한 operation은 지원하는 display가 monochrome display인지 color display인지 결정하고 이에 따라서 singleton 인 Session instance를 설정한다.
- MoreMFC . . . . 9 matches
언제나 그렇듯, Window programming을 할때 처음 등장하는 예제는. Hello~ 시리즈다. 그 source를 통해 MFC프로그램에 첫발을 디딜것이며.. 요책에 나온 윈도우의 이모저모에 관해 설명할것이다. 뭐 .. 대충대충 해나갈 것이지만.. 그럼.. windows programming의 세계로. gogogo -- v [[BR]][[BR]]
dos 시절의 절차식 프로그램의 습관에 젖은 프로그래머를 위해 이책도 역시 아주잘 윈도우 프로그래밍이 어떻게 다른지 설명해 준다. 그러나, 그걸 다시 다 설명할 필요는 없고.. 떡하니 그림 한장이면 다 설명 될것 같다. 그럼.. image! [[BR]]
int WINAPI WndProc (HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
// WM_QUIT message가 발생하면 GetMessage가 0을 반환하여 프로그램 종료.
// 프로그램을 초기화 할수 있는 가장 적절한 장소. --a
떡하니 source를 보면 어떻게 돌아가는 거야.. --; 라는 생각이 든다.. 나도 잘모른다. 그런데 가장 중요한것은 global영역에 myApp라는 변수가 선언되어 있다는 사실이다. myApp 라는 instance가 이 프로그램의 instance이다. --a (최초의 프로그램으로 인스턴스화..) 그리고, CWinApp를 상속한 CMyApp에 있는 유일한 함수 initInstance 에서 실제 window를 만들어준다.(InitInstance함수는 응용 프로그램이 처음 생길 때, 곡 window가 생성되기전, 응용 프로그램이 시작한 바로 다음에 호출된다) 이 부분에서 CMainWindow의 instance를 만들어 멤버 변수인 m_pMainWnd로 pointing한다. 이제 window는 생성 되었다. 그렇지만, 기억해야 할 것이 아직 window는 보이지 않는다는 사실이다. 그래서, CMainWindow의 pointer(m_pMainWindow)를 통해서 ShowWindow와 UpdateWindow를 호출해 준다. 그리고 TRUE를 return 함으로써 다음 작업으로 진행 할 수 있게 해준다.... 흘. 영서라 뭔소린지 하나도 모르겠네~ 캬캬.. ''' to be continue..'''[[BR]]
그리고, 그 다음으로 진행되는 것이. CMainWindow에 있는 OnPaint라는 함수. window의 client 영역에 무언가를 그리는 함수가 호출된다. (그 전에 이것 저것 많이 있겠지만... 뭐 매크로를 통해 messagemap 관련 entry라던지.. 이런것들을 선언해 주는 작업.. --a) 그래서, DrawText를 이용해 화면 중앙에 "Hello, MFC"를 그린다. 그러면 이 프로그램의 기능(?)은 끝이다.[[BR]]
- Plugin/Chrome/네이버사전 . . . . 9 matches
= 프로그램 목적 =
= 프로그램 일지 =
크롬의 개발자 API주소는 지금 사이트 이전을 하고있는데 맨앞에 code가 developer로 이전하는것 같았다. 여튼 index의 주소는 다음과 같다.
'''Chrome브라우저에서 환경설정(우측상단에 렌치모양) -> 도구 -> 확장프로그램 -> 우측상단 개발자 모드 Check -> 압축해제된 확장프로그램 로드''' 를 하면 내 컴퓨터에 있는 플러그인 폴더 째로 올릴수 있다.
Ajax는 비동기식으로 데이터를 주고받기 위해 (A는 Asyncronous) HTML과 CSS 동적 정보 표시를 위한 동적 언어와 DOM문서형 구조를 가진 XML, json만이 Ajax를 뜻하는 것이 아니라 이런 조합으로 이루어진 비동기 웹 어플리케이션 기법을 뜻한다.
"http://api.flickr.com/services/rest/?" +
"api_key=90485e931f687a9b9c2a66bf58a3861a&" +
// See: http://www.flickr.com/services/api/misc.urls.html
"http://api.flickr.com/"
"name" : "BrowsingData API: Basics",
- PracticeNewProgrammingLanguage . . . . 9 matches
즉!!! 이것만 해보면 이 언어로 프로젝트를 진행할 만하다 싶을 정도의 레벨을 만들기위한 프로그램 작성.
2. 스트링 입력 : 사용자의 키보드 입력을 통해 문자열을 입력받아 다시 출력하는 프로그램을 작성하시오.
3. 구구단 출력 : 입력으로 임의의 자연수를 입력받아 구구단을 출력할 수 있도록 프로그램을 작성하라.
4. quick_sort : 임의의 데이터의 집합을 quick_sort 방식으로 소팅하는 프로그램을 작성하라.
5. 파일 복사 : 임의 파일을 단순 복사하는 프로그램을 작성하시오.
6. 스트링 검색 : 특정 텍스트 파일을 열고, 사용자가 입력한 스트링을 검색할 수 있는 프로그램을 작성하라.
7. 2인 오목 작성 : 언어의 기능을 최대한 이용한 오목을 작성한다. (텍스트, 그래픽 무관)
1. HelloWorld 소켓 : 소켓(유사한 기능)을 이용하여 프로그램내에서 지정된 문자열을 교환하는 서버, 클라이언트를 작성하시오.
2. 쓰레드 생성 : 2개 이상의 쓰레드를 생성하여 동기화 문제를 해결한 1~500까지의 합을 구하는 프로그램을 작성하시오.
- RandomWalk2 . . . . 9 matches
이 페이지에 있는 활동들은 프로그래밍과 디자인에 대해 생각해 볼 수 있는 교육 프로그램이다. 모든 활동을 끝내기까지 사람에 따라 하루에서 삼사일이 걸릴 수도 있다. 하지만 여기서 얻는 이득은 앞으로 몇 년도 넘게 지속될 것이다. 문제를 풀 때는 혼자서 하거나, 그게 어렵다면 둘이서 PairProgramming을 해도 좋다.
다음은 이상의 요구조건을 만족하는 프로그램 개발이 완료되었을 경우만 본다.
대부분의 프로그래밍 문제나, 경시대회 문제는 한번 주어진 문제에 한번 대응하면 그걸로 끝난다. 하지만 현실은 그렇지 못하다. 한번 개발한 프로그램을 요구사항 추가/변경에 따라 몇 번이고 수정하고 다시 개발해야 할 때도 있다. 우리가 말하는 문제풀이 능력에는 이미 만든 프로그램을 유지보수하는 작업도 포함되어야 한다.
교육에 있어 이런 작업이 중요한 이유 중 하나는, 자신이 만든 프로그램이 해답을 제대로 내느냐는 것을 확인하는 데에는 한 문제를 한번 푸는 것으로 족하지만, 거기서 코드의 디자인 질을 확인할 수가 없다는 문제가 있기 때문이다. 하지만, 요구사항 변경에 따라 자신이 개발한 프로그램을 다시 수정하게 되면, 이전에 만든 코드의 질에 따라 그 노력에 현격한 차이가 난다. 디자인 질이 높으면 아주 짧은 시간 안에 간단하게 요구사항 변화에 대응할 수 있을 것이고, 질이 낮았다면 장기간에 걸쳐 여기저기를 들쑤시고 골치를 썩혀야 할 것이다.
내 프로그램을, 또 그 진화의 과정을 남에게 보여주고 의견을 들어보라.
최초의 요구사항 제시 이후에 나온 변경사항들이 따라오지 않을 것이라 가정하고, 만약 이 RandomWalk2 문제를 다시 접했다면 어떻게 접근하겠는가. 어떤 과정을 거쳐서 어떤 프로그램을 개발하겠는가?
다른 프로그램이 나오는가? 시간은 얼마나 덜/더 걸리는가? 디자인은 어떻게 달라졌는가?
- STLErrorDecryptor . . . . 9 matches
가) 여느 개발도구와 마찬가지로 VC의 IDE는 그 자체에 빌드용 장치(컴파일러와 링커)를 내장하고 있지 않고, 외부에 있는 컴파일러와 링커를 실행해서 프로그램을 빌드합니다. 컴파일러와 링커의 출력 결과는 실제로 콘솔로 빠져 나오는 출력이지만, 네임드 파이프(named pipe)란 것을 통해 VC의 IDE로 다시 들어가 '''출력(output)''' 윈도우에 디스플레이되는 것입니다.
컴파일을 맡은 프로그램은 CL.EXE란 것인데, 이 프로그램은 C/C++컴파일러(C2.DLL+C1XX.DLL)를 내부적으로 실행시키는 프론트엔드의 역할만을 맡습니다. VC IDE는 컴파일시 이 프로그램을 사용하도록 내정되어 있습니다.
* CL2.EXE가 내는 컴파일 결과를 에러 필터 스크립트에 파이프(pipe)를 통해 통과시킴
= 필요한 프로그램과 도구를 받아서 준비하기 =
프록시 CL의 에러 필터링을 활성화하거나 비활성화하는 역할을 맡은 프로그램인 STLtask.exe를 실행시켜 태스크바에 띄우는 과정입니다.
가) VC++를 실행시키고, 아래와 같이 프로그램을 써 봅시다.
- 고슴도치의 사진 마을처음화면 . . . . 9 matches
▶Hobby : Taking a picture
▷Phillippines tour
=== Picture Gallery ===
|| [Picture Link] ||
[몬테카를로법]
[몬테카를로 법을 이용한 pi 구하기 프로그램]
- 데블스캠프2010/셋째날/후기 . . . . 9 matches
* simulation을 통해서 나의 학습 방법을 관찰자가 객관적으로 얘기해주어서 나의 학습 성향에 대해서 알게 되었다. 그리고 팀으로 학습을 하면서 실제로 팀플할 때의 발생할 수 있는 문제점들을 미리 체험해 볼 수 있어서 좋았다. 선배님의 말씀을 통해서 많이 알게 된게 있는데 룰은 얼마든지 바꿀 수 있다는 것에 대해 많이 깨달은 것 같다. 사실 어떤 룰이 정해져 있으면 그 틀에서만 생각하고 활동 했기 때문에 이번 세미나를 통해서 많은 생각이 들었다. 앞으로도 많은 일을 하겠지만 그 때마다 오늘의 simulation을 생각해 보면서 생각의 폭을 넓히고 좀더 유동적이고 능동적으로 해야겠다. [박재홍]
눈치가 별로 없어서인지 팀원들 개개인의 표정을 읽기가 힘들었는데, 이런 것도 향상시킬 수 있는 방법을 찾아봐야겠습니다. 정말 유익하고 좋았던 시간이었습니다. 그리고 4시까지 였는데 시간 더 내주셔서 감사합니다 김창준 선배님 ^^ - [박성현]
* 파이썬의 기본적인 사용법을 배웠습니다. 그림을 그리는 코딩을 하면서 파이썬이 정말 재미있다고 생각하게 되었습니다. 기회가 된다면 따로 공부하고 싶네요~ [김준영]
* python 을 이름만 들어봤는데 이렇게 직접 해보니 정말 재미있었던 시간이었습니다. turtle함수를 이용한 그림그리기 프로그램을 해보니 파이썬에 대한 흥미가 들었습니다. 앞으로 파이썬에데해서 많은 관심을 가지게된 계기가 된것 같습니다. - [양아석]
* 디버거를 통한 프로그램의 패스워드 알아내기가 정말 인상적이었습니다. 그리고 가상화를 통해 조금더 편리한 프로그램 실행을 추구한다는것도 잘알게되었습니다. 윤종하 ㅈㅈ.. - [양아석]
* 리버스 엔지니어링 흥미롭네요. 예전에 리버스 엔지니어링이 뭔지 궁금해서 한번 해보려고 했었는데, 어셈블리언어를 몰라서 GG 쳤던 기억이 있었는데... ㅋㅋ 오늘 보니까 어셈블리언어를 배워서 그런지 이해가 되더라고요 -_-ㅋㅋㅋ 그리고 Decompiler 부분도 흥미로웠습니다. "아니 어떤 원리로 소스를 복원시킨거죠?" 라고 물어보고 싶었어요. 그리고 가상화에 대한 내용도 좋았습니다. 가상화의 개념과 하는 이유에 대해서 잘 알 수 있었습니다. 가상화 참 안 쉽죠잉? - [박성현]
* Decompiler 신기하다... 어떻게 하는 거지 그런 건 ㅋㅋㅋ 리버스 엔지니어링은 왠지 근성이 필요할 거 같은 느낌.. 어려울 수 있겠지만 재학생들은 가상화에 대한 얘기를 더 들었어도 괜찮았을 거 같은데 약간 아쉽다 ㅋㅋ 언제 세미나로 해줘~ - [김수경]
- 데블스캠프계획백업 . . . . 9 matches
* 우선 신입생들이 직접 프로그램에 고민을 많이 하게 했으면 합니다. 기술적인 것보다는 알고리즘을 스스로 생각하게 하는 것을 우선적으로 많이 하게 했으면 합니다. 그리고 전에 창준 선배님이 가르쳐 주신 페어 프로그래밍 방식도 한 번 해 보는 것도 괜찮을 듯 합니다. 구체적인 모습은 저도 좀 생각 하고 다시 쓰겠습니다. 마지막으로 개인적인 이야기지만 작년에 ["데블스캠프"]를 하며 일주일 동안에 정말 많은 걸 배우고 느꼈습니다. 그것을 후배들도 느끼게 했으면 좋겠습니다...^^ --재동
* 솔직히 저는 ["PairProgramming"]의 장점을 모르겠습니다. 같이 프로그래밍을 하면서 다른 사람의 프로그래밍 기술을 습득하는것이 장점인지 아니면 프로그램의 개발 속도 향상을 하는것이 장점인지 .. 아마도 둘다 장점이 되겠지요. 하지만 ["PairProgramming"]의 목적은 둘중에 개발 속도 향상에 중점을 두고 있다고 생각하네요. 다른 사람의 프로그래밍 기술의 습득은 부가적인 것이구요. 후배들에게 하는 세미나는 개발을 위한게 아니고 실력 향상을 위한 것인데 제가 보기에는 ["PairProgramming"]을 해서 얻는 기술보다는 기존의 방법들이 훨씬더 효과적일거라고 생각하네요. 그들 자신이 이 문제를 어떻게 해결해야 할 것인가에 대한 고민을 하고 자신의 생각을 코드로 표현할 수 있는 능력을 기르는 것. 문제 해결의 해법을 어느정도 찾을 수 있고 자신의 생각을 코드로 표현 할 수 있으며 타인의 코드를 완벽하게는 아니더라도 어느정도 이해 할 수 있는 수준이 된 사람이라면 ["PairProgramming"]으로 얻을 수 있는 기술들은 많을거라 생각하지만 전혀 그렇지 않는 신입생들에게는 무리일거 같군요. -태호-
* 작년엔 선배들이 1학년들할 때 지켜보면서 많은 도움을 주셨습니다. 이번에는 어떻게 할까요. 참. 작년엔 선배들이 각각 파트를 나눠서 세미나를 했습니다. 그리고 이번 회의때는 캠프기간에 무엇을 다루었으면 하는지도 있었으면 합니다. 방법 못지 않게 중요한 것이 '무엇을' 이니까요. 작년엔 HTML, C/C++, API, MFC 등을 했습니다. 물론 API, MFC 는 맛봬기였구요. 자료구조도 다루었습니다. --창섭
* 기존 방식대로.. 위에서 말하는 방식들은 어느정도 프로그래밍에 기초가 다져진 사람들에게 적합할듯.(신입생들의 실력이 어느정도일지는 모르지만 구구단도 제대로 못짤것 같음.) 기존의 방식은 아직 프로그래밍의 기초가 없는 사람들을 대상으로 성공적이었으므로. 그리고 몇년의 시행착오를 거쳐서 굳어진 방법이므로 . 새로운 방법을 도입한다면 해왔던 만큼의 시행착오를 해야 하므로 후배들이 얻을수 있는 것들에 대한 확신을 못함. --태호형
* 변화를 두려워 하지는 않지만 무턱대고 마구 바꿔대면 망할수 있다는것은 감안해야 할겁니다. 마찬가지로 NoSmok:ApprenticeShip 모델이 어떤걸 말하는지 알지는 못하네요. 당연히 당사자가 세미나는 어떻게 할것인가 등등은 당사자들이 정해야 할 문제이고 어쩌면 제가 그 당사자중 하나가 되어 버릴지도 모르겠네요. 저역시 기존의 ["데블스캠프"]( 실제로는 데블스가 신입회원을 뽑을때 썼던 방법입니다. 95년에 시작했으니 벌써 8년째를 접어드는군요..) 를 여러차례 해왔고 기존 방법의 장점을 누구보다 잘 피부로 느끼고 있습니다.위에서 간략하게 설명해 놓은 내용을 볼때 기존의 방식이 위에서 제시한 방법보다 훨씬 효과적이라고 장담할 수 있습니다. 그건 수년간 기존의 방법을 수행해온 경험자로써의 확신입니다. -태호-
* 제 생각에는 꼭 한가지 방법을 모든 신입 회원들에게 적용할 이유는 없다고 생각합니다. 아직 기초가 부족하다 싶은 회원, 좀 프로그래밍에 익숙하다 싶은 회원을 각자 다른 방법으로 캠프를 진행해도 괜찮다고 생각합니다. (작년에 MFC스터디 벽돌깨기팀과 오목짜기 팀처럼 익숙한 정도에 따라 방법을 나누는 거죠..) - 상협
* 학교를 다니면서 혼자서는 거의 공부하지 않을만한, 그러나 중요한 것들(see also FocusOnFundamentals). 앞으로 학교생활에서 체험하기 힘든 것들. 학교를 졸업할 때까지 유효한 지식으로 남아있을만한 생명력이 긴 것들. 학교생활 동안 공부, 프로그래밍에 영향을 많이 끼칠 메타 수준이 높고 늘상 하는 것들. 사고하는 방법. 프로그램을 만드는 방법. 아마추어 아이디어 맨은 "아이디어"를 만들고, 프로 아이디어 맨은 "아이디어를 대량으로 생성해 낼 수 있는 구조와 과정"을 만들어 낸다고 합니다 -- 프로가 만든 아이디어는 엄청난 양의 아이디어를 자동 생산해 냅니다. 제가 학교를 다닐 때 "프로그램을 생성해 낼 수 있는 구조와 과정"을 선배에게서 배웠더라면 얼마나 좋았을까 하는 생각을 자주 합니다. 예를 들어, 이메일 주소를 찾는 RE를 "답"으로서 가르치거나, 혹은 무작정 시행착오를 거치면서 그 답을 찾으라고 종용하거나 하는 것보다는, 그런 RE를 효율적이고 손쉽게 생성해 낼 수 있는 과정과 인식적 도구를 가르쳤으면 합니다. --JuNe
- 새싹교실/2011/데미안반 . . . . 9 matches
* 프로그램 완성과정
* A언어 : ALGOL을 말합니다. 고급 프로그래밍 언어(어셈블리나 기계어를 저급 프로그래밍 언어라고 합니다)로 각광받던 포트란ForTran에 대항하기 위해 유럽을 중심으로 개발된 프로그래밍 언어입니다. ALGOL은 Algorithm Language의 약자로서, 이름 그대로 알고리즘 연구개발을 위해 만들어졌습니다. 하지만 ALGOL은 특정한 프로그래밍 언어를 지칭하기 보다는 C언어나 파스칼과 같이 구조화된 프로그래밍 언어를 지칭하는 말(ALGOL-like programming language)로 쓰입니다. [http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=68855131&qb=Q+yWuOyWtCBC7Ja47Ja0IEHslrjslrQ=&enc=utf8§ion=kin&rank=1&search_sort=0&spq=0&pid=ghtBIz331ywssZ%2BbORVssv--324794&sid=TYBj6x1TgE0AAE@GUeM 출처 링크! 클릭하세요:)]
* 메모장으로 열어서 글이 깨졌어요 ㅠㅠ 연결프로그램을 Visual Studio로 하면 번역이 정상적으로 되어있을거에요. 숫자가 010100 하면 너무 길어서 16진수로 표현이 되어있는듯 합니다.
*[http://ko.wikipedia.org/wiki/2%EC%9D%98_%EB%B3%B4%EC%88%98 2의 보수]에 2의 보수에 대한 설명이 있습니다. 왜 0000 0010 의 음수 형태를 1000 0010 으로 하지 않고, 2의 보수 형태인 1111 1110 을 사용했냐! 이건 컴퓨터가 음수와 양수를 이용한 계산을 편리하게 하기 위해 그런듯합니다. 2-2를 우리야 바로 0이라고 계산할 수 있지만, 컴퓨터는 2+(-2)형태로 바꿔서 0000 0010 과 1111 1110을 더해 0000 0000 이 나오게 합니다. '''컴퓨터에서 가산기를 사용하여 뺄셈을 하기 위해 음수의 표현으로 자주 사용된다'''라고 사전에 나오네요ㅠㅠㅋ
알 수 있었어요. 또 int, char 등의 의미와 역활에 대해 알 수 있었습니다. 오늘 전산처리기와 자료형에 대해 배웠으니 다음은 본격적으로 프로그램을 짜는것을 배우겠다.^^
그리고 자료형의 실수형/정수형 등등의 표현법을 배웠습니다. 평소 취약하던 부분이었는데 오늘 해결될 수 있었습니다.
* [박성국] - ^srand 와 rand를 배워 랜덤값을 만드는 방법을 배웠고 그것으로 up down 게임을 만드는 유익한 시간이었습니다.^
*실습(2): 문자열을 입력 받는다. 입력 받은 문자열을 구성하고 있는 문자 중에서 아스키코드 값이 가장 큰 문자를 찾아서 출력하는 프로그램을 구현해보자.
* [강소현] - 다차원 배열의 선언 및 초기화와 2차원 배열을 이용한 행렬 계산을 실습항였습니다. 이후에 sort와 search 부분도 나가려 하였으나...올 해는 꼭 티셔츠를 받고 말겠다!라는 의욕으로 함께 줄 서서 기다렸습니다 /ㅁ/ 아 줄이 안끊겨서 다행이에요ㅎㅎ
- 서지혜 . . . . 9 matches
1. 나를 위한 프로그램
* 신선한 동네 API사용
* Apache Hadoop 기반 대용량 분산 처리 및 마이닝 알고리즘(MapReduce를 이용한 ETL) 구현하기
1. 컴파일러 스터디: [NewCompileError]
1. 컴파일러 스터디: [NewCompileError]
* 사이냅 소프트의 신입사원 채용 테스트 프로그램을 해볼 예정
* 그러나 위의 두 방법으로는 '3-2-1' 식을 평가할 수가 없었다(0이 아니라 2가 나옴). 멘붕을 겪고 연산자가 -이면 바로 뒤의 숫자를 음수로 만들고 -연산자는 +로 변환. 이라는 방법을 사용했다.
* hadoop MapReduce를 이용한 ETL모듈
* hadoop MapReduce를 이용한 CF알고리즘, UI : ExtJS 4.0, 검색 : Lucene, 데이터 저장 : MySQL, Hibernate
* 코드 저장소 : [http://dev.naver.com/projects/hapist]
- 전시회 . . . . 9 matches
* 출석 프로그램의 경우 이름순 정렬이 되지 않는다.
* 3D지형 프로그램의 경우 지형의 끝에 도달할 경우에도 계속 전진이 가능하다.(좌표의 증가)
* 이퀄라이져 프로그램의 경우 마이크를 끈 상태에도 이퀄라이져가 움직인다.
* 화상 채팅 프로그램의 접속 불가.
* 설명해주는 오퍼레이터가 프로그램을 잘 모른다. 프로그램 개발자가 직접 오면 좋지만, 그렇지 못한 경우 좀더 상세한 설명이 있으면 좋았을 듯 하다.
* 3D지형 프로그램의 효과를 볼 수 있게 비교했으면 좋았을텐데...
이름 자체가 fast인 만큼. 다른 프로그램보다 빠르다는 것을 비교해서 보여주면 좋겠죠 --[강희경]
프로그램의 성능을 볼수가 없었죠 3.9기가 씨피유에 지포스2 에서 그 정도 화면이 끊긴다면 그게 더 이상한 ~_~ --[김홍선]
- 조현태/놀이/네모로직풀기 . . . . 9 matches
그냥 대신해줄 프로그램이 필요해서 만들기 시작..
어느정도 완성상태, 대부분의 네모로직을 풀어 낼 수 있으나, 워낙 초창기에 만든 프로그램이라 문제가 많다.OTL
언젠가 시간이 남게 된다면 재구성 할 생각이다... 이프로그램 때문에 중간고사를 날려먹은 아픈 경험이 있다.
오 로직.. 중학교때 많이 하던건데.. 프로그램으로도 짤 수 있어?? --아영
└지금 짜놓은 프로그램은 실행하면 스스로 로직을 푸는 프로그램이야. 이미 짰으니, 프로그램으로도 짤 수 있는 거겠지.^^ - [조현태]
아! 문제가 있는걸 , 너가 프로그램으로 푼것이구나.. 이렇게 이용 할 수도 있구나.. 많이 배운다 현태! ㅋ - [허아영]
└사람이 풀게하는 프로그램이야 많으니까.. 같은거 만들어도 별로 안멋지다고..ㅠ.ㅜ - [조현태]
- 피보나치/김준석 . . . . 9 matches
잠깐.. int pivo(present,next,p_num,num) <- 여기 변수들 앞에 int 붙여야 되는거 아닌가;;?
/*밑에 pivo함수를 만들어놨기 때문에 우선 여기서
pivo라는 함수가 있다고 정의*/
void pivo();
/*pivo(첫번째,두번째,재귀함수에 필요한 감소변수,몇번째구하기에 쓸 변수)*/
pivo(num1,num2,count,count);
int pivo(int present,int next,int p_num,int num){
pivo(next,present+next,p_num,num);
- 02_C++세미나 . . . . 8 matches
z1.MP=false; // 질롯은 마법을 못쓴다.
// 1에서 100까지 합을 구하는 프로그램
// 1에서 100까지 합을 구하는 프로그램
int* pi;
int * pi;
(int *) pi; /* 이런 식으로 사용하면 좀더 명확하다. 정수의 포인터라는. */
이와같이 함수 호출에서 주소를 사용해 전달 인자를 넘겨주는 방법을
이것은 포인터 말고 '''참조''' 라는 것이 있는데, 이 참조를 이용한 방법이므로 참조를 설명할때 하도록 하겠다.
- Athena . . . . 8 matches
* 상수를 이용한 영상 밝기 변화 (1시간 20분) - 명훈, 재동
* 상수를 이용한 영상 밝기 변화 다이얼로그 작성(20분) - 명훈
* 영상을 이용한 영상 밝기 변화 다이얼로그 작성(3시간) - 명훈
(영상을 이용한 변환에서 0이 있는 영상의 경우 나눗셈할수 없음. 1로 나눌때랑 같게 했음)
* 영상을 이용한 변환에서 버그 수정(30분) - 명훈
* 4.1 상수를 이용한 영상 밝기 변화
* 4.2 다른 영상을 이용한 영상변화
* 5.7 Clipping
- EightQueenProblem2 . . . . 8 matches
EightQueenProblem을 해결하신 것을 축하드립니다. EightQueenProblem 페이지에 개발 시간과 소스 라인 수 등을 기록하셨나요? 사실 문제는 하나가 더 있습니다. 대부분의 프로그래밍 숙제/대회는 코드의 디자인은 잘 따지지 않습니다. 하지만 실세계의 문제에서는 코드의 적응도(adaptability)가 매우 중요한 요소가 됩니다. 자신이 작성한 프로그램이 얼마나 새로운 요구사항에 잘 적응을 하는지를 보면, 자신이 얼마나 디자인을 제대로 혹은 엉망으로 했는지 알 수 있습니다. 디자인 질에 대한 바로미터가 되는 것이죠.
새 문제는 다음과 같습니다. 자신이 작성한 프로그램을 수정을 해서, EightQueenProblem의 일반적인 문제를 푸는 것입니다. 즉, 8X8에서 8개의 여왕을 배치하는 서로 다른 모든 해법(총 92가지)을 구하는 것입니다.
EightQueenProblem에서와 마찬가지로 프로그램 작성 후에 다음 칸을 채워주세요.
''"소스수정 없음"은 잘 이해가 되지 않습니다. 첫번째와 두번째의 요구사항, 즉 기대하는 결과가 다르다는 점을 생각할 때 프로그램이 조금이라도 달라져야 합니다. 분명 처음에는 모든 해를 구하라는 요구조건이 없었는데 그렇게 했다면 당시로서는 그건 YAGNI(You Aren't Gonna Need It)이거나 혹은 고객이 원하지 않는 프로그램 아닐까요?''
만약 이 모든 것을 완료했고, 뭔가 더 도전할 것을 찾는다면, N-Queens Problem을 풀면 됩니다. (요구사항의 또 다른 변화! :( ) NXN 체스판에서 N개의 여왕을 배치하는 프로그램이 되도록 수정하는 겁니다.
DeleteMe) 처음부터 랜덤으로 나올수 있게 구현했는데 92가지의 방법을 모두 출력해야 하나요?
''네. 만약 그렇게 되도록 프로그램을 수정하는데 어려움이 있거나 시간이 많이 걸린다면 처음 디자인이 그다지 적응도가 높지 못했다는 반증일 수 있겠죠.''
- FortuneCookies . . . . 8 matches
* You attempt things that you do not even plan because of your extreme stupidity.
* Stop searching forever. Happiness is just next to you.
* Stop searching forever. Happiness is unattainable.
* Mistakes are oft the stepping stones to failure.
* Men seldom show dimples to girls who have pimples.
* Domestic happiness and faithful friends.
* Don't be overly suspicious where it's not warranted.
* True happiness will be found only in true love.
- HardcoreCppStudy/첫숙제/ValueVsReference/변준원 . . . . 8 matches
함수를 호출하는 프로그램의 실 인수 값을 호출된 함수의 형식 인수에 복사해서 다른 지역 변수들과 동일하게 취급.
함수란 자료에 동작을 가하고 값을 반환하는 부 프로그램으로 C++프로그램에서 빠지질 수 없는 함수가
정의,선언,호출이 엄격히 구분되며 Compiler에 의해 처리되어 object file을 만들며 분할 Pro
매크로 함수의 특성을 갖지만 compiler에 의해 처리되며 일반함수와 동일한 매개변수 전달 방
법을 취합니다.
포함하여 프로그램내 어디서나 사용이 가능합니다. 이에 반해 지역변수는 함수몸체 안에서 선언하는데 이
이제 함수의 매개변수 전달방법을 알아봅시다.
- HowToStudyDataStructureAndAlgorithms . . . . 8 matches
자료구조는 일단 1. 각각의 자료구조들의 특징을 이해하고. 2. 실제의 구현법을 익히며 (뭐.요새는 collection library들을 제공하므로 직접구현할 일이 줄어들었긴 했지만. 그래도 여전히 기초가 됨) 3. 해당 문제상황에 적절한 자료구조를 선택할 수 있는 눈을 다듬어야 함. --석천
우리는 알고리즘 카탈로그를 배운다. 이미 그러한 해법이 존재하고, 그것이 최고이며, 따라서 그것을 달달 외우고 이해해야 한다. 좀 똑똑한 친구들은 종종, "이야 이거 정말 기가막힌 해법이군!"하는 감탄을 외칠지도 모른다. 대부분의 나머지 학생들은 그 해법을 이해하려고 머리를 쥐어짜고 한참을 씨름한 후에야 어렴풋이 왜 이 해법이 그 문제를 해결하는지 납득하게 된다. 그리고는 그 "증명"은 책 속에 덮어두고 까맣게 사라져버린다. 앞으로는 그냥 "사용"하면 되는 것이다. 더 많은 대다수의 학생은 이 과정이 무의미하다는 것을 알기 때문에 왜 이 해법이 이 문제를 문제없이 해결하는지의 증명은 간단히 건너뛰기를 한다.
교육은 물고기를 잡는 방법을 가르쳐주어야 한다. 어떤 알고리즘을 배운다면, 그 알고리즘을 고안해 낸 사람이 어떤 사고의 과정을 거쳐서 그 해법에 도달했는지를 구경할 수 있어야 하고, 학생은 각자 스스로만의 해법을 차근 차근 "구성"(construct)할 수 있어야 한다(이를 교육철학에서 구성주의라고 하는데, 레고의 아버지이고 마빈 민스키와 함께 MIT 미디어랩의 선구자인 세이머 페퍼트 박사가 주창했다). 전문가가 하는 것을 배우지 말고, 그들이 어떻게 전문가가 되었는가를 배우고 흉내내라.
왜 우리는 학교에서 "프로그래밍을 하는 과정"이나 "디자인 과정"을 배운 적이 없을까? 왜 해답에 이르는 과정을 가르쳐주는 사람이 없나? 우리가 보는 것은 모조리 종적 상태의 결과물로서의 프로그램 뿐이다. 교수가 어떤 알고리즘 문제의 해답을 가르칠 때, "교수님, 교수님께서는 어떤 사고의 과정을 거쳐, 그리고 어떤 디자인 과정과 프로그래밍 과정을 거쳐서 그 프로그램을 만드셨습니까?"라고 물어보자. 만약 여기에 어떤 체계적인 답변도 할 수 없는 사람이라면, 그 사람은 자신의 사고에 대해 사고해 본 적이 없거나, 문제 해결에 어떤 효율적 체계를 갖추지 못한 사람이며, 따라서 아직 남을 가르칠 준비가 되어있지 않은 사람이다. --김창준
알고리즘을 공부하면 큰 줄기들을 알아야 합니다. 개별 테크닉들도 중요하지만 "패러다임"이라고 할만한 것들을 알아야 합니다. 그래야 알고리즘을 상황에 맞게 마음대로 응용할 수 있습니다. 또, 자신만의 분류법을 만들어야 합니다. (see also HowToReadIt Build Your Own Taxonomy) 구체적인 문제들을 케이스 바이 케이스로 여럿 접하는 동안 그냥 지나쳐 버리면 개별자는 영원히 개별자로 남을 뿐입니다. 비슷한 문제들을 서로 묶어서 일반화를 해야 합니다. (see also DoItAgainToLearn)
자료구조와 알고리즘은 프로그램을 만드는 데 있어서 중요하다고 생각합니다. 남이 만든 자료구조와 알고리즘을 이용하는데 그치지 말고 스스로 생각하여 만드는 경지에 오르면 좋겠습니다. -[강희경]
- Linux/배포판 . . . . 8 matches
추가)요즘엔 CD안에 Linux 를 넣어버린 LiveCD라는 형태도 나온다.Knoppix, UbuntuLiveCD 등등 개인이 만들어서 배포하는 경우도 많다.
사실상 리눅스의 다양한 프로그램들을 개인이 따로 관리한다는 것은 굉장히 어렵다. 패키지가 정적인 형태가 아니라 리눅스는 지속적인 엡데이트를 하는데, 통일된 방식으로 관리를 해준지 않으면 나중엔 어떤 프로그램을 어디에 깔았는지 조차 알기힘들어진다. (대략 도스시절 컴퓨터에 프로그램을 마구잡이로 까는 사람을 생각해보면 알듯.. -_-;) 이런 이유로 매키지 매니저라는 것을 사용하고 잇으며, 패키지 매니저는 상기와 같은 일들을 자동화된 방식으로 제공한다.''
국내의 배포판은 대부분 레드햇의 패키지 방식인 RPM(Redhat Package Manager)를 채용한다. RPM의 경우 단일 패키지르 중심으로하는 경향이 강하고 의존성에 상당히 관대한 패키지 방식으로 알려져있다. ''(데비안유저인 관계로 잘모른다.)'' 알려진 바로는 느슨한 패키지 의존성때문에 처음에는 편하지만 나중에 엉켜있는 패키지를 관리하기가 좀 까다롭다는 의견도 많다. 레드햇 리눅스는 현재 공개방식으로 배포되지 않는다. 기업용 혹은 웍스테이션을 위한 돈주고 파는 버전만 존재한다. 대신에 레드햇사는 페도라라는 리눅스 배포판을 지원하고 있으며, 레드햇의 사이트를 통해서 배포가 이루어진다. 대부분의 패키지가 CD안에 통합되어 있으며, 대략 최신 패키지 들이 패키징되어있다. (050626 현재 페도라4가 얼마전에 발표되었다 4+1CD) 페도라 리눅스는 레드햇의 불안정판 정도라고 생각하면 되고, 실제로 최신의 패키지들로 묶어서 내놓고 잇다. 페도라에서 얻어진 피드백을 통해서 레드햇에 반영하고 이로부터 안정적인 리눅스 서버 OS를 발표한다. ''ps) 의존성? 리눅스의 각패키지는 각기 다른 프로젝트로 진행되어 만들어진 것들을 다시 사용하는 경우가 많다. 따라서 각기 독립적인 패키지 만으로는 프로그램이 실행이 안되어 경우가 있는제 이런 경우 의존성이 있다고 말한다.''
관련 배포판) [http://www.ubuntulinux.org UbuntuLinux], [http://www.knoppix.org/ KnoppixLiveLinux], [http://www.userlinux.com/ UserLinux]
리눅스를 처음 시작하면서 어떤 배포판을 선택하는 지는 중요하다. 같은 리눅스이기는 하지만 사실 대부분의 리눅서들은 패키지 매니저를 이용하여 프로그램을 설치하는 편이지, 자신이 원하는 버전이 패키지 트리에 없다던가 버그가 있는 경우를 제외하면 직접 제작사 홈페이지에서 바이너리를 설치하는 경우는 거의 없다. 이럴때 동일한 패키지를 쓰는 사람한테 묻기가 편하고 이해하기가 편하기 대문이다. 2005년 현재 리눅스를 시작한다면 현시점에서는 [http://www.ubuntulinux.org/ Ubuntu]를 가지고 시작해서 [http://www.debian.org Debian] 으로 옮겨가길 권한다. 동일한 패키징 방식을 가지고 있으면서 우분투는 데스크탑 리눅스를 표방하고 있는 만큼 다루기가 쉽기 때문이다. 우분투에서 기본을 익히고 직접 서버를 운영하는 수준으로 올라가면 데비안으로 옮겨가면 배포판을 바꾸는데에 대한 부담을 전혀 느낄 필요가 없다. 나의 경우 대략 2주일 정도를 밤새면서 이런 저런 문제를 해결하면서 왠만한 문제는 이제 스스로 해결할 정도가 되었는데... 한번쯤은 해볼 만한 도전이라고 생각한다. 쓰다보면 윈도우 없이도 살 수 있는 세상도 있다는 생각도 하게 된다. 실제로 리눅스를 쓰는 사람들은 가장 게으른 배포판으로 데비안, 젠투정도를 꼽는다. 그만큼 잘 안변하고 한번 설치하면 거의 새로 설치해야할 일이 없다는 것을 말하는 것이다.
- NeoCoin/Server . . . . 8 matches
* 8080 포트에 접속해 보고, 자칫 노출될수 있는 정보에 대하여 막는다. resin, tomcat 모두 8080 포트를 이용한 테스트를 한다.
jvm설정에서 dummy를 설정하고, jdk는 따로 sun에서 받아 오거나, http://blackdown.org 를 이용한다.
컴파일 후에 지우기 쉽게 /tmp 에 풀어내는 것이다. 참고로 데비안은 프로그램
text/html; w3m -dump %s; nametemplate=%s.html; copiousoutput
-어떤 프로그램이 어떤 포트를 사용하는지...
find ./ -name *.html -exec perl -pi -e `s/<바뀌고>/<바뀔>/g` {} \;
-tar를 이용한 디렉토리 복사, 이동
http://members.optusnet.com.au/ckolivas/kernel/ 리눅스커널 2.4.19 대의 여러 성능 향상 관련 패치 모음이에요. 벤치마크 보면 눈에 띠게 향상되네요. [http://contest.kolivas.net 요건 벤치마크 프로그램입니다] --동희
- OptimizeCompile . . . . 8 matches
=== Basic of Compiler Optimization ===
현재 프로세서의 속도는 [무어의 법칙]에 따라 극한으로 속도가 증가하고 있다. 이러한 상황에서는 예전처럼 [CPU] 의 속도 에 프로그램의 실행속도가 크게 영향 받지는 않으므로, 컴파일러의 최적화 작업도 더이상 연산(computation)을 줄이는 것 만이 목적이 되는 것이 아니라, 좀 더 메모리 계층구조를 효율적으로 사용하는 것에 관심이 기울여지게 된다.
프로그램(translation unit)은 진행방향이 분기에 의해 변하지 않는 부분의 집합인 basic block 들로 나눌 수 있는데 이 각각의 block 에 대하여 최적화 하는 것을 local optimization 이라 하고, 둘 이상의 block 에 대하여, 혹은 프로그램 전체를 총괄하는 부분에 대하여 최적화 하는 것을 global optimization 이라고 한다.
실행 시간(run time) 중의 계산을 줄이는 것이 목적이다. 이 최적화는 '미리 컴파일 시간에 계산(precomputaion in compile time)' 할 수 있거나, '미리 계산된 값을 재사용(reuse a previously computated value)' 할 수 있는 상황에서 적용된다.
PI = 3.14159;
area = 2 * PI * radius;
위와 같은 부분에서, PI 의 값이 중간에 변경되지 않는다면, 위의 코드는
PI = 3.14159;
PI = 3.14159;
컴퓨터가 할 수 있는 연산 들은 각각 그 연산이 수행되는데 걸리는 시간의 차이가 있다. 연산에 복잡도에 의해서 이루어지는 현상인데, 극단적인 예를 들자면, shift 연산은 보통 2 클럭에 처리되는 반면에, 나누기 연산의 경우 80-90 클럭을 소모하게 된다.(i8088자료) 이런 연산에 대한 computation time 의 차이를 줄이는 최적화 방법을 strength reduction 이라고 한다.
e.g. pipelining, superscalar
=== More advanced mothodology of compiler optimization ===
- ProgrammingLanguageClass/Report2002_2 . . . . 8 matches
1. To assess the type-compatibility rule adopted by the Compilers;
1. To evaluate the security of pointers in the Compilers;
1. To check the evaluation order of operands in the Compilers by raising the functional side-effects if possible;
* 결과물은 주어진 것들에 의해서 만들어지는 테스트 프로그램을 순서대로 제출하라. 채점은 아마 테스트 프로그램의 품질이 많은 영향을 미칠것이다.
* 보통, floppy diskette에 당신의 프로그램과, 테스트한 데이터들과 실행에 의한 결과를 제출한다.
* 프로그램의 완벽한 수행을 위해서 당신의 데스트 데이터를 신중히 설계하라. 또한 당신의 테스트 프로그램 내부에 합당한 문서를 첨부하는 것을 추천한다.
- SharedSourceProgram . . . . 8 matches
소스공유 프로그램(Shared Source Program)을 통해 주요 MS 제품군의 소스에 접근할 수 잇는 권한을 획득한다. 특히 소스공유 프로그램은 현재 한국과 호주 양국 MVP에게만 부여된 권한이다.
리눅스를 정부 프로그램으로 채택하는 국가들이 세계적으로 늘어나고 있는 가운데, 마이크로소프트(MS)가 오피스 소스코드 공개를 통해 오픈소스 진영에 적극 맞서고 있다.
MS는 3년 전부터 `소스공유 이니셔티브'(Shared Source Initiative)라는 프로그램을 통해 협력업체들과 정부에 윈도 소스코드를 공개해왔다. 특히 최근 몇 년간 각 국 정부가 오픈 소스 진영으로 전환하는 것을 막기 위해, 정부와 특정 회사가 소스코드를 볼 수 있는 프로그램을 확대해왔다.
공대차원 학회 지원 프로그램의 한가지 방법으로 Shared Source Program 이 준비되고 있다고 한다.
돈을내고 라이센스를 받아야 하는 프로그램이라 학교측에서도 그전에 컴공의 각 학회들에게 어떤 방식으로 SSP를 활용해 나갈지를 먼저 물어보고 실제로 진행을 할 예정인가보다.
http://bbs.kldp.org/viewtopic.php?t=54295 올렸습니다 :) --sun
- SoJu/숙제제출 . . . . 8 matches
printf("\n이 프로그램은 구구단 프로그램 입니다.");
printf("\n이 프로그램은 구구단 프로그램입니다. 1~9까지의 숫자중 하나를 입력하세요.\n\n");
//구구단 출력 프로그램 v2.1 제작자: 조현태 최종수정일: 2005.04.08
//이프로그램은 정수를 입력받은뒤 1-9사이일 경우에만 구구단을 출력하고,
//아닐경우에는 다시 숫자를 입력 받는 프로그램입니다.
printf("안녕하세요? 구구단 출력 프로그램입니다.\n시킨대로 하지않으면 다운의 소지가..\n1~9사이의 정수를 입력해주세요.\n");
- ToyProblems . . . . 8 matches
구구단, 소수, 피보나치 수열 구하기 등의 간단하고 쉬운 문제들
ToyProblems를 풀게 하되 다음 방법을 이용한다. Seminar:TheParadigmsOfProgramming [http://www.jdl.ac.cn/turing/pdf/p455-floyd.pdf (pdf)]을 학습하게 하는 것이다.
1. 일단 자신이 아는 방법을 총동원해서 문제를 풀게 한다.
* ToyProblems 후보 : 구구단, 소수구하기, SpiralArray, 삼각형 그리기, (기타 참가자가 원하는 것 추가 가능. 단 조건은 1학년이 한 시간 내에 풀 수 있는 간단한 문제)
1. 1번에서 고른 나머지 문제를 가능하면 다양한 방법으로 여러번 풀게한다. 각자 몇 개의 전혀 다른 프로그램을 만들어 내는가? 60m
CP도 Functor 의 일종이다. ( 예 - Spiral Matrix를 Vector의 방법으로 풀기). CP부터 배우면 CP에서 제시하는 예에서만 적용하는 것으로 갇힐수 있다.
- VMWare/OSImplementationTest . . . . 8 matches
그리고 링커를 vc6를 사용하고 싶었고 그래서 이를 사용할 수 있는 방법을 소개하려
어려운 영문 OS개발방법을 한글화 해주는 고마운 사이트
intel x86 cpu에서 돌던 프로그램도 586에서도 수행되도록 하위호환을 갖게 됩니다.
부트 이미지 뜨는 프로그램 만들면된다.
jmp 08h:clear_pipe ; Jump to code segment, offset clear_pipe
clear_pipe:
Compiling...
- WebGL . . . . 8 matches
[Javascript]임에도 불구하고 마치 C프로그래밍 스타일의 함수들이 존재한다. [WinAPI]가 C스타일의 [OOP]이듯 WebGL 또한 C스타일의 OOP이다. 모든 함수는 WebGLcontext라는 객체에 있는데 보면 그냥 접두어를 붙이는 느낌이다.
위의 코드를 보면 [쉐이더] 프로그램에 fragmentShader와 vertexShader를 Link 시키는 구문인데 주체인 shaderProgram은 첫번쨰 인자이고 gl은 그냥 접두어 처럼 보인다. 저 구문만 그런것이 아니라 다른 모든 함수들이 저 gl 객체에 붙어있다. 하지만 정작 gl이 주체가 아닌 것들이 많다. 따라서 래핑한 객체를 만들어 쓰는 것이 속편한데 어설프게 했다가는 무척 꼬이게 된다.
각 정점(vertex, 꼭지점)마다 호출되며 주로 꼭지점의 위치를 연산하고 실제 View에 투영하는 연산을 주로 하게 된다. 한마디로 모델의 위치 변환과 카메라 시점에 따른 변환 원근법을 적용하는 변환등을 수행한다.
mat4.rotate(camMat, camMat, Math.PI/4, [1,0.5,0.5]);
var matProject = mat4.identity(mat4.create());//2PI = 360d -> 1d = PI/180
mat4.perspective(matProject, Math.PI/180 * 80, 1, 0, 1);
//compile Source
gl.compileShader(vertexShader);
checkCompile(vertexShader);
gl.compileShader(fragmentShader);
checkCompile(fragmentShader);
function checkCompile(shader){
if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
- ZPBoard/APM/Install . . . . 8 matches
LoadModule php4_module c:/php/sapi/php4apache.dll
phpinfo();
* 제어판 -> 프로그램 추가/제거 -> Windows 구성 요소 추가/제거 에서 IIS를 설치한다.
* 제어판 -> 관리 도구 -> 인터넷 정보 서비스 에서 기본 웹 사이트의 속성으로 가서 홈 디렉토리 탭의 구성 버튼을 누른다. 거기서 추가 버튼을 눌러 실행 파일에는 c:\php\sapi\php4isapi.dll 을 찾아 넣고, 확장명에는 .php 를 넣고 확인을 누른다.
phpinfo();
* APM들의 버전이 계속 바뀌기 때문에 http://www.php.net/ 과 http://dev.mysql.com/ 의 최신 설치 방법을 읽으면서 하면 삽질을 좀 덜 할수 있는거 같다.
* APM을 설치, 설정을 자동으로 해주는 프로그램도 있네요. 번거로운 설치과정이 귀찮으신 분들은 이놈도 좋을듯. [http://www.apmsetup.com/]. 하지만 직접 설치해 보지 않으면 모르는것도 있으니... 귀찮으신 분만 쓰세요ㅋ - [이승한]
- biblio.xsl . . . . 8 matches
<xsl:apply-templates select="topic">
<!-- TOPIC =======================================================-->
<xsl:template match="topic">
<xsl:variable name="topic" select="@id"/>
<a name="topic-{@id}">
[<xsl:value-of select="count(../book[not(@type='ref') and @topic=$topic])"/>]
<xsl:apply-templates select="../book[not(@type='ref') and @topic=$topic]">
- 권영기/채팅프로그램 . . . . 8 matches
Describe 권영기/채팅프로그램 here
["2012/3/30 - 일대일 채팅 프로그램 만들기"]
["2012/4/3 - 멀티채팅 프로그램 만들기"]
=== 2012/3/30 - 일대일 채팅 프로그램 만들기 ===
=== 2012/4/3 - 멀티채팅 프로그램 만들기 ===
이전에 작성했던 일대일 채팅 프로그램의 소스는 구조적으로 문제가 많았기 때문에 많은 수정이 필요했습니다.
프로그램을 작성하면서 들었던 의문점은 Pthread_join에 관한 것입니다. 서버쪽에서 쓰레드를 쓰면서 Join을 어디다가 놔야할지를 모르겠어서 한번 빼놓고 해보니까 프로그램이 잘 작동이 되었습니다.(우연의 산물 ㅠㅠ)
- 데블스캠프2002/진행상황 . . . . 8 matches
우리는 수학문제에 대해 달랑 답만 달아놓으면, 설령 답이 맞더라도 "과정이 없다"고 문제를 틀리기도 한다. 프로그램은 최종적인 "답"이다. 우리는 그 답이 나오는 과정에 너무도 무관심하다.
* ["RandomWalk2"] 를 ObjectOrientedProgramming 으로 구현하기 - 위의 Python 관련 실습동안 ["1002"] 는 ["RandomWalk2"] 에 대해서 C++ Prototype을 작성. (["RandomWalk2/ClassPrototype"]) 이를 뼈대로 삼아서 ["RandomWalk2"] 를 작성해보도록 실습. 해당 소스에 대한 간략한 설명, 구현의 예를 설명. 중간에 객체들에 대한 독립적인 테스트방법을 설명하면서 assert 문을 이용한 UnitTest 의 예를 보였다.
참가자들 중 대표로 몇 명의 코드를 프로젝터를 통해 직접 보면서 하나 하나 짚어 나갔다. 그 사람이 어떤 순서로 프로그램을 만들었고, 어떤 의도에서 이걸 이렇게 했는지. 한 줄 한 줄 정말 "많은 것을 가르쳐주고, 배울 수 있겠다" 하는 생각이 들었다. 우리는 "교사/정답에게서만 배운다"는 사고에서 자유로워질 필요가 있다.
* '''Pair Teaching''' 세미나를 혼자서 진행하는게 아닌 둘이서 진행한다면? CRC 디자인 세션이라던지, Structured Programming 시 한명은 프로그래밍을, 한명은 설명을 해주는 방법을 해보면서 '만일 이 일을 혼자서 진행했다면?' 하는 생각을 해본다. 비록 신입회원들에게 하고싶었던 말들 (중간중간 팻감거리들;) 에 대해 언급하진 못했지만, 오히려 세미나 내용 자체에 더 집중할 수 있었다. (팻감거리들이 너무 길어지면 이야기가 산으로 가기 쉽기에.) 그리고 내용설명을 하고 있는 사람이 놓치고 있는 내용이나 사람들과의 Feedback 을 다른 진행자가 읽고, 다음 단계시 생각해볼 수 있었다.
다른 하나는, 요구사항이 어떻게 제시되느냐가 산출물로서의 프로그램에 큰 영향을 끼친다는 점이다. 요구사항이 어떤 순서로 제시되느냐, 심지어는 어떤 시제로 제시되느냐가 프로그램에 큰 영향을 끼친다. 심리학에서 흥미로운 결과를 찾아냈다. "내일은 한국과 브라질의 경기날입니다. 결과가 어떻게 될까요?"라는 질문과, "어제는 한국과 브라질의 경기가 있었습니다. 결과가 어땠나요?"라는 질문에 대해 사람들의 대답은 큰 차이가 있었다. 후자 경우가 훨씬 더 풍부하고, 자세하며, 구체적인 정보를 끌어냈다. 이 사실은 요구사항에도 적용이 되어서, 요구사항의 내용을 "미래 완료형"이나 "과거형"으로 표현하는 방법(Wiki:FuturePerfectThinking )도 생겼다. "This system will provide a friendly user interface"보다, "This system will have provided a friendly user interface"가 낫다는 이야기다. 어찌되었건, 우리는 요구사항이 표현된 "글" 자체에 종속되고, 많은 영향을 받는다.
처음 ["1002"]가 계획한 세미나 스케쥴은 조금 달랐다. "어떻게 하면 ObjectOrientedProgramming의 기본 지식을 많이 전달할까"하는 질문에서 나온 스케쥴 같았다. 나름대로 꽤 짜임새 있고, 훌륭한(특히 OOP를 조금은 아는 사람에게) 프로그램이었지만, 전혀 모르는 사람에게 몇 시간 동안의 세미나에서 그 많은 것을 전달하기는 무리가 아닐까 하고 JuNe은 생각했다. 그것은 몇 번의 세미나 경험을 통해 직접 느낀 것이었다. 그가 그간의 경험을 통해 얻은 화두는 다음의 것들이었다. 어떻게 하면 적게 전달하면서 충분히 깊이 그리고 많이 전달할까. 어떻게 하면 작은 크기의 씨앗을 주되, 그것이 그들 속에서 앞으로 튼튼한 나무로, 나아가 거대한 숲으로 잘 자라나게 할 것인가.
- 새싹교실/2012/AClass/5회차 . . . . 8 matches
3. 3,4,6,7,9,3,2를 입력으로 넣은 후 2,3,9,7,6,4,3순서로 출력하는 프로그램을 작성해보세요.(스택)
•아래와 같은 출력이 나오는 프로그램을 어떻게하면 짤 수 있는지 생각해서 써보도록 합시다. 그 방법이 확실하다고 생각되면 짜보아도 좋아요
3.3,4,6,7,9,3,2를 입력으로 넣은 후 2,3,9,7,6,4,3순서로 출력하는 프로그램을 작성해보세요.(스택)
아래와 같은 출력이 나오는 프로그램을 어떻게하면 짤 수 있는지 생각해서 써보도록 합시다. 그 방법이 확실하다고 생각되면 짜보아도 좋아요
3.문자열이 대칭인경우 Palindrome, 아닌경우 Not Palindrome을 출력하는 프로그램을 작성해봅시다.
3.3,4,6,7,9,3,2를 입력으로 넣은 후 2,3,9,7,6,4,3순서로 출력하는 프로그램을 작성해보세요.(스택)
5.아래와 같은 출력이 나오는 프로그램을 어떻게하면 짤 수 있는지 생각해서 써보도록 합시다. 그 방법이 확실하다고 생각되면 짜보아도 좋아요
3.문자열이 대칭인경우 Palindrome, 아닌경우 Not Palindrome을 출력하는 프로그램을 작성해봅시다.
- 새싹교실/2012/새싹교실강사교육/4주차 . . . . 8 matches
파일은 메모리와 같은 주기억장치가 아닌, 하드 디스크 같은 보조기억장치에 저장되는 기본 단위입니다. 파일에는, 그 어떤 프로그램이던 간에 무조건 프로그램이 작성한 정보가 저장되는데요. 프로그램은 꽤나 많이, 실행 중에 파일을 새로 만들거나 등의 행동을 해서 파일을 액세스해야 하는 경우가 생깁니다. 그렇기 때문에 정보의 저장과 불러오기가 꼭 필요합니다. 그걸 간단하게 두 개로 설명해보겠습니다.
1.1 프로그램의 실행 파일에는 크기의 제약이 있기 때문에 프로그램이 가지고자 하는 모든 데이터를 가질 수 없습니다. 그래서 큰 정보는 외부의 파일에 두고, 실행 중에 파일을 읽어서 사용하는 방법을 흔히 쓰게 됩니다. 예를 들어 게임 프로그램에는 BGM, 효과음, 사진, 그림, 동영상 등의 파일을 읽어서 출력하게 됩니다.
1.2 프로그램이 작업한 결과를 영구적으로 보존하기 위해서도 파일을 외부에 저장합니다. 이는 당연한 거겠죠? 우리가 그림판을 통해 작업을 하고 난 뒤에는 항상 저장을 합니다. 이와 같은 이치입니다. 만약 게임의 점수 정보가 담긴 파일을 저장한다든가 등에도 필요합니다.
- 수학의정석 . . . . 8 matches
SOURCE : 자신의 풀이를 먼저 적고 그것을 가지고 어떻게 프로그램을 짰는지 적어야한다. 그리고 아래에 소스를 포함하도록한다.
CPU_CLOCKS : 시간은 기록 되지 않으며 프로그램이 수행된 시간(CPU CLOCK을 기록해야한다. 방법은 아래.)
UPDATE : ○로 표시하며 프로그램이 일주일 동안 업데이트 되었음을 기록하는 것이다.
||[수학의정석/방정식]||배의 속력 구하기.||
(프로그램수행) // 함수들을 수행
printf("CPU CLOCKS = %d\n", clock() - time_in); // 끝났을때 시간 - 초기 시작시간 = 프로그램 실행 시간
return 0; // 프로그램 종료.
제가 알기론 clock() 함수가 리턴하는 값은 프로그램이 시작된 이후로 경과한 CPU 클럭 수 이기 때문에 시스템마다 다르다고 알고 있습니다. 그래서 CLK_TCK로 나누어 초 단위로 바꾸어 비교를 하는것으로 알고있는데... 어떻게 생각하시는지...? --[상규]
- 이연주/공부방 . . . . 8 matches
2 ∼ 9 까지의 구구단을 한 화면에 출력하는 프로그램을 작성하시오.
포인터로 배열들의 요소를 지적하고 배열간의 자료교환을 하는 프로그램을 작성하시오.
int i, *pi, ix[3]={1, 2, 3};
pi = ix;
printf("(pi+%d) = %p *(pi+%d) = %d (pf+%d) = %p *(pf+%d)
= %.1f\n", i, (pi+i), i, *(pi+i), i, (pf+i), i, *(pf+i));
- 캠이랑놀자/보창 . . . . 8 matches
srcR, srcG, srcB = im.getpixel((x+40,y+150))
desR, desG, desB = im.getpixel((x, y))
im.putpixel((x,y),((srcR+desR)/2,(srcG+desG)/2,(srcB+desB)/2))
im.putpixel((x,y),(nr,ng,nb))
newR.putpixel((x,y),(r,0,0))
newG.putpixel((x,y),(0,g,0))
newB.putpixel((x,y),(0,0,b))
newGray.putpixel((x,y), (r+g+b)/3)
- 토비의스프링3/오브젝트와의존관계 . . . . 8 matches
* 사용자 정보를 JDBC API를 이용해 DB에 저장하고 조회할 수 있는 간단한 DAO 만들기.
* UserDao : JDBC를 이용한 등록, 조회 기능이 있는 DAO 클래스
== main()을 이용한 테스트 ==
* main 메소드를 이용한 테스트 코드
* 객체의 생성 방법을 결정하고 만들어진 오브젝트를 돌려준다.
* 프로그램의 제어 흐름 구조가 뒤바뀌는 것
5.1 오브젝트 팩토리를 이용한 스프링 IoC
3. 애플리케이션 컨텍스트는 빈을 검색하는 다양한 방법을 제공한다.
= XML을 이용한 설정 =
- 튜터링/2011/어셈블리언어 . . . . 8 matches
= 시스템 프로그램 및 어셈블리언어 튜터링 =
* 책의 코드를 그대로 베껴와 프로그램을 완성했지만 어떻게 동작하는지는 잘 모르는 사람이 많아 다시 짜보기로 한다.
* 정수 총합 구하기
* 루프를 돌며 구하기
* 지난주에 하던 정수 총합 구하기 계속
* 지난주에는 루프와 레지스터를 이용한 재귀함수까지 해 보았다.
* 이번에는 전역변수와 스택을 이용한 재귀함수를 구현해 본다.
* c 프로그램에 어셈블리 사용
- 프로그래머가지녀야할생각 . . . . 8 matches
전체 프로그램을 포기하는 경우가 생기곤 하죠..
너무나 이상적이고 추상적인 생각이겠지만 '프로그래머는 사회에 이익이 되는 프로그램을 만들어야 한다'는 근본적인 생각을 갖는 건 어떨까요? 예를 들어 재미있는 오락도 좋겠지만 장애인이나 나이 많이 드신 분들을 위한 보조용프로그램 같은 것들이 많이 개발되어야 한다고 생각합니다. 전에 정보요원단 활동을 할 때 우리나라에 보급되어 있는 장애인용 프로그램들이 많이 부족한 현실을 봤었는데... 내가 만든 프로그램이 남에게 도움이 된다면 그보다 좋을 일이 또 있을까요? ^^ -- jeppy
* 다들 인간으로써의 프로그래머를 두고 말씀하시는 것 같아 제 말이 뚱딴지처럼 들릴 것 같네요...^^;[[BR]]전 말이죠... 프로그래머는 컴퓨터를 사랑해야한다고 생각합니다. 정말 제가 생각해서 어이없는 말 같지만, 프로그래머는 컴퓨터에게 명령만 내리는 것이 아니라 컴퓨터와의 커뮤니티가 형성되어야 좋은 프로그램(인간에게가 아니라 컴에게)을 짤 수 있다고 생각합니다. 지극히 추상적이라서 반박의 여지가 많은 말이지만 그냥 그렇지 않을까 생각해봅니다. 컴퓨터에 미친 사람이라면 다음의 말에 공감을 할 지도 모르겠네요. [해커를 위한 파워핸드북]표지에 나오는 말입니다. ''''컴퓨터 속에서 흘러 다니던 비트가 내 혈관 속으로 옮겨와 흐르기 시작하고, 나는 컴퓨터와 함께 오르가즘을 느낀다.'''' --["창섭"]
* 위엣 말이 컴퓨터 자체에 관한 기계적 이야기라면 인간적 이야기도 추가하고 싶어요. 프로그래머는 프로그램 이전에 인간을 먼저 생각해야 한다는 것이죠... 상민이 형이 줬던 V노트에 나온 말이 인상깊습니다. ''''크래커든 프로그래머든 둘다 시작은 해커를 꿈꾼 젊은이 였으며, 인격을 가진 사람이다. 악이 없이 선이 없듯이 크래커가 영원히 존재하지 않을수는 없을지라도 지금 당신의 열정과 땀으로 주어질 선택이 진정한 존경으로 돌아올수 있도록 유혹을 이겨낸 진짜 승자가 되어야 하지 않을까......'''' --["창섭"]
DeleteMe) 태권V 님이라고 이번달 마소Jr인가 저번달 마소Jr에 등장하는 단체의 장인거 같은데. 찾아봐봐 devpia에 주로 활동 --상민
- 3DGraphicsFoundation/INSU/SolarSystem . . . . 7 matches
void SetDCPixelFormat(HDC hDC)
int nPixelFormat;
static PIXELFORMATDESCRIPTOR pfd = {
sizeof(PIXELFORMATDESCRIPTOR), // Size of this structure
// Choose a pixel format that best matches that described in pfd
nPixelFormat = ChoosePixelFormat(hDC, &pfd);
// Set the pixel format for the device context
SetPixelFormat(hDC, nPixelFormat, &pfd);
static float fJupiterRot = 0.0f;
glRotatef(fJupiterRot, 1.0f, -1.0f, 0.0f);
fJupiterRot += 8.0f;
if(fJupiterRot > 360.0f)
fJupiterRot = 0.0f;
int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
SetDCPixelFormat(hDC);
- AsemblC++ . . . . 7 matches
그렇기 때문에 굳이 어려운 방법을 통해 .exe 파일에서 어셈블리 코드를 얻어낼 필요가 없는 것이죠. --[상규]
== 어셈블을 이용한 [고급언어디버깅] ==
어셈블 코드들을 쉽게 보여준다면 프로그램의 보안 문제에도 직접적으로 연관이 되는 군요. 수정에 관한 보안장치도 있을 것이고요. 패리티 같은 단순한 보안장치일지라도 코드의 무결성을 지키면서 어셈블을 수정하기란 쉬워 보이지 않네요. - 톱아보다
.exe 파일에 대한 어셈블리 코드는 역어셈블러(아래 상협이가 말한 softice와 같은 프로그램)만 있으면 쉽게 얻을 수 있습니다. 수정에 관한 보안장치도 전혀 없구요. 하지만 .exe 파일에 대한 어셈블리 코드는 분석하거나 수정하는것 자체가 거의 불가능할 정도로 어렵습니다. 이유는... 시간이 없어서 나중에 쓰도록 하죠-_-; --[상규]
Softice같은 프로그램을 사용해서 시리얼 번호가 있는 프로그램이나 날짜 제한 프로그램을 크랙 하기도 합니다. 이번 디버깅 세미나에서 함 해볼라고 그랬는데 집에 있는 컴퓨터에서 그게 잘 안돌아가서 보류함. - [상협]
- C++스터디_2005여름 . . . . 7 matches
|| 05. 8. 7 || 보창 아영 규완 도연 수민 || 객체지향 실습. 프로그램짜기 ||
|| 05. 8. 11 || 보창 아영 유선 도연 수민 || 객체지향 실습. 간단한 프로그램 짜기 ||
|| 05. 8. 16 || 보창 아영 규완 도연 수민 || c++ 전반적인 용어 정리. 도서관리 프로그램 짜기 ||
|| 05. 8. 18 || 보창 아영 유선 도연 || 상속. 도서관리 프로그램을 실제로 함께 짜보기. ||
[C++스터디_2005여름/도서관리프로그램]
[C++스터디_2005여름/학점계산프로그램]
물론 C 랑 C++을 섞어 쓰는것도 괜찮지만, C++을 배우면 C++을 문법을...@,.@ - 상섭
- DNS와BIND . . . . 7 matches
604800 ; Expire
604800 ; Expire
604800 ; Expire
604800 ; Expire
604800 ; Expire
604800 ; Expire
604800 ; Expire
- DevelopmentinWindows . . . . 7 matches
윈도우즈 운영체제 기반의 프로그램 개발에 대해 소개하는 세미나 입니다. 02학번들에게 많은 도움 되었으면 좋겠습니다.
* 윈도우즈 API
* 프로그램이 순차적으로 실행되지 않고 메시지 발생에 따라 실행이 되는 방식
=== 윈도우즈 API와 MFC ===
* 윈도우즈 API (Application Program Interface)
* 윈도우즈 API를 클래스로 포장하여 제공하는 클래스 라이브러리
* 윈도우즈 API 만큼 세부적인 것들을 모두 다룰 수는 없지만 윈도우즈 API 보다 사용하기 쉽다.
* 코드를 여러 프로그램에서 공유하므로 메모리를 절약할 수 있다.
(윈도우즈 API - kernel32.dll, gdi32.dll, user32.dll[[BR]]
=== 윈도우즈 API를 이용한 예제 프로그램 ===
* ["DevelopmentinWindows/APIExample"] - 소스 보기
* http://zeropage.org/~lsk8248/wiki/Seminar/DevelopmentinWindows/API.zip - 다운 받기
=== MFC를 이용한 예제 프로그램 ===
- ExtremeProgramming . . . . 7 matches
초기 Customer 요구분석시에는 UserStory를 작성한다. UserStory는 추후 Test Scenario를 생각하여 AcceptanceTest 부분을 작성하는데 이용한다. UserStory는 개발자들에 의해서 해당 기간 (Story-Point)을 예측(estimate) 하게 되는데, estimate가 명확하지 않을 경우에는 명확하지 않은 부분에 대해서 SpikeSolution 을 해본뒤 estimate을 하게 된다. UserStory는 다시 Wiki:EngineeringTask 로 나누어지고, Wiki:EngineeringTask 부분에 대한 estimate를 거친뒤 Task-Point를 할당한다. 해당 Point 의 기준은 deadline 의 기준이 아닌, programminer's ideal day (즉, 아무런 방해를 받지 않는 상태에서 프로그래머가 최적의 효율을 진행한다고 했을 경우의 기준) 으로 계산한다.
Iteration 중에는 매일 StandUpMeeting 을 통해 해당 프로그램의 전반적인 디자인과 Pair, Task 수행정도에 대한 회의를 하게 된다. 디자인에는 CRCCard 과 UML 등을 이용한다. 초기 디자인에서는 세부적인 부분까지 디자인하지 않는다. XP에서의 디자인은 유연한 부분이며, 초반의 과도한 Upfront Design 을 지양한다. 디자인은 해당 프로그래밍 과정에서 그 결론을 짓는다. XP의 Design 은 CRCCard, TestFirstProgramming 과 ["Refactoring"], 그리고 StandUpMeeting 나 PairProgramming 중 개발자들간의 대화를 통해 지속적으로 유도되어지며 디자인되어진다.
* PairProgramming: 프로그램코드는 두명 (driver, partner)이 하나의 컴퓨터에서 작성한다.
* SpikeSolution: 주어진 문제에 대한 구현의 난이도를 예측하기 위한 작은 실험 프로그래밍.
* ["Metaphor"] : Object Naming 과 프로그램의 해당 수행에 대한 커뮤니케이션의 가이드 역할을 해줄 개념의 정의.
- InsideCPU . . . . 7 matches
1. 처음 컴퓨터를 키면 참조하는 메모리가 F000:FFF0 이라는 부분이다. 여기서 CPU는 ROM-BIOS를 적재하게 되고 제어권이 ROM-BIOS의 프로그램으로 넘어가게 된다.
2. 이후 ROM-BIOS는 일련의 CHECK 프로그램을 실행 시킨다. 흔히 보는 하드웨어 CHECK와 메모리 CHECK가 여기에 속한다.
5. 그럼 로더 프로그램이 적재 된 상태이다. 이것으로 부팅은 끝이다. 이후 부터는 로더가 작업을 실행한다.
위에 로더는 1섹터(512KB) 밖이 되지 않는다. 이는 작은 프로그램 밖이 실행 할 수 없고 메모리의 위치가 0000:7C00으로 불안한 위치이다. 대부분의 커널의 경우 이 메모리 블럭을 넘어서는 크기를 갖게 되므로 바로 커널을 로딩할 경우 로더의 메모리를 잡아 먹게 된다. 그래서 보통 Kernel로더는 자신을 보다 먼 곳의 안전한 곳으로 이동시키고 커널을 로딩하게 된다.
음...여기까지만..귀찮아서 못 적겠다.. 보통 플로피의 0번 섹터를 write하기 위해 rawrite.exe란 프로그램을 쓴다. 플로피의 데이타를 얻기 위해 BIOS의 인터럽트루틴을 사용한다. 이를 위한 인터럽트는 INT 13h가 된다.
보호모드가 없을 경우 커널은 자신을 지키기 위한 하드웨어적 방법을 잃게 된다. 만약 일반 유저 어플리케이션에서 아무런 제약없이 커널의 메모리 블럭에 접근할 수 있다면 ... 으..생각만해도 끔찍하다.
= 메모리 사이즈 구하기 =
- Java/ModeSelectionPerformanceTest . . . . 7 matches
for (int i = 0; i < ModeChoicePerformanceTest.LOOPING_COUNT; i++) {
for (int i = 0; i < ModeChoicePerformanceTest.LOOPING_COUNT; i++) {
=== 세번째. 위의 방법을 보완한 방법이다. 바로 일종의 Table Lookup. ===
for (int i = 0; i < ModeChoicePerformanceTest.LOOPING_COUNT; i++) {
executeReflectionWithMapping(modeExecute);
private void executeReflectionWithMapping(String[] modeExecute) throws InvocationTargetException, IllegalAccessException {
for (int i = 0; i < ModeChoicePerformanceTest.LOOPING_COUNT; i++) {
executeInnerclassMapping(modeExecute);
private void executeInnerclassMapping(String[] modeExecute) {
for (int i = 0; i < ModeChoicePerformanceTest.LOOPING_COUNT; i++) {
executeInnerclassMapping(modeExecute);
private void executeInnerclassMapping(String[] modeExecute) {
public static final int LOOPING_COUNT = 1000000;
- Kongulo . . . . 7 matches
_LINK_RE = re.compile(r'<\s*(a|img).+href\s*=\s*"?(.+?)"?(\s|>)',
_FRAME_RE = re.compile(r'<\s*(frame).+src\s*=\s*"?(.+?)"?(\s|>)',
_TITLE_RE = re.compile(r'<\s*title.*?>(.+)</\s*title\s*>',
self.match_url = re.compile(match_url)
# Fetch the entrypoint to the Google Desktop Search API.
help='Number of minutes to sleep before looping (default '
# ['Title', 'Kongulo', 'Description', 'A simple web spider that '
# 'lets you keep copies of web sites in your Google Desktop Search '
- Linux/필수명령어 . . . . 7 matches
커맨드 명령어에 대한 사용법을 익히는 것이 필요하다.
|| nano || pico 에디터의 클론 버전으로 vi보다 간편한 사용법 제공 ||
|| find x -name y -print|| http://bbs.kldp.org/viewtopic.php?t=58197&highlight=find 참조 ||
|| kill x || 프로세스 x를 종료 (x는 ps 명령으로 알 게 된 PID)||
|| ping || 목적지로 ICMP_REQUEST 보내 반응 시간을 측정. ping test 실시 ||
|| grub || 최근 각광받고 있는 부트로더 프로그램, lilo 보다 flexible 하다고 한다. ||
|| update-rc.d || rc.* 에 시작 프로그램을 등록한다. defaults 옵션을 줄경우 모든 running level 에 등록된다. (Debian) ||
- MicrosoftFoundationClasses . . . . 7 matches
Microsoft Foundation Classes 를 줄여서 부른다. 기정의된 클래스의 집합으로 Visual C++이 이 클래스들을 가반으로 하고 있다. 이 클래스 군은 MS Windows API를 래핑(Wrapping)하여서 객체지향적 접근법으로 프로그래밍을 하도록 설계되어 있다. 예전에는 볼랜드에서 내놓은 OWL(Object Windows Library)라는 것도 쓰였던 걸로 아는데... -_-; 지금은 어디로 가버렸는지 모른다. ㅋㅋ
MFC의 클래스들은 CDocument, CView와 같이 C로 시작하는 이름을 갖는다. 데이터 멤버들에는 m_ 라는 접두어를 붙여서 만들어져 있다. 변수의 이름앞에 p, i, l, h 등을 이용해서 그 종류를 변수의 이름으로 추정가능하게 하는 [헝가리안표기법]을 이용한다. 이는 과거 C환경하에서 형식 검사기능의 부재로 인한 에러를 막기위해 고안된 측면이 크기 때문에 C++에 들어와서는 반드시 필요한 표기법은 아니다.
//WinMain() 함수는 MFC 의 클래스 안에 구현이 되어있기 때문에 API로 윈도우를 만들때보다 간편하게 작성하는 것이 가능하다.
[http://www.devpia.com/ DevPia]
하나의 단위로서 다루어지는 프로그람안에 존재하는 프로그램 데이터의 레이블 정도로 생각하면 편하다. MFC에서는 이를 CDocument 라는 클래스로 제공하고 프로그래머는 이 클래스를 상속받아서 자기가 필요한 데이터형을 정의하고 그 데이터를 처리할 메소드를 작성하게 된다.
응용프로그램에서 document를 몇개를 다루느냐에 따라서 SDI(single document interface), MDI(multiple document interface)로 구분하여 사용한다.
도큐먼트 템플릿 객체는 단순히 document 만을 관리하는 것이 아니다. 그들 각각과 관계되어 있는 윈도우와 뷰들도 함께 관리한다. 프로그램에서 각기 다른 종류의 도큐먼트에 대해서 하나씩의 document template이 존재한다. 만약 동일한 형태의 document가 2개이상 존재한다면 그것들을 관리하는데에는 하나의 document template만 있으면 된다.
* {{{~cpp 응용프로그램 객체 theApp 생성}}}
* {{{~cpp WinMain() 에서 Run() 호출. Run()은 메인 메시지 루프를 실행하게된다. (API에서 WinProc를 생각해보면 된다.)}}}
- MoreEffectiveC++ . . . . 7 matches
* ANSI C++에 대한 제반적인 내용을 깔끔한 필체로 쉽게 쉽게 다루고 있다. 명확한 개념 설명이 돗보인다. 프로그램과 디자인 능력을 향상시키는 35개의 방법이 제시되어 있다. 배치, 가상 생성자, 포인터 레퍼런스 카운팅, 프락시 클래스, 더블 디스패치와 같은 C++의 보다 세련된 기술에 대해 설명하고있다.
- 레퍼런스를 이용한 예외상황 캐취
- 향후 프로그램
- 동일 프로그램상에서 C++과 C의 결합
* Item 27: Requiring or prohibiting heap-based objects. - Heap영역을 사용하는 객체 요구하기 or 피하기.
* Item 32: Program in the Future tense - 미래를 대비하는 프로그램
* Item 34: Understand how to combine C++ and C in the same program. - 같은 프로그램에서 C++와 C를 혼합하는 법 이해해라.
- OpenGL스터디_실습 코드 . . . . 7 matches
* Title : spiral shape pointing
//pie in math.
#define GL_PI 3.1415f
for(angle = 0.0f; angle <= (2.0f*GL_PI)*3.0f; angle += 0.1f)
// Establish clipping volume (left, right, bottom, top, near, far)
//-> make inner event and manage dynamic data exception(bound exception + clipping exception).
//clipping exception management.
//it manage in case that window is resized by user so, clipping area x, y is smaller than window area x or y.
//->resize viewport and clipping area
- PerformanceTest . . . . 7 matches
프로그램의 성능을 측정하는 방법. 프로그램이나 알고리즘의 성능을 알아보는 방법중 하나가 수행시간 측정입니다.
상기 두 Windows API함수를 사용해서 수행 시간을 측정 할 수 있습니다.
펜티엄 이상의 CPU에서 RDTSC(Read from Time Stamp Counter)를 이용하는 방법이 있다. 펜티엄은 내부적으로 TSC(Time Stamp Counter)라는 64비트 카운터를 가지고 있는데 이 카운터의 값은 클럭 사이클마다 증가한다. RDTSC는 내부 TSC카운터의 값을 EDX와 EAX 레지스터에 복사하는 명령이다. 이 명령은 6에서 11클럭을 소요한다. Win32 API의 QueryPerformanceCounter도 이 명령을 이용해 구현한 것으로 추측된다. 인라인 어셈블러를 사용하여 다음과 같이 사용할 수 있다.
간단하게 32비트 정수로 사용하고자 한다면 RDTSC명령이 카운터에서 가져오는 값 중에서 EAX에 담긴 값만을 가져오는 방법이 있다. 짧은 시간동안 측정한다면 EAX에 담긴 값만 가지고도 클럭을 측정할 수 있다. 64비트를 모두 이용할려면 LARGE_INTEGER 구조체를 이용한다.
rdtscEx명령은 36클럭을 소요하며 측정 구간을 클럭 단위로 측정할 수 있는 강력한 시간 측정 방법이다. 하지만 이 방법은 클럭 수만 측정할 뿐 시간을 알 수는 없다. 정확한 시간을 알려면 시스템의 CPU클럭을 알아야 하며 측정한 클럭값을 CPU클럭으로 나누어야 시간이 나온다. RDTSC명령을 수행할 때 CPU가 수행 속도 향상을 위해서 CPU 명령 순서가 바뀔 수 있기 때문에 CPUID명령을 전에 수행해 명령 순서를 맞춰야 하는 경우도 있다. 자세한 설명은 인텔에서 제공하는 성능 모니터링을 위한 RDTSC 명령 사용법을 참조하기 바란다.
Windows는 Multi-Thread로 동작하지 않습니까? 위 코드를 수행하다가 다른 Thread로 제어가 넘어가게 되면 어떻게 될까요? 아마 다른 Thread의 수행시간까지 덤으로 추가되지 않을까요? 따라서 위에서 작성하신 코드들은 정확한 수행시간을 측정하지 못 할 것 같습니다. 그렇다고 제가 정확한 수행시간 측정을 위한 코드 작성 방법을 알지는 못합니다. -_-;
멀티쓰레드로 인해 제어권이 넘어가는 것까지 고려해야 한다면 차라리 도스 같은 싱글테스킹 OS에서 알고리즘 수행시간을 계산하는게 낫지 않을까 하는 생각도 해봅니다. (하지만, 만일 TSR 프로그램 같은 것이 인터럽트 가로챈다면 역시 마찬가지 문제가 발생할듯..) 그리고 단순한 프로그램의 병목부분을 찾기 위한 수행시간 계산이라면 Visual C++ 에 있는 Profiler 를 사용하는 방법도 괜찮을 것 같습니다. 해당 함수들의 수행시간들을 보여주니까요.
- PragmaticVersionControlWithCVS/CommonCVSCommands . . . . 7 matches
date: 2005-08-02 13:16:58 +0000; author: sapius; state: Exp; lines: +4 -0
date: 2005-08-02 05:50:14 +0000; author: sapius; state: Exp;
date: 2005-08-02 05:50:14 +0000; author: sapius; state: Exp; lines: +0 -0
== Keeping Up To Date ==
다수의 프로그래머들이 프로젝트를 진행하는 상황하에서는 내가 프로그램을 갱신하고 있는 동안 다른 프로그래머들도 프로그램의 갱신을 할 가능성이 대단히 높다. 만약 갱신주기가 길어진다면 프로그래머가 처리해야할 merge 작업이 상당할 것이다. 때문에 주기적으로 프로젝트를 checkout 하는 것이 중요하다.
CVS는 프로그램 소스 코드, XML 등 텍스트 파일을 위주로해서 설계되었다.
- Profiling . . . . 7 matches
'''Profiling'''(프로파일링)은 원하는 부분의 프로그램 성능을 측정하는 성능 테스트이다.
많은 선인들이 절대로 최적화를 우선시 하지 말라는 말씀 하지만 프로그램을 작성하면서, 우리가 많이 신경 쓰는 부분은 '''성능'''이다.
이런 파레토 법칙은 프로그램에서도 적용될 수 있는 법칙인데, 이런 식이다. (몇%는 중요하지 않다. 중요한 점은 인간이 보통 인지하는 것과 실제의 모습이 차이가 있다는 점이다. )
프로그램의 80%의 리소스가 20%의 코드에서 쓰여진다.
프로그램이 성능을 높이기 위해서 이런 20%의 핵심 코드를 추정, 측정을 통해서 찾아야한다.
'''Profiling'''(프로파일링)은 원하는 부분의 프로그램 성능을 측정하는 성능 테스트이다.
|| PerformanceTest || C/C++을 이용한 성능 측정 코드 작성 ||
- ProgrammingPearls/Column3 . . . . 7 matches
* 별로 볼건 없고... 아무도 하지 않을 상황을 예로 들어놓은 것 같다. 왠만큼 프로그램 배운 사람이라면 당연히 배열로 처리할 것을 몇 백개의 변수로 처리하는 상황을 보여주고 있다. 그러면서 하는 말 : 많은 변수를 쓰고 있으면 관련되는 것으로 묶어서 배열로 처리하라. 이게 주제다.
* 딱 보면 알겠지만, 굉장히 우울하다. 저런게 10번 반복되는 것이다. 쓰잘데기 없는 코드가 무려 110 줄이나 된다. 하지만 리팩토링을 공부했다면 쉽게 빼낼수가 있을 것이다. 그 방법으로 VB에서는 각각의 메뉴 아이템을 배열로 만들수가 있다. 배열로 만든 다음 메소드 추출을 이용하면, (예제는 C++로 다시 바꾼다.--; 비베 문법을 잘 몰라서.)
* 프로그램을 짤때 생각도 안 해보고 덤비는 짓은 하지 말자. 작게 짤수도 있는 프로그램을 크게 짜버리는 일이 생길지도 모른다.
'''자료구조는 소프트웨어를 만든다 : 큰 프로그램을 작은 프로그램으로 줄여준다.'''
* 이 컬럼의 주제 : 데이터는 복잡한 코드를 적절한 자료 구조로 바꿈으로써, 프로그램을 구성한다.
- R'sSource . . . . 7 matches
print """이 프로그램은 www.replays.co.kr의 스타크래프트 리플레이를
모아주는 프로그램 입니다."""
#re.compile() 해당 데이터에서 원하는 정보를 해석하여 갖는것
pattern = re.compile('(^<TABLE.*<a.*number=)(.*)&view=2.*\[1\].*')
# pattern = re.compile('.*<a.*<a.*\"(http.*)\".*' + keyGamer + '.*')
pattern = re.compile('.*<a.*<a.*\".(.*)\".*' + keyGamer + '.*')
pattern = re.compile('^<a href=\".(.*filename=(.*.rep).*)\".*')
- SpiralArray/Leonardong . . . . 7 matches
하지만 여지껏 그러한 접근법을 알고서도 TDD로 풀지를 못했었다. 매번 나선형 "행렬"에 어떻게 숫자를 새길지만 생각했기 때문이다. 그러다 보니 2차원 배열의 인덱스를 조작하는 수준에서 생각이 벗어나질 못했다. 하지만 사실은 움직임(이전의 인덱스 조작), 움직인 점들, 행렬을 따로 생각할 수 있었다. 아! 이렇게 테스트 하면 되겠구나!
class SpiralArrayTest(unittest.TestCase):
class SpiralArrayTest(unittest.TestCase):
class DirectionTest(SpiralArrayTest):
class BoardTest(SpiralArrayTest):
class MoverTest(SpiralArrayTest):
class ArrayTest(SpiralArrayTest):
- UnixSocketProgrammingAndWindowsImplementation . . . . 7 matches
// 에러가 났을경우( sockfd == -1) 에러를 출력하고 프로그램 종료.
= Server 가 될 프로그램에 필요한 함수 =
= Client 가 될 프로그램에 필요한 함수 =
※ 이를 이야기 해보고 client의 프로그램의 네트워크 정보(struct sockaddr_in)에는 무엇이 들어가야하는지 이야기해보자.
// 프로그램이 끝날 때, 항상 WSACleanup()으로 리소스를 해제해야한다.
// 이것은 프로그램이 socket과 연결할 정보를 담고있다.
위의 server 에 접속 하는 client 프로그램을 짜고, Server가 보내는 메세지인 "Hello, World!"란 문장을 clinet 화면에 출력하도록 한다.
- XMLStudy_2002/Start . . . . 7 matches
XML 문서 작성하는 방법을 익힌다.
*XML 문서는 XML로 기술된 구조적인 정보로 구성되는 문서이며 XML1.0스펙에 맞게 작성하며 XML을 지원하는 프로세서(또는 프로그램)에서 사용하기 위해서 Well-formed나 Valid한 형태로 작성된 문서를 말한다. ---> 정의
*XML문서는 택스트 파일이라는 형태로 저장되므로, XML파일 자체는 OS나 특정 프로그램에 의존적이지 않는 특성을 지닌다.
*XML 응용프로그램이란 이러한 택스트 객체(textual object)를 처리하여 사용할수 있는 프로그램이다.
*Kawa4.0에서는 Project나 Workspace에 대한 정보 및 기타 몇 가지 프로그램에 대한 정보를 XML문서 형태로 유지
=== Processing Instructions(PI) ===
*Public Identifier는 어디에서 사용되는가? : 공용 엔티티나 공용 DTD를 사용하는 경우에 PI가 사용됨
엘리먼트를 사용할 때 이 어트리뷰트가 빠져 있다면,이를 반드시 XML 프로세서가 응용 프로그램에 이를 알려주어야 함을 의미함
- ZeroPage_200_OK . . . . 7 matches
* Mozilla Bespin -> Mozilla Skywriter -> Ajax.org Ace -> Cloud9 -> http://c9.io/
* 웹은 다양한 이론적 배경을 바탕으로 탄생하고 발전해 왔습니다. 우리 스터디에서는 그런 통합적인 지식을 바탕으로 여러분들에게 현재의 웹 기술에 대한 이해는 물론이고 웹 이후의 새로운 경향을 고민하고 연구하기 위해 필요한 단서를 제공하는데 목표를 두고 있습니다. 물론 굳이 모르고 있어도 단순 웹 개발을 하는데 무리는 없으나, 관련된 문제해결 과정이나 새로운 기술 이해를 위해서 중요한 능력이 될 수 있습니다.
* JavaScript DOM API 첫소개
* 서버에서 데이터를 가져와서 보여줘야 하는 경우에 싱글스레드를 사용하기 때문에 생기는 문제점에 대해서 배우고 이를 처리하기 위한 방법을 배웠습니다. 처음에는 iframe을 이용한 처리를 배웠는데 iframe 내부는 독립적인 페이지이기 때문에 바깥의 렌더링에 영향을 안주지만 페이지를 이동하는 소리가 나고, iframe이 서버측의 데이터를 읽어서 렌더링 해줄 때 서버측의 스크립트가 실행되는 문제점 등이 있음을 알았습니다. 이를 대체하기 위해 ajax를 사용하는데 ajax는 렌더링은 하지 않고 요청 스레드만 생성해서 처리를 하는 방식인데 xmlHttpRequest나 ActiveXObject같은 내장객체를 써서 요청 스레드를 생성한다는걸 배웠습니다. ajax라고 말은 많이 들었는데 구체적으로 어떤 함수나 어떤 객체를 쓰면 ajax인건가는 잘 몰랐었는데 일반적으로 비동기 처리를 하는거면 ajax라고 말할 수 있다고 하셨습니다. 그리고 중간에 body.innerHTML을 직접 수정하는 부분에서 문제가 생겼었는데 innerHTML을 손대면 DOM이 다시 만들어져서 핸들러가 전부 다 사라진다는 것도 기억을 해둬야겠습니다. - [서영주]
* DOM 객체를 wrapping 한 것으로 CSS selector 문법으로 DOM에서 Element를 찾아 올 수 있다.
* Element를 찾을 때 CSS 문법을 이용하여 작업을 할 수도 있고 jQuery의 메소드를 이용해서 작업을 할 수도 있는데, 복잡한 대상을 한 번만 찾아서 작업을 할 경우에는 CSS 문법을 이용하는 것이 좋고, 찾은 대상에서 여러 작업을 할 경우에는 jQuery 함수를 사용하거나 해당 Element를 변수에 저장해 두었다가 사용하는 것이 성능 면에서 좋다.
* Browser Object Model : 자바스크립트로 Browser와 상호작용하기 위해 제공되는 API들의 집합. 공식적인 표준은 존재하지 않아서 조금씩 다를 수 있다.
* sortable(), appendTo(), data(), focus(), blur(), clone() 등의 jQuery API를 사용.
- callusedHand/books . . . . 7 matches
공개 소스 방식의 개발은 많은 개발자들의 자발적인 참여를 이끌어낼 수 있습니다. 그렇기 때문에 낭비라고 볼 수 있는 많은 동류의 소프트웨어 개발, 무수히 많은 패치들, 중복된 작업들이 존재합니다. 그리고 이런 양상은 혼란스러워 보입니다. 하지만 이것을 더 나은 소프트웨어를 개발하기 위한 과정이라고 보는 것이 타당할 듯 합니다. 소프트웨어 산업에도 약육강식, 적자생존의 법칙이 적용됩니다. 엔드 유저가 찾고 엔드 유저의 눈에 보이는 것은 경쟁 속에서 살아남은 몇 가지 소프트웨어입니다. 그리고 개발자들의 자발적인 참여는 성당 개발 방식에서 개발자들을 기계화하는 것과는 다릅니다. 참여 개발자라면 적어도 그 프로그램에 대한 관심, 열정을 가지고 있으며 이는 자율이라는 점에서 더욱 힘을 얻어 개발자는 개발에 열중하게 될 것입니다. 이럴때 개인의 창의력, 프로그래밍 능력이 극대화될 수 있을 겁니다.
저는 개발자의 필요에 의해 소프트웨어 개발이 진행되기 때문에 정작 엔드 유저가 필요로 하는 프로그램이 적다는 말에 반대합니다. 개발자도 사용자입니다. 개발자는 컴퓨터를 개발의 도구로만 보지 않습니다. 채팅방에서 시시콜콜한 대화를 나눌 수도 있고, 음악을 듣거나 영화를 볼 수도 있습니다. 바로 이러한 입장에서 개발의 필요가 나타나는 것입니다. 그리고 소비자의 필요와 동 떨어진, 컴퓨터 과학에 치우친 개발이라고 해도 이것은 컴퓨터 산업에 힘을 실어주기 마련입니다. 미분, 적분과 같은 실생활과 관계가 없을 것 같은 이론이 오늘날 여러 산업 분야에 큰 토대가 되고 있지 않습니까?
오픈 소스 방식의 개발을 무료 프로그램 개발로 여기는 것은 잘못된 생각입니다. 오픈 소스방식의 개발은 단지 소프트웨어 개발론 중 하나일 뿐입니다. 시장에 내다팔 상품을 오픈 소스 개발 방식으로 만들어 낼 수도 있습니다. . 오픈 소스 방식의 개발을 통해서도 얼마든지 수익을 창출할 수 있으며 근래의 리눅스 업체들이 이를 뒷받침해 주고 있습니다. 왜 독점적 소프트웨어를 가지고 돈을 버는 것보다 불리하다고 생각합니까? 레드햇의 로버트 영의 말을 유심히 들어볼 필요가 있습니다. “대부분의 산업 국가에서는 그냥 수도꼭지만 틀면 물을 마실 수 있는데 어떻게 에비앙이 수백만 달러의 물을 이 시장에 팔 수 있는가? 간단히 말하자면 에비앙이라는 브랜드는 믿으면서 여러분의 수도꼭지의 물은 믿을 수 없다는 불합리한 두려움 때문이라고 할 수 있다. 바로 이점이 비공식 레드햇 리눅스 복사본을 쓰지 않고 50달러짜리 공식 레드햇 리눅스를 많은 사람들이 선호하는 이유이다. 케찹은 향료를 가미한 토마토 튜브에 불과하다. 여러분은 토마토, 식초와 같은 자유롭게 배포할 수 있는 물건들로 부엌에서 케찹을 만들 수 있다. 하지만 소비자는 왜 부엌에서 케찹을 만들고 있지 않으며 하인즈는 어떻게 해서 케찹 시장의 80%이상을 점유하고 있는가? 편리함은 원인의 일부분 뿐이며 진정한 원인은 하인즈가 소비자의 마음 속에 케찹의 맛을 정의할 수 있었기 때문이다. 이제는 하인즈 케찹의 브랜드가 큰 영향력을 가지고 있기 때문에 소비자인 우리는 하인즈 케찹이 더 좋다고 생각해 버린다.”
프로그램에 치명적인 버그가 있을 때 책임지고 고쳐 줄 사람이 없기 때문에 오픈 소스 개발 방식은 위험하다는 주장도 오픈 소스 개발 방식에 대한 오해에서 비롯된 것이라고 생각합니다. 위에서 말했지만 오픈 소스 개발 방식은 수많은 소프트웨어 개발 방법 중 하나 일 뿐입니다. 기존의 많은 오픈 소스 프로젝트가 개발자들의 취미, 재미라는 동기에서 비롯되었기 때문에 사후 관리가 미미하고 개발자들이 개발을 포기하는 경우 엔드 유저는 피해를 볼 수 밖에 없었던 것입니다.
소프트웨어 공학이란 최소의 경비로 품질 높은 소프트웨어를 개발, 유지보수하기 위한 방법론에 관한 학문입니다. 프로그램을 구현하는 단순한 작업 이상의 다양한 측면을 기지고 있으며 이는 일반적으로 요구 사항 분석, 시스템 디자인, 세부 디자인, 구현, 통합, 필드 테스트, 사후 지원과 같은 공정을 거칩니다. 소프트웨어 공학과 오픈 소스 개발 방식을 비교해 볼 때 오픈 소스 개발 방식이 갖는 문제점을 찾을 수 있습니다.
요구 사항 분석, 시스템 디자인, 세부 디자인 과정이 구체적으로 진행되지 않거나 문서화가 이루어 지고 있지않는 점입니다. 이는 프로그램의 유지보수, 재사용 측면에서 볼 때 심각한 문제로 한 프로그램을 개선시키고자 하는 개발자가 있을 때 디자인에 관한 문서가 없으면 많은 시행 착오를 겪을 수 밖에 없으며. 좋은 코드들이 그냥 버려지게 되는 경우가 많아 집니다. 이것들은 분명히 낭비라고 볼 수 있습니다. 그러므로 문서화 할 필요가 있습니다.
- 고슴도치의 사진 마을 . . . . 7 matches
▶Hobby : Taking a picture
=== Picture Gallery ===
|| [Picture Link] ||
|| [몬테카를로 법을 이용한 pi 구하기 프로그램] ||
- 덜덜덜/숙제제출페이지 . . . . 7 matches
* multiplication : 구구단 프로그램 *
{{{~cpp /*학생 다섯명의 세 과목 평균을 구하는 프로그램입니다.
* 프로그램 이에요^^ *
음... 이름을 알파벳 1글자 이상 입력하면 프로그램이 이상해져 버립니다 ㅋ (힌트 : 이중배열 or 구조체) - [조동영]
*5명의 성적을 입력받아 평균내는 프로그램!! *
/* 프로그램입니다. */
* 다섯명의 성적을 입력받아 평균을 내는 프로그램 *
- 데블스캠프/2013 . . . . 7 matches
|| 3 |||| [http://intra.zeropage.org:4000/DevilsCamp Git] |||| [새내기의,새내기에의한,새내기를위한C언어] |||| [http://zeropage.org/devils/91470#0, HTTP 프로토콜, C언어를 이용한 웹 서버 만들기] |||| |||| [Clean Code with Pair Programming] |||| [:WebKitGTK WebKitGTK+] || 10 ||
|| 4 |||| [http://intra.zeropage.org:4000/DevilsCamp Git] |||| [http://zeropage.org/seminar/91448 로우레벨로 보는 Physical MAC Cross Layer] |||| [http://zeropage.org/devils/91470#0, HTTP 프로토콜, C언어를 이용한 웹 서버 만들기] |||| |||| [진격의안드로이드&Java] |||| [:WebKitGTK WebKitGTK+] || 11 ||
|| 5 |||| [http://intra.zeropage.org:4000/DevilsCamp Git] |||| [http://zeropage.org/seminar/91448 로우레벨로 보는 Physical MAC Cross Layer] |||| [http://zeropage.org/devils/91470#0, HTTP 프로토콜, C언어를 이용한 웹 서버 만들기] |||| |||| [진격의안드로이드&Java] |||| 밥 or 야식시간! || 12 ||
|| 7 |||| [:데블스캠프2013/첫째날/ns-3네트워크시뮬레이터소개 ns-3 네트워크 시뮬레이터 소개] |||| [:데블스캠프2013/둘째날/API PHP + MySQL] |||| [:아두이노장난감만드는법 아두이노 장난감 만드는 법] |||| |||| [:개발과법 개발과 법] |||| [:ParadigmProgramming Paradigm Programming] || 2 ||
|| 8 |||| ns-3 네트워크 시뮬레이터 소개 |||| [:데블스캠프2013/둘째날/API PHP + MySQL] |||| [http://zeropage.org/index.php?mid=seminar&document_srl=91554 Machine Learning] |||| |||| [MVC와 Observer 패턴을 이용한 UI 프로그래밍] |||| [아듀 데블스캠프 2013] || 3 ||
|| 9 |||| [개발업계 이야기] |||| [:데블스캠프2013/둘째날/API PHP + MySQL] |||| [http://zeropage.org/index.php?mid=seminar&document_srl=91554 Machine Learning] |||| |||| MVC와 Observer 패턴을 이용한 UI 프로그래밍 |||| [아듀 데블스캠프 2013] || 4 ||
|| 강성현(18기) || [:데블스캠프2013/둘째날/API PHP + MySQL] ||
|| 서민관(19기) || [http://zeropage.org/devils/91470#0, HTTP 프로토콜, C언어를 이용한 웹 서버 만들기] ||
|| 정의정(21기) || MVC와 Observer 패턴을 이용한 UI 프로그래밍 ||
- 데블스캠프2005/주제 . . . . 7 matches
|| 월 || FLASH || 승한 || 3-4 || 액션스크립트를 이용한 간단한 상호작용 ||
|| 금 || 새내기 발표 || 조현태 || ? || 게임 만드는 법?(실제로는 프로그램 개발과정 쯤 될듯.) ||
|| 금 || ? || [신재동], [임인택] , 이정직[fnwinter] || 실습까지 3시간 예상 , 윈도우즈 프로그래밍 || 네트워크 이용한 게임 정도 ||
만약 하게된다면 선배님께 어떤 내용을 설명할 수 있을지..;; 약간 과장을 덧붙이자면 저희가 1주일동안 도스창에서 돌아가는 구구단 프로그램을 작성하면, 선배님들 께서는 하루만에 데이터 베이스를 구축하실텐데..;;(그정도로 세미나 할 내용이 없다는..;;) -[조현태]
- Guido van Robot 보니까 옛날 LOGO 프로그램 생각나네.. 비슷한거 같은데 아닌가? - fnwinter
금요일에 제가 한 타임을 맡겠습니다. 네트워크 사용한 간단한 프로그램을 만들 예정입니다. 언어는 파이썬으로 하려합니다. 그러므로 파이썬 배운 후에 몇 개의 토이프로블램은 파이썬으로 연습 시켜주셔야 합니다. --재동
이러한 상황에서 이러한 토의는 아주 의미가 깊을 것 같습니다. 최소한, 재학생의 경우에는 신입생들을 통해서 자신을 돌아볼 수 있는 계기가 될 수 있고, 신입생의 경우에는 공부를 하는데 있어서 기존 재학생들이 선행한 방법을 택하거나 아니면, 새로운 공부 모델을 창조하는데 도음이 될 것 같네요. 물론 여기저기서 좋은 컬럼이나 고전을 접할수도 있겠지만 같이 공부를 하는 학생들간의 토의는 이에 못지않은 효과를 얻을 수 있으리라 확신합니다. 만약 이러한 시간을 정말 갖게 된다면 저에게도 큰 도움이 될것은 자명한 일이구요. - 임인택
- 데블스캠프2009/화요일후기 . . . . 7 matches
== winAPI - 안혁준 ==
* '''서민관''' - 역시 어려운 느낌이 조금 있었습니다. 기초부터 조금씩 했더라면 조금 더 이해가 쉬웠을텐데. 그래도 사실 정해진 시간 안에 설명도 해야 하고 듣는 대상이 다수였던 만큼 어쩔 수 없는 부분이었다고 생각합니다. 그리고 아쉬웠던 부분은 시간적인 문제로 실습 하나를 빼먹었던 점. 그래도 제가 알기로는 학교에서 API를 따로 가르쳐주지 않는 걸로 아는데, 그런 걸 보면 상당히 의미있던 수업이라고 생각합니다.
* 전 늘 WinAPI가 어렵습니다. 욕이 절로나와요. --유상민09
* '''강소현''' - API가 뭔지, 그걸로 어떠어떠한 프로그램을 만들 수 있는 지 알게된 수업이었어요. 왠지 마지막 피아노...최종귀축 여동생 플랑도르 같은 거도 연주하게 할 수 있지 않을까하는 느낌이 ㅇㅁㅇ(!) 직접 연주하는 프로그램인 거같긴 했지만ㅋㅋ;;
* '''박준호''' - API 라는 어려운 개념이라서 잘 이해는 못했지만 C 로 윈도우창을 만들수 있다는 것이 좀더 C의 개념을 확장 시킨듯 해서 좋았습니다.
* '''서민관''' - 개인적으로 이번 화요일 수업에서 가장 마음에 드는 수업이었습니다. 이런 식으로 시간의 흐름에 따라서 추상화 개념이 발전하는 모습을 보고 있으니 참 대단하다는 생각이 들었습니다. 그리고 반복을 줄이기 위한 방법들(ex - 반복문, 자료형, class) 각각이 무엇을 위해서 만들어졌는지를 알아보는 것으로 평소에 아무 생각 없이 썼던 것을 다시 한 번 생각해 보는 기회가 되었습니다. 그리고 수업을 듣고 나니 추상화를 통해서 긴 프로그램 코드를 각각의 함수로 쪼개는 방법이 왜 중요한지도 조금 더 잘 알겠네요.
* [김준석] - 같은 것을 반복하기 위해 우리는 자주 copy &paste를 사용한다. 단순히 키보드 두번만 누르면 똑같은 것이 한번더 만들어지는 좋은 단축키 이다. 하지만 사실 이 반복되는것을 우리는 단순히 단축키를 누름으로서 만들어지는것은 과거의 저급언어를 사용할때나 만들어지는 반복의 숙달이다. 평소 자주 알고리즘을 연구하자는 말을 들을것이다. 문제를 푸는것 만에는 사실 극히 특별한 알고리즘이 필요없다고 생각한다. 살면서 어떻게든 간단반복으로 대부분은 풀수 있을테니까. 알고리즘을 연구하는것은 우리가 사용하는 컴퓨터의 부담을 줄이기 위해 만들며 이는 단순 반복되는 계산과정을 줄여줘 자원의 낭비를 줄여준다. 이렇듯 컴퓨터의 반복은 줄이면서 직접 키보드를 치며 반복하고있는 나의 자원소비량은 어떤가? 나는 왜 반복을 하고 있는가? 이 긴 코드를 줄일수 있는 방법은 정녕 없는것인가?라는 컴퓨터 알고리즘을 생각하듯 나를 위한 알고리즘을 생각을 해보았나? 대부분의 문서를 한장으로 줄여서 요약할수 있다는것을 가르쳐주는 One Page Proposal이라는 책에서는 "온갖 미사여구를 넣어 50page나 100page가 넘어가는 문서는 문서를 받은 사람의 책상에서 쌓이고 쌓여 결국에는 보여지지도 못하고 세절기에 들어가 버린다. 정말 자신이 있다면 알짜배기만 모아서 1Page로 보기 좋게 만들어라." 맞는 말이다. 아무리 길게 만든 프로그램이라도 20줄도 안되는 프로그램과 성능이 똑같다면 당연히 보기도 좋고 관리하기도 좋은 20줄 프로그램을 쓰겠지.이 20줄 프로그램을 쉽게 만들기위해 사람은 자신이 편리하게 개발과 연구를 했다. 그렇게 편리하도록 발달하는 과정. 그 생각을 잘보여준 세미나였다고 생각한다. 과연 네이버에서 자동완성됬던 Kesarr.
- 데블스캠프2011/첫째날/개발자는무엇으로사는가 . . . . 7 matches
* 나는 이따위 프로그램(개발툴)을 만들지 않겠다. - [김수경]
* 당신이 경쟁 유료제품을 위협할만한 만큼 고품질의 프로그램을 만들어 일반에 무료로 배포하고 있다는 가정을 해봅시다. 만약 경쟁회사에서 큰돈을 주며 프로그램을 폐기하라고 유혹한다면 당신은 어떻게 하시겠습니까?
* 내가 이 프로그램을 유료화하면 그보다 많이 벌 수 있다고 뻥쳐서 더 큰 돈을 받는다. - [김수경]
* 개발한 개수와 그때 그때 가졌던 직책의 권한 범위 - 개발한 프로그램의 개수를 통해 그 사람의 내공을 알아볼수 있다. 능동적인지 수동적인지 시키는데로만 했던건지 직책과 권한을 통해 이 사람이 무엇을 했는지 알아볼 수 있다. 만약 개발한 프로그램이 수십개가 넘는데 일개 개발자, 일개 개발자, 일개 개발자에 불과하다면 수동적인 사람으로 의심 할 수 있을것이다. 정해진 루틴따라 개발하는 일에서는 그만큼 편하긴 하겠지만 지속적인 변화가 요구되는 분야에서는 힘들것이다.
* 일개 개발자라도 프로젝트에 대한 문제점 지적이나 의견, 방향성을 제시할 수 있지 않나요? 저는 진정한 리더란 한발 물러나는 사람이라고 생각합니다. 앞에 나서기 좋아한다고 능동적인지, 그래서 좋은 프로그램을 짤 것인가는 알수없을 것 같아요~ - [서지혜]
- 데블스캠프2013/셋째날/후기 . . . . 7 matches
* 사실 자바를 약~간 깨작거렸지만 다른 사람들이 GUI를 사용하는 프로그램을 만드는 것을 보고 어떻게 하는 것인지 굉장히 궁금하였는데 이번 기회에 알게 되어서 너무나도 기뻤습니다 :D - [조영준]
* 회장님이 자바실습시험때, 이걸 이용해서 짜면 편하다고 추천해 준 것이었는데, 하지만 코드가 은근히 어려워져서 세세한 부분을 건드릴 때에는 더 많은 시간이 걸릴 것 같아서 안 쓴 윈도우빌더군요! 사실, 이 단점은 GUI 툴킷 프로그램이 짊어지고 가야 할 문제일 수도 있지만, 이번에 나름대로 빠른 프로그램 제작에는 편하겠구나라는 생각을 가지게 되었습니다. - [김해천]
= 서민관 / HTTP 프로토콜, C언어를 이용한 웹 서버 만들기 =
* 올해 데캠에서는 유난히 네트워크를 이용한 것이 많이 나오는 군요! 네트워크 매니아인 저를 불타오르게 하는 세션이였네요.(하지만, 저는 네트워크가 어떤 것인 지 공부했을 뿐, 어떻게 만드는 지는 공부를 안해서... 실습 때 애를 좀 먹었습니다..) 만드는 것이 더 어렵군요! 사이언스가 엔지니어링만큼 중요하지만서도, 역시 엔지니어링이 훨씬 더 대단한 일을 하고 있다는 것 느낍니다! - [김해천]
* 개인적으로 좀 아쉬움이 큰 세션이었습니다. 물론 머신 러닝이 쉬운 주제가 아니라는 건 맞습니다. 하지만 오히려 그렇기 때문에 강사 입장에서는 최대한 난이도를 낮추기 위한 노력들을 할 수 있지 않았을까 하는 생각이 조금 남습니다. 적어도 새내기나 2학년 들이 머신 러닝이라는 뭔가 무서워 보이는 주제 앞에서 의욕이 사라질 수 있다는 생각을 했다면, 전체적인 알고리즘의 간단한 의사 코드를 보여주거나, DataSet을 줄인다거나 해서 조금 현실적인 시간 내에 결과를 보고 반복적으로 소스 코드를 손을 볼 수 있게 할 수 있지 않았을까요. 적어도 간단한 샘플 소스를 통해서 이 프로그램이 어떻게 돌아가는가, 어떤 input을 받아서 어떤 output을 내는가 등에 대해서 보여주었다면 더 재미있는 실습이 될 수 있지 않을까 하는 생각이 듭니다. 머신 러닝은 흥미로운 주제지만, 흥미로운 주제를 잘 요리해서 다른 사람들에게 흥미롭게 전해줄 수 있었는가를 묻는다면 저는 좀 아쉬웠다는 대답을 할 것 같습니다. - [서민관]
* 제가 아는 김태진 형님이 맞습니다. 난이도는 확실히 어려웠습니다만, 새내기는 나름대로 생각해 볼 만한, 2~3학년 분들에게는 고민을 하게 하는, 모든 사람들이 대부분 도전해 볼만한 난이도였다고 봅니다. 저는 새내기가 생각하는 방향을 그대로 따라가면서 코딩을 해 줬는데, 잘 하더군요. 다행이었습니다! 아쉬웠던 점이라면, 데이터량이 너무 많아서 코딩하는 시간보다 검증하는 시간이 더 오래 걸렸네요. 다음에 이런 것을 하시게 될 사람이 있으시다면, 데이터량을 1/10 정도로(4000개는 넘지 말아 주세요..ㅠ) 줄여주셨으면 합니다. 프로그램이 실행해서 다 돌아가는 데 15분이 걸리다니요!!..ㅠㅠ 멀티코어를 쓰시던 분도 10분을 돌리셨다고 하더라고요.. - [김해천]
- 새싹교실/2011/Pixar/5월 . . . . 7 matches
* GCD 구하기
* 1에서 10000까지 소수 구하기
* 오늘 하노이탑을 하고 재귀함수를 이용한 숙제를 했습니당. 아오 하노이탑 어려웠습니다. from temp to 유후 아직 조금 어려워요 ㅠㅠ. 프링글스는 맛있었습니다. 오늘 ARRAY가 너무너무 배우고싶었는데 망할 오상준과 이승열 이자식들이 안와서 못배웠습니다 ㅠㅠ. 숙제 집에가서 다시한번해볼려구요 더 많이ㅣㅣㅣㅣ 배우고싶어요 누나 ㅋㅋㅋㅋㅋ
* 오늘은 재귀함수 복습하는 차원에서 하노이탑을 같이 구현해봤습니다. 아마 좀 어려웠을거예요. 저도 1학년때 어디서 열심히 보고 짰는데 방학되고 짜보려니 또 생각이 안 나서 헤맸던 기억이 나네요. 오늘 해봐서 알겠지만 완성된 하노이탑 소스코드가 원반 하나하나를 순서대로 옮기는 프로그램은 아니었어요. 그런데도 실행시키니 제대로 움직이는 걸 볼 수 있었죠. 만약 원반 하나하나를 따로 생각했다면 원반이 7개만 되어도 생각하기 너무 어려웠겠지만 n개의 원반을 옮기는 문제를 n-1개의 원반을 옮기는 문제와 n번째 원반을 옮기는 문제로 나눠서 생각하니 간단하게 해결됐죠. 앞으로 학년이 올라가면서 더 복잡한 프로그램을 짜다보면 이런 접근이 얼마나 중요한지 느끼게 될 거예요. 문제를 해결할 때 전체를 보고 단계를 나눌 수 있어야합니다. 우리가 그림을 그릴때 숲을 그린다고 하면 어떤 귀퉁이의 나뭇잎 하나부터 그려나가는 게 아니잖아요. 나무의 배치, 뼈대같은 것을 먼저 그려야 균형잡힌 그림을 그릴 수 있듯 프로그램을 만들 때도 큰 그림을 먼저 생각해볼 수 있었으면 좋겠습니다. 물론 그런 접근이 단번에 몸에 익지는 않을 거예요 ㅋㅋ
* 4피 환경이 여의치 않아 빈 강의실을 찾아 진행했습니다. 손코딩도 매우 좋은 학습 방법이라고 생각하지만 네명이나 되니 일일히 봐주기 어려워 직접 코딩하는 것보다 진행하기 어려웠어요. (다른 것들도 그렇지만) 배열은 사실 쓰는 법은 매우 간단합니다. 어떻게 활용하는지와 실제 배열 사용시 작동방법을 이해하는 것이 중요하다고 생각해요. 그런것들은 앞으로 다른 부분을 배우면서 실습을 통해 계속 배워나갈거예요. 다음 시간에는 새로 단장한 5피를 쓸 수 있었으면 좋겠습니다.
[새싹교실/2011/Pixar]
- 새싹교실/2013/라이히스아우토반/1회차 . . . . 7 matches
* 제로페이지 위키 작성법을(~~사실 나도 아는것만 알지만~~) 가르칠 겁니다.
* [http://soenlab.com SoEnLab:소프트웨어 공학 연구소(구 Winapi.co.kr)]를 소개.
* 제로페이지 위키 작성법을(~~사실 나도 아는것만 알지만~~) 가르칠 겁니다.
* [http://soenlab.com SoEnLab:소프트웨어 공학 연구소(구 Winapi.co.kr)]를 소개.
[http://rino0601.tistory.com/entry/tottkrrytlf1c23d750a0786b0896d 사진올리는 법을 못찾아서 블로그로]
1. 인터프리터라는 것도 있는 데, 코드를 프로그램으로 만들어 주는것은 컴파일러와 같지만, 컴파일러와는 다르다.
*컴파일러는 저급언어를 만들고, 인터프리터는 실행명령을 만듭니다. 이 만들어논 실행명령을 프로그램에 넣으면 실행이 되는거죠. 대표적인 인터프리터인 JVM을 가지고 와서 설명해야 할것 같은데.. 허허
- 암호화실습 . . . . 7 matches
||조동영,이재환,노수민||[HASH구하기/조동영,이재환,노수민]||
||권정욱,곽세환||[HASH구하기/권정욱,곽세환]||
||강희경,김홍선||[HASH구하기/강희경,김홍선]||
||박진영,김수진||[HASH구하기/박진영,김수진]||
||오후근,조재화||[HASH구하기/오후근,조재화]||
||류주영,황재선||[HASH구하기/류주영,황재선]||
||신소영||[HASH구하기/신소영]||
- 이영호/개인공부일기장 . . . . 7 matches
☆ 구입해야할 책들 - Advanced Programming in the UNIX Environment, Applications for Windows, TCP/IP Illustrated Volume 1, TCP/IP Protocol Suite, 아무도 가르쳐주지않았던소프트웨어설계테크닉, 프로젝트데드라인, 인포메이션아키텍쳐, 초보프로그래머가꼭알아야할컴퓨터동작원리, DirectX9Shader프로그래밍, 클래스구조의이해와설계, 코드한줄없는IT이야기, The Art of Deception: Controlling the Human Element of Security, Advanced Windows (Jeffrey Ritcher), Windows95 System Programming (Matt Pietrek)
2005년 7월 20일 시작 : Compilers(Jeffrey D. Ulman)
7 API 공부(마스터 수준). & Windows Kernel(리눅스 커널과의 차이점)
☆ 1일 (월) - struct task_struct 의 SUPERUSERBIT를 flagon 시킬 수만 있다면 root의 권한을 얻을 수 있다. kernel의 조작에는 회의적이지만 간접적으로 만질 수 있는 방법을 찾아봐야한다.
26 (화) - Compilers, C++(다양한 Virtual 상속, Class의 메모리 구조-C의 구조체와 대비하여/Class는 구조체로 포인터함수를 사용해 구현한 메모리 구조와 비슷하다.)
25 (월) - Compilers(한달에 1단원씩 떼기로 결정. 읽은곳 계속 읽어야 이해가 가능함. 오래전에 쓰여져서 상황도 과거로 이해해야함.), C++ Class 상속의 이해, 상속과 다형성
23 (토) - Compilers(정말... 정말 이 책 못보겠다. 어렵다. 미치겠다. 같은 부분 3번 읽고서 반정도 이해 되니 이거 무슨 왜 배워야되는지 이유를 알아야 머리에 들어오는데 그냥 무지막지하게 이론만 쓰다니.), Socket/System Programming in C (지난주 복습, 고급입출력, Broadcast/Multicast)
22 (금) - Compilers, C++(은닉성, 추상성, 상속성, 생성자, 파괴자 등등등등등) -> 다음주 금요일까지 복습까지 완료하자.
21 (목) - Compilers, C++공부 시작(C++자체가 쉬워 7일만에 끝낼거 같음. -> C언어를 안다고 가정하고 C++를 가르쳐 주는 책을 보기 시작.), 기본문법, namespace, function overloading, class 추상화, 은닉성까지 완벽하게 정리.
16 (토) - Socket/System Programming in C (Signal 처리와 Process간의 Pipe 사용법(IPC)), 유리수, 카네기 행복론.
- 1002/TPOCP . . . . 6 matches
다른 사람들이 이용한다는 것도 고려
문제해결방법을 찾는 여러 방법들을 인식하고 있다. 문제를 이해하기 위한 프로그램을 준비하기도 한다
case) 물리 교수로부터 해당 메트릭스를 반전하는 프로그램 작성. 한 개발자는 (A) 뭔가 배울 수 있는 좋은 기회라고 생각, buffering 을 이용하여 문제를 해결하려고 함.
각각의 프로그램에는 적절한 레벨이 있다.
A - 문제발생시 접근방법을 바꾸기 싫어함.(성능을 희생해야 할것이라 생각해버림)
- 2011년독서모임 . . . . 6 matches
* 매----우 유명하고 대중적이며 영화화에 게임도 나온 해리포터 시리즈입니다. 호그와트라는 미지의 세계는 아니지만 아무나 갈 수 없는 곳으로 가서 마법을 공부하고 경기를 하고 시험도 보고 싸움도 합니다. 해리포터가 재미있었던 이유는 예상치 못한 곳에서 일어난 반전 때문이었습니다. (가장 멍청해보인 허당 퀴렐 교수가 볼드모트의 심복이었고 알고 보니 론의 동생 지니가 낚였고 톰 마볼로 리들은 볼드모트의 리즈시절이었고 희대의 악당인줄 알았던 시리우스 블랙은 해리포터 아빠친구이자 그의 대부였다는 사실, 우승컵은 알고보니 포트키 등등...) 다른 학우들도 동의했지만 해리포터는 후반부로 갈수록 조앤 롤링 아주머니의 기대치에 대한 부담감 때문인지 재미가 없어집니다. 극적인 요소를 더하려고 각 편에 한명씩 죽고 (5편 시리우스, 6편 덤블도어) 반전도 이젠 그런가보다 해집니다. 가장 재밌던건 역시 1~3편이었던거 같아요.
* 배철수, 배순탁 공저의 Legend라는 책을 읽었습니다. 세계 팝 역사에 있어서 희대의 명반이라 불리우는 앨범 100장에 대한 소개와, 배철수의 '음악캠프'를 빛내 주었던 저명한 아티스트들과의 인터뷰, 그리고 최장수 라디오 프로그램과 최장수 DJ를 보유한 음악캠프의 지금까지의 계보 등을 볼 수 있었습니다. 그간 아는 음악만 골라 듣고 막연히 유명 아티스트들의 이름만 알고 그들의 음악도, 인생도 제대로 알지 못했던, 하지만 음악을 좋아하는 저로서 꽤나 몰입하면서 읽을 수 있었던 도서였습니다.
* 제가 정한 주제이지만, 최근에는 주로 인터넷과 함께 하기 때문에 취미다운 취미를 찾기가 힘들었습니다. 그러다가 서핑을 제외하고 그나마 오래 한 활동으로 수집이 떠올랐습니다. 수집이야기는 3장에 걸쳐서 구성되어있습니다. 1장에서는 가난한 자의 변으로 부자라고 해서 좋은 수집을 할 수 있는게 아니고, 가난하지만 훌륭한 안목이 있어 물건을 구할 수 있다고 합니다. 2장에서는 물건들 중 인상깊게 모았던 물건에 대한 에피소드를 다루고 있습니다. 너무도 구하고 싶지만, 구하기 힘들었던 물건이 인연이 닿아 자연스레 제 손에 들어오는 것이 참 인상깊었습니다. 3부에서는 어떤 불상을 발견하면서 불상을 만든 제작자의 여행지를 보면서 흔적을 쫓아가는 이야기입니다. 일기장을 분석하여 3일 이상이라도 머물렀던 곳에는 그 사람의 작품이 있다고 분석하고, 찾아다니는 내용에 저도 같이 보물찾기를 하는 기분이 들었습니다.
* [권순의] - 음.. 낚였습니다. 시험 후기 그런 책 찾다가 추천한게 있길래 읽었는데.. 이건.. 그냥 변호사 이야기더군요 -_-;; 그래서 이 책은 간단하게 소개를 하고 예전에 읽었던 책을 소개했습니다. 이범이라는 과탐 강사로 유명했던 사람이 쓴 책이었는데, 이런 종류의 책이 거의다 그렇 듯 자기 자랑이 쉼 없이 늘어지다가 뒷 부분에 공부 방법에 대한 이야기가 있었습니다. 다만 그 공부 방법이 다른 사람들이 쓴 내용과 약간 달랐던 것이, 메가스터디 대표인 손사탐(손주은 선생)이 쓴 책에서는 무조건 오래 자리에 앉아서 깊이 파라는 식으로 이야기가 되어 있고, 조... 이름이 뭐였더라.. 아무튼 그 분이 쓴 글에서는 짧은 시간에 임팩트 있게 공부하면서 빠르게 여러 과목을 공부하라는 내용이었는데, 이 이범이 쓴 말은.. 사람이란 다 같은 존재가 아니니까 자기 자신에 맞는 공부법을 선택 하라는 이야기였습니다. 뭐 이렇게 쓰라면 나도 쓰겠다라고 생각했었는데 사실, 이런 말을 직접 해 주는 사람이 여지껏 없었다는 생각이 들기도 했습니다. 정말로 당연해서였었는지는 모르겠지만... 여튼 이런 저런 이야기를 많이 할 수 있어 좋았습니다.
* [강소현] - 애덤 스미스 구하기
* [김태진] - 소현이누나가 '애덤 스미스 구하기'라는 책을 소개해주었는데 애덤스미스가 도덕 감정론이라는걸 썼다는걸 처음 알았네요. 그냥 보이지 않는 손만 알았는데 말이죠.. 현대에와서 필요한게 그런게 아닌가 생각해보게 되네요. 저는 폰더씨의 위대한 결정이라고 '폰더씨의 위대한 하루'후속편격인 책을 진경이에게 빌려서 읽...으려 하였으나 다 읽지 못하였습니다. 아직 책의 핵심내용에 들어간게 아니라 쓸 말도 별로 없네요 ㅠㅠ 위대한 하루는 7가지 교훈을 주는 책이었는데, 이 책도 비슷한 내용의, 교훈류 소설입니다. 빠른 시일내로 읽어야겠어요.
- 5인용C++스터디/윈도우에그림그리기 . . . . 6 matches
GDI(Graphics Device Interface)란 윈도우의 클라이언트 영역에 그리기를 하는데 사용되는 함수이다. 비디오 출력과 프린터에 그래픽 출력을 책임지고 있는 부분이다. 사용자가 Windows용으로 작성하는 응용 프로그램이 GDI를 사용하여 시각적인 정보를 출력할 뿐 아니라 Windows 자체도 GDI를 사용하여 메뉴, 스크롤 바, 아이콘, 그리고 마우스 커서 같은 사용자 인터페이스 아이템의 시각적인 출력을 수행한다.
DC(Device Context)는 GDI에 의해 내부적으로 관리되는 데이터 구조체이며 '''그래픽 작업을 하기 위해서 필요한 것'''이다. 그림을 그리고자 할 때에는 반드시 먼저 DC에 대한 핸들을 얻어야 한다. 프로그램에 이 핸들을 주는 것으로 Windows는 사용자가 그 장치를 사용할 수 있도록 허가해 준다. 그러면 핸들을 GDI 함수의 인자로 사용하여 현재 그리고자 하는 장치를 Windows가 식별할 수 있도록 한다.
첫번째 인자는 프로그램의 윈도우에 대한 핸들이다.
보통 프로그램이 WinMain에서 UpdateWindow를 호출할 때 발생한다. 이것은 윈도우 프로시저로 하여금 클라이언트 영역에 무엇인가를 그리게 한다.
두 경우에 있어서 첫번째 인자는 프로그램의 윈도우에 대한 핸들이다. 두번째 인자는 PAINTSTRUCT 형식의 구조체에 대한 포인터이다. PAINTSTRUCT 구조체에는 윈도우 프로시저가 클라이언트 영역을 그리는 데 사용할 수 있는 정보들이 저장되어 있다.
첫번째 인자는 프로그램 윈도우에 대한 핸들이다. 두번째 인자는 RECT형식의 사각형 구조체에 대한 포인터이다.
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpCmdLine, int nCmdShow)
- ACM_ICPC . . . . 6 matches
* [http://acm.kaist.ac.kr/phpBB3/viewtopic.php?f=7&t=129 2010년 스탠딩] - No attending
* [http://acm.kaist.ac.kr/phpBB3/viewtopic.php?f=25&t=657 2011년 스탠딩] - ACMCA Rank 26 (CAU - Rank 12)
* [http://acm.kaist.ac.kr/phpBB3/viewtopic.php?f=28&t=695 2012년 스탠딩] - OOPARTS, GoSoMi_Critical (CAU - Rank 15)
* [http://acm.kaist.ac.kr/phpBB3/viewtopic.php?f=32&t=5656&sid=8a41d782cdf63f6a98eff41959cad840#p7217 2013년 스탠딩] - AttackOnKoala HM
* [http://acm.kaist.ac.kr/phpBB3/viewtopic.php?f=35&t=5728 2014년 스탠딩] - ZeroPage Rank 32 (CAU - Rank 18, including Abroad team)
* [http://static.icpckorea.net/2020/scoreboard_terpin/ 2020년 스탠딩] - Decentralization Rank 54(CAU - Rank 35)
- ATmega163 . . . . 6 matches
* 비휘발성 프로그램 과 데이타 메모리
* Master / Slave SPI Serial Interface
* 용산 가서 9 pin 짜리 Serial Port 잭과 5.5volt 어덥터에 끼울 것을 준비한다.
* 9 pin 에서 TX는 2번 RX 3번 접지는 5번에 연결 시킨다.
* AVR-GCC는 AVR에서 Cross Compile을 위해 만든 공짜 컴파일러
#additional includes to compile
#compiler flags
- AcceleratedC++/Chapter6 . . . . 6 matches
* 5장에서 본것처럼 우리가 다루는 컨테이너들은 내부 사정은 다를지라도, 우리는 그것을 모르고도 똑같이 쓸 수가 있다. 즉 일관된 인터페이스를 제공한다는 것이다. 컨테이너나 반복자와 마찬가지로 표준 라이브러리도 일관된 인터페이스를 제공한다. 벡터를 배웠으면 리스트도 금방 쓸수 있는 것처럼, 하나의 알고리즘 쓰는 법을 배우면, 다른 것 쓰는 법도 금방 알수가 있다.
Chapter 4.2에서 제시된 중앙값을 이용한 방식으로 성적을 계산할 경우 악의적으로
과연 어느 정도로 결과에 영향을 주는지 실제로 프로그램을 작성하여 확인해본다.
2. 두 계산법을(위의1,2를 의미, 3도 포함해야할듯..@,.@) 각 그룹의 모든 학생들에게 각각 적용하고, 각 그룹의 중앙 값을 출력합니다.(6.2.2)
따라서 상기와 같은 함수를 이용한 뒤에는 이전에 할당된 반복자가 유효하다고 보고 프로그램의 로직을 만들어서는 안된다.
- AcceleratedC++/Chapter9 . . . . 6 matches
4.2.1절 Student_info 구조체를 다루는 함수를 작성하고, 이를 한개의 헤더파일로 통합을 하는 것은 일관된 방법을 제공하지 않기 때문에 문제가 발생한다.
본 장에서는 기존의 구조체를 확장하여 함수를 작성하고 이런식의 문제를 해결할 수 있는 방법을 알려준다.
string, vector 와 같은 것들은 Student_info의 내부 구현시에 필요한 사항이기 때문에 Student_info를 사용하는 프로그램의 또다른 프로그래머에게까지 vector, string을 std::에 존재하는 것으로 쓰기를 강요하는 것은 옳지않다.
그런데 더 나가서 이제는 아예 이 객체의 내부멤버를 프로그램의 다른 부분에서 다루는 것을 금지시키고 싶다면?
일반적으로 자료구조가 간단할 때에는 struct를 이용한다. 그러나 2가지 키워드의 사용의 차이는 존재하지 않는다. 단지 문서화를 어떻게 하느냐에 의해 차이가 생길 뿐이다.
만약 s:Student_info 에 read(istream&)을 통해서 데이터를 입력하지 않고서 s.grade()를 사용한다면 프로그램을 에러를 낼 것이다.
- Bigtable기능명세 . . . . 6 matches
1. ISSUE : 평균+일정 수치를 이용한 계산식 필요
서버에 장애가 생겨 기능을 하지 못하게 되었을 때 만기(expired) 되었다고 한다.
Locker나 태블릿 서버 접근은 클라이언트 API로 한다.
1. 클라이언트 api 사용
1. 클라이언트 api 사용
1. 클라이언트 api 사용
== 클라이언트 API ==
태블릿 서버용 api
- C++스터디_2005여름/도서관리프로그램 . . . . 6 matches
== About [C++스터디_2005여름/도서관리프로그램] ==
지금까지 배운 것을 이용하여 도서관리 프로그램을 만든다. 간단한 기능은 다음과 같다.
도서관리프로그램에 책을 등록할 수 있다. - 이 때, 책 이름, 저자, ISBN을 사용자로부터 입력을 받아 새로 구입한 책의 정보를 입력하게 한다.
|| 조현태 || [C++스터디_2005여름/도서관리프로그램/조현태] ||
|| 남도연 || [C++스터디_2005여름/도서관리프로그램/남도연] ||
|| 문보창 || [C++스터디_2005여름/도서관리프로그램/문보창] ||
- C/Assembly/Main . . . . 6 matches
pushl %ebp // 현재의 명령어 Counter를 Stack에 저장함. 이 프로그램이 끝나면 stack에서 다시 꺼냄.
leave // 프로그램의 종료. stack에서 프로그램 시작 전의 명령어를 꺼내 %ebp에 집어 넣는 역할.
ret // 프로그램이 종료.
따라서 프로그램이 시작하고 나갈때에는 어디서 프로그램을 시작하고 끝냈는지 위치를 저장(push)하고 꼭 반환(leave)해야한다.
- Classes . . . . 6 matches
=== CompilerDesignClass ===
[http://c2.com/cgi/wiki?TwentyFirstCenturyCompilers]
[http://kangcom.com/common/bookinfo/bookinfo.asp?sku=200012050016 Compilers]
Upload:CompilerExercises.ppt
=== ComputerGrapichsClass ===
* http://web.cs.wpi.edu/~matt/courses/cs563/talks/dist_ray/dist.html
- CodeYourself . . . . 6 matches
모두 같지는 않겠지만 전산학과에 입학한 신입생들이 언어를 배우는 단계를 보자면, ''처음엔 뭘 배우고 그다음엔 뭘 배우고 그다음엔 OS, SE'' 등등등, 정해진 순서와 틀 안에서 전산학의 이모저모를 접하게 된다. 이렇게 짜여진 순서에서 그리고 판에 박힌 수업안에 있다보면 자연히 그 안에 있는 학생들도 경직되어 있을 수 밖에 없다(다행이 중앙대학교 컴퓨터공학과에는 ZeroPage가 있다). 이렇게 느끼고 있는 상황에서 이 과제는 나에게 신선한 충격을 주었다. 신입생들은 전혀 감을 잡지 못하고 이것을 어떻게 해야 할지 선배들에게 많은 조언을 구하곤 했지만(자문요청을 받은 대부분의 선배는 ''이러이러한 방식으로 해라'' 라고 하면서 거의 C 문법에 가깝게 일기를 작성했다), 나는 이번 과제만큼은 선배들의 도움을 얻지 말고 자기 '''스스로''' 결과물을 만들었으면 하는 바램을 갖고 있다. 이번에 작성했던 자신의 프로그램 (그렇다. 일기가 아니고 프로그램이다)과 앞으로 자신이 배우게 될 프로그램을 비교해보았으면 좋을 것 같다. 그리고 순수하게 신입생의 사고로 만들어진 그 코드를 보고싶은 마음도 간절하다. - [임인택]
C언어로 일기를 쓰라는 숙제가 있었나요? 재미있네요. 그런데 이건 좀 어려운 과제 같습니다. 왜냐하면, 프로그래밍의 일상적 시간 흐름과 정반대가 되기 때문입니다. 무슨 말이냐면, 프로그래밍이라는 행위는 시간의 순방향입니다. 내가 작성한 프로그램은 미래에 일어날 사건(실행)에 대한 청사진이죠. 하지만 일기는 주로 시간의 역방향입니다. 과거에 일어났던 일들을 정리, 기록하는 성격이 강하죠. 프로그램으로 과거의 일을 기록한다는 것은 어찌보면 쉽지만 또 어찌보면 매우 어려운 문제일수도 있습니다. 신입생 입장에서는 시간의 흐름에 따라 일어났던 과거의 이벤트 연속을 적는 수준이면 될 것 같습니다. 아쉬운 것은, 이렇게 되면 조건 분기문을 활용하기가 어렵다는 점입니다. 힌트를 준다면, 리팩토링을 하면 가능합니다(내 하루의 중복을 어떻게 제거할지 생각해 보세요 -- higher-order function이 나올 정도면 상당히 진전된 것입니다). 어차피 과거의 기록 역시 "기술"(description)의 일종이고, 미래의 계획도 "기술"이니까요.
이런 훈련이 되면 "과거형 프로그래밍"이 가능해집니다. 마치 과거에 일어난 일에 대한 기술인 것처럼 프로그램을 작성하는 것이죠. 이것은 일종의 사고의 도구입니다. 이런 실험이 있습니다. 자신의 교수가 다가오는 여름휴가 때 뭘 할지 상상을 해서 종이에 적어보라고 학생들에게 시켰습니다. 다른 그룹의 학생에게는 그 교수가 이미 여름휴가를 다녀왔다고 가정을 하고 과거형으로 무슨 일을 했는지 적어보라고 했습니다. 후자의 그룹이 쓴 내용이 훨씬 더 풍부하고 자세했다고 합니다.
- CubicSpline/1002/GraphPanel.py . . . . 6 matches
self.piecewiseLagrange = PiecewiseLagrange(DATASET, 4)
self.errorPiecewiseLagrange = ErrorPiecewiseLagrange(DATASET, 4)
def mappingToScreenX(self, x):
def mappingToScreenY(self, y):
self.plotPiecewiseLagrange(dc)
self.plotErrorPiecewiseLagrange(dc)
realX = self.mappingToScreenX(x)
realY = self.mappingToScreenY(y)
def plotPiecewiseLagrange(self, dc):
self.plotGraph(dc, self.piecewiseLagrange, wxColour(255,255,0))
def plotErrorPiecewiseLagrange(self, dc):
self.plotGraph(dc, self.errorPiecewiseLagrange, wxColour(255,255,200))
- EightQueenProblem . . . . 6 matches
이 프로그램은 Input을 요구하지 않는다.
시간을 잴 때에는 Wiki:SandglassProgramming 에 소개된 프로그램을 이용하면 편리합니다. 화장실을 다녀온다든가 할 때 필요한 중간 멈춤(pause) 기능도 있습니다.
''참고로, 소요시간이 모두 얼마냐 하는 것이 크게 중요한 것은 아닙니다. 중요한 것은 그 동안 얼마나 가치있는 무엇을(얼마나 더 얼마나 덜) 했냐는 것이죠. 남들보다 시간이 오래 걸리고, 코드가 길어졌다고 슬퍼하십니까? 아닙니다. 오히려 '''축하드립니다'''. 당신은 그만큼 큰 배움의 기회를 만난 겁니다. 자신의 프로그램이 다른 사람들의 그것보다 월등하다고 자랑스러워하며, 더 이상 배울 것이 없다고 생각하십니까? 아닙니다. 당신은 자신이 이렇게 훌륭한 해를 구한 것을 남에게 설명해 줄 기회를 찾았습니다. 가르치는 것만큼 큰 배움도 없습니다(이 때 자신이 만든 프로그램 자체를 설명하려고 하는 것보다 자신이 어떤 사고과정과 어떤 프로그래밍 성장 과정을 통해 최종물에 도달했는지를 반추해보고 설명해주는 게 더 좋겠습니다). 또 다른 사람들은 무엇 때문에 자신과 같은 좋은 해를 얻지 못했는지 분석을 할 여유가 있습니다.''
* 프로그래밍을 잘한다는 것은 단순히 빠른 시간 안에 짧고 기발한 프로그램을 만들어낸다는 것이 아니라는 것을 인식시켜주기 위해
* 이미 만들어진 종적 상태의 프로그램에서보다 그것을 전혀 모르는 상태에서 직접 축조(construct)해 나가는 과정에서 배우는 것이 훨씬 더 많고, 재미있으며, 효율적인 학습이 된다는 것을 느끼게 해주기 위해
- EightQueenProblemDiscussion . . . . 6 matches
만약 당신보다 더 짧은 시간에, 더 짧은 코드로 문제를 해결한 사람이 있다면, 그 사람과 함께 PairProgramming (혹은 NetMeeting 등을 이용, VirtualPairProgramming)을 해서 그 문제를 함께 새로 풀어보세요. 당신은 무엇을 배웠습니까? 그 사람은 어떤 방식으로 프로그램의 올바름(correctness)을 확인합니까? 그 사람은 디버깅을 어떻게 합니까(혹은 디버깅이 거의 필요하지 않은 접근법이 있던가요)? 그 사람은 어떤 순서로 문제에 접근해 갑니까? 그 사람은 어느 정도로까지 코드를 모듈화 합니까? 이 경험이 당신의 프로그래밍에 앞으로 어떤 변화를 불러올 것이라 생각합니까?
일단 구석에서부터 채워나가면 실패한다.. (7개까지는 되지만.. 여덟개는 되지 않는다) 뭔가 다른방법을 찾아 보아야겠다.
두번째.. 가장 작은 자리수를 채워나가면 실패한다 (역시 7개까지 되지만.. 여덟개는 되지 않는다.) 역시 다른방법을 찾아야겠다.
이런 암호같은 프로그램도 있다는..
Note that the d=(e-=d)&-e; statement can be compiled wrong on certain compilers. The inner assignment should be executed first. Otherwise replace it with e-=d,d=e&-e;.
- Garbage collector for C and C++ . . . . 6 matches
# compilers that reorder stores. It should have been.
# -DGC_NO_OPERATOR_NEW_ARRAY declares that the C++ compiler does not support
# code should NOT be compiled with -fomit-frame-pointer.
# Building this way requires an ANSI C compiler.
# Assumes a very recent gcc-compatible compiler and assembler.
# Empirically the code appears to still run correctly on Pentium II
- HardcoreCppStudy/두번째숙제/CharacteristicOfOOP/변준원 . . . . 6 matches
프로그램상에서의 캡슐화의 의미는 프로그램 분석자나 설계자가 주어진 문제를 데이타와 함수들의 세부사항들은 개발의 차후단계에서 정의하고, 객체라는 덩어리 단위로 문제에 대해 생각하게 하는 추상화의 수단을 제공하는 데 있다.
속성 상속이라는 개념 역시 우리의 일상 생활에서 흔히 사용하는 개념을 프로그램으로 표현하기 위한 편리한 수단이다. 어떤 객체의 종류, 즉 클래스는 좀 더 세분화하여 분류할 수가 있는데 이렇게 세분화된 종류나 유형을 subtype 혹은 subclass라고 한다.
객체지향 프로그래밍에서 "속성 상속"은 새로운 클래스를 정의할 때 모든 것은 처음부터 다 정의하는 것이 아니라 이미 존재하는 유사한 클래스를 바탕으로 하여 필요한 속성만 추가하여 정의하는 경제적인 방법을 의미한다. 이 때 새로이 생기는 클래스를 subclass라 하고 그 바탕이 되는 클래스를 superclass라 한다. 이렇게 하면 클래스들 사이에서 공통으로 가지는 특성, 즉 데이타 구조나 함수들은 중복하여 정의하는 일을 줄일 수 있을 뿐 아니라, 특성을 수정하거나 추가시에 superclass의 정의만 고치면 그 subclass들도 변경된 속성을 자동적으로 상속받게 되므로 매우 편리하다.
객체 지향 프로그램의 중요한 특징으로 하나의 함수 이름이나 심볼이 여러 목적으로 사용될 수 있는 다형성(Polymorphism)을 들 수 있다. 객체 지향에서의 다형성이란, 복수의 클래스가 하나의 메세지에 대해 각 클래스가 가지고 있는 고유한 방법으로 응답할 수 있는 능력을 말한다. 즉, 별개로 정의된 클래스들이 ㅌ은 이름의 함수를 별도로 가지고 있어 하나의 메세지에 대해 각기 다른 방법으로 그 메세지를 수행할 수 있는 것을 의미한다. 예를 들어, 여러 가지 화일(file)들을 프린트 하는 함수를 생각해 보자. 화일에는 간단한 텍스트 화일(text file), 문서 편집기로 만든 포멧 화일(format file), 그래픽을 포함하는 화일(file with graphics) 등 여러 가지가 있다. 이들 각각의 화일들은 프린트 하는 방법이 모두 다르다, 객체 지향에서는 아래처럼 각 종류의 화일을 별도의 클래스로 정의하고, 각각의 화일 종류별로 Print라는 함수를 화일의 형태에 맞게 구현한다.
위에서 살펴볼 캡슐화와 정보 은폐의 이점은 우선 객체 내부의 은폐된 데이타 구조가 변하더라도 주변 객체들에게 영향을 주지 않는다는 것이다. 예로서, 어떤 변수의 구조를 배열(array)구조에서 리스트(list) 구조로 바꾸더라도 프로그램의 다른 부분에 전혀 영향을 미치지 않는다. 또한 어떤 함수에 사용된 알고리즘을 바꾸더라도 signature만 바꾸지 않으면 외부 객체들에게 영향을 주지 않는다. 예를 들어, sorting 함수의 경우 처음 사용된 sequence sorting 알고리즘에서 quick sorting 알고리즘으로 바뀔때 외부에 어떤 영향도 주지 않는다. 이러한 장점을 유지보수 용이성(maintainability) 혹은 확장성(extendability)이라 한다.
- InvestMulti - 09.22 . . . . 6 matches
import pickle
pickle.dump(user, f)
import pickle
pickle.dump(user, f)
import pickle
pickle.dump(user, f)
- JavaNetworkProgramming . . . . 6 matches
*동기화의 효율 : 대부분의 경우 동기화 작업은 매우 중요하며, 때로는 적대 생략해서는 안되는 경우도 있다. 그러나 불필요한 동기화 작업은 프로그램의 수행 성능을 떨어뜨리고, 재사용성을 감소시키며, 프로그램이 교착 상태에 빠지게 할 수도 있다.
*6장 : 스트림을 사용한 파일 처리 프로그램밍의 진수
*7장 : 필터를 이용한 스트림의 확장 기법
*8장 : API로 제공되는 스트림 필터
*스트림 : 네트워크 프로그램에서 아주중요한부분 --> 요책이 스트림에대해서 자세히나온다.딴데는 대충 설명하는데...--;
=== Chapter7 필터를 이용한 스트림 확장 기법 ===
=== Chapter8 API로 제공되는 스트림 필터 ===
*지금까지는 스트림 필터의 개념을 중심으로 보왔고 이번장에서는 API로 제공되는 몇가지 스트림에 관해 살펴보고 자기만의 필터를 만들어본다.
*PipedOutputStream
*PipedInputStream
*PipedWriter : 파이프 클래스는 스레드 통신 수단인데 Writer니깐 문자기반이다. PipedReader와 연결되서 한쪽에서 쓰고 다른쪽에서 읽는다.
*PipedReader
- JosephYoder방한번개모임 . . . . 6 matches
== 프로그램 ==
* [https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=1pibLA94VQ8Z1cckW8IOsedbQ9joDuCwwafH93jHDgv3l-ASNn_QW2rGhxrWT&hl=en_US Refactoring Testing and Patterns]
* 질문을 더 효과적으로 하는 법을 익히자.
프로그램은 자기소개, 리펙토링의 중요성, 기본적인 리펙토링 기법, Agile과 리펙토링의 상관 관계, QnA, QnA중 Joseph이 쓰는 기법에 관한 설명 으로 이루어졌다.
* 패턴을 이용한 리팩토링
- MindMapConceptMap . . . . 6 matches
컴퓨터 프로그램에서도 MindMap 과 ConceptMap 을 그리는 프로그램이 많다. 하지만, 그렇게 효율적이지는 않은 것 같다. (아직까지 연습장과 펜 만큼 자유롭지가 않다. ["TabletPC"] + Visio 조합이라면 또 모를까;) MindMap 이건 ConceptMap 이건 기존 지식으로부터 연관된 지식을 떠올리고, 사고하고, 재빨리 Mapping 해 나가는 과정자체가 중요하기에. (["1002"]는 개인적으로 프로그래밍을 하려고 했다가; 그리 유용하단 느낌이 안들어서 포기했다는. 여러 프로그램들을 써 봤지만, 결국 도로 연습장 + 펜 으로 돌아갔다. ^^; 그리고 개인적으로 Map 자체를 도큐먼트용으로 보관하는것에 의미를 두지 않아서.)
MindMap 의 표현법을 다른 방면에도 이용할 수 있다. 결국은 트리 뷰(방사형 트리뷰) 이기 때문이다. [1002]의 경우 ToDo 를 적을때 (보통 시간관리책에서 ToDo의 경우 outline 방식으로 표현하는 경우가 많다.) 자주 쓴다. 또는 ProblemRestatement 의 방법을 연습할때 사용한다. --[1002]
- NUnit/C++예제 . . . . 6 matches
* 예제는 아무 생각없이 만들었고, 테스트 할 필요도 없는 거지만.. 그냥 사용법을 보는 거니까 신경쓰지 마세요.
평소대로 하자면 이렇게 하면 될것이다. 하지만 현재 프로젝트는 [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmxspec/html/vcmanagedextensionsspec_16_2.asp Managed C++ Extensions]이다. 이것은 C++을 이용해서 .Net을 Platform위에서 프로그래밍을 하기 위하여 Microsoft에서 C++을 확장한 형태의 문법을 제안된 추가 문법을 정의해 놓았다. 이를 이용해야 NUnit이 C++ 코드에 접근할수 있다. 이경우 NUnit 에서 검증할 클래스에 접근하기 위해 다음과 같이 클래스 앞에 [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmxspec/html/vcmanagedextensionsspec_16_2.asp __gc] 를 붙여서 선언해야 한다.
이 경우 Unmanaged C++ 코드에 대해서 적용할수 없다. 즉, MFC로 완성된 프로그램이라도, .Net Platform 이 없는 곳에서는 작동할 수 없다. (로직에 __gc 가 존재하므로)
아.. __gc를 쓰면 닷넷 플랫폼없는 곳에서는 쓸 수가 없겠네요. 그러면 이방법은 어떤가요? 일단 테스트할때는 테스트할 클래스에 __gc를 붙이잖아요? 나중에 배포할때는 __gc를 없애는 겁니다. 물론 Managed C++ Extensions의 문법을 쓰면 안되겠죠.(__gc빼고) 매크로를 잘 쓰면 어떻게 될거 같기도 한데... --[인수]
그것을 떠나서, MFC를 쓰면서 테스트를 하는 것이 의미 있어 지려면, MFC 로 작성한 프로그램이 정상 동작하면서, 테스트를 할수 있어야 하는데, MFC Frameworks 이 Managed C++ 모드로 컴파일이 잘되고, 잘 돌아가는지, 이것이 의문이다. 된다면, MS에서 모든 MFC class앞에 __gc가 붙이기라도 한걸까? 혹은 이미 해당 매크로가 존재하지 않을까?
- OurMajorLangIsCAndCPlusPlus/errno.h . . . . 6 matches
||7||int E2BIG||인수가 너무 길다;실행함수에 의해서 실행되는 새로운 프로그램에 주어진 인수가 너무 큰 메모리 공간을 사용할 때.||
||29||int EXPIPE||적합하지 않은 탐색 명령.( pipe에서 처럼 )||
||32||int EPIPE||부러진 파이프; 다른 파이프의 끝에서 프로세스를 읽는 것은 불가능 하다. 모든 라이브러리 함수 는 SIGPIPE로 일반화된 에러코드를 리턴한다. 이 신호는 만약 처리되지 않거나 막아지지 않으면 그 프로그램을 멈추게 한다. 그러므로 프로그램이 처리되거나 블록된 SIGPIPE를 갖지 않으면 항상 EPIPE가 보일 것이다.||
|| || ||참고로 sysbolic links는 데이터베이스 프로그램과 스프레드 시트 등과 같은 프로그램들 사이에서 상호 간의 원활한 데이터 교환을 위해 사용되는 데이터 파일의 형식||
- Pairsumonious_Numbers/권영기 . . . . 6 matches
list <int>::iterator it1, it2, temp, tempit;
tempit = find(it2, sum.end(), ans[s-1] + ans[s]);
back(s+1, tempit);
list<int>::iterator iter, tempit;
tempit = find(sum.begin(), sum.end(), ans[2]+ans[3]);
back(4, tempit);
- PragmaticVersionControlWithCVS/WhatIsVersionControl . . . . 6 matches
'''원칙:만약 프로젝트의 진행에서 없으면 곤란한 모든 것이 버전관리의 대상이된다. 즉 반드시 프로그램의 빌드만이 아니라 차후에 필요한 다큐도 버전관리를 해야할 필요가 있다'''
지역 작업공간(local workspace)는 원격에 저장된 파일들을 프로그램의 개발을 위해서 개발자가 가지고 있는 컴퓨터에 받아서 프로그램을 수정하도록 하는 공간임.
기본적으로 Version Control 에서 관리의 가장 작은 단위는 파일이다. 그외에 한개의 프로젝트 단위로 전체 프로그램을 관리하고, 그 하부에 모듈을 기준으로 해서 소스를 관리한다.
이런 개발중심축상에서 만약 특정 시점에서 프로그램의 릴리즈 버전이 완성되어서 QA과정으로 들어갔다고 생각해보자. 이때, 프로젝트의 다른 팀원들과 동시에 개발을 진행시켜 나가면서, QA과정에서 발생된 치명적인 버그를 본래의 개발중심축상에 반영시키기 위해서 만들어진 개념임. (그림이 있어야 이해가 쉬울듯. 글만 읽어서는 SE를 듣지 않은 이상 이해 힘들어보임.)
브랜치를 이용하면 한명의 개발자가 한개의 컴퓨터를 가지고도 릴리즈 버전의 버그 수정작업과 mainline상의 프로그램의 개발을 동시에 하는 것이 가능하다.
- ProgrammingPearls/Column4 . . . . 6 matches
* 프로그램의 correctness를 판별하기 위해, 프로그램의 중간중간에 assert를 집어넣고 있다.
* 프로그램을 한줄한줄씩 따라 내려가면서 Loop에서는 위의 원칙을 적용해 corret한가를 검사하고 있다.
* Assertions : 입력, 변수, 출력간의 관계는 프로그램의 상태를 묘사해준다. assertion은 그들의 관계를 정확히 말해준다.
* Sequential Control Structures : 이 문장 다음에 저 문장. 그 사이에 assertion을 집어넣는다. 그럼 프로그램 문장 하나하나의 각각의 진행상황을 체크할수가 있다.
* Functions : precondition - 함수 시작 전에 보장되어야 할 조건 -과 postcondition - 함수 끝날때에 보장되어야 할 조건 -을 명시해준다.(...) 이러한 방법을 "Programming by contract"라 한다.
- ProjectSemiPhotoshop/SpikeSolution . . . . 6 matches
이 페이지는 ["ProjectSemiPhotoshop"]의 Spike Solution 페이지 입니다.
== Spike Solution ==
LPSTR WINAPI FindDIBBits(LPSTR lpbi)
DWORD WINAPI DIBWidth(LPSTR lpDIB)
LPBITMAPINFOHEADER lpbmi; // pointer to a Win 3.0-style DIB
lpbmi = (LPBITMAPINFOHEADER)lpDIB;
DWORD WINAPI DIBHeight(LPSTR lpDIB)
LPBITMAPINFOHEADER lpbmi; // pointer to a Win 3.0-style DIB
lpbmi = (LPBITMAPINFOHEADER)lpDIB;
WORD WINAPI PaletteSize(LPSTR lpbi)
WORD WINAPI DIBNumColors(LPSTR lpbi)
* color table can be less than the number of bits per pixel
dwClrUsed = ((LPBITMAPINFOHEADER)lpbi)->biClrUsed;
* the number of bits per pixel for the DIB.
wBitCount = ((LPBITMAPINFOHEADER)lpbi)->biBitCount;
/* return number of colors based on bits per pixel */
HGLOBAL WINAPI CopyHandle (HGLOBAL h)
LPBITMAPINFOHEADER lpBI;
lpBI = (LPBITMAPINFOHEADER)::GlobalLock((HGLOBAL)m_hImage);
LPSTR pPixels;
- SeminarHowToProgramIt . . . . 6 matches
* Programmer's Journal -- Keeping a Diary (see also NoSmok:KeepaJournalToLiveBetter )
=== 프로그램 (pun intended) ===
* 9:35-10:00 프로그램 시연, 설명, 전체 토론
해당 팀은 개발 환경, 언어 선정부터, 프로그램 디자인, 코딩까지 모두 함께 하게 됩니다. 한가지 문제 상황이 주어질 것이고, 제가 고객역할을 합니다. 개발 진행 중에 몇번의 요구사항 수정이 있을 것이므로, "적응도"에 대한 테스트가 자동으로 이루어 질 것입니다. 개발 완료 후에는 각각 다른 언어로 구현된 프로그램들을 살펴보며 비교 토론을 할 것입니다.
'''Pipe Team''' 채희상, 강석천, 류상민, 김형용
이 때, OOP가 가능한 언어를 추천하고, 해당 언어의 xUnit 사용법을 미리 익혀오기 바랍니다. (반나절 정도가 필요할 겁니다) http://www.xprogramming.com/software.htm 에서 다운 받을 수 있습니다.
- TAOCP/Exercises . . . . 6 matches
0000~0099메모리 셀을 모두 0으로 만드는 프로그램
프로그램을 3000부터 로드해야 되는데... 아직 모르는게 많다
프로그램은 3000부터 시작
프로그램 실행 뒤에도 모든 메모리 셀의 값이 변하지 말아야 함.
X^13이 rA에 들어가는 프로그램 작성(X^13이 한 WORD를 넘지 않는다고 가정)
+ e d c b a 가 rA에 저장되는 프로그램 작성
- TugOfWarInput . . . . 6 matches
이 자료를 TugOfWar 프로그램에 넣으면 (심사 서버에서) 10초 이내에 다음 결과가 나와야 한다.
참고로 TugOfWar 온라인 로봇 심사위원은 틀렸다. 잘못된 프로그램(50,50,100,200 경우 답이 150,250이어야 하는데, 200,200인 프로그램도 통과)을 걸러내지 못한다.
사람이 총 네사람 있다. 몸무게가 각각 50, 50, 100, 200이다. 이 네사람을 두 팀으로 나눈다면 가능한 경우는 둘 씩 나누는 경우 하나 뿐이다. (하나 셋으로 나누면 두 팀의 인원 차이가 2가 되어서 부적격) 둘 둘 나눌 때 두 팀 간 몸무게 차이가 최소가 되는 경우는 150, 250인 경우이다. 200, 200으로 나누는 것은 불가능하다. 그러나 현재의 온라인 로봇 심사위원은 이런 틀린 답이 나올 "예리한" 테스트 케이스를 포함하고 있지 않아서 잘못 작성된 프로그램도 통과시킨다.
제대로 작성된 프로그램은 당연히 온라인 로봇 심사위원의 테스트 케이스를 모두 통과하며, 게다가 덤으로 50,50,100,200 인 경우에도 통과한다. 하지만 Programming Challenges 책에 실린 모법 답안 등의 프로그램은 로봇 심사위원의 테스트는 통과하지만 50,50,100,200 같은 경우는 실패한다.
- UbuntuLinux . . . . 6 matches
한글이 안 써진다. 여태까지 그걸 모르고 있었다니 놀랐다. 문제가 조금 어려워지니까 한글이 안 써지는 것도 걸림돌이 되었다. 어차피 한글을 안 쓸 수는 없으니까 한글 입력을 하는 방법을 찾아보았다.
못 찾은 건지 몰라도 한글 입력이 기본이 아닌가보다. 키보드에 영어랑 일본어도 있는데 한글은 없다. 세종대왕이 알면 가슴을 치며 한탄하시겠군. 한글 입력 하는 방법을 찾던 중 우분투 홈페이지게 가 보았고, ''나비''라는 프로그램을 설치하면 된다는 사실 발견. 드디어 한글을 쓸 수 있게 되었다. 우리말이 정말 사랑스럽다.
다음 목표는 이전에 사용하던 윈2000을 멀티부팅하기. 사실 리눅스만 쓰고 싶은 마음이 간절하지만 각종 윈도우 전용 프로그램을 사용하던 과거를 한 순간에 지워버리지는 못하거든.
물리적 하드 두개에 리눅스와 윈도우가 따로 설치된 상황이라서( 둘은 서로를 모른다.) 사실 안 되는 게 아닐까 걱정도 했다. 웹을 찾아보니 윈도우나 리눅스를 먼저 설치한 뒤 다른 하나를 설치한 경우가 대세였다. 태반은 하드 하나를 파티션을 나누는 방법으로( 굉장한 노력인듯.;; 하드가 두개 있어 아무런 걱정없이 리눅스를 다르는 하드에 설치한 나는 행운인가.;;;) 두 운영체제를 골라서 사용하는 방법을 설명하고 있었다.
이 명령을 이용한다. 제길 이거만 알았어도 eth0이 왜 안잡히냐고 삽질할 필요도 없었을 텐데.. 알고보니 eth2에 잡혀있는 것이 아닌가!
- WeightsAndMeasures/신재동 . . . . 6 matches
def pileUpTurtles(turtles):
pile = [turtles[0]]
pile.append(t)
#showTurtles(pile)
return len(pile)
numOfTurtle = pileUpTurtles(turtles)
- WinCVS . . . . 6 matches
1. 프로그램을 시작하고 첫 화면을 보자. 무심코 지나쳤다면 Ctrl+F1 또는 Admin - Preference 를 보자.
* Host Address : local이외의 접속방법을 설정하였을때 host의 주소를 넣어준다.
* User Name : local이외의 접속방법을 설정하였을때 ID를 넣어준다.
* External Diff Program : 파일을 비교할 프로그램을 설정한다.
* Default viewer used to open : 파일을 볼때 쓸 프로그램을 설정한다. 메모장정도면 충분하다.
CVSNT : CVS의 NT용 서버 프로그램 ["www.cvsnt.org"]
- YetAnotherTextMenu . . . . 6 matches
이번에도 역시나 텍스트 메뉴를 입력도구로 사용하는 프로그램이다.
보통 ToyProblems를 내줄 때, 입력양식으로 텍스트 메뉴를 이용하라는 요구사항이 주어지기도 한다. JuNe이 보기에는 이것은 "단견"이다. 학생들은 매번 비슷한 방식으로 텍스트 메뉴 프로그램을 만들 것이고, 매번 거기에 일정 시간을 빼앗길 것이다. 재미있게도 텍스트 메뉴를 사용하는 프로그램을 작성하면, 학생들이 만드는 프로그램 역시 그 메뉴의 구조를 닮는다. 이것은 그다지 바람직하지 않은 경우가 많다.
표준 입, 출력으로 간단하게 입력 받고 출력하게 하라. 입력자료는 다른 프로그램의 출력일 수 있다고 가정하고, 출력자료는 다른 프로그램의 입력으로 들어갈 수 있다고 가정하라.
- ZP&JARAM세미나 . . . . 6 matches
|| 8시 20분 || [이병윤] - network snipping, spooping ||
* 이병윤 - network snipping, spooping
행사내용에 있어서는 2번의 세미나가 조화롭게 이루어진 것 같아요. 처음 세미나는 subversion의 유용성에 대한 세미나였는데 기술적인 내용은 아니었지만 충분히 subversion의 매력을 느낄 수 있게 해 주신 세미나였고 두번째 세미나는 LAN 환경에서 어떻게 snipping, spooling 하는지 개념에서부터 실제 방법까지 잘 설명되어 있어서 이해가 잘 되었습니다.
ps. 아참, 제로페이지의 행사로 소개되었던 "지금그때(?)"라는 프로그램 좋은것 같더라구요. 우리학회에서도 하면 좋겠다 라는 생각을 했어요~
- ZPBoard/AuthenticationBySession . . . . 6 matches
Session 을 이용한 인증.
=== Session 을 이용한 인증 ===
i. 처음 사용자가 로그인을 합니다. 이때 세션 아이디를 생성해서 저장하겠죠? 데이터베이스를 이용한다고 가정하고, 생성한 세션아이디를 키 값으로 해서 부가적인 정보를 기록합니다. 여기서는 현재 요청이 온 시각을 기록하면 되겠군요.
문제 자체가 중요한가요? 어떤게 문제이고, 왜 문제가 되는지, 문제가 왜 문제가되는아는 과정이 중요하다고 생각해서 이런식의 문답법을 의도하게 됬습니다. 단순히 문/답을 열거하는것보다 문제를 발견하는 과정이 중요하게 생각되어 이렇게 했는데, 받아들이는 입장에서는 그게 아니었나 보군요. 다시한번 묻겠습니다. 그냥 문제와 답을 원하는지 답을 달아주기 바랍니다. --["sun"]
* 질문들이 조금 이해가 안돼서요... 그럼 세션과 쿠키를 같이 사용하면 생각하시는 문제가 해결이 될까요? 쿠키의 만료 기간을 주지 않으면 브라우져를 닫으면 없어지는걸로 알고 있는데요 처음에 쿠키를 확인해 없다면 세션이 남아있더라도 지워버리는 방법을 사용하면 문제가 해결 될까요? --["상규"]
* '''처음에 쿠키를 확인해 없다면 세션이 남아있더라도 지워버리는 방법을 사용하면 문제가 해결 될까요?'''
- ZeroPageHistory . . . . 6 matches
||겨울방학 ||Data Structure 스터디, API 세미나 개최, 게임 제작 온라인 강좌.(긁어 놓은 게시물: Win95 레지스트리, TCP/IP) ||
* Data Structure, API, Game
* 데블스캠프 : Toy Problem, Python, J2ME, Scheme, Smalltalk, Linux, API, MFC
* SmallTalk, AOI, WinAPI
* 데블스캠프 : C++, SVN, SSH, MSDN, Data Structure, Algorithm, WinAPI, MFC, OOP
* 데블스캠프 : Toy Programming, Visual Basic, MIDI, Emacs, Python, OOP, Pipe, Regular Expression, Logic Circuit, Java, Security
* C++, Linux, CCNA, API, Algorithm, MFC
* 데블스캠프 : Java, HTML, CSS, Scratch, SVN, Robocode, WinAPI, Abtraction, RootKit, OOP, MFC, MIDI, JavaScript, Short Coding
* 치과 운영 관리 프로그램
* 세탁소 관리 프로그램
* 세일 정보 통신 재해자 관리 프로그램
* 비디오 도매상 관리 프로그램
* '작은마녀' 게임 프로그램
* 삼성전자 번들용 영어 교육 프로그램
- ZeroPageServer/AboutCracking . . . . 6 matches
* '''다음날 NeoCoin 의 계정에서 (root 말고) 무한 트래픽 발생 프로그램 발견 '''
* 해결 : 해당 프로그램 갈무리, NeoCoin 의 암호 변경, wu-ftp 서비스 제거. 그 이후 문제 상황 사라짐
* 2003-02-08, 09 즈음에 squid 를 이용한 proxy 서비스를 제공했다는 것을 기억. spam 샘플 몇통중 해다 suqid 사용 계정 id가 있었다는 점 기억 -> squid 동작 이후 spam신고 접수 된 것으로 가정
* 해당 프로그램 테스트. 문제 상황을로 보이는 상태 발견
* 새로운 프로그램 설치 후 라는 시점을 의심해 보자. 가장 기본적인 세팅에 stable 최신 버전 오픈 소스라도 말이다.
''아 squid가 3128이 기본 포트인것 같네요 ^^; 햇갈리었어요. (8080도 쓰긴 하지만,) 상대방의 port 25번으로 간다면, 아마 squid설정으로 막을 수 있어요. 영 맘이 안놓이시면 ipfilter 프로그램으로 막으면 확실하죠.--동희''
- ZeroPage성년식/거의모든ZP의역사 . . . . 6 matches
||겨울방학 ||Data Structure 스터디, API 세미나 개최, 게임 제작 온라인 강좌.(긁어 놓은 게시물: Win95 레지스트리, TCP/IP) ||
* Data Structure, API, Game
* 데블스캠프 : Toy Problem, Python, J2ME, Scheme, Smalltalk, Linux, API, MFC
* SmallTalk, AOI, WinAPI
* 데블스캠프 : C++, SVN, SSH, MSDN, Data Structure, Algorithm, WinAPI, MFC, OOP
* 데블스캠프 : Toy Programming, Visual Basic, MIDI, Emacs, Python, OOP, Pipe, Regular Expression, Logic Circuit, Java, Security
* C++, Linux, CCNA, API, Algorithm, MFC
* 데블스캠프 : Java, HTML, CSS, Scratch, SVN, Robocode, WinAPI, Abtraction, RootKit, OOP, MFC, MIDI, JavaScript, Short Coding
* 치과 운영 관리 프로그램
* 세탁소 관리 프로그램
* 세일 정보 통신 재해자 관리 프로그램
* 비디오 도매상 관리 프로그램
* '작은마녀' 게임 프로그램
* 삼성전자 번들용 영어 교육 프로그램
- [Lovely]boy^_^/3DLibrary . . . . 6 matches
const float PI = (float)(atan(1.0) * 4.0);
void SetMem(int pivot, float n) { _vec[pivot] = n; }
return Angle * PI / 180;
//////////// x축으로 돌리는 회전행렬 구하기 //////////
//////////// y축으로 돌리는 회전행렬 구하기 //////////
//////////// z축으로 돌리는 회전행렬 구하기 //////////
/////////// 절대값 구하기 /////////////
- [Lovely]boy^_^/Arcanoid . . . . 6 matches
* I change a background picture from a Jang na ra picture to a blue sky picture. but my calculation of coordinate mistake cuts tree picture.
* A array's row and column is so confused. A long time, screen picture rotates a 90 angle, but I fixed that as change row and column.
* I change a design of a arcanoid. - previous version is distribute, but this version is that god class(CArcanoidDoc)' admins a total routine. in my opinion, it's more far from OOP.--;
- ricoder . . . . 6 matches
프로그램 잘 못짜는거 영동이가 많이 도와준다.. ㅜ_ㅜ
* 소수구하기. ["소수구하기/영록"]
흠... 이 프로그램도 영동이의 도움.. ㅡ.ㅡ;; 영동이 소스 보고 하다보니깐. 완젼 똑같아졌네요. -_-;;
//팩토리얼 구하기
// 음... 시간이 되면 프로그램 종료되는...... 그런 소스..-_-;
- 고한종 . . . . 6 matches
>MySql, hapi.js, React, Node, Socket.io 입니다.
- [고한종/업적/WinAPI를 통한 테트리스]
- ~~[고한종/업적/WinAPI로 만든 학과주점 포스기]~~
* JAVA의 Swing으로 만든 시간표 대신 만들어주는 프로그램 (...) 사실 만들어 놓고 안쓴다. 2학년 말에 만들어 놓고 이번 학기(2013년 1학기)에 본인조차 안 쓴걸 보면 기획부터가 잘못된 물건. 일단 소개를 하자면, 수강신청 기간이 되면 포탈에 그 학기에 개강될 과목들을 정리해서 xls 파일로 올려줍니다. 이걸 받아서, poi 라는 JAVA 라이브러리? 에 넣고 돌리면 "[cell값]" 형식으로 String이 나옵니다. 그럼 이걸 stringTokenizer에 ]와 [를 토큰으로 해서 잘게 쪼개줍니다. (애초에 그런거 없이 CSV로 나오면 최고겠지만.. 할줄 모름 ㅠ). 사실 그냥 엑셀에서 CSV로 만들어 쓰면 되는 데, 그때 당시엔 사용 편의성을 도모한답시고 뻘짓 함. 어짜피 아무도 안 쓸텐데 ㅠㅠ 그렇게 얻어낸 과목의 시간정보를 ArrayList에 넣고, 그걸 가지고 backtraking인지.. 를 했던것 같음. 결국 속도는 처참했지만 -_-... 모든 결과가 나오는 것도 아님. 마지막으로 코드를 수정하고나서 테스트로 돌렸을때, 내가 실제로 수강신청했던 시간표는 나오지 않았음 ㅇㅈㄴ... - [고한종], 13년 3월 16일
- [고한종/업적/DrawPicture]
* 여태까지 만들었던 것중에 가장 잘나간 것. 하지만 속 알멩이는 여태까지 만든 것 중 가장 쓰레기. 이걸 OOP개념이라던가, 좋은 유지보수가 가능하게 코딩하려면, 프로젝트를 버리고 다시 시작해야 할듯. 소개하자면 이걸 공개한게 13년 1월 8일인가 하는데, 12년 12월 20일에 확산성 밀리언 아서라고 일본 ~~T~~CG(트레이드가 없어....) 게임이 들어왔다. 애니팡으로 한국 모바일 게임시장이 열린 상황 (그 전에는 미친 법 때문에 스토어에 게임 카테고리가 없었지....), 퍼즐류는 애니팡이 먹고, 슈팅게임은 드래곤플라이트, 레이싱(?)은 다함께차차차, 캐쥬얼은 윈드러너가 먹은 상황에, ~~T~~CG라는 새로운 장르가 수입이 되니.. 그야말로 공급이 없어서 단숨에 유저 확보. 지금 대략 생성된 계정은 못해도 80만개를 넘었다고 한다. 게임소개는 여기까지하고, 이 게임이 1기긱 1계정으로 기기종속 게임인데, 온라인 게임인데 부캐를 돌리고 싶은것은 어찌보면 당연!. 사람들이 로그아웃 하는 방법을 찾아놓은게 있다. 근데 겁나 불편하다 (...) 그래서 그걸 안드로이드 어플로 자동화시켜서 터치한번이면 되도록 만들었다. 그리고 공개 -> 2달이 지난 지금 1만 5천명이 내 블로그를 들렸다 나갔다. 아마 못 해도 1만은 다운로드 까진 해보지 않았을까 싶다. - [고한종], 13년 3월 16일
* 동시에 프로그램에 들어간 노력과 시장에서 팔리는 정도는 별 관계가 없다는걸 알게 되었겟지.- 아마도 [김태진]
* 원본 프로그램은 ActiveX로 만들어져있었다. 게다가 스레드 돌리기 싫어서 DoEvent 기법을 썼다(...) 이걸 나는 iOS로 포팅 하는데 성공했다. ActiveX도 결국 MFC이기 때문에 별로 안 어려워 보일 수 있으나... 모든 사용자 정의 함수는 void형에, 모든 멤버변수는 public이어서 어디서 초기화하는지 일일히 찾아서 작업해야 했다. 미치는줄 알았음. 심지어 한 함수안에서 딱한번 쓰는 변수도 클래스 멤버변수로 선언되어 있기도 했음.. 그냥 지역변수를 쓰지!? - [고한종], 13년 3월 16일
- 데블스캠프2005/RUR-PLE/Harvest/이승한 . . . . 6 matches
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
- 데블스캠프2005/RUR-PLE/Harvest/정수민 . . . . 6 matches
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
- 데블스캠프2011/둘째날/후기 . . . . 6 matches
* 처음해보는 Scratch 였습니다. 그림을 끌어다 놓고, 명령어들을 끌어다가 추가시키면서 프로그램 진행을 구성하고... 독특하고 신기했습니다만 정작 익숙해지기에는 힘들었습니다. 코드로만 하다가 이렇게 짜여진 틀을 움직인다는게 어색해서 짜고있던 게임을 완성시키지는 못 한것이 아쉬었다.
* Scratch를 어제 블럭 쌓기라고 해서 무슨 테트리스 같은 거라고 생각했는데, 오늘 보니 아 이런거구나 하는 것을 알게 되었습니다. 꼭 프로그램 짜기 전에 의사 코드로 하는 것 같더군요a. 마지막에 성현이가 게임 만들으라고 해서 뭐 할까 하다가 슈퍼마리오 배경도 있고 해서 그걸로 좀 비슷하게 하려고 했는데, 파이프에 닿았을 때 그걸 넘어가게 하는 걸 하려다 망했네요 ㅋㅋㅋ 그러다 보니 그냥 마리오가 움직이고 뛰기만 하는 걸로 끝났습니다. 좀 더 도구를 잘 활용하지 못함이 아쉽긴 했습니다.
* Hacking != Cracking. Cheat Engine, 자바스크립트를 이용한 사이트 공격? 툴을 이용한 Packet Cracking 등 개인적으로 무척 재미있던 세미나였습니다. 뭐... 사실 많이들 관심은 있지만 실제로 하는 걸 보는 건 흔치 않은 만큼 이번에 세미나를 볼 수 있었던 것은 여러모로 행운이었다고 생각합니다. 더군다나 질문을 꽤 많이 했는데 선배님이 친절하게 답변을 해 주셔서 정말 감사했습니다. 웹 쪽은 이래저래 공격을 당할 가능성도 높은 만큼 나중에 그쪽으로 가게 된다면 관련 기술들도 배워둬야 하지 않을까 싶군요.
* 씐나는 Cheat-Engine Tutorial이군요. Off-Line Game들 할때 이용했던 T-Search, Game-Hack, Cheat-O-Matic 과 함께 잘 사용해보았던 Cheat-Engine입니다. 튜토리얼이 있는지는 몰랐네요. 포인터를 이용한 메모리를 바꾸는 보안도 찾을수 있는 대단한 성능이 숨겨져있었는지 몰랐습니다. 감격 감격. 문명5할때 문명 5에서는 값을 *100 + 난수로 해놔서 찾기 어려웠는데 참. 이제 튜토리얼을 통해 어떤 숨겨진 값들도 다 찾을 수 있을것 같습니다. 그리고 보여주고 준비해왔던 얘제들을 통해 보안이 얼마나 중요한지 알게되었습니다. 보안에 대해 많은걸 생각하게 해주네요. 유익한시간이었습니다. 다음에 관련 책이 있다면 한번 읽어볼 생각이 드네요.
* 재작년에 인공지능 과목을 들었던 기억이 다시 떠오르네요. 인공지능을 아직 듣지 않은 학우들은 좀 더 어려웠을 것 같아요. 이번 시간에 짠 코드를 다른 여러 카테고리와 실제 웹문서에 적용해보면 어느 정도로 문서를 분류할 수 있을지, 실제 웹문서에 적용시킬 때 정확성을 더 향상시키기 위해 어떤 방법을 사용할 수 있을지 더 공부해보고 싶습니다. 그리고 대책없이 급하게 짜다보니 코드가 너무 지저분해진 것이 아쉽네요. RubyLanguage로 다시 짜봐야지...
- 새싹교실/2012/나도할수있다 . . . . 6 matches
* 새싹 첫수업을 했다. 도중에 현민이가 영어 수업을 받으러가서 한시간 비었다. 다음주부터는 시간을 한시간 연기하여 세시부터 시작할 예정이다. gcc의사용법을 간단히 설명했고, gdb는 학생들이 디버깅을 몰라서 설명해주지 않았다. printf사용법부터 시작해서 연산자, 데이터 타입, while,do-while,for문을 설명했다. 현민이는 쉰게 잘 따라오고, 윤호도 천천히 따라오고 있어서 앞으로 수업하는데에 지장은 없을 것 같다. 수업을 다 하고 생각해보니 너무 우왕좌왕하게 가르쳤던것 같다. 다음시간은 더욱 열심히 준비해야겠다. - 추성준
/* for 문을 이용한 1부터 10까지의 합 */
/* while 문을 이용한 1부터 10까지의 합 */
* 지난주에 수업했던 for,while의 복습으로 시작했다. 1부터 10까지의 합을 구하는 프로그램을 짜보라고 했는데 쉽게 하지 못하고 많이 버벅거렸다. 둘다 집에 비주얼 스튜디오가 없어서 복습을 안한 것 같다. 그리고 소라때리기 게이을 타이핑하게 하고, 소라때리기 게임에서 쓰이는 함수들을 설명해주었다. 그런데 한번에 너무 많은 양을 배워서 그런지 이해도가 떨어지는 것 같아서 다음주에 보충수업을 하기로 했다. 다음주 과제로는 MP를 추가해서 마법공격, 체력회복을 추가해오는것을 내주었는데 아마 안해올것 같다. -추성준
/* 배열을 이용한 스트링표현 */
* 오늘 매우매우 많은것을 배웠다. 함수만드는법이랑, 배열이랑, 구조체랑, 포인터쓰는법을 배웠다. ㅋ 배우긴 했는데 머리에 들어있지는 않은것같다. ㅋㅋ 담주에 보충때 좀더 머리에 넣을수 있도록 노력해야겠다. ㅋㅋㅋㅋ 아 힘들다 ㅋㅋㅋ빨리 집에 가고싶다. ㅋ- 이현민
- 새싹교실/2012/부부동반 . . . . 6 matches
C/C++의 문법과 활용을 자세하게 설명한 책. 문법을 소개하는데 그치지 않고 변화화는 코드가 실제 프로그램과 하드웨어적으로 어떠한 영향을 일으키는지 비교함으로써 본 스터디의 목적과 매우 잘 부합됨
C 문법의 기초를 아주 잘 설명한 개념서. 빠르게 C를 살펴보거나 기억나지 않는 문법을 찾아보는데 도움이 됨.
* Compile Language
이 둘을 읽어와 값을 출력하는 프로그램을 작성하라
프로그램의 개요를 A4용지 1장 이내에 작성하여 ahnzaz@gmail.com으로 보내주세요.
- 새싹교실/2013/록구록구/3회차 . . . . 6 matches
* '''조건문을 이용한 간단한 계산 프로그램 만들기!!'''
연산 방법을 입력하세요(+ - * / 각각 1 2 3 4) : 2
* '''반복문을 이용한 별 찍기!!'''
printf("연산방법을 입력 하세요\n");
printf("연산 방법을 입력하세요 : ");
- 안혁준 . . . . 6 matches
* WINAPI, MFC
== 혼자 만들었던 프로그램 ==
* [http://blog.naver.com/qa22ahj/100096122952 알송 리스트 자동 추가 프로그램]
* [http://blog.naver.com/qa22ahj/100053223569 손님 관리 프로그램 ver.허접]
* [http://blog.naver.com/qa22ahj/100048706502 Wave Piano]
* 다운로드 파일 자동 분류 프로그램
* [http://blog.naver.com/qa22ahj/100051706791 고군분투 키바꾸기 프로그램] <- 나름 유용했음
* [http://nforge.zeropage.org/projects/tachikoma 나만의 비서 프로그램 만들기](고등학교 때부터 시작했는데 아직도 손만 댄 수준.)
- 제13회 한국게임컨퍼런스 후기 . . . . 6 matches
|| 09:20 – 10:20 || 하복비전엔진을 이용한 MMO게임 개발 || 강경덕(팀버게임즈) || Graphic ||
|| 09:20 – 10:20 || 언리얼을 이용한 모바일게임 그래픽 제작 노하우 || 장학준(DAEgames) || Graphic ||
* 두 번째 들은 세션은 자기 회사의 프로그램? API를 이용해 서버를 만들고 채팅을 하고 뭐 이런 이야기를 예시를 통해 보여주었다. 그냥 가져다 쓰면 되요 라는 말과 함께 이것 저것 예시를 보여주었는데, 결국 자기 회사 홍보였다.
* 세 번째 세션은 또 음악의 세계로... 역시나 자기네 회사 프로그램을 사용하면 사운드 효과를 다양하게 낼 수 있다는 것에 대해서 이야기 해 주었다. 뭐 Chaining 관계를 이용한 소리의 조합이라나 뭐라나..
* 프로그래밍과 관련한 부분이 아닌, 다른 부분 (그래픽, 오디오 등)에 대한 이해도 할 수 있었고, 다양한 프로그램들을 알 수도 있긴 했다만 뭔가 대부분이 자신들 업체 홍보에 조금 주안점이 있지 않았나 라는 생각이 들었다. – 물론 안 그런 세션도 있었고 – 특히 직접 보여주는 부분은 같이 좀 해 보았으면 더 좋지 않았나 라는 생각이 들긴 했지만 또 그렇게 하기에는 물량 지원적인 문제도 있으니... 노트북 가져오라고 했으면 좋았을 것을.. 뭐 이런 잡다한 생각이 들기도 했다.
- 창섭/배치파일 . . . . 6 matches
따라서 사용자는 항상 도스 프롬프트 상에서 일일이 키보드를 이용한 타이핑으로 명령을 내려야 하고, 하나의 명령이 내려지면 완료될 때까지 다음 명령을 내릴수가 없습니다. 작업 과정이 얼마되지 않는다면 큰 상관이 없으나 그 과정이 매우 길고 복잡하다면 사용자는 지루함을 느끼게 됩니다. 또한 비록 짧은 작업과정이라도 컴퓨터를 켤때마다 매번 똑같은 과정을 일일이 지시하는 것도 귀찮을 것입니다.
1 File(s) copied
여기서 쓰고 싶은 대로 적기만 하면 됩니다.제일 마지막행의 ^Z 는 파일의 제일 마지막 부분이라는 것을 도스에게 알려주는 코드로 < Ctrl + Z > 키 또는 F6 키를 누르면 됩니다. 그리고 엔터키를 한번더 누르면 '1 File(s) copied' 라는 메세지가 출력되는데, 이는 방금 ' copy con 파일명 ' 으로 작성된 문서파일이 성공적으로 만들어졌다는 뜻입니다.위의 문서파일은 확장자가 .BAT 로 붙었기 때문에 실행가능한 외부 명령어가 되는데, 배치파일은 명령이 기록되어 있는 순서대로 실행되기 때문에 timedate.bat 를 실행시키면 먼저 화면을 지우고 난뒤 시스템의 시간과 날짜를 설정합니다.간단한 배치파일은 'copy con 파일명' 으로 작성하는 것이 다른 프로그램의 도움없이 쉽고 빠르게 처리할 수 있습니다. 하지만 배치파일이 조금 길거나 작성중에 수시로 편집할 일이 생기는 경우에는 불가능합니다. 'copy con 파일명' 으로 파일을 작성하면 행으로 다시돌아갈 수 없을 뿐 아니라 수정이 불가능하기 때문입니다. 그러므로 배치파일을 만들 필요가 있을때는 문서 에디터를 이용하는 것이 좋습니다.
배치 프로그램 내에서 사용자의 선택을 묻기 위해 사용됩니다. 배치 파일 제작자가 설정한 물음을 출력하면서 지정된 키 입력을 기다립니다. 이 명령은 배치파일 내에서만 사용 가능합니다.
- ERRORLEVEL <수치> : 바로 전에 실행한 명령(프로그램)의 종료 코드가 <수치> 이상일 때에는 참이 되고 <명령> 이 실행됨.
- 타도코코아CppStudy/0724/선희발표_객체지향 . . . . 6 matches
* 모든 프로그램의 요소를 각각의 독립적인 객체로 생각한다.
|| 프로그램을 기능단위로 세분 || 프로그램을 object 단위로 세분 ||
|| 소,중형 프로그램에 적합 || 대형 프로그램 작성에 적합 ||
설계 모형을 특정 프로그램 언어로 번역하는 작업이다. 객체, 클래스, 상속의 개념을 다 포용하는 객체지향 언어(object-oriented programming language : C++, Smalltalk 등)가 가장 좋지만 객체의 개념만 인정하고 클래스, 상속 등은 고려하지 않은 객체기반 언어(object-oriented based programming language : Ada 등)도 좋다.
- 타도코코아CppStudy/객체지향발표 . . . . 6 matches
* 모든 프로그램의 요소를 각각의 독립적인 객체로 생각한다.
|| 프로그램을 기능단위로 세분 || 프로그램을 object 단위로 세분 ||
|| 소,중형 프로그램에 적합 || 대형 프로그램 작성에 적합 ||
설계 모형을 특정 프로그램 언어로 번역하는 작업이다. 객체, 클래스, 상속의 개념을 다 포용하는 객체지향 언어(object-oriented programming language : C++, Smalltalk 등)가 가장 좋지만 객체의 개념만 인정하고 클래스, 상속 등은 고려하지 않은 객체기반 언어(object-oriented based programming language : Ada 등)도 좋다.
- 토비의스프링3/밑줄긋기 . . . . 6 matches
* 고정된 작업 흐름을 갖고 있으면서 여기저기서 자주 반복되는 코드가 있다면, 중복되는 코드를 분리할 방법을 생각해보는 습관을 기르자.
* 비즈니스 로직을 담고 있는 UserService 메소드 안에서 트랜잭션의 경계를 설정해 관리하려면 지금까지 만들었던 깔끔하게 정리된 코드를 포기해야 할까? 아니면, 트랜잭션 기능을 포기해야 할까? 물론 둘 다 아니다. 스프링은 이 딜레마를 해결할 수 있는 멋진 방법을 제공해준다.
* 이렇게 기술과 서비스에 대한 추상화 기법을 이요하면 특정 기술환경에 종속되지 않는 포터블한 코드를 만들 수 있다.
* 서비스 추상화에는 기능은 유사하나 사용 방법이 다른 로우레벨의 다양한 기술에 대해 추상 인터페이스와 일관성 있는 접근 방법을 제공해주는 것을 말한다. 반면에 테스트를 어렵게 만드는 건전하지 않은 방식으로 설계된 API를 사용할 때도 유용하게 쓰일 수 있다.
* 서비스 추상화란 이렇게 원활한 테스트만을 위해서도 충분히 가치가 있다. 기술이나 환경이 바뀔 가능성이 있음에도, JavaMail처럼 확장이 불가능하게 설계해놓은 API를 사용해야 하는 경우라면 추상화 계층의 도입을 적극 고려해볼 필요가 있다. 특별히 외부의 리소스와 연동하는 대부분 작업은 추상화의 대상이 될 수 있다.
* 목 오브젝트를 이용한 테스트라는 게, 작성하기는 간단하면서도 기능을 상당히 막강하다는 사실을 알 수 있을 것이다. 보통의 테스트 방법으로는 검증하기가 매우 까다로운 테스트 대상 오브젝트의 내부에서 일어나는 일이나 다른 오브젝트 사이에서 주고받는 정보까지 검증하는 일이 손쉽기 때문이다.
* 목 오브젝트를 이용한 테스트가 작성하기 간단하…지 않았었는데. - [김수경]
- 프로그램내에서의주석 . . . . 6 matches
자바 IDE들이 Source Folding 이 지원하거나 comment 와 관련한 기능을 지원한다면 해결될듯. JavaDoc 은 API군이나 Framework Library의 경우 MSDN의 역할을 해주니까. --석천
자네의 경우는 주석이 자네의 생각과정이고, 그 다음은 코드를 읽는 사람의 관점인 건데, 프로그램을 이해하기 위해서 그 사람은 어떤 과정을 거칠까? 경험이 있는 사람이야 무엇을 해야 할 지 아니까 abstract 한 클래스 이름이나 메소드들 이름만 봐도 잘 이해를 하지만, 나는 다른 사람들이 실제 코드 구현부분도 읽기를 바랬거든. (소켓에서 Read 부분 관련 블럭킹 방지를 위한 스레드의 이용방법을 모르고, Swing tree 이용법 모르는 사람에겐 더더욱. 해당 부분에 대해선 Pair 중 설명을 하긴 했으니)
난해한 코드일수록 주석이 필요한 것일것이고 (또는 그 반대로 쉽게 알아볼 수 있도록 짤 방법을 강구해야 한다면 억지쓰는 것이려나.) 개인적으로 읽어본 가장 긴 낯선 코드가 3000~4000 라인을 못넘어 본 관계로 아직은 '정리' 단계로만 끝날 것 같다. CVS 의 history 가 코드 진화과정을 따라가는데 도움을 줄것이라고 생각했지만, 아직은 먼 이야기일듯.
이번기회에 comment, document, source code 에 대해서 제대로 생각해볼 수 있을듯 (프로그램을 어떻게 분석할 것인가 라던지 Reverse Engineering Tool들을 이용하는 방법을 궁리한다던지 등등) 그리고 후배들과의 코드에 대한 대화는 익숙한 comment 로 대화하는게 낫겠다. DesignPatterns 가 한서도 나온다고 하며 또하나의 기술장벽이 내려간다고 하더라도, 접해보지 않은 사람에겐 또하나의 외국어일것이니. 그리고 영어가 모국어가 아닌 이상. 뭐. (암튼 오늘 내일 되는대로 Documentation 마저 남기겠음. 글쓰는 도중 치열하게 Documentation을 진행하지도 않은 사람이 말만 앞섰다란 생각이 그치질 않는지라. 물론 작업중 Doc 이 아닌 작업 후 Doc 라는 점에서 점수 깎인다는 점은 인지중;) --석천
프로그램에 있어 주석이 하는 순기능을 하나 더 찾아볼 수 있다. ''메마른 코드속에서 사람의 숨결을 느끼게 해준다.'' 유머가 없는 세상을 생각해보라. 얼마나 끔찍한가.
- 후기 . . . . 6 matches
함수형 언어 Haskell을 배우는 시간을 많이 가졌는데 참 재미있었다. 더욱 재미있는 것은 함수형 언어의 좋은 점이 다른 언어에도 녹아들 수 있다는 것이다. 수학에서 출발하는 개념이 실제로 쓰이도록 중간에서 다리 역할을 하고 있다. 수학이 프로그램 언어에 미치는 영향력을 볼 때 학부 때 컴퓨터 공학 대신에 수학을 전공해도 좋을 것 같다. 그게 안 된다면 대안언어축제라도 참가하면서 [성장]할 수 있어야 한다.
대안언어가 보여준 많은 새로운 생각이 널리 퍼지지 않아 안타깝다. 혁신을 이루려면 많은 사람이 그 아이디어를 받아들여야 한다던데, 대안언어축제 이후에 어떠한 변화가 있을까? 새로운 아이디어를 적용한 코드를 작성할 수 있을까? 새로운 프로그램을 만드려고 할 때, 현재 사용하는 언어보다 더 적당한 언어를 선택할 수 있을까? 기존에 개발하던 프로그램이 있을 때는 새로운 언어로 갈아탈 수 있을까? 창의적인 아이디어와 실용성 사이 간격을 좁혀서 대안언어가 정말로 대안이 되길 꿈꿔본다.
더 대중적인 축제를 만들 생각도 해 보았다. 사람에게 감각적인 자극을 줄 수 있는 언어나 그 언어로 만들어진 프로그램, 혹은 다른 무언가가 있으면 어떨까? Mathmetica에서 프랙탈로 삼각형을 그리는 모습을 보고 사람들은 감탄했다. 패널토론 도중에 Squeak에서 보여준 시뮬레이션 역시 놀라웠다. 마이크로칩을 프로그램하여 모르스 부호를 불빛으로 깜박거리는 모습도 신기했다. 프로그램 언어에 익숙하지 않은 다른 분야를 공부하는 참가자들은 눈에 보이지 않는 동작 보다는, 감각적인 자극에 많은 호기심을 느낄 것이다. 시각 이외에 다른 감각을 자극하는 볼거리가 준비된다면 가족끼리 대안언어축제에 놀러 올 수 있을 것 같다. 마치 구경도 하고, 직접 체험해 볼 수도 있는 전시장에 온 것 같은 기분을 낼 수 있을 것이다.
- 3DGraphicsFoundation . . . . 5 matches
* 프랙탈을 이용한 지형 모델링 해오기(진행중)
* 프랙탈을 이용한 지형 모델링 해오기
* 프랙탈을 이용한 지형 모델링 해오리
* 인수의 프로그램 [http://165.194.17.15/~nuburizzang/Fracta.exe] : 소스 조올라 더렵다 --; 튜토리얼에서 제공하는 무지막지하게 긴 템플릿을 써서 상당히 길기도 하다. 걍 실행파일만..--; 근데 꼭 심시티 같다--;
* 상협의 프로그램 [http://165.194.17.15/~namsang/FractalSurface.exe] : 오예 링크 걸렸당~
- 3rdPCinCAUCSE . . . . 5 matches
문제 성격: 국내 대학생 프로그램 경진 대회의 문제 출제 경향을 따른다.
- 프로그램의 실행시간이 일정시간(예: 10초)을 지나도 끝나지 않을 경우 틀린 것임.
프로그램 작성시 유의 사항:
1. 각 문제는 데이터를 외부에서 입력받아서 프로그램으로 답을 계산한 후 반드시 출력을 한다. 이때, 입출력은 표준입출력만 사용한다. 파일 입출력문을 쓰면 안됨.
7. 각 문제마다 테스트 케이스가 5-10개가 있는데, 프로그램은 첫째 테스트 케이스를 입력하여 첫째 답을 출력하고, 둘째 테스트 케이스를 입력하여 둘째 답을 출력하고, ... 등으로 진행해야 한다.
- Applet포함HTML/영동 . . . . 5 matches
* 음... HTML 컨버터로 컨버트하긴 했는데 ftp사용법을 몰라서 계정에 올리는 법을 모르겠네요. 그러한 관계로, 상욱이처럼 파일 내용만 올릴게요. ftp쓰는 법 배워서 링크시킬게요... [http://165.194.17.15/pub/util/WinSCP2.exe WinSCP 2.0 Beta]
이상하네... 프로그램을 잘 못 짠 건가?[[BR]]
<PARAM NAME="type" VALUE="application/x-java-applet;jpi-version=1.4.0_03">
type="application/x-java-applet;jpi-version=1.4.0_03"
- AspectOrientedProgramming . . . . 5 matches
AOP에서는 aspect라는 새로운 프로그램 구조를 정의해 사용한다. 이는 쉽게 struct, class, interface 등과 같이 특정한 용도의 구조라 생각하면 된다. Aspect 내에는 프로그램의 여러 모듈들에 흩어져 있는 기능(하나의 기능이 여러 모듈에 흩어져 있음을 뜻한다)을 모아 정의하게 된다. 전체적으로, 어플리케이션의 각각의 클래스는 자신에게 주어진 기능만을 수행하고, 추가된 각 aspect들이 횡단적인 행위(기능)들을 모아 처리하며 전체 프로그램을 이루는 형태가 만들어진다.
AOP에서는 이런 형태의 문제를 해결하기 위해 새로운 형태의 접근 방법을 제기하고 있다. AOP는 새로 도입된 프로그램 구조를 통해 시스템에 횡단되어 있는 기능들을 정의해 처리하도록 했다. 이 새로운 구조를 우리는 aspect라 부른다.
- AutomatedJudgeScript . . . . 5 matches
이 프로그램에서는 정답과 제출된 프로그램에서 만들어낸 출력 결과가 들어있는 파일을 받아서 아래에 정의된 방법에 따라 Accepted, Presentation Error, Wrong Answer 가운데 하나로 답해야 한다.
Accepted : 제출된 프로그램에 의한 출력 결과가 정답과 완벽하게 일치하는 경우에 'Accepted'라고 답한다. 모든 문자가 똑같은 순서대로 매치되어야만 한다.
Wrong Answer : 제출된 프로그램에 의한 출력 결과가 위에 나와있는 두 가지 범주에 속하지 않는다면 'Wrong Answer'라고 답해야 한다.
입력은 임의 개수의 입력 세트로 구성된다. 각 입력 세트는 정답의 줄 수를 나타내는 100 미만의 양의 정수 n이 들어있는 행으로 시작된다. 그 다음 n개의 줄에는 정답이 입력된다. 그 다음 줄에는 제출된 풀이의 출력 결과의 줄 수를 나타내는 100 미만의 양의 정수 m이 들어있는 행이 입력된다. 그 다음 m개의 줄에는 제출된 프로그램에서 출력한 내용이 입력된다. n으로 0이 입력되면 입력을 종료하고 그 행은 처리하지 않는다.
- D3D . . . . 5 matches
뭐, library부분은 api 초기화 루틴 부분정도이고, DX 도 역시 초기화 부분정도를 [[BR]]
3D를 이용한 오락 만들기. [[BR]]
이런 종류의 책들이 다 그렇듯이, winapi를 사용한다.[[BR]]
그렇기 때문에, 초반의 한 chapter는 거의다 winapi를 사용해서 [[BR]]
point3 (float X, float Y, float Z) : x(X), y(Y), z(Z) {} // 초기화 목록을 사용. (compiler가 작업을 더 잘 수행할 수 있도록 해준다더군.)
- DataCommunicationSummaryProject/Chapter9 . . . . 5 matches
* cellular networks가 cell을 반경으로 하는데 비하여, Short-Range Wireless Networks는 아주 짧은 반경,Ultra Wide Banded 을 사용,고속이다.pbx처럼 pirvate networks이다.
== Picocells ==
* piconet과 scatternet : piconet은 8개의 노드까지 지원하는 네트웍망. scatternet은 그보다 더 큰거. 하나의 장치는 주의의 8개까지의 노드밖에 인식을 못하기 때문에 piconet으로 나뉘어져야 하는 크기
* Frequency Hopping을 사용한다.
- EmbeddedSystemClass . . . . 5 matches
휴인스 테크의 교육용 보드를 이용한 실습을 한다.
임베디드 환경에서의 GUI 툴킷(Qt-embedded)를 이용한 프로그램. 디바이스 드라이버 프로그래밍을 실습한다.
실습에서 사용하는 리눅스는 레드햇 9.0으로 상당히 오래된 버전을 이용한다.
// 리눅스 시리얼 터미널 프로그램 설치
- FreechalAlbumSpider . . . . 5 matches
* 소스 : ZPCvs:FreechalAlbumSpider (테스트를 위해선 proper.py 수정 필요)
각 모듈들이 서로 불러져야 할 순서들을 정하고 난뒤, 내가 만든 각 모듈들을 일종의 SpikeSolution 처럼 라이브러리 연습하듯이 이용해보았다. 그러면서 잠시 놓쳤던 흐름을 다시 잡았다. 이러한 일들을 의식적으로, 그리고 '무엇을 할까 - 이것을 하자' 라고 생각해낼 수 있었던 것이 기분을 참 좋게 했다.
늦게서야 보게 되어서..; 지금도 작동을 할런지는 잘 모르겠습니다. 알바때문에 바빠서 유지보수를 못하는 중인지라.. freechal service UI 가 바뀌면 깨지는 녀석일것인지라..; 사용하기전에 필요한 것으론 Python 2.2x 버전 정도와 MySQLdb 라이브러리가 필요하고요. 해당 proper.py 화일을 맞춰주신뒤, freechalscript.py 를 실행해주시면 됩니다. 같은 역할을 하는 프로그램은 http://www.perlmania.or.kr 에서 먼저 구현된걸로 기억합니다. 거기서 해당 강좌도 있던걸로 기억하오니 참조하세요. --[1002]
원리는 보통의 이런류의 프로그램 (HTTP 로 문서 가져오고 스트링 파싱하여 데이터로 가공하고 DB에 저장) 이 비슷합니다. 단, 앨범게시판의 경우 로그인이 필요한데, 이 경우 쿠키 처리를 위한 header setting을 해줘야겠죠. Perl 같은 경우 LWP, Python 의 경우 ClientCookie, Java 의 경우 HttpUnit(원래의 용도는 다르지만, 이런 프로그램을 위한 간이 브라우저 라이브러리로 쓸 수 있습니다.) 등의 라이브러리를 쓸 수 있습니다. 그리고, 이미지의 경우는 해당 URL을 보고 다시 HTTP Connection 을 열어서 얻어와서 binary로 저장해야 한다는 것이 유의사항이 되겠습니다. (HTML만 얻어오면 img tag 의 링크들만 있겠죠.) 그리고 header setting 에서 약간 미묘(?)한 부분이 있던것 같던데, 저는 걍 webdebug 로 캡쳐한거 그대로 보낸지라..; 이 부분은 CVS의 코드 참조하세요. --[1002]
- Gof/FactoryMethod . . . . 5 matches
'''첫번째''' 경우는 코드가 구현된 sub클래스를 요구한다. 왜냐하면, 적당한 기본 구현 사항이 없기때문이다. 예상할수 없는 클래스에 관한 코드를 구현한다는 것은 딜레마이다. '''두번째'''경우에는 유연성을 위해서 concrete Creator가 factory method 먼저 사용해야 하는 경우이다. 다음과 같은 규칙을 이야기 힌다."서로 분리된 수행 방법으로, 객체를 생성하라, 그렇게 해서 sub클래스들은 그들이 생성될수 있는 방법을 오버라이드(override)할수 있다." 이 규칙은 sub클래스의 디자이너들이 필요하다면, 그들 고유의 객체에 관련한 기능으로 sub클래스 단에게 바꿀수 있을음 의미한다.
Unidraw 그래픽 에디터 Framework는 디스크에 저장된 객체의 재 생성을 위하여 이러한 접근법을 사용하고 있다. Unidraw는 factory method를 이용한 Creator 클래스가 식별자를 가지고 있도록 정의해 두었다. 이 클래스 식별자는 적합한 클래스를 기술하고 있다. Unidraw가 객체를 디스크에 저장할때 이 클래스 식별자가 인스턴스 변수의 어떤것 보다도 앞에 기록 되는 것이다. 그리고 디스크에서 다시 객체들이 생성될때 이 식별자를 역시 가장 먼저 읽는다.
You can avoid this by being careful to access products solely through accessor operations that create the product on demand. Instead of creating the concrete product in the constructor, the constructor merely initializes it to 0. The accessor returns the product. But first it checks to make sure the product exists, and if it doesn't, the accessor creates it. This technique is sometimes called lazy initialization. The following code shows a typical implementation:
Factory methods pervade toolkits and frameworks. The preceding document example is a typical use in MacApp and ET++ [WGM88]. The manipulator example is from Unidraw.
- Gof/Visitor . . . . 5 matches
[컴파일러]가 abstact syntax tree로 프로그램을 표현한다고 하자. 컴파일러는 모든 변수들이 정의가 되어있는 지를 검사하는 것과 같은 '정적인 의미' 분석을 위해 abstract syntax tree에 대해 operation을 수행할 필요가 있을 것이다. 컴파일러는 또한 code 변환을 할 필요가 있다. 또한 컴파일러는 type-checking, code optimization, flow analysis 와 해당 변수가 이용되기 전 선언되었는지 등의 여부를 검사하기 위해서 해당 operations들을 수행할 필요가 있다. 더 나아가 우리는 pretty-printing, program restructuring, code instrumentation, 그리고 프로그램의 다양한 기준들에 대한 계산을 하기 위해 abstract syntax tree를 이용할 것이다.
예를든다면, visitor를 이용하지 않는 컴파일러는 컴파일러의 abstact syntax tree의 TypeCheck operation을 호출함으로서 type-check 을 수행할 것이다. 각각의 node들은 node들이 가지고 있는 TypeCheck를 호출함으로써 TypeCheck를 구현할 것이다. (앞의 class diagram 참조). 만일 visitor를 이용한다면, TypeCheckingVisior 객체를 만든 뒤, TypeCheckingVisitor 객체를 인자로 넘겨주면서 abstract syntax tree의 Accept operation을 호출할 것이다. 각각의 node들은 visitor를 도로 호출함으로써 Accept를 구현할 것이다 (예를 들어, assignment node의 경우 visitor의 VisitAssignment operation을 호출할 것이고, varible reference는 VisitVaribleReference를 호출할 것이다.) AssignmentNode 클래스의 TypeCheck operation은 이제 TypeCheckingVisitor의 VisitAssignment operation으로 대체될 것이다.
type-checking 의 기능을 넘어 일반적인 visitor를 만들기 위해서는 abstract syntax tree의 모든 visitor들을 위한 abstract parent class인 NodeVisitor가 필요하다. NodeVisitor는 각 node class들에 있는 operation들을 정의해야 한다. 해당 프로그램의 기준 등을 계산하기 원하는 application은 node class 에 application-specific한 코드를 추가할 필요 없이, 그냥 NodeVisitor에 대한 새로운 subclass를 정의하면 된다. VisitorPattern은 해당 Visitor 와 연관된 부분에서 컴파일된 구문들을 위한 operation들을 캡슐화한다.
VisitorPattern은 다음과 같은경우에 이용한다.
- Googling . . . . 5 matches
|| +''keyword'' || 키워드를 반드시 포함한 결과를 보여준다. 일반적으로 stopword로 지정된 것을 검색할 때 이용한다. ||
구글로 만든 장난감 프로그램들이 많이 있다.
[http://www.google.com/apis/ Google API]
[http://www.google.com/apis/maps/ Google Map API]
[http://desktop.google.com/developer.html Google Desktop API]
[http://www.google.com/apis/adwords/ Google AdWords API]
- HelpOnConfiguration . . . . 5 matches
MoniWiki는 `config.php`에 있는 설정을 입맛에 맛게 고칠 수 있다. config.php는 MoniWiki본체 프로그램에 의해 `include`되므로 PHP의 include_path변수로 설정된 어느 디렉토리에 위치할 수도 있다. 특별한 경우가 아니라면 MoniWiki가 설치된 디렉토리에 config.php가 있을것이다.
모니위키의 몇몇 플러그인중 외부 프로그램을 사용하는 프로그램은 환경변수 PATH를 참조하여 외부 프로그램을 호출하게 된다. 이때 PATH의 설정이 제대로 맞지 않아 외부 프로그램이 제대로 실행되지 않는 경우가 있다. 이 경우 config.php에서 `$path`를 고쳐보라.
- IsThisIntegration?/하기웅 . . . . 5 matches
x= cos t 로 치환하여 삼각 치환법을 이용해서 구한다~ (그런데 왜 잘 안될까??ㅋㅋ)
#define pi 3.141592653589793238462643383279
cout << (pi/3 +1-sqrt(3.0))*size*size <<" "<< 2*(pi/6-2+sqrt(3.0))*size*size<<" "<<(4-(2.0/3)*pi-sqrt(3.0))*size*size<<endl;
- JavaScript/2011년스터디 . . . . 5 matches
* 네 줄 가지고 세시간 넘게 진행할만큼 중요한 내용이라고 생각한다. 그게 언어든 뭐든 쓰는 법을 익히는 것에만 집중하는 사람들을 많이 봤다. 그게 뭔지 확실히 알지도 못하면서 쓰는 법만 익히려한다. 어떻게 쓰는지를 배우는 건 그렇게 어렵지 않은데 뭔지도 모르고 문법에만 집중하면 쓸 줄은 알아도 잘 쓰지는 못하는 것 같다.
* 각자 리팩토링을 하거나, 실행취소를 연구하거나, 그림판 크기를 자유롭게 만드는 방법을 알아보고 있습니다.
* 혹은 엘리먼트없이 위치를 받아오게 할 수 있는 방법을 찾고 있습니다.
* 자취를 없애는 방법을 여전히 고민 중입니다.
* MySQL에 원하는 정보를 Delete하려고 하였으나, 그걸 위해서는 index가 필요했고, 인덱스를 만드는 방법을 연구하고 있습니다.
- LinkedList/학생관리프로그램 . . . . 5 matches
메모리 이용 학생관리 프로그램
링크드 리스트를 이용한 학생관리 프로그램
}while(population != -1);//프로그램 종료 조건
printf("☞안녕하세요. 학생 관리 프로그램입니다.\n");
- MFCStudy_2001 . . . . 5 matches
목표: MFC를 이용, 프로그램을 작성한다. [[BR]]
== 프로그램 ==
[상협]:이렇게 MFC프로그램을 짤 수 있도록 이끌어주고 가르쳐준 상민이형한테 정말 너무 고마울 따름입니다.[[BR]]
[창섭]:파트너 상협이꺼. 오... 상당히 똑똑했다. 어쩌다가 갑자기 연산오류로 종료하는 경우도 있었지만 그래도 멋진 프로그램이다. 호오.. 파트너로써 미안한걸..^^;[[BR]]
[창섭]:인수꺼. 시작하자마자 열라 빨리 움직이는 데 놀랐다. -,.- 허무했던것은.. 겜을 이겨도 져도 '끝' 이란 말로 프로그램이 닫히니까 어찌나 허무했던지..ㅋㅋ 자네도 짱일세. ^^[[BR]]
- MoreEffectiveC++/Basic . . . . 5 matches
오해의 소지가 있도록 글을 적어 놨군요. in, out 접두어를 이용해서 reference로 넘길 인자들에서는 in에 한하여 reference, out은 pointer로 new, delete로 동적으로 관리하는것을 의도한 말이었습니다. 전에 프로젝트에 이런식의 프로그래밍을 적용 시켰는데, 함수 내부에서 포인터로 사용하는 것보다 in에 해당하는 객체 사용 코딩이 편하더군요. 그리고 말씀하신대로, MEC++ 전반에 지역객체로 생성한 Refernece문제에 관한 언급이 있는데, 이것의 관리가 C++의 가장 큰 벽으로 작용하는 것이 아닐까 생각이 됩니다. OOP 적이려면 반환을 객체로 해야 하는데, 이를 포인터로 넘기는 것은 원칙적으로 객체를 넘긴다고 볼수 없고, 해제 문제가 발생하며, reference로 넘기면 말씀하신데로, 해당 scope가 벗어나면 언어상의 lifetime이 끝난 것이므로 영역에 대한 메모리 접근을 OS에서 막을지도 모릅니다. 단, inline에 한하여는 이야기가 달라집니다. (inline의 코드 교체가 compiler에 의하여 결정되므로 이것도 역시 모호해 집니다.) 아예 COM에서는 OOP에서 벗어 나더라도, 범용적으로 쓰일수 있도록 C스펙의 함수와 같이 in, out 의 접두어와 해당 접두어는 pointer로 하는 규칙을 세워놓았지요. 이 설계가 C#에서 buil-in type의 scalar형에 해당하는 것까지 반영된 것이 인상적이 었습니다.(MS가 초기 .net세미나에서 이 때문에 String 연산 차이가 10~20배 정도 난다고 광고하고 다녔었는데, 지금 생각해 보면 다 부질없는 이야기 같습니다.) -상민
위의 두번째 호출의 클래스 상속의 다형적 성질을 이용한 함수 이용 즉
C++에서 class templete를 만드는 중 생성자를 빼먹으면 compiler에서 기본적인 생성자를 만들어 생성해 준다. 역시, 당연히 초기화의 문제가 발생할 것이다. 여기에서는 약간 자세한 부분을 언급한다.
class EquipmentPiece {
EquipmentPiece(int IDNumber);
해당 EquipmentPiece 는 기본 생성자가 부실(?) 하다. 이건 크게 '''3가지의 주제'''로 설명할수 있다.
EquipmentPiece bestPieces[10];
EquipmentPiece bestPieces = new EquipmentPiece[10];
EquipmentPiece bestPiece[] = {
EquipmentPiece(ID1),
EquipmentPiece(ID2),
EquipmentPiece(ID3),
EquipmentPiece(ID10),
조금 더 일반적인 방법은 다음과 같이 pointer를 이용한 접근을 제시한다.
typedef EquipmentPiece* PEP;
PEP bestPieces[10];
PEP *bestPieces = new PEP[10];
bestPiece[1] = new EquipmentPiece( ID Number );
그럼 더 웃기는 방법을 제시해 보자. (이 책을 보고 있노라면, 이렇게도 쓸수 있다란걸 보여주는거 같다.)
void *rawMemory = operator new[](10*sizeof(EquipmentPiece));
- NumericalAnalysisClass/Exam2002_1 . . . . 5 matches
(a) pivoting 방법을 선택하는 이유를 설명하시오. [[BR]]
(b) Maximal column pivoting 과 [[BR]]
(c) Scaled partial pivoting 개념을 설명하시오.
* 실제 구현부분은 프로그램 레포트가 대체해주므로, 이론/구현 평가에 대해서는 적절하다고 생각됨. --석천
- PC실관리/고스트 . . . . 5 matches
= GHOST 이미지 생성시 필요한 프로그램 목록 =
이 계정의 경우 Users 로 계정을 제한해서 프로그램의 설치및 제거에 제한을 두어야 차후에 문제가 발생하지 않을 것으로 생각됨.
음 한번 정리해봤는데 더 추가해야할 것이 있는지 모르겠음. 프로그램 목록은 개발과 관련된 것. 계정 접속에 관련된 기본적인 프로그램 중 가장 좋다고 생각하는 것으로 넣었음. - [eternalbleu]
몇가지 프로그램빼고는 현재 다 깔려 있는 상태 입니다.설정 상태도 현재 계정빼고는 위설정과 동일 합니다.... -수생
- PNGFileFormat/FileStructure . . . . 5 matches
|| 0 || 1,2,4,8,16 || Each pixel is a grayscale sample. ||
|| 2 || 8, 16 || Each pixel is an R, G, B triple. ||
|| 3 || 1, 2, 4, 8 || Each pixel is a palette index; a PLTE chunk must appear. ||
|| 4 || 8, 16 || Each pixel is a grayscle sample, followed by an alpha sample. ||
|| 6 || 8, 16 || Each pixel is an R, G, B triple, followed by an alpha sample. ||
- PascalTriangle . . . . 5 matches
== 재귀 호출을 이용한 방법 - by 인수 ==
== 동적 배열을 이용한 방법 - by 인수 ==
// 첫행부터 n행까지 계산하는 방법을 통해
== 조합의 수를 이용한 방법 ==
// 조합의 수를 계산하는 방법을 통해
- PragmaticVersionControlWithCVS/Getting Started . . . . 5 matches
date: 2005-08-02 13:16:58 +0000; author: sapius; state: Exp; lines: +4 -0
date: 2005-08-02 05:50:14 +0000; author: sapius; state: Exp;
date: 2005-08-02 05:50:14 +0000; author: sapius; state: Exp; lines: +0 -0
상기의 경우에는 2가지 프로그램의 바뀐 부분이 동일한 줄에 해당하지 않기 때문에 큰 문제없이 cvs가 알아서 반영을 해주었다. 그렇나 만약 변경부분이 동일한 부분이라면 어떨까?
date: 2005-08-02 13:46:44 +0000; author: sapius; state: Exp; lines: +1 -1
- ProjectPrometheus/CookBook . . . . 5 matches
Pattern pattern = Pattern.compile( find ); // 패턴 컴파일
동시에 10개의 타이머 설정 가능. 카운트 다운, 카운트 업 가능. 멈췄다가 프로그램을 다시 시작할 때 지난 시간에서 resume 가능. 단, 메모리 누수 버그가 있다.
Python 에서는 urllib 와 httplib 를 이용한다. Python document 의 httplib - examples 를 참조하면 GET 의 예와 POST 의 예가 나온다.
Java 에서는 HttpURLConnection 을 이용한다. 관련 코드는 http://www.javafaq.nu/tips/servlets/index.shtml 를 참조.
ZeroPageServer 웹 프로그램을 만들어서 미리 읽어볼 소스를 주신 선우형에게 감사드리며~! 형 덕택에
- ProjectZephyrus/ServerJourney . . . . 5 matches
''뭐.. 비디오 들고 과정 찍어보여주기전에는 모를테니. 새글쓰긴 힘들고 리플달기는 쉽고. 새로운 프로그램 만들기는 어렵고, 클론 만들기는 상대적으로 쉬운법. --석천''
1. {{{~cpp JavaDoc}}}을 이용한 도움말 작성 package설명 추가, 각 클래스별 설명 추가, 각 메소드별 설명 추가
* 현재 상태에서는 속도에는 신경 쓰지 말자, 일단 구조만 잘 정의 해놓으면, 개선 사항은 얼마든지 체계적으로 생각 날것이라고 생각 된다. 현재는 체계적으로 생각 나지 않지 않그런가? 당장 그날 구현만 해도 JDBC의 몇가지 api로 중복 부분의 속도 개선의 여지가 보이는데, 너무 많이 생각하면 해골 복잡하니, '''기능 구현''' 에만 중점을 두자. 이제 DB는 인터페이스만 정의 하면 완전 따로 놀수 있을것 같다. --상민
* 상규와 DB query를 console에서 날리고 받아 출력해 주는 간단한 프로그램 작성했다. 해놓고 보니 재미있다는 생각이 듬. 확장 시키면 간단한 클라이언트로 써먹을만 할것 같다.
* mm.mysql 클래스 패스 잡기가 너무 귀찮다. 아예 그냥 프로그램 내부에 넣어 버려야 겠다.
- PyServlet . . . . 5 matches
Jython 을 이용한 Servlet 코드 작성하기.
<servlet-mapping>
</servlet-mapping>
<servlet-mapping url-pattern="*.py" servlet-name="PyServlet"/>
[1002] 가 PyServlet 에서 생각하는 장점이라면, Servlet 의 특징으로, CGI와는 달리 인스턴스가 메모리에 남아있다는 점이다. 간단한 프로토타이핑을 할때 memory persistence 를 이용할 수 있게 된다. ZP 에서의 12줄 이야기와 같은 프로그램을 작성할 수도 있다.
- RSSAndAtomCompared . . . . 5 matches
There are two popular protocols widely used with RSS, [http://www.xmlrpc.com/metaWeblogApi MetaWeblog]
and [http://www.blogger.com/developers/api/ Blogger]. There are frequent
The Atompub working group is in the late stages of developing the
* some other XML vocabulary (There is no guarantee that the recipient will be able to do anything useful with such content)
||ttl||-||Use the Expires and max-age cache hints in HTTP 1.1||
- RefactoringDiscussion . . . . 5 matches
* 코드의 의도가 틀렸느냐에 대한 검증 - 만일 프로그램 내에서의 의도한바가 맞는지에 대한 검증은 UnitTest Code 쪽으로 넘기는게 나을 것 같다고 생각이 드네요. 글의 내용도 결국은 전체 Context 내에서 파악해야 하니까. 의도가 중시된다면 Test Code 는 필수겠죠. (여기서의 '의도'는 각 모듈별 input 에 대한 output 정도로 바꿔서 생각하셔도 좋을듯)
로직이 달라졌을 경우에 대한 검증에 대해서는, Refactoring 전에 Test Code 를 만들것이고, 로직에 따른 수용 여부는 테스트 코드쪽에서 결론이 지어져야 될 것이라는 생각이 듭니다. (아마 의도에 벗어난 코드로 바뀌어져버렸다면 Test Code 에서 검증되겠죠.) 코드 자체만 보고 바로 잘못된 코드라고 단정짓기 보단 전체 프로그램 내에서 의도에 따르는 코드일지를 생각해야 될 것 같다는 생각.
우리에겐 프로그램의 옳음(correctness)이 일차적입니다. 이것은 ["UnitTest"]나 Eiffel 같은 DBC 언어로 상당한 정도까지 보장 가능 합니다.
그 다음에 비로소 리팩토링의 옳음을 따질 여유가 있습니다. 틀린/틀릴 수 있는 프로그램을 "옳게 리팩토링"하면 역시 틀린/틀릴 수 있는 프로그램이 나옵니다.
- Ruby/2011년스터디/강성현 . . . . 5 matches
* 동네API를 이용한 동문 네트워크 홈페이지 제작
* 만들어진 json parser를 이용하여 각 api의 입/출력을 처리할 수 있는 함수 작성
* 동네API 레퍼런스 http://devapi.caucse.net/apireference/
* 루비 설치폴더\bin 안에 http://www.winimage.com/zLibDll/zlib125dll.zip 에 있는 dllx64\zlibwapi.dll 파일을 복사하고 이름을 zlib.dll 로 바꿈
- Ruby/2011년스터디/세미나 . . . . 5 matches
RubyLanguage 소개와, 기초 문법을 설명하는 파트
* 블럭을 이용한 반복자 함수
* [http://rubyforge.org/frs/?group_id=1109 RRobots]를 이용한 RubyLanguage Robocode
1. 시간에 치여 준비했던 CodeRace를 못 한 것이 아쉽지만 시간이 좀 걸렸더라도 지혜가 RubyLanguage 문법을 설명할 때 다같이 실습하며 진행했던 것은 좋았습니다. 그냥 듣기만 했으면 지루하고 기억에 안 남았을지도 모르는데 직접 따라하며 문법을 익히는 방식이라 참여하신 다른 분들도 더 재미있고 뭔가 하나라도 기억에 확실히 남는 시간을 보내셨을거라는 생각이 드네요.
- SPICE . . . . 5 matches
이경환 교수님이 아무래도 이쪽에 일을 담고 있으신지라 (뭐.. KSPICE 회장이시니 당근;) SE 수업때에 비교적 많이 강조하시는 부분이기도 함.
* http://kspice.co.kr
* [http://kspice.co.kr/main5/main5_6.html SPICE 심사 사례]
* [http://kspice.co.kr/main3/pds/RUP15504final_1.pdf Assessing RUP against ISO15504-5]
* [http://kspice.co.kr/main3/pds/SPICE_교육자료.zip SPICE교육자료] - 관련글은 [http://kspice.co.kr/main3/content.asp?tbname=t_down&menuname=게시판&gotopage=1&Fnum=21&Fref=21# SPICE 심사원 자격 교육자료]를 참조.
- SpikeSolution . . . . 5 matches
어떻게 보면 우리가 일반적으로 하고 있는 것이다. Visual C++로 해당 라이브러리를 이용한 프로그래밍을 할때 우리는 어떻게 할까? 아마도 Visual C++을 2개를 띄울 것이다. 그리고 한 창에서는 해당 라이브러리가 제대로 작동하는지, 대강 값들을 넣어보고 이리저리 제대로 원하는 일을 하게끔 여러 시도들을 하게 될 것이다. 그렇게 함으로서 미지인 부분에 대한 대강의 선을 잡아놓는다.
이러한 실험들을 XP에서는 Spike Solution이라고 한다. 다른 점이라면, 우리는 보통 실험 코드를 만든 뒤 실전 코드에 바로 붙일 것이다. 하지만 Spike Solution 의 경우는 '실험은 실험에서 끝난다' 에서 다를 수 있다. 보통 Spike Solution 에서 실험한 코드들을 메인소스에 바로 적용시키지 않는다. Spike Solution은 처음 계획시 estimate의 선을 잡기 위한 것으로 메인소스에 그대로 적용될 코드는 아닌 것이다. 지우고 다시 만들어 내도록 한다. 그러함으로써 한편으로는 학습효과를 가져오고, 실전 소스의 질을 향상시킬 수 있다.
- SpiralArray . . . . 5 matches
문제 Spec : Seminar:SpiralArray 를 참조.
[SpiralArray/세연&재니]
[SpiralArray/임인택]
[SpiralArray/Leonardong]
[SpiralArray/영동]
- StandardWidgetToolkit . . . . 5 matches
내부에서는 초기부터 SWT와 [Eclipse] 프로젝트의 역할이 분담되어, 과거 IBM developerworks 에 gcc를 이용한 프로그램 작성에 대한 문서가 있었으나, SWT를 이용한 프로그램의 등장은 보이지 않았다. 그러나 분리되면서, 그러한 프로그램을 기대할 수 있게 되었다.
- ViImproved/설명서 . . . . 5 matches
▶파일 데이터 파일 응용 프로그램의 데이터(binary)
텍스트 파일 응용 프로그램의 source data 또는 문서화된 파일(ASCII)
모드형 모드형 프로그램이란 서로다른 기능을 가진 모드를 가지고 있어다중환경을 지원한다. 예) 모드에 따라 엔터키의 역할도 달라진다
비모드형 비모드형 프로그램은 키들을 항상 같은 의미로 사용한다
>> 오른쪽으로 shiftwith만큼 paragraph 이동 ^r refresh(명령어 모드) !} 현재 문단을 지정된 unix 프로그램으로 연결하여 수행 후 결과를 현재 문단과 교체
- WOWAddOn/2011년프로젝트/초성퀴즈 . . . . 5 matches
기본 프로그램 정보를 담고있는 *.toc파일.
그리고 UI와 LUA를 Mapping 시켜주는 *.xml
WoW API function을 lua에 넣어준적은 없지만 자동으로 되나보다.
=== WOW API를 이용해서 아이템 이름을 불러오자! ===
WOW는 WOW API를 소개해주는 wiki를 가지고 있고 API를 가보면 다양한것들이 있다.
http://www.wowwiki.com/World_of_Warcraft_API
Addon이 적재되면 해당 프로그램 전체가 올라간것이기 때문에 WOW 메모리에 할당이 되있다. 따라서 Addon에서 flag는 따로 메모리를 할당 받았다는 얘기. 따라서 전역 변수는 addon의 함수 어디서든 접근이 가능하단 소리가 된다.
WOW API를 뒤지고 뒤져서 우선 Frame을 주고 Frame에 DefaultChatWindow에서 메시지를 받아야 할것 같다.
우선 WOW API에서 지원해주는것은 getTime()..
우선 와우에서는 API설명상. Addon에 Sleep을 걸어놓으면 전체 시스템이 멈추는것으로 되어있다. 그렇다면 쓰레드를 만들어서 Sleep을 했다가. 복귀하면 하는건 어떨까? 우선 Sleep을 Lua의 System함수 패키지인 OS에서는 지원해주지 않는다.
## X-GeneratorComment: Basic project properties and project files will be automatically added during deployment. Properties added by the user will be copied without changes.
다음에 할일 : 프로그램 시나리오 및 구성
- WebLogicSetup . . . . 5 matches
<servlet-mapping>
</servlet-mapping>
위에서 보는것처럼, <servlet/> 과 <servlet-mapping/>에 대한 설정이 필요하다. <servlet/>에서 설정하는 내용은 alias 된 서블릿 이름과 실제 서블릿을 매핑시키는 것이고, <servlet-mapping/>에서 설정하는것은 uri 패턴과 alias된 서블릿 이름을 매핑 시키는 역할이다. 도식화 시켜보면 다음과 같다.
client --------------------------------> <servlet-mapping/>에 따라 <servlet-name/>과 매핑 ---+
- XMLStudy_2002/Resource . . . . 5 matches
*일반 XML 이용자들과 XML을 기반으로 하는 프로그램 개발자로 나누어서
*XML도구와 자원들을 특성에 따라 프로그램 형식의 도구와 패키지 형식의 소스 레벨에서 사용할수 있는 도구와 문서 형식의 자원들과 같은 종류로 나눔
=== XML 사용을 위한 프로그램들 ===
=== XML을 지원하는 응용 프로그램 개발시에 사용되는 라이브러리/패키지(소스 레벨에서 사용할수 있는 도구들임) ===
XML 파서,XSL 프로세서,DOM 라이브러리, XSLT 프로세서(예를 들어서 만약 Java로 된 API를 지원한다면 XML 파싱기능을 해주는 Java 클래스들을 패키지로 묶어둔 Java 클래스 패키지라는 형태로 제공된다)
*설치방법을 알아본다.
- [Lovely]boy^_^/Diary/2-2-15 . . . . 5 matches
* My mom went into hospital. My father is not a good status too. I worry their health. I wish that they'll recover a health.
* I have suprised at system programming's difference. It's so difficult. In my opinion, if I want to do system programming well, I must study OS.
* sources for Unix system programming's final-test is so strange.--; mis-typings are so many. I am confused professor's intention.
* Today, I went to the hospital, to see my mom. I felt easy at my mom's health.
* I worry about father's smoking... after my mom was hospitalization, he decreases amount of drinking, but increases amount of smoking.
- [Lovely]boy^_^/[Lovely]boy^_^/USACO/Barn . . . . 5 matches
vector<int> getPivot(int numPivot, const vector<int>& distance)
ret.erase(ret.begin() + numPivot - 1, ret.end());
vector<int> getDatas(int& numPivot)
fin >> numPivot >> max >> iter;
if(numPivot > iter)
numPivot = iter;
int getTotal(int numPivot, const vector<int>& ar, const vector<int>& pivots)
for(int i = 0 ; i < pivots.size() ; ++i)
ret -= pivots[i];
ret += numPivot;
int numPivot;
vector<int> data = getDatas(numPivot);
vector<int> pivots = getPivot(numPivot, distance);
fout << getTotal(numPivot, data, pivots) << endl;
- naneunji . . . . 5 matches
== 프로그램 소스들 ==
* 단어찾기 프로그램 (자료구조 3번째 숙제) [[BR]]
* 최단거리 구하기 & 두번째 단거리 구하기(자료구조 4번째 숙제)[[BR]]
* 성적처리 프로그램 (c 프로그래밍 term project) [[BR]]
- 데블스캠프2004/목요일후기 . . . . 5 matches
교훈 : C도 흥미로운 프로그램이다
느낌 : 암호화와 복호화가 재미있었고, 영동이 형의 마지막 맵을 이용한 복호화와 마지막 암호 welcome2zp 의 암호 재미있었습니다. 배열을 이용하면 어려워 보일 것들도 STL 을 이용해서 쉽게 할수 있다는걸 알았습니다.
* 학생들이 얼만큼 알아들었는지 확인하는 법을 알고 싶습니다. 단순히 문제를 풀라고 하는 것보다 좋은 방법을 찾자
* 좀 더 분위를 늘어지지 않게 하고 진행하는 법을 익혀야 할 것 같다.
- 데블스캠프2009/수요일후기 . . . . 5 matches
* '''서민관''' - kernal이나 어셈블러 언어 등 전까지 별로 접할 일이 없던 생소한 개념들이 많이 나와서 솔직히 쉽지는 않았습니다. 그래도 OS의 구조나 Ring system 같은 것들은 개념적으로라도 알아두면 괜찮을 것 같네요. 그리고 전날 혁준 선배가 설명해준 dll에 대해 잠깐 다시 복습할 수 있었던 것도 좋았고요. 아쉬웠던 점은 역시 수업이 너무 고수준이라서 대략적인 이해만 하고 넘어가야 했던 것입니다. 그리고 수업 이후에 개인적으로 VMware의 사용법을 가르쳐 주신 것은 정말 감사합니다. 선배가 제 구세주입니다.
* '''서민관''' - 계속 말이 많던 객체 지향 프로그래밍. 전날의 추상화 수업에서도 객체의 개념은 잠깐 나왔었고, 개인적으로도 객체에 대해서 조금 더 들을 기회가 있어서 그렇게까지 이해하기가 어렵지는 않았던 것 같습니다. 의사코드나 플로우 차트를 이용한 프로그래밍은 확실히 무작정 코드를 쓰고 보는 것 보다는 플로우 차트 -> 의사코드 -> 실제 코드 순으로 하는 것이 간단하면서도 정확한 프로그래밍을 할 수 있을 것 같아서 괜찮다고 생각합니다.
* '''박준호''' - 객체지향 프로그램 이라는 것에 대해 개념을 잡아놓은 시간 이였습니다. 진짜 제가 코드를 짜지는 않았지만 의사 코드라는 것을 이용하여 한번쯤 객체지향으로 코드를 짜본것도 좋은 경험이 되었습니다.
* [김준석] - 강의 내내 속으로 피말렸다. 강의 도중에 이해하기 쉽게 설명할걸 몇몇 빼먹은게 자꾸 떠올라서 천천히라도 설명하려했으나 설명해놓고 보니 좀 엉뚱한데서 설명해버린 안타까운 현실. 현역 군인이라 OOP 강의에 대해서 그렇게 많은 준비는 못한것이 사실이라 강의할때 도움도 좀 받았고. 휴가 나오기전에 1~2시간씩 코딩없이 강의 할만한 내용을 찾다가 C++을 사용할 1,2학년에게 좀 중요한 내용을 잡게 됬는데.. 휴가 나오고 PPT를 작성하는데 3일동안 하루 3~4번은 고치고 내용추가를 고민하는등 긴장을 좀 많이 탓다. OOP를 이해시키고 학교생활중 설계의 중요성을 몰라 삽질을 반복했기 때문에 그 후에 코딩하기 전에 설계하는법에 좀더 중점을 둔 시간을 가지고 싶었다. 그냥 무작정 달려들어서 Run&Fix도 하기 쉽지 않은 중복많은 2~3백자리 코딩을 하기 보다는 전날 Abstractionism에서 형진이가 말했듯이 20줄 이내의 코딩, 잘 설계된 잘나뉜 코딩은 어딘가를 목표로 갈때 지도나 정보를 모아 쉽고 편한 길로 가는것과 같다. 돈도 절약되고. 안힘들고. 문제가 생겨도 모아온 정보로 해결할수 있는.. 문제를 풀어 결과를 도출해놓는것도 좋지만.. 주위에는 답을 똑같이 도출해놓을수 있는사람이 90%는 될것이다. 그렇다면 짧고 보기쉬운것이 좋겠지. 정말 아쉬운 점이라면 API나 로보코드때 이걸 설명하고 했더라면 들은 학우들에게 더 많은것을 이해할수 있었던 시간일것이라고 생각하는데.. 좀더 빨리 준비했었어야됬어.
* '''서민관''' - 수요일 수업에서 제일 마음에 들었던 부분입니다. 이클립스를 써 본 것도 좋았고, 무엇보다 JUnit test는 정말 마음에 드네요. 앞으로 갈수록 프로그램의 크기가 커질텐데 이클립스를 통한 svn 사용이나 JUnit test나 둘 다 팀 프로젝트용으로는 정말 좋은 기능이라고 생각합니다. 정말 뭐라고 더 칭찬을 해야 할 지 말이 안 나올 정도로 마음에 들었어요. 한 방에 제대로 프로그램을 못 짜는 저한테는 메인 함수 없이도 버그 수정이 가능하다는 건 정말 고마운 기능이죠.
- 데블스캠프2011/셋째날/RUR-PLE/권순의 . . . . 5 matches
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
pick_beeper()
- 데블스캠프2011/셋째날/RUR-PLE/송지원 . . . . 5 matches
if(on_beeper()) : pick_beeper()
if(on_beeper()) : pick_beeper()
if(on_beeper()) : pick_beeper()
if(on_beeper()) : pick_beeper()
pick_beeper()
- 데블스캠프2012/넷째날/후기 . . . . 5 matches
= 백트래킹을 이용한 알고리즘 문제 해결 =
* [서영주] - 처음에 gcd나 3n-1문제의 풀이 과정에 대한 얘기는 그렇게 어렵지 않았는데 갑자기 사발뒤집기 문제 들어가면서 멘탈이... 백트래킹에 대한 얘기 자체를 조금 더 다뤄줬으면 좋았을 것 같았습니다. 이미 아는 사람들한테는 어떨지 모르겠지만 잘 모르는 저학년에게는 비주얼 스튜디오를 이용한 디버깅도 좋은 내용이 됐다고 생각합니다. 나중에 되면 정말 디버깅 지겹게 하게 되니까요 -_-
* 실제로 강사 당사자가 '''5일간''' 배운 C#은 실무(현업) 위주라 객체지향 관점이라던가 이런건 많이 못 배웠습니다. 함수 포인터와 비슷한 Delegate라던가 Multi Thread를 백그라운드로 돌린다던가 이런건 웬지 어린 친구들이 멘붕할듯 하고 저도 확신이 없어 다 빼버렸지요 ㅋㅋㅋㅋㅋㅋ namespace와 partial class, 참조 추가 dll 갖고 놀기(역어셈을 포함하여) 같은걸 재밌게도 해보고 싶었지만 예제 준비할 시간이 부족했어요ㅠ_- 개인적으로 마지막 자유주제 프로그램은 민관 군 작품이 제일 좋았어요 ㅋㅋ - [지원]
* [엄제경] - 뭔가 옛날에 VB배웠을때 기억나서 좋았어요. 근데 자율로 프로그램 만드는 거에서 원하는 기능을 구현해내지 못해서 ㅠㅜ 조금 아쉽네요 ㅎ.
* 12학번도 VB를 해본 분들이 많군요. 자유 프로그램 작성에 실패했다면 개인적으로 재도전해보는건 어떨는지요..?? - [지원]
- 데블스캠프2012/둘째날/후기 . . . . 5 matches
* [김준석] - 웹서비스는 학교에서 배울수 없기에 강의주제로 잡았었는데 거기에 배우는 Skill 트리나 개발자로서 '1년후에나 쓸모있는 마소'를 읽는법을 가르쳐주셔서 좋았습니다. 현재 하시는일 잘되시길바라고 부족한 제 세미나를 채워주셔서 감사합니다.
* [김윤환] - 홈페이지 만들기!! 웹 프로그램의 아주 조금 맛보기가 상당히 재밋엇습니다. ㅎㅎ
* [서영주] - 자바스크립트는 그냥 단순하게 예제만 보면 그렇게 안어려워 보이는데 제대로 코드를 짠걸 보거나 오픈API관련을 보고 쓰려고 하면 그런건 예제처럼 코드가 예쁘지가 않더라고요. -_- 틀림없이 현실은 오늘 본 것의 이상이겠죠. 게다가 클래스에 나중에 변수를 추가한다거나 .prototype은 뭔지 등등... 그래도 웹 이외에도 많이 쓰이기도 하니까 피해갈 수 없는 언어 중의 하나겠죠. 언젠가 제대로 공부해보고 싶긴 하네요.
* [김해천] - 신기했습니다. 근데 집중력이 떨어지고 말았네요. 인식을 이용한 게임은 여러가지로 나와있습니다만, 이런 걸 프로그래밍으로써 본 것은 처음이였습니다. 왠지 모르게 신기하다는 말을 자주 씁니다만, 정말로 신기한게 많은 하루였습니다!
* [안혁준] - 키넥트를 말로만 들었지 실제 어떤식으로 동작되는지를 몰랐는데 오늘에서야 알게 되네요. 다만 키넥트의 인식이 그다지 좋지 못하다는점(관절이 20개만 잡힌다는게..) API쪽도 MS인 만큼 비공개가 많다는 점도 알게되었고요. 마이크 위치 인식같은 경우에는 음향 반사 때문에 인식이 좋지 않을수도 있다는 생각이 들었습니다. 사실 이정도 물건이면 여러가지 활용방안이 있을수 있는데 그게 어디까지 가능한가를 알게 되어서 좋은 시간이었습니다.
* [서민관] - 특이한 소재를 다루었다는 것 만으로도 충분히 괜찮은 시간이었습니다. 좀 더 잘 동작하는 샘플 프로그램을 봤으면 좋았을텐데 하는 아쉬움이 있네요. 그리고 에네르기파 쏴보고 싶었는데 안 돼서 ㅈㅈ...
* [정진경] - 매크로의 진가를 본 것 같기도.. 치환한 문자열 못찾게 개행해버리는 아이디어는 참-_-; 예전에 각종 커뮤니티에서 '상대를 화나게 하는 방법' 이라는 동영상이 있었는데요. 그 동영상의 의미는 '최소한 이런 행동은 하지 말아야 한다.' 라는 교훈이었던 것 같구요. 유지보수를 어렵게 하는 방법을 알아야 유지보수가 어려운 코드를 봤을때 어느 정도 대처할 순발력도 있을 것이고.. 뭐 여튼 악의적인 목적으로 쓰는 일이 없기를..;
- 데블스캠프2013/첫째날/후기 . . . . 5 matches
* 코딩 관련 프로젝트를 조금 더 효율적으로 할 수 있는 방법을 알게 되어 뜻깊었다. - [송정규]
* 데블스 캠프에서 빠질 수 없는 내용인 버전 관리 프로그램 관련 내용을 안혁준 선배가 해 주셨습니다. 전체적으로 깔끔하게 진행한 느낌이었고, 직접 사용까지 해 보면서 새내기들은 조금 더 와 닿지 않았을까 싶네요. 다만 후반의 실습 부분은 약간 구성을 바꾸면 조금 더 매끄럽게 실습을 할 수 있지 않았을까 하는 아쉬운 느낌이 있었습니다. - [서민관]
* 버전 관리 프로그램이라는 점에 대해서는 작년에도 SVN(이 맞나요?)을 했던 것 같던데, 올해 git을 배워가네요! 근데, 이건 제가 git을 공부를 해야 될 것 같습니다. 이해는 머리속에서 잘 하는데, 사용을 못하겠네요ㅠ_ㅠ. 확실히 저는 습득속도가 느린가봐요ㅠ..어어ㅡㅠㅓ.. - [김해천]
* 네트워크는 물론 리눅스를 사용해본 것도 처음이었는데 공부할 것이 많은 것 같습니다. 우선 새로운 프로그램을 접해 봤다는 점에서 큰 수확이었다고 생각합니다. 네트워크 장비를 구비하여 시뮬레이트 하기가 쉽지 않을텐데 이렇게 간단하게 프로그램을 사용하여 시뮬레이트 할 수 있다는 것이 신기했습니다.- [백주협]
- 상협/프로젝트관련 . . . . 5 matches
* 이건 내가 제일 아끼는 프로그램이다. 오래되어서 잘 기억은 나지 않지만, 고생도 좀 했지만 그래도 무지 뿌듯했다. 개인적으로 한번 짜보면 도움 상당히 많이 되는 프로그램이다. 강추다 강추.
* 아쉬움이 많이 남는 프로젝트이다. 내가 생각했던 이상적인 프로젝트는 어차피 이런 프로젝트가 다 학습의 한 과정인 만큼 서로 특정한 분야를 맡았다면 프로젝트를 해 나가면서 원활한 의사소통을 하면서 자기가 맡은 부분에 대한 설명을 스터디 그룹 형식으로 다른 팀원에게 해주면 서로 도움이 될거 같았다. 그런데 이 프로젝트는 자기가 맡은 부분만 하고 다른쪽 분야의 학습은 전혀 못했다. 프로그램 완성하기에도 시간이 부족한 힘든 상황이어서 그랬을지도 모른다. 난 JAVA의 소켓이랑 스윙도 좀 알고 싶었는데 그쪽은 거의 모른다. 지금.. ㅡㅡ;; 이거 언제 따로 공부하지.. 쩝..
* 이건 3D로 처음 짜본 프로그램이라서 좀 애착이 간다.
''그냥 팀 이름이 방화벽이 아닌가 하는; 그리고 네트워크 프로그램 개발 경험이 없다면, 소켓통신부터 다루게 하는것이 좋지 않을까요. ^^; --석천''
- 새싹교실/2011/Pixar/실습 . . . . 5 matches
== 원리합계 구하기 ==
1. 2단을 출력하는 프로그램
1. 정수 하나를 입력받아서 그 단을 출력하는 프로그램
1. 2단부터 9단까지 출력하는 프로그램
1. 2단부터 9단까지 가로로 출력하는 프로그램
[새싹교실/2011/Pixar]
- 새싹교실/2011/學高/1회차 . . . . 5 matches
* 4 levels of programming: coding -> compile -> linking -> debugging(running). and type of error of an each level.
* 위키의 사용법, 편집방법, 링크, 소스코드, 등을 사용하는 방법을 배웠고
* 프로그래밍 과정 : program edit -> compile -> execution ※에러나면 맨 처음으로
visual studio에서 새 프로젝트를 만드는 법을 배웠다.
printf를 사용하여 출력하는 법을 배웠다.
- 새싹교실/2012/도자기반 . . . . 5 matches
먼저 wiki쓰는 방법을 알려준 후 직접 해보게 했습니다.
마지막으로 입출력 기본 함수 사용법을 알려준 후 C수업시간에 한 예제들과 간단한 과제들을 직접 해보게 시켰습니다.
* 다양한헤더파일을 설명해줬습니다. 2주차 예제에 새로 등장한 stdlib.h, time.h 에 포함되는 간단한 함수들을 설명했습니다. 그리고 #define을 쓰는 이유도 설명했습니다. 랜덤변수를 얻기 위한 rand함수와 사용법 등을 알려주면서 다시 한번 winapi.co.kr 에 대해서도 언급했습니다. 또한 srand(time(NULL))을 사용하여 씨드를 설정해줘야 매번 다른 값이 나오는 것도 설명 했습니다.
* 정종민 - 아침7시에 수업, 처음에는 wiki사용법을 배웠고 먼가 처음하는 거라 생소한 wiki? 그 다음에는 요즘 C언어 시간에 배우는 수업에 대해 복습을 했다. 처음하는 c언어라 하나도 몰라 헤맸는데 복습하니 이제야 먼지 좀 알겠다는... ㅋㅋㅋ
* 박환희 - 오늘은 제어문에 대한 내용을 배웠고 느낌은 마음이 편하였고 제어문에서는 이러한 종류가 있다는것을 알았고 앞으로 문법을 좀더 익혀야겠다는것을 생각했습니다.
- 새싹교실/2013/라이히스아우토반/2회차 . . . . 5 matches
* 변수 선언 하는 방법을 배웠습니다.
* printf, ~~scanf~~를 쓰는 법을 배웠습니다.
3. for문 2개를 이용한 구구단
4. for문 2개를 이용한 팩토리열
다음에는 자리 앉는 법을 바꿔야 겠다. 한줄로 쭉 앉으니 한쪽에 신경쓰면 다른쪽이 산만해진다.
- 스터디그룹패턴언어 . . . . 5 matches
기념비적인 책, ''A Pattern Language'' 와 ''A Timeless Way Of Building''에서 크리스토퍼 알렉산더와 그의 동료들이 패턴언어에 대한 아이디어를 세상에 소개했다. 패턴언어는 어떤 주제에 대해 포괄적인 방안을 제공하는, 중요한 관련 아이디어의 실질적인 네트워크이다. 그러나 패턴언어가 포괄적이긴 하지만, 전문가를 위해 작성되지 않았다. 패턴은 개개인의 독특한 방식으로 양질의 성과를 얻을 수 있도록 힘을 줌으로서 전문적 해법을 비전문가에게 전해준다.
본 패턴언어에는 21가지 패턴이 있다. '정신', '분위기', '역할' 그리고 '맞춤'(Custom)이라고 부르는 네 섹션으로 구분된다. 해당 섹션의 패턴을 공부할 때, 이 언어의 구조를 고려하라. 본 언어의 앞 부분인 '정신' 섹션의 패턴은 스터디 그룹의 핵심 즉, 배움의 정신(spirit of learning)을 정의하는 것을 도와 줄 것이다. 다음 섹션 '분위기', '역할', '맞춤'은 앞선 핵심 패턴과 깊이 얽혀있으며 그것들을 상기시켜줄 것이다.
== 정신(Spirit) ==
Follow customs that will re-enforce the spirit of the group, piquing participant's interest in dialogues, accommodating different learning levels, making the study of literature easier, recording group experiences, and drawing people closer together.
- 시간관리인생관리/요약 . . . . 5 matches
* 저항을 극복하는 법을 배우면 능력을 최대한도로 발휘할 수 잇다.
* 중립적인 목소리로 'No'라고 말하는 법을 배워라.
==== 점검표를 이용한 순환 방식 ====
==== 반으로 나누기 방법을 사용해 ====
* 같은 방법을 재귀적으로 반복해라
- 실습 . . . . 5 matches
객체와 클래스 (성적 관리 프로그램)
성적 관리하는 프로그램을 클래스(class)를 이용하여 C++로 작성하여 본다.
2. 컴파일러 세팅 (Compiler Setting)
6) Location:에 프로그램을 작성할 경로를 지정한다.
15) Source 작성이 끝나면, F7을 눌러 Compile한다.
- 정모/2011.4.4 . . . . 5 matches
* 20초간 다른 사람들이 문제를 해결하는 법을 생각할 시간을 준다.
* 페어 프로그래밍을 하기 때문에 생산성이 높아지고 속도가 빨라진다는 점은 동의합니다. 하지만 페어 프로그래밍의 더 큰 장점은 속도보다는 프로그램의 완성도라고 생각했습니다. 빨리 짜는게 최우선이었던 이번 코드레이스가 속도의 향상을 보여준 시간이었다면, 다음 페어 프로그래밍은 프로그램의 설계 혹은 완성도가 향상됨을 더 느끼게 해주면 좋겠다는 의미였습니다. - [Enoch]
* 이번 정모에는 조금 다른 아이스 브레이킹 방법을 시도해보았습니다. 간단하게 하는 방법이 더 좋은 것 같아요. 수경의 "더 좋은 프로그램 만들기"도 좋았어요! 작년에 공모전 팀에서 애자일애자일 하며 밀어 붙인 것과 많이 비교되네요ㅠ 깔끔하고 명확해서 좋았습니다. 코드레이스도 처음 해봤는데 즐겁네요. 상 못타서 아쉽지만, 다들 코드를 보니 비슷비슷하네요ㅠ 메인에 다닥다닥 붙은것이. 메인에 쑤셔넣기가 참 괴로웠는데 정말 좋은 구조의 코드를 짜고싶었다면 시간을 포기하고라도 구조를 고려해서 짰겠죠.. 좋은 인사이트를 얻었습니다. 속도를 위해서라는 핑계는 말그대로 핑계인듯. 중요한 것은 대체하면 안된다는 것을 항상 잊지 말아야 겠습니다. - [서지혜]
- 정수민 . . . . 5 matches
* 로또복권 당첨돼는 번호가 나올때까지 무한 반복하는 프로그램입니다. *
프로그램을 총 5번돌려봐서 4번다 5천만이 넘어가서 창을 닫고 다시 실행해봤음;;
printf ("사칙연산 프로그램입니다.아직은 두개의 숫자만 계산이 가능합니다.n");
* 로또 복권 번호 자동생성기 프로그램입니다. *
* 점수를 입렵받아 총점과 평균 순위를 매기는 프로그램입니다.*
- 제12회 한국자바개발자 컨퍼런스 후기 . . . . 5 matches
== 프로그램 ==
|| 14:00 ~ 14:50 || KT Cloud 기반 애플리케이션 개발 전략 (정문조) || Event Driven Architecture (이미남) || 성공하는 개발자를 위한 아키텍처 요구사항 분석 방법 (강승준) || JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링 (원종석) || Java와 Eclipse로 개발하는 클라우드, Windows Azure (김명신) || Apache Hadoop으로 구현하는 Big Data 기술 완벽 해부 (JBross User Group) || 클라우드 서버를 활용한 서비스 개발 실습 (허광남) ||
|| 15:00 ~ 15:50 || 스타트업을위한 Rapid Development (양수열) || 하둡 기반의 규모 확장성있는 트래픽 분석도구 (이연희) || 초보자를 위한 분산 캐시 활용 전략 (강대명) || Venture Capital & Start-up Investment (이종훈-벤처캐피탈협회) || How to deal with eXtream Applications? (최홍식) || SW 융합의 메카 인천에서 놀자! || 섹시한 개발자 되기 2.0 beta (자바카페 커뮤니티) ||
|| 17:00 ~ 17:50 || 쓸모있는 소프트웨어 작성을 위한 설계 원칙 (김민재) || Java Secure Coding Practice (박용우) || 개발자가 알아야하는 플랫폼 전략과 오픈 API 기술 동향 (옥상훈) || 반복적인 작업이 싫은 안드로이드 개발자에게 (전성주) || 개발자가 알아야할 오픈소스 라이선스 정책 (박수홍) || 이클립스 + 구글 앱 엔진으로 JSP 서비스하기 (OKJSP 커뮤니티) || 여성개발자의 수다 엿듣고 싶은 그들만의 특별한 이야기 (여자개발자모임터 커뮤니티) ||
간단하게 점심을 먹고 본인은 첫 세미나로 Track 3에서 한 아키텍트가 알아야 할 12/97가지를 들었다. 그 내용중에서 STAN으로 프로그램의 상태를 보여주는 부분이 인상깊었다. 그렇다고 여기에 너무 민감하게 반응하지는 말라던.. 그리고 그 곳에 심취해 있다고 단순히 신기술이라고 무조건적으로 사용하기 보다는 이런 저런 상황을 고려하라는 것.. 가장 생각나는 것은 문제는 기술의 문제가 아니라 모든 것은 사람에 관한 것이다라는.. 모든 일은 나 자신으로부터 비롯된다라고 생각하고 있었는데 그 부분과 어느정도 상통하는 이야기였던 것 같다.
- 조현태/놀이/지뢰파인더 . . . . 5 matches
눈은 전체화면에서 지뢰찾기 프로그램의 이미지를 추출하는 방식을 생각했으나 그냥 핸들을 구해오는 편한 방법으로 바꿔서 만들었다.
킁..ㅠ.ㅜ 재앙이다..;;ㅁ;; 앞으로는 이렇게 짜지 말자는거 이외에는 뭐라 할말이 없다. 오랫동안 손대지 않았던 터라, 알고리즘이 잘 생각이 나질 않는다. 그래도 내가 짜서 그런지 금방 알고리즘을 생각해내는데는 성공했지만... 많은 부분을 수정했으나, 더 많은 재앙들이 초롱초롱한 눈빛으로 나를 반기고 있다. 이쁜 아가씨면 반겨주겠지만 이런 버그덩어리라니.. 도데체 어느 부분에서 잘못된 메모리를 엑세스 하는건지..흑흑 어빠햐가 잘못해떵..ㅠ.ㅜ 제발 정상적으로 작동해줘..ㅠ.ㅜ API의 특징인지...내가 못해서인지.. 테스트가 콘솔창보다 용의하지가 않다. 수없이 조각조각 나있는 할당된 메모리의 파편을 일일이 추적하자니.. 트리나 링크드리스트 형식의 문제점이라고나 할까..;;ㅁ;; 도데체 어디서 잘못된겨~!!! !@#$%^&*()...... 그래도 실행하면 지뢰 한 2-3개.. 숫자 한 2-3개는 찾고 뻗으니위안은 된다.(참고로 아직 지뢰를 건드린적은 없다!!) 수정해야할 부분 태산.. 만들어야 할 부분 태산.. 휴가가 극도로 짦은걸 보면 방학중에도 만들어야 할지도... 뭐 나름대로 앞으로 프로그램을 어떻게 짜야 할 지에대해서 조금은 도움이 되겠지뭐..ㅠ.ㅜ 흑.. - [조현태]
드디어 로봇 완성. 저번보다 더 간지나는( 구조화가 잘된) 알고리즘 표현과, 훨씬 편한 테스트 환경으로 저번에 비하면(어디까지나 비해서다. 아직 어려운 점이 많아 고생을 많이 했으며, 새로운 자료구조가 본인이 만든 탓인지 뭔가 복잡하다.ㅎ) 순풍에 돛을 단듯 아주 순조롭게 진행되었다. 그래서 로봇을 완성. 손과 눈을 api로 바꿔주고 지뢰찾기를 향에 발싸~!... 실패... 만능은 아니라서 시작한 지점에 2가 떡하니 나와준다면.. 얘도 찍어야 한다. (물런 찍어야 하는 상황에서 사람보다야 높은 적중률을 보이도록 설계했으나.. 이런 최악의 상황은 사람이나 프로그램이나.. 오히려 사람이 낮다.) 두번째.. 오옷..1초만에 성공... 세계신기록이야~ ~_~ 후후후.. 아~ 이날아갈듯한 기분..ㅎ (혼자 행복에 겨워서 뒹굴었다.ㅎ) 세번째.. 알수없는 오류가 깊은산속 옹달샘에서 발생.......OTL.ㅎ 그래도 어쩄꺼나!!! 성공시켰다. 후후후.. 이제 남은 디버그따위..ㅎ 사뿐히 해결해주짓..(역시 테스트 환경이 좋으니 작업이 잘 진행된다. 꼭 염두해두자.ㅎ) 어쨋든 오류가 떠도 지금은 행복하다.ㅎ ~_~ 일해야 되서 지금은 못해도.. 시간나는데로 해서 완성시켜주마~ >ㅁ<;;; - 2005.08.14
ㅋㅋ 우리 자바 공부해서 뭔가 프로그램 만들어 보지 않을래? 겨울방학 때 ㅋㅋㅋ --아영
- 채팅원리 . . . . 5 matches
= 프로그램 구조 =
이 채팅프로그램은 다른 여느 채팅 프로그램처럼 서버와 클라이언트 부분으로 나누어져 있다.
== 서버 프로그램 구조 ==
== 클라이언트 프로그램의 구조 ==
- 최대공약수 . . . . 5 matches
문제 : 최대공약수(GCD)를 구하는 프로그램을 순수하게 주 프로그램으로 작성하고 그것을 다시 call-by-value로 구하여라.
(ver.1 , ver.2 로 나누에 두개의 프로그램을 짠다. )
* scanf를 이용한 두 수 입력.
* 주 프로그램 출력
- 튜터링/2013/Assembly . . . . 5 matches
* 교수학습센터에서 진행하는 튜터링 프로그램에 참가해 튜터링 활동을 진행
* 0과 1000 사이의 정수를 입력받아 모든 자릿수를 더하여 출력하는 프로그램을 짜보자.
* 소문자를 대문자로 바꾸는 프로그램을 작성해보자.
* Virtual, 2진수, 메모리 공간, ALU연산, Pipeline, Multitasking, 보호모드, Little-endian, RISC&CISC
* 어셈블리언어의 기본문법을 보고, 어떤 프로그램이든 컴파일시키고 실행시켜보자.
- 프로그래밍잔치/둘째날 . . . . 5 matches
신입회원들이 고객의 역할, 기존회원들과 고객이 같이 하나의 팀이 되어 프로그램을 완성해내는 팀 프로그래밍 게임.
개발기간 중간에도 '실행 가능한 프로그램' - 2차 진행후 체크.
공지 : 2차 진행뒤에 2차까지 완성된 프로그램 시연. (돌아가는 프로그램 보여주세요!)
프로그램 작성 시간 종료 후 점검. 각 팀별로 시연하기.
- 피보나치/김상윤 . . . . 5 matches
int pivona(int x);
cout << pivona(input);
int pivona(int x)
return pivona(x-2) + pivona(x-1);
- 피보나치/방선희 . . . . 5 matches
피보나치수열의 n번째 원소 구하기
int pibo(int n);
pibo(num);
cout << "피보나치 수열의 " << num << "번째 원소는 " << pibo(num) << "입니다.\n";
int pibo(int n)
- 피보나치/장창재 . . . . 5 matches
int pi(int a);
result = pi(a);
int pi(int a)
return pi(a-1) + pi(a-2);
- 피보나치/조현태 . . . . 5 matches
cout << "피보나치 수열을 출력하는 프로그램입니다.\n 몇번째 숫자를 출력하시겠습니까?";
def pibo( n ):
return pibo( n-1)+pibo(n-2)
k=pibo( t )
- 헝가리안표기법 . . . . 5 matches
10, 15년전 Microsoft의 개발자중 헝가리 사람의 프로그래머가 쓰던 변수 명명법. MS내부에서 따라쓰기 시작하던 것이 점차 전세계의 프로그래머들에게 널리 퍼져 이젠 프로그램 코딩시 변수 명명의 표준적인 관례가 되었다.
그러나 실제로 현장에서 일하다 보면 헝가리안 표기법을 제대로 지키는 개발자는 그리 많지 않다. 어느정도 개발경험을 가지고 있는 프로그래머는 물론 심지어 시중의 프로그래밍 서적에서 조차 저자마다 변수명을 개인에 따라 가지각색으로 짓고 있어서 처음 프로그램을 배우는 입문자들들이 변수 명명에 대한 기준을 제대로 잡지 못하고 있는 실정이다.
|| p || * || any pointer || int *piAddr ||
|| pfn || * || function pointer || int (*pifnFunc1)(int x, int y) ||
- 1002/책상정리 . . . . 4 matches
책상을 어떻게 정리할 것인가에 대한 궁리. -_- 이는 책상을 어떻게 이용할 것인가에 따라 그 방법을 달리한다.
* 압축방법의 도입 - 압축의 방법으로는 일반압축기법을 이용한 압축과 손실압축법이 있다. 그리고 공간의 Optimizing 을 생각해볼 수 있다. -_-a 전자의 경우 부피줄이기, 중자는 스크랩, 후자로는 공간활용법을 생각할 수 있다.
- 2thPCinCAUCSE . . . . 4 matches
* 문제 성격: 국내 대학생 프로그램 경진 대회의 문제 출제 경향을 따른다. 2002년도 문제 샘플( http://cs.kaist.ac.kr/~acmicpc/problem.html see also ["2002년도ACM문제샘플풀이"] 참조)
* 프로그램의 실행시간이 일정시간(예: 10초)을 지나도 끝나지 않을 경우 틀린 문제가 됩니다.
* 프로그램 작성시 유의 사항:
1. 각 문제는 데이터를 외부에서 입력받아서 프로그램으로 답을 계산한 후 반드시 출력을 한다. 이때, 입출력은 표준입출력만 사용한다. 파일 입출력문을 쓰면 안됨.
- 2학기파이선스터디/if문, for문, while문, 수치형 . . . . 4 matches
for 문에서 요소의 값 뿐 아니라 인덱스 값도 함께 사용하려면 enumerate() 내장함수를 이용한다(파이썬 2.3 이상). enumerate() 내장함수는 (인덱스, 요소값) 튜플 자료를 반복적으로 넘겨준다.
>>> L = [ 'cat', 'dog', 'bird', 'pig', 'spam']
3 pig
다음은 1부터 10을 세는 프로그램이다.
- 5인용C++스터디/더블버퍼링 . . . . 4 matches
여기서는 더블 버퍼링의 원리에 대해서만 이해하도록 하고 실무를 할 때 더블 버퍼링을 쓰면 좋겠다는 생각이 들면 적극적으로 활용해 보기 바란다. 다음 예제는 더블 버퍼링을 활용한 갱 화면이다. 갱(Gang) 화면이란 프로그램 제작자를 소개하는 용도를 가지며 일반적으로 숨겨져 있지만 제작자 자신을 표현한다는 면에 있어 다소 멋을 좀 부리는 경향이 있다. 이 예제는 배경 비트맵을 깔고 그 위에서 제작자 목록을 위로 스크롤하는 예를 보여준다.
VARIABLE_PITCH | FF_ROMAN,"궁서");
||[[HTML(<img src = http://www.winapi.co.kr/win32lec/lecnew/21-5-3.files/image002.jpg>)]]||
||[[HTML(<img src = http://www.winapi.co.kr/win32lec/lecnew/21-5-3.files/image004.jpg>)]]||
||[[HTML(<img src = http://www.winapi.co.kr/win32lec/lecnew/21-5-3.files/image006.jpg>)]]||
- 5인용C++스터디/소켓프로그래밍 . . . . 4 matches
1:1 채팅 프로그램을 만들 수 있을 정도로 발표 준비를 할 것.
서버와 동일한 방법으로 클라이언트 프로그램에서 사용할 소켓 클래스 CClientSock을 생성(기초 클래스: CAsyncSocket)한다. 그리고 나서 [클래스위저드]의 CClientSock에 가상함수 OnReceive()와 OnClose()를 추가한 후, 다음 코드를 삽입한다.
이때 중요한 것은 서버 프로그램의 포트 번호(7000)와 설정할 포트 번호가 일치해야 한다.
이외의 데이터 송수신 과정과 마무리 작업은 서버 프로그램과 유사하다.
- ACM_ICPC/2011년스터디 . . . . 4 matches
* 네.. 이번주는 대략적인 것들을 결정하는 시간이었지요. Jolly Jumper를 제가 그냥 임의로 찍어서 문제로 하기로 해서, 5시 스터디가 끝나자마자 1시간동안 열심히 코딩해서 완성했습니다. ..그런데 Wrong Answer. 으아아ㅏ아아아아ㅏ 2시간동안 진경이랑 삽질하다 얻은 결론: 얘내들은 입출력방식이 달라서 우리가 짠 것만으로 되는게 아니고 계속 입력을 받도록 해야한다. 그리고 입력이 끝나면 프로그램이 종료되어야 하는데 뭐 -1?인가 그게 뜨도록 하려면 띄어쓰기같은 것도 없어야한다. ...결국 답은 대략 맞았지만 저런 형식때문에 2시간동안 고민한거죠. JollyJumpers하시는 형/누나들 참고하세요 ;ㅅ; ..아무튼 ACM스터디가 재밌게 잘 진행되었으면 좋겠어요~ -[김태진]
* 생각치도 못한 표준입출력 때문에 고생했습니다. 저놈의 judge 프로그램을 이해하지 못하겠습니다. 입출력방식이 낯서네요. 입력 종료를 위해 값을 따로 주지 않고 알아서 EOF 까지 받아야한다니... 정올 현역때는 이런 문제 구경하기 힘들었는데ㅜㅜ 제가 뭘 크게 오해하고 있나요. 덕분에 c도 아니고 c++도 아닌 코드가 나왔습니다. 그리고 3N+1 문제가 25일 프로그래밍 경진대회에 1번 문제로 나왔습니다. 허허.. - [정진경]
|| [김수경] || 1149 || PIGS ||Cillian Murphy의 초기 출연작 Disco Pigs에서 그의 배역이 Pig라서. ||
* 하루 전날까지 표를 보신 분들은 알겠지만 원래 하려던건 RSA Factorization이었는데 문제가 문제가 있더군요(??). 그래서 어느 조건에 맞춰야 Accept가 될지 알 수도 없고 괜히 168명의 사람들만 도전한거 같지는 않아서 일단은 pass하고 다른 문제를 풀었습니다. 기회가 되면 다음엔 prime을 이용한 문제를 좀 풀어보고 싶어요. 물론 Factorization의 특성상 시간이 오래 걸리는 점이 있어서 좋은 알고리즘을 고안해야 겠지만.. World Cup 문제에 대한 후기는.. 음.. 골라놓고 막 머리싸매고 풀어보니 별거 아닌 문제라 웬지 모임에서 학우들의 원성을 살것만 같은 느낌이에요. 엉엉..ㅠㅠ - [지원]
* PIGS(1149)와 The lazy programmer(2970) 중에서 하나 풀어오기
* [http://poj.org/problem?id=2498 2498 StuPId/김태진]
* [StuPId/김태진]
* [StuPId/정진경]
* [김태진] - 파닭문제를 드디어 풀었습니다. 풀기까지 재귀함수 문제들도 풀어보고, Hanoi문제도 풀어보고, Mario문제도 이렇게 풀었다 저렇게 풀었다를 몇시간째, 진경이가 for문으로 Mario를 풀어보라기에 꾸역꾸역풀고나니, !!! 파닭푸는 방법을 알았다! 며 10분만에 해결했습니다.-- 파닭문제 프로젝트를 만든지 1달째인데 푼건 10분도 안걸린.... 네, 아무튼 약속대로 소현이누나가 파닭을 쏘네요+_+!
- AOI/2004 . . . . 4 matches
uva robot의 경우 보통 300 번 이상의 test case 를 쓰는 것 같습니다. 동적 메모리가 아닌 정적으로 할당할 경우 이 점을 유의(?)하지 않으면 RE error(포인터 에러)가 납니다. 보창은 이것때문에 하루종일 프로그램을 뜯어고쳤으나, 결국 우연한 기회에 알게 되었습니다. LCD-Display의 경우 robot은 1000줄 이상을 test하는 걸로 보여집니다. -- 보창
한 문제를 풀어본 후에 소요시간이 만족스럽지 못하거나 결과코드가 불만족스럽다면 이렇게 해보세요. 내가 만약 이 문제를, 아직 풀지 않았다고 가정하고, 다시 풀어본다면 어떻게 접근하면 더 빨리 혹은 더 잘 풀 수 있을까를 고민합니다. 그리고 그 방법을 이용해서 다시 한 번 풀어봅니다(see DoItAgainToLearn). 개선된 것이 있나요? 이 경험을 통해 얻은 지혜와 기술을 다른 문제에도 적용해 봅니다. 잘 적용이 되는가요?
예를 들어, X라는 문제를 풀어봤는데 그 문제는 Y라는 알고리즘을 사용하면 쉽게 풀리는 것이었다, 하지만 그 착상을 빨리 하지 못해서 시간도 오래 걸리고 고생했다. 뭐 이런 경험을 했다면, 이 문제를 풀어서 얻은 구체적 지식을 잠시 무시하고, 이 문제를 처음 만났을 때 어떻게 Y라는 알고리즘을 사용할 수 있다는 착상에 빨리 도달할 수 있을런지 연구해 봅니다. 문제를 푼 후에 얻은 지식을 사용하지 않아야 합니다. 방법을 찾았으면 그 방법을 적용해서 다시 풀어봅니다. 그 방법이 다른 유사 문제에도 적용이 되는가요?
- APlusProject/ENG . . . . 4 matches
=== asp.net웹 응용프로그램 만들기 할때 에러 발생시 해결책 ===
->응용 프로그램 설정 "만들기" 버튼 누름!!
==== 프로그램 ====
프로그램 확인 했습니다. 잘 되네요. 수고하셨습니다. 한편 추가된 페이지들로 인해 기본 설계와 상세 설계가 약간 변경해야 할 듯 합니다. 구현 하면서 설계때 생각치 못했던 게 나와서 설계 문서에 영향을 주리라는 건 이미 예상했던 일입니다. --재동
- ASXMetafile . . . . 4 matches
XML의 문법을 따르며 다음과 같은 element가 있다. element만을 보고도 해당 element가 무엇을 의미하는지 알 수 있다. (약간 모호할 수 있는 것은 설명을 같이 넣었다)
o MARK: The logo appears in the lower right corner of the video area while Windows Media Player is connecting to a server and opening a piece of content.
* <Banner href = "path of the banner source">: Places a banner (82 pixels × 30 pixels) image at the bottom of the video display area.
- AcceleratedC++ . . . . 4 matches
|| ["AcceleratedC++/Chapter2"] || Looping and counting || ||
|| ["AcceleratedC++/Chapter15"] || Revisiting character pictures|| ||
이제 하루정도면 다 볼거 같은데... 이미 C++의 기본 문법과 템플릿의 용법을 알고 있다면, (05년 스터디의 경우 01학번들) 8장정도 까지만 하면 충분히 이 책에서 볼것은 다 보았다고 보여진다. 만약 처음으로 C++을 접하는 경우 (05년 스터디의 경우 05학번) 마지막 까지 읽어야할 필요가 있음. 물론 상당한 분량의 C++의 깊숙한 내용을 너무 간단하게 다루는 경향이 이 책에 있기 때문에 C++ Primer Plus 같은 책을 같이 보아야할 필요가 있어보인다. 책을 좀 빠르게 읽는 편이라면 2~3일동안 집중해서 본다음에 실전에 적용시켜보는 훈련이 책 잡고 있는 것보다 더 도움이 될 것으로 보인다. 그리고 이 책 -_-;; 예제가 정말로 유기적이다. 예제를 만든 사람이 더 대단해 보인다. - [eternalbleu]
흠 처음 생각했던 것 보다 뒷 장의 내용이 좀 신선한 부분이 많다. 특히 14장에 Ptr 클래스는 정말로 신선하다. =.= C++로 프로그램을 짜면 이렇게 짤 수도 있구나 그런생각이;; - [eternalbleu]
- AcceleratedC++/Chapter11 . . . . 4 matches
클래스를 설계할때에는 우선 인터페이스를 결정해야한다. 인터페이스의 결정에는 실제로 그 객체를 이용한 프로그램을 작성해보는 것이 좋다.
여기서는 '''template class'''를 이용한다.
2번째 생성자는 초기화의 인자로 인자 파라메터인 T의 생성자를 이용한다.
- AcceleratedC++/Chapter12 . . . . 4 matches
s.data.clear(); // compile error. private 멤버로 접근
do s.data.push_back(c); // compile error. private 멤버로 접근
그렇다고해서 data가 가리키는 포인터를 바로 넘기면 프로그램에서 그 포인터를 통해서 데이터의 수정을 할 수 잇기 때문에 캡슐화의 장점이 사라진다.
|| copy(char* ) || 인자로 받은 char*의 공간에 내부의 문제들을 복사해 넣는다. char*공간은 프로그램가 할당하고 해제하는 공간이다. ||
- AcceleratedC++/Chapter15 . . . . 4 matches
= Chapter 15 Revisiting character pictures =
15장은 5장에서 제시되었던 문자열 출력프로그램을 객체지향에 입각해서 설계하는 방법을 설명한다.
문법에 직접적인 연관이 없기 때문에 문법을 익히려는 목적으로 책을 본다면 반드시 읽어야할 필요는 없다.
- Ant/BuildTemplateExample . . . . 4 matches
<!-- compile 하기 전 초기화 단계에 할 일들. -->
<target name="compile" depends="init">
<!-- 실제 compile 를 하는 부분 -->
<target name="dist" depends="compile">
- Ant/JUnitAndFtp . . . . 4 matches
<project name="servletspike" basedir="." default="reporttoftp">
<target name="compile" depends="init" >
<target name="dist" depends="compile">
<target name="unittest" depends="compile">
- Ant/TaskOne . . . . 4 matches
<!-- Create the build directory structure used by compile -->
<target name="compile" depends="init">
<!-- Compile the java code from ${src} into ${build} -->
<target name="dist" depends="compile">
- AntTask . . . . 4 matches
<!-- compile 하기 전 초기화 단계에 할 일들. -->
<target name="compile" depends="init">
<!-- 실제 compile 를 하는 부분 -->
<target name="dist" depends="compile">
- Boost/SmartPointer . . . . 4 matches
* 모든 객체에 스마트포인터를 쓰도록 프로그램 짜면 자바같은 느낌으로 짤수도 ...
// copyright notice appears in all copies. This software is provided "as is"
// turned into an actual .cpp file so it could be compiled and tested.
// This example demonstrates the handle/body idiom (also called pimpl and
- BoostLibrary/SmartPointer . . . . 4 matches
* 모든 객체에 스마트포인터를 쓰도록 프로그램 짜면 자바같은 느낌으로 짤수도 ...
// copyright notice appears in all copies. This software is provided "as is"
// turned into an actual .cpp file so it could be compiled and tested.
// This example demonstrates the handle/body idiom (also called pimpl and
- BusSimulation/영창 . . . . 4 matches
Compiler : VS.net - native cl
[[NewWindow("http://zeropage.org/cvs/bus_simulation/?root=sapius&rev=7", "최초 동작 버전")]]
[[NewWindow("http://zeropage.org/cvs/bus_simulation/?root=sapius&rev=8", "station, bus 객체의 people의 승탑 메소드 구현")]]
[[NewWindow("http://zeropage.org/cvs/bus_simulation/?root=sapius", "탑승하차상황 가정 버전")]]
- C++스터디_2005여름/학점계산프로그램 . . . . 4 matches
이를 이용한 간단한 실습을 해보자.
|| 문보창 || [C++스터디_2005여름/학점계산프로그램/문보창] ||
|| 허아영 || [C++스터디_2005여름/학점계산프로그램/허아영] ||
|| 김태훈김상섭 || [C++스터디_2005여름/학점계산프로그램/김태훈김상섭] ||
- C/Assembly . . . . 4 matches
Compiler : GNU/GCC (gcc version 4.0.1 (Debian 4.0.1-2))
-E Preprocess only; do not compile, assemble or link
-S Compile only; do not assemble or link
-o Compile and assemble, but do not link
- C/Assembly/포인터와배열 . . . . 4 matches
왜냐하면 프로그램의 모든 것은 메모리로 올라간다. 즉, LC0, LC1은 프로그램의 일부로 데이터 영역에 올라간다.
포인터는 LC1을 가리키므로 메모리에 올려진 변하면 안되는 프로그램영역(CODE 영역)을 가리킨다.
하지만 배열(LC0)은 프로그램이 수행 되고 정의 부분이 되는 순간 LC0 영역의 데이터를 스택 영역에 복사한다.
- CPP_Study_2005_1/Basic Bus Simulation/김태훈 . . . . 4 matches
//버스노선 길이와 버스 속도 구하기
int tmpint;
fin >> tmpint;
tmpclass.change_speed(tmpint);
- CVS/길동씨의CVS사용기ForRemote . . . . 4 matches
길동씨는 프로젝트 세팅이 끝나고 간단히 HelloWorld.java 라는 프로그램을 작성했다.
=== 스토리 2 홍길동씨 프로그램 고치다. ===
홍길동씨는 이렇게 프로그램을 서버에 올리고 자신의 PC에 있는것은 지워 버린후 몇일 잊어 버리고 있었다. 그러다가, 잡지를 보던중 C++ OOP 프로그래
밍에 관한 기사를 읽고 자신의 프로그램을 잘못 작성되었다고 생각하고 고치려 한다.
- CanvasBreaker . . . . 4 matches
* 이미지 프로세싱 프로그램
2. 다른 영상을 이용한 밝기 변화
5. 상수를 이용한 영상변화 - 30분
* Clipping ,Iso-intensity, Range-Highlighting, Solarize - 40분
- CleanCode . . . . 4 matches
* -List 라는 식의 이름을 지을 때는 정말로 List의 API들을 지원할 때에만 -List라고 붙여주는것이 좋다. 이름을 저렇게 지으면 -List의 API들을 지원할 것 같은 느낌이 들기 때문에 아닐 경우에는 -s나 다른 방식으로 하는게 좋을 것.
* javascript를 이용한 비동기 http 요청.
* callback 함수라는 것을 이용해서 작업이 끝났을 때 처리할 방법을 정할 수 있다.
* Java Proxies : 객체 생성 시에 proxy를 거치게 하는 방법을 통해 해당 객체의 메소드 호출시 다양한 부가 작업들(횡단 관심사)을 처리할 수 있다. 다만 사용이 복잡하고 사용시에도 아래의 방법들에 비해 제한이 좀 있다.
* EJB, Spring ... : 해당 framework에서 제공하는 다양한 방법들을 통해 xml, annotation 등의 간단한 설정으로 횡단 관심사에 관한 코드를 작성하지 않고도 해당 기능들을 자신의 프로그램에 넣을 수 있다.
- ComposedMethod . . . . 4 matches
인간과 의사소통이 잘되는 프로그램을 원하는가? 메소드의 이름을 지을때 의도가 잘 드러나게 짓자.
메세지를 보내는 데에는 시간이 걸린다. 즉 함수 호출에는 오버헤드가 뒤따른다. 그러므로 최고의 속도를 내려면 하나의 메소드에 모든걸 때려넣을 수도 있다. 하지만? 댓가는 클것이다.(인력낭비, 비구조적 프로그램 양산)
초보자들은 작은 크기의 많은 메소드를 보고는, 프로그램의 진행 상황을 잘 모른다고 할 수도 있다. 하지만 경험이 쌓일수록, 잘 지어진 이름의 메세지는 코드의 흐름을 알기 쉽게 해준다. 메소드 이름을 의도가 드러나게 짓는것은 하나의 메소드 크기를 작게 하는 가장 큰 이유가 된다. 그 코드를 보는 사람들은 하나 하나의 작은 부분을 이해함으로써, 더 큰 부분을 이해할수 있게 된다. 또한 메소드를 작게 하면 버그가 발생했을때도 거기에 국한시킬 수가 있다. 뭔가 개선하기가 쉬워질 것이다. 물론 상속도 자연스럽게 할수 있다.
'''당신의 프로그램을 하나의 동일화된 작업을 수행할수 있는 메소드들로 나눠라. 모든 메소드는 같은 수준의 추상화를 유지해야 한다. 이는 자연스럽게 여러개의 작은 메소드를 만들어내게 될 것이다.'''
- CppStudy_2002_1/과제1/상협 . . . . 4 matches
void set(stringy &in, char copied[]);
void set(stringy &in, char copied[])
int ct=strlen(copied);
strncpy(in.str,copied,ct);
- DesignPatterns/2011년스터디/1학기 . . . . 4 matches
1. 인터페이스를 이용한 캡슐화는 참 편리하다 Java를 만든사람들은 이걸 목적에 두고 만든것일까?
1. 오늘은 LifeGame으로 바로 넘어가기 전에 [임상현]의 SE 과제인 파일 비교 프로그램을 설계해보았다.
1. 프로그램이 동작하는 모습을 상상해보니 아키텍쳐의 윤곽을 잡을 수 있었다.
1. SE project인 merge 프로그램 디자인을 했다. MVC모델이 스팩이라 자유롭게 책에 나온걸 자유롭게 써보진 못했다.
- DiceRoller . . . . 4 matches
* 프로젝트를 하나로 합쳐야 할 것 같다. 목적이 같지만 서로 관심분야가 달라서 결국 프로그램이 서로 달라지고 있다.
* 프로그램을 키고 오래 사용하면 스타트/레디 부분이 실행되지 않는다.
* 즉, 메모리 상의 값을 얻어와서 해결할 방법을 알게 되는 순간 여태까지 해온 우리의 노가다는 모조리 꽝.[[BR]]
* 메모리 상의 값을 얻을 방법을 알게 된다면, 주사위를 예측하는 것도 가능할 것 같다. (완전 게임핵이로구만)[[BR]]
- Emacs . . . . 4 matches
collection of emacs development tool의 약자로서, make파일을 만들거나 automake파일 구성에 도움을 주고, compile하기 쉽도록 도와주는 등, emacs환경을 더욱 풍성하게하는데 도움을 주는 확장 기능이다.
(setq byte-compile-warnings nil)
참고#3. lisp 코드의 (setq byte-compile-warning nil)은 이 코드 바로 위의 주석에 해당하는 오류가 발생하여서 해결책으로 작성한 코드이다. 혹시 이 코드로 인해 다른 오류가 발생하거나 한다면, 이를 지우거나 구글링을 통해 다른 방법을 찿길 바란다.ㅠㅜ
- EnglishSpeaking/2012년스터디 . . . . 4 matches
* [http://www.bombenglish.com/2008/01/27/1-host-introductions/ Bomb English - Episode 1]
* 2nd time of ESS! Our English speaking ability is not growing visibly but that's OK. It's just 2nd time. But we need to study everyday for expanding our vocabulary and increasing our ability rapidly. Thus I'll memorize vocabulary and study with basic English application(It's an android application. I get it for FREE! YAY!) I wish I can speak English more fluent in our 20th study. XD
* [http://www.bombenglish.com/2008/02/03/2-new-english-education-policy/ Bomb English - Episode 2]
* Today, we were little confused by Yunji's appearance. We expected conversation between 2 persons but there were 3 persons who take part in episode 2. And we made a mistake about deviding part. Next time, when we get 3 persons' conversation again, we should pay attention to devide part equally. Or we can do line by line reading instead of role playing.
- Gof/Composite . . . . 4 matches
하지만, 이러한 접근방법에는 문제점이 있다. 비록 대부분의 시간동안 사용자가 개개의 객체들을 동일하게 취급한다 하더라도, 이러한 클래스들을 이용하는 코드는 반드시 기본객체와 컨테이너 객체를 다르게 취급하여 코딩해야 한다는 점이다. 이러한 객체들의 구별은 어플리케이션을 복잡하게 만든다. CompositePattern은 객체들에 대한 재귀적 조합 방법을 서술함으로서, 클라이언트들로 하여금 이러한 구분을 할 필요가 없도록 해준다.
Picture 클래스는 Graphic 객체에 대한 포함관계를 정의한다. Picture 는 Picture의 children의 Draw 메소드를 호출하게끔 Draw 메소드를 구현한다. 그리고 Picture는 child와 관련한 명령어들을 알맞게 구현한다. Picture 인터페이스는 Graphic의 인터페이스를 형성하므로, Picture 객체는 다른 Pricture들을 재귀적으로 조합할 수 있다.
A typical Composite object structure might look like this:
* Composite (Picture)
NetPrice 의 기본 구현부는 sub-equipment 의 net price의 합을 구하기 위해 CreateIterator를 이용할 것이다.
RTL Smalltalk 컴파일러 프레임워크 [JML92] 는 CompositePattern을 널리 사용한다. RTLExpression 은 parse tree를 위한 Component 클래스이다. RTLExpression 은 BinaryExpression 과 같은 서브클래스를 가지는데, 이는 RTLExpression 객체들을 자식으로 포함한다. 이 클래스들은 parse tree를 위해 composite 구조를 정의한다. RegisterTransfer 는 프로그램의 Single Static Assignment(SSA) 형태의 중간물을 위한 Component 클래스이다. RegisterTransfer 의 Leaf 서브클래스들은 다음과 같은 다른 형태의 static assignment 를 정의한다.
- Gof/State . . . . 4 matches
TCPConnection 클래스는 TCP 커넥션의 현재 상태를 나타내는 state 객체를 가지고 있다. (TCPState 서브클래스의 인스턴스) TCPConnection 은 이 state 객체에게 모든 상태-구체적 request들을 위임 (delegate) 한다. TCPConnection 은 커넥션의 특정 상태에 대한 명령들을 수행하기 위해 TCPState 서브클래스 인스턴스를 이용한다.
다음과 같은 경우에 StatePattern 을 이용한다.
대부분의 대중적인 상호작용적인 드로잉 프로그램들은 직접 조작하여 명령을 수행하는 'tool' 을 제공한다. 예를 들어, line-drawing tool 은 사용자가 클릭 & 드레그 함으로서 새 선을 그릴 수 있도록 해준다. selection tool 은 사용자가 도형을 선택할 수 있게 해준다. 보통 이러한 툴들의 palette (일종의 도구상자 패널)를 제공한다. 사용자는 이러한 행동을 'tool을 선택한 뒤 선택한 tool을 이용한다' 라고 생각한다. 하지만, 실제로는 editor 의 행위가 현재 선택한 tool로 전환되는 것이다. drawing tool 이 활성화 되었을 때 우리는 도형을 그리고 selection tool 이 활성화 되었을 때 도형을 선택할 수 있는 식이다. 우리는 현재 선택된 tool 에 따른 editor 의 행위를 전환시키는 부분에 대해 StatePattern 을 이용할 수 있다.
- InterWikiIcons . . . . 4 matches
The InterWiki Icon is the cute, little picture that appears in front of a link instead of the prefix established by InterWiki. An icon exists for some, but not all InterMap references.
* [http://musikis.cafe24.com/ccmpic CCMPic] - http://musikis.cafe24.com/ccmpic/imgs/ccmpic-16.png
- JavaStudyInVacation/과제 . . . . 4 matches
* 어느 프로그램이든 가장 기초가되는 Hello World 를 출력하는 프로그램 짜 오기
* 클라이언트로부터 연결이 끊기면 프로그램을 종료한다.
* 서버와 접속을 끊고 프로그램을 종료한다.
- JustDoIt . . . . 4 matches
=== SpiralArray ===
Seminar:SpiralArray
uncapping을 배워보아요 -_-^ 한달에 1~2만원은 거저 벌듯 케케 -홍선-
DeleteMe scienfun 님, [JustDoIt/소수구하기]에 원래 작성하신 소스는 어찌하실 건지요? 해당 소스는 자신이 작성한 고유한 것이니, 중복이 아니잖아요. 다른 해결책은 없을까요? --NeoCoin
- LinuxProgramming/SignalHandling . . . . 4 matches
SIGPIPE - write to pipe with no one reading
SIGPROF - profiling timer expired
SIGVTALRM - signal raised by timer counting virtual time -- "virtual timer expired"(SUS)
= signal 을 이용한 타이머 =
- LispLanguage . . . . 4 matches
[http://www.lispworks.com/products/capi.html CAPI]
하면 세션이 lispinit.mem으로 저장됨
다시 실행할때는 cmd에서 clisp -M lispinit.mem 하면 실행됨
[http://clojure.org/ Clojure] : Rich Hickey가 제작한 Lisp 방언 중 하나. JVM 상에서 돌아가는 Lisp 구현체로, Java API를 직접 불러서 사용하는 것이 가능하다.
[1002]의 경우 XLISP 라는 윈도우용 프로그램 사용했었다. 언어 자체를 익히는데 최소한의 기능을 제공하는 인터프리터.
- MFC/CollectionClass . . . . 4 matches
''두가지 형태로 구현되어있다. 첫번째는 함수템플릿을 이용한 형태로 구현되어있고, 두번째는 템플릿을 사용하지 않는 방법으로 옛 버전의 VC++에서 부터 사용되어온 방식이다. 현재는 템플릿을 이용한 방법을 사용하는 것이 좋다.''
|| {{{~cpp operator[index]}}} || GetAt()과 동일하게 작동하며, built-in 배열과 동일한 사용법을 제공한다. [[BR]] {{{~cpp pointArray.SetAt}}}(3, NewPoint)[[BR]]{{{~cpp pointArray[3]=NewPoint}}} ||
- MFC/Serialize . . . . 4 matches
프로그램을 짜면서 이런 document 를 파일로 저장해야한다. 단순히 기본형의 데이터를 저장하고 불러들이기는 쉽지만, 객체단위로 이를 행하는 것은 대단히 어려운 일이다.
CXXXDoc 클래스의 객체가 시리얼화 입력과정동안 응용 프로그램을 통해 동적으로 생성될 수 있도록 한다. IMPLEMENT_DYNCREATE와 매치. 이 매크로는 CObject 에서 파생된 클래스에만 적용된다. 따라서 직렬화를 하려면 클래스는 직접적이든 간접적이든 CObject의 Derived Class 여야한다.
구현 파일에 넣어야할 IMPLEMENT_SERIAL()는 3가지의 인수를 취한다. 첫번재는 이름, 두번재는 바로 윗 단계의 기본 클래스, 프로그램에 대한 스키마 번호(scheme number), 혹은 버전을 나타내는 부호 없는 32비트 정수를 인자로 받는다.
3번째 인자는 다른 버전의 프로그램으로 읽었을 때 발생하는 문제를 막아준다.
- Memo . . . . 4 matches
[http://kin.naver.com/knowhow/entry.php?eid=sXanZUDMReh3tKhs1VJ30OlMQ3piSgKm 마지막 사진의 진실은...?]
#include <mstcpip.h>
#include <ws2tcpip.h>
// 이것은 프로그램이 socket과 연결할 정보를 담고있다.
- MobileJavaStudy . . . . 4 matches
["Java2MicroEdition"]을 주축으로 핸드폰용 프로그램을 공부하는 페이지입니다.
* 이론적인 내용을 중심으로 공부하기보다는 간단한 프로그램들을 직접 개발해보며 J2ME를 알아가는 방법으로 진행한다.
* ["MobileJavaStudy/HelloWorld"] - "Hello World" 를 출력하는 프로그램 제작 (9월 18일 까지)
* ["MobileJavaStudy/NineNine"] - 구구단을 종류별로 출력하는 프로그램 제작 (9월 20일 까지)
- MockObjects . . . . 4 matches
사용 예1) 여러 사람이 프로그래밍 할때, 독립된 프로그램이 아닌 모듈별로 프로그램을 만들고 있는 경우. 이럴때 해당 모듈을 작성하고 테스트 코드를 만들려고 해도, 다른 모듈의 의존성 때문에 진행이 어렵게 된다. 아직 완성되지 않은 의존성을 가진 모듈을 MockObject로 만듬으로서 해당 모듈을 만드는 동안의 의존성문제를 해결할 수 있다.
MockObject 는 어디까지나 가짜객체이다. 실제 테스트를 할때에는 MockObject를 이용한 경우와 실제의 객체를 이용했을때의 경우 둘 다 고려해야 한다.
* http://www.mockobjects.com/papers/jdbc_testfirst.html - MockObjects를 이용한 JDBC 어플리케이션 TestFirstProgramming
- NextEvent . . . . 4 matches
이 토론 기법을 프로그래밍에 적용합니다. 그리고 축구중계의 개념을 집어 넣습니다. 안의 사람들이 프로그래밍을 하고 이것을 벽면에 프로젝션합니다. 해설자와 아나운서가 이 광경을 해설합니다. 프로그래밍을 하는 팀원들 중에 피곤한 사람은 밖으로 나올 수 있습니다. 해설자는 나오는 사람을 인터뷰하기도 하고, 방금 어항 속 물고기의 행동에 대한 해설을 해줍니다. "아~ 멋진 페인트 액션이에요~" "저게 바로 압박 프로그래밍이라는 것이죠." 사람이 비면 밖의 사람이 안으로 들어갈 수 있습니다. 또 밖의 사람이 안으로 들어가면 안의 사람 중 한 사람은 밖으로 나옵니다. 이런 식으로 팀원이 항상 유동적으로 바뀝니다. 대신 개발하는 프로그램은 계속 유지됩니다.
자신이 쓰는 언어의 개발자 중에서 자기는 어떤 위치인지 궁금합니까? 다른 언어를 사용하는 개발자가 만든 프로그램과 자신이 만든 프로그램의 수행 시간, 개발 시간, 코드 크기 등의 비교 결과가 궁금합니까?
- OurMajorLangIsCAndCPlusPlus/signal.h . . . . 4 matches
|| SIGILL || 훼손된 프로그램 또는 데이터 프로그램의 실행 ||
|| SIGTERM || 프로그램 종료 ||
|| SIGABRT || 그 프로그램과 abort가 호출되면 발생 ||
- PairProgrammingForGroupStudy . . . . 4 matches
선후배끼리 서로 세미나를 할 때 숙제 내주고 검사하는 식의 단선적인 것 말고 좀 더 적극적인 공부가 될 수 있는 방법을 소개합니다. 아주 짧은 시간 안에 많은 양의 학습(여기서 학습을 했다고 하는 것은 뭔가 할 수 있는 능력이 생겼다는 것)을 할 수 있습니다.
저는 여기서 PairProgramming의 교육적 효과와 이를 그룹 스터디나 프로젝트 팀 교육에 응용하는 방법을 간략히 서술하겠습니다.
이 방식을 소프트웨어 개발 업체에서 적용한 것은 Apprenticeship in a Software Studio라는 문서에 잘 나와 있습니다. http://www.rolemodelsoft.com/papers/ApprenticeshipInASoftwareStudio.htm (꼭 읽어보기를 권합니다. 설사 프로그래밍과는 관련없는 사람일지라도)
여기서는 단기간에 이런 PairProgramming을 통해서 팀 내에 지식이 확산되게 하거나, 그룹 스터디에 이용할 수 있는 방법을 보도록 하죠.
이렇게 pairing을 할 수 있겠죠. 역시 아까와 동일한 태스크를 수행합니다. 대신 좀전 pairing에서 얻은 지식을 기반으로 좀 더 나은 프로그램을 새로 작성하는 겁니다. 각자 이전 경험이 다르므로(다른 사람과 짝짓기를 했으므로) 둘이 협력하면 서로 가르쳐 주고 배우면서 시너지 효과를 낼 수도 있습니다.
- ProgrammingLanguageClass . . . . 4 matches
* ''Programming Language Processors In Java : Compilers and Interpreters'' by David A. Watt & Deryck F. Brown
"Students usually demand to be taught the language that they are most likely to use in the world outside (FORTRAN or C). This is a mistake. A well taught student (viz. one who has been taught a clean language) can easily pick up the languages of the world, and he [or she] will be in a far better position to recognize their bad features as he [or she] encounters them."
무심결에 쓰고 있는 프로그램 언어의 내부를 배울 수 있는 시간입니다. 개인적으로는 이런 저런 원리를 하나식 알아갈 때마다 재미있었기 때문에 수업시간도 재미있었습니다. (정말 같이 듣는 이들은 졸린 모양이더라고요.) 과제에서 엄청난 실수를 많이 저질러서 안타깝지만, 과제 자체는 강의 내용과 매우 적절하게 연결된 것이라고 생각합니다.
아쉬운 부분은 프로그램 언어론이란 과목임에도 불구하고, 설명의 비중은 많이 쓰이는 언어일수록 높았던 점입니다. 함수형언어(FunctionalLanguage)는 기말 고사 바로 전 시간에 한 시간만에 끝내려다가, 그나마 끝내지도 못하고 요약 부분만 훑었습니다. 그 밖의 종류에 대해서는 거의 절차적 언어, 특히 C계열 언어를 설명하다가 부연 설명으로 나오는 경우가 많았습니다. 논리형언어(LogicLanguage)에 대한 설명은 거의 못 봤습니다. 어차피 쓰지 않을 언어라고 생각해서일까요.--[Leonardong]
- ProgrammingLanguageClass/2006/Report3 . . . . 4 matches
subprogram, the corresponding thunk compiled for that parameter is executed. Even
Of course, if a C program with the call statement above is to be compiled by a
conventional compiler, syntax errors should occur since it violates the syntactical rules
cf) Jensen's Device, Man Boy Test 는 Compiler Theory 의 한 항목들입니다.
- ProjectSemiPhotoshop/기록 . . . . 4 matches
* 10/29 pm1:00~pm5:00 상민과 현민의 알카노이드 SpikeSolution
* 다음일정 까지 해올 시험 프로그램 임무 부여
* 상민 : MFC MDI 를 이용한 구성
* 흑백에 대한 명암 처리 - Null, Negative, Gamma Correction, Contrast Stretched Compression, Posterizing, Clipping, Iso-intensity Contouring Range-hilighting
- Project메모장 . . . . 4 matches
* 프로그램 시작 시 패스워드를 물음, 패스워드는 차후에 변경가능.
*2005.2.17: 프로그램의 필요성을 느낌. 대략적 구조 잡음.
프로그램 아이디어 변경,Owiki프로젝트로 진행이 좀 느려질 듯.
개인이 혼자 간직하고 싶은 비밀들을 적어놓는 프로그램.
- ReleaseDebugBuildStartGo의관계 . . . . 4 matches
반면, CTRL-F5는 IDE가 실행 프로세스를 단순히 생성(fork)하는 역할만 합니다. 즉, 배포된 프로그램을 우리가 설치해서 실행할 때와 똑같은 환경이라고 생각하면 되겠습니다.
이 두 개의 기능은 방금 설명한 것 이외에 조금 다른 실행환경을 제공합니다. 바로 "미초기화 변수의 초기화"입니다. 그리고, 이 양상은 프로그램이 릴리즈 빌드냐, 디버그 빌드냐에 따라 다릅니다. 아래와 같은 구조체와 이것을 사용한 코드(비록 한 줄이지만)있다고 가정합시다.
2. 릴리즈 빌드한 프로그램을 CTRL-F5로 실행시키는 경우, 미초기화 변수는 0으로 초기화된다.
디버깅할 때는 잘 돌던 프로그램이 그냥 실행시킬 땐 오동작을 보이는 경우가 있어 막대한 육체적/정신적 에너지를 낭비하는 경우가 있는데, 그런 경우를 만난다면 이 글의 내용을 한 번쯤 떠올려 보시기 바랍니다. 그리고 다음의 점검을 해보시기 바랍니다.
- SeminarHowToProgramItAfterwords . . . . 4 matches
* ["neocoin"] : UnitTest에서 추구한 프로그램의 설계에서 Divide해 나가는 과정은 여태 거의 디자인 타임에서 거의 수행을 했습니다. 그래서 여태 Test를 위한 코드들과 디버그용 코드들을 프로그램을 작성할때마다 그런 디자인에도 많은 시간을 소요했는데, 아예 프로그램의 출발을 Test에서 시작한다는 발상의 전환이 인상 깊었습니다. --상민
* TDD를 어설프게나마 시도하면서 느낀점이 'TDD 에서의 Product Code 는 오직 테스트 까지만 만족하는 코드인가' 였었는데. 한편으로는 이렇게 해석할 수 있겠더군요. '해당 스케일에 대해 더욱더 정확하게 작동하는 프로그램을 만들고 싶다면 그만큼 테스트 코드 양을 늘려라.' 테스트코드 자체가 일종의 Quality Assurance 를 위한 도큐먼트 역할도 된다는 점을 다시 생각하게 되었습니다.
- TAOCP/BasicConcepts . . . . 4 matches
E1. [나머지 구하기] m을 n으로 나누고 나머지를 r이라 하자.(0 <= r < n)
| E1.나머지 구하기 |-------->( E2.그것이 0인가? )-------->| E3.줄이기 |
레지스터와 CONTENTS(M)을 비교해서 LESS, GREATER, EQUAL을 설정하는 명령어이다. CMPA, CMPX, CMPi가 있다. CMPi를 할 때는 앞에 세 자리가 0이라고 가정한다.
M이 가리키는 메모리 셀로 점프한다. JSJ를 빼면 점프를 하면서 점프 명령어 다음 위치를 rJ에 저장한다. the comparison indicator를 이용하거나(JL, JE, JG, JGE, JLE, JNE) , 레지스터(JrN, JrZ, JrP, JrNN, JrNZ, JrNP)를 이용한다.
MIX 프로그램의 예제를 보여준다. 중요한 순열의 성질(properties of permutations)을 소개한다.
- TestFirstProgramming . . . . 4 matches
테스트코드는 프로그래머가 하려고 하는일, 즉 의도를 담아낸다. 이는 이 프로그램이 어떠한 시나리오로 돌아갈것인가를 먼저 생각해보는 기회를 저절로 제공해준다. Test가 가능한 코드는 run 을 시켰을때 어떤 결과를 낼지를 파악할 수 있는 코드이다. 이 경우 해당 모듈이 완성되었을때가 언제인지 그 목표를 분명하게 잡는 역할을 해준다.
프로그램이 길어지다보면 Test Code 또한 같이 길어지게 된다. 어느정도 Test Code 가 길어질 경우에는 새 기능에 대한 테스트코드를 작성하려고 할 때마다 중복이 일어난다. 이 경우에는 Test Code 를 ["Refactoring"] 해야 하는데, 이 경우 자칫하면 테스트 코드의 의도를 흐트려뜨릴 수 있다. 테스트 코드 자체가 하나의 다큐먼트가 되므로, 해당 테스트코드의 의도는 분명하게 남도록 ["Refactoring"] 을 해야 한다.
Test - Code 주기가 길다고 생각되거나, 테스트 가능한 경우에 대한 아이디어가 떠오르지 않은 경우, 접근 방법을 다르게 가져보는 것도 하나의 방법이 될 수 있겠다.
이 경우에도 ["MockObjects"] 를 이용할 수 있다. 기본적으로 XP에서의 테스트는 자동화된 테스트, 즉 테스트가 코드화 된 것이다. 처음 바로 접근이 힘들다면 Mock Server / Mock Client 를 만들어서 테스트 할 수 있겠다. 즉, 해당 상황에 대해 이미 내장되어 있는 값을 리턴해주는 서버나 클라이언트를 만드는 것이다. (이는 TestFirstProgramming 에서보단 ["AcceptanceTest"] 에 넣는게 더 맞을 듯 하긴 하다. XP 에서는 UnitTest 와 AcceptanceTest 둘 다 이용한다.)
- TheWarOfGenesis2R/일지 . . . . 4 matches
* 메인 프로그램 : 스크립트를 읽어오기가 가능하다.
* 메인 프로그램 : 스크롤시 맵을 벗어나면 스크롤이 되지 않는다.
* 메인 프로그램 : 전투루틴 (일부) 포팅.
* 메인 프로그램 : 전투루틴 완전 포팅
- TwistingTheTriad . . . . 4 matches
One example of this deficiency surfaced in SmalltalkWorkspace widget. This was originally designed as a multiline text-editing component with additional logic to handle user interface commands such as Do-it, Show-it, Inspect-it etc. The view itself was a standard Windows text control and we just attached code to it to handle the workspace functionality. However, we soon discovered that we also wanted to have a rich text workspace widget too. Typically the implementation of this would have required the duplication of the workspace logic from the SmalltalkWorkspace component or, at least, an unwarranted refactoring session. It seemed to us that the widget framework could well do with some refactoring itself!
In MVC, most of the application functionality must be built into a model class known as an Application Model. It is the reponsibility of the application model to be the mediator between the true domain objects and the views and their controllers. The views are responsible for displaying the domain data while the controller handle the raw usr gestures that will eventually perform action on this data. So the application model typically has method to perform menu command actions, push buttons actions and general validation on the data that it manages. Nearly all of the application logic will reside in the application model classes. However, because the application model's role is that of a go-between, it is at times necessary for it to gain access to the user interface directly but, because of the Observer relationship betweeen it and the view/controller, this sort of access is discouraged.
For example, let's say one wants to explicitly change the colour of one or more views dependent on some conditions in the application model. The correct way to do this in MVC would be to trigger some sort of event, passing the colour along with it. Behaviour would then have to be coded in the view to "hang off" this event and to apply the colour change whenever the event was triggered. This is a rather circuitous route to achieving this simple functionality and typically it would be avoided by taking a shoutcut and using #componentAt : to look up a particular named view from the application model and to apply the colour change to the view directly. However, any direct access of a view like this breaks the MVC dictum that the model should know nothing about the views to which it is connected. If nothing else, this sort of activity surely breaks the possibility of allowing multiple views onto a model, which must be the reason behind using the Observer pattern in MVC in the first place.
This is the data upon which the user interface will operate. It is typically a domain object and the intention is that such objects should have no knowledge of the user interface. Here the M in MVP differs from the M in MVC. As mentioned above, the latter is actually an Application Model, which holds onto aspects of the domain data but also implements the user interface to manupulate it. In MVP, the model is purely a domain object and there is no expectation of (or link to) the user interface at all.
- Unicode . . . . 4 matches
Establishing Unicode involves an ambitious project to replace existing character sets, many of them limited in size and problematic in multilingual environments. Despite technical problems and limitations, Unicode has become the most complete character set and one of the largest, and seems set to serve as the dominant encoding scheme in the internationalization of software and in multilingual environments. Many recent technologies, such as XML, the Java programming language as well as several operating systems, have adopted Unicode as an underlying scheme to represent text.
MultiLinugual 플랫폼을 지향하는 프로그램의 개발자라면 당연히 이해해야하는 파트임. - [eternalbleu]
어떤 프로그램,
utf utf -8의 목적이 애매하네요. 원래 목적이 ascii문자만 있는 경우 사용하지 않는 첫번째 바이트를 없애기 위한게 아닙니다. 개발 과정에서 ascii 문자와 호환을 위해 그 영역을 그대로 변환이 되도록 한 것입니다. 목적 자체는 ucs 캐릭터가 2 또는 4바이트로 이루어져 있는데 이걸 스트링으로 쭉 이어놓고 보면 중간에 널(0x00)이 들어갈 수 있습니다. 예를 들어 '가'는 0xac00인데 이 널 바이트 때문에 스트링 처리가 곤란하게 됩니다. 그래서 널 바이트를 없앨 수 있는 인코딩 기법을 개발하게 된 거죠. 07/13 23:22:49 코멘트 지우기
- UnitTest . . . . 4 matches
ExtremeProgramming 에서는 TestFirstProgramming 을 한다. TestFirstProgramming 에서는 해당 기능에 대한 테스트 프로그램을 먼저 만들고, 실제 프로그래밍을 한다.
TestFirstProgramming 을 하게 되면 해당 프로그램을 작성해 나가는 과정이 UnitTest 작성중 남게 된다. 이는 일종의 WhiteBoxTesting 이 된다. 또한, 해당 모듈이 제대로 돌아가는지에 대한 결과도 체크하므로 BlackBoxTesting 의 역할을 한다. 즉, ExtremeProgramming 에서의 UnitTest 는 두가지 테스트의 성격을 같이 포함하고 있다. (Gray Box Testing)
보통 테스트 코드를 작성할때는 UnitTestFramework Library들을 이용한다. 각 Language 별로 다양한데, C++ 사용자는 ["CppUnit"], Java 는 ["JUnit"], Python 은 ["PyUnit"] 등을 이용할 수 있다. PyUnit 의 경우는 2.1부터 기본 모듈에 포함되어있다.
A: Socket 이나 Database를 이용하는 경우에는 문제가 되겠죠. 그럴때 MockObjects를 이용하는 방법이 있었던걸로 기억하는데, 아직 실제로 제가 해보지는 않아서요. 대강 개념을 보면 MockObjects는 일종의 가짜 객체로 실제 객체가 하는 일을 시뮬레이션 해주는 객체입니다. 미리 MockObjects 를 셋팅을 해두고 해당 함수결과의 리턴 요구시에는 예측할 수 있는 데이터를 리턴하게끔 하는 것이지요. 나중에 본 프로그램에서 MockObjects들을 토대로 실제의 객체를 만든다.. 식의 개념으로 기억하고 있긴 한데, 저의 경우는 공부만 하고 적용해본 적은 없습니다. --석천
- VonNeumannAirport/1002 . . . . 4 matches
Compiling...
Compiling...
Compiling...
pass 되었다. 아무래도 한번 미리 짜본 프로그램이여서 그런지 초반에 일반화된 것이 아닐까 하는 생각이 든다.
- WikiProjectHistory . . . . 4 matches
|| ["ProjectZephyrus"] || ["1002"], ["neocoin"], ["상규"], 이영서(["Lupin'sHome"]) , ["신재동"], ["창섭"]|| 2002.5.12~6.10. Java Study. Java Messenger 제작 || 종료 ||
|| ["MineFinder"] || ["1002"] || 2002.2.20~3.1. Win 지뢰찾기의 지뢰 찾아주는 프로그램 제작 || 종료 ||
|| ["MFCStudy_2001"]|| 6명 || 2001.2학기~ 2002.1 MFC 를 이용한 개인 프로그램 작성||종료||
- WinampPlugin을이용한프로그래밍 . . . . 4 matches
winamp 의 plugin 을 이용한 프로그래밍
input plugin은 해당 화일을 읽어드리고 output plugin 으로의 출력을 소스를 제공한다. output plugin 은 출력 소스를 사운드카드나 하드 디스크로의 출력을 관장한다. 이 중간에 DSP 와 Visual plugin 이 callback 으로 결과물을 받은뒤 변수들을 이용한다.
// Mapping.
// 이 프로그램은 console mode 기반이다. 그러므로 window 관련 셋팅은 NULL.
- ZIM/EssentialUseCase . . . . 4 matches
화일 전송시의 System Response는 클라이언트프로그램의 입장에서 써야 하나요? -- 석천
클라이언트 프로그램 + 서버 프로그램 = 시스템 아닌가요? ^^ -- 데기
저희팀(2001년 2학기 정보처리 실습 worktool팀)에서 한 방법을 하나 소개해준다면.
- ZeroPageServer/Mirroring . . . . 4 matches
로컬 호스트 시스템을 백업하는 방법으로는 tar 아카이브를 이용하여 묶거나 압축하는 방법이 있고, cpio, dump, dd 유틸리티를 이용하여 하드 디스크를 백업하는 방법이 있다.
# 4. SSH를 이용한 원격 서버 데이터 미러링
@ [ 참고사항 ] - SSH를 이용한 rsync 데이터 동기화를 위한 원격 서버의 환경
그러면 rsync로 미러링하는 방법을 연습해 보기로 하자....^_^*
- [Lovely]boy^_^/Diary/2-2-16 . . . . 4 matches
* I heard my mom will leave hospital. assa~
* I read a little Power Reading. Today's reading's principle content is using a regulator(ex) pen, pinger. etc). but this method is what I have used all the time.--; I should read a lot more.
* My mom was leaving a hospital. ^^
* '''Keeping the code simple is usually the key to correctness.'''
- html5/canvas . . . . 4 matches
* 캔버스의 API를 이용하여 그려진 선들의 집합.
* 그리기 컨텍스트가 제공하는 API를 이용하여 직선, 베지에 곡선, 원호 등 다양한 패스를 그릴 수 있다.
1. 캔버스의 API를 이용하여 패스 그리기.
* CSS3의 색 지정 방법을 전부 이용할 수 있다.
* 이미지의 인코딩 방법을 MIME 타입으로 지정한다.
* http://dev.w3.org/html5/canvas-api/canvas-2d-api.html
- html5/communicationAPI . . . . 4 matches
= 커뮤니케이션 API =
* 프로그램간에 비동식으로 메세지 전달 : 느슨한 결합(loosely coupled)
* 통신 수행의 주체 : 윈도우, 백그라운드 태스크, 서버에서 동작하는 프로그램
* 다대다 메세지 통신을 실현하기 위한 API
* 채널을 이용한 메세지 송신
// 포트를 이용한 메세지 송신
- i++VS++i . . . . 4 matches
* 사용한 컴파일러 : Microsoft 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86 (Microsoft Visual C++ 6.0 에 Service Pack 5 를 설치했을때의 컴파일러)
그냥 사용한 경우나, for 문에서 사용한 경우는 ++i 와 i++ 의 성능 차이가 없다. 그러나 함수의 전달인자로 사용한 경우는 ++i 보다 i++ 의 코드가 명령어 한개 정도 길어진다. 하지만 그냥 사용한 경우나 for 문에서 사용한 경우에는 i++ 을 쓴 곳을 ++i 로 서로 바꿔 써도 상관 없으나, 함수의 전달인자로 사용한 경우에는 i++ 을 쓴 곳을 ++i 로 바꾸면 실행 결과가 달라진다. 그러므로 함수에서 i++ 을 사용하고 있을 경우 프로그램이 한 줄 이라도 추가되지 않고 ++i 로 바꿀수 있으면 바꾸는 것이 더 효율적이다. 또한 그냥 사용할 경우나, for 문에서 사용한 경우는 ++i 를 쓰지 않아도 상관 없다. --["상규"]
쩝.. 저는 별로 신경쓰지 않는데요... (무감각하다는;;;) Amdahl's Law 였나.. 프로그램 속도를 증가시키려면, 제일 시간을 많이 잡아먹는 부분을 수정하라고... 쩝.. 마이크로 프로그램이나. 리얼타임 어플리케이션같은곳에서는 필요할수도 있겠군요.; - 임인택
- pragma . . . . 4 matches
Each implementation of C and C++ supports some features unique to its host machine or operating system. Some programs, for instance, need to exercise precise control over the memory areas where data is placed or to control the way certain functions receive parameters. The #pragma directives offer a way for each compiler to offer machine- and operating-system-specific features while retaining overall compatibility with the C and C++ languages. Pragmas are machine- or operating-system-specific by definition, and are usually different for every compiler.
C 와 C++ 을 구현한 각각의 컴파일러에는 포팅된 하드웨어나 OS 에 의존적인 몇몇가지들의 기능을 가지고 있다. 일례로 몇몇의 프로그램들은 메모리에 데이터가 어떠한 방식으로 자리잡을 것인지 에 관한 문제나 함수가 파라미터들을 조작하는 방법들에 대한 세밀한 조작이 요구된다. #pragma 지시어들은 C 와 C++ 언어 안에서 최소한의 호환성을 유지시키며 그러한 시스템 의존적인 명령어들을 언어의 기능으로서 포함시키는 일을 한다. Pragma 지시어들은 일반적으로 '''컴파일러들 마다 서로 다르다'''.
[snowflower]는 Accelerated C++ 에 있는 map예제를 Visual C++에서 치면서 엄청난 양의 경고를 경험했다. 이것을 어떻게 할 수 있을까 자료를 찾던 중 다음과 같은 방법을 찾았다.
- stuck!! . . . . 4 matches
설치법 - [DevCppInstallationGuide]
'''[http://winapi.co.kr/clec/cpp1/cpp1.htm winapi.co.kr의 C기초강좌] 매우 자세하며 양이 많다. 이것이 교재 적당히씩 읽고 와주세요'''
1차 : 입출력그리고 간단한 변수의 종류에 대해서 공부해보고, 이름과 학번 그리고 원하는 평점을 입력받고 그것을 그대로 출력하는 프로그램을 작성해 본다. 일요일 오후 3시까지 제출해 주세요. 미 제출시 가혹한 벌금이 있습니다ㅋㅋㅋ
4차 : 오늘 배운 세개중에서 가장 큰 값을 찾는 방법을 복습해 보고. 5개의 값(코드에서 미리 입력이 된다.) 에서 가장 큰 값을 찾아 본다.
- 권영기/web crawler . . . . 4 matches
Python을 이용해서 Web Crawler를 제작하면서 Python의 사용법을 익히고, 원하는 웹 페이지를 긁기 위한 Web Crawler를 제작한다. (네이버웹툰(돌아온 럭키짱, 신의 탑...), 네이버 캐스트, 그 외의 각종 웹페이지..)
* Gtk-WARNING **: 모듈을 module_path에서 찾을 수 없습니다: "pixmap"
sudo apt-get install gtk2-engines-pixbuf
* 로그인이 가능한 페이지를 긁고 싶은데 방법을 모르겠다.
- 날다람쥐 6월9일 . . . . 4 matches
= 포인터를 이용한 간단한 프로그램 =
포인터를 이용한 간단한 프로그램 :
- 넥슨입사문제 . . . . 4 matches
이걸... 프로그램으로 짜서 제출하는 문제인건가요? 아니면 답만?;; -정수민
당연히 프로그램. 프로그램을 보내면 회사에서 문제에 나오지 않은 테스트셋으로 프로그램이 맞는 지 확인하겠지. --재동
- 덜덜덜/숙제제출페이지2 . . . . 4 matches
프로그램 입니다. **20051095 허아영**************************
*프로그램입니다. [컴퓨터공학부 20051095 허아영] *
* 만드는 프로그램입니다. *
* 프로그램입니다. *
- 데블스캠프2003/첫째날/후기 . . . . 4 matches
2003년도 데블스캠프의 첫째날 후기를 적는 곳입니다. 첫째날 느낀 소감이나 프로그램을 짜면서 느낀 성취감이나 좌절감, 혹은 프로그램을 짜면서 막힌 부분이나 그런 점 등을 적어주세요.
* 정말 쉬운프로그램에서도 많이 막힌 모습이 한심스럽네요... 2학기때는 더욱 열심히 프로그램 공부를 해야게써요오~ ㅡㅜ;; --[동일]
- 데블스캠프2006/월요일 . . . . 4 matches
||pm 07:00~08:00 || 데블스 소개및 프로그램 설치 || ||
||am 04:00~06:00 ||[데블스캠프2006/CPPFileInput] [http://zerowiki.dnip.net/~namsangboy/schoolScore.html 데블스캠프2006/성적관리프로그램] [http://zeropage.org/svn/namsangboy/SchoolScore/SchoolScore.cpp Source]|| 남상협 (01) ||
위 일정시간에 배우는 예제 소스는 최종프로그램에서 다 사용 하여서 프로그램을 만든다.
- 데블스캠프2006/준비/월요일 . . . . 4 matches
||pm 07:00~08:00 || 데블스 소개및 프로그램 설치 || ||
||am 04:00~06:00 || 최종 프로그램 || 남상협 (01) ||
위 일정시간에 배우는 예제 소스는 최종프로그램에서 다 사용 하여서 프로그램을 만든다.
- 데블스캠프2010/둘째날/후기 . . . . 4 matches
직접풀은.. 프로그램 안쓰고..
* 일반적으로 C 프로그래밍은 자신이 아는 출력(또는 원하는 출력)을 위해서 구조를 짜는데 PROLOG는 중간만 만들어 놓으면 답이 알아서 나온다는 상당히 특이한 구조를 가지고 있어서 꽤 신기했습니다. 근데 이건 좀 편견일지도 모르겠지만 어째 이건 뭘 만들기보다는 연구하기 위한 언어가 아닌가 싶네요. - [서민관]
* 간단하게 만든 게임이 전체적으로 어떤방식으로 돌아가는지 알 수 있어서 유익하긴 했습니다. 간단하게라도 직접 뭔가를 출력해본다거나 이미지를 출력해보는거라던가 해봤다면 더 흥미를 가지고 재미를 느낄수있었을것같은데 너무 복잡한 소스를 처음부터 보여줘서 세세하게 이해가 안돼서 어려웠습니다. 정말 감동적이고 유익한 시간이었습니다, 추가로 부분부분 수정해서 약간의 변화를 주는것도 어떤식으로 변화가 있고 프로그램이 돌아가는지 약간이나마 이해할수있어서 도움이 되었네요 - [경세준]
* 본격 혁씨버전 슈팅게임.. ㅋㅋㅋ C를이용한 게임만들기가 정말 인상적이었습니다. 단지 C와 약간의 그림판질만으로도 만드러지는 게임이 정말 신기했습니다.
- 데블스캠프2012/넷째날/묻지마Csharp/Mission4/서영주 . . . . 4 matches
pictureBox1.Image = bitmap1;
pictureBox1.Image = bitmap1;
pictureBox1.Image = bitmap1;
pictureBox1.Image = bitmap1;
- 데블스캠프2012/첫째날/후기 . . . . 4 matches
* UI프로그래밍 : wpf의 블렌드가 신기했습니다. mfc나 스윙보다 훨씬 발전된 느낌. 보고 있으니까 이걸로 프로그램 만들면 편하겠다는 생각이 들어서 C#을 공부해보고 싶은 생각이 마구 들었습니다.
* 첫째 날 데블스 캠프는 정말 재미있었습니다. 우선 C 수업 중에 배우지 않은 문자열 함수와 구조체에 대해 배웠습니다. 또 수업 중에 배운 함수형 포인터를 실제로 사용해(qsort.... 잊지않겠다) 볼 수 있었습니다. 또 GUI를 위해 Microsoft Expression을 사용하게 됬는데, 이런 프로그램도 있었구나! 하는 생각이 들었습니다. GUI에서 QT Creator라는 것이 있다는 것도 오늘 처음 알게 되었습니다. 데블스 캠프를 통해 많은 것을 배울 수 있었습니다.
UI!! 제가 가장 갈망하던 거였습니다. 프로그램으로 짜도 꼭 까만 화면만 해야 하나라는 생각을 많이 했었거든요. 저는 그래픽지상주의(외모지상주의?ㅠ_ㅠ)라서 상당히 목말라 있었는데, 저런 프로그램이 있구나! 오. 좋다!, 그런 생각을 했습니다.
- 레밍즈프로젝트/연락 . . . . 4 matches
[찌나] 당췌 감이 안잡히삼-_- Map 이랑 Pixel 제작; 이럼 뜬금없이 뭐 부터 하란 소린지ㅠ 이승한아- 어찌해야돼?-_-
1. 맵의 자료구조 : 이 부분이 Map과 Pixel 다이어그램인데... 흠... Map은 2차원 배열로서 모든 픽셀에 대한 데이터를 관리하게 되겠지?? 그리고 그 접근 방식은 순차접근(List)가 아니라 인덱싱을 이용한 임의접근(Vector) 일거고. 맵은 Pixel 이라는 인터페이스에 대한 배열을 2차원 Vector로 관리하게 되는겨-_-ㅋ(조금 복잡해지지 이럴땐 [http://www.redwiki.net/wiki/wiki.php/boost boost]의 [http://www.redwiki.net/wiki/wiki.php/boost/MultiArray 다차원배열]에 대한 STL비슷한 녀석을 사용해도 괜찮을겨-_- boost에 대해서 좀 조사를 해야겠지만... vector를 다차원으로 쓰기엔 까다로운 부분이 많거든...)
2. 픽셀의 기능 : Pixel 인터페이스는 draw라는 순수 가상 함수를 가지고 있어 그리고 전달인자로 CMyDouBuffDC*를 받게 되지. 그리고 SetPixel(int x, int y)따위를 통해서 윈도우에 그림을 그리게 되지 (이부분은 [레밍즈프로젝트/프로토타입/SetBit]참조)을 통해서 배경에 대한 픽셀을 뿌리게 되는거지.
3. 화면에 보여지는 한 픽셀은 한 개의 pixel 객체가 될 것이삼 이삼-_- 만약 너무 작다면 연락 주시오-_- rectangle로 바꿔야 할지도 모르니까-_-
#include "Pixel.h"
Pixel pixel_map;
pixel_map[10][10];
클래스 구조 짜는거 같이 모여서 해야 할 것 같기도해;; 너무 어려워;; 그리고 위의 코드는 당연히 에러가 나는거야;; Pixel 녀석을 CArray에 쳐 넣으삼 - 이승한
Pixel에 Array 때문에 에러나는게 아니삼.ㅠㅠㅠㅠㅠㅠㅠ
- 문자반대출력/허아영 . . . . 4 matches
영어문자열만 실행되는 프로그램
/*파일에서 입력받은 문자열을 반대로 출력하는 프로그램*/
{{{~cpp /*파일에서 입력받은 문자열을 반대로 출력하는 프로그램 ver.2*/
한글로 해봤었는데, 이 프로그램은 영어만 되나, 하고 생각했었습니다. MSB를 이용하면 되겠군요. MSB에 대한 자세한 설명이 필요합니다. --아영
- 새싹-날다람쥐 6월 10일 . . . . 4 matches
free(d); 를 이용해서 지금 실행중인 프로그램에 종속되어있는 sizeof(char) * temp만큼의 메모리를 OS에 다시 반환시킨다.
하지만 간단한 프로그램에서는 이렇게 해 줄 필요가 없다. 프로그램을 종료시키면 알아서 OS가 가져가기 때문에.
나중에 거대 프로젝트(오랜시간동안 켜 놓아야 하는 게임 같은 경우)에서는 메모리 반환을 하지 않으면 컴퓨터가 느려지고 가용메모리가 없어져서 메모리를 요청했을 때 메모리가 부족해 프로그램을 다시 껐다 켜야 하는 상황이 발생할 수 있다.
- 새싹C스터디2005 . . . . 4 matches
[http://winapi.co.kr/clec/cpp1/cpp1.htm winapi.co.kr의 C기초강좌] 매우 자세하며 양이 많다.
단축계산(short-circuit evaluation)의 개념을 설명한 프로그램을 읽고 이 프로그램에서 4개의 printf()함수를 실행했을 때, i, j의 값이 왜 그렇게 나오는지를 설명하시오.
[DevCppInstallationGuide] // 인스톨 가이드 입니다.
- 새싹교실/2011/A+ . . . . 4 matches
과제로 배열을 이용한 구구단 만들기를 받았다.
과제 다했으요 ^_^ [고한종/배열을 이용한 구구단 과제]
* 중간고사 범위에 맞춰서 함수에대해서 배웠다. 진경이한테 얼핏 배워서 쓰는법은 알았었지만 return에 대해서 정확히 이해를 못했었는데 이번 수업으로 return쓰는 법을 이해하게 되었다. 함수를 쓸 수 있게 된덕에 앞으로 좀더 많은것을 짤 수 있게 될 것 같다. 그리고.. 팩토리얼을 짜봤다.[고한종/팩토리얼]
디버깅을 배운뒤에, 이번 C과제 2번에 동적할당 하는법을 배웠는데, 내가 realloc()을 말하지 않았으면 구조체랑 링크드 리스트도 배울뻔했다.
- 새싹교실/2011/AmazingC/5일차(4월 14일) . . . . 4 matches
<입력받은 숫자의 각 자리수의 합 구하기>
1~2. 다음을 출력하는 프로그램을 작성하세요.
3. 구구단을 출력하는 프로그램을 작성하세요.(1단~9단)
4. 369게임을 30미만까지만 출력하는 프로그램을 작성하세요.(게임 방식대로)
- 새싹교실/2011/Noname . . . . 4 matches
* Hello World! 프로그램 짜보기
* 시험기간을 대비하여 많은 문제들을 풀었습니다. 반복문을 이용한 달력출력과 별찍기, 기출문제들을 풀었습니다.
* 재귀함수의 사용법을 익숙하게 하기 위하여 여러가지 예제를 풀어보았습니다. 처음 두가지 예제는 비슷해서 그런지 금방 끝냈는데 하노이탑은 힘들어 하더라구요. 저도 작년에 이 문제를 풀기위해 온갖 노력을 하다가 그때 선생님의 도움으로 간신히 풀었는데 그 기분이 짱이더라구요. 하노이탑까지는 꼭 풀고 다음을 배워야겠습니다. - [박정근]
* 배열을 선언한 후에 배열의 각 원소에 값을 저장하러면 index를 이용한다.
- 새싹교실/2011/무전취식/레벨2 . . . . 4 matches
* Memory에 적재되서 실행되는 프로그램 그 프로그램 안의 변수.
* 프로그램은 문장단위로 코드를 돌리게 되는데 그것을 끊어주는 단락이 ; 입니다.
* 제어문을 배웠습니다. 제어문은 프로그램의 흐름을 제어하는 문장입니다.( if,switch{case},while(){},do~while();,for( ; ; ) )
- 새싹교실/2011/무전취식/레벨3 . . . . 4 matches
* Memory에 적재되서 실행되는 프로그램 그 프로그램 안의 변수.
* 프로그램은 문장단위로 코드를 돌리게 되는데 그것을 끊어주는 단락이 ; 입니다.
* 제어문을 배웠습니다. 제어문은 프로그램의 흐름을 제어하는 문장입니다.( if,switch{case},while(){},do~while();,for( ; ; ) )
- 새싹교실/2011/쉬운것같지만쉬운반/2011.5.3 . . . . 4 matches
* 월요일 ( 5월 9일 ) 오후 6시에 모든 새싹팀들이 모여서 간단하게 프로그램을 진행합니다~ 나오시오~
1. 프로그램을 만들기 위해!
9. 32비트 컴퓨터에서는 기본 정수형(int)에 대해 32비트의 메모리 공간을 할당해 주는 데에 비해서 64비트 컴퓨터에서는 64비트의 메모리 공간을 할당해 주기 때문에 자료 크기가 달라지고 MSB의 위치가 달라져서 프로그램이 오작동하거나 실행할 수 없게 된다.
-프로그램이 길어져도 어디가 잘못됐는지 보다 쉽게 찾을 수 있기 때문
- 새싹교실/2011/앞반뒷반그리고App반 . . . . 4 matches
* 그거쓰면 중간에 그 값이 거짓일경우 프로그램 따운 시켜버리는거임. 오류검사할때 쓴다고 봐야하려나..?- [김태진]
에서 assert안이 참일 경우 그냥 지나가버리지만(프로그램이 종료하지만) 그렇지 않을경우
Assertion failed: (n>100), function main, 과 같이 오류뜨면서 프로그램이 종료됨.
* 시험기간 직전에 질문시간이었어요. ~~저밖에 오지 않았지만~~ 이날 새롭게 배운것은 (수업시간에 필요없다고 넘긴것이라 필요없었음에도 잔다고 필요없다는 사실을 몰랏음) redirection이었는데요! 뭐냐니 input과 output을 바로 프로그램에서 받고 띄우는 것이 아니라 다른 문서에서 불러오거나 집어넣는 것이었어요. 지금까지는 인풋은 무조건 scanf로 직접 넣었는데, 그것과는 다른것!!이었죠. 사실 방법은 지금 잘 기억나지를 않네요 -_- 아무튼 이런 신기한걸 배웠습니다. -[김태진]
- 새싹교실/2012/아우토반/앞반/4.19 . . . . 4 matches
== 은행관리 프로그램 메뉴를 짜봅시다 ==
int pick_number;
scanf("%d",&pick_number);
switch(pick_number)
- 새싹교실/2012/앞부분만본반 . . . . 4 matches
2. C 프로그램의 완성과정
4. 주석이 들어가야 완성된 프로그램
3 -> 문제 1. 다음과 같은 형식으로 본인의 이름을 출력하는 프로그램을 완성해보자 .
문제 2. 본인의 이름, 주소, 그리고 전화번호를 모니터에 출력하는 프로그램을 작성해보자.(\n을 사용)
- 스네이크바이트 . . . . 4 matches
객체 지향 프로그래밍이란 한마디로 말해, 프로그램을 만들 때 이 세상의 오브젝트를 프로그램을 구성하는 기본 단위로 해서 만들겠다는 의미이다.
대형 프로그램을 작성할 때, 모든 것을 한꺼번에 생각해서 만들기는 너무 복잡하다. 그래서 작은 단위로 나누어서 만든다. 객체 지향 프로그래밍에서 그 단위가 바로 '클래스'이다.
링크드리스트를 이용한 노드 추가
- 시간맞추기/허아영 . . . . 4 matches
그리고, 이 프로그램 . 나도 못 맞추겠다. 8초를 어떻게 딱!! 알아낸담 ㅋㅋㅋ
time()함수의 기능상의 문제점..ㅎㅎ 사실 이거말고 다른방법을 사용하는게 더 정확한데..ㅎㅎㅎ
내가 얼핏 보기에는 clock() 함수도 프로그램 시작하고 시간을 제는 것이라고 들었는데, 어떻게 쓰는걸까? - [허아영]
음.. clock_t라는 time_t랑 비슷한 변수를 만들고 변수명=clock() 라고하면 프로그램이 시작된 뒤부터 지나간 시간이 기록되는군.. 그런데 함수의 특성상 정확한 시간을 나타내지는 않는다는 단점이..;;ㅁ;; - [조현태]
- 우리홈만들기 . . . . 4 matches
*지금 이 프로젝트는 28일까지 마감을 하고 졔,혜영,남훈이가 웹프로그램을 공부한다고 하니
*'''웹프로그램배우며 놀기'''란 프로젝트를 만들기 바람~~
*예를들어 리눅스,파이선,자바,웹프로그램등을 공부할수있다
* 홈페이지 예쁘게 꾸밀수 있는 방법을 가르켜도 -광식-
- 정모/2006.5.22 . . . . 4 matches
- 디버깅, 찾는 방법을 초반에 해주는게 어떨까??
- 각 요일마다 목표가 되는 프로그램을 정해서, 그에 맞는 문법을 가르쳐 주는게 어떨까??
- 가르쳐 줄 것 -> 프로그램을 정함.
- 목 : 클래스, 객체지향, API / 선호, 인수, 준수, 용재, 창섭
- 정모/2011.3.21 . . . . 4 matches
* Emacs & Elisp 후기 :의 소개를 보면서 다양한걸 사용하는 승한형에게 잘맞는 프로그램이라 생각됬다. 그 프로그램을 사용하기에 다양한걸 좋아하기도 하고 내가 가장많이쓰는건 Eclipse와 그걸 지원하는 플러그인이지만 여러가지를 개발하는 개발자에게 저것은 좋은프로그램이라 생각된다. 하지만 나에게는 아직도 Eclipse를 다루는것조차 아직은 버겁기에 우선 Eclipse를 하자는생각이 들었다.
1. 승한오빠 특별 세미나(emacs & elisp) : 교육기간이니 '''칼퇴할때 세미나 한번 해주세요!!''' 라고 요청드렸는데 선배님 펌프질에 보람을 느꼈던 순간이었습니다. 칼보단 감자깎기가 흙당근이나 감자를 깎을때 진리이듯이 좋은 프로그램과 좋은 툴을 적절히 사용하는게 얼마나 중요한지를 다시 생각해볼 수 있었습니다. 이 세미나 이후 아직도 textPad 강제로(?) 사용하고 있는 2학년 학우들이 불쌍해졌습니다......
- 정모/2012.3.12 . . . . 4 matches
* 40주년 기념 행사와 함께 프로그램 전시회가 있습니다. 많은 출품 부탁드린답니다.
당장 학우들이 학교에서 배우는 버전은 아마도 Java SE 5.0과 6일 것이므로 혼란을 피하기 위해 JLS 3e 기준으로 설명했습니다. Java SE 7의 JLS SE7e 에서는 The Diamond <>를 이용한 Type inference가 추가된 것이 가장 큰 특징이지요. 이를테면,
* 어떻게 될지는 모르겠지만 friendship, 과학기술동아리 지원 등 ZeroPage가 지원받을만한 프로그램들이 많이 있네요. 이런 저런 기회들이 많이 보이는 것이 좋습니다. 외부에서 동아리 지원 프로그램을 운영하는 것이 좋다기보다는 이런 기회가 있다는 걸 모르고 지나치지 않는 ZeroPage가 좋아요. - [김수경]
- 진법바꾸기 . . . . 4 matches
문제 : 십진수와(d), 진법(n)을 받아들여 십진수를 n 진법으로 변환시키는 프로그램을 만들어라.
* 입력받는 십진수(d)값이 0일 때 프로그램이 종료된다.
* 샘플 수정해 주세요. 16진법의 경우 10~15를 A~F로 나타내기로 약속했지만, 다른 진법의 경우는 약속한 문자가 없습니다. 따라서 프로그램의 일관성을 위하여 A8D 대신 10 8 13로 나타내 주는게 좋을것 같습니다. -- 보창
* 책의 문제를 똑같이 적은 것 뿐입니다^^ 문제를 잘 읽어보고 다른 진법의 경우도 될 수 있게 프로그램을 작성해 주세요. 24진법까지라는 제한을 둔 것도 문제의 의도가 있을 듯 하지 않나요?
- 캠이랑놀자/051228 . . . . 4 matches
Using [PIL]
im.putpixel((x,y), im.getpixel ((x,y)) + 30 )
im.putpixel((x,y), im.getpixel ((x,y)) - 30 )
세미나 준비와 관련하여, 추상적인 말을 줄이면서 사람들이 실제 결과를 가지고 이야기할 수 있도록 하는데 촛점 맞추기. 그러다가 종종 PIL 을 써서 프로토타이핑 하던게 생각나서 Python + PIL 로 진행.
- 컴퓨터공부지도 . . . . 4 matches
Windows Programming 이라고 한다면 Windows 운영체제에서 Windows 관련 API 를 이용 (혹은 관련 Framework), 프로그래밍을 하는 것을 의미한다. 보통 다루는 영역은 다음과 같다. (이 영역은 꼭 Windows 이기에 생기는 영역들이 아니다. Windows 이기에 생기는 영역들은 Shell Extension 이나 ActiveX, DirectX 정도? 하지만, 가로지르기는 어떻게든지 가능하다)
예전에 Windows Programming 을 배운다고 한다면 기본적으로 GUI Programming 을 의미했다. Windows 가 기본적으로 GUI OS 이기에 기본이 이것이라고 생각하는 것이다. 하지만, GUI 는 어디까지나 'User Interface' 이다. 즉, 이건 Input/Output 에 대한 선택사항이다. 필요할때 공부하자. (하지만, 보통 User-Friendly 한 프로그램들은 대부분 GUI 이다.)
Windows 에서 GUI Programming 을 하는 방법은 여러가지이다. 언어별로는 Python 의 Tkinter, wxPython 이 있고, Java 로는 Swing 이 있다. C++ 로는 MFC Framework 를 이용하거나 Windows API, wxWindows 를 이용할 수 있으며, MFC 의 경우 Visual Studio 와 연동이 잘 되어서 프로그래밍 하기 편하다. C++ 의 다른 GUI Programming 을 하기위한 툴로서는 Borland C++ Builder 가 있다. (C++ 중급 이상 프로그래머들에게서 오히려 더 선호되는 툴)
GUI Programming 을 하면서 익힐 수 있는 소중한 개념으로서 Event Driven Programming, Design 으로는 CompositePattern 이 있다. 대부분의 GUI Framework 들은 Event Driven Style 의 프로그래밍 방식이며, 대부분 CompositePattern 을 이용한다. Framework 들의 디자인 개념들이 비슷하므로, 하나의 GUI 관련 Framework 에 익숙해지면 다른 Framework 도 쉽게 익힐 수 있다.
* 내 생각엔 일단.. : 윈도우 컨트롤(VC 등의 리소스 편집기에서 제공 되는 모든 컨트롤들) 을 다루는 법을 완전히 습득 하자. 리스트 컨트롤, 트리 컨트롤, 탭 컨트롤 등의 모든 컨트롤을 자유자재로 원하는 모양(비트맵) 으로 바꿔서 사용할 수 있을때 까지 하자. 완전히 습득하면 어떤 프로그램이든 50% 이상 개발 기간이 단축될 것이다. -- ["김정욱"]
==== Windows API ====
- 코바예제/시계 . . . . 4 matches
== 프로그램의 목적 ==
== 프로그램 소개 ==
== 프로그램에 대한 구체적 설명 ==
// 객체 레퍼런스를 얻어내는 부분, 여기에서는 클라이언트 프로그램의 첫번째 인수로 문자열화 객체 레퍼런스가 주어진다고 가정한다.
- 프로그래밍잔치/첫째날후기 . . . . 4 matches
["상민"] 과 ["1002"] 는 위키에서의 대화에 대해 간단한 시연을 보여주었다. [1002/MP3공유프로그램] 에서 가상의 인물 1002, 상민, 쩡직 등이 대화를 하면서 페이지내용을 조금씩 정리하고, 점차 [음악공유프로그램], [소리바다와그누텔라] 페이지로 나누어져가는 모습을 중간중간 버벅이는 설명과 함께 시연을 했다.
*감상 : 위키에 글을 쓸 수 있는 용기를 내어...;;짧은 시간이나마 참여했던 후기를 남겨보면..내가 선택했던 python은 c나 java와 비슷하면서도 더 간단한 구조를 가지고 있었기 때문에..패러다임의 변화로부터 오는 충격은 적었던것 같다. 오히려 문법은 간단하지만, 손과 눈에 익지 않은 구조문들과 프로그램 실행 방식으로 인해 상당히 불편하다는 느낌을 받았고, 이렇게 실행 되는 인터프리터 언어를 접한다는게 어떤 도움이 될는지....;;;란 생각이 들었다. 특히, 툴과 언어가 익숙하지 않으니 문제(삼목)의 알고리즘도 생각이 나질 않아 당황스러웠다. 마구잡이로 짜는 코딩 습관 때문인가...하는 생각이 들었다.
* 좋았던 점 : 새로운 언어를 접할 상황이 올 때 , 문법을 익히고 적용하는 방법에 대해 경험 할 수 있었단 점. 이 때 인터넷의 많은 문서들 중 튜토리얼 형식의 문서가 도움이 된다는 점. --["naneunji"]
- 피보나치/고준영 . . . . 4 matches
$result = pibo($n);
function pibo($n)
return (pibo($n-1) + pibo($n-2));
- 피보나치/김홍선 . . . . 4 matches
void pibo(int n);
pibo(p-1);
void pibo(int n){
pibo(n-1);
- 피보나치/민강근 . . . . 4 matches
int pi(int a)
return pi(a-1)+pi(a-2);
cout<<pi(y) << endl;
- 피보나치/아영,규완,보창 . . . . 4 matches
def pivo(n):
return pivo(n-1) + pivo(n-2)
print pivo(input()-1)
- 피보나치/임인택 . . . . 4 matches
def pibo(num):
return pibo(num-1)+pibo(num-2)
def piboIter(num):
- 하드웨어에따른프로그램의속도차이해결 . . . . 4 matches
* 우리가 만든 프로그램이 어떤 하드웨어에서던지 일정한 속도로 돌아가기를 바라는 경우가 있다. 특히 게임을 만드는 경우가 대표적인 예이다. 그러한 경우 어떠한 해결책이 있는지 알아 보면 좋을거 같다. 여기에 그 해결책들을 적어 보고 잘못된 방법은 고치기도 하면서 좋은 방법을 찾으면 좋겠다.
* 이걸로 해결 봤습니다. MFC에서는 타이머를 써봤는데 API에서는 어떻게 쓰는지 몰라서 못했었는데, 정직이형에게 물어봐서 알게 되어서 위 문제를 해결~
* 궁금한게 있는데, ["MFCStudy_2001/MMTimer"] 로 안된단 말이야? 가장 빠른걸로 알고 있어서, 동작 제어는 타이머단에서 하고, loop에서 열심히 그림 그려서 fliping만 해주면 되지 않을까? 낮에는 경황이 없어서, 그냥 멀티미디어 타이머 이야기만 했는데, winamp 같은 시간에 의존적인 프로그램들도 이 타이머를 사용해서 말이지. --["neocoin"]
- 학회간교류 . . . . 4 matches
* PGP (Programmable Graphics Pipeline)
오늘 분산처리 공부하다가 떠오른 아이디어인데, '''PC실 관리 프로그램''' 만들어보면 어떨까요? 각 PC실의 PC 동작 현황(현재 돌아가고 있는 프로그램)과 IP주소, 프린터 동작 여부 등의 정보를 웹상에서 보여주는 거죠.(아마도 인증된 사용자에게만 보여줘야겠지요. 동문서버팀하고 연동해도 되겠네요.) 해당 서버 프로세스는 동문서버에서 돌리고, 각 PC들마다 클라이언트 프로그램을 백그라운드로 돌리면 될 거 같고요. 그러면, 구지 구피에 자리없을 때, 7피까지 올라가보지 않아도 PC실 사용을 파악할 수도 있고, 필요하면 다른 장소에서도 학교 PC실 사용여부를 감독할 수 있겠지요. 차후 전체 PC 네트워크 관리나 바이러스 체크와 같은 관리면 등에도 응용이 가능할 것으로 예상해보고요. 어때요? --Netory:창선이
반응이 늦었습니다. 매우 멋진 생각이네요. B) 지속적으로 쓸모 있는 프로그램이겠는걸요? --[Leonardong]
- 02_Python . . . . 3 matches
* 이 위키페이지는 파이썬을 이용한 cgi 로 만들어졌다
=== 파이썬 프로그램은 모듈(module), 문(statement), 그리고 객체(object) 로 구성된다. ===
{{{~cpp 1. 프로그램은 모듈로 구성되어 있다.
- 1thPCinCAUCSE/null전략 . . . . 3 matches
도구는 연습장과 인덱스 카드, assert 문을 이용한 테스트 케이스 등을 이용했습니다. 연습장과 인덱스 카드는 주로 개개인 수식과 중요 변수들을 적기 위해, 또는 그림을 그리기 위해 이용했고 (두 도구의 용도가 구분되어있진 않았음) 문제에 대해서 답이 나왔다하는 가정하에 (문제지에 Sample Input->Output 이 나와있었기에 가능했습니다.) Backward 로 문제가 해결된 상황을 가정하고, 그러기 위해 필요한 변수들을 찾아나가는 방법으로 진행했습니다. 프로그래밍 스타일은 Structured 스타일의 Stepwise Refinement & PBI & assert 를 이용한 TDD 를 사용했습니다.
미리 예제문제로 제시된 5문제중 어려웠었던 뒤의 3문제들을 각자 풀어보고 훈련했었다면 실전에서도 더 여유있고 의식적인 작업을 할 수 있었으리라 생각하며. 그리고, 초반에 바로 TDD 로 나가는 것보다, 문제에 대한 여러 접근방법을 둔 뒤, 하나를 고르고 그에 대해 TDD 로 나가는 것이 더 좋았을 것이라고 생각. (TDD를 바로 문제 Approach 기법으로 적용하는것 보단, 해당 문제 접근방법에 대해 빨리 필요한 변수들을 발견해나가고, 명확하게 해주는데 더 효과가 크다는 생각이 들어서)
- 2010JavaScript/역전재판 . . . . 3 matches
<div id='item_pic'></div>
#item_pic { /*아이템 목록 안의 아이템 그림*/
<div id='item_pic'></div>
- 2dInDirect3d/Chapter3 . . . . 3 matches
* 버텍스 버퍼가 무엇인지 알고 사용법을 안다.
* 인덱스 버퍼가 무엇인지 알고 사용법을 안다.
버텍스를 표현 하는 방법을 ''flexible vertex format'' 줄여서 FVF라고 한다. 버텍스에 필요한 정보는 다음과 같다.
- 2학기파이선스터디/모듈 . . . . 3 matches
* 파이썬 프로그램 파일 혹은 C 확장 파일
* 프로그램(함수, 클래스... )과 데이터를 정의
['_StringTypes', '__builtins__', '__doc__', '__file__', '__name__', '_float', '_idmap', '_idmapL', '_int', '_long', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'atof', 'atof_error', 'atoi', 'atoi_error', 'atol', 'atol_error', 'capitalize', 'capwords', 'center', 'count', 'digits', 'expandtabs', 'find', 'hexdigits', 'index', 'index_error', 'join', 'joinfields', 'letters', 'ljust', 'lower', 'lowercase', 'lstrip', 'maketrans', 'octdigits', 'printable', 'punctuation', 'replace', 'rfind', 'rindex', 'rjust', 'rstrip', 'split', 'splitfields', 'strip', 'swapcase', 'translate', 'upper', 'uppercase', 'whitespace', 'zfill']
- 3DGraphicsFoundationSummary . . . . 3 matches
* 행렬 V 구하기
= TextureMapping =
Example of using the texturemapping
- 3D프로그래밍시작하기 . . . . 3 matches
=== 2. 모델링 프로그램 연습 약간 ===
수학관련 라이브러리가 어느정도 모습을 갖추었으면, 이제 최초로 뭔가 돌아가는 것을 만들어 볼때입니다.. 일단은 최소한의 초기화와 실행 절차를 갖춘 프로그램을 만들어 놓도록 합니다. 화면에 무언가를 그리는 함수 같은 것은 쉽게 바꿔치기 할 수 있도록 해 놓는 것이 좋을 것입니다. 이런 뼈대 라이브러리의 형태에 대해 참조하실려면 OpenGL 관련 라이브러리중 하나인 glut 를 참조하심이 좋을 듯..
이 시점에서 여러가지 해결해야 할 사항이 생기는데, 첫째로는 파일 포맷에 대해서 정확히 이해하고, 각 항목이 어떤 역할을 하는 것인지를 알아야 하겠으며, 둘째로는 비교적 여러단계로 복잡하게 구성되어 있는 3D Scene Data 를 효율적으로 정렬하기 위한 자료구조를 내 프로그램에 심는 것입니다. STL 같은 라이브러리를 능숙하게 사용할 수 있다면 많은 도움이 될 것입니다. 가급적이면 계층적으로 구성된 모델을 읽을 수 있도록 해야 나중에 애니메이션도 해보고 할 수 있겠죠. 세째로는 기본 이상의 가속기에 대한 조작을 할 수 있도록 d3d_renderstate 들에 대해서 알아두는 것입니다. 최소한 바이리니어 필터링을 켜고 끄고, 텍스춰 매핑을 켜고 끄고, 알파블렌딩, 등등을 맘먹은대로 조합해볼 수 있어야겠죠
- 3N+1Problem/1002_2 . . . . 3 matches
지난번의 문제를 풀었을때 '접근법' 도 같이 생각하여 문제 해결방법을 익힌것이 추후의 문제(결과 상으로는 전혀 다른 알고리즘)의 해결법을 알아내는데 좋은 접근법을 제공해준 것이 느낌이 좋았다. 새 해결책을 떠올리는데 10분이 안걸리고, 비교적 효과적인 알고리즘이 나온 점에서 기분이 좋은 중.
- 3rdPCinCAUCSE/FastHand전략 . . . . 3 matches
알고리즘을 위해 연습장을 썼습니다. B 문제와 A 문제는 이전에 같은 프로그램을 짜 본 경험이 있던 관계로 특별한 계산을 하지 않았으며, C 번 문제에 대해서 분석차 이용하였습니다. 그리고 테스트를 위해 예제 입력값들을 텍스트 화일로 미리 작성해두고, 도스창에서 이를 redirection, 결과를 확인했습니다. 이러한 방법은 특히 A 번 문제에서 큰 힘을 발휘했습니다. (A번 문제는 입력값이 오목판 전체 이기 때문이죠.) 결과에 대한 확인 테스트 시간이 1초도 걸리지 않았고, 테스트 인풋 데이터 만드는데도 거의 시간소요가 없었습니다.
그동안 [경태]는 A 번 구현 완료. 테스트 데이터를 위해 editplus 로 입력데이터를 test.txt로 작성. DOS 창에서 redirection 으로 프로그램 실행 & 결과 확인. 중간에 5목이 일어난 부분의 첫 위치를 파악하는 부분에서는, 해당 오목 판정결과 함수에서 판정 방향값을 리턴해주는 형태로 함수를 수정, 이를 근거로 첫 위치를 구했습니다.
A 번 진행중 아쉬웠던점은, 제출 전 test 겸 찍었던 데이터를 주석처리하지 않은 바람에 아쉬운 페널티를 먹었다는 점. 이에 대해서는 실제 결과 비교부분까지 fc 등의 프로그램으로 배치화일을 만들었다면 문제가 없지 않았을까 생각.
- 5인용C++스터디/멀티미디어 . . . . 3 matches
* 프로그램에서 사운드 재생은 어떻게 하는가?
* 프로그램에서 동영상 재생은 어떻게 하는가?
MFC는 멀티미디어를 위한 별도의 클래스를 제공하지 않는다. Win32 API함수 차원에서 멀티미디어를 지원하기 때문에 MFC에서는 별도의 클래스로 만들어 놓지 않은 것이다.
우선 사운드를 연주하는 API함수를 보자.
앞서 만든 예제를 보면 PlaySound 함수는 사운드 파일 연주가 완전히 종료되기 전에는 리턴하지 않으므로 연주중인 동안은 어떤 일도 할 수 없다. 이런 방법을 동기화 방식이라고 한다.
- ACM_ICPC/2012년스터디 . . . . 3 matches
* [koi_aio/김윤환] '''//이거랑 푼거 더 올리고싶은데... 영기처럼 올리는거 어떻게 함요? ㅠㅜ 위키 사용법을 모르것소 살려줍매!'''
* 문서를 공유한다면, 그 알고리즘을 이용한 문제를 풀어보는 것도 병행해야한다고 생각함.
* 공학인증을 뺄 수 있는 좋은 방법을 알았다. 태진이형은 지략가 - [권영기]
- ACM_ICPC/2013년스터디 . . . . 3 matches
* jumping_cow
* [http://211.228.163.31/30stair/bridging/bridging.php?pname=bridging&stair=15 bridging - binary indexed tree를 이용한 Up Sequence 문제]
* Edit distance : 글자 최소 오류개수 구하기 (exponential과 polynomial의 최소 오류는 6개.)
- AM . . . . 3 matches
2004년 여름 방학 API & MFC 스터디 페이지 ( '''A'''PI -> '''M'''FC )
* 목적 : 윈도우 프로그래밍을 위한 API와 MFC를 공부한다.
* 주 교재 : Windows API 정복 ( Aladdin:8973542796 ), Visual C++ 6 완벽가이드 ( Aladdin:8931427301 )
== AM스터디에서 제작한 프로그램 ==
* [http://www.winapi.co.kr/]
* [5인용C++스터디]처럼 그날그날 배운걸로 간단한 프로그램 숙제해요... 요즘들어 그냥 책만 보는것 같아서... 저만 그런가요?? --세환
- APlusProject . . . . 3 matches
Upload:Chasedocument.zip -- 재동오빠가 추적하라는거 할려고 했는데 아무래도 이거는 프로그램 아는 사람이 해야할듯한데요
Upload:Spice1998.zip - 스파이스 관련 표준 문서
Upload:OTF.zip - OTF 프로그램. 우리가 개발해야할 바로 그 액셀 파일. (SE 교수님의 저작권 보호로 당연히 암호가 걸려 있습니다.)
- AcceleratedC++/Chapter0 . . . . 3 matches
main 함수의 리턴형은 ISO/ANSI C++ 표준에서 int로 정하고 있다. 리턴값은 프로그램이 아무런 에러 없이 종료되는 경우에는 0을 리턴하도록 되어 있고, 에러가 발생해서 종료한 경우에는 0 이외의 값을 리턴하도록 되어있다. 이 값은 OS로 돌려지는 값이기는 하지만 OS에서 이것에 따라 특별히 처리하는 것은 없기 때문에 일반적인 경우에는 이 값은 아무런 의미가 없다. 이 값을 이용할수 있는 방법으로는 exec... 함수를 이용하여 프로그램을 실행해주고 받아오는 방법 등이 있다.
이런 문장이 들어있는 C++ 프로그램을 컴파일 해 보면 에러가 날 것 같지만 에러가 나지 않는다. 왜냐하면 둘 다 모두 계산 가능한 식이기 때문이다. 계산 가능한 식이라면 최종 결과가 존재해야 한다. 첫번째 문장은 계산이 끝나있는 식이고 최종 결과가 100 이다. 두번째 문장은 한번만 계산하면 계산이 끝나고 최종 결과는 4 이다. 그렇다면 다음과 같은 문장은 계산 가능한 식이 맞는가?
- AcceleratedC++/Chapter3 . . . . 3 matches
학생들의 성적 관리 프로그램으로 작업을 하면서, 뭔가를 저장하는 방법 등등을 논의할 것이다.
* 평균값 대신에 중간값을 사용하는 프로그램으로 변경한다.
* homework가 비어있을때 왜 프로그램을 끝내야 할까?
- AcceleratedC++/Chapter8 . . . . 3 matches
Runtime이 아니라 Compile 타임에 실제로 타입이 변화하는 객체를 적절히 작성하면 올바른 동작을 보장한다.
* 컴파일 링크 모델 Compiler : 실제로 인스턴스가 만들어지기 전까지는 템플릿 코드의 유효성을 알 수 없다. 에러는 링크시에 발생
* 독자적 방식의 template 모델 Compiler : 최근의 방식. 인스턴스화를 위해서 STL 정의부에 대한 접근이 필요.
- BabyStepsSafely . . . . 3 matches
This article outlines the refactoring of an algorithm that generate the prime numbers up to a user specified maximum. This algorithm is called the Sieve of Eratosthenes. This article demonstrates that the granularity of the changes made to the source code are very small and rely completely on the ability to recompile and test the code after every change no matter how small. The step where the code is tested insures that each step is done safely. It is important to note that the execution of tests do not actually guarantee that the code is correct. The execution of the tests just guarantees that it isn't any worse that it used to db, prior to the change. This is good enough for the purposes of refactoring since we are tring to not damage anything thay may have worked before Therefore for each change in the code we will be recompilling the code and running the tests.
Therefore, recompile the both GeneratePrimes and TestGeneratePrime and run the tests.
- BeingALinuxer . . . . 3 matches
* 일단, 개별학습을 의도하였으나 예상외료 신청자가 폭주하는 바람에 집에 오다가 다음의 방법을 생각해봄. (TokenRing 에서 아이디어를 얻어옴).
뿌띠에서 logout명령어를 치면 왜 프로그램이 종료되어버리는지?(다시 login name을 입력하도록 나오는것이 정상 아닐까?)
- 프로그램 자체가 그렇게 제작되었기때문이 아닐까. -_-a - 인택
- C++스터디_2005여름/도서관리프로그램/문보창 . . . . 3 matches
우선 스터디 시간에 버벅대서 마무리 짓지 못한거 미안하게 생각합니다. 자신이 꼭 스스로 프로그램을 짜시고, 그런 후에 제 코드와 비교해 보시기 바랍니다. 저보다 여러분이 잘한 점, 혹은 제가 잘한 점이 무엇인지 생각해 보시기 바랍니다. 어떤게 더 확장성과 재사용성에 유리한지 곰곰히 생각해보세요.
cout << "** 도서관리 프로그램 **\n";
[C++스터디_2005여름/도서관리프로그램]
- CPPStudy_2005_1/STL성적처리_2_class . . . . 3 matches
Compiler : VS.net - native cl
[[NewWindow("http://www.zeropage.org/viewcvs/www/cgi/viewcvs.cgi/accelerated_cpp_stl_grade/?root=sapius", "source code")]]
Upload:result_stl_grade_sapius.jpg
- CVS/길동씨의CVS사용기ForLocal . . . . 3 matches
길동씨는 프로젝트 세팅이 끝나고 간단히 HelloWorld.java 라는 프로그램을 작성했다.
=== 스토리 2 홍길동씨 프로그램 고치다. ===
홍길동씨는 이렇게 프로그램을 C:CVSLocal 에 저장하고는 곧 잊어 버린다. 그러다 몇일뒤 아차 하며 다시 소스를 oop적으로 고칠려고 시도하였다. 그냥 출력하는 사람에게 일침을 가하는 글을 마소에서 본적이 있으리라. 그래서 객체 지향(?) 적으로 작성하려고 한다.
- CauGlobal/Episode . . . . 3 matches
방학을 이용해 배낭여행을 가려 하거나, 혹은 다른 이유로 인해 외국에 가려할때 어느정도 일찍 항공권을 알아보지 않으면 구하기가 꾀나 어렵습니다. 아니면 있는 항공권은 엄청난 가격을 자랑하지요.
Episode in Episode --;;
- ClearType . . . . 3 matches
Upload:beonit:Antialias-vrs-Cromapixel.gif
* 특허문제로 Adove, Linux, Apple 들이 각 다른 방식의 벡터 드로잉 방법을 가지고 있다고 한다.
* [http://www.microsoft.com/typography/cleartype/tuner/Step1.aspx ClearType Tuner]라는 프로그램으로 세부적인 클리어타입 셋팅을 할 수 있다.
- CommonState . . . . 3 matches
초기 컴퓨터는 용량이 너무 적어서, 프로그램 짧게 만들기 이런걸 많이 해야만 했다. 당연하지만 그걸 알아볼 수 있으리라는 기대는 하지 않았다. 그러다가 용량이 커지니까 이제는 많고 많은 state들을 사용하는 많고 많은 함수들을 많이 사용하게 되었다. 하나 고칠라면 전체를 뜯어 고쳐야 했다. state로서의 프로그램은 안좋다. 그러니 state도 안좋다(??) 이런 상황에서 state가 없고, 프로그램만 있는 함수형 언어가 나오게 되었다. 개념적인 우아함과 수학적인 우아함을 갖추고 있음에도 불구하고, 상업적인 소프트웨어를 만드는데에는 전혀 쓰이지 않았다. 이유는 사람들은 state를 기반으로 생각하고 모델링하기 때문이었다. state는 실세계에 대해 생각하는 좋은 방법이다. 객체는 두 가지의 중간이다.(?이렇게 해석해야하나..--;) state는 잘 다뤄질때만 좋다. 작은 조각으로 나누면 다루기 쉬워진다. 이렇게 하면 변화를 어느 한 곳만 국한시킬 수 있게 된다.
- CompilerTheory/ManBoyTest . . . . 3 matches
Donald Knuth 가 Algol 60의 구현 정도를 판변하기위해서 만든 프로그램. 테스트의 목적은 올바르게 구현된 scoping rule, call-by-name의 구현 정도를 판별해서 boys(algol 60 구현물)들중에서 men (쓸만한 놈)을 가려내는 용도로 고안되었습니다.
[CompilerTheory]
- Cpp에서의멤버함수구현메커니즘 . . . . 3 matches
자신이 컴파일러가 되었다고 가정해 봅시다. 우리가 class를 선언하고 컴파일하려면 프로그램의 영역에 class 의 Data 들을 저장할 수 있는 "class 틀"의 정보를 담아 놓을 곳이 필요합니다.
new 키워드로 할당시에는 runtime 에 class 의 instance 를 찍어 낼수 있어야 합니다. 이를 위해 프로그램 안에는 위의 id가 int 라는 정보를 담는 class의 "class 틀" 정보를 담는 곳이 필요합니다.
이 된것이고, sayHello 내에는 pointer 값 NULL 을 이용한 접근이 없으므로 아무런 에러가 발생하지 않습니다.
- Debugging . . . . 3 matches
* 프로그램의 오류를 발견하고, 그 원인을 밝혀내서 고치는 작업
* 프로그램을 실행할때 디버깅 모드로 컴파일하여 디버거 기능을 포함시켜서 사용하면서 오류에 관한 각종 정보를 수집
* 수집하고 싶은 정보를 출력하기 위한 디버깅용 명령을 미리 프로그램 곳곳에 삽입하여 실행 시키는 방식
- DebuggingSeminar_2005/DebugCRT . . . . 3 matches
자기가 짠 프로그램으로 돌려보고 누수 여부를 판단하기에 좋을 것이다.
|| _CRTDBG_LEAK_CHECK_DF || 프로그램이 종료되는 시점에서 _CrtDumpMemoryLeaks()를 호출. 메모리 해제에 실패한 경우 그 정보를 얻을 수 있다. ||
DCRT를 켜고 끄는 것에 따라서 프로그램의 수행속도의 차이가 상당하다. STL때문인지도 모르겠지만. - [eternalbleu]
- DesignPatternsAsAPathToConceptualIntegrity . . . . 3 matches
이는 Brooks 가 25년 전에 쓴 말이다. "ConceptualIntegrity 는 시스템 디자인에서 가장 중요한 일이다." 그는 계속 말한다. "이 딜레마는 잔인한 것이다. 효율성과 개념적 완전성중 혹자는 디자인과 구축을 하는 것을 선호할 것이다. 큰 시스템에 대해 혹자는 책임을 맡을 중요한 맨 파워를 가져올 방법을 원할 것이다. 그래서 프로덕트는 적시에 출현할 것이다. 어떻게 이 두 필요요소들이 조화를 이룰 거인가?
1. Some O-O design methodologies provide a systematic process in the form of axiomatic steps for developing architectures or micro-architectures that are optimality partitioned (modularized) according to a specific design criteria.
Even closer to our topic:
- DoItAgainToLearn . . . . 3 matches
왜 동일한 문제를 여러번 풀고, 왜 같은 내용의 세미나에 또다시 참석을 하고, 같은 프로그램을 거듭 작성할까요?
저는 ACM의 ICPC 문제 중에 어떤 놈을 이제까지 열 번도 넘게 풀었습니다. 대부분 PairProgramming이나 세미나에서 프로그래밍 시연을 했던 것인데, 제 세미나에 여러번 참석한 친구가 물었습니다. "신기해요. 창준씨는 그 문제를 풀 때마다 다른 프로그램을 짜는 것 같아요. 혹시 준비를 안해와서 그냥 내키는 대로 하는 건 아니죠? :)" 저는 카오스 시스템과 비슷하게 초기치 민감도가 프로그래밍에도 작용하는 것 같다는 대답을 해줬습니다. 저 스스로 다른 해법을 시도하고 싶은 마음이 있으면 그렇게 출발이 조금 다르고, 또 거기서 나오는 진행 방향도 다르게 됩니다. 그런데 중요한 것은 이렇게 같은 문제를 매번 다르게 푸는 데에서 배우는 것이 엄청나게 많다는 점입니다. 저는 매번, 전보다 개선할 것을 찾아 내게 되고, 또 새로운 것을 배웁니다. 마치 마르지 않는 샘물처럼 계속 생각할 거리를 준다는 점이 참 놀랍습니다. --JuNe
- EclipsePlugin . . . . 3 matches
또한 jsp 문법 오류도 잡아준다. WebApp 의 ROOT 를 지정해 줌으로써 설정이 간단히 끝난다. 자체 JSP Compiler 를 이용해서 Servlet 을 생성하므로 Lomboz 보다 훨씬 가볍다.(Lomboz는 JSP Compiler 를 기존의 WAS 것을 가져다 쓴다.)
단 Local 프로젝트 구조를 서버와 같게 만들어야 하며, FTP 계정의 홈디렉토리보다 하위 디렉토리는 Mapping 디렉토리로 지정할 수 없다.
- EditPlus . . . . 3 matches
EditPlus라는 프로그램 과 흡사한 프로그램 만들기.
프로그램 계획
- EffectiveSTL/Container . . . . 3 matches
// copy 알고리즘을 이용한다.
* 이 네 가지 방법을 보자. 첫번째 두번째 방법은 루프를 사용한다. 두번째 방법에 루프가 어딨냐고 물으면 나는 모른다. copy 알고리즘 내부에서 루프를 사용한단다. 하지만 assign 메소드는 루프를 사용하지 않고 한번에 짠! 해주는거 같다.
* 하지만 ... 부분에서 예외가 터져서 프로그램이 끝나버린다면? 또다시 Detected Memory Leaks!
- EightQueenProblem/lasy0901 . . . . 3 matches
두번째 프로그램은 ... 이상하게 컴파일이 안되더군요.. 알고보니 #include <stdafx.h> 을 안 넣어서 (VC6.0) 낭패-_-a
== 하나의 해만 구하는 프로그램 ==
== 모든 해를 구하는 프로그램 ==
- EightQueenProblem2Discussion . . . . 3 matches
이미 알고리즘 수업 시간을 통해 생각해본 문제이기에 주저없이 백트래킹(BackTracking) 기법을 선택해서 슈도코드를 종이에 작성해보았고 그를 바탕으로 구현에 들어갔습니다.(''그냥 호기심에서 질문 하나. 알고리즘 수업에서 백트래킹을 배웠나요? 최근에는 대부분 AI쪽으로 끄집어 내서 가르치는 것이 추세입니다만... 교재가 무엇이었나요? --김창준 Foundations of Algorithms Using C++ Pseudocode, Second Edition 이었습니다. ISBN:0763706205 --이덕준'') 백트래킹은 BruteForce식 알고리즘으로 확장하기에 용이해서 수정엔 그리 많은 시간이 걸리지 않았습니다. 만일 EightQueenProblem에 대한 사전 지식이 없었다면 두번째 과제에서 무척 당황했을것 같습니다. 이번 기회에 코드의 적응도도 중요함을 새삼 확인했습니다. --이덕준
놓인 자리를 알려주고 끝난다.) 이 적은 것을 토대로 코딩을 하였고 처음 여왕은 0,0에 놓았습니다. 생각한대로 코딩을 했다고 생각하고 실행을 하자 무한루프를 돌았습니다. 전 처음 여왕이 어느 위치에 놓이던간데 거기에 맞는 답이 있는거라고 생각했는데 그것이 잘못되었다고 생각합니다. 처음부터 이 문제의 답을 알고있었다면 프로그램을 짜는데 좀더 간결한 코드를 짤수있었을텐데 란생각이 들어서 코딩을 멈추고 종이를 꺼내 문제를 풀기 시작했습니다. 하지만 답은 나오지않았고 제가푸는방식(여왕을 먼저 아무위치에나 놓고 그위치에 맞게 가로세로대각선에 없는 곳에 놓는다)을 그냥 코딩을 하였습니다. 처음 여왕의 위치를 8*8에 돌아가면서 놓고 검사를 하였습니다. 무식하긴하지만 답은 나왔습니다. 두번째 과제는 처음 코딩할때부터 판의 크기와 여왕의 숫자를 define해서 썻기 떄문에 숫자만 바꾸어 주었습니다. 하지만 답이 맞는지 확신이 서지 않습니다. 그이유는 이문제의 대한 알고리즘을 모르기 때문이라고 생각합니다. 그리고 c++을 썻는데 방학동안 쭉 자바로 플밍하다가 c++을 쓴이유가 비주얼툴의 디버깅을 이용하려는 생각이었는데 무슨문젠지 디버깅을 할수없어서 참 난감했습니다. 디버깅하면 금방알수있는 문제를 눈으로 차근차근 훓으면서 봐야했습니다. --최광식
처음에는 자리를 잘못정해 실패 했을때 다음 자리로 옮겨가는 방법을 잘못 생각해 1시간 이상 소모했습니다.
- ExtremeBear/VideoShop . . . . 3 matches
고객의 요구로 비디오 가게관리 프로그램 구현
<<비디오 대여 프로그램>>
등급에 안맞을 경우는 (주민등록번호와 관련되어서 알아서 프로그램이 처리해준다 )대여불가능하다고 나온다.
- FocusOnFundamentals . . . . 3 matches
Readers familiar with the software field will note that today's "important" topics are not
to experiment with some new ones. However, we must remember that these topics are today's
Students usually demand to be taught the language that they are most likely to use in the world outside (FORTRAN or C). This is a mistake. A well taught student (viz. one who has been taught a clean language) can easily pick up the languages of the world, and he [or she] will be in a far better position to recognize their bad features as he [or she] encounters them.
- GUIProgramming . . . . 3 matches
모티프는 유닉스 환경하 X-Window, 혹은 POSIX 표준과 호환되는 시스템을 위해서 만들어진 툴킷이다. IEEE 1295 산업 표준으로 제정되어있으며, Motif API라는 표기법을 쓴다. 최근에는 Qt, GTK에 많이 밀리지만 여전히 많은 시스템에서 사용되는 툴킷이다.
자바로 작성된 프로그램에서 기본적으로 이용하는 API이다. 플랫폼에 독립적으로 제작된 툴킷이지만 내부 구현 상 플랫폼에서 제공하는 함수를 아주 낮은 수준의 추상화된 형태로만 제공하기 때문에 자바의 Platform-independable의 특성을 충분히 만족할 만한 수준은 못된다.
최근 버전의 자바에서 이용하기 시작한 선사의 툴킷이다. 특징으로는 AWT보다 더욱 보기 좋은 그래픽을 제공한다. 또한 AWT와 달리 플랫폼에 비종속적이기 때문에 모든 플랫폼에서 동일한 모양을 보여준다. 그리고 클래스 라이브러리에 약간의 수정을 가함으로써 Windows 에서 기타 플랫폼 (예를 들자면 Mac)의 {{{~cpp Look&Feel}}}사용하는 것이 가능하다. 물론 -_-; 원칙적으로 특정 운영체제의 룩&필은 변경해서 응용프로그램을 개발하는 것은 정책상 불법의 범주에 속한다..
- Gof/Adapter . . . . 3 matches
다음과 같은 경우에 AdapterPattern를 이용한다.
adapter 클래스는 하나의 interface를 다른 interface 에 적합하게 맞춰주기 위해 (말 그대로 어뎁터 역할~) 다중상속을 이용한다.
- 클라이언트가 이용한 domain-specific한 인터페이스를 정의한다.
- Gof/Strategy . . . . 3 matches
* 많은 관련 클래스들이 오직 그들의 행동들에 의해 구분된다. Strategy들은 많은 행위중에 한가지로 상황에 따라 클래스을 설정해주는 방법을 제공해준다.
* 모든 제공된 알고리즘에 대한 일반적인 인터페이스를 선언한다. Context는 ConcreteStrategy에 의해 구현된 알고리즘들을 호출하기 위해 이 인터페이스를 이용한다.
* RTL System for compiler code optimization - Register allocation, Instruction set Scheduling.
- HelpOnLinking . . . . 3 matches
{{{[모니위키]}}}이라고 적으면 [모니위키]처럼 링크가 됩니다. 이 문법은 모니위키 확장문법으로 제공되었으며 이중 대괄호문법을 대신 쓸것을 권장합니다.
위키위키에서는 외부의 위키 혹은 위키위에 준하는 다른 사이트를 좀 더 쉽게 연결하는 문법을 제공합니다. 예를 들어, {{{http://moniwiki.kldp.org/wiki/FrontPage}}}라고 링크를 거는 대신에 {{{MoniWiki:FrontPage}}}라고 링크를 걸면 MoniWiki:FrontPage 처럼 표시가 됩니다. 이를 인터위키 연결이라고 합니다.
* Wiki:SixSingleQuotes 를 이용한다.
- HowToStudyDesignPatterns . . . . 3 matches
패턴 중에 보면 서로 비슷비슷한 것들이 상당히 많습니다. 그 구조로는 완전히 동일한 것도 있죠 -- 초보자들을 괴롭히는 것 중 하나입니다. 이것은 외국어를 공부할 때 문법 중심적인 학습을 하는 것과 비슷합니다. "주어+동사+목적어"라는 구조로는 동일한 두 개의 문장, 즉 "I love you"와 "I hate you"가 구조적으로는 동일할 지라도 의미론적으로는 완전히 반대가 될 수 있는 겁니다. 패턴을 공부할 때에는 그 구조보다 의미와 의도를 우선해야 하며, 이는 다양한 실례를 케이스 바이 케이스로 접하면서 추론화 및 자신만의 모델화라는 작업을 통해 하는 것이 최선입니다. 스스로 문법을 발견하고 체득하는 것이라고 할까요.
어떤 특정 문장 구조(as much as ...나, no more than ... 같은)를 학습하는데 최선은 그 문장 구조를 이용한 실제 문장을 나에게 의미있는 실 컨텍스트 속에서 많이 접하고 스스로 나름의 모델을 구축(constructivism)하여 교과서의 법칙에 "기쁨에 찬 동의"를 하는 것입니다.
주변에서 특정 패턴이 구현된 코드를 구하기가 힘들다면 이 패턴을 자신이 만지고 있는 코드에 적용해 보려고 노력해 볼 수 있습니다. 이렇게 해보고 저렇게도 해보고, 그러다가 오히려 복잡도만 증가하면 "아 이 경우에는 이 패턴을 쓰면 안되겠구나"하는 걸 학습할 수도 있죠. GoF는 한결 같이 패턴을 배울 때에는 "이 패턴이 적합한 상황과 동시에 이 패턴이 악용/오용될 수 있는 상황"을 함께 공부하라고 합니다.
- JAVAStudy_2002 . . . . 3 matches
목표: JAVA를 이용, 다중 Chattiing 프로그램을 작성한다. [[BR]]
*1:1채팅 프로그램을 가지고 예제를 완전 분석한다.
*한달간 목표로하는 다중 채팅 프로그램을 작성한다.
현재 Java swing API중 버튼이나.. 텍스트 박스에 대한 것을 익혔습니다.(Application쪽..)[[BR]]
- Java/ServletFilter . . . . 3 matches
Filter 를 이용한 응용을 보면
<filter-mapping>
</filter-mapping>
- JavaStudy2004 . . . . 3 matches
http://java.sun.com/ - Java 제작사인 sun사의 홈페이지. tutorial이나 api, example 등을 찾아볼 수 있고 다운받을 수 있는 곳
http://sunny.sarang.net/api/ - Java에 대해 찾아볼 수 있는 api
- JollyJumpers . . . . 3 matches
앞 뒤에 있는 숫자 차의 절대 값이 각각 3,2,1이므로 이 수열은 유쾌한 점퍼가 된다. 어떤 수열이 유쾌한 점퍼인지 판단할 수 있는 프로그램을 작성하라.
입력 조건이 명확하지가 않군요! (1)입력을 한 줄 입력받고, Jolly 여부를 판단하고, 프로그램을 끝내거나, 혹은 (2)입력을 우선 모두 받고 입력의 끝 조건을 만났을 때,
각 줄 마다 Jolly 여부를 판단하는 경우가 있을 것 같네요. (2)번 방식의 경우 숫자대신 영문자가 들어오면 프로그램을 끝내는 방식으로 하면 좋을것 같군요. -- [문보창]
- JollyJumpers/오승균 . . . . 3 matches
cout << "입력된 숫자가 없습니다. 프로그램을 종료합니다." << endl;
일단은 오랜만에 프로그램을 열심히 짜서 괜히(?) 뿌듯하네요. 뭐 문제점이나 개선점이 있으면 과감히 -_-;;; 지적해주세요.
문제에 주어진 스펙에 최대한 맞춰서 프로그램을 짜주세요. -- 보창
- Jython . . . . 3 matches
* 아래와 같이 하면 한글을 제대로 받을 수 있다. 나는 파이썬에 있는 디코드, 인코드 함수를 사용하려고 했는데 잘 되지 않았고, 생각을 바꿔서 자바에 있는 인코드, 디코드 방법을 썼다.
* http://www.xrath.com/devdoc/jython/api/ - 황장호님의 멋진; Jython API Document Java Doc ;
* PyServlet - Jython 을 이용한 servlet
- LUA_1 . . . . 3 matches
루아의 공식 사이트는 http://www.lua.org/ 입니다. 하지막 MS-Windows 환경에서 루아를 시작하고 싶으시다면 http://code.google.com/p/luaforwindows/ 에서 루아 프로그램을 다운 받으실 수 있습니다. 우선 MS-Windows 환경이라고 가정하고 앞서 말한 사이트의 Download 페이지에서 LuaForWindows_v5.1.4-45.exe 를 다운 받습니다. 나중에는 버전명이 바뀐 바이너리 파일이겠죠. 이 파일을 다운로드 받아서 설치하면 시작>Programs>Lua>Lua (Command Line) 를 찾아 보실 수 있습니다. 해당 프로그램을 실행하면 Command 화면에 ">" 와 같은 입력 프롬프트를 확인하실 수 있습니다. 그럼 간단히 Hello world를 출력해 볼까요?
짧게 나마 루아의 소개 글을 작성해 보았습니다. 다음에는 기본적인 문법을 다뤄보겠습니다.
- MFC Study 2006 . . . . 3 matches
|| 11월 9일 || API 기초 ||
C++ 문법을 먼저 알아보세요~~
|| 11월 9일 || API나 MFC를 이용하여 윈도우 창을 띄우고 x by x 의 보드를 그리는 프로그램 ||
* 참고 http://winapi.co.kr
- MFC/Control . . . . 3 matches
하나의 컨트롤은 클래스와 연계될 수도, 안될 수도 있다. 정적 컨트롤의 경우 클래스가 필요없을 것 같지만 CStatic 이라는 클래스를 통해서 모양을 변경하는 것이 가능하다. 마찬가지로 버튼 컨트롤들의 경우도 대부분 Dialog 객체를 통해서 처리가 된다. CButton 클래스의 경우에는 컨트롤을 관리하는데있어서 객체가 필요할 경우에 이용하게 된다. 이러한 모든 컨트롤들은 모두 윈도우의 일종이기 때문에 CWnd 에서 상속된 클래스를 이용한다.
|| 버튼 컨트롤 || 한번의 마우스 클릭으로 응용프로그램과 통신. 라디오 버튼은 다른 버튼과 그룹으로 묶여서 다중 선택이 불가능하도록 한다.[[BR]]반면 체크박스는 개별적인 선택이 가능하다. [[BR]]푸시 버튼은 일반적으로 대화상자를 닫는데 사용된다. ||
이외에도 common control 로서 애니메이트 컨트롤, tree 컨트롤, spin button 등의 컨트롤 들이 존재한다.
- MFC/Socket . . . . 3 matches
* 아래 소스는 소켓 테스트 용으로 간단하게 서버와 클라이언트가 메시지를 주고 받는 프로그램
* 이 프로그램을 2개 실행 시킨다.
* 한쪽에서는 서버 생성을 선택 (XP의 경우 이 프로그램의 서버를 허용할지 물어볼때 예 선택)
- MFCStudy2006/1주차 . . . . 3 matches
* MFC를 이용한 기본적인 프로그래밍
* '''MFC를 이용한 메신저 제작'''
* '''3팀으로 나눠서 파트별로 프로그램 짜기.''' (제비뽑기로 결정.ㅜㅜ;)
- Marbles/이동현 . . . . 3 matches
프로그램의 실행시간을 줄이는데 시간이 들었다.
프로그램은 다음과 같은 원리로 동작한다.
이 프로그램의 약점은 n2의 크기가 커지면 실행시간이 늘어난다는 점이다.
- MedusaCppStudy . . . . 3 matches
입력에서 가장 긴 string의 길이와 가장 짧은 string의 길이를 출력하는 프로그램 (";" 을 만났을 때 문자열 종료)
- exit - 자판기를 떠난다 (프로그램 종료)
스트링 길이 출력하는 프로그램은 차후에 이어서 할 계획입니다..ㅡ,.ㅡ;; --[강석우]
- MoinMoinDiscussion . . . . 3 matches
'''Q''': How do you inline an image stored locally? (e.g. ../wiki-moimoin/data/images/picture.gif)
* '''Note:''' Regarding the upload feature - pls note that the PikiePikie also implemented in Python already has this feature, see http://pikie.darktech.org/cgi/pikie?UploadImage ... so I guess you could borrow some code from there :) -- J
- MoniWikiPlugins . . . . 3 matches
* sendping
* FastSearch (bsd해쉬를 이용한 빠른 FullSearchMacro)
* format: 프로세서를 액션으로 이용하기위한 인터페이스 액션 (모인모인도 이 방법을 쓴다)
- MoreEffectiveC++/Operator . . . . 3 matches
expicit Array ( int size )
class UPInt{ //무한 정수형
UPInt& opertrator++(int); // prefix++
const UPInt operator++(int); // postfix++
UPInt& opertrator--(int); // prefix--
const UPInt operator--(int); // postfix--
UPInt& operator+=(int); // a += operator 는 UPInt와 ints 추가 위해
UPInt i;
UPInt& UPInt::operator++()
const UPInt& UPInt::operator++(int)
UPInt oldValue = *this; // fetch
UPint i;
수많은 개발자들이 이런 단순한 원리를 프로그램 상에서의 짧은 진행(short-circuit)을 추구하는데 사용하였다. 그렇다면 C++에서의 객체들에게 operator ||, && 를 overload 시키면 짧은 진행을 추구하는데 도움이 되지 않을까? 그런데 하지 말라니 왜일까? [[BR]]
별다른 특별한 지적사항이 없다. 여태 까지의 연장선이고 단 new를 이용한 배열 할당을 삭제할 경우
- NSIS/예제2 . . . . 3 matches
; 인스톨러 프로그램 이름
; 인스톨러 프로그램 이름
; 인스톨러 프로그램 이름
- NSISIde . . . . 3 matches
|| Compile 동작 연결 || 0.5 ||
* 프로그램 실행중 다른 Process 띄우고 결과 스트링 얻어오기 (Console Util)
* 아이디어 떠오른 것중 하나 - 마우스 매크로 프로그램과 연동해서 쓰는건 어떨까. -_-a 아니면 Message 를 보내는 식으로 하는 방법, DLL을 삽입하는 방법.. 이건 좀 더 구체적으로 생각을 해봐야 할 것 같다.
- NotToolsButConcepts . . . . 3 matches
> programmers, but this is my opinion).
SICP를 책을 보면 예제 코드가 SchemeLanguage로 나온다. SchemeLanguage에 대해서는 잘 모르지만, 이 언어를 사용하면 개념 전달을 쉽게 할수 있어서인듯 싶다. 툴이야 몇번 쓰면 자동적으로 익혀지게 되지만(더군다나 요즈음에 나오는 툴들은 더하다) 하나의 개념, 패러다임을 자기 것으로 만드는 데에는 얼마나 오랜 시간이 걸리는가. (ToyProblems 때도, 간단한 문제를 가지고 여러 가지 방법으로 접근하였던 기억이 난다). 밥을 짓는 법을 안다면, 가스불로 만들던, 전기밥솥에 하던 상관이 없다.
가족오락관에서 보면 여러명이 일렬로 서서, 맨 끝의 한 사람에게만 속담이나 사자 성어를 하나 보여주고, 그걸 몸짓으로 차례로 전달해서 마지막 사람이 맞추는 게임이 있습니다. 최초 몸짓을 하는 사람의 의도를 이해하지 않고 그 모션을 그대로 이용할 수는 있습니다. 하지만 그 내면적 의미를 꿰뚫고 있지 못하다면, 비록 아무리 잘 관찰을 했다고 해도 나는 분명 모션의 일부를 왜곡하거나 빠트린 채 전달을 하겠지요. 그러나 이용을 계속 하다보면 우연히(그러나 꽤 오랜 시간 후에) 그 의도를 깨칠 수도 있겠지요. 하지만 우리는 "의도적으로" 그 사람의 의도를 들여다 보려는 노력을 해야 합니다 -- 그 사람의 사고를 거슬러 올라가기도 하는 등 여러 방법을 동원해서 말이죠. 그렇게 되면 우리는 똑같은 사자 성어에 대해 훨씬 더 우아하고 더 단순하며 명료하게 다듬은 모션을, 혹은 전혀 다른 모션을 새로이 창조해서 다음 사람에게 전달할 수도 있지 않겠습니까?
- OOD세미나 . . . . 3 matches
* 원래 정말 철저하게 절차지향적으로 프로그래밍 하던 사람이라... 오늘 내용이 좀 어려웠습니다;; 특히 그냥 들을때는 이해하면서 넘어가도, 실제 프로그래밍을 하려니까 막막하더라구요. 마지막 실습때 질문도 했었는데, 형은 if문 안에서 Comparer 객체를 선언해서, equals 함수를 사용하라고 하셨는데, 전 if문 안에서 객체를 생성할 생각조차 하지 못했었거든요. 그저 주어진 정보만 가지고, 반복문을 돌릴 생각뿐이었죠; 그런데 집으로 돌아오면서 생각해봤는데, 제가 짠대로 하면 '''“단일 변화로 인한 수정 사항을 예측 가능한 범위 내에 집중시켜라.”''' 라는 말과는 거리가 한 참 멀어지더라구요;; 예측은 가능한데 예측범위가 프로그램 소스 코드 전~부 라는거죠. 덕분에 "아, 정말 이런거 때문에 OOP를 하라는 거구나" 라는걸 알게 되었습니다 ㅋㅋ
확실히 제 경험에 비추어보면 학부과정에서 OOP에 대한 개념을 배울때는 상속, 다형성 등을 배울때 과제는 상속을 이용한 무언가, 오버라이딩, 오버로딩을 하도록 요구했습니다. 심지어 의미없는 프렌드도 쓰도록했었죠ㅎ 물론 가르치는 교수님의 입장에선 직접 써보게하려면 그 방법이 가장 확실합니다. 그렇지만 그렇게 배우고나면 왠지 설계에 대한 별 생각없이 그렇게 하게되더군요. 저또한 미숙하지만 후배들에게 OOP를 왜 쓰고, 어떤 점이 좋은가를 알려주다보니 다시 한번 기본개념에 대해 생각하게되고 그러면서 제대로된 OOP는 뭔가 싶었습니다. (적어도 제 생각엔)'''단지 class쓰고 상속한다고 OOP가 아닙니다'''. OOP의 장점을 이용해야 진정한 OOP입니다.
그리고 저 또한 오늘 실제 디자인에서 Drawable로 GUI를 로직에서 완전히 분리시킨 것을 보고 다시 한번 추상화에 대한 공부가 되었습니다. 앞으로 추상화하는 법을 좀 더 익혀야겠어요. - [김홍기]
- OpenGL_Beginner . . . . 3 matches
* 목표 : OpenGL 예제를 통해 기초를 익히고, 프로그램 만들 것을 찾는다.
* 2.24 : 마소 ASE구현 프로그램 프레임웍 분석
* C++ Builder에서 GLUT 를 쓸수 있는 방법을 찾아 보자
- OurMajorLangIsCAndCPlusPlus/stdlib.h . . . . 3 matches
|| void abort(void); || 비정상적인 프로그램 종료를 발생시킨다 ||
|| int atexit(void (*func)(void)); || 프로그램이 정상적으로 종료될 때 전달인자로 넘겨진 함수포인터를 이용해서 특정 함수 실행 ||
|| void exit(int status); || 정상적인 프로그램 종료를 발생시킨다 ||
- OurMajorLangIsCAndCPlusPlus/string.h . . . . 3 matches
|| void * memcpy(void * dest, const void * scr, size_t count) || Copies characters between buffers. ||
|| void * memccpy(void * dest, const void * scr, int c, unsigned int count) || Copies characters from a buffer. ||
|| int strcmpi(const char *stirng1, const char *string2) || Compares two strings to determine if they are the same. The comparison is not case-sensitive. ||
- PC실관리/2013 . . . . 3 matches
* 윈도 공유 폴더 기능을 이용한 서버
* 클론질라 삼바서버를 이용한 복원 방법
* Clonezilla 이미지를 하드디스크에 iso 형태나 또는 파티션으로 저장해서 grub로 진입하는 방법을 생각하고 있습니다. - [김민재]
- PC실관리프로그램 . . . . 3 matches
== PC실관리프로그램 ==
* 프로세서 관리자에서 이름을 제거하는 법을 이해하고 구현한다.
* 죽지않는 프로세서를 만드는 법을 이해하고 구현한다.
- PairProgramming토론 . . . . 3 matches
PairProgramming 자체에 대해서는 http://www.pairprogramming.com 를 참조하시고, IEEE Software에 실렸던, 로리 윌리엄스 교수의 글을 읽어보세요 http://www.cs.utah.edu/~lwilliam/Papers/ieeeSoftware.PDF. 다음은 UncleBob과 Rob Koss의 실제 PairProgramming을 기록한 대본입니다. http://www.objectmentor.com/publications/xpepisode.htm
PP에 대해서는 체계적으로는 잘 모르겠지만.. (파고들려면 XP 에서부터 파고들어야 할 것 같아서요.) 그냥 여기저기 자료들 얻어서 읽어보고, 선배님 글도 읽어보면서 '효과적인 지식전달방법이 될 수 있겠구나.' 특히 1기 -> 2기 인수인계식으로 기존의 프로그램들을 이해시키는데에도 괜찮은 방법이라 느끼고 있습니다.
XP 방법 중에서 가장 손쉽게, 곧바로 적용할 수 있는 것 중 하나가 PairProgramming입니다. 물론 여타의 XP 방법들과 마찬가지로 최고의 효과를 위해서는 다른 실행법을 함께 수행해야 합니다만, 이것 하나만이라도 제대로 하면 가시적인 차이를 느낄 것입니다. 특별히 어떤 지식보다는 마음 자세와 태도가 더 중요합니다. --김창준
- PairSynchronization . . . . 3 matches
["sun"]은 기존 프로그램의 업그레이드 작업에 새로 한명의 파트너와 함께 둘이 작업하게 되었다. XP를 개발에 적용해보기로 하고, 프로그램 디자인에 CrcCard 섹션을 이용하고자 했다. 처음 CrcCard 섹션을 진행해서 그런지, 별다른 진척이 보이지 않아 우선 화이트보드를 이용해서 개념을 정리해보고자 다른 색의 마커를 들고 한 번에 하나씩 개념을 그리고 선을 이어 나가며 디자인을 했다.
상민이랑 ProjectPrometheus 를 하면서 CrcCard 세션을 했을때는 CrcCard 에서의 각 클래스들을 화이트보드에 붙였었죠. 그리고 화이트보드에 선을 그으면서 일종의 Collaboration Diagram 처럼 이용하기도 했었습니다. 서로 대화하기 편한 방법을 찾아내는 것이 좋으리라 생각.~ --["1002"]
- Polynomial . . . . 3 matches
다항식의 곱셈을 이용하는 프로그램을 작성한다.
이 방법을 사용할때 발생할수 있는 문제점은 memory leakage (메모리 누수)이다. Java같은 경우는 쓰레기 수집기가 있지만 c 는 코더(-_-)가 일일이 사용되지 않는 자원을 회수해줘야 한다. 그렇지 않으면 그 자원을 다시 사용할 수 없게 된다.
다음과 같은 자료의 합, 차, 곱을 리턴하는 프로그램을 작성하시오
- Postech/QualityEntranceExam06 . . . . 3 matches
3. Machine Language Like 한 프로그램 만들기. 코드 주고. 스앞 함수 호출하는 부분 있고 파라미터 패싱을 설명해야함.
Dynamic Scoping 에서 Shallow Access 하는 경우에 상관 없는 키워드 발견하기.
10 Dynamic Scoping 에서 Static type 체킹을 했을때 어떤 문제 가 발생하는가
- ProgrammingContest . . . . 3 matches
나이나 학력 제한이 전혀 없습니다(Open경우). 팀은 세명까지 가능하고, 혼자서도 참가 가능합니다. 사용 가능 언어는 Java, C++, Pascal, Python 등 입니다. 제한 조건은 한 팀은 프로그램 개발을 위해서는 하나의 컴퓨터만 사용해야 한다는 것입니다. 이번 금요일(2002/5/10)에 한국 시간으로는 오후 9시부터 5시간 동안입니다. 온라인(이메일)으로 진행합니다. (see also .http://ipsc.ksp.sk/rules.php )
만약 팀을 짠다면 두사람은 PairProgramming으로 코딩을 하고(이 때 Interactive Shell이 지원되는 인터프리터식 언어라면 엄청난 플러스가 될 것임), 나머지 하나는 다른 문제를 읽고 이해하고, (가능하면 단순한) 알고리즘을 생각하고 SpikeSolution을 종이 위에서 실험한 뒤에 현재 커플이 완료를 하면 그 중 한 명과 Pair Switch를 하고 기존에 코딩을 하던 친구 중 하나는 혼자 다른 문제를 읽고 실험을 하는 역할을 맡으면 효율적일 겁니다. 즉, 두 명의 코더와 한 명의 실험자로 이루어지되 지속적으로 짝 바꾸기를 하는 것이죠.
또, Easy Input Set은 직접 수작업으로 풀고 그걸 일종의 테스트 데이타로 이용해서, Difficult Input Set을 풀 프로그램을 TDD로 작성해 나가면 역시 유리할 것입니다. 이렇게 하면 Time Penalty는 거의 받을 일이 없겠죠.
- ProgrammingLanguageClass/2006/EndTermExamination . . . . 3 matches
b) 일반적으로 서브프로그램의 파라메터 전달시 참조유형으로 전달해야하는가를 묻는 문제.
e) Ada 에서 for loop 를 이용한 iteration 소스. 루프 종료후 condition variable 처리에 대한 문제 출제.
b) 언어 개발자들이 Static-Chain 에 비해서 display 기법을 채택하게 되는 이유를 제시하시오.
- ProgrammingLanguageClass/Report2002_1 . . . . 3 matches
※ 입력된 문장들이 제시된 문법(grammar)에 맞는지 판단하는 Recursive Descent Parsing 기법을 이용한 파서(parser)를 작성하시오.
* 프로그램 소스코드 및 실행파일이 든 디스켓
- ProjectGaia/계획설계 . . . . 3 matches
정렬된 레코드를 page(4KB) 단위로 입력, page에는 header와 slot이 차지하는 공간을 제외한 크기만큼 레코드를 저장할 수 있다. 레코드를 page에 입력할 때 비신장 가변길이 저장 방법을 사용, 입력될 레코드가 page의 남은 공간보다 클 경우 다음 page에 입력된다.
master page의 page 수를 읽고 가장 마지막 page로 간 다음, page header의 freespace size를 삽입 예정 레코드의 크기와 비교하여, 만약 해당 page에 충분한 공간이 있다면 그대로 추가 입력, 충분한 공간이 없다면 다음 page를 생성하고 넣어주는 비신장 가변길이 방법을 이용한다.
- ProjectPrometheus/EngineeringTask . . . . 3 matches
1 책 검색 (검색 UI, 검색 Spider)
|| HTML 문서 가져오는 클래스 (Spider) 작성 || ○ ||
|| ISBN 을 이용한 Linker 작성 (고려 : ISBN 이 DB 에 저장되는 것이 좋겠다고 생각) ||
- ProjectPrometheus/Estimation . . . . 3 matches
* 검색 Spider
* 신청 Spider
* 검색 Spider에서 위임
- ProjectPrometheus/MappingObjectToRDB . . . . 3 matches
참조 문서 : http://martinfowler.com/isa/OR-mapping.html
ProjectPrometheus 는 RDB-Object 연동을 할때 일종의 DataMapper 를 구현, 적용했었다. 지금 생각해보면 오히려 일을 복잡하게 한게 아닌가 하는 생각을 하게 된다. Object Persistence 에 대해서 더 간단한 방법을 추구하려고 노력했다면 어떻게 접근했을까. --["1002"]
PEAA 의 RDB Mapping 과 관련된 패턴을 바로 적용하는 것에 대한 답변
- ProjectSemiPhotoshop/계획서 . . . . 3 matches
* 10/29 pm1:00~pm5:00 상민과 현민의 알카노이드 SpikeSolution
* 다음일정 까지 해올 시험 프로그램 임무 부여
* 상민 : MFC MDI 를 이용한 구성
- ProjectSemiPhotoshop/요구사항 . . . . 3 matches
i. 상수를 이용한 영상 밝기 변화
* 다른 영상을 이용한 영상변화
* Clipping ( O 흑백 )
- ProjectZephyrus/Afterwords . . . . 3 matches
* WORA 를 경험해볼 수 있었다 - 윈도우즈에서 개발/테스트 한 서버 프로그램을 별다른 수정없이 linux 서버인 ZeroPageServer 에서 돌릴 수 있었다.
- JavaDoc의 시선 분산 여부는 개인차와 주석에 대한 의견을 ["프로그램내에서의주석"]에서 토론되었다.
- Design Evaluation 의 방법을 몰랐다.
- PyIde/Exploration . . . . 3 matches
PyIde/CodeEditor 분석 & wxStyledTextCtrl API 사용방법들 구경.
Spike Solution 작업. 대강 Screenshot.
BoaConstructor 로 UI 작업하고, 위험하겠지만 어차피 Spike 라 생각하고 Test 없이 지속적으로 리팩토링을 해 나가면서 prototype 을 만들어나갔다. StepwiseRefinement로 진행하니까 코드가 짧은 시간에 읽기 쉽고 빨리 진행되었다.
SimpleTestResult Spike. result 결과물 잘 받아진다. Result 에 listener 연결해주면 테스트 실행, 정지, 성공, 실패일때마다 listener 로 메세지를 날린다. 나중에 GUI Runner 쪽에서 listener 를 implements 해주면 될듯.
- PythonLanguage . . . . 3 matches
'~을 하기에 적합한' 언어는 있어도 '~을 하기 위한' 것이란 없다. -_-; ('~을 하기 위한 API'는 존재할 수 있겠다.) 이녀석도 프로그래밍 언어이므로 프로그래밍을 하기 위한 언어이다. ^^; (PHP도 사람들이 웹프로그래밍으로만 접근해서 그렇지 원래는 shell script programming 도 가능하다. perl 보다 편하게 쓰는 사람들이 많다.)
* '''프로그램의 알고리즘에 집중할 수 있다.'''
* PythonXmlRpc - Python 으로 구현하는 RPC 서버 & 클라이언트 프로그램.
'' 파이썬 정보 광장에서 강의 노트가 상당히 좋음, 그것을 보고 처음으로 파이썬 문법을 익혔다. 그리고 나서 PyGame으로 게임 하나 짜는것도 익히는데 도움이 된다. -[상협] ''
* http://sourceforge.net/projects/mysql-python/ - python-mysql API
- QuestionsAboutMultiProcessAndThread . . . . 3 matches
* A) processor라고 쓰신 것이 process, cpu가 processor를 의미하신 것 같군요. process는 실행되고 있는 하나의 프로그램 인스턴스이며, thread는 a flow of control입니다. 즉, 하나의 프로그램 안에 논리적으로 여러 개의 제어 흐름이 존재하느냐(*-thread)와, 하나의 컴퓨터에 논리적으로 여러 개의 프로그램 인스턴스가 실행되고 있느냐(*-process)로 생각하는게 가장 좋습니다. multi-processor(multi-core)는 말 그대로 동시에 물리적으로 여러 개의 흐름을 처리할 독립적인 처리기가 병렬로 존재하느냐입니다. 위에 제시된 예는 적절하지 못한 것 같습니다. - [변형진]
- RAD . . . . 3 matches
= RAD (rapid application development) =
전통적인 소프트웨어 개발 방법(waterfall 모델)은 오랜 기간의 분석, 설계, 프로그래밍 그리고 테스트 과정을 되풀이한 후 최종 단계에서 비로소 사용자가 요구한 시스템을 완성할 수 있었다. 그러나 이와 같은 방법으로는 소프트웨어의 생명주기가 점차 짧아지는 등의 급변하는 프로그램 시장과 사용자의 요구를 수용하기가 매우 어렵다. 따라서 소프트웨어의 생산성을 향상시키면서 동시에 개발 기간과 비용을 단축시킬 수 있는 방법이 요구되었고, 이러한 연구의 결과로 RAD와 같은 개념이 등장하게 되었다.
RAD는 우수한 소프트웨어 개발 도구를 이용하여 전통적인 개발 방법보다 더 적은 시간과 비용을 투자하더라도 보다 나은 품질의 소프트웨어를 개발할 수 있는 소프트웨어 개발 과정을 말한다. 이러한 RAD 방식의 개발은 응용 프로그램의 전체 개발 과정을 하나로 통합하여 기존의 반복적이고 점진적인 소프트웨어 개발 과정은 그대로 수용하면서도, 개발 과정 초기에 사용자에게 실행 가능한 기본적인 프로토타입을 제시하여 사용자의 요구를 훨씬 더 명확하게 수용하여 차후에 일어날 수 있는 많은 문제를 줄이고, 설계 과정을 그대로 개발에 재사용함으로써 전체적인 개발 기간의 단축을 꾀하는 것을 목적으로 한다.
- RSS . . . . 3 matches
The technology behind RSS allows you to subscribe to websites that have provided RSS feeds, these are typically sites that change or add content regularly. To use this technology you need to set up some type of aggregation service. Think of this aggregation service as your personal mailbox. You then have to subscribe to the sites that you want to get updates on. Unlike typical subscriptions to pulp-based newspapers and magazines, your RSS subscriptions are free, but they typically only give you a line or two of each article or post along with a link to the full article or post.
- ReadySet 번역처음화면 . . . . 3 matches
These templates are not one-size-fits-all and they do not attempt to provide prescriptive guidance on the overall development process. We are developing a broad library of template modules for many purposes and processes. The templates may be filled out in a suggested sequence or in any sequence that fits your existing process. They may be easily customized with any text or HTML editor.
We will build templates for common software engineering documents inspired by our own exprience.
This project does not attempt to provide powerful tools for reorganizing the templates, mapping them to a given software development process, or generating templates from a underlying process model. This project does not include any application code for any tools, users simply use text editors to fill in or customize the templates.
- Reverse Engineering처음화면 . . . . 3 matches
1. 프로그램이 왜 이렇게 짜여져 있는지 확인.
5. Pack되어있는 프로그램 분석. Pack 프로그램 제작. 알고리즘 제작.
2. Windows API + C
- ReverseAndAdd . . . . 3 matches
대부분의 정수는 이 방법을 몇 단계만 반복하면 회문이 된다. 하지만 예외도 있다. 회문을 찾을 수 없는 것으로 밝혀진 첫번째 수는 196이다. 하지만 회문이 없다는 것이 증명된 적은 없다.
어떤 수가 주어졌을 때 회문이 있으면 출력하고, 그 회문을 찾기까지 뒤집어서 더하기를 반복한 횟수를 출력하는 프로그램을 만들어야 한다.
* 정수 N(0<N<=100) 제한을 프로그램 상에서 걸어놓으면 로봇이 틀린 답으로 판단하는군요. 왜 그럴까요? -- 보창
- Ruby/2011년스터디/서지혜 . . . . 3 matches
* 일정 시간이 지나면 웹 브라우저를 종료하는 프로그램 만들기
* 0207 : 프로그램 명세. 엔포지에 프로젝트 생성([http://nforge.zeropage.org/projects/deletewastes 엔포지 링크])
== 프로그램 기능 ==
* 루비에서의 윈도우API사용
* 루비와 윈도우API의 호환성
* 윈도우API 사용법 습득
* 윈도우 API 테스트
* windows API로 프로세스의 정보 받아오기 ([http://sosal.tistory.com/100 원본])
_tprintf(_T("\t[Process name]\t[PID]\t[ThreadID]\t[PPID]\n"));
- STL/참고사이트 . . . . 3 matches
[http://www.cs.rpi.edu/projects/STL/stl/stl.html C++ STL 레퍼런스 사이트]
[http://www.cs.rpi.edu/projects/STL/htdocs/stl.html C++ STL from RPI univ]
좋지만 오래된 문서 - [http://www.decompile.com/html/tut.html] 미러 : [http://mip.ups-tlse.fr/~grundman/stl-tutorial/tutorial.html]
- STLPort . . . . 3 matches
* '''test''' : STLport가 설치된 후 제대로 설치되었나 확인하기 위한 테스트 프로그램 소스.
Upload:4-compileError.GIF
이 절의 설명과 이후의 설명을 모두 건너 뛰시고, '''stlport''' 폴더 전체를 VC++ 폴더의 /include 폴더에 복사하십시오. 그리고 "프로그램 관련 세팅" 절부터 읽으시면 됩니다. 단, 라이브러리 관련 부분은 관련이 없습니다.
- ScheduledWalk/창섭&상규 . . . . 3 matches
=== 프로그램 디자인 ===
* 사용자(User) -> 프로그램 사용자와 대응되는 객체
=== 프로그램 소스 ===
- SmallTalk/강좌FromHitel/강의3 . . . . 3 matches
1.1. 프로그램과 프로그래밍 언어
1.3. Smalltalk 맛보기 프로그램
글꼴을 설정하는 방법을 익혔습니다. 이제 이를 바탕으로 하여 Smalltalk 환
- Spring/탐험스터디/2011 . . . . 3 matches
1.3 테스트 가능한 프로그램 : 모듈화가 잘 되어있어야 함(관심사 분리) 모듈을 먼저 만들어서 테스트하고 후에 조립을 한다. TDD 개발시 TDD이전에 테스트 가능한 프로그램을 만들어야 한다.
1.1. DIP : 멤버 변수를 외부에서 주입 받을 때는 구체 클래스가 아닌 인터페이스를 이용한다. 최대한 클래스 내부에서 변수를 할당하지 말고(new를 사용하지 말고) 주입을 받도록 한다.
- StaticInitializer . . . . 3 matches
Static Initializer 는 이러한 값들을 미리 셋팅하기 위해 사용하며 다음과 같은 문법을 이용한다.
문제는 StaticInitializer 부분에 대해서 상속 클래스에서 치환을 시킬 수 없다는 점이다. 이는 꽤 심각한 문제를 발생하는데, 특히 Test 를 작성하는중 MockObject 등의 방법을 사용할 때 StaticInitializer 로 된 코드를 치환시킬 수 없기 때문이다. 저 안에 의존성을 가지는 다른 객체를 생성한다고 한다면 그 객체를 Mock 으로 치환하는 등의 일을 하곤 하는데 StaticInitialzer 는 아에 해당 클래스가 인스턴스화 될때 바로 실행이 되어버리기 때문에 치환할 수 없다.
- TCP/IP 네트워크 관리 / TCP/IP의 개요 . . . . 3 matches
*Application layer : 네트워크를 이용하는 응용 프로그램으로 구성
*Presentation layer : 응용 프로그램에 데이터 표현을 표준화
*Session layer : 응용 프로그램간의 세션을 관리
- Telephone . . . . 3 matches
다음과 같은 프로그램을 만드세요.!
자 이러한 광고문구 글을 해당 전화번호로 번역해주는 프로그램을 만들어보자.!
PIZAZZE
"""자신의프로그램이름""" < test1.in > out.txt
PIZAZZE
- TestDrivenDatabaseDevelopment . . . . 3 matches
public class SpikeRepositoryTest extends TestCase {
repository= new SpikeRepository(con);
repository = new SpikeRepository(con);
- UDK/2012년스터디/소스 . . . . 3 matches
// Move camera to prevent pinning by world
// @todo fixmesteve. If FindSpot fails, then (rarely does) camera pinned continously.
CamDirX *= square(cos(out_CamRot.Pitch * 0.0000958738)); // 0.0000958738 = 2*PI/65536
[[Media(http://udn.epicgames.com/Three/rsrc/Three/DevelopmentKitGemsConcatenateStringsKismetNode/03_PopulatingConcatenateKismetNode.jpg)]]
- Velocity . . . . 3 matches
// SpikeVelocity.java
public class SpikeVelocity {
DreamWeaver Plugin - http://java.techedu.net/phpBB2/viewtopic.php?t=138 - 아아.. 이런 문서 먼저 만들어주신 분에게 참 감사하다는. :)
- Z&D토론백업 . . . . 3 matches
DeleteMe ) TV프로그램 이제는 말할수 있다가 생각나는군 --상민
현재의 ZeroPage 서버를 이용한다.
1월 31일 아침 6시 16분 - 데블스 게시판에서는 지금, 내부 의견정리도 없이 통합회의에 참석하여 성급한 결정을 내렸다고 생각하는 분위기 입니다. 데블스 선배님들의 의견수렴 없이 이루어진 통합 결정인 만큼, 통합 자체에 대한 거부감이 표출되고 있습니다. 이대로라면, ZP와 데블스의 통합이 아니라, ZP의 데블스 00 01 회원 흡수 가 될것입니다. 데블스 선배님들은 데블스가 사라졌다고 생각하시면서 더더욱 데블스 저학번 회원님들과 멀어질테니까요. 기존 데블스OB만 따로 활동하거나, 따로 게시판을 쓰자는 말도 나오고 있구요. 이러면 통합이 아닙니다. 저도 이런 분위기에는 반대합니다. 지금부터라도 다시 시작으로 돌아가서, 데블스 선배님들의 의견수렴을 해야한다고 봅니다. 일전에 선배의 말 보다는, 활동의 주체가 되는 후배님들의 결정이 더 중요하다는 말씀을 드리긴 했으나, 그것은 선배들의 지지와 후원을 배경으로 하는 것이지, 지금처럼 선배들이 등돌리는 상황에서는 이야기가 다르지요. ZP와 데블스 선배님들 전체의 의견을 들어보는 방법을 마련해봅시다. 만약 계속해서 강한 반대가 나온다면 통합논의 자체가 다시 원점으로 되돌아갈 공산이 없지 않습니다. 허나, 데블스 후배님들 회원 단 두명만의 의견으로 통합 결정을 한 것이라면, 그 자체가 후배의 월권이 아닐까요? 데블스가 단 두명만의 학회는 아니니까요. 데블스 선배님들의 의견을 더 귀담아 들어봅시다. And.. ZP 선배의 입장에서 이번 통합 결정에 대해, 저는 여러분의 결정을 지지합니다. 그러나 지금처럼 "데블스 흩어서 회원 흡수하기" 분위기라면 제고해야 하지 않나 싶습니다. --혀뉘
- Zeropage/Staff/회의_2006_02_13 . . . . 3 matches
신입생 3월에 준회원 -> 세미나 프로그램 생각하기(커리큘럼 작성)
1학기->페어 프로그램, 문제풀기
프로그램접수 : -
- eclipse디버깅 . . . . 3 matches
프로그램을 한 단계 진행하되, 메쏘드 호출부라면 실행 포인트를 메쏘드 안으로 옮긴다. 호출하는 메쏘드의 내부 동작을 확인하고 싶을때 사용한다.
에디터에서 커서가 위치한 곳까지 실행한다. 브레이크포인트를 새로 추가하지 않고도 코드 내 임의의 위치로 실행포인트를 옮기고 싶을 때 유용하다. 실행되지 않을 부분을 선택한 상태에서 Run to Line을 실행시키면 프로그램이 끝까지 진행돼 버릴 수 있으므로 주의해야 한다.
프로그램을 종료한다.
- html5/offline-web-application . . . . 3 matches
* JavaScript API를 이용하여 명시적으로 체크할 수 있다.
/api/
* '/api/user'나 '/api/friend'등의 URL은 어느 것이든 반드시 온라인으로 액세스하게 된다.
= API와 이벤트 =
- neocoin/Log . . . . 3 matches
* Win32 API
* OP - Object Programming Mosaic 프로그램 숙제
* 감안 : 임의의 비트맵 파일을 로드할수 있다. 임의 비트맵 파일로 저장할수 있다. MFC Class를 이용해 본다. Api로만 작성해 본다. Java로 작성해 본다. TDD를 생각해 본다. 어떻게 가능한가?
* 작년에 비하여 독서량을 대폭 늘였고, 더 늘여야 될 필요성을 느끼고 있다. 그에 반하여, 해당 정보의 정리 능력에 고민 중이다. 문자 해독 능력과 의미론적 정리를 위해서 좀더 효과적인 방법을 찾고 있다. (위키의 정리는 정말 많은 도움이 된다.)
- pinple . . . . 3 matches
= pinple =
pinple 프로젝트를 진행함에 있어 어려웠던 점들과 그걸 해쳐 나갔던 전반적인 것들을 위키에 정리하려 합니다.
== pinple의 시작 ==
* [http://agile.egloos.com/5738624 애자일 이야기 : 몇 명 팀이 효과적인가요?] 저는 이 글을 읽고 가장 먼저 생각난 것이 Pinple이었습니다. - [김수경]
- wxPython . . . . 3 matches
qt, gtk 로의 접근에 어려움을 갖는다면 충분히 배워볼만한 툴킷. 정말로 쉽고, 다큐멘테이션, 예제프로그램의 제공 형태가 굉장히
바람직한 형태로 구성되어있다. 예제프로그램은 도움말 파일의 형태로 embeded 되어서 실행되는 코드로 구성되어있다.
== wxPython 을 이용한 GUI IDE ==
- 경시대회준비반/BigInteger . . . . 3 matches
* provided that the above copyright notice appear in all copies and
// Copies data to 'this' upto size bytes
// Copies data from `a' to `this'
- 권영기 . . . . 3 matches
* [권영기/채팅프로그램]
* NIPA-Purdue 캡스톤 프로그램
* [정모/2014.8.27] - OMS : 아두이노를 이용한 화재정보 상황 수집
- 그래픽스세미나/1주차 . . . . 3 matches
* 선을 Clipping하는 방법
* Outcode가 0000 일 경우엔 Clipping 이 필요하다.
|| 이선호 || Upload:OpenGL01.zip API Ver. ||
|| 강인수 || Upload:OpenGL_Report1_Insu.zip API Ver. ||
|| [경태] || Upload:OpenGLAPI01_Pkt.zip ||
|| [상규] || [http://165.194.17.15/~lsk8248/wiki/Seminar/%b1%d7%b7%a1%c7%c8%bd%ba%bc%bc%b9%cc%b3%aa/1%c1%d6%c2%f7/Triangle.zip API Ver.] ||
|| 김창성 || 파일 올리는 법을 모르겠다. -_-; ||
- 데블스캠프2002 . . . . 3 matches
1. ["DevelopmentinWindows"] - 윈도우즈 운영체제를 기반으로한 프로그램 개발의 간략한 소개 --상규
1. ["FindShortestPath"] - 옛날 해커스 랩에서 나왔던 문제.. 프로그램 실력보다는 알고리즘적인것이 중요할듯.. --광민
음.. MFC나 API를..해주시는 것이 잴 나을 듯싶네여..마지막날에. 만들..그런 과제도..같이..내주심이..
머리쓰는 문제도 중요하지만... 여러가지 분야를 조금이나마 경험하게 해주는것도 필요하지 않을까여..? 윈도우즈 에플리케이션이 어떻게 돌아가는지 간단히 소개시켜 준다든지... Little Man Computer 같은 것을 통해 컴퓨터 내부의 동작 원리를 설명해 준다든지.. Embedded System을 간단히 소개시켜 줘서.. 휴대전화나 가전제품, 계산기 등도 프로그램이 들어간다는것을 알게 해준다든지 등........ --상규
- 데블스캠프2003/넷째날/Linux실습 . . . . 3 matches
== 접속 프로그램 ==
* 물론 명령모드에선 copy&paste만 할 수 있는 것이 아니라 지우기, 복구하기 등의 명령어가 있습니다.
예를 들면, apache 로그 파일을 줍니다. 그리고 sort, uniq, cut, grep, head 등의 명령어의 사용법을 간단히 가르쳐 줍니다. 그리고 이들을 파이프로 연결해서 2003년 6월에 접속한 IP 중에 가장 자주 접속한 IP 베스트 10을 1등부터 뽑아내라고 합니다. ({{{~cpp grep "Jul/2003" access.log| cut -d' ' -f1 |sort|uniq -c|sort -rn|head -10| cut -f2}}})
- 데블스캠프2004/세미나주제 . . . . 3 matches
* 프로그램 설계
- [STL]의 경우 사용법을 세미나하는것도 좋지만 GenericProgramming 의 개념과 왜 그러한 패러다임이 나왔는지, 그 배경에 대한 설명도 있으면 좋을 것 같습니다 - [임인택]
[STL]을 할때 단순히 자료구조를 사용하는 방법을 같이 보는것도 중요하겠지만 내부구조 (예를 들어, vector는 동적 배열, list은 (doubly?) linked list..)와 같이 쓰이는 함수(sort나 또 뭐가있드라..그 섞는것..; ), 반복자(Iterator)에 대한 개념 등등도 같이 보고 더불어 VC++6에 내장된 STL이 ''표준 STL이 아니라는 것''도 같이 말씀해 주셨으면;; (SeeAlso [http://www.stlport.org/ STLPort]) - [임인택]
- 데블스캠프2004준비 . . . . 3 matches
=== 프로그램 문제 ===
* 중대 졸업가능여부 판단 프로그램
새회원이 프로그램 문제를 해결하는 동안 기존 회원을 위한 세미나를 준비해보면 좋겠다는 제안이 나왔습니다. 작년 기록을 보면 기존 회원을 위한 세미나는 없었던 모양입니다.--[Leonardong]
- 데블스캠프2005/언어디자인/그까이꺼 . . . . 3 matches
loop란 프로그램이 있다
viewer란 프로그램이 있다. 뒤에 출력하고싶은 것을 입력한다. ','로 구분한다.
loop(viewer<-star,ent)x5는 별을 화면에 하나 나타내고 한줄 띄우는 프로그램을 5번 반복한다.
- 데블스캠프2005/월요일 . . . . 3 matches
위키에 대한 소개 (새내기의 대부분이 사용법을 아는걸로 추측...)
(15)textIntputBox와 버튼이벤트를 이용한 입력처리
(5)#2 : 함수를 이용한 곱셈기
- 데블스캠프2005/화요일후기 . . . . 3 matches
좋았던 점은 파이선이라는 새로운 프로그램과 하노이라는 간단하면서 어려운 문제를 해결해 나가는데에서 더욱더 나 자신을 발전시킬수 있었다. 그리고 선배님과 많은 상의를 해보면서 선배도 우리를 잘 가르쳐주시고 우리는 선배님의 지식을 습득해 가면서 정말 좋은 시간이 되었다. 밤을 새가면서 공부를 한다는 것은 그것만으로도 아주 커다란 성취감을 갖게 한다. 나쁜점은 아무래도 밤이라서 잠과의 싸움이 가장 큰 문제이다. 밤이라서 집중이 잘 안되는 건 어쩔수 없다. 밤을 새가면서 공부를 한다는건 참으로 어려운 일이다.
[남도연]:오늘 크게 2가지를 배우게 되었다. 하나는 알고리즘과 자료구조에 관한 내용이었고 하나는 파이선에 대해 배운 것이었다. 알고리즘과 자료구조는 평소 우리가 수업시간에 들었던 내용이기는 하였지만, 막상 코드로 직접 적용하려니 잘 풀리지 않았다. C코딩을 할때 중요한 것이 알고리즘이라는 것을 또 한번 느끼게 되었다. 아무 생각 없이 코딩을 무작정 하려고 하다가는 크게 낭패를 본다는것을 배웠기 때문이다. 알고리즘은 하나의 계획표라고 볼 수 있다. 하나의 프로그램을 짜기 위한 계획표. 파이선은 C언어와는 사뭇 다른 언어였다. C언어 보다 편리한면이 많아 보이기는 했지만, C언어보다 못한 점도 간혹 보였다. 아직 미숙하기 때문에 딱히 무엇이라 말할 수는 없지만.. ㅋ 오늘 새로운 언어도 배우고 알고리즘의 중요성도 다시금 느끼게 되어 날 샌것이 아깝지 않았지만, 내준 과제 모두를 다 해결 하지 못한 것이 아쉬움이 남는다. 다 해결했으면 더 뿌듯 했을텐데 .. ㅋ
[안성진] : Python을 첨 접하게 되었는데 정말 많은 걸 배웠습니다. 어렵기도 했지만 역시 프로그램 하면서 날 새는 기분은 끝내주네여...~~ㅎ 강사님들 수고하셨고여 저 역시도 방학때 할 일이 참 많아 질 것 같네영.. ㅋㅋ 남은 일정 동안 열심히 합시다. ^^
- 데블스캠프2006/목요일/winapi . . . . 3 matches
Upload: api.ppt
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
= practice2. dead_pixel =
Upload:dead_pixel.exe
- 데블스캠프2008/등자사용법 . . . . 3 matches
2. 공부하는 방법을..
이 프로그램으로 수업진행 하니까 참 재미있어요
저같은 소심남도 이런 프로그램을 통해서
- 데블스캠프2010/넷째날/후기 . . . . 3 matches
* 자바스크립트가 C언어와 많이 닮은것 같아서 매우 인상깊었습니다. 하지만 저의 C언어 실력이 미숙하여 하는데에 많은 어려움을 겪으면서 많은 생각을 하게 되었습니다. 일단 기본적인 C언어의 문법과 선언하는 함수 등을 자세히 공부하고, 자바스크립트에서의 C언어의 활용 방법을 좀더 연구해야겠다고 생각했습니다. 그리고 자바스크립트를 통해 비쥬얼 스튜디오보다 좀더 편리한 프로그래밍을 할수있어 더 좋은 내용의 프로그램을 만들수있다는 것에 대하여 생각해 보았습니다. 앞으로 좀더 열심히 공부해야겠다고 생각합니다. - [양아석]
* 참 재밌었습니다. "쿠키와 세션"에 대한 내용도 조금 알 수 있었고 웹의 작동 원리를 알 수 있어서 좋았습니다. AJAX가 등장한 이유도 재밌었구요 ㅋㅋ 또 하나의 웹 페이지처럼 보이지만 실상은 여러 페이지를 include 한 것을 보고, "아 이런 원리였구나" 하고 깨닫게 되었습니다. 참 신기하고 재밌네요 ㅋㅋ C++0x도 역시 흥미로웠습니다. 새로운 문법들 중 &&를 이용한 우측값 참조, 이걸 들어보니깐 점점 C++은 접근하기 어려운 언어가 되어가는 듯한 느낌을 받았습니다... 하지만 저는 성능을 더욱 개선시킬 수 있다는 점에서 새로운 것을 알아 좋았습니다. - [박성현]
- 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/송지원 . . . . 3 matches
* 프로그램을 재실행하면 또 오래 기다려야 해서 파일 입출력을 적극 활용
* 고로 이 프로그램을 복붙해서 그냥 실행하면 돌아가지 않습니다
* 이 프로그램은 Bayes Classifier 값을 구하는것 까지이고, 시간 관계상 값의 참/거짓 빈도는 엑셀을 이용해서 계산했습니다.
- 데블스캠프2011/셋째날/RUR-PLE/박정근 . . . . 3 matches
pick_beeper()
pick_beeper()
pick_beeper()
- 데블스캠프2012 . . . . 3 matches
|| 1 |||| [:데블스캠프2012/첫째날/배웠는데도모르는C 배웠는데도 모르는 C] |||| 웹 서비스구축 전반에 관한 이야기 |||| 점심? |||| |||| [http://zeropage.org/seminar/62072 재귀함수를 이용한 문제 해결] |||| [http://zeropage.org/seminar/62080 C로배우는 C++의원리] || 8 ||
|| 2 |||| 배웠는데도 모르는 C |||| 웹 서비스구축 전반에 관한 이야기 |||| [http://zeropage.org/seminar/62041 소켓, 웹, OpenAPI] |||| |||| 재귀함수를 이용한 문제 해결 |||| C로배우는 C++의원리 || 9 ||
|| 3 |||| 배웠는데도 모르는 C |||| [http://zeropage.org/index.php?mid=seminar&category=61948 APM Setup] |||| 소켓, 웹, OpenAPI |||| |||| [:데블스캠프2012/넷째날/묻지마Csharp 묻지마 C#] |||| C로배우는 C++의원리 || 10 ||
|| 소켓, 웹, OpenAPI || [서민관](19기) ||
|| 백트래킹을 이용한 알고리즘 문제 해결 || [정진경](21기) ||
- 데블스캠프2012/셋째날/후기 . . . . 3 matches
= 소켓, 웹, OpenAPI =
* [김준석] - 날로먹는 APMSetup이 이렇게 유용하게 연속적으로 쓰일줄은 몰랐습니다. 실습은 Naver API 개발자 센터에 자신이 사용할 사이트 주소를 쓰고(안드로이드는 package명으로 인식하는게 재밌었습니다. 많은 사람도 쓸수 있게 서비스 하는군요) 그위에 마크를 올리는게 좋았습니다. 그러고보니 이번엔 코드는 안올려주네요. 역시 javascript와 웹서비스는 대세인듯=ㅂ= 코드임 [데블스캠프2012/셋째날/코드]
* [박정근] - 늦게와서 제대로 못 들었네요ㅠ 뒷부분에 API를 사용하는 부분을 보니 관심이 생겼습니다. 한번 들여다 봐야겠어요
* [서영주] - http request를 직접 보내서 그 결과를 받아온게 인터넷 페이지의 소스보기와 같다는 부분을 보여줘서 웹에 대한 느낌을 조금 더 가깝게 느낀건 좋았습니다. 개인적으로 오픈api는 학기중에 질리도록 봐서 더이상 보고싶지가 않을 정도였지만. -_-
* [김민재] - 소켓의 개념과 소켓을 통해 데이터를 전달 하는 것과, OpenAPI를 통해 네이버 지도를 가져오는 것을 해봤습니다. 재미있었습니다. ㅋㅋㅋ
* [이재형] - 사실 개념 부분은 이해하기 조금 힘들었는데, OpenAPI 실습해볼 때는 정말 재밌고 신기했어요. 지도에서 좌표 따오는 것도 재밌었고 여러가지 API들에 대해서도 관심이 생겼습니다. 더욱이 어제 수업과 점점점점 연계되는것도 흥미로웠습니당.
* [정진경] - OpenAPI를 재미삼아 쓰기엔 트래픽 제한 때문에 과정이 좀 귀찮다고 생각되네요. 책 지식검색과 관련해서 해보고 싶은 프로젝트가 있는데 배워본 김에 시작해볼 수 있길...
* [김태진] - 설명을 할때 햄버거가 왔다거나, 등등으로 좀 산만했던게 아쉽네요. 내용도 약간 붕 떠서 핵심 내용을 이해하기 애매했던것도 있구요. 뭐, 그래도 끝에 실습을 해서 Open API가 뭔지는 잘 전달할 수 있어서 좋았던거 같아요.
* [서민관] - 개인적으로 1학년을 대상으로 정말 내용을 쉽게 하려고 했는데 그러다 보니까 내용이 약간 뜬 느낌이 있네요. 그리고 한 번에 너무 많은 주제를 다룬 것 같기도 합니다. 소켓 + HTTP + Open API라 주제가 약간 흐릿했죠. 혁준 선배는 예전 데블스에서 웹에 대해 꽤 알기 쉽게 다뤘던 것 같은데 말이죠... 하지만 개인적으로 정말 아쉬운 것은 1학년들한테 제가 이번 세미나를 준비하면서 알게 된 것들의 반도 못 전달했다는 점이군요. 세미나 준비를 하면서 덕분에 저만 잔뜩 공부했네요.
* [김수경] - 그냥 API 사용하는 법에 대한 얘기만 할거라 예상했었는데 소켓부터 시작해서 제법 이론적인 이야기들이 많이 나와서 좋았습니다. 사실 저는 네트워크 수강을 마친 상태라 설명에 불만이 없었지만 새내기 입장에서는 설명이 이해하기 조금 어렵지 않았을까 싶네요. 내용 자체가 익숙하지 않은 것 투성이니까요ㅠㅠㅠ 하지만 마지막에 직접 실습을 해보면서 재미도 느낄 수 있었을 것 같습니다.
* [권영기] - 앞 부분은 제가 지각을 해서 듣지 못했습니다. 저는 OPEN API부터 듣게 되었는데 이게 상당히 재미있네요. 덕분에 집에서 APM 설치하고 개인 페이지에 막 적용해보면서 놀고 있습니다.
* [엄제경] - 허헛, 웬지 나중에 테스트를 해볼만한 것을 내가 만들 수 있을진 의문이지만, 나중에 팀프로젝트를 할 때 쓸만한 좋은 공유방법을 배우게 되어 좋았어요 ㅎ.
* [서영주] - 이번에는 진짜 웹 천국인것 같습니다. 저번에는 웹이 하나도 없던 반동인건가... 게다가 어째 처음부터 짠것처럼 첫 날에 수업한 내용이나 프로그램들을 뒤에서도 계속 써먹으니까 추가적인 이해를 하는데 좋았던 것 같습니다. 물론 제대로 코딩을 하는건 그런 기술 이전의 문제인 것 같지만요. 감사합니다.
* [안혁준] - 땜방용티가 많이 났나요? 사실 canvas는 아무리 생각해도 설계를 잘못한것 같아요. 도무지 API들이 바로바로 떠오르지 않아요. 거기다가 왠지 함수 일것 같은데 문자열로 넣어줘야 하는 부분들도 있고요. 딱히 canvas는 아니지만 [https://developer.mozilla.org/ko/demos HTML5을 활용한 예제]를 보면 신선한 느낌일듯 하네요.
- 디자인패턴 . . . . 3 matches
디자인패턴에 대한 설명이라.. 다른 곳에서 이미 체계적인 설명들을 해 놓아서 장황하게 설명하지 않는다고 한다면, 말 그대로 '패턴'이 된 디자인들의 묶음입니다. (물론 그렇다고 패턴이 모든 디자인 문제를 해결해주는 silver bullet는 아니죠.) 처음 프로그램을 설계를 할때 참조할 수 있는, 어느정도 공식화 된 디자인들을 일컫습니다. 현재 거의 Reference화 된 23개의 패턴이 있고요. 계속 새로운 패턴이 추가되고 있는 것으로 알고 있습니다.
* [http://www.cmcrossroads.com/bradapp/docs/pizza-inv.html - Pizza Inversion - a Pattern for Efficient Resource Consumption]
디자인 패턴을 적용함으로서 얻을 수 있는 장점으로는 '확장성'과 '유연성'을 들 수 있습니다. 그리고 초기 프로그램 설계시에 지침서가 되어주지요. OOP 의 개념을 익히고 나서 어떻게 OOP를 추구해나가야 할지 감을 못잡는 사람은 공부해보는 것만으로도 좋은 경험이 된다고 생각합니다.
- 레밍즈프로젝트/프로토타입/SetBit . . . . 3 matches
memdc->SetPixel(i, i, RGB(155,155,0));
ASSERT(RGB(155,155,0)==memdc->GetPixel(100,100));
memdc->SetPixel(i, j, RGB(255, 255, 0));
[http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_mfc_cdc.3a3a.setpixel.asp MSDN_SetPixel], [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_mfc_cdc.3a3a.getpixel.asp MSDN_GetPixel]
프로그램에 사용되는 맵 타일의 형태가 확정된다면 [레밍즈프로젝트/프로토타입/MFC더블버퍼링]을 확장해 사용 할 것이다.
- 루프는0부터? . . . . 3 matches
보통 비대칭형 범위는 대칭형 범위보다 더 사용하기 쉽습니다. 왜냐하면 다음과 같은 중요한 속성이 있기 때문입니다. [m, n)과 같은 형식의 범위는 n-m개의 요소들을 가지며 [m,n]의 형식은 n-m+1의 요소들을 가집니다. 따라서 [0, rows)에서 요소들의 개수는 직관적인데 반해, [1, rows]에서 요소들의 개수는 덜 직관적 입니다. 이러한 속성차이는, 특히 빈 범위의 경우에 더 뚜렷합니다. 만약 비 대칭형 범위를 사용한다면, 빈 범위를 [m,n)으로 표현할수 있지만, 대칭형 범위에서는 [n, n-1]을 사용해야 합니다. 범위의 끝이 시작보다 더 작을수 있따는 가능성은 프로그램 설계시 끝이 정의되지 않아 버리는 문제를 야기 시킬수 있습니다.
사소한 것일지 모르지만, 루프가 끝날 때 우리가 짐작 할 수 있게 되는 프로그램의 상태 정보에 영향을 줄 수 있습니다.
조건식이 r!=rows라면, 루프가 끝날 때 r==rows라는 사실을 알수 있습니다. 불변식은 r개의 행을 출력했따는 사실을 말해 주기 때문에, 정확히 rows개의 행을 출력했다는 것을 알 수 있습니다. 한편, 만약 조건식이 <=rows라면, 그로부터 알 수 있는 사실은 최소한 rows개의 행을 출력했다는 사실 뿐입니다. 따라서 그 이상을 출력했을 수도 있는 것입니다. 0부터 번호를 매기게 되면 정확히 rows번의 반복을 수행했는지 확실히 하고자 할 때, R!=rows를 조건식으로 사용할 수 있습니다. 또한, 반복횟수가 rows번 또는 그 이상이 되기만을 원한다면, r<rows를 사용할 수 있습니다. 만약 1부터 번호를 매기다면 최소 rows번의 반복만을 원할때 r<=rows를 사용할 수 있습니다. 하지만, rows가 정확한 숫자가 되도록 하려면 어떻게 해야 할까요? 그런 경우에는 좀더 복잡한 조건식인 r==rows+1과 같은 방법을 사용 할수 있습니다. 하지만 이렇게 복잡하게 해서 얻을수 있는 이득은 거의 없습니다.
- 방울뱀스터디/Thread . . . . 3 matches
쓰레드는 하나의 프로그램(프로세스)안에서 여러가지 일을 동시에 처리해 주는 것을 말합니다.
프로세스(process) : 쓰레드와 비슷하기는 하지만 좀 더 큰 개념을 말하는데, 서로 다른 프로그램이 동시에 처리될 각각의 프로그램을 가리킴니다..
- 비행기게임 . . . . 3 matches
암튼. 초반의 열정이 후반의 끈기로 이어지려면, 해당 일에 대한 좋은 방법들을 중간에 계속 궁리하고, 적용해봐야겠지. 개인적인 조언이라면, 초반에 너무 그래픽 등에 많이 신경쓰지 않는것이 낫다고 생각함. 일단은 전반적인 틀과 게임 엔진을 만든다는 기분으로 하고, 그 엔진이 자신이 원하는 아이디어를 수용할 수 있는가에 더 촛점을 맞추는게 낫지 않을까 함. 단, 생각은 전반적인 부분을 보되, 구현을 쉽게 하기 위해서는 구체적 예제 데이터를 가지고 작업하는것이 효율적이겠지. 그리고 그 예제 데이터를 기반으로 일종의 SpikeSolution식으로 구현을 한뒤, 그 구현된 프로그램을 보고 다시 코드를 작성하던지 또는 ["Refactoring"] 해서 일반화시키던지.(새로 짜도 얼마 시간 안걸림. 예상컨대, 아마 중반에 소스 한번 뒤집어주고 싶은 욕구가 날껄? 흐흐) --["1002"]
일단은 작은 아이디어를 하나 정한다음 (그 뭐다냐.. 총알 피하기 폐인 게임같은거) 완성시킨뒤, 프로그램을 키워가는 것도 좋을듯. --["1002"]
- 새싹교실/2011 . . . . 3 matches
* [새싹교실/2011/Pixar]
* 테스트는 [http://winapi.co.kr/clec/reference/assert.gif assert]함수를 통해 간단히 만들 수 있습니다.
* 새내기들이 위키 문법을 처음부터 익히기는 어렵습니다. 선생님이 먼저 위키에 내용을 작성하여 학생들이 참고할 수 있도록 해주세요.
프로그래밍 단계(code 작성->compile->link->generating .exe file)
- 새싹교실/2011/AmazingC . . . . 3 matches
* 여러가지 자료형의 변수를 이용한 연산에 대해 배웁니다.
==== part2. 변수를 이용한 연산 ====
* 식별자란 프로그램을 할때 사용자가 다른 것과 구분할 수 있도록 하는 것
- 새싹교실/2011/쉬운것같지만쉬운반/2011.4.6 . . . . 3 matches
1. 구구단을 9단부터 2단까지 출력하는 프로그램을 작성하시오~
2. 다음 출력 결과를 보여주는 프로그램을 작성하시오~
3. 다음 출력 결과를 보여주는 프로그램을 작성하시오~
- 새싹교실/2012/강력반 . . . . 3 matches
상황에 따라 프로그램을 다 만들기 귀찮으므로 사용
* 설유환 - printf함수, scanf함수, if문, else if문, switch 제어문을 배웠다. 특히 double, int, float의 차이를 확실히 배울 수 있었다. 잘이해안갔던 #include<stdio.h>의 의미, return 0;의 의미도 알수 있었다. 다음시간엔 간단한 알고리즘을 이용한 게임을 만들것같다. 그리고 printf("숫자%lf",input);처럼 숫자를 이용해 소숫점 표현량을 제한하여 더 이쁘게 출력하는법도 배웠다.
* 황현제 - 우선 c언어에서 쓰이는 기본적인 연산자가 무엇이 있는지에 대해서 배웠다. 또한 함수 4가지에 대해서 배웠는데, printf, scanf,switch, if에 대해서 배웠고 그리고 새싹강사님께 C를 이용해 작성하신 프로그램을 구경하기도 했는데, C로 이런것도 할 수 있다는 것을 알았다. 새싹 강사님께서 우선적으로 설명을 해주신다음 새싹들이 실습하는 방식으로 수업이 진행됬는데, 옆에서 강사님이 지속적인 피드백을 해주셔서 이해하기가 편했다. 다음에는 반복문에 대해서 배우고, 실습도 해봐야겠다.
- 새싹교실/2012/아우토반/앞반/3.29 . . . . 3 matches
* 프로그램 분석을 하고 설명을 들었습니다. 설명을 들을때 이해도 되고 몰랐던 사실에 대해 알게 되어서 좋았습니다. 그런데, 프로그래밍에대해서 조금 안다고 해서 제가 뭐가문제인지, 무엇이 부족한지 잘 몰랐는데 수업을 하면서 알게되었습니다. 성준이나 저나 완전히 모르는게 아니라 수업 진도가 빨랐었는데
앞부분 반복문, 조건문 등 소스는 이해되지만 프로그램을짤때에는 잘 못짜고, 실전에서 사용하는것이 소스를 보는것보다 직접짜는것이 매우 미숙하다고 느껴졌습니다. 그래서 진도만이 아닌 알더라도 앞에서 확실히 기초를 다지고 새로운것을 배웠으면 좋겠습니다.ㅜㅠㅠ..-[안혜진]
(4) 가위바위보 게임을 만드시오. 컴퓨터와 가위바위보를 해서 연속으로 3번 이겨야 프로그램이 끝나도록 작성하시오.
- 새싹교실/2012/아우토반/앞반/4.5 . . . . 3 matches
* 어깨가 빠지는줄 알았어요..유.유 왜냐면 제 노트북을 가져왔었거든요. 제 노트북으로 신나게 프로그램 4개를 ㅉㅏ 보았습니다. 아우토 샘이 힌트를 좀 주셨지만, 그래도 스스로 생각해서 해보아서 보람찼습니다. 그리고 프로그래밍의 세계는 매우 무긍무진합니다. 왜냐하면 같은 프로그램인데 성준이아 소스코드가 달랐기 때문입니다. 하하하.. 신나요신나 WoW~~ 앞으로 프로그램 많이 짜보며 연습하고 복습도 열심히! 질문도 열심히 하겠습니다. 룰루랄라
- 새싹교실/2013/양반/1회차 . . . . 3 matches
* 제로페이지 위키 작성법을 가르칠 겁니다. -> Fail
* 제로페이지 위키 작성법을 가르칠 겁니다. -> Fail
* 사실 위키 쓰는 법을 알려주려고 했는데, 까먹어서 알려주지 못했어요 ㅠㅠ - [권영기]
- 새싹스터디2007/영동 . . . . 3 matches
* 예제: 구구단, 팩토리알, 인수분해, 소수구하기
||이름||구구단||팩토리알||인수분해||소수구하기||
||이름||포인터를 이용한 두 수의 swap||
- 서버구조 . . . . 3 matches
usr - 사용자가 정의하는 프로그램 저장
1. 설치된 프로그램의 버전, 버그등의 수정이 이루어지면 갱신하거나 패치하도록한다.
1-2. caucse.net/test.html => 각 프로그램들의 버전, 설정 정보들을 알 수 있다.
- 시간맞추기 . . . . 3 matches
문제 : user가 시간을 맞추는 프로그램이다. 프로그램 시작 후 8초가 경과되었다고 생각했을 때, user가 아무키나 누른다.
만약 그 시간맞추기가 정확하다면 user가 이기도록 프로그램을 작성하여라.
- 영호의바이러스공부페이지 . . . . 3 matches
and this magazines contains code that can be compiled to viruses.
Make a copy of the file and keep it for safe keeping.
compiled using debug by naming the insert below SUB-ZERO.USR and
- 윤성준 . . . . 3 matches
|| 순번 || 프로그램명 || 작성시간 || 소스코드 ||
|| 1 || 프로그램 || 3시간 || [프로그램/윤성준] ||
- 이영호/잡다 . . . . 3 matches
회사에서 웹프로그램과 DB, 시스템 관리를 하고 있습니다.
혹시 게임 사이트나 게임 프로그램을 하신 분들 중에서 이거에 대한 정보를 주실 분이 계시나요
계획 수립후에 방법을 생각해보시는 것이 그냥 흉내내서 만들고 난 후에 후회하는것보다는 좋은 방법이 아닌가 싶습니다.
- 임인책/북마크 . . . . 3 matches
* [http://www.internals.com/articles/apispy/apispy.htm API Spying Techniques for Windows 9x, NT and 2000]
* [http://codeguru.earthweb.com/system/apihook.html API Hooking Revealed]
* Seminar:SoftwarePioneers
- 정규표현식/스터디/반복찾기/예제 . . . . 3 matches
UPower compizconfig esound hosts logcheck opt rcS.d terminfo
acpi console-setup fonts hosts.deny logrotate.conf pam.d resolvconf timidity
brlapi.key dictionaries-common grub.d ld.so.conf nanorc rc.local speech-dispatcher xulrunner-1.9.2
- 정모/2006.12.16 . . . . 3 matches
* 기웅 - 4학년이 한다고 해도 기록을 하는 방법을 찾거나 다른 방법도 있을 것 같다.
* 창섭 - 필요한 프로그램, 기타 프로그램 두개의 풀을 만들자.
- 정모/2006.2.16 . . . . 3 matches
신입생 3월에 준회원 -> 세미나 프로그램 생각하기(커리큘럼 작성)
1학기->페어 프로그램, 문제풀기
프로그램접수 : -
- 정모/2012.7.25 . . . . 3 matches
* MT에서 할 프로그램 모집 중.
* Spring : SimpleWiki 작성. 게시물 Page Repositery 기능. Hibernate 사용하는 기능을 Page Repositery에 붙이려고 하는데 Hibernate가 어려워서 잘 될까 모르겠다. 이후에는 Spring의 security 기능을 이용해서 회원가입 기능을 붙일 예정. 위키 문법을 어느 정도까지 다루어야 할지 생각 중.
* 작은자바이야기 : Generics와 Reflection API를 이용한 objectMapper 만들기. Reflection API는 강력해서 무척 마음에 든다. 그리고 objectMapper라는 아이디어를 잘 이용하면 다른 곳에서도 반복되는 작업을 많이 줄여줄 것 같아서 비슷한 방식을 사용하는 것도 좋을 것 같다.
- 제로스 . . . . 3 matches
* 제작한 OS에서 돌아가는 응용프로그램을 만들어 본다.
* 현재 프로젝트의 방향은 정하지 않은 것으로 보이니까 공룡책으로 이론 공부를 하고 Nachos라는 교육용 OS 프로그램 분석을 병행하면서 여기서 얻은 지식으로 OS를 만드는 접근 방법을 사용하는 것이 어떨까 하는데 다들 의견이 어떠신지 궁금? -- 이론 : Operating System Concepts -- 실습 : Nachos - [진석]
- 조영준 . . . . 3 matches
* Wiki Path Finder (wikipedia api를 이용한 두 단어간의 연관성 추정, 2014년 2학기 자료구조설계 팀 프로젝트)
* PicManager - 2014년 객체지향프로그래밍 팀 프로젝트 - https://github.com/ZeroPage/PicManage
* 소문자를 대문자로 변환시켜주는 프로그램
- 조영준/파스칼삼각형/이전버전 . . . . 3 matches
* PTriangle 클래스만 똑 떼서 파스칼 삼각형을 필요로 하는 다른 프로그램에서 쓸 수 있게 손을 봤습니다.
if (lines == 0) return; // 프로그램 종료
if (lines == 0) return; // 프로그램 종료
- 파이썬->exe . . . . 3 matches
주제 : win32com 을 이용한 파이썬 프로그램 py2exe로 실행파일 만들기
win32com 에 있는 것들을 사용해서 프로그램을 만들고 나면..
- 파이썬으로익스플로어제어 . . . . 3 matches
* ie의 type이 instance라고 나오는데, ie가 사용할 수 있는 메소드(맞나요?)에 대한 설명이 있는 문서가 어디 있나요? 어제 보여주신 id, pw를 입력폼에 넣는 메소드 및 사용법을 알고 싶어요. -- 재선
IE Automation 을 이용한 것이므로, firefox 나 opera 의 경우는 다른 방법을 이용해야겠죠. --[1002]
- 프로그래밍십계명 . . . . 3 matches
*너의 컴퓨터는 1보다는 0을 좋아 하니라. 배열의 첨자가 그 범위를 넘지 않을지 손 댈 때마다 따져 보아라. 수식에 1을 더하거나 뺄 때에는 늘 긴장하라. 너의 프로그램은 단지 한 번 덜해서 틀리고 한 번 더해서 다운되느니라.
*너의 프로그램은 항상 바보와 미친놈만이 쓰느니라. 사용 설명서를 쓸 때에는 결코 빠뜨리지 말아라. 빠뜨린 만큼 사용자는 너를 괴롭힐 것이니라.
*가장 완벽한 프로그램일수록 가장 완벽하게 숨은 벌레가 있느니라. 네가 이 세상 최고의 프로그래머라고 떠들며 자만할 때, 옆집 곳간에서는 훨씬 더 뛰어난 것을 묵묵히 만들고 있느니라. 아무렴 프로그래밍은 혼자 잘나서 할 게 아니니, 너로 인해 다른 사람들도 더불어 잘 되면 그얼마나 좋은 것이냐.
- 프로그래밍언어와학습 . . . . 3 matches
하지만 이제는 컴퓨터 시스템에 대한 저차원적인 이해 없이도 얼마든지 뛰어난 프로그램을 만들 수 있는 영역이 늘어나고 있습니다. 언제든지 저차원에 대한 이해는 도움을 주지만 이제는 저차원의 정의가 조금 더 상향 조정된 문제 영역이 훨씬 많습니다. (컴퓨터 발전 초기에는 적용도메인이 협소했습니다)
하드웨어를 "뼈 속 깊이 꿰뚫고 있는 사람"과 그런 거라곤 하나도 모르는 사람이 동일한 문제에 접근했을 때 후자의 경우가 더 훌륭한 프로그램을 더 빨리 산출해낼 가능성은 얼마든지 있습니다.
영작을 수십년간 공부한 사람을 알고 있습니다. 맨날 관용구를 외우고, 문법을 익히고, 날마다 영작을 한 편 씩 해서 미국의 교수에게 그 글을 보내고 검사를 받아온 사람입니다. 그 사람이 몇 년 전 제게 고백을 했습니다. 자기 영작 공부는 후회스러운 것이라고. 그 사람은, 훌륭한 글을 쓰는 것은 단순히 언어적, 문법적인 요소를 떠나서 얼마나 훌륭한 아이디어를 갖고 있느냐에 일차적으로 좌우되는 것이라고 깨닫고, 후학들에게 다양한 주제의 책을 접하라는 충고의 글을 썼습니다. 명료한 글을 쓰려면 언어가 명료하기 이전에 사고가 명료해야 하며, 풍부한 글을 쓰려면 언어가 풍부하기 이전에 사고가 풍부해야 합니다.
- 피보나치/김영록 . . . . 3 matches
int pi(int round)
pi(round_temp);
pi(number_input);
- 피보나치/변형진 . . . . 3 matches
echo pibo(1,1,$a);
function pibo($a,$b,$c){
return pibo($b, $a+$b, $c-1);
- 피보나치/정수민,남도연 . . . . 3 matches
void pibo () {
pibo();
pibo();
- 허아영/Cpp연습 . . . . 3 matches
숫자를 입력받아 그 숫자를 제곱하는 프로그램.
999입력시, 제곱 출력과 함께 프로그램이 끝남.
절차적 프로그래밍 기법을 통해 소프트웨어를 개발하다보면 개발시간도 너무 많이 소요되고 동일한 작업들이 중복된다는 문제점이 야기된다. 이러한 문제점을 해결하기 위해서 소프트웨어도 공장의 부품처럼 독립성을 갖는 객체들로 구성해 놓고 그들을 조립하여 완성한다는 개념이 객체지향 적인 프로그래밍 기법의 근간이다.
- 호너의법칙 . . . . 3 matches
호너의 법칙을 이용한 프로그램을 작성하여라.
배열은 선언하고, 다항식에서 변수 x값은 표준입력받으세요. 예제 output에서는 변수 x = 1입니다. 출력은 output.txt파일에 한번 해보세요. 문제의 요구조건은 이정도 일것 같습니다. 좀 더 일반화된 프로그램을 만들고자 하는 분은 배열도 한번 입력받아 보세요. -- 보창
- 05학번만의C++Study/숙제제출/1 . . . . 2 matches
섭씨 온도를 전달인자로 전달받아 화씨 온도로 환산하여 리턴하는 사용자 정의 함수를 main() 함수가 호출하는 프로그램을 작성하시오. 프로그램은 섭씨 온도로 입력할 것을 요구해야 하고, 다음과 같은 실행 결과를 출력해야 한다. 참고로, 섭씨 온도를 화씨 온도로 변환하는 공식은 Fahrenheit = 1.8 X Celsius + 32.0 이다.
- 05학번만의C++Study/숙제제출/2 . . . . 2 matches
* 평상시에는 문자열의 주소를 하나의 전달인자로 취하여, 그 문자열을 한 번 출력하는 함수를 작성하라. 그러다가 0이아닌 int형 값을 두 번째 전달인자로 제공하면, 그 시점에 도달할 때까지 그 함수가 호출되었던 횟수만큼 그 문자열을 반복해서 출력한다. (문자열이 출력되는 횟수는 두 번째 전달인자의 값이 아니라 그 함수가 호출되었던 횟수와 같다.)물론 이 함수는 거의 쓸모가 없다. 하지만 이것은 이 장에서 설명한 몇 가지 프로그래밍 기술을 사용할 것을 요구한다. 이들 함수를 사용하여 함수의 작동을 보여 주는 간단한 프로그램을 작성하라
- 근데, 문자랑 숫자를 입력받은 후 출력받은담에 프로그램이 끝나게 만들어야 해? -아영
- 05학번만의C++Study/숙제제출1/윤정훈 . . . . 2 matches
cout << "섭씨온도를 화씨온도로 바꿔주는 프로그램 입니다. \n섭씨온도를 입력해주세요" << endl;
* 섭씨 온도를 전달인자로 전달받아 화씨 온도로 환산하여 리턴하는 사용자 정의 함수를 main() 함수가 호출하는 프로그램을 작성하시오. --[최경현]
- 0PlayerProject . . . . 2 matches
[http://zeropage.org/~mulli2/SSHWinClient-3.1.0-build235.exe ssh win client] 제로 페이지 리눅스 계정 접속 프로그램
(VirtualDub 이라는 프로그램을 써서 만들었습니다.)
- 1thPCinCAUCSE/ProblemC . . . . 2 matches
각 칸이 검은 색이나 흰색으로 칠해진 3*3 정사각형이 주어질 때, 이를 모두 흰색이 되도록 하는데, 누르는 회수를 최소로 하는 방법을 찾는 프로그램을 작성하시오.
- 2005MFC이동현님의명강의 . . . . 2 matches
* 2005.09.14 C++ Class 에대한 간단한 설명과 필요한 이유, MFC와API에 다른점.
* 언인스톨은 동일 버전의 Setup파일을 재실행 시키시거나, 제어판에 프로그램 추가/삭제에서 하실 수 있습니다.
마우스왼쪽버튼-원, 마우스오른쪽버튼-사각형, 게임다시할려면? - 프로그램 껐다켜
- 2005리눅스프로젝트<설치> . . . . 2 matches
*VMware-workstation-5 이란 가상 컴퓨터 프로그램입니다. 윈도우에서 VM으로 여러 윈도우를 설치 할수가 있습니다.(컴터사양이 딸리시는분은 느릴것입니다.)
* 1차 스터디는 명령어와 VI사용 법을 하겠습니다.
- 2학기자바스터디 . . . . 2 matches
그리고 배운걸 바탕으로 간단한 프로그램을 완성하고요
추석끝나고 본격적으로 시작하죠... 교재는 따로 정하지말고 도서관에서 읽기 쉬운걸로 골라서 보면 될것 같구요... 프로젝트까지는 아니어도 간단한 프로그램짜는걸로 해요(toy problem이나 5인용스터디에서 했던것처럼) -세환
- 2학기자바스터디/운세게임 . . . . 2 matches
int num2 = r.nextInt() % 10; // -9 ~ 9 사이의 난수 구하기
int num3 = Math.abs(r.nextInt() % 10); // 0 ~ 9 사이의 난수 구하기. Math.abs()는 절대값을 구함
- 2학기파이선스터디/ 튜플, 사전 . . . . 2 matches
- 집합적이라는 의미에서 리스트나 튜플과 동일하나, 자료의 순서를 정할 수 없는 매핑(mapping)형이다.
10. D.popitem() : (키, 값) 튜플을 리턴하고 사전에서 항목을 제거한다.
- 5인용C++스터디 . . . . 2 matches
* [5인용C++스터디/API에서MFC로]
|| 이름 || 계획서 다운로드 || 프로그램 다운로드 ||
|| 나휘동 || [http://zeropage.org/pub/upload/TypingGamePlan.hwp] || . ||
- 5인용C++스터디/마우스로그림그리기 . . . . 2 matches
마우스를 이용하여 그림을 그릴 수 있는 프로그램 작성하기.
API로 만든 것
|| 문원명 || UploadZero:PaintApiMwm.zip || 잘했음. ||
|| 노수민 || UploadZero:MousePaintAPI_SM.zip|| 잘 했으나 천천히 그리면 끊겨서 그려짐. ||
|| 황재선 || UploadZero:API_DROW_JS.zip|| 잘했음. ||
|| 나휘동 || Upload:Leonardong_APIdrawing.zip || 컴파일 안됨. ||
- 5인용C++스터디/에디트박스와콤보박스 . . . . 2 matches
* 다이얼로그 박스에서 만들고 사용하는 방법을 발표하면 안됨!
new 연산자로 에디트 객체를 만들었으므로 프로그램이 종료될 때 이 객체를 파괴해 주어야 한다. WM_DESTROY 메시지의 핸들러에 다음 코드를 작성하면 된다.
- AOI . . . . 2 matches
'''O'''lympiad in
* [http://acm.kaist.ac.kr/forum/viewtopic.php?t=129]
- AcceleratedC++/Chapter14 . . . . 2 matches
Handle 클래스는 연결된 객체의 clone() 멤버함수를 이용한다. 따라서 Core클래스에 clone()메소드를 public으로 작성하는 것이 필요하다.
'''Handle<>을 이용한 Student_info 의 구현'''
- AcceleratedC++/Chapter5 . . . . 2 matches
* 여태까지 vector랑 string 갖고 잘 놀았다. 이제 이것들을 넘어서는 것을 살펴볼 것이다. 그러면서 라이브러리 사용법에 대해 더 깊게 이해하게 될것이다. 라이브러리는 자료구조?함수만을 제공해주는 것이 아니다. 튼튼한 아키텍쳐도 반영해준다. 마치 vector의 사용법을 알게 되면, 다른것도 쉽게 배울수 있는것처럼...
* 그렇다. 메모리 낭비가 있는 것이다. for루프가 끝날때에는 중복되는 두개의 벡터가 존재하는 것이다. 그래서 우리가 쓸 방법은 만약 f면 fail에 추가하고, f 아니면 그 자리에서 지우는 것이다. 반갑게도 이런 기능이 있다. 근데 졸라 느리다. 입력 데이터의 양이 커질수록 성능 저하는 급격하다. 벡터에서는 중간에 하나를 지우면, 메모리를 통째로 다시 할당하고, 지워주는 짓을 해야한다. O(n*n)의 시간이 필요한것으로 알고 있다. 벡터는 임의 접근이 가능한 대신, 중간 삽입이나 중간 삭제의 퍼포먼스를 포기한 것이다. 이제부터 여러가지 방법을 살펴볼 것이다.
- Adapter . . . . 2 matches
자 그럼 Adapter를 적용시키는 시나리오를 시작해 본다. ''Design Patterns''(DP139)에서 DrawingEditor는 그래픽 객체들과 Shape의 상속도상의 클래스 인스턴스들을 모아 관리하였다. DrawingEditor는 이런 그래픽 객체들과의 소통을 위하여 Shape 프로토콜을 만들어 이 규칙에 맞는 메세지를 이용한다. 하지만 text인자의 경우 우리는 이미 존재하고 있는 TextView상에서 이미 구현된 기능을 사용한다. 우리는 DrawEditior가 TextView와 일반적으로 쓰이는 Shape와 같이 상호작용 하기를 원한다. 그렇지만 TextView는 Shape의 프로토콜을 따르지 않는 다는 점이 문제이다. 그래서 우리는 TextShap의 Adapter class를 Shape의 자식(subclass)로 정의 한다. TextShape는 인스턴스로 TextView의 참조(reference)를 가지고 있으며, Shape프로토콜상에서의 메세지를 사용한다.; 이들 각각의 메세지는 간단히 다른 메세지로 캡슐화된 TextView에게 전달되어 질수 있다. 우리는 그때 TextShape를 DrawingEditor와 TextView사이에 붙인다.
이 다이어 그램은 단순화 시킨것이다.;그것은 개념적으로 Pluggable Adpter의 수행 방식을 묘사한다.그러나, Adaptee에게 보내지는 메세지는 상징적으로 표현되는 메세지든, 우회해서 가는 메세지든 이런것들을 허가하는 perform:을 이용하여 실제로 사용된다.|Pluggable Adpater는 Symbol로서 메세지 수집자를 가질수 있고, 그것의 Adaptee에서 만약 그것이 평범한 메세지라면 수집자인 perform에게 어떠한 시간에도 이야기 할수 있다.|예를 들어서 selector 가 Symbol #socialSecurity를 참조할때 전달되는 메세지인 'anObject socialSecurity'는 'anObject perform: selector' 과 동일하다. |이것은 Pluggable Adapter나 Message-Based Pluggable Adapter에서 메세지-전달(message-forwading) 구현되는 키이다.| Adapter의 client는 Pluggable Adapter에게 메세지 수집자의 value와 value: 간에 통신을 하는걸 알린다,그리고 Adapter는 이런 내부적 수집자를 보관한다.|우리의 예제에서 이것은 client가 'Symbol #socialSecurity와 value 그리고 '#socialSecurity:'와 'value:' 이렇게 관계 지어진 Adapter와 이야기 한는걸 의미한다.|양쪽중 아무 메세지나 도착할때 Adapter는 관련있는 메세지 선택자를 그것의 'perform:'.을 사용하는 중인 Adaptee 에게 보낸다.|우리는 Sample Code부분에서 그것의 정확한 수행 방법을 볼것이다.
- Ajax/GoogleWebToolkit . . . . 2 matches
The Google Web Toolkit is a free toolkit by Google to develop AJAX applications in the Java programming language. GWT supports rapid client/server development and debugging in any Java IDE. In a subsequent deployment step, the GWT compiler translates a working Java application into equivalent JavaScript that programatically manipulates a web brower's HTML DOM using DHTML techniques. GWT emphasizes reusable, efficient solutions to recurring AJAX challenges, namely asynchronous remote procedure calls, history management, bookmarking, and cross-browser portability.
- AppletVSApplication/영동 . . . . 2 matches
* 스스로 실행될 수 있는 자바 프로그램.
* 웹 브라우저에서 실행되는 작은 프로그램을 애플릿이라 한다. 웹에서 클라이언트 측의 프로그래밍을 지원하는 강력한 툴로 사용된다.
- Applet포함HTML/상욱 . . . . 2 matches
<PARAM NAME = "type" VALUE = "application/x-java-applet;jpi-version=1.4.1_01">
type = "application/x-java-applet;jpi-version=1.4.1_01"
- Applet포함HTML/진영 . . . . 2 matches
<PARAM NAME = "type" VALUE = "application/x-java-applet;jpi-version=1.4.1_01">
type = "application/x-java-applet;jpi-version=1.4.1_01"
- ArtificialIntelligenceClass . . . . 2 matches
요새 궁리하는건, othello team 들끼리 OpenSpaceTechnology 로 토론을 하는 시간을 가지는 건 어떨까 하는 생각을 해본다. 다양한 주제들이 나올 수 있을것 같은데.. 작게는 책에서의 knowledge representation 부분을 어떻게 실제 코드로 구현할 것인가부터 시작해서, minimax 나 alpha-beta Cutoff 의 실제 구현 모습, 알고리즘을 좀 더 빠르고 쉬우면서 정확하게 구현하는 방법 (나라면 당연히 스크립트 언어로 먼저 Prototyping 해보기) 등. 이에 대해서 교수님까지 참여하셔서 실제 우리가 당면한 컨텍스트에서부터 시작해서 끌어올려주시면 어떨까 하는 상상을 해보곤 한다.
실제로 AI 프로그래밍을 해보면서 이경우에는 지금 나와있는 어떤 방법과 어떤 방법을 어떠한 식으로 적용해 보는게 좋고, 아니면 더 나은 대안을 찾아보고 이런식이 재밌을거 같다.
- BasicJava2005/3주차 . . . . 2 matches
== Java API문서 사용하기 ==
* [http://java.sun.com/j2se/1.5.0/docs/api/] : 영문 5.0 API문서
* [http://pllab.kw.ac.kr/j2seAPI/api/index.html] : 한글 5.0 API 문서
- BasicJava2005/5주차 . . . . 2 matches
- PI : 파이를 나타내는 상수
연습 > 2차방정식의 해를 구하는 프로그램을 작성해 보자.
연습 > 100이상의 정수가 입력되었을 때 예외를 발생시키는 프로그램을 작성해 보자.
- Basic알고리즘/63빌딩 . . . . 2 matches
이진검색 이란 순서대로 (이진트리안에) 보관되어 있는 데이터를 검색하기 위해서 중간에 있는 (혹은 이진 트리의 루트에 해당하는) 값을 고른다음, 찾는 값이 그보다 크면 오른쪽으로 (값이 더 큰 쪽으로 ) 이동하고, 작으면 왼쪽으로 (값이 더 작은 쪽으로) 이동하는 방법을 의미한다. 유명한 알고리즘이므로 모르는 사람이 없으리라고 생각한다. -저자^_^
코딩. 랜덤함수로 1 ~ 64 중의 수를 정한 다음, 자신의 방법을 통해서 찾아보자!
- BuildingParser . . . . 2 matches
Writing Compilers and Interpreters by Ronald Mak
Programming Language Processors in Java: Compilers and Interpreters by David Watt, Deryck Brown
- BuildingParserWithJava . . . . 2 matches
자바를 이용한 파서만들기, 기능추가하기
3학년 1학기 ProgrammingLanguageClass에서 숙제로 파서를 만들면서 한계를 많이 느꼈었다. 가장 큰 문제는 모든 흐름이 함수 호출을 따라 흘러간다다는 것이었다. 어느 곳이 잘못되었는지 알기가 어려웠기 때문에 찾는데 무척 애를 먹었다. 문법을 하나 추가하는 작업도 매번 오래 걸렸다. 그러다 보니 평가에 중요한 예외처리를 할 시간이 많지 않았다.
- C++스터디_2005여름/학점계산프로그램/허아영 . . . . 2 matches
=== 학점계산프로그램/허아영 ===
[허아영] [C++스터디_2005여름] [C++스터디_2005여름/학점계산프로그램]
- CC2호 . . . . 2 matches
[http://winapi.co.kr/clec/cpp1/cpp1.htm winapi.co.kr의 C기초강좌]는 매우 자세하며 양이 많다.
- CNight2011/고한종 . . . . 2 matches
그리고 malloc 쓰는법을 들었음.
순의형이 소개하고, 종하형이 개념설명 하고, 지원이누나가 쓰는 법을 가르쳐 주셨음.
- CProgramming . . . . 2 matches
[http://winapi.co.kr/clec/cpp1/cpp1.htm winapi.co.kr의 C기초강좌]는 매우 자세하며 양이 많다.
- CVS . . . . 2 matches
버전 관리 프로그램 몇가지 : IBM의 CLEAR/CASTER, AT&T의 SCCS, CMU(카네기 멜론 대학)의 SDC, DEC의 CMS, IBM Rational의 {{{~cpp ClearCase}}}, MS의 {{{~cpp Visual SourceSafe}}}, [Perforce], SubVersion, AlianBrain
돈이 남아 도는 프로젝트 경우 {{{~cpp ClearCase}}}를 추천하고, 오픈 소스는 돈안드는 CVS,SubVersion 을 추천하고, 게임업체들은 적절한 가격과 성능인 AlianBrain을 추천한다. Visual SourceSafe는 쓰지 말라, MS와 함께 개발한 적이 있는데 MS내에서도 자체 버전관리 툴을 이용한다.
- Chapter I - Sample Code . . . . 2 matches
=== Compiler-Independent Data Types ===
수행시간 측정은 한 task 의 수행시간을 측정하기 위해서 한다. (당연한거 아냐?). 이 측정은 PC의 82C52 타이머 2번을 통해 수행된다. 수행시간 측정을 위한 함수로는 PC_ElapsedStart()와 PC_ElapsedStop()이 있다. 하지만 이 두 함수를 사용하기 전에 PC_ElapsedInit()를 호출해야한다. 이 함수는 두 함수와 관련된 오버헤드를 측정하는데 사용된다. 이렇게 하면 PC_ElapsedStop 함수에 의해 수행시간이 리턴된다(마이크로세컨드). 이 두 함수는 모두 리엔터런트(주 : 몇 개의 프로그램이 동시에 하나의 task나 subroutine을 공유하여 쓰는 것에 대해 말함, from 한컴사전) 하지 않아야한다. 다음은 PC_DispChar()함수의 측정시간을 구하는 예이다.
- Chopsticks . . . . 2 matches
L씨는 그의 생일 파티에 K명의 손님을 초대했는데, 그의 특이한 젓가락질 방법을 소개하고 싶어서 안달이 나 있다. 젓가락을 K+8세트(L씨 자신, 부인, 아들, 딸, 어머님, 아버님, 장모님, 장인어른, 그리고 K명의 손님)를 준비해야 한다. 하지만 L씨네 집에 있는 젓가락들 중에는 길이가 다른 것이 많다. 젓가락들의 길이가 주어졌을 때, 각 세트의 짝이 안 맞는 정도를 최소화하면서 K+8세트를 만들어내는 방법을 찾아야 한다.
- CleanCodeWithPairProgramming . . . . 2 matches
|| 02:30 ~ 03:00 || 리팩토링 w/ Sonar || 자동화 도구를 이용한 리팩토링 해보기 ||
* 간단한 프로그램인데 다른팀 구조가 너무 많이 달라서 읽다보니 시간이 전부 흘러가버림 -.- - [장혁수]
- CodeCoverage . . . . 2 matches
CodeCoverage 는 Software Testing 에서 사용하는 측정 도구중의 하나이다. 프로그램이 테스트된 소스 코드의 정도를 기술한다. 이는 다른 대다수의 다른 테스트 메소드와 다른다. 왜냐하면 CodeCoverage 는 소프트웨어 기능, Object interface 과 같은 다른 측정 방법에 비하여 source code를 직접 보기 ㅤㄸㅒㅤ문이다.
* PathCoverage - 주어진 코드 부분의 가능한 모든 경로가 실행되고, 테스트 되는가? (Note 루프안에 가지(분기점)를 포함하는 프로그램에 대하여 코드에 대하여 가능한 모든 경로를 세는것은 거의 불가능하다. See Also HaltingProblem[http://www.wikipedia.org/wiki/Halting_Problem 링크] )
- CollectiveOwnership . . . . 2 matches
일단 리팩토링을 필요로 하는 부분을 한정하고, 그 주위에 테스트 프로그램을 조금씩 붙여 나가야 한다. 그리고 리팩토링을 한다. 간혹 컴파일러를 테스트 프로그램으로 여기는 약간은 위험한 방법도 있다. see also Wiki:RefactoringLegacyCode
- ComponentObjectModel . . . . 2 matches
Despite this, COM remains a viable technology with an important software base – for example the popular DirectX 3D rendering SDK is based on COM. Microsoft has no plans for discontinuing COM or support for COM.
RCW를 구현하고 있는 .Net 하에서는 COM 객체는 아마도 제한적으로 호환성의 측면에서 사용될 것이다. 또한 .NET 객체들은 아마도 COM callable wrapper를 호출하는 것 때문에 COM 객체들안에서 사용될 것이다. 덧붙여서 COM+가 제공하는 일부분의 서비스들(transaction, queued components)은 여전히 .NET 응용프로그램에서도 중요한 부분이다.
- ComputerNetworkClass/Exam2006_1 . . . . 2 matches
4. TCP 버프를 이용한 flow control 관련 문제들.
TCP 수신측 버퍼 오버시 TCP 프로토콜의 처리과정 및 Probing 을 이용한 에러제어
- ComputerNetworkClass/Report2006/BuildingWebServer . . . . 2 matches
* 제작 작성해본 결과 HTTP Application 의 기본적인 사항은 에코서버의 연장선에 있습니다. RFC1945 를 확인하면 아주 단순한 형태의 구현만으로도 충분히 간단한 웹 서버의 동작을 구현하는 것이 가능합니다. (물론 이는 웹 브라우저가 RFC1945 의 HTTP-message BNF 의 가장 단순한 형태를 지원한다는 가정하에서 입니다.) CGI, 로드밸런싱을 이용할 수 있을 정도의 구현이 아닌이상 이는 단순한 에코서버의 연장선과 크게 다르지 않습니다. (어쩌면 모든 네트웍 프로그램이 에코서버일지도 -_-;)
기본 소켓의 HELLO WORLD 만 주고 받을 줄 알고 HTTP BNF 만 주어진다면 1~3시간 이내로도 해결할 수 잇는 단순한 형태의 프로그램입니다.
- ComputerNetworkClass/Report2006/PacketAnalyzer . . . . 2 matches
#include <mstcpip.h>
상기와 같이 기존의 서버 프로그램과 다른 점은 별로 없다. (Listen과 accept가 없네요. WSAIoctrl에서 다 처리하는건지...) 단지 소켓을 ioctrl 로 조정해서 ip 수준에서 올라오는 패킷을 기존과 다르게 처리할 뿐이다.
- ConnectingTheDots . . . . 2 matches
_pixelSize = getIdealSize();
setSize(_pixelSize);
- Cpp/2011년스터디 . . . . 2 matches
* 클래스에 관해 공부하고, 그걸 토대로 프로그램을 짜본다.
* 위의 상황은 디버그일때 일이고 릴리즈일때는.. 프로그램이 죽진 않으나.... 말로 표현할수가 없다.
- CppStudy_2002_2/STL과제/성적처리 . . . . 2 matches
cout << "STL을 이용한 성적관리 프로그램" << endl;
- CrackingProgram . . . . 2 matches
== 간단한 프로그램 ==
== 간단한 암호입력 프로그램 ==
- CryptKicker2 . . . . 2 matches
알려진 평문 공격법(known plain text attack)이라는 강력한 암호 분석 방법이 있다. 알려진 평문 공격법은 상대방이 암호화했다는 것을 알고 있는 구문이나 문장을 바탕으로 암호화된 텍스트를 관찰해서 인코딩 방법을 유추하는 방법이다.
여러 줄의 텍스트가 주어졌을 때 같은 케이스에서는 모든 줄에서 같은 치환 방법을 사용한다고 가정하고 그 중 한 줄은 the quick brown fox jumps over the lazy dog라는 평문을 암호화한 것이라는 점을 이용해서 암호화된 텍스트를 복호화하라.
- DPSCChapter3 . . . . 2 matches
우선 첫째로, 우리는 컴포넌트의 하위 부분들로 부터 단계별로 상품(자동차)을 만들 필요가 있는 응용 프로그램을 만들어보자.
그것은 몸체, 엔진, 변속장치, 그리고 승객 칸막을 포함하는 자동차를 만드는 것이다. 둘째로, 응용 프로그램은 같은 상품의
- DataCommunicationSummaryProject/Chapter12 . . . . 2 matches
* 위성을 이용한 말단(local loop) 기술
* 위성 이용한 모바일 서비스
- DatabaseManagementSystem . . . . 2 matches
DBMS라는 것은 DB를 다루기위해서 만들어진 프로그램이다. 이것은 다수의 사용자가 요청한 정보를 처리합니다. 원래 대용량의 데이터를 다루기위해서 만들어진 컴퓨터때문에 만들어진 것으로 DBMS는 컴퓨터의 back-end 프로그램의 표준화된 일부로서 완전히 통합되었다.
- DesignPattern2006 . . . . 2 matches
[http://kangcom.com/l_pic/200209240010.gif]
[http://kangcom.com/l_pic/200203130012.jpg]
- DevCpp . . . . 2 matches
설치법 - [DevCppInstallationGuide]
You can get a more complete list of free compilers at http://www.bloodshed.net/compilers/ :) - [아무개]
- DevPartner . . . . 2 matches
c) Debug 메뉴에서 "디버깅하지 않고 시작"을 선택하여 프로그램을 실행합니다.
d) 프로그램을 종료합니다. -> 세션 윈도우가 뜨면서 함수 호출 상황을 보고서로 만들어 줍니다.
- DevelopmentinWindows/APIExample . . . . 2 matches
= 윈도우즈 API를 이용한 예제 프로그램 =
=== API.cpp ===
LPCSTR szWindowClass = "API Window Class";
int APIENTRY WinMain(HINSTANCE hInstance,
wcex.lpszMenuName = (LPCSTR)IDC_API;
hWnd = CreateWindow(szWindowClass, "API", WS_OVERLAPPEDWINDOW,
MessageBox(hWnd, "Not support", "API", MB_ICONERROR | MB_OK);
=== API.rc ===
IDC_API MENU DISCARDABLE
LTEXT "API Windows Applicationnfor Development in Windows Seminar",
// Used by API.rc
#define IDC_API 101
- Direct3D . . . . 2 matches
CMyD3DApplication->RestoreDeviceObject() : 렌더링 방법을 세팅하는 부분
( 참고로 자신이 생성한 객체를 릴리즈하지 않으면, 프로그램 종료시 에러를 낸다. )
- DirectDraw/DDUtil . . . . 2 matches
["TheWarOfGenesis2R"]페이지의 개설에 따라 사용법을 모읍니다.
DXSDK에서 제공하는 함수 모음집.(ㅡ.ㅡa) (Direct Draw 의 Wrapping Class 가 되겠지요.)
- DoubleBuffering . . . . 2 matches
화면 전체를 한꺼번에 렌더링 한 다음 버퍼를 바꿔주는 방식을 이야기하는 것 보면 아마 Page Fliping 을 이야기하시는듯. 단, 이것은 GDI 로는 불가능하지 않을까요? ^^ DC 핸들을 우리가 직접 조작할 수는 없는 것이고.. 말 그대로, 버퍼를 바꾼다는 것은 화면에 표시해 주는 메모리를 가리키는 포인터의 값을 바꾸는 거니까. Page Fliping 은 DOS나 DX에서는 가능할지 몰라도 GDI 에서는 불가능한 방법일것이라는 개인적 생각. (DC에 Select 되어있는 Bitmap 을 다시 셋팅해주는 방법은 어떨까. 한번도 안해봤지만. --;) [[BR]]
- DrawingToy . . . . 2 matches
MFC를 익히기 위해 [강희경]이 고안해낸 프로그램.
단추 대신 키보드의 방향키를 이용한다.
- DylanProgrammingLanguage . . . . 2 matches
Dylan is an advanced, object-oriented, dynamic language which supports rapid program development. When needed, programs can be optimized for more efficient execution by supplying more type information to the compiler. Nearly all entities in Dylan (including functions, classes, and basic data types such as integers) are first class objects. Additionally Dylan supports multiple inheritance, polymorphism, multiple dispatch, keyword arguments, object introspection, macros, and many other advanced features... --Peter Hinely
- Eclipse . . . . 2 matches
||Ctrl+1||Quick Fix, 잘못 된 부분에 대하여 권장하는 수정 방법을 보여준다. 사고를 둔화 시킨다. --;; 예를들어 import가 안되었다 싶으면 시키라고 하고, 선언된 클래스가 없으면 만드는 것까지 나온다. 빨간줄 나오면 눌러보라. 가장 경악할 기능.||
||Ctrl+Space ||자동완성. 퀵픽스에 버금가는 사기 기능. 내가 무슨 기능을 쓸 수 있는지 자바독과 함께 보여주며 엔터만 치면 구현을 끝내주는 역할을 한다. 혹자는 퀵픽스와 자동완성, 그리고 JUnit만 있으면 어떤 프로그램이든 만들 수 있다고 한다.||
- EcologicalBinPacking/강희경 . . . . 2 matches
cout << "잘못된 입력으로 프로그램을 종료합니다.\n";
cout << "잘못된 입력으로 프로그램을 종료합니다.\n";
- EffectiveSTL/Iterator . . . . 2 matches
* 이 큰장에서는 각 반복자들의 특성과, 반복자를 효율적으로 쓰는 방법을 다룰 것이다.
* 그래서 이번 Item에서는 const_iterator -> iterator로 변환하는 법을 설명하고 있다. 반대의 경우는 암시적인 변환이 가능하지만, 이건 안된다.
- EightQueenProblemSecondTryDiscussion . . . . 2 matches
우.. 그리고 여전히 테스트 코드를 생각하기 어려웠던 부분이 실제 Queen 을 놓는 부분인데요. 다음과 같이 코드를 나열하고 재귀호출 부분에 대해서 유도를 하는 방법을 시도해봤습니다. 일종의 수열 찾는 방법이 되더군요. 음.. 이 부분에 대해서는 EightQueenProblem 에 대한 하나의 해를 알아놓고 시작한다면 TDD를 시도할 수 있을것 같다는 생각이 들긴 하는데. (문제는, 답을 구해놓고 나서야 이 생각이 났더라는. --;)
* 하고 나니 아쉬웠던점 - 여유가 있었는데, 만들고 나니 기존에 생각했었던 방법과 비슷하게 되어버렸다는 점. 좀 더 여유를 가지고, 현재 생각한 방법 자체가 복잡한 방법이 아닐까 생각하면서 더 쉬운방법을 생각해낼 수 있었을텐데.. 다른 사람들의 소스를 보니 Queen에 대한 대각선 처리 알고리즘 부분이 훨씬 더 단순하게 할 수 있겠더라는.
- EmbeddedSystem . . . . 2 matches
* 임베디드 시스템은 더 큰 시스템의 구성요소를 이루거나 사람의 개입 없이 동작하도록 기대되는 하드웨어와 소프트웨어이다. 전형적인 임베디드 시스템은 전원이 켜져 동작하기 시작하면 전원이 꺼질 때까지 멈추지 않는 특수한 용도로 사용하는 일부 응용 프로그램을 시동하는 롬에 들어 있는 소프트웨어를 포함하는 단일 보드 마이크로컴퓨터이다. 임베디드 시스템은 운영체제를 포함하거나 단일 프로그램으로 작성할 수 있을 만큼 단순할 수 있다. 시스템에 필요 없을 경우 키보드, 모니터, 직렬 통신, 대용량 기억 장치와 같은 일반적인 주변 장치나 사용자 인터페이스 소프트웨어를 지원하지 않는다.그리고 실시간성을 요구할 때도 있다.
- English Speaking/The Simpsons/S01E04 . . . . 2 matches
Police 2 : Good one, Moe. We're looking for a family of Peeping Toms...
Police 1 : That figures. Come on, you stupid dog.
- EnglishSpeaking/TheSimpsons/S01E01 . . . . 2 matches
Homer : I don't deserve you as much as a guy with a fat wallet...and a credit card that won't set off that horrible beeping.
Homer : Well, I would- I- I wanna do the Christmas shopping this year.
- EnglishSpeaking/TheSimpsons/S01E04 . . . . 2 matches
Police 2 : Good one, Moe. We're looking for a family of Peeping Toms...
Police 1 : That figures. Come on, you stupid dog.
- ExploringWorld/20040412-세상읽기 . . . . 2 matches
* 키워드 가상현실, 물리법칙, WebServices, SOP, ISO, .NET, J2EE, MS, SUN, IBM, BEA, Oracle, Java, CMM, SPICE 등
|| 재선 || 목이 마르다. || 프로그램 세계의 이면이 흥미롭다. || 뉴스를 보고 정보 획득을 해야 겠다. ||
|| 세환 || 시간이 빨리 갔다. || 치열한 시장싸움을 알아서 좋다. || 프로그램 공부 뿐이 아니라, 관심을 가지고 여러 정보를 예의 주시해야겠다. ||
- Favorite . . . . 2 matches
[(zeropage)SpiralArray]
[http://www.winapi.co.kr/ WINAPI]
- FifteenSecondsRule . . . . 2 matches
어떤 시스템/프로그램이 있을 때, 모든 개념적 단위(예컨대 패키지, 모듈, 클래스, 메쏘드 등)를 개발자 자신이 15초 이내에 설명할 수 있어야 한다는 "15초 룰"의 확장판이 꽤 유용할 때가 많습니다. 이런 식으로 설명을 모두 마쳤을 때는 소스 코드 전부를 설명한 셈이어야 합니다.
예를 들어, 경매 시스템이 있을 때, "이 시스템은 무얼 하는 것이냐?"라는 질문에 15초 이내에 깔끔하지만 '''완전한'''(complete) 대답을 할 수 있어야 하며, "그럼, 이 시스템에서 {{{~cpp Authentify}}} 서브 시스템은 뭘 하는 것이냐?"라는 질문에 역시 15초 이내에 완전한 대답이 가능해야 하고, "이 {{{~cpp FooBar}}} 객체는 무엇을 하는가?"라는 질문에 또 15초 이내의 대답이 나와야 합니다. 이런 식의 설명이 모두 끝났을 때, 소스 코드 '''전체'''를 훑은 셈이여야 합니다 -- 이게 용이하려면 프로그램의 구조가 이런 설명의 구조와 유사해야 합니다.
- FileInputOutput . . . . 2 matches
저 프로그램을 실행하면 output.txt가 생기면서 11이 그 안에 써진다.
저 프로그램을 실행하면 output.txt가 생기면서 11이 그 안에 써진다.
- FindShortestPath . . . . 2 matches
이문제를 통해 프로그램의 기술적인 문제는 습득하기 힘들거라고 생각되지만..
자신의 생각을 프로그램으로 어떻게 구현해야 되는가.. 에 대한 훈련으로는 큰 도움이 될것이라고 생각됨..
- FortuneMacro . . . . 2 matches
Fortune 매크로 플러그인은 GNU fortune프로그램을 이용한 매크로입니다.
- FreeMind . . . . 2 matches
인터페이스가 매우 간단해서 사용방법을 익히는 과정 필요없다. 설치 즉시 마인드 맵을 작성 할 수 있다.
== 프로그램 ==
- GTK+ . . . . 2 matches
GTK+ is free software and part of the GNU Project. However, the licensing terms for GTK+, the GNU LGPL, allow it to be used by all developers, including those developing proprietary software, without any license fees or royalties.
GTK+ has been designed from the ground up to support a range of languages, not only C/C++. Using GTK+ from languages such as Perl and Python (especially in combination with the Glade GUI builder) provides an effective method of rapid application development.
- GenericProgramming . . . . 2 matches
각 type에 대한 코드는 compile time에 compiler에 의하여 작성되어 진다.
- Genie . . . . 2 matches
[소수구하기/재니]
[SpiralArray/세연&재니]
- Gnucleus . . . . 2 matches
그누텔라 프로토콜에 기반을둔 윈도우용 프로그램. 다른 그누텔라 구현물과 비교하여 특별한 기능상의 장점은 없지만...
윈도우 네트워크 프로그래밍을 하는 사람이라면 한번쯤 소스를 통해서 윈도우의 메시지 드리븐을 최대한 이용한
- Gof/Command . . . . 2 matches
* 기본명령어들를 기반으로 이용한 하이레벨의 명령들로 시스템을 조직할 때. 그러함 조직은 transaction을 지원하는 정보시스템에서 보편화된 방식이다. transaction은 데이터의 변화의 집합을 캡슐화한다. CommandPattern은 transaction을 디자인하는 하나의 방법을 제공한다. Command들은 공통된 인터페이스를 가지며, 모든 transaction를 같은 방법으로 invoke할 수 있도록 한다. CommandPattern은 또한 새로운 transaction들을 시스템에 확장시키기 쉽게 한다.
- GofStructureDiagramConsideredHarmful . . . . 2 matches
Diagrams are seductive, especially to engineers. Diagrams communicate a great deal in a small amount of space. But in the case of the GoF Structure Diagrams, the picture doesn't say enough. It is far more important to convey to readers that a Pattern has numerous Structures, and can be implemented in numerous ways.
비단 패턴만이 그렇지는 않습니다. 조금은 다른 이야기를 해보고록 하지요. 사람으로부터 나온(derived) 어떤 유-무형의 것들은 그것을 만든 사람, 또 그 사람이 몸담고 있는 환경을 반영(reflection) 합니다. 예를들어, 실세계에서 집을 짓는다고 해봅시다. 거기엔 수많은 공법이 존재합니다. 또 하나의 공법을 이야기한다고해도 실제로 투입되는 사람들에따라 다양하게 나올 수 있습니다.(지난 2002년 1월 8일 뉴스에서는 측량할때마다 다른 토지 계산이 나오더군요) 조금더 엉뚱한 이야기를 해볼까요. 하나님의 말씀은 하나이겠지만, 성경은 해석하기에 따라 다릅니다. 또 그 하나하나의 성경은 하나지만 그를 믿는 사람이 받아들이기에 따라 다양해집니다.
- GuiTestingWithMfc . . . . 2 matches
CppUnit 을 이용한 MFC 에서의 GuiTesting (시도중. 결과는?)
// NOTE - the ClassWizard will add and remove mapping macros here.
- HardcoreCppStudy/두번째숙제 . . . . 2 matches
* 1학기 때 숙제로 만든 성적관리 프로그램을 객체지향으로 만들어봅시다. 스펙은 다음과 같습니다.
* 프로그램을 파일 하나에 다 때려넣지 말고, 헤더파일(클래스 선언), 클래스 구현부, main함수의 파일 3개로 나눠서 작성하세요.
- HelpForBeginners . . . . 2 matches
처음 위키위키를 방문하신다면 무작정 다른 페이지를 고치려 하지 마시고 [위키모래상자]같은 곳에서 위키위키에 사용되는 간단한 문법을 테스트해보시기 바랍니다.
위키위키의 문법을 지금 당장 알고싶으신 분은 HelpOnEditing 페이지로 가시기 바랍니다.
도움말은 HelpContents 혹은 HelpIndex를 참고하세요.
- HelpMiscellaneous . . . . 2 matches
=== UrlMappings ===
특정 URL을 fix해주는 기능을 제공합니다. 예를 들어 과거의 {{{http://foobar.org}}}였던 링크가 최근에 {{{http://foobar.com}}}으로 바뀌었다면 이를 UrlMappings에 등록해서 자동으로 잘못된 URL 정보를 fix할 수 있게 해줍니다. 이 기능은 단지 대치만 해주기 때문에 실제로 페이지 내용이 바뀌거나 하지는 않습니다.
- HelpOnActions . . . . 2 matches
모니위키는 액션이라는 확장기능을 제공합니다. 액션은 현재 보고 있는 페이지 혹은 전체 위키에 대한 특별한 확장 기능을 말합니다. 매크로와는 다르게 위키 페이지에 직접 매크로를 삽입해야 하는 것이 아니라 그 페이지를 다른 방식으로 보는 방법을 제공합니다. 예를 들어 페이지를 편집하는 기능를 `edit` 액션이라고 하며, 북마크를 하는 기능은 `bookmark`액션을 통해 이루어지고, 전체 검색, 제목 검색, 역링크 검색 등등 여러가지 기능을 제공합니다. 이러한 액션은 플러그인 방식으로 다른 기능을 손쉽게 확장할 수 있게 하여 위키의 풍부한 기능을 가능하게 만들어주고, 일부 액션은 페이지의 내용과 상관 없는 기능을 제공하기도 합니다. (페이지 지우기 기능은 DeletePage 혹은 페이지 이름을 바꿔주는 RenamePage 기능)
* `raw`: 페이지의 소스(raw)를 텍스트로 그대로 보여주는 액션. 위키 문법을 볼 수 있게 해준다.
- HelpOnProcessingInstructions . . . . 2 matches
== 프로세싱 인스트럭션 (PI) ==
모니위키 페이지를 처리할 때에 프로세싱 인스트럭션 (PI)에 의해 그 기능이 제어될 수 있습니다. 프로세싱 인스트럭션은 페이지의 맨 상단에 위치하며, "{{{#}}}" 문자로 시작하는 키워드(대소문자 구분없음)로 구성되며 인자가 선택적으로 붙을 수 있습니다. {{{##}}} 두개가 시작되는 줄은 주석줄로 처리됩니다.
지원되는 여러가지 프로세싱 인스트럭션 (PIs):
* '''markdown''' : markdown 문법을 지원합니다. 모니위키 1.1.3 이후
* '''textile''' : textile 문법을 지원합니다. 모니위키 1.1.3 이후
모든 PI는 페이지의 맨 상단에 위치해야 합니다. 특별히 {{{#redirect}}}는 가장 맨 윗줄에 위치해야 합니다. 주석임을 나타내는 {{{##}}}만은 페이지 어느곳에나 쓸 수 있습니다만, 중간에 쓰는 경우에는 `wiki` 포매팅 문서일 경우에만 {{{##}}}가 주석으로 인식됩니다.
- HelpOnTables . . . . 2 matches
테이블의 속성을 넣을 필요가 있는 경우가 있습니다. 예를 들어 테이블 셀의 색상이나 폭 등등의 몇가지 테이블 속성을 사용하면 테이블의 가독성을 높일 수 있을 것입니다. 이를 위하여 테이블 속성을 정해주는 문법을 지원합니다. 속성은 꺽쇠 괄호를 사용해 {{{<...>}}} 형태의 문법으로 `||` 마크 다음에 바로 붙여서 써주어야 합니다.
이것을 기본으로 하여서 좀 더 장황한 설정은 HTML 속성을 넣는 전통적인 방식과 비슷한 문법을 지원합니다. (HTML에서 지원하던 모든 테이블 속성이 지원되지는 않습니다.). 이 방식을 이용하면 테이블 색상이나 줄의 속성을 지정하 수 있습니다. 특별히 테이블의 너비를 지정하려면 {{{||<tablewidth="100%">...||}}} 를 테이블 시작을 알리는 맨 처음 `||` 다음에 써넣으면 되며, 줄의 배경색은 {{{||<rowbgcolor="#FFFFE0">...||}}} 와 같이 지정합니다. 여기서 볼 수 있듯이, 테이블에 대한 속성인지, 줄에대한 속성인지를 알리기 위해 {{{table}}} 혹은 {{{row}}}와 같은 접두어가 붙었습니다.
- HelpOnUpdating . . . . 2 matches
MoniWiki는 기본적으로 backup과 restore 액션을 지원하므로 다른 사이트로 이전하는 것을 쉽게 할 수 있으며, rcs를 설치하지 않은 위키에 대해서도 정기적은 backup만으로 자신의 위키 데이타를 비교적 안전하게 보존할 방법을 제공합니다.
아래는 `upgrade.sh`를 사용하지 않고 수동으로 직접 업그레이드 하는 방법을 설명합니다.
- HowBigIsIt?/하기웅 . . . . 2 matches
그래서 열심히 팩토리얼을 이용하여 모든 경우를 계산하는 프로그램을 만들었음~~
이럴 땐 두 원 사이의 거리를 이용한 풀이 방법이 통하지 않게 된다.(통하게 될려면 완벽한 예외처리가 필요하다)
- HowToBlockEmpas . . . . 2 matches
그 방법을 알아야 해결책이 나오지 않을까요?? -- 선호
* 이를 ZP 홍보기회로 이용한다. --a
- HowToCodingWell . . . . 2 matches
* 보통 코딩을 학교 프로젝트 아니면 과제때만 많이 하게 되는 데, 그 보다는 평소에 즐기듯(?) 코딩해야 합니다. 급하게 쫓기면서 하는 코딩은 결과물을 만들어 내기 위한 코딩이므로 생각하지 않고 코딩하게 됩니다. 평소에 자신이 필요한 프로그램(ex 선대계산기, 알송 리스트 자동 갱신 프로그램) 들을 느긋하게 코딩해 보면 급하게 코딩 하지 않기 때문에 더욱 많은 생각을 하면서 코딩을 할수 있습니다. 진정으로 실력이 느는건 이런 생각하면서 코딩하면서 늘지 않을까요? - [안혁준]
- IDL . . . . 2 matches
[CORBA] 의 경우 분산된 네트워크상에 따로 위치한 객체 간의 투명한 접근을 제공하는 서로 간의 약속이 필요하다. 이런 약속을 정의할 때 특정 언어([C], [C++], [Java] 등)에 의존하지 않는 인터페이스 정의 언어가 필요하게 되었는데, 그것이 바로 IDL(Interface Definition Language)이다. 서버와 클라이언트가 서로 통신을 하기 위해서 서버는 클라이언트에게 제공하는 서비스 인터페이스를 IDL 로 정의하게 되며, 클라이언트는 이런 인터페이스 정보를 활용하여 서비스를 활용하게 되는 것이다. CORBA 프로그램을 개발하기 위해서는 가장 먼저 IDL 을 정의해야 하는데, IDL 은 구현에 대한 정보는 포함하고 있지 않아 정의된 IDL 을 원하는 언어로
물론, 인터페이스를 정의하는 방법이 IDL 만 있는 것은 아니다. [Visibroker] 의 경우 [Caffeine] 이라는 것을 이용하면 IDL 을 사용하지 않아도 되며, Java 의 RMI 나 RMI-IIOP 를 이용해면 IDL 을 몰라도 인터페이스를 정의할 수 있다. 하지만, IDL 은 OMG에서 규정하고 있는 인터페이스 정의 언어의 표준이고 개발자가 익히기에 어렵지 않은 만큼 CORBA 프로그램을 할 때는 꼭 IDL 을 사용하도록 하자.
- IntelliJ . . . . 2 matches
* http://www.jguru.com/forums/home.jsp?topic=IntellijIDEA
Intelli J 에서는 외부 cvs client 를 이용한다. 고로, wincvs 등을 깔고 난뒤 도스 프롬프트용 cvs 를 연결해줘야 한다. (CVS - Project 연동부분에 대해서는 ["IntelliJ"] 쪽이 빨리 버전업이 되었으면 한다는.. ["Eclipse"]의 CVS 연동기능을 보면 부러운지라~)
|| ctrl + Q || Quick Doc API 보기 ||
- InterMap . . . . 2 matches
Nappingin http://nappingin.cafe24.com/wiki/wiki.php/
- InterWiki . . . . 2 matches
* [http://pikie.darktech.org/cgi/pikie.py PikiePikie]
- InternalLinkage . . . . 2 matches
Consider for a moment why you'd declare an object to be static. It's usually because you want only a single copy of that object, right? Now consider what inline means. Conceptually, it means compilers should replace each call to the function with a copy of the function body, but for non-member functions, it also means something else. It means the functions in question have internal linkage.
9) In July 1996, the °ISO/ANSI standardization committee changed the default linkage of inline functions to external, so the problem I describe here has been eliminated, at least on paper. Your compilers may not yet be in accord with °the standard, however, so your best bet is still to shy away from inline functions with static data. ¤ Item M26, P61
- IsThisIntegration?/김상섭 . . . . 2 matches
double pie = 3.141592653589793238462643383279 , a, b, c, d;
d = pie/12 - 1.0/4.0;
- JTDStudy . . . . 2 matches
===== Opinion =====
===== Opinion =====
- JTDStudy/첫번째과제/상욱 . . . . 2 matches
* TDD로 만들려고 하니 적응도 안되고 해서 시간이 꽤나 많이 걸리네요^^; 프로그램을 위한 테스트라기 보단 테스트를 위한 프로그램이 되어지는 느낌이 팍팍;;; 하지만 장점이 많은 방법이라 앞으로 더 연습을 해 봐야겠네요~ - [상욱]
- JavaStudy2002/영동-3주차 . . . . 2 matches
[http://zeropage.org/pub/j2sdk-1.4.1-doc/docs/api/java/util/ArrayList.html ArrayList] 나, [http://zeropage.org/pub/j2sdk-1.4.1-doc/docs/api/java/util/HashMap.html HashMap] 은 보통의 자바 책들에서 나오는 Vector 와 Hashtable 과 동일한 역할을 합니다. 1.3에서 추가된 collection framework에서 위의 두가지를 더 추천해서 이용했습니다.
- JavaStudy2003/두번째과제 . . . . 2 matches
* 이번 과제의 목표는 '''"자바와 친해지기"''' 입니다. 저번 수업에서 간단히 자바의 OOP문법을 설명해 드렸는데요. 그 밖의 소스나 아니면 참고자료, 책 등을 사용해서 간단한 프로그램을 만들도록 하겠습니다.
- JavaStudy2003/첫번째과제 . . . . 2 matches
* 자바로 "Hello, World!" 를 출력하는 프로그램을 작성하세요.
* 위 세개는 알아보기만 해도 되겠지만 마지막 프로그래밍은 힘들꺼라고 예상합니다^^; 자바라는 프로그램을 하기 위해선 어떤것을 설치해야 하고 그것을 또 컴파일하고 실행시키는데 있어서 애로사항이 많을꺼라고 봅니다. 스스로 찾아서 해 보세요. 과제 제출은 위키에 받겠습니다.
- Knapsack . . . . 2 matches
그리고 그 때 버는 돈은 얼마인지 구하는 프로그램을 작성하세요. [[BR]]
그리고 누군가가 만든 프로그램이 옳다는 것을 테스트하기 위해서는 이를 자동화하는 것이 편할 것이고, 이것을 위해서는 인풋과 아웃풋을 좀 단순화하는 것이 좋지 않을까 합니다. ICPC의 문제들을 구경해 보세요.
- LIB_2 . . . . 2 matches
이 프로그램이 복귀 가능하게 만들 경우 TSR을 이용한다..근데 지금은 필요 없는듯...
- LUA_6 . . . . 2 matches
__metatable : metatable을 보호하기 위한 metatable 프로그램이 metatable을 수정하지 못하도록 하기 위해 재 정의 해주면 된다.
2. 메타 테이블을 이용한 클래스
- LinkedList/영동 . . . . 2 matches
Node(){} //An empty constructor to reduce warning in compile time
Node(){nextNode='\0';} //An empty constructor to reduce warning in compile time
- MFC/MessageMap . . . . 2 matches
* 사용 예 : 어떤 클래스가 view 클래스의 멤버 변수이다. 해당 클래스는 파일을 다운로드 받는 클래스인데 해당 클래스에서 다운로드가 끝났을 경우 view에 있는 serialize 함수를 실행해야 한다. 허나 현재 view클래스가 그 해당 클래스를 멤버로 가지고 있기에 include 로 해당 클래스에서 view 클래스를 포함할 수도 없고, 또 view 클래스의 현재 실행되는 객체를 얻을 방법도 마땅히 없다. 이때 해당 클래스에서 다운로드가 끝난 시점에서 다운로드가 끝났다는 메시지를 발생시켜서 view에 있는 serialize 함수를 실행시킬 수 있다. 이게 바로 사용자 정의 메시지 발생을 이용한 사례..
// NOTE - the ClassWizard will add and remove mapping macros here.
- MFCStudy_2001/MMTimer . . . . 2 matches
* 이것을 해결하기 위해 MultiMedia Timer를 쓰게 됩니다. Devpia에서 본 바에 의하면
* fuEvent : 타이머가 호출되는 방법을 넣습니다.
- MFCStudy_2002_1 . . . . 2 matches
아아~ 오목을 짜는데~~전에는 무식한 방법으로 돌을 하나 놓을때마다 판 전체를 검색하는...방법을 사용했는데..[[BR]]
이번에는 돌을 중심으로 좌우양대각선을 검사하는 방법을 쓸라구요~~[[BR]]
- MIT박사가한국의공대생들에게쓴편지 . . . . 2 matches
그들이 학교에 가면 차이는 더 벌어집니다. 우리나라 학생들이 암기력과 약간의 사고력, 이해력의 계발에 중점을 두는 동안, 이곳에서는 창의력, 상상력, 사회성 등을 키워나갑니다. 바로 이런것들이 거름이 되어 아까와 같은 천재들이 대학원에서 두각을 나타내는 것이 아닌가 합니다. 한마디로 우리나라 학생들이 남들이 만들어놓은 포장된 지식을 주입받는 동안, 이 곳 학생들은 생각하는 법을 배웁니다. 자발적 참여 및 토론에 의한 학습, 스스로 탐구하는 학습, 작문력, 발표력, 논리적 사고가 중요시 되는 교육을 받고 이들은 비록 미분 적분에 대하여 우리보다 늦게 배울망정 인생에서 창의력이 극대화되는 20대가 되면 어렸을때 생각하는 법을 배웠기에 스폰지처럼 지식을 습득하고 새로운 것을 창조해나갑니다.
- Marbles . . . . 2 matches
각 상자에는 정확하게 주어진 용량만큼의 구슬을 집어넣을 것이며, 총비용은 최소한으로 줄였으면 한다. 여러 상자에 구슬을 나눠 담는 가장 좋은 방법을 찾아보자.
입력에 있는 각 테스트 케이스에 대해 비용을 최소화할 수 있는 해법을 출력한다(한 줄에 테스트 케이스 하나씩). 해법이 있으면 두 개의 음이 아닌 정수 m1, m2를 출력한다. 이때 mi는 타입 i인 상자의 개수를 의미한다. 해가 없으면 "failed"를 출력한다.
- Minesweeper/이도현 . . . . 2 matches
방법은 여러가지가 있겠지만 아주 간단하게 2차원배열을 잡고 8가지 방향을 모두 조사해보는 방법을 사용하였다.
이번에는 처음으로 Presentation Error를 여러번 받았다. 이것은 프로그램이 도출하는 답은 맞으나 출력형식이 잘못된 경우 발생한다.
- MobileJavaStudy/Tip . . . . 2 matches
== 일반적인 프로그램 템플릿 ==
이 두개를 안하면 핸드폰이 뻗는 수가 있다고 함. 뻗게 하는 프로그램이라면 머 전혀 안해도 무방하겠군..;; --["창섭"]
- ModelingSimulationClass_Exam2006_1 . . . . 2 matches
(a) (5 points) Peak Value 구하기 - '''그래프의 가장 높은 지점의 높이를 구하라는 문제로 파악했음. pdf 전체의 넓이가 1이라는 사실을 이용하는 문제'''
(b) (5 points) Expectation 구하기 - (계산이 굉장히 지저분함. 소수점 난무)
- MoreEffectiveC++/C++이 어렵다? . . . . 2 matches
[http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fEfficiency#head-fe2478216366d160a621a81fa4e3999374008afa Item 24 Virtual 관련], [http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fMiscellany#head-ce86e4dc6d00b898731fbc35453c2e984aee36b8 Item 32 미래 대비 프로그램에서 String문제]
[http://www.research.avayalabs.com/user/wadler/pizza/gj/]
- NSIS/예제3 . . . . 2 matches
; 윈도우 프로그램추가/삭제 관리자를 위한 Uninstall 관련 key를 레지스트리에 저장
== compile ==
- NSIS_Start . . . . 2 matches
* 프로젝트 이름 : NSIS Start (About Nullsoft ({{{~cpp SuperPiMP}}} | Scriptable) Install System)
* 주제 : Installer Program 에 대한 이해를 위해. free software 인 Nullsoft ({{{~cpp SuperPiMP}}} | Scriptable) Install System 영문메뉴얼을 보면서 한글 메뉴얼을 만든다.
* 목표 : 한글 메뉴얼 만들기. 간단한 프로그램 배포본 만들기.
* ["NSIS/예제1"], ["NSIS/예제2"], ["NSIS/예제3"] - NSIS를 이용한 예제
- NeoZeropageWeb . . . . 2 matches
위에꺼 어떤 것을 하든 위키에 내장할 수있도록, 뭐 매크로로 지원할수 있게 하면 좋을듯,, 예를들어서 특정 문법을 쓰면 게시판이 하나 생기는거다. -_-;, 특정 문법을 쓰면 트랙이 지원되고,, 태터툴즈가 오픈소스면 그 부분만 가져다가 매크로로 제작하는것도 좋을듯... 매크로로 넣는것은 소스 이해 안해도 상관 없으니깐 ~ - [(namsang)]
- NumericalAnalysisClass . . . . 2 matches
http://images.amazon.com/images/P/1558606793.01.__PE_PIm.arrow,TopLeft,-2,-19_SCMZZZZZZZ_.jpg wiki:ISBN:1558606793
하지만 이 책은 다르다. 어떤 문제를 접했을 때 어떻게 프로그램을 새로 만들어 내야하는지, 디자인은 어떻게 해야하고, 훌륭한 프로그램을 어떻게 만드는지를 말하고 있다. 게다가 OOP를 "정말" -- 시늉으로써만이 아니고 -- 사용한다. 모든 코드가 Java와 Smalltalk 양자로 쓰여있는 점도 큰 장점이다.
- NumericalAnalysisClass/Exam2002_2 . . . . 2 matches
1. 주어진 함수 f(x) = x^3 + x - 4 이 구간 [1,4] 에서 하나의 해를 갖을 때, 그 근사값이 10^-4 의 오차 한계에서 구하기 위해 이분법 (bisection method) 을 적용하였을 때 최대 반복횟수를 계산하시오.
b) 여인수를 이용한 determinant 를 계산하시오.
- One/박원석 . . . . 2 matches
1부터 10까지 합 구하기
1부터 10까지의 총곱 구하기
- OurMajorLangIsCAndCPlusPlus/2005.12.22 . . . . 2 matches
- 프로그램, 컴퓨터, 프로세스, 운영체제
- 프로그램 카운터
- OurMajorLangIsCAndCPlusPlus/locale.h . . . . 2 matches
char* grouping; "" LC_NUMERIC
char* mon_grouping; "" LC_MONETARY
- OurMajorLangIsCAndCPlusPlus/print/하기웅 . . . . 2 matches
puts를 통해 글을 찍는 방법을 배웠고 fputs, putchar, _fcvt등에 대해서 알게 되었다. 코드가 지져분하게 만들어졌지만 앞의 내용과
내가 위키 사용법을 잘 몰라서 올리는 법좀 붙여쓰기해서 사용했더니..
- PHP Programming/HtmlTag . . . . 2 matches
*ACTION=".." - 사용자의 입력정보를 받아서 처리하는 서버에 담김 CGI프로그램의 위치
*METHOD=".." - 사용자 입력정보가 어떤 방법으로 CGI프로그램에 전달하게 할 것인지 지정.(POST, GET 두가지 값 사용)
- Perforce . . . . 2 matches
프로그램은 서버, 클라이언트 환경으로 관리되며, 서버는 소스의 모아서 관리한다. 서버 프로그램은 유닉스, 맥, MSWin 버전으로 제공된다. 클라이언트는 GUI, CMD 버전의 툴을 지원하며 다양한 OS 에서 이용가능하다. 또한 IDE 와 연동역시 지원한다. (IDE에는 3dmax, maya, photoshop, office 등을 포괄하는 방대한 시스템)
- PersonalHistory . . . . 2 matches
* [SmallTalk]다 프로젝트. Feat. [톱아보다], 매주 금요일 10시 모임. [SmalltalkBestPracticePatterns]를 공부하면서 [SBPPSummary]페이지의 완성과, 자판기프로그램 제작이 목표.
* [ProjectEazy] - AI를 이용한 3살짜리 여자아이 '이지(Eazy)' 만들기
- PowerOfCryptography . . . . 2 matches
정수 http://acm.uva.es/p/v1/113img1.gif 과 http://acm.uva.es/p/v1/113img2.gif 이 주어졌을때, 당신은 http://acm.uva.es/p/v1/113img3.gif 를 구하는 프로그램을 작성해야 합니다. 이 프로그램에서 주어진 n과 p에 대하여, p는 항상 http://acm.uva.es/p/v1/113img5.gif 형태를 갖습니다. (여기서 k는 당신이 찾아야 될 정수입니다.)
- PowerOfCryptography/조현태 . . . . 2 matches
음.. 다른방법을 찾아야 하나.^^;
cout << "결과값에 1을 입력할경우 프로그램이 끝납니다.\n";
- PracticalPython . . . . 2 matches
Python을 이용해 쓸모있는 프로그램을 만드는 과정을 보여주는 책이다. 따라가기 좋을 뿐 아니라, 만들어 놓은 프로그램을 발전시킬 수 있도록 유도한다.
- PrettyPrintXslt . . . . 2 matches
<span class="xmlverb-pi-name">
<span class="xmlverb-pi-content">
- PreviousFrontPage . . . . 2 matches
MoinMoin is a Python WikiClone, based on PikiPiki. The name is a common German slang expression explained on the MoinMoin page. If you run a Wiki using MoinMoin, please add it to the MoinMoinWikis page.
/!\ Please see Wiki:WikiForumsCategorized for a list of wikis by topic.
You can edit any page by pressing the link at the bottom of the page. Capitalized words joined together form a WikiName, which hyperlinks to another page. The highlighted title searches for all pages that link to the current page. Pages which do not yet exist are linked with a question mark: just follow the link and you can add a definition.
- PrimaryArithmetic/sun . . . . 2 matches
== 응용프로그램으로 ==
문제 풀이를 위해서 별다른 알고리즘이 아닌 현실에서의 덧셈 방법을 사용했고, 코드량이 별로 되지 않음에도 1시간이 걸린것은 도중에 msn으로 친구과 채팅을 하며 했기 때문이다. 본인이 느끼기에는 msn을 얼마 하지 않았던것 같은데 실제로는 시간이 꽤 지나있는걸 보면 아인슈타인의 상대성원리에 따라 시간이 흐름을 알 수 있다. 직장인의 경우 이것을 좀 더 일반화 해보면, '왠지 오늘 하루 일하기 싫다'라고 느껴지고, 휴가를 쓸 수 없을땐 근무중에 메신저를 하면 시간이 금방 감을 알 수 있겠다.
- ProgrammingPartyAfterwords . . . . 2 matches
먼저, 김창준씨가 앞으로 나와서 인사를 하고 이 파티의 의의를 설명했다. 그리고는 바로 파티의 스케쥴과 간략한 참가방법을 설명했다. 멘터(Mentoror)와 퍼실리에이터(Facilliator)의 역할, 소개 등이 있었고, 심사방법이나 심사 요소에 대한 자세한 설명이 있었다..
시간이 좀 흘렀을 때, 희록님의 생각은 '우리 모두 이 프로그램을 짜는데서 왜 알고리즘이 사용되어야 하는지 모르고 있다. 이는 문제를 제대로 파악하지 못했다는 것을 의미한다' 라는 생각을 하였다. 그 때, 누군가가 입력 형식에 관해서 Mentor에게 물었다. 하지만 아쉽게도 입력형식에 대해서 명확한 답을 얻을 수는 없었지만, 몇가지 새로운 사실들을 알수 있었다. 하지만 진행은 계속 지지부진하게 되었다. 희록님은 다시 그것을 깨고자 "CRC카드를 한번 사용해서 문제를 다시 한번 생각해보자"라고 하였다. 우리는 CRC카드를 작성하기 시작하였고, 우리가 CRC카드를 이용해서 시뮬레이션을 실행해보고서는 요구사항을 분석하는데는 크게 도움이 되지 않았지만, 우리가 프로그래밍시에 어떤 객체들이 필요할지와 그 속성들에 대해서는 약간 명확해졌다.
- ProgrammingPearls/Column1 . . . . 2 matches
비트맵, 혹은 비트 벡터라 불리우는 방법이 유용할듯 싶다. 예를 들어 맥시멈 10미만의 숫자라 할때에, {1,2,3,5,8}을 표현해 보면, (0 1 1 1 0 1 0 0 1 1)이 된다. 있으면 1, 없으면 0인 것이다. 한 숫자당 1비트만 할당을 해서, 그것의 인덱스로 처리를 하는 것이다. 앞에서도 말했듯이, 미니멈과 맥시멈의 너비가 작고, 같은 숫자가 없으며, 관련된 데이터가 없다는 측면에서 이 방법을 쓸 수 있는 것이다. 대강의 코드는 다음과 같다.
이것의 수행시간은 Θ(n)이다. 이 챕터는 문제를 주의 깊게 분석하다 보면, 가끔 엄청난 이득을 가져다 줄때가 있다는 교훈을 주고 있다. 문제 정의는 문제 풀이의 90프로다. 일반적으로 많은 공간을 사용하면 적은 시간이 소요된다고 한다. 그런데 비트맵 소트는 시간도 줄고, 공간도 줄어들었따. 적은 데이터를 다루는 것은, 그것을 수행하는 데에 더 적은 시간이 든다는 것이다. 그리고 데이터를 디스크에 두기 보다는 메모리 상에 두는 것이 디스크 액세스 같은 시간 걸리는 일을 줄일 수가 있는 것이다. 프로그램을 간단하게 짜자. 유지보수도 쉽고, 견고할 것이다.
- ProgrammingPearls/Column5 . . . . 2 matches
* 큰 프로그램에서는 툴에서 제공하는 디버깅을 쓰지만, 이렇게 작은 알고리즘 같은 것에서는 print문 같은걸 쓰는게 편하다고 한다.
* Debugging : 발판이랑 고립된 프로그램이나, 임베디드된 곳에서는 하기가 힘들다. Column5에서 설명한다.
- ProjectEazy . . . . 2 matches
이지(본명). 어린 아이 수준의 말을 하는 프로그램을 만드는게 목표.
현재 임신중입니다. 프로그램이 완성되는 그 날을 생일로 하려 합니다. :)
- ProjectSemiPhotoshop/Journey . . . . 2 matches
* 상민이와 한 프로그램의 스타일이 달라서 나중에 세미 포토샵을 공동을 작업할 때에는 어느 정도 비슷하게 맞춰야할 것으로 보여..-.ㅡ 아직 뭘 모르는 나의 눈에는 그렇게 보였음.
* 한일 : 3시간 정도의 상민과 현민의 Alcanoid SpikeSolution 작성 - 자료실 스크린샷
- ProjectTriunity . . . . 2 matches
=== 프로그램 소스 및 문서 (첫번째) ===
=== 프로그램 소스 및 문서 (두번째) ===
- ProjectVirush/Idea . . . . 2 matches
첫째 '실시간'이다. 실시간으로 돌아가는 프로그램은 커다란 제약을 가지게 된다. 무엇보다 '슈퍼 울트라 복잡한 연산을 해서는 안된다.'는 것이다. 맵이 너무나도 큰 나머지, 또는 맵을 검색하는 알고리즘이 너무 자세한 나머지 "왼쪽 끝에서 오른쪽 끝까지 이동하도록 명령하니 1분동안 길을 찾느라 멈추었어요." 라는 소리를 들어서는 안된다. 물런 이런 과장된 일은 없겠지만, 실시간으로 진행되는 만큼 끊김없이 느껴질 수 있는 부드러운 연산이 가능해야 한다는 것이다. 더욱이 멀티플레이인 만큼 이 문제는 더욱더 중요해 진다. 플레이어 1이 복잡한 연산을 수행시켜버렸다고 해서 플레이어2까지도 버벅되서는 조금 곤란해 진다. 이러한 문제를 감안해서 어떻게든 연산을 빠르게 만들어야 한다.
페로몬 방법에서는 사용자가 홀로 떨어진 백혈구를 습격하고 도망가는 게릴라 수법을 쓴다면 당해내지 못할 것 같기도 하네요. 일단 알려진 바이러스는 다음번에 무조건 잡을 수 있게 하는 걸까요?
- ProjectZephyrus/Client . . . . 2 matches
+ ---- MainSource - 메인 프로그램 소스 & JCreator 프로젝트 화일이 있는 디렉토리
+ ---- TestSource - 라이브러리를 익히기 위해 만은 예제 프로그램들이 있는 디렉토리
- PyIde . . . . 2 matches
* Prototyping & 외부 공개소스 Review & Copy & Paste 하여 가능한한 빠른 시간내에 원하는 기능 구현법이나 라이브러리들을 연습하여 익힌뒤, Refactoring For Understanding 을 하고, 일부 부분에 대해 TDD 로 재작성.
* 인터프리터에서 타이핑한 내용 화일로 저장하기 ( 이거 되는거 있나? python 사용법을 몰라서 )
- PyIde/SketchBook . . . . 2 matches
하지만, 손가락 동선의 경우 - ctrl + O 를 누르고 바로 메소드 이동을 한다. 일반 이동도 메소드 중간 이동은 CTRL +커서키. (이는 VIM 에서의 W, B) 위/아래는 커서키. 클래스로의 이동은 CTRL+SHIFT+T. Source Folding 도 주로 Outliner 에 의한 네비게이팅을 이용한다면 별로 쓸 일이 없다. 보통 의미를 두고 하는 행동들은 클래스나 메소드들 단위의 이동이므로, 그 밑의 구현 코드들에 대해 깊게 보지 않는다. (구현코드들에 대해 깊게 보는 경우가 생긴다면 십중팔구 Long Method 상황일것이다.)
Python 으로 HTML Code Generator 를 작성하던중. 좀 무식한 방법으로 진행했는데, 원하는 HTML 을 expected 에 고스란히 박아놓은 것이다. 이는 결과적으로 test code 를 네비게이팅 하기 어렵게 만들었고, 해당 Generating 되는 HTML 의 추상도도 상당히 낮게 된다. 한화면에 보여야 할 HTML 데이터도 많아야 한다. 이는 결국 내가 에디터 창을 최대로 놓게 만들더니, 더 나아가 에디터 창의 폰트 사이즈을 11에서 8정도로 줄이고 모니터를 앞당겨 보게끔 만들었다. (15인치 LCD 모니터여서 해상도가 최대 1024*768 임.) 해당 상황에 대해 사람이 맞추는 것이 좋을까, 또는 툴의 Viewing 이 도움을 줄 방법이 있을까, 또는 사람이 이를 문제상황으로 인식하고 프로그램 디자인을 바꾸게끔 하는것이 좋을까.
- PythonFeedParser . . . . 2 matches
PHP 진영에서는? MagpieRSS 를 이용하면 될듯. http://magpierss.sourceforge.net/
- PythonThreadProgramming . . . . 2 matches
print string," Now Sleeping after Lock acquired for ",sleeptime
print string," Now releasing lock and then sleeping again"
- RUR-PLE . . . . 2 matches
* 사람들이 읽기 쉬운 프로그램을 작성해야 한다.
* 컴퓨터 프로그램을 작성할때는 반복을 하지 마라.
- RUR-PLE/Maze . . . . 2 matches
pick_beeper()
pick_beeper()
- RandomWalk . . . . 2 matches
바퀴벌레는 임의의 한 점에서 시작하여서 임의의 방향으로 움직이게 된다. 이미 지나갔던 자리에 다시 갈 수 있으며 프로그램은 바퀴벌레가 각 위치에 몇번 갔는지 기억하여야 한다. 프로그램은 바퀴벌레가 모든 지점에 적어도 한번 이상 도달하였을 경우 끝난다. 바퀴벌레는 가로, 세로, 대각선으로 한칸 씩만 움직일수 있으며, 바퀴벌레가 움직이는 방향을 랜덤하게 만드는 것은 각자가 생각해 보도록 한다.
- RandomWalk2/Vector로2차원동적배열만들기 . . . . 2 matches
음..--; 재동이한테 2차원 동적 배열 만드는 방법을 제공한 이유로..--; 책임을 지겠습니다 ㅠ.ㅠ 근데 다 그렇게 쓰던데..--;
* [http://www.cuj.com/articles/2000/0012/0012c/0012c.htm?topic=articles A Class Template for N-Dimensional Generic Resizable Arrays]
- RegressionTesting . . . . 2 matches
소프트웨어가 개발됨어 감에 따라, 문제의 재출현은 불행히도 아주 일반적인 경험이다. 때때로, 그것은 고친 것이(fix)가 나쁜 보정 작업(poor revision control practice)들에 (혹은 revision control에서 사람의 단순 실수) 의하여 사라지기 때문에 발생한다. 그렇지만 바로 문제에 대한 고친것이 존재하면, 소프트웨어는 '''깨지기 쉬워(fragile)''' 해진다.- 만약 어떠한 다른 변화가 프로그램에 가해지면, 고친 것(fix)은 더이상 동작하지 않는다. 결국, 문제를 잘 알지 못한 상태에서, 재디자인된 몇가지 인자들이 있을때, 기존의 구현의 인자들 속에서 재디자인된 부분에서는 동일한 실수들이 발생할 것이다.
그래서 대다수의 소프트웨어 개발 시점 중에는 버그를 고쳤을때 훌륭한 방법인가, 버그가 재작성되거나, 버그가 프로그램상의 하부 변화 이후에 규칙적으로 실행되는지 '''드러내는 테스트'''에 대하여 훌륭한 실행 방법들을 제시한다. 몇몇 프로젝트(내 생각에 Mozilla경우, Eclipse도 같은 시스템)는 자동화된 시스템으로 자동적으로 모든 RegressionTesting들을 규칙적으로(보통 하루나 주말단위로) 실행하고, 조사하도록 세팅되어 있다.
- STL/list . . . . 2 matches
* iterator 를 이용한 순회는 containter에 공통점이다.
=== 프로그램의 예 ===
- STL/vector . . . . 2 matches
// for 에서 반복자를 이용한 순회 1
// for문에서 인덱스를 이용한 순회
- Self-describingSequence/1002 . . . . 2 matches
이에 대해서 다르게 representation 할 방법을 생각하다가 다음과 같이 representation 할 방법을 떠올리게 됨.
def findGroupIdx(table,n,startPos=0):
theGroupIdx = findGroupIdx(table,i)
repeat = theGroupIdx
return findGroupIdx(table,n)
풀고 나니, 그래도 역시 1000000000 에 대해서는 굉장히 느림. 느릴 부분을 생각하던 중 findGroupIdx 부분이
def findGroupIdx(table,n,startPos=0):
if n<x: return findGroupIdx(table[:midIdx],n,startPos)
else: return findGroupIdx(table[midIdx+1:],n,startPos+midIdx+1)
binary search 로 바꾸고 나서도 역시 오래걸림. 다른 검색법에 대해서 생각하던 중, findGroupIdx 함수 호출을 할때를 생각.
class FindGroupIdxs:
finder = FindGroupIdxs(table)
theGroupIdx = finder.find(i)
repeat = theGroupIdx
- ServerBackup . . . . 2 matches
* (./) http://www.pixelbeat.org/docs/screen/
* 문제 ~ DNS Server 가 죽었음 (or 잘못 설정되어 있음 165.194.35.222 서버 확인 필요) 그래서 주소 기반으로 외부로 ping을 날릴수 없다.
- SibichiSeminar/TrustModel . . . . 2 matches
* 음.. 어려운 내용이었습니다. 추상적으로 이해하고 끄덕끄덕... 견문이 좁은 탓이겠지요. ㅜㅜ 뒷부분은 재밌었습니다. 지난 주에 언급했던 커뮤니케이션의 실패와 관련이 있을지도... 버전 관리 얘기도 나왔는데, 그 부분이 궁금하네요. 그렇다 할만한 팀워크를 해본 적이 없어서요. 코드를 구역 별로 나눠서 동기화하는 방법이 적절할 것 같은데. 이런 일을 돕는 프로그램이 있는거죠? -_-; - [정진경]
* 세미나 주제가 참 놀라웠습니다. 페이스북을 이용해 관심사가 같은 사람들을 엮어주는 앱은 이미 나와있지만, 이건 일일히 사용자가 입력을 해야하는데, TrustModel은 프로그램이 알아서 다해주는것 같더군요. 지식이 얇아서 여기까지밖에 이해 못했습니다. 꺼이꺼이. 세미나 막간에 넣은 M-16인용 개발자-기획자-디자이너의... 뭐라고 해야하나요. 암튼 재밌게 잘 봤습니다. 삼위일체가 답이군요. 하하하하.. 정확한 커뮤니케이션은 정말 힘든것 같아요. 새내기 다운 새내기가 없다는 말씀을 자꾸 하셨는데.. 저 새내기 맞아요 ㅜㅠ C언어도 학교 오고나서야 처음으로 알았어요 ㅜㅠ - [고한종]
- SignatureSurvey . . . . 2 matches
HTML Template 부분을 Generating 하는 부분을 하던중, 디자이너가 툴로 만든 HTML 코드를 분석해볼때 SigntureSurvey 의 방법을 적용해보면 어떤 일이 일어날까 의문이 들었다. 그래서 간단하게 실험해보고, 어떠한 View 를 얻을 수 있을까 구경해보다.
정확히 분석을 한 것은 아니지만. <> 태그 안으로 쓴 글자수가 같다면 화면상에서도 비슷한 것을 보이게 하기 위해 C & P 를 했을 확률이 높다. 그러면 그 부분에 대해서 looping 을 하는 식으로 묶으면 될것 같다. 종이로 찍어놓고 보면 반복되는 부분에 대해서 일반화된 패턴이 보인다는 것을 알 수 있다. 그 부분에 대해 적절히 1차적으로 검색을 하고, generating 할때의 단위들을 끄집어내면 되는 것이다.
- Slurpys . . . . 2 matches
스러피(Slurpy)란 어떠한 속성이 존재하는 문자열이다. 문자열을 읽어서 스러피가 존재하는지를 판단하는 프로그램을 작성해야 한다.
정확하게 이름은 생각나지 않지만 디지털공학 시간에 예제로 해보았던 자판기나 신호등 문제의 접근 방법을 사용하면 재미 있을것 같습니다. - [이승한]
- SmallTalk/강좌FromHitel/Index . . . . 2 matches
| 1.1. 프로그램과 프로그래밍 언어 <#1>
| 1.3. Smalltalk 맛보기 프로그램
- SmallTalk/강좌FromHitel/차례 . . . . 2 matches
| 1.1. 프로그램과 프로그래밍 언어 <#1>
| 1.3. Smalltalk 맛보기 프로그램
- SmallTalk_Index . . . . 2 matches
| 1.1. 프로그램과 프로그래밍 언어 <#1>
| 1.3. Smalltalk 맛보기 프로그램
- SmalltalkBestPracticePatterns/DispatchedInterpretation . . . . 2 matches
Objects change all this. How you distribute responsibility among objects is the critical decision, encoding is a distant second. For the most part, in well factored programs, only a single object is interested in a piece of information. That object directly references the information and privately performs all the needed encoding and decoding.
객체들 사이에서 어떻게 책임을 분배하는가는 중요한 결정이다, 인코딩은 그 다음이다. 잘 요소화된 프로그램들의 대부분에서, 오직 하나의 객체만이 한 조각의 정보에 관심을 가진다. 객체는 정보를 직접적으로 참조하고 사적으로 필요한 모든 인코딩과 디코딩을 수행한다.
- SoJu . . . . 2 matches
[DevCppInstallationGuide] // 인스톨 가이드 입니다. <- 필수!!
[http://winapi.co.kr/clec/cpp1/cpp1.htm winapi.co.kr의 C기초강좌] 매우 자세하며 양이 많다.
- SwitchAndCaseAsBadSmell . . . . 2 matches
사실은 이런 종적 상태로서의 프로그램이 중요한 것이 아니고, 어떻게 이런 프로그램에 도달할 수 있었는지, 그 사고와 프로그래밍의 과정이 중요합니다.
- SystemEngineeringTeam/TrainingCourse . . . . 2 matches
* 서민관 - trello 쪽에 있는 서버 운영체제 요건을 봤을 때 대부분이 큰 차이가 없는 것 같고 안정성 면에서 CentOS, 업데이트 속도 면에서 Fedora/Ubuntu 라는 느낌이라서 둘 중에 어느 쪽에 중점을 두느냐에 따라 결정이 갈리는 것 같습니다. 이런저런 생각의 결과 Ubuntu 계열을 사용하기로 결정했습니다. 이유는 여럿 있는데, 첫째는 지금까지 Ubuntu를 좀 써 본 만큼 익숙한 환경에서 하는 것이 그 외의 문제에 시간을 덜 쓰고 문제 자체만을 다루기에 좋을 것 같다는 것입니다. 그리고 두 번째로 이번에 Raspberry pi를 구매했는데, 이쪽에서 기본적으로 제공하는 운영체제가 Debian 계열이라서 Ubuntu에서 작업을 해 보면 Raspberry pi에서도 좀 더 작업을 편하게 할 수 있지 않을까 하는 생각이 들어서 Ubuntu 계열을 쓰기로 결정했습니다.
- TAOCP . . . . 2 matches
DeleteMe)MIXware부분에 가서 프로그램 받을 수 있어. 다 써보진 못했는데 2번째꺼 해보니깐 좋더라...
휘동이 정리보구 궁금해하던 문제들이 많이 풀렸다. 이젠 프로그램 짜야쥐... --세환
- TFP예제/WikiPageGather . . . . 2 matches
=== 프로그램 개요 ===
self.assertEquals (self.pageGather.GetPageNamesFromPage (), ["LearningHowToLearn", "ActiveX", "Python", "XPInstalled", "TestFirstProgramming", "한글테스트", "PrevFrontPage"])
'=== ExtremeProgramming ===\n * ["XPInstalled"]\n * TestFirstProgramming\n'+
PageNameReg = re.compile (PageNameRegularStr)
pagename : XPInstalled
filename : XPInstalled
- ThePragmaticProgrammer . . . . 2 matches
프로그래머는 일련의 도구들(에디터, 객체 관리자, 버전 트래커)을 사용하여 어떤 환경하에서(하드웨어 어셈불리상의 운영시스템) 운용될 수 있는 제품(프로그램)를 만들어내도록 훈련받은 공예가에 비유할 수 있다. 다른 공예작업과 마찬가지로, 컴퓨터 프로그래밍도 대학이나 관련학원에서 가르쳐지지 않는/쉽게 터득할 수 없는 지식과 지혜를 집적하여 완성해 가는 과정을 갖는다.
이들의 프로그램학은 구체적이며, 그 구현에 이르는 경로는 간결하다. 이들은 예를들어,하나의 텍스트 편집기를 배우게 되면 그것을 모든 것에 활용하라고 독자들에게 조언하고 있다. 또한 권고하고 있는 것은, 심지어 가장 작은 프로젝트에 대해서도 버전트래킹 소프트웨어를 사용하라는 것이며, 규칙적인 수식구문과 텍스트 처리언어 학습의 장점을 계도하고 있다.
- ThePriestMathematician . . . . 2 matches
"하노이의 탑(Tower of Hanoi)" 퍼즐에 관한 고대 신화는 이미 잘 알려져 있다. 최근 밝혀진 전설에 의하면, 브라흐마나 수도사들이 64개의 원반을 한 쪽 침에서 다른 쪽 침으로 옮기는 데 얼마나 오래 걸리는지를 알아내고 나서는 더 빠르게 옮기는 방법을 찾아내자는 결론을 내렸다. 다음 그림은 침이 네 개인 하노이의 탑이다.
2. 침이 세 개 있는 경우에 쓰는 방법을 그대로 적용해서 나머지 n-k개의 원반(전체 원반의 개수를 n개라고 가정)을 목표 지점으로 옮긴다.
- ThinkRon . . . . 2 matches
Let me tell a brief story about how that came about. Our president, at the time was Bob Doherty. Doherty came from General Electric via Yale, and had been one of the bright young men who were taken under the wing of the famous engineer Stiglitz. Every Saturday, Stiglitz would hold a session with these talented young men whom General Electric had recruited and who were trying to learn more advanced engineering theory and problem-solving techniques. Typically, Bob Doherty would sometimes get really stuck while working on a problem. On those occasions, he would walk down the hall, knock on Stiglitz’s door, talk to him — and by golly, after a few minutes or maybe a quarter of an hour, the problem would be solved.
--NoSmok:HerbertSimon from http://civeng1.civ.pitt.edu/~fie97/simonspeech.html
- TopicMap . . . . 2 matches
TopicMap''''''s are pages that contain markup similar to ['''include'''] (maybe ['''refer'''] or ['''toc''']), but the normal page layout and the ''print layout'' differ: expansion of the includes only happens in the print view. The net result is that one can extract nice papers from a Wiki, without breaking its hyper-linked nature.
This is useable for navigation in the '''normal''' view. Now imagine that if this is marked as a TopicMap, the ''content'' of the WikiName''''''s that appear is included ''after'' this table of contents, in the '''print''' view.
- Trac . . . . 2 matches
Trac(트랙) 은 소프트웨어 개발 프로젝트를 위한 위키 이자 이슈 트래킹 시스템이다. Trac은 웹 기반 소프트웨어 프로젝트 관리에 대해서 미니멀리스트적인 접근법을 취한다. 우리의 미션은 개발자들이 위대한 소프트웨어를 작성하는 것을 도우면서도, 그들의 방식에 대해 간섭하지 않는 것이다. Trac은 가능한한 팀에 이미 정착된 개발 프로세스와 정책에 대해서 덜 간섭해야 한다.
http://bbs.kldp.org/viewtopic.php?p=291467 - kldp 에서의 스레드들
- UML . . . . 2 matches
In software engineering, Unified Modeling Language (UML) is a non-proprietary, third generation modeling and specification language. However, the use of UML is not restricted to model software. It can be used for modeling hardware (engineering systems) and is commonly used for business process modeling, organizational structure, and systems engineering modeling. The UML is an open method used to specify, visualize, construct, and document the artifacts of an object-oriented software-intensive system under development. The UML represents a compilation of best engineering practices which have proven to be successful in modeling large, complex systems, especially at the architectural level.
*3 Pickup
Collaboration and sequence diagrams describe similiar information, and as typically implemented, can be transformed into one another without difficulty.
- UglyNumbers/1002 . . . . 2 matches
연습장에 이것저것 써보다가 대략 두가지 접근법이 생각나다. 하나는 각 수들마다 'isUglyNumber' , 하나는 지수를 이용한 방법. 일단은 'isUglyNumber' 먼저 구현해보기로 해봄. (워낙 간단하므로)
[UglyNumbers/JuNe] 코드 분석. 2시간 동안 보다가 도무지 접근법을 이해 못하다. 한 3시간째쯤 보다가 http://www.acmsolver.org/?itemid=28#ggviewer-offsite-nav-9512048 보고 이해 & 좌절.
- UploadFileMacro . . . . 2 matches
{{{[[UploadFile]]}}}: 이것은 자바스크립트를 전혀 쓰지 않는다. 그 대신에 간단한 여러개의 파일을 올릴 수 있는 방법을 제공한다.
pds 바로 밑으로 저장된 pds/* 파일을 연결하려면 {{{attachment:/foobar.png}}} 문법을 쓴다. 즉, "/"를 맨 앞에 붙여준다.
- VMWare/UsefulFunctions . . . . 2 matches
VMWare 는 크로스 컴파일링 환경에서 유용한 기능을 몇가지 가지고 있다. 물론 해당 가상 머신에 VMWare Tools 라는 VMWARE 가 제공하는 프로그램을 올렸을 경우에만 작동한다.
가상 머신과 호스트 머신 사이에 데이터를 옮기는 방법은 여러가지를 생각할 수 있다. 가장 많이 이용하는 방법은 NAT 로 구성된 가상 머신상의 네트웍 기능을 이용하여 FTP 로 전송하는 방법을 가장 많이 생각 할 수 있다.
- VendingMachine/재니 . . . . 2 matches
= 프로그램 설계 =
* 이번엔 프로그램 설계를 한글로 했지만 영어로 해보고 싶은 욕심이 생기네엽..^^[[BR]]
- VonNeumannAirport/Leonardong . . . . 2 matches
매우 데이터에 의존적인 프로그램이라는 생각이 든다. 만약 석천이형 생각대로 요구사항이 바뀐다면 지금 프로그램은 감당해낼 수 있을까?
- WeightsAndMeasures . . . . 2 matches
맥(Mack)이라는 이름의 거북이가 여틀(Yertle)왕의 거북이 왕좌(王座)을 만들기 위한 거북이를 쌓는 방법을 문의해왔다. 혹시 자기 등껍질이 깨질까 봐 겁이 났기 때문이다. 여틀 왕의 왕좌을 만들기 위해 동원된 5,607마리의 거북이는 체중과 체력이 모두 다르다. 가능한 가장 많은 거북이를 쌓는 방법을 찾아보자.
- WikiSlide . . . . 2 matches
To add special formatting to text, just enclose it within markup. There are special notations which are automatically recognized as internal or external links or as embedded pictures.
* common prefixes (topical correlation)
- WorldCup/송지원 . . . . 2 matches
|| 8870493 || enochbible || 3117 || Compile Error || || || Java || 456B || 2011-07-12 09:35:27 ||
* 처음에 class명을 Main으로 해야 하는 지 몰라서 Compile Error를 아름답게 띄움...-_-;; // 아래 소스도 복붙할 때 바꿔 줘야 함
- XMLStudy_2002/XML+CSS . . . . 2 matches
=== PI부분 ===
XML 문서를 웹으로 보는 방법을. 현재 IE5.0이 XML을 지원하므로,
IE5.0을 브라우저로 사용하고 스타일로는 CSS를 사용하여 볼 수 있는 방법을 설명한 것 입니다.
- XpWeek/20041220 . . . . 2 matches
* [http://javastudy.co.kr/api/api1.4/index.html JDK API(Korean)] [http://zeropage.org/pub/j2sdk-1.4.1-doc/docs/index.html JDK Full Document]
- Yggdrasil/020515세미나 . . . . 2 matches
== 소수구하기 ==
["소수구하기/영동"]
- Yggdrasil/가속된씨플플/1장 . . . . 2 matches
* 문법적으론 틀린게 없다. {}밖을 빠져나가면, 그 안에서 만들어진 객체나 변수는 다 사라진다. 하여튼, 문자열을 출력하는 프로그램이다.
* 이 프로그램도 문법적으로 틀린 것은 없으나 지양해야 할 문법인 듯하다. 끝나지 않은 스코프 내에서 같은 변수명을 선언하면 나중에 헷갈리기 좋을 것 같다. 그리고 }}를 };}로 바꿔도 별 차이는 없다.
- Yggdrasil/가속된씨플플/4장 . . . . 2 matches
* 장의 제목 그대로의 내용이다. 프로그램의 구조화(함수)와 데이터의 구조화(구조체) 등등을 설명하고 있다.
* 1학년 1학기 텀프로젝트를 할때, 성적정렬 프로그램에서 정렬로 순서가 전부 바뀌어버려서, 루프문의 끝에서 전부 다 초기화했던 기억이 난다. 이때 전달인자에 전달 방식을 제대로 이해하고 활용했다면 편했을 것을.
- Z&D토론/통합반대의견 . . . . 2 matches
현재의 닥친 문제들을 해결하는 방법을 찾는 과정은 현재와 미래에만 있는
빨리 휠에 대한 설명이나 캡쳐해야 겠다. 앞으로 프로그램 좀 짤 일이 있어서
- ZPBoard . . . . 2 matches
APM을 이용한 게시판 '''ZPBoard''' 제작 프로젝트.
* ["ZPBoard/AuthenticationBySession"] - Session 을 이용한 회원 인증
- ZeroPageServer/set2002_815 . . . . 2 matches
* Server 프로그램을 자기 계정에서 고정 도메인 & IP 로 돌려볼 수 있다는 것도 큰 장점.
* {{{~cpp /home/jspVirtualPath}}} 에 해당 아이디의 symbolic 링크를 걸면 됨. resin.conf에서 path-mapping 사용
- ZeroPage가입관련 . . . . 2 matches
* 재학생들(편입,전과,복학생 포함) 가입시 위키 사용법을 몰라서, 그리고 복잡해 보여서 망설이는 분들이 있는것 같아서 여기로 가보라고 권합니다.["ZeroPagers"]
* ["ZeroPagers"]에서 개인페이지 구경하실수 있습니다. 재학생분들중 가입을 원하시는 분들은 자신의 페이지를 만드십시오. 사용법을 정 모르겠으면 아무페이지에서나 밑에 있는 하단의 {{{~cpp EditText}}}를 누르시기 바랍니다.
- ZeroPage성년식 . . . . 2 matches
* 온오프믹스 참가 신청에 문제가 있나요?(이벤트 페이지를 제 이름으로 만들어서 저는 참가 신청을 할 수가 없습니다. 그래서 어떤 문제가 있는지 알 수가 없네요.) 선배님께서 온오프믹스로 참가 신청이 힘들다고 다른 방법을 만드는 게 좋겠다는 말씀을 해주셨습니다. 온오프믹스에 문제가 있다면 구글독스를 통해 추가적으로 신청을 받거나 아니면 온오프믹스 참가 신청시 발생하는 문제를 해결하는 법을 알아내어 온오프믹스 페이지에 안내하는 것이 좋을 것 같습니다. - [김수경]
- [Lovely]boy^_^/Diary/2-2-10 . . . . 2 matches
* XB 진짜로 시작. 재동이가 고객이 되어서, 재동이가 준비해온 네트워크 오델로를 짜기로 했다. 처음에는 기대감에 마구마구 넘쳐서 침을 튀겨가며 얘기를 했지만, 나중에는--; 결국 통합은 실패했다. 기초부터 시작해야 할듯싶다. 하지만 배운것도 많았다. 재미도 있었고.. 글구 혜선이가 고객을 해주기로 했다. 이제 프로젝트가 본격적으로 시작이 된다. 낼부터 2주정도는 간단한 프로그램으로 TDD와 호흡 맞추는데 주안점을 둘 생각이다.
* The XB Project starts really. A customer is Jae-dong. So we determine to programm network othelo, that Jae-dong's preparation. At first, we start hopefully, but..--; after all integration is failed. In our opinion, we start beginner's mind. but we learned much, and interested it. And new customer is Hye-sun. Since now, our project begins really. Since tomorrow, during 2 weeks, we'll focus on TDD and pair programming with simple programming.
- [Lovely]boy^_^/EnglishGrammer . . . . 2 matches
* 동기 : 얼마전에 do 다음에는 원형이라는 중학교 입학하고 젤 첨 배운다고 할 수 있는 문법도 생각이 안나는 데에 놀란 인수군은 영문법을 대강이라도 한번 공부하기로 마음먹는다. 교재는 Grammar in USE 영어로 되어 있어서 어떻게 볼까 생각했지만.. 추천이 장난이 아니더군. 그래서 함 봐봤는데.. 오 한글보다 이해하기 쉽군. 쿠하하 정리나 해봐야겠다. 영어만 치다보면 영타도 늘겠지.
''영문법을 공부하려면 한국의 웬만한 교재보다는 NoSmok:GrammarInUse 가 낫습니다. 보통 Murphy시리즈라고 부르죠 -- 레벨별로 책이 따로 나와서 "시리즈"라고 합니다. 이와 함께 Azar시리즈도 많이 봅니다. 외국에 어학연수란 걸 나가면 90% 이상 이 교재로 공부합니다(고로 어학연수가서 교실에서 하는 공부는 별거 없습니다). 문법 공부를 할 때에는 레퍼런스북이 있으면 좋은데, PEU(''Practical English Usage'', Michael Swan)를 적극 추천합니다. 영어실력에 상관없이 두고 두고 유용하게 사용할 것입니다. see also NoSmok:영어학습법 --JuNe''
- [Lovely]boy^_^/영작교정 . . . . 2 matches
* [[HTML(<STRIKE>)]] Developing Countrys strive for technical and economical advancement for years. [[HTML(</STRIKE>)]]
* Developing countries have striven for technological and economical advancement for years.
- django/AggregateFunction . . . . 2 matches
Django에서 기본적으로 제공하는 함수는 없다. 대신 order_by를 이용해서 최상위 레코드만 뽑는 방법을 사용할 수 있다.
Django에서 기본적으로 제공하는 함수는 없다. 원하는 레코드 집합을 얻어온 다음, python을 이용해서 구하는 방법을 사용할 수 있다.
- django/RetrievingObject . . . . 2 matches
데이터베이스에서 레코드를 조회할 때는 Model클래스를 관리하는 Manager클래스를 이용한다. 가장 간단하게는 모든 레코드를 가져오는 방법이 있는데, 모델마다 기본적으로 제공되는 object라는 매니저를 이용한다. object 매니저로 레코드를 조회하면 QuerySet이 반환된다. 이는 관계형 데이터베이스 CLI인 JDBC의 ResultSet과 유사하다.
- erunc0/COM . . . . 2 matches
* 간단한 C++ 클래스로 시작하여 재사용 가능한 이진 Component로써 클래스를 사용하는 법을 간단한 예제를 통해서 배우게 된다. 처음은 DLL을 통해서 client 에게 제공하는 문제에 대해 말하며. 다음에는 이렇게 제공되어진 컴포넌트에 대한 방화벽(?)등에 대해 논의 하면서 인터페이스를 통하여 컴포넌트 내의 은닉화를 위한 방법들을 설명해준다. 그리고 그다음으로는 abstract class를 사용해 (virtual function을 이용한 방법) 인터페이스의 확장에 관한 부분까지 설명한다. 그리고 끝으로는 RTTI 이용하여 더 나은 인터페이스의 확장 방법과 다중의 client 에게 컴포넌트를 제공할수 있게 만드는 부분까지 설명한다. 한서라서 그런지 애매한 용어들이 많이 있어서 아직도 이해가 가질 않는 부분이 많았다. 한번더 chapter 1응 읽은 후에 정리하고 chapter 2로 넘어가야 하겠다.
- erunc0/Mobile . . . . 2 matches
* emulator - 예전에는 정말 구렸는데, pocket pc 2002 가 등장하면서 pda에 똑같은 성능을 보여준다. (그래서인가. compile 속도 무지 느린것 같다.. --;)
* lan card - 돈있으면 구입해서 한다. compile 속도가 비약 적으로 상승. -_-;
- html5practice . . . . 2 matches
* 간단한 파일(그림, 텍스트) 전송 프로그램
* filewriter가 구현 된다면 레알 p2p 전송 프로그램을 만들어도 좋을 듯
- naneunji/Diary . . . . 2 matches
* pie 애덜이랑 놀러가기루 한 약속이 취소되서 아쉽긴 했지만..[[BR]] 비 내리는 거 보니깐,,,놀러 갔음 빗물에 떠내려가 죽었을꺼 같다..ㅡㅡ;;
여러사람이 하나의 프로그램을 짠다는것..페어프로그래밍을 한다는것..
- nilath개인페이지처음화면 . . . . 2 matches
C(Master, 바보 찌질이들은 태클 걸지 말고.) -> Assembly(30% 진행, 일반적 프로그램 크래킹 수준)
-> C++(70% 진행) -> API(20% 진행) -> MFC(0%) -> C#(0%)
완전... 물리학과 가서 물리학 공식만 달달 외우고 공식 만드는 방법을 배우지 않는 격이잖아.
- spaurh . . . . 2 matches
* Nappingin:취미생활
SeeAlso Nappingin:spaurh
- woodpage/VisualC++HotKeyTip . . . . 2 matches
*WndTabs 라는 프로그램으로 Visual c++에 AddOn(스타처럼) 시키는 프로그램이다.
- woodpage/쓰레기 . . . . 2 matches
*실시간 전략 게임 프로그램 (출판사: 정보문화사)
: 여름방학때 잠시 봤었지만 책이 맘에 안들어서 그냥 있었음 우연히 도서관에서 내가가진 책을 보완해주는 책(JSP 프로페셔널 출판사 가메)이 있어서 같이 봄 웹프로그램은 눈에 보여좋음 ^^;; 게시판을 MVC 2모델로 짰는데 좀나중에 MVC 1모델로 짜볼것임
- zennith/source . . . . 2 matches
=== 계승 구하기 ===
=== 소수 구하기 ===
- zennith/w2kDefaultProcess . . . . 2 matches
윈2000에서 클라이언트 관리의 핵심 구성요소로서 클라이언트 응용프로그램이 처음 연
결될 경우 또는 관리 응용프로그램이 서비스를 요청할 때 초기화된다.
- ㄷㄷㄷ숙제2 . . . . 2 matches
1.if 문을 이용한 업앤다운 ;;
2.switch 문을 이용한 업앤다운;;
- 가위바위보/영록 . . . . 2 matches
//승패 구하기.
cout<<"선호형과 인수형의 승패 구하기\n";
- 간단한C언어문제 . . . . 2 matches
ANSI C를 규격으로 하는 Compiler (C90)
특정 컴파일러에 종속적인 프로그래밍은 좋지 않습니다. C90이라는 표준이 엄연히 존재하니까요. 특정 구현에 종속적인 프로그래밍을 한다고 하더라도, 프로그램의 심장은 표준에 따라 프로그래밍 하는게 좋습니다.
- 강성현 . . . . 2 matches
* [http://www.riss.kr/link?id=T13688893 온라인 집단의 의견을 이용한 의사 결정 지원 시스템]
* Android Application 개발 방법을 배우고, 팀을 꾸려서 App 개발
* [:데블스캠프/2013 2013] (화요일 [:데블스캠프2013/둘째날/API --OpenAPI--PHP/MySQL 강의])
- 강희경 . . . . 2 matches
*[http://aragorn.bawi.org/interests/tao_of_programming_(korean).html]프로그램의 도
static library mode 로 compile해.
- 강희경/메모장 . . . . 2 matches
www.devpia.com
효과적인 대인관계 노하우 프로그램집 - 서봉연 등
- 객체지향분석설계 . . . . 2 matches
EX> 수강신청프로그램, 도서관 좌석예약 프로그램..
- 결과물 올리는 방법 . . . . 2 matches
프로그램의 주제를 첫번 째, 그리고 슬러쉬 하고 자신의 이름을 적는다. 이렇게
[프로그램의주제/이름]
- 고한종/업적/WinAPI로만든학과주점포스기 . . . . 2 matches
좀더 자세히 말하자면, 아이패드에서 메인 프로그램을 돌리고, 아이폰&안드로이드에서 부속 프로그램이 돌아서 주문을 받게 하려 했음.
- 그래픽스세미나/2주차 . . . . 2 matches
* 창의 프로그램
[1002] 는 창의 프로그램 만들어낼때까지; --[1002]
- 논문번역/2012년스터디/신형준 . . . . 2 matches
그후에 우리는 그다음 section들에서 전처리 과정 단계, 특징 추출에 대한 방법, 그리고 통계적 모델링과 인식을 이용한 기술들을 묘사한다. 제안된 방법들의 효율성을 입증하기 위한 평가결과는 section 7에 있다.
두 벡터들의 합은 유용한 기하학적 표시법을 가지고 있습니다. 북석적인 기하학구조에 의해 앞의 규칙이 학인되어 질 수 있습니다.
- 덜덜덜 . . . . 2 matches
'''[http://winapi.co.kr/clec/cpp1/cpp1.htm winapi.co.kr의 C기초강좌] 매우 자세하며 양이 많다. 이것이 교재 적당히씩 읽고 와주세요'''
[DevCppInstallationGuide] // 인스톨 가이드 입니다. <- 필수!!
- 데블스캠프2003/넷째날/후기 . . . . 2 matches
* OOP 는 알아듣기랑 변수를 선언하는게 힘들거 같지만,,, 그래도 잘 알게되면 쓸만한 것 같다.. OOP를 이용해서 프로그램을 짤 수 있었으면 좋겠다... 근데 이걸 언제 배울까... ㅡㅜ;; -- [손동일]
* 오늘 알게 된 OOP의 특징 중 각 클래스를 묶는 캡슐이라는 개념....이것을 보니 프로그램 짰을때, 더 쉽게 고칠 수 있을 것 같네요.. --[문원명]
- 데블스캠프2003/다섯째날/후기 . . . . 2 matches
* 마지막날 시작전; 이제 마지막날 프로그램이 시행 될거다; 오늘도 많은것을 얻어가자.--[변준원]
* 오목 짜고 뿌듯한 건 진짜 짱이었고;; 스타와 포트가 너무너무 재미있었다=ㅂ= 모君의 컴퓨터가 마우스를 흔들지 않으면 다운이 되서; 계속 흔들고 있었던 게 너무 웃겼다 ㅋ; 늘었다고 생각되는 건..프로그램 실력 조금이랑..스타와 포트 실력 왕창-_- (콜록) [이진훈]
- 데블스캠프2003/둘째날/후기 . . . . 2 matches
* 오늘 한거 정말 장난이 아니다. 앞으로 도전은 계속된다. 모두들 열심하는 모습 보기 좋았네... 모두들 방학이 끝난다음에는 모두들 프로그램짜는데 자신감을 가질 수 있길 노력하자~~["조재화"]
* 8퀸 문제를 실패하면서, 프로그램을 짤 때에는 먼저 확실한 알고리즘을 구축해 놓아야 한다고 생각했어요.. 알고리즘부터 틀리게 되면 나중에는 디버깅도 소용이 없다는 사실.. --[문원명]
- 데블스캠프2003/셋째날/J2ME . . . . 2 matches
* ["MobileJavaStudy/HelloWorld"] - "Hello World" 를 출력하는 프로그램
* ["MobileJavaStudy/NineNine"] - 구구단을 종류별로 출력하는 프로그램
- 데블스캠프2004/금요일 . . . . 2 matches
===== 간단한 예제프로그램 작성 및 테스트 =====
* 테스트 프로그램(FirstJava.java)
- 데블스캠프2005/RUR-PLE/Harvest/허아영 . . . . 2 matches
pick_beeper()
pick_beeper()
- 데블스캠프2005/RUR-PLE/정수민 . . . . 2 matches
pick_beeper()
pick_beeper()
- 데블스캠프2005/RUR_PLE/조현태 . . . . 2 matches
pick_beeper()
pick_beeper()
- 데블스캠프2005/게임만들기/제작과정예제 . . . . 2 matches
예제) 두번째 방법을 이용한 모습중 하나. -1은 왼쪽 0은 아래, 1은 오른쪽으로 움직인다는 뜻으로 인자를 넘겨받는다.
- 데블스캠프2005/금요일후기 . . . . 2 matches
[상협] : 카드게임, 테트리스, 채팅 프로그램, 타자게임 프로그램을 짰다. 현태가 준비를 잘해왔던거 같고, 카드 게임은 재밌었고, 테트리스는 API를 넘 오래간만에 해서 감을 못잡음 ㅠㅜ, 채팅창 만드는것은 신기하고 재밌었다. 교훈은 프로그래밍을 너무 오랬동안 안해서 감을 많이 잃었다. 프로그래밍좀 해야겠다.
- 데블스캠프2005/목요일후기 . . . . 2 matches
보안.. 흥미로운.. 이리저리 생각도 해보고 할수 있었던게 가장 좋았던.. 하지만 암,복호화 하는 프로그램을 짜라고 할땐..;;역시 코딩력이 부족한.. 코딩력을 키우자.. 아자!! 오늘은 실습이 많아서 긴장? 되었던.. 덕분에 조는 시간 없이 밤을 지샌...
8. PIZZA!! 좋았습니다 !! 내일도??
4. 희생자 발생이 적은(?) 인식률 높은 프로그램 만들기!!
- 데블스캠프2006/화요일후기 . . . . 2 matches
김준석 : dir, mycopy, tar, untar 너무 좋았습니다. 코딩하는게 확실히 재밌기도하고 몸에 익숙해지기도 합니다. 새벽을 새면서 머리가 좀 굳기는 했지만 이해할때까지 붙어서 설명해주셔서 정말 감사합니다. msdn의 사용방법을 어느정도 깨우친것 같아서 얻은것도 많다고 생각합니다
나휘동: 프로그램 만들 때 도움이 될만한 도구를 많이 알수 있는 좋은 시간이었습니다. 실습 수준도 적절했네요. 같이 서포트하신 재학생 여러분 수고하셨습니다.~
- 데블스캠프2009/수요일 . . . . 2 matches
|| 이병윤 || RootKit || Windows의 구조와 IA32 의 구조를 간단하게 설명. 커널레벨로의 접근을 이용한 간단한 루트킷 작성 || ||
|| 김준석 || 객체 지향 프로그래밍(OOP) || OOP에 대한 개요 이해, 추상화에 대한 개념. OOP 기반의 프로그램 설계를 코드가 아닌 글로 새내기와 함께 해본다. || 문법은 잊고 의사코드를 사용한 설계실습을 해보자 ||
- 데블스캠프2010/첫째날/후기 . . . . 2 matches
* 새롭게 경험해보지 못한 Rur-ple이라는 파이썬을 이용한 프로그래밍 언어 환경을 사용해보았습니다. 평소에 프로그래밍 언어에 대해 머리아프다고만 생각했었는데 이렇게 로봇을 이용해 움직이는것을 보니 좀더 재미있게 프로그래밍을 할 수 있었습니다. 머리를 많이 사용해서 그런지 좀 어지럽긴 하지만 평소에 C나 자바 대신 이것으로 프로그래밍을 한다면 코딩도 잘하고 성적도 잘 받을수 있을것만 같네요ㅎㅎ - [허준]
* 머라는 건지 잘 못 이해했어요ㅠㅠ 2학년때 자료구조 쫌 배우고 프로그램을 쫌 더 능숙하게 만질 수 있을때... 다시한번 기회가 된다면 들으면 좋을듯해요!!히히 -[박소연]
- 데블스캠프2011/다섯째날/후기 . . . . 2 matches
* 파이썬의 기본적인 프로그램을 배우고 (python에서 제공하는 학습용 라이브러리인 turtle을 사용하였습니다.) 네트워크에 관한 간단한 설명들을 들었습니다. 네트워크라는 부분을 공부해 본적이 없어서 처음 네트워크에 대해 이해하는 것이 어렵긴 했지만 알기쉬운 설명덕분에 그럭적럭 이해하고 넘어갈 수 있었습니다. server와 Client측에서 네트워크를 구성하는 부분을 파이썬으로 작성하였는데 코드는.. 긁어 왔다ㅋ 헌데 파이썬의 장점처럼 코드가 무지하게 짧았던게 인상깊었다.
* turtle를 보면서 이것 저것 파이선에 어렵지 않게 접근할 수 있어 좋았습니다. 누구처럼 노가다는 안시켜서 좋았네요. (그러고 보니 그 누구도 파이선을 가지고 했었네;;) 여하튼 파이선으로 채팅 프로그램을 소스 복사(-_-) 해서 써 보니 재미있었습니다. 자바로도 그런거 했던 게 기억나네요. 전반적으로 쉽게 그리고 재미있게 설명을 해 주신 세미나였습니다. 재미있게 3시간이 지나간 것 같네요. 다만, 하라고 하셨던 것이 잘 구현이 안 되었던 것 같아 그런 거 빼곤요. 그리고 와이어샤크는.. 보면서 음..... 이런게 있구나 하고 넘어가서인지 좀 더 많이 써 봐야 할 듯 싶네요a
- 데블스캠프2011/셋째날/RUR-PLE/김태진,송치완 . . . . 2 matches
pick_beeper()
pick_beeper()
- 데블스캠프2011/셋째날/RUR-PLE/변형진 . . . . 2 matches
pick_beeper()
pick_beeper()
- 땅콩이보육프로젝트2005 . . . . 2 matches
* word를 기준으로 next word를 찾는다. 필요하면 frequency도 이용한다.
* [http://www.alicebot.org/ ALICE] 뢰브너 라는 인공지능 대화 로봇 대회에서 우승한 ALICE 라는 프로그램, 사이트 가면 실제로 대화해 볼수 있음
- 문원명 . . . . 2 matches
프로그램을 잘 만들수 있는 창의적인 알고리즘 구상능력의 계발.
네트워크를 통해 할 수 있는 간단한 놀이 프로그램을 만들고 싶어요.
- 문제풀이/1회 . . . . 2 matches
1. 입력 3가지수를 받아서 if문을 이용하여 최대값 최소값을 출력하는 프로그램을 작성하세요. DeleteMe)스펙이 if문의 언급은 잘못된것 아닌가요?
2. 1 을 활용하여 10개의 입력중에 가장 최대, 최소 값을을 출력하는 프로그램을 작성하세요.
- 문제풀이게시판 . . . . 2 matches
* 목적은 프로그램의 실력향상과 흥미유도로 한다.
* 각 레벨에는 그에 필요한 프로그램 관련 지식을 제시해도 좋다.
- 바퀴벌레에게생명을 . . . . 2 matches
다큐에 TotalNumberOfMovement변수를 생성하여 바퀴벌레가 움직일 때마다 늘려준다. 그리고 프로그램이 정상종료 되었을 때(스페이스바에 의한 종료는 정상종료가 아니다.) 메세지 박스로 그 값을 출력한다.
== 프로그램 사용법 ==
- 보드카페 관리 프로그램/강석우 . . . . 2 matches
const string games[] = {"jenga", "citadell", "pit"};
[보드카페 관리 프로그램], [강석우]
- 복 . . . . 2 matches
[DevCppInstallationGuide] // 인스톨 가이드 입니다. <- 필수!!
[http://winapi.co.kr/clec/cpp1/cpp1.htm winapi.co.kr의 C기초강좌]
- 빵페이지/숫자야구 . . . . 2 matches
cout << "프로그램을 종료해요.\n";
* goto문이 생각나서 쓰긴했는데 ... ... 전에 실습시간에 조교오빠가 goto문 안 쓰는 게 좋다고 한 것 같은데.. ㅡㅜ숫자 입력할 때 한 숫자 넣고 스페이스 바 누른 후 다음 숫자를 입력해야 하는 번거로움이 있네 어떻게 해야하지?? 프로그램이 바르게 돌아가는 게 맞는 지 확신이 없어서 계속 미루고 못 올렸는데 흠.. 틀린 것 좀 알려주시길.... - 일정
- 새싹C스터디2005/선생님페이지 . . . . 2 matches
교육은 물고기를 잡는 방법을 가르쳐야 합니다. 어떤 알고리즘을 배운다면 그 알고리즘을 고안해낸 사람이 어떤 사고 과정을 거쳐 그 해법에 도달했는지를 구경할 수 있어야 하고, 학생은 각자 스스로만의 해법을 차근차근 '구성'(construct)할 수 있어야 합니다 (이를 교육철학에서 구성주의라고 합니다. 교육철학자 삐아제(Jean Piaget)의 제자이자, 마빈 민스키와 함께 MIT 미디어랩의 선구자인 세이머 페퍼트 박사가 주창했습니다). 전문가가 하는 것을 배우지 말고, 그들이 어떻게 전문가가 되었는지를 배우고 흉내 내야 합니다. 결국은 소크라테스적인 대화법입니다. 해답을 가르쳐 주지 않으면서도 초등학교 학생이 자신이 가진 지식만으로 스스로 퀵소트를 유도할 수 있도록 옆에서 도와줄 수 있습니까? 이것이 우리 스스로와 교사들에게 물어야 할 질문입니다.
- 새싹교실/2011/學高/2회차 . . . . 2 matches
* 3+5=8E+0 를 출력하는 프로그램을 작성하라. 단, %d,%e를 반드시 이용해야 한다.
*3+5=8E+0 를 출력하는 프로그램을 작성하라. 단, %d,%e,를 반드시 이용해야 한다.
- 새싹교실/2011/무전취식/레벨10 . . . . 2 matches
* 주석을 이용한 프로그램 설계 방법
- 새싹교실/2011/쉬운것같지만쉬운반/2011.3.15 . . . . 2 matches
* 문법을 배웠습니다~ 실습도 했구요.
* 오늘 2시에 6피에서 새싹교실을 처음했다. 박성현 선생님께서 위키 편집법을 가르쳐주셨다. 쫌만 더 해보면 금방 익숙해질것 같다. 앞으로 새싹교실에서 더 유용한걸 많이 배우게 되겠지??:) - [송치완]
- 새싹교실/2011/씨언어발전/2회차 . . . . 2 matches
외우라는 식으로 사용법을 배우고 나중에 좀더 자세히 알 수 있도록 하려고 생각중입니다.
맞다 주석 넣는법을 가르쳐줬어야되는데ㅋ 주석은 다음수업시간에! - [경세준]
- 새싹교실/2011/씨언어발전/5회차 . . . . 2 matches
* 배열을 사용한 학생의 점수계산 프로그램
배열을 처음으로 배워 사용법을 익혔으며 배열을 사용하던중 모든 값들을 초기화 해주어야하며
- 새싹교실/2011/씨언어발전/6회차 . . . . 2 matches
* 포인터를 이용한 동적할당
* 포인터에 대해 개념을 정리하였다. malloc 을 이용하여 동적할당을 하는 방법을 배웠다. 이거 배우기 전엔 그냥 배열에서 a[99999] 이랬는데 ㅋㅋㅋ
- 새싹교실/2012/Dazed&Confused . . . . 2 matches
* 사실상 첫 수업이었다. 어떻게 가르쳐야 할까 고민하다가 나름 PPT를 만들어 보긴 했는데 (그래봤자 [http://winapi.co.kr/ winpai]에서 다 복붇이었지만 -_-) 허허허.... 모르겠다 -_-a 뭐.. 어찌되었든 간에 일단 이론적으로 PPT를 보면서 설명을 하면서 진행을 했는데.. 알긴 아는 거 같은데... 음.. 좀 더 같이 해 보면 알겠지- 그래도 잘 따라와 준 것 같아 고마웠다. 많이 부족한 놈을 선생으로 둔 새싹들도 고생 많았어요 -ㅅ- 다음엔 더 준비 해 올게요a 근데 왜 회고지엔 소라 게임에 대한 이야기만 있는거지.. 에잇 - [권순의]
* 새로운 용어들 #define, getchar, rand, <math.h>등에 대해서 알게 되었다. 이런 새로운 용어들을 복습해 봐야겠다. winapi를 알게 되어 조금 더 찾아 볼 수 있어 좋았다 - [박승우]
- 새싹교실/2012/개차반 . . . . 2 matches
* 즉석에서 코드를 작성해가며, Compile error, logical error, debug error의 개념에 대해 설명
* 컴파일러의 역할과 compile -> link -> build 과정 설명
- 새싹교실/2012/아우토반/앞반/4.12 . . . . 2 matches
* 조금 복잡한 프로그램 짜보기
2. 은행관리 프로그램을 작성해오시오.
- 새싹교실/2012/열반/120319 . . . . 2 matches
* 프로그램의 시작점
* 재귀함수를 이용한 반복문을 먼저 설명하려 합니다.
- 새싹교실/2012/절반/중간고사전 . . . . 2 matches
* 몇 자리 숫자든 상관없이 각 자리 수의 합을 더하는 프로그램 만들기
* for문을 이용한 별 찍기
- 새싹교실/2012/클러그 . . . . 2 matches
* 프로그램 소스 코드가 프로그램으로 되는 과정(빌드)
- 새싹교실/2012/탈락 . . . . 2 matches
* 변수, 데이타 타입, 반복문, 조건문 등을 가르침 기본적인 문법을 가르쳐주고 직접 그 문법을 사용하여 사용법이 익숙해지게 끔 하였다.
- 새싹교실/2013/라이히스아우토반/3회차 . . . . 2 matches
puts("프로그램을 끄려면 q 아니면 다른거 :");
puts("프로그램 끝!");
- 새싹교실/2013/록구록구/5회차 . . . . 2 matches
직접함수만드는 법을 배웠당:)
이번에는 직접 함수를 만드는 방법을 배웠다.
- 새싹교실/2013/이게컴공과에게 참좋은데 말로설명할 길이 없네반 . . . . 2 matches
(나는 그전에 WIN API를 준비해야할 것같다.)
> 게임 5단계 : (가정: 내가 API공부가 완벽할시에....근데 지금 공부하는것도 많자나? 안될거야아마..ㅠㅜ) 콘솔로 이루어진 게임을 API로 샤방하게 바꾸어 보아요 ㅎㅎ.
- 연습문제 : 콘솔창에 자기가 원하는 방향으로 기호를 움직이게 하는 프로그램 만들기.(둘다 성공.)
- 앞으로의 방향 : 이제 문제를 풀면서 메모리의 구조를 다시 전반적으로 설명하고, 입출력방식, 간단한 알고리즘(유클리드 호제법같은)을 가르친다. 이렇게 준비를 한후 포인터에 돌입. 그리고 포인터에 대해서 이해가 어느정도 쌓였을때 발전시킬 수 있는 프로그램을 만들게 하면서 실력을 증가시킨다.
- 서민관 . . . . 2 matches
||[http://zeropage.org/seminar/95651 XML-RPC을 이용한 네이버 블로그 글 올리기]||
* 형한텐 항상 배울게 많네요. 최근 자바로 짜는 프로그램은 개발방식이 형이 하던거랑 꽤나 비슷해진거 같구요. 다음에 간단한 프로젝트 코드레이스라도 해보면 좋을거 같아요. ㅎㅎ 형, 겸손한것도 좋지만 자랑하는 것도 능력이에요. 형의 능력을 뽐내봐요! ㅎㅎㅎ -[김태진]
- 선희 . . . . 2 matches
파스칼삼각형과 마방진, 단어순서 구하기는 버벅거림.
파스칼삼각형과 마방진, 단어순서 구하기는 버벅거림.
- 세벌식 . . . . 2 matches
[http://paero3.myzip.co.kr/img/sebeol_typing_direction.gif]
* [임인택]의 경우 어떤 치과에서 키보드 키캡에 붙이는 스티커를 나눠주는 페이지를 보면서 처음 세벌식을 접하게 되었다. 그때가 2005 년 2월경이었는데 처음에는 무척 힘들었지만 6개월정도 지나니 익숙해졌다. 세벌로 전환하기 이전인지 이후인지 기억은 잘 나지 않는데, 스펀지라는 프로그램에서 공병우 박사님을 추모하면서 세벌식과 관련된 지식을 알아본 적이 있었다. 카이스트인지 포항공대인지에 다니는 한 학생이 실험을 했는데, 두벌, 세벌 모두 엄청난 속도로 타이핑하는 장면을 봤다. 충격이었다. 어떻게 각각을 저렇게 빨리 칠 수 있는지. 나도 예전에 타이핑이라면 한가닥 했었는데 10년이상 쓰던 두벌을 버리고 세벌로 전환한 이후 두벌속도가 급격하게 줄었다. 처음 세벌로 바꿨을때 세벌보다 두벌을 약 20배 정도 빨리 칠수 있었는데, 지금은 오히려 두벌이 더 느리다. 이걸 가지고 생각해 볼 수 있는 문제는 사고의 전환이다. 스펀지에 나왔던 학생은 두벌로 타자할때 두벌식으로 사고하고, 세벌로 타자할때 세벌식으로 사고했을 것이다. 조금 생각해보면 이는 우리가 공부하는데 빗대어 설명할 수 있을 것이다. 가령 함수형 언어를 쓸때는 함수형 언어의 패러다임으로만 생각하고, 객체지향 언어를 쓸때는 객체지향 패러다임만을 생각한다던지 하는 것이다. 지금 생각하건데, 그 학생은 두벌/세벌 타자에 있어서 구루인것 같다. 나도 두벌/세벌을 모두 쓰지만 두벌식을 쓸때 세벌식으로 생각하고 키를 누른다던지, 세벌식을 쓸때 두벌식으로 생각하고 키를 누르는 경우가 많다. 프로그래밍을 할때도 마찬지. 내가 배제하려고 하는것을 완전히 배제하지 못한다.
- 송지원 . . . . 2 matches
* 2011년 : IBM Campus Wizard 8기 활동, 2011-1학기 튜터링 프로그램에서 Tutor로 참여. ZeroPage 20주년 성년식 기획단 참여.
* RSS, blogAPI 세미나 - 시방 노딩중 하다가 흐지부지 됨
* [PC실관리프로그램]
- 수학의정석/방정식/조현태 . . . . 2 matches
printf("CPU CLOCKS = %d\n", clock() - time_in); // 끝났을때 시간 - 초기 시작시간 = 프로그램 실행 시간
return 0; // 프로그램 종료.
- 수학의정석/집합의연산/조현태 . . . . 2 matches
printf("CPU CLOCKS = %d\n", clock() - time_in); // 끝났을때 시간 - 초기 시작시간 = 프로그램 실행 시간
return 0; // 프로그램 종료.
- 수학의정석/행렬/조현태 . . . . 2 matches
printf("CPU CLOCKS = %d\n", clock() - time_in); // 끝났을때 시간 - 초기 시작시간 = 프로그램 실행 시간
return 0; // 프로그램 종료.
- 스터디/Nand 2 Tetris . . . . 2 matches
* Hack Machine language를 사용해서 프로그램을 작성해 봄.
ROM에는 미리 넣어 놓은 프로그램이 있음.
- 식인종과선교사문제/변형진 . . . . 2 matches
이 문제를 푸는데 흔히 이용되는 Backtracking 기법을 사용하지 않고 구현하는 방법이 없을까 해서, Case-by-case로 최소한의 상황에 대한 처리 방법을 지정해보았다.
- 아잉블러그 . . . . 2 matches
서버를 구축하고 관리하고 다양한 웹 프로그램을 사용해 보는 프로젝트.
= 프로그램 =
- 알고리즘5주숙제 . . . . 2 matches
== 원주율 구하기 ==
== 타원의 넓이 구하기 ==
- 알고리즘5주숙제/하기웅 . . . . 2 matches
double pi = 4.0*number/testcase;
cout << pi <<endl;
- 열린제로페이지 . . . . 2 matches
다른 관점에서 살펴봅시다. 주변을 둘러보면 모임이 참 많습니다. 그러한 모임들은 왜 생겨난 것일까요. 전체가 하나라면 장벽도 없고 좋을텐데 말이지요. 하지만, 전체가 해결하지 못하기에 부분이 생겨난 것이고, 그러한 부분들이 묶여서 전체가 되는게 실제 입니다. 제로페이지가 생겨났던 이유도 비슷합니다. 중앙대학교 컴퓨터공학과에서 해결하지 못하는 부분이 생겨났고, 이를 위해 제로페이지가 만들어졌습니다. 대부분은 모임의 특성상 구성원이 필요하고, 이를 위해 지속적인 활동을 요구하게 됩니다. 한가지 중요한 점은 제로페이지가 외부와의 연결고리를 차단한 바는 없고, 자유롭게 교류할 수 있다는점이 현재 이야기한 ["열린제로페이지"] 역할 을 한다고 생각합니다. 물론, 그러한 참여방법을 보다 세련되고 원할하게 만들자는 이야기에 대해서는 찬성합니다.
이전까지의 문제는 Service + Content 제공자가 ZeroPage 나 JStorm 밖에 없어서였지만, 지금은 동문서버가 있는 이상, 동문서버에게 해당 Service 를 요청할 수 있겠고요. (위키, 게시판 등등이요. 이미 만들어져 있는 프로그램들에 대해서는 그다지 큰 문제는 아닐것 같고요.)
- 영어학습방법론 . . . . 2 matches
See Also [http://community.freechal.com/ComService/Activity/PDS/CsPDSList.asp?GrpId=1356021&ObjSeq=6 일반영어공부론], Caucse:일반영어공부론, Caucse:영어세미나20021129
* Topic 중심이나 또는 아예 random한 단어장이 괜찮음
feel like ~ing 문법을 알아야한다. [[BR]]
- 오픈소스검색엔진Lucene활용/세미나060401_2시 . . . . 2 matches
* 자신의 프로그램에 검색이 필요한 경우 굳이 새로 만들기 보다는 기존의 검증된 오픈소스를 활용하기 위한 방법을 소개해 드릴 예정입니다.
- 우리가나아갈방향 . . . . 2 matches
하지만 개인 경쟁력 강화와 경력 관리라는 측면까지 고려해서 제로페이지 활동을 한다면, 지금보다 더 많은 가치를 얻을 수 있을 것 같습니다. 특히 게임이나 유틸리티 같이 쓸 목적으로 프로그램을 만드는 프로젝트를 한다면, 프로젝트 하나하나가 자신의 경력을 쌓을 수 있는 기회라는 생각도 해보면 좋겠습니다.
윗 글에서 ''게임이나 유틸리티 같이 쓸 목적으로 프로그램을 만드는 프로젝트''를 해야 한다는 말에 공감합니다. 실제로 저런 프로젝트를 하면서 프로그래밍 하는 재미를 느끼게 됩니다. 먼저 2학년 이상인 ZP 회원들부터 저런 프로젝트를 하는 모습을 후배들에게 보여줘야 한다고 생각합니다. -[상협]
- 위시리스트 . . . . 2 matches
* 컴퓨터 프로그램의 구조와 해석 1, 2권
DirectX11을 이용한 3D 게임 프로그래밍 입문
- 위키설명회 . . . . 2 matches
* [위키설명회] 도중에 난감했던 한 가지는, 파란아이를 통해 이전 문서의 원문을 볼 수 없어서 페이지 내용을 복구하는 방법을 저조차 모르고 있다는 사실을 안 것입니다. 원래 파란아이로 원문을 볼 수 없었나요? --[Leonardong]
SeeAlso NoSmok:페이지복구하기 . 위키 설명회 전 해당 기능들을 실행시켜보았나요? --[1002]
- 위키설명회2005 . . . . 2 matches
위키를 이용한 보물찾기
뿐만 아니라 Wiki에 담겨있는 철학과 사용법을 알게 되신다면
- 유니코드와ANSI문자열간변환 . . . . 2 matches
* [http://www.winapiprogramming.com/MyHome/api.htm 참고자료]
- 이민석 . . . . 2 matches
* ElanVital - 가사 시각화 프로그램
* 졸업논문: 하스켈을 이용한 효율적인 알고리즘 설계
- 이승한/PHP . . . . 2 matches
== SQL API ==
* asp.net에서 보았던 ODBC 를 이용한 DB와의 통신보다 간단하고 빠른듯.
* explode() // 문자열을 특정한 문자열을 기준으로 분리하여 배열형태로 넘겨준다. array 사용법을 잘모르겠음.
- 자바와자료구조2006 . . . . 2 matches
[http://buyadipexonline.blogspirit.com/ buy adipex]
[http://buyambienonline.blogspirit.com/ buy ambien]
- 정규표현식/소프트웨어 . . . . 2 matches
* 정규표현식을 지원하는 소프트웨어와 간단한 사용법을 정리 한다.
http://hackingon.net/image.axd?picture=WindowsLiveWriter/AdhocStringManipulationWithVisualStudio/7EA25C99/image.png
- 정모/2002.5.30 . . . . 2 matches
* PairProgramming 에 대한 오해 - 과연 그 영향력이 '대단'하여 PairProgramming을 하느냐 안하느냐가 회의의 관건이 되는건지? 아까 회의중에서도 언급이 되었지만, 오늘 회의 참석자중에서 실제로 PairProgramming 을 얼마만큼 해봤는지, PairProgramming 을 하면서 서로간의 무언의 압력을 느껴봤는지 (그러면서 문제 자체에 대해 서로 집중하는 모습 등), 다른 사람들이 프로그래밍을 진행하면서 어떠한 과정을 거치는지 보신적이 있는지 궁금해지네요. (프로그래밍을 하기 전에 Class Diagram 을 그린다던지, Sequence Diagram 을 그린다던지, 언제 API를 뒤져보는지, 어떤 사이트를 돌아다니며 자료를 수집하는지, 포스트잎으로 모니터 옆에 할일을 적어 붙여놓는다던지, 인덱스카드에 Todo List를 적는지, 에디트 플러스에 할일을 적는지, 소스 자체에 주석으로 할 일을 적는지, 주석으로 프로그램을 Divide & Conquer 하는지, 아니면 메소드 이름 그 자체로 주석을 대신할만큼 명확하게 적는지, cookbook style 의 문서를 찾는지, 집에서 미리 Framework 를 익혀놓고 Reference만 참조하는지, Reference는 어떤 자료를 쓰는지, 에디터는 주로 마우스로 메뉴를 클릭하며 쓰는지, 단축키를 얼마만큼 효율적으로 이용하는지, CVS를 쓸때 Wincvs를 쓰는지, 도스 커맨드에서 CVS를 쓸때 배치화일을 어떤식으로 작성해서 쓰는지, Eclipse 의 CVS 기능을 얼마만큼 제대로 이용하는지, Tool들에 대한 정보는 어디서 얻는지, 언제 해당 툴에 대한 불편함을 '느끼는지', 문제를 풀때 Divide & Conquer 스타일로 접근하는지, Bottom Up 스타일로 접근하는지, StepwiseRefinement 스타일를 이용하는지, 프로그래밍을 할때 Test 를 먼저 작성하는지, 디버깅 모드를 어떻게 이용하는지, Socket Test 를 할때 Mock Client 로서 어떤 것을 이용하는지, 플밍할때 Temp 변수나 Middle Man들을 먼저 만들고 코드를 전개하는지, 자신이 만들려는 코드를 먼저 작성하고 필요한 변수들을 하나하나 정의해나가는지 등등.)
일반적으로 피시실 등이나 세미나때에 선배들과 이야기하고, 선배들에게 조언을 들으면서 프로그래밍을 하는 것과 프로그램의 처음 작성부터 PairProgramming 을 하는 경우가 어떤 차이가 있을지 생각을 해보고 이러한 '페어가 저절로 진행되어서' 라고 결론을 내렸으면 합니다.
- 정모/2002.9.12 . . . . 2 matches
1. 신입회원 대상으로 2학기 프로젝트 -> JAVA 를 이용한 자료구조.
1. 서버 해킹 -> neocoin 계정 해킹. 무작위 IP 로 패킷보내는 프로그램 설치하여 학교 네트워크 마비 => 전산센터에서 ZeroPageServer 블럭킹 => 외부접속 중단 => 서버관리자(99' 류상민)의 노력으로 서비스 재개
- 정모/2002.9.26 . . . . 2 matches
저번 정모 이후, 사람들 살던 이야기. MobileJavaStudy 팀 (재동, 상규) 이야기가 있었다. 핸드폰으로 프로그램 올린 모습을 보여주었다.
한번씩 돌아가면서 정모 기간 (2주정도?) 내 일어난 일이나 사건들. 관심사 등등. 그리고 2차행사로서 간단한 세미나를 한다던지, 자신이 만든 프로그램에 대해 시연을 한다던지. 문제를 제대로 정의할 수 있다면, 답을 구할 수 있을것 같다. (가장 간단한 일을 시작할 수 있을 것 같다. 정모 스타일에 비격식적 대화시간을 넣어본다던지, 자네가 정모 진행을 할때, 주위를 환기시킬 수 있고. 또는, 회장의 진행없이 나가볼 수도 있고.) --["1002"]
- 정모/2003.1.15 . . . . 2 matches
* 그 밖에 진행하고 싶은 스터디 - Windows API 와 MFC 스터디를 2월 중에 하기로 했음
* 뚜렷한 목표가 없다. -> 맞는 말입니다. 그냥 단순히 학교 공부에나 도움될줄 알고 나오는 사람도 꽤 있는거 같습니다. 제가 가진 생각으로는 2가지 목표가 있을거 같네요. 프로그램 짜는거와, 프로그래밍 경진대회 같은데 나가서 입상하는거 정도..2003년도부터는 과내 프로그래밍 경진대회에서 입상하면 ACM예선 대회 같은곳에 나갈 수 있도록 지원해줄거 같으니, 그런걸 목표로 해도 되고, 좋은 프로그램을 짜서 다른 사람들도 널리 쓸 수 있도록 하면서 보람을 느끼는걸 목표로 해도 되겠네요.
- 정모/2003.3.5 . . . . 2 matches
* 단계별로 프로그램에 대한 튜토리얼과 간략한 설명과 함께 그 수준에 맞는 프로그램을 작성해서 레벨업 시키는 방식.
- 정모/2005.5.23 . . . . 2 matches
나쁜점 : >자리구하기<, 아르바이트 및 약속으로 참석저조, >세미나 하시는 분들 참석 저조<, 놀고싶음, 생활리듬파괴
* 새 벽 : 좋은점 : >장소구하기<, 집중이 잘됨, >감금<, 맑은 공기, 성취감, 살빠짐, 졸음극복연습
- 정모/2011.10.5 . . . . 2 matches
1. 요새 정모가 주로 앉아서 듣기만 하는 형태인 것 같아서 퀴즈를 진행했는데 예상보다 정적인 퀴즈가 됐네요ㅜㅜㅜ 다음주엔 좀 더 활발하게 다들 참여할 수 있는 프로그램을 준비하겠습니다. 운동장 빌려서 체육대회라도할까요??? - [김수경]
* 세미나 잘 봤습니다. 안드로이드에 관심은 있지만 허니컴은 디바이스가 없어서.. ㅠㅠ 어디가서 갤탭하나 물어오고 싶습니다. OMS도 재미있는 주제였습니다. 툴의 위대함도 있지만 저런 프로그램을 만드려면 돈을 얼마나 투자해야할까.. 라는 생각도 들었습니다-_-; OX퀴즈의 올 F는 압권이었습니다. 다음에 또 한다면 이런 경험을 참고해야겠어요. - [정진경]
- 정모/2011.3.7 . . . . 2 matches
* 사람이 적어 예전에 실패한 SpringSecurity를 이용하여 동네API와 OAuth 연동하는 실습을 함.
* 학생회 회의 떄문에 늦어서 루비 세미나 뒷부분부터 참석한 관계로 많은 프로그램을 놓쳐버렸습니다 OTL 아쉽더군요... 우선 새싹의 경우는 나름 담당자 인데 정모에 참여를 못해서 아쉽습니다. 그리고 성현이형의 영화 해석을 보면서 깨달은건데 그렇게 영화가 해석되는지 몰랐습니다. 그리고 JavaScript 스터디에 야매로 참가하면서... 알게된 내용이지만 인터프리터 언어에도 객체지향 언어가 존재하고 종류가 꽤 많다는게 신기하네요. 제가 어디서 주워 듣기로는 Python도 OOP가 가능하다고 하던데;; 아무튼 늦게 들어간게 죄입니다 ㅠ -[윤종하]
* 루비로 만들어진 프로그램 많아요!! 대표적인 Ruby on rails랑 redmine도 있고.. 어디서는 요즘 GUI 대세는 루비라고도 하던데ㅎㅎ 루비가 별로 쓸일이 없는건 제가 루비를 잘 몰라서였습니다 하하ㅠㅠㅠ 덧)Objective-c를 아예 날잡고 세미나 하는것도 좋을거같아요 - [서지혜]
- 정모/2011.4.11 . . . . 2 matches
1. 스피드 퀴즈는 이번에 처음 시도해봤는데 다들 어떠셨어요? 저는 역시 스피드라 그런지 정신이 없더라구요. 그 정신없는 점이 재밌기도 했지만요 ㅋㅋㅋㅋ 다음에는 스피드 퀴즈 말고 칠판을 이용한 캐치마인드를 한번 시도해볼까합니다. - [김수경]
* 악.. 후기를 썼다고 기억하고 있었는데 안썼네요ㅠㅠ.... 항상 새로운 프로그램을 준비하는 회장님께 박수를 보냅니다. 진실, 거짓은 전에도 해봤지만 자기를 소개하는 IceBreaking도 즐거웠습니다. 의외의 사실과 거짓은 항상 나오는 것 같습니다. 스피드 퀴즈도 즐거웠습니다. 재학생들이 그간의 활동을 회고하고 11학번 학우들이 새로운 키워드를 알게된 좋은 계기였다고 생각합니다. 순의의 OMS도 즐겁게 봤습니다. 자신이 이야기하고자 하는 내용을 좀 더 자신 있게 표현하지 못하고 약간 쑥스러워(?) 하는 면도 보였지만 동영상도 그렇고 많은 준비를 했다고 느꼈습니다. 다음 OMS에 대한 부담이 큽니다=_=;; - [Enoch]
- 정모/2011.7.18 . . . . 2 matches
* 파일 비교 프로그램을 두주간 구현하는 것이 목표.
* 해결이 안 된 PIGS와 The lazy programmer를 다같이 풀기로 함.
* 한종이가 집에 남는 컴퓨터를 굴리는 방법을 OMS해 주었죠. 서버쪽은 아직 관심이 없어서 전혀 손대보지 않고 있었는데, 한종이는 진규한테 여러모로 들었다거나 혼자 여러가지를 연구해보아 많은 것을 알고 있는거 같았어요. (그러나 리눅스에 대한 관심이 일어나지는 (아직) 않았습니다..ㅠㅠ) 지원이누나가 해준 DB2에 대한 설명(과 IBM에 대한 설명)에서는 우리과에 관련된 스키마를 여러가지 얻을 수 있어 좋았던거 같았어요. 항상 ZP형누나들이 많은걸 알려주셔서 정말 즐겁네요. ㅎㅎㅎ-[김태진]
- 정모/2012.4.30 . . . . 2 matches
wibro는 WiMAX 프로토콜을 이용한 상표명입니다. wibro의 경우 IEEE 802.16e 표준을
바탕으로 하고 있는데 4G는 IEEE 802.16m 표준을 이용한 기술을 말하므로 wibro가
- 정모/2012.5.7 . . . . 2 matches
* rur-ple을 이용한 짝 프로그래밍
* Phython 문법이 기억이 나질 않아 좀 헤해었습니다. 그런데 문법을 다시 까먹었다는 함정. - [김희성]
- 정모/2013.3.18 . . . . 2 matches
사업에서 중요한 것은 아이디어가 아님. 일단 살아남을 것, 그리고 빠르게 성장할 것 두가지임. 얼마나 대단한 사업 기밀인지는 모르겠지만 일단 개발자도 구하기 힘드실 것 같다. 전략은 비밀인데 일단 투자하라는 꼴이네. - [서지혜]
* [이병윤] 학우의 기계 학습을 이용한 Segmentation
- 정모/2013.3.25 . . . . 2 matches
* [김홍기] 학우의 문서 내용으로 파일 찾는 프로그램 소개.
* 튜티들도 위키를 사용할 수 있게 위키 사용법을 알려 주세요.
- 조동영 . . . . 2 matches
=== Windows API ===
얼떨결에 코 꿰어서 하게댄 프로젝트... 라고하긴 머하나... 다른사람에게 설명해주는 법을 공부한다고 생각하고 해야지...
[조동영/이야기], [TicTacToe/조동영], [Map연습문제/조동영], [HASH구하기/조동영,이재환,노수민], [JavaStudy2004/조동영], [3 N+1 Problem/조동영]
- 조영준/다대다채팅 . . . . 2 matches
* 새싹교실에서 소켓에 대해 배우고 쓰레드에 대해 배운 다음에 삘받아서 슉슉 만든 프로그램.
* 원래 있던 일대일 채팅 프로그램을 개조.
- 졸업논문/본론 . . . . 2 matches
관계형 데이터베이스는 관계형 모델에 따라 논리적으로 연관이 있는 데이터를 모아놓은 것이다. 관계란 n-tuple이 한 줄 씩 배열된 것으로, 줄이 배열된 순서는 관계없고, 모든 줄은 구별할 수 있어야 한다.[11] 데이터베이스 관리 시스템(DBMS)는 데이터베이스를 구성, 변경, 조회하는 프로그램을 모아 놓은 것이다.[12] 현재까지 관계형 DBMS가 많이 쓰이고 있는데, 이는 관계를 테이블로 나타내고 키를 이용해 정보를 연결하는 특징을 가진다.[11] SQL은 관계형 데이터베이스의 데이터를 생성,조회,변경하는 언어로 ANSI/ISO표준이다.[13] SQL을 이용하면 데이터베이스 테이블 생성에서부터 데이터 추가, 삭제, 변경, 조회는 물론이고 여러 건에 대한 트랜잭션처리까지 가능하다.
Django는 오픈 소스 프로젝트로 code.djangoproject.com/browser/django 에서 전체 소스코드를 확인할 수 있다. 문서에 따르면 django 데이터베이스 API는 "SQL문을 효율적으로 사용하고, 필요할 때는 알아서 join연산을 수행하는 강력한 구문을 가졌으며, 사용자가 필요할 경우 직접 SQL문을 작성할 수 있도록 지원"[5]한다. 추상화된 구문을 사용하더라도 데이터는 관계형 데이터베이스에 저장하게 되는데, MS SQL, MySQL, Oracle, PostgreSQL, SQLite3와 같은 DBMS를 사용할 수 있다.
Django의 설계 철학은 한 마디로 DRY(Don't Repeat Yourself)이다. 확연히 구분할 수있는 데이터는 분리하고, 그렇지 않은 경우 중복을 줄이고 일반화한다. 데이터 뿐 아니라 개발에 있어서도 웹 프로그래밍 전반부와 후반부를 두 번 작업하지 않는다. 즉 웹 애플리케이션 개발자는 SQL을 사용하는 방식이 도메인 언어에 제공하는 프레임워크에 숨어 보이지 않기 때문에 프로그램을 동적으로 쉽게 바뀔 수록 빠르게 개발할 수 있다. 또한 후반부 데이터 모델이 바뀌면 프레임워크에서 전반부에 사용자에게 보이는 부분을 자동으로 바꾸어준다. 이러한 설계 철학을 바탕으로 기민하게 웹 애플리케이션을 개발할 수 있다.
- 졸업논문/참고문헌 . . . . 2 matches
[6] "Model reference", http://www.djangoproject.com/documentation/model_api/
[7] "Database API reference", http://www.djangoproject.com/documentation/db_api/#retrieving-objects
- 중위수구하기/허아영 . . . . 2 matches
내가만든 이 프로그램에서 변수 테이블을 만들어 보면.
[LittleAOI] [중위수구하기]
- 즐겨찾기 . . . . 2 matches
[(zeropage)SpiralArray]
[http://www.winapi.co.kr/ WINAPI]
- 지금그때/OpeningQuestion . . . . 2 matches
* 협력 : 가르쳐주지는 않습니다. 하지만 협력을 잘하는 방법을 배울 "기회"는 꽤 많습니다. 잘 이용하세요. 선배들에게 어떻게 하면 협력을 하는 방법을 배울지 물어보세요. 학계에 남건, 회사에 가건 협력을 잘하는 것은 아주 중요합니다.
- 지금그때2005/회의20050308 . . . . 2 matches
이번에도 [여섯색깔모자]를 이용한 회의를 하였습니다.
동문서버를 이용한다.
- 창섭/통기타 . . . . 2 matches
|| [http://cafe.daum.net/picatongjjang 중앙대학교 통기타 동아리 피카통 모임 다음까페] ||
|| [http://cafe19.daum.net/_c21_/bbs_list?grpid=2Yce&fldid=V9D 피카통 10기 다음까페 기타관련게시판] ||
- 최소정수의합/임인택 . . . . 2 matches
몇명을 제외하곤 다들 루프를 ㅤㅆㅓㅅ을것 같아 다른 방법을 생각해보았다. 내 코드를 다 짜고보니 현태와 보창이가 가우스의 방법을 써서 summation 을 구한걸 볼 수 있었다. 고등학교 시절을 떠올린 모양이었다. 난 조금 더 시간을 거슬러 올라가 중학교 시절로 올라갔다. 문제에서 요구하는게, ''~~이상인 최소 정수(사실 이 문제에서는 범위가 정수가 아닌 자연수로 제한되어 있다고 보는게 더 정확하다)를 구하라''인데, 이를 보고 불현듯 '''부등식'''이 생각나 바로 적용하였다. 처음에는 DivideAndConquer 를 생각해 보기도 했는데 영 시원치가 않았다가 발상의 전환을 이룬게 도움이 되었다.
- 최소정수의합/임인택2 . . . . 2 matches
로 정의했다가 이전에 작성했던데로 gauss 의 방법을 이용하여,
에서 rnd의 타입이 Integer로 되었는데 Integer는 다른 값으로 나눠지지 않았다(내가 방법을 모르고 있을수도 있겠지만). haskell wiki를 뒤져 toRational 이라는 함수를 찾았지만 출력되는 모양이 영 마음에 들지 않는다.
- 캠이랑놀자 . . . . 2 matches
|| 2 || 05.9.25 || [캠이랑놀자/050925] || DirectShow 개관. 뼈대 코드 구경. 간단한 캠영상 플레이 프로그램 만들기 || . ||
|| 8 || 05.12.28 || [캠이랑놀자/051228] || 배열로서 표현되는 이미지, 데이터 조작으로서 행해지는 이미지 프로세싱, PythonLanguage & PIL & GrayScale Image 에 대한 필터 실습 || (v) ||
* C++ & Python - 현재 라이브러리들 관계상 C++ 로 구현된 것들이 많은 관계로. 중간에 [1002] 가 Python Wrapper Class 만들기를 시도할 것이긴 함.~ Python 의 경우 이미지 처리에 대해서 prototyping 을 위해 중간에 이용할 예정.
- 컴공과학생의생산성 . . . . 2 matches
물론 효율적이고 생산적인 개발방법을 익혀놓는 것은 중요하겠죠. 개발 기간내에 프로젝트를 완료하는 것은 아주 중요한 일이니까. 하지만 '학교 레포트가 일종의 훈련이라고 할때. 즉 Output보다 개발하는 과정속에서 배워지는 것들이 더 많다고 할때, 누가 더 얻는게 많을것인가?' 라는 질문을 한다면 어떨까요? 만일 제가 그때 무게중심을 '짧은 시간내 가장 좋은 Output'으로 두었다면 얘기가 달랐겠지만. 저러한 생각은 그냥 저의 욕심이였을까요. 암튼, 그당시에 제게 중요했던것은 RAD 툴을 배우는 것이 아닌, 어떻게 해결해야 할까하면서 아이디어를 찾고 코드를 궁리했던 노력이였습니다. (See Also ["컴퓨터가했다"])-- 석천
생산성에 대해 신경 못쓰는 이유중 하나가 능력부족으로 인한 여유부족이 아닐까 하는 생각. 중간에 자기자신이 어떤 방식으로 프로그램을 만들고 있는지를 생각할 여유가 없어서인지도 모르겠네요. 그러한 점에서 개발하기 전의 문서와 작업일지를 작성하는 것이 중요하다고 생각합니다. (자신이 어떤 방식으로 생각을 하면서 일하고 있다라는 것을 인식하고 있는 것은 생산성을 높이기 위한 방법이 되지 않을까 하는.)
- 큐와 스택/문원명 . . . . 2 matches
// 만약 그공간이 OS의 보호아래 현재 프로그램이 접근할수 없는 영역이라면,
// 프로그램은 죽습니다.
- 큰수찾아저장하기/김태훈zyint . . . . 2 matches
//이들을 깔끔하게 출력하는 프로그램을 작성하여라.
//이들을 깔끔하게 출력하는 프로그램을 작성하여라.
- 타도코코아CppStudy . . . . 2 matches
* 매일매일 작은 프로그램을 짜보자!
* Visual C++의 Debug 사용법을 알고싶어요^^ --[선희]
- 타도코코아CppStudy/0811 . . . . 2 matches
최소 한개. 무조건 클래스를 이용하세요. 일단 문법을 익혀야 하니... 또한 될수 있으면 객체지향적으로.
|| Seminar:SpiralArray || . || . || . ||
- 토이 . . . . 2 matches
||[만년달력] ||원하는 년도와 달을 쓰면 그 달의 달력이 나오는 프로그램 || O || O || X || X ||
||[SpiralArray] ||나선형으로 숫자가 증가하는 2차원 배열 || X || O || X || X ||
- 통찰력풀패턴 . . . . 2 matches
일단 지식의 샘([지식샘패턴])을 발견했으면, 그로부터 들이킬 물이 어마어마할 수 있다. 이 패턴은 위대한 작품을 보다 쉽고 바람직하게 공부하는 방법을 제시한다.
[attachment:pi_diagram.jpg]
- 프로그래밍잔치/둘째날후기 . . . . 2 matches
* 오늘 하면서도 느꼈던 것은 고정관념을 버려야 한다는 것!! 어제 역시 새로운 언어를 해보면서 이전까지의 언어에서의 고정관념에 사로잡혀 허우적되는 나를 발견했었는데... 오늘도 또다시 고정관념을 버려야한다는 것을 느끼게 했다. 프로그래밍에서 디자인이 시간낭비라는 고정관념, 코딩이 가장 중요하다는 고정관념, 프로그램 개발에서 가장 많은 시간을 소비하는 부분은 코딩이라는 고정관념.... 반드시 버려야겠다. 디자인은 절대로 시간낭비가 아니라는것... 가장 중요한 것이 코딩이 아니라것... 프로그램 개발에서 가장 많은 시간을 소비해야 할 부분이 코딩이 아니라는것.... 꼭 기억해야 겠다. --["상규"]
- 프로그래밍잔치/셋째날 . . . . 2 matches
1. 먼저 간단한 문제에 대한 프로그램을 작성한다. 제한 시간이 짧으니 가장 빨리 짜도록 한다.
관련 화일 : [http://zeropage.org/pub/WinMergeSetup.exe winmerge(화일비교프로그램)]
- 프로젝트 . . . . 2 matches
* [SmallTalk]다 프로젝트. Feat. [톱아보다], 매주 금요일 10시 모임. [SmalltalkBestPracticePatterns]를 공부하면서 [SBPPSummary]페이지의 완성과, 자판기프로그램 제작이 목표.
* [ProjectEazy] - AI를 이용한 3살짜리 여자아이 '이지(Eazy)' 만들기
- 피보나치/현정,현지 . . . . 2 matches
void pivo()
pivo();
- 학습된무기력 . . . . 2 matches
셀리그먼은 동물을 대상으로 자신의 학습된 무기력 이론을 실험했다. 그외 동료들은 개에게 충격을 피해 도망치는 법을 가르쳤다. 그들은 셔틀 박스-개가 뛰어 넘을 수 있는 높이의 칸막이로 구분된 상자-에 개를 한마리씩 넣었다. 그리고 조명을 어둡게 해서 개들에게 무슨 일이 일어나리라는 경고를 준 다음 약한 전기 충격을 연속적으로 주었다. 전기 충격은 개들이 칸막이를 뛰어 넘으면 피할 수 있단는 것을 깨달을 때 까지 계속 가했다.
이 실험을 하기 하루 전에 셀리그먼의 연구 팀은 개들 중 일부에게 어느 정도 휴식을 주었다. ( 이른바 '순진한 개들'로 만들었다.). 그 반면 나머지 개들은 끈에 묶여 간헐적으로 가해지는 전기 충격을 겪게 했다. 순진한 개들은 얼마 지나자 충격을 모면하는 방법을 깨닫고 셔틀 박스에서 충격이 전해지지 않는 부분으로 몸을 옮겼다. 그러나 나머지 개들은 다른 반응을 보였다. 처음 전기 충격이 가해졌을 때 그 개들은 이리저리 상자 안을 뛰어다녔지만, 이내 포기하고 그 자리에 엎드려 낑낑댔다. 충격이 끝났을 대도 개들은 그 자리에 그대로 있었다. 충격이 재개 되었을 때도 마찬가지의 반응을 보였다. 개들은 포기한 듯싶었다.
- 한자공/시즌1 . . . . 2 matches
* Human 클래스를 짜고, 생성자를 이용해서 초기화를 시키는 방법을 이용해서 수정을 해 봄.
* (드디어) 콘솔에서 입력받는 방법을 각자 책에서 알아보고, 실습을 할 예정입니다.
- 호너의법칙/조현태 . . . . 2 matches
프로그램 돌리면 에러가 뜹니다.
register int i를 여러번 쓴 것은 메모리 낭비를 적게하려는 생각이었습니다. 그냥 메모리도 아니고 레지스터 메모리를 프로그램 시작부터 끝까지 잡고있을 필요는 없을것 같았답니다.^^
- 황현/Objective-P . . . . 2 matches
이제 PHP에서도 Objective-C의 아름다운 문법을!
$myClass->doSomeTaskWithSomething(42, true); // Compiler automatically adds last argument!
- 02_C++세미나/0523 . . . . 1 match
* 포인터와 동적할당을 이용한 Linked List
- 05학번만의C++Study/숙제제출/4 . . . . 1 match
* INT형을 만족하는 숫자를 입력하면 그 숫자를 저장하는 클래스를 생성되었다는 메시지와 함께 생성하라. 만약 입력된 숫자를 가진 클래스가 이미 존재할 경우에는 클래스가 가짖 숫자를 출력하고 해당 클래스를 삭제한다. 프로그램이 종료될떄에는 모든 클래스를 삭제한다. (단 숫자의 출력은 파괴자에서 해야한다.)
- 05학번만의C++Study/숙제제출2/허아영 . . . . 1 match
문자열과 0을 입력하면 프로그램이 끝나게 만들었습니다.
- 0PlayerProject/커널업로드작업정리 . . . . 1 match
* go 위치 : 해당 위치의 프로그램을 실행한다.
- 10학번 c++ 프로젝트/소스 . . . . 1 match
int h10 = h/10; //시,분,초 각각의 10, 1의 자리 구하기
- 1thPCinCAUCSE/ProblemA . . . . 1 match
이렇게 시작 시각과 끝 시각이 주어질 때, 그 시간 구간 동안 시침과 분침이 몇 번 일치하는가를 계산하는 프로그램을 작성하시오. 시간 구간은 12 시간 미만이라 가정한다.
- 1thPCinCAUCSE/ProblemB . . . . 1 match
X에 대해서 N을 계산하는 프로그램을 작성하시오. 해당하는 N이 없으면 -1을 출력한다.
- 2005MFC스터디 . . . . 1 match
기초부터 시작을 하여서 간단한 프로그램 만들기
- 2012/2학기/컴퓨터구조 . . . . 1 match
* Compiler
- 2dInDirect3d/Chapter2 . . . . 1 match
2. BehaviorFlag에는 버텍스를 처리하는 방법을 넣어준다. D3DCREATE_HARDWARE_VERTEXPROCESSING, D3DCREATE_MIXED_VERTEXPROCESSING, D3DCREATE_SOFTWARE_VERTEXPROCESSING중 한가지를 사용한다. (사실은 더 많은 옵션이 있다.) 대개 마지막 SOFTWARE를 사용한다.
- 2ndPCinCAUCSE/ProblemA . . . . 1 match
같은 길이의 성냥개비가 여러 개 주어져 있다. 이것들을 평면에 늘어놓아서 삼각형을 만들려고 한다. 삼각형의 한 변은 여러 개의 성냥개비를 직선으로 이어서 만들 수 있지만, 성냥개비를 꺾거나 잘라서 변의 한 부분을 만들 수는 없다. 성냥개비의 개수가 주어졌을 때, 이들 성냥개비를 사용하여 만들 수 있는 서로 다른 삼각형의 개수를 구하는 프로그램을 작성하시오. 예를 들어서 9개의 성냥개비로 만들 수 있는 서로 다른 삼각형은 3가지이다.
- 2ndPCinCAUCSE/ProblemB . . . . 1 match
우리 나라는 가족 혹은 친척들 사이의 관계를 촌수라는 단위로 표현하는 문화를 가지고 있다. 이러한 촌수는 다음과 같은 방식으로 계산된다. 기본적으로 부모와 자식 사이를 1촌으로 정의하고 이로부터 사람들 간의 촌수를 계산한다. 예를 들면 나와 아버지, 아버지와 할아버지는 각각 1촌이므로 나와 할아버지는 2촌이 되고, 아버지 형제들과 할아버지는 1촌이므로 나와 아버지 형제들과는 3촌이 된다. 여러 사람들에 대한 부모 자식들 간의 관계가 주어졌을 때, 주어진 두 사람의 촌수를 계산하는 프로그램을 작성하시오.
- 2ndPCinCAUCSE/ProblemC . . . . 1 match
N명의 아이들이 임의의 순서로 줄을 서 있을 때, 번호 순서대로 배치하기 위해 옮겨지는 아이의 최소 수를 구하는 프로그램을 작성하시오.
- 2thPCinCAUCSE/ProblemA/Solution/상욱 . . . . 1 match
* 입력 방법을 잘못 알아서 3번 틀렸답니다...ㅠ.ㅠ 원래 다 맞았었는데.. (그러면 3등이었건만...ㅠ.ㅠ) -[상욱]
- 2학기파이선스터디 . . . . 1 match
[2학기파이선스터디/서버&클라이언트접속프로그램]
- 2학기파이선스터디/문자열 . . . . 1 match
>>> s.'''capitalize'''()
- 2학기파이선스터디/함수 . . . . 1 match
== Scoping Rule ==
- 3,5,7빵Problem . . . . 1 match
이때, 컴퓨터가 두번째로 시작한다고 가정하고 사용자의 입력에 따라 무조건 이길 수 있는 최적해를 출력해 이기는 프로그램을 짜면 됩니다.
- 3D업종 . . . . 1 match
opegl api 바이블. 모든 코드는 glut를 이용해 플랫폼 독립적으로 돌아가도록 되어있다.
- 3n 1/이도현 . . . . 1 match
// cycle length 구하기
- 3rdPCinCAUCSE/ProblemA . . . . 1 match
입력으로 바둑판의 어떤 상태가 주어졌을 때, 검은색이 이겼는지, 흰색이 이겼는지 또는 아직 승부가 결정되지 않았는지를 판단하는 프로그램을 작성하시오. 단, 검은색과 흰색이 동시에 이기거나 검은색 또는 흰색이 두 군데 이상에서 동시에 이기는 경우는 입력으로 들어오지 않는다.
- 3rdPCinCAUCSE/ProblemB . . . . 1 match
네 개의 직사각형이 평면에 있는데, 밑변이 모두 가로축에 평행하다. 이 직사각형들이 차지하는 면적을 구하는 프로그램을 작성하시오. 이 네 개의 직사각형들은 서로 떨어져 있을 수도 있고, 겹쳐 있을 수도 있고, 하나가 다른 하나를 포함 할 수도 있으며, 변이나 꼭지점이 겹쳐질 수도 있다.
- 3rdPCinCAUCSE/ProblemC . . . . 1 match
M개의 쌍에 대한 결과를 보고 무게가 중간인 구슬이 될 수 없는 구슬의 개수를 구하는 프로그램을 작성하시오.
- 5인용C++스터디/API에서MFC로 . . . . 1 match
=== 매크로와 가상함수를 이용한 메시지 처리 ===
http://165.194.17.15/~lsk8248/wiki/Study/5%c0%ce%bf%ebC++%bd%ba%c5%cd%b5%f0/API%bf%a1%bc%adMFC%b7%ce/DocumentView.gif
http://165.194.17.15/~lsk8248/wiki/Study/5%c0%ce%bf%ebC++%bd%ba%c5%cd%b5%f0/API%bf%a1%bc%adMFC%b7%ce/SDIApplication.gif
http://165.194.17.15/~lsk8248/wiki/Study/5%c0%ce%bf%ebC++%bd%ba%c5%cd%b5%f0/API%bf%a1%bc%adMFC%b7%ce/MDIApplication.gif
- 5인용C++스터디/버튼과체크박스 . . . . 1 match
* 다이얼로그 박스에서 만들고 사용하는 방법을 발표하면 안됨!
- 5인용C++스터디/비트맵 . . . . 1 match
사진과 같은 정밀한 그래픽을 프로그램 실행중에 일일이 그린다는 것은 괴장히 비합리적.
- 5인용C++스터디/후기 . . . . 1 match
문법이 복잡하고 어려워서 정말 힘들었지만 그에 대한 두려움을 조금이나마 극복하게 된것 같습니다. MSDN 찾아보면서 숙제를 완성시키는 과정이 나름대로 만족스러웠습니다. MFC의 메시징 시스템 등의 체계, 윈도우 메시지의 작동 원리 등을 완벽히 이해하고 싶다는 생각이 듭니다. 스터디를 어떤 식으로 준비하고 발표해야될지 알게 되었고 윈도우 프로그램을 보면 어떤 식으로 만들었는지 대략 알 수 있는 능력이 생긴 것 같습니다. 다음 스터디부터 더욱 열심히 하고 싶습니다.
- 7피관리 . . . . 1 match
* [PC실관리/고스트/네트워크를이용한OS설치]
- ACE . . . . 1 match
우리가 많이 사용하는 버클리 소켓 API 를 사용한다 하더라도, 이기종간 프로그래밍을 하기는 어렵다. 이는 플랫폼간 이식성이 결여되어있고 약간의 차이가 있기 때문에 이식성 높고 안정적인 프로그래밍을 하는데 많은 어려움을 주기 때문이다. 또한 이식에 성공한다 하더라도 이전의 성능을 완전하게 보장받을 수도 없다. 또한 이식을 고려하지 않고 단순하게 소켓 API 만을 사용한다하더라도, 개발자가 조심하지 않는 이상 소켓 API 는 개발중에 문제점을 일으킬 확률이 높다. 이는 소켓 API 가 개발중에 일어날수 있는 문제점에 대한 방지를 보장하지 않기 때문이다. 이러한 문제점을 해결하기 위해 수년간 개발되어온 프레임워크가 [ACE] 이다. [임인택]은 간단한 서버를 작성할때 조차도 [Java]를 많이 선호하였는데, [ACE] 를 알게되면서는 [ACE] 로 서버를 작성해 보고 싶다는 생각을 하였다.
|| [[ISBN(0201604647)]] || [[ISBN(0201795256)]] || http://kangcom.com/l_pic/200311290006.gif [[BR]] AceProgrammersGuide ||
- ACE/CallbackExample . . . . 1 match
cerr << "\tPid: " << log_record.pid() << endl;
- ACM2008 . . . . 1 match
[http://acm.pku.edu.cn/JudgeOnline/ POJ] Peking university Judge Online 이란 시스템이 있는데 온라인으로 프로그래밍 문제를 제공하고, 온라인으로 소스를 보내면 서버에서 컴파일해서 결과를 알려주는 시스템이다. 책에서는 code 의 길이를 이용한 코드 골프쪽에 초점을 맞추고 있었지만 이 프로젝트의 목표상 그럴 필요는 없을거 같다. 다만 온라인으로 제공되는 문제가 꽤 있고 평가하는 시스템이 있으므로 보다 즐겁게 놀 수 있는 '꺼리' 일 것 같다.
- ALittleAiSeminar . . . . 1 match
혹은, 구현 자체가 간단하므로 간단히 문법을 도움받아서 프로그래밍 진행해도 좋음
- AM/20040705두번째모임 . . . . 1 match
* API 1장 ~ 3장 공부
* 진도방식 책위주 아닌 목표 프로그램의 구현을 목표로 진행하는 것은 어떨까? 일종의 milestone (중간 기점)
- AM/20040803여덟번째모임 . . . . 1 match
* 공부한 내용 : MFC 교재 2장(프로그램의 뼈대)
- AM/20040806아홉번째모임 . . . . 1 match
* 공부한 내용 : MFC 교재 3장(GDI를 이용한 그래픽)
- API/WindowsAPI . . . . 1 match
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance
[http://www.winapi.co.kr/win32lec/lec2/lec2-1-1.htm WinAPI 강좌]
[API]
- APlusProject/PMPL . . . . 1 match
Upload:APP_Sequence0606.zip -- EF경우는 객체가 둘 씩 필요한데 표기방법을 잘 몰라서 어떻게 해야할지?
- ActiveXDataObjects . . . . 1 match
마이크로소프트 ADO(ActiveX Data Objects)는 데이터 소스에 접근하려고 고안된 COM객체이다. 이것은 프로그래밍 언어와 데이터 베이스 사이의 층을 만들어준다. 이 층은 개발자들이 DB의 구현부에 신경쓰지 않고 데이터를 다루는 프로그램을 작성하도록 해준다. ADO 를 이용할 경우, 데이터베이스에 접근하기 위해서 SQL 을 알 필요는 없다. 물론, SQL 커맨드를 수행하기 위해 ADO 를 이용할 수 있다. 하지만, SQL 커맨드를 직접 이용하는 방법은 데이터베이스에 대한 의존성을 가져온다는 단점이 있다.
- Ajax . . . . 1 match
http://www.flickr.com picture comment
- AnEasyProblem/강소현 . . . . 1 match
* Compile error
- AngularJS . . . . 1 match
<h3 ng-init="todos=[]"> Topic </h3>
- AntOnAChessboard . . . . 1 match
앨리스는 여덟 번째 단계에서는 (2, 3) 위치에 있었고, 20번째 단계에서는 (5,4) 위치에 있었다. 단계 수가 주어졌을 때, 체스판이 매우 커서 움직일 수 있는 위치에 제한이 없다고 할 때, 앨리스의 위치를 결정하는 프로그램을 만들어야 한다.
- Apache . . . . 1 match
무료 웹 서버 프로그램.
- ApplicationProgrammingInterface . . . . 1 match
= API? =
{{|An application programming interface (API) is a set of definitions of the ways one piece of computer software communicates with another. It is a method of achieving abstraction, usually (but not necessarily) between lower-level and higher-level software.|}}
API는 소프트웨어의 특정부분이 다른 부분과 소통하기위한 방법의 정의들의 집합체이다. 이는 로우레벨, 하이레벨 소프트웨어 사에에서 보통 추상화를 달성하는 한가지 방법이다.
* [API/ISAPI] : IIS의 API.
* [API/WindowsAPI] : 윈도우즈에 기본적으로 제공되는 API
[API]
- Atom . . . . 1 match
Atom is an XML-based document format and HTTP-based protocol designed for the syndication of Web content such as weblogs and news headlines to Web sites as well as directly to user agents. It is based on experience gained in using the various versions of RSS. Atom was briefly known as "Pie" and then "Echo".
As well as syndication format, the Atom Project is producing the "Atom Publishing Protocol", with a similar aim of improving upon and standarizing existing publishing mechanisms, such as the Blogger API and LiveJournal XML-RPC Client/Server Protocol.
[http://www.intertwingly.net/wiki/pie/Rss20AndAtom10Compared RSSAtomCompare]
- AttachmentMacro . . . . 1 match
/!\ Attachment는 매크로로 구현되어 있으므로 {{{[[Attachment(hello.png)]]}}}라고 해도 똑같은 방식으로 작동을 합니다. 그러나 '''attachment:'''문법을 쓰시기 바랍니다.
- AutomatedJudgeScript/문보창 . . . . 1 match
단순한 문자열 비교문제라는 생각이 들었다. Presentation Error와 Accepted 를 어떻게 하면 쉽게 구별할 수 있을지를 고민하다 입력받을때부터 숫자를 따로 입력받는 배열을 만들어 주는 방법을 이용하였다.
- BasicJAVA2005 . . . . 1 match
- JAVA라는 언어를 가지고 어느정도의 프로그램을 짤 수있게 '''기초를 다지기!!'''
- BasicJAVA2005/실습1 . . . . 1 match
- 3개의 숫자를 입력받아 자리와 숫자가 맞으면 스트라이크, 자리는 틀리지만 숫자가 맞으면 볼을 출력하고 3개의 숫자가 맞으면(3스트라이크) 종료하는 프로그램
- BasicJAVA2005/실습2/허아영 . . . . 1 match
Upload:내가처음만든자바프로그램2.bmp
- Basic알고리즘 . . . . 1 match
{{| " 그래서 우리는 컴퓨터 프로그래밍을 하나의 예술로 생각한다. 그것은 그 안에 세상에 대한 지식이 축적되어 있기 때문이고, 기술(skill) 과 독창성(ingenuity)을 요구하기 때문이고 그리고 아름다움의 대상(objects of beauty)을 창조하기 때문이다. 어렴풋하게나마 자신을 예술가(artist)라고 의식하는 프로그래머는 스스로 하는 일을 진정으로 즐길 것이며, 또한 남보다 더 훌륭한 작품을 내놓을 것이다. |}} - The Art Of Computer Programming(Addison- wesley,1997)
- BeeMaja . . . . 1 match
마야를 도와서 윌리가 쓰는 좌표계를 마야가 쓰는 좌표계로 변환해보자. 어떤 벌집 번호가 주어졌을 때, 그 번호를 마야의 시스템에서의 좌표로 변환해서 출력하는 프로그램을 만들어야 한다.
- Bicoloring/문보창 . . . . 1 match
평이한 문제. 이산수학이 생각난다. if...else 구문을 사용할때 모든 조건을 프로그램에서 포함하는지 주의깊게 코딩해야 한다.
- Bigtable/분석및설계 . . . . 1 match
1. 오프셋을 이용한 기록 -> 원형 자료구조
- Bioinformatics . . . . 1 match
Entrez는 통합 데이터베이스 retrieval 시스템으로서 DNA, Protein, genome mapping, population set, Protein structure, 문헌 검색이 가능하다. Entrez에서 Sequence, 특히 Protein Sequence는 GenBank protein translation, PIR, PDB, RefSeq를 포함한 다양한 DB들에 있는 서열을 검색할 수 있다.
- BirthdayCake . . . . 1 match
오늘은 루시와 릴리의 생일이라서 어머니가 생일 케이크를 사오셨다. 케이크에는 체리가 2N(1≤N≤50)개 있다. 어머니는 케이크를 한 가운데를 따라 직선으로 잘라서, 루시와 릴리에게 주는 케이크의 양과 체리의 개수를 정확히 똑같게 하려고 한다. 어머니를 도와주기 위한 프로그램을 만들어보자.
- BlueZ . . . . 1 match
http://tistory.izyou.net/entry/BlueZ-라이브러리를-이용한-리눅스-Bluetooth-프로그래밍
- BookShelf . . . . 1 match
A Maximum-Entropy-Inxpired Parser - 20070216
- Boost . . . . 1 match
정헌이 이거가지고 프로그램 짰잖아. --["neocoin"]
- BoostLibrary . . . . 1 match
정헌이 이거가지고 프로그램 짰잖아. --["neocoin"]
- B급좌파 . . . . 1 match
http://my.dreamwiz.com/fairday/utopia%20main.htm
- C 로배우는패턴의이해와활용 . . . . 1 match
||http://kangcom.com/l_pic/200405180002.jpg||
- C++Study_2003 . . . . 1 match
* 나쁘지 않을 것같네. 나는 마음먹은 대로 프로그래밍을 짤 수 있도록, 후반부의 문법을 가르쳐 주었으면 좋겠다는 생각을 했는데. --[선호]
- C++스터디_2005여름/도서관리프로그램/조현태 . . . . 1 match
[LittleAOI] [C++스터디_2005여름/도서관리프로그램]
- C++스터디_2005여름/학점계산프로그램/문보창 . . . . 1 match
꼭 본인이 모두 학점계산프로그램을 완성한 후 제 가 짠 코드와 비교해 보시기 바랍니다.
- C/Assembly/연산 . . . . 1 match
이렇게 구현했는데 GNU Compiler는 %eax에 포인터를 넘겨줘 그것을 가지고 계산을 한다.
- C/C++어려운선언문해석하기 . . . . 1 match
이 글은 단순히 우리가 이러한 선언문을 맞닥뜨리게 되었을 때 어떻게 이 선언문을 이해할 수 있는가 방법을 알려주는 것입니다. 여기
- CCNA . . . . 1 match
* ip주소에서 네크워크 부분과 호스트 부분을 나누는 방법을 약속한 것이 ip주소의 class(A~E)
- CNight2011/김태진 . . . . 1 match
순의형과 종하형이 개념적인걸 설명해주셨고(왜 배열말고 이런 번거로운 방법을 쓰느냐! 배열을 쓰면 중간에 있는 값을 삭제하거나 삽입하기 너무 어려워지기때문!) 지원누나가 코드가 어떻게 돌아가는지 설명해 주셨어요.
- CORBA . . . . 1 match
CORBA(Common Object Request Broker Architecture)는 소프트웨어 객체가 분산 환경에서 협력하여 작동하는 방식에 대한 일단의 명세서이다. 이 명세서에 대한 책임 기관은 OMG이며, 소프트웨어 업계를 대표하는 수 백 개의 회원 업체로 이루어져 있다. CORBA의 핵심부분은 ORB이다. ORB는 객체의 소비자인 클라이언트와 객체 생산자인 서버 사이에서 객체를 전달하는 일종의 버스로 생각될 수 있다. 객체의 소비자에게는 IDL이라는 언어를 이용한 객체 인터페이스가 제공되며, 객체의 생상자에 의해 제공되는 객체의 자세한 구현사항은 객체의 소비자에게는 완전히 숨겨진다.
- CPPStudy_2005_1 . . . . 1 match
|| [http://kangcom.com/l_pic/200303030001.jpg] ||
- CPPStudy_2005_1/질문 . . . . 1 match
3장 2번째 프로그램인뎅....책대로 쳤는데 에러남..ㅡㅜ
- CarmichaelNumbers . . . . 1 match
주어진 정수가 카마이클 수인지 테스트하기 위한 프로그램을 만들어라.
- CarmichaelNumbers/문보창 . . . . 1 match
중간에 발생하는 버그를 잡는데 대부분의 시간을 허비했다. 65000 이란 수는 작지만 65000의 제곱은 int형의 범위를 벗어난다. ㅡㅡ; 오버플로우를 교모히 이용한 함정에 고생했다.
- CategoryCategory . . . . 1 match
For more information, see Wiki:AboutCategoriesAndTopics .
- CauGlobal . . . . 1 match
* [CauGlobal/Episode]
- CeeThreadProgramming . . . . 1 match
// compile with: /MT
- ChocolateChipCookies . . . . 1 match
반죽을 밀어서 편 다음에 첫번째 쿠키를 잘라내는 단계를 생각해보자. 반죽에 들어있는 초콜릿 칩은 모두 겉으로 드러나 있는데, 원 안에 칩이 최대한 많이 들어갈 수 있도록 자르는 방법을 찾아보자.
- CincomSmalltalk . . . . 1 match
* 연결 프로그램으로 압푹을 푼 디렉토리 안에 있는 bin\win 디렉토리 안에 있는 visual.exe 를 지정해준다.
- ClassifyByAnagram/sun . . . . 1 match
* 분석: 예전에 우스개 소리로, 프로그램을 빠르게 하려면 컴퓨터를 업그레이드 하라더니, 웃을일이 아니다 -_-;
- ClassifyByAnagram/상규 . . . . 1 match
=== 프로그램 소스 ===
- ClipMacro . . . . 1 match
[[Clip(OneStarKospi)]]
- CollaborativeFiltering . . . . 1 match
* NoSmok:PrincipiaCybernetica 에 있는 아주 간단한 개론(처음 보는 사람에게 추천) http://pespmc1.vub.ac.be/COLLFILT.html
- CommentEachOther . . . . 1 match
전에도 느꼈었고, 여러 대가들께서도 자주 말씀하시곤 하는데, 자신의 코드의 퀄리티를 높이려면 남이 만들어놓은 소스를 보라는 이야기가 있다. 이 글을 읽는 분들도 동의하리라 생각한다. CommentEachOther 는 [AOI]나 LittleAOI 처럼 여러 사람이 한 문제에 대한 풀이를 올리고 그것들에 대한 코멘트를 하는 스터디라 할 수 있겠다. 여기서 코멘트라 함은 소스코드에서 명령문 옆에 붙이는 간단한 부연설명이 될 수도 있겠고, 코드 전체에 대한 비평이나 느낌일수도 있다. 처음에는 간단한 문제로 시작해서 디자인 principle 이 들어가있는 프로그램으로 횟감의 스케일을 키워나가는게 어떨까 생각을 한다. 나는 그냥 제안하는 입장이고, 간혹 간단하게 작성한 소스를 올리는 정도로만 참여하도록 하고, 적극적인 참여를 할 사람들이 생기면 이곳에 문제와 자신의 코드를 올리고 토론을 해봤으면 좋겠다. 토론의 방법이야 오프라인 모임에서 하거나 따로 코멘트 페이지를 만들거나. 자. 다들 어떻게 생각하시는지? 참여할분들(!) 계시면 아래에 참여자 목록과 문제를 업로드해 주셨으면.~ - 임인택
- CommentMacro . . . . 1 match
/!\ Comment 매크로 이외에 자신이 만든 매크로가 맨 하단에 들어가도록 위의 방법을 쓰실 수 있습니다. 위의 방법으로 [[FootNoteMacro]]와 [[CommentMacro]]를 넣은 예입니다.
- CommonPermutation/문보창 . . . . 1 match
ASCII 코드를 이용하여 소문자를 0~26의 숫자로 인코딩시켰다. 그 인코딩 숫자를 이용한 배열을 만들어서 그 배열끼리 비교를 해서 공통된 변경 문자열을 쉽게 만들수 있었다.
- CompleteTreeLabeling . . . . 1 match
입력 파일은 여러 줄로 구성된다. 각 줄에는 두 개의 정수 k와 d가 들어있다. k>0이며, 이 값은 k진 완전 트리의 분기계수를 나타낸다. d>0며, k진 완전 트리의 깊이를 나타낸다. k X d ≤21인 모든 k와 d에 대해 작동하는 프로그램을 만들어야 한다.
- CompleteTreeLabeling/하기웅 . . . . 1 match
combination(6, 6/2)이 되고 이렇게 뽑은 것을 두가지로 세울 수 있으므로 2!의 줄세우는 방법을 곱해준다.
- ComputerGraphicsClass . . . . 1 match
2004년 부터는 프로젝트시 OpenGL 을 이용한다. (하지만 파이프라인 밑바닥부터 구현 한다)
- ComputerGraphicsClass/Exam2004_1 . . . . 1 match
Anti Aliasing : 배경의 명도가 90이고 칠해진 부분은 0 이 된다. Sub Pixel 은 9 일때 각 부분에 대한 명도값을 구하시오
Clipping 알고리즘중 Liang-Barsky 를 설명하시고 Cohen-Sutherland 알고리즘보다 성능이 뛰어난 이유에 대해 쓰시오.
3D Graphic Pipeline 을 그리고 각 부분의 transformation 에 대해 설명하시오
- ComputerNetworkClass/2006 . . . . 1 match
* 프로그램들 - 아래 두개 모두 다운 받아야 합니다.
- ComputerNetworkClass/Exam2004_2 . . . . 1 match
SMTP 로 메일을 암호화하여 보낼때의 문제점을 지적하고, 해결방법을 쓰시오.(비밀키 배포 등은 이미 완료되었다 가정)
- ComputerNetworkClass/Report2006/BuildingProxyServer . . . . 1 match
[http://www.web-caching.com/proxy-caches.html 현존하는 여러가지 프락시 서버 프로그램]
- ContestScoreBoard . . . . 1 match
ACM ICPC에 출전하고 싶다면 점수 계산법을 알아야 한다. 경시 대회에 참가한 팀의 순위는 우선 푼 문제의 개수가 많은 순으로, 그 다음으로는 시간 벌점(penalty time)이 적은 순으로 매겨진다. 이 둘을 모두 고려했는 데도 동점 팀이 둘 이상이면 팀 멤버 수가 적은 쪽이 더 높은 순위를 차지할 수 있다.
- Counting/황재선 . . . . 1 match
* 동적 프로그래밍 기법을 사용.
- CppStudy_2002_1 . . . . 1 match
상협. [STL/string|String] 클래스의 스펙을 어떻게 주었는지? 사람들이 왜 전부 String 이용 프로그램 GOD 클래스를 만드는걸까 궁리.
- CppStudy_2002_1/과제1 . . . . 1 match
* 영동의 소스 : 먼저 전체적으로 02학번의 경향이 전역 변수를 쉽게 선언하는거 같다. 전역변수는 나중에 프로그램이 커질 경우에는 다른 여러 변수와 헷갈릴 수 있기 때문에 가능하면 피하는게 좋다.
- CrcCard . . . . 1 match
Class - Responsibility - Collaboration Card. 보통은 간단한 3 x 5 inch 짜리의 인덱스카드(IndexCard)를 이용한다.
- CreativeClub . . . . 1 match
* 인맥을 이용한 멘토링 지원
* 유명한 API 번역
- CryptKicker . . . . 1 match
단일환자치환법은 조금 허접해 보일지 모르지만 결코 이 방식을 무시할수 없는 이유는 거의 모든 암호화 방식이 이 방법을 활용하고, 변형한 방식이기 때문이다.
- Curl . . . . 1 match
Ajax프로그래밍을 해본적이 없어서 Gmail에서 관찰한 내용을 기준으로 해보면... 아마도 curl 로 만들어진 빠른 속도의 애플리케이션을 이용해서 좀더 다양한 처리 같은게 가능하지 않을까요? 뭐 그래픽 에디터를 activex를 이용하지 않고도 만들 수 있다던지.. 그리고 네트워크가 disconnect된 상태에서 사용자가 작업한 내용을 보관하고 있다가 connect된 상태로 바뀌면 작업을 처리하는 일같은 것도 가능할 것 같고요.(ajax가 jscript+dhtml을 이용한 기술이라고 아는데 이런것도 가능한지는 모르겠네요.;;) 아무래도 로컬의 runtime위에서 작동을 하는 만큼 유저의 입장에서 좀더 다양한 상용의 용도가 있을 것이라는 생각이드네요. 물론 runtime 이 있기 때문에 상업적 표준이 되기전에는 기업용 시장에서만 팔릴 것들에만 쓰일지도 모르겠고요. - [eternalbleu]
- CuttingSticks . . . . 1 match
절단 순서에 따라 요금이 달라진다는 것은 그리 어렵지 않게 알 수 있다. 예를 들어 10미터짜리 막대를 한 쪽 끝으로부터 2, 4, 7미터 위치에서 자르는 경우를 생각해보자. 자를 수 있는 방법은 매우 다양하다. 처음에 2미터 위치에서 자르고 그 다음에 4미터 위치, 마지막으로 7미터 위치에서 자를 수도 있다. 이렇게 하면 요금은 10+8+6=24가 된다. 첫번째 막대는 10미터였고, 그 다음 막대는 8미터였고, 마지막 막대는 6미터였기 때문이다. 하지만 일단 4미터 지점에서 자르고 2미터 지점에서 자른 다음 마지막에 7미터 지점에서 자르면 요금이 10+4+6=20이 되므로, 앞에서 잘랐던 방법으로 하는 것보다 요금을 줄일 수 있다. 어떤 막대가 주어졌을 때, 최소 절단 요금을 구하는 프로그램을 만들어보자.
- CxxTest . . . . 1 match
C++ 의 경우는 언어차원에서의 리플랙션을 지원하지 않기 때문에 테스트를 추가하는 부분이 자바나 파이썬 등에 비해 상당히 귀찮다. 그에 대한 대안으로 [CUT] 등의 C UnitTestFramework 의 경우 외부에서 Perl 등으로 작성한 스크립트언어로 테스트실행과 관련한 Runner 를 코드제너레이팅하는 방법을 쓰고 있다.
- C언어시험 . . . . 1 match
수업시간에 시험에 나온 Waterfall, Spiral Model등등 프로세스에 관한 측면과 소프트웨어 디자인에 대한 강의도 있었다고 하는데 제 느낌이지만 교수님께서 너무 앞서나가셔서 (리듬이 맞지 않았다고 하면 될 것 같네요) 학생들이 받아들이는데 문제가 있었던것 같습니다. (이러한 주제를 다룬것 자체에 대해서는 학생들이 그다지 크게 잘못된 생각을 가지고 있는것 같지는 않습니다) 제가 수업을 들었었다면 조금 더 구체적으로 적을수 있었을텐데 아쉽네요. 적적한 메타포의 활용이 아쉽네요. 저는 요새 후배들에게 무언가를 가르치려고 할때 메타포를 많이 활용하고자 한답니다. - [임인택] - 추가해서. 제가 사실을 잘못 알고 있으면 누가 말씀해 주시길 바랍니다.
- C언어정복/3월30일 . . . . 1 match
4. 프로그램 가독성
- C언어정복/3월30일-숙제 . . . . 1 match
1. 인치(inch) 단위를 센티미터 단위로 변환하는 프로그램을 사용자에게 입력을 받고, 계산된 값을 출력하라. (1in = 2.54cm)
- DPSCChapter2 . . . . 1 match
Our story begins with a tired-looking Don approaching Jane's cubicle, where Jane sits quietly typing at her keyboard.
- DataStructure . . . . 1 match
''하지만, 이는 기존 70,80년대 Structured Programming에서 보는 프로그램의 상당히 제한적인 시각이다.''
- DataStructure/Foundation . . . . 1 match
* O(log2n)이게 왜 이렇게 되는지 모르는 사람을 위해.. 귀납법을 쓰도록 하겠습니다.
- DataStructure/List . . . . 1 match
struct Node // 제가 c문법을 잘 모릅니다.. 책에서는 typedef인가? 이상한걸 쓰더군요.
- Debugging/Seminar_2005 . . . . 1 match
== 디버깅 프로그램 사용방법 시연 ==
- DebuggingSeminar_2005 . . . . 1 match
|| [http://www.compuware.com/products/devpartner/softice.htm SoftIce for DevPartner] || 데브파트너랑 연동하여 쓰는 SoftIce, [http://www.softpedia.com/get/Programming/Debuggers-Decompilers-Dissasemblers/SoftICE.shtml Freeware Download] ||
- DermubaTriangle . . . . 1 match
더뮤바 사람들이 다른 집에 방문할 때는 자기 집에서 목적지까지 이르는 최단 경로를 따라서 이동한다. 이때 최단 경로는 그 두 집을 연결하는 직선 거리를 의미한다. 집의 번호가 주어졌을 때 그 두 집 사이의 최단 경로의 길이를 계산하는 프로그램을 만들어보자.
- DesktopDecoration . . . . 1 match
Yahoo가 사들인뒤로 무료로 배포되는 위젯 프로그램. 최초에 나온후로 Mac이 배껴서 MacOSX에 고대로 넣어버린 그 기능이다. 각각의 윗젯들은 독립된 프로세서로 인식되며 Konfabulator 가 관리를 하는 그런 식이다. 따라서 위젯에 따라서 자치하는 메모리의 양이나 리소스가 천차만별이다.
- DevCppInstallationGuide . . . . 1 match
└'''기본언어로 설정'''을 해주면 선택사항이 고정됩니다. 프로젝트 이름은 프로그램 이름이라고 생각하면 됩니다.
- DevOn . . . . 1 match
* [Lisp]을 이용한 실시간 멀티미디어 프로그래밍
* [정진경] - Gnome 3.10 즐기기는 잘 기억나지 않는다... 미안.. 진크리에이터... Wayland는 나름 도움이 되었는데, X 서버가 컴포지터가 인터프로세스 통신을 한다는 사실을 처음 알게 되었다. Wayland는 X 서버와 컴포지터가 합쳐져 있는 형태이고, 프레임버퍼를 위한 API가 제공된다는 것.. 이 부분은 나중에 공부해서 해당 페이지에 자세한 내용을 기술할 필요가 있을 것 같다...
- DirectDraw . . . . 1 match
DirectX 8.1을 이용한 DirectDraw로 무언가를 만들어 보자.[[BR]]
쿨럭. 그럼.. API에 대해서 공부해 봐야겠네요
- DispatchedInterpretation . . . . 1 match
인코딩은 프로그래밍에 있어서 필수적이다. 데이터가 계산으로부터 분리되어 있던 과거에는, 인코딩 작업은 매우 중요했다. 삑사리 한번 내면 돈 겁나 많이 들었다. 하지만 객체지향 시대에는 좀 다르다. 인코딩은 두번째로 밀려나고 객체들 사이의 책임을 분배하는 것이 가장 중요하게 된 것이다. 잘짜여진 OO 프로그램에는, 어떠한 정보에 관심을 가지는 객체가 하나밖에 없어야 한다. 그 객체는 자신의 정보에 직접 접근하고, 은밀하게 인코딩과 디코딩을 수행한다.
- DoWeHaveToStudyDesignPatterns . . . . 1 match
우선 효율성과 순서의 문제입니다. DesignPatterns는 이미 해당 DesignPatterns를 자신의 컨텍스트에서 나름대로 경험했지만 아직 인식하고 있지는 않는 사람들이 공부하기에 좋습니다. 그렇지 않은 사람이 공부하는 경우, 투여해야할 시간은 시간대로 들고 그에 비해 얻는 것은 별로 없습니다. 어찌 보면 아이러니칼하지만, 어떤 디자인 패턴을 보고 단박에 이해가 되고 "그래 바로 이거야!"라는 생각이 든다면 그 사람은 해당 디자인 패턴을 공부하면 많은 것을 얻을 겁니다. 하지만, 잘 이해도 안되고 필요성도 못 느낀다면 지금은 때가 아니라고 생각하고 책을 덮는 게 낫습니다. 일단은 다양한 프로그램들을 "처음부터 끝까지" 개발해 보는 것이 중요하지 않나 생각합니다. (see also [WhatToProgram])
- DocumentObjectModel . . . . 1 match
DOM은 HTML, XML문서를 다루는 API이다. 이것은 프로그래밍 언어와 플랫폼에 비종속적이다. 인터페이스의 뒷쪽에서 이 문서는 객체지향 모델로 다루어진다.
대부분의 XML파서들 그리고 XSL 처리기들은 트리구조를 사용할 수 있도록 개발되었다. 그러한 구현물들은 메모리 안에서 문서의 전체 내용이 파싱되고 저장되는 것이 필요했다. 따라서 DOM은 임의로 접근하고 다루어 질 수 있는 document 요소를 가지는 응용프로그래에서 사용하기좋다. XML기반의 응용프로그램들이 한번 파싱을 할때 읽거나, 쓸수 밖에 없기 때문에 DOM은 메모리 상에서 상당한 오버헤드적 요소를 가지고 있다. SAX 모델은 속도, 메모리의 비효율성 면에 있어서 이점을 가진 모델이다.
XML 에 대해서 파싱하는 API 방식 이야기. DOM 모델이냐 SAX 모델이냐 하는것. 인터페이스 상으로는 DOM 이 쉽긴 함. SAX 는 좀 더 low-level 하다고 할까. (SAX 파서를 이용해서 DOM 모델을 만들어내는 경우가 많음) SAX 는 Tokenizer 가 해당 XML 문서를 분석하는 중의 이벤트에 대한 이벤트 핸들링 코드를 작성하는 것이므로. 그대신 모든 도큐먼트 노드 데이터가 필요한건 아니니, SAX API 로 XML을 파싱하면서 직접 개발자가 쓸 DOM 객체를 구성하거나, 아니면 XPath 를 이용하는게 좋겠지.
DOM API 쓰는 코드와 SAX API 쓰는 코드는 [http://www.python.or.kr/pykug/XML_bf_a1_bc_ad_20_c7_d1_b1_db_20_c3_b3_b8_ae_c7_cf_b1_e2 XML에서 한글 처리하기] 페이지중 소스코드를 참조. XPath 는 PyKug:HowToUseXPath 를 참조. --[1002]
- Doublet . . . . 1 match
"이상한 나라의 앨리스(Alice in the Wonderland)"를 쓴 루이스 캐롤(Lewis Carroll)은 끝말잇기를 비롯하여, 영어 단어를 이용한 퍼즐들을 많이 만들었습니다.
- EffectiveSTL/ProgrammingWithSTL . . . . 1 match
= Item49. Learn to decipher STL_related compiler diagnostics. =
- EightQueenProblem/밥벌레 . . . . 1 match
30분동안 뭔가 다른 방법을 찾아 볼라고 고민을 했습니다만 포기.......-_-;;
- EightQueenProblemSecondTry . . . . 1 match
이번에는 소스코드를 모두 삭제하고, 맨땅에서 다시 시작을 합니다. EightQueenProblem을 만족하는(즉 하나의 해법만 얻는) 프로그램을 다시 한번 작성합니다. 자신이 처음 EightQueenProblem을 풀면서 얻었던 통찰(insight)만을 이용하고, 가능하면 더 깔끔한 해답을 얻으려고 노력하면서 말이죠.
- EnglishSpeaking/2011년스터디 . . . . 1 match
* 참고 도서 : 한 달 만에 끝내는 OPIc (학생편/Intermediate) - 원글리쉬
* There are four members in my family: my father, mother, and a younger brother. Well, actually there are five including our dog. My father was a military officer for twenty years. He recently retired from service and now works in a weaponry company. My mother is a typical housewife. She takes care of me and my brother and keeps our house running well. My brother is attending a university in the U.S.A. He just entered the university as a freshman and is adjusting to the environment. I miss the memory of fighting over things with him. The last member of my family is my dog named Joy. She is a Maltese terrier and my mother named her Joy to bring joy into our family. That's about it for the introduction of my family members.
- EnglishSpeaking/TheSimpsons/S01E02 . . . . 1 match
Lisa : Yeah, Bart. You're supposed to be developing verbal abilities
- EnglishSpeaking/TheSimpsons/S01E05 . . . . 1 match
It's a classic pincers movement. It can't fail against a ten-year-old.
- ErdosNumbers . . . . 1 match
주어진 논문과 논문 저자를 바탕으로 에르되시 수를 계산하는 프로그램을 만들어야 한다.
- EuclidProblem/문보창 . . . . 1 match
예전에 정수론 책에서 본 유클리드 알고리즘의 응용문제이다. AX + BY = GCD 에서 gcd와 x, y 구하는 법을 [문보창]페이지에 원래 가지고 있었기 때문에 단순한 copy&paste로 문제를 풀 수 있었다.
- EuclidProblem/이동현 . . . . 1 match
유클리드호제법을 까먹어서 고등학교 정석책을 참고 ^^
- EventDrvienRealtimeSearchAgency . . . . 1 match
* 그러면 해당 서버에 있는 EDRSA 들은 해당 웝에 대한 모니터링을 신청한 각 사용자들에게 각 사용자들이 입력한 키워드에 따라서 해당되는 내용들만 해당 사용자의 클라이언트 프로그램에 전송해준다.
- Expat . . . . 1 match
To use the Expat library, programs first register handler functions with Expat. When Expat parses an XML document, it calls the registered handlers as it finds relevant tokens in the input stream. These tokens and their associated handler calls are called events. Typically, programs register handler functions for XML element start or stop events and character events. Expat provides facilities for more sophisticated event handling such as XML Namespace declarations, processing instructions and DTD events.
Expat's parsing events are similar to the events defined in the Simple API for XML (SAX), but Expat is not a SAX-compliant parser. Projects incorporating the Expat library often build SAX and DOM parsers on top of Expat.
- ExploringWorld/20040315-새출발 . . . . 1 match
== Epilogue ==
- ExtremeBear . . . . 1 match
* ["ExtremeBear/VideoShop"] - 비디오샵 프로그램 프로젝트
- ExtremeBear/OdeloProject . . . . 1 match
비디오 샵 관리 프로그램을 좀 길게 여유롭게 생각해보면서 해보도록 하였다.
- ExtremeBear/VideoShop/20021105 . . . . 1 match
* CRC 를 사용했고 프로그램의 대부분은 완성했다.
- ExtremeBear/VideoShop/20021106 . . . . 1 match
* Date Class 사용법을 알게 되었다.
- FOURGODS/김태진 . . . . 1 match
* A-B-C-D(-A) 와 같은 순서가 되도록 하는 것의 경우의 수 구하기
- Factorial . . . . 1 match
== Factorial을 구하는 프로그램을 작성한다. ==
- Factorial2 . . . . 1 match
임의의 수 A 에 대한 Factorial 을 구하는 프로그램을 작성하시오. (A 는 20이상이 될 수 있습니다.)
- FeedBack . . . . 1 match
* Sound created when a transducer such as a microphone or electric guitar picks up sound from a speaker connected to an amplifier and regenerates it back through the amplifier.
- Fmt . . . . 1 match
fmt라는 유닉스 프로그램은 텍스트를 읽어온 다음 적당히 연결하거나 끊어서 모든 행의 길이가 72글자는 넘지 않지만 최대한 72글자에 가까운 출력 파일을 만들어낸다. 행을 연결하거나 끊을 때는 다음과 같은 규칙을 따른다.
- FoundationOfUNIX . . . . 1 match
* [http://zeropage.org/~neocoin/putty.exe putty Client] 여기서 프로그램 다운 받아서 깔아서 접속하세요
- FromCopyAndPasteToDotNET . . . . 1 match
* 예제 프로그램들
- FromDuskTillDawn . . . . 1 match
두 도시가 주어졌을 때 최단 경로를 찾는 프로그램을 만들어서 블라디미르가 최소한의 피만 챙겨서 여행할 수 있도록 도와주자. 피를 너무 많이 가지고 다니면 사람들이 "그 피 가지고 뭘 하실 건가요?" 같은 질문을 하면서 의심할 수도 있기 때문이다.
- GoodNumber . . . . 1 match
see also ["데블스캠프2002"], ["소수구하기"]
- Google/GoogleTalk . . . . 1 match
[http://bbs.kldp.org/viewtopic.php?t=54500 Korean Google Talk]
- GridComputing . . . . 1 match
* [http://gridcafe.web.cern.ch/gridcafe/animations.html Flash를 이용한 쉬운 그리드 설명]
- HASH구하기/강희경,김홍선 . . . . 1 match
=== HASH 구하기 ===
- HASH구하기/권정욱,곽세환 . . . . 1 match
== HASH구하기/권정욱,곽세환 ==
- Hacking . . . . 1 match
* ssh(Secure Shell)을 이용한 원격 접속.
- HanoiProblem . . . . 1 match
종종 미로가 너무 복잡할 때 목적지에서 거꾸로 내려오는 것이 더 간단할 때가 있습니다. TestDrivenDevelopment도 이 방법을 사용합니다. 자신이 원하는 것을 컴퓨터에게 설명해 주고, 그 목적지에서 거슬러 내려옵니다.
- HanoiProblem/영동 . . . . 1 match
end main ;프로그램 종료
- HardcoreCppStudy . . . . 1 match
* 이번주 담당자의 사정으로 쉽니다. 숙제로 두번째 숙제에 있는 성적정렬프로그램 짜오세요. 교재로 공부해서.
- HardcoreCppStudy/두번째숙제/CharacteristicOfOOP/김아영 . . . . 1 match
상속이란, 기존에 만들어 놓은 객체들로 부터 모든 변수와 메소드를 물려 받아 새로운 객체를 만들 수 있다는 것을 뜻한다. 즉, 새프로그램을 만들 때 기존의 자료를 이용해(상속받아) 새롭게 정의하여 사용한면 된다는 것이다. 이로인해 부수적으로 프로그래밍의 노력이 줄고 시간 단축되며 그리고 OOP의 가장 중요한 재사용성(Reusability) 얻을 수 있다. 델파이는 TObject라는 최상위 객체로부터 상속시켜 단계적으로 하위 객체들을 생성해 만들어진 구조를 지니고 있다.
- HardcoreCppStudy/두번째숙제/ConstructorAndDestructor/변준원 . . . . 1 match
전역적으로 선언되어서 생성된경우는 프로그램이 종료시에 호출됩니다.
- HaskellLanguage . . . . 1 match
* 저 위에보면, featuring static typing, higher-order functions, polymorphism, type classes and modadic effects 라고 있는데, 이것들이 아마 haskell language의 큰 특징들이 아닐까 한다. 각각에 대해서 알아두는게 도움이 될듯. ([http://www.nomaware.com/monads/html/ monad관련자료])- 임인택
- HelloWorld . . . . 1 match
'''Hello, World!''' 라는 문자열을 출력하는 프로그램은 대부분의 언어를 배우는 첫걸음이 되어준다.
=== Windows API version ===
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int nCmdShow)
- HelpOnCvsInstallation . . . . 1 match
모니위키 본체 프로그램에 대한 번역 메시지.
- HelpOnEditing . . . . 1 match
다음 페이지들은 위키위키를 고치는데 필수적인 규칙/문법을 설명합니다:
- HelpOnHeadlines . . . . 1 match
모니위키의 경우 제목줄에 기본 문법을 사용하실 수 있습니다. 모인모인 혹은 DokuWiki에서는 이를 지원하지 않습니다.
- HelpOnInstallation . . . . 1 match
* 윈도우즈 사용자의 경우는 아파치 웹서버를 제외한 PHP + rcs + 기타 몇몇 프로그램이 함께 패키징 된 apmoni-setup-1.1.x.exe를 제공합니다.
- HelpOnMacros . . . . 1 match
매크로는 {{{[[MacroName]]}}}과 같은 문법을 사용합니다. 매크로에 대한 인자가 필요한 경우가 있는데 각 매크로에 대한 자세한 설명은 해당 페이지에서 확인하실 수 있습니다.
||{{{[[PageList(regex)]]}}} || 정규식에 해당하는 페이지이름 찾기 || HelpIndex ||
- HelpOnPageDeletion . . . . 1 match
== 페이지 복구하기 ==
- HelpOnProcessors . . . . 1 match
프로세서중에 특별히 코드 블럭의 문법을 강조해주는 코드 컬러링 기능을 가진 프로세서를 가리켜 CodeColoringProcessor라고 불리입니다.
- HereAndNow . . . . 1 match
소스안에서 중복이 훤히 보이나 수정은 안하는 실정.. 항상 프로그램 다짜고, 리펙토링이나 해야지.. 라고 말하곤 한다. '이놈의 숙제만 없어도.'라고 입버릇 처럼 중얼거리나, 숙제가 없어진다고 리펙토링을 할까?
- Hibernate . . . . 1 match
요새 한참 인기있는 Java O-R Mapping Tool
- HowBigIsIt? . . . . 1 match
이안이 캘리포니아로 이사를 가기 위해 짐을 싸고 있는데, 지금까지 모은 원도 포장해야 한다. 일련의 원이 주어졌을 때 그 원들을 모두 집어넣을 수 있는 가장 작은 직사각형 상자의 크기를 구하는 프로그램을 만들어야 한다.
- HowManyFibs?/1002 . . . . 1 match
* 구간 계산과 관련, 'a 와 가장 가까운 fibonacci 값을 구하기' 는 반복문 돌리기 & if 로 비교 말고 다른 방법이 없을까?
- HowManyZerosAndDigits . . . . 1 match
만약 800진법일 경우 0~9 까지의 숫자는 표현할수 있겠지만 그 이후의 숫자는 어떻게 표현하나요? 16진법으로 나타낼때 0에서 F 로 표현하는 것처럼, 800진법에서 10이상의 수를 표현해야 할 방법이 있어야 할 것 같은데요. 알파벳을 이용한다고 해도 Z(35)이후의 수는 표현할 방법이 없는데요. 이에 대한 정의가 없다면 정확한 답을 구할 수 없을 것 같습니다(문제에서 말한 ''0의 개수''말이죠). 간단한 예를 들어 설명하자면,
- HowToBuildConceptMap . . . . 1 match
1. Identify a focus question that addresses the problem, issues, or knowledge domain you wish to map. Guided by this question, identify 10 to 20 concepts that are pertinent to the question and list these. Some people find it helpful to write the concept labels on separate cards or Post-its so taht they can be moved around. If you work with computer software for mapping, produce a list of concepts on your computer. Concept labels should be a single word, or at most two or three words.
- HowToEscapeFromMoniWiki . . . . 1 match
이 문서가 제시하고 있는 내용은 완전하지 않을 수 있으며, 기존 MoniWiki 문서 데이터를 백업하지 않고 이 방법을 적용하여 발생하는 문제에 대해 어떠한 책임도 지지 않습니다.
- HowToStudyRefactoring . . . . 1 match
OOP를 하든 안하든 프로그래밍이란 업을 하는 사람이라면 이 책은 자신의 공력을 서너 단계 레벨업시켜 줄 수 있다. 자질구레한 기술을 익히는 것이 아니고 기감과 내공을 증강하는 것이다. 혹자는 DesignPatterns 이전에 ["Refactoring"]을 봐야 한다고도 한다. 이 말이 어느 정도 일리가 있는 것이, 효과적인 학습은 문제 의식이 선행되어야 하기 때문이다. DesignPatterns는 거시적 차원에서 해결안들을 모아놓은 것이다. ["Refactoring"]을 보고 나쁜 냄새(Bad Smell)를 맡을 수 있는 후각을 발달시켜야 한다. ["Refactoring"]의 목록을 모두 외우는 것은 큰 의미가 없다. 그것보다 냄새나는 코드를 느낄 수 있는 감수성을 키우는 것이 더 중요하다. 본인은 일주일에 한 가지씩 나쁜 냄새를 정해놓고 그 기간 동안에는 자신이 접하는 모든 코드에서 그 냄새만이라도 확실히 맡도록 집중하는 방법을 권한다. 일명 ["일취집중후각법"]. 패턴 개념을 만든 건축가 크리스토퍼 알렉산더나 GoF의 랄프 존슨은 좋은 디자인이란 나쁜 것이 없는 상태라고 한다. 무색 무미 무취의 無爲적 自然 코드가 되는 그날을 위해 오늘도 우리는 리팩토링이라는 有爲를 익힌다. -- 김창준, ''마이크로소프트웨어 2001년 11월호''
- ISAPI . . . . 1 match
=== ISAPI ===
Internet Server Application Programming Interface 의 약자로 개발자에게 IIS 의 기능을 확장할 수 있는 방법을 제공한다. 즉, IIS 가 이미 구현한 기능을 사용해서 개발자가 새로운 기능을 구현할 수 있는 IIS SDK 다. 개발자는 ISAPI 를 이용해서 Extensions, Filters 라는 두 가지 형태의 어플리케이션을 개발할 수 있다.
* Low-Level Control : access to the whole array of Win32 API or 3rd party API
* ISAPI operates below helpful IIS infrastructure : helpful programming abstractions are absent. (ex: session )
- ISBN_Barcode_Image_Recognition . . . . 1 match
* 심볼로지란, 바코드를 표시하는 방법을 정한 규칙이다. 이 규칙이 존재해야 해당 바코드를 생성하거나 읽을 수 있다.
* 공식 문서에 따르면 API level 12(허니컴 3.1.x)부터 항상 지원되는 포맷이라고 한다.
- ImmediateDecodability . . . . 1 match
각 그룹에서 프로그램은 그룹의 코드들이 직접 해독 가능성이 있는지를 결정하고, 주어진 그룹 번호와 그룹의 직접 해독 가능성 여부를 한 줄씩 출력한다.
- InnoSetup . . . . 1 match
[NSIS] 처럼 무료로 쓸 수 있는 또하나의 인스톨러 프로그램
- IntegratedDevelopmentEnvironment . . . . 1 match
종종 일반 Text editor가 너무나 많은 기능을 제공하는 나머지 IDE랑 헷갈리기도 한다. vim의 plugin을 깔거나 sublime을 잘 설정하면 IDE부럽지 않게 사용할수 있으나 해당 프로그램은 기본적으로 TextEditor이다. plugin을 통해서 지원하는 기능은 사실상 통합된 기능이라 보기 어렵기 떄문이다.
- JSP/SearchAgency . . . . 1 match
<meta http-equiv="expires" content="0">
- JTDStudy/첫번째과제/장길 . . . . 1 match
* 테스트를 작성하며 느낀거지만 이건아니라는 생각이 자꾸만 드는 이유는 멀까요? ㅋㅋ 테스트를 이렇게 작성해도 돼는건지 모르겟네요... 프로그램도 좀 이상한거 같고... 괸히 삽질만 많이한거같은 생각이.... 흠 객체지향 개념을 다시한번 살펴봐야 겠다는 생각이 자꾸만 드네요... -장길-
- Java/SwingCookBook . . . . 1 match
컨트롤들에 대해서 pixel 좌표계로 layout 가능.
- Java/문서/참조 . . . . 1 match
Java 에서는 new 와 delete 가 없지만 그 대안으로 참조형을 이용한다.
- JavaScript/2011년스터디/7월이전 . . . . 1 match
* 저는 자바스크립트 파일이 로드가 안되었는데 로드가 안되는게 아니라 자바스크립트에 에러가 있었던 거란걸 알게되었습니다. 개발자 도구 좋군요.. 자바스크립트 로드하는 법을 알았으니 이제 키보드 이벤트를 받아야겠습니다. 마우스 이벤트까지는 성공했어요*-_-* 참 사소한것에 기뻐하게 되네요ㅋㅋ 새로운 언어를 배우니 초심자로 돌아간 기분입니다. 헬로월드를 처음 띄웠을 때의 그 시절로.....''아련'' 다음시간까지 키보드 이벤트를 받는 코드를 작성하겠다고 했었나?요? 해야겠네..요.. - [서지혜]
- JavaStudy2002/해온일 . . . . 1 match
* 세연 : 평소의 프로그램이 하던것과 달라서 신기하다. 이것이 좋은 방법인지 모르겠다.
- JavaStudy2003 . . . . 1 match
* 집에와서 해보는데 기억이 안나요 <(;ㅁ;)> 어제 했던 "Hello, World!"프로그램 한번만 다시 올려주심 안될까요..-[선희]
- JavaStudy2003/두번째과제/노수민 . . . . 1 match
자바 언어는 객체지향 프로그래밍을 할 수 있도록 문법을 제공해 준다.
- JavaStudy2003/두번째수업 . . . . 1 match
* 자바 기초 문법을 배워 보도록 합시다. (두번째)
- JavaStudy2003/첫번째수업 . . . . 1 match
* 자바 기초 문법을 배워 보도록 합시다.
- JavaStudy2004/클래스상속 . . . . 1 match
상속은 객체 지향 프로그램에서 가장 중요한 개념 중의 하나이다. 이것은 자바클래스를 직접 디자인하는 문제에 영향을 미친다.상속은 다른 클래스의 정보를 동적으로 액세스하도록 해주기 위해서 그 클래스와 다른 클래스와의 차이를 명시해주면 된다.
return Math.PI * radius * radius;
- JollyJumpers/임인택3 . . . . 1 match
-compile(export_all).
> Pid = spawn(jolly:jollyInt/0).
> Pid ! [4,1,3,2].
- JollyJumpers/허아영 . . . . 1 match
그래서 방법을 바꾸었다.!!
- KIV봉사활동 . . . . 1 match
* 김준석(총무) : 한과, 약, 연수기, 프로그램 셋팅
- KentBeck . . . . 1 match
ExtremeProgramming의 세 명의 익스트리모 중 하나. CrcCard 창안. 알렉산더의 패턴 개념(see also DesignPatterns)을 컴퓨터 프로그램에 최초 적용한 사람 중 하나로 평가받고 있다.
- LC-Display . . . . 1 match
한 친구가 방금 새 컴퓨터를 샀다. 그 친구가 지금까지 샀던 가장 강력한 컴퓨터는 공학용 전자 계산기였다. 그런데 그 친구는 새 컴퓨터의 모니터보다 공학용 계산기에 있는 LCD 디스플레이가 더 좋다며 크게 실망하고 말았다. 그 친구를 만족시킬 수 있도록 숫자를 LCD 디스플레이 방식으로 출력하는 프로그램을 만들어보자.
- LIB_3 . . . . 1 match
우선 내가 만든 프로그램에서 스케줄링을 담당하는 큐는 대략
- LUA_2 . . . . 1 match
마지막으로 오늘 배운 것 이외에 추가로 주석처리 하는 방법을 살펴 보겠습니다. 앞서 예제에서 '--' 를 하고 코드를 설명했는데 '--' 가 주석을 시작하는 코드입니다. 한 줄 이상의 주석 처리는 "--[[" 와 "--]]"를 통해서 처리할 수 있습니다.
- LUA_3 . . . . 1 match
조건문은 조건에 따라서 프로그램의 흐름을 바꾸는 역할을 합니다. 예를 들면 어떤 값이 1 보다 크면 A 라는 명령을 그렇지 않으면 B라는 명령을 수행 하도록 합니다. 대표적으로 if 문을 들 수 있습니다. 지금부터 루아의 제어문을 살펴 보겠습니다.
- LUA_4 . . . . 1 match
함수는 사용하기에 따라 변형할 수 있는게 많아서 천천히 다양한 방법을 설명하겠습니다. 대신 변수의 범위(scope)에 대해서 간단하게 예제로 살펴 보겠습니다.
- LawOfDemeter . . . . 1 match
this topic, see [APPLETON]).
- LearningGuideToDesignPatterns . . . . 1 match
ObserverPattern 과 MediatorPattern 들을 이용한 message의 전달관계를 관찰하면서, ChainOfResponsibilityPattern 의 message handling 과 비교 & 대조할 수 있다.
- LexAndYacc . . . . 1 match
* 작년부터 인가 Compiler 쪽에 커다란 관심을 가지기 시작했는데 이번년 부터 본격적으로 공부를 해보려구요.. 그 전에 Lex 책을 한번 보면 뭔가 하겠구나 하고 느껴질것 같아서 이렇게 시작합니다.
- LinkedList . . . . 1 match
|| 희경 || ["LinkedList/학생관리프로그램"] || C ||
- Linux . . . . 1 match
리눅스와 비슷한 운영체제로는 정통적인 유닉스 클론 이라고 평가받는 [:FreeBSD BSD]계열이 있다. BSD계열중 가장 잘알려진 [http://www.kr.freebsd.org FreeBSD]의 경우 실제로 과거부터 hotmail.com, yahoo.com, cdrom.com 을 운영해온 네트워킹에 대한 안정성이 입증된 운영체제이다. 실제로 2.6커널의 도입이전에는 BSD의 네트워킹이 더욱 뛰어나다는 평가를 받았지만 일반적인 의견이었으나, 많은 구조적 변경을 통해서 리눅스는 현재 이런 점을 극복하고 BSD와 리눅스를 선택하는 것은 운영자의 기호일 뿐이라는 이야기를 한다. 최근에는 리눅스를 데스크탑의 용도로 까지 확장하려는 노력의 덕분에 로케일 설정관련 부분이 대폭 강화되었으며, 사용자 편의성을 고려한 WindowManager인 [Gnome], [KDE] 등의 프로그램이 대폭 강화되면서 low-level 유저라도 약간의 관심만 기울인다면 충분히 서버로써 쓸 만한 운영체제로 변모하였다.
- LinuxProgramming/QueryDomainname . . . . 1 match
표준 BSD socket 을 이용한 소스. 리눅스에서 컴파일해야함. 대충 바꾸면 윈도우에서도 할 수 잇음.
- LinuxServer . . . . 1 match
서버를 구축하고 관리하고 다양한 웹 프로그램을 사용해 보는 프로젝트.
- LinuxSystemClass/Exam_2004_1 . . . . 1 match
Linux 에서의 Memory 관리시 binary buddy algorithm 을 이용한다. 어떻게 동작하는지 쓰시오.
- LuaLanguage . . . . 1 match
http://www.redwiki.net/wiki/wiki.php/Lua - redpixel 님의 위키 페이지. Lua 에 관한 한 가장 정리가 잘된 페이지중 하나.
- MFC/AddIn . . . . 1 match
VSC++에는 IDE에 붙여서 프로그램 개발 환경의 기능을 향상시키는 다양한 애드인 들이 있다.
- MFC/DeviceContext . . . . 1 match
윈도우 운영체제에 의해서 정의된 데이터 구조. 윈도우 운영체제가 장치에 비종속적인 GDI 함수로, 출력 요청을 처리하는 출력장치에 대한 작업으로 해석가능하다. DC에 대한 포인터는 윈도우의 API함수를 호출함으로써 얻을 수 있다.
= Mapping Mode =
|| MM_ISOTROPIC || 임의 길이를 갖는다. 그러나 x, y축의 길이는 동일하다. 방향성은 MM_LOENGLISH와 동일 ||
|| MM_ANISOTROPIC || 임의 길이를 갖는다. 그러나 x, y축의 길이가 달라도 무관. ||
SetViewportOrg() API 함수나, CDC::SetViewportOrg()를 이용해서 원점의 위치를 변경할 수 있다.''
- MFC/Print . . . . 1 match
|| m_bDocObject || 응용프로그램이 lPrint 인터페이스를 통하여 출력하면 TRUE로 설정되며, 그렇지 않은 경우에는 FALSE이다. ||
- MFC/ScalingMode . . . . 1 match
= ScalableMappingMode =
MM_ISOTROPIC, MM_ANISOTROPIC
좌표계가 MM_ISOTROPIC, MM_ANISOTROPIC 이외의 다른 것은 WindowExt, ViewPortExt 가 고정되어 변경이 불가능하다.
= 확대 기능시의 CScrollView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) =
pDC->SetMapMode(MM_ANISOTROPIC); // map mode 설정
int xLogPixels = pDC->GetDeviceCaps(LOGPIXELSX); // 인자에 해당하는 장치 정보를 리턴한다. 인치당 픽셀의 개수를 리턴. 100단위
int yLogPixels = pDC->GetDeviceCaps(LOGPIXELSY);
int xExtent = DocSize.cx * m_Scale * xLogPixels / 100;
int yExtent = DocSize.cy * m_Scale * yLogPixels / 100;
- MFCStudy_2002_2 . . . . 1 match
열심히 해서 훌륭한 프로그램을~ ㅋㅋㅋ... -상욱["whiteblue"] [[BR]]
- MIB . . . . 1 match
* 기타로 지구를 구하기도 한다. 물론 대통령도 모르는 기구라서, 훈장 같은것이나 업적을 전혀 인정 받지 않는다. (이점이 드라마 Star Gate와 차별되는 점이다.)
- MT날짜정하기 . . . . 1 match
=== Opinion ===
- MacromediaFlash . . . . 1 match
XML 을 이용하는 방법과 loadVariables 를 이용하는 방법 등이 있다. 혹은 Flex 를 이용한다. 혹은 SOAP 을 연동할 수 있다.
- MagicSquare/동기 . . . . 1 match
cout<<"마방진 작성 프로그램입니다. 홀수를 입력하세요 >> ";
- MagicSquare/영록 . . . . 1 match
cout << "마방진 프로그램을 시작하겠습니다.\n";
- MajorMap . . . . 1 match
Registers are a limited number of special locations built directly in hardware. On major differnce between the variables of a programming language and registers is the limited number of registers, typically 32(64?) on current computers.
- MatLab . . . . 1 match
[그래프를이용한결과분석]
- MedusaCppStudy/석우 . . . . 1 match
//가장 긴 stirng과 가장 짧은 string의 길이 구하기
- MedusaCppStudy/희경 . . . . 1 match
문장 입력시 가장 긴, 짧은 단어의 길이 구하기
- MemoryUsageInJava . . . . 1 match
자바로 작성된 프로그램에서 사용된 메모리 크기 측정. 외부에서 import 된 모듈에서 사용하는 메모리도 측정되는지는 잘..-_-a
- ModelViewPresenter . . . . 1 match
C++, Java 의 다음 세대 프로그래밍 모델. Smalltalk 의 고전적인 MVC 프로그래밍 모델에서 나왔으며, 다양한 번위의 어플리케이션과 컴포넌트 개발 테스크를 위한 강력하면서 이해하기 쉬운 디자인 방법론. 이 개념의 framework-based 구현물은 MVP 를 em쓰는 개발 프로그램에 훌륭한 가치를 더해준다. MVP는 또한 다중 client/server 나 multi-tier 어플리케이션 아키텍쳐에도 적합하다. MVP 는 IBM 의 대부분의 OO Language 환경들에 대해 단일한 개념의 프로그래밍 모델을 제공해 줄 수 있을것이다.
- MoinMoinBugs . . . . 1 match
''Differently broken. :) I think we can live with the current situation, the worst edges are removed (before, chopping the first byte out of an unicode string lead to broken HTML markup!). It will stay that way until I buy the [wiki:ISBN:0201616335 Unicode 3.0] book.''
- MoinMoinFaq . . . . 1 match
(!) See HelpOnAdministration for general help on this topic
- MoinMoinNotBugs . . . . 1 match
This is not an Opera bug. The HTML is invalid. '''The blocks are overlapping, when they are not allowed to:''' P UL P /UL UL P /UL is not a sensible code sequence. (It should be P UL /UL P UL /UL P... giddyupgiddyup?)
- MoinMoinTodo . . . . 1 match
* Create MoinMoinI18n master sets (english help pages are done, see HelpIndex, translations are welcome)
* WikiName|s instead of the obsessive WikiName' ' ' ' ' 's (or use " " for escaping)
- MoinMoinWikis . . . . 1 match
* [http://www.bioinformatics.org/piperwiki/moin.cgi Wiki for the Piper project]
- MoniWiki . . . . 1 match
MoniWiki is a PHP based WikiEngine. WikiFormattingRules are imported and inspired from the MoinMoin. '''Moni''' is slightly modified sound means '''What ?''' or '''What is it ?''' in Korean and It also shows MoniWiki is nearly compatible with the MoinMoin.
- MoniWikiCssTips . . . . 1 match
http://www.picment.com/articles/css/funwithforms/
- MoniWikiOptions . . . . 1 match
* inline latex문법을 활성화하거나 끈다. latex, mimetex, itex 등등 지원 LatexProcessor
- MoniWikiTutorial . . . . 1 match
* '''쉽고 빠르게''': HTML 문법을 몰라도 누구나 쉽게, 그 결과는 바로바로 웹페이지로
- MultiplyingByRotation . . . . 1 match
프로그램은 이동 곱셈속성을 갖는 숫자중 가장 작은 첫 번째 숫자의 자리 개수를 출력한다.출력 파일도 텍스트파일로 한다. 입력되는 데이터순서에 맞추어 결과를 한 줄씩 출력한다.
- MySQL 설치메뉴얼 . . . . 1 match
2. Pick the directory under which you want to unpack the distribution
stored on your system. If you do not do this, a `Broken pipe' error
- NS2 . . . . 1 match
Networking과 관련된 여러 이론과 아이디어를 가상으로 실험해 볼 수 있는 시뮬레이터. 네트워킹과 관련된 논문에서 가설에 대한 검증을 할때 실제 실험을 해 보는 경우가 아니면 99% 이상이 시뮬레이터를 이용한다.
- NUnit/C#예제 . . . . 1 match
1. Command에는 설치한 NUnit 콘솔 프로그램의 경로를 적어준다.(예:C:\Program Files\NUnit 2.2\bin\nunit-console.exe)
- NumericalAnalysisClass/Report2002_1 . . . . 1 match
Cubic Spline 함수를 계산하기 위해서는 Tri-Diagonal Matrix 에 대한 해를 구할 수 있어야 한다. 다음과 같이 주어진 Tri-Diagonal Matrix 시스템의 해를 계산하는 프로그램을 작성하시오.
- NumericalAnalysisClass/Report2002_2 . . . . 1 match
(3) Compute and plot the piecewise cubic interpolate L3(x)
- NumericalExpressionOnComputer . . . . 1 match
불과 몇 십년전만해도 컴퓨터 학자들은 2진수의 표현보다 10진수의 표현이 더욱 정확하다고 생각했었기 때문에, 특정 정확성을 필요로하는 프로그램에서는 10진수로 데이터를 계산하기도 했다고 함. but 그러나 10진수가 2진수의 표현에 비해 정확하다고 하는 것은 사실이 아니며, 실제로 2진수의 표현법이 더욱 정확한 계산을 보장한다고 함.
- OOP . . . . 1 match
* [Implementation](구현 : 인간의 개념 속에 존재하는 생각과 사상 등을 실제 물리적인 객체로 구성하는 일련의 작업. 예를 들어 새로운 구조의 컴퓨터 시스템을 만들어 내는 작업과 설계 과정을 거쳐서 전달된 내용을 실제 프로그램으로 구성하여 컴퓨터에서 사용할 수 있도록 하는 작업 등이 모두 구현 작업의 한 가지에 해당된다고 할 수 있다. : 정보문화사 컴퓨터 용어사전 발췌)
- Omok/상규 . . . . 1 match
=== 프로그램 소스 ===
- One . . . . 1 match
* http://www.winapi.co.kr/
- Ones/1002 . . . . 1 match
처음에는 brute-force 틱한 방법 적용. 그러다가 세번째 샘플 데이터에서 엄청나게 속도가 저하되는 것을 느낌. 여태껏의 경험에 의하면 '무언가 다른 계산 방법이 있겠군' 이라는 감이 오다. brute-force 방법에서 미리 cut 을 할 방법을 이리저리 시도. (첫째자리와 끝자리만 1 비교.) 시간이 줄어들긴 하나 9901 예제에 대해서 금방 답이 나오진 않음. 9901 보다 큰 예제도 있을것이라 할때, 분명 금방 끝낼 방법이 있을 것이라는 확신은 드나, 생각이 떠오르지 않음.
- OperatingSystemClass/Exam2002_1 . . . . 1 match
8. SJF 스케줄링에서 Next CPU burst를 구하기 위해서 우리는 다음과 같은 예상식을 이용했다.
- OperatingSystemClass/Exam2006_1 . . . . 1 match
5. 알고리즘 평가 방법을 기술하시오.( 6장 내용에 있는 )
- PC실관리 . . . . 1 match
* [PC실관리/고스트/네트워크를이용한OS설치]
- PHPStudy2005 . . . . 1 match
* 일방적인 정보 전달 스터디가 아닌, 하는 방법(메뉴얼 찾아서 하기, 틀정 사이트 Q & A 찾아서 하기, 있던 PHP소스 재활용하기, 모를땐 메신저로 선배한테 물어보기-_- 등..) 을 알려주고, 그에 따라 간단한 PHP 프로그램을 작성해본다.
- PNGFileFormat/FilterAlgorithms . . . . 1 match
* bpp : bytes per pixel
- POLY/김태진 . . . . 1 match
* DP를 이용한 문제.
- PPProject . . . . 1 match
스터디는 어떤 방식으로 할까. 이번 만큼은 제대로 하고 싶어. 적절한 방법을 연구해보자 -- 재선
- PPProject/Colume2Exercises . . . . 1 match
다소 여유를 가지고 PairProgramming 을 했다. 혼자 할때보다 문제 파악이 잘 되었고 뭔가 탁 트인 느낌이 들었다. 아쉬운 점이라면 문제 해결에 너무 매달려서 리펙토링을 게을리한 결과 우아한 프로그램을 완성하지 못했다. 늘 그렇듯이 역할에 맞는 변수명 붙이기는 어렵다. 짧았지만 흥미진진한 시간이었다.
- Parallels . . . . 1 match
요즘에는 이 프로그램이 [http://www.xprogramming.com/xpmag/whatisxp.htm#small eXtremeProgramming] 으로 완성된 제품으로 꽤나 알려졌나보다. ( [http://fribirdz.net/506 관련 블로그] )
- ParametricPolymorphism . . . . 1 match
에러는 피했다. 하지만 우리가 그리도 바라마지 않던 품격의 객체지향 언어가 너덜너덜한 표현법을 쓴다.
- ParserMarket . . . . 1 match
This way, the parser can directly be put on the page without any modification, and as easily copied from that page. See the examples below.
- PhotoShop2003 . . . . 1 match
* 눈깔 책의 내용을 참조하면서 어젯밤 만든 IMAGE CLASS , PIXEL CLASS을 결국 사용안하기로 했다
*If sum of mask_value is '0' or '1' , pixel_values are from '0' to '255' so need not L.U.T.
- PluggableSelector . . . . 1 match
확장성 : 한 오브젝트마다 최대 두번까지만 쓰자. 더 많이 쓰면 프로그램의 의도가 흐려진다. 더 많이 쓰고 싶으면 State Object를 쓰는 법이 있다.
- PragmaticVersionControlWithCVS/HowTo . . . . 1 match
이 장의 나머지에서는 버전관리의 전체 구조를 만들어 나가는 방법.개발팀이 매일해야하는 기본적인 실천 방법을 제시함.
- PrimaryArithmetic . . . . 1 match
초등학생들이 여러 자리 수의 덧셈을 배울 때는 한 번에 한 자리씩 오른쪽에서 왼쪽으로 계산하도록 배운다. 그런데 그 자리 숫자의 합이 10을 넘어갈 때 그 윗자리 숫자에 1을 더해주는 것을 배울 때 많은 학생들이 힘들어한다. 일련의 덧셈 문제가 주어졌을 때 자리를 올리는 횟수를 세어서 선생님들이 학생들을 가르치는 데 도움을 줄 수 있는 프로그램을 만들어야 한다.
- PrimaryArithmetic/Leonardong . . . . 1 match
이렇게 놓고 보니 수식과 비교해 이름을 잘못 지은 부분이 눈에 보인다. 아무튼 전단계 캐리를 구하는 부분을 그냥 작성하느라 흐름을 타지 못했다. 잘 돌아가는 프로그램을 만들었지만, 머리 속에 함수 재귀 호출을 계속 떠올리고 있었다. 수식이란 메타포가 있었는데도 구현을 하는데 메타포를 코드와 연결시키는데 오래 걸렸다. 아니 메타포를 생각하고 구현한 것이 아니다. 중복을 없애다 보니 그제서야 수식이 눈에 들어왔다.
- ProgrammingLanguageClass/Exam2002_1 . . . . 1 match
* Compilation 과 pure interpretion 을 비교하시오.
- ProgrammingPearls/Column6 . . . . 1 match
* 어떤 프로그램이 1년 걸렸었는데 단계별로 쪼개서 튜닝을 했더니 하루만에 되더라하는 내용이 씌어있다.
- ProjectAR/Design . . . . 1 match
* 주인공에게 능력치를 얼만큼 줄지 생각을 해야 한다. 이를 계산하여 넘겨주기 위해 몬스터도 경험치를 가져 그것을 계산하는 방법도 있다. 이런 방법을 구현할려면 오브젝트에서 경험치를 처리하는 수도 있다.
- ProjectAR/ThinkAbout . . . . 1 match
== 프로그램의 핵심적 요소들 ==
- ProjectAR/기획 . . . . 1 match
있을껀 있어야 하겠지만 직접 입력이 되야 하는 데이터를 줄이자는 이야기이죠^^; 어떤 공식을 따라 계산이 되고 기본적인 데이터만 가진다면 프로그램 하는데 있어서 더욱 편하지 않을까 하네요 -[상욱]
- ProjectCCNA/Chapter5 . . . . 1 match
* ip주소에서 네크워크 부분과 호스트 부분을 나누는 방법을 약속한 것이 ip주소의 class(A~E)
- ProjectLegoMindstorm . . . . 1 match
* 빨리 위키 사용법을 익히고 페이지를 만들어 나갔으면 좋겠네요. - [이승한]
- ProjectPrometheus/AcceptanceTest . . . . 1 match
* 테스트 프로그램 소스 열기 링크 추가.
- ProjectPrometheus/BugReport . . . . 1 match
- 자주 바뀌는 부분에 대해서 Page -> Object Mapping Code Generator 를 만들어내거나, 저 부분에 대해서는 텍스트 화일로 뺌 으로서 일종의 스크립트화 시키는 방법(컴파일을 하지 않아도 되니까), 화일로 따로 빼내는 방법 등을 생각해볼 수 있을 것 같다.
- ProjectPrometheus/Iteration . . . . 1 match
|| 1 || 책 검색 (검색 UI, 검색 Spider) || 1 ||
- ProjectPrometheus/Iteration1 . . . . 1 match
|| HTML 문서 가져오는 클래스 (Spider) 작성 || 1 || ○ (2시간) ||
- ProjectPrometheus/Iteration4 . . . . 1 match
|| Data Base 접근 SpikeSolution || 1 || ○ ||
- ProjectPrometheus/Iteration8 . . . . 1 match
|| Shoping Cart(가제) 기능 || . || . ||
- ProjectPrometheus/LibraryCgiAnalysis . . . . 1 match
또는 웹 필터 프로그램인 Proxomitron 을 이용할 수도 있다. (http://proxomitron.cjb.net/) 개인적으로는 webdebug 가 더 해당 폼 값/헤더 값만 보기엔 편했던걸로 기억.
- ProjectPrometheus/Tips . . . . 1 match
Python 에서는 urllib 와 httplib 를 이용한다. Python document 의 httplib - examples 를 참조하면 된다.
- ProjectPrometheus/UserStory . . . . 1 match
1 책 검색 (검색 UI, 검색 Spider)
- ProjectSemiPhotoshop . . . . 1 match
* ["ProjectSemiPhotoshop/SpikeSolution"] - 해당 스토리의 솔루션 시도 페이지입니다.
- ProjectVirush/Prototype . . . . 1 match
// 이것은 프로그램이 socket과 연결할 정보를 담고있다.
- ProjectVirush/Rule . . . . 1 match
* 지령 - 외계인 본부에서 처음 시작하는 사람에게는 게임을 시작하는 방법을 알려주는 도움말으로써 지령을 내린다. 모든 플레이어어에게 지령을 내려서 경쟁을 시킬 수도 있다.
- ProjectZephyrus/Thread . . . . 1 match
''혼자서 플밍할때에도 자주 발생하는.. ^^ 다른 프로그램들 플밍하다가도 비슷한 패턴의 코드들이 많이 보여서 그런 건 따로 utility class 식으로 디렉토리 따로 두고 관리하고 했었죠. 프로젝트 진행중에는 다른 사람들 소스를 지속적으로 같이 봐 나가면서 생각해야겠군요. CVS 로 한곳에 소스를 모으면 도움이 될 것이라 생각. --석천''
- ProjectZephyrus/ThreadForServer . . . . 1 match
이 아주 간단하고 단순한 프로그램을 수행하기 위해서 아래의 두가지 라이브러리가 필요 하다. 다운 받아서 클래스 패스에 잡아 놓기 [[BR]]
- ProjectZephyrus/일정 . . . . 1 match
- 이번 프로그램의 규모를 측정해 본다.
- PyOpenGL . . . . 1 match
새 버전의 [PyOpenGL]의 경우 메소드 이름이 약간 바뀌었다. xxxFuncCallback 함수 대신 xxxFunc 식으로 쓰인다. Nehe 의 코드 대신 [PyOpenGL] 인스톨시 같이 인스톨되는 Nehe Demo 프로그램 코드를 이용하기를 권한다.
- Python/DataBase . . . . 1 match
* [http://www.python.org/topics/database/modules.html 기타모듈다운로드]
* 아래 소스는 파이썬 DB API Spec 2.0 에 있는 것들을 사용해서 작성함(즉 다른 모듈에서도 동일하게 사용가능)
* [http://www.python.org/peps/pep-0249.html APISpec2.0설명서]
- REFACTORING . . . . 1 match
* 프로그램의 내부구조조정. 실제로 해당 코드가 하는 역할은 수정하지 않으면서 내부구조를 더 효율적으로 수정하는 작업. (수학의 인수분해를 생각해볼 것)
- RUR-PLE/Hudle . . . . 1 match
pick_beeper()
- RandomWalk/ExtremeSlayer . . . . 1 match
//// 본 프로그램 ////
- RandomWalk/대근 . . . . 1 match
cout << "랜덤 프로그램입니다..\n";
- RandomWalk2/Insu . . . . 1 match
* 하면서 static 사용법을 확실히 익혔습니다. 상규 땡쓰~^^
- RandomWalk2/TestCase2 . . . . 1 match
test.exe 는 작성한 프로그램 실행 파일 이름입니다.
- RandomWalk2/상규 . . . . 1 match
=== 프로그램 소스 ===
- RedThon/HelloWorld과제 . . . . 1 match
다음..함수를 이용한...나름대로..함수이길..바라고 있음...;;
- Refactoring/OrganizingData . . . . 1 match
* You have domain data available only in a GUI control, and domain methods need access. [[BR]] ''Copy the data to a domain object. Set up an observer to synchronize the two pieces of data.''
- RegularExpression/2011년스터디 . . . . 1 match
Pattern.comppile("정규표현식");
- ReleasePlanning . . . . 1 match
기술자들이 기술적인 결정을 내리고 현업 사람이 업무에 대한 결정을 내리는 것은 매우 중요한 일이다. 릴리즈 계획은 몇가지 규칙을 갖고 있는데 이것은 프로젝트에 참여한 모든 사람이 자신의 결정을 내리게 한다. 이러한 규칙은 각각이 수행할 계획을 협상하는 방법을 담고 있다.
- ReplaceTempWithQuery . . . . 1 match
이러한 방법을 사용하면서 부가적으로 얻을 수 있는 장점이 하나 더 있다. 실제로 도움이 될지 안될지 모르는 최적화를 하는데 쏟는 시간을 절약할 수 있다. 임시변수 사용뿐 아니라 이러한 미세한 부분의 조정은, 해놓고 보면 별로 위대해보이지 않는 일을, 할때는 알지 못하고 결국 시간은 낭비한게 된다. 돌이켜보면 나의 이러한 노력이 제대로 효과가 있었는지도 모른다. '''왜?''' 프로파일링 해보지 않았으니까. 단순히 ''시스템을 더 빨리 돌릴 수 '''있을지도''' 모른다''는 우려에서 작성한 것이었으니까. [http://c2.com/cgi/wiki?DoTheSimplestThingThatCouldPossiblyWork DoTheSimplestThingThatCouldPossiblyWork]
- ReverseAndAdd/황재선 . . . . 1 match
테스트가 프로그램의 최종 테스트 밖에 없구나. 바로 모든 소스를 만들지는 않았을테고... 테스트 보폭을 줄이는 게 좋을 듯. --재동
- RoboCode . . . . 1 match
각 로보코드 참가자는 자바 언어의 요소를 사용하여 자신의 로봇을 만들면서 자바가 갖고 있는 상속성, 다형성, 이벤트 처리 및 내부 클래스 다루는 방법을 배우게 됩니다
* [http://robocode.alphaworks.ibm.com/docs/robocode/index.html RoboCode API(English)]
* Upload:Robot한글API.htm - Robot.class API 한글
- RonJeffries . . . . 1 match
왜이리 찔리는지. -_-; 특히 마지막문장.. 프로그래밍을 하다보면 가끔 누구를 위한 프로그램인가를 간과하게 되는 경우가 많게 되는지라서.. ^^;
- Ruby/2011년스터디/김수경 . . . . 1 match
= Ruby를 이용한 프로젝트 =
- RubyLanguage/Expression . . . . 1 match
if song.artist == "Gillespie" then
- RubyLanguage/InputOutput . . . . 1 match
* TCPSocket을 이용한 네트워킹
- RunTimeTypeInformation . . . . 1 match
MFC에서는 C++에서 표준으로 이용되기 이전부터 매크로를 이용한 방법으로 이것을 지원했으며, 아직도 그 잔재가 남아있다.
- SOLDIERS/송지원 . . . . 1 match
// x = i 축을 기준으로 x좌표 이동 수 구하기
- SOLDIERS/정진경 . . . . 1 match
중심으로 삼을 좌표를 찾는게 중요한데요, 저같은 경우 동적계획법을 통해 모든 경우를 살펴봤습니다.(정렬 후 선형 탐색)
- SRPG제작 . . . . 1 match
1. 맵을 편집하는 프로그램. 위에서 만든 타일들을 사용하여 맵을 만든다.
- STL . . . . 1 match
이제 컴퓨터의 속도가 빨라진 지금, C++을 느낄려면 STL을 써서 프로그래밍 해야 Compiled language 라는 느낌을 받을수 있다. --["상민"]
- STL/VectorCapacityAndReserve . . . . 1 match
/* 이 프로그램은 STL Tutorial and Reference Guid 2nd 의 */
- STL/map . . . . 1 match
=== 프로그램의 예 ===
- STL/search . . . . 1 match
이 과정을 재귀적으로 하면 값을 찾을수 있다. 이런 탐색 방법을 Binary Search 라고 부른다. 이것이 성립하려면, 원소들이 정렬되어 있고, 임의접근(random)이 가능해야 한다. 정렬이 안되어 2,3 번의 과정을 진생할수 없다.
- STL/set . . . . 1 match
=== 프로그램의 예 ===
- STL/sort . . . . 1 match
* 우리는 프로그램 첨 배울때 sort 짜는걸 많이 한다. 수행시간이 θ(n*n)이나 되는 소트를 짜곤 했다.
- STL/string . . . . 1 match
* new - char* 로 만든 문자열은 프로그램 사용후 delete 해줘야 되지만, string은 소멸자에서 알아서 해준다. 생산성 증가!
- STL/vector/CookBook . . . . 1 match
* vector<int>... 부분을 보면 또 다른 생성자가 보인다. 인자로 숫자 하나를 받는다. 그 만큼 동적 할당 해준다는 뜻이다. delete? 그딴거 안해줘도 된다. 프로그램 끝나면서 int형 벡터 ar이 소멸되면서 알아서 없애준다.
- SceneDotOrg . . . . 1 match
Demo Art 의 산실. 이곳에 등록된 용량대비 화려한 프로그램들을 한번쯤 구경해보시길. ;)
- Score/1002 . . . . 1 match
1줄로 표현할 방법을 이리저리 고민.
- Self-describingSequence . . . . 1 match
어떤 값 n이 주어졌을 때 f(n)의 값을 계산하는 프로그램을 만들어야 한다.
- SeminarHowToProgramIt/Pipe/vendingmachine.py . . . . 1 match
Type 'help <topic>' for info on:
- ShellSort/문보창 . . . . 1 match
첨에 문제 파악을 잘못해서 중간에 코드를 뜯어고치느라 시간을 많이 허비했다. 귀찮아서 구상을 하지않고, 바로 코딩을 하다보니 발생한 사태였다. 수행시간이 다른사람에 비해 턱없이 길다. 나중에 보다 효율적인 접근방법을 찾아보겠다.
- SilentASSERT . . . . 1 match
그래서 Output 윈도우에 ASSERT 문법을 넣고, 칼라를 넣어 쉽게 확인하게 하면 어떨까 합니다.
- SimpleDesign . . . . 1 match
저 원칙은 XP 와 떼어서 생각하기 힘든, TestDrivenDevelopment 에서 더 제대로 적용된다. TestDrivenDevelopment 를 하면 할수록 가장 단순한 것에 대해서 생각하게 된다. 이번에 기사를 쓰기 위해 간단한 프로그램을 같은 문제에 대해서만 5번 정도 풀어보게 되었는데, 풀 때마다 더 간단한 해결책이 보이게 되고, 문제를 더 잘게 나눌 수 있게 되었다.
- SingletonPattern . . . . 1 match
프로그램 내에서 오직 하나만 존재해야만 하는 공용 객체에 대한 해결방법. (내용에 대해서는 ["Gof/Singleton"] 참조)
- SoftwareEngineeringClass/Exam2006_2 . . . . 1 match
1. Spice Level2의 2.1과 2.2를 각각 설명하시오.
- SpiralArray/영동 . . . . 1 match
[SpiralArray]
- Spring/탐험스터디 . . . . 1 match
* [Spring Framework 3]로 작지만 유용한 프로그램을 만들어보자!
- Star . . . . 1 match
이 열두 개의 줄에서 각각 가장 큰 수를 읽어 들여서 판 위에 있는 수를 모두 더한 값의 최소 값과 최대 값을 구하는 프로그램을 만들어라.
- StephaneDucasse . . . . 1 match
최근 Stephane 은 Squeak 에 대한 책을 쓰고 있다. http://scgwiki.iam.unibe.ch:8080/StephaneDucasseWiki 에서 읽을 수 있다. Turtle Graphics 를 이용한 튜토리얼을 제공하는데 정말 재미있다! Smalltalk 를 입문하려는 사람에게 추천.!
- StepwiseRefinement . . . . 1 match
구조적 프로그래밍에서 상위 모듈을 먼저 개발하고 여기서 사용하는 하?모듈들을 개발해 나가는 방법. EdsgerDijkstra와 Niklaus Wirth가 이 방법을 대중화시킨 것으로 유명하다.
- TAOCP/InformationStructures . . . . 1 match
오버플로우와 언더플로우가 일어났을 때 어떻게 해야 할까? 언더플로우는 하나의 의미있는 조건 - 에러 상황이 아니라 - 이다. 하지만 오버플로우는 더 들어갈 공간이 없는데 들어갈 정보가 남아있어서 에러이다. 따라서 오버플로우가 생기면 용량한계를 넘어서서 프로그램이 종료한다.
- TabletPC . . . . 1 match
http://groove.net 참조. 일종의 P2P 프로그램인데 비즈니스 겨냥. 화일공유, 화이트보드, 메모장, 스케줄러, 브라우저 등의 공유가 가능하답니다. 선우형이 소개해주셨는데 잘 만들었더군요. --석천 [[BR]]
- TddRecursiveDescentParsing . . . . 1 match
''먼저 "1"을 넣으면 "1"을 리턴하는 프로그램을 만듭니다. 다음 "314"를 넣으면 "314"를 리턴하게 합니다. 다음엔, "1 + 0"을 넣으면 "1"을 리턴하게 합니다. 다음, "1 + 314"를 넣으면 "315"를 리턴합니다. 다음, "1 + 2 + 314"를 하면 "317"을 리턴합니다. 다음, "1 - 0"을 하면 "1"을 리턴합니다. 다음, "1 - 1"을 하면 "0"을 리턴합니다. 다음, "314 - 1 + 2"를 하면 "315"를 리턴합니다. 다음, "- 1"을 넣으면 "-1"을 리턴합니다. 다음, "( 1 )"을 넣으면 "1"을 리턴합니다. ...... AST는 아직 생각하지 말고 당장 현재의 테스트를 패스하게 만드는데 필요한 것만 만들어 나가고 OAOO를 지키면서(테스트코드와 시스템코드 사이, 그리고 시스템 코드 간) 리팩토링을 지속적으로 합니다 -- 그렇다고 파싱 이론을 전혀 이용하지 말라는 말은 아니고 YAGNI를 명심하라는 것입니다. 그러면 어느 누가 봐도 훌륭한 디자인의 파서를 만들 수 있습니다. DoTheSimplestThingThatCouldPossiblyWork. --김창준''
- TdddArticle . . . . 1 match
간만에 여유가 생겨서 한번 따라해보게 되었는데, [Hibernate] 가 생각보다 복잡한 녀석이라는 것을 알게 되었다. (내가 O-R Mapping Tool 에 대한 경험이 없기 때문에 더더욱) 한번에 습득하기에 쉬운 녀석은 아니였군.;
- Temp/Commander . . . . 1 match
self.doc_header = "Type 'help <topic>' for info on:"
- TestDrivenDevelopment . . . . 1 match
사람마다 다를것 같긴 하지만, 나의 경우는 테스트를 작성하기 전 TODO List 를 작성할때 가장 고민을 하고 시간이 오래걸린 것 같다. 뭘 만들것인지에 대한 이해가 제대로 되지 않은 상태에서는 도대체 '뭘 해야 할지, 어떤 결과를 기대해야 할지'를 모르기 때문. :) 한편, 만일 TODO 리스트 작성시 시간이 너무 지체된다 싶으면 빨리 '어떤 결과를 기대해야 하나(Test 디자인)' 이란 질문을 하고 테스트를 작성해보는 방법을 추천. 저 질문이 앞에서의 '뭘 할까?'라는 질문의 모호함을 보완해주기 때문. 무엇을 해야 할지 감이 안올때는 가장 간단한 Input-Output 을 서술해봄으로서 조금씩 구체화시켜나갈 수 있음. '예제에 의한 구체화'란 방법은 참 유용함. --[1002]
테스트를 작성할때엔 '이미 완성되어있는 잘 된 API' 를 상상하며 작성한다. 잘 만들어진 API는 같은 일을 하더라도 직접 호출해줘야 하는 함수의 갯수가 적고 이해하기 편하며 '무엇'을 해주는지 그 메소드가 말해준다. 적게 코드를 써도 많은 일을 해주는것이다. 그리고, 테스트로서 컴퓨터의 컴파일러에게 코드작성을 위해 해야 할 일들을 묻고, 인터페이스를 만들고. 그리고 구현하고, 다시 구현된 코드를 Refactoring 한다.
- TheGrandDinner . . . . 1 match
각 팀에 속한 멤버들의 수(경시대회 참가자, 감독, 후보 선수, 참관인 모두 포함)와 각 테이블에 앉을 수 있는 사람 수가 주어졌을 때 처음에 정한 규칙대로 모두 앉을 수 있는지를 결정해야 한다. 규칙대로 앉을 수 있다면, 좌석 배치 방법을 출력한다. 여러 방법으로 배치할 수 있는 경우에는 아무 방법이나 출력해도 된다.
- TheJavaMan . . . . 1 match
- 참여한 사람들이 각자 한개 이상씩의 하고싶은 프로젝트에 들어서 (프로그램을 만드는데 필요한 요소들을 중심으로 각자 책으로 공부하게 된다)같은 팀끼리 일주일에 한 번정도 모이고, 그것을 토요일에 설명하는 과정으로 (따라서 일주일에 두번 정도 모이게 됩니다.) 전체 자바 프로젝트를 진행해야 하는데 참여율이 저조한것 같다. 토요일에는 각자 프로젝트에 대한 세미나(다른 사람들의 이해를 돕기 위해)를 하고, 한번 정도는 밤을 새서 몇개의 프로젝트를 완성하는 방법도 고려중이다.- 10일(토)에 모인 사람들
- TheKnightsOfTheRoundTable . . . . 1 match
멀린이 점심을 먹으러 나간 사이에 해가 비추는 영역에 들어갈 수 있는 가장 큰 원탁의 반지름을 계산하는 프로그램을 만들어야 한다.
- TheOthers . . . . 1 match
* 유덕윤 - C using Win32 API or MFC
* GUI와 Access DB를 이용한 Weekly Report Manager
* MFC(또는 Win32 API)로 DB와 GUI 코딩하기
- TheTrip/Leonardong . . . . 1 match
일단 문제를 이해하는데 시간이 20분 정도 걸렸다. 문제 해결책을 찾아보던 중 평균보다 많이 가진 사람들이 돈을 나누어 주면 된다는 사실을 깨닫기까지 14분 걸렸다. 코드로 만드는데는 41분이 걸렸는데, 알고리즘을 따라 무난히 작성하였다. 나머지 시간은 문법을 보거나 디버깅했다.
- TheTrip/허아영 . . . . 1 match
//평균 구하기
- TheWarOfGenesis2R . . . . 1 match
* ["DirectDraw/APIBasisSource"]
* 내가 그 길찾는 프로그램 돌려봤는데.. 가끔은 벽을 뚫기도 한다. ^^ 내부벽 뿐만 아니라 외부벽을 뚫고 나가 헤매기도..;; 그리고 지그재그로 돌다가 가기도 한다. 참고하라궁...^^ --["창섭"]
- TheWarOfGenesis2R/ToDo . . . . 1 match
== 메인 프로그램 ==
- Thread의우리말 . . . . 1 match
[Thread]. 내가 처음으로 [ZeroWiki] 접근하게 되었을때 가장 궁금했던 것중 하나이다. 도대체 [Thread]가 무었인가?? 수다가 달리는장소?? 의미가 불분명 했고 사실 가벼운 수다는 DeleteMe라는 방법을 통해서 이루어지고 있었다. 토론이 펼쳐지는 위치?? 어떤페이지의 Thread의 의미를 사전([http://endic.naver.com/endic.php?docid=121566 네이버사전])에서 찾아보라고 하길래 찾아보았더니 실에꿰다, 실을꿰다, 뒤섞어짜다 이런 의미가 있었다. 차라리 이런 말이었으면 내가 혼란스러워해 하지는 않았을 것이다. [부드러운위키만들기]의 한가지 방법으로 좀더 직관적인 우리말 단어를 사용해 보는것은 어떨까?? - [이승한]
- ToastOS . . . . 1 match
아차 나는 boland C 3.1버전을 쓰지만 gcc를 쓰는 사람은 MAKE PLAIN BINARY FILE이라는 PDF가 있을 것이다.찾아서 읽어보면 아주 평평한 바이너리파일을 만드는 법을 배울것이다. 참고로 C에서 평평한 바이너리 파일을 만들기 위해 몇가지 주의사항이 있다. 그 PDF파일에 적혀 있으니 읽어보도록...
- TugOfWar . . . . 1 match
제가 짠 프로그램에도 그렇게 나오는데, 손으로 풀면 4+8, 2+3+7이렇게 되네요 --[강희경]
- TugOfWar/강희경 . . . . 1 match
완성시키려면 더욱 더 세련된 알고리즘을 개발하거나, 프로그램이 엄청난 과부하를 갖던지 둘 중 하나
- UML/CaseTool . . . . 1 match
There is some debate among software developers about how useful code generation as such is. It certainly depends on the specific problem domain and how far code generation should be applied. There are well known areas where code generation is an established practice, not limited to the field of UML. On the other hand, the idea of completely leaving the "code level" and start "programming" on the UML diagram level is quite debated among developers, and at least, not in such widespread use compared to other [[software development]] tools like [[compiler]]s or [[Configuration management|software configuration management systems]]. An often cited criticism is that the UML diagrams just lack the detail which is needed to contain the same information as is covered with the program source. There are developers that even state that "the Code ''is'' the design" (articles [http://www.developerdotstar.com/mag/articles/reeves_design_main.html] by Jack W. Reeves [http://www.bleading-edge.com/]).
- UglyNumbers/문보창 . . . . 1 match
접근 방법을 바꾼후 쉽게 풀린 문제. 지수의 조합을 이용.
- UglyNumbers/송지훈 . . . . 1 match
sorting 을 사용하는 방법을 생각해봐야 하겠다 라는 것을 느낌.
- UnityStudy . . . . 1 match
* 매주 이용한 ppt, 예시 프로젝트, 리소스 외 기타 자료를 전부 여기에 올리겠습니다.
- UniversalsAndParticulars . . . . 1 match
WardCunningham은 이런 말을 했다. 작지만 유용한 프로그램을 매일 만들어봐라. 복잡하고 큰 걸 만들다 보면 중요한 아이디어가 감추어져 버릴 수 있다.
자바 스윙에서 어떤 API를 통해 어떻게 그림을 그리는지를 가르치기 보다, Event Driven Programming을 가르치되, 스윙이라는 맥락을 방편으로 이용해 가르친다. 해당 프레임웍의 API가 복잡한 경우, 학습자들은 오히려 그 API를 외우고 공부하느라 더 중요한 것을 잊을 수 있다. 따라서 이런 경우 가르치는 사람이 미리 좀 더 추상적인 차원의 레이어를 만들어(이를 교육학에선 스캐폴딩이라 한다) 제공할 수 있다.
- UpgradeC++ . . . . 1 match
*[UpgradeC++/과제3] 성적관리프로그램
- UrlMappingMacro . . . . 1 match
[[UrlMapping]]
- UsenetMacro . . . . 1 match
This works well with GoogleGroups Beta service. This helps make links to GoogleGroups with text remotely extracted from usenet topic.
- UserStory . . . . 1 match
estimate 를 하기 힘든 경우는 두가지가 있다. 하나는 해당 Story 가 애매한 경우이고 하나는 해당 Story의 구현이 전혀 생소한 부분인 경우이다. 해당 Story 가 애매한 경우에는, 주로 Story에서 해야 할일이 많은 경우이다. 해당 Story를 작은 Story들로 나누어서 생각해본다. 구현이 전혀 생소한 부분에 대해서는 SpikeSolution을 해본뒤 estimation 하는 방법이 있다.
- VMWare . . . . 1 match
특정 플랫폼하에서 머신을 에뮬레이팅. 해당 플랫폼 이외의 환경을 구축하는 것을 가능케 하는 프로그램이다.
- Vaccine . . . . 1 match
도스 시절부터 v3을 사용해왔고 바이러스 검출 능력이 좋고 속도가 빠르다고 생각되어 계속 사용하고 있습니다. 구하기 쉽다는 장점도 있는것 같네요.; -- 재선
- VendingMachine/세연/1002 . . . . 1 match
이쯤에서 문제점 - vending_machine 이 완전히 God 클래스입니다. 완전히 이 프로그램 자체가 vending_machine 객체와 동급이 되어버리죠.
- ViImproved . . . . 1 match
* http://kltp.kldp.org/stories.php?topic=25 - kltp 의 vi 관련 팁 모음, 홈페이지 자체는 지원 중단됨 - DeadLink
- VisualStudio . . . . 1 match
VisualC++ 6.0은 VS.NET 계열에 비하여 상대적으로 버그가 많다. 가끔 IntelliSense 기능이 안될때가 많으며 클래스뷰도 깨지고, 전체 재 컴파일을 필요로하는 상황도 많이 발생한다. ( 혹시, Debug Mode에서 돌아가다가, Release Mode에서 돌아가지 않는 경우도 있는데 보통 이는 프로그램에서 실수 태반이다. 그러나 간혹 높은 최적화로 인해 돌아가지 않을때도 있을 수 있다. )
- VoiceChat . . . . 1 match
다자간에 프로젝트를 진행할때 같은 장소에서 작업을 하기 힘든 경우 음성채팅을 이용하면 그나마 숨통을 틀 수 있다. MSN 메신저를 비롯하여 음성채팅을 지원하는 여러 메신저의 경우 1:1 만 지원한다. 아래의 프로그램을 사용하면 다자간 음성채팅을 무료로 할 수 있다.
- VonNeumannAirport . . . . 1 match
* 중간에 창준이형이 "너희는 C++ 로 프로그래밍을 하면서 STL를 안사용하네?" 라고 했을때, 그냥 막연하게 Java 에서의 Collection Class 정도로만 STL을 생각하고, 사용을 잘 안했다. 그러다가 중반부로 들어서면서 Vector를 이용하게 되었는데, 처음 한두번 이용한 Vector 가 후반으로 가면서 전체의 디자인을 뒤집었다; (물론 거기에는 디미터 법칙을 지키지 않은 소스도 한몫했지만 -_-;) 그걸 떠나서라도 Vector를 써 나가면서 백터 비교 assert 문 등도 만들어 놓고 하는 식으로 점차 이용하다보니 상당히 편리했다. 그러다가 ["Refactoring"] Time 때 서로 다른 자료형 (앞에서 array 로 썼던 것들) 에 대해 vector 로 통일을 하다 보니 시간이 비교적 꽤 지연이 되었다.
- WebService . . . . 1 match
웹 서버를 통하여 프로그램 인터페이스를 노출하려는 방법
- WhatToExpectFromDesignPatterns . . . . 1 match
DesignPatterns are an important piece that's been missing from object-oriented design methods. (primitive techniques, applicability, consequences, implementations ...)
- WhenJuniorsAsk . . . . 1 match
''청자가 뭔가를 느끼느냐 마느냐는 문제를 떠나서, "자각 기회 박탈"이라는 면에서 생각해 볼 수도 있겠지요. 저는 남들에게 뭘 가르치기 이전에 항상 "실패의(혹은 간혹 성공의) 경험"을 충분히 만끽하게 합니다. 그러지 않고 바로 답을 혹은 답에 이르는 방법을 가르쳐 주게 되면 그들은 매우 귀중한 자각의 기회를 박탈 당하는 겁니다. 물론 교육적 방편에서 좀 더 자주, 더 일찍, 더 멋지게 실패할 수 있는 환경을 마련해 주는 경우는 있습니다.''
- WhyWikiWorks . . . . 1 match
So that's it - insecure, indiscriminate, user-hostile, slow, and full of difficult, nit-picking people. Any other online community would count each of these strengths as a terrible flaw. Perhaps wiki works because the other online communities don't. --PeterMerel
- WikiName . . . . 1 match
A WikiName is a word that uses capitalized words. WikiName''''''s automagically become hyperlinks to the WikiName's page.
- WikiNature . . . . 1 match
The WikiNature is typing in a bunch of book titles and coming back a day later and finding them turned into birds in the Amazon.
- Winamp . . . . 1 match
[WinampPlugin을이용한프로그래밍]
- WordPress . . . . 1 match
[http://sapius.dnip.net/wp three leaf clover]
- XML/PHP . . . . 1 match
* [http://devzone.zend.com/node/view/id/1713#Heading7 원문] --> php로 xml다루는 방법을 아주 쉽게 설명했네요
- XMLStudy_2002/Encoding . . . . 1 match
XML로 작성된 파일을 프로세서가 알수 있도록 변환하는 방법을 알아본다.
- XMLStudy_2002/XSL . . . . 1 match
<!-- 디스플레이 방법을 HTML을 이용하여 기술한다. -->
- XpWeek/20041221 . . . . 1 match
UserStory와 서버, 클라이언트 프로그램의 진행 방향이 정해졌다. 네트워크 관련 개발과 TDD 진행이 재밌게 이루어졌으면 좋겠다. -- 재선
- XpWeek/ToDo . . . . 1 match
피시실 관리 프로그램 만들기
- Yggdrasil/가속된씨플플/0장 . . . . 1 match
* 함수: 자신의 이름을 가지며, 다른 곳에서 이를 호출하거나 실행시킬 수 있는 프로그램의 한 조각
- ZIM . . . . 1 match
* 추출된 요구사항을 구현하는 방법을 정의한다. (Design)
- ZIM/ConceptualModel . . . . 1 match
* '''ZIM Control''' : Zimmer 가 사용하는 프로그램 본체
- ZIM/UIPrototype . . . . 1 match
UI 그릴때 MS Visio 를 쓰면 편하더군요. 학교다닐때 알았더라면, 수많은 가상 프로그램을 만들어냈을텐데 :) -- 이선우
- ZP&COW세미나 . . . . 1 match
* C에서는 프로그램 짜는 것 보다 에러 잡는데 시간이 더 오래 걸리는데, TDD는 덜 걸려서 2학년 1학기 자바 수업에 많이 도움이 될 것 같다.
- ZPHomePage/참고사이트 . . . . 1 match
* [http://devpia.com]
- ZP도서관/2013 . . . . 1 match
* 레일즈로 도서 조회 사이트 만들자! 루비 튜토리얼이 도서관리 프로그램 만들기라 그런건 아니고!! - [서지혜]
- ZeroPage/임원/회의/2011-02-13 . . . . 1 match
* 경험을 측정할 방법을 정해야 함 : 경험을 공유하는 것으로 판단
- ZeroPageMagazine . . . . 1 match
프로토타입을 만든다는 것은 말 그대로 '시제품'을 만드는 겁니다. 해당 작업을 완벽하게 하기 전에, 무언가 내가 올바르게 하는 일인건지 리허설, 혹은 실험용 간단한 모델을 만드는 작업을 이야기하죠. 건축으로 친다면 건물 만들기 전 모델을 만들고 선풍기 바람 돌려서 안무너지나 알아본다던지, 혹은 PDA 프로그램을 만들기 전에 PDA 종이 모형을 만들고 그 안에 스크린을 종이로 구성해본다던지 등을 예로 둘 수 있겠습니다.
- ZeroPageServer/BlockingUninvitedGuests . . . . 1 match
- 두가지 방법을 생각 해 볼 수가 있는데, 하나는 아이피 자체를 막는 방법과 특정 URL 의 접근을 막는 방법. (URL을 막는 방법이 가능한지는 모르겠다)
- ZeroPageServer/old . . . . 1 match
|| ["ZeroPageServer/InstalledTool"] || 설치된 프로그램 ||
- ZeroPageServer/계정신청상황 . . . . 1 match
|| 장재니 || bestjn83 || 02 || 2002 || zmc||picatong11 엣 hanmail.net ||zrmcr ||
- ZeroPage_200_OK/note . . . . 1 match
* script tag를 읽어 로딩이 끝나면 바로 실행 하기 때문에 여러개를 동시에 불러올경우 전역변수를 이용한 방식은 불가.
* 프로세스간 통신에 사용되는 Pipe
FILE f = new Pipe();
* Unix에서는 Pipe도 File이므로 static한 file 대신 Pipe를 쓰면 뭔가 다이나믹한게 되지않을까?
* ISAPI(ISS) : DLL이용)
- ZeroPagers . . . . 1 match
* 이영서 : ["Lupin'sHome"]
- ZeroPage소개 . . . . 1 match
* ZeroPage는 컴퓨터공학부 내에 있는 학술 동아리로서, 올해 21년째를 맞이 하고 있습니다. ZeroPage에서는 Computer Science&Engineering 전반에 걸쳐 구성원들이 하고자하는 분야를 탐구하고, 프로젝트를 진행하고 있습니다. 또, 매주 정모를 통해 구성원들과 자신의 스터디, 프로젝트 진행사항들을 이야기하고 각종 세미나들을 통해 자신이 알고 있는 것을 다른 사람들과 공유하여 구성원들 모두가 함께 발전해나가고자 하는 동아리입니다. 또한 새싹교실과 데블스 캠프와 같이 동아리 구성원이 아닌 학우들도 함께 참여할 수 있는 프로그램을 통해 함께 발전해나가고자 하고 있습니다.
- ZeroWiki에서 언어습관 . . . . 1 match
[제로위키]에서 쓰는 어떠한 언어습관이 관습화되고 있는건가요? 아니면 [제로페이지]에 새로 들어온 회원들이 원래 쓰던 언어습관과 '''다르게''' 자꾸 글을 써서 아직 관습화되진 않았는데 '''관습화 처럼''' 느껴지는 건가요? 로마에 가면 로마법을 따르라지만, [제로위키]에는 어떠한 법이 있나요? --[Leonardong]
- [Lovely]boy^_^/Book . . . . 1 match
* Windows API 정복(가남사) - OCU SDK 들을때 가끔 펴 봄
== 효율적인 프로그램을 위한 책 ==
- [Lovely]boy^_^/Diary/12Rest . . . . 1 match
* I read a Programming Pearls Chapter 6 a little, because I can't understand very well--;. So I read Chapter 7,8,9,10 roughly. In my opinion, there is no very serious contents.
- [Lovely]boy^_^/Diary/2-2-2 . . . . 1 match
* 우리나라에 사람 무는 바퀴벌레가 들어온 기념으로.. TDD를 이용한 RandomWalk2를 해보았다.(Python) 파이썬 문법 자체에서 좀 많이 버벅거렸다는게 좀 아쉽다. 테스트 수십개가 통과하는 것을 보고 있자니 괜시리 기분이 좋아진다는--;
- [Lovely]boy^_^/Diary/2-2-9 . . . . 1 match
* 상협이한테 바 움직일때 타이머 쓰는 비법을 전수 받았다.
- [Lovely]boy^_^/Diary/7/29_8/3 . . . . 1 match
|| 3D || 프랙탈을 이용한 지형 만들기 || 100%? || 재귀땜에 쫄았는데.. 잘돼서 다행이다 ||
- [Lovely]boy^_^/Diary/7/8_14 . . . . 1 match
* 무작정 문제를 풀기보다 소스를 이쁘게 쓰는 연습을 해야 할텐데.. 역시 내굥이 부족하군. 필살 프로그램 모드!
- [Lovely]boy^_^/EnglishGrammer/PresentAndPast . . . . 1 match
A. He ''started'' composing at the age of five and ''wrote'' more than 600 pieces of music.
- [Lovely]boy^_^/USACO/BrokenNecklace . . . . 1 match
* 테스트 케이스에 맞춰 프로그램 고쳐나가다 보니..;; 점점 더러워졌다는;;
- [Lovely]boy^_^/USACO/MixingMilk . . . . 1 match
* 이제 assert문 쓰는 법을 알아 가고 있다.
- [Lovely]boy^_^/USACO/PrimePalinDromes . . . . 1 match
* 그때 zp에서 소수 빨리 구하는 방법을 했던 적이 있더래죠. 난 그런거 뭐하러 하나 했는데..;;
- bitblt로 투명배경 구현하기 . . . . 1 match
프로그램을 컴파일해주는 컴파일러도 아니요..
- callusedHand . . . . 1 match
''(move to somewhere appropriate plz) 논리학 개론 서적으로는 Irving Copi와 Quine의 서적들(특히 Quine의 책은 대가의 면모를 느끼게 해줍니다), Smullyan의 서적들을 권하고, 논리학에서 특히 전산학과 관련이 깊은 수리논리학 쪽으로는 Mendelson이나 Herbert Enderton의 책을 권합니다. 또, 증명에 관심이 있다면 How to Prove It을 권합니다. 대부분 ["중앙도서관"]에 있습니다. (누가 신청했을까요 :) ) --JuNe''
- celfin . . . . 1 match
* 취 미 : 컴퓨터 가지고 "놀기" , 축구하기, 당구치기
- ddori . . . . 1 match
* Compiler
=== Pianist ===
- django . . . . 1 match
= apache2, mod_python을 이용한 웹 서버 설정 =
- eXtensibleMarkupLanguage . . . . 1 match
* XML은 정말로 굉장히 강력하다. 덕분에 톰캣을 위시한 많은 애플리케이션이 셋업 파일로 XML을 활용하기 시작했다. BUT 크리티컬한 부분에 XML을 소통 데이터로 이용하게 될 경우 해당 부분이 그 프로그램의 performance critical path 가 되는 경우가 발생한다.
- eclipse단축키 . . . . 1 match
* 바로 전 실행한 프로그램 실행
* 해당 함수의 Java API 웹 페이지를 보여준다.
- erunc0/XP . . . . 1 match
small talk 를 이용한 간단한 예제.
저는 지금 XPI를 읽고 있습니다. XPI에서 제시하는 극한을 실험해보기 위해 지켜야만 하는 규칙(?)들을 찾는다고 해야 할까요 ? 예를 든다면 삶의 순환 법칙을 어기지 않기 위해 유저스토리는 고객이 작성해야만 한다(도움은 주되 개발자의 욕구를 억제해야만 하는)는 것이겠죠 ? 이것은 XP 프로그래머가 반드시 지켜야만 하는 것이겠죠 ? 이것은 경험을 통해 얻는 극한으로 몰고가는 방법(요구사항을 요구하는 자에게 얻어내는 것이 가장 좋다라는 것을 최대한 활용하는 방법?)을 일종의 규칙처럼 이야기한 것 같습니다. 그러니까 실질적으로 XP팀이 지켜야 하는 것들을 설명했기 때문에 추상적이지 않다라고 해야할까요? ^^; 경험적인 것을 얻고 싶다면 김창준님이 기고하시는 마소(2002.9)를 보는 것도 좋겠네요.--["Benghun"]
- gester . . . . 1 match
나두 프로그램 만들어보고파요~~
- html5 . . . . 1 match
* 가장 좋은 api reference는 http://dev.w3.org/html5/ 입니다.
- html5/drag-and-drop . . . . 1 match
= 드래그 & 드롭 API =
* HTML5에서는 드래그 & 드롭 API를 제공한다.
* http://html5demos.com/file-api
- html5/geolocation . . . . 1 match
= Geolocation API? =
* 프로그램을 실행하는 디바이스의 위치 정보를 얻기 위한 API
* 고급 레벨의 API - GPS를 이용하는지 네트워크 정보를 이용하는지는 알수 없으나
* Geolocation API 관련 메서드는 모두 window.navigator 객체에 정의
- html5/overview . . . . 1 match
* HTML + XHTML + 요소 + 요건 + 관련 API
* 프로그램이 문서의 구조를 파악하기 쉬워짐(HTML 파싱 수월), 가독성 증가
- html5/richtext-edit . . . . 1 match
* HTML5는 리치텍스트 편집용 API를 표준으로 규정한다.
* 추가된 API : contenteditable속성, 문서 designMode
* 내용 편집이 불가능한 요소(div등)를 편집하게 하기 위한 API.
- 자바스크립트를 이용한 편집 속성 정하기 -
* 선택 범위의 DOM요소와 관련된 API
- html5/web-storage . . . . 1 match
= api =
- html5/web-workers . . . . 1 match
= 워커를 이용한 프로그래밍 =
- html5practice/즐겨찾기목록만들기 . . . . 1 match
* 원래 목적은 naver api를 끌고 와서 별표 찍는 연습을 만들려고 했는데. 이건 뭐. ajax cross domain 문제로 접근 불가. 난이도 하향. 로컬 목록을 사용자가 만들어서 그걸 즐겨찾기 추가 삭제 하는 코드를 만들었음. 기능과 UI가 안습이지만, 그래도. 만들었음.
- iText . . . . 1 match
package spike;
- java/reflection . . . . 1 match
* ORM(Object-Relational-MApping)이 아닌 방식으로 DAO를 만들 때 사용되기도 한다.
- lostship . . . . 1 match
== 프로그램 ==
- mantis . . . . 1 match
* /core/user_api.php 에서 416line 을 아래와 같이 바꿔서 이메일 인증이 아니라 임시 암호를 부여하고, 사용자가 바꾸게끔 한다.
- neocoin/CodeScrap . . . . 1 match
win32 상의 설정 파일 api
- neocoin/Education . . . . 1 match
잘 가르치기 위해서는 기본적인 교육학 이론보다는 Cognitive Psychology(학습부분)와 실제 "훌륭한 교사"들의 방법을 설명한 책(예컨대 NoSmok:SuccessfulCollegeTeaching ), 그리고 학습 과정을 설명한 책(NoSmok:HowPeopleLearn )이 좋을 것이다. 또 성인 교육에 있어서는 Training, Coaching 관련 서적이 많은 도움이 된다. --JuNe
- programmer . . . . 1 match
제가 표현하고자했던 말은 누구를 프로그래머라고 부를 수 있냐는 것이였습니다. 초보/중급/ 이런건 생각해보지 않았는데, 그렇게도 여길 수 있겠군요. 너무 막막하죠. "프로그래밍 언어를 이용하여서 현재 프로그램을 만들고 있거나 가까운 시일내에 만들 사람" 먼저 간략히 이정도만 정의해놓죠.
- radiohead4us/Book . . . . 1 match
노르웨이의 좌파정치와, 국제 정세, 한국의 현실등을 잘 보여주고 있는 책이다. 책을 읽게되면 노르웨이에 대한 막연한 환상이 떠오른다. 모두가 대중교통수단을 타고 출퇴근을 하고, 자가용은 아주 가끔 이용한다. 그들은 어떠한 행동을 하기 전에 ''나보다 남을 먼저'' 를 생각하는것 같다. (참 부러운 대목이다). 지하철을 탈 때에도 일일이 검표를 하지 않음에도 불구하고, 무임승차를 하는 사람은 거의 없다고 한다. 직업에 대한 귀천도 없으며, 버스기사나 대학교수나 사회에서는 같은 대우를 받는다. 그리고 또.. 환경오염이 거의 없다고 한다. 흑흑 부러워.
- randomwalk/홍선 . . . . 1 match
count++; // 바퀴벌레가 총 움직인 횟수를 구하기 위한 카운터
- sibichi . . . . 1 match
* 아이팟터치 멘토링프로그램(꼽사리)
- snowflower . . . . 1 match
||[그래픽스세미나]||OpenGL을 이용한 그래픽스 - 도중에 중도 하차 ㅠ.ㅠ|| _ ||
- source . . . . 1 match
[성적처리프로그램]
- subsequence/권영기 . . . . 1 match
아무래도 세 문제 전부 parametric search를 이용한 문제라서 한 페이지에 넣어야 될 듯 싶네여. 페이지 낭비 같음.
- whiteblue . . . . 1 match
* ["whiteblue/자료구조다항식구하기"]
- zennith/SICP . . . . 1 match
"내가 컴퓨터 과학 분야에서 가장 중요하다고 생각하는 것은 바로 즐거움을 유지해간다는 것이다. 우리가 처음 시작했을 때는, 컴퓨팅은 대단한 즐거움이었다. 물론, 돈을 지불하는 고객들은 우리가 그들의 불만들을 심각하게 듣고있는 상황에서 언제나 칼자루를 쥔 쪽에 속한다. 우리는 우리가 성공적이고, 에러 없이 완벽하게 이 기계를 다루어야 한다는 책임감을 느끼게 되지만, 나는 그렇게 생각하지 않는다. 나는 우리에게 이 기계의 능력을 확장시키고, 이 기계가 나아가야 할 방향을 새롭게 지시하는, 그리고 우리의 공간에 즐거움을 유지시키는(keeping fun in the house) 그러한 책임이 있다고 생각한다. 나는 컴퓨터 과학 영역에서 즐거움의 감각을 잊지 않기를 희망한다. 특히, 나는 우리가 더이상 선교자가 되는 것을 바라지 않는다. 성경 판매원이 된 듯한 느낌은 이제 받지 말아라. 이미 세상에는 그런 사람들이 너무나도 많다. 당신이 컴퓨팅에 관해 아는 것들은 다른 사람들도 알게될 것이다. 더이상 컴퓨팅에 관한 성공의 열쇠가 오직 당신의 손에만 있다고 생각하지 말아라. 당신의 손에 있어야 할 것은, 내가 생각하기엔, 그리고 희망하는 것은 바로 지성(intelligence)이다. 당신이 처음 컴퓨터를 주도했을때보다 더욱 더 그것을 통찰할 수 있게 해주는 그 능력 말이다. 그것이 당신을 더욱 성공하게 해줄 것이다. (the ability to see the machine as more than when you were first led up to it, that you can make it more.)"
- zennith/dummyfile . . . . 1 match
지정한 크기의 파일을 생성하는 프로그램
- zennith/ls . . . . 1 match
진짜, 할일없어 만든 프로그램. 보면 알겠지만.. 만든 이유는 자꾸 도스창에서 ls 라고 타이핑 하게 되서 말이지.. 흐흐
- ㄷㄷㄷ . . . . 1 match
두개가 매우 비슷한 기능을 갖기 때문에 같은 내용의 프로그램을
- 가위바위보/영동 . . . . 1 match
//가위바위보 승패수 계산 프로그램
- 강석우 . . . . 1 match
* [보드카페 관리 프로그램]
- 개인페이지 . . . . 1 match
개인페이지를 만들지 않으신 분들이 보이는데요. 개인 페이지는 여러 의미와 용도가 있습니다. 기본은 위키를 이용한 자신의 계획과 일정 관리, 그리고 공통된 관심사를 가진 사람들끼리 자연스럽게 생각을 공개해서 모이게 유도 합니다. 그리고 개인 공간을 가짐으로 해서 위키에 대한 좀더 높은 접근 횟수를 유도 합니다. 가장 중요한 이유는 누가 누군지 확실히 알수도 있겠죠? 일단 프로젝트에 참여하는 모든 분들은 개인 페이지를 만들고 관리 합시다. --상민
- 걸스패닉 . . . . 1 match
* 오늘 프로그램에 이미지까지 연동시켜보자.--[강희경]
- 겨울과프로젝트 . . . . 1 match
[AOI/2004] : 대회 문제들로 프로그램 내공을 길러본다.
- 고한종/배열을이용한구구단과제 . . . . 1 match
printf("배열을 이용한 구구단. n을 입력하세요.");
- 공간박스 . . . . 1 match
http://shopimage.hanmail.net/m_productimages/A057/54/BM15_500.jpg
- 구구단 . . . . 1 match
하지만, 이 페이지는 구구단을 출력하는 프로그램에 정의 페이지 입니다.
- 구구단/유상욱-Scheme . . . . 1 match
구구단을 scheme으로 만든 프로그램
- 그래픽스세미나/3주차 . . . . 1 match
* 창의 프로그램(nehe OpenGL tutorial 10번정도면 괜찮을듯 하군요..^^)
# define M_PI 3.141592
- 금고 . . . . 1 match
이런상황에서 K개의 금고를 가지고 F층이 몇층이던 간에 F층을 알아낼수 있는 최소한의 금고 낙하 획수를 E(N,K)이라 하자. 예를 들어 K = 1이라면 F를 알아내기 전에 금고가 부서지면 안되기 때문에 1층부터 차례대로 올라가면서 금고를 낙하해야 하며 많아야 N번이면 F층을 알아 낼수 있다. 따라서 E(N, 1) = N이다. 건물의 층수를 나타내는 정수 N과 금고의 개수를 나타내는 정수 k가 주어 졌을때, E(N,K)를 계산하는 프로그램을 작성하시오.
- 기본데이터베이스 . . . . 1 match
문제 : 번호, 이름, 전화번호, 주소로 구성된 기본 데이터 베이스를 설계하고, 그 데이터 베이스에 특정자료를 추가, 삭제, 갱신, 출력하는 프로그램을 작성하여라.
- 김동준/Project/Data_Structure_Overview/Chapter1 . . . . 1 match
간단한 배열 프로그램의 예
- 김동준/원맨쇼Report/08김홍기 . . . . 1 match
# 디스펠 - 적의 마법을 해제시켜주는 마법
- 김준호 . . . . 1 match
# 3월 17일에는 Microsoft Visual Studio 2008 프로그램을 이용하여 기초적인 c언어를 배웠습니다.
- 김희성 . . . . 1 match
* 오늘도 12시가 넘어 일어났습니다. 스레드 서버만 작성하는데 2시간이 걸렸군요. 속도가 너무 느린지라 가상머신 대신 그냥 우분투를 설치하는 방법을 고려해야할듯합니다.(3/24)
- 김희성/ShortCoding/최대공약수 . . . . 1 match
'''알고리즘''' - 유클리드호제법을 사용합니다.
- 나를만든책장관리시스템 . . . . 1 match
* 프로그램 설계중(2006.12.26 11:35)
- 논문번역/2012년스터디/김태진 . . . . 1 match
이 두가지 데이터들 모두 300dpi using 256 grey-levels로 스캔해서 사용했고, Fig 에서 각각의 데이터를 예시로 제시한다.
- 단어순서/방선희 . . . . 1 match
세환이랑 페어하다가 하는 방법을 대충 알고..흐흐 -ㅁ-; 100% 자체코딩은 아니지만..^^;
- 데블스캠프2003/ToyProblems . . . . 1 match
소수구하기
- 데블스캠프2003/셋째날/후기 . . . . 1 match
* 오늘은 많은 언어를 접해볼 수 있어서 좋았다.. python 과 scheme 글구.. squeete? 암튼 색다른 경험이었다... 모든 프로그램에 있어 창의적인 생각으로 문제를 해결할 수 있었으면 좋겠다.... 6분 남았다.. 아~ 얼른 축구보러 가고 싶다... -- 손동일
- 데블스캠프2003/첫째날 . . . . 1 match
* 소수구하기
- 데블스캠프2005 . . . . 1 match
[http://gigamail6.paran.com:8080/gigamail_pop.php?file=/D6/1/20050620/13/09/beonit@paran.com/1119244238_8864_x0.zip&filename=flashmx.zip FlashMX] - [데블스캠프2005/FLASH키워드정리]에서 사용할 플레시 프로그램
- 데블스캠프2005/RUR-PLE/Harvest/김태훈-zyint . . . . 1 match
get = pick_beeper
- 데블스캠프2005/RUR-PLE/TwoMoreSelectableHarvest . . . . 1 match
pick_beeper()
- 데블스캠프2005/RUR-PLE/TwoMoreSelectableHarvest/이승한 . . . . 1 match
def moveFrontPick():
pick_beeper()
def moveBackPick():
moveFrontPick()
repeat(moveBackPick,6)
- 데블스캠프2005/게임만들기 . . . . 1 match
테트리스 만들기 틀을 이용한 완성 예제
- 데블스캠프2005/월요일/번지점프를했다 . . . . 1 match
=== Code (with dynamic typing, w/o string parsing ) ===
- 데블스캠프2006 . . . . 1 match
[데블스캠프2006/연습문제] - 각 요일별 연습문제,최종 프로그램 올리는 페이지 입니다.
- 데블스캠프2006/SSH . . . . 1 match
* 문제상황 : 리눅스용 프로그램을 만들어야 하는 과제가 나왔다. 해당 과제는 컴파일과 실행을 리눅스에서만 해야 한다. 그런데 vi로 하기는 싫고, visual studio 나 editplus로 작업을 하고 싶다. 어떻게 할까?
- 데블스캠프2006/금요일 . . . . 1 match
프로그램 올리는 곳 - ftp://165.194.17.70:2000/
- 데블스캠프2006/연습문제 . . . . 1 match
연습문제 코드나 최종 프로그램 코드 올려주세요^^
- 데블스캠프2006/월요일/연습문제/웹서버작성/변형진 . . . . 1 match
* 아직 다양한 보안 문제에 대한 해결 방법을 마련해놓지 않아, 지정된 디렉토리에 있는 파일만을 보이도록 허용함
- 데블스캠프2006/화요일/tar . . . . 1 match
요기다가 자기 프로그램 링크시켜주세요~
- 데블스캠프2009 . . . . 1 match
각 요일별 연습문제,최종 프로그램 올리는 페이지들
- 데블스캠프2009/금요일/SPECIALSeminar . . . . 1 match
* 화면에 100000개의 랜덤한 원을 그리는 프로그램 - 어떻게 검증할 것인가?
- 데블스캠프2009/수요일/OOP/서민관 . . . . 1 match
OOP 과제. 의사코드를 이용한 붕어빵기계와 붕어빵 만들기
- 데블스캠프2010 . . . . 1 match
|| 4 || 남상혁 || SDL을 이용한 게임프로그래밍 || 전 시간대 가능 ||
- 데블스캠프2010/다섯째날/후기 . . . . 1 match
* 좀 늦었지만 그래도 재미있었습니다. cpp를 이용한 저글링들의 대결!! 그리고.. 마린.. 으악;; 뭔가 심오해보였습니다.. - [양아석]
- 데블스캠프2010/회의록 . . . . 1 match
== SDL을 이용한 게임 프로그래밍 (강사 : [남상혁]) ==
- 데블스캠프2011/넷째날/Git/권순의 . . . . 1 match
// myCmdBase.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
- 데블스캠프2011/셋째날/RUR-PLE/서영주 . . . . 1 match
repeat(moveAndPick, 6)
pick_beeper()
repeat(moveAndPick, 6)
- 데블스캠프2012/넷째날/묻지마Csharp/김태진 . . . . 1 match
A = dateTimePicker1.Value;
B = dateTimePicker2.Value;
private void pictureBox1_Paint(object sender, PaintEventArgs e)
- 데블스캠프2012/다섯째날/후기 . . . . 1 match
* [권순의] - OMS에서도 관련된 주제로 이야기 하고 이번 시간에도 관련 주제로 이런 저런 이야기를 들었네요. Winapi를 가지고 하는거라 뭐랄까.. 이거 뭔가 너무 날거인거라 ㅋㅋ 거기다 소스도 참 ㅋㅋㅋㅋ 희성이도 인터넷에 돌아다니는 것도 이것과 비슷하다고 하는데 ㅋㅋ 뭐.. 비트맵이 예전엔 사양이 안 좋은 상황에서 쓰이다 보니 그런거니까 라고 ㅎㅎ.. 재미있었습니다.
* [김희성] - Win32API를 할려다가 OMS에 없었던 12학번이 많아 OMS에서 했던 주제를 다시 했는데, 반응이 그다지 좋지 않은 것 같습니다. 비트맵 특성상 변수가 많이 쓰이는데 이해도를 위해 변수명을 축약이 아닌 풀네임으로 작성한 것이 오히려 가독성을 낮추어 이해를 어렵게 한 것 같습니다. 오랜만에 비트맵 했더니 예제 시연에서 삑나고... 여러가지로 문제가 많았던 것 같습니다.
- 데블스캠프2012/셋째날/코드 . . . . 1 match
= 소켓, 웹, OpenAPI =
* 웹서버에 실습파일을 만든다 -> 네이버 개발자센터 -> MapAPI를 사용해본다. -> N으로 시작하는 라이브러리 사용하면서 화냄 -> Mark위에 이벤트 출력까지 하고 끝.
<SCRIPT type="text/javascript" src="http://openapi.map.naver.com/js/naverMap.naver?key=f59e66fb57d24b1ffaa6cc7e504a72cc"></SCRIPT>
- 데블스캠프2012/첫째날/배웠는데도모르는C . . . . 1 match
* 간단한 일정 관리 프로그램(?) 만들기로 배워보는 구조체, 함수 포인터....
- 데블스캠프2013/넷째날/후기 . . . . 1 match
= 정의정 / MVC와 Observer 패턴을 이용한 UI 프로그래밍 =
- 독서는나의운명 . . . . 1 match
* [(picknic12)독서의기술] : 정말 유익한 글..
- 동영상처리세미나/2006.08.17 . . . . 1 match
4. 실습 : 필터 바꿔보기 mirror 프로그램
- 레밍딜레마 . . . . 1 match
시리즈 물인데, 같은 시리즈의 하나인 혜영이가 남긴 감상 [http://zeropage.org/jsp/board/thin/?table=multimedia&service=view&command=list&page=0&id=145&search=&keyword=&order=num 네안데르탈인의 그림자] 와 같은 짧고 뜻 깊은 이야기이다. 왜 이 책을 통해서 질문법을 통한 실용적이며, 진짜 실행하는, 이루어지는 비전 창출의 중요성을 다시 한번 생각하게 되었다. ["소크라테스 카페"] 에서 저자가 계속 주장하는 질문법의 힘을 새삼 느낄수 있었다.
- 레밍즈프로젝트/이승한 . . . . 1 match
getmetry.insert, insertCpyPixel, deletePixel 제작.
리팩토링(여전히 덜 된 리펙토링), 더블버퍼링 MFC(OnEraseBkgnd에서 화면을 지우는 것을 몰랐음. 삽질. 왜 저번에는 문제없이 동작했던 거지?? API 기반으로 했었나보다)
프로그램 구조상 오류발견. 500*500정도의 맵에서 단순한 더블 버퍼링의 경우 초당 300만번 정도의 SetPixel이 호출됨-_-ㅋ
Pixel 내부의 데이터로 UINT와 UTYPE만 두어 속도에 신경을 써 보았다. bool type data가 아직 리팩토링 되지 않았음.
현재 픽셀이 CPixelBlank로 꽉 차여져 있다. 레밍을 떨어뜨리는 행동을 시험해 봐야겠다.
- 레밍즈프로젝트/프로토타입/파일스트림 . . . . 1 match
|| 파일복사 프로그램 || [http://blog.naver.com/kds6221.do?Redirect=Log&logNo=140013999545] ||
- 로마숫자바꾸기 . . . . 1 match
문제 : 두자리 정수를 받아들여 그 숫자에 해당하는 로마 숫자를 출력시키는 프로그램을 작성하여라.
- 로마숫자바꾸기/조현태 . . . . 1 match
└어래? 내소스가 다른데서 안돌아 간다는거 몰랐엉.ㅎㅎ 방금 테스트 해봤는데.. .NET이나 6.0 C++ 에서는 돌아가더라고.. 테스트 하는 프로그램이 뭔지좀 알려줘봐..ㅎㅎ 고쳐볼께.ㅎ - [조현태]
- 로마숫자바꾸기/허아영 . . . . 1 match
완벽하다고 자부한다. (소스말구요 프로그램 출력..헤헤..^^)
- 마샬링 . . . . 1 match
마샬링은 하나 이상의 프로그램 또는 연속되어 있지 않은 저장 공간으로부터 데이터를 모은 다음, 데이터들을 메시지 버퍼에 집어넣고, 특정 수신기나 프로그래밍 인터페이스에 맞도록 그 데이터를 조직화하거나, 미리 정해진 다른 형식으로 변환하는 과정을 말한다.
- 마케팅천재가된맥스 . . . . 1 match
* 여기서 제품에는 우리가 만드는 프로그램도 포함된다.
- 만년달력 . . . . 1 match
* 원하는 년도와 달을 입력하면 그 달의 달력이 나오는 프로그램.
- 말없이고치기 . . . . 1 match
또한, 맞춤법을 바로 잡아주는 것과 같이 명백한 것이라면 ["말없이고치기"]를 하는 것이 훨씬 좋다. 그렇지 않으면 그걸 바로잡기 위해 서로 말을 주고 받는 사이에 부대비용이 더 커질 수 있다.
- 무엇을공부할것인가 . . . . 1 match
전산학을, 프로그래밍을 공부하는 사람이라면, 만약 내가 지금 배우는 대부분의 지식과 기술들이 내가 졸업을 하고 회사에 입사를 할 약 4년(혹은 병역을 마치는 경우 6년) 후에 쓸모없어 진다면 어떨까 하고 생각을 해 볼 수 있겠죠. 오늘 내가 밤샘을 하고 고민을 하면서 내가 사용하는 특정 도구의 한계를 우회하기 위해 기발한 방법을 짜내면서 얻는 지식은 4년 혹은 6년 후에 어떤 가치가 있을까요? 그 노력에 비해 얼마나 가치가 있을까요? 만약 그런 과정을 통해 어떤 지혜를 얻을 수 있다면, 좀 더 효과적이고 경제적인 방법은 없을까요?
- 문서구조조정 . . . . 1 match
새로 페이지를 만들어주거나, 기존의 스레드 토론에서의 의견, 주장 등의 글들을 요약 & 정리 해줌으로서 해당 주제를 중심으로 페이지의 내용이 그 주제를 제대로 담도록 해준다. 이는 프로그램 기법에서 일종의 ["Refactoring"] 과 비슷한 원리이다.
- 문서구조조정토론 . . . . 1 match
'문서 조정은 문서 작성자가 손대지 말아야 한다' 라는 어처구니 없는 내용을 어떻게 끌어냈는지 모르겠습니다. 어느 부분에서 도대체 '구조 조정은 구조 조정자의 몫이다'라는 식의 이야기를 했다는지 궁금하군요. 제 이야기는 현재의 잘잘못을 따지고, '문서 구조 조정은 ''누군가 그 일을 할 사람''이 알아서 해라'라는 식의 이야기가 아닙니다. 문서는 누구나가 노력을 해서 고쳐가되, 다만 문서 구조 조정자는(누가됬건 현재 문서를 구조 조정하고 있는 사람은), 자신이 한 결과에 따라 어울리지 않는 글이 될 수 있으므로 해당 문서 구조 조정의 시점에서 더 신경을 써야 한다는 뜻입니다. 물론, 해당글의 작성자가 나중에 발견하고 이를 고칠수도 있지만, 처음 시점부터 좀 더 신경을 쓰는 방법이 효과적이라 생각한 이유입니다. 한번 더 강조하자면, 문서 구조 조정자가 신경을 쓸 필요가 있다라는 이야기가 해당 글의 작성자 자체가 '나는 문서를 구조조정할 필요가 없다'라는 의미는 절대 아님을 이야기합니다. 모로가도 서울만 가면 되지만, 더 편한 방법이 있다면, 그런 방법을 택하는게 자연스러운건 자명한 이치입니다. --이선우
- 문자반대출력 . . . . 1 match
* C 에도 라이브러리로 문자열 반전 시켜주는 함수를 제공합니다. strrev()라는 함수를 사용하면 '\0'바로 전 글자부터 거꾸로 만들어주죠. 물론 ANSI 표준은 아니고 Semantec, Borland, Microsoft 에서 제공하는 컴파일러의 경우에 자체 라이브러리로 제공합니다. 이식성을 생각하지 않는 일반적인 코딩에서는 위에 나열한 컴파일러를 이용한다면 사용할 수 있습니다. - 도현
- 문자반대출력/문보창 . . . . 1 match
음 만약에 한글과 같은 확장문자가 담겼다면 process_wchar() 함수에서 약간의 꼼수를 부린다. 가상의 예(실제로 이렇게 되지는 않지만, 원리는 같음)를 들어보자. "가나" 라는 문자열을 ver1과 같은 통상의 프로그램으로 뒤집으면 "나가"와 같이 프로그래머가 원했던 결과가 나오는 것이 아니고 "ㅏㄴㅏㄱ"가 나온다. 그렇다면 확장문자를 판단해서 문자열을 뒤집기 전에 "가나"라는 문자열을 "ㅏㄱㅏㄴ" 이렇게 만들어 놓는다면 기존 ver1의 프로세스를 전혀 바꾸지 않고도, process_wchar()만을 추가하는 것으로 원했던 기능을 모두 수행하게 된다.
- 문자열검색 . . . . 1 match
문제 : 문자열 x에서 y라는 문자열이 처음 나타난 위치를 검색하여 z에 저장하는 프로그램을 작성하여라.
- 문자열연결 . . . . 1 match
문제 : x문자열 끝에 y문자열을 연결시키는 프로그램을 작성하여라.
- 미로찾기/김영록 . . . . 1 match
/////파일 입출력방법을 김승욱 교수님이
- 박수진 . . . . 1 match
⑤ 23일 : 알바구하기
- 박치하 . . . . 1 match
http://pds15.cafe.daum.net/download.php?grpid=qkLj&fldid=6lGP&dataid=2&fileid=1
- 반복문자열 . . . . 1 match
문제 : CAUCSE LOVE. 라는 문장을 5번 연속해서 출력시키는 프로그램을 작성하라.
- 반복문자열/최경현 . . . . 1 match
// CAUCSE LOVE. 라는 문장을 5번 연속해서 출력시키는 프로그램을 작성하라.
- 방울뱀스터디 . . . . 1 match
7월 26일(토) 오전 11시 7피 임시모임. 기본 프로그램의 80%를 목표로 프로그래밍 해봅시다. --재동
- 병역문제어떻게해결할것인가 . . . . 1 match
* 이건 보통 워드를 많이 치는 행정병 같습니다. 자대 가서 인사과에 대기할때 인원이 필요하면 타자연습프로그램으로 워드쳐보라 합니다. 기본 300타 이상이면 가능성 있습니다. 밤에 잠 못자구 워드 치는 경우가 많습니다. 요즘은 많이 좋아졌다고 합니다.
- 블로그2007 . . . . 1 match
* 책에서 하라는 데로 다 설치하긴 했는데 코딩할 때는 어케 해요?[[BR]]C++처럼 따로 프로그램이 있는건가?... 아님 그냥 편집기로?... -송지훈 '''[답변 및 의견 1]'''
- 블로그2007/송지훈 . . . . 1 match
아주 잘 나옴. php 문법을 좀 더 공부하면 보기 좋게 출력하는 방법도
- 비밀키/나휘동 . . . . 1 match
비밀키를 입력받아서 파일에 있는 내용을 암호화 하는 프로그램
- 빵페이지/도형그리기 . . . . 1 match
위 도형들을 출력하는 프로그램을 작성하세요
- 빵페이지/소수출력 . . . . 1 match
* 소수를 차례대로 출력하는 프로그램을 만들어 봅시다.
- 사랑방 . . . . 1 match
''약간은 사기라고 봐도 됩니다. 퀵소트에서 첫번째 원소를 피봇으로 잡는 경우가 헤스켈에서 아주 간단히 표현될 수 있다는 점을 이용한 것이죠 -- 첫번째가 피봇이 되면 문제가 생기는 상황들이 있죠. 보통 헤스켈의 "간결성"을 강조하기 위해 전형적으로 사용되는 예입니다. 뭔가 독특한 점을 강조하기 위해 쓰인다는 것 자체가 이미 약간의 과장을 암시하고 있습니다. see also Seminar:QuickSort --JuNe''
- 상협/2DAlca . . . . 1 match
* 2D로 벽돌 깨기를 만듭니다. 학교 오브젝트 수업 과제로 나온 프로그램
- 상협/너만의명작을그려라 . . . . 1 match
* 이책의 목적은 한 인간이 삶을 훌륭하게 살아가려면 어떻게 해야 하는지에 대해서 지금까지 살와왔던 사람들중에서 훌륭한 삶을 살았다고 평가되는 사람들을 예로 들면서 그 방법을 제시해주고 있다. 이책은 이 저자혼자서 내용을 생각해서 쓴 책이라기보다 인류에게 훌륭한 인물로 평가받은 사람들이 한 말들과, 그 행적등을 밑 바탕으로 해서 쓰여진 책이다.
- 상협/삽질일지/2002 . . . . 1 match
* 오늘은 그렇게 큰 삽질은 아니지만 요새 별다른 삽질이 없어서 적어본다. 오늘 비행기게임 프로젝트를 하고 있는데 파일에서 적 비행기 경로를 읽어와서 실행하는거를 하는데 이상하게 계속 안되는 것이었다. 분명히 난 맞게 텍스트 파일에 적이 나올 위치를 숫자로 적었고, 정확한 명령어를 사용했는데 말이다. 그래서 계속 삽질하다가 잠깐 밖에 나갈 일이 생겼다. 그런데 걷다가 곰곰히 생각하니깐 왠지 파일읽어 온것을 프로그램에서 string 형으로 생각한거 같았다. 그때 아차 하는 생각이 들었다. 역시 삽질은 안된다고 계속 반복하기보다는 원인을 곰곰히 생각해야 한다는 교훈을 얻었다. 뭐 몸이 그렇게 안따라 주지만. ㅡㅡ;
* 간만에 쓴다. 삽질일지.. -_-;; 그동안 너무 놀았나.. 쩝.. 이번 삽질은 내가 처음으로 환타스탁한 소켓 플밍 연습하는데, API로 작성된 WinSock 소스 가지고 send랑 recv 가지구 놀고 있는뎅... 글자가 계속 깨져 나왔당.. 미치고 환장할일.. -_-;; 정모때 남훈이형이 어떻게 해서 되기는 되었는데 이유는 몰랐다.. 그래서 희망을 안 버리고 계속 삽질 해봤는데.. send랑 recv의 타이밍이 서버와 클라이언트가 맞지 안아서 였다.. 쩝..테스트 결과 서버가 send먼저 하고 클라이언트가 recv하면 깨져 나왔당..서버가 recv하고 클라이언트가 send하면 글씨가 안깨진다..-_-;;.. 이게 규칙인가~ 쩝.~
- 상협/학문의즐거움 . . . . 1 match
* 이 어구도 여러가지를 생각해보게 만든다. 우리는 아주 가끔 주위에서 꽤 머리가 좋아 보이는 사람을 볼때도 있다. 그럴때면 보통 나는 왜 저렇게 할수 없는 거지 하면서 한탄을 하기도 한다. 그런데 이때 논리적으로 생각을 해보자. 나는 저사람보다 머리가 덜 좋다. 저 사람은 내가 2시간에 할것은 1시간만에 한다. 그런데 나도 저사람만큼 되고 싶다. 그러면 내가 두배의 노력을 하면 되겠네~?.. 간단히 말하면 이런식이다. -_-;; 즉... 사실을 부정하거나 합리화(정말 해서는 안되다 싶은거..합리화는.-_-;) 말고 받아 들인 후에.. 그것을 극복할 현실적이고 구체적인 방법을 생각 하는 것이다.
- 새싹교실/2011/AmazingC/6일차 . . . . 1 match
6일차를 너무 늦게 올렸다. 얘들아 미안 ㅋㅋㅠㅠ 함수에 대해 좀 자세하게 알려주고 싶어서 2파트로 나눴다. 함수의 기본적인 개념들이라, 그리 어렵진 않았을 것 같다. 그리고 삼항 연산자를 이용해서 팩토리얼을 계산하는 방법도 알려주었다. 다음 시간엔 지역변수,전역변수,정적변수에 대해 배우고, 함수를 이용한 다양한 연산을 연습합니다.-[[신기호]]
- 새싹교실/2011/GGT/L1&L2 . . . . 1 match
* 위키 사용법을 먼저 알려줬어야했는데 하지 못했다.
- 새싹교실/2011/Pixar/3월 . . . . 1 match
* main 함수는 프로그램이 시작하는 부분이예요. 앞으로 함수를 배우기 전까지 모든 코드는 main 함수 안에 작성합니다.
* [새싹교실/2011/Pixar]페이지의 ''후기를 쓰기 전에'' 항목을 읽어주세요.
[새싹교실/2011/Pixar]
- 새싹교실/2011/Pixar/4월 . . . . 1 match
오늘은 함수를 배웟고 재귀를 쓰는법을 배웟는데 재귀는 쫌 많이 어려웠어요
[새싹교실/2011/Pixar]
- 새싹교실/2011/學高/4회차 . . . . 1 match
* 세개의 정수를 받아들여, 그 수를 모두 더한 후 7를 더하면 얼마인지 출력하는 프로그램
#define PI 3.141592
printf("넓이: %.2f\n",PI*diameter*diameter);
define PI 3.141592<< 코딩할때 PI라고 쓰면 숫자로 인식함. define은 중간에 수정 불가.
- 새싹교실/2011/學高/8회차 . . . . 1 match
* 아래 소스코드를 큰 틀로 해서 recursive function을 이용하여 하노이의 탑 시뮬레이션 프로그램을 작성하라(이동 상황을 출력한다, 전역변수를 이용하여 횟수를 카운트하게 하여 H_n = 2*H_n-1 + 1 점화식에 맞는 답이 나옴을 보여야한다.)
- 새싹교실/2011/무전취식/레벨1 . . . . 1 match
* C 동작 설명 : C는 고급언어다. 사람이 이해하기 쉬운언어. 프로그램을 짜고 컴퓨터에게 시키면 컴퓨터가 이해하기 쉬운 저급언어로 바꾸어 실행시키다.
- 새싹교실/2011/무전취식/레벨11 . . . . 1 match
//우수법을 구현한겁니다.
- 새싹교실/2011/무전취식/레벨4 . . . . 1 match
* http://winapi.co.kr <- 사이트에 대해 설명해주었습니다. 처음에 매우 유용한 사이트지요!
- 새싹교실/2011/무전취식/레벨8 . . . . 1 match
* Ice Breaking이 날이갈수록 흥미진진한 얘기가 나옵니다. 재밌네. 오늘은 복습을 좀 많이 했죠. 기초가 중요한겁니다 기초가. pointer도 쓰는법은 생각보다 간단하지. 간단한 파일입출력도 해봤고. 정말 정말 잘하고있어. 수업태도도 나아지고있고. 이제 앞으로 나머진 들러리지만 알아두면 좋을 팁이라고 생각합니다. 하지만, 앞에서 배운 많은 개념을 잊어먹은것 보니까 이건 사태의 심각성이 있네 역시 복습하길 잘했어. 그리고 winapi사이트좀 자주가. 거긴 볼것이 많아. 그리고 후기좀 자세히봐=ㅂ= 후기쓸때도 그날 배운것 배껴서라도 올려내고!! - [김준석]
- 새싹교실/2011/무전취식/레벨9 . . . . 1 match
* 표준 편차 구하기. 수학 공식좀 알아둬라!
- 새싹교실/2012/ABC반 . . . . 1 match
다음 코드 안을 채워 넣어서 계산기 프로그램을 완성하세요
- 새싹교실/2012/벽돌쌓기 . . . . 1 match
* 첫 수업이라 많은 진도를 빼지 않고, 기본적으로 Hello World 프로그램 구현 가능에 중점을 두었다.
- 새싹교실/2012/새싹교실강사교육/2주차 . . . . 1 match
4. 모르는 API 문법 직접 찾아보게 하기 http://winapi.co.kr -> 관련 2 코딩 Q&A
- 새싹교실/2012/새싹교실강사교육/3주차 . . . . 1 match
WinAPI http://winapi.co.kr/ 를 찾아보시는 것을 항상 추천 드립니다.
- 새싹교실/2012/아무거나/1회차 . . . . 1 match
이재형 학생이 자봉단 때문에 불참하여 Visual Studio에서 디버깅하는 방법을 배움.
- 새싹교실/2012/아우토반/뒷반/3.23 . . . . 1 match
* 강사가 정통부 부장이랑 같은 분이셨다.같이배우게 될 남학우도 정통부였다.오늘은 정통부 오리엔테이션을 빠지고 여학우 모임에 가지만 다음 모임엔 참석할 수 있었으면한다.다음부터는 수업이다.따라갈 자신은 없지만 못알아듣는다고 화내지 말았으면 좋겠다고 생각.자꾸 정통부이야기를 한것은 새싹교실에대해 경험한 일이 없어서다. 그리고 강사가 아는 선배분이란 것과 수금덕분에 지각횟수가 줄어들것이라느 점이 좋았고 강사한테도 수금을 하니 프로그램의 진지함도 보여 좋았다.앞으로 신세좀 지겠습니다~ ●u● - [박상희]
- 새싹교실/2012/아우토반/뒷반/3.30 . . . . 1 match
입력받은 정수를 한글 발음으로 출력하는 프로그램을 작성하시오
- 새싹교실/2012/열반/120326 . . . . 1 match
* 목표 : f(x)=x²와 유사한 기능을 하는 프로그램을 작성하세요.
- 새싹교실/2012/열반/120402 . . . . 1 match
* while, do while 반복문과 재귀함수를 이용한 점찍기를 배웠습니다. -[권우성]
- 새싹교실/2012/열반/120409 . . . . 1 match
* 중첩 반복문을 이용한 별찍기
- 새싹교실/2012/주먹밥/이소라때리기게임 . . . . 1 match
= 프로그램 목적 =
- 새싹교실/2013 . . . . 1 match
* 오늘은 애들한테 대략적인 위키 쓰는 법을 가르쳐야 될듯.. -[김상호] (13/03/25)
- 새싹교실/2013/라이히스아우토반/6회차 . . . . 1 match
여기서 오늘 switch 와 if 랑 else if 를 이용하여 프로그램을 짤 수 있다는 사실에서 정말 재밌었습니다.
- 새싹교실/2013/록구록구/8회차 . . . . 1 match
반복문을 사용하여 배열의 모든 요소를 출력하는 프로그램을 만들어 보세요!
- 새싹교실/2013/양반/3회차 . . . . 1 match
switch문 - 다중 선택 방법을 제공한다.(정수 값에 따라 여러 경로 중에서 한 경로를 선택할 수 있다.)
- 서버재조립토론 . . . . 1 match
[정모]때 서버 재 조립에 대한 이야기가 나왔다는 이야기를 회장님을 통해 들었습니다. 일단 제가 회의에 참석하지 못하고 회의록이 올라온 것도 아니므로 어떻게 해서 서버 재조립 이야기가 나왔는지 알고 싶습니다. 일단 제 생각은 굉장히 부정적인데요. 서버가 하는 일이 거의 웹서버 내지는 소스 리파지터리로 사용되고, 대규모 소스를 컴파일한다거나 덩치가 큰 프로그램이 돌아가는것도 아니기 때문입니다. 게다가 동시접속 사용자수로 많지 않은걸로 알고있는데요. (물론 이런것들은 이제부터 하기 위해 하나 새로 맞춘다!! 면 할말 없지만..) 이 상황에서 굳이 새로 서버를 맞추는게 필요할지... [임인택]
- 서울대컴공대학원구술시험/05전기 . . . . 1 match
2번 문제 정확하게는 max heap을 설명하고, max heap을 이용해 정렬하는 방법을 설명하라. 05.11.02 10:08
- 서지혜/MyJavaUtils . . . . 1 match
* String을 연산해 새로운 String을 만들 때는 StringBuilder를 이용한다.
- 설득의심리학 . . . . 1 match
* 중공군의 세뇌 프로그램 - 자발적 개입을 증명할 기록을 남긴다.(작문) 공식적 약속은 생명력이 길다.
- 성당과시장 . . . . 1 match
|| http://images.amazon.com/images/P/0596001088.01._PIdp-schmoo2,TopRight,7,-26_PE32_SCMZZZZZZZ_.jpg [[BR]] ISBN:0596001088 ||
결국 이 책은 2가지 형태의 개발 방식에 대한 접근 법을 제시한 책이며, 저자가 주장하는 것은 아마도 시장 방식일 것이다. Open!!!
- 세미나/02대상 . . . . 1 match
헤헤... 쉽고 문제 풀면 그에 대한 문법을 확실히 알 수 있는 그런 문제들 부탁드릴께요~!^^; --상욱
- 세미나/2004 . . . . 1 match
2004년 여름방학 주로 강의실을 이용한 세미나 릴레이
구체적으로 어떤것? J2ME? WIPI? J2ME로는 HelloWorld 까지는 찍을줄 알아...;; - [임인택]
- 소수구하기/zennith . . . . 1 match
["소수구하기"]
- 소수구하기/상욱 . . . . 1 match
[소수구하기]
- 소수구하기/영동 . . . . 1 match
["소수구하기"]
- 소수구하기/영록 . . . . 1 match
1 부터 50000까지 소수 구하기..
- 소수구하기/인수 . . . . 1 match
[소수구하기]
- 소수구하기/임인택 . . . . 1 match
["소수구하기"]
- 소수구하기/재니 . . . . 1 match
["소수구하기"]
- 속죄 . . . . 1 match
* 이 세명에게 같이 일어난 한가지 사건을 서로 다른 시각으로 한사람씩 차례로 돌아가며 의식의 흐름기법을 이용해 서술한다. 제길. 500페이지중 약 절반이상은 이렇게 의식의 흐름으로 때워버린다. 해가 어쨋네 땅이 어쨋네~ 뭐. 외국인이 자기네 말로 보면 재미있고 멋질지 모르지만, 기본적인 우리말 문법도 틀리는 이상한 번역작가의 글을 보면서 멋지다고 하긴 정말 너무 힘들고 짜증난다. 이부분 끝나는 곳까지 보는데 3달 걸렸다. 제길.
- 손동일 . . . . 1 match
== 좋은 프로그램 ==
- 수면과학습 . . . . 1 match
a. Rem 수면( rapid-eye-movement sleep ) : 얕은 잠, 꿈을 꾸는 단계
- 수업평가 . . . . 1 match
||CompilerClass || 2 || 2 || 2 || 1 || 7 || 1 || 7 ||
- 수학의정석/집합의연산/이영호 . . . . 1 match
새로운 방법을 생각해내 구현을 하긴 했지만 배열을 malloc으로 했으면 더 좋았을걸이라는 생각이 계속 든다.
- 숫자를한글로바꾸기 . . . . 1 match
문제 : 숫자를 입력 받아서 한글로 출력시키는 프로그램을 작성하여라.
- 숫자를한글로바꾸기/허아영 . . . . 1 match
- 리팩토링은 프로그램을 완성한 후에 하는것이 아니라 프로그래밍을 하는 도중에 하는게 더 좋다고 생각합니다. - 임인택
- 숫자야구/강희경 . . . . 1 match
이 코드를 다시한번 [리팩토링]하여 보세요. 프로그램을 조금 더 이해하기 쉽게 그리고 코드의 모양을 좀더 이쁘게 바꿀 수 있지 않을까요? 이미 작성했던 코드를 다시 작성한다거나, 기존에 자신이 작성했던 코드를 [리팩토링]한다면 많은 것을 얻을 수 있을 것입니다. [임인택]
- 실시간멀티플레이어게임프로젝트 . . . . 1 match
시간이 되면 AspectOrientedProgramming을 현 프로젝트에 적용하는 방법을 알려드립니다.
등입니다. 여기에서 파이썬이라는 언어에 대해 얻는 것은 다른 것들에 비해 상대적으로 그다지 크지 않을 것입니다. 이번 경험은 어떤 언어이냐가 중요하지 않습니다. C++이나 자바를 사용할 수도 있다는 말입니다. 하지만 그렇게 하지 않은 이유는, 그런 언어들을 사용하면 "언어(혹은 라이브러리 API)"라는 문제가 더 커져서 소위 배보다 배꼽이 커지는 현상이 생기기 쉽기 때문입니다.
- 실시간멀티플레이어게임프로젝트/프레임워크 . . . . 1 match
Upload:frame_8.zip - 재선 - 이벤트 간의 시간 간격 구하기
- 아동언어습득이론 . . . . 1 match
생물학적 프로그램
- 안녕하세요 . . . . 1 match
http://pds15.cafe.daum.net/download.php?grpid=qkLj&fldid=6lGP&dataid=4&fileid=1
- 알고리즘3주숙제 . . . . 1 match
[http://www.csc.liv.ac.uk/~ped/teachadmin/algor/pic4.gif]
- 열정적인리더패턴 . . . . 1 match
'''열정을 갖고 솔선수범해서 스터디 그룹을 이끌어라. 사람들이 원하는 곳으로 만들고, 더 큰 커뮤니티에 참석하도록 초대하라. 자극이 되는 이벤트, 가상 공간 상에서의 대화로 멤버들에게 힘을 주고, 멤버들의 아이디어를 가까이서 수렴함으로써 지속적으로 그룹을 발전시킬 방법을 모색하라.'''
- 요정 . . . . 1 match
콘월 지방에 사는 난쟁이 픽시 (pixie)는 빨간 뾰족모자에 푸른 옷을 입고 둥근 눈과 귀를 가지고 있는데, 꽤 짓궂은 장난을 치기 좋아해 길에서 여행자가 길을 잃게 하고 집에서는 물건을 숨기거나 촛불을 불어 꺼 버렸다. 콘월 지방 사람들은 픽시를 세례를 받기 전에 죽은 갓난아기의 영혼이라 믿었다. 또 픽시의 땅 '가리토 랩 (가리트립스라고도 함)' 에 잘못하여 발이 닿으면 요정의 화살에 맞는다고 한다. 콘월의 옛 광산 갱도에는 '노츠카' 라는 광산의 요정이 살고 있어 친절한 사람에게는 바위를 울려서 광산이 있는 장소를 알려주었다고 한다.
- 위키QnA . . . . 1 match
* Regular Project 인원 3명이상 - 3명 이상이라면 세미나-스터디의 형태이거나, 단체 프로그램 목표, 기타의 단체 목표 일것이다.
- 위키를새로시작하자 . . . . 1 match
저의 경험으로 볼 때, 단지 새로 시작하는 것이 "새로운 것"을 가져다 주지는 않습니다. 동시에 두개의 위키를 돌리든가 하고, 새 위키에는 새로움의 어포던스(예컨대 비쥬얼 등)를 제공하도록 합니다. 그리고 새 위키에는 대다수는 읽을 수 있고, 몇 명만 쓸 수 있게 합니다. 그리고 그들이 규칙을 만들어 나갑니다. 우선은 규칙에 대한 규칙(메타규칙)을 만듭니다. 예컨대 "전체 규칙 수는 9개를 넘지 않는다"든지... 그리고 가능하면 생성적인(generative) 환경을 만들려고 합니다 -- 야구선수가 공을 받는 방법을 미적분학으로 풀어내기보다, 공이 보이는 각도를 일정하게 유지하려고 한다든지 하는 휴리스틱적인 규칙으로 접근합니다. 필요없는 것은 제거하고 꼭 필요한 것만 남깁니다. 제거해보고 해보고, 붙여보고 해봅니다. 예를 들어, 현 위키에서 들여쓰기가 불가능하다면 어떤 세계가 펼쳐질까요?
- 위키에 코드컬러라이저 추가하기 . . . . 1 match
그리하여 그 방법을 연구한 결과가 이문서의 내용이다..;;
- 유닛테스트세미나 . . . . 1 match
2006년 2학년 1학기 자바 텀 프로젝트였던 심플트론 시뮬레이터에서 이재혁 팀이 이용한 유닛 테스트를 알아보고, JUnit 및 CppUnit을 실습해본다.
- 윤성만 . . . . 1 match
프로그램 잘짜고 싶은데~
- 윤종하 . . . . 1 match
그러고보니 물리엔진으로 ICBM 탄도계산 프로그램 만들어보는 것도 재밌겠군
- 윤종하/지뢰찾기 . . . . 1 match
콘솔 프로그램으로 열심히 짜봤구요, 음주코딩의 위대함을 깨달았습니다.
- 음계연습하기 . . . . 1 match
피아니스트는 연주 능력 향상에 크게 도움이 될 것 같지 않은 음계를 여러 달 동안 계속 연습하기도 한다. 그러나 그 연습이 피아니스트로 하여금 원하는 음악적 성취를 이룰 수 있도록 해준다. 외과 의사는 능숙한 수술 실력 향상에 크게 도움이 될 것 같지 않은 작은 손놀림을 익히기 위해 여러달 동안 계속해서 봉합용 실과 씨름을 한다. 외과 의사는 그 꾸준한 연습 덕분에 수술을 빠르고 정확하게 하게 되고, 그 결과 소중한 인명을 구하기도 한다. [[HTML(<FONT COLOR=RED>무언가를 성취하는 것은 반복적인 연습에 의해서만 가능하다. </FONT>)]]
- 이동현 . . . . 1 match
자바라는 언어도 그렇다. 프로그램 만드는데 이처럼 간단할수가
- 이름짓기토론 . . . . 1 match
* 그냥 Wiki와 ZeroPage 를 마구 섞어서 Zipizigi 는 어떨까요... 지피지기면 백전백승이라고...(뭔소린지..>.< )
- 이병윤 . . . . 1 match
=== 수강 신청 자동화 프로그램 ===
- 이성의기능 . . . . 1 match
* 아래로부터의 이성의 진화라고 하는 것은 비교적 짧은 예견의 시간범위에서 아주 실용적으로 이루어진 것이다. 이성으로부터 도출되는 아주 원초적이고 깊숙이 자리잡는 만족감, 기억할 수 없는 태고의 유전에서부터 우러나오는 그런 만족감은, 현재의 실천을 규제하는 어떤 방법을 강조적으로 명료하게 함으로써 제공될 수 있다. 그러한 방법이 현실적으로 기능하면 이성은 만족된다. .. 사실은 인간의 호기심을 그 방법의 범위내로 제한시키려는 또 하나의 적극적인 관심이 있는 것이다. 그러한 관심이 패배당할때는 정서적으로 적개심이 일어나게 되는 것이다. 그러면 경험론은 사라진다. ... 한 방법론이 이미 낡아버렸다는 주요 증거는, 그 방법내에서 일어나는 진보가 더 이상 주요 잇슈들을 취급하지 못한다는 사실로 입증된다. 사소한 문제들에 끊임없이 시비하고 있는 마지막 단계에 온 것이다. ... 그 방법의 범위내에서 성취할 수 있는 더 큰 대비들이 다 탐구되었고 또 친근하게 되어버렸다. 그리고 반복으로부터 생기는 만족감도 시들시들해져 버린다. 그러면 생명은 그 운명을 결정하는 마지막의 선택의 기로에 국면하게 되는 것이다.
- 이승한/.vimrc . . . . 1 match
"============== key mapping ==============
- 이승한/java . . . . 1 match
public static void main(String [] args){} // C의 void main() 과 같이 프로그램의 시작점이다. String [] args 는 실행될때 넘어오는 문자열 값을 보인다. 정확하게 무엇인지는 모르겠다
- 이영호/문자열검색 . . . . 1 match
fprintf(stderr, "\n프로그램을 종료합니다.\n");
- 이영호/시스템프로그래밍과어셈블리어 . . . . 1 match
API Hooking을 통해 Application 이하의 차원에서 프로그램을 자유 자재로 다룰 수 있다는 것을 배웠다.
- 이영호/지뢰찾기 . . . . 1 match
Reverse 하는 김에 모기 퇴치 프로그램도 같이 짜야 할듯; --[1002]
- 이진훈 . . . . 1 match
내가 생각한 프로그램을 짤 수 있는 프로그래머.
- 이차함수그리기 . . . . 1 match
문제 : 곡선 y = x ²을 인쇄하는 프로그램을 작성하여라.
- 이차함수그리기/조현태 . . . . 1 match
cout << "2차함수 출력 프로그램.";
- 이태양 . . . . 1 match
'''O'''lympiad in
- 인상깊은영화 . . . . 1 match
[쿠도 준(타베 미카코) http://movie.naver.com/movie/bi/pi/basic.nhn?code=102482] 진짜 남자같아ㅋ
- 임시 . . . . 1 match
Religion & Spirituality: 22
http://crab.chungbuk.ac.kr/%7Ejchern/ vi명령어, Windows Network Programming API, ..
[http://developer.amazonwebservices.com/connect/entry.jspa?externalID=101&categoryID=19 Amazon E-Commerce Service API]
API Reference - Search Index Values
API Reference - Response Groups - Request, Small, Medium, Large, Image, ...
- 임인택/Link . . . . 1 match
* [http://forums.mozilla.or.kr/viewtopic.php?t=954&highlight=%C5%D7%B8%B6 테마]
- 임인택/삽질 . . . . 1 match
* C++ 에서 SingletonPattern 을 적용했는데.. 소멸자가 호출되지 않는것 같다.. 프로그램 종료시에 인스턴스를 강제로 삭제하였다. - 타이머 루틴에서 instance() 를 얻어왔는데. 타이머는 KillTimer 직후에 소멸되지 않는다.. 이로 인해.. 인스턴스가 삭제 된 후에 다시 생성되었었다...
- 임인택/코드 . . . . 1 match
== 키보드 이벤트를 이용한 아주 간단한 방법 ==
- 임지혜 . . . . 1 match
* MSN : qupid7 at(@) hotmail dot(.) com
- 자료병합하기 . . . . 1 match
a,b 데이터를 크기 순서로 (Ascending) 병합(Merge)하는 프로그램을 작성하여라.
- 전문가되기세미나 . . . . 1 match
* 프로그래머가 이 프로그램을 사용하는 유저로부터 바로 피드백을 받을수 있나?
- 정규표현식/스터디/메타문자사용하기/예제 . . . . 1 match
1. 다음 파일들의 목록에서 소문자로 시작하는 파일을 찾아라. 적어도 2개 이상의 방법을 표현할 것
- 정규표현식/스터디/반복찾기 . . . . 1 match
다음을 이용한다면 반복찾기 정규표현식은 중복도 방지할수있는 강력한 도구로 만들수 있을것이다
- 정렬/조재화 . . . . 1 match
== 두번째로 만든프로그램 ==
- 정모/2002.3.14 . . . . 1 match
2. 프린트물을 이용한 홍보
- 정모/2003.11.17 . . . . 1 match
* 파이선: 주제가 바뀜: 채팅프로그램 만들기로.
- 정모/2003.9.23 . . . . 1 match
* 파이선 스터디: 현재 1주째 진행으로 문법을 익혔으며 2주째는 리얼타임멀티플레이어게임프로젝트로 휴강했습니다.
- 정모/2004.10.5 . . . . 1 match
* PageFlipping 구현 ( DoubleBuffering 보다 한단계 더 복잡한 TrippleBuffering )
- 정모/2004.5.21 . . . . 1 match
- API
- 토이 프로그램 짜기
- 정모/2004.9.24 . . . . 1 match
* [스네이크바이트] - C++ 개념잡기, 프로그램 방법, 희경 강의 , - C++ 스터디 흥미없어질 때까지 유지
- 정모/2005.2.16 . . . . 1 match
여섯색깔모자를 이용한 회의
- 정모/2005.2.2 . . . . 1 match
위키 설명회는 회원모집날에 같이 하기로 하였고, 프로그램 배틀과 Joint 엠티는 일단 보류되었으므로 나중에 정해지면
- 정모/2006.4.10 . . . . 1 match
7. 새싹스터디를 이용한다.
- 정모/2007.3.13 . . . . 1 match
- 첫 세미나인 만큼 코딩까지의 진도는 너무 빠르다고 생각합니다. 첫 시간인 만큼 프로그램이 무엇인지에 대한 인식에 주안점을 두었으면 합니다.
- 정모/2007.3.6 . . . . 1 match
첫 번째 발표자 : 김정현 -> 계절학기수강, 스키장, 시간표프로그램 프로젝트 표류중(진행중), 그 외에는 잡다하여
- 정모/2011.3.14 . . . . 1 match
다음주에 현이형이 무슨 프로그램가지고 단어를 랜덤하게 뽑은 후에 이야기를 만들어보는걸 해본다고 하던데, 오늘 처럼 교양학교후에 참여해서 볼 수 있으면 좋겠네요.
- 정모/2011.3.2 . . . . 1 match
|| 프로그램 || 진행자 ||
- 정모/2011.3.28 . . . . 1 match
* [새싹교실/2011/쉬운것같지만쉬운반] -> [새싹교실/2011/Pixar]으로 이동
* 시작하기 전에 다들 모여 앉을 수 있도록 앞으로 나와달라고 했어야하는데 깜빡했네요. 그래서인지 이번 정모는 약간 산만한 느낌이 들었습니다. 이번 OMS는 게임 컨트롤러에 대한 내용이었는데 굉장히 흥미로웠습니다. Wii 나왔을때도 신기하다 대단하다 싶었는데 이제 뭐 들고 있을 필요도 없다니… 기술 발전이 참 놀라워요. 느리지 않을까 생각했는데 별로 느리지도 않은 것 같고 말이죠. 요새 플래시 보드(타는)게임을 자꾸 하는데 키넥트를 이용한 보드(타는)게임 해보고싶네요. 아파트에 살면서 그런거 하면 쫓겨나겠지만 난 아파트에 사는 게 아니니까;; 3월 회고를 진행했는데 OMS는 한결같이 호응이 좋습니다. 다시 시작하길 잘했네요~ 발표하는 사람에게도 듣는 사람에게도 즐거운 시간인 것 같아요. 그런데 다음주 OMS도 과연 그럴지………… 위키의 활성화도 긍정적인 반응이 많아 기뻤습니다. 안 쓰던 위키라 다들 불편하게 느끼시지 않을까했는데 역시 쓰다보면 또 익숙해지는 거니까요ㅎㅎ - [김수경]
- 정모/2011.5.16 . . . . 1 match
* 강의실 들어가는데 사람들이 많아서 깜짝 놀랐네요. 새내기들이 정모에 이렇게 많이 오다니 왠지 간질간질한 정모였어요. 새싹 골든벨 다들 재미지셨는지. 미리 문제 안내도 되나 걱정했는데 재학생분들 문제내느라 아주 신나셨던듯ㅋㅋ 함정파놓고 두근거리는게 다 보였네요. 마지막에 준석선배의 이벤트 감동이었어요. 새싹 선생님들께 헌화하는 새싹들 오글부럽. 파이먹고 기분좋게 끝내서 다들 좋은 기억 가져갔겠죠? 뭐 저런걸 다해라고 생각했는데 소소한 곳에서 감동을 받는게 인간인거 같습니다. 저도 이벤트 챙기는 법을 좀 알아둬야 겠어요. 하도 메말라서.. 후후 오늘의 후기 끝~ - [서지혜]
- 정모/2011.5.2 . . . . 1 match
1. 똑똑한 지구를 위한 똑똑한 애플리케이션 공모전 많이들 참가하셨으면 좋겠어요. 저도 작년에 신청만 하고 결과를 못 낸 아쉬움이 있어 올해 다시 도전해볼까 생각중입니다. 공모전이라고 해서 복잡하고 대단한 프로그램을 만들어야 하는 게 아니라 사소한 아이디어를 잘 다듬어 참가할 수 있는 공모전이라고 생각합니다. - [김수경]
- 정모/2012.10.29 . . . . 1 match
* pinple 데모
- 정모/2012.11.26 . . . . 1 match
* 전체적으로 학생 아이디어 착취를 위한 느낌의 프로그램이었음.
- 정모/2012.2.3 . . . . 1 match
* 이번주 금요일(2.10) 정모 전후로 6피 정비하겠습니다. 저번주에 걷은 회비를 이용한 회식을 언제할지는 당일 오시면 알려드리겠습니다.ㅋㅋ
- 정모/2012.4.2 . . . . 1 match
* OMS는 음악 만들기였는데 뮤직쉐이크 어디서 들어본 거 같긴 해요. 그런데 써본 적은 없고… 그런 프로그램으로 음악 만들기 힘들지 않나 싶었는데 생각보다 해볼만 한 것 같습니다. 시간나면 써봐야겠어요.
- 정모/2012.5.14 . . . . 1 match
* 동영상 강의도 있네요, [http://www.snow.or.kr/lecture///10628.html 프로그램의 구조와 해석] - [서지혜]
- 정모/2012.7.18 . . . . 1 match
* [김민재]학우의 DEP(Data Execute Prevention) : 실행 불가능한 메모리 영역에서 프로그램을 실행시키는 것 방지.
- 정모/2013.5.6 . . . . 1 match
* 좋은 코드를 알아 볼 수 있다고 해서, 우리가 좋은 코드를 쓸 줄 아는 건 아니니 좋은 코드를 쓰는 법을 공부해야 한다.
- 정모/2013.8.26 . . . . 1 match
* 현행 방식에서 약간 문제점이 있어, 새로운 방법을 연구중입니다.
- 정모/2013.9.11 . . . . 1 match
* 아두이노 : 아두이노 관련 서적도 보유중입니다. 아두이노를 이용한 스터디를 계획하고 있다.
- 정신병원에서뛰쳐나온디자인/밑줄긋기 . . . . 1 match
= 우리는 프로그램에게 희생을 강요당하고 있다 =
- 정의정 . . . . 1 match
* [데블스캠프2013] - MVC와 Observer 패턴을 이용한 UI 프로그래밍
- 정혜진 . . . . 1 match
email: aspiry 골뱅이 한메일 점 넷
- 제12회 한국자바개발자 컨퍼런스 후기/유상민의후기 . . . . 1 match
이렇게 기억하는데 검색해보니 http://inpion.com/ 서울에 사무실 있다. 잘못 기억한듯.
- 제로페이지의문제점 . . . . 1 match
99학번들의 경우 1학년때 여름방학때는 C++ & API 스터디를(15명이 넘었던걸로 얼핏 기억), 그 이후에 좀 한풀 꺾이다가 이전 스터디 멤버중 5-6명이 MFC 스터디를 진행하였다. 이 또한 시험기간때 이후 잠정적으로 중지되었지만, 스터디 한 만큼만은 멤버들에게 지식으로 남았다. 그리고 그중 3명은 매일 금요일마다 밤새는 날을 만들기도 하였으며, 혹자는 이상엽씨 배개책을 버스에서 완독하였다고 전해진다.
혹은, Netory와 같은 방법을 써보는 건 어떨까요? 피시실 관리를 맡는 학회라는 점을 이용하는 방법이 있겠죠.
- 제로페이지의장점 . . . . 1 match
학풍이라는 것이 있다. 집단마다 공부하는 태도나 분위기가 어느 정도 고유하고, 이는 또 전승되기 마련이다. 내가 1학년 때('93) ZeroPage에서 접했던 언어들만 보면, C 언어, 어셈블리어, 파스칼, C++ 등 경계가 없었다. 친구들을 모아서 같이 ''Tao of Objects''라는 당시 구하기도 힘든 "전문" OOP 서적을 공부하기도 했다. 가르쳐줄 사람이 있었고 구하는 사람이 있었으며 함께할 사람이 있었다. 이 학풍을 이어 나갔으면 한다. --JuNe
- 조금더빠른형변환사용 . . . . 1 match
[http://bbs.kldp.org/viewtopic.php?t=48025]
- 조재화 . . . . 1 match
* 03. 한해동안 C++MFC와 PYTHON그리고 JAVA를 좀 잘 이해해서 컴퓨터 프로그램이나 겜을 많이 만들고 싶당.
*WIndows Program(API,MFC)
- 조현태/놀이/미스틱아츠 . . . . 1 match
|| 2005.04.14 || 네모네모 로직 푸는 프로그램 완성~~>ㅁ<;; 너무 힘들었..ㅎㅎㅎ(for와 if만 사용한;;) || [조현태] ||
- 조현태의자바교실 . . . . 1 match
* 2학년 1학기 컴퓨터프로그램설계 프로젝트 대비라는 성격을 지닌 GUI 강좌 및 스터디.
- 졸업논문/요약본 . . . . 1 match
웹 환경은 이제 하나의 플랫폼으로 자리 잡고 있다. 빠르게 변하는 웹 환경에는 python같은 객체지향 언어가 적당하다. Django는 python으로 만들어진 웹 애플리케이션 프레임워크로, 데이터베이스를 추상화하여 개발자가 기민하게 웹 애플리케이션을 작성하도록 돕는다. Django에서는 기존에 ODBC등을 이용하는 CLI 보다 한 단계 더 높은 수준에서 데이터베이스를 사용할 수 있다. 예를 들어 주언어 python에 클래스를 정의하면 데이터베이스 테이블을 자동으로 생성해주며, 클래스가 변경되면 데이터베이스 테이블도 자동으로 수정해준다. 그 밖에 삽입, 삭제, 수정, 조회 기능을 클래스가 가진 메소드로 추상화하여 주언어 수준에서 데이터베이스를 사용할 수 있도록 한다. 이러한 지원을 바탕으로 웹 애플리캐이션 개발자는 기민하게 프로그램을 작성할 수 있다.
- 좋은글귀s . . . . 1 match
"우리가 애플에 있는 이유는 세계에서 가장 우수한 컴퓨터와 세계에서 가장 우수한 소프트웨어를 만들기 위함이다. 우리는 현재 가장 우수한 일부 제품을 가졌다. 그렇지만 그것을 한층 더 발전시킬 수 있다. 우리는 훨씬 더 우수한 제품들을 만들 방법을 알려고 매일 일하는 것이다. 그러므로 그것이 우리를 채찍질하는 역할을 한다. 우리는 세계에서 가장 좋은 제품을 만들려 애쓰고 있다. 그리고 그렇게 할 때 우리는 편히 잠자리에 들 수 있을 것이다." - 제프리 크루이상크의 '애플의 방식' 중에서 (더난, 67p)
- 주민등록번호확인하기 . . . . 1 match
알고리즘을 알아야 프로그램을 짜는뎅; ㅠㅠ - 태훈
- 중위수구하기/김태훈zyint . . . . 1 match
[LittleAOI] [중위수구하기]
- 중위수구하기/남도연 . . . . 1 match
cout<<"프로그램 종료"<<endl;
- 중위수구하기/문보창 . . . . 1 match
[중위수구하기] [LittleAOI]
- 중위수구하기/정수민 . . . . 1 match
[LittleAOI] [중위수구하기]
- 중위수구하기/조현태 . . . . 1 match
[LittleAOI] [중위수구하기]
- 지금그때2003/토론20030310 . . . . 1 match
* ex) 프로그램 공부는 어떻게 하나요? , 요새 어떤 책을 보나요? , 영어공부는 어떻게 해야 하나요? , 사회에 나가면 어떤 일을 하나요? , 학교공부만 따라가면 충분한가요? , 학회에 속해야 하나요? 등등
- 지금그때2006/여섯색깔모자20060317 . . . . 1 match
파랑: 각 방법을 누가 어떻게 하면 좋을지 초록 모자를 써보자.
- 지금그때2006/후기 . . . . 1 match
주사위를 이용한 참신한 발상도 좋았고 시간 안배에 신경을 써 진행에 지장이 없었던 것이 좋았다고 할 수 있겠네요.
- 진법바꾸기/허아영 . . . . 1 match
음.. 프로그램을 짤 때 각자의 가치관이 소스에 드러나는건 당연한 거고, 아영이의 가치관은 훌륭하기 그지없다고 봐.ㅎㅎ 회사에가서 소스를 작성했을때, 알려주기 싫다거나 귀찮다는 이유로 소스를 가지런히 만들지 않는다면, 그건 월급을 받고도 자기일을 다 하지않는 것과도 같을 테니까.ㅎㅎㅎ
- 창섭 . . . . 1 match
[http://165.194.17.15/pds/200232993449/SSHWinClient-3.1.0-build235.exe ssh 접속프로그램][[BR]]
- 창섭/BitmapMasking . . . . 1 match
* 래스터 연산을 이용한다. 디지털 공학 시간에 배우는 OR, AND, XOR 등을 비트맵에서도 적용할 수 있다. 여기서는 XOR 은 쓰지 않아도 된다.
- 책거꾸로읽기 . . . . 1 match
인도인들은 훌륭한 관광자원들(ex,타지마할)을 지니고도 그것을 이요해 돈 버는 방법을 잘 모른다. 그 이유로는 오랜 사회주의로 인해 돈 맛을 아직 모르고, 내새를 중시하는 종교문화 때문에 현실을 개선하려는 의지가 부족하다는 점이 있다. 하지만 거꾸로 뒤집어 보면 당장 돈 맛에 눈을 뜨면 돈벌이는 시간 문제라는 이야기가 될 수 있다.
- 최대공약수/허아영 . . . . 1 match
프로그램의 마지막 부분에서 원래 값을 프린트하고 그의 복사본으로 GCD를 계산하는 방법이 있다는 것을 알았다.
- 최소정수의합 . . . . 1 match
문제 : 1 + 2 + 3 + ..... + n >= 3000 을 만족하는 최소 n과 그것의 합을 구하는 프로그램을 작성.
- 최소정수의합/송지훈 . . . . 1 match
조건 제시법을 쓰는 방법이 잘못된건지...
- 최소정수의합/조현태 . . . . 1 match
//1 + 2 + 3 + ..... + n >= 3000 을 만족하는 최소 n과 그것의 합을 구하는 프로그램을 작성
- 최소정수의합/최경현 . . . . 1 match
// 문제 : 1 + 2 + 3 + ..... + n >= 3000 을 만족하는 최소 n과 그것의 합을 구하는 프로그램을 작성.
- 최소정수의합/허아영 . . . . 1 match
만약에 3000까지가 아닌 더 큰 수를 입력하고 프로그램을 돌려보시겠어요? 위의 코드에서 int 를 double 형으로 바꾸고 3000 대신 18000000000000000000 을 넣은 코드입니다. 한번 실행해 보세요. 더 나은 방법이 생각나실수도 있을것 같아요. 문제를 풀고 나서 어떤 점을 느끼셨나요? - 아무개
- 카고컬트과학 . . . . 1 match
* 선생님이 학생이 가르칠 때에는 자신이 옳다고 생각하거나, 혹은 자신의 방법이 틀리다고 생각하여 새로운 방법을 시도하려 하지 않는다. [[BR]]
- 컴퓨터가했다 . . . . 1 match
{{{~cpp 하나를 가르치면 하나만 할 줄 아는 A씨가 있습니다. 그런 A씨에게 데기가 청소하는 법을 가르쳤고,
- 코드레이스출동/후기 . . . . 1 match
* 진행자(해설자)의 말을 귀담아 듣지 않았다; 에러 리포트 보는 법을 몰랐고 전반적으로 어떻게 돌아가는지 관심없이 오로지 돌아가지 않는 코드에만 집중했다.
- 큰수찾아저장하기 . . . . 1 match
행렬[3][3]에는 전체 중 가장 큰 수를 찾아 저장한 다음, 이들을 깔끔하게 출력하는 프로그램을 작성하여라.
- 큰수찾아저장하기/허아영 . . . . 1 match
또 더 좀더 효율적인 프로그램을 만들기 위해선 어떻게 해야할까 ? 그리고 C언어의 장점을 살리는 방법이 뭘까?
- 타도코코아CppStudy/0804 . . . . 1 match
|| Seminar:SpiralArray || . || . || . ||
- 테트리스만들기2006/예제1 . . . . 1 match
사각형만 내려오는 테트리스를 만든다. 계속 내려오기만 하면 되며 끝까지 쌓이면 프로그램이 종료된다.
- 토이/숫자뒤집기 . . . . 1 match
이 토이의 주안점은 각기 다른 방법을 최대한 많이 찾는 것임
- 토이/숫자뒤집기/김정현 . . . . 1 match
최대한 많이 방법을 찾자
- 튜터링/2013/고딩같은어셈 . . . . 1 match
* 서울어코드 사업에서 진행하는 튜터링 프로그램에 참가해 튜터링 활동을 진행
- 포항공대06입시 . . . . 1 match
내 세울것들(논문, 프로그램 만든것등.. 참고 자료), 영어는 기본
- 프로그래머의편식 . . . . 1 match
OS별로 시스템 API가 다르지만 따지고 보면 다 거기서 거기다. 한국에서 개라고 하는 것을 미국에서 Dog라고 하는 차이가 있을 뿐 OS가 다르다고 해서 프로그래밍하는게 완전히 새롭지 않다. 많은 OS에서 개발을 해보면 서로 놀랍도록 비슷하다는 것을 알 수 있다. 그러니, 새로운 OS에서 개발하는 것에 대해 두려워하거나 걱정할 필요 없다. 한가지 OS에 대해 제대로 알고 있다면, 처음보는 OS에서 개발하는 것도 90%는 이미 알고 있다고 생각해도 된다.
에디터는 자기가 익숙하고 손에 편한 것을 쓰면 그만이다. 어떤 에디터를 쓰느냐 보다 그 에디터로 어떤 프로그램을 만들어 내는가가 더 중요하다. 울트라 에디터를 쓰던, vi를 쓰던, 메모장을 쓰던, 쓰는 사람만 편하고 좋은 코드만 만들어낼 수 있으면 된다. 어떤 guru가 vi를 쓴다고 해서, 자기도 vi를 쓰면 guru가 되는게 아니다.
- 프로그래밍/장보기 . . . . 1 match
public class Shopping {
- 프로그래밍은습관이다 . . . . 1 match
* 대학원 다니는 아는 선배에게 디버깅 세미나 할건데 뭐 도움되는 말좀 해달라고 하니깐 '프로그래밍은 습관이다' 란 말을 해줬다. 공감이 가는 말이다. 프로그래머에게 프로그래밍은 습관인거 같다. 마치 자전거를 처음 탈때는 엎어지고 그러다가 한번 타기 시작하면 그 다음부터는 쉽게 타는것이랑 비슷한거 같다. 난 군대 가기전에 군대 갔다 오면 프로그래밍 하는것을 다 까먹을텐데 하고 걱정을 했었다. 그런데 군대 가서 프로그래밍에 더 발전은 없었지만 마치 자전거 타는 법을 배우고 한동안 안타다가 다시 타는것과 같았다. 세세한 문법같은것은 생각이 나지 않더라도, 그런것을 어디서 찾을지와, 어떤식으로 적용할지는 몸으로 체득했기 때문에(삽질ㅜㅡ ) 몸이 기억을 했다. - [상협]
- 프로그래밍잔치/셋째날후기 . . . . 1 match
모여서 전화번호 핸드폰에 있는 문자로 입력받아 번호로 출력하는 프로그램을 짰다. (["Telephone"] 참조)
- 프로그래밍잔치/정리 . . . . 1 match
* Pair Programming 중 실천적인 구체적 방법을 미리 제시해주지 않음. - Pair 가 잘 이루어지지 않는 팀을 빨리 파악하고 빠른 대처/처방안을 주었더라면 하는 아쉬움이 든다.
- 프로그래밍잔치/첫째날 . . . . 1 match
* 시연 MP3공유 프로그램 20
- 프로그래밍파티 . . . . 1 match
ZP 랑 Moa 랑 페이지가 따로 열려있어서 정보가 분산되는 느낌이 드는데, 한곳에서 토의하는건 어떨까요? 그리고 DesignFest랑 ProgrammingContest 중 어떤거 할것인가는 무기명투표모드를 함 적용하는것도..~ (ProgrammingContest 의 경우 IPSC로 ZP가 예습(?)한 것 같은 느낌이 들어서;; 오 찔린다;) 14일까지 결정하고, 16일까지 행사때 진행방법을 구체적으로 정했으면 합니다.~ ^^ --석천
- 피보나치 . . . . 1 match
기본적인 함수의 제작은 재귀호출로 만들어야 하나, 다른 방법을 사용해도 됩니다.
- 피보나치/김재성,황재선 . . . . 1 match
printf("이프로그램제작에 도움을 주신 황재선형님꼐 감사를 드립니다");
- 피보나치/조재화 . . . . 1 match
세번째로 만드는 프로그램~~(피보나치수열)
- 학문의즐거움 . . . . 1 match
그냥 좋게 받아 드려서 스스로 즐겁게 공부하는 법을 터득했으면.... fnwinter
- 황재선 . . . . 1 match
특정 column 길이가 짧아서 고민하고 있었는데 감사합니다.^^ 링크를 보고 힌트를 얻어 table 전체 사이즈를 변경하는 방법을 찾았습니다. 문제 해결해서 기쁘네요 :)
Found 1605 matching pages out of 7555 total pages (5000 pages are searched)
You can also click here to search title.