- Linux/필수명령어/용법 . . . . 432 matches
사용자를 새로 등록한다.
이것은 슈퍼 유저만이 사용할 수 있다. 명령을 입력하면 로그온 이름 등을 차례로 물어오며, 그에 따라서 알맞게 입력해 나가면 된다.
그외에도 홈 디렉토리에 사용하는 셸 등을 계속 물어오는데, 대괄호 속에 내정된 것을 그냥 사용하고자 한다면 엔터키만 누르면 된다. 패스워드 등을 입력하고 나면 지금까지 입력된 정보를 보여주고, 몇 가지 생성 작업을 화면으로 보여준 후 작업을 종료한다.
프로그램을 지금이 아닌 나중에 실행하도록 예약한다.
-q 큐 : 대소문자 알파벳으로 큐를 지정한다. 순서적으로 빠른 알파벳이 지정된 큐 일수록 CPU 시간 점유 우선권이 낮다.
명령은 기본적으로 표준 입력 장치를 통해서 받으며, ^D로 입력을 종료한다. 리다이렉션을 사용하여 다른 파일의 내용을 사용할 수 있다.
/etc/at.allow 파일이 있다면 이 파일에 명단이 있는 사용자만이 at 명령을 사용할 수 있다. /etc/at.allow 파일이 없다면 /etc/at.deny 파일을 찾는다. 이 파일에 목록이 있는 사용자는 at 명령을 사용할 수 없다. 두 파일 모두 찾지 못한다면 오로지 슈퍼 유저만이 at 명령을 사용할 수 있다. 그리고 /etc/at.deny 파일이 비어 있다면 모든 사용자가 at 명령을 사용할 수 있다.
인수로 주어진 문자열을 큰 글씨로 만들어서 출력한다.
-w : 옵션 지정만 하면 80 칼럼으로 폭을 바꾼다. 지정하지 않으면 132 칼럼으로 내정되어 있다. -w 옵션 뒤에 숫자를 지정하면 원하는 폭으로 조정할 수 있다.
출력은 표준 출력으로 내정되어 있다. 글자는 열 배 정도 확대된다. 글자는 에스터리스크(*)를 조합하여 만든다.
biff
- biff [ y 혹은 n]
유닉스 셸은 사용중이라도 주기적으로 전자우편의 수신 여부를 점검한다. 만일 사용자가 전자우편이 도착하는 즉시 알고자 한다면 biff를 사용하여 그것을 지시할 수 있다. 또는 언제라도 그 기능을 해제할 수도 있다. biff는 인수없이 사용되면 현재 어떤 상태로 되어 있는지 보여준다. 기능 설정과 해제 여부는 y 혹은 n 인수를 주어서 결정한다.
- $ biff
- $ biff y ,,기능설정
- $ biff
인수를 하나만 준다면 그 숫자는 연도를 의미하는 것으로 간주된다. 두 개의 숫자를 준다면 앞의 것은 월, 그 다음은 연도를 의미하는 것이 된다. 우리의 습관과는 다른 방법을 사용한다. 아무 인수도 주어지지 않으면 이번달의 달력을 표시한다. 연도를 표기할 때는 서기를 완전히 표기해야 한다. 예를들어 97은 1997년이 아니라 서기 97년의 달력을 출력할 것이다.
cat은 catenate(사슬로 잇다. 연결하다)에서 이름이 유래한다. 이것은 파일의 내용을 화면에 출력하는 데 사용되기도 하며 파일을 다른 곳에 순차적인 스트림으로 보내기 위해 사용된다.
-e : 제어 문자를 ^ 형태로 출력하면서, 각 행의 끝에 $를 추가한다. -vE와 같다.
-s : 중복되고 겹치는 빈 행은 하나의 빈 행으로 처리한다.
- MoreEffectiveC++/Miscellany . . . . 364 matches
* Item 32: 미래를 대비하는 프로그램
(작성자주:제목은 직역보다, 전체 내용으로 결정했다.)
소프트 웨어 개발자라면, 우린 아마 많은것을 알 필요는 없다. 하지만 변하는 것은 인지해야 한다. 우리는 무엇이 변할건가, 어떻게 변할건가, 언제 변화가 일어나는가, 왜 거기에서 변화가 일어나는가 이런것 따위는 알필요가 없다. 그렇지만 우린 알아야 한다. '''변화한다.''' 라는 점 말이다. (작성자주:개인적인 의견으로 의역한 단락, 혹시나 관심있으면 의견좀 내주세요.)
좋은 소프트웨어는 변화를 잘 수용한다. 새로운 기능을 수용하고, 새로운 플랫폼에 잘 적용되고, 새로운 요구를 잘 받아 들이며, 새로운 입력을 잘 잡는다. 이런 소프트웨어는 유연하고, 강하고, 신뢰성있고, 돌발 상황(사고)에 의해 죽지 않는다. 이런 소프트웨어는 미래에 필요한 요소를 예상하고, 오늘날 구현시에 포함시키는 프로그래머들에 의해서 디자인된다. 이러한 종류의 소프트웨어는-우아하게 변화하는 소프트웨어- ''program in the future tens''(매래의 프로그램:이하 영문 직접 사용)을 감안하는 사람들이 작성한다.
''program in future tense''는, 변화의 수용하고, 준비한다. 라이브러에 추가될 새로운 함수, 앞으로 일어날 새로운 오버로딩(overloading)을 알고, 잠재적으로 모호성을 가진 함수들의 결과를 예측한다. 새로운 클래스가 상속 계층에 추가될 것을 알고, 이러한 가능성에 대하여 준비한다. 새로운 어플리케이션에서 코드가 쓰이고, 그래서 새로운 목적으로 함수가 호출되고, 그런 함수들이 정확히 동작을 유지한다. 프로그래머들이 유지 보수를 할때, 일반적으로 원래의 개발자의 영역이 아닌, 유지 보수의 몫을 안다. 그러므로, 다른 사람에 의해서 소프트웨어는 이해, 수정, 발전의 관점에서 구현하고 디자인된다.
이런 좋은 소프트웨어를 만들기 위한 방법으로, 주석이나, 기타 다른 문서 대신에 C++ 내부에 디자인으로 구속해 버리는 것이다. 예를들자면 '''만약 클래스가 결코 다른 클래스로 유도되지를 원치 않을때''', 단시 주석을 헤더 파일에 넣는 것이 아니라, 유도를 방지하기 위하여 C++의 문법을 이용한 기술로 구속 시킨다.;이에 대한 방법은 '''Item 26'''에 언급되었다. 만약 클래스가 '''모든 인스턴스를 Heap영역에 생성시키고자 할때''', 클라이언트에게 말(문서)로 전달하는 것이 아니라. '''Item 27'''과 같은 접근으로 제한 시켜 버릴 수 있다. 만약 클래스에 대하여 복사와 할당을 막을려고 할때는, 복사 생성자와 할당(assignment) 연산자를 사역(private)으로 만들어 버려라. C++은 훌륭한 힘과, 유연성, 표현성을 제공한다. 이러한 언어의 특징들을 당신의 프로그래밍에서 디자인의 정책을 위해서 사용하라.
"변화한다.", 험난한 소프트웨어의 발전에 잘 견디는 클래스를 작성하라. (원문:Given that things will change, writeclasses that can withstand the rough-and-tumble world of software evolution.) "demand-paged"의 가상 함수를 피하라. 다른 이가 만들어 놓지 않으면, 너도 만들 방법이 없는 그런 경우를 피하라.(모호, 원문:Avoid "demand-paged" virtual functions, whereby you make no functions virtual unless somebody comes along and demands that you do it) 대신에 함수의 ''meaning''을 결정하고, 유도된 클래스에서 새롭게 정의할 것인지 판단하라. 그렇게 되면, 가상(virtual)으로 선언해라, 어떤 이라도 재정의 못할지라도 말이다. 그렇지 않다면, 비가상(nonvirtual)으로 선언해라, 그리고 차후에 그것을 바꾸어라 왜냐하면 그것은 다른사람을 편하게 하기 때문이다.;전체 클래스의 목적에서 변화를 유지하는지 확신을 해라.
모든 클래스에서 할당(assignment), 복사를 잡아라. "비록 아무것도 하지 않는 것"이라도 말이다. 왜냐하면 그것들이 지금 할수 없는건 미래에도 할수 없다는 의미이다. 만약 이러한 함수들이 구현하기에 어렵게 한다면, 그것을 private로 선언하라. 미래에도 동작시키게 하지 않다는 의미다. 컴파얼러가 만들어내는 함수에 대한 모호한 호출을 할리가 없다. (기본 할당 생성자나 기본 복사 생성자가 종종 발생되는 것처럼)
원리를 구현하기 위해 특이하게 하지 마라.:연산자와 함수를 자연스럽고 명시적인 문법으로 제공하라. built-in(기본 자료) 형으로 구현하라:의심될때는 int로 하라
어떤이가 무언가를 '''할수있다는것''' 알게되면 그들을 그것을 '''할것이다.''' 그들은 예외를 던질 것이다. 그들은 그들 스스로에게 객체를 할당할 것이다. 그들은 값을 제공하기전에 객체를 사용할 것이다. 그들은 객체를 제공하겠지만, 결코 사용하지 않는다. 그들은 커다란 값을 제공할 것이다. 그들은 아주 작은 값을 제공할 것이다. 그들은 null 값을 제공할 것이다. '''일반적으로 만약 컴파일이 되면 어떤이가 그것을 할것이다.''' 결과적으로 당신의 클래스를 정확히 사용하는건 쉽게, 이상하게 사용하는건 어렵게 만들어라. 클라이언트가 실수를 하도록 해라 그리고 당신의 클래스들이 그러한 에러들을 방지하고, 찾고, 수정할수 있게 만들어라. (예를들어 Item 33 참고)
이식성 있는 코드를 만들어라. 이식성 있는 프로그램의 제작은 그렇지 않은 경우보다 매우 어려운게 아니다. 그리고 눈에 보일 만큼 성능면에서 이식성 없는 코드를 고집해야 하는 경우는 희귀하다.(Item 16참고) 특정한 하드웨어를 위한 프로그램의 디자인에서도, 얼마 안있어 하드웨어 성능이 동일한 수준의 성능을 가져다 주므로, 이식성 있도록 만들어라. 이식성 있는 코드의 작성은 플랫폼 간의 변환에 쉽고, 당신의 클라라이언트 기반을 공고히 하고, 오픈 시스템의 지원에 관하여 좋다. 만약, 한 OS에서 성능이 실패해도, 쉽게 복구할수 있다.
당신의 코드를 변화가 필요할때, 그 효과를 지역화(지역화:localized) 시키도록 디자인 해라. 가능한한 캡슐화 하여라:구체적인 구현은 private 하라. 광범위하게 적용해야 할곳이 있다면 이름없는(unamed) namespace나, file-static객체 나 함수(Item 31참고)를 사용하라. 가상 기초 클래스가 주도하는 디자인은 피하라. 왜냐하면 그러한 클래스는 그들로 부터 유도된 모든 클래스가 초기화 해야만 한다. - 그들이 직접적으로 유도되지 않은 경우도(Item 4참고) if-than-else을 개단식으로 사용한 RTTI 기반의 디자인을 피하라.(Item 31참고) 항상 클래스의 계층은 변화한다. 각 코드들은 업데이트 되어야만 한다. 그리고 만약 하나를 읽어 버린다면, 당신의 컴파일러로 부터 아무런 warning를 받을수 없을 것이다.
이와 같은 내용들을 아무리 반복해서 말하곤 하지만, 대부분의 프로그래머들은 현재의 시류를 그대로 고집한다. 훌륭한 안목의 C++ 전문가가 말하는 충고에 관해서 생각해라.
* 당신은 B*가 가리키고 있는 D를 제거할때 가상 파괴자를 필요로 한다.
여기에서 B는 D의 기초 클래스이다. 다른 말로 하자면 이 작성자는 만약 다음과 같은 경우에 B는 가상 파괴자(virtual destroctor)가 필요 없어 보인다.
그 의미는 클라이언트 코드에 대하여 약간의 변화가 -delete문-결과적으로 클래스 B의 정의까지 변화해야 하는 필요성을 보여준다. 그런한 상황이 발생하면, B의 클라이언트들은 모두 재 컴파일 해야 한다. 아까, 이 필자의 충고를 따르면, 확장 코드에 대한 클라이언트의 라이브러리도 재 컴파일, 재 연결해야 한다. 이는 소프트웨어 디자인에 효과를 미틴다.
DeleteMe 전체적으로 모호가 아니다, 뒤에 내용을 봐야 앞에 내용이 이해가 감.
같은 주제로, 또 다른 필자의 글을 보자.
다른 말로 하면 이런거다.
그렇지만 새로운 클래스가 B로부터 유도되면 바뀌어야 한다.
- MoreEffectiveC++/Efficiency . . . . 352 matches
DeleteMe ) 해당 스크립트의 뒷부분이 제대로 이해가 안간다. 당연한 내용을 꼬아 쓴것 같은데, 차후 수정 시도 하겠음 --상민
'''80-20 규칙''' 이란? 프로그램의 80%의 리소스가 20%의 코드에서 쓰여진다.:실행 시간의 80%가 대략 20%의 코드를 소모한다;80%의 메모리는 어떤 20%의 코드에서 쓴다.;80%의 disk 접근은 20%의 코드에서 이루어진다.:80%의 소프트웨어 유지의 노력은(maintenance effort)는 20%의 코드에 쏟아 부어진다.[[BR]]
80-20 규칙을 생각할때 이 숫자에 너무 매달릴 필요는 없다. 때로 사람들은 90-10이 될수도 있는거고, 실험적인 근거도 역시나 그렇게 될수 있는 것이다. 정확한 숫자이든, 중요한 사안,포인트는 바로 이것이다.: 당신의 소프트웨어의 수행의 부하는 거의 항상 소프트웨어의 작은 부분에서 결정되어 진다는 점이다.
프로그래머의 노력이 당신의 소프트웨어의 성능 개선에 촛점을 맞추게 된다면 80-20 규칙은 당신의 생활을 '''간편하게(윤택하게)''', 혹은 좀더 '''복잡히(어렵게)''' 만들어 나갈것이다. '''간편하게(윤택하게)''' 쪽을 생각한다면, 80-20 규칙은 당신이 성능에 대하여 솔직히 어느 정도 평범한 코드의 작성을 대다수에 시간을 보낼수 있음을 의미한다.왜냐하면 당신이 일하는 시간의 80%에 작성된 것은 시스템의 성능에 관해 특별히 해를 끼치지 않는다는 의미이기 때문이다. 저의미는 아마 많은 부분이 당신을 위한 말은 아니지만, 그것은 당신의 스트레스 정도를 다소 줄여줄수 있다. '''복잡히(어렵게)'''를 생각해 본다면 80-20 규칙은 만약 당신이 성능문제를 가지고 있다면 당신 앞에 놓여진 일은 험하다는 걸 의미한다. 왜냐하면, 당신은 오직 그 문제를 일으키는 작은량의 코드들을 제거해야 하고, 성능을 비약적으로 향상시키는 방법을 찾아야 하기 때문이다. 이렇게 80-20 규칙은 두가지의 반대되는 다른 관점에서의 접근이 주어진다.:대다수 사람들은 그렇게하고, 옯은 방법을 행해야 할것이다.
많은 사람들이 병목현상(bottleneck)에 관한 해결책에 고심한다. 경험에 따른 방법, 직관력, tarot 카드이용(운에 맏기기) 그리고 Ouija(점괘를 나타내는 널판지의 상표명, 즉 점보기) 보드를 사용 하기도 하고, 소문이나 잘못, 올바르지 않은 메모리 할당, 충분하지 않은 최적화를 한 컴파일러, 혹은 치명적인 순환 구문을 만들어내기 위해 어셈블리 언어를 사용한 돌대가리 메니저들의 메니저들. 이러한 사정들은 일반적으로 멸시의 비웃음을 동반하고, 그들의 예언은 솔직히 잘못된 것이다.
대부분 프로그래머들은 그들의 프로그램에 관한 특성에 관하여 멍청한 직관력을 가지고 있다. 왜냐하면 프로그램 성능의 특징은 아주 직관적이지 못하다. 결과적으로 남에 눈에는 띄지 않고 말할수 많은 노력이 성능 향상을 위해 프로그램의 관련된 부분에 쏟아 부어 진다. 예를들어서 아마, 계산을 최소화 시키는 알고리즘과 데이터 구조가 프로그램에 적용 되다. 그렇지만 만약에 입출(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%일꺼다. - 불만있는 구역에는 접근하지 않을 다는 의미가 된다. 프로파일은 오직 당신에게 프로그램의 특별난 부분에 관해서만 이야기 할수 있는걸 기억해라 그래서 만약 당신이 표현되지 않는 입력 데이터 값을 프로파일 한다면 당신은 겉으로 들어나지 않는 값에 대한 프로파일로 돌아가야 할것이다. 그것은 당신이 특별한 쓰임을 위하여 당신의 소프트웨어를 최적화 하는것과 비슷하다. 그리고 이것은 전체를 보는 일반적인 쓰임 아마 부정적인 영양을 줄것이다.
이런 결과들을 막는데 최선책은 당신의 소프트웨어에 가능한한 많은 데이터 들에게 프로파일을 시도하는것이다. 게다가 당신은 각 데이터들이 소프트웨어가 그것의 클라이언트들(혹은 최소한 가장 중요한 클라인트들에게라도)에게 사용방식을 잘 보여주도록 확신할수 있어야만 한다. 잘표현되는 데이터들은 얻기가 용이하다 왜냐하면 프로파일링 중에는 당신이 그들의 데이터를 사용할수 있기때문에 많은 클라이언트들이 좋기 때문이다. (뭔소리야. --;) 당신은 당신의 소프트웨어를 그들과 만나면서 조정(tuning)을 할것이고, 그것이 오직 당신이나 클라이언트들 양쪽에게 좋은 방법이다.
능률(efficiency)의 관점에서 최고의 계산은 결코 아무것도 수행하지 않는것이다. 말이 좀 이상한가? 생각해 봐라 당신이 어떤 일도 필요없을때 이건 맞는거다. 왜 당신은 당신의 프로그램안에서 가장 처음에 그것을 수행하려 하는가? 그리고 만약 당신이 어떤 일을 수행하기를 원할때 당신은 그 코드의 실행(excuting)을 피할수는 없을까?
자 여기서의 열쇠(keyword)가 바로 '''lazy''' 이다.
우리가 어린이이고, 당신의 부모님들이 당신에게 방을 치우라고 이야기 했을때를 기억해 보자. 만약 당신이 나와 같다면 말이지 난 당장 "네" 하고 대답하고 아마도 다시 내가하던 다른 일을 할꺼다. 당신은 아마 방을 치우지 않겠지. 사실 방을 치우는 작업은 당신의 일의 우선순위에 대한 생각에서 마지막에 위치한다. - 그러니까. 당신의 부모님이 당신에 방에 다가오는 소리를 들을때 말이지. 그리고 나면 당신은 전속력으로 방으로 뛰어들어가 가능한한 가장 빨리 치운다. 만역 당신이 행운아라면 부모님들은 결코 체크를 안하시고 당신은이런 모든 치우는 귀찮은 작업을 보통 꺼린다.
이런 같은 관점을 이제 막 5년차 C++프로그래머에 대입 시켜본다. 컴퓨터 과학에서, 우리는 그러한 뒤로 미루기를 바로 ''''lazy evaluation''''(구지 해석하면 '''필요시 연산, (최)후 연산, 늦은 연산'''정도라 할수 있겠다.)이라고 말한다. 당신이 lazy evaluation을 사용하면 당신의 클래스들이 최종적으로 원하는 결과가 나올 시간까지 지연되는 그런 상태로 코딩을 해야 한다. 만약 결과값을 결국에는 요구하지 않는다면, 계산은 결코 수행되지 않아야 한다. 그리고 당신의 소프트웨어의 클라이언트들과 당신의 부모님은 더 현명하지 않아야 한다.( 무슨 소리냐 하면, 위의 방치우기 이야기 처럼 부모님이나 클라이언트들이 lazy evaluation기법의 일처리로 해결을 하지 않아도 작업에 대한 신경을 안써야 한다는 소리 )
아마 당신은 내가 한 이야기들에 대하여 의문스로운 점이 있을것이다. 아마 다음의 예제들이 도움을 줄것이다. 자!, lazy evaluation은 어플리케이션 상에서 수많은 변화에 적용할수 있다. 그래서 다음과 같이 4가지를 제시한다.
String 복사 생성자의 적용시, s2는 s1에 의하여 초기화 되어서 s1과 s2는 각각 "Hello"를 가지게된다. 그런 복사 생성자는 많은 비용 소모에 관계되어 있는데, 왜냐하면, s1의 값을 s1로 복사하면서 보통 heap 메모리 할당을 위해 new operator(Item 8참고)를 s1의 데이터를 s2로 복사하기 위해 strcpy를 호출하는 과정이 수행되기 때문이다. 이것은 ''''eager evaluation''''(구지 해석하면 '''즉시 연산''' 정도 일것이다.) 개념의 적용이다.:s1의 복사를 수행 하는 것과, s2에 그 데이터를 집어넣는 과정, 이유는 String의 복사 생성자가 호출되기 때문이다. 하지만 여기에는 s2가 쓰여진적이 없이 새로 생성되는 것이기 때문에 실제로 s2에 관해서 저런 일련의 복사와, 이동의 연산의 필요성이 없다.
lazy 접근 방법은 좀더 훨씬 적은 수행을 이끈다. s1의 복사로 s2를 제공하기 대신에 s2가 s1의 값을 공유해 버리는 것이다.
지금 위에서 이렇게 접근하는 방식은 작고, 간단한 부분을 언급하는거에 불과하다 그래서, 누가 무엇을 공유했는지 알고 있고, 반환되는 값으로, 언급한 new와 복사에 추가비용되는 지출을 줄일수 있다. s1,s2가 공유하는 데이터 구조의 상태는 클라이언트들에게 명확하다. 그리고 그것은 확실히 다음에 제시될 예제같이 값을 쓰지 않고 읽기만을 요구할때는 아무런 걱정할 점이 없다.
- MoreEffectiveC++/Techniques1of3 . . . . 327 matches
* Item 25: 생성자와 비멤버 함수를 가상으로 돌아가게 하기.
사실 가상 생성자라는건 존재하지 않는다. 하지만 이를 비슷하게 구현하는 것이다. 예를들자면 당신이 newsletter을 보내는 어플리케이션을 짜는데, 여기에 글과 그림 데이터 인자로 구성시킨다고 가정하면 이렇게 만들수 있을 것이다.
http://zeropage.org/~neocoin/data/MoreEffectiveC++_124_1.gif
list 클래스는 STL로 이루어져 있는데, Item 35를 참고하면 정보를 얻을수 있다. 단순히 이중 연결 리스크(double linked list)라고 생각하면 무리가 없을 것이다.
가짜 코드로 이 생성자를 대강 표현하면
다음에 추가될 인자 객체(component object)를 str로 부터 읽는다.
혹은 약간 수를 써서 readComponent를 호출하는 식으로 바꾼다면
readComponent가 무엇을 어떻게 하는지 궁리해 보자. 위에 언급한듯이 readComponent는 리스트에 넣을 TextBlock나 Graphic형의 객체를 디스크에서 읽어 드린 자료를 바탕으로 만들어 낸다. 그리고 최종적으로 만들어진 해당 객체의 포인터를 반환해서 list의 인자를 구성하게 해야 할것이다. 이때 마지막 코드에서 가상 생성자의 개념이 만들어 져야 할것이다. 입력되 는자료에 기초되어서, 알아서 만들어 인자. 개념상으로는 옳지만 실제로는 그렇게 구현될수는 없을 것이다. 객체를 생성할때 부터 형을 알고 있어야 하는건 자명하니까. 그렇다면 비슷하게 구현해 본다?
가상 생성자의 방식의 한 종류로 특별하게 가상 복자 생성자(virtual copy constructor)는 널리 쓰인다. 이 가상 복사 생성자는 새로운 사본의 포인터를 반환하는데 copySlef나 cloneSelf같은 복사의 개념으로 생성자를 구현하는 것이다. 다음 코드에서는 clone의 이름을 쓰였다.
보다시피 클래스의 가상 복사 생성자는 실제 복사 생성자를 호출한다. 그러므로 "복사" 의미로는 일반 복사 생성자와 수행 기능이 같다 하지만 다른 점은 만들어진 객체마다 제각각의 알맞는 복사 생성자를 만든다는 점이 다르다. 이런 clone이 NewsLetter 복사 생성자를 만들때 NLComponent들을 복사하는데 기여를 한다. 어떻게 더 쉬운 작업이 되는지 다음 예제를 보면 이해 할수 있을 것이다.
it != rhs.components.end();
// it은 rhs.components의 현재를 가리키는 인자로, 복사되어야 할 객체이다.
STL이 생소하다면 나중에 익혀라 하지만 위의 아이디어는 주석문으로 인해 이해가 갈것이다. 가상 복사 생성자로 인해서, 객체 복사가 상당히 간편해 진다.
생성자는 실제로 가상 함수가 될수 없다. 마찬가지로 비멤버 함수들 역시 마찬가지 이리라, 하지만 그러한 기능이 필요할 떄가 있다. 바로 앞 예제에서 NLComponent와 그것에서 유도된 클래스들을 예를 들어 보자면 이들을 operator<<으로 출력을 필요로 할때 이리라. 뭐 다음과 같이 하면 문제 없다.
하지만 출력해야할 스트림 객체가 righ-hand 객체라는것이 사용자 입장에서 불편하게 만든다. 우리가 보통 사용하는 것처럼 스트림 객체에 출력할 객체를 넣는 다는 개념이 적용되지 않는 것이리라. 하지만, 전역 함수나 friend함수를 이용해서 구현한다면 더이상 가상함수로 구현할수가 없게 된다. 여기서의 방법이 비멤버 함수를 이용하는 것이다.
다음과 같이 가상 함수로 출력을 구현하고, 전역이든, namespace로 묶여 있든, 비 멤버 함수로 스트림 객체와의 출력의 고리를 연결시켜서, 비멤버 함수가 가상함수처럼 돌아가도록 구현한다.
가상 함수의 역할을 비멤버(non-member)함수로 구현한 사례이다. 비 멤버 함수이지만 inline을 통해서 가상 함수와의 직접 연결 통로를 만들었다.
자 지금까지 객체에 대한 이야기로 당신은 미칠 지경에 빠졌을 꺼다. 게다가 이것은 당신을 혼란에 빠트릴 수준까지 왔을 것이다. (첫줄만 직독직해.) 예를들어서 당신의 시스템에 프린터가 하나 밖에 없을때 프린터를 대변하는 객체의 숫자를 하나로 제한해야 하지 않을까? 아니면 하나의 파일에 대하여 16개의 파일 접근자만 허용할때 따위 같은거 말이다. 여기서는 그 해법에 관해서 생각해 본다.
* 작성자주 : 이 부분은 Singleton 패턴과 연관해서 생각하면 재미있을 것 같다. Singleton 패턴이 DP에 논의될때 이것을 감안 안한것이 아쉽다. 1995년에 발간이라 STL도 제대로 다루지 않았고, C++의 기본적인 문법을 이용해 구현하였다. MEC++는 Techniques 부분은 C++의 문법과 개념을 극한으로 쓴다는 느낌이 든다.
객체들이 생성될때 꼭 하는 일이 있다. 바로 생성자를 부르는 일이다. 하지만 이걸 막을수 있는 방법이 있을까? 가상 쥐운 방법은 생성자를 private(사역)인자로 묶어 버리는 것이다. 다음을 보자
- EffectiveC++ . . . . 288 matches
== Shifting from C to C++ ==
ASPECT_RATIO는 소스코드가 컴파일로 들어가기 전에 전처리기에 의해 제거된다.[[BR]]
define 된 ASPECT_RATIO 란 상수는 1.653으로 변경되기때문에 컴파일러는 ASPECT_RATIO 란것이 있다는 것을 모르고 symbol table 에?들어가지 않는다. 이는 debugging을 할때 문제가 발생할 수 있다. -인택
1. 상수 포인터(constant pointer)를 정의하기가 다소 까다로워 진다는 것.
2. 상수의 영역을 클래스로 제한하기 위해선 상수를 멤버로 만들어야 하며
그 상수에 대한 단 한개의 복사본이 있다는 것을 확신하기 위해서 static으로
#define -> inline (매크로 사용시)
* inline: 함수 호출로 인한 오버헤드를 줄일수 있는.. 거시기. 궁금하면 책찾아보세요.
// 매크로 작성시에는 언제나 매크로 몸체의 모든 인자들을 괄호로 묶어 주어야 한다.
// #define 을 inline으로..
inline int max(int a, int b) { return a > b ? a : b; } // int형으로만 제한 되어있네..
// template으로
#define 문을 const와 inline으로 대체해서 써도, #ifdef/#ifndef - #endif 등.. 이와 유사한 것들은 [[BR]]
아직까지 유용하게 사용되므로, 안쓸필요는 없겠죠? [[BR]]
매크로는 말 그대로 치환이기 때문에 버그 발생할 확률이 높음. 상수선언이나 함수선언같은 경우는 가급적 const 나 inline으로 대체하는게 좋겠지. (으.. 그래도 실제로 짤때는 상수 선언할때는 #define 남용 경향이..[[BR]]
그럼.. 항목1 end.[[BR]]
몇달 지난 프로그램은 자기가 만든게 아닌거야!? , 예전에 상민이 형이 얘기해준.. --;; ㅎㅎㅎ 동감.. [[BR]]
메모리를 올바로 얻는 것과 그것을 효율적으로 수행하게 만드는것(?)에 관한 얘기들.
// stringArray에 의해 가르켜진 100개의 string object들중에 99개는 제대로 제거가 안됨.
typedef를 사용했을때의 delete.. --? : 새로운 문제 제기
- MoreEffectiveC++/Techniques2of3 . . . . 273 matches
Reference counting(이하 참조 세기, 단어가 길어 영어 혼용 하지 않음)는 같은 값으로 표현되는 수많은 객체들을 하나의 값으로 공유해서 표현하는 기술이다. 참조 세기는 두가지의 일반적인 동기로 제안되었는데, '''첫번째'''로 heap 객체들을 수용하기 위한 기록의 단순화를 위해서 이다. 하나의 객체가 만들어 지는데, new가 호출되고 이것은 delete가 불리기 전까지 메모리를 차지한다. 참조 세기는 같은 자료들의 중복된 객체들을 하나로 공유하여, new와 delete를 호출하는 스트레스를 줄이고, 메모리에 객체가 등록되어 유지되는 비용도 줄일수 있다. '''두번째'''의 동기는 그냥 일반적인 생각에서 나왔다. 중복된 자료를 여러 객체가 공유하여, 비용 절약 뿐아니라, 생성, 파괴의 과정의 생략으로 프로그램 수행 속도까지 높이고자 하는 목적이다.
if (this == &rhs) return *this; // Item E17 참고
이 코드의 의미를 그림으로 표현하면 다음과 같다.
http://zeropage.org/~neocoin/data/MoreEffectiveC++_184_1.gif
http://zeropage.org/~neocoin/data/MoreEffectiveC++_184_2.gif
"Hello"라는 값은 하나만 저장되어 있는 것이고, 이를 문자열들이 공유해서 표현시 가지고 있는 것이다. 하지만 실질적으로 "Hello"의 할당 시점은 손쉽게 알수 있지만, 파괴 시점을 알수 있는것은 만만치 않다. 그래서 파괴 시점을 알기 위해서 "Hello" 값에 그것을 참조하는 정도를 기록하고, 그 참조가 0가 되는 시점을 값의 파괴 시점으로 삼아야 하는데, 이런 생각을 아까 그림에 다시 넣으면 다음과 같다.
http://zeropage.org/~neocoin/data/MoreEffectiveC++_185_1.gif
참조 세기를 하는 String 클래스를 만드는건 어렵지는 않지만, 세세한 부분에 주목해서 어떻게 그러한 클래스가 구현되는지 주목해 보자. 일단, 자료를 저장하는 저장소가 있고, 참조를 셀수 있는 카운터가 있어야 하는데, 이 둘을 하나로 묶어서 StringValue 구조체로 잡는다. 구조체는 String의 사역(private)에 위치한다.[[BR]]
물론 이의 이름은 String과 다른 이름을 매겨야 하겠지만,(아마 RCString정도?) 하지만 String자체를 구현한다는 의미로 그냥 이름은 유지하고, 앞으로 말할 참조세기를 적용시킨 String 객체를 만들어 나가겠다.
// StringValue의 복사 생성자, 초기화 목록으로 refCount 인자 1로 초기화
data = new char[strlen(initValue) + 1]; // 새로운 값 할당(아직 참조세기 적용 x
이것으로 StringValue의 구현은 일단 끝이다. 이를 사용하는 String 객체의 구현에 들어가야 한다.
// String의 복사 생성자, 초기화 목록으로 StringValue에 값을 할당한다.
이를 처음 참조세기 설명에 나온 그림식으로 설명하자면 다음과 같다.
http://zeropage.org/~neocoin/data/MoreEffectiveC++_187_1.gif
그럼 String객체의 생성시 서로 공유하지 않은 데이터 구조를 가지도록 클라이언트가 코드를 작성하면 다음과 같다.
이렇게 되는데, 이는 그림으로 표현하면,
http://zeropage.org/~neocoin/data/MoreEffectiveC++_187_2.gif
다음과 같다. 여기에서 "More Effective C++" 라는 문자열을 공유한다면, 참조세기가 이루어 지는 것일 거다. 그러기 위해서 String의 복사 생성자는, 참조 카운터를 올리고, 자료를 새로 생성할것이 아니라, 그냥 포인터만 세팅해 주는 일을 해야 한다. 이런 과정을 구현하면
// String 클래스의 복사 생성자, 초기화 목록으로 StringValue의 포인터를 세팅한다.
- ProjectPrometheus/Journey . . . . 263 matches
* 패키지 분리를 하고, 관련 경로 화일들을 수정을 하면서, 중복이 없는 코드가 얼마나 강력한지가 보인다. 정말정말 고칠 부분이 많이 줄어든다. (사람이건 툴이건 덜 고생하게 된다.)
* 윈도우에서 작업한 ["Java"] 화일이 의외로 한방에 ["Ant"] 로 빌드하고, ZeroPage 의 Resin 서버에서 동작하는 것을 보며, 다시금 자바의 위력이 실감난다.
* 메인 코드를 작성하고 있을때에는 '화일로 빼야 할 거리' 들이 안보인다. 하지만, 이미 컴파일 되고 굳어져버린 제품을 쓸때에는 '화일로 뺐어야 하는 거리' 들이 보인다. ["데이터주도적기법의마법"] 이였던가. 뭐, 미리 머리 스팀내며 해두는 것은 YAGNI 이겠지만, 눈에 빤히 보일때에는. 뭐, 앞으로 해줄거리. (Property class 가 좀 더 확장될 수 있을듯.)
* Pair 라는 것은 꼭 프로그래밍이 아니다 하더라도 여러가지 시너지를 발휘할 수 있다. 혼자서 생각하는 것보다 빠른 피드백을 받을 수 있기에. 오늘 떡볶이 먹으면서 아이디어 궁리할때의 아이디어들이 모이고 상대방에게서 반응을 들어보고 덧붙여지고 의외로 새로운 아이디어가 창출될때의 그 느낌이란. --["1002"]
오늘은 일의 진행이 정말 일사천리로 이루어졌다. 모이고 처음 일을 시작할때 상민이와 이전에 했던 일들과 오늘 해야 할일에 대해 간단하게 정리를 한 점이 주효한것 같다. 간단한 일이긴 하지만, 그날의 할 일에 대해 미리 머릿속에 그림을 그려둔다는 점에서 5분 Stand Up Meeting 은 의외로 효과를 주는것 같다. 그리고 Pair 를 하는중 디버깅이나 기타 일을 할때 미리 자신이 어떠한 일을 하려고 하는지 짧으면서도 자주 대화가 오고 갔던 점, 프로그래밍때 자주 체인지 한것도 오늘 일이 잘 진행되는데 도움이 컸다고 생각. --["1002"]
* UnitTest 들이 드디어 다시 녹색바. 그리고 서블릿에 있던 로직 부분을 Extract, 테스트들을 붙여줌.
* Test 마저 고치는 중, 내가 당연하다고 생각되었던 Test 가 깨진 문제 분석이 실제로 틀렸음을 알게 되었다. 상민이 덕택에 의외로 30분 내로 간단히 해결되었다. 오랜만에 AcceptanceTest 포함 80여개 테스트가 녹색불을 켜게 되었다.
* 한동안 PairProgramming 할때 주로 관찰자 입장에 있어서인지. (이상하게도. 창준이형이랑 할때나 상민이랑 할때나. 그나마 저번 르네상스 클럽때는 아무도 주도적으로 안잡아서 그냥 내가 잡긴 했지만, 다른 사람들이 적극적으로 나서지 않을때엔 웬지 그 사람들과 같이 해야 한다는 강박관념이 있어서.)
그동안의 Pair 경험에 의하면, 가장 Pair 가 잘 되기 어려운 때는, 의외로 너무 서로를 잘 알고 Pair를 잘 알고 있는 사람들인 경우인것 같다는. -_-; (Pair 가 잘 안되고 있다고 할때 소위 '이벤트성 처방전'을 써먹기가 뭐하니까. 5분 Pair를 하자고 하면 그 의도를 너무 쉽게 알고 있기에.) 잘 아는 사람들과는 주로 관찰자 입장이 되는데, 잘 아는 사람일수록 오히려 개인적으로 생각하는 룰들을 잘 적용하지 않게 된다. (하는 일들에 대한 Tracking 이라던지, 다른 사람이 먼저 Coding 을 하는중 이해 못할때 질문을 한다던지 등등. 차라리 그냥 '저사람 코딩 잘 되가나본데..'. 오히려 예전에 '문제'라고 생각하지 않았던 부분이 요새 '문제' 로 다가 온다.)
그렇다고 이 상황을 다른 사람에게 말로 하면 당연히 '응. 그래. 다음번에는 주도적으로 잡아' 라고 하지만. 한동안 손가락이 쉽게 가지 않을 것 같다. 개인적인 문제일까. 아직 현상에 대한 분석이 잘 안되는중이다.
* 서블릿 레이어부분에 대해서 Controller 에 Logic 이 붙는 경우 어떻게 Test 를 붙일까. (FacadePattern 을 생각하고, 웹 Tier 를 따로 분리하는 생각을 해보게 된다.) --["1002"]
1002 개인적으로 진행. 뭐 진행이라기 보다는, 오랜만에 Solo Programming 을 해봤다. 장점으로는 느긋하게 소스를 리뷰하고 대처할 시간을 천천히 생각해볼 수 있던점. (보통은 상민이가 이해를 빨리 하기 때문에 먼저 키보드를 잡는다.) 단점으로는 해결책에 대한 Feedback 을 구할 곳이 없다는 점이 있다. (평소 물어보고 둘이 괜찮겠다 했을때 구현을 하면 되었는데, 이경우에는 책임 소재랄까.. 웬지 혼자서 생각한 것은 의외의 틀린 답이 있을 것 같은 불안감이 생긴다. 테스트 중독증 이후 이젠 페어 중독증이려나..)
* 근데, 해놓고 나서 커밋할 생각이.. 좀 안나긴 하다. 한편으로는 Test 들을 통과하니까 둘이 서로 정한 의도대로 한 것이니 상관없다는 생각. 하지만, 한편으로는 'Pair 로 한 것이 아닌데..' 하는 생각. 그냥 Spike 버전 정도로 생각해둘까나.
학기중에는 시간을 맞추기가 쉽지 않음을 느끼며. 뜻하지 않는(뭐 한편으론 예상했지만) Requirement 의 변경이 일어났다. 도서관 UI & 시스템이 전면적으로 수정된 것이다.
다행히 모듈화가 잘 되어있었고, Test 들이 있었기에 ["neocoin"] 과 ["1002"] 는 주로 깨진 테스트들을 바로잡기로 했다. 일단 도서관들의 HTML 을 얻고, Local HTML 문서에 대해 데이터들을 잘 추출해내는지에 대한 테스트를 먼저 복구했다.
* Recommender, lightView, heavyView service 작성. view 추가.
속좁은 ["1002"] 이 상민쓰에게 신경질 부리던날로 기억 -_-; 일종의 Test 에 대한 압박을 받아서이긴 한데, 처음에는 'Model, Logic' 부분에 대해서만 Test 정도 붙이면 되겠지 라고 생각했는데, Servlet 으로 작성한 Controller 부분이 커지면서, 각각 Command 에 해당하는 (service 라고 이름지었음) 부분에 대해 로직이 붙었기 때문이다. 근데, Servlet 이여서 테스트를 못붙이고, 작업은 작업대로 진행되는데 테스트 붙일 방법을 생각하지 못하는데, 잘 진행되어간다고 보이는 작업 발묶는것 같아서 이야기 못하고 꿍해있다는.
(그래서 수요일날에는 프로그램 작성전 Menual Test 방법을 먼저 생각해두고, 프로그래밍 작성을 하는 식으로 접근함)
* 대안을 생각중인데, 일종의 Facade 를 만들고, Controller 의 각 service 들은 Facade 만 이용하는 식으로 작성하면 어떨까. 그렇게 한다면 Facade 에 대해서 Test Code 를 작성할 수 있으리라 생각. 또는, Servlet 부분에 대해서는 AcceptanceTest 의 관점으로 접근하는 것을 생각. 또는, cactus 에 대해서 알아봐야 하려나.. --["1002"]
* Recommender 부분 완료 (연관된 {{{~cpp BookMapper}}}, {{{~cpp UserMapper}}}의 기능 작성 완료)
- MoreEffectiveC++/Exception . . . . 223 matches
일단 여러분은 파일에서 부터 puppy와 kitten와 키튼의 정보를 이렇게 읽고 만든다. 사실 Item 25에 언급할 ''virtual constructor''가 제격이지만, 일단 우리에 목적에 맞는 함수로 대체한다.
다음과 같은 느낌(?)으로 출력한다.
방법은 올바르다. 예외시에 해당 객체를 지워 버리는것, 그리고 이건 우리가 배운 try-catch-throw를 충실히 사용한 것이다. 하지만.. 복잡하지 않은가? 해당 코드는 말그대로 펼쳐진다.(영서의 표현) 그리고 코드의 가독성도 떨어지며, 차후 관리 차원에서 추가 코드의 발생시에도 어느 영역에 보강할것 인가에 관하여 문제시 된다.
예외 발생시에 함수가 종료되면 auto_ptr상의 객체는 무조건 해제된다.
일반적으로 C의 개념으로 짜여진 프로그램들은 createWindow and destroyWindow와 같이 관리한다. 그렇지만 이것 역시 destroyWindow(w)에 도달전에 예외 발생시 자원이 세는 경우가 생긴다. 그렇다면 다음과 같이 바꾸어서 해본다.
자 당신이 멀티미디어 주소록을 만든다고 상상하고, 프로그램을 짜보자 전화번호, 목소리, 사진, 이름 따위가 들어가야 할것이다. 다음 대강의 구현 코드들을 보면
:theName(name), theAddress(address), theImage(0), theAudioClip(0)
if (imageFileName != ""){ // 이미지를 생성한다.
if (audioClipFileName != "") { // 소리 정보를 생성한다.
생성자는 theImage와 theAudioClip를 null로 초기화 시킨다. C++상에서 null값이란 delete상에서의 안전을 보장한다. 하지만... 위의 코드중에 다음 코드에서 new로 생성할시에 예외가 발생된다면?
if (audioClipFileName != "") {
이렇게 try-catch-throw로 말이다.
이렇게 해도 여전히 문제는 남는다. 무엇이냐 하면, 만약 BookEntry의 생성자중에서 AudioClip 객체 생성중에 예외를 propagate하면 바로 위 코드중 pb 포인터에 null을 반환해 버린다. 반납된 이렇게 되면 이미 정상적으로 생성된 theImage를 지우지 못하는 사태가 발생해 버리는 것이다.
그렇다면 생성자의 내부에서 다시 try-catch-throw로 해야 할것이다.
:theName(name), theAddress(address), theImage(0), theAudioClip(0)
if (imageFileName != ""){
if (audioClipFileName != "") {
자 이렇게 해주면 문제 될것이 없다. 자 이상태에 refactoring이 필요한 코드들이 보일것이다 하겠다. delete부분을 함수로 역어 네는 것이다.
:theName(name), theAddress(address), theImage(0), theAudioClip(0)
자 이제 깨끗이 해결 된 것으로 보인다. 하지만 이번에는 이런 경우를 상정해 보자
- 2011년독서모임 . . . . 212 matches
* '''책에 대해..''' 무대 위의 프리마돈나 마리아 칼라스.. 하지만 그녀의 어렸을적 환경을 돌아보면 재능이 있어 노래를 시키려고 했던 독한 엄마, 자신 때문에 인생을 포기해야만 했던 언니, 타국에서 달달이 돈을 보내주고 온 정성을 쏟았지만 가족들을 버렸다고 오해받은 아버지... 이런 환경에서 자라면서 친구 하나 사귀지 못하고 폭식증에 걸리며, 못생긴 얼굴 때문에 외톨이여야만 했다. 죽는 순간까지 그녀는 외로운 영혼이었고, 오직 무대에서 가장 크게 빛났다.
* 안철수는 아버지의 뒤를 이어 의사가 되기를 기대하는 부모님의 모습에, 자신의 생각을 접고 의대에 갔다. 그러다 자신이 쓰던 컴퓨터가 고장난 원인이 "바이러스"임을 알게되고 여러 자료를 찾아가며 치료제를 만들었다. 당시, 바이러스라는 존재를 모르고 당하는 사람이 많아, 안철수는 무료로 바이러스 백신을 배포하여 사람들한테 도움이 되고자 했다. 그대로 갔으면 의사로서 앞 날이 창창했겠지만, 자신을 찾는 사람이 있고 자신도 원하던 일을 하기 위해 "안철수 연구소"를 차리게 되었다. 그 모습을 지켜본 아내도 초기에 자리잡기 힘들었을 때 돈을 대주고, 지금은 반대로 자신이 원하는 일을 하기 위해 꿈을 찾아 갔다. 잘될거라는 긍정적인 마인드로 자신의 길을 관철해 나아가는 모습이 멋졌다. 늦었다고 포기하지 말고, 내가 진짜 원하는 일이 무엇인지 고민해보아야 겠다.
* 스페인의 위대한 건축가였던 가우디의 죽음을 살해되었다라는 가정을 바탕으로 시작된 소설이다. 어떠한 비밀을 가진 가우디는 비밀을 빼앗으려는 무리에 의해 살해 되지만, 비밀은 빼앗지 못하고 가우디와 같이 있던 아이에게 그 비밀이 전해진다. 시간이 흘러 아이는 할아버지가 되었고, 할아버지는 손녀에게 그 비밀을 전해주게 되면서 비밀을 빼앗으려는 무리에게 쫓기는 신세가 되면서 그 비밀을 파해쳐 간다.
* 데미안은 싱클레어의 성장소설이다. 자신도 친구들과의 대화에 끼기 위해 물건을 훔쳤다고 거짓말을 한 싱클레어는 프란츠 크로머가 주인한테 일러 포상금을 타겠다는 협박을 하자 크로머의 온간 잡일을 맡게되며 무마를 시도한다. 하지만 나쁜 일을 하게 되면서 점점더 약점이 잡혀간다. 그러던 그를 데미안이 구제해준다. 하지만, 싱클레어는 그 일을 금새 잊고는 자유를 누린다. 그러다 술+담배+여자(!)의 막장 길을 타다가 우연히 길에서 스치듯 지나간 여자를 보고 정신을 차리기도 하고, 자신의 이상형을 손이 가는데로 그렸는데 데미안과 비슷한 인상의 사람이 그려지기도 했다. 이 그림은 싱클레어의 성장에 맞춰 점점 데미안의 모습에 가까워진다. 교회에서 만난 피아노 치는 사람한테서 '''압락사스'''의 존재에 대해 심도있게 알게되고, 불 앞에 엎드려 명상을 하면서 깨달음을 얻기도 한다. 데미안과 그의 어머님을 만나 깨달음은 극에 이르고, 전쟁이 발발하면서 징병나간 그곳에서 마침내 데미안과 하나가 된다.
* 어렸을 때는 말도 어렵고, 내용 자체가 이게 뭔 말인지 이해가 안갔었다. 지금은 인간으로서 선한 쪽 일만 할 수 없기 때문에 선+악이 공존하는 압락사스가 등장했다는 것과, 어려워질 때마다 등장하여 이끌어준 데미안이라는 존재에 가까워져가는 싱클레어의 성장기라는 것은 이해가 간다. 하지만 싱클레어의 내면 중에 데미안의 어머님을 엄마 혹은 연인으로 동일시하는 것과 데미안이 프란츠 크로머로부터 구해줘도 고마워하지 않는 것은 이해가 가지 않는다. 나중에 한번 더 읽어야 할 필요성을 느꼈다. '''이해가 안갔던 영화'''에 대해서도 이야기를 나눴는데 내가 생각한 것은 [http://movie.naver.com/movie/bi/mi/basic.nhn?code=17368#story 마법의 빗자루]였다. 편지를 받아가며 공부했던 견습 마녀 1명 외에 다른 사람들은 편지를 보낸 사람이 사기꾼인지 인식 못했다던지, 사기꾼이었던 브라운 교수가 가진 나머지 반의 책을 찾기 위해 시장에 갔다가 그 책을 노리는 또 다른 무리를 만났는데 어느 순간 안보인다던지, 마법의 주문을 찾기 위해 애니메이션 세계로 갔는데 그 곳에서 가져온 물건은 사라진다던지, 사물을 움직이는 마법 주문을 공부하려던 이유가 전쟁에 도움이 되기 위해서이었다는 사실이라던지 무언가 내용 구성 측면에서 허술하고 이해 안가는 전개가 많았다. 하지만 침대를 통해 원하는 장소로 이동이 가능하고, 사물을 움직이고, 토끼로 변하는 등 어렸을 때 가족끼리 보기에는 좋았다.
* 몰입을 위해서는 외적, 내적 동기화가 필요하다는걸 잘 알려주는 책입니다. 일과 재미의 경계를 허물자는 내용이 메인으로 담겨있고, 그를 뒷받침하는 분야별 몰입, 통계자료가 많이 나옵니다.
* 몰입에 대한 얘기가 참 많이 나오지만 몰입하기 참 어려운 책이었습니다. 동기화를 한다고 해도 '절실함'이 없으면 몰입하기 어렵고 실천하기 어렵다는게 제 생각인데 그런 부분에 대한게 별로 없어서 아쉬웠습니다. 자신이 몰입으로 이러한 성공을 거두었다는 내용이 있었으면 몰입의 효과에 대해 더 와 닿았을지 모르지만 자신이 연구를 위해 조사했던 남얘기 위주입니다.
* 저는 그냥 '몰입'이라는 책을 읽었습니다. 비슷한 내용인 것 같아요. 거기서 몰입하는 방법에 대한 방법이 아주 짧게 나와있는데, 몰입할 대상을 의식적으로라도 계속 생각하면 자연스럽게 몰입이 가능하다는 말이 있었어요.. 연구원들이 쓰기에 좋은 방법이라고 하더군요.. - [서지혜]
* 어렸을 때 가족들이 영화를 보고 있길래 옆에서 그냥 같이 봤었던 (제목은 기억 안나고..) 영화 두편이 있었습니다. 하나는 (독서모임때는 베트남이 배경이라고 이야기 했는데,, 생각해 보니까 인도였습니다 -_-;;) 인도에 주둔하던 영국군이 나오는데.. 정확한 스토리는 기억 안나 패스 하겠습니다.. (죄송;) 다른 한 편의 영화는 한 시나리오 작가가 한 시나리오로 소위 대박을 터뜨리고, 그로 인해 영화사에서 얼마든 시간을 줄테니 시나리오를 써 달라고 합니다. 처음에는 시나리오가 딱히 생각이 나지를 않아 고민하고 있을 때 영화사 사장은 뭐든 생각나는 것을 자유롭게 써 달라고 합니다. 그 때, 옆에 있던 영화사 사장 비서가 작가에게 나같으면 사장님께 지금 머리에 있는것을 자유롭게 이야기 하겠다면서 어서 이야기 하라고 하다가 짤립니다 -_-; 뭐 그렇게 작가는 시나리오를 써 가는데 옆집에 사는 남자와 친하게 지냅는 장면이 나옵니다. 사실 그 이웃사촌은 살인마였습니다. 하루는 그 이웃사촌이 작가에게 상자를 하나 맡기고 (중요한 거라고 이야기 하면서) 잠시 어디를 좀 갔다 오겠다 하고 사라집니다. 그렇게 작가는 다시 글을 쓰는데 그 작가의 책상 위 벽에는 해변에 비키니를 입은 여자 사진이 있습니다. 뭐 이곳에 가고 싶다는 둥의 이야기를 한 거 같은데.. 뭐 아무튼.. 그러고 얼마 안가 작가는 자신이 생각하는 엄청난 시나리오를 만들게 됩니다. 하지만, 영화사 사장의 마음에는 들지 않았습니다. 그리고 당시 배경이 제 2차 세계대전으로 애국심이 불타오르던 시기여서인지 사장은 그러한 영화를 원한다고 말하고 그 짤랐던 비서를 다시금 데려와야겠군 이라며 나갑니다. 그러고 집에 돌아오니 낯선 남자 둘이서 작가의 시나리오를 읽고 있었습니다. 그들은 옆집에 살던 살인마를 쫓아 왔다며, 행방을 묻습니다. 그러면서 이웃이 주고 갔던 상자에 사람의 목이 들어있다고 말합니다. 그때 옆집 남자가 돌아오고 낯선 남자 둘과 싸움이 납니다. 작가의 집은 불타고 작가와 살인마는 몇마디 주고 받더니 작가는 정장을 입고 유유히 집을 빠져나갑니다. 그렇게 작가는 어느 해변가에 도달하고 해변가에서 어느 비키니를 입은 여자와 몇마디 주고 받더니 작가의 벽에 걸려 있던 사진과 같은 장면이 연출이 되면서 끝이 납니다..... 생각나는데로 시나리오를 적은건데.... 뭘 말하는건지는 모르겠습니다. 별 다섯개를 받은 영화인데 -_-;; 언제 인터넷 검색을 해서 좀 찾아봐야 될 것 같은 생각을 가지게 된 시간이었습니다.;
* [권순의] - [http://www.aladin.co.kr/shop/wproduct.aspx?ISBN=8937831090 GO] (가네시로 가즈키)
* 이와 관련해서 외국 음악이랑 외국 영화에 나오는 한국에 대해 찾아보려 했는데요,, 급 귀차니즘 때문에 외국 음악에 나오는 한국 관련된 것만 찾았다는...; 뭐,, 그래서 찾은 것이 Gary Moore의 Murder in the skies 라는 노래인데, 이 노래는 1983년 9월 1일에 뉴욕에서 출발한 한국행 비행기가 소련의 영공에 침범 했나(? -_-;; 죄송;;) 그래서 소련의 전투기가 Kal기를 격추시키는 일이 발생하였는데, 그것을 내용으로 소련의 만행으로 무고한 사람들이 죽음을 당했다는 것을 비판한 노래라 소개 했었고, 또 하나 찾아봤었던게 Deftones의 Korea라는 노래인데... 알고보니까 그냥 노래 내용이 어떤 소녀에 대한 이야기인데 그 소녀의 이름이 한국인 성과 비슷해서 그냥 그렇게 썻다고 해서 패스했습니다.
* 먼지의 여행은 대학을 졸업하고 변변찮은 직장조차 얻지 못하고, 뒤늦게 자신이 해왔던 일이 무의미했었다 좌절하던 주인공이 우연히 순례자 부부를 만나면서 하게된 여행기입니다. 돈을 벌어 악착같이 살아야한다는 강박에서 벗어나 돈 없이 세계여행을 갑니다. 처음에는 순례자 부부를 따라다니며 그 사람들을 따라하려하지만, 이 역시 그저 남의 경험을 얻어먹으려는 행위로 밖에 여겨지지 않아 자신이 혼자 여행을 떠납니다. 콜키타에 있는 마더하우스에서 고아원 봉사활동을 하며 아이들의 순수함을 보며 깨달음을 얻고, 그 때 그 때를 즐기는 삶을 살게 됩니다. 돈 없이도 사람이 행복할 수 있다는 것을 깨닫습니다.
* 주변의 바람에서 벗어나 자신이 진정으로 하고싶은 일이 무엇인가 자아를 찾아가는 과정이 인상깊었습니다. 특히, 남이 나보다 더 오래 살았고, 많은 경험을 했으니까 나한테 맞는 조언을 해줄 수 있을 거라는 막연한 생각이 잘못되었다는 말에 충격을 받았습니다. 외국인 부부한테 조언을 구했지만 주인공한테 왜 그걸 남이 정해주느냐는 말을 했습니다. 이 책의 주인공이 깨달은 것처럼 타인의 삶이 영향을 끼칠 수는 있지만, 자신의 삶을 개척하는 것은 결국 자신인듯 합니다. 스터디를 할 때, 나보다 잘 하는 사람이 내가 어떻게 해야할 지 도와줄꺼라 생각하고 나는 약간 비껴서서 참여하는 경향이 있었는데, 작은 것부터 주체적으로 되야할 필요성을 느꼈습니다.
* 이상한 나라의 앨리스의 2부라고 말은 많이 들었는데, 실제로 읽어본 건 이번이 처음이었어요. 내용이 이어지는 건 아니고, 그냥 처음과 끝의 구성이 비슷하고 앨리스가 등장한다는 것 외에는 없는 듯 합니다. 앨리스는 7살 하고도 6개월인 호기심이 왕성한 나이여서 그런지 모든 것을 신기한 관점에서 바라봅니다. 거울 건너편은 이쪽세계와 비슷한듯 하지만 좌우가 뒤바뀌었고, 실제로 안 보이는 부분은 이쪽세계와 다를지도 몰라! 라고 생각하고, 거울 건너편 세계를 구경하고 싶어 합니다. 그래서 손을 댓는데, 어느 순간 건너편 세계로 넘어옵니다. 거울에 비치지 않았던 부분은 과연 색다른 모양을 하고 있었고, 조그만 체스 왕과 여왕이 움직이는 것이 보여, 말을 걸지만 앨리스를 보지도 듣지도 못합니다. 문 밖을 나와 언덕에 가려하는데 아무리 이동해도 제자리로 돌아와 있어, 반대로 이동하니 언덕으로 이동하는 것은 거울이 반대편이라 그런듯 합니다. 곤충에게 이름이 붙여있는 이유는 사람들이 부르기 편한게 아니라, 실제로 이름을 불러주면 대답을 해올거라 조언해주는 모기나, 땅 침대가 푹신하지 않고 딱딱하기 때문에 꽃들이 잠들지 않고 재잘재잘 말을 할 수 있게 되었다던지, 체스 사람들이 밖에서 앨리스만큼 커진 이유는 밖이 탁하지 않기 때문이라던지 독특한 관점이 많습니다. 앨리스의 이동은 체스 말의 이동에 비유되어 처음에는 졸로서 한 칸씩 이동하다가 여왕을 잡고 잠이 깹니다. 초반에 잠을 자고 있던 왕 체스 말이 꾼 꿈인지, 아니면 앨리스가 꾼 꿈인지 묻는 질문과 함께 이야기가 끝납니다.
* 거울 나라의 앨리스를 알게 된 것은 만화책 [http://book.naver.com/bookdb/book_detail.nhn?bid=1343923 암스]가 전체적으로 앨리스와 그와 관계된 인물로 구성되어있어서다. 주인공 친구들의 무기인 토끼나 기사나 퀸은 이상한 나라의 앨리스에서 많이 들어봤는데, 주인공에게 이식되어 있던 무기가 '''자바워크'''는 처음 들어보는 거여서 검색해보니까 2부 격인 이야기가 있다는 것을 알게 되었다. 책을 읽어보니 실제로는 재버워크, 혹은 재버워키라고 불리우는 요상한 괴물이 1장에서 잠시 시 속에 등장했지만 크게 임펙트가 없는, 이름만 있는 캐릭터였다. 그나마 책 속에서 자바워크가 악당격으로 비유되어서 만화책에서도 다른 사람들과 다르게 파괴 본능이 앞섰구나 라고 느꼈다.
* 자바워크는 무시무시한 괴물일듯.. 자바로 일해라 ㅠㅠㅠㅠㅠ - [서지혜]
* 실제로 앨리스 삽화를 보면 무시무시하게 생겼지요 ㄲㄲㄲ [http://cafefiles.naver.net/20110228_300/bkm0726_1298870052866hSeq0_jpg/%C0%DA%B9%D9%BF%F6%C5%A9_bkm0726.jpg 자바워크 그림] 다만 영어단어로는 Jabberwock이지만요 ㅎㅎ 발음이 동의어라 그런가 무시무시한 것도 같..ㅠㅠ - [강소현]
* 베르나르 베르베르의 인간이라는 책에는 거대한 유리병 속에 갇힌 두 남녀 인간의 이야기입니다. 이 두 사람은 자신도 모르는 사이에 알지도 못하는 곳에서 깨어납니다. 그들은 그곳에서 자신들이 어디에 있는지, 그리고 갇힌 공간에서 알지 못하는 사람들이 서로를 알아가는 과정에 대해 나옵니다. 그리고 그들은 이내 자신들이 멸망한 지구에서 살아남은 최후의 사람이라는 것도 알게 되고, 그들이 갇힌 공간이 어느 알지 못하는 거대한 생명체에 의해 생성되었다는 것도 추측하게 됩니다. 그리고 그들은 서로를 이해하면서 마무리가 되는데, 마지막에 그들은 외계인에 의해 마치 철창에 가둬 놓은 애완동물처럼 있게 된 것입니다. 이 소설은 베르나르 베르베르가 시나리오 형식으로 작성한 새로운 시도의 소설이었고, 이 소설로 우리가 철창이나 유리관 안에 넣어 두고 키우는 동물들이 느끼는 감정이란 것이 이런것일까 라는 생각을 했습니다.
* 배경이 현실이 아닌 영화도 소개 했었는데 (팬도럼이었습니다 -ㅅ-) 이 영화는 2528년에 지구를 대체할 행성을 향해 출발한 사람들이 팬도럼 현상(오랜 시간 고립된 장소에 있어서 생기는 공황상태랍니다 -_-;)으로 미쳐버린 한 인간이 저질러 놓은 만행과 그로 인해 생겨난 돌연변이 인간들, 그리고 흥미를 잃어버린 한 인간의 오랜 숙면과 그 숙면 속에서 깨어난 한 인간과 다른 사람(엔지니어가 한명 나옵니다) 그리고 오래전부터 깨어 있었던 사람들이 그려가는 영화인데, 후반부 반전이 흥미로운 영화입니다. (근데 전 영화를 보면서 그 반전을 예상해 버리는 바람에 -ㅅ-;;) 뭐,, 단순히 현실과 다르고 재미있게 봤던 영화라 소개 했는데, 자세한 내용은 직접 보시거나 검색창을 이용해주.. (응?)
* 매----우 유명하고 대중적이며 영화화에 게임도 나온 해리포터 시리즈입니다. 호그와트라는 미지의 세계는 아니지만 아무나 갈 수 없는 곳으로 가서 마법을 공부하고 경기를 하고 시험도 보고 싸움도 합니다. 해리포터가 재미있었던 이유는 예상치 못한 곳에서 일어난 반전 때문이었습니다. (가장 멍청해보인 허당 퀴렐 교수가 볼드모트의 심복이었고 알고 보니 론의 동생 지니가 낚였고 톰 마볼로 리들은 볼드모트의 리즈시절이었고 희대의 악당인줄 알았던 시리우스 블랙은 해리포터 아빠친구이자 그의 대부였다는 사실, 우승컵은 알고보니 포트키 등등...) 다른 학우들도 동의했지만 해리포터는 후반부로 갈수록 조앤 롤링 아주머니의 기대치에 대한 부담감 때문인지 재미가 없어집니다. 극적인 요소를 더하려고 각 편에 한명씩 죽고 (5편 시리우스, 6편 덤블도어) 반전도 이젠 그런가보다 해집니다. 가장 재밌던건 역시 1~3편이었던거 같아요.
- HolubOnPatterns/밑줄긋기 . . . . 211 matches
* 복싱에서는 스트레이트, 잽, 훅, 이 세가지 펀치를 기반으로 다른 모든 종류의 펀치가 나온다고한다. ~~~ 이러한 기본 자세가 튼튼하다면 그만큼 다른 펀치를 배우는 데도 진입 장벽이 낮아지기 때문이다.
* 스포츠를 사용해서 비유를 하는건 쉽게 이해는 되는데, 항상 별로 재미없어. - [김준석]
* 요구사항의 변경같은경우 어쩔수 없지만 기술적인 부분이라면 개발자가 가장 힘있지 않나? - [김준석]
* ~~그건 인도개발자만..~~ 원래는 의사결정은 가장 많은 정보를 가진 사람이 내려야하는데, 기술에 대한 결정권을 기술과 거리가 먼 관리자등이 내리는 경우가 있다고 합니다(까라면 까 식으로). 이때의 의사결정권자는 모순적 상황에 처해있을 거란 글을 봤는데ㅋㅋ 1. 기술에 대한 지식이 적거나 거의없다. 2. 지식은 없지만 기술에 대한 확고한 입장을 가지고 있다. - [서지혜]
* 이디엄은 일상적으로 사용하게 된 패턴이다.
* 에 달린 역자주석을 보니 노스 화이트헤드가 "문명이 진보한다는 것은 인간이 의식적인 노력 없이 자동적으로 수행하는 활동이 증가하고 있음을 의미"한다는 지적을 했다고 한다. 이디엄은 과연 좋은것인가? 이디엄이야말로 생각없이 적용하는 패턴이 아닌가? - [서지혜]
* 오늘 얘기하면서 깨달았다. 이디엄이 패턴보다 더 습관적으로 적용하기가 쉬울테니(패턴을 몰라도 이디엄은 쓸수있음) 역자가 저런말을 쓴건가봐 - [서지혜]
* 그러므로 패턴은 해결 방법 그 자체라기보다는 해결 방법의 일반 구조라 할 수 있다.
* 패턴은 이와 같이 일반적인 해결 방법이기 때문에 한 프로그램에서 다른 프로그램으로 디자인패턴을 복사해 붙여넣는 것은 거의 불가능하다.
* 현실에서는 한 패턴에 참여하고 있는 객체와 클래스가 동시에 다른 패턴에서도 사용되는 경우가 매우 많다.
* 시원하면서도 안락한 느낌을 주는 방들을 살펴보면 앞으로 '교차 통풍'이라 부를 패턴이 창발한다.
* 패턴의 실체화는 디자인이지 코드가 아니며, 하나의 디자인은 여러 가지 합당한 방법으로 구현할 수 있다.
* 생각 없이 패턴을 복사하고 붙여넣는 것은 마음대로 낙서를 한 뒤 멋진 그림을 주장하는 것과 같은 우매한 것이다.
* 패턴은 디자인으로 실체화 되고 디자인은 구현으로 실체화 된다.
* 패턴은 커뮤니케이션을 극적으로 향상시켜주는 유기적 프레임워크를 제공하며 결국 이것이 디자인의 모든 것이다.
* 구현은 스스로 말할 뿐이다.
* '우둔한 프로그래머와 아키텍처'는 패턴이 항상 좋은 것이며 가능한 모든 곳에서 사용해야 한다고 일관되게 믿는다.
* 프로그래머들은 미래에 등장할지도 모를 요구 사항까지도 추가하는 경향이 있다.
* 미래에 변화될 것이라 생각하기 때문에 코드를 복잡하게 하는 것은 좋은 생각이 아니다.(적어도 내 경우는 미래를 예측하려 할때마다 내 예상이 빗나갔다.)
* 요구 기능을 구현하는게 어렵다며 맘대로 다른거 붙이는 사람도있음.. 예를들면 파일을 삭제할때 복구기능을 만들기 싫어서 확인 다이얼로그를 띄우지.. - [서지혜]
- 신기호/중대생rpg(ver1.0) . . . . 205 matches
* 앞으로 버전을 올리면서 코드 최적화도 같이 진행할 예정.
if(state==NULL){
if(strcmp(buff,"level:")==0)
else if(strcmp(buff,"base_hp:")==0)
else if(strcmp(buff,"hp:")==0)
else if(strcmp(buff,"base_att:")==0)
else if(strcmp(buff,"base_def:")==0)
else if(strcmp(buff,"name:")==0){
else if(strcmp(buff,"townNum:")==0)
else if(strcmp(buff,"xp:")==0)
else if(strcmp(buff,"next_xp:")==0)
else if(strcmp(buff,"money:")==0)
else if(strcmp(buff,"inven:")==0){
if(strcmp(buff,"name:")==0){
else if(strcmp(buff,"att:")==0)
else if(strcmp(buff,"def:")==0)
else if(strcmp(buff,"hp_plus:")==0)
else if(strcmp(buff,"tooltip:")==0){
}while(strcmp(buff,"END")!=0);
fprintf(state,"END\n");
- VendingMachine/세연/1002 . . . . 198 matches
1. 명확하지 않는 변수/함수&메소드 이름에 대해 - 이름을 다르게 바꿔준다. 또는 무엇을 하기 위한 것인가에 입각, 함수/메소드 로 추출한다. [[BR]]
3. 긴 메소드 - 함수 & 메소드를 따로 추출. 즉, 하나의 함수 내에서 하는 일들이 많다고 생각될 때. [[BR]]
4. 중복 - 중복되는 부분에 대해 함수 & 메소드로 추출.[[BR]]
여기서는 저 위의 1-4번 원칙만 생각해 보겠습니다. 일단 이 코드가 제대로 돌아간다는 가정하에서 수정합니다. (문제는 제대로 고쳐졌는지 확인할 길이 적다는. -_-;)
=== while loop 에서의 조건식 - 1번 ===
bool isEndMenu (int choice) {
while(isEndMenu (choice))
MENU_END = 0,
bool isEndMenu (int choice) {
return choice != MENU_END;
MENU_END = 0,
VendingMachine.GetMoney();
VendingMachine.Buy();
VendingMachine.TakeBackMoney();
VendingMachine.InsertDrink();
case MENU_END:
return choice >= MENU_END && choice <= MENU_INSERT_DRINK;
MENU_ENDCODE = 0,
MENU_END = MENU_INSERT_DRINK
MENU_END 뜻이 달라졌으므로, 앞에서 MENU_END를 썼었던 다른 것들도 고칩니다.
- ViImproved/설명서 . . . . 187 matches
▶파일 데이터 파일 응용 프로그램의 데이터(binary)
텍스트 파일 응용 프로그램의 source data 또는 문서화된 파일(ASCII)
▶Vi 저자 vi와 ex는 The University of California, Berkeley California computer Science Division, Department of Electrical Engineering and Computer Science에서 개발
▶Vi 모드 명령어(편집)모드 일반 및 초기 모드로 문서의 수정, 삽입, 대체 등 명령 취소 ; <ESC>
앞에 붙는 수치 행/칼럼 번호 (z G | ) 스크롤양 (^D ^U) 반복 효과 (대부분의 경우)
▶.exrc 파일 설 정 vi가 시작할 때 자동적으로 읽어 들임 vi입력 모드에 쓰이는 모든 명령어와 vi환경 설정인 set 에 대한 정보를 가지고 있다 만약 .exrc파일이 없으면 모든 set값은 default로 설정됨
예 제 set wm=3 set sm ## 축약어 사용. 입력시 bbm을 bbmaster@flower.chungnam.ac.kr로 바뀐다 ab bbm bbmaster@flower.chungnam.ac.kr ## 스펠링 체크 매크로 map V :w^M:!spell -x %^M:e!^M^M
모드형 모드형 프로그램이란 서로다른 기능을 가진 모드를 가지고 있어다중환경을 지원한다. 예) 모드에 따라 엔터키의 역할도 달라진다
비모드형 비모드형 프로그램은 키들을 항상 같은 의미로 사용한다
ZZ (=:wq) 파일이 수정된 경우는 그 파일에 쓰고 종료 수정이 없으면 그대로 종료
:w! ↓ 허가되지 않은 경우에 강제 써넣기
:q↓ vi종료하고 Unix프롬프트로 이동
:q!↓ 파일변경 내용을 무시한채 vi종료 및 시스템으로
:e <file>↓ 새로운 파일의 편집
:r <file> ↓ <file>을 현재의 문서로 read
:nr <file>↓ n행 아래로 <file>을 read
:sh↓ 쉘의 임시사용 vi로 복귀시(^d, exit 사용)
:n args↓ 새로운 인수 리스트의 지정
$vi A B C D 4개의 파일(A B C D)을 순서대로 작업할 수 있다
:n 다중화일 편집시 지정한 화일중 현재 파일의 다음 파일로 이동
- 작은자바이야기 . . . . 186 matches
* 이론과 실무 지식을 모두 다룰 예정이므로 Java 경험이 많을 수록 좋습니다.
* 흥미로워서 참여하고 싶지만 아직 서울에 갈만한 형편이 안되네요.. 흥미로운 주제를 다루시는것 같던데. - [안혁준]
* Java 개발 환경 및 빌드 프로세스
* Java 프로그래밍 언어
* 객체지향 프로그래밍
* 현업 Java 개발자도 놓치기 쉬운 문제들을 짚어보고, 올바른 Java 프로그램을 빠르고 깔끔하게 구현하는데 필요한 중급 수준의 지식을 전달하기 위해
* Java를 중점적으로 다루지만, Java에 한정되지 않은 폭넓은 컴퓨터공학적 이해를 바탕으로 사고하도록 하기 위해
* 그동안 설계와 구현에 관한 일반론을 위주로 세미나를 진행해왔기에, 이번에는 좀더 practical하고 pragmatic한 지식을 전달하는데 비중을 두고자 함.
* 나 스스로도 알지만 불충분했던 지식이나 아직 어렴풋한 지식을 설명하면서 함께 공부하고 배우기 위해
* 어디가서 자바로 개발 좀 제대로 해봤냐라고 물어볼때, 확실히 '네'라고 대답할 수 있기 위해
* 병특을 위한 중장기 프로젝트(?)
* "내가 아무것도 모른 상태에서 1학년 1년간 배울때처럼 그때 그 마음으로 많은 것을 배우기 위해" - 배움에 이유가 있는가.
* TDD로 코드를 짜 보려다 실패해서 -_-;;; 어떻게 TDD로 코딩을 해야 하는지, 어떻게 리팩토링을 해야 하는지 듣고 싶어서.
* "왜?"에 각자 서브섹션을 나누어 자신이 이 스터디를 통해 원하는 것을 적고, 스스로에게 동기부여를 해봅시다.
* SpringSource Tool Suite(Eclipse IDE)의 기본 설정과 프로젝트 설정에 필요한 기본적인 정보를 설명했습니다.
* 클래스와 그 멤버에 적용하는 기본 modifier들의 개념 및 용법을 다뤘습니다.
* static modifier에 대해 애매하게 알고 있었는데 자세하게 설명해주셔서 좋았습니다. static은 타입을 통해서 부르는거라거나 원래 모든 함수가 static인데 객체지향의 다형성을 위해 static이 아닌 함수가 생긴거라는 설명은 신기했었습니다. object.method(message) -> MyType::method(object, method) 부분이 oop 실제 구현의 기본이라는 부분은 잊어버리지 않고 잘 기억해둬야겠습니다. 근데 파이썬에서 메소드 작성시 (self)가 들어가는 것도 이것과 관련이 있는건가요? -[서영주]
* 제가 "원래 모든 함수가 static"이라는 의미로 말한건 아닌데 오해의 소지가 있었나보군요. 사실 제가 설명한 가장 중요한 사실은 말씀하신 예에서 object의 컴파일 타입의 method() 메서드가 가상 메서드라면(static이 아닌 모든 Java 메서드), 실제 어떤 method() 메서드를 선택할 것이냐에 관한 부분을 object의 런타임 타입에 의한다는 부분이었지요. 그러니까 object는 컴파일 타입과 동일하지 않은 런타임 타입을 가질 수 있으며, 다형성의 구현을 위해 implicit argument인 object(=this)의 런타임 타입에 따라 override된 메서드를 선택한다는 사실을 기억하세요. (Python에선 실제 메서드 내에서 사용할 formal parameter인 self를 explicit하게 선언할 수 있다고 보면 되겠지요.) - [변형진]
* 멀티스레드 환경에서 synchronized modifier를 사용한 동기화에 대해 공부했습니다.
* 동기화 부하를 피하기 위한 DCL 패턴의 문제점을 살펴보고 Java 5 이후에서 volatile modifier로 해결할 수 있음을 배웠습니다.
- 미로찾기/정수민 . . . . 183 matches
Describe 미로찾기/정수민 here.
if (n==7){
if (miro[x-1][y]==0){ x=x-1;y=y;n=2;}
else if (miro[x-1][y+1]==0){ x=x-1;y=y+1;n=1;}
else if (miro[x][y+1]==0){ x=x;y=y+1;n=4;}
else if (miro[x+1][y+1]==0){ x=x+1;y=y+1;n=7;}
else if (miro[x+1][y]==0){ x=x+1;y=y;n=8;}
else if (miro[x+1][y-1]==0){ x=x+1;y=y-1;n=9;}
else if (miro[x][y-1]==0){ x=x;y=y-1;n=6;}
else if (miro[x-1][y-1]==0){ x=x-1;y=y-1;n=3;}
else{}
else if (n==8){
if (miro[x-1][y+1]==0){ x=x-1;y=y+1;n=1;}
else if (miro[x][y+1]==0){ x=x;y=y+1;n=4;}
else if (miro[x+1][y+1]==0){ x=x+1;y=y+1;n=7;}
else if (miro[x+1][y]==0){ x=x+1;y=y;n=8;}
else if (miro[x+1][y-1]==0){ x=x+1;y=y-1;n=9;}
else if (miro[x][y-1]==0){ x=x;y=y-1;n=6;}
else if (miro[x-1][y-1]==0){ x=x-1;y=y-1;n=3;}
else if (miro[x-1][y]==0){ x=x-1;y=y;n=2;}
- Android/WallpaperChanger . . . . 181 matches
* 안드로이드 배경화면이 한개인게 너무 싫어서 여러개 선택후 바꾸게 하는 어플을 만들고 싶어서 만들게됨.
* Android의 기본 어플로 장착되어있는 Gallery 어플로 Intent넘긴후 리스트 다시 받아오기.
== Android의 기본 어플로 장착되어있는 Gallery 어플로 Intent넘긴후 리스트 다시 받아오기 ==
public class TestdroidActivity extends Activity {
if (resultCode == RESULT_OK) {
if (requestCode == SELECT_PICTURE) {
* Wallpaper바꾸는데 Permission 필요하더라 (Androidmenifest.xml파일 수정 요함)
public class MywallpaperActivity extends Activity {
* 안드로이드의 서비스를 이용해서 구현.
* Service는 안드로이드 Activity와 별도로 구현해야 하며 2.3.3버전 이후 단독 실행이 불가능하다고 하다.
* 또한 Service는 AndroidManifest.xml파일에 당연히 등록을 해야한다. (Application탭 -> Service등록)
public class MyserviceActivity extends Activity {
mTextView.append(mService.toShortString()+" started.\n");
if (mService == null) {
mTextView.append("No requested service.\n");
if (stopService(i))
mTextView.append(mService.toShortString()+" is stopped.\n");
else
mTextView.append(mService.toShortString()+" is alrady stopped.\n");
public class MyService extends Service implements Runnable{
- Java Study2003/첫번째과제/장창재 . . . . 168 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)로 동작하게 됩니다. 이렇게 자바 프로그램은 컴파일 방식 및 인터프리터 방식이 모두 적용된다는 것입니다.
자바 언어로 작성된 자바 프로그램을 중간 언어(intermediate language) 형태인 자바 바이트코드로 컴파일 합니다<.
컴퓨터는 각 CPU에 따라 서로 다른 기계어를 갖습니다. 이러한 이유 때문에 도스 또는 윈도우 95/98/NT 등이 설치되어 있는 컴퓨터에서 실행되는 프로그램이 유닉스가 설치되어 있는 컴퓨터에서는 실행되지 않는 것입니다. 그러나, 자바 바이트코드는 이러한 플랫폼에 상관없이 자바 가상머신에 의해 실행될 수 있도록 정의된 중간코드입니다. 따라서, 자바 바이트코드로 컴파일 되기만 하면, 자바 인터프리터인 자바 가상머신이 설치되어 있는 곳이면 어디에서든 실행시켜 줄 수 있습니다. 이는 자바 개발자 또는 사용자로 하여금 자바 프로그램을 개발하거나 사용할 때 그 플랫폼이 윈도우 95/98/NT, 유닉스, 또는 매킨토시인지 전혀 신경 쓰지 않아도 되도록 합니다.
자바 바이트코드 명령어를 해석하고, 이를 자바 인터프리터가 설치되어 있는 플랫폼(윈도우 95/98/NT, 유닉스, 매킨토시 등)에 맞게 실행시켜 줍니다. 자바 인터프리터는 자바 바이트코드를 실행시켜 주기 위한 기능을 명세하고 있는 자바 가상머신을 구현해 놓은 것으로서 자바 가상머신과 같은 의미로 사용되며, 주로 자바 가상머신으로 많이 사용됩니다.
자바 바이트코드는 자바 가상머신에서 실행되는 기계어라고 생각하면 됩니다. 그리고, 모든 자바 인터프리터는 자바 가상머신을 구현해 놓은 것으로, 자바 가상머신과 자바 인터프리터를 같은 것으로 생각할 수 있습니다. . 이러한 자바 가상머신은 JDK(Java Development Kit)에 포함되어 있을 수도 있고, 자바 호환 웹 브라우저 내에 내장되어 있을 수도 있습니다. 또는, 자바 칩과 같이 하드웨어에 직접 구현될 수도 있습니다. 자바 바이트코드는 “write once, run anywhere”라는 말을 가능하게 해 줍니다. 다시 말해서, 자바 언어를 이용하여 작성한 자바 프로그램을 각 플랫폼(윈도우 95/98/NT, 리눅스, 유닉스, 매킨토시 등)에 맞게 제공되는 자바 컴파일러를 통해서 바이트코드로 컴파일 할 수 있습니다. 그리고, 이 바이트코드는 자바 가상머신이 있는 어떤 곳에서도 실행될 수 있습니다.
플랫폼이란 프로그램이 실행되는 하드웨어 또는 운영체제와 같은 소프트웨어적인 환경을 말합니다. 대부분의 플랫폼은 하드웨어와 운영체제를 함께 일컬어 말합니다. 그러나 자바 플랫폼은 하드웨어와 무관하게 동작하는 오직 소프트웨어적인 플랫폼이란 점에서 다른 플랫폼과 다릅니다. 이를 위해 자바 플랫폼은 다음과 같은 두 가지의 구성요소를 갖습니다.
자바 가상머신은 자바 플랫폼의기반을 이루며, 다양한 하드웨어기반 플랫폼에 포팅(poring) 됩니다. 다시 말해서, 자바 가상머신은 윈도우 95/98/NT, 유닉스, 또는 매킨토시 등과 같은 기존의 운영체제 또는 인터넷 익스플로러와 넷스케이프 등과 같은 웹 브라우저 등, 여러 가지 플랫폼에 설치되어 사용될 수 있으며, 사용자는 자바 바이트코드로 컴파일된 자바 프로그램을 실행시키기 위해서 이 자바 가상머신을 이용하면 됩니다.
자바 API는 윈도우 API와 같이 운영체제에서 제공해 주는 라이브러리와 같은 것입니다. 다시 말해서, 자바 프로그램을 개발하기 위해 사용할 수 있는 라이브러리 또는 클래스들이라 할 수 있습니다. 이러한 자바 API는 서로 관련된 클래스들을 묶어서 패키지 단위로 제공되고 있습니다.
자바의 주된 특징은 기존의 C/C++ 언어의 문법을 기본적으로 따르고, C/C++ 언어가 갖는 전처리기, 포인터, 포인터 연산, 다중 상속, 연산자 중첩(overloading) 등 복잡하고 이해하기 난해한 특성들을 제거함으로써 기존의 프로그램 개발자들이 쉽고 간단하게 프로그램을 개발할 수 있도록 합니다.
자바는 C++와는 달리 처음부터 객체지향 개념을 기반으로 하여 설계되었고, 객체지향 언어가 제공해 주어야 하는 추상화(Abstraction), 상속(Inheritance), 그리고 다형성(Polymorphism) 등과 같은 특성들을 모두 완벽하게 제공해 주고 있습니다. 또한, 자바의 이러한 객체지향적 특성은 분산 환경, 클라이언트/서버 기반 시스템이 갖는 요구사항도 만족시켜 줄 수 있습니다.
자바는 컴파일 시에 에러 검사를 철저하게 하고, 실행 시에 발생할 수 있는 에러에 대해서도 실행 시에 철저하게 검사를 수행함으로써 신뢰도가 높은 프로그램을 작성할 수 있도록 해 줍니다. 또한, C/C++ 프로그램 개발자들을 가장 혼란스럽게 하고, 프로그램의 치명적인 오류를 발생시킬 수 있는 포인터 및 포인터 연산을 자바에서는 사용하지 않게 함으로써, 포인터를 사용함으로써 프로그래머가 범할 수 있는 오류를 없앴다는 것입니다.
자바는 분산환경에서 작동하도록 설계 되었습니다. 그러나, 자바는 자바 언어와 자바 런타임 시스템 내에 보안 기능이 내재되어 있기 때문에 보안성이 있는 프로그램을 개발할 수 있도록 해 줍니다. 이러한 특성은 자바 프로그램이 네트웍 환경에서 바이러스 등과 같은 프로그램이 파일 시스템을 파괴하려는 것을 막을 수 있도록 해 줍니다.
자바는 서로 다른 이종(Heterogeneous)의 네트워크 환경에서 분산 되어 실행될 수 있도록 설계되었습니다. 이와 같은 환경에서는 응용 프로그램들이 다양한 하드웨어 아키텍쳐 위에서 실행될 수 있어야만 합니다. 이를 위해 자바 컴파일러는 이종의 하드웨어 및 소프트웨어 플랫폼에서 효율적으로 코드를 전송하기 위해 설계된 아키텍쳐 중립적인 중간 코드인 바이트코드를 생성합니다. 이는 동일한 자바 프로그램의 자바 바이트코드가 자바 가상머신이 설치되어 있는 어떤 플랫폼에서도 실행될 수 있도록 하는 것입니다. 또한, 자바는 기본 언어 정의를 엄격하게 함으로써 효율적인 이식성을 제공해 주고 있습니다. 예를 들어, int 형과 같은 기본 데이터형의 크기를 플랫폼과 무관하게 일정하게 하고, 연산자의 기능을 확실하게 규정하고 있습니다. C 언어를 이용하여 int 형을 선언할 때, 도스에서는 16비트, 윈도우 95/98/NT 등 32비트 운영 체제 환경에서는 32비트, 유닉스에서는 32비트 등 그 플랫폼에 따라 크기가 다르지만, 자바에서는 플랫폼에 상관없이 32비트로 고정되도록 하였습니다. 이는 자바 프로그램이 실행되는 환경이 자바 가상머신으로 동일하기 때문입니다.
자바에서는 인터프-리터가 런타임 환경을 검사할 필요 없이 실행될 수 있도록 구성하였기 때문에 뛰어난 성능을 제공해 줍니다. 쓰레기 수집기(garbage collector) 즉 메모리 관리자는 자동으로 낮은 우선순위의 백그라운드 스레드로 실행되어 메모리가 필요할 때에만 동작하도록 함으로써, 자바 가상머신에게 무리를 주지 않으면서 보다 나은 수행 성능을 제공할 수 있도록 해 줍니다. 또한, 방대한 양의 계산을 수행하는 프로그램은 계산이 많은 부분을 본래의 플랫폼에 해당하는 기계어 코드로 재작성하여 자바 프로그램과 인터페이스 할 수 있도록 하였습니다.
자바 언어로 작성된 자바 프로그램을 중간언어 형태인 자바 바이트코드로 컴파일하고, 이렇게 생성된 자바 바이트코드를 자바 인터프리터가 해석함으로써, 자바 인터프리터와 런타임 시스템이 이식(porting)된 모든 플랫폼에서 자바 바이트코드를 직접 실행할 수 있습니다.
자바의 다중 스레드 기능은 동시에 많은 스레드를 실행시킬 수 있는 프로그램을 만들 수 있도록 해 줍니다. 자바는 동기화 메소드들을 기본적으로 키워드로 제공함으로써, 자바 언어 수준에서 다중 스레드를 지원해 줍니다. 자바 API에는 스레드를 지원해 주기 위한 Thread 클래스가 있으며, 자바 런타임 시스템에서는 모니터와 조건 잠금 함수를 제공해 줍니다.
먼저, 자바는 기계어 코드를 직접 실행시키는 것이 아니고, 플랫폼 독립적인 중간 코드 형태인 바이트코드를 자바 가상머신이 해석하여 실행시키는 인터프리터 방식을 취하고 있으므로 느린 수행 시간을 갖습니다. 일반적으로 C보다 평균 8배 정도 느리고, 최대 20배까지 느립니다. 이렇게 느린 수행 시간을 해결하기 위해 다음과 같은 기술을 사용할 수 있습니다.
네이티브 코드 생성기를 이용하여 인터프리트 하는 도중에 기계어로 동적으로 번역합니다.
프로그램을 실행하는 중에 그 실행 형태를 분석하여 병목이 발생하는 부분을 찾아내어 최적화 시켜 줍니다.
- WOWAddOn/2011년프로젝트/초성퀴즈 . . . . 161 matches
WOW의 애드온은 Lua나 Ruby와 같은 스크립트 언어를 사용하는것으로 알고있다.
설치된경로를 따라 Eclipse의 Profiler말고 Interpreter로 lua.exe로 path를 설정해주면 Eclipse에서 Project를 만든뒤 출력되는 Lua파일을 볼수 있다.
그래서 찾아봤더니 UTF-8방식으로 빼올수 있다고 한다.
아악 모르겠어!! 그래서 추가로 링크를 걸어본다.
거기서 한글을 빼온후 UTF-8에 따라 0xACC00 (<- UTF-8시작) 을 빼고 초성 중성 종성을 다음으로 빼온다
기본 프로그램 정보를 담고있는 *.toc파일.
기본적으로 "/World of Warcraft/interface/addons/애드온명" 으로 폴더가 만들어져있어야한다.
그리고 HelloWoW.toc으로 기본설정을 잡아야하고
로 현재 인터페이스 정보를 알아볼수 있다.
내가 작성하는건 4.2니까 40200이겠지 인터페이스 정보를 갱신안해놓으면 와우 애드온 로드시 '구버전'으로 제대로 로드가 안될 수 있다.
Title은 짐작대로고
end
WoW API function을 lua에 넣어준적은 없지만 자동으로 되나보다.
여기서 아이템 초성 퀴즈의 기본은 아이템 이름 DB를 검색할수 있어야한다. 근데 WOW아이템은 현재 아이템 넘버만 7만을 넘는다. 중간중간 비어있는 index도 있다. 이게 뭥미. 아마 suffix때문일것으로 예상된다. suffix란 아이템에 부가적으로 붙은 옵션을 item index에수치화 한것을 부르는 말인데 그것에 따라 아이템의 index가 결정되는것 같더라. (아직 정확히는 모른다)
저 번호에 아이템 넘버를 넣으면 해당 아이템 정보가 들어가있는 페이지로 이동하게 된다. DB를 WOW안에서와 웹페이지 똑같이 관리 하는것 같은데 이렇게 똑같이 되있으니까 좋다. 사실 Addon에서 페이지에서 하나 빼오는걸로 생각했지만 가장 좋다고 생각하는것은 블루아이템과 누구드랍처럼 아이템 이름을 보관해놓고 Addon을 돌려보는것이 정신건강에 이로울것이라고 생각했다.
if count > 10000 then
end
if baseName ~= nil then
end
end
- 경시대회준비반/BigInteger . . . . 152 matches
C++ 용 BigInteger 클래스로 거의 모든 연산을 지원한다. UVA 사이트의 구식(?) 컴파일러에도 문제없이 통과할 뿐 아니라, 성능또한 훌륭하다. 고정도 정수 연산을 하는 문제의 경우, 고정도 연산을 하는 라이브러리를 본인이 직접 짜거나, 이 클래스를 이용하면 된다. 몇 일동안 삽질한 결과 후자가 낫다는 판단이 선다. 되게 잘 짜여진 코드다. 시간 내서 분석해봐야 겠다.
* Permission to use, copy, modify, distribute and sell this software
DATATYPE *TheNumber;
// End of the location of the number in the array
SizeT End;
// True if the number is negative
// Constructor with specified bytes
// Determines if the number representation is OK or not
friend BigInteger& operator+(BigInteger const&, BigInteger const&);
friend BigInteger& operator-(BigInteger const&, BigInteger const&);
friend BigInteger& operator*(BigInteger const&, BigInteger const&);
friend BigInteger& operator*(BigInteger const&, DATATYPE const&);
friend BigInteger& operator*(DATATYPE const&, BigInteger const&);
friend BigInteger& DivideAndRemainder(BigInteger const&, BigInteger const&,BigInteger&,bool);
friend BigInteger& DivideAndRemainder(BigInteger const&, DATATYPE const&,DATATYPE&,bool);
friend BigInteger& operator/(BigInteger const&, BigInteger const&);
friend BigInteger& operator/(BigInteger const&, DATATYPE const&);
friend BigInteger& operator/(DATATYPE const&, BigInteger const&);
friend BigInteger& operator%(BigInteger const&, BigInteger const&);
friend BigInteger& operator%(BigInteger const&, DATATYPE const&);
- 프로그래머의길 . . . . 146 matches
마소 7월달 (1999년꺼로 기억) 이승용씨의 글. 자유게시판에 인용된 글 옮김. (자유게시판 200번 대 글이군. -_-;)
"어떻게 하면 프로그래밍을 잘 할 수 있습니까? 만약있다면 그 해답을 가르쳐 주세요"
필자의 답변은 '해답은 없습니다.'였다. 하지만 어렵게 질문해온 독자에게 어설픈 답변을 할 수 없기 때문에 프로그래머의 길이란 어떤 것인가에 대해 답변을 보낸 적이 있다.
프로그래밍에 대한 정의는 여러가지가 있지만, 필자는 이와 같이 말하고 싶다.
'프로그래밍이란 정열로 시작해 끈기로 끝나는 일련의 작업니다. 정열은 짧고 높지만 끈기는 길고 낮다.'
프로그래머는 화가와 같다. 화가의 그림에 대한 영감이 프로그래머의 코드에 대한 영감이며, 화가의 화판은 프로그래머의 자판인 것이다. 단지 프로그래머는 화가가 사용하는 붓대신 손을 이용한 코딩을 한다는 차이점 뿐이다. 맨처음 코딩에 대한 영감은 단순하게 시작한다. 하지만 그 영감을 현실속으로 끌어내기 위해서는 많은 시행착오를 거치게 된다. 자신의 실력을 한탄하기도 하면서 자신이 만들어낸 알고리즘에 흠뻑 취하기도 한다.
초반의 정열은 무섭다는 표현이 맞을 것이다. 정말 자신이 생각해낸 알고리즘의 성공 여부를 알아보기 위해 무섭게 그 일에 매달린다. 밤과 낮이 서로 바뀌고, 모든 사회적 문화권에서 소외된다. 이와 같이 초반의 정열은 그 끝이 어디인지도 모르는 자아도취의 행동인 것이다. 하지만 이러한 정열은 바로 시들어 버린다. 현실속에 안주할 것인가 아니면 이상을 선택할 것인가 하는 기로에 놓이게 되기 때문이다.
현실 속의 안주는 시간과의 싸움이다. 모든 프로젝트는 정해진 시간을 갖고 있다. 초반 설계 단계에 수립된 계획은 불가피하게 수정되는 경우가 태반이다. 이는 코딩중에 예상치 못한 복병(?)을 만나게 되는 경우가 있을 수 있으며, 관리자의 무리한 계획으로 초반 계획이 수정되는 경우도 있다. 모든 프로그래머들은 항상 후자에 치중하게 된다. 현실도피를 위한 희생양으로 몰아세우는 격이지만, 대부분의 경우는 관리자의 이해 부족에 의한 비현실적 계획이 주를 이루기 때문이다.
이와 반대로 이상을 선택하는 프로그래머는 그 다음부타 자신과의 싸움이 시적된다. 끈기 바로 이것이다. 흔히 우리는 능력이 탁월한 사람보다는 성실한 사람을 더 높이 평가해중다. 프로그래머 역시 끈기가 없으면, 완성도 높은 프로그램을 만들지 못한다. 자신이 만든 알고리즘이 아무리 탁월하다고 해도 이를 이용한 애플리케이션의 완성도가 높지 않으면, 아무리 탁월하다고 해도 이를 이용한 애플리케이션의 완성도가 높지 않으면, 아무도 알아주지 않는다. 필자는 수많은 디버깅과 요구사항을 수용해 나가면서 자신의 이상을 실현해 나가는 프로그래머를 높이 평가하고 싶다. 그리고 그러한 사람이야말로 발전 가능성이 있으며, 신뢰할 수 있는 프로그램을 만들기 때문이다.
사실 완벽한 코딩이란 존재하지 않는다. 다만 완벽을 위해 프로그래머는 키보드를 애인으로 삼을 뿐이다. 끈기있게 코드를 디버깅하는 프로그래머는 그만큼 버그의 수를 줄일 수 있고, 또한 추가 요구사항에 대한 대비도 충분히 할 수 있다. 따라서 필자는 프로그래머란 정열보다는 끈기가 더 필요하다고 말하고 싶다. 정말 진정한 프로그래머란 자신의 역량보다는 한 주제에 대한 완벽에 가까운 해결책을 찾아내는 끈기있는 사람이라고 생각한다. 우리 모두 학창시절 어려운 수학문제를 풀던 때를 생각하면서, 그 의미를 되새겨보자.
사람은 누구나 어떤 일을 하든 넘어야 할 벽을 만나기 마련이다. 프로그래머역시 여러가지 벽을 만나게 되는데, 필자는 컴퓨터의 벽을 크게 '''이해의 벽'''과 '''창조의 벽''', 그리고 '''마음의 벽'''으로 구분하고자 한다. '''이해의 벽'''은 초보자가 넘어야 하는 벽이고 '''창조의 벽'''은 중급자가, 그리고 마지막 벽인 '''마음의 벽'''은 전문가가 넘어야 하는 벽이다.
이 글을 읽고 있는 독자라면 어느 정도 프로그래밍을 해본 경험이 있을 것이다. 초보자라 함은 프로그래밍에 입문하고자 하는 사람을 말한다. 즉 컴퓨터 사용부터 천천히 배워나가고 있는 사람들이다. 이들은 특정 학원 혹은 학교의 정규 과정을 통해 동료들과 함께 배우기도 하고, 또는 개인적으로 학습해 나가는 경우도 있다. 초보자들의 공통점은 전문가들의 논쟁을 아직 이해 할 수는 없지만큰 관심을 갖고 있으며, 컴퓨터로 모든 일이 가능할 것이라는 부푼 기대에 차있다는 것이다. 여기서 그들의 기대감이 문제시 된다. 기대가 크면 클수록 돌아오는실망감은 비례한다.바로 컴퓨터로 할 수 있는 일이 한정돼 버리는 시점에서 더 이상의 진전이 없게 되는 것이다.
초보자 들 중 주위 사람들 보다 좀더 많은 내용을 알고 있다는 자만심을 갖고 있는이들이 특히 그럴 확률이 높다. 이들은 일종의 유틸리티를 이용해 남들이 하지 못하는 기법을 익혀 이를 자랑하면서 우월감에 사로 잡히게 된다. 하지만 그러한 우월감은 그리 오래 가지 않는다. 자신보다 더 뛰어난 전문가를 만나면 '도대체 내가 무엇을 하고 있는가?'하는 반문이 생기기 때문이다. 여기서 이들은 '이해의 벽'을 피부로 느끼며, 컴퓨터를 이용한 새로운 도전을 받아들이게 된다. 물론 이 시점에서 이해의 벽을 뛰어넘지 못하는 이들도 있을 것이다.하지만 프로그신머의 길을 걸어가기를 원하는 이는 자신에게 닥친 상황을 돌파하기 위한 해결책을 찾는다. 이것이 바로프로그램이다. 필자는 이들에게 이렇게 말하고 싶다.
"프로그래밍이라는 것은 단순히 코딩한다는 의미보다는 컴퓨터를 이해한다는 의미로 받아들여야 한다."
프로그램은 컴퓨터가 이해할 수 있는 기계어를 사람이 좀더 쉽게 알아볼 수 있도록 만든것에 불과하다 이를 다시 표현하자면, 기계와 언어소통하기 위해 프로그램을 배운다는 것이다. 우리는 외국어를 공부하면서 문화적 이질감으로 인해 단어의 의미를 파악하기 힘들때가 종종 있다. 이는 그 나라의 풍습과 역사를 이해하지 못하기 문이다. 컴퓨터도 마찬가지 이다. 컴퓨터를 이해하지 못하면 프로그램 역시 서투른 번역이 돼버린다. 다시 한번 논하지만, 프로그램을 배우는 과정을 컴퓨터를 이해한다는의미로 받아들이면 좀더 쉽게 중급자의 길로 도약할 수 있을 것이다.
첫번째 벽인 '''이해의 벽'''을 뛰어넘은 중급자는 그들만의 고유 영역을 갖게 된다. 이것이 바로 코딩이다. 코딩은 그 방법만 알면 쉽게 처리할 수 있다. 방법은 경륜이라 해도 과언이 아니다. 도공은 자신이 만든 도자기를 보며, 완벽하지 않은 것들을 일반인이 이해할 수 없을 정도로 부셔 버린다. 우리는 아무리 보아도 그것 들의 차이점을 알아낼 수가 없다. 하지만 경륜이 많은 도공은 도자기의 빛깔과 형태만 보아도 좋은 도자기인지 아니면 버려야할 도자기인지 알아낸다. 프로그램도 마찬가지이다. 컴퓨터를 이해하고 있는 프로그래머는 실행되고 있는 응용 프로그램만 보다도 어떻게 그것을 만들어 냈는지 알 수 있다 그리고 어떤 어려운 문제가 닥치더라도 해결점을 찾아낸다.
그렇다면 이 정도의 실력을 갖추기 위해서는 어떻게 해야할까? 아마도 많은 독자들이 궁금해하는 문제일 것이다. 정확한 해답이 있을 수 없는 질문이다. '''영어에 왕도는 없다'''라는 표현을 빌어 '''프로그램에는 왕도가 없다'''라고 표현하는 것이 정답일 것이다. 하지만 왕도는 없지만 방법은 있다. 바로 '''자신이 할 수 있다고 판단하는 것보다 항상 더 많은 일을 만들어 내라는 것이다.''' 의미는 도전 정신이 필요하다는 뜻이다. 예를 들어 자신에게 주어진 일이 10만큼의 크기라면 자신의 목표를 20정도로 세우는것이다. 그러면 10만큼도 하기 벅차다고 느끼던 것이 어느날 목표한 10을 이루고 20으로 다가가고 있는 자신을 발견하게 될것이다. 만약 목표한 10도 이루지 못했다고 해서 실망하지는 말자. 돌이켜 보면 프로젝트가 실패했다고 해서 잃는 것보다는 얻은 것 더 많다는 것을 알게 될것이다. 필자는 중급자의 벽인'창조의 벽'을 해결하기 위해서는 무엇보다도 도전 정신이 필요하다고 주장하고 싶다.
프로그래머들의 마지막 벽인 '''마음의 벽''', 이 벽은 상당한 의미를 가진다. 전문가로 성장한 프로그래머들은 누구보다도 마음이 굳게 닫혀 있는 경우가 많다. 자신만이 완벽한 코드를 작성해 낸다는 마음자세가 이들을 그렇게 만들어 버린다. 프로그래머의 고집은 가히 말로 표현할 수 없을 정도로 완강하다. 아니 고집이 아닌 아집에 가깝다. 고집은 자신이 스스로 잘못을 인정할 수 있는 수준이지만, 아집은 그 잘못도 자신이 아닌 다른 사람의 영향에 의해 발생한 것이라 말하는 것이다. 고집이 없는 프로그래머는 프로그래머라 할 수는 없지만, 그 고집이 아집이 돼서는 안된다.
만약 자신이 만들어낸 이론이 우수하다고 생각된다면 약간의 고집으로 자신의 의견을 관철시킬 수 있는 자세가 이들에게 필요하다. 다른 팀원의 사고를 자신의 이론으로 집중시키고, 그 이론의 타당성을 타진해 보는 것이 바람직하다. 이때 고집이아집으로 바뀌지 않은 시점에거 차협점을 찾아야 할 것이다. 만약 자신의 이론이 채택되지 않더라도 실망하지는 말자. 다만 이러한 것을 만들 수 있다는 확신만 버리지 않는다면 언젠가 자신의 이론이 옳다는 사실을 남들이 인정해 줄것이다.
지금까지 프로그래머가 걸어가면서 만나게 되는 세가지 벽에 대해서 살펴 보았다.물론 모든 이들이 이러한 벽을 만난다는 것은 아니다. 하지만 필자가 지금까지 프로그래밍을 해오면서, 그리고 많은 사람들과 같이 프로젝트를 진행해 오면서 경험한 일을 토대로 나름대로 정리해 본것이다. 아직 필자도 세번째 벽인 '''마음의 벽'''을 완전히 뛰어 넘었다고 생각하지 않는다. 만약 이벽을 뛰어넘는다면 또 다른 제4의 벽이 다가올지도 모른다.
- AcceleratedC++/Chapter13 . . . . 144 matches
13장에서는 4장에서 만들었던 성적 계산 프로그램을 학부생, 대학원생에 대해서 동작하도록 기능을 확장하는 프로그램을 통해서 상속과 다형성(동적바인딩)의 개념을 배운다.
''(9.6절에 있는 기존의 프로그램을 이용한다.)''
몇 가지 추가사항을 제외하면 한클래스와 다른 클래스가 동일한 경우가 많다는 데에 착안해서 나온 개념이다.
이 프로그램의 경우 기존 객체와 다른 부분은 동일하지만 대학원생의 성적을 다루는 경우에는 논문과 관련된 점수가 포함된다는 가정을 하고 만들어진다.
class Grad:public Core { // 구현(implementation)의 일부가 아닌 인터페이스(interface)의 일부로서 상속받는다는 것을 나타냄.
public: // Core의 public요소를 그대로 public 요소로 받는다.
Grad 클래스는 Core로 부터 파생되었다(Derived from), 상속받았다(inherits from), 혹은 Core는 Grad의 base class 이다 라는 표현을 사용한다.
private 보호 레이블로 지정된 멤버는 그 클래스 자체, friend 함수를 통해서만 직접적으로 접근이 가능하다. 이 경우 상속된 클래스에서는 부모 클래스의 private 멤버로의 접근이 필요한데 이럴때 '''protected'''라는 키워드를 사용하면 좋다.
protected 레이블로 지정된 멤버들은 자식 클래스에서 직접적인 접근이 가능다. 그러나 클래스의 외부에서는 접근이 안되기 때문에 캡슐화의 장점을 유지시킬 수 있다.
'''Grad::read 함수의 오버로딩'''
상기의 클래스는 Grad의 멤버 함수로 부모 클래스의 read_common, read_hw의 함수를 그대로 상속받았다는 것을 가정한다.
이를 명시적으로 표현하면 다음과 같이 표현할 수 있다.
in >> thesis; // thesis는 Core가 아니라 Grad의 멤버 변수이므로 범위 지정 연산자를 사용해서는 안된다.
Core::grade()를 사용하지 않고 grade()를 사용하게 되면 Grade:grade()를 재귀적으로 호출하여 어떤 결과를 리턴할지 예상하지 못한다.
Grad의 생성자는 Core의 생성자가 midterm, final을 초기화 한다는 가정하에서 thesis만을 초기화하고 있습니다. 이러한 초기화는 암묵적으로 행하여진다.
마찬가지로 Grad(std::istream&)을 이용해서 객체를 초기화할 때에도 '''부모 객체의 디폴트 생성자로 먼저 기존의 부분을 초기화'''하고, Grad::read(istream&)를 통해서 각 요소의 값을 초기화하게 된다.
상기의 함수는 sort에 의해서 각 요소의 판단식으로 사용되는 함수이다. 이 함수는 부모객체인 Core 객체 뿐만아니라, 자식 객체인 Grad객체도 대입하여 사용하는 것이 가능하다.
비록 함수가 요구하는 인자값은 Core 클래스 이지만 Grad는 Core를 기반으로해서 파생된 클래스이기 때문에 이 경우 name();를 호출하게 되면 g 객체의 Core::name() 부분이 호출된다.
다시 말해서 Grad가 Core의 자식 클래스 이므로 Grad객체를 통해서 Core클래스의 함수를 바인딩시켜 사용하는 것이 가능하다는 뜻이다. ''(대신에 이 함수의 안에서는 Grad의 Core 의 요소들만을 취한다.)''
만약 이름이 아니라 최종 성적을 가지고 비교를 하고 싶을 경우를 다루게 된다.
- AseParserByJhs . . . . 144 matches
#define PV_NUM "*PHYSIQUE_NUMVERTEXASSIGNMENT" // 전체 PV 개수. 별로 의미 없다.. 본 개개에 할당된 PV수가 필요하므로..
#define PV_NONBLEND "*PHYSIQUE_NONBLENDED_RIGIDTYPE"
#define PV_BLEND_ASSIGNMODE "*PHYSIQUE_BLENDED_RIGIDTYPE_LIST"
#define PV_BLEND_ASSIGN "*PHYSIQUE_VERTEXASSIGNMENT_NODE"
// 원래 STL 리스트로 전체 노드를 관리했는데 지금은 사용안함. 전체 노드 리스트는 이 모듈의 cpp 파일에 전역으로 선언.
virtual void Render (void* pArg) {};
static bool GetAseAllInfo (FILE *s); // 각 노드의 헤더정보와, 연결된 피지크 정점 개수를 카운트하고 에니메이션 키가 없는 노드의 에니메이션 키를 1로 초기화한다.
Desc - 지정된 Ase 파일을 읽어들이고 그 파일의 월드 좌표계상으로 저장된 정점들을 로컬 좌표계로 변환하며
각 노드마다 자신의 상위 노드에 좌표계에 기준해서 자신의 좌표계로 이동시켜주는 메트릭스를 생성한다.( -> AniTM)
if (!(s = fopen (filename, "r"))) {
else
// : 루트 리스트에 트리 구조로이루어진 모델들을 링크 한다.
if (strcmp (pNodeList [i1]->ParentName, "")) {
if (pNodeList [i1] != pNodeList [i2] &&
pNodeList [i2]->SetChildPointer (pDest); // 새 메모리를 자식 포인터로 지정
// 정점을 wcs -> lcs로 변환 -------------------------------------------
if (i!=0) pNodeList[i]->MulMatInverse (FALSE);
// for(StlListItor itorAll = pSL->begin (); itorAll!= pSL->end (); ++itorAll) {
if (!strcmp(pTmp->ParentName, "")) {
for(StlListItor itor=pSL->begin (); itor!=pSL->end ();++itor) {
- MineFinder . . . . 141 matches
* 목표 : 윈도우의 지뢰찾기 프로그램과 직접 대화, 지뢰를 스스로 찾아내는 프로그램을 만든다.
2월 16일까지 프로그래밍 완료. 2월 23일까지 문서화 완료.
* 목표수정 - 뜻하지 않은 문제로. -_-; 2월 28일. 말일까지는 어떻게든! --;
* 윈98, 윈2000 지뢰찾기 프로그램 지원 (현재 2000 은 제대로 지원. 98 쪽 호환성 높이기중)
* 추후 프로그램이 커질 경우 '눈' 부분과 '지능' 부분을 따로 빼낼 수 있도록 궁리.
* '눈' 해당 부분 - 지뢰찾기 프로그램으로부터 비트맵을 얻어 데이터로 변환하는 루틴 관련부. 현재 bitmap 1:1 matching 부분이 가장 부하가 많이 걸리는 부분으로 확인됨에 따라, 가장 개선해야 할 부분.
* '지능' 해당 부분 - 변환된 데이터를 근거로 해야 할 행동을 결정하는 부분. 기본적인 형태는 유한상태머신을 띈다.
* 추후 DP 로 확장된다면 StrategyPattern 과 StatePattern 등이 이용될 것 같지만. 이는 추후 ["Refactoring"] 해 나가면서 생각해볼 사항. 프로그램이 좀 더 커지고 ["Refactoring"] 이 이루어진다면 DLL 부분으로 빠져나올 수 있을듯. ('빠져나와야 할 상황이 생길듯' 이 더 정확하지만. -_-a)
* 지뢰찾기 프로그램의 윈도우 핸들을 얻고 해당 메세지를 보내어서 지뢰찾기 프로그램을 구동하는 루틴 관련 SpikeSolution. (아.. UnitTest 코드 넣기가 애매해서 안넣었다. 궁리해봐야 할 부분같다.)
* 지뢰찾기 프로그램의 윈도우 핸들을 얻은뒤 DC를 얻은후 화면 캡쳐. 그리고 캡쳐한 비트맵을 근거로 하여 데이터로 변환하는 루틴 관련 SpikeSolution
* 디자인 부분에서의 TFP의 중요성을 놓친것이 화근이 되었다는. -_-; 추후 알고리즘 부분으로 들어가면서 TFP를 게을리 한 점과 프로그램 돌아간다는 점에서의 즐거움에 시간낭비가 좀 심했다는..~
* 미션 크리티컬한 문제였다면 그냥 넘어가면 안될 일이지만. -_-; 장난감 가지고 노는 기분으로 한 일이였던지라.~ 그리 무게감을 가지고 한 일이 아닌 관계로 특별히 나쁘진 않았다.
* 현실에서 가상으로 다시 현실로. 암튼 '1002 보기에 좋았더라'. 여전히 멍청한 넘이고 주사위 던지는 넘이지만 (오호.. Random Open 때 주사위 돌리는 애니메이션을 넣을까. ^^;)
* 지금쯤 다시 짜라고 한다면 TFP를 좀 더 제대로 추구할 수 있을 것도 같다. (이 점에서 TFP를 할때 SpikeSolution 에 대한 어느정도의 충분한 시간을 두는 점이 좋을 것 같다는 생각이 들었다. 초기 SpikeSolution 으로 해당 부분을 간단하게 대강 해보고, Test를 할 수 있는 부분에 대한 구체화하기.)
* CppUnit 를 쓸때에는 MFC 라이브러리들이 static 으로 링킹이 안되는 것 같다. 좀 더 살펴봐야겠다.
[영현] 형 신기해~ ㅎㅎㅎ bitmap data로 숫자들과 거시기들을 구분한건가..ㅡㅡa.. spy 좋구만..[[BR]]
[해성] 오오.. Artificial Intelligence.. -_- 근데 저 스펠링이 맞나..[[BR]]
[1002] 뭐. 어차피 노가다를 해도 컴터가 하는 것을. -_-v 이로서 즐기게 되는 게임이 하나 줄어버리는건가. --;; A.I. 라고 붙이기엔 너무 단순해서 좀 쪽 팔리는군. --;[[BR]]
습관성으로 여는 프로그램 Best: 1. Explorer 2. 프리셀 3. 지뢰찾기. -_-;
["NSISIde"] 소스를 만지작 거리던중 피곤해서 지뢰찾기를 하게 되었다. 조옴 무리를 했는지(?) 손목이 저려오기 시작했다. 그러다가 갑자기 '퍽' 하고 동시 다발적으로 여러가지 생각을 하게 되었는데, 하나는 예전에 학교에서 열렸던 '선배님들과의 만남' 에서 소프트캠프에 있는 환국선배가 했던 말이였다.
- 새싹교실/2012/주먹밥 . . . . 141 matches
* [김준석] : 기존 기획했던 커리큘럼 프로젝트 결과물 3개 이상. 그리고 C언어의 파일입출력 및 네트워크 프로그래밍까지 가르치겠다. 그외 잡식은 +@
* [박도건] : 컴퓨터에 관한 여러가지 잡 지식 + 프로그램 사용법 습득, 네트워크 프로그래밍, 게임 만들어보기.
* [용상훈] : 기본적인 c언어와 안드로이드,아이폰 어플을 만들기 프로그래밍 사용법 습득.
* [한원표] : 다양한 컴퓨터 프로그램에 익숙해지고 커리큘럼을 열심히 따라가겠다.
* 진로 탐색(?)
* 한원표 : 새싹교실 첫 수업이었다. 박도건, 용상훈이라는 동기들과 같이 하게되었는데 앞으로 친해졌으면 좋곘다. 처음에는 새싹교실을 하는 이유와, 진행방식 등에 대해 선배님께 설명을 들었다. 그리고 wiwki에 가입해서 앞으로 우리가 새싹교실에서 배운것, 느낀것을 직접 편집할 수 있다는 것이 좋았다. 그 후에 Virtual Box라는 것으로. Hello World라는 프로그램을 짯는데 새로운 환경을 볼 수 있어서 좋았지만 한편으로는 처음보는 환경이라 어색한 감이 있었다. 그리고 어플 프로그램을 보여주셨는데. 친구들은 이해하는것 같은데 나만 잘 못하는 것 같았다.
* 박도건 : 캡스톤설계실(208-216)에서 김준석 선배님과, 한원표, 용상훈 동기들과 같이 3월 21일 PM6시에 gcc, Linux, android example, wiki작성법 등을 배웠다. 나랑 비슷해보이는 친구가 있어서 같이 프로젝트 할 수 있을것 같다.
* 김준석 :용상훈, 한원표, 박도건을 이끌고 새싹을 캡실에서 진행해보았다. 우리반의 징크스는 끝나지 않았다. 꼭 걸러내도 기본을 아는 친구들이 아무것도 모르는것처럼 들어와. 여튼, 그래도 새로 새싹을 가르칠수 있고 좀 알고 있는 학생들이 들어와서 좋다. 강의를 다음시간에 팍팍나가도 될것 같다. 2주차에 대해 코딩하는것이나 앞으로의 진로에 대해 물어보았고 현재 전체적인 진도나 수준을 간접적으로 알 수 있게 된것이 가장 큰 성과다.
* 예약어 -> 예약어는 C의 시스템에서 미리 선점해놓은 단어를 의미합니다. 이것을 변수명이나 함수명으로 쓰면 안됩니다.
* #define 선언문의 사용법에 대해 알려주었습니다. #define으로 매크로를 선언해놓으면 편하게 선언 단어를 만들음으로 쓸수있지용? 그 응용에 대해서는 다음에 기회가 되면 알려주겠습니다.
* if문, switch()case: default:}, for, while문의 생김새와 존재 목적에 대해서 알려주었습니다. 말그대로 프로그램의 중복을 없애고 사용자의 흐름을 좀 더 편하게 코딩할수 있도록 만들어진 예약어들입니다. 아 switch case문에서 break를 안가르쳤네요 :(
* 과제로 나오는 ACM 문제를 풀어보았습니다
if(a>b) {
if(b>c) {
if(a>b) {
if(num % 400 == 0)
else if((num % 4 == 0) || (num & 100 != 0))
else
if(a>b)
if(b>c)
- SmallTalk/강좌FromHitel/소개 . . . . 137 matches
이 글은 Smalltalk라는 프로그래밍 언어에 대한 몇 가지 중요한 이야기를 담고
나라에서는 C/C++이 프로그래밍 언어의 주류를 이루고 있으며, 요즈음은 Delphi
로그래밍 언어의 조상이자 완결판이라고 할 수 있는 Smalltalk에 대한 자료는 거
Smalltalk를 전산 교육 기관에서 별로 중요하지 않게 여기고 있기 때문이기도 합
이제 미약하나마 저는 Smalltalk에 관한 자료를 조금씩 힘닿는 대로 여러분에게
소개시켜 드릴 것입니다. 물론 한 번에 많은 양을 드리지는 못하겠지만, 앞으로
(application) 프로그램을 만드는데 사용할 수 있다는 것을 알려드리고자 합니
이 객체와 부품으로 만들어지고 있으며, COM이나 CORBA와 같이 객체와 부품을 중
요한 문제로 대두되었으며, 객체지향 패러다임은 이런 문제를 해결할 수 있는 하
오늘날 많이 사용되고 있는 C++, Java, Object Pascal 등은 모두 프로그래밍 언
과를 초래하여, 필요 이상으로 복잡한 언어 명세를 만들게 되었으며, 기존의 구
조적 프로그래밍 습관에 익숙한 우리들에게 객체 지향 기법을 구현할 수 있는 생
각의 여유를 허용하지 않았습니다. 사람들은 자신이 이미 알고 있는 방식대로 프
로그래밍을 하고, 따라서 객체지향 언어로 만들어진 프로그램이 전혀 객체지향
답지 안은 프로그램이 되고 만 것입니다. 그래서 저는 순수하게 객체지향적인 관
된 것이 바로 Smalltalk 언어입니다.
(software community)에 의해 매우 중요한 객체지향 프로그래밍 환경으로 여겨
졌고, Smalltalk의 언어 명세는 다른 모든 객체지향 프로그래밍 언어의 잣대가
하고 있는 Delphi나 Visual Basic 등에 적용되고 있는 것으로 볼 때, 이러한 객
그럼에도 불구하고 Smalltalk는 범용 프로그래밍 언어로써 사용되기에는 몇 가지
- ProjectZephyrus/ClientJourney . . . . 136 matches
클라이언트 팀 모여서 한 일에 대한 정리. 한일/느낀점/교훈(["ThreeFs"]) 등을 생각해볼 수 있는 기회가 되었으면 함. (팀원내 자유로운 비방 허용; 치외법권선포;)
* 작업상황이 막바지인것을 실감할 거 같다. 엄청나게 길어진 코드를 보면 알 수 있다. 내가 없는 사이에 엄청나게 많은 변화가 있었다. 주석이 없는 코드라서 그런지 해석하는 데 애먹었다. 이궁...CVS 사용을 며칠 안해봤다고 또 잊어먹었다. 바부..도움말 뒤지는 중이다. 아마 이번 프로젝트에서 내가 가장 크게 느끼는 것은 영서와 비슷할 것 같다. 자바 언어에 대한 공부보다는 프로젝트 진행 방법, 팀프로젝트에서 개인과 팀의 역할 등을 가장 크게 배우는 것 같다. 예전에 친구와 함께 뭐 하나 하다가 어설프게 끝난 적이 있는데 아마 내가 그만큼 어설프게 진행했던 것 같다. 아무튼 이번에 가장 크게 느낀 점이다. 또 하나 느낀점이 있다면 형하고 pair 하려면 이정도로 공부하고 노력해서는 부족할 것 같다는 생각이다. 아직 내가 갈 길은 멀었다는 생각이... -_-;; 이번에 확실히 늘어난 실력은 아마도 소켓의 개념이 아닐까...-_-;;
["프로그램내에서의주석"]
* 일이 거의 막마지에 다다른다. 12시 이후 본격적 작업. 이틀간의 스케줄에서 둘이 참여를 하지 않았으므로, 작업은 주로 코드 설명이 주가 될 수 밖에 없었다. Pair로 ["Refactoring"] 해나가며 설명하기에 내가 너무 많이 코드를 고쳤나. -_-; (나도 할말있는것이, 가장 중요사항중 하나인 패킷 핸들러 처리부분할때 다들빠지냐는것이다. -_-; 제일 얻을 것도 많은 부분일건데 쩝. 개인적으로 만들면서 흐뭇(^^;) 했던 부분이고;)
* 소프트웨어 개발이 공장스타일이 될 수 없는 이유를 하나 든다고 한다면 개발중 개발자가 계속 학습을 해나간다는 점에 있지 않을까 한다. 처음부터 끝까지 모든 것을 다 예상하고 개발할 수 는 없을것이니. (필요한 라이브러리가 무엇인지, 실제 그 라이브러리의 장단점이 무엇인지, 어떻게 사용하면 바로 알수 없는 버그가 되어버리는지 등등. 뭐 큰 소프트웨어일 경우 이것을 다 예측해야 한다라고 하면 할말없지만. 이것도 비용을 고려해서 처신해야하겠지. Cost Estimate 자체가 Cost 가 드는것일거니.) 암튼 아쉬운건 중간에 디자인이 바뀌었을때 (실제로 처음 디자인의 클래스들을 몇개 뺀것도 있고, 인터페이스만 맞춰본 것들도 있고 그러함) 바쁜 사람들이 참석을 하지 못해서 처음부터 설명해야 하는 경우이다.
* 학교에서의 작업의 단점중 하나는 고정된 장소와 고정된 스케줄을 만들기가 쉽지 않다는 점이다. 학교시간표 보고 빈 시간대를 맞춰야 하고, 그 사람은 또 그 사람 나름대로의 스케줄이 따로 존재한다. 시험이라던지, 동아리 활동이라던지 등등. 이 경우 팀원별 스케줄을 보고 팀내 기여도를 예상한다음 그 기여도를 줄여주도록 해야 서로가 부담이 적을 것이다. 단, 위에서 언급한대로 개발중 지속적인 학습과정이 있는 이상, 중간 참여는 그만큼 어렵게 된다. CVS가 있을 경우 해당 코드의 변화를 지속적으로 관찰해나가야 하며, 외부에 있는 사람은 내부 작업자에게 필요에 따라 해당 문서를 요구해야 한다. (내부 작업자가 어떤 욕을 하건 -_-; 나중에 다시 참여시의 리스크를 줄이려면) 내부 작업자는 그 변화과정을 계속 기록을 남겨야 할 것이다. (Configuration Management 가 되겠지.)
* 이번 프로젝트의 목적은 Java Study + Team Project 경험이라고 보아야 할 것이다. 아쉽게도 처음에 공부할 것을 목적으로 이 팀을 제안한 사람들은 자신의 목적과 팀의 목적을 일치시키지 못했고, 이는 개인의 스케줄관리의 우선순위 정의 실패 (라고 생각한다. 팀 입장에선. 개인의 경우야 우선순위들이 다를테니 할말없지만, 그로 인한 손실에 대해서 아쉬워할정도라면 개인의 실패와도 연결을 시켜야겠지)로 이어졌다고 본다. (왜 초반 제안자들보다 후반 참여자들이 더 열심히 뛰었을까) 한편, 선배의 입장으로선 팀의 목적인 개개인의 실력향상부분을 간과하고 혼자서 너무 많이 진행했다는 점에선 또 개인의 목적과 팀의 목적의 불일치로서 이 또한 실패이다. 완성된 프로그램만이 중요한건 아닐것이다. (하지만, 나의 경우 Java Study 와 Team Project 경험 향상도 내 목적중 하나가 되므로, 내 기여도를 올리는 것은 나에게 이익이다. Team Project 경험을 위해 PairProgramming를 했고, 대화를 위한 모델링을 했으며, CVS에 commit 을 했고, 중간에 바쁜 사람들의 스케줄을 뺐다.) 암튼, 스스로 한 만큼 얻어간다. Good Pattern 이건 Anti Pattern 이건.
* 암튼. 이렇게 해봤으니, 앞으로는 더 잘할수 있도록, 더욱더 잘할수 있도록. ["DoItAgainToLearn"] 했으면 한다. 앞으로 더 궁리해봐야 할 일들이겠지. -- 석천
* 움.. 아무래도 난 말빨 글빨 다 딸리는거같다.. 위에글처럼 멋있게 쓰고싶은데, 그냥 내식대로 써야겠다.. 간만에 내가 또 형보다 일찍왔다. 이틀동안 빠진게 타격이 너무 컸나보다.. MainSource에 새로 추가된 파일도 꽤되고 기존파일도 업데이트된 내용이 많아서 이해가 아니라 읽어보는것만해도 엄청난 시간이 들었다.. --;; 정통부 회의겸 기짱턱땜에 일찍갔는데 아무래도 금요일로 완료가 된 모양이다.. 이번이 나로선 거의 처음 해본 프로젝트였는데, 내가 별로 한건없지만, 솔직히 뭔가 만든것보단 배운게 더 많은거같다.. 하긴 프로젝트를 해본다는거 자체가 배운다는거였으니깐.. 꼭 자바에 대해서 배운것보다도 Design이라던지 Architecture(맞나?) 같은것에 대해서도 배웠고.. 프로젝트란 이렇게 진행해야 하는거구나라는것도 느꼈다. 뭔가 많이 쓰고싶은데 머리속이 정리가 안된다.. 이럴때 정말~~ ㅠ.ㅠ 아우~ 나중에 더 써야겠다..
*(나중) 형의 말대로 아쉽다는 생각이 든걸로 봐서는 실패란 생각이 들긴한다.. 그래도 프로젝트를 하면서 여러사람들과 머리를 맞대본것만으로도 오랜 어두운 동굴에서 빛을 찾은것처럼 느껴진다.. 다른사람이 모라 할지라도 그것만으로도 나에겐 이번 프로젝트가 나름대로 큰 성공이라고 생각한다.. 근데 아직 메신저를 못실행시켜봤다.. 어떻게 해야되는지 모르겠다.. --;; 서버쪽을 안읽어봐서 그런가.. 이거 쓰고 한번 돌려봐야겠다.. 별로 한건 없지만, 아니다 나도 엄청난 역할을 했기에 돌려보면 너무 기쁠꺼같다.. ^^
''100% 실패와 100% 성공 둘로 나누고 싶지 않다. Output 이 어느정도 나왔다는 점에서는 성공 70-80% 겠고, 그대신 프로젝트의 목적인 Java Study 와 성공적인 Team Play 의 운용을 생각해봤을때는 성공 40-50% 정도 라는 것이지. 성공했다고 생각한 점에 대해서는 (이 또한 개인의 성공과 팀의 성공으로 나누어서 생각해봤으면 한다.) 그 강점을 발견해야 하겠고, 실패했다고 생각한 점에 대해선 보완할 방법을 생각해야 겠지. --석천''
* 중간 중간 테스트를 위해 서버쪽 소스를 다운받았다. 상민이가 준비를 철저하게 한 것이 확실히 느껴지는 건 빌드용/실행용 배치화일, 도큐먼트에 있다. 배치화일은 실행한번만 해주면 서버쪽 컴파일을 알아서 해주고 한번에 실행할 수 있다. (실행을 위한 Interface 메소드를 정의해놓은것이나 다름없군.) 어떤 소스에서든지 Javadoc 이 다 달려있다. (Coding Standard로 결정한 사항이긴 하지만, 개인적으로 코드의 Javadoc 이 많이 달려있는걸 싫어하긴 하지만; 코드 읽는데 방해되어서; 하지만 javadoc generator 로 document 만들고 나면 그 이야기가 달라지긴 하다.)
* TDD 가 아니였다는 점은 추후 모듈간 Interface 를 결정할때 골치가 아파진다. 중간코드에 적용하기 뭐해서 궁여지책으로 Main 함수를 hard coding 한뒤 ["Refactoring"] 을 하는 스타일로 하긴 하지만, TDD 만큼 Interface가 깔끔하게 나오질 않는다고 생각. 차라리 조금씩이라도 UnitTest 코드를 붙이는게 나을것 같긴 하다. 하지만, 마감이 2일인 관계로. -_- 스펙 완료뒤 고려하던지, 아니면 처음부터 TDD를 염두해두고 하던지. 중요한건 모듈자체보다 모듈을 이용하는 Client 의 관점이다.
* 내가 지난번과 같이 5분 Pair를 원해서 이번에도 5분Play를 했다.. 역시 능률적이다.. 형과 나 둘다 스팀팩먹인 마린같았다.. --;; 단번에 1:1 Dialog창 완성!! 근데 한가지 처리(Focus 관련)를 제대로 못한게 아쉽다.. 레퍼런스를 수없이 뒤져봐도 결국 자바스터디까지 가봤어도 못했다.. 왜 남들은 다 된다고 하는데 이것만 안되는지 모르겠다.. 신피 컴터가 구려서그런거같다.. 어서 1.7G로 바꿔야한다. 오늘 들은 충격적인 말은 창섭이가 주점관계로 거의 못할꺼같다는말이었다.. 그얘긴 소켓을 나도 해야된다는 말인데.... 나에게 더 많은 공부를 하게 해준 창섭이가 정말 고맙다.. 정말 고마워서 눈물이 날지경이다.. ㅠ.ㅠ 덕분에 소켓까지 열심히 해야된다.. 밥먹고와서 한 네트워크부분은 그냥 고개만 끄덕였지 이해가 안갔다.. 그놈에 Try Catch는 맨날 쓴다.. 기본기가 안되있어 할때마다 관련된것만 보니 미치겠다.. 역시 기본기가 충실해야된다. 어서 책을 봐야겠다.. 아웅~ 그럼 인제 클라이언트는 내가 완성하는것인가~~ -_-V (1002형을 Adviser라고 생각할때... ㅡ_ㅡ;;) 암튼 빨리 완성해서 시험해보고싶다.. 3일껀 내가 젤먼저썼다.. 다시한번 -_-V - 영서
''어차피 창섭이가 주점이 아니라 하더라도 자네는 소켓을 공부해야 했을걸. -_-v (왜냐. 중간에 창섭이랑 너랑 Pair 할것이였으니까. 창섭이도 Swing 관련 공부를 해둬야 하긴 마찬가지) 참, 그리고 해당 코드대비 완성시간은 반드시 체크하도록. 참고로 1:1 Dialog 는 1시간 10분정도 이용했음. --석천''
* PairProgramming 을 할때 가장 답답해지는 상황은 잘 이해 안가면서 넋놓고 있을때랑, 둘이 같이 있어도 Solo Programming 하느 사람 마냥 혼자서 문제를 끙끙거리며 풀려고 하는 모습이다. 꼭 문제를 스스로 삽질해서 풀어야만 자기실력이 향상되는것일까? 다른 사람에게 올바른 질문을 할 수 없는 사람은 혼자서 문제 푸는데에도 오래걸리게 된다고 생각한다. 상대방에게 질문을 하면서 자신이 모르는 것 자체를 구체화하고 (문제 자체가 모호한상태 자체가 문제다. 무엇이 문제인지, 자신이 모르는 것이 구체적으로 무엇인지 모르면서 어떻게 문제를 해결할까? 자신이 모르는게 버클리소켓 전체 사용과정인지 소켓 API의 인자들을 모르면서 네트웍 프로그래밍을 할 수 있을까. 그런사람들에게 '지금 모르겠는게 뭐지?' 라고 물으면 80-90%는 '다 몰라요' 이다. 모르겠는 부분에 대해서 하나하나 구체화시켜나가라. 구체화시킨 예로서 생각을 해봐도 좋을것이다. 시나리오를 만들어보면서, 그림을 그려보면서, 아니면 자기 자신이 그 시스템의 일부가 되어 보면서.) 다른 사람의 아이디어를 자신의 사고에 붙여나가면서 '더 좋은 방법' 을생각해낼 수는 없을까? 언제나 문제의 답을 내는 방법은 '이사람의 방식' 아니면 '저사람의 방식' 뿐일까.
* PairProgramming 의 교대시간을 5분으로 해봤다. 한 사람이 5분동안 해당 부분을 플밍하다가 다 못짜면 다음사람이 다시 5분의 시간을 가지고 이어서 짜고 하며 교대로 프로그래밍을 이어나가는 (마치 릴레이경주와도 같다) 방법이다. 사람들에게 제안했을때 그 표정들이 심상치 않다;; 그래 너희들은 실험용 모르모트다;; 흐흐.
* 5분간격으로 Pair Programming을 했다.. 진짜 Pair를 한 기분이 든다.. Test가 아닌 Real Client UI를 만들었는데, 하다보니 Test때 한번씩 다 해본거였다.. 그런데 위와 아래에 1002형이 쓴걸 보니 얼굴이 달아오른다.. --;; 아웅.. 3일전 일을 쓰려니 너무 힘들다.. 일기를 밀려서 쓴기분이다.. 상상해서 막 쓰고싶지만 내감정에 솔직해야겠다.. 그냥 생각나는것만 써야지.. ㅡ.ㅡ++ 확실히 5분간격으로 하니 속도가 배가된 기분이다.. 마약을 한상태에서 코딩을 하는 느낌이었다.. 암튼 혼자서 하면 언제끝날지 알수없고 같이 해도 그거보단 더 걸렸을듯한데, 1시간만에 Login관련 UI를 짰다는게 나로선 신기하다.. 근데 혼자서 나중에 한 Tree만들땐 제대로 못했다.. 아직 낯선듯하다. 나에게 지금 프로젝트는 기초공사가 안된상태에서 바로 1층을 올라가는 그런거같다.. 머리속을 짜내고있는데 생각이 안난다 그만 쓰련다.. ㅡㅡ;; - 영서
''5분 플레이를 시도하려고 할때 학습과 능률 사이를 잘 저울질 할 필요가 있을듯. ["생각을곱하는모임"]의 글에서도 그렇듯, 사람과의 의견교환과 홀로 공부하고 생각하는 것 양자간의 균형을 잡아야겠지. 하지만, 우리가 만나서 플밍할때 해당 라이브러리공부와 플밍을 둘 다 하기엔 시간이 모자르니, 학습부분은 개인적으로 어느정도 해야 겠지. (나도 JTree 보려고 Graphic Java 랑 Core Java, Professional Java 에 있는 JTree 다 읽어보고 집에서 개인적인 예제 코드 작성하고 그랬다. 그정도 했으니까 자네랑 플밍할때 레퍼런스 안뒤져보지. 뭐든지 기본 밑바탕이 되는건 학습량이라 생각. 학습량 * 효율적 방법론 = Output --석천''
처음에는 영서와 GUI Programming을 했다. Main Frame class 의 메뉴붙이고 리스너 연결하는 것부터 시작, 입력 다이얼로그를 노가다 코딩해서 만드는데 서로 교대해서 1시간이 걸렸다. 코딩 속도도 저번에 비해 더욱 빨랐고, 대화할때도 그 질문이 간단했다. (5분간격이니 아무리 플밍이 익숙한 사람이 진행해도 그 진행양이 많지가 않다. 그리고 자신이 그 사람의 미완성 코드를 완성해야 하기에 모르면 바로 질문을 하게 된다.)
- AcceleratedC++/Chapter11 . . . . 135 matches
실제로 클래스를 제작할 경우에는 클래스의 생성, 복사, 대입, 소멸의 고려하여 설계되어야한다.
클래스를 설계할때에는 우선 인터페이스를 결정해야한다. 인터페이스의 결정에는 실제로 그 객체를 이용한 프로그램을 작성해보는 것이 좋다.
e=vs.end();
연산을 결정한후에는 어떤 방식으로 Vec를 구현할지를 결정하는 것이다.
begin, end, size 함수를 구현해야 하므로 이러한 작업을 위해서 '''첫 요소의 주소, 마지막 요소를 하나 지난 주소, 요소들의 개수'''를 저장할 수 있어야한다.
size는 begin, end 를 통해서 그 크기를 구하는 것이 가능하므로 여기서는 '''첫 요소의 주소, 마지막 요소를 하나 지난 주소'''를 저장하고 개수는 계산을 통해서 구현한다.
템플릿은 단지 틀일 뿐이며, 사용할때 type parameter로 준 형에 따라서 실제의 클래스를 생성한다.
// 표준 vector 클래스는 크기와 함께 초기화 요소를 인자로 받는 생성자도 제공한다.
Vec() { create(); } // 아직으로선느 구현부분에서 정해진 것이 없기 때문에 임시적으로 함수를 만들어서 넣었다.
2번째 생성자는 초기화의 인자로 인자 파라메터인 T의 생성자를 이용한다.
인자의 기본형을 지정해주면 한개의 함수정의로도 2가지의 생성자의 역할을 할 수 있기 때문에 편리하다.
생성자가 하나의 인자를 받는 경우. 일반적인 대입 생성자와 혼용이 될 가능성이 존재하기 때문에 명시적인 생성만을 허용시키는 방법이다. (12.2 절에서 자세한 논의)
Vec<int> vi = 100; // not working. 암묵적으로 Vec를 생성하고 그 값을 vi 에 복사한다. refer 11.3.3
back_inserter(T)함수를 통해서 동적으로 크기를 변경시키기 위해서 '''value_type, push_back''' 타입을 정의함. (value_type 은 현재 저장된 요소가 어떤 타입인지를 알려줌)
list의 반복자를 구현하는 경우라면 ++ 연산을 통해서 노드로 연결된 다음 노드를 리턴하는 함수를 오버로딩해야하나, 여기서는 배열의 요소를 가리키므로 단순이 포인터를 리턴하는 것 만으로 우리는 임의 접근 반복자를 구현하는 것이 가능하다.
value_type은 T가 되어야하는 것은 당연하다. 배열의 개수를 표현하는 size_type은 cstddef 에 존재하는 size_t로서 정의하는 것이 합당하다.
Vec() { create(); } // 아직으로선느 구현부분에서 정해진 것이 없기 때문에 임시적으로 함수를 만들어서 넣었다.
'''연산자 오버로딩(operator overload)'''
오버로드 연산자의 명칭은 operator'''''op''''' 의 형태로 나타난다. 즉 {{{~cpp []}}}의 경우에는 {{{~cpp operator[]}}}로 나타낼 수 있다.
만약 오버로드 연산자가 멤버함수가 아니라면(friend 함수) 좌측 피연산자는 첫번째 인수, 우측 피연산자는 두번재 인수로 나타낼 수 있다.
- 새싹교실/2012/AClass . . . . 126 matches
* 과제 : 과제는 월요일까지 jereneal20@네이버.컴으로 보내주세요.
* 6주차(6/13) - 1~5주차를 소화하지 못 할 경우를 위한 한 주.
* 방학 중에 스터디를 할 경우 - Class, Object + Tree, Graph
* 제가 하는 부분보다 스스로 해야하는 부분이 절대적으로 많습니다.
* 이해도 테스트, if문 연습, for문 연습
* 코딩과제는 완전한 프로그램으로 써 주시고(에러나지 않도록), 서술하는 문제는 간단하게(1~3줄) 써 주세요.^^
* 완성하지 못해도 좋습니다. 꼭 자기 힘으로 해 주세요.(의견 교환은 가능)
1. #define이 무엇을 의미하는지 쓰고, 이것을 사용한 '간단한' 프로그램을 하나 작성해보세요.
1. if, else, else if문을 이용한 프로그램을 하나 작성해주세요. else나 else if를 3번이상 써 주세요.
1. switch-case문을 이용한 간단한 프로그램을 하나 짜 보세요.(eg. Grade계산기 A,B,C)
* 성적 계산기의 경우 90점이상 A, 80점이상 B와 같은 구조입니다. 100점만점을 10으로 나누면 switch문으로 풀 수 있습니다.
1. while문을 이용한 프로그램을 하나 작성해 주세요. C수업시간이나 과제에 나온 것을 새로 짜보아도 좋습니다.
1. 위 프로그램을 do-while문으로 바꿔 '똑같은'프로그램이 되도록 해보세요.
1. 위 프로그램을 for문으로 바꿔 풀어보세요.
* n으로 일반화하여 입력받은 만큼 별찍기를 하도록 만들면 더욱 좋습니다.
1. 함수가 무엇인지 쓰고, 예제 프로그램을 하나 만들어 주세요.
1. 배열을 사용한 간단한 프로그램을 하나 만들어보세요.
1. 재귀함수를 이용한 프로그램을 하나 짜 보세요.(eg.1~n까지의 합, n!구하기등)
1. 배열에 숫자를 넣고, 그 배열에 특정 값이 있는지 찾는 프로그램(Search)을 작성해 주세요.
--> 프로그래밍 언어를 어셈블리어로 변환하고 그 어셈블리언어를 기계가 읽을 수 있는 언어로 변환 시켜주는 것
- AcceleratedC++/Chapter6 . . . . 124 matches
* 5장에서 본것처럼 우리가 다루는 컨테이너들은 내부 사정은 다를지라도, 우리는 그것을 모르고도 똑같이 쓸 수가 있다. 즉 일관된 인터페이스를 제공한다는 것이다. 컨테이너나 반복자와 마찬가지로 표준 라이브러리도 일관된 인터페이스를 제공한다. 벡터를 배웠으면 리스트도 금방 쓸수 있는 것처럼, 하나의 알고리즘 쓰는 법을 배우면, 다른 것 쓰는 법도 금방 알수가 있다.
ret.insert(ret.end(), bottom,begin(), bottom.end());
copy(bottom.begin(), bottom.end(), back_inserter(ret));
* 음. 또 새로운 것이 보이지 않는가? copy는 generic algorithm의 예이고, back_inserter는 반복자 어댑터의 예이다. 이게 무엇인지는 차근차근 살펴보도록 하자.
* Generic algorithm이라는 컨테이너의 부분이 아닌 알고리즘이다. 파라메터로 반복자를 받는다. 비슷하지 않은가? .이 없다 뿐이지 그냥 쓰자.
* 다음으로 반복자 어댑터(Iterator Adapters)를 살펴보자. 반복자 어댑터는 컨테이너를 인자로 받아, 정해진 작업을 수행하고 반복자를 리턴해주는 함수이다. copy알고리즘에 쓰인 back_inserter는 ret의 뒤에다가 copy를 수행한다는 것이다. 그럼 다음과 같이 쓰고 싶은 사람도 있을 것이다.
copy(bottom.begin(), bottom.end(), ret.end());
* 앞에서도 말했지만, end()에는 아무것도 없다.
* 왜 이렇게 설계했는가? 프로그래머로 하여금 쓰고 싶은 연산을 골라서 쓸수 있게 하기 때문이다.
* 5장에서 공부한 것 중에 주어진 string을 공백을 기준으로 잘라서, vector에다 넣은 다음 리턴해주는 함수가 있었다.(split) 이것을 좀 더 간단히 만들어보자. 앞의 것은 굉장히 알아보기 힘들게 되어있다.
while(i != str.end()) {
i = find_if(i, str.end(), not_space); // 공백이 아닌 부분을 찾고
iter j = find_if(i, str.end(), space); // 공백인 부분을 찾아서
if(i != str.end())
* 훨씬 알아보기 쉬워졌다. 5장의 split은 find_if마다 열심히 루프를 돌렸었다. 이제 차근차근 살펴보자.
* find_if의 인자를 보면, 앞의 두개의 인자는 범위를 의미한다. 첫인자~두번째인자 말이다. 마지막 인자는 bool형을 리턴하는 함수를 넣어준다. 즉 predicater이다. 그러면 find_if는 주어진 범위 내에서 predicator를 만족하는 부분의 반복자를 리턴해 준다.
* isspace는 표준 라이브러리에서 지원하는 함수임에다 불구하고, 왜 따로 만들었을까? 바로 isspace는 여러 언어 버젼으로 오버로딩 되어 있기 때문이다. 템플릿 함수의 인자로 오버로딩된 함수를 넘겨주는 것은 쉽지 않다. 어떤 버젼인지 알수가 없기 때문이다. 이것이 우리가 isspace역할을 하는 함수를 새로 만든 이유다.
* 5장에서는 string(i,j) 대신에, substr이라는 함수를 이용했었는데, 이번에 쓰지 않은 이유는 substr은 반복자를 인자로 받지 않기 떄문이다.
* 또한 제네릭 알고리즘은 end()를 깔끔하게 처리해준다. 우리가 신경안써도 된다는 것이다.
return equal(s.begin(), s.end(), s.rbegin());
- JavaNetworkProgramming . . . . 123 matches
*1장 : 프로그래머가 알아야하는 네트워크의 기본
*4장 : 자바로 풀어보는 다중 쓰레딩
=== Chapter1 프로그래머가 알아야하는 네트워크의 기본 ===
*본질적 성격을 띄는 로우 레벨 보안 : 네트워크를 통해서 읽혀진 바이트코드의 무결성과 관련 매우중요한 부분이긴하나 프로그래머가 직접적으로 세세하게 알필요없음
*자원과 관련된 보안 : 자원과 관련된 보안은 로우 레벨 보안보다 좀더 프로그래머에게 직접적으로 관련되어있음 애플릿을 클라이언트로 사용할때 더 중요함 이는 애플릿이 보안 제약에 직접적으로 연관되어 있기 때문
*그외 URL프로토콜,IP멀티캐스트,DNS,방화벽,HTTP 프록시 서버,SOCKS,방화벽 내부의 DNS에 관해 간단한 설명 나옴
public class AuthException extends IOException{ //사용자 예외를 정의할때 적당한 예외 클래스의 서브클래스가 되는것이 중요한데
=== Chapter4 자바로 풀어보는 다중 쓰레딩 ===
*다중 쓰레딩은 자바 네트워크 프로그래밍에서 매우 중요한 부분이다. ^^;;
*세마포어(semaphores) : 세마포어란, 자바 객체가 아니라 특별한 형태의 시스템 객체이며, 이객체는 '얻기(get)'와 '놓기(release)'라는 두 가지 기능을 가지고 있다 한 순간에, 오직 하나의 쓰레드만이 세마포어를 얻을 수 있으며(get), 한 쓰레드가 세마포어를 가지고 있는 동안 세마포어를 얻으려고 시도한 다른 쓰레드들은 모두 대기 상태에 들어간다. 다시 쓰레드가 세마포어를 놓으면(release) 다른 쓰레드가 세마포어를 얻고(get) 다시 대기상태로 들어간다. 이런한 매커니즘을 사용하여 특정 작업을 동기화 할수있다.
*동기화의 효율 : 대부분의 경우 동기화 작업은 매우 중요하며, 때로는 적대 생략해서는 안되는 경우도 있다. 그러나 불필요한 동기화 작업은 프로그램의 수행 성능을 떨어뜨리고, 재사용성을 감소시키며, 프로그램이 교착 상태에 빠지게 할 수도 있다.
public class SubThread extends Thread{
if(execution == null){
public synchronized void end(){ //동기화
if(execution !=null){
execution.interrupt(); //stop()을 쓰는 것은 별로 바람직하지 않다 stop()은 쓰레드가 어떤 상황에 있더라도 쓰레드를 바로 멈추어 버리기 때문에,
execution = null; //쓰레드가 크리티컬 섹션을 수행하는 도중 이 메소드가 호출되는 경우,중요한 데이터에 다른 쓰레드가 영영 접근할수 없는
} //경우가 생길 수도 있다. 따라서 stop() 메소드를 사용하는 대신 쓰레드 자신의 종료상태를 인지하고, 수행을 중지하는 플래그
*ThreadGroup 클래스 : 여래개의 쓰레드르 그룹으로 만들어 손쉽계 Thread를 관리
*Thread 통지(notification)메소드 : 주의해야 할 점은, 이 메소드들 호출하는 쓰레들이 반드시 synchronized 블록으로 동기화 되어야 한다는 점이다.
- 데블스캠프2012/둘째날/후기 . . . . 121 matches
* [김태진] - 상민선배님이 오셔서 웹 전반에 관한 이야기를 해주신건 작년 성년식때도 그렇고(그땐 아이폰이었지만) 참 유익한 배경지식들을 많이 얻을 수 있는 기회인거 같아요. 후반부에 git에 관한 이야기를 따로 잠깐 해주신거도 꽤나 유용한 정보였구요. 다들 이런식으로 각 세션에 대해 후기를 작성해주면 된답니다.
* [김도현] - 새내기인데다가 가벼운마음으로 왔다가 영혼이 빠져나갔습니다. 그래도 유익했어요 엄청나게 . 오늘 안왔더라면 앞으로 언제나 들어볼까하는 분야였고 그런 기회를 가질수 있어서 좋았습니다
* [이재형] - 아직은 새내기이고, 아는 것도 거의 없어서 듣는데 많이 힘들긴 했지만 제가 컴퓨터 공학부 학생으로서 앞으로 이 길을 걷는데 도움이 될만한 정보들을 많이 얻은 것 같습니당. 웹서버가 실제로 어떻게 구성되고 그를 위해 무엇이 쓰이는지 사실 아직도 제대로된 이해가 되지 않지만 좋은 '익숙함'을 얻은 것 같아서 기분이 좋았습니다. 감사합니다~~
* [김민재] - XE를 다루면서 MySQL에 대해서는 조금 알았지만, 오늘 이야기를 들으면서 많은 종류의 DB와 프레임워크가 있다는 것을 처음 알고 놀랐습니다. 아직 실력이 많이 부족한 탓에 이해를 못한 점도 있었지만, 웹에 대한 전반적인 이야기를 들으면서 웹에 대해 많이 이해할 수 있었습니다. 특히 우리가 사용하는 웹 서비스 하나를 위해 140대나 되는 Queueing Server가 필요하다는 점에 놀랐습니다. 앞으로는 여러가지 분야에 호기심을 가지고 관심을 가지도록 해야겠습니다.
* [서민관] - 유상민 선배님께서 오실 줄은 몰랐는데 정말 귀중한 시간을 써 주신 것 같습니다. 개인적으로 웹이나 서버 쪽에도 관심이 많아서 관련 이야기를 좀 들을 수 있어서 좋았습니다. 개인적인 사정으로 이야기를 자세히 못 들어서 좀 아쉬웠지만 잠깐 듣기에도 꽤 흥미가 가는 내용이었습니다. 그리고 집에서 월간 마이크로소프트를 현재 보고 있는데, 말씀하시는 걸 들어보면 월간 마소 좀 보면서 이것저것 해 보는 게 좋을 것 같네요. 여담이지만 형진 선배가 정말 이상한 걸 잘 하시는군요... 삼성도 참 문제가 많은듯...
* [서영주] - 웹 개발을 위해 필요한 전반적인 지식에 대해서 알 수 있어서 좋았습니다. DB관련해서 어떤 것이 있는지, 주 언어에는 어떤 것들이 있는지. 어떤 것들을 공부해야 하는지 방향성을 알 수 있었던게 컸던 것 같습니다. 그리고 개인적으로는 개인 서버 구축이나 취미로 하는 공부도 나중에 현업에 나가서 도움이 되는 것이 많다는 얘기에는 상당히 끌리는 부분이 있었습니다. 나중에 개인 서버를 만들어서 유용하게 써봐야겠습니다. 감사합니다.
* [안혁준] - 웹서비스를 위한 전반적인 사항을 깔끔하게 정리해주셔서 많은 도움이 되었습니다. 가끔은 이렇게 전반적인 것을 정리할 필요가 있다고 느끼지만서도 제 지식이 짧아서 스스로 하지 못하고 있었는데, 이번이 정말 좋았던 기회인것 같습니다.
* [변형진] - 이번 데블스캠프에 웹 관련 주제가 많기도 하고, 다들 웹에 관심도도 높아 보이는 게 바야흐로 웹의 전성 시대가 확실한 듯 합니다. 혹시 더 관심있는 분들은 여름방학에 함께 공부할 기회를 만들어드릴게요. ㅎㅎ
* [정종록] - 웹서비스에 대해서 잘 모르는 것이 많았는데 정리를 해주셔서 좋았습니다. 아직 잘 모르는 것이 많지만 이런것이 있다는 것을 알게 된 것만으로도 많은 도움이 될것 같습니다.
* [김준석] - 웹서비스는 학교에서 배울수 없기에 강의주제로 잡았었는데 거기에 배우는 Skill 트리나 개발자로서 '1년후에나 쓸모있는 마소'를 읽는법을 가르쳐주셔서 좋았습니다. 현재 하시는일 잘되시길바라고 부족한 제 세미나를 채워주셔서 감사합니다.
* [정진경] - 웹 서비스를 하고 싶을 때 기반이 되는 옵션이 쭉 정리된 느낌입니다. 각 언어별 프레임워크에 대해서는 잘 와닿지가 않았던 것 같네요. 아마도 아무 것도 안만져봐서 그런 것 같습니다. 하나 골라서 써봐야겠습니다. 새로운 것에 대한 도전으로는 루비온레일스가 끌리네요.
* [권순의] - 앞에서 한 내용으로 인해 날로 먹기 강의가 되었군요. 뭐 APMSetup을 설치하고 FileZilla로 서버 사용한 것 까지는 해 봤는데 블로그 만들고 하는 짓은 안 해봐서 뭐.. 새로웠습니다. 근데 본인 특성상 블로그는 운영 안 할 것 같네요. 지워야 하나.. 아 컴터 하나 사서 서버로 쓰고 싶네
* 근데 APMSetup안해도 Filezilla서버는 따로 돌릴수 있어 - [김준석]
* [김태진] - 음, 저는 맥에서 APM 설치해보다가, 윈도우에도 충분히 쉬운 툴이 있는걸 보고 참 쉽죠? 가 생각났네요. 전반적으로 설명은 상민선배님께서 잘 해주셨고, 그에 따른 실습으로 적당했다고 생각합니다. 워드프레스가 생각보다 이쁜데, 음.. XE보다 잘 만든거 같네요.-ㅅ-ㅋ
* [김해천] - 가끔씩 뻘짓으로 웹호스팅에서 빌린 걸로 제로보드나 뭐 이상한 걸 많이 해 보기는 했습니다만, 이렇게 자기 컴퓨터로 이런 걸 재현할 수 있다는 것에 신기했습니다. 설정에 관련된 것을 알아가는 시간이여서 좋았습니다. 워드프레스는 글 포스팅 할 때 환경설정에 들어가서 뜯어고치는 것 같다는 생각을 지울수 없네요ㅠ_ㅠ. 위키는 꼭 나중에 따로 설치해서 구동을 해 봐야 겠습니다.
* [김도현] - 제대로 신기했음 !! 스릴장난아니었어요 . 역시 실습이 재밌습니다 ㅋㅋ
* [김민재] - APM이 뭔가 했더니 Apache + PHP (perl? python?) + MySQL 인걸 알았을 때의 놀라움 ㅋㅋㅋㅋ 내 컴퓨터에서 준석이 형 페이지에 접속했을 때 정말 신기했습니다. 또 MyAdmin으로 데이터베이스를 직접 만드는 것도 처음 해보았습니다. (cafe24 호스팅에서는 DB 만들기가 안되더라구요..) 오늘 여러모로 신기한 체험을 많이 해 보았습니다.
* [김윤환] - 홈페이지 만들기!! 웹 프로그램의 아주 조금 맛보기가 상당히 재밋엇습니다. ㅎㅎ
* [안혁준] - 전 운영체제가 주로 리눅스기 때문에.. APMSetup은 윈도용이더라고요. 리눅스용을 못찾는건가.. 설치형 블로그를 체험할수 있는 기회가 되어서 좋았습니다.
* 리눅스에서는 데비안 계열의 Aptitude와 레드햇 계열의 YUM을 쓰면 "훨씬" 편리하고 서버로 쓰기 적절한 설정으로 설치되고 업데이트도 쉽게 되니깐... - [변형진]
- 새싹교실/2011/데미안반 . . . . 121 matches
* 프로그램 완성과정
으로 위쪽으로 갈 수록 상위개념이라 합니다. 선형대수학 때 배운 내용의 일부가 수치해석(3-1학기)에 들어있습니다. 그리고 그래픽스(4-1학기) 수업에서 수치해석을 전제로 수업을 합니다. 수업시간에는 '''선형대수학을 포기하라'''했었는데, C라이브러리로 그래픽을 만드는 식의 컴퓨터 그래픽스 수업에 관심이 있으신 분은 '''절대 포기하지 마세요 ㅎㅎ'''
* ; 는 문장의 끝을 나타내므로, printf("Hello World"); 처럼 어디까지 내용이 있다 나타내는 것처럼 빈 공간도 빈 공간 그대로 인식이 되지 않았나 싶어요.
* C언어의 단점 중 low-level적 특성으로 프로그래밍을 하는데 많은 주의를 요한다 했는데, 실제로 잘못 사용한 사례는?
* 아무래도 성과가 바로바로 눈에 보이게 출력하여 확인할 수 있는 함수이다 보니, 초보자가 바로 이해하기 어려움에도 불구하고 처음에 배우게 되는 듯 합니다.
* 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 출처 링크! 클릭하세요:)]
* 기계어로 번역된 파일이 .obj 파일인데 왜 이상한 영어들로 되어있나요?
* 메모장으로 열어서 글이 깨졌어요 ㅠㅠ 연결프로그램을 Visual Studio로 하면 번역이 정상적으로 되어있을거에요. 숫자가 010100 하면 너무 길어서 16진수로 표현이 되어있는듯 합니다.
* [이준영] - C언어의 기초적인 내용에 대해 다시 배울 수 있었습니다. 생각나는거로는 %d가 생각나네요.
* [강소현] - 열성적으로 질문을 해주어서 좋았습니다. A언어도 있는지의 여부를 물었었는데 저는 몰랐었는데 실제로 존재하더라구요 ㅎㅎ 가벼운 내용이라도 의문이 드는 사항이라면 언제든지 위키나 문자로 질문해주면 최대한 답변을 달도록 노력하겠습니다. 다음 시간에는 이전에 실습했던 것의 복습과 scanf 이후로 나갈 예정입니다. PPT 준비에 디자인도 없이 급하게 만든 티가 났었는데, 다음 시간에는 조금 더 준비를 해가겠습니다:)
* [박성국] - 이 수업이 C프로그래밍 강의에서 이해 안되었던 부분을 이해 할 수 있게 도와졌어요^^ 앞으로도 모르는것 많이 알려주세요~.
assert(val1 == 7); //val1이 7인 경우 정상 종료, 아닌 경우 오류 출력
assert(val2 == 4); //val2이 4인 경우 정상 종료, 아닌 경우 오류 출력
* 기타 대입 연산자 사용 예에서 assert(val1 == 7); 를 assert(val1 != 7); 로 바꾸어 실행해보기.
// 이경우엔 int를 안 써주는게 맞나요???
* assert는 '''강하게 주장하다'''라는 의미로 위와 같은 경우 val1이 7이 아니다! val2가 4가 아니다! 라고 주장한다는 의미입니다. 하지만 val1값은 7이고, val2의 값은 4니까 에러창을 띄워 주장이 잘못됐다고 알려주는 거에요. 전체적으로 의문사항은 assert문보다는 '''!='''의 의미를 잘 몰라서 그런 듯 합니다. == 는 같다, !=는 아니다라는 의미의 관계연산자입니다.
* 원래는 원칙상으로 void라고 명시해서 매개변수를 사용하지 않고 비어있다!!고 알려야하지만, 아무것도 안 쓰는 것도 비어있다는 의미로 허용해서 그렇습니다.
* [강소현] - 4피에서 수업이 없는 줄 알고 괜히 이동했다가 다시 6피로 이동하는 번거로운 일을 했었는데, 앞으로는 얌전히 6피에서만 수업을 해야겠어요. 수요일 11시부터 12시까지 딱 새싹 시간에 다른 수업이 있는 줄 몰랐었어요 ㅠㅠ printf와 scanf에서 시간을 많이 투자해서, 급하게 연산자를 쭉쭉- 설명하고 끝내느라 기억에 남지 않을 것 같습니다. 따라서 연산자에 관한 간단한 과제를 내어 익히도록 하겠습니다.(?!) 준비를 잘 해와야하는데, 계속 부족한 강의라고만 하는 것은 겸손이 아니라 그냥 자기비하란 생각이 문득 들었습니다. 그 동안 푸념을 들어주어 미안했고, 앞으로는 그런 일이 없도록 할 것입니다.
*[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 등의 의미와 역활에 대해 알 수 있었습니다. 오늘 전산처리기와 자료형에 대해 배웠으니 다음은 본격적으로 프로그램을 짜는것을 배우겠다.^^
- SmallTalk/강좌FromHitel/강의2 . . . . 120 matches
1.1. 프로그램과 프로그래밍 언어
1.3. Smalltalk 맛보기 프로그램
Smalltalk를 사용하여 프로그램을 짜기 위해서는 우선 여러분의 시스템에
Dolphin Smalltalk를 사용할 것이므로, 자료실에서 Dolphin Smalltalk를 내
로 여러분이 마음대로 전송 받아서 사용할 수 있을 것입니다.
로 압축하여 올린 것입니다. 그러므로 Dolphin Smalltalk를 설치하기 위해서
2. 내리받은 파일은 zip 압축파일이므로 WinZip 등과 같이 긴 파일
이름을 지원하는 압축 프로그램을 사용하여 압축을 푸십시오.
오. 자동 풀림 파일이므로 실행파일을 실행하면 바로 설치 화면
으로 넘어갑니다.
4. 다른 응용 프로그램을 설치할 때처럼 그냥 <Next> 단추를 누르면
바로 바로 넘어갑니다. 고칠 사항이 있는 사람이라면 알맞게 고
5. 설치를 마무리하면 Dolphin Smalltalk의 바로 가기를 시작 메뉴
든지 Dolphin Smalltalk를 제어판의 "프로그램 추가/삭제"를 통해서 제거할
Dolphin Smalltalk를 시작하기 위해서는 "시작 → 프로그램 → Dolphin
절차를 거치지 않았기 때문에 프로그램의 실행 결과를 저장할 수 없다는 것
입니다. 저장 기능을 사용하려면 Object Arts사에서 무료로 배부하는 등록
1.3. Smalltalk 맛보기 프로그램
이제 Smalltalk의 설치를 마쳤으므로 설치된 Smalltalk 환경을 실행시켜 봅
이 문장들에는 여러분이 Smalltalk 프로그램을 실행하는데 익숙해지도록, 그
- 데블스캠프2013/셋째날/머신러닝 . . . . 119 matches
if (temp1[i] == "1") sampleNews[count].category = i;
int diff = 0;
int diffTemp = 0;
diff = 0;
diff = 0;
diffTemp = testNews[i].words[k] - sampleNews[j].words[k];
if (diffTemp < 0) diffTemp = diffTemp * (-1);
diff += diffTemp;
//Console.WriteLine("{0} : {1}", diff, min);
if (diff < min)
min = diff;
Console.WriteLine("END");
diffSum = 0;
diffSum += abs(firstDataList[i] - secondDataList[i]);
return diffSum;
diffValue = 0;
leastDiffValue = 10000;
diffValue = compare(testData[i], trainData[j]);
# print 'diffValue : ', diffValue;
if diffValue < leastDiffValue:
- 비행기게임/BasisSource . . . . 118 matches
if not pygame.image.get_extended():
raise SystemExit,"sorry, extended image module required"
imgs.append(load_image(file))
if xy=='xy':
elif xy=='x':
elif xy=='y':
if self.count%self.imagefrequence == 0:
if self.imageCount <self.imageMax :
else :
if self.rect.right <= SCREENRECT.left :
if self.rect.centery<(self.playerPosY-self.patientOfInducement):
elif self.rect.centery>(self.playerPosY+self.patientOfInducement):
if self.rect.right >= SCREENRECT.right :
if self.count%self.imagefrequence == 0:
if self.imageCount <self.imageMax :
else :
life = 1
shotRate = 9 #If ShotRate is high the enemy shot least than low
def __init__(self, life, imageMax, playerPosY):
self.life = life
- PairProgramming . . . . 117 matches
http://pairprogramming.com/images/pairprogrammers.gif
하나의 컴퓨터에서 둘이서 서로 상의하면서 번갈아가며 프로그래밍을 하는 방법.
* Pair Refactoring - 꼭 소스 코드가 아니더라도 위키 페이지에 대한 ["문서구조조정"] 을 하는 경우에도 적용할 수 있다. 특히, 해당 토론이 벌어진뒤 양론으로 나누어졌을 경우, 각 의견 지지자들이 Pair 로 문서구조조정을 할때 이용할 수 있다.
* 5분 Pair-Change - 장과 단이 존재하긴 하는데. 장점으로 본다면, 자신의 프로그래밍 차례가 빨리 돌아오면서 Pair 끼리의 Feedback 이 빠르다는 점에서 집중도가 높다는 점이 있다. 단, Junior 의 경우 자신의 사고가 성숙해질 시간을 방해할 수 있다. 이 경우 5분으로 시작, 점차적으로 Change 의 기간을 늘려주는 방법이 있다.
* Protocol Analysis, 지식의 전달 - Seminar:CognitivePsychology 참조. 다른 사람의 사고과정을 관찰하고, 또한 자신의 사고과정을 다른 사람으로 하여금 관찰할 수 있게 해준다. 이는 자신의 프로그래밍 과정중 잘못된 부분을 고치는데 도움을 준다.
* 해당 시간 내 집중도의 상승, Pair Pressure - 평소 프로그래밍 외의 것(프로그래밍 중 음악듣기, 쓸데없는 웹서핑, 메일 읽기)에 대한 잡음을 없앤다. 작업 자체에만 몰두하게 해준다. ["TestDrivenDevelopment"] 와 상호작용이 빠른 언어(["Python"] 등..)를 이용하면 Feedback 이 빠르므로 집중도가 더 높아진다.
* Junior : Junior Pair 는 의미가 없다? - 결과물에 상관하지 않는 학습의 경우 그 의미가 있다. Junior 의 실력 한계 내에서의 Output 으로도 의미가 있다. 처음 프로그래밍을 익히는 사람에게 Pair 를 하는 것 자체가 새로운 학습경험이 된다.
PairProgramming 의 다른 적용 예로서 PairSynchronization 이 있다.
=== 동문서버 프로그램 개발중 ===
동문서버 프로그래밍 팀의 인수인계용으로 이용되었었다. PP를 주로 하고 한두번의 VPP를 했다. 해당 소스를 같이 만들어가면서 기존의 프로그램을 설명했다.
Expert : Junior . 즉, 해당 분야에 대한 전문가 : 초심자 의 문제이다. 이 경우 그 진행이 늦어질 수 있다. (Expert : Expert는 최고의 효율성을 가진다. 물론 이것도 열린 마음을 바탕으로 한다. Junior : Junior 도 나름대로(?) 빨리 움직인다. (제대로 움직인다는 보장은 못한다. -_-;)) 그리고 Expert가 해당 프로그래밍에 대한 답 (코드)을 이미 알고 있는 경우 Expert의 집중도와 긴장감을 해치게 된다.
이 때에는 Expert는 놀지말고 (-_-;) Observer의 역할에 충실한다. Junior 의 플밍하는 부분을 보면서 전체 프로그램 내의 관계와 비교해보거나, '자신이라면 어떻게 해결할까?' 등 문제를 제기해보거나, reference, 관련 소스를 준비해주는 방법이 있다.
또 하나의 문제점으로 제기된 것은, Junior 가 Expert의 권위에 눌릴 수 있다는 것이다. Junior 는 질문에 용감해야 한다. Expert는 답변에 인색해서는 안된다. 열린 마음이 필요한 일이다. (Communication 과 Courge 는 XP 의 덕목이다. ^^)
전문가라 하더라도 프로그래밍의 실력과 다른사람에게 답변해주는 능력은 다르다. 커뮤니케이션 능력은 실제 도메인에 대한 지식과는 다를 수 있다. Expert 는 Junior 에게 설명을 해줌으로서 기존의 지식에 대한 정리를 해 나갈 수 있다. Junior 는 혼자서 삽질하는 것보다 더 빨리 필요한 지식에 대해 접근할 수 있다.
간단한 아날로그 시계를 만드는 프로그램이였다. MFC + CppUnit 로 작업했다.
* Pair 의 진행을 이끌어가는 것 - 프로그래밍의 흐름이라고 해야 할까. 디자인을 어느정도 선정도로 맞추고 어떠한 문제를 풀 것인가에 대한 약간의 선이 필요할 것 같다. 이 경우에는 초반 디자인이 허술했었다는 약점이 있었다. '전체적인 관점에서 무엇무엇을 하면 프로그램이 완성될 것이다' 라는 것. UserStory 만 생각하고 EnginneringTask 를 간과한 것이 큰 문제였다. (그때 EnginneringTask 에 대한 개념이 없었었다는. 어디서 함부로 주워만 지식. --; 사고를 하자 사고를. -_-)
* Pair 의 분배 - TFP를 공부하느냐고 시작한 것이였던지라, 상대적으로 CppUnit 에 익숙하지 않은 사람에게 코딩을 주도하게 했다. 한 1주일정도 되는 프로젝트라면 Junior로 하여금 경험을 쌓게 함으로써 오히려 장점으로 작용할 수도 있을 것 같다. 하지만, 역시 적절하게 분배를 했었어야 할 것 같다.
* 집단 삽질. --; - 이것은 헤프닝이라고 보는 것이. -_-;; Test Code 에서 둘이 라디안 구하는 공식을 거꾸로 쓰고 '왜 값이 틀리다고 하는거야!' 하며 1시간을 삽질했다는 후문이 있다는. --;
* 하지만 UnitTest도 그렇듯이, 많은 장점을 가진 방법을 완벽하지 않다는 이유로 사용하지 않는다는 것은 아쉬운 일일 것이다.
* 아직은 효율성이.. - 일종의 Learning Time 이라고 해야 할까? 대부분 실험에서 끝난다는 점. 퍽 하고 처음부터 효율성을 극대화 할 순 없을 것이다. 참고로 이때는 아날로그 시계 만드는데 거의 3시간이 걸렸다. Man-Hour 로 치면 6시간이 된다.
- 데블스캠프2002/진행상황 . . . . 117 matches
강사/진행자들의 후기 페이지입니다. 이 또한 ["ThreeFs"] 를 생각하기 바랍니다. 오늘의 글들이 다음날, 또는 내년에 쓰일것임을 생각하시길. 그날 자신이 했던 일들 (또는 다른 사람이 했던 일들)을 확인하고, 그에 대해서 무엇이 잘되었는지, 왜 잘되었는지, 무엇이 잘 안되었는지, 왜 안되었는지를 확인하고, 앞으로의 대안을 생각해보도록 작성합시다.
* 목요일의 ["RandomWalk2"] 에 대해서 다시 CRC 디자인 세션과 구현시간을 가져보았다. (["ScheduledWalk/재니&영동"], ["ScheduledWalk/창섭&상규"]) 이번에는 신입회원팀과 기존회원팀으로 나누어서 디자인 세션을 가지고, 팀별로 구현을 하였다. (신입회원 팀에서의 클래스 구현에서는 1002가 중간 Support)
* 남훈아 수고 했다. 후배들에게는 당근 어려웠겠지만, 개인적으로는 유익했던지라; ^^; traceroute 의 원리 설명은 정말; TCP/IP 동영상을 먼저보여주는게 더 쉬웠을려나 하는 생각도.
* 마지막 날에 온 사람이 3명. 그리고 문제를 푸는데 참여한 사람이 2명 밖에 안남았다는 점은 데블스캠프를 준비한 사람들을 좌절하게 한다. 그나마 한편으로 기뻤던 점은, 아침 7시가 되도록 컴퓨터 하나를 두고 서로 대화를 하며 RandomWalk를 만들어가는 모습을 구경했다는 점. 그 경험이 어떻게 기억될지 궁금해진다.
* 화이트 보드 - 목요일 세미나 이후 화이트보드를 5층 피시실에 그냥 두었다. 처음엔 들고 갈까 했었다가 귀찮아서 두었는데, 중간에 후배가 어제 배운 내용에 대해 질문했을 때 '오. 마침 화이트보드가 있네?' 어제 했었던 방법으로 적어나가면서 편리함을 느꼈다.
피시실에 컴퓨터만 바꿀 것이 아니라, 화이트보드를 놓는 것도 좋은 피시실 환경을 제공하는데 도움을 주리라 생각한다. (과 사무실에서 디지털 카메라를 빌릴 수 있다면 더더욱 좋겠다. 화이트보드로 아이디어를 적고, 디지털 카메라로 찍어서 바로 올리고..)
* 세미나나 스터디를 준비할때 앞 세미나의 흐름이 연결되었을 경우 그 진행이 더 쉽다. 앞에서의 세미나 내용을 이용하여 설명하면 강사나 학습자나 서로 시간낭비를 줄일 수 있으니까. 추후 이러한 세미나 준비를 할때 그 체계성을 고려해야 할 것이다.
이번 세미나의 부제를 단다면 "우리는 어떻게 사고하고 어떤 과정으로 프로그래밍 하는가" 정도가 될 것이다. 지금 학생들의 프로그래밍 과정과 사고 과정을 밖으로 끄집어 내어서 함께 관찰하고, 함께 논의할 수 있도록 했고, 동시에 선배/전문가들의 사고 과정과 프로그래밍 과정을 직접 보여주어서 그 차이를 느끼고, 거기서 학습이 일어나도록 했다.
우리는 수학문제에 대해 달랑 답만 달아놓으면, 설령 답이 맞더라도 "과정이 없다"고 문제를 틀리기도 한다. 프로그램은 최종적인 "답"이다. 우리는 그 답이 나오는 과정에 너무도 무관심하다.
* OOP를 바로 설명하기 전에 나의 프로그래밍 사고 방식을 깨닫고, StructuredProgramming 의 경우와 ObjectOrientedProgramming 의 경우에는 어떠한지, 그 사고방식의 이해에 촛점을 맞추었다.
* 일단 지난시간에 만들었었던 RandomWalk 의 스펙을 수정한 RandomWalk2 를 사람들로 하여금 풀게 한뒤, 그 중에 완성한 두명을 뽑아 (상규와 현민) 자신이 어떻게 프로그래밍을 했는지에 대해 창준이형의 진행으로 질답을 하면서 설명해나갔다. 그리고 코드를 프로젝터와 노트북을 이용, 신피의 벽에 비추며 설명하였다. (["RandomWalk2/상규"], ["RandomWalk2/현민"])
* StructuredProgramming - 창준이형이 역사적인 관점에서의 StructuredProgramming에 대해 설명을 하셨다. 그 다음 ["1002"]는 ["RandomWalk2"] 문제에 대해서 StructuredProgramming을 적용하여 풀어나가는 과정을 설명해 나갔다. (원래 예정의 경우 StructuredProgramming 으로 ["RandomWalk2"] 를 만들어가는 과정을 자세하게 보여주려고 했지만, 시간관계상 Prototype 정도에서 그쳤다)
* ObjectOrientedProgramming - ["RandomWalk2"] 에 대해서 창준이형과 ["1002"] 는 서로 이야기를 해 나가면서 하나씩 객체들을 뽑아내가는 과정을 설명했다. 일종의 CRC 카드 세션이었다. 그러고 나서는 프로젝터를 통해, 직접 Prototype을 만들어 보였다. OOP/OOAD로 접근하는 사람의 사고방식과 프로그래밍의 과정을 바로 옆에서 관찰할 수 있었다.
* ["RandomWalk2"] 를 ObjectOrientedProgramming 으로 구현하기 - 위의 Python 관련 실습동안 ["1002"] 는 ["RandomWalk2"] 에 대해서 C++ Prototype을 작성. (["RandomWalk2/ClassPrototype"]) 이를 뼈대로 삼아서 ["RandomWalk2"] 를 작성해보도록 실습. 해당 소스에 대한 간략한 설명, 구현의 예를 설명. 중간에 객체들에 대한 독립적인 테스트방법을 설명하면서 assert 문을 이용한 UnitTest 의 예를 보였다.
Python으로 만든 스타크래프트 놀이는 참가자들이 무척이나 좋아했다. 또 그 직전에 Python Interactive Shell에서 간단하게 남자, 여자, 인간 클래스를 직접 만들어 보게 한 것도 좋아했다. 아주 짧은 시간 동안에 OOP의 "감"을 느끼게 해주는 데 일조를 했다고 본다.
또한, JuNe과 ["1002"]의 CrcCard 세션을 (마치 주변에 사람이 없는 듯 가정하고) 보여줬던 것도 좋은 반응을 얻었다(원래는 ["1002"]가 혼자 문제를 푸는 과정을 보여주려고 했다가 JuNe이 보기에 두 사람의 협력 과정을 보여주는 것도 좋을 듯 했고, 분위기가 약간 지루해 지거나 쳐질 수 있는 상황이어서 중간에 계획을 바꿨다.) 선배들이 자신이 풀어놓은 "모범답안"으로서의 코드 자체를 보여주는 것은 했어도 분석하고 디자인하고, 프로그래밍 해나가는 과정을 거의 보여준 적이 없어서, 그들에게 신선하게 다가간 것 같다.
또, 동일 문제를 여러번 하는 것의 교육적 효과를 다시금 확신하게 되었다. 내용이 이어지고 연계가 되니, "현재의 주제를 벗어난 것들에 에너지를 덜 소모하면서" 많은 학습이 가능했다. 최소한 문제를 매번 새로 설명하고, 그걸 이해시키게 하는 시간은 주제가 바뀔 때마다 아낄 수 있었다.
참가자들 중 대표로 몇 명의 코드를 프로젝터를 통해 직접 보면서 하나 하나 짚어 나갔다. 그 사람이 어떤 순서로 프로그램을 만들었고, 어떤 의도에서 이걸 이렇게 했는지. 한 줄 한 줄 정말 "많은 것을 가르쳐주고, 배울 수 있겠다" 하는 생각이 들었다. 우리는 "교사/정답에게서만 배운다"는 사고에서 자유로워질 필요가 있다.
과정을 의식하고 행한다는 것은 그런것 같다. 문제 SPEC을 받았을때부터 코드의 끝까지. 잘못된 부분을 의식하지 않으면 끝까지 고칠수 없다. 문제 자체가 드러나지 않으면 문제를 풀 수 없으니까. 문제가 나를 지배하기 전에 내가 문제들을 지배하려면. 하나하나 나의 제어영역으로 들어오도록 해야겠다. 이름상으로는 세미나의 진행자로 올랐지만, 이 시간만큼 나는 세미나 진행자인 동시에 배우는 사람일 수 있었다.
* '''Pair Teaching''' 세미나를 혼자서 진행하는게 아닌 둘이서 진행한다면? CRC 디자인 세션이라던지, Structured Programming 시 한명은 프로그래밍을, 한명은 설명을 해주는 방법을 해보면서 '만일 이 일을 혼자서 진행했다면?' 하는 생각을 해본다. 비록 신입회원들에게 하고싶었던 말들 (중간중간 팻감거리들;) 에 대해 언급하진 못했지만, 오히려 세미나 내용 자체에 더 집중할 수 있었다. (팻감거리들이 너무 길어지면 이야기가 산으로 가기 쉽기에.) 그리고 내용설명을 하고 있는 사람이 놓치고 있는 내용이나 사람들과의 Feedback 을 다른 진행자가 읽고, 다음 단계시 생각해볼 수 있었다.
- 새싹교실/2012/세싹 . . . . 117 matches
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
3) Virtualbox실행 -> 새로 만들기 -> 운영체제 : Linux 버전 : Ubuntu -> 메모리1024MB로 설정하고 나머지 디폴트 설치
4) 만들어진 ubuntu 실행 -> 설치 미디어로 ISO파일 마운트 -> 설치
(설치 도중에 설정해줘야되는 것 : 글자판 배치를 한국어(101/104키 호환)으로 해야됨!)
* gcc로 hello world를 컴파일 해보았습니다.
2) 원하는 경로에 빈 문서 만들기 (확장자는 .c로 해주세요)
4) terminal 실행 -> .c 파일이 있는 경로로 이동 (ls와 cd를 이용합니다.)
5) gcc로 컴파일을 합니다. (gcc 파일명.c -o 원하는파일명 -std=c99) 해당 예제외에 추가로 여러 옵션을 줄수 있습니다.
1) 자기 페이지 만들기 - 로그인후 자신의 이름으로 검색하여 페이지를 작성하시면 됩니다. 기본적인 프로필과 하고싶은말을 적어주세요.
1) virtual box로 linux 설치 후 hello world 작성하고 컴파일하여 스크린샷을 강사 메일로 보내주세요.
* 새싹 첫시간을 가졌습니다. 다른 새싹반들과는 다른 커리큘럼으로 진행을 해야해서, 무엇을 수업해야할지 고민이 많습니다(멘붕 일보직전). 학교수업 듣는것처럼 하지말고 자유로운 분위기에서 진행되면 좋겠습니다. - [정의정]
* 새싹 첫시간을 가졌습니다. 캡스톤실도 처음 들어가봐서 많이 신기했습니다. 처음 듣는 용어, 처음 보는 화면들 생소한게 많지만 재미있을 것 같아서 기대가 됩니다. 숙제도 권장사항도 열심히 해보겠습니다. 앞으로 잘 부탁드립니다. - [권영기]
* 새싹 첫시간을 가졌습니다. 이곳 Wiki가 매우 흥미로웠고, 캡스톤실에 대해서도 궁금점을 해소하여 좋았습니다. 이름만 들어보고 좀처럼 볼 일이 없던 것들을 보게되어 좋았습니다. 앞으로 잘 부탁드립니다. - [김희성]
* 숙제를 수행하기 위해 버추얼 박스를 설치하였습니다. 설치파일이 정상적으로 실행 않는 문제가 있었는데 인터넷으로 강제 압축해제하는 방법을 듣고 7z으로 압축을 해제하는 방법으로 해결하였습니다. 데몬이 없어 iso파일도 7z으로 풀었습니다. - [김희성]
* 어... iso파일을 풀필요없이 버추얼박스에서 바로 마운트시키는건데.. 제대로 설치됬어? - [정의정]
* 그리고 실패하였습니다. 7z 젠장... 여러단계를 한번에 풀어주는거 같군요. 메뉴얼을 읽어보니 cmd로 풀라고 합니다. 시키는데로 하니 msi 파일이 나오는군요. -[김희성]-
* amd64버전을 쓰려고 했더니 cpu문제로 가상머신에서 설치되지 않는군요. i386버전으로 깔았습니다. -[김희성]
1) 우리가 사용하는 인터넷은 패킷 스위치 방식으로 소포에 주소를 써서 목적지에 보내는 것 처럼 작동하는 네트워크 입니다.
- 새싹교실/2012/startLine . . . . 112 matches
* 0과 1으로 어떻게 글자를 표현하는가(ASCII code).
* 처음이라 간단하게 하려고 변수와 연산에 대해서만 말을 했는데, 간단하게 하려고 하니까 너무 내용이 간단해져서 뭔지 모르는 사이에 내용이 다 끝나버렸습니다. 그렇다고 잘 했느냐고 하면 그것도 딱히 아닌 느낌이네요. 앞으로는 실습 위주로 하면서 조금 더 자세하게 진행을 해야 하지 않을까 싶습니다. 경우에 따라서는 완전히 다른 방법을 써야 할지도 모르겠지만... 어쨌든 아는 것과 가르치는 것은 다르다는 것을 새삼 느낀 시간이었습니다. - [서민관]
* 앞으로가 기대대요 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ - 박환희
* 일단 재현이가 기존에 C를 어느 정도 공부했는지를 확인하기 위한 시간이라 따로 과제를 준비하지 못 했음.
* 서민관 - 간단하게 재현이가 C문법 알고있는 부분 알아보기, 함수 만들어보기, 전체적인 계획 설명, gcc 사용법. 일단 제어문과 간단한 함수 문법까지도 알고 있는 것 같다. 어제 일도 있어서 긴장을 많이 했는데 그래도 생각보다 어렵지는 않았다. 앞으로는 좀 더 예제등을 준비해야겠다.
* 최재현 - 아는 범위를 확인하고 앞으로의 방향에 대해 얘기 했습니다. 다음에는 모르는 것들에 대해 배우고 아는 것은 확실히 배워야겠습니다.
* 제어문(조건문, 반복문)의 문법과 몇몇 주의해야 될 부분들(switch문의 break 사용, 반복문에서의 종료 조건 등).
* 중첩된 반복문으로 별 찍기 - 상당히 특이하게 반복문을 사용했다. 생각이 좀 좋은듯 -_-
* 박환희 - 오늘은 제어문에 대한 내용을 배웠고 느낌은 마음이 편하였고 제어문에는 이러한 종류가 있다는것을 알았고 앞으로 문법을 좀더 익혀야겠다는것을 생각했습니다.
* 서민관 - 제어문의 사용에 대한 수업(if문법, switch.. for...) 몇몇 제어문에서 주의해야 할 점들(switch에서의 break, 반복문의 종료조건등..) 그리고 중간중간에 쉬면서 환희가 약간 관심을 보인 부분들에 대해서 설명(윈도우 프로그래밍, python, 다른 c함수들) 저번에 생각보다 진행이 매끄럽지 않아서 이번에도 진행에 대한 걱정을 했는데 1:1이라 그런지 비교적 진행이 편했다. 그리고 환희가 생각보다 다양한 부분에 관심을 가지고 질문을 하는 것 같아서 보기 좋았다. 새내기들이 C를 배우기가 꽤 힘들지 않을까 했는데 의외로 if문이나 for문에서 문법의 이해가 빠른 것 같아서 좀 놀랐다. printf, scanf나 기타 헷갈리기 쉬운 c의 기본문법을 잘 알고 있어서 간단한 실습을 하기에 편했다.
* 간단한 이전 시간(if문, 반복문)의 복습과 배열의 사용에 대해 알아보았다. 그리고 이번 시간에 주로 한 내용은 함수가 왜 필요한지와 함수를 만드는 법, 함수를 사용하는 법 등이었다. 개인적으로는 함수를 꽤 중요하게 생각하는 만큼 함수의 필요성을 잘 캐치해 줬으면 좋겠다. 그리고 새삼 드는 생각이지만 환희의 질문이 중요한 부분을 잘 찌른다는 생각이 든다. 별다른 언급도 없었는데 함수 내에서 변수의 scope나 함수 내부의 이름 겹침 등에 대한 질문이 있었다. 그리고 중간에 함수 사용의 예제로 printf문을 약간 이상하게 쓴 코드를 보여줬는데 의외로 감을 잘 잡은 것 같았다. 현재 진행상황으로는 다음에 포인터를 다뤄야 할텐데 함수를 쓰는 것을 조금 더 연습을 시킬지 바로 포인터를 나갈지 고민이다. 당장 포인터를 했다가 어려워하지 않을까 모르겠다. - [서민관]
- 숫자를 받아 큰 수대로 정렬
* 포인터의 개념, 프로그램 실행시 메모리의 구조.
* 처음에 간단하게 재현, 성훈이의 함수에 대한 지식을 확인했다. 그 후에 swap 함수를 만들어 보고 실행시의 문제점에 대해서 이야기를 했다. 함수가 실제로 인자를 그대로 전달하지 않고 값을 복사한다는 것을 이야기 한 후에 포인터에 대한 이야기로 들어갔다. 개인적으로 새싹을 시작하기 전에 가장 고민했던 부분이 포인터를 어떤 타이밍에 넣는가였는데, 아무래도 call-by-value의 문제점에 대해서 이야기를 하면서 포인터를 꺼내는 것이 가장 효과적이지 않을까 싶다. 그 후에는 주로 그림을 통해서 프로그램 실행시 메모리 구조가 어떻게 되는지에 대해서 설명을 하고 포인터 변수를 통해 주소값을 넘기는 방법(call-by-reference)을 이야기했다. 그리고 malloc을 이용해서 메모리를 할당하는 것과 배열과 포인터의 관계에 대해서도 다루었다. 개인적인 느낌으로는 재현이는 약간 표현이 소극적인 것 같아서 정확히 어느 정도 내용을 이해했는지 알기가 어려운 느낌이 있다. 최대한 메모리 구조를 그림으로 알기 쉽게 표현했다고 생각하는데, 그래도 정확한 이해도를 알기 위해서는 연습문제 등이 필요하지 않을까 싶다. 성훈이는 C언어 자체 외에도 이런저런 부분에서 질문이 많았는데 아무래도 C언어 아래 부분쪽에 흥미가 좀 있는 것 같다. 그리고 아무래도 예제를 좀 더 구해야 하지 않을까 하는 생각이 든다. - [서민관]
* 포인터의 기초와 포인터를 이용한 swap 함수 구현, 값 변환. 그리고 malloc의 형태 기초와 좀 더 쉽게 쓰는 법 익힘. 다음엔 malloc을 이용한 응용프로그램 구현을 해보고 싶다. - [최재현]
* 포인터의 개념, 프로그램 실행시 메모리의 구조.
* 추가적으로 환희의 질문들에 대한 대답과 기타.
* 개인적으로 현재 시점에서 과제를 낸다면 C의 문법을 익히기 위한 과제를 준비할 것 같은데 환희가 현재 시점에서 C 문법을 나름대로 잘 쓰는 만큼 그렇게까지 무리해서 과제를 낼 필요는 없지 않을까 싶다. 사실 언제쯤부터 어떤 과제들을 내야 할지 정확히 감이 안 잡히는 것도 있지만... - [서민관]
* 저번시간에 했던 swap 함수에 대해서 간단하게 복습을 하고 swap 함수의 문제점에 대해서 짚어보았다. 그리고 포인터의 개념과 함수에서 포인터를 사용하는 방법 순으로 진행을 해 나갔다. 새삼 느끼는 거지만 call-by-value의 문제점을 처리하기 위해서 포인터를 들고 나오는 것이 가장 직접적으로 포인터의 필요성을 느끼게 되는 것 같다. 그리고 개념의 설명을 하기에도 편한 것 같고. 그 후에는 포인터에 대한 부분이 일단락되고 성훈이나 재현이처럼 malloc이나 추가적인 부분을 진행할 예정이었는데 환희가 함수의 사용에 대해서 질문을 좀 해 오고 그 외에도 약간 다른 부분을 다루다 보니 진도가 약간 늦어졌다. 그래도 포인터에서는 이해가 가장 중요하다고 생각하는 만큼 조금 천천히 나가는 것도 괜찮다고 본다. 그리고 앞으로의 목표는 일단 처음에 잡아둔 목표까지 무사히 완주하는 것이다. 원래 첫 진도 예정에 다양한 것들이 담겨있는 만큼 목표만 이루어도 충분히 괜찮은 C 실력이 길러지지 않을까 싶다. - [서민관]
메모리 구조 + 주소 - 변수 선언시 그 변수의 주소 + 값의 이야기...인데 그림으로 설명해주셔서 쉽게 이해했습니다. - [박환희]
- 이영호/64bit컴퓨터와그에따른공부방향 . . . . 108 matches
현재 머리가 제정상은 아니지만 다시 다른 충격적인 것을 목격한바 짧은 고민 끝에 공부 방향을 바꾸기로 했다.
이 경로를 거쳐 컴퓨터를 접해온 사람들의 실력은 현재로 생각하면 굉장하다.
내가 이러한 방식으로 공부를 하면 그들을 따라 잡을 수 있을까? 결코 불가능하다.
컴퓨터 구조를 자세히 알고 어셈블리를 자유자재로 다루며 그러한 실력으로 32비트
결국 공부는 새롭게 해야하며 32비트의 지식들은 역사의 뒤안길로 자리잡게된다.
때문에 완전한 64bit 체제가 자리 잡기 전까진 32비트 체제의 지식을 내것으로 만들어야한다.
하지만 많은 양이므로 불가능 하다. 그전에 64bit체제가 완성 될 것이므로.
앞으로 내가 걸을 길은 그들과 같은 길을 걷는 것이다.
OS를 만들기도 하겠으며, 저 사람들과 같은 MDir Clone, Graphics, Sound 등 모든 것을 Assembly로 해내겠다.
몇가지 질문을 한다면 (활동 영역을 아마 시스템 프로그래머 분야로 잡은 것 같아서, 좋아하는 분야를 공부하는 것에 대해서는 큰 이견이 없습니다.)
* 32비트에서 64비트 컴퓨터로 바뀔 경우, 어플리케이션 개발자들의 경우 기존 개발 방식에서 많은 차이가 생길까요? 32비트에서 64비트 컴퓨터로의 전환이 개발자들의 페러다임의 전환을 의미할까요?
* C++ 혹은 더 나아가 C++ 보다 속도상으로 느린 스크립트 언어를 쓰는 사람은 C++ 개발자들보다 덜 우수할까요? (위의 Assembly > C++ 로 평가한것으로 봐서는, 퍼포먼스와 하드웨어 제어 용이성 관점에서 Assembly 를 평가한 것 같습니다만) C++ 개발자들 혹은 더 나아가서 Java 나 Python 과 같은 개발자들이 Assembly 와 같은 low level 제어성을 포기하는대신 얻어간 것은 어떤 것일까요?
└저도 C (배우게 된다면 Assembly도.ㅎ)를 좋아 합니다.ㅎ 무엇보다 빠른 연산속도와 하드웨어 제어(해본적은 없지만), 포인터를 통한 메모리 접근등 좋은 점이 많아요.^^* 그렇지만 예를 들어 1만 팩토리얼을 출력하는 프로그램을 작성하시오. 라고 문제가 주어졌을때, C로 짜면 한나절이지만 파이썬으로 작성하게 되면 5분도 안걸리게 됩니다. 물런 연산속도가 느리기는 하지만 말입니다.^^ 이런 점에서 봤을때, 속도가 중요하다거나 특화된 프로그램을 작성해야할 경우에는 C와 같은 언어가 좋지만 보편적으로 사용하는 워드프로세서라든지 기타 응용프로그램이나, 제작해야할 프로그램의 제작시간이 짧을 경우에는 상위레벨의 언어가 좋을거라고 봅니다.^^ 뭐 이렇게 말은해도.. 사실 서로의 장점을 그때그때 맞춰서 섞어쓰는게 가장 좋지 않을까요?ㅎ (게임을 만들때 하위레벨의 언어로 하드웨어를 직접 사용한다 하더라도, 다이렉트를 이용하지 각각의 그래픽 카드에 맞춰서 프로그램을 만들지 않는것과 비슷한것 같아요.^^) 이상 지나가는 행인1의 잡다한 생각이었습니다.^^* - [조현태]
음. 아쉽게도 그런 용도로 Assembly를 평가 한게 아닙니다. 우수하고 못하다의 평가는 여기서도 나오는군요. 한가지만 파면 성공한다와 같은 맥락이랄까요... 저는 미래의 직장보다도 현재의 지식욕을 채우고 싶을 뿐입니다. 누구보다도 이것에 대해 많이 알고 싶고 또한 그렇게 되길 바랄뿐입니다. 과연 Java나 Python등을 공부하다보면 컴퓨터에 대한 가장 기초적인 지식들을 얻기 쉬울까요? 그렇기 때문에 Assembly에 대한 직접적인 접근을 하려고 하는 것입니다. 지식욕이 아니더래도 현직에 계시는 프로그래머분들께 컴퓨터에 대한 기초가 부족하고 프로그램만 짤 줄 아는 신참 직원들은 항상 한계에 다다르면 좌절한다라는 말을 들은적이 있습니다. 한번쯤은 생각해 볼 문제입니다. Assembly > C++을 평가한 것은 이런 맥락입니다. 컴퓨터에 대한 기초가 있느냐 없느냐. Assembly를 만지고 C++을 만진 사람의 경우는 모르겠지만 C++만 만지고 Assembly를 공부하지 않은 사람의 한계는 언젠가는 드러나게 되죠.
전 어제 제가 평생 해도 따라가지 못할것 같은 사람을 보았습니다. 그 사람과의 벽이랄까요. 물론 그분이 연륜이 있으시지만 컴퓨터 자체에 대한 기초적이고 깊은 지식은 따라가질 못하겠습니다. 그분의 소싯적에 C언어로만 짠 프로그램들은 컴퓨터에 대한 깊은 이해가 없으면 불가능한 것들이었습니다. 그분이 Assembly를 배우지 않고 C를 처음부터 만졌다면 어땠을까요? 그런 프로그램들을 짤 수 있었을까요? 이상, 우물 밖으로 튀어나온 개구리였습니다.
(64 비트로 변할 때에는 프로그래머가 3가지 아키텍쳐(32비트 때에는 32비트 아키텍쳐 한가지)에 대한 것을 모두 생각해야하기 때문에 32비트만 취급할 수는 없겠죠. 호환성때문에. 결국 64비트 아키텍쳐에도 공부할 시간을 할애해야하고 32비트의 공부시간이 줄어든다는 말이었습니다.) - [이영호]
이러고 보니 현직 프로그래머들의 싸움이 되고 있군요. System 프로그래머와 일반 Application 프로그래머의 싸움. 한가지... 모두가 다 그런것은 아니겠지만, 전 Coder에 머무르고 싶지는 않습니다. 저 높은 수준까지는 아니더래도 Programmer로서 Guru정도의 위치에는 가고 싶군요. - [이영호]
그냥 시스템 프로그래머와 어플리케이션 프로그래머의 차이정도로만 생각하겠습니다. 언어 관련 논쟁과 다른 레이어간 논쟁에 대해서는 정말정말 재미없습니다. ^^ 의도하는 바도 아니고요. 단지, '시스템 프로그래머' 컨텍스트가 붙지 않았을 경우에는 다른 사람들에게는 좀 갸우뚱할 상황이여서 쓴 것일 뿐입니다. (그렇다고 시스템에 대한 이해의 중요성을 무시하려는것은 당연히 절대로 아니고요.)
참고로, 어플리케이션 개발쪽에서는 다른 이야기들이 이슈가 됩니다. 순수하게 프로그래밍 부분만을 생각한다면(조금 개인적인 생각이 짙습니다만)
* Global Optimization 관점에서, 어느 부분은 생산성을 살리고 어느 부분은 퍼포먼스를 추구할까? 퍼포먼스를 추구하는 모듈에 대해서는, 어떻게 하면 추후 퍼포먼스 튜닝시 외부 모듈로의 영향력을 최소화할까? (InformationHiding)
- CToAssembly . . . . 106 matches
마이크로컴퓨터 시스템의 구성요소가 무엇인가? 마이크로컴퓨터 시스템은 마이크로프로세서 장치 (microprocessor unit, MPU), 버스 시스템, 메모리 하위시스템, 입출력 하위시스템, 모든 구성요소들간의 인터페이스로 구성된다. 전형적인 대답이다.
이는 하드웨어만을 고려한 것이다. 모든 마이크로컴퓨터 시스템은 하드웨어 구성요소들의 작업을 지시할 소프트웨어가 필요하다. 컴퓨터 소프트웨어는 시스템측(시스템 소프트웨어)과 사용자측(사용자 소프트웨어)으로 구분할 수 있다.
프로그램을 실행하기위해 필요한 함수들을 모아둔 기본 라이브러리나 사용자가 만든 라이브러리는 사용자 소프트웨어에 포함된다.
고급언어 변환기, 어셈블러, 편집기, 다른 프로그램을 만드는 작업을 돕는 프로그램들이 시스템 소프트웨어에 속한다. 우리는 이미 프로그래밍에는 기계어, 어셈블리어, 고급언어 세 단계가 있음을 안다.
기계어 프로그램은 컴퓨터가 이해하고 직접 실행할 수 있는 프로그램이다. 어셈블리어 명령어는 기계어 명령어와 보통 일대일 관계로 대응하지만, 우리가 쉽게 이해할 수 있는 문자열을 사용한다. 고급언어 명령어는 영어에 매우 가까워서 프로그래머가 생각하는 방식과 자연스럽게 대응한다. 결국 어셈블리어나 고급언어 프로그램은 변환기라는 프로그램에 의해 기계어로 변환되야 한다. 이 변환기를 각각 어셈블러(assembler), 컴파일러(compiler) 혹은 인터프리터(interpreter)라고 한다.
C/C++같은 고급언어의 컴파일러는 고급언어를 어셈블리코드로 변환할 수 있다. GNU C/C++ 컴파일러의 -S 옵션은 프로그램 소스에 해당하는 어셈블리코드를 생성한다. 반복, 함수 호출, 변수 선언과 같은 기본적인 구조가 어셈블리어로 어떻게 대응하는지 알면 C 내부를 이해하기 쉽다. 이 글을 이해하기위해서는 컴퓨터구조와 Intel x86 어셈블리어에 익숙해야 한다.
먼저 hello world를 출력하는 간단한 C 프로그램을 작성하고, -S 옵션으로 컴파일한다. 입력파일에 대한 어셈블리코드를 얻을 수 있다. GCC는 기본적으로 확장자 `.c'를 `.s'로 변경하여 어셈블러파일명을 짓는다. 어셈블러파일 끝의 몇줄을 해석해보자.
80386 이상 프로세서에는 많은 레지스터와 명령어, 주소지정방법이 있다. 그러나 간단한 명령어 몇개만 좀 알아도 GNU 컴파일러가 만드는 코드를 충분히 이해할 수 있다.
일반적으로 어셈블리어 명령어는 라벨(label), 연상기호(mnemonic), 연산수(operand)로 구성된다. 연산수 표시방법에서 연산수의 주소지정방식을 알 수 있다. 연상기호는 연산수에 저장된 정보에 작업을 한다. 사실 어셈블리어 명령어는 레지스터와 메모리위치에 작업을 한다. 80386계열은 eax, ebx, ecx 등의 (32비트) 범용레지스터를 가진다. 두 레지스터, ebp와 esp는 스택을 조작할때 사용한다. GNU Assembler (GAS) 문법으로 작성한 전형적인 명령어는 다음과 같다:
목록 1은 first.s 파일에 저장한 우리의 첫번째 어셈블리어 프로그램이다.
cc first.s 명령어를 실행하면 이 파일을 어셈블하고 링크하여 a.out을 만든다. GNU 컴파일러 앞단 cc가 `.s' 확장자를 어셈블리어 파일로 인식하여, 컴파일단계를 생략하고 어셈블러와 링커를 부른다.
프로그램의 첫번째 줄은 주석이다. 어셈블러 지시어 .globl은 심볼 main을 링커가 볼 수 있도록 만든다. 그래야 main을 호출하는 C 시작라이브러리를 프로그램과 같이 링크하므로 중요하다. 이 줄이 없다면 링커는 'undefined reference to symbol main' (심볼 main에 대한 참조가 정의되지않음)을 출력한다 (한번 해봐라). 프로그램은 단순히 레지스터 eax에 값 20을 저장하고 호출자에게 반환한다.
다음 목록 2 프로그램은 eax에 저장된 값의 계승(factorial)을 계산한다. 결과를 ebx에 저장한다.
je L2 //0==eax 이면 L2로 건너뜀 (je - jump if equal)
jmp L1 // L1으로 무조건 건너뜀
복잡한 프로그램을 만들때 우리는 해결할 문제를 체계적으로 나눈다. 그리고 필요할때마다 호출할 함수를 작성한다. 목록 3은 어셈블리어 프로그램의 함수 호출과 반환을 보여준다.
call 명령어는 실행을 함수 foo로 옮긴다. foo의 ret 명령어는 실행을 다시 main의 호출 다음에 나오는 명령어로 옮긴다.
일반적으로 함수는 함수가 사용할 변수들을 정의한다. 이 변수들을 유지하려면 공간이 필요하다. 함수 호출시 변수값을 유지하기위해 스택을 사용한다. 프로그램 실행중에 반복되는 재귀호출시(recursive call) activation record가 유지되는 방법을 이해하는 것이 중요하다. esp나 ebp같은 레지스터 사용법과 스택을 다루는 push와 pop같은 명령어 사용법은 함수호출과 반환방식을 이해하는데 중요하다.
프로그램의 메모리 일부를 스택으로 사용하기위해 비워두었다. Intel 80386 이상의 마이크로프로세서에는 스택 최상위 주소를 저장하는, 스택포인터(stack pointer)라는 esp 레지스터가 있다. 아래 그림 1은 스택에 저장된 세 정수값 49, 30, 72를 보여준다 (정수는 각각 4 바이트를 차지한다). esp 레지스터는 스택 최상위 주소를 저장한다.
위로 쌓여가는 벽돌과 달리 Intel 컴퓨터의 스택은 아래방향으로 자란다. 그림 2는 명령어 pushl $15를 실행한후 스택을 보여준다.
- 시간관리인생관리/요약 . . . . 106 matches
- 성공적으로 완수하면, 다음날 할 또 다른 일을 정하고 약간만 더 어렵게 하라. 충분히 그 일을 할 수 있어야 한다.
- 성공적으로 완수 못하면, 다음 날의 일을 더 쉬운 것으로 정해서 충분히 할 수 있게 만들어라.
- 이렇게 하면 언젠가는 매일 정말로 어려운 일을 정해서 능숙하게 처리할 수 있다. 다음 단계로 넘어가라
- 난이도 높이기에 익숙해지만, 다시 일의 갯수를 늘려서 단계 2를 재귀적으로 실행하라.
* 삶을 성공적으로 관리하는 사람들은 그렇지 못한 사람들과 아주 다르게 일을 한다.
|| 상대적으로 스트레스를 덜 받지만,|| 늘 스트레스에 시달린다. ||
|| 행동으로 두려움에 반응하지만, || 회피로써 두려움에 반응한다. ||
* 바쁜 상태는 종종 보다 중요하고 도전적인 문제들로 다루지는 않으려는 상태이다.
* 저항을 극복하는 법을 배우면 능력을 최대한도로 발휘할 수 잇다.
* 새로운 다짐을 할 때마다 당신은 현재 하고 있는 무언가를 중단해야 함을 기억하라.
* 어떤 요구에도 처음에는 본능적으로 'No'라고 이야기 하라.
* 중립적인 목소리로 'No'라고 말하는 법을 배워라.
1. 삶에서 추구하는 다짐과 활동의 분야들을 목록으로 작성하라. 공사를 포함하고 가능한 잘게 나누어서 모든 분야를 구분하라.
* 모든 항목에 '''충분한''' 관심을 주어서 그것을 제대로 할 수 있게 해야 한다. 역시 합은 100이 되도록 하라
* 연습의 목적은 당신에게는 제한된 양의 관심밖에 없고, 제대로 할 수 있는 시간이 없는 활동에 관심을 쏟는 것은 무의미 하다는 점을 알게 하는 것이다.
* 연습을 마치면 당신에게는 모든 항목에 충분한 관심을 주어 그것이 제대로 수행되고 당신의 관심 합계가 100퍼센트를 넘지 않는 목록이 생기게 된다.
1. 앞으로 1주일 동안 해야 할 것들의 목록을 작성하라. 매일 같이 하는 것들과 하겠다고 늘 ㅁ라하지만 아직까지 하지 못한 것들을 포함시켜라.
1. 같은 목록을 가지고 이번에는 '''중요도'''에 따라 우선순위를 정하라. 중요도 순으로 내림차순 번호를 붙인다.
* 과거에 겪은 경험에 바탕해서 가능한 정직하게 이 질문에 답하고 목록을 보라. - 실제로 할것 같은가? 100% 60% 20%
* 예상대로 주말까지 성공적으로 수행항 항목들은 목록에서 지워라. 여수행하지 못한 항목들을 검토하고, 같은 수준의 중요도에 머물러 있다면 결코 수행되지 않는다는 사실을 받아들여라.
- MatrixAndQuaternionsFaq . . . . 105 matches
그래서 지금까지 단거는 아까우니까 그냥 두고. 나머지는 관두기로 했음다. ㅋㅋ
대신 이 내용을 tp로 만든거를 올리겠습니다. 글구 어떤 분이 쓰신 글.. 도 함께 올리도록 하지요.
This FAQ is maintained by "hexapod@netcom.com". Any additional suggestions or related questions are welcome. Just send E-mail to the above address.
Q44. How can I render a matrix?
3열로 보내면.. 흠.. 어떻게 될까?? -_-? ㅋㅋ; '''
For example, if a matrix M with order 4x4 exists, then the elements
4x4 matrices are used to perform high-end 3D animation. Operations
The performance differences between the two are subtle. If all for-next
loops are unravelled, then there is very little difference in the
'''보통 플로트 어레이 16개 잡거나 struct {float m11, m12, m13, m14, m21..., m43, m44} 식으루 마니 씁니다'''
If a 4x4 matrix is defined as:
Then the direction vector for each axis is as follows:
위에는 이 글에서 사용하는 방법대루 하면 저렇게 된다는 뜻이구.. 저는 Gl 에서 쓰는대루 좌->우로 한 행을 해석하는 방법으로 설명합니다.
x축은 첫번째 행 앞3개, y축은 두번째 행, z축은 세번째 행 과 연관될수 있죠.. 그래서 단위행렬의 경우 1000 0100 0010 0001 식으로 나오는데
However, this can only be performed if a matrix has an equal number
If the matrix M is defined as:
Then the transpose is equal to:
If the matrix is a rotation matrix, then the transpose is guaranteed
For example, if the 2x2 matrix M is added with the 2x2 matrix L then
For example, if the 2x2 matrix L is subtracted from the 2x2 matrix M then
- SmallTalk/강좌FromHitel/강의4 . . . . 104 matches
nosmokmoin 으로 변경시에 이 페이지가 에러가 발생하는 대표적인 예이다. 이 외에도
1.1. 프로그램과 프로그래밍 언어
1.3. Smalltalk 맛보기 프로그램
모두 Smalltalk로 프로그램을 짜는데 꼭 필요한 역할을 수행합니다.
떤 일을 하는지를 알아봄으로써, Smalltalk 환경의 특징들을 여러분이 간단
깊이 공부하지 못한 필자로써는 왜 transcript라는 낱말이 이 창에 붙게 되
창에 그대로 반영되기 때문이 아닌가 생각합니다.
로써 바로 Smalltalk 환경이 시작되는 것이고, 이 창이 닫힘으로써
고 해도 과언이 아닐 정도로, Smalltalk 환경이 실행되어 있다면 언제든지
프로그램을 실행하는데 중대한 잘못이 생겼다거나, 새로운 꾸러미를 불러왔
있습니다만, 그것은 조금 뒤로 미루겠습니다.
일터(workspace)란 Smalltalk 환경에서 알림판 다음으로 중요한 창입니다.
Smalltalk의 일터 또한 마찬가지입니다. 여기서 여러분은 기본적으로 글을
리고 프로그램의 어떤 부분을 만들기 전에 여기서 기본적으로 여러 가지 명
령을 내려봄으로써 논리를 세워 나갈 수도 있습니다.
새로운 일터를 만들기 위해서는 File > New 메뉴를 사용하거나, 도구 모음에
그리고 각각의 일터에 기록된 글들을 따로따로 저장하거나 불러올 수 있습니
다. 그러므로 어떤 명령을 실행한 뒤에 나타나는 여러 가지 결과와 더불어
여러분이 내린 명령을 따로 하나의 파일로 저장해 둘 수 있다는 말입니다.
앞서 우리는 알림판에 지시를 내림으로써 우리가 원하는 글줄을 찍을 수 있
- TeachYourselfProgrammingInTenYears . . . . 104 matches
원문 : http://www.norvig.com/21-days.html (Peter Norvig 는 AI 분야에서 아주 유명한 사람. LISP 프로그래머로도 유명)
어느 책방에 발길을 옮겨도,「7일간으로 배우는 Java(Teach Yourself Java in 7 Days)」라고 하는 방법책을 보기 시작하고, 그 곁에는 Visual Basic 나 Windows 나 인터넷등에 대해서, 똑같이 몇일이나 수시간에 배울 수 있으면(자) 파는 책이, 무한의 바리에이션으로 나란해지고 있다.Amazon.com 그리고 이하의 조건으로검색해 보았는데,
248건의 히트가 있었다.그 중 위로부터 78권은 컴퓨터 관련의 서적이었다(79번째는「30일에 배우는 벵골어」).「날」을「시간」에 옮겨놓아 보았는데, 매우 잘 닮은 결과를 얻을 수 있었다.253권이 히트 해, 위로부터 77권이 컴퓨터 관련의 서적으로, 78번째는「24시간에 배우는 문법과 문체」였다.상위 200권 가운데,96%가 컴퓨터 관련 서적이었다.
결론으로서는, 누구나가 컴퓨터에 대해 배우는데 분주한가, 아니면 컴퓨터라는 것이, 다른 어떤 것보다, 배우는 것이 어찌 된 영문인지 믿을 수 없을 정도 쉽다고 하는 것이 된다.왜냐하면 몇일이나 수시간에 배우는 베토벤이든지, 료코 물리든지, 개의 조교라고 하는 책은 전무인걸.
배운다:3일간에서는, 의미가 있는 프로그램을 얼마든지 쓰거나 그 과정에서의 성공이나 실패로부터 배우는 시간 등 짝이 없다.경험을 쌓은 프로그래머와 함께 작업을 실시해, 그러한 환경안에서의 생활이 어떤 것인가를 이해하는 얼마 되지 않다.빠른 이야기, 대단한 일을 배울 시간이 없다고 하는 것이다.따라서 그러한 서적은, 외관만 정통하는 것에 대하여 말할 뿐으로, 깊은 이해에는 연결되지 않는다.알렉산더제가 말한 것처럼, 서투른 병법은 상처의 원이다.
Pascal:3일간으로, Pascal 의 문법을 배우는 것은 가능할지도 모르는(유사한 언어를 이미 알고 있으면)가, 그 문법의 이용법까지는 충분히는 배울 수 없다.즉, 예를 들면 당신이 Basic 프로그래머이다고 하여, Basic 스타일로 Pascal 의 문법을 이용한 프로그램의 쓰는 법을 배울 수 있을지도 모르지만, Pascal 가 실제의 곳, 무엇에 향하고 있을까(향하지 않은가)를 배울 수 없다.그런데 여기서의 포인트는 무엇일까? Alan Perlis(역주1) 은 일찌기, 「프로그래밍에 대한 생각에 영향을 주지 않는 것 같은 언어는, 아는 가치는 없다」라고 말했다.여기서 생각되는 포인트는, 당신이 Pascal(그것보다 어느 쪽일까하고 말하면 Visual Basic 나 JavaScript 등의 (분)편이 현실에는 많을 것이다)를 그저 조금 배우지 않으면 안 된다고 하면(자), 그것은 특정의 업무를 실시하기 위해서(때문에), 기존의 툴을 사용할 필요가 있기 때문일 것이다.그러나, 그러면 프로그래밍을 배우는 것으로는 되지 않는다.그 업무의 방식을 배우고 있을 뿐이다.
3일간:유감스럽지만, 이것으로는 충분하지 않다.다음 방향으로 해설한다.
=== 프로그래밍을 독습하려면 10년 걸린다 ===
연구자 (Hayes, Bloom)에 의하면, 체스, 작곡, 회묘, 피아노 연주, 수영, 테니스, 그리고 신경 심리학이나 위상 기하학의 연구를 포함한, 광범위한 분야의 머지않아에 대해서도, 전문 기술을 몸에 익히려면 대략 10년 걸린다고 한다.지름길 등 실재하지 않는 것 같다.4세로 해 음악의 신동이었던 모차르트조차, 세계적인 악곡을 만들어 내기까지 13년 이상의 시간을 필요로 했던 것이다.사뮤엘·존슨(역주2)는, 「어떤 분야에 있어도, 생애에 걸치는 노력 없애 뛰어난 것에는 달할 수 없다.그것보다 싼 대상으로 손에 넣을 수 없는 것이다」라고, 거기에는 10년 이상 걸린다고 생각했다.
여기서 프로그래밍으로 성공하기 위한, 나나름의 레시피를 소개하면(자):
프로그래밍에 흥미를 가져, 그것을 즐거움을 위해서(때문에) 할 것.그것이 충분히 즐거운 계속 것이면 , 10년이라도 기꺼이 계속할테니까.
다른 프로그래머와 이야기를 해, 타인의 프로그램을 읽는 것.이것은 어떠한 서적이나 트레이닝·코스보다 중요한 일이다.
프로그램을 쓰는 것.학습하는 최고의 방법은,실천에 의한 학습이다.보다 기술적으로 표현한다면, 「특정 영역에 있어 개인이 최대한의 퍼포먼스를 발휘하는 것은, 장기에 걸치는 경험이 있으면 자동적으로 실현된다고 하는 것이 아니고, 매우 경험을 쌓은 사람이어도, 향상하자고 하는 진지한 노력이 있기 때문에, 퍼포먼스는 늘어날 수 있다」(p. 366) 것이며, 「가장 효과적인 학습에 필요한 것은, 그 특정의 개인에게 있어 적당히 어렵고, 유익한 피드백이 있어, 게다가 반복하거나 잘못을 정정하거나 할 기회가 있는, 명확한 작업이다」(p. 20-21)의다(역주3).Cambridge University Press 로부터 나와 있는 J. Lave 의「Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life」(역주4)라고 하는 책은, 이 관점에 대한 흥미로운 참고 문헌이다.
만약 그러한 있고 것이라면, 4년간 대학에서(혹은 대학원에 가, 더욱) 배우는 것.그러면 성적 증명서를 필요로 하는 일자리에 접근하고, 그 분야에 도착해보다 깊은 이해를 얻게 된다.하지만, 학교를 즐길 수 없다고 한다면, (열의가 있으면) 일을 하는 과정에서 같은 체험을 얻을 수 있다.어느 경우이든, 책에 의한 학습만으로는 충분하지 않다.「컴퓨터·사이언스의 교육으로 누군가를 프로의 프로그래머로 하려고 하는 것은, 브러쉬나 그림도구에 대해 배우게 해 프로의 화가로 하는 것 같은 정도 어렵다」라고 The New Hacker's Dictionary(역주5) 의 저자인 Eric Raymond 는 말한다.내가 지금까지 고용한 중에서 최고의 프로그래머의 한 명(역주6)은, 고등학교까지 밖에 나오지 않았다.그렇지만, 그는 많은훌륭한소프트웨어를 만들어, 지금은 자신의뉴스·그룹까지 가지고 있어, 스톡옵션 덕분에, 틀림없이 내가 일생 걸려 벌 수 있는 것보다 좀 더 부자다.
프로젝트로, 다른 프로그래머와 함께 일하는 것.몇개의 프로젝트로, 제일의 프로그래머가 되는지, 그렇지 않으면 맨뒤의 프로그래머가 되는 것.당신이 제일이라면, 프로젝트를 지휘해, 다른 사람들에게 당신의 비전을 닦아 넣는 능력을 시험하게 된다.당신이 맨뒤라면, 달인이 할 것을 배워, 그들은 어떤 말하는 것을 하고 싶지 않은 것인지 알게 된다(그러한 일은 당신에게 시키려고 하기 때문에).
다른 프로그래머가 일을 끝낸후의프로젝트에 임하는 것.사람이 쓴 프로그램의 이해에 열중하는 것.원래의 코드를 쓴 프로그래머가 근처에 없는 경우, 그 프로그램을 이해하거나 고치거나 하려면 무엇이 필요한가 생각하는 것.당신의 프로그램을, 다음에 다른 사람이 메인트넌스 하기 쉽게 하려면 어떻게 디자인하면 좋은가 생각하는 것.
적어도 반다스의 프로그램 언어를 배우는 것.그 중의 하나는 클래스 추상을 서포트하는 것(예를 들면 Java 나 C++), 하나는 함수 추상을 서포트하는 것(예를 들면 Lisp 나 ML), 하나는 구문 추상을 서포트하는 것(예를 들면 Lisp), 하나는 선언적 기술을 서포트하는 것(예를 들면 Prolog 나 C++ 템플릿), 하나는 coroutine 를 서포트하는 것(Icon 나 Scheme), 그리고 하나는 병렬처리를 서포트하는 것(예를 들면 Sisal)인 것.
「컴퓨터·사이언스」안에, 「컴퓨터」가 있는 것을 잊어서는 안된다.컴퓨터가 하나의 명령을 실행하거나 메모리로부터 1 워드 읽어내거나(캐쉬에 들어가 있는 경우와 그렇지 않은 경우와), 디스크로부터 연속해 데이터를 읽어내거나 디스크상에 새로운 영역을 찾거나 하는데 어느 정도 시간이 걸릴까 알아 두는 것.(대답은 이쪽)
언어 표준화의 시도에 참가하는 것.ANSI C++ 위원회라면 그것이 생길 것이고, 가족에서의 코딩·스타일에 대해, 인덴트의 공백을 2 문자로 할까 4 문자로 하는가 한 레벨에서도, 결정하게 될 수 있다.어쨌건 간에, 다른 사람이 프로그램 언어의 어떤 곳을 좋아하는가, 얼마나 깊고 좋아하는가, 그리고 아마, 왜 그렇게 좋아하는가는 일도 조금, 배우게 된다.
가능한 한 빨리, 언어 표준화로부터 멀어지는 분별을 가지는 것.
- VonNeumannAirport/1002 . . . . 103 matches
언어는 C++ 로 할 것이고 중간에 STL 중 vector 를 간단하게 이용할겁니다. (자세한 이용법은 나도 모르는 관계로 -_-;) 일단 저는 이 문제를 한번 풀어본 적이 있습니다. 연습삼아서 새로 풀어봅니다.
이를 Target으로 잡으려니, 더 커보이고, 이를 작은 Test 로 나눠봅니다.
CPPUNIT_TEST_SUITE_END();
configuration 1,1 로 셋팅
1->1 로 1명 가기
CPPUNIT_TEST_SUITE_END();
int endCity;
Configuration (int startCity, int endCity) {
this->endCity = endCity;
void movePeople (int startCity, int endCity, int people) {
void movePeople (int startCity, int endCity, int people) {
configuration 1,1 로 셋팅
1->1 로 1명 가기 : traffic 1.
1->1 로 1명 더 가기 : traffic 2.
1->1 로 100명 더 가기 : traffic 102.
configuration {1,2},{1,2} 로 셋팅
1->2 로 1명 가기 : traffic 2.
에러가 난다. C++ 에서는 터플이 없으므로.. -_- 배열을 넘기는 방법이 있고, vector 를 이용하는 방법이 있습니다. 저번에는 배열로 했기 때문에 이번엔 vector 로 해본다는. ^^;
Configuration (vector<int> startCity, vector<int> endCity) {
this->endCity = endCity;
- 오목/진훈,원명 . . . . 103 matches
#if !defined(AFX_OMOKVIEW_H__5E50035A_B51D_11D7_8B86_00105A0D3B05__INCLUDED_)
#if _MSC_VER > 1000
#endif // _MSC_VER > 1000
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
#ifdef _DEBUG
#endif
#ifndef _DEBUG // debug version in OmokView.cpp
#endif
#endif // !defined(AFX_OMOKVIEW_H__5E50035A_B51D_11D7_8B86_00105A0D3B05__INCLUDED_)
#ifdef _DEBUG
#endif
END_MESSAGE_MAP()
// TODO: Modify the Window class or styles here by modifying
if (board[findX][findY] == 1)
else if (board[findX][findY] == 2)
if (turn == 1)
else if (turn == 2)
void COmokView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
#ifdef _DEBUG
#endif //_DEBUG
- BigBang . . . . 102 matches
* C/C++/Java 언어를 공부하고 서로간의 사용상 차이점과 공통적인 패턴 학습
* 서로 다른 세 언어를 마치 한언어처럼 쓸수 있게끔..
==== 프로그래밍 언어의 필수 요소 ====
==== c++의 "hello world" 프로그램을 뜯어보자 ====
cout<<"hello!"<<endl;
* #include, #define, #ifndef 등...
* 자바에서는 아닌것 처럼 보여도 사실 내부적으로는 비슷하다.
* endl
* 이걸로 프로그램이 제대로 끝났는지 판단한다.
* [http://thenine.egloos.com/430823 main 함수의 리턴값]
* long long 같은 경우에는 없을수도 있다.
* C는 bool이 없다!, c++은 있다. java는 boolean으로 사용한다. - C11은 있단다.
* 대부분의 경우 그냥 정수로 처리한다.
* c++에서도 0은 false로, 그외는 true로 간주된다. while(1) {}, while(true) {} 둘 다 가능
* C/C++/Java의 parameter는 call-by-value 형식으로 값을 전달한다.
* 포인터 값을 전달하는 Call-by-reference의 경우는, 포인터 값을 복사의 방식으로 전달하게 되므로, 일종의 call-by-value라고 볼 수 있다.
* 참조는 내부적으로 포인터를 이용한다.
* 함수 decorator : C++의 오버로딩을 하게 되면, 컴파일 타임에서 각각의 함수를 구분할 수 있도록 붙는 머릿말
* [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3485.pdf c++11(아마도?) Working Draft]의 7.5절 linkage specification 참고
* #ifndef NAME : #define NAME이 되어있지 않는 경우에 작동한다. 주로 헤더파일 중복 include를 막기 위해 사용한다.
- Gof/Mediator . . . . 101 matches
MediatorPattern은 객체들의 어느 집합들이 interaction하는 방법을 encapsulate하는 객체를 정의한다. Mediator는 객체들을 서로에게 명시적으로 조회하는 것을 막음으로서 loose coupling을 촉진하며, 그래서 Mediator는 여러분에게 객체들의 interactions들이 독립적으로 다양하게 해준다.
Object-Oriented 디자인은 객체들 사이의 행위 분산을 장려한다. 그런 분산은 객체들 사이에 많은 연관을 지닌 객체 구조로 나타날 수 있다. 최악의 경우에는 모든 객체가 결국 모든 다른 객체들을 알게 된다.
비록 하나의 시스템에 많은 객체들이 참여하는 것이 일반적으로 재사용성을 강화할지라도 interconnections이 늘어나는 것은 재사용성을 감소시키려는 경향이 있다. 너무나 많은 객체간의 상호 연결들은 객체들의 독립성을 떨어뜨릴 수 있다. - 그런 시스템은 마치 완전히 통일된 것 같이 행동한다.
게다가 하나의 시스템에 많은 객체들이 참여하는 것은 어떤 의미있는 방법으로 시스템의 행위를 바꾸는 것을 어렵게 한다. 왜냐하면, 행위는 많은 객체들 사이로 분산되어 졌기 때문이다. 결론적으로 당신은 아마 그런 시스템의 행위를 customize하기 위해서 수많은 subclass들을 정의해야 할 것이다.
예로써 어떤 GUI상에서 다이얼로그 박스의 구현을 고려해보자. 하나의 다이얼로그 박스는 작은 도구들(버튼, 메뉴, 입력 필드)의 모음을 표현하는 하나의 윈도우를 사용한다.
http://zeropage.org/~reset/zb/data/fontc047.gif
대게 다이얼로그의 도구들 사이에는 어떤 dependency들이 존재한다. 예를 들면, 어떤 버튼은 어떤 입력 필드가 비어있을때는 비활성화 되어있는다. list box라 불리는 선택 목록에서 객체를 선택하는 것은 입력필드의 내용을 바꿀 것이다. 바꿔말하면, 입력필드에 문자를 타이핑하는 것은 자동적으로 리스트 박스에서 하나이상의 대응대는 입력을 선택하는 것이다. 한번 텍스트가 입력 필드에 나타나면, 다른 버튼들은 아마 활성화 될것이다. 그래서 사용자가 텍스트로 어떤 일을 하게 하게할 것이다. 예를 들자면, 관련있는 것을 삭제하거나 변경하거나 하는 따위의 일을 할 수 있을 것이다.
다른 다이얼로그 박스들은 도구들 사이에서 다른 dependency들을 지닐 것이다. 그래서 심지어 다이얼로그들이 똑같은 종류의 도구들을 지닌다 하더라도, 단순히 이전의 도구 클래스들을 재사용 할 수는 없다. dialog-specific dependency들을 반영하기 위해서 customize되어져야 한다. subclassing에 의해서 개별적으로 도구들을 Customize하는 것은 지루할 것이다. 왜냐하면 많은 클래스들이 그렇게 되어야 하기 때문이다.
별개의 mediator 객체에서 집단의 행위로 encapsulate하는 것에 의해서 이런 문제를 피할 수 있다. 하나의 mediator는 객체들 그룹 내의 상호작용들을 제어하고 조정할 책임이 있다. 그 mediator는 그룹내의 객체들이 다른 객체들과 명시적으로 조회하는 것을 막는 중간자로서의 역할을 한다. 그런 객체들은 단지 mediator만 알고 있고, 고로 interconnection의 수는 줄어 들게 된다.
예를 들면, FontDialogDirector는 다이얼로그 박스의 도구들 사이의 mediator일 수 있다. FontDialogDirector객체는 다이얼로그 도구들을 알고 그들의 interaction을 조정한다. 그것은 도구들 사이의 communication에서 hub와 같은 역할을 한다.
http://zeropage.org/~reset/zb/data/media033.gif
http://zeropage.org/~reset/zb/data/media031.gif
여기서는 list box에서의 선택이 entry field 로 전달되고 있는 이벤트들의 흐름이 있다.
2. director는 리스트 박스로 부터 선택을 얻는다.
3. director는 입력 필드로 선택을 넘긴다.
director가 리스트 박스와 입력 필드 사이의 조정하는 방법을 요약하자. 도구들은 서로 단지 간접적으로 director을 통해서 통신한다. 그들은 서로에 대해서 몰라야 하며, 그들 모두는 director를 알아야 한다. 게다가 행위는 한 클래스에 지역화 되어지기 때문에 행위는 클래스를 확장하거나 교체함으로써 변하거나 바꿔질 수 있다.
http://zeropage.org/~reset/zb/data/media034.gif
DialogDirect는 다이얼로그의 전체 행위를 정의한 추상 클래스이다. client들은 화면에 다이얼로그를 나타내기 위해서 ShowDialog 연산자를 호출한다. CreateWidgets는 다이얼로그 도구들을 만들기 위한 추상 연산자이다. WidgetChanged는 또 다른 추상 연산자이며, 도구들은 director에게 그들이 변했다는 것을 알려주기 위해서 이를 호출한다. DialogDirector subclass들은 CreateWidgets을 적절한 도구들을 만들기 위해서 override하고 그리고 그들은 WidgetChanged를 변화를 다루기 위해서 override한다.
* 어떤 객체들의 집합이 잘 정의되었지만, 복잡한 방법으로 통신할 때. interconnection의 결과는 구조화되지 못하고 이해를 어렵게 한다.
http://zeropage.org/~reset/zb/data/mediator.gif
- Java Study2003/첫번째과제/노수민 . . . . 99 matches
* 자바는 Sun Microsystems 에서 개발한 객체지향형 프로그래밍 언어
* 기존의 프로그래밍 언어에 비해서 간단하며 배우기가 쉽고, 핸드폰에서, 대형 금융권 시스템에까지 그 활용범위가 무궁무진한 프로그래밍 언어이자 플랫폼
자바의 주된 특징은 기존의 C/C++ 언어의 문법을 기본적으로 따르고, C/C++ 언어가 갖는 전처리기, 포인터, 포인터 연산, 다중 상속, 연산자 중첩(overloading) 등 복잡하고 이해하기 난해한 특성들을 제거함으로써 기존의 프로그램 개발자들이 쉽고 간단하게 프로그램을 개발할 수 있도록 합니다.
자바는 C++와는 달리 처음부터 객체지향 개념을 기반으로 하여 설계되었고, 객체지향 언어가 제공해 주어야 하는 추상화(Abstraction), 상속(Inheritance), 그리고 다형성(Polymorphism) 등과 같은 특성들을 모두 완벽하게 제공해 주고 있습니다. 또한, 자바의 이러한 객체지향적 특성은 분산 환경, 클라이언트/서버 기반 시스템이 갖는 요구사항도 만족시켜 줄 수 있습니다.
자바는 컴파일 시에 에러 검사를 철저하게 하고, 실행 시에 발생할 수 있는 에러에 대해서도 실행 시에 철저하게 검사를 수행함으로써 신뢰도가 높은 프로그램을 작성할 수 있도록 해 줍니다. 또한, C/C++ 프로그램 개발자들을 가장 혼란스럽게 하고, 프로그램의 치명적인 오류를 발생시킬 수 있는 포인터 및 포인터 연산을 자바에서는 사용하지 않게 함으로써, 포인터를 사용함으로써 프로그래머가 범할 수 있는 오류를 없앴다는 것입니다.
자바는 분산환경에서 작동하도록 설계 되었습니다. 그러나, 자바는 자바 언어와 자바 런타임 시스템 내에 보안 기능이 내재되어 있기 때문에 보안성이 있는 프로그램을 개발할 수 있도록 해 줍니다. 이러한 특성은 자바 프로그램이 네트웍 환경에서 바이러스 등과 같은 프로그램이 파일 시스템을 파괴하려는 것을 막을 수 있도록 해 줍니다.
자바는 서로 다른 이종(Heterogeneous)의 네트워크 환경에서 분산 되어 실행될 수 있도록 설계되었습니다. 이와 같은 환경에서는 응용 프로그램들이 다양한 하드웨어 아키텍쳐 위에서 실행될 수 있어야만 합니다. 이를 위해 자바 컴파일러는 이종의 하드웨어 및 소프트웨어 플랫폼에서 효율적으로 코드를 전송하기 위해 설계된 아키텍쳐 중립적인 중간 코드인 바이트코드를 생성합니다. 이는 동일한 자바 프로그램의 자바 바이트코드가 자바 가상머신이 설치되어 있는 어떤 플랫폼에서도 실행될 수 있도록 하는 것입니다. 또한, 자바는 기본 언어 정의를 엄격하게 함으로써 효율적인 이식성을 제공해 주고 있습니다. 예를 들어, int 형과 같은 기본 데이터형의 크기를 플랫폼과 무관하게 일정하게 하고, 연산자의 기능을 확실하게 규정하고 있습니다. C 언어를 이용하여 int 형을 선언할 때, 도스에서는 16비트, 윈도우 95/98/NT 등 32비트 운영 체제 환경에서는 32비트, 유닉스에서는 32비트 등 그 플랫폼에 따라 크기가 다르지만, 자바에서는 플랫폼에 상관없이 32비트로 고정되도록 하였습니다. 이는 자바 프로그램이 실행되는 환경이 자바 가상머신으로 동일하기 때문입니다.
자바에서는 인터프-리터가 런타임 환경을 검사할 필요 없이 실행될 수 있도록 구성하였기 때문에 뛰어난 성능을 제공해 줍니다. 쓰레기 수집기(garbage collector) 즉 메모리 관리자는 자동으로 낮은 우선순위의 백그라운드 스레드로 실행되어 메모리가 필요할 때에만 동작하도록 함으로써, 자바 가상머신에게 무리를 주지 않으면서 보다 나은 수행 성능을 제공할 수 있도록 해 줍니다. 또한, 방대한 양의 계산을 수행하는 프로그램은 계산이 많은 부분을 본래의 플랫폼에 해당하는 기계어 코드로 재작성하여 자바 프로그램과 인터페이스 할 수 있도록 하였습니다.
자바 언어로 작성된 자바 프로그램을 중간언어 형태인 자바 바이트코드로 컴파일하고, 이렇게 생성된 자바 바이트코드를 자바 인터프리터가 해석함으로써, 자바 인터프리터와 런타임 시스템이 이식(porting)된 모든 플랫폼에서 자바 바이트코드를 직접 실행할 수 있습니다.
자바의 다중 스레드 기능은 동시에 많은 스레드를 실행시킬 수 있는 프로그램을 만들 수 있도록 해 줍니다. 자바는 동기화 메소드들을 기본적으로 키워드로 제공함으로써, 자바 언어 수준에서 다중 스레드를 지원해 줍니다. 자바 API에는 스레드를 지원해 주기 위한 Thread 클래스가 있으며, 자바 런타임 시스템에서는 모니터와 조건 잠금 함수를 제공해 줍니다.
* 자바 Applat 에서 - 자바 Bytescode는 소스를 자바 컴파일러로 컴파일한 결과물로서 HTML 문서에 비해 크기가 매우 크며 웹 서버에서 브라우저로 전송되기까지가 많은 시간이 걸린다. 일단 전송된 애플릿은 브라우저가 수행시키므로 그 속도는 클라이언트의 시스템 환경과 브라우저가 내장하고 있는 JVM의 성능에 따라 좌우된다. 28.8K 정도의 모뎀 환경이라면 그럴듯한 애플릿을 다운 받아서 수행하는데는 많은 인내심이 필요하게 된다. 그러나, 점차 인터넷 통신 환경이 좋아지고 있으며 가정집을 제외한 대부분의 사무실과 학교 등에서는 전용 회선이 깔려 있고, 넉넉한 환경의 전용선이라면 애플릿을 구동하는데 무리가 없다. 근래에는 가정에서도 초고속 통신 환경을 싼 값에 구축할 수 있으므로 점차적으로 인터넷 환경에서 애플릿의 전송은 부담이 되지 않을 것이다. JVM도 기술적으로 많이 향상되었고, Sun뿐 아니라, IBM과 같은 매머드급 회사들이 뛰어들어 개발하고 있어 초기 지적받았던 JVM의 구동 속도는 점차 문제가 되지 않는 상황이다.
자바 가상머신은 자바 플랫폼의기반을 이루며, 다양한 하드웨어기반 플랫폼에서 사용될 수 있다. (다시 말해서, 자바 가상머신은 윈도우 95/98/NT, 유닉스, 또는 매킨토시 등과 같은 기존의 운영체제 또는 인터넷 익스플로러와 넷스케이프 등과 같은 웹 브라우저 등, 여러 가지 플랫폼에 설치되어 사용될 수 있다)
사용자는 자바 바이트코드로 컴파일된 자바 프로그램을 실행시키기 위해서 이 자바 가상머신을 이용하면 된다.
* 자바가상머신은 자바로 작성된 프로그램이 어떤 환경에서든지 작동할 수 있도록 해 준다
그 구조를 전반적으로 살펴보면 다음과 같다.
클래스로더는 자바 소스를 컴파일해서 생성된 클래스 파일을 로딩한다.
클래스 파일내의 메서드, 변수들, 객체 변수들을 자바가상머신의 각 메모리에 로딩한다.
메서드 --> 메서드영역에 로딩
실행엔진은 메모리에 로딩된 메서드들을 실행한다.
네이티브 메서드는 자바 언어 말고 다른 언어로 된 메서드를 호출해서 수행하는 메서드이다. 이러한 메서드도 자바가상머신에서 처리한다.
- EightQueenProblem/da_answer . . . . 97 matches
위키는 머리털나고 처음이라.. -_-;; 제대로 쓰고 있는건지 잘 모르겠군요...
대부분 C, C++ 혹은 자바로 작성하셨던데... 전 델파이로 했습니다.
맵을 RECORD로 정의 한 다음 한 라인에 하나씩 여왕을 올려 놓고 그 때마다 공격 가능 패스를 다 지우는(?) 방식으로 하려했는데...
공격 패스에 들어가지 않는 위치에 올려 놓는게 아니라 일단 올려 놓고 공격받을 수 있는가 체크하는 방식으로요.. ^^;;
항상 코딩이 끝나면 초반에 설계한 것과는 좀 다른 방향으로 나가있더군요.. -_-;;
벌써 시간이.. -_-;;;; 오후는 이걸로 다 날려먹었네요.
혹시나 싶어서 출력부분을 리커시브 안쪽으로 옮겨놓으니.. 잘 나오는군요.. -_-;;
난 메모 컴포넌트는 왜 올려 놓은거지.. -_-;; 어차피 showMessage로 보여줄거였으면서....
end;
procedure Button1Click(Sender: TObject);
end;
procedure TForm1.Button1Click(Sender: TObject);
end;
end;
if getNextQueenPos(0, QueenPosArr[i].X, QueenPosArr[i].Y) then
end;
end
else
end;
end;
- 새싹교실/2013/양반/3회차 . . . . 97 matches
* if, if-else, switch
특별히 지정 안하면 첫 문장부터 시작하여 한 번에 한 문장씩 순차적으로 실행된다.
제어문을 사용하면 이 문장이 실행 되는 순서를 내 맘대로 제어할 수 있다.
조건문 : if문, if-else문, switch 문
=== 조건문 if ===
조건문 - 조건식의 결과(부울)에 따라 조건을 수행할 것인지 아닌지를 판단.
if(a < min)
if(a < min){
if 안에 들어가는 조건에 대해서 참이 나오면 수행하고, 거짓이 나오면 수행하지 않는다.
=== 조건문 if - else문 ===
if - else문
if문에 else 절을 추가한 if-else문을 이용해서 여러 가지 조건을 처리할 수 있다.
if (조건식)
else
조건식이 참이면 문장 1을 실행하고, 거짓이면 문장 2를 실행한다.
if(a < b)
else
if(a < b){ min = a;
}else { min = b;}
=== if - else if ===
- Gof/Singleton . . . . 96 matches
클래스로 하여금 오직 하나의 인스턴스만을 가지게 하며, 어디서든지 접근 가능하도록 한다.
몇몇 클래스들에 대해서 오직 하나의 인스턴스 만을 가지는 것은 중요한 일이다. 예를 들면, 어떤 시스템에선 수많은 프린터들이 있더라도 거기에는 단 하나의 프린터 스플러만이 있어야 한다. OS에서 돌아가는 화일시스템이나 윈도우 매니저의 경우도 오직 하나여야 한다 (동시에 2-3개의 윈도우매니저가 돌진 않는다.) 디지털 필터의 경우에도 A/D converter는 단 하나를 가진다.
어떻게 우리는 클래스로 하여금 단 하나의 인스턴스만을 가지도록 보장해줄 수 있을까? 그리고 그러한 인스턴스를 쉽게 접근하게 할 수 있을 것인가? global 변수로 둘 경우 어디서든지 접근가능하겠지만, global 변수는 단일 인스턴스만을 가지도록 할 수 없다.
더 좋은 방법은 클래스 자신으로 하여금 자기자신의 단일 인스턴스를 유지하도록 만드는 것이다. 이 클래스는 인스턴스가 생성될 때 요청을 가로챔으로서 단일 인스턴스로 만들어지는 것은 보증한다. 또한, 인스턴스에 접근하는 방법도 제공한다. 이것이 바로 SingletonPattern이다.
SingletonPattern은 다음과 같은 경우에 사용한다.
* 클래스가 정확히 오직 하나의 인스턴스만이 존재해야 할 때. 그리고 잘 알려진 엑세스 방법으로 어디서든지 접근 할 수 있어야 한다.
* 단일 인스턴스가 서브클래싱에 의해 확장가능해야 할 경우. 그러면 클라이언트는 그들의 코드 수정없이 확장된 인스턴스를 사용할 수 있어야 한다.
http://zeropage.org/~reset/zb/data/singl014.gif
* 클라이언트는 오직 Singleton의 Instance operation으로만 Singleton 인스턴스에 접근할 수 있다.
1. 클래스에 대한 접근이 오직 하나의 인스턴스에게로 제한된다. Singleton 클래스는 자기 자신의 단일 인스턴스를 캡슐화하기 때문에, 클라이언트가 언제, 어떻게 접근하던지 그 접근이 엄격하게 제어된다.
2. namespace를 줄인다. SingletonPattern은 global variable을 줄임으로서 global variable로 인한 namespace의 낭비를 줄인다.
3. 명령어와 표현을 확장시킬 수 있다. Singleton class는 subclass될 수 있고, 이 확장된 클래스의 인스턴스를 가지고 어플리케이션을 설정하는 것은 쉽다. run-time중에 필요한 경우에도 가능하다.
4. 여러개의 인스턴스를 허용한다. 프로그래머의 마음에 따라 쉽게 Singleton class의 인스턴스를 하나이상을 둘 수도 있도록 할 수 있다. 게다가 어플리케이션이 사용하는 인스턴스들을 제어하기 위해 동일한 접근방법을 취할 수 있다. 단지 Singleton 인스턴스에 접근하는 것을 보장하는 operation만 수정하면 된다.
5. class operation 보다 더 유연하다. 패키지에서 Singleton의 기능을 수행하기위한 또다른 방법은 class operation들을 사용하는 것이다. (C++에서의 static 함수나 Smalltalk에서의 class method 등등) 하지만, 이러한 언어적인 테크닉들은 여러개의 인스턴스를 허용하는 디자인으로 바꾸기 힘들어진다. 게다가 C++에서의 static method는 virtual이 될 수 없으므로, subclass들이 override 할 수 없다.
1. unique instance임을 보증하는 것. SingletonPattern의 경우도 일반 클래스와 마찬가지로 인스턴스를 생성하는 방법은 같다. 하지만 클래스는 늘 단일 인스턴스가 유지되도록 프로그래밍된다. 이를 구현하는 일반적인 방법은 인스턴스를 만드는 operation을 class operations으로 두는 것이다. (static member function이거나 class method) 이 operation은 unique instance를 가지고 있는 변수에 접근하며 이때 이 변수의 값 (인스턴스)를 리턴하기 전에 이 변수가 unique instance로 초기화 되어지는 것을 보장한다. 이러한 접근은 singleton이 처음 사용되어지 전에 만들어지고 초기화됨으로서 보장된다.
다음의 예를 보라. C++ 프로그래머는 Singleton class의 Instance operation을 static member function으로 정의한다. Singleton 또한 static member 변수인 _instance를 정의한다. _instance는 Singleton의 유일한 인스턴스를 가리키는 포인터이다.
if (_instance == 0) {
클래스를 사용하는 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 로 둠으로서 늘 단일 인스턴스로 만들어지도록 보증해준다.
더 나아가, _instance 는 Singleton 객체의 포인터이므로, Instance member function은 이 포인터로 하여금 Singleton 의 subclass를 가리키도록 할 수 있다.
- MoreEffectiveC++/Operator . . . . 96 matches
* C++에서는 크게 두가지 방식의 함수로 형변환을 컴파일러에게 수행 시키킨다:[[BR]] '''''single-argument constructors''''' 와 '''''implicit type conversion operators''''' 이 그것이다.
* '''''single-argument constructors''''' 은 인자를 하나의 인자만으로 세팅될수 있는 생성자이다. 여기 두가지의 예를 보자
* '''''implicit type conversion operator''''' 은 클래스로 하여금 해당 타입으로 ''return'' 을 원할때 암시적인 변화를 지원하기 위한 operator이다. 아래는 double로의 형변환을 위한 것이다.
'''operator<<'''는 처음 Raional 이라는 형에 대한 자신의 대응을 찾지만 없고, 이번에는 r을 ''operator<<''가 처리할수 있는 형으로 변환시키려는 작업을 한다. 그러는 와중에 r은 double로 암시적 변환이 이루어 지고 결과 double 형으로 출력이 된다.[[BR]]
뭐 이런 암시적 형변환을 막을려면, 형전환 시키고 하는 암시적 사용을 하지 않고, 다른 함수로 명시적으로 해 줄수 있다.
cout << r.asDouble(); // double로의 전환의 의도가 확실히 전해 진다.
이런 예로 C++ std library에 있는 string이 char*로 암시적 형변환이 없고 c_str의 명시적 형변환 시킨다.
첫번째 생성자는 배열의 lowBound~highBound 사이로의 크기 제한자이고, 두번째 생성자는 해당 크기로 배열 공간 생성인데, 이 두번째의 생성자가 형변환을 가능하게 만들어서 무한한 삽질에 세계에 당신을 초대한다. (실제로 이런 의미로 써있다. --상민)
if( a == b[i] ) { // 헉스! 이런 "a"는 "a[i]" 써야 할 코드였다!. (개발자의 실수 의미, 한미 양국에서 같은 발음의 oops! --;; --상민)
else {
위의 조건을 만족하지 못하면 이 코드를 수행한다.;
7줄 ''if ( a == b[i] )'' 부분의 코드에서 프로그래머는 자신의 의도와는 다른 코드를 작성했다. 이런 문법 잘못은 당연히! 컴파일러가 알려줘야 개발자의 시간을 아낄수 있으리, 하지만 이런 예제가 꼭 그렇지만은 않다. 이 코드는 컴파일러 입장에서 보면 옳은 코드가 될수 있는 것이다. 바로 Array class에서 정의 하고 있는 '''''single-argument constructor''''' 에 의하여 컴파일시 이런 코드로의 변환의 가능성이 있다.
if ( a == static_cast< Array<int> >(b[i]) )...
'''b[i]''' 는 int형을 반환하기 때문에 이렇게 즉석에서 맞춤 생성자로 type casting(형변환)을 컴파일러가 암시적으로 해줄수 있다. 이제 사태의 심각성을 알겠는가?
이런 애매한 상황을 피할수 있는 가장 효과적인 방법은 C++에서 등장한 새로운 키워드인 '''explicit''' 의 사용이다. 이 키워드가 붙은 생성자로의 형변환에서는 반드시 명시적인 선언이 있어야 가능하다. 즉 위의 코드를 다시 작성하여 '''explicit'''의 사용을 알아보고 문법상 유의 사항도 알아 보자
if ( a == Array<int>(b[p])) ... // 이 코드 역시 올바르다.
if ( a == static_cast< Array<int> >(b[p])) ... // 맞다. 위와 마찬가지로 다른 사람이 땀흘린다
if ( a == (Array<int>) b[i] ) // C-style 의 형변환인데 역시나 다른사람이 열받는다.
이렇게 explicit를 사용하면 명시적으로만 형변환이 가능하다. 하지만 또 하나 문법상 유의 해야 할사항은
이 구분에서 '''> > ''' 이 두개를 붙여쓰면 '''>>''' operator로 해석하니 유의해라
- 몸짱프로젝트/BinarySearchTree . . . . 94 matches
if aNode.key == aKey or aNode.key == -1:
elif aNode.key > aKey:
else:
if aRoot == None or aRoot.key == -1:
elif aRoot.key == aKey:
elif aRoot.key > aKey:
else:
if self.search( aRoot, aKey ) == False:
if self.search( aRoot, aKey ) == True:
## if self.getNumofChildren( node ) == 0:
## elif self.getNumofChildren( node ) == 1:
if node.numofChildren() == 0:
elif node.numofChildren() == 1:
else:
if aNode.left.key != -1:
if aNode.right.key != -1:
if aNode.left.key != -1 and aNode.right.key != -1:
elif aNode.left.key != -1:
else:
if self.left.key != -1:
- CCNA/2013스터디 . . . . 93 matches
* 사실 여기서 보는 것이 아니라 어둠의 경로를 이용해 다운받...(쿨럭)
* [http://library.cau.ac.kr/search/DetailView.ax?sid=1&cid=438553, 네트워크 개론과 실습 : 케이스 스터디로 배우는 시스코 네트워킹]
* 7월 중으로 CCNA 자격증 취득
* 프로토콜: 데이터를 전송하기 위한 규칙
* 인터페이스 - 계층간 통신을 위한 통로
|| 7계층 || 응용 프로그램 계층 (Application Layer) || 응용 프로그램의 네트워크 서비스 ||
|| 6계층 || 표현 계층 (Presentation Layer) || 응용 프로그램을 위한 데이터 표현 ||
|| 3계층 || 네트워크 계층 (Network Layer) || 어드레싱과 최적 경로 산출 ||
* 컴퓨터에서 다른 컴퓨터로 데이터를 이동하려면 데이터를 패키지화를 해야 하는데 이런 과정을 Encapsulation이라 함.
* 4개의 계층으로 이루어 짐
|| 응용 프로그램 계층 || OSI 계층 모델의 세션과 표현 계층 포함. 데이터의 표현, 인코딩, 제어 ||
|| 인터넷 계층 || 출발지와 목적지 간 패킷 전달, 최적 경로 산출, 패킷 시위칭 ||
|| 계층 모델이다 || TCP/IP의 응용 프로그램 계층은 OSI의 표현 계층과 세션 계층 포함 ||
|| 응용 프로그램 계층 || TCP/I{의 네트워크 액세스 계층은 OSI의 데이터 링크 계층과 물리 계층 포함 ||
|| 트랜스포트 계층/네트워크 계층과 호환되는 계층 || TCP/IP 프로토콜은 인터넷 발전에 표준 ||
* 데이터가 목적지까지 안전하게 전달할 수 있게 에러 통보, 흐름 제어, 네트워크 토폴로지, 순차적 프레임 전달을 다룸.
* LLC 하위 계층: 네트워크 계층과의 통신 담당. IP 패킷 데이터를 목적지로 안전하게 보내기 위해서 제어 정보를 포함
*OUI(Organizational Unique Identifier): 24비트는 IEEE로부터 할당을 받고, 나머지 24비트는 개별 회사 별로 할당.
* 출발지와 목적지 간의 최적 경로를 찾아주는 역할
* TCP (Transmission Control Protocol)과 UDP (User Datagram Protocol)이 주요 프로토콜
- MFCStudy_2001/진행상황 . . . . 89 matches
* 모든 프로그램의 접수처는 neocoin@orgio.net 입니다. 링크 시키란 의미가 아닙니다.
* Release 로 컴파일 해서 보네주세요. 실행파일만 주세요
* 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 상협] (창섭이는 부탁으로 제외하고 다음 이시간에)
* 1월 15일 2시까지 pc실로 모여주세요. 역시 나름대로 해오시고 결과물 보겠습니다. 15일 결과물을 보고 이후 일정과 할일을 결정하겠습니다.
* 2002. 1. 22 화요일 오후 2시 pc실로 모여주세요 : 역시나 마찬가지 진행 상황의 확인이고, 29일에 종칩니다.
* 차후 일정에서 29일을 마지막으로 한다는걸 30일로 변경하겠습니다. 29일에 ibm에서 세미나가 있어서 갈려고 합니다.
* 2002. 1. 7 월요일 1시 정모에 회원 모임 (모두 참석) 제출 프로그램:
* 2002. 1. 22 프로그램 진행 상황의 체크 종료. 진행상황 점검과, 체크사항, 프로그램에 대한 의견 교환
* 개인들에 관한 최종 정리 : 이번주 2월 3일까지 프로그램을 주세요. 최종 정리는 4~6일 사이에 이루어 집니다.
* 2002. 2.14 최종 정리 종료: 마지막으로 끝낸 프로그램을 결과물 페이지에 올렸습니다.
* 도저히 배경그림으로 쓸걸 못찾겠어요........ 제발.. 쓸만한 배경그림좀... !! --선호
* 차후 일정에서 29일을 마지막으로 한다는걸 30일로 변경하겠습니다. 29일에 ibm에서 세미나가 있어서 갈려고 합니다. --상민
* 사실 22일을 마지막으로 종지부를 찍으려 했지만, 30일을 종착점으로 삼겠습니다. 일단 프로젝트 상황 체크는 종료이고, 종료하는 이유는 언급한것과 같이 Java에 좀더 신경을 써달라는 의미와 더 자세한 이유는 다음 30일 최종 모임에서 이야기 하겠습니다. 여름방학부터 진행되어 왔던 계획들의 이야기와, 그동안의 거시적 미시적 성과 같은것을 살펴보겠습니다. 그리고 영서, 영창 오세요. --상민
* 진행상황 체크는 하지 않지만 마지막 각자의 산출물을 30일에 링크 걸고 이 위키 페이지 최종 정리에 들어 갈것입니다. 30일 이후에 프로그램을 받겠습니다.
* 1월12일 : 커서를 사라지게 했습니다. 커서의 시작점도 바의 중간으로 옮겼고, 그리고 안정성 죄금 증가.(과연 증가한건지는 알 수 없네요.)
그리고, 98에서 나타나는 문제점(종료후 화면잔상)이 ME에서는 일어나지 않는 관계로 테스트가 불가능합니다.[[BR]]
죽었을때 창이 닫히게 했는데. 어설픈 속임수를 썼습니다. 그런데 생각외로 잘 닫히네요. ㅡ.ㅡ;
스테이지 3까지 제작이지만.. 1판은 어이가 없고.. 2판부터 제대로 된 스테이지 만드려면 얼마든지 만들수 있을거 같네요.
* 1월 5일 - 공( 기존 지뢰찾기 스마일 표시 차용 ), 배경, 마스킹, 공 출동 처리, 벽돌 깨지는 부분 처리(반응이 즉각 안옴-뭘로 가렸다가 치워야 깨진게 보임)
* 1월 10일 - 블록 내구도별로 색깔 다 나옵니다. 전통적인 게임 색깔상 가장 나은상태(내구도4):파랑 [[BR]]그저그런상태(내구도3) :초록[[BR]] 조금안좋은상태(내구도2):노랑[[BR]]완전안좋은상태(내구도1):빨강[[BR]] 박살난상태(내구도0):배경그림[[BR]] 이렇게 해서 그려줘써요.
- WebGL . . . . 89 matches
OpenGL에서 정말 실무에서 쓰는 부분만 따로 떼어낸 OpenGL ES(Embeded System)의 Javascript 구현체이며 [HTML5] [Canvas]를 통해 나타난다. 따라서 초보자가 쉽게 배우는데에 초점이 맞추어져 있지 않고 오직 전문가가 구현을 하는데에 초점이 맞추어져 있다.
[Javascript]임에도 불구하고 마치 C프로그래밍 스타일의 함수들이 존재한다. [WinAPI]가 C스타일의 [OOP]이듯 WebGL 또한 C스타일의 OOP이다. 모든 함수는 WebGLcontext라는 객체에 있는데 보면 그냥 접두어를 붙이는 느낌이다.
위의 코드를 보면 [쉐이더] 프로그램에 fragmentShader와 vertexShader를 Link 시키는 구문인데 주체인 shaderProgram은 첫번쨰 인자이고 gl은 그냥 접두어 처럼 보인다. 저 구문만 그런것이 아니라 다른 모든 함수들이 저 gl 객체에 붙어있다. 하지만 정작 gl이 주체가 아닌 것들이 많다. 따라서 래핑한 객체를 만들어 쓰는 것이 속편한데 어설프게 했다가는 무척 꼬이게 된다.
이 관습은 [OpenGL]이 기본적으로 C라이브러리이라 그런듯 하다. 실제 래핑을 진행해본결과 마치 MFC를 보는듯한 느낌을 강하게 받고 있다.
* WebGL은 기존 OpenGL과 다르게 직접 그리기가 지원되지 않는다. 기존의 glBegin()와 glEnd()사이에서 값을 계속적으로 전달하수 없고 오직 glDrawElement()를 통한 배열을 한꺼번에 전달하는 것'만' 지원한다. 초보자들의 첫난관이다.
* 사각형그리기 및 다각형 그리기가 지원되지 않는다. 실제로 다각형 그리기는 연습시에만 자주 쓰고 실제 코드에서는 삼각형으로 이루어진 모델을 가져다 쓰기 때문인 것으로 보인다. 그리고 다각형은 삼각형의 집합으로 표현할수 있다.
* 유틸라이브러리로 제공되는 큐브, 구, 실린더, 티포트가 모두 지원되지 않는다. 역시 예제에만 쓰이고 쓰지 않기 때문에 과감히 제거한것으로 보인다.
* 쉐이더를 짜지않으면 쓸수가 없다. 심지어 텍스쳐를 입히는 것도 쉐이더에서 처리한다. 그냥 단색으로 처리하는 코드도 쉐이더 코드를 짜지 않으면 그냥 햐얀 것만 보게된다. 그리고 그것도 회전시킬수도 없다.
Attribute는 각 포인트 별로 전달되는 정보이고 uniform 은 전체에서 공통적인 정보이다. 일반적으로 Attribute는 각 정점의 위치 정보와 각 지점의 법선 벡터 정보를을 전달한다. uniform은 일반적으로 카메라의 위치나 환경광의 위치처럼 전체적인 것을 전달한다. Attribute나 uniform은 일종의 변수인데 핸들을 얻어와서 그것을 통해 값을 전달할수 있다. 즉 Atrribute나 Uniform은 Javascript측에서 쉐이더로 정보를 보내는 것이다. varying은 쉐이더 간의 정보 전달에 사용된다. vertex shader에서 fragment shader로 값이 전달되며 반대는 불가능하다(파이프라인 구조상 당연한 것이다). 이때 vertex shader는 각 정점(꼭지점) fragment shader는 각 픽셀에 한번 호출되게 되는데 각 정점 사이의 값들은 [보간법]을 거쳐 전달되게 된다(그라디언트 같은 느낌이다 중간값을 알아서 만들어 준다).
각 쉐이더는 동시에 동작할수 있는데 당연히 이들은 서로간에 독립적이어야 한다.
쉐이더는 쉐이더 언어로 따로 짜주고 컴파일 해야하며 심지어 링크까지 시켜주어야 한다. GPU의 강력한 [행렬]연산 능력을 가져다 쓰기 위해서인것으로 보이는데 이것을 사용하지 않고서는 예제파일도 돌려볼수가 없다. 다행이 언어는 C언어와 매우 유사하고 행렬연산이 모두 있기 때문에 딱히 어렵거나 하진 않다. 다만 어느부분에서 어디와 연결되는지 이해하는데 시간이 걸린다.
각 정점(vertex, 꼭지점)마다 호출되며 주로 꼭지점의 위치를 연산하고 실제 View에 투영하는 연산을 주로 하게 된다. 한마디로 모델의 위치 변환과 카메라 시점에 따른 변환 원근법을 적용하는 변환등을 수행한다.
각 정점 사이에 있는 픽셀 마다 호출된다. 주로 광원효과를 적용한 픽셀의 최종적인 색깔이나 텍스쳐 연산에 사용된다. varying변수를 vertex shader에서 fragment shader로 넘겨주면 각 정점 사이에는 보간법으로 변환된 값이 넘어 온다.
현재 객체 래핑중 중대한 문제에 봉착. 대부분의 모듈과 세이더 코드는 [콜백]으로 호출되는데 이것을 적절히 래핑할 방법이 없다. webGL과는 하등 연관이 없는 부분이라서 각자 알아서 구현하도록 해도 되지만 대부분의 경우 같은 코드를 다스 짜고 있는 나를 보게 된다. 이것을 어떻게 해야 잘한 래핑이라 할수 있을까?
uniform mat4 matCamara;
uniform mat4 matProject;
uniform vec3 lightPos;
uniform vec3 lightDirection;
uniform vec4 materialDiffuse;
uniform vec4 lightDiffuse;
- 위키설명회2005/PPT준비 . . . . 87 matches
==== 제로페이지 란? ====
제로페이지란 절대 선배들이 후배들을 가르치는 곳이 아니다...
자신이 하고 싶은 공부를 뜻이 같은 여러 학우들과 모여 서로 도움을 주며 스터디를 하는 곳이다.
제로페이저들 사이에 알게모르게 피어나는 정... 공부를 혼자만 하는 것이 안이라 서로 도와가면서
남의 의견과 생각을 들으며 공부를 할 수 있는 곳이다. 서로의 유대가 깊어지며 무엇보다도 생각의 폭이
넓어진다. 위키를 보면 알겠지만, 항상 활발하게 움직이는 살아있는 학회다. 늘 변화한다. 새로운 것을 추구한다.
==== 제로페이지의 의미 ====
8bit CPU 에서 6502를 예로 들겠습니다.
주소 영역을 8bit 만 사용, 상위 8bit 은 00 으로 가정하고 addressing 을 하면
==== 제로페이지의 역사 ====
1992년 : 동남은행 Firm banking system, 치관 운영 관리 프로그램, 세탁소 관리 프로그램, 세일 정보 통신 재해자 관리 프로그램
1993년 : 비디오 도매상 관리 프로그램, '작은마녀' 게임 프로그램
1994년 : 삼성전자 번들용 영어 교육 프로그램
2002년 : 1회 SK 모바일 프로그램 경진대회 대상 수상
==== 제로페이지에서는 뭘 할까? ====
그 밖에 프로그램 배틀, 조인트 스터디등등...의 계획
특히 방학때 ==> 스터디를 통해서 본격적으로 공부함... 여름방학 같은 경우 데블스 캠프, 2학기 프로그램 전시회 준비
ZeroPage 는 중앙대학교 컴퓨터공학과 내의 학술모임으로 인력의 장이다.
한달에 두번 격주로 시행함을 원칙으로 한다.
정모에 2회 연속으로 활발히 참여한 사람을 회의를 통해서 회원으로 인정한 경우
- 창섭/배치파일 . . . . 87 matches
도스에는 명령어를 일괄적으로 처리하기위한 배치파일이라는 것이 있습니다.
따라서 사용자는 항상 도스 프롬프트 상에서 일일이 키보드를 이용한 타이핑으로 명령을 내려야 하고, 하나의 명령이 내려지면 완료될 때까지 다음 명령을 내릴수가 없습니다. 작업 과정이 얼마되지 않는다면 큰 상관이 없으나 그 과정이 매우 길고 복잡하다면 사용자는 지루함을 느끼게 됩니다. 또한 비록 짧은 작업과정이라도 컴퓨터를 켤때마다 매번 똑같은 과정을 일일이 지시하는 것도 귀찮을 것입니다.
이러한 경우 배치 파일은 가장 확실한 해결책입니다.
배치파일의 기능은 순차적이고 반복된 동일한 작업 과정을 몇개의 혹은 수십, 수백 개의 연관된 명령어를 하나의 파일로 집약하여 그 하나의 파일(배치파일)만 실행함으로써 원하는 작업 과정을 수행하는것입니다.배치파일에 붙는 확장자는 .bat(batch 의 약어) 입니다.도스에서 실행이 가능하기 때문에 .com, .exe 확장자가 붙는 외부 명령어와 함께 실행 가능한 파일로 분류됩니다.차이가 있다면 .com, .exe 명령어는 컴퓨터만 해석 가능한 기계어 코드로 구성되어 있는반면, 배치 파일은 사람이 알아볼수 있는 일반 텍스트로 이루어져있다는 것입니다.
그래서 사용자들은 문서작성에 이용하는 워드프로세서나 텍스트에디터 등을 이용해 배치 파일을 작성할 수 있습니다. 그러나 워드프로세서는 덩치가 크고 원래 목적이 편집과 출력을 위해 만들어진 것이므로 단순한 배치 파일을 작성하는 데는 권하고 싶지 않습니다.
저장할때도 워드프로세서 고유의 포맷(예" .hwp 확장자를 가지는 아래아한글 데이터 파일)으로 저장하면 인식이 되지 않으므로 아스키 파일로 저장해야 합니다.가장 편리한 방법은 일반 문서 에디터( 도스의 Edit, Q에디터,U에디터 등)를 이용하거나 도스의 'Copy Con' 명령으로 배치 파일을 만드는 것입니다.다음과 같이 'Copy con 파일명' 형식으로 입력하고 엔터를 누르면 도스 프롬프트 상태에서 편집할 수 있는 상태가 됩니다.
여기서 쓰고 싶은 대로 적기만 하면 됩니다.제일 마지막행의 ^Z 는 파일의 제일 마지막 부분이라는 것을 도스에게 알려주는 코드로 < Ctrl + Z > 키 또는 F6 키를 누르면 됩니다. 그리고 엔터키를 한번더 누르면 '1 File(s) copied' 라는 메세지가 출력되는데, 이는 방금 ' copy con 파일명 ' 으로 작성된 문서파일이 성공적으로 만들어졌다는 뜻입니다.위의 문서파일은 확장자가 .BAT 로 붙었기 때문에 실행가능한 외부 명령어가 되는데, 배치파일은 명령이 기록되어 있는 순서대로 실행되기 때문에 timedate.bat 를 실행시키면 먼저 화면을 지우고 난뒤 시스템의 시간과 날짜를 설정합니다.간단한 배치파일은 'copy con 파일명' 으로 작성하는 것이 다른 프로그램의 도움없이 쉽고 빠르게 처리할 수 있습니다. 하지만 배치파일이 조금 길거나 작성중에 수시로 편집할 일이 생기는 경우에는 불가능합니다. 'copy con 파일명' 으로 파일을 작성하면 행으로 다시돌아갈 수 없을 뿐 아니라 수정이 불가능하기 때문입니다. 그러므로 배치파일을 만들 필요가 있을때는 문서 에디터를 이용하는 것이 좋습니다.
배치 파일은 파일 안에 기록되어 있는 명령의 순서대로 실행됩니다.가장 대표적인 것이 부팅에 이용되며, 컴퓨터의 루트 디렉토리에 위치하고 있는 Autoexec.bat 파일입니다. 그런데 만약 배치 파일의 실행의 순서를 순차적이 아닌멀티부팅용 Autoexec.bat 처럼 사용자 마음대로 정하고 싶다면 배치파일에 제공되는배치명령어의 용도를 알고 있어야 합니다.
현재 실행중인 배치 파일을 종료하지 않고 필요한 다른 배치파일을 호출하여 실행한 다음 원래의 배치파일로 다시 돌아오려고 할 때 사용됩니다.
◇ 사용법 : Call [drive:]\[경로]\<배치파일명>[.BAT]
어떤 배치 파일을 실행하는 도중에 경로 C:\bats 에 있는 sample.bat 파일을 실행한 다음 다시 원래의 배치파일로 돌아옵니다.
배치 프로그램 내에서 사용자의 선택을 묻기 위해 사용됩니다. 배치 파일 제작자가 설정한 물음을 출력하면서 지정된 키 입력을 기다립니다. 이 명령은 배치파일 내에서만 사용 가능합니다.
- /C[:]문자열 : 사용자가 선택할 수 있는 키목록을 [] 괄호 내에 ', ' 로 구분하여 출력하고 /C 스위치를 사용하지 않으면 기본적으로 YN이 사용됩니다.
- /T[:]기본키, 대기시간 : 기본키를 지정한 후 대기시간 동안 사용자의 키 입력이 없으면 자동적으로 기본키가 입력된 것으로 간주하고 진행됩니다. 지정 가능한 대기시간은 초단위이며 0에서 99 사이의 값입니다.
◇ 설명 : 입력 가능한 키를 a,b,C,D로 한정하며 사용자로부터 입력되는 영문자의 대,소문자를 구분하는데, 만약 5초 내에 사용자로부터 키 입력이 없다면 C 가 입력된 것으로 간주합니다. 그리고 화면에는
지정된 집합 중의 각각의 요소에 대하여 명령으로 설정한 처리를 반복 실행합니다.
- %%<변수>, &<변수> : 변수로 사용되는 것은 임의의 영문자로 1자만 허용됩니다. 주의할 점은 배치파일에서 사용할 경우는 반드시 %%처럼 두개를 연달아 사용해야 하며, 일반 도스 프롬프트에서 사용할 때는 % 하나만 사용합니다.
- <집합> : %%<변수>에 대입하고 싶은 값을, 또는 스페이스로 구분하여 대입하고 싶은 순서대로 나열합니다.
- <명령> : %%<변수>에 대입되어 있는 값에대해 반복적으로 실행하고 싶은 명령을 지정합니다.
for %%f in (bak tmp $$$) do del *.%%f /p ☞ 배치파일의 경우
- AcceleratedC++/Chapter8 . . . . 86 matches
함수의 호출시 함수의 매개변수를 operand로 하여 행해지는 operator의 유효성을 컴파일러가 조사. 사용 가능성을 판단
반복자를 생각해보자. 만약 특정 자료구조가 반복자를 리턴하는 멤버함수를 갖는 다면 반복자를 인자로 받는 function들에 대해서 그 자료구조는 유효하다고 판단할 수 있다.
서로 다른 타입의 객체이라도 하더라도 각각의 객체를 가지고 행하는 행동양식은 공통의 행동양식을 갖는다.
Runtime이 아니라 Compile 타임에 실제로 타입이 변화하는 객체를 적절히 작성하면 올바른 동작을 보장한다.
#ifndef GUARD_median_h
if (size == 0)
sort(v.begin(), v.end());
#endif
실제 컴파일시 컴파일러는 프로그래머가 지정한 타입으로 이 함수를 인스턴스화 시켜서 생성하고 바인딩한다.
STL은 실제로 함수의 인스턴스화에 관한 표준적인 방식을 제정하지 않았다. 따라서 각 컴파일러마다 서로 다른 방식으로 함수를 인스턴스화한다. 따라서 자신의 컴파일러의 특징을 파악하는 노력이 필요.
* 컴파일 링크 모델 Compiler : 실제로 인스턴스가 만들어지기 전까지는 템플릿 코드의 유효성을 알 수 없다. 에러는 링크시에 발생
|| accumulate(B, E, D) || D의 인자의 형을 기준으로 [B, E)를 비교하여 값을 모은다. 리턴값이 D의 자료형에 영향을 받기 때문에 문제의 발생소지가 존재한다. ||
{{{~cpp ex) accumulate(v.begin(), v.end(), 0.0); // 만약 0:int를 사용했다면 올바른 동작을 보장할 수 없다.}}}
인자로 받은 두 값의 타입이 완전히 같아야지만 올바른 동작을 보장받는다. 인자는 operator>(T, T)를 지원해야한다.
== 8.2 Data-structure independence ==
|| find(c.begin(), c.end(), val) || 일반적인 함수의 작성 가능. 반복자를 통해서 반복자가 제공하는 방식으로 동작가능 ||
|| find(c, val) || 범위 지정이 불가능하고, 유용성이 첫번째의 경우보다 적다. ||
* 1의 방식으로 작성된 함수으이 rbegin() 같은 템플릿 멤버 함수를 이용해서 역순 검색도 가능하게 작성된다.
STL 함수를 보면 인자로 받는 반복자(iterator)에 따라서 컨테이너의 함수 사용 유효성을 알 수 있다.
예를 들자면 find(B, E, D)같은 함수의 경우 ''아주 단순한 제한적 연산만을 이용''하기 때문에 대부분의 컨테이너에 대해서 사용이 가능하다. 그러나 sort(B, E)같은 경우에는 ''기본적인 사칙연산들을 반복자에 대해서 사용''하기 때문에 이런 연산을 지원하는 string, vector 만이 완벽하게 지원된다.
- 새싹교실/2012/우리반 . . . . 86 matches
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
* C프로그래밍 Java C++
* 처음으로 새싹교실 왔는데 조금밖에 안배웠는데 어렵다.ㅜㅜ 선생님을 따라서 잘 배우겠습니다! -[장윤화]
* 모든 C 프로그램의 기본은 여기서 시작된다.
* 프로그래밍 문장이 어떻게 되는지, 한 문장을 나누는 기준 (;) 에 대해서.
1.int a=10,b=12,temp;가 있는데 a에 있는 값을 b에 넣고, b에 있는 값을 a에 넣는 프로그램을 짜 보세요.
3.다음 프로그램이 무엇을 출력하는지 생각해보고, 프로그램을 그대로 짜서 뭐가 나오는지 확인해봅시다.
4.Compile이란 뭘까? 자신이 생각하는 의미를 한줄로 요약해서 후기에 써보자.
(추가 : 인간이 쓰는 언어에 가까운 언어로 짠 프로그램을 기계어로 된 프로그램으로 변환시키는 것이라고 생각합니다.)
* 프로그래밍의 기초를 배운 것같다.. 감을 익혔다.. 외울 것이 많은 것 같다..
(추가 : 인간이 쓰는언어를 기계어로 번역하는 것이라고 생각합니다.) -[장윤화]
* 역시 실제로 해보는게 가장 좋은 수업인듯.. 오늘 잘 배웠습니다 ~!!
(추가 compile이란 High level language , 즉 인간이 구분하기 쉬운 언어로 작성된 프로그램을 Machine language(기계어)로 번역하여 처리하는 작업이라고 생각합니다.-[권도현]
* 갑작스런 총화.... 때문에 1시간정도밖에 진행하지 못했네요. 이러면 안되는데 ㅠㅠㅠ 그래도 저번주에 잠깐 알려준게 있으니 그거로 이번주치를 퉁친거로 해야할거 같습니다. ㅠㅠ 다음주부턴 수요일로 쭈~욱 가는거니까 필참! ㅋㅋ + 다들 후기 이정도로는 써 줘요 ㅋㅋ -[김태진]
* %d, %c, 자료형, 절차지향, if-else,scanf,printf, else if
* 180기준으로 크면 위너, 작으면 정상인. 그런데 164는 정진경, 171은 이미경, 187은 권도현이 나오는 프로그램 작성.
if(164==height) printf("정진경");
else if(171==height) printf("이미경");
- 빵페이지/숫자야구 . . . . 85 matches
DeleteMe 내용이 중복되어서 문제정의와 참고자료 부분을 지웠습니다. 위키라는 지식 풀속에 중복되는 지식은 링크로 충분하겠지요. 아래의 문제들 역시 {{{~cpp 숫자야구/유주영}}} 식으로 하는 편이 차후 접근성 측면에서 더 좋을것 같습니다.--NeoCoin
* 이거 4자리 수로 만든거 있는데 올려도 되나요?? 소스는 지X같지만 ;; - 정욱
while(ch) // 탈출조건X
if(num[i]==person[j])
if(i==j)
else
if(scount==0 && bcount==0)
else if(scount==0 && bcount!=0)
else if(bcount==0 && scount!=0)
if(scount==3)
else
cout << "프로그램을 종료해요.\n";
쓰다보니 길어졌다~ while문 탈출조건 안쓰고 깔끔하게 하는방법 없을까.?
// 베이스볼 게임입니다. 간단히 말해 숫자 맞추기 게임으로 4자리 의 숫자를 9번 이전에 맞춰야 합니다.
int player_num[3]; //사용자가 입력한 값을 각 자리 숫자로 나눠서 rand_num과 비교하기 쉽게 만듭니다.
if (i == 1 && rand_num[i] == rand_num[0])
else if (i == 2 && (rand_num[i] == rand_num[0] || rand_num[i] == rand_num[1]))
} //이 if 문을 통해서 4자리 숫자가 모두 다르게 배열되게 합니다.
if (num < 100 || num > 999) {
else{
- AcceleratedC++/Chapter12 . . . . 84 matches
일반적인 C++의 기본형 데이터처럼 클래스도 여러가지의 연산자를 재정의 함으로써 마치 값처럼 동작하도록 할 수 있다.
s = "hello"; // 새로운 값을 s에 대입한다.
클래스는 기본적으로 복사 생성자, 대입 연산자의 기본형을 제공한다. 위의 클래스는 이런 연산에 대한 기본적인 요건을 만족하기 때문에 const char* 가 const Str& 로 변환되어서 정상적으로 동작한다.
이 구현의 세부적인 작동방식은 모두 Vec 클래스로 위임하였다. 대신에 const 클래스와 const 가 아닌 클래스에 대한 버전을 제공하였고, 표준 string 함수와의 일관성 유지를 위해서 string 대신에 char& 형을 리턴하도록 하였음.
입력 연산자는 일견 객체의 상태를 바꾸기 때문에 멤버함수로 선언이 되어야 한다고 생각하기 쉽다. 그러나 이항 연산자의 경우 파라메터의 맵핑이 좌항의 경우 첫번째 우항의 경우 두번째인자로 받는데, 이렇게 될 경우 멤버함수로 >>연산자를 오버로딩하면 우리가 워하는 결과를 얻을 수 없다.
상기와 같은 이유로 operator>>는 비멤버함수로서 선언이 되어야 한다.
=== 12.3.2 프렌드(Friend) ===
s.data.clear(); // compile error. private 멤버로 접근
if(is) { // EOF를 만나면 입력 스트림을 false 값을 리턴한다.
do s.data.push_back(c); // compile error. private 멤버로 접근
if(is) // 입력중 공백 문자를 만났을 경우 방금전에 입력으로 들어왔던 한문자를 무시한다.
따라서 우리는 operator>>를 public 멤버로 만들고 data에 대한 쓰기 권한을 가지게 해서는 안된다.
이런 경우의 함수를 '''friend''' 로 정의 하여 해결하는 것이 가능하다.
함수를 friend 로 정의하면 인자로 받은 형에대해서는 형의 접근자가 무시된다.
friend std::istream& operator>>(std::istream&, Str&);
friend 함수는 접근제어 레이블에 영향을 받지 않기 때문에 어디에 선언을 해도 무관하나, 가능하면 클래스 선언의 최초 부분에 놓는 것이 좋다.
* operator+는 각 인수로 받는 객체의 값을 변화시키지 ㅤㅇㅏㅎ는다. 따라서 비멤버함수로 구현하는 것이 적당하다.
friend std::istream& operator>>(std::istream&, Str&);
std::copy(s.data.begin(), s.data.end(),
지역변수로 생성된 r를 복사생성자를 통해 생성된 임시 객체로 리턴시킨다.
- 새싹교실/2012/AClass/4회차 . . . . 84 matches
= 4회차 과제 업로드 =
11.이번시간에 배웠던 내용을 바탕으로, int* a; int b; int **c;로 선언했을때 &c,c,*c,&a,a에 관해서 각각 설명하고, 어떤 것이 어떤 것과 일치하는 것인지를 이해할 수 있도록 쉬운말로 정리해보세요.
-해설 : 우선 int형 자료형을 가진 데이터의 주소를 가리키는 포인터로 a지정, b의 값에 5를 지정, 포인터의 주소를 가리키는 c를 지정하였다. a의 주소를 이중 포인터 c에 주었다. b의 주소는 포인터 a에 할당하였다. 그리고 이중포인터c에 값을 9로 주었다. 이것은 원래의 a의 주소값을 갖고 있던 c에 9를 대체해준 것이다. 따라서 프린트 *c,**c를 하면 a의 주소와 9가 출력이 된다.
-원형 큐로 기본 큐와 마찬가지로 첫 번째 데이터가 추가되는 순간 큐의 처음과 끝부분이 그 데이터를 가리키게 된다. 처음을 F 끝부분을 가리키는 것을 R이라하면 꽉찬 경우나 텅빈경우에 F가 R의 한칸 앞을 가리키는 것은 같기 때문에 F,R의 위치만을 가지고 꽉 찬경우와 텅 빈 경우를 구분할 수 가 없다. 따라서 이와 같은 문제를 해결하는 방법은 많겠지만 그 중 하나는 배열을 꽉 채우지 않고 배열의 길이가 N이라면 N-1만큼만 채워 졌을 때 꽉 찬 것으로 간주하는 방법이다. 이렇게 하면 저장 공간 하나를 낭비하게 된다. 하지만 이로 인해서 문제 하나가 해결이 되는 셈이다.
- c언어에서는 char,int,float 와 같은 많은 수의 기본 데이터 형과 배열, 포인터, 구조체 등의 유도된 데이터형으로부터 새로운 데이터형을 만들 수 있는데, 사용자 측면에서 새로운 데이터 형을 정의 할 수 있도록 typedef선언을 제공한다. typedef은 #define과 달리 이미 존재하는 c언어의 데이터 형만을 취하여 정의하고 typedef은 프리프로세서에 의해 처리되는 것이 아니라 c컴파일러에 의해 처리된다. 또한 #define보다 다양한 형태의 치환이 가능하다.
< 일반 형식 : typedef 기존 데이터형 새로운 데이터형; >
typedef문에서 기존 데이터형 char를 새로운 데이터형 이름으로 *YOU를 정의했고 YOU name이라 정의하면 이는 char *name로 나타낸것과 같다.
구조체 내부에 char 배열을 사용해서 이름을 넣어도 좋고, 학번을 int형으로 넣어도 좋다.
8.다음 형태로 출력되는 프로그램을 짜 보세요.
if(i%2!=0)
else
if(a[i][j]<10)
else
9.2중포인터를 이용하여 3x3행렬을 두개 만들고, 두 배열의 합을 출력하는 프로그램을 짜보세요.
//10.LinearSearch를 구현해보세요. 배열은 1000개로 잡고, random함수를 이용해 1부터 1000까지의 숫자를 랜덤으로 배열에 넣은 후, 777이 배열내에 있었는지를 찾으면 됩니다.
if(a[i]==777)
if(find[i]!=0)
11.이번시간에 배웠던 내용을 바탕으로, int* a; int b; int **c;로 선언했을때 &c,c,*c,&a,a에 관해서 각각 설명하고, 어떤 것이 어떤 것과 일치하는 것인지를 이해할 수 있도록 쉬운말로 정리해보세요.
- 배열 기반의 큐가 원형으로 이루어진 상태.
- 원형으로 이루어져 있기 때문에 큐가 가득 찼을때나 완전히 비어있을때 Front와 Rear의 index는 동일하므로 Empty인지 Full인지 구분할 수 없다.
- HelpOnLinking . . . . 83 matches
외부 링크는 {{{http://kldp.org}}}같이 그대로 적어놓으면 '''자동'''으로 http://moniwiki.kldp.org 라고 링크가 걸립니다. 여기서 주의할 점은, 링크를 적을때 한글 토씨를 그냥 붙여 적을 경우에 한글까지 링크가 걸리게 됩니다. 이럴 경우에는 {{{[http://moniwiki.kldp.org]}}}라고 적으면 [http://moniwiki.kldp.org]와 같이 '''강제'''로 링크될 URL을 지정해줘서 자동으로 링크가 걸리지 않게 합니다. 강제로 링크를 걸러줄 경우는 모니위키에서는 그 링크 앞에 작은 지구 아이콘이 생깁니다.
모니위키에서는 기본적으로 외부링크라고 해도 새창으로 열리지 않습니다. 강제로 새창으로 열리게 하고 싶은 경우는 {{{[^http://kldp.org]}}}와 같이 맨 앞에 {{{^}}} 기호를 넣어주면 (모니위키 확장) [^http://kldp.org]처럼 링크가 걸리게 됩니다.
외부링크를 항상 새 창으로 열게하려면 `config.php`에 {{{$external_target="_blank";}}}라고 지정해 주어야 합니다.
하지만 이렇게 외부링크를 새창으로 열게끔 하는 방식은 사용자를 새창을 열도록 강제하기때문에 별로 권장할만한 방식이 아닙니다.
<!> 대부분의 브라우져에서 {{{<Control>}}}키를 누고 링크를 클릭하면 새창으로 링크가 열리는 기능을 지원합니다.
만약 URL의 끝 부분이 이미지의 확장자일 경우는 ("{{{.gif}}}", "{{{.jpg}}}" or "{{{.png}}}") 그림이 그 위치에 삽입되게 됩니다.
예를 들어 {{{http://moniwiki.kldp.org/imgs/moniwiki-logo.png}}}라고 적으면 http://moniwiki.kldp.org/imgs/moniwiki-logo.png 처럼 보이게 됩니다. 이 경우 역시 띄어쓰기를 하지 않으면 조사까지 링크가 걸리게 되고 그림이 자동으로 들어가지 않게 됩니다. 이 경우는 강제로 꺽쇠로 묶어주면 즉, {{{[http://moniwiki.kldp.org/imgs/moniwiki-logo.png]}}}라고 쓰면 [http://moniwiki.kldp.org/imgs/moniwiki-logo.png]와 같이 되고, 그림으로 들어가지 않는 대신에 링크를 그대로 보여줍니다.
{{{WikiName}}}라고 쓰면 WikiName이 자동으로 링크가 걸립니다.
{{{[모니위키]}}}이라고 적으면 [모니위키]처럼 링크가 됩니다. 이 문법은 모니위키 확장문법으로 제공되었으며 이중 대괄호문법을 대신 쓸것을 권장합니다.
{{{[[모니위키]]}}}라고 적으면 [[모니위키]]처럼 링크가 됩니다. 이것은 MoinMoin 최신이나 MediaWiki에서 쓰이는 페이지 이름 연결 문법으로, 모니위키에서도 호환성 측면에서 지원합니다.
/!\ 이 문법은 매크로 문법과 충돌합니다. 예를 들어 {{{[[Date]]}}}라고 링크를 걸면 Date가 링크가 되는 대신에, Date 매크로가 호출되게 됩니다. 따라서 영문으로 된 페이지 이름을 연결할 경우는 매크로 이름이 중복되어 있다면 이중 대괄호로 링크를 걸 수 없습니다.
공백을 포함하는 임의의 페이지 이름을 연결하고 싶은 경우가 있습니다.
그런데 {{{[공백이 있는 이름]}}}으로 연결하면 [공백이 있는 이름]으로 연결되며, 공백이 모두 제거 되고 정규화 된 페이지가 링크가 걸립니다. {{{[hello world]}}}라고 링크를 걸렴 [hello world]라고 링크가 걸리고 공백이 모두 사라지면서 정규화 된 페이지 이름인 HelloWorld페이지로 링크가 걸립니다.
공백이 있고 대소문자도 마음대로 지정하고 싶은 경우에는 {{{["임의의 페이지 이름"]}}}으로 링크를 걸면 ["임의의 페이지 이름"]처럼 링크가 됩니다.
만약 다른 이름으로 보이게 하려면 {{{[wiki:MoniWiki:FrontPage 대문]}}}과 같은 식으로 쓰면 `{{{MoniWiki:FrontPage}}}`로 연결되고 `[wiki:MoniWiki:FrontPage 대문]`이라고 보여지게 됩니다.
일반 위키페이지의 경우에도 마찬가지 방식으로 {{{[wiki:FrontPage 대문]}}}이라고 쓰면 `FrontPage`로 연결되고 `대문`으로 표시됩니다.
특별히 이 경우 {{{[wiki:FrontPage 대문]}}}은 {{{[:FrontPage 대문]}}}과 똑같습니다. (모니위키 1.1.4 확장)
앞부분에서도 언급한 내용이지만, 자동으로 링크가 걸릴 경우 URL 주소 되에 공백을 넣어주거나, <http://moniwiki.kldp.org/wiki.php/FrontPage>와 같이 연결해주어야 합니다. 정리해보면
* 인용부호로 묶는다. "http://moniwiki.kldp.org"처럼 => bug
* 꺽쇠(대괄호)로 묶는다.
- AcceleratedC++/Chapter9 . . . . 82 matches
4.2.1절 Student_info 구조체를 다루는 함수를 작성하고, 이를 한개의 헤더파일로 통합을 하는 것은 일관된 방법을 제공하지 않기 때문에 문제가 발생한다.
프로그래머는 구조체를 다루기 위해서 구조체의 각 멤버를 다루는 함수를 이용해야한다. (Student_info 를 인자로 갖는 함수는 없기 때문에)
그러나 프로그래머는 직접적으로 이런 구조를 다루기 보다는 세부적인 구현을 감추고 싶을 수 있다.
string, vector 와 같은 것들은 Student_info의 내부 구현시에 필요한 사항이기 때문에 Student_info를 사용하는 프로그램의 또다른 프로그래머에게까지 vector, string을 std::에 존재하는 것으로 쓰기를 강요하는 것은 옳지않다.
std::istream& read(std::istream&); //입력 스트림으로 부터 입력을 받아서 4개의 멤버변수를 초기화한다.
double grade() const; //내부 멤버변수를 활용하여 점수를 계산하고 double 형으로 리턴한다.
//함수 명의 뒤에 const를 붙이면 멤버 변수의 변형을 할 수 없는 함수가 된다. (구조적으로 좋다)
* s:Student_info 라면 멤버함수를 호출하기 위해서는 s.read(cin), s.grade() 와 같이 함수를 사용하면서 그 함수가 속해있는 객체를 지정해야함. 암묵적으로 특정객체가 그 함수의 인자로 전달되어 그 객체의 데이터로 접근이 가능하게 된다.
* Student_info의 멤버함수이므로 Student_info 객체를 정의할 필요도 인자로 넘길 필요도 없다.
* 객체 내부의 데이터를 직접적으로 접근 가능하다. 예를 들어서 s.name으로 접근할 필요없다.
::를 사용함으로써 호출되는 grade를 객체의 멤버함수가 아니라 전역 grade의 형으로 사용하는 것이 가능하다.
객체에서는 const 객체 내부의 데이터들을 const형으로 다룰 수는 없지만, 멤버함수를 const 멤버함수로 만듦으로써 변형에 제한을 줄 수 있다.
이전에 사용되었던 compare와 같은 함수를 어떤식으로 정의해야 할 것인가?
compare함수는 동일한 형의 2개의 Student_info를 받아서 서로를 비교하는 역할을 한다. 이런함수를 처리하는 일반적인 방법이 있는데, 9.5, 11.2.4, 11.3.2, 12.5, 13.2.1 에서 배우게됨.
'''friend 함수를 의미하는 것'''
read, grade를 정의함으로써 Student_info에 직접적인 접근을 하지 않고도 데이터를 다룰 수 있었다.
그런데 더 나가서 이제는 아예 이 객체의 내부멤버를 프로그램의 다른 부분에서 다루는 것을 금지시키고 싶다면?
struct 키워드 대신 '''class''' 키워드 사용. '''보호레이블(protection label)''' 사용. 레이블은 순서없이 여러분 중복으로 나와도 무관함.
|| class 키워드를 사용한 클래스 || 기본 보호모드가 private 으로 동작한다. ||
|| struct 키워드를 사용한 클래스 || 기본 보호모드가 public 으로 동작한다. ||
- BusSimulation/조현태 . . . . 82 matches
C++이라서 그런지.. 내가그런건지는 몰라도 이상하게 클래스로만 자면 C로 작성하는 것 보다 시간이 더 걸리는듯..
(사실 이 증명 시뮬레이션은 편도에서 버스 용량이 무한대고 설사 승객이 내리지 않더라도 승객이 타고, 타는데 시간이 걸린다는 것만으로도 버스가 몰려다니는 것으로 증명되어 있으나.. 재미없자넝~ 버스는 자고로 용량이 있어야.. 그리고탔으면 내리는게 인지상정.ㅎ)
사실 출력부분이 대부분 테스트용으로 만들어 진건데.. 일단 임시로 그대로 사용하기로 했다. 나중에 휴가기간에 소스좀 수정하도록 하겠다.
버스는 동일 간격으로 생성되게 되어있으며, 승객은 랜덤으로 생성된다.( 승객이 생성되는 비율을 역을 만들때 정할 수 있다. )
편도인 관계로 승객의 목적지는 승객이 생성된 이후의 역중 한곳(랜덤)으로 정해진다.
또한 이런 문제로 마지막 역은 승객을 만들(!)수 없다.
버스가 자신의 속도(만들때 정할 수 있으며 이 소스에는 80으로 통일하였다.)로 움직이는데 한턴이 소모된다. (앞에 차량이 있어서 정차하거나, 역에 들어가게되어 자신의 이동거리를 다 가지 못하더라도 동일하게 한턴이 소모된다.)
이러한 규칙을 기본으로 해서 시뮬레이션 하고 있다.
- 물런 재미가 없긴 하겠지만 이 증명은 버스가 편도로 움직이고 버스용량이 무한이며, 승객이 내리지 않더라도 승객이 타고 승객이 타는데 시간만 걸린다면 버스의 몰림현상이 발생한다. (고로 증명하기 위해 소스를 많이 짤 필요가 없을 수도 있다. 재미가 없겠지만..ㅎ)
메모리 낭비를 요로코롬 줄였답니다.^^*
if (0!=humans[i])
if (station_size!=number_man && numbers_station!=station_number+1)
if (0==rand()%percent)
if (0==number_man)
if (1==in_station)
if (-1==temp_where)
else
cout << number << "번 버스가 " << where << "로 이동하였습니다.\n";
if (0!=in_people)
if (in_station->where_here()==humans[i]->where_go())
- DPSCChapter1 . . . . 82 matches
Welcome to ''The Design Patterns Smalltalk Companion'' , a companion volume to ''Design Patterns Elements of Reusable Object-Oriented Software'' by Erich Gamma, Richard Helm, Ralph Johnson, and Jogn Vlissides(Gamma, 1995). While the earlier book was not the first publication on design patterns, it has fostered a minor revolution in the software engineering world.Designers are now speaking in the language of design patterns, and we have seen a proliferation of workshops, publications, and World Wide Web sites concerning design patterns. Design patterns are now a dominant theme in object-oriented programming research and development, and a new design patterns community has emerged.
''The Design Patterns Smalltalk Companion'' 의 세계에 오신걸 환영합니다. 이 책은 ''Design Patterns Elements of Reusable Object-Oriented Software''(이하 DP) Erich Gamma, Richard Helm, Ralph Johnson, and Jogn Vlissides(Gamma, 1995). 의 편람(companion, 보기에 편리하도록 간명하게 만든 책) 입니다. 앞서 출간된 책(DP)이 디자인 패턴에 관련한 책에 최초의 책은 아니지만, DP는 소프트웨어 엔지니어링의 세계에 작은 혁명을 일으켰습니다. 이제 디자이너들은 디자인 패턴의 언어로 이야기 하며, 우리는 디자인 패턴과 관련한 수많은 workshop, 출판물, 그리고 웹사이트들이 폭팔적으로 늘어나는걸 보아왔습니다. 디자인 패턴은 객체지향 프로그래밍의 연구와 개발에 있어서 중요한 위치를 가지며, 그에 따라 새로운 디자인 패턴 커뮤니티들이 등장하고 있습니다.(emerge 를 come up or out into view 또는 come to light 정도로 해석하는게 맞지 않을까. ''이제 디자인 패턴은 객체지향 프로그래밍의 연구와 개발에 있어서 중요한 위치를 가지고 있으며, 디자인 패턴 커뮤니티들이 새로이 등장하고 있는 추세입니다.'' 그래도 좀 어색하군. -_-; -- 석천 바꿔봤는데 어때? -상민 -- DeleteMe)gogo..~ 나중에 정리시 현재 부연 붙은 글 삭제하던지, 따로 밑에 빼놓도록 합시다.
''Design Patterns'' describes 23 design patterns for applications implemented in an object-oriented programming language. Of course, these 23 patterns do not capture ''all'' the design knowledge an object-oriented designer will ever need. Nonetheless, the patterns from the "Gang of Four"(Gamma et al.) are a well-founded starting point. They are a design-level analog to the base class libraries found in Smalltalk development environments. They do not solve all problems but provide a foundation for learning environments. They do not solve all problems but provide a foundation for learning about design patterns in general and finding specific useful architectures that can be incorporated into the solutions for a wide variety of real-world design problems. They capture an expert level of design knowledge and provide the foundation required for building elegant, maintainable, extensible object-oriented programs.
''디자인 패턴''은 객체지향 언어로 제작된 프로그램에 23개의 패턴을 제시합니다. 물론, 23개의 패턴이 객체지향 디자이너들이 필요로 할 모든 디자인의 난제들을 전부 잡아내지는 못합니다. 그럼에도 불구하고 "Gang of Four"(Gamma et al.)에서 제시한 23개의 패턴은 좋은 디자인의 든든한 출발을 보장합니다. 이 23개의 패턴은 Smalltalk class libraries에 기반을한 디자인 수준(design-level) 분석(analog)입니다. 이 패턴을 이용해서 모든 문제를 해결할 수는 없지만, 전반적이고, 실제 디자인의 다양한 문제들을 위한 해결책을 위한 유용한 지식들의 기반을 제공할것입니다. 또, 이 패턴을 통해서 전문가 수준의 디자인 지식을 취득하고, 우아하고, 사후 관리가 편하고, 확장하기 쉬운 객체지향 프로그램 개발에 기초 지식을 제공하는데 톡톡한 역할을 할것입니다.
Smalltalk Companion에서, 우리는 패턴의 "base library"를 추가하는 것보다 앞으로 요구될 수 있는 패턴으로 때때로 확장하고 해석해서, 설계자나 프로그래머를 위해 제공한다.
''Smalltalk Companion에서, 우리는 패턴의 'base library'를 추가하지 않습니다. 그것보다, 우리는 base library들을 Smalltalk 의 관점에서 해석하고 때?灌? 확장하여 Smalltalk 디자이너와 프로그래머를 위해 제공할 것입니다. 우리의 목표는 '''Design Patterns'''을 대체하려는 것이 아닙니다. '''Design Patterns''' 대신 Smalltalk Companion을 읽으려 하지 마시고, 두 책을 같이 읽으십시오. 우리는 이미 Gang of Four에서 잘 문서화된 정보를 반복하지 않을겁니다. 대신, 우리는 GoF를 자주 참조할 것이고, 독자들 역시 그래야 할 것입니다. -- 문체를 위에거랑 맞춰봤음.. 석천''
Learning an object-oriented language after programming in another paradigm, such as the traditional procedural style, is difficult. Learning to program and compose application in Smalltalk requires a complex set of new skills and new ways of thinking about problems(e.g Rosson & Carroll, 1990; Singley, & Alpert, 1991). Climbing the "Smalltalk Mountain" learning curve is cetainly nontrivial. Once you have reached that plateau where you feel comfortable building simple Smalltalk applications, there is still a significant distance to the expert peak.
다른 이론적인 테두리안에서 프로그램(''전통적인 절차식 스타일'')을 한 후 객체 지향 언어를 배우는 것은 어렵다. Smalltalk 안에서 복합된 응용 프로그램 하는 것을 배우는 것은 복잡한 새로운 기술과 문제에 대한 새로운 사고 방식을 요구한다.(" e.g Rosson & Carroll, 1990; Singley, & Alpert, 1991") "Smalltalk" 라는 산을 오르는 것은 확실히 사소한 것이 아니다. 일단 당신이 간단한 Smalltalk 응용 프로그램을 만드는 데 자신이 있는 경지에 닿았다고 해도, 아직 전문가의 경지와는 분명한 차이가 있다.
* How to use the specific tools of the Smalltalk interactive development environment to find and reuse existing functionality for new problems, as well as understanding programs from both static and runtime perspective
* 현존하는 기반 class 라이브러리로부터 이용가능한 class, methods. 그리고 그 모듈들(현재는 functionality를 function 군들 또는 모듈 정도로 해석중. 태클 바람. --;)에 대해
* 새로운 문제를 찾고 문제 해결을 위한 기존의 모듈을 재사용하기 위해, 또는 정적이거나 동적인 관점 양쪽 측면에서 프로그램을 이해하기 위해 어떻게 Smalltalk IDE 툴을 사용해야 하는가에 대해
* 어떤 클래스들이 frameworks로서 서로 잘 작동하는지에 대해
* 객체의 환경설정과 상호작용, 이러한 서로 협력하는 객체들이 해결해야할 문제들의 정렬 등에서 반복되는 패턴에 대해
A '''design pattern''' is a reusable implementation model or architecture that can be applied to solve a particular recurring class of problem. The pattern sometimes describes how methods in a single class or subhierarchy of classes work together; more often, it shows how multiple classes and their instances collaborate. It turns out that particular architectures reappear in different applications and systems to the extent that a generic pattern template emerges, one that experts reapply and customize to new application - and domain-specific problems. Hence, experts know how to apply design patterns to new problems to implement elegant and extensible solutions.
'''디자인 패턴'''은 끊이없이 발생하는 클래스 구성상의 문제에 해결책을 제시하는 재사용할수 있는 실행 모델이나 아키텍처이다. 때로 패턴은 단독적이거나 하위 클래스 구조에서 어떻게 매서드 들이 함께 작용하는지를 묘사한다.; 아마도, 패턴상에서는 좀더 빈번히 다중 클래스나 그들의 인스턴스의 협력을 보여줄다.
'''''패턴은 각기 다른 어플리케이션과 시스템상에서 재현되는 특별한(고유한, 플랫폼 종속적인) 아키택처, 전문가들이 새로운 어플리케이션,분야에서 발생하는 특별한 문제들을 제거한다. '''''(위에서 쓰인 one이 particular architecture와 동등한 위치로 해석한 방법. 다른의견 제안바람-상민
그러므로, 전문가들은 어떻게 새로운 문제에 대하여 고아하고 확장성있는 해결책으로 안내하는 디자인 패턴의 활용 방법을 알고 있다.
(그러므로, 전문가들은 새로운 문제를 해결하기 위해 명쾌하고 확장성이 뛰어난 디자인 패턴을 적용하는 방법을 알고 있다.)
In general, designers -- in numerous domains, not just software -- apply their experience with past problems and solution to new, similar problems. As Duego and Benson(1996) point out, expert designers apply what is known in cognitive psychology and artificial intelligence as '''case-based reasoning''', remembering past cases and applying what they learned there. This is the sort of reasoning that chess masters, doctors, lawyers, and architects empoly to solve new problems. Now, design patterns allow software designers to learn from and apply the experiences of other designers as well. As in other domains, a literature of proven patterns has emerged. As a result, we can "stand on the shoulders of giants" to get us closer to the expert peak. As John Vlissies (1997) asserts, design patterns "capture expertise and make it accessible to non-experts" (p. 32).
디자이너들-소프트웨어에만 국한하지 않은 수많은 분야에서-은 그들의 과거의 문제와, 해법에 경험을 비슷한 문제에 적용 시킨다. '''''Duego와 Genson(1996)은 전문 디자이너들이 사례를 기반으로 경험에서 인지한 지혜안에서 과거의 사례를 기억하고 그들이 배운것을 적용시키는 것에 주목한다. (생략 및 의역) ''''' 이것은 체스의 고수, 의사, 변호사 그리고 건축가들이 새로운 문제에 대응하는 추론 방식의 한 방식이다. 현재, 디자인 패턴은 소프트웨어 디자이너들이 배워온것들과 다른 분야의 디자이너(other designer)들의 경험들 모두를 감안한다. 이런 노력들은 결과적으로, "거인의 어깨에 올라서 있는것" 같은 방법으로 우리를 훌륭한 디자인에 이끌수 있다. John Vlissies(1997)은 디자인 패턴은 "전문 지식을 잡고 비전문가들이 그것을 이용하기 쉽게 해주는 것이라고 평한다. (p. 32).
- PatternOrientedSoftwareArchitecture . . . . 82 matches
* 3가지 다른 레벨(소프트웨어 구조,모든 디자인, idioms)에서 어떻게 패턴이 발생하는지 이 책에 자세히 나와 있다. 이러한 통합적인 접근 다소 이론적일거 같이 보이지만, 저자는 12개의 패턴과 실제로 사용되는 예제를 많이 보여 준다.
* 크게 네개의 그룹으로 나눌 수 있다.
|| From Mud to Structure || Layer, Blackboard Pattern || 전체적인 시스템을 상호 협력하는 하부 그룹으로 나누어서 관리 힌다.||
* 시스템의 각 부분은 교환 가능해야 한다. (Design for change in general is a major facilitator of graceful system evolution - 일반적으로 변화에 대비한 디자인을 하는것은 우아한 시스템 개발의 주요한 촉진자이다.)
* 이렇게 레이어로 깨끗이 나누어서 프로그램을 짜면 팀으로 작업을 할때 좀더 능률적이다.
* 해결책(Solution) : 자신의 시스템을 적당한 숫자의 레이어로 나누고 각 레이어를 알맞는 순서에 맞게 쌓는다
* Scenario1 - top-down communication, 가장 잘 알려진것이다. 클라이언트가 레이어 N에게 요청을 한다. 그러면 레이어 N은 홀로 모든 작업을 할 수 없기 때문에 하부 작업을 레이어 N-1에게 넘긴다. 그러면 레이어 N-1은 자신의 일을 하고 레이어 N-2에게 하부 작업을 넘기고, 이런식의 과정이 레이어 1에 도달할때까지 이루어 진다. 그래서 가장 낮은 수준의 서비스가 수행된다. 만약 필요하다면 다양한 요청에 대한 응답들이 레이어 1에서 레이어 2, 이런식으로 레이어 N에 도달할때까지 이루어진다. 이러한 top-down 소통의 특징은 레이어 J는 종종 레이어 J+1로부터 온 하나의 요청을 여러개의 요청으로 바꿔서 레이서 J-1에게 전한다. 이는 레이어 J가 레이어 J-1보다 더 추상적이기 때문이다. 덜 추상적인것이 여러개 모여서 더 추상적인것이 되는 것을 생각해보면 이해가 갈것이다.(예를 들어 복잡한 소켓 프로그래밍을 자바에서는 간단한 명령어로 금방 한다.)
* Scenario2 - bottom-up communication, 레이어 1에서 시작하는 연쇄적인 동작들이다. top-down communicatin과 헷갈릴 수도 있는데 top-down communication은 요청(requests)에 의해서 동작하지만, bottom-up communication은 통지(notifications)에 의해서 동작한다. 예를 들어서 우리가 키보드 자판을 치면, 레벨1 키보드에서 최상위 레벨 N에 입력을 받았다고 통지를 한다. bottom-up communicatin에서는 top-down communication과는 반대로 여러개의 bottom-up 통지들(notifications)은 하나의 통지로 압축되어서 상위 레이어로 전달되거나 그대로 전달된다.
* Scenario3 - 레이어 N-1이 cache로 작용하여서, 레이어 N의 요청이 레이어 N-1에게만 전달되고 더이상 하위 레이어로 전달되지 않는다. 요청을 보내기만 하는 레이어들이 상태가 없는(stateless) 반면에 이러한 cache 레이어는 상태 정보를 유지한다. 상태가 없는 레이어들은 프로그램을 간단하게 한다는 이점이 있다.
* Scenario4 - 레이어 1에서 event가 감지되었지만 레이어 3까지만 가고 더이상 가지 않는 경우와 같은 경우, 예를 들어서 성격 급한 클라이언트가 데이터를 요청하고, 못 기다리고 금방 다시 요청하는 경우에 첫번째 요청으로 응답 데이터가 가다가 두번째 요청이 오는것과 교차하게 된다. 이때 두번째 요청도 첫번째 요청과 같은 것이기에 이때 이 요청이 도이상 가지 않게 한다.
* Scenario 5 - N개의 레이어들로 이루어진 2개의 stack 들이 서로 소통 하는 경우이다. 통신 프로토콜이 대표적인 예이다. 한쪽의 레이어 N에서 보내는 요청은 결국 하위 레이어 1(하드웨어 레벨)을 통해서 상대편 하위 레이어1로 전해지고, 이것은 또 N 레이어로 쭉 올라간다.
* 실행(implementation) - 아래 과정은 모든 application에 반드시 가장 좋은 방법이라고 할 수는 없다. 종종 bottom-up이나 yo-yo 방법으로 접근하는것이 더 좋을지도 모른다. 자신의 application에 필요하다 싶은 과정을 짚어서 하면 된다.
* task(과업,일) 들을 레이어에 배치하기 위한 추상적인 기준을 정의 하여라. 실제적인 소프트웨어 개발에서 우리는 종종 추상적인 기준들의 혼합을 사용한다. 예를들어서 하드웨어적인 관점에서 저 수준의 레벨들의 모습을 정하고, 개념적인 복잡성으로 고 수준의 레벨을 정한다.
* 당산의 추상적인 기준에 따라서 추상 레벨들의 갯수를 정하여라. trade-off를 생각해보면서 레이어를 통합하거나 분리해라. 너무 많은 레이어는 프로그램에 과중한 부담이 되고, 너무 적은 레이어는 구조적으로 좋지 않게 된다.
* 각 레이어를 체계화 하여라. 어떤 레이어가 복잡하면 component들로 나누어 져야 한다.
* Layering Through Inheritance : 상속 관계로 레이어 패턴을 구현. 현재 뜨는 OOP로 할 수 있다.
* 레이어의 재활용 - 프로그래머들은 현재 존재하는 레이어가 자신의 목적에 맞지 낳는다고 이미 있는것을 재사용 하기보다는 새로 짜는 경우가 많다. 그러나 현재 존재하는 레이어를 재사용(black-box reuse)하는 것은 개발에 드는 노력과 프로그램의 결점들을 극적으로 감소 시킬 수 있다.
* Dependescies are kept local : 의존성이 특정 부분에만 걸쳐 있기 때문에 이렇게 된다. 따라서 시스템이 portability하게 된다.
* Exchangeability : 특정 레이어를 쉽게 바꿀 수 있다. 그것을 바꿔도 전체적으로 다른 부분은 안바꿔도 된다. 바꾸는 것은 당연히 그 바꿀 대상 레이어의 인터페이스데로 구현되어 있는 것이어야 한다.
* cascades of changing behavior : 레이어를 바꾸는것뿐만 아니라 그 인터페이스를 바꿀경우에 다른 부분까지 수정해줘야 한다는 말 같다.
- 임베디드방향과가능성/정보 . . . . 82 matches
임베디드 분야로 제대로 된 길을 잡기 위해서 C, Assembly, Kernel, 보안, 등등을 Master 수준으로 올려야한다.
(소수의 천재들... 프로그래밍 제네레이터 --... 저걸 만들려고 아이디어를 가지고 있었는데 같은 생각을 하는 사람이 있었네... -_- 컴파일러 이론은 너무 어렵지만... 가장 먼저 만들 수 있을까...)
예전부터 임베디드는 결국 pc의 재탕이다..라고 하셨는데 물론 100% 맞는 말씀입니다. 20년~15년 전의 기술, 빌게이츠가 dos를 가지고 pc산업을 일으켰던 그 기술이 결국 임베디드 아니냐..?라고 하시면 이 역시 맞는 말씀입니다. 그리고 이것은 결국 임베디드가 옛날 기술, 옛것의 재탕이다..라는 말씀이시죠.. 하지만 그렇게 따진다면 전기공학은 100년전 것의 재탕삼탕이고 이동통신(ldpc)이나 ASIC backend 관련 tools(synthesis,testing)도 대부분 이론은 20~40년전에 완성된 분야구요. 오히려 임베디드는 80년부터 이어져온 비교적 신기술(?)이 적용된 분야라 생각되는군요. 먼저 이런 말씀을 드린 이유는 임베디드 분야의 기술에 관해 조금 비관적인 생각을 가지신 것 같아서 입니다.
이제 제 개인적인 생각을 말씀드리죠. 먼저 임베디드 시스템이 쓰이는 용도에 대해 조금 시야가 좁으신 것 같습니다. 적어도 집에 PC가 설치되어 있는 곳에서 손쉽게 PC로 할 수 있는 일은 절대로 임베디드 기기로 나오지 않겠죠. 그리고 임베디드 기기에 "하드 달고 모니터 달고 USB니 뭐니 다 달고나면.."을 하면 절대 안됩니다. 이러면 이미 임베디드 기기가 이니고 general한 pc입니다. 임베디드 기기는 말그대로 application specific, implementation specific한 경우에만 그 의미를 가지죠. 이러한 분야는 적어도 당분간은 general한 tool(님 말씀처럼 visual한 tool들)이 사용될 수 없습니다. 그리고 최근 유행하는 embedded linux의 경우는 더 요원하죠.
둘째로 기술적으로 말씀드리죠. pc의 경우는 application만 하면 됩니다. 그 좋은 visual tool들이 hw specific한 부분과 커널 관련한 부분은 다 알아서 처리해 줍니다. 하지만 임베디드 분야는 이 부분을 엔지니어가 다 알아서 해야 하죠. pc의 경우 windows를 알 필요없지만 임베디드 엔지니어는 os kernel을 만드시 안고 들어가야 합니다. 이 뿐만 아니라 application specific/implementation specific하기 때문에 해당 응용분야에 대한 지식도 가지고 있어야 하며/ 많은constraint 때문에 implementation 할 때hw/sw에 관한 지식도 많아야 하죠. 경우에 따라서는 chip design 분야와 접목될 수도 있습니다.(개인적으로 fpga 분야가 활성화 된다면 fpga도 임베디드와 바로 엮어질거라 생각합니다. 이른바 SoC+임베디드죠. SoC가 쓰이는 분야의 대부분 곧 임베디드 기기일 겁니다. ASIC도 application specific하다는 점에서 임베디드 기기와 성질이 비슷하고 asic의 타겟은 대부분 임베디드 기기입니다.) 대부분의 비메모리 반도체칩은 그 용도가 정해져있으며, 비메모리 반도체를 사용하는(혹은 설계하는 사람)을 두고 임베디드 엔지니어라 할 수 있죠. 사실 임베디드는 범위가 매우 넓기 때문에 한가지로 한정하기 힘듭니다.
그리고 전망입니다. 저는 앞으로 PC보다 더 큰 시장이 열릴거라 확신합니다. general한 pc를 필요로 하지 않는 응용 분야는 엄청나게 많습니다. 다른 산업이 발전할수록 임베디드 기기 시장은 비례해서 늘어날 것이구요. 홈오토메이션, 모든 가전기기, 로봇, 자동차전자장치, 기차시스템, 항공.. 일일이 열거할 수 없습니다. 참고로 5~8호선 열차시스템에 쓰이는 것도 임베디드 시스템(모토롤라mpc series)입니다. 20
년전 빌게이츠 시절엔 불가능했지만 현재는 가능한 것은 반도체산업의 비약적 발전 때문이겠죠. 이전엔 micom시장+고성능,고기능화로 인해 새로 창출되는 시장을 합쳐서 임베디드 시장이 부를 수 있겠군요. 특히 현재 많은 분야에서서 진행되는 연구가 cpu를 기반으로 하고 있는데, 그 응용분야는 다 제각각 입니다.(즉, 임베디드 시스템이죠.)
너무 낙관적으로 말씀드린 것도 같군요. 제 생각에 적어도 정부가 임베디드 분야에 차세대 산업이 될 것이라고 판단한 것은 옳다고 봅니다. 우리 정부만 그런게 아니고 세계적인 대세죠. 하지만 그에 따라 그 분야에 종사하는 사람 대우가 좋을 것이냐? 이것도 낙관적이라 말씀드리지 못합니다. 정부가 많은 인력을 쏟아 붙는다면 단순한 작업, 노가다식 일만 하면 it산업의 재탕이 될 것입니다. 적어도 정부가 나서는 일에서 엔지니어가 행복한 경우는 없었죠. 하지만 임베디드는 그 뜻처럼 타분야와 관련성이 높기 때문에 전문성을 기르기도 좋다고 생각합니다.(즉, pc산업과는 다르다..는 것이죠.)
한마디 더 추가하겠습니다. constraint가 거의 없는 시스템이 pc입니다. (단순pc라면 200만원대 이하가 유일한 조건인가요..? 특별한 작업을 위한 시스템이면 수천만원도 가능하겠군요) 하지만 임베디드 시스템은 많은 constraint가 존재합니다. 크기,무게,가격,온도,습도,처리량,time-to-market 등등..
한가지 예를 든다면 님 말씀대로라면 가정에서는 주로 게임기로 쓰이는 pc가 게임시장에서는 임베디드 기기(플스,x-box)에 ko패를 당했습니다. 결국 앞으로 pc가 같는 기능은 대부분 임베디드 기기로 옮겨 갈 것입니다.(pda,smart phone..등등) 더욱이 지금까지 PC가 쓰인 분야(별로 없죠)말고 다른 분야에 이미 많은 임베디드 기기가 쓰이고 있고, 앞으로 더 많이 쓰일 겁니다.(각종 robotics분야, 무인분야, 다시말해 digital이 쓰이는 거의 모든 분야.. digital world=embedded)
PC도 주로 집이나 사무실에서 쓰이는 다른 임베디드 기기와 다를게 없습니다. 거기에 들어가는 CPU는 INTEL이 만들고 OS는 MS가 만들죠. 그런데 PC USER가 엄청나게 많기 때문에 pc분야는 물론이고 다양한 분야의 고성능 TOOL들이 나오게 되는 것이죠. 일반적인 임베디드 기기에서 이런 환경을 기대하긴 힘듭니다. 왜냐하면 pc는 ms와 intel에서 standard를 정하지만 embedded는 정할 수 있는 주체도 없고 각각 시장도 크지 않습니다. (ms가 win ce로 노력 중이긴 하는데 유료이며 거기다 비싸다는 취약점이 있죠. 그리고 모든 분야를 cover할 수 없습니다.)
복사기의 경우는 OA기기가 주로 사용되는 곳이 사무실이고 이 경우에는 복사의 편리성을 위해 복사기에 PC가 임베디드 되었다고 해야 옳겠죠.(이 경우 pc가 임베디드시스템이 된 것이군요(?)..)
일본의 경우 트론 프로젝트가 올해(작년인지 헷갈리네요.)로 20주년을 맞이한다고 하던데 트론 얘기를 신문에서 본 건 작년이 첨이었구요.(제가 신문을 잘 안 봐서 그럴지도..--;)
그렇게 뜬적은 없습니다. 솔직히 요새는 국가가 나서서 바람을 일으키려고 무지 노력하는듯해보입니다. 유비쿼터스도 말뿐으로 끝날 가능성이 상당히 많은데다가, 실제 그게 얼마나 상업적으로 가치가 있느냐에 대해서 아무도 말 못하죠. 임베디드의 경우 국내에서 키울려고 무지 노력하지만, 생각보다 그 분야가 돈을 못벌기때문에(대기업하청하다가 다들 때려칩니다) 뜬다기보다는 언론플레이라고 봅니다. 싼값에 부려먹을려는... S사의 모 세탁기에 들어가는 모듈에 제품납품할려고 했다가 거의 공짜로 내놓으라는 압박이 있었었다는 얘기를 얼마전에 들었던 기억이 나네요.
별로 안뜨는듯 한데요..임베디드 하는 업체는 많은데.. 매출은 그리 신통치 않은것 같고.. 핵심칩 설계회사만 돈을 버는듯.. 나머지는 거의다 칩 사다가 조립하는 노가다꾼으로 전락중이죠.. 유비쿼터스의 경우에도.. 고성능의 단말기를 대량으로 제조해서 보급하면 되기때문에.. 설계및 제조하는 사람들은 극소수의 인원으로도 충분합니다. 뭐 정부에서 하는거라면..웹디자이너꼴 나겠네요..
음... 윗분들 말씀이 대개 맞는듯 하구요. 괜히 없던것도 아닌데 뭐 있는양 임베디드 어쩌고 하면서.. 얼마나 얘기 할꺼리가 없으면 그러겠습니까. 음.. 그리고 유비쿼터스라... 실용화되면 여러가지로 파급은 좀 있을듯 한데... 아직은 셀폰으로 tv나 동영상보는것 처럼.. 없어도 그만, 있어도 그만일 테지만 뭐 돈좀 긁어내려고 여기저기 들쑤시거나 하면 지금 셀폰 국민학생들도 다 가지고 있듯이.. 이상하게(?) 잘 팔릴지도 모르죠.
정부가 개입하면 시장 왜곡이 발생하여 윗분말씀처럼 웹디 꼴 나기 십상이죠. 임베디드는 핵심부품 설계가 힘들지 프로그래밍은 단순노가다 성이 강합니다. 정부가 띄우는거 막무가내로 조사도 안하고 진로결정하심 지금 웹디꼴 나니 조심하세요.
부풀려진 시장과 기술, 장미빛 환상으로라도 발목을 붙잡으려는 의도가 너무 빤히 보이니 문제죠. 당근과 채찍이 병행되어야 하거늘 당근같지도 않는 당근을 내밀고 반대할때의 냉정함이란.. 나중에 어떤 꼴 날지 두고 볼 일입니다.
그리고 과거에도 CPU를 사용하여 제품들을 제어하는 업무가 많았는데.. 그것을 운영하는데 인터럽트나..무한루프를 이용하여 제어를 한 반면에..요즘에 임베디드 시스템이라고 하는것들은 간단한 운영체계를 도입한게 다른데.. 이것도..별것 아닌데.. 왜 임베디드 엔지니어니..뭐니떠드는지 잘 모르겠습니다. 그냥 마이크로 프로세서를 이용하는 땜쟁이들이 기본으로 익혀야할.. 노가다이고... 핵심 부품 예를들면 ARM7의 코어부분등은 핵심기술을 가진 회사에서 독점하고있어서..그걸 이용해서 칩을 파는 업자나.. 프로그래밍짜는 엔지니어나..그냥.. 그들의 하수인에 불과할수도 있겠네요..요즘에는 임베디드 OS도 객체지향을 이용하고.. 그래픽 라이브러리들이 잘 나와있어서 WIN CE나 윈도우즈에서 제어용 프로그래밍 짜는 수준의 단순노가다로 넘어가고있는 추세입니다.. 하여간에 이것도 다들 하니까.뭐.. 별 영양가 없는것 같습니다.. 모 업체에서.. 벼레별거 다할수있는 기술적인 능력이있는데.(암9보드에 하드도달고 액정도달고..달수있는것 다 달고..) 막상 그 보드를 만들어놓고 쓸데가 없답니다. 요즘 추세를 보니까..몇년전까지도 고급기술자의 업무였던.. PC에서 기계제어하는것들도..이젠 전문대졸업자나..고졸자가 주로하는 일이 되어버렸더군요.. 제 생각에는 미래에는 엔지니어가 그다지 많이 필요하지는 않을것 같습니다. 소수의 천재들이.. 프로그래밍 제네레이터.. 임베디드 칩 제네레이터 만들어서.. 가상현실상에서..뚝딱 뚝딱 맞추면.. 결과물이 떡하니.그냥 나와버리는 시스템이되고.. 다른 대부분의 경우에는 시스템이 거의모든 상황을 커버할만큼 고성능이되어버려서..별 예외조치에대한 필요성이 없는것이죠.. 엔지니어링 분야도..워드프로세서가 지구상에 몇개 안되는걸로 다 카바되는것처럼..그리될거같고.. 하여간에.. 기술분야에서도 극빈층에 속하는 재화를 소비만 하는 덧샘 뺄샘도 모르는 대다수의 사람과..극소수의 모든것을 다 할수있는 초기술을 가진 과학자들의 두가지 집단만이 살아남을듯 하네요.. 아마도 그런 과학자들에 의해 사육되겠지요...
임베디드 분야는 어느정도 힘들다. 객관적으로 봐서 소수의 패러다임을 주도하는 개발자가 아니고서는 살아남기가 힘들다. 낙관론적으로 보면 장미빛이지만, 실제로 생각해봤을 때 생산성이 없고, 소수의 개발자가 툴을 개발 하는 순간 이 분야의 생명도 웹 디자이너처럼 끝이난다. 몇 년 후 사회에 진출 하는 사람들이 있을 때, 학부 과정에서 임베디드로 눈을 돌린 사람은 직업을 가지기가 힘들지도 모른다. 확률적으로 임베디드가 성공할 확률이 성공하지 못할 확률보다 낮다.
- PairProgramming토론 . . . . 81 matches
PairProgramming 자체에 대해 조금 설명을 드리자면, 우선 이건 Driver와 Observer로 역할 분담이 되는데 정해진 게 아니고, 계속 바뀝니다. 운전하는 사람이 있고, 옆에서 코치하는 사람이 있는 거죠. 실제로 타이핑을 하는 사람은 타이핑이란 작업에 몰두하느라 지력을 좀 빼앗깁니다. 대신 이걸 관찰하는 사람은 여유가 있으므로 이것 저것 객관적인 코치를 해줄 가능성이 높죠. 그런데, 예를 들어, Driver가 코딩을 하다가 Observer가 "그게 아냐 이렇게 하면 더 좋아"하면서 설명을 하는데 잘 이해를 못하겠다 싶으면 키보드를 밀어주며 "니가 해봐"라고 말합니다. 역할 바꾸기가 되는 거죠. 이게 아니더라도, 가능하면 두 사람이 지속적으로 역할 바꾸기를 하면 좋습니다. (ExtremeProgramming에선 타이머를 이용해서 정해진 시간이 되면 역할 바꾸기를 하는 예도 있습니다) 뭐 어찌되었건, 피곤하다 싶거나 지금 머리가 잘 안돌아간다 싶으면 옆 사람에게 키보드를 넘기면 되죠.
그리고 전문가와 비숙련자가 pairing을 해도, 전문가한테도 도움이 많이 됩니다. 예를 들어 변수이름 같은 것은 전문가도 실수할 수 있죠. 이걸 지켜보던 비숙련자가, "어라.. 아까는 PrinterStatus라고 치더니 지금은 PrintersStatus라고 치시네요..."라고 하면, '아차!'하는 거죠. 또 비숙련자가 코드를 이해를 못해서 설명을 해주게 되면, 전문가 스스로도 많은 공부를 하게 되고, 설령 그 사람이 그 설명을 이해를 못해도, "아 이런 부분은 이해를 잘 못하는구나. 앞으로 이건 더 쉽게 설명해야겠군"하고 잘못을 스스로에게 구하면서, 또 학습이 발생하죠.
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기 인수인계식으로 기존의 프로그램들을 이해시키는데에도 괜찮은 방법이라 느끼고 있습니다.
한편, 보통 숙련자/비숙련자 가 pairing 할때는 한쪽 방향으로 프로그래밍 스타일 등의 무게가 치우쳐지기 쉽다고 생각하는데요. 보통 비숙련자인 사람이 수동적인 입장을 취하는 경우가 많기 때문에.. 다른 한편, 숙련자인 사람이 마음의 벽을 넘지 못하는 우를 범할때에도 비숙련자인 사람이 '내가 저 사람보다 잘 모르니까...' 식으로 끌려가는 경우가 있을수 있다고 봅니다. (실제로 가끔 제가 '설명할 수 없는 부분은 혼란시켜라' 라는 말을 실천에 옮기는 경우가 종종 발생한다는.. -_-;;) -- 강석천
좀 시각을 넓힐 필요가 있을 겁니다. "전체 팀"과 "전체 개발 프로젝트"라는 관점이죠.
겉으로 보기엔, 왕초보/왕도사의 짝은 상당히 비효율적일 것 같지요. PairProgramming을 한다고 해도, 왕도사가 키보드를 거의 독차지하고, 왕초보가 간간히 던지는 멍청한 질문은 둘(정확히는 왕도사)의 프로그래밍 속도를 늦출 것이고요. 또, 아무것도 못하고 멍청히 지켜봐야만 하는 왕초보 역시 답답할 겁니다. 괜히 질문했다가는 핀잔받기 일수이고. 둘 다 짜증나는 상황이죠.
이런 상황에서는 SoloProgramming이 낫다는 말을 하고 싶을 겁니다. 왕초보는 왕초보대로 짜고, 왕도사는 또 자기 마음대로(full-speed로) 짜고. 하지만, 이건 기본적으로 잘못된 관점에서 오는 문제입니다. 제대로 된 PairProgramming은 전체 팀은 물론 각 개인에게도 모두 이득을 줍니다.
조금 장기적인 면에서 그리고 팀의 수준에서 생각해 보세요. 문제많은 코드만 만들어내는 사람과, 남들이 이해하기 힘든 코드만 만들어내는 사람이 각자 나름의 코드를 만들어내는 팀의 전체 효율과, 항상 왕도사의 코치를 받는 왕초보와, 왕초보의 이해도에 맞추기 위해 노력하는 왕도사로 이루어진 팀(왕초보/왕도사 모두 "뭔가 학습"하는 것이 있게되죠)의 전체 효율. 어떨까요? 더군다나, 그 둘이 PairProgramming을 하면 할 수록 왕초보는 왕도사 수준에 근접합니다 -- 엄청나게 빠른 성장을 목격할 수 있죠. 굳이 초기 단계의 비용이 있다고 쳐도, 그건 일종의 투자로 봐야 할 겁니다. --김창준
PairProgramming 을 위해 특별히 필요한 지식이 있는지 궁금합니다. (주로 자연스럽게 따라오는 것들이 XP 관련쪽 이야기여서.. XP에 대한 구체적인 지식이 필요한지 궁금합니다.)
XP 방법 중에서 가장 손쉽게, 곧바로 적용할 수 있는 것 중 하나가 PairProgramming입니다. 물론 여타의 XP 방법들과 마찬가지로 최고의 효과를 위해서는 다른 실행법을 함께 수행해야 합니다만, 이것 하나만이라도 제대로 하면 가시적인 차이를 느낄 것입니다. 특별히 어떤 지식보다는 마음 자세와 태도가 더 중요합니다. --김창준
Strengthening the Case for Pair-Programming(Laurie Williams, ...)만 읽어보고 쓰는 글입니다. 위에 있는 왕도사와 왕초보 사이에서 Pair-Programming을 하는 경우 생각만큼 좋은 성과를 거둘 수 없을 것이라고 생각합니다. 문서에서는 Pair-Programming에서 가장 중요한 것을 pair-analysis와 pair-design이라고 보고 말하고 있습니다.(좀 큰 프로젝트를 해 본 사람이라면 당연히 가장 중요하다고 느끼실 수 있을 것입니다.) 물론 pair-implementation도 중요하다고는 말하고 있으나 앞서 언급한 두가지에 비하면 택도 없지요. 그러니 왕도사와 왕초보와의 결합은 아주 미미한 수준의 이점만 있을뿐 실제 Pair-Programming이 주창하는 Performance는 낼 수 없다고 생각됩니다. 더군다가 이 경우는 왕도사의 Performance에 영향을 주어 Time dependent job의 경우 오히려 손실을 가져오지 않을까 생각이 됩니다. Performance보다는 왕초보를 왕도사로 만들기 위한 목적이라면 왕초보와 왕도사와의 Pair-Programming이 약간의 도움이 되기는 할 것 같습니다. 그러나 우리가 현재 하는 방식에 비해서 얼마나 효율이 있을까는 제고해봐야 할 것 같습니다. - 김수영
Pair 할때의 장점으로 저는 일할때의 집중도에 있다고 보고 있습니다. (물론 생각의 공유와 버그의 수정, 시각의 차이 등도 있겠지만요.) 왕도사/왕초보 Pair 시의 문제점은 왕도사가 초보자가 coding 때에 이미 해야 할 일을 이미 알고 있는 경우 집중도가 떨어지게 된다는 점에 있습니다. Pair 의 기간이 길어지면서 초보쪽이 중고급으로 올라가는 동안 그 문제들이 해결이 될 것 같은데, 아쉬운 점은 Pair 를 긴 기간을 두고 프로그래밍을 한 적이 없다는 점입니다. (하나의 프로젝트를 끝내본 역사가 거의 없다는.)
XP 를 할때 이야기되는 것중 하나가 XP 로 궤도에 올리는 기간에 관한 문제인데.. (아무래도 팀원들이 해당 지식들을 알아야 하니까..) 아직 이부분에 대해서는 저는 머리가 안굴러가네요. (아직 경험이.. 흐.) --석천
ps. 로코즌에선가.. XP를 적용하고 있다고 하는데, 어떻게 적용되고 있는지 궁금해지네요.
그냥 프로그래머 차원인 걸로 알고있습니다. (지금은 바뀌었나?) 로코즌 사람들하고 스터디도 해보고 했는데, 솔직히 말하면 그쪽 사람들은 대다수가 우선 자신의 그릇을 비우지 않은 경우가 많은 듯 해서 좀 안타깝습니다. 리팩토링이나 유닛테스트 등을 말하지만 제가 보기에는 XP적이지 못한 게 많아 실망을 하게 되더군요. 공부는 엄청나게 하신 분들이지만, 달보다 자신의 손가락에 치우치는 우를 범했지 않나 싶습니다. --김창준
''왕도사와 왕초보 사이에서 Pair-Programming을 하는 경우 생각만큼 좋은 성과를 거둘 수 없을 것이라고 생각합니다.''
이 세상에서 PairProgramming을 하면서 억지로 "왕도사 왕초보"짝을 맺으러 찾아다니는 사람은 그렇게 흔치 않습니다. 설령 그렇다고 해도 Team Learning, Building, Knowledge Propagation의 효과를 무시할 수 없습니다. 장기적이고 거시적인 안목이 필요합니다.
''문서에서는 Pair-Programming에서 가장 중요한 것을 pair-analysis와 pair-design이라고 보고 말하고 있습니다.(좀 큰 프로젝트를 해 본 사람이라면 당연히 가장 중요하다고 느끼실 수 있을 것입니다.) 물론 pair-implementation도 중요하다고는 말하고 있으나 앞서 언급한 두가지에 비하면 택도 없지요.''
이 말은 자칫하면 사람들을 호도할 수 있다고 봅니다. 할려면 정확하게 레퍼런스를 하고 인용부호를 달고 자신의 의견은 분리를 하세요. pair-implementation이 "앞서 언급한 두가지에 비하면 택도 없다"는 말은 어디에 나오는 말입니까? 그냥 자신의 생각입니까? 그리고, XP에서는 implementation time과 analysis, design time이 따로 분리되지 않는 경우가 많습니다. 코딩을 해나가면서 design해 나갑니다. Pair로 말이죠.
- 우리가나아갈방향 . . . . 81 matches
우이동으로 MT안가는 MT의 치밀한 계획이 우리가 나아갈 방향 쿨럭 이건 아니고.
머 나에게도 이제 일이 시작되는 것이랄까 -_-; 그동안 책 핑계로 놀았지만.. 이젠
지식에 대해서는 공유할 수 있지만, 경험과 공부한 것 자체는 공유할 수 없다는 것임을.. 결국은 공부는 스스로 하는 것일테니. 똑같은 책의 한 구절을 보아도 사람에게마다 영양소가되는 위치가 다른 것임을. 일종의 훈련인 것에 대해서는 누구도 어떻게 해줄 수가 없는거지.
암튼. 누차 강조하지만. 공부하기위해 모이지 않기를. 공부한 내용을 가지고 모일 수 있기를.. 경쟁과 협동이 자신들 이익과의 같은 방향노선속에서 적절하게 싹틀수 있기를. 학술연구회라는 거창한 이름이 아니더라도, 하고자 하는 욕망이 있다면 그 길은 저절로 열리는 것임을. '빛이 있으라' 라는 한마디가 세상에 빛을 열어놓은 것처럼. 모임 자체가 억지로 만들어주는 것이 아닌, 자신들이 만들어가야 할 것임을.
ZP는 인력 Pool 이고, 모임의 장으로서의 역할만이라도 충실할 수 있다면. 학교가 그 역할을 제대로 못해주고 술자리로도 그 허전함을 채울 수 없을때 ZP가 그 역할을 제대로 해줄 수 있다면. 그것을 ZP의 정체성으로 정의해도 좋지 않을까. 홈 브루 컴퓨터 클럽을 꿈꿀 수 있을지도.--석천 [[BR]]
홈 브루 컴퓨터 클럽을 그 대상으로 한다면 참 좋은것 같다. 우리의 정모가 해당 모임이 될수 있을 것이고, 과거에도 그렇게 하려고 노력했것만, 호응도가 낮았다고 생각한다. 뭐 하지만 계속 바위에 계란을 던지다 보면 언젠가 이끼라도 끼지 않을까. 할수있는 최상은 제자리에서 열심히 --상민
이 말의 의도는 충분히 이해를 하지만 오해의 소지가 있을 것 같아 사족을 답니다. 모여서 할 수 있는 공부가 분명히 있습니다. 이것은 혼자서만 할 수 있는 공부와는 다릅니다. 모여서 하면 아주 좋은 성과를 볼 수 있는, 그러나 혼자서는 하기 힘든 그런 공부가 분명히 있습니다. 수프를 먹으면서 포크의 "비어있음"을 탓하고 스푼의 "차있음"을 찬양하지만, 과일을 먹으면서는 포크의 "비어있음"을 고마워하고 스푼의 "차있음"을 비난하는 법입니다. 사건(event)과 물건(thing), 즉 사물에는 "나"와의 관계 속에서 그것의 "도"를 밝혀주는 길과 쓰임이 생깁니다. 그 길로 다니면 편하고 자연스럽고 쓸모를 얻지만, 자신이 길을 억지로 내려고 하면 불편하고 거북하며 쓸모를 얻지 못합니다. --김창준
''DeleteMe) 오해의 소지가 있게 쓰긴 했네요. 본래의 의도는 (01들은 내가 한 이야기를 들어서 알겠지만) 스터디를 할때, 책을 미리 읽고 난 뒤의 생각이나 프로그래밍을 했을때의 경험들을 들고 올 생각을 하지 않고, 모이고 난 뒤에 그제서야 책을 읽을 생각을 한다는 점을 지적하고 싶었습니다. 모임자체를 하나의 시스템으로 보고 공부하지 않은 자신을 시스템으로 억지로 묶어보려고 하는 모습같아서.. 그 점을 지적하고 싶었습니다. 같이 공부했을때의 효율이 혼자서 할때보다 높기 위해서는 (장점을 가질 수 있으려면) 사전에 공부하려는 해당 부분에 대한 의미를 조금이라도 파악해두어야 한다고 생각합니다. --석천''
따스한 5월의 봄날에 맞이한 제로페이지의 10주년을 진심으로 축하합니다. 10년이라는 적지 않은 시간동안 우리 학회가 만들어온 크고 작은 모습 하나하나는 선배님들과 여러 동기 여러분 그리고 후배님들의 학문에 대한 열정과 서로에 대한 이해와 배려가 일구어낸 아름다운 자화상이라고 생각해봅니다. 우리 제로페이지는 중앙대학교 컴퓨터공학과의 최대 학회이며 여러 학생들의 학술적 비젼을 제시해 주고 있는 중요한 학회입니다. 이런 제로페이지가 좀 더 발전적이고 원숙한 모습을 갖추기 위해서 당부하고 싶은 것들을 몇가지 말씀 드리고자 합니다.
시대의 흐름을 바로 읽어 우리가 해야 할 것들에 대한 명확한 목표를 제시하고 서로 도와가며 공부할 수 있는 분위기를 조성하는데 주도적인 역할을 하길 바랍니다. 낯선 학문에 대한 설레임과 막연한 두려움 때문에 어느 곳부터 손을 대야 할 지 몰라 고민하는 신입생들이 많이 있습니다. 또 프로그래밍 언어 1~2가지를 익혔으나 그 다음에는 무엇을 해야하는지 내가 이 도구를 공부해서 무엇에 써야하는지 몰라 일관성 없는 학습만을 반복하여 제자리를 맴돌고 있는 친구들도 많이 있습니다. 우리 학회에는 훌륭한 선배님도 많이 계시고 능력있는 회원님들도 많이 있다고 자부하고 있습니다. 이런 분들이 배우고자 하는 회원들에게 방향을 제시하고 또 배우는 사람들은 자발적으로 학습하며 자신의 능력을 개발해 나가는 것이 중요합니다.
그리고 타성에 빠지지 않으려는 노력이 중요합니다. 늘상하는 같은 종류의 세미나가 학회 활동의 대부분을 차지하는 일이 매년 반복되어서는 안됩니다. 1,2학년때는 열심히 참여하다가 3,4학년때는 별로 배울것이 없다하여 많은 수의 회원들이 활동을 하지않는 모습에대해 비판만 할것이 아니라 반성해보는 자세를 가져야합니다. 최신기술에 대한 순회 세미나와 조직화된 프로젝트팀을 활성화시켜서 회원들의 동기유발을 유도해야합니다. 컴퓨터의 시작은 하나의 뿌리였지만 지금은 수만갈래로 나뉘어져 혼자서는 각각에 대한 기본적인 지식조차 얻기가 어렵습니다. 항상 새로운 주제로 많은 회원이 온/오프라인상에서 꾸준히 공부하고 그것을 나누는 분위기를 조성할 것을 제안합니다.
돌이켜보면 제가 말한 두가지는 이미 여러차례 논의되어 왔던 것이지만, 실제로 옮겨지기까지는 많은 회원들의 노력이 필요한 부분입니다. 10년이면 강산도 변한다는 말이 있듯이 이제 제로페이지는 예전의 그늘에서 벗어나 우리만의 새로운 모습으로 바꿔가는 의지가 절실해지는 때입니다. 이 행사를 준비하기 위해 밤낮으로 고생한 후배님들깨 감사를 전하며 제로페이지가 항상 신선한 모습으로 우리 곁에 남아있기를 진심으로 바랍니다.
''제로페이지 10주년 기념 격려사, 96 한상우 선배님''의 글을 옮겨적었습니다.
["열린제로페이지"]로 나가는건 어떨까요. --이덕준
CauGlobal을 다녀오고 느낀점이 많았습니다. 그 가운데 여태까지 제가 제로페이지 활동을 하면서 아쉬웠던 점이 많이 떠올랐고, 제로페이지가 나아갈 방향에 대해 느낀점도 있었습니다. 이를 여기에 적어봅니다.
이번 방학에도 어김없이 프로젝트나 스터디가 열리고 있습니다. 프로그래밍 언어를 좀더 잘 다루려고, 공부나 프로젝트를 같이 해보는 경험을 쌓으려고, 자신이 공부해서 알고 있는 내용을 다른 사람에게 설명해주려고, 아니면 그냥 재미로 참여하는 분들이 많으리라 생각합니다. 그러는 가운데서 지식과 경험을 쌓을 수 있기에 제로페이지 활동은 현재로도 분명 값어치가 있습니다.
하지만 개인 경쟁력 강화와 경력 관리라는 측면까지 고려해서 제로페이지 활동을 한다면, 지금보다 더 많은 가치를 얻을 수 있을 것 같습니다. 특히 게임이나 유틸리티 같이 쓸 목적으로 프로그램을 만드는 프로젝트를 한다면, 프로젝트 하나하나가 자신의 경력을 쌓을 수 있는 기회라는 생각도 해보면 좋겠습니다.
우리나라의 기업은 인턴쉽 제도가 발달되어 있지 않기 때문에, 대학생들이 방학이 되어도 자신의 전공과 관련된 경험을 쌓은 기회를 잡기가 쉽지 않아 보입니다. 그나마 아르바이트를 구하는 경우에는 프로그래밍 언어를 다루는 능력이 뛰어나고 경력이 있는 사람을 선호합니다. 그렇기 때문에 경력도 없고 프로그래밍 실력이 뛰어나지도 않은 대다수의 학부생이 방학 때 경력을 쌓기란 어렵습니다.
이러한 상황에서 학부생이 경력 관리를 하는 한 가지 방법으로 제로페이지 활동을 할 수 있을 것입니다. 실제로 기업에서 일하는 수준엔 못 미치더라도, 자신의 실력을 보여줄 수 있는 포트폴리오를 만드는 것이지요. 자기가 혼자 만들고 즐기는 것이 아니라 남에게 보여줄 것이기에 어느정도 완성도를 지녀야 할 것입니다. 이게 별 것 아닌 것 같지만, SourceForge같은 공동체도 대다수가 경력 관리를 위해 오픈 소스 프로젝트에 참여하고 있다고 합니다.
다른 한 가지 나아갈 방향으로 인맥을 만들고 정보를 공유하는 제로페이지가 되었으면 합니다. 현재 재학중이고 자주 만나는 제로페이지 회원들끼리는 서로 알고 있습니다. 하지만 그 외 회원들, 선배님과는 연락망이 거의 없다시피 합니다. 졸업하신 선배님을 통해서 정말 많은 정보를 얻을 수 있는데도 제로페이지 전체 회원 연락망이 없다는 사실은 참으로 안타깝습니다.
- 상협/삽질일지/2002 . . . . 80 matches
* AI 오목을 짜면서, if(a=1) 과 같은 코드가 수많은 코드들 사이에 몇개 있는 바람에 무진장 고생했다. 분명히 제대로 짯는데 결과는 원치 않은 방향으로 나오는 것이었다. 정말 미쳐버릴것 같은 나날들이었다. 나중에서야 저것때문에 문제가 생겼다는 것을 알고나서 Error도 뜨지 않는 오타가 정말 무섭다는 것을 알았다.
* AI 오목 하면서, 효율적으로 어떻게 구성할지에 대한 생각을 별로 안해서, 나중에 경우의 수가 많아지자 상당히 힘들어졌다. 그때 한번 날 잡아서 중복되어 보이는 함수들을 다 통합했다. 그 통합하는 시간이 아깝다고 생각했었는데, 한번 통합하자 효율은 극도로 높아졌다. 예전에는 몇개의 기능추가 하면 그 경로를 나름대로 축약을 했었음에도 불구하고 4가지 경로 && 공격 && 방어에 대해서 따로 시간을 내어서 코드들을 작성해야 했다. 그러나 함수들을 최대한 중복되지 않게 축약하자 한번의 기능추가가 바로 공격 && 방어 && 8가지 방향에 대해서 다 적용되는 것이었다. AI 수준 높이는데 드는 노력이 훨씬 줄어 들게 되었다. 효율적으로 프로그래밍을 해야겠다는 것을 막연히 생각하고 있었지만 이 경험으로 인해서 체감을 하게 되었다.
* JDBC와 ODBC를 연결하기 위해서 많은 삽질을 했다. ㅠㅜ 여기서 아무 생각없이 코드 똑같이 쳐서는 안되겠다는 생각을 했다. 똑같이 하라는대로 했는데 분명히 안되었다. 나중에 연결하는 원리를 알고 나서, 몇가지 좀 하니깐 삽질의 마수에서 벗어 날 수 있었다. 삽질을 해결한 순간 날아갈듯 했다.
* Java 에서 강제 형변환을 C++ 스타일 int(변수), 이런식으로 하다가 수치해석 그래프를 자바로 못 그렸다. ㅠㅜ 그래서 MFC로 하다가 나중에 Java로 짜놓았던 Tridiagonal Matrix 가 MFC로 옮기면서 각종 문제가 발생... 다시 Java로 하려다가, 예전의 형 변환의 문제 발생..ㅠㅜ, 결국 MSN으로 형들에게 물어봐서 자바에서 형 변환은 (int)변수 이런식밖에 안된다는 것을 알았다. 기본에 충실하자.. ㅡㅡ;
* 어떤 숫자들의 결과에 1/6을 곱하는 것과, 그 숫자들/6 과는 많이 차이가 있다는 것을 수치해석 숙제를 통해서 알았다. 만약 친구의 소스를 통해서 1/6 곱했던것을 숫자들/6 으로 하지 않았으면 숙제 해결 못했을 것이다. 실제로는 별로 차이 없을만한 것도 컴퓨터에서는 엄청난 차이를 불러 일으킨다는 것을 알았다.
* 헉헉.. 오늘은 내 컴퓨터에 pws 를 실행시키지 않고, Apache로 다시 웹서버를 바꿨다. 이유는 Java Servlet 한번 실행시켜 볼려는 의도였다. JDBC 보다가 Servlet이 나오길래 그냥 호기심에 한번 해보고 싶었다. 결과는 참담.. ㅡㅡ; 책에 나온데로 JSDK깔고, JServ 깔고 Tomcat깔고, 이것저것 설정 맞추고, 바꾸고, 지지고 볶고 하면서 아까운 시간들을 보냈다. 지금의 결과..Servlet 예제 쳐봐서 했는데 안됐다. ㅠㅜ 괜히 삽질로 하루 날렸다. 섯부른 호기심때문에 정작 할일들을 못했다. 교훈 -> 시간관리 잘하자..., 목적성을 가지고 일을 하자.
* 삽질 해결.. ㅡㅡV, 내가 Apache Jserv와 Tomcat을 깔때 내가본 인스톨 가이드와 내가 실제로 부딪힌 상황들이 다른 이유는.. 버전이 달라서 였다. ㅡㅡ;;, 버전이 올라가면서 예전에는 수동으로 설정했던 것들이 자동으로 되었나 보다. 이번일 덕분에 Forte도 맛가고, JDK도 좀 이상한거 같고해서 윈도우 밀고 다시 깔았다. ㅠㅜ, 아주 기초적인거지만... 나중에도 잊지 말자.. 버전이 다르면 설치 방법도 다르다는걸.. 생각해보면 처음 깔았을때도 돌아가기는 돌아 간거 같다..ㅡㅡ; 단지 어떻게 돌아가는지 파악을 못하니 안돌아 가는것 처럼 보인거 같다..
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 이게 사용된 바로 그 메소드에서 throws Exception 를 해줘야 하는데 계속 전체 클래스에서 이것을 했었다. 이게 문제의 원인.. 그러나 아직 왜 꼭 throws Exception 구문을 써야 하는지 모르겠고, Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");이게 없는 곳에서 throws Exception 를 쓰면 에러 뜨는 이유도 자세히는 모르겠다. 모르는것 투성.. ㅡㅡ;;
''Exception Handling 에 대해서 이해해야 할 것 같은데. Exception 은 해당 함수가 throws 등으로 발생을 시키고, Java 의 경우 그 Exception 을 반드시 처리를 해주는 곳을 만들어야 하지. 해당 메소드 내에서 Exception 이 발생은 하는데, 그 메소드에서 예외처리를 바로 하고 싶지 않으면 (즉, 그 Exception을 그 메소드 내에서 처리하지 않고, 그 메소드를 호출했던 곳 등에서 처리를 한다고 한다면) throws 로 해당 메소드에서 exception 을 또 던져주는 식으로 되겠지. 만일 Class.forName(...) 쓴 구문을 try - catch 로 예외를 또 잡는다면 이야기가 다르겠지만. 자바는 Exception 를 강요하는 관계로 예외는 catch 에서 무엇을 하건, 반드시 해당 발생된 예외를 잡아줘야 함. (그 덕에 최악으로 뻗을 일이 적지. 예외는 발생하더라도) --석천''
* 나를 엄청나게 괴롭히던 삽질 해결.. 원인은 stmt.execute("SELECT * FROM Table1 WHERE ID = 'mID'"); 이 구문이었다. ㅠㅜ stmt.execute("SELECT * FROM Table1 WHERE ID = '"+ mID+"'"); 이렇게 해주어야 했던 것을... 잘못된 코드가 있으면 좀더 유심히 관찰해서 원인이 무엇인지 파악하는 버릇을 들여야 겠다. 너무 주먹 구구식으로 한거 같다. 어쨋든 찾아서 기쁘다.
* 지금까지 자바에서 if(String1 == String2) 이게 안 먹혀서 계속 고생 했다. 알고 보니 String Class 의 CompareTo 메소드를 사용해야 했다. 허접 삽질.. ㅡㅡ;
* 이번 삽질은 정말 중대한 삽질이었다. 1학기 평점을 좌우한다고 볼 수 있는 삽질이었다. 1학기 중간고사 대채용으로 내는 자바 프로젝트에서 소켓 부문을 맡은 친구가 알수 없는 에러때문에 엄청난 삽질을 해서 더이상 나아갈수 없다고 했었다. 메신저에서 통신이 안되다니.. ㅡㅡ;; 그 에러는 "No Such Method Found" 에러다. 그러한 Method가 분명히 있는데도 불구하고 안되었다. 나는 황당했다. 그 친구가 자바는 많이 안했어도 MFC랑 C++을 잘해서 소켓을 맡았는데... 나도 그 에러를 같이 찾기 위해서 삽질을 하였다. 소스도 길고 내가 짠것도 아니어서 정말 못 찾을거 같았다. 그 소스는 특성학 모든 클래스가 딱 서버, 클라이언트 두 파일 안에 들어 있었다. 그래서 난 그 클래스들을 각자 파일로 분리해 보기로 했다. 잘 안풀리니깐 한번 정리나 해보면 뭐좀 어떻게 될까 싶은 마음에 그렇게 했다. 그렇게 정리를 하다 문득.. ㅡㅡ;; 같은 이름의 클래스를 서버, 클라이언트에서 각자 다르게 정의해서 사용하는 소스를 발견... ㅡㅡ;;, 그 친구는 아직 자바에 익숙하지 않아서 이런 실수를 했나 보다.. 나도 만약 소스를 클래스별로 파일로 만들 생각을 안했으면 그 에러의 원인을 발견하지 못했을 것이다. 휴. 큰일날 뻔 했넹.. 앞으로는 "No Such Method Found"같은 에러때문에 고생할일은 절대 없기를.. ㅡㅡ;
* 3일간 날 괴롭힌 초 대박 삽질... 운영체제를 2번 다시 깔게 하고, 리눅스 깔려는 시도까지 하게한 삽질.. 어느날 갑자기 인터넷이 안되었다...이것저것 별의 별거 다 해봤다. 랜카드 바꿔 껴보고, 드라이버 다시 깔아 보고, OS 새로 엎어 보고, 등등...ㅡㅡ;; 3일 동안 초 대박 삽질.. 그것도 시험 기간 동안에.. 오늘 기숙사 컴공 형이 옆에서 아이피 한번 바꿔 보라고 해서 바꿔 보았더니 된다. ㅡㅡ; 어떤 바보가 내 아이피를 사용했었나 보다.. ㅠㅜ
* 오늘은 그렇게 큰 삽질은 아니지만 요새 별다른 삽질이 없어서 적어본다. 오늘 비행기게임 프로젝트를 하고 있는데 파일에서 적 비행기 경로를 읽어와서 실행하는거를 하는데 이상하게 계속 안되는 것이었다. 분명히 난 맞게 텍스트 파일에 적이 나올 위치를 숫자로 적었고, 정확한 명령어를 사용했는데 말이다. 그래서 계속 삽질하다가 잠깐 밖에 나갈 일이 생겼다. 그런데 걷다가 곰곰히 생각하니깐 왠지 파일읽어 온것을 프로그램에서 string 형으로 생각한거 같았다. 그때 아차 하는 생각이 들었다. 역시 삽질은 안된다고 계속 반복하기보다는 원인을 곰곰히 생각해야 한다는 교훈을 얻었다. 뭐 몸이 그렇게 안따라 주지만. ㅡㅡ;
* 오늘도 어김 없이 ㅡㅡ;; 삽질을 했다. 이번에는 matrix 클래스를 구현하는데 matrix데이터를 이중 배열로 private영역에 넣어서 이것 저것 해보는데 나중에 클래스의 matrix 데이터를 호출해야할 경우가 생겼다. [4][4] 이거 두개로 리턴할라고 했는데 안되었다. 남훈이형이랑 제본뜬 책찾아 보니깐 배열은 리턴이 안된다고 나왔다. 그래서 고민하다가 *[4] 이거 두개(포인터형 배열 4개짜리)를 사용하고 나중에는 *를 리턴하는 식으로 돌파구를 찾았다.(*[4] 이것도 배열이랑 비슷하게 써먹을수 있었다. 예-> *(matrix[0]+1)) 처음에는 뭔가 되는듯 싶었다. 클래스 내부 배열 설정도 제대로 되고 하였다. 그 .... 러..나.. ㅡㅡ;; 역시나 난 삽질맨이었다. 나중에 + 연산자 재정의 클래스 내에서 객체를 생성해서 리턴할때 뭔가 제대로 먹지가 않았다. 그거 가지고 간만에 ㅡㅡ;; 삽질에 바다에 퐁당 빠졌다. 간만에 해보는 삽질도 그리 유쾌한 일은 아니었다.. -_- 그렇게 계속 신나게 삽질하다가 도저히 안되겠다 싶어서 멤버 데이터를 public에 넣어 버리는 엽기적인 일을 해버렸다. ㅡㅡ; 그 방법밖에는 없는거 같았다. 그 후로는 아무런 걸림돌 없이 쭉쭉 되었다. 진작 이렇게 할걸하는 생각을 했지만 서도 멤버 데이터를 public안에 넣어서 웬지 모를 찝찝함이..
''근데.. Matrix 클래스가 있음에도불구하고 왜 Matrix 내의 array를 직접 접근할 일이 생긴건지? 그리고 연산자 재정의와 관련된 문제라면 Matrix 에 인자를 접근할 수 있는 메소드를 넣던지 friend 로 해결해야 하지 않을까 싶음 --["1002"]''
''그게 방금 떠올랐는데 Matrix의 인자 하나 하나에 접근하는 메소드는 만들 수 있겠네여.. 단지 그 모든 내용을 통째로 리턴하는 메소드는 못 만들겠어여.. 이중 배열을 리턴할수가 없어서 통째로 접근하는걸 못했어여.. - 상협''
''꼭 이중 배열 전체가 return 이 되어야 하나? 넘겨받은 배열에 도로 쓰는 작업이라면, setter 를 만들어주면 될것 같아서. 클래스로 해놓은 이상 배열을 넘기지 말고 아에 클래스 인스턴스를 넘겨버리는 것이 더 나을것이라 생각 --["1002"]''
* 에러 처리의 중요성을 알았다. 에러 처리를 제대로 하면 실수한 곳을 찾기 쉽고 고로 삽질을 덜할 수 있군.
* 삽질 없는 세상에서 살고 싶어.. ㅠㅜ, 이번에 3D 알카로이드 하는데.. 충돌 처리가 제대로 계속 안되었다.... 근데 방금 수많은 삽질 끝에 해결했다. ㅠㅜ, 안되었던 이유는 내 머리속에서 핑핑 돌아가던 3D 좌표와 컴퓨터가 생각한(내가 예전에 만들었던 함수..) 3D 좌표가 달라서 그랬던 것이다. 이렇게 말하면 쉽지만 실제로 충돌 처리 함수는 금방 만들었는데.. 버그 찾는데 그거보다 5~6배 정도 시간이 더 든거 같다. ㅡㅡ;; 아.. 끝없는 삽질의 나라.~
- 책거꾸로읽기 . . . . 80 matches
글자 단위로 거꾸로 본다는 것이 아니라 챕터 단위로 거꾸로 보는 개념.
[강희경]은 보통 책들이 서두에서는 흥미위주의 간단한 이야기를 다루다가 뒤로 갈수록 내용이 어려워지거나 뒷심부족으로 책을 다 읽지 못하는 경우가 많았다. 이 문제점을 해결하는 데 있어서 '''책거꾸로읽기'''가 큰 도움이 되줄 것이라 믿고 한번 시도 해본다.
인도에서 한국 기업의 선전과 그 이유를 다룬다. 인도인의 습성이 괴이하기 때문에 인도에서 사업하기가 어렵다고 한다. 느릿느릿한 여유로움을 가지고 있으며 신용할 수 없다고 한다. 한국 기업의 선전이유는 인도인들에게 '''이 기업은 너희들의 기업이다. 너희들은 XX인이다.'''라는 마인드를 심어주었기 때문이라고 한다.
인도에서의 사업은 큰 위험이 있기 때문에 한번 실수로 휘청거릴 중소기업에겐 벅찬 일이라고 충고한다. 대기업과 연계하여 진출할 것을 충고한다. 그 밖에 인도에서 사업할 때 주의할 점(ex, 왼손은 조심해서 써라)을 말한다.
* 역시 예상했던 대로 인도에서 사업할 생각이 없는 [강희경]에겐 지루한 내용이었다.
인도는 많은 인구 수나 거대한 땅덩이나 중국과 비슷한 면이 많다. 지금 당장 인도와 중국을 비교하자면 누가봐도 중국이 앞선다. 하지만 인도의 추격도 만만치 않다. 인도의 장래를 밝게 보는 이들은 '''지금은 느려도, 급하게 먹다 배탈 나는 중국을 나중에 추월할 것'''이라고 기대한다. 인도에게 높은 점수를 주는 이유 중 하나는 바로 '''영어'''이다. 만약 이 두 나라가 서로 손 잡는다면 어떠할까? 인도의 소프트웨어와 중국의 하드웨어가 결합한다면 찰떡궁합일 것이다.
인도는 종교적 문제로 인해 술을 별로 안마신다. 그런 종교적 색체가 강한 나라가 AIDS 2위라는 것은 참 아이러니하다.
* 점점 지겨워지면서 그만 보고 싶어진다. 그래도 '''앞 챕터는 재밌겠지'''라는 생각으로 계속한다.
인프라가 인도경제발전의 발목을 잡는다는 말이 있다. 인도는 정전이 잦다. 게다가 물문제도 심각하다. 인도여행시 물을 조심해야된다. 잘못 마실시에는 설사로 고통받는다. 호텔에서 양치질할 때도 생수로 해야한다. 그런 물 조차도 부족하다. 도로사정도 열악하다.
인도의 가장 큰 적은 무엇일까? 바로 '''가난'''이다. 빈곤퇴치정책으로 좀 줄어들긴했지만 빈부격차 또한 심각하다.
인도는 하나의 나라라고 보기 어려울 정도로 다양한 인종과 종교와 언어가 버무려져 있다. 이런 다양함이 묘한 균형을 이루며 살아가는 게 인도인데 하나의 종파, 하나의 인종, 하나의 언어만을 이야기한다면 이런 균형은 깨지기 쉽다.
인도인들은 훌륭한 관광자원들(ex,타지마할)을 지니고도 그것을 이요해 돈 버는 방법을 잘 모른다. 그 이유로는 오랜 사회주의로 인해 돈 맛을 아직 모르고, 내새를 중시하는 종교문화 때문에 현실을 개선하려는 의지가 부족하다는 점이 있다. 하지만 거꾸로 뒤집어 보면 당장 돈 맛에 눈을 뜨면 돈벌이는 시간 문제라는 이야기가 될 수 있다.
'''핵탄두를 만들어 소달구지에 끌고 가는 나라가 인도'''라는 우스갯소리가 있다. 인도의 심각한 이중성에 대한 비아냥거림을 담은 조크다. 하지만 소달구지가 뜻하는 원시성이야 그렇다 치고, 그런 후진성, 원시성을 가졌으면서도 핵탄두를 자체 기술로 만들었다는 사실을 주목해야한다. 세련되게 상품화하고 양산하는 기술이 모자랄 뿐이지 원천기술 쪽으로 가면 오히려 많은 부분을 앞서있는 나라가 인도이다.
인도의 빈부 차는 심각하지만 중산층이 빠르게 늘고 있다. 경제의 허리가 바로 중산층이다. 이 중산층들이 돈 벌고 쓰는 맛을 알아가고 있다.
인도에서 돈 좀 있다는 상류층 부자들은 대체로 전체의 2퍼센트 정도라고 한다. 2퍼센트라고 하지만 10억인구에서 2퍼센트이면 2천만명이라는 것을 명심해야한다.
타타와 릴라이언스라는 국민기업의 설명과 오너들과의 인터뷰 내용을 다뤘다. 대체적으로 깨끗한 경영과 사원복지, 인재양성에 힘쓰고, 번 돈의 많은 부분을 사회에 환원한다는 것이 보기 좋다.
방갈로르는 시 전역이 거대한 IT파크같다. 인터내셔널 테크놀로지 파크(ITP)에는 100여개가 넘는 첨단기업들이 둥지를 틀고 있다. 이곳에서 일하는 인원만도 1만2천여명에 이르고, 아메리카온라인멤버스, 제너럴모터스, IBM글로벌서비스등등 입주한 회사의 면면이 만만치 않다.
시장 지향적 정책, 값싸고 풍부한 이공계 인력, ITP 같은 편리한 시설, 한마디로 사업하기에 딱 좋은 도시가 방갈로르이다.
방갈로르의 풍부한 IT인프라, 쾌적한 기후, 지정학적 안전도 한 몫 했지만 무엇보다도방갈로르의 노력이 있었기에 지금의 모습이 가능했다.
IT기업을 세우면 10년간 법인세를 면제 해주고 컴퓨터등 사업에 필요한 장비를 사올 때도 구입세를 5년간 받지 않았다. 전기가 부족한 나라인지라 발전 설비도 필수적으로 구입해야 하지만 이걸 살 때 물리는 세금도 없앴다. 전기세, 연료세는 아예 면제해주었고 벤쳐캐피탈을 통해 사업자금을 보태주고 투자비가 300억원 이상이면 특별혜택도 주었다.
- ZeroPage_200_OK/note . . . . 79 matches
* 강의 노트는 날짜나 요일 별로 구분하지 않고 큰 주제별로 분리할 생각입니다. 그렇게 하는 편이 나중에 찾아보기에 좋을것 같습니다 -[안혁준]
* 저의 주관적인 부분이 많이 들어 갈수 있으므로 부족하다 생각되는 부분은 채워주세요.
* 강의 노트는 같이 만들어 나가는 것이므로 모두들 함께 채워나갑시다.
* uploder에게 리소스를 올릴때 사용 주로 새글을 쓸때 많이 사용한다.
* resource에 사용 그 url에 딱 올라갈 때 쓴다. 주로 수정에 사용된다 이미 ID를 알고 있으므로.
* oop의 흐름은 class와 prototype으로 나늰다.
* 함수를 일급객체로 다루는 언어
* 파라미터로 전달할수 있으며,
=== 클로져 ===
* 클로져 : 내부의 있는 외부에 있는 함수의 지역 변수를 쓸수 있는것. 때문에 의도하지 않은 결과를 가져올수 있다.
* p.do() 에서 p가 실행문맥이다. 그러나 이 함수를변수로 받으면 var f = p.do; f(); 이런식으로 그러면 f는 실행문맥이 없기 때문에 전역객체가 실행문맥으로 간주된다.
* 결론적으로 함수 앞 마지막 . 앞에 있는 것이 중요하다.
* func.apply(ec, arguments) 나 func.call(ec, arg1, arg2, ... )으로 func안에서의 실행문맥(this)를 명시적으로 변경할수 있다.
* 이때의 __proto__는 프로토타입 체인이라 할수있다.(엔진별로 다를수 있다.)
* 3. 실행문맥을 instance로 한 생성자를 호출한다.
* javascript에서는 실행시간에 프로토타입 체인에 의해 실행한다.
* 코드로 나타내보면..
if (("f" in _proto) && typeof _proto["f"] === "function")
* iframe이나 XHR요청은 이것의 적용을 받는다.
* document.domain 을 조정함으로써 동일한 도메인의 범위를 바꿀수 있다.
- woodpage/VisualC++HotKeyTip . . . . 79 matches
*Hot Key를 쓰면 좋다. 스타에서 단축키 쓰는거랑 같은이유다. 마우스로 스타하는거랑 키보드까지 같이 쓰는것은 거의 천지차이다. 그만큼 유용한 단축키를 많이 쓰면 쓸수록 코딩 속도도 빨라지고 소스분석도 잘되는거같다. ^^;;
*일종의 페이지를 이동시켜주는 기능을한다. A라는 페이지를 열고 작업하다가 B라는 페이지를 열었다. 그리고 다시 A라는 페이지를 가고 싶을때 Ctrl + Tab을 누르면 간다. 살짝 살짝 눌러주면 바로 전 페이지를 이동하는 기능을 수행한다. 그러다 급하게 누르면 열린 페이지를 계속해서 이동하게 된다.
* Ctrl + F6 이랑 같죠? -_-훨씬 낫군요.. 한손으로 되고.. ㅠ.ㅠ --[선호]
*Ctrl + Tab 이 없을때 그나마 이걸로 살수있을듯 현재 열려진 윈도우 창이 목록으로 나오며 선택하면 이동함 단점은 윈도우창을 늘릴수없음 파일이름 길면 짜증남
*사용도 : * ( 난 별로 사용안함 Ctrl+Tab과 F12를 더 자주이용함 )
*Ctrl + F를 누르면 찾기 창이 뜨는것 처럼 단어에다가 커서를 놓고 Ctrl + F3을 누르면 그 단어를 찾음 상당히 많이 쓰는 키인데 난 얼마전에 알았음 --; F3으로 이동 SHIFT+F3은 반대로
*Ctrl + D를 누르면 위쪽의 작은 검색창으로 갑니다 --[선호]
*현재 커서에 있는 변수나 함수의 type이 tooltip으로 나옴
=== Ctrl + T (리소스 에디터 다이얼로그 부분에서) ===
*다이얼로그 편집하는 부분에서 Ctrl + T를 누르면 미리보기가 된다. 왼쪽 밑에 Ready 위에 레바같은걸 당겨도 됨
*멤버 변수 / 함수 목록이 팝업창으로 나타남
=== Ctrl + Shift + F2 ===
*지정된 북마크를 해제함 이것을 몰랐을때 F2로 이동하면서 지웠음 ㅠ.ㅠ
*세로로 블럭 지정 웬만한 MS제품은 다지원하는거 같은데 역시 최근에 알음 --;
=== Ctrl + Shift + 8 ===
=== Ctrl + Shift + Left/Right ===
*단어단위로 블록 설정 상당히 많이 쓰게됨 마우스를 이용할시 단어에 더블 클릭
*모르는 사람이 없을거 같은데 솔직히 1학년 중반쯤에 알았다. Undo 이전 거로 복귀(?)
*Undo하기 전으로 다시 복귀(?)
*워크스페이스창으로 커서를 옮기기는 하는데, 워크스페이스 탐색은.. 마우스로 대개 하기때문에..
- 새싹교실/2012/AClass/3회차 . . . . 79 matches
7.2차원 배열(4x4) 두개의 곱을 구하는 프로그램 작성.
if(j==0 && p==0){
}else if(j==0&& p==1){
}else if(j==1&&p==0){
}else{
8.다음 형태로 출력되는 프로그램을 짜 보세요.
10.LinearSearch를 구현해보세요. 배열은 1000개로 잡고, random함수를 이용해 1부터 1000까지의 숫자를 랜덤으로 배열에 넣은 후, 777이 배열내에 있었는지를 찾으면 됩니다. 프로그램을 실행시킬 때마다 결과가 달라지겠죠?
if(ar[i] ==targer)
if(idx== -1)
else
if(idx ==-1)
else
11.Sort를 하나 구현해보세요. 11번과 같은 방법으로 숫자를 랜덤으로 넣은 후, 정렬하고, 정렬된 것을 출력하면 됩니다.
12.이번시간에 배웠던 내용을 바탕으로, int* a; int b;로 선언했을때 &a,a,*a,&b,b에 관해서 각각 설명하고, 어떤 것이 어떤 것과 일치하는 것인지를 이해할 수 있도록 쉬운말로 정리해보세요.(예제 코드를 작성한 후에 테스트해보고 써보는 것도 좋은 방법일 것입니다.)
- 다른 종류의 데이터를 하나로 묶어서 사용하는 데이터 결합법을 구조체라고 한다. 구조체는 같은 자료형을 묶어서 한다면 구조체는 다른 자료형을 묶어 사용한다.
arr = (int *)malloc(sizeof(int)*nSize); // malloc으로 nSize만큼 int 형 배열을 생성
3.이중포인터가 무엇인지 알아보고, 이중 포인터를 이용해 2차원 배열형태로 만들어보세요.
-스택이란 후입선출방식의 자료구조, 큐는 선입선출방식으로 처음으로 들어갔던 것이 맨 먼저 꺼낼수 있는 방식이다.
if (push(40) == -1)
if(pop(&n) == -1)
- UnixSocketProgrammingAndWindowsImplementation . . . . 78 matches
페이지의 컨텐츠를 보아하니, 따로 페이지를 뽑아내도 될것 같아 [문서구조조정] 하였습니다. 원래 페이지 이름은 '''데블스캠프2005/Socket Programming in Unix/Windows Implementation'''였습니다. - [임인택]
PF_INET : 인터넷 프로토콜 체계 사용
PF_INET6 IPv6 : 프로토콜 체계 사용
PF_UNIX : 유닉스 방식의 프로토콜 체계 사용 (프로세스간 통신)
PF_NS XEROX : 네트워크 시스템의 프로토콜 체계 사용
=== protocol: 프로토콜 ===
// 우리가 사용하는 프로토콜인 TCP, UDP가 0이므로 0으로 써도 무방하다.
// 구체적인 프로토콜을 선택할 때 사용하는데 대부분의 응용 프로그렘에서는 0으로 지정하면 된다.
if(sockfd == -1)
// 에러가 났을경우( sockfd == -1) 에러를 출력하고 프로그램 종료.
// sockaddr_in 은 TCP/IP체제 이므로 AF_INET만 사용한다. -> TCP/IP는 인터넷 기반이므로.
// AF_INET/PF_INET -> 인터넷 프로토콜 체계 사용.
데이터를 Big-Endian으로 변환 시켜주는 체계.
htons(): host-to-network 바이트 변환 (Big-Endian으로 변환)
htonl(): host-to-network 바이트 변환 (Big-Endian으로 변환)
※ 왜 우리는 데이터를 Big-Endian으로 변환 시켜주어야할까?
※ 그렇다면 우리가 전송하는 데이터 모두 Big-Endian으로 변환 시켜주어야할까?
// u_short sin_port 은 Big-Endian을 사용한다.
// 따라서 Little_Endian을 사용하는 시스템에서는 Big-Endian으로 바꿔줘야한다.
// sin_addr은 인터넷 주소를 담고 있으므로 4 바이트가 필요하다.
- AcceleratedC++/Chapter4 . . . . 77 matches
3장까지 봤던 것은 첫번째것만 있고, 나머지 것은 없다. 프로그램이 작을때는 별로 상관없지만, 커지기 시작하면서부터 2,3번째 것이 결여되면, 나중엔 제어가 불가능해진다. C++에서는 다른 언어와 마찬가지로 함수 + 자료구조를 제공함으로써, 프로그램을 구조화시킬수 있는 방법을 제공한다. 또한 함수 + 자료구조를 묶어서 가지고 놀 수 있는 class라는 도구를 제공해준다.(Chapter9부터 자세히 살펴본다.)
그러므로 이번장부터는 프로그램을 나눠서, 서로 다른 파일에 저장, 컴파일하는 법과, 나중에 합치는 법 등을 공부할 것이다.
* 3장까지의 프로그램을 보면 등급을 메기는 부분이 있다. 이 부분을 함수로 추출해보자. 함수로 추출함으로써, 나중에 똑같은 내용을 또 코딩할 필요가 없고, 알아보기도 쉬워진다. 또한 등급 메기는 방법을 바꿀때 그 함수 부분에만 문제를 한정지을 수가 있다. 또한 함수에 이름을 지어줌으로써, 더욱 추상화시킬수가 있게 된다.
<< setprecision(prec) << endl;
이렇게 생겼다. 둘째줄의 등급 계산하는 부분을 다음과 같이 함수로 뽑아낼 수가 있다.
<< setprecision(prec) << endl;
* 함수를 호출할때에는 함수를 만들때 주어졌던 parameter lists를 충족시키는 값들을 넣어줘야 한다. 물론 순서도 맞춰줘야 한다. arguments라고도 한다. arguments는 식이 될수도 있다. 그 뒤에 함수로 넘어간 parameter들은 함수 내에서 지역 변수(함수가 끝나면 소멸되는)처럼 작동하게 된다. 즉 그 값들을 복사하게 되는 것이다. 이를 call by value라 한다.
* 앞에서 우리는 vector에 들어가 있는 값에서 중간값 찾는 걸 했었다. Chapter8에서는 vector에 들어가 있는 type에 관계없이 작동하게 하는 법을 배울 것이다. 지금은 vector<double>로만 한정짓자. median 구하는 루틴을 함수로 빼보자.
if (size == 0)
sort(vec.begin(), vec.end());
* 여기서 살펴볼 게 몇가지 있다. 지난번에는 vector의 크기가 0이면 그냥 프로그램을 종료시켜버렸지만, 여기서는 예외처리라는 신기술을 사용했다. 이 방법은 여기서 끝내지 않고 다음 부분으로 넘어간다. <stdexcept>를 포함시켜 주면 된다.
* 또한, 아까 함수 호출하면서 parameter로 넘겨줄때에는 그 값을 복사를 한다고 했다. 저렇게 함수를 호출함으로써, 원래 vector를 손상시키지 않고, 복사본 vector에서 sort를 해서 작업을 처리해 줄수가 있다. 비록 시간이 좀 더 걸리긴 하지만..
* 이쯤 와서 함수의 유용함을 알았다면, 우리의 성적 매기는 방법을 따로 함수로 뽑아내고 싶을 것이다. 다음 예제를 보자.
if(hw.empty()) // 책에서는 hw.size()==0 이라고 되어 있지만
* const vector<double>& hw : 이것을 우리는 double형 const vector로의 참조라고 부른다. reference라는 것은 어떠한 객체의 또다른 이름을 말한다. 또한 const를 씀으로써, 저 객체를 변경하지 않는다는 것을 보장해준다. 또한 우리는 reference를 씀으로써, 그 parameter를 복사하지 않는다. 즉 parameter가 커다란 객체일때, 그것을 복사함으로써 생기는 overhead를 없앨수 있는 것이다.
* 이제 우리가 풀어야 할 문제는, 숙제의 등급을 vector로 읽어들이는 것이다. 여기에는 두가지의 문제점이 있다. 바로 리턴값이 두개여야 한다는 점이다. 하나는 읽어들인 등급들이고, 또 다른 하나는 그것이 성공했나 하는가이다. 하나의 대안이 있다. 바로 리턴하고자 하는 값을 리턴하지 말고, 그것을 reference로 넘겨서 변경해주는 법이다. const를 붙이지 않은 reference는 흔히 그 값을 변경할때 쓰인다. reference로 넘어가는 값을 변경해야 하므로 어떤 식(expression)이 reference로 넘어가면 안된다.(lvalue가 아니라고도 한다. lvalue란 임시적인 객체가 아닌 객체를 말한다.)
if(in)
* median 함수를 보면, vector<double> 파라메터가 참조로 넘어가지 않는다. 학생수가 많아질수록 매우 큰 객체가 될텐데 낭비가 아닌가? 하고 생각할수도 있지만, 어쩔수 없다. 함수 내부에서 소팅을 해버리기 때문에 참조로 넘기면, 컨테이너의 상태가 변해버린다.
* grade 함수를 보면, vector는 const 참조로 넘기고, double은 그렇지 않다. int나 double같은 기본형은 크기가 작기 때문에, 그냥 복사로 넘겨도 충분히 빠르다. 뭐 값을 변경해야 할때라면 참조로 넘겨야겠지만... const 참조는 가장 일반적인 전달방식이다.
* 소스를 보면 새로운게 눈에 띈다. 바로 try이다. 다음과 같이 쓴다.
- 숫자야구/강희경 . . . . 77 matches
cout << endl << "제작: 강희경 두둥~!!" << endl;
if(ball == 3)
cout << "쓰리 볼~ " <<endl;
else if(ball == 2)
cout << "투 볼~ "<<endl;
else if(ball == 1)
cout << "원 볼~ "<<endl;
else
cout << endl;
if(strike == 3 )
cout << "쓰리 스트라이크~ " <<endl;
else if(strike == 2)
else if(strike == 1)
cout << "☞숫자야구: 컴퓨터가 랜덤하게 3자리의 숫자를 정하면" << endl;
cout << " 사용자는 그 숫자를 맞추는 것입니다." << endl;
cout << "☞스트라이크: 자리수와 숫자를 둘 다 맞춤," << endl;
cout << " 쓰리스트라이크는 경기 종료~" << endl;
cout << "☞볼: 숫자는 맞췃으나 자리수가 틀림" << endl;
cout << "☞아웃: 다 틀림" << endl;
cout << "☞예: 컴퓨터가 123을 고르면 521는 원스트라이크 원볼," << endl;
- 윤종하/지뢰찾기 . . . . 77 matches
void one_right_click_cell(CELL** map,COORD size,COORD *cPosOfMine,int iNumOfMine,int *iFindedRealMine);
int iNumOfMine,iCurrentFindedMine=0,iNumOfLeftCell,iIsAlive=TRUE,tempX,tempY,iFindedRealMine=0,i,j;
time_t tStartTime,tEndTime;
if(argc==4){//argument로의 맵사이즈 입력이 있을 경우
else{//argument로의 입력이 없을 경우
printf("맵의 사이즈를 입력하세요(가로 세로): ");
if(argc==4) iNumOfMine=atoi(argv[3]);////argument로의 지뢰 개수 입력이 있을 경우
else{
printf("입력한 데이터에 따른 맵 및 데이터의 세팅이 성공적으로 완료됐습니다.\n3초 후 게임이 시작됩니다.\n");
if(iIsAlive==FALSE){
one_right_click_cell(map,size,cPosOfMine,iNumOfMine,&iFindedRealMine);
}while(iNumOfLeftCell>iNumOfMine && iIsAlive==TRUE && iFindedRealMine!=iNumOfMine);
time(&tEndTime);//종료시간 저장
if(iIsAlive==TRUE) printf("축하합니다! 당신이 승리했습니다.\a\a\a\n");
else if(iIsAlive==FALSE) printf("당신이 졌습니다.\a\a\n");
else printf("Unproteted error is occured!\a");
printf("소요시간: %ldsec.\n",tEndTime-tStartTime);//소요시간 출력
for(j=0;j<i;j++) if(pos_data[i].X==pos_data[j].X && pos_data[i].Y==pos_data[j].Y) continue;//중복 좌표가 생기면 재생성
if(yIndex==-1){
if(xIndex==-1) printf(" ");
- CleanCode . . . . 76 matches
* -List 라는 식의 이름을 지을 때는 정말로 List의 API들을 지원할 때에만 -List라고 붙여주는것이 좋다. 이름을 저렇게 지으면 -List의 API들을 지원할 것 같은 느낌이 들기 때문에 아닐 경우에는 -s나 다른 방식으로 하는게 좋을 것.
* 아래와 같은 식으로 Account내부의 정보를 하나로 묶으면 AccountInfo 클래스와 getAccountInfo()등이 있을법하지 않은가? -> 저런 구조 자체가 잘못됐을 수 있다. getAccountInfo()와 같은 방법이 아니라 다른 방법으로 일을 시키는 모양이 더 낫다.
* 피드백을 빨리 받기 위해서 테스트를 실시. 피드백을 받고 고칠 때까지의 주기가 짧아야 함. 코드를 짜고 유닛테스트를 만드는 것도 안되는건 아님. 피드백을 바로 받을 수 있으면 됨.
* 테스트 시에는 올바른 input이 제대로 들어오는지를 먼저 확인하고 나서 코드가 잘못되었는지 생각해볼 것.
* 실제로는 쓰지 않는데 테스트를 위한 메소드를 추가하게 되는 경우가 있을 수 있지 않은가? -> java의 경우는 reflection을 사용하면 메소드의 추가 없이 처리가 가능한 경우도 있지만 그것보다도 테스트용 framework(mockito 등)를 사용하는것이 좋다.
* [http://oddpoet.net/blog/2010/08/02/a-new-look-at-test-driven-development-kr/ BDD, Given/When/Then]
* 헐ㅋㅋㅋ 번역하니까 인스토루디레쿠토리로 나온닼ㅋㅋㅋ 전 그냥 환경변수 설정 해버렸습니다. 절대경로 쓰다가 베이스 디렉토리 한번 날려먹고 가능하면 피해범위 적도록 경로 이동해서 조작하거든요. - [서지혜]
* 함수는 하나의 일을 하는게 좋다고 하는데 플래그를 쓴다는 것은 함수가 플래그의 값에 따라서 다른 값을 한다고 말하는 것이므로.
* String.append와 PathParser.render는 둘이 서로 문자열을 합치는 작업을 하더라도 직접적인 연산을 하는 것과 추상적인 연산을 하는 것의 차이로 서로 추상화 수준이 다르다고 할 수 있다.
* 추상화 수준이 서로 다른 코드가 섞여있으면 보기에도 좋지 않다.
* 추상화 레벨이 달라지는 것을 막기 위해서는 코드를 짧게 하고 메소드로 많이 나누면 한 코드 내에서 추상화 레벨이 달라지는 것을 막을 수 있다.
* Consider using try-catch-finally instead of if statement.
var array = stringObject.match(/regexp/); // if there is no match, then the function returns null, if not returns array.
if(!array){
var array = stringObject.match(/regexp/) || []; // if the function returns null, then substitute empty array.
* - : 프로젝트 방식과 방향이 흐릿한 느낌이다.
* - : 각자 예제를 리팩토링했다. 따로 논 느낌.
* 사실 그런 느낌이 들어도 결국 코드 짜는 부분은 따로 할 수밖에 없는 것 같으니 어쩔 수 없는 것 같기도 하지만요. - [서영주]
* F : 스터디를 제대로 하고 있는지 알고싶다. (멘토가 있었으면 좋겠다?)
* 가르쳐주는 것 까지는 아니고 잘 하고 있는건지 아닌지를 알 수 있었으면 좋겠다는거죠. 목표 얘기 하신건 확실히 제대로 하고 있는지 참고가 될 것 같습니다. - [서영주]
- RandomWalk2 . . . . 76 matches
이 페이지에 있는 활동들은 프로그래밍과 디자인에 대해 생각해 볼 수 있는 교육 프로그램이다. 모든 활동을 끝내기까지 사람에 따라 하루에서 삼사일이 걸릴 수도 있다. 하지만 여기서 얻는 이득은 앞으로 몇 년도 넘게 지속될 것이다. 문제를 풀 때는 혼자서 하거나, 그게 어렵다면 둘이서 PairProgramming을 해도 좋다.
* 뼈대예시 ["RandomWalk2/ClassPrototype"] (OOP를 처음 다루는 경우가 아니라면 보지 않기를 권한다)
첫 줄의 M,N은 판의 행과 열로 판의 크기를 말하고, 다음 라인의 숫자 두 개는 바퀴의 초기 위치로 행과 열의 순서다. 다음 줄에는 바퀴의 여정이 나오는데 0부터 7 사이의 숫자가 이어진다. 0부터 7 사이의 숫자는 방향을 의미한다. 0이 북쪽이고, 시계방향으로 1,2,3,...7이 배치된다. 마지막 줄은 999로 끝난다.
10행 10열의 판의 0행 0열 지점에서 바퀴가 출발하고, 처음 다섯 칸을 동쪽으로 움직인 다음, 다섯 칸을 남쪽으로 움직이고, 마지막에 남서쪽으로 한 칸 움직인 다음 끝난다.
=== 종료 조건 ===
바퀴는 여정에 따라 한 번에 한 칸 씩 움직이되 총 8 방향 중 하나로 움직일 수 있다. 만약 판의 끝을 넘어서면 반대쪽으로 돌아 나오게 된다.
만약 열이 N-1일 때 동쪽으로 움직이면 같은 행의 0열로 이동하고, 열이 0일 때 서쪽으로 이동하면 동일 행의 N-1열로 나온다.
만약 행이 M-1일 때 남쪽으로 움직이면 같은 열의 0행으로 나오고, 행이 0일 때 북쪽으로 이동하면 동일 열의 M-1행으로 나온다.
따라서, 위치가 0행 0열일 때 북서쪽으로 움직이면 M-1행 N-1열로 나오게 된다.
첫 번 째 줄은 바퀴가 총 움직인 횟수(처음 바퀴가 놓이는 것은 움직인 것으로 치지 않는다)이고 한 줄은 띈 다음, 판의 각 칸에 바퀴가 방문한 횟수를 행렬로 출력하되, 동일 행의 칸은 빈칸(스페이스)로 구분하고, 각 행은 하나의 줄을 차지한다.
||. || . ||C ||["RandomWalk2/Vector로2차원동적배열만들기"] ||
다음은 이상의 요구조건을 만족하는 프로그램 개발이 완료되었을 경우만 본다.
대부분의 프로그래밍 문제나, 경시대회 문제는 한번 주어진 문제에 한번 대응하면 그걸로 끝난다. 하지만 현실은 그렇지 못하다. 한번 개발한 프로그램을 요구사항 추가/변경에 따라 몇 번이고 수정하고 다시 개발해야 할 때도 있다. 우리가 말하는 문제풀이 능력에는 이미 만든 프로그램을 유지보수하는 작업도 포함되어야 한다.
교육에 있어 이런 작업이 중요한 이유 중 하나는, 자신이 만든 프로그램이 해답을 제대로 내느냐는 것을 확인하는 데에는 한 문제를 한번 푸는 것으로 족하지만, 거기서 코드의 디자인 질을 확인할 수가 없다는 문제가 있기 때문이다. 하지만, 요구사항 변경에 따라 자신이 개발한 프로그램을 다시 수정하게 되면, 이전에 만든 코드의 질에 따라 그 노력에 현격한 차이가 난다. 디자인 질이 높으면 아주 짧은 시간 안에 간단하게 요구사항 변화에 대응할 수 있을 것이고, 질이 낮았다면 장기간에 걸쳐 여기저기를 들쑤시고 골치를 썩혀야 할 것이다.
다음은 코드 디자인이 좋지 못했을 경우 고생을 할 요구사항 변경들이다. 그냥 대충 생각나는 대로 아무것이나 나열한 게 아니고, 순서나 변경사항이나 모두 철저하게 교육적 효과를 염두에 두고 "디자인"되었다.
변경사항은 순서대로 "누적적"이다. 변경1을 볼 때는 변경2를 보지 않는다. 현재의 변경을 모두 완료한 후에야 다음 변경을 볼 수 있다. 따라서 변경3을 하고 있다면, 사실상 현재의 코드는 {{{기본 요구사항+변경1+변경2}}}를 이미 충족하고 있어야 한다.
만약 자신이 작성한 코드를 위키에 올리고 싶다면 {{{RandomWalk2/아무개}}} 패턴의 페이지 이름을 만들고 거기에 코드를 넣으면 된다. 이 때, 변경사항을 하나씩 완료함에 따라, 코드의 어디를 어떻게 바꿨는지(예컨대, 새로 클래스를 하나 만들어 붙이고, 기존 클래스에서 어떤 메쏘드를 끌어온 뒤에 다른 클래스가 새 클래스를 상속하게 했다든지 등) 그 변천 과정과 자신의 사고 과정을 요약해서 함께 적어주면 자신은 물론 남에게도 많은 도움이 될 것이다. 또한, 변경사항을 하나 완료하는 데 걸린 시간을 함께 리포팅하면 한가지 척도가 될 수 있겠다.
바퀴벌레의 마리수가 두마리로 늘어난다. 그리고 "턴"(turn)의 개념이 생긴다. 턴은 일종의 단위시간으로, 한번의 턴에 두 마리의 바퀴벌레는 각각 자신이 예정한 방향으로 이동을 한다.
첫번째 바퀴는 0행0열에서 22222444445의 여정으로 여행하고, 두번째 바퀴는 행7열에서 121212645372의 여정을 따른다. (두 바퀴의 시작점이 같을 수도 있다)
처음 턴에 1번 바퀴는 2방향으로 한칸 움직이고, 2번 바퀴는 1방향으로 한칸 움직인다. 둘 중 한쪽 바퀴의 여정이 끝나도 다른 하나의 바퀴 여정이 끝나지 않으면 게임은 종료하지 않는다. 하지만, 두 바퀴 중 어느 누구의 여정도 끝나지 않았더라도 판 위의 셀이 모두 방문되었다면(즉, 1이 방문한 셀과 2가 방문한 셀의 합집합이 전체 셀이라면) 게임은 종료한다.
- 데블스캠프2005/RUR-PLE . . . . 76 matches
* 로봇 사용법 5분
* 왼쪽으로 돌기 5분 + 연습 5분
* if문 사용 + 연습 5분
* 프로그래밍 언어를 배우는것은 재밌어야 한다는 취지에서 만들어진 환경이다. 실제로 해보면 재밌다. 도움도 많이 된다.
* Python 언어를 사용하여 컴퓨터 프로그래밍 언어를 배울수 있는 환경이다.
* 실제로 로봇에 프로그래밍 해서 그 로봇이 현실에서 자신이 프로그래밍 하는데로 움직이는것을 보면 정말 좋겠지만 여건이 안되는 만큼 -_-; 화면으로나마 그 로봇이 움직이는 것을 보면서 프로그래밍 해볼 수 있다. 여기에서 작성하는 코드들이 무슨 쓸모가 있을까 싶기도 하겠지만, 추후에 실제 로봇의 동작을 프로그래밍해서 넣는다면 여기서 쓰이는 방식과 비슷하게 넣을것이다.(하드웨어적으로 복잡한것을 명령어로 추상화 시킨다음에 그 명령어을 적절하게 복합적으로 사용하여 원하는 행동을 로봇이 하게 만드는 식으로..) 즉 말그대로 로봇 프로그래밍을 간접적으로나 해볼 수 있다.
* 컴퓨터 프로그래밍을 익히는 것은 악기를 익히는 것과 비슷하다. 당신은 그것에 관해 단순히 읽기 말고 해봐야 한다.
* 사람들이 읽기 쉬운 프로그램을 작성해야 한다.
* 컴퓨터 프로그램을 작성할때는 반복을 하지 마라.
== 로봇 한번 움직여 볼까? ==
=== 키보드로 로봇 움직이기 ===
* 화면의 로봇을 클릭한다.
* 위쪽 방향 키보드를 누르면 앞으로 이동한다.
== 왼쪽으로 함 돌아 볼까? ==
* 한칸 앞으로 간다음에 왼쪽으로 돌고나서 한칸 앞으로 가고 나서 정지하는것을 볼 수 있다.
* 로봇이 길이 2인 사각형을 그리면서 반시계 방향으로 도는것을 만들어 보자.
* 로봇이 아래 그림과 같이 움직이게 해본다.
* Play버튼 옆에 Play 모양과 작대기 하나 있는것은 step into와 비슷한 역할을 한다. 명령어가 하나씩 실행된다. 현재 실행되고 있는 명령어는 코드 부분에서 회색으로 highlighting 된다.
* Play버튼을 클릭하고 나서 로봇이 움직이고 있는 도중에 자신이 원하는 순간에 step into 버튼(play 버튼 옆에 있는)을 클릭하면 그 순간부터 명령어가 하나 하나씩 실행된다.
* 아래 그림과 같이 로봇이 신문배달 하게 함 코드를 작성해보자
- 몸짱프로젝트/CrossReference . . . . 76 matches
* 개발방식 : TestDrivenDevelopment
## if aRoot.getWord() == aWord:
## elif string.lower(aRoot.getWord()) > aWord and aRoot.left != None:
## elif string.lower(aRoot.getWord()) < aWord and aRoot.right != None:
if aRoot.getWord() == '' or aRoot.getWord() == aWord:
if aRoot.left == None:
elif string.lower(aRoot.getWord()) > aWord:
if aRoot.right == None:
elif string.lower(aRoot.getWord()) < aWord:
if node == None:
else:
if aRoot.left != None:
if aRoot.word != '':
if aRoot.right != None:
if __name__ == '__main__':
ifstream fin("lincoln.txt");
if(!strcmp(word, ""))
if (start)
else
if (p)
- ZeroWiki에서 언어습관 . . . . 75 matches
NeoCoin은 ZeroWiki 항해를 하면서 ZeroPage 가 [노스모크]와 다른 방향으로 위키의 언어 습관이 관습화 되어 가는 것을 관찰할수 있었습니다. ([노스모크]는 일상어보다 좀더 공개 석상에서 쓰이는 분위기, 어휘로 언어 습관이 형성되어 온것 같습니다.)
최근에 이모티콘 관련표현들이 많은건, 이전에 위키를 써온 사람들의 방식에 대해 제대로 모르는 상황에서, 사람들이 익숙하던 방식으로 쓰는 중이라는 생각을 해봅니다. 그리고 그에 대한 지적이 아주 심하진 않았고요. --[1002]
한편으로 다르게 생각해보면,기존의 위키를 쓰던 사람들이 예전만큼 활발하게 활동하지 않은 상황에서 '상대적으로 많아보이는' 것이 아닐까요. :) 하지만, 또한 현재 새로운 회원들이 이전 회원들이 기존에 만들어진 위키 페이지들을 얼마만큼 읽어보았는지 궁금하기도 합니다. 해당 위키에 대해서는 그동안 그 위키가 자라온 방식이 있습니다. 물론 그로 인해 자기 표현의 제한을 받는건 좋은 현상이 아니지만, 한편으로는 기존의 위키가 자라온 방식을 관찰함으로서 배울 수 있는 점들이 있으리라 생각합니다. --[1002]
처음에 이모티콘 관련 글을 보면, '일단은 사람들에게 익숙한 방식으로 위키라는 툴에 익숙해지는 것도 좋겠다'는 생각이 들었습니다. 어떠한 형태로건 대화가 편하게 이루어지면 좋으니까요. 하지만, 그러한 표현이 기존의 회원들과의 거리를 를 벌일것이란 걱정도 듭니다.--[1002]
요즘 제로위키 글을 읽다보면, 전자라서 읽다가 그만두는 경우가 종종 발생합니다. 심하게, '글쓴이가 글이 남에게 읽힐때의 고민이 전무하다' 라고 표현할까요? 읽다 보면, 기존에 쓰여진 글들이 매우 딱딱한 문장이 아님에도 채팅과 같은 글들이 밑에 있어서, 딱딱하게 보입니다. 기말고사 시험지에 써있는 낙서, 생각의 흔적들이랄까요? 묘하게 배치된 글들을 보면서, 시간과 공간의 경험이 서로 다른 사람들의 생각과 글들이 융화되기가 참 힘들다는 생각을 가집니다. --NeoCoin
[제로위키]에서 쓰는 어떠한 언어습관이 관습화되고 있는건가요? 아니면 [제로페이지]에 새로 들어온 회원들이 원래 쓰던 언어습관과 '''다르게''' 자꾸 글을 써서 아직 관습화되진 않았는데 '''관습화 처럼''' 느껴지는 건가요? 로마에 가면 로마법을 따르라지만, [제로위키]에는 어떠한 법이 있나요? --[Leonardong]
지적하신 내용에 공감합니다. 기존 사용자 층의 글이 자연스럽게 줄어들고, 새로운 사용자 층이 증가하면서, 형성되는 언어습관이 재미있어서 주목하고 있는것 이지요.
[제로위키]에는 말씀처럼 특별한 법이 없습니다. 마찬가지로, 어떠한 위키에도 어법에 관한 법은 없습니다. 그렇지만 타 위키들은 언어습관의 진행 방향이 서술 형식의 표준어 분위기로 진행하는 것에 비하여 [제로위키]는 다른 방향으로 진행되어 가는 것 같아서 주목할만한 점이 아닐까요?
아시다 시피 위키는 과거글이 꾸준히 읽히고, 타인이 고칠수 있는 시스템입니다. 그래서 모두가 읽는데 의미 전달의 변이가 적은 표준어, 서술 형식으로 수렴되는 것을 당연하게 생각했습니다. (반대로, 게시판은 한번 쓰면 타인이 못고치고 다시는 읽지 않으니 분위기가 수렴되거나 하는 것이 적겠지요.) 그런데, [제로위키]는 최근 2년간의 모습이 재미있거든요?
특히 NoSmok:단락나누기 와 같은 위키 쓰기에 관련한 교육이나 고민을 공유하는 시간이 적은 상태에서 진행방향은 점차 더 달라 지는 것 같습니다. 몇년후 [제로위키]는 상당히 특별한 색깔을 가지게 되지 않을까요? --NeoCoin
[제로위키]가 다른 위키나 커뮤니티의 글처럼, 의미 전달의 변이가 적은 표준어나 서술 형식으로 수렴하지 않는다는 말씀이시군요. 요새만 그런 것이 아니라 최근 2년동안 죽 그래온 것으로 보아, 앞으로 이모티콘이 가득가득한 위키라는 특별한 색깔을 [제로위키]가 가지리라는 의견이시고요.
문단의 내용이 확인을 부탁하는 것 같아서 답변 답니다.(그렇지 않다면, 중복 문단의 존재 이유가 없겠지요?) 전자의 문장은 잘 정리하셨습니다. 허나, ''앞으로 이모티콘이 가득한 위키라는 특별한 색깔을 [제로위키]가 가지리라는 의견이시고요.'' 에는 전체 긍정을 할수 없습니다. 아직 예단할수는 없지요. '가득가득'이라니요. 내년 신입 회원이 기대되기는 하지만요. --NeoCoin
왜 그럴까 그 이유를 생각해보았습니다. 제가 생각하기에 한 가지 이유는 [제로위키]에서는 과거 글이 꾸준히 읽히지 않는다는 것이고, 다른 이유는 과거 글을 타인이 고치지 않는 것이라고 봅니다.
'' ...전략...위키는 과거글이 꾸준히 읽히고, 타인이 고칠수 있는 시스템입니다. 그래서 모두가 읽는데 의미 전달의 변이가 적은 표준어, 서술 형식으로 수렴되는 것을 당연하게 생각했습니다. (반대로, 게시판은 한번 쓰면 타인이 못고치고 다시는 읽지 않으니 분위기가 수렴되거나 하는 것이 적겠지요.) 그런데, [제로위키]는 최근 2년간의 모습이 재미있거든요? ...후략...'' --NeoCoin 윗글 인용
이것이 지켜진다면, 당연히 [제로위키]의 글도 표준어, 서술형식으로 수렴할 것입니다. 두 가지 이유 가운데서도 과거 글을 - 오래되면 오래 될 수록(?) - 타인이 잘 안 고치는 경향이 있습니다. 건드릴 엄두가 나지 않지요. 따라서 새로 만드는 페이지에 주로 글을 쓰고, 새로 만드는 페이지가 주로 생기기 때문에 새로운 언어습관이 관습화된 것 처럼 보인다고 생각합니다. --[Leonardong]
* 예, 꾸준히 제기되는 문제입니다. 과거 글이 읽히는 것까지 위키라는 시스템이 책임지지는 않지요. 이제 [제로위키]도 2000페이지가 넘었고, 각 페이지당 A4 한장이라고 생각해도, 1000장의 두꺼운 사전이니까요. 휴~, 그 중 우리가 읽고 키울것은 많게 잡아도 20% 내외 일것입니다. (200~300 페이지) 당장 사용하는 것은 10% 정도? 그러나 위키 시스템의 철학적인 면에 대한 학습과 토론의 장이 전무한 상황에서 당연한 결과 같네요. [위키요정]과 NoSmok:문서구조조정 NoSmok:WikiGardening 등의 노력이 적은게 아쉽습니다.
* 새로운 작업에 대한 '문서화' 경향이 적습니다. 학기중에 익힌 지식들을 문서화하기 어려울수 있죠. 작년도 비슷했던 것 같습니다.
* [제로위키]는 활동하는 [위키요정]이 적습니다. 예를들어 '''데블스캠프2003/ToyProblems/파일입출력''' 제목의 페이지를 발견해서 '''[파일입출력]'''으로 변경하는 이런 활동입니다. 이런 활동의 가치 인식이 중요합니다.
''새로 만드는 페이지에 주로 글을 쓰고, 새로 만드는 페이지가 주로 생기는 것에 대하여...''
* [제로위키]가 태어나고 1년즈음에 이르로 이러한 문제가 본격 제기되었습니다. 새로운 회원들에게 진입 장벽을 낮추기위해 위키의 계층을 도입해 개인화 페이지를 권장하면서 문제가 제기되었지요. 새로 만드는 것은 좋습니다. 허나 이를 지식으로 가공하는 것은 [위키요정]들의 몫입니다. 위키철학을 공유하고 모두 함께 진행하는 해결책이 필요 하겠지요.
- 열린제로페이지 . . . . 75 matches
== 열린 제로페이지 ==
'숨쉬는독'군은 평소 관심이 많던 보안 관련 스터디를 하고 싶은데 어떻게 시작하면 좋을지 잘 모르는 초보자이다. 앞서 공부했던 선배의 조언을 듣고 싶고, 또 같이 공부할 사람이 있으면 좋겠다는 생각이 들었다. 그리고 자신이 공부한 내용을 나중에 공부할 사람과 공유하며 같이 발전하길 원했다. 그러나 그가 속한 '우드페이지'란 학회에는 보안에 관심이 있는 사람이 그렇게 많지 않았다. 결국 '숨쉬는독'군은 선배, 동기를 모아(공교롭게도 그들은 '우드페이지' 회원이 아니었다.) 보안학회 '까스'를 만들기로 결심을 한다. 그러나 관련 분야 초보자가 새로운 학회를 만들기란 무척 버거운 일이었다. 결국 그가 만든 보안학회는 좌초되었다.
'숨쉬는독'군은 평소 관심이 많던 보안 관련 스터디를 하고 싶은데 어떻게 시작하면 좋을지 잘 모르는 초보자이다. 앞서 공부했던 선배의 조언을 듣고 싶고, 또 같이 공부할 사람이 있으면 좋겠다는 생각이 들었다. 그리고 자신이 공부한 내용을 나중에 공부할 사람과 공유하며 같이 발전하길 원했다. 그래서 그는 과내 학회 '오픈페이지'에 보안 스터디 그룹 '까스'를 조직하고 사람을 모았다. 중앙대학교 컴퓨터 공학과 학생이라면 누구나 거리낌없이 참여할 수 있는 학회 '오픈페이지'에 보안에 관심있는 사람들이 새로 모였다. 보안 스터디 '까스'는 '오픈페이지'의 위키위키에 보안에 대한 화두 정도를 던져놓고 해체되었다.
'배장이'군은 새내기 시절 사람과 어울리는게 마냥 좋아서 전공 공부는 뒷전이고 선배, 동기들과 어울려 노는게 제일 좋았다. 그러나 학년이 올라가면서 실속을 차려야겠단 생각이 들었고, 이에 따라 전공 공부에 관심과 열의를 조금 늦게 갖게 되었다. 마침 그의 늦바람을 자극하는 주제인 MFC 스터디가 학회 '오픈페이지'에서 시작되려한다는 것을 알고서 '배장이'군은 '오픈페이지' 에 스터디 동참 의사를 밝힌다. 비록 스터디 팀원들과는 학번 차이는 나지만 비슷한 실력으로 인해 '배장이'군은 무리없이 스터디에 합류하고 성과를 얻을 수 있었다.
이 생각에 반대 의견이 무척 거세리라고 생각되지만 정보 공유의 진입 장벽이 될 뿐인 '''제로페이지의 명확한 회원 구분은 불필요하다'''는 주장을 해봅니다. 앞선 네개의 가상 시나리오 중 1-1, 2-1번 시나리오는 실화를 바탕으로 작성했습니다. 1-2, 2-2번 시나리오는 주관적이며 희망적인 방향으로 서술했습니다. 현재의 제로페이지는 연초에 모은 사람들 중 꾸준히 학술적 활동을 하는 사람들만이 제로페이지 회원이 될 수 있는 폐쇄적인 학회입니다. ["열린제로페이지"]로 방향을 잡는다면 학회에서 교류되는 정보의 질과 양을 높일수 있지 않을까요.
물론 현실적으로 지금 당장 ["열린제로페이지"]로 가는 데에는 많은 무리가 따르리라 생각됩니다. 그러나 현재 제로페이지 회원들이 ["열린제로페이지"]가 되기를 원하는 마음을 갖고 시간을 두고 노력을 하며 학과 동문들이 그 노력을 이해해준다면 불가능한 일은 결코 아니라고 생각합니다. 다른 회원들의 생각이 궁금합니다. (저는 이 글을 쓰기 위해 무척 오랜시간을 고민했습니다. 즉각적인 반응보다는 이 문제에 대해 진지하게 생각해본 후의 반응을 보고싶습니다.)
전체적인 부분에 대한 고민은 부족하지만, 한가지 사실을 간과하는듯 하여 글을 남깁니다. 현 시점에서 제로페이지는 자선 단체가 아닙니다. 누군가 자신의 잉여 시간을 투자하여, 원할한 스터디나 프로젝트를 위해 돕는게 아닙니다. 시나리오 1-1, 2-1에서의 이유는 '누군가 뒷바라지를 안해줘서', '기대고 들어올 틈이 보이지 않아서' 라는게 주요한 이유로 보이지만, 현재로선 이러한 상황에 대한 여유가 없었고 또한 학회가 생긴 본래의 목적은 아니었기 때문입니다. 오히려 반문해볼 수 있습니다. 제로페이지에 들어오는데 누구도 막은 일이 없는것으로 알고 있습니다.(제가 학교에 없을때의 일은 모르겠습니다.) 진입장벽 이야기는, 어느 모임에나 있습니다. '모임에 처음나갔는데 아는 사람끼리만 이야기 하고 너무 서먹하더라'로 귀결되는 이야기는 여타의 동호회에서도 쉽게 찾아볼 수 있는 문제점 입니다. 모임에 들어오고자, 모임에서 어떤 내용을 얻고자 한다면 노력이 있어야 하는건 당연합니다. 애초에 그러한 접근 자체를 차단한다면 문제가 되겠지만, 현재는 말이 제로페이지로 묶여있는 상태이지 교류는 제한을 두지 않는것으로 압니다. 예를들어, 나우누리라는 통신회사가 자료를 누구나 쓸 수 있게 공개를 하지 않았다 하여, 나우누리는 정보 공유의 진입 장벽이 될 뿐이다. 라고 비난할 수는 없는 노릇입니다.
다른 관점에서 살펴봅시다. 주변을 둘러보면 모임이 참 많습니다. 그러한 모임들은 왜 생겨난 것일까요. 전체가 하나라면 장벽도 없고 좋을텐데 말이지요. 하지만, 전체가 해결하지 못하기에 부분이 생겨난 것이고, 그러한 부분들이 묶여서 전체가 되는게 실제 입니다. 제로페이지가 생겨났던 이유도 비슷합니다. 중앙대학교 컴퓨터공학과에서 해결하지 못하는 부분이 생겨났고, 이를 위해 제로페이지가 만들어졌습니다. 대부분은 모임의 특성상 구성원이 필요하고, 이를 위해 지속적인 활동을 요구하게 됩니다. 한가지 중요한 점은 제로페이지가 외부와의 연결고리를 차단한 바는 없고, 자유롭게 교류할 수 있다는점이 현재 이야기한 ["열린제로페이지"] 역할 을 한다고 생각합니다. 물론, 그러한 참여방법을 보다 세련되고 원할하게 만들자는 이야기에 대해서는 찬성합니다.
제로페이지는 자선 단체가 아니라고 하신 말씀에 동의합니다. 그리고 전 제로페이지에서 자선을 베풀자는 얘기를 하지 않았습니다. 시나리오 1-2, 2-2 와같은 상황에서 제로페이지가 손해를 보면서 베푼것이 무엇인지요. 오히려 제로페이지의 학술 정보 교류가 양적, 질적으로 긍적적인 방향으로 이루어지지 않았는지요. 시나리오 1-1, 2-1 의 상황 같이 공부는 하고 싶은데 '' '누군가 뒷바라지를 안해줘서', '기대고 들어올 틈이 없어서' '' 와 같은 생각을 하는 사람에게 학회가 필요한것이 아닐까요. ["열린제로페이지"]를 주장하는것은 궁극적으로 제로페이지의 발전을 위해서 입니다.
또, 제로페이지의 진입 장벽에 대한 얘기를 하겠습니다. ''모임에 처음 나갔는데 아는 사람 끼리만 이야기 하고 너무 서먹하더라.'' 만으로도 어차피 진입 장벽이 생긴다고 말씀 하셨습니다. 옳은 말씀입니다. 하지만 제 주장은 진입장벽을 없애자는 것이 아니라 현재 제로페이지의 두터운 진입 장벽을 완화하자는 것입니다. 제로페이지 회원을 모집하는 때가 아니면 제로페이지 회원이 되기 위해 길게는 일년을 기다려야 합니다. 말씀드렸듯이 현 제로페이지는 폐쇄적인 조직이기에 거기에 섞이려면 남다른 각오도 있어야합니다. 지금 제로페이지는 언제든 자유롭게 활동할 수 있는 조직이 아닙니다. 저는 이런 회원 모집 방식이 불필요한 진입 장벽이라고 생각합니다.
''대부분은 모임의 특성상 구성원이 필요하고, 이를 위해 지속적인 활동을 요구하게 됩니다.'' 에 대해서 제로페이지의 활동은 지속적이어야 한다고 생각합니다만 그 구성원이 반드시 지속적이여야 한다고 생각하진 않습니다. '''현재 활동중'''인 회원이 ["열린제로페이지"]내에 항상 필요한 만큼(최소한 지금의 회원 수 만큼)은 남아있으리라 생각합니다.
예전에..아주 예전에..당나귀와 당근이론(-.-)을 설명하던 때에 잠시 언급했던 제 의견과 유사한 의미의 내용이었기에 도움이 될까해서 당시 있었던 이야기를 한번 적어 봅니다.(어쩌면 회의록에 있을까요?) 그 때, ZeroPage회원 관리를 인력 풀 형식으로 하자는 의견을 냈었습니다. 자신이 같이 공부할 혹은 같이 프로젝트를 진행할 사람이 필요하면 학회에 그런 선전을 하고 그렇게 마음이 맡는 사람들끼리 단위 작업을 수행하는 식으로 학회를 꾸렸으면 좋겠다고 했었습니다. 하지만, 그 때 제기된 문제점은 그러한 방식은 조직의 결속력을 화해시킬 우려가 있지 않을까 하는 점이였습니다. 자신이 필요할 때는 학회를 찾다가 학회에서 자신에게 이익이 되지 않는 일을 할때는, 가령 전시회 준비를 한다거나 , 나 몰라라는 식이 될 수도 있다는 점이 문제점이였던 것 같습니다. 이런 일이 반복되게 되면 회원들 간의 유대관계가 느슨해질거라는 우려를 해결한 방안이 없었기에 더 이상의 의견을 주장하지 못하였습니다.
흠.. 해결책을 논하는게 어떨까요. 이미 과거에 이런 식의 "열린제로페이지가 좋지만, 사람들이 안들어 온다."로 이와 비슷한 결론이 난것 같습니다. 그렇지만, 이번에 또 재미있는 변수는 "밤샘을 꼭 해야한다." 라는 점도 있을수 있겠지요. [[BR]]
적극성이면 무엇이든 된다는, 이런 경우도 있습니다. 저희 고등학교 졸업때, 폐쇄적인 천체 관측 동아리의 회장은, 2학년때(1학년이 아닌) 중간에 그냥 끼어서 회장이 된 케이스가 있었구요. 좀 특별한 케이스죠. 저도 1학년때 축구하고 싶어서 어느날 무작정, 일요일 아침에 축구하는 동호회에서 껴서 한적이 있었지만(지금이야 그만 뒀지만 --;).. 대체 zp가 어떻게 해야 할까요? [[BR]]
1. 과내에서 '''공부''' 하면 '''ZeroPage'''라고 떠오르는 이미지를 만들어, 이제 주기적으로 정해진 정모 때, 문열고 들어오는 학우들이 있도록 하는것입니다. 하지만 문제는 어떻게 이런 이미지를 '''광고'''해 나갈것인가가 문제입니다. 이 광고의 방법이라면, 전시회, 세미나 정도인데, 전자를 올해 할수있을지 저는 확신없고, 후자는 할려는 사람이 얼마나 될지 모르겠습니다.
1. 최근에 할수 있는 것으로 보이는 기회는, 상협이가 말하는 학술터에 진출(?) 이 대안이 될수 있겠지요. 그렇게 된다면, 올해의 "특별한일" 이 되겠네요.
1. 좀 황당한건데, ZP전원이 과 석차에서 앞에 등수를 다 해먹으면, 관심을 끌수 있겠지요. 하지만 좀 신경만 쓰면, 불가능하다고 생각도 안합니다. 비슷하게, 올해 있을 30주년 학술제에 몽땅 작품 내는것이지요. 제작년 부터 건축 공학과에서 졸업생 작품 전시회가 있는것으로 기억하는데요, 올해를 기점으로 학술제가 그렇게 발전했으면 좋겠네요.
제가 보는 열린제로페이지 는 결국 더 많은 회원들의 모이기를 바라는 것입니다. 더 많은 회원이 모여도 운영의 최소화를 위해 정모때 언급처럼 회의의 최소화, 발표의 최대화가 이상이라고 생각합니다.
zp 가 학회이지만, 과 내의 모든 공부를 책임져야하는 것 같은 맨 위의 시나리오는 마음에 와닫지 않는다. 원한다면 얼마든지 스스로 길을 찾으라고 하고 싶다. 두리뭉실하게 zp 가 열려있다면 구성원들의 구속력이 불분명한 패닉에 빠질것이다. --박지환
'''과내의 모든 스터디 그룹, 프로젝트 팀은 제로페이지를 통해 공부해야만한다.''' 라고 주장한 사람은 없습니다. 스스로 길을 찾되, 찾은 길이 학과내 사람들과 학술적 정보를 공유하는 장으로서의 제로페이지라면 막지 말아야 한다는 주장입니다. 목적성이나 운영체계가 명확하지 않고 두리뭉실한 상태의 ["열린제로페이지"]라면 패닉상태에 빠질것이란 말에는 공감합니다. --이덕준
- STLErrorDecryptor . . . . 74 matches
본 문서는 [http://www.kwak101.pe.kr/kwak101/works/InternData/STLDecryptor_QuickGuide.html QuickInstallation For STLErrorDecryptor] 의 '''내용을 백업하기 위한 목적'''으로 만든 페이지입니다. 따라서 원 홈페이지의 자료가 사라지지 않은 이상 가능하면 원 홈페이지에서 글을 읽으셨으면 합니다.
이하 원 홈페이지의 내용과 동일한 내용르 위키의 문법으로 재구성한 것 입니다.
VC++를 가지고 STL 프로그래밍을 하시는 분들이 가장 많이 느끼는 불편함(어느 플랫폼이나 마찬가지이지만)중 하나가 바로 "'''에러 메시지에 나타나는 STL 컴포넌트가 무엇인지 도통 모르겠다'''"라는 점일 겁니다. 이는 컴파일러가 STL 템플릿을 인스턴스화할 때 타입 매개 변수가 모두 포함된 상태로 전체 이름을 써 버리기 때문에 STL 책에 나오지도 않는 클래스 이름과 템플릿 이름 등이 마구 튀어나옴은 물론이거니와, 인스턴스화한 클래스 이름 자체가 엄청나게 길어져서, 코드 한 줄에 대한 에러 메시지가 수십 여 줄까지 만들어지는 현상이 일어나지요.
이러한 현상은 이펙티브 STL의 항목 49에서도 다루어진 이야기입니다. 원저자는 "많이 읽어서 익숙해져라"라는 결론을 내리고 있지만, 이 문제를 도구적으로 해결한 방법도 있다는 언급도 하고 있었죠. 여기서 이야기하는 [http://www.bdsoft.com/tools/stlfilt.html STL 에러 해독기](이하 해독기)가 바로 그것입니다. 이 도구는 VC 컴파일러가 출력하는 에러 메시지를 가로채어 STL에 관련된 부분을 적절하게 필터링해 줍니다.
역시, 잘 아시겠지만, 본 문서는 읽으시는 분께서 Visual C++ 개발 환경과 C++ 사용에 불편해하지 않고 탐색기 화면을 두려워하지 않는다는 가정 하에 작성했고, 윈도우 환경을 최대한 사용하는 쪽으로 작성하였습니다. :)
가) 여느 개발도구와 마찬가지로 VC의 IDE는 그 자체에 빌드용 장치(컴파일러와 링커)를 내장하고 있지 않고, 외부에 있는 컴파일러와 링커를 실행해서 프로그램을 빌드합니다. 컴파일러와 링커의 출력 결과는 실제로 콘솔로 빠져 나오는 출력이지만, 네임드 파이프(named pipe)란 것을 통해 VC의 IDE로 다시 들어가 '''출력(output)''' 윈도우에 디스플레이되는 것입니다.
컴파일을 맡은 프로그램은 CL.EXE란 것인데, 이 프로그램은 C/C++컴파일러(C2.DLL+C1XX.DLL)를 내부적으로 실행시키는 프론트엔드의 역할만을 맡습니다. VC IDE는 컴파일시 이 프로그램을 사용하도록 내정되어 있습니다.
나) '''원래의 C/C++ 컴파일러를 작동시키되 그 결과를 필터링해주는 기능이 추가된 프론트엔드를 CL.EXE이란 이름으로 행세(?)'''하게 하면, VC의 IDE나 기존의 개발환경에 전혀 영향을 주지 않고 필터링만 할 수 있게 될 겁니다. 해독기 패키지에는 이런 CL.EXE가 포함되어 있습니다. 이것을 "프록시(proxy) CL"이라고 부릅니다.
* 원래의 CL,EXE이 CL2.EXE로 리네임됨
* 에러 필터 스크립트는 자신이 받은 컴파일 결과를 필터링하여 다시 VC의 IDE로 전송
전체적인 동작 원리를 간략하게 아래의 그림으로 정리해 보았습니다.
Upload:WorkingMethod.gif
마) 별로 복잡해보이진 않지만, 문제는 이 작업을 손으로 모두 해주어야 한다는 겁니다. 여기까지 다 읽으신 분은 이제 본문으로 들어갑시다.
= 필요한 프로그램과 도구를 받아서 준비하기 =
Upload:FilesUnzipped.gif
* STLTask.EXE : 해독기의 필터링 기능을 토글하는 컨트롤러로, 윈도우 작업표시줄(TaskBar)에 위치하게 됩니다.
마) 다 되었으면, 4로 넘어갑니다.
가) Visual C++가 설치된 디렉토리로 이동하고, 여기서 \bin 디렉토리까지 찾아 들어갑니다. (제 경우에는 D:\Program Files2\Microsoft Visual Studio .NET\Vc7\bin입니다.) 제대로 갔으면, 원래의 CL을 백업용으로 모셔다 놓을 폴더를 하나 만듭니다. (제 경우에는 '''native_cl'''이란 이름으로 만들었습니다.) 그리고 나서 CL.EXE를 그 폴더에 복사해 둡니다.
Upload:OriginalCLFolderMaking.gif
나) \bin 디렉토리에 있는 CL.EXE를 CL2.EXE로 이름을 바꾸어 줍니다.
- 코드레이스/2007/RUR_PLE . . . . 74 matches
* 로봇 사용법 20분
* 프로그래밍 언어를 배우는것은 재밌어야 한다는 취지에서 만들어진 환경이다. 실제로 해보면 재밌다. 도움도 많이 된다.
* Python 언어를 사용하여 컴퓨터 프로그래밍 언어를 배울수 있는 환경이다.
* 실제로 로봇에 프로그래밍 해서 그 로봇이 현실에서 자신이 프로그래밍 하는데로 움직이는것을 보면 정말 좋겠지만 여건이 안되는 만큼 -_-; 화면으로나마 그 로봇이 움직이는 것을 보면서 프로그래밍 해볼 수 있다. 여기에서 작성하는 코드들이 무슨 쓸모가 있을까 싶기도 하겠지만, 추후에 실제 로봇의 동작을 프로그래밍해서 넣는다면 여기서 쓰이는 방식과 비슷하게 넣을것이다.(하드웨어적으로 복잡한것을 명령어로 추상화 시킨다음에 그 명령어을 적절하게 복합적으로 사용하여 원하는 행동을 로봇이 하게 만드는 식으로..) 즉 말그대로 로봇 프로그래밍을 간접적으로나 해볼 수 있다.
* 컴퓨터 프로그래밍을 익히는 것은 악기를 익히는 것과 비슷하다. 당신은 그것에 관해 단순히 읽기 말고 해봐야 한다.
* 사람들이 읽기 쉬운 프로그램을 작성해야 한다.
* 컴퓨터 프로그램을 작성할때는 반복을 하지 마라.
== 로봇 한번 움직여 볼까? ==
=== 키보드로 로봇 움직이기 ===
* 화면의 로봇을 클릭한다.
* 위쪽 방향 키보드를 누르면 앞으로 이동한다.
== 왼쪽으로 함 돌아 볼까? ==
* 한칸 앞으로 간다음에 왼쪽으로 돌고나서 한칸 앞으로 가고 나서 정지하는것을 볼 수 있다.
* 로봇이 길이 2인 사각형을 그리면서 반시계 방향으로 도는것을 만들어 보자.
* 로봇이 아래 그림과 같이 움직이게 해본다.
* Play버튼 옆에 Play 모양과 작대기 하나 있는것은 step into와 비슷한 역할을 한다. 명령어가 하나씩 실행된다. 현재 실행되고 있는 명령어는 코드 부분에서 회색으로 highlighting 된다.
* Play버튼을 클릭하고 나서 로봇이 움직이고 있는 도중에 자신이 원하는 순간에 step into 버튼(play 버튼 옆에 있는)을 클릭하면 그 순간부터 명령어가 하나 하나씩 실행된다.
* 아래 그림과 같이 로봇이 신문배달 하게 함 코드를 작성해보자
http://rur-ple.sourceforge.net/images/newspaper_end.png
== if 문 사용 ==
- .bashrc . . . . 73 matches
# --> 리눅스용으로 수정
if [ -f /etc/bashrc ]; then
# 아직 세트되지 않았다면 $DISPLAY 를 자동으로 세팅
# 이 부분은 리눅스와 솔라리스용입니다 - 필요한대로 고쳐 쓰세요...
if [ -z ${DISPLAY:=""} ]; then
if [ -n "$DISPLAY" ]; then
else
export DISPLAY=":0.0" # 실패할 경우를 대비(fallback)
set -o notify
shopt -s histappend histreedit
if [ -x /usr/games/fortune ]; then
# 이 파일 크기를 줄이고 싶다면 이런 함수들은 스크립트로 빼도 됩니다.
# 많은 함수들은 bash-2.04 예제에서 거의 그대로 갖다 썼습니다.
# -> 파일에 실수로 타격을 입히지 않게.
alias pjet='enscript -h -G -fCourier9 -d $LPDEST' # enscript 로 예쁜 출력하기(Pretty-print)
alias lx='ls -lXB' # 확장자별로 정렬
alias lk='ls -lSr' # 크기별로 정렬
alias lt='ls -ltr' # 날짜별로 정렬
alias lm='ls -al |more' # 'more'로 파이프 걸기
if [ "$(gnuclient -batch -eval t 2>&-)" == "t" ]; then
- Linux/디렉토리용도 . . . . 73 matches
''(적어도 나의 경우에는 그랬다)''
도대체 윈도우에 있던 다른 드라이브로는 어떻게 이동해야하며, 어떻게 CD를 읽어야하는지 전혀
또 OS만 깔았는데 루트디렉토리에 왜 그렇게 디렉토리가 많은지 도저히 어떤 용도로 쓰이는지를
윈도우의 Windows, ProgramFiles 만으로 이루어진 그 구조가 왜 그렇게 그립던지 ㅠ.ㅠ
''(어둠의 경로를 통해서 학원 강의 파일을 들어보면 이놈의 중급 웹 서버관리 과정은 공룡책에 나오는
draft는 웹상의 내용을 기본으로 내가 추가할 만한 부분을 추가함. (그런게 있을지나 모르겠네.. 너무 좋은 내용이 많다)
''이 책은 배포판에 의존적인 내용이 아니라 말그대로 리눅스를 그냥 쓰는 방법을 위주로 나오기 때문에
그래도 기본적은 프로그램을 깔정도가 되면 보는 것이 좋을듯하다. 처음에 이걸로 보다가 미치는줄 알았다''
리눅스의 디렉토리 구조를 이해하기 전에 마운트라는 개념을 이해해야할 필요가 있다. 리눅스는 모든 파티션을 /(이하 루트)에 포인터를 통해 연결한 마운트의 개념을 통해서 접근을 할 수 있다. 따라서 모든 디렉토리를 각기다른 장치 각기 다른 파티션에 나누어 넣어서 따로 보관할 수 있으며 데이터가 직접 보관되는 디스크를 따로 마운트해서 나중에 시스템을 다시 설치할때에 그 파티션만 지우지 않고 후에 마운팅하는 용도로 사용이 가능하다.
* 절대경로의 기준이 되는 디렉토리
* 절대경로 - / 디렉토리 기준 예) /usr/local
* 상대경로 - 현재 작업 디렉토리 기준 예) ./local'''
* 프로그램들이 의존하고 있는 라이브러리 파일들 존재.
* 대부분의 라이브러리들은 링크로 연결되어 있음.
lib 디렉토리에는 컴파일러를 통해서 혹은 만들어진 파일들이 잠조하는 라이브러리들이 존재한다. 또한 하부에 modules 디렉토리에 존재하는 커널 모듈은 특수장치를 설치했거나 제거했을 경우 커널이 자동적으로 모듈을 올리지 못할 경우 insmod, rmmod, modprobe 명령어를 통해서 이런 모듈을 다룰때 이용된다. 커널 모듈의 경우 2.4커널에서는 *.o, 2.6 커널에서는 *.ko의 확장자를 가지고 있다.
* /etc/httpd (/etc/apache2) : 아파치 웹 서버의 설정 및 로그파일이 있음.
* /etc/profile.d : 쉘 로그인 하여 프로파일의 실행되는 스크립트에 대한 정의가 있음.
* /etc/skel : 새로운 사용자를 추가할 때 자동적으로 생성되는 디렉토리와 파일이 있음.
아파치를 비롯한 모든 서버의 환경설정 파일이 관리 되는 곳이다. 물론 사용자가 직접 바이너리로 설치했을 경우에는 이 곳에 위치하지 않을 수도있다. 그러나 대부분 패키지 관리자를 통해서 설치된 프로그램의 경우 이곳에서 설정이 가능하다. 직접 설치를 하는 경우라면 '''X11, apache2, init.d, rc.*, skel, xinitd.d''' 디렉토리를 많이 다루게 된다.
* 주로 시스템 작동기록(log)들을 저장.
- 논문번역/2012년스터디/서민관 . . . . 73 matches
이런 시스템들은 분할된 문자나 단어에만 한정적으로 사용되고 있고, 제약사항이 없는 필기 인식 시스템은 무척 적다.
이 논문에서는 어휘 제한이 없는 off-line의 필기 인식을 기본으로 한 Hidden-Markov-Model을 소개할 것이다.
전처리와 특징 추출을 위한 방법들을 기술할 것인데, 추가적으로 선형 판별 해석, allograph 문자 모델, 통계적 언어 지식 등의 더 정교한 방법도 살펴볼 것이다.
이런 일들은 주로 문맥 정보나 단어 구간의 정보가 없기 때문에 일어난다. 이러한 어려움은 분리된 단어 처리를 위한 시스템 들에 내재되어 나타난다.
이 시스템들은 주로 특징 추출(feature extract) 타입이나 인식 단계 전 또는 후에 텍스트 라인을 분리하거나 하는 점에서 차이가 있다.
이 시스템은 단일 작성자로 테스트 되었고, 통계적 언어 지식과의 결합으로 전망이 있는 인식 결과를 달성하였다.
추가적으로, 각 문자 종류에 따라 HMMs나 통계적 언어 모델을 사용하는 등의 allograph 문자 모델을 사용하는 것 뿐 아니라 특징 벡터들에 대해 선형 판별 해석을 적용한 효과에 대해서도 살펴보았다.
작성자에 독립인 경우 뿐만 아니라 복수 작성자에 대한 실험도 IAM과 Bern 대학에서 수집한 필기 형태를 이용하여 이루어졌다.
우리는 작성자 독립인 경우의 실험을 위해 250명 이상의 작성자가 만든 카테고리 [a..f]의 형태들을 이용했다. 그리고 복수 작성자인 경우의 실험을 위해 6명의 작성자에 의해 만들어진 c03의 일부를 이용하였다.
우리의 시스템을 단일 작성자인 경우에도 평가하기 위해서 노인(Senior)들에게서 수집된 데이터베이스에서 제공하는 필기 형태를 이용한 실험도 하였다.
이 데이터베이스는 단일 작성자에 의한 25페이지의 필기 텍스트로 이루어져 있으며, 웹에서 공개적으로 사용할 수 있다.
두 데이터베이스의 필기 형태는 해상도 300dpi에서 256의 그레이 레벨로 스캔되었다.
스캔 중이나 필기에서 지속적인 이동으로 형태의 부정확한 정렬이 되는 것으로 발생하는 에러를 보완하기 위해 처음에 주어진 필기 텍스트의 이미지는 비스듬하게 되어 있다.
이것은 수필 라인에서 중요한 부분의 이미지를 분할하는 것으로 가능하다.
텍스트 라인의 상위나 하위의 기준선 같은 종류의 핵심 지역은 기준 선을 나타내기 위해서 핵심 지역에 속하는 필수 선들의 픽셀들을 나타내는 임계치를 찾는 것으로 알 수 있다.
이진화 된 수필 지역의 수평 밀도 히스토그램을 이용하는 Otsu method를 이용하면 이 임계치를 자동으로 구할 수 있다.
그 후 수평 투사된 히스토그램의 각 라인들의 검은 픽셀들의 수가 누적된다. 그리고 이 이미지는 이 투사된 히스토그램이 최소인 지점을 따라 핵심 지역으로 분할된다.
가끔은 필기 스타일이 한 라인 안에서도 크게 달라질 수 있다는 관찰에서 영향을 받아서 우리는 각 수필 라인의 수직 위치, 일그러짐 등을 지역적으로 교정하였다.
반면에 수직 위치와 일그러짐은 [15]에 나온 것과 비슷한 선형 회귀(linear regression)를 이용한 베이스라인 추정 방법을 이용해서 교정하였다. 일그러진 각도의 계산은 각의 방향을 기반으로 하였다.
이 히스토그램의 평균값은 일그러진 각도(slant angle)로서 사용되었다.
- 병역문제어떻게해결할것인가 . . . . 73 matches
병역 문제로 고민하고 있는 사람(특히 전산인)들에게 도움을 주었으면 하는 취지로 만든 페이지
== 병으로 복무 ==
* 18개월로 줄어들면서 1년 반 복무 후 엇복학도 가능해짐
* 일반적으로 하지 못할 경험을 하고 나올 수 있다. - 좋던 나쁘던 경험에서 깨달음을 얻을 수 있음
* 특기병의 종류는 다양하지만, ZeroPage 회원들이 많이 갈만한 곳 위주로 적어둠
* 분기별로 모집합니다. 그리고 경력같은걸 많이 보는듯 합니다.
* 이 항목이 미래창조과학부(MSIP)주관, 정보통신산업진흥원(NIPA)운영하는 SW 마에스트로와 MOU를 체결한 그 부서의 그 특기병과를 지칭한다면, 지원하기 위해서는 활동량이 많은 제로페이지 회원이어도 지원 자격 요건은 충족할 수 있습니다만, 그건 구색을 맞추기 위한 지원조건이고, 실제로는 MOU 체결한 기관의 지원자에게 우선순위를 부여하기 때문에, 비 기관 지원자가 서류를 통과할 가능성은 거의 없다고 합니다. (입대설명회에 나온 간부가 말하길 서류 특별점수가 60점 정도 되는데, MOU 기관은 만점 채우고 시작, 아닌 사람은 산더미 만큼 모아와야 채울 수 있다고 합니다.)
* MOU체결 기관으로는 SW 마에스트로, BoB( Best of Best)가 알려져 있으며, 소마가 훨~씬 널럴하고 쉬우니 소마를 추천
* 모집하는 TO는 2014년 7월 입대를 기준으로 6명이라는 소문이 있음. 2014년도에 16명 뽑을 거란 얘기도 있음. 부대 인원은 대충 20~30명 정도인듯
* 서류 합격시에 확인 전화 하라고 문자가 오는데, 사이버병이라고 하면 담당자가 못 알아들음. 반드시 문자에 적힌 그대로 얘기할 것. (이번에는 S/W 개발병 이었음)
* 이건 보통 워드를 많이 치는 행정병 같습니다. 자대 가서 인사과에 대기할때 인원이 필요하면 타자연습프로그램으로 워드쳐보라 합니다. 기본 300타 이상이면 가능성 있습니다. 밤에 잠 못자구 워드 치는 경우가 많습니다. 요즘은 많이 좋아졌다고 합니다.
* 말그대로 레이다를 운용하는 특기병. 해안가 기지에서 육지로부터 10마일 이내의 범위를 감시합니다. 나름 매달 모집하고, 학과와 자격증에 따라 추가점수가 있기 때문에 대부분 합격할 수 있습니다. 훈련소를 마치고 후반기교육을 받은 후 자대 배치를 받으며, 해안가 기지로 배치받기 때문에 인천부터 시작해서, 해남/완도, 여수, 부산, 강원도 등 어디를 배치 받을지 알 수 없습니다. 감시 기지이기 때문에 격오지로 취급해 휴가와 수당이 지급되며, 24시간 작전부대로 취급되어 체력단련 및 기타 사격 훈련, 유격, 혹한기 등의 훈련이 없습니다. 단점은 분대 단위로 근무에 투입되어 3교대를 한다는 것이지만, 밤새서 과제하던 여러분이라면 금방 익숙해질 것 입니다. 격오지 부대라서 PX가 없지만 주에 한번꼴로 황금마차가 방문합니다.
* 두가지 일을 한다. 청음, 시추공 관리. 청음실에서 2인 1조 혹은 단독으로 근무하며 지하 폭발음을 청음한다. 시추공 관리는 감시 범위가 꽤 넓어 돌아다니는 운동량이 상당할 수 있다. 근무 난이도가 복불복 이지만 복이 많다.
* 시추공 관리는 호불호가 나뉘는데 상당한 범위를 매일 돌아다녀야 하므로 힘들 수 있다. 하지만 부족한 운동량을 채우는데 도움이 된다.
* 불복일 경우 : GP 를 같이 들어가거나, 수색대 수색 경계에 참여하거나 훈련에 참가한다.
* 복일 경우 : 훈련이 전혀 없다. 청음실에서 행복하게 독서와 부족한 공부를 하며 군생활을 할 수 있다. 사단 직할 소속으로 대대에 파견 근무갈 경우 누구도 간섭하지 않는다.
* 대부분이 배로 배정 받음.
* (정말정말 쉬운) 정보처리 기능사 자격증을 따고 신청하면 '전자계산' 특기로 공군에 입대할 수 있다.
* 2019년 기준 공군 복무기간이 22개월로 줄어듬에 따라 훈련소 5주 + 특기교육 3주를 겪고 해당 성적에 따라 (TO가 나온 부대 중에) 원하는 부대에 들어가게 된다.(2020년 현재 21개월까지 줄어듬.)
* 2020년 기준으로, 특기학교에서 체계특기(개발을 할 가능성이 있는특기) 와 정비특기로 갈리는 과정이 추가되었다. 이를 위해서는 훈련소 성적이 더 중요해졌다.
- OpenGL스터디 . . . . 72 matches
공부하는 도서는 openGL superbible 3판 번역서 + openGL Game programming 두권으로 하고 있습니다. 아마 openGL superbible은 이번달에 5판 원서가 해외에서 나오는 걸로 알고 있는데, 이걸 보시는 분은 참고해서 원서를 보는것도
{{{: example : 정육각형을 그릴때 모든 변을 그린다면 우리는 뒷면과 앞면을 착각해서 볼 수 있다. 왜냐하면 뒷면에 해당하는 선들이 앞쪽에 위치한 선으로 착각할 수 있기 때문이다.
이런 팝핑현상은 3차원적인 표현을 방해한다. 고로 보통 이를 제거하기위해서 뒷면을 그리는 선을 제거하여 3차원적인 표현을 더 생생하게 한다. 이렇게 뒷면의 선을 제거하는 방식을 '''은면제거''' 혹은 '''숨겨진 표면 제거'''라고 한다.
=== 랜더링 & 랜더(render) ===
* 핵심정리 : 3차원 사물에 대한 정보를 가지고 화면(2차원)에 표시하는 것을 '''랜더(render)한다'''라고 말하고 랜더링이라고 한마디로 말한다.
컴퓨터화면은 2차원이다. 하지만 우리가 3D게임을 할때 보면 그 내용물은 마치 3차원의 물체처럼 보인다. 하지만 실제로는 내용물은 2차원적인 것을 3차원처럼 보이게 만든것뿐이다. 그렇다면 어떻게 2차원적인것을 3차원적인것처럼 보이게 만들 수 있을까? 여러가지 방법이 잇지만 그중에 하나는 원근법을 사용한다는 것이다. '''원근법이란 가까히 있는 것은 크게 멀리있는것은 조그마하게 표현하는것을 말한다.''' 더 정확히 말하자면 '''선사이의 각도를 조절하여 3차원효과를 내는 기법'''을 말한다.
원근법의 대표적인 예로는 우리가 수학을 배울때 쉽게 보는 정육각형 그림이다.
3차원적인 요소를 더 두드러지게 표현하기 위해서는 쉐이딩을 사용하면 된다. 쉐이딩이란 '''입체적인 물체에 음영이나 색상 밝기 등을 잘 조절하여 표면에 입히는 기법'''을 말한다. 이런 기법을 통해서 정육각형같은 경우는 각 면을 도드라지게 표현할 수 있고, 더욱 실감나는 3차원적인 표현을 가능케 한다.
필요한 경우에는 속도저하에 대한 문제가 발생할 수가 있다. 이런점에서 텍스쳐 맵핑은 훌륭한 대안책이 될 수 있다. '''텍스쳐 맵핑이란 각 입체 표면에 미리준비해둔 이미지를
'''블랜딩(blending)'''이란 화면상에 색상과 물체를 혼합하는 효과를 이야기한다. 이를 사용하는 곳은 주로 두 이미지가 겹쳐있는 효과를 내기위해서 사용한다. 예를 들어
컴퓨터는 기계어라는 언어라는 이진적인 표현(이진법적인 표현)을 사용한다. 한마디로 1011001과 같은 표현을 예시로 들 수 있는데, 이 때문에 연속적인 표현을 실질적으로 표현
표현은 사각형의 점으로 표현이되는데 그 이유는 연속적인 표현이 불가한 컴퓨터로서는 완전히 동그랗게 이어진 원을 그리기에는 실수표현에 한계가 있기 때문이다.(무한 소수의
표현이 불가하다고 하는게 더 옳을 수도 있겟다.) 그래서 사각형으로 표현되어지는 점으로 원을 그리게되면 '''계단현상'''이 일어난 원을 보게 될것이다. 안티 알리어싱은 이러
* 실시간 3D는 말그대로 사용자가 화면 구성에 필요한 데이터를 입력 즉시 화면에 반영하는 방식을 이야기한다. 예를 들어 비행기 시뮬레이션 프로그램이라던가, 게임을 예시로 들 수 있다.
* 비실시간 3D는 반대로 미리 구성해둔 3D이미지를 화면에 보여주는 방식을 이야기한다. 예시로는 애니매이션이나 영화를 들 수 있겠다. 고품질 3D이미지같은 경우는 이를 랜더링하고 구성하는데에만 해도 몇시간이 걸릴 정도로 많은 시간이 소요되는데, 이를 위한게 미리 3D이미지를 구성해두고 화면에 띄워주면 즉시 화면에 보여줄 수 있어서 마치 실시간 랜더링한 것 처럼 보여줄 수 있다.
실시간 3D 그래픽을 위한 API 프로그래밍 방식에는 즉시모드와 보류모드 두가지 방법이 있다.
* '''보류모드란, api상에서 미리 어떤 기본적인 도형의 구성방식이나 처리방식이 내부적으로 정해져있는 상태에서 도형을 구성하는 데이터를 API 또는 툴킷에 제공함으로써 도형을 구성(이미지 구성)하는 방식을 이야기한다.''' 장면내의 모든 물체들과 그 사이의 관계를 미리 만들어진 데이터 구조로 만들어두는것을 씬그래프(scene graph)라 한다.
* '''즉시모드란, 그래픽 프로세서에 직접적인 명령을 전달해서 상태를 변경시켜 이어지는 모든 명령에 그 상태를 반영하는 방식을 이야기한다.''' 이 방식은 위에서 언급한 씬그래프에 API의 내부적인 동작에도 이 방식이 쓰인다. 즉시모드에서 이미 실행된 명령은 그 다음 명령에 영향을 받지 않는데 예를 들자면 화면에 하늘에 대한 폴리곤을 텍스쳐를 입힌뒤 이 텍스쳐 상태를 해제하고, 땅에 조명효과에를 주기 위해 조명효과 상태를 변경시킨다면, 화면에는 하늘에 미리 구성된 텍스쳐에는 변함이 없으며 하늘에 조명효과가 반영이 되고 땅은 텍스쳐 상태가 반영이 안되고 조명효과에 대한 것만 반영이 될 것이다.
example) 직사각형 좌측하단 (0.0) ~ 직사각형 우측 상단(100,100) 좌표로 구성되는 직사각형모양의 좌표계를 클리핑한다라고 보면 이 좌표계 영역은 중심이 (50,50)인 클리핑
영역이라고 한다. 만약 좌표중심을 (0,0)으로 만들고 싶다면 x축과 y축의 +영역좌표와 -영역좌표를 대칭형으로 만들어야한다.
- XMLStudy_2002/Start . . . . 72 matches
*XML 문서의 종류를 나누어 보면 다음 세 가지로 나눌 수있다
1 Invalid Documents : XML의 태그 규칙을 따르지 않거나,DTD를 사용한 경우에 DTD에 정의된 규칙을 제대로 따르지 않는 문서
3 Valid Documents : XML의 태그 규칙을 지키며 DTD에 정의된 방식으로 바르게 작성된 문서
* 위에 3개중 Invalid Documents는 실제 XML 문서로서의 역할을 할수 없다. XML 파서로 파싱 했을 때 바르게 파싱되지 않기 때문이다.
* 2번은 XML 문서에 DTD를 사용하지않았지만 XML 문서 태그 규칙에 맞게 작성되었으므로 Well-Formed 문서로 사용된다.
3 어트리뷰트의 값들은 끈따옴표로 둘러쌓여야한다.
step2. DTD를 사용하는 경우 사용할 DTD 선정 또는 새로 설계하여 작성
*XML 문서는 XML로 기술된 구조적인 정보로 구성되는 문서이며 XML1.0스펙에 맞게 작성하며 XML을 지원하는 프로세서(또는 프로그램)에서 사용하기 위해서 Well-formed나 Valid한 형태로 작성된 문서를 말한다. ---> 정의
*XML문서는 택스트 파일이라는 형태로 저장되므로, XML파일 자체는 OS나 특정 프로그램에 의존적이지 않는 특성을 지닌다.
*XML문서는 문서로서의 역할을 하기도 하지만, 데이터들을 담을 수도 있다. 즉 XML 문서는 택스트 형태의 데이터로서의 역할을 할 수도 있다.
*XML 응용프로그램이란 이러한 택스트 객체(textual object)를 처리하여 사용할수 있는 프로그램이다.
*전통적인 문서로서의 기능
*구조적인 형태로 문서를 유지
*구조적 문서 검색이나 문서의 구조 정보가 필요한 응용에 이용 ,EDI DTP등에 이용,전자상거래 플랫폼으로 이용
*데이터로서의 역할
*XML은 SGML을 좀더 손쉽게 사용할수 있는 대안으로서 취급 하지만 XML의 응용분야가 확대되면서 데이터로서의 역할이 점점 커지고 있음
*Kawa4.0에서는 Project나 Workspace에 대한 정보 및 기타 몇 가지 프로그램에 대한 정보를 XML문서 형태로 유지
[<!ELEMENT MAIL (SUBJECT,SENDER,RECEIVER,BODY,SIGNATURE)>
<!ELEMENT SENDER (NAME,ADDRESS)>
<SENDER>
- 고한종/십자가돌리기 . . . . 72 matches
if(i<scale && j==scale){printf("%2.d\n",1+k++);}
if(i==scale && j!=scale&&j!=2*scale-1){printf("%2.d",2*scale+z++);}
if(i==scale && j==2*scale-1){printf("%2.d\n",2*scale+z++);} // 우왕 ()안에서도 연산이 되네?
if(i==scale && j==scale){printf("%2.d",1+k++);}
if(i>scale && j==scale){printf("%2.d\n",1+k++);}
if(j<scale && i!=scale){printf(" ");}
if(i==j && i<scale){printf("%2.d",2*scale+z++);}
if(i==j && i>scale){printf("%2.d\n",2*scale+z++);}
if((i+j)==2*scale && i<=scale){printf("%2.d\n",1+k++);}
if((i+j)==2*scale && i>scale){printf("%2.d",1+k++);}
if(i>j || i+j<2*scale){if(i!=j && i+j!=2*scale){printf(" ");}}//잉여칸
if(i<scale && j==scale){printf("%2.d\n",2*scale+k++);}
if(i==scale && j!=2*scale-1){printf("%2.d",2*scale-1-(z++));}
if(i==scale && j==2*scale-1){printf("%2.d\n",2*scale-1-(z++));}
if(i>scale && j==scale){printf("%2.d\n",2*scale+k++);}
if(j<scale && i!=scale){printf(" ");}
if(i==j && i<scale){printf("%2.d",2*scale-1-(z++));}
if(i==j && i>=scale){printf("%2.d\n",2*scale-1-(z++));}
if((i+j)==2*scale && i<scale){printf("%2.d\n",2*scale+k++);}
if((i+j)==2*scale && i>scale){printf("%2.d",2*scale+-1+k++);}
- 새싹교실/2012/해보자 . . . . 72 matches
* 목적: C언어를 다양한 프로그래밍 실습을 통해 재미있게 배운다.
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
* overflow: 변수가 표현할 수 있는 범위를 넘어선 데이터를 대입할때 나타나는 현상으로, 데이터의 손실이 일어난다. 프로그래밍할 때 오버플로우를 조심해야 한다!
- 프로그램 어디서나 참조 가능하다.
- 프로그램이 끝날 때 메모리상에서 지워진다.
- 선언된 이후로부터 전역변수처럼 사용 가능하다.
- 선언된 이후 프로그램이 끝날 때 메모리상에서 지워진다.
* 변수를 참조할 때 지역변수를 전역변수보다 우선으로 참조한다.
* 전역변수를 왠만해선 사용하지 마라! 값을 원하지 않을 때 임의로 변경할 수 있다.
1. #define pi 3.141592를 이용하여 구의 겉넓이, 부피를 계산하고 출력하는 프로그램을 만드시오.(코드를 여기에 올려주세요)
강재곤 후기 : 변수에 대해 배웠다. 첫날이라 많은 내용을 배운게 아니라 부담은 없었다. 오버플로우가 일어나면 자료의손실이 일어나므로 조심해야 한다는 것을 알았다. 다음시간부턴 직접 실습을 해보고 싶다
* 조건문 if
if(조건식){
- 조건식이 만족해야 블록 진입
- 조건식엔 논리식이 들어간다 (일반적으로 참 = 0이 아닌 숫자, 거짓 = 0)
- true/false로 판별이 가능한 식
* 예제1) 정수를 입력받고 숫자가 짝수인지 홀수인지 판별하는 프로그램
if(num%2==0)
- Ant . . . . 70 matches
Platform 독립적인 Java 의 프로그램 컴파일, 배포 도구 이다. 비슷한 역할로 Unix의 make 툴과 Windows에서 프로그램 Installer 를 생각할수 있다.
일단 이글은 Jarakta 프로젝트의 일부인 Ant 에 대한 메뉴얼(?)같은 것으로써http://jakarta.apache.org/ant/manual/
의 해석 및 의견 정도로 진행되었으면 좋겠습니다.
Ant 는 [Java] 기반의 Build 툴로써 [Unix] 의 [make] 와 같은 툴이라고 보면 된다.
make.gnumake,nmake,jam 과 같은 다른 Build 툴은 놔두고 왜 Ant 를 써야하는가에 대한 질문이다. Java 기반으로 프로그램을 짜고 컴파일 및 배포용 쉘 프로그램을 짜봤는가? 해봤다면 그것의 어려움을 잘 알것이다. 각 [OS] 마다 쉘 스크립트가 다르고 일반적으로 사용하고 있는 Unix 에는 또 각종 쉘들이 존재한다. 윈도우 쉘 또한 복잡하긴 매한가지이고 프로그램을 모두 작성하고 컴파일 및 배포 쉘 스크립트를 작성하기 위해서 이것들을 모두 작성하는것 자체가 프로그래머에게 또 하나의 고난이 아닐까 생각한다.(즉, 쉘 프로그램을 배워야 한다는 의미이다.)
게다가, 팀 단위 작업을 한다고 할때, 작업하는 컴퓨터와 [IDE] 들이 각각 다른 경우, IDE 에 따라서 classpath, 배포디렉토리 경로들도 다를 것이다.
Ant 는 OS Indepenent 하게 프로그램을 Build 할 수 있는 환경을 제공해준다. build.xml 이란 Build 파일을 작성해서 그 내용에 따라 Build 를 진행해 나갈 수 있다. Ant 는 ["Java"] 에서 거의 표준으로 굳혀져가고 있으며, 거의 모든 IDE들이 Ant 를 지원한다.
1. Ant 얻기 - IDE 에 따라서 Ant 가 기본내장되어있는 경우가 많다.
Ant 를 사용하여 Build 하기 위해서는 JAXP 호환 XML파서가 있어야 합니다. 그런데 Ant 를 다운받으면 그 패키지 안에 포함되어 있으므로 따로 다운받으실 필요는 없습니다. JAXP 에 대해서는 http://java.sun.com/xml/ 정보를 얻을 수 있습니다.
Ant 의 몇몇 특정 Task 들의 경우 (JUnit, FTP, Telnet 등) 해당 라이브러리가 필요하다. 이는 http://jakarta.apache.org/ant/manual/install.html#librarydependencies 항목을 읽기 바란다.
바이너리 파일을 기준으로 설명하겠습니다. 설치는 Windows 기반으로 설명하겠습니다. Unix/Linux 기반을 비슷하니 알아서(?) 하세요. ^^;
Ant 는 다양한 Optional Tasks를 제공합니다. 일단 Task 라는 말이 앞으로 많이 나올텐데 Glossary 를 참고하세요. 예를들면 CVS 에 소스를 업데이트 해주는 Optional Task 가 있을 수 있고, 또 .NET 컴파일을 한다던지.. 기타 등등 다양한 Task 가 있습니다. (이에 대한 예제로는 ["AntTask"]를 참조)
이제 Ant 를 실행하는 방법에 대해서 알아보자. Ant를 실행하는 것은 마치 make 명령을 내리는 것처럼 쉽다. Ant 에서 중요한 것은 make에서 "Makefile" 을 만들듯이 Build 파일을 잘 만드는 것이 중요합니다. Build 파일을 만드는 것에 대해서는 나중에 알아보기로 하고 일단 실행하는 방법부터 알아보죠.
이것은 현재 디렉토리에 build.xml 이라는 파일을 Build File 로 해서 Build 를 하겠다는 것입니다. build.xml 파일이 없다면 에러를 출력하겠죠? ^^
이것은 build 파일을 test.xml 이라는 파일을 build 파일로 사용해서 build 하겠다는 의미입니다.
이것은 바로 위에 있는 것에다가 dist라는 것이 붙었는데 이것은 target 을 나타냅니다. Unix/Linux 에서 make 명령으로 컴파일 해보신 분들을 아실껍니다. 보통 make 명령으로 컴파일 하고 make install 명령으로 인스톨을 하죠? 거기서 쓰인 install 이 target 입니다. Ant 에서는 Build 파일 안에 다양한 target 을 둘 수 있습니다. 예를 들면 debug 모드 컴파일과 optimal 모드 컴파일 2개의 target 을 만들어서 테스트 할 수 있겠죠? ^^
실행 파일 ant는 Unix 계열에서는 shell 스크립트로 Windows 계열에서는 ant.bat 라는 배치파일로 배포됩니다. 내부에 보면 java 프로그램을 실행하는데, 다음과 같이 자신이 직접할 수도 있습니다.
Ant 를 다룰줄 안다는 말은 즉, Build File 을 만들줄 안다는 의미와 같다. Build File 은 파일이름에서도 알 수 있듯이 xml 을 기반으로 하고 있다. 예제로 참조해볼만한 화일로 ["Ant/TaskOne"], ["Ant/BuildTemplateExample"] 이 있다. 해당 화일을 보면서 설명을 읽으면 편할것이다.
일단 제일 처음 나오는 Root Element 로는 ''project'' 태그로 프로젝트 정의를 하는 곳이다.
|| name || 프로젝트의 이름 || No ||
- C/C++어려운선언문해석하기 . . . . 70 matches
CodeProject에서 최근에 아주 흥미로운 글을 읽었습니다. 글의 내용이 별로 길지도 않고 워낙 유용한 정보라 생각되서 날림으로 번역해봤습니다. 영어와 한글의 어순이 반대라서 매끄럽지 못한 부분이 많은데 이런 경우 원문도 같이 볼 수 있도록 같이 올렸습니다.
선언문을 직면했을 때 이를 어떻게 해석하는가를 알려주기 위한 글입니다. 매우 기본적이고 평범한 예제에서 시작해서 복작한 경우까지
포인터를 다룬 후 마지막으로 "오른쪽에서 왼쪽으로" 규칙을 알아 봅니다.
예제에서 제시된 것과 같이 복잡한 선언문을 사용하여 이해하기 어려운 코드를 작성하는것은 결코 좋은 프로그래밍 습관이 아니겠죠.
위의 문장은 '변수 n 을 int 형으로 선언한다'라고 해석할 수 있습니다.
포인터로 넘어가서 다음과 같은 선언문을 보게되면,
'변수 p를 int *형으로 선언한다' 라고 해석할 수 있고 다시 말하면 '변수 p를 int형을 가리키는 포인터로 선언한다'라고 할 수 있습니
다. 여기서 잠깐 샛길로 빠져서 포인터 연산자(*) 또는 참조 연산자(&)는 변수 형 (int)에 붙이는 것 보다 변수(p)에 붙이는것이 항상
좋습니다. 왜냐하면 다음과 같은 선언문을 사용하면서 실수할만한 소지를 없애주기 때문입니다. (역자주: 참고로 C++ 창시자인 Bjarne
위의 선언문을 처음 보게 되면 변수 p와 변수 q가 마치 int를 가리키는 포인터형 (int *) 변수로 선언된 것 처럼 보입니다. 하지만 사실
변수 p만 int를 가리키는 포인터형으로 선언되었고 변수q는 int형으로 선언된 것입니다. (역자주: int *p; int *q; 처럼 각각 따로 선언
다음과 같은 선언문들을 봅시다. (역자주: 여기서 부터는 선언문 해석 원문을 괄호안에 넣습니다. 선언문을 한글로 표현하기가 이렇게
변수 p는 int형을 요소로 하는 크기가 4인 배열을 가리키는 포인터(a pointer to an array of 4 ints)이며, 변수 q는 int형 포인터를 요
소로 하는 크기가 5인 배열(an array of 5 pointer to integers) 입니다.
[[ const modifier ]]
를 선언하는 경우 선언문에서 바로 초기화를 해줍니다. 변경이 불가능하기 때문에 선언문 외에서는 값을 초기화할 수 없겠죠.
위의 예제의 두 변수 n과 m은 똑같이 const 정수형으로 선언되었습니다. C++ 표준에서 두가지 선언이 모두 가능하다고 나와있습니만 개
인적으로는 const가 강조되어서 의미가 더 분명한 첫번째 선언문을 선호합니다.
int * const r = &n; // n 은 int형 변수로 선언 되었슴
된 후에 다시 r = &m 과 같이 다른 주소값을 할당하는 것이 불가능합니다. (물론 m은 또 다른 int형 변수이겠죠) 물론 이 경우 *r의
- Gof/Command . . . . 69 matches
request 를 객체로 캡슐화 시킴으로서 다른 request들을 가진 클라이언트를 인자화시키거나, request를 queue하거나 대기시키며, undo가 가능한 명령을 지원한다.
때때로 요청받은 명령이나 request를 받는 객체에 대한 정보없이 객체들에게 request를 넘겨줄 때가 있다. 예를 들어 user interface tookit은 button이나 menu처럼 사용자 입력에 대해 응답하기 위해 요청을 처리하는 객체들을 포함한다. 하지만, 오직 toolkit을 사용하는 어플리케이션만이 어떤 객체가 어떤일을 해야 할지 알고 있으므로, toolkit은 button이나 menu에 대해서 요청에 대해 명시적으로 구현을 할 수 없다. toolkit 디자이너로서 우리는 request를 받는 개체나 request를 처리할 operations에 대해 알지 못한다.
Command Pattern은 request 를 객체화함으로서 toolkit 객체로 하여금 불특정한 어플리케이션 객체에 대한 request를 만들게 한다. 이 객체는 다른 객체처럼 저장될 수 있으며 pass around 가능하다. 이 pattern의 key는 수행할 명령어에 대한 인터페이스를 선언하는 추상 Command class에 있다. 이 인터페이스의 가장 단순한 형태에서는 추상적인 Execute operation을 포함한다. 구체화된 Command subclass들은 request에 대한 receiver를 instance 변수로 저장하고 request를 invoke하기 위한 Execute operation을 구현함으로서 receiver-action 짝을 구체화시킨다. The receiver has the knowledge required to carry out the request.
http://zeropage.org/~reset/zb/data/comma081.gif
Menu는 쉽게 Command Object로 구현될 수 있다. Menu 의 각각의 선택은 각각 MenuItem 클래스의 인스턴스이다. Application 클래스는 이 메뉴들과 나머지 유저 인터페이스에 따라서 메뉴아이템을 구성한다. Application 클래스는 유저가 열 Document 객체의 track을 유지한다.
어플리케이션은 각각의 구체적인 Command 의 subclass들로 각가각MenuItem 객체를 설정한다. 사용자가 MenuItem을 선택했을때 MenuItem은 메뉴아이템의 해당 명령으로서 Execute oeration을 호출하고, Execute는 실제의 명령을 수행한다. MenuItem객체들은 자신들이 사용할 Command의 subclass에 대한 정보를 가지고 있지 않다. Command subclass는 해당 request에 대한 receiver를 저장하고, receiver의 하나나 그 이상의 명령어들을 invoke한다.
http://zeropage.org/~reset/zb/data/comma078.gif
http://zeropage.org/~reset/zb/data/comma079.gif
때때로 MenuItem은 연속된 명령어들의 일괄수행을 필요로 한다. 예를 들어서 해당 페이지를 중앙에 놓고 일반크기화 시키는 MenuItem은 CenterDocumentCommand 객체와 NormalSizeCommand 객체로 만들 수 있다. 이러한 방식으로 명령어들을 이어지게 하는 것은 일반적이므로, 우리는 복수명령을 수행하기 위한 MenuItem을 허용하기 위해 MacroCommand를 정의할 수 있다. MacroCommand는 단순히 명령어들의 sequence를 수행하는 Command subclass의 구체화이다. MacroCommand는 MacroCommand를 이루고 있는 command들이 그들의 receiver를 정의하므로 명시적인 receiver를 가지지 않는다.
http://zeropage.org/~reset/zb/data/comma080.gif
이러한 예들에서, 어떻게 Command pattern이 해당 명령을 invoke하는 객체와 명령을 수행하는 정보를 가진 객체를 분리하는지 주목하라. 이러함은 유저인터페이스를 디자인함에 있어서 많은 유연성을 제공한다. 어플리케이션은 단지 menu와 push button이 같은 구체적인 Command subclass의 인스턴스를 공유함으로서 menu 와 push button 인터페이스 제공할 수 있다. 우리는 동적으로 command를 바꿀 수 있으며, 이러함은 context-sensitive menu 를 구현하는데 유용하다. 또한 우리는 명령어들을 커다란 명령어에 하나로 조합함으로서 command scripting을 지원할 수 있다. 이러한 모든 것은 request를 issue하는 객체가 오직 어떻게 issue화 하는지만 알고 있으면 되기때문에 가능하다. request를 나타내는 객체는 어떻게 request가 수행되어야 할지 알 필요가 없다.
다음과 같은 경우에 CommandPattern을 이용하라.
* MenuItem 객체가 하려는 일을 넘어서 수행하려는 action에 의해 객체를을 인자화시킬때. 프로그래머는 procedural language에서의 callback 함수처럼 인자화시킬 수 있다. Command는 callback함수에 대한 객체지향적인 대안이다.
* 다른 시간대에 request를 구체화하거나 queue하거나 수행하기 원할때. Command 객체는 request와 독립적인 lifetime을 가질 수 있다. 만일 request의 receiver가 공간 독립적인 방법으로 (네트워크 등) 주소를 표현할 수 있다면 프로그래머는 request에 대한 Command 객체를 다른 프로세스에게 전달하여 처리할 수 있다.
* undo 기능을 지원하기 원할때. Command의 Execute operation은 해당 Command의 효과를 되돌리기 위한 state를 저장할 수 있다. Command 는 Execute 수행의 효과를 되돌리기 위한 Unexecute operation을 인터페이스로서 추가해야 한다. 수행된 command는 history list에 저장된다. history list를 앞 뒤로 검색하면서 Unexecute와 Execute를 부름으로서 무제한의 undo기능과 redo기능을 지원할 수 있게 된다.
* logging change를 지원하기 원할때. logging change 를 지원함으로서 시스템 충돌이 난 경우에 대해 해당 command를 재시도 할 수 있다. Command 객체에 load 와 store operation을 추가함으로서 change의 log를 유지할 수 있다. crash로부터 복구하는 것은 디스크로부터 logged command를 읽어들이고 Execute operation을 재실행하는 것은 중요한 부분이다.
* 기본명령어들를 기반으로 이용한 하이레벨의 명령들로 시스템을 조직할 때. 그러함 조직은 transaction을 지원하는 정보시스템에서 보편화된 방식이다. transaction은 데이터의 변화의 집합을 캡슐화한다. CommandPattern은 transaction을 디자인하는 하나의 방법을 제공한다. Command들은 공통된 인터페이스를 가지며, 모든 transaction를 같은 방법으로 invoke할 수 있도록 한다. CommandPattern은 또한 새로운 transaction들을 시스템에 확장시키기 쉽게 한다.
http://zeropage.org/~reset/zb/data/command.gif
- ConcreteCommand 객체를 만들고 receiver로 정한다.
- 처리할 request에 대해 명령어들을 어떻게 수행해야 할지 알고 있다. 어떠한 클래스든지 Receiver로서 활동가능하다.
- Linux/배포판 . . . . 69 matches
자, 그렇다면 의문을 해소해보자. 운영체제의 중심은 무엇인가? 운영체제라고하는 것은 결국 하드웨어와 사용자 사이를 이어주는 가교라고 생각하면 된다. 이런 영역을 '''kernel'''이라는 용어로 부른다. 이 kernel 에도 종류가 대단히 다양한데... 그중에 하나가 리눅스이다. 리눅스이외에도 Mach, BSD, Darwin, Hurd 등등등 우리가 생각하는 것 보다 훨씬더 다양하고 많은 커널들이 존재한다. (대략 Mach 커널이 좀 유명하다. 모듈 커널의 장점을 이야기 하면서 리눅스의 커널의 비효율성에 대한 평가자료로 많이 이용되었다. 지금은 리눅스도 대부분의 장치들을 모듈로 올리는 것이 가능하지만..) 윈도우의 경우 이 커널은 관리하는 회사가 오로지 마이크로소프트뿐이기 때문에 OS패키지를 라이센스라는 이름 아래에 단독으로 공급을 하지만 리눅스는 이와 달리 커널은 공개되어있고 어떤 묶으로 묶어서 팔거나 발표를 하는 것은 자유롭기에 다양한 배포판이 존재한다.
추가)요즘엔 CD안에 Linux 를 넣어버린 LiveCD라는 형태도 나온다.Knoppix, UbuntuLiveCD 등등 개인이 만들어서 배포하는 경우도 많다.
사실상 리눅스의 다양한 프로그램들을 개인이 따로 관리한다는 것은 굉장히 어렵다. 패키지가 정적인 형태가 아니라 리눅스는 지속적인 엡데이트를 하는데, 통일된 방식으로 관리를 해준지 않으면 나중엔 어떤 프로그램을 어디에 깔았는지 조차 알기힘들어진다. (대략 도스시절 컴퓨터에 프로그램을 마구잡이로 까는 사람을 생각해보면 알듯.. -_-;) 이런 이유로 매키지 매니저라는 것을 사용하고 잇으며, 패키지 매니저는 상기와 같은 일들을 자동화된 방식으로 제공한다.''
국내의 배포판은 대부분 레드햇의 패키지 방식인 RPM(Redhat Package Manager)를 채용한다. RPM의 경우 단일 패키지르 중심으로하는 경향이 강하고 의존성에 상당히 관대한 패키지 방식으로 알려져있다. ''(데비안유저인 관계로 잘모른다.)'' 알려진 바로는 느슨한 패키지 의존성때문에 처음에는 편하지만 나중에 엉켜있는 패키지를 관리하기가 좀 까다롭다는 의견도 많다. 레드햇 리눅스는 현재 공개방식으로 배포되지 않는다. 기업용 혹은 웍스테이션을 위한 돈주고 파는 버전만 존재한다. 대신에 레드햇사는 페도라라는 리눅스 배포판을 지원하고 있으며, 레드햇의 사이트를 통해서 배포가 이루어진다. 대부분의 패키지가 CD안에 통합되어 있으며, 대략 최신 패키지 들이 패키징되어있다. (050626 현재 페도라4가 얼마전에 발표되었다 4+1CD) 페도라 리눅스는 레드햇의 불안정판 정도라고 생각하면 되고, 실제로 최신의 패키지들로 묶어서 내놓고 잇다. 페도라에서 얻어진 피드백을 통해서 레드햇에 반영하고 이로부터 안정적인 리눅스 서버 OS를 발표한다. ''ps) 의존성? 리눅스의 각패키지는 각기 다른 프로젝트로 진행되어 만들어진 것들을 다시 사용하는 경우가 많다. 따라서 각기 독립적인 패키지 만으로는 프로그램이 실행이 안되어 경우가 있는제 이런 경우 의존성이 있다고 말한다.''
GNU에 정신에 입각해서 만들어지는 배포판이다. 공식명식 GNU/Debian Linux 이다. 데비안의 이름은 배포자인 이안, 그의 부인 데보라 이름을 땃다고한다. 패키징은 과거 dselect를 이용하였고, 현재는 aptitude 라는 툴을 기반으로 한다. ''(관리정보를 보관하기 때문에 서로 호환성을 갖지는 않는다고 한다.)'' 데비안의 안정판은 대단히 배포사이의 공백기가 긴 것으로 유명하다. 혹자들은 메인테이너들이 굉장히 신중한 사람들이라고 평가하기도 한다. ''(01년도 Woody를 시작으로 05년 Sarge 사이에 딱 하나의 안정판이 있을뿐이다. 대략 2년에 한번꼴이다.)'' 대신에 Stable, Testing, Unstable, Experimental 이라는 단계적 개념으로 패키지를 제공해서 사용자의 선택의 폭을 제공한다. 그렇지만 Unstable 이라고해도 페도라만큼 최신의 패키지들로 묶이지는 않고 어느정도 성숙이 되면 패키지로 포함되는 경우가 다반사이다. 안정적 서버운영을 위해서는 안정판을 설치하는 경우가 많고, 일반용도로는 Testing, Unstable을 설치한다. (www.kldp.org 가 현재 데비안 Sarge-stable 로 운영중이다.) 패키지방식은 의존성에 대한 철저한 관리가 특징이다. 데비안이 유명한 것은 바로 이 패키지 관리의 엄격함 때문이기도 하다. 그렇지만 최신의 기술로 만들어진 소프트를 원하는 이들에겐 그다지 좋은 덕목은 아니다. 네트워크를 통해서 인스톨하기 때문에 base-system 이상의 것들은 네트웍이 연결된 상태에서 설치가 가능하다. 대신에 모든 배포판은 CD1장으로 구성된다. (net-install의 경우 대략 100MB 정도) 현재는 데비안의 엄격한 패키징 방식에서 좀더 유연한 자식격 배포판인 우분투이 나오면서 상당한 인기를 끌고 있다. 우분투는 데스크탑용 OS를 표방하고 발표되어으며, 실제로 CD로 엔터만 누르면서 완전설치가 가능하다.
리눅스의 대부분의 배포판은 각 CPU에 맞는 커널에서 운영이 되는 바이너리 형태를 중심으로 하고 소스파일은 곁다리로 다루는 경우가 대부분이다. 그러나 젠투 리눅스는 다른 배포판과는 좀 다르게 소스를 직접 컴파일해서 패키지를 관리한다. 이때 사용되는 매키지 관리자의 이름이 Portage 라는 것이다. ''(대략 리눅스 관련 사이트에서 emerge, ebuild, USE 라는 것들이 나오면 gentoo 이다.)'' 본디 Gentoo의 배포자는 BSD의 포트를 기반으로한 패키징 방식이 너무 마음에 들어서 리눅스도 이런 배포 시스템을 만들자는 취지하에서 배포를 시작했다고 한다. ''(덕분에 각기 다른 CPU 관련된 바이너리를 저장소에 보관하지 않기 때문에 미러 서버 입장에서는 좋을듯)'' 덕분에 Gentoo의 경우 실제 설치시에 커널 컴파일을 하면서 커널 모듈 설정을 해야하며, 세부적인 설정이 완전히 자동적으로 이루어 지지않는다. 또한 변변한 인스톨러도 없다. (Project가 진행중이긴하다) 리눅스를 좀 다루어본 사람들이 설치하고 쓴다.또 설치 시간이 컴파일 하는 시간과 같이 걸리기 때문에 엄청난 설치시간으로도 유명하다.
한번도 써본적이 없어서 뭐라고 말하기 힘들다. 대략 배포방식은 레드햇(페도라)처럼 CD형태의 완전 패키지 형태로 배포된다.
리눅스를 처음 시작하면서 어떤 배포판을 선택하는 지는 중요하다. 같은 리눅스이기는 하지만 사실 대부분의 리눅서들은 패키지 매니저를 이용하여 프로그램을 설치하는 편이지, 자신이 원하는 버전이 패키지 트리에 없다던가 버그가 있는 경우를 제외하면 직접 제작사 홈페이지에서 바이너리를 설치하는 경우는 거의 없다. 이럴때 동일한 패키지를 쓰는 사람한테 묻기가 편하고 이해하기가 편하기 대문이다. 2005년 현재 리눅스를 시작한다면 현시점에서는 [http://www.ubuntulinux.org/ Ubuntu]를 가지고 시작해서 [http://www.debian.org Debian] 으로 옮겨가길 권한다. 동일한 패키징 방식을 가지고 있으면서 우분투는 데스크탑 리눅스를 표방하고 있는 만큼 다루기가 쉽기 때문이다. 우분투에서 기본을 익히고 직접 서버를 운영하는 수준으로 올라가면 데비안으로 옮겨가면 배포판을 바꾸는데에 대한 부담을 전혀 느낄 필요가 없다. 나의 경우 대략 2주일 정도를 밤새면서 이런 저런 문제를 해결하면서 왠만한 문제는 이제 스스로 해결할 정도가 되었는데... 한번쯤은 해볼 만한 도전이라고 생각한다. 쓰다보면 윈도우 없이도 살 수 있는 세상도 있다는 생각도 하게 된다. 실제로 리눅스를 쓰는 사람들은 가장 게으른 배포판으로 데비안, 젠투정도를 꼽는다. 그만큼 잘 안변하고 한번 설치하면 거의 새로 설치해야할 일이 없다는 것을 말하는 것이다.
- SuperMarket/인수 . . . . 69 matches
// 캬오옷.. 졸라 심심하다 ㅠ.ㅠ 학교 와서 노닥거리다가 걍 해봤음. 파서 만드는데 80프로 이상의 시간을..--;
// 아래로 이어지는 if/else-if는 코드 중복이라고 봅니다. 이걸 어떻게 제거할 수 있을까요? Command Pattern? Polymorphism? 혹은 그냥 Table Lookup? --JuNe
if(command == "help")
else if(command == "mymoney")
cout << sm.getRestMoney() << endl;
else if(command == "inventory")
else if(command == "ask")
else if(command == "deposit")
else if(command == "exit")
else if(command == "menu")
else if(command == "buy")
else if(command == "cancel")
// 어떻게 하면 if/else if 중복을 없앨수 있을까 고민하다가 폴리모피즘을 이용하기로 했습니다.(근데 이거 폴리모피즘이 맞나?--;)
// map<string, Cmd*> 이런식으로 string에는 커맨드를,Cmd 클래스는 HelpCmd클래스, Deposit클래스 등등의 부모 클래스, 즉 명령 클래스들의
// 조상 클래스를 포인터로 넣어줬습니다. 동적 바인딩을 하기 위해서..--; Parser생성할때 map 테이블에다 명령들을 넣어주면서 그 명령에
// 해당하는 클래스를 동적 할당해주면서 넣었습니다. 소멸자에서는 해제하는 것도 잊지 않았구요. 나름대로 상당히 고민을 했지만..--;
// 그래서 나름대로 고쳐본 것
cout << "OK" << endl;
cout << " 메뉴 " << endl;
cout << _havingGoods[i].getName() << " " << _havingGoods[i].getCost() << endl;
- 데블스캠프2011/다섯째날/후기 . . . . 69 matches
== 조현태/Python으로 하는 네트워크 ==
* 파이썬의 기본적인 프로그램을 배우고 (python에서 제공하는 학습용 라이브러리인 turtle을 사용하였습니다.) 네트워크에 관한 간단한 설명들을 들었습니다. 네트워크라는 부분을 공부해 본적이 없어서 처음 네트워크에 대해 이해하는 것이 어렵긴 했지만 알기쉬운 설명덕분에 그럭적럭 이해하고 넘어갈 수 있었습니다. server와 Client측에서 네트워크를 구성하는 부분을 파이썬으로 작성하였는데 코드는.. 긁어 왔다ㅋ 헌데 파이썬의 장점처럼 코드가 무지하게 짧았던게 인상깊었다.
* 마지막날이다 보니 다들 후기 갯수가 좀 적군요. Rurple에 이어서 Python을 공부해볼 수 있어서 좋았습니다. 파이썬이 러플로 했을땐 코드 길이가 짧았는데, 다른걸 짤땐 어떤 면에서 짧아지는지는 아직 잘 모르겠네요. 네트워크는 CAU_MAC인데다 MAC을 쓰다보니 충돌의 연속.. 결국 다른 사람들이 하는걸 같이 보는게 좀 많았네요.ㅋㅋ 11학번 친구들이 오늘은 2명이나 와서 참여해서 재밌게 했던거 같습니다.. 만 화수랑 호동이는 약간 어려워 하더군요. (저는 이미 그런 상황에 적응해버린건지 객체니 클래스니 해도 그냥 뭐... 했달까요 ㅎㅎㅎ;)
* turtle을 이용해서 파이썬의 문법에 대해서 간단하게 다루어보고 파이썬의 소켓을 이용해서 서버/클라이언트를 만들어보고 와이어샤크를 이용해서 실제 주고 받는 패킷들을 보는 일을 했습니다. 그리고 중간중간에 최대한 알기 쉽게 네트워크에 대한 개략적인 설명이 끼어 있었지요. 개인적으로는 여러모로 마음에 드는 세미나였습니다. 우선은 전체적인 방향성을 잡아주는 세미나였다는 점에서 괜찮았다고 생각합니다. 사실 데블스에서는 특정 주제를 다루어도 자세히 다루기에는 시간적인 한계가 있는 만큼 이렇게 흥미를 유발할 수 있는 세미나가 좀 더 바람직하지 않은가 싶습니다. 그리고 현태 선배 스타일로 듣는 사람이 알기 쉽게 예를 들어가면서 설명을 하는 것도 듣기 좋았고요. 그리고 개인적인 의견으로는 간만에 현태 선배를 만난 것도 좋았습니다 ㅋ 나중에는 좀 더 네트워크에 대한 부분을 공부를 해 봐야겠지요. 현태 선배 덕분에 파이썬도 배우게 됐는데 네트워크도 공부하게 되는 건가...
* 옛날에 c로 TCP/IP 프로그래밍 책을 본 적이 있었는데 그쪽에서 소켓을 이용하는 부분을 생각해보면 c에 비해서 파이썬쪽에서는 참 쉽게 되는구나 싶었습니다. 그리고 개인적으로 좀 신기했던게 리턴 값이 하나 이상 있을 수 있는 함수도 있다고 한 부분이었습니다. 이건 파이썬쪽의 특성인지 아니면 다른 인터프리터쪽 언어도 이렇게 될 수 있는지 궁금하네요. 네트워크쪽에 대한 기본적인 설명도 좋았습니다. 와이어샤크쪽에 대해서는 제대로 알려면 공부가 더 필요할 듯. -_-
* turtle를 보면서 이것 저것 파이선에 어렵지 않게 접근할 수 있어 좋았습니다. 누구처럼 노가다는 안시켜서 좋았네요. (그러고 보니 그 누구도 파이선을 가지고 했었네;;) 여하튼 파이선으로 채팅 프로그램을 소스 복사(-_-) 해서 써 보니 재미있었습니다. 자바로도 그런거 했던 게 기억나네요. 전반적으로 쉽게 그리고 재미있게 설명을 해 주신 세미나였습니다. 재미있게 3시간이 지나간 것 같네요. 다만, 하라고 하셨던 것이 잘 구현이 안 되었던 것 같아 그런 거 빼곤요. 그리고 와이어샤크는.. 보면서 음..... 이런게 있구나 하고 넘어가서인지 좀 더 많이 써 봐야 할 듯 싶네요a
* 루아는 설명을 약간 짧게 하셨죠. 가장 기억에 남는건 와우의 베이스에 루아가 있다!!! 라는... 루아 특징이 저용량으로 쉽게 돌릴 수 있다라는것인지라 저한테는 아직 와닿지 않았던거 같아요. 하지만 문법은 결국 파이썬과 비슷했던거 같기도... 처음 들어본 언어라는 점에서 흥미롭게 들었던거 같네요.
* 루아에 대한 간단한 소개와 문법의 설명. 사실 바쁘실텐데 와서 짧은 세미나라도 하고 가신 것만 해도 참 대단하시다는 생각이 듭니다. 사실 루아에 대한 이미지는 세미나 때 전체적인 분위기도 그렇듯이 와우 UI에 사용하는 언어라는 정도만 알고 있었는데 조금 더 자세한 설명을 들을 수 있었습니다. 개인적으로 세미나를 듣고 든 생각은 두 가지군요. 하나는 객체가 없다니??? 하는 것과 다른 하나는 크기가 작다는 게 그렇게까지 큰 메리트가 될 수 있는가? 하는 점이었습니다. 사실 요즘 이런저런 곳에서 게임 로직을 루아로 만든다는 얘기를 들었는데, 특정 작업에서 쓰는 사람들이 있다는 것은 그 부분에서 인정할 만한 뭔가가 있다는 뜻이겠지요. 하지만 개인적으로는 아직도 조금 더 손을 대 봐야 할 언어들이 있어서 당장은 건드려 볼 일이 없을 것 같다는 느낌이 좀...
* 루아에 대해서 찾아보니까 주목받는 이유는 역시 용량이 작기 때문인 것 같은데 폰쪽에서 일하셨다는 부분도 그렇고 역시 임베디드쪽인가 싶었습니다. 임베디드에서 루아로 프로그래밍을 하기 위한게 따로 있다고 하신 부분이 좀 궁금했습니다. 이번에 파이썬에 루비, 루아까지 스크립트 언어쪽을 많이 본 것 같습니다. 다들 문법적으로는 비슷한 느낌인데 어떤걸 쓰는지는 용도 나름인 것 같습니다.
* 수경이의 String 코드 레이스에서 저의 프로그래밍 달리기를 너무 빡세게 했던게 부끄러워서 이번엔 1학년 학우(저 같은 경우 성화수 학우)에게 설명해주고 그 학우가 하고 싶은 스펙으로 함께 프로그래밍 하고자 많이 노력했습니다. 파트너 교체 후 순의랑 파란 바를 만들어버리는 실수를 저지르긴 했습니다만 제가 부족한 탓이었구요-_-;; 개인적으로 화수의 '0층부터 지하까지' 아이디어는 신선했어요. 형진이가 처음에 의도했던 엘레베이터 문제(밖에서 누르고 층을 누르는 케이스)는 다른 클래스도 필요하고 일단 화수를 이해시키는데에 초점을 둬서 그걸 못 푼 점은 좀 아쉬웠어요.
* Java를 통한 TDD (비스므리한) 것을 실습했죠. 좀 신기한 방식이라 신기했던거(??) 같습니다. 테스트 케이스를 만족하도록 코드를 만들거어간다라.. 확실히 다른사람의 코드이고 주석이 없는데도 대략적으로 이해할 수 있다는 점은 좋은 거였던거 같습니다. 여러사람들이 한개의 프로젝트를 다루게 된다면 이런식의 것도 필요할거같네요. ..하지만 그럼에도 불구하고 테스트 케이스만 만족하면 된다는 사상도 있어서 어려움이 완전히 해소될것이리라! 라는건 아닌거 같네요. (사실 남의 스펙을 자신이 구현했기 때문에 발생했던 문제겠지마는,.) SVN도 써보고 TDD나 이런 저런 기법들을 데블스에서 처음 접해봐 신선했습니다.
* 코드 잘 짜는 법. 신경써야 할 부분을 최소한으로 줄이자. 필요한 것을 먼저 쓰고 구현은 나중에 한다. 자주, 많이. very very many many
* 개인적으로 항상 고민하는 부분 중의 하나입니다. 어떻게 하면 코드를 잘 짤 수 있을까. 그리고 회고 때에도 말했듯이 제가 작년 데블스 마지막 때 세미나를 하고 싶다고 했던 주제이기도 합니다. 변명삼아 말하자면 아직도 스스로가 남에게 이야기 할 수 있을 만큼의 능력과 자신감이 없어서 세미나를 피한 것도 있습니다 ;;; 사실 제가 한다고 하면 생각을 코드로 만드는 법(형진 선배의 말하듯이 코딩하기 부분) + 남이 만들어 둔 라이브러리의 사용 으로 하려고 했는데 과연 그게 괜찮은 방법인가에 대한 확신은 역시 좀 부족하군요... 하지만 모르긴 몰라도 언어에 사로잡히지 말고 로직이 우선해야 한다는 생각은 기본에 둬도 괜찮을 것 같습니다.
* 이후에는 역시 자주 짜고 많이 짜 봐야겠지요. 그리고 개인적인 생각으로는 생각을 코드로 옮기는 것은 역시 알고리즘 쪽을 공부하는 것이 아닐까 합니다. 컴공 쪽에서도 제일 수학에 가깝다는 생각이 드는 분야군요... 그리고 개인적으로 제일 자신이 없는 분야기도 하고 -__-
* 현재 구현해야 하는 부분을 해당 기능 하나로 좁혀서 거기에만 집중해야 한다. 해결해야 하는 문제의 범위를 최소한으로 줄이는게 코드를 잘 짜는 비결이다. 라고 하셨었는데 하다 보면 이것 저것 고려할게 많아지는 것 같습니다. 그래도 앞으로는 이번에 배운 것들을 코드를 짜는데 적용해보려고 노력해야 할 것 같습니다. 다만 이렇게 문제의 범위를 최소한으로 줄였는데도 해결을 못한다면 어떻게 하면 좋을지 하는 생각이 들지만 -_- 거기는 개인의 실력 나름인가 싶습니다.
* 남이 짠 스펙을 보고 구현한다는건 처음이었습니다. 대개는 학교 프로젝트 할 경우에는 무슨 기능이 필요하다는걸 처음부터 생각하고 만드는데 실제 일하는 쪽에서는 그렇지 않을테니 좋은 경험이 됐다고 생각합니다. 유닛 테스트에서 해당 테스트 케이스가 스펙이 될 수 있다는 부분에 대해서도 잘 생각해보고 또 적용해보기 위해 노력해봐야겠습니다. 근데 TDD의 단점에 대해서는 크게 말이 없었던 것 같아서 그 부분이 좀 아쉽습니다.
* 중앙광장에서 10분, 6층에서 20분간 서성이다가 용기를 내어 5P에 아무 연락도 없이 찾아갔습니다. (예전부터 제로페이지에 가입하고 싶었지만 1학기동안 내적으로 정리가 안된 것이 있어서 찾아오질 못했었습니다). 강의는 100% 이해 안되었지만 많은 도움이 되었고, 강소현 선배님께서 잘 알려주셔서 '이런게 있구나' 이정도 느낌은 받았습니다.
* 수경누나가 해주신 정보보호는 중학교때인지 고등학교때인지 어렴풋이 들었던게 있는 부분이었던거 같습니다. 공개키/비공개키 부분이요. 공인인증서 부분은 정말 어떤 천재가 이런걸 만들었나 싶을정도였습니다. 으아니 이런식으로 신뢰할 수 있는 공개키를 만들어 낸다니! 만든놈들 진짜 머리좋네!! 랄까요, 수경누나가 시작하기 직전에 했던 말이 저한테서도 나왔습니다.
* 정보보호에 대한 이론과 암호화/복호화 방식에 대한 세미나. 좀 놀랐던 것 중 하나는 문제가 되는 케이스를 세밀하게 나누었다는 것이었습니다. 그리고 암호화 방식에서 공개키/비공개키 부분은 상당히 인상깊게 들었습니다. 특히 수경 선배의 설명이 상당히 알기 쉬워서 좋았습니다. 사실 이런저런 책에서 자주 눈에 띄는 얘기이긴 한데, 이렇게 간결하게 설명을 할 수 있는 건가 놀랄 정도로 듣기 편했습니다. 근데 정보보호는 일단은 개인적으로 그렇게 우선순위가 높지 않다는 점이 좀 아쉬운 부분이겠네요... 아마 한동안은 뒤쪽으로 밀려나 있을 가능성이 높아 보입니다 -_-
* 시간 빠듯했던 것 같은데 예를 들어서 알기 쉽게 설명해주시느라 고생하신 것 같습니다. 개념적으로는 보면서 참 신기하다는 생각이 들었습니다. 하지만 실제 구현 부분의 얘기를 하면서 이런 저런 연산을 한다는 부분에서는 갑자기 흥미가 -_- 연산 부분의 실제 구현에 대한 것도 나쁘지 않긴 했지만 C나 자바 등의 주요 언어에서의 라이브러리 사용 등의 설명도 있었으면 더 좋았을 것 같습니다.
- SmallTalk/강좌FromHitel/강의3 . . . . 68 matches
1.1. 프로그램과 프로그래밍 언어
1.3. Smalltalk 맛보기 프로그램
을 실행하는 방법에 대해서 알아보았습니다. 이제 여기서는 여러분이 앞으로
Arts사(社)는 공개용으로 사용할 수 있는 Dolphin Smalltalk 98 / 1.1판을
배포하면서, 그를 사용하는 사람들이 무료로 등록번호를 발급 받아서 사용하
등록은 무료입니다. 그러므로 인터넷을 사용할 수 있는 사람이라면 바로 등
앞서 말한 대로, 등록을 하려면 Object Arts사에서 발급하는 등록 번호를 받
"등록 페이지"로 이동하게 될 것입니다.
* First Name: 여러분의 이름을 넣습니다. 저의 경우는 ChanHong Kim으로 표
기되므로, First Name에는 ChanHong을 입력하면 됩니다.
* Last Name: 여러분의 성씨를 넣습니다. 저의 경우에는 Kim이겠지요?
* Stree Address: 우리의 경우에는 시/군, 구/읍면, 동, 번지로 주소를 쓰지
만 외국의 경우는 거꾸로 입니다. Street Address에는 여러분의 동 이름
과 번지수를 씁니다. 저의 경우라면 2288-3, DaeMyung 3 Dong, Nam-Gu
쯤으로 임력하면 되겠지요?
* State: 미국의 경우는 주를 입력합니다만, 우리는 비워둡니다.
Dolphin Smalltalk에 대해 처음어로 접한 매체를 고릅니다.
* Intended use of this product?
재 여러분이 설치한 Smalltalk에 대해서는 Username과 Password가 그대로 사
용될 수 있으므로, 다음부터는 등록 절차를 거칠 필요가 없습니다.
- 논문번역/2012년스터디/이민석 . . . . 68 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)을 적용한 결과도 조사한다.
훈련과 인식을 위한 입력 데이터는 완전한 영어 문장 데이터베이스에 의해 제공되고 각각은 Lancaster-Oslo/Bergen 말뭉치에 기반한다. [7] 저자 독립식 뿐 아니라 다수 저자에 관한 실험을 Bern 대학의 IAM에서 수집한 필기 형태 [10]의 데이터베이스를 사용하여 수행하였다. 데이터베이스 전체는 다양한 글 범주(출판 글자, 종교, 인기 설화, 픽션...)를 포함하고 500명 이상 저자의 1200개 이상 필기 형태로 구성된다. 우리는 250명 이상의 저자가 저자 독립식 실험을 위해 제작한 범주 [a..f]의 form과 여섯 저자가 다저자식을 적용하여 제작한 하위집합 c03을 사용한다.
우리의 시스템을 단일 저자식에서도 평가하기 위해 Senior [15]가 수집한 데이터베이스의 필기 서식으로도 실험을 수행했다. 이 데이터베이스는 한 저자가 쓴 25쪽으로 구성되며 웹에서 공개적으로 얻을 수 있다.1 두 데이터베이스의 필기 양식들은 256 그레이 레벨을 사용하여 300dpi 해상도로 스캔하였다. 그림 1에 각 데이터베이스의 예시가 있다.
필기 글자의 이미지가 주어진 상태에서 먼저 전체 이미지의 기울임을 교정하여 스캐닝 도중 양식의 비정확한 배치나 글을 쓸 때 지속적인 "밀려남(drift)"에 의한 오류를 바로잡는다. 따라서 이미지는 이진화된 이미지의 수평 밀도 히스토그램이 최소 엔트로피를 가지기 전까지 회전된다. [4] 이 전처리 단계를 IAM 데이터베이스의 서식에는 적용하지 않았는데 저자들이 양식 아래의 두 번째 시트에 자를 쓰도록 요청받았고 서식 자체는 스캐닝하면서 정확히 정렬되었기 때문이다.
글을 한 걸음 더 처리하기 위해 각각의 줄을 추출하여야 한다. 그러기 위해 이미지를 필기 라인의 핵심 영역(core region)들 사이를 분리한다. 핵심 영역, 즉 텍스트 라인의 위 베이스라인과 아래 베이스라인 사이의 영역은 threshold를 적용하여 찾는다. threshold는 줄들이 핵심 영역에 속하기 위해 필요한 전방foreground 픽셀들의 최소 개수를 나타낸다. 이 threshold는 이진화한 필기 영역의 수평 밀도 히스토그램을 이용하여 Otsu의 방법 [12]를 적용하면 자동으로 결정된다. 그 다음 수평 투영 히스토그램에서 각 줄의 검은 픽셀의 개수가 축적되고 이미지는 이 투영 히스토그램의 minima를 따라 핵심 영역별로 나눠진다.
가끔 글씨체가 한 줄에서도 확 바뀌는 것에 동기를 얻어 우리는 각 줄의 수직 위치, 기울임, 경사를 국소적으로 교정한다. 따라서 각 행은 필기 조각segment들 사이의 공백을 탐색하여 분리된다. 믿을 만한 정규화 계수를 계산하기에는 너무 짧은 조각을 피하기 위해 threshold를 사용한다.
수직 위치와 기울임은 [15]에 서술된 접근법과 비슷한 선형 회귀(linear regression)를 이용한 베이스라인 측정법을 적용하여 교정한 반면에, 경사각 계산은 가장자리edge 방향에 기반한다. 그러므로 이미지는 이진화되고 수평 흑-백과 백-흑 전환을 추출하는데 수직 stroke만이 경사 측정에 결정적이다. canny edge detector를 적용하여 edge orientation 자료를 얻고 각도 히스토그램에 누적한다. 히스토그램의 평균을 경사각으로 쓴다.
마지막 전처리는 그레이 레벨을 정규화하여 다양한 펜과 배경색으로 인한 변화에 대처하는 것이다. 이미지의 그레이 레벨 구간은 어두운 강도는 0이 되고 밝은 쪽은 255가 되도록 조정한다. 말뭉치의 통상적인 한 줄에 이들 전처리를 적용한 결과가 그림 3에 나타나있다.
필기 줄을 전처리한 이미지는 특징 추출 단계의 입력 자료로 사용된다. sliding window 기법을 [11]이 설명하는 접근법과 비슷하게 적용한다. 우리의 경우 이미지의 높이와 열 네 개 크기의 창이 이미지의 왼쪽에서 오른쪽으로 두 열씩 겹치면서 움직이고 기하 추출의 쌍을 추출한다.
sliding window의 각 열에서 특징 7개를 추출한다. (1) 흑-백 변화 개수(windowed text image의 이진화 이후), (2) 베이스라인에 대한 강도 분포의 평균 값 위치, (3) 최상단 글자 픽셀에서 베이스라인까지의 거리, (4) 최하단 글자 픽셀에서 베이스라인까지의 거리, (5) 최상단과 최하단 텍스트 픽셀의 거리, (6) 최상단과 최하단 텍스트 픽셀 사이의 평균 강도, (7) 그 열의 평균 강도. 특징 (2)-(5)는 core size, 즉 하단 베이스라인과 상단 베이스라인(극대값을 통한 line fitting으로 계산)의 거리에 의해 정규화되어, 글씨 크기의 변동에 대해 더욱 굳건해진다. 그 후에 모든 특징은 윈도우의 네 열에 걸쳐 평균화된다.
강도 분포의 평균값의 변화 뿐 아니라 하단 contour와 상단 contour의 방향을 고려하기 위해 추가적으로 세 가지 방향성 특징을 계산한다. 말인 즉 우리는 네 lower countour 점, upper contour 점, sliding window 내 평균값을 통해 줄들을 재고 선 방향들을 (8), (9), (10) 특성으로 각각 사용한다. (뭔 소리) 더 넓은 temporal context를 고려하여 우리는 특징 벡터의 각 성분마다 근사적인 수평 미분을 추가로 계산하고 결과로 20 차원 특징 벡터를 얻는다. (윈도우당 특징 10개, 도함수 10개)
특징 벡터들을 decorrelate하고 종류 분별력을 향상하기 위해 우리는 훈련 단계와 인식 단계에서 LDA를 통합한다. (cf. [6]) 원래 특징 표현을 일차 변환하고 특징 공간의 차원을 점차 줄이며 최적화한다. 일차 변환 A를 구하기 위해 훈련 자료의 클래스내 분산(within class scatter) 행렬 Sw와 클래스간 분산(between class scatter) 행렬 Sb를 이용하여 고유 벡터 문제를 해결한다. 이 분산(scatter) 행렬들을 계산하여 각 특징 벡터의 HMM 상태와 함께 이름표를 붙여야 한다. 우리는 먼저 일반적인 훈련을 수행하고 훈련 자료들을 상태를 기준으로 정렬한다. 분산 행렬을 구했으면 LDA 변환은 다음 고유 벡터 문제를 풀어 계산한다.
𝜇𝑖와 𝐴𝑇𝜓𝑖는 𝑆𝑤−1𝑆𝑏의 고유값과 고유벡터다. 차원 reduction(경감?)은 가장 큰 m개 고유값에 속하는 m개 고유 벡터만을 구하여 얻어진다. 모든 특징 벡터를 LDA 변환한 후에는 완전히 새로운 HMM 훈련이 수행된다.
필기 글자 인식을 위한 HMM의 구성, 훈련, 해독은 ESMERALDA 개발 환경[5]이 제공하는 방법과 도구의 틀 안에서 수행된다. HMM의 일반적인 설정으로서 우리는 512개의 Gaussian mixtures with diagonal covariance matrice(더 큰 저자 독립 시스템에서는 2048개)를 포함하는 공유 코드북이 있는 semi-continuous 시스템을 사용한다. 52개 글자, 10개 숫자, 12개 구두점 기호와 괄호, 공백 하나를 위한 기본 시스템 모형은 표준 Baum-Welch 재측정을 사용하여 훈련된다. 그 다음 한 줄 전체를 인식하기 위해 글자 모형에 대한 루프로 구성된 conbined model이 사용된다. 가장 가능성 높은 글자 시퀀스가 표준 Viterbi beam- search를 이용하여 계산된다.
전처리에서 벌충할 수 없는 서로 다른 글씨체 사이의 변동을 고려하기 위해 우리는 [13]에 서술된 접근법과 비슷한, 다저자/저자 독립식 인식을 위한 글자 이서체 모형을 적용한다. 이서체는 글자 하위 분류, 즉 특정 글자의 서로 다른 실현이다. 이는 베이스라인 시스템과달리HMM이이제서로다른글자 하위 분류를 모델링하는 데 쓰임을 뜻한다. 글자별 하위 분류 개수와 이서체 HMM 개수는 휴리스틱으로 결정하는데, 가령 다저자식에 적용된 시스템에서 우리는 이서체 개수가 저자 수만큼 있다고 가정한다. 초기화에서 훈련 자료는 이서체 HMM들을 임의로 선택하여 이름표를 붙인다. 훈련 도중 모든 글자 표본에 대해 해당하는 모든 이서체에 매개변수 재추정을 병렬 적용한다. 정합 가능성은 특정 모형의 매개변수가 현재 표본에 얼마나 강하게 영향받는 지를 결정한다. 이서체 이름표가 유일하게 결정되지는 않기에 이 절차는 soft vector quantization과 비슷하다.
부수적으로, 통계적 언어 모형은 인식 과정에 통합되어 글자 시퀀스가 발생할 것 같은 정도의 추정을 제공한다. 인식 작업의 목표는 주어진 데이터 x에 대하여 통합 통계 모형의 확률을 최대화하는 글자 시퀀스 𝑤̂ 를 찾는 것이다.
- 프로그램내에서의주석 . . . . 68 matches
그렇다면 자신이 그 코드를 해석하면서 얻은 지식을 그 코드에 적용했더라면(좀 더 의미있는 변수이름, 메써드이름 사용, 코드 일부분을 의미있는 이름의 메써드로 추출 등) 어땠을까요? --JuNe
처음에 Javadoc 을 쓸까 하다가 계속 주석이 코드에 아른 거려서 방해가 되었던 관계로; (["IntelliJ"] 3.0 이후부턴 Source Folding 이 지원하기 때문에 Javadoc을 닫을 수 있지만) 주석을 안쓰고 프로그래밍을 한게 화근인가 보군. 설계 시기를 따로 뺀 적은 없지만, Pair 할 때마다 매번 Class Diagram 을 그리고 설명했던 것으로 기억하는데, 그래도 전체구조가 이해가 가지 않았다면 내 잘못이 크지. 다음부터는 상민이처럼 위키에 Class Diagram 업데이트된 것 올리고, Javadoc 만들어서 generation 한 것 올리도록 노력을 해야 겠군.
요새들어서 주석을 잘 안쓰고 코드를 알아보기 쉽게 쓰려고 노력하긴 하는데, 아직 수련이 부족해서인지 코드는 코드대로 어렵고 주석은 주석대로 없나 보다. 흐흐;
약간 변명이라면, 개인적 경험에서는 주석이 달린 코드는 주석에 시선이 먼저가고, 주석이 없는 코드에는 함수 프로토타입에 시선이 먼저간다라는 것. 하지만, 의도가 전해지지 않았다면 역시 뭐 무의미한것이겠지. --석천
내가 가지는 주석의 관점은 지하철에서도 언급한 내용 거의 그대로지만, 내게 있어 주석의 주된 용도는 과거의 자신과 대화를 하면서 집중도 유지, 진행도 체크하기 위해서 이고, 기타 이유는 일반적인 이유인 타인에 대한 정보 전달이다. 전자는 command.Command.execute()이나 상규와 함께 달은 information.InfoManager.writeXXX()위의 주석들이고,후자가 주로 쓰인 용도는 각 class 상단과 package 기술해 놓은 주석이다. 그외에 class diagram은 원래 아나로그로 그린것도 있지만, 설명하면서 그린건 절대로 타인의 머리속에 통째로 저장이 남지 않는다는 전제로, (왜냐면 내가 그러니까.) 타인의 열람을 위해 class diagram의 디지털화를 시켰다. 하는 김에 그런데 확실히 설명할때 JavaDoc뽑아서 그거가지고 설명하는게 편하긴 편하더라. --["상민"]
자바 IDE들이 Source Folding 이 지원하거나 comment 와 관련한 기능을 지원한다면 해결될듯. JavaDoc 은 API군이나 Framework Library의 경우 MSDN의 역할을 해주니까. --석천
자네의 경우는 주석이 자네의 생각과정이고, 그 다음은 코드를 읽는 사람의 관점인 건데, 프로그램을 이해하기 위해서 그 사람은 어떤 과정을 거칠까? 경험이 있는 사람이야 무엇을 해야 할 지 아니까 abstract 한 클래스 이름이나 메소드들 이름만 봐도 잘 이해를 하지만, 나는 다른 사람들이 실제 코드 구현부분도 읽기를 바랬거든. (소켓에서 Read 부분 관련 블럭킹 방지를 위한 스레드의 이용방법을 모르고, Swing tree 이용법 모르는 사람에겐 더더욱. 해당 부분에 대해선 Pair 중 설명을 하긴 했으니)
그리고 개인적으론 Server 쪽 이해하기로는 Class Diagram 이 JavaDoc 보는것보다 더 편했음. 그거 본 다음 소스를 보는 방법으로 (완벽하게 이해하진 않았지만.). 이건 내가 UML 에 더 익숙해서가 아닐까 함. 그리고 Java Source 가 비교적 깨끗하기에 이해하기 편하다는 점도 있겠고. (그래 소스 작성한 사람 칭찬해줄께;) --석천
좌절이다. 일단 자네 의견에 동의 정도가 아니라 같은 의도의 말이었다. 위의 자네 말에 대한 내가 의미를 불확실하게 전달한거 같아서 세단락 정도 쓴거 같은데.. 휴 일단 다시 짧게 줄이자면, "프로그래머의 낙서의 표준"인 UML과 {{{~cpp JavaDoc}}}의 출발은 아예 다르다. 자네가 바란건 디자인 단위로 프로그래밍을 이해하길 원한거 같은데, 그것을 {{{~cpp JavaDoc}}}에서 말해주는건 불가능하다고 생각한다. Sun에서 msdn에 대응하기 위해(?) {{{~cpp JavaDoc}}}이 태어난것 같은데 말이다. [[BR]]
하지만, "확실히 설명할때 {{{~cpp JavaDoc}}}뽑아서 그거가지고 설명하는게 편하긴 편하더라."라고 한말 풀어쓰는 건데, 만약 디자인 이해 후에 코드의 이해라면 {{{~cpp JavaDoc}}} 없고 소스만으로 이해는 너무 어렵다.(최소한 나에게는 그랬다.) 일단 코드 분석시 {{{~cpp JavaDoc}}}이 나올 정도라면, "긴장 완화"의 효과로 먹고 들어 간다. 그리고 우리가 코드를 읽는 시점은 jdk를 쓸때 {{{~cpp JavaDoc}}}을 보지 소스를 보지는 않는 것처럼, 해당 메소드가 library처럼 느껴지지 않을까? 그것이 메소드의 이름이나 필드의 이름만으로 완벽한 표현은 불가능하다고 생각한다. 완벽히 표현했다면 너무나 심한 세분화가 아닐까? 전에 정말 난해한 소스를 분석한 적이 있다. 그때도 가끔 보이는 실낱같은 주석들이 너무나 도움이 된것이 기억난다. 우리가 제출한 Report를 대학원 생들이 분석할때 역시 마찬가지 일것이다. 이건 궁극의 Refactoring문제가 아니다. 프로그래밍 언어가 그 셰익스피어 언어와 같았으면 하기도 하는 생각을 해본다. 생각의 언어를 프로그래밍 언어 대입할수만 있다면야.. --["상민"]
난해한 코드일수록 주석이 필요한 것일것이고 (또는 그 반대로 쉽게 알아볼 수 있도록 짤 방법을 강구해야 한다면 억지쓰는 것이려나.) 개인적으로 읽어본 가장 긴 낯선 코드가 3000~4000 라인을 못넘어 본 관계로 아직은 '정리' 단계로만 끝날 것 같다. CVS 의 history 가 코드 진화과정을 따라가는데 도움을 줄것이라고 생각했지만, 아직은 먼 이야기일듯.
내가 Comment 와 JavaDoc 둘을 비슷한 대상으로 두고 쓴게 잘못인듯 하다. 두개는 좀 구분할 필요가 있을 것 같다는 생각이 들어서다. 내부 코드 알고리즘 진행을 설명하기 위해서는 다는 주석을 comment로, 해당 구성 클래스들의 interface를 서술하는것을 JavaDoc으로 구분하려나. 이 경우라면 JavaDoc 과 Class Diagram 이 거의 비슷한 역할을 하겠지. (Class Diagram 이 그냥 Conceptual Model 정도라면 또 이야기가 달라지겠지만)
그리고, JDK 와 Application 의 소스는 그 성격이 다르다고 생각해서. JDK 의 소스 분석이란 JDK의 클래스들을 읽고 그 interface를 적극적으로 이용하기 위해 하는 것이기에 JavaDoc 의 위력은 절대적이다. 하지만, Application 의 소스 분석이라 한다면 실질적인 implementation 을 볼것이라 생각하거든. 어떤 것이 'Information' 이냐에 대해서 바라보는 관점의 차이가 있겠지. 해당 메소드가 library처럼 느껴질때는 해당 코드가 일종의 아키텍쳐적인 부분이 될 때가 아닐까. 즉, Server/Client 에서의 Socket Connection 부분이라던지, DB 에서의 DB Connection 을 얻어오는 부분은 다른 코드들이 쌓아 올라가는게 기반이 되는 부분이니까. Application 영역이 되는 부분과 library 영역이 되는 부분이 구분되려면 또 쉽진 않겠지만.
이번기회에 comment, document, source code 에 대해서 제대로 생각해볼 수 있을듯 (프로그램을 어떻게 분석할 것인가 라던지 Reverse Engineering Tool들을 이용하는 방법을 궁리한다던지 등등) 그리고 후배들과의 코드에 대한 대화는 익숙한 comment 로 대화하는게 낫겠다. DesignPatterns 가 한서도 나온다고 하며 또하나의 기술장벽이 내려간다고 하더라도, 접해보지 않은 사람에겐 또하나의 외국어일것이니. 그리고 영어가 모국어가 아닌 이상. 뭐. (암튼 오늘 내일 되는대로 Documentation 마저 남기겠음. 글쓰는 도중 치열하게 Documentation을 진행하지도 않은 사람이 말만 앞섰다란 생각이 그치질 않는지라. 물론 작업중 Doc 이 아닌 작업 후 Doc 라는 점에서 점수 깎인다는 점은 인지중;) --석천
DeleteMe)위에 좌절인 이유를 안써놨는데, 상세히 각 종류별로 생각을 적어 놓았는데, commit시에 충돌이 나서 먹어 버렸어. 하..하..하 ... 암튼 이번에 프로그래밍을 하면서 생각한 컨셉들을 서로 설명하면서 같이 말해야 겠군. [[BR]]
그리고 계속 이야기 하다보니 주석(comment)과 {{{~cpp JavaDoc}}}을 나누어 설명하는 것이 올바른 생각인듯 하다. 그런 관점이라면 이번 코딩의 컨셉이 녹색글자 최소주의로 나갔다고 볼수 있다. 머리속으로는 특별히 둘을 나누지 않고 있었는데, 코딩 습관에서는 완전히 나누고 있었던거 같다. 녹색 글자를 쓰지 않을려고 발악(?)을 했으니.. 그래도 보이는 녹색 글자들 보면 죄의식이 이것이 object world에서 말하는 "프로그래머의 죄의식"에 해당하는 것이 아닐까. --["상민"]
''DeleteMe) 부연설명 : 녹색글자는 ["Eclipse"] 에서 내부 주석에 대당. ["IntelliJ"] 는 일반적으로 회색. ["Vi"] 에서의 Java Syntax 에선 파란색.''
주석이 실행될 수 있는 코드가 아니기 때문에, 반드시 코드가 주석대로 수행된다고 볼 수는 없지만 없는것 보다는 낳은 경우도 많다. 코드 자체는 언어의 subset 이기 때문에 아무리 ''코드가 이야기한다(code tells)''라 할지라도 우리가 쓰는 언어의 이해도에 미치기가 어렵다. 이는 마치, 어떤 일을 함에 있어서 메뉴얼이 존재함에도 불구하고 경험자에게 이야기를 듣고 메뉴얼을 볼 경우, 그 이해가 쉽고 빠르게 되는것과 비슷하다.
프로그램에 있어 주석이 하는 순기능을 하나 더 찾아볼 수 있다. ''메마른 코드속에서 사람의 숨결을 느끼게 해준다.'' 유머가 없는 세상을 생각해보라. 얼마나 끔찍한가.
if(m_pPrev)
- 5인용C++스터디/멀티쓰레드 . . . . 67 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라는 데이터가 수정을 하게 할것인가? 이런 문제점은 동시성을 가진 운영체제에서 해결해야할 중요한 항목입니다.
A스레드와 B스레드가 동시에 진행하다가 특정 사건이 발생되었을 경우 이때 B스레드는 C라는 결과가 오기 전까지는 스레드 동작을 중지 해야 합니다. 만일 중지하지 않고 현재의 스레드를 계속적으로 진행을 시킨다면 큰 문제점이 나타날것입니다. B의 상태와 C가 생각하는 B의 상태가 같아야 합니다. 이렇게 같게 맟추는 것을 동기화 라고 합니다.
이중 CSyncObject는 CSemaphore, CMutex, CCriticalSection, CEvent의 상위 클래스로서 직접 사용하지는 않습니다.
동기화는 멀티 쓰레드 프로그래밍에서 고전적인 문제이다.
만약 모든 철학자가 오른쪽의 스틱을 잡고 있고 왼쪽의 스틱을 기다린다면 문제가 발생한다. 그들은 아무도 왼쪽 스틱을 얻을 수 없으므로 모두 굶어죽게 된다. 물론 철학자들은 모두 사기를 칠 줄 모르며 먹는 양도 모두 같다고 가정한다. 이런 상태를 데 드락이라고 한다. 데드락을 방지하려면 어떻게 해야 할까? 이 애플릿에서는 다섯 개의 스틱 중 하나를 표시하여 표시된 스틱을 잡을 경우 반드시 내려놓고 다른 스틱을 시도하도록 하고 있다. 이렇게 하면 위와 같은 데드락 상황이 발생하기 전에 표시된 스 틱의 왼쪽 철학자는 오른쪽의 표시된 스틱을 내려놓고 왼쪽 스틱을 기다리게 되므로 표시된 스틱의 오른쪽 철학자가 왼쪽 스틱을 얻을 수 있게 된다.
- ex)) 통신프로그램 작성시, 전송받은 데이터를 화면에 보여주는 일련의 작업은 반드시 데이터를 전송받은 후에 수행되어야 함 (동기화의 필요성)
* 프로그램이 로딩되어, 메모리 상에서 실행되고 있는 상태를 프로세스(process) 혹은 태스크(task)라 한다.
윈도우는 멀티태스킹 시스탬이다. 즉, 여러 개의 프로세스를 동시에 실행시킬 수 있는 시스템 능력을 가지고 있다. 멀티태스킹은 실제적으로 여러 개의 프로세스가 동시에 실행되는 것이 아니라, 아주 짧은 시간을 여러 조각으로 나누어 마치 동시에 실행되는 것처럼 보이는 것이다.
반복적으로 동작하는 두 개 이상의 스레드가 하나의 리소스를 공유하려고 할 때, 동시에 리소스에 접근하지 못하도록 하기 위하여 크리티칼 섹션을 사용한다.
Critical Section of Code 크리티컬 섹션 또는 크리티컬 리젼이라 불리우는 이 부분은 커널과 관련된 중요 부분에서 인터럽트로 인한 커널의 손상을 막기 위해 불리우는 곳이며 또한 수행시간의 단축이 절대적으로 필요한 부분에서 쓰이는 구간이다. 이는 코드와 자원의 공유를 막고 배타적인 공간으로 설정된다.
OS에서 공유자원이나 특정코드가 수행되는 도중에 다른 프로세스에 의해 interrupt 되는것을 방지하기 위해 크리티컬 섹션을 사용하게 된다. 이는 윈도우즈 프로그래밍에서 스레드관련 처리를 해 줄 때에도 나오는 용어이다.
- Java Study2003/첫번째과제/곽세환 . . . . 67 matches
자바의 주된 특징은 기존의 C/C++ 언어의 문법을 기본적으로 따르고, C/C++ 언어가 갖는 전처리기, 포인터, 포인터 연산, 다중 상속, 연산자 중첩(overloading) 등 복잡하고 이해하기 난해한 특성들을 제거함으로써 기존의 프로그램 개발자들이 쉽고 간단하게 프로그램을 개발할 수 있도록 합니다.
자바는 C++와는 달리 처음부터 객체지향 개념을 기반으로 하여 설계되었고, 객체지향 언어가 제공해 주어야 하는 추상화(Abstraction), 상속(Inheritance), 그리고 다형성(Polymorphism) 등과 같은 특성들을 모두 완벽하게 제공해 주고 있습니다. 또한, 자바의 이러한 객체지향적 특성은 분산 환경, 클라이언트/서버 기반 시스템이 갖는 요구사항도 만족시켜 줄 수 있습니다.
자바는 컴파일 시에 에러 검사를 철저하게 하고, 실행 시에 발생할 수 있는 에러에 대해서도 실행 시에 철저하게 검사를 수행함으로써 신뢰도가 높은 프로그램을 작성할 수 있도록 해 줍니다. 또한, C/C++ 프로그램 개발자들을 가장 혼란스럽게 하고, 프로그램의 치명적인 오류를 발생시킬 수 있는 포인터 및 포인터 연산을 자바에서는 사용하지 않게 함으로써, 포인터를 사용함으로써 프로그래머가 범할 수 있는 오류를 없앴다는 것입니다.
자바는 분산환경에서 작동하도록 설계 되었습니다. 그러나, 자바는 자바 언어와 자바 런타임 시스템 내에 보안 기능이 내재되어 있기 때문에 보안성이 있는 프로그램을 개발할 수 있도록 해 줍니다. 이러한 특성은 자바 프로그램이 네트웍 환경에서 바이러스 등과 같은 프로그램이 파일 시스템을 파괴하려는 것을 막을 수 있도록 해 줍니다.
자바는 서로 다른 이종(Heterogeneous)의 네트워크 환경에서 분산 되어 실행될 수 있도록 설계되었습니다. 이와 같은 환경에서는 응용 프로그램들이 다양한 하드웨어 아키텍쳐 위에서 실행될 수 있어야만 합니다. 이를 위해 자바 컴파일러는 이종의 하드웨어 및 소프트웨어 플랫폼에서 효율적으로 코드를 전송하기 위해 설계된 아키텍쳐 중립적인 중간 코드인 바이트코드를 생성합니다. 이는 동일한 자바 프로그램의 자바 바이트코드가 자바 가상머신이 설치되어 있는 어떤 플랫폼에서도 실행될 수 있도록 하는 것입니다. 또한, 자바는 기본 언어 정의를 엄격하게 함으로써 효율적인 이식성을 제공해 주고 있습니다. 예를 들어, int 형과 같은 기본 데이터형의 크기를 플랫폼과 무관하게 일정하게 하고, 연산자의 기능을 확실하게 규정하고 있습니다. C 언어를 이용하여 int 형을 선언할 때, 도스에서는 16비트, 윈도우 95/98/NT 등 32비트 운영 체제 환경에서는 32비트, 유닉스에서는 32비트 등 그 플랫폼에 따라 크기가 다르지만, 자바에서는 플랫폼에 상관없이 32비트로 고정되도록 하였습니다. 이는 자바 프로그램이 실행되는 환경이 자바 가상머신으로 동일하기 때문입니다.
자바에서는 인터프-리터가 런타임 환경을 검사할 필요 없이 실행될 수 있도록 구성하였기 때문에 뛰어난 성능을 제공해 줍니다. 쓰레기 수집기(garbage collector) 즉 메모리 관리자는 자동으로 낮은 우선순위의 백그라운드 스레드로 실행되어 메모리가 필요할 때에만 동작하도록 함으로써, 자바 가상머신에게 무리를 주지 않으면서 보다 나은 수행 성능을 제공할 수 있도록 해 줍니다. 또한, 방대한 양의 계산을 수행하는 프로그램은 계산이 많은 부분을 본래의 플랫폼에 해당하는 기계어 코드로 재작성하여 자바 프로그램과 인터페이스 할 수 있도록 하였습니다.
자바 언어로 작성된 자바 프로그램을 중간언어 형태인 자바 바이트코드로 컴파일하고, 이렇게 생성된 자바 바이트코드를 자바 인터프리터가 해석함으로써, 자바 인터프리터와 런타임 시스템이 이식(porting)된 모든 플랫폼에서 자바 바이트코드를 직접 실행할 수 있습니다.
자바의 다중 스레드 기능은 동시에 많은 스레드를 실행시킬 수 있는 프로그램을 만들 수 있도록 해 줍니다. 자바는 동기화 메소드들을 기본적으로 키워드로 제공함으로써, 자바 언어 수준에서 다중 스레드를 지원해 줍니다. 자바 API에는 스레드를 지원해 주기 위한 Thread 클래스가 있으며, 자바 런타임 시스템에서는 모니터와 조건 잠금 함수를 제공해 줍니다.
자바는 기계어 코드를 직접 실행시키는 것이 아니고, 플랫폼 독립적인 중간 코드 형태인 바이트코드를 자바 가상머신이 해석하여 실행시키는 인터프리터 방식을 취하고 있으므로 느린 수행 시간을 갖습니다. 일반적으로 C보다 평균 8배 정도 느리고, 최대 20배까지 느립니다.
JDK와 함께 제공되는 자바 가상머신에 의해 독립적으로 실행될 수 있도록 작성된 자바 프로그램입니다. 다시 말해서, 여러분의 컴퓨터에서 윈도우의 도스창 또는 유닉스 쉘 등과 같은 쉘에서 자바 가상머신을 이용하여 실행시키는 자바 프로그램입니다. 위에 나오는 그림은 자바 애플리케이션의 실행 과정을 자세히 보여주고 있습니다.
<APPLET>~</APPLET> 태그를 이용하여 HTML 페이지 내에 포함되어, 자바 호환 웹 브라우저에 의해서 실행되도록 작성된 자바 프로그램입니다. 다시 말해서, 여러분의 홈 페이지 내에 삽입되어 자바 호환 웹 브라우저에 의해 실행되도록 규약에 맞추어 작성된 자바 프로그램을 말하는 것입니다. 다음에 나오는 그림은 자바 애플릿의 실행 과정을 자세히 보여주고 있습니다.
기존의 CGI 프로그램과 같이 웹 서버 프로그램의 기능을 확장하기 위한 자바 프로그램으로서, 웹 서버 내에 있는 자바 런타임 환경과 함께 제공되는 자바 가상머신에 의해 실행되도록 작성된 자바 프로그램입니다. 자바 서블릿은 웹 서버 내에서 자바 런타임 환경과 함께 제공되는 자바 가상머신에 의해 실행되고, 자바 애플릿은 웹 서버에서 웹 클라이언트로 다운로드 되어 웹 클라이언트에서 자바 호환 웹 브라우저에 내장된 자바 가상머신에 의해 실행된다는 차이점이 있습니다. 이렇게 웹 서버 내에서 실행될 수 있도록 작성된 자바 서블릿은 기존의 웹 서버 내에서 실행되는 프로그램인 CGI 프로그램을 대체할 수 있도록 고안되었습니다. 다음에 나오는 그림은 자바 서블릿의 실행 과정을 자세히 보여주고 있습니다.
델파이 또는 비주얼 베이직을 이용하여 프로그램을 작성할 때, 버튼이나 창과 같은 컨트롤들을 마우스로 끌어다 프로그램 내에 삽입할 수 있도록 되어 있는데, 이와 마찬가지로 자바 빈은 하나의 완벽한 기능을 갖고 재사용될 수 있도록 만들어진 소프트웨어 컴포넌트입니다. 마이크로소프트에서 제공되는 ActiveX 컴포넌트와 같이 자바에서 컴포넌트 프로그램을 가능하도록 해 줍니다.
다른 자바 프로그램에 의해 삽입(import)되어 사용될 수 있도록 작성된 자바 프로그램입니다. 이러한 자바 패키지는 기존의 프로그래밍 언어에서 사용하던 라이브러리 또는 운영체제에서 제공해 주는 API 등과 같다고 볼 수 있습니다. 자바 패키지 역시 해당 규약을 갖겠지요. 자바에서는 기본적으로 압축 파일의 형태로 'casses.zip"이라는 자바 패키지가 제공되고 있고, 압축 파일 내에는 디렉토리 단위로 패키지가 포함되어 있습니다. 다음에 나오는 그림은 JDK 1.2.2 에서 제공되는 패키지를 보여주고 있습니다.
* "Hello, World!" 출력프로그램
- LUA_3 . . . . 67 matches
1. 조건문
조건문은 조건에 따라서 프로그램의 흐름을 바꾸는 역할을 합니다. 예를 들면 어떤 값이 1 보다 크면 A 라는 명령을 그렇지 않으면 B라는 명령을 수행 하도록 합니다. 대표적으로 if 문을 들 수 있습니다. 지금부터 루아의 제어문을 살펴 보겠습니다.
> if a == true then print ("Yes") else print ("No") end
[ if 조건 then 참인 경우 else 조건이 거짓인 경우 end 로 끝냄 ]
만약 조건이 복수인 경우에는 아래와 같습니다.
[ if A 조건 then A 조건이 참인 경우 elseif B 조건 then B 조건이 참인 경우 end ]
> if a == false then
>> elseif a == true then
>> end
반복문은 일정 범위를 조건을 만족하는 동안 반복 수행할 수 있도록 하는 명령문 입니다.
[ for 변수 = 시작값, 종료값, 단계값(기본은 1) do 반복 될 명령문 end]
for 문은 위와 같은 문법으로 이루어져 있습니다. 예를 들면 아래와 같습니다.
> for i = 1, 10, 2 do print(i) end
단계값(step)은 생략할 수도 있습니다. 그러면 기본적으로 1씩 증가하게 됩니다.
> for i = 1,3 do print(i) end
[ while 조건 do 반복 될 명령문 end ]
>> end
마지막으로 repeat 문을 살펴 보겠습니다. repeat는 C의 do~while과 유사합니다. 하지만 다른 점이 있습니다. 우선 while 문과 달리 꼭 한 번은 실행 된다는 점, 그리고 조건이 거짓일 동안 반복 된다는 점, 그리고 마지막으로 do ~ end 블록이 아니라 repeat ~ until 로 구성 되어 있다는 점 입니다. 문법은 아래와 같습니다.
[ repeat 조건이 거짓일 경우에 반복 될 명령문 until 조건 ]
루아에도 break가 있습니다. 조건문과 break를 통해 조건에 따라서 반복문을 빠져 나갈 수 있습니다. 간단히 예제를 살펴 보고 끝내겠습니다.
- MobileJavaStudy/SnakeBite/FinalSource . . . . 67 matches
class SplashCanvas extends Canvas {
if(head.x < 0 || head.x > xRange - 1
if(head.x == cell.x && head.y == cell.y)
if(growing) {
else {
if(direction == Snake.LEFT)
else if(direction == Snake.RIGHT)
else if(direction == Snake.UP)
else if(direction == Snake.DOWN)
class SnakeBiteCanvas extends Canvas implements Runnable {
if(appleX == cell.x && appleY == cell.y) {
if(ok)
if(drawBoard) {
if(printLevel) {
if(gameOver) {
if(!pause && !gameOver) {
if(gameAction == Canvas.LEFT && direction != Snake.RIGHT)
else if(gameAction == Canvas.RIGHT && direction != Snake.LEFT)
else if(gameAction == Canvas.UP && direction != Snake.DOWN)
else if(gameAction == Canvas.DOWN && direction != Snake.UP)
- ZeroPage_200_OK . . . . 67 matches
* 각자 자신의 Cloud9 IDE Dashboard에서 Workspace를 만들어 과제를 진행하고 URL을 공유합시다. 과제는 "메뉴 만들기"였는데 어떤 모습으로 구현해도 좋습니다!
* 혹시 여전히 Cloud9 IDE이 동작하지 않으면 이번 내용은 클라이언트 구현만 있으므로 JSFiddle에 Save하고 URL을 링크하거나 [ZeroPage_200_OK/소스] 페이지에 올리셔도 됩니다.
* 위에 링크한 저의 Workspace Project의 index.html 파일에 메뉴 샘플을 구현해두었습니다. 상단의 Preview로 확인하면서 적절히 참조해서 만들면 도움이 될겁니다.
* [정진경] - c9.io는 필요할 때 먹통이 되네요... 실습 테마가 웹 게임 제작이면 Challengers의 콘텐츠를 보강하기 위해 인공지능으로 플레이가 용이한 게임을 기획해야겠습니다...ㅋㅋ
* 월드 와이드 웹(WWW)과 W3C 표준(Recommendation)
* 웹은 다양한 이론적 배경을 바탕으로 탄생하고 발전해 왔습니다. 우리 스터디에서는 그런 통합적인 지식을 바탕으로 여러분들에게 현재의 웹 기술에 대한 이해는 물론이고 웹 이후의 새로운 경향을 고민하고 연구하기 위해 필요한 단서를 제공하는데 목표를 두고 있습니다. 물론 굳이 모르고 있어도 단순 웹 개발을 하는데 무리는 없으나, 관련된 문제해결 과정이나 새로운 기술 이해를 위해서 중요한 능력이 될 수 있습니다.
* 우리 스터디에서 다루는 이론은 학부 2~4학년의 여러 교과를 포괄할 뿐 아니라 그 범위를 초월할 수 있습니다. 하지만 앞으로도 학부 1학년도 쉽게 이해할 수 있도록 대부분의 이론 각론은 교과 수업을 바탕으로 하지 않고 설명하는 방향으로 진행하겠습니다.
* form 관련으로 사용자 입력을 받을 수 있었던 부분 실습을 주로 배웠습니다. 근데 궁금한게 도중에 html5 얘기를 하시면서 <a href=""><button>abc</button></a> html5에서는 이렇게 사용할 수 있는데 이런게 자바스크립트를 쓸 수 없는 경우에 된다고 하셨는데 그럼 원래 버튼의 onclick같은 on~는 자바스크립트인건가요? - [서영주]
* https는 정말 어려운 주제 같네요. 일단 이해 되고 나면 쉬운데 뭔가 이것 저것 얽혀있는 느낌이네요. 따지고 보면 레이어 하나 추가되었을 뿐인데 난이도는 급 상승. 세션이나 쿠키같은경우에는 나오게 된 배경을 알게되어서 확실하게 이해하고 가는 느낌이네요. - [안혁준]
* 개인적으로 이래저래 많이 듣기만 한 용어들(쿠키, HTTPS 기타 등등)에 대해서 자세하게 들을 수 있어서 좋았습니다. 보안 관련은 예전 데블스 때도 잠깐 들을 기회가 있었는데, 그 때는 잘 이해를 못 했었는데 반복해서 들어서 그런지 이번에는 이해가 잘 됐습니다. 다음으로는 자바스크립트 문법에 대해서 다루신다고 하셨는데 어떤 방향으로 나갈지 궁금하네요 - [서민관]
* 자바스크립트에서 자주 this 얘기가 나오던데, 이번에 이야기를 들을 수 있어서 좋았습니다. 개인적인 느낌을 말하자면 함수가 데이터로 취급되는데 함수 내부에서 함수를 호출한 객체(execution context)의 정보를 사용하기 위해서 this를 사용한다는 느낌이는데 맞는지 모르겠군요. p.print를 넘기는 것도 실제로 class p에 있는 함수를 넘기는 게 아니라 p.print에 바인딩 된 어떤 함수를 넘기는 것이니까 내부의 this가 기존 OOP와 같이 해당 class의 인스턴스는 될 수 없겠죠. 그리고 제일 마음에 들었던 것은 역시 예전에 했던 스터디에서 다뤘던 자바스크립트의 네 가지 특징에 대해서 들을 수 있었다는 점이었습니다. 사실 예전 스터디 떄 무척 듣고 싶었는데 개인적인 사정으로 참가를 할 수 없어서 꽤 아쉬웠던 터라 ;;; 마지막에는 개인적인 사정으로 시간이 안 맞아서 좀 급하게 나갔는데, 그래도 최대한 들을 수 있는 데까지 듣기를 잘 한 것 같은 느낌이 들었습니다. - [서민관]
* 자바스크립트의 언어 특성에 따라서 배우고 기본적인 사용 문법에 대해서 배웠습니다. 명령형 구조적 프로그래밍 언어적인 부분에 대해서는 그렇게 어려운건 없었는데 그 뒤의 함수형 선언적 프로그래밍 언어 부분에서 클로저랑 함수에 함수를 인자로 주는 부분이 같이 쓰이니까 좀 복잡했었습니다. 조금 더 공부해야 할 것 같습니다. var Person = function(){}; 같은 부분나 this가 new를 했을 때에만 제대로 동작한다는 부분도 특이했습니다. 문법적인 부분 자체는 그렇게 어려운 것 같지 않은데 함수를 중첩해서 쓰거나 그런 부분이 약간 알아보기 힘든 것 같습니다. - [서영주]
* 서버에서 데이터를 가져와서 보여줘야 하는 경우에 싱글스레드를 사용하기 때문에 생기는 문제점에 대해서 배우고 이를 처리하기 위한 방법을 배웠습니다. 처음에는 iframe을 이용한 처리를 배웠는데 iframe 내부는 독립적인 페이지이기 때문에 바깥의 렌더링에 영향을 안주지만 페이지를 이동하는 소리가 나고, iframe이 서버측의 데이터를 읽어서 렌더링 해줄 때 서버측의 스크립트가 실행되는 문제점 등이 있음을 알았습니다. 이를 대체하기 위해 ajax를 사용하는데 ajax는 렌더링은 하지 않고 요청 스레드만 생성해서 처리를 하는 방식인데 xmlHttpRequest나 ActiveXObject같은 내장객체를 써서 요청 스레드를 생성한다는걸 배웠습니다. ajax라고 말은 많이 들었는데 구체적으로 어떤 함수나 어떤 객체를 쓰면 ajax인건가는 잘 몰랐었는데 일반적으로 비동기 처리를 하는거면 ajax라고 말할 수 있다고 하셨습니다. 그리고 중간에 body.innerHTML을 직접 수정하는 부분에서 문제가 생겼었는데 innerHTML을 손대면 DOM이 다시 만들어져서 핸들러가 전부 다 사라진다는 것도 기억을 해둬야겠습니다. - [서영주]
* JSON.stringify() 메소드와 JSON.parse() 메소드를 이용해서 JSON의 Serialization <-> Deserialization이 가능하다.
* Builder Pattern의 일종으로 jQuery의 메소드를 실행한 이후에 jQuery 배열 객체를 반환함으로써 함수의 chainning을 해서 사용할 수 있다.
* DOM 객체를 wrapping 한 것으로 CSS selector 문법으로 DOM에서 Element를 찾아 올 수 있다.
* Element를 찾을 때 CSS 문법을 이용하여 작업을 할 수도 있고 jQuery의 메소드를 이용해서 작업을 할 수도 있는데, 복잡한 대상을 한 번만 찾아서 작업을 할 경우에는 CSS 문법을 이용하는 것이 좋고, 찾은 대상에서 여러 작업을 할 경우에는 jQuery 함수를 사용하거나 해당 Element를 변수에 저장해 두었다가 사용하는 것이 성능 면에서 좋다.
* 웹 초기에 css설명했을 때 css셀렉터 문법도 설명을 해주셨었는데 많이 까먹어서 헷갈렸었습니다. -_- 역시 한 두 번 본걸로는 금방 잊어버리기 쉬운 것 같습니다. jQuery함수의 대부분은 호출 후 jQuery객체를 리턴하기 때문에 함수의 체이닝이 가능하다는 얘기를 하셨었는데 구글의 guava도 그렇고 요즘은 이런 형태의 구현이 많은건지 궁금합니다. 그리고 결과 값을 받아서 계속해서 다른 작업을 하는 경우가 아니라면 체이닝이나 그냥 한 번에 계산하는 방식이나 별 차이가 없는건가요? - [서영주]
* Browser Object Model : 자바스크립트로 Browser와 상호작용하기 위해 제공되는 API들의 집합. 공식적인 표준은 존재하지 않아서 조금씩 다를 수 있다.
* Iframe/frames
- 회원정리 . . . . 67 matches
어떤 기준에 의해서 정리가 되는 건가요? 그것이 회칙에 규정되어 있나요? 아니면 임의적으로 행해질 수 있나요? ["회원정리"]가 꼭 필요할까요? 회원정리를 당한 사람은 회원정리를 한 사람(혹은 남은 사람들)과의 실 관계에 서먹해지진 않을까요? 위키의 홈페이지를 꼭 삭제해야 할까요?
모임에 참가를 잘 못하고, 프로젝트 활동이 미진한 사람에게 처벌이 필요하나요? 모임에 참가를 안하고 프로젝트 활동이 부진한 것 자체가 일종의 처벌이 되는 경우는 없을까요? 처벌이 아니고 보상으로써 적극성을 이끌어 낼 수는 없을까요?
한번 강제 탈퇴 당한 사람이 자기의 친구들이 자신이 관심있어 하는 내용을 공부하려고 사람을 모으는 걸 알았습니다. 과연 참여할 수 있을까요? 그 사람이 "제로페이지"라는 임의적 단체의 가상적 "선(線)" 때문에 함께 공부를 못한다면, 그럴 가치가 있을까요?
경영학에서는 최근들어 조직이론에 패러다임 이동이 있습니다. 흔히들 말하는 군대식, 위계식, 고정적 조직에서 네트워크식, 수평적, 동적 조직으로의 변화이지요. 이합집산이 쉬워졌습니다. 조직과 조직간, 개인과 개인간의 결합력(coupling)이 약해졌습니다. 하지만 한번 모인 이상 응집력(cohesion)은 높습니다. 꼭 원하는 사람들만 모일 수 있죠. 대학사회에서도 비슷한 현상들이 나타나고 있지 않나 생각합니다. 예전에는 뭔가 큰 조직에 발을 담궈놓아야 편안함과 안정감을 느꼈는데 이제는 그렇지 않습니다. "개인주의적"이라고 비판을 받기도 하지만 현실을 부정할 수는 없을 듯 합니다. 그렇다면 변화하는 패러다임에 맞는 동아리 활동은 어떤 모양새여야 할까요?
저도 상당부분 동의합니다. 그런데 제가 아직 변화에 따르지 못하는 것인지.. 아니면 아직도 대학사회가 변하지 않는 것인지는 모르겠지만 비교적 저학년에 속해있고 스스로에 익숙치 않은 1,2학년들에게는 위와같은 모습을 기대하기가 생각만큼 쉽지는 않을것 같습니다. 물론 이미 대학을 거쳐(점차 대졸출신이 많아지므로 이렇게 말하겠습니다.) '비교적 스스로에 익숙한' 사람들이 있는 사회에선 위와같은 모습을 기대할 수 있을 것이라는 것에는 공감을 하고 동의합니다. 만약 제가 시대의 흐름에 뒤따라가지 못하고 있다면 고쳐보고 싶습니다. (물론 학회차원에서가 아니라 개인적 차원에서입니다.. :) )
(참고로 이것들은 한번 생각해보자는 의미에서 꺼내는 질문들이지 어떤 비판을 목적으로 한 것이 아닙니다.)
^^ 네. 전 질문 받을 수 있다는 것이 기쁩니다. 관심을 가져주신다는 것 하나만으로도요.... :)
회원정리의 기준은 회칙에서 정해진 대로 '사전 연락없이 정모 연속 2회이상 불참' 에 근거하였습니다. 미처 게시판,위키에 연락하지 못하고 회장에게 연락한 경우도 감안을 하였습니다. 또한 프로젝트, 스터디 등을 하면서 ZeroWiki 상에서의 활동여부도 참작을 하였습니다. 활동사항이 전혀 없으면서 정모에 연속 2회이상 불참이 경우가 회원정리의 대상이었습니다.(공교롭게도 이렇게하여 나온 명단의 사람들은 정모에 2,3달 이상 불참하였습니다. 자진 탈퇴라고 보아도 될 정도로 말이죠. 아무런 연락도 없이 불참하였으니까요.) 분명히 정모를 하기 전에 '회원정리를 합니다' 라고 명시를 했었고 그에 대하여 아무런 의견도 없었습니다. 회칙을 정모에서 정했던 만큼 동의하는 것으로 간주하여 회원정리 당일 정모에 참여했던 회원들끼리 회칙 기준에 맞추어 회원정리를 단행하였습니다.
그리고 사과의 말씀 FrontPage에도 올렸지만 다시한번 드립니다. 일처리를 함에 있어 경솔하였고, 성급했던 점.. 그리고 회칙을 좀더 눈여겨 보지 않고 회원정리를 한 점에 대하여 회원들은 물론 선배들께 우려를 끼쳐드린점 죄송합니다. 이런 일이 없도록 하겠습니다. 같은 과친구들끼리 서로 웃으며 대하는 친구들끼리 회원정리라는 것때문에 실관계가 서먹해지는 것은 저도 우려하는 바입니다. 홈페이지까지 삭제하는 일은 지나치다는 생각이 들었습니다. 회원정리는 개개인의 추방을 목적으로 하는 것이 아니라 학회의 부흥을 목적으로 하기 때문입니다. 그리하여 상민이 형이 Delete This Page 대신에 ZeroPagers 를 ZeroWikian 으로 바꿔놓으며 차후 연락하여 활동재개의 여지를 남겨놓으신 일에 감사드리며, 형이 미쳐 손대지 못한 홈페이지도 제가 마저 ZeroWikian 으로 바꿔놓았습니다. ZeroPagers 가 아니더라도 ZeroWikian 으로 같이 공부할 수 있다면 좋을 것입니다.
창준이 형 말대로 제로페이지라는 임의적 단체의 가상적 선때문에 함께 공부하지 못한다면 이 또한 비극이 될 것입니다. 따라서 본의 아니게 지나친 조치들을 취했던 것 다시한번 사과드립니다. 회원정리 대상의 친구들 또한 차후 같이 공부할 수 있다면 그보다 더 반가운 소식은 없을 것입니다. 따라서그에 대한 대안으로 함께 공부할 수 있는 여지를 남겨놓기 위해 앞서 말씀드린대로 ZeroWikian 으로 남겨두는 방안을 생각했습니다.(물론 제가 생각했다기 보단 상민이 형의 추가조치에 따른 것이지만요... :) )
그리고 회원정리의 근거가 된 정모의 참여여부를 말씀드리자면 정모에 규칙적으로 나옴으로써 친목을 다져 스터디, 프로젝트 등의 활동에 활기를 불어넣고자 함이었습니다. 처리할 안건이 있으면 이날 모인 김에 처리할 목적도 있었구요. 그리고 정모를 '무한 자유'로 할경우 참여가 저조하다는 지적이 있어 강제성을 부여하고자 '회원자격상실'이라는 처벌을 두게 된 것입니다. 2002.1에 제로페이지와 데블스의 통합할때 '학회활동의 저조함의 원인' 의 하나로써(전부가 아니라 일부라는 점을 다시 말씀드립니다.) 정모의 불참으로 인한 회원들간의 결속력 상실을 꼽았던 걸로 기억합니다. Z&D 로 페이지 검색하면 나오는 페이지들이 당시 통합과정에서 남은 문서들입니다. 아무튼 그리하여 정모에 강제성을 두고자 회원자격박탈이라는 벌칙이 만들어졌고 일년이 지난 지금 시행하게 되었습니다.
여기서부터는 제가 회장이 아니라 ZeroPagers 로써 제 의견을 말씀드리겠습니다.
전체 회원들의 참여도를 높게 유지해야만 하는가에 대해서는 '예' 라고 하고 싶습니다. 물론 모두의 의미로 말씀드리는 것은 아닙니다. 거의다의 차원에서 말씀드립니다. 회원들 간에 참여도가 높은 사람들과 낮은 사람들이 생기는 것은 바람직한 학회의 모습이 아니라고 봅니다. 보상이든 처벌이든 무엇으로 하든지 회원들의 참여도를 높게 이끌어가는 것이 학회의 모습이라고 생각합니다. 만약 학회내에 참여도가 높은 사람들과 아닌 사람들이 나뉠수 있게된다면 참여도가 낮은 사람들이 소외감을 느껴 결국은 ZeroPagers 라고 등록은 되어있지만 실질적으로 ZeroPagers 라고 보기 어렵게 될 것입니다. 이것은 결국 암묵적 회원정리가 됩니다. 이러한 회원들을 '유령회원'이라고 하겠습니다.(참여도라는 말에는 활동의 활발함도 포함시킬 수 있겠습니다. 써놓고 보니 의미가 부족한 것 같아 덧붙입니다.)
유령회원들은 ZeroPagers 라는 이름으로 등록되어있지만 실제로 활동은 0에 가깝습니다. 아니 0 인 경우가 더 많겠지요. 이러한 회원들을 굳이 ZeroPagers 에 포함시킬 이유는 없다고 봅니다. 학회는 살아있어야 한다는 것이 제 입장입니다. 활동이 0에 가까운 사람들은 학회가 살아있도록 한다기보단 학회의 인적규모만 표면적으로 늘릴 뿐 실질적 활동사항은 0에 가까워지게 한다고 봅니다. '겉으로는 인원이 많은 거대규모의 학회, 하지만 안으로는 활동사항이 미진한 학회.' 제가 보는 '망해가는 학회'의 모습입니다. 표현이 극단적일지는 모르겠으나 이렇게 되는 것은 하루아침에 되는 것이 아니라 서서히 참여도가 줄어들면서 만들어 질수 있는 모습이라고 생각됩니다. 이런 모습을 막기 위해서라도 회원정리라는 방법이 필요하다고 생각합니다.
추가로 말씀드리자면 회원정리전의 개인연락은 '너 나갈거야?' 가 아니라 '다시 활동을 해주었으면 하는데 어떠니?' 식이 될 것입니다. 회원정리는 어디까지나 추방의 목적이 아니라 학회의 발전을 목적으로 하기 때문입니다. :)
회원 정리는 잘 모르겠으나 경고의 경우에는 그사람들에게 이메일같은걸로 알려주어야 할거 같네여. 그래야 경고의 의미가 살거 같구여. 회원 정리는 알려야 하나 말아야 하나.. -_-;; --["상협"]
경고는 회칙에 있지 않은 조치였습니다. 경고라기 보다는 앞으로 열심히 해달라는 식의 공지였습니다만 그럴만한 정당성도 없거니와 할 이유가 없어 삭제하였습니다. 회원정리의 경우 회칙에 명시된대로 개인 연락을 하기로 하였습니다. --["창섭"]
--다시 쓰기엔 번거롭기도 하고 페이지 낭비이기도 하므로 반복하지는 않겠습니다. 위의 창준이 형에대한 제 답글을 읽어주세요. :) --["창섭"]
회원정리는 회칙에 규정되어있는걸로 알고 있습니다. 회원정리에 대해서 빠른 시일내에 공지가 있을겁니다. --["상규"]
회칙에 적혀 있는 내용에 의하면 '본인 의사로 회원 자격을 상실한다'인것으로 알고 있습니다만. '정리대상'에 오른 회원들의 의사를 확인하였나요? (글을 보면, 회원정리가 먼저고 공지가 뒤에 이루어지는 것 같은데.. 이건 순서가 안맞는것 아닌가요?)
- Gof/Facade . . . . 66 matches
서브시스템의 인터페이스집합에 일관된 인터페이스를 제공한다. Facade는 고급레벨의 인터페이스를 정의함으로서 서브시스템을 더 사용하기 쉽게 해준다.
서브시스템을 구축하는 것은 복잡함을 줄이는데 도움을 준다. 일반적인 디자인의 목적은 각 서브시스템간의 통신과 의존성을 최소화시키는 것이다. 이 목적을 성취하기 위한 한가지 방법으로는 단일하고 단순한 인터페이스를 제공하는 facade object를 도입하는 것이다.
http://zeropage.org/~reset/zb/data/facad057.gif
예를 들기 위해, 어플리케이션에게 컴파일러 서브시스템을 제공해주는 프로그래밍 환경이 있다고 하자. 이 서브시스템은 컴파일러를 구현하는 Scanner, Parser, ProgramNode, BytecodeStream, 그리고 ProgramNodeBuilder 클래스를 포함하고 있다. 몇몇 특수화된 어플리케이션은 이러한 클래스들을 직접적으로 접근할 필요가 있을 것이다. 하지만, 대부분의 컴파일러 시스템을 이용하는 클라이언트들은 일반적으로 구문분석(Parsing)이나 코드 변환 (Code generation) 의 세부적인 부분에 대해 신경쓸 필요가 없다.(그들은 단지 약간의 코드를 컴파일하기 원할뿐이지 다른 강력한 기능을 알 필요가 없다.) 그러한 클라이언트들에게는 컴파일러 서브시스템의 강력하지만 저급레벨인 인터페이스는 단지 그들의 작업을 복잡하게 만들 뿐이다.
이러한 클래스들로부터 클라이언트들을 보호할 수 있는 고급레벨의 인터페이스를 제공하기 위해 컴파일러 서브시스템은 facade 로서 Compiler class를 포함한다. 이러한 클래스는 컴파일러의 각 기능성들에 대한 단일한 인터페이스를 정의한다. Compiler class는 facade (원래의 단어 뜻은 건물의 전면. 외관, 겉보기..) 로서 작용한다. Compiler class는 클라이언트들에게 컴파일러 서브시스템에 대한 단일하고 단순한 인터페이스를 제공한다. Compiler class는 컴파일러의 각 기능들을 구현한 클래스들을 완벽하게 은폐시키지 않고, 하나의 클래스에 포함시켜서 붙인다. 컴파일러 facade 는저급레벨의 기능들의 은폐없이 대부분의 프로그래머들에게 편리성을 제공한다.
http://zeropage.org/~reset/zb/data/facad058.gif
* 복잡한 서브 시스템에 대해 단순한 인터페이스를 제공하기 원할때. 서브시스템은 종종 시스템들이 발전되어나가면서 더욱 복잡성을 띄게 된다. 대부분의 패턴들은 패턴이 적용된 결과로 많고 작은 클래스들이 되게 한다. 패턴의 적용은 서브시스템들이 더 재사용가능하고 커스터마이즈하기 쉽게 하지만, 커스터마이즈할 필요가 없는 클라이언트들이 사용하기 어렵게 만든다. Facade는 서브시스템에 대한 단순하고 기본적인 시각을 제공한다. 이러한 시각은 대부분의 클라이언트들에게 충분하다. 커스터마이즈가 필요한 클라이언트들에게만이 facade를 넘어서 볼 필요가 있는 것이다.
* 클라이언트들과 추상 클래스들의 구현 사이에는 많은 의존성이 있다. 클라이언트와 서브시스템 사이를 분리시키기 위해 facade를 도입하라. 그러함으로서 서브클래스의 독립성과 Portability를 증진시킨다.
* 서브시스템에 계층을 두고 싶을 때. 각 서브시스템 레벨의 entry point를 정의하기 위해 facade를 사용하라. 만일 각 서브시스템들이 서로 의존적이라면 서브시스템들간의 대화를 각 시스템간의 facade로 단일화 시킴으로서 그 의존성을 단순화시킬 수 있다.
http://zeropage.org/~reset/zb/data/facade.gif
* 클라이언트는 Facade에게 요청을 보냄으로서 서브시스템과 대화한다. Facade 객체는 클라이언트의 요청을 적합한 서브시스템 객체에게 넘긴다. 비록 서브시스템 객체가 실제 작업을 수행하지만, facade 는 facade 의 인퍼페이스를 서브시스템의 인터페이스로 번역하기 위한 고유의 작업을 해야 할 것이다.
1. 서브시스템 컴포넌트로부터 클라이언트들을 보호한다. 그러함으로서 클라이언트가 다루는 객체의 수를 줄이고, 서브시스템을 이용하기 쉽게 해준다.
2. 서브시스템과 클라이언트 간의 연결관계를 약하게 해준다. 종종 서브시스템 컴포넌트는 클라이언트와 강한 연결관계를 가지기도 한다. 약한 연결관계는 클라이언트에게 영향을 미치지 않으면서 서브시스템의 컴포넌트들을 다양하게 만들어준다. Facade 는 시스템과 객체간의 의존성을 계층화 하는데 도움을 준다. Facade는 복잡함이나 순환의존성을 없애준다. 이것은 클클라이언트와 서브시스템이 비의존적으로 구현되었을때의 가장 중요한 결과일 것이다.
클라이언트와 서브시스템간의 연결관계는 Facade를 추상클래스로 만듬으로서 줄일 수 있다.
서브클래싱의 대체는 다른 서브시스템 객체를 가진 Facade 객체로 설정하는 것이다. facade를 커스터마이즈하려면 단순히 서브시스템 객체를 다른 객체로 교환한다.
서브시스템으로의 public interface는 모든 클라이언트들이 접속가능한 클래스들로 구성되며. 이때 서브시스템으로의 private interface는 단지 서브시스템의 확장자들을 위한 인터페이스이다. 따라서 facade class는 public interface의 일부이다. 하지만, 유일한 일부인 것은 아니다. 다른 서브시스템 클래스들 역시 대게 public interface이다. 예를 들자면, 컴파일러 서브시스템의 Parser class나 Scanner class들은 public interface의 일부이다.
서브시스템 클래스를 private 로 만드는 것은 유용하지만, 일부의 OOP Language가 지원한다. C++과 Smalltalk 는 전통적으로 class에 대한 namespace를 global하게 가진다. 하지만 최근에 C++ 표준회의에서 namespace가 추가됨으로서 [Str94], public 서브시스템 클래스를 노출시킬 수 있게 되었다.[Str94] (충돌의 여지를 줄였다는 편이 맞을듯..)
Compiler 서브시스템은 BytecodeStream 클래스를 정의한다. 이 클래스는 Bytecode 객체의 스트림부를 구현한다. Bytecode 객체는 머신코드를 구체화하는 bytecode를 캡슐화한다. 서브시스템은 또한 Token 클래스를 정의하는데, Token 객체는 프로그램 언어내의 token들을 캡슐화한다.
Parser 클래스는 Scanner의 token로 parse tree를 구축하기 위해 ProgramNodeBuilder 를 사용한다.
Parser는 점진적으로 parse tree를 만들기 위해 ProgramNodeBuilder 를 호출한다. 이 클래스들은 Builder pattern에 따라 상호작용한다.
- MoniWikiPo . . . . 66 matches
msgstr "%s에서 %s(으)로 번역하기"
msgstr "<b>가로선</b> ----는 블로그일 경우 적용되지 않습니다."
msgstr "바뀐 블로그"
msgstr "%s에 댓글이 성공적으로 첨가되었습니다"
#: ../plugin/Diff.php:151 ../plugin/Diff.php:190 ../wikilib.php:1275
msgid "No difference found"
#: ../plugin/Diff.php:153
msgid "Difference between yours and the current"
#: ../plugin/Diff.php:174 ../plugin/Info.php:145
#: ../plugin/Diff.php:179 ../plugin/Info.php:151
#: ../plugin/Diff.php:192
msgid "Difference between versions"
#: ../plugin/Diff.php:194
msgid "Difference between r%s and r%s"
#: ../plugin/Diff.php:197
msgid "Difference between r%s and the current"
msgstr "%2$s로부터 %1$d일 지났습니다."
msgstr "뒤로 혹은 %s(으)로 가기"
msgid "Use more specific text"
msgid "If you can't find this page, "
- Spring/탐험스터디/wiki만들기 . . . . 66 matches
* 현재 로그인 한 사용자 정보 가져오기
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if (principal instanceof UserDetails) {
} else {
1. Spring dependency injection을 이용하는 법
<sec:authorize ifAllGranted="ROLE_USER">
* 위키 문법을 별도로 정의하고 파서를 구현하는 대신 Markdown을 사용하기로 결정했다.
* [http://en.wikipedia.org/wiki/List_of_Markdown_implementations 위키피디아]를 참고하여 Java로 구현된 Markdown implementation 중 Pegdown을 선택했다.
1. pom.xml에 dependency 추가하기
<dependency>
<artifactId>pegdown</artifactId>
</dependency>
1. markdown text를 html 문자열로 변환
* ''CGLIB는 코드 생성 라이브러리로서(Code Generator Library) 런타임에 동적으로 자바 클래스의 프록시를 생성해주는 기능을 제공(펌)'' 이라고 한다.
* 처음에 소스 코드 짜면서 일단 돌아가게 만들자!! 는 마음으로 코딩을 했더니 바꿔야 할 부분이 아주 많아졌다. 아무렇게나 짜려는 건 아니고 개발이 너무 지연되다가 흐지부지 되는 게 싫어서 그렇게 한 건데 지속적으로 개발하다가 특정 부분을 고쳐야할 시기에 기민하게 고치지 않으면 답이 없는 코드가 되는 것 같다.
* TODO : write/delete 등 함수 단위로 security 설정 필요함
* 오늘은 위키 문법을 구현하기로 하였다.
* 위키의 문법을 구현하기로 하였는데 직접 파서를 구현하기보다 Markdown의 파서를 사용하면(Markdown 문법을 사용해야 하지만) 편리할 것 같아(명백해서 증명할 필요가 없다!) Markdown 파서중 pegdown을 쓰기로 경정. Java 언어 기반의 파서중 그나마 문서화(GitHub의 소개페이지)가 잘되어있어서....
* '''그건 우리가 이 프로젝트(그리고 코드)에 대해 더 잘 알게 되었다는 뜻. 과거의 결점을 발견하는 것은 좋은 신호다'''.
* 이전 (리비전 9)에서는 jsp 에서 pageContext.getAttribute("page")로 Response의 page를 불러올 수 있었는데 리비전 10부터 pageContext.getRequst().getAttribute()(또는 request.getAttribute)를 해야 page를 불러올 수 있다. 왜지? 모르겠음. 한참헤멤
- ZeroPageServer/Mirroring . . . . 66 matches
로컬 호스트 시스템을 백업하는 방법으로는 tar 아카이브를 이용하여 묶거나 압축하는 방법이 있고, cpio, dump, dd 유틸리티를 이용하여 하드 디스크를 백업하는 방법이 있다.
이번호에서는 이러한 유틸리티를 사용하지 않고, 미러링(Mirroring) 기능을 이용하여 로컬시스템 또는 원격서버의 데이터를 그대로 복사하여 백업하는 방법에 대해서 알아봅니다......
레드햇 리눅스 사이트의 다운로드 페이지에 보면 FTP 미러 사이트들이 많이 링크되어 있
음을 발견할 수 있다. 미러 사이트는 주 사이트의 데이터를 그대로 옮겨와 주 사이트와 똑
같은 서비스를 제공하는 것이다. 원격 서버의 데이터를 원본 그대로 복사해 와서 원격 서
버와 똑같은 데이터 상태를 유지시키는 것을 미러링(Mirroring) 이라 하는데 다른 표현으로
항상 미러링 서버는 원격 서버의 동일한 데이터 상태를 유지하게 된다. 미러링은 로컬 시스
rsync는 루트의 권한없이 서버로부터 데이터로 빠르게 전송받을 수 있으며, 원격 서버와
레드햇 리눅스 9에서는 최신 버전의 rsync RPM 패키지를 지원하므로 간단히 RPM 패키지
되어 있지 않는 것이므로, rsync-2.5.5-4.i386.rpm 패키지를 구해 다음과 같이 설치한다.
설치전에 반드시 미리 구한 패키지가 있는 디렉토리로 들어간후 설치하는것을 잊지 말자.
rsync RPM 패키지는 redhat-lsb 패키지와 의존성을 가지므로, 설치시
rsync 서버를 구축하지 않은 상태에서 rsync로 SSH를 이용하여 데이터를 백업하는 방법
은 다음과 같다. rsync 사용법에 관한 자세한 것은 잠시 후에 살펴보기로 하자...
{{{ rsync -avzr --delete -e ssh 원격서버:데이터경로 백업경로}}}
원격 서버의 주소와 미러링하고자 하는 데이터의 경로를 지정한 후에 -e ssh 옵션을
워드를 입력한다. 만일 일반 사용자 계정으로 이 명령을 수행한다면 원격 서버에도 동일한
SSH로 원격 서버에 접속이 이뤄지면 rsync에 의해서 원격 서버의 데이터를 미러링 서버
의 지정된 경로로 다운로드됨을 볼 수 있다.
클라이언트에서 rsync로 SSH를 이용하여 원격 서버에 접속하기 전에
- whiteblue/MyTermProjectForClass . . . . 66 matches
#ifndef _DATA_H_
#endif
#ifndef _JUDGEMENT_H_
#endif
#ifndef _ORDER_H_
#endif
if ( ave >= 95 && ave <=100)
else if ( ave >= 90 && ave < 95)
else if ( ave >= 85 && ave < 90)
else if ( ave >= 80 && ave < 85)
else if ( ave >= 75 && ave < 80)
else if ( ave >= 70 && ave < 75)
else if ( ave >= 65 && ave < 70)
else if ( ave >= 60 && ave < 65)
else if ( ave <= 59)
if (select == 1 )
else if (select == 2 )
else if (select == 3 )
else
if (IsItSort)
- 새싹교실/2012/개차반 . . . . 65 matches
* 카톡 회의 결과 초안으로 월 15~16/화 16~17시 진행 예정
* C언어는 UNIX 개발을 목적으로 만들어진 언어이기 때문에 OS의 기초가 되는 기초적인 컴퓨터시스템은 이해할 필요가 있다고 판단
* 추후 프로그래밍시 에러 이유와 대처방법 부연 설명
* High-Level 언어에 가까울수록 사람이 이해하기 쉬워진다 (Human Friendly)
* Low-Level 언어에 가까울수록 기계가 이해하기 쉬워진다 (Machine Friendly)
* High-Level 언어를 Low-Level 언어로 변환해주는 역할을 한다
* 제어장치와 연산장치, 메모리, 입출력장치로 구성
* 이진법으로 나타낼 수 있는 자릿수를 나타낸다
* float: 4 byte, floating type number. Specification in IEEE 754-2008
* It has start and end point of a program.
* return 0; : 0 is a flag noticing OS that program is ended.
* identifier -> 이름 짓기에도 규칙이 있다.
* Maximum, minimum value of int(경우의 수 이용)
* format specifications
* 고1 수학 과정 제대로 공부해보기
* 변수의 이름 (identifier)
* 변수의 이름은 반드시 문자나 underscore (_) 로 시작해야 한다
* 컴파일러에 의해 이미 정해져 있는 이름 (identifier)
* 변수의 이름으로 사용할 수 없다
* 오버플로우 (overflow)
- 지금그때/OpeningQuestion . . . . 65 matches
(국내/해외) 여행. 평소 공부하지 못했던 것, 그러나 해보고 싶었던 것 공부하기. 친구들과 어울려서 멋있는 프로젝트 해보기. 새로운 사람들 만나기, 사귀기. --JuNe
영어는 아주 월등하지 않는 이상 개발자 사이에서는 큰 차이가 없습니다. 기술서적을 읽고 그 자리에서 독해해 내는 실력이 된다면 굳이 영어에 매달리며 시간을 투자할 필요가 없습니다(참고로 저는 영어를, 개발자들 중에서는 아주 잘합니다. 그래서 이런 말을 할 자격이 된다고 생각합니다. 이것은 잘난체하고 말고의 문제가 아닙니다).
만약 학계에 남고 싶다면 영어로(일단 글로) 자기 생각을 풀어내는 실력이 뒷받침이 되어야 합니다. 하지만 국내 대학에서라면 이게 없어도 얼마든지 버팅길 수 있습니다.
별로 알 필요 없다고 생각합니다. 아니, 가능하다면 최신 기술을 오래된 기술과 연계해서 링크걸기, 가로지르기를 해가며 공부하는 것이 좋다고 생각합니다. 학부생에게 추천해 드리고 싶은 기본 원칙은 "정말 알고 싶어 미치겠는 기술"이 있으면 공부하라는 것입니다. "남들 하니까 나도"는 영양가가 없습니다. --JuNe
see Seminar:DontLetThemDecideYourLife, [http://zeropage.org/wiki/%C0%E7%B9%CC%C0%D6%B0%D4%B0%F8%BA%CE%C7%CF%B1%E2 재미있게공부하기]
수업 예습, 복습 -- 효과가 엄청납니다(특히 학습후 10분에 복습하면). 늘 갖고 다니는 책(전공/비전공) 조금씩 보기. 도서관 가서 자료 찾아보기, 새로 들어온 책 구경하기, 모르는 거 해결하기, 동기, 선후배에게 물어보기. 자기의 요즘 화두 고민해 보기 등.
* 프로그래밍 잘 하는 방법 : 가르치는 척은 하지만 별로 못 배웁니다. 혼자서 혹은 선배와 동기를 통해 배워야 합니다.
* 전산 이론 : 매일매일 프로그래밍하는 데에 큰 영향력은 없습니다만 학계에 남으려거나 자신의 가치 차별화를 하려면 아주 중요합니다.
* 프로그래밍 언어 : C, C++, Java 정도를 배웁니다. 하지만 직접 가르쳐주는 것은 문법 수준이고, 대부분은 숙제를 하면서 직접 익혀야 합니다.
누구나 생각해 보면 쉽게 답할 수 있는 질문일 것 같습니다. 제 경우와 주변을 살펴보면, 1학년 때 수업만 따라가면 큰 차이가 없는 것 같습니다. 그러나 1학년 때 자신이 알아서 소위 "탐구 학습"을 하면 나중에 남들이 따라오기 힘들 정도로 큰 격차가 생깁니다. 물론 1학년 때 공부 거의 안하고 나중에 따라 잡고 발전하는 경우도 있습니다만 그렇게 쉬운 일은 아닙니다.
만약 관심이 가는 대상이 있다면 가급적 교양보다 (다른과) 전공수업을 들을 것을 권합니다. 학생들의 분위기, 교수의 태도, 수업의 진지함 등 모두가 차이가 큽니다. 의외로 따라가기가 그렇게 어렵지 않은 경우가 많습니다(오히려 클래스 탑을 하는 경우도 많습니다). 스스로 따라갈 수 있을지 의문이 들면, 해당 수업의 지난 학기 교과서를 구해서 읽어보세요. 감이 올겁니다.
어설픈 교양수업보다 진지한 전공수업이 훨씬 나은 경우가 많습니다.
== 새내기로서 무엇부터 접근할 수 있을까? 어떤 걸 공부해야 할지도 모르겠다. ==
제 경우, 학과 전공 수업은 크게 유용하지 않았습니다. 만약 지금 다시 되돌아간다면 훨씬 유용하게 수업을 "이용"했을 거라고 생각합니다. 반면 타전공 수업은 대부분 만족스러웠습니다. --JuNe
= 진로/미래 =
* 1년 휴학 추천 : 많은 시간을 필요로 하는 하고 싶은 일 - 알바, 여행 등 - 을 할 수 있다.
(국내/해외) 여행. 평소 공부하지 못했던 것, 그러나 해보고 싶었던 것 공부하기. 친구들과 어울려서 멋있는 프로젝트 해보기. 새로운 사람들 만나기, 사귀기. --JuNe
* 은행에서는 사내유학 제도에서 MBA를 유도한다 -> 회사에 오래남을 사람 (본인 스스로가 결정한다.)
* 산업공학과라고 있는데, 그시대에 맞는 다양한 교과과정을 통해 다방면으로 배우는 과목이 있다.
* 심화전공과 복수(부)전공을 선택해야 하는 기로에 있다면 어느것을 선택하겠는가?
- Eclipse . . . . 64 matches
["Eclipse"] 프로젝트는 통합 개발 환경(IDE)을 위한 플렛폼을 목표하는 오픈소스 프로젝트 이다. [http://www.eclipse.org/projects/index.html 부분인용]
* [http://www.eclipse.org/downloads/index.php 다운로드]
Eclipse기본 플러그인으로 CVS가 설정되어 있다.
1. 원하는 프로젝트에서 {{{~cpp PopUp}}}을 띄우고 Check out As Project 로 가지고 와 작업한다.
* '''Ecilpse가 JRE path문제로 실행이 안되는 경우'''
* Eclipse를 설치할때 JRE를 Eclipse가 못찾아서 실행 되지 않는 경우가 있다. 특히 학교의 Win98에서 이러하다. 이럴 경우 '''Eclipse 폴더 내에 jdk1.4이상의 jre폴더를 복사'''하면 Install Complete라는 이미지와 함께 Eclipse가 세팅되고 실행 된다. 이후 해당 Eclipse의 실행 포인트 역시 jre의 vm이 되는데,
* Ctrl + H Search에서 파일 검색, *.java 파일 검색, * 로 검색한다. String Set을 검색한다.
=== 단축키 관련(주로 JDT) ===
* 2.0 -> 3.0 으로 버전업 되면서 수많은 단축키 들이 생겼다. 더불어 좀더 세부적인 Key Map 수정을 할수 있게 되었다.
||Shift+F2|| Open External {{{~cpp JavaDoc}}} , 프로젝트 상에 doc 파일이 있을시 그곳을 뒤져{{{~cpp JavaDoc}}}을 연다. 처음 열때 Help창 오래 걸림||
||F4 || Open Type Hierarchy , 해당 인자의 상속 관계를 표로 보여준다.||
||Ctrl + T || 상속 관계를 소스의 팝업창으로 보인다. ||
||F12|| Edit창으로||
||Ctrl+Space ||자동완성. 퀵픽스에 버금가는 사기 기능. 내가 무슨 기능을 쓸 수 있는지 자바독과 함께 보여주며 엔터만 치면 구현을 끝내주는 역할을 한다. 혹자는 퀵픽스와 자동완성, 그리고 JUnit만 있으면 어떤 프로그램이든 만들 수 있다고 한다.||
|| Alt+Shift+Q + ? || Window->Preference->workspace->key->Advenced 의 Help Me... 옵션을 키고 Alt+Shift+Q를 누르고 기다려 보자 ||
|| Ctrl+Alt+H || 메소드 호출 순서를 Tree로 보여준다. ||
||Ctrl+Shift+F|| code의 정렬해준다. 한라인의 소스가 길어지면(100이상) 포멧팅에 한계 보이기도 한다. ||
|| Alt + right/left || 바로 이전/이후 작업 영역으로 이동 -소스 항해에 필수 ||
|| Alt + Shift + Up/Down || 선택 영역 확장-선택영역 이동과 함께 이용하면 용이 ||
[1002]의 경우 jmechanic, pmd, 그리고 잘 모르겠는 profiler (패키지 이름은 ru.nlmk 였는데) plugin 랑 Eclipse Tail 깔아서 쓰는중. 그리고 FreeMarker 작업시 FreeMarker plugin 설치해서 작업중.
- Gof/FactoryMethod . . . . 64 matches
Framework(이하 Framework 그대로)는 객체사이의 관게를 정의하고, 유지하기 위하여 가상 클래스들을 사용한다. Framework는 종종 이러한 클래스들을 기반으로 객체의 생성에 책임을 진다.
Application(클래스가 아님)만들때 요구되는 특별한 Document에 대한 Sub 클래스 구현때문에, Application 클래스는 Doment의 Sub 클래스에 대한 내용을 예측할수가 없다. Application 클래스는 오직 새로운 ''종류'' Document가 만들어 질때가 아니라, 새로운 Document 클래스가 만들어 질때만 이를 다룰수 있는 것이다. 이런 생성은 딜레마이다.:Framework는 반드시 클래스에 관해서 명시해야 되지만, 실제의 쓰임을 표현할수 없고 오직 추상화된 내용 밖에 다를수 없다.
Factory Method 패턴은 이에 대한 해결책을 제시한다. 그것은 Document의 sub 클래스의 생성에 대한 정보를 캡슐화 시키고, Framework의 외부로 이런 정보를 이동 시키게 한다.
Upload:fac1.gif
DeleteMe) 왜 결과지. 결과는 적용후에 얻을수 있는 이익이지만, 현재 이것은 패턴을 적용한 코드를 구현하기 전에 이론적 바탕에 대하여 결론 짓는 것이라고 생각해서 결론이라고 했음. 그냥 결과는 부족한것 같고, "패턴 적용 결과"보다는 "패턴 적용 결과 고찰" 이라는 의미가 강한거 같은데, 그냥 결론으로 쿨럭 --;
factory method의 잠재적인 단점이라고 한다면 클라이언트가 아마도 단지 특별한 ConcreteProduct객체를 만들기위해서 Creator클래스의 sub클래스를 가지고 있어야 한다는 것일꺼다. 클라이언트가 어떤 식으로든 Creator의 sub클래스를 만들때의, sub클래스를 만드는 것자체는 좋다. 하지만 클라이언트는 이런것에 신경쓸 필요없이 로직 구현에 신경을 써야 한다.
1. ''서브 클래스와 소통 통로 제공''(''Provides hooks for subclasses.'') Factory Method를 적용한 클래스에서 객체의 생성은 항상 직접 만들어지는 객체에 비하여 유연하다. Factory Method는 객체의 상속된 버전의 제공을 위하여, sub클래스와 연결될수 있다.(hook의 의미인데, 연결로 해석했고, 그림을 보고 이해해야 한다.)
Ducument에제에서 Document클래스는 factory method에 해당하는, 자료를 열람하기 위한 기본 파일 다이얼로그를 생성하는 CreateFileDialog이 호출을 정의할수 있다. 그리고 Document sub클래스는 이러한 factory method를 오버 라이딩해서 만들고자 하는 application에 특화된 파일 다이얼로그를 정의할수 있다. 이러한 경우에 factory method는 추상적이지 않다. 하지만 올바른 기본 구현을 제공한다.
2. ''클래스 상속 관게에 수평적인(병렬적인) 연결 제공''(''Connects parallel class hierarchies.'') 여태까지 factory method는 오직 Creator에서만 불리는걸 생각해 왔다. 그렇지만 이번에는 그러한 경우를 따지는 것이 아니다.; 클라이언트는 수평적(병렬적)인 클래스간 상속 관계에서 factory method의 유용함을 찾을수 있다.
병렬 클래스 상속은 클래스가 어떠한 문제의 책임에 관해서 다른 클래스로 분리하고, 책임을 위임하는 결과를 초례한다. 조정할수 있는 그림 도형(graphical figures)들에 관해서 생각해 보자.;그것은 마우스에 의하여 뻗을수 있고, 옮겨지고, 회정도 한다. 그러한 상호작용에 대한 구현은 언제나 쉬운것만은 아니다. 그것은 자주 늘어나는 해당 도형의 상태 정보의 보관과 업데이트를 요구한다. 그래서 이런 정보는 상호 작용하는, 객체에다가 보관 할수만은 없다. 게다가 서로다른 객체의 경우 서로다른 상태의 정보를 보관해야 할텐데 말이다. 예를들자면, text 모양이 바뀌면 그것의 공백을 변화시키지만, Line 모양을 늘릴때는 끝점의 이동으로 모양을 바꿀수 있다.
이러한 제한에서는 모양에따라, 각 상테에 따라 객체를 분리하는 것이 더 좋을 것이고, 각자 필요로하는 상태를 유지 해야한다. 서로 다른 모양은 서로다른 Manipulator의 sub클래스를 사용해서 움직여야 한다.이러한 Manipulator클래스와 상속은 병렬적으로 이루어 진다. 다음과 같은 모양 같이 말이다.
Figure클래스는 CreateManipulator라는, 서로 작용하는 객체를 생성해 주는 factory method이다. Figure의 sub클래스는 이 메소드를 오버라이드(override)해서 그들에게 알맞는 Manipulator sub클래스의 인스턴스를 (만들어, )반환한다. Figure 클래스는 아마도 기본 Manipulator인스턴스를 (만들어,) 반한하기 위한 기본 CreateManipulator를 구현했을 것이다. 그리고 Figure의 sub클래스는 간단히 이러한 기본값들을 상속하였다. Figure클래스 들은 자신과 관계없는 Manipulator들에 대하여 신경 쓸필요가 없다. 그러므로 이들의 관계는 병렬적이 된다.
Factory Method가 두게의 클래스의 상속 관계에서 어떻게 이러한 연결과정을 정의하는지 주목하라. 그것은 서로 고유의 기능을 부여시키는 작업을 한다.
1. 두가지의 커다란 변수. Factory Method 패턴에서 두가지의 중요한 변수는 '''첫번째''' Creator 클래스가 가상 클래스이고, 그것의 선언을 하지만 구현이 안될때의 경이 '''두번째'''로 Creator가 concrete 클래스이고, factor method를 위한 기본 구현을 제공해야 하는 경우. 기본 구현이 정의되어 있는 가상 클래스를 가지는건 가능하지만 이건 일반적이지 못하다.
'''첫번째''' 경우는 코드가 구현된 sub클래스를 요구한다. 왜냐하면, 적당한 기본 구현 사항이 없기때문이다. 예상할수 없는 클래스에 관한 코드를 구현한다는 것은 딜레마이다. '''두번째'''경우에는 유연성을 위해서 concrete Creator가 factory method 먼저 사용해야 하는 경우이다. 다음과 같은 규칙을 이야기 힌다."서로 분리된 수행 방법으로, 객체를 생성하라, 그렇게 해서 sub클래스들은 그들이 생성될수 있는 방법을 오버라이드(override)할수 있다." 이 규칙은 sub클래스의 디자이너들이 필요하다면, 그들 고유의 객체에 관련한 기능으로 sub클래스 단에게 바꿀수 있을음 의미한다.
2. ''Parameterized factory methods''(그대로 쓴다.) Factory Method패턴에서 또 다른 변수라면 다양한 종류의 product를 사용할때 이다. factory method는 생성된 객체의 종류를 확인하는 인자를 가지고 있다. 모든 객체에 대하여 factory method는 아마 Product 인터페이스를 공유할 것이다. Document예제에서, Application은 아마도 다양한 종류의 Document를 지원해야 한다. 당신은 CreateDocument에게 document생성시 종류를 판별하는 인자 하나를 넘긴다.
클래스 식별자를 읽고서 Framework는 식별자를 Create에게 넘기면서 호출한다. Create는 적당한 클래스를 찾고, 그것을 객체의 생성에 사용한다. 마지막으로 Create는 객체의 Read 수행을 호출하여 디스크에 정보를 저장하고, 인스턴스 변수들을 초기화 한다.
Parameterized factory method는 Product를 상속받은 MyProduct와 YourProduct상에서일반적으로 다음과 같은 형태를 가진다.
if (id == MINE) return new MyProduct;
if (id == YOURS) return new YourProduct;
- LIB_3 . . . . 64 matches
우선 내가 만든 프로그램에서 스케줄링을 담당하는 큐는 대략
WAIT 와 SUSPEND 그리고 FREE 큐로 나누어 질 수 있다.
SUSPEND는 인터럽트를 대기하던가? 아님 뭔가를 기다리기 위해 실행이 중지된 상태? 자원이겠찌?
#if !defined(LIB_SCHE_CPP)
그리고 나서 지금의 가장 높은 태스크를 스타트 TCB로 지칭해 준다.초기화 끝[[BR]]
pSuspend_heap[count] = NULL;
suspend_tcb_ptr = 0;
if ( priority < LIB_MIN_PRIORITY || priority > LIB_MAX_PRIORITY ) return; <--------- 우선순위가 지랄 같으면 그냥 끝낸다.
// Init the TCB by argument <----- 함수에서 얻은 변수들로... 초기화...ok???
쉽게 말해 손으로 태스팅 할 때 큐에 태스크를 넣었다 빼면 되는 거 같지만 컴퓨터가 컨텍스트 스위칭을 위해
if ( pReady_heap[temp_count]->priority > pReady_heap[tree_parent(temp_count)]->priority ){
else {
SUSPEND 된 TASK 들을 다시 살려주는 고마운 펑션
if ( priority == 0 ) return;
for ( int i = 0; i<= suspend_tcb_ptr ; i++ ) {
if ( pSuspend_heap[i]->priority == priority ) {
pReady_heap[ready_tcb_ptr] = pSuspend_heap[i];
pSuspend_heap[i] = pSuspend_heap[suspend_tcb_ptr];
pSuspend_heap[suspend_tcb_ptr] = NULL;
suspend_tcb_ptr--;
- ProgrammingPartyAfterwords . . . . 63 matches
2002년 5월 19일 서강대에서 있었던 ["프로그래밍파티"] 후기 (see also ProgrammingPartyPhotos)
다음은 파티 전체(파티 준비부터 뒷풀이 막판까지)에 대한 공동 기사로 가능하면 NoSmok:다큐먼트모드 를 지킨다 -- 자기는 분명히 알고있는 사건(event)인데 여기에는 아직 기록되어 있지 않다면 그냥 적당한 자리(!)에 직접 보충해 넣도록 하고, 묘사가 미진하다면 좀 더 치밀하게(!) 가다듬는다. 페이지 마지막에는 NoSmok:쓰레드모드 로 개인적인 감상, 소감 등을 적도록 한다.
''보통, 전체 모임/파티 동안 한 사람이 참여하는 대화는 전체 발생 대화로 볼 때 극소수에 해당합니다(게다가 동일한 대화에 참여했으면서도 인식하는 것과 기억하는 것에는 개인차가 큽니다). 각자가 나눴던 이야기 같이 사실적인 것들은 모두 다큐먼트모드로 여러사람이 협동을 해서 채워나가도록 하면 좋겠습니다. 집합적 기억이 되는 것이죠 -- 개개인이 갖고있는 기억의 전체 합집합. "내가 있었던 테이블에서는 어쩌구에 대해 이야기 했는데, 저쪽에서는 저쩌구를 이야기 했군! 이야, 재미있는 걸. 저쩌구에 대해 좀 더 써달라고 부탁해야겠다." 그러면 모두가 이득을 볼 것이고, 심지어 그 뒷풀이에 오지 못했던 사람들도 뭔가 얻는 것이 있을 겁니다. --JuNe''
금요일, 토요일, 토요일 밤 약간 깊숙히 - 이번 심사와 Mentor 역할을 맡은 김창준, 채희상, 강석천은 임시 위키를 열고 문제 만들기 작업 관련, Moderator 로서의 역할을 정했다.
12시 구근은 신촌역에 도착하여 ZP 사람들을 기다림. 12시 30분쯤 모두 모여서 밥먹으러 감. 밥을 다 먹고, ZP 일행등은 쵸코파이와 과자 2봉지를 사가지고 Sun 랩으로 향하였고, 1시 30분쯤 Sun 랩에 도착하였다. 인수는 신촌에서 희록이형,구근이형,석천이형을 만나 밥을 먹고 서강대로 갔다.
1시 40분 경 문을 열고 들어오는 이가 오늘의 Mentor 중 한명인 김창준씨와 신제용씨였다. 그들은 오늘 프로그래밍 파티의 경기 규칙이나 룰, 시간 같은것을 말해 주었다. 2시 10분경 상협군이 헐러벌떡 뛰어 왔다. 쫌 전에 창섭이와 혁기도 왔다.
2시가 조금 넘어서 파티를 시작했다. ZP팀 중에 불참 인원이 두 명이 있어서 인원 조정을 했다. 그 결과로, 다음과 같은 배정이 되었다. 각 팀에는 한 명 씩의 멘터(도우미)가 붙었다. 그들은 문제 해결에 관련된 직접적인 조언은 피하고, 개발 과정이나 여타 문제에 대한 도움을 주기로 했다.
먼저, 김창준씨가 앞으로 나와서 인사를 하고 이 파티의 의의를 설명했다. 그리고는 바로 파티의 스케쥴과 간략한 참가방법을 설명했다. 멘터(Mentoror)와 퍼실리에이터(Facilliator)의 역할, 소개 등이 있었고, 심사방법이나 심사 요소에 대한 자세한 설명이 있었다..
다음으로는 요구사항에 대한 해설이 있었다. 당시의 문제는 http://no-smok.net/seminar/moin.cgi/ElevatorSimulation 에 가면 볼 수 있다.
먼저 ZP#1팀은 Mentor 채희상씨와 함께 요구분석을 시작하였으나 어떤 방법으로 이루어져야 하는지 어떤 형식으로 하여야하는지 서로 명확히 몰랐기 때문에, 아무도 말을 하지 않고 있었다. 희록님이 생각하기에 '이렇게 아무말도 없다면, 시간만 흘러가게 될 것이다. 내가 약간 분위기를 만들어야겠다'는 생각을 했다. 그래서 "자 우리 모두 자기가 생각하는 요구사항을 말해보기로 하자"라고 하였고, 우리는 서로의 요구사항에 대한 논의가 있었다.
시간이 좀 흘렀을 때, 희록님의 생각은 '우리 모두 이 프로그램을 짜는데서 왜 알고리즘이 사용되어야 하는지 모르고 있다. 이는 문제를 제대로 파악하지 못했다는 것을 의미한다' 라는 생각을 하였다. 그 때, 누군가가 입력 형식에 관해서 Mentor에게 물었다. 하지만 아쉽게도 입력형식에 대해서 명확한 답을 얻을 수는 없었지만, 몇가지 새로운 사실들을 알수 있었다. 하지만 진행은 계속 지지부진하게 되었다. 희록님은 다시 그것을 깨고자 "CRC카드를 한번 사용해서 문제를 다시 한번 생각해보자"라고 하였다. 우리는 CRC카드를 작성하기 시작하였고, 우리가 CRC카드를 이용해서 시뮬레이션을 실행해보고서는 요구사항을 분석하는데는 크게 도움이 되지 않았지만, 우리가 프로그래밍시에 어떤 객체들이 필요할지와 그 속성들에 대해서는 약간 명확해졌다.
그 때쯤인가, ZP#2팀의 Mentor이신 김창준님이 '슬쩍' 오셔서 Design이 잘 떠오르지 않는다면, 비슷한 아키텍쳐를 가진 문제를 풀어서 그 아키텍쳐를 재사용해 보라는 말씀을 하셨다. 하지만, 우리 팀원중 아무도 그것에 대해선 이후에 언급하지 않았다.(묵살되었다. --) 그러다가 우선 요구분석에 대한 이해를 높이고, 디자인을 상세화하기 위해서(디자인->코딩->디자인->코딩 단계를 반복하였다.) 코딩을 시작하기로 하였다. 상협군과 인수군은 매직펜을 맡았고, 희록군은 키보드를 맡았다. 희록군은 Unix환경에서의 Eclipse의 작업 문제로 인해 심각한 스트레스를 받고 있었다. 그러다가 컴퓨터를 한번 옮겼으나 그 스트레스를 줄이진 못했다. 아무래도 공동으로 프로그래밍 하는거에 익숙하지가 않아서 좀 서투룬 감이 있었다. 그래도 해야 겠다는 생각을 하고 문제의 요구 사항을 분석하고 어떻게 설계를 해야할지 의논했다.
이 때 ZP#2팀은 Mentor 김창준씨가 지켜보는 가운데 바로 요구사항 분석에 들어갔는데, 이를 보던 김창준씨가, "저라면 시간 계획을 먼저 세우겠습니다"라고 말을 해서 그들은 이에 동의하며 시간계획을 먼저 짰다. 20 분 정도를 요구 분석, 다음 20분을 디자인, 그리고 남은 시간엔 구현과 디자인 반복하기로 계획을 세웠다. 구현, 디자인 반복을 하는 방법은 멘터의 조언에 따라 두명이 짝으로 구현, 나머지 한명은 디자인 다듬기로 하였다. 팀원은 긴장한 채로 문제에 집중하려 애썼다.
요구분석을 마치고 디자인을 하기로 한 시간이 되었기에 팀원들은 한 테이블에 모였다. 그리곤 CRC 카드를 이용해서 디자인에 들어가기 시작했다. 암묵적으로 ["구근"]님이 ZP#2의 무게중심이 되어서 디자인 회의가 시작되었다. 어떤 클래스들이 필요한가, 어떤 이벤트를 누가 발생시키고 그 이벤트를 누가 알아야하는가에 대한 이야기가 오가는 가운데 ["데기"]는 문제파악 조차 제대로 안되어서 무척 혼란스러웠다. 서로 요구분석 이해에 차이가 있었음에도 불구하고 디자인은 계속 진행되었고, 시간은 계속 흐르고 흘러서 구현을 시작하기로 한 시간을 훌쩍 넘어버렸다.
한편 실습실 구석에서 Mentor 1002씨가 함께한 Moa팀은 처음에 책상 하나를 두고 4명이서 서로 대화를 하면서 Requirement 를 이해해나갔다. 그러다가 중간에 2명은 Person - Elevator 의 전반적 구조를, 2명은 Elevator 알고리즘에 대해 생각을 전개해 나갔다.
'오.. 대화진행속도가 빠르다!' 1002 가 본 moa 의 마치 평소 손발을 맞춰본 팀같았다. 근데, 토론하는 것을 들으면서 1002가 생각하기엔 '음.. 근데, 너무 초반에 Algorithm-Specific 하게 생각하는게 아닐까. 일단은 문제를 간단한 문제로 분해하는(보통 1002가 'Design' 을 간단하게 정의하라고 할때 저렇게 표현한다.) 과정이 더 중요할것 같은데'
중간 4시가 넘어간 즈음, 1002는 시간이 지체된다고 판단, 프로그래밍에 들어가기를 유도했다. '처음부터 디자인을 해 나가시는 방법도 있겠지만요. 디자인을 도출해 내기 위해 프로그래밍을 병행하시는 방법도 있습니다. 대강의 디자인이 나왔으면 약간 코딩해보신뒤 다시 모여서 재디자인해보세요.'
팀의 사람수가 4명인 관계로 다른팀이 컴퓨터 1대를 쓰는 동안 두 팀으로 나누어 컴퓨터 두대를 이용, 작업을 해 나갔다. 다른 팀을 많이 둘러보진 않았지만, Pair 간의 대화가 잘 이루어지고 있었다. 단, 두팀으로 나누어진 관계로, 서로의 작업부분에 대한 통합부분에 대해서는 특별한 진행을 하지 않는 것 처럼 보였다.
멘터인 1002는 '저렇게 하면 나중에 main 함수 어떻게 만들까.. OO Style 이라면 main 루틴 부분이 좀 짧긴 하겠지만, C 라면 좀 힘들지 않을까' 라고 생각, 5시가 가까워지는 4시 20분쯤에 각 모듈 부분을 통합할것을 제안 했다. 통합 중간중 의견 조율을 하는 중간에 ZP#2 멘터인 김창준씨는 두 팀으로 나누어졌을 때 서로 엇갈려서도 Pair 를 바꿔보도록 제안, Moa 의 두 팀은 한명씩 서로 바꾸어보기도 하며 일을 진행해 나갔다.
각 팀별로 전지에 자신들의 디자인을 표현하고 모두에게 그 디자인에 대해 설명하는 식으로 발표를 하였다. 각 팀별 디자인의 특징을 볼 수 있었다. '뭘 잘못했느냐?'가 아니라 '어떻게 해야 잘할 수 있었을까?'와 같은 '올바른 질문'을 던짐으로써 더 배울 수 있다는 것을 확인할 수 있었다. 그리고 발표할때 What 과 How 를 분리하고 What 만을 전달해야 한다는 것이 중요하다는 것을 관찰할 수 있었다.
- ZPBoard/AuthenticationBySession . . . . 63 matches
Session은 Cookie가 클라이언트 측에서 정보를 관리하는것과는 달리, 서버측에서 정보를 관리합니다. Session과 Cookie가 왜 나타났는지를 알려면 그 근원인 HTTP 프로토콜에 대한 약간의 이해가 필요합니다.
'''HTTP 프로토콜'''은 stateless 프로토콜입니다. connectionless 프로토콜이라고도 합니다. 예를 들어, 웹브라우저를 통해 제로페이지에 접속한다고 봅시다. 클라이언트 입장에서는 자기 자신이 연속된 요청(게시물 보기나, 위키 사용등)을 보내는것을 알지만, 서버 입장에서는 매번 온 요청이 누구로부터 온 것인지를 알 방법이 없습니다. '''왜냐하면''' HTTP 프로토콜의 태생이 연결지향적이 아니고, 상태를 알 수 없기 때문입니다.
클라이언트와 서버간에 지속적인 유대관계를 맺고 싶을때 사용하는 방법으로 Cookie와 Session이 등장하게 되었습니다. Cookie에 대한 이야기는 논외로 하고, Session을 살펴보면, 이는 흔히 ''세션아이디'' 또는 ''세션키''라 부르는(이하 세션아이디로 통일) 값을 쿠키에 설정해놓고, 클라이언트의 요청시 쿠키에서 세션아이디를 가져와서 내부적인 검토과정을 거치고, 이에따라 유효한 요청 또는 무효한 요청을 외치게(인증하게)됩니다.
서버에서는 이 세션아이디를 바탕으로 인증 작업을 하기만 하면 되니, 정보를 얻는 방법으로 데이터베이스를 사용하건 파일시스템을 사용하건 그 이용에 제한을 가하지 않습니다.
사용자가 '''로그인'''을 한 후에, '''세션아이디'''를 생성해서 '''세션값'''을 설정합니다. 이를 통해 클라이언트(ie. 웹브라우져)가 요청을 할때 '''세션아이디'''를 얻어오고, 서버측에서는 인증을 하게 됩니다.
예를들어, 3분 46초동안 아무런 사용자의 요청이 없을때 자동으로 로그아웃처리되는 서비스를 가정하고 다음의 시나리오를 봅시다.
i. 처음 사용자가 로그인을 합니다. 이때 세션 아이디를 생성해서 저장하겠죠? 데이터베이스를 이용한다고 가정하고, 생성한 세션아이디를 키 값으로 해서 부가적인 정보를 기록합니다. 여기서는 현재 요청이 온 시각을 기록하면 되겠군요.
i. 사용자가 '김돈규의 3분 45초간의 고백'을 듣고 재빨리 다시 서버로 요청을 보냅니다.
i. 서버가 세션아이디를 통해 이전 요청 시각과의 차이를 구해보니 1초 차이로 '''유효'''한 서비스 요청임을 부르짖습니다. 다시 현재 시각을 기록합니다.
i. 이번엔 사용자가 화장실을 갑니다. 변비였습니다. 5분후에 돌아와서 서버로 요청을 보내지만, 이미 때는 늦었습니다. 서버가 해당 요청에 대해 '''무효'''를 선언하고, 로그인 화면을 보여줍니다.
이 예는 세션이 사용되는 기능에 초점을 맞춰 가장 단순한 경우를 이야기 한 것입니다. 실제로는 고려해야 할 부분이 더 있겠죠?
Q. 브라우져를 닫으면 자동으로 로그아웃되는거 아닌가요?
A. maybe or maybe not. 일반적인 경우, 세션에서 사용되는 쿠키는 브라우져를 닫으면서 보통 삭제되게 되어있으므로 그렇다고 볼 수도 있지만, 엄밀히 이야기해서, 로그아웃처리가 되는것은 아닙니다. 해당 세션키를 통해 다시 요청한다면, 서비스를 받을 수 있습니다. 이 모든 일은 HTTP 프로토콜 특성상 브라우져를 닫는 등의 행위가 오프라인에서 이루어지는것이기 때문입니다. (배틀넷을 하다가 랜선을 뽑으면 디스커넥이 되지만, 웹서핑도중 랜선을 뽑는건 어떠한 영양도 미치지 않는것과 같습니다.)
=== 로그인 하기 ===
다음은 로그인을 하는 예제이다.
''이 예제는 브라우져를 닫는것만으로 로그아웃이 안될수도 있고.. 그걸 고쳐야 한다는 건가요? --["상규"]''
''Thread로 Go Go :)''
// Auth 라는 Session 변수가 없다면 인증이 안된 경우 이므로...
if(!isset($_SESSION[Auth]))
이곳에 회원 인증이 되지 않은 경우에 보여줘야 할 것을 넣는다. (회원 인증 폼 등...)
- 데블스캠프2008/등자사용법 . . . . 63 matches
고기압의 가장자리에 들겠습니다. 전국이 구름이 많겠으나, 제주도와 남해안지방은 흐리고 한때 비(강수확률 40%)가 조금 오는 곳이 있겠습니다.남해안지방에는 바람이 다소 강하게 부는 곳이 있겠습니다. 바다의 물결은 남해먼바다와 제주도전해상에서 2.0~3.0m,그 밖의 해상에서는 0.5~2.5m로 일겠습니다.오늘과 내일(17일) 해상에 안개끼는 곳이 많겠습니다. * 예상 강수량(16일 17시부터 17일 24시까지) * - 제주도, 전라남도해안: 10~50mm- 경상남도남해안: 5~30mm
이 끈의 길이를 10미터 늘리고 원형으로 다시 당길때 생기는 틈 사이로 지나갈 수 있는 가장 큰 물체는 다음 중 무엇일까.
Ending
미룰때 까지 미루다 마지막에 긴박감으로 ㄱㄱㄱㄱㄱ
논다 < 프로젝트를 열심히한다 < 시험을 잘본다 < 잘 찍는다
<165.194.17.136-Ending>
교과서 위주로 공부했습니다
순의형 도와준건 고마운데 벼락치기로는
평소에 꾸준히 예습 보다는 복습 위주로 공부하고
이론 한번 읽어보고 문제를 푸는 방법으로 하면 100점
수능도 1개월 벼락치기로
족보40%도움40%운10%실력10%로 구성
<165.194.17.136-Ending>
한번에 여러개에 집중하는 건 시간상 불가능한 경우가 많다
애당초 불가능할 정도로 많은 일을 벌려놓는 것
노트는 복사보다 손으로 배끼는게 더 도움이 많이 되요
1.노트는 복사를 하는것 보다 손으로 배끼는게 이해가 더 잘되요
<165.194.17.136-Ending>
이론보다는 그냥 공과 맞딱뜨리는게 중요하다. 그러니까 이론에 매달리지 않고 실전 중심으로 해라 이런거? 참 창의적인듯
하고싶은대로 하면 된다
- 데블스캠프2009/목요일/연습문제/MFC/서민관 . . . . 63 matches
#ifdef _DEBUG
#endif
END_MESSAGE_MAP()
END_MESSAGE_MAP()
if (pSysMenu != NULL)
if (!strAboutMenu.IsEmpty())
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
else
// If you add a minimize button to your dialog, you will need the code below
if (IsIconic())
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
else
if (sign == 0)
else if (sign == 1)
#ifdef _DEBUG
#endif
END_MESSAGE_MAP()
END_MESSAGE_MAP()
- 새싹교실/2011/Noname . . . . 62 matches
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* Hello World! 프로그램 짜보기
* 키보드로부터의 입력받기 : scanf함수
* 모이는 시간을 잘못 알려주어서 한사람 밖에 오지 못 하였습니다. 한 사람밖에 오지 못 하여서 진도를 많이 빼지 못 하고 복습과 질문 위주로 공부를 하였습니다. 시간을 확실하게 정하고, 다음부터는 애들이 나오지 못 하여도 진도를 위주로 공부를 해야겠습니다. - [박정근]
* 연산자의 종류 : 산술, 대입, 관계, 증감, 논리, 비트, 삼항조건 연산자
* 삼항조건연산자 - ( [조건식]? 명령어1:명령어 )
* 연산자의 종류들과 #define함수의 활용법에 대해서 배웠습니다. 아직 C프로그래밍이 익숙지 않아서 간단한 함수도 어렵게 느껴졌다. 여러 예재로 우선 C프로그래밍에 익숙해 져야 겠다. 수업이 끝난 후 복습을 꼭 해야겠다. - [김창욱]
* 학생들이 이해력이 좋은건지 제가 못 가르치는 건지 금방금방 할 이야기가 다 다르네요;; 다음부터는 좀 더 열심히 공부하고 와서 가르치도혹 해야겠습니다. 또 피드백으로 과제같은 것을 내는것도 괜찮을 것 같네요 준배해 봐야겠습니다. - [박정근]
* 제어문(if문, switch문)
* if문
if (expression) {
else {
* else if의 경우에는 if-else와 다음 if-else를 합쳐놓은것!!
* switch의 경우 statement 에 break의 사용을 까먹지 맙시다.
* 저번에 제어문 할 때에는 창욱이가 없었지만 오늘은 창욱이만 나왔기 때문에 제어문 수업을 다시 했습니다.생각보다 이해가 빠르네요. 예제라던가 문제등을 좀더 준비해가야겠습니다. 또 진도를 더 빨리빨리 빼서 중간고사에 맞출 수 있도록 맞추어 봐야겠습니다. 이제 제어문 끝냈고 드디어 반복분을 할 차레입니다. 개인적으로 별찍는 문제가 가장 재미있었기에 다음번에는 그 문제를 풀어보도록 합시다ㅎㅎ - [박정근]
* If구문,If-Else구문,Switch구문에 대해서 배웠습니다. 역시 처음 배우는거라 예제들에 잘 적용하지 못했습니다. 하나하나 배워가면서 코딩하는게 너무 신기하게 느껴지고 수업시간이 너무 짧아 아쉽습니다. 수업시간이 길거나 자주 수업을 할 수 있으면 좋겠습니다. If구문으로 해야하는 예제들과 Switch구문으로 해야하는 예제들의 차이점을 조금 깨달았습니다. Switch구문으로 코딩해야 더 쉬운 예제들과 If구문으로 코딩해야 더 쉬운 예제들을 구별할 수 있는 능력을 키워야 겠습니다. - [김창욱]
* expr1 에는 변수 초기화. expr2에 조건. expr3에 조건문을 탈출하기 위한 문장.
expr2조건 확인 -> 조건에 충족될때 statement실행 -> expr3 ->
expr2조건 확인 -> 조건에 충족될때 statement실행 -> expr3 ->
- Bigtable기능명세 . . . . 61 matches
로드밸런싱/태블릿 서버 복구
커밋로그에 쓰기 ★★★
== 로드 밸런싱 ★★★★★ ==
1. 평균으로 트리거를 결정하지만 값이 일정 수치보다 작다면 로드 밸런싱은 일어나지 않는다.
1. source는 target에게 정해진 갯수만큼의 태블릿을 리스트로 이름전달 ( 연속된 태블릿을 전달한다)
1. target에게서 제대로 전달받았는지 확인
1. 전달받은 태블릿 리스트로 태블릿들을 읽어온다
1. 클러스터의 로드가 적어서 하나의 TS가 커버할 수 있는 정도도 로드 밸런싱이 필요한가?
1. target이 제대로 전달받았는지 어떻게 알지?
1. 더 나은 로드밸런싱 정책필요
1. 로드밸런싱시 전송할 태블릿 개수 어떻게?
1. 마스터는 주기적으로 TS들에게서 heartbeat를 받는다
1. 마스터는 주기적으로 TS들의 태블릿 리스트를 스캔한다.
1. target들을 정한다. (어떤 기준으로? 몇개나?)
1. 로드 밸런싱 중간에 target이 다운된다면 : 마스터는 로드밸런싱을 위해 다른 target을 선택. 이후 TS 복구를 한다.
1. 로드 밸런싱 중간에 source가 다운된다면? : TS 복구
태블릿의 삽입(혹은 split)이 있을 때마다 마스터(또는 TS 스스로)가 b+ 트리를 갱신한다.
1. 클라이언트의 ROW의 읽기 요청이 들어온다 (ISSUE 6. 클라이언트는 어떤 형식으로 TS에게 ROW를 요청할 것인가)
1. merge결과를 String의 리스트로 클라이언트에게 돌려준다
1. (태블릿은 같은 ROW를 담고 있으므로 클라이언트는 트리탐색을 통해 TS를 할당받는다)
- Cpp에서의멤버함수구현메커니즘 . . . . 61 matches
cout << "Create! id = " << id << endl;
cout << "I suicide. Id is " << id << endl;
cout << "My Id is no " << id << endl;
cout << "say Hello" << endl;
cout << endl << ":::::: Case 1 - 동적할당 " << endl;
cout << endl << ":::::: Case 2 - id 확인" << endl;
cout << endl << ":::::: Case 3 - 포인터 NULL로 하고 메소드 호출하기 " << endl;
cout << endl << ":::::: Case3 - 지역변수로 선언" << endl;
cout << endl;
:::::: Case 3 - 포인터 NULL로 하고 메소드 호출하기
:::::: Case3 - 지역변수로 선언
=== 각각의 경우에 따른 테스트 ===
==== Case2 - 포인터 NULL로 하고 메소드 호출하기 ====
==== Case3 - 지역변수로 선언 ====
C++의 목표는 기존 C의 성능을 해하지 않으면서 OOP를 섞는 것입니다. 필연적으로 OOP적 사고에서 용납하기 어려운 코드를 실행할 수 있습니다. OOP를 C의 구현 위에서 해야 됩니다.
* 첫째로, C++의 클래스와 인스턴스 생성을 알아봅시다.
* 둘째로, 인스턴스에 귀속된 멤버 함수들을 실행하는 것을 생각해 보겠습니다.
* 마지막으로, 위의 문제제기에 대해 분석해 봅시다.
자신이 컴파일러가 되었다고 가정해 봅시다. 우리가 class를 선언하고 컴파일하려면 프로그램의 영역에 class 의 Data 들을 저장할 수 있는 "class 틀"의 정보를 담아 놓을 곳이 필요합니다.
C++은 Strong typed language 이므로 컴파일 시간에 모든 형이 선언되고, 사용되는 것을 검증할 수 있습니다. 하지만 이는 다음과 같은 지역 변수에 국한합니다.
- Ruby/2011년스터디/세미나 . . . . 61 matches
* 계산기로서의 루비
*루비의 모든것은 객체로써 존재한다
* 루비에서는 클래스명이 대문자로 시작해야한다!(아니면 에러)
* initialize 함수로 객체 선언하기
end
end
end
end
end
end
end
end
end
* 메서드는 {} 대신 def/end로
* if/else로 예외 처리해보자
* rescue로 만들기
== Ruby로 만들어보기 ==
* 를 하려고 했지만 tcl 문제로 CodeRace로 변경
* A마을에서 B마을로 가려면 강을 건너야한다.
* 레이튼 교수가 배를 타고 건너 B마을로 건너가게 하자.
- 데블스캠프2005/게임만들기/제작과정예제 . . . . 61 matches
그앞의 주석이 가르키는데로, 1~10까지의 색상을 지정할 수 있다.
와 같은 형식으로 출력할 블럭을 지정하며, 0은 블럭이 없는 것이고 그 이외의 값은 해당하는 색상의 블록이 들어가게 된다.
block_next변수는, 메인창 옆의 next아래에 블럭을 출력하며 가로3세로4의 크기를 출력할 수 있다.
2.랜덤으로 블럭을 생성한 후 next창에 출력한다.
n칸 띄우고, n칸만큼 블럭을 채우는 식으로,
예를 들어 T는(0,3)(1,1)(1,1)이렇게 표시할 수 있다. 방향에 따라, 가로가 아닌 세로부터 시작하거나 해서 바꿔줄 수 있다.
그리고 다른 방법으로는 그냥 편하게 블럭의 크기만큼 배열을 지정해서 있는곳에는 숫자를 넣고 아닌곳에는 0을 넣는 방식이 있다.
예제) 일자모양을 배열으로 표시하는 방법. 소스가 길어지므로, 헤더파일에 넣기를 권장한다.
== 랜덤으로 블럭을 생성한 후 next창에 출력하기 ==
테스트를 위해서는 key_Left()와 같은 변수안에 넣고, 랜덤으로 만드는 함수를 호출한후, 호출해 보면 된다.
if (0!=block_type[prv_block][0][i][j])
if (0==block[3+i][16+j])
else
game_end();
다 만들어 진 후, 왼쪽, 오른쪽 방향키에 알맞은 인자를 넣어서 함수를 넣고, now_time()에 블럭을 아래로 내리는 함수를 호출하도록 하자.
예제) 두번째 방법을 이용한 모습중 하나. -1은 왼쪽 0은 아래, 1은 오른쪽으로 움직인다는 뜻으로 인자를 넘겨받는다.
if (0!=block_type[now_block][shape][i][j])
if (i>=side[0][j] && 0==swit[1][j])
if (j>=ground[i] && 0==swit[0][i])
// 블럭이 움직일 수 있는가를 판단한다. 못 움직일 경우에는 1을 리턴하고 종료한다.
- 정모/2011.3.14 . . . . 61 matches
* [김수경]이 대안언어축제에서 배워온 ''진실 혹은 거짓''으로 IceBreaking 겸 1주일 회고를 진행.
* 이 때 두가지는 실제 있었던 일로 한가지는 거짓말로 작성한다.
* 질문이 끝나면 어떤것이 거짓인지 다같이 맞춰보고
* 스스로 커리큘럼을 만들기 어려운 재학생들에게 레퍼런스를 제공하기 위해 만든 것.
* 피드백 개수로 판단.
* 위키에 피드백을 남기지 않더라도 어떤 방법으로든 새싹 교실을 열심히 진행했음을 증명하고 ZeroPage의 발전에 기여하면 지원받을 수 있다.
* 예를 들면 모든 강의를 영상으로 녹화하여 공개한다던가
* 혹은 새싹 교실에서 진행한 프로젝트를 공개한다던가
* 올해 들어 ZeroPage에 다양한 새로운 시도들을 하고 있다. …그러다보니 시행착오도 많다.
* 세미나 테스트 : 새내기들이 얼마나 알고있는지 효과적으로 판단할 수 없었다.
* 새로운 시도 : 트레이드
* 학생들 간의 이해도나 선행 지식이 차이나는 경우 혹은 시간이 안 맞는 경우 모두 트레이드가 가능.
* 제로페이지에 대한 기여도를 회원 기준으로 본다는 의미입니다^^ -[서지혜]
* 아래에 후기라는 소제목에 태진군이 일등으로 적은게 피드백입니다~ '''피드백은 어떤 활동에 참여하고, 거기서 배운 사실, 느낀점, 개선방안등을 위키에 글로 남기는 활동을 통칭합니다''':) - [서지혜]
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 중반무렵에 들어가긴 했지만, ZP모임에 처음, (그리고 아마 11학번 최초!) 참석해 봤어요. 들어갔을때는 선배들이 '대안언어축제'에 대해서 말하고 계시던데, 종하형한테서 몇마디 들었던 터라 그게 그거일거라 생각하고 들었지요. 제 추측에는 다른 컴퓨터 언어에 대한 세미나 같은거였으리라 생각하는데... 아무튼, 그렇게 몇마디 듣고서 ZP정회원이 되는 방법 (피드백 10개를 받으면 정회원이 된다! 라고 하는데, 정확히 무엇인지는 다시 알아봐야겠구요. 정회원 자격유지 요건이 뭐 2번 하는거라고 했는데.. 돈으로도 떼울 수 있다는 소리는 기억나네요. 이런 정모, 재밌게 진행된다면 정말 재밌게 즐길 수 있을거 같아서 계속 참여해보고 싶네요.
다음주에 현이형이 무슨 프로그램가지고 단어를 랜덤하게 뽑은 후에 이야기를 만들어보는걸 해본다고 하던데, 오늘 처럼 교양학교후에 참여해서 볼 수 있으면 좋겠네요.
* Ice Breaking에서 지난 주에 하였던 일 3가지를 적되 1가지는 거짓으로 적어 맞히는 형식으로 진행되었습니다. 제가 했던 거짓말은 C언어의 low-level적 특성을 잊었다는 거였는데...열혈강의 책 첫장을 보면서 새로이 책을 보는 것 같은 기분이 들었다는 것에 충격을 많이 받았습니다. 새싹 교실 수업에 피해가 없도록 해야할 필요성을 느꼈습니다. 황현 학우의 OMS는 중간에 들어가서 잘 보지 못했습니다 ㅠㅠ 새싹교실에 추가 반배정이 있었는데 인원수가 늘은 만큼 수업 시 글자가 안보인다거나 목소리가 안들리는 피해가 없도록 잘 준비해 갈 계획입니다. - [강소현]
* Fact는 중간중간에 껴넣을 것임으로 생략합니다. 중간에 가느라고 대안언어축제 공유를 참가하지 못한게 아쉬웠어요ㅠ_- IceBreaking에 충격적 진실 소재가 있어서 더 즐거웠어요 (조폭이었던 형님과 술먹음 ㅋㅋㅋㅋ) 현이의 OMS 진행 때 전자교탁 컴퓨터가 원활하게 돌아가지 않아서 시간이 좀 깎아먹힌게 아쉬웠어요. 전자교탁 좀 안된다 싶을때 기호 컴퓨터로 바로 세팅 시작했으면 더 좋았을거 같아요. (어차피 전자교탁으로 해도 퀵타임은 깔아야하지 않았나;) 제 생각이지만 본래 발표같은거 준비할때 학교 등의 사전답사가 안된 장비는 믿지 않는게 정석입니다. 다음 정모때 세미나 섭외했는데 많이들 오셨으면 좋겠어요 - [지원]
- VMWare/OSImplementationTest . . . . 60 matches
gcc였습니다. 하지만 저는 windows 환경하의 vc 개발을 주로 해왔으므로 무척
스스로 자신의 커널 디버거를 만들어야 하는 거 같습니다. ) 에디팅과 컴파일
80586 (또는 P5 그러나 숫자는 저작권 보호를 받지 못한다길래 이후에 Pentium으로
intel x86 cpu에서 돌던 프로그램도 586에서도 수행되도록 하위호환을 갖게 됩니다.
i386+ 환경으로 만들기 위해서 적어도 다음과 같은 일을 하게 됩니다.
읽어 메모리 0x7C00에 올려 놓은 후 이 코드로 점프하게 됩니다. 따라서 부트섹터
지정 방식으로 수행되지만 80286이상에서는 보호모드가 지원되었고 (최대16M가능)
커널로드 - 부트섹터 코드는 C로된 바이너리 커널을 여러 섹터에서
읽어서 특정 메모리 번지에 로드한 후 그 시작 함수 (엔트리 포인트 함수)로 점프하게
- 우리는 디스켓도 사용하지 않고 바로 컴파일해서 이미지로 뜬 후 VMWare로
로드할 것입니다. ( no 플로피 부팅디스켓, no 리붓, no test machine )
- Netwide Asm으로 at&t 계열 및 intel 계열 둘다 지원하고 target format도
- 간단한 보호모드(세그먼테이션방식) 진입 및 커널 로드 부트로더
- VC로 컴파일될 작은 커널
부트 이미지 뜨는 프로그램 만들면된다.
jnz reset_drive ; Try again if ah != 0
;vc에서 /base 10000 로 헀기 때문에 여기서부터 메모리를 로드
; 해야 한다. ES:BX 로 1000:0000h 이기 때문에 아래처럼 한다.
jnz reset_drive ; Try again if ah != 0
mov ax, 10h ; Save data segment identifyer
- WinampPluginProgramming/DSP . . . . 60 matches
winamp SDK 를 받으면 sample 로 있는 dspecho 에 대한 분석.
기본 뼈대 프로그램은 다음과 같다.
// 실제로 DSP 관련 처리시 호출되는 함수들.
int modify_samples1(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate);
int modify_samples2(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate);
int modify_samples3(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate);
int modify_samples4(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate);
int modify_samples5(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate);
modify_samples1, // DSP 처리시 호출 함수
modify_samples2,
modify_samples3,
modify_samples4,
modify_samples5,
#ifdef __cplusplus
#endif
#ifdef __cplusplus
#endif
// getmodule routine from the main header. Returns NULL if an invalid module was requested,
// otherwise returns either mod1 or mod2 depending on 'which'.
if (this_mod == &mod3 || this_mod == &mod4 || this_mod == &mod5)
- ACM_ICPC/2011년스터디 . . . . 59 matches
* 한 명이라도 못 하면 다음 문제로 넘어가지 않는다.
* Anything else..
* 네.. 이번주는 대략적인 것들을 결정하는 시간이었지요. Jolly Jumper를 제가 그냥 임의로 찍어서 문제로 하기로 해서, 5시 스터디가 끝나자마자 1시간동안 열심히 코딩해서 완성했습니다. ..그런데 Wrong Answer. 으아아ㅏ아아아아ㅏ 2시간동안 진경이랑 삽질하다 얻은 결론: 얘내들은 입출력방식이 달라서 우리가 짠 것만으로 되는게 아니고 계속 입력을 받도록 해야한다. 그리고 입력이 끝나면 프로그램이 종료되어야 하는데 뭐 -1?인가 그게 뜨도록 하려면 띄어쓰기같은 것도 없어야한다. ...결국 답은 대략 맞았지만 저런 형식때문에 2시간동안 고민한거죠. JollyJumpers하시는 형/누나들 참고하세요 ;ㅅ; ..아무튼 ACM스터디가 재밌게 잘 진행되었으면 좋겠어요~ -[김태진]
* 생각치도 못한 표준입출력 때문에 고생했습니다. 저놈의 judge 프로그램을 이해하지 못하겠습니다. 입출력방식이 낯서네요. 입력 종료를 위해 값을 따로 주지 않고 알아서 EOF 까지 받아야한다니... 정올 현역때는 이런 문제 구경하기 힘들었는데ㅜㅜ 제가 뭘 크게 오해하고 있나요. 덕분에 c도 아니고 c++도 아닌 코드가 나왔습니다. 그리고 3N+1 문제가 25일 프로그래밍 경진대회에 1번 문제로 나왔습니다. 허허.. - [정진경]
* 그리고 아직도 효율적인 방안에 대해 고민하고 있습니다. 허허...(미리 고민하고 풀엇다면 정올에서 날로 먹었을것을 쳇.)-[김태진]
* 할머니 생신 파티로 약 한 시간을 늦게 갔는데 친절히 맞아주어 고마웠슴다;ㅅ; 졸리점퍼의 첫 숫자도 포함인줄 알았는데 나중에 보니까 그냥 갯수였더군요. 0을 입력 받으면 갯수가 0이니까 종료되는 거고! 오오..한국어인데도 이해가 안가면 안되는데 ;ㅅ; -[강소현]
* 한 사람 : 다른 언어 혹은 다른 방법으로 JollyJumpers 다시 짜오기
* 6월 1일 12시 01분, 드디어 (제가 짠 알고리즘으로, 소트해서!)졸리점퍼 Accept에 성공했습니다! 여러가지 시도를 해봐도 문제가 없었는데 왜 안되나 하다가, 결국 입출력의 문제.-_-;; 띄어쓰기도 인식하는 더러운...; 사실 코드자체가 너무 복잡해서 그걸 발견하기까지 시간이 오래 걸린 문제도 있으니, 코드를 좀 더 간결화 하는 방법도 생각해보아야 겠다고 생각했어요. 아무튼 전 다 했어요~_~(이 후기가 아니고 수업에 대한 후기를 써야하는데 말이죠;) -[김태진]
* 제 코드에 무엇이 문제인지 깨달았습니다. 입출력이 문제가 아니었어요. 숫자 범위 괜히 0이거나 3000 이상이면 "Not jolly" 출력하고 break하니까 이후에 더 적은 숫자가 들어온 경우가 무시당해서 Wrong Answer(출력 하든 안하든, 0 제외하고 3000 이상일 때만 하든 다 Wrong..;ㅅ;) 입력을 하지 않을 때까지 계속 받아야 하는데, 임의로 끊었더니 그만..... 그리고 continue로 해도 마찬가지로 3000을 제외하고 입력 버퍼에 남아있던 것들이 이어서 들어가서 꼬이게 되는! Scanner을 비우는 거는 어찌 하는 걸까요오;ㅁ;? 쨋든 그냥 맘 편하게 조건 지우고 Accepted ㅋㅋ 보증금 및 지각비 관련 내용은 엑셀에 따로 저장하였습니다. - [강소현]
* 하면 할수록 입출력에 대한 감각이 어느 정도 살아나는 것 같습니다. 처음 접했을 때보단 생소하게 느껴지진 않네요. 처음에는 무슨 삽질을 했길래 그랬을까... 숏코딩을 처음으로 한번 해봤는데 역시 컴파일러에 대한 깊은 이해와 고도의 수학적 사고력이 요구되는듯 싶습니다. 졸리점퍼 71B는 도데체 어떤 코드일지... 처음에는 관심없었는데 해보니까 승부욕이 생깁니다.. 그것보다 해시함수나 B트리 등 심층적으로 다뤄보지 못한 알고리즘에 대한 의욕도 있지만.. 음!! 하고 싶은게 너무나 많네요. -[정진경]
* A Knight's journey 어렵네요 ㅠㅠ 알고리즘 배운지 얼마나 됐다고 리셋이 된거지!?! 왠지 백트래킹을 써야할 거 같지만...잘 못쓰겠는 ;ㅅ; An easy problem 같은 경우 부주의하게 했다가 여러 예외를 고루고루 겪었슴다 ~ㅁ~ㅋ 다음에는 코드 한번 더 살펴보고 넣어야지ㅠㅠ - [강소현]
* 어쩌다보니 다른 글들에 후기를 다 써버렸네요. 삽질하다 진경이의 상큼한 힌트로 UneasyProblem은 An easy problem이 되었네요. 지금 나이트저니 삽질하면서 백트래킹에 대해 자연히(?) 배워가는 중입니다. 반쪽짜리 코드는 구현했으나, 3X4영역에서 H가 나오는... 아직 뭔가 오류들이 산재하는거같네요. 예외처리가 문제인지 배열밖을 다 0으로 처리해서 지정한 배열 밖으로 나가버리는지는 좀 연구해봐야겠어요.. 그리고 다음주에는 부산에 내려갔다 와야해서 참석하지 못할 가능성이 높네요. -[김태진]
* 하루 전날까지 표를 보신 분들은 알겠지만 원래 하려던건 RSA Factorization이었는데 문제가 문제가 있더군요(??). 그래서 어느 조건에 맞춰야 Accept가 될지 알 수도 없고 괜히 168명의 사람들만 도전한거 같지는 않아서 일단은 pass하고 다른 문제를 풀었습니다. 기회가 되면 다음엔 prime을 이용한 문제를 좀 풀어보고 싶어요. 물론 Factorization의 특성상 시간이 오래 걸리는 점이 있어서 좋은 알고리즘을 고안해야 겠지만.. World Cup 문제에 대한 후기는.. 음.. 골라놓고 막 머리싸매고 풀어보니 별거 아닌 문제라 웬지 모임에서 학우들의 원성을 살것만 같은 느낌이에요. 엉엉..ㅠㅠ - [지원]
* 아, 그리고 100만년만에 로그인해보니 An Easy Problem이 '''Wrong Answer''' 상태로 남아 있더군요. 다시 풀어봐야겠....-_-;; - [지원]
* 문제가 좀 까다로운 편인데 일찍부터 푼 게 아니라 결국 해결을 못 해왔네요. 다음시간엔 꼭 풀어가야겠다... 비효율적인 방법으로라도. - [김수경]
* 문제는 어려워서 풀지도 못하고, 공부도 안해와서 설명하시는걸 다 이해는 못했지만 저에게는 꽤 의미있는 시간이었습니다;) 앞으로는 일주일동안 틈틈이 공부해서 모르는거 있으면 가져오겠습니다. 앞으로도 꾸준히 일주일에 한번씩 모였으면 좋겠습니다~. - [구자경]
* 다음주는 새로운 문제를 풀어봅시다.
* [김태진] - 진경이는 저 두문제를 다 풀었습니다. 반면 전 솔져가 너무 어려웠기에... 대체제로 지원누나가 풀려고 하셨던 Lotto에 손을 댔죠. 결과는 accepted! 이번주 화요일에는 진경이한테 덜 까일거 같습니다.. 아마도요.
* [송지원] - Soldier를 풀면서 끝내 이해하지 못했던 진경이 코드의 한 for문을 이제서야 설명을 듣고 좀 납득했습니다. 기회가 되면 저도 그런 방법으로 풀어 봐야겠어요~_~ 문제를 하나 고르긴 했는데 잘 풀 수 있을지 모르겠네용. Lotto를 골라놓고 보니 좀 쉬워서 많은 학우들이 풀었는데 이번엔 과연 어떨지....
* [정진경] - 솔저 풀이를 공유를 했으나 로또는 뭐 쉬워서인지 그냥 넘어가버렸네요. 구현 방법에만 차이가 있을 것 같으니 코드 공개만 해도 될 것 같습니다. 후기를 늦게 써서 4문제를 다 억셉트하고 나서 쓰네요. 찝찝한게 2159 Ancient Cipher 문제 조건에서. Substitution Cipher는 '일반적으로' 키가 정수 1개인건가요? 아니면 각 알파벳을 일대일 매칭시키는 배열인가요? 이에 따라 알고리즘이 바뀌는데, 문제 읽고 키가 정수 1개인 것인줄 알고 했는데 제 알고리즘이 틀렸는지 문제를 잘못 이해한건지 WA 왕창 먹고 키가 배열인걸 전제로 하고 알고리즘 짜서 AC... 흑흑 선입견이 문제인가
- EightQueenProblem/밥벌레 . . . . 59 matches
procedure FormPaint(Sender: TObject);
procedure Button1Click(Sender: TObject);
end;
end;
if Table[i, row] then
end;
procedure SetQueens(n: Integer); // 퀸 배치하기. 이 소스의 핵심함수. n은 현재 사용안한다. 처음엔 RandomSeed로 쓰려했음..-_-;
for i := 0 to 8-1 do // 가로 세로만 조건에 일치하도록 랜덤하게 배치함.
if CountRow(row) > 1 then
else
end;
end;
function CheckQueens: Boolean; // 제대로 배치되었는지 검사하는 함수.
if Table[column, i] then
end;
if (x > 7) or (y > 7) or (x < 0) or (y < 0) then
if Table[x, y] then
end;
end;
if (x > 7) or (y > 7) or (x < 0) or (y < 0) then
- Gof/Composite . . . . 59 matches
부분-전체 계층구조를 표현하기 위해 객체들을 트리구조로 구성한다. Composite 는 클라이언트로 하여금 각각의 객체들과 객체의 묶음을 동일한 방법으로 처리하게 해준다.
드로우 에디터나 회로설계 시스템과 같은 그래픽 어플리케이션은 단순한 컴포넌트들의 차원을 넘어서 복잡한 도표들을 만들어내는데 이용된다. 사용자는 더 큰 컴포넌트들을 형성하기 위해 컴포넌트들을 그룹화할 수 있고, 더 큰 컴포넌트들을 형성하기 위해 또 그룹화 할 수 있다. 단순한 구현방법으로는 Text 나 Line 같은 그래픽의 기본요소들에 대한 클래스들을 정의한 뒤, 이러한 기본요소들에 대해 컨테이너 역할을 하는 다른 클래스에 추가하는 방법이 있다.
하지만, 이러한 접근방법에는 문제점이 있다. 비록 대부분의 시간동안 사용자가 개개의 객체들을 동일하게 취급한다 하더라도, 이러한 클래스들을 이용하는 코드는 반드시 기본객체와 컨테이너 객체를 다르게 취급하여 코딩해야 한다는 점이다. 이러한 객체들의 구별은 어플리케이션을 복잡하게 만든다. CompositePattern은 객체들에 대한 재귀적 조합 방법을 서술함으로서, 클라이언트들로 하여금 이러한 구분을 할 필요가 없도록 해준다.
http://zeropage.org/~reset/zb/data/compo075.gif
CompositePattern의 핵심은 기본요소들과 기본요소들의 컨테이너를 둘 다 표현하는 추상 클래스에 있다. 그래픽 시스템에서 여기 Graphic class를 예로 들 수 있겠다. Graphic 은 Draw 와 같은 그래픽 객체들을 구체화하는 명령들을 선언한다. 또한 Graphic 은 Graphic 의 자식클래스들 (tree 구조에서의 parent-child 관계)에 대해 접근하고 관리하는 명령들과 같은 모든 composite 객체들이 공유하는 명령어들을 선언한다.
Line, Rectangle, Text 와 같은 서브 클래스들은 (앞의 class diagram 참조) 기본 그래픽 객체들을 정의한다. 이러한 클래스들은 각각 선이나 사각형, 텍스트를 그리는 'Draw' operation을 구현한다. 기본적인 그래픽 구성요소들은 자식요소들을 가지지 않으므로, 이 서브 클래스들은 자식요소과 관련된 명령들을 구현하지 않는다.
Picture 클래스는 Graphic 객체에 대한 포함관계를 정의한다. Picture 는 Picture의 children의 Draw 메소드를 호출하게끔 Draw 메소드를 구현한다. 그리고 Picture는 child와 관련한 명령어들을 알맞게 구현한다. Picture 인터페이스는 Graphic의 인터페이스를 형성하므로, Picture 객체는 다른 Pricture들을 재귀적으로 조합할 수 있다.
다음 다이어그램은 재귀적으로 Graphic 객체들이 조합된 일반적인 composite 객체의 구조를 보여준다.
http://zeropage.org/~reset/zb/data/compo074.gif
다음과 같은 경우에 CompositePattern 을 이용할 수 있다.
* 클라이언트들이 개개별 객체들과 객체들의 조합들의 차이점에 신경쓰지 않도록 하고 싶을 경우. Composite를 이용함으로써, 클라이언트들은 composite 구조의 모든 객체들을 동등하게 취급할 것이다.
http://zeropage.org/~reset/zb/data/compo072.gif
http://zeropage.org/~reset/zb/data/compo073.gif
* (optional) 재귀 구조에서의 해당 컴포넌트의 부모 클래스로 접근하기 위한 인터페이스를 정의하고, 적절하게 구현한다.
* 클라이언트들은 Component 클래스의 인터페이스를 이용, composite 구조의 객체들과 상호작용을 한다. 만일 상호작용하는 객체가 Leaf인 경우, 해당 요청은 직접적으로 처리된다. 만일 상호작용하는 객체가 Composite인 경우, Composite는 해당 요청을 자식 컴포넌트들에게 전달하는데, 자식 컴포넌트들에게 해당 요청을 전달하기 전 또는 후에 추가적인 명령들을 수행할 수 있다.
* 기본 객체들과 복합 객체들로 구성된 클래스 계층 구조를 정의한다. (상속관계가 아님. 여기서는 일종의 data-structure의 관점) 기본 객체들은 더 복잡한 객체들을 구성할 수 있고, 계속적이고 재귀적으로 조합될 수 있다. 클라이언트 코드가 기본 객체를 원할때 어디서든지 복합 객체를 취할 수 있다.
* 새로운 종류의 컴포넌트들을 추가하기 쉽게 해준다. 새로 정의된 Composite 나 Leaf 의 서브클래스들은 자동적으로 현재의 구조들과 클라이언트 코드들과 작용한다. 클라이언트 코드들은 새로운 Component 클래스들에 대해서 수정될 필요가 없다.
* 디자인은 좀 더 일반화시켜준다. 새로운 컴포넌트를 추가하기 쉽다는 점이 단점으로 작용하는 경우는 composite의 컴포턴트들로 하여금 제한을 두기 힘들다는 점이 있다. 때때로 특정 컴포넌트들만을 가지는 composite를 원할 때가 있을 것이다. Composite 인 경우, 이러한 제한을 강제도 두기 위해 type system에 의존할 수 없게 된다. 그 대신 실시간 체크를 이용해야 할 것이다.
computer 와 스테레오 컴포넌트들과 같은 장치들 (Equipment) 는 보통 격납 계층의 부분-전체 식으로 구성된다. 예를 들어 섀시 (chassis) 는 드라이브들(하드디스크 드라이브, 플로피 디스크 드라이브 등) 과 평판들 (컴퓨터 케이스의 넓은 판들) 을 포함하고, 버스는 카드들을 포함할 수 있고, 캐비넷은 섀시와 버스 등등을 포함할 수 있다. 이러한 구조는 자연스럽게 CompositePattern으로 모델링될 수 있다.
Equipment 의 서브클래스는 디스크 드라이브나 IC 회로, 스위치 등을 표현하는 Leaf 클래스를 포함할 수 있다.
- MoreEffectiveC++/Basic . . . . 59 matches
프로그래머 초급자면 알수 있는 바보 짓이다. 하지만 범하기 쉬운게 문제다.
if (pd){
rs = s2; // s1의 인자가 "Clancy" 로 바뀐다는 의미다.
// 이걸로 ps는 s2를 가리키고 s1에는 아무런 영향을 끼치지 않는다.
사견: Call by Value 보다 Call by Reference와 Const의 조합을 선호하자. 저자의 Effective C++에 전반적으로 언급되어 있고, 프로그래밍을 해보니 괜찮은 편이었다. 단 return에서 말썽이 생기는데, 현재 내 생각은 return에 대해서 회의적이다. 그래서 나는 COM식 표현인 in, out 접두어를 사용해서 아예 인자를 넘겨서 관리한다. C++의 경우 return에 의해 객체를 Call by Reference하면 {} 를 벗어나는 셈이 되는데 어디서 파괴되는 것인가. 다 공부가 부족해서야 쩝 --;
지역함수 안에서 지역 객체를 생성하여 Reference로 리턴할 경우 지역 함수가 반한되면 지역 객체는 없어질 것이고, 리턴되는 Reference는 존재하지 않는 객체에 대한 다른 이름이 될 것이며, 경우에 따라서 컴파일은 될지모르나 나쁜 코드라고 하네요.-차섭-
오해의 소지가 있도록 글을 적어 놨군요. 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배 정도 난다고 광고하고 다녔었는데, 지금 생각해 보면 다 부질없는 이야기 같습니다.) -상민
update(&csw); // 당연히 안됨 const인자이므로 변환(풀어주는 일) 시켜 주어야 한다.
// C++는 C와의 호환성 고려를 위한 것이므로 위와 같이
// const_cast 가 down cast가 불가능 한 대신에 dynamic_cast 는 말그대로
* C 에서 지원하지 않을 경우 다음 매크로를 사용하여
이렇게 구현 해서 대비하는걸 추천한다. (dynamic_cast 는 C의 절차적 프로그래밍에서 등장 불가)
* Item 3: 절대로! 클래스 간의 다형성을 통한 배열 취급을 하지 말라
이런 클래스를 선언했다. 그리고 다음과 같은 함수로 해당 클래스의 배열을 사용한다고 가정하자
로 사용한다. 느낌이 오겠지! 당연히 상속시 child는 parent보다 큰 경우가 다반사이고 배열의 위치 추적이 엉망 진창이 되어 버린다.
deleteArray(cout, balTreeArray); // 이것 역시 제대로 지워지리가 없다.
는 다음과 같은 코드로 교체되는것과 같다.
부모 객체의 파괴자만 부르므로 역시 memory leak 현상을 일으킨다.
* Item 4: 암시적으로 제공되는 기본 생성자를 피하라. 혹은 기본 생성자의 모호성을 파악하라.
해당 EquipmentPiece 는 기본 생성자가 부실(?) 하다. 이건 크게 '''3가지의 주제'''로 설명할수 있다.
- TAOCP/BasicConcepts . . . . 59 matches
E1. [나머지 구하기] m을 n으로 나누고 나머지를 r이라 하자.(0 <= r < n)
E3. [줄이기] m <- n, n <- r 으로 설정한다, 그리고 E1단계로 돌아간다.■
E1 단계에서 시작. m을 n으로 나누면 몫은 0이고 나머지는 119이다. 그러므로 r <- 119
E2 단계에서 r ≠ 0 이므로 적용되지 않는다
이것으로 처음에 m < n 이면 항상 m과 n이 교환된다는 것을 알 수 있다
우리는 다음과 같은 새로운 단계를 추가할 수 있다(꼭 필요하진 않다)
E1으로 돌아가서 544/119 = 4+68/119, 그러므로 r <- 68
마지막으로 51을 17로 나누었을때, r <- 0, 그러므로 E2에서 알고리즘은 종료된다
알고리즘은 보통 효율적으로 수행되도록 기대된다
== 알고리즘의 개념을 수학적 집합론의 관계로 나타내기 ==
계산적인 방법(computational method)을 4쌍의 (Q,I,Ω,f)로 형식을 갖춰 정의하자
f는 Q에서 Q 자기자신으로 가는 함수이다
Ω에 속하는 xk 에 대하여 k가 가장 작은 정수라면 계산수열은 k단계에서 종료된다고 한다. 그리고 이 경우에 x로부터 결과 xk가 생성된다고 한다.
알고리즘 E는 다음과 같이 이런 관계로 형식화된다.
f((m,n,r,1)) = (m, n, m을 n으로 나눈 나머지, 2);
여섯 바이트로 이루어진다. 한 바이트에는 0~63까지 숫자가 들어갈 수 있다. 그림으로 나타내면 다음과 같다.
F - 명령어의 변경(a modification of the operation code). (L:R)이라면 8L+R = F
I - 인덱스(the index specification). 값이 1~6으로 rI1~rI6에 있는 내용과 메모리 주소를 더함
같은 형식으로 쓴다.
이 연산에서 M은 메모리 셀을 가리키지 않고, 그냥 부호있는 숫자로 쓰인다. ENTr, ENNr, INCr, DECr가 있다. ( r은 A, X, 1~6)
- 변준원 . . . . 59 matches
* 준회원이 되신것을 축하합니다. 앞으로 많은 활동 부탁드려요~ -상욱(["whiteblue"])
if((x<5 && x>=0) && (y<5 && y>=0) && x!=0 && y!=0)
else
if((x<5 && x>=0) && (y<5 && y>=0) && x!=0 && y!=0)
if(matrix[m][n]==1)
if(queen[j-2+l][j-l]==queen[k][k-2])
else
cout <<endl;
cout <<endl;
if(i%4==0)
if(i%100==0)
if(i%400==0)
if(i%4000==0)
int calendar[7][6];
calendar[p][q]=0;
if(yearcharac==0)
if(day<=monthday[month-1])
calendar[m][n]=day;
if(day<=monthday[month-1])
calendar[m+1][n]=day;
- 프로그래밍잔치/둘째날후기 . . . . 59 matches
* 행사 : ["프로그래밍잔치/둘째날"]
* 팀별 정리 : ["프로그래밍잔치/Successor"], ["프로그래밍잔치/ErrorMessage"]
팀을 나누었다. 요새 팀 나누기 재미붙이기에 그렇듯, 생일로 했다. 그런데 팀이 잘 안나눠져서 각 사람들이 앉은 자리 IP로 했다. 하지만 그래도 팀이 잘 안나누어져서, 결국 반바지/긴바지 식으로 팀을 나누었다는 후문이 -_-;
처음에 팀 프로젝트를 잘하기 위한 방법에 대해 각 팀별로 토론을 했다. 다음과 같은 이야기들이 있었다.
* 팀원간 Communication 이 잘 이루어져야 하고, 역할분담이 어느정도 뚜렷해야 한다. 팀원간에 서로가 무엇을 하는지 잘 알아야 한다. (양팀 서로 나온 의견)
샌드위치를 먹으며 마저 Requirement 정리를 하고, 7피로 올라가서 팀 프로젝트를 진행하기 시작하기 시작했다.
전자수첩을 하기로 하고.. 샌드위치를 먹으며 각자의 역할과 작은 팀을 나누었고 칠피에 올라가서 시작.. 언어는 C++, MFC 툴킷을 사용하기로 했다. 그러나.. 총 개발시간의 절반을 MFC 와 싸우다가.. 인수군의 제안과 창섭군과 은지누나의 동의로 JAVA 로 언어를 바꾸고.. 인수군은 전자계산기를 기웅군, 은지누나와 페어를 하며 짜고 창섭군은 상욱군과 함께 전화번호부를 짜던 중 창섭군의 JAVA 실력 부재와 swing 경험 부족으로 인해(ㅜ.ㅜ) 은지누나와 상욱은 페어를 바꾸고.. 결국 어설픈 틀의 전화번호부와 계산기를 합치고 C++ 로 짜여진 상욱군의 만년달력을 끝으로 시간종료.
MFC 로 작업
Java 로 교체
팀들간 서로 토론 뒤에 발표시간을 가졌다.
Successor 팀에서는 잘된점으로는 팀간의 잦은 대화를 뽑았다. 디자인에 대해 구체적이지 않았어도, 팀간의 잦은 대화가 추후 통합시에 도움을 주었다는 의견이 나왔다. 잘못된 점으로는 디자인과 선호-영동 Pair 이야기가 나왔다. 그에 대한 대안으로서는 '디자인 부분에 대해선 초반에 다 같이 전체 디자인을 한번 그려보는 시간을 가져본다', 'Pair 를 할때 사람들간의 마음가짐 개선' 등의 이야기들이 나왔다.
Error Message 팀에서는 잘된점으로 문제 사이즈를 적절하게 잡은 점을 뽑았다. 잘못된 점으로는 사람들의 개개인 능력을 정확하게 고려하지 않고, MFC 를 고른점과 역시 Pair 에서의 문제점, 그리고 '팀 이름이 안좋았다' 라는 의견이 있었다. 그리고 대화가 잘 이루어지지 않았다는 점을 뽑았다.
1002는 대강 간단하게 정리하며, 그리고 오늘 행사의 의의는 결과물 자체가 아니며, 팀 프로젝트 경험 자체임을 이야기했다. 그리고 잘된점과 잘못된점을 생각하며 한편으로는 좌절할지도 모르겠지만, 마지막으로 '대안'을 생각하기에, 다음번에 더 잘할 수 있음을 이야기했다.
* 100 % 완성이 못된게 못내 아쉽지만 그럭저럭 잘된 팀 프로그래밍이였음다. 이번 팀에서는 역할 분담이 잘되었고 페어간의 의사소통이 잘된 게 좋았던 것 같습니다. 잘못된 점은 처음 디자인이 부족해서 역할과 역할이 서로의 디자인을 잘모르게 되었다는 것입니다. 담에는 ["프로그래밍잔치/Successor"] 정리에 있는 잘못된 사항인 No 되었던을 Yes로 바꿀 수 있게 노력해야 겠습니다. --재동
* 오늘 하면서도 느꼈던 것은 고정관념을 버려야 한다는 것!! 어제 역시 새로운 언어를 해보면서 이전까지의 언어에서의 고정관념에 사로잡혀 허우적되는 나를 발견했었는데... 오늘도 또다시 고정관념을 버려야한다는 것을 느끼게 했다. 프로그래밍에서 디자인이 시간낭비라는 고정관념, 코딩이 가장 중요하다는 고정관념, 프로그램 개발에서 가장 많은 시간을 소비하는 부분은 코딩이라는 고정관념.... 반드시 버려야겠다. 디자인은 절대로 시간낭비가 아니라는것... 가장 중요한 것이 코딩이 아니라것... 프로그램 개발에서 가장 많은 시간을 소비해야 할 부분이 코딩이 아니라는것.... 꼭 기억해야 겠다. --["상규"]
''실제 개발시에 타이핑을 해 넣는 시간은 전체 개발 시간의 30%도 안된다는 통계가 있습니다. 그리고, 최종 상품으로서의 코드를 (전체 개발 기간*개발 인원)으로 나누면, 한 사람이 하루에 약 5줄의 코드를 짜면 (업계) 평균입니다. --JuNe''
* 아쉽게도 오늘 한 것의 코딩 내용의 수준이 저에게 좀 높았던 거 같습니다. 그래서 중반 이후 거의 선호형이 맡게 되었고, 갈수록 소외되는 식이 되었습니다. 음... 다음부턴 팀 프로그래밍 중 팀원간에서 뒤쳐지지 않도록 노력해야겠습니다. 좋았던 점이라면 팀 프로그래밍이 어떤 거다...는 걸 알 정도의 경험이랄까...입니다. --영동
* 팀프로그래밍을 하면서, 대화가 중요하단 생각을 했다. 형식적이지 않은 이런 저런 의사소통도 많이 필요하겠지만 어느정도의 형식이 갖춰진 대화를 하는 것이 필요할 것 같다. 예를 들면, 언어선택의 문제에 있어서 대충 한 두명이 이걸로 짤까?? .. 그럴까?? 이런 대화보다는 정식으로 사람들한테 자신이 아는 언어와 생각을 물어서 종합적인 결론을 도출하는 과정이 필요했던거 같다..그리고 자신이 알고 있는 것과 모르고 있는 것에 대해서 스스로 잘 알필요가 있을듯..;; 또 다른 사람의 입장을 한번더 생각하는 맘도 필요한 것 같다. --은지
* 나역시 페어를 해본건 아주 간단한것이었긴 하지만, 그때의 느낌이라면 페어가 되는 조건에 대해서 좀 생각해봐야하겠지. Expert - Expert Expert - Novice의 단적인 예를 들자면 역시 Expert - Expert인 경우가 진행도 빠르고 페어도 효율적이겠지만 두번째의 경우 시간분배에 따라 해결하는 양도 틀리고 하지만 결국 시간이 느려지는건 사실 그러나 얻는것! 페어가 끝난후 Novice가 단지 처음의 수준에 머무르지는 않는다는 것이지. 내 느낌은 일단 그러네 ^^; 아 참고로 어중간한 사람끼리 만나면 진행은 잘되는데 머 잘되면 좋긴하지만 안되는 쪽으로도 잘 되는? 현상이 벌어질 가능성도 있다고 사료됨. (이 내용은 1002 군의 예전의 페어에 관한글을 참고함) - JihwanPark
* 예전에 페어를 할 때 느꼈던 점을(정확히는 깨달았던 점을) 제대로 써먹지 못해 크게 후회와 아쉬움이 밀려온다. 그리고.. 공부좀 해야겠다는 생각이...;; --["Wiz"]
- 손동일/TelephoneBook . . . . 58 matches
ifstream fin;
const int base_save = 4; // 처음 기본으로 저장되어있는 전화번호 숫자.
fout << tel_num << endl;
fout << name << endl;
fout << group << endl;
fout << memo << endl;
cout << "> 전화번호부 (입력:1, 검색:2, 끝내기:3)" << endl;
if(menu_num == 1)
else if(menu_num == 2)
// cout << "메뉴 들어갑니다. " << endl;
else
if(check_num >= 1) // 구문체크를 위해서..
cout << compare << endl;
cout << compare2 << endl << compare3 << endl << compare4<<endl<<compare5<< endl;
if(mode == 1)
if(!strcmp(compare, compare2)) // 두개가 같다면 0을 리턴한다.
else if(mode == 2)
if(!strcmp(compare, compare3)) // 두개가 같다면 0을 리턴한다.
else if(mode == 3)
if(!strcmp(compare, compare4)) // 두개가 같다면 0을 리턴한다.
- OurMajorLangIsCAndCPlusPlus/errno.h . . . . 57 matches
|| extern int errno || 리턴값으로 에러 획인 ||
|| return 값 || 메크로 || 내용 ||
||1||int EPERM||허가되지 않은 작동; 파일의 소유자(또는 다른 자원)나 명령을 수행할수 있는 특별한 권리를 가진 프로세스.||
||2||int ENOENT||그러한 파일이나 디렉토리 없음: 이것은 이미 존재하고 있을 걸로 예상한 파일이 없는 경우에 일어 나는 "파일이 존재하지 않습니다"라는 에러이다.||
||4||int EINTR||가로채기 함수 호출;발생한 비동기 신호와 호출의 방해된 종료. 이럴 경우에 당신은 다시 호출을 시도해보라.||
||6||int ENXIO||그런 장치나 주소가 없음. 시스템이 당신이 파일에서 설정한 장치를 사용하고자 하나 그러한 장치 를 찾을 수 없었다. 이것은 장치파일이 잘못 인스톨되었거나, 물리적인 장치를 빠뜨렸거나 또는 컴 퓨터와 제대로 부합되지 않았음을 의미한다. ||
||7||int E2BIG||인수가 너무 길다;실행함수에 의해서 실행되는 새로운 프로그램에 주어진 인수가 너무 큰 메모리 공간을 사용할 때.||
||9||int EBADF||잘못된 파일 기록; 예를 들어,닫혀진 파일을 기록하려고 하든지 쓰기 모드로 열려진 파일을 읽으려 고 하는 경우(그 반대의 경우도)||
||10||int ECHILD||자식 프로세스(child process)가 없다. 이 에러는 자식 프로세스를 다루는 오퍼레시션을 사용했는 데 다루기위한 어느 프로세스도 존재하재 않을 때 발생한다.||
||11||int EAGAIN||자원을 일시적으로 사용할수 없다.; 그 호출은 나중에 당신이 다시 재시도 할수 있도록 한다. 오 직 분기점에서 이러한 이유로 EAGAIN에러 코드를 리턴한다.||
||12||int ENOMEM||이용할 메모리가 없음. 메모리 용량을 다 썼으므로 시스템이 더이상 메모리를 할당할 수 없다.||
||17||int EEXIST||파일이 존재: 새로운 파일로 만들겠다고 한 파일이 이미 존재한다.||
||18||int EXDEV||파일시스템이 인지할수 없는 영역에 부적당한 링크를 만들려고 시도할 때 이 에러메세지가 나온 다. 이것은 링크를 사용할때만 발생하지만 또, rename으로 파일을 재명명할 때 발생하기도 한다.||
||23||int ENFILE||지금 현재 프로세스에 너무 많은 파일이 오픈되어서 더 이상 오픈할수 없다. 복제된 기술자가 이 제한에 대하여 셈한다.||
||30||int EROFS||읽기 전용으로 된 어떤 파일시스템에 무언가를 수정하려고 시도할 때||
||32||int EPIPE||부러진 파이프; 다른 파이프의 끝에서 프로세스를 읽는 것은 불가능 하다. 모든 라이브러리 함수 는 SIGPIPE로 일반화된 에러코드를 리턴한다. 이 신호는 만약 처리되지 않거나 막아지지 않으면 그 프로그램을 멈추게 한다. 그러므로 프로그램이 처리되거나 블록된 SIGPIPE를 갖지 않으면 항상 EPIPE가 보일 것이다.||
||34||int ERANGE||범위 에러; 결과 값이 오버플로우나 언더플로우로 인해 표현되지 않을 때 수학적 함수에 의해 사 용된다.||
|| ||int ENOTBLK||어떤 상황에서 주어진 파일에 특별한 블록이 없는 경우. 예를 들면, 보통의 파일을 유닉스 파일 시스 템에 마운트하려 하면 이 에러가 발생한다.||
|| ||int EWOULDBLOCK||비블럭화 모드로 정해진 어떤 대상에 블록을 시도하려 하는 오퍼레이션에 대해 발생.||
|| ||int EINPROGRESS||비블록화 모드로 선택된 대상에 일으킨 완전하지 않은 오퍼레이션에 대해 발생. 어떤 함수들은 항 상 블록을 결코 리턴하지 않아야한다.||
- 이성의기능 . . . . 57 matches
* 여기서 인상적인 부분의 내용은 이거다. 이성의 기능은 자신의 환경을 바꾸어가는 기능이라는 말이 너무 큰 깨닳음을 주었다. 주변을 보면 사람만큼 이렇게 환경을 바꾸는 생명체는 없다. 사람은 정말 엄청나게 환경을 바꿨다. 물론 사람들중에서 어려운 환경이 주어지면(일종의 도전) 수동적으로 그 환경에 순응하거나 멸종하는 경우도 있다. 이러한 경우에는 아무런 발전도 기대하기 어렵다. 반면 그 어려운 도전에 맞받아서 환경을 인간에게 유리하게 변형하여 큰 진보를 이루는 경우도 있다. 환경이라는 것이 얼마나 강력하게 인간에게 영향을 끼치는지는 우리 주변에서 여러 사례를 보면 쉽게 알 수 있다. 특히 인간이 만드는 문화, 조직, 인간관계 등등의 환경은 그 영향이 개인에게 끼치는 정도가 엄청나다. 이러한 환경의 영향에서 독립적이기는 상당히 힘들고, 게다가 그 환경을 바꾸는 것은 더더욱 힘들다. 하지만 인간은 이성을 가지고 있기에 자신의 환경을 계속 바꾸어 나가면서 발전할 것이다. 다만 환경이 바뀌기 힘든만큼 그 근저에 깔려 있는 기본적 패러다임이 바뀔때에는 시간이 좀 걸릴것이다.
* "피로는 이성의 反 이다." 피로는 새로움을 향한 충동을 제거시키는 작용을 한다. 피로는 하향, 이성은 상향. 피로를 거부하는 이성의 작용
* 안정은 곧 쇠퇴로 이어진다. 안정적이라면 더 이상 다른 노력을 할 필요가 없게 된다.
이전 교양으로 '교육의 이해' 수업을 들을때 레포트로 나왔었던 NoSmok:AlfredNorthWhitehead 의 책. 그당시 책을 읽을때 완전히 이해를 하지 못해서인지도 모르겠지만, 매번 읽을때마다 나에게 의미를 주는 책.
이성. 'reason' 의 단어에 대한 새로운 정의라 생각됨. (기존 철학에서 이성에 대해 대단한 정의를 내린 것을 볼때..)
저자가 수학자이고 물리학자이면서 추후에 철학자가 되어서 그런지, 중간중간 물리학의 개념또는 수학이 추구하는 논리의 엄밀성에 대한 무게중심등이 보인다. 시간의 흐름. 역사를 '상향적 기운' 과 '하향적 기운' (이것은 물리에서의 엔트로피의 개념이 들어온 것 같다.) 으로 나누고, 그 중에서 '상향적 기운'. 즉 , 무질서도를 바로 잡으려는 노력에 대해 '이성'이라는 개념을 끌어온다. 삶에는 여러가지 정신이 존재하고, 이 정신은 일종의 '무정부적인 욕망'으로 보며, 그 무정부적인 욕망속에서 질서를 잡는 욕망중의 욕망을 '이성' 이라고 정의한다.
중반부에 사변이성과 실천이성에 대해 설명을 하면서 '과학적 방법' 이라는 것의 위험함을 이야기하면서 (귀납적 방법) 귀납적 방법으로부터 시작해서 일반화시키는 과정에서의 사변이성의 중요성을 꺼내온다. 일상 생활의 경험으로부터 세상을 이해하고 잘 살기 위해 만들어내는 효율적 법칙을 만들어내고 (방법론, 실천이성) 급기야는 그 방법론 자체에 대해 반성하며, 전반적 세계에 대한 하나의 이해의 통찰을 만들어내는 사변이성을 이야기한다. (세계를 구성해내는 원리를 이해하려는. 형이상학 정도로 생각하면 될듯.)
책을 번역한 사람이 한동안 방송가를 떠들썩하게 한 '김용옥' 씨인데. 방송에서의 김용옥씨에 대한 느낌은 별로 안좋았었는데 최근 그 사람이 건드린 책을 보면서 김용옥씨에 대한 나의 시각을 다르게 한 책이기도 하다. 단순히 번역이 아닌 '역안'. 즉, 본래의 영어 원문을 실은뒤, 그 밑에 번역을 놓고, 그 밑에는 책을 읽으면서 자기 나름대로의 해석을 실는 방식을 취하고 있다. (한편으로는 김용옥씨가 주장하는 '기철학'을 설명하기위해 화이트헤드의 글을 끌어왔다라는 생각도 들긴 했지만) 이로 인해서 이해가 더 잘 되었다는 점과, 한편으로는 번역자의 번역중의 생각을 앎으로서 번역자의 사상에 끌러가지 않고 거리감을 두면서 읽을 수 있게 하는 장치가 된다. (번역은 제 2의 창조라고 할때, 원문에 번역자의 의도가 들어간다. 또한 언어가 다른 언어로 번역되면서 그에 따른 내용의 차이가 생길 수 있다고 할때 한편으로는 용기있는, 한편으로는 자신감 넘치는 방법이라 하겠다.)
* 김용옥씨의 '도올논어' 라는 책은 뭐 유명해서 다들 알겠지만, '도올논어' 1권을 보면 논어를 들어가기 전 자신이 공자에 대해 알고 있는 바와 어느정도 자신의 생각으로 해석한바로 책의 절반을 잡고 간다. 순수하게 기존지식을 습득만 하는 것이 과연 학문일까. 한번 딴지도 걸어보고 책의 저자와 싸우다가 자신의 시점을 교정하고, 또는 죽은 저자의 지식에 자신의 생각을 보태보기도 하고.. (거인 어깨위에서 탑쌓기..)
* 방송에서의 쇼맨쉽을 발휘하면서 그게 좀 커져서 독단적인 모습으로 보여서 아쉬웠던 김용옥씨지만, 그의 책을 보면 그의 학문하는 방식이 참 솔직해 보인다. 이것이 그의 진정한 모습이길.
책을 읽을때마다 나에게 다른 질문을 주곤 하는데 처음에는 '철학이란?' 정도의 질문에서 다음번에 읽을땐 '공부란 무엇이며 어떻게 해야 하는 것인가?' 라는 질문으로. 또 언젠가 읽었을때는 '끊임없이 더 많은 땅을 갈구하는 빠홈과 그를 파멸로 떨어뜨리는 악마의 모습' 을 보기도 하고. 지금은 저번 데블스 캠프 중의 OOP 세미나때 '자신의 발전을 위해, 순간순간 과정자체를 느끼고 이해해보기' 이후, '방법론' 에 대해 다시금 생각하게 해준다. 개발중 내가 진행하는 과정을 최적화 시키는 '방법론' 을 만들어내는 (또는 기존의 학문을 도입하는) 것에 대해서.
* 사실상 상향적 경향에 수반된 것은 환경과 유기체 사이의 역의 관계의 성장이다. .. 우리에게 더 친숙한 동물들의 사소한 행동조차 잘 살펴보면 그것은 그들의 환경을 개조하는 행위이다. ... 생명의 고등한 형태들은 그들의 환경을 개변하는데 능동적으로 종사하고 있다고하는 그 능동적 사실이야말로 가장 중요한것이다.
* 이제 나는 인간의 환경에 대한 능동적 공격을 설명하는데 다음의 3중의 충동이 자리잡고 있다고 하는 테제를 제의한다. 1) 산다. 2) 잘 산다. 3) 더 잘 산다. 실상 삶의 기술이란 첫째, 생존하는 것이며, 둘째, 만족스러운 방식으로 생존하는 것이며, 셋째, 만족의 증가를 획득하는 것이다.
* 아래로부터의 이성의 진화라고 하는 것은 비교적 짧은 예견의 시간범위에서 아주 실용적으로 이루어진 것이다. 이성으로부터 도출되는 아주 원초적이고 깊숙이 자리잡는 만족감, 기억할 수 없는 태고의 유전에서부터 우러나오는 그런 만족감은, 현재의 실천을 규제하는 어떤 방법을 강조적으로 명료하게 함으로써 제공될 수 있다. 그러한 방법이 현실적으로 기능하면 이성은 만족된다. .. 사실은 인간의 호기심을 그 방법의 범위내로 제한시키려는 또 하나의 적극적인 관심이 있는 것이다. 그러한 관심이 패배당할때는 정서적으로 적개심이 일어나게 되는 것이다. 그러면 경험론은 사라진다. ... 한 방법론이 이미 낡아버렸다는 주요 증거는, 그 방법내에서 일어나는 진보가 더 이상 주요 잇슈들을 취급하지 못한다는 사실로 입증된다. 사소한 문제들에 끊임없이 시비하고 있는 마지막 단계에 온 것이다. ... 그 방법의 범위내에서 성취할 수 있는 더 큰 대비들이 다 탐구되었고 또 친근하게 되어버렸다. 그리고 반복으로부터 생기는 만족감도 시들시들해져 버린다. 그러면 생명은 그 운명을 결정하는 마지막의 선택의 기로에 국면하게 되는 것이다.
이 마지막 선택의 기로는 이미 내가 앞에서 언급한 삼중의 충동이라는 성격에서 유래되는 것이다 : 산다, 잘 산다, 더 잘산다! 한 방법론의 탄생이라는 것은 본질적으로 살려고 하는 안전한 방법의 발견이다. 그것은 전성시대에은 좋은 삶을 위한 긴박한 조건들을 만족시킨다. 그러나 좋은 삶이라고 하는 것은 불안정한 것이다. 피곤의 법칙이 용서없이 엄습한다. 삶의 어떠한 방법론이라도 그 범위내의 신선함을 다 고갈시키고, 또 피로가 물밀쳐올때까지 그 신선한 것들을 다 써먹어버리게 되며, 하나의 마지막 결단이 그 종의 운명을 결정한다. 하나는 그 자신을 안정적으로 만들고 그냥 생존하는 수준으로 퇴행해버리는 것이요; 또 하나는 과거의 관습들을 자유롭게 떨쳐버리고, 더 잘 사는 모험을 시작하는 것이다.
이 두개의 기로에서 후자의 경우, 그 종은 낡아빠졌지만 아직 지배적인 방법의 범위르 벗어나 잡다한 경험의 혼돈속에 감추어져 갓 태어나기 시작하는 방법론의 하나를 포착한다. 그 선택이 재수좋게 맞아떨어지면, 진화는 상향의 코스를 취하기 시작한다. 재수없게 안 맞아떨어지면, 시간의 망각이 사라진 종의 흔적위로 면사포를 드리운다.
- 정모/2011.3.7 . . . . 57 matches
* 프로젝트/스터디 위주로 지난주의 활동 공유 혹은 앞으로의 계획 홍보
* 금요일로 날짜 옮김.
* '''목적''' : 결과로 학생들을 자르기 위한 것이 아니라 선행 지식, 이해도가 비슷한 학생들을 같은 반으로 묶어 새싹 교실을 진행하며 발생하는 같은 반 학생들 간 실력 차이를 최대한 줄이려 함.
* 새싹 교실 선생님들과 학생들이 처음으로 반별로 만나는 자리.
* [박성현]의 프리젠테이션 : [http://zeropage.org/50733 내 맘대로 말아먹는 영화이야기]
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 활동 공유로 읽었던 책을 간단히 소개하면서 내용을 되새김질하는 계기가 되어 좋았다. 루비를 다운받아 irb를 사용해 실습을 해보았다. 성현이가 OMS로 영화 재해석을 했다. 동영상도 실행되고, 효과음도 나왔다면 더 재밌는 발표가 될 수 있었을 텐데 강의실이나 상황이 열악해서 안타까웠다. 마지막에 시간이 모자라서 코드레이스를 하지 않고, 간단히 Snowball Keyword 게임을 했는데 규칙을 잘못 이해하고 얘기하여 바로 탈락했다. 다음에는 좀 더 의도를 잘 파악하도록 집중해서 들어야 겠다. - [강소현]
* 이번 정모에서 루비 세미나 - 문법실습 - 을 준비했었습니다. 잘 할수 있을까 걱정했는데 예상대로 설명도 제대로 못하고 강사주제에 들으러 오신분들께 물어보고 시간도 두배나 초과하는 추태를 보였습니다. 혼자서는 다 아는것 같은 내용도 남들 앞에서 설명하려니 제대로 떠오르지가 않네요.. 앞에서 말하면서도 얼른 끝내고 도망가고싶다는 생각이 자꾸 들었습니다ㅠ 이래서 연습이란게 중요한가 봅니다. 다른사람을 가르치려면 가르칠 사람보다 세배네배 더 공부해야 한다는 말을 뼈저리게 새기는 하루였습니다. 혹여 또 세미나를 한다면 벽보고 연습이라도 하겠습니다. 그때는 이런 괴로운 세미나를 들려드리지 않을게요ㅠㅠ - [서지혜]
* 루비는 선배들을 통해 이런게 있다라는건 들었었지만, 막상 실제로 접해보지는 못했었는데 이번 세미나를 통해 루비라는 언어에 대해 직접 접해 볼 수 있는 기회가 되어서 좋았습니다. 이제 직접 좀 찾아보면서 루비라는 언어를 좀 더 접해보고 싶다는 생각이 들었습니다. 그리고 폐차쿠차를 통해 알고 있던 영화가 정말 다양하게 해석될 수 있다는 사실이 재미있었습니다. 동영상으로 보여주려 했던 영화는 뭐 저런 사기 캐릭이 있나라고 생각하면서 봤던 영화였는데, 동영상이 재생되었더라면 다시금 그때의 그 황당함을 다시금 느낄 수 있었지 않았을까 아니면 다른 느낌을 받았을까 하는 생각이 듭니다. - [권순의]
* 정모에서 세미나와 페챠쿠챠만 참여하게 되었습니다. OMS할 때는 학교 컴퓨터를 이용했는데, BGM과 동영상이 재생이 안되더군요. 안타까웠습니다. 그리고 루비를 보면서 느낀게 참 신기하더군요. 가장 신기한게 'nil'이었습니다. 보면서 여러가지 질문이 생각나더라고요. ''왜 nil이 라고 용어를 붙여놨어. Null이랑 헷갈리게!'', ''실제로 가볍게 활용을 하려면 어떻게 이용해봐야 할까?'', ''루비의 가장 큰 특징이 뭐지? 왜 좋다고 이야기 할까?'' 블라블라~. 그리고 루비 위키페이지에 적어놓으셨던 문법들이 정상적으로 작동하지 않는 걸 깨달았습니다. '<'로 상속이 안돼! 이 깍쟁이 irb야~ 내가 너를 Some이라 불러줬으니 나에게로 와서 Some2가 되어달란 말이야 ㅜㅜ. 앞으로는 다음에 언어 세미나를 들을 때 ''왜 이 언어와 문법이 등장하였는지''를 좀 생각하면서 들어야겠습니다. 그냥 생각없이 들으니까 금방 까먹어 버리네요. - [박성현]
* OMG로 수정했어요~; -[박성현]
* 활동보고에서 책읽기 모임 보고를 하면서 간만에 정말 정식활동 시작!! 한번쯤 해보고 싶었던 루비 프로그래밍 실습도 하면서 알찬 정모가 되지 않았나 느꼈습니다. 아쉬웠던 점은 시간 안배인데, 정모의 시간에 대한 제한은 없으나 어느 정도 deadline은 잡아야 하지 않나 하는 생각이 들었습니다. (예를 들면 늦어도 9시까지는 끝낸다 라던가..) 책읽기모임 활동보고의 소요시간이 약간 길었는데, 각자 읽은 책에 대해서 정모에서 나누는 것이 가장 효과적이긴 하나 모임 때 나눴던 얘기의 단순 요약판이니 이제부터는 위키를 참조하는 것도 좋지 않을까 싶네요. 그리고 루비 코드 레이스는 참여자를 봐서 다음주 정모 때 하는게 어떨까요 - [송지원]
* 학생회 회의 떄문에 늦어서 루비 세미나 뒷부분부터 참석한 관계로 많은 프로그램을 놓쳐버렸습니다 OTL 아쉽더군요... 우선 새싹의 경우는 나름 담당자 인데 정모에 참여를 못해서 아쉽습니다. 그리고 성현이형의 영화 해석을 보면서 깨달은건데 그렇게 영화가 해석되는지 몰랐습니다. 그리고 JavaScript 스터디에 야매로 참가하면서... 알게된 내용이지만 인터프리터 언어에도 객체지향 언어가 존재하고 종류가 꽤 많다는게 신기하네요. 제가 어디서 주워 듣기로는 Python도 OOP가 가능하다고 하던데;; 아무튼 늦게 들어간게 죄입니다 ㅠ -[윤종하]
* 세미나가 예상외로 긴 시간을 잡아먹고 노트북의 부재로 아쉬운시간을 가졌습니다. 하지만 루비 세미나는 꽤나 유용한 세미나였던것으로 기억합니다. 예전 루비를 혼자 배워볼때랑 달리 친절한 설치도 지원해주고 제가 처음 배웠던 부분과 다른 부분을 배울수 있어 좋았습니다. 후기에 계속 나왔던 말이지만 루비는 불완전한 언어라는 말보다는 현재 루비로 지원해주는 많은 라이브러리가 부족한것이지 언어자체는 굉장히 뛰어나다고 할수있습니다. 루비에 대해 다시 떠올리는것으로 좋은 시간이었습니다. - [김준석]
* 제 2공학관에 강의실이 얼마 없는지 공대 행정실에서 자꾸 봅스트홀을 빌려주려고 하네요. 번거롭게 왔다갔다 해야했던 점이 아쉽습니다. 정모 활동을 회의보다는 세미나 등 학술 활동 위주로 가려다보니 전보다 많은 시간을 소요하게 되었습니다. 개강하니 정모를 늦게 시작해서 그 점이 난감하네요. 정모에서 할 수 있는 짤막한 활동들을 기획해보겠습니다. 그리고 프로젝트/스터디 했던 것들을 공유할 때 좀 더 재미있고 효과적으로 공유할 수 있는 방법도 함께 생각해보았으면 좋겠습니다. :) - [김수경]
* 루비에 대해 알게 되었습니다. 매우 흥미로웠지만, 별로 실용적으로 쓸 일은 없을 것이라는 생각이 들었습니다. 좋아하던 영화들을 다른 관점에서 보고 나니 "아 그럴 수도 있군! 이거 재미있는데?"라는 생각이 들었습니다. 갑자기 새싹스터디 커리큘럼 작성에 부하가 걸리기 시작했습니다. 새로운 thread를 열어서 job을 분담하지 않는다면 timeout이 날 것 같아 걱정 중입니다. 다음 페차쿠차로 Objective-C에 대해 발표 해보아야겠습니다. - [황현]
* Objective-C 기대된다!! OMS는 페챠쿠챠로 진행해도 좋고 다른 방식의 프리젠테이션도 좋으니 편한대로 진행해~ 내가 지난 정모에서 성현이한테 페챠쿠챠 아니라고 되게 뭐라 한 것 같은 느낌이라 덧붙임... - [김수경]
* ㅋㅋ 별로 실용적으로 쓸 일이 없다니... 내가 아는 몇몇 루비 구루들이 듣는다면 곡을 하겠는걸?ㅎㅎㅎ - [변형진]
* 제가 "실용적"이라는 단어를 잘못 사용했네요. 이 단어를 사용하는 게 아니었습니다....... 언어가 너무 "중구난방"한 느낌이 들어서, 별로 "제가 쓸 일이" 없을 것 같다는 의미를 전달하려 했어요. - [황현]
- Slurpys/강인수 . . . . 56 matches
end;
end;
if S[2] <> 'F' then
end;
if S[i] = 'F' then
end else
if FirstFind then
end;
end;
end;
end;
if Length(S) < 3 then
end;
if HasDorEAtFirst (S) = False then
end;
if FPos = -1 then
end;
if HasGAtLast (S,FPos) then
end;
if IsSlump(Copy(S, FPos+1, MAX_STR_LEN)) then
- Z&D토론/History . . . . 56 matches
데블스가 제로페이지에서 하나의 프로젝트를 장기적으로 수행하는 것도 아니고 특화된 분야의 공부(제이스톰같이)를 하는것도 아니었는데도 불구하고 일회성 팀이 아닌 후배를 충원하는 소모임으로 대를 이어가게된 배경이 궁금합니다.
여러 소모임들을 활성화 하여 다수의 회원들의 활동을 적극적으로 만들어 보고자 각자의 노선을 진행한걸로 기억합니다. 제가 처음 들어왔을 때에도 폴리곤 데블스 등의 소모임들이 존재했었던 걸로 기억합니다. 여기서 한가지 생각해 보아야 할 것은 소모임은 소모임이란 것입니다. .... 소모임에 대한 제 생각은 어떤 ''소속내에서만'' 이루어져야 한다고 생각했기 때문입니다. --Jihwan Park
주도적으로 이끌어 주는 선배의 노력때문이 아닌가하는 생각이 듭니다.. 처음 만들어 졌을때는 승태형이 그 역할을 해왔을 것이고.. 제가 제대한 이후로는 제가 그 역할을 해왔다고 생각하고 이제는 그 역할을 후배들에게 물려 줬다고 생각합니다. 물론 후배를 충원하기위한 행위로써 기억에 남을만한 야간 세미나를 하나의 전통으로 삼은 것 역시 그런 배경이 된게 아닌가하는 생각도 들구요.. 솔직히 몇번 후배를 뽑고 같이 공부를 해온 저로써.. 그리고 곧 졸업할지도 모르는 4학년이라는 입장에서 01을 뽑는 것은 부담스러운 일이었습니다. 그런데 후배들이 원하더군요. 후배들 말로는 야간 세미나를 한게 가장 기억에 남는다고.. 그리고 01 후배들도 그렇게 말하구요. 저역시 그렇게 생각하구요.. 데블스에서 가장 기억에 남을 만한 일이 후배를 뽑기위해 밤새서 세미나를 하는 일이라는 점이 아마도 그러한 결정적인 배경이 된게 아닌가 하는 생각도 듭니다. --최태호
데블스가 왜 소모임으로 대를 이어갔는가.. 제가 알기로는, 또 제가 보기로는 만들어질 당시 제로페이지의 기능이 유명무실해져서 그랬던것 같습니다. 현재의 제로페이지는 소규모 인원만으로 운영되는 것으로 보입니다만 데블스가 생겨날 때는 우리과 인원의 대부분이 제로페이지라는 울타리에 들어와 있었습니다(신입생중 대부분이었죠). 그러니 제로페이지는 연구를 위한 모임으로서의 기능은 더 이상 할수 없는 (그 당시 말하기로는)"학원"으로의 기능만을 수행할 수가 있었습니다. 결국 앞선분이 말한 것처럼 제로페이지의 부흥책으로 소모임의 활성화가 진행되었고. 그래서 데블스가 만들어졌고, 가만히 두면 흩어져버릴 후배들을 묶기 위해서 지속적으로 후배를 충원하게 된 것이지요. 물론 충원은 분리전까지는 제로페이지내에서 이루어졌습니다. 그 후 2년정도 뒤에 폴리곤이라는 소모임이 만들어지게 되었고 어느정도 경쟁관계가 형성되었습니다. 이후 풀리곤이 어떻게 되었는지는 알수가 없군요. 아마 데블스가 제로페이지를 나오면서 소규모가 된 제로페이지를 이들이 운영한 것 같습니다. 잠시 딴데로 샜군요. 암튼 데블스가 대를 이어간 이유는 이렇습니다. - 김수영
현재 폴리곤을 일단 소규모화된 zp를 보고 암묵적 소멸 상태입니다. 사실 99들중 폴리곤의 이름아래 모인 사람들이 있지만, 제일 처음 한번 폴리곤의 모집이후, 자체적으로 zp내에서 편가르기는 필요없다란걸 알게되었기 때문입니다. --상민
학회에서 소모임을 나누는 기준이 잘못되었던건 아닐까 생각이 드네요. 뚜렷한 기능의 특화없이 나누어진 소모임이 한 학회안에서 지속적으로 유지되는 것은 어떤 의미를 가질까요. 제로페이지란 인력풀, 자원풀에 경계를 긋고 둘로 나누는 무의미한 일이 아닐까요. 저는 기능 중심으로 조직이 나누어져야한다고 생각합니다. 그리고 그 기능을 다한 조직은 빨리 소멸되고 새로운 조직이 구성되는 일이 반복이 되어야한다고 생각합니다. 결국 그 조직은 소모임보다는 프로젝트팀이란 이름이 적합하다고 봅니다. -- 이덕준
지금의 저로서도 데블스가 구지 zp를 버리고 나간 이유 자체는 완전히 납득이 가지 않습니다. 아쉽습니다. 차라리 당시에 zp의 주도세력으로 부상하여 zp를 같이 개혁하는 방향으로 갔다면 지금의 이런 소모적인 토론은 없었겠지요. --상민
참고로 제가 생각하는 데블스가 제로페이지에서 떨어져 나온 이유는 물론 제가 없을때 데블스가 제로페이지에서 분리가 되었지만..일종의 제로페이지에 대한 무관심이라고 생각합니다. 데블스 사람들이 제로페이지에 무관심 할수 밖에 없었던 이유는 데블스 자체로도 만족을 했기 때문일 거구요.. 그러한 것은 데블스가 제로페이지에서 떨어져 나올 즈음 상경이가 써놓은 글에서 보면 알수 있습니다. 글의 내용은 폴리곤 사람들은 제로페이지에 많은 기여를 하는 반면 데블스는 아무도 제로페이지에 신경을 쓰지 않는다라는 내용이었습니다. 필요 없으니 당연히 떨어져 나가겠지요. 물론 게다가 제로페이지에 무관심한 데블스에 불만을 가지고 있는 폴리곤이 있으니.. 불보듯 뻔한 일이 아닐까 생각합니다. 어찌되었든 저역시 처음 데블스가 제로페이지에서 떨어져 나올때 불안 했던 것처럼 다시 데블스와 제로페이지를 합치자는 말이 나오는 지금 상황 역시 불안하기는 마찬가지입니다. 저는 이 일이 어찌되든 후배들이 모두 좋은 방향으로 되길 바랄 뿐이고 그들이 정하는대로 따를 것입니다. - 최태호
- 권영기/채팅프로그램 . . . . 56 matches
Describe 권영기/채팅프로그램 here
["2012/3/30 - 일대일 채팅 프로그램 만들기"]
["2012/4/3 - 멀티채팅 프로그램 만들기"]
=== 2012/3/30 - 일대일 채팅 프로그램 만들기 ===
exit를 쳤을 때, 종료가 제대로 되지 않는 것이 문제입니다.
client에서 exit를 쳤을 때, "채팅이 종료되었습니다." 라는 메세지가 바로 뜨지 않습니다. server에서 아무거나 입력하면 그제서야 client에서 "채팅이 종료되었습니다."가 출력됩니다.
server에서 exit를 쳤을 때, "채팅이 종료되었습니다." 라는 메세지가 바로 뜨지 않습니다. client에서 아무거나 입력하면 그제서야 server에서 "채팅이 종료되었습니다."가 출력됩니다.
if(strcmp(buff_rcv, "exit") == 0)flag = 1;
else{
send(client_socket, buff_snd, strlen(buff_snd)+1, 0);
if(recv(client_socket, buff_rcv, SIZE, 0) <= 0)continue;
else{
if(strcmp(buff_rcv, "exit") == 0)flag = 1;
else{
if (-1 == server_socket)
if(bind(server_socket, (struct sockaddr *)&server_addr, sizeof(server_addr))){
if(listen(server_socket, 5) == -1){
if(client_socket == -1){
if(strcmp(buff_rcv, "exit") == 0)flag = 1;
else{
- 새싹교실/2012/AClass/5회차 . . . . 56 matches
if(r< e-c){
}else if(r>e-c){
}else if(r==e-c){
if(x1==x2){
}else if(x1 !=x2){
if(x1>x2)
else if(x1<x2)
if(i%k ==0){
if(a!=1){
}else if(a==1){
3. 3,4,6,7,9,3,2를 입력으로 넣은 후 2,3,9,7,6,4,3순서로 출력하는 프로그램을 작성해보세요.(스택)
if (push(40) == -1)
if(pop(&n) == -1)
if(sp<MaxSize)
}else
if(sp>0) //값튕�이I 있O을≫ 때納�
}else
-이진 탐색은 제어검색에서 가장 대표적인 방법으로 한번 비교동작이 끝난 후 그 결과를 이용하여 다음에 비교할 대상을 선택하는 방법으로 검색한다. 주어진 파일들을 일정한 순서대로 배열된 상태에서 원하는 값을 검색하는 방법이다.
•아래와 같은 출력이 나오는 프로그램을 어떻게하면 짤 수 있는지 생각해서 써보도록 합시다. 그 방법이 확실하다고 생각되면 짜보아도 좋아요
* 한번 비교 동작이 끝난 후, 그 결과를 이용하여 다음에 비교할 대상(K<Ki)을 선택하는 방법으로 검색한다.
- 프로그래밍잔치/첫째날후기 . . . . 56 matches
(이 부분은 Document Mode 이며, 해당 한 일들을 기억하는 사람들끼리 기억을 모아서 만듭니다. ^^ 그날 했었던, 일어난 일들에 대해 기억나는대로 간단히 정리해봅시다. 너무 길어지면 '프로그래밍잔치첫째날' 식으로 페이지를 나누어도 좋겠고요. )
일단 간단하게 ["프로그래밍잔치"] 소개를 하고 위키에서 ~~ 한 부분에 대해 설명을 하였다.
=== 제로위키 또다른 대화의 방법 ===
["상민"] 과 ["1002"] 는 위키에서의 대화에 대해 간단한 시연을 보여주었다. [1002/MP3공유프로그램] 에서 가상의 인물 1002, 상민, 쩡직 등이 대화를 하면서 페이지내용을 조금씩 정리하고, 점차 [음악공유프로그램], [소리바다와그누텔라] 페이지로 나누어져가는 모습을 중간중간 버벅이는 설명과 함께 시연을 했다.
시연뒤, 사람들끼리 위키에 대해 두 팀으로 나누어서 토론을 했다.
* 위키에서의 자유로운 링크가 오히려 위키를 읽는데 어려움을 가져오기도 한다. (링크를 따라가다보면 내가 처음에 읽었던 글로 다시 돌아오지 못하고 방황함)
* 계층위키에 대해서 - 개인 페이지 내에 계층위키로 페이지를 열고 시작한다면, 처음 쓰는 입장에선 특별히 편집에 대해 구애받지 않아서 좋을 것 같다.
한쪽에서는 진균, 덕준, 상협, 재동, 상규, 인수, 석천은 주로 위키 활성화와 위키글쓰기 스타일에 대해 이야기했다.
* 오늘 위키의 간단한 룰로서 들고 나온 개인페이지 내 '/' 구분자를 이용하는 계층위키에 대한 사람들의 생각
* 위키의 룰은 사용하는 사람들이 점차적으로 만들어야 하는데, 지금의 룰은 '규칙'처럼 선언을 해버린 모습같다. 위키의 룰은 결국 위키를 이용하는 사람들이 만들어가는 것 아닌가?
* ZeroPagers 의 위키에 자신의 공부내용을 정리하는 것은 '의무'인가? 자신을 위한 행동이 아닌가? 강요되는것은 아닌지. (실제로 자신의 공부내용을 글로 정리하기에 대한 어려움)
* 위키를 쓸때 이미 도큐먼트모드화 되어버린 글들이나, 시작부터 도큐먼트모드식으로 잘 정리된글들은 뭐라고 더 스레드 자체를 붙이기가 어렵다. 이미 도큐먼트모드화 된 글에 대해서 굳이 더 스레드를 붙일 이유도 없다.
* 위키에 다른 사람 참여를 원한다면, 처음부터 조금씩 점차적으로 글을 쓰는건 어떨까?
* 개인 페이지에 대해서 '말없이 고치기' 의 경우 해당 사람의 기분을 상하게 할 수도 있다.
* 구체적으로 '~한 점이 잘못되었다' 라고 길게 설명하는 것 보단, 그냥 조용히 적절하게 고쳐주는 것이 좋을 수도 있다.
위키 관련 토론발표, 정리가 끝난뒤, 잠시 휴식시간을 가지고, 간식으로 샌드위치를 먹었다.
=== Think Different! 낯선언어와의 조우 ===
7 개의 언어 Set 중 사람들은 1개씩 골랐다. 같은 언어를 고른 사람들끼리 Pair 를 구성, 해당 언어로 문제를 풀기 시작했다.
사람들은 서로가 고른 언어로 만든 Hello World, 구구단 을 시연하면서 각자의 개발환경, 프로그래밍 방법 등을 보여주었다. 그리고 JuNe 은 중간에 Smalltalk (Squeak)의 OOP 적인 특성, Scheme, Haskell 의 함수형 언어 페러다임에 대해 보충 설명을 했다.
~ 한 답변으로 ~가 있었고, 중간에 http://www.tiobe.com/tpci.htm 를 프로젝터로 보았다.
- DesignPatterns/2011년스터디/1학기 . . . . 55 matches
* DB 프로젝트를 하자?
1. DIP에서 의존관계 역전이 대체 무엇을 역전시킨다는 것인지 알게되었다. 기존에는 Highlevel 모듈이 Lowlevel 모듈에 의존하는 식이었지만 인터페이스를 사용하여 Lowlevel 모듈이 Highlevel이 제공하는 인터페이스에 의존하게 함으로써 설계를 더 유연하게 만들 수 있다.
1. 객체지향을 왜 해야하는가? 근본적으로 소프트웨어가 변화하기 때문이다. 객체지향은 변화에 잘 대응할 수 있는 설계 패턴이다.
1. 좋은 설계는 천재 프로그래머에 의해 한번에 만들어지는게 아니라 고민하는 프로그래머에 의해 지속적으로 만들어 지는 것 이다. 용기를 주는 말입니다.
1. 책에 나온 교차 통풍 패턴을 예로 들어 말하자면, 정적인 구조를 볼 때 마주보는 양 쪽 벽 비슷한 높이에 창문이 있는 사무실은 교차 통풍 패턴에 속하는 것처럼 보일 수 있다. 그러나 창문 앞에 커다란 건물이 있으면 바람을 막아서 창을 통해 바람이 들어오지 않는다. 교차 통풍 패턴은 마주보는 양 벽에 각각 창이 있다는 그 자체로 실내 공기를 쾌적하게 만드는 것이 아니라 창을 통해 바람이 불어들어오고 불어나감으로써 실내 공기를 쾌적하게 만드는 것이다. 따라서 교차 통풍 패턴에서 마주보는 양 벽에 창이 존재한다는 정적 구조 보다는 창을 통해 바람이 들어오고 나가는 동적인 행동 양식과 그것을 통해 실내 공기를 쾌적하게 만든다는 의도가 중요하다고 할 수 있다.
1. 책의 일부 내용으로 미루어보아 절차지향적 패러다임이 판칠때 OO를 들고 나와 절차지향의 수호자들''--절차지향으로 코드 잘 짜지도 못 하는 허접들--''과 격한 키배를 수도 없이 펼치지 않았을까…
3. 디자인이란 선택과 트레이드 오프, 리스크 관리의 연속이라는 점이 가슴에 와닿았습니다. 그래서 결국 자구 과제는 추가 사항이 없으므로 개판으로 짰습니다.
1. 저자는 열심히 getter와 setter를 깐다. get/set은 변수를 public으로 만드는 어려운 방법이다!
1. 멤버변수를 선언하면 꼭꼭 getter/setter를 만들었던 나를 반성...(나중엔 귀찮아서 public으로 한적도 있다지)
1. 책 1장을 이번에 다 읽었습니다. DB프로젝트 설계하는걸 구경 및 참여했습니다.
2. 프로젝트 설계를 하는게 매우 신기했습니다. 가장 최근에 했던 프로젝트가 약 2년 전이라 하나도 모르겠는데 모듈을 잡고 그 모듈의 역활을 잡고 그에 따라 인터페이스를 만들고 하는 걸보고 생각없이 그냥 순차적으로 프로그래밍 하려고했던 제가 참 답이 없었던거 같습니다.
3. "어떤 작업을 수행하는데 필요한 데이터를 요구하지 말라!!! 대신 정보를 가지고 있는 객체에게 일을 해달라고 부탁하라!" 항상 데이터를 get으로 꺼내와 바꿔놓고 set으로 넣어놨던 제 자신을 반성해 봅니다.
4. DB 수업을 듣지 않아서 완전히 참여는 하지 않았지만 DB팀이 하는 프로젝트가 진행되는 모습을 계속 보고 싶습니다.
1. CRC 모델링에 대해 설명하는 부분에 '''도메인 영역의 언어로 문제를 기술하라'''는 말이 인상적이었다. get과 set을 사용할 필요가 없다는 걸 와닿게 하는 말이었다. 언젠가 정모에서 ''체험 OO 현장''같은 활동을 해보고 싶음. 우리 모두 객체가 되어보아Yo :)
1. 쩌는 형님들은 잘 쓰시겠지만 코드가 꼬이는 모습을 보니 내가 하는 상속구현은 일단 슬퍼질 가능성이 매우 높으므로 생각에 생각을 해서 쓰던가 아니면 닥치고 인터페이스 구현을 해야겠다.
1. 오늘 스터디한 부분은 '왜 extends가 나쁜가'였다. 왜 나쁜지 예를 보았는데 와닿지 않아 이해하기 힘들었다.
* 다음시간에는 임상현의 SE 프로젝트인 WinMerge프로젝트를 도와주겠습니다!!!
1. 한번 짜봐야 할 필요성을 느낀다. Life Game으로 넘어가기전에.
1. 오늘은 LifeGame으로 바로 넘어가기 전에 [임상현]의 SE 과제인 파일 비교 프로그램을 설계해보았다.
1. MVC 모델에 맞춰 설계해야해서 [HolubOnPatterns]에서 좋다고 하는대로만 설계하지는 않음.
- ZeroPage . . . . 55 matches
[제로페이지]는 공부하고자하는 뜻이 있는 사람들이 모인 일종의 인력의 장입니다. 그 안에서 뜻이 같은 사람들을 만날수 있기를, 또는 자신이 아는 것에 대해 다른 사람들에게 전달해줄수 있기를, 또는 자신의 부족한 점을 다른 사람들로부터 얻어갈 수 있었으면 합니다. 개인의 이익들이 모여서 집단의 이익을 만들어가며, 집단의 이익을 추구하는 것이 곧 개개인들에게 이익이 되는 경지가 되었으면 합니다.
여러가지 힘든 여건 속에서도 뜻이 있는 사람들의 수고와 노력으로 지금까지 이어져 온라인/오프라인 활동을 계속하고 있습니다. 지금까지의 ZeroPage 는 ZeroPage를 거쳐간 사람들이 만들어놓은, 혹은 현재 활동중인 사람들의 과정에 대한 결과이며, 다시 많은 사람들에 의해 재창조되고 새로운 모습을 만들어나가게 될 것입니다. 언제나 '현재 진행형' 중인 학회이기를. 이 정의 또한 사람들이 스스로 깨뜨리고, 더 좋은 방향으로 바꾸어나가기를.
현재는 02년도부터 도입한 wiki 시스템을 통하여 각 프로젝트나 스터디를 진행할때마다 문서 산출물을 만들어 내어 양질의 정보들을 축적해 나가고 있다. 이 시스템은 스터디와 프로젝트를 팀으로 진행할때 공동 knowledge repository 의 역할을 함으로서 진행하는 회원 들에게 도움이 되고, 추후에 다른 회원이 비슷한 스터디나 프로젝트를 할때 그 wiki 페이지를 참고 함으로써 같은 곳에 쏟을 노력을 줄이고, 그 wiki 페이지를 다시 키워 나감으로써 지속적으로 양질의 정보를 축적하여왔다. 이로서 제로페이지의 wiki 시스템은 현재의 회원과 학교를 떠난 회원그리고 앞으로 제로페이지에 들어올 회원들 모두에게 도움이 되는 시스템으로서 자리매김하고 있다.
ZeroPage 라는 명칭에 대해서는 91학번 이찬근님(현재 중앙대학교 컴퓨터공학부 교수.)이 최초로 제시한 것으로 알려져있음. (from 테크니카(김승태) )
=== 제로페이지 행사들 ===
[프로젝트지도]
== 제로페이지의 연혁 ==
* 2013 삼성 Software Friendship 선정
* 2001 제로페이지 10주년
* 2000 제로페이지 소프트웨어 전시회 부활
* 1991 제로페이지 창립
* 2015 Samsung Software Friendship 4기 동아리 선정
* 12회 중앙대학교 프로그래밍 경진대회
* 삼성 Software Friendship 동아리 선정
* 11회 중앙대학교 프로그래밍 경진대회(Programming Championship)
* 장려상(4등) : 안드로이드 컨트롤러 Application - [이원희]
* 프로젝트 pinple : Pinple팀
* PinPle 프로젝트 - [변형진],[안혁준],[김민재],[정진경],[김수경],[서민관],[서영주],[권순의],[김태진]
* 10회 프로그래밍 경진대회
* 9회 프로그래밍 경진대회 우승
- 만년달력/인수 . . . . 55 matches
=== Calendar.java ===
public class Calendar {
public Calendar(int year, int month) {
public int[] getCalendar() {
if( isLeapYear(i) ) ++ret;
=== CalendarTestCase.java ===
public class CalendarTestCaseTest extends TestCase {
Calendar calendar = new Calendar(1,1);
public CalendarTestCaseTest(String arg) {
private int[] getExpectedCalendar(int start) {
for(int i = start ; i < calendar.getNumOfDays() + start ; ++i)
int real[] = calendar.getCalendar();
calendar.set(1, i + 1);
int expected[] = getExpectedCalendar(expectedSet[i]);
calendar.set(2, monthSet[i]);
assertEqualsArray( getExpectedCalendar(expectedSet[i]) );
calendar.set(4, i + 1);
int expected[] = getExpectedCalendar(expectedSet[i]);
calendar.set(2003, i + 1);
int expected[] = getExpectedCalendar(expectedSet[i]);
- 위키로프로젝트하기 . . . . 55 matches
== Wiki Project Life Cycle ==
1. 해당 주제로 페이지를 연다. 가급적이면 고유한 프로젝트 이름을 가지는 것이 좋다. 일반적인 용어에 대해서는 다른 사람들도 같은 이름의 페이지가 필요할 것이기 때문이다.
* ["프로젝트기록의필수요소토론"]에서 거론된 필수 요소들를 반드시 생각한다.
* Who - 이는 프로젝트를 진행하는 사람들이다. 해당 페이지에 대한 주도적인 책임을 지는 사람들이다.
* When - 프로젝트에서의 '기간' 은 아주 중요한 요소이다. 기간이 무한정인 프로젝트에는 힘이 없다. 기간 내에 해당 프로젝트를 끝내도록 노력하자.
* Why - 프로젝트를 하기 위한 동기이다.
* 페이지를 조금씩 키워나간다. 페이지 내용을 키워나가도 좋고, output 화일을 링크를 걸어도 좋다. 개인적 경험으로 볼때 (1002) 권장하는 방법으로는
* output 화일 링크걸기 - 다른 사람들이 직접 컴파일하거나 소스를 열어볼 수 있도록. 가급적이면 프로젝트 진행 초기버전부터 링크를 걸어주는 것이 좋다고 생각한다. (다른 사람들이 해당 사람의 사고 궤적을 볼 수 있다.)
* 공동 번역 - 영어 원문을 링크를 걸거나 전문을 실은뒤 같이 번역을 해 나가는 방법이다. Offline 으로만으로도 가능한 방법이지만 효율적인 방법으로 다른 방법들을 곁들일 수 있겠다.
* Journal/Schedule - 프로젝트 계획을 세운 것에 맞춰서 체크를 해 나가가고, 진행할 때 마다 그날의 ThreeFs 를 남긴다. 이는 ["컴공과학생의생산성"] 과도 관련이 깊다.
* 종료 - 원하는 목표에 도달했을 경우, 또는 Schedule 에 세운 계획에 맞춰 일이 완료되었을 경우에는 프로젝트를 종료한다. 만일 기간을 넘기고, 프로젝트를 진행할 의욕을 잃었다면, 프로젝트를 종료시켜라. (무기한 보류로 오래 끌고 있지 않도록 한다. 이는 추후 새 프로젝트를 열때 발목을 잡을 것이다.)
== 위키로 프로젝트 하기의 장점 ==
일반게시판에 경우 프로젝트가 어떻게 진행될까? 하나의 프로젝트당 하나의 게시판이 열려있어야 한다. 프로젝트가 10개라고 한다면 게시판이 10개가 열려있어야 하고, 각각의 글들은 시간순서대로 저장이 된다. 위키에서의 page 10개의 의미와 게시판 10개의 의미중 어떤 것이 더 cost가 적게 들까? 그리고, 시간순서의 글 index 나열방식과 텍스트 내의 하이퍼링크중심 글 나열방식중 어느것이 더 의미있는 정보를 담을까?
기존의 게시판방식이 장점이 있다면 '시간의 역사' 라는 점이 있겠다. 매일 작업일지를 쓰는 경우. 시간의 흐름에 따른 진행상황이 처음부터 주욱 보이기 때문이다. 반면 위키는 늘 현재성을 추구한다. 위키의 페이지는 늘 해당 주제를 중심으로 고쳐지는 글이다. 하지만, 시간의 역사 자체의 의미보다는 페이지 자체 내용, 즉 Content 중심의 사고라는 점에 더 무게중심을 두고 싶다. '시간의 역사' 자체가 Content 로서 중요하다면, 그것을 위한 페이지를 열어라.
== ZeroWiki 내에서 프로젝트 하기의 의미 ==
1. 현재 자신이 관심을 보인 분야를 다른 ZeroPagers에게 소개하는 효과를 가진다. 그럼으로써 해당 분야에 대해 먼저 공부한 ZeroPagers에게 암묵적으로 질문을 던지고 도움을 청하는 것이 된다. ZeroPage 에서 활동하는 사람 역시 다른 사람들의 페이지에 대해서 가급적이면 활발한 Feedback 을 보여주기 바란다.
* 이미 열려져 있는 페이지를 토대로 공부할 수 있다. 자신은 그 위에 또 하나의 글들을 추가하거나, 시대에 맞지 않는 틀린 글들을 고쳐주면 된다. 하나의 Page 이름 ( == Contents 라고 해도 좋을 것이다) 하에 많은 사람들이 해당 Page에 대한 '공헌자' 가 되는 것이다. 이는 새로운 프로젝트를 여는 것 보다 더 쉽고 빠르면서도 효율적으로 공헌하는 방법이다.
* 자신이 공부하거나 프로젝트를 추진하는 내용들을 문서로 정리하는 과정을 통해 공부한 내용을 확실히 자기 것으로 만들 수 있을 것이다. 그리고 또한 정리된 문서는 타인에게 하나의 좋은 공부자료가 될 것이다. 오프라인 세미나의 자료로 사용할 수도 있겠다. 자신이 한 일에 대해 정리하는 것 자체가 좋은 습관이라 생각된다.
* 더 효율적으로 이용하기 원한다면, 해당 지식을 이해한 상태에서 정리가 이루어져야 할 것이다. 만일 2~3명 이상 다른 사람들과 스터디를 하게 되는 경우, 해당 지식에 대한 사람들의 이해의 관점이 다를 수 있음을 알게 될 것이다. 여러 관점을 보는 것 또한 좋은 경험이 될 것이다. (외국의 대학에서는 위키를 해당 강의에 대한 공동필기장으로 쓰기도 한다.)
* 온라인이라는 잇점이 있다. 시간과 공간의 제약을 덜 받는다. 하지만, 오프라인을 배제해서는 안된다. 각각의 대화수단들은 장단점들이 존재한다. 위키의 프로젝트는 가급적 Offline에서의 프로젝트, 스터디와 이어져야 그 효과가 클 것이다. ZeroPage 의 ["정모"] 때 자신이 하고 있는 일에 대한 상황을 발표하고, 서로 의사소통을 할 수 있겠다.
- CheckTheCheck/곽세환 . . . . 54 matches
깔끔하게 짜려고 했는데 의외로 지저분해졌다.
처음엔 모든 말의 위치를 기준으로 검사를 하려고 했는데 굳이 그럴필요 없이 왕의 위치를 기준으로 검사를 하면 더 간단할것 같아 그렇게 짰다.
if (board[y][x] >= 'a' && board[y][x] <= 'z')
else if (board[y][x] >= 'A' && board[y][x] <= 'Z')
else
if (y >= 0 && y < 8 && x >= 0 && x < 8)
if (side == WHITE)
if (isInBoard(y - 1, x - 1) && board[y - 1][x - 1] == 'p')
else if (isInBoard(y - 1, x + 1) && board[y - 1][x + 1] == 'p')
else
if (isInBoard(y + 1, x - 1) && board[y + 1][x - 1] == 'P')
else if (isInBoard(y + 1, x - 1) && board[y + 1][x + 1] == 'P')
if (board[y + i * move[k][0]][x + i * move[k][1]] == EMPTY)
else if (whereSide(y + i * move[k][0], x + i * move[k][1]) == side)
else
if (toupper(board[y + i * move[k][0]][x + i * move[k][1]]) == 'R')
else
if (board[y + i * move[k][0]][x + i * move[k][1]] == EMPTY)
else if (whereSide(y + i * move[k][0], x + i * move[k][1]) == side)
else
- EightQueenProblemSecondTryDiscussion . . . . 54 matches
이번에 해결할때는 각 테스트 부분에 대해 시간측정을 하고 했습니다. (한 5분간격정도 기준) 중간에 테스트를 작은 테스트로 나눌때 빼고는 보통 한 테스트 당 5분정도 걸리더군요.
''알고리즘에도 OAOO를 적용할 수 있습니다. 정보의 중복(duplication)이 있다면 제거하는 식으로 리팩토링을 하는 겁니다. 이 때 정보의 중복은 신택스 혹은 세만틱스의 중복일 수 있습니다.''
if not len (UnAttackableList1):
if not len (UnAttackableList2):
## if level == 8:
## make clone and append the
self.EightQueenList.append (eq)
if Level == self.size:
self.EightQueenList.append (eq)
if not len (UnAttackableList):
## return before level. ( if level == 0: have no solution)
if not self.MakeEightQueen (Level + 1):
EightQueenProblemDiscussion 에서 지적해주신 것처럼, '''OOP를 써보자'''라는 목표로 다시 작성해보았더니, 디자인상의 고려 때문인지, 저녁시간이라 뇌력의 소모 때문인지는 몰라도 오히려 시간이 더 늘어버렸습니다. 이번 디자인은 과연 OOP를 제대로 쓴건지 의견을 구합니다.
디자인하면서, 가장 의문이 들었던 부분이 출력과 관계된 부분이었습니다. EightQueenProblem 자체가 출력이 필요한 문제인지, 아닌지로 시작된 고민에.. 결국 '출력이 필요하다' 라고 결론을 내리게 되어, 출력을 원할경우, 인자로 출력 소스를 넘겨주면 지시한 곳으로 출력하고, 부가적으로 output format을 지원하는 방식을 채택하였습니다.
제가 보기에 현재의 디자인은 class 키워드만 빼면 절차적 프로그래밍(procedural programming)이 되는 것 같습니다. 오브젝트 속성은 전역 변수가 되고 말이죠. 이런 구성을 일러 God Class Problem이라고도 합니다. AOP(Action-Oriented Programming -- 소위 Procedural Programming이라고 하는 것) 쪽에서 온 프로그래머들이 자주 만드는 실수이기도 합니다. 객체지향 분해라기보다는 한 거대 클래스 내에서의 기능적 분해(functional decomposition)가 되는 것이죠. Wirfs-Brock은 지능(Intelligence)의 고른 분포를 OOD의 중요요소로 뽑습니다. NQueen 오브젝트는 그 이름을 "Manager"나 "Main''''''Controller"로 바꿔도 될 정도로 모든 책임(responsibility)을 도맡아 하고 있습니다 -- Meyer는 하나의 클래스는 한가지 책임만을 제대로 해야한다(A class has a single responsibility: it does it all, does it well, and does it only )고 말하는데, 이것은 클래스 이름이 잘 지어졌는지, 얼마나 구체성을 주는지 등에서 알 수 있습니다. (Coad는 "In OO, a class's statement of responsibility (a 25-word or less statement) is the key to the class. It shouldn't have many 'and's and almost no 'or's."라고 합니다. 만약 이게 자연스럽게 되지않는다면 클래스를 하나 이상 만들어야 한다는 얘기가 되겠죠.) 한가지 가능한 지능 분산으로, 여러개의 Queen 오브젝트와 Board 오브젝트 하나를 만드는 경우를 생각해 볼 수 있겠습니다. Queen 오브젝트 갑이 Queen 오브젝트 을에게 물어봅니다. "내가 너를 귀찮게 하고 있니?" --김창준
예를 들어, Board 객체는 Queen 객체들을 만들고 배치, 자신의 상태를 출력하는 서비스를 지원하고, Queen 객체는 내가 다른 Queen 객체를 공격할 수 있는지 없는지 알려주는 서비스를 지원합니다 -- 더 나아가서 스스로 자기 앉을 자리를 찾아갈 정도로 똑똑하게 만들 수도 있겠죠. Queen 오브젝트 갑이 Queen 오브젝트 을에게 물어봅니다. "내가 너를 귀찮게 하고 있니(attackable에 대한 메타포임)?", 라는 부분은 OOP로 어떻게 표현될 수 있을까 직접 생각해 보는 것이 더 좋을 것 같습니다. OOP에서 객체끼리의 의사소통은 보통 메쏘드 호출로 이루어지고, 목적어는 인자의 형태로 전달된다는 점을 고려한다면 여러가지 방법이 떠오를 수 있겠죠.
계속해서 문제점을 발견하니 재밌습니다. 또다시 OOP에 도전해봤습니다. 기본 컨셉은, 체스 말과 보드 그리고 체스 플레이어가 등장합니다. 체스 말은 자신이 놓임으로써 다른 말을 "귀찮게 하는지"를 판단하고, 보드는 이러한 체스 말들이 놓이고 출력하는 일을 담당합니다. 마지막으로 체스 플레이어는 자신의 알고리즘에 따라 보드에 퀸을 배열하게 됩니다. 이번에 대각선 방향의 퀸을 체크하는 방법으로 기울기에 의한 방법이 떠올랐습니다. 덕분에 대각선 체크가 깔끔해진듯 합니다. 위에서 이야기해주신 방법 가운데 '스스로 자기 앉을 자리를 찾아간다'라는 부분은, 그렇게 되면 체스 말과 보드가 서로 tightly하게 연결될 공산이 커서 고민하다가 체스 플레이어를 탄생시킨 배경이 되었습니다.
음.. 아직 구현은 안해보고 그냥 생각해본거지만, 체스 말과 보드가 타이트하게 연결되어도 큰 문제는 아닐 것 같은데요. 보드를 Singleton 으로 모든 Queen들이 공유하는 객체로 생각해도 좋을 것 같고요. (Queen에 눈이 달렸던지, 그렇지 않으면 체스 플레이어같이 Queen이 존재하고 있는 세계에 대한 답을 내려줄 신 (?) 이 존재하던지 둘중 하나가 될듯 하다는. ^^;) 아직 OO 관점으로는 그냥 생각만 해보는중. --석천
OO 패러다임은 사물(사건 + 물건)들이 제 할 일을 스스로 알아 하는 신기하고 편리한 세상을 상정합니다. 친구가 집에 찾아왔다가 방을 어지럽히고 갔습니다. 자신이 갖고있는 "깨끗한 방 배치도"를 이용하거나 혹은 각 물건 당 붙어있는 "원래 위치" 꼬리표를 보고 갖다 놓을 위치와 거기로 이르는 경로를 판단, 직접 재배치를 해야하는 세상과, 벽에 지도 한장을 붙여놓고 마치 마술(automagically)처럼 "모든 물건은 제 위치로!"라고 외치면 말끔히 정리가 되는 세상, 어느 것이 OOP적일까요.
다시 머리가 아파오기 시작합니다. 이번에 ''자를 수 있는데로 잘라보자''라고 결심을 하게 된 배경중 하나가, NQueen2 에서 자신의 영역을 뛰어넘는 Manager가 되버리는 경우에 대한 이야기가 있어서 였습니다. 그렇다면 역으로, 위에서 superman과 object의 개념이나 경계는 모호해지는게 아닌가요? 그렇다면, Player가 따로 있는 개념보다는 Board에서 처리하는게 더 OO적인가요?
- Java Study2003/첫번째과제/방선희 . . . . 54 matches
-- 기존의 compile/link/load방식의 언어에 비해 source를 compile만 하면 최종 수행코드가 생성됨으로 개발시간을 단축할 수 있다.
-- class파일은 그 자체가 실행파일이 아니다. 따라서 그냥 수행될 수 없으며, 이 class파일을 읽어서 해석한 후, 실행해 줄 무언가가 필요한데, 그것이 바로 JVM이다.
2. VM이란 무엇이며, 이것을 씀으로써 얻는 이득과 단점은 무엇인가?
* VM이란? : 자바 언어 및 그 실행 환경의 개발자인 썬 마이크로시스템즈에 의해 사용된 용어이며, 컴파일된 자바 바이너리 코드와, 실제로 프로그램의 명령어를 실행하는 마이크로 프로세서(또는 하드웨어 플랫폼) 간에 인터페이스 역할을 담당하는 소프트웨어를 가리킨다.
* 장점 : 가상머신이 한 플랫폼에서 제공되면, 어떠한 자바 프로그램도 그 플랫폼에서 실행될 수 있다.
애플릿은 브라우저에 플러그인 형식으로 실행될 수 있는 자바 프로그램을 말하고 애플리케이션은 브라우저가 아닌 순수 자바 프로그램들을 말합니다. 굳이 따지자면 서블릿, 빈즈, JSP 모두 애플리케이션에 해당하겠죠.
* 2. 서블릿이나 JSP 는 J2EE의 구성원들로서 서버사이드 스크립트라고 합니다. JSP가 만들어진 이유가 뭐냐하면, 서블릿의 문제점을 해결하기 위해서라고나 할까... 웹 프로그래밍이란게 본질적으로 웹디자이너와의 협력이 불가피한데 서블릿의 경우에는 DISPLAY 부분을 수정하기 위해서 웹디자이너가 접근하기 어렵다는 단점이 있죠.. 이때문에 JSP가 만들어졌다고 알고 있습니다. JSP라는 파일은 웹 디자이너가 페이지를 수정하기 편하게 되어있다는게 장점이죠. JSP가 컴파일되면 서블릿이 됩니다.(이게 전부임...) 그리고 서블릿이 실행되면 실제 HTML 페이지가 클라이언트에게 전송되는 것입니다.
빈즈에 대해서 이야기 하자면 웹 서비스라는 큰 테두리 내에서 이야기를 해야 하는데, 간단하게 말하자면 빈즈라는 것이 만들어진 이유는 프로그램의 DISPLAY 부분과 LOGIC 부분을 분리해서 좀 더 확장성있고 유연한 시스템을 개발하고자 하는 취지에서 탄생한 것입니다.(언뜻 이해가 안될 수도 있음...)
프로그래밍을 할때 데이터베이스에 대한 접근이라든가 또는 다른 시스템에 대한 참조를 할때 굳이 그 시스템에 대해서 세세하게 알필요 없이 그저 외부에 주어진 인터페이스만을 이용해서 접근하면 됩니다. (예를 들자면 어떤 기능을 이용할때는 이런 메소드를 호출하면 된다. 어떤 값을 저장하기 위해서는 이런 메소드로 접근하면 된다 정도). 빈즈에 대한 내용은
실제로 J2EE 프로그래밍을 해야지만이 알 수 있을듯 합니다.
4. 자바로 "Hello World!"를 출력하는 프로그램 작성하기
* 이 내용들을 대충이라도 이해했으면 될꺼 같군요. 역시 마찬가지로 실제로 프로그램을 돌게끔 만들지를 못한거 같군요. 한번 해 보세요.
* 자바가 가지는 단점이 하나도 없군요..;; 단점도 같이 조사해 주세요. 언어가 가지는 특징이 꼭 장점만 가지라는 법은 없구요 그 단점을 알아서 그것을 극복하여 프로그래밍 하는 것도 필요하답니다.
eclipse 나 Editplus의 사용법을 제대로 알고 다시 코드를 작성해보겠습니다.
* Java란 프로그램언어는 enterprise 급 기업의 web시스템에서부터 작은 핸드폰에 이르기까지어디든지 사용할 수 있다. 다시 말해 Java를 할 줄 알면 어느 곳에나 적용 가능한 프로그램을 개발 할 수 있다는 말이다. 그 뿐만 아니라, Java로 개발된 시스템은 다른 언어로 개발된 시스템보다도 훨씬 쉽게 확장이 가능하다.
예를 들어 Java로 인사시스템을 개발하여 운영하고 있다가, 새로운 급여 시스템을 개발하고자 한다고 가정하자. 이때 Java는 다른 언어에 비해 기존 시스템과 쉽게 연동가능하며, 혹 기존 시스템이 Java가 아니더라도 그 일은 가능하다.
* Java는 보안능력이 뛰어나다. 예를 들어 네트워크를 통해 내 PC로 download된 Java로 개발된 프로그램은 일반적으로 그 능력이 제한된다. 다시 말해 바이러스처럼 작용할 수 없다는 말이다 (이점은 MicroSoft의 Active X와 비교된다).
예를 들어 모 site에 접속하였더니, applet이 내 PC로 내려와 수행되었다. 만약 이 applet이 내 PC의 중요한 정보를 가져가거나 지워버릴 수 있을까? 일반적으로 불가능하다(물론 가능하게 하는 방법도 있다. 하지만 일반적으로는 불가능하다).
* MicroSoft windows에서 신나게 실행되는 게임이 Linux에서도 잘 돌까? 아마도 답은 '아니다' 일 것이다. 그러나 만약 그 게임이 Java로 제작되었다면 답은 '예' 이다. 다시 말해 Java로 개발된 프로그램은 PC, Macintosh, Linux등 machine이나 O/S에 종속되지 않는다.
기존에 Sun OS에서 Java로 개발한 인사시스템을 Windows NT로 이관하고 싶다. 이때 프로그램 수정없이 가능할까? Windows NT를 지원하는 JDK가 있다면 가능하다. 그러고 Windows NT를 지원하는 JDK는 있다.
- MindMapConceptMap . . . . 54 matches
지식을 그래프 / 트리 구조로 표현하는 방법. 해당 지식에 대해서 중심이 되는 키워드, 단어들을 토대로 하여 지식을 정리해 나간다.
How To Read a Book 과 같은 책에서도 강조하는 내용중에 '책을 분류하라' 와 '책의 구조를 파악하라'라는 내용이 있다. 책을 분류함으로서 기존에 접해본 책의 종류와 비슷한 방법으로 접근할 수 있고, 이는 시간을 단축해준다. 일종의 知道랄까. 지식에 대한 길이 어느정도 잡혀있는 곳을 걸어가는 것과 수풀을 해치며 지나가는 것은 분명 그 속도에서 차이가 있을것이다.
MindMap 의 경우, 일반적인 책들과 같이 그 체계가 잘 잡혀 있는 지식에 대해 정리하기 편리하다. (SWEBOK 과 같이 아에 해당 지식에 대한 뼈대를 근거로 지식을 분류해놓은 책같은 경우에는 더더욱) 일반적으로 한 챕터에 대해서 5-10분정도면 한번 정리를 다 할 수 있을 정도로 필기할때 속도가 빠르다. 그러면서 해당 중심 주제에 대해서 일관적으로 이어나갈 수 있도록 도와준다. (이는 주로 대부분의 책들이 구조적으로 서술되어있어서이기도 할 것이다.)
http://www.conceptdraw.com/products/img/MindMap.gif
공부할때 한 챕터에 대해서 1시간정도 MindMap 을 구조적으로 그려나가면서 정리 한 뒤, 기억 회상을 위해 외워서 MindMap 을 한 3번정도 그려보면 (기억 회상을 위해 그리는데에는 보통 5-10분이면 된다. 반드시 '다시 기억을 떠올리면서' 그릴것! MindMap 이나 ConceptMap 이나 그리고 난 뒤의 도표가 중요한 것이 아니다. 중요한 것은 Map을 그려나가면서 기억을 떠올려나가는 과정이 중요하다.)
ConceptMap 은 Joseph D. Novak 이 개발한 지식표현법으로 MindMap 보다 먼저 개발되었다. (60-70년대) 교육학에서의 Constructivism 의 입장을 취한다.
MindMap 의 문제점은 중간에 새어나가는 지식들이 있다. 기본적으로 그 구조가 상하관계 Tree 구조이기 때문이다. 그래서 보통 MindMap 을 어느정도 그려본 사람들의 경우 MindMap을 확장시켜나간다. 즉, 중심 개념을 여러개 두거나 상하관계구조를 약간 무시해나가면서. 하지만 여전히 책을 읽으면서 잡아나간 구조 그 자체를 허물지는 않는다.
ConceptMap 은 'Concept' 과 'Concept' 간의 관계를 표현하는 다이어그램으로, 트리구조가 아닌 wiki:NoSmok:리좀 구조이다. 비록 도표를 읽는 방법은 'TopDown' 식으로 읽어가지만, 각 'Concept' 간 상하관계를 강요하진 않는다. ConceptMap 으로 책을 읽은 뒤 정리하는 방법은 MindMap 과 다르다. MindMap 이 주로 각 개념들에 대한 연상에 주목을 한다면 ConceptMap 의 경우는 각 개념들에 대한 관계들에 주목한다.
http://cmap.coginst.uwf.edu/info/cmap.gif
개인적으로 처음에 MindMap 보다는 그리는데 시간이 많이 걸렸다. 하지만, MindMap 에 비해 각 개념들을 중복적으로 쓰는 경우가 적었다. (물론 MindMap 의 경우도 중복되는 개념에 대해서는 Tree 를 깨고 직접 링크를 걸지만) MindMap 의 Refactoring 된 결과라고 보면 좀 우스우려나; 주로 책을 정리를 할때 MindMap 을 하고 때때로 MindMap 에서의 중복되는 개념들을 토대로 하나의 개념으로 묶어서 ConceptMap 을 그리기도 한다.
컴퓨터 프로그램에서도 MindMap 과 ConceptMap 을 그리는 프로그램이 많다. 하지만, 그렇게 효율적이지는 않은 것 같다. (아직까지 연습장과 펜 만큼 자유롭지가 않다. ["TabletPC"] + Visio 조합이라면 또 모를까;) MindMap 이건 ConceptMap 이건 기존 지식으로부터 연관된 지식을 떠올리고, 사고하고, 재빨리 Mapping 해 나가는 과정자체가 중요하기에. (["1002"]는 개인적으로 프로그래밍을 하려고 했다가; 그리 유용하단 느낌이 안들어서 포기했다는. 여러 프로그램들을 써 봤지만, 결국 도로 연습장 + 펜 으로 돌아갔다. ^^; 그리고 개인적으로 Map 자체를 도큐먼트용으로 보관하는것에 의미를 두지 않아서.)
* MindMap 과 ConceptMap 을 보면서 알고리즘 시간의 알고리즘 접근법에 대해서 생각이 났다. DivideAndConquer : DynamicProgramming. 전자의 경우를 MindMap 으로, 후자의 경우를 ConceptMap 이라고 생각해본다면 어떨까.
빠르게 책의 구조와 내용을 파악할때는 MindMap을, 그리고 그 지식을 실제로 이용하기 위해 정리하기 위해서라면 MindMap 을 확장시키거나, ConceptMap 으로 다시 한번 표현해나가는 것이 어떨까 한다. --석천
'''마인드맵은 지극히 개인적인 도구이다.''' ["데기"]가 마인드맵에 기록하는 것들은 주로 연상 작용을 일으켜 이미 알고있는 것을 쉽게 떠오르게 할 수 있는 열쇠들이다. 마인드맵에 적힌 내용들이 그 열쇠가 되기도 하지만 그보다 마인드맵을 그리는 과정이 그 열쇠가 되어준다. 잉크가 말라 잘 안나오는 파란색 펜을 선택해서 굵은 줄로 가지를 치고 조금 삐딱한 글씨체로 ''겨울 바다''라고 썼던 일이 나중에 그 마인드맵을 다시볼때 기억의 실마리가 되어준다. 그 실마리는 언어가 될 수도 있겠지만 이미지적인 요소도 무시할 수 없다. 굴림체 ''겨울 바다''와 ["데기"]체 ''겨울 바다''를 통해 연상되는 기억에는 분명히 차이가 있을것이다.
''MindMap 에 경우 중요시 하는 것 중 하나가 연상을 더욱 더 용이하게 하는 이미지이기도 하죠. --석천''
MindMap 의 표현법을 다른 방면에도 이용할 수 있다. 결국은 트리 뷰(방사형 트리뷰) 이기 때문이다. [1002]의 경우 ToDo 를 적을때 (보통 시간관리책에서 ToDo의 경우 outline 방식으로 표현하는 경우가 많다.) 자주 쓴다. 또는 ProblemRestatement 의 방법을 연습할때 사용한다. --[1002]
- PowerOfCryptography/조현태 . . . . 54 matches
사실 하라면 못할것도 없지만, 입력 형식과 출력 형식등을 새로 짜내고, 덧셈및 곱셈연산을 다시짜주면 간단히(?)해결된다.
하지만 지금은 일해야 하기때문에 시간이 부족한 관계로..
임시로 뒤에 두 숫자는 해결하지 못하는 소스를 짜두었다.
두번째 소스.. 숫자가 커도 저장하고 연산할 수 있을...듯 하다..;;ㅁ;; ㅎㅎㅎ MAX_LONG의 값을 10으로 줄이고 테스트를 해서 2개 이상의 경우에도 돌아가는 것은 알겠는데... 3번째 4번째 예제의 수가 원체 커야지 말이다. 연산의 결과가 좀처럼 안나온다. 곱하기 루틴에서 계속 더하고 있는듯..;;ㅁ;;
if (temp_result>mokpyo)
else if (temp_result<mokpyo)
else
cout << "결과값에 1을 입력할경우 프로그램이 끝납니다.\n";
if (1==intput_number)
if (FALSE==answer)
else
if (NULL!=who_next)
if (NULL!=who_next)
if (prv!=NULL)
if (prv!=NULL)
else
if (prv!=NULL)
else
if (input_number>9 || input_number<0)
if (number>=MAX_LONG)
- SoftwareEngineeringClass . . . . 54 matches
* 실습: 2001 년도까지는 '정보처리실습' 이라는 과목으로 실습과정이 있었으나 지금은 사라짐.
* ''Software engineering'', Ian Sommerville : 최근 세계적으로 가장 많이 쓰이고 있는 SE 교과서. 탁월.
* 컴퓨터 공학과 전공 수업을 통틀어 다섯 손가락 안에 꼽을 수 있을 정도로 중요한 역할을 하는 과목이다. 그러나 중앙대학교 컴퓨터 공학과에서 이 과목의 위상은 그다지 크지 않은 듯 하다. 내가 생각하는 첫번째 문제는 교재에 있다. 두번째는 비현실적인 실습내용이다. 구체적이고 실용적인 실습이 필요하다. 세번째는 학생들의 인식부족이다. 소프트웨어 공학 수업이 자신의 프로그래밍 커리어에 얼마나 많은 실질적 효용을 줄 수 있는지 전혀 깨닫지 못한다. 물론 이것은 대부분 수업 자체의 문제에서 연유한다.
* 수업에서 원하는 것을 얻지 못하는 경우 수강은 하되 독학 혹은 학생 차원의 그룹 스터디를 할 것을 강력하게 권한다. 졸업 후 어디를 가건 두고 두고 유용하게 쓰일 것이다. 외국 유명 대학 경우 AOD/VOD로 수업 내용을 볼 수 있는 곳이 많이 있다.
* 본인은 거의 독학으로 SE 공부를 했다. 수업시간에 구조적 프로그래밍(structured programming)에 대해 설명을 들었을 때는 전혀 감흥이 없었고 졸음까지 왔다. 기억나는 내용도 없다. 하지만 스스로 공부를 하면서 엄청난 충격을 받았다. OOP는 구조적 프로그래밍의 패러다임을 완전히 벗어나지 못했다! 구조적 프로그래밍을 Goto 제거 정도로만 이해하는 것은 표피적 이해일 뿐이다! 구조적 프로그래밍 하나만 제대로 익혀도 내 생산성은 엄청나게 향상될 것이다! (참고로 정말 구조적 프로그래밍이 뭔지 알고 싶은 사람들은 다익스트라의 6,70년대 이후의 저작들을 읽어보길 권한다. 칸트 철학을 공부하는 사람이 칸트의 1차 저술을 읽지 않는다는 게 말이 되겠는가.) --김창준
["1002"]: 분야가 너무 넓다. 하루 PPT 자료 나아가는 양이 거의 60-70장이 된다. -_-; SWEBOK 에서의 각 Chapter 별로 관련 Reference들 자료만 몇십권이 나오는 것만 봐도. 아마 SoftwareRequirement, SoftwareDesign, SoftwareConstruction, SoftwareConfigurationManagement, SoftwareQualityManagement, SoftwareProcessAssessment 부분중 앞의 3개/뒤의 3개 식으로 수업이 분과되어야 하지 않을까 하는 생각도 해본다. (그게 4학년 객체모델링 수업이려나;) [[BR]]
* 막무가내식의 coding에 관한 것이 아닌 직접적인 돈과의 연관성에 대해 알아가는 학문 같다는 느낌. 제한된 기간안의 적절한 cost를 통해 project를 완성(?) 하는 것. 아.. 정말 학기 중기 까지는 재미있었는데. 알바로 인한 피로누적이 수업을 듣지 못하게한 T-T 아쉬움이 너무 많이 남는다. 한번더 들을까..? 원래 이런건 한번더 듣는거 아닌가? ^^a 하하.. 상민이형 필기 빌려줘요. ^^;; -- 영현
* 저도 이 과목의 중요성은 많이 들었습니다만 학교수업으로는 크게 느끼지 못한것 같습니다. 수업도 지루하게 느껴지고 실제적으로 필드에 나갈때나 몸에 와 닿으려나요.. - 임인택
* 지금 듣는 사람들의 이야기를 들어서는 실습을 하는 과정이 투자하는 시간에 비해서 얻는 것이 좀 적은 것 같다는 생각들을 많이하던데... 실제로 팀을 이룬 사람들중에서 실무를 확실하게 경험해 보지 않은 사람들만 있는 경우에는 이게 더 심하다고 합니다. 전 내년에나 이거 들을 차례가 올것 같은데... 이경환 교수님께서도 이번을 마지막으로 하신다고 하고... 이 과목을 반드시 들어야하나 그런 생각도 좀 드네요. 저의 경우에는 이걸 청강(or 도강;;)식으로해서 이론적인 것을 듣고, 그냥 DB, PL을 들으려고하는데.. 어떨지 모르겠네요. (그런데 컴파일러 과목은 언제 생기는 거지 ㅡㅡ;;) - 박영창
''수업을 청강 할 정도로 내용이 있지는 않아. 그 이유는 딱 한 번만 이경환 교수님 수업을 들어 보면 알게돼. 차라리 관련된 책을 몇 권 보는 게 더 낳을 듯 해. 여튼 개인적으로는 여차여차해서 재수강으로 인해 이번 학기까지 2번째 듣고 있지만 수업 내용 보다는 우리과 수업중 가장 규모가 큰 (기간이나 팀인원수나) 팀 프로젝트를 해 보는 게 이 수업에서 가장 크게 배울 점이라고 생각해. 많은 팀원과 개발 계획부터 시작해서 최종 테스트까지의 일련의 프로젝트 개발 과정을 해 본다는게 확실히 도움이 되지. 그리고 배 보다 배꼽이 더 큰 문서가 좀 성질 나기는 하지만 경험상 해보는 것도 괜찮은 듯 해. --재동''
* 저희 반 같은 경우에는 현재 컨설팅을 하고 있는 박사과정 선배님이 수업을 맡고 있죠. 가끔가다가 자신이 컨설팅 하는 경험담을 들을 수 있어서 좋다고 생각합니다. 교수님반보다 프로젝트 실습 과정에서 피드백도 더 많은 편이고요. 사실 개인적으로는 소프트웨어 공학에서 요구하는 내용을 경험한 사람이 많지 않기 때문에, 더 자주 피드백이 필요하다고 느끼지만요.
* 나의 생각에 SE 수업을 제대로 배우고 있다면 학기가 지나면서, 혹은 최소한 학기가 끝난 후에 내가 혹은 내 팀이 프로그래밍 과제(꼭 해당 수업 것만 말고)를 하는 "생산성"에 향상이 있어야 한다. 아니 적어도 그런 과제를 수행하는 과정을 이전과는 다른 각도에서 볼 수 있어야 한다. 이것이 Here And Now의 철학이다. 조그마한 학기 프로젝트 정도를 진행하는 데에 소프트웨어 공학은 필요없다고 생각할런지 모르겠으나, 작은 것도 제대로 못하면서 큰 것을 논한다는 것은 어불성설이다 -- 특히 프로젝트 규모가 커질수록 실패확률이 몇 배 씩 높아지는 통계를 염두에 둔다면.
* 또한, 예컨대 지금 하도급 SI 업체에서 일하는 PM을 한 명 초대해서 그가 이 수업에 대해 생각하는 바를 경청하고, 또 반대로 그에게 조언을 해줄 수 있어야 한다. 만약 현업을 뛰는 사람이 이 수업에서 별 가치를 느끼지 못한다면 그것은 수업자체의 파산이다. 이것 역시 Here And Now의 철학이다. 우리가 배우는 것은 지저분한 진흙탕 세계에 대한 것이 아니고 깔끔한 대리석 세계에 대한 것이라고 생각할런지 모르겠으나, 지금 여기의 현실에 도움이 되지 않는다면 도무지 SE가 존재할 이유가 어디에 있겠는가.
* SE 교육은 첨탑 끝에서 계단 위로 내려와야 한다. 천상의 공부만 하고 지상으로 내동댕이쳐진 학생들은 다시 천상에 들어갈 기약없는 그 날까지 모든 것을 망각하게 된다 -- 더군다나 천상에 돌아가더라도 여전히 망각의 심연을 헤매거나 혹은 그 때 천상은 이미 또 다른 천상으로 떠나있는 상황이 종종 벌어질 것이다.
''SE는 문서''란 말을 실감했습니다. 수업에서 요구하는 바는 모든 작업을 하기 전에는 계획서를 작성하고, 계획서에 근거해서 작업을 수행한 뒤, 보고서를 작성하는 것으로 보입니다. 처음 만드는 계획서라 시간이 오래 걸렸겠지만, 다시 계획을 세울 때에 재활용 할 수 있을 것 같습니다. 계획된 프로젝트 진행을 연습해보는 좋은 시간이었던 것 같습니다.
하지만 역할별, 작업별로 만드는 계획서와 보고서에 쏟는 시간이 너무 많다는 생각은 저 뿐만이 아닐 것입니다. 심사시에는 계획서에서 언급하지 않은 활동을 실행했다고 딴지를 걸 정도로, 계획서대로 실행된 내용을 변경없이 실행하는 것이 프로젝트의 반복가능성을 평가하는 기준인것 같습니다. 설계와 구현 사이에서 계획대로 실행 안되는 부분을 극단적으로 느꼈는데, 예를 들어 클래스 다이어그램과 시퀀스 다이어그램이 [Refactoring]과 같은 코드 재구성 작업을 할 때마다 바뀌어야 했습니다. 다이어그램이 코드로 매칭되지 않기 때문에 코드를 바꿈은 물론 다이어그램을 바꾸는 이중의 수고를 겪어야 했습니다. :( --[Leonardong]
- joosama . . . . 54 matches
http://members.tripod.co.jp/pochi2_2/line_kisha.gif http://members.tripod.co.jp/pochi2_2/line_kisha.gif
http://members.tripod.co.jp/pochi2_2/line_kisha.gif http://members.tripod.co.jp/pochi2_2/line_kisha.gif
자리를 길게쭉 앉은관계로 많은 분들과는 대화를 못나눈듯...
||승한오빠[이승한]||타블로[최경현]||동영오빠[조동영]||현욱이 [sisay]||......||
말 별로 못나눠보신분들과는 너무 아쉽습니다 ㅎㅎㅎ;
암튼...짬뽕을 맛있게 먹고나서 집으로 가는길에..
5000마하의 속력으로 달려가는 센스!
http://bingoimage.naver.com/data3/bingo_36/imgbingo_80/kims1331/32788/kims1331_1.gif
나는 오랬동안 독도문제, 왜곡교과서 문제에 나름대로 관여해왔다.
그러면서 느낀것이 늘 공허한 외침으로 끝나버리고 마는 안타까움이었다.
독도문제만 하더라도,일본의 지리교과서는 물론이고, 일본에서 발행되는 어떤 지도이든지 간에 독도를 한국영토로 표기한 지도는 없다.
그러므로 당연히 일본에서 교육을 받고 자라나는 국민들은 독도가 일본영토라고 생각한다.
아니 다께시마가 아닌 독도라는 이름으로 한국이 실제적으로 지배하고 있다는 것을 알려주고 싶었다.
우리국민들의 분노도 분노로 끝나지 않고 향후의 적극적인 정부의 대책을 요구하게 되어,
그렇다면 우리정부는 왜 이렇게 미온적으로 대처하고 있는 것일까. 어떤 이는 독도의 소유권이 불명확해서 그렇다고 생각하는 사람도 있다.
그러나 그렇지가 않다. 서울대학교의 교수로 재직하시다가 독도학회 회장으로 있는 신용하교수는,
일본이 주장하고 있는 근거의 부당성을 일일이 지적하고, 우리의 영토임을 명백히하는 여러논문과 저서등의 출판으로,
그 두번째는, IMF사태가 불거진 이후에 대통령에 당선된 김대중 대통령이 외환 위기 극복을 위한 방안으로,
일본으로 부터 외환자금 300억불을 긴급히 들여오는 과정에서, 독도주변 12해리밖을 어업공동수역으로 양보를 해주었기 때문이었다.
즉 한국이 어려울때 일본은 돈으로 협상을 유리하게 진행시켜 왔던 것이다.
- 데블스캠프2006/월요일/연습문제/웹서버작성/변형진 . . . . 54 matches
* 유연한 마임타입 설정으로 하이퍼 텍스트는 물론이고, 이미지 삽입, 멀티미디어 재생, 파일 다운로드도 모두 가능함
* 디렉토리명으로 접근한 경우 index.html, index.htm, index.php 순서로 가져옴
* GET Method으로 넘어온 Query String를 처리한다.
* POST Method, COOKIE 등으로 넘어온 데이터까지 처리할 수 있으면 더 좋다.
if(!function_exists("mime_content_type"))
if(!$read = trim($read)) $cnt++;
else $cnt=0;
if($cnt==3) break;
if(preg_match("/(GET|POST) (\/[^ \/]*) (HTTP\/[0-9]+.[0-9]+)/i", $read, $t))
if(preg_match("/\/$/", $file))
if(is_readable($file.$idxf))
if(is_readable($file))
if($size['mime']) $mime = $size['mime'];
else $mime = mime_content_type($file);
else
if($read == "close")
elseif($read == "a")
elseif($read == "exit")
if($res)
if($to_read)
- 서버재조립토론 . . . . 54 matches
[정모]때 서버 재 조립에 대한 이야기가 나왔다는 이야기를 회장님을 통해 들었습니다. 일단 제가 회의에 참석하지 못하고 회의록이 올라온 것도 아니므로 어떻게 해서 서버 재조립 이야기가 나왔는지 알고 싶습니다. 일단 제 생각은 굉장히 부정적인데요. 서버가 하는 일이 거의 웹서버 내지는 소스 리파지터리로 사용되고, 대규모 소스를 컴파일한다거나 덩치가 큰 프로그램이 돌아가는것도 아니기 때문입니다. 게다가 동시접속 사용자수로 많지 않은걸로 알고있는데요. (물론 이런것들은 이제부터 하기 위해 하나 새로 맞춘다!! 면 할말 없지만..) 이 상황에서 굳이 새로 서버를 맞추는게 필요할지... [임인택]
네 충분히 그렇게 생각 하실수 있다고 생각합니다. 현재로서 서버가 하는일이 웹서버및 소스 Repository 로서의 역할이니깐요. 그리고 마지막에 프로젝트 때문에 필요할 경우에 나 새로 맞출 필요가 있다고 하신 말씀도 동감합니다. 현재 한 3주 동안 제로페이지 서버가 제대로 작동하지 않았습니다. 제로페이지 서버를 아주 자주 이용하는 입장에서는 많이 제로페이지 서버에 들어가니깐 서버가 죽어 있어서 여러가지로 불편했고, 현재 제로페이지 서버와 연계해서 돌아가는 위키 포탈을 운영 및 관리하는 입장에서는 치명적이었습니다. 제로페이지 회원들이야 안면이 있으니깐 이해해 주겠거나 좀 불편하고 말겠지 하고 생각하실수도 있지만, 위키 포탈 서비스가 우리 학회에서 제공을 해주는 서비스지만 외부에서 이용하는 사용자도 꽤 있었는데 왠만한 사용자들은 다 빠져 나간듯 하네요.. 그래서 지금은 급한게 다른 서버에서의 DB 지연을 기다리는 시간을 원래 1분에서 3초로 줄여서 그나마 임시 방편으로 수습을 했습니다. 또 프로젝트 진행을 하는데에도 제로페이지 서버가 자주 죽어서 진행을 제대로 할 수가 없었습니다.
제로페이지 서버가 현재 분명 문제가 있고, 이것을 해결해야 한다는데에는(즉 좀 가끔가다가 죽으면 뭐 어때 하는 분은 없을거라고 생각합니다.) 모두 동감 하실거라고 생각합니다. 현재 제로페이지 서버가 아주 자주 죽는 문제가 제로페이지 서버의 하드웨어 적인 문제인가, 소프트웨어 적인 문제인가, 인프라적인 문제인가 이 3가지중 하나라고 생각합니다. 인프라적인 문제는 다른 학회나, 동문서버도 안 죽고 하니깐 제외 하겠습니다. 그러면 하드웨어 아니면 소프트웨어 적인 문제인데. 솔직히 저는 리눅스가 오래 사용해서 자주 뻗는다는 것은 좀 이해가 가지 않습니다. 리눅스를 서버로 우리보다 훨씬 오래 사용하는 곳도 부지 기수일텐데 그런곳들이 모두 이런 문제를 겪고 있을까요.. 그렇다고 지금까지 관리가 안되서 그런것도 아니라고 생각합니다. 상민형, 석천이형, 영창이 모두 제가 생각하기에는 그 누구보다도 서버 관리를 잘 했다고 생각합니다. 물론 테스트를 해봐야 알 문제입니다. 오늘 회장님이 테스트 해본다고 했는데 가끔씩 서버가 죽는 문제를 어떻게 테스트를 해야할지 전 감이 안 오네요. 한 일주일정도 제로페이지 서버를 죽이고 다른것(다른 하드에) 웹서버를 깔아서 아주 아주 수시로(몇분 단위로) 그 웹서버로 들어와서 죽었는지 확인을 해야 하는데(물론 테스트는 테스트를 진행하는 한두사람만 하겠죠. 현재의 제로페이지 위키만 해도 하루 방문자가 1000이 넘는것에 비해서...)그게 참 어려운 문제라고 생각합니다. 또 한 일주일동안 서버를 죽이는것도 현재 위키위주로 돌아가는 제로페이지에도 치명적이구요. 이렇게 테스트를 해서 만약 하드웨어 적인 것이 문제라면 또 다시 서버를 업그레이드 한다음에 다시 서버를 설치하는 작업을 해야겠죠.
즉 제가 서버업그레이드를 제안하는것은 하드웨어적인 문제나 소프트웨어적인 문제를 동시에 해결하고자 제안한 것입니다. 위와 같은 테스트를 할경우 그에 따른 희생및 서버 관리자의 불필요한 수고가 필요합니다. 그리고 학회 운영 및 프로젝트에서도 많은 희생이 따름니다. 그리고 위와 같은 테스트도 확실한 방법은 아니구요, 여전히 불확실성을 내포한 방법입니다.
만약 서버를 업그레이드 하려면 회비로 할텐데(피시실 관리비로 받은) 제가 생각하기에 MT나 회식때 회비를 사용하는것도 좋지만 이렇게 제로페이지가 실질적으로 프로젝트를 하는데 많은 장애가 생기는 상황을 타개하는데 사용하는것도 참 회비를 유용하게 사용하는게 아닐까 생각합니다.(그래서 우리가 MT나 회식도 사비를 더 내더라도,,) 글을 쓰면서도 불안 하네요. 어제도 글을 쓰고 나서 저장했을때 여러번 서버가 죽어서...
결론은 저는 서버가 자주 죽는 문제의 해결책으로 서버 업그레이드를 제안합니다.(만약 다른식으로라도 서버의 빈번한 죽음을 막을수만 있다면 좋겠죠. 최소의 희생으로..) - [(namsang)]
저는 업그레이드가 필요하다고 생각합니다. 서버의 핵심은 안정성인데, 지금의 서버는 안타깝게도 그 역활을 제대로 수행해주지 못하고 있기때문입니다. 서버 업그레이드 시도를 하게되면, 이전의 컴퓨터에 문제가 없다고 판단될 경우 새서버의 보조 역활과 리눅스 테스트용 서버로 사용해도 큰 문제가 없다고 생각합니다.^^ 속도 측면에서는 현재의 서버도 전혀 문제가 없지만, 안정성이 낮은점은 이용자의 입장에서 불편하다고 느낄 수 밖에 없기 때문입니다.(실제로 많이 불편했답니다.ㅠ.ㅜ 꼭 필요할때만 죽어있어요..) - [조현태]
흠.. 저로서는 그다지~ -_-; 안정성이라는 것이 하드웨어적 안정성의 문제라면 모르겠지만.. 현재 서버의 잦은 다운 or 리부트는 하드웨어적인 문제로 보이지 않네요. 리눅스 설정 때문인 것 같은데... 좀더 지켜보는 일이 필요 할 듯합니다. 돈이 남는다면 적당히 램정도는 올리는 것이 좋겠지만.. 전체 서버를 재 조립하는건 좀 낭비같기도 하네요.
무엇보다 ZP서버가 서버로서 그다지 많이 활용되지 않으니까요. 현재로서는 기껏해야 웹서버정도? 그것도 소수로만... - [eternalbleu]
- 타도코코아CppStudy/객체지향발표 . . . . 54 matches
* Identity(식별) - 각 객체는 다른 객체로부터 분리되고 있고, 분별 가능해야 한다.
* Classification(분류) - 같은 자료구조와 행위를 가진 객체들은 동일한 클래스(class)로 분류된다.
상대적으로 각 객체는 소속 클래스의 인스턴스(instance)가 된다.
* Polymorphism(다형성) - 같은 연산 기능이 부여되어도 그 기능을 수행하는 클래스에 따라 다른 행위로 나타날 수 있다.
예를 들어 '이동(move)' 이라는 기능이 '교수'라는 클래스에 적용될 때는 자택의 이사가 될 수 있으나, '승용차'라는 클래스에 적용되면 특정 목적지로 일정한 시각에 정해진 속도로 움직이는 행위가 될 수도 있다.
즉, 주어진 클래스에 서브클래스(subclass)가 있다면 서브클래스의 모든 객체들은 소속 클래스의 모든 속성이나 연산기능을 상속받게 된다. 따라서, 서브클래스를 정의할 때에는 수퍼클래스(super class) 로부터 상속받는 내역들을 중복하여 정의할 필요가 없게 된다.
* 객체지향이란 프로그래밍을 좀더 현실생활과 비슷하게 하기 위해 나온 개념이다.
* 모든 프로그램의 요소를 각각의 독립적인 객체로 생각한다.
-- black box의 개념 : 그 객체들이 어디에 쓰이는 것인지는 알아도 그 객체들이 어떤 구조로 되어 있으며 어떤 데이타를 유통시키며 어떤 알고 리즘으로 움직이는가 하는것은 모른다는 것이다.
=== 절차적 프로그래밍과의 비교 ===
|| '''절차적 프로그래밍''' || '''객체지향 프로그래밍''' ||
|| 함수로 이루어짐 || 클래스로 이루어짐 ||
|| 구조적 프로그래밍 || 객체지향 프로그래밍 ||
|| 프로그램을 기능단위로 세분 || 프로그램을 object 단위로 세분 ||
|| 소,중형 프로그램에 적합 || 대형 프로그램 작성에 적합 ||
* 캡슐화(encapsulation) : 객체의 내부적인 사항과 객체들간의 외부적인 사항들을 분리시킨다. 이렇게 캡슐화된 객체의 행위는 외부에서 볼 때는 구체적인 아닌 추상적인 것이 되므로 정보 은닉(information hiding) 개념이 존중된다. 주어진 클래스의 특정 연산 기능은 메소드(method)라고 한다. 캡슐화는 무슨 메소드로 구현되었는가에 구애받지 않고 추상적으로 정의된 연산 기능을 통해 객체가 사용되고 시스템의 상태(state)를 변화시키도록 해준다.
* sharing : 자료 구조및 행위의 공유화(sharing)는 계층 관계에 놓여 있는 클래스들 간의 상속성(inheritance)으로 가능하다.
서브클래스가 수퍼클래스의 변수와 메소드들을 상속받을 때 필요에 따라 정의가 구체화(specification)되며, 상대적으로 상위층의 클래스 일수록 일반화(generalization) 된다고 말한다.
즉 함수나 데이터가 그것이 속해있는 객체전용으로 된다는것을 말한다. 좋은 예로 자동차를 들수있다.
그렇다면 객체를 사용하여 생기는 마지막 목적지의 차이는 어디서 생기는 것일까? 바로 유저가 머릿속에 생각한 목적지의 차이, 즉 주어진 데이타의 차이에서 오는것이다.
- CppUnit . . . . 53 matches
C++ 의 또다른 형태의 UnitTestFramework 로 CxxTest 가 있다.
Visual C++ 6.0 기준으로 설명한다. 다른 언어들에 비해 환경설정을 위해 해야 할 부분이 많으므로 인내심을 가지고 따라해야 한다.
* Library 화일 생성 : {{{~cpp ...cppunitexamplesexamples.dsw }}} 을 연뒤 {{{~cpp WorkSpace }}}의 {{{~cpp FileView }}}에서 {{{~cpp CppUnitTestApp files }}} 에 Set as Active Project로 맞춰준다.(기본값으로 되어 있다.) 그리고 컴파일 해주면 lib 폴더에 library 화일들이 생성될 것이다.
이로서 가장 기본이 되는 셋팅은 완료된다.
== 준비 2 - CppUnit을 사용할 프로젝트 열 때 해주어야 할 기본 세팅 ==
* 해당 프로젝트에만 적용시
* 해당 프로젝트가 있는 곳의 debug 등의 디렉토리에 해당 lib 디렉토리에 있는 testrunnerd.dll 을 복사해준다. 이는 Project Setting - Post-Build-step 의 Post-build-command 에 다음을 추가해주면 컴파일 할때마다 dll 화일을 자동으로 복사해준다.
* Project Setting - Code Generation - Use Run-Time library 를 다음으로 맞춰준다.
* app 클래스에 다음과 같은 runner 실행을 위한 코드를 추가한다. 다음 코드를 추가함으로써 프로그램 실행시에 GUI Test Runner 가 실행된다.
// Dialog Based 의 경우는 dlg.DoModal ()을 실행하기 전에 적어준다.
#ifndef CPP_UNIT_EXAMPLETESTCASE_H
CPPUNIT_TEST_SUITE_END(); // TestSuite 의 끝. 이로서 해당 Test Case 에 자동으로 suite 메소드가 만들어진다.
#endif
#include "stdafx.h" // MFC 인 경우.
#include "hostapp.h" // MFC 인 경우 해당 App Class
#ifndef _SIMPLE_H_
CPPUNIT_TEST_SUITE_END();
#endif
GUI Programming 을 하기 위해 winmain 이 시작인 코드의 경우(MFC GUI Programming 포함) 콘솔창이 뜨지 않는다. 이 경우 GUI Runner 를 실행해줘야 한다.
로 수정한뒤, testrunnerd.dll 를 해당 프로젝트화일에 복사해주면 된다.
- Emacs . . . . 53 matches
TextEditor 입니다. [vim]과 CrimsonEditor 와 같은 목적으로 쓰입니다.
vim에서는 기본 모드가 항상 편집 모드이고 쓸수있는 mode가 고정되어 있는 반면에, emacs에서는 주 모드와 부 모드를 입맛에 맞게 바꾸어 쓸수 있습니다. 예를 들어 사용자는 text-mode라는 텍스트 문서를 편집하고 작성하는 기능을 가진 주 모드를 쓰면서, 글자의 색을 바꿔주거나 들여쓰기 내어쓰기등을 사용자 정의대로 기능을 수행하는 부 모드를 쓸 수 있습니다.
받아서 압축을 풀고 바로 사용할 수 있습니다. 하위 폴더중에 bin 폴더가 있는데 그 안에 있는 실행파일이 있습니다.
* emacs 환경 그대로 remote/ssh/docker/sudo 등을 바로 사용할 수 있게 해줍니다.
* shell-mode 와도 잘 결합하여 remote 에 쉘로 바로 떨어질 수도 있습니다.
* tramp 로 sudo 사용하기 : M-x-f {{{/sudo::/etc/}}}
* tramp 로 ssh 사용하기 : M-x-f {{{/ssh:you@remotehost|sudo:remotehost:/path/to/file}}}
Python을 Emacs에서 쓰려니까 환경변수 설정하는데 한 번 삽질하고 경로 잡아주는데 또 삽질 했습니다.
Emacs는 HOME 이라는 환경변수를 이용해서 사용자 설정 파일인 .emacs(이름 앞에 점 하나 있습니다.)파일을 읽어들입니다. 이 환경변수에는 경로가 들어가는데 그 경로에 사용자 설정 파일이 있어야 합니다. 제어판->시스템->고급->환경변수 안에 HOME이라는 환경변수를 추가하고, 그 경로 밑에 .emacs를 설치해야 합니다. .emacs 파일 내용은 다음과 같이 만듭니다.
경로 잡아주기는 순전히 주변지식이 부족한 탓이었습니다. 파이선 폴더가 윈도우 환경변수인 PATH에 등록되지 않아서 그랬습니다. 이 역시 제어판->시스템->고급->환경변수 안에서 수정할 수 있습니다.
* 일반적으로 사용자의 HOME 디렉토리 밑에 저장됩니다.
* Emacs 처음 설치 시에는 해당 파일이 존재하지 않는 경우도 있습니다. 이럴 때는 당황하지 마시고 HOME 디렉토리 밑에 .emacs라는 이름으로 파일을 만들어 주시면 됩니다.
* .emacs 파일을 작성하거나 편집할 필요가 있을 경우에는 C-x-f ~/.emacs로 해 주면 Windows 환경에서도 알아서 HOME 디렉토리 밑에 만들어 줍니다.
* 주로 Emacs Wiki에서 받은 파일들이나 다양한 .el 파일들을 넣는 데 사용합니다.
* ELPA에서 받은 파일들도 기본적으로 이쪽으로 들어가게 됩니다.
* Emacs의 확장 기능은 .el(Emacs Lisp 확장자) 파일을 읽어오는 방법으로 이루어진다. 따라서 .el 파일만 있으면 확장 기능을 사용할 수 있는데, ELPA 이전까지는 통일된 .el 파일의 배포 방법이 없었기 때문에 기능을 추가하려면 직접 파일을 (EmacsWiki나 github이나 다양한 방식으로) 다운받아야 하는 불편함을 감수해야 했다. ELPA는 이러한 흩어진 파일(= 확장 기능)들을 통합해서 받을 수 있는 기능을 제공하고 있다.
* Emacs 버전 24 이후부터는 기본적으로 포함되어 있음.
* M-x package-list-packages로 다운 받을 수 있는 Package list를 볼 수 있음.
* 해당 패키지 줄에서 i(install)로 설치할 패키지의 선택, d(delete)로 지울 패키지 선택, x(execute)로 선택된 작업들 실행.
* 강제 삭제 : d -> e(혹은 x)로 해당 패키지를 지울 수 있긴 한데 제대로 지워지지 않는 경우가 좀 있다(...). 그럴 경우는 해당 파일이 ELPA의 폴더 안에 들어가 있기 때문에 ~/.emacs.d/elpa에 들어가서 해당 패키지의 폴더를 지워버리면 된다. 그 후 Emacs를 다시 기동해서 M-x package-list-packages를 보면 해당 패키지가 설치 항목에서 지워진 것을 볼 수 있을 것이다.
- JavaScript/2011년스터디/7월이전 . . . . 53 matches
* 정말로 간만에 javascript 스터디를 시작했습니다ㅠ 전에 하던 json2.js 분석(읽기?)을 하는데 전에 하던것이 기억이 안나서 고생했습니다. javascript의 새로운 과제로는 Dongeon and Dragon!!(가명)이라는 게임을 만들기로 했습니다. javascript외에도 HTML이라던가 CSS등의 것들도 기억이 나질 않아서 지워저 버린 기억을 복구하는 것을 우선시 해야겠습니다. - [박정근]
* 근 한달만의 자바스크립트 스터디입니다.. 한달만에 전부 다 까먹었네요ㅠ 기억나는건 var정도. 일단 전에 하던 json2-js의 분석을 마무리하고 이번엔 직접 짜보기로 했습니다. 과제는 싸이냅소프트의 입사 퀴즈 던전 앤드 드래곤(?)으로 결정. AI에서 배운 웜프스 월드같은 느낌입니다. 아아.. 다시 공부해야겠어요... - [서지혜]
* JavaScript 스터디 진짜 오랜만이네요. 전에 보다 만 소스 코드를 다시 읽는데 기억이 도통 안 나서 난감했습니다. 오늘로 대충 마무리는 지었지만 집에서 다시 한번 읽어봐야겠어요. 계속 책만 읽으면 지루하니까 뭔가 만들어보기로 했는데 마침 현이가 적당한 실습거리를 알려주었네요. 함께 만들어보면 재미있을 것 같아요. JavaScript에 대해 많이 까먹었기 때문에 책을 다시 빌려왔으니 책을 보며 어떻게 구현할지 생각해야겠어요. - [김수경]
* 오른쪽 화살표를 누르면 >가 한칸씩 오른쪽으로 이동, 이전 좌표는 .으로 대체된다.
* 추가구현 : 왼쪽으로 이동하기
* 임시로 적는 의문점
* 저는 코드를 하나도 준비안해서.. 이제야 프로젝트 만들고 있었습니다. 자바스크립트 지식도 책으로 문법만 대충 본 정도라 굉장히 피상적임ㅠㅠ 흑흑 챙피하네요 처음에 둘이 얘기할때 못알아들었어요ㅠㅠ 너무 책만 보지 말고 코드도 좀 봐야할 거 같아요. 직접 짜보기도 하고.. 과제하면서 좀 공부해봐야 겠네요. 자바스크립트 스터디의 목적을 동네 파괴하기로 해야될듯ㅋㅋ 재미있다능 - [서지혜]
* 지난주에 키보드 이벤트를 처음에만 처리하고 그 다음에는 못 처리한다고 생각했는데 오늘 그럴리가 없다는 생각에 다시 테스트해보았습니다. 해봤더니 역시나 키보드 이벤트를 못 받는 것이 아니었네요. 이벤트 처리기에서 document.write()를 쓴 게 문제였습니다. 그런데 그 문제는 해결했지만 객체를 어떻게 설계할지가 새로운 고민거리네요. - [김수경]
* 저는 자바스크립트 파일이 로드가 안되었는데 로드가 안되는게 아니라 자바스크립트에 에러가 있었던 거란걸 알게되었습니다. 개발자 도구 좋군요.. 자바스크립트 로드하는 법을 알았으니 이제 키보드 이벤트를 받아야겠습니다. 마우스 이벤트까지는 성공했어요*-_-* 참 사소한것에 기뻐하게 되네요ㅋㅋ 새로운 언어를 배우니 초심자로 돌아간 기분입니다. 헬로월드를 처음 띄웠을 때의 그 시절로.....''아련'' 다음시간까지 키보드 이벤트를 받는 코드를 작성하겠다고 했었나?요? 해야겠네..요.. - [서지혜]
* 공부하면 할수록 HTML이라던가 웹에 대히 공부해야겠다는 생각만 듭니다. javascript만 사용한다는 것은 무리인것 같아요. 이번에는 연속적으로 키보드 이벤트를 받는 문제였는데 생각보다 쉽지 않네요ㅠ 은 innerHTML은 또 처음 들어요;; 여튼 더 공부하겠습니다!! - [박정근]
* 오늘은 PairProgramming으로 [http://probablyinteractive.com/url-hunter URLHunter]를 만들어보았는데 setInterval 함수를 사용하여 계속 페이지 주소를 바꿔주는 부분까지 성공했습니다. 처음에는 setTimeout 함수를 사용해서 생각처럼 제대로 작동하지 않았어요. 다음주엔 새내기가 스터디에 합류할텐데 매우 기대됩니다. 우리가 했던것들을 설명해주고 같이 [http://probablyinteractive.com/url-hunter URLHunter]를 만들어보려고 해요. 시간이 너무 걸리지 않도록 어떻게 접근할지 주말에 미리 생각해보겠습니다. - [김수경]
* PairProgramming으로 위의 주소로 들어가면 보이는 URLHunter를 만드는데 도전하였습니다. 제가 혼자 생각할 때에는 어디서부터 어떻게 접근해야 할지 막막했었는데 Pair로 하니까 점점 먼가가 되가는것 같았어요. 어떻게 하면 주소창을 마음데로 조작 할 수 있는지 더 고민해 봐야겠습니다. - [박정근]
* 그냥 읽는 것이 아니라 궁금한 점을 찾아오세요~ 따로 적어와도 되고 위키에 적으면 더 좋고ㅎㅎ
* 오늘은 새 멤버가 두명 합류했습니다. 기쁘기도 하고 앞으로 스터디를 어떻게 진행해야할지 고민도 조금 되네요! /URLHunter는 점점 그럴듯해지고 있습니다. 지난시간에 문제가 됐던 부분을 해결했어요. 다만 급하게 문제를 해결해나가느라 코드가 지저분해진 게 문제네요. 다음주에 기능이 다 구현될 것 같은데 코드 정리도 좀 해야겠습니다. - [김수경]
* 합류한 두명 중 한명입니다. javascript랑 html이랑 차이를 생각해보는데 살짝 시간이 걸린거 같기도 하네요. ..으아니! 진짜로 그냥 저장만 했는데 실행이 되네!! 라는 생각도 들었어요. 얘내도 참 재미있는 언어인거 같네요. 빨리 배워서 제대로 스터디 궤도에 오를 수 있도록 해야겠어요. -[김태진]
* 함수가 프로퍼티로 사용될 수 있다??-43p 라는 표현이 있는데 그게 어떤 것인지 잘 모르겠더라구요.
* 객체와 프로퍼티. 저희는 객체의 하위개념, 속성쯤으로 프로퍼티가 있다는 결론을 내렸지만 document.write와 같은 것은 어떤지 와 같은 것들은 아직 고민중에 있어요. 정확히 객체와 프로퍼티의 관계는 어떻게 되는건가요?
* 불리언 타입 변환 -41p에서 만약 불리언 값이 문자열 문맥에서 사용되면 true는 문자열"true"로 변환된다와 같은 말이 무슨말인지 정확히 모르겠어요. 저희가 알아낸 것은 true를 write내에 쓰면 1로 인식한다는 것뿐이었어요.
* 저희는 저번주 숙제로 함수까지와 바로뒤 객체까지 새로 공부해보았는데요. 둘다 이 명령어들은 대체 뭔가, 이건 무슨뜻이야?! 가 다반사였습니다. 이해할 수 없는 명령어들은 나중에 다시 나올것이라 가정하고(..) 몇몇개 넘어갔구요. 개념적인 것에서 불리언, 함수, 객체, 프로퍼티등에 대해서 다시 고민해봤어요. 우선 문자열로 숫자를 써놓고 그것을 연산하면 숫자로 바뀐다는 것이 어떤 것인지 좀 명확히 해보았구요, 불리언은 T/F==1/0라는 것에 대해도 보았지요. 함수는 C에서 배웠던 것과 유사해서 크게 어려움은 느끼지 않았구요(앞에 함수 선언을 할 필요가 없더군요!). 문제는 객체/프로퍼티 였는데, 뒤에있는 예제들을 통해 어떤 객체의 속성? 쯤으로 프로퍼티가 있다는 결론을 내렸어요. (이것을 토대로 코딩해보았을때도 저희 예상대로 나왔지요.) ..또 띄어쓰기 문제때문에 한참 고민한 것도 생각나네요. -[김태진]
- JavaStudy2002/영동-3주차 . . . . 53 matches
3번째의 코드는 comment solving을 보인거니 감안하십시오. 3번을 그대로 한다면, 입력 데이터와, Bug 사이의 인터페이스를 맞추는 함수가 필요할것입니다.
사소한 것이지만 지적한다면 class main 의 이름을 Main 으로 바꾸시기를 강력(?) 추천합니다. Java 에는 지켜야하는 규칙인 문법외에 [http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html 코딩 약속]을 추천하고 있씁니다. 과거 MS라면 헝가리안표기법 이겠지요? 현재의 .net 에서 헝가리안표기법은 없어졌습니다. --["neocoin"]
if(count==0)
if(way=='0')//북
else if(way=='1')//북동
else if(way=='2')//동
else if(way=='3')//남동
else if(way=='4')//남
else if(way=='5')//남서
else if(way=='6')//서
else if(way=='7')//북서
if(x>=aboard.board.length)
if(x<0)
if(y>=aboard.board[0].length)
if(y<0)
== 1차로 참고 ==
if (way == '0') //북
} else if (way == '1') //북동
} else if (way == '2') //동
} else if (way == '3') //남동
- JavaStudy2004/자바따라잡기 . . . . 53 matches
자바(JAVA)하면 섬나라 자바를 연상케 한다. 그러나 미국 사람들에게 자바는 에스프레소 커피로 유명한 커피 체인점을 생각 하게 된다. 유래는 커피체인점이고, 커피의 대명사로도 사용된다.
그런데 언제부터인지, 네트워크의 대명사인 인터넷에서 이 자바 커피가 하나밖에 없는 독특한 향기를 뿌리고 있다. 인터넷을 좀 아는 사람이라면 자바를 들어보지 못한 사람은 거의 없을 것이다. 자바는 월드와이드웹 상에서 프로그램을 실행할 수 있게 하는, 네트워크를 기반으로하는 언어로, 인터넷 프로그래밍 언어의 표준이 되었다.
자바가 인터넷 세계에서 관심의 초점이 된 것은 먼저 세계를 하나로 엮는다는 인터넷을 기본 환경으로 하고 있으면서 인터넷에 연결되는 수많은 서로 다른 운영체제(OS)들에서 동일한 모습으로 프로그램을 실행할 수 있다는 점이다.
요약해서 말하면 자바는 인터넷의 기반인 웹의 프로그램 언어(Language)라고 이해하면 된다.
자바는 가전 제품에 들어갈 소프트웨어를 만들기 위해 탄생했다. 자바를 개발한 사람은 선 마이크로시스템즈 사의 제임즈 고슬링(James Gosling)이라는 사람이다. 그는 특정한 컴퓨터 칩에 대해 컴파일하여야 하는 널리 알려진 컴퓨터 언어인 C 언어의 문제점, 또 가전 제품의 긴 수명으로 인한 완벽한 호환을 가진 소프트웨어의 개발 요구, 가전 제품에 사용될 소프트웨어의 높은 신뢰성 필요 등의 문제에 대한 해결방안을 모색 해야만 됬다.
이 문제를 해결하기 위하여 고슬링은 C와 C++를 개조해서 해결을 해보려고 시도를 했던 것이다.그래서 C언어의 불필요한 부분이나 문제가 될 부분들을 제거한 새로운 언어를 개발하게 되였는데, 이것이 바로 자바인 것이다. 최초로 자바를 이용한 프로젝트는 가전 제품과 전기 기기들을 통합하여 가정 환경에 새로운 인터페이스를 제공하는 소위 그린 프로젝트(Green Project)라는 것 이였다. 그러던 1993년, 그래픽 기반의 월드와이드웹이 발표되고 자바의 개발자들은 곧 이러한 웹 기반의 응용 프로그램에는 자바와 같은 기기(컴퓨터 및 그 운영체제)로부터 독립된 언어가 이상적이라는 것을 발견하였다. 그리하여 그들이 개발한 것이 나중에 핫자바(HotJava)로 이름이 바뀐 웹러너(WebRunner)라는 웹 브라우저였다. 이것이 최초로 자바를 지원한 웹 브라우저가 되었다. 자바라는 이름은 지역의 어느 커피점 안에서 얻었다. 그래서 지금은 웹 페이지에서 항상 끓고 있는 커피의 상징을 볼 수 있다.
*1. 최근의 컴퓨터 분야의 용례에서, 가상머신은 자바 언어 및 그 실행 환경의 개발자인 썬 마이크로시스템즈에 의해 사용된 용어이며, 컴파일된 자바 바이너리 코드와, 실제로 프로그램의 명령어를 실행하는 마이크로프로세서(또는 하드웨어 플랫폼) 간에 인터페이스 역할을 담당하는 소프트웨어를 가리킨다. 자바 가상머신이 일단 한 플랫폼에 제공되면, 바이트코드라고 불리는 어떠한 자바 프로그램도 그 플랫폼에서 실행될 수 있다. 자바는, 응용프로그램들이 각각의 플랫폼에 맞게 재작성 되거나, 다시 컴파일하지 않아도 모든 플랫폼에서 실행되는 것을 허용하도록 설계되었다. 자바 가상머신이 이를 가능하게 한다. 자바 가상머신의 규격은 실제 "머신"(프로세서)이 아닌 추상적인 머신을 정의하고, 명령어 집합, 레지스터들의 집합, 스택, 가배지를 모은 heap, 그리고 메쏘드 영역 등을 지정한다. 이러한 추상적, 혹은 논리적으로 정의된 프로세서의 실제 구현은, 실제 프로세서에 의해 인식되는 다른 코드, 혹은 마이크로프로세서 그 자체에 내장될 수도 있다. 자바 소스 프로그램을 컴파일한 결과를 바이트코드라고 부른다. 자바 가상머신은, 실제 마이크로프로세서의 명령어에 그것을 대응시키면서 한번에 한 명령어씩 바이트코드를 해석하거나, 또는 그 바이트코드는 실제 마이크로프로세서에 맞게 JIT 컴파일러라고 불리는 것을 이용해 나중에 컴파일될 수도 있다.
*3. IBM에서 말하는 가상머신이라는 용어는 또한, 내재된 콘트롤 프로그램에 의해 교대로 관리되는 운영체계를 의미하는데 사용되기도 한다. 그렇기에, IBM의 VM/ESA는 IBM S/390시스템 상의 다중 가상머신을 조정할 수 있는 것이다.
*4. 그 밖의 경우에서의 가상머신은, 컴퓨터를 실행하는 운영체계나, 어떤 프로그램을 의미하기 위해 사용되기도 했었다. 이를 인용하면
"실행되고 있는 프로그램은 간혹 가상머신이라고 불려진다. - 실제 물리적인 현실로 존재하지 않는 머신. 가상머신 아이디어는, 그 자체로 기술의 역사에서 가장 멋진 아이디어 중의 하나이며, 소프트웨어에 관한 아이디어의 진화에 있어 매우 결정적인 단계라고 말할 수 있다. 그것을 따라잡기 위해, 과학자와 기술자들은 프로그램을 운영하는 컴퓨터가, 단지 세탁이나 하는 세탁기가 아니라는 것을 인식해야만 했다. 세탁기는 그 안에 어떠한 옷들을 넣는다 해도 여전히 세탁기이지만, 컴퓨터는 새로운 프로그램을 넣는다면, 그것은 완전히 새로운 기계가 된다.... 가상머신, 그것은 소프트웨어를 이해하는 방법이며, 소프트웨어의 설계가 기계의 설계와 다르다는 것을 생각하게 한다."
- RUR-PLE/Etc . . . . 53 matches
* 현재 지도에 있는 모든 씨앗을 수확하는 로직을 짠다.
if next_to_a_beeper():
if next_to_a_carrot():
if not next_to_a_carrot():
if not next_to_a_carrot():
if front_is_clear():
else:
* 이 경우에서의 처리를 while 문을 사용하여 처리한다.
if next_to_a_carrot():
if not next_to_a_carrot():
if not next_to_a_carrot():
if front_is_clear():
else:
if front_is_clear():
else:
* 현재 월드를 한바귀 도는 로직을 만든다.
if front_is_clear():
else:
* 현재 월드를 한바귀 도는 로직을 만든다.
if right_is_clear():
- ZeroPage정학회만들기 . . . . 53 matches
* ZeroPage는 그간 수많은 활동을 하며 화려한 경력을 갖고 있으며 대내외적으로 인지도가 높고 현재에도 중앙대학교 컴퓨터공학과의 학회로써 열심히 활동하고 있었습니다. 하지만 정작 컴퓨터공학과에서는 정학회로 인정해주지 않아 적지 않게 활동에 차질을 빚어왔습니다. 2003년 컴퓨터공학과가 학부제로 바뀌면서 정원이 늘어난다고 합니다. 점점 커져가는 과에서 진정으로 인정받는 ZeroPage 가 되었으면 하는 바램에서, 그리고 여러가지 활동을 할 때 원활히 진행될 수 있도록 하기 위해 정학회로 ZeroPage를 승격시키고자 합니다.
* 학교에서 최소행정단위가 단과대학이므로, 학과차원에서 지원해줄수 있는 것은 없다.
공과대학의 공간은 심각할 정도로 절대적으로 부족하기 때문에 공간을 얻어내는 것은
학과행사로 받아서 한 것이라고 합니다. 학생들의 모임 지원금은 거의 힘들 것이라는 것이
학과장님 말씀으로는 우선 저희가 '지도교수님'을 모시는 것이 나머지 문제를 자동으로
서버보관은 지도교수님 연구실에 자동으로 보관되지 않을까 하는 것이었고
지도교수님을 어떤 분으로 할지 학회내에서 여론조사를 하는 것은 어떨까 합니다.
* 학회실에서 세미나를 비롯, 스터디 그룹, 프로젝트 진행, 정기모임, 토론 등등 학술 활동의 공간을 확보할 수 있다.
* 과에서 정식으로 인정한 학회라는 점에서 중앙대학교 컴퓨터공학과를 대표하는 학회로 거듭난다. (홍보효과 -> 회원들 활동 활발)
* 정식으로 인정한 학회가 되면 학회홍보에서 명분을 얻을 수 있으며 회원들의 적극적인 참여를 유도할 수 있을 거라고 본다. 따라서 활발할 활동을 기대할 수 있다.
* 지금처럼 개인적 친분으로 연구실에 넣어두며 이사다닐 필요가 없다.
* 정학회로 인정해주느냐의 여부는 학과장님에게 달려있으므로 학과장님을 설득시킨다. 어떻게?
== 구체적으로는..? ==
* 우선 시험기간이므로.. 이른시일내에(수삼일내에) 학우들에게 동의서를 받고 졸업선배들에게 e-mail 을 보내 추천을 부탁드린다. 동시에 ZeroPage 정학회화에 대한 공론화를 꾀한다.
- 학생들의 동의를 받는게.. 서명을 받는것보다는 2003년도 개강총회때 안건으로 올리는건 어떨런지요.. -임인택[[BR]]
- 둘다 타당성이 있다고 보는데.... 음.. 우선 개강총회는.. 학생회의 일년 사업을 결정하는 자리인 반면, 종강총회는 한 해를 뒤돌아 보는자리라서... 그렇다고 개강총회때 하는것도... 새내기들 들어오기 전에 (정학회가 되는쪽으로)결정되었으면 좋겠다고 생각합니다. - 임인택
위에서는 정학회로서의 책임과 의무는 없는 것 같은데. 제로페이지가 정학회가 된다면, 해당 행사를 열때마다 정학회로서의 역할을 해야 한다고 생각한다. 즉, 특정 세미나를 한다고 한다면, ZP 내의 세미나도 있겠지만 적절한 수의 학과 내 외부 세미나나 이벤트를 주최할 수 있어야 한다는 것이지. (이때는 물론 학생회에게 지원을 요청할 수 있겠고) 정학회라면 더이상 이전의 동아리 스타일의 내부모임단체가 아니다. 정학회가 된다고 한다면 자신에게 이득이 되는 일인 동시에 과내사람들에게도 동시에 이득이 되는 일이 되어야 한다.
정학회로 승격되기 위해 여러가지 홍보대책을 세우는 것도 의미있는 일이겠지만, 그 전에 '정학회인 경우 할 일'들을 직접 실천할 수 있다면, 그리고 과 내에서 보기에도 정식학회가 있음으로서 과내 사람들이 이득을 얻게 되고, 정식학회로서의 자격이 있다고 보여진다면, 홍보의 절반이상은 저절로 되리라 생각한다.
ZeroPage 에서의 대내외 활동경력은 주로 90-94년도에 집중되어있고, 그 이후에는 외부 활동은 거의 미천하다고 생각한다. 내부적인 활동은 최근들어서 비교적 활발했다고 생각하지만, 여전히 학과 사람들 대상으로 하는 열린 행사들은 거의 없었다고 판단한다. 외부 행사에 도움을 준적이 있지만 (주로 JuNe 형 주도로 열리긴 했다) 과내 사람들에게 홍보가 되진 않았다. 여전히 과에서의 ZeroPage 의 행사들은 바깥일일 뿐이라는 생각을 한다. (그리고, 외부 타 학교나 직장 등에서 중앙대하면 ZeroPage 의 이름보다는 JStorm 이 더 먼저떠오르는게 아직은 당연한 현상이다.)
* 과내 학술제 주도 (이건 이번 경우에도.. 늘상 하던일이긴 하고)
- 데블스캠프2011/둘째날/후기 . . . . 53 matches
* 사실 스크래치를 접해보는 건 이번이 두 번째군요. 2009년 데블스캠프에서도 한 번 다루었던 걸로 기억합니다. 스크래치는 원래 아동 교육용으로 만들어진 프로그래밍 언어라고 들었습니다. 그런데 아동용이라고 대충 넘기기에는 기능도 생각보다 훨씬 다양하고 능력도 강력한 것 같아요. 1학년 떄는 이래저래 미숙한 부분이 많아서 그런 부분을 볼 여유도 없었는데 다시 보면서 약간 여유가 있어서 그런지 잘 만들었다는 느낌이 새삼 들었습니다. 그리고 이번에도 2009년 때처럼 게임을 만들기로 했었는데, 이번에는 다행히도! 제대로 돌아가는 게임을 만들었습니다. 사람이 그래도 발전이 있긴 하군요. 앞으로도 열심히 해야겠습니다.
* 겉모습에서 일단 코드가 나오지 않으니 확실히 잘 모르는 사람도 생각하기 쉬울 것 같습니다. 다만 반복문 구문 블록이 여러개로 나뉘어 있는데 비슷비슷해 보여서 좀 불편하기도 하더군요. 하지만 중요한건 언어의 사용법이나 형태가 아니라 만드는 사람의 실력에 달렸다는걸 만들면서, 그리고 다른 분들이 만든 물건들을 보면서 다시 한 번 느꼈습니다. 어릴 때부터 이런걸로 교육받고 자라면 코딩 잘하려나 -_-
* Scratch참 재밌었습니다 ㅋㅋ. 하다보니까 로보랩느낌도 나고 코딩도 미리 만들어져있는 명령어 끌어다하니까 다른 언어보다 쉽게 느껴지구요. 고양이 움직이는 것도 귀여웠고 생각보다 꽤 다양한 것을 구현할 수 있어 놀랐습니다. 마지막에 핑퐁게임을 만들었는데 생각보다 버그가 많아서 아쉬웠네요 ㅜㅜ.
* 처음해보는 Scratch 였습니다. 그림을 끌어다 놓고, 명령어들을 끌어다가 추가시키면서 프로그램 진행을 구성하고... 독특하고 신기했습니다만 정작 익숙해지기에는 힘들었습니다. 코드로만 하다가 이렇게 짜여진 틀을 움직인다는게 어색해서 짜고있던 게임을 완성시키지는 못 한것이 아쉬었다.
* 제가 처음 준비했던 컨텐츠였는데 성현이가 세미나를 진행하니 감회가 새로웠습니다. 저는 09년 때 간단한 인터페이스만 가르쳐줬는데 학우들이 창의적인 컨텐츠를 많이 만든 반면 성현이는 기능 하나하나 상세히 설명해주어서 제가 몰랐던 기능도 많이 알게 되었습니다. 수업을 들으면서 플래시 같은 애니메이션을 만들었는데 갑자기 게임을 만들라고 해서 소닉이 좌우로 이동하는 것밖에 못 만들어봤네요 ㅋㅋ 그래도 이동할 때의 모습을 바꾸는 데에서 삽질 끝에 성공해서 뿌듯뿌듯했습니다. 저의 Scratch 작품의 포인트는 역시 '음악' 입니다.
* Scratch를 어제 블럭 쌓기라고 해서 무슨 테트리스 같은 거라고 생각했는데, 오늘 보니 아 이런거구나 하는 것을 알게 되었습니다. 꼭 프로그램 짜기 전에 의사 코드로 하는 것 같더군요a. 마지막에 성현이가 게임 만들으라고 해서 뭐 할까 하다가 슈퍼마리오 배경도 있고 해서 그걸로 좀 비슷하게 하려고 했는데, 파이프에 닿았을 때 그걸 넘어가게 하는 걸 하려다 망했네요 ㅋㅋㅋ 그러다 보니 그냥 마리오가 움직이고 뛰기만 하는 걸로 끝났습니다. 좀 더 도구를 잘 활용하지 못함이 아쉽긴 했습니다.
* Scratch!! 오늘 했던것중에는 가장 재밌게 했습니다. (하나는 약간 강의위주였고, 하나는 저희에게는 좀 어려웠으니까요..;) 저는 학점 나올 시즌이 되었기에 그에 걸맞게(?) A학점 잡기 게임을 만들었어요. F학점의 추격을 피하며 B학점을 챙기고, 최종적으로는 A를 몰아넣어서 잡으면 되는거 였지요. 사실 다른데서 만들어 놓은 마우스 피하기에 약간 영감을 받은거였지만.. 아무튼 3시간이 부족하다 느낄정도로 재밌게 했어요. 다만 끝에 시간이 모자라 다른사람들이 한것들을 함께 보지 못한건 좀 아쉬웠던거 같아요.
많은걸 보여드리지 못해 아쉬움이 남는 세미나였군요. 특히 집에선 잘되던게 왜 학교와서 노트북으로 하면 안되는지... (!!)
* Hacking != Cracking. Cheat Engine, 자바스크립트를 이용한 사이트 공격? 툴을 이용한 Packet Cracking 등 개인적으로 무척 재미있던 세미나였습니다. 뭐... 사실 많이들 관심은 있지만 실제로 하는 걸 보는 건 흔치 않은 만큼 이번에 세미나를 볼 수 있었던 것은 여러모로 행운이었다고 생각합니다. 더군다나 질문을 꽤 많이 했는데 선배님이 친절하게 답변을 해 주셔서 정말 감사했습니다. 웹 쪽은 이래저래 공격을 당할 가능성도 높은 만큼 나중에 그쪽으로 가게 된다면 관련 기술들도 배워둬야 하지 않을까 싶군요.
* 직접 디버거로 바이너리를 수정하고 어셈 코드를 수정하는 모습이 참 신기했습니다. 또 책에서 패킷이 이러저러하다 하는 것 보다 주고받는 그 패킷의 모습을 직접 보는 느낌도 또 좋았습니다. 개인적으로 군대에서 크랙미를 몇 개 리버싱 해보기도 하고 흥미를 가지고 있던 부분인데 누군가가 그런걸 직접 하는걸 보는게 역시 많은 공부가 되는 것 같습니다. 웹쪽 보안에 대해서는 그렇게 많이 생각해본 적이 없었는데 실제로 보니까 흥미가 많이 생기네요. 이쪽도 나중에 추가로 공부해보고 싶습니다.
* Craking이 우리가 보통때 말하는 Hacking이었다는걸 처음(사실 저번에 한번 들은거 같지만) 깨달았네요. 또, 이전까지 그런 툴을 만드는 사람들은 도대체 어떻게 만드는가! 싶었는데 어셈을 이용해서 만들곤 한다는 걸 보며, 음.. 좋군(?) 쇼핑몰중에 지금도 간단한 방법으로 털리는 곳이 있던데, 비밀번호까지 털 수 있다거나 하는걸 보니 정보보안의식에 대한 자각이 들었던거 같기도 하구요.(캐시 충전사건으로 문제가 생긴적이 있다는걸 듣고 충격!) 뚫을 수 있는 사람이 막을 수도 있다고 하니 정보보안쪽을 공부해보고 싶다면 Craking에 대해서도 아는게 좋을거 같군요. 저는 처음보는 형이었는데, 형 세미나에서 많은걸 배울 수 있었던거 같습니다.
* 리버싱 프로그래밍 하는 것을 보고, 패킷을 주고 받는 것을 얻어서 사용한다던지 또 웹에서 javascript injection으로 쿠키를 얻어서 그것을 사용할 수 있는 사이트에서 다른 아이디로 로그인 하는 것도 보았다. 정말 신기했지만 그렇게까지 하기 위해서는 무지하게 다양한 내용을 알아야 할 것 같았다.ㅜ
* 이번 주제는 1학년 때 새싹 스터디 하면서 잠깐 보여주었던 내용을 다시금 보게 되어서 재미있었습니다. Cheat Engine을 직접 사용해 볼 수 있는 부분도 상당히 매력있었습니다. 많이들 듣던 해킹에 대한 정확한 정의도 알게 되었고 그 과정이 어떻게 되는지 조금이나마 알 수 있었던 부분이었습니다. 세미나에서 보여주고자 했던 게임이 생각되로 되지 않아 아쉽긴 했지만, 한편으로는 저렇기 때문에 보안이 중요하다는 것도 다시금 생각할 수 있었습니다.
* 씐나는 Cheat-Engine Tutorial이군요. Off-Line Game들 할때 이용했던 T-Search, Game-Hack, Cheat-O-Matic 과 함께 잘 사용해보았던 Cheat-Engine입니다. 튜토리얼이 있는지는 몰랐네요. 포인터를 이용한 메모리를 바꾸는 보안도 찾을수 있는 대단한 성능이 숨겨져있었는지 몰랐습니다. 감격 감격. 문명5할때 문명 5에서는 값을 *100 + 난수로 해놔서 찾기 어려웠는데 참. 이제 튜토리얼을 통해 어떤 숨겨진 값들도 다 찾을 수 있을것 같습니다. 그리고 보여주고 준비해왔던 얘제들을 통해 보안이 얼마나 중요한지 알게되었습니다. 보안에 대해 많은걸 생각하게 해주네요. 유익한시간이었습니다. 다음에 관련 책이 있다면 한번 읽어볼 생각이 드네요.
실제 Real World 에서 어떤 방식으로 프로젝트가 진행되고 (물론 Base이긴 하지만) 이것이 어떻게 작동하게 하는지, 또한 작동중 얼마나 많은 노하우가 들어가는지
링크 : [:데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/김동준 Machine-Learning의 제 코드입니다.]
* 어떤 방식인지 느낌은 오는데 수식에 대한 이해도가 좀 부족했던 것 같습니다. 프로그래밍 잘하려면 수학을... 이라는 얘기는 많이 들었지만 실제로 겪어보니까 좀 충격이 큰 시간이었습니다.
* List로 무식하게 짰는데 답은 잘 나왔습니다. 한참만에
* 코드도 올려야하는데 이거 원 안좋아서 망설여지네요. hashmap으로 다시 짠 걸 올립니다. 식을 잘못 계산했더니 천단위의 양수가 나와버리는 경우가 있었습니다. 어익후 확률계산식을 잘못 줄였었네요.. 이런 순수 알고리즘 재미있군요ㅋㅋ
* 수식은 어떤식으로 문서를 분석하는건지 알것같은데.. 파일입출력을 제대로 못해서 시도조차 못해봤습니다.ㅠㅠ 기초 능력이 부족한 탓이네요, C로 train 파일을 입력받아 변수에 단어별로 저장하고 단어의 개수를 세는것까지는 했지만 그 이상은 하지 못했습니다.. 능력부족을 실감했어요
- 2학기파이선스터디/서버 . . . . 52 matches
if name in self.users:
conn.send('Already resistered name\n')
conn.send('[%s] Welcome!\n'%name) # 본인에게 가는 메시지
if name not in self.users:
if msg[0] != '/':
if cmd[0] == 'quit':
conn.send(msg)
if self.users.handleMessage(name, data) == -1:
self.request.send('Name ? ')
if self.users.addUser(self.request, self.client_address, name):
line.append(data)
if data[-1] == '\n':
if __name__ == '__main__':
if self.isinEntry:
self.send('Already resistered name\n')
self.append(Users(self.ID, self.message, self.isinEntry))
self.send('[%s] Welcome!\n'%self.ID) # 본인에게 가는 메시지
if self.ID not in Users:
if msg[0] != '/':
# if cmd[0] == 'quit':
- RandomWalk/임인택 . . . . 52 matches
ToyProblems 에서 느낀바가 있어 RandomWalk 를 여러가지 방법으로 풀어보려 합니다.
=== 소스 1 : 2학년때 자료구조 숙제로 작성 (약간 Iterative한것 같다) ===
if(xPos+direction_x[k]<0 || xPos+direction_x[k]>sizeX-1
if(board[xPos][yPos]==0)
if(NumOfBlock==0)
cout << "input size of the board" << endl;
if(sizeX>40 || sizeY>20)
cout << "input start point;" << endl;
if(xPos>40 || yPos>20)
if(j==sizeY-1)
cout << endl;
cout << "loop : " << loop << " times" << endl;
for(iter=board.begin(); iter!=board.end(); ++iter)
if(xPos+direction_x[k]<0 || xPos+direction_x[k]>sizeX-1
if(board[xPos][yPos]==0)
if(NumberOfUnvisitedBlocks==0)
cout << endl;
cout << "Total : " << LoopCount << " times repeated " << endl;
for(iter=roachJourney.begin(); iter!=roachJourney.end(); ++iter)
// if the roach moved outside of the board ignore that case.
- SpiralArray/Leonardong . . . . 52 matches
아이디어는 JuNe 선배가 말했던 것이다.(저번 자바 컨퍼런스에서 였던가..) 한 번 나선형으로 진행되는 것을 같은 층으로 본다. 그러면 가장 바깥쪽은 1층, 다음 안쪽은 2층 이런 식으로 안쪽으로 갈수록 높이가 높아진다. 한 사람이 피라미드를 한 바퀴 돌고 다음 층으로 올라가면서 자신이 들렀던 곳이 몇 번째인지, 좌표는 무엇인지 기억한다. 한 층을 다 돌면 시작했던 자리로 돌아오기 때문에 중복해서 기억한 좌표는 지우고 다음 층으로 이동한다.
하지만 여지껏 그러한 접근법을 알고서도 TDD로 풀지를 못했었다. 매번 나선형 "행렬"에 어떻게 숫자를 새길지만 생각했기 때문이다. 그러다 보니 2차원 배열의 인덱스를 조작하는 수준에서 생각이 벗어나질 못했다. 하지만 사실은 움직임(이전의 인덱스 조작), 움직인 점들, 행렬을 따로 생각할 수 있었다. 아! 이렇게 테스트 하면 되겠구나!
TDD로 풀었다는 점이 기쁘다. 처음부터 너무 메서드를 어디에 속하게 할 지 고민하지 않고 시작한 것이 유용했다. 그 결과로 예전 같으면 생각하지 못했을 Direction클래스와 그 하위 클래스가 탄생했다. 또한 행렬은 최종 결과물을 저장하고 보여주는 일종의 뷰처럼 쓰였다.
현재는 행렬 구성이 비효율적이다. 움직였던 기록을 가지고 행렬을 구성하기를 반복한다.이것을 수정할 때 좀더 효율적으로 작동하게 만들어야겠다. Mover클래스, Array클래스의 종료검사, 테스트 케이스는 확실히 Refactoring이 필요하다.
if ( board.isWall( self.next(coordinate) ) ):
def setBoundary( self, start, end ):
self.end = end
if ( coordinate[ROW] < self.start ):
elif ( coordinate[ROW] >= self.end ):
elif ( coordinate[COL] < self.start ):
elif ( coordinate[COL] >= self.end ):
self.setBoundary( self.start+amount, self.end-amount )
self.history.append( Point( self.coordinate, self.moveCount+1 ) )
self.history.append( Point( self.coordinate, self.moveCount+1 ) )
self.matrix.append( [Point((-1,-1),-1)] * size )
if ( point.value < 0 ):
self.board.setBoundary(start=0, end=self.size)
if __name__ == "__main__":
goStraight 전 버전은 Direction클래스를 이용해서 이동한(벽을 만나면 이동하지 않음) 위치를 얻어내고, 이동한 기록을 저장하는 형식이었다. 벽에 대한 검사가 겹치는 것 같아 mover에서 바로 벽을 검사하고 벽에 들어서면 종료하는 것으로 만들었다. 그러고 보니 따로 카운트 할 필요가 없어 moveCount변수를 없앴다. mover가 종료 조건도 검사하는데 board 넓이만큼 이동했으면 끝나는 것이기 때문이다.
그런데 벽에 들어서야 종료하다 보니까 mover를 벽에 들어가기 전에 위치로 되돌려놓아야 했다. 그래서 direction에 모두 previous 메서드가 생겼다. 한데 다음 번 goStraight를 할 때는 이미 이동했던 기록이 남아있게 되었다. 그래서 매번 goStraight를 할 때마다 마지막 이동 기록을 삭제했다. 그러다보니 board크기가 1일 경우는 이동한 기록이 모두 지워져버리는 것이 아닌가. 조잡하지만 예외 처리를 해주었다.
- 토비의스프링3/오브젝트와의존관계 . . . . 52 matches
* getter와 setter를 통해 조회, 수정할 수 있는 프로퍼티를 가진 오브젝트를 의미한다.
* 앞서 만든 클래스가 제대로 동작하는지 확인하려면
* 오브젝트가 스스로 자신을 검증하도록 만들어준다.
user.setName("제로페이지");
제로페이지
* main() 메소드에 작성한 테스트로 확인해보니
* 기능이 정상적으로 작동한다
* 가장 좋은 대책 : 변화의 폭을 최소한으로 줄인다.
* 모든 변경과 발전은 한 번에 한 가지 관심사항에 집중해서 일어나지만 그에 따른 작업은 한 곳에 집중되지 않는 경우가 많다.
* 관심이 같은 것끼리는 하나의 객체 안으로, 관심이 다른 것은 가능한 떨어져 영향을 주지 않도록 분리.
* 앞으로 수백개의 DAO 메소드를 만든다고 하면
* DB 커넥션을 가져오는 코드가 수백군데에 중복으로 존재하게 되어
* 내부 설계가 개선되어 코드를 이해하기 편해지고 변화에 효율적으로 대응할 수 있다.
* 서로 다른 관심사를 독립적인 클래스로 분리해보자
* 어떤 것들의 공통적인 성격을 뽑아내어 이를 따로 분리해내는 작업
* 인터페이스로 구현된 파라메터를 이용해 외부에서 전달받는다. (다형성)
* 변경이 필요한 알고리즘을 인테페이스를 통해 외부로 분리시키고, 이를 구체화한 클래스를 필요에 따라 바꿔 사용하게 하는 패턴
* 프로그램의 제어 흐름 구조가 뒤바뀌는 것
* 라이브러리는 애플리케이션이 능동적으로 사용한다.
* 빈 팩토리(bean factory) : 빈의 생성과 관계설정 등의 제어를 담당하는 IoC오브젝트. 스프링의 IoC를 담당하는 핵심 컨테이너. 일반적으로 직접 사용하지 않고 이를 확장한 애플리케이션 컨텍스트를 사용한다.
- C++스터디_2005여름/도서관리프로그램/남도연 . . . . 51 matches
if(number == 5)
cout<<"잘못 입력하셨습니다."<<endl;
if (selection == 1){
cout<<"찾을 책 이름은?"<<endl;
if(strcmp(find->book_name,name)==0)
cout<<"책 제목 : "<<find->book_name<<endl;
cout<<"책 저자 : "<<find->book_writer<<endl;
cout<<"ISBN : "<<find->book_ISBN<<endl;
if(find->situation==0){
cout<<"상태 : 반납됨"<<endl;
else{
cout<<"상태 : 대여됨"<<endl;
else{
if (find->next == NULL){
cout<<"찾을 수 없습니다."<<endl;
else{
else if (selection==2){
cout<<"찾을 책 ISBN은?"<<endl;
if(strcmp(find->book_ISBN,ISBN)==0){
cout<<"책 제목 : "<<find->book_name<<endl;
- PragmaticVersionControlWithCVS/WhatIsVersionControl . . . . 51 matches
이장에서는 서로 다른 의미로 사용되는 용어의 정의를 목적으로 한다.
개발 중인 프로젝트의 모든 버전이 저장되는 장소이다. 파일 시스템, DB일수도 있으며, 어떤 경우에는 2가지를 같이 사용하기도 한다.
프로젝트의 기본으로 저장되는 소스코드. 그 외에 버전관리에 필요한 기타 파일들이 저장함.
'''원칙:만약 프로젝트의 진행에서 없으면 곤란한 모든 것이 버전관리의 대상이된다. 즉 반드시 프로그램의 빌드만이 아니라 차후에 필요한 다큐도 버전관리를 해야할 필요가 있다'''
|| 자동으로 생성되는 잔여파일의 경우 굳이이를 관리할 필요는 없다. 대신에 특수한 이유(컴파일 타임. 라이센스)로 필요한 경우에는 관리를 하는 경우도 있다 ||
지역 작업공간(local workspace)는 원격에 저장된 파일들을 프로그램의 개발을 위해서 개발자가 가지고 있는 컴퓨터에 받아서 프로그램을 수정하도록 하는 공간임.
체크아웃(checkout) : 저장소에 있는 파일을 작업공간으로 복사해 지역 복사본을 생성.
''만약 한개의 파일을 2명의 프로그래머가 각기 수정을 한뒤 commit한다면 이때의 상황을 어떤식으로 처리할 것인가?''
기본적으로 Version Control 에서 관리의 가장 작은 단위는 파일이다. 그외에 한개의 프로젝트 단위로 전체 프로그램을 관리하고, 그 하부에 모듈을 기준으로 해서 소스를 관리한다.
CVS가 각기의 파일에 할당하는 버전의 번호는 그 파일의 버전일뿐 전체 프로젝트의 버전일 수는 없다. ''(잡담:물론 따로 기능이 있지 않을까? -_-;)''
버전 관리 시스템에서는 전체의 파일, 모듈단위, 프로젝트 단위로 이에 속한 파일들에 꼬리표라는 것을 붙이는 것이 가능하다.
이 경우 PreRelease2를 불러들이게 되면 상기의 버전의 파일들이 불러들여지게 된다. 태그는 프로젝트의 진행에 있어서 중요한 일이 발생한 시점을 기록하는 것으로 사용되는 것도 가능하다.
개발중심축(mainline) : 일반적인 개발환경하에서 개발자들은 동일한 코드 기반을 가지고 작업을 한다. 체크아웃, 개정판을 만들어서, 변경사항을 체크인하면 모든 개발자가 서로의 작업을 공유하게 되는 것이다. 이러한 개발흐름을 일컬어 개발중심축이라 함.
이런 개발중심축상에서 만약 특정 시점에서 프로그램의 릴리즈 버전이 완성되어서 QA과정으로 들어갔다고 생각해보자. 이때, 프로젝트의 다른 팀원들과 동시에 개발을 진행시켜 나가면서, QA과정에서 발생된 치명적인 버그를 본래의 개발중심축상에 반영시키기 위해서 만들어진 개념임. (그림이 있어야 이해가 쉬울듯. 글만 읽어서는 SE를 듣지 않은 이상 이해 힘들어보임.)
브랜치를 만들게 되면 그 시점에서 브랜치로 만들어진 소스는 개발의 중심축선상에서 빠져나와서 기본 개발축과 다른 개발을 할 수 있다. 또한 이렇게 분기된 프로젝트의 변경부분을 본래의 개발중심축선상에 반영시키는 것또한 가능하다. 또한 이 릴리즈 시점을 지나서 개발중심축이 상당부분 진행이 된 상태에서 소비자가 릴리즈버전의 버그를 보고하여, 이 버그를 고쳐야할 필요가 생겼을때 개발자들을 새로 소스를 만들 필요없이 단지 릴리즈 시점의 브랜치로 옮겨서 작업을 하고, 패치를 만들어 내는 것이 가능하다.
브랜치를 이용하면 한명의 개발자가 한개의 컴퓨터를 가지고도 릴리즈 버전의 버그 수정작업과 mainline상의 프로그램의 개발을 동시에 하는 것이 가능하다.
이 경우 브랜치에서 수정된 사항이 mainline상에도 반영되어야할 필요가 있을때 이를 병합의 과정을 통해서 하는 것이 가능하다.
만약 한개의 파일을 가지고 2명의 사람이 동시에 수정작업을 거쳐서 체크인하게된다면 어떤 상황이 벌어질까? 아마 이대로는 한개의 파일이 쓰여지고 다른 파일이 그 파일을 덮어 쓰는 상황이 벌어질 것이다.
파일을 체크아웃하는 시점부터 그 파일들은 읽기전용의 속성으로 변경된다. 따라서 다른 사람이 그 파일을 체크아웃하더라도 수정을 할 수는 없게되는 것이다.
다수의 체크아웃을 허용하는 대신에 체크인을 하는 때에, 저장소에 저장된 파일들을 로컬 작업공간에 반영시킨다.
- TicTacToe/후근,자겸 . . . . 51 matches
public class FirstJava extends JFrame{
if(x>0 && x<200 && y>0&&y<200)
if ( arr[0][0]==0 ) {
else if (arr[0][0]!=0){
if(x>200 && x<400 && y>0 && y<200)
if ( arr[0][1]==0 ) {
else
if(x>400 && x<600 && y>0 && y<200)
if ( arr[0][2]==0 ) {
else
if(x>0 && x<200 && y>200 && y<400)
if ( arr[1][0]==0 ) {
else
if(x>200 && x<400 && y>200 && y<400)
if ( arr[1][1]==0 ) {
else
if(x>400 && x<600 && y>200 && y<400)
if ( arr[1][2]==0 ) {
else
if(x>0 && x<200 && y>400 && y<600)
- 고한종 . . . . 51 matches
제로페이지 21기
제로페이지가 부흥하길 바라는 사람.
>안드로이드 개발 가능 합니다.
내 삶의 흐름을 내가 주도적으로 결정하는 사람 되기.
사단법인 제로페이지를 만들고 싶다.
- ~~[고한종/업적/WinAPI로 만든 학과주점 포스기]~~
* 2학년 JAVA 팀플용으로 만든 것. 얼마전에 엄마 갤S2에 그대로 남아 있는걸 보고 놀람. - [고한종], 13년 3월 16일
* 개인적으로 이거 덕분에 안드로이드 할 수 있게 되어서 좋기도 한데... 그래도 기분 나쁨. 다른 의미로 내 실패를 상징하는 작품이라... - [고한종], 13년 3월 16일
* JAVA의 Swing으로 만든 시간표 대신 만들어주는 프로그램 (...) 사실 만들어 놓고 안쓴다. 2학년 말에 만들어 놓고 이번 학기(2013년 1학기)에 본인조차 안 쓴걸 보면 기획부터가 잘못된 물건. 일단 소개를 하자면, 수강신청 기간이 되면 포탈에 그 학기에 개강될 과목들을 정리해서 xls 파일로 올려줍니다. 이걸 받아서, poi 라는 JAVA 라이브러리? 에 넣고 돌리면 "[cell값]" 형식으로 String이 나옵니다. 그럼 이걸 stringTokenizer에 ]와 [를 토큰으로 해서 잘게 쪼개줍니다. (애초에 그런거 없이 CSV로 나오면 최고겠지만.. 할줄 모름 ㅠ). 사실 그냥 엑셀에서 CSV로 만들어 쓰면 되는 데, 그때 당시엔 사용 편의성을 도모한답시고 뻘짓 함. 어짜피 아무도 안 쓸텐데 ㅠㅠ 그렇게 얻어낸 과목의 시간정보를 ArrayList에 넣고, 그걸 가지고 backtraking인지.. 를 했던것 같음. 결국 속도는 처참했지만 -_-... 모든 결과가 나오는 것도 아님. 마지막으로 코드를 수정하고나서 테스트로 돌렸을때, 내가 실제로 수강신청했던 시간표는 나오지 않았음 ㅇㅈㄴ... - [고한종], 13년 3월 16일
* 근데 이거 덕분에 JAVA로 작업할때는 모든 것을 얕은 복사라고 생각해야 한다는 것을 발견함. 아니 ArrayList에서 빼고 싶어서 빼버리라고 하면, 다른 ArrayList에서도 빠져버리는 건데?! (Objective-C 처럼 말하자면, release를 원했는데 dealloc이 되어버림.) 결국 그냥 모든 대입문에 .clone을 붙였더니 메모리 폭발, 속도 안습. - [고한종], 13년 3월 16일
* 여태까지 만들었던 것중에 가장 잘나간 것. 하지만 속 알멩이는 여태까지 만든 것 중 가장 쓰레기. 이걸 OOP개념이라던가, 좋은 유지보수가 가능하게 코딩하려면, 프로젝트를 버리고 다시 시작해야 할듯. 소개하자면 이걸 공개한게 13년 1월 8일인가 하는데, 12년 12월 20일에 확산성 밀리언 아서라고 일본 ~~T~~CG(트레이드가 없어....) 게임이 들어왔다. 애니팡으로 한국 모바일 게임시장이 열린 상황 (그 전에는 미친 법 때문에 스토어에 게임 카테고리가 없었지....), 퍼즐류는 애니팡이 먹고, 슈팅게임은 드래곤플라이트, 레이싱(?)은 다함께차차차, 캐쥬얼은 윈드러너가 먹은 상황에, ~~T~~CG라는 새로운 장르가 수입이 되니.. 그야말로 공급이 없어서 단숨에 유저 확보. 지금 대략 생성된 계정은 못해도 80만개를 넘었다고 한다. 게임소개는 여기까지하고, 이 게임이 1기긱 1계정으로 기기종속 게임인데, 온라인 게임인데 부캐를 돌리고 싶은것은 어찌보면 당연!. 사람들이 로그아웃 하는 방법을 찾아놓은게 있다. 근데 겁나 불편하다 (...) 그래서 그걸 안드로이드 어플로 자동화시켜서 터치한번이면 되도록 만들었다. 그리고 공개 -> 2달이 지난 지금 1만 5천명이 내 블로그를 들렸다 나갔다. 아마 못 해도 1만은 다운로드 까진 해보지 않았을까 싶다. - [고한종], 13년 3월 16일
* 나름 사용하기 쉽게 만든다고 만들었는데, 초기 셋팅에서 이상한짓해서 망치는사람이 은근 많다. 이거 만들고나서 컴퓨터 못하는사람들이 다 멍청이로 보인다 어뜩함 -_-;;; - [고한종], 13년 3월 16일
* 동시에 프로그램에 들어간 노력과 시장에서 팔리는 정도는 별 관계가 없다는걸 알게 되었겟지.- 아마도 [김태진]
* 이거 결국엔 카피켓이 먼저 구글 플레이 스토어에 올라가 버렸다. 이런 저런 이유로 마켓에 올릴 생각은 없었지만. 카피켓이 스토어 올라가서 수익 내고 있는거 보니까 기분이 참 미묘미묘함 -[고한종](13/03/27)
* 그래픽스 연구실에서 서울시특허 과제로 만들고 있는 것 (13년 3월) 거의 완성했는데, 기반이 된 OpenCV가 intel CPU최적화라 아이패드에서 돌리면 겁나 느려서 시연불가능 급이다 -_- 속도만 해결하면 완성인 과제. - [고한종], 13년 3월 16일
* 원본 프로그램은 ActiveX로 만들어져있었다. 게다가 스레드 돌리기 싫어서 DoEvent 기법을 썼다(...) 이걸 나는 iOS로 포팅 하는데 성공했다. ActiveX도 결국 MFC이기 때문에 별로 안 어려워 보일 수 있으나... 모든 사용자 정의 함수는 void형에, 모든 멤버변수는 public이어서 어디서 초기화하는지 일일히 찾아서 작업해야 했다. 미치는줄 알았음. 심지어 한 함수안에서 딱한번 쓰는 변수도 클래스 멤버변수로 선언되어 있기도 했음.. 그냥 지역변수를 쓰지!? - [고한종], 13년 3월 16일
* 이 녀석은 윤종하 게임으로 도배를 해놨군. 열심히 해봐 ㅋ 모르는거 있으면 물어보고 - [윤종하]
* 아 그러고보니 저 1학년때 고퀄로 뽑아오면 용서해준다고 하셨죠. 정말로 고퀄로 뽑아 볼까요? - [고한종], 13년 3월 16일
* 한종아, 네가 추상적인 의미로 더 멋진 사람이 될 수 있으면 좋겠다.(네가 맞다고 생각하는 방식이면 돼.) 자세한 설명은 생략하마. 이젠 내가 말하면 잔소릴테니. ㅋㅋ -[김태진]
* 이건 언제 써논거래... 이런 잘 안보는대 말고 그냥 말로해라. 뭐, 니말대로 어짜피 잔소리로 들을 것 같긴 하지만. - [고한종], 13년 3월 16일
- 데블스캠프2013/셋째날/후기 . . . . 51 matches
* 사실 자바를 약~간 깨작거렸지만 다른 사람들이 GUI를 사용하는 프로그램을 만드는 것을 보고 어떻게 하는 것인지 굉장히 궁금하였는데 이번 기회에 알게 되어서 너무나도 기뻤습니다 :D - [조영준]
* 개인적으로 저한테는 실용성으로 따지면 아마 이번 데블스 캠프 1위가 아닌가 싶을 정도로 마음에 드는 주제였습니다. Window Builder는 전에 순의 선배가 쓰시는 걸 봐서 이런 게 있는 건 알았지만 그래도 직접 써 보니 생각보다 더 좋군요. 아마 나중에 정말로 쓸 일이 많이 있지 않을까 싶습니다. - [서민관]
* 회장님이 자바실습시험때, 이걸 이용해서 짜면 편하다고 추천해 준 것이었는데, 하지만 코드가 은근히 어려워져서 세세한 부분을 건드릴 때에는 더 많은 시간이 걸릴 것 같아서 안 쓴 윈도우빌더군요! 사실, 이 단점은 GUI 툴킷 프로그램이 짊어지고 가야 할 문제일 수도 있지만, 이번에 나름대로 빠른 프로그램 제작에는 편하겠구나라는 생각을 가지게 되었습니다. - [김해천]
* net beans를 써봐서 인지 window 빌더에 그다지 거부감은 없던것같습니다. 다만, 이클립스내에서 사용할 수 있다는 점에서 좋은것같습니다. 이때까지 net beans랑 이클립스를 혼용해서 사용해왔었는데 좋은 플러그인을 직접적으로 알게되어서 좋았습니다.(window 빌더의 존재는 알았지만 사용해보기에 너무 귀찮아서 이때까지 사용할 기회를 못가졌었는데 가지게 되서 좋았습니다.) -[김윤환]
= 서민관 / HTTP 프로토콜, C언어를 이용한 웹 서버 만들기 =
* 소켓, 이름만 들어도 머리가 지끈지끈...은 아니지만, 새내기 입장에선 지끈지끈 했을 주제. 처음부터 차근차근 잘 설명해줘서 잘 들었습니다. 개인적으로 '으, 이거 안좋은건데' 하면서 보여주었던 몇 가지 것들이 기억에 남습니다.ㅋㅋㅋ 아쉬웠던건 생각보다 실습시간이 오래 진행되서 마지막 HTTP 서버 부분이 휘리릭 지나갔다는 점. 그래도 전체적으로 재밌게 들었습니다 - [박성현]
* 사실 소켓 프로그래밍을 새싹교실에서 했었는데 복습을 안 해서 반 쯤 까먹었다가 (...) 이번 기회에 다시 기억을 되살리고, C#이 아닌 C로도 짜니 어려웠지만 흥미로웠습니다. 특히 마지막에 웹 서버가 제일 인상깊었네요. 인상깊었던 만큼 휙 지나간게 아쉬웠습니다 :Q - [조영준]
* 음... 사실 정말 열심히 준비를 해서 최대한 차근차근 쉽게 설명을 해 보자고 생각을 했는데... 그래도 역시 처음 접하는 것이라 그런지 그렇게 간단하게 진행되지는 않은 것 같아서 마음에 아쉬움이 남습니다. 새내기들이 파일 포인터랑 파일 입출력을 조금이라도 알고 있었으면 훨씬 수월했을텐데 말이죠. 그래도 제가 할 수 있는 전력을 다 했다고 생각하고, 앞으로 똑같은 주제로 세미나를 한다고 해도 더 낫게는 못 할 겁니다. 따라서 앞으로 같은 주제로 세미나를 할 일은 아마 없지 않을까 싶습니다. 부탁이라도 들어오지 않는 이상. 이것 때문에 마음 걱정이 커서 밥을 먹어도 먹는 느낌도 없었는데, 그래도 스스로 만족스러울 만큼은 한 것 같아서 속이 후련하고 또 조금은 아쉽기도 합니다. - [서민관]
* 소켓이라는 개념을 처음 들었는데도 굉장히 잘 설명해주신 덕분에 충분히 이해했고, 친숙한 언어로 짜다보니 더욱 인상깊었습니다! - [원준연]
* 소켓프로그래밍은 언젠간 공부해봐야지 하면서도 안하고 있다가 단면을 알게될 기회를 갖게되서 좋은 세션이였습니다. 이런 소켓프로그래밍을 가지고 놀면 재밋는것도 나올 수 있겠다라는 응용여지가 많아서 더 재미있는 세션이였습니다. - [김윤환]
= 조광희 / 아두이노로 장난감 만드는 법 =
* 짝짝짝짝. 굉장히 신선한 주제였습니다! 아주 재밌게 들었습니다. 컴공인으로써 전압이나 회로는 친숙하지 않아 진입장벽이 있었는데, 이젠 아두이노도 해볼 수 있겠다는 생각이 들었습니다. 감사합니다.ㅋ - [박성현]
* 좋습니다. 개인적인 생각인데 데블스 캠프가 완전히 컴공의 전공으로 뒤덮이는 것보다 가끔 이런 내용이 있어도 좋지 않을까 하는 생각을 좀 합니다. 그러던 와중에 이런 세션이 있으니 좀 만족스럽죠. 정말 전자 전기에서 오셔서 많은 재미있는 것을 보여주시는 것 같습니다. 감사합니다. - [서민관]
* 어릴 때 브레드보드를 다뤄본 이후로 이런 것을 접할 기회가 없었는데, 굉장히 좋은 것을 알았네요. - [원준연]
* 아두이노,,, 우노..게다가 우노..에 대한 안좋은 추억이..ㅠㅜ 물론 세션 내용은 흥미롭게 들을 수 있었습니다. 다만, 우노를 가지고 블루투스 모듈을 연결한 다음 안드로이드랑 통신할때 이게 문자열을 해석 잘 못하는 경우를 당해서 맨붕한적이 있어서... - [김윤환]
* 역시 명불허전 머신러닝! C언어 입출력에서 이렇게 나를 괴롭힐줄이야.. 코딩하면 코딩할수록 '내가 지금 펜을 잡고 생각을 정리해야하는데, 왜 타자기만 잡고 있는 것인가'라는 생각을 하게 되었습니다. 페어 프로그래밍이어서 더 떨렸습니다... 멍청한거 들킴; 제출된 코드 중 파이썬 코드가 있었는데 참 맘에 들더군요. 로직에만 집중할 수 있도록 해주는 언어! 파이썬! - [박성현]
* C#으로 반쯤 날로먹다 격한 삽질로 신나게 시간을 날려먹어서 멘탈에 살짝 기스가 갔... 습니다만 저를 비롯한 많은 사람들이 가장 활발하게 활동했던 수업이라 좋았습니다. 다만 앞에서도 말씀드렸지만 모두의 멘탈이... - [조영준]
* 제 바램대로 '데캠에 참석한 모두가' '열심히 코딩을 하며' '모두가 멘붕을 겪는다' 가 이뤄졌네요. 1학년때 상협선배님이 해주신 머신러닝이 가장 기억에 남았는데, 제 방식대로 그런걸 새로 풀어낼 수 있었네요. 새내기들이 이 분야에 감이라도 잡고(추상적인 인공지능에서 논리적인 기계학습으로..-) 선배들도 충분히 집중해야하는, 잘 조화된 세션이 될 수 있었던거 같아 다행이네요. -[김태진]
* 아, 그런데 삼일간 삽질한 GA를 쓰지 못한건 아쉽네요. 열심히 했으나 결국 오늘 진행한 세션은 2시간 준비로...(예전에 많이 했기때문이지만.) 덕분에 난이도가 더 적절했건거같긴 하지만요. -[김태진]
* 개인적으로 좀 아쉬움이 큰 세션이었습니다. 물론 머신 러닝이 쉬운 주제가 아니라는 건 맞습니다. 하지만 오히려 그렇기 때문에 강사 입장에서는 최대한 난이도를 낮추기 위한 노력들을 할 수 있지 않았을까 하는 생각이 조금 남습니다. 적어도 새내기나 2학년 들이 머신 러닝이라는 뭔가 무서워 보이는 주제 앞에서 의욕이 사라질 수 있다는 생각을 했다면, 전체적인 알고리즘의 간단한 의사 코드를 보여주거나, DataSet을 줄인다거나 해서 조금 현실적인 시간 내에 결과를 보고 반복적으로 소스 코드를 손을 볼 수 있게 할 수 있지 않았을까요. 적어도 간단한 샘플 소스를 통해서 이 프로그램이 어떻게 돌아가는가, 어떤 input을 받아서 어떤 output을 내는가 등에 대해서 보여주었다면 더 재미있는 실습이 될 수 있지 않을까 하는 생각이 듭니다. 머신 러닝은 흥미로운 주제지만, 흥미로운 주제를 잘 요리해서 다른 사람들에게 흥미롭게 전해줄 수 있었는가를 묻는다면 저는 좀 아쉬웠다는 대답을 할 것 같습니다. - [서민관]
- EightQueenProblemDiscussion . . . . 50 matches
당신은 어떤 식으로 이 문제에 접근을 했고, 어떤 사고의 과정을 거쳤으며, 어떤 과정으로 프로그래밍을 했으며, 어떤 디자인 결정을 했습니까? 만약 실패했다면 당신이 했던 것 혹은 하지 않았던 것 중 무엇이 실패의 주요인이었다고 분석을 하십니까?
만약 당신보다 더 짧은 시간에, 더 짧은 코드로 문제를 해결한 사람이 있다면, 그 사람과 함께 PairProgramming (혹은 NetMeeting 등을 이용, VirtualPairProgramming)을 해서 그 문제를 함께 새로 풀어보세요. 당신은 무엇을 배웠습니까? 그 사람은 어떤 방식으로 프로그램의 올바름(correctness)을 확인합니까? 그 사람은 디버깅을 어떻게 합니까(혹은 디버깅이 거의 필요하지 않은 접근법이 있던가요)? 그 사람은 어떤 순서로 문제에 접근해 갑니까? 그 사람은 어느 정도로까지 코드를 모듈화 합니까? 이 경험이 당신의 프로그래밍에 앞으로 어떤 변화를 불러올 것이라 생각합니까?
말 그대로 그냥 정공법 (이 될지는 모르겠지만. -_-;)으로 나갔다. 여기서는 테스트 코드로 대신을..
그 다음에는 '퀸을 놓을 수 있는 위치가 안전한 곳일까?' 하는 점에 대해 접근. 이를 SelftyZone 이라 칭했다. 이를 체크하기 위해서는 가로/세로/대각선방향을 모두 체크해야 하므로 다시 4개의 작은 모듈로 나누어졌다. 그중 대각선 체크의 경우 처음 비교를 시작할 위치를 측정하기 위한 모듈을 하나 더 추출하게 되었다.
해당 자리에 놓았을 경우. 다른 퀸을 공격할 수 있는 위치에 대해 알아보기 위한 부분에 대해 생각했다.
* Feelings - 느낀점: 시간이 넘 오래걸려서 한편으로는 쪽팔리긴 하다. -_-; 뭐.. 알고리즘 부분에 대해서 너무 시간을 오래 끌었다. 왜 그랬을까 생각하는데.. 아마 특정 알고리즘들이 먼저 머릿속에 떠올라서가 아닐까 한다. (이 부분에 대해서는 stack을 쓸까 recursive 로 대신할까 이리저리군시렁군시렁) 이런 부분에 대해서는 어떻게 test가능한 부분으로 접근해나갈수 있을까.
자신에게 항상 "What is the simplest thing that could possibly work?"라는 질문을 하면서 TestDrivenDevelopment를 했나요? 테스트/코드 사이클을 진행하면서 스텝을 작게 하려고 노력했나요? 중간에 진척이 별로 없는 경우, 어떤 액션을 취했나요? 그 때 테스트 사이클의 스텝을 더 작게하려고 했나요? 만약 다시 같은 문제를 새로 푼다면 어떤 순서로 테스트를 하고 싶나요? (직접 다시 한번 새로 시작하는 것도 강력 추천) 왜 다른 사람들에 비해 시간이 상대적으로 많이 걸렸을까요? 테스트 코드를 사용한 것이 그 시간만큼의 이득이 있었나요? TestDrivenDevelopment를 해내가면서 현재 패스하려고 하는 테스트 케이스에서 무엇을 배웠나요? 켄트벡이 말하는 것처럼 사고의 도구가 되어 주었나요? 참고로 저는 EightQueenProblem을 파이썬으로 약 30분 정도 시간에 50 라인 이내로(테스트 코드 제외) 풀었습니다. TestDrivenDevelopment로요. --김창준
직접 다시 새로 시작하는 것에 대해서는 비교계산을 내리기 힘들것 같네요. (더 좋은 디자인을 얻어내는 것과 훈련라는 점에서는 물론 저도 추천) 제가 잘못했다고 생각되는 부분은, 퀸을 배열하는 방법 알고리즘 부분에 대해 TestDrivenDevelopment 를 지키지 못했다는 점이죠. (머릿속에 먼저 재귀함수 호출 등의 특정 알고리즘들이 먼저 떠오른지라. )
알고리즘 궁리 부분에 대해서도 80/20 법칙이 통용되려나요. :) 3시간이 걸린 부분이 바로 다음 부분이였는데요.
if Level == 8:
if not Ret:
즉, 실제 Queen의 위치들을 정의하는 재귀호출 코드인데요. 이 부분에 대한 TestCase 는 최종적으로 얻어낸 판에 대해 올바른 Queen의 배열인지 확인하는 부분이 되어야 겠죠. 연습장에 계속 의사코드를 적어놓긴 했었는데, 적어놓고 맞을것이다라는 확신을 계속 못했죠. 확신을 위해서는 테스트코드로 뽑아낼 수 있어야 할텐데, 그때당시 이 부분에 대해서 테스트코드를 못만들었죠.
지금이라면 'Level 8일때 바로 판을 찍지 않고, 저 상황의 데이터구조체를 그대로 복사해서 결과만 넣어놓는 리스트를 하나 더 만들고, 그 결과들에 대해 올바른 배열을 했는지 테스트하는 코드를 뽑아낼 수 있겠다' 라는 아이디어가 떠오르긴 하네요. (그렇더라도 100라인은 넘어갈것 같긴 하네요. ^^;)
사고의 도구로써는 연습장과 TFP 둘 다 이용했지만, 순수하게 적용하지는 않았습니다. (위의 Queen을 놓는 부분에 대한 재귀호출부분에서는 적용못함) 테스트작성시간/코드작성시간 등에 대한 관리는 하지 않았습니다. (이 부분에 대해서는 반성을. ^^;) 흠.. 그리고 'The Simplest Thing'을 찾아나갔다기 보다도, 이미 해당 문제에 대해서 의사코드를 생각하고, 해당 코드에 대해 Top-Down 형태로 모듈을 나눈뒤에 모듈에 대해 테스트를 만들어갔다는 생각이 드네요. --석천
지금가지 모두 C++, Python, Java 등 OOPL을 이용했는데 그 중 OOP로 푼 사람은 아무도 없네요 -- class 키워드가 있다고 OOP라고 하긴 힘들겠죠. 사람은 시간이 급하다고 생각이 들수록 평소 익숙한 도구와 멘탈리티로 돌아가려고 하죠. 어쩌면 OOP가 편하고 수월하다고 느끼는 사람이 없다는 이야기가 될지도 모르겠네요. 물론 모든 문제를 푸는데 OOP가 좋다는 이야기를 하려는 것은 아닙니다만. --김창준
이런 암호같은 프로그램도 있다는..
t(a,b,c){int d=0,e=a&~b&~c,f=1;if(a)for(f=0;d=(e-=d)&-e;f+=t(a-d,(b+d)*2,(
* TFD로 시도하였는데. test와 code간 이동이 빠르지 못하였다. 즉, test부분이 충분히 작아지지 못한 것 같다.
[이승한]과 PairProgramming을 하며 문제를 풀었습니다. TDD를 하지 않고 30분을 작성했고 나머지 1시간30분을 TDD로 했습니다.
적당한 자료구조를 끝까지 찾지 못해 헤맸다는 느낌입니다. 처음 TDD를 접하는 파트너로서는 테스트를 빨리 이해할 수 없어서 한 동안 페어 사이에 공백이 느껴졌습니다. 속도를 늦추고 파트너에 맞추자, 파트너가 드라이브를 하는 의욕을 보였습니다. 완성하지 못해 다른 이의 코드와 비교하는 시간이 없어서 안타깝습니다.
- HowToStudyDataStructureAndAlgorithms . . . . 50 matches
처음접하는 것이라면 배열 -> 스택 -> 큐 -> 리스트 -> 트리 순서로 나가는 것이 좋을듯. 정렬과 해싱 이하 뒤의 꺼는 아마 이번달내로 나가기 힘들것 같은데. 트리나 그래프까지만 목표로 잡아도 성공이라고 생각함.
그리고, 자료구조 레포트 선배들이 한 것이 있으니까, 그 문제들 구현을 목표로 잡아도 좋고. (원한다면 보내줄께.) ex) 스택:스택 구현, postfix 의 구현, 계산기 구현. 큐:큐 구현. 리스트:다항식 덧,뺄셈 & 곱셈 구현 (polynomial) 트리:2진트리구현
자료구조는 일단 1. 각각의 자료구조들의 특징을 이해하고. 2. 실제의 구현법을 익히며 (뭐.요새는 collection library들을 제공하므로 직접구현할 일이 줄어들었긴 했지만. 그래도 여전히 기초가 됨) 3. 해당 문제상황에 적절한 자료구조를 선택할 수 있는 눈을 다듬어야 함. --석천
제가 생각컨데, 교육적인 목적에서는, 자료구조나 알고리즘을 처음 공부할 때는 우선은 특정 언어로 구현된 것을 보지 않는 것이 좋은 경우가 많습니다 -- 대신 pseudo-code 등으로 그 개념까지만 이해하는 것이죠. 그 아이디어를 Procedural(C, 어셈블리어)이나 Functional(LISP,Scheme,Haskel), OOP(Java,Smalltalk) 언어 등으로 직접 구현해 보는 겁니다. 이 다음에는 다른 사람(책)의 코드와 비교를 합니다. 이 경험을 애초에 박탈 당한 사람은 귀중한 배움과 깨달음의 기회를 잃은 셈입니다. 참고로 알고리즘 교재로는 10년에 한 번 나올까 말까한 CLR(''Introduction to Algorithms, Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest'')을 적극 추천합니다(이와 함께 혹은 이전에 Jon Bentley의 ''Programming Pearls''도 강력 추천합니다. 전세계의 짱짱한 프로그래머/전산학자들이 함께 꼽은 "위대한 책" 리스트에서 몇 손가락 안에 드는 책입니다. 아마 우리 학교 도서관에 있을 것인데, 아직 이 책을 본 적 없는 사람은 축하드립니다. 아마 몇 주 간은 감동 속에 하루하루를 보내게 될 겁니다.). 만약 함께 스터디를 한다면, 각자 동일한 아이디어를 (같은 언어로 혹은 다른 언어로) 어떻게 다르게 표현했는지를 서로 비교해 보면 또 배우는 것이 매우 많습니다. 우리가 자료구조나 알고리즘을 공부하는 이유는, 특정 "실세계의 문제"를 어떠한 "수학적 아이디어"로 매핑을 시켜서 해결하는 것이 가능하고 또 효율적이고, 또 이를 컴퓨터에 어떻게 구현하는 것이 가능하고 효율적인지를 따지기 위해서이며, 이 과정에 있어 수학적 개념을 프로그래밍 언어로 표현해 내는 것은 아주 중요한 능력이 됩니다. 개별 알고리즘의 카탈로그를 이해, 암기하며 익히는 것도 중요하지만 더 중요한 것은 알고리즘을 생각해 낼 수 있는 능력과 이 알고리즘의 효율을 비교할 수 있는 능력, 그리고 이를 표현할 수 있는 능력입니다.
첫번째가 제대로 훈련되지 못한 사람은 알고리즘 목록의 스테레오 타입에만 길들여져 있어서 모든 문제를 자신이 가진 알고리즘 목록에 끼워맞추려고 합니다. DesignPatterns를 잘 못 공부한 사람과 비슷합니다. 이 사람들은 마치 과거 수학 정석을 수십번을 공부해서 문제를 하나 던져주기만 하면, 생각해보지도 않고 자신이 풀었던 문제들의 패턴 중 가장 비슷한 것 하나를 기계적, 무의식적으로 풀어제끼는 "문제풀이기계"와 비슷합니다. 그들에게 도중에 물어보십시오. "너 지금 무슨 문제 풀고있는거니?" 열심히 연습장에 뭔가 풀어나가고는 있지만 그들은 자신이 뭘 풀고있는지도 잘 인식하지 못하는 경우가 많습니다. 머리가 푸는 게 아니고 손이 푸는 것이죠.
두번째가 제대로 훈련되지 못한 사람은 일일이 구현을 해보고 실험을 해봐야만 알고리즘간의 비교를 할 수 있습니다. 특히 자신이 가진 카탈로그를 벗어난 알고리즘을 만나면 이 문제가 생깁니다. 이건 상당한 댓가를 치루게 합니다.
세번째가 제대로 훈련되지 못한 사람은, 문제를 보면 "아, 이건 이렇게 이렇게 해결하면 됩니다"라는 말은 곧잘 할 수 있지만 막상 컴퓨터앞에 앉혀 놓으면 아무 것도 하지 못합니다. 심지어 자신이 생각해낸 그 구체적 알고리즘을 남에게 설명해 줄 수 있기까지 하지만, 그들은 그걸 "컴퓨터에게" 설명해 주는 데에는 실패합니다. 뭔가 생각해 낼 수 있다는 것과, 그걸 컴퓨터가 이해할 수 있게 설명할 수 있다는 것은 다른 차원의 능력을 필요로 합니다.
그리고 마지막으로, 자료구조/알고리즘 공부를 할 때에는 가능하면 실질적이고 구체적인 실세계의 문제를 함께 다루는 것이 큰 도움이 됩니다. 모든 학습에 있어 이는 똑같이 적용됩니다. 인류의 지성사를 봐도, 구상(concrete) 다음에 추상(abstract)가 오고, 인간 개체 하나의 성장을 봐도 그러합니다. be 동사 더하기 to 부정사가 예정으로 해석될 수 있다는 룰만 외우는 것보다, 그러한 다양한 예문을 실제 문맥 속에서 여러번 보는 것이 훨씬 나은 것은 자명합니다. 알고리즘/자료구조 공부를 할 때 여러 친구들과 함께 연습문제(특히 실세계의 대상들과 관련이 있는 것)를 풀어보기도 하고, ACM의 ICPC 등의 프로그래밍 경진 대회의 문제 중 해당 알고리즘/자료구조가 사용되는 문제를 -- 이게 가능하려면 "이 알고리즘이 쓰이는 문제는 이거다"라는 가이드를 해줄 사람이 있으면 좋겠죠 -- 같이 풀어보는 것도 아주 좋습니다.
우리는 알고리즘 카탈로그를 배운다. 이미 그러한 해법이 존재하고, 그것이 최고이며, 따라서 그것을 달달 외우고 이해해야 한다. 좀 똑똑한 친구들은 종종, "이야 이거 정말 기가막힌 해법이군!"하는 감탄을 외칠지도 모른다. 대부분의 나머지 학생들은 그 해법을 이해하려고 머리를 쥐어짜고 한참을 씨름한 후에야 어렴풋이 왜 이 해법이 그 문제를 해결하는지 납득하게 된다. 그리고는 그 "증명"은 책 속에 덮어두고 까맣게 사라져버린다. 앞으로는 그냥 "사용"하면 되는 것이다. 더 많은 대다수의 학생은 이 과정이 무의미하다는 것을 알기 때문에 왜 이 해법이 이 문제를 문제없이 해결하는지의 증명은 간단히 건너뛰기를 한다.
이런 학생들이 주어진 알고리즘을 사용하는 소위 "객관식" 혹은 "문제출제자"가 존재하는 시험장 상황 하에서는 뛰어난 성적을 보일것임은 자명하다. 하지만 스스로가 문제와 해답을 모두 만들어내야 하는 상황이라면, 알고리즘을 완전히 새로 고안해내야 하는, 또는 기존 알고리즘을 변형해야 하는 대다수의 상황이라면 어떨까?
교육은 물고기를 잡는 방법을 가르쳐주어야 한다. 어떤 알고리즘을 배운다면, 그 알고리즘을 고안해 낸 사람이 어떤 사고의 과정을 거쳐서 그 해법에 도달했는지를 구경할 수 있어야 하고, 학생은 각자 스스로만의 해법을 차근 차근 "구성"(construct)할 수 있어야 한다(이를 교육철학에서 구성주의라고 하는데, 레고의 아버지이고 마빈 민스키와 함께 MIT 미디어랩의 선구자인 세이머 페퍼트 박사가 주창했다). 전문가가 하는 것을 배우지 말고, 그들이 어떻게 전문가가 되었는가를 배우고 흉내내라.
결국은 소크라테스적인 대화법이다. 해답를 가르쳐 주지 않으면서도, 초등학교 학생이 자신이 가진 지식만으로 스스로 퀵소트를 유도해 낼 수 있도록 옆에서 도와줄 수 있는가? 이것이 우리 스스로와 교사들에게 물어야 할 질문이다.
왜 우리는 학교에서 "프로그래밍을 하는 과정"이나 "디자인 과정"을 배운 적이 없을까? 왜 해답에 이르는 과정을 가르쳐주는 사람이 없나? 우리가 보는 것은 모조리 종적 상태의 결과물로서의 프로그램 뿐이다. 교수가 어떤 알고리즘 문제의 해답을 가르칠 때, "교수님, 교수님께서는 어떤 사고의 과정을 거쳐, 그리고 어떤 디자인 과정과 프로그래밍 과정을 거쳐서 그 프로그램을 만드셨습니까?"라고 물어보자. 만약 여기에 어떤 체계적인 답변도 할 수 없는 사람이라면, 그 사람은 자신의 사고에 대해 사고해 본 적이 없거나, 문제 해결에 어떤 효율적 체계를 갖추지 못한 사람이며, 따라서 아직 남을 가르칠 준비가 되어있지 않은 사람이다. --김창준
알고리즘을 공부하면 큰 줄기들을 알아야 합니다. 개별 테크닉들도 중요하지만 "패러다임"이라고 할만한 것들을 알아야 합니다. 그래야 알고리즘을 상황에 맞게 마음대로 응용할 수 있습니다. 또, 자신만의 분류법을 만들어야 합니다. (see also HowToReadIt Build Your Own Taxonomy) 구체적인 문제들을 케이스 바이 케이스로 여럿 접하는 동안 그냥 지나쳐 버리면 개별자는 영원히 개별자로 남을 뿐입니다. 비슷한 문제들을 서로 묶어서 일반화를 해야 합니다. (see also DoItAgainToLearn)
이와 관련해서 Anany Levitin의 ''A NEW ROAD MAP OF ALGORITHM DESIGN TECHNIQUES''(DDJ, 2000 Apr)를 권합니다. 그는 알고리즘 디자인 테크닉을 다음 네가지로 크게 나눕니다:
자료구조와 알고리즘은 프로그램을 만드는 데 있어서 중요하다고 생각합니다. 남이 만든 자료구조와 알고리즘을 이용하는데 그치지 말고 스스로 생각하여 만드는 경지에 오르면 좋겠습니다. -[강희경]
DeleteMe) 1학기끝나가는 마당에 후회 막급임. 모든 것들을 한번씩 구현해보고 갔어야하는데... 새로 들으시는 분들 꼭 한번씩 구현해보세요. 지금 생각해보니 정작 중요한 것을 등한시한 느낌입니다 - [eternalbleu]
- InsideCPU . . . . 50 matches
1. 처음 컴퓨터를 키면 참조하는 메모리가 F000:FFF0 이라는 부분이다. 여기서 CPU는 ROM-BIOS를 적재하게 되고 제어권이 ROM-BIOS의 프로그램으로 넘어가게 된다.
2. 이후 ROM-BIOS는 일련의 CHECK 프로그램을 실행 시킨다. 흔히 보는 하드웨어 CHECK와 메모리 CHECK가 여기에 속한다.
4. 부팅 가능한 드라이브의 0번 섹터를 읽어 들여 0000:7C00 에 적재 시킨다. 그리고 CS를 0000:7C00 으로 옮긴다.
5. 그럼 로더 프로그램이 적재 된 상태이다. 이것으로 부팅은 끝이다. 이후 부터는 로더가 작업을 실행한다.
위에 로더는 1섹터(512KB) 밖이 되지 않는다. 이는 작은 프로그램 밖이 실행 할 수 없고 메모리의 위치가 0000:7C00으로 불안한 위치이다. 대부분의 커널의 경우 이 메모리 블럭을 넘어서는 크기를 갖게 되므로 바로 커널을 로딩할 경우 로더의 메모리를 잡아 먹게 된다. 그래서 보통 Kernel로더는 자신을 보다 먼 곳의 안전한 곳으로 이동시키고 커널을 로딩하게 된다.
위와 같은 경우는 플로피에 해당하는 경우이다. 하드드라이브처럼 파티션이 여러개인 경우 MBR 마스터 부트 레코드가 존재하며 멀티 부팅을 위핸 lilo/grub이 올려져 부팅이미지가 있는 파티션을 찾아준다. 플로피와 같은 경우 플로피에 대한 해당 정보를 적어줘야 나중에 플로피 디스크를 DOS에서 읽을 수 있다. 해당 정보는 0번 섹터에 다음과 같은 layer를 적어준다.
|| 03h || OEM identification ||
|| 1Eh ~ 1FDh || 실제 로더 코드 ||
음...여기까지만..귀찮아서 못 적겠다.. 보통 플로피의 0번 섹터를 write하기 위해 rawrite.exe란 프로그램을 쓴다. 플로피의 데이타를 얻기 위해 BIOS의 인터럽트루틴을 사용한다. 이를 위한 인터럽트는 INT 13h가 된다.
실모드는 컴퓨터를 키면 항상 실모드가 된다. 이는 하위 CPU에 대한 호환 정책으로 만들어진 것이며 열라 빠르게 움직이는 (펜티엄클럭) 8086이라고 보면 적당할 것이다. 또한 실모드에서는 메모리 어드레싱 방법이 8086과 동일한 20bit의 어드레스 비트를 가지고 있으며 즉 1MB 의 접근만을 허용한다. 또한 640KB의 base로 접근하고 384KB는 extends로 접근해야 하며 위의 메모리에는 ROM-BIOS와 Video Memory가 있다. 1MB를 접근하기 위해서는 16bit의 세그먼트와 16bit의 오프셋으로 구성된 물리적 접근이 있다.
보호모드란 80286부터 적용된 하드웨어적 지원이다. 이는 다른 CPU에도(다른 이름으로) 존재하며 운영체제에게 안전한 태스크 관리와 보다 빠른 Context Switching 을 적용할 수 있다. 이를 위해 몇몇의 assemble 코드가 추가 되었으며 80386 부터는 코드가 확장되어 보다 큰 메모리를 어드레스 할 수 있게 되었다. [[BR]]
보호모드가 없을 경우 커널은 자신을 지키기 위한 하드웨어적 방법을 잃게 된다. 만약 일반 유저 어플리케이션에서 아무런 제약없이 커널의 메모리 블럭에 접근할 수 있다면 ... 으..생각만해도 끔찍하다.
실례:: 어셈을 하다보면 이유없이 이런 코드를 쓰는 경우가 있다.
으! 그냥 MOV DS,FFFFFH 하면 되지 왜 AX에 넣는 것이야. 지금 사용 FFFFFH란 메모리가 지금 프로세스가 참조할 수 있나
이를 위해 각각의 어드레스 접근에 privilege level을 두었고 이를 각각의 Application에 적용시켰다. 보호모드의 경우 멀티태스킹을 지원하기 위한 방법이다. 이는 지속적이고 반복적으로 일어나는 Context Switching 을 하드웨어적인 방법으로 만들어 소프트웨어적인 방법보다 빠른 Context Switching을 통해 하드웨어의 효율성을 높였다. 보호모드를 위한 레지스터와 방법들..
GDTR은 GDT (Global Descriptor Table)을 정의하기 위한 레지스터이다. GDT의 용도는 무엇인가? 글로벌 메모리는 어떠한 태스크라도 접근 가능한 메모리를 말한다. 그리고 이를 정의하는 레지스터가
GDT이다. 하나의 GDT가 존재하며 GDT에는 LDT의 베이스주소를 계산하는 데 쓰인다. GDTR은 48 BIT로 이루어졌으며 GDTR의 32 BIT의 BASE 주소와 16 BIT의 리미트 부분으로 나누어지며 BASE는 GDT의 시작 어드레스를 말하며 리미트는 GDT의 크기를 말한다. GDT가 가지는 최대 디스크립터는 8192이다.
바이오스로 하드와 플로피를 제어할 필요가 있다. 이는 부팅 과정에서 커널을 특정 메모리에 올리는 데 사용된다. 필이 사용 된다. MBR를 복구하는 데도 가끔 사용된다.
- SystemEngineeringTeam/TrainingCourse . . . . 50 matches
* 여러가지 도메인이 가능했으나 한글 이름으로는 짧은 도메인이 불가능. 닉네임으로 쓰고 있는 bluemir를 사용해서 가능한 도메인 중에는 .org .net .me 등등이 가능했으나 .com은 불가능. 어차피 개인 도메인으로 사용할 예정이었고 .org 와 .net 보다는 .me가 조금더 맞는듯한 도메인 이었음. 한글이름 이니셜만 따서 .com을 사용해볼려 했으나 내 개인 도메인이라는 느낌이 들지않아서 위의 도메인으로 결정.
* 여러 도메인 구매대행 업체를 비교하였으나 가격과 서비스는 큰 차이가 없었음. 결국 결제가 가장 편한곳을 찾게 되었는데 [http://www.dotname.co.kr/ 닷네임 코리아]는 무통장 입금 방식의 결제가 가능했음. 개인별로 임시 계좌번호를 만들어 입금하면 바로 확인 되는 형식이라 별도의 확인 전화를 하거나 상대편에서 확인할때까지 기다릴 필요가 없었음. [http://www.hosting.kr/ hosting.kr]은 AcitveX방식의 결제를 해야 쉬운 결제가 가능하고 그 이외에는 절차가 너무 복잡해서 쓰지 않았음.
* [http://ko.wikipedia.org/wiki/%EA%B5%AD%EA%B0%80_%EC%BD%94%EB%93%9C_%EC%B5%9C%EC%83%81%EC%9C%84_%EB%8F%84%EB%A9%94%EC%9D%B8 도메인 목록]에서 참고하여 .com, .net, .org, .re, .me를 후보군으로 지정하였음
* stylesha.re처럼 이어지는 도메인(rabier.re)으로 정하고 싶어 .re를 알아보았다. .re는 프랑스령의 한 섬인 레위니옹의 ccTLD. AFNIX에서 관리한다고 한다. 처음에 AFNIX 사이트에서 도메인 구입을 하려 했으나 회원가입도 변변히 못하고 쫒겨났는데 다시 찾아보니 [http://ko.wikipedia.org/wiki/.re 레위니옹 이외의 조직 또는 개인에게 아예 할당을 하지 않는 모양..]
* .re는 후보에서 제외됨.. 신포도 기제 발동으로 rabier.re가 갑자기 구려보임.
* 나머지 도메인중에 구매할 것을 고르는데 도메인 설명중 .me의 "개인용으로 적합하다. 특히 resume, blogs에 사용할 수 있다"라는 설명이 나의 심금을 울렸는데 특히 resume부분이...
* 얕은 인터넷 서핑으로 찾은 [http://www.goDaddy.com]이라는 곳에서 구매. 맥(정확히 크롬)에서 구매가 되길래 좋다고 샀다.
* 원래 개인 도메인으로 쓸 생각이 아니라 둘이 쓸 것이었기 때문에 .com으로 취득.
* 사실은 이름 관련으로 이런저런 일이 있어서 s2.org라고 얻고 싶었으나 불가능하다는 것을 알고 .com으로 선택하였다.
* 구매 사이트는 hosting.kr 사용. 형진 선배의 추천으로 가격이 싸다고 들어서.
* 닉네임이자 세례명인 linuspark을 사용, 컴공인으로써 부담되긴 하지만 여태 쓰던걸 바꿀생각이 없으므로 그대로 사용.
* .com은 이미 등록되어있었고, .org .net .info .me 등 중에서 .net이 가장 싸서 이걸로 결정, 주로 네트워크회사 등에서 사용한다지만 가격이 우선함.
||지원기간||7~8년||3~5년(LTS의 경우 10년)||변경자체가 드뭄|| ||
* [안혁준] - 우선 Window서버는 원격으로 관리하기가 매우 귀찮고 POSIX호환도 안되므로 일단 제외. UNIX/Linux계열중 활발한 활동이 있는데는 FreeBSD와 Redhat계열, 데이안 계열(Ubuntu).
* Fedora - 주로 데탑으로 많이쓰이고 업데이트가 빠르며 다양한 패키지들을 사용할수 있지만 다소 불안정함. 사실 연습용 서버로 쓰기에는 큰 무리가 없다.
* RHEL - 실제로도 많이 쓰이고 확실한 서버지원과 문제 해결이 가능하지만 유료.
* CentOS - RHEL의 클론 버전. 라이센스 문제때문에 들어가지 못한 패키지를 Open Source Software로 교체. 뛰어난 안정성을 자랑함. 다만 안정성을 택한대신 패키지의 종류가 적고 업데이트가 매우 느린편. 아직도 jdk 1.6버전이라는 소문이 있다.
* Ubuntu Server LTS - 우분투 기반의 서버. 우분투의 장점을 대부분 갖추고 있지만 기술 지원 기간이 매우 길다. GUI는 기본적으로 탑재되지 않으며, 그야말로 서버에서 쓰기위해 만든 것.
* Fedora와 ubuntu는 stable하지 않다. 사실 연습용서버로는 충분하나, 다른것에 비하면..
* CentOS는 실제 서버에서 가장 많이 쓰이는 OS이고 대부분 RHEL과 매우 유사하기 때문에 서버로서 생기는 문제 해결은 아마 최우수 일듯 하다.
- VisualStuioDotNetHotKey . . . . 50 matches
잘 살펴보면 6.0의 단축키로 사용할수 있는 옵션도 있다.
이런것도 있다. 도구모음에 오른쪽클릭 -> 사용자 지정 -> 옵션 -> 스크린 팁에 바로가기 키 표시
= 기능으로 정리 =
ctrl+shift+C
Shift+Alt+Enter
==== 가로 공백 삭제 ====
==== 일치하는 글자 연속으로 찾기(증분검색) ====
를 누르면 하단에 자세히보면, "증분검색" 이라는 텍스트가 나온다. 그러면 그때 찾기 원하는 단어를 입력할때마다 일치하는 위치로 바로바로 이동한다. (좋은기능)
==== 선언으로 이동 ====
Ctrl-F12 : 선언으로 이동(예 : 대략 헤더파일 프로토타입으로 이동)
==== 정의로 이동 ====
F12 (예 : 대략 CPP파일 구현부로 이동)
Shift+Alt+F12 : 이거 찾기보다 좋더군요. 함수나 define등 아무거나에서 사용
==== 파일로 이동 ====
Ctrl-Shift-G : #include "파일명" 에서 "파일명" 파일로 바로 직접이동
Ctrl-Shift-F
Ctrl-Shift-H
Ctrl-Shift-Spacebar : 함수이름편집중 '''툴팁'''으로나오는 함수와매개변수설명이 안나올경우, 강제로 나오게
==== 영역 세로로 잡기 ====
Ctrl+Shift+R
- ZeroPageServer/SubVersion . . . . 50 matches
CVS의 대용으로 개발되기 시작하여, 최근 fsfs의 지원 이후로 CVS를 대체해 나가는 추세이다. 많은 opensource 기반 프로젝트들이 SVN으로 옮겨갈 준비들을 하고 있다. 최신버전인 1.2버전부터는 bdb가 기본이었던 것이 fsfs가 기본 타입으로 설정되었다.
* '''FSFS repository back end is now the default'''
* 기본적인 이용법은 거의 cvs와 동일하다. 심지어는 콘솔의 명령어도 거의 동일하다고 생각된다. 하물며 Tortoise같은 프로그램인데 오죽하랴. 다른 것은 저장소를 표기하는 방법이 다르다.
|| {{{~cpp svn+ssh://ID@zeropage.org/home/SVN/project}}} || http://zeropage.org/svn/project ||프로젝트 진행 Repository ||
의 형태로 이루어진다. 그외의 모든 것은 CVS와 동일하다.
[http://zeropage.org/cvs/?root=project ViewCVS] : 웹인터페이스로의 체크아웃이 가능하다.
제로페이지의 사용자 계정이 있다면 누구나 사용이 가능하다. 대신에 로컬에는 ssh의 클라이언트(커맨드 기반)가 필요하다. (그렇지만 그룹설정이 필요하기 때문에 관리자에게 그룹으로 설정해달라고 해야합니다. 그룹이용자가 아닌 경우에는 저장소를 읽을 수는 있지만 쓰기는 하지못한다.)
svnserver을 이용하면 사용이 간편하고 서버를 관리하기도 편하지만, 아직 SubVersion이 계정 파일로 encrypt 된 것을 지원하지 않기 때문에 패스워드 노출의 소지가 상당히 높아서 이용하지 않았다. 차후 subversion 이 이 사항을 지원하면 추가하는 것이 좋을 듯 함.
subversion 은 http 로의 접근도 제공한다. 대신에 기본제공 프로토콜보다는 속도가 느린 단점이 있다. http 의 접근은 현재 익명계정에 대해서는 checkout, read 만 사용이 가능하며 checkin 계정을 받기 위해서는 관리자에게 다음의 정보를 메일로 보내주면 추가하는 것이 가능하다.
* ''저장소의 개인권한을 만들려고 하다보니 웹에서의 체크아웃은 공용 저장소인 project, study 에 국한합니다. 개인별 저장소는 오로지 ssh 에 의한 접근만을 허용합니다.''
sapius:i2BKwIhXaPCbc // 이런 문장이다. Crypt 알고리즘으로 암호화된 문장이다.
* SSH를 통해서 접근을 하는 경우 상당히 잦은 패스워드 입력 창을 보게됩니다. 이를 해결하기 위해서 몇가지 방법이 존재하는데.. ''(터널링 프로토콜로 SSH를 이용하기 때문에 어찌하였던 SSH 프로그램을 등록해야함.)''
* SSH프로그램의 옵션으로 패스워드를 주는 방법
상기의 방법의 경우에는 암호가 그대로 저장되기 때문에 본인의 컴퓨터가 아닌 상황에서는 피하는 것이 좋습니다.
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
puttygen: rsa, dsa 공개키/비밀키 쌍 생성 프로그램
pageant: 키관리 프로그램
3. key comment 를 알아보기 쉽게 변경한다. 단순히 키의 주석을 다는 것이므로 아무걸로 해도 무관하다.
keyphrase 는 주의해서 만들어야한다. 이는 private-key에 암호를 부여하는 기능으로 키파일이 악의적
확인절차없이 바로 사용이 시스템에 접속하게 된다.
- 새싹교실/2011/무전취식/레벨11 . . . . 50 matches
정진경 : 딱히 기억이 안나는데. 목요일날 글쓰기 과제하고 태진인 독후감 하는데 글쓰기 자기소개서 술마시고 해야된데서 태진이가 참이슬 오리지날 팻트 가져와서 2/3정도 마시고 글쓰기 못하고 과제 망했음. 그날 이후로 허리가 아파요. 잠을 잘 못잤는지. 상금 언제 나오나염?
서원태 : 처음으로 중앙도서관 가서 책을 대출함, '이기적 유전자'책이었는데 이해를 못했음. 그래서 독후감을 써야되는데. 글씨 8pt로 해야되서 도저히 끝까지 분량을 채울수가 없어서. 반장 채우고 교수님한테 메일 보냈는데 12시 지나고 답장이옴. '홈피에 올리셈' 시간 지나기 전에 빨리 올려놓고 잤는데 시간내에 됬는지 모르겠음.
강원석 : 목요일. 학교 끝나고 집에 갔는데 강아지가 또 생김. 원래 있던 놈이 너무 귀여움. 그날 집에 갔는데 큰놈이 작은놈을 공격해서 그 다음날 보니까 작은애가 큰애 공격함. 근데 또 보니까 하루종일 큰놈이 기가 죽음. 꼬리도 안흔들고 밤에 목욕 시켜줬더니 신나함. 작은애는 '예삐'임 ㅋㅋ 작은애는 키우다가 할머니 댁으로. 금요일인지 목요일인지 보현이 생일이어서 학교 끝나고 놀았음. 제 생일떄 밥을 샀는데요. 걔는 밥을 안사더라구요 ㅋㅋㅋ 그리고 애들이랑 치킨집 가서 치맥을 시킴. 거기서 케잌을 하는데 주인아저씨가 화냄 '바닥에 뭍히면 묻어버림' 그리고 싸가지도 없음. '딥테이스트' 썩을 ㅋㅋㅋ 그리고 술막 먹고 당구장에 감. 신세계였음. 장난 아님. 그렇게 했는데 밤새는 애들 많아서 빨리 해산함. 고딩 친구 만나러 한양대감. 갔는데 쿨피스 소주를 시킴. 맛이 쿨피스도 아니고 술도 아니고 다신 안먹음. 그친구가 애들꺼 다 사줘서 잘먹고 그날은 잘 갔음. 토요일날 번지 뛴다고 해서. 10시에 분당에 비가옴 그래서 재환이형한테 전화해서 비온다고 하니까 망했다고 함. 그래서 자고일어났는데 11시에 비가 개고 날씨가 더움. 번지 뛰기 최고의 날씨. 전화하니까 '콜' 7명이 왔음. 그래서 운전해서 감. 율동공원에 갔는데 예약을 하고감. 그리고 정자동에 상현이형 아버지가 하시는 '오모리찌개'에 감. 고3친구들이랑 자주 갔던덴데 선배네 아버지가 하는집이어서 신기함. 맛있게 먹고 재환이형이랑 근화형이 다 사줌. 그리고 서현역 가서 오락실을 갔는데 신나게 놀고. 드럼 게임기에서 농락당함 ㅋㅋㅋ 그래서 다음애가 난이도 올려서했는데 또 Easy가 되서 손가락 하나씩만 씀. 일부러 죽었는데 다음판이 또됨. 아무튼 그래서 죽어서 500원 넣고 다시함. 그런데 또 못쳐서 죽음. 그다음 번지뛰러감. 엘레베이터 탔는데 1층과 2층(45m) 2층 올라가서 뛰어내림. 뛰어내리는 순간 죽는거 아닌가 '그어어어~'하고 뛰어내림. 그리고 애들 다 뛰어내림. 여름 방학때 가평을 가기로 함. 65 m뛰어내리러 갈꺼임. 나머지 사람 보내고 서현역에 뭘 먹으러감. 내가 서현살지만 몰랐던 치킨 7천원에 무한리필집이 있었음. 그런데 그집이 치킨이 한마리 시키면 반마리 밖에 안나오는데 너무 느려서 먹다가 지치는 구조임. 맥주만 엄청 먹고 나왔는데 또 근화형이 다삼. 감사합니다. 꿀꿀꿀. 그리고 다 태워드리고 버스태워드리고 집에 옴. 일요일. 엄마 생신인데 아침에 엄마랑 대판 싸움. 12시에 일어났는데 엄마가 세수하는데 나가버리심. 엄마가 차타고 가심. 그래서 집에와서 화내고 놀러갈라 했는데 그것도 아닌것 같아서 앞에 백화점 가서 생일 선물 삼. 그리고 집에와서 미역국 끓이고 놀러나감. 친구들 만나러 나감. 재수생 친구들 친구들 만났는데 불쌍해 보임. 그래서 당구장 가고 피씨방 가고 노래방 가고. 그리고 술집 가서 아줌마가 반갑다고 서비스 해주심 옆테이블 아저씨가 우리 담배피는사람 아무도 없다고 착하다고 먹고싶은거 시키라고하심. 그와중에 다이다이까고 있는 두명있었음 둘이서 4병까고 안죽음. 그리고 집에 11시에 간다고 한다고했더니 아빠가 화내심. 엄마 생일케잌 기다림. 그러고 생일 케잌하고 잠. 그리고 월요일에 눈뜨자 마자. 운동하고 집에 감. 요즘에 살이빠져서 참 좋아요. 집에 와서 가족끼리 영화를 보러가고. 그렇게 지나갔는데 오늘 새벽에 WWDC봤는데 새벽 4시까지 봤는데 아이폰 발표안해서 실망.
이소라 : 수요일에 학교 끝나고 동생 학원 등록해주고 남친 봄. 놀다가 남친 6시 수업가야되는데 2시에 만나서 놀시간 없어서 그래서 가지 말라고 땡깡부림. 그래서 걔 1교시랑 2교시 빠지고 3교시 들어감. 목요일에도 학교 일찍 끝나서 머리 자르러감. 머리를 자르고 고데기를 해줬는데 초딩 머리를 해줌. 바로 집에감. 그리고 안나옴. 머리 감아서 고데기 풀었더니 그나마 나아져서 다행. 머리 망. 토요일에 재수하는 친구 만나서 홍대 다니는 친구 만나서 놀았는데 한시간 두시간 영화가 여석 없어서 포기하고 밥먹고 스티거 사진 찍으러감. 스티커 사진 기계가 배경 고르는것도 10초 밖에 안주고 찍는것도 하나 이러고 찍고 이건 망했구나 한번 더 찍는데 그 기계가 다 괜찮은데 꾸미는거 70초 남았는데 끝남 ㅋㅋㅋ 소라 ㅅ 쓰고 있는데 꺼져서 그냥 가지고 나와서 콜드스톤 가서 아이스크림 먹으면서 사진찍고 와라와라 가서 과일소주가 있어서 직접 앞에서 갈아주는거 가는 사람이 자꾸 갈면서 절 쳐다봄. 갈면서 쳐다봐서 화장실갔다왔더니 검사했데서 얼른 먹고 나옴. 월요일에 그 남친네 수리 '나'형보고 공대가서 미적봐야되서 미적갈켜줌. 그리고 오늘 아까 목아파서 병원감. 근데 수업시간 다해서 딱 맞게 나왔는데 사람이 많아서 영어 40분정도 지각하고 20분 수업듣고 끝냄.
이진영 : 저번주에 창설 휴강해서 집에 일찍 갔는데 원래 선대 공부를 할려했는데 근데 일주일동안 잠만 많이 잤음. 그래서 일요일에 아빠 거래처 사람이 앵무새를 갖다주심. 근데 말은 못하는 애들같음. 근데 제가 조류를 싫어함. 원래 고양이를 기르려했는데 못기르는데 동네 고양이가 현관문 열어뒀더니 새들한테 달려들음. 그래서 새를 이름 지음. '모토' '로라' 근데 새가 엄청 조용했는데 하루 지나고 짹째댐. 때려야겠음. 그리고 어제 월요일이라서 남자친구 만났는데 인천 대공원갔음. 그래서 자전거 탔는데 사람 너무 많았음. 근데 한 30분타고 힘듬. 너무 덥고 그래서 쉬다가. 자전거 반납함. 그러고 롯데월드감. 그래서 롯데월드가서 야간이랑 이벤트해서 1만 5천밖에 안하는데 사람 너무 많아서 ㅠㅠ 별로 못탔는데 그래도 유명한거 다탐. 씐난다! 번지드롭 봤는데 초딩 4명이 스크림 가면쓰고 손흔드는데 많이 무서웠음. 그리고 자이로 스윙 무서웠는데 어제 타니까 별로 안무서웠음 'ㅅ'
김준석 : 토요일날 댄스스포츠 동아리 선생님이 못왔는데 나중에 오셔서 실컷 먹고 마심. 재밌게 놀았음. 요즘 프로젝트가 힘듬. 오늘 노트북 나갔음. 그래서 오늘 우울함.
강원석 : 내일로로 여행 2번 전국 일주. 살도 뺌. 영어 학원도 다녀야되고. 여행 많이 다닐꺼임. 여자친구도 생겼으면 좋겠어요.
김태진 : 스터디 좀 하고 프로젝트도 하고 토익도 점수 올려야되고 봉사도 해야되고 등.
이소라 : 저는 공모전. 많이 해볼생각임. 준석 : 제로페이지 오셈.
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 후기 페이지를 안만들었는데도 만들어주었군요! 역시 훌륭한 학생들입니다!! 사실 이번시간은 자습아닌 자습을 하게되었고 그냥 미래에 대해서만 물어보게 되었네요. 딱히 한것은 없습니다. 미안해요 선생님이 오늘은 바빳어요. 다음시간은 드디어 기말고사 준비입니다! 드디어 성과를 맺을때가 됬죠. C공부를 자세히 하라고는 안하겠습니다. 다만 피피티 훑어보는걸 5번만 하세요 부탁인데 5번만. 그리고 꼭 훑어봐야합니다. 읽어는봐야되고 꼬치꼬치 캐묻지는 말아야하는정도로~! 다음시간에 보증금을 반환해줘야겠네요. 이제 제자들이 쏘는날이다! - [김준석]
if (m[ypos][xpos]=='E') break;
//RIGHT방향으로 갔을때 검사하는방향을 RIGHT를 보고있을때 우측 그다음 정면 그다음 왼쪽 그다음 뒤쪽입니다.
//이것을 기반으로 쭉쭉 쳐봅니다.
if (m[ypos+1][xpos]!='#') dir=DOWN;
else if (m[ypos][xpos+1]!='#') dir=RIGHT;
else if (m[ypos-1][xpos]!='#') dir=UP;
else dir=LEFT;
if (m[ypos-1][xpos]!='#') dir=UP;
- 새싹교실/2012/사과나무 . . . . 50 matches
솔직하게 말하자면, 준비가 제데로 되지 않아 약간 붕뜬 강의가 진행되었습니다.
처음보는 운영체제라던가, 아직은 생소할 커맨드라인 프로그램 사용이라던가
과제로는 printf()와 scanf()의 사용법을 정리해오는 것을 주었습니다.
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 새싹교실 첫 수업이었다. 고한종 강사님이셨고 같이하는 팀원과는 같이못해 혼자듣게되었다. 선배님은 간담회때 처음뵜고 서정이누나는 뒤풀이때 처음봤다.새싹교실이라고해서 무거울줄 알았는데 내생각이 틀렸다. 아주 기본부터 차근차근 설명을해주셨고 문외한인 나에게 과제도주셨다. 더열심히 하라는 뜻인거같다.그리고 수업시간에는 간단한 사칙연산만 만들었는데 오늘 이차방정식을 푸는 프로그램을 만들어봤다. 도움을 받고 만든 프로그램이지만 다음엔 내가 스스로 만들어보고싶다. 앞으로 기대된다. - [김도익]
* 새싹교실 첫 수업이었다. 원래 두명의 학생과 같이 하기로 했는데 서로가 시간이 맞지 않아서 따로 따로 듣게 되었다. 고한종 선배님은 새터가기전에 몇번 뵙긴하였는데 대화를 해보진 못했다. 그런데 새싹 오티에서 처음 이야기 해보고 오늘은 계속 미루어 오던 수업을 드디어 듣게 되었다. 수업내용을 알아듣게 설명을 잘 해주어서 나름 어렸었던 문제들이 조금 해결되었다. - [김서정]
* 반이 바뀌었다. 우선은 '이소라 때리기 게임'을 직접 손으로 쓰게 하고 #include 나 #define 같이 코드에 쓰여져 있는 문법들에 대해서 설명해주었다. 자료형의 종류와 전처리기가 하는 일들, switch문과 if문의 용도차이 등을 설명해주었다. 수업이 끝난 뒤 책을 정하고 책에 맞춰 수업을 진행하자는 피드백이 들어와서 교재를 열혈강의로 정했다.
* 반이 바뀐 첫날, '이소라 때리기 게임'을 직접 손으로 타이핑을 시키고, 이 프로그램에 쓰인 개념들을 가르쳤다. 작년 나와 비슷한 수준이라 더 열심히 가르쳐야 겠다는 생각이 들었다. 둘 다 현재 수준이 많이 낮다는 걸 알았다. 앞으로는 좀 더 쉽게 설명해야겠다. - [김성원]
* 게임 프로그램 타이핑을 열심히 쳤다. 선생님께서 인내심이 좋으셔서 거북이 타자인 저를 잘 지켜보신 것 같다. 완전히 이해는 못 했지만 새로운 경험이 좋았고, 일단은 타이핑을 빨리치는 것이 급선무이다. 거부기 타이핑 개선하기!! - [김서정]
* 오늘은 이소라때리기라는 게임을 했다. 새 강사님과 시작을 해서 어려울 줄 알았는데 정말 친절하게 가르쳐주셨다. 알고리즘대로 구동되는 프로그램이 신기했다. 지난시간보다 더 많은 예약어를 이용했고, rand()라는 것도 사용했다. 가장 신기했던 것은 k와 p를 아닌 다른 문자를 이용했을 대 default문장이 나와 k와 p를 누를 수 있게 유도해준 것이다. 지난시간과 달리 조금 더 긴 프로그램을 짜봤는데 만들어져가는 과정이 눈으로 확인되니까 조금 더 욕심을 내보고 싶다. 앞으로 2탄을 더 복잡하게 만들고 싶다. - [김도익]
* 과제로는 19단을 짜오는 문제가 나갔다.
* switch문과 if문이 서로 바뀔 수 있다는 것을 보기위한 코드입니다.
if(i==1) printf("1\n");
else if(i==2) printf("2\n");
else if(i==3) printf("3\n");
else printf("0\n");
* 3. 각자의 방법으로 19X19단 정렬해보기
* 제어문을 반복하고 19X19단을 3단씩 출력하기를 했다. 제엄누과 반복문을 이용해서 직접 프로그래밍 해보는 일을 중점적으로 했다. 직접 짜보는 일이 큰 도움이 된다는걸 체감했다. 느리지만 꼼꼼히 해야할 것 같고, 여러번 만나는 것보다 해볼 수 있는 과제가 많이 나오는 것이 좋다고 느꼈다. - [김성원]
* 오늘은 제어문에 대해 배웠다. 지난시간에 했던 부분이지만 다시 공부하였다. 지난과제 구구단을 나눠서 출력하는 프로그램을 만드는데 \t 어떻게 써야할지 몰라서 많이 헤맸고,int k라는 개념도 생각을 하지 못해 나 스스로 만들지는 못했다. 변수를 2개만 해야한다는 고정관념을 버려야겠다. 오늘 배운점은 프로그램을 만들때 편협한 시각이 아닌 자유로운 생각으로 이것저것 생각하는 것이 너무나도 중요하다는 걸 보았다. 수학문제 풀이도 다양하듯이 프로그램도 마찬가지라고 생각한다. 한가지 주제에 대해 다양한 생각을 하는 연습을 해야겠다. - [김도익]
- 정모/2011.3.21 . . . . 50 matches
* [황현] 학우가 제시한 키워드 전기수로 Ice Breaking을 진행했습니다.
== 프로젝트/스터디 공유 ==
* 격주로 진행되어 이번주는 모이지 않음.
* Javascript에 관심있다면 내일 팀플룸으로 오세요.
* 이번주부터 토요일 2시에 모이기로 함.
* 프로젝트 제안
* 프로그래밍 경진대회 대비 스터디
* ZeroWiki에 대한 새로운 제안도 환영합니다!
* 이번주에 집부 모집으로 인해 정모 참여율이 약간 저조하기도 했고, 아직 학생들과 수업을 진행하지 못한 반이 많아 트레이드는 다음주에 진행됩니다.
* 신입생 설명회에서 ZeroPage 활동 안내를 받고 싶다고 의사를 밝힌 새내기들에게는 문자로 활동 안내 연락이 감.
* 그 외에도 새싹 교실 참여 학생이 ZeroPage 활동에 관심을 보이면 정모에 나올 수 있도록 선생님들께서 개별적으로 안내를 해 주세요.
* 3월 회고가 새내기가 참여할 구석이 별로 없는 활동이고
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* Emacs & Elisp 후기 :의 소개를 보면서 다양한걸 사용하는 승한형에게 잘맞는 프로그램이라 생각됬다. 그 프로그램을 사용하기에 다양한걸 좋아하기도 하고 내가 가장많이쓰는건 Eclipse와 그걸 지원하는 플러그인이지만 여러가지를 개발하는 개발자에게 저것은 좋은프로그램이라 생각된다. 하지만 나에게는 아직도 Eclipse를 다루는것조차 아직은 버겁기에 우선 Eclipse를 하자는생각이 들었다.
WoW 소개의 후기를 쓰자면 OMS를 한 사람으로 준비를하면서 게임광고를 공개석상에서 할때 하는 방법에 대하여 여러가지로 연구해보았다. 그리하여 게임광고가 우리의 시각적이고 환상적인 분야를 자극하기위해 영상에 공을 들였다는걸 알았단 점. 그리고 일상에서 주위사람들에게 가장 큰 게임의 광고효과는 내가 재밌게 게임을 하는것이라 생각되었다. - [김준석]
* 이번에 승한이 형의 Emacs. Elisp 세미나를 들었다. 세미나를 들어보니 Emacs는 매우 자신에 맞게 전환 할 수 있는 도구 인 것 같다. 와우 에드온 같이 자기에게 딱 맞게 설정하는 재미가 있을꺼 같다. 기회가 되면 한번 다뤄봐야겠다. 그리고 다음 OMS로 주제를 키넥트에 관해서 하고싶은데 아직 사지도 않아서!!! 뭘해야될지 고민이다... 그냥 요즘 새로나온 게임 인터페이스들에 대해 통짜로 해버릴까...고민중임 - [임상현]
* 간만에다시온 제로페이지는 그대로 이더군요. 준석이의 충격적인 세미나는 역시 와우는 나같은 사람은 손대면 안된다는 걸 확신하게해 주었습니다. 후밴들이많아서더 맛있는걸 못 사준게 좀 아쉽고, 발표는 사람들이 잘 집중해 줘서 너무고마웠습니다. 빨리 더 많은걸 배워서 세미나 해주고 싶습니다.. 마지막으로 회장님 화이팅ㅋㅋㅋ - [이승한]
* 혹시 괜찮으면 세미나 자료를 제로페이지 자료실에 올려주실 수 있으세요? 개인적으로 emacs에 관심이 좀 있어서 약간 쓰고 있는데 어떻게 세미나를 하셨는지 상당히 관심이 생겨서 그러는데 - [서민관]
* ''그대로'' 라고 말씀하신 것이 약간 충격적입니다ㅋㅋ ZeroPage가 어떤 면에서 그대로라고 느끼셨는지 궁금해요~ - [김수경]
- 페이지제목띄어쓰기토론 . . . . 50 matches
영문제목의 경우 대문자 단위로 붙여 쓰면 {{{~cpp (ex: TheWikiName) }}} 페이지 표시해줄때 {{{~cpp The Wiki Name}}} 식으로 알아서 띄어서 찍어준다. 하지만 한글제목의 경우는 지원하지 않는다.
* 사람들마다 띄어쓰기의 기준이 다를 수도 있다. 복합명사의 경우 기준이 애매하다.
* 영문 제목의 경우 모두 빈칸을 붙여서 사용한다. (제목으로 표시될때 자동으로 단어의 대문자 단위로 빈칸을 띄어주므로)
* 한글 제목의 경우 붙여쓰기를 기본으로 하되, 띄어쓰기도 허용한다. (띄어쓰기에 따른 효과는 아직 검증되지 않았으므로, 별다른 제약을 가하지 않기로 함)
전 wiki:NoSmok:페이지이름띄어쓰기 에서 내린 김창준선배님의 결론에 동의하는 입장입니다. 복합명사는 띄어쓰기를 마음대로 해도 되거든요. 어쩌면 이미 익숙해졌기에 이런 말을 할 수 있는지 모르겠지만, 띄어쓰기로 인한 불편은 아직 못느꼈습니다. --데기
문제를 시스템과 관련해서 제한을 두지 말고 생각해봅시다. 한글 띄어쓰기가 더 사용하기에 좋은지, 아니면 붙여쓰더라도 별다른 불편이 없는지. 만약 띄어쓰는게 더 좋은 방법이라고 모인모인을 수정해볼수도 있겠죠? 예를들어, 한글의 경우 마음대로 띄어쓰기를 하는 경우가 중복된 페이지를 생성하는데 문제가 된다면, 검색시나 새로운 페이지 생성시 white space 를 제외한 검색으로 페이지를 보여줄수도 있겠지요. 생각해보면 다른 '구현' 방법도 찾을 수 있을것 같습니다. 문제는, '문제'자체가 어떠한게 더 좋은 방법인지를 이야기해보도록 합시다. -- 이선우
우선, 한국어는 영어와 달리 띄어쓰기를 하지 않아도 크게 불편하지 않습니다. 문자와 말의 특성 때문입니다. 하지만 이것이 띄어쓰기를 한 경우보다 정보 손실이 있다는 점은 사실입니다. 현재 모인모인에서는 {{{~cpp ["..."]}}}를 이용해서 확장위키이름을 사용하는 한, 띄어쓰기를 하든 안하든 상관이 없습니다. 띄어쓰기를 하는 것이 좋겠다고 생각을 한다면 그렇게 해보세요. 그리고 나서 토론해 보는 것이 좋을 것입니다. 현재 노스모크는 규칙 변경을 하기에는 비용이 너무 높습니다.
저는 만약 한글 띄어쓰기를 허용하면 분명 어리버리 영문도 띄어쓰기를 하는 사람들이 증가하게 될 것이고, 이는 곧 위키네임이라는 엄청나게 편리한 기능을 사장시킬지도 모르겠다는 우려를 했었습니다(어떤 규칙을 허용하면 그 규칙은 다른 규칙을 점진적으로 파괴하기도 합니다). 노스모크 초기 때에 페이지이름에 대해 엄격한 룰이 없었는데 제가 우려한 현상이 나타났었죠. 한글이건 영문이건, 띄어쓰기를 하는 사람도 있었고, 안하는 사람도 있었고.
DeleteMe) 위키네임이 주는 편리한 기능이란, 손쉽게 같은 내용의 중복을 방지하고 하나의 집약된 문서를 만드는 것인가요? 초기에 노스모크에서 일어난 한글 띄어쓰기 문제가 곧 영문의 경우에도 임의로 띄어쓰게 한 결과를 낳았고, 이로 인해 발생한 문제는 '중복된' 페이지의 양산,혹은 사용자가 원하는 페이지를 쉽게 찾을 수 없는데에서 기인하는지 알고 싶습니다. 전, 순수하게 띄어쓰기 자체가 사람이 문자나 내용을 인지하는데 나쁜 영향을 준다고는 생각하지 않습니다. (현재 자연스러운 글쓰기 형태는 지금 쓰는 문서처럼 띄어쓰기를 허용하니까요. 물론, 제목의 경우에도 예외라 생각하지 않습니다.). 정리해서, 띄어쓰기 자체가 띄어쓰지 않는것보다 좋지 않다고 생각하시는건지, 아니면 위키와 결부된 기능상의 문제인지 알고 싶습니다. -- 이선우
거듭 말씀드리지만, 기능상으로는 제한이 없습니다. 그리고 띄어쓰기 자체가 붙여쓰기보다 나쁘다는 어처구니 없는 일반진술도 하지 않았습니다. 어떤 구체적인 컨텍스트 속에서 이야기를 해야죠. 위키네임이 주는 편리한 기능이란 단어를 붙여쓰면 자동으로 링크가 되는 것을 말합니다. 사람들이 FrontPage라고 하면 될 것을 {{{~cpp ["front page"]}}}나 {{{~cpp ["Front Page"]}}}, 혹은 {{{~cpp ["Frontpage"]}}} 등으로 링크를 걸었다는 것이죠. 또, 사실 사용자가 띄어쓰기를 하건 말건, 혹은 대소문자를 어떻게 섞어쓰건 일종의 분리층(separation layer)을 둬서 모두 동일한 페이지이름으로 매핑을 하는 방법이 있습니다. 하지만 이렇게 되면 새로운 규칙 집합(제가 말하는 규칙이란 사람들간의 규칙을 일컫습니다)이 필요할 것입니다. 국문 경우는 몰라도 영문 경우는 띄어쓰기를 하냐 안하냐가 아주 차이가 큽니다. 노스모크는 초기부터 영어 페이지이름을 많이 사용했고 현재도 그러하기 때문에 이런 문제는 꽤 중요했죠. 또 (영문 경우) 기존의 위키표준을 지킨다는 생각도 있었고요. 하지만 여기는 아직 출발단계이고 하니까 다른 실험을 해볼 수 있겠죠. 아, 그리고 생각이 난건데, 페이지이름을 띄어쓰기를 하게 되면, 사람들이 이걸 위키에서 말하는 어떤 고유한 "단어"로서의 페이지이름(위키의 페이지이름은 "단어"입니다. 그게 하나의 커뮤니케이션 단위이기 때문이죠.)이 아니고 게시판에서의 게시물 제목 수준으로 생각하게 되는 경향(affordance)이 있었습니다. 사실 위키에서의 페이지이름은 프로그래밍의 변수이름처럼 상당히 중요한 역할을 하는데, 붙여쓰기를 하게 되면 사람들에게 기존 의식틀에서 벗어나서 페이지이름이 고유한 것이고, 기존의 게시물 제목과는 다르다는 인식을 심어주는 데에 많은 도움이 되었습니다. 다른 원인도 있겠지만, 주변에서 페이지이름에 띄어쓰기 붙여쓰기 등 별 제한 없이 자유로운 곳일수록 페이지이름을 페이지이름으로 활용하지 못하는 경우를 많이 봤습니다. 만약 띄어쓰기를 허용한다면 오히려 더욱 엄격한 규칙과 이의 전파가 필요할지도 모르겠습니다.
제 원칙은 1) 시스템은 간단하게, 사람들이 이해하기 쉽게, 그리고 모든 가능성을 열어두고 제한사항을 축소하고, 2) 사람들이 암묵적으로(그러나 위법가능한) 지키는 규칙은 예외 상황을 줄이고 규칙간의 충돌을 피하자는 것이었습니다.
조금 다른 이야기인데, 특수문자를 페이지이름에 사용하는 문제입니다. 제가 특수문자를 사용하지 말자는 규칙을 만든 이유는, 그것이 발음하기 어렵기 때문입니다. 발음하기 힘든 단어를 한 사회의 언어에 사용하지 않는 것에는 언어학적, 심리학적, 사회학적, 조직학적, 문화적 문제가 중층적으로 연계되어 있습니다. 한마디로 말한다면 해당 위키 커뮤니티가 더 발전하기 위한 겁니다. 이건 다음에 기회가 되면 자세히 설명을 하죠. 아주 작은 차이 같고, 별 이유가 없고 오히려 더 불편한 것 같지만 사실은 상당한 차이를 불러오는 것들이 많습니다. 페이지이름 띄어쓰기 문제도 직접 실험도 해보고 그 결과에 대해 여러가지 분석, 논의도 해보면서 신중한 결정을 하길 바랍니다. --김창준
혹시 '/'를 사용한 페이지들를 염두에 두고 하신 말씀이신지요. ["ZIM/UIPrototype"] 과 같은 페이지의 이름은 굳이 특수문자를 안쓰고 접두어처럼 사용해서 ["ZimUIPrototype"]과 같이 만들어도 ''작은 차이''일 뿐이라는 생각이 듭니다. 그런데 '/'를 사용하니 제목에 사용된 두 개념의 경계를 명확히해서 눈으로 읽기에는 더 좋은데요, 슬래시(slash)라고 소리내어 읽어야 한다는 것이 어떤 ''상당한 차이''를 불러올지 궁금합니다. --이덕준
''DeleteMe)'+' 라던지 '^' 등등의 경우를 말씀하시는 것 같은데요. --석천''
에구, 잘못 넘겨짚었단 생각이 드는군요. 어쨌든 '/'도 특수문자이긴한데, 예외적인 케이스로 인정할 수 있는 특수문자라고 봐도 될지... --이덕준
역시 약간 다른 이야기긴 한데, 페이지 제목에 특수문자를 집어넣을 경우에 문제가 있긴 합니다. 바로 모인모인 검색의 문제인데, 'C++' 등의 '+' 같은 경우 검색시 만들어지는 정규표현식에 문제를 일으키는군요. -- 석천
- ProjectVirush/Idea . . . . 49 matches
프로젝트에 직접 참여하지 않으시더라도 다양한 의견을 환영합니다. 특히 생물학 지식에 대해서는 오류수정이나 추가정보를 기다립니다!
세균 키우기..... 이른바 '실시간 멀티 온라인 게임' 이다. 이걸 만들기로 결정하는 순간 우리는 커다란 문제에 직면하였다! ;;ㅁ;;
첫째 '실시간'이다. 실시간으로 돌아가는 프로그램은 커다란 제약을 가지게 된다. 무엇보다 '슈퍼 울트라 복잡한 연산을 해서는 안된다.'는 것이다. 맵이 너무나도 큰 나머지, 또는 맵을 검색하는 알고리즘이 너무 자세한 나머지 "왼쪽 끝에서 오른쪽 끝까지 이동하도록 명령하니 1분동안 길을 찾느라 멈추었어요." 라는 소리를 들어서는 안된다. 물런 이런 과장된 일은 없겠지만, 실시간으로 진행되는 만큼 끊김없이 느껴질 수 있는 부드러운 연산이 가능해야 한다는 것이다. 더욱이 멀티플레이인 만큼 이 문제는 더욱더 중요해 진다. 플레이어 1이 복잡한 연산을 수행시켜버렸다고 해서 플레이어2까지도 버벅되서는 조금 곤란해 진다. 이러한 문제를 감안해서 어떻게든 연산을 빠르게 만들어야 한다.
의 게임도 이런 길을 걷지 않도록 노력은 해보아야 할것이다. 실시간이라고 해서 강한 인공지능을 부여했더니 몇년동안 자리를 비워도 꿋꿋하게 성장해서도 안된다. 또 규칙이 단순해서 오늘은 '성장' 내일은 '정지' 이런식으로 반복하면 수학적으로 최적화된 성장 알고리즘이 나온다. 와 같이 되면 재미가 없어질 것이다.
위의 조건들과
2. 이 바이러스들은 자신의 염기서열(이하 DNA)을 바탕으로 AI를 구성하여 움직이고, 분열하고, 다른 세포에 침투한다. (J)
6. 백혈구는 진화할때 일부의 성능이 떨어지는 DNA를 그대로 복제한다 (E)
8. 백혈구는 플로킹과 같은 간단한 알고리즘(A)을 통해 뭔가 있어 보이게끔 움직여야 한다. (F)
( 꿈틀거리는 백혈구들이 무언가(?)있어 보이는 편대를 이루어 움직이는 듯한 모습을 플레이어가 본다면, 실제로는 무언가(?)가있는 편대는 없어도 플레이어는 그렇게 느낄 것이다.)
11. 바이러스는 세포에서 얻은 영양소를 바탕으로 분열하며(D), 많은 DNA는 많은 영양소를 필요로 하게 된다.(D)
13. 바이러스도 서로의 DNA를 바탕으로 서로를 알아보기때문에 이를 수정해서 타 플레이어와 동맹을 취하거나 숙주의 세포로 위장할 수 있다. (H)
(동맹을 취하기 위해 같은 일부 DNA를 같게 만든다면 이익을 볼 수도 있지만, DNA가 같아서 다형성이 떨어지기 때문에 백혈구로 부터 다같이 죽을 수도 있다.)
( 이를 막기위해 플레이어는 DNA에 분열할 조건을 추가할 수 있지만 이는 추가적인 영양소의 소모를 의미한다.)
18. 각각의 세포는 종류 및 만들어진 시간, 공급받은 영양분에 따라 서로 다른 영양소를 가지고 있다. (D)
19. 특정 기관을 구성하고 있는 숙주의 세포가 각 기관의 최소 필요양 이하로 줄어들게 되면 숙주는 점차 죽어간다. 숙주가 죽으면 해당 숙주의 바이러스는 전부 소멸한다.(D)
20. 만일 숙주가 사망하기 이전에 다른 숙주로 옮겨간 바이러스가 잘 살고 있다면 플레이어는 해당 숙주를 선택해서 플레이 할 수 있다. (E)
21. 다른 숙주로 DNA특성에 따라 이동할 수 있지만 (E) 이는 아주 낮은 확률이며, 다른 숙주의 바이러스는 현재 플레이중인 숙주가 죽을 때 까지 플레이, 볼 수 없다. (D)
( 숙주가 너무 많아질 경우 서버가 감당하기 힘들 수 있기 때문이다. )
23. 화려하고 박진감 넘치는 게임을 제작하는 것이 불가능 하다면, 반대로 가볍고 명령을 내리는 간격이 길어서 다른걸 하면서 할 수 있는 게임을 만든다.
전체적으로 플레이어가 고생하는 요소가 많지만.. 이는 플레이어가 너무 똑똑하고 돌발적이기 때문이다..ㅠ.ㅜ 플레이어를 저지하기 위해 AI들이 살포시 치트를 한다고 해도 뭐라하진 않겠다.^^ (단, 티내지 말것! 플레이어가 백혈구에게 들키지 않기 위해 구석에서 가슴을 조리며 은둔 생활을 하는것도 묘미!)
- TermProject/재니 . . . . 49 matches
씨뿔뿔 1학기 과제로 나왔던 건데....
if (select == 1) menu1(); // 각 선택에 맞게 함수를 호출
else if (select == 2) menu2();
else if (select == 3) menu3();
else if (select == 4) menu4();
else if (select == 5) break; // 5번 메뉴는 종료
else error(); // 잘못 입력하였을 경우 에러메시지를 출력하는 함수 호출
if (select >= 1 && select <= 3) // 서브메뉴의 선택에 따라 화면에 출력하는 함수를 호출
if (select >= 1 && select <= 3) {
if (sort_stats[i][select] > sort_stats[j][select]) // 선택된 과목에 따라
void menu4() // 모든 입력 데이터와 평균 및 학점을 평균 성적 순으로 정렬하여 출력함
if (avr_ind[i] > avr_ind[j])
void sub_menu() // 1, 2번 메뉴의 경우 서브 메뉴를 입력받아 선택된 메뉴를 출력하는 함수
cin >> select; // 서브메뉴를 출력하고 사용자로부터 입력받음
if (select < 1 || select > 3)
error(); // 잘못 입력하였을 경우 에러메시지를 출력하는 함수 호출
else cout << endl << (select == 1 ? "국어" : (select == 2 ? "영어" : "수학")) << " 목록n"
} // 공통적으로 들어가는 라인을 출력함
void prt_select() // 1, 2번 메뉴의 경우 서브 메뉴에 따라 화면에 결과를 출력함
<< "t " << sort_stats[i][select] << endl; // 성적 출력
- YouNeedToLogin . . . . 49 matches
페이지 수정에 로그인이 필요한 YouNeedToLogin 모드를 적용한다면 다음과 같은 장,단점이 있을 수 있다.
* 초보자의 테스트 목적 접근이나 실수로 인한 페이지 생성을 줄일 수 있다.
["상민"]은 로그인이 없었으면 좋겠다. 익명으로도 누군가 고칠수 있으면 좋겠다. http://c2.com 같이 로그인 하든 안하든 문서를 수정하는 편이 편한면에서 좋을것 같다. 로그인은 배경화면이나, css 의 개인화 처럼, 편의성을 제공하는 형태로 존재하는 선택지의 상태로 두어으면 좋겠다.
''제가 페이지수정에 로그인 의무화를 주장하는 가장 큰 이유는 보기좋고 편리한 RecentChanges 입니다. 로그인이 귀찮은건 사실입니다만 보다 잘 정리된 ZeroWiki 를 사용하고 싶습니다.'' --["이덕준"]
주장하는 가장 큰이유는 아마 ["상민"] 이가 로그인 하는 id 번호를 까먹어 버려서 일것인지 모른다는 생각이 든다. id 약 7개 정도 만든것 같은데, 어째 기억나는 것은 하나도 없는지... --["neocoin"]
제 생각은 '' 아무나 어떠한 제한 없이 수정할수 있다 '' 입니다. 로그인 자체가 필요한 이유가 현재 두가지를 드는데, 보기좋고 편리한 RecentChanges 와 이상한 형태의 새페이지 개설을 막자입니다. 전자는 저 자신은 그리 크게 신경 쓰지 않는 일이라, 여태 생각하지 않았던 것입니다. 후자는 인간이 그러는 것이라면, 로그인 이후에도 그러한 실수는 배제할수 없지 않을까요?
''ZeroWiki는 아무나 어떠한 제한없이 로그인할 수 있습니다. 전 후자의 경우는 위키 초보자가 저지르는 실수라고 생각합니다. 로그인을 할수 있는 사용자는 그런 실수를 하지 않으리라 봅니다. 그리고 다시 말씀드리지만 그러한 작은 불편 때문에 YouNeedToLogin을 주장하는 것은 아닙니다. --["이덕준"]''
제가 RecentChanges 에 그렇게 신경이 안쓰이지만, 다른 분들이 신경이 쓰이는것 처럼, 저에게는 작은 불편으로 인식되지 않습니다. 위의 Document 에서 언급한것처럼 틀속에 갖히는 느낌이 가장 싫습니다. 그리고, 처음 오시는 분들이 자유롭게 수정못하는 것에 가장 마음이 걸립니다. 제가 http://c2.com 을 보고 받은 충격을 받고 느낀 자유로움 때문에 이런것이 작은 불편보다 더 크게 다가 옵니다. --["neocoin"]
''DeleteMe 약간의 오해가 있었던거 같은데, 제가 말한 '작은 불편'이란 로그인 과정의 불편이 아니라 이상한 형태의 새페이지 생성으로 인한 불편을 말한 것입니다. --["이덕준"]''
로그인은 그자체로 무언가 틀속에 갖혀 있다는 생각이 듭니다. http://c2.com 에 오타같은거 수정하면, 로그인이 없고, 그냥 edit 버튼을 누를수 있는 것이, 최대한 글을 쓰는 것을 격려한다는 생각이 듭니다.
로그인을 유도 하기 위해서는 위에서 언급했지만, 로그인에 여러 이점으로 끌여 들여야 하지, 로그인으로 접근 제한을 하는것은 그리 격려할 만한 일은 아니라고 생각합니다.
''["로그인하기"]는 개인차원의 이익으로 개인이 선택할 문제지만, YouNeedToLogin 문제는 공공의 이익을 얘기하는 문제입니다. 전 ["로그인하기"]를 유도하고자 하는것이 아닙니다. --["이덕준"]''
저도 사실 로그인을 글쓰기 권한으로 하는 방안에 찬성하는 입장이었는데 생각해보니 위키 사용에 익숙치 않은 사람들에겐 '로그인의 의무화'가 글을 쓰는데 또하나의 벽이 생길지도 모르겠습니다. 위키가 일반 게시판과 다르듯이 일반 싸이트 로그인하듯이 로그인하는 것과 다르다고 생각합니다. --["창섭"]
id 부분에 대해서 UID 숫자가 아닌 아이디/패스워드 스타일로 UserPreferences 를 패치해야 할듯. (조만간 수정하겠습니다.) --["1002"]
한 보름 정도만 ZeroWiki를 YouNeedToLogin 모드로 사용해보길 제안합니다. 그 이후에 YouNeedToLogin 모드를 유지할지를 결정했으면 합니다. --["이덕준"]
그런데.. 보름 정도 YouNeedToLogin 모드로 사용하게 된다면, 로긴을 하지 않았을 때 글을 쓸 수 없다는 거지요? 그건, '로그인 하지 않고 글 쓰는 것' 을 막는 거겠군요. 개인의 자유에 맏겨두지 않고 말이지요. 전 반대합니다. 일단, 싫고, 자유와 가능성을 제한한다는 것이 싫습니다. --["zennith"]
YouNeedToLogin 모드가 자유와 가능성을 얼마나 크게 제한하는지, 그 제한으로 과연 우리가 얻는게 있는지 한번 경험해보자는 의도입니다. 한달을 하자는 것도 아니고 일년 동안 하자는 것도 아닙니다. 잠시 그렇게 해보자는 겁니다. 절대로 안되겠습니까. 자유와 가능성을 제한하는 것은 저 역시 싫습니다. 하지만 '절대 자유'가 최선이 아닐수도 있다는 생각을 하고 있습니다. DeletePage 액션은 관리자만이 쓸 수 있습니다. 조금만 더 유연하길 부탁드립니다. --["이덕준"]
요새들어 제로페이지 위키에 검색엔진을 통해 생성된 쓰레기 페이지들을 자주 볼 수 있습니다. 볼때마다 매번 지워주기는 하는데, 노스모크처럼 로그인을 해야 글쓰기 권한이 생기게 바꾸어 보는것도 좋겠다는 생각을 합니다. 이 페이지가 생긴게 꽤 오래전인것 같기는 하지만 YouNeedToLogin 에 대해서 다시 한번 생각해봐야 할 때가 아닌가 생각됩니다. 하지만 로그인을 해야하는 것은 방법은 위키의 철학에 위배되는게 아닌가 하는 생각도 할 수 있습니다. 굳이 로그인을 하지 않더라도 스팸성 글을 막을 수 있는 대책이 필요합니다. 예를 들어, 페이지 수정을 할 때에 난수값을 하나 찍어두고 input 필드를 하나 더 두어 이 곳에 생성된 난수값을 그대로 입력하게 하여 초기에 생성된 난수값과 같을 시에만 글을 수정하게 하는 것입니다. 물론 똑똑한 로봇들은 이를 교묘히 피해가겠지만요. - [임인택]
- ZeroWiki . . . . 49 matches
["이름짓기토론"]에서 ["0'Wiki"]라는 이름으로 광식(["woodpage"])군이 별뜻없이 쓰고 ["상민"]군이 흥분하는 통에 우리 위키의 이름이 되었으며 NoSmok:WikiName 으로 만들기 위해 ZeroWiki로 ["페이지이름바꾸기"]했다.
ZeroWiki는 ZeroWikian, ZeroPagers들의 ''프로젝트 & 스터디 공간''으로 쓰이며, 공개적으로 운영되고 있다. 현재의 자신들이 공부, 관심있는 분야들에 대해 페이지를 지속적으로 키워나가면서 다른 사람들에게 보여줄 수 있고, 또한 참여를 하게 할 수도 있다. 그리고 여기에 남겨놓은 문서들을 토대로 다른 사람에게 전달해줄 수 있을 것이다. 또한 해당 페이지는 다시 수정과 수정을 거침으로 키워져 나갈 것이다.
각각 사람들이 공부하고자 하는 분야가 다양해지고, 사람들이 모든 영역을 다 커버할 수 없다고 할때, 반복되는 질문이 일어나기 쉬운 일반 게시판의 질답란보다 더 의미있는 정보들을 담아낼 것으로 기대한다. ZeroWiki 는 ZeroPage 의 정보 Repository 이다.
* 위와 같은 목적으로 쓰는 사람들이 알아서 잘 사용하세요. 다른 사람들의 페이지에 대해서도 자유롭게 참여하십시오.
jereneal: 왜 제로위키에 노스모크라는 말이 많나 했더니 그게 한국어 최초 위키에 김창준선배님이 관리자였구나.......
kesarr: 노스모크는 한국어 최초의 위키위키이고, 김창준 선배님은 한국에 위키위키를 소개한 사람. 제로페이지에도 소개했지
kesarr: 노스모크는 흡연을 안 하는 사람들의 폐쇄적인 모임 같은 건데 처음에는 파이썬으로 구현된 유명 위키 플랫폼인 모인모인을 사용했는데 제로페이지 위키도 김창준 선배와 교류하면서 노스모크 활동을 하시던 제로페이지 선배님들이 모인모인을 적용했었고 노스모크 내부의 다양한 요구사항에 대응하기 위해서 노스모크의 한 회원이 모인모인을 개조하기 시작 이걸 모인모인 노스모크 에디션이라 부르고 그 회원이 아예 위키 플랫폼을 새로 만들자고 선언하고 PHP로 새로운 한국형 위키 플랫폼을 개발했는데 그것의 이름이 모니위키
kesarr: 그리고서 노스모크는 모니위키로 건너갔고 제로위키는 제로페이지 선배님들이 모인모인과 호환되는 새로운 위키를 공부도 할겸 제로페이지 내 프로젝트로 진행하셨는데, 이게 제로위키. 제로페이지 위키는 여기서 제로위키로 갈아탐 제로위키는... 일단 심각한 버그가 있었고 특정 행동(콘텐츠 편집)에서 행이 걸려서 엄청나게 늦게 반응하는 문제가 있었음...그런데 프로젝트를 진행하던 선배님들이 계속 제로위키를 유지보수하기 힘들게 되면서... 그런데 그 시점에...!!
kesarr: 학교에 있던 제로페이지 서버가 폭파되는 재난이 발생... 06~07년에 사용하던 제로위키에 저장된 콘텐츠는 모두 증발하고 모인모인에서 제로위키로 옮겨타던 무렵 백업해둔 자료를 가지고... 새로운 서버에 모인모인과 문법이 호환되는 모니위키를 설치해서 운영 재개... 11-12년 도쿠위키 또는 미디어위키로 위키 플랫폼을 옮기려는 제로페이지 내부 프로젝트를 개설했으나... 다들 바쁜데 진행할 게 많고 이미 모니위키가 모인모인과 많이 달라져서... 모인모인-타위키 컨버터를 쓸 수 없다는게 함정 모니위키는 한국의 일부 위키만 쓰므로... 다른 위키와의 컨버터 따위 없다.. 게다가 제로페이지 위키는 모인모인 문법과 모니위키 문법이 혼재하기 때문에 컨버터를 만드는 것 자체가 까다로운...
see also ["ZeroWiki/제안"], ["위키로프로젝트하기"], ["제로위키이용의어려움"], ["학술터위키와제로페이지위키링크문제"]
["제로페이지분류"]
- 요정 . . . . 49 matches
아주 오랜 옛날 인간은 이 세계에 있던 모든 것 (자연현상까지도) 을 의인화했다. 이것이 요정이란 상상의 존재를 만들어 낸 것일수도 있다. 그러나 목격했다는 말을 믿는다면 다음의 이야기도 수긍이 갈 것이다. 요컨대 원래부터 그 터에 살고 있던 주민이라는 것이다. 그 후에 나타난 민족에 쫓겨난 사람들이 동굴따위에 숨어 그 이야기가 전승되는 동안에 요정이라는 존재로 미화되었다는 것이다.
'성스러운 것' 과 '사악한 것' 어디에도 속하지 않는다. 보통때는 사람들과 다를 것도 없는 생활을 한다. 무리를 만들어 사는 것도 있으며 혼자서 사는 경우도 있다. 나무나 물의 정령처럼 자연계에 오랫동안 살기도 하고 모습을 감추고 살기도 한다.
육지에 사는 것, 물 속에 사는 것이 있으며 성질도 가지각색으로 인간에게 도움을 주는 것 (아일랜드의 레프리콘) 도 있지만 요정의 화살을 쏘아서 마비시키는 (콘월의 픽시) 등 나쁜 짓을 하는 것도 있다. 땅의 풍토나 자연에 따라 가지각색의 요정이 있다. 요정은 스스로 선택해서 모습을 나타내기 때문에 사람이 요정을 만나기는 쉽지 않다. 다만 느낄 수는 있다. 눈보다 귀로 요정의 존재를 아는 사람이 훨씬 많다는 걸 알아두어야 한다. 발소리나 노래 소리 따위는 요정의 짓이 대부분이다. 요정은 보기도 어렵지만 보게 되더라도 눈깜짝할 순간에 놓쳐버리고 만다. 투시 능력이 있는 사람에게는 보인다고도 하지만 보통 인간에게도 간단한 방법이 있긴 하다. 네잎 클로버를 머리 위에 올려놓고 요정이 바르는 약을 눈에 붙인다. (다만 약 만드는 법은 요정만이 알고 있다)
영국의 웨일즈 지방 어딘가는 그곳을 왕래하다가 헛발을 디뎌 넘어지면 순간 요정이 보이는 1평방 야드 정도의 땅이 있다고 한다. 보기 쉬운 시기는 5월 1일, 6월 24일 (하지), 10 월 31일 (할로윈) 따위, 시간은 태양이 머리 꼭대기에 오는 정오, 한밤중, 황혼 무렵이다.
단호히 요정을 지명해서는 안된다. 요정이 기분이 상해서 장난을 치기 때문이다. 좀더 부드럽게 '작은 사람들' , '평화로운 사람들', '좋은 이웃', '착한 사람들', '금발을 한 일족' 따위로 부른다. 재미있는 점은 요정은 자기 진짜 이름을 밝히지 않는데, 만약 사람이 그 이름을 알게 되면 그 요정은 그대로 사람의 종이 되기 때문이다.
요정 중에는 악마적인 행동을 하는 요정도 있지만 결정적인 차이는 악마가 그런 행위를 하는 목적은 인간에게 해를 끼치거나 타락시키는 것인데 비해 요정은 그들 자신이 살아가기 위한 방편이거나 그들 스스로 즐기기 위한 것이다.
대개 요정은 우리가 먹는 것과 같은 것을 먹는다. 다만 유럽인들은 요정이 히스풀 줄기, 사슴과 산양의 젖, 보리, 밀 등을 주식으로 삼는다고 생각했다.
작은 산이나 물속, 숲 근처에 사는 요정이 많은 듯하다. 물론 사람 근처에 사는 걸 즐기는 요정도 있다. 요정 나라는 작은 산의 입구부터 대지 밑, 또는 해변의 동굴부터 바다밑까지 널리 퍼져있다. 또 요정들은 호수나 냇물 속, 나무 구멍이나 뿌리 사이, 언덕에 뚫린 굴속에 사는 것으로 여겨졌다. 그들은 달빛을 받으며 춤을 추는 걸 즐겼는데, 사람들은 항상 '요정의 링' 을 보고 그들이 맘에 들어 한 무도장을 발견할 수 있다. 그것은 버섯이 점점이 줄지어 완전한 원형을 만들어 놓은 것으로, 그 원 속의 풀은 주위의 풀보다 짙은 녹색을 띈다. 사람들은 이 순수한 원을 피해 가야한다. 만약 그 원 속에 발을 디디거나 그 속에서 잠을 잔다면, 요정들에게 유괴될지도 모른다고 생각했기 때문이다. 요정들에게 유괴되어 그들이 사는 지하에서 몇 분 있다 돌아오면 지상에서 는 이미 몇 년이 지나있다고 한다.
대체로 남을 돌봐주길 좋아하는 밝고 쾌활한 성격으로, 마음에 드는 인간에게 선물을 하거나 집안일을 도와주지만 그것을 떠들어대거나 감사해서는 안된다. 프라이버시를 침해하거나 요정이 다니는 길을 방해하면 그들은 심술궂은 마음을 갖게 된다. 빌려주고 꿔주는 것도 귀찮아 한다. 가령 요정에게 음식을 꿨다면 돌려줄 땐 똑같은 양이 아니면 안된다. 만약 조금이라도 많다면 화를 내며 두번 다시 꿔주지 않는다. 반대로 빌려준다면 두 배로 돌려준다고 한다. 요정은 친근한 성격이지만 대체로 요정 쪽에서 친구를 선택한다. 집에서 가사를 도와주는 '브라우니' 따위각 그 대표적인 예이다. 브라우니는 근심 걱정을 해결해 주는 요정으로 어려움에 처한 가족을 도와주었던 이야기들이 각지에 남아있다. 도움 받은 사람들은 대개 가난하지만 바른 마음을 가지고 살아가는 사람들이다.
후이돌이라고 불리는 바이올린의 일종을 빠른 템포로 연주하고, 스텝을 밟기 쉬운 곡이라면 어떤 곡도 좋지만 특히 '지그 (jig- 만화영화 '인어공주' 에서 선상에서 나왔던 음악이죠. 춤추기 좋은 민속음악의 일종입니다)' 라고 불려지는 곡은 요정들의 댄스곡으로서 친숙한 것 같다.
집단으로 사는 요정 중에서도 궁전 형태를 갖춘 요정들에게는 분명 남녀의성차가 있다. 또 남성을 유혹하는 요정인 라난시는 여성, 여성을 유혹하는 요정 간코나는 남성이다. 그 밖의 요정에게는 남성이나 여성도 있지만 그 양쪽을 합쳐서 가지거나 또 어느 쪽도 아닌 것도 있다고 한다
모두가 해질녘까지 적당한 장소에서 잠을 잔다. 예전엔 난로에 연결된 굴뚝 속이나 냄비를 걸어 두는 쇠사슬 위에 솜씨 좋게 붙잡고 잠자는 브라우니가 목격되기도 했다. 항간에는 만약 잠자고 있는 요정을 보더라도 잠을 깨우거나 하는 바보같은 짓은 하지 않는게 좋다고 한다.
모두 서로 다른 취향을 갖고 있어 멋내기를 즐기는 듯 하다. 숲속에 사는 정령들은 숲에서 얻을 수 있는 소재를 사용해서 능숙하게 옷을 만들어 입고 인간의 주위에 사는 요정들은 인간에게 빌린 물건으로 꾸려 나가는 경우도 있는 듯 하다.
뇌출혈에 의해 발생하는 반신불수나 수족마비를 '중풍'이라고 하지만 이것은 요정의 짓이라고 전해지고 있다. 류마티즘이나 피부병, 결핵, 게다가 종아리에 갑자기 쥐가 날 때, 경련이 일어날 때도 옛날 유럽 사람들은 요정 탓이라고 했다. 부딪힌 기억이 없는데도 몸에 시퍼런 멍이 들 때가있는데 그것은 요정이 손가락으로 꼬집은 것이다. 부도덕, 불결을 싫어하는 요정이 인간에게 준 벌인 것이다.
가끔 요정들은 사람에게 일종의 마성을 띈 꿰뚫어보는 힘인 '천리안'을선물하곤 했다. 그것은 요정이 사람의 눈꺼풀 위에 고약 (또는 요정의 침)을 바르는 순간 생기는데 이 시력은 마술적 환상을 꿰뚫어 볼 수 있게 했다. 즉 마법으로 만든 각종 가구, 장식품 등이 실제로는 나무 등걸이나 짚더미인 것을 알아챌 수 있게 한 것이다.
믿을 수 없지만, 유럽에는 요정의 물건을 소장하고 있는 박물관이 많다.에딘버러에 있는 박물관에는 '요정의 관' 이 있다. 스코틀랜드의 서쪽에 떠있는 루이스 섬의 근처에 픽시의 작은 섬이 있다. 16 세기와 17 세기에 인간의 것으로 보기에는 너무나 작은 뼈가 발견돼었다는 기록이 남아 있다. 그러나 20 세기에 들어서 발견된 뼈가 바다새나 작은 포유동물의 것으로 판명됐기 때문에 과거에 발견된 뼈도 요정의 것은 아닌 것으로 보인다. 요정을 찍은 사진 중에서도 수정이나 이중 촬영한 흔적이 보이는 것이 많다.(참고로 빅토리아 시대엔 요정의 존재를 꽤 믿었다고 합니다. 이 시대에 초심령현상에 대한 열풍이 불기도 했지요.)
아일랜드를 대표하는 레프리콘은 사람들에게 전혀 해코지하지 않는 아주 온순한 요정으로, 땅굴 속에 숨어 살면서 언제나 한쪽 구두만 만든다고 한다. (공포영화에 주연으로 나오기도 했지만..원래는 착한 요정이랍니다) 식사를 대접해 준 구둣방 노부부를 위해 밤새 구두를 만들어 주었다는동화 속 난쟁이 요정들은 바로 이들이다. 아일랜드의 또다른 요정 밴시는 늙은 여자의 정령으로 죽음이 찾아오려 하는집밖에서 울부짖는다고 전해진다. 밴시는 머리를 길게 기르고 푸른 옷에 흰색 망토를 입은 창백한 여성으로 직접 사람들을 해치지는 않지만 섬뜩한 울음소리 덕분에 두려운 요정으로 알려져 있다. 아일랜드에는 라난시라는 요정이 또 있는데 매우 아름다운 용모로 자기에게 매혹된 남자들의 생명을 앗아간다고 한다. 이 요정은 시인이나 예술가에게 영감을 주는 요정으로, 그리스 신화의 뮤즈들과 흡사한 점이 많다.
북유럽 신화에 등장하는 드워프는 손 기술이 뛰어나 무엇이든 잘 만드는 재주꾼이다. 드워프는 긴 수염과 작으면서도 단단한 몸집, 그리고 대단한 먹성으로 유명한데 동화 백설공주와 일곱 난장이들의 난쟁이의 모티브가 되었다고 한다.
요정은 일반적으로 양심이나 절조가 없고 장난기가 있어 인간에게 친절한 대접을 받으면 거창하게 답례하지만 조금이라도 푸대접을 받으면 심하게보복한다. 때때로 인간의 아기와 못갱긴 자기 아기를 바꿔 놓기도 하는데, 이때에는 요정의 아기 발에 기름을 바르고 천장에 매단 후 아래에서 불을 피우면 마지못해 훔쳐갔던 아기를 돌려준다고 한다.
스코틀랜드에는 브라우니란 요정이 있는데 가족이 잠든 후 부엌을 치우거나 접시를 씻는 등 서비스를 하는 가사일을 좋아하는 요정이다. 근대에 들어 브라우니는 고풍스러운 갈색 옷을 입은 난쟁이로 표현되는데 원래는 갈색머리와수염을 기른 몸집이크고 못생긴 남자였다
- OurMajorLangIsCAndCPlusPlus/float.h . . . . 48 matches
||FLT_EPSILON ||1.0과 더했을 때 float형으로 1.0이 되지 않을 최소의 값 ||1.192092896e–07F ||
||DBL_EPSILON ||1.0과 더했을 때 double형으로 1.0이 되지 않을 최소의 값 ||2.2204460492503131e–016 ||
||LDBL_EPSILON ||1.0과 더했을 때 long double형으로 1.0이 되지 않을 최소의 값 ||2.2204460492503131e–016 ||
||FLT_MANT_DIG ||float형 floating point로 표현 할 수 있는 significand의 비트 수 ||24 ||
||DBL_MANT_DIG ||double형 floating point로 표현 할 수 있는 significand의 비트 수 ||53 ||
||LDBL_MANT_DIG ||long double형 floating point로 표현 할 수 있는 significand의 비트 수 ||53 ||
||FLT_MAX ||float형으로 표현할 수 있는 가장 큰 floating point 값 ||3.402823466e+38F ||
||DBL_MAX ||double형으로 표현할 수 있는 가장 큰 floating point 값 ||1.7976931348623158e+308 ||
||LDBL_MAX ||long double형으로 표현할 수 있는 가장 큰 floating point 값 ||1.7976931348623158e+308 ||
||FLT_MAX_10_EXP ||float형으로 표현할 수 있는 가장 큰 floating point의 10의 지수값 ||38 ||
||DBL_MAX_10_EXP ||double형으로 표현할 수 있는 가장 큰 floating point의 10의 지수값 ||308 ||
||LDBL_MAX_10_EXP ||long double형으로 표현할 수 있는 가장 큰 floating point의 10의 지수값 ||308 ||
||FLT_MAX_EXP ||float형으로 표현할 수 있는 가장 큰 floating point의 2의 지수값 ||128 ||
||DBL_MAX_EXP ||double형으로 표현할 수 있는 가장 큰 floating point의 2의 지수값 ||1024 ||
||LDBL_MAX_EXP ||long double형으로 표현할 수 있는 가장 큰 floating point의 2의 지수값 ||1024 ||
||FLT_MIN ||float형으로 표현할 수 있는 가장 작은 양의 floating point 값 ||1.175494351e–38F ||
||DBL_MIN ||double형으로 표현할 수 있는 가장 작은 양의 floating point 값 ||2.2250738585072014e–308 ||
||LDBL_MIN ||long double형으로 표현할 수 있는 가장 작은 양의 floating point 값 ||2.2250738585072014e–308 ||
||FLT_MIN_10_EXP ||float형으로 표현할 수 있는 가장 작은 floating point의 10의 지수값 ||–37 ||
||DBL_MIN_10_EXP ||double형으로 표현할 수 있는 가장 작은 floating point의 10의 지수값 ||–307 ||
- SeminarHowToProgramIt . . . . 48 matches
애들러의 How to Read a Book과 폴리야의 How to Solve it의 전통을 컴퓨터 프로그래밍 쪽에서 잇는 세미나가 2002년 4월 11일 중앙대학교에서 있었다.
프로그래밍이란 것을 어떻게 하는가? 어떤 사고의 과정을 거치는가? 어떤 인지적 보조물의 도움을 받을 수 있는가? 어떻게 하면 프로그래밍을 더 잘할 수 있을까?
* TestDrivenDevelopment -- 프로그래밍의 코페르니쿠스적 전환
* DesignPatterns -- ["디자인패턴"] 공부 절대로 하지 마라
* Coding Style -- esp. How to Name it (프로그래머를 위한 정명학. "子曰 必也正名乎...名不正則言不順 言不順則事不成" <논어> 자로편)
* Lifelong Learning as a Programmer -- Teach Yourself Programming in Ten Years (http://www.norvig.com/21-days.html )
''위의 것을 두시간 동안 다 한다는 것은 -- 세미나 이전과 이후에 사람이 달라지는 수준에서 -- 불가능하고, TDD와 PP, 그리고 DP(RF)를 집중적으로 다루겠습니다. 가능하면 제 구두설명은 짧게 줄이고 나머지 시간은 이 세가지를 직접 실습, 토론하는 시간이 되도록 하겠습니다. 할 것은 많고 시간은 짧습니다. 요즘 저의 "세미나 화두"는 어떻게 하면 "적게 전달"하고 깊이 깨닫게 하거나 혹은 반성하고 또 다양하게 실험해 볼 여지를 많이 제공할 수 있을까 하는 것입니다.''
대상은 프로그래밍 경험이 부족한 분, 혹은 너무 많은 분.
협동적 학습을 목표로 함 -- 저는 서로 얼마나 많은 것을 배울 수 있는지 매번 놀랍니다.
* 대상: 중앙대학교 컴퓨터 공학과 제로페이지 회원 및 비회원, 혹은 타과, 타학교 학생/교수/일반인
=== 프로그램 (pun intended) ===
* 8:00-8:10 커플별로 TDD 실습
* 8:10-8:30 그룹 나누기, Crc Card 소개, 프로젝트 요구사항 소개 및 그룹별 토의
* 9:35-10:00 프로그램 시연, 설명, 전체 토론
* PC 미리 셋팅 - 프로젝션 할 컴퓨터 : Idle Fork + Python 2.2
* 기타 다른 컴퓨터들은 어떻게 할까요? 기본으로 Visual Studio 는 깔려있을 것이므로 C, C++ 는 되겠지만, Java 쓰시는 분들은?
* 기본적으로 Idle Fork와 Python 2.2는 모두 깔아야 함. (강사가 Python으로 시범을 보일 것이고, 이걸 보면서 그대로 따라하고 싶은 커플은 그렇게 할 수 있도록)
프로젝션 할 컴퓨터 : Idle Fork + Python 2.2
3. 프로젝트 설치
0,1,2 번 인원이 될경우 동시 진행, 2번 과정 병렬 수행 3번 단일
- SolarSystem/상협 . . . . 48 matches
float diffuseLight[] = {0.25f,0.25f,0.25f,1.0f};
float matDiff[] = {1.0f,1.0f,1.0f,1.0f};
if(height==0)
glMaterialfv(GL_FRONT,GL_DIFFUSE,matDiff);
glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuseLight);
if(o1_rot>359.9f)
if(o2_rot1>359.95f)
if(o2_rot2>358.0f)
if(fullscreen)
if(hRC)
if(!wglMakeCurrent(NULL,NULL))
if(!wglDeleteContext(hRC))
MessageBox(NULL,"Release Rendering Context Failed.","SHUTDOWN ERROR",
if(hDC && !ReleaseDC(hWnd,hDC))
if(hWnd && !DestroyWindow(hWnd))
if(!UnregisterClass("OpenGL",hInstance))
if(!RegisterClass(&wc))
if(fullscreen)
if(ChangeDisplaySettings(&dmScreenSettings,CDS_FULLSCREEN)!=DISP_CHANGE_SUCCESSFUL)
if(MessageBox(NULL,"The Requested FUllscreen Mode is Not Supported By\n Your video Card. Use Windowed Mode Instead?","NeHeGl",MB_YESNO|
- VendingMachine/재니 . . . . 48 matches
= 프로그램 설계 =
* 먼저 자판기(VendingMachine)이 필요할 것이고,
* 자판기는 사용자 인터페이스를 구현하는데 사용하고, 사람이 주문할 음료(Drink)를 따로 분류하자..
이 두가지 조건에 만족할 때에는 주문한 상품을 내줄 수 있어야 하겠고, 이 때 상품의 수량을 갱신해야겠지!^^[[BR]]
if (selection < 1 || selection > num)
cout << "REMAINDERS : " << remainders << endl;
if (coin == 1) coin = 10;
else if (coin == 2) coin = 50;
else if (coin == 3) coin = 100;
else if (coin == 4) coin = 500;
else if (coin == 5) coin = 1000;
else coin = 0;
class VendingMachine{
<< detail[i].quantity << endl;
if (remainders >= detail[selection - 1].price && detail[selection - 1].quantity != 0){
else if (detail[selection - 1].price > remainders)
else if (detail[selection - 1].quantity == 0)
VendingMachine vending_machine;
vending_machine.showMenu();
if (selection == 1)
- Z&D토론/통합반대의견 . . . . 48 matches
주로 수영이가 주체가 아니었나 생각된다)
아마 1(0.5+0.5)을 둘로 나누어서 1+1로 만들 생각이었으리라 생각된다.
0.5를 1로 만들려는 거였다는 거지. 하지만, 1을 둘로 나누어서 2로
0.6에 그친것 같다. 0.3+0.3 으로..
이를 다시 합쳐서 1과 1을 더해서 2 또는 그이상의 값으로 만들려는 현재의
나는 이 문제, 통합과 분할의 문제에 있어서 한걸음 뒤로 물러나련다.
두 학회 모두 스터디 및 프로젝트가 거의 없구
한마디로 적절치 못하게 둘러댄 핑계거리다. 나는 지난 91년부터 작년까지
제로페이지와 데블스(95년부터)를 봐왔다. 제로페이지 회원이 한 학년에
80명인 시절도 봐왔고, 제로페이지가 더이상 무의미하니 없애자는 시절도
봐왔다. 제로페이지를 없애자는 의견이 나왔을때, 남들보다 더 가슴이
열심히 하고, 대학원을 KAIST로 가기 위한 노력들을 많이 했었지만, 이젠
우리나라에 별로 없다. KAIST 졸업 예정인 후배의 말에서도 알수 있듯이,
흘러간다. 그 무의미한 시간들은 제로페이지나 데블스를 약하게 만들기에
대학에서는 경험이 쌓이지 못한다. 계속 새로운 사람들이 들어오고 오래된
때문이다. 순간적으로 다른 모습을 보일 수는 있겠지만, 그게 얼마나 가줄까에
또 지난 시간들이 바꾸어놓은 우리의 문화이기 때문에 새로운 문화를 끌어
현재의 제로페이지는 잘 모르겠다. 그러니 데블스를 보자. 데블스는 어떤가.
하고 있는가? 현재 태호가 혼자서 허우적거리고 있지만, 한마디로 불쌍할
감독이 새로 왔다고 지난 수십년간 쌓아온 선수들의 의식을 바꾸는것이
- i++VS++i . . . . 48 matches
간단히 생각하면 되는 것이었습니다.. i++ 이나 ++i 모두 값(value)을 생성하는 연산자 입니다. 그러므로.. i 가 5 일때 i++ 의 값은 5이므로.. printf("%d", i) 는 5를 찍어주겠지요.
mov ecx, DWORD PTR _i$[ebp] ; 변수 i 인 _i$[ebp] 를 ecx 로 옮기고
mov DWORD PTR _i$[ebp], ecx ; ecx 를 다시 _i$[ebp] 로
mov eax, DWORD PTR _i$[esp+12] ; 변수 i 인 _i$[esp+12] 를 eax 로 옮기고
mov eax, DWORD PTR _i$[ebp] ; 변수 i 인 _i$[ebp] 를 eax 로 옮기고
mov DWORD PTR _i$[ebp], eax ; eax 를 다시 _i$[ebp] 로
== 연산자 재정의로 구현했을때 ==
class 에서 operator overloading 으로 전위증가(감소)와 후위증가(감소)는 다음과 같이 구현되어 있다.
const MyInteger MyInteger::operator++(int) // 후위증가. 전달인자로 int 가 있지만
// 컴파일러는 내부적으로 operator++(0)을 호출한다.
++i, 나 i++ 둘다 상관 없는 상황이라면, ++i에 습관을 들이자, 위의 연산자 재정의는 [STL]을 사용한다면 일반적인 경우이다. 후위 연산자가 구현된 Iterator는 모두 객체를 복사하는 과정을 거친다. 컴파일러단에서 Iterator 의 복사를 최적화 할수 있는 가능성에서는 보장할 수 없다. 따라서, 다음과 같은 경우
for(vector<int>::iterator i = intArray.begin(); i != intArray.end(); ++i){
cout << *i << endl;
그냥 사용한 경우나, for 문에서 사용한 경우는 ++i 와 i++ 의 성능 차이가 없다. 그러나 함수의 전달인자로 사용한 경우는 ++i 보다 i++ 의 코드가 명령어 한개 정도 길어진다. 하지만 그냥 사용한 경우나 for 문에서 사용한 경우에는 i++ 을 쓴 곳을 ++i 로 서로 바꿔 써도 상관 없으나, 함수의 전달인자로 사용한 경우에는 i++ 을 쓴 곳을 ++i 로 바꾸면 실행 결과가 달라진다. 그러므로 함수에서 i++ 을 사용하고 있을 경우 프로그램이 한 줄 이라도 추가되지 않고 ++i 로 바꿀수 있으면 바꾸는 것이 더 효율적이다. 또한 그냥 사용할 경우나, for 문에서 사용한 경우는 ++i 를 쓰지 않아도 상관 없다. --["상규"]
* 아악... 어셈이다. 전 봐도 모르겠으니 걍 제가 본 글귀를 그대로 인용하겠습니다.
효율성 때문이라는 것이 정답이다. 후행 증가 연산자는 변수의 이전 값을 돌려 주므로 이전 값을 담을 임시적인 변수를 만들고 파괴하는 과정이 일어나게 된다.
후행 증가로도 선행 증가와 동일한 방식의 루프를 만드는 것이 가능하지만, 후행 증가를 사용할 특별한 이유가 없다면 항상 선행 증가 또는 선행 감소 연산자를
요즘 컴파일러들은 최적화가 잘 되어서 이전 값을 돌려주기위해 이전 값을 담을 임시 변수를 만들고 값을 증가시킨 후 임시 변수에 있는 이전 값을 돌려주고 임시 변수를 파괴하는 방식으로 하지 않고, 이전 값을 먼저 돌려주고 값을 증가시킵니다.
속도가 아주 빨라야 하는 프로그래밍을 할 때는 특정 컴파일러에서 어떻게 할 때가 성능이 더 좋은지 알 필요가 있을수도 있다.
물론 '''특정''' 컴파일러라는 것이 언제나 명시되어야 한다. 일반화는 일반적으로 옳지 않다.
- zennith/w2kDefaultProcess . . . . 48 matches
제목 윈도우 2000 디폴트 프로세스
윈2000에서 디폴트로 돌아가는 프로세스들에 대해 다룰 것이며 이 프로세스들을 작업
분이다. Csrss는 Client/Server Run-time SubSystem의 약자로 항상 돌고 있어야 하는
작업관리줄, 바탕화면 등과 같은 사용자 셸로서 Windows의 작동에 있어 필수적인 요소
시스템 시작과 함께 구동되는 프로세스로 사용자가 지정한 여러가지 입력로케일
시스템 트레이에 "EN" 아이콘을 띄움으로써 사용자가 입력로케일간에 변환을 손쉽게
할 수 있도록 한다. 작업관리자를 통해 이 프로세스를 종료하면 "EN" 아이콘도
보이지만 제어판을 통해 입력로케일간의 변환이 가능하다.
로컬 보안 인증 서버로서 Winlogon 서비스가 사용자를 인증하는데 필요한 프로세스를
만들어 내고 이 프로세스는 Msgina.dll과 같은 인증 패키지를 이용함으로써 수행된
기 셸이 구동된다. 동 사용자가 초기화하는 다른 프로세스들은 이 Access Token의 지
사용자 세션을 시작시키는 세션 관리자 subsystem으로서 시스템 쓰레드에 의해 초기화
되며 Winlogon 및 Win32 (Csrss.exe) 프로세스를 구동하고 시스템 변수를 설정하는 등
이들 프로세스를 구동시킨 다음 Winlogon이나 Csrss가 종료할 때까지 대기하되, 종료
가 정상적으로 이루어지는 경우엔 시스템이 종료하고 그렇지 않은 경우엔 시스템을 반
응없음(Hang)상태로 만든다.
DLL로부터 구동되는 다른 프로세스들에 대한 호스트로서 작동하는 generic process이
기 때문에 2개 이상이 생길 수도 있다. Svchost.exe를 이용하는 프로세스들의 명세를
대부분의 시스템 커널모드 쓰레드들이 System 프로세스로서 실행된다.
각각의 프로세서(CPU)에서 돌고 있는 단일 쓰레드로서 시스템이 다른 쓰레드들을 프로
- 서지혜 . . . . 48 matches
나의 [http://rabierre.wordpress.com 블로그]
1. 프로젝트 5개 공개하기
* '''의도적 수련'''에서 영감을 받아 시작하기로 한 reconstitution project
* 옛 페이지를 홈으로 띄우기
* ~~4.5 정모에서 한 코드레이스의 코드를 TDD로 짜보려고 하고있어요.~~
1. 1000시간 프로젝트
1. 나를 위한 프로그램
* 평가 : 준비가 제대로 되지 않았다
* 시간을 제대로 맞추지 못하였다(1시간 이상 걸림)
* DB 프로젝트 : 동네 검색 종결자(DSN)
* 갑작스레 엄청난 이민의 압박을 받아 Ruby on Rails를 시작하려 함. ~~가볍기로 소문났으니 12/31까지 toy 만들어보기로 목표.~~
* 가볍기로 소문난 루비와 나의 집중력..
* 기념으로 Jetbrain사의 RubyMine구매 (12/21 지구멸망기념으로 엄청 싸게 팔더라)
* 사이냅 소프트의 신입사원 채용 테스트 프로그램을 해볼 예정
* 새로운 기술 HTML5를 알아보는 시간
* 이케아 가구로 꾸민 카탈로그같은 것들을 모아 서비스하고 싶었다.
* heroku가 오랫동안 활동이 없으면 앱을 sleep 상태로 만들어서 에러난거였음. 다시 들어가니까 서버 켜져있다.
* irb처럼 수식을 입력하면 계산값을 돌려주는 cmd 계산기. java와 ruby로 각각 만들다가 요즘은 java만 사용중이다.
* 꾸준 플젝인듯. 처음엔 reverse polish notation으로 입력식을 전처리하고 계산하다가 다음엔 stack 두개를 이용해서 계산하여 코드 수를 줄임.
* 그러나 위의 두 방법으로는 '3-2-1' 식을 평가할 수가 없었다(0이 아니라 2가 나옴). 멘붕을 겪고 연산자가 -이면 바로 뒤의 숫자를 음수로 만들고 -연산자는 +로 변환. 이라는 방법을 사용했다.
- CheckTheCheck/Celfin . . . . 47 matches
if(Pp=='P')
else if(Pp=='p')
if(chess[m][y]==Rr)
else if(chess[m][y]!='.')
if(chess[m][y]==Rr)
else if(chess[m][y]!='.')
if(chess[x][m]==Rr)
else if(chess[x][m]!='.')
if(chess[x][m]==Rr)
else if(chess[x][m]!='.')
if(chess[m][n]==Bb)
else if(chess[m][n]!='.')
if(chess[m][n]==Bb)
else if(chess[m][n]!='.')
if(chess[m][n]==Bb)
else if(chess[m][n]!='.')
if(chess[m][n]==Bb)
else if(chess[m][n]!='.')
if(checkBb(x,y,Qq) || checkRr(x,y,Qq))
if(chess[x-1][y-1]==Kk || chess[x][y-1]==Kk || chess[x+1][y-1]==Kk || chess[x+1][y]==Kk || chess[x+1][y+1]==Kk || chess[x][y+1]==Kk || chess[x-1][y+1]==Kk || chess[x-1][y]==Kk)
- MedusaCppStudy/세람 . . . . 47 matches
using std::endl;
if(r==0 || r== rows-1 )
if( c%2==0 || c==cols-1)
else
else if (c==0 || c==cols-1)
else
cout << endl;
using std::endl;
if(r==0 || r== rows-1 )
if( c%2==0 || c==cols-1)
else
else if (c==0 || c==cols-1)
else
cout << endl;
using std::endl;
if (r==0)
if(c==cols-1)
else
else if(r==rows-1)
if(c%2==0)
- MoniWikiACL . . . . 47 matches
/!\ 여기서 Anonymous 사용자는 @Guest로 지정되어 있으며, @Guest는 미리 정의된 그룹이 아닙니다.
* `protect`: 비밀번호 제한이 가능한 몇몇 POST액션에 대해 (모든 액션이 관리비번으로 제한가능하지는 않습니다)
* 일부 POST액션은 관리자 비밀번호로 제한을 걸어둘 수 있는 액션은 protect 가능한 액션입니다. protect 액션은 ''제한된 allow''이며, 일부 POST액션만 지원합니다. 예) do_post_savepage()는 post 액션이며, 일반 do_goto()같은 액션과는 달리 관리자 비밀번호로 액션을 제한을 할 수 있습니다.
FoobarPage babo deny edit,diff,info
* @ALL allow read,userform,rss_rc,aclinfo,fortune,deletepage,fixmoin,ticket // 여러 줄로 나눠쓰기 가능
WikiSandBox @Guest allow edit,info,diff
// WikiSandBox 페이지를 @Guest 그룹에 edit,info,diff 액션을 허용(allow)
/!\ ''//''로 시작되는 줄은 설명줄입니다.
# Please don't modify the lines above
// 모든 페이지(*)를 모든 사용자(@ALL)에게 ticket 액션을 허락(allow) ticket은 가입 폼에 나오는 로봇가입방지 captcha
WikiSandBox @Guest allow edit,info,diff
// WikiSandBox 페이지를 @Guest 그룹에 edit,info,diff 액션을 허용(allow)
MoniWiki @ALL deny edit,uploadfile,diff
// MoniWiki 페이지를 @ALL 모든 사용자에게 edit,upload,diff등의 일부 액션을 거부
explicit하게 지정할 경우 최종 ACL 항목이 적용된다.
wildcard를 쓴 경우도 역시 최종 ACL 항목이 적용된다.
* {{{allow *}}} + {{{deny info,diff}}} = info/diff 이외의 액션이 모두 허용: '''explicit하게 지정된''' 액션만 거부
* {{{deny info,diff}}} + {{{allow *}}} = 위의 경우와 같다. explicit하게 지정된 액션인 info, diff만 거부
{{{deny edit}}} + {{{allow *}}}은 그 반대로 {{{Order deny,allow}}}가 된다.
/!\ 주의: 모든 경우, explicit하게 지정될 경우에 효력이 발생한다.
- ZeroPageMagazine . . . . 47 matches
[정모/2004.7.26]에서 논의한 학회지 만들기를 위한 페이지(페이지 이름은 임시로 지음)
[정모/2004.8.9]에서 팀을 나누어 한 주 동안 프로토타입을 만들어보기로 했습니다.
어떤 식으로 시작해야 할까요? [유쾌한이노베이션]에서 읽은 내용을 한 번 실험해보면 재밌겠다는 생각을 합니다. 여러 팀으로 나눠서 ZeroPageMagazine의 프로토타입을 만드는거지요. 프로토타입은 완성품이 아니기 때문에, 한 팀에서 여러가지 프로토타입을 만드는 것이 전혀 문제될 것이 없습니다. 오히려 권장할만한 일이죠. 그렇게 프로토타입을 모아 놓고, 좋은 부분을 골라서 합치는 과정을 반복할 수 있을 것입니다.
저는 아직 해보지 않은 이런 활동을 통해 많은 것을 얻을 수 있는 것이 많으리라 기대합니다. 각 팀은 혼자 하는 일보다 협동해서 일할 때 얼마나 즐겁게 할 수 있는지 배울 것입니다. 덤으로 즐겁게 협동하는 훈련도 할 수 있을 것이고요. 결과가 좋다면, 협동했을 때 그 힘이 개인의 합보다 크다는 느낌을 받을 수도 있습니다. 여러가지 프로토타입을 보면서 좋은 학회지란 어떤 것이라고 스스로 느낄테고요. 여러 곳을 조사하면서 전에 보지 못했던 다른 분야의 지식을 접하는 경험을 할 수도 있습니다. 그냥 접하는 것이 아니고 거기서 개선할 부분을 찾아내는 비판적인 시각도 기를 수 있겠고요. --[Leonardong]
굳이 프로토타입을 만드는 것보다 각 개인이나 팀이 만든 기사거리나 정보 또는 스터디 결과를 이 페이지에 링크시키는 방식으로 프로토타입을 '''만들어 나가는''' 것이 더 낫다고 생각합니다. 이렇게 하면 일단 원고가 많아지겠죠. 또 프로토타입이란 것에 맞추어 나간다는 느낌을 덜 받게 되니까 더 효율적일 것이라고 생각합니다. 위의 방법도 나쁘진 않은것 같은데 두 가지를 절충하여 생각해볼 수도 있겠군요. --[구자겸]
좋은 의견입니다. 제 의견도 만들어나가는 프로토타입을 만들면서 그 '''과정'''을 즐기자는 취지입니다. 단, 한 가지 '''완성품'''을 만드는 데에, 또는 한 가지 방법으로 만드는 데에 초점을 두지 말았으면 합니다. 여러 가지 프로토타입을 만들어 보고, 다시 잘 된 것을 골라 개선해 나가자는 의견입니다.
''(전략)프로토타입이란 것에 맞추어 나간다는 느낌을 덜 받게 되니까 더 효율적일 것이라고 생각합니다. (후략)'' --[구자겸]이 쓴 윗글 인용
프로토타입을 만든다는 것이 틀을 정한다는 의미가 아닌가요? 틀을 만들어 놓고 하면 짜임새가 있겠지만 그것에 따라야 한다는 관념 때문에 원고를 작성하는 사람의 입장에서는 그 능률이 떨어지지 않을까라는 의견이었습니다. 예를 들어 저번에는 이런 것을 조사하고 싶어서 프로토타입으로 제출했었는데, 시간이 지나니까 또는 조사를 하다 보니까 영 아니다 싶은 경우가 있을 수 있겠죠. 혹시 제가 프로토타입에 대해 잘못 이해하고 있을수도 있겠다는 생각이 드는군요. 지적해 주세요.
밑에 자세한 설명이 있네요. 프로토타입 만들기를 하는 대상은 결과물에 한정되지 않고, '리허설'처럼 그 과정도 해당합니다.
프로토타입을 만든다는 것은 말 그대로 '시제품'을 만드는 겁니다. 해당 작업을 완벽하게 하기 전에, 무언가 내가 올바르게 하는 일인건지 리허설, 혹은 실험용 간단한 모델을 만드는 작업을 이야기하죠. 건축으로 친다면 건물 만들기 전 모델을 만들고 선풍기 바람 돌려서 안무너지나 알아본다던지, 혹은 PDA 프로그램을 만들기 전에 PDA 종이 모형을 만들고 그 안에 스크린을 종이로 구성해본다던지 등을 예로 둘 수 있겠습니다.
이미 ZP 는 프로토타입의 경험을 해본 사람이 있습니다. 바로 세미나 전 '리허설' 말이지요. 무언가 간단하게 해보고, 빨리 피드백을 얻어 개선점이나 더 즐거울 방법들을 찾아나가는 방법입니다. 그때의 느낌을 가지고 가볍고 빠르게 시작해보았으면 좋겠군요. --[1002]
관심 가져주시는 분들이 많군요. 그럼 가벼운 마음으로 만들기를 시작해보죠. 참여하실 분은 붙어주세요. --[Leonardong]
AnswerMe ZeroPageMagazine은 앞으로도 계속 만들어나갈 것인가요? 일회성 행사에 그친다면 아쉬움도 많이 있겠지만 앞으로도 계속 만들어나갈 것인지 아니면 한번 만들고 끝낼 것인지에 따라 발간형식이 달라질것 같아서요. 예를들어 직접 인쇄를 해서 ZeroPagers, ZeroWikian들에게 나누어줄 것인지, 혹은 위키위키형식으로 만들어나갈 것인지, 혹은 웹페이지, PDF, ... 등등 발간형태가 여러가지가 될 수 있는데 이에 대해서도 생각해 보아야 할것 같습니다 - [임인택]
''저는 혹 일회성 행사가 된다 하더라도, 사람들이 준비하는 중에 무언가 배우는 것들이 있다면 그것으로도 괜찮다고 봅니다만. (그정도로 가볍게 작업할 방법도 있으리라 생각하고요.) 개인적으로, 무언가 시도하는데 대해 너무 많이 걱정하진 않았으면 합니다. --[1002]''
회의를 통해 웹페이지 형식으로 만들 것으로 의견 조종했고, 위키형식은 아닙니다. 발간 형태는 월간, 방학마다등 생각 중인데, 일단 초판을 만들어보고 결정하기로 했습니다. --[강희경]
음... 저랑 승한이도 참여해야 하나요? 그럼 어떻게 해야할지 문자로 보내주세요~ -윤성만
언제 모이나...딱 정해야 할 텐데. 이대로 흐지부지 될 거면 그냥 종료하는 편이 낫겠다. --[Leonardong]
[제로페이지분류]
- 새싹교실/2011/무전취식/레벨10 . . . . 47 matches
김준석 : 5월이 막바지를 지냈어. 6월초에 프로젝트 발표가 4개 있어. 그래서 프로젝트에 치여삽니다. 하지만 잠도 잘자고 술도 잘먹어요. 그리고 구남영을 면회갔습니다. 소요산 근처 연천에 근무를 하는데 내가 옛날에 근무했던 지역에서 30분 정도 걸린지역이었다. 그래서 8시간이 걸렸음. 그래서 어제 힘들어죽는줄 알았다. 요즘 또 춤은 잘추고 있어요. 댄스스포츠 정말 잘 듣고있어요. 너희도 하고 싶으면 오세요. 프로젝트 한 기억밖에 없다.
이소라 : 수요일에요. 누가 숙제를 도와달라고 해서 원래 그날 창설모이는 날이었는데 1시에 끝나서 도와주고 창설 할려고했는데 다해서 축제도 보고 싶어서 오고있었는데 "끝났음"이라고 문자가왔음. 그리고 전날에 화요일에 6시에 오기로 했는데 새싹때문에 늦어서 문자 보냈더니 만난지 30분만에 "끝났음"이라고 문자옴. 이진영 : ㅋㅋㅋㅋ 그리고 못보고 목요일날 갔는데 퍼펙트 성공 이진영 : 이씨~~ ㅋㅋ 그리고 목요일에 축제라서 친구가옴. 6시에 왔는데 낮에 있던거 다 닫고 주점만 있어서 두바퀴오르락 내리락하다가 저기 블랙바니가서 또 꿀꿀꿀 퍼묵퍼묵 하는데 남자친구가 와서 학교 구경 시켜줄려고 올라왔는데 볼게 없어서 걔 아는 형이 저기 병원에 있다길래 만나서 노래방감. 그날 낮에 풍선 미끄럼틀가서 이진영: ㅋㅋㅋㅋ 애들이랑 다 탐. 근데 엄청 재밌게 탔는데 어떤애가 타다가 바지가 찢어짐 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ킨ㄹ이ㅓㅋㅋㅋㅋㅋ 그래서 진영이가 잘봤음. 그리고 금요일에 티셔츠 받으려했는데 줄이 너무길어서 그 전날 다른애한테 뺏은 L사이즈 내가 입음. 완전 하의실종임 ㅋㅋ 그리고 김장훈왔었는데 완전 좋았음.
이진영 : 화요일에 새싹 끝나고 선전부 회의를 가서 처음으로 자보를 썻음. 암튼 재밌었음. 그러고 화요일 수요일에 창설을 하느라 집에 계속 새벽 1시에 들어감. 근데 결과는 첫번째 할때 로봇 팔이 떨어져서 Fail 그리고 두번째는 퍼펙트를 했음. 그래서 돌만 없었으면 완전 퍼펙성공인데 짜증났었음. 그리고 화요일에 너무 배고팠는데 창설 4피에서 할때 홍병우 교수님에게 "교수님 배고파요"이랬더니 4피 사람들한테 다 쏨. 매우맛있었음. 애들이 절 찬양했음. 그리고 축제는 재밌었음. 아 그리고 목요일에 시청에 가서 거기 앞에서 군악대랑 사물놀이 연주하는 봤는데 되게 재밌었음.
서원태 : 수요일날 자다가 종하형한테 문자왔음 "경진대회 감독좀 맡아라" 그래서 갔는데 문제좀 봤는데 하나도 모르겠음. 그래서 인터넷 쓰는사람 계속 잡았는데 치완이네 조가 인터넷 쓰는건 몰랐는데 알아서 말해서 강퇴시킴. 그리고 끝나서 같이 밥먹고 집에감. 목요일에는 가족 저녘약속있어서 축제 구경못하고 집에 감. 금요일날 축제 구경할려고했는데 문예사 프로젝트 발표 준비때문에 구경 못함. 내년 축제는... 아 군대가있지. 군대갔다오면 3년정도 뒤에 볼수 있을듯.
정진경 : 작년 기출보고 갔는데 4문제 나왔는데 너무 어려움 . 삽질하다가 2문제 풀었는데 목요일날 결과 나왔는데 2등해서 넘 좋았음. 경진대회 전에 동양철학의 이해 수업이 있었는데 거기서 잠깐 졸았는데 귓속에 주문이 들어왔다 "양명학 주장학 " 그래서 깨고 보니까 머리가 아팠다. 10만원 현금으로 받고 부상있는데 기계식 키보드랑 무선 마우스. 1등부터 선택하는거임
김태진 : 저번주말에 부산에 내려갔습니다. 목요일 저녘에 갔기때문에 금요일 창설은 다해놓고 구경하러갔습니다. 그리고 금요일 저녘에 들은 소식은 Fail Fail~~~ ㅠㅠ. 축제도 못본건 아쉽긴 하지만 그래도 집에가서 이런저런거 먹고 잘 쉬다온건 행복했음. 프로그래밍 경진대회 나갔는데 한종이랑 송치완이랑 같이 나갔음. 분명 MSDN까지만 쓰기로 되있었는데 송모군이 MSDN하면서 www.google.co.kr를 통해 검색을 하다가. 야. 이거 문제 똑같애 하다가 들켜서 강퇴당함.
강원석 : 집에 강아지가 생겼음 종류는 말티즈 "콜" 네달됬는데 짱임. 남자임. 중성화 아직 안함. 해야한다던. 똥오줌 가려서 완전 신기함. 애가 첫날 왔는데 신문지 위에서 비비빅하더니 오줌거기서 싸고 똥도 거기서 사고 완전 신기함. 거실에서 따로 재움. 그럼 방문열고 들어옴. 이번주 창설 1등했음. 완전 좋음. 축제때 애들이랑 술만먹음. 구경은 안했음.
* 주석을 이용한 프로그램 설계 방법
//if(pel[i]==pel[count-i-1])
if(pel[i]!=pel[count-i-1])
if(i<=count*0.5) ;
else printf("pel");
if (num[i]>max){
if (num[i]<min){
if (i==selectMin || i==selectMax) continue;
if (newnum[i]>max){
if (newnum[i]<min){
if (max-min>=4) printf("KIN\n");
else{
강원석 : 앞으로 지각 안하겠습니다. 그리고 요즘에 C수업을 안들어서. 오늘 처음보는게 많았습니다. 어.. 그리고 오늘 숙제 짯는데 옆에서 쪼아줘서 참 고마워요. ㅎㅎㅎㅎ 정진경씨께 쪼아줘서 감사하단 말씀을 드리고싶습니다.
- 정모/2007.3.6 . . . . 47 matches
3/6일 제로페이지 정모 및 회의
첫 번째 발표자 : 김정현 -> 계절학기수강, 스키장, 시간표프로그램 프로젝트 표류중(진행중), 그 외에는 잡다하여
두 번째 발표자 : 이장길 -> 정현선배와 TDD, JAVA 공부, AI프로젝트 하다가 MFC프로젝트로 전환, 학교에 와서 서든하다가 선배들과 스타를 즐겼다.
세 번째 발표자 : 조현태 -> 프로젝트, 놀기, 알바(가장 많은 시간을 할애) => 방학을 주로 돈을 버는데 사용함.
네 번째 발표자 : 변형진 -> 거의 집에서 보냄. 프로젝트는 안함. 앞으로 새내기들에게 가르쳐 줄게 없는지 고민중.
다섯 번째 발표자 : 김준석 -> 독서실 알바활동을 주로함, 개인적으로 책을 읽을 시간이 많아서 좋았음. 프로젝트와 회의를 못나온것이 아쉬움. 새내기들과 프로젝트를 재미있게 할 계획.
여덟 번째 발표자 : 장재니 -> 계절학기 수강, 수련회 참가, 바쁜 생활로 몸이 안좋아져서 병원을 좀 다님. 2월초부터 알바를 시작해서 현재 진행중임.
제로페이지에... 개강을 맞이하여 제로페이지 활동을 많이 하시길 바라며, 항상 제로페이지라는 자부심을 가지고 계셨으면 합니다.
열한번째 발표자 : 임민수 -> 재대한지 체 한달이 안됨. 제로페이지 자유게시판에 복학생이라는 글을 올린 사람입니다. 모르는 분들이 많이 적응하는데 시간이 많이 걸릴거 같습니다. 프로젝트활동을 열심히 할 계획입니다.
열두번째 발표자 : 문원명 -> 06년 5월에 제대 => 7월달에 아르바이트 활동을 3개월동안 함.(LG전자에서 QA활동을 함) => 10월달쯤에 나휘동 회원과 함께 유럽여행을 3주동안 다녀옴(프랑스, 이탈리아, 스페인). 현재 2학년에 재학중입니다. “앞으로 좋은활동 많이 하겠습니다.”
열세번째 발표자 : 김태훈 -> 주로 아르바이트를 함(로봇회사에서 로봇 컨텐츠 구현). “로봇에 관련하여 관심을 많이 가져주셨으면 합니다.”, 최근에 삼성소프트웨어 맴버쉽 활동을 함. “ 공모전에 참여를 많이 하였으면 합니다. 공모전에 참가하실 분은 연락 주세요~”
* 각자 머릿속에 있는 제로페이지의 모습 발표
허아영 : 활기차고 역동적이며 화목한 모임 (서로서로 끈으로 연결되어 있어 선후배간에 유대감이 무지 강한 인간적인 학회임)
유상욱 : 한마디로 “폐인들의 집단”=> 조금 순화해서 예기하면 “엘리트 집단”
김남훈 : 서로간에 부족한점을 보완하기 위해 모인 곳. “인력풀!!”
* 제로페이지의 단점
조현태 : 특별한 체계가 없다. 제로페이지를 계속적으로 유지하고 더 큰 학회가 되게 하기 위해 강력한 체계적인 관리가 필요하다고 생각합니다.
...........................오늘 교양학교 등등의 바쁜일들이 많으므로 이 문제점은 다음에 다시 논의 하기로 합니다....................................To Be Continue
* 프로젝트
김정현 : 스터디 그룹을 많이 활성화 하면 1+1= 2이상의 효과를 발휘하므로 스터디 그룹을 많이 만들었으면 합니다.
- 조현태/놀이/지뢰파인더 . . . . 47 matches
일단 눈, 머리, 손으로 나눠서 제작한다.
눈은 전체화면에서 지뢰찾기 프로그램의 이미지를 추출하는 방식을 생각했으나 그냥 핸들을 구해오는 편한 방법으로 바꿔서 만들었다.
머리는 여러가지 알고리즘을 바탕으로 구상중이다.
데블스 캠프에서 배운 로보코드를 활용할 생각..^^ 뭔가 객체같은 느낌이 들어서 클래스로 만들어 주기로 했다.^^
클래스명이 로보 만들어놓은 객체의 이름을 레인져로 지어주었다.^^;;;
뭔가 비정상적인 프로그래머..ㅎㅎㅎㅎ 이상한 녀석!!^^;; - [조현태]
한 클래스에서 다른 클래스를 붕어빵 찍듯이 찍어내고, 또 그 클래스가 여러개로 찍혀나가게 했는데..
디버깅 작업이 난관에 부딫혔다. 끄응.. 수정해나가면서 일단 완성하고 봐야겠다. 만들고나면 전체적으로 대대적인 수정작업을
킁..ㅠ.ㅜ 재앙이다..;;ㅁ;; 앞으로는 이렇게 짜지 말자는거 이외에는 뭐라 할말이 없다. 오랫동안 손대지 않았던 터라, 알고리즘이 잘 생각이 나질 않는다. 그래도 내가 짜서 그런지 금방 알고리즘을 생각해내는데는 성공했지만... 많은 부분을 수정했으나, 더 많은 재앙들이 초롱초롱한 눈빛으로 나를 반기고 있다. 이쁜 아가씨면 반겨주겠지만 이런 버그덩어리라니.. 도데체 어느 부분에서 잘못된 메모리를 엑세스 하는건지..흑흑 어빠햐가 잘못해떵..ㅠ.ㅜ 제발 정상적으로 작동해줘..ㅠ.ㅜ API의 특징인지...내가 못해서인지.. 테스트가 콘솔창보다 용의하지가 않다. 수없이 조각조각 나있는 할당된 메모리의 파편을 일일이 추적하자니.. 트리나 링크드리스트 형식의 문제점이라고나 할까..;;ㅁ;; 도데체 어디서 잘못된겨~!!! !@#$%^&*()...... 그래도 실행하면 지뢰 한 2-3개.. 숫자 한 2-3개는 찾고 뻗으니위안은 된다.(참고로 아직 지뢰를 건드린적은 없다!!) 수정해야할 부분 태산.. 만들어야 할 부분 태산.. 휴가가 극도로 짦은걸 보면 방학중에도 만들어야 할지도... 뭐 나름대로 앞으로 프로그램을 어떻게 짜야 할 지에대해서 조금은 도움이 되겠지뭐..ㅠ.ㅜ 흑.. - [조현태]
계획 전면 수정. 알고리즘 및 소스 재작성 돌입. 과거 단순 "로봇을 이용해서 마호로매틱 쵸비츠..는 아니고 어쨋든 멋지게 만들어 보자!" 에서 "로봇만 이용하는건 넘흐 어려벙~ 다른걸 섞어봐야겠어~!" 로 변경. 사용하기가 편하고 검색속도가 빠른 기존의 방법과 정확도가 높은 로봇을 밀가루와 팥이만나 붕어빵이 되듯.. 잘 섞어보기로 결정했다. 새로 모든소스를 작성하고 기존 소스의 심각한 문제점이었던, 어설픈 분할과 최악의 테스트 조건(윈도우 지뢰찾기는 실행해서 어떤 맵이 나올지 모른다. 또한 테스트 시간이 길고 준비가 필요하다)을 극복하기 위해서 수정을 가했다. 좀더 체계화된 분할로 좀더 보기편하고 소스에 간지가 흐르도록 하였으며, 테스트 주도개발의 내용에서 눈꼽의 반만큼을 이용, 편리한 테스트 환경을 만들었다. (나름대로 진보환 환경과 소스!) 가슴은 아팠지만 재앙보다야 나을거라고 생각한다. 그리고 로봇..그 부분은 아직 경험이 없어서(데블스 캠프에 만들어 본게 다..)그런지 조금 빡세다. 뭐 그래도 한번 실패도 했으니, 더 쉽게 만들어 질 것이라고 생각하고 만들기로 결정했다. - 2005.08.13
드디어 로봇 완성. 저번보다 더 간지나는( 구조화가 잘된) 알고리즘 표현과, 훨씬 편한 테스트 환경으로 저번에 비하면(어디까지나 비해서다. 아직 어려운 점이 많아 고생을 많이 했으며, 새로운 자료구조가 본인이 만든 탓인지 뭔가 복잡하다.ㅎ) 순풍에 돛을 단듯 아주 순조롭게 진행되었다. 그래서 로봇을 완성. 손과 눈을 api로 바꿔주고 지뢰찾기를 향에 발싸~!... 실패... 만능은 아니라서 시작한 지점에 2가 떡하니 나와준다면.. 얘도 찍어야 한다. (물런 찍어야 하는 상황에서 사람보다야 높은 적중률을 보이도록 설계했으나.. 이런 최악의 상황은 사람이나 프로그램이나.. 오히려 사람이 낮다.) 두번째.. 오옷..1초만에 성공... 세계신기록이야~ ~_~ 후후후.. 아~ 이날아갈듯한 기분..ㅎ (혼자 행복에 겨워서 뒹굴었다.ㅎ) 세번째.. 알수없는 오류가 깊은산속 옹달샘에서 발생.......OTL.ㅎ 그래도 어쩄꺼나!!! 성공시켰다. 후후후.. 이제 남은 디버그따위..ㅎ 사뿐히 해결해주짓..(역시 테스트 환경이 좋으니 작업이 잘 진행된다. 꼭 염두해두자.ㅎ) 어쨋든 오류가 떠도 지금은 행복하다.ㅎ ~_~ 일해야 되서 지금은 못해도.. 시간나는데로 해서 완성시켜주마~ >ㅁ<;;; - 2005.08.14
고급... 생각외로 풀기 어려웠잖아~'ㅇ')////
|| 2005.08.12 || 소스 백지화 후 로봇을 제외한 부분(메인, 테스트 환경, 손, 눈, 기본 탐색 알고리즘, 새로운 자료구조)완성 ||
|| 2005.08.13 || 로봇 완성. 디버깅 작업 시작!! ||
|| 2005.08.15 || 나름대로 노브레인(응?)한 1.0버전 완성.ㅎ ||
- 주의 : .NET 에서 만들어버린고로 실행할때는 반드시 넷프레임워크가 최신버전으로 업데이트가 되어야.. 이참에 윈도우 업데이트 하세용~ㅎ
ㅋㅋ 우리 자바 공부해서 뭔가 프로그램 만들어 보지 않을래? 겨울방학 때 ㅋㅋㅋ --아영
- 허아영/C코딩연습 . . . . 47 matches
5월 3일 ''숙제용'' (devC++로)
프로그램 입니다. **20051095 허아영**************************
5월 4일 (visualC++로)
두번째는 첫번째보다는 시간이 별로 안걸렸어요. 그만큼 조잡(?)한가요?ㅡㅡ
*프로그램입니다. [컴퓨터공학부 20051095 허아영] *
직각 삼각형의 높이와 패턴모양을 입력받은 후 출력하는 프로그램입니다.
두 숫자를 입력받은후 두 숫자 중에 큰 숫자를 출력하고, 두 숫자의 차를 구하는 프로그램입니다.
* 차를 구하는 프로그램입니다.
if(a > b)
} else
int a, b, Max, dif;
if(a > b)
dif = a-b;
} else
dif = b-a;
printf("두 수의 차이는 %d입니다n", dif);
int a, b, Max, dif;
if(a > b)
dif = a-b;
printf("두 수의 차이는 %d입니다n", dif);
- DataCommunicationSummaryProject/Chapter8 . . . . 46 matches
* 아날로그 네트워크는 아날로그 전파를 디지털 전파로 바꾸기 위해서 BTS에 BSC가 필요하다.
* BSC가 연결되어 있는 BTS들에게 동적으로 스펙트럼을 할당할 수 있기 때문에 하나의 셀에 더많은 사용자를 수용할 수 있다.
* 만약 사용자가 범위 밖으로 이동하면, 그 이동한 곳의 MSC 분별 번호를 대신 저장한다.
* MSC가 포괄하는 범위내의 모든 핸드폰의 지리적인 위치를 임시적으로 저장한다.
* MSC가 포괄하는 위치안에 있는 사용자에게 call 요청이 오면 사용자의 home HLR가 새로운 셀의 VLR에 접촉하고, 사용자에 연결되게 해준다.
* 이 시스템의 문제는 모든 call이 사용자의 home HLR을 통해서 연결된다는 것이다. 국제적으로 연결되면 비용이 많이 들게 된다.
* 그래서 많은 네트워크들은 현재 MAP(Mobile Application Part)라고, HLR과 VLR을 오직 한번만 찾아봐서 가능하면 지역안에서 연결되게 하는 새로운 시스템을 구현하고 있다.
=== The Authentication Center(AuC) ===
* 더 빠른 처리를 위해서 HLR과 VLR에도 인증 코드가 때때로 복사되기도 하지만 그것들은 결코 공중을 통해서 전달 되지는 않는다.
* SMS 메시지를 다루고, 핸드폰으로 들어오가 나가는 메시지를 라우팅해준다.
* TSCs는 단지 여러 MSC들로부터 오는 연결들의 집합을 매우 높은 용량의 케이블들 합친것일 뿐이다.
* TSC는 네트워크에서 보통 매우 적거나 때때로는 하나만 사용되지기도 한다.
* 이것은 가장큰 역할은 핸드폰 시스템 자체의 신호 프로토콜을 보통 전화선에서 전화번호와 같은 정보를 나르는데 사용하는 Signaling System 7(SS7)로 변환하는 것이다.
* 전화기 스타일의 지속적인 circuit 스위치 대신에 작은 패킷으로 데이터를 보내는 인터넷 스타일의 라우터가 필요하다.
* PCU는 데이터가 음성 네트워크로부터 출발하는 지점이다. 그래서 그 지점은 대기 시간이나 용량에 많은 영향을 끼친다.
* PCU와는 다르게 SGSN을 네트워크에 연결하는데 명확한 기준이 정의 되어 있어서 운영자가 제조업자를 마음대로 고를 수 있다.
* SGSN의 유형은 운영자가 타겟으로 삼는 고객이 어떤 종류인지에 따라서 채택될것이다.
* 인터넷에서 사용되는 IP와 비슷한 GTP(GPRS Tunneling Protocol)라는 프로토콜을 사용한다.
* Gateway GPRS Support Node(GGSN)는 GTP 데이터 패킷을 TCP/IP로 교환 하거나 그 역으로 교환할 수 있다. 인터넷에 대한 인터페이스가 되는 것이다.
* The Border Gateway(BG), roaming을 다룬다. 이것은 주로 필터링을 통해서 원하지 않는 연결을 막는 방화벽에 연결되어 있다.
- HardcoreCppStudy/두번째숙제/CharacteristicOfOOP/변준원 . . . . 46 matches
일반적으로 우리 생활에서 어떤 정보와 어떤 종류의 작업은 개념적으로 서로 연관되어 있음을 많이 접한다. 이러한 연관된 정보와 작업 또는 기능을 하나로 묶는 것은 자연스런 과정이다. 예를 들어 대학교의 인사관리에서는 학생들의 이름, 주소, 학번, 전공 들의 정보를 유지하며 학생들에 관해 가능한 작업인 평점 계산, 주소변경, 과목신청 들의 기능들을 생각할 수 있다. 이러한 정보와 정보 처리에 필요한 작업, 즉 기능들은 모두 학생에 관한 것이므로 학생이라는 테두리로 묶어두는 것이 자연스러운 것이다. 이렇게 연관된 사항들을 하나로 묶는 것을 캡슐화(encapsulation)라고 한다.
프로그램상에서의 캡슐화의 의미는 프로그램 분석자나 설계자가 주어진 문제를 데이타와 함수들의 세부사항들은 개발의 차후단계에서 정의하고, 객체라는 덩어리 단위로 문제에 대해 생각하게 하는 추상화의 수단을 제공하는 데 있다.
속성 상속이라는 개념 역시 우리의 일상 생활에서 흔히 사용하는 개념을 프로그램으로 표현하기 위한 편리한 수단이다. 어떤 객체의 종류, 즉 클래스는 좀 더 세분화하여 분류할 수가 있는데 이렇게 세분화된 종류나 유형을 subtype 혹은 subclass라고 한다.
객체지향 프로그래밍에서 "속성 상속"은 새로운 클래스를 정의할 때 모든 것은 처음부터 다 정의하는 것이 아니라 이미 존재하는 유사한 클래스를 바탕으로 하여 필요한 속성만 추가하여 정의하는 경제적인 방법을 의미한다. 이 때 새로이 생기는 클래스를 subclass라 하고 그 바탕이 되는 클래스를 superclass라 한다. 이렇게 하면 클래스들 사이에서 공통으로 가지는 특성, 즉 데이타 구조나 함수들은 중복하여 정의하는 일을 줄일 수 있을 뿐 아니라, 특성을 수정하거나 추가시에 superclass의 정의만 고치면 그 subclass들도 변경된 속성을 자동적으로 상속받게 되므로 매우 편리하다.
객체 지향 프로그램의 중요한 특징으로 하나의 함수 이름이나 심볼이 여러 목적으로 사용될 수 있는 다형성(Polymorphism)을 들 수 있다. 객체 지향에서의 다형성이란, 복수의 클래스가 하나의 메세지에 대해 각 클래스가 가지고 있는 고유한 방법으로 응답할 수 있는 능력을 말한다. 즉, 별개로 정의된 클래스들이 ㅌ은 이름의 함수를 별도로 가지고 있어 하나의 메세지에 대해 각기 다른 방법으로 그 메세지를 수행할 수 있는 것을 의미한다. 예를 들어, 여러 가지 화일(file)들을 프린트 하는 함수를 생각해 보자. 화일에는 간단한 텍스트 화일(text file), 문서 편집기로 만든 포멧 화일(format file), 그래픽을 포함하는 화일(file with graphics) 등 여러 가지가 있다. 이들 각각의 화일들은 프린트 하는 방법이 모두 다르다, 객체 지향에서는 아래처럼 각 종류의 화일을 별도의 클래스로 정의하고, 각각의 화일 종류별로 Print라는 함수를 화일의 형태에 맞게 구현한다.
정보 은폐란 캡슐속에 쌓여진 항목에 대한 정보를 외부에 감추는 것을 의미한다. 즉, 처리하려는 데이타 구조와 함수에 사용된 알고리즘 들을 외부에서 직접 접근하지 못하도록 하고 캡슐 내부의 함수들만이 접근하게 된다. 객체지향에 관한 서적이나 논문에서 이 두가지 개념이 중요시 소개되는 것은 바로 객체라는 것이 캡슐화와 정보 은폐의 원리를 실제의 프로그래밍 언어에서 실현한 것이기때문이다.
객체와 객체 사이의 정보 교환은 외부에 공개하고자 하는 일련의 정보를 public interface로 정의해 외부에 객체들이 이 Interface를 통해서 그 객체와 정보를 교환하도록 한다. 즉, 한 객체의 Public Interface를 그 객체가 "무슨 일을 할 수 있다. 혹은 이 정보는 공개할 수 있다."라고 외부에 선언하는 것이다.
이 Public Interface는 언어에 따라 표현 양식이 다른데, C++에서는 "public"이란 특별 구문을 두어 "public"란에 들어간 항목들만 외부에 공개된다. Effel이란 언어에서는 "export"라는 란에 지정된 항목들만 외부에 공개된다. 앞에서 정의한 POINT라는 객체 정의를 보면 move와 setcolor의 함수들이 외부에서 관찰될 수 있는 public interface임을 알 수 있다. 여기서 한가지 유의할 점은 move와 setcolor라는 함수들이 외부에 보여져 불리워질 수 있는 함수들이라는 것이며 각 함수가 가지고 있는 코드나 알고리즘까지 보여지는 것은 아니라는 것이다. 한 함수가 외부에 보여지는 부분을 signature라고 하며 하나의 signature는 함수의 이름, 입력 매개변수(input parameter)와 출력 매개변수(output parameter)로 구성되어 있다.
위에서 살펴볼 캡슐화와 정보 은폐의 이점은 우선 객체 내부의 은폐된 데이타 구조가 변하더라도 주변 객체들에게 영향을 주지 않는다는 것이다. 예로서, 어떤 변수의 구조를 배열(array)구조에서 리스트(list) 구조로 바꾸더라도 프로그램의 다른 부분에 전혀 영향을 미치지 않는다. 또한 어떤 함수에 사용된 알고리즘을 바꾸더라도 signature만 바꾸지 않으면 외부 객체들에게 영향을 주지 않는다. 예를 들어, sorting 함수의 경우 처음 사용된 sequence sorting 알고리즘에서 quick sorting 알고리즘으로 바뀔때 외부에 어떤 영향도 주지 않는다. 이러한 장점을 유지보수 용이성(maintainability) 혹은 확장성(extendability)이라 한다.
추상 클래스의 예로서 프린터 소프트웨어를 생각해 보자. 우선 모든 종류의 프린터들이 공통으로 가지는 특성을 정의한 추상 클래스 "Printer"가 있다고 한다면, 여기에는 프린터의 상태를 나타내는 변수, 프린터의 속도 등의 변수가 있으며 함수로는 프린팅을 수행하는 Print 등을 생각할 수 있다. 그러나 프린터마다(Dot matrix printer, Laser printer, Ink jet printer) 프린팅 하는 방법이 다르므로 이 추상 클래스 안에서는 Print라는 함수를 완전히 구현할 수 없다. 다만, 여기에는 Print 추상 함수의 Signature만 가지고 있으며, 실제의 구현은 여러 subclass에서 각 프린터 종류에 알맞게 하면 된다.
"Printer"라는 클래스는 추상 클래스로서 실존의 어떤 프린터 기능을 가지고 있지 않고, dot matrix printer나 laser printer 등의 완전 클래스들 간의 공통된 특성만 지정하고 있으므로, 그 인스턴스를 만드는 것은 무의미하다. 추상 클래스는 점진적 개발 방법(Incremental Development)에 유용하게 사용될 수 있으며, 공통 속성(attribute)의 추출 및 정의에 유용하므로 문제를 모델링하는데 편리함을 더해준다.
- MobileJavaStudy/SnakeBite/Spec2Source . . . . 46 matches
if(head.snakeCellX < 0 || head.snakeCellY > snakeCellXRange - 1
if(cell.snakeCellX == head.snakeCellX && cell.snakeCellY == head.snakeCellY)
if(snakeDirection == Snake.LEFT)
else if(snakeDirection == Snake.RIGHT)
else if(snakeDirection == Snake.UP)
else if(snakeDirection == Snake.DOWN)
class SnakeBiteCanvas extends Canvas {
if(drawAll) {
if(printScore) {
if(gameOver) {
if(!pause && !gameOver) {
if(gameAction == Canvas.LEFT && snake.getDirection() != Snake.RIGHT)
else if(gameAction == Canvas.RIGHT && snake.getDirection() != Snake.LEFT)
else if(gameAction == Canvas.UP && snake.getDirection() != Snake.DOWN)
else if(gameAction == Canvas.DOWN && snake.getDirection() != Snake.UP)
else
if(snake.go() == false) {
public class SnakeBite extends MIDlet implements CommandListener {
if(c == startCommand) {
else if(c == pauseCommand) {
- MobileJavaStudy/SnakeBite/Spec3Source . . . . 46 matches
if(head.x < 0 || head.x > xRange - 1
if(cell.x == head.x && cell.y == head.y)
if(direction == Snake.LEFT)
else if(direction == Snake.RIGHT)
else if(direction == Snake.UP)
else if(direction == Snake.DOWN)
class SnakeBiteCanvas extends Canvas implements Runnable {
if(drawAll) {
if(printScore) {
if(gameOver) {
if(!pause && !gameOver) {
if(gameAction == Canvas.LEFT && snake.getDirection() != Snake.RIGHT)
else if(gameAction == Canvas.RIGHT && snake.getDirection() != Snake.LEFT)
else if(gameAction == Canvas.UP && snake.getDirection() != Snake.DOWN)
else if(gameAction == Canvas.DOWN && snake.getDirection() != Snake.UP)
if(!pause && !gameOver) {
if(snake.go() == false) {
public class SnakeBite extends MIDlet implements CommandListener {
if(c == startCommand) {
else if(c == pauseCommand) {
- ProgrammingPearls/Column3 . . . . 46 matches
* 주로 Refactoring과 Table Driven Programming을 설명하고 있다.
* 별로 볼건 없고... 아무도 하지 않을 상황을 예로 들어놓은 것 같다. 왠만큼 프로그램 배운 사람이라면 당연히 배열로 처리할 것을 몇 백개의 변수로 처리하는 상황을 보여주고 있다. 그러면서 하는 말 : 많은 변수를 쓰고 있으면 관련되는 것으로 묶어서 배열로 처리하라. 이게 주제다.
* 예제 : 어느 사이트에 로그인하면 DB에서 사용자 데이터를 긁어와서 보여준다. 이것은 책에 있는 예제고, 이것을 간단히 C++, 그리고 파일 입력으로 변형을 해보면,
We'll send a Computer to you.
// 일반적으로 대부분 이렇게 할 것이다.
ifstream fin("data.dat");
cout << "Hello, " << name << ".\nWe'll send a " << good << " to you. \nAddress : "
<< city << ", " << dong << endl;
string scheme = "Hello, $0. \nWe'll send a $1 to you. \nAddress : $2, $3\n";
ifstream fin("data.dat");
if(scheme[index] != '$')
else {
if(scheme[index] == '$')
else if(scheme[index] >= '0' && scheme[index] <= '3')
else {
cout << "scheme error." << endl;
if(scheme[index] == '\0')
* 우리의 리팩토링이다. 엄청난 중복이 있는 예제를 보자. 이건 C++로 하기가 좀 그러니, 책에 주어진 대로 VB를 예로 들어보자. 메뉴의 아이템이 10개가 있다. 하나를 클릭할때마다 그 아이템에 체크를 하고 싶다. 중복 짱!인 예제로 다음과 같은 예제가 있을수 있다.
* 딱 보면 알겠지만, 굉장히 우울하다. 저런게 10번 반복되는 것이다. 쓰잘데기 없는 코드가 무려 110 줄이나 된다. 하지만 리팩토링을 공부했다면 쉽게 빼낼수가 있을 것이다. 그 방법으로 VB에서는 각각의 메뉴 아이템을 배열로 만들수가 있다. 배열로 만든 다음 메소드 추출을 이용하면, (예제는 C++로 다시 바꾼다.--; 비베 문법을 잘 몰라서.)
* 이런 식으로 가면 된다는 것이다. 간단한 것이니 그냥 넘어가자.
- SeminarHowToProgramIt/Pipe/VendingMachineParser.py . . . . 46 matches
#VendingMachineParser.py
from VendingMachine import *
# //verifyCoin
# //verifyButton
class VendingMachine:
def verifyCoin(self, anAmount):
def verifyButton(self, aStatus):
v=VendingMachine()
class VendingCmd:
if item[0] != 'cmd':
class PutCmd(VendingCmd):
class PushCmd(VendingCmd):
class VerifyMoneyCmd(VendingCmd):
print self.vm.verifyCoin(self.amount)
class VerifyButtonCmd(VendingCmd):
print self.vm.verifyButton(self.status)
if not tok:
self.err('Unexpected end of file')
if tok:
if num not in (10,50,100,500,1000):
- TheJavaMan/지뢰찾기 . . . . 46 matches
그래픽적으로 더 신경을 쓰고 싶지만
애플릿은 크기가 동적으로 변하지 않는 것 같다
public class Mine extends JApplet {
if ((((Point)mines.get(j)).y == r && ((Point)mines.get(j)).x == c)/* ||
if (samePos == true)
if (map[i][j] == -1)
if (j > 0 && map[i][j - 1] == -1)
if (j < col - 1 && map[i][j + 1] == -1)
if (i > 0) {
if (map[i - 1][j] == -1)
if (j > 0 && map[i - 1][j - 1] == -1)
if (j < col - 1 && map[i - 1][j + 1] == -1)
if (i < row - 1) {
if (map[i + 1][j] == -1)
if (j > 0 && map[i + 1][j - 1] == -1)
if (j < col - 1 && map[i + 1][j + 1] == -1)
class Kan extends JLabel {
if (!gameOver && e.getButton() == MouseEvent.BUTTON1 && !getText().equals("X"))
if (!gameOver && e.getButton() == MouseEvent.BUTTON3 && state == false) {
if (getText().equals("X")) {
- TicTacToe/박진영,곽세환 . . . . 46 matches
public class FirstJava extends JFrame {
if (overFlag == true)
if (x > 0 && x < 100 && y > 0 && y < 100 && array[0][0] == -1)
if (x > 100
if (x > 200
if (x > 0
if (x > 100
if (x > 200
if (x > 0
if (x > 100
if (x > 200
if (array[0][0] % 2 == 0
if (array[1][0] % 2 == 0
if (array[2][0] % 2 == 0
if (array[0][0] % 2 == 0
if (array[0][1] % 2 == 0
if (array[0][2] % 2 == 0
if (array[0][0] % 2 == 0
if (array[2][0] % 2 == 0
if (array[0][0] % 2 == 1
- UbuntuLinux . . . . 46 matches
우분투 리눅스 시디를 얻게 되어서 남는 하드디스크 하나에 설치해 보았는데, 버벅이는 윈2000 꼴이 보기 싫기도 했거니와 이번 기회를 계기로 리눅스를 사용해 보자는 생각이 들었다.
인터넷이 된 김에 프로그래밍 도구를 이것저것 설치했다. 내사랑 파이썬도 받고 황모군이 좋아라 하는 이클립스도 받았다. 압축 풀고 실행하는 이클립스는 정말 편하다. :) 파이썬 설치를 하려니까....gcc도 없구나. 에이 귀찮아.
그럼 그전에 먼저 홈 네트워크를 구축해보자. 원래 내 컴퓨터는 서버로 사용중이었다. 집안 네트워크를 맘대로 끊어버렸어나 특한 요구가 없으므로 아무런 핍박없이 네트워크 작업을 할 수 있겠지. 우선은 구글에 검색해보고 ( 검색 먼저, 삽질은 나중에 )
못 찾은 건지 몰라도 한글 입력이 기본이 아닌가보다. 키보드에 영어랑 일본어도 있는데 한글은 없다. 세종대왕이 알면 가슴을 치며 한탄하시겠군. 한글 입력 하는 방법을 찾던 중 우분투 홈페이지게 가 보았고, ''나비''라는 프로그램을 설치하면 된다는 사실 발견. 드디어 한글을 쓸 수 있게 되었다. 우리말이 정말 사랑스럽다.
하지만 여전히 한/영키가 안 먹힌다. 다른 단축키(shift+space)가 있음에도 꽤 불편하다. 하긴 예전에는 이렇게 바꾸곤 했지.
홈네트워크 구축은 예상보다 훨씬 삽질을 필요로 했다. 개념상 윈2000과 마찬가지로 NAT를 하면 될텐데 말이다. 일단 한글로 된 페이지를 찾아보았으나 시간에 비해 얻은 것이 너무 적었다.
하지만 문제는 다시 부팅을 하면 인터넷 연결이 안 되있다는 점이다. 먼저 어떤 명령이 진짜 인터넷 공유를 가능하게 하는지 알아내야 했고, 다음에는 이를 자동으로 실행하도록 하는 단계를 밟아야 한다. 꼭 프로그래밍 하면서 디버깅 하는 느낌이랄까.
자동으로 이를 실행하려면 설명된 대로 따라하면 된다네요. 이제 설정은 바이바이~
다음 목표는 이전에 사용하던 윈2000을 멀티부팅하기. 사실 리눅스만 쓰고 싶은 마음이 간절하지만 각종 윈도우 전용 프로그램을 사용하던 과거를 한 순간에 지워버리지는 못하거든.
우분투는 부트로더로 grub이란 녀석을 사용한다. 원래는 GNU에서 쓰는 건데 좋길래 리눅스에도 사용하는 추세라는 글을 웹을 탐험하던 중에 읽었다. 아하 그렇군요. 그럼 grub을 사용해서 윈도우를 부팅하면 되겠네요.
물리적 하드 두개에 리눅스와 윈도우가 따로 설치된 상황이라서( 둘은 서로를 모른다.) 사실 안 되는 게 아닐까 걱정도 했다. 웹을 찾아보니 윈도우나 리눅스를 먼저 설치한 뒤 다른 하나를 설치한 경우가 대세였다. 태반은 하드 하나를 파티션을 나누는 방법으로( 굉장한 노력인듯.;; 하드가 두개 있어 아무런 걱정없이 리눅스를 다르는 하드에 설치한 나는 행운인가.;;;) 두 운영체제를 골라서 사용하는 방법을 설명하고 있었다.
하지만 grub메뉴얼을 읽어보니까 내 경우도 듀얼부팅이 가능한가보다. 우분투는 설정파일 이름이 달라서 찾기 힘들었다. /boot/grub/menu.lst 라는 데 있으니 헤메지 맙시다. 설정파일에 다음을 추가하면 된다.
rootnoverify (hd1,0)
리눅스가 설치된 하드를 primary disk로 쓰고, 이녀석 이름은 hd0이다. 윈도우즈가 설치된 하드는 secondary disk이니까 hd1이다. (리눅스에서는 각각을 hda, hdb로 인식한다.) 명령을 설명하려고 해도 명료하지 않아 그냥 넘어가야겠다. (윈도우로 부팅할 때는 트릭을 쓰기 때문에 리눅스 파티션이 보이지 않는다.)
집에 남는 컴퓨터 한대를 서버로 돌려보자는 생각에 무식하게 랜카드를 세장이나 꼽아서 돌려보려고 했다. 한데 X윈도우와는 다르게 랜카드 인식부터 안되는 문제가 생겼다. 며칠 삽질하다 포기할까 생각도 들었는데, 오늘 드디어 해결했다.
랜카드가 이상이 있나 싶어 데스크톱 리눅스(위에 등장했던 멀티부팅이 되는)에 랜카드를 옮겨 인식을 시험해보았더니 문제없이 인식했다. 하지만 새로 꼽은 랜카드는 어떠한 과정을 거쳐 자동으로 인식하는 모양이었다. 수생이에게 들은 말과 웹서핑 정보를 종합해보면 아마도 모듈을 로드 안해서가 아닐까.
모듈 적재 파일은 /etc/modeprobe.conf 를 새로 만들면 되는데 다른 리눅스에서는 이 파일이 /etc/conf.modules인가보다. 우분투는 파일 이름이 조금씩 다른 듯 하다. :( 헷갈리게 스리!)
집에 아직 윈도우즈가 돌아가는 컴퓨터가 한 대 남아있다. 동생은 게임을 해야 되서, 그 외에 인터넷 뱅킹이라든지 아무튼 윈도우즈가 필요한 경우 때문에 남겨둔 녀석이 골치덩어리다. 서버로 쓰는 리눅스를 통해 나머지 두대끼리 폴더 공유를 할 수 있어야 하는 경우가 생겼기 때문이다.
로 접속해보면 된다. 실제로 서버가 실행되면서 트랙 서비스를 시작하도록 아파치 서버 설정을 바꾼다. 여러 군데 설명이 나와 있기는 했는데 도움이 안 되었다. 제로페이지 설정을 가져다 썼다.
# You need something like this to authenticate users
- 위키를새로시작하자 . . . . 46 matches
2000 페이지에 가까워 지면서, ZeroWiki의 접근성이 점차 감소하고, 기존의 모든 예절과 규칙이 벽으로 작용하는것 같습니다. 그렇다고, 위키의 철학과 개념을 교육하는 기회는 없었던것 같구요.
그래서 ZeroWiki 를 막아버리고, Wiki를 새로 시작하면서, 함께 예절과 규칙을 만들어 나가면서 위갭?다시 시작하는것이 어떨까 싶습니다. 현 ZeroWiki는 읽기만 가능하고, 새로운 위키는 읽기, 쓰기, 삭제(로그인 한 사용자만) 모두를 열어둘 생각입니다. 현 ZeroWiki 상의 예절이나, 규칙은 필요에 따라 재사용, 새롭게 정의 하려고 합니다.
이를 흑백의 논리로 찬반을 가리기는 애매하지만, 전반적인 의견의 경향을 알고 싶어서, 투표에 붙입니다.
'''OneWiki를 새로 시작해서 1년간 실험을 하였습니다. 허나, ZeroWiki 와 그리 다르지 않다는 경험을 얻었습니다. 그래서 OneWiki 와 ZeroWiki를 통합하였습니다. 통합된 페이지중 DuplicatedPage 는 아직 완전한 통합이 이루어 지지 않은 것이니, 해당 페이지를 고쳐주세요.'''
=== 새로운 위키를 시작하자 ===
NeoCoin : 방법은, 현재 위키를 읽기 전용으로, 새로운 위키를 읽기, 쓰기, 지우기 다 열고 새로운 문화, 예절이 만들어 지는 모습을 경험하고 싶습니다. 읽기 전용의 위키의 내용은 전이되거나, 그대로 남거나, NoSmoke:SisterWiki (차후 연결) 하거나 하고 싶습니다. 더 나아가, 모든것에 대한 재정의와 다시금 생각해 보기를 해보았으면 합니다.
snowflower : 제로위키를 시작하고나서 쓰는 중간에 결정된 것들이 많고, 제대로 적용된것도 많지 않다고 생각합니다. 새로운 룰 밑에서 모두가 멋지게 쓸 수 있는 위키가 탄생하였으면 좋겠습니다.
모두가 멋지게 쓸수 있는 위키보다. 현재의 위키가 존재함으로서, 새로운 신입회원들이나 02 학번 정도의 사람들은 위키의 페이지가 처음 생기고, 예절과 규칙이 생기는 그러한 경험들을 본의아니게 박탈 당해 버렸다는 생각이 들었습니다. 그런 경험을 돌려주고 싶습니다. --NeoCoin
[상욱] : 물론 전에 있던 데이터는 그대로 살아 있겠죠?
성사 된다면, 현 위키 데이터는 읽기 전용으로만 접근 가능하도록 할 생각입니다. 경우에 따라서는 삭제 할수도 있을것 같습니다. --NeoCoin
위키 자체가 읽기 전용인것이기 보다는, 별도의 위키로 두는 것은 어떨까요? (물론.. 지금도 기존의 페이지가 별로 수정되고 있지 않아서 read-only 나 마찬가지인 상황이긴 하지만.) --[1002]
[1002] : 사람들이 얼마나 적극적으로 고민할지 걱정이긴 하지만.. 뭔가 더 나은 방향이 어떤 것인가에 대해서는, 다른 위키들을 보면서 어떤점이 장점이고, 어떤점이 단점인지, 어떻게 해결해나가야 할지에 대해 판단을 하시기를. 뭔가 잘 만들어진 것들은 공짜로 이루어지지 않기에.
상용 서비스가 아니기에 언제든지 합의만 이끌어 낸다면 가능하지요. 다만 이런 생각을 하기가 힘든것 같습니다. 이러한 시도는 Open Source 나, 상용 프로젝트에서 일정 버전 이후에 완전 새로 작성하는것에 비견하지 않을까요? --NeoCoin
좋고 나쁜것은 모두에게 달려 있습니다. 많은 분들이 적극적으로 참여해야 겠지요. 일단, 새로운 위키를 열겠습니다. --NeoCoin
저의 경험으로 볼 때, 단지 새로 시작하는 것이 "새로운 것"을 가져다 주지는 않습니다. 동시에 두개의 위키를 돌리든가 하고, 새 위키에는 새로움의 어포던스(예컨대 비쥬얼 등)를 제공하도록 합니다. 그리고 새 위키에는 대다수는 읽을 수 있고, 몇 명만 쓸 수 있게 합니다. 그리고 그들이 규칙을 만들어 나갑니다. 우선은 규칙에 대한 규칙(메타규칙)을 만듭니다. 예컨대 "전체 규칙 수는 9개를 넘지 않는다"든지... 그리고 가능하면 생성적인(generative) 환경을 만들려고 합니다 -- 야구선수가 공을 받는 방법을 미적분학으로 풀어내기보다, 공이 보이는 각도를 일정하게 유지하려고 한다든지 하는 휴리스틱적인 규칙으로 접근합니다. 필요없는 것은 제거하고 꼭 필요한 것만 남깁니다. 제거해보고 해보고, 붙여보고 해봅니다. 예를 들어, 현 위키에서 들여쓰기가 불가능하다면 어떤 세계가 펼쳐질까요?
이 작업을 할 때에는 "이번 기회를 통해 새 제로위키를 만들어야지"하는 마음보다, "이번 기회에 여러가지 모델을 실험해 봐야지"하는 마음을 갖는 것이 좋겠습니다.
새로 만든 위키를 보니 지금 위키와 아무 차이가 없어 보입니다. 이런 식으로 나가면 똑같은 위키를 만드는 수고를 하지 않을까 우려됩니다. 왜 새로 시작합니까? 여러분의 대답은 무엇입니까? --JuNe
음.. 저도 1'WIKI에 프로젝트 페이지를 옮기긴 했지만 좀 그랬습니다. 새로운 규약과 규칙이 만들어지자는 의견이 있는걸로 아는데요. 지금 0'WIKI의 내용을 옮겨 놓으면 그냥 예전의 위키가 되어버릴것 같습니다. 차라리 1'WIKI사용을 아직 하지 말로 나중에 시작하는건 어떨런지요? -[상욱]
기존의 정보들을 옮겨놓자는 의미가 아니었습니다. 새로 만들어 지는 페이지들이 그쪽으로 가고 있는 것이지요. 지금 그렇게 되고 있고, 어쩌면 프로젝트를 위한 특화된 위키가 될지도 모를것 같군요.--NeoCoin
1'WIKI 페이지를 바로 만들기 보다 규칙을 만드는 페이지를 먼저 만들어서 규칙부터 정해보는 게 어떨까요? -[재니]
- 정모/2011.4.11 . . . . 46 matches
* 나에 대한 세 가지를 말하되 두 가지는 진실, 한 가지는 거짓으로 말한다.
== 프로젝트/스터디/새싹 ==
* [HolubOnPatterns]를 읽으면서 스터디하고 DB 프로젝트를 통해 실습한다.
* 프로젝트 얘기를 안했네요.. - [서지혜]
* 텍스트로 된 던전 앤 드래곤(?)을 만들고있다.
* 동네 ZeroPage 게시판을 태그 게시판으로 만들고있다.
== 앞으로의 정모에 대해서 ==
* 그 날의 정모를 처음부터 끝까지 자기가 원하는대로 진행해볼 수 있는 퍼실리테이터를 신청받습니다. 관심있는분은 홈페이지 자유게시판에 글을 남기거나 회장에게 연락주세요.
== SW 마에스트로 알림 ==
* 멘토와 함께 프로젝트도 진행하고, 금전적 지원도 받을 수 있습니다. 5월 13일까지 지원할 수 있으니 많이들 지원하세요!!
* 위키엔 링크가 정말로 중요합니다. 가급적이면 페이지 작성하실 때 관련된 다른 페이지를 링크해주세요.
* 태진 팀과 종하 팀으로 나누어 스피드 퀴즈를 진행
* 제로페이지의 큰 행사(지피 학회지(?), 데블스 캠프, ?)를 이끌어갈 스태프를 모집합니다.
* 각 행사에 따로 신청하실 수 있습니다.
* 여의도로 소풍갑니다 :)
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 항상 그렇듯 정모할때 궁금한건 Ice Breaking 시간이군요. 녹화 재방이라도 제발 보고싶은 마음입니다. 정모시간에 소개해주신 LETSudent는 참석해봐야겠습니다. 유익한 정보군요. 새로온 21기 학우들 반갑습니다. 얼굴 기억했어요. Zeropage의 생활을 맘껏 즐겨보아요. 새얼굴들이 보였는데 이제 새로 새내기들을 한번 정모에 참여할때가 되었다는 생각이 잠깐 들었던 시간입니다. 권순의 학우의 OMS는 배경이 아야나미 레이라서 기쁨반 안타까움 반으로 배경을 지켜보았고 안티짓도 좀 올렸었습니다만, 그거 알잖아요 안티도 팬입니다. OMS에서 소개된 노래들에 대해 다시한번 들어보고 생각해보게 되었던 시간은 기쁩니다. 창작자의 의미가 가득차있는 것을 알게해주었으니까요. 그사람들도 기쁠겁니다. 회장님이 만들으셨던 스피드 퀴즈는 정말 신선했어요. '우리도 올해는 이런 레크레이션을 다하는구나'는 뿌듯한 생각이 들었습니다. 전 이런거 좋아하니까요. 저도 어느정도 공통된 경험이 쌓인사람들과 만난다면 해보는게 좋을것 같습니다. 다음주 소풍은 정말 꽃이 만발했으면 좋겠단 생각이드네요 한번 이건 알아봐야겠습니다. 비는 안오겠죠. 시험기간 전이라 걱정이될 사람도있겠지만 경험상, 시험기간 전에는, 시험기간 중에는, 시험기간 후에는 노는겁니다. Enjoy EveryThing이죠. 항상 늦지만 이렇게라도 정모에 참석해서 후기를 남길수있는게 가장 즐겁습니다. 다음주에는 즐거운 소풍준비를 해가야겠군요 - [김준석]
* 이번 정모에는 11학번 학우분들이 참여하여 반가웠습니다. Ice Breaking때는 화기애애한 분위기가 마음에 들었습니다. 다들 웃으면서 ㅎㅎ 재미있는 시간이었던 것 같습니다. 일일 퍼실리테이터... 어떤 느낌일지는 모르겠지만 한번 해 보는 것도 재밌지 않을까라는 생각도 했습니다. 이번 OMS를 진행하면서.. 음... 역시 배경이 문제였었던 같습니다 -ㅅ-;; 그리고 생각했던거 보다 머리속에 있는 말이 입 밖으로 잘 나오지를 않아가지고 제가 생각했던 것들을 모두 전달하지 못했던 것 같습니다. 사실 음악을 좋아하다 보니까 영화나 TV를 보다가 아는 음악이 나오면 혼자 반가워 하고 그랬는데,, 그 안에 있는 의미를 찾아보는 일은 많이 하지 않았었습니다. 다만, 이런걸 해 보겠다고 생각했던게 아이언맨 2 보다가 (보여드렸던 장면에서) 처음에는 Queen의 You're my Best Friend라는 노래로 생각하고 저 장면과 되게 모순이다라고 생각했었는데 그 노래가 아니라 다른 노래라 조금 당황했던 것도 있고, 노래 가사를 보면서 아 이런 의미가 있을 수도 있겠구나 라는 생각을 했습니다. 그래서 이것 저것 찾아보게 되었던 것이 계기가 되었던 것 같습니다. 그리고 이번 스피드 퀴즈는 그동한 제로페이지에서 했던 것들이 많았구나 라는 생각과 함께, 제가 설명하는데 윤종하 게임이 나올줄이야 이러면서 -ㅅ-;; ㅋㅋㅋ 마지막으로 다음주 소풍 기대되네요 ㅋ - [권순의]
1. Ice Breaking을 제가 많이 해 본 것은 아니라 원활한 진행이 잘 안 되네요. 당장은 할 일들이 쌓여있으니 바로 공부하겠다고 하면 거짓말이 될테고… 방학 중에 Ice Breaking에 대해 알아보고 2학기땐 더 즐거운 시간이 될 수 있도록 해야겠습니다.
- DesignPatternsAsAPathToConceptualIntegrity . . . . 45 matches
개념적 완전성의 경로로서의 디자인 패턴들
During our discussions about the organization of design patterns there was a comment about the difficulty of identifying the “generative nature” of design patterns. This may be a good property to identify, for if we understood how design patterns are used in the design process, then their organization may not be far behind. Alexander makes a point that the generative nature of design patterns is one of the key benefits. In practice, on the software side, the generative nature seems to have fallen away and the more common approach for using design patterns is characterized as “when faced with problem xyz…the solution is…” One might say in software a more opportunistic application of design patterns is prevalent over a generative use of design patterns.
디자인패턴의 조직에 대한 우리의 토론중 디자인 패턴의 '자연적인 생성' 을 정의하기 어렵다는 의견이 있었다.만일 우리가 어떻게 디자인 프로세스에서 디자인 패턴들이 이용되는지 이해한다면, 그리고 패턴들의 조직화가 멀리 숨어있지 않다면, 이는 정의를 위한 좋은 프로퍼티가 될 것이다. 크리스토퍼 알렉산더(Alexander) 는 디자인 패턴의 자연적 생성은 이득이 되는 요소중 하나임을 강조했다. 소프트웨어의 관점의 업무 내에서 자연적인 생성은 실패한것 처럼 보이며, 디자인 패턴을 이용하는 더 일반적인 접근 방법은 다음과 같은 식으로 묘사된다. "xyz 문제에 대해 직면하게 되었을때.. 해결책은.." 혹자는 소프트웨어계에서 더 디자인패턴의 편의주의적인 적용은 디자인패턴의 생성적인 이용보다 유용하다고 말할지도 모른다.
The source of this difference may be the lack of focus on design patterns in the design process. In fact, we seldom see discussions of the design process associated with design patterns. It is as though design patterns are a tool that is used independent of the process. Let’s investigate this further:
이러한 차이의 근본은 디자인 프로세스 내에서의 디자인 패턴에 대한 촛점의 부족일지도 모른다. 사실상, 우리는 디자인 패턴과 관련된 디자인 프로세스에 대한 토론을 거의 보지 못했다. 디자인패턴을 프로세스와 독립적으로 쓰이는 도구처럼 보기도 한다. 이에 대해 좀 더 연구해보자.
이는 Brooks 가 25년 전에 쓴 말이다. "ConceptualIntegrity 는 시스템 디자인에서 가장 중요한 일이다." 그는 계속 말한다. "이 딜레마는 잔인한 것이다. 효율성과 개념적 완전성중 혹자는 디자인과 구축을 하는 것을 선호할 것이다. 큰 시스템에 대해 혹자는 책임을 맡을 중요한 맨 파워를 가져올 방법을 원할 것이다. 그래서 프로덕트는 적시에 출현할 것이다. 어떻게 이 두 필요요소들이 조화를 이룰 거인가?
One approach would be to identify and elevate a single overriding quality (such as adaptability or isolation of change) and use that quality as a foundation for the design process. If this overriding quality were one of the goals or even a specific design criteria of the process then perhaps the “many” could produce a timely product with the same conceptual integrity as “a few good minds.” How can this be accomplished and the and at least parts of the “cruel dilemma” resolved?
하나의 어프로치는 정의, 가장 최우선의 중요한 특질을 상승시킨다. (어뎁터빌리티나 변화에 대한 분리) 그리고 이 퀄리티들들을 디자인 프로세스의 설립의 용도로 이용할 수 있다. 만일 이 최우선의 특징이 프로세스의 목적이나 구체적 디자인 분류의 하나라면 아마 'many'는 같은 개념적 완전성을 "약간의 좋은 감정"으로서 적시에 프로덕트를 ..
다음은 "객체지향 메소드들의 효과를 테스트하기 위한 리트머스 종이로서의 디자인 패턴" 으로부터의 요약이며, 통찰력을 제공해줄 것이다.
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.
몇몇 O-O 디자인 방법론들은 구체적 디자인 기준에 따라 최적으로 나누어진(모듈화되어진) 아키텍쳐나 마이크로-아키텍쳐들을 개발하는 명확한 단계의 폼에서 시스템적인 프로세스를 제공한다.
b. OMT, Coad-Yourdon, Shaer-Mellor are data driven and as such raise data dependency as the system modularization principle.
OMT, Coad-Yourdon, Shaer-Mellor 의 경우 data driven 이며, system modularization principle 로서 데이터 의존성을 들었다.
ResponsibilityDrivenDesign 의 Wirfs-Brock는 system modularization 에 대해 계약 최소화를 들었다.
d. Snoeck with Event Driven Design (EDD) raises existence dependency as the system modularization principle.
EventDrivenDesign 의 Snoeck 는 system modularization principle 에 대해 의존성 존재를 들었다.
저자에 의하면, 오직 RDD 와 EDD 가 OO 디자인 대한 명확한 룰을 가지고 있으며 그러므로 이들은 설득력있는 OO 디자인 방법들이다.
디자인 패턴은 "변화하는 부분에 대해 캡슐화하라"는 1차적인 모듈화 원리에 따라 마이크로-아키텍쳐들을 디자인하는 가이드를 제공한다.
5. EDD and RDD will generate different design patterns that meet the primary modularization principle “encapsulate the part that changes.” in different ways when applied according to their axiomatic rules. For example RDD generates Mediator, Command, Template Method and Chain of responsibility (mostly behavior) where as EDD generates Observer, Composite, and Chain of responsibility (mostly structure).
EDO 와 RDD 는 이 1차 원리인 "변화하는 부분에 대해 캡슐화하라"와 그들의 명확한 룰들에 따라 적용될때 다른 방법들로 만나서, 다른 디자인 패턴들을 생성해 낼 것이다. 예를 들면, RDD는 Mediator, Command, TemplateMethod, ChainOfResponsibility (주로 behavior), EDD 는 Observer, Composite, ChainOfResposibility(주로 structure) 를 생성해낼것이다.
- RandomWalk/영동 . . . . 45 matches
cout<<"Random Walk"<<endl;
cout<<"숫자를 입력하시오: "<<endl;
if(a-1!=-1 && b-1!=-1) {
if(square[a-1][b-1] == 0)
else
if(a-1!=-1){
if(square[a-1][b] == 0)
else
if(a-1!=-1 && b+1!=input){
if(square[a-1][b+1] == 0)
else
if(b-1!=-1){
if(square[a][b-1] == 0)
else
if(b+1!=input){
if(square[a][b+1] == 0)
else
if(b-1!=-1 && a+1!=input){
if(square[a+1][b-1] == 0)
else
- html5/offline-web-application . . . . 45 matches
* 웹 어플리케이션을 구성하는 HTML 파일이나 CSS, JavaScript, 이미지 파일 등 URL을 지정하여 브라우조로 액세스하는 파일.
* 어플리케이션 캐시를 이용하면 웹 어플리케이션에 있어 필수적인 리소스는 캐시 매니페스트에 기록하여 브라우저에 의해 자동으로 캐시되게 한다.
* 확장자는 '.manifest'로 지정하는 것이 관례이다.
* 브라우저에 의해 다운로드되는 파일이므로 웹 서버에서 공개할 필요가 있다.
* 'text/cache-manifest'라는 MIME 타입으로 배포되도록 설정해야 한다.
* 캐시 매니페스트의 URL을 html 요소의 manifest 속성에 지정해야 한다.
<html manifest="hello.manifest">
* 업데이트 체크 시 많은 양의 네트워크 리소스를 소비하므로 어플리케이션 캐시는 모든 리소스에 대해 업데이트를 체크하는 것이 아니라 캐시 매니페스트만을 체크한다.
* JavaScript API를 이용하여 명시적으로 체크할 수 있다.
* text/cache-manifest 타입으로 배포해야 한다.
* 첫 줄은 'CACHE MANIFEST'라는 문자열로 시작해야 한다.
* '#'로 시작하는 행은 주석이다.
* 각 항목은 줄 바꿈으로 구분된다.
* 상대 경로를 이용할 때는 매니페스트를 기준으로 하여 URL를 표시한다.
* manifest 속성을 지정한 html 요소를 가진 페이지.
* 섹션을 명시적으로 지정하지 않으면 기본값으로 'CACHE' 섹션이 된다.
* 메인 페이지는 CACHE 섹션에 지정하지 않더라도 자동으로 캐시된다.
* 폴백 대상이 되는 URL은 전방일치 검색 방식으로 확인된다.
* NETWORK 섹션에 지정된 URL은 전방일치 검색 방식으로 확인된다.
* '/api/user'나 '/api/friend'등의 URL은 어느 것이든 반드시 온라인으로 액세스하게 된다.
- 학회간교류 . . . . 45 matches
두 학회가 서로 잘 다루는 분야, 그렇지 않은 분야가 있고, 이러한 기회를 자주 갖게 된다면 서로에게 도움이 되리라 본다. 혹은 사람들간의 교류를 시작으로 다양한 꺼리들을 만들 수 있으리라 본다.
처음 Netory:경태 의 제안을 시작으로 양 학회의 위키페이지를 통하여 이야기들이 오고갔으며, 11월 경에 첫 행사를 진행할 예정이다.
현재는 10월 말 중간고사와 Netory 에서의 공모전관련 일정 등으로 인해, 당분간 위키를 통한 의견 교환을 하도록 함. 보다 구체적인 사항은 추후 있을 회의를 거친 후 결정할 생각이다.
* 날 짜 : 11월 중으로 예정
서로의 학회에서 강점이 되는 부분 혹은 원하는 주제들에 대해서 적어주세요.
강사는 주로 3,4학년이 맡으면 좋지만, 적극적으로 준비할 수 있는 사람이면 누구든지 환영.~
* 임베디드프로그래밍에 관하여.. : OS포팅부터 라이브러리 삽입, 기타 임베디드 장비에 관해 어떻게 다루는지 알려주세요. 태진이형 원츄! -- Netory:경태
* NDIS 프로그래밍에 관하여.. : 창선씨!~~ ?^^ -- Netory:경태
하드웨어 제작, 혹은 임베디드 프로그래밍, 혹은 유비쿼터스에 관련된 것들, 혹은 디바이스 드라이버 제작, OS제작, 그리드컴퓨팅, AdHoc, RFID, 블루투스, 영상인식, 생체인식, 음성인식, HCI, MPEG, 휴대폰관련프로그래밍.. 기타등등..
* .Net Studio 새로운 애플리케이션 디버깅 관련
: 간단한 예제 한두개로 1~4학년까지 두루 좋은 교육이 될 수 있었으면 좋겠네요. 욕심이면 말구요..
: 나의 머릿속이 탄로나 버렸군요.. 너무 애매한 사항을 요구하는 거 같기도 하고.. 그렇다고 절 이질적으로 대하진 마세요. ㅡ.ㅜ 요즘 할 건 많은데, 교양서(?)를 더 많이 보느라 다른거 할 시간은 없군요.. 쩝.
어떤 방식으로 해야 재밌으면서 서로에게 유익할 수 있을까? '같이 해서 좋을 거리들' 에 대해서.~ ZP 의 행사중 자주 하는 PairProgramming 이나, 혹은 이전의 서강대 MentorOfArts 에서의 프로그래밍 파티 처럼.
첫 시도이니만큼, 무사히 성사해본다는 데 의의를 많이 가지자. 나름대로 욕심을 더 더하자면, 학생들이 좀더 안목을 넓히고 재량을 넓힐 수 있는 기회가 되었으면 한다.
* ZeroPagers 들의 의견을 전체적으로 모아 본후에, 공부할 주제를 정하는게 좋지 않을까요 - [임인택]
* 안녕하세요~ Netory:경태 입니다. 네토리에 속해서 다시 한번 인사를 하게 되네요.. '일단 반대는 안한다는 입장은 곧, 하면 좋다'로 이해하고 있을게요.^^ 언제고부터 스터디 모임을 공동으로 해보자는 이야기가 나왔지만, 첫째, ZP에는 ZP만의 스터디행사가 있었구.. 둘째, Netory는 Netory만의 일정이 있어서 생각만큼 좋은 뜻을 같이 하지는 못했었던 상황으로 알구 있구요. 현재로서는 제가 그저 제안을 내본거라서, 조만간에 네토리 모임을 갖어서 좀더 구체적인 사항으로 얘기를 다시 꺼내도록 하겠습니다. -- Netory:경태
좋은 기회라고 이야기하고 싶습니다. 하나가 아닌 둘을 보고, 둘이 아닌 그 이상을 보려합니다. 여러분 각자가 마음 속에 뜻 있는 것이 무엇인지, 또 무엇이 우리를 더 크게 하는지 살피시고, 이번 학회 교류에 작은 의견이나마 제시하여 주셔서, 큰 이상을 향해 서로 도와갈 수 있도록 합시다!! - Netory:린스
[1002] : 현재 네토리와 Zeropage간의 의견 교환이 잘 안이루어지고 있다. 보다 친하고 도움을 줄 수 있는 관계가 되고자 한다. 또한 그것을 교두보로 여러 이벤트를 진행하고 싶다. 가시적인 성과 이외의 잠재적인 발전적 측면이 많을 것이다.
Netory:경태 : 보다 넓고 다양하게 서로 알려줄수 있다. 제로페이지는 "쥬니어들 관계 이어주기"에 가장 큰 목적을 두는 듯 함.
[나휘동] : 네토리 따로, 제로페이지 따로 의견을 내고 있는 느낌입니다. 그럼에도 저는 네토리 회원 누군가에게 말을 걸기가 매우 어렵다고 느낍니다. 이러한 분위기부터 누그려뜨리면 한결 이야기가 쉽지 않겠습니까?( 물론 이런 효과는 학회간 교류를 함으로써 얻는 결과물이기도 합니다. ) 좋은 방법이 뭐가 있을까요?
- Code/RPGMaker . . . . 44 matches
if(buffer == null) {
if(buffer != null)
public class RMFillBox extends RMObject2D {
public RMFillBox(Vector2f vStart, Vector2f vEnd, Color color)
init(vStart.x, vStart.y, vEnd.x, vEnd.y, color);
if(x1 >= x2 || y1 >= y2)
public class RMLine extends RMObject2D {
public RMLine(Vector2f vStart, Vector2f vEnd, float width, Color color)
Vector3f v3End = new Vector3f(vEnd.x, vEnd.y, z);
lineVector.sub(v3End, v3Start);
(vEnd.x + normal.x), (vEnd.y + normal.y), z,
(vEnd.x - normal.x), (vEnd.y - normal.y), z
SimpleVector toCam = MainRenderer.getCamera().getPosition().calcSub(curPosition);
float a = MainRenderer.getCamera().getPosition().z - this.depth;
end
end
end
if args.length > 0
end
if args.length > 1
- DataStructure/Tree . . . . 44 matches
* 그냥 차례대로 집어넣는다. 루트, 왼쪽 자식, 오른쪽 자식의 순으로.. 비어있는건 쌩깐다.
* 노드에는 데이터와 왼쪽 자식을 가리키는 링크, 오른쪽 자식을 가리키는 링크로 구성된다.
if(a)
if(a)
if(a)
* LevelOrder : 레벨 순으로 방문
if(!a) break;
if(a->left) AddQ(a->left)
if(a->right) AddQ(a->right)
= Binary Search Trees (우리말로 이진 탐색 트리) =
* 일반적으로 정렬되어 있는 배열에서 가장 빠른 탐색을 자랑하는 알고리즘으로 알려져 있답니다.(맞나?--;)
* 조건
* Keys in Right Subtree > Keys of Node(고로 순서대로 정렬되어 있어야 한단 말입니다.)
* if x = Root's Key then 찾았으니까 알고리즘 끝
* else if x > Root's Key Root를 Right Subtree의 Root로 셋팅. 거기서부터 검색 다시 시작
* else if x < Root's Key Root를 Left Subtree의 Root로 셋팅. 거기서부터 검색 다시 시작
* 루트로부터 크기에 맞춰 왼쪽 또는 오른쪽으로 돌아댕기다가 맞는 부분에 추가시켜주면 된다.
* x의 Child가 1개 있을 경우 - 그 노드 지우고 그 자식들을 다 위로 올린다. 고로 할아버지의 자식이 된다는 것이다.(뭔가 좀 이상?--;)
* x의 Child가 2개 있을 경우 - 그 노드의 Left Subtree에서 가장 큰 값을 찾는다. 이값을 y라고 하면 y는 오른쪽 Child가 없다. y를 x자리에 갖다 놓고 여기서 다시
* y가 Child 있으면 - 그 밑의 노드들을 한단계 위로.. 고로 할아버지의 자식
- InvestMulti - 09.22 . . . . 44 matches
if select == 1:
elif select == 2:
else:
if __name__ == '__main__':
if select == '1':
elif select == '2':
elif select == '3':
elif select == '4':
elif select == '5':
elif select == '6':
'''if user.has_key(ID) == False:'''
if select == '1':
elif select == '2':
elif select == '3':
elif select == '4':
elif select == '5':
elif select == '6':
elif select == '7':
else :
if select == 1:
- MFC/DynamicLinkLibrary . . . . 44 matches
기존의 C/C++ 프로그래에서는 라이브러리를 LIB라는 확장자를 가진 형태로 제공하여 코드를 컴파일한후 링커가 프로그램에 필요한 부분을 라이브러리 파일에서 추출해서 만들어진 프로그램에 붙여넣는 방식으로 만들어졌다. 이런 구조가 윈도우 프로그램으로 오면서, 바뀌어야했는데..
종전의 방식처럼 정적으로 링크를 하게되면 윈도우 프로그램의 특성상 굉장히 메모리를 많이 차지하는 프로그램이 동시에 실행이 되면서 쓸데없이 동일한 코드영역이 중복적으로 메모리 공간안에 차지하게 되는 현상이 발생하였다. 여기서 착안하여 생겨난 것이 DLL이다. 이는 실제 프로그램의 수행부분을 한개로 두고서 여러개의 프로그램에서 그 부분을 공유하여 사용하는 것이다.
확장자가 반드시 DLL이어야 하는 것은 아니지만, DLL 이 아닌경우에는 프로그래머가 이를 로드하는 부분을 따로 만들어야 한다. .vbx .ocx같은 것은 특정한 종류의 컨트롤들을 포함하는 DLL 들이다.
Upload:dependency_walker_kernel32_dll.JPG
Library.DLL을 3개의 프로그램 A,B,C가 동시에 공유한다고 하면 각각의 프로그램이 실행될때마다 각 프로그램에서는 DLL파일의 함수로의 링크가 일어난다. 이런 과정은 윈도우 운영체제에 의해서 자동으로 이루어지고, 한개의 프로그램이라도 실행이 종료되지 않으면 윈도우는 DLL을 메모리에서 제거하지 않고 남겨준다.
프로그램과 DLL이 메모리 안으로 로드되자마자 사용되는 함수들에 대한 링크가 성립된다.
프로그램이 먼저실행되데 DLL은 프로그램의 요청이 발생한 시점에서 메모리에 로드된다. 그때가 되서야 프로그램은 DLL로부터 함수의 어드레스를 얻고 그것을 사용해서 함수를 호출한다.
프로그램에서 필요한 메모리의 양을 최대한 줄이는 것이 가능하다.
runtime dynmaic linking 의 중요한 점은, 런타임 상에서 해당 모듈을 교체할 수 있다는 점이다. winamp 의 나 KMP 등와 같은 플러그인을 제공해주는 프로그램의 경우 대부분 이러한 runtime-dynamic linking 방법을 이용한다.
DLL 에 있는 요소들은 export 된 것들만을 접근 할 수 있다. export 는 함수, 클래스, 글로벌 정적 변수, 리소스들이 가능하다.
독립적 실행은 불가능하지만 main함수의 변형된 형태를 포함한다. 이 곳에서는 dll이 사용되기 전에 초기화되는 내용들이 포함되게 된다. DLL초기 로드시 운영체제가 호출한다.
== 정적으로 링크된 MFC DLL ==
== 동적으로 링크된 MFC DLL ==
DLL 에서 동적으로 메모리를 생성하는 경우, 해당 DLL 을 이용하는 프로세스의 힙에 해당 메모리 공간이 잡히게 된다. DLL 이 하나만 올라간다고 메모리가 공유되진 않는다.
만일 프로세스-global 한 메모리를 쓰고 싶다면, 메모리 맵을 이용하거나 DLL 공유 영역을 선언하는 방법 등을 써야 한다.
- RandomWalk/황재선 . . . . 44 matches
cout << "세로의 타일 개수는?(3개부터 40개)";
cout << "가로의 타일 개수는?(2개부터 20개)";
if (row > 2 && row < 41 && col > 1 && col < 21)
cout << "세로, 가로의 개수의 범위를 벗어났네요. 다시 입력하세요." << endl;
cout << "벌레의 가로 위치를 정하세요.";
cout << "벌레의 세로 위치를 정하세요.";
if (ibug >= 0 && ibug < col && jbug >= 0 && jbug < row)
cout << "벌레가 타일의 범위를 벗어났네요. 다시 입력하세요." << endl;
if (ibug + imove[index] < 0 || ibug + imove[index] > row - 1 ||
else
if (!existZero(board))
if (aBoard[i][j] == 0)
cout << endl;
cout << "\n총 이동 횟수 : " << count << endl;
// 경계 값 기호상수로 정의
cout << "n값(세로)(3개-40개): ";
if (n > Y_MIN && n <= Y_MAX)
cout << "범위 벗어남. n값(세로)(3개-40개): ";
cout << "m값(가로)(2개-20개): ";
if (m >= X_MIN && m <= X_MAX)
- Robbery/조현태 . . . . 44 matches
주어진 예제와 그 이외의 몇몇 사항을 바탕으로 테스트를 하였다.
경우의 수가 여러가지 나오는 경우를 어떻게 처리할까 고민했는데.. 못찾은 걸로 할까? 아니면 답으로 간주해서 출력할까? 하다가, 이 경우는 못찾은 걸로 처리하였다. ( "Nothing known." 으로 출력된다. )
'명확한 경우' 에 속하지 않기때문에..^^
이전의 경우 도둑이 특정시간에 존재할 수 없는경우 "The robber has escaped." 를 출력했으나, 지금은 모든 시간의 움직임을 고려해서 존재하지 않으면 "The robber has escaped."를 출력하도록 수정하였다. (사실 소스상에선 그다지 바뀐건 없다..^^)
if (CAN_MOVE_POINT == g_cityMap[i][j][k])
if (0 > nowPoint.x || (int)g_cityMap[nowTime].size() <= nowPoint.x)
if (0 > nowPoint.y || (int)g_cityMap[nowTime][nowPoint.x].size() <= nowPoint.y)
if (DONT_MOVE_POINT == g_cityMap[nowTime][nowPoint.x][nowPoint.y])
if (nowTime == targetTime)
if (nowPoint.x != targetPoint.x || nowPoint.y != targetPoint.y)
if (nowTime < g_saveMessageTime[i])
if (-1 == suchTime)
if (abs(movingTimeX) + abs(movingTimeY) > targetTime - nowTime)
else
if (0 < movingTimeX)
else if (0 > movingTimeX)
if (0 < movingTimeY)
else if (0 > movingTimeY)
if (abs(movingTimeX) + abs(movingTimeY) < targetTime - nowTime)
if (g_maxPoints[i][k].x != g_maxPoints[j][k].x || g_maxPoints[i][k].y != g_maxPoints[j][k].y)
- 데블스캠프2009/목요일/연습문제/MFC/김태욱 . . . . 44 matches
#ifdef _DEBUG
#endif
END_MESSAGE_MAP()
END_MESSAGE_MAP()
if (pSysMenu != NULL)
if (!strAboutMenu.IsEmpty())
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
else
// If you add a minimize button to your dialog, you will need the code below
if (IsIconic())
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
else
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// TODO: Add your control notification handler code here
if (dot == 0)
else if(dot == 1){
if(underdot!=0){
- 손동일 . . . . 44 matches
== 좋은 프로그램 ==
cout << "최단 경로를 구해보자~ !!!";
cout << endl;
<< endl;
cout << "숫자로 입력하세요";
cout << endl;
cout << endl;
cout << "최단경로 : " ;
if(ver1[j].length == between[last] && ver1[j].goal == last)
if(temp == -1)
if(temp1[m] != -1)
if(temp1[m]==10)
else
if(last==10)
cout << endl;
else
cout << endl;
if(ver1[k].goal == a)
if(temp == 1 || temp == 4 || temp == 7 )
if(j == last)
- 오목/재선,동일 . . . . 44 matches
#if !defined(AFX_SINGLEVIEW_H__E826914F_AE74_11D7_8B87_000102915DD4__INCLUDED_)
#if _MSC_VER > 1000
#endif // _MSC_VER > 1000
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
#ifdef _DEBUG
#endif
#ifndef _DEBUG // debug version in singleView.cpp
#endif
#endif // !defined(AFX_SINGLEVIEW_H__E826914F_AE74_11D7_8B87_000102915DD4__INCLUDED_)
#ifdef _DEBUG
#endif
END_MESSAGE_MAP()
// TODO: Modify the Window class or styles here by modifying
if(arr[i][j] == 1)
if(arr[i][j] == 2)
if (arr[a][b]==1)
if(arr[a][b-k] == 1)
else
if(arr[a][b+k] == 1)
else
- 정모/2003.3.5 . . . . 44 matches
* 신입회원 모집기간은 따로 두지 않는다 - 02 상욱이 의견
* 제로 페이지 위키에 페이지를 만드는 즉시 준회원(ZeroWikian)이 된다.
* 데블스켐프를 통해 정회원(ZeroPagers)로 승급한다.
=== 프로그래밍 존(가제) 프로젝트에 관한토의 ===
* 프로그래밍 존(가제)
* 단계별로 프로그램에 대한 튜토리얼과 간략한 설명과 함께 그 수준에 맞는 프로그램을 작성해서 레벨업 시키는 방식.
* 신입회원 모집기간은 따로 두지 않는다 - 02 상욱이 의견
* 제로 페이지 위키에 페이지를 만드는 즉시 준회원(ZeroWikian)이 된다.
* 데블스켐프를 통해 정회원(ZeroPagers)로 승급한다.
저 대로라면 DevilsCamp 가 신입회원의 모집기간이 되는것이 아닐까요? 승급이니 뭐니 하는 것 자체를 없앴으면 좋겠군요. 단, ZeroPagers 에 등록 가능한 날를 4,5월 뒤로 미루면, ZeroPagers 에 신입생들이 우루루 참여 했다가, 우루루 사라지는 것도 예방할수 있겠지요. --NeoCoin
["C++Seminar03"] 과 정모에서 결정된 세미나는 다른것인가요? 다른거라면 뭔가 따로 준비해야할텐데..;; - 임인택
죄송할 필요는 없습니다. 참여하지 못한 저로서는 이러한 요약은 매우 반가운 일이지요. --NeoCoin
NeoCoin 은 수요일에 야간 수업 1,2 ( 6시~8시 ) 를 수강해서, 앞으로도 수요일이라면 갈수 없는 상황입니다. --NeoCoin
제로페이지 1년 계획과 홍보, 그리고 신입생 모집에 관한 이야기가 주를 이룰꺼 같습니다.
* 저는 신입생 모집을 따로 기간을 안두고 마음대로 위키에 페이지를 만들게끔 두고 싶습니다. 물론 정회원은 데블스 캠프가 끝난 후가 될꺼구요.. 신입생을 위한 시험대비 씨++ 세미나와 제로페이지 소개 등을 지속적으로 가지면서 준회원을 모으는 것이 좋을것 같습니다. -- 상욱(["whiteblue"])
* 위키 페이지를 자유롭게 만들게끔 하고 싶다면, 많은 분들이 적극적으로 Wiki:WikiGnome 나, WikiGardener 가 되어서 NoSmok:WikiGardening 를 해야합니다. 기왕이면, WikiGarderner 에 몇명을 직접 등록해서 책임을 주는것도 좋을것 같습니다. --NeoCoin
* 정회원과 준회원의 큰 차이는 없다고 생각합니다. 다만 우리 서버의 계정을 받는 문제나 행사 자체를 끌고 가는 인력을 뽑는 것 등 진행적, 실질적 문제가 조금의 차이를 보이기 때문에 구분을 하는 것으로 생각합니다. -- 상욱(["whiteblue"])
* 작년보다 많은 신입생 대상 세미나와 학회 소개가 있을 예정입니다. 그것을 열면서 계속 제로페이지 홍보도 역시 같이 할꺼구요 그 때마다 준회원 이야기 등을 할것입니다. 이렇게 되면 아마도 일정 기간 모집은 필요치 않을것으로 생각됩니다. --상욱(["whiteblue"])
* 1년 계획은 작년과 별반 다를 것이 없이 계획하는 것이 좋을 것 같습니다. 작년에 특별히 모난 진행이 별로 없었다고 개인적인 판단에 그대로 이어갔으면 하는 생각입니다. -- 상욱(["whiteblue"])
* 데블스 캠프 후 정회원 모집, 선배님들과의 만남, 여름,겨울 엠티, 프로그래밍 잔치 등이 작년과 시기와 진행면에서 비슷하게 이어나갈 것 같습니다. 저도 아직 인계받은 것이 거의 없어서 문서화 답변은 조금 힘들 듯 합니다..^^;; --상욱(["whiteblue"])
- 토비의스프링3/밑줄긋기 . . . . 44 matches
* 스프링을 사용하는 개발자들은 자연스럽게 자바와 엔터프라이즈 개발의 기본에 충실한 베스트 프랙티스를 적용할 수 있고, 이상적인 개발 철학과 프로그래밍 모델을 이해하게 되고, 좋은 개발 습관을 체득하게 된다.
* 이런 말이 생각나네요 ''컴퓨터가 이해할수 있는 코드는 어느 바보나 다 작성할 수 있다. 좋은 프로그래머는 사람이 이해할 수 있는 코드를 짠다 - 마틴파울러'' - [서지혜]
* 가장 좋은 대책은 변화의 폭을 최소한으로 줄여주는 것이다.
* 템플릿이란 이렇게 바뀌는 성질이 다른 코드 중에서 변경이 거의 일어나지 않으며 일정한 패턴으로 유지되는 특성을 가진 부분을 자유롭게 변경되는 성질을 가진 부분으로부터 독립시켜서 효과적으로 활용할 수 있도록 하는 방법이다.
* 이 문제의 핵심은 변하지 않는, 그러나 많은 곳에서 중복되는 코드와 로직에 따라 자꾸 확장되고 자주 변하는 코드를 잘 분리해내는 작업이다.
* 일반적으로 DI는 의존관계에 있는 두 개의 오브젝트와 이 간계를 다이내믹하게 설정해주는 오브젝트 팩토리(DI 컨테이너), 그리고 이를 사용하는 클라이언트라는 4개의 오브젝트 사이에서 일어난다.
* hamcrest.CoreMatchers에 대해서 : CoreMatcher로 테스트 코드를 만들 때 null 값은 비교나 not을 사용하는 것이 불가능합니다(ex. assertThat(tempObject, is(null)); -> 에러). 이건 null이 값이 아니기 때문인데, CoreMatcher에서 null 값을 쓸 때는 org.hamcrest.CoreMatchers의 notNullValue()와 nullValue()를 사용하시면 되겠습니다. http://jmock.org/javadoc/2.5.1/org/hamcrest/CoreMatchers.html
* 애플리케이션의 로직을 담기 위한 예외는 체크 예외로 만든다.
* 의미 없는 숫자를 프로퍼티에 사용하면 타입이 안전하지 않아서 위험할 수 있다.
* 가장 많은 실수가 일어나는 곳은 바로 SQL 문장이다.
* DAO는 데이터를 어떻게 가져오고 조작할지를 다루는 곳이지 비즈니스 로직을 두는 곳이 아니다.
* 데이터 액세스 로직이 바뀌었다고 비즈니스 로직 코드를 수정하는 일이 있어서는 안 된다.
* 이 정도 코드라면 한 번 살펴보는 것 만으로도 오류가 있는지 쉽게 찾아낼 자신이 있는 개발자도 있겠지만, 정말 뛰어난 개발자라면 아무리 간단해 보여도 실수할 수 있음을 알고 있기 때문에 테스트를 만들어서 직접 동작하는 모습을 확인해보려고 할 것이다.
* 코드가 깔끔해 보이지 안는 이유는 이렇게 성격이 다른 여러 가지 로직이 한데 섞여있기 때문이다.
* 성격이 다른 두 가지 경우가 모두 한 곳에서 처리되는 것은 뭔가 이상하다.
* 객체지향적인 코드는 다른 오브젝트의 데이터를 가져와서 작업하는 대신 데이터를 갖고 있는 다른 오브젝트에게 작업을 해달라고 요청한다. 오브젝트에게 데이터를 요구하지 말고 작업을 요청하라는 것이 객체지향 프로그래밍의 가장 기본이 되는 원리이기도 하다.
* 테스트를 위해 코드를 함부로 건드리는 것은 좋은 생각이 아니다.
* 트랜잭션이란 더 이상 나눌 수 없는 단위 작업을 말한다. 작업을 쪼개서 작은 단위로 만들 수 없다는 것은 트랜잭션의 핵심 속성인 원자성을 의미한다.
* 따라서 중간에 예외가 발생해서 작업을 완료할 수 없다면 아예 작업이 시작되지 않은 것처럼 초기 상태로 돌려놔야 한다. 이것이 바로 트랜잭션이다.
* 하지만 여러 개의 SQL이 사용되는 작업을 하나의 트랜잭션으로 취급해야 하는 경우도 있다.
- ClassifyByAnagram/sun . . . . 43 matches
* String 객체의 생성을 줄임.(대략 300ms 정도 줄어듬) : 마이크로 튜닝으로 넘어갈수록 노력 대비 결과가 크지 않음.
* 분석: 예전에 우스개 소리로, 프로그램을 빠르게 하려면 컴퓨터를 업그레이드 하라더니, 웃을일이 아니다 -_-;
public class PowerTest extends Applet
g.drawString( "....vendor : " + System.getProperty( "java.vm.vendor"), 10, 35 );
if( elapsed != 0 )
if( value == null ) {
else
if( l >= u ) return;
if( i > j ) break;
if( value == null ) {
else
if( value == null ) value = "0";
keyBuf.append( keyElement );
keyBuf.append( table.get( keyElement ));
long end = System.currentTimeMillis();
long printEnd = System.currentTimeMillis();
System.out.println( "수행시간: " + (end-start) + " ms" );
System.out.println( "수행시간(print): " + (printEnd-start) + " ms" );
if( value == null ) {
else
- D3D . . . . 43 matches
Game 쪽 책을 사서 D3D를 본후, 3D를 공부하려는 마음으로 샀다. 무리없이 예제를 보는식으로 할것임.[[BR]]
* [광식] 이책 덮은지 한 20된거 같다. 되층되층 봐가지고 기억이 안난다. 니가적어논거를 보는거로 시작한다.
* 잠시 외도. 광식이한테 빌린 책으로 3D를 공부.
너네두 곧 필요해질 내용이 있을테니.. 근데 지금은 내코가 좀 석자라서.. 시간에 쫓기는 관계로.. 언젠가.. 꼭.. ^^;; - 해성
DX 초기화 루틴과, game loop(message loop)를 포함한 library를 실제로 만든다.[[BR]]
추천 도서: Inside DirectX (필요로 한다면 말하시오. 전자책으로 있어요. --;;)
''- 점은 3D 공간에서의 하나의 위치이고, 벡터는 3D공간 내에서 원점으로부터 하나의 위치를 잇는 직선이다. - ''[[BR]]
i, j, k벡터의 선형 조합으로 3D내의 어떠한 점이라도 나타낼수 있다.
그리고, 이 특성으로 인해 행렬과 행렬을 표현하는 공간을 설명할 때 매우 중요시 된다.[[BR]]
float x, y, z; // 구조체의 이름이 정의되지 않았지 때문에 x,y,z 성분을 원자 단위로 사용.
float이나 double이 나타낼수 있는 부동소수점의 한계로 인해 vector끼리 동등한지 아닌지를 잘 처리하지 못한다.[[BR]]
그래서, epsilon (이 책에서는 0.001로 정의)이라는 것을 두어 그 문제를 해결한다고 한다. [[BR]]
if (fabs (a.x - b.x) < EPSILON)
if (fabs (a.y - b.y) < EPSILON)
if (fabs (a.z - b.z) < EPSILON)
if( !in.pList )
if( &in != this )
위의 식을 만족하는 모든 점의 삼원쌍 <x, y, z>는 바로 면에 존재하는 모든 점들이다[[BR]]
3D의 위치이동이나 회전 등이 행렬로 이루어 진다는 얘기.[[BR]]
ex ) v0 = <2, 0, 0>을 z에 관해 시계 방향으로 45도 회전
- Star/조현태 . . . . 43 matches
빠르게 할 방법이 전혀 생각 안나는건 아니지만.. 오늘은 바쁜 일이 있어서 ^^ 나가봐야하는 관계로..
....... 일이있다는 핑계로 귀차니즘을 무마하는....켁;; (생각하기 귀차너~)
if (x == target.x && y == target.y && z < target.z)
if (x == target.x && y < target.y)
if (x < target.x)
if (12 == number)
if (FALSE == isCanPut)
else if (minimumNumber > sum)
if (isCanPut && minimumNumber < sum)
if (calculatePoint[bigNumber[number]][i] == lines[number][j])
if (bigNumber[number] <= points[lines[number][i]])
if (calculatePoint[j][k] == lines[number][i])
if (FALSE == isInSame)
if (isCanPut)
for (map<SavePoint, int>::iterator i = points.begin(); i != points.end(); ++i)
const int END_POINT_Y[4] = {6, 6, 7, 8};
if (0 == calculateNumber)
else if (1 == calculateNumber)
else if (2 == calculateNumber)
if (0 == calculateNumber)
- XMLStudy_2002/XML+CSS . . . . 43 matches
*그러나 CSS로 스타일 시트를 작성할때는 한계가 있다.
*XML문서가 단순히 텍스트 형태의 문서이면 CSS로만으로도 표현하는것이 충분하다.
*하지만 XML문서는 반드시 텍스트 타입의 내용들로만 이루어진 것도 아니다
*그리고 위와 같이 HTML 네임 스페이스를 지정한 경우에는 <HTML : A> 뿐 아니라 다른 HTML의 태그들도 HTML 네임 스페이스의 Prefix를 붙여 사용할 수있다.
*다른 URL로 이동하는 예
XML 문서를 웹으로 보는 방법을. 현재 IE5.0이 XML을 지원하므로,
IE5.0을 브라우저로 사용하고 스타일로는 CSS를 사용하여 볼 수 있는 방법을 설명한 것 입니다.
이 문서 또한 XML로 작성되어 있습니다.
<PA>XML의 스타일시트 언어는 XSL로, XSL로 기술된 스타일시트를 이용하여,
XML을 지원하게 되면서, CSS도 XML의 스타일시트로 이용할 수 있게 되었다.
현재 IE5.0에서는 XML의 표준 스타일시트인 XSL과 CSS로 작성된 스타일을 모두 사용할 수
IE5.0에는 XML Parser와 XSL Processor가 포함되어져 있어, XSL을 스타일시트 언어로
사용한 경우, XML 문서를 Parser를 통해 파싱한 뒤
XSL 프로세서가 지정된 스타일에 따라서 디스플레이될
내용들을 내부적으로 HTML로 변환해서,
최종적으로 IE5.0에 디스플레이 하게 된다.</PA>
<PA>XML문서를 원하는 스타일로 보기 위해서는, 실제 옷이 되는
<PA>만약 XSL로 기술된 스타일시트를 사용하고자 한다면, 다음과 같이하여 사용한다.</PA>
<PA>이러한 사용할 스타일시트를 선언하는 부분은 XML 문서의 프롤로그에 위치하며,
일반적으로 XML 선언부 바로 뒤에, document type 선언부 앞에 위치하게 된다.</PA>
- 김영록/연구중/지뢰찾기 . . . . 43 matches
static int gameover=1; //0일경우 메뉴 무한루프 끝
void mine_update(int X, int Y); //지뢰가 없을경우 그근처에 지뢰수를 업뎃
if (1<=num_x<=20)
if (1<=num_y<=20)
cout << "잘못된값을입력하셨습니다." << endl;
cout << endl << endl<< endl<< endl<< endl<< endl<< endl;
cout << " ======지뢰찾기 1.00======" << endl;
cout << endl;
if(X-1 >= 0 && Y-1 >= 0){
if (space[X-1][Y-1] == 9){
if(Y-1 >= 0){
if (space[X][Y-1] == 9){
if(X+1 <= 15 && Y-1 >= 0){
if (space[X+1][Y-1] == 9){
if(X-1 >= 0 ){
if (space[X-1][Y] == 9){
if(X+1 <= 15){
if (space[X+1][Y] == 9){
if(X-1 >= 0 && Y+1 <= 15){
if (space[X-1][Y+1] == 9){
- 새싹배움터05 . . . . 43 matches
ZeroPagers 로써 회원의식을 강화하고 프로젝트, 세미나 그리고 다른 ZeroPage활동에 쉽게 적응할 수 있는 적응력을 키우는 자리.
신입생은 선배로부터, 선배는 신입생으로부터 배우는 자리.
우리들이 진행자들을 부족한 부분을 질문등 부드러운 방법의 첨가와 보충으로 도와준다면,
여기 있는 사항들은 제가 초안으로 짜본것입니다. 이건 아니다 싶으시다면 바꿔주세요~ ^ ^
* 소규모의 그룹으로 진행되는 [작은새싹배움터05]는 기본적으로 담임의 재량에 맡기되 담임끼리 언제나 충분한 상의를 통하여 진행해 나간다.
|| 6_5/23 || 자료구조(DataStructure) || 자료구조 || 주로 1학년을 대상으로 함. 2학년이 들어도 좋을 듯. 프리젠테이션을 할 예정이니 노트북 준비바람. [[BR]] Upload:DataStructure.7z ||
* 이번에 세미나 및 프로젝트를 할때는 과거에 비슷한 주제로 했던 문서들을 적극 활용하였으면 좋겠습니다. 지금까지 보통 세미나,스터디를 하면 뭐든 새로 만들었는데 그것보다 과거에 했던 것중에서 좋은것들을 잘 모아 편집하고 추가로 필요한 내용들을 넣는것입니다. 그렇게 하여 한가지 주제에 대한 완성도 높고 양질의 문서들을 만들어 나가서, 세미나, 프로젝트가 그 순간에만 활용되고 끝나기 보다는 과거의 것을 정제 하고 과거 했던 비슷한것들을 할 시간에 더 양질의 내용을 채워 나가서 계속 활용하였으면 합니다. -[상협]
* 저도 동감합니다. 세미나 했던 자료는 자료실이나 위키 업로드를 통해 계속 축척해서 제로페이지의 자산으로 남겼으면 합니다. --재동
* 그리고 지금까지 프로젝트 진행 프로세스를 잘 살펴 보아서 어떤식의 진행이 파국(?)으로 치달았는지 분석해보면서 제로페이지식의 제대로된 스터디 프로세스, 프로젝트 프로세스를 만들어 나가보았으면 합니다. -[상협]
어떤식으로 진행할지 이야기 해봅시다.
우선 처음 세미나는 신입생 대상으로 위키 세미나가 다시 이루어져야 할 것 같습니다. 예전 위키 세미나에 신입생이 많이 참여하지 못했다고 들었습니다. 전에 위키 세미나 했던 사람이나 아니면 새로운 사람을 정해서 했으면 합니다. 그리고 첫 세미나는 다음주 월요일부터 시작하는 건가요? 그렇다면 급한 다음주 월요일 세미나 강사를 정하는 게 중요할 듯 합니다. --재동
지금 따로 메뉴얼을 제작하고 있습니다. 세미나 없이 메뉴얼만 있으면 쉽게 사용가능할 정도로 만들 예정이고요, 이번 [위키설명회2005]에서 다룬 내용도 담을 예정입니다. 그리고 첫 세미나(C프로그래밍)는 제가 할 의향이 있고 준비 중입니다. -[강희경]
[데블스캠프]같은 행사에서 하루 정도는 신입생이 재학생을 대상으로 세미나를 해보는것도 좋을것 같다. 준비의 주체는 신입생 모두이고 주제는 어떤 것이 되든 상관없다. 신입생들은 준비하는 과정에서 이것저것 얻게 되는 부분이 무언가 한가지는 반드시 있을 것이다. - [임인택]
7피의 프로젝터는 재학생이 이용할수 없습니다. 교수님만 이용할수 있다고 합니다. 피치못할경우 빌릴수는 있긴 합니다. - [톱아보다]
재동이 다음으로 제가 한번 해볼까 하는데... 무엇을 하는게 좋을까요? --[상규]
음 어떤게 좋을까요?? 많아 보였는데 실제로 하려고 생각하면 몇가지 없기도 하네요. 가능한 주제를 먼저 골라보면... [Python], [ExtremeProgramming] 이 대표적인데... - [톱아보다]
저는 포인터에 대해서 하기로 정해졌습니다. 그 다음으로 리눅스를 인택이형이 해주시면 되겠네요^^ --[상규]
확실하게 리눅스로 정해진 건가? 희경이 말고 새내기들 생각은 어떤지 궁금하구만. - [임인택]
상규와 재동의 세미나 날짜가 서로 바뀌였습니다. --재동
세미나 관련 후기를 남기면 좋을 듯 합니다. "좋았습니다" 같은 상투적인 것 말고 그 세미나의 장점과 단점을 남기는 겁니다. 그럼으로써 다른 사람이 세미나할 때 장점을 많이 따올수 있게 말입니다. --재동
- 영호의해킹공부페이지 . . . . 43 matches
6. Computers can change (your) life for the better.
80년대 윤리 강령. 90년대에 새로운 것에 기반한 것이 나왔다지만 나는 80년대 것을 선호한다. 자유롭기 때문에.
a shell equal to its current UID - thus if the daemon is run as root, like
removed. This is called LIFO - or last in first out. An element can be added
contents of the buffer, by overfilling it and pushing data out - this then
This is just a simplified version of what actually happens during a buffer
overflow - there is more to it, but the basics are essential to understand if
Is this a buffer overflow bug or is this something else we are mistaking for
address we can land somewhere in the middle of the NOPs, and then just execute
else's. And so, my choice in shellcode - int 20h - program termination. :)
namely 0x0063FDE4. Hopefully you're beginning to see the idea here. If you
Ammendment to FK8 by Wyzewun - Released 27th December, 1999
improper use of an ifstream. If you insist on using iostream.h (cin and
ifstream) then use get() and getline() instead of the '>>' system.
the one specified in the zine. :) Right, just a small update, but a necessary
(If CX is equal to 0 jumps to 0134)
(Ends the program)
end start
[ Some more additions from Wyzewun: And there you have it. If you're
Also, try and see if you can get hold of the SAMS MS-DOS Bible - it's what
- 이학 . . . . 43 matches
이학(耳學) 즉, 귀로 배우는 학문의 과정과 성과에 관한 글
from 히로나카 헤이스케 NoSmok:학문의즐거움 중 '자기발견 - 묻고, 듣고, 또 묻고' 중에서..
하버드 대학에는 법률, 경제, 교육, 생물, 종교학 등 여러 분야의 유학생들이 있었다. 요사이 유행하는 말로 하면 '學際的 분위기' 라고도 할 수 있는 것이었다. 현재 의학이나 생물학에서는 무엇이 제일 문제인가? 경제학을 전공하는 사람의 최근 관심사는 무엇인가? 미국의 교육학이나 종교학은 무엇을 가르치고 있는가? 여러 학문 분야의 사람들이 마음대로 이야기하는 분위기는 그야 말로 학구적인 것이었다.
나는 그런 유학생들과 이야기하는 가운데 여러가지 이학(耳學)을 할 수 있었다. 이 점에서 내가 유학한 것은 정말로 잘한 일이라고 생각한다.
일반적으로 미국에서는 이학이 발달되어 있는데, 그 이유로는 미국이란 나라가 높은 봉급으로 교수를 고용하기 때문에 여러 나라에서 우수한 인재들이 모여 있다는 점을 빼놓을 수 없다. 이학이라는 것은 책에서 배우는 것이 아니라 직접 사람과 접하면서 그 사람이 갖고 있는 지식이나 사고 방식을 배우는 거을 말한다. 따라서 우수한 인재가 모여 있다는 것은 그만큼 '이학'이 발달될 소지도 크다는 것이다.
미국에서 '이학'이 발달하고 있음을 잘 나타내 주는 예로서 자주 거론되는 것으로 미국 사람들은 질문하는 기술이 좋다는 것이다. 사실은 기술이 좋다라기 보다 모르는 것은 무엇이든지 질문하는 습성이 있는 것이다.
이것과 관련하여 컬럼비아 대학에 있었을 때 만난 한 제자 생각이 난다. 멀리서 그의 모습이 보이면 교수들이 피해갈 정도로 만날때마다 질문을 해대는 학생이었다. 학교에서뿐만 아니라 밤 늦은 시간에도 교수 집에 전화를 해서 한 시간씩이나 질문을 하기도 했다. 외모는 뛰어났지만 컬럼비아 대학에 들어올 정도의 실력이 못 되는 학생이었기 때문에 (경력이 특이하고, 면접시 추진력을 인정받아서 입학시킨 학생이었다.) 그의 질문은 대부분 전혀 조리가 안 맞고 초점이 없었다. 나도 대학이나 집으로 걸려 오는 전화를 통하여 그의 왕성하긴 하나 시시한 질문에 몇 번이나 손을 들었다.
그런데 입학해서 2년 정도 지나니까 그는 더 이상 시시한 질문만 하는 학생이 아니었다. 가끔 질문다운 질문을 할 때도 있었고 4학년이 되어서는 마침내 우수한 논문을 써내어 학계 일류의 논문지에 발표할 정도로까지 성장하였다. 그는 그 후 내가 하버드 대학으로 옮길 때 강사로 따라왔다가, 스탠퍼드 대학의 조교수를 거쳐 지금은 캘리포니아 대학의 교수가 되었다.
이 학생에게서 전형적인 예를 보듯이 미국에서는 질문을 통해 배운다. 즉, 귀로 배우는 '이학'이 학문의 한 방법으로 널리 쓰이고 있다. 일본 사람들은 일반적으로 '좋은 질문' 과 '시시한 질문'을 구별하고, 실제로 답을 알면서도 자기 재능이나 발상을 과시하기 위하여 질문하는 경향이 있다. 미국 사람들은 좋은 질문이나 시시한 질문에 상관없이 모르는 것은 무엇이든지 질문하고 할 수만 있다면 질문만으로 다 배워 보겠다는 자세가 있다.
일류 대학의 학생이라면, 이 이학만으로 단기간 내에 상당한 수준까지 배울 수가 있다. 가령, 3,4백 페이지 분량의 책에 씌어진 내용을 배우려고 할 때, 학생은 교수에게 가서 "이 책에는 무엇이 씌여져 있습니까?" 라고 일본의 대학에서는 상상도 할 수 없는 질문을 한다. 다소 유치하고 대략적인 질문이지만, 질문받은 교수는 그에 대해서 학생에게 열심히 설명한다. 그러면 그 설명에 대해서 또 질문하고, 그것을 몇 시간에 걸쳐서 되풀이하는 동안에 학생은 그 책의 요점을 파악해 버린다. 두꺼운 책을 몇 페이지 읽다가 이해하지 못해 포기하는 것보다 질문을 하는 것이 결과적으로 좋은 효과를 내는 셈이다. 물론 상세한 부분은 스스로 읽어야 되겠지만, 대체적인 요점이나 골격을 파악하면 책에 대한 이해는 훨씬 빠르다.
학생과의 관계에서 자주 경험하는 일인데, 일본 학생은 'why' 라든가 'how'라고 질문하는 경우가 매우 많다. 말할것도 없이 'why'라는 것은 '왜'라는 것인데, 이것은 '진리(眞理)'를 물어 보고 있는 것이다. 이에 반해 미국 학생은 'what'이라는 형태의 질문을 많이 한다. "그것은 도대체 무엇이냐?" 라는 식으로 물어본다. 이것은 '사실(事實)'을 묻는 것이다.
요컨대 일본 학생은 사실의 배후에 있는 진리를 구하고 있다고 해석할 수 있다. 'why' 라고 묻는 것이 사실만으로 만족할 수 없기 때문이라면 나름대로 훌륭한 질문이 될 수 있다. 그러나 경우에 따라서는 정보(情報)를 진리로 착각할 때도 있고, 사실을 모르면서 진리라는 말을 혼동하여 자기 만족에 빠지는 경우도 있을 수 있다.
한편 사실을 확실히 알지 못하고 출발하는 것도 위험하다. 사실로 진리를 통하여 간파하는 것은 자기의 일이며 딴사람에게 물어서 해결하는 것이 아니라는 태도도 있다. 어느 쪽이 좋다고 얘기하기는 힘들지만 미국과 일본과는 그러한 차이가 있다는 것을 알아두는 것도 좋을 것이다.
어떻게 대답하면 좋은가? 일본이란 어떤 나라인가, 일본인이란 어떤 성격을 가진 국민인가? 자기 스스로도 생각해 보고 책을 읽고 배워야 한다. 가르치기 위해서는 배워야 한다. 바꾸어 말하면 배우기 위한 방법의 하나는 남에게 가르치는 것이다.
정말 흥미로운 내용이네요. 전국투어팀은 선배님들을 찾아가서 학문에 대한 내용에만 국한되지않은 훌륭한 ["이학"]을 하고 있겠죠? 대학 시절에 ["이학"]을 통해서 빨리 배울 수 있는 분위기가 만들어졌으면 좋겠어요. 전공에 관련한다면 위키위키가 그 대안이 될 수 있을까요?
공부를 효율적으로(비용 대 수익 면에서) 잘 하는 사람들을 보면, 질문하기를 잘(자주)하고 또 잘(능숙하게) 합니다. 또 하나 관찰할 수 있는 것은, 어느 누구에게 무엇을 묻든 꺼리거나 부끄러워 하지 않으면서도, 물을 때는 주변에서 가장 적당한 사람, 최적의 사람을 찾아 묻는다는 점입니다.
노벨 물리학상을 받은 리차드 파인만(그의 전기는 물리학과 인연이 없는 사람들에게도 추천합니다. 밤을 단숨에 샐 겁니다)은 이런 질문하기의 기술과 용기를 두루 갖춘 사람이었습니다. 그가 모 프로젝트의 중간에 투입되었을 때 관련 기술지식을 전혀 갖고 있지 못했습니다. 그 프로젝트의 현장 기술자들을 불러놓고 그들에게 끊임없이(대여섯시간?) 질문을 해서 순식간에 그들의 지식을 흡수한 이야기는 전설로 회자되기도 합니다.
도올 김용옥은 모르는 것이 있으면 남들과 달리 애둘러 묻지 않고, 직접적으로 묻습니다. "양자 역학이 뭔가요?" 거기에 "소립자, 원자, 분자 등의 미시적인 계에 적용되는 역학입니다" 식의 사전적 답변을 듣게 되면, 다시 묻습니다. "그러면 소립자는 뭔가요?" 이런 식으로 몇시간만 진행하다 보면 정말 "이해"란 걸 하게 됩니다. 물론 전문 텍스트를 보고 공부하는 과정이 결여되어 있으니 완전하진 않지만, 개념의 이해는 가능하다는 겁니다. 그런데 이게 나중에 그 분야를 공부하는 데에도 엄청난 도움이 됩니다. 천지차이죠. 수식 몇 개 외워서는 이런 지식의 심층구조(deep structure)를 획득하기 어렵습니다.
그런데, 이런 "가당찮아 보이는" 질문에 제대로 답변을 해주려면 그 사람이 "대가"여야 합니다. 대가가 아니고서는 이런 질문에 모든 것을 통섭하여 쉽고 간략한 답변을 내어놓지 못합니다. (여러분 중에 "알고리즘이 뭐에요?"라고 묻는 문외한에게 자신의 언어로, 쉽고 명료한 -- 그러나 조금도 어긋남 없는 -- 설명을 해줄 수 있는 사람이 몇이나 될까요) 그래서 "최적의 사람"을 골라 물어야 하는 것입니다. (질문을 잘하는 사람은 상대가 유명한 대가라고 해도 겸손할지언정 절대 주눅들지 않습니다. 다짜고짜 그 대가를 찾아가서는 도움을 청하는 것이죠.)
전산학 분야에도 지대한 영향을 미친 논리학자 타르스키의 "논리학 입문" 책을 보면 첫 장에 나오는 말이 걸작입니다. 그는 첫 페이지부터 도대체 "변수"란 무엇인가에 대해 설명을 합니다. 그러면서 대부분의 수학책이 이 개념을 잘못 가르치고 있다고 비판을 합니다. 대가는 이런 사람입니다. 가장 기본적이고, 가장 상식적인 대상에 접근해서, 사정없이 흔들어 놓고는 아주 명징하고 명료한 상태로 만든 후에 소리없이 사라집니다. 또, 파인만은 이런 말을 자주 했습니다. "어떤 개념이든지 수식을 쓰지않고 쉽게 설명할 수 없다면, 그 사람은 그걸 완전히 이해하지 못한 것이다"
- 정모/2012.11.26 . . . . 43 matches
== 저번주 약속대로 위키를 모두 작성하여서 과자파티 함 ==
* 학회 외 사람은 약속한대로 활동비 지원
* 학회비에서 지원하기로 함.
* [신형준] - 규모가 큰것은 좋으나 학교에서 데려다주고 방목, 거시서 멀 하려는지 정확하게 볼 수 없었음. 제대로 된것이 없었다.다른 학교도 잘하는 것을 느끼고 옴. 특히 금오공대. 거미모양에 프로펠러를 달아 날아다니는 것이 신기.
* [이재형] - 2시부터 시작인데 시간을 너무 짧게 줌. 홀로그램 관이 입체적인것이 신기.
* [이민규] - 부스는 많은데 정리가 안된느낌. 시연을 하는것을 보고싶어도 제대로 할수 없는 환경. 볼게 없었음
* [권영기] - 첫회라서 강제로 끌어모은 느낌. 다른학교도 마찬가지인듯. 레이싱게임 비슷한게 있는데 의자가 움직이는 것이 신기했음.
* 전체적으로 학생 아이디어 착취를 위한 느낌의 프로그램이었음.
부분이 많았다면 더 흥미롭게 볼 수 있엇을텐데 하는 아쉬움이 있엇습니다. 하지만 전체적으로 열정적으로 좋아하는 것에 몰두하시는 분들을 볼 수 있어서 좋았습니다.
케이스와 파워는 회비로 구매하기로
== 제로페이지 올해 활동내역 정리 ==
* 문서적으로 정리해서 제출할 곳이있음
* 편집자를 뽑되 많은 사람들이 참여해서 작성하기로
* 우리가 했던 기록이 위키나 트렐로에 없다면 정리해서 올려줬으면 함.
* 작은자바, ACM, 스프링, English 등등 프로젝트 자료 김태진에게 줄 것.
* 지금 버리기로 했고 딱지 때문에 일단 버리고 와보기
* [정종록]: 윤종하 덕분에 oms하겠네. 난 모르겠다 pl프로젝트. 이번에도 후기 모두써서 맛있는거좀 ㅋㅋ
* [신형준]: 종하형 oms는 .. 음 .. 하하하하하 정리가 잘 안된거 같네요 ㅜㅜ .공학교육 페스티벌 다음에 우리도 프로젝트 내보아요 ㅋㅋㅋㅋ . 종하형 oms 수고하셧습니다.
* [이재형]: 저..절대 과자 준다고해서 오랜만에 간..건 아니지만요. 그..그래서 후기 쓰는 것도 아니지만요. 오늘 OMS를 들으면서 '아 제로페이지라는 집단에는 정말 본받을 분들이 많으시구나' 다시 한 번 느꼈습니당. 공학교육페스티벌 후기 공유 시간도 다시 생각해볼 수 있는 기회라 오히려 감사했구요. 활동내역 정리 맡은 바 최선을 다하겠습니당 ㅎㅎ. 종록이형의 OMS를 기대하며 끄읕~!
* [이민석]: 발표 자료를 훑어보니 디지털 영상 처리의 로우-패스 필터 같은 신호 처리 기법도 나오고 흥미로운 주제인데 발표 앞부분을 놓쳐서 아쉽습니다.
- 후각발달특별세미나 . . . . 43 matches
1 Page로 끝내다. --재동
주석이 많다는 것은 코드가 자신을 스스로 표현 못하기 때문입니다. 어딘가 주석을 달려고 생각 한다면 한 번쯤 '주석 없으려면 어떻게 해야하는가?'라고 생각해보세요. 단, 숙제 제출에서는 교수님의 눈에 맞춰야합니다. --재동
교수님이 말씀하시는 주석은 소스가 어떻게 돌아가는지 설명하는 주석을 말하는거 아닌가 싶습니다. 리펙토링을 통해서 주석 없이도 이해가는 소스를 작성하도록 노력하고, 뭐 필요한 경우에는 쓸수도 있겠죠. - [상협]
전문적인 설명은 아니구, 제 생각에는 함수를 사용하여 메모리 사용하는 비용과 프로그래머가 함수를 더 사용하여 소스의 가독성을 올리고, 유지 보수 및 버그를 없애는 비용과 비교를 해볼때 후자가 훨씬더 큰 비중을 차지하기 때문에 함수를 더 사용하여 메모리를 더 사용하더라도 리펙토링의 중요성이 결코 줄어들지 않는다고 생각합니다. 그리고 짧은 소스에서는 리펙토링 하여 함수가 많아 지는것이 낭비처럼 보일지 몰라도 좀더 프로그램이 커질수록 리팩토링을 해놓음으로 해서 추후에 최적화를 하는데에도 훨씬 유리하기 때문에 결국에 가서는 자원도 더 효율적으로 사용하리라고 봅니다. - [상협]
사실 이 질문은 제가 받았던 질문인데, 질문 받았던 당시에 별 생각없이 '''메모리를 많이 사용한다는 단점이 있더라도 잃는 것(단점)보다 얻는 것(장점)이 더 많기 때문에 상관없다'''고 얼버무렸습니다. 그렇게 틀린 대답은 아니였지만 많이 부족한 대답이었습니다. 그래서 재동형하고 이야기도 해보고 저도 나름대로 생각해서 답을 내어보았습니다.
메모리를 많이 사용한다는 우려의 원인은 많은 변수들에 있습니다. 전달인자를 받거나 값을 리턴할 때, 각각 상응되는 변수가 필요하기 때문이죠. 하지만 변수는 그 변수가 선언된 함수내에서만 효력을 발휘하고 함수가 종료되는 순간 사라집니다(메모리해제). 그러므로 모듈화된(쉽게 이야기해서 함수로 나뉜)프로그램에서는 함수내의 많은 변수들이 메모리를 많이 차지하더라도 그 함수가 끝나면 그 메모리는 해제되어 사용가능해집니다. 그리고 전역변수나 메인함수내의 변수만을 사용하는 프로그램은 프로그램이 끝날 때까지(메인함수가 종료될 때까지) 메모리를 잡아두므로 한번 할당된 메모리는 사용불가능합니다.
모듈화된 프로그램에서의 메모리 사용의 개념은 '''필요할 때마다 할당해서 쓰고 필요없으면 해제하자'''이고 전역변수나 메인함수내의 변수만을 사용하는 프로그램에서의 메모리 사용의 개념은 '''지금은 안쓰이더라도 나중에 쓸 메모리를 미리 할당하고 사용이 끝났더라도 메모리를 계속 잡아두자'''입니다. 전자의 경우에는 어느 순간 메모리를 많이 사용하는 경우도 있고 어느 순간에는 엄청 적게 사용하는 경우가 있습니다. 메모리 사용이 더 유동적이라고 할 수 있습니다. 밑에 참고 그래프(자체제작)를 참고해주시기 바랍니다. --[강희경]
- 아래 상규의 말대로 큰 차이는 없을 것 같습니다. 모듈에서의 변수 선언, 사용에 있어서 메모리 사용량은 기껏해야 몇 바이트 정도가 아닐까요? 아래 코드처럼 극단적인 예가 아닌 이상 큰 변화가 없는 경우가 대부분이라고 생각합니다(물론, 동적할당은 여기서 논외입니다). 그런데, 아래의 코드는 몇가지 냄새가 나는 코드로군요. 큭. :(
cout << "addr of f in " << funcCount << "th call : " << f << endl;
if( funcCount++<FUNMAX )
cout << "addr of b in " << funcCount << "th call : " << b << endl;
if( funcCount++<FUNMAX )
(참고로 제가 말하고자 하는 것은 코드에 의한 메모리 사용량 입니다.)
함수의 갯수와 메모리 사용량은 직접적으로 관련이 없습니다. 메모리 사용량과 직접적으로 관련이 있는 것은 함수의 갯수가 아니라 프로그램의 길이 입니다.
함수가 많다고 프로그램의 길이가 긴 것은 아닙니다. 길이가 짧은 함수를 여러개 가진 프로그램과 길이가 엄청나게 긴 함수를 한개만 가진 프로그램이 있다고 해봅시다. 길이가 더 긴 프로그램은 어떤 것입니까?
리펙토링에 대해서 생각해 봅시다. 가장 먼저 배운 방법이 무엇이었습니까? 중복제거 입니다. 함수를 늘려 중복을 제거하면 프로그램의 길이는 길어질까요? 짧아질까요?
음악이 있어서 참 좋았어요~ 중간중간의 농담도 좋았구요. 지나 치게 진지한 세미나 보다는 훨씬 났다는 생각이 드네요 ^^ 다만 조금 아쉬운건. 쉬는 시간에 음료수라도 뽑아 드려야지 라고 생각하고 있었는데...프로젝트 땜에 바쁘셔서 그런지 빠르게 진행 하시더라고요~ ㅋㄷㅋㄷ 마지막으로~ 간결한 1장짜리 자료집이 너무 좋았어요~ - 톱아보다
프로젝트 때문에 빠르게 진행한게 아니라 선전부 모임때문에... 여튼 간결하게 하는 건 중요하다. 시간 되면 {{{~cpp The One Page Proposal}}}을 읽어보도록 해. --재동
그런데, 함수 호출에 의한 오버헤드는 컴파일러/VM 기술이 발전하면서 점점 줄어들고 있고, 문제가 복잡할수록 그런 낮은 단계의 옵티마이제이션보다 높은 단계에서의 최적화가 훨씬 더 효과적인데, 리팩토링이 잘 되어 함수가 잘게 쪼개어져 있으면 높은 단계의 최적화를 하기가 쉬워집니다. (그래도 여전히 로우레벨의 옵티마이제이션이 필요하다면 매크로나 코드 제너레이션을 쓸 수 있습니다. DavidParnas의 [http://www.acm.org/classics/may96/ 논문] 참고)
낮은 단계 최적화는 10% 속도 높히는 경우가 많지만 높은 단계 최적화는 100%나 1000%도 종종 있습니다.
- Chapter I - Sample Code . . . . 42 matches
모든 .c 파일에서 인클루드되는 헤더파일이다. 이 파일의 내용은 타겟프로세서마다 다르게 적용시켜야한다.
=== Compiler-Independent Data Types ===
프로세서마다 각각 가지고 있는 특성이 다르기 때문에 우리가 포팅하려는 타겟 CPU에 맞춰 여러가지 글로벌 변수를 선언해줘야 한다. (글로벌 변수라기보다는 키워드 재정의라고 말하는게 더 맞겠다) [[BR]]
각각의 프로세서마다 int 형 데이터의 크기 char 형 데이터의 크기.. 등등이 다르기 때문에 다음과 같은 식으로 재정의를 해준다.
OS 를 작성하다보면 전역변수가 필요한 경우가 있다. 전역변수는 어떻게 선언하는가? extern 키워드를 사용하면 된다. 하지만 uCOS-II 에서는 extern 키워드마저 #define 해서 다른 매크로로 사용한다.
#ifdef OS_GLOBALS
#else
#endif
위처럼 다음과 같이 매크로 정의를 해 놓고 다음과 같은 소스를 적용시킨다고 해 보자
만약 다음과 같이 OS_GLOBALS라는 매크로를 미리 적용시키면 형 정의가 되지 않은 상태이므로 (위의 #ifdef~#else 에서 #else 절에 걸리게 된다) 다음과 같은 코드가 된다.
OS에서 공유자원이나 특정코드가 수행되는 도중에 다른 프로세스에 의해 interrupt 되는것을 방지하기 위해 크리티컬 섹션을 사용하게 된다. 이는 윈도우즈 프로그래밍에서 스레드관련 처리를 해 줄 때에도 나오는 용어이다. uCOS-II에서는 단순히 매크로함수를 이용해 크리티컬섹션에 들어오기와 나오기를 한다. 매크로함수가 하는 일은 단순히 인터럽트를 무효화, 유효화 시키는것 뿐이다.
#if OS_CRITICAL_METHOD == 1 // OS_CRITICAL_METHOD 는 어디선가 이미 정의되어있다. 아마 CPU에 따라 다르게 값이 정해져 있을것이다.
#deifne OS_EXIT_CRITICAL() asm STI
#endif
#if OS_CRITICAL_METHOD == 2
// PUSHF는 CPU레지스터를 하나씩 일일이 스택에 넣는 작업을 간편하게 하기 위하여 호출 하는 ASM명령으로 정해진 순서에
// 의해 모든 레지스터의 내용을 스택에 PUSH하는 명령임. 반대는 POPF로 PUSHF의 역순으로 스택에서 꺼낸 데이터로 각각의 // 레지스터를 변경 시킴. 항상 이 두 명령은 한쌍이 되어 사용 되어야 한다.
#deifne OS_EXIT_CRITICAL() asm STI
#endif
디스플레이는 문자기반으로 한다. x, y값을 이용해서 아스키문자와 특수문자를 출력할 수 있다. 1글자 출력에 사용되는 바이트수는 2이다. 1바이트는 글자이고, 나머지 1바이트는 포그라운드/백그라운드 컬러이다. (상위 4비트가 백그라운드이고 하위 4비트가 백그라운드 컬러이다)
- CompleteTreeLabeling/조현태 . . . . 42 matches
일단 만들기는 했지만.. 조건을 만족시키지 못한다.
나름대로 줄이긴 했지만.. 애초에 문제가 나빳던 거얏!!ㅠ.ㅜ
두개를 곱해서 21이하라는 조건인데.. 최악의 경우는 각각 3개의 뿌리를 가질때 깊이가 7이되면..
3280개의 노드가 생긴다. 고로 이걸 3280!해서 나오는 경우의 수를 생각하면 10^10000이 사뿐히 넘어간다는... 애초에 계산이 될리가 없잖..
일단 임시로 만든 소스를 올렸다. 현재 연산에서는 문제가 없으나 3*2를 넘어가면 연산속도가 눈에띄게 저하된다.
물런 나름대로 머리를 굴려서 계산양을 줄인건데.. 조속한 시일내에 해결책을 구상해서 수정하도록 하겠다.^^*
21*1이라도 빠른 속도로 계산하지만.. 깊이가 깊어지는 경우에 대해선 아직 약하다..ㅠ.ㅜ
이제는 5*2라도 풀 수 있다. 저번 펙토리얼식 알고리즘을 조합식 알고리즘으로 수정하여 많은 속도의 향상을 가져왔다. 하지만 모든 결과를 내기에는 충분하지 않은속도..
if (1==degree)
if (input_deep!=input_all_deep)
if (block_number==max_nodes-1&&!((temp_block->head!=NULL&&temp_block->head->number>temp_block->number)||temp_block->number>temp_block->maximum))
else
if (!((temp_block->head!=NULL&&temp_block->head->number>temp_block->number)||temp_block->number>temp_block->maximum))
if (1==degree)
if (input_deep!=deep)
if (temp_block->deep==deep)
else
if (i<number_of_one)
else
if (!((temp_block->head!=NULL&&temp_block->head->number > temp_block->number)||temp_block->number > temp_block->maximum))
- NUnit/C++예제 . . . . 42 matches
* 먼저 프로젝트를 Managed C++ 클래스 라이브러리로 만든다.
* 속성 페이지 가서 C/C++로 간다음, #using 참조확인에다가 NUnit이 깔린 폴더의 bin 폴더를 넣어준다.
* NUnit이 깔린 폴더의 bin안에 보면 NUnit-gui.exe을 실행한다. 컴파일해서 나온 dll을 로딩해주고 run하면 테스트들을 실행해준다.
1. 일단 MFC 프로젝트를 만든다. 이것을 메인프로젝트라고 하자.
2. 전체 솔루션에 Managed C++ Library 프로젝트를 새로 추가한다. 이것을 테스트프로젝트라고 하자.
3. 테스트 프로젝트의 속성으로 들어가서 #using 참조에 nunit\bin폴더를 넣어준다.
4. 테스트 프로젝트의 속성으로 들어가서 포함 디렉토리에 위의 메인프로젝트의 폴더를 넣어주자.
5. 메인프로젝트의 속성탭에 가서 Managed C++ Extension을 체크해준다.
메인프로젝트에서 만든 새 클래스를 테스트 프로젝트에서 테스트하고 싶다. 어떻게 해야할까? 순진한 인수군은 #include <domain.h> 이렇게 하고, 테스트 클래스에 .h랑 .cpp 참조 넣어주면 될줄 알았다. 이것땜에 어제밤부터 삽질했다. 이렇게만 하면 안되고... 새로 만든 클래스를 일단 보자.
평소대로 하자면 이렇게 하면 될것이다. 하지만 현재 프로젝트는 [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] 를 붙여서 선언해야 한다.
__gc의 가 부여하는 능력과 제약 사항에 대해서는 [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmxspec/html/vcmanagedextensionsspec_4.asp __gc] 을 참고하자. NUnit 상에서 테스트의 대상 클래스는 무조건 포인터형으로 접근할수 있다. 이제 테스트 클래스의 내용을 보자.
#include "Domain.h" // 포함 디렉토리에 메인프로젝트의 폴더를 넣어놨으므로 가능
이렇게 해주면 된다. 이거 알아내느라 엄청 삽질했다. 그런 의미로... NUnit 많이 애용해 달라. 혹시나 더 간단하고 좋은 방법 있으면 올려 주세요.
이 경우 Unmanaged C++ 코드에 대해서 적용할수 없다. 즉, MFC로 완성된 프로그램이라도, .Net Platform 이 없는 곳에서는 작동할 수 없다. (로직에 __gc 가 존재하므로)
[류상민]은 NUnit 과 Unmanged C++의 연결을 완전하게는 하지 못했다. Managed C++프로젝트와 Unmanged C++ 프로젝트 두개를 만들어 Managed C++ 코드에서 NUnit 을 이용해 Unmanaged C++ 에 접근해 테스트 코드를 작성했다. 하지만, .Net Platform에 미숙과, Managed C++ Extension의 몰이해, 프로젝트 관리와 의존성 문제에 봉착해 곧 벽에 부딪쳤다. 이 둘은 혼용할수 없음을 알았다.
Unmanaged C++에서 가장 좋왔던 방법은 Unmanaged C++ Project 두개를 만들어서, 한쪽으로 의존시킨후 assert 를 이용해 자체적인 Test Framework 을 작성해서 사용하는 방법이었다.
아.. __gc를 쓰면 닷넷 플랫폼없는 곳에서는 쓸 수가 없겠네요. 그러면 이방법은 어떤가요? 일단 테스트할때는 테스트할 클래스에 __gc를 붙이잖아요? 나중에 배포할때는 __gc를 없애는 겁니다. 물론 Managed C++ Extensions의 문법을 쓰면 안되겠죠.(__gc빼고) 매크로를 잘 쓰면 어떻게 될거 같기도 한데... --[인수]
그것을 떠나서, MFC를 쓰면서 테스트를 하는 것이 의미 있어 지려면, MFC 로 작성한 프로그램이 정상 동작하면서, 테스트를 할수 있어야 하는데, MFC Frameworks 이 Managed C++ 모드로 컴파일이 잘되고, 잘 돌아가는지, 이것이 의문이다. 된다면, MS에서 모든 MFC class앞에 __gc가 붙이기라도 한걸까? 혹은 이미 해당 매크로가 존재하지 않을까?
그래서 MFC 예제는 네가 작성한 첫번째 예제와 동일한 수준으로 쓸수 있는 것이 아닐까 생각한다. 길을 열어줘 :)
- NamedPipe . . . . 42 matches
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.
Pipe란 두 프로세스간의 통신을 위해 만들어진 것으로 Named Pipe는 말 그대로 이름이 있는 파이프라는 것이다. 이는 다른 컴퓨터와도 네트워크를
// then waits for a client to connect to it. When the client
if (hPipe == INVALID_HANDLE_VALUE)
// Wait for the client to connect; if it succeeds, // 클라이언트를 연결을 기다린다.
// the function returns a nonzero value. If the function returns // 접속이 될 경우 0 아닌 값이 리턴 되며
// zero, GetLastError returns ERROR_PIPE_CONNECTED. // 만약 0 값이 리턴이 될 경우 ERROR_PIPE_CONNECTED를 리턴한다.
// 연결이 되서 fConnected값이 TRUE가 되었으므로
if (fConnected)
(LPVOID) hPipe, // thread parameter // 쓰레드 Parameter로 hPipe 핸들값이 들어간다.
0, // not suspended
if (hThread == NULL)
else
else
if (! fSuccess || cbBytesRead == 0)
if (! fSuccess || cbReplyBytes != cbWritten) break;
// before disconnecting. Then disconnect the pipe, and close the
// Try to open a named pipe; wait for it, if necessary.
// Break if the pipe handle is valid.
if (hPipe != INVALID_HANDLE_VALUE)
- OurMajorLangIsCAndCPlusPlus/stdio.h . . . . 42 matches
|| FILE * fdopen(int, const char *) || 파일 지정자 필드로 부터 스트림을 얻습니다. ||
|| int ferror(FILE *) || 스트림에 오류가 있을경우 0이 아닌값을 리턴 합니다. ||
|| char * fgets(char *, int, FILE *) || char*에 int의 길이만큼 스트림에서 읽어서 저장한다. 파일의 끝이나 오류일 경우 NULL을 리턴한다. ||
|| size_t fread(void *, size_t, size_t, FILE *) || 해당 스트림에서 문자열을 첫번째 인자의 크기만큼, 두번째 인자의 횟수로 읽습니다. ||
|| FILE * freopen(const char *, const char *, FILE *) || 세번째 인자의 스트림을 닫고 그 포인터를 첫번째 인자의 파일으로 대체한다. ||
|| int fscanf(FILE *, const char *, ...) || 해당 파일에서 문자열을 지정한 형식으로 읽어들인다. ||
|| int fsetpos(FILE *, const fpos_t *) || 해당 스트림의 포인터를 지정한 위치로 옮긴다. ||
|| int fseek(FILE *, long, int) || 해당 스트림의 포인터를 세번째 인자를 기준으로 두번째 인자만큼 옮긴다. SEEK_SET : 스트림 시작, SEEK_CUR : 현재 포인터 위치, SEEK_END : 스트림 끝 ||
|| size_t fwrite(const void *, size_t, size_t, FILE *) || 해당 내용을 두번째 인자의 크기만큼, 세번째 인자의 횟수로 스트림에 기록한다. ||
|| int getchar(void) || 표준 입출력으로 부터 한 글자를 읽어온다. ||
|| char * gets(char *) || 표준 입출력에서 한줄을 입력받는다. 오류가 발생할 경우 NULL을 리턴한다. ||
|| int putc(int, FILE *) || 해당 스트림으로 문자를 출력한다. ||
|| int putchar(int) || 표준 입출력으로 문자를 한개 출력한다. ||
|| int puts(const char *) || 표준 입출력으로 한줄을 출력한다. ||
|| int rename(const char *, const char *) || 첫번째 인자의 파일을 두번째 인자의 이름으로 바꾸어준다. ||
|| void rewind(FILE *) || 해당 스트림의 처음으로 포인터를 이동한다. ||
|| int scanf(const char *, ...) || 표준 입출력에서 해당 형식으로 입력 받는다. ||
|| int sprintf(char *, const char *, ...) || 해당 버퍼에 지정한 형식대로 출력한다. ||
|| int sscanf(const char *, const char *, ...) || 해당 문자열에서 지정된 형식대로 입력받는다. ||
|| FILE * tmpfile(void) || 임시파일을 생성한다. 종료시 자동으로 지워지며, 생성 실패시 NULL을 리턴한다. ||
- RefactoringDiscussion . . . . 42 matches
Refactoring 과 관련된 토론, 질문/답변의 장으로 활용한다.
refactoring 의 전제 조건은, '''Refactoring 전 후의 결과가 같아야 한다.''' 라는 것이다.
if (lastUsage() > 100) {
if (lastUsage() > 200) {
protected int usageInRange(int start, int end) {
if (lastUsage() > start) return Math.min(lastUsage(),end) - start;
else return 0;
(1) 의 코드를 살펴보면 '''로직이 달라짐'''을 알 수 있다. 처음의 코드는 더 작은 값을 원할 뿐인데, 아래의 코드에서는 0 보다 작은 값은 가질 수 없게 되어있다. (예를 들어 lastUsage() 음수값을 지니면 결과가 달라진다)
위의 (1)번 코드는 원래처럼 그대로 두거나, usageInRange(Integer.MIN_VALUE, 100)으로 호출하는게 맞을 듯 하다.
* 코드의 의도가 틀렸느냐에 대한 검증 - 만일 프로그램 내에서의 의도한바가 맞는지에 대한 검증은 UnitTest Code 쪽으로 넘기는게 나을 것 같다고 생각이 드네요. 글의 내용도 결국은 전체 Context 내에서 파악해야 하니까. 의도가 중시된다면 Test Code 는 필수겠죠. (여기서의 '의도'는 각 모듈별 input 에 대한 output 정도로 바꿔서 생각하셔도 좋을듯)
로직이 달라졌을 경우에 대한 검증에 대해서는, Refactoring 전에 Test Code 를 만들것이고, 로직에 따른 수용 여부는 테스트 코드쪽에서 결론이 지어져야 될 것이라는 생각이 듭니다. (아마 의도에 벗어난 코드로 바뀌어져버렸다면 Test Code 에서 검증되겠죠.) 코드 자체만 보고 바로 잘못된 코드라고 단정짓기 보단 전체 프로그램 내에서 의도에 따르는 코드일지를 생각해야 될 것 같다는 생각.
* 예제 코드로 적절했느냐 - 좀 더 쉽게 의도에 맞게 Refactoring 되어진 것이 이 예제 바로 전인 Raise 이긴 하지만. 그리 좋은 예는 아닌듯 하다. usageInRange 로 빼내기 위해 약간 일부러 일반화 공식을 만들었다고 해야 할까요. 그 덕에 코드 자체만으로 뜻을 이해하기가 좀 모호해졌다는 부분에는 동감.
* ["Refactoring"]의 Motivation - Pattern 이건 Refactoring 이건 'Motivation' 부분이 있죠. 즉, 무엇을 의도하여 이러이러하게 코드를 작성했는가입니다. Parameterize Method 의 의도는 'couple of methods that do similar things but vary depending on a few values'에 대한 처리이죠. 즉, 비슷한 일을 하는 메소드들이긴 한데 일부 값들에 영향받는 코드들에 대해서는, 그 영향받게 하는 값들을 parameter 로 넣어주게끔 하고, 같은 일을 하는 부분에 대해선 묶음으로서 중복을 줄이고, 추후 중복이 될 부분들이 적어지도록 하자는 것이겠죠. -- 석천
리팩토링은 코드의 외부적 행동을 바꾸지 않으면서 내부적 구조를 변환하는 것을 말합니다. 여기서 핵심은 "외부적 행동"에 있습니다. 저는 이 "외부적 행동"을 "의미있는/의도하는 외부적 행동"으로 봅니다 -- 어차피 우리에겐 코드 자체가 궁극이 아니고 그 코드가 현실에 드러내는 "시스템"이 궁극이기 때문에.
하지만 이런 논의를 떠나서 도대체 왜 리팩토링을 하는가 생각해볼 필요가 있겠습니다. 우리는 리팩토링을 "리팩토링이라는 것이 옳다 그르다"를 따지기 위해 사용하는 것이 아니고, 우리의 프로그래밍에 도움이 되기 위해 사용합니다.
리팩토링이라는 책을 읽을 때에는 논리적으로 옳거나 틀린 부분을 찾아내려고 노력하는 것보다, 나에게 도움이 되면 취하고 그렇지 않다면 나중을 기약하는 것이 "프로그래머"에게 득이 되는 듯 합니다.
ps. 현실에서 정말 모든 상태 공간/기계가 고대로 유지되는 리팩토링은 없습니다. 가장 대표적인 Extract a Method 조차도 모든 경우에 동일한 행동 유지를 보장할 수는 없습니다. 1+2가 2+1과 같지 않다고 말할 수 있습니다. 하지만 우리에게 의미있는 정도 내에서 충분히 서로 같다고 말할 수도 있습니다 -- 물론 필요에 따라 양자를 구분할 수도 있어야겠지만, 산수 답안 채점시에 1+2, 2+1 중 어느 것에 점수를 줄 지 고민할 필요는 없겠죠.
> 위의 (1)번 코드는 원래처럼 그대로 두거나, usageInRange(Integer.MIN_VALUE, 100)으로
우리에겐 프로그램의 옳음(correctness)이 일차적입니다. 이것은 ["UnitTest"]나 Eiffel 같은 DBC 언어로 상당한 정도까지 보장 가능 합니다.
그 다음에 비로소 리팩토링의 옳음을 따질 여유가 있습니다. 틀린/틀릴 수 있는 프로그램을 "옳게 리팩토링"하면 역시 틀린/틀릴 수 있는 프로그램이 나옵니다.
- 데블스캠프2004/세미나주제 . . . . 42 matches
* 프로그래밍을 위한 기술들
* 프로그램 설계
* 3D 프로그래밍
* 컴퓨터 네트워크 (TCP/IP +네트워킹 프로그래밍)
혹은 확률 통계가 우리 삶과 얼마나 관련이 깊으며 컴퓨터가 확률 통계적 도구로 우리 삶에 얼마나 많은 도움이 될 수 있나
* 자료구조 SeeAlso HowToStudyDataStructureAndAlgorithms, DataStructure StackAndQueue 뒤의 두 페이지들의 용어와 내용이 어울리지 않네요. 아, 일반 용어를 프로젝트로 시작한 페이지의 마지막 모습이군요. )
* Linux (또는 UNIX) 기초. 간단한 커맨드들과 쉘 프로그래밍
* SeeAlso [프로그래밍잔치]와 해당 페이지의 계획 파트와 후기들
* 세미나 하기로 결정하신 강사들은 여기에 적어주세요.
|| 수 || 로 || 재동 ☆ 상규 || 1.5h || 무손실 압축 ||
|| 목 || [STL] || 영동 || 2h || [STL/string]이나 [STL/vector] 등의 1학년도 쓰기 편리한 자료구조 위주로 ||
- [STL]의 경우 사용법을 세미나하는것도 좋지만 GenericProgramming 의 개념과 왜 그러한 패러다임이 나왔는지, 그 배경에 대한 설명도 있으면 좋을 것 같습니다 - [임인택]
정도로 계획을 짜 놓았는데 전부다하기에는 캠프의 첫날이 다 필요합니다. 월요일에 저렇게 예약된게 많으니, 3시간 정도만 해서 Wiki탐험과 ZeroPage역사+OT 정도만 진행할수 있으면 좋겠어요. 흐흐 벌써 [1002]를 섭외(?)해 놓았고, 다른 분들도좀 섭외를 해서 적절한 요일에 만나면 될것 같습니다. :) --NeoCoin
* RevolutionOS 별로 재미없습니다. 다 아는 내용이고, 당시의 장미빛 미래와 지금이 많이 달라진 상황이라, 슬픈 느낌마져 들었습니다. 시청하는데 의의가 있었죠. :) 제 생각은 ZeroPage 역사를 가지고 스냅샷으로 몇장 정도면 어떨까 합니다. 즉석 역할극도 재미있겠네요. 그런데 [1002] 시험은 언제 끝나요? --NeoCoin
* 시험은 수요일날 완료. RevolutionOS는 '예' 로 든것이고. 실제로 04중에는 알 사람도 얼마 없지 않을까 해서. 적당히 컴퓨터쪽 역사의 과거와 미래에의 모습에 대해 보여줄만한 영화, 그리고 재미있는 녀석이면 환영. --[1002]
* 예로서는 좋은데, 직접 보기에는 너무 단조롭더라. 설명 자체도 그리 친절하지 않고, 암튼 그런 좋은 영화 같은거 없나? --NeoCoin
* 정 다 필요하시다면 다 쓰셔도 됩니다. 하지만 저희 둘의 생각으로는 위 주제로 첫날 하루를 모두 하는 건 불필요한 것 같습니다. 이번 데블스 캠프의 대상은 아직 ZP 정회원이 되지 않은 이들입니다. 솔직히 (바라지는 않지만) 이들 중 많은 이들이 나갈텐데 그들을 상대로 ZP 역사나 OT에 많은 시간을 할애하는 건 소용이 없다고 봅니다. 그리고 자칫 시작 첫날부터 따분하게 되기 쉬워보입니다. --재동, 상규
* 지금 Accelerated C++을 보고 있는데 STL에 대해 흥미가 생기네요... 그래서 이거 세미나 계획하고 있습니다. 세미나 방향은 char배열을 대신해서 쓸 수 있는 string이나, 배열 대신 쓸 수 있는 vector식으로 기존의 자료구조보다 편히 쓸 수 있는 자료구조를 설명하려 합니다.-영동
- 영웅은 스스로 만들어지는것이 아니라 시대가 만드는것입니다. 시대의 요구가 있다면야 누군가는 반드시 나타나지 않을까요? -- 장창재
영웅인가요? :) 제가 기억하는 영웅들은 ZeroPage(페이지 하단 기재) 91,92,93 년도에 경진대회로 학교 PC실을 하나 새로 만든 분들 정도 아닐까요? --NeoCoin
- 새싹교실/2011/Pixar/4월 . . . . 42 matches
* 결석한 사람은 보충 받고 싶으면 따로 연락하세요~ 제가 먼저 연락하지는 않습니다 ㅋㅋ - [김수경]
* if else
if((score>=90) && (score<=100))
} else if((score>=80) && (score<90))
} else if((score>=70) && (score<80))
} else if((score>=60) && (score<70))
} else
if((100>=score) && (score>=90)){
else if((90>score) && (score>=80)){
else if((80>score) && (score>=70)){
else if((70>score) && (score>=0)){
else{grade='f';}
* ㅠㅠㅠ별찍기를 배웠습니다. 감자칩은 맛있었습니다. 하지만 별찍기는 어려웠습니다. ㅠㅠ 숙제도 있지만 해올 자신이 없습니다. 1, 2, 3 개 순서대로 찍는거, 5개 다찍는거는 그럭저럭 할만했는데 휴............ 너무어려웠어요. 승열이랑 둘이배워서 진짜 과외같이배웠어요. 사실 C를 빨리빨리 배우고싶어서 매일매일 새싹으로 1달만에 C를 자유자재로 다루고싶어요 누낰ㅋㅋㅋㅋㅋㅋ 진도따위버리고 엄청빨리배우고싶어요 사실 ㅎㅎㅎ 제가 머리가 좀 나빠서 많이 틀리고 늦게늦게 이해했는데 이해해주셔서 감사해요 누낰ㅋㅋㅋ 창설만아니면 더 오래해도 되니까 누나 오래하는거 누나만 안힘드시다면.........ㅋㅋㅋㅋㅋㅋㅋㅋ 빨리빨리배우고싶어요 ㅋㅋㅋ 승열이가 프링글스먹고싶대요 옆에서 저는 절대 아무말 안했습니다 B)
* 오늘은 목요일에 안해서 좀 많이했다! if제어문과 for 제어문에 대해서 배웠다. 별찍기도 배웠다 흑흑 너무어려워요 문제내시면 마추어보고 서로 고쳐보는등 실습위주로 재밌게 수업했다. 많은것을 배울수 있어서 좋았다..ㅋㅋㅋ.. 숙제도 있으니 복습하는겸 열심히 해야겠다. 누나 프링글스 먹구싶어요. ..
감히 창설따위로 새싹을 안오다니
* ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 말투로 추리해라 - [김수경]
1. 조건문, 반복문을 오늘로 마치려고 했는데… if else, for만 가르쳐줘서 한 주 더 해야겠어요~ while은 시간상 못 한 거지만 조건문 Switch case를 깜빡하다니ㅜㅜㅜㅜ
1. 별찍기를 처음엔 혼자 짜보게 했다가 짝으로 함께 짜보도록 했습니다. 코딩에 참여한 새내기들은 어떻게 생각할 지 모르겠는데 관찰하는 제가 보기엔 짝으로 구현하게 하니 혼자 짤 때보다 더 나은 점이 많아보였습니다. ''컴퓨터가 꺼지려고 해서 일단 저장해요ㅜㅜ''
* 와우 짝프로그래밍으로 새싹을 진행하다니 - [서지혜]
if else, swithch, while, for 등 몰라서 답답했던걸 알게되서 너무 좋았어요
- 오목/재니형준원 . . . . 42 matches
#if !defined(AFX_OMOKVIEW_H__95EACAA5_FAEA_4766_A6B3_6C6245050A8B__INCLUDED_)
#if _MSC_VER > 1000
#endif // _MSC_VER > 1000
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
#ifdef _DEBUG
#endif
#ifndef _DEBUG // debug version in OmokView.cpp
#endif
#endif // !defined(AFX_OMOKVIEW_H__95EACAA5_FAEA_4766_A6B3_6C6245050A8B__INCLUDED_)
#ifdef _DEBUG
#endif
END_MESSAGE_MAP()
// TODO: Modify the Window class or styles here by modifying
if(omokBoard[row][col]!=0)
if(omokBoard[row][col]%2==1)
else
void COmokView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
#ifdef _DEBUG
#endif //_DEBUG
if((row>=0 && row<19) && (col>=0 && col<19) && omokBoard[row][col] == 0)
- 이영호/미니프로젝트#1 . . . . 42 matches
소규모 프로젝트를 진행 하려 한다.
예상 라인수는 2000~3000 라인 정도이며 프로젝트를 더 커질수록 라인수의 가변성 또한 존재한다.
// 한가지 웃긴것은 C++로 짜면 C와 동일한 기능을 가졌음에도 라인의 수가 3배 이상 늘어난다는 것이다.
// 그런데 더 웃긴것은 C++에 숙달되면 C보다 0.8배 정도로 시간이 단축된다는 것이다.
// 클래스의 상속성으로 인해 기존의 클래스를 고치지 않아서 인것 같다.
목적 : irc에 접속해 있는 유저들을 자동적으로 공격하는 프로그램. & 차후 AI(망할 엉터리 AI 패러다임) bot이나 타자봇을 집어넣을 예정
방법론 : 프로세스를 여러개 만들어 비교적 프로그램이 쉬워지게 만든다.
1. Client Console에 메세지를 입력하면 IRC Server로 문자열을 전송한다. -> Main Process
2. 서버로부터 메세지 중 PING 부분 처리 -> 1번째 Child Process
(3번에서 Master가 누군지 알아보게 하는 것 -> Private 메세지로 패스워드를 넘겨 IP를 인증 받는 방식.)
main.c -> IRC Server로 메세지를 보내는 역할을 하고 자식 프로세스를 생성한다.
parse.c -> IRC Server로 부터 오는 메세지를 파싱한다.
file.c -> 파일 입출력을 다루는 함수와 메세지들을 Log하는 부분을 담당한다. 일단 프로그램을 어느 정도 만들고 구현하도록한다.
request.c -> IRC Server로 부터 날아오는 PING에 대한 PONG 처리.
// 향후 프로그램이 커지면 네트워크 부분은 따로 모듈을 만들어 낸다.
(2일에 한번씩 컴퓨터를 사용하므로...)
// 구분하지 않은 파일. 이 파일을 각 파일로 나눈다.
// 자동으로 #linux 채널까지 접속 됨.
// 각파일로 나눈 차후 채널로의 privmsg와 process call을 mirc처럼 분리해서 넣어야함.
if(sockfd == -1)
- 큐와 스택/문원명 . . . . 42 matches
여기서 의문점은 string헤더 파일을 include하지 않고 배열을 char *형으로 하고 #1,#2,#3을 strcpy를 사용하여 고치고 실행한 후,
처음에 "empty"로 초기화 하거나 PUSH를 할때, 배열의 모든값이 한개의 값으로 변경된다는 점 입니다...아직도 그 이유를 모르고 있음..
가능하다면, 전체 코드를 올려주세요. 지금 제 생각대로라면, 불가능한 코드를 말씀하시는 것 같아서요. --NeoCoin
밤(10시 이후)에 답변드리겠습니다. 저에게는 상당한 학습의 기회가 될것 같군요. 재미있네요. 일단, 글로 표현하기에 자신이 없거든요. 주변의 사람들을 붙잡고 물어보는 것도 좋은 방법이 될것 같습니다. 그리고, 학교 교제의, call By Value, call By reference 와 Pointer 관련 부분을 읽으시면 좋겠습니다. --NeoCoin
// 각 Pointer들은 의미 없는 값들로 채워져 있습니다.(컴파일러 의존)
// 것으로 보입니다. 경험상 debug 모드에서는 어느정도 수용가능한
// 주소로 초기값이 세팅되어 있었습니다. Release 모드로 바꾸어서 컴파일 해보세요.
cout << "1. PUSH 2. Pop 3. Stack 4. Queue 5. Show 6. Exit" << endl;
if (tail == ASIZE)
cout << "오버 플로우 입니다." << endl;
// 하나의 Pointer입니다. 그 영역에 임의로 문자를 채우는 것이므로
if(status == 4) //큐
array[count] = array[count+1]; // string의 경우와 달리, Pointer 값만 복사됩니다.
// string 이라면, call by value 로 class간
else //스택
strcpy(array[tail], "empty"); // 위의 이유로, 역시 의미없는 영역에 대한 복사 입니다.
// 입니다. 앞서, empty+null 이라는 값을 메모리에 억지로
cout << endl;
cout << " 1부터 6까지의 수를 입력하세요 " << endl;
cin 이 string을 입력 받는 코드는 {{{~cpp C:\Program Files\Microsoft Visual Studio\VC98\Include\istream}}} 에 정의 되어 있습니다. 궁금하시면, Debug 모드로 따라가 보세요.
- AcceleratedC++/Chapter3 . . . . 41 matches
학생들의 성적 관리 프로그램으로 작업을 하면서, 뭔가를 저장하는 방법 등등을 논의할 것이다.
using std::endl;
"follewd by end-of-file: ";
<< setprecision(prec) << endl;
// num을 0으로 초기화해준다.
// 유효숫자는 3자리가 되고, 일반적으로 소숫점 앞의(정수부분의) 2자리, 소수보분의 1자리로 채워지게 된다.
=== 3.1.1 Testing for end of input ===
if (cin >> x)
if(cin)
* bool과 숫자 : 조건문 내에서 0이외의 숫자는 모두 true로 변환, 0은 false로 변환된다.
* bool과 cin : 역시 cin도 조건문 내에서 쓸수 있게 변환된다. 지금은 자세히 알 필요 없다.
* stream으로부터 읽어들이는데 실패할 경우
* 실패했을 경우에는 stream 초기화를 시켜줘야 한다.(4장에서 보자)
* 평균값 대신에 중간값을 사용하는 프로그램으로 변경한다.
// 다음과 같은 코드로 바꿀수 있다.
* typedef : vector<double>::size_type이라고 일일히 쳐주기엔 너무 길기 ㅤㄸㅒㅤ문에 vec_sz로 줄여쓴 것이다.
* 또한 vector의 크기가 0이면 아무것도 안들어있다는 것이므로 중간값의 의미가 없다. 0일때 처리
if(size == 0) {
cout << endl << "you must enter your grades. "
"Please try again." << endl;
- MedusaCppStudy/신애 . . . . 41 matches
using std::endl;
cout << endl;
if (r == 0 || r == rows -1 )
if (c % 2 == 0)
else
else if ( c == 0 || c == cols-1 ) {
else
cout << endl;
using std::endl;
cout << endl;
if (r == 0 || r == rows -1 )
if (c % 2 == 0)
else
else if ( c == 0 || c == cols-1 ) {
else
cout << endl;
using std::endl;
if (r == rows - 1) {
if (c % 2 == 0)
else
- MoniWikiTutorial . . . . 41 matches
== 위키위키의 세계로 초대합니다 ==
* '''쉽고 빠르게''': HTML 문법을 몰라도 누구나 쉽게, 그 결과는 바로바로 웹페이지로
* 계정 만들기: UserPreferences로 가서 사용자 등록을 합니다.
* 사용자 ID: 영문으로 사용자 ID를 만들 경우 보통 소문자 구성된 사용자 ID를 만드는 것이 일반적이지만, 위키위키에서는 FooBar같은 낙타식 사용자 ID를 종종 사용합니다. 한글로 만드셔도 됩니다.
* 이메일주소: 시스템이 이메일을 지원하는 경우에는 자신의 이메일을 등록합니다. 페이지를 구독하거나 비밀번호를 잃어버렸을 때 필요합니다.
* UserPreferences: 사용자 가입/로그인/설정
* [[Icon(diff)]] 페이지가 다른 사람에 의해 고쳐졌을때 그 변화를 보여주는 3차원 입체안경 아이콘입니다.
* [[Icon(pref)]] 환경설정 혹은 로그인을 할 수 있는 폼을 보여줍니다.
한줄의 내용 전체가 같은 개수의 "=" 기호로 둘러쌓여 있는 경우. 이때 "=" 기호와 내용은 공백으로 분리되어 있어야 하며 그 줄은 "="기호의 개수만큼의 깊이를 가지는 제목줄이 됩니다. 예: [[BR]] `== 두번째 레벨 ==`
단락은 빈 줄 하나로 분리됩니다. 빈 줄로 분리되지 않은
단락은 빈 줄 하나로 분리됩니다. 빈 줄로 분리되지 않은
공백을 보존되는 preformat을 사용하고 싶은 경우는 중괄호`{{{{{{ ... }}}}}}`를 사용합니다.: {{{
단락의 구분이 모호할 경우는 "----"를 써서 <hr>을 넣을 수 도 있습니다.
* 첫번째 레벨로
(자동으로 번호가 매겨집니다)
"||"로 시작해서 내용이 "||"로 분리되고 "||"로 끝나면 테이블이 만들어집니다.
* 플러그인은 크게 세가지 플러그인이 있는데, 매크로/액션/프로세서가 있습니다.
* 매크로는 페이지내에 {{{[[GoTo]]}}}와 같은 형식으로 집어넣습니다.
* 매크로는 페이지에 따라 종종 동적으로 변할 수 있습니다. 예를 들어 {{{[[Calendar]]}}}매크로를 사용하면 보이는 달력은 날마다 그 내용이 변할 수 있습니다.
* 주로 사용하는 매크로는
- RandomWalk2/영동 . . . . 41 matches
base[y][x]=1;//시작점은 이미 한 번 왔으므로 1
if(y==0)
else
if(base[y][x]==0)
if(y==0)
else if(x==input_x-1)
else if(y==0 && x==input_x-1){
else{
if(base[y][x]==0)
if(x==input_x-1)
else
if(base[y][x]==0)
if(y==input_y-1)
else if(x==input_x-1)
else if(y==input_y-1 && x==input_x-1){
else{
if(base[y][x]==0)
if(y==input_y-1)
else
if(base[y][x]==0)
- Spring/탐험스터디/2011 . . . . 41 matches
* 1부는 예제를 점진적으로 개선해 나가도록 구성되어 있으므로 각각의 개선이 무엇을 개선시켜나가는 것인지 이해하는 것이 중요
* 세미나가 아니라 각자가 공부한 것을 바탕으로 공유하고 정답을 찾아나가는 스터디
* 스터디 대상이 매우 방대하므로 충분한 개인적인 학습과 과제 수행, 그리고 스터디 모임에서 많은 질문을 할 것
* 인원이 충분하므로 제때 따라오지 않는 사람은 부담없이 버릴수도?!
* 과제: SpringSource Tool Suite에서 Spring MVC Template 프로젝트 생성
* 토익섬으로 간... [강소현]...
1.2 pojo기반의 프로그래밍은 모듈을 조립해서 쓰기 쉽기 떄문에 재사용성이 높아진다. 이 때 조립을 코드부분에 맡기면 조립시 코드를 바꿔야 컴파일이 가능하지만 xml에 조립을 맡기면 설정xml을 바꾸는 것만으로도 쉽게 설정을 바꿔서 조립이 가능하다.
1.3 테스트 가능한 프로그램 : 모듈화가 잘 되어있어야 함(관심사 분리) 모듈을 먼저 만들어서 테스트하고 후에 조립을 한다. TDD 개발시 TDD이전에 테스트 가능한 프로그램을 만들어야 한다.
1.4 TDD : 테스트 주도 개발. 지금 구현하는 것 하나만 테스트해라. 실패하고 바로 성공시켜라 라는 원칙의 개발방법. 1. 무조건 성공시키는 코드 작성. 2. 임시 데이터로 테스트 시 성공하는 코드를 작성. 3. 진짜로 데이터를 넣었을 시 성공하는 코드를 작성. 순으로 구현함.
1.1 RESTful : 이기종간 통신. RESTful 웹서비스는 리소스 URI를 알면 웹서버와 웹클라이언트의 종류에 상관없이 HTTP 프로토콜만으로 접근 가능한 서비스라 할 수 있다. 리소스 하나에 하나의 URL을 할당해놓았다.
1.2. Runtime Injection : 다형성을 만들기 위해서 사용한 방법. 개인적으로 코딩할 때 다형성의 사용이 좀 부족하다고 느꼈는데, Runtime시에 오브젝트간의 관계를 맺게 하지 않고 그냥 클래스에 맞춘 코딩을 했기 때문인 것 같다. 앞으로 코딩을 하는데 머릿속에 넣어두고 자주 써 보는 것이 좋을 것이라 생각된다.
3. MVC 프로젝트
- HomeController.java의 home()에서 Welcome home!을 하고 return "home";을 하는데 프로젝트를 실행해보면 Hello world!가 나온다. 어떻게 된 것인가.
- HomeController는 MVC 모델의 컨트롤러로 뷰에 모델을 바인딩하는 역할을 담당한다. home() 메소드 내부의 Welcome home!은 logger에 찍히는 문자열이기 때문에 실제로 실행시에 보이는 것은 아니다. HomeController가 하는 주된 역할은 return "home";을 함으로써 HomeController를 사용하는 쪽에서 home.jsp(뷰)를 찾을 수 있게 하는 것이다.
- 결국 화면에 나타나는 것은 뷰인 home.jsp이므로 Hello world!는 이쪽에 들어있다.
1.2. MySQL 실행 후 test 테이블 선택. 책의 예제대로 users를 만든다.
1.3. 책의 소스를 그대로 쳤을 경우 Class.forName("com.mysql.jdbc.Driver"); 문장에서 에러가 나는데 인터넷에서 mysql-connector-java-X.X.X.jar 를 받아서 참조 라이브러리에 추가한다.
1.4. Connection c = DriverManager.getConnection(...); 문장에서 에러가 나는데 문자열의 localhost/springbook 부분을 자신이 사용할 테이블의 이름으로 바꾸어 주어야 한다. localhost/test로 바꿔준다. 이후의 문자열 두 개는 각각 자신의 MySQL 계정 이름(기본값 root), MySQL 비밀번호를 적어주면 된다.
2.1. 우선 책에서 외부 라이브러리를 사용하고 있는데, STS에는 필요한 라이브러리가 들어있지 않은 것 같다. 이쪽 페이지(http://www.tutorials4u.net/spring-tutorial/spring_install.html)를 보고 라이브러리를 받아야 한다. 받아서 압축을 풀고 spring-framework-3.0.5.RELEASE/dist 폴더에 있는 jar 파일들을 프로젝트에 포함시켜주면 AnnotationContext, AnnotationConfigApplicationContext, @Configuration, @Bean 등을 사용할 수 있게 된다.
1.1.1. Context : 스프링은 DI 기술을 많이 사용하고 있는데, 스프링에서 객체간의 의존관계 주입을 코드로부터 분리하는 역할을 Context가 담당하고 있다.
- UploadFileMacro . . . . 41 matches
모니위키는 파일 업로드를 위한 3가지의 업로드 폼을 매크로로 지원하고 있다.
{{{[[UploadForm]]}}} 혹은 {{{[[UploadFile(js)]]}}}: 이 매크로는 여러개의 파일을 올릴 수 있는 폼을 자바스크립트를 사용하여 만들어준다.
{{{[[SWFUpload]]}}} 혹은 {{{[[UploadFile(swf)]]}}}: 이 매크로는 모니위키 1.1.3CVS부터 지원하며 다중 파일 업로드를 지원한다. (Flash 10 지원)
모니위키의 {{{[[UploadFile]]}}} 매크로는 업로드 된 파일을 {{{$upload_dir}}}로 정의된 디렉토리에 각 페이지별 디렉토리를 생성시키고, 그 디렉토리에 업로드된 파일을 저장한다.
업로드가 성공하면 업로드된 파일을 다음과 같은 문법으로 연결할 수 있다.
예를 들어, {{{MyPage}}}에 들어가서 {{{MyPage?action=UploadFile}}}을 하거나, MyPage에서 {{{[[UploadFile]]}}} 매크로를 사용하여 파일을 업로드를 하면 $upload_dir='pds';라고 되어있는 경우에 {{{pds/MyPage/}}}가 새롭게 만들어지고 거기에 올린 파일이 저장된다.
== 업로드 제한 ==
config.php의 $pds_allowed라는 변수를 조정하면 업로드가능한 파일을 제한을 걸 수 있다. $pds_allowed의 기본값은 다음과 같을 것이다.
$pds_allowed="png|jpg|jpeg|gif|mp3|zip|tgz|gz|txt|css|exe|hwp|pdf|flv";
아파치 mod_mime의 문제점으로 인해서 안전하지 않은 파일 이름을 점검합니다.
예를 들어 아파치의 mod_mime이 hwp 확장자를 인식하지 못하는데, {{{my.php.hwp}}}와 같은 파일이름을 업로드할 경우, 아파치의 mod_mime모듈은 my.php.hwp를 hwp가 아닌 php파일로 인식하게 됩니다.
$pds_protected를 설정해 놓으면 {{{my.php.hwp}}} 파일 이름이 my.php.txt.hwp로 이름이 바뀌면서 파일이 업로드 됩니다.
$upload_masters=array('Foobar','Babo'); 여기에 등록된 모든 사용자는 파일 확장자와 무관하게 모든 종류의 파일을 업로드 할 수 있습니다.
이 값을 1로 설정하였을 경우, 업로드 할 때의 정보를 이용해서 파일 타입을 판별합니다.
안전한 업로드가 이미 보장 된 경우 사용하실 수 있을 것입니다.
모니위키에서는 모든 업로드 된 파일이 {{{$upload_dir='pds'}}} 하위 디렉토리에 보존된다. 즉 {{{pds/*/}}}에 1단계 하위 디렉토리들이 생성된다. (2단계 이상은 지원하지 않습니다.)
그러나 노스모크 모인모인에서는 {{{pds/*}}} 하위 디렉토리로 모든 파일이 저장된다. 노스모크 모인모인과 호환을 보장하기 위해서 UploadFile액션은 특별히 {{{UploadFile}}}이라는 페이지에서 파일을 업로드하면 {{{pds/UploadFile}}}라는 디렉토리가 만들어지지 않고 pds 아래로 바로 업로드 되게끔 하였다.
pds 바로 밑으로 저장된 pds/* 파일을 연결하려면 {{{attachment:/foobar.png}}} 문법을 쓴다. 즉, "/"를 맨 앞에 붙여준다.
공백이 들어있는 파일을 링크를 걸 경우는 {{{attachment:"hello world.png"}}}와 같이 링크를 걸어 준다.
- VisualBasicClass/2006/Exam1 . . . . 41 matches
1. 비주얼베이직에서 숫자를 표기하는 방법은 10진법, 8진법, 16진법으로 나뉘어진다. 이 중 10진법은 특별한 표기(기호)없이 사용이 가능하다. 하지만 8진법과 16진법은 '?O'와 '?H'로 표기한다. 이때 ?에 들어갈 기호는 무엇인가 (1점).
② ScrollBar는 수평, 수직, 양방향 모드가 있으며, 여러 줄을 사용하는 속성을 설정할 경우, 사용할 수 있다.
③ Text속성은 글자를 입력받는 속성으로 단축메뉴(popup menu)를 사용할 수 있다.
리스트 박스는 여러개의 선택사항을 제공한다. 이 때 리스트 박스 항목 선택은 값이 ? 일때선택 유형이 확장된 다중 선택으로 'Shift + 누름' 또는 'Shift + 화살표 키'를 사용할 수 있다.
4. 비주얼 프로그래밍에 대한 설명으로 가장 거리가 먼 것은?(1점)
① 프로구램의 작동 순서가 완전히 프로그램에 의해서 지시되고 제어된다.
② 사용자에게 제공되는 인터페이스 옵션을 중심으로 설계가 이루어진다.
③ 대표적인 언어로서는 Visual, C+ +, Visual Basic등이 있다.
④ 이벤트 중심의 프로그래밍 방식을 사용한다.
5. 비주얼 베이직의 기본적인 프로그램 작성 과정을 간략하게 나열한 것이다. 올바른 순서를 쓰시오?(1점)
B) 이벤트를 프로시저 작성
C) 프로그램 기획 및 설계
6. 다음은 프로젝트에 새로운 컨드롤을 추가하는 방법을 나열한 것이다 올바른 순서를 쓰시오 ?(1점)
㉡ 컨트롤을 추가할 프로젝트를 연다.
7. a=2, b=3 일 때 다음 조건 중 true인것은?(1점)
① If a^b = b^a
② If Not((a < b) And (a < (b+a)))
③ If ((a=b) And (a*a < B*B)) Or ((b < a) And (2*a < b))
④ If (a*a < b) Or Not(a*a < a)
8. 다음 프로그램의 출력은?(1점)
- Adapter . . . . 40 matches
클래스 인터페이스를 예상되는 다른 인터페이스로의 변환을 한다. '''Adapter'''는 상이한 인터페이스 때문에 다른 달랐던 클래스의 일을 묶는 역할알 한다.
'''Adapter'''는 위에도 의미한 것과 같이 특별한(일반적 접근을 벗어난) object들을 '''client'''들이 고유의 방법('''Targets''')으로 접근하도록 해준다.
Smalltalk에서 ''Design Patterns''의 Adapter 패턴 class버전을 적용 시키지 못한다. class 버전은 다중 상속으로 그 기능을 구현하기 때문이다. [[BR]]
=== A C++/Smalltalk Difference ===
DP의 p147을 보면 '''Adapter'''클래스는 반드시 그것의 '''Adaptee'''를 타입으로 선언해서 가지고 있어야만 한다.이런 경우에는 해당 클래스와 그것에서 상속되는 클래스들만이 기능을 사용(adapt)할수 있다. Smalltalk에서 엄격한 형검사(Strong Typeing) 존재 않으면, class 가 '''Adapter'''에서 '''Adaptee'''로 보내어지는 메세지를 보낼수 있는 이상 '''Adaptee'''가 어떠한 클래스라도 상관없을 것이다. [[BR]]
자 그럼 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사이에 붙인다.
TextShape는 Shape에 translator같은 특별한 일을 위한 기능을 직접 추가한 것으로 Shape의 메세지를 TextView Adaptee가 이해 할수 있는 메세지로 변환 시킨다.:하지만 DrawingEditor가 TextSape에 대한 메세지를 보낼때 TextShape는 다르지만 문법적으로 동일한 메세지를 TextView 인스턴스에게 보낸다. [[BR]]
우리는 Tailored Adapter안에서 메세지를 해석을 위하여 해당 전용 메소드를 만들수 있다. 왜냐하면 디자인 시간에 Adapter와 Adaptee의 프로토콜을 알고 있기 때문이다. The Adapter class는 유일한 상황의 해석을 위해서 만들어 진다. 그리고 각각의 Adapter의 메소드는 Adaptee에 대한 알맞은 메세지들에 대하여 hard-codes(전용 함수 정도의 의미로 생각) 이다
Adapter시나리오의 두번째는 Adaptee의 인터페이를 디자인 시간에 알수 없을 때 이다. Adaptee의 인터페이스를 먼저 알수 없기 때문에 우리는 하나의 인터페이스에서 다른 것으로 메세지를 간단히 해석할수 없다. 이런 경우에는 메세지의 변형과 전달의 일반적 규칙에 맞추어 Pluggable Adapter를 사용한다. Tailored Adapter와 같이 Pluggable Adapter도 해석기를 Client와 Adaptee사이의 해석기를 제공한다. 하지만 각각의 특별한 경우를 위한 새로운 Adapter클래스의 정의를 필요하지 않다. Pluggable Adapter가 쓰이는 경우의 상태를 생각해보자
상호 작용(사용자가 직접 이용하는의미)하는 어플리케이션을 위한 Model-View-Controller(MVC) 패러다임에서 View 객체들(화면상에 표현을 담당하는 widget들) 은 밑바탕에 깔려있는 어플리케이션 모델과 연결되어진다. 그래서 모델안에서의 변화는 유저 인터페이스에 반영하고 인터페이스 상에서 사용자들에 의한 변화는 밑에 위치한 되어지는 모델 데이터(moel data)에 변화를 유도한다.View객제들이 제공되어 있는 상태라서 어떠한 상호 작용하는 어플리케이션 상에서라도 그들은 ㅡ걸 사용할수 있다. 그러므로 그들은 그들의 모델과의 통신을 위해 일반적인 프로코콜을 사용한다;특별한 상황에서 모델로 보내어지는 getter message는 값이고 일반적인 setter message역시 값이다.:예를 들자면 다음 예제는 VisualWorks TextEditorView가 그것의 contects를 얻는 방법이다.
ifTrue: [Text new]
반면에 어플리케이션 모델 오프젝트들은 일반적으로 다양한 모습을 하나의 값에 보다는 가지고 있다. 그것들이 하나의 모습으로 표현되지만, 모델 객체들은 value와 value:에 보다 분야에 알맞는 accessor message를 좀더 많은 의미를 지닌 이름으로 쓰인다. (DeleteMe 수정 필요). 그런데 문제점는 우리가 어떻게 뷰나 뷰의 모델에서 뷰가 모델이 이해할수 없는 메세지를 보내면 잡아내느냐 하는거다. 해결책은 우리는 Pluggable Adapter, 값을 메세지로 변환 시키는 것이라고 제시 할수 있다.-저것(Pluggable Adapter)은 메세지를 값 메세지(value message)를 받을때 그것의 Adaptee로 보내는 것이다. 우리는 value: 상에서도 같은걸 해할수 있다.
자 그럼 여기에 예제를 보자. 우리는 employee관리 application을 가지고 있다고 가정한다.어플리케이션 모델은 하나의 인자인, employee의 사회 보장(비밀) 번호(social security number)의 포함하고 application의 사용자 인터페이스는 employee의 사회 보장 번호를 화면상에 뿌려주는 '입력 박스 뷰'를 포함한다.모델의 엑세스하고 초기화 시키기 위한 메소드는 'socialSecurity'와 'socialSecurity:'로 이름 지어져 있다. 입력 박스는 단지 현재의 사회 보장 번호를 뿌리기만 한지만 모델의 값을 요청하는 방법만을 알고있다.( DeleteMe 수정 필요 ) 그래서 우리는 value mesage를 socialSecurity로 변환 해야 한다.우리는 Pluggable Adapter 객체를 이런 목적을 위해서 사용할수 있다.자 우리의 예제를 위한 interaction 다이어 그램을 보자
이 다이어 그램은 단순화 시킨것이다.;그것은 개념적으로 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부분에서 그것의 정확한 수행 방법을 볼것이다.
- BusSimulation/영동 . . . . 40 matches
* 열심히 할라고 한거 같지만 문제의 의도에서 벗어 났음. 이 문제는 실제 각 이벤트가 일어나면 다른 조건에도 긴밀하게 영향을 주고 받아야 제대로 돌아 간다. 버스가 이동할때와 버스 정류장에 도착할때 다른 데이터들에게 어떠한 영향을 끼치는지에 대해서 생각해 보아야 한다. 즉 각각의 데이터에 영향을 끼치는 이벤트가 어떠한 상황에 발생하는가를 생각해보고 그 상황에서 영향을 끼치는 데이터에 어떠한 방식으로 그 영향을 반영할 것인가도 생각해볼 문제- 상협
#define road 300 //길은 한바퀴 순회하는데 300킬로미터. 즉 5시간 걸린다.
class Bus//시속 60km/h-->분속 1km/m으로 정함.
//일정한 속도로 도로위를 지나다님
if(x_min<=30){
bus_loc=bus_loc+x_min;//분당 1킬로를 가므로 x분 후의 위치는 x킬로 뒤
x_min=0;//0으로 초기화. 다음 계산에 이상한 값이 들어가지 않도록.
if(x_min>30){
if(30<bus_loc&&bus_loc<=60)
else if(60<bus_loc&&bus_loc<=90)
else if(90<bus_loc&&bus_loc<=120)
else if(120<bus_loc&&bus_loc<=150)
else if(150<bus_loc&&bus_loc<=180)
else if(180<bus_loc&&bus_loc<=210)
else if(240<bus_loc&&bus_loc<=270)
else if(270<bus_loc&&bus_loc<=300)
if(bus_loc>road){//300킬로를 돌면 다시 원점으로
if(bus_loc>0){
cout<<a+1<<"번째로 출발한 버스의 위치는 시작점으로부터 "<<bus_loc<<"km"<<endl;
else
- EightQueenProblem2Discussion . . . . 40 matches
당신은 어떤 식으로 이 문제에 접근을 했고, 어떤 사고의 과정을 거쳤으며, 어떤 과정으로 프로그래밍을 했으며, 어떤 디자인 결정을 했습니까? 만약 실패했다면 당신이 했던 것 혹은 하지 않았던 것 중 무엇이 실패의 주요인이었다고 분석을 하십니까?
이번 경험을 통해 배운 것은 무엇입니까? 별로 없습니까? 그러면 다시 한번 생각해 보십시오. 남의 경험을 듣고, 남과 토론해 보십시오. 배운 것도 없는 일에 몇 시간을 투자하는 것은 아까운 일입니다.
처음 문제를 해결할 때, 아무 어려움이나 장애도 없었나요? 지금 뒤돌아볼 때에 자신이 거친 과정 중에 "개선되었으면 하는 부분"이 있나요? 만약 이 문제를 다시 처음부터 새로 풀기 시작한다면 역시 똑같은 방식으로 프로그래밍을 할 것 같습니까(see also EightQueenProblemSecondTry)? 조금 더 깔끔하고 쌈박하게 푸는 방법도 있을까요? 어떻게 처음에 접근했더라면 더 "깨끗한" 코드가 나올 수 있었을까요? 비슷한 문제에 직면했을 때 일반적으로 적용할 수 있는 어떤 "추상적 패러다임" 같은 것을 발견할 수 있을까요? 그 코드를 난생 처음 보는 사람이 있다고 했을 때 몇 분만에 그 코드를 이해시킬 수 있겠습니까? 만약 그 사람 혼자 그 코드를 본다면 쉽게 이해할 수 있을까요? 주석이 없이도요? 혹시 코드 내에 중복되는 정보는 없습니까? 본인의 의도가 모두 분명히 드러나고 있습니까? --김창준
문제를 나름대로 해결한 사람들은 StepwiseRefinement를 꼭 공부해 보세요.
이미 알고리즘 수업 시간을 통해 생각해본 문제이기에 주저없이 백트래킹(BackTracking) 기법을 선택해서 슈도코드를 종이에 작성해보았고 그를 바탕으로 구현에 들어갔습니다.(''그냥 호기심에서 질문 하나. 알고리즘 수업에서 백트래킹을 배웠나요? 최근에는 대부분 AI쪽으로 끄집어 내서 가르치는 것이 추세입니다만... 교재가 무엇이었나요? --김창준 Foundations of Algorithms Using C++ Pseudocode, Second Edition 이었습니다. ISBN:0763706205 --이덕준'') 백트래킹은 BruteForce식 알고리즘으로 확장하기에 용이해서 수정엔 그리 많은 시간이 걸리지 않았습니다. 만일 EightQueenProblem에 대한 사전 지식이 없었다면 두번째 과제에서 무척 당황했을것 같습니다. 이번 기회에 코드의 적응도도 중요함을 새삼 확인했습니다. --이덕준
이문제는 처음 접해본 문제라 먼저 종이에 체스판을 그리고 직접 문제를 풀려고 해보았습니다. 그리고 생각해낸것을 종이에 적고(1여왕은 가로,세로,대각선 같은줄에 있음 안된다. 2,먼저 첫번째 여왕을 놓고 두번째 여왕이 놓일 위치를 결정한다. 3 검사하는 방법은 가로->세로->대각선 순으로 한다. 4 여왕8개가 다놓이면
놓인 자리를 알려주고 끝난다.) 이 적은 것을 토대로 코딩을 하였고 처음 여왕은 0,0에 놓았습니다. 생각한대로 코딩을 했다고 생각하고 실행을 하자 무한루프를 돌았습니다. 전 처음 여왕이 어느 위치에 놓이던간데 거기에 맞는 답이 있는거라고 생각했는데 그것이 잘못되었다고 생각합니다. 처음부터 이 문제의 답을 알고있었다면 프로그램을 짜는데 좀더 간결한 코드를 짤수있었을텐데 란생각이 들어서 코딩을 멈추고 종이를 꺼내 문제를 풀기 시작했습니다. 하지만 답은 나오지않았고 제가푸는방식(여왕을 먼저 아무위치에나 놓고 그위치에 맞게 가로세로대각선에 없는 곳에 놓는다)을 그냥 코딩을 하였습니다. 처음 여왕의 위치를 8*8에 돌아가면서 놓고 검사를 하였습니다. 무식하긴하지만 답은 나왔습니다. 두번째 과제는 처음 코딩할때부터 판의 크기와 여왕의 숫자를 define해서 썻기 떄문에 숫자만 바꾸어 주었습니다. 하지만 답이 맞는지 확신이 서지 않습니다. 그이유는 이문제의 대한 알고리즘을 모르기 때문이라고 생각합니다. 그리고 c++을 썻는데 방학동안 쭉 자바로 플밍하다가 c++을 쓴이유가 비주얼툴의 디버깅을 이용하려는 생각이었는데 무슨문젠지 디버깅을 할수없어서 참 난감했습니다. 디버깅하면 금방알수있는 문제를 눈으로 차근차근 훓으면서 봐야했습니다. --최광식
''기본적으로 이 문제는 알고리즘을 스스로 고안(invent)해 내는 경험이 중요합니다. BackTracking 알고리즘을 전혀 모르는 사람도 이 문제를 풀 수 있습니다. 아니, 어떻게 접근을 해야 BackTracking을 전혀 모르는 사람도 이 문제를 쉽게 풀 수 있을까 우리는 생각해 보아야 합니다.''
저는 뭐 아무것도 없이 문제만 보고 뛰어들었습니다. 일단 두번의 실패 (자세한 내용은 EightQueenProblemDiscussion)이후 세번째로 잡은 생각은 일단 한줄에 한개만 말이 들어간다는 점이었습니다. 그 점에 착안하여. 8*8의 모든 점을 돌게 만들었습니다. 좀 비효율적인데다가 아주 엉망인 소스 덕분에.. 문제는 풀었지만.. 수정/보완에 엄청난 시간이 걸리더군요(종료조건을 찾을수가 없었다는.. 그래서 수정에 30분 이상 걸렸습니다.) 후...... 이래저래 많은 생각을 하게 한 소스였습니다. ㅡ.ㅡ;; 왠지 더 허접해 진 느낌은.. --선호
원래 만들어놓은것이 전체가 표시되는 것이여서 특별히 고친것은 없었습니다. (단, 디버깅문제로 소스수정문제 빼고는..)
하..하하.. BackTracking이.. 뭐죠? 거꾸로.. 추적한다는 이야기같은데.. ㅡㅡa --선호[[BR]][[BR]]
저는 일단 10*10배열을 만들었습니다.(경계선 생각하면 귀찮아지므로..) 그다음에 1~8까지 랜덤한 수를 두번 찾아서 보드의 아무 위치에다 Queen상수를 찍어줍니다. 그리고 그 주변의 8방향을 또 다른 상수 Other로 설정해줍니다. 이제 루프 돌면서 겹치지 않게 골라주면서 Queen으로 설정해주다가 8개가 되면 종료하게.. --인수
저는 문제를 보고 각 줄별로 작업을 해도 되겠지만, 맵에 퀸이 들어갈 수 있는 자리를 정하는 것을 위주로 햇습니다.
처음에는 자리를 잘못정해 실패 했을때 다음 자리로 옮겨가는 방법을 잘못 생각해 1시간 이상 소모했습니다.
어제 서점에서 ''Foundations of Algorithms Using C++ Pseudocode''를 봤습니다. 알고리즘 수업 시간에 백트래킹과 EightQueenProblem 문제를 교재를 통해 공부한 사람에게 이 활동은 소기의 효과가 거의 없겠더군요. 그럴 정도일줄은 정말 몰랐습니다. 대충 "이런 문제가 있다" 정도로만 언급되어 있을 주 알았는데... 어느 교재에도 구체적 "해답"이 나와있지 않을, ICPC(ACM의 세계 대학생 프로그래밍 경진대회) 문제 같은 것으로 할 걸 그랬나 봅니다. --김창준
매번 위키나 블로그나.. 이야기만 들어봤지 실제 사용은 안해봤는데..
- LinkedList/영동 . . . . 40 matches
* 예전에 1학년 때 잘못된 방법으로 짠 것을 이제야 제대로(?) 고쳐서 올립니다. 창피한 역사는 빨리 지워버려야...
if(tempNode->nextNode=='\0')//Exit from do-while loop if value of next node is null
else //Go to the next node if there is next node
displayList(firstAddress);//Display the linked list with modified data
if(tempNode==NULL)
else
if(tempNode->nextNode==NULL)//Exit from do-while loop if value of next node is null
else //Go to the next node if there is next node
if((*argNumberOfElements)>=MAX_OF_LIST)
cout<<"Out of maximum size of memory! Your input will be cancelled."<<endl;
if(tempNode==NULL)
else
if(tempNode->nextNode==NULL)
if((*argNumberOfList)>0 && (*argNumberOfFreeSpace)<MAX_OF_LIST)
if(*argFreeNode==NULL)
{//If free space list is empty
else
{//If free space list has one node at least
else
cout<<"An error occurs in erasing process."<<endl;
- PNGFileFormat/FormatUnitTestInPythonLanguage . . . . 40 matches
if chunkInfo[1] != 'IDAT':
self.assertEqual('IEND', chunkInfo[1])
# PIL과 비교. scanline by scanline 으로 비교해야 한다.
rgbmap.append(scanline)
if __name__=='__main__':
if self.leadingEightBytes == None:
if chunkType == 'IHDR':
if self.data != None:
if chunks[1]!= 'IDAT':
def makeScanline(self, basepixel, ypos, stream, rgbmap): # method 는 PNG filter type, stream은 zlib 으로 decomposite된 값들
if method == 0:
elif method == 1: # sub
elif method == 2:
elif method == 3:
elif method == 4: #paeth
if i > 0 : # 인덱스가 0이 아닐 경우는 옆칸에서 더한다.
scanline.append(RGB(rgbs[0], rgbs[1], rgbs[2]) )
if ypos > 0 : # y가 0 이면 윗칸에서 더할수 없지만 0보다 크면 더해야한다
scanline.append(RGB(rgbs[0], rgbs[1], rgbs[2]) )
if ypos > 0 :
- whiteblue/MyTermProject . . . . 40 matches
if (check == 0 )
cout << "\t◆ 메뉴 ◆" << endl
<< "1) 과목별 입력 결과 리스트 " << endl
<< "2) 과목별 성적순 리스트 " << endl
<< "3) 학생 전과목 입력 결과 리스트 " << endl
<< "4) 학생 전과목 성적순 리스트 " << endl
<< "5) 종료 " << endl << endl
cout << "\t◇과목 선택 메뉴◇" << endl
<< "1) 국어" << endl
<< "2) 영어" << endl
<< "3) 수학" << endl
cout << "이름\t번호\t국어" << endl;
cout << "이름\t번호\t영어" << endl;
cout << "이름\t번호\t수학" << endl;
cout << "이름\t번호\t국어" << endl;
cout << "이름\t번호\t영어" << endl;
cout << "이름\t번호\t수학" << endl;
cout << l[i].name << "\t" << l[i].number << " " << *(n+(i*14)) << endl;
cout << "이름\t번호\t국어\t영어\t수학\t총점\t평균\t등급" << endl;
<< "\t" << m[i].ave << "\t" << m[i].grade << endl;
- 데블스캠프2009/화요일후기 . . . . 40 matches
* 수업별로 이름을 적고 후기를 써주시면 됩니다^^
* '''서민관''' - 자바로 로봇을 움직이는 시간이었는데, 역시 코드를 짜서 그것이 무언가를 하는 것을 볼 수 있다는 것은 꽤나 괜찮은 경험이었습니다. 좀 아쉬웠던 점은 어떤 변수나 함수가 있는지를 확실하게 몰라서 괜찮은 물건은 만들지 못 했다는 점이네요. 그리고 제 탱크가 너무 약했다는 점하고...
* '''강소현''' - 코드를 짠거로 로봇이 움직이는 게 신기했어요. 매 라운드 마다 결과가 조금씩 다른 것도 그렇고. 총알을 피하는 것도 점수에 들어간다면 제가 짯 것도 점수가 높았을 텐데- 하는 아쉬움이 약간 ㅇㅁㅇ?<< 명중률은 거의 제로인데 은근히 회피율이 높더라구요. 그래도 꽤 재미있었어요 ㅋㅋ
* [송지원] - 디폴트 코드와 거의 비슷하게 짰던 환이가 의외로 좋은 성적을 거두어서 뿌듯했지만 페어 프로그래밍에선 전혀 도움이 안됐던게 미안했다. 넷북에서 로보코드가 라이브러리 문제로 컴파일 에러가 나는건 기분이 나빴다.
* '''박준호''' - 로보랩과 먼가 비슷한 느낌이여서 쉽게 다가갔습니다. 하지만 로보랩이 C 로 작업하는것이라면 로보코드는 JAVA 로 작업하는것만 다르다는 그런 생각 이였습니다. 하지만 여러가지 너무 많은 변수들을 생각해야 되서 힘들긴 했지만 로보랩보다 더욱 더 재밌었습니다.
* '''서민관''' - 역시 어려운 느낌이 조금 있었습니다. 기초부터 조금씩 했더라면 조금 더 이해가 쉬웠을텐데. 그래도 사실 정해진 시간 안에 설명도 해야 하고 듣는 대상이 다수였던 만큼 어쩔 수 없는 부분이었다고 생각합니다. 그리고 아쉬웠던 부분은 시간적인 문제로 실습 하나를 빼먹었던 점. 그래도 제가 알기로는 학교에서 API를 따로 가르쳐주지 않는 걸로 아는데, 그런 걸 보면 상당히 의미있던 수업이라고 생각합니다.
* 전 늘 WinAPI가 어렵습니다. 욕이 절로나와요. --유상민09
* '''강소현''' - API가 뭔지, 그걸로 어떠어떠한 프로그램을 만들 수 있는 지 알게된 수업이었어요. 왠지 마지막 피아노...최종귀축 여동생 플랑도르 같은 거도 연주하게 할 수 있지 않을까하는 느낌이 ㅇㅁㅇ(!) 직접 연주하는 프로그램인 거같긴 했지만ㅋㅋ;;
* '''박준호''' - API 라는 어려운 개념이라서 잘 이해는 못했지만 C 로 윈도우창을 만들수 있다는 것이 좀더 C의 개념을 확장 시킨듯 해서 좋았습니다.
* '''서민관''' - 개인적으로 이번 화요일 수업에서 가장 마음에 드는 수업이었습니다. 이런 식으로 시간의 흐름에 따라서 추상화 개념이 발전하는 모습을 보고 있으니 참 대단하다는 생각이 들었습니다. 그리고 반복을 줄이기 위한 방법들(ex - 반복문, 자료형, class) 각각이 무엇을 위해서 만들어졌는지를 알아보는 것으로 평소에 아무 생각 없이 썼던 것을 다시 한 번 생각해 보는 기회가 되었습니다. 그리고 수업을 듣고 나니 추상화를 통해서 긴 프로그램 코드를 각각의 함수로 쪼개는 방법이 왜 중요한지도 조금 더 잘 알겠네요.
* '''박준호''' - 우리가 그저 생각 없이 쓰던 추상화라는 개념을 더욱 잘 이해하고 코드를 더욱 더 효율적으로 짤 수 있게 만들어 주는 시간 이였던 것 같습니다. 다음부터 코드를 짤때는 손으로 먼저 짜기보다는 먼저 생각을 하고 모두 추상화를 해보고 짤 수 있게 만들도록 하도록 다짐 하게 만들었습니다.
* [김준석] - 같은 것을 반복하기 위해 우리는 자주 copy &paste를 사용한다. 단순히 키보드 두번만 누르면 똑같은 것이 한번더 만들어지는 좋은 단축키 이다. 하지만 사실 이 반복되는것을 우리는 단순히 단축키를 누름으로서 만들어지는것은 과거의 저급언어를 사용할때나 만들어지는 반복의 숙달이다. 평소 자주 알고리즘을 연구하자는 말을 들을것이다. 문제를 푸는것 만에는 사실 극히 특별한 알고리즘이 필요없다고 생각한다. 살면서 어떻게든 간단반복으로 대부분은 풀수 있을테니까. 알고리즘을 연구하는것은 우리가 사용하는 컴퓨터의 부담을 줄이기 위해 만들며 이는 단순 반복되는 계산과정을 줄여줘 자원의 낭비를 줄여준다. 이렇듯 컴퓨터의 반복은 줄이면서 직접 키보드를 치며 반복하고있는 나의 자원소비량은 어떤가? 나는 왜 반복을 하고 있는가? 이 긴 코드를 줄일수 있는 방법은 정녕 없는것인가?라는 컴퓨터 알고리즘을 생각하듯 나를 위한 알고리즘을 생각을 해보았나? 대부분의 문서를 한장으로 줄여서 요약할수 있다는것을 가르쳐주는 One Page Proposal이라는 책에서는 "온갖 미사여구를 넣어 50page나 100page가 넘어가는 문서는 문서를 받은 사람의 책상에서 쌓이고 쌓여 결국에는 보여지지도 못하고 세절기에 들어가 버린다. 정말 자신이 있다면 알짜배기만 모아서 1Page로 보기 좋게 만들어라." 맞는 말이다. 아무리 길게 만든 프로그램이라도 20줄도 안되는 프로그램과 성능이 똑같다면 당연히 보기도 좋고 관리하기도 좋은 20줄 프로그램을 쓰겠지.이 20줄 프로그램을 쉽게 만들기위해 사람은 자신이 편리하게 개발과 연구를 했다. 그렇게 편리하도록 발달하는 과정. 그 생각을 잘보여준 세미나였다고 생각한다. 과연 네이버에서 자동완성됬던 Kesarr.
- 비행기게임 . . . . 40 matches
* 오늘 11시에 모이기로 했는뎅.. 아무도 안왔당. ㅠㅜ 재동이는 좀 늦는다고 했고, 인수는 왜 안오는 거징.. 아...역시 팀 프로젝트는 어렵당.. ㅠㅜ - 상협
* 충돌 처리 제대로 하기.. (ㅠㅜ)
* 미사일 발사할때 몇개가 연속으로 나가는거 해결하기
* 횡 스크롤 비행기 게임 => 종 스크롤로 변경
* 그리고 비행기 게임을 하면 보통 자기 비행기 하나 빼고 나머지는 다 적군이서 막 생각없이 미사일 버튼만 누루면서 갈기는데 그것 보다 아예 적기가 나오면서 동시에 아군 비행기도 적당히 등장해서 자신을 돕게 한다. 아군 비행기는 자신의 미사일에도 격추된다. 더 신중하게 미사일을 누루게 될것이다. 그리고 아군 비행기를 격추할시에는 일정한 벌칙이 있다. 무기가 한단계 안좋아 진다든지 하는 식으로.
* 적기를 막 쏘기 보다는 적기의 특정한 부분을 맞추면 적기가 더 잘 부서지게 한다. 예를 들어서 다른 부분에 맞으면 적기가 2번 만에 죽는데, 왼쪽 날개 끝에 맞으면 단번에 죽는 식으로..
* 땅따먹기 + 비행기... 음.. 구체적으로는 안 떠오른다.
* 초고속으로 익힌다.
* 아이템을 실제적으로 게임에 넣는다.
* 게임 만드는 것은 내 취향이 아닌거 같다. ㅠㅜ, 이번 비행기 게임 프로젝트를 통해서 뼈저리게 느꼈다. 뭐 그래픽 넣을때도 포토샵 단색으로 그리고, 또 세세한 부분 신경 쓰는걸 잘 못하겠다. 아마다 덜렁대는 성격때문인거 같다. 오목 만들때는 재밌었는데 비행기겜 만드는건 그것 만큼은 아니다. 쩝.. - 상협
* 절망이다. ㅡㅡ;; 마음만 급해가지고서는.. 허둥대고 있당... 말만 하고 실제로는 한것이 없는거 같당.. 제대로 공부를 안해서 그런지 이것저것 잘 안되는 부분이 많당.. 결과적으로 보면..쩝..
게임 그래픽 부분이 만만치 않긴 하지.. 흐흐. 스프라이트 그리는 사람이 고충이 생각보다 많음. 안티 엘리어싱 부분의 경우 투명색이 제대로 처리가 되지 않기 때문에 도트노가다를 해주어야 하거든. 나의 경우 포토샵으로 일단 트루컬러로 그린뒤 그것을 256 indexed color 로 바꾸고 투명색 하나 넣어서 도트노가다 해주는 식이거나, 또는 아에 3D 툴로 그리던지. (3D 툴로 모델링하고 렌더링시에 웬만한 툴들은 alpha channel 을 따로 저장하거든. 그래서 3D 툴로 만든건 안티 엘리어싱 문제를 그리 의식하지 않음.) 또는 아에 엔진 자체가 3D이고 스프라이트들이 3D 이던지지만 이건 논의 대상 밖이겠군; 해성이의 경우는 원래 도트 노가다에 일가견이 있기에 뭐 전부 그려주긴 했고;
그리고 몇몇 캐릭터들에 대해서 스프라이트 사이즈에 대한 문제들도 있긴 하지만, 뭐 이건 논의 제외하기로 하고.
암튼. 초반의 열정이 후반의 끈기로 이어지려면, 해당 일에 대한 좋은 방법들을 중간에 계속 궁리하고, 적용해봐야겠지. 개인적인 조언이라면, 초반에 너무 그래픽 등에 많이 신경쓰지 않는것이 낫다고 생각함. 일단은 전반적인 틀과 게임 엔진을 만든다는 기분으로 하고, 그 엔진이 자신이 원하는 아이디어를 수용할 수 있는가에 더 촛점을 맞추는게 낫지 않을까 함. 단, 생각은 전반적인 부분을 보되, 구현을 쉽게 하기 위해서는 구체적 예제 데이터를 가지고 작업하는것이 효율적이겠지. 그리고 그 예제 데이터를 기반으로 일종의 SpikeSolution식으로 구현을 한뒤, 그 구현된 프로그램을 보고 다시 코드를 작성하던지 또는 ["Refactoring"] 해서 일반화시키던지.(새로 짜도 얼마 시간 안걸림. 예상컨대, 아마 중반에 소스 한번 뒤집어주고 싶은 욕구가 날껄? 흐흐) --["1002"]
한가지 더 개인적인 조언을 추가한다면, 일단 지금 생각나는 '앞으로 해야 할일들' 을 좌악 정리하길. 그 다음 그 일들에 순위를 매겨서 일들을 해 나가는거지. 그러다가 중간에 '예상치 못했던, 하지만 해야 할 일들' 을 만나면, 앞에서 적은 그 리스트에 항목을 추가해주고 그 일을 하는거지. '내가 해야 할 일들이 너무 많아' 라고 생각될 때 추천하고싶은 방법임. --["1002"]
* 8월 17일: 아무도 안 왔다. 전화도 안 받는다. 지금 뭐 장난 하는건지. 지금까지는 열 안 받으려고 무진장 노력했다. 근데 이제는 뭐 열받을것도 없이 그냥 나도 프로젝트 안하던지 소스 다 날려 버리던지 해야겠다. -상협
* 프로젝트 그만 둘거면 확실히 말해주길 바란다. 괜히 어정쩡하게 해서 프로젝트 진행만 못하게 하지 말고.
개인적으로 '형은 뭐 먼저 했어요?' 라고 질문한다라면, '나는 DirectX 7.0 의 Space donut 소스 분석한뒤 만들었지만, 꼭 DX를 볼 필요는 없다' 라고 말해주고 싶군.
일단은 작은 아이디어를 하나 정한다음 (그 뭐다냐.. 총알 피하기 폐인 게임같은거) 완성시킨뒤, 프로그램을 키워가는 것도 좋을듯. --["1002"]
["프로젝트분류"]
- 제로Wiki . . . . 40 matches
= 프로젝트 재개 =
* 제로페이지 위키 서비스 개시와 함께 다시 재개
* 현재 PHP로 진행되고 있음.
* Ctrl + G -> / 로 이동
* 게이트웨이 서버에 추가 서버를 등록만 시키면 유기적으로 다른 서버들과 연결이 된다.(마치 하나의 컴퓨터 처럼 보인다), 각 개인 위키 혹은 카페 위키를 생성할때에 자신의 원하는 서버를 지정하면 그곳에 그 위키가 생성된다. 그 위키에 대한 페이지 데이터들은 모두 그 서버에 저장이 된다. 사용자의 입장에서 보았을때에는 하나의 웹사이트처럼 보인다.
* 개략적 설명 : 각 페이지는 자신의 뇌의 일부분으로 생각 할 수 있다. 각 페이지는 다른 페이지들과 종속 및 포함 관계를 가질 수 있다.(페이지 링크를 통해서 가능함) 그리고 이 페이지를 다른 여러 사람들과 공유할 수 있다. 기존 위키 처럼 하나의 커뮤니티에서의 공유가 아니라 다양한 커뮤니티 사이트들이 서로 서로 페이지를 공유 할 수 있게 되고, 그 공유 페이지가 업데이트 되었을 경우 현재 공유중인 모든 커뮤니티에 그것이 반영된다.(수정된글 목록에 떠서 사람들에게 환기 시킨다)
* 하는 방법 : 예를 들어서 제로페이지 카페에 자신의 위키에 있는 페이지를 올리고 싶을 경우 먼저 제로페이지 카페에서 화면 오른쪽 상단의 가입하기 버튼을 눌러서 가입한후, 올리기를 원하는 페이지를 고칠때 카페 선택을 제로페이지로 하고 나서 저장하면 그후로 계속 공유 관계가 유지된다.
* 자신이 어떤 카페에서든지 새로 만든 페이지는 자신의 개인 위키에 그글이 자동으로 등록 된다. 그글에 대한 반응을 자신의 위키에서 볼 수 있고, 자신이 어떤 카페에 글을 썼는지 기억 못하는 문제도 해결해 준다.
* 자신이 페이지 만드는 데에 참여하고 싶은 페이지는 그 페이지가 있는 카페에 가서 그 페이지를 저장할때 카페에 자신의 개인위키를 지정함으로써 자신의 개인 위키에 그 페이지를 등록 시킨다. 그러면 그 페이지와 자신의 개인 위키가 공유 관계를 가지게 한다.(공유 관계 : 공유 중인 페이지가 업데이트(수정) 될 경우 공유 관계에 있는 모든 위키에 그것이 반영된다.)
* 예를 들어서 여러 명이서 특정 책을 중심으로 스터디를 진행할때 스터디 페이지를 각 개인 위키와 공유 페이지로 지정하여 사용할 수 있다.
* 이메일 및 쪽지로 사용할수도 있음.
* 개념 : 페이지의 성격에 따라서 특정 분류로 나눈다. 기존의 카테고리와 같은 개념 아니냐고 생각할수 있다. 아래 활용을 보시라..
* 동문카페 : 동문 카페라고 하면 각 학번별로 아주 많은 사람들이 글을 쓰게 된다. 자신이 모르는 학번 사람들이 태반일 것이다. 자신이 아는 학번도 있을테고. 그런데 이것을 자신과 상관 있는 학번만 분류어로 지정해 놓으면 나중에 바뀐글을 볼때 그 설정 분류어로 된 페이지들의 바뀐글만 보게 된다.
* 프로그래밍 카페 : 규모가 커질 경우 너무 다양한 주제 대한 글들이 올라 올 수 있다. 이때 자신이 관심 있는 언어를 분류어로 설정하여 그 언어에 대한 글들만 볼 수 있다.
* 저렇게 할 필요 없이 각 분류어별로 게시판을 만들면 되지 않냐고 생각할 수 도 있다. 하지만!!! 그렇게 각각의 분류 별로 게시판을 만들경우 그 게시판의 글들을 확인 하기 위해서 각각의 게시판에 들어 가야 한다. 그리고 군대 전우 카페 같은 경우 각 회원마다 군생활 시기가 겹치는 사람도 있고 겹치지 않는 사람도 있는등 각 회원에 따른 맞춤식 정보 제공이 필요하다. 이럴때 분류어 기능이 유용하다.
* 현재는 다른 위키 엔진으로 만들어진 위키들의 바뀐글들을 볼 수 있다.
* 같은 제로 위키 내의 다른 카페의 바뀐글도 오른쪽 같은 문법으로 본다. (이런 식의 문법으로[refer 카페url])
* 소스 코드를 각 언어별로 그에 맞게 보여준다. 아래와 같은 식으로..
* 문서 수정 창에서 비공개 라디오 버튼을 클릭하면 문서를 생성한 사람만이 볼수 있다. 바뀐글에도 그 페이지는 보이지 않게 된다. 단 그 주인이 로그인 하였을때만 보인다.
- 1thPCinCAUCSE/null전략 . . . . 39 matches
null 팀의 경우 B 문제 하나를 풀었고 (1시간 5분 정도 소요. 패널티 없음), A 번 문제를 계속 시도하던중 시간초과.
["1002"]가 5분 지각을 했습니다.; 암튼, 35분에 시작을 했고, 일단 5분의 시간을 두고 ["neocoin"] 과 ["1002"] 는 문제들을 읽어나가기 시작했습니다. 한글 문서였기 때문에 3개의 문제를 훑는데에도 5분이면 충분하더군요. ["neocoin"] 은 B번을, ["1002"] 는 A번을 일단 읽고, C 번에 대해서는 같이 읽었습니다. 그리고 미리 문제출제자쪽에서 난이도를 C > A > B 임을 언급했습니다. 문제를 읽어나가면서도 일단 B의 경우가 바로 계산이 나올 것 같아서 B 를 먼저 해결하기로 선택했습니다. 그 다음에는 문제에 대한 이해도가 상대적으로 높았던 A번을 해결하기로 했습니다.
도구는 연습장과 인덱스 카드, assert 문을 이용한 테스트 케이스 등을 이용했습니다. 연습장과 인덱스 카드는 주로 개개인 수식과 중요 변수들을 적기 위해, 또는 그림을 그리기 위해 이용했고 (두 도구의 용도가 구분되어있진 않았음) 문제에 대해서 답이 나왔다하는 가정하에 (문제지에 Sample Input->Output 이 나와있었기에 가능했습니다.) Backward 로 문제가 해결된 상황을 가정하고, 그러기 위해 필요한 변수들을 찾아나가는 방법으로 진행했습니다. 프로그래밍 스타일은 Structured 스타일의 Stepwise Refinement & PBI & assert 를 이용한 TDD 를 사용했습니다.
한 20분정도 잘못진행했었는데, 첫번째는 ["1002"] 가 B 번문제를 제대로 이해하지 못했고 (앞부분만 읽고, 문제의 input-output 을 거꾸로 판단), 두번째는 input 이 100 일때의 output 예상치를 잘못계산한 상태에서 이를 근거로 Test Driven 을 시도해서 추후 발견뒤 테스트를 수정하는동안 시간을 낭비했습니다.
Sample 로 제공한 데이터들을 만족시키는 코드는 작성하였으나, 여전히 변수들이 다 뽑아져지지 않아서, 임의의 결과데이터 (100인 경우) 에 대해 예상되는 결과를 생각하고 코드를 작성한뒤, 코드와 결과들, 코드로부터 발견되는 변수들을 토대로 연습장에 기록을 했고, 그러던중 ["neocoin"] 이 일반화 공식을 찾아내었습니다.
A 번 진행중 아쉬웠던점은, 만일 이 문제를 바로 풀기전에 OO 패러다임으로 해결할 것인가 Structured 패러다임으로 해결할 것인가에 대해 먼저 생각하는 여유를 가졌더라면 문제 해결이 더 쉽지 않았을까 하는 점이였습니다.
문제에 대해 역시 B 번을 진행하던 스타일대로 Structured 로 진행했는데, 초반에 너무 코드위주로 각 변수들을 뽑아내려고 접근한 것이 문제가 되었던 것 같습니다. 여유를 두고 페이퍼 프로그래밍을 했어도. 바늘들에 대해서 OO 로 접근했으면 좀 더 쉽지 않았을까 생각.
지난번 IPSC 경험때는 맨땅에 해딩하는 느낌이였는데, 이번에는 비록 입상하지 못했지만, 각각의 과정들이 의식적으로 일어난 점에 대해서 개인적으로는 즐거웠고 명쾌했습니다. 급조되어 2주만에 만난 Pair 치고 손발이 잘 맞았습니다. (이건 방학 두달동안 ["ProjectPrometheus"] 때 하도 서로 싸워대어서. -_-;)
미리 예제문제로 제시된 5문제중 어려웠었던 뒤의 3문제들을 각자 풀어보고 훈련했었다면 실전에서도 더 여유있고 의식적인 작업을 할 수 있었으리라 생각하며. 그리고, 초반에 바로 TDD 로 나가는 것보다, 문제에 대한 여러 접근방법을 둔 뒤, 하나를 고르고 그에 대해 TDD 로 나가는 것이 더 좋았을 것이라고 생각. (TDD를 바로 문제 Approach 기법으로 적용하는것 보단, 해당 문제 접근방법에 대해 빨리 필요한 변수들을 발견해나가고, 명확하게 해주는데 더 효과가 크다는 생각이 들어서)
문제를 풀때 우스개로 이야기했던것이 '수학자의 접근이냐 공학자의 접근이냐'(페르마의 마지막정리 책에 나왔던 예. 즉, 연역/귀납). 이런문제인 경우 문제 풀기전 '어느쪽 접근이 더 유용할까' 궁리를.; 개인적으론 연역이 약해서 후자를..; --["1002"]
문제를 푸는 동안, 굉장히 여유롭다는 느낌이 들었습니다. 적당히 달려나간다고 할까요. 위에 언급된 2가지의 실수가 없었다면, A를 넘어 C번도 노려 봄직한 느낌이 듭니다. 이런 것들이 연습으로 체화되는 것이겠지요. 다음 ipsc를 즐겁게 기다려 봅니다.
시간 지연된 이유는, 성급한 방법론의 선택과 '''믿는 것을 가장 의심하라''' 라는 디버깅 원칙을 시간에 쫓겨서 생각을 하지 못한점으로 생각합니다.
마지막으로, 2주만에 만난 팀의 전략을 쓴다니, 약간 사기죠 ^^; --["neocoin"]
- NeoCoin/Server . . . . 39 matches
/etc/syslog.conf : System 의 로그들이 어디에 남는가 기록되어 있는 파일
/etc/sysconfig/network-scripts/ifcfg-eth0 : 네트웍 카드별 설정
/etc/motd : 사용자 로그인후에 나오는 메세지
한달에 한번씩 아파치 로그를 점검하자
dmesg 부팅시 로그
* X설치시, nvidia 그래픽 카드에서는 {{{~cpp dpkg-reconfigure xserver-xfree86}}} 으로 fram buffer 를 비활성화 시켜야 했다. 여기에서 dpkg로 정의된 세팅이 정의된 페키지도 있다는 것을 알았다.
* 결국 설치의 모든것을 dselect, apt를 쓰거나, dpkg로 패키징 해서 설치해야 한다. 즉, 서버 설치이후에 python이든 다른 app든 전부 툴을 이용해야 한다는 결론
* 이제, apache, mysql, python, JBoss, Java 정도가 남은것 같다. 현재 메니저를 Sawfish+Gnome로 변경해야 겠다. 아무래도 손에 익은걸 써야지.
* ReiserFS 로 변경도 해야 하고 전원 자동 종료 문제도 해결해야 한다.
jvm설정에서 dummy를 설정하고, jdk는 따로 sun에서 받아 오거나, http://blackdown.org 를 이용한다.
* 파일시스템을 reiserfs로 모두 바꾸기 http://debianusers.org/stories.php?story=01/03/01/9830027
그럼 이 명령으로 해보세요...
새로운 ext3 파일 시스템 생성
ext2 -> ext3 로 변환
menuconfig로 커널 설정하려면 libncurses5-dev 패키지도 설치한다. xconfig로
컴파일 후에 지우기 쉽게 /tmp 에 풀어내는 것이다. 참고로 데비안은 프로그램
5. 커널 버전에 문자열을 덧붙이려면 APPEND_TO_VERSION 환경변수를 쓴다.
export APPEND_TO_VERSION=-jfs-crypto
6. 커널 소스 디렉토리로 이동한 다음 "make-kpkg clean"을 실행하여
.config 파일로 복사한다.
- PythonNetworkProgramming . . . . 39 matches
Python 에서는 기본적으로 Socket Library 를 제공해준다. 그리고 async i/o 모듈인 medusa 가 이제는 기본으로 제공된다.
sock.send("TEST")
if not data:
else:
def_msg = "==Enter message to send to server=="
if not data:
else:
if(UDPSock.sendto(data,addr)):
print "Sending message '",data,"'..."
clientConnection.send("hahaharn")
if __name__=="__main__":
또는, 기본 모듈로 있는 SocketServer 모듈을 사용할 수 있다. 다음은 간단한 예제.
conn.send (msg)
if conn:
ClientList.append (peername)
ClientConnections.append (conn)
if cmd == 'ls':
if __name__ == '__main__':
Medusa 는 내부적으로 select / poll 를 이용, 비동기 소켓부분을 구현한다. 소켓 이벤트들 처리에 대한 인터페이스가 아주 깔끔. 참 마음에 든다.
MFC 의 CSocket 를 사용하는 스타일로 프로그래밍을 할 수 있는데, Python 이기에 코드가 더 깔끔. 그리고 Windows/Linux 양쪽 다 가능.
- VendingMachine/세연/재동 . . . . 39 matches
== 나름대로 고쳐본 소스 ==
class VendingMachine
VendingMachine();
VendingMachine::VendingMachine()
void VendingMachine::insertMoney()
if(isMoney(tempInsertMoney))
else
void VendingMachine::buyDrink()
if(isSelectableDrink(selectBuyDrink))
if(isBuyableDrink(selectBuyDrink))
else
void VendingMachine::takeBackMoney()
void VendingMachine::insertDrink()
if(isSelectableDrink(selectInsertDrink))
void VendingMachine::showMainMenu()
void VendingMachine::showDrinkMenu()
bool VendingMachine::isMoney(int arg)
if(arg == 10 || arg == 50 || arg == 100 || arg == 500 || arg == 1000)
else
bool VendingMachine::isBuyableDrink(int arg)
- 만년달력/강희경,Leonardong . . . . 39 matches
if ( !year || !month )
if ( year <= 0 || year >INT_MAX || month <=0 || month>12)
cout << "잘못 입력하셨습니다." << endl;
if (year%400 != 0)
//삽질(?) year%400 대신 year을 쓰면 에러...스택 오버플로우?
//400년주기로 달력이 같으므로 year%400로 해서 해결.
else
cout << "====================================================" << endl
<< "일\t월\t화\t수\t목\t금\t토" << endl;
if ( date > 6 ){ //토요일을 넘어가면
cout << endl; //다음줄로 가고
date=0; //요일을 일요일으로
cout << endl << "====================================================" << endl;
if ( month == 0 ){
else if ( year == 1 && month == 1)
이번달이 무슨 요일에서 시작하는지 알 수 있다. 예를 들어 1년 2월 같은 경우
1년 1월이 31일이고 월요일부터 시작하므로 (31 + 1) % 7 == 4 로
if ( year%4 == 0)
if ( year%400 == 0 )
if ( year%4000 == 0 )
- 보드카페 관리 프로그램/강석우 . . . . 39 matches
if (command == "exit")
if (command =="in")
else if(command =="play")
else if(command =="out")
else if(command =="buy")
else
cout << e.what() << endl;
if(tables[i] == bg.table)
if (vec[i].table == bg.table)
else
if (bg.person > 0 && bg.person < 5)
<<vec[i].minute << endl;
else
else if (i == 2 && tables[i] != bg.table)
if(vec[i].table == bg.table)
if (games[j] == bg.game)
if (vec[i-1].game == vec[i].game)
else
cout << vec[i].table << " " << bg.game << " " << "play" << endl;
else if (j == 2 && games[j] != bg.game)
- 영호의바이러스공부페이지 . . . . 39 matches
If you are an anti-virus pussy, who is just scared that your hard disk will
002...........................How to modify viruses to avoid SCAN
what our good friend Patti Hoffman (bitch) has written about it.
be infected. Files are infected only if their original length is
infection occurred. Infected files will also always end with this
^like she'd know the difference!
s endp
jc loc_6 ;no files found? then quit
je loc_3 ;same? then find another file
jae loc_3 ;if more or equal find another file
jc loc_5 ;error? then quit
sub_1 endp
seg_a ends
end start
in the directory. If no files are found the program exits. If a file is
first two bytes of the COM file. If they match the program terminates.
If they don't match the virus will infect the file. Using two key MS-DOS
CX = most significant half to offset
If there is an error in executing this function the carry flag will be set,
and AX will contian the error code. If no error is encountered
- 정모/2002.5.30 . . . . 39 matches
* 페어는 저절로 된다.
''두 사람을 한 컴퓨터 앞에 같이 앉혀놨다고 해서 PP가 되지는 않습니다. 그렇다고 PP에 규칙이나 방법이 따로 정해져 있는 것은 아닙니다. 두 사람이 같이 앉아있으면서 그 팀이, 그리고 두 사람 모두가 어떤 가치를 얻고 있다면 저는 PP라고 부르겠습니다. 그런데, 이렇게 되기까지에는 훈련이 필요하고, 또 언제나 개선하고 공부할 여지가 있습니다. 결국 PP도 "어떻게 타인과 잘 대화하고 잘 협력할 것인가"의 연장이니까요. 직접 일주일 동안 페어를 해보고, 남이 페어하는 것을 하루 정도 구경해 보면 아주 많은 것을 배울 겁니다. 설령 결론이 "페어는 저절로 된다"일지라도 말이죠. 프로그래밍을 40년도 넘게 한 사람이 좋다고 말하면 그것이 무엇이건 간에 최소 한 달 정도는 실험해 보자는 것이 제 원칙이자 그 분에 대한 예우입니다. 한 달 정도야 그 분의 수십년간의 피땀에 비하면 조족지혈이겠지만... --JuNe''
* ==> 결론 : 기존에 했던데로.(페어는 저절로 진행되어서)
* 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 을 하는 경우가 어떤 차이가 있을지 생각을 해보고 이러한 '페어가 저절로 진행되어서' 라고 결론을 내렸으면 합니다.
문제를 내 주고 난 다음에 선배들과 이야기하면서 프로그래밍을 하는 경우, Programming 의 주도자는 문제의 당사자인 후배가 됩니다. 하지만, 문제를 풀어나가는 순서 (즉, 문제를 받고, 컴퓨터 앞에 앉았을때부터의 작업 진행과정들)는 여전히 후배들의 순서를 따르게 됩니다.
하지만, 스스로 문제를 먼저 해결해보도록 하는 것은 초반에 확실히 장점이 되리라 생각합니다. 자기 스스로 문제자체를 인식하고 느끼지 못한 상태에서는 어떠한 '인상적인 대단한 내용' 도 일반 흘러가는 TV채널과 다를 바가 없게 된다고 생각.
초반 3일정도는 스스로의 방법으로 (주어진 플랫폼(?)에서 한계에 다다를 정도까지라고 할까요.) 해결해보도록 한 뒤, 그 이후쯤에 선배들과의 PairProgramming을 해보는 (위의 처럼, 문제 해결방법 순서까지 보여주는.) 것은 어떨까 하는 생각을 해봅니다. 위에 열거한 저러한 것들도 자신이 원하지 않으면, 또는 자신이 민감하지 않으면 관찰자체를 하지 않는 것들이니까요. --1002
''일단 자신이 가진 비효율적/비체계적 방법으로 좀 고생을 해보고나서, 선배의 방법(문제에 대한 답이 아니고, 메쏘돌로지)으로 그 변화를 직접 느껴보고 자신이 받아들일지 말지 선택하는 것은 참 좋은 방법입니다. NoSmok:동의에의한교육 이라고 할까요. --JuNe''
- 정모/2007.4.3 . . . . 39 matches
=== 4/3 제로페이지 정모 ===
* 프로젝트 상황
- Toeic : 감독(원희) , 2학년 위주로 곳 시작
& 네트워크 프로젝트 요정이 들어 왔습니다.
- 세미나 홍보 : 회장이 임의로 정합니다.
시험기간에도 빌릴수 있습니다.(강의실을 모두 개방하는 것이 아니므로)
- 서로의 정보를 공유하면 1+1은 2이상의 효과를 낼수있다고 합니다. 따라
- 분과장이 자신의 분과에 가입된 사람들에게 어떠어떠한 프로젝트를 시작할 예정
- 장점 : 한 분과에서 중점적으로 한가지 프로젝트를 진행하므로 프로젝트가 끝에
- 의견 : @ 과연 취지는 좋지만 과연 프로젝트 개설이 많지 않은 현 상황에서 분과
프로젝트 관리가 어떨까요?
- 의견2 : 현재 진행하고 있는 프로젝트와의 차별화가 없다고 생각됩니다.
- 의견3 : 분과제도를 채택하면 프로젝트 하는사람 모의기도 편리하고 더 효율적으
로 프로젝트 참여가 가능해 지지 않을까요?
- 새로운 학회원 소개 : 02학번 김동준 => 소흘했던 공부를 마저 열심히 하기 위해
* 07들에게 제로페이지 존속감을 갖게 하고 선배들과 잘 어울릴수 있는 자리마련은?
람은 나중가면 나오지 않을 것이므로 궂이 얼굴을 알 필요가 없지 않을까??
- 07학번들을 현 제로페이지 프로젝트에 참여시키는 것은 어떨까? => 가능은 하지
만 07학번들이 과연 현제 제로페이지 프로젝트에 참여할 정도의실력이 될것인가?? => 07학
번 스스로 위키를 통해서 스터디 그룹을 형성하면 좋겠지만 과연 07들이 그렇게 할까?
- 제12회 한국자바개발자 컨퍼런스 후기/유상민의후기 . . . . 39 matches
* http://vizend.tistory.com
듣다 보면 피곤하다. 1시간 제약인데 말이 느리고 동일 리듬으로 반복된다.
* 많은 방법론과 경험을 통해 정립했다고는 하지만.. 글쎄.. 10년전에 소프트웨어 공학 책 그대로 읽는것과 별 차이를 못느끼겠다. 액션에 대한 부분의 용어 설명이 필요한 부분이 너무 많은 것 같다. 절차가 너무 많다. 이걸로 중소기업이나 소기업을 실행하게 만드는건 무리가 있다고 느낀다.
* 나는 듣는 내내 발표자 본인이 확신을 가지지 못한다고도 느낀다. 짧은 시간에 너무 많은 내용을 읽어줘버려서 발생하는 문제로 생각한다. 그래도 이렇게 많은 정보를 이야기 하려면, 눈을 반짝이면서 신나게 해야 동조 할까말까 한데.. 너무 방어적으로 남 이야기 하는거 같았다.
대답을 통해서, 학교에서 소프트웨어 공학 수업들었을때와 비슷한 느낌을 받을 수 있었다. 요구 분석 절차를 위해서 300페이지 짜리 문서를 보면서 5분단위로 쪼개진 프로세스를 지키면서 하라는 소리는 하지말라는 의미와 별반 차이 없을 것 같다. 중간에 청중에게 질문한게
'여기에서 가장 중요한 역할이 누구인거 같아요? 바로 보조자 입니다. '
보조자라는 표현은 잘못이라고 생각한다. 이 사람이 주제하는 사람에게 회의가 어느 단계로 가고 있는지 알려주고 회의 내역을 기록한다고 하였다. 이건 진행자 롤인데? 왜 보조자가하지? 보조자는 '기록자'에 가까운건데? 상상에 아마 컨설팅했던 본인의 롤이 보조자가 아니었나 싶다. 워크샵 주체인 팀장 옆에서 진행 가이드하고 내용을 본인이 기록한건 아닌가 싶다. 이러면 당연히 '보조자'라는 모호한 용어의 롤이 제일 중요하지.
하지만, 과거 교수가 가르쳤을때 소프트웨어의 규모가 '매우 컸을때'라는 전가의 보도로 이렇게 많은 액션들이 필요하다고 이야기 할수 있을것 같은데, 저렇게 자세하고 많은 절차를 제시하고 놓고 워크샵 참여 인원과 숫자는 몇명 수준이고, 이 많은 절차를 2일간에 하라는건 좀 이상하다.
소프트웨어 진흥원에서 이런식으로 가이드를 한다는 부분이 충격이었다. 컨설팅 후 참여 인원이 지속하기 너무 어렵지 않을까 싶다. 본인이 정립했으므로, 시중에 참고할 만한 관련 서적은 당연히 없고 용어 정의 부터 모호하다. 인상 깊은건 중간에 발표자와 프로그래머의 '행복'에 대한 언급을 많이 하는데.. 난 이거 듣고 많이 우울해 졌다.
* 지금 귀찮아서 memcached 제거 안하고 기본 세팅 쓰고 있는데, 듣고나니 큐로쓰고 있는 redis를 캐시로도 쓰고 싶어진다.
* 캐시가 안되서 망한거 많이 봤다는 표현을 썼는데.. 그런거 본적없다. 사례가 있으면 좋겠다. 그냥 개념적으로 생각해도, 이 부분은 납득하기 어렵다. 국내 트래픽이면 그냥 돈써서 장비 업하면(스케일 업) 쉽게 해결된다. 뭐, 만약 사례가 네이버 만화라면 이해가 간다.
* memcached 와 mysql 벤치 마크중에서 mysql query hit을 99% 수준으로 놓고 테스트 해봤냐?
* 위의 disk vs mem 하면 차이가 큰게 당연한데 아주 큰 차이가 있을 테스트를 왜 보여주는지 이해가 안갔다. 더불어 하지 않았다는 것은 위의 벤치마크가 쿼리 히트율이 떨어진다는 의미인데... in memory db 로 벤치마크를 하면 모를까.. 그냥 스트레스 테스트 결과로 보강했으면 좋겠다.
네트웍으로 인한 변화
큰 의미 없는 내용들 나열시작, 피쳐폰과 WAP 이야기에 10분을 쓰고 있는 중이다. 발표자가 시간 배분 못한다는 느낌을 시작하고 5분만에 받을 수 있었다. 아마 후반에는 Android, iOS, Widow Mobile, Tizen 이 있다로 끝날 것 같다.
* 단기 지원으로는 답없다.
* 교통도 괜찮고 동일 환경인데 인천에 있는 아이들조차 서울로 간다.
* 옥상훈 : 이렇게 크게 하는 것 보다는, 먼저 작게 시작해야 한다. 앞서 이야기 했지만 지역 기반의 지속적이고 작은 스터디 모임을 시작하는게 좋다. JCO 처음 시작할때 100~200명 수준으로 아주 작게 시작했다.
* 글자에 표현안되지만, 기자는 다소 도발적인 질문이고 기분 나쁠 수 있게 따지듯이 물었다. 그런데 정말 놀랍게도 답변자는 질문의 관점을 바꾸어서 부드럽게 대답하였다. 정말 대단하다. 큰 인상을 받았다. 3자로서 듣는 입장은 정말 대단히 좋은 답변이었다. 그런데 기자는 만족못한 표정이었다.
* 열린게 중요한거 같다. 방금 업체측에서 말씀하셨는데, 그런 부분이 이해가 부족한 부분인거 같다. 열어야 한다(openness). 예를들어, 블로그 같은것으로 회사의 문화 같은걸 알린다던지 하는 행동이 출발점이 될 수 있을 것 같다.
- 졸업논문/본론 . . . . 39 matches
관계형 데이터베이스는 관계형 모델에 따라 논리적으로 연관이 있는 데이터를 모아놓은 것이다. 관계란 n-tuple이 한 줄 씩 배열된 것으로, 줄이 배열된 순서는 관계없고, 모든 줄은 구별할 수 있어야 한다.[11] 데이터베이스 관리 시스템(DBMS)는 데이터베이스를 구성, 변경, 조회하는 프로그램을 모아 놓은 것이다.[12] 현재까지 관계형 DBMS가 많이 쓰이고 있는데, 이는 관계를 테이블로 나타내고 키를 이용해 정보를 연결하는 특징을 가진다.[11] SQL은 관계형 데이터베이스의 데이터를 생성,조회,변경하는 언어로 ANSI/ISO표준이다.[13] SQL을 이용하면 데이터베이스 테이블 생성에서부터 데이터 추가, 삭제, 변경, 조회는 물론이고 여러 건에 대한 트랜잭션처리까지 가능하다.
웹 애플리케이션 개발자가 가장 많이 쓰는 기능은 SQL을 이용하여 데이터베이스 내용을 삽입, 삭제, 수정, 조회하는 것이다. 그 중에도 데이터를 조회하는 SQL문은 다양한 구조를 가진다. 기본 구조는 select from 이다. 여기서 from절에 테이블이 여러 번 나오는 경우 조인 연산을 수행한다. 조인 연산은 다른 테이블 또는 같은 테이블끼리 가능하다. select from where문을 사용하면 where절에 있는 조건을 만족하는 데이터만 조회한다. aggregate function을 사용하면 원하는 결과를 좀더 쉽게 얻을 수 있다. 이에는 개수(count), 합계(sum), 최소(min), 최대(max), 평균(avg)이 있다. aggregate function에 group by문을 사용하면 그룹 단위로 결과를 얻는다. group by절에는 having을 이용해 조건을 제한할 수 있다. 또한 순서를 지정하는 order by문과 집합 연산인 union, intersect, except 등이 있다. where절 이하에 다시 SQL문이 나타나는 경우를 중첩질의라고 한다. 중첩 질의를 사용할 때는 특별히 (not) exist, (not) unique와 같은 구문을 사용할 수 있다.
Django는 오픈 소스 프로젝트로 code.djangoproject.com/browser/django 에서 전체 소스코드를 확인할 수 있다. 문서에 따르면 django 데이터베이스 API는 "SQL문을 효율적으로 사용하고, 필요할 때는 알아서 join연산을 수행하는 강력한 구문을 가졌으며, 사용자가 필요할 경우 직접 SQL문을 작성할 수 있도록 지원"[5]한다. 추상화된 구문을 사용하더라도 데이터는 관계형 데이터베이스에 저장하게 되는데, MS SQL, MySQL, Oracle, PostgreSQL, SQLite3와 같은 DBMS를 사용할 수 있다.
Django는 도메인 언어인 python의 영향을 많이 받는다. Python은 "동적인 객체지향"[10] 언어로 많은 소프트웨어르 만드는 데 사용할 수 있으며, django와 같이 소프트웨어를 만드는 프레임워크로도 널리 쓰인다. 이미 NASA에서 python을 사용하고 있으며, Google에서는 python을 java와 더불어 주류언어로 사용하고 있다. Django가 데이터베이스를 추상화하고, 개발 도중에 변경 사항을 자동화하여 처리할 수 있는 까닭도 python에 있다.
Django의 설계 철학은 한 마디로 DRY(Don't Repeat Yourself)이다. 확연히 구분할 수있는 데이터는 분리하고, 그렇지 않은 경우 중복을 줄이고 일반화한다. 데이터 뿐 아니라 개발에 있어서도 웹 프로그래밍 전반부와 후반부를 두 번 작업하지 않는다. 즉 웹 애플리케이션 개발자는 SQL을 사용하는 방식이 도메인 언어에 제공하는 프레임워크에 숨어 보이지 않기 때문에 프로그램을 동적으로 쉽게 바뀔 수록 빠르게 개발할 수 있다. 또한 후반부 데이터 모델이 바뀌면 프레임워크에서 전반부에 사용자에게 보이는 부분을 자동으로 바꾸어준다. 이러한 설계 철학을 바탕으로 기민하게 웹 애플리케이션을 개발할 수 있다.
= Django로 구현해본 안전관리시스템 =
[django/ModifyingObject]
기본적으로 지원 되는 레코드 삽입, 삭제, 변경은 자동으로 사용자 화면까지 만들어주는 장점을 가진다. 대부분 웹 애플리케이션이 레코드를 한 건씩 입력하는 인터페이스를 가지기 때문에, 개발 전반부에 걸친 데이터 삽입, 삭제, 변경을 자동화할수 있기 때문이다. 특히 삽입, 변경은 저장이란 단일 개념으로 보고 save메소드로 추상화하였다. 또한 삭제는 관련된 레코드를 함께 지워주는 기능까지 제공한다. 이러한 기능은 Model클래스에 정의된 데이터 타입에 따라 자동으로 이루어진다. 따라서 삽입, 삭제, 변경 SQL문을 실행하는 인터페이스에 많은 노력을 기울이지 않고 기민하게 전체 시스템을 설계함에 집중할 수 있다.
레코드를 검색할 때는 기본적으로 간단한 질의를 처리할 수 있는 함수들을 제공한다. 앞서 살펴본 바와 같이 직접 관계를 가지는 테이블 사이에 조인 연산은 Model클래스의 메소드를 이용해서 추상화되어 있다. 하지만 그 밖인 경우에는 직접 SQL문을 작성하여 데이터를 얻어와야 하기 때문에 django를 사용하더라도 큰 이점이 없다. 또한 추상화된 Model클래스의 메소드는 기본적으로 모든 레코드 속성을 읽어오기 때문에 시간, 공간 측면에서 비효율적일 수 있다. 마지막으로 SQL의 aggregate function등을 대부분 추상화하지 않았기 때문에, 이 역시 SQL문을 작성해야 하는 번거로움이 있다.
다행히 django에서는 CLI와 마찬가지로 직접 SQL문장을 수행할 수 있는 인터페이스를 제공한다. 또한 도메인 언어인 python을 이용하면 CLI를 이용해 데이터베이스와 연동할 수도 있다. 종합적으로 기능적으로 지원이 불가능한 면은 없지만, 검색 측면에서 좀더 많은 추상화가 필요하다고 평가할 수 있다.
- 지금그때2004/여섯색깔모자20040331 . . . . 39 matches
글로는 그때의 느낌을 남기기 어렵지만, 일단 기억을 회상할 수 있는 연결고리를 만든다는 의미에서 적어놓습니다. --[1002]
초록 : 새로운 아이디어.
- 검정 : 사회자의 비중이 크므로 중요하다 본다.
- 검정 : 시의성으로 볼때 중요한가. 사회자의 경우 그렇지 않아고 본다
하양 : 강의실 홍보 1회로 1학년 전체 대상 홍보 대비 5명
하양 : 총엠티 자봉단 참여로 몰려서 현재 사람들 참여 저조. 시간이 미루어지면 참여자가 늘어날 듯.
파랑 : 총 참여 인원으로 몇명을 원하는지에 대한 녹색의견 받음.
파랑 : 사람 수는 변하기 쉽다. 숫자 자체가 중요한건 아니라고 본다. 이를 좀 더 편하게 표현하려면.. 퍼센트로 표현해보자.
파랑 : 새내기를 50%로 보고 앞에서의 새내기를 20-30으로 봤을때, 비율로 보면 다음과 같겠다.
녹색 보충 : 위에서 99이하를 4명으로 말한것은 졸업선배의 수를 포함하며, 확실히 올 수 있는 사람 기준으로 4명이라 이야기했다. 실제로 오기 원하는 수치는 그 2배~3배이다.
녹색 & 검정 : 어디까지나 예상인원이므로, 그냥 이정도 선에서 이야기를 마쳐도 좋을것 같다. 홍보이후 재측정한뒤 상황을 보는것이 좋겠다.
하양 : 작년 기준으로 볼때 홍보 횟수대비 신청자는 linear(비례)하게 증가하였다.
하양 : 신청자 대비 실제로 오는 사람은 달랐다. 20명이 신청했다면 16명이 오는 식이다.
- 검정 & 하양 : 나의 경우 친구따라 왔다. 실제보다 더 늘어나는 경우도 있지 않은가?
- 검정 & 하양 : 나의 경우 신청하고 가지 않은 경우에 해당된다.
파랑 : 이에 대해서는 실제로 홍보 가능한 횟수를 생각하는것이 좋겠다.
앞으로의 홍보 기회에 대하여
목 7,8,9 : A - 세환,재선,휘동. B - 자겸,민수,수민 (이전에 했었던 반들 기준으로 바꿔서)
파랑 : 여기서 더 논의되어야 할 사항으로는?
파랑 : 가위바위보 승자로 하자. 혹은 지원자가 있다면 자동승리자가 된다.
- 3D프로그래밍시작하기 . . . . 38 matches
라그나로크로 유명한 그라비티사의 김학규 사장님이 쓴 글입니다. (한 4년전 쯤에여.)
좋은것 같아서 펴왔습니다. 제 멋대로 시차에 따른 주석을 달아 보겠음다. -HS
3D Programming 을 시작하는 사람은 상당히 막막한 상태에서 시작하게 되기 마련인데, 실질적으로 거치면 좋을 것이라고 생각되는 몇가지 스텝을 적어 보았습니다
=== 2. 모델링 프로그램 연습 약간 ===
3차원 프로그래밍을 하려면 최소한 맥스(3d studio max)의 기본정도 (화면에 박스 배치하고 연결해서 움직이기등) 는 알아두는 것이 필수입니다.
retained는 정점지정시에 속도가 떨어지고.. immediate는 어렵지만 여러방식으로 지정이 가능하고.. 빠르고.. 그랬던거 같습니당.. 요즘엔 direct graphics라 해서 인터페이스가 바꼈는데.. 어떻게 됬는지 몰겠네용..
http://cg.cs.tu-berlin.de/~ki/engines.html 에 보면 여러가지 공개, 상용 엔진들의 리스트가 정리되어 있습니다. 아마 3D 프로그래밍하는 사람치고 이 페이지에 안가본 사람은 별로 없을것입니다만, 노파심에서..
["Direct3D"] 같은데에 봐도 예제로 들어있는 벡터나 행렬관련 루틴들이 있는데 곱하는 방식이 좀 골때리게 되어있어서 아마 크나큰 혼동을 가져올 확률이 높습니다. 3D 를 배우는 목적이 단지 화면에 사각형 몇개 돌리는 것이 아니라 게임이나 에디터를 만들기 위해서라면 벡터나 행렬 연산 라이브러리정도는 자기가 직접 만든 것으로 쓰고 DirectX 는 하드웨어 초기화나 모드세팅 처리랑 삼각형 그리는 부분 (DrawPrimitive) 만 쓰는 것이 좋을 것입니다.
수학관련 라이브러리가 어느정도 모습을 갖추었으면, 이제 최초로 뭔가 돌아가는 것을 만들어 볼때입니다.. 일단은 최소한의 초기화와 실행 절차를 갖춘 프로그램을 만들어 놓도록 합니다. 화면에 무언가를 그리는 함수 같은 것은 쉽게 바꿔치기 할 수 있도록 해 놓는 것이 좋을 것입니다. 이런 뼈대 라이브러리의 형태에 대해 참조하실려면 OpenGL 관련 라이브러리중 하나인 glut 를 참조하심이 좋을 듯..
이 단계까지는 화면에 그리는 내용이 직접 노가다 코딩으로 그릴 수 있는 간단한 큐브정도로 한정되어 있을 것입니다. 뭔가 좀 더 폼나는 것을 그리려면 맥스같은 외부툴에서 데이타를 가져와야 합니다
일단 맛뵈기만 하려면 ASC 포맷을, 좀 더 제대로 된 데이타를 가져오려면 ASE 포맷을 읽는 부분을 만들어야 할 것입니다.
이 시점에서 여러가지 해결해야 할 사항이 생기는데, 첫째로는 파일 포맷에 대해서 정확히 이해하고, 각 항목이 어떤 역할을 하는 것인지를 알아야 하겠으며, 둘째로는 비교적 여러단계로 복잡하게 구성되어 있는 3D Scene Data 를 효율적으로 정렬하기 위한 자료구조를 내 프로그램에 심는 것입니다. STL 같은 라이브러리를 능숙하게 사용할 수 있다면 많은 도움이 될 것입니다. 가급적이면 계층적으로 구성된 모델을 읽을 수 있도록 해야 나중에 애니메이션도 해보고 할 수 있겠죠. 세째로는 기본 이상의 가속기에 대한 조작을 할 수 있도록 d3d_renderstate 들에 대해서 알아두는 것입니다. 최소한 바이리니어 필터링을 켜고 끄고, 텍스춰 매핑을 켜고 끄고, 알파블렌딩, 등등을 맘먹은대로 조합해볼 수 있어야겠죠
(몇가지 설명을 빼먹은 것이 있군요. 각종 좌표계 (모델좌표계, 월드좌표계, 카메라 좌표계, 스크린 좌표계) 들간의 변환에 대한 의미와 프로젝션에 대한 이해, 그리고 그에 따라 최소한의 벡터와 행렬 연산만으로 화면상에 그림이 그려질 수 있도록 하는 그래픽스 파이프라인의 설계가 필요하죠)
그래도 옛날보다는 훨씬 일이 쉬운 것이, 화면에 텍스춰매핑된 삼각형을 그려주는 부분인 Rasterization 관련 부분은 가속기가 모두 알아서 처리해 주기 때문이죠. 옛날에는 어떻게 하면 어셈블리로 최적화를 해서 화면에 그림을 빨리 찍느냐를 궁리하느라 사람들이 시간을 많이 보냈지만.. 요즘은 그런 일에 별로 신경을 쓰지 않고 다른 쪽.. (물리학이나 자료구조 최적화) 에
일단 엔진이 완성되고 나면 그 이후에는 자신의 필요에 따라서 할 일이 달라지겠지만, 최소한 3차원상에 마우스로 물체를 배치하는 에디터정도는 꼭 만들어보시기 바랍니다. 어느정도 기능을 갖춘 에디터까지 자기손으로 만들어보고 나면 어느정도 이젠 뭐라도 만들 수 있다는 자신감이 생길겁니다..
* asc 포멧이라 함은 구석기 시대..에 쓰던 맥스의 포멧인데요.. --ㅋ 맥스에서 디자이너가 모델링을 하면 그 결과를 스크립트로.. 그러니까 텍스트 파일로 바꾼.. 포멧이라 합니다.
* ase 는 좀더 나중에 나온 거구요.. asc처럼 텍스트로 뽑는건데 더 많은 정보를 제공해줍니다.
* 이것들 이외에도 모델링 데이타를 가져오기 위한 포멧이 여럿 있습니다. x나 3ds등도 쓰입니다. 3ds의 경우 버텍스 모핑 키값을 쓸수 있다 하는데 실효성은 의문입니다. 그리고 그넘은 binary로 되있어서 읽을때 조금 더손이 갈 듯합니다.
* 파일 포멧에 관한 자료는 나우누리 게제동에 심심강좌.. 인가.. 거기하구 책으로는 3d file format이라는 책이 있는데.. addison wesley 에서 나온건가.. --; 있습니다. 여러군대에서 찾으실수 있을듯 합니다.
* 최근에는 rasterinzing (transform, lighiting 이 끝나고 난후 화면 주사선에 맞추어서 찍어주는 부분.. 일꺼에여)이외에 trasform과 lighiting도 가속기로 처리할 수 있다고 합니다.
- ACM_ICPC/2013년스터디 . . . . 38 matches
* 각자 문제를 풀어오고 설명, 설명들은 문제는 다음 시간까지 개인적으로 풀어올 것.(Dovelet 사용)
* graph, dfs - [http://211.228.163.31/30stair/danji/danji.php?pname=danji 단지 번호 붙이기], [http://211.228.163.31/30stair/orders/orders.php?pname=orders orders], [http://211.228.163.31/30stair/bugslife/bugslife.php?pname=bugslife 짝 짓기], [http://211.228.163.31/30stair/sprime/sprime.php?pname=sprime 슈퍼 소수], [http://211.228.163.31/30stair/snail_trails/snail_trails.php?pname=snail_trails 달팽이]
* 개강 이후에는 매주 수요일 6시에 스터디 시작하기로 결정, 격주로 토요일에도 만나기로 함.
* C번은 예상대로 쉽게 푸는 방법이 있었음
if abs(x) > abs(y):
if x > 0:
else:
else:
if y > 0:
else:
* Shortest Path : DAG(directed acyclic graphs)로 바꾼 후 Source에서부터 dist(v) = min{dist(v) + l(u,v)}사용
* Longest increasing subsequence : DAG로 바꾼다.(increasing하는 곳에만 edge생성됨) 이후 가장 많이 방문하도록 L(j) = 1+ max{L(i) : (i,j)}수행
* 최대 path의 길이를 구한 후에 뒤로 돌아가면서 숫자가 줄어드는 녀석들을 스택에 담으면 path도 구할 수 있다.
* 풀이 - 삼차원 테이블을 사용한 DP문제, d(bar,unit,width)는 bar번째의 bar를 사용하면서, unit의 위치에 그 bar의 폭이 width일 때의 경우이다. 따라서 가능한 모든 바코드의 수를 구하는 것은 d(bar,unit,0 ~ width)를 전부 더해주면 된다.
- 설명하면 1110110 이라는 것이 있을 때, 1110110이 오기 전에는 110으로 시작하는 모든 바코드가 있을 것이고, 그 이전에는 10으로 시작하는 모든 바코드가 있을 것이다. 그리고 1110110이라는 바코드가 오기 전에는 111000으로 시작하는 모든 바코드가 있을 것이고, 그 이전에는 11100으로 시작하는 모든 바코드가 있을 것이다. dp테이블에 해당 경우에 대한 경우의 수를 모두 저장해놨기 때문에, 앞에서 부터 차례대로 이전에 올 바코드의 수를 더해나가면 index를 구할 수 있다.
* 풀면서 주의할 점 : dp테이블의 범위에 벗어나는 경우(예를 들어서 음수 번지)가 나올 수 있으므로 이에 대한 처리를 해줘야 한다. 비쥬얼 스튜디오에서 코드를 작성할 때, 테이블 범위에 벗어나도 정답이 나오는 경우가 생겨서 이런 예외를 발견하기 힘들었음..
* [http://www.algospot.com/judge/problem/read/WEEKLYCALENDAR Weekly Calendar]
* 제2회 대학생프로그래밍 대회 동아리 연합 [http://algospot.com/judge/problem/list/?source=제%202회%20전국%20대학생%20프로그래밍%20대회%20동아리%20연합%20대회 링크]
if Ax1 < Bx1
if Bx1 > Ax2 && By1 > Ay2
- Basic알고리즘/빨간눈스님 . . . . 38 matches
{{| 옛날에 어느 나라에 승려들만 모여 사는 섬이 있다. 그들 중에서 어느 사람은 눈이 빨갛고 어느 사람은 눈이 갈색이다. 눈이 빨간 사람은 마법에 걸려 있기 때문에 스스로 눈이 빨갛다는 사실을 깨닫게 되면 그 날 밤 12시에 그 나라를 떠나서 사라져야만 한다. (무조건) 승려들은 서로의 눈 색깔에 대해 전혀 언급하지 안는다는 불문율이 있었기에 상대방의 눈 색깔을 알려줄 수도 없었따. 그 섬에는 거울도 없고, 거울 비슷한 물건도 없었기 때문에 자신의 눈이 무슨 색인지 아는 사람은 아무도 없었다. 그래서 그들은 자신의 눈 색깔을 알 길이 없었기에 행복하게 살아갈 수 있었으며, 그 나라를 떠나는 사람도 아무도 없었다. 그러던 어느날, 그 섬에 관광객이 찾아왔다. 그는 승려들 사이에 존재하는 규칙을 알지 못했기 때문에 절대로 하지 말아야 할 말을 내뱉고 말았다.
"당신들 중에서 적어도 한명은 눈이 빨간색이로군요"
무심한 관광객은 그 날로 돌아갔지만, 남아 있는 승려들은 생전 처음으로 눈 색깔에 대한 말이 나왔기 때문에 크게 동요하지 않을 수 없었다. 그리고 그 날 밤부터 그 섬에는 무서운 일이 일어나기 시작했다. 과연 어떤일이 일어났겠는가? |}}
프로그래밍에서 알고리즘을 찾는 것과 유사하다고 저자는 말하고 있는데요, 알고리즘을 찾아봅시다 ㅋㅋ!! - [허아영]
상당히 좋은 문제입니다. 이 문제를 컴퓨터를 도구로 사용해서 해결을 하는 훈련을 하면 상당한 사고훈련이 될 것입니다. 적극 권합니다. 스스로 이 문제의 답을 알고 있다고 생각하는 사람도 직접 프로그래밍을 해보거나 하시면 많은 것을 느끼고 깨닫게 될 것입니다. --JuNe
* 상협 의견 - 3가지 경우
* 관광객이 거짓말한 경우 (눈이 빨간 스님이 아무도 없는경우) : 이 경우에는 모든 스님들이 섬을 떠나게 된다. 왜냐면 모든 스님들은 자신의 눈을 제외한 다른 사람들의 눈 색밖에 볼 수없는데 만약 다른 모든 사람들의 눈 색이 갈색이라면 자신의 눈 색이 빨간 색이므로 섬을 떠나야 한다고 생각하게 된다. 빨간색의 눈을 가진 스님이 아무도 없기 때문에 모든 스님이 이렇게 생각하게 된다.
* 눈이 빨간 스님이 한분 있는 경우 : 이때 자신의 눈이 빨간 스님은 다른 모든 사람들의 눈이 갈색인것을 보고 자신의 눈이 빨갛다는 것을 알수 있고 섬을 떠나게 된다. 그리고 남은 스님들은 빨간 눈의 스님이 한분 떠난 것을 보게 된다. 그리고 각자 자신이 보는 다른 모든 스님들의 눈 색은 갈색인데, 적어도 한명은 눈이 빨간색이라고 했기 때문에 자신이 볼때 남은 스님들의 눈이 모두 갈색이더라도 자신이 100% 빨간 눈이라고 할수 없기 때문에 떠나는 스님은 없게 된다.
* 눈이 빨간 스님이 여러명 있는 경우 : 이때는 자신의 눈이 빨갛더라도 다른 빨간 눈의 스님이 있는 것을 볼 수 있기 때문에 자신이 100% 빨간 눈이라고 확신할 수 없다. 떠나는 스님이 없게 된다.
* 현태 의견 - 2가지 경우
* 눈이 빨간 스님이 2분 이상일때 - 최소한 한명의 눈이 빨간 사람을 보게 되므로 자신이 눈이 빨갛다는 것을 확신할 수 없기 때문에 아무도 떠나지 않는다.
* 전체적으로 상협형의 의견과 유사합니다.^^ 글을 읽고 밑을 봤는데 형이 이미 의견을 올리셨네요.^^ 다른 경우가 관광객이 거짓말을 한 경우인데.. 저의 경우는 관광객이 거짓말을 할 이유가 없다고 생각해서..^^;;;; 다름 섬에 갔을때 괜시리 '당신중에 한명 이상은 눈이 빨갛네요.'라고 할 이유는 없지 않을까요.^^
너의 이론이 맞는지 직접 프로그래밍해서 실험해 보면 어떨까. --JuNe
(관광객이 한 말이 참말이라는 전제로 문제를 풉니다.)
먼저, 관광객이 한 말인 "당신들 중에서 적어도 한명은 눈이 빨간색이로군요" 를 분석 해 보면, 빨간색의 눈을 가진 사람이 적어도 1명, 즉 1명 이상이라는 것을 알 수 있다.
그러므로 빨간눈을 가진 스님이 아무도 없다는 것을 전제로 하지 않는다.
* 빨간눈을 가진 스님이 한 명일 경우, 빨간색 눈을 가진 스님의 시각에서 빨간눈을 가진 스님이 아무도 없다. 그럴경우 자신이 빨간눈을 가지고 있다고 알게되고, 그 날 밤 그 스님은 그 섬을 떠나게 된다.
* 빨간눈을 가진 스님이 두 명일 경우, 빨간색 눈을 가진 두 스님들은 각자 자신들의 시각에 한사람의 빨간눈 스님이 보일 테므로, 그 날 밤 그 다른 스님이 섬을 떠날 것이라고 서로 생각하게 된다. 하지만 다음 날 아침 그 스님이 떠나지 않은 것을 알게되고, 빨간눈을 가진 각각 스님은 자신도 빨간눈인 것을 알게 된다. 그 날 밤 두 스님이 그 섬을 떠나게 된다.
* 빨간눈을 가진 스님이 세명일 경우, 빨간색 눈을 가진 세 스님들 각자 자신의 눈에는 두명의 빨간눈 스님을 보게 될 것이다. 이 스님이 첫째날에도 안 떠나고, 둘째날 밤에 그 섬을 떠날 것이라 생각할 것이다. 하지만 다음날 아침, 떠나지 않은것을 보게되고, 자기자신도 빨간눈이구나 라고 알게 된다. 그래서 그 날 밤 세 스님이 떠나게 된다.
* 그러므로 빨간눈을 가진 스님이 N명 일 경우, 한명의 스님이 그 스님들이 떠날 거라고 예상하는 기간은 N-1일이고, 자신이 만약 빨간색눈을 가졌더라면, N일 째 밤에 N명의 스님이 떠나게 됩니다.
- DPSCChapter3 . . . . 38 matches
를 하지 않고 추상적으로 어떤 상품의 집합(여러 종류의 자동차들)에서 상품(자동차)을 만든다고 하자.
http://zeropage.org/~comein2/design_pattern/31page.gif
패턴은 실제로 아주 간단하다. 문제 상황은 많은 부분들을 포함한다. Abstract Factory 패턴이 적용될 수 있는 예제를 보도록
우선 첫째로, 우리는 컴포넌트의 하위 부분들로 부터 단계별로 상품(자동차)을 만들 필요가 있는 응용 프로그램을 만들어보자.
그것은 몸체, 엔진, 변속장치, 그리고 승객 칸막을 포함하는 자동차를 만드는 것이다. 둘째로, 응용 프로그램은 같은 상품의
(결국, 각각이 CarEngine을 Base Class로 해서 상속을 통해 Ford Engine,Toyota Engine등등으로 확장될 수 있다는 말이다.)
따라서, 우리는 다른 집합의 부분들을 선택하지 않고, 하나의 집합(Family)으로부터 각각의 자동차 부분들을 쉽게 얻을 수
(정리 : Abstract Factory Pattern은 Factory Pattern을 추상화시킨 것이다.Factory Pattern의 목적이 Base Class로부터 상속
http://zeropage.org/~comein2/design_pattern/32page.gif
Vechile과 CarPart는 Object 클래스의 서브 클래스이다. 물론, 이 클래스 구조는 많은 단계에서 전체적으로 단순화된다.
그러므로 우리가 여기서 보여주는 것 보다 현실 세계는 좀더 높은 추상을 가지고 있을 것이다. 하지만, 우리의 패턴 묘사를
함수를 재 정의한다. 그래서 우리는 Object를 상속한 새로운 하위 구조를 추가한다.
http://zeropage.org/~comein2/design_pattern/33page.gif
자동차 부분(part) 생성 메쏘드를 구현하기 위해서, 우리는 추상 팩토리 클래스로 시작한다.
전체적으로, 우리의 팩토리들은 아래와 같이 보인다.
http://zeropage.org/~comein2/design_pattern/34page.gif
Abstract Factory로, 부분들을(part) 결합시키는 것은 팩토리의 클라이언트가 하는 일이다. 팩토리는 부분들의(part) 하나의 집합의 (family)로 부터 나온다는 것을 보장한다. 하지만, 팩토리는 단지 부분을(part) 반환하는 일만 할 뿐이다. 최종 상품은 팩토리가 조립하지 않는다. 그것은 클라이언트의 일이다. (우리는 Abstract Factory와 Builder 패턴 사이의 주요한 차이점을 나중에 볼 것이다.)
하지만, 두 경우에 자동차를 생성하기 위한 코드와 그것의 컴포넌트 하위 부분은 여전히 같다. 즉, 모든 CarPartFactory 클래스들은 동일한 메시지 프로토콜을(다형성)을 구현하기 때문에, 팩토리 클라이언트는 팩토리 타입이 무엇인지 상관하지 않고 호출을 할 수 있다. 그것은 단지 팩토리 프로토콜에 의해 제공되는 일반적인 메시지를 전송한다.
다형성의 힘 때문에, 클라이언트는 코드 구현을 한번만 하면된다. ABSTRACT FACTORY PATTERN을 사용하지 않을 경우, 자동차 생성 코드는 다음과 같이 보일 것이다.(아주 비효율적인 코드)
ifTrue: [FordCar new]
- DiceRoller . . . . 38 matches
* 주사위를 굴려서 골까지 가는 게임으로 게임을 종료하면 소정의 GP를 얻을 수 있다.
* 그러나 이 GP를 얻기가 매우 귀찮은(ㅡㅡ;) 관계로 자동 롤러를 구상중에 있다. 거기에 시간제한까지 있어서 타이머도 붙이게 되었다.
* EXIT버튼 누르기 : Shift+Enter를 Roll로 사용하지 않았기 때문에 종료시 빠져나가는 루틴이 필요하다. 그래픽대조를 통해 Exit버튼을 누르자.
* Shift+Enter가 안된다. -> 원래 불가능 하다는 결론..(발생시킬수는 있어도 창을 끌러올려야 한다.)
* 그러나.. 그래픽 대조를 하였는데 그래픽 카드별로 색이 틀리다. (대략 두가지 정도로 압축.)
* 자동 복구 루틴(방이 깨졌을 경우에)를 구현한다.
* 새로운 의뢰가 들어왔다. 키보드를 눌렀을 때 그에 상응하는 마우스 좌표를 클릭하는 것. (이것..은 보류)
* 프로젝트를 하나로 합쳐야 할 것 같다. 목적이 같지만 서로 관심분야가 달라서 결국 프로그램이 서로 달라지고 있다.
* 프로그램을 키고 오래 사용하면 스타트/레디 부분이 실행되지 않는다.
* 게임이 끝나고 나갈 때 가끔식 이유를 알수 없는 오류가 발생하곤 한다. 아마도 창을 찾은 상태에서 실제로는 없는 게 되버려서 그런 것 같다.
* VS.NET을 새로 깔고 다시 제작에 들어갔다
* Shift+Enter 어떻게든 넣고 말겠다.
앞으로 고칠 점은 >.<[[BR]]
* SHIFT+ENTER : 이상하게 그 창에서만 듣지 않는다.. 무언가 문제가 있는듯.. Direct Input를 사용해 볼까 고려중이다.
* ㅡ.ㅡ 위의 문제를 해결하면 자동으로 해결되는 DOA와 감옥.
결국 프로젝트(?)를 합쳐버렸다. 후훗. MSN 을 통해 노가다를 하고는 있지만 결국 한 자리에서 해야할듯 하다.[[BR]]
물론 합치는 과정에서 이름이 새로 나왔다.[[BR]]
'''앞으로 고칠 점'''[[BR]]
* SHIFT+ENTER 가 실질적으로 구현은 되지만 쓸모가 없다는 점이 발견되면서 그 쪽은 아예 보류. (화면을 보면서 Shift + Enter 는 쓸모가 없단 말이닷!)[[BR]]
* 메모리 상의 값을 얻을 방법을 알게 된다면, 주사위를 예측하는 것도 가능할 것 같다. (완전 게임핵이로구만)[[BR]]
- MFC/ObjectLinkingEmbedding . . . . 38 matches
서로 다른 응용프로그램들이 프로그램 안에 있는 데이터를 편집할 수 있도록 하는 프록램을 작성할수 있도록 하는 메카니즘이다. (예를 들자면 오피스웨어에서 포토ㅤㅅㅑㅍ에서 수정하던 그림을 특정 포맷으로 변환하지 않고 바로 붙이기 하는 경우와 같은 경우....)
이렇게 다른 프로그램이 자신이 짠 프로그램에서 마치 자신의 프로그램의 데이터인 것 처럼 다루어지지만, 사실은 다른 프로그램이 그 데이터를 다루는 것 일 뿐이다.
외부 객체를 현재 프로그램에 대한 도큐먼트의 부분으로서 저장하지 않고, 다른 프로그램에서의 레퍼런스로만 저장시키는 방식, 두번째로는 다른 프로그램의 도큐먼트를 자신의 프로그램에 엠베딩 시켜서 내부에 아예 포함해버리는 방식. 이렇게 2가지가 있을 수 있다.
컨테이너 : 임베드된 객체를 처리할 수 있는 프로그램을 OLE 컨테이너라고 부른다.
OLE서버 : 서버는 컨테이너에 들어갈 객체를 생성한다. 풀서버는 독립적인 프로그램으로 작동할 수 있거나, 복합 도큐먼트 안에 임베드된 객체로 작동한다. 미니서버는 standalone 모드로서 작동하지 못한다. 오로지 객체를 만들기만 할 뿐이다.
OLE 컨테이너, 서버 사이의 통신은 윈도우 운영체제를 매개로 동작한다. 각 OLE 를 지원하는 프로그램은 공통의 OLE DLL을 가지는데 이 것이 윈도우의 기본지원 부분이다. DLL 안의 함수들은 이렇게 객체사이의 통신을 지원한다. 이때 이를 지원하는 표준적인 인터페이스가 COM(Component Object Model)이다. 본질적으로 엠비드된 객체의 모양과 컨테이너가 그것과 통신하는 방법을 정의한것이다.
|| Release() || 인터페이스를 사용하는 클라이언트의 개수에 대한 카운터를 감소시킨다. 카운터가 0이되면 더이상 사용되지 않으므로 메모리에서 해제될 수 있다. ||
이외에도 다른 인터페이스들도 있다. 인터페이스의 이름은 I로 시작하는 것이 원칙이다. 또한 프로그래머가 자신만의 커스텀 인터페이
OLE서버를 어떤 방식으로 식별할 것인가? OLE객체는 문서, 프로그램등 OLE를 지원하는 어떤 프로그램도 될 수 있다. 시스템에 있는 각각의 OLE객체는 클래스 ID 또는 CLSID라고 부르는 128비트의 숫자로 식별한다. 이들은 GUID라고도 불리우며 알고리즘을 통해서 생성되기 때문에 모두 독특한 값을 지니게된다. 이러한 정보는 윈도우 시스템의 레지스트리에 저장되게 된다.
COleClientItem 에는 엠베드된 항목의 관리를 위해 컨테이너가 필요로하는 인터페이스들이 존재한다.
|| OnChange() || 임베드된 객체에 변경사항이 존재하면 그 항목의 서버에 보고될 때 프레임웍에 의해 호출된다. 일반적인 경우는 임베드된 객체를 다시 그릴때이다. ||
|| NotifyChanged() || 서버에서 객체가 변경되면, 이 객체를 임베드 하고 있는 모든 컨테이너에게 이를 알려 컨테이너가 OnChanged()를 호출하도록 한다. ||
컨테이너측에는 COleDocument, COleLinkingDoc 이 존재한다. 전자의 경우는 in-place 활성화를 지원하며, 후자는 링크방식을 지원한다.
- MIT박사가한국의공대생들에게쓴편지 . . . . 38 matches
내용을 보면 'MIT 박사' 가 아니고, 'MIT 박사과정에 있는 어떤 사람'이 맞는 것 같지만, 일단, 퍼온곳에 그리 되어 있으므로..., 저작권에 걸리진 않겠죠? 여러분들도 공대생이니까요. :-)
저는 6년전 MIT에 유학와서 박사학위를 받고 지금은 미국에서 회사에 다니고 있습니다. 처음 1년 이 곳에서 공부할때 저는 제가 한국에서 대학교육을 받은데 약간의 자부심을 갖고 있었습니다. 주위의 많은 한국 유학생들이 서울대 과 수석 또는 서울대 전체 수석도 있고 한국 대학원생의 80% 이상이 서울대 출신이니까 미국 학생들을 바라 보면서 그래 너희가 얼마나 잘났나 한번 해보자라는 생각마저 들었습니다. 한국에서 하던 대로 이곳에서도 한국 학생들이 시험은 아주 잘 보는 편입니다.
특히 한국 중 고등학교에서 가르치는 수학의 수준이 미국의 그것보다 훨씬 높기 때문에 공대생들로서는 그 덕을 많이 보는 편이죠. 시험 성적으로 치자면 한국유학생들은 상당히 상위권에 속합니다. 물론 그 와중에 한국 유학생들 사이에서 족보를 교환하면서 까지 공부하는 친구들도 있습니다. 한번은 제가 미국인 학생에게 족보에 대한 의견을 슬쩍 떠본일이 있습니다. 그랬더니 정색을 하면서 자기가 얼마나 배우느냐가 중요하지 cheating 을 해서 성적을 잘 받으면 무얼하느냐고 해서 제가 무안해진 적이 있습니다. (물론 미국인이라고 해서 다 정직하게 시험을 보는 것은 물론 아닙니다.)
어느덧 시험에만 열중을 하고 나니 1년이 금방 지나가 버렸습니다. 이제 research 도 시작했고 어떤 방향으로 박사과정 research 를 해나가야 할지를 지도교수와 상의해 정할 때가 왔습니다. 물론 명문대이니 만큼 교수진은 어디에 내놓아도 손색이 없습니다. 한국에서 교수님들이 외국 원서를 번역하라고 학생들한테 시킬때 도대체 어떤 사람들이 이런 책을 쓸 수 있을까 의아하게 생각하던 바로 그 저자들과 만날 수 있다는 것은 굉장한 체험이었습니다. 과연 그런 사람들은 다르더군요.
태어나서 처음으로 아 과연 천재라는 것은 이런 사람들이구나 하는 것을 느꼈습니다. 그 사람들의 상상력과 창의력앞에 존경심이 저절로 생겨났습니다. 그동안 제가 갖고 있던 미스테리가 풀렸습니다. 그동안 교과서에서만 보던 바로 그 신기하기만 하던 이론들을 만들어내고 노벨상도 타고 하는 사람들, 그런정도가 되려면 이런 정도의 천재가 되어야 하는구나 하는 생각이 들었습니다. 그때부터 걱정이 되었습니다. 과연 내가 얼마나 잘 할 수 있을까? 도대체 비밀이 무엇일까? 저런 사람들은 어떤 교육을 받았을까? 물론 지금까지 수업도 착실히 듣고 시험도 그런대로 잘보고 해서 어느정도 유학생활에 자신감은 있었지만 이 부분에는 영 자신이 없었습니다. 하지만 세계제일의 공학대학에서 이 정도 교수는 갖추고 있는게 당연하고 나와는 다른 차원의 사람들이다라는 식으로 위안을 삼았습니다.
주위에 있는 미국인 학생들을 보면서 그래도 내가 한국에서 어려운 교육도 받았고 (대학교 수학도 한국이 더 수준이 높습니다) 저 아이들보다는 잘할 수 있겠지라고 생각했습니다. 그런데, 시간이 지나면서 소름이 오싹 돋는 일이 자꾸 생겼습니다. 하나 둘씩 주위에 있던 몇몇 미국인 학생들이 점점 두각을 나타내면서 점점 더 어려운 문제를 해결해 나가고 벽에 부딪치면 새로운 길을 스스로 파헤쳐 나가는 등 저를 놀라게 하였습니다. 초기에 제가 미분기하학이란 이런것이야라고 설명해주던 미국애가 이제는 제가 알아듣지 못하는 이론을 제게 설명해 줍니다. 뭐 그럴수도 있지라고 처음에는 생각 했습니다. 자기한테 맞는 분야를 잘 정했겠지라고 생각했습니다. 그런데 점점 더 많은 그런 케이스를 보면서 또 그들이 발전해나가는 모습을 보면서 생각 했습니다. 이들중 몇명이 내가 천재라고 생각하던 그런 교수님들 처럼 되는 것이 아닌가. 바로 그랬습니다. 바로 그런 학생들이 그런 교수가 되는 것이었습니다.
그때부터 왠지 슬퍼지더군요. 저뿐만 아니라 대부분의 한국 유학생에게 넘을 수 없는 눈에 보이지 않는 어떤 장벽이 있음을 느꼈습니다. 우리나라 인구수로 따지자면 이미 노벨상 수상자가 여러명 나왔어야 하고 우리나라 사람들의 교육열로 보면 이미 세계적 수준의 과학기술자가 전세계에서 활약하고 있어야 할 시점에서 왜 한국에서 일류 교육을 받은 한국 유학생 들이 MIT 에서 기가 죽어 지내야 하는지 알 수 없었습니다. 학교 도서관에서 책만 읽어서는 그 이유를 알 수 없었습니다. 시간이 더 지나고 미국 친구도 사귀고 미국 사람들의 생활을 보면서 차츰 차츰 미국에서의 교육에 대하여 조금이나마 알게 되었습니다.
일단 갓난아기때 부터 한국과 미국의 교육이 달라 지더군요. 우리나라에서는 부모가 감정적으로 때로는 분에 못이겨 매를 드는 반면, 이곳에서는 모든것이 논리 정연하게 말로 설명이 되었습니다. 아이가 왜 안되느냐고 물어보면 그것은 이렇고 저래서 그렇다고 꼬치꼬치 자세하게 설명해 주고, 투정을 부리면 온갖 기발한 계략으로 아이의 관심을 돌립니다. 부모가 항상 아이에게 말을 시키려 하고 자기 자신들이 그들의 부모로 부터 물려받은 삶의 지혜를 전해주려 노력합니다. 거의 대화가 없는 우리나라 가정과 꽤나 대조적 이라는 생각이 들었습니다. 저도 아이가 있지만 도저히 그들처럼 할 수 없습니다. 그런식으로 대대로 물려받은 몸에 밴 경험이 대부분의 우리나라 사람들과 저에겐 없기 때문입니다. 과연 이렇게 시작이 다른데 미국에서 애를 잘 키울 수 있을까 걱정이 듭니다.
그들이 학교에 가면 차이는 더 벌어집니다. 우리나라 학생들이 암기력과 약간의 사고력, 이해력의 계발에 중점을 두는 동안, 이곳에서는 창의력, 상상력, 사회성 등을 키워나갑니다. 바로 이런것들이 거름이 되어 아까와 같은 천재들이 대학원에서 두각을 나타내는 것이 아닌가 합니다. 한마디로 우리나라 학생들이 남들이 만들어놓은 포장된 지식을 주입받는 동안, 이 곳 학생들은 생각하는 법을 배웁니다. 자발적 참여 및 토론에 의한 학습, 스스로 탐구하는 학습, 작문력, 발표력, 논리적 사고가 중요시 되는 교육을 받고 이들은 비록 미분 적분에 대하여 우리보다 늦게 배울망정 인생에서 창의력이 극대화되는 20대가 되면 어렸을때 생각하는 법을 배웠기에 스폰지처럼 지식을 습득하고 새로운 것을 창조해나갑니다.
이곳에 와서 한가지 더 놀란것은 미국사람들의 호기심 입니다. 새로운 것을 알고 싶어 하는 열정이 우리나라 사람의 몇배는 되어 보였습니다. 우리나라에서 금속활자, 물시계, 해시계 등을 발명해 놓고도 더 발전 시키지않고 있는 동안, 서양에서는 만유인력의 법칙을 발견하였고 이를 발전시켜 결국 오늘날의 과학기술로 바꾸어놓았습니다. 우리나라에서는 유치하다고 아무도 거들떠 보지 않았을 automaton (자동 인형 - 태엽 등의 힘으로 스스로 정해진 순서에 따라 움직임) 이 유럽에서는 이미 수백년 전에 유행하여 자동으로 연주되는 피아노, 날개짓하며 헤엄치는 백조, 글씨쓰는 인형등 갖가지 기발한 발명품이 쏟아져 나왔고 바로 이것으로 부터 발전하여 나온것이 자동으로 계산하는 기계, 즉 컴퓨터입니다.
제가 미국 친구들을 집에 초대하여 조금이라도 신기한 것을 보여주면 이것은 어떻게 만들었느냐 무슨 원리로 동작하느냐는 등 질문을 쏟아 붓습니다. 심지어 하수구를 고치러 온 미국사람도 똑같은 관심을 보이면서 돈을 줄테니 자기 아들을 위해 하나 만들어달라고 조르던 적도 있습니다. 반면 MIT의 박사과정 한국 유학생들은 시선이 1초 이상 머무르지 않고 전혀 관심을 보이지 않고 술만 마십니다. 과연 우리가 세계를 주도해 나가는 과학기술 수준을 이룩할 수 있을까요? 우리가 단지 선진국이 되기 위해 또는 노벨상을 받기 위해 과학기술을 하기 싫지만 억지로 연구하는 동안 이곳에서는 너무나 좋아서 신기해서 알고 싶어서 과학기술을 연구하는 사람들이 너무도 많습니다. 자기가 하는 일이 좋아서 하는 사람들의 열정은 절대 따라갈 수 없습니다.
- MoreEffectiveC++ . . . . 38 matches
* ANSI C++에 대한 제반적인 내용을 깔끔한 필체로 쉽게 쉽게 다루고 있다. 명확한 개념 설명이 돗보인다. 프로그램과 디자인 능력을 향상시키는 35개의 방법이 제시되어 있다. 배치, 가상 생성자, 포인터 레퍼런스 카운팅, 프락시 클래스, 더블 디스패치와 같은 C++의 보다 세련된 기술에 대해 설명하고있다.
- 향후 프로그램
- 동일 프로그램상에서 C++과 C의 결합
* 목표: 자료로 이용 할수 있을 정도의 정보 전달
|| 시작 || 2002.01.14 || 알바 유지 보수로 예정보다 늦게 시작 ||
* Item 3: Never treat arrays polymorphically - 절대로! 클래스 간의 다형성을 통한 배열 취급을 하지 말라
* Item 4: Avoid gratuitous default constructors. - 암시적으로 제공되는 기본 생성자를 피하라. 혹은 기본 생성자의 모호성을 파악하라.
* Item 6: Distinguish between prefix and postfix forms of increment and decrement operators. - prefix와 postfix로의 증감 연산자 구분하라!
* Item 7: Never overload &&, ||, or ,. - 절대로! &&, ||, ',' 이 연산자들을 overload 하지 말아라
* Item 8: Understand the differend meanings of new and delete - new와 delete가 쓰임에 따른 의미들의 차이를 이해하라.
* Item 11: Prevent exception from leaving destuctors. - 파괴자로 부터의 예외 처리를 막아라.
* Item 12: Understand how throwing an exception differs from passing a parameter or calling a virtual function [[BR]] - 가상 함수 부르기나, 인자 전달로 처리와 예외전달의 방법의 차이점을 이해하라.
* Item 13: Catch exception by reference - 예외는 참조(reference)로 잡아라.
* Item 14: Use exception specifications judiciously. - 예외를 신중하게 사용하라.
* Item 25: Virtualizing constructors and non-member functions. - 생성자와 비멤버 함수를 가상으로 돌아가게 하기.
* Item 31: Making functions virtual with respect to more than one object. - 하나 이상 객체에 대응하는 함수를 virtual(가상)으로 동작 시키기
* Item 32: Program in the Future tense - 미래를 대비하는 프로그램
* Item 33: Make non-leaf classes abstract. - 유도된 클래스가 없는 상태의 클래스로 추상화 하라.
* Item 34: Understand how to combine C++ and C in the same program. - 같은 프로그램에서 C++와 C를 혼합하는 법 이해해라.
=== Appendix ===
- OurMajorLangIsCAndCPlusPlus/XML/조현태 . . . . 38 matches
* 테스트의 편의를 위해서 파일입출력을 안썼습니다.^^ ... 이편이 더 불편하려나?? 파입입출력으로 바꿀까..말까..
* 가독성을 위해서.... 여러파일로 나누려다 말았습니다..T.T
* C와 C++의 주석 형식의 차이로 인해서... 주석이 많이 줄었습니다.^^
if (NULL == name)
else
if (NULL == contents)
else
if (NULL != head)
if ('<' == *readData)
if ('/' == *readData)
else if (NULL == myPoint)
const char* nameEndPoint = strchr(readData, '>');
char* textBuffur = (char*)malloc(sizeof(char) * (nameEndPoint - readData + 1));
strncpy(textBuffur, readData, nameEndPoint - readData);
textBuffur[nameEndPoint - readData] = 0;
if ('/' == myPoint->name[strlen(myPoint->name) - 1])
return nameEndPoint + 1;
readData = CreateTree(myPoint, nameEndPoint + 1);
else
else
- PrivateHomepageMaking . . . . 38 matches
최근에는 홈페이지로 쓸만한 포탈 블로그 서비스도 많이 있고 서비스의 제한도
그렇지만 실제로 홈페이지를 직접 만들어서 운영을 하고 싶어하는 ZP학우를 위해서
또한 직접 홈페이지를 만들어 보면서 서버관리, 디자인, 웹 프로그래밍을 어느정도
접할 수 있고 후에 이런 쪽으로 공부를 해나가고 싶은 사람들에게 시발점같은
요즘 호스팅 없체는 보통 개인이 쓰기에 적당한 가격으로 계쩡부터 바인딩 서비스까지
제로페이지 서버를 이용하는 것도 굉장히 현명한 선택이다. 일단 zeropage 서버는 쿼터(quota)
패키지가 무료로 돌아다니고 설치도 간단하기 때문에 운영이 같단한 편이다.
실제 APM의 설치를 위해서는 패키지 관리에 대한 내용을 필요로 하는 배포판도 있다.
(실제로 관심만 있다면 대략 2~3일 정도만 투자하면 운영가능 할 것으로 생각한다.)
웹 서버를 선택하는 것은 전적으로 개인의 부분이다.
윈도우를 선택한 사람은 IIS를 이용해서 ASP로 구성된 페이지를 만드는 것이 간편하다. 그렇다고 해서
IIS역시 약간의 설정으로 tomcat, php의 설정이 가능해 PHP, JSP를 이용하기 위해서 웹 서버로 아파치를
이와 마찬가지로 APM 패키지를 통해서 운영하는 것 역시 가능하다. APACHE를 선택할 경우 마찬가지로
내가 돌아본 사이트 들은 대략 3가지 정도의 부류로 구분할 수 있었다.
상기의 3가지 종류의 패키지는 서로 혼용이 가능하며 이럴 경우 디자인을 통일하여
만들어야하기 때문에 실제로 그 프로그램을 어느정도 뜯어 고칠 수 있는 능력이 필요하다.
''(한마디로 귀찮은 작업이다. -_-)''
대략 보드 기반의 홈페이지는 몇가지 공통적으로 이용하는 프로그램들이 많이 존재한다.
물론 프로그램에 관심이 있는 사람은 이 기회에 게시판으 한번정도 짜보는 것도 나쁘지 않을 것이다.
일반적으로 이용하는 게시판 프로그램으로는 다음의 것들이 있다.
- SeminarHowToProgramIt/Pipe/vendingmachine.py . . . . 38 matches
#vendingmachine.py
class VendingMachine:
if self.account >= price:
def verifyCoin(self, aMoney):
def verifyButton(self, aButton):
def verifyDispenser(self, aKind):
class TestVendingMachine(unittest.TestCase):
vm = VendingMachine()
vm = VendingMachine()
vm = VendingMachine()
vm = VendingMachine()
vm = VendingMachine()
class TestVendingMachineVerification(unittest.TestCase):
def testVerifyCoinFalse(self):
vm = VendingMachine()
self.assertEquals(expected, vm.verifyCoin(100))
def testVerifyButtonTrue(self):
vm = VendingMachine()
self.assertEquals(expected, vm.verifyButton('white'))
def testVerifyButton(self):
- TestFirstProgramming . . . . 38 matches
어떻게 보면 질답법과도 같다. 프로그래머는 일단 자신이 만들려고 하는 부분에 대해 질문을 내리고, TestCase를 먼저 만들어 냄으로서 의도를 표현한다. 이렇게 UnitTest Code를 먼저 만듬으로서 UnitTest FrameWork와 컴파일러에게 내가 본래 만들고자 하는 기능과 현재 만들어지고 있는 코드가 하는일이 일치하는지에 대해 어느정도 디버깅될 정보를 등록해놓는다. 이로서 컴파일러는 언어의 문법에러 검증뿐만 아니라 알고리즘 자체에 대한 디버깅기능을 어느정도 수행해주게 된다.
테스트코드는 프로그래머가 하려고 하는일, 즉 의도를 담아낸다. 이는 이 프로그램이 어떠한 시나리오로 돌아갈것인가를 먼저 생각해보는 기회를 저절로 제공해준다. Test가 가능한 코드는 run 을 시켰을때 어떤 결과를 낼지를 파악할 수 있는 코드이다. 이 경우 해당 모듈이 완성되었을때가 언제인지 그 목표를 분명하게 잡는 역할을 해준다.
테스트코드가 완벽할 순 없다. 하지만, 테스트코드가 모든 에러를 잡아내지 못한다는 이유로 많은 버그들을 줄일 수 있는 테스트코드를 작성하지 않을 이유는 없다.
ExtremeProgramming에서는 UnitTest -> Coding -> ["Refactoring"] 이 맞물려 돌아간다. TestFirstProgramming 과 ["Refactoring"] 으로 단순한 디자인이 유도되어진다.
요새는 ["TestDrivenDevelopment"] 라고 한다. 단순히 Test 를 먼저 작성하는게 아닌, Test 주도 개발인 것이다. TestDrivenDevelopment 는 제 2의 Refactoring 과도 같다고 생각. --["1002"]
프로그램이 길어지다보면 Test Code 또한 같이 길어지게 된다. 어느정도 Test Code 가 길어질 경우에는 새 기능에 대한 테스트코드를 작성하려고 할 때마다 중복이 일어난다. 이 경우에는 Test Code 를 ["Refactoring"] 해야 하는데, 이 경우 자칫하면 테스트 코드의 의도를 흐트려뜨릴 수 있다. 테스트 코드 자체가 하나의 다큐먼트가 되므로, 해당 테스트코드의 의도는 분명하게 남도록 ["Refactoring"] 을 해야 한다.
Test Driven 에 대한 접근 방법에는 End-To-End (BlackBoxTesting) 식의 접근 방법과 WhiteBoxTesting 의 접근방법이 있을 수 있겠다.
전자의 경우는 일종의 '부분결과 - 부분결과' 를 이어나가면서 최종목표로 접근하는 방법이다. 이는 어떻게 보면 Functional Approach 와 유사하다. (Context Diagram 을 기준으로 계속 Divide & Conquer 해 나가면서 가장 작은 모듈들을 추출해내고, 그 모듈들을 하나하나씩 정복해나가는 방법)
후자의 경우는 해당 코드의 구조를 테스트해나가는 방법으로, 해당 코드의 진행이 의도한 상황에 맞게 진행되어가는지를 체크해나가는 방법이다. 이는 MockObjects 를 이용하여 접근할 수 있다. 즉, 해당 테스트하려는 모듈을 MockObject로 구현하고, 호출되기 원하는 함수들이 제대로 호출되었는지를 (MockObjects 의 mockobject.py 에 있는 ExpectationCounter 등의 이용) 확인하거나 해당 데이터의 추가 & 삭제관련 함수들이 제대로 호출되었는지를 확인하는 방법 (ExpectationList, Set, Map 등의 이용) 등으로서 접근해 나갈 수 있다.
Test - Code 주기가 길다고 생각되거나, 테스트 가능한 경우에 대한 아이디어가 떠오르지 않은 경우, 접근 방법을 다르게 가져보는 것도 하나의 방법이 될 수 있겠다.
'지금 저쪽에는 에코서버가 있어. 지금 만들건 클라이언트고, 지금 만들 클래스로 write 를 하면 저기 띄어놓은 에코서버에 내가 입력한 메세지가 그대로 표시될거야' 즉, 완성되었을 때의 결과를 미리 그려보는 것이다.
아까보다 훨씬 수월하게 진행되었고, 그 결과를 눈으로 확인했고, 결과를 눈으로 확인한뒤 '완료' 했다. TFP 라면 이를 코드로 작성하여 자동화 할 것이다. 자동화된 테스트는 앞으로의 추후 모듈 수정시에도 앞에서 내가 원하는 기능들이 여전히 작동함을 보장해준다.
Random 은 우리가 예측할 수 없는 값이다. 이를 처음부터 테스트를 하려고 하는 것은 좋은 접근이 되지 못한다. 이 경우에는 Random Generator 를 ["MockObjects"] 로 구현하여 예측 가능한 Random 값이 나오도록 한 뒤, 테스트를 할 수 있겠다.
이 경우에도 ["MockObjects"] 를 이용할 수 있다. 기본적으로 XP에서의 테스트는 자동화된 테스트, 즉 테스트가 코드화 된 것이다. 처음 바로 접근이 힘들다면 Mock Server / Mock Client 를 만들어서 테스트 할 수 있겠다. 즉, 해당 상황에 대해 이미 내장되어 있는 값을 리턴해주는 서버나 클라이언트를 만드는 것이다. (이는 TestFirstProgramming 에서보단 ["AcceptanceTest"] 에 넣는게 더 맞을 듯 하긴 하다. XP 에서는 UnitTest 와 AcceptanceTest 둘 다 이용한다.)
- ToyProblems . . . . 38 matches
당신은 이제까지 이런 문제들을 후배들에게 가르치면서 그들을 정신의 감옥 속에 가둬넣지 않았습니까? 이제까지 구구단 문제를 정말 생소한 방법으로 해결한 후배를 본 적이 있습니까? 모두 for 루프를 쓰지 않던가요? 네. 당신은 이제까지 후배들을 자신의 협소한 패러다임으로 세뇌시켜왔습니다. (사실, 시간을 써가며 후배들에게 자신의 지식을 베푸는 선배들은 정말 훌륭하고 그런 사람들을 폄하할 생각은 전혀 없습니다. 일부러 좀 과장을 해서 썼습니다.) --JuNe
ToyProblems에는 단점이 있다. 너무 간단하다. 배우는 사람은 지루하고 시시하게 느낄 수 있고, 문제를 풀어봐야 별 감흥이 없으며, 새로운 걸 배운 느낌이 들지 않는다. 그러나 그들에게 아직 복잡한 문제는 시기상조이다. 이 딜레마를 어떻게 깨트릴까.
1. 선배가 이 간단한 문제를 다양한 패러다임으로 다르게 풀 수 있다는 것을 보여주고 간략히 설명한다. 이때, 대부분의 경우 긴 설명이 필요없다. 이미 문제를 풀어봤기 때문이기도 하고, 문제 자체가 간단하기 때문이기도 하다.
이런 식으로 패러다임을 여러가지 소개한다. 예를 들어 구구단 같은 문제는 최소 10가지 이상의 패러다임으로 풀 수가 있다.
학생은 이 경험을 통해 프로그래밍 "개념"과 "패러다임"들을 학습하게 되며, 어떤 경우에 어떤 패러다임이 더 적절한지 판단할 능력이 생기고, 무엇보다도 한가지 패러다임에 대한 초기 각인(새끼새가 처음 본 흰색을 무조건 어미라고 생각하는 효과)을 깨트리고, 좀 더 자유로워질 수 있다 -- 한가지 패러다임만 아는 사람보다는 여러가지 패러다임을 아는 사람이 더 개방적이고 포용력이 넓다. --JuNe
고학년(저학년을 가르칠 사람들) 대상으로 강의를 해줄 용의가 있습니다. 만만한 문제가 결코 만만한 게 아니라는 것, 간단한 것에서 정말 엄청나게 많은 걸 배울 수 있다는 것 등을 느끼게 될 것입니다. --JuNe
*준비물: 기본적으로 이클립스와 Python 2.3b1( + idlefork), NetMeeting 설치
*참가자 자격: 후배를 가르쳐봤고, 앞으로도 가르칠 사람.
* ToyProblems 후보 : 구구단, 소수구하기, SpiralArray, 삼각형 그리기, (기타 참가자가 원하는 것 추가 가능. 단 조건은 1학년이 한 시간 내에 풀 수 있는 간단한 문제)
* 자신이 원하는 언어 (python recommended)
1. 그 중 하나에 대해 스스로 문제를 풀게한다 10m.
1. 전혀 새로운 패러다임으로 동일 문제를 푸는 과정을 보여준다 10m
1. 또 다른 패러다임으로 동일 문제를 푸는 과정을 보여준다 10m
1. 1번에서 고른 나머지 문제를 가능하면 다양한 방법으로 여러번 풀게한다. 각자 몇 개의 전혀 다른 프로그램을 만들어 내는가? 60m
희상 - CSP를 응용해 문제를 푸는 것을 듣고 난 후 Alan Kay가 Paradigm이 Powerful Idea라고 했던 것에 고개를 끄덕끄덕 할 수 있었다. 그동안 FP를 맛만 보았지 제대로 탐구하지 않았던 것이 아쉬웠다. FP에 대한 관심이 더 커졌다.
상욱 - 새로운 새고방식을 알아 간다는 것은 재미있었다.
상민 - 새로운 사고란, 새로운 사고법이라 불리우는 것이, 미묘한 차이를 인지하는 것에서 온다는 사실을 알았다. 겸손한 자세가 중요한것 같다.
- 창준 - Higher Order Programming과 로우레벨에서의 설명(예컨대 단순한 함수 포인터로 설명하는 것)의 차이는 미묘하고, 또 크다. 동사(달리다)를 명사(달림)의 품 안에 넣는 것이다. 이 사고에서 엄청난 차이가 생길 수 있다.
- 창준 - 타인을 가르치기 위해, 여러가지로 풀 가능성이 주어지는 것을 문제로 만들자.
석천 - 늦으면 안된다. Python 사용중 아는 것과 쓰는 것의 커다란 차이를 느꼈다. 기존 사고에 갇혀버려 새로운 사고로 전이 못하는 것에서 어려움을 느꼈다.
- ZeroPageHistory . . . . 38 matches
||여름방학 ||Advanced C 및 Pascal 강좌, 공동 참여로 DataBase 등 다수의 Program 개발 ||
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
||여름방학 ||C++, HTML, Object Pascal 세미나 개최.(목적 불문 게시물: 비선점형/선점형 멀티태스킹, Win32의 프로세스와 스레드.)(긁어놓은 게시물: 타이머, 마우스) ||
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
||2학기 ||제로페이지 서버 조성 ( ZeroPageServer/set2001) ||
||1학기 ||회장 이창섭, 12기 회원 모집. ZeroWiki 시스템 도입. Devils 통합. Internet Problem Solving Contest 참여, 서강대 MentorOfArts 팀과 프로그래밍파티 개최 ||
||여름방학 ||데블스캠프, 청평 MT, 서버 세팅(RedHat -> Debian), 프로그래밍잔치 개최 ||
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
||겨울방학 ||ZeroPage 홈페이지 디자인 개편, 로고 및 마스코트 공모 ||
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
- 가위바위보/영동 . . . . 38 matches
//가위바위보 승패수 계산 프로그램
ifstream fin("data1.txt");
if(result==0)
else if(result==1)
else
cout<<"sunho의 승수: "<<sunho_win<<endl;
cout<<"비긴 수: "<<sunho_draw<<endl;
cout<<"sunho의 패수: "<<sunho_lose<<endl;
cout<<"insu의 승수: "<<sunho_lose<<endl;
cout<<"비긴 수: "<<sunho_draw<<endl;
cout<<"insu의 패수: "<<sunho_win<<endl;
if(sunho=='0' && insu=='2')
result=0; //sunho가 이긴 경우는 0을 대입
else if(sunho=='2' && insu=='0')
result=2; //insu가 이긴 경우는 2을 대입
else if(sunho=='2' && insu=='1')
result=0; //sunho가 이긴 경우는 0을 대입
else if(sunho=='1' && insu=='0')
result=0; //sunho가 이긴 경우는 0을 대입
else if(sunho=='0' && insu=='1')
- 데블스캠프2003/넷째날/Linux실습 . . . . 38 matches
제로 페이지 데블스 캠프 4일째에 하는 리눅스를 신입생들이 간단히 체험해 보는 기회를 가지게 하는 페이지입니다.
원랜 재니가 맡기로 하였으나 MT 가는 바람에 제가 얼떨결에 맡게 되었습니다. 제가 거의 모르는 상태이기에 예제 같은 것은 못 하겠고, 그냥 따라하기... 정도만 될 것 같습니다.
* 오픈 소스로서의 장점
* 소스코드로 인해 다른 환경의 시스템 통합시에 유연함
== 접속 프로그램 ==
여기서 다운 받아 실행한 후, Protocol을 SSH로 하고 Hostname을 zeropage.org로 하여 접속하세요. 그리고 부여받은 id와 비밀번호를 입력하면 됩니다.
* cd .. 한 단계 상위 디렉토리로 이동한다.
* 그 외에 다양한 옵션이 있다. 옵션을 여러개 한꺼번에 쓸땐 ls -1l 식으로 쓴다.
* cp (파일1) (파일2) => 파일1을 파일2란 이름으로 카피한다.
* cp 파일1 temp_file => 파일1을 temp_file로 카피한다.
* cp 파일1 ../temp_file => 파일1을 현재의 상위 디렉토리의 하위 디렉토리인 temp_file로 카피한다.
* mv aaa.txt ccc.txt => aaa.txt를 ccc.txt로 이름을 바꾸는 용도로 쓸 수 있다.
* mv aaa.txt ./temp_file => aaa.txt를 temp_file이란 하위 디렉토리로 옮긴다.
* man (알고 싶은 명령어)의 형식으로 사용한다. cp명령어에 대해 알고 싶으면 man cp를 쓰면 된다.
* 권한 부여 대상에도 3종류가 있다. 왼쪽의 rwx부터 차례로 u(user), g(group), o(others)의 순서.
* chmod u-r aaa.txt => aaa.txt의 읽을 권한을 user로부터 빼앗는다.
* 전에 있던 파일을 고치고자 할 때는 vi (파일명)으로 들어가면 된다..
* 문서를 편집할 수 있는 모드로 명령모드에서 i를 누르면 들어간다. 제일 밑에 INSERT라고 표시된다. 여기서 보통 문서 편집하는 것처럼 입력해 주면 된다.
* G => 문서의 제일 끝으로
* w => 다음 단어로
- 데블스캠프2005/주제 . . . . 38 matches
|| 월 || 강의실 밖으로 나온 OOP || 휘동 || 2시간30분 || OOP라는 개념을 가지고 할 수 있는 즐겁고 유익한 활동 ||
|| 금 || 새내기 발표 || 조현태 || ? || 게임 만드는 법?(실제로는 프로그램 개발과정 쯤 될듯.) ||
|| 금 || ? || [신재동], [임인택] , 이정직[fnwinter] || 실습까지 3시간 예상 , 윈도우즈 프로그래밍 || 네트워크 이용한 게임 정도 ||
[Refactoring], [TestDrivenDevelopment], [STL], [ObjectOrientedProgramming],
[데블스캠프]같은 행사에서 하루 정도는 신입생이 재학생을 대상으로 세미나를 해보는것도 좋을것 같다. 준비의 주체는 신입생 모두이고 주제는 어떤 것이 되든 상관없다. 신입생들은 준비하는 과정에서 이것저것 얻게 되는 부분이 무언가 한가지는 반드시 있을 것이다. - [임인택]
거기서 왜 내가?? 정서 나뽀..ㅠ.ㅜ 정서가 준비해보는것도 의외로 좋을지도..ㅎㅎ- [조현태]
만약 하게된다면 선배님께 어떤 내용을 설명할 수 있을지..;; 약간 과장을 덧붙이자면 저희가 1주일동안 도스창에서 돌아가는 구구단 프로그램을 작성하면, 선배님들 께서는 하루만에 데이터 베이스를 구축하실텐데..;;(그정도로 세미나 할 내용이 없다는..;;) -[조현태]
선배 입장으로써 많은 것을 바라는 것이 아닙니다. 선배들에게 새로운 내용을 가르치는 세미나가 되기 보다(그렇게 되면 금상첨화고요) 그저 후배분들께서 좋은 경험을 얻기를 바라는 것 뿐입니다. --재동
In my life, I have seen many programming courses that were essentially like the usual kind of driving lessons, in which one is taught how to handle a car instead of how to use a car to reach one's destination.
- Guido van Robot 보니까 옛날 LOGO 프로그램 생각나네.. 비슷한거 같은데 아닌가? - fnwinter
GvR보다 좀 더 발전된 모델로 러플(http://rur-ple.sourceforge.net/ )이 있습니다. 데블스캠프에서 해보기에 좋은 내용이라고 생각합니다. --JuNe
금요일에 제가 한 타임을 맡겠습니다. 네트워크 사용한 간단한 프로그램을 만들 예정입니다. 언어는 파이썬으로 하려합니다. 그러므로 파이썬 배운 후에 몇 개의 토이프로블램은 파이썬으로 연습 시켜주셔야 합니다. --재동
너무 부담갖지말고 편하게 할 수 있는 주제로 하자고 하면 넘어올꺼야. 가령, '검색엔진 활용법' 이라던가.. - 임인택
난 뭘하지? 윈도우즈 프로그래밍? -- f n w i n t e r
정직이형~ 윈도우즈 프로그래밍 세미나 해주세여~ 세미나 한번 하고 나서 테트리스 같은거 짜는 과제 한번 내주는것도 회원들의 도전의식에 자극을 줄 수 있을거 같은데여, 말 들어보니깐 형 있을때의 데블스 캠프에서는 윈도우즈 프로그래밍 좀 알려주고 나서 테트리스 짜는거 했다던데여 - [상협]
시간에 여유가 있으면 이런 시간을 마련해 보는것도 좋을 듯 합니다. 일종의 '토의'인데요. 신입생, 재학생 (여름방학정도 되면 신입생, 재학생을 구분하는 의미가 축소되기는 하지만 여기서 표면적으로나마 준비하는 사람들-참가하는 사람들을 구분해서 표현할만한 마땅한 표현이 없으므로 패쓰)들이 그동안 경험해 왔던 '프로그래밍 공부'에 대한 이야기를 나눠보는 것입니다. 이러한 이야기를 나눠봄으로써 참가자들간에 많은 피드백이 이루어질 것이고, 이러한 경험들은 앞으로 공부를 하는데 있어서나 프로그래밍을 하는데 있어서 소중한 양분이 될 것입니다.
프로그래밍을 경험한 기간에는 차이가 있겠지만 오히려 이 점이 이 토의를 더 영양가 있게 만들수 있다고 생각합니다. 신입생이 대학에 입학해서 처음으로 프로그래밍을 접했다고 했을 때, 대부분이 프로그래밍을 공부한 방법은 수업시간에 특정 언어에 대해 수업을 들은 것이 대부분이고 코딩경험도 수업시간에 내준 레포트를 작성하는 것이 전부일 것입니다. (물론 개인적으로 열심히 한 사람들도 있겠지요) 재학생의 경우에는 자신이 그동안 어떠한 방법으로 공부를 했으며, 어떻게 했으면 더 좋았겠다. 라는 생각을 분명히 갖고 있을 것입니다.
이러한 상황에서 이러한 토의는 아주 의미가 깊을 것 같습니다. 최소한, 재학생의 경우에는 신입생들을 통해서 자신을 돌아볼 수 있는 계기가 될 수 있고, 신입생의 경우에는 공부를 하는데 있어서 기존 재학생들이 선행한 방법을 택하거나 아니면, 새로운 공부 모델을 창조하는데 도음이 될 것 같네요. 물론 여기저기서 좋은 컬럼이나 고전을 접할수도 있겠지만 같이 공부를 하는 학생들간의 토의는 이에 못지않은 효과를 얻을 수 있으리라 확신합니다. 만약 이러한 시간을 정말 갖게 된다면 저에게도 큰 도움이 될것은 자명한 일이구요. - 임인택
- 실시간멀티플레이어게임프로젝트 . . . . 38 matches
리얼타임 멀티 플레이어 게임을 만드는 프로젝트
교육적 목적과 동시에 과 친구들과 함께 즐길 수 있는 유익한 게임을 만드는 목적도 있다. 또한, 동기, 선후배들과 교육적인 프로젝트를 "즐겁게" 할 수 있는 틀을 제시한다.
[실시간멀티플레이어게임프로젝트/첫주차소스1]
[실시간멀티플레이어게임프로젝트/첫주차소스2]
[실시간멀티플레이어게임프로젝트/첫주차소스3]
[실시간멀티플레이어게임프로젝트/프레임워크]
[실시간멀티플레이어게임프로젝트/게임]
시간이 되면 AspectOrientedProgramming을 현 프로젝트에 적용하는 방법을 알려드립니다.
혹시 축구에 관심이 있다면 CM을 참고하세요. [http://www.hani.co.kr/section-014010000/2002/07/014010000200207141533005.html 신문 기사] 기본적으로는 텍스트로만 이뤄지는 게임입니다.
제가 두 번 정도 참가해서 도움을 드릴 수 있습니다. 파이썬으로 실시간 멀티 플레이어 (전략) 게임을 만들 것입니다. 가까운 목표는 컴공과학생들이 즐길 수 있는 집단 게임입니다(동시 플레이어 100명 이상) -- 제로페이지 서버에 설치해서 서비스할 것입니다.
파이썬의 기초 문법만 알면 강의에 참여할 수 있을 겁니다. 제가 말하는 기초란, if문, for문, 기초 데이타형(리스트, 터플, 사전, 문자열, 정수 등), 함수 정도에 대한 지식입니다.
강의 첫날 약 1-2시간만으로 당장 플레이해볼 수 있는 게임이 나오도록 할 것입니다. 개발은 팀 단위로 나눠서 할 예정이며, 두번째 날 세미나 시작 직전에 팀 별로 개발한 게임을 발표합니다. 그리고 그중에서 투표를 통해 가장 잠재력이 큰(무엇보다 재미있을 것) 게임을 고릅니다. 그리고 이제는 참가자 전원이 하나의 게임을 함께 개발합니다.
인원이 찼으므로 고정하겠습니다. 이 프로젝트에 참가하기로 하신 분들은 선착순으로 뽑힌 것이고, 그만큼 다른 분들의 기회를 박탈한 것이니, 그에 상응하는 어떤 의무와 책임을 갖고 있습니다. 그렇다고 너무 부담 느낄 필요는 없습니다. 이 의무와 책임은 프로젝트에 충실히 참여해서 나중에 주변 사람들과 함께 자신이 얻은 것을 곱하기 하면 되는 것입니다.
기본적인 개념과 프레임워크를 설명해 드립니다(최초 프레임워크는 director가 직접 만들어 제공합니다). 그 자리에서 간단한 실험을 몇가지 해봅니다. 팀을 나눕니다. 제가 선정한 단순한 게임을 각 팀이 병렬로 개발합니다. 그 결과물에서 일종의 프레임워크를 추출해 냅니다. 다음 시간까지 팀별로 새로운 게임을 선정해서 개발해 와야 합니다.
지난 일주일간 각 팀별로 개발한 게임을 발표합니다. 팀을 바꿔서 게임을 플레이해봅니다. 그리고 그 게임(다른 팀이 만든)에 딱 한가지씩 기능 추가를 해서 개선합니다. 이때 원래 게임을 만든 사람과 소통할 수는 없습니다. 각자의 작업을 서로 비교해 보고, 경험을 이야기 합니다. 마지막으로 투표를 해서 게임 하나를 고릅니다. 선택되지 못한 팀의 아이디어에서 가져올만한 것이 있다면 갖고 오는 등 아이디어 회의를 합니다. 계획을 세웁니다.
지금까지 만든 게임으로 내부 게임 대회를 엽니다. 이전의 팀별로 길드를 만들어 팀 대항 게임을 할 수도 있습니다.
제로 페이지 서버에 게임을 올리고 일단은 컴공과 학생이라면 모두 게임을 즐길 수 있게 합니다. 간단한 게임 설명서도 있어야 할 것입니다.
* 학과 전용의 멀티플레이어 게임(새로운 전통!)
등입니다. 여기에서 파이썬이라는 언어에 대해 얻는 것은 다른 것들에 비해 상대적으로 그다지 크지 않을 것입니다. 이번 경험은 어떤 언어이냐가 중요하지 않습니다. C++이나 자바를 사용할 수도 있다는 말입니다. 하지만 그렇게 하지 않은 이유는, 그런 언어들을 사용하면 "언어(혹은 라이브러리 API)"라는 문제가 더 커져서 소위 배보다 배꼽이 커지는 현상이 생기기 쉽기 때문입니다.
헉.. 파이선으로 그런 네트워크 플레이가 가능하군요.~ 저두 배우고 싶어요~ - 민수
- Bigtable/DataModel . . . . 37 matches
1. 태블릿은 SSTABLE들의 집합으로 구성되어있으며 SSTABLE들의 리스트를 저장하고 있다.
1. SSTABLE은 block의 집합이며 block들의 주소와 오프셋으로 구성되어있다.
태블릿은 SSTABLE들의 집합으로 구성되어있으며 SSTABLE들의 리스트를 저장하고 있다.
1. 태블릿의 이름은 : 마지막 키 -> 카탈로그에 매핑필요
1. 마지막 키는 카탈로그에서 shorten id와 매핑되어있다.
1. 태블릿은 하나 이상의 row로 구성됨.
SSTABLE은 하나의 memtable과 block의 시작주소와 오프셋들로 이루어져있다.
1. 약 64KB마다 존재하는 row key를 블록의 인덱스로 한다.
1. 여러 태블릿이 하나의 SSTable을 참조해도 블럭들을 오프셋으로 참조하므로 같은 부분을 참조하는 일이 없다.
1. 각 태블릿의 majorCompaction시 태블릿별로 SSTable들이 나누어지므로 결국 SSTable은 하나의 태블릿에 피참조된다.
1. SSTABLE의 주소와 오프셋으로 블록들이 구분된다.
1. 명시적인 자료구조가 아니라 SSTable에서 row key들로 구분되어진 범위이다.
1. 블록 인덱스로 선택된 row key부터 다음 블록 인덱스로 선택된 row key가 나올 때 까지를 하나의 블록 단위로 한다.
1. '''데이터 블럭과''' '''인덱스 블럭으로''' 나누어짐
1. 할당된 메모리 크기가 다 차서 더이상 쓸 수 없을 때 SSTABLE로 저장한다.
== 로컬리티 그룹 ==
== 커밋로그 ==
1. 태블릿의 ID은 매핑테이블(카탈로그)에서 짧은 ID으로 대체됨.
1. 저장공간의 재사용 : 커밋로그는 원형 자료구조를 사용하여 자동으로 공간을 재사용하도록 한다.
1. 커밋로그의 가장 마지막 타임스탬프와 memtable의 가장 오래된 타임스탬프와 비교하여 memtable의 타임스탬프가 더 최신이라면 로그삭제가능
- CVS/길동씨의CVS사용기ForLocal . . . . 37 matches
=== 스토리 1 프로젝트 시작 ===
홍길동 씨는 이번에는 Java로 Hello Java를 작성하려고 한다. 간단한 소스지만 CVS에 넣어 볼겸 한번 만들어 본다.
이 프로젝트는 여러명이 할 것이 아니라서, 혼자서 자신의 컴퓨터에서 하려고 한다.
CVS를 개인적으로 사용할려면 두가지 방법이 있다. 하나는, 자신의 컴퓨터에 http://www.cvsnt.org/ 와 같은 서버툴을 설치하여 외부에서도 접근하는 것이고, 구지 서버를 돌리지 않고 cvs를 local에 저장소의 기능만을 이용하는 방법이 있다. 길동씨는 자신의 컴퓨터에서 간단한 저장소의 경험을 해보고 싶어서, local로 시도한다.
로 써서 불편하다.
도움말 : local은 remote에 접근하는 것과 달리 로그인을 하지 않는 것을 전제 한다. 아무옵션도 붙이지 않고, 자신이 사용할 장소만을 지정한다.
도움말 : CVSROOT 에 설정된 대로 CVS 세팅을 한다.
==== 프로젝트 생성 ====
프로젝트 진행 폴더를 만들고, 프로젝트를 서버에 등록한다.
도움말 : 모듈(프로젝트와 동일 이하 모듈로 용어 통일)을 로컬의 저장소에 등록한다. 만약 내부에 소스같은 자원이 있다면 같이 등록된다.
cvs import -m "코멘트" 프로젝트이름 VenderTag ReleaseTag
==== 프로젝트 받아오기 (checkout) ====
서버에 등록된 프로젝트를 받아온다. 이제 어디에서나 checkout을 하면 프로젝트를 받아 올수 있다. 프로젝트 전체를 가지고 오는 개념이라서 상위 디렉토리에서 수행한다.
(프로젝트 폴더 내부에 CVS가 생겼으면 성공한 것이다.)
도움말 : 지정하는 프로젝트(모듈) 전체를 받아 온다. local에 처음 프로젝트를 받아 올때 사용한다.
cvs checkout 프로젝트이름(모듈이름)
길동씨는 프로젝트 세팅이 끝나고 간단히 HelloWorld.java 라는 프로그램을 작성했다.
=== 스토리 2 홍길동씨 프로그램 고치다. ===
홍길동씨는 이렇게 프로그램을 C:CVSLocal 에 저장하고는 곧 잊어 버린다. 그러다 몇일뒤 아차 하며 다시 소스를 oop적으로 고칠려고 시도하였다. 그냥 출력하는 사람에게 일침을 가하는 글을 마소에서 본적이 있으리라. 그래서 객체 지향(?) 적으로 작성하려고 한다.
위와 동일한 cvs_SetForLocal.bat 을 실행 하고, 그냥 checkout을 한다. 시작 디렉토리는 c:user> 로 가정하였다.
- Chapter II - Real-Time Systems Concepts . . . . 37 matches
시스템의 혼합을 필요로한다.
실제로 이러한 전반적인 부분에서 쓰이는 지는 모르겠다. 요즘 가전 제품들이 보다 우수해져서 이러한 리얼타임이 필요하지만 책에 나온 예는 과한 것 같다.
책에 나온 예는 다음과 같다. 참고적으로 알아 두었음 한다.
작은 시스템에서는 시스템의 효율성을 위해 보단 간편하고 일반적인 디자인을 사용한다고 한다. 실제로 어플리케이션이 작동하는 부분을 Background System이라고 하며 ISR (interrupt service rountines) 라고 불리우는 인터럽트 부분을 Foreground system이라고 한다.
크리티컬 섹션 또는 크리티컬 리젼이라 불리우는 이 부분은 커널과 관련된 중요 부분에서 인터럽트로 인한 커널의 손상을 막기 위해 불리우는 곳이며 또한 수행시간의 단축이 절대적으로 필요한 부분에서 쓰이는 구간이다. 이는 코드와 자원의 공유를 막고 배타적인 공간으로 설정된다.
공유 자원이란 하나 이상의 Task가 같은 자원을 쓸 경우를 말한다. 두 Task는 배타적으로 같은 Resouce에 접근을 하며 Data의 파손을 방지한다. 이러한 방식을 mutual exclusion (상호 배타성) 이라고 한다.
멀티태스킹이란 프로세스의 스케줄과 CPU의 스위칭에 의해 복수의 Task가 실행되는 것을 말한다. 또한 멀티태스킹이란 Back/Fore Ground 처럼 복수의 Task가 운영되는 것을
태스크는 thread라고도 불린다. 이는 하나의 태스크가 하나의 Stack과 TCB를 가진 경량 프로세스이다.
문맥전환이라 불리우는 이 과정은 하나의 태스크에서 다른 태스크로 작업이 이전 되기 위한 과정을
새로운 높은 순위의 태스크는 현재 낮은 우선순위의 태스크가 CPU를 포기했을 때 권한을 갖는다.
선점형 커널은 시스템의 반응성이 중요할 때 쓰인다. 선점형 커널의 경우 커널이 우선순위가 높은
태스크로의 전환을 확실히 해 준다. 만약 우선순위가 높은 태스크가 준비상태라면 바로 인터럽트가
되고 지금 수행중인 태스크는 멈추며 높은 태스크로의 문맥전환이 이루어진다.[[BR]]
말 그대로 재진입이 가능한 함수를 말하는 것입니다. 태스크가 하나의 함수로 이루어져있으므로 재진입을
위해서는 함수에서 쓰일 변수에 대해서 전역으로 설정해 놓으면 안되겠져 만약 전역으로 설정하고 다시 진입하
게 된다면 다른 Task들에 의해 그 값이 바뀌어져 있을 수도 있습니다. 그러므로 Task에서 쓰일 변수/메모리는
Task Stack 에 값을 저장하여 해당 Task로 다시 진입했을 때 스택에서 꺼내 그 값을 복원하는 방법이 있겠습니다.
위와 같은 경우 Temp를 지역변수로 두어 태스크의 스택에 값이 저장 되면 될 것 같다.
같은 우선권을 갖는 태스크끼리는 같은 수행 시간 만큼 작동 되게 만들어지는 방식으로
말 그대로 태스크의 우선권이다. 마이크로씨 오에스에서는 높은 우선권을 갖은 태스크가
- Gof/AbstractFactory . . . . 37 matches
유저인터페이스 툴킷은 다양한 ["룩앤필"] 기준을 제공하도록 고려한다. 다른 룩앤필은 스크롤바, 윈도우, 그리고 버튼처럼 다른 모습과 행동양식의 유저 인터페이스 ["Widget"]을 제공한다. 이식가능한 룩앤필 기준을 위해서는, 개별적 룩앤필 Widget을 위한 어떤 애플리케이션은 ["하드-코드"] 가 아니어야 한다. 즉석으로 정의한 룩앤필 클래스는 나중에 룩앤필을 바꾸기 어렵게 만든다.
이 문제는 기본적인 Widget의 인터페이스를 정의한 abstract WidgetFactory 클래스를 정의함으로써 해결할 수 있다. 또한 모든 종류의 Widget에는 추상클래스가 존재한다, 그리고 구체적인 서브 클래스는 Widget을 상속해서 룩앤필 기본을 정의한다. WidgetFactory의 인터페이스는 각각의 추상 Widget 클래스의 새로운 객체를 반환하는 기능을 가지고 있다. 클라이언트는 이런 기능을 수행해서 Widget 인스턴스를 만든다. 그러나 클라이언트는 사용하는 클래스의 구체적인 내용에 대해서는 신경쓰지 않는다. 이처럼 클라이언트는 일반적인(?) 룩앤필의 독립성에 의존한다.
http://zeropage.org/~reset/zb/data/abfac109.gif
각각의 룩앤필에는 해당하는 WidgetFactory의 서브클래스가 있다. 각각의 서브클래스는 해당 룩앤필의 고유한 widget을 생성할 수 있는 기능이 있다. 예를 들면, MotifWidgetFactory의 CreateScrollBar는 Motif 스크롤바 인스턴스를 생성하고 반환한다, 이 수행이 일어날 동안 PMWidgetFactory 상에서 Presentation Manager 를 위한 스크롤바를 반환한다. 클라이언트는 WidgetFactory 인터페이스를 통해 개개의 룩앤필에 해당한는 클래스에 대한 정보 없이 혼자서 widget들을 생성하게 된다. 달리 말하자면, 클라이언트는 개개의 구체적인 클래스가 아닌 추상클래스에 의해 정의된 인터페이스에 일임하기만 하면 된다는 뜻이다.
또한 WidgetFactory는 widget 클래스 간의 의존관계를 형성한다. Motif 스크롤바는 Motif 버튼과 Motif 텍스트 에디터와 함께 사용되어야 한다, 그리고 MotifWidgetFactory를 사용함으로써 이러한 의존성이 강제적으로 이루어지게 된다.
* 어떤 연관된 집합의 객체들이 서로 같이 사용될 수 있도록 디자인되어지게 강제해야 할 때.
http://zeropage.org/~reset/zb/data/abfac109.gif
* ConcreteFactory(MotifWidgetFactory, PMWidgetFactory)
* ConcreteProduct(MotifWindow, MotifScrollBar)
* 보통의 경우 ConcreteFactory 클래스의 단일 인스턴스는 수행시간(run-time)중에 생성된다.
이 concrete factory는 특정 상속에 의한 객체(ProductObject)를 만들어낸다. 서로 다른 객체(ProductObject)를 만들어 내기 위해서는
클라이언트는 서로 다른 concrete factory를 사용해야 한다.
factory가 객체를 만들어 내는데 대한 수행과 책임을 캡슐화 하기 때문에 상속한 클래스로부터 클라이언트가 독립적일 수 있다.
이는 conncrete factory를 쉽게 전환해서 사용할 수 있도록 해주고. 이로써 간단하게 concrete factory만 바꿔줌으로서 서로다른 산물의 조건을 쉽게 쓸수 있다.
abstract factory는 완벽한 산물의 집합을 생성해 내게되어, 모든 산물의 집합이 한번에 바뀔 수 있게 한다(같은형태의 다른 모습들이므로.. 역자 주).
UI 예제에서 Motif widgets을 Presentation Manager widgets로 바꾸는 작업을 단지 유사한 팩토리의 객체와 바꿔주고 그 인터페이스를 다시 생성함으로써 행할 수 있다.
3. ''산물간의 일관성을 촉진한다.'' 어떤 집합내의 객체들이 서로 협력하도록 고안되었다면, 어떤 어플리케이션은 한번에 단 하나의 집합에서 객체를 사용하는 것이 중요하다.
4. ''새로운 산물을 지원하는 것이 어렵다.'' abstract factory들을 확장해서 새로운 산물을 생성하는 것은 쉽지 않다.
왜냐하면 AbstractFactory 인터페이스는 생산되어질 산물의 집합을 고정해놓기 때문이다. 새로운 산물을 지원하는 데는 factory의 인터페이스를 확장할 필요가 있다
InterViews 는 AbstractFactory 클래스들을 나타내기 위해서 'Kit'를 접미사로 사용한다. 이것은 WidgetKit과 DialogKit abstract factory 들을 명확한 ["룩앤필"] UI 객체를 위해서 정의한다. InterViews는 또한 서로 다른 복합 객체를 생성하는 LayoutKit 을 포함다. 예를 들면, 어떤 layout은 문서의 방향(인물이나 풍경)에 따른 서로 다른 복합 객체를 개념적으로 정렬한다.
- OOD세미나 . . . . 37 matches
== 실전 객체지향 설계로 배우는 왜? ==
* '''“단일 변화로 인한 수정 사항을 예측 가능한 범위 내에 집중시켜라.”'''
* 이것은 비단 객체지향에 한정된 이야기가 아니라 컴퓨터공학 발전의 역사를 이끌어온 가장 중대한 목표이자, 앞으로 여러분이 컴퓨터공학도로서 갖춰야할 모든 공학적 지혜들의 근본이라는 것을 잊지 마세요. - [변형진]
* 오늘 긴 시간동안 모두 수고하셨습니다. 오늘 설명한 내용이 아직 깊이 와닿지 않더라도 좋습니다. 프로젝트 개발에 있어 그동안 흔히 전개했던 방식과는 다른 접근 방식의 가능성을 확인하는 것만으로도 좋은 경험이 되었길 바랍니다. 누누히 강조하지만 한 번에 이해하시길 바라서 진행하는 세미나가 아니라, 정말 중요한 하나의 제언만이라도 남는다면 그것을 앞으로 몇 번 듣고 또 듣고, 그리고 정말 그 개념이 필요한 순간이 됐을 때 큰 힘이 되리라 믿습니다. 예제는 좋은 예제거리에 대한 의견이 없어 SE 프로젝트 주제를 차용했는데, 설계만으로 문제가 깔끔하게 해결되는 과제가 아니라 알고리즘으로 해결해야할 부분이 꽤 있는 과제다보니, 실습이 설계부분에 집중하기 힘들었던 점은 다소 아쉽네요. 좋은 후기를 작성해주신 분 한 분을 선정해서 번역서 [http://book.naver.com/bookdb/book_detail.nhn?bid=2500990 Holub on Patterns]을 선물로 드립니다. 후기는 감상보다는 되새김이 되었으면 좋겠습니다. :) - [변형진]
* 학교 환경도 안 받쳐주고, 제 머리도 안 받쳐줬어요. diff/merge 기능 설계를 바라보면서 객체지향 설계를 봤는데 어려우면서도 효율적인거 같더라구요. 그리고 형진이 형이 세뇌하신 내용 "단일변화가 생겨서 수정할 때 쉽게 수정하려면 구조가 중요하다" 이거 꼭 외울게요 -] [윤종하]
* 원래 정말 철저하게 절차지향적으로 프로그래밍 하던 사람이라... 오늘 내용이 좀 어려웠습니다;; 특히 그냥 들을때는 이해하면서 넘어가도, 실제 프로그래밍을 하려니까 막막하더라구요. 마지막 실습때 질문도 했었는데, 형은 if문 안에서 Comparer 객체를 선언해서, equals 함수를 사용하라고 하셨는데, 전 if문 안에서 객체를 생성할 생각조차 하지 못했었거든요. 그저 주어진 정보만 가지고, 반복문을 돌릴 생각뿐이었죠; 그런데 집으로 돌아오면서 생각해봤는데, 제가 짠대로 하면 '''“단일 변화로 인한 수정 사항을 예측 가능한 범위 내에 집중시켜라.”''' 라는 말과는 거리가 한 참 멀어지더라구요;; 예측은 가능한데 예측범위가 프로그램 소스 코드 전~부 라는거죠. 덕분에 "아, 정말 이런거 때문에 OOP를 하라는 거구나" 라는걸 알게 되었습니다 ㅋㅋ
오늘 했던 내용 중 정말 특히 기억에 남는건 '''"상속을 하기 위한 프로그래밍을 하지 말아라" & "패턴을 적용시키기 위한 프로그래밍을 하지 마라"''' 였습니다.
* 일단 개인적으론 늦어서 앞부분을 못들은게 아쉽고, SE팀플과 관련된 수확이 있어서 여러모로 유용한 세미나였습니다ㅋ 일단 들으면서 간단히 적었던걸론
확실히 제 경험에 비추어보면 학부과정에서 OOP에 대한 개념을 배울때는 상속, 다형성 등을 배울때 과제는 상속을 이용한 무언가, 오버라이딩, 오버로딩을 하도록 요구했습니다. 심지어 의미없는 프렌드도 쓰도록했었죠ㅎ 물론 가르치는 교수님의 입장에선 직접 써보게하려면 그 방법이 가장 확실합니다. 그렇지만 그렇게 배우고나면 왠지 설계에 대한 별 생각없이 그렇게 하게되더군요. 저또한 미숙하지만 후배들에게 OOP를 왜 쓰고, 어떤 점이 좋은가를 알려주다보니 다시 한번 기본개념에 대해 생각하게되고 그러면서 제대로된 OOP는 뭔가 싶었습니다. (적어도 제 생각엔)'''단지 class쓰고 상속한다고 OOP가 아닙니다'''. OOP의 장점을 이용해야 진정한 OOP입니다.
그리고 저 또한 오늘 실제 디자인에서 Drawable로 GUI를 로직에서 완전히 분리시킨 것을 보고 다시 한번 추상화에 대한 공부가 되었습니다. 앞으로 추상화하는 법을 좀 더 익혀야겠어요. - [김홍기]
* 집에 가자마자 아버지가 저한테 객체 지향 설계를 왜 하는지 설명하라고 했습니다. 그런데..여러 번 반복해서 언급한 내용임에도 불구하고, "단일 변화로 인한 수정 사항을 가능한 범위 내에 집중시켜라"라는 말을 정확히 할 수 없었습니다ㅠㅠ 나중에 기존 내용을 고칠 때, 여러 군데에 퍼져있으면 고치기 힘드니까 쓰인 곳 안에서만 해결하는 것이 좋다고 풀어서 대답하긴 했지만, 정확한 표현은 아닌 듯 하네요. 아직 세뇌가 덜 됐..ㅎ;;
get과 set을 사용하면 메인에서 그 자료형이 뭔지 알고 있는 거니까 변경시에 같이 변경해야 하므로 사용을 자제하는 건가요? 다른 클래스에서 private로 선언한 거를 메인에서 접근하기 위해 get과 set을 사용하는 거 같은데, 그럴거면 private로 왜 선언하는 건지 의문을 작년에 가졌...는데 여전히 모르는..;ㅅ; 우문(뭔가 질문하면서도 이상해서..;)현답을 기대합니다 ㅎ; - [강소현]
* 매우 유익한 세미나였어요. 사실 2학년 다니면서 이미 OOP라는 수업을 들었음에도 불구하고-_-;; 객체지향이 뭐야 ㅠㅠ 라고 생각했었는데, 세미나를 통해, 아 설계란 이렇게 하는 것이구나 라는것을 어느정도(?) 느꼈어요. 2학년때, 자바 프로젝트를 하면서 로직에서 gui를 어떻게 붙이나 때문에 꽤나 고생하던걸 생각하면 아 나의 고민은 참의미없었구나 라는것도 깨닳았지요. 또, 예제로 쓴 문제 덕분에 꽤나 막막하게 느껴졌던 SE프로젝트를 어느정도 구체화할 수 있었다는 점에서도 너무 유익했어요. 이제 형진오빠의 세미나도 들었으니, 저도 객체 지향적 설계에 대해 진지하게 고민하고 실천해볼 생각이에요. 머리가 뒤죽박죽.. 위키도 이상해서 피드백은 여기까지.. 위키 이상해요 ㅠㅠ - [이원정]
- OurMajorLangIsCAndCPlusPlus/print/하기웅 . . . . 37 matches
if(*n=='%')
if(isdigit(*n))
if(*n=='d')
if((number-48)>strlen(st))
else if(*n=='s')
else if(*n=='f')
if(sign==1)
if(decimal==0)
else
else
else
if(*n=='d')
else if(*n=='s')
else if(*n=='f')
if(sign==1)
if(decimal==0)
else
else
else if(*n=='@')
if(*n=='d')
- PerformanceTest . . . . 37 matches
프로그램의 성능을 측정하는 방법. 프로그램이나 알고리즘의 성능을 알아보는 방법중 하나가 수행시간 측정입니다.
수행시간 측정용 C++ Class. 수행시간 단위는 Sec 입니다. 단 HighResolutionTimer를 지원하는 프로세서가 필요합니다.
__int64 m_nStart, m_nEnd, m_nFreq;
m_nStart = m_nEnd = m_nFreq = 0;
void End () {
QueryPerformanceCounter((LARGE_INTEGER*)&m_nEnd);
return (double)(m_nEnd - m_nStart)/m_nFreq;
est.End ();
if (nKey == S[nMiddleKey])
else if (nKey < S[nMiddleKey])
else
비교적 CPU와 OS에 의존적이지 않은 방법으로는 ftime 함수와 timeb 구조체를 사용하는 방법이 있습니다. 밀리세컨드 단위까지 밖에 제공되지 않습니다. sys/timeb.h 헤더에 정의된 내용이 ANSI C 는 아니라고 알고있습니다.
=== ftime 함수의 프로토타입 ===
short timezone ; /* difference between local time and GMT */
short dstflag ; /* 0 if daylight savings time is not in effect */
void show_est(struct timeb start, struct timeb end);
struct timeb start, end;
ftime(&end);
show_est(start,end);
void show_est(struct timeb start, struct timeb end)
- ProjectZephyrus/Client . . . . 37 matches
현재 공용 툴은 JCreator. JCreator 프로젝트 화일도 같이 업했으므로 이용할 수 있을 것임.
+ ---- MainSource - 메인 프로그램 소스 & JCreator 프로젝트 화일이 있는 디렉토리
+ ---- TestSource - 라이브러리를 익히기 위해 만은 예제 프로그램들이 있는 디렉토리
''보통 SP는 해당 작업이 요하는 노동의 양으로 결정하는데 이건 중요도군요. 나중에 SP와 중요도(비지니스적 가치) 양자를 고려해서, 즉 지출과 수입을 맞춰봐서, 최고의 쇼핑을 하도록 합니다. --JuNe''
노동의 양으로 생각해야 하는건 Engineering Task 가 아닌가요? 암튼 이번의 경우는 필수 기능 기준으로 잡아보긴 했습니다. (엄격하게 나눈건 아니긴 하지만요.~) --석천
''Engineering Task나 User Story 모두 노동의 양으로 estimation을 해서, 포인트를 준다. 이렇게 "비용"이 적힌 카드들을 놓고, 어느 것을 하고, 미루고, 먼저하는 지 등의 순위 결정은 "중요도 중심", "위험도 중심"이 있는데, 작년 이후 익스트리모들(KRW)은 복잡하게 이런 걸 따지지 말고 그냥 비지니스 가치로 순서를 정하라고 한다. --JuNe''
Task Point - 영서 & 석천이 Main Frame 연습용 코드 작성했을때 기준을 1 Task Point 로 잡음. (대강 120 라인정도/1시간 정도의 난이도 & 속도)
솔직히 서버와의 연동작업이 많아서. 이는 서버팀과 이야기를 해야 할 사안인데, 양 팀이 한꺼번에 모이는 시간이 없는게 안타까울뿐. (억지로라도 하루 잡아서 만들어야 할듯.) 일단은 클라이언트쪽 관점에서 해야할일만 적기. (서버는 이미 완성되어 있다는것으로 전제)
Total 6.5 TP. 실제로 6.5 * 1.5 = 9.75 TP 걸릴것으로 예상. 하지만 Task 는 계속 작업하면서 추가되기에, 실제로는 더 걸리겠지. 하지만 현재 생각할 수 있는 한도내에서의 예측이라는 점에서 의미. (미지인 부분에 대해 미리 걱정하기엔 현재 일도 빠듯하기에) 계속 Update 시켜야 하겠지.
|||||| ''' 로그인 - 3 ''' ||
|| 사용자 로그인 관련 ID/PASS 입력창 작성 || 1 || ○ (20분) 5/31 ||
|| 서버로 로그인 데이터 보내기 || 0.5 || ○ (35분) 6/5 ||
|| 서버로부터 로그인 관련 리턴값 확인. 처리 || 0.5 || ○ (45분 이용) 6/5, 6/7||
|||||| '''로그아웃 - 3 ''' ||
|| 입력한 대화 내용 서버로 보내기 || 0.5 || ○ (40분) 6/7 ||
|| 서버로부터의 대화내용 대화창에 표시 || 1 || ○(25분) 6/7 ||
|| 서버로부터의 등록한 친구 관련 메세지 처리 || 0.5 || ○ (1시간 20분) 6/5 ||
|| 서버로부터 친구상태 받고 buddy list 에 처리 || 0.5 || ○(25분) 6/7 ||
|| 친구 등록 입력창 만들기 || 0.5 || ○(1분 -_-; {{{~cpp InputDialog}}}로 해결) (6/7) ||
|| 서버로부터 등록 데이터 보내기 || 0.5 || ○(5분) (6/7) ||
- TheJavaMan/스네이크바이트 . . . . 37 matches
if(aBoard.board[x][y] == 2)
else
if(tSnake[0].EatApple(board))
if(apple.count>=1)
else
public class Board extends Frame{
int difficulty = 100;
snake=getToolkit().getImage(getClass().getResource("/images/Snake1.gif"));
apple=getToolkit().getImage(getClass().getResource("/images/apple.gif"));
MenuItem diff1 = new MenuItem("초보");
MenuItem diff2 = new MenuItem("중수");
MenuItem diff3 = new MenuItem("고수");
m3.add(diff1);
m3.add(diff2);
m3.add(diff3);
if(e.getActionCommand()=="초보")
difficulty = 200;
else if(e.getActionCommand()=="중수")
difficulty = 100;
else if(e.getActionCommand()=="고수")
- [Lovely]boy^_^/Arcanoid . . . . 37 matches
* 장나라 배경화면에서 그냥 파란 하늘 배경으로 바꿨다. 좌표 계산 삽질로 인해 야자수가 짤려버렸다.
* 옛날에는 1ms까지 멀티 타이머가 먹혔는데, 지금 하는건 5ms 이하로 하니까 끊긴다. 왜그럴까
* 스테이지는 역시 파일로 처리
* 멀티 타이머 해결봤다. 객체가 너무 크면 그런가 보다. 전부 크기를 1/4로 줄였더니 1ms까지 먹힌다.
* 소스에 이것저것 막 넣다 보니 지금 코드가 상당히 지저분해졌다. 중복을 최대한 없애는 방향으로 해놔서 중복은 별루 없지만, 한 메소드가 너무 길고, 클래스 별 역할 분담이 제대로 이뤄지지 않은것 같다. 모든 충돌루틴이 다 CArcaBall에 집중되어 있다.
* 전체적인 디자인 변화 : 먼저번게 분산식이었다면, 이번건 커다란 관리 클래스에서 알아서 하는 식으로 바꼈다. OOP로부터 점점 멀어지는거 같긴 하지만..--;
CArcaDoc : 위의 객체들을 포함한다. 블록은 벡터로 저장한다. 아이템은 먼저 나온걸 먼저 먹게 되므로 덱으로 저장한다.
* 지난번에 할때는 무조건 45도로 해서 별루 생각안했지만..
* 지난번엔 x로 1, y로 1 이렇게 움직였지만.. 이번에 대각선 길이 루트2에다가 cos22.5, sin22.5 이런걸 해버리면.. 캐스팅 될때 1,0 이 되면서 수직, 또는 수평으로만 움직일 수가 있다.
* MFC 책에 보면 비트맵 또는 GDI 쓸때 CPen pen, *pOldPen 이렇게 해서 뭔가 이상한 짓을 하는데 갠적으로는 왜 그렇게 하는지 이해를 못하겠다. 그냥 멤버에 넣어버리면 pOldPen 이런거 안해도 되던데.. 아시는분은 갈쳐 주세요.^^;
* 대충 이런건데요. 저는 왜 저렇게 하는지 잘 몰라서, 그냥 이런식으로 하거든요.
//이런식으로 해서 그리다가
* 고로 요지는.. 아--; 왜 이렇게 전달이 안돼지. 저렇게 포인터 만들었다가 그리다가 다시 선택하다가 하는 이유를 잘 모르겠다는..^^;
* 전자의 코드에 억매이는거 같은데, 전자의 코드의 전제가 여러명이 동시에 그릴려고 달려들때의 상황으로 생각하자. gdi에서는 event driven 이기 때문에 모든 책의 예제들이 항상 그런 경우를 상정하고 바로 이전의 객체로 그리기 상태로의 복귀를 전제로 하여 작성되어 있다. 하지만, 네가 그리고자 하는 영역이야 계속 하나로 선택되어 있어도 아무 상관 없는걸. CPen 이 어디로 도망가는 것도 아니고 말이지.
나는 좀더 욕심을 부려서, pDC 까지 보관하여 {{{~cpp GetDC}}}로 얻지도 않고 그릴려고 시도 했는데, 해봐 결과를 알수 있을꺼야. pDC는 끊임없이 변화를 시도하는 녀석이라 상태 유지가 되지 않더군. 바로 전까지 가진 pDC는 옛날 녀석이라 이거지, 결론으로 네가 의도하는 대로 상태 저장이 가능한 GDI Object를 그렇게 쓰는거 부담없다. --["neocoin"]
여담으로, 전에 MFCStudy 로 할때 각도 계산까지 넣었다면 좋을뻔 했지? ^^;; 하지만 아마 그때 넣었으면 더 시간이 걸렸을꺼 같아서;; 어이 인수 과거 소스를 나에게 넘겨 쿨럭. 농담이고, 아 진작 소스 겉어 둘껄 ^^;; --["neocoin"]
흑 ㅠ.ㅠ 예전 소스가 있었다면 제가 이거 만들고 있겠어요?--; 고스트 삽질로 싸그리 날렸더니만, 생각도 못한 ZP 자료실에 실행파일만 덩그라니 남아있을줄은..--;
* I resolve a problem of multi media timer(10/16). its problem is a size of a object. if its size is bigger than some size, its translation takes long time. So I reduce a size of a object to 1/4, and game can process 1ms of multi media timer.
- neocoin/Log . . . . 37 matches
|| [http://www.ocu.or.kr/ Unix 프로그래밍(U)]|| [http://cvlab.cau.ac.kr/ Object Programming(OP)]|| [http://cvlab.cau.ac.kr/ 정보 표준화(IS)] ||.||
* 개학하자 정신이 없다. 1학기 보다는 더 여유로운데 불구하고, 종종 놓치는 것이 발생된다. 이것이 지난달에 잃어 버린 스케줄러의 역할이 었으리라.
* OP - Object Programming Mosaic 프로그램 숙제
* 주어진 비트맵 파일의 정보중 2x2 픽셀의 평균값으로 모자이크 복사본을 제작하고, 저장할수 있다.
* 감안 : 임의의 비트맵 파일을 로드할수 있다. 임의 비트맵 파일로 저장할수 있다. MFC Class를 이용해 본다. Api로만 작성해 본다. Java로 작성해 본다. TDD를 생각해 본다. 어떻게 가능한가?
* ["ZeroPageServer"] 세팅 관련 페이지 ["ZeroPageServer/set2002_815"] : 제로페이지 서버 업그레이드
* ["프로그래밍잔치"] 기획, 진행
* 책에 대한 기록을 느낌을 적게 기록하고, 기억남는 문구의 인용으로 대체하여 보았다.
* 다시 위의 확장으로 GJ 학습, Java의 Polymorphism과 무슨 차이가 있는가 성능상 차이는 어떤가, 보고서 작성: 마소에 나온 관계로 유보
* 영어 듣기 말하기 , 가장 절실한거 같군. 거의 제로
* 프로그래밍 언어론 4th 한서 ( Concepts of Programming Language ) : PL 수업
* 4월까지 책의 저자들이 나에게 말해 준것들에 관한 분류, 기억에 남는 것들에 대한 기록을 소흘히 했다. 물론 마인드 맵식으로 설명하라고 하면 설명 하겠지만, 역시나 아쉬운 감이 있다.
* 5월이 끝나는 시점에서 Read의 수를 세어 보니 대략 55권 정도 되는듯 하다. 200까지 145권이니, 여름방학 두달동안 60여권은 읽어 주어야 한다는 결론이 난다. 부담으로 다가오는 느낌이 있는걸 보니 아직 책에 익숙해지지 않은것 같다. 휴, 1,2학년때 너무 책을 보지 않은 것이 아쉬움으로 남는다. 남들이 4년에 읽을껄 2년에 읽어야 하니 고생이다.
* 4월달에 많이 읽을 생각이었지만, 복병인 중간고사가 나를 괴롭힌다. Green gables of Ann 이 2권 남긴채 저 만치로 관심에서 벗어났다. 5월달에 끝내리
* 각종 도표나 자료에 한국에 대한 희망적인 소식들로 채워져 나가는 느낌이다. 대선 막바지에 정권 재창출을 위한 언론에 눈가림일까? 아님 정말로 한국이 흑자를 보는 것인가. 중고등학교때 무역 도표에서 몇년째 적자인 나라가 왜 잘 돌아가는지 의문을 IMF가 답해 주었는데, 진짜 2만불까지 갈수 있을까.
* 3월달은 13.5 권을 보았다. 양적 측면에서는 1,2월에 본 것에 2배 정도를 본것 같은데, 양적 측면에서 따지면 더 늘어 난다. 4월에는 중간 고사가 있겠지만, 20권 정도를 목표로 잡고 있다.
* 8일까지 MEC++로 씨름하였고, 이후에는 수강 신청이라는 것에 신경을 많이 썼다. 3월 중반에서야 시간표의 안정화가 이루어 져서, 시간 재배치 작업을 위한 스케중링에 들어갔고, 4월 중반즈음 하여 정립되어 중, 기말고사를 보낼 생각이다.
* 대선에서 경제를 잘 이끌 대통령은 보이지 않는다. 그나마 청결로 따지면 노무현이 마음에 든다. 경성에서 승리하길 바란다.
* ["MoreEffectiveC++"] : 20~32 장 한글화, 자세한 로그는 해당 페이지 기록
* ["OpenGL_Beginner"] : 진행하다가, MEC++로 집중, 자세한 로그는 해당 페이지 기록
- 프로젝트기록의필수요소토론 . . . . 37 matches
동기 : 현재(2002,1,30) 진행중인 프로젝트 대다수의(80%정도) 마감일이 정확하지 않습니다.
* ZeroWiki내 프로젝트 페이지의 6하 원칙
* '''이름(페이지, 프로젝트), 누가(인원), 언제(기간), 무엇을(목표), 어떻게(일정), 왜(동기)'''
["neocoin"] 지금 프로젝트중 어정쩡한 상황으로 가는게 있는데, 반달정도에 한번도 업데이트 안되는 것을 그 예라고 생각합니다. 프로젝트의 끝이 명확해야 하지 않을까요? 비록 팀원들간에 사정으로 해당 프로젝트가 와해 되었다면, 팀원들중 아무나, 혹은 다른 회원의 지적으로 종료 시점을 기록해서 와해 이유와, 차후 방지에 관하여 한번쯤 생각해 봐야 할것이라고 생각 됩니다. [[BR]]
지금과 같이 누적되면 말그대로 용두사미 격이 되어 버리는 계획들이 많아 질것 같아서 우려 됩니다. 아예 깨끗이 휴식이나 종료로 넘기거나(휴식이 많아지면 또 차후 휴식만 다른 페이지로 가고) 해야 할것 같은데, 그것에 기초 데이터가 마감일 일것 같습니다. 어떤지??
[1002] 프로젝트의 마감부분은 중요한 부분이 됩니다. 올바른 프로젝트의 끝맺음은 새로운 프로젝트를 다시 추진할 수 있도록 뒷처리를 해주니까요. 현재 semi-project 부분의 경우 그 양이 많은데, 어떻게 끝맺음들을 할지는 좀 더 두고봐야하겠습니다. (자신 주도하로 할 자신이 없다면 페이지를 '일반화' 시켜버리십시오. 즉, 자신의 이름을 걸고 하지 말고 하나의 문서처럼 Document 화 시켜버리십시오. 그렇다면 다른 사람들이 중간에 참여하기가 더 용이할 겁니다.) 개인의 이름을 걸고 한다는 것은 그만큼 자신이 해당 페이지를 연 것에 대해 (또는 프로젝트를 연 것에) 책임을 지겠다는 것으로 해석한다면 제가 오버한 것일까요? 하지만, 그런뜻으로 하신 것이 아니라 하더라도, 어느정도 책임감을 가지셨으면 좋겠습니다.
[1002] 프로젝트 이름에 대해서 한마디 한다면, 'Java', 'ExtremeProgramming' 은 공부하려고 하는 지식의 종류이지 프로젝트의 이름으로 부적절하다고 봅니다. 만일 Java Study 팀이 두 개인 경우라면? 문제가 발생할 수 밖에 없습니다. 초창기에 해당 기술부분으로 페이지를 열 수는 있지만, 나중에 프로젝트가 끝나고 난다음에는 일반화시켜서 본래의 이름을 반환해주는 것이 좋다고 생각합니다. (즉, 'Java' 페이지는 Java 에 대한 소개나 기술 등을 넣어주고, 'Java' 페이지이름을 썼던 프로젝트팀은 프로젝트팀 이름의 새 페이지를 만들어서 경과보고를 하는식으로..)
[1002] 제 말이 절대적인 것이 아닙니다. 저 이야기는 말 그대로 저의 의견일 뿐, 결정사항은 아닙니다. 옳고그름에 대해 판단하시고, 다른 사람들의 판단들이 모아진 뒤에 행동하시기를.
[1002] 한가지 더 지적한다면, 해당 토론 또한 기간이 있어야 할 것 같다는 생각. --; (사람들이 이야기는 많지만, 정작 '어떻게 하자', '예. 동감합니다', '아니요. 그건 그렇게 생각하지 않습니다', '이러이러한 방향이 더 좋겠습니다' 라는 이야기를 안하니. -_-;) 기간이 길어지고 아무 이야기 없으면 해당 주제에 대한 결론을 영원히 유보해야 하겠습니까.. 쩝. 전에도 이야기 했지만, WIKI 자주 이용해주시고, 불편하시면 다른쪽 게시판이나 해당 사람에게 e-mail 로 답변을 주시기를. (동보메일이라도 보낼까요? --a ZP 에 sendmail 이 돌고있던가 기억이 안나는군. --;)
["neocoin"] ZeroWiki의 프로젝트 페이지를 위한 6하 원칙을 생각해 봤습니다. 저정도면 될것 같네요. 어디서(where)이 있지만 이것은 보나마나 여기서 여기서니 프로젝트 이름으로 대체해서 했습니다. 앞으로의 모든 페이지가 저 정보가 꼭 있어야 한다고 정모에서 건의 함이(이거 원 정모를 해야 --;) --상민
- 하욱주/Crap . . . . 37 matches
cout << "당신의 재산은 $" << money << " 입니다." << endl
if(money<beting)
cout << "당신의 재산보다 많습니다. 다시 배팅해 주십시오." <<endl;
if(beting >100 || beting <10)
cout << "$10~$100 사이로 입력해 주십시오." << endl;
cout << "당신이 배팅하신 금액은 $" << beting <<" 입니다." << endl
<< "어디에 거시겠습니까?" << endl
<< "|----------------------------------|" <<endl
<< "| Number | 배팅 | 지불 |" <<endl
<< "|--------+------------+------------|" <<endl
<< "| 1 | 2 or 12 | 5:1 |" <<endl
<< "| 2 | 4 or 10 | 2.5:1 |" <<endl
<< "| 3 | 6 or 8 | 1.5:1 |" <<endl
<< "|----------------------------------|" <<endl
cout << num <<"번을 택하셨습니다. 그럼 게임을 진행합니다." <<endl
<< "첫번째 주사위의 숫자는 :" << sq1 << endl
<< "두번째 주사위의 숫자는 :" << sq2 << endl
<< "두 주사위의 합은 : " << sq1+sq2 <<endl;
if((sq1+sq2)%2==0)
if((sq1+sq2)==2 || (sq1+sq2)==12)
- ComputerNetworkClass/Report2006/PacketAnalyzer . . . . 36 matches
3. ethereal의 기능 중 1개 또는 새로운 기능을 한가지 구현
WSAIoctl 은 소켓이나 트랜스포트 계층 프로토콜, 통신 시스템의 구성과 관련된 사항을 설정하거나 설정값을 가져오기위해서 만들어졌다.
WSA prefix 를 가진 함수의 경우 대부분 Winsock 2에서 제공 되기 시작한 것이며, 이 WSAIoctl 역시도 윈속 2에서 지원된다.
네트워크의 3번째 프로젝트를 하기위해서는 SIO_RCVALL 라는 옵션을 설정하여 사용할 줄 알아야한다. 유사한 옵션으로는
※ 윈도우 소켓 프로그래밍을 위해서는 윈속 라이브러리를 같이 linking 해야하며, WSActrl 을 사용하기 위해서는 winsock2 라이브러리인 ws2_32.lib 를 포함해야한다.
※ 'SIO_RCVALL' : undeclared identifier 에러가 뜰 경우에 아래 코드를 추가 한다.
#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)
SOCKADDR_IN if0;
if (WSAStartup(MAKEWORD(2,2), &wsd) != 0)
if (bFilter)
if (s == INVALID_SOCKET)
if (GetInterface(s, &if0, dwInterface) != 0)
printf("Binding to IF: %s\n", inet_ntoa(if0.sin_addr));
if0.sin_family = AF_INET;
if0.sin_port = htons(0);
if (bind(s, (SOCKADDR *)&if0, sizeof(if0)) == SOCKET_ERROR)
if (WSAIoctl(s, SIO_RCVALL, &optval, sizeof(optval),
if (ret == SOCKET_ERROR)
상기와 같이 기존의 서버 프로그램과 다른 점은 별로 없다. (Listen과 accept가 없네요. WSAIoctrl에서 다 처리하는건지...) 단지 소켓을 ioctrl 로 조정해서 ip 수준에서 올라오는 패킷을 기존과 다르게 처리할 뿐이다.
아마도 listen, accept 가 패킷 필터링을 하는 것으로 보이는데 dst 상관없이 무조겁 application 까지 올라오니깐 필요없는 것이 아닐까? 그런 생각하고 있음. -_- - [eternalbleu]
- HowManyPiecesOfLand?/문보창 . . . . 36 matches
이론상으론 O(1) 시간만에 되겠지만 문제는 입력범위가 2 <sup>31</sup> - 1 까지 들어올 수 있기 때문에 고정도 연산을 수행해야 한다. GNU C++ 이나 Java는 고정도 연산을 수행할 수 있는 클래스를 포함하고 있으나, 윈도우 C++에는 없다(혹, 내가 못찾는 것일수도 있다). 따라서 고정도 연산을 수행할 수 있는 클래스를 짰다. 성능이 너무 떨어진다. O(1) 을 O(n<sup>5</sup>) 정도로 바꿔 놓은 듯한 느낌이다. 이 Class를 개선한뒤 다시 테스트 해봐야 겠다.
// 마지막으로 수정한 날짜 :
// 주의 : 오버플로우 처리 안함
// 함수 호출이 모두 복사로 이루어지므로 성능이 크게 떨어진다.
if (signbit == MINUS) cout << "-";
if (temp[0] == '-')
else if (temp[0] == '+')
friend void elminatePreZero(BigInteger& n)
if (n.lastdigit == 0 && n.digit[0] == 0)
friend int compare(BigInteger& a, BigInteger& b)
if (a.signbit == MINUS && b.signbit == PLUS) return PLUS;
if (a.signbit == PLUS && b.signbit == MINUS) return MINUS;
if (b.lastdigit > a.lastdigit) return (PLUS * a.signbit);
if (a.lastdigit > b.lastdigit) return (MINUS * a.signbit);
if (a.digit[i] > b.digit[i])
if (b.digit[i] > a.digit[i])
friend void shiftDigit(BigInteger& n, int d)
if (n.lastdigit == 0 && n.digit[0] == 0) return;
friend BigInteger operator+(BigInteger a, BigInteger b)
if (a.signbit == MINUS && b.signbit == PLUS)
- MemeHarvester . . . . 36 matches
* 젠장.. 구글에도 이와 비슷한 알리미라는 서비스가 나왔구나.. 내꺼가 먼저 만들어졌는지 이게 먼저 만들어 졌는지는 모르겠지만.. 이것은 사용자가 사이트와 키워드를 입력하는 그러한 번거로움 없이 사용자가 한번 방문한 사이트들에 대해서 자동적으로 업데이트 내용들을 알려주는 방식이었다. 이 방식은 본 받을만 한거 같다.
* 이것은 [EventDrvienRealtimeSearchAgency] 의 일종이다.- 싸이월드를 보면 자신의 방명록에 글이 올라오면 바로 알려준다. 이를 모든 웹사이트에 대해서 가능하도록 하는 프로젝트, 물론 단순히 새글이 올라왔다고만 알려주는것은 아니다. 어떠한 새글이 올라왔는지 실시간으로 알려주며 키워드를 입력하면 해당 키워드가 포함된 글이 올라올때만 알려주기도 한다. 활용 예를 보면 어떤 프로젝트인지 잘 이해가 갈 것임..
|| 데이터 수집 || 로봇이 모든 웹을 돌아다니면서 데이터 저장 || 사용자가 특정 웹을 지정하고, 해당 웹에서 사용자가 원하는 키워드가 포함된 글이 올라올 경우나 새 글이 올라올 경우(옵션에 따라) 실시간으로 알려줌, RealTimeSearchEngine ||
|| 데이터를 보여주는 방식 || 사용자가 키워드 입력 -> 저장된 데이터를 보여줌.(필요 없는 정보를 포함하여 너무 많이 보여줌) || 사용자가 키워드(입력할수도 있고 아닐수도 있고)와 특정 웹사이트들을 입력하면 해당 웹사이트에서 그 시점으로부터 특정 키워드가 새로 올라오면 실시간으로 알려주거나, 그 시점부터 특정 시점까지 바뀐 내역을 보여줌 ||
|| 주식투자 || 자신이 특정 회사에 주식을 투자 하고 나서 해당 회사를 키워드로 입력하고, 모니터링 할 관련 웹사이트들(신문사, 경제관련 매체)을 등록해놓으면 해당 회사에 관련된 기사가 올라오면 실시간으로 알려준다. ||
|| 질문에대한 답글기다림해소 || 예를 들어서 데브피아에 자신이 궁금한 것을 질문 게시판에 올리고 나서, 해당 게시판과 자신의 질문에 관련된 키워드를 입력해놓으면 자신의 질문에 대한 답글이 올라오면 실시간으로 알수있다. ㅤㄱㅙㄶ이 들락날락 할 필요가 없어진다. ||
|| 대중 매체 관리 || 연예인 같은 경우 자신과 관련된 기사가 어디에 새로 올라왔는지 알고 싶을때 자신의 이름을 키워드로 넣고 여러 관련 사이트들을 입력 하면 자신과 관련된 기사가 올라오면 실시간으로 알수 있다. 또한 학교나 기타 기관에서도 자신들의 이름이 어떠한 매체 거론되는지 실시간으로 모니터링을 할 수있다. 예를 들어 우리학교에서도 알바생을 시켜서 각 신문을 뒤적이면서 학교 관련 기사가 나왔는지 찾게 하는데 이런 것들을 자동화 하는게 가능하다. ||
|| 불필요한 웹서핑 줄이기 || 자신이 주로 가는 모든 사이트들에 대해서 수시로 들락 날락 할 필요 없이 특정 시점부터 특정 시점까지 바뀐 내역만 한곳에서 모두 볼 수 있다면 편리~ ||
|| 이메일 알림이 || 자신의 이메일 오는것중 특정인으로부터 오는것이나 특정 제목의 이메일이 오는경우 실시간으로 알려줄수 있는 기능.. 추후 핸드폰 문자 메시지로 알려줄수도 있다. ||
|| 중고 매매 알선 || 특정 중고 제품을 원한다고 등록해놓으면 현재 등록되어 있는 중고 사이트중에서 해당 물품이 올라올 경우 사용자에게 실시간으로 알려준다. ||
|| 05/12/18 || WebDiff - 남상협 || 타겟 웹 긁어와서 디비에 저장하는것까지 완료 ||
|| 05/12/19 || WebDiff - 남상협 || 비교 하는것까지 완료 ||
|| 05/12/20 || WebDiff - 남상협 || 사이월드 방명록 알림이 기능 테스트.. ||
||- || WebDiff - 남상협 || 바뀐 내용 비교 루틴 작성 ||
|| 05/12/25 || webDiff - 남상협 || 서버 완성(쓰레드사용), 정보를(id,비번,비교할 웹사이트 정보) 받으면 바뀐 내역을 클라이언트에게 알려줌 ||
|| 05/12/28 || client Agency || 로그인 및 등록해놓은 사이트 목록 보여주는것까지 완료 ||
|| 로그인이 필요한 사이트 테스트 해보기 ||
- MoreEffectiveC++/Appendix . . . . 36 matches
== Recommended Reading ==
So your appetite for information on C++ remains unsated. Fear not, there's more — much more. In the sections that follow, I put forth my recommendations for further reading on C++. It goes without saying that such recommendations are both subjective and selective, but in view of the litigious age in which we live, it's probably a good idea to say it anyway. ¤ MEC++ Rec Reading, P2
There are hundreds — possibly thousands — of books on C++, and new contenders join the fray with great frequency. I haven't seen all these books, much less read them, but my experience has been that while some books are very good, some of them, well, some of them aren't. ¤ MEC++ Rec Reading, P4
What follows is the list of books I find myself consulting when I have questions about software development in C++. Other good books are available, I'm sure, but these are the ones I use, the ones I can truly recommend. ¤ MEC++ Rec Reading, P5
A good place to begin is with the books that describe the language itself. Unless you are crucially dependent on the nuances of the °official standards documents, I suggest you do, too. ¤ MEC++ Rec Reading, P6
Stroustrup has been intimately involved in the language's design, implementation, application, and standardization since its inception, and he probably knows more about it than anybody else does. His descriptions of language features make for dense reading, but that's primarily because they contain so much information. The chapters on the standard C++ library provide a good introduction to this crucial aspect of modern C++. ¤ MEC++ Rec Reading, P12
If you're ready to move beyond the language itself and are interested in how to apply it effectively, you might consider my other book on the subject: ¤ MEC++ Rec Reading, P13
* '''''Effective C++''''', Second Edition: 50 Specific Ways to Improve Your Programs and Designs, Scott Meyers, Addison-Wesley, 1998, ISBN 0-201-92488-9. ¤ MEC++ Rec Reading, P14
That book is organized similarly to this one, but it covers different (arguably more fundamental) material. ¤ MEC++ Rec Reading, P15
A book pitched at roughly the same level as my Effective C++ books, but covering different topics, is ¤ MEC++ Rec Reading, P16
If you're the kind of person who likes to learn proper programming technique by reading code, the book for you is ¤ MEC++ Rec Reading, P19
Each chapter in this book starts with some C++ software that has been published as an example of how to do something correctly. Cargill then proceeds to dissect — nay, vivisect — each program, identifying likely trouble spots, poor design choices, brittle implementation decisions, and things that are just plain wrong. He then iteratively rewrites each example to eliminate the weaknesses, and by the time he's done, he's produced code that is more robust, more maintainable, more efficient, and more portable, and it still fulfills the original problem specification. Anybody programming in C++ would do well to heed the lessons of this book, but it is especially important for those involved in code inspections. ¤ MEC++ Rec Reading, P21
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
If you are contemplating the use of exceptions, read this article before you proceed. ¤ MEC++ Rec Reading, P24
If you have anything to do with the design and implementation of C++ libraries, you would be foolhardy to overlook ¤ MEC++ Rec Reading, P28
Carroll and Ellis discuss many practical aspects of library design and implementation that are simply ignored by everybody else. Good libraries are small, fast, extensible, easily upgraded, graceful during template instantiation, powerful, and robust. It is not possible to optimize for each of these attributes, so one must make trade-offs that improve some aspects of a library at the expense of others. Designing and Coding Reusable C++ examines these trade-offs and offers down-to-earth advice on how to go about making them. ¤ MEC++ Rec Reading, P30
Regardless of whether you write software for scientific and engineering applications, you owe yourself a look at ¤ MEC++ Rec Reading, P31
* '''''Scientific and Engineering C++''''', John J. Barton and Lee R. Nackman, Addison-Wesley, 1994, ISBN 0-201-53393-6. ¤ MEC++ Rec Reading, P32
The magazine has made a conscious decision to move away from its "C++ only" roots, but the increased coverage of domain- and system-specific programming issues is worthwhile in its own right, and the material on C++, if occasionally a bit off the deep end, continues to be the best available. ¤ MEC++ Rec Reading, P42
If you're more comfortable with C than with C++, or if you find the C++ Report's material too extreme to be useful, you may find the articles in this magazine more to your taste: ¤ MEC++ Rec Reading, P43
- NSISIde . . . . 36 matches
그냥 Editplus 에서 makensis 을 연결해서 써도 상관없지만, 만일 직접 만든다면 어떻게 해야 할까 하는 생각에.. 그냥 하루 날잡아서 날림 플밍 해봤다는. --; (이 프로젝트는 ["NSIS_Start"] 의 subproject로, ["NSIS_Start"] 가 끝나면 자동소멸시킵니다. ^^;)
Solo Programming 으로 진행. XP 공부한거 소폭 적용해봄.
* .nsi 스크립트를 직접 컴파일해서 실행화일로 만들 수 있다. 컴파일 과정이 output 창에 표시된다.
한 Iteration 을 2시간으로 잡음. 1 Task Point는 Ideal Hour(?)로 1시간에 할 수 있는 양 정도로 계산. (아.. 여전히 이거 계산법이 모호하다. 좀 더 제대로 공부해야겠다.)
|| 자료구조에 있는 데이터를 화일로 저장. || 0.4 ||
* .nsi 스크립트를 직접 컴파일해서 실행화일로 만들 수 있다. 컴파일 과정이 output 창에 표시된다.
3.5 * 2 (실제로는 1.5배~2배정도 시간이 걸릴것임) = 7 시간 [[BR]]
* Script 로부터 Output 이 될 Target 화일의 분석 & 이름 가져오기 - 0.7
-> Singleton 으로 있어야 할 녀석임.
-> AppClass 에 있으면 자동으로 Singleton 이 되겠군. ^-^;
-> Nsis Execute 뒤에 바로 Output 을 뿌려주면 됨.
Script 로부터 Output 이 될 Target 화일의 분석 & 이름 가져오기 - 0.7
* CWinApp::OnFileNew -> CDocManager::OnFileNew -> CMultiDocTemplate::OpenDocumentFile -> CNIDoc::OnNewDocument .. -> CNIView::OnInitialUpdate ()
* CWinApp::OnFileOpen -> CDocManager::OnFileOpen -> CMultiDocTemplate::OpenDocumentFile -> CNIDoc::OnOpenDocument .. -> CNIView::OnInitialUpdate ()
* CFrameWnd::OnClose -> CWndApp::SaveAllModified -> CDocManager::SaveAllModified -> CDocTemplate::SaveAllModified -> CDocument::SaveModified -> CDocument::DoFileSave -> CDocument::DoSave -> CNIDoc::OnSaveDocument
* CDocument::SaveModified -> DoFileSave
* 프로그램 실행중 다른 Process 띄우고 결과 스트링 얻어오기 (Console Util)
http://zeropage.org/~reset/zb/data/NSISIDE_output.gif
* 화면의 에디터와 실제 데이터 저장되는 부분이 update가 제대로 안된다.
* MFC 와 연결되는 부분에 대한 TestFirstProgramming 을 제대로 지키지 못했다. (아.. GUI 부분은 애매하다. --;) 애매한 부분에 대해서 예전에 하던 방식이 섞이다 보니까 리듬이 깨졌다. 차라리 철저하게 TFP로 가는게 나았었을텐데 하는 생각이 들었다.
- ProgrammingLanguageClass/Report2002_1 . . . . 36 matches
* 프로그램 소스코드 및 실행파일이 든 디스켓
<statement> → <identifier> <assignment_operator> <expression>
| <identifier>
| <identifier><condition><identifier><question_operator><compare_value>
<compare_value> → <identifier> <colon> <identifier>
<identifier> → any names conforming C identifier
* 입력: INPUT.TXT로 이름지어진 텍스트 파일
* 처리 조건
* <identifier>와 <constant>의 경우에는 찾아진 lexeme을 함께 출력한다.
예) void identifier(void) {
printf("<identifier>: %s parsed.\n",token_string);
* 입력 스트림에서 ASCII 코드로 32 이하인 것은 모든 white-space로 간주하며, white-space는 각 token을 구별하는 용도 이외에는 모두 무시한다.
* 문장이 문법에 적합하지 않으면 관련 오류 메시지를 출력한다. 그 다음 오류를 발생시킨 lexeme을 제거 또는 첨가한 후, 파싱을 재개한다. 예를 들어, x = a + + b일 경우, “+” 연산자가 한 개가 더 존재하므로 오류 메시지를 출력한다. 그 다음, “+”기호를 제거한 후 파싱을 계속한다.
* 데모 시 디스켓에 실행파일을 미리 준비한다(데모 시에 컴파일하는 경우는 감점처리함).
<identifier>: target parsed.
<identifier>: operand1 parsed.
<identifier>: operand2 parsed.
<identifier>: target parsed.
<identifier>: operand1 parsed.
<identifier>: operand2 parsed.
- SeminarHowToProgramItAfterwords . . . . 36 matches
* [창섭]:PairProgramming 자체가 인상적이었습니다. 음악을 아마추어로 하는 저로써는 음악외에도 이렇게 멋지게 콤비를 결성할 수 있다는 것에 놀라울 따름입니다. ^^;; 그리고 변수명을 고치는 것 자체가 Refactoring 에 들어가고 매우 중요하다는 사실도 감명이었습니다. ^^;
''그래서 PP나 XP의 과정을 Jazz에 비유하곤 합니다. 그리고 한번 유의어사전을 프로그래밍시 일주일간만 사용해 보세요. 그리고 거기서 무엇을 더 배웠는지 이야기해보면 참 좋겠네요. --김창준''
* [재동]:여러 사람과 처음으로 프로그래밍을 같이 하면서 커뮤니케이션이 얼마나 중요한 지를 확실히 알았습니다. 이제부터는 '말 많은' 프로그래머가 되어야 겠습니다 ^^ 오늘 세미나 정말 수고하셨습니다
* ["neocoin"] : UnitTest에서 추구한 프로그램의 설계에서 Divide해 나가는 과정은 여태 거의 디자인 타임에서 거의 수행을 했습니다. 그래서 여태 Test를 위한 코드들과 디버그용 코드들을 프로그램을 작성할때마다 그런 디자인에도 많은 시간을 소요했는데, 아예 프로그램의 출발을 Test에서 시작한다는 발상의 전환이 인상 깊었습니다. --상민
* ["1002"] : 어제 Test Code : Product Code 간 중복 (return 0 !) 을 OAOO로 풀어서 Refactoring 을 해야 할 상황으로 규정짓는다는 말이 뒤통수를 한대 때리는 기분이였습니다;;
* TDD를 어설프게나마 시도하면서 느낀점이 'TDD 에서의 Product Code 는 오직 테스트 까지만 만족하는 코드인가' 였었는데. 한편으로는 이렇게 해석할 수 있겠더군요. '해당 스케일에 대해 더욱더 정확하게 작동하는 프로그램을 만들고 싶다면 그만큼 테스트 코드 양을 늘려라.' 테스트코드 자체가 일종의 Quality Assurance 를 위한 도큐먼트 역할도 된다는 점을 다시 생각하게 되었습니다.
* 아까 발표때에도 이야기했지만, Code Review 를 위한 reverse-TDD (정도로 해둘까요? 이것도 관련 문서가 있을텐데. ) 를 해보는 것도 좋을 것 같네요. 코드 분석을 위한 test-code 작성이요. 즉, 이미 만들어져있는 코드를 테스트 코드라고 상정하고, 자신이 제대로 이해했는가에 대한 검증과정을 Test-Code 로 만드는 것이죠. 시간 있었으면 오늘 마저 시도해봤을텐데, 시간에 마음 쫓긴게 아쉽네요.
* ["Refactoring"] 책에서는 ''Refactor As You Do Code Review'' 에 Code Review 를 위한 Refactoring을 이야기 하는데, Refactoring 을 위해서는 기본적으로 Test Code 가 필요하다고 할때 여기에 Test Code를 붙일테니까 상통하는 면이 있긴 하겠군요.
* ["nautes"] : 참관자로서 있었는데 .. 대부분의 시간을 카메라 찍느라고 여념이 없었지만, 이 자리를 빌어서 반강제적으로 촬영에 협조해주신 분들께 감사와 사죄를 ..
* 흥미로운 것은 시끄러운 프로그래밍이였다는 것이였습니다. 혼자서 하는 프로그래밍(PairProgramming을 알고나니 새로운 개념이 생기는군요. 원래 Programming이라는 것은 혼자하는 거였는데, 이제 프로그래밍하면 pair인지 single인지 구분을 해주어야겠군요)을 하는 경우에는 팀원들이 소란스럽게 떠들면 ''아 지금 설계하고 있구나''하고 생각하고, 조용해지면 ''아 지금 코딩하고 있구나..''하는 생각이 들었는데, PP는 끝까지 시끄럽게 하는거라는 느낌이 들더군요. 그렇게 대화가 많아지는 것은 코딩에 대한 이해도의 증가와 서로간의 협력 등 많은 상승효과를 가져올 수 있다는 생각을 했습니다.
* 그리고 관찰하던 중 PairProgramming에서 Leading에 관한 사항을 언급하고 싶습입니다. 사용하는 언어와 도구에 대한 이해는 확실하다는 전제하에서는 서로가 Pair에 대한 배려가 있으면 좀더 효율을 낼 수 있을꺼라 생각합니다. 배려라는 것은 자신의 상대가 좀 적극적이지 못하다면 더 적극적인 활동을 이끌어 내려는 노력을 기울어야 할 것 같습니다. 실습을 하던 두팀에서 제 느낌에 지도형식으로 이끄는 팀과 PP를 하고 있다는 생각이 드는 팀이 있었는데. 지도형식으로 이끄는 팀은 한 명이 너무 주도적으로 이끌다 보니 다른 pair들은 주의가 집중되지 못하는 모습을 보인 반면, PP를 수행하고 있는 듯한 팀은 두 명 모두 집중도가 매우 훌륭한 것 같아서 이런 것이 정말 장점이 아닌가 하는 생각이 들었습니다. 결국 PP라는 것도 혼자가 아닌 둘이다 보니 프로그래밍 실력 못지 않게 개인의 ''사회성''이 얼마나 뛰어냐는 점도 중요한 점으로 작용한다는 생각을 했습니다. (제가 서로 프로그래밍중에 촬영을 한 것은 PP를 전혀 모르는 사람들에게 이런 형식으로 하는 것이 PP라는 것을 보여주고 싶어서였습니다. 촬영이 너무 오래 비추었는지 .. 죄송합니다.)
* 안녕하세요? 참관자였던 사람입니다. Feedback이 좀 늦었네요. 색다른 경험이었던것 확실했는데, 다만 시간이 한시간 정도만 길었더라면, 훨씬더 많은건 느꼈을것 같아서 아쉽습니다. TDD나 CRC카드 둘다 접하기엔 좀 짧은 시간이었던것 같습니다. 앞으로도 이런기회가 많았으면 좋겠네요. 그럼 이만... --김정준
- SummationOfFourPrimes/1002 . . . . 36 matches
합이 x 인 수 조합리스트에 대해 어떻게 구할까 궁리하던중, 소수리스트를 먼저 만들고 소수리스트에서 4개를 골라서 합을 구한 결과가 n 인지를 비교하는 방법이 더 빨리 구현할 수 있겠구나라는 생각이 들었다. 이에 대해서 TDD로 진행.
if self.isPrimeNumber(i):
self.resultTable.append(i)
if aNum % eachValue == 0:
그리고 소수리스트로부터 4개를 구하는 방법에 대해 생각하다. 맨 처음에 대해서는 중복을 허용하면 안되는 줄 알고 구현하였다. 그러다가 문제에서 중복을 허용한다는 사실을 알고 다시 구현.
if self.isPrimeNumber(i):
self.resultTable.append(i)
if aNum % eachValue == 0:
if sum(eachPrimeNumberSeq) == n:
if __name__=="__main__":
대부분의 시간은 소수테이블을 작성하는 부분이 된다. 그래서 이 부분에 대해서 Seminar:PrimeNumber 를 참고, 최적화된 알고리즘으로 수정하였다. 그리고 역시 psyco 를 이용하였다. 그 결과, 10000000 기준 10초. 기존 알고리즘의 경우 50000번 기준 24초 이상.
최적화 이후 50000번 기준으로는 병목에 대한 변별력이 없다.
여기서 selectionFour 의 경우는 percall 에 걸리는 시간은 적다. 하지만, call 횟수 자체가 470988 번으로 많다. 이 부분에 대해서 일종의 inlining 을 하였다.
10000000 건에 대해서는 7.49 초 기록 (profiler 를 이용할 경우 속도저하가 있기 때문에 profiler 를 끄고 psyco 만으로 실행)
비록 inlining 을 시켰지만 여전한 것은 selectionFour 부분이다. selectionFour 가 실행되는 경우의 최악의 경우는 (n 까지의 소수갯수)^4 가 된다. 이를 좀 더 smart 하게 할 방법이 없을까.
가장 간단한 아이디어로, 4번째 값에 대해서는 바로 계산을 할 수가 있겠다.
if expectedLastValue in aList:
else:
PyRex 는 Python 코드를 C 코드로 전환해준다. 이를 이용, C 모듈로 만들어 컴파일하고 결과를 실행. 의외로 7.x 대로, PsyCo 를 썼을때보다 오히려 성능이 떨어졌다. C 코드를 보니 웬걸. 전혀 알아볼수가 없는 코드다. 차라리 깨끗하게 직접 작성해주는게 성능향상 상으로는 유리하겠다는 생각.
* 이전에도 느낀 점이지만, 한가지 문제를 아주 깊게 풀어보려고 하는 것도 여러가지로 학습이 된다.
- TheJavaMan/테트리스 . . . . 36 matches
public class Tetris extends Applet implements Runnable {
if(board[i][j]) {
else {
if(checkDrop()) {
else {
if(!board[col][row])
if(delOk) {
if( (blockY[i]+1)!=21) {
if(board[blockX[i]] [blockY[i]+1] )
else {
if(clock==null) {
if((clock!=null) && (clock.isAlive())) {
if(runGame) {
} else {
if( blockX[i]>=0 && blockX[i]<12 && blockY[i]>=0 && blockY[i]<21 ) {
if(board[blockX[i]][blockY[i]])
else {
if( (blockX[i]+dir)>=0 && (blockX[i]+dir)<12 ) {
if( board[blockX[i]+dir][ blockY[i]])
else moveOk=false;
- 데블스캠프2013/첫째날/후기 . . . . 36 matches
* 마케팅 측면에서 SNG이 어떤 매력을 가지고 있는지 알 수 있었습니다. 표절이 난무하고 퀄리티가 떨어지는 카카오톡이나 페이스북 게임들을 보면서 퇴보라고만 생각했는데, 새로운 시장이 생긴 것이라고 생각 할 수도 있을것 같습니다. - [백주협]
* 어느정도 기사나 추측으로 보고 있던걸 실질적인 관점에서 바라볼 수 있었네요. 사실 전 이런 게임 사이클도 오래가지 않아 사그라들거라고 생각하는 입장을 가진 사람중에 한사람이지만.. 그렇게 부정적으로 볼 것까진 없는거같구요. 재밌게 들었습니다. :) -[김태진]
* 코딩 관련 프로젝트를 조금 더 효율적으로 할 수 있는 방법을 알게 되어 뜻깊었다. - [송정규]
+ git에 대해 완전히 알 수는 없었어도 오늘 배운 정도만 되어도 충분히 쓸 수 있을 정도로 설명 잘 해주섰더군요 - [이봉규]
* 데블스 캠프에서 빠질 수 없는 내용인 버전 관리 프로그램 관련 내용을 안혁준 선배가 해 주셨습니다. 전체적으로 깔끔하게 진행한 느낌이었고, 직접 사용까지 해 보면서 새내기들은 조금 더 와 닿지 않았을까 싶네요. 다만 후반의 실습 부분은 약간 구성을 바꾸면 조금 더 매끄럽게 실습을 할 수 있지 않았을까 하는 아쉬운 느낌이 있었습니다. - [서민관]
* 버전 관리 프로그램이라는 점에 대해서는 작년에도 SVN(이 맞나요?)을 했던 것 같던데, 올해 git을 배워가네요! 근데, 이건 제가 git을 공부를 해야 될 것 같습니다. 이해는 머리속에서 잘 하는데, 사용을 못하겠네요ㅠ_ㅠ. 확실히 저는 습득속도가 느린가봐요ㅠ..어어ㅡㅠㅓ.. - [김해천]
* 많은 도움이 되는 시간이었습니다. 사실 버전을 따로 관리 하지 않아서 오히려 완성된 코드에 손을 대기 꺼져질 때도 있었는데 Git을 사용하면 이런 부단 없이 코드를 수정 할 수 있을것 같습니다. -[백주협]
* GIT으로 누가 멍청한 코드를 짰는지 좋은 예시를 든답시고 while문을 집어넣었는데 세션 진행에 방해가 되었었네요. 조금 조심해야겠다는 생각이 들었어요. -[김태진]
* GIT이 코드 줄 단위로 수정자를 확인할 수 있는건 진짜 좋은 기능인듯. SVN에도 있었을려나?? - [장혁수]
* 너무나도 생소한 내용이었지만 정말 재미있었고 앞으로 많은 도움이 될 거라고 생각합니다 - [원준연]
* 네트워크 쪽은 지식이 상당히 얕은 관계로 그냥 두 노드간의 통신을 시뮬레이트 하는 방법 중에 이런게 있구나라는 것을 알아두는데에 의의가 있었습니다. 아, 이거하면서 페이스북에 리눅스 이야기도 나오고 민관이형이 리눅스를 물어보는 족족 너무 잘 가르쳐주신데다가 곁다리로 제 관심을 확 끌어당기는 중앙저장소 이야기가 나와서 리눅스에 대한 관심을 일으키게된 세션이 되었습니다. - [김윤환]
* 네트워크를 시뮬레이터가 오픈소스 형태로 제공되고, 모델들을 테스트하는데 유용하게 쓰인다는걸 알수 있어 재미있었다.- [송정규]
* 상당히 신기한 느낌은 있었는데 이걸 어떻게 쓰면 잘 쓸 수 있을지는 경험이 별로 없어서 그런지 확 와 닿지는 않았다는 게 좀 아쉬웠다. 일단 봉규가 말한 대로 네트워크쪽 알고리즘 등의 시뮬레이션에는 쓸 수 있을텐데 음... 시뮬레이션 코드도 C++로 그냥 절차적으로 작성하는 걸로 간단하게 작성 가능하고 pcap 파일로 뽑을 수 있다는 것도 무척 매력적이다. 분명 업계 사람들한테는 상당히 귀중한 툴이 아닐까. - [서민관]
* 네트워크 실습을 할 때, 이런 걸로 하는 군요. CISCO를 공부했었는데, 그때 실습에 관련해서 멘붕했던 적이 있던 저로써는 하나의 시뮬레이션을 제대로 알아갑니다. 네트워크 공부를 다시 시작해야겠어요.. 근데, 리눅스라니! 리눅스!!...(2차 멘붕!) 실습준비가 조금 미흡했던 점은(리눅스가 깔려있는 컴퓨터) 아쉬웠던 것 같습니다. - [김해천]
* 네트워크는 물론 리눅스를 사용해본 것도 처음이었는데 공부할 것이 많은 것 같습니다. 우선 새로운 프로그램을 접해 봤다는 점에서 큰 수확이었다고 생각합니다. 네트워크 장비를 구비하여 시뮬레이트 하기가 쉽지 않을텐데 이렇게 간단하게 프로그램을 사용하여 시뮬레이트 할 수 있다는 것이 신기했습니다.- [백주협]
* 시스코 공부하면서 GNS만 사용해봤는데 오픈소스에도 좋은 시뮬레이터가 있다는걸 알게되서 좋았습니다. 코드로 사용할 수 있다는 점도 상당히 마음에 드네요 - [장혁수]
* NS3보다는 LINUX 자체에 대해 배운 게 더 기억에 남지만 이런 것이 있다는 것을 안 것만으로도 큰 도움이 되었습니다 - [원준연]
* 이건.. 스킵되고 바뀌었지만, 익히 들었던 si기업의 무서움?을 간접적이지만 직접적일정도로 너무 생생하게 느낀 세션이였습니다. 흑..ㅠ - [김윤환]
* 개인적으로 이쪽에 관심을 덜 두는 만큼 평소에는 별로 알 일이 없는 분야였다. 사실 지금도 그냥 잘 해서 좋은 기업 가면 되지 않나 하는 생각이 좀 있다. 일단 실력이 있어야 복지든 임금이든 좋은 곳으로 가지 않겠는가. 그래도 SI는 좀 기피하게 될 것 같긴 하지만... - [서민관]
* 여기 이야기를 자주 들어왔는데, 경험자의 경험이 느껴지니, 저기서 듣던 거와는 또 느낌이 다르네요. 그냥 잘 하는 사람이고, 잘 아는 사람이 짱이라는 점을 나름대로 생각하는 시간이었습니다. - [김해천]
- 새싹스터디2006/의견 . . . . 36 matches
새로운 회원을 모집하고 올해도 [새싹스터디2006]를 시작했습니다. 아마 스터디를 진행하는 반별로 다시 하위페이지를 만들고 나름대로 진행해 나가겠죠. 숙제와 소스를 올리는 하위페이지가 다시 생길 것입니다. 여기서 한 가지 고민이 생겼습니다.
제로페이지 위키에 [새싹스터디2006]에서 소그룹으로 진행한 기록이 재학생에게 필요할까요? [제로페이지의문제점]에서도 ''스터디가 신입 수준을 벗어나지 못한다''라는 점을 지적합니다. [2004년활동지도]의 1학기 스터디, [새싹C스터디2005]의 Class페이지들이 대표적입니다. 반면 [새싹C스터디2005/선생님페이지], [새싹배움터05/첫번째배움터], [새싹C스터디2005/pointer]와 같은 페이지는 현재 [새싹스터디2006]을 진행하는데 도움을 줍니다. 조금만 가다듬으면 [STL]페이지처럼 주제별로 정리할 수 있습니다.
따라서 지금 위키 구조를 잘 이용해 필요한 정보는 제로페이지 위키에, 각 소그룹으로 진행하는 내용은 개인 위키에 정리하면 좋겠습니다. 나중에 정리할 필요 없는 시간 약속, 출석 체크, 메시지 전달 들을 개인 위키에서 진행하면 되겠죠. 단 숙제를 내면 반 이름의 하위페이지를 만들기보다, [EightQueenProblem]처럼 정보를 모을 수 있을 것입니다. 이로써 현재 미약한 개인 위키 사용이 늘어날 것이고, 덤으로 사용자가 위키 카페 구조에 익숙해지는 효과도 얻을 것 같습니다. -- [Leonardong]
여기 페이지도 나름대로 필요하다고 생각합니다. 각 팀마다 06학번 신입생의 실력이 다른 것 처럼 각 팀은 각 나름대로 진행해야 할 것입니다. 하위 페이지에서 기록이 단순히 '재학생을 위해서' 가 아닌 무슨 문제를 풀었고, 언제 만날건지, 어떤 문제를 풀건지 등 위키에 내용으로 남겨두는 것이 좋을것 같습니다. 후에 또 참고할 수 있도 있고. 지금 많은 class의 진척도도 볼 수 있고요.
이번 2006년은 신입생을 위주로 돌아가는 건 절대 아니라는건 알지않습니까? 신입생 C스터디 이외에도 지금 프로젝트가 다양하게 있습니다. 재학생은 재학생 프로젝트를 해 나갈 것이고 우리는 '자원' 하에서 신입생의 C 언어 공부에 자그나마 도움을 주자고 하는 것입니다. 여기서 조심스럽게 바라봐야 할 것은, '얼마나 치중할까' 인데.그건 선생님 마음 아닌가요? 여기서 잘 따라와 주는 신입생이 많기를.. 간곡히 바랍니다.
제 말도 그거에요 ㅋ 링크 걸자는 거에요.. 그런데, 개인위키에 적는건 더 분산 아닌가요? 우리가 프로젝트 진행할 때 프로젝트 한 페이지에 여러 링크, 내용을 적잖아요? 새싹스터디2006/날아라병아리 이런식으로 만들어서 그 페이지 안에,우리가 풀었던 문제를 링크거는건 어떨까요?, 뭐 방법에 따라 다르겠지만, 저번처럼 새싹스터디 단체로 숙제를 내 주게 될 때는 달라지겠지만요.. -- [허아영]
위키의 [분류분류]나 [지도분류]가 잘 정리될 수 있다면 아무래도 상관없습니다. 이미 여러 프로젝트, 스터디 페이지가 제로페이지 위키에 존재하고 [프로젝트지도]나 [2004년활동지도]같은 곳에 링크가 걸려 있습니다. 개별 스터디 그룹의 메인페이지를 개인 위키에서 유지하고, 숙제등은 제로페이지 위키에 올리고 메인페이지에서 링크를 걸 생각을 해 보았습니다.
예를 들어 [너구리]라는 스터디 팀이 있고, 팀원이 너굴아빠, 너굴엄마라고 합시다. 너굴엄마가 자신의 개인 위키에 [너구리]라는 메인 페이지를 엽니다. 너굴아빠는 [너구리]페이지를 자기 카페에 가져오기만 하면 되죠. 그래서 스터디 공지나 이런저런 이야기는 [너구리]페이지에서 해결합니다. 그리고 [나무기어오르기]라는 숙제가 있다면, 제로페이지 위키에 [나무기어오르기/너굴아빠], [나무기어오르기/너굴엄마] 페이지를 만들어서 해답을 올립니다. 자신이 만든 페이지이므로 [나무기어오르기/너굴아빠]페이지는 자동으로 너굴아빠의 개인위키에, [나무기어오르기/너굴엄마]페이지는 자동으로 너굴엄마의 개인위키에 생깁니다.
사실 [너구리]페이지는 제로페이지 위키에 있어도 그만입니다. 현재 진행중인 스터디를 모두 링크하는데 [너구리]페이지가 너굴아빠 개인위키에 있든 어디 있든 상관없지요. 다만 최근바뀐글을 생각하면 일장일단이 있습니다. [너구리]페이지가 제로페이지 위키에 있으면 현재 진행중인 스터디를 모든 사람이 한 곳에서 볼 수 있을 것이고, 따라서 다른 스터디도 돌아볼 기회가 많아지겠죠. 반대로 [너구리]페이지가 개인 위키에 있으면 자신의 위키홈에 가야지 볼 수 있기 때문에, 개인 위키 사용을 활발히 만들 겁니다.
어느쪽이 되었든 하위페이지는 신중히 만들어야 합니다. 하위페이지는 순간 만들기 쉽지만 갈수록 구조를 바꾸기가 어려워집니다. '''숙제'''로 제로페이지 위키에 있는 페이지를 검색해 보세요. 내용으로 정리할 수 있는 페이지가 있지만, 손보려면 드는 시간이 적지 않을 겁니다. 일일이 페이지를 열어보기 전까지는 그 안에 어떤 내용이 있는지 알 수도 없고요. 또 하위페이지는 링크를 걸기가 더 어렵습니다. 상위 페이지 외에는 그 하위 페이지의 역링크 개수는 0에 가깝습니다. 이를테면 [5인용C++스터디/멀티쓰레드]는 [5인용C++스터디]에서만 링크하고 있습니다. 이러한 현상은 하위의 하위 페이지로 들어가면 더 심해질 것입니다. -- [Leonardong]
- 정모/2012.3.12 . . . . 36 matches
* 이름을 모르겠는 참가자는 적지 않았습니다. 실수로 빠진 사람도 있을 것 같구요. 추가 바랍니다.
* 40주년 기념 행사와 함께 프로그램 전시회가 있습니다. 많은 출품 부탁드린답니다.
* 홍보가 아니라 교수님께서 견적을 보고 가셨으니까 4월 중에는 동아리 방이 만들어지지 않을까 하는 얘기였던 걸로 기억해요. - [서민관]
* 전시회 홍보, 동아리 방 설명에 이어서 OMS가 상당히 인상 깊었던 정모였습니다. 제목만 보고도 그 주제를 고르신 이유를 바로 알았습니다. 전체적으로 Type, Type Safety, Java Generics에 대해서 상당히 깊이 다루지 않았나 싶네요. 사실 제네릭스 모양이 C++의 템플릿과 비슷하게 생겨서 같은 것이라고 생각하고 있었는데 이건 확실히 '만들어진 이유가 다르다'고 할 만 하군요. 그리고 마지막에 이야기했던 Type Erasure는 제네릭스를 구현할 때 JVM 레벨에서 구현하지 않고 컴파일러 부분에서 처리를 하도록 했기 때문에 타입이 지워지는 거라는 얘기를 들었는데 맞는지 모르겠군요. 이거 때문에 제네릭스 마음에 안 들어하는 사람들도 있는 모양이던데. 중간에 이 부분에 대한 개선이 이루어지고 있다는 말씀을 잠깐 하셨는데 컴파일 이후에도 타입 정보가 사라지지 않도록 스펙을 수정하고 있는 건가요? 좀 궁금하군요. 여담이지만 이번에 꽤 인상깊게 들었던 부분은 예상외로 Data Type에 대한 부분이었습니다. 이걸 제가 1학년 여름방학 때 C++ 스터디를 한다고 수경 선배한테 들은 기억이 지금도 나는데, 그 때는 Type이 가능한 연산을 정의한다는 말이 무슨 뜻인지 이해를 못 했었죠 -_-;;; 이 부분은 아마 새내기들을 대상으로 새싹을 할 때 말해줘야 할 필요가 있지 않을까 싶습니다. 아마 당장은 이해하지 못 하겠지만. 후후 - [서민관]
당장 학우들이 학교에서 배우는 버전은 아마도 Java SE 5.0과 6일 것이므로 혼란을 피하기 위해 JLS 3e 기준으로 설명했습니다. Java SE 7의 JLS SE7e 에서는 The Diamond <>를 이용한 Type inference가 추가된 것이 가장 큰 특징이지요. 이를테면,
* 아... Generics쪽의 개선이었군요 ;;; 타입 추론을 넣는 건가요. 컴파일러단에서 타입을 다 체크했으니 추측해서 넣을 수도 있다는 얘기였나... 그럼 타입 추론은 javac에서 이루어지는 건가요? 그렇다면 C++의 auto 키워드랑 같은 방식으로 작동한다는 얘기인가? 아마 힌들리-밀너 뭔가 하는 걸로 타입을 추측하는 것 같던데 쓰기는 좀 더 편해지겠네요. - [서민관]
* 생각해보니 ZeroPage에서 세미나 형식으로 공유되는 내용들의 많은 부분이 언어에 편향되어 있는 것 같아요. 저는 아키텍처와 프레임워크, 프로젝트에 관해서도 논의가 이루어지는 것이 바람직할 것이라 생각합니다. 코드와 기술적 이슈는 구하고자 하면 반드시 구할 수 있는 문제이지만 프로젝트는 '프로그래밍과 사람'에 걸쳐있는 문제라 잘 보이지 않고 답이 정해져 있지도 않아 헤메기 쉽다고 생각해요. 답을 구하지 못하고 평생을 사는 사람도 많고
* 공대 동아리로 올라간게 이름만 올라가는 걸로 되서 다행이네요- 괜히 신경쓸게 많아질까 했는데 -ㅅ-a 동아리방도 음.. 어서 빨리 만들어 졌으면 합니다. 그러고 보니 6피 요즘 상태 어떤지 들러 봐야지 해놓고 맨날 캡실에 앉아 있네요 -_-;;; 음..a 말 나온김에 한번 돌아보고 와야겠습니다. 형진이형의 OMS는 오우.. 사실 좀 신세계였네요- 그 부분까지 배우질 않은데다 스스로 공부도 안 해봐서 잘 모르던 개념이었는데 아주 vㅔ리 조금 알게 되었습니다. 어렵네요- 스스로 한번 좀 찾아보는 시간을 가지도록 하겠습니다. - [권순의]
* 제가 바쁜 일은 아니지만 동아리 지원사업, 동아리 방 등등.. 회장님 수고하십니다 ㅋㅋ. 제 개인적으로는 9학점 통계과 수업가서 학점 깔아주기와 전시회 출품 등으로 바쁘게 지내서인지, 이번 학기는 뭔가 일이 많은 것 같습니다. OMS는 저한테 흥미있는 주제였습니다. 최근 안드로이드 프로그래밍 하면서 스레드 간 통신에서 불안전하게 다운캐스팅 할 때 찝찝한 기분이었는데, 머리 속에 정리는 잘 안되지만 나중에 한번 검색해볼 용기는 생긴 것 같습니다. - [정진경]
* 사고가 확장되는 건 언제나 즐거운 일이네요. 수학의 기본 정의를 이용하여 Data type을 설명하신 것을 보며, 놀라웠습니다. 프로그래밍 관련 생각을 할 때 마다, 매번 '아 나의 사고(thinking)의 도메인이 너무 작어 ㅜㅜ'라는 생각을 많이 하였는데, Data type의 정의를 들으면서 '내가 평소에 인지(recognize)하지 못했기 때문에, 깊게 생각해보려고 해도 다른 분야의 개념들이 자연스럽게 생각이 떠오르지 않는구나.'라는 생각을 해보게 되었습니다. 이런 건 계속 연습을 해야겠지요 ㅜㅜㅋ 뒤쪽 부분도 상당히 흥미로웠습니다만.. 어제 몸이 아파서 밤에 잠을 못 잔 관계로; 결국 OMS듣다가 정신이 안드로메다로 날아가서 제대로 못들었네요.. 그리고 회장은 항상 수고하네요. 갑자기 많은 일을 하게 되었을텐데 수고하십니다 ㅋ -[박성현]
* 작년에 OMS를 부활시킨 의도는 OMS를 통해 학술적인 의견들이 자유롭게 공유되길 바라서였는데, 사실 처음에는 그 의도가 충족되지 않아 불만을 가졌던 때도 있었습니다. 자유 주제라 제 기준에 학술적이지 않은 내용들이 너무 많았거든요. 물론 나중에는 학술적인 내용이 아니더라도 OMS를 통해 서로의 관심사와 경험을 공유하는 것이 충분히 의미가 있다는 생각을 하게 됐지만요. 아무튼 이번주 OMS는 모처럼 학술적 기능이 부각되는 시간이었습니다. 저도 OMS를 하게 되면 이런 방향으로 진행하고 싶네요. 능력이 안 돼서 그렇지-_-;
* Java generics에 대한 내용이 다 이해가 가는 내용임에도 불구하고 내가 설명하면 저렇게 설명 못하겠다는 생각이 들었습니다. 왜 그럴까 생각해봤습니다. 처음에는 '하나를 설명하기 위해선 열 가지쯤 더 알고 있어야하는데 그 열 가지를 몰라서.'가 아닐까 했는데 사실 그보다는 평소에 제가 Java generics를 제대로 사용하고 있지 않아서 그런게 아닌가 싶습니다.
* 어떻게 될지는 모르겠지만 friendship, 과학기술동아리 지원 등 ZeroPage가 지원받을만한 프로그램들이 많이 있네요. 이런 저런 기회들이 많이 보이는 것이 좋습니다. 외부에서 동아리 지원 프로그램을 운영하는 것이 좋다기보다는 이런 기회가 있다는 걸 모르고 지나치지 않는 ZeroPage가 좋아요. - [김수경]
* 메일이라... 지혜 선배 같은 경우는 그런 쪽 메일을 좀 자주 받으시는 것 같으니까 그런 것도 괜찮은 방법이겠군요. 근데 많아지면 스팸메일처럼 될 것 같은 게 좀 무섭지만 ;; - [서민관]
- 프로그래밍언어와학습 . . . . 36 matches
DeleteMe) 제목짓는 센스가 없는 관계로;; 원글의 뜻에 맞게 제목을 고쳐주시기를; Rename & Refactor This Page; --석천
* 학교에서 C++ 배운다고 하드웨어 건드리나. -_-; (전전공이라면 몰라도..) 컴퓨터공학과의 경우 학교에서 C++ 배워도 어셈블러 레벨까지 다루는 사람이 별로 없다고 할때, C++ 을 배웠다고 시스템레벨 까지의 깊은 이해가 필요없었다는 점인데.. 글을 읽으면, 마치 '교육용 언어로 C, C++ 을 배웠다면 시스템 레벨까지 이해할 것' 처럼 쓴 것 같다고 생각. (C, C++ 포인터를 레퍼런스 이상의 개념으로 쓴적이 있었나.. --a) 차라리 '우리는 전전공 출신에 하드웨어제어 해본 사람 뽑습니다' 라고 할것이지..쩝. Domain-Specific 한 부분을 생각치 않고서는 시스템 프로그래머에게서는 늘 자바와 Script Language 는 '군인을 나약하게 만드는 무기' 일 수밖에 없으니까.
* Language != Domain. 물론, Domain 에 적합한 Language 는 있더라도. 이 글이건 Talkback 이건.. 두개를 동일시 본다는 느낌이 들어서 좀 그렇군. (나도 가끔은 Java Language 와 Java Platform 을 똑같은 놈으로 보는 우를 범하긴 하군. -_-;)
* 사족1) 간혹 C++ 로 OS레벨을 건드리긴 하지; (잘못된 연산 오류, 파란화면, 시스템레벨로 건드린다면 이x직군 처럼 빨간화면도 가능하겠구나;)
* 사족2) 예전 마소의 김재우씨가 '프로그래밍의 숨겨진 진실과 거짓' 관련 기사 나왔을때 강규영씨의 반박문을 읽을때도 약간 핀트가 안맞는다란 느낌이 들었는데.. 뒤의 토크백들을 보면.. 또 한번 한숨. --석천
언어로서 C나 C++의 (수학적, 논리적) 규칙을 정리하면 A4용지 몇장이면 충분합니다. 흥미로운 것은 그런 규칙과 요소들이 서로 조합될 때(그리고 조합된 것을 다시 조합할 때 -- 라이브러리, 프레임웍)의 변용입니다.
> 컴퓨터 시스템을 어떻게 제어하고 어떤 식으로 영
하지만 이제는 컴퓨터 시스템에 대한 저차원적인 이해 없이도 얼마든지 뛰어난 프로그램을 만들 수 있는 영역이 늘어나고 있습니다. 언제든지 저차원에 대한 이해는 도움을 주지만 이제는 저차원의 정의가 조금 더 상향 조정된 문제 영역이 훨씬 많습니다. (컴퓨터 발전 초기에는 적용도메인이 협소했습니다)
하드웨어를 "뼈 속 깊이 꿰뚫고 있는 사람"과 그런 거라곤 하나도 모르는 사람이 동일한 문제에 접근했을 때 후자의 경우가 더 훌륭한 프로그램을 더 빨리 산출해낼 가능성은 얼마든지 있습니다.
> nterface)로 할 수 없는 것을 말하는 것이다.
> 필자는 자바 가상기계를 만들었을 정도로 자바 자체
> 지만 IT 업계의 프로그래머라면 자바만 해서는 차별
A라는 언어로 표현가능하다면 그것은 B라는 언어로도 표현할 수 있다는 것이었습니다. 다만 여기서 문화권에 따라 어떤 효율성의 차이가 있을 수는 있었습니다.
C가 하드웨어를 조작하게 해주고, 따라서 컴퓨터 시스템을 제대로 이해하게 해준다는 것은 좀 과장된 주장으로 생각됩니다. "C 언어"가 보여주는 컴퓨터 시스템은 이미 몇계단 왜곡되어 있습니다.
자바라는 언어 자체는 그다지 중요하지 않습니다. 중요한 것은 자바로 무엇을 얼마나 효과적으로 할 수 있느냐는것입니다.
아프리카 말로도, 중국어로도, 영어로도 "심오하고 사람을 감동시키는 효과적인 말"은 얼마든지 할 수 있습니다. 그것은 말을 어떻게 그 언어 규칙에 맞게 잘 조합하느냐의 문제입니다. 이 변용의 능력은 "언어"만 후벼파서는 절대 얻지 못합니다. "언어"가 구성해주는 2차원의 메타적인 세계를, 혹은 그 메타 세계의 메타 메타 세계를 후벼파야 합니다.
영작을 수십년간 공부한 사람을 알고 있습니다. 맨날 관용구를 외우고, 문법을 익히고, 날마다 영작을 한 편 씩 해서 미국의 교수에게 그 글을 보내고 검사를 받아온 사람입니다. 그 사람이 몇 년 전 제게 고백을 했습니다. 자기 영작 공부는 후회스러운 것이라고. 그 사람은, 훌륭한 글을 쓰는 것은 단순히 언어적, 문법적인 요소를 떠나서 얼마나 훌륭한 아이디어를 갖고 있느냐에 일차적으로 좌우되는 것이라고 깨닫고, 후학들에게 다양한 주제의 책을 접하라는 충고의 글을 썼습니다. 명료한 글을 쓰려면 언어가 명료하기 이전에 사고가 명료해야 하며, 풍부한 글을 쓰려면 언어가 풍부하기 이전에 사고가 풍부해야 합니다.
p.s. 토크백에서 여러분은 일반 게시판 모델의 폐악을 여실히 보고 있습니다. 거기는 사람이 축이 되어 있습니다. 위키에서는 논점이 축이 됩니다. 논점을 축으로 그 글들을 재정리 하면 양이 1/10로 줄고 질은 10배 높아질 것이라고 생각합니다.
p.s.2 토크백에 자바를 대학에서 가르칠 것을 주장하며 "파스칼 따위는 이제는 버려야죠"라는 말이 있는데, 버리려면 먼저 가지고 있어야 할 뿐 아니라, 파스칼을 갖거나 버리거나 하는 것은 이제 큰 의미가 없습니다. 구조적 프로그래밍 같은 파스칼을 주축으로 한 패러다임을 배우는 것이 중요합니다. OOP는 구조적 프로그래밍을 감싸안고 더 자라난 것이지 뒤에 남겨두고 진보한 것이 아닙니다.
- 5인용C++스터디/멀티미디어 . . . . 35 matches
* 프로그램에서 사운드 재생은 어떻게 하는가?
* 프로그램에서 동영상 재생은 어떻게 하는가?
MFC는 멀티미디어를 위한 별도의 클래스를 제공하지 않는다. Win32 API함수 차원에서 멀티미디어를 지원하기 때문에 MFC에서는 별도의 클래스로 만들어 놓지 않은 것이다.
pszSound : 연주할 사운드 파일의 이름. 파일의 경로를 넣을 더 수도 있다.
hmod : 리소스에 있는 Wave파일을 연주할 경우 리소스를 가진 실행파일의 핸들인데, 그 외의 경우는 NULL로 준다.
- SND_ASYNC : 비동기화된 연수를 한다. 연주시작 후 바로 리턴하므로 다른 작업을 바로 시작할 수 있다.
- SND_LOOP : 지정한 사운드를 반복적으로 계속 연주한다. 이 플래그는 반드시 SND_ASYNC와 함께 사용되어야 한다.
예제) AppWizard를 사용하여 Sound라는 이름으로 SDI 프로젝트를 만든다.
그 후 컴파일하고 실행한 후 작업영역을 왼쪽 마우스 버튼으로 누르면 소리가 날 것이다. 시스템에 사운드카드가 장착되어 있어야 하며 같은 디렉토리에 Battle.wav라는 파일이 있어야 할 것이다.
앞서 만든 예제를 보면 PlaySound 함수는 사운드 파일 연주가 완전히 종료되기 전에는 리턴하지 않으므로 연주중인 동안은 어떤 일도 할 수 없다. 이런 방법을 동기화 방식이라고 한다.
반대로 PlaySound함수가 연주를 시작해 놓고 곧바로 리턴하는 비동기 연주 방식이 있다.
SND_LOOP 플래그를 지정하면 반복적인 효과음이나 배경음악을 연주하는 등의 설정을 할 수 있을 것이다. 연주를 중지시키려면 PlaySound 함수의 첫 번째 인수를 NULL로 하여 다시 호출해 주면 된다. 따라서, 오른쪽 마우스 버튼을 누르면 연주가 중지될 것이다. 주의할 것은 SND_LOOP 플래그는 반드시 SND_ASYNC와 함께 사용해야 한다. 만약 동기화 연주방식으로 반복연주를 하면 무한 루프로 빠져버릴 위험이 있다.
사운드 파일을 연주하는 것은 사용하기는 간단하지만 연주할 때마다 디스크에서 사운드 파일을 읽어와야 하므로 반응 속도가 느리다. 따라서 이 경우에는 사운드 파일을 리소스에 포함시켜 놓고 리소스에서 읽어서 연주하는 방법으로 하는 것이 좋을 것이다.
리소스 뷰의 팝업메뉴에서 Import 메뉴항목을 선택하고 리소스에 포함시키고자 하는 Wave 파일을 선택한다. 그러면 IDR_WAVE1이라는 ID로 리소스에 삽입될 것이다.
리소스에 포함된 사운드를 연주하려면 PlaySound의 세 번째 인수에 SND_RESOURCE 플래그를 주고 첫 번째 인수에 리소스의 ID를 준다. 두 번째 인수에는 리소스를 가진 실행파일의 인스턴스 핸들을 주어야 하는데 MFC에서는 AfxGetInstanceHandle() 전역함수로 인스턴스 핸들을 구할 수 있다. 다음과 같이 코드를 작성해 보자.
MCI는 멀티미디어 요소에 대한 지원을 장치독립적으로 제공하는 일종의 라이브러리이다. 이것은 PlaySound 함수가 하지 못하는 여러 가지 일을 할 수 있지만, 사용 방법은 훨씬 더 복잡하다.
MCI를 사용하면 동영상도 아주 쉽게 재생할 수 있다. AppWizard로 PlayAVI라는 SDI 프로젝트를 만들고 WM_LBUTTONDOWN 메시지의 핸들러와 WM_DESTROY 메시지의 핸들러를 다음과 같이 작성한다.
if(hWndAVI) {
if(hWndAVI) {
동영상 연주는 Video fot window 라이브러리를 사용하므로 뷰에서 vfw.h를 인클루드 해 주어야 한다.
- FoundationOfUNIX . . . . 35 matches
* [http://zeropage.org/~neocoin/putty.exe putty Client] 여기서 프로그램 다운 받아서 깔아서 접속하세요
* 몇시간 정도 밖에 못할것을 감안하여, 그렇게 많은 내용을 전달할것 같지는 않고, 실습 위주로 간다히 UNIX 사용법에 대한 맛만 보여줄 것을 목표로 잡았습니다.
* 절대 경로와 상대 경로로 이동하기
* cd ../test4 (.. 이렇게 점 2개는 디렉토리 한개 뒤로 가는 효과, 상대 경로의 예)
* cd /user/opera4/namsang ( 절대 경로의 예, root에서 부터..)
* cp file1 /test1 (절대 경로와 상대 경로를 사용할 수 있따.)
* Ctrl + z 보는거 중단하기 -> 실행중인 프로세스 중단하기
* Ctrl + c 보는거 중단 -> 차이는 이 것은 실행중인 프로세스 멈추기
* 파일 새이름으로 바꾸기 mv example1 example2
* find ./ -name '*.txt' (./ 현재 디렉토리 이후 모두 검색 , -name 파일을 이름으로 찾는 것을 의미, '*.txt' 패턴)
* ps (process state 프로세스 상태 확인하기)
* 프로세스 전환하기 ps, fg
* 실행 프로세스 종료하기 kill
* i - input 입력 모두로 전환
* p - 붙이기.. dd 명령어 수행하면 지워진것이 버퍼에 저장.. p 명령어 사용함으로써 버퍼에 저장된 것을 붙임
* / - 내용찾기 /word ,다음찾기 n, 대문자 N 은 반대방향으로
* 쉘 스크립트 짜기 [http://kldp.org/KoreanDoc/Shell_Programming-KLDP kldp 쉘 프로그래밍 참고 강좌]
* 마지막 과제로 쉘 스크립트 언어로 쓰레기통 만들기 (고려중.. 안할지도 모름.)
* 바로 최종 쓰레기통을 만들기보다 단계 단계로 올라가기로 함.
* 첫 단계로 .cshrc 를 vi로 편집하여서 cp 명령어를 치면 자동으로 지울것인가 안 지울 것인가 묻게 만들기..
- IsBiggerSmarter?/문보창 . . . . 35 matches
단순히 Greedy 알고리즘으로 접근. 실패. Dynamic Programming 이 필요함을 테스트 케이스로써 확인했다. Dynamic Programming 을 실제로 해본 경험이 없기 때문에 감이 잡히지 않았다. Introduction To Algorithm에서 Dynamic Programing 부분을 읽어 공부한 후 문제분석을 다시 시도했다. 이 문제를 쉽게 풀기 위해 Weight를 정렬한 배열과 IQ를 정렬한 배열을 하나의 문자열로 보았다. 그렇다면 문제에서 원하는 "가장 긴 시퀀스" 는 Longest Common Subsequence가 되고, LCS는 Dynamic Algorithm으로 쉽게 풀리는 문제중 하나였다. 무게가 같거나, IQ가 같을수도 있기 때문에 LCS에서 오류가 나는 것을 피하기 위해 소트함수를 처리해 주는 과정에서 약간의 어려움을 겪었다.
if (a.weight < b.weight)
else if (a.weight == b.weight)
if (a.IQ > b.IQ)
if (fin.peek() == EOF)
// cout << e[t].index << " " << e[t].weight << " " << e[t].IQ << endl;
// end
if (temp.weight >= e[i].weight || temp.IQ <= e[i].IQ)
if (count > max_count)
cout << max_count << endl;
cout << result[i] << endl;
if (TYPE_SORT == WEIGHT)
if (a.weight < b.weight)
else if (a.weight == b.weight && a.IQ <= b.IQ)
else
if (a.IQ > b.IQ)
else if (a.IQ == b.IQ && a.weight > b.weight)
if (elephant_weight[i].index == elephant_IQ[j].index)
else if (t[i-1][j] >= t[i][j-1])
else
- RandomWalk/동기 . . . . 35 matches
if (move==0)
if (spawnX>=0 && spawnY>=0)
else
else if (move==1)
if (spawnY>=0)
else
else if (move==2)
if (spawnY>=0 && spawnX<=MAX)
else{
else if (move==3){
if (spawnX<=MAX)
else{
else if (move==4){
if (spawnX<=MAX && spawnY<=MAX)
else{
else if (move==5)
if (spawnY<=MAX)
else
else if (move==6)
if (spawnX>=0 && spawnY<=MAX)
- Refactoring/BadSmellsInCode . . . . 35 matches
여기서 딜레마가 온다. 어떻게 인스턴스 변수를 삭제하거나 클래스 계증구조를 만드는가를 표현하는 것은 쉽다. 그건 사소한 문제들이다. 하지만 언제 이러한 것들을 해야 할 것인지 표현하는 것은 쉽지 않다. 나는 (여기서의 I는 Martin Fowler) 프로그래밍 미학이라는 모호한 표현으로 얼버무리지 않고 좀 더 확실한 것을 원했다.
내가 이 문제로 Kent Beck 을 방문했을 때 그는 "언제" 를 설명하기 위해서 "Smell" 이라는 표현을 사용했다. 우리는 많은 코드들을 보았고, 그것들을 보면서 Refactoring이 적용가능한 어떤 구조를 발견했다.
* 코드는 비슷하지만 똑같지는 않은 경우 - 비슷한 부분에 대해서 ExtractMethod
* 대부분의 경우에 대해서 - ExtractMethod
* ExtractMethod 하는중 parameter를 많이 넘겨야 하거나, 임시변수를 많이 사용하게 되는 경우 - ReplaceTempWithQuery, IntroduceParameterObject, PreserveWholeObject, ReplaceMethodWithMethodObject
* 조건 & 반복문 - DecomposeConditional
* AWT -> Swing Component로 바꿀때 - DuplicateObservedData
* logic을 가지지 않는 여러개의 data item을 가지는 경우 - IntroduceParameterObject
하나의 클래스가 각각 다른 이유들로 인해서 다른 방식으로 자주 변경될 때.
* 바뀌어야 하는 경우들을 명확하게 한뒤 ExtractClass 하여 하나의 클래스에 모은다.
* 바뀌는 부분들에 대해 MoveMethod, MoveField 하여 하나의 클래스에 넣는다. (없으면 새로 하나 클래스 생성할것)
어떤 메서드가 자신이 속해 있는 클래스의 데이터가 아닌 다른 클래스의 데이터들을 필요로 할 때.
클래스의 변수선언 필드나 함수 프로토타입 같은 곳에 있는, 항상 같이 몰려다니는 데이터 아이템들
* 처음에 Data Clump들을 ExtractClass했을때 Field 들 묶음으로 보일 수도 있지만 너무 걱정할 필요는 없다.
* 대부분의 경우 - polymorphism으로 해결 가능
* polymorphism을 이용하기에는 너무 작아 오히려 cost가 더 드는 경우 - ReplaceParameterWithExplicitmethods
* 조건 case 에 null 이 있는 경우 - IntroduceNullObject
* 별로 사용하지 않는 subclass들 - CollapseHierarchy
일어날 가능성이 거의 없는 일까지 다 대비한 필요없는 코드. 모든 기능들과 절차들은 제대로 이용되었을때 쓸모있다.
* 추상클래스들이 별로 하는 일이 없을때 - CollapseHierarchy
- STL/vector/CookBook . . . . 35 matches
= 벡터를 사용해보기 위한 기본 셋팅(앞으로 편의상 반말로 합니다.) =
* 몇 번 써본결과 vector를 가장 자주 쓰게 된다. vector만 배워 놓으면 list나 deque같은것은 똑같이 쓸수 있다. vector를 쓰기 위한 vector 헤더를 포함시켜줘야한다. STL을 쓸라면 #include <iostream.h> 이렇게 쓰면 귀찮다. 나중에 std::cout, std:vector 이런 삽질을 해줘야 한다. 이렇게 하기 싫으면 걍 쓰던대로 using namespace std 이거 써주자.
for(VIIT it = v.begin() ; it != v.end(); ++it) // 제대로 복사됐나 결과 보기
cout << *it << endl;
* typedef으로 시작하는 부분부터 보자. 일단 반복자라는 개념을 알아야 되는데, 사실은 나도 잘 모른다.--; 처음 배울땐 그냥 일종의 포인터라는 개념으로 보면 된다. vector<int>::iterator 하면 int형 vector에 저장되어 있는 값을 순회하기 위한 반복자이다. 비슷하게 vector<Object>>::iterator 하면 Object형 vector에 저장되어 있는 값을 순회하기 위한 반복자겠지 뭐--; 간단하게 줄여쓸라고 typedef해주는 것이다. 하기 싫으면 안해줘도 된다.--;
* 다음엔 vector<int> v~~ 이부분을 보자. vector<T> 에는 생성자가 여럿 있다. 그 중의 하나로, 배열을 복사하는 생성자를 써보자. 그냥 쓰는법만 보자. 단순히 배열 복사하는 거다. C++ 공부했다면 성안당 10장인가 11장에 복사 생성자라고 나올것이다. 그거다.--; 그냥 2번 원소에서 5번원소까지 복사하고 싶다. 하면 vector<int> v(&ar[2], &ar[6]) 이렇게 하면 되겠지?(어째 좀 거만해 보인다.--;) 마지막은 개구간이라는걸 명심하기 바란다.
* for 부분을 보면 앞에서 typedef 해준 VIIT 형으로 순회하고 있는것을 볼수 있다. vector<T>의 멤버에는 열라 많은 멤버함수가 있다. 그중에 begin() 은 맨 처음 위치를 가르키는 반복자를 리턴해준다. 당연히 end()는 맨 끝 위치를 가르키는 반복자를 리턴해주는 거라고 생각하겠지만 아니다.--; 정확하게는 '맨 끝위치를 가르키는 부분에서 한 칸 더간 반복자를 리턴'해주는 거다. 왜 그렇게 만들었는지는 나한테 묻지 말라. 아까 반복자는 포인터라고 생각하라 했다. 역시 그 포인터가 가르키는 값을 보려면 당연히 앞에 * 을 붙여야겠지.
= 벡터로 동적 배열 쓰기 =
* 예제로 숫자를 몇개 입력받나 갯수를 입력받은 만큼, 그만큼 루프를 돌려서 숫자를 입력받는 걸 보자.
cout << i+1 << "번ㅤㅉㅒㅤ" << endl;
* 자 어디가 틀렸을까? 공부 좀 했으면 누구나 알수 있는 삽질이지만, c++ 배운지 몇주밖에 안되었었던 나로서는 저게 왜 틀렸는지 알수가 없었다.
* 우리가 여태까지 배운 거만 써보면 이렇게 고칠수 있다. 그 유명-_-한 동적배열이다.--; 아.. delete [] 저거 보기 싫지 않은가? c와 c++의 고질적인 문제점이 바로 저거다. 메모리 관리를 프로그래머가 해줘야 한다는거.. 자바 같은건 지가 알아서 delete 해주지만.. c나 c++에서 delete 안해주면.. X되는 꼴을 볼수 있다. (본인이 한번 경험해 봤다.) 그래서 잘 디자인된 클래스는 클래스 내에서 알아서 없애줘야 한다. 바로 vector를 쓰면 저 짓을 안해줘도 된다. 또 고쳐보자.
* vector<int>... 부분을 보면 또 다른 생성자가 보인다. 인자로 숫자 하나를 받는다. 그 만큼 동적 할당 해준다는 뜻이다. delete? 그딴거 안해줘도 된다. 프로그램 끝나면서 int형 벡터 ar이 소멸되면서 알아서 없애준다.
* 또 하나 살펴볼게 있다. 아까 예제에서는 반복자로 벡터 내부를 순회했었다. 하지만 벡터는 임의접근을 허용한다. 배열처럼 ar[4] 이런식으로 쓸수 있단 말이다. 편한대로 써주자.
= 벡터로 2차원 동적 배열 쓰기 =
* vector로 간단히 해결이 가능하다. See also ["RandomWalk2/Vector로2차원동적배열만들기"]
* 여기서 잡담 하나. 객체를 parameter로 넘길때도 복사가 수행되지 않는 참조를 사용하자.
* 다음 예제는 pointer로 자료를 넣고, 지우는 예제이다.
<< c << endl;
for(VOIT it = v.begin() ; it != v.end() ; ++it)
- UnitTest . . . . 35 matches
해당 실행 기능이 제대로 돌아가는지를 테스트하는 코드. 보통 SE에서는 모듈단위의 테스트를 지칭한다.
ExtremeProgramming 에서는 TestFirstProgramming 을 한다. TestFirstProgramming 에서는 해당 기능에 대한 테스트 프로그램을 먼저 만들고, 실제 프로그래밍을 한다.
TestFirstProgramming 을 하게 되면 해당 프로그램을 작성해 나가는 과정이 UnitTest 작성중 남게 된다. 이는 일종의 WhiteBoxTesting 이 된다. 또한, 해당 모듈이 제대로 돌아가는지에 대한 결과도 체크하므로 BlackBoxTesting 의 역할을 한다. 즉, ExtremeProgramming 에서의 UnitTest 는 두가지 테스트의 성격을 같이 포함하고 있다. (Gray Box Testing)
보통 테스트 코드를 작성할때는 UnitTestFramework Library들을 이용한다. 각 Language 별로 다양한데, C++ 사용자는 ["CppUnit"], Java 는 ["JUnit"], Python 은 ["PyUnit"] 등을 이용할 수 있다. PyUnit 의 경우는 2.1부터 기본 모듈에 포함되어있다.
SoftwareEngineering 에 있어서 UnitTest 는 '단위 모듈에 대한 테스트' 이다. 즉, 해당 기능이 제대로 돌아감을 확인하는 테스트가 UnitTest 이다.
우리는 실제로 프로그래밍을 하는 중간중간에 결과값을 출력해봄으로서 제대로 돌아감을 확인한다. 이 또한 UnitTest 라 할 수 있겠다. (단, Manual Test 로 분류해야 하겠다.) 올바른 결과값인지 확인하는 과정을 코드로서 만들어 넣는다면 이 테스트는 자동화시킬수 있을 것이다.
if (expected == actual) printf ("okok!\n");
else printf ("error!\n");
이를 assert 문으로 바꾸면 다음과 같이 가능하다. 결과값이 같지 않으면 'abnormal program termination' 이 일어난다.
C 에서의 UnitTest Code 작성시에는 assert 문으로 비슷한 기능을 구현 할 수 있다.
Q: 한가지 의문나는 점이 있어서 , 사용자가 임의로 생성할 수 없는(예를들면 Socket과 같은 시스템이 생성해주는 데이타 타입) 데이타 형이 파라미터로 있을 때는 어떻게 테스트 하는 것이 좋을까요?
A: Socket 이나 Database를 이용하는 경우에는 문제가 되겠죠. 그럴때 MockObjects를 이용하는 방법이 있었던걸로 기억하는데, 아직 실제로 제가 해보지는 않아서요. 대강 개념을 보면 MockObjects는 일종의 가짜 객체로 실제 객체가 하는 일을 시뮬레이션 해주는 객체입니다. 미리 MockObjects 를 셋팅을 해두고 해당 함수결과의 리턴 요구시에는 예측할 수 있는 데이터를 리턴하게끔 하는 것이지요. 나중에 본 프로그램에서 MockObjects들을 토대로 실제의 객체를 만든다.. 식의 개념으로 기억하고 있긴 한데, 저의 경우는 공부만 하고 적용해본 적은 없습니다. --석천
A: MockObjects가 최적입니다. Socket이나 Database Connection과 동일한 인터페이스의 "가짜 객체"를 만들어 내는 겁니다. 그러면 Socket 에러 같은 것도 임의로 만들어 낼 수 있고, 전체 테스팅 시간도 훨씬 짧아집니다. 하지만 "진짜 객체"를 통한 테스트도 중요합니다. 따라서, Socket 연결이 제대로 되는가 하는 정도만(최소한도로) "진짜 객체"로 테스팅을 하고 나머지는 "가짜 객체"로 테스팅을 대체할 수 있습니다. 사실 이런 경우, MockObjects를 쓰지 않으면 Test Code Cycle을 통한 개발은 거의 현실성이 없거나 매우 비효율적입니다. --김창준
- 데블스캠프2009/수요일후기 . . . . 35 matches
* '''서민관''' - kernal이나 어셈블러 언어 등 전까지 별로 접할 일이 없던 생소한 개념들이 많이 나와서 솔직히 쉽지는 않았습니다. 그래도 OS의 구조나 Ring system 같은 것들은 개념적으로라도 알아두면 괜찮을 것 같네요. 그리고 전날 혁준 선배가 설명해준 dll에 대해 잠깐 다시 복습할 수 있었던 것도 좋았고요. 아쉬웠던 점은 역시 수업이 너무 고수준이라서 대략적인 이해만 하고 넘어가야 했던 것입니다. 그리고 수업 이후에 개인적으로 VMware의 사용법을 가르쳐 주신 것은 정말 감사합니다. 선배가 제 구세주입니다.
* '''박준호''' - 처음으로 해킹과 관련된 내용을 보아서 정말 좋았습니다. 제가 해킹쪽에 관심이 있어서 언젠가 해보고 싶고 보고 싶었는데 오늘 처음으로 경험하게 되어서 좋았구요 저도 한번 공부해야겠다는 생각이 들었습니다.
* [송지원] - 사실 들으면서 이걸 컴구나 OS를 안들은 1,2학년 애들이 쉽게 받아들일까 생각했고 컴퓨터로 딴짓을 하며 놀고 있는 애들을 보며 살짝 걱정했는데 위의 1학년 애들 후기를 보니 그렇지도 않은거 같다=_=;; 다만 병윤이 수업 자체가 실습 없는 강의 수업이였는데 여기저기서 타자소리가 들리고 마우스클릭 소리가 들렸던건 아쉬웠다. 물론 위키페이지 고치느라 버벅댔던 나도 할말은 없다;;
* '''서민관''' - 계속 말이 많던 객체 지향 프로그래밍. 전날의 추상화 수업에서도 객체의 개념은 잠깐 나왔었고, 개인적으로도 객체에 대해서 조금 더 들을 기회가 있어서 그렇게까지 이해하기가 어렵지는 않았던 것 같습니다. 의사코드나 플로우 차트를 이용한 프로그래밍은 확실히 무작정 코드를 쓰고 보는 것 보다는 플로우 차트 -> 의사코드 -> 실제 코드 순으로 하는 것이 간단하면서도 정확한 프로그래밍을 할 수 있을 것 같아서 괜찮다고 생각합니다.
* '''박준호''' - 객체지향 프로그램 이라는 것에 대해 개념을 잡아놓은 시간 이였습니다. 진짜 제가 코드를 짜지는 않았지만 의사 코드라는 것을 이용하여 한번쯤 객체지향으로 코드를 짜본것도 좋은 경험이 되었습니다.
* [송지원] - 기대 이상의 세미나였다. 준석이가 데블스 전부터 자신의 세미나에 대해 엄청 자신없어했고 형진이가 Abstractionism을 하며 강의가 좀 확장되어 준석이가 가르칠 범위까지 해버리는 바람에 준석이가 할게없다고 걱정하던데, 오히려 형진이의 강의로 토스를 받아 붕어빵 예시로 스파이크를 날려준 느낌이다. 그래도 OOP란 개념 자체가 확 와닿기 쉽지 않은지라 마지막엔 내가 괜히 오지랖 부렸다..;;
* [김준석] - 강의 내내 속으로 피말렸다. 강의 도중에 이해하기 쉽게 설명할걸 몇몇 빼먹은게 자꾸 떠올라서 천천히라도 설명하려했으나 설명해놓고 보니 좀 엉뚱한데서 설명해버린 안타까운 현실. 현역 군인이라 OOP 강의에 대해서 그렇게 많은 준비는 못한것이 사실이라 강의할때 도움도 좀 받았고. 휴가 나오기전에 1~2시간씩 코딩없이 강의 할만한 내용을 찾다가 C++을 사용할 1,2학년에게 좀 중요한 내용을 잡게 됬는데.. 휴가 나오고 PPT를 작성하는데 3일동안 하루 3~4번은 고치고 내용추가를 고민하는등 긴장을 좀 많이 탓다. OOP를 이해시키고 학교생활중 설계의 중요성을 몰라 삽질을 반복했기 때문에 그 후에 코딩하기 전에 설계하는법에 좀더 중점을 둔 시간을 가지고 싶었다. 그냥 무작정 달려들어서 Run&Fix도 하기 쉽지 않은 중복많은 2~3백자리 코딩을 하기 보다는 전날 Abstractionism에서 형진이가 말했듯이 20줄 이내의 코딩, 잘 설계된 잘나뉜 코딩은 어딘가를 목표로 갈때 지도나 정보를 모아 쉽고 편한 길로 가는것과 같다. 돈도 절약되고. 안힘들고. 문제가 생겨도 모아온 정보로 해결할수 있는.. 문제를 풀어 결과를 도출해놓는것도 좋지만.. 주위에는 답을 똑같이 도출해놓을수 있는사람이 90%는 될것이다. 그렇다면 짧고 보기쉬운것이 좋겠지. 정말 아쉬운 점이라면 API나 로보코드때 이걸 설명하고 했더라면 들은 학우들에게 더 많은것을 이해할수 있었던 시간일것이라고 생각하는데.. 좀더 빨리 준비했었어야됬어.
* '''서민관''' - 수요일 수업에서 제일 마음에 들었던 부분입니다. 이클립스를 써 본 것도 좋았고, 무엇보다 JUnit test는 정말 마음에 드네요. 앞으로 갈수록 프로그램의 크기가 커질텐데 이클립스를 통한 svn 사용이나 JUnit test나 둘 다 팀 프로젝트용으로는 정말 좋은 기능이라고 생각합니다. 정말 뭐라고 더 칭찬을 해야 할 지 말이 안 나올 정도로 마음에 들었어요. 한 방에 제대로 프로그램을 못 짜는 저한테는 메인 함수 없이도 버그 수정이 가능하다는 건 정말 고마운 기능이죠.
* '''박준호''' - 처음으로 JAVA 에 대해 제대로 코딩도 해보고 접해본 시간 이였습니다. JUnit test 라는 것을 이용하여 팀플에서 얼마나 유용하게 쓰일지는.. 정말 무궁무진 할꺼 같습니다. 저도 빠른 시일내에 까먹지 않고 쓸 수 있게 되었으면 좋겠습니다.
* [송지원] - 사실 너무 아쉬웠다. JUnitTest를 위해 예로 제시한 계산기 클래스도 함수 하나 정도밖에 테스트 해볼 수 없는 이상한 설계의 클래스였다(너무 OOP 다음수업이라 캡슐화에만 신경을 썼던듯). 한 마디로 Java도, JUnit도 맛보기만 해준 꼴이 된것 같다. 하지만 '''JUnit은 확실히 강한 라이브러리다'''. 내가 몸소 느끼고 자발적으로 세미나한 이유도 그렇다. 내 세미나는 즈질이였지만 많은 1,2학년 학우들이 Java로 개발을 진행할 때 도움이 되었으면 한다.
- 이영호/개인공부일기장 . . . . 35 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)
☆ 앞으로 공부해야할 책들(사둔것) - Effective C++, More Effective C++, Exeptional C++ Style, Modern C++ Design, TCP/IP 네트워크 관리(출판사:O'Reilly), C사용자를 위한 리눅스 프로그래밍, Add-on Linux Kernel Programming, Physics for Game Developers(출판사:O'Reilly), 알고리즘(출판사:O'Reilly), Hacking Howto(Matt 저), Windows 시스템 실행 파일의 구조와 원리, C언어로 배우는 알고리즘 입문
☆ 레퍼런스 - 리눅스 공동체 세미나 강의록, C언어 함수의 사용법(함수 모음), 데비안 GNU/LINUX, C사용자를 위한 리눅스 프로그래밍, Add-on Linux Kernel Programming, Secure Coding 핵심원리
2005년 7월 4일~7월20 완벽히 끝낸책 : 안녕하세요 터보 C, Teach Yourself C, C언어 입문 중,고급, C언어 펀더멘탈, 쉽게 배우는 C프로그래밍 테크닉
2005년 7월 21일~ 29 완벽히 끝낸책 : C++ 프로그래밍
4일 - 공부 계획 새로 세움. 아래의 계획은 2학기와 겨울을 거쳐 수행할 것들이다. 또한 임베디드에 관해 공부해야 할것이 생길 것 같다. 리눅스 커널과 C언어를 다시 한번 Guru 수준으로 끌어 올리는 공부를 하자.
Block 단위로 Assembly어를 해석, 해독 할 수 있어야한다.
복습 차원, 제대로된 깊은 지식을 가지가 위해 아래의 것들을 익힌다.
5일 (금) - Epoll 을 마지막으로 Network 부분을 잠시 접어둠.
2일 (화) - 다시 침체기(현 공부과정을 한단계 끌어올리기 위해 기존 공부하는 것을 심도있게 나가기로함.), 프록시서버 구현: [이영호/프록시서버구현]
1일 (월) - 한차례 내 실력이 워핑 했다. 높은 수준으로 올랐다. PCB와 Linux Kernel에 관한 것을 배웠다.
☆ 1일 (월) - struct task_struct 의 SUPERUSERBIT를 flagon 시킬 수만 있다면 root의 권한을 얻을 수 있다. kernel의 조작에는 회의적이지만 간접적으로 만질 수 있는 방법을 찾아봐야한다.
28 (목) - C++(연산자 오버로딩, 연산자 오버로딩으로 String 클래스 디자인 해보기.)
26 (화) - Compilers, C++(다양한 Virtual 상속, Class의 메모리 구조-C의 구조체와 대비하여/Class는 구조체로 포인터함수를 사용해 구현한 메모리 구조와 비슷하다.)
- 26 (화) - malloc, new로 생성되어지는 메모리 구조. dynamic memory alloc은 변수(클래스)앞 1WORD(32비스에서 4바이트) 앞에 정보(크기, 위치, 사용)를 저장한다.
- 26 (화) - 구조체의 크기는 4바이트 배수로 할당되어진다. 이 이유는 32bit체제에서는 4바이트(1WORD)씩 운용하는것이 효율이 좋기 때문이다.
- 26 (화) - 이러한 CPU 구조를 무시하고 원래 크기를 사용하려면 pragma 전처리기로 !!!구조체 선언 사이에!!! pack(1)을 해준다. 1바이트가 1WORD란 뜻이다. 구조체 선언의 끝에는 unpack을 써준다.
25 (월) - Compilers(한달에 1단원씩 떼기로 결정. 읽은곳 계속 읽어야 이해가 가능함. 오래전에 쓰여져서 상황도 과거로 이해해야함.), C++ Class 상속의 이해, 상속과 다형성
- 20 (수) - C언어 책 6권 복습 끝냄. (안녕하세요 터보 C, Teach Yourself C, C언어 입문 중,고급, C언어 펀더멘탈, 쉽게 배우는 C프로그래밍 테크닉)
- 일반적인사용패턴 . . . . 35 matches
위키위키를 처음 방문하시면 FrontPage에 들어오실겁니다. FrontPage는 말 그대로 대문이 되는 첫 페이지로, 현 이 위키공간 항해의 시작점이 됩니다. 처음 방문하실때에는 FrontPage부터 시작하셔서 각 페이지 링크를 클릭하셔서 항해하시면 됩니다.
그러다가 해당 페이지를 수정하고 싶으실때가 있으실 겁니다. 잘못된 정보를 바로잡고 싶을때, 내용을 덧붙이시고 싶을때, 토론중인 내용에 참여하시고 싶을때, 또는 토론중인 내용을 정리하여 하나의 문서로 만들고 싶을 때 등등.. 그럴때에는 거침없이 왼쪽 최하단의 'Edit Text'를 클릭하신뒤, 해당 페이지를 수정하시면 됩니다. 위키위키의 공간은 누구에게나 열려있으며, 누구나 수정할 수 있는 페이지입니다.
해당 주제에 대해 새로운 위키 페이지를 열어보세요. Edit Text 하신 뒤 [[ "열고싶은주제" ]] 식으로 입력하시면 새 페이지가 열 수 있도록 붉은색의 링크가 생깁니다. 해당 링크를 클릭하신 뒤, 새로 열린 페이지에 Create This Page를 클릭하시고 글을 입력하시면, 그 페이지는 그 다음부터 새로운 위키 페이지가 됩니다. 또 다른 방법으로는, 상단의 'Go' 에 새 페이지 이름을 적어주세요. 'Go' 는 기존에 열린 페이지 이름을 입력하면 바로 가게 되고요. 그렇지 않은 경우는 새 페이지가 열리게 된답니다.
어느정도 위키에 익숙하시다면 보통 최근 바뀐 글 또는 RecentChanges 를 링크로 걸어놓으십시오. 가장 최근에 수정된 페이지들을 바로 확인하실 수 있습니다.
위키의 특성상 한 페이지가 길어지는 경우가 많습니다. 스크롤을 위해 휠만 사용하는 것보다는 Page Up, Page Down을 적절하게 사용하시는 것이 편합니다. 한쪽손은 키보드, 한쪽손은 마우스.~
위키위키의 장점중 하나로 자유로운 링크에 있습니다. 기본적으로 auto link를 지원하므로 해당 위키 페이지 링크 뿐만 아니라 다른 웹 페이지의 링크도 자유롭습니다. (쓰다가 보면 가끔 위키 내에서 다른 페이지로 날라가기 허다해진다는. --;) 위키페이지 링크는 [[ "해당페이지이름" ]] 을 하시면 되고, 일반 웹 페이지는 URL을 그냥 입력해주시면 됩니다.
* 대문 - 가장 첫 페이지로 갑니다.
* 검색 - 제목으로 찾기와 내용중 단어로 찾기를 지원합니다.
* 제목색인 - 지금까지 열린 페이지들이 ABCD 순으로 배열됩니다.
* Go : 가고자 하는 페이지 이름을 알고 계시다면 Go에 직접 페이지이름을 입력하세요. 바로 해당 페이지 글로 Go~ 합니다. 기존에 없던 페이지이름이라면 새로운 페이지를 만듭니다.
* 페이지를 삭제하지 않은 경우 - 한쪽 창에서 상단 오른쪽의 파란아이와 짝짝이 안경(?)을 클릭하시면 해당 페이지의 히스토리와 페이지의 수정내용을 알 수 있습니다. 일단 파란아이를 눌러서 복구하고 싶은 버전을 View 하십시오. 그 다음, URL 입력창에서 action=recall 을 action=raw로 바꾼 후 해당 내용을 다시 복사하시면 됩니다. (이때는 Frame 안에서 작업하지마시고, 위키 페이지를 직접 전체화면으로 하여 해당 URL이 보이는 상태에서 작업하십시오.)
* 페이지를 삭제한 경우 - 짝짝이 안경(diff) 기능이 작동하지 않습니다. 파란아이를 이용하셔서 날린 내용을 얻은뒤 편집해주세요. (조금 번거롭습니다.)
기본적으로 이 위키(모인모인)에서는 페이지 이름 수정을 지원하지 않습니다. 페이지 이름 수정시에는 할 일이 많습니다. 다음과 같은 과정을 거치도록 하세요.
1. 새 이름을 사용할 새로운 페이지를 만든다.
* 기존 페이지로부터 글을 Copy & Paste 한다.
* 기존 페이지의 제목을 클릭, 기존 페이지를 링크 건 페이지들을 검색한다. 링크들을 수동으로 고쳐준다.
- 정모/2011.4.4/CodeRace . . . . 35 matches
* 두명이 하나의 모니터를 보고 하나의 키보드로 프로그래밍 해야 한다.
* Driver : Navigator가 알려주는대로 실제 코딩하는 역할. Navigator의 지시 없이 혼자 코딩하지 않는다.
* 등장하는 모든 인물이 강을 건너 다른 마을로 가야한다.
1. 레이튼 교수가 A마을에서 배를 타고 강을 건너 B마을로 간다.
1. 레이튼 교수가 A마을에 있다면 B마을로, B마을에 있다면 A마을로 간다.
* 내가 이걸 진행상황을 다 알고 다시 프로그래밍한다면...
if(isOnShip != true)
if(city == "A"){
}else if(city == "B"){
// if(city == "A"){
// }else if(city == "B"){
cout << "레이튼의 현재 위치 " << location1 << endl;
cout << "루크의 현재 위치 " << location2 << endl;
cout << "나쁜 아저씨의 현재 위치 " << location3 << endl;
if(i1 == 1 && i2 == 2){
if (i1 == 2 && i2 == 3){
if (i1 == 1 && i2 == 3){
if (i1 == 1 && i2 == 0) location1 = location1=='B'?'A':'B';
if (i1 == 2 && i2 == 0) location2 = location2=='B'?'A':'B';
if (i1 == 3 && i2 == 0) location3 = location3=='B'?'A':'B';
- 제12회 한국자바개발자 컨퍼런스 후기 . . . . 35 matches
== 프로그램 ==
|| 13:00 ~ 13:50 || 비지니스 전문가를 위한 PaaS 플랫폼 구축 전략 (장진영) || PLAY! GAE! (정원치) || 아키텍트가 알아야할 12/97가지 (손영수) || 빅데이터 플랫폼 기반 소셜네트워크 분석 사례 (김형준) || 지속적인 개발, 빌드, 배포 (박재성) || Apache Hadoop으로 구현하는 Big Data 기술 완벽 해부 (JBross User Group) || 클라우드 서버를 활용한 서비스 개발 실습 (허광남) ||
|| 14:00 ~ 14:50 || KT Cloud 기반 애플리케이션 개발 전략 (정문조) || Event Driven Architecture (이미남) || 성공하는 개발자를 위한 아키텍처 요구사항 분석 방법 (강승준) || JBoss RHQ와 Byteman을 이용한 오픈소스 자바 애플리케이션 모니터링 (원종석) || Java와 Eclipse로 개발하는 클라우드, Windows Azure (김명신) || Apache Hadoop으로 구현하는 Big Data 기술 완벽 해부 (JBross User Group) || 클라우드 서버를 활용한 서비스 개발 실습 (허광남) ||
|| 17:00 ~ 17:50 || 쓸모있는 소프트웨어 작성을 위한 설계 원칙 (김민재) || Java Secure Coding Practice (박용우) || 개발자가 알아야하는 플랫폼 전략과 오픈 API 기술 동향 (옥상훈) || 반복적인 작업이 싫은 안드로이드 개발자에게 (전성주) || 개발자가 알아야할 오픈소스 라이선스 정책 (박수홍) || 이클립스 + 구글 앱 엔진으로 JSP 서비스하기 (OKJSP 커뮤니티) || 여성개발자의 수다 엿듣고 싶은 그들만의 특별한 이야기 (여자개발자모임터 커뮤니티) ||
* 8시 55분에 코엑스 도착해서 등록을 받으려 했으나 9시 20분 부터 등록해줄거라며 즐을 날려 주는 바람에 주변 스폰서 기업에서 책을 팔거나 홍보하는 곳에서 조금 노닐고 있었는데 9시 10분 좀 되니까 등록 시작 -_-;;; 뭐 여하튼 등록을 하고 사고 싶은 책이 있어 사니까 핑크색 티셔츠를 주고.. 설문 조사 하니까 책 공짜로 주고.. 스마트 개발자 협회 페이스북 좋아요 누르니까 길다란 메모장 같은거 받고.. 흠.. MS에서는 윈도우 모바일 홍보 + 키넥트 홍보 + 기타 홍보와 설문조사 하면 팝콘을 주던데 난 안함 -ㅅ-ㅋ NHN에서는 NHN NEXT라는 NHN 전문 학원?을 홍보하고 있었다.
9시 30분부터 JCO 회장님의 축사를 시작으로 본 행사가 진행되었는데, 행사 참여자를 분석한 도표가 인상깊었다. 웹 개발자와 학생이 대부분이고 나머지는 극 소수... 음... 뭐 여하튼.. 축사와 기조연설을 하는데 벌써부터 졸리기 시작 -_-;; 심하게 졸린게 아니라 계속 들었다. 한국 오라클에서의 기조연설 중 생각나는 부분은 학교에서는 큐브를 어떻게 맞추는지를 배우지만 실전에서는 어떻게 해서든 큐브의 색을 맞춰 (그림에는 페인트로 색깔을 맞췄..)내는 모습과 변화에 민감하라라고 했던 부분이다.
간단하게 점심을 먹고 본인은 첫 세미나로 Track 3에서 한 아키텍트가 알아야 할 12/97가지를 들었다. 그 내용중에서 STAN으로 프로그램의 상태를 보여주는 부분이 인상깊었다. 그렇다고 여기에 너무 민감하게 반응하지는 말라던.. 그리고 그 곳에 심취해 있다고 단순히 신기술이라고 무조건적으로 사용하기 보다는 이런 저런 상황을 고려하라는 것.. 가장 생각나는 것은 문제는 기술의 문제가 아니라 모든 것은 사람에 관한 것이다라는.. 모든 일은 나 자신으로부터 비롯된다라고 생각하고 있었는데 그 부분과 어느정도 상통하는 이야기였던 것 같다.
그 다음으로 Track 5에서 있었던 Java와 Eclipse로 개발하는 클라우드, Windows Azure를 들었다. Microsoft사의 직원이 진행하였는데 표준에 맞추려고 노력한다는 말이 생각난다. 그리고 처음엔 Java를 마소에서 어떻게 활용을 한다는 건지 궁금해서 들은 것도 있다. 이 Windows Azure는 클라우드에서 애플리케이션을 운영하든, 클라우드에서 제공한 서비스를 이용하든지 간에, 애플리케이션을 위한 플랫폼이 필요한데, 애플리케이션 개발자들에게 제공되는 서비스를 위한 클라우드 기술의 집합이라고 한다. 그래서 Large로 갈 수록 램이 15GB인가 그렇고.. 뭐 여하튼.. 이클립스를 이용해 어떻게 사용하는지 간단하게 보여주고 하는 시간이었다.
세 번째로 들은 것이 Track 5의 How to deal with eXtream Application이었는데.. 뭔가 하고 들었는데 들으면서 왠지 컴구 시간에 배운 것이 연상이 되었던 시간이었다. 다만 컴구 시간에 배운 것은 컴퓨터 내부에서 CPU에서 필요한 데이터를 빠르게 가져오는 것이었다면 이것은 서버에서 데이터를 어떻게 저장하고 어떻게 가져오는 것이 안전하고 빠른가에 대하여 이야기 하는 시간이었다.
네 번째 시간으로는 Track 3에서 모바일 웹 개발 플랫폼을 들었는데.. 뭔가 웹에서 사용되는 것은 이러이러한 것이 있습니다라고 50분동안 열거하는 느낌이라 기대보다는 지루했다. -_-a 그래서 사실 기억에 남는 것이 별로 없다..;
마지막으로 Track 4에서 한 반복적인 작업이 싫은 안드로이드 개발자에게라는 것을 들었는데, 안드로이드 프로그래밍이라는 책의 저자인 사람이 안드로이드 개발에 관한 팁이라고 생각하면 될 만한 이야기를 빠르게 진행하였다. UI 매핑이라던지 파라미터 처리라던지 이러한 부분을 RoboGuice나 AndroidAnnotations를 이용해 해결할 수 있는 것을 설명과 동영상으로 잘 설명했다. 준비를 엄청나게 한 모습이 보였다. 이 부분에 대해서는 이 분 블로그인 [http://blog.softwaregeeks.org/ 클릭!] <-여기서 확인해 보시길...
그렇게 모든 시간이 지나고 경품 추천이 있었으나 역시나 경품은 나와 상관 없다는 것을 느끼고.. 거기다 한종이가 번호 하나 차이로 iPad를 놓친 모습을 보며 더욱..
* <공개SW 활성화 정책> 기조연설은 뭔가 PPT가 조잡해서 집중이 안됐다. 내용은 간단히 요약하자면 '''있는 것을 가져다 쓰자''', '''한국 개발자가 개발한 오픈 소스가 세계적인 소프트웨어가 되게 하자''', '''오픈 소스 잘 알고 쓰자''' 였던 듯. 그리고 ''우리 열심히 일하고 있어요. 관심 좀...''(?) 중간에 공개 SW 개발자 대회 수상자 중 마에스트로 하는 사람 한 명이 있댔는데 그게 지혜얘기인가 싶었음.
* <Play GAE!>는 요새 Play framework를 좀 만지고 있기도 하고 구글 해커톤 가서 구글 앱 엔진 쓸 계획이 있어서 들었는데 Play 소개같은 세션이라 원하던 내용은 아니었다. 알게된 것은 '''Play framework에는 구글 앱 엔진을 지원하는 모듈이 있다'''는 것. 인상깊은 것은 플레이, 스프링, 스트럿츠의 비교. 드래곤볼 짤과 함께 각각의 전투력을 측정하는 드립이 있었는데 전투력을 책 페이지로 측정하셨다. 예상가능하게도 스프링 전투력 측정에선 토비의 스프링이 튀어나옴...
* 그 다음으론 <Event Driven Architecture>를 들었는데 생각과 너무 다른 내용이라 흥미가 없어서 옆 트랙으로 옮겼다. <성공하는 개발자를 위한 아키텍쳐 요구사항 분석 방법>에 대한 이야기였는데 처음부터 이걸 들을 걸 그랬다. 좀 많은 내용을 넣으시다보니 시간이 많이 모자란 느낌이긴 했지만 전 트랙보단 관심이 가는 내용인데. 기억에 남는 것은 각각 '''목적에 맞게 설계해야 한다'''는 이야기.
* 마지막에 들은 <반복적인 작업이 싫은 안드로이드 개발자에게> 트랙이 가장 실용적이었다. 안드로이드 앱 만들면서 View 불러오는 것과 Listener 만드는 부분 코드가 너무 더러워서 짜증났는데 Annotation으로 대체할 수 있다는 것을 알았다. Annotation을 직접 만들어도 되고, '''RoboGuice'''나 '''AndroidAnnotation''' 같은 오픈 소스를 이용할 수도 있고.
- JavaScript/2011년스터디/3월이전 . . . . 34 matches
* 목차를 보고 매주 적당한 분량으로 챕터를 묶어 그 주 공부할 부분을 정한다.
* 서로 다른 챕터를 공부하여 발표하면 남이 공부한 부분은 겉핥기 식으로만 알게 되는 경우가 많아서.
* 발표할 부분은 금요일에 모여 제비뽑기로 결정한다.
* 그 이후에도 오지 않는 사람은 기다리지 않고 바로 진행한다.
* var로 생성한 변수는 delete할 수 없다는데 실제 해보니 되었다.
* 문자나 숫자, ""사이에 들어가 것들을 '리터럴'이라고 부르며 따로 구분한다.
* new bolleon(false)는 flase와 같지 않고 객체로써 인식!! if(new booleon(false)) 따위로 쓰면 안됨
* var로 선언한 변수는 delete가 안된다더니 되는데?!
* 레퍼런스로 함수를 직접 보면서 하니까 한눈에 들어와 좋았다
* 서지혜 - 말로만 설명하는 것보단 코드를 보며 설명하도록 하겠다.
* 과제 : 7일날 자신이 발표한 부분을 직접 실습할 수 있는 코드 최소 1개 짜오기. 7일 스터디 불참자는 스스로 챕터 선정하여 코드를 짜오면 된다.
* 클로저의 정의와 사용...ㅠ
if(){
* 함수가 데이터로써 사용될수 있다는점
* 프로토타입의 정의와 사용 상속부분이 다른 언어와는 다르다.
* 클로저의 정확한 정의를 알고싶다. 유효범위와 관계있다는 것은 알았음
* 슈도 클래스란 함수로서 선언되기 때문인가?
* 자바스크립트는 급조된 기능이 몇몇 있는 것 같음(네임스페이스를 객체로 선언함)
* 함수 내부에서 arguments 객체에 함부로 접근할 경우 생길 수 있는 문제점
* 함수 안에 익명함수 중복으로 쓸 경우 즉시 호출하거나 변수에 넣어 호출 가능하게 만들어야 한다.
- MoniWikiOptions . . . . 34 matches
* 1로 설정하면 테마의 기본 CSS만을 사용하도록 강제 설정. (기본값 0)
* 기본 css의 경로를 설정한다. 기본값은 `$url_prefix.'/css/default.css'` $theme를 설정한 경우는 이 값이 자동 설정된다.
* 지정할 수 있는 값으로는 moni,moni2 등이 있다. 디렉토리를 추가하고 파일이름을 똑같게 하면 아이콘을 바꿀 수 있다.
* 기본값은 `$url_prefix.'/css/kbd.js'` : 사용하기 싫으면 그 값을 빈 문자열로 한다.
* 로고를 클릭할 때 가는 페이지를 정한다. 기본값은 $frontpage.
* 로고 그림. 없애고 싶다면 빈 문자열을 넣는다.
* 수자는 accesskey를 지정하기 위해 쓰이는 값이다. "alt-1, alt-4"라는 식으로 지정된다.
* wikismiley.php를 읽어들이게 된다. 이 값을 "foobar"로 고치고 foobar.php를 wikismiley.php 대신으로 쓰면 자신이 원하는 smiley를 설정할 수 있게 된다.
* 기본값은 0이고, 1로 하면 선별적으로 각 줄에 {{{<br/>}}}이 더해진다.
* 1로 설정하면, 블로그 아래 댓글(comment)이 함께 보인다. (기본값 0)
* 언어를 설정한다. 기본값 'auto'로 브라우져 설정을 따르며, 강제로 한국어로 하고자 하면 'ko_KR'로 지정한다.
`'''$notify'''`
* Email Notification을 활성화 한다. 이 기능을 키면 SubscribePlugin을 사용할 수 있다.
* 1로 설정하면 단락마다 edit 링크를 단다.
* 모니위키 블로그에서 트랙백을 사용할 수 있게 한다.
* forcelink:무조건 전체 링크
* 외부 링크가 새창으로 열리게 된다.
=== 경로 설정 ===
* 기본 css의 경로를 설정한다. 기본값은 `$url_prefix.'/css/default.css'`
* 기본값 `'./data'` ../data라고 지정하고 data디렉토리를 지정된 장소로 옮기면 외부에서 data직접 액세스를 차단할 수 있다.
- ProjectPrometheus/BugReport . . . . 34 matches
* 최근 Review에서 review 와 책의 제목의 위치를 뒤집거나, 폰트 조정으로 두 정보중 하나를 주로 만들어야 함
* [[HTML(<strike> 서평 제목과 링크가 서로 묶여 보이지 않아서 어느게 서로 관련된 것인지 애매하다. 같은 서평끼리 동일색으로 하고 색깔을 번갈아 배치하면 좋겠다. 예컨대 옅은 녹색, 진한 초록 이런 식으로. </strike>)]]
3. 같은 컴퓨터를 쓰는 이상, 로그인을 일일이 하지 않아도 되도록 클라이언트 쪽에 쿠키 설정을 해줬으면 한다.
4. [[HTML(<strike> 특정 책 페이지를 봤을 때 추천 도서의 목록이 점수순으로 정렬 </strike>)]] - 원래 관련점수가 가장 높은 순으로 정렬됨.
* {{{~cpp RecommendList}}} 에 나오는 수가 너무 많다. 줄여야 한다.
* notice변경 사항에 관하여, DB에 넣는 방향으로 바꾸던지(게시판을 하던지), file path 비의존적으로 바꾸어야 한다. 현재 file path문제로 직접 고쳐주어야 하는 상황이고, ant 로 배포시 해당 file의 쓰기 읽기 권한 문제로 문제가 발생한다. --["neocoin"]
-- notice 에 대해서 DB 게시판 형식으로 수정하기
- 자주 바뀌는 부분에 대해서 Page -> Object Mapping Code Generator 를 만들어내거나, 저 부분에 대해서는 텍스트 화일로 뺌 으로서 일종의 스크립트화 시키는 방법(컴파일을 하지 않아도 되니까), 화일로 따로 빼내는 방법 등을 생각해볼 수 있을 것 같다.
* CauLibUrlSearchObject - POST 로 넘기는 변수들
* CauLibUrlViewObject - POST 로 넘기는 변수들.
- 매번 FORM 으로 넘어가는 변수들이 바뀔때 HTML 내 FORM 변수들을 찾거나 WEB DEBUG 등으로 프로토콜 분석을 하는데, 이를 자동화 할 수 있을 것 같다. <FORM> 태그, <INPUT> 태그 부분만 추출해내고 그 변수값 종류, 변수 이름을 얻어내는 코드만 작성해도, 반복작업을 줄일 수 있을듯. --["1002"]
* 동감, 해당 프로토콜을 분석해서 property로 만들어 버리는 작업을 수행해야 할것 같군. 이작업을 한달에 한번 수행시키도록 해야 할까 ;; --["neocoin"]
* Servlet 생명주기에 대해 제대로 알지 못함. 서비스에서의 success Fleld 초기화가 안된 문제가 원인. 해결.
* '''호밀밭의 파수꾼''' 2002 년 판의 LendBookList 가 추출되지 않음.RecommendList 추출시에 역시 에러
* {{{~cpp RecommendList}}} 가 깨지는 문제
* BtoBRel 에는 들어있는 bookid 가 book 에는 없는 경우가 있다. 확인이 필요하나, 현재 도서관이 죽어서 할수 없다. 열리는데로 해봐야 한다.
* 다른 Conntion Pooling 용으로 http://www.bitmechanic.com/ 를 생각할수 있으며, 한글 자료는 http://javaservice.net/~java/bbs/read.cgi?m=dbms&b=jdbc&c=r_p&n=1034293525&p=1&s=d#1034293525 에 소개되어 있다.
- RandomWalk2/재동 . . . . 34 matches
path.append(int(self.data[2][i]))
if self.isMoveAllCell():
if self.board[i][j] != 0:
if cellCount != self.rowLength * self.colLength:
else:
if self.row < 0:
if self.col < 0:
if self.row >= self.rowLength:
if self.col >= self.colLength:
if __name__ == '__main__':
path[who].append(int(self.data[who*2+2][i]))
if self.count[who] < len(self.path[who]):
if self.isMoveAllCell():
if len(self.path) > len(self.path[0]):
else:
if self.board[i][j] != 0:
if cellCount != self.rowLength * self.colLength:
else:
if self.row[i] < 0:
if self.row[i] >= self.rowLength:
- Refactoring/SimplifyingConditionalExpressions . . . . 34 matches
= Chapter 9 Simplifying Conditional Expressions =
* You have a complicated conditional (if-then-else) statement. [[BR]] ''Extract methods from the condition, then part, and else parts.''
if (data.before( SUMMER_START ) || data.after(SUMMER_END) )
else charge = quantity * _summerRate;
if (notSummer(date))
else charge = summerCharge(quatity);
if (_seniority < 2) return 0;
if ( _monthsDisabled > 12) return 0;
if ( _isPartTime) return 0;
if( isNotEligableForDisability()) return 0;
if (isSpecialDeal()){
send();
else {
send();
if (isSpecialDeal())
else
send();
if( _isDead) result = deadAmount();
else {
if (_isSeparated) result = separatedAmount();
- ReleaseDebugBuildStartGo의관계 . . . . 34 matches
F5는 IDE(통합환경)가 실행 프로세스를 반동결(Soft-ice)상태로 실행시켜, 사용자가 내부 변수의 값을 들여다 볼 수 있거나 중간에 멈출 수 있게 합니다. 디버깅을 할 때에 아주 중요한 역할을 하지요.
반면, CTRL-F5는 IDE가 실행 프로세스를 단순히 생성(fork)하는 역할만 합니다. 즉, 배포된 프로그램을 우리가 설치해서 실행할 때와 똑같은 환경이라고 생각하면 되겠습니다.
이 두 개의 기능은 방금 설명한 것 이외에 조금 다른 실행환경을 제공합니다. 바로 "미초기화 변수의 초기화"입니다. 그리고, 이 양상은 프로그램이 릴리즈 빌드냐, 디버그 빌드냐에 따라 다릅니다. 아래와 같은 구조체와 이것을 사용한 코드(비록 한 줄이지만)있다고 가정합시다.
이 코드를 릴리즈 빌드로 만들고, Start(CTRL+F5)로 실행할 때의 b값과 Go(F5)로 실행할 때의 b값을 체크하면 서로 다르게 나옵니다. Start의 경우 b의 값이 false가 나오고, Go의 경우 b의 값이 true로 나옵니다. 바꾸어 말하면 Start는 미초기화 변수를 0으로 놓고, Go는 0이 아닌 값으로 세팅한다는 것입니다. (실제로 bool 타입의 false 값을 VC6의 디버거로 읽으면 0입니다. VC7의 경우엔 false라고 나오지만요)
한데, 디버그 빌드의 경우는 어떨까요? 그 경우에는 Start나 Go나 차이를 보이지 않고 b값이 true입니다. 여기서 자그마한 결론을 얻을 수 있습니다.
1. 디버그 빌드를 했거나 F5로 실행시키는 경우, 미초기화 변수는 0이 아닌 값으로 초기화된다.
2. 릴리즈 빌드한 프로그램을 CTRL-F5로 실행시키는 경우, 미초기화 변수는 0으로 초기화된다.
디버깅할 때는 잘 돌던 프로그램이 그냥 실행시킬 땐 오동작을 보이는 경우가 있어 막대한 육체적/정신적 에너지를 낭비하는 경우가 있는데, 그런 경우를 만난다면 이 글의 내용을 한 번쯤 떠올려 보시기 바랍니다. 그리고 다음의 점검을 해보시기 바랍니다.
-기본생성자가 함부로 내동댕이쳐져 있는가?
- 전역변수와 정적변수 초기화를 제대로 했는가?
- 실수로 초기화하지 않고 쓰는 지역변수가 있는가?(요즘 나오는 대부분의 좋은 컴파일러는 경고 메시지를 내주긴 합니다만)
- TAOCP/InformationStructures . . . . 34 matches
F ← F + 1; Y ← X[F]; if F = R, then set F ← R ← 0''
''if R = M then R ← 1, otherwise R ← R + 1; X[R] ← Y.
if F = M then F ← 1, otherwise F ← F + 1; Y ← X[F].''
여태까지는 문제(더 넣을 공간이 없거나, 더 지울 것이 없는 경우)가 없다고 가정했다. 이 문제까지 고려한 과정이 다음과 같다.
(6a),(7a)에서는 초기 조건이 F = R = 1이다. 만약 F = 0이라면 오버플로우가 생기지 않기 때문이다.
오버플로우와 언더플로우가 일어났을 때 어떻게 해야 할까? 언더플로우는 하나의 의미있는 조건 - 에러 상황이 아니라 - 이다. 하지만 오버플로우는 더 들어갈 공간이 없는데 들어갈 정보가 남아있어서 에러이다. 따라서 오버플로우가 생기면 용량한계를 넘어서서 프로그램이 종료한다.
가능한 공간에 리스트가 두 개 있다면 (고정된)bottom을 같이 쓸 수 있다. (p.246 그림 참고) 이런 경우 두 리스트가 메모리를 모두 써버릴 때까지 오버플로우는 생기지 않는다. 이런 형태는 매우 자주 쓰인다.
LDA *,1 ;여기에 I를 더한 주소로 가서 그 값을 rA에 넣는다.''
n개의 스택이 있는 경우 i번째(1≤i≤n) 스택에 원소를 넣고 빼는 과정을 다음과 같이 적을 수 있다.
여기서 i번째 스택에서 오버플로우가 생기면 메모리 재배치(repack memory)를 할 수 있다. 몇가지 방법이 있는데 지금부터 자세히 알아보자.
''초기 조건 : p.247 (11) 참고
i번째 스택에서 오버플로우가 생겼을 때''
a) ''''위로 한칸씩 밀기(moving things up)'''
그리고 마지막으로 i보다 크고 k보다 크지 않은 모든 BASE와 TOP을 하나씩 위로 민다.
b) ''''아래로 한칸씩 밀기(moving things down)''' a)에 해당하는 k가 없을 경우
그리고 마지막으로 k보다 크고 i보다 크지 않은 모든 BASE와 TOP을 하나씩 아래로 민다.
c) '''진짜 오버플로우'''
(p.248에 (12)와 그림 4는 예제이다. 근데 어렵다. 3번을 해보았으나 제대로 나오질 않았다.)
초기값으로 효율적인 시작 위치를 주는 것이 가능하다. (p.248 (13), 평균적으로 BASE를 분포시킨다.)
- VonNeumannAirport . . . . 34 matches
* ["1002"] 의 개인적으로 생각되는 '미숙' 했다고 생각한 점을 든다면, 평소에 프로그래밍을 하는 리듬이 아니였다는 점. 이전 스타일이라면 일단 문제를 보고 문제를 나누면서 시나리오를 어느정도 만들어 놓은 뒤, 그걸 검증해나간다는 느낌으로 테스트코드를 작성했었는데, 이번의 경우 정말 Extreme 하게 작업한 것 같다. (중반에 CRC 라도 한번 하고 싶었는데, 형에게 물어보고 왠지 '아 내가 알던 방법이 틀린걸꺼야' 하며 그냥 Test 만 생각하게 되었다.) 작업하는 중간 뭔가 석연치 않은 느낌이 들었다면, 아마 대강 이런 느낌이였던 것 같다. 전반적 시각을 한번정도 중간에 정리를 할 필요가 있을건데, 그런 시간을 두지 못한것.
* 자료형 배경 지식의 미숙 (처음 STL미사용 접근, 중반부터 STL사용으로 자료형의 일관성문제)
* 중간에 창준이형이 "너희는 C++ 로 프로그래밍을 하면서 STL를 안사용하네?" 라고 했을때, 그냥 막연하게 Java 에서의 Collection Class 정도로만 STL을 생각하고, 사용을 잘 안했다. 그러다가 중반부로 들어서면서 Vector를 이용하게 되었는데, 처음 한두번 이용한 Vector 가 후반으로 가면서 전체의 디자인을 뒤집었다; (물론 거기에는 디미터 법칙을 지키지 않은 소스도 한몫했지만 -_-;) 그걸 떠나서라도 Vector를 써 나가면서 백터 비교 assert 문 등도 만들어 놓고 하는 식으로 점차 이용하다보니 상당히 편리했다. 그러다가 ["Refactoring"] Time 때 서로 다른 자료형 (앞에서 array 로 썼던 것들) 에 대해 vector 로 통일을 하다 보니 시간이 비교적 꽤 지연이 되었다.
* ["Refactoring"] Bad Smell 을 제대로 맡지 못함 - 간과하기 쉽지만 중요한 것중 하나로 naming이 있다. 주석을 다는 중간에 느낀점이 있다면, naming 에 대해서 소홀히 했다란 느낌이 들었다. 그리고 주석을 달아가면서 이미 구식이 되어버린 예전의 테스트들 (로직이 많이 바뀌면서 테스트들이 많이 깨져나갔다) 를 보면 디미터 법칙이라던가 일관된 자료형의 사용 (InformationHiding) 의 문제가 있었음을 느낀다.
아. 언제나 말만 많고 꿈보다 해몽만 좋다; 실천을 제대로 해야지;; --["1002"]
Requirement 수정 예상궁리 (일단은 떠오르는대로. Testability 를 고려하지 않은 상태로)
* load 를 발생시키는 예를 Passenger 뿐만 아니라 다른 여러가지를 둔다. ex) 여행객 가방, 컨테이너의 경우 traffic load 2, 4 를 발생시킨다.
-> 이 경우 PassengerSet 이 따로 빠져있지 않은 경우 고생하지 않을까. PassengerSet 이 빠져있다면, 가방, 컨테이너 부분들에 대해서 case 문이 복잡해질듯.
-> 이에 따라 Input 부분이 바뀌고, Input 부분이 클래스와 합쳐진 코드의 경우 더더욱 골치.
* PassengerSet Case가 여러개이고 Configuration 은 1개인 경우에 대해서. Configuration 1 : 여러 Case 에 대해 각각 출력하는 경우.
-> 역시 PassengerSet 이 따로 있어서 Configuration 과 같이 협동할 경우엔 쉽게 구현 가능. 그렇지 않은 경우 고생 예상.
* 지금 만든 모듈의 소스 수정없이 GUI 버전으로 재작성하기 - Input / Output 먼저 작성하는 사람들은 가장 고생.
* 출력 Output 의 Sorting 을 2가지로 둔다면?
-> Output 쪽이 따로 나누어진 경우 금방.
- WikiTextFormattingTestPage . . . . 34 matches
If you want to see how this text appears in the original Wiki:WardsWiki, see http://www.c2.com/cgi/wiki?WikiEngineReviewTextFormattingTest
People reviewing this wiki from the original Wiki:WardsWiki will be referred to this page. If you want to see the review, go to http://www.c2.com/cgi/wiki?WikiEngineReview.
* CLUG Wiki (older version of WardsWiki, modified by JimWeirich) -- http://www.clug.org/cgi/wiki.cgi?WikiEngineReviewTextFormattingTest
This page contains sample marked up text to make a quick visual determination as to which Wiki:TextFormattingRules work for a given wiki. To use the page, copy the text from the edit window, and paste it in the wiki under test. Then read it.
If a wiki properly interprets the Wiki:WikiOriginalTextFormattingRules, the text will appear as described here.
If I don't break the phrase by inserting a <return>, '''the bold portion can start and end on different lines,''' as this does.
Note that the logic seems to be easily confused. In the next paragraph I combine the two sentences (with no other changes). Notice the results. (The portion between the "innermost" set of triple quotes, and nothing else, is bold.)
I've broken the phrase across a line''' boundary by inserting a <return>. If I don't break the phrase by inserting a <return>, '''the bold portion can start and end on different lines,''' as this does.
I don't know if Wiki:WardCunningham considers this the desired behavior.
* Fifth level, preceded by <tab><tab><tab><tab><tab>*<space>, appears indented 20 spaces with a solid square bullet.
* Fifth level
* Fifth level
1. Fifth level
1. Fifth level
View the page in the original Wiki:WardsWiki, note the numbering, and then compare it to what it looks like in the wiki being tested.
Aside: I wonder if any wikis provide multilevel numbering -- I know that Wiki:MicrosoftWord, even back to the Dos 3.0 version, can number an outline with multiple digits, in "legal" or "outline" style numbering. I forget which is which -- one is like 2.1.2.4, the other is like II.A.3.c., and I think there is another one that includes ii.
:: Here I tried some experimentation to see if I could indent a paragraph 8 spaces instead of 4 -- not successful but there might be a way. Fourscore and seven years ago, our forefathers brought forth upon this continent a new nation, conceived in liberty, ... and I wish I could remember the rest. Formatted by preceding this paragraph with <tab><tab><space>::<tab><tab>.
End of line weight test.
I inserted 8 blank lines after this, to see if whitespace is "contracted".
!!!!!Fifth level
- 데블스캠프2005/RUR_PLE/조현태 . . . . 34 matches
미로찾기 알고리즘
삐삐가 있는곳이 출구로 가정된다.
단 삐삐는 미로의 출구(즉 미로의 외곽벽과 인접한 위치)에 있어야만 한다.
if right_is_clear():
else:
if front_is_clear():
else:
여러가지 환경에서 테스트를 수행하였으며, 문제가 있을경우 [조현태]페이지에 올려놓으면 빠른시일내에 해결하도록 노력하겠습니다.
파일을 copy/paste하는 과정에서 중간중간에 빈 줄이 생겼는데, 일부 삭제하였으나 남은 것이 있을 경우 지우고 사용해야 합니다.(단 함수와 함수사이는 아닙니다.)
리펙토링이 덜된 이유는 리펙토링을 하면 할수록 느려지는듯한 문제가(인터프리터방식으로 인한듯)있는듯 하기때문 입니다.
if next_to_a_beeper():
if next_to_a_beeper():
if front_is_clear():
else:
if right_is_clear():
else:
if front_is_clear():
else:
if front_is_clear():
else:
- 데블스캠프2010/넷째날/후기 . . . . 34 matches
* 자바스크립트라는말을 많이 들어봐서 뭔가 했는데 이제야 어떤건지 조금은 알았네요. 자바와 자바스크립트가 다른거라는것도 오늘알았고 자바스크립트가 C언어와 이렇게 비슷한걸 보니까 언어 하나를 배우면 다른건 쉽게 배운다고하는말이 뭔지 알것같습니다. 그리고 역시나 감동의 쓰나미였다 또 C언어처럼 컴파일러 같은게 필요한것도 아니고 코딩한 파일을 웹브라우저로 실행하기만 하면 결과가 나온다는것도 신기하네요 - [경세준]
* 개인적으로 웹이랑 자바스크립트에 관심이 있어서 꽤 관심이 있던 세미나였습니다. 첫 시간이라 사람이 적어서 좀 늦게 시작하긴 했는데, 그래도 간단한 자바스크립트에 대해서 배울 수 있었고, 코딩 때 문제가 생기면 성현 선배가 잘 수정해주셔서 개인적으로는 만족스러웠습니다. 좀 더 DHTML쪽 요소가 있었으면 좋았지 싶은 게 아쉬운 점이네요. ㅠ.ㅠ - [서민관]
* 자바스크립트가 C언어와 많이 닮은것 같아서 매우 인상깊었습니다. 하지만 저의 C언어 실력이 미숙하여 하는데에 많은 어려움을 겪으면서 많은 생각을 하게 되었습니다. 일단 기본적인 C언어의 문법과 선언하는 함수 등을 자세히 공부하고, 자바스크립트에서의 C언어의 활용 방법을 좀더 연구해야겠다고 생각했습니다. 그리고 자바스크립트를 통해 비쥬얼 스튜디오보다 좀더 편리한 프로그래밍을 할수있어 더 좋은 내용의 프로그램을 만들수있다는 것에 대하여 생각해 보았습니다. 앞으로 좀더 열심히 공부해야겠다고 생각합니다. - [양아석]
* 웹브라우저로 바로바로 결과를 확인해 볼 수 있어서 재미있었다. 그래서 하다보니 어느새 하라는 걸 안 하고 내가 하고싶은 걸 하고있었던 것은 문제...ㅇ>-< - [김수경]
* 늦잠자서 늦어서 제대로 못들었던게 아쉬웠습니다 ㅋㅋ 그래도 javascript에대해 더 자세히 알수있어서 좋았습니다.
* HTML의 문법은 별로 관심이 없지만, java script는 흥미로웠습니다. 얼른 sciprt 언어 하나를 배워봐야겠네요. - [박성현]
= C++프로그래머가 본 웹세상 / C++0x(강사: 안혁준) =
* 참 재밌었습니다. "쿠키와 세션"에 대한 내용도 조금 알 수 있었고 웹의 작동 원리를 알 수 있어서 좋았습니다. AJAX가 등장한 이유도 재밌었구요 ㅋㅋ 또 하나의 웹 페이지처럼 보이지만 실상은 여러 페이지를 include 한 것을 보고, "아 이런 원리였구나" 하고 깨닫게 되었습니다. 참 신기하고 재밌네요 ㅋㅋ C++0x도 역시 흥미로웠습니다. 새로운 문법들 중 &&를 이용한 우측값 참조, 이걸 들어보니깐 점점 C++은 접근하기 어려운 언어가 되어가는 듯한 느낌을 받았습니다... 하지만 저는 성능을 더욱 개선시킬 수 있다는 점에서 새로운 것을 알아 좋았습니다. - [박성현]
* 늦어서 제대로 강의를 듣지는 못했지만 C++0x가 어떤건지는 잘 알수 있게 된것 같아요. 아직 C 도 제대로 못하는 제겐 다소 어려운 내용이긴 했습니다만.. T^T - [김준영]
* auto형이 스크립트언어나 vb의 varient처럼 무적(?)인줄알고 좋아했다가 직접 컴파일해보고 절망했... ㅋㅋㅋㅋㅋ 그리고 gcc 4.x에서 아직 c++0x를 제대로 지원하지 않는것 같아서 직접 써볼 기회는 안된게 아쉽네요 ㅋㅋ - [남상혁]
* C++0x라는건 처음들어봤는데 프로그래밍 언어도 계속 발전하고있다는 사실을 알았고 콘솔프로그래밍이 모든것의 기초라는것도 다시한번 느낄 수 있었고 C++0x에 대한건 자세히 이해하지는 못했지만 대충 어떤거라는거는 알수있었던 뜻깊고 감동적인 시간이었습니다. - [경세준]
* 늦게와서 제대로 따라가지 못했어요 ㅠㅠ 그래도 방명록 만드는거시 이렇게 심오한지는 몰랐어요 ㅎㅎ --- [김정욱]
* 하라는 대로 안 하고 서버에서 돌리려다 삽질했다..... - [김수경]
* 서버 만들어서 돌리는거 재밌네요. 상당히 흥미로웠습니다. PHP 예제도 타이핑 한것도 재밌었습니다. 다만 DB 쿼리 날리는 것도도 같이 해봐서 그런지 DB 쿼리날리는걸 배운건지 PHP를 배운건지 헷갈려요 ㅋㅋㅋ 또 헷갈리는게 있었는데 HTML태그를 쓰면서 PHP를 사용했는데, 기본적인 태그들이 HTML 태그랑 똑같은건가요? 아니면 Java Script처럼 HTML 안에 들어가는건가요? 헷갈리네요.. - [박성현]
* RSS리더기와 퀵소트에대해서 배워봤습니다. 또한 생각하는 개발자에대해서 설명해주셧습니다. 여러가지로 생각해본점이 많았던 강의 였습니다. 또한 리더가되었을때의 그 초조감은 정말 진땀났습니다;; 하지만 좋은 프로그래머의 기준을 잘 알려주신것은 정말 좋았습니다. - [양아석]
* └ 리더가 되었을 때의 감정은 나도 잘 알고 있지... 내가 1학년땐 발표 한번밖에 안 해봤을 정도로 소극적인 성격이었거든 ㅋㅋ 그런데 역시 이런건 앞에 많이 나가봐야 느는거 같아. 나도 아직 많이 많이 많이 많이 부족하지만 예전보다는 훨씬 좋아진거거든 ㅋㅋ 너도 한번 데블스 끝나고 동기들과 스터디 그룹 진행해보면서 리더를 맡아봐. 준비하는 시간에서 배우고, 실제 진행할때도 배우게 될거야 ^^ - [박성현]
* 항상 느꼈던 거지만 제 머리와 몸은 따로 노는 것 같습니다 ㅜㅜ 머리는 키보드에 먼저 손이 가면 안된다고 하는데, 막상 개발같은걸 할라치면 그냥 손이 자동으로 IDE를 켭니다. 그래서 한동안 노트 들고 다니면서 노트에 생각한 것들을 정리 해보기도 했었는데, 노트북을 사면서 부터 노트를 안 가지고 다니게 되었고 그러면서 다시 자동으로 IDE를 켜는 습관이.. ㅜㅜ 앞으로는 다시 노트를 들고 다니면서 먼저 생각한 것들을 정리해보는 습관을 들여야겠습니다. - [박성현]
* 실재 프로그래밍의 프론티어에 계신 분의 강의이여서 스스로의 정체성과 미래를 생각 해볼수잇는좋은 기회가 되었습니다 ^^ 역시 제로페이지가 짱이에요 ! - [김정욱]
- 오목/곽세환,조재화 . . . . 34 matches
재미있다. ~~ 앞으로도 열심히
#if !defined(AFX_OHBOKVIEW_H__1263A16D_AC1C_11D7_8B87_00105A0D3B1A__INCLUDED_)
#if _MSC_VER > 1000
#endif // _MSC_VER > 1000
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
#ifdef _DEBUG
#endif
#ifndef _DEBUG // debug version in ohbokView.cpp
#endif
#endif // !defined(AFX_OHBOKVIEW_H__1263A16D_AC1C_11D7_8B87_00105A0D3B1A__INCLUDED_)
#ifdef _DEBUG
#endif
END_MESSAGE_MAP()
// TODO: Modify the Window class or styles here by modifying
if(array[i][j]==0)
if(array[i][j]==1)
//if()
void COhbokView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
#ifdef _DEBUG
#endif //_DEBUG
- 위키의특징 . . . . 34 matches
* 새로 들어 신입 회원들을 위해서...
* 게시판 블러그와 비교해서 설명해보자. 새로운 개념이기에 이해하기 위해서 기존의 개념과 비교 설명하면 이해하기가 더 수월하다.
* 참고로 노스모크에서 위키에 대한 설명들을 참고 하였다.
|| 게시물 목록 || 생성 날짜순 || 최근바뀐글(새로 올라오거나 수정한글),인덱스, 랜덤 ||
|| 게시물 접근 || 키워드를 통한 접근, 올라온 날짜순으로 접근 || 최근바뀐글,검색,각페이지에 걸린 링크를 따라서 접근(손쉽게 링크를 걸어 새로운 지식 창출), 분류||
|| 페이지온도의 변화 || 작성시간이후 계속 낮아짐.(이러한 이유로 질&답 게시판을 보면 같은 내용의 질답이 많다 사람들이 작성날짜를 기준으로 글을 보고 쓰기 때문)|| 참여에 따라 언제든지(위키에서는 생성날짜보다 그글의 수정(혹은 생성-최근바뀐글)되었는지가 기준이 된다. 글에 대한 접근이 각글을 읽다가 링크를 따라서 여러가지 글에 대한 접근이기 때문에 언제든지 사람들의 관심을 가지는 글들은 재조명 받을수 있다.||
|| 각 정보의 연결구조 || 지극히 단순한 단점 || 각 정보들이 지속적으로 발전된다(링크, 최근바뀐글, 누구나 수정이 가능하여 모두의 지식, 의견을 모으기 쉽다) ||
* 개인위키 와 블로그의 비교 (위키는 커뮤니티, 혹인 개인 위키로 사용함)
* 개인위키 : 스쳐지나가는 아이디어들을 쌓아서 결국 체계적인 정보 자료집을 만들어나가고자 할 때에 유용, 종국에 있어서는 체계적으로 정리된 지식의 형태가 된다. 개인위키는 블로그처럼 타인에게 보여주기 윈한 목적보다 자기 자신을 위한 것인 경우가 더 많다. 어느 누구에게 공개하지 않고 홀로 써도 많은 가치를 얻는다. 반면 블로그는 비공개 일기장으로 쓰는 경우는 별로 없다. 객관화된 양질의 지식을 얻기 위해서는 위키가 훌륭함.
* 블로그 : 블로그는 통시적인 개인의 관심사에 대한 문학적 구성에 유용할 것이라고 본다. 블로그는 철저히 개인적인 공간에 혼잣말을 적어두는 공간. 상대방의 정체성을 알고 관점을 이해하는데는 블로그가 장점
|| '''구분''' || '''MindMap''' || '''[위키위키]''' || '''KMS''' || '''[블로그]''' ||
* MBTI유형중 N(직관)형이 위키를 많이 사용. N형은 개별 사실보다 사실 사이의 관계에 대한 인지가 선행된다. 처음 본 사람이 어떤 머리형을 하고, 어떤 셔츠, 어떤 바지, 어떤 구두를 신었는지를 먼저 파악하는 것이 아니라 그 사람이 전체적으로 풍기는 느낌을 먼저 catch 하게 되며, 이것은 개별 사실들의 전체적인 연관성에 의해 나타나게 되는 것이다. -> 위키가 이런 N형에게 그러한 수단을 풍부하게 제공함. 수평적으로 나열된 사실들에 대해서 적절한 링크(혹은 지도패턴)을 사용하여 관련을 맺어줌으로써 개별사실이 가지는 합 이상의 정보를 창조.
* 현대의 정보화 사회에서는 많은 지식을 머리속에 가지고 있는 사람보다는 유용한 지식이 어디 어디에 있는지 알면서 쉽게 찾아내는 사람이 지식인이다. 그런 의미에서 위키는 자신의 개인적 지식이나 특정 커뮤니티에서의 지식등을 체계적으로(사람의 두뇌 구조와 유사한 방식.. 링크 - 유사연상) 관리한다. 사람의 두뇌 구조와 비슷하기 때문에 일종의 외부 두뇌(external brain)로 볼수도 있다. 위키위키는 논리적이고 이성적인 객관화된 사실이나 진실을 찾아가는데는 탁월하다.
* 인터넷 일기장, 메모장, 스케치북, 스크랩북으로 활용, 수필집, 자서전, 사진첩, 신문도 될수 있다.
* 시간순으로 배열
* 기존의 홈페이지 보다 쉽게 만들고 사용, 관리할 수 있다. 매우 쉬워서 컴맹들도 한 시간 이내로 능숙하게 사용할 수 있다.
* 블로거의 내면을 좀더 잘 노출 시킨다. 글쓰기 환경을 훌륭하게 제공하기 때문이다.
* 블로그에 비해서 다양성을 가진다. 만드는것도 노력하고 배우면 훨씬 더 다양하고 자신의 취향과 구미에 맞게 꾸미기 좋다.
- 이영호/nProtect Reverse Engineering . . . . 34 matches
(개인적으로 이 ZeroWiki는 http://www.dasomnetwork.com/~leedw/ 개인 위키인 이곳보다 정보가 없다. 정말 아쉽다.)
좋은 생각이네요. ZeroWiki란 제로페이지 위키를 말하는 것이겠죠? 제로페이지 위키는 정보가 많은 곳이 되어야 합니다. 그리고 모아놓은 정보를 가다듬는 작업이 따라야 정말로 효과가 있을 것입니다. 위키에서는 이를 정원관리에 비유하죠. 그리고 아직까지는 사람이 손으로 일일이 페이지를 돌아다니며 가꾸어주어야 합니다.
제로페이지 위키에 글은 많은데 자료는 거의 없는 이유는 가다듬는 작업이 거의 안 일어나서라고 봅니다. 예를 들면 중복되는 내용을 담은 페이지, 관련된 내용인데도 서로 다른 이름과 분류 아래 저장된 페이지, 의미를 알 수 없는 이름을 가진 페이지, 너무 옛날 자료라서 이제는 의미없는 내용을 담고 있는 페이지 따위입니다. 자신이 만든 페이지는 누구보다도 글쓴이 자신이 잘 가다듬을 수 있을 것입니다. 때문에 자신이 만든 페이지부터 가다듬는 것이 좋은 정보를 많이 찾을 수 있는 위키를 만드는 지름길이라고 생각합니다. 더 좋은 방법이 있을까요? -- [Leonardong]
nexon의 경우 Protector를 외주에 주는 것이 아니라 게임을 만드는 팀 자체에서 설계하여 완성하는 것 같다.
(누군가가 nProtect가 함수를 hooking을 하고, 게임 자체 소스에 포함 되는 것이 아니라 바이너리 형식으로 덧 붙여진다고 하였는데,
guardcat을 확인하니 EnumServicesStatusA로 Process의 정보를 빼와서 OpenProcess로 열어 debug를 확인 하는 루틴을 발견하였다.
이것을 인라인 패치하였지만, OpenProcess로 디버그 Process를 Hooking하는 함수는 gc_proch.dll에 있다는 것을 확인하였다.
두개를 고쳤지만 게임을 실행하니 원래대로 돌아가 있다는 것을 확인 후, 업데이트 파일이 있다는 것을 깨닫고, 파일을 변경 하였지만 시도는 성공 되지 않았다.
업데이트 파일에서 host의 patch 주소를 내가 사용하는 eady.sarang.net/~dark/12/Mabi/로 고치고 여기에 파일 3개를 올리고 시도 하였더니
성공 하였다. 다행히 이 guardcat은 Packing, Enchypher로 인한 encoding이 되지 않아서 인라인 패치가 쉬웠다.
gc_proch.dll 파일을 제거후 실행하였더니 gaurdcat.exe가 실행되고 debugger도 제대로 동작 하는 것을 알았다.
중요한것은 update를 어떻게 막느냐이다. 아마도 gc_proch.dll이 없더라도 mabinogi.exe는 제대로 실행될 것이다.
1. mabinogi.exe(게임 자체의 업데이트 체크를 한다. 그리고 createprocess로 client.exe를 실행하고 종료한다.)
2. client.exe(client가 실행될 때, gameguard와는 별개로 디버거가 있는지 확인하는 루틴이 있는 듯하다. 이 파일의 순서는 이렇다. 1. 데이터 파일의 무결성검사-확인해보지는 않았지만, 이게 문제가 될 소지가 있다. 2. Debugger Process가 있는지 Check.-있다면 프로세스를 종료한다. 3. gcupdater.exe를 서버로부터 받아온다. 4. createprocess로 gcupdater를 실행한다. 5. 자체 게임 루틴을 실행하고 gcupdater와 IPC를 사용할 thread를 만든다.)
3. gcupdater(실행시 항상 서버에 접속하여 파일 3개를 받아온다. guardcat.exe, INST.dat, gc_proch.dll을 순서대로 받아와 자체적으로 wsprintf를 이용하여 복사한다.-아마 디버거에 API를 걸리기 싫었는지 모른다. createprocess로 guardcat.exe를 실행시킨다.)
4. guardcat.exe(실행시 EnumServicesStatusA로 Process List를 받아와 gc_proch.dll 파일과 IPC로 데이터를 보낸다. 이 파일이 실행되는 Process를 체크하여 gc_proch.dll로 보내게 된다. 또한 IPC를 통해 client.exe에 Exception을 날리게 되 게임을 종료시키는 역할도 한다.)
지금까지의 자료들을 분석한 결과 key는 client.exe가 쥐고 있는 것으로 보인다.
client.exe가 실행될 때, 데이터 무결성과 디버거를 잡아내는 루틴을 제거한다면, updater의 사이트를 내 사이트로 변경후 인라인 패치를 통한 내 protector를 올려 mabinogi를 무력화 시킬 수 있다.
그리고 zeropage에 정보 업로드 (부디 이건 google에 걸리면 안되는 문서다.)
mabinogi.exe -> client.exe로 넘어가는 부분
- 자유로부터의도피 . . . . 34 matches
= 자유로부터의 도피 =
* 회의 그 자체는 인간이 그 고립을 극복하지 않는 한 또는 그의 위치가 스스로의 욕망에 의미 있는 것이 되지 않는 한 결코 소멸하지 않는다.
* 노력이나 일을 목적 그 자체라고 생각하는 이 새로운 태도는 중세 말기 이후 인간에게 일어난 가장 중요한 심리적 변화라고 할 수 있다.
* 새로이 근대사회에 일어난 사실은 사람들이 외적인 압력에 의해서라기보다는 내적인 강제에 의해서 일을 하게 되었다는 것이다. 그것은 근대 이전의 사회에서는 매우 엄격한 우두머리만이 능히 해낼 수 있었던 것이다.
* 프로테스탄티즘은 중산계층의 무의미함과 부유계급의 사치와 권력에 대해 분노의 감정을 표현.
* 감상 : 이책을 읽게 된것은 정말 행운인거 같다. 이책은 현대인의 문제점을 아주 날카롭고 정확하게 지적해주어서 지금까지 뭔가 뿌연 안개처럼 잘 알수 없었던 문제들을 파악하는데 많은 도움을 준다. 인생살이에 정말 많은 도움이 되는 책이다. 이책은.. 강력 추천 !, 특히 고등학교와는 다른 생활에 처음 접하는 대학교 1학년들은 꼭 읽어 봤으면 좋겠다는 생각이 든다. 음.. 솔직히 이책이 그렇게 자극적인 재미를 주는 것은 아니지만, 내가 명확하게 설명하지 못한것을 명확하고 면밀하게 분석해주는데서 오는 통쾌함 같은 것을 느낄 수가 있다. 이책에서 알게 된점은 자유라는 것이 분명 좋은것이긴 하지만 그것을 제대로 제어를 하지 못하면 자신에게 좋지 못한 방향으로 다가온다는 점이다. 그리고 그렇게 좋지 않은 방향으로 다가온 것들(무력감, 고독, 기타 등등)을 피하기 위한 임시 방편(자동 인형, 파시즘)으로는 자유를 제대로 향유할 수 없고, 오히려 자신의 자아를 말살 할 수도 있다는 점이다. 그때에는 오히려 자신의 자아가 다른 어떤 자아와도 다르다는 것을 인식하고, 그러한 자아를 유지하고 키워 나가야 한다. 내가 너무 단순화 시키거나 왜곡 시켜서 말하는거 같지만 내 의견을 말하자면, 자유가 오면 피하지 말고 있는 그대로 맞 받아치고 받아들여서 자신의 제어권 안에 두어야 겠다. 즉 자유가 자신의 주인이 되게 하는게 아니라 자신이 자유의 주인이 되어야 할 것이다. 그리고 여기서 자유를 제대로 향유하지 못한 영향으로 발생하는 새디즘이나 매저키즘등이 나왔는데, 이것도 상당히 흥미로웠다. 지금까지 잘 알지 못했던 내용인데 우리주변에서는 아주 흔하게 볼 수있는 것들이었다. 새디즘이나 매저키즘이나 둘다 자유로부터 도피의 수단이었다. 대충 감상을 적으면 이정도이다.
* 먼저 사람은 자유를 원하면서 동시에 어딘가에 구속되고 싶어 한다는 부분이 정말 맞는 말 같다. 역시 정이 있으면 반이 있나 보다. 예전 철학에세이 라는 책에서 모든 현상은 모순관계에 뿌리를 두고 있다는 말과도 통하는 부분이 있는것 같다. 이 모순관계에서 변증법적인 합일을 이루는것이 관건인거 같다. 자유라는 것과 이것으로 인해 발생하는 고립감, 외로움 사이에서 우리는 어떻게 대처를 해야 할까.. 확실한것은 이것에 대해서 피하지 말고 온몸으로 부딪혀 보고 내가 왜 이런지 아는것 같다.
* 어떠한 이데올로기, 사상이 사람들에게 영향을 끼치기 위해서는 사람들이 그러한 사상을 필요로 할때에 그러한 사상이 나와야 한다. 칼빈이나 루터가 그 시대에 많은 사람들에게 영향을 끼친것은 그때의 시대 상황이 사람들이 그러한 의지할만한 사상을 필요로 한 시대였기 때문인가 보다. 이렇게 영향을 끼친다는 것은 [이기적인유전자]에 나오는 밈을 퍼뜨리는것과 비슷한것 같다. 그렇다면 현대 인들이 열렬히 환호할만한 사상은 무엇일까... 현재 너무 물질 중심적으로 변해가는 사회에 반기를 들만한 것은 아닐까 싶다.
* 루터와 칼빈 사상의 특징은 인간은 사악하고 불완전한 존재이므로 인간의 의지와 노력은 소용이 없고 절대적인 신에게의 복종만이 최선이다라는 식이다. 이는 자본주의가 발전하기 위한 심리적인 준비를 시켰다. 자기의 목적이 아닌 거대한것의 목적에 자신을 복속 시키려는 심리적 매커니즘은 신 - 개인 관계에 있어서 적용 되었지만 이는 지도자 - 개인, 조직 - 개인 간에도 쉽게 전이될 수 있다.
* 우리가 무의식적으로만 알던것을 날카롭게 지적한것중 하나가 우리는 자본을 소비를 위해서가 아닌 축적을 위해서 모은다는 점이다. 보통 주변에서 보아도 평생 다 못쓸 자본을 끝임없이 축적하는 사람들을 많이 볼 수 있다. 이 축적이라는것이 끝이 없기 때문에 항상 이 축적에 매달리게 된다. 이렇게 된 이유가 뭘까.., 우리의 자아를 재산, 명예와 권력등과 같을것으로 지탱하려 하기 때문에 그런일이 일어난다. 왜 그런것으로 지탱하려 하는가? 현대 사회에서 개인은 사회에 있어서 평가받는 하나의 상품이다. 그러한 것들이 이런 상품으로서 값어치를 높여주기 때문이다.
* 민주주의 사회에서 자유로부터 도피하는 방법은 강제적인 획일화에 동참하는것이다. 우리는 주변 사람들과 다른것을 입거나 사용하면 불안감을 가진다. 다른 많은 사람들이 입거나 사용하는 그 집합에 포함될때 안정감을 느낀다.
* 우리가 생각하고 행동하는 것중에서 우리 스스로 생각해서 행동하는게 얼마나 될까?.. 우리 주변에서는 우리에게 끊임없이 암시를 주고 사상, 생각을 불어 넣어 주는 것들로 가득찬것 같다. 이러한 상황에서 부처님이 말씀하신것중 '관' 이 필요 한것 같다. 내가 무엇 하고, 무슨 생각을 하는지에 대해서 아무 생각없이 당연하게 생각하지 말고 이에 대해서 '관' (바라보기) 해야 겠다.
* 우리는 우리 문명이 강요하는 획일화, 자동인형중 하나로 자신을 포함시킴으로써 안정을 얻는다. 즉 거대한 것과 자신이 하나가 되었다고 느끼는것이다. 하지만 대가는 크다. 그 대가는 자아포기.... 저런 획일화, 자동인형에 동참하지 않을때 심각한 외로움, 고독감에 부딪히게 된다. 어떤것을 택해야 할까... 저런것들에 구속되지 않는 사람들이 부처님이나 예수님처럼 깨닳은 사람들인가 보다.
* 여기까지 저자가 말하는 내용의 주지는 이렇습니다. "사람은 자유를 가지기 위하여 열망하기도 하지만, 사람은 종속받고 싶어하기도 한다. 고로, 사람의 마음에는 자유 뿐만이 아니라, 내면에서는 어떤 것이든지간에 그것에 종속받고 싶어하는 마음이 있다. (예 : 민주주의 / 군주정치, 사회주의)'
- Gof/Visitor . . . . 33 matches
object structure 의 element들에 수행될 operation 을 표현한다. [Visitor]는 해당 operation이 수행되는 element의 [class]에 대한 변화 없이 새로운 operation을 정의할 수 있도록 해준다.
[컴파일러]가 abstact syntax tree로 프로그램을 표현한다고 하자. 컴파일러는 모든 변수들이 정의가 되어있는 지를 검사하는 것과 같은 '정적인 의미' 분석을 위해 abstract syntax tree에 대해 operation을 수행할 필요가 있을 것이다. 컴파일러는 또한 code 변환을 할 필요가 있다. 또한 컴파일러는 type-checking, code optimization, flow analysis 와 해당 변수가 이용되기 전 선언되었는지 등의 여부를 검사하기 위해서 해당 operations들을 수행할 필요가 있다. 더 나아가 우리는 pretty-printing, program restructuring, code instrumentation, 그리고 프로그램의 다양한 기준들에 대한 계산을 하기 위해 abstract syntax tree를 이용할 것이다.
http://zeropage.org/~reset/zb/data/visit006.gif <- [DeadLink]
이 다이어그램은 Node class 계층구조의 일부분을 보여준다. 여기서의 문제는 다양한 node class들에 있는 이러한 operation들의 분산은 시스템으로 하여금 이해하기 어렵고, 유지하거나 코드를 바꾸기 힘들게 한다. Node 에 type-checking 코드가 pretty-printing code나 flow analysis code들과 섞여 있는 것은 혼란스럽다. 게다가 새로운 operation을 추가하기 위해서는 일반적으로 이 클래스들을 재컴파일해야 한다. 만일 각각의 새 operation이 독립적으로 추가될 수 있고, 이 node class들이 operation들에 대해 독립적이라면 더욱 좋을 것이다.
우리는 각각의 클래스들로부터 관련된 operation들을 패키징화 하고, traverse 될 (tree 의 각 node들을 이동) abstract syntax tree의 element들에게 인자로 넘겨줄 수 있다. 이를 visitor라고 한다. element가 visitor를 'accepts' 할때 element는 element의 클래스를 인코딩할 visitor에게 request를 보낸다. 이 request 또한 해당 element를 인자로 포함하고 있다. 그러면 visitor는 해당 element에 대한 operation을 수행할 것이다.
예를든다면, 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들을 캡슐화한다.
http://zeropage.org/~reset/zb/data/visit113.gif <- [DeadLink]
http://zeropage.org/~reset/zb/data/visit112.gif <- [DeadLink]
VisitorPattern으로, 개발자는 두개의 클래스 계층을 정의한다. 하나는 operation이 수행될 element에 대한 계층이고 (Node hierarchy), 하나는 element에 대한 operation들을 정의하는 visitor들이다. (NodeVisitor hierarchy). 개발자는 visitor hierarchy 에 새로운 subclass를 추가함으로서 새 operation을 만들 수 있다.
VisitorPattern은 다음과 같은경우에 이용한다.
http://zeropage.org/~reset/zb/data/visitor.gif
- declares a Visit operations for each class of ConcreteElement in the object structure. The operation's name and signature identifies the class that sends the Visit request to the visitor. That lets the visitor determine the concrete class of the element being visited. Then the visitor can access the element directly through its particular interface.
http://zeropage.org/~reset/zb/data/visit003.gif
ifTrue: [finalState add: tStream]
- LinkedList/학생관리프로그램 . . . . 33 matches
[강희경]이 타과 친구의 부탁으로 대신 해준 숙제. 스펙에 있는 배열로 구현하라는 말을 못 보고 혼자 신나서 링크드 리스트로 구현했다. 이걸 어째...
메모리 이용 학생관리 프로그램
링크드 리스트를 이용한 학생관리 프로그램
int AddStudent(int aPopulation, Student* aListPointer[]);//새로운 학생 추가
}while(population != -1);//프로그램 종료 조건
printf("☞안녕하세요. 학생 관리 프로그램입니다.\n");
if(aPopulation){//등록된 학생이 있으면
if(aMenu == 1)//추가
else if(aMenu == 4)//종료
else if(aPopulation){//등록된 학생이 있으면
if(aMenu == 2)//찾기
if(aMenu == 3)//삭제
else
if(!aPopulation){//첫 등록인 경우
else{
if(searched)
else
if(!searchedFormer || searchedFormer->nextStudent){
if(!searchedFormer){ //가장 처음 일때
else if(!(searched->nextStudent)){//끝 일때
- NextEvent . . . . 33 matches
* Next : 다음의, 바로 다음의, 뒤따르는, 이어지는, 버금가는; 오는 ….
Fishbowl이라는 기술은 많은 사람이 토론을 할 경우 사용하는 테크닉입니다. 두개의 동심원으로 좌석을 배치하고 안쪽(어항)에 토론을 하는 사람들이 착석하고, 바깥쪽에 청중이 착석합니다. 안의 사람은 밖의 사람과 대화하지 못하고, 밖의 사람은 안의 사람에게 말을 걸지 못합니다. 안에 있는 사람들이 토론을 하는 것을 밖의 사람들이 어항을 구경하듯 관찰합니다. 여기에 변화를 주게 되면, 안의 사람을 동적으로 교환할 수 있습니다. 밖의 사람 중에 토론에 참여하고 싶은 사람이 있다면 언제든 안으로 들어와서 앉습니다. 그러면 최소한 한 사람이 밖으로 나갈 때까지 토론은 중단됩니다.
이 토론 기법을 프로그래밍에 적용합니다. 그리고 축구중계의 개념을 집어 넣습니다. 안의 사람들이 프로그래밍을 하고 이것을 벽면에 프로젝션합니다. 해설자와 아나운서가 이 광경을 해설합니다. 프로그래밍을 하는 팀원들 중에 피곤한 사람은 밖으로 나올 수 있습니다. 해설자는 나오는 사람을 인터뷰하기도 하고, 방금 어항 속 물고기의 행동에 대한 해설을 해줍니다. "아~ 멋진 페인트 액션이에요~" "저게 바로 압박 프로그래밍이라는 것이죠." 사람이 비면 밖의 사람이 안으로 들어갈 수 있습니다. 또 밖의 사람이 안으로 들어가면 안의 사람 중 한 사람은 밖으로 나옵니다. 이런 식으로 팀원이 항상 유동적으로 바뀝니다. 대신 개발하는 프로그램은 계속 유지됩니다.
어항 밖에서 구경을 하다가 지금 개발 팀원들이 고생하는 문제의 간단한 해결책을 안다면 바로 어항 속으로 뛰어드는 겁니다. 이제 좀 피곤합니까? 충분히 수영하셨습니다. 다시 어항 밖으로 나와서 물고기들을 구경하시기 바랍니다. 저 흥미진지한 광경의 일원이 되어보고 싶으십니까? 좋습니다. 뛰어드세요. 누구라도 환영합니다. 오래된 물고기 한마리가 다시 인간이 되어 밖으로 나가 쉴 겁니다.
허.. 음... 웬지 나는 밖으로 안나올거 같아..-_-;; --["snowflower"]
자신이 쓰는 언어의 개발자 중에서 자기는 어떤 위치인지 궁금합니까? 다른 언어를 사용하는 개발자가 만든 프로그램과 자신이 만든 프로그램의 수행 시간, 개발 시간, 코드 크기 등의 비교 결과가 궁금합니까?
NextEvent로 좋아보여서 여기다 그 내용을 복사합니다. --[Leonardong]
그냥 하루를 할애하는 건 어떨까 하는 생각이 든다. 그러니까 아침 8시에 시작해서 밤 10시에 끝나게 한다. 한 팀은 6명 정도로 구성된다. 꼭 팀 전원이 신입생일 필요는 없다 -- 헌내기 새내기가 고루 섞이도록 할 수도 있다. 각 팀에 공통 미션을 준다. 개발은 꼭 학교 컴퓨터실에서 할 필요가 없다. 여기 저기(도서관일수도 있고, 다운타운일수도, PC방일수도 있다) 찾아다닐 수도 있다. 여기저기 카메라로 사진을 찍고 설문조사를 하러 다닐 수도 있다. 뭐 꼭 (소프트웨어) 개발일 필요도 없다. 그냥 뭔가 만들어보게 한다. 그게 꼭 파이널 프로덕트가 아니고 프로토타입이어도 좋다. 밤 10시가 되었을 때 서로 자기 팀의 결과물을 들고와서 자랑한다.
["제로페이지분류"]
- OurMajorLangIsCAndCPlusPlus/XML/김상섭허준수 . . . . 33 matches
return temp; // else return temp 를 해야하나~~ -..ㅡ;;
if(text == NULL)
else
if(ptr != NULL)
if(ptr->link == NULL)
else
if(strcmp(tag_temp,tag) == 0 ||
if(return_list == NULL)
else
if(list)
if(temp1)
if(return_list == NULL)
else
if(temp1)
if(return_list == NULL)
else
if(ptr)
if(ptr->text[0] != '\n')
else
if(ptr->tag[strlen(ptr->tag)-1] != '/')
- ProgrammingContest . . . . 33 matches
프로그래밍 컨테스트. ACM의 ICPC가 유명.
나이나 학력 제한이 전혀 없습니다(Open경우). 팀은 세명까지 가능하고, 혼자서도 참가 가능합니다. 사용 가능 언어는 Java, C++, Pascal, Python 등 입니다. 제한 조건은 한 팀은 프로그램 개발을 위해서는 하나의 컴퓨터만 사용해야 한다는 것입니다. 이번 금요일(2002/5/10)에 한국 시간으로는 오후 9시부터 5시간 동안입니다. 온라인(이메일)으로 진행합니다. (see also .http://ipsc.ksp.sk/rules.php )
''ZeroPagers 중에 참가를 희망하는 사람들이 있는 걸로 아는데 왜 아무도 신청을 하지 않았죠? 하려면 빨리 하세요.''
''저기 학교 이름 못 바꾸나요? 지금 보니 Chung Ang 이라고 제대로 써진건 하나 던데여.. 나머지는 Chang Ang 또는 Choong Ang 이던데여.. 2~3개 팀이여.. --상협''
''Registeration 에서 Team Identifier String 받은거 입력하고 고치면 됨. --석천''
만약 자신이 K-In-A-Row를 한 시간 이상 걸려도 풀지 못했다면 왜 그랬을까 이유를 생각해 보고, 무엇을 바꾸어(보통 완전히 뒤집는 NoSmok:역발상 으로, 전혀 반대의 "極"을 시도) 다시 해보면 개선이 될지 생각해 보고, 다시 한번 "전혀 새로운 접근법"으로 풀어보세요. (see also DoItAgainToLearn) 여기서 새로운 접근법이란 단순히 "다른 알고리즘"을 의미하진 않습니다. 그냥 내키는 대로 프로그래밍을 했다면, 종이에 의사코드(pseudo-code)를 쓴 후에 프로그래밍을 해보고, 수작업 테스팅을 했다면 자동 테스팅을 해보고, TDD를 했다면 TDD 없이 해보시고(만약 하지 않았다면 TDD를 하면서 해보시고), 할 일을 계획하지 않았다면 할 일을 미리 써놓고 하나씩 빨간줄로 지워나가면서 프로그래밍 해보세요. 무엇을 배웠습니까? 당신이 이 작업을 30분 이내에 끝내려면 어떤 방법들을 취하고, 또 버려야 할까요?
만약 팀을 짠다면 두사람은 PairProgramming으로 코딩을 하고(이 때 Interactive Shell이 지원되는 인터프리터식 언어라면 엄청난 플러스가 될 것임), 나머지 하나는 다른 문제를 읽고 이해하고, (가능하면 단순한) 알고리즘을 생각하고 SpikeSolution을 종이 위에서 실험한 뒤에 현재 커플이 완료를 하면 그 중 한 명과 Pair Switch를 하고 기존에 코딩을 하던 친구 중 하나는 혼자 다른 문제를 읽고 실험을 하는 역할을 맡으면 효율적일 겁니다. 즉, 두 명의 코더와 한 명의 실험자로 이루어지되 지속적으로 짝 바꾸기를 하는 것이죠.
또, Easy Input Set은 직접 수작업으로 풀고 그걸 일종의 테스트 데이타로 이용해서, Difficult Input Set을 풀 프로그램을 TDD로 작성해 나가면 역시 유리할 것입니다. 이렇게 하면 Time Penalty는 거의 받을 일이 없겠죠.
특이한 점은 토너먼트 형식으로 제한된 시간내에 프로그래밍 대결을 벌인다는 거죠. 이긴자에게 상금을 줍니다만 미국외의 사람에겐 받을 자격이 없는 것 같기도 합니다. 스윙 애플릿을 다운로드 받아서 주어진 문제에 대해 자바, C++, C# 등으로 코딩할 수 있고 제대로 해결했는지 그 자리에서 바로 확인할 수 있습니다. -- 박지훈
http://ace.delos.com/usacogate 에서 트레이닝 받을 수 있지요. 중,고등학생 대상이라 그리 어렵지 않을겁니다. ["이덕준"]은 ProgrammingContest 준비 첫걸음으로 이 트레이닝을 추천합니다.
- SmalltalkBestPracticePatterns/DispatchedInterpretation . . . . 33 matches
인코딩은 프로그래밍에 있어서 필수적이다. 몇몇 관점에서 당신은 말한다, "약간의 정보가 있다. 어떻게 그것을 표현할 수 있는가?" 정보를 인코딩하는 결정은 하루에도 아주 많이(a hundred times a day) 발생한다.
Back in the days when data was separated from computation, and seldom the twain should meet, encoding decisions were critical. Any encoding decision you made was propagated to many different parts of the computation. If you got the encoding wrong, the cost of change was enormous. The longer it took to find the mistake, the more ridiculous the bill.
과거로 돌아가서 데이타가 연산으로부터 불리되었을 때, 그리고 종종 그 둘이 만나야 했을 때, 인코딩 결정은 중대한 것이었다. 너의 어떠한 인코딩 결정은 연산의 많은 다른 부분들을 점차적으로 증가시켜나아갔다. 만약 잘못된 인코딩을 한다면, 변화의 비용은 막대하다. The longer it took to find the mistake, the more ridiculous the bill.
객체들 사이에서 어떻게 책임을 분배하는가는 중요한 결정이다, 인코딩은 그 다음이다. 잘 요소화된 프로그램들의 대부분에서, 오직 하나의 객체만이 한 조각의 정보에 관심을 가진다. 객체는 정보를 직접적으로 참조하고 사적으로 필요한 모든 인코딩과 디코딩을 수행한다.
Sometimes, however, information in one object must influence the behavior of another. When the uses of the information are simple, or the possible choices based on the information limited, it is sufficient to send a message to the encoded object. Thus, the fact that boolean values are represented as instances of one of two classes, True and False, is hidden behind the message #ifTrue:ifFalse:.
때때로, 그러나, 한 객체의 정보는 다른 객체의 행위에 영향을 미칠 것이다. 정보의 사용이 단순할 경우, 또는 제한된 정보에 기반해서 선택이 가능할 경우에는 인코딩된 객체에게 메시지를 보내는 것이 충분히 가능하다. 이와 같이, 부울린 값들은 두 클래스의 하나의 인스턴스로 표현되어진다는 사실은, True 그리고 False, 메시지 #ifTrue: ifFalse:. 뒤로 숨겨진다
True>>ifTrue:trueBlock ifFalse:falseBlock
False>>ifTrue:trueBlock ifFalse:falseBlock
When there are many different types of information to be encoded, and the behavior of clients changes based on the information, these simple strategies won't work. The problem is that you don't want each of a hundred clients to explicitly record in a case statement what all the types of information are.
command = #line if True:
* ''Have the client send a message to the encoded object. PAss a parameter to which the encoded object will send decoded messages.''
This is a simplified case of Dispatched Interpretation because there is only a single message coming back. For the most part, there will be several messages. For example, we can use this pattern with the Shape example. Rather than have a case statement for every command, we have a method in PostScriptShapePrinter for every command, For example:
Rather than Shapes providing #commandAt: and #argumentsAt:, they provide #sendCommantAt: anInteger to: anObject, where #lineFrom:to: is one of the messages that could be sent back. Then the original display code could read:
sendCommandAt: each
This could be further simplified by giving Shapes the responsibility to iterate over themselves:
Shape>>sendCommandsTo: anObject
sendCommandAt: each
aShape sendCommandsTo: self
- 정모/2011.3.2 . . . . 33 matches
* 3월 20일이 정보처리기사 필기 시험일인 관계로 12월로 연기.
|| 프로그램 || 진행자 ||
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 새 학기 첫 정모라 그런지 많은 분들이 참석해주셔서 좋았습니다. 정모에서 학술활동을 하기로 했는데 어제는 학기 첫 정모인데다 페챠쿠챠도 없어 안내 위주로 진행된 것이 아쉽네요. 밤을 새고 정모를 갔더니 정신이 없어 진행하는 동안 실수를 많이해서 다음부턴 정모 전날에 꼭 잠을 충분히 자고 와야겠다고 생각했습니다. 사실 어제 정모를 마치고 예정보다 정모가 빨리 끝나서 당황스러웠습니다. 내용을 꾸릴때는 두시간치 내용이라고 생각했는데 진행하면서 제가 말이 조금 빠르지 않았나 싶습니다. 앞에서 계속 혼자 말하려니 듣는 분들은 현재 어떻게 느끼고 계시는지 알 수 없어 문제입니다. 그리고 꽤 많은 내용을 안내했는데 그냥 줄줄 말하기만해서 다 기억하실 수 있을지 걱정입니다. 정모 요약에 내용을 정리해 올릴 예정이지만 그와 별개로 다음 정모부터는 안내할 내용이 많은 경우 ppt나 문서 등 자료를 준비해오도록 하겠습니다. - [김수경]
* 개강 첫 정모라 그런지 재학생분들의 참여가 많아서 좋았어요! 오랜맨에 보는 얼굴들이 많아서 반가웠습니다. 그런데 10분들은 많이 안계시네요. 참가자들의 학년(?)이 높아선지 제안된 스터디들의 수준이 높아서 설렘!! 하지만 지난학기 성적을 보고 학기중에 다른 활동이 많으면 성적이 안좋아진다는 사실을 깨달았기때문에 전부 참여하지는 못했습니다.. 스프링에 대한 설명을 잘 못해서 아쉬웠는데 앞으로는 발표할 때 머릿속으로 잠깐 생각한 다음 말해야겠습니다. (첨부)정모에서 지난 스터디때 배운 내용을 공유할 수 있도록 기록해서 정리하는 습관을 들여야겠어요. - [서지혜]
* 정모 방식이 피드백을 하는 것으로 갯수를 채워야 정회원이 유지된다고 들었습니다. 커피 포인트 도장을 찍는 것 같아, 다 모으면 정회원 혜택! 이라는 것이 더 와닿습니다. 새싹 교실 강사 지원을 했는데, 매주 2시간 씩 8회 이상 수업하는 것과 printf가 아닌 다른 방식으로 확인하는 것이 신기했습니다. 제가 잘 할 수 있을 지 모르겠지만, 되도록 중간고사 전후로 끝내는 내에서 열심히 진도를 나가보겠습니다ㅠㅠ 그리고 책읽기 모임! 장소 이번에도 카페 같은 곳으로 잡는건가요?ㅁ? 월요일 5시로 정했지만 6피의 서랍장 있는 쪽 책상에서 시험기간만 아니면 조용히 대화해도 괜찮지만..음 토모카나 기숙사 쪽의 카페를 애용하는 것도 괜찮고, 과방이나 다른 빈 강의실을 잡는 것도 괜찮을 듯 싶어요. - [강소현]
* 학기 시작하고 첫 정모를 갔습니다. 오랜만에 가니까 모르는 사람 반 아는 사람 반 그래도 반가웠습니다. 복학하니까 동기들이 안드로메다로 가있는 기분입니다. 앞으로 열심히 공부해서 따라잡아야 겠습니다. - [임상현]
* 아놔 수정하고 고치기 눌러서 날렸어요... 우선 늦어서 앞부분은 잘 못들었구요, 07, 08 학우들이 많이 와서 좋았습니다. 그들의 화려한 컴백 및 활동 유지를 기대해봅니다. 독서모임에 참여함으로써 정모를 제외하고 ZP에서의 공식적이고 정기적인 학술회적 활동을 하는게 얼마만인지 모르겠네요. 소현이 말에 첨언하면 정모 직전이니 카페는 무슨 그냥 피시실이던 과방이던 강의실이던 학교에서 합시다. '''아 그리고 우리 사진좀 남겨요!! 저도 맨날 잊어먹는데 진짜 2009년 이후로 사진이 하나도 없어요!!'''- [송지원]
* ZP정모는 작년 1학기이후로 참 오랜만에 참여해봤습니다. 1학년때는 열심히 갔었는데 점점 뜸해지더니 3학년때는 거의활동을 못했네요 ㅠ_ㅜ. 앞으로는 열심히 참여하고 싶어요. 회원들이 참 열심히 스터디를 하고있어서 좀 뒤쳐지는느낌이많이들어서 열심히해야겠다는 생각이들었구요 ㅎㅎ 그래서 스터디참여도 하고싶은데 뭐부터해야할지 좀막막하네요 ㅠ_ㅜ. - [이원정]
* 사람들이 정말 많이왔어요! 처음 보는 분들도 몇 분 계셨구요. 고학년들이 많아서인지 제안된 프로젝트나 스터디 내용이 수준이 있어서 좋았습니다. 안건들에 대한 의견도 많이 나와서 좋았습니다. ZP가 활발해진다는 느낌이 들어서 굿굿. 저도 지금 프로젝트 하나 건의 했는데, 잘 준비해서 열심히 해봐야 겠네요. - [박성현]
* 방학동안에 수요일에 일이있어서 한동안 정모를 못 나왔었는데요, 간만에 정모를 참여 할 수 있어서 좋았습니다. ZP정모에 참석을 하면 항상 뭔가 새로운 것을 해보고 싶은 기분이 들기때문에 더 좋으것 같아요. 앞으로도 더 잘 참석하겠습니다. - [박정근]
* 방학동안 정모를 못나가다가 개강이후 오랜만에 정모에 나갔습니다. 처음보는 복학하신 선배분들도 많이 계시고 사람이 많았고 방학동안 프로젝트나 스터디도 참여를 못햇는데 후기를 듣고보니 좀 열심히 참여해서 여러모로 능력을 키워보는것도 좋겠다는 생각이 들었습니다. 새싹교실(새싹스터디) 를 시작으로 올해엔 좀더 활동적으로 참여해봤으면 좋겠다 하는 생각이 듭니다요 - [경세준]
1학년때는 나름 나왔었는데, 지금은 뒤로 슬슬 뒤쳐지는 기분이고요ㅋㅋ 정중동이라고 그러던가 뭔가 고요한 듯한데 지피가 정말 활발해 보여서 좋았습니다. 몸이 안 따라주기는 하는데 정모 참여부터 시작해서 조금씩 활동력을 늘리도록 노력할게요 - [정지연]
- 코바용어정리 . . . . 33 matches
객체의 참조를 유지함으로써 원격 객체를 액세스할 수 있는 node(단어 선택이 부적절한 것 같군 --;;)이다. 즉 객체 레퍼런스를 사용하여 클라이언트는 객체의 오퍼레이션을 수행할 수 있게 된다. 원격 객체를 액세스 하는 과정에 대해 구체적으로 기술하면 다음과 같다. 클라이언트는 언어 맵핑을 통해 객체와 ORB 인터페이스에 액세스할 수 있다. ORB는 구현 객체와 클라이언트 사이의 커트롤 전달 및 데이터 전달 관리를 책임지고 있다. 결국 클라이언트는 언어 맵핑을 통해서 ORB와 상호 작용할 수 있고, ORB는 원격 객체에 대한 레퍼런스를 얻을 수 있게 된다. 이런 방식으로 클라이언트는 분산 환경하에서 객체를 이름과 인터페이스만으로 마음대로 참조할 수 있는 것이다. ORB를 버스라고 생각하면 쉽게 이해할 수 있을 것이다.
클라이언트의 반대쪽에는 구현 객체라고 알려진 실제 객체가 있다. '구현 객체(Object Implementation)'는 실제 상태(state)와 객체의 반응 양상(behavior)을 규정하며 다양한 방식으로 구성될 수 있다. 구현 객체는 객체의 메소드와 객체에 대한 활성화 및 비활성화 프로시저를 정의한다. 구현 객체는 객체 어댑터의 도움을 받아 ORB와 상호 작용한다. 객체 어댑터는 구현 객체를 특정하게 사용하는 데에 편리하도록 ORB 서비스에 대한 인터페이스를 제공하게 된다. 구현 객체는 ORB와 상호 작용하여 그 정체를 확립하고 새로운 객체를 생성하며 ORB에 따르는 서비스를 획득할 수 있도록 한다. 새로운 객체가 생성되면 ORB에게 통보되고 이 객체의 구현이 어디에 위치하는가를 알게 된다. 호출이 발생하면 ORB, 객체 어댑터, 스켈레톤은 구현의 적절한 메소드에 대한 호출이 되도록 만들어야 한다.
CORBA는 C++과 Java 같은 객체 지향 언어와 C와 같은 절차적 언어 양쪽 모두에서 사용될 수 있다. 객체 지향 언어에서는 사용자가 객체의 특성을 정의하고 그 프로퍼티에 액세스할 수 있게 해주는 메소드와 인터페이스를 제공한다. 이것은 비객체 지향 언어에는 없는 기능인데, 이것들은 각각
의 인터페이스 타입에 대해 스텁에 대한 프로그래밍 인터페이스를 필요로 한다. 보통 스텁은 OMG-IDL로 정의되어 있는 객체 오퍼레이션에 대한 액세를 하게 해주는데, 일단 프로그래머가 OMG-IDL 및 특정 프로그래밍 언어에 대한 언어 매핑에 친숙해지면 손쉽게 예상이 가능한 방식으로 액세르를 하게 해준다. 해당 스텁은 ORB 코어에 전용이며 최적화된 인터페이스를 사용해서 나머지 ORB들을 호출하게 될 것이다. 만약 여러 개의 ORB를 사용하게 된다면 각각의 스텁은 제 각기 해당하는 ORB를 호출하게 될 것이다. 이 경우에 ORB와 언어 맵핑은 공조하여 각각의 스텁이 특정 객체 레퍼런스와 제대로 연결될 수 있도록 해야 할 것이다.
클라이언트가 호출될 객체와 수행할 오퍼레이션을 지정하고자 할 때, 특정 객체 A의 특정 오퍼레이션을 지정하는 대신 객체 호출을 동적으로 생성하도록 허용하는 인터페이스를 이용할 수 있다. 이러한 경우 클라이언트 코드에서는 수행되는 오퍼레이션과 전달되는 파라미터의 타입에 대한 정보를 제공해야 한다. 이 정보는 대개 인터페이스 저장소와 같은 런타입 소스에서 얻어진다. 실행 시간 중에 해당 정보를 얻은 후, 클라이언트 코드는 이른바 동적 호출 인터페이스(DII)를 이용해서 동적으로 호출을 할 수 있게 된다.
객체 어댑터를 통하여 ORB가 제공하는 서비스에는 흔히 객체 레퍼런스의 생성과 해석, 메소드 구현, 보안과 상호 작용, 구현 객체의 활성화/비활성화, 구현으로의 객체 레퍼런스 맵핑, 그리고 구현 객체의 등록 기능 등이 포함된다. 객체 어댑터를 통하게 되면, ORB에서 비슷한 요구 사항을 가진 특정 그룹의 구현 객체만을 한정하여 다루는 것이 가능해진다.
각각의 언어 매핑에 대해(아마도 객체 어댑터에의 의존하게 되겠지만) 각각의 타입의 객체를 구현하도록 해주는 메소드에 대한 인터페이스가 존재할 것이다. 이 인터페이스는 일반적으로 업콜(up-call) 인터페이스일 것이다. 구현 객체의 개발자는 그 인터페이스에 따라 루틴을 작성하게 되고 ORB는 스켈레톤을 통해서 그 루틴을 호출하게 될 것이다. 그러나 스켈레톤의 존재가 그에 사응하는 클라이언트 스텁의 조재를 의미하지는 않는다는 것이다. 이말은 클라이언트가 DII를 통해서 리퀘스트를 만들 수도 있다는 것이다. 또한, 어떤 언어 맵핑은 스켈레톤을 사용하지 않는데, 이것은 Smalltalk에시는 대체적으로 맞는 말이다.
동적 스켈레톤 인터페이스는 IDL에 기초하지 않는 스켈레톤/스텁을 가진 객체의 메소드 호출을 처리해야 하는 서버에 대해 런타임 바인딩 메커니즘을 제공한다. 동적 스켈레톤은 수신된 메시지의 파라미터값을 참조하여 어떤 객체가 호출되었는지 어떤 메소드가 호출되었는지를 알게 된다. 이것은 일반적으로 컴파일된 스켈레톤을 사용하는 것과는 비교되는데 이러한 스켈레톤에서는 메소드의 구현이 IDL로 정의된다. 구현 코드는 모든 오퍼레이션 파라미터에 대한 상세한 설명을 ORB에 제공해야 하며, ORB는 오퍼레이션을 수행할 때 사용되는 입력 파라미터값을 제공한다. 오퍼레이션이 수행된 후, 구현 코드는 출력 파라미터 또는 익셉션을 ORB에게 넘겨준다. 동적 스켈레톤 인터페이스의 특성은 프로그래밍 언어 맵핑에 따라 또는 객체 어댑터에 따라 실질적으로 달라질 수 있지만, 일반적으로는 업콜 인터페이스이다. 동적 스켈레톤은 클라이언트 스텁 또는 DII를 통해서 호출될 수 있다. 이 두 가지 방식의 클라이너트 리퀘스트 생성 인터페이스는 동일한 결과를 제공한다.
ORB 인터페이스는 애플리케이션에 중요한 지역 서비스에 대한 API들로 구성되어 있지 않다. 이것은 곧바로 ORB로 가는 인터페이스이고 모든 ORB들에 대해 동일하다.ORB 인터페이스는 객체 어댑터 또는 객체 인터페이스에 의존하지 않는다. 대부분의 ORB의 기능이 객체 어댑터, 스텁, 스켈레톤 또는 동적 호출 등을 통해서 제공되므로 몇몇 오퍼레이션만이 모든 객체들에 대해 공통이다. 공통 오퍼레이션에는 get_interface와 get_implementation 같은 함수가 포함되어 있는데, 이것들은 임의의 객체 레퍼런스에 작용하며 각각 인터페이스 저장소 객체와 구현 저장소 객체를 얻는 데 사용된다.
- 프로그래머가지녀야할생각 . . . . 33 matches
저의 글에서 프로그래머 의 범위는 초보프로그래머 로 할까 합니다.
학부시절 혼자하는 프로그래밍의 경우, 사소한 기능 하나를 추가하려다가 제풀에 지쳐서,
전체 프로그램을 포기하는 경우가 생기곤 하죠..
''목적'' 이 무엇인가를 늘 기억했으면 합니다. 무엇을 목적으로 하는지 잊어버릴 경우
''간혹 프로그래밍을 하다가 보면 주객이 전도가 되어버리곤 하죠. 좋은 지적 --1002''
와.. 정말 어려운 질문이네요.. 프로그래머가 지녀야할.. 생각..ㅡ.ㅡ 이라...
제 생각에 현대 사회에서 근면이라는 가치는 상대적으로 많이 떨어졌다고 생각합니다. 요즘 같이 한 사람에게 많은 일을 짧은 시간 내에 요구하는 사회에서 근면함이 얼마나 큰 가치를 지닐 수 있을지는 곰곰히 생각해보아야 할 것 같습니다. 그리고 부지런하지도 게으르지도 않은 사람도 많습니다. 자책하지 마세요. :) (혹시 진짜 게으른.. --+) -- nautes
너무나 이상적이고 추상적인 생각이겠지만 '프로그래머는 사회에 이익이 되는 프로그램을 만들어야 한다'는 근본적인 생각을 갖는 건 어떨까요? 예를 들어 재미있는 오락도 좋겠지만 장애인이나 나이 많이 드신 분들을 위한 보조용프로그램 같은 것들이 많이 개발되어야 한다고 생각합니다. 전에 정보요원단 활동을 할 때 우리나라에 보급되어 있는 장애인용 프로그램들이 많이 부족한 현실을 봤었는데... 내가 만든 프로그램이 남에게 도움이 된다면 그보다 좋을 일이 또 있을까요? ^^ -- jeppy
스스로 무엇을 이루고자 하는지 그 뜻을 세우는 것도 중요하다고 생각합니다.
프로그래머는 예술가가 될수도 있고, 스니커가 될수도 있고, 비난을 듣는 경영자로 변신할 가능성도 있지요. --혀뉘
* 다들 인간으로써의 프로그래머를 두고 말씀하시는 것 같아 제 말이 뚱딴지처럼 들릴 것 같네요...^^;[[BR]]전 말이죠... 프로그래머는 컴퓨터를 사랑해야한다고 생각합니다. 정말 제가 생각해서 어이없는 말 같지만, 프로그래머는 컴퓨터에게 명령만 내리는 것이 아니라 컴퓨터와의 커뮤니티가 형성되어야 좋은 프로그램(인간에게가 아니라 컴에게)을 짤 수 있다고 생각합니다. 지극히 추상적이라서 반박의 여지가 많은 말이지만 그냥 그렇지 않을까 생각해봅니다. 컴퓨터에 미친 사람이라면 다음의 말에 공감을 할 지도 모르겠네요. [해커를 위한 파워핸드북]표지에 나오는 말입니다. ''''컴퓨터 속에서 흘러 다니던 비트가 내 혈관 속으로 옮겨와 흐르기 시작하고, 나는 컴퓨터와 함께 오르가즘을 느낀다.'''' --["창섭"]
* 위엣 말이 컴퓨터 자체에 관한 기계적 이야기라면 인간적 이야기도 추가하고 싶어요. 프로그래머는 프로그램 이전에 인간을 먼저 생각해야 한다는 것이죠... 상민이 형이 줬던 V노트에 나온 말이 인상깊습니다. ''''크래커든 프로그래머든 둘다 시작은 해커를 꿈꾼 젊은이 였으며, 인격을 가진 사람이다. 악이 없이 선이 없듯이 크래커가 영원히 존재하지 않을수는 없을지라도 지금 당신의 열정과 땀으로 주어질 선택이 진정한 존경으로 돌아올수 있도록 유혹을 이겨낸 진짜 승자가 되어야 하지 않을까......'''' --["창섭"]
DeleteMe) 태권V 님이라고 이번달 마소Jr인가 저번달 마소Jr에 등장하는 단체의 장인거 같은데. 찾아봐봐 devpia에 주로 활동 --상민
DeleteMe) 오.. 실제로 많은 활동을 하시는 분이군요. 단체의 장이라...무슨 단체이죠.-.-? --["창섭"]
- 02_Python . . . . 32 matches
* 자료형, 연산자 , 기본문법 , 함수 , 모듈을 중점적으로 다룰 예정임
* 마지막으로 후배들과 같이 파이썬 스터디를 할수 있기를 바라는 바램
* 사용하기 쉽고 , 배우기 쉬우며 여러 방향으로 이용할수 있는 언어이다.
* (RCM이 차세대 언어의 특징으로 꼽는) 동적자료형 객체지향 언어
* Red Hat의 리눅스 인스톨러인 아나콘다는 파이썬으로 짜여져 있다
* Infoseek 이란 포탈 싸이트는 일부 검색엔진을 파이썬 기반으로 사용한다
* 이 위키페이지는 파이썬을 이용한 cgi 로 만들어졌다
'' C 나 C++ 은 소스를 한꺼번에 다 치고서 나중에 "컴파일" 하는식이지만 Python 의 경우 자신이 쓰는 라인마다 읽혀들어간다. ''
'' 자바와 같이 VM 머신상에서 돌아가는 이론이므로 운영체제 독립적이다. ''
if not aList:
ltList=[y for y in aList[1:] if y<aList[0]]
gtList=[y for y in aList[1:] if y>=aList[0]]
=== 파이썬 프로그램은 모듈(module), 문(statement), 그리고 객체(object) 로 구성된다. ===
{{{~cpp 1. 프로그램은 모듈로 구성되어 있다.
* 파이썬은 내장 자료형을 기본으로 한다.
'' 기존 C 나 C++ 의 경우는 어떠한 변수를 지정할떄 타입을 꼭 지정해 줘야했다 그 예로 int 나 char 이 있다 하지만 파이썬의 경우는
자체적으로 자료형을 지원해서 나오므로 어떠한 변수형인지 지정을 해주지 않아도 된다 ''
1234, -25,0 일반정수 이며 C의 경우 int 에 해당한다.
1.23, 3E210 부동소수점이며 C의 경우 double 에 해당한다.
* 파이썬의 가장 유연한 자료형이므로 객체 자료의 순서를 갖는 집합이다.
- 1002/TPOCP . . . . 32 matches
프로그래머들이 그들의 작업을 하는 방법에 대한 연구 격려
개인 프로그래머들의 실력을 향상시키는 것에 대한 이해를 촉진
25년이 지났지만, 프로그래머 개인은 이전보다 더 적합하진 않음. 비록 생산성은 높아졌지만.
try & error 식으로 접근. 프로그래밍전 미리 생각하거나 머릿속으로 그려보지 않음
프로그래밍 뒤에 잊어버린다.
문제해결방법을 찾는 여러 방법들을 인식하고 있다. 문제를 이해하기 위한 프로그램을 준비하기도 한다
프로그래밍에 대해 배운다. (문제상황이란 그의 개발 과정중 부수적인 일들)
case) 물리 교수로부터 해당 메트릭스를 반전하는 프로그램 작성. 한 개발자는 (A) 뭔가 배울 수 있는 좋은 기회라고 생각, buffering 을 이용하여 문제를 해결하려고 함.
각각의 프로그램에는 적절한 레벨이 있다.
case2) 4개의 프로그래머 그룹에 해당 일을 맡김.
B - 메소드가 장동하지 앟을때, 그냥 drop 해버리고 다른 것으로 교체버림.
'목표'로서의 스케줄은 '할당된 시간'에 영향을 줄 수 있다.
프로그래밍의 각 부분에 대해 동일한 능력과 수고가 필요하다고 생각하는 것을 잘못이다.
'분석, 플로우 다이어그램 작성, 코딩, 테스팅, 도큐먼트' 로 분리하는 사고는 여러 면에서 프로그래밍을 왜곡시킨다.
우리는 이러한 복잡한 행위들을 단순한 하나로 만들어야 한다.
프로그래밍 프로젝트를 정의된 단계들로 세밀하게 나눌 수 있지만, 좋은 아이디어는 아니다.
우리는 프로젝트의 일들을 정리하여 각각의 사람들이 자신이 잘하는 영역에 대해서로 특수화할 수 있도록 할 수 있지만, 적어도 두가지 단점이 존재한다.
우리는 각각의 프로그래머들이 자신이 잘 못하는 영역에 대해 스페셜리스트가 되게 일을 할당함으로서 학습률을 극대화할 수 있다. 또한, 그가 문제상황이 생겼을때 각가이 다른 작업으로 교체할 수 있는 기회를 가질 수 있다.
프로그래밍 프로젝트에 대한 전체 한바퀴를 돌고 난뒤, 프로그래머들이 작업하는 더 올바른 방법으로 작업을 나누는 것을 시도한다.
- ErdosNumbers/조현태 . . . . 32 matches
끙..;; 처음에 문제를 보고 C++로 자료구조를 만들어서 해보자는 생각으로 했지만..
이렇게 두개를 만들어서 나름대로는 연산이 쪼~~~끔 줄었다고 말하고 싶지만..
if (score!=0)
else if (-1!=score)
else
if (NULL!=names)
if (line_numbers!=NULL)
if (NULL!=line_numbers)
if (0==tuched)
if (0<=where && where<number_line)
if (NULL!=prv)
if (NULL!=next)
if (NULL!=prv)
if (NULL!=books)
if (NULL!=mans)
if (0==target_a[i])
if (target_a[i]!=target_b[i])
if (0==str_cmp(target_name,mans[i]->get_name()))
if (-1==temp_man_number)
else
- HelpOnInstallation . . . . 32 matches
* 최신 모니위키는 PHP로 만들어진 RcsLite를 제공하며, rcs 대신에 사용할 수 있습니다.
* 윈도우즈 사용자의 경우는 아파치 웹서버를 제외한 PHP + rcs + 기타 몇몇 프로그램이 함께 패키징 된 apmoni-setup-1.1.x.exe를 제공합니다.
* 윈도우즈 사용자의 경우 micro apache 웹서버가 포함된, mapmoni-setup-1.1.x.exe 를 받으실 수도 있습니다. (단, 여기서 .x. 는 3 이상)
== 다운로드 받는다 ==
디렉토리 이름을 원하는 것으로 바꿀 수도 있다. 예를 들어 {{{/wiki}}}라고 바꿀 수 있으며
/!\ 윈도우즈 환경에서는 곧바로 monisetup.php를 실행하시면 됩니다. (구버전의 모니위키에서는 monisetup.bat를 실행해야 합니다).
처음 설치할 경우 MoniSetup을 이용해서 config.php를 만들게 된다.
여기서 가장 중요한 것은 {{{$url_prefix}}}를 고치는 것이다. 이 값은 초기에 자동으로 설정되며,
이 값을 제대로 지정하면 MoniSetup에서 다음과 같은 로고 그림을 볼 수 있다.
1. 처음 실행하면 {{{monisetup.php}}}가 자동으로 뜨며 자신의 환경에 맞는 config.php를 가 만들어진다.
1. MoniWiki를 처음 설치할 경우는 WikiSeed를 심을것인지를 선택한다.
씨앗을 심는 경우는 불필요한 페이지가 들어갈 수 있는데, 어느정도 익숙해졌다고 생각되면 지워도 되며, 아예 처음부터 설치하지 않아도 된다.[[BR]]
* 그밖의 질문은 http://kldp.net/projects/moniwiki/forum (모니위키 프로젝트 홈페이지의 게시판)
1. MoniSetup을 실행시킬 때, {{{$admin_passwd}}}를 설정하면 자신만 DeletePage할 수 있다. 이 값을 설정하면, 차후에 MoniSetup을 할 때 이 값을 알아야 고칠 수 있으며, config.php에 이 값이 들어가므로 수동으로 고칠 수 있다. See also AdminPassword
2. {{{$rcs_user}}}의 기본 값은 "root"이나, 위키를 처음 설치할 경우는 이 값을 조절할 수 있다. 한번 결정한 후에는 이 값을 계속해서 써야한다.
* 윈도우즈에서 설치할 때에 이 값이 바뀔 수 있다. 업그레이드를 하여 데이타를 옮겼을 경우에 이 값을 계속 유지하도록 해주어야 한다.
* /!\ {{{$rcs_user}}} 값이 변경되면 버전관리를 쓸 수 없으므로 유의해야 한다.
업그레이드를 편리하게 하려면, 플러그인을 새로 추가할 경우는 원 파일을 고치는 것보다는 새롭게 플러그인을 만들어 준다. 이렇게 하면 tar파일을 덮어쓰는 것만으로 간단히 업그레이드 할 수 있다.
특별한 경우가 아니라면, 덮어쓰는 것만으로 업그레이드 할 수 있다. 원 파일을 수정하였을 경우라면 덮어쓰는 것을 선택적으로 해주어야 할 것이다.
root사용자라면 tar를 이용해서 간단히 백업할 수 있겠고, 호스팅을 하는 일반 사용자의 경우라면 backup restore를 액션을 이용할 수 있다.
- LoveCalculator/조현태 . . . . 32 matches
최초로 문제를 못읽어서 못풀뻔 했다..;;ㅁ;; 영어는 넘흐 어려워잉~>ㅃ<;;
커플이야 사랑을 이딴걸로 확인할일 없을꺼고.. 사용하는 사람은 할일없는 솔로뿐..
솔로들의 심심풀이 땅콩을 만드는데 노력해야 하다니..아흐..슬퍼라.쳇..
커플이라면 내이름과 그녀의 이름을 입력하면 무조건 100%~라는 조건을 넣을수도 있는데..이게뭐람..ㅎ
그건 그렇고 소스가 다시 C로 돌아와서 작성해 보았다.^^
if (64<temp_save_name[j] && temp_save_name[j]<91) // 대문자 입력
else if (96<temp_save_name[j] && temp_save_name[j]<123) // 소문자 입력
else if (NULL==temp_save_name[j])
if (name_score[0]>name_score[1])
else
if (number<10)
else
if (BACK_SPACE==temp_char)
else if(ENTER==temp_char)
else
if ('a'<=temp_save_name[j] && temp_save_name[j]<='z')
if (number<10)
else
if (name_score[0]>name_score[1])
else
- MFC/CollectionClass . . . . 32 matches
'''컬렉션(Collection)'''은 특별한 방식으로 구성되어 있는 임의 개수의 데이터 항목의 집합을 뜻한다.
MFC에서 제공하는 컬렉션을 다루는 클래스는 그 형태에 따라서 크게 3가지로 구분할 수 있다.
|| List || 순서가 있는 데이터 항목의 집합. Doubly-linked list 로 구현되어 있다. 데이터의 삽입, 삭제가 빠르지만 하나하나의 데이터를 검색하는 속도는 느리다. ||
''두가지 형태로 구현되어있다. 첫번째는 함수템플릿을 이용한 형태로 구현되어있고, 두번째는 템플릿을 사용하지 않는 방법으로 옛 버전의 VC++에서 부터 사용되어온 방식이다. 현재는 템플릿을 이용한 방법을 사용하는 것이 좋다.''
객체의 컬렉션을 정의하는 템플릿 클래스는 MFC의 CObject클래스에서 파생된다. 이런 템플릿 클래스는 기본 데이터 형식이나 사용자가 정의한 클래스, 구조체를 포함한 어떠한 종류의 객체도 저장, 관리하는 것이 가능하다. 이런 클래스들은 내부적으로 복사를 하기 때문에 복사생성자를 만들어야 한다.
|| {{{~cpp GetAt(index)}}} || 인덱스로 지정된 배열의 객체를 리턴한다. ||
|| {{{~cpp Append()}}} || 인자로 전달된 배열을 배열의 끝 부분에 추가한다. ||
|| {{{~cpp InsertAt()}}} || 인자로 전달된 객체를 배열의 특정 인덱스에 삽입한다. ||
두번ㅤㅉㅒㅤ 인자로쓰이는 참조형은 포인터형이나 일반 객체 타입으로 바꾸는 것도 가능하며, 이것은 프로그래머의 의도에 따라 다르다.
|| {{{~cpp Find(ObjectType)}}} || 인자로 받은 객체를 검색해서 그 위치의 POSITION값을 리턴한다. 어드레스 수준에서 비교가 행해진다. ||
|| {{{~cpp FindIndex()}}} || 인자로 받은 int 형의 색인값을 기준으로 그곳의 POSITION 형태의 값을 리턴한다. 최초 요소는 인덱스 0을 갖는다. ||
맵은 객체와 키의 조합을 저장한다. 키는 맵에 할당된 메모리의 특정 블록안에 객체가 저장되어 있는지를 결정하는데 사용된다. 키를 맵안의 엔트리의 어드레스로 계산될 수 있는 정소로 변환하는 과정을 해실(Hashing)이라고 한다.
해싱과정은 해시값이라는 정수를 생성한다. 일반적으로 키와 그리고 연된 객체를 맵안의 어디에 저장할 것인가를 결정하기 위해서 기본 어드레스에 대한 offset 으로 해시갑이 설정된다.
해시과정에서 키가 독특한 자신만의 해시값을 갖지 못하는 경우도 존재한다. 이 경우 객체는 다른 요소또는 이전에 해시되어 동일한 값으로 저장된 객체와 링크된다.
|| {{{~cpp operator[]}}} || 배열과 동일한 형태로 사용하는 것이 가능 ||
|| {{{~cpp GetNext(POSITION)}}} || 레퍼런스 인수로 전달된 POSITION형식의 변수가 가ㅤㄹㅣㅋ미는 위치에 있는 포인터를 리턴한다. 끝에 도달하면 POSITION은 NULL로 할당. ||
''CTypedPtrList의 기본 클래스인 CObList로 부터 상속받은 것들''
|| {{{~cpp Find(ObjectType)}}} || 인자로 받은 객체를 검색해서 그 위치의 POSITION값을 리턴한다. 어드레스 수준에서 비교가 행해진다. ||
|| {{{~cpp FindIndex()}}} || 인자로 받은 int 형의 색인값을 기준으로 그곳의 POSITION 형태의 값을 리턴한다. 최초 요소는 인덱스 0을 갖는다. ||
* 내 개인적인 소견으로는 STL이 더 쓰기에 편해보인다. ㅡ.ㅡ; 단지 MFC에 최적화된어서 만들어진 만큼 MFC안에만 존재하는 장점이 있을뿐이다. Serialize 같은거? - [eternalbleu]
- PragmaticVersionControlWithCVS/CommonCVSCommands . . . . 32 matches
cvs server 에서 sesame sesame2 2개의 모듈이나 하위 모듈을 하나이 상의 동일한 이름의 지역 디렉토리로 가져옮
'''-r''' : 특정한 개발판을 체크아웃. 버전번호 혹은 꼬리표로 지정.
CVS는 HEAD, BASE라는 2개의 꼬리표를 자동으로 제공한다.
BASE : 마지막으로 현재 디렉토리에 체크아웃된 개정판
다수의 프로그래머들이 프로젝트를 진행하는 상황하에서는 내가 프로그램을 갱신하고 있는 동안 다른 프로그래머들도 프로그램의 갱신을 할 가능성이 대단히 높다. 만약 갱신주기가 길어진다면 프로그래머가 처리해야할 merge 작업이 상당할 것이다. 때문에 주기적으로 프로젝트를 checkout 하는 것이 중요하다.
'''cvs update -d [files or directory]''' : 현재 디렉토리에 존재하는 모든 파일 폴더를 저장소의 최신버전으로 체크아웃. -d 옵션은 추가된 디렉토리가 존재하는 경우에 cvs가 현재 폴더에 자동으로 폴더를 만들어서 체크아웃 시킨다.
Merging differences between 1.16 and 1.17 into pragprog.sty
cvs 는 단일 명령이 아니라 여러 하위 시스템의 집합체로 이해하는 것이 편하다.
CVS는 프로그램 소스 코드, XML 등 텍스트 파일을 위주로해서 설계되었다.
* 특정 키워드를 대체하는 방법으로 파일에 주석을 달아준다. (비추천)
하지만 바이너리의 경우에는 문제가 발생한다.
* 바이너리를 대상으로는 미동작
* 줄바꿈이 없는 바이너리에서 만약 윈도우식의 바이너리 부분을 유닉스 식으로 바꾼다면 바이너리가 깨질 것이다.
work> # then reset the flags in our workspace
개발을 하는 도중에는 여러개의 중간 단계의 파일들(.obj, .class 등등)이 생성된다. 이런 파일은 굳지 CVS 저장소에 보관하는 것이 아니라 로컬에 저장해 두고 사용자가 필요할 때마다 새로 생성시키는 것이 옳은 일이다. 다행히 cvs 는 이러한 일을 설정하는 것이 가능하다.
를 로컬 작업공간에 저장해두면 저장된 .cvsignore 를 기반해서 cvs는 그런 파일을 무시하게된다.
방법은 단지 로컬 공간의 파일이름을 바꾸고 저장소내의 기존의 파일들을 삭제한뒤 로컬공간의 이름이 바뀐 파일들을 저장소에 추가하는 방법뿐이다.
이렇게 관리를 하게되면 원래 존재했던 color.txt라는 파일에 존재하는 기존의 기록들이 삭제되어서 그 파일의 과거파일을 color_rename.txt의 로그로 이용하는 것이 불가하다. 기록이 따로 보관되기 때문이다.
- ProjectPrometheus/AT_RecommendationPrototype . . . . 32 matches
if self.bookViewList.has_key(aBook):
if self.lightReviewBookList.has_key(aBook):
if self.heavyReviewBookList.has_key(aBook):
self.bookList.append(aNewBook)
if book is not anEditBook:
if not aBook in self.bookList:
else:
self.bookList.append(aBook)
if self.bookViewList.has_key(aBook):
else:
if self.bookRelation.has_key(aBook):
else:
def getRecommendationBookList(self):
bookList.append((self.bookRelation[book], book))
returnList.append(bookdata[1])
def getRecommendationBookListLimitScore(self, aScore):
if self.bookRelation[book] >= aScore:
bookList.append((self.bookRelation[book], book))
returnList.append(bookdata[1])
class TestRecommendationSystem(unittest.TestCase):
- ProjectZephyrus/Afterwords . . . . 32 matches
1. 프로젝트를 진행하면서 '잘된점' 에 대해 나열해 나갔다. (이 때는 잘된점만 이야기함) 처음엔 한명씩 돌아가면서 이야기했고, 한바퀴 돈 다음 생각나는대로 이야기했다.
1. 프로젝트를 진행하면서 '잘못된점' 에 대해 나열해 나갔다. (이 때는 잘못된점만 이야기함) 역시 처음엔 한명씩 돌아가면서 이야기했고, 한바퀴 돈 다음 생각나는대로 이야기했다.
1. 각각의 경우들에 대해서 그 원인을 파악하고, 대안을 생각해보았다. (시간이 조금 많이 흘러서 모든 경우들에 대한 대안은 내지 못하였다. 하지만, 이는 계속 해 볼 일이다. 그당시 잘 했던 점은 더 잘하기 위해, 잘못했던 점은 다시 실수하지 않기 위해)
* deadline 을 잘 맞췄다. - 6월 10일까지 완료하기로 한 약속을 지켰다.
* WORA 를 경험해볼 수 있었다 - 윈도우즈에서 개발/테스트 한 서버 프로그램을 별다른 수정없이 linux 서버인 ZeroPageServer 에서 돌릴 수 있었다.
* 팀원들의 스케줄 관리가 어려웠다. (농땡이를 피우거나, 사람들이 프로젝트 외의 기타일로 바빠서 공동작업을 하는데 어려움)
* IDE 가 팀별/개인별로 달라서 프로젝트 화일등을 업데이트해주어야 했다.
* PP를 너무 지나치게 했다 - 서버팀의 경우 후반으로 가면서 '이건 차라리 각자 프로그래밍하는게 더 효율적이였을텐데' 하는 생각이 들었다.
* 초기 SPEC이 너무 추상적이였다. - 프로젝트 중간에 합류한 상규의 경우 프로젝트의 스펙을 이해하지 못했고, 완성된 Output 에 대한 그림을 그리지 못했다.
=== 잘된 경우에 대한 원인 분석 ===
- 초기 Up Front Design 에 신경을 썼다. Design Pattern 의 도입으로 OCP (OpenClosedPrinciple) 가 잘 지켜졌다.
- PairProgramming 전에 진행 전략을 세웠다. (5분 PP 라던지, PP 순서시 간단한 Modeling 뒤, Sequence Diagram 등을 그리고 난 뒤 진행을 한다던지, 후배들에게 프로그래밍이 완성되었을 경우에 어떠어떠하게 돌아갈 것이다 라고 미리 그 결과를 생각해보게끔 유도)
=== 잘못된 경우에 대한 원인 분석 ===
- 밑의 항목인 '팀원들의 스케줄 관리가 어려웠다' 와 관계됨. 팀원들의 열의가 부족했다. (특히 초반 프로젝트 참가자들), 팀원들이 '스케줄 조정' 에 대해 미숙했다.
* IDE 가 팀별/개인별로 달라서 프로젝트 화일등을 업데이트해주어야 했다.
- 개인들 별로 IDE 의 선호가 달랐다. (["Eclipse"], ["IntelliJ"], ["JCreator"] )
- 처음부터 고려하여 각 IDE별 Setting 화일을 업데이트 시켜주기. Batch File 등으로 자동화하기. IDE 의 통일 고려.
- JavaDoc의 시선 분산 여부는 개인차와 주석에 대한 의견을 ["프로그램내에서의주석"]에서 토론되었다.
- egoless Programmer. 현재의 코드는 '나만의 것' 이 아니다. 같이 개발했으므로 그 팀의 책임일 뿐이다.
- 프로젝트의 목적이 공부 라는 인식의 부족. 공부한 부분에 대해서 (Swing, Java Network 등)에 대한 문서화가 없었다. SPEC 과 Output 에 치중한 점이 있다.
- ProjectZephyrus/ServerJourney . . . . 32 matches
* ok 완료. 문제는 내가 {{{~cpp command.CommandManager.getCommand()}}}에서 해당 패킷에서 {{{~cpp DeleteBuddy}}} 객체를 만든게 아니라 {{{~cpp InsertBuddy}}} 객체를 만들어 주어서 였다. 금요일에 pair시 이부분을 그대로 복사해서 붙여 두었었거든, 한줄 바로 잡으니 잘 돌아 간다. 네 의도대로 인지, 테스트 해봐라 --상민
* 상규의 delete buddy의 DB기능의 업데이트로 Server는 끝났다. --상민
* 느낀점 : 휴.. 전에 툴을 쓸때는 해당 툴과 손가락이 생각을 못따라가 가는 것이 너무 아쉬웠는데, Eclipse에서는 거의 동시에 진행할수 있었다. extract method, rename, quick fix, auto fix task,마우스가 필요 없는 작업 환경들 etc VC++로 프로그래밍 할때도 거의 알고 있는 단축키와 key map을 macro를 만들어 써도 이정도가 아니었는데 휴..
* 존카멕의 인터뷰에서 영어로 하는 말은 제대로 못알아 먹었지만, 그들의 코딩 환경은 마음에 들었다. 40인치 모니터 --;;
* 그래도 그 덕분에 확장 명령어 넣을 생각을 할수 있다는 새로운 취미를 생각할수 있다. 그것도 그런데로 건진것 같다는 생각이 드네 ^^; --상민
* 상규 파트는 {{{~cpp InfoManager}}}만을 건드리도록 원칙을 정했기에, Cmd 부분이 결정되야 작업이 가능하다. 결정은 다되었고, Cmd들의 Attribute만 넣은 상태로 넘겨주면 진행이 될텐데, 지연되는 것이 안타깝다. 그냥 내가 만들고 넘겨야 할듯..
* 현재 재동군의 참여가 저조한 점이 아쉽다. 일단, ["ProjectZephyrus/Server"]에 기능별로 나누어 놓으니 구현하도록 그리고 금요일에 전화함 --상민
* 앗싸 재동이에게 사기 쳤다. initinstance 부분에서 점선으로 초기화 되는 과정에 대하여 표현이 잘못 되었었군. 재동 말이 맞았음 역시나 방학때 다시 한번 훌터 봐야 할듯 바보 같이
* 재동에게 구조 설명함, 하지만 보람차다는 느낌이 없다. 반응이 저래서야 상당히 피곤하다는 느낌 밖에는 없군. 재동 "별거 아니네요" 라는 말로 일축 할만큼 내가 짧은 시간을 투자한게 아닌데 말이지 우어~ 아무 것도 없는 도화지에 저거 그려봐 우어~ --상민
''뭐.. 비디오 들고 과정 찍어보여주기전에는 모를테니. 새글쓰긴 힘들고 리플달기는 쉽고. 새로운 프로그램 만들기는 어렵고, 클론 만들기는 상대적으로 쉬운법. --석천''
* 현재 상태에서는 속도에는 신경 쓰지 말자, 일단 구조만 잘 정의 해놓으면, 개선 사항은 얼마든지 체계적으로 생각 날것이라고 생각 된다. 현재는 체계적으로 생각 나지 않지 않그런가? 당장 그날 구현만 해도 JDBC의 몇가지 api로 중복 부분의 속도 개선의 여지가 보이는데, 너무 많이 생각하면 해골 복잡하니, '''기능 구현''' 에만 중점을 두자. 이제 DB는 인터페이스만 정의 하면 완전 따로 놀수 있을것 같다. --상민
* mm.mysql과 Junit 의 라이브러리를 프로젝트 내부에 넣고, 패키지를 network, information, command 로 구분 --상민
* 상규와 DB query를 console에서 날리고 받아 출력해 주는 간단한 프로그램 작성했다. 해놓고 보니 재미있다는 생각이 듬. 확장 시키면 간단한 클라이언트로 써먹을만 할것 같다.
* mm.mysql 클래스 패스 잡기가 너무 귀찮다. 아예 그냥 프로그램 내부에 넣어 버려야 겠다.
* UML을 기반으로 상규에서 현재 구축해놓은 아이디어, 디자인 설명 [[BR]]
* Command에 결과의 유효성에 대한 표현으로, int형으로 통일할지 String으로 할지 아직도 고민된다. 에구 둘다 장단이 있을것 같은걸 두개 다 해높을까.
간단한 모임, 현재 문제 모두가 모일수 없다는 점 5/25-5/26 서버 중지로 mySQL쪽 테스트 부족, 월요일까지 생각해온(?) 것으로 짜와보기
- RoboCode . . . . 32 matches
* 로보코드(Robocode)란 스크린 상에서 전투하는 자바 객체인 자바 로봇을 만들어 개발자들이 자바를 배울 수 있도록 하는 프로그래밍 게임입니다.
다시 말해, 로봇 전쟁 시뮬레이터로 참가자들은 로봇을 만들어 전투에 내보내고 이를 다른 개발자가 만든 로봇들과 겨뤄 득점율이 높은 로봇이 승리하게 됩니다
각 로보코드 참가자는 자바 언어의 요소를 사용하여 자신의 로봇을 만들면서 자바가 갖고 있는 상속성, 다형성, 이벤트 처리 및 내부 클래스 다루는 방법을 배우게 됩니다
로보코드는 초보자들이 자바에 쉽게 접근할 수 있도록 도와주며, 전문가들은 이를 이용하여 다른 개발자들과 실력을 견주면서 자신의 프로그래밍 스킬을 향상시킬 수 있도록 합니다.
로보코드는 오픈소스를 기본 전제로 합니다. 등록되어 있는 다른 개발자들의 소스를 다운받아 분석하고 자신의 소스를 업로드하는 과정을 반복하면서 로봇은 점차 진화하게 됩니다. 이것이 오픈소스의 묘미이지요.
자신만의 로봇을 만들어 주위 친구들, 동료 개발자들과 실력을 겨루어보세요!
로보코드를 이용해 로봇을 만들면서 여러분의 자바 스킬이 향상되는 것을 느낄 수 있을 것입니다.
* [http://www-128.ibm.com/developerworks/kr/library/j-robocode/ 로보코드 시작하기(한글)]
* [http://www.eternal-rumble.com/ 로봇 랭킹]
== 로보코드 설치 파일 ==
다운로드한 파일을 더블클릭해서 실행한다.(자바 설치 필요)
=== 배틀 & 모임 로봇소스 ===
||[TheJavaMan/로보코드]|| 휘동 ||
||[JavaStudy2004/로보코드]|| 희경성만, 동영승환 ||
||[RoboCode/random], [RoboCode/sevenp], [로보코드/베이비] , [RoboCode/msm], [RoboCode/siegetank],[RoboCode/ing] || 2005년 데블스캠프 ||
[TheJavaMan/로보코드]와 [JavaStudy2004/로보코드]를 여기로 합치면 좋지 않을까요?--[Leonardong]
시간 제한 안에 로봇을 만들어내라고 했더니 아무것도 못 하는 사람도 있었다. 많은 명령어 가운데 어느 것을 사용해야 할 지 감을 못잡아서 그럴 것이란 생각이 들었다. 처음 로보코드를 접하는 사람들에게는 간단한 규칙을 정해놓고 연습해보는 시간을 가져보는 것이 어떨까? 이를테면 명령어 몇 가지만을 사용한다든지, 총 명령 개수를 제한한다든지 하는 규칙이 있겠다. --[Leonardong]
- Slurpys/이상규 . . . . 32 matches
bool checkSlump(char str[], int index, int *end)
if(str[index] == 'D' || str[index] == 'E')
if(str[index] == 'F')
if(str[index] == 'G')
*end = index + 1;
else if(checkSlump(str, index, end))
bool checkSlimp(char str[], int index, int *end)
if(str[index] == 'A')
if(str[index] == 'H')
*end = index + 1;
else if(str[index] == 'B')
if(checkSlimp(str, index, end))
index = *end;
if(str[index] == 'C')
*end = index + 1;
else if(checkSlump(str, index, end))
index = *end;
if(str[index] == 'C')
*end = index + 1;
int end, temp;
- Yggdrasil/가속된씨플플/2장 . . . . 32 matches
* 블록: 중괄호로 감싸인 연속적인 구문들
* 루프불변식(loop invariant): while문이 그 조건식을 검사하는 매 경우에 대하여 참일 것이라고 가정하는 속성. 처음에 이걸 보고, 이런 개념도 있었냐고 생각했음. 루프불변식은 코드는 아니고 주석에 해당하며, while문이 진행되면서 while문의 제일 처음과 끝에서 루프의 내용이 의도한 대로 돌아간 건지를 정의한 문장이다.(말로 설명하기 애매한 듯...) 하여튼 이것을 쓰는 이유는 루프문을 제대로 설계하기 위해서. 아래의 코드는, 책에 있는 코드로, 불변식의 예이다.
//r을 0으로 세팅하면 불변식을 참으로 만든다
//한행을 출력하면 불변식이 거짓이 된다(바로 아랫줄)
std::cout<<std::endl;
//r을 증가시키면 불변식을 다시 참으로 만든다
* 단락평가(short-circuit): 그러니까 if(a==0||b==0){...}에서 왼쪽의 a==0이면 b==0인지는 보지도 않고 괄호 안을 실행한다는 뜻. 자바에선 ||기호와 |기호를 구분하던 것 같았다. 아마 전자는 전부 평가, 후자는 단락평가였던 것 같다.
* 반개범위: 루프의 범위를 설정할때, for(i=0;i<3;i++)처럼, 시작인 0은 포함하나 3은 포함하지 않고 2에서 끝난다. 이것을 [0,3)으로 표현하는데, 3은 루프 범위에 표현되지 않는 "끝을 벗어난 값"이다.
std::string::size_type//unsigned형의 멤버변수로, 담을 수 있는 최대 문자 갯수를 저장한다. 글자수에 알맞는 type으로 알아서 정의하는 듯.
* 프로그래밍을 처음 배울 때 "프로그래밍을 하려면 숫자를 셀 때 1부터가 아니라 0부터 세라"는 말을 들어왔을 때, 단지 컴퓨터의 숫자 체계가 그러니까 막연히 그렇게 하는 것인 줄 알았다.
* 비대칭적 범위(반개범위)를 사용하므로, [0,5)이면 루프가 5번 돈다는 것을 쉽게 알 수 있다. [1,5]면 5번 돈다는 것을 파악하기 힘들다.
* pad를 0으로 초기화하면 된다.
* pad를 가로, 세로에 각각 다른 변수로 분리시킨다. 혹은, rows, cols 초기화식을 변화시킨다.
using std::endl;
cout<<endl;
if(r==pad_rows+1&&c==pad_cols+1)
else
if(r==0||r==rows-1||c==0||c==cols-1)
else
cout<<endl;
- 논문번역/2012년스터디/신형준 . . . . 32 matches
'''자발적인 손으로 쓴 글자인식에 대한 실험'''
자필 글자 인식에 대한 체제가 발표됬다. 이 체제는 자유 분할 접근에 의한 특성을 가지고 있는데, 전체 문서의 한줄이 인식모듈에 의해 처리되어 진다는 의미를 가지고 있다. 전처리, 특징추출, 그리고 통계적 모형화에 있어 사용되는 방법이 소개되어 있고, 인식 주제(문서) 들을 자필로 하는 독립된 작가, 다수의 작가, 그리고 혼자쓰는 작가에 대한 몇몇의 실험들이 실행되었다.
특히, 선형판별인식, 이서 문자 모델, 그리고 통계적 언어 지식의 설립에 내용이 조사되어 있다. 어휘가 자유로운 자필인식에 대한 평가 결과들은 제안된 방법들이 효과적임을 보여준다.
이 에세이에서 HMM에 기반한 어휘에 자유로운 필기 인식에 대한 시스템이 설명되어 있고, 영어로만 이루어진 문장 데이터 베이스에서 몇몇의 실험들이 필기자에 독립된 형태, 또한 다수와 개인 작가 형태에 대해서 비교하기 위해 실행되었다.
선형 연립 방정식의 중요한 특성들은 벡터들의 개념과 표시법에 의해 묘사되어 질 수 있습니다. 이 부분에서는 벡터들과 평범한 방정식들의 연립들이 연관된 방정식들을 연결해 줍니다. 이 백터라는 용어는 다양한 수학적이고 물리적인 문맥(우리가 Chapter 4, “백터 공간”에서 논의할)을 나타냅니다. 그때까지, 벡터는 숫자들의 정렬된 목록으로 써 의미를 가집니다. 이 간단한 생각은 우리에게 흥미롭고 중요한 적용들을 가능한 빠르게 얻게 도와줍니다.
R^2에 있는 주어진 두개의 백터 u와 v에 대해서 그들의 합 즉, 벡터 u+v는 u와 v의 대응하는 entry들을 각 각 더함으로 얻어집니다. 예를 들어
주어진 벡터 u과 실수 c에 대해서 c에 대한 u의 스칼라 곱은 u의 각 각 의 entry에 c를 곱함으로 써 얻어진 cu벡터 입니다.
Cu에서 c를 스칼라 라고 부릅니다. 이것은 획이 가는 활자의 형태로 쓰여집니다. (벡터 u를 나타내는 볼드체 활자로부터 구별하기 위해서)
평면에서 사각 좌표 시스템을 간주해봅시다. 이 평면에서 각각의 점은 정렬된 숫자들의 쌍으로 결정되기 때문에 우리는 기하학적인 점 (a,b)를 열 벡터로 인식할 수 있습니다.
그래서 우리는 R^2를 이 평면에서의 모든 점들의 집함으로 간주 할 수 있습니다.
(3,1)과 같은 벡터들의 기하학적인 시각화는 종종 원점에서부터 점 (3,-1)까지의 화살표를 포함함으로써 도와줍니다. (Fig2에서)
이같은 경우에 개인적인 점들(화살표 그것 스스로에 대해서)은 특별한 중요성을 가지고 있지 않습니다.
||만약 R^2에있는 u와 v가 평면상에서 점들로 표현된다면, 그때 u+v는 평행사변형의 제 4의 꼭짓점에 대응한다.(다른 벡터들은 u,0, 그리고 v) Fig 3를 보자||
R^3에서 벡터들은 세개의 entry를 지는 3x1 열 행렬들이다. 그들은 기하학적으로 삼차원 좌표 공간에 있는 때때로 시각적으로 명확성을 포함하는 원점으로 부터의 화살표들을 가진 점들로 나타내 집니다. a와 2a 벡터들은 Fig 6 에서 처럼 나타내집니다.
만약 n이 양수라면, R^n은 모든 n개의 정렬된 실수들의 목록들의 집합으로 표시됩니다. (보통 u처럼 nx1열 행렬들로서 쓰여지는)
모든 entry가 0인 벡터를 영 벡터라고 하고, 0이라고 표기합니다. (0 벡터에서 entry의 수는 맥락으로 부터 명확해 질 것입니다.)
R^n에서의 같음과 스칼라 곱과 벡터 합 의 연산자들은 R^2에서 와 같이 entry와 entry에 대응하여 정의되어 집니다. 이 벡터들에 대한 연산자들은 실수에대한 대응하는 속성들로부터 직접적으로 증명할 수 있는 다음의 속성들을 가집니다. Practice Problem 1과 Exercises 33 그리고 34 (이 섹션 마지막에 있는) 을 보십시오.
표기법의 간력성을 위해 u+(-1)v와 같은 벡터는 종종 u-v로써 쓰입니다. Fig 7은 u-v가 u와 -v의 합으로써 보여줍니다.
R^n에서 v1,v2,.....,vp 의 주어진 벡터와 주어진 스칼라들 c1,c2,....,cp에 대해서, 벡터 y는 y = c1v1+ .... + cpvp로써 정의되어 집니다.
Example 5를 보면,a1,a2,b 벡터들은 첨가된 행령의 열들인걸 알 수 있습니다. 간결 성을 위해, [a1 a2 b]라 이것의 열들을 인식하기위한 방법으로 씁니다.
- 만년달력/김정현 . . . . 32 matches
CalendarMaker에게 폼을 주고 만들라고 지시한다
if(!isProperMonth(BLANK, month))
if(!isProperMonth(year, month))
if(month==2 && isSpecialYear(year)) {
* 4로 나누어 떨어지면서 100으로 나누어 떨어지지 않는 해.
* 400으로 나누어 떨어지면 무조건 윤달.
if(year%400==0)
if(year%4==0 && year%100!=0)
if(!isProperMonth(year, BLANK))
if(isSpecialYear(year)) {
if(!isProperDate(year, month, day))
if(!isProperDate(year, month, day))
public class CalendarMaker {
if(startName.equals(names[i])) {
if(names != null && startIndex != -1)
public String getResult(int start, int end) {
if(!isReady()) {
for(int i=start;i<=end;i++) {
if((startIndex + i)%names.length==0) {
if(repeat == 0)
- 블로그2007 . . . . 32 matches
== 프로젝트(or 스터디) 주제 ==
* '''[블로그2007]'''
* 게시판 및 블로그등을 공부한다.
* 블로그, 위키, 게시판 세가지의 장점을 모으고[[BR]]단점을 보완한 새로운 개념의 사이트를 생각해본다.
|| [블로그2007/김건영] ||
|| [블로그2007/송수생] ||
|| [블로그2007/송지훈] ||
|| [블로그2007/송지원] ||
|| [블로그2007/고준영] ||
*새벽에 책 보다가 불연득 떠오른 생각이 있어서 그대로 해보니까 잘 되는거 같아요~ㅋㅋㅋ[[BR]] 수생이형 신경써줘서 고마워요~ㅎ[[BR]]아 그리고 이클립스 쓰니까 저장만 하면 내장 브라우져로 바로바로 확인 가능해서[[BR]]웹 브라우져 따로 안열어도 되고 참 편해요!! 다만 아직 잘 쓸줄 몰라서...ㅎ[[BR]]근데 정말 상협이형 말대로 더 편하긴 편하네요~ㅋㅋㅋㅋ 남박사님 감사요~ㅎ
* 책에서 하라는 데로 다 설치하긴 했는데 코딩할 때는 어케 해요?[[BR]]C++처럼 따로 프로그램이 있는건가?... 아님 그냥 편집기로?... -송지훈 '''[답변 및 의견 1]'''
* PHPEclipse ~ Zend팀이 Swing의 방향으로 Zend Studio를 내놨을때 Java 개발툴 시장을 뒤엎은 Eclipse를 위해 PHP공식 팀이 아니라 다른 개발팀이 만든 환경입니다.
* PDT - PHP Development Tool PHP 스크립트 엔진을 개발하는 Zend 팀이 Eclipse 진영에 합류후에 PHP개발 툴을 만들기 시작했는데 아직 1.0 까지도 올라가지 않은 개발 중인 제품입니다. 좋기는 하지만, 적극적인 배포도 하지 않고 Ecilpse의 공식 배포 스케줄+환경인 Calisto에도 반영되려면 멀었습니다.
미래에는 PDT로 수렴되겠지만 아직은 정식 버전에 잘 결합이 되지 않을 만큼 불안합니다. 따라서 PHPEclipse를 추천하는데 Web개발을 위해서는 이뿐만이 아니라, HTML Coloring 지원 도구등 여러 도구들이 필요합니다. 귀찮은 작업입니다. Calisto가 나오기 전부터 Eclipse 도구를 분야별로 사용하기 쉽게 패키징 프로젝트가 등장했는데 [http://www.easyeclipse.org/ Easy Eclipse]가 가장 대표적인 곳입니다. 아직도 잘 유지보수되고 있고, Calisto가 수렴하지 못하는 Script 개발 환경 같은 것도 잘 패키징 되어 있습니다. [http://www.easyeclipse.org/site/distributions/index.html Easy Eclipse Distribution]에서 PHP개발 환경을 다운 받아서 쓰세요. more를 눌러서 무엇들이 같이 패키징 되었나 보세요.
여담으로 Easy Eclipse for PHP의 PHPUnit2는 정상 작동하지 않습니다. PHPUnit이 업그레이드 되면서 PHPUnit2가 전환되었는데 아직 개발도구들에는 반영되지 않았습니다.
PHP 인터프리터는 APM을 같이 생각해 설치해야 합니다. 국내에 유명한 APM패키지로는 [http://apmsetup.com/ APM Setup]이 많이 쓰입니다. 그러나 작년 말에 예정된 업그레이드 버전 이후 소식이 없습니다. (내부 사정이 있는 것 같아요.) 더 추천할 곳은 [http://www.apachefriends.org Apach Friends]라는 멋진 곳에 있는 XAMPP를 사용하세요. 천천히 RTFM해보면, 됩니다.
[프로젝트분류] [2007년활동지도]
- 훌륭한프로그래머의딜레마 . . . . 32 matches
우연치 않게 두 회사에 정확히 똑같은 내용의 주문이 들어왔다. "열나어려운문제" 해결을 위한 프로그램을 작성해 달라는 것이었다.
열심히씨는 처음 예상 소요 시간인 3개월 동안 정말 열심히 일했다. 하지만 일을 하면서 예상 외의 장애를 직면했고, 밤샘 작업까지 해가면서 3개월의 마지막 날 매니져에게 이런 말을 할 수 있었다. "정말 열나게 프로그램을 짰슴다. 밤샘도 하고요. 제가 지금까지 작성한 프로그램은 2000줄입니다. 그런데, 새로운 문제가 기술적으로 불가피하게 발생했습니다. 복잡한 버그(프로그램의 오류)도 몇 가지 해결해야 하고요. 한 달 가량이 더 필요합니다." 그러고 한달 후 열심히씨는 몇 개의 버그와 더불어 나름대로 작동하는 프로그램을 매니져와 고객에게 자랑스럽게 보여줄 수 있었다. 벌겋게 충혈된 눈과 미쳐 깎지 못한 수염, 무지무지 어렵고 복잡해 보이는 2500여 줄의 프로그램과 함께. "예상보다 훨씬 더 복잡한 문제였군요. 정말 수고하셨습니다."라는 칭찬을 들으면서.
훌륭한씨는 매니져가 "의무적으로" 잡아놓은 예상 소요 시간 3개월의 첫 2달 반을 빈둥거리며 지냈다. 매니져는 훌륭한씨가 월말이 되어서 "정말 죄송해요. 아직 한 줄도 못짰어요. 너무 어려워요. 좀 봐주세요."라고 처량하게 자비를 구할 날을 손꼽아 기다렸다. 웬걸, 마지막 날 훌륭한씨는 예의 "너무도 태연스러운" 모습으로 나타났다. 150여 줄의 프로그램과 함께. 그 프로그램은 멋지게 "열나어려운문제"를 해결했다. 하지만, 매니져가 그 코드를 들여다 보자, 한마디로 "너무도 쉬웠다." 초등학생도 생각해 낼 정도였다. 매니져와 고객은 이름을 "열나쉬운문제"로 바꾸는 데에 전적으로 동의한다. 훌륭한씨는 "이렇게 간단한 문제를 3개월 씩이나 걸려서 풀었습니까? 왜 이렇게 성실하지 못하죠?"라는 비난을 들어야 했다.
훌륭한 프로그래머는 가난하다. 훌륭한 프로그래머의 딜레마인 것이다.
훌륭한 프로그래머는 어려운 문제를 "터무니 없을 정도로 간단한 문제"로 풀어내는 재주가 있다. 남들이 보기에는 그것이 너무도 당연한 해결법으로 보인다. 하지만 그들은 쉽게 생각해 내지 못한다. 그러고는 훌륭한 프로그래머를 우습게 본다.
중간치기나 하치기 프로그래머는 어려운 문제를 어렵게 혹은 더욱 어렵게 풀어내는 재주가 있다. 남들이 보기에는 그것이 너무도 기발한 해결법으로 보인다. 역시 그들은 쉽게 생각해 내지 못한다. 그러고는 중간치기 하치기 프로그래머를 대단하게 본다.
과거 IBM사에서는 프로그램의 줄 수에 따라 급여를 계산했었다. (사실 지금도 이런 회사가 상당수 있다) 그런데 프로그램 줄 수가 늘어날 수록 숨겨진 버그 수와 유지관리에 드는 비용은 기하 급수적으로 늘어나게 된다. 이 문제를 해결하기 위해 프로그램 줄 수는 더 늘어나게 되고, 덕분에 프로그래머는 돈을 더 벌게 된다.
See Also NoSmok:훌륭한프로그래머의딜레마
- 3DAlca . . . . 31 matches
* 3D로 즐기는 알카로이드 입니다.
* 솔직히 제대로 될지 안될지 모르겠습니다. ㅡㅡ;;
* 학술제 출품용으로.. -_-
* 의외로 너무 쉽게 만들어지고 있음.. ㅡㅡ;;
* 판이 고무줄처럼 밑으로 출 늘였다가 놓으면서 팍 튕기기
* 네트워크 대전에서는 위아래에서 서로 상대편을 공 또는 아이템으로 맞히기
* 태양이 위에서 수직으로 내리쬔다고 생각하고 그림자 생기게 만든다.. 더 쉽게..
* 마우스로 잘 움직이면 좋겠다.
* 줄색으로 원근감 표현 => z축으로 멀리 갈수록 줄이 검어 진다는 방식 예를 들면
* 공 튀어 나오는건 대각선으로 나오면 좋겠다
* 공이 벽이나 벽돌에 튕길때 살짝 표시하는게 좋겠다. => 공 부딪힐때 꼭 타격 표시 (예-> 스톰에서 주먹으로 퍽퍽 치면 퍽퍽 소리나고 빨간색 번쩍 번쩍 하는거.)
* 판이 가운데로 왔을때 카메라도 가운데로 와야 하지 않을까 한다.
* 약간 치우쳤을 경우 판 움직이는 것보다 좀더 빨리 움직여서 리커버를 해야 한다?
|| 7.25 || 알카로이드 밑 판만 움직이게 만듬 ||
|| 7.26 || 알카로이드 공이 판에 튕기게만 만듬 ||
|| 7.28 || 판이 움직일때 공이 맞으면 그 방향으로 속도 증가, 종단 속도 개념 추가, 벽돌을 쉽게 추가 하는 함수 생성, 벽돌과 공의 충돌 처리(60%정도, 약간의 버그가 있음) ||
|| 8.6 ~ 8.28 || 침체기.. 별로 손을 못됨. ㅠㅜ, API 네트워크 공부 할라고 좀 폼만 잡다 맘 ㅠㅜ ||
|| 9.15 || 알카로이드 네트워크 기초 부분 해봄. 서버는 JAVA 클라이언트는 API 로 설정. 중앙 서버가 연결만 해주는 방식 채택 ||
|| 10.15 || 그림자 효과 추가, 모든 컴퓨터에서 동일한 속도로 돌아가게 만듬 ||
|| 10.30 || 스테이지 4~7 넣고, SeeMore 가시화 공모전에 제출 -_-;; 심심풀이로 내봄 ||
- 8queen/문원명 . . . . 31 matches
int endFind = 0, count = 0;
if(firstFind == 1)
if (board[y3rd][x2nd] == board[y2nd][x2nd]) same = 1;
if (same == 0) //왼쪽위 대각선 검색
if(board[findY][findX] == 1) same = 1;
if (same == 0) //왼쪽아래 대각선 검색
if(board[findY][findX] == 1) same = 1;
if (same == 0) //오른쪽위 대각선 검색
if(board[findY][findX] == 1) same = 1;
if (same == 0) //오른쪽아래 대각선 검색
if(board[findY][findX] == 1) same = 1;
if (same == 1) //공격가능한 것이 있으면 초기화후 열바꾸기
if (setx == 8) setx = 0;
if (originX == setx ) impossible = 1; //모든열이 불가능하면 나오기
if (impossible == 1) break;
if (impossible == 1) break;
if (firstAnswer == 0) //처음 답과 같은지 조사
if( firstBoard[y7th][x7th] != board[y7th][x7th]) count++;
if (count == 0) endFind = 1; //종료조건
else count = 0;
- BusSimulation . . . . 31 matches
* 원래 대안언어 축제 코드 첼린지에 6단계까지 해서 내려던 문제인데(답 검증을 못한 관계로 2단계로 축소후 일부 문제로만 냄) 이왕 만든거 아까워서 이렇게 올림 - [상협]
* 우리는 보통 버스를 기다릴 때 버스가 한꺼번에 오는 경우를 종종 보게 된다. 버스가 처음에 출발할 때는 일정한 간격으로 출발하였을 텐데 이렇게 몰려다니는 이유는 무엇일까? 이 이유를 컴퓨터로 시물레이션 해본다. 초기 단계에서는 최대한 간단하게 시작해서 점차 현실을 반영하는 시물레이션 으로 만들어 나간다. 하위 단계를 무시하고 다음 단계로 올라갈 수 없으면 순차적으로 시물레이션 단계를 올라간다.
* Data Input - 시물레이션 데이터는 busData.txt 와 busStationData.txt 두 가지 로부터 받아들인다. 각 데이터의 값은 단계가 올라감에 따라서 추가되어간다.
* 조건 : 버스의 속력, 총운행구간 거리
== 2 단계 조건 ==
* 추가 조건 : 정류장 위치 데이터 추가, 정류장 너비 데이터 추가, 정류장에서 대기하는 시간 데이터 추가
* 추가 조건 : 버스가 출발하는 시간 간격 데이터 추가 (24분)
* 추가 조건
* 정류장에는 1분마다 일정한 수로 사람 수 증가(1명)
== 5 단계 조건 ==
* 종점에서는 모든 승객이 내린다. 종점에서는 타는 승객이 없다. (주의 - 아래 InputData에서 원하는 시간을 5400(1시간30분)이 아니라 9600(2시간40분)으로 설정함)
== 6 단계 조건 ==
* 추가 조건 : 정류장에서 버스에 탑승시 한사람당 걸리는 시간 데이터 추가
* 물리적인 추측만으로 버스가 연달아 오는 경우를 생각했었는데 이를 실제로 컴퓨터로 시물레이션 함으로써 그러한 현상이 일어나는 과정도 관찰할 수 있었고, 시물레이션 하는 과정에서 여러 가지 조건을 설정하면서 각 조건에 따라서 시물레이션이 어떻게 변할지도 생각해 볼 수도 있었다. 이러한 경험은 생활 속의 물리 현상을 나의 전공과 연계해볼 수도 있구나 하는 신선한 충격이었다. 이러한 일들이 쉬운일은 아니었지만 정말 좋은 경험이 되었다.
Discrete Event Simulation이 되겠군요. 사람이 몇 명이 기다리느냐, 길 막힘 상태 등은 이산 확률 분포를 사용하면 될 것입니다. NoSmok:TheArtOfComputerProgramming 에서 NoSmok:DonaldKnuth 가 자기 학교 수학과 건물 엘레베이터를 몇 시간 관찰해서 데이타를 수집한 것과 비슷하게 학생들이 직접 84번, 85-1번 등의 버스를 타고 다니면서 자료 수집을 해서 그걸 시뮬레이션 실험하면 아주 많은 공부가 될 것입니다 -- 특히, 어떻게 실세계를 컴퓨터로 옮기느냐 등의 모델링 문제에 관해. 실제로 NoSmok:DonaldKnuth 는 TAOCP에서 이런 연습문제를 만들어 놨습니다. 제가 학부생 때 누군가 이런 숙제를 내줬다면 아마 한 두 계단(see also ["축적과변화"]) 올라설 계기가 되지 않았을까 하고 아쉬울 때가 있습니다. 이 문제에 드는 시간은 하루나 이틀 정도가 되겠지만 여기서 얻은 경험과 지혜는 십 년도 넘게 자신의 프로그래밍 인생에 도움이 될 것이라 믿어 의심치 않습니다. (팀으로 문제 해결을 하면 더 많은 공부가 되겠지요) see also ProgrammingPartyAfterwords 참고자료 --JuNe
- CCNA . . . . 31 matches
* 2008 하계방학 프로젝트로 했음
* LAN - 일반적으로 라우터를 경계로 허브를 통해 구성된 네트워크 망
* ethernet: CSMA/CD- 이더넷 통신에서 사용하는 프로토콜이다. 회선이 사용중이지 않을때 전송하고 충돌이 생기면 일정시간후 재전송한다.
* MAC address - 6개의 octet 으로 구성되어있으며 앞의 3개 는 제조회사, 뒤 3개는 일련번호를 나타낸다. 일반적으로 mac주소는 전세계에 유일하다.
* MAC 주소가 FF-FF-FF-FF-FF-FF 는 브로드캐스트로써 LAN상에 모든 PC에게 데이터를 전송한다.
* 브로드캐스트 - LAN상에 모든 PC에게 데이터를 보냄.
* 네트워크에 대한 표준 모델이며 실제로 사용되는것은 아니다.
* TCP/IP란 프로토콜(Protocol)의 한 종류로 인터넷을 하기 위해 꼭 필요하다. ARPANET에 의해 처음으로 개발 되었으며 TCP/IP는 인터넷을 사용하는 컴퓨터라면 어디에나 세팅이 되어 있다.
* 인터넷을 사용하기 위해서는 IP라는 주소가 필요하며 이 주소는 2진수 32개로 4묶음씩 구성된다. 각 묶음마다 10진수로 나타내어 알아보기 쉽게 만들었다. 현재 IP 버전은 4인데(IPv4) 약 43억개의 주소를 할당 할 수 있다. 그런데 이 주소가 얼마 남지 않아서 ip 버전 6으로 대체 할 것이라고 한다.(IPv6은 2의 128개로 구성되어 있다고 함.)
* IP주소는 서로 같으면 충돌이 일어난다. 따라서 이것이 충돌하지 않게끔 배정을 해주는 것이 있는데 이것이 DHCP라는 것이다. 클라이언트에서 DHCP서버에 IP주소를 요구하면 서버는 가지고 있는 IP주소중에서 남는 주소를 클라이언트에게 배정을 해준다.
* ip의 생성이유 : TCP/IP프로토콜을 사용하는 모든 장비를 구분하기 위해서
* ip주소는 2진수 32자리로 되어있음 -> 약 42억 9천개 -> 현재 사용자를 고려하면 남은 ip주소가 얼마 없음
이를 십진수로 표현시 0.0.0.0 ~ 255.255.255.255
* ip주소는 네트워크 부분과 호스트 부분으로 구분.
//네트워크를 나타낼 땐 호스트 부분을 0으로 표현. 그리고 각 클래스에서 표현 가능한것의 제일 작은 수와 제일 큰수는 사용불가.
*호스트부분이 모두0은 네트워크, 1은 브로드캐스트 번호이므로 사용하지 않는다. -> 각 클래스에서 사용가능한 최대 호스트수는 순계산-2해줘야함.
* 기본 게이트웨이 : 내부 네트워크를 벗어날때 밖으로 통하는 문 -> 라우터의 이더넷 인터페이스
* 서브넷 마스크 : 주어진 ip주소를 네트워크 환경에 맞게 나누어 주기 위해서 씌워주는 이진수 조합 -> 이름 그대로 보조로 다시 한번 나눠준다.
* 서브넷 마스크로 나눈 서브넷 간의 통신은 라우터를 통해서 이루어진다.
[프로젝트분류] [2008년활동지도]
- DataCommunicationSummaryProject/Chapter9 . . . . 31 matches
* cellular networks가 cell을 반경으로 하는데 비하여, Short-Range Wireless Networks는 아주 짧은 반경,Ultra Wide Banded 을 사용,고속이다.pbx처럼 pirvate networks이다.
* 2000년대 부터 wireless LANs가 데이터 속도와 가격만에서많은 성장을 가져왔다.IEEE의802.11b의 지준을 많이 사용한다.물론 아직은 핸드폰이나 인터넷에 비할수는 없지만,성장 속도는 빠르다. 새로운 시스템은 유선에 도전을 줄 만큼 데이터전송량과 속도를 증가 시켰다.
* 적외선 사용이 실패였지만 아직도 많은 연구와 회사의 사용이 있다.4세대 모바일 시스템으로 주목 받고 있다.roaming하는데 별 어려움 없이 랜과 3새대 휴대폰과 Bluetooth와의 연결도 가능할 것이다.
* 앞에서 예기했지만 짧은 반경이면 고주파이고(고주파는 아직 국가에서 할당이 잘 안돼었다) ,개인이 베이스스테이션을 달므로 허가 받은 주파수가 아니다. 즉 누구나 사요할수 있는것이다. 그럼 사용되는 주파수대를 알아볼까? 물론 고주파다.
* ISM(Industrail,Scientific, and Medical) 는 의사소통을 위한것이 아니다. 따라서 이 범위의 주파수는 국가에서 나두었다. 그래서 무선 전화나 무선 랜에서 사용된다.
* ISM 2.4 는 여러 국가에서 모두 사용가능한 주파수 범위이다.따라서 너무나 많은 곳에서 사용하므로 완전 사장보다 더 복잡하다. 그러니 스프레드 스펙트럼을 사용한다. 하지만 11Mbps이상은 능력이 딸린다.
* Light의 예로 적외선이있다.(비허가) 빛이므로 조준을 잘해야겠다. 좋은점은 높은 주파수대라는것(아직 높은 주파수대는 국가에서 안팔았으니 자유로이 많이 사용할수있따) 보안에 좋다. 벽을 통과 못하니 누가 몰래 들을 가능성은 적겠지.
* 어느곳에나 사용가능, 이동성의 편이성,속도의 빠름, 표준기준 확정, 등이 새로운 이점들. 하지만 아직도 보안은 문제점
* 지금은 802.11b이 거의 기준이다.역시 미국이 쌔다. 말로는 11Mbps라하지만 거의 다 그렇지만 반이다.
* IEEE 802.11b보다는 Wi-Fi 나 무선 이터넷이 우리에게 잘 알려져 있다. 물론 IEEE 802.11b를 기준으로 한다. Wireless Fidelity(통신에서 충실도의 뜻으로 많이 쓰인다. 예를 들어 " a high ~ receiver 고성능 라디오(cf. HI-FI) ") 의 약자이다. WECA(the Wireless Ethernet Compatiility Alliance)의 트레이드 마크이기도 하다.
* CCK(Complementary Code Keying)라고 불리는DSSS의 2.4GHZ를 사용한다. 물론 기존의 기계와 호환성을 기진다. MAC하는 방법은 CSMA/CA(여기서 A는 avoidance이다 유선과는 틀리다) half-duples이다.shared이다. 대역폭이 11Mbps이지만 오보헤드가 심하다. 여기에다가 쉐어드이니 장에가 심하면 1-2Mbps밖에 안된다.하지만 데이터 전송률은 쓸만하다. 이러한 낭비를 줄이려고 차세대로 갈수록 물리적인 데이터 율을 줄인다.
* 유럽의 1992년에 새운 기준이다. 지들이 만든 GSM을 기준으로 한다.5-GHz의 대여폭을 사용한다.
* HiperLan2 는 802.11a와 거의 물리적인 층은 비슷하다. 그러나 인터넷에 기준을 두지 않는다.(인터넷이 데이터를 처엄부터 기준으로 했다면, ETSI는 음성위주 여기에 데이터를 같이 생각 했으며로 당연하다) TDMA 을 기반으로 한다. 당연 음성 서비스에 좋은 서비스를 해준다. 그러나 역시 미국(802.11a)한테 밀린다.
* 홈테트워킹을 위해서 싸고 간단한 네트워킹을 만들기로했다.
* 1Mbps에서 10Mbps까정 (FHSS을 기반으로 하는데 이것에 관한 규칙FCC가 바뀌어서)
=== Wireless LAN(앞으로 돌아가서) ===
* Hidden Node Problem : 서로 볼수 없어서 생기는 문제
* 괜찮은 충돌 인식 방법이 없기 떄문에, 일정 시간 안에 CTS 못받으면 충돌 난걸로 감지
* 고전적인 LAN : 정보 팁슐라면 건물 내로 침입해야 했다.
* 현재는 802.11i를 새 보안 표준으로 쓰고 있다.
- Fmt/문보창 . . . . 31 matches
void remove_string_end_space(string & str);
remove_string_end_space(str);
if (cin.peek() == EOF)
if (state == STATE_A)
if (str[i] == '\n' || str[i] == ' ')
else
else if (state == STATE_B)
if (str[i] == '\n')
if (str[i + 1] == ' ' || str[i + 1] == '\n')
else
if (state == STATE_A)
if (str[i] == '\n')
else if (str[i] != ' ')
else if (state == STATE_B)
if (str[i] == '\n' && isEmptyLine == false)
else if (str[i] == '\n' && isEmptyLine == true)
else if (str[i] != ' ')
if (count_char >= 73 && str[i] != ' ')
else if (state == STATE_C)
if (str[i - 1] == ' ')
- FromDuskTillDawn/조현태 . . . . 31 matches
일단 수많은 귀차니즘으로 약간의 전역변수를 사용하였으며..
참고 : 나름대로 약간의 최적화가 되어있다. 그러나~ vector가 아닌 list를 사용한다면 좀더 효과적일듯하다.ㅎ 이런 귀차니즘~
string g_suchEndTown;
if (g_myTowns[i]->name == townName)
char endStationName[BUFFER_SIZE];
sscanf(readData, "%s %s %d %d", startStationName, endStationName, &startTime, &delayTime);
thisStation->nextTown.push_back(SuchOrAddTown(endStationName));
sscanf(readData, "%s %s", startStationName, endStationName);
g_suchEndTown = endStationName;
if (NULL != readData)
else
if (18 > inputTime % 24 && 6 < inputTime % 24)
void SuchTown(STown* startTown, STown* endTown)
//// 가장 시간이 낮은 경우에 대해서 연산을 수행합니다. ////
if (suchTown->timeDelay[i] <= 12 && !(isDeadTime(suchTown->startTime[i]) || isDeadTime(suchTown->startTime[i] + suchTown->timeDelay[i])))
if (allDelay[0] % 24 <= suchTown->startTime[i])
else
if (g_suchEndTown == suchTown->nextTown[i]->name)
if ((0 != g_minimumDelayTime && g_minimumDelayTime > allDelay[allDelay.size() - 1]) || 0 == g_minimumDelayTime)
//// 동일한 위치로 간것과 전체 시간을 초과한 것을 삭제합니다. ////
- HardcoreCppStudy/두번째숙제/CharacteristicOfOOP/김아영 . . . . 31 matches
데이터 은닉이란 모듈이 그것이 갖는 기능들을 명세한 인터페이스(interface)를 통해서만 접근되고, 그 기능을 구현하는 방법은 다른 모듈로부터 은닉되도록 하는 것을 말한다. 캡슐화된 객체의 외부 인터페이스를 엄밀히 정의함으로써 독립적으로 작성된 모듈간의 상호 종속성을 극소화하여 캡슐화된 객체는 외부 인터페이스만을 통하여 접근될 수 있도록 한다면, 세부적인 구현 상세 사항에 대해서는 객체내에 은닉시킬 수 있다. 또한 캡슐화된 객체는 객체 구현내역을 변경, 혹은 향상시킬 때 이 객체를 사용하는 타 객체들을 변경하거나 다시 컴파일하지 않도록 할 수 있다. 또 모듈의 내부 구현 사항들이 외부의 접근으로부터 보호될 수 있음으로, 그 객체의 정당성을 보증할 수 있으며, 오류가 발생되었을 경우에 오류는 한 모듈내로 국지화될 수 있다.
우리가 흔히 다루는 각각의 객체들은 서로의 관련되 영역을 사용할 수 있는 부분과 없는 부분이 있다. 이것은 별도로 접근이 가능한 영역과 불가능한 영역으로 나누어서 관리하기 때문이다. 이것을 바로 캡슐화라 한다. 갭슐화는 바로 접근 가능한 코드와 불가능한 코드로 나눔으로 인해서 데이터나 특별한 영역을 보호하거나 감추는 역활을 할 수 있다. 때문에 필요한 경우 데이터의 접근 필드를 제한함으로서 데이터를 보호하는 결과를 얻을 수 있다.
상속이란, 기존에 만들어 놓은 객체들로 부터 모든 변수와 메소드를 물려 받아 새로운 객체를 만들 수 있다는 것을 뜻한다. 즉, 새프로그램을 만들 때 기존의 자료를 이용해(상속받아) 새롭게 정의하여 사용한면 된다는 것이다. 이로인해 부수적으로 프로그래밍의 노력이 줄고 시간 단축되며 그리고 OOP의 가장 중요한 재사용성(Reusability) 얻을 수 있다. 델파이는 TObject라는 최상위 객체로부터 상속시켜 단계적으로 하위 객체들을 생성해 만들어진 구조를 지니고 있다.
객체지향 프로그래밍에서 다형성이란 근본적으로 상속에 뿌리를 두고 있다. 조상 클래스로부터 상속을 받아 새로운 객체들이 파생되어 생성된다. 이때 만약 새객체들이 모두 조상 클래스와 모두 동일한 값만 가지고 있다면 새로운 객체로서 의미가 없다. 왜냐면 그것을 만드는 이유는 무언가 다른 역할을 하기 위해 생성하는 것이기 때문이다. 그래서 다형성이란 조상이되는 객체로부터 상속을 받아 다른 결과물을 산출해 낼때 다형성이라는 의미를 부여할 수 있게 된다.
- JTDStudy/첫번째과제/상욱 . . . . 31 matches
if (resultNumber.charAt(i) == userNumber.charAt(j)) {
if (i == j) {
} else {
if (numOfStrike == 3)
else
public class NumberBaseBallGameTest extends TestCase {
if (testString.charAt(0) == '1' &&
else
* TDD로 만들려고 하니 적응도 안되고 해서 시간이 꽤나 많이 걸리네요^^; 프로그램을 위한 테스트라기 보단 테스트를 위한 프로그램이 되어지는 느낌이 팍팍;;; 하지만 장점이 많은 방법이라 앞으로 더 연습을 해 봐야겠네요~ - [상욱]
* 내 경험으로는 테스트에 휘둘리기 보다는 테스트를 도구로 여기는 마인드가 중요한 것 같당. 테스트가 우리를 원하는 길로 알아서 인도해주지는 않더라
public class JUnit38Test extends TestCase {
LENGTH,START,END,TURN_LIMIT=3,100,999,8
answer = str(randint(START,END))
if len(set(answer)) == LENGTH: return answer
if len(question) == LENGTH and len(set(question)) == LENGTH:
else: raise ValueError
print '--0으로 시작하지 않는, 겹치지 않는 숫자 %d개를 넣어 주세요.--'%LENGTH
if question[idx] == answer[idx]:strike += 1
elif i in answer: ball +=1
else: out+=1
- JavaStudy2004/클래스상속 . . . . 31 matches
상속은 객체 지향 프로그램에서 가장 중요한 개념 중의 하나이다. 이것은 자바클래스를 직접 디자인하는 문제에 영향을 미친다.상속은 다른 클래스의 정보를 동적으로 액세스하도록 해주기 위해서 그 클래스와 다른 클래스와의 차이를 명시해주면 된다.
하위클래스는 상위클래스로부터 모든 메소드와 변수들을 상속받는다.상위클래스가 필요한 행위를 정의했으면 재정의하거나 다른 클래스로부터 복사할 필요도 없다. 상속받은 클래스는 자동적으로 상위클래스의 행위를 자동적으로 가지게 된다.자바 클래스 계층의 제일 위에는 Object라는 클래스가 있다. 모든 클래스는 이 클래스로부터 상속을 받는다. 각 클래스들은 특별한 목적에 맞추어 특정 정보를 추가적으로 가지게 되는 것이다.
자바 클래스를 새로 작성할 때 대부분 다른 클래스가 가지는 정보와 몇 가지의 추가적인 정보를 가지게 할 것이다. 예를 들어 새로운 Button을 만들려고 한다면 클래스에 Button으로부터 상속받을 수 있도록 정의하기만 하면 된다. 따라서 Button과 다른 특징에 대해서만 신경 쓰면 된다.
* 한 클래스의 행위를 바꾸면 자동적으로 하위클래스의 행위를 바꾸게 한다. 따라서 재컴파일할 필요가 없다.
예를 들어 Motorcycle클래스와 같이 Car라는 클래스를 만드는 것을 생각하자. Car와 Motorcycle은비슷한 특징들이 있다. 이 둘은 엔진에 의해 움직인다. 또 변속기와 전조등과 속도계를 가지고 있다. 일반적으로 생각하면, Object라는클래스 아래에 Vehicle이라는 클래스를 만들고 엔진이 없는 것과 있는 방식으로 PersonPoweredVehicle과 EnginePoweredVehicle 클래스를 만들 수 있다. 이 EnginePoweredVehicle 클래스는 Motorcycle, Car, Truck등등의 여러 클래스를 가질 수 있다. 그렇다면 make와 color라는 속성은 Vehicle 클래스에 둘 수 있다.
인스턴스 변수의 경우 클래스에 새로운 변수를 만들었다면, 현재 클래스의 변수와 상위클래스에서 정의된 모든 변수를 가질수 있다. 따라서 모든 클래스들의 조합으로 현재의 객체를 위한 템플릿을 형성하게되고 필요한 정보를 채우는 것이다.
메소드도 비슷하게 작동한다.새로운 객체는 상위클래스의 모든 메소드 이름을 액세스한다. 그러나 메소드가 호출될 때마다 동적으로 메소드 정의가 선택된다. 특정 객체에 대한 메소드를 호출하면 자바는 제일 먼저 그객체 클래스의 메소드 정의를 살펴본다. 그 객체 클래스에 정의되지 않았다면 그 메소드 정의를 발견할 때까지 상위클래스를 찾게될 것이다.
만일 하위클래스에서 상위클래스의 메소드의 이름과 인자의 타입을 똑같이 가진 메소드를 정의한다고 하면 어떻게 되는가? 이것은 계층적으로 아래에 있는 것이 먼저 실행되게 되어 있다. 이러한 방식으로 임의로 상의클래스의 메소드를 감추고 하위클래스에 필요한 메소드를 정의할 수 있다. 바로 중복(overriding)이라고 부르는 것이다.
* x,y 값을 바로 입력받는 생성자
{{{~cpp public class Circle extends Shape {
if(Math.abs(left_top.getX()-right_bottom.getX()) >= Math.abs(left_top.getY()-right_bottom.getY()))
else
{{{~cpp public class Rectangle extends Shape {
* 공격받으면 HP가 깎인다(전달인자로 적의 공격력을 받음) (ex public void underattack(int aAttackPoint) )
* 질롯으로 드라군을 공격시킨다.
* 디폴트 전달인자 : type functionName( type A1, type A2, A3 = 0 );와 같이 값이 전달 되지 않을경우 자동을 전달되는 값을 가지는 함수의 기능을 말합니다.
- Omok/재니 . . . . 31 matches
if (key == 0x20)
if (board[x][y] == '+')
if (winner != 0)
if (key == 0x1b)
if(key == 0x00)
if (key == 0x48)
if (y != 0)
if (key == 0x50)
if (y != 18)
if (key == 0x4b)
if (x != 0)
if (key == 0x4d)
if (x != 18)
if(winner == 1)
else if(winner == 2)
cout << endl;
if (num < 4)
if (num < 4)
if (num < 4)
if (turn == '@')
- ProjectZephyrus/ThreadForServer . . . . 31 matches
Eclipse를 이용해서 자신이 만든 프로젝트 아무거나 ZeroPage CVS에 저장해 본다.
이 아주 간단하고 단순한 프로그램을 수행하기 위해서 아래의 두가지 라이브러리가 필요 하다. 다운 받아서 클래스 패스에 잡아 놓기 [[BR]]
낼 그냥 오프라인으로 함 보여주서요
* 메신저에서 A라는 사람이 B라는 사람을 대화상대로 추가했다. B라는 사람이 접속중이라면 "A라는 사람이 당신을 추가했습니다"라고 알려줘야 한다. B라는 사람이 접속중이 아니라면 로그인 할 때 "A라는 사람이 당신을 추가했습니다"라고 알려줘야 한다.... --상규
재동,상규는 화요일에 데블스 캠프 관련 모임이 있으니 그리로 가는 편이 시간 절약에서 더 좋을것 같다.
과정은 전에 하던 흐름 데로 JavaDoc 작성후 프로그래밍해라
InfoManager.getInstance()의 if문 안쪽에 넣어주면 sync문제도 해결될것이다.
이것도 지금까지의 로드를 봐서는 40~50분 정도로 생각된다. (테스트,JavaDoc작성 시간 포함)
역시 이전까지 해왔던 데로 JavaDoc으로 일의 순서 주고 코딩하시길
10일이 이 단기 프로젝트의 기능 구현의 마지막 날이기 때문이다.
외부는 강하게 식으로 해두었는데,(이것도 끝을 봐야 겠지만)
InfoManager의 코드들의 경우 attribute에 직접 접근하는 부분이 너무많은듯 하다.
pair로 이름을 정하는 작업을 하든, 아니면 내가 일괄적으로 하고 나중에 다시 네가 마음에 안드는 부분을
일단 내가 전화를 안하고 그냥 둔 것이 일차적인 책임이 있겠지만, 그것만으로 책임을 두기에는
일단, ["ProjectZephyrus/Server"]의 진행율에 기록된 대로 InfoManager의 DeleteBuddy부분외에는 완료되었다.
최종 문서화후 jar로 묶어서, 소스와 바이너리 모두 배포 형식으로 만들어 링크를 거는 것이
이 프로젝트의 종결점이 될것이다.
문제는 2주후가 시험이고, 시험후 곧바로 데블스 캠프를 계획해둔만큼, 위의 사항에 관하여는
이럴경우 디자인의 설명에 청자가 서로 팀이가 아니라 듣고 싶은 사람 모두로 지정할수도 있을 것이다.
* 혹시 자네가 branch 만들었나? 기록에는 그렇게 되어 있는데? 그리고 위에 정확히 언급이 안되어 있는가 본데, 낮에 잠깐 설명한데로 끝났다. 진행 상황은 ["ProjectZephyrus/Server"]에 기재해 두었으므로 참고하도록. --["상민"]
- RSSAndAtomCompared . . . . 31 matches
The purpose of this page is to summarize, as clearly and simply as possible, the differences between the RSS 2.0 and Atom 1.0 syndication languages.
== Major/Qualitative Differences ==
=== Specifications ===
The RSS 2.0 specification is copyrighted by Harvard University and is frozen. No significant changes can be made and it is intended that future work be done under a different name; Atom is one example of such work.
The Atom 1.0 specification (in the course of becoming an
[http://www.ietf.org/iesg.html Internet Engineering Steering Group]. The specification is structured in such a way that the IETF could conceivably issue further versions or revisions of this specification without breaking existing deployments, although there is no commitment, nor currently expressed interest, in doing so.
See the Extensibility section below for how each can be extended without changing the specifications themselves.
Atom 1.0 requires that both feeds and entries include a title (which may be empty), a unique identifier, and a last-updated timestamp.
RSS 2.0 may contain either plain text or escaped HTML, with no way to indicate which of the two is provided. Escaped HTML is ugly (for example, the string AT&T would be expressed as “AT&T”) and has been a source of difficulty for implementors. RSS 2.0 cannot contain actual well-formed XML markup, which reduces the re-usability of content.
Atom has separate “summary” and “content” elements. The summary is encouraged for accessibility reasons if the content is non-textual (e.g. audio) or non-local (i.e. identified by pointer).
[http://diveintomark.org/archives/2002/06/02/important_change_to_the_link_tag autodiscovery] has been implemented several times in different ways and has never been standardized. This is a common source of difficulty for non-technical users.
using any network protocol, for example [http://ietfreport.isoc.org/idref/draft-saintandre-atompub-notify/ XMPP]. Atom also has support for aggregated
feeds, where entries from multiple different feeds are combined, with pointers
== Differences of Degree ==
Atom 1.0 is in [http://www.w3.org/2005/Atom an XML namespace] and may contain elements or attributes from other XML namespaces. There are specific guidelines on how to interpret extension elements. Additionally, there will be an IANA managed directory rel= values for <link>. Finally, Atom 1.0 provides recommended extension points and guidance on how to interpret simple extensions.
RSS 2.0 does not specify the handling of relative URI references, and in practice they cannot be used in RSS feeds.
Atom 1.0 specifies use of the XML's built-in [http://www.w3.org/TR/xmlbase/ xml:base] attribute for allowing the use of relative references.
For identification of the language used in feeds, RSS 2.0 has its own <language> element, while Atom uses XML's built-in
RSS 2.0 can be encrypted or signed like any other web content, if treated as a
RSS 2.0 provides the ability to specify email addresses for a feed’s “managingEditor” and “webMaster”, and for an item’s “author”. Some publishers prefer not to share email addresses, and use “dc:creator” from the dublin core extension instead.
- RandomWalk/대근 . . . . 31 matches
cout << "랜덤 프로그램입니다..\n";
cout<<endl<<endl;
if(bang==0)
if(rands[x][y]==-1)
else if(bang==1)
if(rands[x][y]==-1)
else if(bang==2)
if(rands[x][y]==-1)
else if(bang==3)
if(rands[x][y]==-1)
else if(bang==4)
if(rands[x][y]==-1)
else if(bang==5)
if(rands[x][y]==-1)
else if(bang==6)
if(rands[x][y]==-1)
else if(bang==7)
if(rands[x][y]==-1)
if(rands[i][j]==0)
cout<<endl;
- ReplaceTempWithQuery . . . . 31 matches
수식을 뽑아내서 메소드로 만들고, 임시변수를 참조하는 곳을 찾아 모두 메소드 호출로 바꾼다. 새로 만든 메소드는 다른 메소드에서도 사용될 수 있다.
if (basePrice > 1000)
else
if (basePrice() > 1000)
else
위의 예는 매우 극단적으로 보일지도 모른다. 하지만 위의 예를 매우 복잡한 시스템의 일부분이라 가정하고 생각해보길 바란다. '''임시변수'''를 사용하는 코드는 해당 블럭에서만 접근 가능하기 때문에, 길어지는 성향이 있다. 이러한 임시변수를 '''질의 메소드'''(query method)로 바꿈으로써 어느곳에서라도, 임시변수에서 사용될 정보를 얻을 수 있고, 클래스 코드는 더 깔끔해진다.
프로그래밍 경력이 있는 사람일수록, 이러한 사실에는 동의를 하지만 '''퍼포먼스'''를 우려해서 꺼리는 경향이 있다. '' '동일한 연산을 왜 이렇게 수행하는거지?' '', '' '이러한 블럭은 지역적이기 때문에 임시 변수 사용은 문제가 되지 않아!' ''.
그러한 우려는 ' '''단지 그럴지도 모른다.''' ' 라는 가정일 뿐이다. 누구도 실제로 '''프로파일링'''(profiling)해보기 전까지는 알 수 없다. 실제로 문제가 되는지 아닌지는.
어느정도 수준에 오른 프로그래머일수록, 반복적으로 사용되는 값에 대해 임시변수를 사용하고 이러한 최적화(?)를 나름대로 수행하려 한다. 그러나, 이러한 미시적인 최적화는 결과적으로 거시적 최적화의 기회를 박탈하게 한다. 심지어 최악의 경우라도 임시변수를 다시 넣는 일은 쉽다(물론, 프로파일링 ' '''결과''' ', ' '''실제로''' ' 퍼포먼스에 심각한 문제를 주는 경우라면).
이러한 방법을 사용하면서 부가적으로 얻을 수 있는 장점이 하나 더 있다. 실제로 도움이 될지 안될지 모르는 최적화를 하는데 쏟는 시간을 절약할 수 있다. 임시변수 사용뿐 아니라 이러한 미세한 부분의 조정은, 해놓고 보면 별로 위대해보이지 않는 일을, 할때는 알지 못하고 결국 시간은 낭비한게 된다. 돌이켜보면 나의 이러한 노력이 제대로 효과가 있었는지도 모른다. '''왜?''' 프로파일링 해보지 않았으니까. 단순히 ''시스템을 더 빨리 돌릴 수 '''있을지도''' 모른다''는 우려에서 작성한 것이었으니까. [http://c2.com/cgi/wiki?DoTheSimplestThingThatCouldPossiblyWork DoTheSimplestThingThatCouldPossiblyWork]
개인적으로 리펙토링 서적을 읽다가 상당한 충격을 받았다. ''옳은 방법''이라고 생각한 내용이 실제는 ''옳을지도 모른다''라는 사실이었고, ''하나의 나무를 잘 키우면 전체적으로도 득이 된다''라고 생각한 내용이 실제로는 ''더 큰 가능성을 보지 못하게''하는 잘못된 습관이었다는 사실이 나를 온통 흔들어 놓았다. 다시 걸음마를 시작하게 된 느낌이다. 자신을 항상 ''바닷가에서 조개를 줍는 어린아이''에 비유하던 ''Isaac Newton''의 이야기가 떠오른다.
now and then finding a smoother pebble or a prettier shell than
- Slurpys/황재선 . . . . 31 matches
if not aStr: return False
if aStr[0] != 'A':
if len(aStr) == 2 and aStr[1] == 'H':
else:
if aStr[-1] != 'C': return False
if aStr[0:2] == 'AB' and self.isSlimp(aStr[2:-1]):
if aStr[0] == 'A' and self.isSlump(aStr[1:-1]):
if aStr[0] == 'D' or aStr[0] == 'E':
else: return False
if aStr[1] != 'F':
if ch != 'F':
else: return False
if aStr[index] == 'G':
elif self.isSlump(aStr[index:]):
if aStr[-1] != 'G':
if aStr[0:2] == 'AH' and self.isSlump(aStr[2:]):
else:
if slump != -1:
if aStr.find('CD') != -1:
elif aStr.find('CE') != -1:
- SpiralArray/영동 . . . . 31 matches
* 제대해서 처음으로 숙제를 제외하고 처음 짠 ToyProblem입니다. 1학년 때 프로그래밍잔치에서 못 짰던 걸 이제야 짰네요. 우선 소요시간으로 미루어 볼때 제대하고 나서 머리가 굳었다는 걸 느낄 수 있었고, 그만큼 처음부터 막 짜지 말고 설계 및 구상을 잘 해야겠다고 생각했습니다. 또한 객체지향으로 짠 것도 아니고 변수, 함수를 너무 지저분하게 쓴 거 같기도 하고... 반성할 점이 참 많았습니다. 그리고 일단 배열 크기도 미리 정했고 시작점도 0, 0으로 가정하고 해서 사용자의 잘 못된 입력에 대응하지 않은 점도 미비했네요.
bool isEnd(int endCount);//루프 끝날지 검사
if(needToChangeDirection(&mover, board))
}while(isEnd(countMove));//종료조건
if(aMover->currentDirection+1>UP)
else
bool isEnd(int endCount)
if(endCount<MAX_X*MAX_Y)
else
cout<<"시작 점의 x좌표는?"<<endl;
cout<<"시작 점의 y좌표는?"<<endl;
if(aMover->currentX+MOVE_X[aMover->currentDirection]>=MAX_X)
return true;//X방향으로 배열을 빠져나갈 경우(MAX이상)
if(aMover->currentY+MOVE_Y[aMover->currentDirection]>=MAX_Y)
return true;//Y방향으로 배열을 빠져나갈 경우(MAX이상)
if(aMover->currentX+MOVE_X[aMover->currentDirection]<0)
return true;//X방향으로 배열을 빠져나갈 경우(0이하)
if(aMover->currentY+MOVE_Y[aMover->currentDirection]<0)
return true;//Y방향으로 배열을 빠져나갈 경우(0이하)
if(aBoard[aMover->currentY+MOVE_Y[aMover->currentDirection]][aMover->currentX+MOVE_X[aMover->currentDirection]]!=0)
- XpQuestion . . . . 31 matches
''Xper 에서 비슷한 기능을 하는 페이지가 '질문답변' 인데, 이 페이지같은 경우는 직접 질문하고 답을 쓴거여서 '질문답변' 에 올리기가 좀 그렇더라구요 Faq 라는 페이지를 만들까 하다가 좀 주관적인 답이여서 그렇고. Xper 에서 페이지 제목 궁리하다가 그냥 일단 여기 만든거라는. ^^; (Xper 에도 올립니다. 페이지들 별로 녹여넣어야겠군요.) --["1002"]''
- '필요하면 하라'. XP 가 기본적으로 프로젝트 팀을 위한 것이기에 혼자서 XP 의 Practice 들을 보면 적용하기 어려운 것들이 있다. 하지만, XP 의 Practice 의 일부의 것들에 대해서는 혼자서 행하여도 그 장점을 취할 수 있는 것들이 있다. (TestDrivenDevelopment, ["Refactoring"], ContinuousIntegration,SimpleDesign, SustainablePace, CrcCard Session 등. 그리고 혼자서 프로그래밍을 한다 하더라도 약간 큰 프로그래밍을 한다면 Planning 이 필요하다. 학생이다 하더라도 시간관리, 일거리 관리는 익혀야 할 덕목이다.) 장점을 취할 수 있는 것들은 장점을 취하고, 지금 하기에 리스크가 큰 것들은 나중에 해도 된다.
각 Practice 를 공부를 하다보면, 저것들이 이루어지기 위해서 공부해야 할 것들이 더 있음을 알게 된다. (의식적으로 알아낼 수 있어야 한다고 생각한다.) Refactoring 을 잘하기 위해선 OOP 와 해당 언어들을 더 깊이있게 이해할 필요가 있으며 (언어에 대해 깊은 이해가 있으면 똑같은 일에 대해서도 코드를 더 명확하고 간결하게 작성할 수 있다.) CrcCard 를 하다보면 역시 OOP 와 ResponsibilityDrivenDesign 에 대해 공부하게 될 것이다. Planning 을 하다보면 시간관리책이나 일거리 관리책들을 보게 될 것이다. Pair 를 하다보면 다른 사람들에게 자신의 생각을 명확하게 표현하는 방법도 '공부'해야 할 것이다. 이는 결국 사람이 하는 일이기에. 같이 병행할 수 있고, 더 중요한 것을 개인적으로 순위를 정해서 공부할 수 있겠다.
개인적으로, TestDrivenDevelopment 는 연습해보면 배울 게 많다고 생각한다. Test 를 작성하는데에서 배웠던 일들이 많기에. (Test 를 작성하기 위해 큰 모듈덩어리에서 일어나는 중간단계에 대해 더 깊게 생각하고 작은단위로 쪼갠다던지, AcceptanceTest 를 작성하기 위해 전체 시스템 돌아가는 과정을 안다던지 등등)
선배들에게 Pair 를 요청하는 것도 바람직한 방법이라 생각한다. Pair를 하면서 또다른 사람의 세계를 구경하고, 또한 그 사람에게 또 다른 세계를 구경시켜줄 수 있으리라 생각한다. (다른 사람들을 세심하게 관찰할 수 있고 실천할 수 있다면 참으로 빨리 배울 수 있는 사람이라 생각한다.)
어디선가 이야기 나왔었던 문제. 규모가 되는 프로젝트의 경우 100 장의 Index Card 는 보관하기도 어렵고 널려놓기엔 정신을 어지럽힌다.;;
- Story Card 는 Kent Beck 이 사용자와 더 빠른 피드백을 위해 생각한 덜 형식적인 방법이다. 어차피 Story Card 는 전부 AcceptanceTest 로 작성할 것이기에, 테스트가 작성되고 나면 AcceptanceTest 가 도큐먼트 역할을 할 것이다. Index Card 도구 자체가 보관용이 아니다. 보관이 필요하다면 위키를 쓰거나 디지털카메라 & 스캐너 등등 '보관용 도구', 'Repository' 를 이용하라.
=== 업체간 프로젝트에서의 계약문제 ===
실제 회사 : 회사 로 수주받은 프로젝트의 경우, 다른 회사에서 오는 '고객' 은 실제로 그 회사에서의 말단 직원인 경우가 많다. 그러므로, 매 Iteration 시 고객에게 Story 를 골라달라고 할때 그 고객은 힘이 없다.
PairProgramming 은 XP 에서 논란이 많은 듯 하다. Man-Hour 를 절반으로 깎는다는 생각을 하게 되어서인지.
- ["1002"] 가 ProjectPrometheus 를 할때엔 거의 전체 작업을 Pair로 진행했다. Integration 비용이 전혀 들지 않았다. (두명이 멤버였으니; 당근!) 그리고 초기 소스와 지금 소스중 초기 모습이 남아있는 부분을 보면 '젠장. 왜 이렇게 짠거야? 이런 허접한...' 이다. 중복된 부분도 많고, 매직넘버도 남아있고, 처음엔 쓸거라 생각했던 일종의 어뎁터 역할을 하는 클래스는 오히려 일만 복잡하게 만들고 등등.
그리고, '지식의 전파'가 프로젝트에서 효율을 높인다고 한다면. 이번 기회에서도 ["1002"] 는 Pair를 한 사람과 같이 싸우고 치고 받고 하면서 여러가지 생각을 할 수 있었던 기회가 되었다. '충돌' 이 물리적작용으로만 끝난다면 상처밖에 남지 않지만, 화학작용을 한다면 뭔가 새로운 것을 만들어낸다. Pair 는 단순히 '한사람 Skill' + '한사람 Skill' 은 아니라 생각한다.
단, 올바른 Pair는, 역시 Pair 하는 사람들 스스로 성숙할 필요가 있는 것 같다. ["1002"] 처럼 삐지기 쉽거나 F 스타일에 더 가까운 MBTI 스타일을 가진 사람은 약간. -_-; (["1002"] 는 INFP 인데, F 스타일이 T 스타일의 3배이다.; 물론 MBTI만으로 사람 전체를 평가하는것은 당근 아님.~)
과연 40시간 작업이란 가능한 일인가? 보통은 밤을 새어도 일을 못하는 경우가 많은데.
늘 지속할 수 있는 안정적인 흐름을 만들어내는 것이 중요하다. '40' 숫자가 중요하단 뜻은 아니다. (단, PairProgramming 이 기가막히게 잘 진행되는 경우는, '40시간을 초과' 할 수가 없을 것 같다. 사람 진이 다 빠지니까. -_-;)
이전 XpWorkshop 시에 나왔던 아주아주 날카로운 분의 질문. 협업 중심에서의 XP 에서는 연봉처리에 대해서 어떻게 하라고 합니까?
- ZPHomePage . . . . 31 matches
[겨울과프로젝트] 2004년 겨울방학에 진행하는 제로페이지 홈페이지 리뉴얼 프로젝트
* 홈페이지 디자인개편, 부가기능추가로 홈페이지 활동을 증대시킨다
* 웹프로그래밍 능력을 키운다
* [로고캐릭터공모]
회의 결과 로고와 마스코트 디자인 공모에 총 4만원의 지원금이 결정 되었습니다.
각 공모에대한 상금 비율이나 상품으로의 전환에 대한 전권은 ZP홈 프로젝트에 일임됩니다.
* http://cafe.naver.com/rina7982.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=750 - 웹안전색상
레이아웃 아무도 안올리네...카운터만들기는 잘 되는건가...위키는 들어오긴 하는건가...일단 모임은 화요일로... --[곽세환]
저번에 말했던 캘랜더 대충 가닥이 잡혔습니다. PHP로 꾸며보겠습니다. - [이승한]
약간 부족한듯하지만 새로운 홈페이지를 공개합니다. 1주일정도 테스트뒤에 메인으로 띄우도록 하겠습니다. --[곽세환]
깔끔하다! 위키가 홈페이지 속으로 들어갔는데 오른쪽 왼쪽 여백이 없어서 붙은 느낌이 좀 아쉽다.--[Leonardong]
사진첩이나 자료실 열람이 안되던데, 저만 안되는 것인가요? 그리고, 위키와 로그인 연동하는 부분에도 버그가 있는 것 같네요. [임인택]
사진첩이랑 자료실은 제로페이지 회원만 접근가능합니다(가입할때 제로페이지 회원으로 가입해야되고요 제가 한번 확인해보고 권한을 드립니다)
위키와 연동은 아직 불안정하긴 한데요. 위키아이디 메일로 보내주시면 해결해드리겠습니다.
아이디를 새로 해서 가입해봤는데도 마찬가지네요. 분명히 zp 회원으로 가입했습니다. 그래도 아니되어요~ ㅠㅠ - [임인택]
저같은 경우에는 모니터 해상도를 1280 * 1024로 하고 사용하는데 ZP창은 너무 작습니다. 즉 여백이 엄청나게 많습니다. 적당히 해상도에 맞추어 홈페이지를 보여주는 게 좋을 듯 합니다. --재동
건의사항입니다. 위의 모인모인 캐릭터를 Upload:ZeroWikiLogo.bmp 로 교체하고 기본 CSS를 clean.css로 바꿨으면 합니다. 모인모인 캐릭터의 경우 00학번 강지혜선배께서 그리신 거라는데(그래서 교체하더라도 원본은 삭제하지 않는 것이 좋겠습니다.) 제로위키에 대한 표현력이 부족하다고 생각해서 제가 새로 그려봤습니다. 그리고 clean.css가 기본 바탕이 흰색이고 가장 심플한 것으로 보아 기본 CSS로 가장 적합하다고 생각합니다. -[강희경]
- 현재 위키에 어떤 습관이 생기고 있는걸까? . . . . 31 matches
새로운 공원을 지을 때였다. 한 공원 설계사가 공원에 대한 전반적인 설계를 하고 있었다. 공원 조경 설계를 마치고 잔디와 길을 내었다. 그런데 문제가 있었으니, 옆에 분명히 길이 있었음에도 불구하고 사람들이 잔디를 가로질러 지나가는 것이었다. 푯말을 세워도, 줄로 길을 만들어도 사람들이 제대로 지키지 않는 일이 허다했다. 공원설계사는 '도대체 뭐가 문제일까?' 하며 고민을 하였다.
오랫동안 고민한 끝에 설계사는 잔디를 보고 이 문제를 간단히 해결했다. 잔디가 가장 많이 밟힌 부분을 따라 새로운 길을 내었다. 잔디가 가장 많이 밟힌 부분을 보니 다른 길로 지나가는 가장 가까운 지름길이였던 것이다.
우리가 현재 OneWiki(가제 이하 OneWiki로 표현)라는 공원을 돌아다닌지(또는 길을 설계한지) 일주일 이상의 시간이 흐르고 있는데, 그동안 자신들이 어떠한 경로를 만들어내려고 했는지, 또는 어떠한 편한 경로들이 있고 돌아보면서 어떠한 느낌을 받는지 생각해 봤으면 합니다.
* 이름의 하위 분류로 / 를 사용한다. 예) [삼총사CppStudy]하위에 속한 [삼총사CppStudy/숙제1] 페이지
* URL이나 dos, unix 디렉토리 구조 같아서 친숙한 것 같다. 프로그래머나 컴퓨터 파워유저는 익숙한것 같지만, 한국말에는 어울리지 않는 것 같다. --NeoCoin
+ 길에 비유를 했었는데 우리는 0'Wiki를 사용함으로 해서 익숙한 길이 있기 때문에 1'Wiki에도 역시 똑같이 사용하는것 같습니다. 이대로 페이지가 쌓인다면 0'Wiki와 똑같이 되지 않을까 합니다.-[상욱]
* 그것이 왜? 편한 길인가 앞으로도 편할수 있는 길인가? 나쁜점은 왜 나쁜가? 하는 것을 이야기 하자는 것이지요. 저 이야기에는 분명 많은 부분이 생략되었을 겁니다. 이 길을 내도 되는건가? 왜 사람들이 많이 다닐까? 하는 고민들이요. OneWiki 에 길을 보면서 생각해 BoA요. --NeoCoin
* 파싱의 문제와 검색의 문제가 어쩌구 했었던거 같은데, 개인적으로는 페이지이름에 빈칸은 별로라서. --[snowflower]
* 제목이 영어라면 각 단어의 앞을 대문자로 씀으로써, 띄어쓰기의 효과를 누릴수 있었지만... 한글은 그게 참 애매하지요. 띄어쓰기를 안하자니 한눈에 들어오지도 않고, 또 띄어쓰기를 하자니 검색이 보장이 안되니... 아예 '영어제목만 만들자' 같은건 어떨까 생각중입니다. --[인수]
* 개인위키를 돌려본 결과... 한글제목 페이지는 좀... 안좋더군요. 일일히 Delete하기 귀찮아서 한번에 필요한것만 지울라 했더니, 한글 페이지 제목은 파일명이 알파벳과 숫자의 조합으로 알아볼수 없는 문자로 되어 있더군요. 역시 '영어제목만 만들자'가 저를 강력히 꼬시는군요.--; --[인수]
* 음.. 위키가 외국에서 개발되어서 어쩔 수 없는걸까, 한글에 대소문자가 없어서 어쩔수 없는걸까. -_- 어쨌든 영어이름으로만 지으면 이런 페이지는 안녕이겠네. 하지만 인수의 의견도 좋아보이는군 --[snowflower]
* 외국에서 개발되어서 어쩔수 없다기 보다, 현재 Web 인코딩을 그대로 filename에 가져다 쓰기 때문입니다. python 스크립트 만들어저 지워요. --NeoCoin
* 하위 페이지에서 상위 페이지로 가기 위한 역링크 도 존재하는 것 같습니다. 없는 페이지도 많지만(그냥 복사해서 그런걸까..) --[snowflower]
* 페이지가 잘못만들어 지면 로그인해서 지운다. 반하여 ZeroWiki 와 차별되는 점 --NeoCoin
* 좀 이상한(...라기보다는 제로위키에서였다면 생소했을) 페이지(ex) [InterestingCartoon], [GoodMusic], [창섭이 환송회 사진])를 만들어봤다. --[인수]
기존 공원을 레노베이션할 때였다. 한 공원 설계사가 공원에 대한 새로운 설계를 하고 있었다. 이전의 설계를 뒤집어 엎고, 새로운 공원 조경 설계에 따라 잔디와 길을 내었다. 그런데 문제가 있었으니, 옆에 분명히 길이 있었음에도 불구하고 사람들이 잔디를 가로질러 지나가는 것이었다. 푯말을 세워도, 줄로 길을 만들어도 사람들이 제대로 지키지 않는 일이 허다했다. 공원설계사는 '도대체 뭐가 문제일까?' 하며 고민을 하였다.
오랫동안 고민한 끝에 설계사는 잔디를 보고 이 문제를 간단히 해결했다. 잔디가 가장 많이 밟힌 부분을 따라 새로운 길을 내었다. 잔디가 가장 많이 밟힌 부분을 보니 이전 공원의 길이었던 것이다.
- 5인용C++스터디/다이얼로그박스 . . . . 30 matches
* 다이얼로그박스가 무엇인가?
* 모달 다이얼로그박스와 모달리스 다이얼로그박스의 차이가 무엇인가?
* 모달 다이얼로그박스는 어떻게 만드나?
* 모달리스 다이얼로그박스는 어떻게 만드나?
* 다이얼로그박스에 있는 컨트롤(버튼, 라디오버튼, 체크박스, 리스트박스 등...)은 어떻게 사용하나?
== 다이얼로그박스란? ==
말 그대로 대화상자.
흔히 보는 윈도우의 창들중 하나로서,
대화상자(DialogBox)는 최상위 윈도우(top-level window)의 자식 윈도우로서 일반적으로 사용자로부터 정보를 얻기 위해 사용된다. Dialog는 사용자들이 파일을 선택하여 열기 등의 작업을 쉽게 하도록 합니다. 파일 작업을 쉽게하기 위해 제공하는 컴포넌트가 FileDialog클래스이다. Dialog는 Frame윈도우와 비슷한데 그 차이점을 살펴보면, 대화상자는 윈도우에 종속적이기 때문에 그 윈도우가 닫히면 대화상자도 따라서 같이 닫히게 된다는 것이다. 또한 윈도우를 최소화시켜도 대화상자는 사라지게 된다.
1-1 Visual Stdio Microsoft Visual C++ 프로그램을 실행 시킨다
곳에 경로를 선택하고, Project name: 에 프로젝트명을 적고 OK버튼을 누른다.
이 부분에서 사용자가 선택하고 싶은 것을 선택을 한다. 이 Test프로그램은 Dialog based를
== 모달 다이얼로그박스와 모달리스 다이얼로그박스 ==
대부분의 대화상자는 modal이다. modal 대화상자는 부모 프로그램이 계속 실행되기 위해서 사용자의 응답을 기다린다. 이 말은 modal 대화상자는 사용자의 입력 확인 없이 부모 프로그램의 어떤 부분도 동작시킬 수 없다. modaless 대화상자는 부모 프로그램의 실행을 막지 않는다. 이것은 다른 부분의 프로그램의 실행을 대화장자가 막지 않는다는 것이다.
모든 대화상자는 modal이거나 modeless형식이다. modal대화상자는 대화상자가 활성화 된 후 모든 작업은 이 대화상자에서만 이루어진다는 것이다. 즉, 대화상자를 닫을 때까지는 다른 작업은 할 수 없게 한다. 반대로 modeless대화상자는 활성화 된 후에도 또 다른 윈도우로 넘어가 작업을 할 수 있다. 대화상자는 기본 default로 modeless이다.
modal dialog의 예를 들면 프로그램에서 파일을 저장할 때 화면에 뜨는 Dialog를 들 수 있다.
즉 modal dialog는 그 dialog가 닫혀지기 전에는 부모 윈도우로 마우스를 이용한 focus이동을 할 수 없다. 따라서, dialog를 닫지 않는 이상 main window프로그램을 이용할 수 없다.
modalless dialog의 예는 글 워드 프로세서의 찾기 창을 들 수 있다. 찾기창을 띄운 후 창을 닫지 않로서도 문서편집 작업을 계속해서 할 수 있다. 이러한 속성을 modalless라고 한다.
- 5인용C++스터디/에디트박스와콤보박스 . . . . 30 matches
* 다이얼로그 박스에서 만들고 사용하는 방법을 발표하면 안됨!
에디트 컨트롤은 문자열을 보여주며 편집할 수 있도록 해주는 컨트롤이다. 주로 사용자에게 문자열을 입력받을 때 사용된다.
에디트 컨트롤은 CEdit 클래스로 표현된다. 멤버함수는 다음과 같다.
Copy / 선택영역을 클립보드로 복사한다.
CreateEdit라는 프로젝트를 만들어보자. 폼뷰가 아닌 일반 뷰에 에디트를 배치하려면 뷰가 생성될 때 (WM_CREATE) OnCreate에서 에디트를 생성시키면 된다. 우선 뷰의 헤더파일을 열어 CEdit형 포인터를 선언한다.
if(CView::OnCreate(lpCreateStruct) == -1)
m_Edit가 CEdit의 포인터로 선언되었으므로 일단 new 연산자로 CEdit객체를 만든다. 그리고 이 객체의 Create 멤버함수를 호출하여 에디트를 생성한다. Create 함수의 원형은 다음과 같다.
첫 번째 인수로 에디트의 스타일을 주되 에디트는 메인 윈도우가 될 수 없으므로 WS_CHILD 스타일을 주어야 하고 생성하자마자 보여야 하므로 WS_VISIBLE 스타일을 주어야 한다. 또한 에디트는 디폴트로 경계선을 가지지 않으므로 WS_BORDER 스타일을 주어야 보이게 된다. 두 번째 인수로 에디트가 차지할 사각영역을 주고 세 번째 인수로 에디트의 부모 윈도우의 포인터를 준다. 마지막 인수인 nID는 에디트 컨트롤의 ID이되 통지 메시지를 처리하지 않을 경우는 ID를 주지 않아도 상관없다.
예제에서는 (10, 10, 300, 35) 사각 영역에 에디트를 생성하였으며 통지 메시지를 사용할 것이므로 IDC_MYEDIT라는 매크로 상수를 1000으로 정의하여 ID로 주었다. 여기서 1000이라는 ID는 임의로 준 것이다.
new 연산자로 에디트 객체를 만들었으므로 프로그램이 종료될 때 이 객체를 파괴해 주어야 한다. WM_DESTROY 메시지의 핸들러에 다음 코드를 작성하면 된다.
이렇게 Create 함수로 만든 에디트의 통지 메시지는 어떻게 처리해야 할까. 클래스 위저드가 메시지 핸들러를 만들 때 해주는 세가지 동작을 프로그래머가 직접 해줘야 한다. 우선 메시지 맵에서 메시지와 메시지 핸들러를 연결시켜 준다. ON_EN_CHANGE 매크로에 의해 IDC_MYEDIT 에디트가 EN_CHANGE 메시지를 보내올 때 OnChangeEdit1 함수가 호출된다.
두 번째로 헤더파일에 메시지 핸들러의 함수의 원형을 선언한다.
세 번째로 메시지 핸들러 함수 OnChangeEdit1 함수를 작성한다. 함수의 본체 코드는 물론이고 함수명까지 직접 입력해 주어야 한다. 이 함수는 에디트 컨트롤의 문자열을 읽어 들이는 함수이다.
- 5인용C++스터디/템플릿 . . . . 30 matches
if(value < 0)
else
if(value < 0)
else
if(value < 0)
else
cout << "absi(-10) = " << absi(-10) << endl;
cout << "absd(-10.0) = " << absd(-10.0) << endl;
cout << "absf(-10.0f) = " << absf(-10.0f) << endl;
if(value < 0)
else
if(value < 0)
else
if(value < 0)
else
cout << "abs(-10) = " << abs(10) << endl;
cout << "abs(-10.0) = " << abs(-10.0) << endl;
cout << "abs(-10.0f) = " << abs(-10.0f) << endl;
if(value < 0)
else
- DataStructure/Graph . . . . 30 matches
* 2차원 배열로 표현합니다. 정식 이름은 Adjacency Matrix(맞나?--;)
* Vertex 사이에 Edge가 존재할때 그 곳의 값을 1로 셋팅
* LeftUpper -> RightLower 대각선을 기준으로 대칭
* 만약에 Vertex1 -> Vertex2의 방향으로 Edge가 있다면 < Vertex1, Vertex2 > 이렇게 쓴단 말입니다.
* 화살표를 그릴수 없는 관계로 순서쌍으로 표현하면
* 도표로 그리자면
* | - 방향으로 Edge가 존재할때 1로 셋팅
* LeftUpper -> RightLower 대각선을 기준으로 대칭이 아님
* Adjacency List(Linked List로 표현)
== 배열로 표현한 Graph와 리스트로 표현한 Graph의 비교 ==
* 배열 : θ(1) - 2차원 배열의 첨자로 ar[x][y] 단번에 접근 가능! 고로 배열이 좋단 말입니다.
* 리스트 : 위의 리스트로 된 그래프 표현을 보면 Head Node의 수는 n개가 필요하고 Head Node로부터 뻗어나오는 Node의 총 수는 2*e 개가 필요하다. θ(n+e) 고로 리스트가 유리하단 말입니다.
* Depth First Search(우리말로 깊이 우선 탐색) : 한우물을 쭉 파나간다는 말입니다. 가다가 막히면 빽. 스택 이용(또는 재귀). 처음으로 돌아오면 쫑난답니다.
* Breadth First Search(우리말로 너비 우선 탐색) : 첨 Vertex를 큐에 넣습니다. 뺍니다. 거기에 이어진 Vertex를 큐에 다 넣습니다. 앞에서부터 빼면서 그 노드에 연결된 Vertex를 계속 추가시켜줍니다. Queue가 비게 되면 쫑나는 거랍니다. 너비 우선 탐색을 트리에 적용시키면 그게 바로 Level Order가 되는 것이란 말이져.
* Edge들을 Cost 순으로 Sort(작은것부터)
== Single Source, All Destination(하나의 시작점에서 모든 곳으로의 Shortest Path를 구할수 있단말이다) ==
* 표현은 인접 행렬(Adjancey(??) Matrix)로 표현(그러니까 2차원 배열)
* cost[i, j] : i -> j 로 가는 Cost
* 역시 표현은 2차원 배열로 한다. 그런데 이 알고리즘은 (-) Weight 도 허용한다.(그리로 가면 이득이 된다는 말이다.) 하지만 Negative Cycle은 안된다.
* 초기 행렬을 A(-1)[i, j] 로 한다. 반복할수록 괄호 안의 값을 올려준다. 이걸 n-1까지 반복한다.
- HelpOnPageCreation . . . . 30 matches
페이지를 만드는 방법은 여러가지 방법이 있습니다. 그중에 위키에서 일반적으로 권고되는 방법으로는 먼저 원하는 페이지로 가서 편집을 해서, {{{FoobarPageName}}}이나 , {{{[[어쩌고페이지]]}}}식으로 위키링크를 본문에 집어넣고 저장을 합니다. 이렇게 하면 새롭게 갱신된 페이지에 새로운 링크가 생기게 되는데, {{{FoobarPageName}}} 혹은 {{{[[어쩌고페이지]]}}}라는 위키링크가 새로운 페이지를 가리키게 됩니다. 새로운 페이지는 아직 없기 때문에 새롭게 만들어진 위키링크는 색상이나 모양이 약간 다른 형태로 보이게 됩니다. 이것을 클릭하면 페이지를 새로 만들것이냐는 대화 메시지 혹은 비슷한 이름을 가진 페이지 목록을 보여주게 되며, 원한다면 새롭게 페이지를 만들 수 있게 됩니다.
새롭게 페이지를 만드는 경우도 일반 페이지를 편집하는 방식과 마찬가지로 고칠 수 있습니다. 편집 폼에 내용을 채운 후에 최초 저장을 하면 페이지가 진짜로 만들어지게 됩니다. 한번 만들어진 페이지는 일반적으로 지울 수 없도록 되어있습니다. [[FootNote(페이지 지우기는 모니위키 설정을 통해 변경가능합니다. 또한 모니위키에서는 페이지를 지우더라도 변경 역사까지 지우게 되어있지 않습니다. 따라서 언제든지 복구할 수 있습니다.)]] 그러므로 위키 페이지를 처음 만들 때에 위키 페이지 이름을 잘 만드는 것이 낫겠지요.[[FootNote(모니위키에서는 페이지이름을 변경하는 것도 가능하며, 페이지이름에 대한 별명을 만드는 방식도 지원합니다)]]
하위 페이지를 만들면 조금 특별하게 처리됩니다. 하위페이지도 일반 페이지와 마찬가지 방식으로 만들 수 있으며 {{{[[페이지/하위페이지]]}}}와 같은 식으로 연결되는 페이지입니다. 하위페이지에 대한 설명은 HelpOnEditing/SubPages 페이지를 참고하세요.
템플릿 페이지는 조금 특별하게 취급되는 페이지입니다. 페이지를 만들되 페이지 이름이 "'''Template'''"로 끝나는 페이지를 만들면 그것이 템플릿 페이지가 됩니다. [[FootNote(위키 관리자에 의해서 Template로 끝나는 이름이 아닌 다른 형태의 이름으로 그 설정을 바꿀 수도 있습니다)]] 이렇게 만들어진 템플릿 페이지는 페이지를 새롭게 만드는 경우에 목록으로 제시되게 되며, 템플릿 페이지를 선택하면 그것이 처음으로 편집 폼에서 인용되어 처음 만드는 페이지를 보다 쉽게 만들 수 있게 해줍니다.
다음의 변수들은 페이지가 최초 저장될 때에 자동으로 적당한 값으로 대치됩니다. 이 변수들은 미리보기할 때는 있는 그대로 나오며, 템플릿 페이지인 경우에는 변수가 대치되지 않고 있는 그대로 저장된다는 사실에 유의해 주세요.
|| @''''''PAGE@ || 페이지 이름 (템플릿 페이지에 주로 유용하게 사용됨) ||
|| @''''''DATE@ || 현재 날짜가 시스템의 설정된 포맷으로 대치됨 ||
이러한 변수를 집어넣어 편집하게 되면 그 저장되는 시점에서 완전히 다른 내용으로 대치된다는 사실에 유의해 주세요.
- IsbnMap . . . . 30 matches
IsbmMacro에서 사용하기 위해 다음과 같은 방식으로 ISBN을 등록하실 수 있습니다.
WowBook http://www.wowbook.com/generic/book/info/book_detail.asp?isbn=ISBN$ISBN2 http://image.wowbook.com/book/large_image/$ISBN2.gif
AladdinBook http://www.aladdin.co.kr/catalog/book.asp?ISBN= http://www.aladdin.co.kr/Cover/$ISBN2_1.gif
알라딘 Book Catalog는 경로가 다르고 gif포맷이라 하나 추가합니다.
알라딘 같은 경우 품절이나 재발매 등으로 ISBN이 새로 배정됐을 때, 그림은 예전 껄 그대로 가져다 씁니다.
그래서 ISBN으로 링크를 걸면 규칙에 안 맞기 때문에 그림이 안 뜨죠.
이런 경우, 어떤 식으로든 그림의 주소를 전달하는 방식을 만들 수 있을까요?
2004년인가 2005년부터 새로 나온 책의 이미지 포맷과 이전 책의 이미지 포맷이 달라졌습니다.
* 이전책 : gif {{{http://image.aladdin.co.kr/cover/cover/ISBN$_1.gif}}}
IsbnMap 에서 map 을 분리해서 사용하는 방법이 있을 수 있고 - 이 경우 출판년도에 따라서 옵션을 달리 줘야 하는 불편함이 있습니다. - ISBN 매크로를 고쳐서 (가능하다면 jpg가 없을 때 gif를 찾는 어떤 로직을 넣는 방법이 있을지 않을까 하는 생각이 듭니다. 제가 coding에 능력이 전혀 없는지라, 이게 구현할 수 있는 방법인지는 모르겠지만 논리적 차원에서는 이게 사용자 정신건강에 이로운 해결책이 아닐까합니다. (제 위키에서 책목록을 관리하는데 수작업으로 바꿔 줄 생각을 하니 조금 끔직합니다. - 스크립트를 돌려도 되기는 하지만 ... )
AladdinBOOK http://www.aladdin.co.kr/shop/wproduct.aspx?ISBN= http://image.aladdin.co.kr/cover/cover/$ISBN2_1.gif
모니위키 1.1.3에서는 이와 관련된 버그가 고쳐졌고, 알라딘 같은 경우는 확장자가 jpg/gif인 경우를 자동으로 검출합니다. 이 경우 php.ini에 {{{'allow_url_fopen=1}}}같은 식으로 설정이 되어있어야 합니다. 또, config.php에 {{{$isbn_img_download=1;}}} 와 같이 옵션을 넣으면 이미지를 다운로드할 수도 있게 하여, 일부 referer를 검사하여 이미지를 보이지 않게 하는 사이트에서도 활용하기쉽게 하였습니다. -- WkPark [[DateTime(2009-01-13T07:14:27)]]
수동으로 효과를 내는 방법
- QuestionsAboutMultiProcessAndThread . . . . 30 matches
1. Single CPU System에서 프로세서 A 가 Run 중일 때, I/O 작업을 해야 돼서 다른 프로세서 B로 스위칭을 하는 상황이다.
* 스위칭을 한다면, 프로세서 A에 Time Slice를 조금 남겨놓고 스위칭을 하는 것인가? 즉 I/O 작업을 계속 할 수 있도록 CPU가 조금씩 I/O 작업을 진행하면서 프로세서 B를 실행하는 것인가?
* 만약 그것이 아니라면, I/O 작업을 CPU가 담당하지 않는 것인가? CPU 내부 ALU와 I/O 작업 회로가 따로 있는 Independent 상황이기 때문에 그런 것인가?
* 감사합니다. DMA라는 특성 덕분에 독립적으로 I/O를 할 수 있는거군요. - [박성현]
* 그렇다면 개념적으로 Single CPU에서 Processor Switching과 같은 것인가?
* 그럼 여러 개의 Thread가 존재하는 상황일 때, 하나의 Thread가 One Time Slice를 전부 사용하는 경우가 있는가??
* A) processor라고 쓰신 것이 아마도 process를 의미하는 것 같군요? scheduling 기법이나, time slice 정책, preemption 여부 등은 아키텍처와 운영체제 커널 구현 등 시스템에 따라 서로 다르게 최적화되어 설계합니다. thread 등의 개념도 운영체제와 개발 언어 런타임 등 플랫폼에 따라 다를 수 있습니다. 일반적으로 process의 context switching은 PCB 등 복잡한 context의 전환을 다루므로 단순한 thread 스케줄링보다 좀더 복잡할 수는 있으나 반드시 그런 것은 아닙니다. - [변형진]
* A) processor라고 쓰신 것이 process, cpu가 processor를 의미하신 것 같군요. process는 실행되고 있는 하나의 프로그램 인스턴스이며, thread는 a flow of control입니다. 즉, 하나의 프로그램 안에 논리적으로 여러 개의 제어 흐름이 존재하느냐(*-thread)와, 하나의 컴퓨터에 논리적으로 여러 개의 프로그램 인스턴스가 실행되고 있느냐(*-process)로 생각하는게 가장 좋습니다. multi-processor(multi-core)는 말 그대로 동시에 물리적으로 여러 개의 흐름을 처리할 독립적인 처리기가 병렬로 존재하느냐입니다. 위에 제시된 예는 적절하지 못한 것 같습니다. - [변형진]
* "물리적으로 여러개의 '흐름'을 처리한다."는 말씀은 '각각의 CPU들이 '''하나의 프로세스''' 내부의 '''여러 개의 쓰레드'''들 중 개별적으로 쓰레드를 선택해 처리한다'는 말씀이신가요? - [박성현]
* 어느 바쁜 음식점(machine)입니다. 두 명의 요리사(processor)가 있는데, 주문이 밀려서 5개의 요리(process)를 동시에 하고 있습니다. 그 중 어떤 한 요리는 소스를 끓이면서(thread) 동시에 양념도 다지고(thread), 재료들을 오븐에 굽는데(thread) 요리를 빠르게 완성하기 위해 이 모든 것을 동시에 합니다. 한 명의 요리사는 특정시점에 단 한 가지 행위(instruction)만 할 수 있으므로, 양념을 다지다가 (context switching) 소스가 잘 끓도록 저어주기도 하고 (context switching) 다시 양념을 다지다가 (context switching) 같이 하던 다른 요리를 확인하다가, 오븐에 타이머가 울리면(interrupt) 구워진 재료를 꺼내어 요리합니다. 물론 두 명의 요리사는 같은 시점에 각자가 물리적으로 서로 다른 행위를 할 수 있으며, 하나의 요리를 두 요리사가 나눠서(parallel program) 동시에 할 수도 있습니다. - [변형진]
* 음식점 비유 재미있네요. 표절해야지 ㅋㅋ 저는 픽사빠니까 라따뚜이로 바꿀거예요. - [김수경]
- TddRecursiveDescentParsing . . . . 30 matches
RecursiveDescentParsing 을 TFP 로 시도를 해보려고 하는데.. Parser부분에 대한 test 의 결과를 얻기 위해서는 AST를 얻도록 해야 하고, AST를 조금씩 구축해나가는 방향으로 디자인유도중인데. 이 아이디어 생각하려는데 1시간을 소비했다. 흡;
''먼저 "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. --김창준''
* 아. 이번 레포트에서 요구하는 것이 계산기는 아니고, 간단한 언어에 대한 파싱 유도과정을 보여주고 에러처리하는 것이다보니, 구체적인 결과를 얻는 부분이 모호하다 판단이 들어서요. 그래서 조금 더 명시적으로 보이는 DOM 형태의 AST를 구하는 형태로 접근했습니다. --석천
대강 다음과 같은 식으로 접근했고요. 테스트코드 2-3줄쓰고 파서 메인코드 작성하고 하는 식으로 접근했습니다. (["Refactoring"] 을 하다보면 FactoryMethodPattern 과 CompositePattern 이 적용될 수 있을 것 같은데, 아직은 일단.)
문제점 : 테스트 가능할 수 있는 아이디어가 나오기까지가 오래걸렸다. 테스트 가능한 방법으로 접근하고 나서부터의 코딩은 1-1.5시간정도밖에 안걸렸지만. 그리고 본래의 스펙에는 AST 에 대한 언급이 없었다. 해당 함수가 제대로 호출되었는지를 근거로 접근하는 것이 나았을지도.
# 이 테스트를 만족할때까지 프로그래밍
# 이 테스트를 만족할때까지 프로그래밍
# 이 테스트를 만족할때까지 프로그래밍
# 이 테스트를 만족할때까지 프로그래밍
identifier = statement.getIdentifier()
token = identifier.getToken()
self.assertEquals(token.tokenType, Scanner.TOKEN_IDENTIFIER)
# 이 테스트를 만족할때까지 프로그래밍
# 이 테스트를 만족할때까지 프로그래밍
# 이 테스트를 만족할때까지 프로그래밍
# 이 테스트를 만족할때까지 프로그래밍
# 이 테스트를 만족할때까지 프로그래밍
identifier = factor.getIdentifier()
self.assert_(identifier != None)
# 이 테스트를 만족할때까지 프로그래밍
- 간단한C언어문제 . . . . 30 matches
C언어 기초를 *제대로* 배웠다면 아주 쉬운 문제가 될 것이다.
ANSI C를 규격으로 하는 Compiler (C90)
특정 컴파일러에 종속적인 프로그래밍은 좋지 않습니다. C90이라는 표준이 엄연히 존재하니까요. 특정 구현에 종속적인 프로그래밍을 한다고 하더라도, 프로그램의 심장은 표준에 따라 프로그래밍 하는게 좋습니다.
안옳다. 프린트에푸에있는 %f 가 %d로 바뀌면 더 예쁘게 출력될꺼같다.-[정수민]
signed int형인 a와 b를 더하면 (65535/2)에서 데이터가 넘치게 되어 -숫자가 나온다. (-65536/2)+((30000+30000)-(65536/2-1)) <- 제대로 설명을 못하겠다;;; - [이영호]
// 이 소스는 제대로 컴파일 되며, 실행도 된다.
옳지않다. atof함수로 float변환은 되었지만, atof함수의 프로토 타입이 있는 헤더를 추가하지 않았기 때문에 int형으로 return된다. 즉, num엔 숫자 123이 담긴다. ANSI C99에서는 프로토타입이 선언되지 않으면 컴파일되지 않도록 변했다. - [이영호]
옳지않다. 0을 앞에 적으면 8진수로 취급된다. 0x숫자 <- 16진수 - [이영호]
if(isdigit(ss[i])) puts("숫자");
else puts("일반 문자");
옳지않다. ss[]의 "문자"란 단어는 isdigit로 확인 할 수 없다. (확장코드이므로.) 이것을 isdigit로 확인 하려면 unsigned char형으로 선언 하면 된다. 기본 char형은 signed형이다. - [이영호]
안옳다. 와일문의 조건문에는 콤마가 허용돼지 않는거같다. -[정수민]
옳다. ,의 앞은 비교문이 아니라 선행 수행으로 처리한다. - [이영호]
옳지 않다. NUM 상수가 2번 define 되었다. 이 경우 나중 define된 200으로 처리된다. - [이영호]
옳지 않다. static은 C++의 private와 비슷하다. 한 파일이나 특정 로컬함수에서만 쓰인다는 것을 표현한다. - [이영호]
옳지않다. 함수의 프로토 타입이 정의되지 않았기 때문에 return형이 int형으로 바뀐다. 프로토타입은 return 타입을 컴파일러에서 알기 위해 쓰이는 것이다. - [이영호]
가독성에 대한 내용을 따로 뽑아서 [가독성] 페이지에 뽑아두었습니다. 이에 대한 의견 교환은 이제 새로 만들어진 페이지에서 했으면 합니다 - [임인택]
- 상협/Diary/7월 . . . . 30 matches
* 초반에는 여러가지것들을 균형있게 하려고 한거 같다. 그러다가 중반 넘어가서는 거의 한가지일에만 메달린거 같다. 그리고 영어 공부가 많이 부족했다. 그리고 생활도 초반에는 좀 착실하게 하려고 한거 같은데 후반에 가면, 목적의식 같은게 없어진거 같다. 앞으로는 한달에 할것들의 목적을 세워야 겠다.
|| 독서 || 자유로부터의 도피 3장 || 100% || - ||
|| 독서 || 자유로부터의 도피 4장 || 0% || 독서는 뭔가 특별한걸로 느껴져서. ||
* 오늘은 뭔가 막 할라고 했는데.. 결국은.. 별로 못했다는 사실.. ㅡㅡ;
|| ["비행기게임"] || 미숙한것들 처리 || ㅠㅜ || 파일에서 적 경로 읽어오기 하다가 실패함 ||
* 오늘은 이것저것 계획만 잔뜩 잡고 여러가지 일들을 제대로 못했다.
* 너무 계획을 빡빡하게 잡은거 같다. 앞으로는 좀 널럴하게 잡아야 겠다.
* 오늘은 어제 계획만 세우고 제대로 안했으니깐. 하고 나서 적어야 겠다.
* 오늘은 별로 한게 없당... 오늘 기숙사에서 기분이 좀 나빠지는 일이 있었다. 그때는 막 화가 났는데, 조금만 다르게 생각하자 그렇게 나빴던 기분도 풀렸다. 역시 사람은 화를 내는것보다 웃는게 훨씬 나은거 같다.^^ 옛날에 어디서 그런 연구 결과를 본거 같다.(화를 내는 경우와 웃는 경우 신체적 호르몬 분비나 스트레스 해소나 축적 정도...) 화내는것은 자기만 손해이고 스트레스만 쌓이는거 같다. 차라리 상대편 사람에게 화난점을 말하거나 그러한 여건이 안되면, 그 사람의 입장을 이해해 보려고 노력해 보거나 그사람이 나한테 잘해줬던 일들이라도 생각해보던지 해야겠다. 그리고 사람이 한번 소심해지면 한없이 계속 소심해지는거 같다. 오늘 기숙사에서의 일도 여러가지 방향과, 여러 사람의 입장에서 다양하게 생각해보면 그렇게 기분 나쁠일은 아닌거 같다. 소심해 지지 말잣~
|| ["비행기게임"] || 파일에서 경로 읽기 || 오케바리~ || 캬캬 ||
* 오늘도 별로 한것도 없이.. 지나갔넹..
* 결국 별로 나간것도 없이... 끝났다. ㅡㅡ;
* 오늘은 하루종일 3D만 했다.(가끔 워크3도 하고..) 벽돌깨기를 만들어야겠다는 일념으로.. ㅡㅡ;
* 요새는 맨날 3D만 한다. 난 한번 뭐 만들라고 맘 먹으면 눈에 뵈는게 없는거 같다. 벽돌깨기가 너무나도 만들고 싶은거라서 이거 말고 딴거는 못하겠당.. ㅡㅡ;; 그래서 POSA 프로젝트도 유보를...
* 오늘 visual c++ 초보 모임 카페에서 만난 얘랑 대화 했는데.. 웃겨 죽는줄 알았다. 이렇게 재미난 얘가 있었다니.. ㅡㅡ;; 앞으로 심심할일은 없을거 같다. ㅡㅡ;;
* 오늘? 오늘 뭐했지... 별로 기억이 없당.. ㅡㅡ;;, 학생회 회의도 가고 과외도 가고 해서..오늘은 태양계를 한번 해볼라고 했는데 대충 뭐 돌아가고 하기는 하는데 각도 좀 휘게 해서 돌게 할라고 하는데, 수학적인 계산은 했는데 실제로는 안된다. ㅡㅡ;; 이제 되었다. - 로 해야할것을 +로 해서.. 지금까지 안되었던거 같다~
* 오늘은 제로페이지 정모다.. 와 밖에 나갈일 생겼다~, 오늘은 비행기게임 진도좀 팍팍 나가야 겠다. 인수랑 만나기로 했다~
* 오늘은 11시 반에 일어났다. ㅠㅜ 잠을 너무 많이 자니깐 머리가 아플라고 한다. 새벽에 잘때 기분이 안좋아서 많이 잔거 같기도 하다. 기숙사에 대한 환멸이기도 하고, 기숙사의 한 인간에 대한 실망과, 지금까지의 기숙사 생활로 나도 어느새 그런 인간이 되지는 않았을까 하는 두려움도 생겼다. 이미 기숙사 생활로 나도 상당히 학번이라는 권위에 호소하는 경향이 있는거 같다. 빨리 제정신 차려야 겠다. 그러나 기숙사를 나올수는 없는 상황.. -_-,
* 오늘은 너무 많이 놀아서... 두번째걸 거의 못했다. 그리고 오늘 석천이형의 조언을 받아서 앞으로 공부 방향을 좀더 확실하게 잡았다. 아자아자~~
* 오후에 학교에서 공짜로 해주는 영어 회화 한번 가구, C++ 우리팀 모이는데 한번 가고 그러다 보면 하루 다 가겠다. 지금과 같이 뭐 특별한거 없고, 그저 그런 상황에서 난 중딩때 미래를 생각했는데.. 지금 상황에서 무엇을 조금씩 한다면 그것은 미래에 아주 큰 도움이 된다는거... 음.. 어떤걸 해봐야 할까~~ 영어인가.. 아니면 다양한 분야의 책들? 프로그래밍 공부는 원래 하는거다고 치고... 아니면 뭐 음악적으로 기타같은거라도 배울까나?? 별 생각이 다든다. -_-;;
- 상협/학문의즐거움 . . . . 30 matches
* 위키 탐험중 이책이 자주 등장하고 여러 사람이 추천하길래 읽기로 마음을 먹게 되었다. 그래서 이책을 와우북에서 샀다. 책 사는거는 정말 오래 간만이었다.
* 사람이 갖고 있는 정신 에너지 중 창조에 쓰이는 부분의 비율이 경쟁의식으로 인해 질투로 변형됨으로써 상당히 낮아진다. 정신 에너지는 사고 에너지, 창조 에너지 등을 포함한 에너지인데, 그것이 남과의 우열경쟁에 소모된다면 그만큼 창조 에너지가 적어지기 때문이다.
* 난 경쟁 의식이 상당히 강한거 같다. 아무래도 고등학교때의 영향인가. 그때 활활 타올랐던.-_-; 그런데 난 기술적으로 뛰어난 사람도 좋지만 그보다 창조적인 사람이 되고 싶다. 그러니 쓸데없는 경쟁 의식을 불태우지 말아야 겠다. 이 사람이 위와 같이 한말은 맞는말 같다. 나는.. 나 일뿐이다. 그 누구와 비교 하고 싶지 않다
* 체념한다라... 이것을 어떻게 받아 들여야지.. 난 어떤일을 하기로 마음을 먹으면 몸이 부서지는 한이 있어도 해내야 한다고 생각한다. 깡생깡사. -_-;, 그래서 이 어구는 그냥 그대로 받아 들일수 없고 내 식으로 해석해서 받아 들여야 겠다. 즉.. 체념은 더나은 발전적인 방향을 위한 체념일때만 그 체념을 해야 겠다는 생각이다. 즉.. 자신감 부족이나 의지 부족, 열정 부족 따위로 체념하는것은 말도 안된다고 생각한다. 물론 저자도 그런 의미에서 이렇게 말한거라고 생각한다.
* 이 어구도 여러가지를 생각해보게 만든다. 우리는 아주 가끔 주위에서 꽤 머리가 좋아 보이는 사람을 볼때도 있다. 그럴때면 보통 나는 왜 저렇게 할수 없는 거지 하면서 한탄을 하기도 한다. 그런데 이때 논리적으로 생각을 해보자. 나는 저사람보다 머리가 덜 좋다. 저 사람은 내가 2시간에 할것은 1시간만에 한다. 그런데 나도 저사람만큼 되고 싶다. 그러면 내가 두배의 노력을 하면 되겠네~?.. 간단히 말하면 이런식이다. -_-;; 즉... 사실을 부정하거나 합리화(정말 해서는 안되다 싶은거..합리화는.-_-;) 말고 받아 들인 후에.. 그것을 극복할 현실적이고 구체적인 방법을 생각 하는 것이다.
* 이것은 우리가 평소에 알고는 있어도 많이 저지르는 실수 중에 하나이다. 즉 어떤 일을 자신의 관점에서 바라보면 그일을 자신이 보고 싶은 방향으로 보는 경향이 있는 것이다. 시오노 나나미씨가 ["로마인이야기"]라는 책에서도 그랬듯이 사람은 자신이 보고 싶은 현실을 보는 것이다. 이것을 극복한다면 인생 살이 사는데 도움이 많이 될거 같다. -_-;
* 바로 이거다.. 옛날부터 생각은 했는데 실천을 못한거.. 나는 나일 뿐이다. 그 누구보다 못한 나도 아니오 그 누구보다 잘난 나도 아니오 나는 다른 사람을 통해서 정의하는 나가 아니라 나 자신으로서 정의할 수 있는 나이다.
* 창조적인 일을 하려고 한다면 가설을 세워서 연역하는 사고 방식으로 적극적으로 받아들이도록 권하고 싶다.
* 이건 나도 평소에 전혀 생각해 보지 못한 말이다. 음.. 즉.. 도전적인 사고 방식이 필요하단 말이군. 연역적 사고라.. 아무래도 이것은 체험을 하지 않는한 제대로 느끼지 못할거 같다. 연역적인 사고를 하려고 노력 해야 겠다.
* 지금까지 나는 나의 연구 태도 혹은 생활 태도로서 우선 사실 그대로 파악할 것, 가설을 세울 것, 대상을 분석할 것, 그래도 길이 막혔을 때는 대국을 볼 것, 이상 네 가지를 나 자신에게 타이르고 있다고 설명해 왔다.
* 종합적으로 저자가 창조적인 활동에서 유념할거를 말하는거 같당.
* 맞는말 같다. 페어 프로그래밍에서도 이 유연성이 중요한거 같다. 난 유연성이 부족한거 같다. 급한 성미 때문인거 같다. 앞으로는 너무 급하게만 몰아치지 말고 이 유연성도 키워야 겠다.
* 창조는 실제 만들어 보아야 비로소 가치가 생긴다는 것이다.
* 이책을 난 우리 누나에게 먼저 빌려 주었었다. 근데 우리 누나가 엄청 이책을 씹으면서 이 책의 히로나카씨가 잘난척을 무지 잘한다고 한다. 그리고 뭐 인간 관계도 이해 타산적이라고 막 씹어 댔다. 나도 이책의 저자가 인간관계에 일정한 선을 두어서 한번도 배신을 당한적이 없다고 한 말은 좀 재수 없어 보인다. -_-; 사람이 뭐 로보트도 아니구, 그렇게 살고 싶나.. 차라리 배신을 당한 지언정 사람을 믿으면서 살고 싶다. 이게 내 생각이다. 인간 관계에 관한 말은 우리 누나의 말대로 이사람에게 별로 배울점은 없다. 이 사람의 인간 관계는 자신에게 도움을 줄수 있나 없나의 이해 타산적인 면이 기본 바탕인거 같기 때문이다. 난 그렇게 살고 싶진 않다. -_-;, 그리고 이 사람은 사람을 판단할때 그 사람의 사회적 지위같은것을 아주 아주 중요한걸로 판단하는거 같아서 그것도 좀 재수 없는거 같다. 근데 다른 점에서는 배울 점이 있다. 창조적인 일을 하기 위해서 생각해볼 어구도 꽤 많다. 나름대로 읽을 만한 가치가 있는 책이었다. 우리 프로그래머도 결국 창조적인 일을 하는거니깐 이책을 한번씩 읽어 보면 얻는게 꽤 될것이다.
- 지금그때2003/후기 . . . . 30 matches
전반부의 진행이 매끄럽지 못했지만, 구성과 후반의 이야기는 제가 머릿 속으로 상상하던 것들이 구현이 되었던 것 같습니다. 시간이 지날수록 달아오르는 강의실의 공기 속에서 마무리 선언을 할 수 밖에 없었던 것이 '''아쉬움'''으로 남는군요. 참여하신 모든 분들 ... --[류상민]
OST 시간이 다소 부족한 감이 있어 아쉬웠지만 처음의 서먹함을 깨고 자연스럽게 얘기할 수 있었던 것이 좋았습니다. 끝나고 형들한테 들은 얘기도 도움이 된것은 물론 제가 후배들에게 이야기를 하면서도 제가 갖고 있던 경험과 생각들을 정리해봄으로써 배울 수 있는게 있었습니다. 바쁘신데 오셨던 선배님들께 감사드리고 준비하신 분들도 수고많으셨습니다. :) --[창섭]
선배가 후배에게 해주는 이야기가 지겨워지지 않고 의외로 즐겁게 게임처럼 넘어가는 게 참 좋았습니다. -영동
전통을 자랑하는 제 1회 지금그때... 좋은 말씀도 많이 들었다고 생각하고요. 이런 토론 자리가 자주 있다면 다른 주제로도 즐겁게 토론 할 수 있겠다는 생각을 해보네요. -휘동
어제는, 말씀드렸다시피 희망과 절망을 동시에 느꼈습니다. 이렇게 좋은 자리에 신입생들이 20명 남짓 왔다는 점이 절망이었습니다. 사실 애초에는 그 정도 인원을 대상으로 계획했지만 내심 더 많이 올 것을 예상했습니다. 오히려 너무 많이 오지 않을까 걱정을 해서 가능하면 광고수준을 낮추라고 주의까지 주었습니다. 희망은 20명 정도가 왔다는 것이고, 이런 행사를 기획하고 실행했다는 점입니다 -- 희망이 있습니다. 다른 학교 학생들이 중앙대학교 컴퓨터 공학과를 엄청나게 부러워한다는 사실을 아십니까.
[지금그때]를 처음 기획한 사람으로, 이 전통을 가능하게 해준 모두에게 ''고맙다''나 ''수고했다''가 아니고 ''축하한다''는 말을 해주고 싶습니다.
* 학교 수업 12주정도의 한학기 수업중 2번정도 OST 를 한다면 어떤일이 있을까 생각해봅니다. 교수님도 guest로만 참여하시는 식으로, 그동안 공부한 것들이 추후 실제로 어떠한 의미를 가지는지를 서로 대화하는 자리랄까요. 한번 그날 오신 분들이 OST 방법으로 진행해보셔도 재밌겠다는 생각을 해봅니다.
이번 자리에 참관으로 교수님을 모셔볼까 했는데, 생각뿐 실천은 하지는 않았습니다. 조금 마음의 여유를 가지고 해볼것도 재미있을 것 같군요. --NeoCoin
정말 안 온사람들은 후회할 정도로 멋진 자리였다고 생각합니다. 위에 분들이 다 하신 얘기라서 지겹겠지만 역시..이런 자리가 자주 있었으면 하네요. OST가 말 없는 사람의 입도 열어준다는 말을 듣고 반신반의했었는데, 정말 어제 평소에 말이 별로 없던 새내기들(저를 포함)도 이야기를 열심히 하더군요. 참 보기 좋았습니다.
하지만 역시 시간이 적은게 너무 아쉬웠죠.OST 시간을 1시간 짜리를 2개 정도로 하면 어땠을까 하는 생각을 해봅니다. --[인수]
어제가 처음이었는데 앞으로 정기적으로 선배님과 그리고 후배들이 함께모여 얘기를 나누는 자리를 가졌으면 합니다. 다음에도 이런 자리가 마련이 된다면 저는 어김없이 나갈 생각입니다. 앞으로의 생활에 대해서도 생각하도 좋은 얘기도 듣고 그리고 과거까지 돌아볼수 있지 않나 하는 생각을 합니다. 다시 한번 앞으로도 이런 자리가 있길 바라고 다음엔 보다 많은 학우들이 함께 했으면 하는 합니다. - 03학번 변준원-
국내 2번째, 대학교 최초로 갖는 Open Space Technology, 아주 전통깊은 제1회 '지금그때' 여서 뜻 깊었습니다.
모두가 느꼈듯이, 오히려 시간이 짧지 않았나 할 정도로 재미있었고 알차기도 한 시간이었습니다.
저희를 의해 힘써주신 선배님들, 그리고 같이 참석해서 노력해준 우리 주현이 창재 재선이 세환이 아영이 신애 희경이 준원이 희동이 진섭이 현종이 등등..(이름 전부 기억 못하는거 미안~) 모두에게 감사하고 중앙대학교 전통으로 계속 이어간다면 좋겠습니다. -03학번 수민-
OST라는 새로운 토론방식으로 전혀 지루하지 않았고 대학생활의 궁금증을 해결해 주는 자리 였습니다. 시간이 너무 빨리 지나가서 아직 궁금증을 전부 해결하지는 못했지만 선배님들의 경험담을 통해 많은 것을 깨닫게 되었습니다. 이 자리를 만들어 주신 선배님들께 감사드리고요, 앞으로도 역사와 전통을 자랑하는 모임이 계속 이어졌으면 하는 바람입니다. -03 황재선-
그래도 제대로 끝났다니 다행이구만 ^_^; --[X]
OST라는 새로운 토론방식이 재미도 있었고 잘 되었지만
앞으로도 이런 자리가 지속적으로 마련됐으면 좋겠네요.-주현-
- 프로그래머의편식 . . . . 30 matches
블로깅을 하다가 우연히 읽게 된 글인데 공감되는 부분이 많습니다. 원문은 [http://sparcs.kaist.ac.kr/~ari/each/article.each.469.html 여기]에 있습니다.
블로그 코리아를 통해 [http://mizar92.egloos.com/231854 초보에서 명인이 되기까지..]라는 글을 보았다. 사진을 좋아하는 사람이 어떤 과정을 거쳐 명인이 되는지 설명하고 있다.
''그들은 이제 새로운 지식으로 향한 문을 걸어 잠근 채 어떠한 새로운 경험도 받아들이려 하지 않는다. 그들에게는 더 이상의 발전과 진보는 없다.''
진정한 명인들은 개방적인 마음을 가지고 있다. 겸손한 마음으로 새로운 지식을 받아들이는 것을 멈추지 않는다. 카메라와 같은 장비에 대한 의존도도 줄인다. "어떤 카메라든 훌륭한 작품을 만들 수 있다."고 생각한다.
'''프로그래머의 편식'''
이것은 단지 사진 작가들에게만 해당되는 이야기가 아니다. 프로그래머들에게도 마찬가지로 해당된다. 많은 프로그래머들이 자기가 여태까지 해왔던 방식에 얽매여 있다.
리눅스에서 프로그래밍을 오랫동안 해온 사람이 '난 윈도우 프로그래밍은 전혀 할 줄 몰라' 라는 것을 자랑스레 얘기한다. 그러면서 MS욕을 실컷하고 나서 vim에 대한 칭찬을 늘어놓는다. '난 윈도우에서도 vim을 깔아놓고 쓴다'면서 visual studio에 내장된 에디터를 어떻게 쓰냐며 이해못하겠다는 듯한 표정을 짓는다.
나름대로는 자기가 guru라는 것을 주장하려는듯 하지만, 미안하지만 난 그런 사람을 보며 단 한번도 guru라는 생각을 해본 적이 없다. 오히려 꽉 막힌 사람이라는 생각이 들 뿐이다.
OS별로 시스템 API가 다르지만 따지고 보면 다 거기서 거기다. 한국에서 개라고 하는 것을 미국에서 Dog라고 하는 차이가 있을 뿐 OS가 다르다고 해서 프로그래밍하는게 완전히 새롭지 않다. 많은 OS에서 개발을 해보면 서로 놀랍도록 비슷하다는 것을 알 수 있다. 그러니, 새로운 OS에서 개발하는 것에 대해 두려워하거나 걱정할 필요 없다. 한가지 OS에 대해 제대로 알고 있다면, 처음보는 OS에서 개발하는 것도 90%는 이미 알고 있다고 생각해도 된다.
세상엔 리눅스에서 vi를 기가 막히게 쓰면서도 윈도우 프로그래밍도 잘하는 사람이 널리고 널렸다. 그러니, '난 윈도우따위에선 프로그래밍 안해'라는 걸 자랑스레 얘기해봐야 우스워 보일 뿐이다. 자기가 한심하다는걸 떠벌리는 셈이다.
에디터는 자기가 익숙하고 손에 편한 것을 쓰면 그만이다. 어떤 에디터를 쓰느냐 보다 그 에디터로 어떤 프로그램을 만들어 내는가가 더 중요하다. 울트라 에디터를 쓰던, vi를 쓰던, 메모장을 쓰던, 쓰는 사람만 편하고 좋은 코드만 만들어낼 수 있으면 된다. 어떤 guru가 vi를 쓴다고 해서, 자기도 vi를 쓰면 guru가 되는게 아니다.
이처럼 편식하는 것을 마치 guru인척 하는 것을 프로그래머들 사이에선 흔하게 볼 수 있다. OS나 에디터 뿐만 아니라 프로그래밍 언어, 패러다임, 라이브러리, 심지어는 키보드나 마우스에 이르기까지 자기가 선호하는 것만을 고집하며 그외의 것에 대해 베타적인 태도를 보인다.
해피 해킹 키보드를 쓴다고 다 guru가 되는게 아니다. vim을 화려하게 쓴다고 코딩을 잘하는 것도 아니다. 중요한 것은 프로그래밍의 본질에 대한 것이며, 그것은 플랫폼이나 언어를 뛰어넘는 것이다. 그것은 알고리즘이기도 하고 패턴이기도 하고 경험이기도 하다. 때론 수학이기도 하다.
새로운 것을 익히는 것이 어려울 것 같아서 두려운가 ? 괜히 시간 낭비할 것 같아서 걱정되는가 ? 지금 알고 있는 것만으로 충분하다고 생각하는가 ?
이 런 생각으로 새로운 것을 익히기를 거부하는 것은 너무도 오만하고 건방지다. 해보지도 않고 쉬운지 어려운지는 모를 일이다. 해보지도 않고 그게 시간 낭비일지 귀한 경험이 될 지는 알 수 없다. 지금 자신이 알고 있는게 얼마나 하찮은지는 더 배우지 않으면 알 수 없다.
- 2002년도ACM문제샘플풀이/문제D . . . . 29 matches
if(team1 < team2)
else
if(abs(team1 - team2) <= inputData[i].x)
else
cout << outputData[i] << endl;
bool IsDividable(vector<int>& weights, int diff);
int GetMax(vector<int>& weights, int diff);
int GetMin(vector<int>& weights, int diff);
int weight, diff, num;
cin >> diff;
if(IsDividable(weights, diff))
else
bool IsDividable(vector<int>& weights, int diff)
sort(weights.begin(), weights.end());
if(i != j)
if(partTotal < GetMin(weights, diff))
else if(partTotal >= GetMin(weights, diff) && partTotal <= GetMax(weights, diff))
else
int GetMax(vector<int>& weights, int diff)
float total = accumulate(weights.begin(), weights.end(), 0) / 2;
- 3N+1Problem/Leonardong . . . . 29 matches
if max < cycleLength:
if n % 2 is not 0:
else:
if __name__ == '__main__':
if self.getCycleLen(i) > maximum:
if n not in self.cycleLens:
if n in self.cycleLens:
if n % 2 is not 0:
else:
if aN not in self.cycleLens:
if __name__ == '__main__':
if n % 2 != 0:
else:
if n < MAX and\
## if getStoredCycleLen(n) is not 0:
if aN < 0 or aN >= MAX:
def getMaxCycleLen(aStart, aEnd):
if CUTOFF < aEnd - aStart:
if aStart % 2 == 0:
for n in range(aStart, aEnd+1, interval):
- DevelopmentinWindows . . . . 29 matches
윈도우즈 운영체제 기반의 프로그램 개발에 대해 소개하는 세미나 입니다. 02학번들에게 많은 도움 되었으면 좋겠습니다.
(앞으로 Windows 서브시스템 기반의 프로그래밍을 윈도우즈 프로그래밍이라고 하겠다.)
=== 윈도우즈 프로그래밍 ===
* 하드웨어 독립적 프로그래밍
* 프로그램이 순차적으로 실행되지 않고 메시지 발생에 따라 실행이 되는 방식
=== 하드웨어 독립적 프로그래밍 ===
* 하드웨어를 신경쓰지 않고 프로그래밍 할 수 있다.
* 윈도우즈 프로그래밍을 하기 위해 필요한 함수들을 제공
* 윈도우즈 API를 클래스로 포장하여 제공하는 클래스 라이브러리
* AppWizard, ClassWizard 등의 툴과의 통합으로 더욱 쉽게 사용할 수 있다.
* 아이콘, 커서, 메뉴, 다이얼로그 박스, 비트맵, 폰트, 엑셀레이터 테이블, 스트링 테이블, 버전 정보 등
* 코드를 여러 프로그램에서 공유하므로 메모리를 절약할 수 있다.
* 윈도우즈 프로그래밍에서는 대부분의 라이브러리가 DLL로 제공된다.[[BR]]
||LPCSTR||NULL 문자로 끝나는 문자열 상수 포인터||
||LPSTR||NULL 문자로 끝나는 문자열 포인터||
* 일반적으로 "동사 + 목적어" 또는 "동사 + 보어" 로 만들고 각 단어의 첫글자는 대문자로 나머지는 소문자로 쓴다.
* 윈도우를 만드는 함수는 CreateWindow, 메시지를 보내는 함수는 SendMessage
||c||카운터로 사용되는 변수||
||sz||NULL로 끝나는 문자열||
=== 윈도우즈 API를 이용한 예제 프로그램 ===
- MFCStudy_2001 . . . . 29 matches
목표: MFC를 이용, 프로그램을 작성한다. [[BR]]
== 프로그램 ==
* 지뢰찾기:[http://zeropage.org/pds/MFCStudy_2001_final_영창_MINE_blue.exe 영창];인수와 선호는 소스 날려 먹었다는 납득할수 없는(--+) 이유로 거부;[[BR]]
* [http://zeropage.org/~neocoin/data/MFCStudy_2001/MFC_Macro설명.rar MFC_Macro설명]:MFC에서 MessageMap을 구현하는 메크로 설명
[상민]:시원 섭섭하네. 뭐 암튼 말말말은 채팅 형식으로 가자 더 좋은 레이아웃 있으면 누가 추천해줘 그리고 2월 3일까지 줘 저기 위에 채울꺼 줘[[BR]]
[상민]:멋들어진 이름을 붙이고 싶었는데 ^^;; 그러고 보니 내가 이거 시작할때 프로젝트 이름도 모집하지 않았었냐?[[BR]]
[인수]:배운것도 많고.. 보람찬 프로젝트였네여.^^(더블버퍼링,MM타이머,마스킹 등등..)[[BR]]
[창섭]:괜히 바쁜 척하며 공부도 안하다가 결국 학점 떨어지고 MFC 스터디 제대로 못하고..뭐 그렇게 됐네요.[[BR]]
[창섭]:결국 제가 남긴 것은 발전된 오목이 아니라 여름방학 때 했던 것을 윈도우용으로 옮긴 것 밖에 안 되는...[[BR]]
[상협]:이렇게 MFC프로그램을 짤 수 있도록 이끌어주고 가르쳐준 상민이형한테 정말 너무 고마울 따름입니다.[[BR]]
[1002]:컴퓨터가 다른 사람 이길때의 상협이 표정을 사진으로 찍어놨어야 하는데. --; [[BR]]
[상민]:상협 표정 진짜 예술이었지, 흐흐 암튼 이페이지가 종료 페이지로 첫번ㅤㅉㅒㅤ군 종료페이지가 많이 나왔으면.. [[BR]]
[상민]:아 그리고 --; 내가 말한적이 없는가 본대 나 Java도 한다. 그러고 보니 여태 내가 보인게 다 MFC관련것 밖에 없네, 참고로 당장에 내가 의논 할수 있는 것들이 MFC, Java, VB정도 이고(내가 생각해도 웃기는 인간 같아 --;), 뭐 내가 보기에는 다 어정쩡하지, 그런데 아마 지금 자네들 물음에는 답변할 수있을껄 랄라라~[[BR]]
[창섭]:파트너 상협이꺼. 오... 상당히 똑똑했다. 어쩌다가 갑자기 연산오류로 종료하는 경우도 있었지만 그래도 멋진 프로그램이다. 호오.. 파트너로써 미안한걸..^^;[[BR]]
[창섭]:혜영누나꺼. 히야.. 포토샵처리라.. 근데 막대기로 치는 방향에 따라 다른 움직임을 보이는 기능도...우와. ^^; 깔끔하고 예쁜 겜 화면이 인상적..^^[[BR]]
[창섭]:인수꺼. 시작하자마자 열라 빨리 움직이는 데 놀랐다. -,.- 허무했던것은.. 겜을 이겨도 져도 '끝' 이란 말로 프로그램이 닫히니까 어찌나 허무했던지..ㅋㅋ 자네도 짱일세. ^^[[BR]]
[창섭]:선호꺼.(내 프로젝트, 학번, 가나다 순이니 나중에 썼다고 삐지지 말게. ㅋㅋ) 스테이지 1이 2보다 더 어려운 거 같다.ㅋㅋ 달랑 하나 나온 걸 어찌 맞추리..흐흐... 아무튼 잘 만들었더라. 히힛.[[BR]]
[창섭]:마지막으로 힘써주신 상민이 형, 석천이 형 고마워요~ ^^[[BR]]
[인수]:--;지난번에 말씀드린거 같은데..--; 포맷하다가 소스 통ㅤㅉㅒㅤ로 다 날려 먹었다는..--;[[BR]]
[인수] 객관적으로 혜영이 누나께 젤 이쁘네여^^;; 제꺼랑 선호꺼는 단순미를 보여주는..--;(그러면서 배경은 트루컬러를..--; 실행파일 커지는 주범..--;)[[BR]]
- Minesweeper/이도현 . . . . 29 matches
최대 입력의 크기가 100 x 100이므로 모두 조사해보는 방법도 매우 빠른시간안에 해결할 수 있다.
이번에는 처음으로 Presentation Error를 여러번 받았다. 이것은 프로그램이 도출하는 답은 맞으나 출력형식이 잘못된 경우 발생한다.
이 문제는 출력세트별로 반드시 빈 줄을 추가하라고 했다. 이것이 매우 애매한 해석으로 이루어져서 코딩에 어려움을 겪었다.
결과적으로 이야기하면 하나의 출력세트가 있을 경우엔 밑에 빈 줄이 없어야하고 하나 이상일 때만 빈 줄이 있어야한다.
밑에 코드에서 if문으로 outputNumber > 1 인 부분이 Presentation Error를 벗어나게 하는 해결방법이었다.
//ifstream fin("input.txt");
// 종료조건
if ((inputRow == 0) && (inputCol == 0))
// 배열 초기화 (경계값까지 '.'으로 초기화)
// 출력 (출력이 하나인 경우는 밑에 빈칸을 두지 않는다!!)
if (outputNumber > 1)
cout << endl;
cout << "Field #" << outputNumber++ << ":" << endl;
if (data[i][j] == '*')
else
if (data[i - 1][j - 1] == '*')
if (data[i - 1][j] == '*')
if (data[i - 1][j + 1] == '*')
if (data[i][j + 1] == '*')
if (data[i + 1][j + 1] == '*')
- Omok/유상욱 . . . . 29 matches
if (b_and_w%2 == 1)
else
if ( omok_array[question_x][question_y] != 0)
else
if (omok_check(question_x, question_y) == 2)
else if (omok_check(question_x, question_y) == 1)
for (i = -5 ; i <= 5 ; i++) // 가로
if ( omok_array[x-i][y] == temp)
if ( check_x == 5)
else
if ( check_x == 5 )
if ( omok_array[x-(i+1)][y] != temp )
for (i = -5 ; i <= 5 ; i++) // 세로
if ( omok_array[x][y-i] == temp)
if ( check_y == 5)
else
if ( check_y == 5 )
if ( omok_array[x][y-(i+1)] != temp )
if ( omok_array[x-i][y-i] == temp)
if ( check_cl == 5)
- OurMajorLangIsCAndCPlusPlus/print/이도현 . . . . 29 matches
일단 되게만 만들자라는 생각을 먼저하고 짜서 그런가 중복되는 것도 매우 많아져서 전체적으로 코드가 길어졌다.
if (arg[arg_index] == '%')
if(isdigit((int)arg[arg_index]))
if (arg[arg_index] == 'd') // 정수형 출력
else if (arg[arg_index] == 's') // string(char *)형 출력
else if (arg[arg_index] == 'f') // float형 출력
// 소수점아래 7자리까지 출력이므로 소수점 뒤에 0을 제거해야 한다.
if (sign == 1)
// 0.xxx 일경우 0 표시)
if (decimal == 0)
if (i == decimal) // 소수점 위치 찍기
else if (arg[arg_index] == '@')
if (arg[arg_index] == 'd') // 정수형 배열 출력
if (i < array_size - 1)
else if (arg[arg_index] == 's') // string(char *)형 배열 출력
if (i < array_size - 1)
else if (arg[arg_index] == 'f') // float형 배열 출력
if (sign == 1)
// 0.xxx 일경우 0 표시)
if (decimal == 0)
- PyIde/SketchBook . . . . 29 matches
* 몇몇 생각 - 소스코드에 대해 flat text 관점으로 보지 못하도록 강요한다면, 구조적으로만 볼 수 있게끔 강요한다면 어떤 일이 일어날까. 어떠한 장점이 생기고 어떠한 단점이 생길까.
''스몰토크 비슷한 환경이 되지 않을까. 소스 코드의 구조적 뷰로는 LEO라는 훌륭한 도구가 있다. 크누스교수의 Literate Programming을 가능케 해주지. 나는 SignatureSurvey를 지원해 주면 어떨까 한다. --JuNe''
''계속 생각했던것이 '코드를 일반 Editor 의 문서로 보는 관점은 구조적이지 못하고 이는 필요없는 정보를 시야에 더 들어오게끔 강요한다. 그래서 구조적으로 볼 수 있도록 해야 한다.' 였는데, SignatureSurvey를 생각하면 정말 발상의 전환같다는 생각이 든다는. (코드를 Flat Text 문서를 보는 관점에서 특정정보를 삭제함으로서 새로운 정보를 얻어낸다는 점에서.) --[1002]''
Eclipse 쓰던중 내 코드 네비게이팅 습관을 관찰해보니.. code 를 page up/down 으로 보는 일이 거의 없었다. 이전에 VIM 을 쓰면서 'VIM 으로 프로그래밍하면 빠르다' 라고 느꼈던 이유를 생각해보면
* Source Folding - 화일 하나가 긴 경우라도 짧게 줄여놓고 쓰므로.
* search - Function 이동시 편리. 게다가 일반 텍스트 에디터에 비해 search 기능을 수행하는 비용이 작다. / 한번, 그리고 바로 키워드 입력. (다른 녀석은? Ctrl+F , 키워드 입력, enter & enter. incremental search가 아닌 경우는 한단계가 더 있게 된다.)
하지만, 손가락 동선의 경우 - 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 이 도움을 줄 방법이 있을까, 또는 사람이 이를 문제상황으로 인식하고 프로그램 디자인을 바꾸게끔 하는것이 좋을까.
Wiki:FitNesse 의 맨 앞 문구 'Beyond Literate Programming' 이라는 말이 참 인상적으로 보인다.
- TheGrandDinner/김상섭 . . . . 29 matches
sort(test_table.begin(),test_table.end(), compare_table);
sort(test_team.begin(), test_team.end(), compare_team_max);
if(test_team[i].maxNum >= test_table.size())
if(test_team[i].maxNum == 2* test_table.size())
if(test_table[j].maxNum - totalcount < 0)
if(check == false)
sort(test_table.begin(),test_table.end(), compare_table);
if(check)
cout << "1" << endl;
sort(test_team.begin(), test_team.end(), compare_team_num);
sort(test_team[i].tableNum.begin(),test_team[i].tableNum.end());
cout << endl;
else
cout << "0" << endl;
if( tableNum == 0 && teamNum == 0)
sort(test_table.begin(),test_table.end(), compare_table);
sort(test_team.begin(), test_team.end(), compare_team_max);
if(test_team[i].maxNum > maxtable)
else
if(test_table[j].maxNum == 0)
- bitblt로 투명배경 구현하기 . . . . 29 matches
== bitblt로 투명배경 구현하기 ==
두가지 그림을 합치면 좋을텐데, bitblt로 합치면 사각형으로 합치니까 동그라미라도 그리는 날엔,
(OR연산이란! 0or0=0 0or1=1 1or0=1 1or1=1 이되는 연산입니다. 다시말해 0과 어떤값을 or연산하면 어떤값이 그대로 나오게 되죠.^^
검은색은 000000000000000000000000이니까 (bit로 ㅎ 갯수가 맞나?)어떤색을 or연산해도 그색 그대로 나온답니다.^^)
자.. 그럼 지금부터 아래의 두 그림으로 연산을 시작해 봅시다~!^^
그림의 가로의 크기는 size_x 세로의 크기는 size_y의 상수로 하겟습니다.^^
우선 앞으로 사용될 mask에 사용될 DC를 만들어 봅시다.^^
bitmap_mask=CreateBitmap(size_x, size_y, 1, 1, NULL); //mask로 사용할 흑백 비트맵을 생성합니다~!'ㅇ')/
배경으로 사용될 색(RGB(255,0,255))이외에는 모두 검은색으로 만들어 주었습니다.^^
배경으로 사용되는 색은 흰색이 되었구요.^^ 그러니까 결과는..
이제 우리 이쁜 주인공뒤의 배경색을 검은색으로 바꾸어 줍시다.^^
(AND연산이란? 0and0=0 0and1=0 1and0=0 1and1=1 다시말해 0과 and연산을하면 무조건 0으로! 1과 and 연산을하면 대입한값 그대로 나오는,
이제 마지막 연산! OR로 합쳐 봅시다!~^^
휴~ 초보라서 그런지 제대로 되었을지 모르겠네요..^^
프로그램을 컴파일해주는 컴파일러도 아니요..
결국 마스크 비트맵을 메모리상에서 만들어서 한장 비트맵으로 투명 배경만들기하는 거 였네 ㅡ.ㅡ;
이런거 말고 좌우로 자동으로 바꿔서 그려주는 방법은 엄나;;;
[(beonit)레밍즈프로젝트/프로토타입]에서 [MFC]기반으로 더블 버퍼링을 포함해서 간단하게 클래싱 해 보았습니다.
[프로그래밍분류]
- 가독성 . . . . 29 matches
가독성은 개인취향이라고 생각합니다. 제 경우는 C, C++에서 { 를 내리지 않는 경우보단 내리는 경우가 더 보기 편하고, JavaLanguage 에서는 내리지 않는게 더 편하답니다. 애초에 CodingConventions 이라는 것이 존재하는 것도 통일된 코딩규칙을 따르지 않고 개인취향의 코드를 만들어내다 보면 전체적으로 코드의 융통성이 결여되고 가독성또한 전체적으로 떨어지는 문제를 미연에 방지하기 위함이라고 생각합니다. 특히나 ExtremeProgramming 의 경우처럼 CollectiveOwnership 을 중요한 프랙티스 중의 하나로 규정한 방법론에서는 CodingConventions 과 같은 공동소유의 산출물에 대한 규칙이 더윽 중요하다고 생각됩니다. 요는, { 를 내리느냐 내리지 않느냐가 가독성이 높냐 낮냐를 결정짓는 것이 아니고 가독성이라는 하나의 평가요소의 가치는 개인에 따라 달라질 수 있다는 것입니다. - 임인택
이 글을 쓰고 저 문제에 대한 이의 제기가 들어올줄 예상은 하고 있었습니다. 그에 따른 제 변명은 이렇습니다. 여러 언어의 특성상 언어마다의 코딩 스타일은 엄연히 존재합니다. C언어의 특성에 따라 하나의 함수는 한 화면에 모두 출력되게 하는 것이 중요합니다. (물론 요즘과 같은 큰 터미널에서는 문제가 되지 않겠습니다만,..) 때문에 코드의 가독성을 높히며 많은 코드들을 짜는 것은 불가분의 관계라고도 할 수 있겠죠.(함수를 붙여쓰면 코드들은 많이 들어가나 가독성이 매우 떨어지죠.) 하지만 C언어에서 저것과 같은 방식의 코드는 코드의 라인만 늘리는 결과를 초래하게 됩니다. 예를 들어 24라인만 쓸 수 있는데 for문과 while문의 갯수가 4개라고 하면 4줄을 낭비하는 꼴이 됩니다. 즉, for문과 while문의 가독성을 위해 전체적인 함수 가독성을 떨어뜨리게 되는 것이죠. (또한 for문과 while문의 {를 아래로 내리는 것과 위로 올리는 것의 차이점은 얼마되지 않습니다.) 제가 강조한 것은 이 전체적인 모듈의 가독성을 뜻한 것입니다. (딴지를 걸자면 80x24 화면에 저러한 코딩 방식을 사용하는 것은 죽음을 자초하는 길일것입니다. 토발즈 또한 강조한 것이기도 하구요. :) ) - 이영호
''저도 중괄호({,brace)를 한줄에 쓰는 스타일을 선호합니다. 하지만 그것은 어디까지나 취향의 문제라고 생각합니다. 취향이 약간 다를 뿐이지 (과장된 표현이었겠지만) 죽음을 자초할 정도로 틀린일은 아니라고 생각합니다. 원만한 CollectiveOwnership 을 위해서는 다른것을 틀리다고 말하면 안될것 같습니다. --[이덕준]''
''Python 과 같은 언어의 경우 {} 자체를 쓰지 않고 아에 들여쓰기로 블록를 표현합니다. 우리가 코드를 볼때 해당 블록 범위를 읽을때에는 { } 의 위치보다는 들여쓰기로 블록 범위를 파악하는 일이 더 많다는 점에 대해서도 생각해 볼 필요가 있을 것 같습니다. --[1002]''
글을 작성하신 분과 제가 생각하는 '가독성'에 대한 정의가 다른게 아닌가 합니다. 코드를 글로 비유해 보자면(저는 비유나 은유를 좋아한답니다) 이영호님께서는 ''눈에 거슬리지 않게 전체적인 문장이 한눈에 들어오는가''를 중요하게 생각하시는 것 같습니다. 저는 가독성이라는 개념을 ''문장들이 얼마나 매끄럽고 문단과 문단의 연결에 부적절함이 없는가''에 초점을 맞추고 있습니다. 문단의 첫 글자를 들여쓰기를 하느냐 마느냐가 중요한 것이 아니고 그 문단이 주제를 얼마나 명확하고 깔끔하게 전달해 주느냐가 중요하다는 것이죠. CollectiveOwnership 을 위한 CodingConventions와 글쓰기를 연계시켜 생각해 보자면 하오체를 쓸것인가 해요체를 쓸것인가 정해두자 정도가 될까요? 제가 생각하는 가독성의 정의에서 brace의 위치는 지엽적인 문제입니다. SeeAlso Seminar:국어실력과프로그래밍
위의 서문(?)과 brace에 대한 부분을 봐도 토발즈가 코딩 스타일에 대한 자신의 생각을 독자들에게 강조한 것으로는 보이지 않네요. - [임인택]
위에서 이야기한 것 중 터미널 화면에서의 작업시 세로라인의 범위가 좁은 경우 { } 가 가독성을 해칠수 있다는 의견이 있습니다. 재미있는 의견 같네요.
전에 여러 회사의 팀들 분들과 이야기를 하면 사람들마다 얼마나 취향차들이 다른가에 대해서 느끼는데, 한편으로는 그냥 개인의 취향차로만 보기에는 그 분들의 작업 환경에 따라 차이가 있는 듯 합니다. 일례로, ["Refactoring"] 개념이 개발자들에게 퍼진 이후 메소드는 가능한 한 짧고 간결하며 한가지 기능만을 하는게 가독성과 모듈디자인상 좋다고 이야기합니다. 근데, 리눅스나 VI 에서 작업하시는 분들은 '너무 메소드 길이가 짧아도 안좋다.' 라던지 '리눅스의 xx 코드 본 적 있냐? 한페이지에 주욱 나오는게 정말 읽기가 좋다.' 'OO 디자인이 좋다고 하는데, 코드 분석하려면 이 화일 저 화일 돌아다니고 메소드들을 이리저리 돌아다녀야 하고 별로 안좋은거 같다' 라고 말씀하시는 분들도 있습니다.
그래서 추측을 했었는데, 자신이 쓰는 도구에 따라 같은 코드도 가독성에 영향을 받을 수 있겠다는 생각을 해봅니다. VI 등의 editor 들로 코드를 보는 분들이라면 아마 일반 문서처럼 주욱 있는 코드들이 navigation 하기 편합니다. (아마 jkl; 로 돌아다니거나 ctrl+n 으로 page 단위로 이동하시는 등) 이러한 경우 OO 코드를 분석하려면 이화일 저화일 에디터에 띄워야 하는 화일들이 많아지고, 이동하기 불편하게 됩니다. (물론 ctags 를 쓰는 사람들은 또 코드 분석법이 다르겠죠) 하지만 Eclipse 를 쓰는 사람이라면 코드 분석시 outliner 와 caller & callee 를 써서 코드를 분석하고 navigation 할 겁니다. 이런 분들의 경우 클래스들과 메소드들이 잘게 나누어져 있어도 차라리 메소드의 의미들이 잘 분리되어있는게 분석하기 좋죠.
[토의분류], [프로그래밍분류]
- 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/김동준 . . . . 29 matches
Describe 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/김동준 here
// 들어온 데이터의 신뢰성을 체크하는 함수. 신뢰성이 없는경우 False 반환
if(inputStr.length() == 1 || inputStr.equals("http") || inputStr.equals("blog") || inputStr.equals("com") ||
inputStr.equals("//") || inputStr.equals("블로그")) {
else { return false; }
if(isSkipData(wordTmp)) {continue;} // 1글자Data, 사이트, 블로그, 페이지 주소의 경우 연관성및 신뢰성이 떨어지므로 검색에서 제외
if( this.sectionWord.get(wordTmp) == null) { // 해당 단어가 없으면
this.sectionWord.put(wordTmp, 1); // 1개로 새로 넣고 추가
else { this.sectionWord.put(wordTmp, this.sectionWord.get(wordTmp)+1); } // 있는경우 자신의 것에 갯수를 한개 더 추가
this.sectionWordNum++; //Word 수는 중복과 상관없이 갯수를 Count 하므로 무조건 증가시킨다.
// 특정 단어의 갯수를 반환, 없는경우 1 반환
if(i != index) { notInSectionArticleSum += sectionTrain[i].getSectionArticleNumber(); }
if(i != index) { notInSectionWordTotalSum += sectionTrain[i].getSectionWordsNumber(); }
if(i != index) { notInSectionWordSum += sectionTrain[i].getSectionWordNumber(word); }
//해당 기사에 대한 연산 결과를 반환하는 함수. 양수일 경우 해당 Index Section 에 일치하는 기사로 판단한 것이며, 음수일 경우 해당 Index Section 에 일치하지 않는 기사라고 판단한 것이다.
if(i != index) {
if(sectionTrain[i].getSectionWordNumber(word) == 1 && sectionTrain[index].getSectionWordNumber(word) > 1) {
else { advantageResult += sectionTrain[i].getSectionWordNumber(word); }
if(getWeight(index, targetDocument.nextLine()) < 0) { negaNum++; }
else { posiNum++; }
- 문서구조조정토론 . . . . 29 matches
직접 바꾸건, 누군가 바꾸어 주느냐의 문제가 아니고, 또 단순히 글 자체에 대한 의도가 맞지 않아졌음을 이야기하는게 아닙니다. 문서 조정의 결과로 어울리지 않는 내용이 나타나는것 보다 큰 문제는, 다른 이들에게 잘못된 이야기들을 파생시킬 수 있는 점입니다. --이선우
DeleteMe) 현재의 해당 스레드는 정모에 관한 모든것을 다루는 것이라 생각해서 말씀하신 주제를 포용한다고 생각합니다. 하지만, 의도의 전달이 잘못되었다면 작성자가 고치기를 간절히 바라고 있습니다. 현재 문서 구조조정이후 고치는 사람이 별로 없는거 자체가 약간 걱정이 되지요. --상민
계속 대화의 핀트가 어긋나고 있습니다. 내용 자체가 전달하려는 의도와 어긋난 것이라면, 해당 작성자가 고치는게 가장 맞는 방법이라는데 동의합니다. 제가 제기한 이야기는 그러한 부분이 아님을 말씀드립니다. 서로 연관된 문제에서 위치를 바꾸는등의 문서 구조 조정 이야기 입니다. 이 경우, 내용 자체의 변화는 없지만, 문서 구조 조정자가 관련글의 위치를 바꿈으로써 잘못된 의미를 전달할 수 있고, 그 결과로써의 파생 결과를 우려하였습니다. 이는 해당 문서 작성자보다, 문서 구조 조정자가 좀 더 신경을 쓰는 편이 맞다고 생각합니다. --이선우
["neocoin"]:말씀하시는 문서 조정은 문서 조정은 문서 작성자가 손대지 말아야 한다라는걸 밑바탕에 깔고 말씀 하시는것 같습니다. 문서 조정자는 특별히 문서 조정을 도맡는 사람이 아니고, 한명이 하는 것이 아니라, 다수가 접근해야 한다는 생각입니다. "다같이" 문서 조정을 해야 된다는 것이지요. 문서 조정을 한사람의 도맡고 이후 문서 작성자는 해당 문서에서 자기가 쓴 부분만의 잘못된 의미 전달만을 고친다라는 의미가 아닌, 문서 조정 역시 같이해서 완전에 가까운 문서 조정을 이끌어야 한다는 생각입니다. 즉, 문서 구조 조정이후 잘못된 문서 조정에서 주제에 따른 타인의 글을 잘못 배치했다면, 해당 글쓴이가 다시 그 배치를 바꿀수 있고, 그런 작업의 공동화로, 해당 토론의 주제를 문서 조정자와 작성자간에 상호 이해와 생각의 공유에 일조 하는것 이지요.[[BR]] 논의의 시발점이 된 문서의 경우 상당히 이른 시점에서 문서 구조조정을 시도한 감이 있습니다. 해당 토론이 최대한 빨리 결론을 지어야 다음 일이 진행할수 있을꺼라고 생각했고, thread상에서 더 커다랗게 생각의 묶음이 만들어 지기 전에 묶어서 이런 상황이 발생한듯 합니다. 그렇다면 해당 작성자가 다시 문서 구조 조정을 해서 자신의 주제를 소분류 해야 한다는 것이지요. 아 그리고 현재 문서 구조조정 역시 마지막에 편집분은 원본을 그대로 남겨 놓은 거였는데, 그것이 또 한번 누가 바꾸어 놓았데요. 역시 기본 페이지를 그냥 남겨 두는 것이 좋은것 같네요.(현재 남겨져 있기는 합니다.) --상민
'문서 조정은 문서 작성자가 손대지 말아야 한다' 라는 어처구니 없는 내용을 어떻게 끌어냈는지 모르겠습니다. 어느 부분에서 도대체 '구조 조정은 구조 조정자의 몫이다'라는 식의 이야기를 했다는지 궁금하군요. 제 이야기는 현재의 잘잘못을 따지고, '문서 구조 조정은 ''누군가 그 일을 할 사람''이 알아서 해라'라는 식의 이야기가 아닙니다. 문서는 누구나가 노력을 해서 고쳐가되, 다만 문서 구조 조정자는(누가됬건 현재 문서를 구조 조정하고 있는 사람은), 자신이 한 결과에 따라 어울리지 않는 글이 될 수 있으므로 해당 문서 구조 조정의 시점에서 더 신경을 써야 한다는 뜻입니다. 물론, 해당글의 작성자가 나중에 발견하고 이를 고칠수도 있지만, 처음 시점부터 좀 더 신경을 쓰는 방법이 효과적이라 생각한 이유입니다. 한번 더 강조하자면, 문서 구조 조정자가 신경을 쓸 필요가 있다라는 이야기가 해당 글의 작성자 자체가 '나는 문서를 구조조정할 필요가 없다'라는 의미는 절대 아님을 이야기합니다. 모로가도 서울만 가면 되지만, 더 편한 방법이 있다면, 그런 방법을 택하는게 자연스러운건 자명한 이치입니다. --이선우
["neocoin"]: 그렇다면 저에게는 지금까지 페이지가 나온 이유 자체가 모호해 집니다. 그럼 말씀하시는 주제가 결국 "문서 구조 조정은 신중히 해야한다." 이것이라고 생각합니다. 이것은 의견이라기 보다 문서 구조 조정시의 기본 명제라 생각하며, 이중에 말씀하신 "문서 구조 조정시에 위치 변경은 글쓴이의 의도의 방향을 바꾼다."라는 것도 문서 구조 조정을 신중히 겠지요. 이런 것은 당연히 동의 합니다. [[BR]] 이것에 반대한다는 말이 없고, 이는 해당 의견의 암묵적 동의라고 생각하고, 잘못된 부분에 대하여 다시 구조조정을 해 주십사 원한 것인데, 다시 대화가 다른 방향으로 전개되어서 "문서 구조 조정자"와 "문서 작성자"로 나뉘어서 접근하시는 말씀인것으로 받아 들였습니다.[[BR]]해당 글처럼 잘못 된 부분의 지적 이후, 고치지 않는다면 다른 이가 해당 문서를 더 고치지 못하는 위화감 이랄까요. 그런것이 발생한다고 생각합니다. 현재 위키에 00들와 01들이 이러한 "조심스러움의 유발 요인" 때문에 활발히 글을 날리는데 방해가 될것이라고 생각합니다. 글을 장려하는 입장에서 글을 계속 올리다 보니, 대화의 주제가 어긋난 것 같습니다. --상민
["혀뉘"] : 위키 사용에 있어서 , 기존의 게시판과 같은 '글' 편집의 독자성,일관성 을 보장받지 못하다보니 이런 토의가 필요하게 된것 같군요. 사실 위키는 이러한 편집의 권리를 많은부분 '공유' 한다는 개념에서 나온것이기 때문에, 이를 너무 의식하면 위키 본래의 기능을 상실할 수 밖에 없을것 같습니다. 이런 일이 생기는 이유가, 그동안 ZP 의 움직임에 대해서 토론할 주제들이 많았기 때문에, 위키를 토론의 목적에 사용해서 그렇지 않았나 싶군요. 누구든지 글을 수정 할 수 있다는 위키의 장점이, '토론' 분야에 적용하면서 단점으로 바뀌게 되었다고 봅니다. '토론' 분야 만큼은 편집의 독자성을 보장 하는것이 어떨까요? 문서의 종류에 따라, 사실에 기초한 문서는 여러사람이 손을 대서 '완전에 가까운 문서' 를 만들어낼 수 있겠지만, '의견' 에 기초한 문서는 여러사람이 손을 대면 댈 수록 본래 의견제시를 했던 사람의 '의견' 은 훼손됩니다. 편집의 독자성이 필요하다고 생각됩니다. 망치로 대패질 할 수는 없는게 아닐까 합니다. 망치를 쓸 곳에 대패를 사용하려면, 대패 몸이 조금 상하겠지만, 휘둘르는 방법으로 못을 박아야지요 :)
위키에서 편집의 권리를 '공유'하고 고쳐나가는 개념이 제대로 적용되는 것은, 위키를 쓰는 사람들이 점점 익혀나가야 할 부분입니다. 토론과 관련된 부분에서 위키의 방식이 단점으로 작용한다고 보지 않습니다. 예를 든다면, KLDP의 토론란을 보면 더더욱. 스레드가 길어질수록 주제와 맞지 않는 글들이나 중간에 일어나는 감정싸움들은 걸러져야 할 것임에도 불구하고 그 자리를 차지하고 있습니다. 스레드가 길어질수록 결국은 논제를 벗어납니다. 위키스타일이라면, 문서구조조정을 통해서 그러한 것을 어느정도 줄여줄 수 있을 것이라 생각됩니다.
그리고 이건 논제와 약간 다른데, 성급하게 'Document' 를 추구할 필요는 없다고 봅니다. Thread 가 충분히 길어지고, 어느정도 인정되는 부분들에 대해서 'Document' 화를 해야겠죠. (꼭 'Document' 라고 표현하지 않아도 됩니다. 오히려 의미가 더 애매모호합니다. '제안된 안건' 식으로 구체화해주는 것이 좋을 것 같습니다.) --석천
'''우선은 저자의 의도를 더 잘 드러내는 편집만으로도 충분해'''
저는 PairProgramming을 가르치기에 앞서 NoSmok:PairDrawing 을 경험하게 합니다. 여기에는 여러가지 방법이 있는데, 구체적인 대상(사람 얼굴이나 동물 등)을 정해놓고 서로 한 줄 씩 번갈아 가며 그리는 방법이 있고, 아니면 아무것도 정하지 않고, 혹은 대강의 주제만 정해놓고 그냥 "멋진 그림"을 그리자는 합의하에 번갈아 가며 한 줄 씩 그리는 방법이 있습니다. 모두 그리는 중엔 말을 하지 않습니다. 여기서, 후자 경우 적극적으로 상대방의 의도를 이해하려는 노력이 없으면 좋은 그림이 나오기 어렵습니다 -- 한사람은 사람을 그리려고 하고 다른 사람은 나무를 그리려고 하는(혹은 상대가 나무를 그리려고 하고 있다고 오해한) 경우를 생각해 보세요. 상대의 의도를 이해하려고, 또 그것이 더 잘 드러나도록 서로 노력하다보면 혼자 그린 그림보다 더 좋은 그림이 나오는 경우가 종종 있습니다.
해당 공동체에 문서구조조정 문화가 충분히 형성되지 않은 상황에서는, NoSmok:ReallyGoodEditor 가 필요합니다. 자신이 쓴 글을 누군가가 문서구조조정을 한 걸 보고는 자신의 글이 더욱 나아졌다고 생각하도록 만들어야 합니다. 간단한 방법으로는 단락구분을 해주고, 중간 중간 굵은글씨체로 제목을 써주고, 항목의 나열은 총알(bullet)을 달아주는 등 방법이 있겠죠. 즉, 원저자의 의도를 바꾸지 않고, 그 의도가 더 잘 드러나도록 -- 따라서, 원저자가 문서구조조정된 자신의 글을 보고 만족할만큼 -- 편집해 주는 것이죠. 이게 잘 되고 어느 정도 공유되는 문화/관습/패턴이 생기기 시작하면, 글의 앞머리나 끝에 요약문을 달아주는 등 점차 적극적인 문서구조조정을 시도해 나갈 수 있겠죠.
- 새싹교실/2011/Pixar/3월 . . . . 29 matches
* IceBreaking : 진실 혹은 거짓으로 간단히 서로에 대해 알아보았습니다.
* Keywords : 컴파일러, 프로그래밍 언어, printf 함수, main 함수, #include, assert 함수, 변수, 자료형
* 컴퓨터는 0과 1밖에 몰라서 사람 말로는 대화할 수 없습니다. 우리가 쓴 코드를 컴퓨터가 이해하기 위해서는 컴파일러의 도움을 받아야합니다.
* main 함수는 프로그램이 시작하는 부분이예요. 앞으로 함수를 배우기 전까지 모든 코드는 main 함수 안에 작성합니다.
* assert는 영어로 '주장하다'라는 뜻을 가진 단어입니다. 나중에 더 자세히 설명하겠지만 assert(3+4 == 7);은 컴퓨터에게 ''3+4는 7이라고!!!'' 주장하는 것과 같다고 생각하면 됩니다.
* 이렇게 하면 컴퓨터에게 ''3+4는 8이라고!!!'' 주장하는 것과 같습니다. 만약 누가 갑자기 저런 말을 한다면 아주 어처구니가 없겠죠? 컴퓨터도 저런 주장은 어이없게 생각하기때문에 말도 안 되는 주장을 할 경우 에러를 발생시킵니다.
1. C 고수는 절대 아니지만… 나름 새싹교실 4년차라 이제 오래 준비하지 않아도 뭘 가르칠지는 머리 속에 다 들어있다고 생각했는데 첫 시간 진행해보니 그렇지 않네요ㅜㅜ 관련 내용은 알고 있어도 처음 C를 접하는 새내기들에게 어떻게 설명해야 좋을지 생각해봐야겠어요. 이전까지는 사실 교수님 수업이 새싹 진도보다 조금씩 앞서나가서 수업을 보충하는 식으로 진행했던 것 같은데 이번 해엔 그렇지 않다는 것을 미리 고려하지 못했습니다ㅠㅠ
1. 매년 아는 게 조금씩 늘어나서 해주고픈 말도 너무 많아요. 그런데 제 머리속에선 흐름이 잡혀있는 이야기들이지만 막상 프로그래밍을 처음 접하는 새내기들이 듣기엔 이 소리했다가 저 소리했다가 왔다갔다 하는 것으로 느껴질 것 같습니다. 다음 시간부터는 흐름을 잃지 않도록 간단히 키워드 목록이라도 준비해올게요~
1. 생각해봤는데 제가 말이 너무 빠르고 혼자 말을 많이 해서 새내기들이 듣고 생각을 정리할 시간이 별로 없지 않았나 싶습니다. 조금 더 천천히 말하고 함께 이야기해보고, 직접 실습하며 스스로 내용을 정리하고 느낄 수 있는 시간이 될 수 있게 노력하겠습니다. - [김수경]
* C언어를 처음으로 공부했어요 ㅎㅎ 고급언어 저급언어?? 에 대해서 배웠고 다른 언어들에대해서도 간단히 들었다. 그리고 변수와 자료형에대해서도 배웠어요. 너무 신기했어요 처음으로 C를 공부해봐서 ㅠㅠ.,... 자랑은아니지만.. 앞으로 배울거 생각하면 너무기대되요 ㅎㅎ 제가 복습을 잘 안해서 ㅠㅠ 걱정이 되지만 앞으로 최선을다해!! 복습 해올께요 - [이승열]
* 사실, 느낌, 배운 점, 앞으로의 계획을 넣어 작성해주세요.
* 두번째로 c프로그래밍을 배웠습니다! 피드백을 좀 늦게쓰게됬습니다. 저번시간에는 전처리기에 대해서 배웠습니다 컴파일 전에 읽어주기 때문에 전처리기라고 합니다. 우리가 써본건 #include 와 #define 입니다 그리고 변수이름으로 사용할 수 있는것들을 배웠습니다. 학교 수업이 너무 어려워서.. 열심히 하려고합니다!!.. -이승열-
* 아이스브레이크를 너무 오래한것같아서 조금 아쉬웠어요ㅠㅠ. 복습하고 수업하고 그러는거 정말 괜찮았는데 1시간밖에안해서 아쉬웠어요ㅠㅠ. 정말 교수님한테 듣는 수업에 비해서 엄청 쉬우셔서 쉽고 재밌게 배우고 있어요 ㅎ_ㅎ. int하고 char, 정수,변수 그거를 제가 다 까먹어서 다시 한번 집에서 한번 해봐야댈것같아요 ㅠㅠ. 앞으로도 이렇게만 배웠으면 좋겠어욬ㅋㅋㅋ. 누나감자칩먹고싶어요 크크. -김연석-
* 조건 연산자
* 저번주에 한시간 빠져서 저는 오늘 두번째 새싹교실 수업이었어요. 오늘은 연산자에 대해서 배웠는데 한번 배워서는 다 외우기는 힘들꺼 같았어요. 벌써 다외울 필요는 없고 계속 쓰다보면 외워질거라는 말씀에 그래도 맘이 놓였어요. 그리고 오늘 새로운 애가 한명 들어왔는데 걔는 분위기를 망치는거 같아요. - 한광운 -
* 새싹교실을 처음들었는데 대학생활 한달만에 제대로 된 수업을 들은 느낌입니다. 오늘 많은 것을 배운 것 같습니다. 2시간동안 수업들었는데 딱히 수업이 긴거 같진 않았고요 재밌었어요 printf랑 assert 도 처음 배웠고 C언어 시간에 하나도 알아듣지 못한 것을 여기서 많이 배우고 가네요 앞으로 복습도하고 예습?은 쫌힘들어도 복습은 철저히 해서 C언어를 잘하고싶어요~~~~~~-오상준-
* 세번째 c프로그래밍수업 새싹교실을 했습니다. 연산자에 대해서 배웠습니다. 연산자는 사칙연산이랑 나머지를 구하는거등이 있었고, assert를 이용해서 확인해보면서 & 나 | 등 배우고 printf에 대해서도 배웠어요 내일은 수업이 없다고 하니 오늘 한것을 복습을 열심히 하겠습니다~! 점점 잘할수 있을거같다는 마음이 드네요 . -이승열-
* 휴강은 아닌듯? 전날로 땡겨서 한가잖아 ㅋㅋ - [서지혜]
* 이땐 원래 일주일에 이틀 하기로 했었거든 ㅋㅋㅋㅋ - [김수경]
- 새싹교실/2011/쉬운것같지만쉬운반/2011.3.23 . . . . 29 matches
* 프로그램은 어떻게 만들까?
1. 문법에 맞춰 프로그램 로직 코딩
2. 컴퓨터 언어로 변환
1. 이 코드가 어떤 흐름으로 실행이 될까?
1. 다음 코드의 흐름을 차례대로 나열해보세요~
2. "프로그램"이 무엇일까요? 자유롭게 설명해보세요.
3. 나는 프로그램이 실행되고 CPU가 맨 먼저 호출하는 함수가 뭔지 안다! (O/X)
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* C언어 진도를 나간 첫 수업이었다. 내가 생각보다 수업을 빠르게 진행을 한건지 수업을 반정도 진행하니까 준비해간 내용을 전부 진도를 빼버렸다; 1시간을 가르치려면 1시간을 준비해야한다더니, 그 말이 맞는 것 같다. 다음 화요일 수업에는 더 많이 준비해야겠다. C언어 말고도, 간단하게 다른 새로운거 접해보라는 의미로 tryhaskell홈페이지를 알려주었다. 애들이 재밌게 해봤으려나?ㅋㅋ - [박성현]
* 새싹교실에서 컴퓨터는 무엇인가, 프로그램은 무엇인가, 프로그램은 어떻게 만드는가 등을 배우고 직접 코딩도 해보았다. C언어는 정말 흥미로웠다. 새싹 선생님이 알려주신 tryhaskell홈페이지에 들어가서 haskell이란 언어도 체험해봤는데 뭔가 C언어보다 고급 언어라는 느낌이 들었다(맞나....) 다음주에 배우게 될 것이 궁금하고 기대가 된다. - [송치완]
* 후후 하스켈은 순수 함수형 C는 절차형으로 종류가 다른 언어에요~ - [서지혜]
* C언어 프로그래밍을 시작하기 위해 필요한 컴퓨터와 프로그램에 대한 지식을 공부하였다. C언어는 역시 멋진 언어인 것 같다. haskell을 해 보고 싶었는데 사이트가 이상했다 ㅠㅠ.. 프로그래밍 언어는 너무 많은 것 같다. 다 배우려고 하진 말아야지... - [장용운]
변수 a가 10으로 초기화된다.
변수 b가 20으로 초기화된다.
변수 c가 변수 a와 b의 합으로 초기화된다(30).
c는 30이므로 비교 결과가 참이 되기 때문에 assert함수의 호출이 종료된다.
상기 코드가 정상적으로 진행되었기 때문에 main함수는 0을 리턴하고 프로그램이 종료된다.
프로그램은 여러 데이터를 가지고 사용자가 원하는 일을 수행하는 것입니다.
콘솔 응용 프로그램에선 main()
- 성우용 . . . . 29 matches
제로페이지 설명회
if(i > SIZE || j > SIZE)
else
if(matrix[x_point][y_point] == 1)
else
if(k==0)
if(k==0)
if(k==0)
if(k==0)
if(k==0)
if(k==0)
if(matrix[x_point][y_point+k] == 0)
if(k==1)
if(matrix[x_point+k][y_point] == 0)
if(k==1)
if(matrix[x_point+k][y_point+k] == 0)
if(k==1)
if(matrix[x_point-k][y_point] == 0)
if(k==1)
if(matrix[x_point][y_point-k] == 0)
- 위키QnA . . . . 29 matches
A : 아. 한번 고쳐봤습니다; 위의 네비게이션 바에 tab index를 주었습니다. 맨 처음 focus 는 바로가기 GO 입력창에 커서가 오고요. 그 다음 Shift + Tab 을 누르면 TAB 이 최근바뀐글 -> 검색 -> 제목색인 순으로 움직입니다. (반발이 3명 이상 나오면 원상복귀 하겠습니다;;) --석천
=== IE 6.0 에서의 로그인 문제 ===
Q : IE 6.0 기본설정에서는 로그인이 안되네요.
A : "도구->인터넷옵션->개인정보->편집" 눌러서 zp.cse.cau.ac.kr 허용으로 해주면 됩니다. --구근 [[BR]]
Q : 그리고 글중 ''wiki : NoSmok : 페이지이름'' 식으로 링크를 했는데, 이건 무슨 기능인지 간단히 설명좀
A : InterWiki 라고 합니다. InterWiki 에 등록된 다른 위키의 페이지를 링크 걸때 사용합니다. 위키간 이름공간을 연결해주는 유용한 매크로. ^^; InterWiki 에 가보시면 현재 등록된 다른 위키페이지들을 알 수 있습니다.~
=== {{{~cpp }}}로 묶이는 단락의 폰트 사이즈가 작아요 ===
Q : {{{~cpp {{{~cpp }}} }}} 로 묶이는 녀석의 font를 1 더 크게 하면 어떻게 나오는지? 지금 좀 작아서 글자가 보기에 뭉개져 보입니다.
A : 묶인 녀석의 font가 1 더 커진 상태 (기존폰트는 10pt) 는 UserPreferences 에서 default.css를 default_2.css 로 바꿔서 보세요.
* Regular Project 인원 3명이상 - 3명 이상이라면 세미나-스터디의 형태이거나, 단체 프로그램 목표, 기타의 단체 목표 일것이다.
* 예외 경우
* Regular Project 2명이하라도 팀원들이 Regular Project 만큼 많은 접근성이나 말이 멋있다고(--;)요구하면, 자유로이 Regular Project에 올린다.
* 반대로 Semi Project의 Regular Project로의 선택은 막습니다. 이것이 허용되면 구분의 의미가 없겠죠?
Semi -> Regular 로의 선택의 의미는 뭐지? --석천
* Regular Project와 Semi Project를 나눈 원래의 취지는 개인이나 2명의 극히 소수가 진행하고 있는 작은 규모와 3명 이상의 단체가 진행하는 일이라고 생각했습니다. 하지만 받아 들이는 입장에서는 다른 의도로 받아 들이지 말아 주세요. 혹은 둘을 구분하는 다른 효과적인 기준을 제시해 주세요.
Semi Project에서 인원이 3명 이상이라면 자동으로 Regular Project가 되어야 합니다. 이렇게 한 이유는 Regular Project라면 대문에서 더 다수가 접근할 것이라고 생각되며 eye catch의 시간을 더 줄여야 한다고 생각하기 때문에 이렇게 둔것입니다. 둘의 차이는 인원의 차이 외에 현재 아무것도 없습니다. 그냥 2명 이하라고 하는것 보다 Semi라는 이름이 멋있어서 붙여놨것만 --;; --상민
FrontPage가 현재 하고 있는일이 (보여주고 있는 것) ZeroWiki 정의, 사용용도, Starting Point (여기에는 프로젝트 열거도 포함), 제안이야. 이중에서 사용용도와 제안은 새 페이지로 빼는 것이 좋을 것 같은데. 그리고 프로젝트 열거 밑에 Starting Point 밑에 두는 것도 생각. 그리고 또하나는 현재 이 프로젝트 관련 글을 Q&A가 아닌 제안페이지에 두는것이 더 좋겠다는 것. 현재 우선적인 직접접근성을 제공받아야 할 것은 project니까. 그에 대해서는 나도 별 이견 없음. --석천
A: {{{~cpp [[TableOfContents]] }}} 매크로를 사용해보시는 건 어떨까요? 소제목들에 대한 내부링크를 만들어줍니다. 링크의 기준은 === ===, == == 등으로 묶인 헤더태그들 기준입니다.
Q: Bioinformatics에 관한 프로젝트를 진행하려고 합니다. 소개와 내용의 재정리를 위해서는 많은 이미지 파일들을 위키에 올려야 될지도 모르겠는데, 위키에서의 이미지 사용은 그렇게 적절하지 않은 것 같습니다. 어떤 방식으로 이를 해결할 수 있을까요?
A: 임의의 웹사이트(예컨대 자신의 홈페이지, 혹은 제로페이지 FTP서버 등)에 화일을 올리고 위키에는 링크만 남기면 자동으로 이미지가 표시됩니다.[[BR]]
- .vimrc . . . . 28 matches
set autoindent " 자동으로 들여쓰기를 한다.
set shiftwidth=4
map <F7> :cn<CR> " 에러(결과) 위치로
map <F8> :cp<CR> " 에러(결과) 위치로(역순)
map <F12> ^T " 이전위치로 되돌아오기
map <C-F12> :make again<CR> " 모두 새로 빌드
set guifont=monospace
"set guifont=miscfixed
"set guifont=gulimche\ 9
endfunction
endfunction
endfunction
" Search for #ifndef
call search("#ifndef")
" Search for #endif
call search("#endif")
endfunction
au BufReadPost *.bin if &bin | %!xxd
au BufReadPost *.bin set ft=xxd | endif
au BufWritePre *.bin if &bin | %!xxd -r
- HelpOnActions . . . . 28 matches
모니위키는 액션이라는 확장기능을 제공합니다. 액션은 현재 보고 있는 페이지 혹은 전체 위키에 대한 특별한 확장 기능을 말합니다. 매크로와는 다르게 위키 페이지에 직접 매크로를 삽입해야 하는 것이 아니라 그 페이지를 다른 방식으로 보는 방법을 제공합니다. 예를 들어 페이지를 편집하는 기능를 `edit` 액션이라고 하며, 북마크를 하는 기능은 `bookmark`액션을 통해 이루어지고, 전체 검색, 제목 검색, 역링크 검색 등등 여러가지 기능을 제공합니다. 이러한 액션은 플러그인 방식으로 다른 기능을 손쉽게 확장할 수 있게 하여 위키의 풍부한 기능을 가능하게 만들어주고, 일부 액션은 페이지의 내용과 상관 없는 기능을 제공하기도 합니다. (페이지 지우기 기능은 DeletePage 혹은 페이지 이름을 바꿔주는 RenamePage 기능)
이러한 기능은 시스템에 설치하거나 일부 기능을 비활성화 시키는 것이 가능하며, 확장을 통해 새로운 기능을 넣을 수도 있습니다. (자세한 내용은 HelpForDevelopers를 통해 참조하세요)
다음의 내용은 모니위키에서 기본적으로 제공되는 액션이며, 아래에 기술된 액션의 일부는 시스템에 따라서 비활성화 되어 사용할 수 없을 수도 있습니다.
* `!UploadFile`: 파일 업로드 UploadFile 페이지를 참조하세요.
* `!DeletePage`: 파일 지우기 - 하단에 파일 지우기 액션 메뉴가 있는 경우가 있습니다. 이 액션을 누르면 페이지의 최종 백업본이 지워지지만 페이지의 역사는 계속 남아있으므로 (시스템 관리자가 이것을 지우지 않는 이상) 언제든지 복구할 수 있습니다. 일부 위키에서는 지우기가 활성화 되어 있지만, 모니위키에서는 기본적으로 관리자만이 페이지를 지울 수 있도록 설정되어 있습니다.
* `!LikePages`: 비슷한 이름을 가지는 페이지 목록을 찾아줍니다. 영문의 경우 적절히 잘라내어 앞/뒤 단어별로 검색해주며, 한글일 경우에는 앞/뒤 한글자 이상을 잘라내어 비슷한 파일 이름이 있는지 찾아줍니다.
다음의 액션 목록은 기본적 기능으로 사용자에게 특별히 노출되지는 않지만 '''내부적'''으로 상단/하단의 메뉴에서 사용되는 거의 기본적인 액션 목록입니다.
* `diff`: 페이지 바뀐점 보기
* `print`: 페이지를 프린트 뷰로 보기. 상단과 하단의 메뉴가 나오지 않고 콘텐츠를 위주로 나옵니다.
* `revert`: 구 버전의 페이지로 되돌리기 위한 액션 (모니위키 1.1.3부터 지원)
* `titleindex`: 페이지 목록을 텍스트로 보내거나 (Self:?action=titleindex) XML로 (Self:?action=titleindex&mimetype=text/xml'''''') 보내기; MeatBall:MetaWiki 를 사용할 목적으로 쓰임.
* `fullsearch`: `FullSearch` 매크로와 함께 사용되는 전체 페이지 검색 액션
* `titlesearch`: `TitleSeach` 매크로와 함께 사용되는 제목 검색용 액션
* `bookmark`: RecentChanges 페이지에서 북마크 기능을 지원하는 액션. 북마크를 하게되면 그 시점이 보존되며, 그 시점에서 새로 갱신된 페이지를 보다 손쉽게 알 수 있게 해줍니다.
* `raw`: 페이지의 소스(raw)를 텍스트로 그대로 보여주는 액션. 위키 문법을 볼 수 있게 해준다.
* `rss_rc`: RecentChanges를 RSS로 보여주는 액션.
- JavaStudy2002/영동-2주차 . . . . 28 matches
* 벽에 부딪히면 통과하여 반대쪽으로 나오는 것이 아니라 그냥 그자리에 있는 걸로 해놨습니다.
* 상욱이의 지적에 따라 하나의 클래스에서 모든 걸 처리하지 않고 클래스를 여러개로 분리했습니다.
if(way==0)//북
if(x>0)
else if(way==1)//북동
if(x>0 && y<4)
else if(way==2)//동
if(y<4)
else if(way==3)//남동
if(y<4 && x<4)
else if(way==4)//남
if(x<4)
else if(way==5)//남서
if(y>0 && x<4)
else if(way==6)//서
if(y>0)
else if(way==7)//북서
if(y>0 && x>0)
if(aboard.board[x][y]==0)
--->확실히 빨리 배열로 테이블(?) 만들어 놓는 걸 해봐야겠습니다. --영동
- KnowledgeManagement . . . . 28 matches
* 기술에 초점을 맞춘 것으로서 이상적으로 지식 공유와 성장 및 기술을 향상 시킨다.
* 사람들이 서로 지식 교환을 돕는것에 초점을 맞춘다.
* 지식 프로세스를 용이하게 하기 위해서 조직에게 필요한 것은? 어떠한 조직이 어떠한 프로세스에서 가장 잘 지식 관리를 할수 있나? 에 초첨.
* 무언의 지식은 잠재 의식에 있거나 내면화된 지식 그리고 각 개인이 스스로 알고 있다고 인지할 수 없거나 스스로 어떠한 특정한 결과를 성취했다고 알지 못하는 지식이다.
* 명시적인 지식은 개인이 명시적으로 알고 있고, 의식적으로 내면에 지니고 있는 지식으로서 다른 사람과 교류할 수 있다.
* Nonaka 와 Takeuchi 는 성공적인 KM program 은 지식의 공유를 위해서 내면화된 무언의 지식을 명시적으로 체계화된 지식으로 바꿀 필요가 있다고 얘기한다. 그리고 또한 반대의 경우도 개인이나 그룹에게 있어서 KM 시스템에서 한번 추출한 지식을 내면화 하고 의미있게 체계화 하기 위해서 필요하다고 이야기 한다.
* 세번째 지식의 종류는 embedded knowledge 이다. 이것은 물리적인 사물에 비 명시적인 방법으로 내재되어 있는 지식이다. 예를 들어서 알려지지 않은 장치의 모양과 특성은 그 기계가 어떻게 사용되어지는지 이해하는지에 대한 핵심 요소를 포함하고 있다.
* 지식은 지식 관련된 활동에 대해서 이전, 진행, 완료후등 3가지 상태로 접근 할 수 있다.
* 예를 들어서 조직을 위해서 새로운 프로젝트에 착수하는 개인은 이전에 비슷한 프로젝트에서 배웠던 교훈이나 지식에 접근하려고 할 것이다. 현재 처리하고 있는 문제에 관련된 정보를 얻기 위해서 프로젝트 중에 관련된 정보에 접근하고, 프로젝트를 마치고 추후 프로젝트에서도 필요하게 될 정보를 남기기 위해서 관련된 정보에 접근하게 될 것이다. 지식 관리를 행하는 사람은 시스템, 저장소, 협동 프로세스를 제공하여 이러한 활동을 촉직 한다.
* 지식은 프로젝트 하기 전에 포착되고 기록되어 질 수 있다. 예를 들어서 초기 프로젝트 분석에서 프로젝트 팀은 정보와 레슨을 배운다. 그리고 프로젝트 진행중에 배우게 되는 레슨도 기록되어 질 수 있고, 프로젝트 후에 남겨진 리뷰는 추후에 해당 지식에 접근할때에 더 나은 통찰력을 제공해줄 수 있다.
* 지식 저장소에서 지식을 넣고 가져오는 한가지 대체적인 전략은 각 개인이 자신의 지식 요구에 따라 ad hoc 기반으로 접근 하는 것이다. 이 방법의 장점은 각 개인에게서 오는 응답의 내용과 제시된 문제에 대한 해결책이 풍부하고 그것을 제시하는 개인에게 특화될 수 있다는 점이다.
- OptimizeCompile . . . . 28 matches
현재 프로세서의 속도는 [무어의 법칙]에 따라 극한으로 속도가 증가하고 있다. 이러한 상황에서는 예전처럼 [CPU] 의 속도 에 프로그램의 실행속도가 크게 영향 받지는 않으므로, 컴파일러의 최적화 작업도 더이상 연산(computation)을 줄이는 것 만이 목적이 되는 것이 아니라, 좀 더 메모리 계층구조를 효율적으로 사용하는 것에 관심이 기울여지게 된다.
프로그램(translation unit)은 진행방향이 분기에 의해 변하지 않는 부분의 집합인 basic block 들로 나눌 수 있는데 이 각각의 block 에 대하여 최적화 하는 것을 local optimization 이라 하고, 둘 이상의 block 에 대하여, 혹은 프로그램 전체를 총괄하는 부분에 대하여 최적화 하는 것을 global optimization 이라고 한다.
모든 최적화 작업은 시간 효율에 대하여, 혹은 공간 효율에 대하여 최적화를 하게 되는데, 밑의 각 섹션에 따라 분리 할 수 있다. 이 작업들은 서로 상호 보완적으로 이루어지거나 혹은 상호 배제적으로 이루어 질 수 있다. (e.g. latency 를 줄일 경우 코드 길이가 길어지거나 복잡도가 증가할 수 있다.)
변수가 값을 할당 받아서, 다시 새로운 값으로 할당 받기 전까지, 그 변수는 일종의 constant 라고 볼 수 있다. 컴파일러는 이를 감지해서 최적화를 수행하게 된다.
연산에서 두개 이상의 constant 들은, 미리 계산되어 하나의 constant 값으로 바꿀 수 있다. 위의 예에 적용하자면
컴파일러는 constant propagation 과 constant folding 을 반복하여 수행한다. 각각 서로의 가능성을 만들어 줄 수 있으므로, 더이상 진행 할 수 없을 때까지 진행한다.
컴퓨터가 할 수 있는 연산 들은 각각 그 연산이 수행되는데 걸리는 시간의 차이가 있다. 연산에 복잡도에 의해서 이루어지는 현상인데, 극단적인 예를 들자면, shift 연산은 보통 2 클럭에 처리되는 반면에, 나누기 연산의 경우 80-90 클럭을 소모하게 된다.(i8088자료) 이런 연산에 대한 computation time 의 차이를 줄이는 최적화 방법을 strength reduction 이라고 한다.
와 같은 문장이 있을때, 나누기 연산은 곱하기 연산보다 좀더 많은 시간을 소요하므로 컴파일러는
으로 바꿀 수 있다.
배열의 참조 연산 또한 좋은 예가 될 수 있다. a[i] 와 같은 표현식에서 a[i]의 주소는 배열 a 의 시작주소로부터 a의 타입 크기 * i 만큼 떨어진 곳이 된다.
와 같은 코드에서 a[i] 의 주소는 루프가 진행됨에 따라 계속 evaluate 된다. 그럼 a + (i * 8) 이 매번 반복되게 된다. 이러한 연산은 단순히 루프가 진행되며 a 의 주소에 8 씩을 더해주는 것으로 해결될 수 있다.
'''Algebraic simplification'''
수학적으로 같은 값을 가지는 수로 대치하는 것이 바로 algebraic simplification 이다.
- OurMajorLangIsCAndCPlusPlus/print/김상섭 . . . . 28 matches
if(strlen(buffer) < sort)
if(i != num -1)
else
if(strlen(temp) < sort)
if(i != num -1)
else
if(sign)
if(i != num -1)
else
if(*list =='%')
if(isdigit(*++list))
else
if(*++list == 'd')
else if(*list == 's')
else if(*list == 'f')
else if(*list == '@')
if(*++list == 'd')
else if(*list == 's')
else if(*list == 'f')
else if(*list == '\n')
- TheJavaMan/숫자야구 . . . . 28 matches
여기까지 하고 끝내기로 했습니다.
|| 틀 만들기 || 1/13일 4시 || 7피 || 끝냄||
|| 사용자 입력 받기 - 겹치지 않는 숫자 ||. ||. || 끝냄 ||
|| 확인 버튼 누를 때 동작 ||. ||. || 끝냄 ||
|| 확인 버튼 누를 때 리스트에서 결과 표시 ||. ||. || 끝냄||
|| 리스트에 스크롤바 달기 ||. ||. ||자동으로 생김||
|| 포기 버튼 누를 때 동작 - 답 알려주고, 새 게임 시작 ||. ||. ||끝냄||
|| 크기 조절 ||. ||. || 끝냄 ||
|| 입력 제대로 하지 않을때 처리하기 ||. ||. ||. ||
|| 스크롤 같이 내려가기 ||. ||. ||끝냄||
|| 시작할 때 포커스를 텍스트필드에 맞추기 ||. ||. ||끝냄||
|| 하이스코어 - 물어본 횟수가 적은 순으로 ||. ||. ||. ||
public class BBGameFrame extends Frame implements WindowListener{
public void windowIconified(WindowEvent e) { }
public void windowDeiconified(WindowEvent e) { }
if ( correct_answer.compareTo(aStr) == 0)
if ( correct_answer.charAt(i) == aStr.charAt(i))
else
if ( correct_answer.charAt(i) == aStr.charAt(j))
if ( strike == ball & ball == 0)
- callusedHand/books . . . . 28 matches
저는 오픈 소스 진영을 좋아하며 그 곳에서 많은 도움을 얻고 있는 입장입니다. 하지만 무조건적으로 오픈 소스 개발 방식을 옹호하는 것은 아닙니다. 공개 소스 방식의 소프트웨어 개발이 보완해야 할 부분과 함께 단점이라고 여겨지고 있는 부분들에 대한 나름대로의 반론을 펼치고자 합니다.
공개 소스 방식의 개발은 많은 개발자들의 자발적인 참여를 이끌어낼 수 있습니다. 그렇기 때문에 낭비라고 볼 수 있는 많은 동류의 소프트웨어 개발, 무수히 많은 패치들, 중복된 작업들이 존재합니다. 그리고 이런 양상은 혼란스러워 보입니다. 하지만 이것을 더 나은 소프트웨어를 개발하기 위한 과정이라고 보는 것이 타당할 듯 합니다. 소프트웨어 산업에도 약육강식, 적자생존의 법칙이 적용됩니다. 엔드 유저가 찾고 엔드 유저의 눈에 보이는 것은 경쟁 속에서 살아남은 몇 가지 소프트웨어입니다. 그리고 개발자들의 자발적인 참여는 성당 개발 방식에서 개발자들을 기계화하는 것과는 다릅니다. 참여 개발자라면 적어도 그 프로그램에 대한 관심, 열정을 가지고 있으며 이는 자율이라는 점에서 더욱 힘을 얻어 개발자는 개발에 열중하게 될 것입니다. 이럴때 개인의 창의력, 프로그래밍 능력이 극대화될 수 있을 겁니다.
저는 개발자의 필요에 의해 소프트웨어 개발이 진행되기 때문에 정작 엔드 유저가 필요로 하는 프로그램이 적다는 말에 반대합니다. 개발자도 사용자입니다. 개발자는 컴퓨터를 개발의 도구로만 보지 않습니다. 채팅방에서 시시콜콜한 대화를 나눌 수도 있고, 음악을 듣거나 영화를 볼 수도 있습니다. 바로 이러한 입장에서 개발의 필요가 나타나는 것입니다. 그리고 소비자의 필요와 동 떨어진, 컴퓨터 과학에 치우친 개발이라고 해도 이것은 컴퓨터 산업에 힘을 실어주기 마련입니다. 미분, 적분과 같은 실생활과 관계가 없을 것 같은 이론이 오늘날 여러 산업 분야에 큰 토대가 되고 있지 않습니까?
오픈 소스 방식의 개발을 무료 프로그램 개발로 여기는 것은 잘못된 생각입니다. 오픈 소스방식의 개발은 단지 소프트웨어 개발론 중 하나일 뿐입니다. 시장에 내다팔 상품을 오픈 소스 개발 방식으로 만들어 낼 수도 있습니다. . 오픈 소스 방식의 개발을 통해서도 얼마든지 수익을 창출할 수 있으며 근래의 리눅스 업체들이 이를 뒷받침해 주고 있습니다. 왜 독점적 소프트웨어를 가지고 돈을 버는 것보다 불리하다고 생각합니까? 레드햇의 로버트 영의 말을 유심히 들어볼 필요가 있습니다. “대부분의 산업 국가에서는 그냥 수도꼭지만 틀면 물을 마실 수 있는데 어떻게 에비앙이 수백만 달러의 물을 이 시장에 팔 수 있는가? 간단히 말하자면 에비앙이라는 브랜드는 믿으면서 여러분의 수도꼭지의 물은 믿을 수 없다는 불합리한 두려움 때문이라고 할 수 있다. 바로 이점이 비공식 레드햇 리눅스 복사본을 쓰지 않고 50달러짜리 공식 레드햇 리눅스를 많은 사람들이 선호하는 이유이다. 케찹은 향료를 가미한 토마토 튜브에 불과하다. 여러분은 토마토, 식초와 같은 자유롭게 배포할 수 있는 물건들로 부엌에서 케찹을 만들 수 있다. 하지만 소비자는 왜 부엌에서 케찹을 만들고 있지 않으며 하인즈는 어떻게 해서 케찹 시장의 80%이상을 점유하고 있는가? 편리함은 원인의 일부분 뿐이며 진정한 원인은 하인즈가 소비자의 마음 속에 케찹의 맛을 정의할 수 있었기 때문이다. 이제는 하인즈 케찹의 브랜드가 큰 영향력을 가지고 있기 때문에 소비자인 우리는 하인즈 케찹이 더 좋다고 생각해 버린다.”
프로그램에 치명적인 버그가 있을 때 책임지고 고쳐 줄 사람이 없기 때문에 오픈 소스 개발 방식은 위험하다는 주장도 오픈 소스 개발 방식에 대한 오해에서 비롯된 것이라고 생각합니다. 위에서 말했지만 오픈 소스 개발 방식은 수많은 소프트웨어 개발 방법 중 하나 일 뿐입니다. 기존의 많은 오픈 소스 프로젝트가 개발자들의 취미, 재미라는 동기에서 비롯되었기 때문에 사후 관리가 미미하고 개발자들이 개발을 포기하는 경우 엔드 유저는 피해를 볼 수 밖에 없었던 것입니다.
오픈 소스 개발 방식에서 개선해야 할 부분도 있다고 생각합니다. 소프트웨어 공학 공정을 오픈 소스 개발 방식과 비교해 봄으로써 많은 것을 얻을 수 있다고 생각합니다.
소프트웨어 공학이란 최소의 경비로 품질 높은 소프트웨어를 개발, 유지보수하기 위한 방법론에 관한 학문입니다. 프로그램을 구현하는 단순한 작업 이상의 다양한 측면을 기지고 있으며 이는 일반적으로 요구 사항 분석, 시스템 디자인, 세부 디자인, 구현, 통합, 필드 테스트, 사후 지원과 같은 공정을 거칩니다. 소프트웨어 공학과 오픈 소스 개발 방식을 비교해 볼 때 오픈 소스 개발 방식이 갖는 문제점을 찾을 수 있습니다.
요구 사항 분석, 시스템 디자인, 세부 디자인 과정이 구체적으로 진행되지 않거나 문서화가 이루어 지고 있지않는 점입니다. 이는 프로그램의 유지보수, 재사용 측면에서 볼 때 심각한 문제로 한 프로그램을 개선시키고자 하는 개발자가 있을 때 디자인에 관한 문서가 없으면 많은 시행 착오를 겪을 수 밖에 없으며. 좋은 코드들이 그냥 버려지게 되는 경우가 많아 집니다. 이것들은 분명히 낭비라고 볼 수 있습니다. 그러므로 문서화 할 필요가 있습니다.
- html5/canvas . . . . 28 matches
* IE를 제외한 모든 주요 브라우저(?)에서 사용할 수 있는 기능. IE에서 사용하고 싶으면 Explorer Canvas, uuCanfas.js 등의 라이브러리를 사용하여 제한적 기능으로 사용할 수 있다.
* canvas위에 그림을 그리려면 Javascript로 그리기 컨텍스트를 생성해야한다.
* 색으로 채운 사각형을 그릴 수 있다.
* video 요소의 DOM 객체를 사용할 경우 drawImage()를 호출한 시점에서 재생되는 프레임을 그려준다.
* 이미지를 원래 크기로 삽입할 수 있다.
1. beginPath()로 그리기 시작.
* 여기서 그린 패스는 아직 그래픽으로 표시되지 않음.
* 패스를 선으로 표현한다.
* 선의 스타일은 strokeStyle 속성으로 지정한다.
* 호출시 패스가 닫히지 않았더라도 자동으로 닫힌 상태로 만든다.
* 내부 스타일은 fillStyle 속성으로 지정한다.
* 패스의 내부를 클리핑 영역으로 지정한다.
* 새로운 도형이 기존 이미지와 겹칠때의 행동을 지정하는 속성이다.
* 글꼴, 크기, 가로 방향 정렬 위치, 세로 방향 정렬위치를 지정하여 텍스트를 삽입할 수 있다.
* save()로 저장한 상태는 스택에 쌓이고 restore()를 호출할때마다 스택의 탑에서부터 상태를 불러온다.
== 픽셀로 그리기 ==
* ImageData형 객체를 생성하여 캔버스 위의 비트맵 이미지를 픽셀 단위로 조작할 수 있다.
* 픽셀 데이터를 나타내는 숫자(0~255)로 이루어진 1차원 배열.
* 배열은 4개의 값이 한묶음으로 1픽셀이 가진 정보(R, G, B, Alpha)를 나타낸다.
== 이미지를 URL로 얻기 ==
- 겨울과프로젝트 . . . . 28 matches
= 겨울과 프로젝트 =
04년도 마지막 프로젝트 큰 마당~ 으헤헤헤~
* 제로페이지 회칙에따라 2주에 한번씩 모이는 정모를 기준으로 겨울방학 12월 조금과 2개월을 5개의 마당으로 나눈다.
* 마당을 굳이 나누는 이유는 너무 방만한 시간관리가 이루어지는 경우도 있기 때문이다.
* 지나치게 모이지 않는다면 프로젝트에 대한 커뮤니케이션에 지장이 생길지도 모르니 단위별로 적어도 일주에 한번씩은 모임이 있었으면 좋겠습니다. 참고해 주십시요. ( 정기적인 모임은 정모와 겹쳐도 상관없습니다. )
* 아마 실제적으로 프로젝트가 진행되는 마당은 3번의 마당 한달반 가량 될듯 싶습니다. 연말, 설, 오티, 크리스마스 까지 있어 지장이 많을듯.
* XpWeek가 진행되며 방학을 즐기며 술독에 빠져 사는 경우가 많음으로 프로젝트 참가자를 받고, 프로젝트 진행을 위한 사전 준비를 한다. ( 학습방법, 교재, 모임주기, 기타등등 )
* 12월 27일(월) 프로젝트 구성에 대해서 이야기하려 합니다.
* 1월 중순에 만나 서로의 경과 상황을 주제로 정모를 한다.(날짜는 아직 미정)
* 1월 말에 만나 서로의 경과 상황을 주제로 정모를 한다.(날짜는 아직 미정)
* 게다가 실제적으로는 이 정모 때에 마무리를 해야 될듯 싶습니다.
* 이 이후에는 신학기 준비, 이사, OT후유증 기타등등으로 약간은 스터디 진행이 어려워 지지 않을까 생각합니다.
* 제대로 된다면 뒷풀이도 있지 않을까요??
== 참가 프로젝트 ==
[AOI/2004] : 대회 문제들로 프로그램 내공을 길러본다.
생각나는대로 써놓았습니다. 프로젝트 명과 내용 수정해 주세요~ >__<ㅋ - [이승한]
[2004년활동지도],[프로젝트분류]
- 기본데이터베이스/조현태 . . . . 28 matches
선형 리스트로 데이터베이스 구축 -> 자료구조를 배열을 사용하세요~ 로 이해....OTL
그많은 자료구조중에서 왜 배열이냐고오..ㅠ.ㅜ 막강한 메모리 낭비와 오버플로우의 한계를 느끼고 싶은 것인가아..;;ㅁ;;
동적 할당이나 트리구조로 좀더 이쁘게 만들 수 있었으나.. 시키는 대로 해야지 뭐..ㅠ.ㅜ
그래서 작성. 결과는 아래와 같으며 심지어 id역시 문자열로 처리해서 맘껏 적어 넣을 수 있다.
그결과 자료역시 일반적으로 시간순서대로 저장하기때문에 검색속도는 평범..OTL
const char menu[MAX_MENU][20]={"insert","modify","delete","undelete","search","list","quit","?"};
void function_insert();void function_modify();void function_delete();void function_undelete();void function_search();void function_list();void function_quit();void function_help();
void modify_data(int);
void (*functions[MAX_MENU])(void)={function_insert,function_modify,function_delete,function_undelete,function_search,function_list,function_quit,function_help};
if (QUIT==selected_number)
if (0==strcmp(temp_input,menu[i]))
if (MAX_DATA_SIZE==how_many_data)
else
modify_data(how_many_data);
void function_modify()
if (FALSE!=target)
modify_data(target);
if (FALSE!=target)
if (-1==prv_del)
else
- 김희성/MTFREADER . . . . 28 matches
if(!GetLastError())
else
void MakeBinaryFile(char* filename); //MFT를 Binary 그대로 저장한다.
void MakeTextFile(char* filename, long flag); //MFT 속성을 text 파일로 저장.
if(!$MFT)
if( *((char*)$MFT+j*boot_block.BytesPerSector-2)==
point=*((unsigned short*)((unsigned char*)$MFT+20));//Offset으로 포인터 이동
if(*((unsigned char*)$MFT+point+8))
else
if(!MFT)
if(sub_mask&flag && *(long*)point==0x10*i)
if(*((unsigned char*)point+8))
if(*((unsigned __int64*)((unsigned char*)point+40)))
else
if(offset)
else
if(!offset)
if(!((*(long*)point)&0xFFFFFF00))
if(*((unsigned char*)point+8))
if(*(long*)((unsigned char*)point+4))
- 문자반대출력/허아영 . . . . 28 matches
한글문자열을 반대로 출력하는 알고리즘이 떠오르지 않는다.
원시적인 방법으로 했다.
choiceNum을 영어, 한글, 문자로 세분화 하려고 했으니 일단은 저렇게 코딩.
영어문자열만 실행되는 프로그램
/*파일에서 입력받은 문자열을 반대로 출력하는 프로그램*/
{{{~cpp /*파일에서 입력받은 문자열을 반대로 출력하는 프로그램 ver.2*/
if('A'<= ch[i] && ch[i] <='z')
}else
==== C++ 로 ====
한글로된 문자열을 입력 했을 때 다른 결과가 나온다. 예를들어 최경현 이란 문자를 입력하면 置麗零 이렇게 나와 .... 내가 만든거도 이렇게 나온다 마찬가지 ..ㅠ.ㅠ --[최경현]
좋은 발견입니다. 한글 한 글자는 알파벳(1바이트)과 달리 2바이트입니다. 따라서 위 코드와 같이 해주면 영어와 같은 알파벳은 거꾸로 출력되지만 한글은 아예 문자열이 바뀌게 됩니다. 한글같은 2바이트 확장문자도 반대로 출력되게 구현을 한번 해보세요. - 보창
비베에서는 한글이나 일본어처럼 2바이트를 사용하는 글자의 경우 알아서-_- 판단하고 한 글자 단위로 읽는 함수가 있긴 한데 씨에서는 알파벳과 같은 1바이트 문자인지 아니면 2바이트 문자인지를 어떻게 구분해야 할까요? -태훈 [zyint]
ascii code를 봐서 MSB ( most significant bit)가 1 이면 아마.. 2바이트문자일 겁니다.. - 임인택
한글로 해봤었는데, 이 프로그램은 영어만 되나, 하고 생각했었습니다. MSB를 이용하면 되겠군요. MSB에 대한 자세한 설명이 필요합니다. --아영
MSB는 비트로 표현된 값에서 가장 중요한 요인이 되는 값을 말합니다. 가령 10001000 이라는 값이 있을때 가장 왼쪽에 있는 1이 MSB입니다. 마찬가지로 가장 왼쪽에 있는 0을 LSB (Least Significant Bit)라고 합니다. 지금 설명드린 내용은 BigEndian Machine 의 경우, 즉, 비트를 왼쪽에서 오른쪽으로 읽는 아키텍처에서의 MSB, LSB를 설명드린 것이고, LittleEndian (비트를 오른쪽에서 왼쪽으로 읽는) 아키텍처에서는 LSB와 MSB가 바뀌어야겠죠. 현대의 거의 모든 아키텍처에서 영문은 ascii 코드로 표현합니다. ascii코드의 값은 0~127인데 이를 8비트 2의 보수를 사용해서 표현하면 MSB가 모두 0 이 됩니다. 이 경우에는 해당 문자가 1바이트의 문자란 것을 뜻하고, MSB가 1인 경우에는 뒤에 부가적인 정보가 더 온다 (죽, 이 문자는 2바이트 문자이다)라는 것을 말합니다.
- 새싹교실/2012/강력반 . . . . 28 matches
새로만들기 - win32 콘솔 프로젝트(빈프로젝트에 체크)
대입연산자 = 좌에서 우로 대입
char - 1바이트의 문자 - 숫자로 문자를 표현(아스키코드)
bool - 0과 1로 T/F - 컴퓨터는 0은 거짓 나머지는 참
&를 쓰는 이유는 나중에 자세히 설며하기로 함
5.if와 else, switch
상황에 따라 프로그램을 다 만들기 귀찮으므로 사용
switch(a) a는 정수나 문자만 가능(문자는 아스키코드로 정수이므로)
* 설유환 - printf함수, scanf함수, if문, else if문, switch 제어문을 배웠다. 특히 double, int, float의 차이를 확실히 배울 수 있었다. 잘이해안갔던 #include<stdio.h>의 의미, return 0;의 의미도 알수 있었다. 다음시간엔 간단한 알고리즘을 이용한 게임을 만들것같다. 그리고 printf("숫자%lf",input);처럼 숫자를 이용해 소숫점 표현량을 제한하여 더 이쁘게 출력하는법도 배웠다.
* 장재영 - printf와 scanf. swtich, if else if등을 배웠고 수업시간에 배운것 말고 새로운 이론도 배웠다 그래도 이론수업보다는 실습시간이 더 재밌다. 다음시간에는 반복문에 대해서 배우고 실습해 볼 것이다. 아픙로 수업시간에 듣는것 말고도 다른 것도 좀 배워보면 조헥ㅆ다. 이해가 안가는 이론을 한번더 들을 수 있어서 수업과정을 이해하는 데도 도움이 많이 되었다. 또 적은 수의 사람이 모여서 하기 때문에 프로그래밍할때 이해가 안되는 부분을 더 자세히 들을 수 있어서 이해하는데 도움이 되었다.
* 황현제 - 우선 c언어에서 쓰이는 기본적인 연산자가 무엇이 있는지에 대해서 배웠다. 또한 함수 4가지에 대해서 배웠는데, printf, scanf,switch, if에 대해서 배웠고 그리고 새싹강사님께 C를 이용해 작성하신 프로그램을 구경하기도 했는데, C로 이런것도 할 수 있다는 것을 알았다. 새싹 강사님께서 우선적으로 설명을 해주신다음 새싹들이 실습하는 방식으로 수업이 진행됬는데, 옆에서 강사님이 지속적인 피드백을 해주셔서 이해하기가 편했다. 다음에는 반복문에 대해서 배우고, 실습도 해봐야겠다.
실습으로 구구단 및 별찍기
- 송지원 . . . . 28 matches
* 성경 中 창세기전에서 아담의 아들인 카인의 아들로 나오는 인물. (= 아담의 손자)
* 어감이 좋아서 닉네임으로 정한것 뿐 성경 속 인물에 대한 개인적인 애착은 없다.
* 재수하라는 아버지의 권유를 뿌리치고 중앙대 컴공에 예비 2차, 06학번으로 들어왔다.
* 2008년 : 일본으로 도망갔다 일본어 기초만 배우고 옴 // '''이 해에 ZP 활동은 제일 열심히 했다.'''
* 2010년 : 상반기엔 방글라데시 봉사활동 준비 및 파견, 하반기엔 미국 캘리포니아 UCR로 교환학생
* 2011년 : IBM Campus Wizard 8기 활동, 2011-1학기 튜터링 프로그램에서 Tutor로 참여. ZeroPage 20주년 성년식 기획단 참여.
* 2017년 : ~~LG 탈출~~ eBay Korea로 이직. G마켓/옥션/G9하나 했는데 셋 다 아니고 물류 쪽을 하게 되었습니다. Fulfillment팀
== 프로젝트/세미나 ==
* [데블스캠프2011] - Staff로 참여, 월~금 All 참여
* [데블스캠프2011/첫째날/개발자는무엇으로사는가]
* 프로그래밍 - 개인 코드
* [데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/송지원]
월요일 스크래치([데블스캠프2009/월요일/Scratch])를 주제로 세미나 진행.
수요일 Simple Java & JUnit Test([데블스캠프2009/수요일/JUnit])를 주제로 세미나 진행.
* [2009새싹스터디] - 선생도 강사도 모두 여학우라 '아름이반'으로 활동.
php, mysql로 주소록 관리하고자 진행. 승한오빠와 진행함. 로그인을 제외하고 완성.
정현오빠, 대원오빠, 규현오빠, 지훈이 이렇게 넷이서 10월에 있을 공모전을 목표로 진행한 프로젝트.
나는 DB쪽을 맡았었는데 Java와 mysql을 연동하는 방법까지만 하고 프로젝트 자체가 흐지부지 됨.
그래도 이 mysql&Java 연동을 OOP 프로젝트에 잘 써먹었습니다.
* [PC실관리프로그램]
- 중앙도서관 . . . . 28 matches
나는 우리학교 도서관에 아마존 스타일의 시스템(많이도 말고, 도서별 리뷰 등록, 별표 평가, 고객 클러스터링을 통한 서적 추천, 도서별 대출/검색 횟수를 통한 베스트셀러 집계 및 이에 대한 통계 분석 -- 예컨대 공대 학생의 베스트셀러, 경영학과의 베스트셀러, 4학년의 베스트셀러 등 -- 같은 것만이라도) 을 도입하면 학생들의 독서량이 두 배는 높아질 것이라고 확신하며, 이것이 다른 곳(정문 바꾸기 등)에 돈을 쓰는 것 몇 십 배의 가치를 지속적으로 만들어 낼 것이라 믿는다. 이제는 도서관도 인터넷 서점을 벤치마킹 해야 한다.
지금 도서관의 온라인 시스템은 상당히 오래된 레거시 코드와 아키텍춰를 거의 그대로 사용하면서 프론트엔드만 웹(CGI)으로 옮긴 것으로 보인다. 만약 완전한 리스트럭춰링 작업을 한다면 얼마나 걸릴까? 나는 커스터머나 도메인 전문가(도서관 사서, 학생)를 포함한 6-8명의 정예 요원으로 약 5 개월의 기간이면 데이타 마이그레이션을 포함, 새로운 시스템으로 옮길 수 있다고 본다. 우리과에서 이 프로젝트를 하면 좋을텐데 하는 바램도 있다(하지만 학생의 사정상 힘들 것이다 -- 만약 풀타임으로 전념하지 못하면 기간은 훨씬 늘어날 것이다). 외국의 대학 -- 특히 실리콘벨리 부근 -- 에서는 SoftwareEngineeringClass에 근처 회사의 실제 커스터머를 데려와서 그 사람이 원하는 "진짜" 소프트웨어를 개발하는 실습을 시킨다. 실습 시간에 학부생과 대학원생이, 혹은 저학년과 고학년이 어울려서(대학원생이나 고학년이 어울리는 것이 아주 중요하다. see also NoSmok:SituatedLearning ) 일종의 프로토타입을 만드는 작업을 하면 좋을 것 같다. '''엄청나게''' 많은 것을 배우게 될 것이다. --JuNe
이런 프로젝트가 컴공과 학생에게 쉽게 떨어질리는 만무하다. 그래서 대부분은 디자인 단계에서 끝내게 된다. 유스케이스 몇개 그려보고 끝나는 것이다. 좀 더 용감하고 야망이 높은 사람들은 밑바닥부터 구축을 해나갈지도 모르겠다. 어찌 되었건 프로그래밍은 중요하다. 빌게이츠가 늘 하는 말이 "Code is the thing"이란다. 만약 프로그래밍을 직접 해보지 않고 끝내게 되면 자신이 배울 수 있는 엄청난 크기의 빙산을 그냥 지나치는 셈이다.
즉, 현재의 도서관 시스템을 일종의 웹서비스로 이용하는 것이다. 직접 CGI로 쿼리를 보내고 받아오는 HTML을 파싱해서 적절한 XML로 치환해주는 레이어를 만든다. 이렇게 하면 "일반적 도서관 랩퍼"를 만들 수 있다. 즉, 어느 도서관 시스템에든지 약간만 수정하면 적용할 수 있게 된다.
사용자는 이 랩퍼를 통해 로긴을 하고, 책 평가도 하고, 리뷰도 쓰고, 베스트셀러 검색도 하고, 대출 예약도 한다. 기존 시스템의 모집합이 되는 셈이다. (하지만 꼭 그럴 필요는 없다. 중요하고 자주 쓰이는 기능만 노출해도 충분하다)
일단 이걸 만든 사람들이 열심히 사용하다가, 우리과 사람들이 점점 더 쓰고, 나중엔 다른 과 학생들까지 쓰다보면, 혹시 모르잖는가. 정말 이런 시스템으로 도서관을 바꿀 생각을 정책입안자들이 하게 될지.
물론 현재도 저학년, 고학년이 함께 일하는 경우는 있다. 고학년이 예비역인 경우가 그렇다. 하지만 대부분의 경우, 저학년끼리, 고학년끼리 뭉치거나, 서로 섞인다고 해도 고학년은 방외자요, 관찰자로 남는다. 보다 명시적이고 적극적으로 저학년, 고학년 공동 학습을 장려할 필요가 있다. 우리는 교과과정이나 교육방법에 대한 스테레오타입에서 벗어나야 한다.
정말 많이 배우는 지름길은 자신의 삶 속에서 실현을 하는 것이다. 만약 XP를 정말 제대로 공부한다면 자신의 삶에도 그것이 영향을 미치지 않으면 안된다는 말이다. 아니 정말 그렇게 된다. 또, 그렇게 되도록 하면 정말 많은 것을 배우게 되고, 또 빨리 배울 수 있다. 마찬가지로 어떤 연습 프로젝트를 진행할지라도 자신의 삶에 의미가 있는 어떤 것을 우선적으로 택하는 것이 좋다. 날마다 게임을 하는 사람이라면 게임을 만들고, 날마다 게시판을 붙들고 글을 쓰는 사람이라면 게시판을 만든다.
- FromDuskTillDawn/변형진 . . . . 27 matches
출제된 문제에 나온 열차 시간표가 2번째 케이스에서 도착할 수 없게 되어 있어서, 시간표를 임의로 수정해서 테스트해보니... 잘 된다. :)
list($from, $to, $start, $end) = explode(" ", trim($ln[$k+$i+1]));
if(($start<18&&$start>6)||($end<18&&$end>6)||($start<=6&&$start>=$end)||($end>=18&&$end<=$start)) continue;
$this->train[$from][] = array("to"=>$to, "start"=>($start+6)%24, "end"=>($end+6)%24);
if($this->days) echo "Vladimir needs $this->days litre(s) of blood.<br>";
else echo "There is no route Vladimir can take.<br>";
if($city[$from]) return 0;
if($city[$next]) continue;
if($this->train[$from][$i][start]>=$start)
if($next==$to)
if($this->days>$days||!$this->days) $this->days = $days;
$today[$next] = min(($today[$next])?$today[$next]:0, $this->train[$from][$i][end]-12);
else $tomorrow[$next] = min(($tomorrow[$next])?$tomorrow[$next]:0, $this->train[$from][$i][end]-12);
foreach($today as $next => $end) $this->track($next, $to, $end+12, $days, $city);
foreach($tomorrow as $next => $end)
if($next==$to)
if($this->days>$days+1||!$this->days) $this->days = $days+1;
if($today[$next]) continue;
$this->track($next, $to, $end+12, $days+1, $city);
- Java2MicroEdition . . . . 27 matches
Java 2 Micro Edition (J2ME) 은 휴대전화나 PDA 같은 이동통신 기기등의 가전제품을 목표로 하고 있다. 그래서 초소형 장치에서 작은 장치에 이르는 이른바 소형 디바이스 들이 Java 를 사용할 수 있도록 지원하는 플랫폼이다.
* J2ME는 Configuration과 Profile로 구성되어 있다. (아래 "Configuration과 Profile" 참고)
실재로 CLDC와 MIDP가 포팅되어 있는 최신 휴대전화는 다음과 같은 구조를 이루고 있다.
그림을 보면 맨 아래에 MID, 즉 휴대전화의 하드웨어 부분이 있고 그 위에는 Native System Software가 존재하며 그 상위에 CLDC가, 그리고 MIDP에 대한 부분이 나오는데 이 부분을 살펴보면, MIDP Application과 OEM-Specific Classes로 나뉘어 있는 것을 알 수 있다. 여기서의 OEM-Specific Classes라는 것은 말 그대로 OEM(Original Equipment Manufacturing) 주문자의 상표로 상품을 제공하는 것이다. 즉, 다른 휴대전화에서는 사용할 수 없고, 자신의(같은 통신 회사의) 휴대전화에서만 독립적으로 수행될 수 있도록 제작된 Java또는 Native로 작성된 API이다. 이는 자신의(같은 통신 회사의) 휴대전화의 특성을 잘 나타내거나 또는 MIDP에서 제공하지 않는 특성화된 클래스 들로 이루어져 있다. 지금까지 나와있는 많은 MIDP API들에도 이런 예는 많이 보이고 있으며, 우리나라의 SK Telecom에서 제공하는 SK-VM에도 이런 SPEC을 가지고 휴대전화의 특성에 맞는 기능, 예를 들어 진동 기능이나, SMS를 컨트롤하는 기능 들을 구현하고 있다. 그림에서 보듯이 CLDC는 MIDP와 OEM-Specific Classes의 기본이 되고 있다.
퍼스널 자바와 임베디드 자바는 J2ME 플랫폼이 등장하기 이전부터 임베디드 시장을 목표로 한 자바 플랫폼이었다. 인터넷 셋탑 박스와 같은 나름대로의 성과도 있었지만, pJava와 eJava는 별로 시장의 주목을 받을 만한 사건을 기록한 적이 없었다. 그것은 기본적으로 선 마이크로시스템즈가 하드웨어 설계 및 제조와 관련해서는 그다지 내세울 만한 무기가 없었기 때문이었다고 해도 별 무리가 없을 것이다. 즉, 하드웨어 업체의 적극적인 지지 없이는 자바의 임베디드 시장 진출은 요원한 과제였다.
그리고, 수많은 소비자/임베디드 디바이스들에 공통적으로 적용할 수 있는 플랫폼을 개발한다는 것도 자체적으로 한계가 있었다. 다양한 하드웨어, 다양한 운영체제, 그리고 전혀 호환성 없는 유저 인터페이스까지, 이 모든 차이점을 극복하면서 기존의 J2SE 기반의 자바와의 호환성까지 유지할 수 있는 솔루션은 불가능하다는 문제인식이 있었다. 그래서 등장한 개념이 컨피규레이션과 프로파일로의 플랫폼 분할이다.
컨피규레이션이란 자바 가상머신과 코어 API들에 대한 명세를 의미하고, 프로파일은 그 상위의 클래스 라이브러리, 즉 표준 API 집합에 대한 명세를 의미한다. 이러한 개념적인 분할이 필요한 이유는 메모리와 CPU등의 크기와 성능이라는 측면에서의 요구사항이 동일한 디바이스들의 집합을 하나로 묶어서 컨피규레이션을 정의하고, 이러한 컨피규레이션을 바탕으로 각 디바이스들의 기능, 혹은 버티컬 시장의 요구사항에 맞추어 프로파일을 정의함으로써, 플랫폼의 통일성과 다양성을 동시에 만족시킬 수 있기 때문이다.
* J2ME를 기반으로 하는 에플리케이션 개발[[BR]]
- MoreMFC . . . . 27 matches
전자책을 가지고 있는 관계로, 원서 70000원, 한서 45000의 거금은 들필요가 없었음. [[BR]]
언제나 그렇듯, Window programming을 할때 처음 등장하는 예제는. Hello~ 시리즈다. 그 source를 통해 MFC프로그램에 첫발을 디딜것이며.. 요책에 나온 윈도우의 이모저모에 관해 설명할것이다. 뭐 .. 대충대충 해나갈 것이지만.. 그럼.. windows programming의 세계로. gogogo -- v [[BR]][[BR]]
dos 시절의 절차식 프로그램의 습관에 젖은 프로그래머를 위해 이책도 역시 아주잘 윈도우 프로그래밍이 어떻게 다른지 설명해 준다. 그러나, 그걸 다시 다 설명할 필요는 없고.. 떡하니 그림 한장이면 다 설명 될것 같다. 그럼.. image! [[BR]]
http://www.zeropage.org/~erunc0/study/mfc/WModel.gif
그리고, MFC를 하기전에 꼭 한번씩 나오는 SDK로 하는 windows programming. source. [[BR]]
MFC자체는 이런 WinMain이나 WndProc 는 감추지만 밑단에서 이런 식으로 돌아간다는 것을 조금이라도 알게 하기 위해서 포함. 무시해도 상관 없음. ㅋㅋ
// WM_QUIT message가 발생하면 GetMessage가 0을 반환하여 프로그램 종료.
EndPaint(hWnd, &ps);
// 그 책도 다시 한번 훌터 봐야 겠다. T-T 처음에 제대로 볼걸.. 다시 보게 되다니.. T-T
그럼 이제 이 책에서 처음 나오는 MFC programming source를.. 공개 한다. Dialog based로 프로젝트를 연후 Dialog에 관한 class는 project에서 뺀후 App클래스내에 이 source를 쳐주면 될것이다. - 신기 하게도 App class와 MainWindow클래스만 있다. 이런 source는 처음 봐서 생소 했지만, MFC에서 제공해주는 source보다는 깔끔해 보였다.-
// 프로그램을 초기화 할수 있는 가장 적절한 장소. --a
END_MESSAGE_MAP ()
떡하니 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]]
["프로젝트분류"]
- OurMajorLangIsCAndCPlusPlus/print/허준수 . . . . 27 matches
if(first[i] != '%' && first[i] != '@')
else if(first[i] == '%')
if(first[i] == 'd')
else if (first[i] == 's')
else if(first[i] == 'f') {
if(sign == 1) putchar('-');
if(decimal == 0) putchar('0');
else {
if(len < num_underBar) {
} else if(len >= num_underBar) {
else if(first[i] == '@') {
if(first[i] == 'd') {
if(x != index -1) putchar(',');
else if(first[i] == 's') {
if(y != index -1) putchar(',');
else if(first[i] == 'f') {
if(sign == 1) putchar('-');
if(decimal == 0) putchar('0');
if(z != index -1) putchar(',');
va_end(l);
- Plugin/Chrome/네이버사전 . . . . 27 matches
= 프로그램 목적 =
= 프로그램 일지 =
1. Tutorial (getstarted) with fileset(manifest.json,.js,.html)
1. manifest.json의 attribute.
크롬의 개발자 API주소는 지금 사이트 이전을 하고있는데 맨앞에 code가 developer로 이전하는것 같았다. 여튼 index의 주소는 다음과 같다.
'''Chrome브라우저에서 환경설정(우측상단에 렌치모양) -> 도구 -> 확장프로그램 -> 우측상단 개발자 모드 Check -> 압축해제된 확장프로그램 로드''' 를 하면 내 컴퓨터에 있는 플러그인 폴더 째로 올릴수 있다.
영어로 보는게 더 자세하지만 난 한국인이라. 간단히 말하자면 인터넷에서 자료를 주고받을때 그 자료형식을 정의하는 문서인데 javascript구문을 사용하는 파일이다. xml보다 web에서 효과적이기 때문에 web상에서 쓰인다고 한다. 좋은거 배우네.
Ajax는 비동기식으로 데이터를 주고받기 위해 (A는 Asyncronous) HTML과 CSS 동적 정보 표시를 위한 동적 언어와 DOM문서형 구조를 가진 XML, json만이 Ajax를 뜻하는 것이 아니라 이런 조합으로 이루어진 비동기 웹 어플리케이션 기법을 뜻한다.
* 따라하다가 실수한점 : manifest.json파일을 menifest.json이라 해서 update가 안됨. json정의할때 다음 element를 위해 , 를 붙여야하는데 안붙여서 에러. 그렇지만 나머지는 복붙해서 잘 가져옴.
req.send(null);
document.body.appendChild(img);
* manifest.json
"manifest_version": 2,
* window.open함수를 이용하여 body를 '''더블''' 클릭하면 새로운 팝업창을 띄운다.
* 위의 na-open_window는 임의로 만든 함수긴한데 status_bar나 기타 스크롤이 가능하지 않은 popup을 만들고 있다. 0은 false니까.
"default_popup": "popup.html" //이게 그냥 popup으로 되있었다. browser_action을 보니 default_popup을 해야지 action icon을 눌렀을때 popup이 뜬다.
"manifest_version": 2
* inline script를 cross script attack을 방지하기 위해 html과 contents를 분리 시킨다고 써있다. 이 규정에 따르면 inline으로 작성되어서 돌아가는 javascript는 모두 .js파일로 빼서 만들어야한다. {{{ <div OnClick="func()"> }}}와 같은 html 태그안의 inline 이벤트 attach도 안되기 때문에 document의 쿼리를 날리던가 element를 찾아서 document.addEventListener 함수를 통해 event를 받아 function이 연결되게 해야한다. 아 이거 힘드네. 라는 생각이 들었다.
* Chrome extention의 overview를 읽어보았는데 다양한 기능을 지원한다. 그중에 extention에서 기본으로 제공하는 background.html이라는것이 있는데 이것이 extention기능으로 넣어놓은 script를 모두 포함하고 메인 페이지 밑단에 background에서 계속돌아가면서 이벤트 체킹이나 데이타 처리를 해주는것 같았다. 아직도 정확히 모르겠다 - 2012/7/3
* 그래서.. 샘플코드를 찾고 permission을 찾다가 manifest.json파일에서 background를 설정하는것을 찾았다
- ProjectGaia/계획설계 . . . . 27 matches
우선 이번 우리 AP의 절대 조건을 알아보면,
3. 가변길이 레코드로 한다.
1. 페이지 ID등 일반적인 크기 단위를 Word로 하여 충분한 크기를 제공하고 속도를 보장받고자 하며,,
* 불필요할 것으로 판단되는 {{{~cpp NumberOfRecord}}} 값은 오버헤드차원에서 삭제처리하였고,,
또한 슬롯을 추가할 경우에 추가할 위치를 포인터로써 바로 접근 할 수 있을것임.
1. 어떤 레코드를 삽입/삭제/검색을 하고자 포인터를 찾고자 할 경우에..
* 삭제/검색시에 해당 포인터로 이동하여 세부수행
* 삽입의 경우.. {{{~cpp FreeSpace>Slot_Size+Record_Size}}}와 비교후에 수행
이에 마스터페이지(페이지들의 정보를 저장하고 있는 페이지)를 따로 선언해야만 한다.
키 순차화일 구현을 위한 프로세스
키 순차화일은 키 순서로 정렬된 화일을 말한다.(교재122p부터) 여기서 키는 primary key(첫번째 필드)가 된다.
unsorted 레코드를 sort하면서 page 단위 메모리에 적재를 하되, 이때 정렬 대상 레코드를 메모리에 모두 올려서 정렬하지 않고, memory size 10인 자연선택(교재155p)을 이용함. 여기서 memory size 10이라는 것은 10개의 레코드를 올릴 수 있는 공간을 말 하고, 가변 길이 레코드일 경우 실제 사이즈는 변할 수 있다. 자연선택 이후, m-원 다단계 합병(교재166p).
정렬된 레코드를 page(4KB) 단위로 입력, page에는 header와 slot이 차지하는 공간을 제외한 크기만큼 레코드를 저장할 수 있다. 레코드를 page에 입력할 때 비신장 가변길이 저장 방법을 사용, 입력될 레코드가 page의 남은 공간보다 클 경우 다음 page에 입력된다.
master page에 |②|①| 로 이루어져 있는 table을 둔다.
레코드는 무조건 화일의 끝에 삽입한다.
master page의 page 수를 읽고 가장 마지막 page로 간 다음, page header의 freespace size를 삽입 예정 레코드의 크기와 비교하여, 만약 해당 page에 충분한 공간이 있다면 그대로 추가 입력, 충분한 공간이 없다면 다음 page를 생성하고 넣어주는 비신장 가변길이 방법을 이용한다.
레코드 삭제는 검색→삭제의 두 과정으로 이루어진다.
레코드 교체는 검색→교체의 두 과정으로 이루어진다. 추가적인 아이디어.
이때 유의 사항으로는 새로 들어가는 레코드의 길이가 기존 레코드 보다 길 경우 공간이 부족하다는 것.
삽입, 삭제가 빈번하게 이루어질 경우, null flag에 의해 저장공간이 불필요하게 낭비될 것으로 예상됨.
- ProjectZephyrus/Thread . . . . 27 matches
* ''Database Connection Pool 을 사용하던 하지 않던, DB 자원을 얻어오는 부분을 하나의 end point에서 처리하세요. 처음부터 이를 고려하지 않을 경우, '''*.java''' 에서 Database Connection을 생성하고, 사용하는 코드를 머지않아 보게 될겁니다. 이는 정말 최악입니다. pool을 쓰다가 쓰지 않게 될 경우는?다시 pool을 써야 할 경우는? 더 좋은 방법은 interface를 잘 정의해서 사용하고, 실제 DB 작업을 하는 클래스는 Factory 를 통해 생성하는게 좋습니다. 어떤 방식으로 DB를 다루던 간에 위에서 보기엔 항상 같아야 하죠. --이선우 [[BR]]
* 제가 저번학기에 작업했던 메신져가 있습니다. 이번 프로젝트를 하면서 참고할 수 있는 부분을 참고하세요. 저번 학기에 정보처리 실습이란 과목에서 프로젝트로 했던 것입니다. UP 로 Process 를 진행했었고, 높은(?) 점수를 위해서 많은 문서를 남기긴 했는데.. 부족한 면이 많군요 ㅡ.ㅡ;; http://www.inazsoft.net/projectworktool.html 에서 다운로드 받을 수 있습니다. - 구근
Database 관련 부분 아니라 팀 프로젝트시 고려해야 할 사항은 꽤 됩니다. SuccessfulProject 를 위해서 고려해야 할 사항은 어떤게 있을까요? 자세한 내용은 차후 정리해서 쓰기로 하고, 하나 이야기 하고 싶은건 최대한 '''중복'''을 피하도록 하세요. 특히나, 한참 대화를 하지 않고 있다보면 같은 일을 하는 utility성 클래스들을 모두가 하나씩 지니고 있을겁니다.
가장 이상적인 상태는 예전 창준선배님이 세미나에서 이야기 했었던, '이러 이러한 라이브러리는 여기 있지 않을까 해서 봤더니 바로 그 자리에 있더라.' 하는 상태입니다. 그러면 최악은? '이러 이러한 라이브러리가 필요한데? 음.. 이쁘게 잘 만들어놓기는 귀찮고 에라 다음에 정리하지 뭐' 그리고는 해당 method들을 copy & paste. '''공통 모듈'''을 한곳에서 다루도록 하세요. 공통 모듈은 꽤 많습니다. logging, configuration, resource managing ,..
''혼자서 플밍할때에도 자주 발생하는.. ^^ 다른 프로그램들 플밍하다가도 비슷한 패턴의 코드들이 많이 보여서 그런 건 따로 utility class 식으로 디렉토리 따로 두고 관리하고 했었죠. 프로젝트 진행중에는 다른 사람들 소스를 지속적으로 같이 봐 나가면서 생각해야겠군요. CVS 로 한곳에 소스를 모으면 도움이 될 것이라 생각. --석천''
아 한가지 더 생각나는게 있군요. 자바로 프로젝트를 하니 적습니다. 절대 작성하는 라이브러리나 코드의 중간에서 Exception을 잡아서 삼켜버리지 마세요. Exception은 추후 debugging에 절대적인 정보를 담고 있습니다. 중간에 try ~ catch 로 잡아버리고, 어떠한 형태로도 알려주지 않는것은 상당히 위험합니다. 시간이 나면 이와 관련해서 더 적도록 하지요. --이선우
if (instance == null) {
if (instance == null) {
if (instance == null) {
- RandomWalk/성재 . . . . 27 matches
c = rand() % num; //end
if(data[i][j] == 0)
int q = rand() % 8; //end
if(q==0) {
if(b-1>=0 && c-1>=0)
else if(q==1) {
if(b>=0 && b<num && c-1>=0)
else if(q==2) {
if(b+1<num && c-1>=0)
else if(q==3) {
if(b+1< num && c>= 0 && c<num)
else if(q==4) {
if(b+1<num && c+1<num)
else if(q==5) {
if(c+1<num)
else if(q==6) {
if(b-1>=0 && c+1<num)
else if(q==7) {
if(b>=0)
cout << endl;
- RandomWalk/신진영 . . . . 27 matches
case 1: if(land[row-1][col-1] != -1) // ↖ 방향 이동
case 2: if(land[row-1][col] != -1) // ↑ 방향 이동
case 3: if(land[row-1][col+1] != -1) // ↗ 방향 이동
case 4: if(land[row][col-1] != -1) // ← 방향 이동
case 5: if(land[row][col+1] != -1) // → 방향 이동
case 6: if(land[row+1][col-1] != -1) // ↙ 방향 이동
case 7: if(land[row+1][col] != -1) // ↓ 방향 이동
case 8: if(land[row+1][col+1] != -1) // ↘ 방향 이동
if(land[i][j] == 0)
if(land[i][j] == 0)
if(walk >= 0 && walk <= 200)
cout << "다.\n이 정도 쯤이야! 풉!" << endl;
else if(walk > 200 && walk <= 400)
cout << "다...\n점점 압박이..." << endl;
else if(walk > 400 && walk <= 600)
cout << "네....;;\n숨이 가빠오는군...;" << endl;
else if(walk > 600 && walk <= 800)
cout << "구운.......;;\n언제 쯤 끝나려나...?" << endl;
else if(walk > 800 && walk <= 1000)
cout << "... 헥헥..;;;\n히, 힘들다... ;□;" << endl;
- Refactoring/BuildingTestCode . . . . 27 matches
리팩토링을 위한 필수적인 선행조건은 견고한 테스트를 하는 것이다. 당신이 리펙토링을 자동으로 해줄 수 있는 툴을 가지고 있다고 하더라도 여전히 테스트가 필요하다. 모든 가능한 리펙토링을 자동으로 해주는 툴이 나오는데는 오랜 시간이 걸릴 것이다.
나는 이것을 단점으로 보지 않는다. 나는 내가 리펙토리를 하는 중이 아니라 하더라도, 좋은 테스트는 프로그래밍 속도를 비약적으로 향상시킨다는 것을 발견했다. 이것은 많은 프로그래머들의 통념과는 반대된다는 점에서 놀라운 것이다. 그렇기 때문에, 왜 그러한지에 대한 이유를 설명할만한 가치가 있다.
프로그래머들이 시간을 쓰는 것을 가만히 살펴보면, 실제 코드를 쓰는 시간은 작은 부분이고 대부분의 시간을 디버깅에 소비한다. 그리고 버그를 찾는 데 많은 시간을 보내고 수정하는 것은 금방이다. 모든 프로그래머들은 버그를 찾느냐고 밤새었던 이야기들을 하나 둘 이상은 가지고 있을 것이다. ^^; 게다가 버그 하나를 잡아도 여전히 다른 곳에서 버그가 생길 가능성이 있다. 이렇게 되면 버그를 잡는데 많은 시간을 소비한다.
나로하여금 self-testing code로의 길을 시작하게 한 계기는 OOPSLA '92의 한 이야기부터였다. 그때 누군가 (아마도 Dave Thomas)"클래스는 자기 자신의 테스트코드를 가지고 있어야 한다" 라는 말을 했다. 이 말은 테스트를 구성하기 위한 좋은 방법으로 여겨졌다. 나는 모든 클래스에 클래스 스스로를 테스트하는 메소드들 (''test''라 한다.)들을 가지도록 만들었다.
그때 나는 increment development단계에 있었고, 나는 매번 increment 을 완료할때 클래스들에 test method들을 추가했다. 그때 했던 프로젝트는 꽤 작았었고, 우리는 우리의 increment 주기는 한주 단위정도였다. 테스트의 실행은 는 꽤 수월하게 되었다. 하지만 테스트들은 실행하기 쉬웠지만, 테스트를 하는 것은 여전히 지겨운 일이였다. 이것은 내가 체크해야 하는 모든 테스트들이 console 에 결과를 출력하도록 만들어졌기 때문이다. 나는 꽤 게으른 사람이고, 나는 일을 피하기 위해 꽤 열심히 일을 준비했다. 나는 이 클래스들이 프린팅 해주는 것을 체크하는 대신, 컴퓨터가 테스트를 수행하도록 했다.내가 할일은 테스트 코드에 내가 기대하는 결과를 작성하고, 그 비교를 수행하는 것이다. 자, 나는 모든 클래스들의 test method를 수행할 수 있었고, 모든 일이 잘 되면 단지 'OK' 가 출력되는 것을 확인하면 되었다. 이 클래스는 지금 스스로 자기 자신을 테스트를 했다.
모든 테스트가 자동화되었는지 확인하고 테스트들의 결과를 테스트 코드 스스로 체크하도록 해라.
이제 테스트는 컴파일 만큼이나 간단해졌다. 나는 컴파일 할 때 마다 테스트를 했다.그리고 곧 나는 버그를 바로바로 찾아낼 수 있었다. 나는 내가 디버깅을 하는데 그리 많은 시간을 소비하지 않았음을 알게 되었다. 만일 내가 이전 테스트에 의해 주의하도록 한, 버그가 있는 코드를 추가했을 경우, 테스트를 실행할 때 바로 볼 수 있었다.
물론 다른 이들로 하여금 이 과정을 따르도록 설득하는 것은 쉽지 않다. 테스트 코드를 만드는 것은 그 양이 많다.
그리고 이것이 실제로 프로그래밍 속도를 높인다는 것을 경험해보지 않으면 self-testing 코드는 사람들이 이해해주지 못한다. 그리고 테스트가 수동이라면 이것은 지루할 것이다. 하지만 테스트가 자동화된다면 테스트 코드를 쓰는 것은 꽤 재미있는 일이 될 것이다.
사실 테스트 코드를 작성하기 위한 가장 좋은 때는 프로그래밍을 시작하기 전이다. 어떤 기능을 추가해야할 때, 테스트 코드를 작성하는 것으로 시작한다. 이것은 뒷걸음질 치는 것이 아니다. 그 기능을 추가하기 위해서 어떤 것들이 행해져야 하는지 스스로에게 물어보는 것이 된다. 그리고 테스트 코드를 쓰는 것은 구현보다는 인터페이스에 집중할 수 있게 해준다. (그리고 이것은 언제나 좋은 것이다)
테스팅 코드는 ExtremeProgramming 의 중요한 부분이다. [Beck, XP]. 이 이름은 빠르고 게으른 해커같은 프로그래머들에겐 마술주문과 같을 것이다. 하지만, extreme programmer들은 테스트에 대해 매우 헌신적이다. 그들은 가능한 한 소프트웨어가 빠르게 발전하기 원하고, 그들은 테스트들이 당신을 아마 갈 수 있는 한 빠르게 갈 수 있도록 도와줄 것을 안다.
- ZP&JARAM세미나 . . . . 27 matches
|| 9시 || 2공학관 창설실로 이동 ||
OST는 이번엔 명찰이 준비가 안 되었는데 다음부턴 명찰 준비해요~ 그리고 장소도 창설실보다는 원래대로 강의실 잡는 게 나은 거 같아요. 의자가 있으니까 잘 움직이지 않게 되네요^^
zp 08학번 송정규 입니다. 학회간의 교류와 왕래가 앞으로도 자주 있으면 좋겠습니다. 다음 시간에는 다른 학회 회원 분들하고 좀 더 친해지고 싶습니다. 또 더 진지하고도 진취적인 이야기를 나누고 싶습니다. 마지막으로 세미나를 할 때도 공동세미나 등도 하면 재밌을것 같습니다. ㅋㅋ
새로운 경험이란 좋은거니까요. 다만 OST때 테이블을 안돌아서 다른 학회분들과 얘기를 못해본게 아쉽지만, 뭐 다음에 기회가 있겠죠?
세미나 두개 다 정말 유익하게 들었습니다. 병윤이 세미나 주제가 우려먹기라는데 내가 그 때 커스모집 때문에 없어서 이번 기회에 들었습니다^^ 와핫핫~!! 프로젝트 통합방법도 내년에 돌아와서 팀플할때 잘 써먹을수 있을거 같아요. 승한오빠가 하는 프리젠테이션 방식이 굉장히 좋았어요. 간결한 글과 시각적 효과를 이용해 보는 사람으로 하여금 몰입도를 높이는..(웃음) OST도 좋았습니다. 시간이 부족한게 좀 아쉽ㅠ
linux & open source ost 했던 , 자람 20기 서버관리자 박훈준 입니다. 정말 즐거운 시간 이었습니다. 특히 스푸핑 관련 세미나... 네트워크에 대한 이해를 ++++ 할 수 있는 좋은 자리였어요. 저희가 뭔가 좀 준비했었다면 더 좋았을텐데 아쉽네요. 무엇보다, 이런 행사들이 지속적으로 이루어 지는것이 중요하다 생각됩니다. 3년전 쯤인가, 홍대 컴공학회 P.C.R.C 와도 교류가 이루어 지는듯 하다가, 그 이후로는 교류가 없네요. 계속해서 교류하고, 많이 나눴으면 좋겠습니다. 무엇이든 할 수 있어요. :) (참, 밥도 맛있었어요)
OST는 다들 열정적으로 참가해주셔서 몇 가지 주제에 있어서 이야기가 오고간것 같아요. 아쉬운 점이라면 새로운 주제가 생기면 그것의 홍보를 직접해야했다는 점이랄까요? 입구쪽이나 잘 보이는 곳에 OST 상황전달 가능한 공간이 있었더라면 더 원활한 진행이 되지 않았을까라는 생각을 해 보았습니다.
다음에 기회가 된다면 우리학교로 초대해서 같이 개발도 하고 즐기길 기대하면서 이번 후기를 마무리 하겠습니다~
오호라 후기네요~:) 이거 페이지를 어디다가 연결해야할지 갈피가 안잡히네요 여기다가 만들어도 문제가 없으려나?~?? 저는 좋은 게임과 나쁜 게임의 OST를 진행했던 한양대 03학번 배진호입니다. 뭐 제 계획대로 아주 많은 것을 뽑아(?) 내지는 못했지만 그래도 적절하게 많은 분들이 동참하여 주셔서 흥미로운 대화가 되었던 것 같네요. 제가 미숙하여서 자르고 멈추고 이어나아가는 것이 능숙하지 못했는데, 어찌 되었든 OST를 주최해 주시고 좋은 세미나도 재미있게 보았습니다. 시간이 많았더라면 서로 더 알아갈 수 있었을 텐데 그 부분이 조금 아쉽네요. 앞으로도 많은 교류가 있었으면 좋겠네요. 군대에서 이 위키를 썼었느데 다시보니 방갑네요 :)
자람 24기 김희정입니다~ 중앙대 처음가봤는데 학교가 참 옹기종기모여있으면서도 크구 참 이뻤어요! 마련된 저녁에도 감덩감덩 ㅜㅜ! 제로페이지에서 준비한 세미나에서는 새로운 내용을 알게되서 좋았습니다. 같은 08학번인데 세미나 하시는 분 보고 저도 좀더 노력해야 겠다고 생각했구요, OST에서는 게임에 대한 주제에 참여했는데 게임을 하는 걸로만 생각했었는데 이번 OST를 통해 개발자의 입장에서도 생각해 볼수 있어서 좋았습니다. 그리고 다양한 공부?에 대한 주제에 대해 들어보고 싶었는데 시간이 부족해서 참여할수 없었던게 좀 아쉬웠네여~ㅜ 여튼 그래도 알차고 재밌었던 시간이었구요~ 나중에 우리학교에서 다시만나요~안녕히~+_+
ps. 아참, 제로페이지의 행사로 소개되었던 "지금그때(?)"라는 프로그램 좋은것 같더라구요. 우리학회에서도 하면 좋겠다 라는 생각을 했어요~
ZP 18기 장혁수 입니다. 이번 기회로 많은 사람들을 만나볼 수 있어서 좋았습니다. 개인적으론 OST 시간처럼 떠들석한 이야기 자리가 좋더라구요.^^ 시간이 얼마 없어서 많은 이야기는 나누지 못한게 아쉽네요. 앞으로도 이런 자리가 또 있겠죠? 다음을 기대해봅니다~
준비가 미흡해서 발표가 매끄럽게 진행되지 못했던것같아 죄송합니다~ 아직 큰 규모의 프로젝트를 해보지않아 svn에 대해 잘 알지못했었는데 알게되어 좋았구요 OST때 linux & open source 테이블 유익한 정보 많이 듣게되어 재미있었습니다. 다음번 자람측 세미나가 기대되네요~
이번 연합 세미나가 다소 부족한 느낌을 주었을 지 몰라도 첫 번째 시도였다는 점에서는 참 서로 칭찬할 만 하다고 생각합니다.
준비하신 분들 너무 수고 많으셨고~ 이번을 계기로 더 나아진 모습의 연합행사가 되었으면 좋겠습니다.
- ZeroPage성년식 . . . . 27 matches
* 온오프믹스 참가 신청에 문제가 있나요?(이벤트 페이지를 제 이름으로 만들어서 저는 참가 신청을 할 수가 없습니다. 그래서 어떤 문제가 있는지 알 수가 없네요.) 선배님께서 온오프믹스로 참가 신청이 힘들다고 다른 방법을 만드는 게 좋겠다는 말씀을 해주셨습니다. 온오프믹스에 문제가 있다면 구글독스를 통해 추가적으로 신청을 받거나 아니면 온오프믹스 참가 신청시 발생하는 문제를 해결하는 법을 알아내어 온오프믹스 페이지에 안내하는 것이 좋을 것 같습니다. - [김수경]
* 페이스북에서 바로 신청을 하는 경우 문제가 있을수도 있는거 같았아요. 정욱이형이 저번에 된줄 알았는데 안됐길래 다시하라고 해서 됐거든요. -[김태진]
* 그닥 문제가 없었던걸로 기억하는데 저도 제로페이지 메일에서 신청에 문제가 있다고 보내주신걸 확인했습니다. 메일로 간단한 몇가지 사항과 함께 참가 의사를 밝히면 저희가 관리하는 방법도 있지 않을까요 - [지원]
* '''날짜 변경해야 할 것 같습니다''' : 11월 26일에 Agile Korea 2011이 진행됩니다. 저는 이거 꼭 갈거라서ㅜㅜㅜ 그리고 제 개인 사정을 떠나서, 형진오빠가 기획단(''?'')에 포함되어 있고 김창준 선배님께서 키노트 연사로 참가하시는 것이 확정되어 그 날 진행은 여러모로 힘들 것 같습니다. 그 바로 다음주가 적당할 것 같은데 다들 어떻게 생각하세요? - [김수경]
* 촉박할 수 있지만 11월 19일이 12월 3일보다 나을 수도 있습니다. 저와 몇몇분들과는 상관없을 수도 있지만 기말고사 임박, 프로젝트 마감 임박 등 재학생들에게 부담이 큰 시기일 수 있습니다. 다수는 아니지만 송년회를 일찍 하는 단체에서는 12월 첫주 주말부터 본격 시작됩니다. 일단 저는 어느쪽이던 상관없지만 다른 기획단 분들의 의견도 듣고 싶습니다. - [지원]
* 몇시부터 어떻게 몇 시간동안 진행하는지에 따라 25일도 가능하지 않을까 라는 생각도 드네요. 뭐 그게 아니라면 뒤로 늦추는 거 보다는 일찍 하는 것이 좋을 듯 싶네요. - [권순의]
* 늦추는것 보다는 당초 예상했던대로 송년회를 피해서 하려면 날짜를 당겨서 해야하는게 좋을것 같네요 시간이 촉박한정도는 아닌데다 날짜의 변경을 염려해뒀었으니 앞쪽으로 변경해도 될것 같습니다 - [김준석]
* [김태진] - 제로페이지에서는 처음으로 기획단을 하였습니다. 누나/형들이 아주 구체적으로 어떤 항목들이 필요한지 나열하면서 언제까지는 해야할 것이다고 계획을 바로바로 짜고 그 계획대로 되는걸 보니 어떤 기획을 제대로 하려면 저렇게 해야하는군.. 이라는 생각을 많이 하게 되었네요. 연락돌리는 일이나 신청받는거도 쉽지않은데 여러명이 잘 나눠서 차근차근 진행하니 잘 되더라구요. 여럿이 같이 열심히 기획하는게 최대 효율을 낳는다는걸 깨달았네요. 마지막으로 ZP20주년 성년식, 많은분들이 와서 즐거운 날이 되었으면 좋겠네요!ㅋㅋ
* [송치완] - 대학에 들어와서 처음으로 어떤 행사의 기획단을 맡아보았네요. 이번 성년식의 기획단을 하면서 제가 몰랐던 ZP의 역사들을 많이 알 수 있어 보람찬 시간이었다고 생각됩니다. 많은 선배님들, 동기님들이 행사에 오셔서 즐거운 시간 보내주셨으면 좋겠습니다 ^_^
* [추성준] - ZP에서 성년식 기획단으로 참여할 수 있어서 좋았구요, 성년식 잘 진행되었으면 좋겠어요.
* 지난 회의에 불참해서 미안합니다. 부탁이 있는데 행사 진행중에 ''저와 태진이는 찍사를 했으면 좋겠습니다.'' 20주년 성년식이니 만큼 많은 사진을 남기고 싶고, 한 명이 찍사를 다 부담하면 그 한 명이 다른 일을 할 때의 기록이 남지 않습니다. 태진이가 접수할때는 제가 사진촬영을 많이 하고 제가 발표할때는 태진이가 촬영을 많이 하고 이렇 식으로 하면 좋겠어요 - [지원]
* 제가 찍사를 하기로 했는데 그게 더 좋은 방안인거 같아요 :) -[김태진]
- 네이버지식in . . . . 27 matches
지식in이란 서비스는 질문에 답변을 해주는 게시판 형식이긴 하지만, 참여가 자유롭고 한 주제에 대해 글을 쓴다는 점에서 위키랑 비슷하다는 생각이다. '''오픈 백과사전'''이라는 게 있기도 하던데 이게 위키랑은 더 비슷한 형태이지만 지식in에 대면 별로 인기가 없어보인다.
가장 먼저 떠오른 건, 이용자 수였다. 이용자 수가 엄청나게 많다는 점이 지식in서비스를 활발하게 해 주었다. 이용자 수가 많아진 이유는 여러 가지가 있겠지만, 텔레비전 광고까지 낼 정도로 홍보를 해서 그렇지 않을까? 반면 위키 홍보는 몇 번인가 하고는 그 뒤로는 사람들이 알아서 쓰기를 바랬던 것으로 보인다. 알려지지 않은 서비스가 아무리 많은 장점이 있다 한들 사람들이 알아야 쓸테니까, 위키 사용이 활발하지 않은 건 일단 덜 알려져서라고 생각한다.
다음으로는 익숙하지 않은 형식이었다. 아예 인터넷을 처음 만나는 사람이라면 익숙한 형식이 있지도 않겠다만, 많은 사람들이 글을 쓸 때는 게시판에 제목과 이름과 내용정도가 달린 게 글 형식이고, 글 제목이 목록으로 한 페이지에 나오는 형식이 익숙한 형식일 것이다. 때문에 전부 '''내용'''처럼 생긴 위키를 보고는 일단 다르게 생긱 형식에 바로 적응하지는 못할 것이다. 쓰기 어렵지는 않겠지만 말이다. 때문에 위키가 엄청난 장점을 가져서 적응하는 노력을 들이고 싶을 만 하지 않다면 굳이 사용하려 하지 않을 것이다. -[Leonardong]
그 차이는 의외로 아주 간단합니다. 네이버지식인과 같은 시스템은 개인의 명성(reputation)에 대한 욕구에 상당 부분 의존하고 있습니다. 개인을 더 드러내는 것이죠. 반대로 위키는 개인이 잘 드러나지 않습니다. 명성 시스템이 아닙니다. see also ForgiveAndForget 이는 XP 철학과도 상통합니다. XP에서는 너희 팀에 영웅이 누구냐는 질문에 답이 바로 나올 수 있는 팀을 좋지 않게 봅니다. 영웅이 있는 팀은 위험한 팀입니다. XP는 보상도 팀단위로 받고 책임도 팀단위로 지는 것을 이상적으로 봅니다.
이와 관련하여, 제가 국내에서 최초로 위키위키를 대중매체에 소개할 때에 "대부분의 집단에서 파워라는 것은 제한과 배제에서 오지만, 이곳의 파워는 자유와 참여에서 온다."는 말을 했습니다.
- 글쎄요. 저는 약간 다른관점으로 보게 됩니다. 네이버 지식인의 성공은 각종 매체의 힘과, 기존에 사용해오던 '게시판'이라는 형식의 '익숙함'에 더해 '보상과 동기부여'가 아닐까 싶습니다.
우선 '위키'라는 개념과 형식은 사람들에게 생소하고 낯설게 다가오게 마련입니다. 기존 '게시판' 에 익숙해져있던 사람들에게 위키의 사용은 하나의 모험으로 작용하겠죠. 사람들에게 있어서 낯설음,생소함등은 곧 거부감으로 직결되기 쉽습니다. 이러한 거부감을 없애려면 굉장한 노력과 시간과 자본이 투자되어야 하겠죠. MS 사의 윈도우즈가 성공한 요인이 뛰어난 기능과 능력이 아닌 '익숙함'이라는 것은 왠만큼 소프트웨어를 알고있는 사람들 사이에서는 상식이죠.
- 현재는 독점 시장을 형성하고 있습니다. 하지만 그 과정을 살펴보면 MS 사의 윈도우즈가 뛰어난 성능과 기능을 가져서 독점했다고 보기는 힘듭니다. 객관적, 주관적, 전문가의 분석 어떤점으로 보나 윈도우즈보다 뛰어난 운영체제는 언제나 존재해왔습니다.(물론 지금도 존재합니다.) 하지만 사람들은 이미 익숙해져버린 윈도우를 버리고(월등히 뛰어나지는 않지만 그렇다고 절대적 성능이 떨어지는것도 아니니) 다른 운영체제를 택한다는건 '모험'을 넘어서 '도박'에 가깝다고 느껴지게 됩니다. 그러므로써 그러한 모험 내지 도박은 말씀드렸던 낯설음,생소함등으로 이어지게 되고, 자연스레 다른 OS 들은 설자리를 잃어버리게 됩니다. 단순히 결과만을 놓고 보았을때 말씀하신 독점시장이 맞습니다만, 제가 말씀드리고자 했던 요지는 그 과정속에서 찾을수 있었던 '익숙함'이었습니다.
''말씀하신 익숙함의 의미를 제가 독점으로 바라봐서 생기는 오해인것 같습니다. 분명 청정원 케찹도 있지만 오뚜기 케찹을 선택하고 많이 팔리는 것을 '익숙함'으로 볼수 있습니다. 하지만 오뚜기 케찹을 쓰지 않으면 모든 요리를 할수 없는 상황이 되면 그걸 이제 '익숙함'이라고 설명하기보다 독점으로 바라봐야 한다고 생각하거든요. :) --NeoCoin''
사람들은 [네이버지식in]을 마치 수학 문제 해답지처럼 여기는 것 같습니다. 저도 요즘엔 누가 궁금한 게 있다고 물어봤을 때 모르는 경우''지식in 검색해봐''라는 말을 자주 합니다. 제가 누군가에게 모르는 걸 물어봤을 때도 자주 듣습니다. ''지식in엔 없는게 없다니까''라는 말도 들어보았습니다. 마치 [네이버지식in]에는 살아가며 궁금한 것들에 대한 모든 해답이 있는 듯이 여기고 있다고 느꼈습니다. -[Leonardong]
Knowledge In Naver 의 약자로 KIN 이라는 단어가 url 에 들어간더군요... 그냥 '즐' 이라는 단어만 생각했는데.. Knowledge In Naver 였다니...^^; - 임인택
KIN 은 Knowledge In Naver 의 약자가 아니라 지식In -> Knowledge In -> kin 으로 사용하는 것이지요.
야후에서 위키서비스를 한다는군요. 서비스업체로서의 '위키'라는 이름을 걸고 서비스를 시도하는 건 처음이 아닐까 생각이 드네요. --[1002]
- 데블스캠프2005/목요일후기 . . . . 27 matches
[허아영] 보안과 러플의 코딩을 배웠다. 관심분야라서 흥미로웠다. 보안기술이 해킹기술에 못지않은 발전 필요성을 느꼈다..
[남도연] 러플 로보트 움직이기 샛다른 경험.. !! 3차원 Vpython 평소부터 알고 싶었던 거라 좀더 알고 싶다. 마지막에 가선 두통으로 인해.. 집중력 저하;; 아쉽다;;
[안성진] 러플...너무 재미있었다....비주얼 파이썬은 참 신기하기도 했고 많은 수학적 능력을 요구하는게 나로서는 고통으로 다가왔었다....ㅎㅎ;;
[김민경] 러플-자기가 가진 beeper의 개수정도는 알수있어야 좋을텐데ㅠ Vpython-매우 신기한 세계+ㅁ+ 마우스로 돌려요돌려! 보안-이론은 어려워ㅠㅠ -- 오늘 매우 흥미로왔어요!
박경태 : 러플최고였음. vphython도 보안은..skip;;, 역시 모두 다 신기+_+..(너무 졸려..;) 새로운 경험을 하게된듯-
김태훈([zyint]) 러플 보안과 비쥬얼 파이선을 배웠다. 직접 로봇을 움짓이는것같은 러플은 매우 흥미로웠다. VPython의 신기한 기능...암호화의 원리를 배우게 되었다>.< 매우 재미있었다.
[최경현] : 오늘 1시간 30분 늦게 도착해서 러플을 제대로 다 해보지 못해서 아쉬웠다. 비쥬얼 파이썬으로 움직이는 3D 이미지가 신기했다.
이[형노] : 러플.. 정말 재미있었다.. 단조로운 움직임만을 보이지만.. 그렇기에 더 재미있었던듯...
보안.. 흥미로운.. 이리저리 생각도 해보고 할수 있었던게 가장 좋았던.. 하지만 암,복호화 하는 프로그램을 짜라고 할땐..;;역시 코딩력이 부족한.. 코딩력을 키우자.. 아자!! 오늘은 실습이 많아서 긴장? 되었던.. 덕분에 조는 시간 없이 밤을 지샌...
[조현태] : 오늘도 즐거운 세미나들이었습니다.^^ 뭔가 새로운 것들을 많이 배우게되서 좋았어요.^^ 다음에도 이런세미나들 많이 했으면 좋겠어요.^^
(코딩을 순간 놓쳐버린 경우가 많음-코드 업데이트 해주시길)
- OOP 를 설명하면서 인터프리터에서 동적으로 메소드를 붙여가면서 객체 형틀과 객체들을 만들어감.
3. 실습이 단계별로 이루어짐.
- 보통 '보안세미나' 하면 이론적이고 별로 이해 안가는 수식들의 나열이 되기 일쑤이다. 이번처럼 자신의 메세지를 암호화해보고, 이를 MSN 으로 보내보면서 비밀키의 문제점을 생각하게끔 하고 이를 서로 토론을 통해 이야기하게 한 보안세미나는 굉장히 이례적이고, 또한 효과적이였다고 생각.~ --[1002]
9. [RUR-PLE] 은 제약이 많아서 오히려 재미있다.!! 적은 룰로 다양한 일을 할 수 있다는 점이 신기했다.~
3. 최대한 코드 짧게. 한 페이지 내로!!!!!!!!!!!
4. 희생자 발생이 적은(?) 인식률 높은 프로그램 만들기!!
5. 오늘 무척 재밌었는데 앞으로 단계별 실습거리 연결 지어서 많이 발전!
한가지여도 수준 낮춰서 단계별로 자세히 !!!!
- 데블스캠프2012/다섯째날/후기 . . . . 27 matches
= C로배우는 C++의원리 =
* [권순의] - C++의 개념을 C에서 어떻게 적용하는지, 컴파일러가 어떻게 돌아가는지에 대해서 생각해 볼 수 있는 시간이었습니다. 재미지네요. 단계적으로 나아가는 방법이 재미있었습니다. 설명도 자세하게 해 주시고 유익한 시간이었습니다. 그러다 보니 왜 우리가 어떤 것을 사용했을 때 느리다던지 한 것에 대해서 보다 쉽게 이해할 수 있는 시간이 아니었나 합니다.
* [이재형] - 오버로딩이나, 탬플릿 까지는 어렵지 않게 이해했는데 그 뒤부터 클래스, 구조체, 생성자와 소멸자, 상속, 가상함수 등등 부족한게 많아서 정말 멘붕에 멘붕을 거듭했습니다. 그래도 정말정말 How에대한 관점으로 공부해야겠다는 필요성과 더불어 이번 방학 공부에 동기부여가 잘 될 것 같아서 좌절감만 드는 것이 아니였습니다. 좋은 어려움이였던 것 같습니다.
* [서영주] - 저학년을 위한 C++개념 설명일줄 알았는데 생각보다 고학년한테 반응이 좋았습니다. 저도 pl시간에 개념으로 대충 배웠던게 실제로는 이렇게 되어있구나 하는걸 알 수 있어서 좋았습니다. 언어를 쓰더라도 그런게 실제로 어떻게 구현되어있나를 생각해본 일은 별로 없었어서 내가 쓰는 언어에 대해서 다시 한 번 생각해볼 기회가 된 것 같습니다.
* [서민관] - 개인적으로 C로 C++처럼 만들어 볼 수는 없을까 하는 생각을 조금 한 일이 있어서 보다 와 닿았던 것 같은 느낌이 강했습니다. 그리고 구조체의 맨 앞에 포인터를 배치해서 캐스팅하는 방법은 꽤나 그럴싸하군요. 항상 C++에서 궁금했던 것이 왜 맨날 첫 4바이트가 vtable의 정보를 가지고 있는 것인가였는데 아무래도 이번 실습 때 그걸 몸으로 체험한 것 같습니다. 난이도도 그렇게 높지 않으면서 진행도 단계적으로 되어 있어서 따라가기도 편했습니다. 다만 1학년한테는... 음...
* [권순의] - OMS에서도 관련된 주제로 이야기 하고 이번 시간에도 관련 주제로 이런 저런 이야기를 들었네요. Winapi를 가지고 하는거라 뭐랄까.. 이거 뭔가 너무 날거인거라 ㅋㅋ 거기다 소스도 참 ㅋㅋㅋㅋ 희성이도 인터넷에 돌아다니는 것도 이것과 비슷하다고 하는데 ㅋㅋ 뭐.. 비트맵이 예전엔 사양이 안 좋은 상황에서 쓰이다 보니 그런거니까 라고 ㅎㅎ.. 재미있었습니다.
* [김희성] - Win32API를 할려다가 OMS에 없었던 12학번이 많아 OMS에서 했던 주제를 다시 했는데, 반응이 그다지 좋지 않은 것 같습니다. 비트맵 특성상 변수가 많이 쓰이는데 이해도를 위해 변수명을 축약이 아닌 풀네임으로 작성한 것이 오히려 가독성을 낮추어 이해를 어렵게 한 것 같습니다. 오랜만에 비트맵 했더니 예제 시연에서 삑나고... 여러가지로 문제가 많았던 것 같습니다.
* 내 생각엔 무엇이 x이고 무엇이 y인지 중간 계산 변수가 없이 바로 배열 첨자에서 한 번에 계산해서 이해가 어려웠던 것 같은데?ㅋㅋ - [변형진]
* [서영주] - 비트맵 파일의 RGB값을 수정해서 그림에 변경을 가하고 하는 부분은 신기했습니다. 그런데 저한테는 비트맵 자체보다도 실제로 많이 쓰이는 파일 포맷을 헤더와 데이터 부분 등 정해진 구조체의 크기에 따라서 값을 집어넣기만 하니까 알아서 읽어지고 파일을 다룰 수 있었다는 점이 조금 더 신기했습니다. 비트맵이 아니라 다른 파일이라도 마찬가지로 파일 포맷을 안다면 그 파일을 손댈 수 있다는 소리일테니까요.
* [서민관] - 이런저런 일로 file format에 대해서 약간 볼 일이 있긴 했는데, 희성이가 좀 이미지 처리를 전문으로 해서 그런지 비트맵 형식에 대해서 꽤 본격적으로 다뤘네요. 비트 레벨에서 필터 등의 구현을 보는 건 신기했습니다. 근데 실습하기에는 이해도가 딸려서... 그래도 처음 보는 사람들한테는 많은 이해를 주지 않았을까 싶군요.
* [김희성] - system32 내부의 호스트 경로가 흥미로웠습니다. 조작하면 재밌을거 같습니다. 개인적으로 선형대수학은 완충제라고 생각합니다. 뭐든지 구현을 할려면 선형대수학을 거쳐야하니...
* [서영주] - 정말로 CSE한 인생을 사셨구나 하는 생각이 들었습니다. 중고등학교 때 벌써 언어공부라니... 근데 인생 얘기하시면서도 맵 리듀스나 gba의 파일을 수정했던 얘기 등 중간중간에 들어있는 얘기들이 신기했습니다. 어떻게 그런걸 다 아시는지도 궁금하고. -_- 후기때도 했던 얘기지만 언젠가는 더이상 할 얘기가 없으실 때까지 얘기하시는걸 들어보고 싶습니다.
* [서민관] - 앞으로 데블스는 낮에 했으면 좋겠습니다. ㅠㅠ 왜 그렇게 졸렸을까요. 아마 전날 캡실에서 잔 게 역시 좋지 않았던 것 같은데... 더군다나 중요한 부분 이야기들을 다 조느라 못 들은 것 같아서 가슴이 아팠습니다. ㅠㅠ 근데 검색엔진 구현 때 선형대수학 얘기는 정말 할 말이 없군요. 역시 이것저것 전부 다 공부를 해야 하나.
- 새싹교실/2011/學高/1회차 . . . . 27 matches
* Memory에 데이터가 저장된 공간은 어떻게 지시할까? 뭐 특별한 이름이 따로 있을까?
* 컴퓨터에서 쓰이는 data는 기본적으로 10진법(Dec.), 8진법(Oct.), 16진법(Hex.)중에 무엇으로 저장될까?
* printf()를 사용하기 위해 include 시켜야하는 library(~.h로 끝나는 파일)은 무엇인가?
* 첫 시간인데도 불구하고 준비가 미흡하여 제대로 설명하지 못했고, 수업할 내용도 다 기억해 가지 못했다.
* 잘 쓰지도 못하는 gcc가지고 가르치려면 공부를 해오던가 아니면 아예 windows로 부팅해서 visual studio를 써서 확실하게 가르치겠다.
* 신기호 선생님 반으로 분반시키기 위해 확실히 학생들을 체크하겠습니다.
* 정말로 C에대한 기초적인 설명
* 제대로 배우지 못한것이 있는데
* Memory에 데이터가 저장된 공간은 어떻게 지시할까? 뭐 특별한 이름이 따로 있을까?
* 컴퓨터에서 쓰이는 data는 기본적으로 10진법(Dec.), 8진법(Oct.), 16진법(Hex.)중에 무엇으로 저장될까?
* printf()를 사용하기 위해 include 시켜야하는 library(~.h로 끝나는 파일)은 무엇인가?
* 프로그래밍 언어 : high level language (ex : C, java, C++, C#..), low level language (ex : 어셈블리언어, 기계어)
* 프로그래밍 과정 : program edit -> compile -> execution ※에러나면 맨 처음으로
* return 0; : 마지막으로 출력할 값이 0이다
* printf("출력할 내용"); : 기본적으로 출력하는 함수
* Memory에 데이터가 저장된 공간은 어떻게 지시할까? 뭐 특별한 이름이 따로 있을까?
* 컴퓨터에서 쓰이는 data는 기본적으로 10진법(Dec.), 8진법(Oct.), 16진법(Hex.)중에 무엇으로 저장될까?
* printf()를 사용하기 위해 include 시켜야하는 library(~.h로 끝나는 파일)은 무엇인가?
visual studio에서 새 프로젝트를 만드는 법을 배웠다.
* Memory에 데이터가 저장된 공간은 어떻게 지시할까? 뭐 특별한 이름이 따로 있을까?
- 새싹교실/2013/록구록구/3회차 . . . . 27 matches
* 조건문, 반복문 익히기
* 조건문
if, else, else if, switch, 조건문 내부에 쓰이는 명제, 논리연산자 등
* '''조건문을 이용한 간단한 계산 프로그램 만들기!!'''
입력: 두 수, 더할건지 뺄건지 곱할건지 나눌건지 (편하게 하기 위해서 각각 1, 2, 3, 4 숫자로 받자. scanf 쓰면 되겠지?)
Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
(느낌)기대를 잔뜩 했는데 별로 맛이 없었다.
(앞으로의 계획)다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.
3회차 수업에서는 여러가지 조건문과 while문에 대해서 배웠다.
여러 조건문과 while문을 배우고 나니 내가 이전까지 했던 방법보다 훨씬 간편하고 빨리되었다.
앞으로 숙제를 꼬박꼬박해야겠다^*^
if(c==1)
if(c==2)
if(c==3)
if(c==4)
이번 수업에서는 if, while, switch 를 배웠다.
else if와 swich를 사용하면 왜 편리한지 잘 와닫지 않았다.
if(c==1)
if(c==2)
if(c==3)
- 제13회 한국게임컨퍼런스 후기 . . . . 27 matches
|| 14:40 – 15:40 || 키노트 2 - 가상현실과 게임의 미래 || Brendan Iribe(Oculus VR) || ||
* 두 번째 세션인 모바일 3D엔진을 만들어 보는 부분에서는 한창 윈도우 환경에서 개발하다가 다른 환경에서 포팅을 하면서 겪은 이야기를 하였다. 인코딩과 관련한 부분, 혹은 디버깅에 관련한 팁에 대해서 이야기하였는데, 다른 환경으로 옮기면 신세계가 펼쳐진다는 이야기로 마무리..
* 점심을 먹고 키노트를 들었는데, 처음 키 노트는 장황하게 이야기를 했다만 결국 ‘한국 시장 좋음 ㅋ’ 이 이야기... 쩝.. 그리고 두 번째 키노트는 가상현실로 주목을 받고 있는 Oculus였다. 보다 실감나는 가상현실을 만들기 위해 무엇을 해야 하는지, 왜 이것을 해야 하는지에 대한 내용이었다. 결국 ‘보다 실감나게 게임을 하려면 가상현실을 해야함 ㅇㅇ’ 이 내용..
* 그리고 나서 음덕인 본인이 찾아간 곳은 Audio관련 세션. 트레일러를 만들더라도 음악을 어떻게 만들어야 하는지에 대해서 이야기를 했다. 스토리텔링을 통해 짧은 시간에 시선을 사로잡을 수 있어야 한다고 했다. 그러면서 잘못된 예와 잘 된 예를 보여주셨는데 잘 된 예도 그닥..
* 마지막 물리기반 렌더링.. 기대하고 들어갔으나 ‘아티스트 전용임 ㅇㅇ’ 이러는 바람에 ‘아 내가 길을 잘못 들었구나’라는 생각으로 그냥 멍 하니 들었..
|| 10:30 – 11:30 || Unity3D와 UPS로 멀티플레이 게임 만들기 || 노영하(머치디퍼런트) || Programming ||
|| 14:40 – 15:40 || 게임유저와의 소통: 음악과 사운드를 중심으로 || 양승혁(주-스튜디오 도마) || Audio ||
|| 17:00 – 18:00 || 엔비디아 Nsight™ Visual Studio로 게임 디버깅 및 최적화하기 || 최지호(NVIDIA) || Programming ||
* 3일차에는 1일차에 그래픽 부분을 들으면서 프로그래밍과 큰 연관성을 찾지 못한 까닭에 프로그래밍 위주로 찾아 다니기로 했다. 하지만, 원래 들으려고 했던 ‘좋은 게임을 최고로 만들어 주는 요소 분석’ 파트를 들으려 했으나 갑자기 잠수를 타 버리는 바람에 급하게 언리얼 엔진 주제 쪽으로 넘어갔다. 모바일 게임과 관련한 이야기를 하면서 온라인 게임과는 비용, 기간 등 많은 차이가 발생하는 것에 대해서 이야기 했다. 그러면서 아티스트들은 제발 쓸데없는 자존심 버리고 게임이 잘 돌아가게 해 달라는 요구를 하시던.. 하기야 콘솔 게임 정도 되어야 그래픽에 많은 부분 신경 쓸 수 있겠다만 모바일은 화면도 작고 하니.. 라는 생각이 들었다. 결국 메모리를 줄이기 위해 Object를 나누어 Module 사용을 해라는 이야기로 마무리 지어졌다.
* 두 번째 들은 세션은 자기 회사의 프로그램? API를 이용해 서버를 만들고 채팅을 하고 뭐 이런 이야기를 예시를 통해 보여주었다. 그냥 가져다 쓰면 되요 라는 말과 함께 이것 저것 예시를 보여주었는데, 결국 자기 회사 홍보였다.
* 세 번째 세션은 또 음악의 세계로... 역시나 자기네 회사 프로그램을 사용하면 사운드 효과를 다양하게 낼 수 있다는 것에 대해서 이야기 해 주었다. 뭐 Chaining 관계를 이용한 소리의 조합이라나 뭐라나..
* 그 다음으로 다시 음악의 세계로~. 이번 스피커는 작곡가였다. 어울리는 음악을 만드는 것이 중요하다, 스토리를 이해해서 음악을 만들어라, User가 느껴야 하는 감정을 쫓아라 뭐 이런 이야기를 하면서 피아노 치고 노래하고.. (피아노 못 친다고 해 놓고 찾아보니 조수미 따라 다니면서 피아노 치시던 분 -ㅅ-) 그리고 Alt+Tab을 모르셔서 계속 USB 뺏다 꼈다 하시느라 좀 시간을 잡아먹긴 했다만 재미있는 시간이었다.
* 그 다음은 본래 국방과학연구소에서 헬리콥터 가상 시뮬레이션에 관한 이야기를 들을까 했는데, 주제가 그다지 재미있을 거 같지도 않고 부스 구경도 제대로 못하고 해서 부스 구경을 했다. 첫날에는 길게 줄 서 있던 Oculus 시연장에는 사람이 별로 없어 두 번 해 보기도.. 이곳 저곳 돌아다니면서 궁금한 거 좀 물어보기도 하고 게임도 직접 해 보고 하는 시간을 가졌다.
* 마지막 세션은 NVDIA와 Visual Studio를 연계해서 디버깅하는 것에 관해 이야기를 했는데.. 보여주면서 하긴 했는데 뭔 내용이 이렇게 지루한지..; 전반적인 NVIDA 소개와 필터 버그 등 버그가 발생하였을 때 픽셀 히스토리 기능으로 추적해서 셰이더 편집기능으로 수정하는 등 버그를 어떻게 고치는지, 툴은 어떻게 사용하는지에 대한 이야기가 주였다.
* 프로그래밍과 관련한 부분이 아닌, 다른 부분 (그래픽, 오디오 등)에 대한 이해도 할 수 있었고, 다양한 프로그램들을 알 수도 있긴 했다만 뭔가 대부분이 자신들 업체 홍보에 조금 주안점이 있지 않았나 라는 생각이 들었다. – 물론 안 그런 세션도 있었고 – 특히 직접 보여주는 부분은 같이 좀 해 보았으면 더 좋지 않았나 라는 생각이 들긴 했지만 또 그렇게 하기에는 물량 지원적인 문제도 있으니... 노트북 가져오라고 했으면 좋았을 것을.. 뭐 이런 잡다한 생각이 들기도 했다.
- 컴퓨터공부지도 . . . . 27 matches
해당 분야를 공부하기 위해선 어떠한 순서로 보는 것이 더 효율적일까? (또는 커리큘럼 작성?) 해당 언어에 대해서는 어느정도 언제쯤 적당한 깊이를 가져야 할까?
Scientist . Engineer . Programmer 의 영역. (꼭 이분법적으로 나누는건 좀 그렇지만. 일종의 간단한 분류체계정도?)
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 도 쉽게 익힐 수 있다.
* 개인적 충고 : MFC 를 선택했다면, Code Generator 가 만들어주는 코드를 제대로 이해하라.; MFC 책으로는 Jeff Prosise 의 책을 추천. --["1002"]
* 내 생각엔 일단.. : 윈도우 컨트롤(VC 등의 리소스 편집기에서 제공 되는 모든 컨트롤들) 을 다루는 법을 완전히 습득 하자. 리스트 컨트롤, 트리 컨트롤, 탭 컨트롤 등의 모든 컨트롤을 자유자재로 원하는 모양(비트맵) 으로 바꿔서 사용할 수 있을때 까지 하자. 완전히 습득하면 어떤 프로그램이든 50% 이상 개발 기간이 단축될 것이다. -- ["김정욱"]
Windows GUI Programming 관련 서적으로는 찰스페촐드의 책을 추천한다. 책 내용이나 번역(!)글이 어렵지만 개념설명이 잘 되어 있으며, 실려있는 예제들이 좋다.
모든 학습과 마찬가지로 피드백 회수, 시간을 높이면 효과적, 효율적인 학습이 된다.
안내 서적으로는 W. Richard Stevens나 Douglas E. Comer의 책을 많이 본다. 후자 쪽이 조금 더 개념적이고, 더 쉽다.
- 콤비반장의메모 . . . . 27 matches
'''이 메모는 3초 뒤에 자동으로 폭파된다.'''
만화 형사 가제트(Inspector Gadget)에서 콤비 반장(Chief Quimby)은 형사 가제트에게 비밀 지령을 내릴땐 항상 자동 폭파되는 특별한 메모지를 사용하곤 했다. 그러나 인터넷 시대를 맞이한 콤비 반장은 이제 메모지 대신 한번만 사용할 수 있는 파일을 사용하려고 한다. ["콤비반장의메모"]와 같은 일회용 정보는 컴퓨터로 어떻게 구현할 수 있을까.
메모리를 mp3 버퍼.. (e.g. 32kByte) 를 더블 버퍼로 잡아서, 네트워크로 더블 버퍼링 시스템으로, 네트웍으로 받은 자료로 다음 버퍼를 채우고.. 이런 형식으로 버퍼를 채운 다음에, 플러그 인 형식으로 배포하는건 어떨까요. 머.. 이건 winamp 에만 한정되겠지요. - [zennith]
* 서버와 클라이언트가 서비스 품질이 보장되는 환경에 있다면 이 방식으로 충분히 해결
* 사용자가 한번 플레이 했다는 걸 네트워크로 확인해 보는 법 밖이 없나요? 씨리얼 키나 MD5키 같은 걸 사용해서~
''사용자가 한번 플레이 했다는 걸 미디어에 직접 기록하는 방법으로는 디지털 워터마킹이 있습니다. 이 방법은 네트워킹 없이도 문제를 해결할 수 있는 방법입니다만 전문적 지식이 필요합니다. 네트워크로 확인하는 가장 쉬운 방법은 클라이언트는 재생시 마다 서버에서 인증을 받고, 서버측에서는 미디어의 아이디를 확인하고 재생횟수를 저장하는 방법이 아닐까 싶습니다. 미디어의 아이디 생성은 MD5 같은 해쉬함수 정도면 충분 할것 같습니다. --["데기"]''
''정보보호에 있어서 사실 어려운건 암호화 알고리즘보다 "어떤 순서와 조합으로 이들을 응용할 것인가"의 문제인 것 같습니다. --["데기"]''
그냥 생각이 갑자기 나서 몇자 적어 봅니다. 자기 자신이 압축을 풀 수 있는 Zip - self-..어쩌구였는데 그러한 형태로 만들고 마지막에 분리한 데이타 파일을 지우는 식으로 만들어 봐도 재미있을꺼 같다는 생각이 들어서 .. 다 아는 건가? - fnwinter [정직]
* 지워지는 미디어만 사용가능하다. (CD-R 로는 배포불가)
* 사용자가 재생 안한 파일을 그대로 복사한다면?
'''스스로 파괴되는 DVD 나왔다 '''
MGM이 11월 개봉한 20번째 제임스 본드 영화 '다이 어나더 데이' 홍보를 위해 제작한 DVD가 36시간 이내에 영화장면 일부와 예고편 내용이 사라져 영화평론가들에게 화제를 불러일으켰다.이 DVD는 새로 나온 음악과 영화정보도 알릴 수 있고 내용이 일정시간이 지나면 사라지므로 인터넷에 복제판이 뜰 염려가 그만큼 줄고 있기 때문이다.
''네트웍을 이용하는 모든 클라이언트는 기본적으로 서버에서 다운로드 된 정보를 이용하는 것이므로, 암호화된 컨텐츠를 제공함으로써 임의로 재생하지 못하게 하지 않는 이상 불가한일이 아닐까? 암호화된 컨텐츠이더라도 암호가 깨질때까지 한시적으로 안전하겠지만.. :) --이선우''
- 페이지이름 . . . . 27 matches
1. 위키위키에서 ["페이지이름"]은 너무나도 중요한 역할을 합니다. 제로위키에서 사용되어야할 페이지이름 규칙도 생각을 해보는게 좋을것 같습니다. NoSmok:페이지이름 페이지에 참고하기 좋은 내용들이 있습니다.
* 영문 제목의 경우 모두 빈칸을 붙여서 사용한다. (제목으로 표시될때 자동으로 단어의 대문자 단위로 빈칸을 띄어주므로)
* 한글 제목의 경우 붙여쓰기를 기본.
*. ZeroWiki 에서는 '''/''' 으로 페이지 간의 계층을 구분한다.
* 예를들어서, ["ProjectPrometheus"] 에서 활동하다가 만들어지는 '''Journey''' 페이지의 이름은 ["ProjectPrometheus/Journey"]로 지어지고 이 페이지는 ["ProjectPrometheus"]를 부모로 하는 하위 페이지이이다.
* 당연히, 부모인 ["ProjectPrometheus"] 에 Jouney 에 대한 링크를 찾아보면 있을 것이다. 그리고 ["ProjectPrometheus/Journey"] 의 가장 하단에, 밑줄({{{~cpp ----}}})로 자신의 부모를 링크를 걸어두어 보는 이가 항해하기 편하게 배려한다.
*. 부모가 없는 페이지들은 ["분류분류"] 들에 있는 분류중 하나로 속할수 있다. 만약 자신이 생각하는 분류가 없다면, 당신은 새로운 분류 꺼리를 ZeroWiki에 제공할 수 있다. 새로운 공식적인 분류페이지를 열수 있다는 것은 즐거운 일이다. 축하한다. 해당 분류를 만들어 달라.
* 최상위 링크인 ["분류분류"]의 예를 든다면 이 페이지 ["페이지이름"]은 부모는 없고, ["위키분류"] 로 분류되어 있다.
* 개인 페이지의 하위 페이지들 ( 여기에서 계층이 없는 것으로 분리 가능 )
* / 으로 계층을 표현한다. ["역링크"]를 건다.
* 부모 페이지가 없다면 부모페이지를 작성하거나, 개인페이지 내의 하위계층으로 이름을 바꾼다.
* 페이지 삭제 or 페이지를 연사람이 자신의 개인 페이지의 하위로 바꾼다.
* 일반화 주제로 이름과 내용을 바꾸고, 하위 페이지로 만든다.
추상적이라 생각되면 일종의 사랑방으로 이용하면 된다고 봅니다. 범용적인 만큼 스레드 성격의 글들을 더 잘 포용할 수 있지 않을까 생각합니다. 저는 '토론'(을 원한다면) 이나 '제안'(성격이라면) 임이 명시적으로 드러나는것이 좋지 않을까 생각한것 뿐, 특별한 다른 뜻은 없습니다. --["1002"]
사랑방과 같은 시스템에서의 문서구조조정은 그 노력이 많이 듭니다. 일관된 주제로 얘기하기가 힘들어지기 때문입니다. 따라서 되도록이면 피해야할 구조가 아닐까 생각합니다. 페이지 이름에 제안임이 명시적으로 드러나지 않아도 위키를 사용하는 사람들의 관심을 끌만큼 흥미로운 내용을 담고 있다면 괜찮다고 생각합니다. 조만간 이 부분은 ["페이지이름"] 페이지로 옮겨서 얘기해봐도 좋을듯 합니다. --["이덕준"]
- 2학기파이선스터디/함수 . . . . 26 matches
return은 계산된 값을 함수를 호출한 곳으로 돌려준다. def는 함수 객체를 생성하고 그 객체를
add는 함수 객체를 참조하는 이름에 불과하므로 다른 이름을 이용해 함수를 호출할 수도 있다.
>>> f(a) # a를 t를 통해 넘겼으므로 t는 a와 동일한 참조를 갖는다. 그리고 t = 10에서 t가 객체 10을 참조한다. 이때 a의 참조는 변함없다.
인수 없이 return을 하지만, 실제로는 None 객체가 전달된다.
None 객체란 파이썬 내장 객체로서, 아무 값도 없음을 나타내기 위한 객체이다.
동일한 이름이 여러 이름 공간에 걸쳐 있을 경우 LGB에 따른다.
LGB는 Local, Global, Built-in 의 약자로 지역, 전역, 내장 순으로 이름 공간이 적용된다.
h = a + 10 # h는 지역(새로 정의했으므로)
g, h는 함수 외부에서 정의되었으므로 전역, a,b는 함수 내부에서만 사용되는 지역 변수이다.
h는 전역에 있지만 함수 내부에서 생성하므로 함수 내부에서는 지역 변수 h를,
함수 f내부의 h를 전역변수로 사용하려면(즉, 전역변수h의 값을 바꾸고자한다면)
함수 G에서 참조하는 x는 지역(함수 G안), 전역(모듈), 내장 영역만 찾게 되므로 함수 F에 정의된 x가 참조되지 않는다.(x = 2)
그러나 2.1이상에서는 함수 F 안의 x를 참조하므로 올바른 결과가 나온다.
# 순서가 아닌 이름으로 값이 전달된다
고정되지 않은 수의 인수를 함수에 전달 - 나머지는 모두 튜플 형식으로 받는다
미리 정의되어 있지 않은 키워드 인수를 받으려면 함수 정의할때 마지막에 **kw형식으로 기술한다.
전달 받는 형식은 사전이다. 키는 키워드(변수명), 값은 키워드 인수로 전달된 값이 된다.
=== 튜플 인수와 사전 인수로 함수 호출하기(2.0 이상) ===
lambda 콤마로 구분된 인수들: 식
|| 구분 || def로 정의되는 함수 || lambda 함수 ||
- BeeMaja/하기웅 . . . . 26 matches
if(wNum==1)
cout << row << " " << col<<endl;
if(3*step*step-8*step+6<=wNum && 3*step*step-7*step+5>wNum)
else if(3*step*step-7*step+5<=wNum && 3*step*step-6*step+4>wNum)
else if(3*step*step-6*step+4<=wNum && 3*step*step-5*step+3>wNum)
else if(3*step*step-5*step+3<=wNum && 3*step*step-4*step+2>wNum)
else if(3*step*step-4*step+2<=wNum && 3*step*step-3*step+1>wNum)
else if(3*step*step-3*step+1<=wNum && 3*(step+1)*(step+1)-8*(step+1)+6>wNum)
else
if(direction==2)
else if(direction==3)
else if(direction==4)
else if(direction==5)
else if(direction==6)
else
if(mNum-->=1)
cout << row << " " << col <<endl;
- C 스터디_2005여름/학점계산프로그램/김태훈김상섭 . . . . 26 matches
#ifndef CLASSH
for(vector<double>::iterator i=score.begin();i !=score.end();++i)
#endif
sort(ban.begin(),ban.end(),zcompare);
cout << i->getname() << "\t" << i->getavg() << endl;
cout << endl;
for(i=ban.begin();i!=ban.end();++i)
if(i->getavg() < 1.5)
cout << i->getname() << "\t" << i->getavg() << endl;
ifstream fin(filename);
if(!score.compare("A+"))
else if(!score.compare("A"))
else if(!score.compare("B+"))
else if(!score.compare("B"))
else if(!score.compare("C+"))
else if(!score.compare("C"))
else if(!score.compare("D"))
else if(!score.compare("F"))
- CodeYourself . . . . 26 matches
ProgramingYourself라는 이름은 어떨까요? 우리 과 학생들에게 가장 중요한 사항으로 보입니다. -[강희경]
- Programing 이 아니고 Programming 임. 게다가 ~ing 보다는 동사 원형을 쓰는게 맞는 표현이라 생각됨. 주제와는 상관없는 이야기로군..-_-;; - [임인택]
요즈음, 신입생들이 숙제때문에 고민을 많이 하는 것으로 알고있다. 프로그래밍, 조금 더 구체적으로 말하자면 C언어, 에 대해서 전혀 모르는 상태에서 일기를 프로그래밍 형식으로 써 보라니. 신입생의 입장에서는 어이가 없겠지만, 나의 생각은 조금 다르다. 오히려 이러한 과제를 내 주신 교수님이 어떤 분인지 궁금할 정도로 흥미있고 유익한 과제라고 생각한다.
모두 같지는 않겠지만 전산학과에 입학한 신입생들이 언어를 배우는 단계를 보자면, ''처음엔 뭘 배우고 그다음엔 뭘 배우고 그다음엔 OS, SE'' 등등등, 정해진 순서와 틀 안에서 전산학의 이모저모를 접하게 된다. 이렇게 짜여진 순서에서 그리고 판에 박힌 수업안에 있다보면 자연히 그 안에 있는 학생들도 경직되어 있을 수 밖에 없다(다행이 중앙대학교 컴퓨터공학과에는 ZeroPage가 있다). 이렇게 느끼고 있는 상황에서 이 과제는 나에게 신선한 충격을 주었다. 신입생들은 전혀 감을 잡지 못하고 이것을 어떻게 해야 할지 선배들에게 많은 조언을 구하곤 했지만(자문요청을 받은 대부분의 선배는 ''이러이러한 방식으로 해라'' 라고 하면서 거의 C 문법에 가깝게 일기를 작성했다), 나는 이번 과제만큼은 선배들의 도움을 얻지 말고 자기 '''스스로''' 결과물을 만들었으면 하는 바램을 갖고 있다. 이번에 작성했던 자신의 프로그램 (그렇다. 일기가 아니고 프로그램이다)과 앞으로 자신이 배우게 될 프로그램을 비교해보았으면 좋을 것 같다. 그리고 순수하게 신입생의 사고로 만들어진 그 코드를 보고싶은 마음도 간절하다. - [임인택]
C언어로 일기를 쓰라는 숙제가 있었나요? 재미있네요. 그런데 이건 좀 어려운 과제 같습니다. 왜냐하면, 프로그래밍의 일상적 시간 흐름과 정반대가 되기 때문입니다. 무슨 말이냐면, 프로그래밍이라는 행위는 시간의 순방향입니다. 내가 작성한 프로그램은 미래에 일어날 사건(실행)에 대한 청사진이죠. 하지만 일기는 주로 시간의 역방향입니다. 과거에 일어났던 일들을 정리, 기록하는 성격이 강하죠. 프로그램으로 과거의 일을 기록한다는 것은 어찌보면 쉽지만 또 어찌보면 매우 어려운 문제일수도 있습니다. 신입생 입장에서는 시간의 흐름에 따라 일어났던 과거의 이벤트 연속을 적는 수준이면 될 것 같습니다. 아쉬운 것은, 이렇게 되면 조건 분기문을 활용하기가 어렵다는 점입니다. 힌트를 준다면, 리팩토링을 하면 가능합니다(내 하루의 중복을 어떻게 제거할지 생각해 보세요 -- higher-order function이 나올 정도면 상당히 진전된 것입니다). 어차피 과거의 기록 역시 "기술"(description)의 일종이고, 미래의 계획도 "기술"이니까요.
이런 훈련이 되면 "과거형 프로그래밍"이 가능해집니다. 마치 과거에 일어난 일에 대한 기술인 것처럼 프로그램을 작성하는 것이죠. 이것은 일종의 사고의 도구입니다. 이런 실험이 있습니다. 자신의 교수가 다가오는 여름휴가 때 뭘 할지 상상을 해서 종이에 적어보라고 학생들에게 시켰습니다. 다른 그룹의 학생에게는 그 교수가 이미 여름휴가를 다녀왔다고 가정을 하고 과거형으로 무슨 일을 했는지 적어보라고 했습니다. 후자의 그룹이 쓴 내용이 훨씬 더 풍부하고 자세했다고 합니다.
- DermubaTriangle/허준수 . . . . 26 matches
소주 마시던 중 격좌좌표를 기하좌표로 옮기는 과정을 생략한 것이 생각나서
cout << sqrt(pow((centroid_bx - centroid_ax), 2) + pow((centroid_by - centroid_ay), 2)) <<endl;
if(row_a%2 == 0) {
if(x%2 == 0) {
} else {
} else {
if(x%2 == 0) {
} else {
if(row_b%2 == 0) {
if(y%2 == 0) {
} else {
} else {
if(y%2 == 0) {
} else {
if(row_a%2 == 0) {
if(x%2 == 0) {
} else {
} else {
if(x%2 == 0) {
} else {
- DirectDraw . . . . 26 matches
DirectX 8.1을 이용한 DirectDraw로 무언가를 만들어 보자.[[BR]]
if(hr != DD_OK) return 0;
if(hr != DD_OK) return 0;
if(hr != DD_OK) return 0;
* 640 : 가로해상도
* 480 : 세로해상도
* 0 : Refresh Rate, 0은 디바이스 기본값 (대개 0으로 놓는다.)
if(hr != DD_OK) return 0;
if(hr != DD_OK) return 0;
if(hr != DD_OK) return 0;
4. 가로의 넓이
5. 세로의 넓이
이걸로 BITMAP형을 얻는다.
bmp.bmWidth 와 bmp.bmHeight로 비트맵의 크기를 얻어낼 수 있다.
1. bmp파일을 surface에 찍는다. (위와 같은 방법으로)
2. Blt나 Blifast를 통해서 BackSurface에 찍는다.
거기서 필요없어보이는것 줄이고 쓸만한거만 추려서.. 새로.. 만들어보던지만. 해야겠네요.[[BR]]
[해성] 지나가다가 한마디.. ^^;; DX 초기화 과정은 이전버전과 흡사하군요.. 음.. 초기화 인터페이스를 파악했다면.. 다이렉트 엑스가 어떻게 내부적으로 작동해서 일반 윈도우 프로그래밍 보다 빠른 엑세스 메카니즘을 제공하는지 파악하시구요.. 왠만하면 DX 쓰지말구.. 추가적인 이펙트등을 구현해보는게 좋을것 같네요.. 알파블렌딩을 응용한 여러가지 기법(페이드 인아웃이나 전환.. 뭐라그러드라).. 하구.. 전 못해봤지만.. 블러링 필터 같은것두.. 서페이스에 직접 억세스 하는거 공부하면.. 해볼만 할것 같군요.. 그리구.. 음.. 매일 허접 플밍을 하구 있지만.. 그래두 지겨운 초기화 과정을 단축시키기 위해 어느정도 모듈화되게 라입을 구축하면 좋겠지요.. 전 절대 안하지만.. ㅋㅋ;; 그럼.. 잡설이었습니당~ 수거~[[BR]]
[1002] 초기화과정이 이전버전과 같은 이유는 Surface 7 을 이용해서일것 같다는. DX8로는 아직 안해봐서..~ [[BR]]
["데기"]) 해성이가 말한 추가적인 이펙터들의 기본적인 아이디어는 '["영상처리"]' 시간에 배울 수 있습니다. (선호 혼자 DX 보는데도 의외로 진도가 잘 나가는듯...) [[BR]]
- EightQueenProblem . . . . 26 matches
널리 알려진 고전적 체스 퍼즐. 8X8의 체스판 위에 총 8개의 여왕을 배치하는데 서로 공격하지 않아야 한다. (참고로 여왕은 상하좌우 대각선 총 8방향으로 마음대로 -- 장기의 차와 같이 한번에 여러칸을 -- 움직일 수 있다.
이 프로그램은 Input을 요구하지 않는다.
조건을 만족하는 체스판의 배치 상태를 출력한다.
이 문제를 프로그래밍을 해서 풀어보세요. 어느 언어를 사용하든 상관없습니다. 가장 자신있는 언어를 사용하세요. 그리고, 맞는 결과를 구했다면 다음 칸을 채워주세요. 비교적 간단한 문제이지만, 문제를 해결해 나가는 중에 자신의 실력과 사용하는 도구, 프로그래밍 과정, 디자인 방법 등에 대해 생각해 볼 기회가 될 것입니다. 모든 후배들에게 꼭 한번 시도해 볼 것을 권합니다. 이 경험에 대해 스스로 분석해 보고, 남들과 경험을 공유하고 차이를 살피고(AnalyzeMary), 또 토론하면서 '''아주 많은 것을 배우게 될 것입니다.''' 어쩌면 이제까지의 프로그래밍 경험에서보다 더 많은 것을 말이죠. 사실 이 실험의 진정한 가치는 문제 자체보다 이 문제가 가능케 하는 자기 관찰/반성과, 타인과의 논의에 있는 것인지도 모릅니다. --김창준
시간을 잴 때에는 Wiki:SandglassProgramming 에 소개된 프로그램을 이용하면 편리합니다. 화장실을 다녀온다든가 할 때 필요한 중간 멈춤(pause) 기능도 있습니다.
''참고로, 소요시간이 모두 얼마냐 하는 것이 크게 중요한 것은 아닙니다. 중요한 것은 그 동안 얼마나 가치있는 무엇을(얼마나 더 얼마나 덜) 했냐는 것이죠. 남들보다 시간이 오래 걸리고, 코드가 길어졌다고 슬퍼하십니까? 아닙니다. 오히려 '''축하드립니다'''. 당신은 그만큼 큰 배움의 기회를 만난 겁니다. 자신의 프로그램이 다른 사람들의 그것보다 월등하다고 자랑스러워하며, 더 이상 배울 것이 없다고 생각하십니까? 아닙니다. 당신은 자신이 이렇게 훌륭한 해를 구한 것을 남에게 설명해 줄 기회를 찾았습니다. 가르치는 것만큼 큰 배움도 없습니다(이 때 자신이 만든 프로그램 자체를 설명하려고 하는 것보다 자신이 어떤 사고과정과 어떤 프로그래밍 성장 과정을 통해 최종물에 도달했는지를 반추해보고 설명해주는 게 더 좋겠습니다). 또 다른 사람들은 무엇 때문에 자신과 같은 좋은 해를 얻지 못했는지 분석을 할 여유가 있습니다.''
ㅠ.ㅠ 삽질했습니다.--; 상하좌우 대각선 8방향을 주위로 한칸 이동할수 있는것이라고 해석을 해서..--; 이상한 코드가 나와버렸네요 ㅠ.ㅠ 역시 체스를 몰라도 죄가 되는것인가~~ --인수
오늘의 교훈 : 감기약먹고 프로그래밍하지 말자. --; - 임인택
* 자신의 프로그래밍 과정을 돌아보고(self-reflect), 남들의 그것과 비교해볼 기회 제공을 위해
* 꼭 답을 가르쳐 주거나 교정을 해주는 선생이 없어도 서로 배울 것이 무궁무진하고, 또 많은 것을 배울 수 있다는 것을 체험시켜주기 위해
* 프로그래밍을 잘한다는 것은 단순히 빠른 시간 안에 짧고 기발한 프로그램을 만들어낸다는 것이 아니라는 것을 인식시켜주기 위해
* 프로그래밍을 잘하는 사람은 프로그래밍과 사고 과정에 어떤 효율적 체계(system)들을 여러가지 갖고 있다는 것을 알려주기 위해
* 이미 만들어진 종적 상태의 프로그램에서보다 그것을 전혀 모르는 상태에서 직접 축조(construct)해 나가는 과정에서 배우는 것이 훨씬 더 많고, 재미있으며, 효율적인 학습이 된다는 것을 느끼게 해주기 위해
* 같은 문제의 해법에 다양한 혹은 비슷한 부분들이 존재하며, 거기서 서로 배울 것이 많다는 것을 느낄 기회 제공
* 별로 대단해 보이지 않는 활동에서 각자 얼마나 많은 것을 배울 수 있는지 직접 테스트해볼 기회 제공을 위해 -- 훌륭한 학습자는 동일한 사건에서 더 많은, 더 깊은 교훈을 얻는다는 것을 알려주기 위해
- EnglishSpeaking/2011년스터디 . . . . 26 matches
1. 앞으로 스터디의 진행 방향
* 막연하게 Free Talking을 하면 아직 어색한 우리들, 어떠한 방법으로 이를 극복할 것인가?
* 이런저런 자유 주제로 이야기하다가 각자의 스마트폰에 대해 디스(?)하는 시간을 가짐
* 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.
* [송지원] - 말하기를 할 때마다 느끼지만 자신이 하고자 하는 말을 다른 언어로 표현하는게 참 쉽지가 않아요. 쉬운 말이라고 해도 안써버릇 하면 단어라던가 어휘가 생각이 나지 않고, 처음에 6피에서 영어로 입을 트자니 어찌나 부끄럽던지 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 아 해외경험도 있는 주제에 이렇게 허접한 영어 실력이라니 막막해지네요ㅠㅠ 그래도 열심히 해야겠다는 생각에 지금 심슨 영상도 뽑아내고 있고 그래요-_-; 앞으로 우리 울렁증을 극복해보아요 화이팅 ㅠㅠ
* [권순의] - 중학교땐 맨날 애들이 뭘 그렇게 영어로 중얼중얼 대냐고 했었는데 (레슬링 대사나 이런거였다는 -_-) 하도 안하다 보니까 말이 잘 안나오네요. 그리고 어쩔땐 머리로 문장이 잘 만들어지는데 그게 입 밖으로 잘 안나오는게 문제네요;;; 아흐음... 확실히 뭐라도 중얼중얼대야겠습니다. 예전처럼이라도 -_-;; 음.. 또 레슬링 봐야하나;;
* [김수경] - 아주 쉬운 말을 하고싶은데도 적절한 표현이 생각나지 않아 괴로웠습니다. 그냥 주제없이 이야기하는 것도 좋지만 질문에 대답하는 식으로 진행하니 오히려 말하기 더 편한것 같아 좋았어요.
* 참여자 수가 준비한 장면과 달라, Marge와 Homer의 대화 장면으로 대체.
* [김수경] - 오늘 처음으로 심슨 대사를 따라해봤습니다. 지원언니께서 네명이 같이 연습할만한 장면들을 미리 골라두셨는데 막상 오늘 온 사람이 두명이라 다른 장면을 연습했습니다. 40초도 채 안 되는 짧은 대화인데 참 어렵더라구요. 한 문장씩 듣고 따라하고, 받아쓰기도 하고, 외워서 해보는 등 한 장면을 가지고 여러번 연습한 것은 매우 좋았습니다. ''You tell me that all the time.''이나 ''Let me be honest with you.''가 어려운 문장은 아니지만 막상 말하려면 딱 생각이 안 났을 것 같은데 오늘 이후로는 좀 더 유려하게 말할 수 있을 것 같아요. 앞으로 매주 진행하면 이런 표현들이 늘어나겠죠 ㅋㅋㅋ
* 지원이 미국에서 있었던 일로 흘러가다가
* [김수경] - 이번주 영상은 문장이 단어 조금 바꾸면 여기저기 가져다 쓸만한 것이 많아 재미있었어요. 가위바위보로 역할을 분담했는데 ''Along with the ego and the superego, one of three components of the psyche.''라는 문장을 외워보고 싶어서 리사를 선택했습니다. 그런데 리사 분량이 제일 적어서 본의아니게(?) 가장 날로먹었네요 ㅋㅋ
* 지원이 아버지 회사에서 컴퓨터 고쳐주러 간 얘기로 시작해서..
* [권순의] - 어 이거 안 썻었네-_-; 우리 동네 이야기를 하다보니 참 노원구라는 동네는 있을건 정말이지 다 있는 거 같네요. 구에서 정말 복지 쪽에는 신경을 많이 쓰는 거 같긴 한데... 교통이 안 좋아 -_-;; (지도 보면 서울 변두리가 노원입니다. 어디 나가려면 한시간은 기본으로 잡고 나가죠;;) 뭐 아무튼,, 영어로 동네 소개 하면서 다시한번 우리 동네를 돌아보게 되어(?) 좋았습니다.
* [송지원] - 동네 얘기를 하는데 생각보다 동네의 장점에 대해 표현하기가 쉽지 않았습니다. 대중교통 좋다는 것 빼고 딱히 좋은거 없잖아!! 로 보였을 듯;; 강초파 주민을 싫어하는 모 씨도 있지만 서초구는 좋은 동네입니다. 차 막히는거 빼구요.. 심슨은 짧아서인지 제 비중이 적어서였는지 다른 때보다 표현들이 기억에 안남네요 흑흑..
* [권순의] - 조조에 관해서 영어로 이야기 하기가 너무 어렵네요 -_-;;; 좀 준비를 해 올껄이라는 아쉬움이 남기도 했습니다. 쩝; 이번 심슨 영상에서 제가 맡은 부분은 다 말이 빠르네요. 속사포 영어도 아니고 원..; 그래서 영상 보면서 따라할 때는 다 놓치고 -ㅅ- ㅋㅋㅋㅋ
* [송지원] - 지난번까지는 쉽지만 알아두면 좋은 표현이 많은(..은 훼이크고 역할분담하기 괜춘했던) 장면들을 선택했다고 하면 이번에는 좀 길고 빠른걸 선택했는데.. 영상속도를 따라하기가 많이 버거워서 몇 번 스크립트 외워서 하다가 급마무리 ㅋㅋㅋ 빠르게 말하는게 중요한건 아니지만 익숙해지려면 많이 따라해봐야겠어요. 롤모델로 이렇다하게 생각나는 유명인사가 많지 않아서 (그냥 이 사람의 이런 점, 저 사람의 이런 점을 본받아야겠다 뿐이었지 롤모델은 그닥..) 어머니에 대해 많이 얘기했는데 공교롭게도 순의가 그날 우리 어무이와 대면했드랬죠 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
- ExtremeBear/VideoShop . . . . 26 matches
ExtremeBear 프로젝트
고객의 요구로 비디오 가게관리 프로그램 구현
<<비디오 대여 프로그램>>
구프로 대여료 : 300원
신프로 대여료 : 500원
(비디오 샵에 들어온지 15일 이내만 신프로이다)
구프로 : 6박 7일
신프로 : 3박 4일
포인트 점수 : 100점시 비디오 공짜로 하나 빌릴 수 있음
비디오제목, 주인공, 분류(액션, 멜로, 애니메이션...), 등급(몇살이상),
연체료, 포인트 누적 점수(가족은 하나로 통합되어 있다. 이름 여려명 밑에 주소, 전화번호 한개)
a.제목으로 찾기
b.분류로 찾기
c.주인공으로 찾기
d.신규프로
전화번호 뒷자리 물어보는 입력창이 뜨고 같은 번호 중복 되있는 것이 있을 경우 이름도 입력받아서
이름 물어보고 없을 경우 신규 입력 받음
비디오 번호 찍으면(원래는 바코드지만) 비디오 제목명이 뜨고 그 비디오는 대여상황으로 바뀌어야 한다.
등급에 안맞을 경우는 (주민등록번호와 관련되어서 알아서 프로그램이 처리해준다 )대여불가능하다고 나온다.
클릭하면 대여기간이 적은 순으로 뜨고 연체료가 있을 시 연체료 정보도 함께 보여준다.
- Garbage collector for C and C++ . . . . 26 matches
* 유닉스나 리눅스에서는 "./configure --prefix=<dir>; make; make check; make install" 으로 인스톨 할수 있다.
* GNU-win32 에서는 기본으로 있는 Makefile 을 사용하면된다.
/! 시스템에 따라 Makefile 내용 중 CC=cc 를 CC=gcc 로 수정하여야 한다.
* MS 개발 툴을 사용한다면 NT_MAKEFILE 을 MAKEFILE 로 이름을 바꾸어 사용한다.
* CC=cc 를 CC=gcc 로 수정.
# (Clients should also define GC_SOLARIS_THREADS and then include
# Recommended for heaps larger than about 64 MB.
# -DDONT_ADD_BYTE_AT_END is meaningful only with -DALL_INTERIOR_POINTERS or
# causes all objects to be padded so that pointers just past the end of
# -DDONT_ADD_BYTE_AT_END disables the padding.
# implementations, and it sometimes has a significant performance
# (Probably works for UNIX, and win32.) If you build with DBG_HDRS_ALL,
# order by specifying a nonstandard finalization mark procedure (see
# Not recommended unless you are implementing a language that specifies
# This is useful if either the vendor malloc implementation is poor,
# or if REDIRECT_MALLOC is used.
# value of the near-bogus-pointer. Can be used to identifiy regions of
# memory that are likely to contribute misidentified pointers.
# for objects allocated with the debugging allocator. If all objects
# implemented only if this is defined.
- Gof/Strategy . . . . 26 matches
비슷한 문제들을 해결할 수 있는 알고리즘의 군들을 정의하고, 각각의 알고리즘을 캡슐화하고, 그 알고리즘들을 교환할 수 있도록 한다. Strategy는 알고리즘들로 하여금 해당 알고리즘을 이용하는 클라이언트로부터 독립적일수 있도록 해준다.
텍스트 스트림을 줄 단위로 나누는 많은 알고리즘들이 있다. (이하 linebreaking algorithm). 해당 알고리즘들이 그것을 필요로 하는 클래스에 긴밀하게 연결되어있는 것은 여러가지 이유 면에서 바람직하지 못하다.
* linebreaking이 필요한 클라이언트이 그 알고리즘을 직접 포함하고 있는 경우에는 클라이언트들이 더 복잡해질 수 있다. 이는 클라이언트들을 더 커지거나 유지가히 힘들게 한다. 특히 클라이언트가 여러 알고리즘을 제공해야 하는 경우에는 더더욱 그렇다.
* linebreaking이 클라이언트코드의 일부인 경우, 새 알고리즘을 추가하거나, 기존 코드를 확장하기 어렵다.
이러한 문제는, 각각의 다른 linebreaking을 캡슐화한 클래스를 정의함으로 피할 수 있다. 이러한 방법으로 캡슐화한 알고리즘을 stretegy 라 부른다.
http://zeropage.org/~reset/zb/data/strat011.gif
Composition 클래스는 text viewer에 표시될 텍스틀 유지하고 갱신할 책임을 가진다고 가정하자. Linebreaking strategy들은 Composition 클래스에 구현되지 않는다. 대신, 각각의 Linebreaking strategy들은 Compositor 추상클래스의 subclass로서 따로 구현된다. Compositor subclass들은 다른 streategy들을 구현한다.
* TexCompositor - linebreaking 에 대해 TeX 알고리즘을 적용, 구현한다. 이 방법은 한번에 문단 전체에 대해서 전반적으로 linebreak를 최적화하려고 한다.
Composition 은 Compositor 객체의 참조를 가진다. Composition 이 텍스트를 다시 형식화할때, Composition 은 Compositor 에게 해당 책임을 넘긴다. Composition의 클라이언트는 사용하려는 Compositor의 참조를 받음으로써 사용해야 할 Compositor을 구체화시킨다.
StrategyPattern 은 다음과 같은 경우에 이용할 수 있다.
* 많은 관련 클래스들이 오직 그들의 행동들에 의해 구분된다. Strategy들은 많은 행위중에 한가지로 상황에 따라 클래스을 설정해주는 방법을 제공해준다.
* 당신은 알고리즘의 다양함을 필요로 한다. 예를 들어, 당신이 알고리즘을 정의하는 것은 사용메모리/수행시간에 대한 trade-off (메모리를 아끼기 위해 수행시간을 희생해야 하거나, 수행시간을 위해 메모리공간을 더 사용하는 것 등의 상관관계)이다. Strategy 는 이러한 다양한 알고리즘의 계층 클래스를 구현할때 이용될 수 있다.
* StrategyPattern을 이용함으로써 복잡함이 노출되는 것과 알고리즘 구체적인 데이터 구조로 가는 것을 피할 수 있다.
* 클래스가 많은 행위들을 정의한다. 이는 다중조건문들에 의해서 구현되곤 한다. 이러한 많은 조건문들 대신, 각각 관련된 조건들을 Strategy 클래스들에게로 이동시킬 수 있다.
http://zeropage.org/~reset/zb/data/strategy.gif
* ConcreteStrategy 객체로 설정되어진다.
* 조건문을 제거하기 위한 Strategy
- HardcoreCppStudy/첫숙제/Overloading/임민수 . . . . 26 matches
if (garo < 0)
if (sero > num-1)
if (square[garo][sero] !=0)
if (garo > num-1)
if (sero < 0)
cout << endl;
cout << "방향을 입력하세요 (0은 북쪽방향 , 시계 방향으로 1~7 , 끝내기는 999) : ";
if(direction[i-2]=='9' && direction[i-1]=='9' && direction[i]=='9')
if(x==garo)
else if(x<0)
if(y==sero)
else if(y<0)
cout << endl ;
cout << endl << "총 이동 횟수는 " << cnt << "입니다. ";
cout << "방향을 입력하세요 (0은 북쪽방향 , 시계 방향으로 1~7 , 끝내기는 999) : ";
if(array[i-2]=='9' && array[i-1]=='9' && array[i]=='9')
if(x==garo)
else if(x<0)
if(y==sero)
else if(y<0)
- HowToBlockEmpas . . . . 26 matches
ZeroWiki 는 ZP 내부작업을 위한 위키입니다. 아무래도 외부로 노출되었을 경우 여러 문제들이 발생할 수 있을 것입니다. (저번과 같은 크래킹의 문제도 있을테고요..)
지금 empas 에서 zeropage 의 해당 위키페이지들이 전부 노출되어버린 상태입니다. 아무래도 위험하다 생각되어지는데 좋은 해결방법이 없을까요? (또는 대외적으로 이를 홍보방법으로 이용할까요? -_-a)
엠파스의 검색 로봇들을 막아보세! [[BR]]
무찌르자 검색 로봇!! [[BR]]
타도 검색 로봇!! [[BR]]
보통 검색 로봇들은 해당 페이지들의 링크들을 얻어서 그 페이지들을 검색하고, 다시 또 링크를 얻어서 페이지를 검색하는 식으로 재귀적으로 페이지들을 검색한뒤, 내용들을 인덱스화 하여 데이터베이스에 저장하는 방식일 것입니다.
1. zeropage 왼쪽 frame 의 ZeroWiki 부분에 로그인 루틴을 붙이고, ZeroWiki 의 alias를 수정하자. (단, open password)
* empas 에 등록 철회를 요청한다. 만약 거부할 경우에는 무단링크로 처리 가능하다고 합니다. (거부당한 증거 필요) - 이에 대한 요청 방법 아시는 분?
* 검색 엔진 IP를 막는다. - 그렇더라도 이미 노출된 페이지들은.. 결국 경로를 바꿔야 하려나요.
''이 방법이 가장 확실함. 아파치 웹 서버에서 IP deny를 시킴. 이때 검색 엔진은 보통 10여개의 IP를 사용하므로 모두 막아줘야 함''
* 이를 ZP 홍보기회로 이용한다. --a
* 우리 모두 위키의 정신을 한 번 되세겨 보자. 위키는 자유공간인데 그걸 계정을 만든다느니 어짼다느니 한다는 건 위키의 정신에 위배되는 행위라고 본다. delete 하지 못하게만 한 것으로 충분하지 않을까 싶은데.... From X
* Page History 로 해당 페이지를 원상복구 할 수 있고, 백업도 주기적으로 잘 해주고 있으니, 그냥 검색엔진 IP를 막는 것으로 마무리 지었으면 합니다. 단, 동문서버에 링크 거는 것에 대한 것이 문제인데, 이는 동문서버팀에게 요청하는 선으로 해결지었으면 합니다. --석천
검색서비스를 제공하고 있는 곳에서는 로봇 에이전트를 사용하여 검색한다는거 아실겁니다. 이러한 로봇은 강제성은 없지만 로봇 배제 표준을 따르도록 프로그래밍 하는 것이 관례 입니다. 웹서버 루트에 robots.txt 파일을 다음과 비슷하게 작성하시면 되겠습니다.[[BR]]
모든 페이지의 HTML 헤더에 meta NAME="ROBOTS" 을 설정해서 다는 걸로 해결이 되지 않을까 생각됩니다.
- JavaStudy2003/두번째과제/곽세환 . . . . 26 matches
= ToyProblems 를 자바로 =
private int max_x; //판의 가로크기
private int max_y; //판의 세로크기
if (array[i][j] == 0)
if (x == -1 || x == max_x || y == -1 || y == max_y)
else
if (bo.IsPostionWall(x, y))
else
board_x = Integer.parseInt(JOptionPane.showInputDialog(null, "격자의 가로크기"));
board_y = Integer.parseInt(JOptionPane.showInputDialog(null, "격자의 세로크기"));
start_x = Integer.parseInt(JOptionPane.showInputDialog(null, "바퀴의 가로위치"));
start_y = Integer.parseInt(JOptionPane.showInputDialog(null, "바퀴의 세로위치"));
변수와 메소드를 하나의 소프트웨어 묶음으로 만든다.
모듈성은 각각의 객체를 위한 소스코드가 서로 무관하게 유지될 수 있다는 것이다.
정보은닉은 객체가 가지는 정보에 접근 권한을 주어 다른 객체로 부터의 접근을 제한할 수 있다.
특정 종류의 객체들에 대해 일반적으로 적용할 수 있는 변수와 메소드를 정의하고 있다.
클래스를 실제로 사용할 수 있도록 선언하는 것
여러개의 클래스가 같은 메시지에 대해서 각자의 방법으로 작용할 수 있는 능력이다.
friendly(생략):같은 클래스, 같은 패키지내에 있는 클래스에서 접근 가능
아직 상속을 읽고 있는 중이기 때문에 모르는 것이지요^^. private 과 protected 는 상속이 이루어지지 않으면 똑같이 사용이 됩니다. 하지만 상속이 이루어진다면 의미는 틀려지죠. 만약 '''자동차''' 라는 객체가 있다고 봅시다. 그런데 이것은 굉장히 추상적인 개념이지요. 이 '''자동차''' 의 하위 개념인 '''트럭''' 과 '''버스''' 와 '''승용차''' 를 '''자동차'''에서 상속받아 만들었다고 합시다. 그랬을 때 '''자동차''' 가 가지는 어떠한 상태는 '''트럭''' 과 '''버스''' 와 '''승용차'''도 역시 가지고 있을 수도 있습니다. 이런 경우 protected 로 선언해 주면 그 상태를 상속받을 수 있다는 것이지요. 하지만 외부에서 접근은 불가능하다는 사실은 변함이 없습니다. 하지만 public 은 외부에서 접근이 가능하게 되는 것이지요. 한번 직접 코드로 만들어보세요. 어떻게 다른지 채험하는게 가장 이해가 쉬울겁니다.
- JavaStudy2003/두번째과제/노수민 . . . . 26 matches
if(number!=1)
else return 1;
다음의 두 가지로 나눌 수 있다.
이러한 실세계를 소프트웨어적으로 표현하기 위한 방법중 하나가 '객체지향'이다.
로 모델링한다.
즉, 상태를 나타내는 변수와 그 상태를 변경하는 행동의 메소드로
실세계의 객체를 소프트웨어 객체로 모델링하고 구현한다.
* 캡슐화 : 변수(상태)와 메소드(행동)를 하나의 묶음으로 캡슐화한다.
이것으로 인해 모듈성과 정보은닉이라는 이득을 얻는데,,
실세계의 객체들의 상태와 행동들을 소프트웨어적으로 추상화해 놓은 것이다.
인스턴스를 생성하는 것은 벽돌틀로 벽돌을 찍는다고 할 수있다.
자바 언어는 객체지향 프로그래밍을 할 수 있도록 문법을 제공해 준다.
* 같은 이름으로 여러 일을 하는 것
자바 언어를 이용하여 객체를 생성하고 필요에 따라 값을 초기화 해 주어야 하는 경우
* new 연산자로 객체를 생성할때 호출, 메모리를 할당하고 객체 생성자 호출
* 메소드 내에서 변수와 객체의 이름이 같을 경우 변수 앞에 this를 붙임
이는 인스턴스 변수와 인스턴스 메소드 및 클래스 변수와 클래스 메소드로 나뉜다.
클래스를 처음으로 메모리에 적재
* 모든 인스턴스 변수를 0, '\u0000', false, 그리고 null 등과 같은 디폴트 초기치로 초기화
기본적으로 하위클래스는 상위클래스로부터 상속되는 상태와 행동들을 가진다.
- MFC/RasterOperation . . . . 26 matches
CDC는 다양한 드로윙 모드를 제공한다. ROP는 그런 드로윙 모드의 하나로, 동적으로 변화되는 그림을 그릴때 그림을 지우고 다시그리는 작업을 하는데 유용하다.
{{{~cpp CDC::SetROP2()}}} 라는 함수로 제공하며 RasterOPerationTo의 약자이다.
|| R2_COPYPEN || 펜색으로 그려짐 ||
|| R2_NOTCOPYPEN || 펜색과 반대의 색으로 그려짐 ||
|| R2_MERGEPENNOT || 펜의 색과 배경과 반대색을 OR로 만들어진 색으로 그려짐 ||
|| R2_MASKPENNOT || 펜 색과 배경과 반대색을 AND로 만들어진 색으로 그려짐 ||
|| R2_MERGENOTPEN || 펜의 반대색과 배경색을 OR로 연산한 색으로 그려짐 ||
|| R2_MASKNOTPEN || 펜의 반대색과 배경색을 AND로 연산한 색으로 그려짐 ||
|| R2_MERGEPEN || 펜색과 배경색을 OR로 연산한 색으로 그려짐 ||
|| R2_NOTMERGEPEN || R2_MERGEPEN의 반대색으로 그려짐 ||
|| R2_MASKPEN || 배경색과 펜의 색을 AND로 연산한 색으로 그려짐 ||
|| R2_NOTMASKPEN || R2_MASKPEN색과 반대의 색으로 그려짐 ||
|| R2_XORPEN || 펜과 배경색을 XOR연산한 결과로 그려짐 ||
|| R2_NOTXORPEN || R2_XORPEN과 반대의 색으로 그려짐 ||
이제 그려진 그림위에 다시 붉은 색으로 그림을 그린다고 가정해보자.
상기에서 보듯 원래의 배경 색으로 다시 채워진 것을 확인할 수 있다.
이를 이용하면 그림을 지우는 과정을 하지 않고 단순히 동일한 그림을 그림으로써 기존의 그려진 그림을 간단히 지우는 것이 가능하다.
- MoinMoinBugs . . . . 26 matches
http://www.encrypted.net/~jh/img/roach.gif
Tables don't work right if there are trailing spaces.
''Well, Netscape suxx. I send the cookies with the CGI'S path, w/o a hostname, which makes it unique enough. Apparently not for netscape. I'll look into adding the domain, too.''
* Solve the problem of the Windows filesystem handling a WikiName case-indifferent (i.e. map all deriatives of an existing page to that page).
* Check whether the passed WikiName is valid when editing pages (so no pages with an invalid WikiName can be created); this could also partly solve the case-insensitive filename problem (do not save pages with a name only differing in case)
* RecentChanges can tell you if something is updated, or offer you a view of the diff, but not both at the same time.
* If you want the ''latest'' diff for an updated page, click on "updated" and then on the diff icon (colored glasses) at the top.
* That's what I'm doing for the time being, but by the same rationale you don't need to offer diffs from RecentChanges at all.
* The intent is to not clutter RecentChanges with functions not normally used. I do not see a reason you want the lastest diff when you have the much better diff to your last visit.
* It'd be really nice if the diff was between now and the most recent version saved before your timestamp (or, failing that, the oldest version available). That way, diff is "show me what happened since I was last here", not just "show me what the last edit was."
* Hmmm, that '''is''' so. :) Take a look at the message at the top of the diff page after clicking on "updated", it'll often show text like "spanning x versions". You need the current CVS version for that, though.
* Not CVS, but versioning all the same. I mean you have to get the most recent code from the SourceForge CVS archive for some features to work, if you test on a ''local'' wiki.
With 0.3, TitleIndex is broken if first letter of Japanese WikiName is multibyte character. This patch works well for me but need to be fixed for other charsets.
if isUnicodeName(name):
+ if letter not in (string.letters + string.digits):
if letter not in index_letters:
index_letters.append(letter)
if letter <> current_letter:
''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.''
''They render identically with IE5. Provide some info on your browser & OS. And the HTML is identical:''
- OurMajorLangIsCAndCPlusPlus/stdlib.h . . . . 26 matches
== 매크로 (Macros) ==
|| 매크로 명 || 설명 ||
|| MB_CUR_MAX || 현재 사용 중인 로케일에서 멀티바이트 문자의 최대 길이 ||
|| double atof(const char *str); || 문자열을 실수(double precision)로 변환 ||
|| int atoi(const char *str); || 문자열을 정수(integer)로 변환 ||
|| double strtod(const char *str, char **endptr); || 문자열을 실수(double precision)로 변환 ||
|| long int strtol(const char *str, char **endptr, int base); || 문자열을 정수(long integer)로 변환 ||
|| unsigned long int strtoul(const char *str, char **endptr, int base); || 문자열을 정수(unsigned long)로 변환 ||
|| void *calloc(size_t nitems, size_t size); || 요청된 메모리 할당 (모든 원소를 0으로 초기화 한다) ||
|| void abort(void); || 비정상적인 프로그램 종료를 발생시킨다 ||
|| int atexit(void (*func)(void)); || 프로그램이 정상적으로 종료될 때 전달인자로 넘겨진 함수포인터를 이용해서 특정 함수 실행 ||
|| void exit(int status); || 정상적인 프로그램 종료를 발생시킨다 ||
|| int system(const char *string); || 전달인자로 받은 명령 실행 ||
|| div_t div(int numer, int denom); || 전달인자의 numer를 denom으로 나눈 값과 나머지를 구조체형식으로 리턴 ||
|| size_t mbstowcs(schar_t *pwcs, const char *str, size_t n); || 다중 바이트 문자 스트링을 wide 문자 스트링으로 변환 ||
|| int mbtowc(whcar_t *pwc, const char *str, size_t n); || 다중 바이트 문자를 wide 문자로 변환 ||
|| size_t wcstombs(char *str, const wchar_t *pwcs, size_t n); || wide 문자 스트링을 다중 바이트 스트링으로 변환 ||
|| int wctomb(char *str, wchar_t wchar); || wide 문자를 다중 바이트 문자로 변환 ||
if( string == NULL )
else
- REFACTORING . . . . 26 matches
* 프로그램의 내부구조조정. 실제로 해당 코드가 하는 역할은 수정하지 않으면서 내부구조를 더 효율적으로 수정하는 작업. (수학의 인수분해를 생각해볼 것)
* Refactoring 을 하기 위해서는 UnitTest code가 필수적이다. 일단 처음 Refactoring에 대한 간단한 원리를 이해하고 싶다면 UnitTest 코드 없이 해도 좋지만, UnitTest code를 작성함으로서 Refactoring 에 대한 효과를 높일 수 있다. (Refactoring 중 본래의 외부기능을 건드리는 실수를 막을 수 있다.)
== Refactoring 을 함으로써 얻는 이득 ==
* 좋은 디자인으로서 프로그래밍 시간을 단축해준다.
특별히 때를 둘 필요는 없다. 틈나는 대로. Don Robert 의 The Rule of Three 원칙을 적용해도 좋을 것 같다.
* 뭔가 비슷한 코드를 만들 것이고, 중복됨이 있은 경우에 당신은 주춤할 것이다. 하지만 어쨌든 일단 중복되는 내용이 있더라도 만들어라.
Three Strike 법칙은 외우기 쉬워서 처음 Refactoring 을 하는 사람들에겐 적당하다. 하지만, 저 법칙은 주로 중복이 일어날 때의 경우이고, Rename Method/Field/Variable 같은 Refactoring 은 지속적으로 해주는 것이 좋다.
그리고 다음과 같은경우 Refactoring을 함으로써 이득을 얻을 수 있다.
* 실제로 Refactoring을 하기 원한다면 Chapter 1,2,3,4를 정독하고 RefactoringCatalog 를 대강 훑어본다. RefactoringCatalog는 일종의 reference로 참고하면 된다. Guest Chapter (저자 이외의 다른 사람들이 참여한 부분)도 읽어본다. (특히 Chapter 15)
["Refactoring"] 과 TestDrivenDevelopment 는 일종의 메타패턴이다. (여기에 개인적으로 하나 더 추가하고 싶다면 ResponsibilityDrivenDesign) 두개에 충실하면 ["DesignPattern"] 으로 유도되어지는 경우가 꽤 많다.
["Refactoring"] 에 의외로 중요한 기술로 생각되는건 바로 Extract Method 와 Rename 과 관련된 Refactoring. 가장 간단하여 시시해보일지 모르겠지만, 그로서 얻어지는 효과는 대단하다. 다른 Refactoring 기술들의 경우도 일단 Extract Method 와 Rename 만 잘 지켜지면 그만큼 적용하기 쉬워진다고 생각.
개인적으로 Refactoring 을 적용하는중, 자주 이용되는 테크닉이 StructuredProgramming 기법인 StepwiseRefinement (Rename 도 일종의 StepwiseRefinement 기술이라 생각이 든다)라는점은 의외일련지 모르겠다. OOP 와 SP 는 상호배제의 관계가 아니기에. --["1002"]
- Visual Studio 2005 Preview 버전 구해서 깔아봤는데.. 거기 없었던것 같았는뎅..;; 플러그인 형식으로 VS7 이나 7.1에서 [Refactoring] 할수 있게 해주는 툴은 구했음.. - [임인택]
- 만년달력/곽세환,조재화 . . . . 26 matches
cout<<"일"<<"\t"<<"월"<<"\t"<<"화"<<"\t"<<"수"<<"\t"<<"목"<<"\t"<<"금"<<"\t"<<"토"<<endl;
cout << i+1 << "\t";//날짜를 순서대로 출력
if(weekDay==7)//0~6 을 일~토 라고 했을때 토요일값을 입력하면 한칸 뛰운다.
cout << endl;
cout<<endl;
if(x%4 ==0)
if(x%100 ==0)
if(x%400 ==0)
if( y==1 || y==3 || y==5 || y==7 || y==8 || y== 10 || y==12)
else if( y==2)//2월은 29일 또는 28일...
if(isYunYear(x)==true)
else//그외 월은 모두 30일
cout<<"일"<<"\t"<<"월"<<"\t"<<"화"<<"\t"<<"수"<<"\t"<<"목"<<"\t"<<"금"<<"\t"<<"토"<<endl;
cout << i+1 << "\t";//날짜를 순서대로 출력
if(weekDay==7)//0~6 을 일~토 라고 했을때 토요일값을 입력하면 한칸 뛰운다.
cout << endl;
cout<<endl;
if(x%4 ==0)
if(x%100 ==0)
if(x%400 ==0)
- 만세삼창VS디아더스1차전 . . . . 26 matches
[http://trac.izyou.net/threechang/attachment/wiki/WikiStart/three_chang_250.JPG?format=raw] VS 로고도 없는 그들...
니머리는 무슨 언어로 이해하뉘?
"형" 이라는 프로퍼티를 "꼬봉"으로 바꾸면 되겠다
if k = "형" || k = "꼬붕"
if k == "형" || k == "꼬붕":
if k == "형" :
else
if k == "형" || k == "꼬붕":
if k == "형" :
else
그런식으로 말하면 '인수' 는 디있냐
ㅎㅎ 그쪽이야 말로 비겁하군 ㅋㅋ
if k == "형" || k == "꼬붕":
if k == "형" :
else
음 고맙다 어쨋든 인수 형은 나로군
흠.. MSN에서 있었던 영창이와 인수의 신경전 - 일종의 언어유희 - 을 공개한다. 일단 1차전은 비긴 걸로 끝났다. 추후 다른 팀원들이 알아서 싸울 거라 믿어 의심치 않는다.
인수 비겁하군 ㅡ.ㅡ 왜 대화를 고치나 -_-; 어디서 거짓된 정보로 팀원들을 속이려 하나~ 인수군.. 진실은 밝혀진다
그리고 내가 팀 이름 기타 등등으로 바꾸랬짜나 ㅋㅋㅋ - [eternalbleu]
누구 맘대로 기타 등등이냐
- 방울뱀스터디/만두4개 . . . . 26 matches
'만두 4개'란? 파이썬으로 만들 게임 이름입니다. 일종의 땅따먹기 게임이라 생각하시면 됩니다.
* 높은 점수순으로 5위까지 저장
if key in ['Right', 'Left', 'Up', 'Down', 'Space']:
if i == 0:
if direction == 'Right' and key != 'Right':
traceList.append((row,col))
elif direction == 'Left' and key != 'Left':
traceList.append((row,col))
elif direction == 'Up' and key != 'Up':
traceList.append((row,col))
elif direction == 'Down' and key != 'Down':
traceList.append((row,col))
if dir == 'Right'and'Space' and x <= MAX_WIDTH-GAP-10 :
elif dir == 'Left' and x >2:
elif dir == 'Up' and y > 2:
elif dir == 'Down' and y <= MAX_HEIGHT - GAP - 10:
#if dir == 'Right' and x < MAX_WIDTH - GAP - 10:
#elif dir == 'Left' and x > 2:
#elif dir == 'Up' and y > 2:
#elif dir == 'Down' and y < MAX_HEIGHT - GAP - 10:
- 새싹교실/2011/쉬운것같지만쉬운반/2011.5.3 . . . . 26 matches
4. file을 한번에 object파일로 바꾸는 컴파일말고 다른 개념이 있을까? 있다면 어떤 개념일까?
7. printf함수는 어떤 원리로 작동할까?
9. 각 자료형들의 표현 가능한 범위. 이를 통해 32bit 시스템에서 64bit 시스템으로 바뀌었을 때 달라지는 점들을 간략하게 배워봤다.
* 월요일 ( 5월 9일 ) 오후 6시에 모든 새싹팀들이 모여서 간단하게 프로그램을 진행합니다~ 나오시오~
* 1번부터 9번까지 각자의 생각으로 정리하시오. 수업시간에 들은 내용이 기억나면 기억나는 대로 써도 됨. 아예 개념조차 모른다면 '잘 모르겠습니다' 라고 쓰세요. 그게 아니라면 '''반드시''' 정리하세요.
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 지난 시간 배웠던 것을 반복을 했다. 모두에게 문제에 대한 대답을 전부 들었다. 굉장히 의미가 있었다고 생각한다. 스쳐지나가는 기본들을 다시 다잡았다고 생각한다. 잘못알고 있거나 약간 부족하게 알고 있던 내용들을 스스로 피드백을 줌으로서, 정리하게 하였다. 앞으로 마무리 할 때 쯤 다시 한번 이런 시간을 가져야겠다. - [박성현]
* 선생님의 질문에 답하는 시간을 가졌다. 질문에 답하면서 많이 헷갈렸던 것 같다. 다른 애들의 답변을 들으면서 많은 것을 배운 것 같다. 나도 기본적인 부분을 다시 한 번 공부해봐야겠다. 프로그래밍은 아무리 작은 것이라도 절대 놓쳐선 안 되기 때문에 기본에 충실해야 되니까... - [장용운]
* 3월 초에 배웠던 것 부터 얼마전에 배운것 까지 한번 훑어보았다. 평소에는 생각해보지 않았던 원론적인 것들에 대해 생각해보게 된 좋은 시간이었다. 가끔은 이렇게 처음부터 왔던 길을 돌아보는 것도 유익하다는 생각이 들었다. 앞으로 가끔 이런 시간을 가져봐야 겠다. - [송치완]
1. 프로그램을 만들기 위해!
7. 인자 전달받음 -> 첫 번째 인자로 전달받은 문자열에 맞는 스타일로 전달받은 변수의 값들을 서식 문자에 맞추어 바꾸어 기본 출력 스트림으로 출력한다!
9. 32비트 컴퓨터에서는 기본 정수형(int)에 대해 32비트의 메모리 공간을 할당해 주는 데에 비해서 64비트 컴퓨터에서는 64비트의 메모리 공간을 할당해 주기 때문에 자료 크기가 달라지고 MSB의 위치가 달라져서 프로그램이 오작동하거나 실행할 수 없게 된다.
-이제 컴퓨터는 사람이 시킨대로 작업을 할 수 있게 되었다
4. file을 한번에 object파일로 바꾸는 컴파일말고 다른 개념이 있을까? 있다면 어떤 개념일까?
-프로그램이 길어져도 어디가 잘못됐는지 보다 쉽게 찾을 수 있기 때문
7. printf함수는 어떤 원리로 작동할까?
9. 각 자료형들의 표현 가능한 범위. 이를 통해 32bit 시스템에서 64bit 시스템으로 바뀌었을 때 달라지는 점들을 간략하게 배워봤다.
32비트 시스템에선 램디스크로 놀고 있는 램마저 알뜰하게 써주는 센스가 필요합니다.
(ex.램에다가 윈도우 환경변수를 저장,각종 웹브라우저 캐시 저장. 컴을 끌때 램에있던건 하드로 갔다가 컴을 켤때 다시 불러옴. 가끔 램디스크가 사라져 당황스럽게 되는게 단점)
- 서지혜/Calendar . . . . 26 matches
* 으아니 왜 루비로 짜도 깔끔하고 예쁘지 않지.. 코드량의 감소가 얼마없어..
* Calendar class
public class Calendar {
* Calendar class
class Calendar
@year = CalendarFactory.new.create(year)
end
end
end
end
end
end
end
end
end
end
* CalendarFactory class
class CalendarFactory
end
end
- 수학의정석/집합의연산/조현태 . . . . 26 matches
음.. 저번 것과 마찬가지로 입력받는 부분은 시간계산에 포함하지 않는다. (사용자의 입력시간이 결정하기 때문.)
또한 오버헤드를 줄인다는 명목하에 함수로 나누지도 않았따. (귀차니즘.ㅎ)
알고리즘은 1과 0으로 수를 저장, 한칸씩 옮겨가면서 모든 경우의 수를 찾는 것이다.
또한 예를 들어 7개일 경우는 1개일때, 2개일때, ... 7개일때 이런식으로 나누어서 연산을 한다.
이렇게 세팅후 1인 경우에 출력한다. 한차례연산후
그후 2개로 증가시켜서 계산...
이런식으로 연산을 하여 모든 경우의 수를 찾아낸다.^^
printf("CPU CLOCKS = %d\n", clock() - time_in); // 끝났을때 시간 - 초기 시작시간 = 프로그램 실행 시간
return 0; // 프로그램 종료.
if (i<temp_gaesu)
else
int end=gaesu-1;
if(1==temp_where[j])
int find_last=end;
if (1==temp_where[find_last])
if (find_last==end)
for (register int j=end; j>=0; --j)
if (0==temp_where[j])
else
if (0==find_zero)
- 압축알고리즘/홍선,수민 . . . . 26 matches
int start_Number, end_Number;
if ( index <max && 48<= (int)buffer[index] && (int)buffer[index] <= 57 ){
if(ing_Number)
end_Number= index;
if(!ing_Number)
end_Number= index;
else if(ing_Number)
else return false;
ifstream fin("input_e.txt");
if(test(i))
for(j=start_Number ;j<= end_Number;j++)
cout << buffer[end_Number+1];
cout << endl;
ifstream fin("input_e.txt");
ifstream fin("input_c.txt");
if( (standard-buffer) < -9 || 9 < (standard-buffer) ) {
cout << endl;
ifstream fin("input_e2.txt");
if(su=='-')
else if( su < 48 || 57< su )
- 위키에 코드컬러라이저 추가하기 . . . . 26 matches
MoinMoin에 파이선용 코드 컬러라이저는 기본으로 들어있다. 그러나 자바나 C++용 코드 컬러라이저는 기본이 아니다. 그래서 MoinMoin:ParserMarket 에 가서 자바와 C++용 파서를 받아왔다. 그런데 이럴수가 코드블럭문안에서 파서 사용이 안되는것이다.
* 다음 2개의 파일을 MoinMoin/processor 디렉터리에 생성한다. (본인은 이름의 통일감을 위해 Colorize.py 도 PythonColorize.py 로 이름을 바꾸었다.)
if not formatter.in_pre:
if string.strip(lines[0]) == "#!cplusplus":
if not formatter.in_pre:
if string.strip(lines[0]) == "#!java":
if self.in_pre:
if self.in_pre == 2:
endpos = string.find(line, "}} }") # 옆에 원래는 뛰어쓰기 안함
if endpos == -1:
self.colorize_lines.append(line)
# send rest of line through regex machinery
line = line[endpos+3:]
elif string.strip(line)[:2] == "#!" and string.find(line, 'python') > 0:
if self.in_pre:
if self.in_pre == 2:
endpos = string.find(line, "}} }") # 옆에 원래는 뛰어쓰기 안함
if endpos == -1:
self.colorize_lines.append(line)
# send rest of line through regex machinery
- 3rdPCinCAUCSE/FastHand전략 . . . . 25 matches
책은 '쉽게 배우는 실전 알고리즘 & 정보 올림피아드 도전하기'인데, 별로 추천하진 않습니다. 다른걸 떠나서, 쉽게 답이 나올 문제도 어렵게 풉니다..;; 단, 문제유형을 파악하기엔 어느정도 좋습니다.
알고리즘을 위해 연습장을 썼습니다. B 문제와 A 문제는 이전에 같은 프로그램을 짜 본 경험이 있던 관계로 특별한 계산을 하지 않았으며, C 번 문제에 대해서 분석차 이용하였습니다. 그리고 테스트를 위해 예제 입력값들을 텍스트 화일로 미리 작성해두고, 도스창에서 이를 redirection, 결과를 확인했습니다. 이러한 방법은 특히 A 번 문제에서 큰 힘을 발휘했습니다. (A번 문제는 입력값이 오목판 전체 이기 때문이죠.) 결과에 대한 확인 테스트 시간이 1초도 걸리지 않았고, 테스트 인풋 데이터 만드는데도 거의 시간소요가 없었습니다.
C 번의 경우는 일단 [geniumin] 군이 초기 분석 & 알고리즘을 만들고 중반에 [1002]군이 pseudo-code 화, 후반 알고리즘 검산 & 알고리즘 수정에 대해서 [geniumin] & [경태]군이, 구현은 pseudo code 를 만들던 [1002]가 했습니다.
구현은 C++로 하였으며 iostream 과 vector 를 이용했습니다.
[1002] 가 이전에 비슷한 문제를 풀어본 경험이 있던 관계로 바로 구현을 맡았습니다. 대략 코딩에 2-3분정도 소요하였고, 그 동안 [경태]와 [geniumin] 가 3번문제에 대해 분석.
[경태]가 코딩을 맡았으며 그 동안 [1002] 와 [geniumin] 가 3번문제에 대해 분석. [1002]는 실제 문제를 이해하는 시간이 적었던 관계로 [geniumin] 이 주로 설명. 추후에 [1002] 는 [geniumin] 의 방법이 맞다는 전제하에 pseudo code로의 작성을 도왔습니다.
그동안 [경태]는 A 번 구현 완료. 테스트 데이터를 위해 editplus 로 입력데이터를 test.txt로 작성. DOS 창에서 redirection 으로 프로그램 실행 & 결과 확인. 중간에 5목이 일어난 부분의 첫 위치를 파악하는 부분에서는, 해당 오목 판정결과 함수에서 판정 방향값을 리턴해주는 형태로 함수를 수정, 이를 근거로 첫 위치를 구했습니다.
A 번 진행중 아쉬웠던점은, 제출 전 test 겸 찍었던 데이터를 주석처리하지 않은 바람에 아쉬운 페널티를 먹었다는 점. 이에 대해서는 실제 결과 비교부분까지 fc 등의 프로그램으로 배치화일을 만들었다면 문제가 없지 않았을까 생각.
처음에 두명은 C 번에 대해서 Graph 스타일의 접근을 하였고, 한명은 순차적인 링크드 리스트의 묶음 & recursive 한 순회로 접근했습니다. 의견을 이야기하던중, 실제 구현상으로 볼때 셋의 의견이 같다는 것을 파악하고, 마저 구현으로 들어갔습니다.
대강 디자인한 것으로는, Ball 이라는 객체가 있는데 이 Ball 은 각각 lower 와 higher 가 있어서 매 입력마다 자신보다 큰 Ball, 작은 Ball들을 가지고 있게 됩니다. 그리고 해당 Ball 중 그 Ball 과 연관이 있는 Ball 들, 즉 lower 의 수와 higher 의 수로 봤을때 전체 갯수의 평균값보다 큰 녀석들을 제하고 구한다 식이였습니다.
[geniumin] & [경태] 군에게 다시금 감사하며.. 또하나 느낀점이라면, 협업에서는 사람들에 대한 믿음이 참 중요하다는 생각이 들었습니다. 역시 수학적인 사고 & 알고리즘 부분은 [geniumin]나 [경태]쪽이 저보다 보는 시야가 깊다는 것을 느꼈습니다. [1002]는 처음에 [geniumin] 과 같이 C 번에 대해 알고리즘 분석 & 디자인 할때는 약간 이해가 가지 않는 부분에 대해서 수긍을 잘 안했었는데, 추후 [geniumin]를 믿고 그의 의견이 맞다고 가정하고 문제를 풀고 코드화 했을때 테스트 예제 데이터에 대한 답이 정확히 나오는 것을 보면서, [geniumin]의 알고리즘을 코드화해주는것에 전념하게 되었습니다. 만일 혼자서 고민하고 문제를 각자 따로 풀려고 했었다면 그런 좋은 결과가 나오지 않았을 것입니다. (아쉽게 시간내에 C 번을 통과하지 못했지만, 조금만 더 시간이 있었으면 통과했을것이라는..~) 협업시에 상대에 대한 믿음이 얼마나 중요한가에 대해 다시금 느끼게 되었습니다.
- AustralianVoting/곽세환 . . . . 25 matches
문제를 제대로 이해해야한다.
cout << endl;*/
if (votesPerCandidates[i] > 0.5 * numberOfVoters)
if (votesPerCandidates[i] == 0)
if (sameVote == 0)
else if (sameVote != votesPerCandidates[i])
if (foundWinner || foundTie)
// 가장 적은 득표수를 받은 후보자를 찍은 유권자들은 후보자 선택을 그 후순위자로 선택(2단계)
if (votesPerCandidates[i] == 0)
if (minVote > votesPerCandidates[i])
if (votesPerCandidates[votes[i][rank[i]] - 1] == minVote)
if (eliminated[j] == votes[i][rank[i]])
if (j == eliminatedCnt)
if (votesPerCandidates[votes[i][rank[i]] - 1] == minVote)
if (votes[i][rank[i]] == eliminated[j])
if (foundNextCandidates)
cout << endl;*/
if (foundWinner)
cout << candidates[winner] << endl;
else if (foundTie)
- Cockburn'sUseCaseTemplate . . . . 25 matches
[실용주의프로그래머]에 나온 목적 지향성이 있는 유스 케이스 템플릿
* 선행조건
* 성공적인 종료조건
* 실패로 간주할 종료조건
* 발동조건
== 확장된 경우 ==
== 변이된 경우 ==
* 선행조건: 우리는 구매자의 정보(주소, 이름 등)을 안다.
* 성공적인 종료조건: 구매자는 물건을 받고 우리는 물건 값을 받는다.
* 실패로 간주할 종료조건: 우리가 제품을 보내지 않았다. 구매자가 돈을 보내지 않았다.
* 발동조건: 구매 요청이 들어온다.
== 확장된 경우 ==
4a.구매자가 직접 신용카드로 물건값을 지불한다: 신용카드로 물건값을 받는다. (유스 케이스 44)
== 변이된 경우 ==
1. 구매자는 전화를 걸거나 팩스를 보내거나 웹에서 주문을 하거나 전자상거래로 구매 요청을 할 수도 있다.
7. 구매자는 현금, 우편환, 수표, 신용카드로 지불할 수도 있다.
* 하위 유스케이스들: 주문서를 만든다. (유스케이스 15), 신용카드로 물건값을 받는다.(유스 케이스44), 반송된 물건을 처리한다.(유스 케이스 105)
* 주문 일부만 받을 경우 어떤 일이 일어나는가?
필요한 경우 다른 유스케이스에 링크를 걸 수 있을 것이다. 더 좋은 방법은 책에서 설명했듯이 유스케이스 번호만 주면 보여지는 내용을 자동으로 생성하게 만드는 것이다. 예를 들어 ''UseCase5'' 라고 적힌 부분은 자동으로 ''물건을 구매한다. (유스 케이스5)''이런 식으로 생성한다.
- DPSCChapter2 . . . . 25 matches
Before launching into our descriptions of specific design patterns, we present a case study of sorts, involving multiple patterns. In the Design Pattern preface, the Gang of Four speak about moving from a "Huh?" to an "Aha!" experience with regard to understanding design patterns. We present here a little drama portraying such a transition. It consists of three vignettes: three days in the life of two Smalltalk programmers who work for MegaCorp Insurance Company. We are listening in on conversations between Don (an object newbie, but an experienced business analyst) and Jane (an object and pattern expert). Don comes to Jane with his design problems, and they solve them together. Although the characters are fictitious, the designs are real and have all been part of actual systems written in Smalltalk. Our goal is to demonstrate how, by careful analysis, design patterns can help derive solutions to real-world problems.
디자인 패턴에 대한 구체적인 설명에 들어가기 전에 우리는 다양한 패턴들이 포함된 것들에 대한 예시들을 보여준다. 디자인 패턴 서문에서 GoF는 디자인 패턴을 이해하게 되면서 "Huh?" 에서 "Aha!" 로 바뀌는 경험에 대해 이야기한다. 우리는 여기 작은 단막극을 보여줄 것이다. 그것은 3개의 작은 이야기로 구성되어있다 : MegaCorp라는 보험회사에서 일하는 두명의 Smalltalk 프로그래머의 3일의 이야기이다. 우리는 Don 과(OOP에 대해서는 초보지만 경험있는 사업분석가) Jane (OOP와 Pattern 전문가)의 대화내용을 듣고 있다. Don 은 그의 문제를 Jane에게 가져오고, 그들은 같이 그 문제를 해결한다. 비록 여기의 인물들의 허구의 것이지만, design 은 실제의 것이고, Smalltalk로 쓰여진 실제의 시스템중 일부이다. 우리의 목표는 어떻게 design pattern이 실제세계의 문제들에 대한 해결책을 가져다 주는가에 대해 설명하는 것이다.
우리의 이야기는 지친표정을 지으며 제인의 cubicle (음.. 사무실에서의 파티클로 구분된 곳 정도인듯. a small room that is made by separating off part of a larger room)로 가는 Don 과 함께 시작한다. 제인은 자신의 cubicle에서 조용히 타이핑하며 앉아있다.
제가 디자인부탁하는 것은 바로 이 요구-진행 작업흐름시스템 입니다. (그냥 영어 그대로 써도 될것 같은데.. 대체할 용어가 생각안난다. 아, 어휘 딸려라. --;) 이 개체들이 어떻게 같지 작용해야 할지 모르겠어요. 제가 생각하기론, 이 시스템에서의 기본적인 개체들은 찾은 것 같은데, 각 개체들의 행위들을 어떻게 이해해야 할지 모르겠어요.
1. Data Entry. This consists of various systems that receive health claims from a variety of different sources. All are logged by assigning a unique identifier. Paper claims and supporting via OCR (optical character recognition) to capture the data associated with each form field.
3. Provider/Plan Match. An automated process attempts to mach the plan (the contract unser which the claim is being paid) and the health care provider (e.g., the doctor) identified on the claim with the providers with which the overall claim processing organization has a contract. If there is no exact match, the program identifies the most likely matches based on soundex technology (an algorithm for finding similar-sounding words). The system displays prospective matches to knowledge workers in order of the likeinhood of the match, who then identify the correct provider.
4. Automatic Adjudication. The system determines whether a claim can be paid and how much to pay if and only if there are no inconsistencies between key data items associated with the claim. If there are inconsistencies, the system "pends" the claim for processing by the appropriate claims adjudicator.
5. Adjudication of Pended Claims. The adjudicator can access the system for a claim history or a representation of the original claim. The adjudicator either approves the claim for payment, specifying the proper amount to pay, or generates correspondence denying the claim.
Data Entry. 이것은 다양한 form으로부터 health claims 를 받는 다양한 시스템으로 구성된다. 모두 고유 id 가 할당되어 기록되며, Paper claims OCR (광학문자인식) 로 캡쳐된 데이터는 각 form field 들에 연관되어있다.
Validation. 스캔되고 입력되어진 form들은 각 필드들에 대해 일관성보증과 모든 폼이 완전히 채워졌는지에 대한 보증을 위해 검증작업을 거친다. 불완전하거나 적절치 못한 입력은 시스템에 의해 reject되고, 재확인을 위해 요구자에게 도로 보내진다.
- DevelopmentinWindows/APIExample . . . . 25 matches
= 윈도우즈 API를 이용한 예제 프로그램 =
if (!InitInstance (hInstance, nCmdShow))
if (!hWnd)
if (LOWORD(wParam) == IDOK)
EndDialog(hDlg, LOWORD(wParam));
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_KOR)
#ifdef _WIN32
#endif //_WIN32
#ifdef APSTUDIO_INVOKED
END
END
END
#endif // APSTUDIO_INVOKED
END
END
END
END
#ifdef APSTUDIO_INVOKED
END
END
- MineSweeper/이승한 . . . . 25 matches
if M[i][j]=='*':
if M[i-1][j-1]!= '*' and i-1>=0 and j-1>=0 and i-1<width and j-1<height:
if M[i-1][j]!= '*' and i-1>=0 and j>=0 and i-1<width and j<height:
if M[i-1][j+1]!= '*' and i-1>=0 and j+1>=0 and i-1<width and j+1<height:
if M[i][j-1]!= '*' and i>=0 and j-1>=0 and i<width and j-1<height:
if M[i][j+1]!= '*' and i>=0 and j+1>=0 and i<width and j+1<height:
if M[i+1][j-1]!= '*' and i+1>=0 and j-1>=0 and i+1<width and j-1<height:
if M[i+1][j]!= '*' and i+1>=0 and j>=0 and i+1<width and j<height:
if M[i+1][j+1]!= '*' and i+1>=0 and j+1>=0 and i+1<width and j+1<height:
if M[i][j]!='*':
인풋 아웃풋 조건이 틀립니다. 굳이 상관없을것 같아서 올려봅니다.
//size*size 사이즈의 2중 배열의 모든 원소를 set_all_num값으로 초기화
trace("end set all value");
if( map[i][j]!= -1 && mine_count < quantityMine && !( random(100) % 5 ) ){
}else{
if(map[i][j]!='*'){
if(map[i-1][j-1]=='*')minecount++;
if(map[i-1][j]=='*')minecount++;
if(map[i-1][j+1]=='*')minecount++;
if(map[i][j-1]=='*')minecount++;
- PPProject/Colume2Exercises . . . . 25 matches
cout << "current : " << str << endl
cout << "after shifting : " << roll(str, n, i) << endl;
if ( i % n != 0 )
크게는 같은 알고리즘도 다른 방식으로 접근 할 수 있다.
막힌다는 느낌이 들면, 문제를 다시 이해해본다. HowToSolveIt에서 나왔던 발제를 스스로 해본다. 이번에는 빼먹고 넘어간 조건이있는가?라는 발제를 빨리 했더라면 해결 할 수 있었을 것이다.
void reverse(string & str, int start, int end);
int i = 3; //shift amount
int start, end;
start = 0; end = i-1;
reverse( str, start, end);
start = i; end = n-1;
reverse( str, start, end);
start = 0; end = n-1;
reverse( str, start, end);
cout << str << endl;
void swap(string & str, int start1, int end1, int start2, int end2){
if ( end1 - start1 == end2 - start2){
int limit = end1 - start1 + 1;
cout << str << endl;
다소 여유를 가지고 PairProgramming 을 했다. 혼자 할때보다 문제 파악이 잘 되었고 뭔가 탁 트인 느낌이 들었다. 아쉬운 점이라면 문제 해결에 너무 매달려서 리펙토링을 게을리한 결과 우아한 프로그램을 완성하지 못했다. 늘 그렇듯이 역할에 맞는 변수명 붙이기는 어렵다. 짧았지만 흥미진진한 시간이었다.
- PythonLanguage . . . . 25 matches
'~을 하기에 적합한' 언어는 있어도 '~을 하기 위한' 것이란 없다. -_-; ('~을 하기 위한 API'는 존재할 수 있겠다.) 이녀석도 프로그래밍 언어이므로 프로그래밍을 하기 위한 언어이다. ^^; (PHP도 사람들이 웹프로그래밍으로만 접근해서 그렇지 원래는 shell script programming 도 가능하다. perl 보다 편하게 쓰는 사람들이 많다.)
1991년도에 태어났으므로 1995년에 태어난 자바보다 형이다. 국내에서 인기있는 스크립트 언어중 하나이다.
* '''프로그램의 알고리즘에 집중할 수 있다.'''
* Python 을 '실행가능한 의사코드(pseudo-code)' 라고 부르기도 한다. 그만큼 완성뒤 코드를 보면 참으로 깔끔하다.
* '''프로그래밍이 즐겁다.'''
* 파이썬으로 프로토타입을 빨리 개발하고, 실행 속도를 요하는 부분은 C/C++ 나 자바 코드로 다시 작성해서 붙일수 있다. (["Jython"] 참고)
* PythonXmlRpc - Python 으로 구현하는 RPC 서버 & 클라이언트 프로그램.
* ["상협/Medusa"] - Python 으로 만들어진 높은 성능을 내는 인터넷 서버 프레임워크]
이미 다른 언어들을 한번쯤 접해본 사람들은 'QuickPythonBook' 을 추천한다. 예제위주와 잘 짜여진 편집으로 접근하기 쉽다. (두께도 별로 안두껍다!) Reference 스타일의 책으로는 bible 의 성격인 'Learning Python' 과 Library Reference 인 'Python Essential Reference' 이 있다.
Python 으로 무엇을 할 수 있는지를 알고 싶다면 'Programming Python'를 추천.
'' 파이썬 정보 광장에서 강의 노트가 상당히 좋음, 그것을 보고 처음으로 파이썬 문법을 익혔다. 그리고 나서 PyGame으로 게임 하나 짜는것도 익히는데 도움이 된다. -[상협] ''
* http://openlook.org/ - FreeBSD 포트 커미터로, Open Source 쪽으로 유명하신 NoSmok:퍼키 님 개인 사이트.
* http://www.gpgstudy.com/gpgiki/python_script - 파이썬의 Extending 과 Embedding 의 응용.
* http://www.hanb.co.kr/network/networkmain.html - python 으로 search 해보시라. 재미있는 기사들이 많다.
- 새싹교실/2011/무전취식/레벨1 . . . . 25 matches
강원석 : 집을 이사했어요. 비싼집으로!"!"!"!"!"!"!"! 몇일동안 인터넷이 안되서
==> 단체로 롤을 먹을겁니다.
* C 동작 설명 : C는 고급언어다. 사람이 이해하기 쉬운언어. 프로그램을 짜고 컴퓨터에게 시키면 컴퓨터가 이해하기 쉬운 저급언어로 바꾸어 실행시키다.
* Project 생성 : Visual Stdio2008(이하 VS2008)에서 프로젝트 생성법
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 여기다 이렇게 쓰면됩니다. 오늘 새로운 새싹 인원들을 이끌고 새싹 교실을 시작하였다 초롱초롱한 눈동자의 진영이와 소라 원태 원석이 그리고 많이 알지만 참고 같이 수업을 봐준 진경이가 있어서 너무 좋았다. 약간 몇가지 설명을 안한것도 있지만 꾸준히 따라와주는 원태와 궁금한점에 대하여 질문을 하는 원석이의 태도가 참 많이 들었고 소라가 옆에서 진영이를 그때 그때 잘봐줘서 고마웠다. 첫시간이라 좀 어색하고 수준을 맞추기에 난감한것이 있었다. 다음시간에는 좀더 체계적이고 기존 커리큘럼이지만 설명을 보강하고 더욱 재밌는 수업을 만들었으면 한다. -[김준석]
* 이렇게 쓰면 되나요 ? 오늘 처음으로(?) C프로그래밍을 해보았는데..(교수님은 뭐란말인가 ㄷㄷ) 처음에는 좀 정말로 뭐가 뭔지 몰라서 난감햇는데 선생님의 설명이 '굳' 이어서 정말 잘이해됬어요 ㅋㅋ 재밌네요.... 근데 지금 vs2008을 깔고싶은데 어케깔아야될지를 모르겠어서 못깔고있어요 어떡하죠ㅠ. - [강원석]
* 첨으로 VS2008을 써보았슴다. 표준입출력 연습?? 언어에 관해서는 그다지 어려운 점이 없었는데, 내컴에 깔린 VS2008과 실습실에 깔린 VS2008 환경설정이 달라서 조금 걱정ㅠㅠ.. 사실 C언어 코딩을 반년 넘게 안하고, 중간에 C99 표준 내용을 아주 쪼오금 본 뒤 다시 표준입출력으로 돌아오니, C언어가 참 어렵다는 생각이 들기도 했습니당. 저도 갈길이 멀지만 저보다 한발짝 뒤에 있는 동기들을 보면 조금 걱정입니다. ㅜㅜ 화이팅 -[정진경]
* 대학교와서 처음으로 C실습을 해본 뒤에 듣는 수업이었다. 고등학교때는 VS6.0버전을써서 2008버전이 많이 어색했었다. 교수님이 설명도 제대로안해주시고 ㅠㅠ 안배우고왔으면 어쨌을까 걱정됬었다. 하지만!!! 새싹수업듣고 별로 걱정안해도 되겠구나 하는 생각이 들었당 ㅎ.ㅎ 고등학교때는 void main을 썼었는데 int main을쓰고 리턴해주는 이유를 알게됬다. 처음부터 차근차근 해주시는 설명이 좋았다.ㅎㅎ 앞으로도 열심히 들어야징!!! -[이소라]
* C라는 것을 처음 접해봤다. 그리고 간단하지만 코딩이라는 것도 해봤다. 사실 대학교 입학하기 전에 C는 본적도 없었는데..그리고 VS2008도 처음 켜보고..화요일이라 C실습 날이라서 새싹하기전에 잠깐 하고 왔는데! 강의시간에는 왜 하는지 몰랐던 것을 새싹에 와서 이유도 알고 뭔지도 알았다. C프로그래밍 시간마다 졸립기만 했는데 새싹교실은 되게 재밌는것 같다. 그리고 코딩에 성공하고 그러니까 재밌는 것 같기도 하다. 아직 더 해봐야 알겠지만.. 새싹에서 열심히 공부해서 프로그래밍을 잘하고 싶다! 그리고 옆에서 소라가 도와줘서 더 잘할 수 있었다 야호! 그리고 선생님도 참 좋은것 같다 짱!! 근데 집에다 vs2008을 깔면 컴퓨터가 사망할 것 같다ㅠㅠ그래도 집에가서 도전해봐야지 ㅠㅠ -[이진영]
* VS2008이란 것을 처음으로 사용해보았습니다. 처음 새싹수업에서는 어려운 점을 많이 느껴서(긴장을 좀 한 탓도 있어요ㅋㅋ) 그날 배웠던 것을 잊어먹지 않기 위해 계속 해서 성공할 때까지 실습을 했습니다. 하나 하나씩 성공을 하고 나니 뿌듯함도 느끼고 자신감도 생기는것 같아서 기분이 좋습니다. C프로그래밍 시간에 졸았던게 많이 후회가 됩니다ㅋ 대학교와서 노는 시간이 많이 늘긴 했지만 초심을 잃지 말아야 겠어요ㅋ. 앞으로는 수업한 내용들을 가능하면 당일날 복습을 해둬야 할 것 같습니다. 새싹교실 들기를 정말 잘 한 것 같아요~! -[서원태]
- 다음주 화요일 저녘으로 롤을 먹을겁니다.
* 열심히 하시네요! 궁금한게 있는데 저기 변수명 선언규칙의 제약조건은 변수명 첫글자에만 해당되는거겠죠?? - [서지혜]
- 새싹교실/2013/라이히스아우토반/3회차 . . . . 25 matches
* 조건문을 배워봅시다.
* if문
* 적절한 예제가 떠오르지 않으므로 ㅇㅈㅎ게임 부활시켜야 겠음(..)
if, switch,
단락회로 연산,
// 이 밑으로 계산을 해야 겠지요?
// 출력문은 뭘로 해야 할까?
if(/*여기에 뭘 넣어야 할까?*/)
else
puts("프로그램을 끄려면 q 아니면 다른거 :");
puts("프로그램 끝!");
if(myHP<0)
if(GwaJaeHP <0)
Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* Internet Explorer를 제외한 다른 브라우저 (Chrome,FireFox, Opera)로 위키에 들어오면 편집하기 쉬워요.
* Can't Save가 떴을 땐 당황하지 말고, 작성한 내용을 클립보드에 보존한 뒤(Ctrl+C) 새로고침을 한 뒤 붙여넣고 저장할 것.
앞으로는 더 열심히 해야겠습니다.
사실, 느낀 점, 깨달은 점, 앞으로의 계획
앞으로도 더 노력하고 심심할때 포켓몬 만들어보는 연습도 해보려구요~
- 송년회 . . . . 25 matches
돼지방앗간에서 107000원, 베를린 3층 술집에서 2차로 61000원 총 168000원사용.
제로페이지 자체회비 60000원 지원
송년회 회비로 10만 9000원 수입. 사용.
으음. 앞으로는 회계 페이지를 만들어서 따로 관리를 해보는것도 좋을듯. - [이승한]
학기 마무리행사로 학교전체가 들썩일텐데, 예약이 필요하지 않을까요?? - [이승한]
예약 당연히 필요하다. 올 만한 사람 수의 2/3 정도로 예약 하면 될 듯 하다. --재동
재동형님이 말씀해주신 2/3 으로라면 20명 정도 생각해보고 예약해야 할듯.
중앙대학교 컴퓨터공학부 제로페이지 입니다.
제로페이지에서 송년회를 준비하고 있습니다. 공지 메일 받으셧나요??
고맙습니다~ 꼭오시고요. 혹시 못 오시게 되면 이 번호로 연락주세요~
네. 혹시 시간되셔서 오실수 있게 되시면 이 번호로 연락 주세요~
안녕하세요. 제로페이지 회원님!
제로페이지 14기 (04학번) 이승한입니다. ^ ^
바쁘시더라도 꼭 참석해 주셔서 만남의 기쁨과 제로페이지의 앞날에 많은 조언을 부탁드립니다.
제로페이지 드림.
추신. 메일이나 문자메세지, 전화로 참석 여부를 알려주시면 고맙겠습니다.
발송결과 80개정도 발송되었는데 그중 20개 정도가 실패로 돌아왔습니다.
송년회야말로 OpenSpaceTechnology를 할 만한 좋은 기회가 아닐까 생각도 해봅니다. 친숙한 송년회는 아니겠지만요. --[Leonardong]
그날 뒤풀이로 가기 전에 잠깐 이런 것도 해보면 좋겠습니다. 아이디어는 템플스테이에서 했던 유서쓰기 시간을 차용한 것입니다. A4용지 한 장과 펜을 나누어주고 (펜은 지참하는 사람이 많겠습니다만) 한 해를 되돌아보는 글쓰기를 해 봅니다. 단 시간은 너무 길지 않게 5분정도로 하고요. 그리고 사람들에게 자신이 쓴 그대로를 읽어줍니다. 템플스테이에서는 불을 전부 끄고 각자 촛불을 하나씩 켜고 이야기했는데, 그런 준비가 안 된다면 그냥 해도 좋겠습니다. --[Leonardong]
[임인택]은 아르바이트 관계로 그날 관계자와 미팅을 갖게 될것 같습니다(관계자라고 해봐야.. 우리과 졸업생이지만.. 단기알바라서 이번주말에 만나야 합니다). 저녁시간대에 잡혀있어서 힘들것 같네요.
- 이영호/시스템프로그래밍과어셈블리어 . . . . 25 matches
API Hooking을 통해 Application 이하의 차원에서 프로그램을 자유 자재로 다룰 수 있다는 것을 배웠다.
몇몇 게임(카트라이더, 워록, 대항해시대 등등)의 프로그래머들이 Application 층만을 다룰줄 아는 무식한 프로그래머라는 것을 알았다. (특히, 워록의 프로그래머는 프로그래머라기 보다 코더에 가깝고 배운 것만 쓸 줄 아는 무식한 바보이다. 그 프로그래머는 개발자로서의 수명이 매우 짧을 것이다. 3년도 못가 짤리거나 혹은 워록이라는 게임이 사라질걸?) - (이 게임들은 코드를 숨기지 못하게 하는 방법도 모르는 모양이다. 이런식으로 게임들을 건들여 패치를 만들 수 있다. KartRider는 요즘에와서 debug를 불가능하게 해두고 실행 파일을 packing 한 모양이다. 뭐 그래도 많은 코드들을 따라가지 않고 ntdll.ZwTerminateProcess에 BreakPoint를 걸어 앞 함수를 건들이면 그만이지만.)
System Programming을 통해 Application층 프로그래밍의 본질을 깨닫기 시작했으며, 가장 중요한 것이 Assembly란 것을 다시 한번 깨달았다.
Assembly를 자유자재로 다루지 못하는 프로그래머는 그 수명이 매우 짧다. 아니라고? 100에 80~90%는 그럴걸? 나머지 10~20%의 프로그래머도 디버그 능력은 현저히 떨어질 것이다. 디버그 능력이 좋다고 해도 Assembly를 자유자재로 다루는 프로그래머를 결코 능가 할 수 없지.
프로그래머라면 Code의 본질을 알아야한다. 그것을 이루는 것이 Assembly이다. 이것을 수행하지 않은 프로그래머는 프로그래머가 아니라 Coder이다. Assembly로 특정 함수를 따라다니며 실제로 익히는 방법은 MSDN에서 나와있는 것을 그대로 베끼는 것보다 현명할지 모른다. 프로그래밍은 배우는것이 아니라 직접 Code를 짜보는 것이다. MSDN을 보는 것과 debug로 따라 가보는 것은 그 차이가 크다.
프로그래밍을 처음 접하는 사람으로서는 Assembly어는 무리가 있을지도 모르나, 약간의 지식을 갖춘 사람은 Assembly어를 꼭 배워야한다. Assembly어는 결코 사라질 수 없는 언어이다. 이것은 매우 중요하며, 이 때문에 대학에서도 정규 과정속에 포함되어 사라지지 않는 것이다.
- 정모/2002.7.11 . . . . 25 matches
이선우가 알고 있기로 현재 zeropage.org 도메인은 ["구근"]이 가지고 있고, 도메인 이용료 또한 직접 내고 있는것으로 알고 있습니다. (이 이야기가 맞다면) 제로페이지는 개인에게 비용을 부담시키는 현재의 상황을 해결해주어야 합니다. 그리고, 도메인 또한 단체가 소유할 수 있는지는 모르겠군요(아는분?). 소유할 수 있다면, 차후 관리는 제로페이지에서 직접 하는게 좋지 않을까요?
2. 위에 있는 안건과 더블어 현재 제로페이지의 비품(?) 들이 개인에게 가있는데 그것을 모아서 관리하거나 적어도 누가 무엇을 가지고 있는지는 알았으면 합니다. 예를들어 제가 알고있는 것은 광식-->10주년창립제 자료집,서버보드메뉴얼 ,상민-->뺏지 이런것들을 한데 모아서 관리하던지 아님 누구한테 무엇이있는지 관리했으면 합니다.
* 장소 - 신피에서 모여서 4411 강의실로 이동
* 진행중인 프로젝트 소개
* ["비행기게임"] - 파이썬으로 만드는 박진감 넘치고 스릴 만점 비행기 게임. 파이썬도 익히고 비행기 겜도 만들고
* 신입회원을 대상으로 하는 스터디팀 조직
* 새로 조직된 스터디팀 (팀 이름은 도우미들이 정하세요)
* 현재 제로페이지 도메인들
정모때 느낀점이지만, 오늘의 주제(신입회원 스터디팀 조성)에 비해 준비부족이란 느낌이 많이 든다. 개인적으로 미안하게 생각하며 반성중이다. 쩝. 회의 진행중 잘못된 점이라면.
2. 신입회원들에게 무엇을 공부할것이며, 개인적으로 공부할 것과 팀으로 공부할 것에 대한 성찰(어느정도 되었다고 생각했는데, 말로 꺼내어보려고 연습장에 정리하려니 계속 정리가 안되었다.), 기존 ["데블스캠프2002"] 와의 연장선을 모색할 방법 등에 대해서 이야기해보려는 시도(비록 ["데블스캠프2002"] 의 마지막날이 3명밖에 오지 않았더라도) 기존회원들의 책임이며, 소위 '어느정도 공부했다' 라는 사람들이 전달해줘야 할 지식이였으리란 생각을 해본다. (아직까지나마 한배를 타고 있다면) 이 또한 회의전 미리 조직화해야 하건만, 너무 늦어버렸군.
* 중간에 급한일로 회의중에 빠지시는 분들은 다른 사람들을 위해서라도 다른 사람들에게 사정을 이야기해주시기 바랍니다.
''DeleteMe later: 천천히 제로페이지 회원들을 위한 컴퓨터 공부 로드맵(roadmap)을 하나씩 만들어 가면 어떨까요? 갑을 공부하려면 이걸 먼저 보고, 그 다음 이런 프로젝트들을 한번 씩 해보고, 어떤 기사를 보고 등등. 각 과목에 대해서 만들어도 좋고, 특정 기술에 대해서 만들어도 좋겠습니다. 가능하면 선배들이 각자 자신이 공부한 경험을 토대로 "공동 작성"하면 참 좋겠죠. 다만 한시적인 기술일 경우 "축적"의 가치가 별로 없이 해당 로드맵이 일이년 만에 쓸모없어 질 수도 있겠죠. --JuNe''[[BR]]
''DeleteMe 앗... 전 알바가... 종~일 시간이 아니나요. -_-;;; 5시 반에야 끝나는고로... 방학(?) 내내 시간이 아니 납니다. 괴로워라.. ''-setsuna
- 정모/2005.2.16 . . . . 25 matches
준비가 덜되 수요일로 연기하였습니다. -[이승한]
총 6개의 로고작품. 2개의 캐릭터 작품이 접수되었으며. 최종적으로 로고는 [강희경]의 다양성과, 미완결성을 표현한 ZP의 형상화된 도트이미지가 선정되었으며, 캐릭터는 보완작업후 추후협의 로 이야기를 마쳤습니다.
화이트보드를 테이블로 내리고 과방 소파에 둘러앉아 회의 시작.
* 다음 정모 : 다음정모는 7일로 결정. 3월은 행사로 바쁘니 행사 없는날 모이자. 3월행사는 2,4,10,15,17,21(MT자봉첫회의),25(여학우모임)이 짜여져있다고 한다. 7일로 결정. 입학식 ZP소개 전에 시간표를 보고 시간을 맞추어본다. 대략 저녁늦게 잡힐듯.
==== 프로젝트 ====
[겨울과프로젝트] 방학시작 직후. 좀더 공부하는 분위기를 몰아갔으면 어땠을까??
* java : 위키도 있었찌만 확실한 교재가 필요했었다. 아는 내용의 단순반복으로 분위기 조금 늘어졌음. 저조한 참여율. 닥달을 해서 높은 참여율을 이끌어 냈어야 했다. 조금 질질끌렸지만 그래도 얻은게 없는것은 아니었다.
* 소스만 올리고 풀이과정(문제접근방식)은 없어서 피드백이 부족. 보창曰, "소스만 올리면 나중에 쓰레기페이지가 될 수 있다" 재선曰, "어려운 문제도 모여서 페어로 풀어보면 짜릿할 것 같다" 보창曰, "내가 졸업할 때까지 계속 할꺼다. 개학하고 신입생에게 사전지식을 세미나형식으로 전수하고 같이 풀어보는 것도 좋겠다"
* 휘동曰, "코딩을 하면서 점차적으로 실행시간을 줄일 수 있다는 것이 신기했다" 희경曰, 코딩 전 많은 생각을 할 수 있었다"
* eazy : 많은이야기, cse외의 지식 습득으로 cse에 도움이 되었다(유아심리학, 언어학), 예외덩어리 자연어처리는 매우 어려웠다. 결정적 좌절.
*ZpHome : 지금도 진행 중. 세환은 이 프로젝트 진행 때문에 정모도 못 왔다. 성만曰, "얼굴 보기 힘들어요" 모임이 적음. 각자 공부가 어려움. 결과물도 나오긴 나올 것 같다.
[이승한]의 1:1 수다형 회의 답게 결론이 잘 나오지는 않는다. 중간에 끊어 먹고 다음 주제로 넘어가는 경우가 허다하다. 지금은 적은인원이 간단하게 회의를 진행하기 때문에 쉽게 이루어 질지 모르지만 3월말 신입회원 모집에서는 어떻게 될까??
루이스는 아직 춥고 무엇보다도 결정적으로 학기 초라 많이 붐빌 것 같아요--[강희경]
1학기 프로젝트 구성위한 이야기
이번정모에 찍은 회의록 사진이 보고 싶으신 분은 메일로 연락주세요. 보내드리겠습니다. - [이승한]
회의록이 전보다 알차진 것 같아서 보기 좋네요. 오늘 회의 진행도 대체로 매끄러웠고요. 회의록에 내용을 추가해보았습니다. --[강희경]
프로젝트 진행 때문에 못 간게 아니라 계속 알바중임, ZpHome 프로젝트는 용두사미식이 되어 미안하고 조만간 완성해 내놓겠습니다 --[곽세환]
- 주민등록번호확인하기/조현태 . . . . 25 matches
혹시 13월에 태어나거나 50일쯤 태어나거나 뒷자리가 7쯤으로 시작하시는분??ㅎㅎㅎ
뭐게~ 알아맞춰봐..ㅎㅎ(알지만 귀차니즘때문에 안고치고 퀴즈로 내버리는 쎈쑤!ㅎㅎ)
if (47<number && number<58)
if (12==cursur)
if ((11-sum%11)%10==number)
else
else input_number[cursur]=number*(cursur%8+2);
}else if (BACK_SPACE==number)
if (47<number && number<58)
if (12==cursur)
if ((11-sum%11)%10==number && put_num[2]*10+put_num[3]<13 && put_num[4]*10+put_num[5]<32 && put_num[6]<3)
else
else put_num[cursur]=number;
}else if (BACK_SPACE==number)
if (47<number && number<58) //입력받은 값이 숫자인지 확인한다.
if (12==cursur)//마지막 값인지를 확인한다.
if ((11-sum%11)%10==number) //올바른 주민번호인지를 확인한다.
else
else input_number[cursur]=number*(cursur%8+2); //알맞은 값을 곱한 숫자를 저장한다.
++cursur; //기억된 커서의 위치를 오른쪽으로 한칸 옮긴다.
- 학술터위키와제로페이지위키링크문제 . . . . 25 matches
-상협- 이번에 학술터를 위키로 만들어서 활성화 하고자 하는 프로젝트를 동문서버팀과 정통부가 연계되어서 추진하고자 합니다. 동문서버팀이 위키를 만들어 주면 정통부에서 그 위키에 필요한 기본적인것들을 채우기로 했습니다. 그런데 위키가 처음 열릴때 기본적으로 사람들을 끌어모을만한 아이템이 필요한데, 이에 대해서 제로페이지에서 완료된 페이지들을 링크걸면 어떨까 하는 생각을 하였습니다. 이에 대해서 제로페이지인들의 허용 여부를 알고 보고 싶어서 이렇게 페이지를 개설 하였습니다.
== 학술터로부터 링크가 걸렸을 때 ==
* 학술터 위키 초기 발전 용이 - 학술터 위키로서는 처음에 아무것도 없이 시작하는 것 보다는 몇몇 흥미를 끌만한 내용들을 토대로 시작하는 것이 편할 것이다.
* 검색엔진으로부터의 검색문제 - 이 또한 학술터 위키쪽에서도 문제를 일으킬 수 있는 내용이다. 동문서버 관리자 또한 검색엔진 IP를 막아야 하지만, www.caucse.net 전부가 검색엔진를 거부해서는 안되는 일이다. 이는 동문서버 관리자들도 고려해야 할 사항이다.
* 동문서버쪽에 검색엔진부에 대해 건의하기. (검색되는건 상관없으나, 검색로봇이 Edit Text 등의 행위는 하지못하도록 IP Block 등)
Q : "정통부에서 그 위키에 필요한 기본적인것들을 채우기로 했습니다." 의 의미는 무엇인가요?
A : 그러니깐 프론트 페이지를 만드는것과, 거기에 필요한 아이템들을 제공하는 것이죠. 공동 강의록같은 경우 정통부에서 초기에는 주도적으로 적어 나갈 것이고, 족보 같은것도 수집하여 올려 활성화를 위해서 힘쓸것입니다. 그리고 나머지 부분에서 제로페이지에서 완료된 페이지를 링크걸고자 한다는 이야기 입니다.
A : 제가 시험해본 결과 엠파스를 통해서 동문서버 위키에 접근할 수 없었습니다. 그건 아마도 동문서버 위키에 접근하기 위해서는 로그인(위키 로그인이 아니라 동문서버 로그인)이 필요해서 검색할 수 없었던거 같습니다.
DeleteMe ) 초기에는 엠파스에서 등록 되지 않습니다. 엠파스 로봇이 주기적으로 돌아다니면서 키워드를 모으는것 같습니다. --상민
DeleteMe) 제로페이지의 위키 자체를 링크하지 않고 저쪽 위키에 페이지를 열어 필요한 내용만 가져간다면 괜찮을것 같지만.(저작권이 관련 있을까요..?) 이렇게 된다면 제로페이지의 주소는 남지 않겠죠. -- 선호 (정식 답변이 아니라 제 의견입니다^^;)
==> 제 의견은 제로페이지의 완료된 프로젝트라도 학술터와 직접적 링크를 통해서 다른 사람이 더 내용을 첨가 하거나 발전시킬 수도 있을거 같아서 단지 복사해서 붙이는 거보다는 링크가 낫다고 생각했습니다. 어차피 같은 학과 사람끼리 서로 생각과 정보를 공유하면 좋겠다고 생각했던 것입니다.
- 허아영/Cpp연습 . . . . 25 matches
어떻게 코딩했었더라? 얼마만큼? 나의 실력은 얼마나 늘었지? 를 잘 알 수 없기에, 잘 알 수 있는 "연습코드의 집합"을 또 하나 만들기로 했습니다.
그러므로 C++언어를 많이 접해 보신 선배님이나 동기. 많이 충고, 조언 부탁드립니다 ^^
조언은. 코드 바로 밑에 --Advice-- 아래에 해주시면 됩니다.
숫자를 입력받아 그 숫자를 제곱하는 프로그램.
999입력시, 제곱 출력과 함께 프로그램이 끝남.
아직 C++을 C수준으로 사용하시는 것 같아 지금 이 시점에서 이런 말씀을 드리는게 좋을것 같습니다. C++을 공부하기 전에 다음과 같은 의문을 갖으시는게 좋을것 같습니다.
이에 대한 나름대로의 생각을 키워가면서, 다시 말하면 그 C++에 깔려있는 철학(이라고 하면 너무 거창해질 소지가 있지만 마땅한 단어가 떠오르지 않으므로)을 이해하려는 시도와 더불어 C++, 아니 다른 언어를 공부하면 기존에 예상했던 것 이상의 것들을 얻을 수 있으리라 생각합니다. - [아무개]
C언어에 젖어있는 제 상황에서는 아무래도, 비슷하지만 다른 C++언어로 코딩하는데에 C언어 모양이 날 것같군요. (지금은!)
앞으로 C언어와 C++언어의 차이점을 잘 생각하면서 코딩하겠습니다 ^^ - [허아영]
지금 만드는 지뢰파인더가 지금까지 만든 클래스중에서는 그나마 클래스를 닮았는데 아직 제대로 되려면 한참 멀었으..
반대로 C++의 형식은 소스를 재활용할 수 있는 가능성이 높고.. 버그가 적게 생기거나 디버깅이 쉽다는..ㅎㅎ
절차적 프로그래밍 기법을 통해 소프트웨어를 개발하다보면 개발시간도 너무 많이 소요되고 동일한 작업들이 중복된다는 문제점이 야기된다. 이러한 문제점을 해결하기 위해서 소프트웨어도 공장의 부품처럼 독립성을 갖는 객체들로 구성해 놓고 그들을 조립하여 완성한다는 개념이 객체지향 적인 프로그래밍 기법의 근간이다.
cout<<"int = "<<sizeof(int)<<"byte"<<endl;
cout<<"short int = "<<sizeof(short)<<"byte"<<endl;
cout<<"long int = "<< sizeof(long)<<"byte"<<endl;
cout<<"float = "<<sizeof(float)<<"byte"<<endl;
cout<<"double = "<<sizeof(double)<<"byte"<<endl;
if(true_val == 0)
if(true_val == 1)
cout << "평균 : " << avg(subject_data) << endl;
- Athena . . . . 24 matches
|| http://zeropage.org/~mulli2/Athena/Logo.bmp ||
* 그리스 로마 신화에 나오는 지혜의 여신 "아테나" 입니다. 지혜롭게 프로그래밍을 하고자 만든 이름입니다...^^
DeleteMe 이름은 좋습니다. 하지만 ["Athena"] 라는 이름의 페이지에는 여신 아테나에 대한 정의와 소개가 들어 있는 것이 올바른 것이겠지요. 그래서 ["ProjectPrometheus"], ["ProjectZephyrus"] 라고 한거랍니다. ;; --["neocoin"]
* 첫 회의 - 프로젝트 이름 결정, 기본 코딩 스타일 결정, 첫 ["PairProgramming"] 호흡
* 상수를 이용한 영상 밝기 변화 다이얼로그 작성(20분) - 명훈
* 열심히 Look Up Table 끝냄 (3시간) - 재동
* 영상을 이용한 영상 밝기 변화 다이얼로그 작성(3시간) - 명훈
(영상을 이용한 변환에서 0이 있는 영상의 경우 나눗셈할수 없음. 1로 나눌때랑 같게 했음)
(비트맵은 가로에서 세로배열이 맞는데 밑바닥에서부터 배열이 시작됨)
* 입력 다이얼로그2 만들고 연결하기 (20분) -재동
* 입력 다이얼로그2 버그 고치기 (1시간) - 재동
* 입력 다이얼로그2 버그 고치기 (20분) - 재동
* contrast stretching할때 입력값 받지않는 것으로 수정(20분) - 명훈
* 마우스좌표를 바이트배열좌표로 변환(2시간) - 명훈
* 팝업메뉴 띄울때 클라이언트영역좌표를 전체스크린 좌표로 변환 작업(30분) - 명훈
* LUT그래프 다이얼로그 작성(1시간30분) - 명훈
* 방향다이얼로그 및 LUT다이얼로그 수정(10분) - 명훈
* 1.2 현재 화면과 결과 화면을 BMP 파일로 저장
* 2.2 Quntization => 2, 4, 16, 256 가지 명암으로 표시
* 8. 윈도우로 설정한 영역에 대해서만 '7.영상 질 향상' 적용
- BusSimulation/태훈zyint . . . . 24 matches
STL을 이용하고 함수별로 나누는 리팩토링이 필요하다 -ㅅ-
cout << endl << " ";
if(bus->BusStationPos(j)==i) {
if(i<bus->BusLanelength()) cout << "-";
cout << endl;
if(bus[LastMovingBusIndex+1].ismove()==false && LastMovingBusIndex+1 <= BusNo
if(bus[i].isstation() != -1 ){ //버스 정류장일경우
if(stationno < cangetno){ // 태울수 있는 사람의 숫자가 더 많을 경우
} else { //탈수있는 사람수보다 정류장에 사람이 더 많을 경우
} else{ //버스 정류장이 아닐경우
cout << i << endl;
cout << i << ":" << bus[i].getBusPos() << "," << bus[i].isstation() << ", 승객수:" << bus[i].getPassengers() <<endl;
//if(getch()==27) break;
if (!ismove()) return -1; //운행중이지 않을 떄에는 움직이지 않는다.
//버스가 모든 노선을 다돌았을 경우 처음으로 이동시킨다.
if(BusStationNo-1 < i) return -1; //버스정류장이 아닐경우
int zrnd(int start,int end)
r = rand()%(end-start+1) + start;
- Calendar환희코드 . . . . 24 matches
numberofDay = 몇요일로시작할까(numberofDay, year, month);
int 몇요일로시작할까(int 요일, int 년도, int 월);
if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
else
int endday, count일, count줄;
if(몇월 == 1 || 몇월 == 3 || 몇월 == 5 || 몇월 == 7 || 몇월 == 8 || 몇월 == 10 || 몇월 == 12){
endday = 31;
else if(몇월 == 4 || 몇월 == 6 || 몇월 == 9 || 몇월 == 11){
endday = 30;
else
endday = 윤달계산(몇년);
for(count일 = 1, count줄 = 몇요일 + 1;count일 <= endday; count일++, count줄++){
if(count줄 == 7){
int 몇요일로시작할까(int 요일, int 년도, int 월){
int endday;
if(월 == 1 || 월 == 3 || 월 == 5 || 월 == 7 || 월 == 8 || 월 == 10 || 월 == 12){
endday = 31;
else if(월 == 4 || 월 == 6 || 월 == 9 || 월 == 11){
endday = 30;
else
- CauGlobal/Interview . . . . 24 matches
* 산학협동 프로젝트가 어느정도 수준에서 이루어지나요?
* 숙제의 양과 질은 한국과 어느 정도의 차이가 있나요? (한국내에서 공부했 봤다면 국내의 경우와 비교해서)
* 수업 외 시간에는 주로 어떤 일을 하며 보내는지?
* 교수님과의 대화는 많은지? 주로 어떤 대화들을 하는지?
* 한국에 듣기로는 대학원 과정은 스스로 학비를 충당할 수 있다고 하는데 어떻게 학비를 충당하고 계산가요? 특히 Stanford 는 학비가 비싸다고 들었습니다.
* 왜 학교를 Stanford 로 선택하셨나요?
* 여기에서는 국내에서와 마찬가지로 학벌에 대한 차이가 있나요? (대학 순위라는 것이 의미가 어느 정도나 있나요?)
* 졸업후 진로에 대해서 얘기해주실 수 있나요? (연구소 or 대학 or 회사)
* 현재 인터쉽 중인 것으로 알고 있는데 어떠 회사이고 어떤 업무를 하고 계시나요? 인턴쉽이라면 짧은 기간일텐데 어떤 일이 주로 맡겨 지나요?
* 현재 인턴쉽 중인 것으로 알고 있는데 미국 기업문화에 대한 느낌이 어떠신가요?
* 인턴쉽은 어떻한 경로로 구하게 되나요?
* 우리나라 기준으로 보면 박사학위를 거치고 계시는 분이 인턴쉽을 하시는 것은 느낌이 좀 이상합니다. 여기서는 인턴쉽에 대한 인식이 어떤가요? 또한, 학부 인턴과는 어떻게 다른가요? 보수는 충분한가요?
* 회사내에서 인종 차별이 존재하나요? (제도적으로 혹시나 있는지.. 또는 묵시적으로 그런것이 존재하는지? )
=== LA 금융회사 프로그래머 ===
* 한국과 미국에서 공부하기는 어떤 점이 가장 다른가요? 공통적으로 가장 중요한 사항을 한가지만 꼽으라면?
* 생활비는 어떻게 해결하셨나요? 벌어서 쓰셨다면 그 방법은 양적, 질적으로 적절했나요? 해보고 싶었는데 하지 못한 일은? 추천해 주고 싶은 방법은?
그냥 좋은 게 있으면 알고 오면 좋다는 식으로 접근하면 자칫 표면적인 겉핥기식 인터뷰가 되지 않을까 싶습니다. 묻는 사람 스스로가 혼자 잘 생각해 보면 대충 답을 예상하는 질문을 하게 되는 것이죠. 목표를 조금 좁히거나 명확하게 만들어 보면 어떨까요? --JuNe
저도 그 점이 참 고민이에요. 날카로운 지적 감사합니다 :) 일단 학교에서 지원해주는 행사라 학교에서 원하는 답을 만들어주기 위한 의식이 어느정도 작용했던것 같습니다. 만약 형이 이런 기회로 가시게 된다면, 어떤걸 해보고 싶으세요? 힌트가 있으면 정말 도움이 될것 같습니다. --sun
- CppStudy_2002_1/과제1/Yggdrasil . . . . 24 matches
//458page 프로그래밍 연습 1번
//458page 프로그래밍 연습 2번
//458page 프로그래밍 연습 3번
cout<<string.str<<endl;
cout<<str<<endl;
//458page 프로그래밍 연습 4번(미완성->입력받을 때 초기화가 안 되어
//함수는 전달인자로 전달된 값들을 사용하여
//golf 구조체를 제공된 이름과 핸디캡으로 설정한다
//함수는 handicap을 새 값으로 초기화한다
if(g.fullname=='\0')
else
cout<<"\nGolfer's Name: "<<g.fullname<<endl;
if(n==1){
//458page 프로그래밍 연습 5번
cout<<"제일 큰 수는 "<<maximum_double<<endl;
cout<<"제일 큰 수는 "<<maximum_int<<endl;
if(array5[i]>array5[j])
if(count==4){
//458page 프로그래밍 연습 6번
cout<<ret_int<<endl;
- CppStudy_2002_2 . . . . 24 matches
* C++의 문법도 익히고, 나아가서 사용법, OOP에 대해서 더 친숙 해지기, 다양한 과제를 통한 프로그래밍 경험 쌓기
* 앞으로 스터디 할 기간 : 총 6주, 6번의 모임
* 각자 '스스로'의 공부를 원칙으로 합니다
* 모르는 것에 대해서는 서로 의논하고 서로 배워가는 방식으로 할 예정입니다
|| 자판기 ||["VendingMachine/세연"]||["VendingMachine/세연/재동"]||["VendingMachine/세연/1002"]||
|| 자판기 ||["VendingMachine/재니"]||||
* 전에도 이야기 했지만 이번 주는 제가 사정이 있어서 수욜에 합니다. 그리고 시간은 세연이 누나의 의견을 받아 들여 3시로 합니다 난중에 딴 소리하면... 쿨럭쿨럭... 됩니다. 그럼 수욜 3시에 뵈요 ^^;;; --재동
* 그냥 이멜로 쓰거나 위키에 작업중인 걸 올려놓는 게 편할 것 같은데욤..^^* - 재니
* 소스 올리고 난 다음 코드 리뷰 해보는지? 사람들이 꽤 중복된 코드를 쓴다던지, UI 부분과 로직 클래스 부분이 너무 같이 붙어있다던지 하는 것 같은데.. 재동 당신의 능력을 보여줘; --["1002"]
* 예 알겠습니다. 제가 조금이라도 낳은 디자인으로 고쳐 보여볼께요. 여기에 부족한 부분이 있음 형도 제꺼에 지적 해주세요 (일명 '은근슬쩍 끌어들이기'...^^;;;) --재동
* 옷! 마침 코드속의 나쁜 냄세 읽고 있었는데...^^;;; 형 말대로 아주 많이 느끼게 됩니다 특히 세연이 누나꺼에서 '중복된 코드'와 '긴 메소드'가 눈에 띕니다 --재동
프로그래밍을 하는데 큰 도움이 되리라 믿고 하겠습니다 --재동
* 담주 8월 9일(금요일) 5시에 합니다 목요일이 제로페이지 정모이기도 하고 금요일에 ["CppStudy_2002_1"] 팀과 같이
STL 세미나(강사:강인수) 듣기로 했습니다 날짜 주의하세요!!
DeleteMe) 나 쥐뿔도 모른단 말야--; 강제로 강사로 넣어버리다니--;
* 이번주는 서로 시간이 딱 엇갈려서 할 수 없이 쉽니다. 숙제는 꼭 하시고 담 스터디 날짜는 이번주내에 공지 하겠습니다 --재동
* 이제 스터디가 모두 끝났군요. 전 여러모로 많은 걸 알고 배운 스터디라 생각합니다. 모두들 이 배운 걸 (지식과 경험 그리고 기타 등등) 잊지않고 더욱더 발전 하는 사람이 되었음 합니다. --재동
["프로젝트분류"]
- HanoiProblem . . . . 24 matches
* 그때 링 크기는 각자 다르고, 처음에 링은 제일 밑에 제일 큰 링, 그 위에 다음으로 큰링, 이런식으로 있고, 앞으로도 계속 그런식으로 밖에 쌓일수 밖에 없습니다.
* 아래와 같은 예제 식으로 소스를 만든 페이지에 넣어 주세요.
* 미로거슬러내려오기
재귀함수가 사용되는 대표적인 예 몇가지를 보여줍니다. 재귀함수 사용에도 그 종류가 다른데, 대표적인 종류들을 보여주는 것이 중요합니다. "아, 재귀함수라는 것이 이렇게도 사용될 수 있구나!" 퍼뮤테이션/콤비네이션, 피보나치수열, 트리검색, 팩토리알, 조건문과 재귀호출로 반복문(while) 만들기 등이면 충분하지 않을까 합니다.
그리고 재귀함수를 만들 때 유의점과 사고보조물을 가르쳐 줍니다. 유의점이라면 재귀함수는 리턴되는 값의 종류(타입)가 모두 동일해야 한다는 것, 재귀호출을 벗어나는 지점 근방에서 유의해야 한다는 점 등이고, 사고보조물로는 스택의 상태를 그림으로 그리는 방법이나, 수식을 사용하는 방법 등이 있겠죠.
시작하는 수를 하나 주고, 특정한 연산을 사용하여 정해진 스텝만에 다른 수로 전환시키는 문제를 주었습니다. 예를 들어, 8에서 시작해서 곱하기 2나, 빼기 7을 사용해서 6번의 스텝만에 15를 만드는 문제입니다.
한 그룹은 예를 들은 복잡한 문제를 먼저 제시받았고, 다른 그룹은 단순한 문제(예컨대 2번만에 8을 9로 바꾸는 것) 두개를 먼저 제시받았습니다.
반대로 문제가 너무 단순해서 복잡할 경우에는 오히려 100개, 200개 등의 복잡/일반적인 경우를 생각하는 것이 도움이 될 수도 있습니다.
'''미로거슬러내려오기'''
종종 미로가 너무 복잡할 때 목적지에서 거꾸로 내려오는 것이 더 간단할 때가 있습니다. TestDrivenDevelopment도 이 방법을 사용합니다. 자신이 원하는 것을 컴퓨터에게 설명해 주고, 그 목적지에서 거슬러 내려옵니다.
HanoiProblem이 복잡하게 느껴진다면, 우선 목적지에 도달한 상태, 즉, 모든 원반이 다른 막대기로 옮겨가 있는 상태를 상정합니다. 다음에는 여기에서 바로 직전의 상태로 거슬러 내려옵니다.
혹은, 중간을 끊어서 볼 수도 있습니다. 어찌되었건 모든 원반이 옮겨가려면 어느 순간엔가는 가장 큰 원반이 비어있는 막대기로 이동해 가야 합니다. 이 상황에서 가장 큰 원반이 있는 막대기에는 큰 원반 하나만 있을 것이고, 그 원반이 옮겨갈 막대기는 비어있어야 하므로, 결국 두개의 막대기가 모두 사용되고, 나머지 하나의 막대기에는 나머지 원반들이 모두 크기 순으로 쌓여있게 될 것이라는 추측을 할 수 있습니다. 여기서 앞 뒤 상황을 생각해 보면 어떤 통찰을 얻을 수 있습니다.
- JollyJumpers/iruril . . . . 24 matches
int differenceValue;
boolean [] differenceArray;
public void checkDiffenceValue()
differenceValue = length-1;
// System.out.println(differenceValue);
// checkDifferArray[] 를 초기화한다
differenceArray = new boolean [length];
differenceArray = setFalse( differenceArray );
int tempDiffer;
for(int i = 0; i < differenceValue; i++)
tempDiffer = Math.abs( jumpersArray[i] - jumpersArray[i+1] );
// System.out.println(tempDiffer);
if( tempDiffer < length)
differenceArray[tempDiffer] = true;
for(int i = 1; i <= differenceValue; i++)
if ( differenceArray[i] == false )
if(jolly)
else
jj.checkDiffenceValue();
if(jj.jumpersArray[0] == 0)
- MFCStudy_2001/MMTimer . . . . 24 matches
* OnTimer와 SetTimer의 조합으로 구현되는 가장 일반적인 타이머는 정확하지 않습니다.
이게 메시지 방식으로 구동되기 때문에 메시지 큐에 다른 메시지가 쌓이면 그 만큼
조금씩 늦어지게 된다고 합니다. 실제로도 공이 움직이는 동안에 막대기를 막 움직이
MultiMedia Timer는 자체적으로 스레드를 만든다네요. 그래서 메시지가 쌓이든 말든
* MMRESULT에는 타이머의 번호가 리턴됩니다. NULL일 경우에는 실패한 경우입니다.
타이머로 불러내어 직접 실행되는 함수부분입니다[[BR]]
* 이것은 콜백 함수라서 전역 변수로 해야된다네요. 굳이 클래스 안에 넣고 싶다면 static으로 선언해야 합니다.
CALLBACK 함수를 전역으로 선언한 경우
pDlg->SendMessage(WM_MYMSG,0,0);
그래서 메시지로 날려 봤습니다. 그런데 전 별루 차이점을 못느끼겠더군요..--;[[BR]]
CALLBACK 함수를 클래스 함수로 선언한 경우[[BR]]
클래스 선언시 timeproc함수는 static 으로 선언해야 합니다.
* CALLBACK 함수는 클래스 내에서 선언 될 경우에는 static으로 선언 되어야합니다.
* m_nTimerID는 UINT형 입니다. 성공할 경우에는 타이머의 번호가 넘어옵니다.
* this는 이 클래스 인스턴스의 값을 넘겨줍니다. 클래스 내부 함수로 선언했을 경우네는 중요한 인자값입니다.
dwUser는 timeSetEvent의 this값을 인자로 받아 pDlg에 현재 인스턴스의 주소를 넣습니다.
- 어플리케이션은 콜백 함수 내부로부터 다음 함수를 제외하고는 시스템 정의 함수를 부를 수가 없다. : PostMessage, timeGetSystemTime, timeGetTime, timeSetEvent, timeKillEvent, midiOutShortMsg, midiOutLongMsg, and OutputDebugString.[[BR]]
if (m_thisList.Lookup(idTimer, (LPVOID &) pThis))
- MySQL . . . . 24 matches
ZeroPage Server의 경우 MySQL의 자료 저장 디렉토리가 {{{~cpp /var/lib/mysql}}} 이므로 해당 디렉토리 내의 자료를 복사 하는 것으로 가능하다. 복사중 mysql을 정지 시키는 것을 권장한다.
개인이 자신의 자료만을 백업하기를 원할때에는 위에 언급된 디렉토리에서 자신의 데이터 베이스에 해당하는 디렉토리를 복사 하는 것으로 백업이 가능하다.
''-- 이건 사용자가 root일 때만 되는거 아닌가요? 권한이 없는걸로 알고있는뎅 ^^ -jeppy''
=== 개인 암호 변경 방법 ( 전자가 안될 경우 후자로 변경) ===
=== 관리자의 경우 ===
재니가 오늘 물어보는데, ORDER BY name (스트링) 을 하는데, 가나다순으로 정렬이 안된다고 해서.
앗 탄로 났다. 드뎌 영문으로 설치한 부작용이 다들 영어 써요 ~ 와~~;; 오호 통재라 모든것은 시험끝나고 이루어질것이니.. --["neocoin"]
MySQL에서 한글이 들어간 문자열을 제대로 정렬하려면 char 타입이 아닌 char binary 타입을 쓰면 됩니다. 하지만 이미 char 타입으로 되어있다면 ORDER BY BINARY 필드명 을 사용하면 됩니다. MySQL에서 char 타입은 순수한 아스키(0~127) 값에서만 제대로 동작합니다. 물론 char 타입을 쓴다고 해서 한글이 저장되지 않거나 하는건 아니지만, 검색이나 정렬등에서 제대로 작동하지 않는 경우가 있습니다. --["상규"]
MySQL 에서 다른 데이터베이스로 데이터를 옮길 경우 기존 데이터중 문제가 되는 것이 바로 내장함수인 PASSWORD 를 이용해서 암호화를 한 부분이다. 다른 데이터베이스에서 이 데이터를 쓸 방법이 없기 때문이다. 이 경우, 로직 단에서 MySQL의 Password 함수를 대신 구현해줌으로서 해결을 할 순 있다.
다음은 자바 & 파이썬 버전(그대로 포팅한 것)
위의 PHP 버전은 어떻게 만들었을까? 바로.. MySQL 코드를 보고 만들었다고 한다.- UseTheSourceLuke --[1002]
- PrimaryArithmetic/sun . . . . 24 matches
단순히 사람이 덧셈을 하는 식으로 풀었다. 끝자리 부터 하나씩 더해가며, 올림수가 발생했을 경우 같이 더하는 방식을 이용했다.
public class NumberGeneratorTest extends TestCase {
지금 생각해보면 {{{~cpp testNoNumber}}}는 필요없는것 같다. 나중에 글을 쓰다보니, 같이 쓰게 됬는데 원래는 위의 테스트를 먼저 작성하고 테스트 통과후 아래쪽 테스트를 추가했다. 이번 작업과 별도로 '''코딩후에 뭔가하자'''는 결국 놓치는게 많다는걸 다시한번 증명하게 된다. :) ''see [http://jania.pe.kr/wiki/jwiki/moin.cgi/NowOrNever NowOrNever]''
if( number < 0 ) throw new ArithmeticException( "0 또는 그 이상의 정수만 가능합니다: " + number );
if( number == -1 ) return false;
여기서도 마찬가지로 테스트를 작성하게 됬는데, 코드를 추가하다보니 비슷한 패턴으로 테스트를 하게 되서, 테스트 셋 추가로 이뤄지도록 테스트를 구성
public class PrimaryArithmeticTest extends TestCase {
verify( expected, num1, num2 );
private void verify(int expected, int num1, int num2) {
if( sum >= 10 ) {
else sumUp = 0;
if( sum >= 10 ) counts ++;
else break;
== 응용프로그램으로 ==
if( num1 == 0 && num2 == 0 ) break;
문제 풀이를 위해서 별다른 알고리즘이 아닌 현실에서의 덧셈 방법을 사용했고, 코드량이 별로 되지 않음에도 1시간이 걸린것은 도중에 msn으로 친구과 채팅을 하며 했기 때문이다. 본인이 느끼기에는 msn을 얼마 하지 않았던것 같은데 실제로는 시간이 꽤 지나있는걸 보면 아인슈타인의 상대성원리에 따라 시간이 흐름을 알 수 있다. 직장인의 경우 이것을 좀 더 일반화 해보면, '왠지 오늘 하루 일하기 싫다'라고 느껴지고, 휴가를 쓸 수 없을땐 근무중에 메신저를 하면 시간이 금방 감을 알 수 있겠다.
단, 기술에는 언제나 어두운 면이 있듯이, 시간을 엄청나게 빨리 보내는 도중 상사와의 원치않는 메시징은 반대의 효과를 나타낼수도 있다. (즉, 이럴땐 '오프라인으로 보임'을 이용하도록 하자)
- ProgrammingLanguageClass . . . . 24 matches
프로그래밍 언어 수업
수업내용: 프로그래밍 언어의 구현 & 구성요소에 대한 전반적 이해.
* ''Programming Language Pragmatics'' by Michael L. Scott : 이제까지 나온 프로그래밍 언어론 서적 중 몇 손가락 안에 꼽히는 명저.
비록 "아는 언어"칸에 대여섯 이상의 언어를 줄줄이 적어넣을 수 있지만, 컴퓨터 공학과를 다니면서 "정말 아는" 언어는 항간에서 현재 유행하는 언어 하나 둘 정도이다. 일단 주변 여건이 다른 언어를 공부할 여유를 허락하지 않고, 이걸 격려, 고무하는 사람이 아무도 없다는 것이 문제다. 너나 할 것 없이, 교과과정에서 C언어를 자바로 대체하는 것만으로 "우리 학교 전산학과는 미래지향적이고 앞서 나가는..."이라는 선전 문구를 내거는 것을 보면 정말 안타까울 뿐이다. 왜 MIT에서는 제일 처음 가르치는 언어로 Scheme을 몇년째 고수하고 있을까.
프로그래밍 언어를 배우는 것은 사고와 표현의 방식을 하나 더 배우는 것이다. 따라서, 설사 해당 언어로 프로그래밍을 할 기회가 별로 없다고 해도, 판이한 언어를 하나 더 배우는 것은 가치있는 일이다. 동시에 무슨 언어를 배우느냐, 어떤 신택스를 익히느냐는 것은 크게 중요하지 않다. 언어는 변하고 사멸하고 신생하며, 유행도 바뀐다. 그보다 그런 언어 저변에 깔려있는 다양한 패러다임을 접하고 충분히 이해하고 적용할 수 있어야 한다. 하지만 이게 가능하려면 구체적인 언어라는 채널을 통하지 않을 수가 없다.
그러므로, 이런 ProgrammingLanguageClass가 중요하다. 이 수업을 제하면 다른 패러다임의 다양한 언어를 접할 기회가 거의 전무하다. 자신의 모국어가 자바였다면, LISP와 Prolog, ICON, Smalltalk 등을 접하고 나서 몇 차원 넓어진 자신의 자바푸(Kungfu의 변화형)를 발견할 수 있을 것이며, 자바의 음양을 살피고 문제점을 우회하거나 수정하는 진정한 도구주의의 기쁨을 만끽할 수 있을 것이다. 한가지 언어의 노예가 되지 않는 길은 다양한 언어를 비교 판단, 현명하고 선택적인 사용을 할 능력을 기르는 법 외엔 없다. --김창준
꼭 그렇지는 않습니다. 다양한 언어를 배우고, 특히 훌륭히 디자인된 언어(각 요소들이 서로 상충하지 않고 유기적으로 조화되어 하나의 건강한 생태계를 이루는)를 충분히 접하게 되면, 아무리 문제있는 언어를 쓰게 되더라도 "선택적"인 사용이 가능해집니다.
개인적으로 학기중 기억에 남는 부분은 주로 레포트들에 의해 이루어졌다. Recursive Descending Parser 만들었던거랑 언어 평가서 (C++, Java, Visual Basic) 작성하는것. 수업시간때는 솔직히 너무 졸려서; 김성조 교수님이 불쌍하단 생각이 들 정도였다는 -_-; (SE쪽 시간당 PPT 진행량이 60장일때 PL이 3장이여서 극과 극을 달렸다는;) 위의 설명과 다르게, 수업시간때는 명령형 언어 페러다임의 언어들만 설명됨.
중앙대학교 컴공과에 컴파일러 수업이 폐강되는 경우가 많은데, 컴파일러와 PL 둘 중 하나는 프로그래머가 되건, 전산학자가 되건 반드시 필요한 교양이다.
무심결에 쓰고 있는 프로그램 언어의 내부를 배울 수 있는 시간입니다. 개인적으로는 이런 저런 원리를 하나식 알아갈 때마다 재미있었기 때문에 수업시간도 재미있었습니다. (정말 같이 듣는 이들은 졸린 모양이더라고요.) 과제에서 엄청난 실수를 많이 저질러서 안타깝지만, 과제 자체는 강의 내용과 매우 적절하게 연결된 것이라고 생각합니다.
아쉬운 부분은 프로그램 언어론이란 과목임에도 불구하고, 설명의 비중은 많이 쓰이는 언어일수록 높았던 점입니다. 함수형언어(FunctionalLanguage)는 기말 고사 바로 전 시간에 한 시간만에 끝내려다가, 그나마 끝내지도 못하고 요약 부분만 훑었습니다. 그 밖의 종류에 대해서는 거의 절차적 언어, 특히 C계열 언어를 설명하다가 부연 설명으로 나오는 경우가 많았습니다. 논리형언어(LogicLanguage)에 대한 설명은 거의 못 봤습니다. 어차피 쓰지 않을 언어라고 생각해서일까요.--[Leonardong]
- ProjectZephyrus/간단CVS사용설명 . . . . 24 matches
설치, 로그인 과정 생략, 팀원의 아이디로 로그인 하면 쓰기, 읽기 권한 허용
=== 프로젝트 처음에 가지고 오기 ===
설치 [http://www.wincvs.org WinCVS]를 [http://sourceforge.net/project/showfiles.php?group_id=10072&release_id=83299 다운로드] 해서 설치
==== 로그인 ====
==== 프로젝트 처음에 가지고 오기 ====
Local folder.. : 자신이 작업할 공간 임의로 설정
==== 프로젝트 업데이트 ====
내컴퓨터->등록정보->고급->환경변수->새로만들기(N)
===== 98 : 1,2번 아무거나 편한대로 =====
'''1. 패스 설정로 하기''' Autoexec.bat 에서
'''2. 배치 화일로 하기''' cvs98.bat 작성
이런 식으로 사용
ZeroPage서버는 /home/CVS 를 저장소로 잡았다.
etc/group 를 아래식으로 추가, 수정
'''2. ZeroPage 서버는 현재 Redhat 7.0이므로 xinetd를 이용하므로 세팅'''
# unencrypted username/password pairs for authentication.
'''4. 프로젝트 import - CVS 에 프로젝트 열기'''
보통 다음과 같은 방식으로 한다.
cvs import -m "메시지" 프로젝트이름 vender_tag release_tag
- Self-describingSequence/1002 . . . . 24 matches
if len(table) > n-1:
문제는, 1000000000 의 경우에 대해서 답이 나오는 시간이 엄청나게 걸린다는 점이다. 이에 대해서 어떻게 할 것인가 고민,
그와 관련하여 프로그래밍을 진행해보았으나 그리 성과가 없음.
if x<=n<=y: return i+1
if n==1 or n==2: return n
end = start + repeat - 1
table.append((start,end))
if start >= n:
문제임을 생각. 이를 binary search 구현으로 바꿈.
if x<=n<=y: return midIdx+1+startPos
if n<x: return findGroupIdx(table[:midIdx],n,startPos)
else: return findGroupIdx(table[midIdx+1:],n,startPos+midIdx+1)
binary search 로 바꾸고 나서도 역시 오래걸림. 다른 검색법에 대해서 생각하던 중, findGroupIdx 함수 호출을 할때를 생각.
수열의 값이 늘 증가한다 할때 다음번에 검색하는 경우 앞에서 검색했던 그룹 아니면 그 다음 그룹임을 생각하게 됨.
if x<=n<=y: return self._prevSearchPos+1
if n==1 or n==2: return n
end = start + repeat - 1
table.append((start,end))
if start >= n:
* 지속적으로 퍼포먼스 튜닝을 위해 다른 알고리즘으로 접근을 해본 점이 좋았음.
- SoJu/숙제제출 . . . . 24 matches
printf("\n이 프로그램은 구구단 프로그램 입니다.");
if(i<10&&i>0)
else
printf("\n이 프로그램은 구구단 프로그램입니다. 1~9까지의 숫자중 하나를 입력하세요.\n\n");
//구구단 출력 프로그램 v2.1 제작자: 조현태 최종수정일: 2005.04.08
//이프로그램은 정수를 입력받은뒤 1-9사이일 경우에만 구구단을 출력하고,
//아닐경우에는 다시 숫자를 입력 받는 프로그램입니다.
printf("안녕하세요? 구구단 출력 프로그램입니다.\n시킨대로 하지않으면 다운의 소지가..\n1~9사이의 정수를 입력해주세요.\n");
if ( j>=1 ) //입력받은 숫자가 1이상인지를 확인합니다.
if ( j<=9 ) //입력받은 숫자가 9이하인지를 확인합니다.
break; //정상적으로 수행되었으므로 종료합니다.
else
printf ("숫자가 너무 큽니다. 1-9사이의 정수를 입력해주세요~\n"); //입력받은 숫자가 9초과일경우의 오류메시지를 출력합니다.
else
printf ("숫자가 너무 작습니다. 1-9사이의 정수를 입력해주세요~\n"); //입력받은 숫자가 1미만일경우의 오류메시지를 출력합니다.
if(0<i && i<10)
if(0<a && a<10)
if(iGuguval>9 || iGuguval<1) {
- TdddArticle . . . . 24 matches
http://groups.yahoo.com/group/testdrivendevelopment/files/ 중 TDDD.pdf
TDD 로 Database TDD 진행하는 예제. 여기서는 툴을 좀 많이 썼다. [Hibernate] 라는 O-R 매핑 툴과 deployment DB는 오라클이지만 로컬 테스트를 위해 HypersonicSql 이라는 녀석을 썼다고 한다. 그리고 test data 를 위해 DBUnit 쓰고, DB Schema 제너레이팅을 위해 XDoclet 와 Ant 를 조합했다.
여기 나온 방법에 대해 장점으로 나온것으로는 비슷한 어프로치로 500 여개 이상 테스트의 실행 시간 단축(Real DB 테스트는 setup/teardown 시 Clean up 하기 위해 드는 시간이 길어진다. 이 시간을 단축시키는 것도 하나의 과제), 그리고 테스트 지역화.
제약사항으로는 Stored Procedure 나 Trigger 등 Vendor-Specfic 한 기술들을 적용하기 어렵다는 점 (이를 위해선 로컬 DB 또한 해당 Vendor의 DB를 설치해야 하므로).
류군 이야기로는 Oracle 의 경우 설치하고 딱 실행하는데만 기본 메모리 200메가 잡아먹는다고 한다. -_-; 로컬 테스트를 위해 HypersonicSql를 쓸만도 하군.; (In-memory DB 식으로 지원가능. 인스톨 할것도 없이 그냥 콘솔에서 배치화일 하나 실행만 하면 됨. 근데, JDBC 를 완벽히 지원하진 않는 것도 같아서, 약간 애매. (ResultSet 의 first(), last(), isLast() 등의 메소드들이 실행이 안됨)
DeleteMe) - 오라클의 경우 인스턴스당 기본으로 먹는게 보통 200 메가 정도. 즉 기본 외에 자기가 만든걸 더 띄울경우 보통 400 메가 이상을 먹게 되는데 이건 뜰때 얘기고 가만히 냅두면 50 메가 이하로 메모리가 내려감. 물론 윈도우 하에서 얘기임. 나머진 확실하지 않음. 연결이 많아지면 메모리가 다시 올라갈것임. -박준용-
그렇다 해도 오라클을 테스트를 위한 Local DB 로 돌리기엔 덩치가 크겠죠? --[1002]
여기에서의 TDD 진행 방법보다는 Reference 와 사용 도구들에 더 눈길이 간다. XDoclet 와 ant, O-R 매핑 도구를 저런 식으로도 쓸 수 있구나 하는 것이 신기. 그리고 HSQLDB 라는 가벼운 (160kb 정도라고 한다) DB 로 로컬테스트 DB 를 구축한다는 점도.
- WheresWaldorf/Celfin . . . . 24 matches
if(list[x][y]!=temp[n])
if(n==length-1)
if(list[x][y]!=temp[n])
if(n==length-1)
if(list[x][y]!=temp[n])
if(n==length-1)
if(list[x][y]!=temp[n])
if(n==length-1)
if(list[x][y]!=temp[n])
if(n==length-1)
if(list[x][y]!=temp[n])
if(n==length-1)
if(list[x][y]!=temp[n])
if(n==length-1)
if(list[x][y]!=temp[n])
if(n==length-1)
if(list[i][j]==testlist[k][0])
if(check(i, j, testlist[k]))
cout <<i+1 <<" " <<j+1 <<endl;
if(exitCond)
- ZP&COW세미나 . . . . 24 matches
|| 5:40 - 5:50 || 로보 코드 소개 ||
|| 5:50 - 6:10 || 로보 코드 1차 코딩 ||
|| 6:10 - 6:20 || 로보 코드 1차 경기 ||
|| 6:20 - 6:40 || 로보 코드 2차 코딩 ||
|| 6:40 - 6:50 || 로보 코드 2차 경기 ||
* 로보코드 홈페이지: http://www-903.ibm.com/developerworks/kr/robocode/robocode.html
if __name__=='__main__':
=== 로보코드 경기 참가 로봇 ===
|| 참가자 || 로봇 ||
|| 참가자 || 로봇 ||
=== 로보코드 경기 결과 ===
http://165.194.17.15/pub/upload_one/robocode_result1.GIF
http://165.194.17.15/pub/upload_one/robocode_result2.GIF
* TDD가 아직은 어렵다. 로보코드는 재미있었다.
* TDD를 좀더 알게 된 듯하다. 로보코드는 의외로 간단하다.
* TDD는 하나도 모르겠다. 로보코드 재미있었다.
* 잘 모르는 새로운 것을 안다는 것이 뿌듯했다. 준비할 때 참여자들 수준을 고려했다면 더 좋았을 것이다. 로보코드 재미있다.
* TDD는 이런거다. 로보코드 성적은 아쉽지만 재미있었다.
* 늦게 와서 TDD는 보지 못하고 로보코드만 재미있게 했다. 다음부터 시간을 잘 지켜야 겠다.
* TDD는 좋은 방법인 듯 하다. 로보코드는 재미있다.
- 데블스캠프2006/월요일/함수/문제풀이/이차형 . . . . 24 matches
if (member>guns)
else
if (boat*8<member)
else
if (member<=guns && boat*8>member)
else
int fifth();
if(brother==1)
else if(brother==2)
else if(brother==3)
else if(brother==4)
else if(brother==5)
fifth();
else if(brother==6)
else if(brother==7)
fifth();
int fifth()
cout << "fifth dwarfs\n";
- 사람들이과제를해오지않는다 . . . . 24 matches
스터디를 하는데, 발표자가 제대로 준비를 하지 않고 오거나, 각자 숙제를 제대로 하지 않는다.
* 두가지를 생각해 볼수 있다. 첫번째는 그 발표 과제가 그 사람에게 너무 벅찬것이었고 숙제도 그 사람의 수준에 맞지 않는 것이이서 못해올 수도 있다. 아니면 발표거리나 과제 거리가 그 사람에게 충분한 흥미, 동기 유발을 자아내지 못했을지도 모른다. 이는 과제를 내거나 숙제를 낸 측에서 잘못 판단한것이 문제가 된것이다. 두번째 경우는 그 사람이 그 발표를 하거나 과제를 하는것에 우선순위를 아주 낮게 두는 경우다. 그래서 발표 준비나 과제를 하는건 자신이 할거 다하고 시간 남으면 하거나, 귀찮아서 미루다 미루다 안하는 경우다. 내가 보기에는 첫번째 경우 두번째 경우 모두 우리 제로페이지에서 다반사로 일어났었다고 본다. 내 예를 들면 보통 무슨 책을 같이 공부 하자고 함께 공부하는 스터디는 끝까지 가거나 어느 정도까지 간 경우가 단 한번도 없었다. 내가 보기에는 책을 스터디 그룹 지어서 같이 공부하는건 상당히 어렵다고 본다. 아예 그러고 싶으면 스터디 그룹을 만들어서 우선 개별적으로 단시간안에 그 책을 한번 공부하고 나서 다 공부한 사람들끼리 그 책에 대한것들을 서로 물어보고 토론을 하고 하는게 좋을거 같은데 쉽지 않은 얘기다. 그런데 수동적으로 책을 공부하는 프로젝트가 아닌 프로젝트를 하는데 이러 이러한 책이 필요해서 그러한 책들을 필요한 부분들을 참고하면서 해나가가는 프로젝트는 제로페이지 내에서 중간에 해체 안되고 끝까지 간경우가 책 하나에 대한 스터디 보다는 훨씬더 많았던거 같다. 내가 보기에는 이 차이는 프로젝트, 스터디를 해 나갈때는 아주 명확한 목표가 있어야 한다고 본다. 장거리 자동차 여행을 가는데 목적지 없이, 지도없이 출발하는 경우는 없다. 프로젝트도 마찬가지로 어떤 결과물을 만든다거나, 어떤 수준(아주 구체적, 객관적인)에 도달한다는 목표가 있어야 한다고 본다. 그런데 어떤 수준은 좀 애매하기에 어떤 결과물을 목표로 잡고 스터디, 프로젝트를 하는게 좋겠다고 생각한다. - [상협]
- 새싹교실/2011/學高 . . . . 24 matches
* 직역하면 배움을 높인다는 뜻이고, 컴퓨터공학을 전공하는 공학도로서 기초가 되는 C언어를 보다 더 잘 학습하겠다는 의지를 담고있습니다.
* 학생들이 보충수업을 요청해올 경우 보충수업 또한 진행합니다.
* 더 이상의 학생은 받지 않습니다. 그리고 이 부분 마음대로 수정하지 마세요.
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
* 강사 불찰로 회고를 잘 진행하지 못했습니다.
* 신기호 선생님반으로 분반 되는 학생: [박지호], [이가희], [황세중]
* 다음 시간부터 수업시간이 월 16~18시로 변경됩니다.
* [윤종하]: 수업 준비가 미흡해서 제대로 진행못했고, 실습으로 준비한게 수준이 좀 높았다. 김준호 학생의 경우 visual studio 설치와 Wi-Fi가 안 됨을 계속 불만사항으로 지적했으며 수업태도가 상당히 불량했습니다.
* [김준호]: 선생님과 생각이 동일합니다.(김준호에 대한 생각 빼고), 배고파요 그래서 집중을 제대로 못했어요
* [김지연]: 피곤해서 집중을 제대로 못했다.
* [김세영]: 수업시작 할 때 개괄적으로 뭘 할지에 대해서 말해주면 좋겠다.
* [윤종하]: 오늘도 역시 분량 조절에 실패했다. 알바하는데서 노가다 시켜서 정신을 놓고 새싹을 진행해서 잘 설명을 못한것 같다. 다음시간부터는 애들 과제 절대로 수업시간에 써먹지 않겠다.
* [윤종하]: 김준호를 제대로 지도하지 못해서 진도가 덜 나가서 약간 좀 진도나가기가 힘들었다. 김준호에 대한 개별 보충학습을 수행하거나 혼자서 공부를 해오도록 유도하겠다. 세영이 같은 경우는 집이 멀어서 공부를 하기가 힘들다고 했다. 따라서 중간 고사 이후에는 시간을 확실히 조정하도록 하겠다. '''더 이상의 참가는 불허할 방침'''
* [김세영]: 함수 전까지는 좀 쉬웠는데 함수로 넘어오니까 난이도가 높아진 것 같다.
* [김지연]: 오늘 배운 걸 토대로 열심히해서 중간고사 잘 봐야겠다.
* [윤종하]의 학생회 일정등으로 휴강 했습니다.
* 선생이 밤새고 와서 정신을 놓은 관계로 진행하지 못했습니다.
- 새싹교실/2011/무전취식/레벨3 . . . . 24 matches
김준석 : 5일간 연속으로 술마셨고. 총MT를 가서 2시간 만에 죽었어. 다른과 교수님이랑 술마셨어. 경영과. 만우절날. 교회를 간만에 가서 잤어. 모교 고등학교 갔음. 추억이 새록새록한것을 느낄수 있었어. 집에가서 백숙을 만들어먹었다. 그러고 자고 머리를 한번 세워봤다. 그냥 볼만했다. 그러고 숙제로 밤을 새다가 화요일이 됬어.
이소라 : 만우절에 교복을 입었다. 그러고 고등학교를 갔다. 그러고 친구들만났고 고딩 수업을 들었어요. 애들 수업중에 돌아다녔더니 선생님이 잡아서 교실에 집어넣고 공부를 어떻게 했는지 애들에게 말을 해달라 했다. 저말고 여러명간 애들이 '지금은 놀아라. 100일이 되야 똥줄이 타서 공부를 하지'라고 했다. 그리고 애들은 다 서성한 이상을 간다고 예상하는데 깨주고 왔다. 이게 금요일이였고 선대 수업을 빼먹고 간거였어요. ㅊㅋㅊㅋㅊㅋㅊㅋㅊㅋㅊㅋㅊㅋㅊㅋㅊㅋㅊㅋㅊㅋㅊ 교실에 갔더니 여자애들만 교복이었어요. 토요일에 친구랑 영화 '그대를 사랑합니다'봤습니다. 슬펐습니다. 엉엉 ㅠㅠ 토요일에 고등학교친구랑 저희동네에서 먼데 봤어요. 어떤 음식점에 들어갔는데 따른 고등학교 친구가 또 들어와서 서프라이징!!!! 근데 별로 안친함. 아빠랑 그날 술먹음. 아빠가 엄청많이 취하고 나도 취했음. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
이진영 : 오늘 아침에 일어났는데 오늘이 토요일인줄 알았음 ㅠ.ㅠ 꿈꿔서. 근데 엄마한테 신난다고 얘기했더니 엄마가 의아해함 . 토요일이라고 밥먹고 놀고있었는데 엄마가 화요일이라고 내 꿈을 깼다 ㅠ.ㅠ 만우절날 교복을 입고 베스킨에 갔는데 소라가 거기 있던 사람들이 '얘넨 진짜 고딩인가봐'라고해서 기분이 좋았다. 일요일에 과외를 시작했어요.(초딩이 고1을 가르친다) 그때 어머니가 오셔서 5만원 추가금액을 줌. 통장이 꽉차서 좋음 ㅠㅠ ~~~! 그리고 선대하는 시간에 과외공부해서 난감해용 ㅠ.ㅠ 그리고 토요일에 처음으로 고진감래 주란걸 먹어봤는데?? 맥주잔에 소주잔을 넣고 콜라를 넣어요. 그리고 또 소주잔을 넣고 소주를 넣어요 그리고 맥주를 맥주잖에 넣으면. 참 쉽죠? 그리고 흔들면 거품이 섞이면서 맛이나는데 첨은 쓰다가 뒤에 콜라맛덕택에 달아서 고진감래 주임. 그리고 그거먹고 빙글빙글@_@ 얼굴이 터질것 같았다. 심장이 배에서도 뛰고 귀에서도 뛰었어요@_@_@///
강원석 : 지난주 수요일. 파마를 했어요. (근데 왜 모르겠지) 아 직모라 못알아보나보다~~~~~~. 그리고 교양수업 드랍! 정치와 사회! 예에~~~!!!!! 나도 드랍학생~~! 세속적인 이유로. 그리고 소모임 쿠션즈에 들었어요. (진영 : 난 강제 가입됬음 ㅠㅠ 오늘 회식있는데 안감) 이거 끝나고 달려갈꺼에요. 총MT갔어요. 금요일 장보기 맴버라 장을 봣는데 상현이 형이 요리를 잘해요. 소원 적는 부분에서 '쿠션즈 잘되게 해달라','키크게 해달라'(어릴때 빌었어야지 - > 어릴때도 빌었겠지). MT를 가자마자 백화수복을 꺼내서 마심. 밤에 다 행사 다하고 술게임을 하고 사발로 벌주를 시작해서. 벌주를 마시고 죽었음. 그리고 일요일은 자고. 어제는 교양학교 졸업식에서 또 술을줬어요 ㅠㅠ 애들이랑 청량고추 먹는 게임해서 걸렸는데 갑자기 중원이형이 와서 흑기사를 해준데요 그래서 먹이고 원래 흑기사 소원을 들어주는거 있어서 청량고추 2개를 먹었어요. 근데 1개 밖에 못먹음=ㅂ=. 그자리에서 청량고추 먹은 애들 다 죽음 ㅠㅠ. 집에 갈려고 가는데 친구를 만남. 평소에 꾸밈이 없는애였는데 갑자기 꾸며입고 와서 '쟤 미팅을 했구나'라고 생각하고 근데 파트너가 별로였다함. 그러면서 놀다가 집에 감.
* Memory에 적재되서 실행되는 프로그램 그 프로그램 안의 변수.
* 프로그램은 문장단위로 코드를 돌리게 되는데 그것을 끊어주는 단락이 ; 입니다.
* 제어문을 배웠습니다. 제어문은 프로그램의 흐름을 제어하는 문장입니다.( if,switch{case},while(){},do~while();,for( ; ; ) )
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 이번 주 수업은 짧았지만 그래도 지난 수업 내용을 되짚을 수 있어서 나름대로 큰 의미는 있었어요~! 숙제로는 봉봉 교수님 강의때 했던 실습내용들을 전부 해보는 건데 아직은 막히는 것들이 조금은 있는것 같아요. 그런데 그게 프로그래밍 미숙으로 막히는게 아니고 그냥 제가 수학적 능력이 딸려서 막히는 것 같아요 ㅜㅜ 이제 C프로그래밍 정규수업도 실습 숙제가 나왔는데 잘 해결 됬으면 좋겠어요. -[서원태]
* 이번 주 수업은 짧았습니다 약 한시간정도ㅎㅎ 제가 모르는것을 되짚어 주셔서 감사했어요 이히히 근데 숙제안해갈뻔 했네여..ㅋㅋㅋㅋ까먹고 있었어요 앞으로 위키를 자주 확인 해야겠습니당.ㅇ...C공부를 더 하기 위해 C언어 입문서를 오늘구입했습니당...ㅎㅎ 잘해지고 싶어욧~! -[이진영]
* 복습을 했습니다 오늘은 한시간밖에 수업을 하지않았네요 ㅠㅠ 오빠도 일이있으셨고 저도 창설 팀플을 하기위해 갔지용..ㅠㅠ 오늘은 아이스브레이킹이 젤로 재밌었어요ㅋㅋㅋㅋㅋ 사실 진짜 별로 한게 없었던 주였는데... 생각도안났고 ㅋㅋㅋㅋㅋㅋㅋ 쓰다보니 젤 많이 썻어요ㅋㅋㅋ 복습은 정말 중요한 것 같습니당☞☜ 배열도 잠깐 맛보기했었는데 배열 정말 못해요!!!ㅋㅋ 배열 빨리 들어가서 정확하게 알고 쓸 수 있었음 좋겠습니당ㅎ_ㅎ!!!!! -[이소라]
- 새싹교실/2011/무전취식/레벨6 . . . . 24 matches
김준석 : 지난주에 시험기간. 댄스스포츠를하고. 댄스스포츠 동아리를 들어갔어. 5주를 나가서 신입회원이 됬다. 내가 거의 젤 어림. 요즘에 춤바람이 났다고 주위사람들이 얘기함. 그리고 게임을 너무 많이 했음. 심시티4 를 너무 열심히함. 그리고 이번주 프로젝트 발표가 3개가 있어. 이번주 금요일날 죽을것 같음. 전체적으로 시험은 B이상은 나올것 같음.
김태진 : 지난주에 부모님 만남. 창설을 새로운 알고리즘을 급조해서 써보려했으나 완전 망함. ㅋㅋㅋ 그리고 원래껄로도 새로하려했는데 원래껄로 하면 되는줄 알았는데 또 Fail. 결국 Fail Fail. 지난주에 C시험을 치자마자 원석이를 찾았는데 원석이 사라짐. 애들이 타함께 찾다가 청룡탕으로 가는걸 봣으나 그 뒤를 모름. 생물의 기원과 진화 점수 18점 맞음.
* Array는 같은 TYPE의 변수들이 연속적으로 한 이름으로 나열되있는것입니다. 생김새는 {{{ a[10] }}} 쓸수있는건 {{{a[0] ... a[9]}}}
* Factorial 짤때 중요한건 Stack Call!! 함수 호출시. 스택에 돌아올 주소를 넣어두고 함수가 종료되면 스택에서 빼와서 돌아간다. 너무 많은 자기 자신을 호출하는 함수라면 스택에 너무 많이 쌓여 오버 플로우(Over Flow)로 에러가 나게 된다. 항상!! 종료조건을 정하고 함수를 설계하자.
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 이걸 너무 늦게 올리게 되는군. 내가 Array를 이때 가르쳤었구나 이렇게. factorial은 중요하긴 한데 더 중요한건 Stack Call이라는 설계입니다. 잘 기억하시고요. 이때 케잌을 먹었는데 기억하면 신나는군요 자 다음 레벨 7로 갑니다. - [김준석]
* 배열 너무 어려워요... Stack은 그림으로 조금이나마 이해해서 다행인것 같아요. C과제가 새로 나왔는데 배열을 써서 풀 수 있는게 있다고 했는데 배열을 아직 잘 이해를 하지 못해서 배열을 쓰지는 않았어요. 복습을 빨리 해야하는데 시험도 끝나고 하니까 너무 게을러졌어요ㅋㅋ. 빨리 정신 차리고 C공부를 계속 해야겠습니다. - [서원태]
* 안하고 게으르다고 생각하는게 정상이다. 그렇지만 너가 아무것도 안하는것도 아니지 이렇게 새싹 교실에 참여하는것만으로도 너의 실력은 올라간단다. - [김준석]
* 어쩐지 저는 이 반도 아닌데 육피에 거주하다보니 (그리고 우리반 새싹은 거의 질문형식이다보니) 다른 이런저런 새싹을 보게되고 끼네요. 덕분에 ICE Breaking에 제 이름이..- 사실 지금 후기를 쓰는것도 피드백 갯수를 채우려는 속셈...응? 배열은 C시간에도 이제 막 배우고 있는건데 여기는 제대로 연습안했다간 망하기 쉬운곳이라더군요. 삽질열심히 해야겠어요. -[김태진]
* stack과 array 에 대해 배웠습니당..ㅎㅎ 근데 이날은 케잌과 과자를 무진장 먹고 엄청 졸았던 걸로 기억되네요...그래서 이 날 수업은 @.@ 이상태에서 들었어요..죄송해요..흑흑 근데 이거 다음주에 복습을 다시 한번 해서 >.< 좀 알 것 같아요!! 근데 stack이 이해가 가긴 가는데 완전히 가지는 않아요ㅠㅠ 그...네모난 그릇밖에 생각이 안납니당...ㅎㅎ대충은 알겠는데 ㅠㅠ 더 올바른 이해가 필요합니당! -[이진영]
* 후기 늦게써서 죄송해요...ㅠ_ㅠ 스택은 어렵습니다. 별로 신경써야하는 부분이 아니라고 생각하고있었는데 그래서 재귀함수를 못했나봐요. 배열도 완전히 까먹고있던걸 새로배우는 마음으로 배웠어요. 배열~포인터까지는 다시한번 복습이 필요할것같아요! -[이소라]
- 새싹교실/2011/무전취식/레벨8 . . . . 24 matches
김준석 : 이번주금요일에 IFA 에 참여를 합니다. Ice breaking같은 커뮤니케이션 기술, 회의 진행. 지난주에 체육대회 개최한걸 다사다난하게 끝냈습니다. 스티브 잡스에 관한 발표도 잘했어. 강원석 : 저도 스티브잡스 책봐요 ICon:스티브잡스! 사람들이 평가를 했는데 '교수님보다 잘갈킴' 기분이 좋았음. 어제 ZP 스승의 날 행사를 해줌. 춤은 여전히 잘배우고 있습니다.
* IFA 입니다.. - [서지혜]
* 아 IFA군; - [김준석]
김동우 : 놀았습니다. Ipad 만졌습니다. 쩔음. 님도 사셈. 프로젝트 회의를 했습니다. 2주뒤에 영어 문서 50장을 만들어야합니다. 2주뒤에 키노트 준비 해야합니다. 배워야합니다. 영어에요 또. 짜증납니다.
이소라 : 저번주 목요일날 모여서.별로 한게 없음. 어제한거 말씀드림. 어제 집에가서요. 친구 대타로 알바하게되었음. 걔가 축제를 하는데 공연을 해야한다고 알바를 대신해야한다고 그랬음. 축제가 수목금이라 월화는 안가도 될줄 알았는데 교육을 받으래서 2시간 일찍가서 교육받고 알바함. 8~12시까지 할것도 없음. PC방이었음. 그래서 일을 더했는데 사람이 2~3시되면 사람도 없는데 40대 아저씨가 이상한 창을 띄우고 보는걸 카운터에서 봄. 그리고 빨리 닫음. 문화충격. 어제 잠을 못자서 스트레스를 받아서 라면, 햄버거 먹고 먹고 먹고 먹고 잘수 있었는데 친구랑 나가서 놀음.
강원석 : 지지난주 엄마가 동생이랑 일주일간 해외여행가서 아빠랑 둘이서 쓸쓸히 밥먹고, 거의 일주일간 폐인생활했는데 엄마가 오니까 좋아요. 4월말에 헬스 등록해서 헬스 하는데 트레이너랑 일주일에 3번씩 합니다. 근데 트레이너가 식단까지 관리해서 맘대로 먹지도 못함. 그리고 운동하고 집에오면 탈진하기 직전이라 아침에 코피남. 3주동안 5kg빠짐. 2달남았는데 10kg더 빼겠습니다. 선대 점수 나옴. 앞에서 20등 내외. 완전 잘찍음.
이진영 : 일요일에 야구장에 갓음. 잠실. 'ㅅ' 두산 vs SK=> 0:5 이겨서 신남. 그리고 어제 남자친구가 학교를 옴. 문예사를 같이 들음. 필기를 대신해줌 ㅋㅋㅋㅋ 소라 : 그래서 내가 옆에 못앉음 ㅠㅠ 남자친구앉고 내가 앉고 이종성이 앉음. 그래서 남자애들이 주목해서 욕함 ㅋㅋㅋ 학교가 좋아 보인다능. 대학교처럼 보인다고함. 그리고 월미도에 감. 바이킹을 탓는데 90도 넘어서 무서웠음 ㅠㅠ 그리고 하나 타고 밥먹으로 나감. 그리고 카페갓다 집에갔는데 아빠 생신이었음. 근데 엄마 아빠가 없어서 둘이 데이트하러나가셨나 보다해서 봤더니 아빠가 제가 안와서 속상해서 술마시러 가심 ㅠㅠ 아빠가 술먹고 제방에서 주무심. 죄송합니다 아빠. ㅠㅠㅠㅠㅠㅠ
* NULL : 0이죠. NULL과 0은 논리적으로 다르지만 물리적으로 0으로 같습니다.
if(f == NULL){
if( fgets(buf,256,f) == NULL){
이소라 : 파일입출력을 처음 봤어요. 네.. 그걸 포인터로 쓰는지도 몰랐어요 잘 배웠어요. 근데 담주에 못할것 같아요.
강원석 : 파일입출력을 포인터로 배웠는데 포인터를 처음부터 배워야할것 같아요. 포인터랑 Array도 그렇고 할것이 많네요
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* Ice Breaking이 날이갈수록 흥미진진한 얘기가 나옵니다. 재밌네. 오늘은 복습을 좀 많이 했죠. 기초가 중요한겁니다 기초가. pointer도 쓰는법은 생각보다 간단하지. 간단한 파일입출력도 해봤고. 정말 정말 잘하고있어. 수업태도도 나아지고있고. 이제 앞으로 나머진 들러리지만 알아두면 좋을 팁이라고 생각합니다. 하지만, 앞에서 배운 많은 개념을 잊어먹은것 보니까 이건 사태의 심각성이 있네 역시 복습하길 잘했어. 그리고 winapi사이트좀 자주가. 거긴 볼것이 많아. 그리고 후기좀 자세히봐=ㅂ= 후기쓸때도 그날 배운것 배껴서라도 올려내고!! - [김준석]
* 훗 1등. 지난주에 못와서 복습을 했어도 좀 아리까리 하네요. array쪽부터 차근차근 다시 복습을 해봐야 할것 같습니다. 오늘 파일 입출력을 배웟는데 신기했어요. 저런걸 pointer로 하는지는 몰랐는데.... 그리고 구조체에 대해서 간단하게 배웠어요. 앞으로 계속해서 저랑 마주하게 될 아이들이니깐 열심히 공부해야 할것 같아요. - [강원석]
* 오.. 1등 ㅊㅋㅊㅋ. 기특하군 새벽에 메신저에 있는거보니 뭐하는진 모르겠지만. 재밌길. 파일pointer가 좀 신기하긴 하지 사실 난 저걸 배울때 그냥 문법으로 알았는데 생각해보면 pointer라는것을 깨달은게 정말 오래걸렸달까? 구조체는... 나중에 진화한단다 그걸 위해서 고생좀 해봐야지. 그래 우리가 앞으로 더욱 레벨업된 몬스터를 상대하게 될꺼야. - [김준석]
* 파일 입출력을 처음 보게되었는데 어려워도 해보면 정말 재미있을것 같아요. 여태 많이 봐왔던 파일들의 위치를 나태내어주던(주소창에 막 써졌던 것들)것에 대해 오늘 배운 파일 입출력에서 실체를 알게되었습니다ㅋ 포인터는 정말 중요한것 같아요. 반드시 여러번 이용해보면서 포인터에대해 익숙해 져야겠습니다. 그리고 저도 C관련 책을 하나 구해서 따로 자습을 해야 할것 같아요. - [서원태]
* 음.. 포인터 없는 C란 존재할수 없지. 다음번에는 어떤 예제를 해볼까 두근두근 하구나. 원태 열심히는 하지만 이부분 외에도 다른부분에 신경써보면 좋겠어. 이시간에 집중하고 다른시간에 딴것을 해보렴. 다른것도 받쳐줘야 프로그래밍도 잘한단다. - [김준석]
* 파일 입출력 처음 배웠습니다! 완전히 처음봤어요. 근데 html인가? 하여튼 웹프밍배울때 배웠던 파일입출력이랑 조금 비슷한 것 같아요. fgets는 이해 안가요 ㅠㅠ 왜 저렇게되는지 모르겠어요 흑흑. 수업은 파일입출력까지 안나가겠지만 그래도 확실히 알아두고싶습니다+_+ 오빠 월요일에 안가서 죄송해요..헤헷.. @>----- 꽃...하핳... 그래도 오빠한테 항상 감사하고있어용♥ 앞으로도 잘부탁드려용 -[이소라]
- 새싹교실/2013/라이히스아우토반/6회차 . . . . 24 matches
* if - else로 바꾸어 본다.
* 조건식 문법
Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* Internet Explorer를 제외한 다른 브라우저 (Chrome,FireFox, Opera)로 위키에 들어오면 편집하기 쉬워요.
* Can't Save가 떴을 땐 당황하지 말고, 작성한 내용을 클립보드에 보존한 뒤(Ctrl+C) 새로고침을 한 뒤 붙여넣고 저장할 것.
오늘은 switch에 대한 자세한 복습을 했습니다. 그리고 그 switch 를 if랑 else if 를 사용하여 바꿔보았습니다.
여기서 오늘 switch 와 if 랑 else if 를 이용하여 프로그램을 짤 수 있다는 사실에서 정말 재밌었습니다.
앞으로는 더 열정있게 배워서 다 마스터해 버리겠습니다.
당장 문제가 던져지면 if else같은 말로 떠오르는데 switch로 쓰려니 음.. 한번더 생각해야한다.
쉅시간에 실습할 때랑 느낌은 비슷하다. 이제 쫌 척척 쓰는것 같아서 좋지만 여러모로 헷갈린다. 걍 써야할지 ''쓰고 써야할지 등등..
느낀점은 역시 어려워요 ㅠㅠ정말로
앞으로의 계획은 더더더더더더더 실습을 집에서 많이 해봐야겠어요~!
- 정모/2013.7.29 . . . . 24 matches
== 삼성 S/W Friendship 워크샵 참가 ==
* 제로페이지가 우수 동아리 6개 중 하나로 선발되어, 워크샵에서 동아리 소개를 진행함
* 동아리 소개, 스터디/프로젝트, 운영 방식, 위키 시스템, 세미나 관련 이야기를 했습니다.
* 우수 동아리 선발 이유는, 제로페이지의 운영 방식이 매우 체계적이기 때문이라고 하네요.
* 위키 등을 통해 스터디/프로젝트나 정모 등의 내용을 공유하고, 후기와 의견을 다는 피드백이 이루어지는 것에 대해 많은 관심을 받았습니다. - [김민재]
* 제안은, 한 달 1회 지원이 아닌, 한 달 한도 금액(기존처럼 인원 수로 책정) 내에서 사용하고 월말에 정산하는 방식으로 개정하는 것
* 일반적으로, 매 스터디 진행시에 다과를 구입해서 먹는 경우가 많기 때문이며, 1회에 한해서 전액을 사용하는 것이 효율적이지 못하다는 의견이 있기 때문
* 중앙대학교의 GDG를 설립하는 것을 골자로 회장이 담당 부장님과 이야기를 하고 있습니다.
* 현재 ZeroPage에서 GDG를 소모임 형태로 만들 것인지, 아니면 ZeroPage 자체가 중앙대 GDG가 될 것인지에 대한 의견을 들어보고자 합니다. (위키에 의견을 달아주세요.)
* 저는 개인적으로 후자처럼, ZeroPage == 중앙대 GDG를 하는 것을 선호합니다. - [김민재]
* 제 입장에서는 중앙대 GDG와 ZeroPage는 분리를 했으면 좋겠네요. 현재 ZP만 봐도 다양한 혜택을 받고 있는 만큼 또한 다양한 책임을 지고 있다고 생각하는데, 여기에서 GDG까지 하게 되면 역시 추가적으로 해야 하는 일이 늘지 않을까 생각합니다. 사실 해야 하는 일이 느는 것 자체가 문제라기 보다는 나중에 정말로 하고 싶은 일이 생겼을 때 현재 지고 있는 짐(책임)이 무거워서 몸을 움직일 수 없다면 문제가 아닐까 하는 염려 때문이네요. - [서민관]
* S/W Friendship 워크샵을 통해 많은 동아리 간부들과 만났습니다.
* 제로페이지 내부에서 진행되고 있는 스터디를, 그 분야에 특화된 동아리와 같이 진행하거나, 해당 동아리에서 진행하는 세미나에 참여하는 등의 교류 활동을 하고자 합니다.
* 현재 보안 동아리, 게임 개발 동아리 운영진과 이야기를 했으며, 긍정적으로 보고 있습니다.
* 8월 10일~11일(토, 일)로 일정을 잡았습니다.
* 제로페이지에서는 6층 PC실 관리를 맡고 있습니다.
* 엠티에 대해 조금만 더 설명 덧붙여주세요~ + 전국 대학생 프로그래밍 대회 동아리 연합에 관한 이야기를 언젠가 할 기회가 있어야할텐데..음 -[김태진]
* 추가로 새로운 AI대전 모듈을 구했습니다.(골자는 땅따먹기) 관심있으면 연락주세요.
* GDG 한 학교만으로 구성할 수 있어? 내가 아는 최소단위는 지역인데.. - [서지혜]
- 중위수구하기/나휘동 . . . . 24 matches
if len(aList) < 3:
if aList[maxIndex] <= aList[k] <= aList[minIndex]:
elif aList[maxIndex] <= aList[minIndex]:
if aList[maxIndex] > aList[k]:
elif aList[minIndex] < aList[k]:
else:# aList[maxIndex] > aList[minIndex]:
if n == 0:
if __name__ == '__main__':
if len(sys.argv) > 2 :
if sys.argv[2] == "metric":
elif sys.argv[2] == "median":
elif sys.argv[2] == "sort":
if len(aList) < 3:
if aList[maxIndex] <= aList[k] <= aList[minIndex]:
elif aList[maxIndex] <= aList[minIndex]:
if aList[maxIndex] > aList[k]:
elif aList[minIndex] < aList[k]:
else:# aList[maxIndex] > aList[minIndex]:
if n == 0:
if __name__ == '__main__':
- 지금그때2004/회고 . . . . 24 matches
[지금그때2004] 를 준비한 사람들의 회고. (혹시 지금그때2004 위키에 어울리다면 그쪽으로 옮겨주길)
* MP3와 매직을 뺀 나머지 준비물을 행사 시작 전에 준비 했다. 특히 과자와 음료수는 수민 군의 바람(?)대로 넉넉하고 남을 정도였다.
* 작년보다 OST시간이 더 길도록 기획했으나 뜻대로 되지 않았다.
* 해당 학회 게시판에 '지금그때' 에 대한 홍보가 하나도 없었습니다.(Netory의 경우는 행사 전날 급하게 올린 공지글이였고, Netory 에서 오신 분들은 패널을 맡아주신 선호형 외에 없었습니다.)
* JStorm 의 경우 또한 마찬가지입니다.
* 패널들의 이력사항에 대한 소개가 미비했다는 생각이 듭니다. 패널들의 소개를 좀 더 적극적으로 자세히 하고 홍보를 한다면, 더 적극적인 질문을 이끌어내지 않았을까 생각합니다.
* 정리의 어려움 - 대화 내용을 논리적 연관성으로 정리하기 어렵다. 정리가 잘 안된 자리는 중간에 다른 사람들이 들어오기 어렵다.
== 앞으로 보완할 점 (구체적인 Next Action Plan 의 형태로 적어주시기 바랍니다) ==
* 할 수 있다면, 리허설때 패널을 맡으실 분들을 일부 초청하는 방안도 생각. (보통은 쉽지 않으나, 올해처럼 재학생인 패널도 있으므로, 그러한 사람들에게는 가능하지 않을까)
* 30여분 하였습니다. 행사 소개 시간을 뺀 나머지 시간은 1시간을 12분으로 계산하고 했습니다. 일정을 모두 칠판에다 적어두고 시작했습니다. 한 번 리허설 하다가 시간이 잘못되었다는 지적이 나와서 다시 한 번 하였습니다.
* 제가 급해서 잘못 전달했군요. [지금그때2004/전통과사유20040329]에 시간이 부족하고, 재현에 불과해서 내용을 간추려서 실제 속도와 다르게 한것입니다. 다음에 이러한 기회가 온다면, 한 코너만 때어서 거의 비슷한 시간으로 리허설을 해보시는 것도 좋습니다. 2003에서는 1시간 정도, ost에서 나올 만한 한주제만 때어서 [지금그때2003/규칙]을 밑바탕 삼아 동일한 속도로 했거든요. 그 피드백으로 규칙이 변했었죠. 모든 사람이 하나에 매달일 필요도 없이, 두 조로 나누어서 병렬로 하면 좋은 효과를 볼수 있습니다.
* JStorm 이나 Netory 의 경우 해당 소속의 한명에게 이야기하는 식으로 하는 소극적인 전달이 아닌, 1주일전 해당 학회 게시판에 공지를 적고 오실분들이 어떻게 연락을 해야 하는지, 학회 소속원으로의 연락은 어떻게 해야 하는지에 대한 명시적인 피드백을 받아야겠습니다. 그리고 최소한 해당 학회 소속원과 2회 이상의 전화연락이 필요하다 봅니다.
* 각 학회의 경우도 가장 전달이 잘 되려면 정기 모임(둘 다 매주 수요일 즈음)이전에 연락하거나, 정기 모임때 홍보할 사람들이 직접 참여하여 설명하는것이 좋겠다.
* 패널 초빙시 2주 전 연락을 하고 확답을 받은뒤, 홍보시에도 적극적으로 이용.
* 사회자의 긴장도 등을 줄이기 위해 다음번에는 페어로 사회를 보는 방법도 생각해봄직하다. (04 & 04 or 03 & 04 등의 조합)
* 도우미들이 적극적으로 Recorder 가 되는 건 어떨까. MinMap이나 ScatterMap 기법들을 미리 숙지한뒤, 레코딩 할때 이용하면 정리 부분이 더 원활하게 진행될것 같다.
* 행사 진행 중간에 조언에 따라 책상을 1개로 줄인 것이 있었는데 2개짜리 책상에서도 무리 없이 이야기를 하였던 듯 합니다. --[Leonardong]
- 지금그때2006/선전문 . . . . 24 matches
매년 참가자들의 좋은 후기로 이번에도 또 기획하고 있는 <b>지금그때</b> 기획단 입니다.
<B>지금그때</B>(이번 행사이름)는 이런 이야기를 나누는 진지하지만 재미있는 자리가 될 것입니다. 여태 서로 몰랐던 선배, 후배, 동기가 한 자리에 모여 이야기하는 동안 좋은 인연으로 발전할 수 있는 발판이 되기를 바랍니다.
행사는 4월 7일 금요일 저녁 7시에 시작하여 2시간 정도 진행할 예정입니다. 장소는 공대 강의실 가운데 한 곳으로, 강의실 번호는 추후 공지할 예정입니다.
<a href="http://165.194.17.5/~leonardong/register.php?id=nowthen2006"> 신청하러가기 click </a>
지나고 난 지금, 그때를 되돌아 보면 모든 것이 달라 보입니다. 그때는 왜 그랬을까. 그때는 왜 몰랐을까. 사람은 때로 자기 결정에 후회하는 일이 있기 마련입니다. 누군가의 도움을 받았으면 더 잘했을 지 모릅니다. 거꾸로 생각해봅시다.
이 행사의 모토는 이렇습니다. "<a href="http://sgti.kehc.org/child/contents/teaching/14.htm"> <B> 지금 알고 있는 것을 그때도 알았더라면 </B> </a> " 단지 후회에서 그치지 않고 어떻게 했을까 생각해 봅니다. 의외로 지금도 늦지 않았다는 것을 발견할 수도 있습니다.
<B>지금그때</B>(이번 행사이름)는 이런 이야기를 나누는 진지하지만 재미있는 자리가 될 것입니다. 여태 서로 몰랐던 선배, 후배, 동기가 한 자리에 모여 이야기하는 동안 좋은 인연으로 발전할 수 있는 발판이 되기를 바랍니다.
행사는 4월 7일 금요일 저녁 7시에 시작하여 2시간 정도 진행할 예정입니다. 장소는 공대 강의실 가운데 한 곳으로, 강의실 번호는 추후 공지할 예정입니다.
<a href="http://165.194.17.5/~leonardong/register.php?id=nowthen2006"> 신청하러가기 </a>
안녕하세요 저는 03학번 나휘동입니다. 이렇게 글을 쓴 이유는 <학회이름> 여러분을 "지금그때"에 초대하고 싶어서 입니다. 비록 준비하는 이들이 ZeroPager이지만, ZeroPage와는 상관없는 모든 이를 대상으로 여는 행사입니다.
지나고 난 지금, 그때를 되돌아 보면 모든 것이 달라 보입니다. 그때는 왜 그랬을까. 그때는 왜 몰랐을까. 사람은 때로 자기 결정에 후회하는 일이 있기 마련입니다. 누군가의 도움을 받았으면 더 잘했을 지 모릅니다. 거꾸로 생각해봅시다.
이 행사의 모토는 이렇습니다. "<a href="http://sgti.kehc.org/child/contents/teaching/14.htm"> <B> 지금 알고 있는 것을 그때도 알았더라면 </B> </a> " 단지 후회에서 그치지 않고 어떻게 했을까 생각해 봅니다. 의외로 지금도 늦지 않았다는 것을 발견할 수도 있습니다.
<B>지금그때</B>(이번 행사이름)는 이런 이야기를 나누는 진지하지만 재미있는 자리가 될 것입니다. 여태 서로 몰랐던 선배, 후배, 동기가 한 자리에 모여 이야기하는 동안 좋은 인연으로 발전할 수 있는 발판이 되기를 바랍니다.
행사는 4월 7일 금요일 저녁 7시에 시작하여 2시간 정도 진행할 예정입니다. 장소는 공대 강의실 가운데 한 곳으로, 강의실 번호는 추후 공지할 예정입니다.
원하는 주제에 대해 관심있는 사람들이 같은 자리에 모여서 이야기합니다. 현제 이야기 하는 주제를 바꾸거나, 자신이 원하는 주제로 이동할 수 있습니다.
<a href="http://165.194.17.5/~leonardong/register.php?id=nowthen2006"> 신청하러가기 (클릭)</a>
장소: 공대 강의실 4252로
원하는 주제에 대해 관심있는 사람들이 같은 자리에 모여서 이야기합니다. 현재 이야기 하는 주제를 바꾸거나, 자신이 원하는 주제로 이동할 수 있습니다.
<a href="http://165.194.17.5/~leonardong/register.php?id=nowthen2006"> 신청하러가기 (클릭)</a>
- 채팅원리 . . . . 24 matches
= 프로그램 구조 =
이 채팅프로그램은 다른 여느 채팅 프로그램처럼 서버와 클라이언트 부분으로 나누어져 있다.
== 서버 프로그램 구조 ==
서버쪽에서는 총 4개의 Thread가 사용되었다. Thread는 메모리를 공유하면서도 독립적으로 실행될 수 있는 프로세스 단위라 할 수 있겠다. 4개의 Thread는 다음과 같다.
SendUser : 클라이언트 사용자가 현재 접속되어 있는 사람들의 ID를 알 수 있게 List에 사용자 이름을 보내주는 클래스이다.
== 클라이언트 프로그램의 구조 ==
ReceiveMessage : 서버로부터 전달되는 메시지를 받아서 ChatMain 클래스의 메시지 출력 화면에 보여주는 역할을 한다.
SendMessage : 서버로 메시지를 보낸다.
채팅의 동작원리는 실제로 채팅이 이루어지는 과정을 예로 추적하면서 설명하기로 한다.
서버가 시작하면 ReceiveEvent 클래스에서 클라이언트로부터 전달되는 Event를 기다리는 동시에 StatusDisplay 쓰레드와 다른 쓰레드들을 시작한다.
클라이언트가 대기실에 입장하면 내부적으로 클라이언트는 서버쪽에 새 사용자가 접속했다는 메시지를 보낸다. 그러면서, Login 프레임대신 ChatMain 프레임을 보이게 한다. 이제부터 대기실에서 채팅이 가능하게 된다. 서버쪽에는 새 사용자가 대기실에 들어왔다는 것을 보여준다.
새 사용자가 접속을 시도하면 처음과 마찬가지로 사용자 ID 체크를 하게된다. ID 사용 확인을 한 후에 대기실에 접속을한다. 대기실에 접속하면, 기존에 대기실에 있던 사용자들의 사용자 ID를 보여주는 리스트에 새로 들어오는 사용자의 리스트가 추가되면서, 채팅화면에 새로운 사용자가 들어왔다는 메시지가 나오게 된다.
2명 이상의 사용자가 접속한 상태이므로 실제로 채팅이 가능하게 된다. 채팅의 내용은 클라이언트의 TextField의 내용을
DagagramPacket에 미리 기억된 서버쪽의 주소와 포트번호를 추가하여 네트워크로 보낸다. 이 메시지를 서버가 받아서 등록된 모든 클라이언트쪽으로 보내 모든 클라이언트가 메시지를 받아 채팅화면에 출력할 수 있게한다.
- 프로그래밍십계명 . . . . 24 matches
도스시절 한글라이브러리인 한라 프로를 만드신 임인건님께서 쓰신 글입니다.
프로그래밍을 공부하시는 분들께 큰 도움이 되리라 생각합니다.
*오늘 필요 없는 정보는 내일 필요하리라. 가장 가치 있고도 저렴한 지식은 책 속에 있느니라. 서점과 동료의 책꽂이에 무엇이 꽂혀 있는지 때때로 살피어라. 무심코 흘렸던 종이 한 장이 너의 근심을 풀어 주었으리라. 설명서는 충분히, 꼼꼼히 읽을지어다. 모든 의문은 설명서를 안 보는 데서 생기니라. 그렇더라도 모두 다 읽을 필요는 없느니라.
*5분 후에 정전이 되고 내일 너의 하드가 맛이 가리라. 그러하니 너의 소중한 소스 코드는 정기적으로 여러 군데에 단계별로 백업해 두어라.
*정수가 절대로 그 한계를 넘지 않으리라 가정하는 것은 어리석음이라. 127, -128, 255, 32767, -32768, 65535, 이 숫자들을 너의 골수에 새기어라. 0.0은 0이 아니니 실수는 원래부터 결코 정밀하지 않느니라. 부호 없는 것과 있는 것을 어울리거나 정수끼리 나눌 때에는 늘 조심하여라.
*너의 컴퓨터는 1보다는 0을 좋아 하니라. 배열의 첨자가 그 범위를 넘지 않을지 손 댈 때마다 따져 보아라. 수식에 1을 더하거나 뺄 때에는 늘 긴장하라. 너의 프로그램은 단지 한 번 덜해서 틀리고 한 번 더해서 다운되느니라.
5. 항상 모든 경우의 수를 고려하고 섣불리 생략하지 말지어다.
*절대로 일어나지 않을 일은 반드시 일어나고, 가장 드물게 일어날 일이 가장 너를괴롭히리라. 그러하니 언제나 논리에 구멍이 없는지 꼼꼼히 따져 보고, if를 쓸 때에는 else부터 생각하라.
*지금 그 매개 변수가 결코 가질 수 없다는 값을 내일부터는 가지리라. 그러하니 매개 변수값이 올바름을 항상 검사할지어다. 그렇더라도 처리 속도가 문제가 되는 경우는 예외이니라.
7. 오류를 알려 주는 기능은 있는 대로 모두 활용할지어다.
8. 한 번의 수정과 재컴파일만으로 연관된 모든 것이 저절로, 강제로 바뀌도록 할지어다.
*어떠한 것을 수정했을 때에 연관된 것이 따라서 변하지 않는다면 그것이 곧 벌레이니라. 컴파일러로 하여금 매개 변수 리스트를 완전하게 검사하도록 하고, 언젠가 손대야 하거나 따라서 변해야 하는 수치는 전부 매크로로 치환하며, 형 정의를 적극 활용하여라.
*너의 프로그램은 항상 바보와 미친놈만이 쓰느니라. 사용 설명서를 쓸 때에는 결코 빠뜨리지 말아라. 빠뜨린 만큼 사용자는 너를 괴롭힐 것이니라.
*가장 완벽한 프로그램일수록 가장 완벽하게 숨은 벌레가 있느니라. 네가 이 세상 최고의 프로그래머라고 떠들며 자만할 때, 옆집 곳간에서는 훨씬 더 뛰어난 것을 묵묵히 만들고 있느니라. 아무렴 프로그래밍은 혼자 잘나서 할 게 아니니, 너로 인해 다른 사람들도 더불어 잘 되면 그얼마나 좋은 것이냐.
- 3rdPCinCAUCSE . . . . 23 matches
3회 중앙대학교 컴퓨터공학과 프로그래밍 경진 대회에 대한 자료.
문제 성격: 국내 대학생 프로그램 경진 대회의 문제 출제 경향을 따른다.
- 문제에 대해서 준비된 테스트 케이스 (5-10개)에 대해서 모두 정답을 내야 그 문제를 맞힌 것으로 한다.
- 프로그램의 실행시간이 일정시간(예: 10초)을 지나도 끝나지 않을 경우 틀린 것임.
- 컴파일 error, 실행 시간 error, 출력 포맷이 문제에서 정한 것과 다른 경우에도 틀림.
- 틀린 문제는 다시 제출할 수 있다. 한 문제에 대한 제출회수 10회. 그 후는 그 문제는 못 맞힌 것으로 한다.
- 맞힌 문제에 대해서는 경시 시작부터 문제를 제출한 시각까지 시간을 분으로 환산한 것이 점수로 주어진다. (따라서 점수가 적을수록 유리) 그리고 여기에 penalty 점수를 합산한 것이 그 문제의 최종 점수가 된다. 예를 들어, 어떤 문제에 대해서, 다섯 번째 제출을 경시 시작 후 1시간 20분에 하여 맞히면 지나간 시간이 80분이므로 80점, 네 번째까지는 틀렸으므로 4번*10점=40점이 penalty, 최종 점수는 120점이 된다.
프로그램 작성시 유의 사항:
1. 각 문제는 데이터를 외부에서 입력받아서 프로그램으로 답을 계산한 후 반드시 출력을 한다. 이때, 입출력은 표준입출력만 사용한다. 파일 입출력문을 쓰면 안됨.
cout << "I got " << n << endl; // 표준 출력 부분
2. 필요 없는 입출력을 하면 틀린 것으로 채점. 디버그 메시지 모두 지우세요.
5. 채점원은 채점에 필요한 데이터를 파일로 만들어서 가지고 있다가 파일 redirection을 통하여 수행파일에 입력시킨다.
6. 모든 문제는 숫자, 영어 문자들을 입력으로 받아서, 역시 숫자나 영어 문자를 출력하도록 되어 있다. 그래픽 출력은 없음.
7. 각 문제마다 테스트 케이스가 5-10개가 있는데, 프로그램은 첫째 테스트 케이스를 입력하여 첫째 답을 출력하고, 둘째 테스트 케이스를 입력하여 둘째 답을 출력하고, ... 등으로 진행해야 한다.
아마 이전에 FourBoxes 를 풀어본 사람의 경우는 ProblemB 는 거저먹기가 생각. (재밌는건 ProblemB 의 첫번째 예제 입력 데이터조차도 마소나 FourBoxes 페이지의 내용과 똑같다. 마소의 관련 문제나 정보 올림피아드 문제은행의 것을 그대로 쓴 것이 아닌가 생각) 난이도는 전번보다 더 쉬워지고 시간도 충분하게 주어진 듯 하다.
[컴공과프로그래밍경진대회]
- AcceleratedC++ . . . . 23 matches
|| ["AcceleratedC++/AppendixA"] || Language details || ||
|| ["AcceleratedC++/AppendixB"] || Library summary || ||
* 소스코드의 코딩은 VS6를 이용할 수도 있겠지만, VS6가 나온지가 오래되다 보니 STL을 다루는 방식이 좀 달라서 책의 소스를 그대로 이용하는데 문제가 존재합니다. 따라서 .net 을 이용하거나 gcc를 이용하는 방식을 추천합니다.
|| [http://www.acceleratedcpp.com/details/msbugs.html VS6 코드 수정] || 책에 나온 소스를 VS6에서 이용할 경우 발생하는 문제점에 관한 내용이 있습니다. ||
|| [http://www.bloodshed.net/ Dev-C++] || GCC를 기반으로 하는 IDE환경으로 책의 소스를 그대로 이용가능. CVS를 제공함 ||
'''Visual C++ 6에서 굳이 하실 분들은 ''#pragma warning(disable: 4786)'' 전처리기로 컴파일러 warning을 죽이면 기타 잡스런 워닝을 없애는 것이 가능합니다.'''
각 chapter페이지 마다 링크된 다른 chapter 를 익스플로어의 '뒤로' '앞으로'처럼 편집해 놓았습니다. 사실 현재 페이지는 다시 클릭할 일이 없기 때문입니다. 어떤가요? :) --["창섭"]
으아. 개인적으로 정리하다가 포기함. 쩝.. 읽는거랑 정리하면서 읽는거랑 속도차이가 장난이 아니군. - 임인택
이제 하루정도면 다 볼거 같은데... 이미 C++의 기본 문법과 템플릿의 용법을 알고 있다면, (05년 스터디의 경우 01학번들) 8장정도 까지만 하면 충분히 이 책에서 볼것은 다 보았다고 보여진다. 만약 처음으로 C++을 접하는 경우 (05년 스터디의 경우 05학번) 마지막 까지 읽어야할 필요가 있음. 물론 상당한 분량의 C++의 깊숙한 내용을 너무 간단하게 다루는 경향이 이 책에 있기 때문에 C++ Primer Plus 같은 책을 같이 보아야할 필요가 있어보인다. 책을 좀 빠르게 읽는 편이라면 2~3일동안 집중해서 본다음에 실전에 적용시켜보는 훈련이 책 잡고 있는 것보다 더 도움이 될 것으로 보인다. 그리고 이 책 -_-;; 예제가 정말로 유기적이다. 예제를 만든 사람이 더 대단해 보인다. - [eternalbleu]
흠 오래끌면 지쳐서 다 못보게될껄.. -_-;; 난 오래끌면 절대로 책을 안보는 타입이라서;; - [eternalbleu]
6장은 내가 맡은 부분이라서 책 읽으면서 할라고 했는데 역시 안되겠다. 원서라서 그런지 시간이 너무 걸리넹 -_-; 또 소스 중심으로 후다닥 봐야겠다. ㅋ - [상협]
흠 처음 생각했던 것 보다 뒷 장의 내용이 좀 신선한 부분이 많다. 특히 14장에 Ptr 클래스는 정말로 신선하다. =.= C++로 프로그램을 짜면 이렇게 짤 수도 있구나 그런생각이;; - [eternalbleu]
- CVS . . . . 23 matches
Concurrent Versions System. 공동 프로젝트를 위한 소스 버전 관리 툴. 오픈소스계열에서 Source Repository 의 용도로서 많이 이용된다. 활발하게 이용되고 있는 곳에 대해서는 http://sourceforge.net 에서 많이 볼수 있다.
* http://www.comp.nus.edu.sg/~cs3215/tools/cvs.html - 싱가폴 국립대학의 소프트웨어 공학 프로젝트 자료. 쉬움!
view cvs 는 Python CGI로 돌아가며, 인스톨 스크립트가 있어서 설치하기 아주 쉽다. 추천.!
설치는 간단하다. install script 를 이용, CGI 가 돌아가는 경로에 설치한뒤, viewcvs.conf 에서 CVS ROOT 를 설정해주면 끝.
현재 ZeroPage 의 경우 CVSROOT 는 /home/CVS 이므로 viewcvs.conf 의 경우 다음과 같이 설정되어있다. (여기서 Development 는 일종의 이름. 여러개의 root 존재시에는 ','로 구분한다.
* 현재 ZeroPage 에서는 CVS 서비스를 하고 있다. http://zeropage.org/viewcvs/cgi/viewcvs.cgi 또는 ZeroPage 홈페이지의 왼쪽 메뉴 참조. 웹 클라이언트로서 viewcvs 를 이용중이다. 일반 CVS Client 로서는 Windows 플랫폼에서는 [TortoiseCVS](소위 '터틀'로 불린다.) 를 강력추천! 탐색기의 오른쪽 버튼과 연동되어 아주 편리하다.
* telnet cvs_server 2401(기본포트) 로 접속 여부를 확인할 수 있다.
* permission denied가 발생할 경우
* 증상: cvs 에 로그인후 프로젝트를 import 하려 하려는등의 파일을 올리려는 액션이 발생했을때 위의 에러가 출력된다.
* 원인: 어떠한 이유에 의해, cvs를 실행하는 환경이 cvs 사용자와 다를 경우 혹은 권한이 없을 경우 발생한다.
버전 관리 프로그램 몇가지 : 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내에서도 자체 버전관리 툴을 이용한다.
[SubVersion] - CVS의 새로운 대안으로 만들어진 버전관리 툴.
- CollectionParameter . . . . 23 matches
ComposedMethod의 단점중 하나는, 작은 메소드들 사이의 연관때문이다. 큰 메소드 하나에서 공유되었던 임시 변수들이, 이제는 작은 메소드들 사이에 공유된다. 가장 해결하기 쉬운 방법은 ComposedMethod를 없애고 다시 하나의 큰 메소드에 다 때려넣는 것이지만, 안좋다. 또 다른 해결책으로는 이 작은 메소드들 사이에서 공유되는 임시 변수를 멤버변수에 넣는 것이다. 이것은 객체의 생명기간 동안 유효한게 아니라, 저 메소드들이 실행될때에만 유효하다. 역시 안좋다.
for(vector<People>::iterator it = result.begin() ; it != result.end() ; ++it)
if(it->isMarried() and it->isMan())
for(vector<People>::iterator it = result.begin() ; it != result.end() ; ++it)
if(it->isUnmarried() and it->isWoman())
for(vector<People>::iterator it = result.begin() ; it != result.end() ; ++it)
if(it->isMarried() and it->isMan())
for(vector<People>::iterator it = result.begin() ; it != result.end() ; ++it)
if(it->isUnmarried() and it->isWoman())
for(vector<People>::iterator it = result.begin() ; it != result.end() ; ++it)
if(it->isMarried() and it->isMan())
for(vector<People>::iterator it = result.begin() ; it != result.end() ; ++it)
if(it->isUnmarried() and it->isWoman())
즉, 두 메소드의 결과를 모으는 경우인데, 그리 흔한 경우는 아니였던걸로 기억. 약간은 다르긴 하지만 나의 경우 CollectionParameter 의 성격으로 필요한 경우가 read/write 등 I/O 가 내부적으로 필요할때 또는 Serialization 등의 일이 필요할때. 그 경우 I/O 부분은 Stream 클래스로 만들고(C++ 의 Stream 을 쓰던지 또는 직접 Stream 클래스 만들어 쓰던지) parameter 로 넘겨주고 그 파라메터의 메소드를 사용하는 형태였음. --[1002]
- EightQueenProblem/최봉환 . . . . 23 matches
if(bOk){
if(nQueens!=7) history[nQueens+1]=history[nQueens];
else{
if(++history[nQueens].x==8){
if(++history[nQueens].y==8){
if((++history[nQueens].x)==8){
if(map[x][y]==0) cout<<' ';
else if(map[x][y]==1) cout<<'X';
else if(map[x][y]==2) cout<<'O';
cout<<endl;
if(tmp[Pt.x][Pt.y]>0) return false;
if(tmp[Pt.x][i]==2) return false;
else tmp[Pt.x][i]=1;
if(tmp[i][Pt.y]==2) return false;
else tmp[i][Pt.y]=1;
if(i-Pt.x+Pt.y<8 && i-Pt.x+Pt.y>=0){
if(tmp[i][i-Pt.x+Pt.y]==2) return false;
else tmp[i][i-Pt.x+Pt.y]=1;
if(Pt.x+Pt.y-i<8 && Pt.x+Pt.y-i>=0){
if(tmp[i][Pt.x-i+Pt.y]==2) return false;
- HelpOnConfiguration . . . . 23 matches
MoniWiki는 `config.php`에 있는 설정을 입맛에 맛게 고칠 수 있다. config.php는 MoniWiki본체 프로그램에 의해 `include`되므로 PHP의 include_path변수로 설정된 어느 디렉토리에 위치할 수도 있다. 특별한 경우가 아니라면 MoniWiki가 설치된 디렉토리에 config.php가 있을것이다.
모니위키의 몇몇 플러그인중 외부 프로그램을 사용하는 프로그램은 환경변수 PATH를 참조하여 외부 프로그램을 호출하게 된다. 이때 PATH의 설정이 제대로 맞지 않아 외부 프로그램이 제대로 실행되지 않는 경우가 있다. 이 경우 config.php에서 `$path`를 고쳐보라.
윈도우에서 gvim을 사용하여 작동된다. 이 경우 {{{$path}}}설정을 제대로 해주어야 하는데, 예를 들어 다음과 같은 식으로 `config.php`에 설정을 한다.
config.php에 `$security_class="needtologin";`를 추가하면 로그인 하지 않은 사람은 위키 페이지를 고칠 수 없게 된다. 로그인을 하지 않고 편집을 하려고 하면 경고 메시지와 함께, 가입을 종용하는 간단한 안내가 나온다.
== 대문 및 로고(혹은 배너) 설정 ==
메뉴의 대문(FrontPage)및 로고 그림이 연결하고 있는 페이지는 config.php의 다음 변수를 설정한다.
/!\ monisetup.php은 config.php를 변경할 수 있으나, 간단한 변경만 지원하고 세세한 변경은 지원하지 않는다. 최근 1.1.3 버전부터는 여러줄의 config.php 설정을 읽고 수정할 수 있다. 단, monisetup.php를 사용할 경우 코멘트는 모두 제거가 되므로 주의해야 한다.
* $kbd_script='';로 지정하면 HotKeys를 쓰지 않는다.
* $hr='';로 지정하면, 페이지 상단의 <hr />과 하단의 <hr />이 출력되지 않는다.
- OurMajorLangIsCAndCPlusPlus/2006.2.06/김상섭 . . . . 23 matches
if(this->ch == ch)
if(this->ch == ns.ch)
if(strcmp(a.ch,b.ch) == 0)
else
cout << s << endl;
cout << s.length() << endl;
cout << s.length() << endl;
cout << s1 << s2 << endl;
cout << "input string : " << s << endl;
cout << s1 << " " << s2 << endl;
cout << s1 << " " << s2 << endl;
cout << s[2] << endl;
cout << s << endl;
cout << s << endl;
if(s == 10)
cout << "s는 10입니다" << endl;
else
cout << "s는 10아닙니다" << endl;
cout << s1+s2 << endl;
if(s1 == "123")
- PC실관리수칙 . . . . 23 matches
1. PC실 정리와 학회실 정리는 학회실을 이용하는 사람들이 하는 것을 기본으로 한다.
2. PC실 정리는 한학기에 한번 진행하는 전체 정비 및 포맷, 한 학기에 2회이상 진행하는 대청소, 매일 진행하는 정리로 이루어진다.
1. 정리는 정회원 및 학회실을 이용하는 사람들의 의무로 자발적으로 진행하여야 한다.
4. 특정 사람이 자발적으로 많이 참여한 경우, 월말에 소정의 선물(책 등)이 지급될 수 있다.
7. 해당 관리 방식은 11월부터 바로 적용되며, 2주일간 자율적인 정리가 이루어지는 정도에 따라 4번 방침은 바뀔 수 있음.
* 은퇴한 회원은 필수로 포함시키지는 않는다.
1. 프린트 토너가 떨어진 경우 학과사무실에서 교환받을 수 있다.
1. 토너가 떨어진 것의 기준은 인쇄 시 중간 부분이 제대로 출력되지 않는 시점부터를 말하며, 흔들어주면 잘 작동하는 경우도 있으나 곧 잉크가 소진되므로 이 경우 개인의 판단하에 교환하도록 한다.
2. 프린트가 단순히 작동하지 않는 경우 PC 재부팅과 프린트 재부팅이 추천된다.
1. 이후에도 동작하지 않는 경우 프린터를 컴퓨터와 분리하였다가 다시 연결해보도록 한다.
3. 인쇄물이 남아있어 프린터를 사용하지 못하는 경우, 삭제되지 않으면 프린트를 끄고 몇초 후 다시 켜보는 것을 추천한다. 이후에도 차도가 없다면, 2번 프로세스를 따라가는 것이 좋다.
* 현재까지 해오던 방식을 기술하였습니다. 세세한 부분은 대개 임의로 하여도 문제 없을 것 같습니다.
* 기본적으로 다른 사람의 물건을 버리지 않는 선에서 해결한다.
* 두고 간 개인물건들은 한군데 모아두고 있으나 장소는 일정하지 않다. 전자기기 같은 귀중품은 회수한 뒤 동네 게시판에 업로드하고, 우산이나 책같은 것은 지금 현재는 PC실 문 바로 앞 빈 책상 앞에 모아 두었다.
* 관리 일지는 서술할 것이 있으면 문장으로 쓰고, 달리 없으면 명사로만 적으면 된다.
- PairProgrammingForGroupStudy . . . . 23 matches
선후배끼리 서로 세미나를 할 때 숙제 내주고 검사하는 식의 단선적인 것 말고 좀 더 적극적인 공부가 될 수 있는 방법을 소개합니다. 아주 짧은 시간 안에 많은 양의 학습(여기서 학습을 했다고 하는 것은 뭔가 할 수 있는 능력이 생겼다는 것)을 할 수 있습니다.
PairProgramming이란 ExtremeProgramming이라고 하는 새로운 소프트웨어 개발 방법론의 한가지 기법으로, 두명이 한 컴퓨터를 이용해서 같이 프로그래밍을 하는 것을 말합니다.
일견에는 인력(Man*hour)의 낭비일 것 같지만, 이제까지의 실증적 연구로는 "더 짧은 시간 내에" "더 나은 코드 (에러가 적은)"를 만들어 낼 수 있었습니다.
저는 여기서 PairProgramming의 교육적 효과와 이를 그룹 스터디나 프로젝트 팀 교육에 응용하는 방법을 간략히 서술하겠습니다.
지식관리의 세계적 학자 노나카 이쿠지로 교수는 지식에 형식지와 암묵지가 있다고 합니다. 형식지는 문서화, 규칙화, 수식화된 지식을 말하고, 암묵지는 그렇지 못한 것들을 말합니다. 그런데, 어떤 전문가가 가진 지식이라는 것은 거의 대부분이 암묵지입니다. 이제까지는 형식지의 전달에만 신경을 쏟았지 암묵지는 별 관심을 받지 못했고, 교육 모델에서도 중요하게 다뤄지지 못했습니다. (덕분에 유명한 인간문화재의 대가 끊기는 일이 빈번했죠.)
그런데 이런 암묵지는 전문가와 학생이 같은 공간을 점유하며 함께 일하고 생활하는 속에서 가장 효과적으로 학습됩니다. 도제식 수업(apprenticeship)을 일컫는 것이죠.
기존의 영웅적인 프로그래머들의 일화를 들어보면 자신들이 비약적인 발전을 했던 시기는 대부분 "훌륭한 프로그래머"와 함께 일을 할 수 있었던 때라고 입을 모읍니다.
이 방식을 소프트웨어 개발 업체에서 적용한 것은 Apprenticeship in a Software Studio라는 문서에 잘 나와 있습니다. http://www.rolemodelsoft.com/papers/ApprenticeshipInASoftwareStudio.htm (꼭 읽어보기를 권합니다. 설사 프로그래밍과는 관련없는 사람일지라도)
처음에 짝을 이런 식으로 짓습니다.
이 상태에서는 A와 B는 ExpertRating이 0이고, E와 F는 1이 됩니다. 이 개념은 Erdos라는 수학자가 만든 것인데, Expert 자신은 0이 되고, 그 사람과 한번이라도 pairing을 했으면 1이 됩니다. 그리고, expert와 pairing한 사람과 pairing을 하면 2가 됩니다. expert는 사람들의 ExpertRating을 낮추는 식으로 짝짓기 스케쥴링을 맞춰갑니다. 물론 처음에는 C,D,G,H는 아무 점수도 없죠. 이럴 때는 "Infinite"이라고 합니다.
이렇게 pairing을 할 수 있겠죠. 역시 아까와 동일한 태스크를 수행합니다. 대신 좀전 pairing에서 얻은 지식을 기반으로 좀 더 나은 프로그램을 새로 작성하는 겁니다. 각자 이전 경험이 다르므로(다른 사람과 짝짓기를 했으므로) 둘이 협력하면 서로 가르쳐 주고 배우면서 시너지 효과를 낼 수도 있습니다.
여기서는 각각의 ExpertRating은, C=2, D=2, E=1, F=1, G=1, H=1이 되겠죠. (A,B는 시원source이므로 여전히 0)
이런 식으로 같은 태스크를 짝을 바꿔가며 두 세 번만 반복하게 되면, 매 번 할 때 마다 아까보다는 좀 더 나은 작업을 할 수 있게 되고, "문제 발견 -> 해결"의 학습을 하게 됩니다. 나쁜 코드를 보고, 이게 좋은 코드로 바뀌는 그 과정을 직접 경험하는 것이죠.
너무나 좋은 글을 읽은 것 같습니다. 선배님이 써주신 PairProgramming에 관한 글을 순식간에 읽었습니다 ^^ 이런 방법이 스터디의 방법으로 자리잡는다면 초보자의 실력향상에 엄청난 도움이 되겠군요
- ShellSort . . . . 23 matches
여틀 왕(King Yertle)은 그의 거북이 왕관을 재배치해서 가장 계급이 높은 귀족과 가장 가까운 측근들을 더 위쪽으로 올리고 싶어한다. 쌓여있는 거북이들의 순서를 바꾸는 방법은 거북이 한 마리가 원래 자기 위치에서 빠져 나와서 맨 위로 올라가서 자리를 잡는 방법 밖에 없다.
거북이 스택의 원래 순서와 새로 만들어져야 할 스택의 순서가 주어졌을 때 최소한의 이동 횟수만으로 원래 스택을 새로운 스택으로 재배치할 수 있는 순서를 찾아야 한다.
입력의 첫번째 줄에는 테스트 케이스의 개수를 나타내는 K라는 정수 하나만 들어있다. 각 테스트 케이스는 스택에 들어있는 거북이의 개수를 나타내는 n이라는 정수로 시작되며 그 밑으로 n개의 줄에 걸쳐서 거북이 스택의 원래 배치가 기술된다. 각 줄에는 거북이의 이름이 들어있으며 맨 윗 줄에는 스택 맨 위에 있는 거북이의 이름이 있고 위에서 아래로 순서대로 거북이의 이름이 나열된다. 각 거북이한테는 그 거북이만의 이름이 주어지며 각 이름은 80글자를 넘지 않는 문자열이고, 알파벳, 숫자, 스페이스 문자, 점('.')만 쓰인다. 그 밑으로는 n개의 줄에 걸쳐서 새로운 스택이 기술되며 여기에서도 위에 있는 거북이부터 아래있는 거북이 순으로 이름이 열거된다. 각 테스트 케이스는 정확하게 2n+1개의 줄로 구성된다. 거북이의 수(n)는 200 이하로 제한된다.
각 테스트 케이스에 대해 한 줄에 하나씩의 거북이 이름이 출력되며 이 거북이 이름은 스택을 빠져 나와서 맨 위로 올라가는 거북이의 이름을 의미한다. 이 출력에 나와있는 순서대로 자기 자리를 빠져 나와서 맨 위로 올라가는 과정을 반복하면 원래의 스택이 새로운 스택으로 바뀌어야 하며 최소한의 이동 횟수로 작업을 끝낼 수 있어야 한다. 이 조건을 만족하는 이동 방법이 여러 가지 있으면 그 중 아무 것이나 출력해도 된다.
서로 다른 테스트 케이스 사이에는 빈 줄을 하나씩 출력한다.
- Slurpys/곽세환 . . . . 23 matches
* 예전같으면 일일이 만들었을 함수들을 그냥 string 함수로 해결
if (length < 3)
if (str[0] != 'D' && str[0] != 'E')
if (str[1] != 'F')
if (temp == -1)
if (temp == length - 1 && str[temp] == 'G')
else
if (length < 2)
if (str[0] != 'A')
if (length == 2 && str[1] == 'H')
if (length != 2 && str[length - 1] == 'C')
if (str[1] == 'B')
else
if (temp == -1)
// Slimp와 Slump로 분리해서 검사
if (temp != -1 && isSlimp(str.substr(0, temp + 1)) && isSlump(str.substr(temp + 1, length - temp - 1)))
else
cout << "SLURPYS OUTPUT" << endl;
if (isSlurpy(str))
cout << "YES" << endl;
- TellVsAsk . . . . 23 matches
Procedural code gets information then makes decisions. Object-oriented code tells objects to do things.
''then 에서 than 이 되어야 하는 것이 아닐까요? 제가 원문을 못봐서 함부로 고치기는 힘들군요.''
''맞는 지적인데. 원문도 then 이군. 내가 해석을 than 으로 읽고 실수했네. Thanks.~''
That is, you should endeavor to tell objects what you want them to do; do not ask them questions about their state,
make a decision, and then tell them what to do.
요는, 당신은 객체들로 하여금 당신이 원하는 일을 하도록 노력해야 한다. 객체들의 상태에 대해 객체들에게 묻지 말고, 결정하라. 그리고 객체들에게 원하는 일을 하도록 하라.
that result in you then changing the state of the object. The logic you are implementing is probably the called object's
문제점은 caller 로서, 당신은 called object 의 상태에 기반한 결정을 내리면 안된다는 것이다.
object and then calling different methods based on the results. But that may not be the best way to go about doing it. Tell the object
아마 당신은 이렇게 말할지도 모른다. "나는 그런 코드를 작성한 적이 없어!" 하지만, referenced object 의 값을 조사해서 그 결과값에 따라 각각 다른 메소드를 호출하는 식으로 적당히 구현하며 얼머무리는 경우는 흔하다.
switch (person.gender) {
이런식의 코드들. 보통 이런건 Polymorphism 으로 해결해야 할 문제들이지요.
하지만, 이는 좋은 방법이 아니다. 당신이 원하는 일에 대해서 object 에게 시켜라. (즉, 저 행위에 대한 결정은 object 내에서 해결하게끔) object 로 하여금 어떻게 해야 할지 해결하도록 하라. 절차적이려하기 보단, 서술적이려고 하라. (이는 OOP 에서 이야기하듯, Object 들 간의 행동들에 대해서.)
It is easier to stay out of this trap if you start by designing classes based on their responsibilities,
you can then progress naturally to specifying commands that the class may execute, as opposed to queries
만일 당신이 각 클래스들의 책임에 기반한 디자인으로 시작했다면 이러한 함정에 탈출하는 일은 쉽다.
(ResponsibilityDrivenDesign) 그러한 경우, 당신은 당신에게 객체의 상태를 알리도록 질의문을 작성하는 대신 (주로 getter 들에 해당되리라 생각), class 들이 실행할 수 있는 '''command''' 들을 자연스럽게 발전시켜 나갈 것이다.
- TugOfWarInput . . . . 23 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 같은 경우는 실패한다.
- WhenJuniorsAsk . . . . 23 matches
선배는 후배들에게 조금이라도 더 많은 것을 전달해 주려고 혹은 "선배되어보기"의 즐거움을 느끼려고 거창한, 그러나 2, 3학년 쯤 되면 대개 스스로 느끼는 평범한 깨달음을 이야기 합니다. 후배들 중 대부분은 마지못해 경청하는 척을 하거나, 몇몇은 소위 감화를 받아 "선배가라사대"를 외우고 다닙니다.
개인적으로 존경하는 형과 정담을 나누다가 OT 이야기가 나왔습니다. 그 형은 이미 졸업을 했는데, 신입생 OT 때 졸업생 대표 비슷하게 참석을 해서 후배들을 위해 좋은 말씀을 들려달라는 요청을 받았다고 하더군요. 그 형은 가지 않겠다고 했습니다. "요즘은 생각이 좀 바뀌었어. 내가 거기 나서서 결국 남들 다 해줄만한 이야기 해줘봐야 걔네들한테는 별 느낌이 없을거 같아. 그냥 자기들끼리 놀고 싶은 대로 놀게, 이야기하고픈 대로 이야기하게 내버려두는 게 더 좋지 않을까해. 훨씬 더 마음도 잘 통할테고 말야."
저도 비슷한 생각을 합니다. 후배들에게 좋은 이야기를 해주려는 마음은, 때로 후배보다 자기 자신을 위한 "자기만족적" 행위가 둔갑을 한 것일 수도 있는 듯 합니다. 꼭 그렇지는 않다고 해도, 신입생들에게 아무런 공감도 불러일으키지 못하는 이야기를 쏟아붇고, 그들은 한귀로 흘려버리고 하는 것은 양자 모두에게 불행한 모습일 겁니다. 선배가 후배에게 지도를 해준다거나 하는 것은 그들이 자신들만의 문제의식을 스스로 형성하고, 나름대로 탐색과 고민을 해본 이후에라도 늦지 않은 것 같습니다. 그들이 자구적으로 물어볼 때, 그 때 문을 슬며시 열어주는 것이죠. WhenJuniorsAsk.
저는 다른 말을 해보겠습니다. 우선은 위에서 좋은 말씀을 들려주셨으면 더 좋았을꺼라는 생각을 가져봅니다. 물론 선배님의 말씀을 주의 깊게 듣는 학생은 더물겠죠. 하지만, '자바는 배우기 쉽고 잘 짜여진 OOP언어이다.'라고 대학 2년차 학부생들이 말하는 것보다는 SUN의 노련한 자바 프로그래머를 초빙해서 그런말을 듣는게 더욱 많은 사람의 강동을 얻을 수 있다고 생각합니다.
''OOP의 장점은 反/非 OOP적 프로그래밍을 해보고 거기서 나름대로 고민해 보았던 사람이 아니라면 '''절대''' 느낄 수 없다고 생각합니다. 기왕 SUN의 프로그래머를 초빙한다면 거기에 관심을 갖고 간절히 듣고 싶어하는 사람들에게 우선권을 주는 게 좋겠다는 이야기죠. 전원 집합 하에 청강한다든가 하는 것 말고요.''
위의 제글의 이야기는 강연 방법이나 강연 대상을 이야기하자고 하는 것은 아니었습니다. 제글은 강연자의 "권위"를 강조하기 위한 이야기였습니다. 선배님의 윗 글의 의미는 대학년 1년생들에게 그 선배님이 강연을 하시는 것은 비효율적이라는 말씀을 하고 싶으신 것입니까? 문제의식이 없는 사람들에게 강연을 하는 것은 비효율적이라고 말씀하시는 것입니까? 신입생들은 강연자의 (어떤 강연인지는 모르겠지만..)강연 내용에 대한 문제의식이 전혀 없다는 전제라면 뭐라 드릴 말씀이 없습니다. 이것이 의견차를 가져오게 된 결정적인 이유 같습니다. 저는 그 선배님의 강연이 1학년들도 충분이 문제를 가질만한 이야기를 해줄 수 있는 이야기를 강연 주제로 잡으신줄 알았습니다. 뒤에 다른 저의 글은 하나의 의견차이에 대한 반론과 이번 사건에 대해 바램이 있어서 적어보았습니다. 뒷에 글까지 다 적은 후에 이 글을 수정하여서 동기화가 안될 수도 있으니 양해해주십시요.
뿐만 아니라 그 선배님께서는 메아리가 될 이야기들만 하지 않을꺼라 생각됩니다. 경험이라는 것은 오우라와 같아서 본인은 알지 못해도 다른 사람들은 느낄 수 있다고 생각합니다. 그리고 선배님께서 아무런 공감을 얻을 수 없는 이야기를 쏟아붓고 한귀로 흘려버려서 양자 모두 불행하니까 안하겠다는 것은 무언가 말이 안 맞는 말 같습니다.
''청자가 뭔가를 느끼느냐 마느냐는 문제를 떠나서, "자각 기회 박탈"이라는 면에서 생각해 볼 수도 있겠지요. 저는 남들에게 뭘 가르치기 이전에 항상 "실패의(혹은 간혹 성공의) 경험"을 충분히 만끽하게 합니다. 그러지 않고 바로 답을 혹은 답에 이르는 방법을 가르쳐 주게 되면 그들은 매우 귀중한 자각의 기회를 박탈 당하는 겁니다. 물론 교육적 방편에서 좀 더 자주, 더 일찍, 더 멋지게 실패할 수 있는 환경을 마련해 주는 경우는 있습니다.''
즉 그 선배님께서 후배들이 공감을 갖을 만한 이야기를 할 수 없다는 말이 더 정확하겠습니다.(내가 초보자에게 할 말은 열심히 하란 말 밖에 없다. 아시겠지만, 나쁜 의도의 말이 아닙니다.) 그 선배님께서 신이 아닌 이상 후배들의 마음을 알 수 없을터이고 경험상으로 그런 경향을 보여왔다고 하더라도 훌륭한 "청자"만 존재한다면 "자기만족적"행위가 나쁘다고 생각하지 않습니다. (자원봉사 같은 신성한 일도 행하는 사람의 입장에서는 "자기만족적"행위라고 생각합니다.)
굳이 겉멋이라고 하더라도 전체적으로 플러스 효과만 발휘한다면, 저는 괜찮다고 생각합니다. 근래에 나온 영화 "뷰티플 마인드"의 주인공 존 내쉬도 자신을 돋보이게 하기 위하여 어려운 수학 문제들에 매달렸다고 합니다. (누군가 이 문제를 한번 풀어보겠냐고 물어보면, 존 내쉬는 그것이 정말 어려운 문제인가? 그것을 풀었을 때, 사회적 반향을 먼저 주위 사람들에게 물어보았다고 합니다.) 이러한 예는 역사 속에서도 많이 찾아볼 수 있다고 생각합니다. (영화 "쉰들러 리스트"에서도 그러하죠.) "자기만족적"행위가 시간이 많이 흐른 후, 설혹 나쁜 결과를 얻어 낸다고 하더라도 경제적인 측면에서 보더라도 "이타주의적"행위를 하는 사람은 극히 소수에 불과하기 때문에, 무엇을 얻고자 하는 다수의 사람의 수요를 충족시킬 수 없습니다. 이런한 관점에서는 그 소수를 기다리는 것보다는 다수("이타주의적"행위를 하는 사람과 비교해서)의 "자기만족적"행위자에게서도 공급을 얻는 것이 더 합리적이라고 생각합니다.
물론, 이것이 어느 결정에서 "내 경험상으로는 ..", "내가 보기엔 .."으로 시작하는 선배의 간접 결정을 의미 하는 것은 아닙니다. 좋은 길을 가르쳐주는 것은 구할 때 가르쳐주면 충분하겠지만, 좋은 길을 찾는 방법은 사람에게 알려주어야 하지 않겠습니까?
''"좋은 길을 찾는 방법"은 좋은 길을 찾을 생각을 한 번이라도 해 본 사람에게 가르쳐주는 것이 좋겠지요. 아직 그런 생각도 들지 않는 사람에겐 성급히 뭘 전달해 주려고 하는 것보다 차분히 기다려주는 것이 더 바람직한 경우가 많습니다. --김창준''
''저는 "고민하고 있는 학생"들이라면, 제 시간과 사정이 되는대로 도움을 드리고 싶습니다. 그리고, 꼭 어떤 강연의 형태를 띄거나 물어보아야만 가르쳐주는 그런 것이 아니고, 그 사람들이 눈을 뜨고 뭔가 찾을 때, 혹은 이리 저리 지나치다가 한번 보고 관심이 가면 뛰어들어서 연구할수 있는, 좋은 자료 구성에도 신경을 쓰고 있습니다. 즉 듣기 원하는 사람에게 더 많은 적극성이 요구되는 형태가 바람직하다고 생각합니다. --김창준''
- WinCVS . . . . 23 matches
''DeleteMe 맞는 이야기인가요? ["sun"]의 기억으로는 아닌것으로 알고 있고, 홈페이지의 설명에서도 다음과 같이 나와있습니다. 'WinCvs is written using the Microsoft MFC.' '' [[BR]]
''WinCVS 의 쉘에서의 직접 커맨드 입력기능을 이용하려면 이전 버전에선 TCL, 최신버전에서는 Python 을 이용합니다. 하지만, 설치 안해도 WinCVS 의 주기능들은 이용가능한걸로 기억합니다. --["1002"]''
1. 프로그램을 시작하고 첫 화면을 보자. 무심코 지나쳤다면 Ctrl+F1 또는 Admin - Preference 를 보자.
* Authentication : 접속 방법이다. local 이나 pserver 또는 ntserver를 선택하면 된다.
* CVSROOT : 위의 설정을 근거로 최종 접속 주소를 나타내어 준다. (굳이 수정할 필요는 없다.)
* External Diff Program : 파일을 비교할 프로그램을 설정한다.
* Default viewer used to open : 파일을 볼때 쓸 프로그램을 설정한다. 메모장정도면 충분하다.
= 프로젝트의 생성 =
1. 프로젝트를 CVS의 저장소 내에 넣어두어야 이래저래 써 먹을 수 있다.
2. 추가학 파일들이 들어있는 디렉토리로 간다. (왼쪽의 탐색창을 이용하여)
4. 파일들의 속성이 거의 자동으로 선택되니 특별한 일이 없으면 넘어가자
1. 저장소에 들어있는 프로젝트를 편집 가능한 공간에 모셔와보자.
3. 다이얼로그창 등장
- 여기서 모듈을 리스트의 형태로 표시해주지 않기 때문에 직접 수동으로 이름을 넣어주어야 한다.(약간은 불편하다.)
4. 확인을 하면 파일들이 편집할 공간으로 나온다. sourcesafe의 체크인 정도로 생각하면 된다.
3. 연필 그림의 작대기가 지워지면서 편집 가능한 상태로 간다.
6. 파일의 원래 상태로 돌아간다
CVSNT : CVS의 NT용 서버 프로그램 ["www.cvsnt.org"]
앞으로도 계속 사용하면서 추가해보고싶다.
- django/ModifyingObject . . . . 23 matches
SQL문에서는 insert into values 구문을 이용해 레코드를 삽입하고, update set where 구문을 이용해 레코드를 수정한다. 하지만 django는 이 둘을 하나로 보고 데이터베이스에 레코드를 삽입하고 갱신하는 작업을, 모델로 만든 객체를 저장(save)하는 것으로 추상화했다. 기본적으로 모델클래스는 save메소드를 가진다. 따라서 개발자가 작성한 모델도 save메소드를 가지며, 이는 오버라이딩 할 수 있다. 아래 예에서 보듯이 save 메소드는 새로만든 레코드 필드의 속성에 따라서 적당히 삽입과 갱신 작업을 수행한다.
Employee 모델에 해당하는 새로운 객체를 만들고 save메소드를 이용하면, 데이터베이스에 새로운 레코드를 삽입하거나, 기존의 레코드를 갱신한다. 기존에 삽입하지 않았기 때문에 처음 save를 호출하면 레코드를 삽입하고, 다음 번 save를 호출하면 레코드를 갱신한다. 레코드는 객체로, 레코드의 속성을 객체의 멤버 변수로 취급한다.
save메소드는 우선 현재 저장하려는 레코드의 주키를 가지고 데이터베이스를 검색하여 레코드를 삽입할 지 갱신할 지 결정한다. 주키를 이용해 기존의 레코드를 찾은 경우에는 단순히 갱신한다. 주키를 이용해 레코드를 찾지 못한 경우에는 단순히 삽입한다. 만일 주키가 없는데 레코드가 있는 경우에는 삽입하여도 상관이 없으므로 삽입한다. 다음은 save메소드의 주요 분기점을 보여주고 있다.
# First, try an UPDATE. If that doesn't update anything, do an INSERT.
if pk_set:
# If it does already exist, do an UPDATE.
if cursor.fetchone():
else:
if not pk_set or not record_exists:
if pk_set:
# If the PK has been manually set, respect that.
else:
데이터베이스에서 레코드를 삭제하는 작업은 Model클래스의 delete메소드로 추상화했다. 하지만 내부에서 실제로 레코드를 삭제하는 메소드는 delete_objects이다.[8] delete_objects메소드는 지우려는 레코드를 참조하는 다른 테이블의 레코드까지 함께 삭제하거나, 외래키를 NULL값으로 설정한다. 예를 들어 다음은 Risk테이블에서 한 레코드를 삭제하는 경우 이를 참조하는 Consequence, Control 테이블의 레코드까지 함께 삭제하는지를 묻는 사용자 화면이다.
- gusul/김태진 . . . . 23 matches
* 문제를 단순화하여, 앞으로 홀수번 시행이 최적인 경우, 지금 하는 사람이 승리하게 된다. 이를 이용하여 n-1번째 시행에서(지는 시점을 첫번째로 하여 거꾸로 올라간다.) n번째로 올 때 모두 홀수인 경우에만 해당 시점의 사람이 지게되는데 (1,3,5번에서 7번으로 갈 수 있는데 1,3,5번의 시행횟수가 모두 홀수개) 하나라도 짝수에서 오는 경우가 있으면 그 경우가 상대방이 무조건 지는 경우이므로 최선이다.
* 즉, 짝수번째 시행자가 무조건 진다고 본다.(점화식)
* n-1번째에 하나라도 짝수 경우가 있으면 n번째에서 n-1로 만들 때 짝수로 만들 수 있으므로 이기게된다.
if(i>=barr[k]){
if(arr[i-barr[k]][j]==0&&tmp==0){
if(j>=barr[k]){
if(arr[i][j-barr[k]]==0&&tmp==0){
if(arr[k1][k2]==1){
}else{
- 데블스캠프2005/화요일후기 . . . . 23 matches
[김민경] 사실 : Python과 자료구조 배웠어요, 느낌 : 즐거워요, 교훈 : Python으로 한거 C로도 해보자, 새로운걸 배울수 있어!
김태훈([zyint]) :사실:python과 알고리즘을 배웠다/느낌:힘들었지만 파이선 만드는것이 재밌었다+ㅁ+/교훈:구조적으로 만들자-_- 소스 드럽지 않게;
[윤성복] - 데캠을 참가한지 언 2일, 이제는 아침에 맞는 해가 지겹다. 앞으로 3번에 해를 더 봐야 한다.
좋았던 점은 파이선이라는 새로운 프로그램과 하노이라는 간단하면서 어려운 문제를 해결해 나가는데에서 더욱더 나 자신을 발전시킬수 있었다. 그리고 선배님과 많은 상의를 해보면서 선배도 우리를 잘 가르쳐주시고 우리는 선배님의 지식을 습득해 가면서 정말 좋은 시간이 되었다. 밤을 새가면서 공부를 한다는 것은 그것만으로도 아주 커다란 성취감을 갖게 한다. 나쁜점은 아무래도 밤이라서 잠과의 싸움이 가장 큰 문제이다. 밤이라서 집중이 잘 안되는 건 어쩔수 없다. 밤을 새가면서 공부를 한다는건 참으로 어려운 일이다.
[박경태] - 데블스캠프 2일째, 첫날보다 더 적응도 많이 되고, 뼈저리게 느낀 것도 많았다. 여러 문제들을 설계하고 코딩하면서, 특히 설계를 해내는 과정이 나에겐 너무나 힘들었다. 여태껏 오늘처럼 이렇게 많이 생각해 본 적이 없었던 것 같다. 그리고 나의 한계(?)라고 할까? 그것을 너무 뼈저리게 느낀 것 같았다. 내가 지금까지 해온 것은 데블스 기간에 하는 것에 비하면 아무것도 아니라는 것을... 그래도 한 편으로는 데블스를 통해서라도 이렇게 배우고 깨닫는 것이 나에게 소중한 경험이 된다는 것을 생각하니 참가하고 있는 나 자신이 자랑스럽기도 했다. 남은 데블스 기간에도 열심히 참여하고 나 자신을 더 발전 시킬수 있는 기간으로 만들어야 겠다.-_-v
교훈: 아무리 똑똑한 언어라도 내가 모르면 바보같은 언어다. 그러므로 공부하자.
[김범준] - 사실: 자료구조(하노이탑, 미로찾기), 파이썬(구구단, 마름모, 피보나치, 회문, 지뢰찾기) / 느낌: 힘들다, 재미있다, 피곤하다. / 교훈: 프로그래밍은 설계가 중요하다.
[남도연]:오늘 크게 2가지를 배우게 되었다. 하나는 알고리즘과 자료구조에 관한 내용이었고 하나는 파이선에 대해 배운 것이었다. 알고리즘과 자료구조는 평소 우리가 수업시간에 들었던 내용이기는 하였지만, 막상 코드로 직접 적용하려니 잘 풀리지 않았다. C코딩을 할때 중요한 것이 알고리즘이라는 것을 또 한번 느끼게 되었다. 아무 생각 없이 코딩을 무작정 하려고 하다가는 크게 낭패를 본다는것을 배웠기 때문이다. 알고리즘은 하나의 계획표라고 볼 수 있다. 하나의 프로그램을 짜기 위한 계획표. 파이선은 C언어와는 사뭇 다른 언어였다. C언어 보다 편리한면이 많아 보이기는 했지만, C언어보다 못한 점도 간혹 보였다. 아직 미숙하기 때문에 딱히 무엇이라 말할 수는 없지만.. ㅋ 오늘 새로운 언어도 배우고 알고리즘의 중요성도 다시금 느끼게 되어 날 샌것이 아깝지 않았지만, 내준 과제 모두를 다 해결 하지 못한 것이 아쉬움이 남는다. 다 해결했으면 더 뿌듯 했을텐데 .. ㅋ
[안성진] : Python을 첨 접하게 되었는데 정말 많은 걸 배웠습니다. 어렵기도 했지만 역시 프로그램 하면서 날 새는 기분은 끝내주네여...~~ㅎ 강사님들 수고하셨고여 저 역시도 방학때 할 일이 참 많아 질 것 같네영.. ㅋㅋ 남은 일정 동안 열심히 합시다. ^^
[조현태] : 길찾는 알고리즘, 예제가 15*15가 아니라 고생한 것이 아쉬웠다. 하지만, 알고리즘에 대해 느낀바가 많았고, 새로운 언어 파이썬도 뭔가 독특했다. 인터프리터 언어라니..ㅎㅎ 그렇지만, 역시 고생한 탓인지 왠지 잠이 더 쏟아져 내리는 하루였다. 마지막으로 이런 강의를 준비하느라 고생하신 강의자 분들께 많은 감사를 표한다.
[정수민] : 늦었지만 후기를 남긴다; 현태와마찬가지로.... 배열에서 () 와 {} 를 해깔린것만생각하면 치가 떨린다. -_- 아무튼;; 피곤한만큼 재미도있었고 배운것도 많았다 ㅎㅎ
[최경현] : 파이썬과 자료구조에 대해서 배웠다. C이후로 처음으로 접해본 언어인 파이썬이 재밌었다. 그리고 자료구조에서의 알고리즘의 중요성도 배웠다.
- 데블스캠프2009/목요일/연습문제/MFC/송지원 . . . . 23 matches
#if !defined(AFX_TESTDLG_H__B619E89A_C192_46A8_8358_6AC21A6D48CC__INCLUDED_)
#if _MSC_VER > 1000
#endif // _MSC_VER > 1000
#endif // !defined(AFX_TESTDLG_H__B619E89A_C192_46A8_8358_6AC21A6D48CC__INCLUDED_)
#ifdef _DEBUG
#endif
END_MESSAGE_MAP()
END_MESSAGE_MAP()
if (pSysMenu != NULL)
if (!strAboutMenu.IsEmpty())
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
else
// If you add a minimize button to your dialog, you will need the code below
if (IsIconic())
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
else
if(toop)
// TODO: If this is a RICHEDIT control, the control will not
- 데블스캠프2009/목요일/연습문제/MFC/정종록 . . . . 23 matches
#ifdef _DEBUG
#endif
END_MESSAGE_MAP()
END_MESSAGE_MAP()
if (pSysMenu != NULL)
if (!strAboutMenu.IsEmpty())
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
else
// If you add a minimize button to your dialog, you will need the code below
if (IsIconic())
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
else
// TODO: Add your control notification handler code here
// TODO: Add your control notification handler code here
// TODO: Add your control notification handler code here
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// TODO: Add your control notification handler code here
- 레밍즈프로젝트/연락 . . . . 23 matches
[레밍즈프로젝트]
GIF 에니메이션 관련한 코드를 구했는데...-_- 너무 길다ㅋ 헤더간 7kb 구현 코드만 32kb;;
확실히 GIF에니메이션 처리하는데는 짱인것 같은데...-_-ㅋ
Upload:Map다이어그램.gif
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로 바꿔야 할지도 모르니까-_-
4. 그 이외에 픽셀에 들어가게 될 정보는. 뚫을 수 있는지 없는지, 레밍이 죽게되는 곳인지, 들어가게 되는 곳인지 등에 대한 데이터야-_- 레밍이 이 픽셀에 왔을 때 또는 다음 위치로서 이 픽셀을 검토하고 있을때 어떻게 해야 하는지에 대해서 생각한다면 접근이 될거야.
참고로 오늘은 사회부 부장 뽑는 날이라-
5시 이후로는 ㅅㅣ간이 안된단다 ㅎㅎ
ㅤㅎㅛㅇ아 오늘 7시에 수업이 끝나는데;; 아무튼 레밍 에니메이션 처리 부분까지 가능할 정도로 클래싱 해놨삼.
1. 먼저 윈도 구성부분. 버튼, 게임화면(기능상 미니맵도 포함), 이 부분들... CWnd 를 상속해서 커스텀 하면 구현 할 수 있을거래-_- 아마 그 부분 프로토타입을 작성해 보아야 할듯 싶어. 석천이형이 시간이 허락된다면 게시판에 자료들을 올려 주신다고 하셨는데... 시간이 되실지...흠... (게임화면부분, 버튼부분..)(주호 너가 하던 방식이 거의 맞는듯 싶어. 난 CWnd나 그 부분에 대해서 자료조사도 안하고 테스트도 안해봐서 뭐라고 할 처지가 못돼;; 그런데도 괜히 참견한것 같아서 좀 미안하네;; 쏘리;;)
2. UML. GAME클래스 내부를 그려서 설명해 보았는데. 드로잉 부분에서 윈도우 핸들과 종속이 걸린대. 수정 방법에 대해서도 이야기 해 주셨는데. 현재 코드 부분에서는 CMyDouBuff 부분 이외에는 수정할 곳 이 없어. 일단 클래스 구조는 잘 짠듯 싶어!!
프로젝트진행 혼자 더뎌지는 듯 해서 미안하구만 ㅎㅎ
야 버튼리스트 클래스랑 버튼클래스 따로만들어서 추가하는 건 해봤는데 도무지 감이 안잡힌다
니말대로라면 버튼리스트 클래스에다 버튼추가하는 함수만들어서 그거 호출하면 저절로 버튼리스트에 하나씩 추가되서 밖히는거잖아
이걸로한다 - 유루
- 그게 쉬우면 그걸로 하삼. 그럼 Map부분이나 미니맵 부분 출력은 어떻게 할생각이야??
- 나중에 프로토 타입이나 CVS에 좀 올려줘
- 상협/감상 . . . . 23 matches
* 난 정말 기억력이 나쁘다. 방금 예전에 썼던 감상문을 다시 읽어보니 정말 새로웠다. ㅡㅡ; 앞으로는 책을 읽고나서 꼭 감상문을 써야 겠다. 안그러면 금방 까먹엇 읽은 효과가 없는거 같다. 또한 예전에 썼던 감상문을 다시 읽어 보면 예전의 그 생생한 감동이나 느낌이 다시 느껴진다. 이러한 느낌이 너무 좋은거 같다.
* 아래의 추천 정도는 극히 주관적인 것으로서 사람들 마다 느끼는게 다를거라고 생각함. 나의 의견은 그러한 다양한 의견중 하나라고 생각했으면 좋겠다.
|| ["로마인이아기"] || 시오노나나미 || 고등학교때 || 1 || ★★★★ ||
|| 아이를 사랑으로 꾸짖는 방법 || 아코 아키라 || 2002/5/8 || 1 || -_- ||
|| ["자유로부터의도피"] || 에리히 프롬 || 2002/8/6 || 1 || ★★★★★ ||
|| ["상협/학문의즐거움"] || 히로나카헤이스케 || 2002/8/26 || 1 || ★★★ ||
|| ["아는것으로부터의자유"] || 지두크리슈나무르티 || 군대 || 2 ~ 3 || ★★★★★ ||
|| ["설득의심리학"] || 로버트 치알디니 || 군대 || 1.5 || ★★★★★ ||
|| [PatternOrientedSoftwareArchitecture]|| || 1권(1) || - || 뭣도 모르고 보니깐 별로 감이 안온다 -_-; ||
|| [Refactoring] || 마틴파울러 || 1 || 굿 || 괜찮은 책이다. 아직 내가 이해와 적용을 제대로 못해서 아쉽다 ||
|| [OperatingSystem] || H.M.Deitel || 1 || 굿 || 운영체제공부를 처음으로 시작한다면 이책이 적당하다고 생각한다 ||
|| [프로그래밍언어론] || 원유헌 || 1 || 아주 굿 || 정말 쉽게 잘 나온 책!!, 정말 좋은책을 고르는게 중요하다는걸 알게해준책! ||
|| [TestDrivenDevelopmentByExample] || 켄트벡 || 1 || 굿 || 아직 제대로 이해와 적용은 못하겠다. 그래도 좋은책~ ||
= 읽고 싶은 책, 앞으로 읽을 책 =
* 난 원래 영화 잘 안보는 스타일 이지만, 마음도 심난하고 해서 컴퓨터로 이 영화를 보게 되었다. 처음 부분에서는 좀 황당한 재미가 있었고, 중간 부분으로 가면서 지루해져서 그만 볼까 하는 생각도 했지만, 좀 더 보다 보니깐 재밌어져서 결국 끝까지 봤다. 이 영화를 보고 느낀점은... 음.. 지금 내가 보고 있는 세계도 혹시 환상은 아닐까 하는. ㅡㅡ;; 메트릭스도 생각나고.. 그리고 영화속 주인공이 불쌍해 보였다. 뭐 비록 천재인거 같지만 그렇게 사는것은 별로 유쾌한 일은 아닐거다. 또한 천재적인 사람들은 사회에 잘 적응 못하는건 아닐까 하는 생각도 해본다. 한때 나도 머리가 천재적으로 좋았다면 좋겠다고 생각도 해보았지만, 그땐 이런 생각을 했었다. 머리가 너무 좋다면 노력해서 뭔가를 해내는 그런 쾌감을 얻을 기회가 적을 수도 있고, 주위로부터 한사람의 인격체로 인정되기 보다는 하나의 이용해 먹을 도구로 인식되지는 않을까 하는 생각도 해본다.(그사람 == 머리, 이런 이미지가 생기면 그 사람의 다른 모습은 전혀 관심밖의 일이 될테니..)
시간 나는 대로 올려야 겠다.
- 새싹교실/2011/무전취식/레벨2 . . . . 23 matches
7개 과목중에 반장이 2개 둘다 다른과 전공들. 가산점. 팀프로젝트들이 나오기시작했어. 3개. 시간표가 빡세져요. 어제 머리를 잘랐어. 6천원에 9시이후에 동네미용실에서 자르지 마세요. 와우 이번주 끝냈음. 나도 살아야지.
서원태 : 지난주 월요일 처음으로 선형대 수학책을 폈음. 처음으로 숙제를 시작했는데 계속하다보기전까지 주말에 MT가느라 다 못풀고 갔었음. 낮술먹고 다 낮잠잠. 밤에 선배님들왔는데 술게임 재미없어해서 11은 그냥 다 잠. 글쓰기 과제 안했음. 이유 : MT갔다와서. 속이 좀 안좋음. 밥은 먹고 다님.
이소라 : 수요일날 선린 재수하는 친구 만남. 밥먹고 빵먹고 커피먹고 얘기함. 6시부터 10시까지. 공부하기 싫다는 친구. 선전 MT 선전송했음. 2등했음~~~ 여학우 2명이라 ㅋㅋ 'ㅅ'//// 선배님들 왔는데 06들 왔다. 주요한, 임지현, 이태양, 박진용 술게임 했는데 11은 한명도 안죽음 ㅋㅋㅋㅋㅋ 근데 06 오빠들은 서로 싸우고 술로 죽임 ㅋㅋㅋ 어제 진영이가 나 버렸음 ㅠㅠ 숙제하러 6피 갔는데 숙제를 한 30분 안했는데 숏다리 최연호 오빠가 밥사준다고 해서 나갔음. 성진이랑 근데 술먹음. 먹고 또 2차감. 2차에서 치소맥 먹음. 집에가서 취중 선대 과제했음ㅋㅋ. 잘안됨. 다 못했음 ㅠㅠ
* Memory에 적재되서 실행되는 프로그램 그 프로그램 안의 변수.
* 프로그램은 문장단위로 코드를 돌리게 되는데 그것을 끊어주는 단락이 ; 입니다.
* 제어문을 배웠습니다. 제어문은 프로그램의 흐름을 제어하는 문장입니다.( if,switch{case},while(){},do~while();,for( ; ; ) )
* if 예제
if(select == 1){
if(select == 2){
서원태 : if 말고 다른것도 배웠는데 아직은 잘 모르겠어요. 예
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 수업시간에 제어문을 여러개 배우고 수업이 끝난 뒤 선배님들이 저녁식사로 롤을 사주셔서 맛있게 먹었습니다. 그리고 집에가서 구구단 짜보기를 하려고 했는데 이번주가 과제폭풍이라서 과제만 하다 시간이 다 가버렸어요ㅋ 주말에는 MT도 간다는데 복습할 시간을 빨리 따로 둬서 복습을 많이 해야 할 것 같아요. 수업은 지난 수업보다 어려워 진것 같아서 조금은 힘들었어요. 앞으로 조금씩 더 어려워 질 것 같은데 따로 책을 준비해서 혼자서도 여러가지 예습을 해야 할 것 같아요. 다음주엔 뭘 배우게 될지 기대가 됩니다. - [서원태]
* 죄송해요...ㅠ_ㅠ 컴퓨터할수있는상황이안되서 지금써여 으앙 ㅠㅠ 일단 공대 팀플실 짱좋았어요 ㅋㅋㅋㅋ컴터만있었으면 공강시간에 신청해서 가있었을지도.... 이걸 노리는 애들이 많아서 컴퓨터를 안놓았나봐요..그리고, if문, while문등등 제어문 배웠어요!! 오랫동안 안해서 가물가물했던 부분인데 수업하기전에배워서 다행이에요 흐히. 정말 도움이되는거같아용♡ 롤 맛있었어요!!!!!!! 롤먹을때 한 그.... 수수께끼..? 수수께끼입니까 ㅠㅠ? 하여튼..그거 재밌었어요 ㅋㅋㅋㅋㅋㅋㅋㅋ아 알아가는재미 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ - [이소라]
- 새싹교실/2012/아우토반/앞반/3.22 . . . . 23 matches
* if, if~else, else if 문
* dangling else problem
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 우와 처음으로 새싹 교실 강의를 진행해 보았습니다. 긴장도 많이 됐는데 강의자료가 없어서 그런지 어수선한 순서로 가르쳐준 것 같네요..ㅜㅜ 다음부턴 강의자료도 탄탄하게 준비해 오겠습니다:O 여러분 싸릉해요♥♥♥♥ - [장용운]
* 제대로된 스터디 그룹은 처음 참여해본다. 근데 아침부터 수업듣고 과제만하다 바로 새싹을한거라 조금 피곤했다. 뭔가 앞에껄 아는거같은데 제대로 모르는 것 같다 앞으론 좀 예습복습을 해야겠다. 아우토반 아주 좋소~ - [남성준]
* 1학년 전공기초이며, 프로그래밍언어의 기본이 되는것이라고 생각하는 c를 다시 처음부터 배워서 더 자세하게 알수 있어서 좋았습니다. 자신이 아는것이라고 자만하지말고 확실하게 알수있도록 복습을 열심히 하겠습니다.~~쌤~~쭌~~ㅋㅋㅋ키키ㅡ.ㅡ [안혜진]
그 이유는 do-while문에선 변수안의 숫자에 관계없이 일단 한번 while문이 실행되고나서 a--후연산이 시작되므로
3에 ㅋ한번 실행후 2로 감소, 2에서 ㅋ한번 1로감소 , 1에서 한번, 0에서 한번 실행되므로
while문에선 3에서 한번 2에서 한번 1에서 한번 0에서 멈춤으로
ㅎ3번, 후연산때문에 변수에서 -1이 한번 더 되므로 -1.
b=0이 되어 실행하지 않았습니다. 그런데, b-- 후연산 이므로 b=-1로 출력!
- 새싹교실/2012/열반/120319 . . . . 23 matches
* 서로 모른다길래 첫인상 얘기함.
* 프로그램의 시작점
* printf 함수가 명시적으로 정의되지 않았기 때문에 컴파일에 실패하거나, 경고가 뜸.
* 비트 연산 : <<(left shift), >>(right shift), &(and), |(or), ^(xor), ~(not)
* C언어에는 boolean 타입이 없습니다. 보통 int로 참과 거짓을 표현하고, 모든 비트가 0일 경우에만 거짓이고, 그 외는 참입니다.
== if ==
* 어떤 명령을 조건에 따라 실행되거나 실행되지 않게 할 수 있는 문법
// if(x=0) // x에 0을 대입
// if(x==0) // x와 0을 비교
if(조건문){
// 조건문이 맞을 경우 명령1을 실행합니다.
* else if, 전역 변수, 함수
* [정진경] : 리눅스 터미널 환경에서 진행했는데, 컴파일 하는 과정이나 편집하는 과정의 설명은 생략했습니다. 검은 화면에 흰 문자열이 큰 거부감을 일으키는 것 같지는 않습니다. 아무래도 준비가 빈약하다보니 뭘 가르쳐야 할지 모르겠습니다. 일단 상세한 문법이나 C 표준에 대한 설명은 뒤로 미루는 것이 좋을 것 같고, 일정 수준 이상의 프로그래밍을 스스로 할 수 있을 정도로 실력을 끌어올리는 것에 집중해보려 합니다. 또한 중간중간에 코드를 작성한 것에 대한 출력을 물어보면서 알고 있는지 확인하는 과정이 중요한 것 같습니다.
if(조건문){ goto exit_loop; }
- 숫자를한글로바꾸기/정수민 . . . . 23 matches
이런식으로 시간소모한게 하루이틀은 아니니 넘어가고;
if ( input[ja_ris_soo] != 0 ) {
else {
//한글로 출력하기 앞서 필요한 변수들을 저장 /
//한글로 출력! /
// 숫자를 출력한다. 여기서 "input[ dummy_ja_ris_soo - ja_ris_soo ]"이조건은 시작을 //
// else if 부분은 시작부분은 무조건 숫자를 출력한다는 조건이다. /
if (input[ dummy_ja_ris_soo - ja_ris_soo ] != '1' ) {
else if ((dummy_ja_ris_soo - ja_ris_soo) == 0) {
// 이조건은 0인부분은 작은자리단위를 출력하지 않는다는 조건이다. /
if (input[ dummy_ja_ris_soo - ja_ris_soo ] != '0' ) {
// 큰 자리단위를 출력한다. "(ja_ris_soo-1)%4==0"이조건은 숫자의 뒤에서부터 4개단위로 //
// '만','억','조'를 출력하는 조건이다. /
if ( (ja_ris_soo-1)%4==0 ) {
// 앞에서부터 출력하므로 --로 연산한다. /
[LittleAOI] [숫자를한글로바꾸기]
- 위시리스트 . . . . 23 matches
* PC, Tablet, Server, Board, MCU, Sensor, 프린터기 등 S/W, H/W 개발 관련, 스터디, 프로젝트, 회의 관련 기자재 및 도서
* 제로페이지 회원들이 학술 활동 중 필요하다고 생각되는 물품에 대해서 신청하면 제로페이지에서 지원해 주는 제도입니다.
* 이 제도는 학회 회원들의 활발한 스터디 및 프로젝트 진행을 돕기 위함입니다.
* 신청하는 물품은 도서, 기자재 중심으로 신청 받습니다. 그 외에 신청하는 물품은 형체가 있는 것이어야 합니다.
* 정기적으로 결제해야 하는 상품이 아닌, 1회 결제로 사용할 수 있는 상품이어야 합니다.
* 타인이 신청한 항목을 임의로 수정하거나 삭제하면 안됩니다.
* 여러 개가 필요한 경우 갯수도 기재
* 책의 경우에는 ISBN도 기재
* 3: 이건 무조건 꼭 사야됨!
* 비싸지 않은 안드로이드(iOS) 공기계 : 폰 잃어버릴때 대용으로 쓰라는건 아니고..(하루이틀은 그럴수도있겠지만) 개발용 - [김태진]
* 컴퓨터 프로그램의 구조와 해석 1, 2권
DirectX11을 이용한 3D 게임 프로그래밍 입문
실전 예제로 살펴보는 집단 지성 프로그래밍
무한상상 DIY 아두이노와 안드로이드로 45개 프로젝트 만들기
* 표 형태로 작성하는게 낫지 않나요? - [서지혜]
* 서적같은 경우는 회원 개개인의 관심분야에 따라 수요가 달라질 수 있으니 서적을 신청할 때 해당 서적의 수요 조사를 하고 수요가 높은 순서대로 신청하는 것도 좋을 것 같습니다 - [장혁재]
- 정모/2012.5.14 . . . . 23 matches
* 현재 진행되는 프로젝트나 스터디의 위키 페이지가 있고(활동 증거), 신청한 사람이 이번주 정모에 참여했다면 바로 신청해주세요!(다과비로는 지원이 안됩니다..ㅠㅠ)
* 월화수는 낮, 목금은 밤으로 할 계획입니다.
* 강사신청 관련은 이번주중으로 올릴 계획입니다.
* 상시로 관리하고 체크하는데, 많이 체크한사람에게 소정의 보상
* ZP실에 오도록 메뉴얼등으로유도
== 스터디/프로젝트 ==
* SICP 책으로 스터디 혼자 시작할 생각입니다. 공부할 언어는 아마도 scheme이 될 것이고 할 사람은 오든지 말든지 흥. 공부하고 싶은 다른 언어가 있다면 모여서 자기 공부를 하는 것도 좋겠네요. 요즘 스터디를 하기가 조금 빠듯한 상황이라 모여서 각자 공부하고 회고겸 알게된 것 10분안에 가르쳐주기 정도(적게도 많게도 아니고)...? - [서지혜]
* 동영상 강의도 있네요, [http://www.snow.or.kr/lecture///10628.html 프로그램의 구조와 해석] - [서지혜]
* 채팅서버 만들기 프로젝트
* 사실.. 이번 정모 초반에 졸았습니다. 피곤지네요. 죄송. 진규의 OMS할 때 좀 졸다 듣다 졸다 듣다 졸다 듣다 졸다 듣다의 반복이었.. ZP지원금이 들어와서 좋네요. 이제 좀 돈이 있으니까 학회실도 좀 더 꾸미고 하고 싶네요. 사실 일요일에 칠판 하나 박으면서 이걸 해야 되나 말아야 되나... 라고 생각했었... 학회실에 프린터도 생기고 좋네요. 소파도 구입하고 싶은데 -_-ㅋ 그리고 피시실 관리에 대해서 말이 많이 나왔는데,, 뭐랄까.. 저도 가끔 가서 정리하고 하긴 하는데 사실 한번 봉인하고 다 뒤집어 엎고 싶긴 하지만 방학때로 미루기로 하죠-,, 아.. 또 졸리네요.. 만성피로인가.. 여튼 학회실에서 자유로운 대화가 이루어질 수 있어 좋았던 정모였습니다.... -[권순의]
* 진규의 한글 관련 OMS가 상당히 흥미로웠습니다. 역시 오픈 소스 관련으로 알게 된 것 같은데 오픈 소스 쪽은 정말 다양한 화제를 다루는 것 같군요 -_-;; 저도 처음에 우분투 깔고 한글 관련으로 고생했던 기억이 있네요 ;; 진규가 말했던 마지막 문자가 제대로 안 찍히거나 받침이 이상하거나 하는 등의 문제가 있었습니다. 그리고 다음으로 제일 신경이 쓰이는 부분은 PC실 관리였습니다. 사실 제가 이렇다 하게 PC실 관리쪽에서 뭘 한 게 없어서 가슴이 뜨끔해서 그런 것 같습니다. 슬프네요 ;; 그렇다고 또 그냥 가볍게 넘어가기도 어려운 주제일 것 같아서 앞으로 어떻게 진행될지 궁금합니다. 사실 이거저거 이전에 저도 먼저 손을 뻗어야 할텐데 말이죠. - [서민관]
* 조금 늦어서 중간부터 들었지만 OMS 재미있게 들었습니다. 키보드 할 때 들어와서 키보드에 대한 이야기인가 했더니 한글에 대한 발표였네요. 사실 저는 Windows를 항상 주로 사용해왔기 때문에 한글 사용 관련하여 크게 불편함을 느낀 적은 없었는데 이번 OMS를 들으며 다양한 언어를 지원하기 위해 고려해야하는 점에 대해 생각해보게 됐습니다. PC실 관리는 사용하는 사람들이 불편할 때 학회실로 오게 하는 것이 좋다고 생각합니다. 그게 관리하는 쪽에서도, PC실 이용하는 쪽에서도 편한 방법이죠. - [김수경]
- 포커솔리테어평가 . . . . 23 matches
[컴공과프로그래밍경진대회] [4rdPCinCAUCSE]
입력은 한 줄 당 다섯 개의 카드씩 총 25개의 카드가 입력된다. 각 카드는 2개의 문자로 구성된다. 첫 번째 문자는 카드의 순서를 나타낸다. 카드 순서는 'A', '2', '3', '4', '5', '6', '7', '8', '9', 'X', 'J', 'Q', 'K'이다. 두번째 문자는 카드의 종류로서 'S', 'H', 'D', 'C'로 표시한다.
카드는 5x5 행렬에 나눠진다. 각 행과 열을 구성하는 5장의 카드에서 가장 높은 계급을 결정하는 것이다. 계급의 순서는 노 페어, 원 페어, 투 페어, 트리플, 스트레이트, 플러시, 풀 하우스, 포캉드, 스트레이트 플러시로 구성된다. 패는 가장 높은 계급으로 한 번만 사용된다. 예를 들어, 포카드는 투 페어나 트리플로 다시 사용되지 않는다.
다음 계급에 따라 순서대로 입력에의 열과 행에서 찾아진 계급별 개수를 출력한다. 가장 낮은 것부터 가장 높은 것으로의 계급 순서는 다음과 같다.
1. 노 페어 : 아래 계급에 아무것도 해당되지 않을 경우 (예: AC, 3H, QS, JD, 7D)
2. 원 페어 : 아래 계급 중 어떠한 것도 해당죄 않으며, 두장의 카드가 동일한 숫자로 구성될 때 (예 : 2C, 3H, 4H, KD)
3. 투 페어 : 아래 계급 중 어떠한 것도 해당되지 않으며, 다른 숫자의원 페어 2개로 이루어진 경우(예 : @C, 3H, 4H, 2H, 4D)
4. 트리플 : 아래 계급 중 어떠한 것도 해당되지 않으며, 동일한 숫자의 카드가 3장인 경우(예 : QS, KH, 2C, QD, QC)
5. 스트레이트 : 아래 계급 중 어떠한 것도 해당되지 않으며, 5장의 카드의 숫자가 순차적으로 구성되는 경우. A(에이스)는 14나 1로 사용될 수 있다. 예를 들어, AC, 2H, 4D, 3H, 5S도 스트레이트 이며, JH, XD, QC, KD, AS도 스트레이트 이다.
6. 플러시 : 아래 계급 중 어떠한 것도 해당되지 않으며, 5장의 카드가 모두 동일한 경우 (예:5D, AD, KD, 7D, QD)
7. 풀하우스 : 아래 계급 중 어떠한 것도 해당되지 않으며, 원 페어와 다른 카드들로 트리플을 이루는 경우(예 : 3C, QS, QP, 3H, 3S)
8. 포 카드 : 동일한 숫자 4개로 구성되는 카드(예: AS, AD, AH, 7C, AC)
9. 스트레이트 플러시 : 5장으로 스트레이트와 플러시 모두 포하되는 경우
- 2ndPCinCAUCSE/ProblemC . . . . 22 matches
유치원에 N명의 아이들이 있다. 오늘은 소풍을 가는 날이다. 선생님은 1번부터 N번까지 번호가 적혀있는 번호표를 아이들의 가슴에 붙여주었다. 선생님은 아이들을 효과적으로 보호하기 위해 목적지까지 번호순서대로 일렬로 서서 걸어가도록 하였다. 이동 도중에 보니 아이들의 번호순서가 바뀌었다. 그래서 선생님은 다시 번호 순서대로 줄을 세우기 위해서 아이들의 위치를 옮기려고 한다. 그리고 아이들이 혼란스러워하지 않도록 하기 위해 위치를 옮기는 아이들의 수를 최소로 하려고 한다.
예를 들어, 7명의 아이들이 다음과 같이 순서대로 줄을 서 있다고 하자.
아이들을 순서대로 줄을 세우기 위해, 먼저 4번 아이를 7번 아이의 뒤로 옮겨보자. 그러면 다음과 같은 순서가 된다.
이제, 7번 아이를 맨 뒤로 옮긴다.
다음, 1번 아이를 맨 앞으로 옮긴다.
마지막으로 2번 아이를 1번 아이의 뒤로 옮기면 번호 순서대로 배치된다.
위의 방법으로는 모두 네 명의 아이를 옮겨 번호 순서대로 줄을 세운다. 위의 예에서 세명의 아이만을 옮겨서는 순서대로 배치할 수 가 없다. 따라서 네 명을 옮기는 것이 가장 적은 수의 아이를 옮기는 것이다.
N명의 아이들이 임의의 순서로 줄을 서 있을 때, 번호 순서대로 배치하기 위해 옮겨지는 아이의 최소 수를 구하는 프로그램을 작성하시오.
입력은 표준 입력이다. 입력의 첫줄에 테스트 케이스의 개수를 나타내는 정수 T(10 이하)가 주어진다. 다음 줄 부터 T개의 테스트 케이스가 주어진다. 테스트케이스의 첫째 줄에는 아이들의 수 N이 주어진다. 둘째 줄에는 N명의 아이들의 순서를 나타내는, 1부터 N 사이의 정수로 이뤄진 순열이 주어진다. 순열에서 정수 사이에는 빈칸이 하나 들어 있다. N은 2이상 200이하의 정수이다.
출력은 표준 출력이다. 출력은 T줄로 이뤄진다. 각 테스트 케이스에 대해서 번호 순서대로 줄을 세우는데 옮겨지는 아이들의 최소 수를 출력한다. T개의 테스트 케이스를 모두 맞혀야 이 문제를 맞힌 것이다.
- 5인용C++스터디/클래스상속보충 . . . . 22 matches
void SendToSMSServer(string number, string message)
void SendMessage(string number, string message)
SendToSMSServer(number, message);
void SendToSMSServer(string number, string message)
cout << "Send to SK SMS Server... " << number << " " << message << endl;
void SendToSMSServer(string number, string message)
cout << "Send to KTF SMS Server... " << number << " " << message << endl;
skp.SendMessage("0112345678", "Hello!");
ktfp.SendMessage("0167890123", "Hi!!");
virtual void SendToSMSServer(string number, string message)
void SendMessage(string number, string message)
SendToSMSServer(number, message);
void SendToSMSServer(string number, string message)
cout << "Send to SK SMS Server... " << number << " " << message << endl;
void SendToSMSServer(string number, string message)
cout << "Send to KTF SMS Server... " << number << " " << message << endl;
skp.SendMessage("0112345678", "Hello!");
ktfp.SendMessage("0167890123", "Hi!!");
- CSP . . . . 22 matches
threads.append(threading.Thread(target=each.run))
if self.q.get()!=None: #for block
if ack!='ACK':
else:
if self.netc:
if __name__=='__main__':
if __name__=='__main__':
if c == ":":
elif not c:
if not ss:
if len(s) != size:
if sock.recv(1) != ",":
l = sock.send(s)
if s[-1] != ",":
if len(s) != p + l + 2:
if c == ":":
elif not c:
if not ss:
if len(s) != size:
if f.read(1) != ",":
- CalendarMacro . . . . 22 matches
{{{[[Calendar]] [[Calendar(200407)]]}}} diary mode
||[[Calendar]]||[[Calendar(200407)]]||
{{{[[Calendar(noweek)]] [[Calendar(shortweek)]]}}}
||[[Calendar(noweek)]] || [[Calendar(shortweek)]] ||
{{{[[Calendar(noweek,yearlink)]]}}} show prev/next year link
[[Calendar(noweek,yearlink)]]
{{{[[Calendar("WkPark",blog)]]}}} blog mode
[[Calendar("WkPark",blog)]]
{{{[[Calendar(blog)]]}}} blog mode
[[Calendar(blog)]]
{{{[[Calendar("Blog",blog)]]}}} blog mode with default page
[[Calendar("Blog",blog)]]
{{{[[Calendar("Blog",shortweek,archive,blog)]]}}}
[[Calendar("Blog",shortweek,archive,blog)]]
{{{[[Calendar(noweek,archive)]] [[Calendar(shortweek,archive)]]}}}
||[[Calendar(noweek,archive)]] || [[Calendar(shortweek,archive)]] ||
- ClassifyByAnagram/인수 . . . . 22 matches
for(MSMCII i = _anagramTable.begin() ; i != _anagramTable.end() ; )
if(i->second == value)
else
cout << endl;
ifstream fin("input.dat");
* 이건 최대로 재수 없어도. Θ(n*n) 이상의 시간이 걸리지는 않는다.
* 일반적으로 단어의 갯수는 단어의 길이보다는... 아무래도 클것이다. 이 알고리즘은 총 Θ(n*n)의 수행시간이 걸린다고 할수 있다.
* 2만개짜리 단어장 구해서 파일 읽는 방식으로 바꿨다. 시간 재봐야겠다
* 기절하겠네--; 3분 걸리네--; 저게 10배로 불어나면..--; 대충 5시간으로 불어난다는 것인가..--;
ifstream fin(fileName);
for(MALSI i = _anagramTable.begin() ; i != _anagramTable.end() ; ++i)
for(LSI j = (i->second).begin() ; j != (i->second).end(); ++j)
cout << endl;
* 먼저 입력받을때에는 key : 어떤 알파벳이 몇번 나왔나 저장한 map 컨테이너, value : 그 string들의 list. 이런식으로 저장해준다.
* 1st 버젼은 출력부분에서 대부분의 시간을 까먹었었지만.. 이번엔 입력부분에서 90프로이상을 까먹는거 같다.
* 수행시간을 대충 계산해볼때, 단어의 개수를 n, 단어의 평균 길이를 m이라 하면, 입력 : Θ(mn), 출력 : Θ(n) 이므로 총 수행시간은 그런데 m은 n보다 훠~~~~~얼씬 작다. Θ(n)이 되는건가?--; 뭔가 좀 궤변 같다.
* 1분(2만개짜리)으로 줄었다. 더 줄일수 있을까. 저게 10배로 불어나면..--; 10분정도 걸리는 걸까.
* list를 vector로 바꾸고 컴퓨터 켜자 마자 측정하니 6.2초 걸린다.
* 알고리즘 개선으로 이정도까지 시간이 줄어들다니.. 정말 놀랍다. 더 줄여봐야겠다.
["ClassifyByAnagram"]
- CppStudy_2002_1 . . . . 22 matches
* C++의 문법도 익히고, 나아가서 사용법, OOP에 대해서 더 친숙 해지기, 다양한 과제를 통한 프로그래밍 경험 쌓기
* 주로 과제 위주로 할테니, 과제는 모두 꼭 해오세요. 과제는 그날 배울 내용에 맞는것을 고안해서 올리겠습니다.
* 스터디할 부분의 책에 있는 소스들은 한번씩 쳐보기를 강력히 권장함. 소스칠때 생각하면서 치기, 또 만약 가능만 하다면 결과만 보고나후 책 소스 안보고 소스 스스로 짜내기(이렇게 안해도 상관 없고, 단지 하나의 방법론..)
* 앞으로 스터디 할 기간 : 총 6주, 6번의 모임
* 공부하는 범위 C++기초 플러스 8장 ~ 13장 (14,15 장은 나중에 해도 상관 없는거(저도 안했음 ㅡㅡ;), 16장은 2학기때 과제로 하게될 것임)
* 기본적으로 공부는 각자 알아서 해오고 도움자는 말 그대로 필요할때 도움만 줄 것임. 적극적인 학습하려는 자세가 중요~
* 먼저 매주 몇개씩의 과제가 나가면 각자 그 과제를 해오고(도우미도 해올 것임) 서로 소스를 보면서 분석이나, 비판 해보고 나서 각자 일주일 동안 공부하면서 느낀점을 구체적으로(앞으로 도움이 되도록 발전적인 방향에서, 즉 어떤 점이 잘못되어서 앞으로 어떻게 하면 잘될것 이라든가 어떤점은 잘되었는데 그이유는 어쨌다는 둥, 공부한 내용이나 학습 방법적인 면에서) 토론하기
|| 7.18 ||8.함수의 활용(104page)|| 458P ~ 460P 프로그래밍 연습 + ???? ||
|| 8.16 ||12.클래스 상속(72page)|| ["LinkedList/StackQueue"][[BR]]C++2팀과의 프로그래밍 잔치? 링크드 리스트로 스택,큐 구현||
|| 다섯번째 주 || ["LinkedList/StackQueue/영동"][[BR]] ["STL/vector/CookBook"] 참고로 끝에 과제 해오기 ||영동 ||
* 버스 시물레이션 [http://www.sbc.pe.kr/cgi-bin/board/read.cgi?board=life&y_number=17&nnew=2]
* 2번이상 도우미에게 사전 연락없이 안오면 아무런 의지도 열정도 없는걸로 간주하고 팀에서 빼겠음.
|| 7.30 || 임영동, 신진영 || 이대근(집에 내려간 관계로), 홍진영, 김기웅(개인적 사정..) ||
* 스터디 진행하면서, 또는 과제 하면서 각자 느낀점 같은것을 적어 주세요. 느낀점을 적을때는 전에도 말했듯이 나중에 보았을때 도움이 되게 구체적으로 적어 주세요
상협. [STL/string|String] 클래스의 스펙을 어떻게 주었는지? 사람들이 왜 전부 String 이용 프로그램 GOD 클래스를 만드는걸까 궁리.
["프로젝트분류"]
- EightQueenProblem/최태호소스 . . . . 22 matches
if((in-i)>=0 && P[c-i][in-i] ==1){//왼쪽으로..
if( (in+i)<SIZE && P[c-i][in+i]==1 ){//오른쪽으로..
if (i==0) return 1;
if(Q[i]==1) continue;// 그 줄에 queen 이있는것이므로 다음칸으로..
if(Check(i)>0 ){//I 에 놓을수 있을때..
if(c==SIZE){//이때는 찾은 것임..
if (re==1) return 1;
if((in-i)>=0 && P[c-i][in-i] ==1){//왼쪽으로..
if( (in+i)<SIZE && P[c-i][in+i]==1 ){//오른쪽으로..
if (i==0) return 1;
if(Q[i]==1) continue;// 그 줄에 queen 이있는것이므로 다음칸으로..
if(Check(i)>0 ){//I 에 놓을수 있을때..
if(c==SIZE){//이때는 찾은 것임..
// if (re==1) return 1;
- GUIProgramming . . . . 22 matches
윈도우 플랫폼에서 프로그래밍을 하는 대부분의 프로그래머가 사용하는 것으로 마이크로소프트사의 제품군에도 사용된다. 대표적인 예는 마이크로 소프트 오피스군이 있다.
볼랜드사의 툴킷으로 C++빌더, 델파이 제품군에 사용된다.
== Motif ==
모티프는 유닉스 환경하 X-Window, 혹은 POSIX 표준과 호환되는 시스템을 위해서 만들어진 툴킷이다. IEEE 1295 산업 표준으로 제정되어있으며, Motif API라는 표기법을 쓴다. 최근에는 Qt, GTK에 많이 밀리지만 여전히 많은 시스템에서 사용되는 툴킷이다.
== Lesstif ==
Motif의 OpenSource 버전이다.
윈도우 매니저 KDE에 사용되는 툴킷이다. 이름은 "cute"라는 단어에서 만들어졌다고 한다. 다양한 멀티플랫폼을 위한 기능이 존재하며 다국어 지원이 좋다. 또한 기본적으로 C++을 이용하지만, 파이선이나 펄, C를 위한 바인딩 기능을 제공한다.
자바로 작성된 프로그램에서 기본적으로 이용하는 API이다. 플랫폼에 독립적으로 제작된 툴킷이지만 내부 구현 상 플랫폼에서 제공하는 함수를 아주 낮은 수준의 추상화된 형태로만 제공하기 때문에 자바의 Platform-independable의 특성을 충분히 만족할 만한 수준은 못된다.
최근 버전의 자바에서 이용하기 시작한 선사의 툴킷이다. 특징으로는 AWT보다 더욱 보기 좋은 그래픽을 제공한다. 또한 AWT와 달리 플랫폼에 비종속적이기 때문에 모든 플랫폼에서 동일한 모양을 보여준다. 그리고 클래스 라이브러리에 약간의 수정을 가함으로써 Windows 에서 기타 플랫폼 (예를 들자면 Mac)의 {{{~cpp Look&Feel}}}사용하는 것이 가능하다. 물론 -_-; 원칙적으로 특정 운영체제의 룩&필은 변경해서 응용프로그램을 개발하는 것은 정책상 불법의 범주에 속한다..
- Graphical Editor/Celfin . . . . 22 matches
if(x_1>size_x || x_2>size_x || y_1>size_y || y_2>size_y)
if(x_1>x_2)
if(y_1>y_2)
cout << name << endl;
cout <<endl;
if (bitmap[x][y]!=temp)
if(bitmap[x + PLUS_X[j]][y + PLUS_Y[j]]==temp && bitmap1[x + PLUS_X[j]][y + PLUS_Y[j]])
if(instruction=='X')
if(instruction=='I' || instruction=='C')
if(instruction=='I')
else if(instruction=='L' || instruction=='V' || instruction=='H' || instruction=='K')
if(instruction=='L')
else if(instruction=='V')
else if(instruction=='H')
else
else if(instruction=='F')
else if(instruction=='S')
- HanoiProblem/영동 . . . . 22 matches
* 음... 어셈블리 언어로 짜니 줄 수가 엄청나게 나오는 군요...
* 그리고 이게 이틀이나 걸린 이유는 전 push를 하면 각 변수 별로 스택이 있는 줄 알아서 pop의 순서가 상관이 없다고 생각했는데, 그게 아니라 스택은 하나라서 push의 반대 순서로 pop을 해야 하는 것이더군요.
main endp
Move proc ;Move 프로시저(재귀호출되는 부분)
jz endmove ;Move 프로시저의 끝으로 감
mov ax, by ;by와 to의 위치를 바꿔줌.(ax를 temp로 사용)
mov si, to ;메모리 간의 대입이 안 되므로
pop to ;다시 to, by, from, n을 순서대로 꺼냄
pop by ;스택이므로 빼는 순서에 유의해야 한다
push from ;from, by, to를 차례로 스택에 넣음
mov ax, from ;from과 by를 바꿈(ax를 temp로 하여)
mov si, by ;메모리 간 대입 허용 안 하므로
pop to ;to, by, from, n순으로 스택에서 뺌
endmove:
ret ;프로시저 끝
Move endp
Space endp
end main ;프로그램 종료
- HowManyFibs?/황재선 . . . . 22 matches
반복적인 계산을 줄이기 위해서, bottom-up 방식으로 수열을 처음부터 계산하였다. 계산된 이전 값을 사용하여 다음 수열을 빠르게 얻을 수 있었다. Dynamic Programming을 처음으로 해보았다 :)
public int howManyFib(BigInteger start, BigInteger end) {
if ((start.equals(zero) && end.equals(one)) ||
(start.equals(one) && end.equals(one)) ||
(start.equals(two) && end.equals(two))) {
else if (start.equals(one) && end.equals(two)) {
else if (start.equals(one)) {
else if (start.equals(two)) {
if (start.compareTo(fibRoom[3]) <= 0 && fibRoom[3].compareTo(end) <= 0) {
if (fibRoom[3].compareTo(end) > 0) {
if (line.equals("0 0")) {
BigInteger end = new BigInteger(line.split(" ")[1]);
int numOfFibs = fib.howManyFib(start, end);
public class TestFibonacci extends TestCase {
- IndexedTree/권영기 . . . . 22 matches
if(sp == st && ep == ed)return current->item;
if(ep <= (st+ed)/2){
else if(sp > (st+ed)/2){
else if(sp <= (st + ed)/2 && ed > (st+ed)/2){
if(*count >= N)return;
if(current->level == limit){
else{
void insert_item(node *current, int item, const int address, int st, int end, const int *count, const int *level){
if(address == (st + end)/2 && current->level == *level){
else if(address <= (st + end)/2){
insert_item(current->left, item, address, st, (st+end)/2, count, level);
else{
insert_item(current->right, item, address, (st+end)/2 + 1, end, count, level);
if(pow((double)2, level) >= n){
if(key == 1)temp = item - tree[address];
else temp = item;
- IpscAfterwords . . . . 22 matches
컨테스트는 끝났지만 여전히 도전해보고 싶은 사람은 다음 주(5/18)까지 자신이 얻은 답을 TIS를 1234567890로 해서 ipsc@ksp.sk로 이메일을 보내면 된다.
* 전에 K-In-A-Row 같은 경우는 일종의 StepwiseRefinement 의 형식이 나와서 비교적 코딩이 빠르게 진행되었었고, (비록 답은 틀렸지만) Candy 문제의 경우 덕준이가 빨리 아이디어를 내어서 진행이 빨랐었는데, 실전에서는 그런 경우들이 나오지 않아 버겨웠던듯 하네요.
* 영어실력의 문제 - 모르면 모른다고 이야기 할것을. 정확하게 해석합시다. 괜히 '아마 이런 내용일 것이다' 로 해석하지 말고..
* 중반부로 들어가면서 사람들이 문제들을 못풀다보니 팀플레이도 흐트러진것 같습니다. 이전에 K-In-A-Row 풀때나 Candy 풀때만해도 실마리를 잡아서 '풀 수 있겠다' 라고 생각해서인지 팀플레이가 잘 되었던거 같은데.. 역시 어려울때 잘하기란 힘든것 같네요.
* 자자.. 가끔 자만감에 용기백배할때 한번씩 이런거 풀어주면서 겸손 모드(?)로 전환을;; --석천
* 음.. 제 실력에 좌절을 먹고 미친 듯이 공부해야 겠다는 Crazy Study(01학번 스터디 그룹. 해체되긴 했지만..--;) 로서의 정신을 되새기게 하는 기회였습니다. - 인수
집에와서 B번 문제를 30분시간 제한을 걸고 생각했었던 방법으로 다시 한번 플밍 해보는데, 생각이 틀렸었네요. 접근법은 프로세서하나하나들에 대한 단순한 원리의 조합.. 뭐 이런걸 바랬는데, 최소의 수로 나오지가 않는다는. B번 3번째꺼에서 100번 turn 을 돌아야 했다는; 음.. 나중에 또 번뜩일때 다시 궁리를;
ICPC 모의고사(?)와 같은 류의 경험을 한번 해보고 싶었는데 이번과 같은 기회가 주어져서 무척 좋았습니다. 아쉬웠던건 팀워크 발휘가 제대로 안된 점이네요. 또한 알고리즘은 생각해냈는데 구현을 못한 상황이라면 나름대로 자기 위안을 할 수 있겠는데 솔루션에 접근하는 길조차 찾지 못한것도 퍽 아쉬운 점이구요. 처음 두어시간이 흐른뒤엔 사고 능력이 무척 떨어진걸 몸으로 느낄 수 있었는데 너무 오래간만에 머리를 썼더니 쉬 지친게 아닐까하는 생각이 드네요. ["프로그래밍파티"]때엔 좋은 컨디션으로 참여해보고 싶네요. 이제 좌절보다 풀어내는 재미를 느끼고 싶기도 하고, 공부할 좋은 기회를 만들어 주신 선배님께 실망스런 결과는 더 보이지 말아야죠. 모두들 늦게까지 정말 수고 많으셨습니다. --["이덕준"]
석천군 팀이 B번 문제(Job Balancing)를 풀긴 풀었으나 시간이 너무 걸려서 옵티마이징을 필요로 했습니다. 제가 O(m*n^2)에서 O(m*n)으로 만들어줬는데, 그것으로도 부족했습니다. 집에 돌아와서 잠을 자다가(NoSmok:포앵카레문제해결법 ) 몇 가지 아이디어가 떠오르더군요. 오늘 아침에 일어나서 30분 정도 뚝닥거려서 B Difficult Set을 5초 안에 끝내는 코드를 만들었습니다. 어떻게 사고했냐구요? TDD로 원소 하나 짜리, 두 개 짜리, 세 개 짜리, ... 를 하다보니까 일반해가 보이더군요. 역시 마음에 여유가 있으면 잘 되는 것 같습니다.. see also IpscLoadBalancing
- JUnit/Ecliipse . . . . 22 matches
Eclipse 에서는 기본적으로 JUnit을 내장하고 있습니다. (참고로 저는 Eclipse 3.0 M9 버전을 사용하였습니다.)
따라서 별도의 다운로드 및 인스톨 과정없이 보다 편하게 JUnit을 사용할 수 있는 강점이 있으며, 실제로 마우스의 클릭 몇번으로 대부분의 클래스 및 메서드를 생성해 주는 강력한 기능을 지원합니다.
Eclipse 플랫폼을 실행하시고, Window->Preference 메뉴를 선택하시면 Preferences 대화창이 열립니다. 왼쪽의 트리구조를 보시면 Java 라는 노드가 있고, 하위 노드로 Build Path 에 보시면 Classpath Varialbles 가 있습니다.
Name : 은 JUNIT 으로..
이것으로 Junit을 사용하기 위한 준비는 끝입니다.
if(index < array.length && index >= 0) {
} else {
다음으로 자신이 테스트를 하고 싶은 메서드에 체크를 하고 Finish 하면 TestCase를 상속받는 새 클래스를 자동으로 생성하여 줍니다.
public class Ch03_01Test extends TestCase {
Java Beans 형식으로 되어있으므로 메서드에 대한 설명은 하지 않습니다.
public class Ch03_01Test extends TestCase {
테스팅을 원하는 코드를 추가했으므로, Urs As -> JUnit Test 메뉴를 클릭하여 실행합니다.
다시 Run을 하면 Error가 두개로 줄었음을 알 수 있습니다.
나머지 두개의 Error는 JUnit이 모든 테스트를 독립적으로 실행하기 때문에 발생하는 것 입니다.
결국 메서드 단위로 독립적이라고 생각하시면 되겠습니다.
다시 실행을 하시면, 왼쪽의 상태바가 녹색으로 나타나는 것을 확인 할 수 있습니다.
각각의 메서드를 독립적으로 테스트하기 때문에 일어나는 에러를 확인할 수 있는 부분이 되겠지요.
- JollyJumpers/황재선 . . . . 22 matches
== 모든 수를 수열로 생각 ==
public int[] getdifferenceValue() {
int [] differValue = new int[len];
differValue[i] = Math.abs(nums[i+1] - nums[i]);
nums = sort(differValue);
if (aNum[i] < aNum[j])
if (i != nums[i-1])
if (j.nums[0] == 0) {
j.getdifferenceValue();
if (j.isJolly()) v.add("Jolly");
else v.add("Not jolly");
if (set.size() != numOfSeries) {
if (num.intValue() != series) {
if (size > 3000) {
if (!isRightInput()) {
if (j.size == 0) {
if (j.isException())
if (j.isJolly(set))
else
public class TestJollyJumpers extends TestCase {
- MagicSquare/은지 . . . . 22 matches
if ( !(size%2))
row --; col ++; //한칸 위로, 한칸 오른쪽으로
if (row == 0) //벽에 부딪칠 경우
if (col == size+1) //벽에 부딪칠 경우
if (!board[row][col]) //자리가 비어있을 경우
else //자리에 다른 숫자가 있을 경우
row ++; col --; //움직이기 전으로 돌아옴
if (row == 0) //벽에 부딪칠 경우
if (col == size) //벽에 부딪칠 경우
if ( row == size && col == 1)//좌표가 왼쪽 맨 아래인 경우
row=1; col = size; //오른족 맨 위로
else //그 밖의 경우
row++; //한칸 밑으로
- NeoZeropageWeb . . . . 22 matches
새로 만들 ZP홈에 대한 의견 제시
이번 방학에 소일거리로 대충 새로 ZP 홈을 만들어볼 계획인데...
제로페이지의 루트를 트랙백 센터로 만들고
제로페이지 개인의 블로그를 이 트랙백 센터에 글을 던지는 형태로 운영하게 만듦
모든 제로페이지 회워은 blog.zeropage.org/id 의 형태로 자신의 블로그를 운영하게됨
다른 블로그에서도 트랙백이 가능하다면 무조건 글을 남길 수 있음
대신 기존의 자료실은 ftp server 의 형태로 제공하게됨. (sftp 아님)
ZP의 핵심이라고 할 수 있는 위키를 메인으로 옮기고 다른 것들은 죽인다는 설정.
흠 누가 블로그를 만든다고 했던거 같은데 --? [아잉블러그] 이건 어떻게 된건지... - [eternalbleu]
위에꺼 어떤 것을 하든 위키에 내장할 수있도록, 뭐 매크로로 지원할수 있게 하면 좋을듯,, 예를들어서 특정 문법을 쓰면 게시판이 하나 생기는거다. -_-;, 특정 문법을 쓰면 트랙이 지원되고,, 태터툴즈가 오픈소스면 그 부분만 가져다가 매크로로 제작하는것도 좋을듯... 매크로로 넣는것은 소스 이해 안해도 상관 없으니깐 ~ - [(namsang)]
- OurMajorLangIsCAndCPlusPlus/print/이상규 . . . . 22 matches
if(sign == 0)
else if(sign == 1)
if(*c == '%')
if(isdigit((int)*c))
if(*c == 'd')
else if(*c == 's')
else if(*c == 'f')
else if(*c == '@')
if(*c == 'd')
if(i < len - 1)
else if(*c == 's')
if(i < len - 1)
else if(*c == 'f')
if(i < len - 1)
else
va_end(args);
- PairSynchronization . . . . 22 matches
하나의 대상을 놓고 둘이서 서로 번갈아가며 그리는 방법. 이때 그림은 쉽게 변경할 수 있어야하므로 화이트보드를 쓰는것이 좋다. ''' ''적합한 페이지 이름 찾습니다.'' '''
NoSmok:PairDrawing 이 있긴 한데, 여기서는 개발자들끼리의 대화이므로 다른것을 써도 좋겠네요. PairModeling? --["1002"]
["sun"]이 PairProgramming을 하기에 앞서 CrcCard 섹션을 가지게 되었는데, 서로의 아이디어가 충분히 공유되지 않은 상태여서 CrcCard 섹션의 진도가 나가기 어려웠다. 이때 - 물론, CrcCard 섹션과는 별도로 행해져도 관계없다. - 화이트보드와 같은 도구를 이용해서 서로가 생각한 바를 만들어나가면서, 서로의 사상공유가 급속도로 진전됨을 경험하게 되었다.
1. 순서를 바꿔가며 하나의 개념을 화이트보드에 그리고, 각 개념은 선으로 그어 표시한다. See Also: MindMapConceptMap
* 다른 사람은 하나의 개념을 나타내거나, 이미 나타나 있는 개념에 선을 연결하고 설명함으로써 한 턴을 대신할 수 있다.
1. 추상적인 내용을 구체적으로 보고 이야기 할 수 있다.
1. 서로의 생각을 일치시키는데 도움이 된다.
=== 회사에서 프로젝트 진행시 ===
["sun"]은 기존 프로그램의 업그레이드 작업에 새로 한명의 파트너와 함께 둘이 작업하게 되었다. XP를 개발에 적용해보기로 하고, 프로그램 디자인에 CrcCard 섹션을 이용하고자 했다. 처음 CrcCard 섹션을 진행해서 그런지, 별다른 진척이 보이지 않아 우선 화이트보드를 이용해서 개념을 정리해보고자 다른 색의 마커를 들고 한 번에 하나씩 개념을 그리고 선을 이어 나가며 디자인을 했다.
* 자신의 생각과 일치하지 않는 개념이나 연관관계가 나올시, 바로 피드백을 하고 서로 토론을 한 후 화이트보드에 개념이나 관계를 추가해 나가게 되므로 생각 공유의 시간이 빨라졌다.
* 부가적인 장점: 회사원들에게만 적용되겠지만, Pair의 작업은 집중해서 이루어지게 되므로 금방 지치게 되는 경향이 있다. 이때 회의실에서 쉬더라도, 누가 들어왔을때 화이트보드에 가득한 디자인을 보면 열심히 일하는중이라 생각해준다. :)
상민이랑 ProjectPrometheus 를 하면서 CrcCard 세션을 했을때는 CrcCard 에서의 각 클래스들을 화이트보드에 붙였었죠. 그리고 화이트보드에 선을 그으면서 일종의 Collaboration Diagram 처럼 이용하기도 했었습니다. 서로 대화하기 편한 방법을 찾아내는 것이 좋으리라 생각.~ --["1002"]
- PrimaryArithmetic/1002 . . . . 22 matches
문제 자체 읽으면서 그냥 뻔해보이긴 했다. 이전에 디지털 공학 수업때 가산기에 대해서 배운바도 있었던 관계로. 그냥 머릿속에 대략의 할 일들이 그려졌다.
그래서 첫 테스트를 바로 작성하였다.
하지만, 그렇다고 바로 알고리즘을 구현할 수 있는건 아니여서, 일단 다음과 같이만 작성하였다.
문제를 이리저리 나눠보니, 자리수 하나에 대해서 carry 가 발생하는지를 세는 것이 쉬워보였다. 그리고 해당 스트링을 일종의 list 로 나누는 것도 있으면 좋을 것 같았다. 그리고 carry 에 대해서 추후 앞자리에 더해주는 작업 등을 해야 할 것 같았다. 일단은 이정도 떠올리기로 하고, 앞의 두 일만 하였다.
음.. 이 부분을 작성하던 중, 생각해보니 입력 데이터가 스트링이면 더 간단할 것 같았다. integer 단위로 더하기 보다는 자리수 단위로 생각할 것이란 생각이 들었다. 그래서 테스트 코드를 다시 바꾸었다. 그러고 보니, 그냥 구현할 방법이 떠오른다.
if hasCarry(eachOne,eachTwo):
일단 예제로 있던 테스트 3개에 대해서는 별 일 없이 돌아갔다. 이쯤에서 걍 끝낼까 하다가, 너무 허술해보이는 것들이 많아 보였다. 그래서 해당 상황과, 그 상황에 대한 테스트의 예를 추가해나갔다.
* 자릿수가 넘어가는 경우 - 1234 + 123
carry 에 대해서는 별 생각을 안했다. 현재의 구조로는 carry 처리가 그리 이쁘게 나올 것 같지가 않았다. 코드를 좀 더 작성할까 하다가 일단은 green bar 에서 내부 자료 구조만 바꾸기로 했다.
여전히 테스트는 통과. 대략 추후 구현은 뻔해졌다. 자릿수 단위 계산 코드로 수정하였다.
if hasCarry(oneList[idx],twoList[idx]):
마지막 경우도 역시 통과. 아까보다는 좀 더 나아보여서 이즈음에서 그만 둠.
대략 끝나고 나니, 다르게 해결할 방법도 떠오름. 다른 방식으로 해결해도 재밌을 것 같다.
if hasCarry(oneList[idx],twoList[idx]):
if one == '0' and two == '0':
if count == 0: count = "No"
if count > 1: operationMessage = "operations"
else: operationMessage = "operation"
if __name__=="__main__":
- ProjectPrometheus/CookBook . . . . 22 matches
public class HelloWorldApp extends HttpServlet {
물리적인 모래시계가 없을 경우 사용할만한 모래시계 소프트웨어
동시에 10개의 타이머 설정 가능. 카운트 다운, 카운트 업 가능. 멈췄다가 프로그램을 다시 시작할 때 지난 시간에서 resume 가능. 단, 메모리 누수 버그가 있다.
* 마이크로 에그 타이머 http://users.informatik.fh-hamburg.de/~rohde_i/eggtimer/mr-egg-z.zip
Python 에서의 string.urlencode 과 마찬가지로 GET,POST 로 넘기기 전 파라메터에 대해 URL Encoding 이 필요하다. URLEncoder 라는 클래스를 이용하면 된다.
getParameter 가 호출되기 전에 request의 인코딩이 세팅되어야 한다. 현재 Prometheus의 Controller의 경우 service 의 명을 보고 각각의 서비스에게 실행 권한을 넘기는데, 가장 처음에 request의 characterEncoding 을 세팅해야 한다. 차후 JSP/Servlet 컨테이너들의 업그레이드 되어야 할 내용으로 생각됨 자세한 내용은 http://javaservice.net/~java/bbs/read.cgi?m=appserver&b=engine&c=r_p&n=957572615 참고
Cookie 는 보내는쪽 HTTP Protocol 의 Header 부분에 'Cookie: a=1; b=2; c=3' 식으로 쓰여진다.
받는쪽에서는 "Set-Cookie: a=10" ... 식으로 날라온다.
["cookieSend.py"]
resin 에서 홈 디렉토리를 변경하거나 resin 이 실행될때 기본적으로 생기는 디렉토리들(example 등)이 있다.
이는 <web-app> 라는 태그로 정의되어있다. 삭제하고 싶다면 '/' 외의 다른 web-app에 등록된 것들을 삭제해주면 된다.
<init-param driver-name="org.gjt.mm.mysql.Driver 식으로 드라이버 이름"/>
=== Resin 을 NT,2000 의 Service 로 등록 ===
=== JNDI로 resin에서 JDBC 코드 작성 일반적인 순서 ===
2. environment 변수를 근거로 Data Source 얻고
3. Data Source 를 근거로 Connection 얻고 Connection 을 이용.
4. Connection 객체로 Statement 객체를 얻고
5. Statement 객체로 SQL 수행. ResultSet 객체 얻기.
ZeroPageServer 웹 프로그램을 만들어서 미리 읽어볼 소스를 주신 선우형에게 감사드리며~! 형 덕택에
["Ant"] 를 이용하면 된다. Ant 의 경우 컴파일 & 배포할때 수정된 화일만 덮어쓰기를 한다. CVS & ["Ant"] 조합이면 해결이라 생각.
- Trac . . . . 22 matches
Trac(트랙) 은 소프트웨어 개발 프로젝트를 위한 위키 이자 이슈 트래킹 시스템이다. Trac은 웹 기반 소프트웨어 프로젝트 관리에 대해서 미니멀리스트적인 접근법을 취한다. 우리의 미션은 개발자들이 위대한 소프트웨어를 작성하는 것을 도우면서도, 그들의 방식에 대해 간섭하지 않는 것이다. Trac은 가능한한 팀에 이미 정착된 개발 프로세스와 정책에 대해서 덜 간섭해야 한다.
Trac 은 이슈에 대한 서술과 커밋 메세지에 대해서 위키 태그를 지원하며, 버그,테스크,체인지셋,화일,그리고 위키 페이지들 간에 대해서 seamless 한 참조가 가능하게 해준다. timeline(타임라인)은 모든 프로젝트 이벤트를 순서에 맞게 보여주며, 프로젝트에 대한 오버뷰를 얻는 것과 트래킹 진행을 매우 쉽게 해준다.
http://kldp.net/projects/trac-ko/ - 한글화 프로젝트
dev를 위해서는 사실 위의 링크들의 설치 방법은 거의다 쓸모 없다. Trac이 10->11로 넘어가는데 오래 정체되고 있는 이유는 내부를 대폭 개선하고 있기 때문이다. Template engine과 소스 컬러링 엔진을 바꾸었고, 기존의 plugin으로 존재하던 유용한 관리 도구들을 모두 결합하고 있다. 자료 구조도 손보고 있다. NeoCoin이 몇달간 dev버전을 사용해 보면서 별 무리 없이 이용하고 있다.
* gforge 같은 건가요? svn을 어서 설치하라는 무언의 압박으로 느껴집니다. ㅎㅎ;; - [eternalbleu]
* 흐흐. gforge 보다는 좀 더 작은 단위의 프로젝트 관리툴임. 위키와 통합되어 있음. (모인모인에 이와 유사한 플러그인을 만들 수도 있지 않을까 하는 생각도.)
* 데미안이면 아마 apt 로 설치 가능할걸? (요새 linux 쪽은 거의 손을 놓아서 상황이 어떻게 굴러가는지도 모르겠군;) --[1002]
갈수록 오픈소스 진영에서 널리 쓰이는 중~ (최근에 구경한 프로젝트들 중 꽤 많은 녀석들이 쓰고 있었던지라..) --[1002]
* 흠 한글화 프로젝트를 링크해놓으신건 ㅡ.ㅡ;; 한글판으로 설치하라는 무언의 압박;;; - [eternalbleu]
* 난 링크 건 것 밖에 없어.;; 압박씩이나..~ (으흐흐) 그나저나, 시스템만 있으면 별 소용이 없고, 실제 이를 이용해먹는 프로젝트가 있는게 좋겠는데.. Toy Project 하나 만들어볼까.. --[1002]
* 이걸 써먹을 만한 놈이 없으니까 실제로 활용하는 방법은 잘 모르겠음.. ㅡ.ㅡ;; 괜찮은 놈 같은데... openlook 은 좀 프로젝트가 여러개 있더만... 실제 개발중인건지는 모르겠으나;; - [eternalbleu]
* Perky 님이야 개인 플젝 말고도 하시는게 많으시니..; [1002] 의 경우 지금 랩에서 SVN 설치하고 랩 선배랑 같이 작업중. (주로 VC++ 프로젝트) 요새 개인 플젝 할 짬이 안나서 ZP 에 프로젝트를 못올리네. 암튼. 틈나는대로..~ --[1002]
- UserStory . . . . 22 matches
사용자의 요구사항에 대한 간략한 기술. XP의 다른 과정들이 그렇듯이 (이건 아마도 XP 방식으로 진행하는 팀들의 특징인듯. -_-a Case Tool 보다는 간단한 카드와 펜을 선호함.~) 보통 인덱스 카드에 기술을 한다.
Wiki:EngineeringTask 란 해당 Story를 구현하기 위해 실질적으로 해야 할 일들에 대한 서술이다. UserStory 의 각 항목이 비교적 사용자 관점에서의 서술이라 한다면, Wiki:EngineeringTask는 구현해야 하는 Developer들 관점에서의 서술이다.
UserStory 들을 작성한 뒤에는 Wiki:EngineeringTask 를 결정하고, estimate (해당 작업에 대해 얼마나 걸릴 것인가에 대한 예측)한 Story Point 와 Task Point 를 기준으로 적절히 계산해 나간다.
매 Iteration (개발주기)를 진행할 때마다 실제로 진행한 Story들을 계산, 다음 estimation에 이용하게 된다.
=== Estimation 이 어려운 경우 ===
estimate 를 하기 힘든 경우는 두가지가 있다. 하나는 해당 Story 가 애매한 경우이고 하나는 해당 Story의 구현이 전혀 생소한 부분인 경우이다. 해당 Story 가 애매한 경우에는, 주로 Story에서 해야 할일이 많은 경우이다. 해당 Story를 작은 Story들로 나누어서 생각해본다. 구현이 전혀 생소한 부분에 대해서는 SpikeSolution을 해본뒤 estimation 하는 방법이 있다.
3학년 2학기때 배운 UP(Unified Process)의 ["Use Case"] 를 보는 듯하다.
Use Case 에 대해서 문서를 작성하고..그 다음으로 System Sequence Diagram을 만드는데.
시스템과 사용자간의 어떤 행위들을 하는가른 간단히 순서적으로 적는것이지.
물은 물이고 산은 산이다에서 물은 물이 아니고 산은 산이 아니다로 가고 난 후에야 비로소 다시 물은 물이고 산은 산이다로 올 수가 있죠. 항상 초월적으로 모두 다 같다 혹은 모두 다 다르다는 식으로 말하는 태도는 공부를 하고있는 학생으로서는 상당히 위험하지 않을까 하는 우려를 해봅니다. Wiki:UserStoryAndUseCaseComparison 에 양자의 유사점, 차이점에 대한 논의가 있습니다. 참고로 Use Case의 대가라고 불리우는 코번은 다음과 같은 말을 합니다.
- Vending Machine/dooly . . . . 22 matches
package dooly.tdd.vending;
public class VendingMachineTest extends TestSuite {
TestSuite suite = new TestSuite("Test for dooly.tdd.vending");
//$JUnit-END$
package dooly.tdd.vending;
public class PerchaseItemTest extends TestCase {
private VendingMachine vm;
vm = new VendingMachine();
package dooly.tdd.vending;
public class RegistItemTest extends TestCase {
private VendingMachine vm;
vm = new VendingMachine();
package dooly.tdd.vending;
public class VendingMachine {
if (itemMap.containsKey(item))
if (money >= 0) {
if (notExist(item))
if (shortMoneyFor(item))
자바 버전으로 친구와 같이 tdd를 시도해보았습니다.
See Also ["CppStudy_2002_2"] , ["VendingMachine/세연/재동"] , ["VendingMachine/세연/1002"] , [Vending Machine/세연]
- Yggdrasil/가속된씨플플/4장 . . . . 22 matches
* 장의 제목 그대로의 내용이다. 프로그램의 구조화(함수)와 데이터의 구조화(구조체) 등등을 설명하고 있다.
* 전달인자(여기서는 배열)를 값에 의한 전달/참조에 의한 전달을 적절히 사용해야 한다. 원래 값을 보호해야 하는 경우라면 값에 의해서, 원래 값을 바꿔야하는 경우라면 참조에 의해 전달한다.
* 참조에 의한 전달은 그 전달인자의 별명(?)을 넘겨준다. 즉 그 변수 자체를 넘겨주는 것이나 다름없다. 즉, 함수 내에서 그 전달인자로 전달된 변수가 바뀌면 원래의 값에도 변화가 온다. 그래서 적절히 const로 값이 바뀌지 않도록 제한해주는 것도 좋다. 복사를 안 하므로 오버헤드를 줄일 수 있음.
* 1학년 1학기 텀프로젝트를 할때, 성적정렬 프로그램에서 정렬로 순서가 전부 바뀌어버려서, 루프문의 끝에서 전부 다 초기화했던 기억이 난다. 이때 전달인자에 전달 방식을 제대로 이해하고 활용했다면 편했을 것을.
* 구조체 만드는 법은 다 알고 있으니 넘어가고, sort()에 전달인자로 구조체를 넘겨주게 되면, 어떤 기준으로 정렬할 것인지 알 수가 없다. 그래서 3번째 전달인자를 사용할 수 있다. 즉,
sort(students.begin(), students.end(), compare);
인데, compare는 함수인데 괄호는 쓰지 않는다. 괄호를 쓸 경우 그 인자까지 알아서 써줘야할 것 같은데, sort의 정확한 구조를 잘 모르는 나에겐 좀 벅찬 방법이다. 하여튼 괄호는 쓰지 않는다.
* 4.3장부터는 여러 헤더파일과 소스파일로 분리해놓고 있다.
* throw로 예외 상황이 발생되었다는 것을 알린다. 예외 클래스엔 여러개가 있으며, 생성자로 문자열을 집어 넣을 수 있고, 이건 일반적으로 출력이 안되지만, what()함수로 확인 가능.
* 사전순 정리: <와 >로 비교가 되는 거였다! 문자끼린 되는줄 알았지만 문자열도 할 수 있는 거구나...
* width(n) 메소드: 이전의 넓이를 리턴하며, n이 현재보다 클 경우 나머지 칸에 공백을 넣는다. n이 0이면 넓이 리셋.
- ZP도서관 . . . . 22 matches
ZeroPagers 의 도서목록들. 새로 추가할때 가나다 (ABC) 순으로 정리해서 기록합시다.
== 새로 들어온 책 ==
|| C++로 배우는 PC 하드웨어 || 김성환 ||.|| ["fnwinter"] || 한서 ||
|| Flash Action 액션스크립트 활용사전 || 장동화 환재현 || 정보문화사 || [이승한] || 이것도 프로그래밍 ||
|| Windows NT 프로그래밍 || Julian Templeman || 정보문화사 || ["1002"] || 한서. Wrox 번역판 ||
|| 자바 네트워크프로그래밍 2ed || Merlin Hughes 외 ||Manning||["혀뉘"],["erunc0"],["구근"]||인포북 번역서||
|| 컴퓨터 소프트웨어의 창시자들(Programmers At Works) || . || 마이크로소프트프레스 || ["1002"] || 창섭 대여중 ||
|| XML-RPC || 사이먼 로렌트 외 || O'REILLY || ["구근"] || 한민수 역 ||
|| 이윤기의 그리스 로마 신화 vol.1|| 이윤기 || setsuna || 신화? ^^a ||
|| 죽음의 수용소에서 || 빅터 프랭클 || ["1002"] || 아우슈비츠 후기 & 로고테라피 심리학 ||
|| 프로페셔널의 조건 || 피터 드러커 || 데기 || . ||
|| 학문의 즐거움 || 히로나카 헤이스케 || 이선우, ["1002"], ["상협"] || 교양 ||
|| C언어 프로그래밍(원서명: The C Programming Language) || Brian W.Kernighan, Dennis M.Ritchie || Prentice-Hall || 도서관 소장(대영사 번역판본) || 프로그래밍언어 ||
|| The Art of Assembly 2nd Edition || Randall Hyde || Not printed yet || http://webster.cs.ucr.edu/ || 프로그래밍언어 ||
|| ExtremeProgramming Installed || Ron Jeffries, Ann Anderson, Chet Hendrickson || Addison-Wesley || 도서관 소장 || 개발방법론 ||
|| Quick Python Book || Daryl Harms, Kenneth McDonald || Manning || 도서관 소장 || 프로그래밍언어 ||
1. 평전이란게 대부분 그렇듯 첨에는 잼있는데 갈수록 약간 지루해.. --;; 음 대강..? 체게바라는 사람이 이렇게 살았다 인데.. 이 사람두 상당히 잘난 사람인 것 같아.. 느낀점? 자기 생각대로 살자!! (매우 어렵겠지만 이사람은 해내더군.. --;; ) 멋진 문구 하나? 리얼리스트가 되자 하지만 마음속에는 불가능한 꿈을 지니자? (음.. 정확한 문구가 생각이 안난다.. --;; ) -- jeppy
잘은 모르겠지만 자신이 직접 소유한 책만 올리는 것 같은데, 도서관에서 봤던 괜찮은 책도 올리면 여러모로 좋을 것입니다. 사람들이(특히 컴공과) 잘 모르지만 우리 학교 도서관에 좋은 책 참 많습니다. (오래된 책 중에도 좋은 책이 많습니다) 특히 제가 구입 신청을 많이 해서 핵심적이라 할 만한 클래식들은 쫘악 구비시켜 놨습니다. --김창준
["제로페이지분류"]
- ZeroPage회칙 . . . . 22 matches
1. 본 학회의 명칭은 ZeroPage 이며 어떠한 경우에도 이 조항을 바꿀 수 없다.
2. ZeroPage 는 중앙대학교 컴퓨터공학과 내의 학술모임으로 인력의 장이다.
3. 회장이란 ZeroPage의 대표로써 제3장.회장단에서 명시한 권한과 의무를 갖는다.
3. 회칙은 별도 연락 없이 개정된 사실의 공고만으로도 효력을 발휘할 수 있다.
4. 다음을 근거로 정모를 통해 준회원이 될 수 있다.
4-1. 정모를 3회 연속 불참하거나 불참시 연락 부재일 경우.
4-2. 프로젝트 참여도, 정모 참여도, 연락여부 의 순으로 정모 참여 인원이 평가하여 정한다.
1. 제2조(정회원)에서 자격을 득하지 않은 회원으로 제2항에 따라 정회원이 될 수 있다.
2. 준회원은 ZeroPage 프로젝트 및 행사에 참여를하며 정모에 3회 이상 참여함으로써 정회원 자격을 득할 수 있다.
1. 재학중 정회원의 자격을 득한 상태로 졸업한 자를 말한다.
1. 회장단의 구성은 회장, 부회장으로 이루어진다.
2. 선출시기는 매년 1월 정모로 한다.
3. 임기는 선출일 당일부터 다음 회장 선거까지로 한다.
4. 선출은 회장, 부회장 따로 선출하며 선출 방식은 무기명 투표이다.
5. 당선은 당일 참석 인원의 과반 수 이상 득표를 얻는 것으로 한다.
1. ZeroPage 의 대표로써 학회 운영의 최종 결정 권한을 가진다.
4. 정모의 총괄자로써 세부 사항은 제4장.운영에 따른다.
1. 회장을 도와 학회를 운영할 의무가 있으며 회장 다음으로 회장의 권한을 가진다.
3. 각종 안건을 처리하며 프로젝트 진행 상황 발표를 한다.
["제로페이지분류"] ["정모"]
- aekae/code . . . . 22 matches
cout << endl;
if(x == 5)
else if(x == -1)
if(y == 5)
else if(y == -1)
cout << endl;
if(table[i][j] == 0)
if(table[i][j] == 0)
cout << endl;
if(coord == 5)
else if(coord == -1)
DeleteMe - {{{~cpp IsExitZero }}} 에서 일일이 갔던곳을 세기 보다는.. 새로운 곳을 갔을 때 변수를 증가시켜주는 방법은 어떨까? [임인택]
// roach moves, if unvisited place, count it!
if( ThisIsFirstVisit )
if(i == 10)
cout << "값을 초과하였습니다." << endl;
cout << char(in[i-1]) << endl;
cout << i << "번째 값 삭제" << endl;
cout << in[j] << endl;
- 객체지향분석설계 . . . . 22 matches
목표 : 객체지향 프로그래밍에 대해 좀더 친숙해지자.
예제 프로젝트를 한개 선정하여 제작해 보는 방향으로 가자.
EX> 수강신청프로그램, 도서관 좌석예약 프로그램..
== 프로젝트의 요구사항을 정하자 ==
프로젝트의 목표는 여러가지로 정할 수 있다. 이 프로젝트를 통해 얻고자 하는 비지니스 요구사항, 이 프로젝트를 사용하는 사용자가 얻기 위한 사용자 요구사항, 그리고 개발자 요구사항등이 있을 수 있다.
* 예외1 : 여러 작업에서 중복되는 보조 업무를 유즈케이스로 뽑기도 한다. ex> Login/Logout
* 예외2 : CRUD에 해당하는 유즈케이스는 하나로 묶기도 한다.
* 사전조건 : 이 유즈케이스가 발생하기 전에 되어있어야 하는 내용
* 사후조건 : 이 유즈케이스가 종료된 후에 되어있어야 하는 내용
* 대안흐름 : 기본 사용 시나리오중 분기가 발생할 수 있는 경우
* 예외흐름 : 기본 사용 시나리오중 예외가 발생할 수 있는 경우
기본흐름, 대안흐름, 예외흐름은 Actor로부터 시작하는 것이 원칙이다. Actor로부터 시작하여 일어나는 일을 정리한다.
영구적으로 저장되는 데이터를 선택한다. 이 자료들은 Entity 클래스가 된다.
각 클래스간의 상관관계를 분석, Control 클래스와 Boundary클래스로 나누어 선택한다.
위의 분석을 바탕으로 하여 Sequence Diagram을 개략적으로 작성한다. 역시 Actor와 각 클래스들을 미리 배치한 다음 필요한 조작들을분석한다.
- 데블스캠프2006/월요일/함수/문제풀이/성우용 . . . . 22 matches
if(num >= 5 && gun >= 1 ){
if(sum >= 10)
else
else
void fifth();
if(num_ == 1){
else if(num_ == 2 ){
else if(num_ == 3 ){
else if(num_ == 4 ){
else if(num_ == 5 ){
fifth();
else if(num_ == 6 ){
else if(num_ == 7 ){
cout<<"fifth";
fifth();
void fifth()
- 데블스캠프2011/셋째날/String만들기/서지혜 . . . . 22 matches
C++로 Java의 String 클래스 구현하기
if(origin[i] == '\0') break;
if(length <= 0)
if(str[i] == '\0') break;
if(i < this->length)
else if(i >= this->length)
if(this->length != str.length)
if(values[i] != str.values[i])
if(str[i] == '\0') break;
if(i != length)
if(values[i] != str[i])
if(valuesForCase != NULL)
if(values[i] >= 65 && values[i] <= 90)
if(valuesForCase != NULL)
if(values[i] >= 90 && values[i] <= 122)
if(str.charAt(3) == 'd') // OK
if(str2.equals(strCon)) // OK
if(temp.equals("DDDDCCC"))
if(temp2.equals("ddddccc"));
if(!str2.isEmpty())
- 새싹교실/2013/이게컴공과에게 참좋은데 말로설명할 길이 없네반 . . . . 22 matches
> "글쎄.. 목표는 딱히.. 다만 가르치는 입장에서는 이해잘하게 가르치고 싶고, (프로그래밍에) 재미를 붙이기만 했으면 하는 바람."
> 문법은 후딱. - 익히는 것은 숙제나 그 날 연습문제로
> 아마도 게임은 2명이서 프로젝트 식으로 시켜야겠다.
> 이런 게임을 발전시키는 방향으로 포인터 연습
> 게임 5단계 : (가정: 내가 API공부가 완벽할시에....근데 지금 공부하는것도 많자나? 안될거야아마..ㅠㅜ) 콘솔로 이루어진 게임을 API로 샤방하게 바꾸어 보아요 ㅎㅎ.
- 연습문제: 구구단 일렬로 출력하기(9단까지)
- 과제: 구구단 바둑판 형식으로 출력하기.(9단까지)
- 과제: 세 문제중 하나만 풀면됨.(시험 끝나고 모르는건 같이 푸는것으로 결정)
영문 소문자로 구성된 긴 문장을 입력받아 이문자열 내의 각 알파벳 문자개수를 구해 출력하라. 예를 들어 alpha가 입력되었다면, a:2, b:0, ... , p:1이 출력되어야한다. Tip> 각 문자의 출현 회수를 저장할 배열이 필요하다.
출력 예의 형식으로 출력한다.
출력 예의 형식으로 출력한다.
- 연습문제 : 콘솔창에 자기가 원하는 방향으로 기호를 움직이게 하는 프로그램 만들기.(둘다 성공.)
- 결정사항 : 다음주는 시험기간이므로 수업은 없음. 대신 모르는 것 질문하는 방향으로.
- 성주 : 수학적인 방향으로의 발상이 뛰어나다. 아직 코딩에 익숙치 않아서인지 문법의 전반적인 실수가 있다. 이를 다잡는게 필요할 뜻 싶다.
- 앞으로의 방향 : 이제 문제를 풀면서 메모리의 구조를 다시 전반적으로 설명하고, 입출력방식, 간단한 알고리즘(유클리드 호제법같은)을 가르친다. 이렇게 준비를 한후 포인터에 돌입. 그리고 포인터에 대해서 이해가 어느정도 쌓였을때 발전시킬 수 있는 프로그램을 만들게 하면서 실력을 증가시킨다.
- 이번 회차의 전반적인 계획 : 시험끝난 주이므로 브레이크 타임. 입출력 시스템과 컴퓨터 전반적인 내용에 대해서 설명한다.
- 시간관리하기 . . . . 22 matches
DeleteMe) 영어로 쓰려면 HowToManagement... 류가 되려나. -_-; 개인적으로 그리 치열하게 살지 않는 사람으로서 이런 페이지 글 적는게 좀 그렇지만. -_-; 일단 화두 제공용. 질문하기위해 연 페이지라고 생각하시길. --["1002"]
보통 이 문제에 대해서는 '스스로가 게을러서' 로 끝나고, 문제에 대해 너무 막연하게 대처한다.
["1002"] 의 경우 치열하게 살고 있진 않지만, 몇몇개 해본 일들이 있다. 처음에는 크고 거창하게 계획 세우고 일들 순위 매기면서 하는 스타일을 시도했었는데, 요사이는 작고 간단하며 실천적인 행동들을 생각하려고 노력한다. (하지만, 여전히 게으르다;)
* 그래프 그리기 - 기상시간을 체크 한뒤, 다이어리의 모눈종이에 그래프를 그린 적이 있다. 일찍 일어나면 수치가 높고, 늦게 일어나면 수치가 낮은 식으로. 그러다보면 대강 기상시간이 늦어지는 때가 눈에 보인다. 걸리는 시간 : 5초. 분석 : 2분.
* 3일단위 계획세우기 - 이건 밑의 추천책중 'CEO의 다이어리엔 뭔가 비밀이 있다' 에 나온 방법이다. 작심 3일인 사람은 3일마다 계획을 세운다.; 개인적으로 좋았던 점이라 생각되는건, 보통 3일이 지나면 초반에 내가 했던 결심이 잘 기억 안나게 되는 것 같다. 다시 계획표를 쓸때엔 마음이 도로 잡힌다고 할까.
* 핸드폰 알람 밑에 다이어리 놓기 - 보통 아침은 핸드폰 알람소리로 깬다. 그 밑에 그날의 할일을 놓는 것이다. 핸드폰 찾으러 돌아다니고, 그러다가 스탠드를 켜고, 핸드폰 알람 끄고, 그리고 어쩔수 없이!; 그날의 To Do List 를 보게 된다.
사람들로부터 많이 화자되는 책들 관련. 자기혁신, 시간관리 책들은 참 많고, 한편으로는 너무 작위적으로 보이기도 하다. 그중에서 추천해볼만한 서적들.
비록 책을 쓴 저자인 스티븐 코비는 자신의 글을 스스로 실천하지 못했는지도 모르겠지만, 책 내용으로 보면 자기혁신,관리책의 기본 바탕이 되는 내용이라 생각된다. (단, 개인적인 생각으로는, 프랭클린 플래너는 안써도 될것 같다. 사람 스타일마다 다르겠지만)
번역본도 있는데, 개인적으로는 그 책에서의 공병호씨의 리딩가이드를 참 싫어했었던 관계로; (오히려 방해된다는 생각이 들어서;) 학교 도서관에 한서/영서 둘 다 있다.
의외로 '간단해보이는', 하지만 인간적인 시스템을 제공한다. TDD 를 하는 사람들이라면 'To Do List 에 등록해놓기' 생각날지도.
어디까지나 책을 읽고선 직접 실천해야 하는 사람은 바로 자기 자신이다. 자신이 얼마만큼 책의 내용을 자신에 맞춰서 적용하려고 했는지에 대해서는 늘 생각해볼 필요가 있다. 離의 단계 이전에는 守의 단계가 먼저 아닐까 하는 생각을 해본다.
학생들이 이구동성으로 대답했습니다. "예" 그러자 그는 "정말?" 하고 되묻더니, 다시 테이블 밑에서 조그만 자갈을 한 뭉큼 꺼내 들었습니다. 그리고는 항아리에 집어넣고 깊숙히 들어갈 수 있도록 항아리를 흔들었습니다. 주먹만한 돌 사이에 조그만 자갈이 가득 차자, 그는 다시 물었습니다.
"당신이 매우 바빠서 스케줄이 가득 찼더라도, 정말 노력하면, 새로운 일을 그 사이에 추가할 수 있다는 것입니다."
- 식인종과선교사문제/변형진 . . . . 22 matches
이 문제를 푸는데 흔히 이용되는 Backtracking 기법을 사용하지 않고 구현하는 방법이 없을까 해서, Case-by-case로 최소한의 상황에 대한 처리 방법을 지정해보았다.
가능한 모든 cases를 분석한 결과 우로 건너기와 좌로 건너기에서 각각 상황에 따라 3가지 건너기 방법이 사용될 수 있었다.
'''그러나 여기에서 사용한 방법은 모든 cases를 사람이 직접 조건 별로 분류해 주어야 하므로 결코 좋은 방법이 아니다.'''
여기서는 구현하지 않았지만, 모든 cases에 대해 각각 어떻게 처리할 수 있는지를 먼저 컴퓨터가 계산하여 DB에 담아서 일괄 처리하면, 이 문제가 상당히 복잡해질 경우 Backtracking보다 나은 효율을 보일 수도 있지 않을지?
if($this->left[canni]==$this->left[missi]&&$this->left[canni]==3) $this->ferry(1,1);
elseif($this->left[canni]<>$this->left[missi]&&$this->left[canni]>1) $this->ferry(2,0);
else $this->ferry(0,2);
if($this->right[canni]==$this->right[missi]&&$this->right[canni]==2) $this->ferry(-1,-1);
elseif($this->right[canni]==$this->right[missi]) $this->ferry(0,-1);
else $this->ferry(-1,0);
if($canni>=0&&$missi>=0) echo "우측 식인종 {$this->right[canni]}+$canni, 선교사 {$this->right[missi]}+$missi<br>";
elseif($canni<=0&&$missi<=0) echo "좌측 식인종 {$this->left[canni]}+".(-$canni).", 선교사 {$this->left[missi]}+".(-$missi)."<br>";
else die("에러: $canni, $missi");
if(!$this->left[canni]&&!$this->left[missi]) exit();
* 모든 케이스를 DB에 저장해서 푸는것과 비슷하게 머신러닝으로 학습시켜 풀게 만들면(문제 해결에 관한 state를 저장했다가 푸는것이므로 유사하다고 생각했습니다) 정답률이 얼마나 나올까요? - [[bluemir]]
- 정모/2013.6.10 . . . . 22 matches
== 소프트웨어 마에스트로 면접 이야기 ==
* 월요일 6시에 그대로 합니다.
* 다음에 다시 조율하기로 합시다.
== 스터디, 프로젝트 지원 관련 ==
* 스터디나 프로젝트를 하는 경우에는 ZP에서 기자재, 도서 등은 우선적으로 지원하고, 다른 비용도 나름대로 지원하니 신청해 주세요.
* 스태프 회의는 시험 끝나고 하기로 했습니다.
* 실제로 관리하는 사람들이 정해져 있는데, 그게 실질적으로 관리가 되고 있는지, 분담하는 사람들에게 혜택을 주기로 했는데, 회장님이 현재 상황을 잘 되고 있는지 아닌지를 인지하고 있는 지가 궁금합니다.
* 장학금 형태로 혜택을 주기로 했습니다. 초반에는 나름대로 잘 되다가, 지금은 잘 안 돌아가고 있는 것 같습니다. 제가 기대한 형태로 돌아가지는 않은 것 같습니다. 그래서 다음학기(??)부터는 다른 접근방식을 연구해 보려고 합니다.
* 그 팀은 사실 체계적이지 않았다. 다음 학기에서라도 체계적으로 하도록 할 것입니다.
관리하는 사람들이 체계적으로 한다고 한 들, 비는 시간은 분명히 존재합니다. ZP의 다른 회원들이 가끔씩은 확인해 주었으면 합니다.
* 이번 주 결론 : 코멘트를 코드로 나타낼 수 있도록 하면 됩니다. 코멘트를 최대한 줄입시다!
* 위키로 정모에서 어땠는지 잘 파악할 수 있어서 더 좋은거같은데요. -[김태진]
* 괜찮은데요? 혼자 요약하려고 너무 애쓰면 하기 싫어져요ㅋㅋㅋㅋ 받아적은대로 쓰고 누군가 고치고 싶으면 고치면 될 것 같습니다:) - [김수경]
* 위키가 길어 보이는 건 실제로 한 내용이 많았기 때문에 어쩔 수 없는 거 아닐까. 오히려 많은 내용에 비해서는 잘 정리한 것 같음 - [서민관]
- 정모/2013.9.4 . . . . 22 matches
* 제로페이지에서는 회원들의 학술활동 지원을 위해, 참가비가 있는 행사(컨퍼런스 등)에 대해 입장료를 지원하고 있습니다.
* 한종 -> 지원금 제한이 필요없다. 왜냐하면 1년에 많이가도 얼마 들지 않으므로 제한을 안걸어도 그렇게 많은 돈이 나가지 않는다.
* 본인 입으로 정확히 말하자면 :) 제한이 없어도 잘 안가는데, 제한이 생기면 더욱더 안 갈게 뻔하고, 지원금을 받는 대신 회원에게 공유할것을 전제로 주는 것이기 때문에, 한 사람이 집중적으로 많이 받아가도 별 반발이 없을거라 생각합니다. 받은만큼 토해(?)낼태니까요 :) 대신 세미나 같은 곳 다녀와서 건성으로 공유하지 않고 제대로 공유해줘야겠죠. 일단은 회장이 만족할정도면 된다고 생각합니다만. - [고한종]
* 덧붙여서, 지원금을 왜 주는지에 대해서 진지하게 생각했으면 좋겠어요. 저는 이게 학술 활동 지원이라 생각하는데, 지원 받는데 세세한 조건같은거 있으면 귀찮아서 학술활동을 포기해 버리겠죠?
* 하지만 비상식적으로 비싼 행사를 지양하려는 목적으로 최소한의 상한은 있는게 좋을듯.. 리눅스 포럼인가 10만원짜리 그런건 좀..-_-; -[김태진]
* 해천 -> 1명만 가는 경우 지원은 당연히 안되는 것이고, 영기말처럼 하는게 더 맞는것같다.
* 제가 할법한 잔소리는 이미 한종이가 위에서 했으니 제끼고 궁금한 게 있어서 이쪽에 붙습니다. 한명만 가는 경우 지원하지 말아야 할 당연한 이유가 있나요? 학술활동이 꼭 단체활동이어야 한다는 법도 없고.. 같이 갈 사람 못 구하면 지원도 못 받는 건 어쩐지 이상하게 느껴집니다. - [김수경]
* 개강파티가 있을 예정입니다. 일시는 공지로 알릴예정입니다.
* 소모임방식으로 진행이 될수도 있다.
* 외부 유입에서 문제가 생길수 있으므로 조심하는게 좋다.
* 또 하나 문제가 생길 수 있는게, 외부에서 zp가 거의 주최하는거에 대해서 클레임을 건다면 문제가 생길수 있어서 소모임방식으로 주최하는것에 조심해야한다.
* 대학생 프로그래밍 동아리에서 하는 제 2회 문제중 못푼문제 풀고 슬라이딩 윈도우 알고리즘을 공부했습니다.
* 클린 코드 : SRP(Single Responsibility Principle), DIP(Dependency Inversion Principle) 방식을 공부하였고 디자인패턴 중 템플릿 메소드에 대해서 공부하였습니다.그리고 스레드에 대해서 공부 하였습니다. trello와 github연동하는 방법이 있습니다.상당히 유용할 것같으므로 관심있으신분들은 조금만 찿아보시면 쉽게 하실수있습니다.
* 한.자.문 : 개강후 앞으로의 방향과 계획을 정하는 방식으로.
* 오랜만에 돌아왔는데, 회장이 이제 정모 진행하는데 불필요한 긴장감을 가지지는 않는것 같아 마음이 살짝 놓이네요. 하지만 여전히 뭔가 진행되는 느낌은 받지 못해 아쉬웠습니다. 휴학러니 앞으로 시간날때마다 짬짬히 들려서 지원해 드릴테니 힘내시길 : ) -[고한종]
- 조영준/파스칼삼각형/이전버전 . . . . 22 matches
* PTriangle 클래스만 똑 떼서 파스칼 삼각형을 필요로 하는 다른 프로그램에서 쓸 수 있게 손을 봤습니다.
if (lines < 0)
if (lines == 0) return; // 프로그램 종료
if (this._row > 1) _triangle[1] = new int[] { 1, 1 };
if (_count > _row) return new int[0];
private int count; //좌우로 출력해야할 빈 공간의 수 (4칸이 한 단위)
if (scale % 2 == 1) this.scale++; //너비가 홀수이면 짝수로 변경
if (count % 2 == 1)
// 빈 공간의 수가 홀수일 경우 그 반을 출력
if (lines < 0)
if (lines == 0) return; // 프로그램 종료
if (count == 1)
//삼각형의 머리일 경우
private int count; //좌우로 출력해야할 빈 공간의 수 (4칸이 한 단위)
if (scale % 2 == 1) this.scale++; //너비가 홀수이면 짝수로 변경
if (count % 2 == 1)
// 빈 공간의 수가 홀수일 경우 그 반을 출력
- 캠이랑놀자/051228 . . . . 22 matches
조건문
if x==0:
else:
if n==0: return 1
== 이미지 로딩 ==
im = Image.open("lena.gif")
im = Image.open("lena.gif")
im = Image.open("lena.gif")
=== overlap (blending) ===
세미나 준비와 관련하여, 추상적인 말을 줄이면서 사람들이 실제 결과를 가지고 이야기할 수 있도록 하는데 촛점 맞추기. 그러다가 종종 PIL 을 써서 프로토타이핑 하던게 생각나서 Python + PIL 로 진행.
1시간 만에 실제로 코드를 돌리고 이미지 처리를 하고 실제로 동작하는 과정을 사람들이 hand-out 으로 해보면서 효율적으로 익히게 할 방법은 python 아니면 matlab 밖에 없을 것 같은 느낌. 준비하면서도 느낌이 웬지 좋았다.
세미나를 준비하는 입장으로서, 앞으로도 계속 hand-out + 군더더기 적은 핵심적인 이론 설명을 목표로 잡아야겠다고 생각. --[1002]
hand-out으로 한다는 게 무슨 말인지? 뭔가 사람들에게 인쇄물을 나눠주고 그걸 따라가게 해보는 건가? --JuNe
hand-out 이면 유인물인가요~? (hand-on 을 잘못 쓴 느낌이;) 정확히 어떻게 진행했냐면, 개념을 설명하고, 인터프리터로 사람들 앞에서 시연을 했고, 사람들이 관찰을 했고, 그 다음 알고리즘 별로 사람들이 파이썬 인터프리터로 해당 필터 구현을 진행했습니다. 필터 구현방법에 대해서는 구체적인 답을 주진 않았으나, 중간에 간단한 힌트를 주었습니다. --[1002]
- 희경/엘레베이터 . . . . 22 matches
ifstream fin("input.txt");
cout << number << "층짜리 건물입니다." << endl;
cout << "지금 현재 " << floor << "층에 있고" << endl
<< in << "명이 타고 " << out << "명이 내려서" << endl
<< people << "명 남았습니다" << endl
<< "**************************************************" << endl;
ifstream fin("input.txt");
cout << number << "층짜리 건물입니다." << endl;
if(temp < floor)
cout << "지금 현재 " << temp << "층을 지나고 있습니다" << endl
<< "**************************************************" << endl;
else if(temp > floor)
cout << "지금 현재 " << temp << "층을 지나고 있습니다" << endl
<< "**************************************************" << endl;
cout << "지금 현재 " << floor << "층에 있고" << endl
<< in << "명이 타고 " << out << "명이 내려서" << endl
<< people << "명 남았습니다" << endl;
if(people > 10)
cout << "\a인원초과입니다." << endl
<< people - 10 << "명이 내립니다." <<endl;
- 2010php/방명록만들기 . . . . 21 matches
if (!$link) {
}else{
if(!$result){
}else{
if (strlen($_POST['input_name']) > 10 )
else
if (strlen($_POST['input_pw']) > 4 )
else
if (strlen($_POST['context']) > 2000 )
else
if(($posted_name!="")&&($posted_pw!="")&&($posted_pw!=""))
if( $record_number % $scale == 0)
else
if(!$page) $page = 1;
if($page == $i){
else{
if ($status == 1) {
if ($status == 2) {
if ($status == 3) {
if ($status == 4) {
- 2thPCinCAUCSE . . . . 21 matches
2회 중앙대학교 컴퓨터공학과 프로그래밍 경진 대회에 대한 자료.
* 문제 성격: 국내 대학생 프로그램 경진 대회의 문제 출제 경향을 따른다. 2002년도 문제 샘플( http://cs.kaist.ac.kr/~acmicpc/problem.html see also ["2002년도ACM문제샘플풀이"] 참조)
* 그 문제에 대해서 준비된 테스트 데이타( 보통 5-10개)에 대해서 모두 맞는 답을 내야 그 문제를 맞춘 것으로 한다.
* 프로그램의 실행시간이 일정시간(예: 10초)을 지나도 끝나지 않을 경우 틀린 문제가 됩니다.
* 컴파일 error, 실행 시간 error , 출력 포맷이 문제에서 정한 것과 다른 경우에도 틀림.
* 제출한 답안이 틀렸을 경우, 매번 일정한 penalty 점수 (10점)를 받게 된다.
* 맞춘 문제에 대해서는 경시 시작부터 문제를 제출한 시각까지 시간을 분으로 환산한 것이 점수로 주어진다. (따라서 점수가 적을수록 유리) 그리고 여기에 penalty 점수를 합산한 것이 그 문제의 최종 점수가 된다. 예를 들어, 어떤 한 문제에 대해서 다섯 번째 제출을 시작후 1시간 20분에 하여 맞추면, 지나간 시간이 80분이므로 80점, 네 번째까지는 틀렸으므로 4번*10점=40점이 penalty, 최종 점수는 120점이 된다.
* 프로그램 작성시 유의 사항:
1. 각 문제는 데이터를 외부에서 입력받아서 프로그램으로 답을 계산한 후 반드시 출력을 한다. 이때, 입출력은 표준입출력만 사용한다. 파일 입출력문을 쓰면 안됨.
cout << "I got " << n << endl; // 표준 출력 부분
2. 필요 없는 입출력을 하면 틀린 것으로 채점.
5. 채점 팀은 채점에 필요한 데이터를 파일로 만들어서 가지고 있다가 이를 학생의 수행파일에 파일 redirect를 통하여 수행파일에 입력시킨다.
6. 모든 문제는 숫자, 영어 문자들을 입력으로 받아서, 역시 숫자나 영어 문자를 출력하도록 되어 있다. 그래픽 출력은 없음.
* ["2thPCinCAUCSE/ProblemA"] - A번 문제 "성냥개비로 삼각형 만들기"
* ["2thPCinCAUCSE/ProblemC"] - C번 문제 "최소의 움직임으로 정리하기"
See Also ["컴공과프로그래밍경진대회"]
- ACM_ICPC/PrepareAsiaRegionalContest . . . . 21 matches
ifstream fin;
if ( workspace[x+sx][y+sy] == 1 )
if ( count > max )
cout << " " << max << endl;
bool isEnd();
if ( gamer.isEnd() )
else if ( count < MAX )
if ( minimum == INT_MAX )
else
if ( direction < 3 )
else if ( direction < 6 )
else if ( direction == 6 )
else if ( direction == 7 )
bool Gamer::isEnd()
if ( !coins[row][col].equals( coins[0][0] ) )
cout << engine.report() << endl;
cout << fall(N,K) << endl;
if(K == 1 || N <= 1)
else
- ComputerGraphicsClass . . . . 21 matches
수업내용: Computer Graphics 에 대한 전반적인 이해. 주로 3D 관련 내용과 프로젝트.
2004년 부터는 프로젝트시 OpenGL 을 이용한다. (하지만 파이프라인 밑바닥부터 구현 한다)
=== Report Specification ===
학교 교재로 OpenGL 개론서 역할도 겸하면서 설명도 쉬운편.
[1002] 가 봤던 OpenGL 입문서. 간결한 설명과 실제로 입력해보고 바로 확인할 수 있는 간결한 예제가 장점. 약 200여페이지로 필요한 내용만 간결하게 들어있는게 장점이다.
C++ 코딩에 자신이 없는 사람의 경우 이 책의 맨 앞에 있는 Vector 클래스와 Matrix 클래스 코드를 이용해보기를 권함. 책 설명은 쉬우나 중간중간 설명중 좀 아쉬운 부분이 보이긴 함. (ex : 그래픽스 파이프라인 부분인데 박스 설명은 CPU 파이프라인 설명시의 예 라거나, A* 부분은 설명이 너무 부족)
가볍게 읽고 실용적으로 써먹을만한 Problem - Solution 응용서.
OpenGL 로부터 시작하여 개념들을 파고드는것이 있고, 그 반대를 해도 좋다. 중요한건, 개념을 제대로 이해하는것.
OpenGL 페이지에 있는 예제들은 해당 개념들을 눈으로 이해하는데 도움을 준다. Tutorial들을 실행해볼 것을 권함.
실제 수업의 경우는 OpenGL 자체가 주는 아니다. 3DViewingSystem 이나 Flat, Gouraud, Phong Shading 등에 대해서도 대부분 GDI 로 구현하게 한다.(Flat,Gouraud 는 OpenGL 에서 기본으로 제공해주는 관계로 별 의미가 없다)
다른 과목(DB, Network)에 비해서 좀 외진(?) 학문이랄까, 혹은 '연구스타일'의 학문이랄까. DB나 Network 이라면 현업에 대해서 이미 많은 일을 하고 있지만, CG 의 경우는 상대적으로 덜하다.(Game 분야정도? 하지만 Game 분야도 생각보다는..) 그래서 그런지, DB 나 Network 에 비해서 상대적으로 어렵게 느껴졌다.
Project 에 걸리는 시간이 꽤 크므로, 미리미리 스케줄링을 잘 할 필요가 있다. Viewing System 이나 Ray Tracing 은 일주일 이상 조금씩 꾸준하게 진척하기를 권함.
- CppStudy_2002_1/과제1/CherryBoy . . . . 21 matches
// 1번 프로그래밍 연습...
if(n==0)
cout << exam << endl;
else
cout << exam << endl;
0을 따로 계속 입력해야합니다..
// 2번 프로그래밍 연습...
cout << "캔디바의 이름\t:\t" << candy.name <<endl;
cout << "캔디바의 무게\t:\t" << candy.weight << endl;
cout << "캔디바의 칼로리\t:\t" << candy.cal << endl;
cout << string << endl;
cout << beany.str << endl;
//함수는 전달인자로 전달된 값들을 사용하여
//golf 구조체를 제곤된 이름과 핸디캡으로 설정한다
//함수는 handicap을 새값으로 초기화한다.
cout<<endl;
if(g.fullname==NULL)
else
cout << "Name \t:\t" << g.fullname << endl;
cout << "HandyCap\t:\t" << g.handicap << endl;
- Doublets/황재선 . . . . 21 matches
* Sample Input은 동작하는데 모든 경우에 되는지는 모르겠다.. 채점 사이트가 SE5.0을 지원하면 올려봐야지..
* Graph 이용. 시작 단어에서 끝 단어의 path 검색은 dfs로 구현.
private int end;
if (word1.length() != word2.length()) {
int differentBitCount = 0;
if (!sc1.next().equals(sc2.next())) {
differentBitCount++;
return differentBitCount == 1 ? true : false;
if (isDoublet(source, destination)) {
public void setEndToEnd(String word1, String word2) {
end = wordList.indexOf(word2) + 1;
String destination = wordList.get(end - 1);
if (stack.peek().equals(destination)) {
if (stackWordCount < minWordCount) {
else {
// (바로 전에 거쳤던 곳) continue
if (to == wordList.indexOf(stack.get(stack.size() >= 2?
if (doublet[from][to] == 1) {
if (solutionStack.isEmpty()) {
else {
- EffectiveSTL/Iterator . . . . 21 matches
* 이 큰장에서는 각 반복자들의 특성과, 반복자를 효율적으로 쓰는 방법을 다룰 것이다.
* reverse는 뒤에서부터 앞으로 순회함. 아닌건 앞에서부터 뒤로
* 다른 iterator로부터 iterator로 암시적인 변환이 가능하다.
* const_iterator는 될수 있으면 쓰지 말라고 했지만, 어쩔수 없이 써야할 경우가 있다.
* 그래서 이번 Item에서는 const_iterator -> iterator로 변환하는 법을 설명하고 있다. 반대의 경우는 암시적인 변환이 가능하지만, 이건 안된다.
* 원문 : '''"When all else fails, get a bigger hammer."'''
// iterator와 const_iterator를 각각 Iter, CIter로 typedef해놓았다고 하자.
... // v에 차례대로 1~5까지 집어넣는다.
VIRI ri = find(v.rbegin(), v.rend(), 3); // 거꾸로 순회하면서 3을 찾는다.
VIIT i(ri.base()); // 앞에서도 말했지만 reverse 시리즈의 base()메소드를 호출해주면 그냥 시리즈로 바뀐 반복자를 리턴해준다.
|| rend() || || || ri || || rbegin() || ||
|| || begin() || || || i || || end() ||
* 만약에 ri가 가르키는 위치에다 새로운 원소를 삽입하고 싶다고 하자. 하지만 insert 메소드는 reverse_iterator는 인자로 받지 않는다. iterator형만 인자로 받는다. 즉 직접은 못한다는 것이다. 지울때도 이와 같은 문제가 발생한다. 그래서 base()를 쓰는 것이다.
* 99를 i가 가르키는 위치에 삽입했다고 하면(reverse시리즈는 인자로 못 넣는다.) 이렇게 될 것이다.
* 삽입은 문제없이 되었지만.. 만약에 erase()를 호출한다면? 난 3을 지우고 싶은데 base()호출해서 iterator버젼으로 넣어주면 4가 날아갈 것이다. 어떻게 해야하는가?
- EightQueenProblem2 . . . . 21 matches
EightQueenProblem을 아직 해결하지 않은 분은 이 페이지를 '''절대로''' 읽지 마세요.
EightQueenProblem을 해결하신 것을 축하드립니다. EightQueenProblem 페이지에 개발 시간과 소스 라인 수 등을 기록하셨나요? 사실 문제는 하나가 더 있습니다. 대부분의 프로그래밍 숙제/대회는 코드의 디자인은 잘 따지지 않습니다. 하지만 실세계의 문제에서는 코드의 적응도(adaptability)가 매우 중요한 요소가 됩니다. 자신이 작성한 프로그램이 얼마나 새로운 요구사항에 잘 적응을 하는지를 보면, 자신이 얼마나 디자인을 제대로 혹은 엉망으로 했는지 알 수 있습니다. 디자인 질에 대한 바로미터가 되는 것이죠.
새 문제는 다음과 같습니다. 자신이 작성한 프로그램을 수정을 해서, EightQueenProblem의 일반적인 문제를 푸는 것입니다. 즉, 8X8에서 8개의 여왕을 배치하는 서로 다른 모든 해법(총 92가지)을 구하는 것입니다.
EightQueenProblem에서와 마찬가지로 프로그램 작성 후에 다음 칸을 채워주세요.
||nextream|| 0.1m || 21 lines ["EightQueenProblem/nextream"] 에서 check(1)을 check(0)으로 || Javascript ||
||da_answer|| 5m || 135 lines ["EightQueenProblem/da_answer"] showMessage부분을 리커시브 안쪽으로 이동 || Delphi ||
''"소스수정 없음"은 잘 이해가 되지 않습니다. 첫번째와 두번째의 요구사항, 즉 기대하는 결과가 다르다는 점을 생각할 때 프로그램이 조금이라도 달라져야 합니다. 분명 처음에는 모든 해를 구하라는 요구조건이 없었는데 그렇게 했다면 당시로서는 그건 YAGNI(You Aren't Gonna Need It)이거나 혹은 고객이 원하지 않는 프로그램 아닐까요?''
만약 이 모든 것을 완료했고, 뭔가 더 도전할 것을 찾는다면, N-Queens Problem을 풀면 됩니다. (요구사항의 또 다른 변화! :( ) NXN 체스판에서 N개의 여왕을 배치하는 프로그램이 되도록 수정하는 겁니다.
DeleteMe) 처음부터 랜덤으로 나올수 있게 구현했는데 92가지의 방법을 모두 출력해야 하나요?
''네. 만약 그렇게 되도록 프로그램을 수정하는데 어려움이 있거나 시간이 많이 걸린다면 처음 디자인이 그다지 적응도가 높지 못했다는 반증일 수 있겠죠.''
저의 경우가 그렇지요..ㅡㅡ 소스를 어케 만들었길래 고치는데.. 헤매는지.. 쿨럭.. --선호.
- Interpreter/Celfin . . . . 21 matches
if(a==2)
else if(a==3)
else if(a==4)
else if(a==5)
else if(a==6)
else if(a==7)
else if(a==8)
else if(a==9)
else if(a==0)
if(regist[c]!=0)
cout << process() << endl;
if(testcase!=0)
cout << endl;
- Linux . . . . 21 matches
리눅스는 현재 컴퓨터의 커다란 흐름중의 하나이다. FSF에 의해서 지원을 받는 핵심적인 운영체제로 현재 기능적, 보안적 측면이 기존의 [Unix] 시스템에 버금갈 정도 발전하였고 [GNU]의 사상하에 만들어진 [GPL]을 따르기 때문에 무료로 사용이 가능하여 서버 운영체제로 많은 인기를 누리고 있다. 본디 리눅스라는 하는 것은 운영체제의 [Kernel] 명칭이며, 주로 접하게 되는 패키지 형태로 이루어진 배포판의 전체 구성을 리눅스라고 여기는 경우가 있으나 이는 리눅스의 광의적 정의라고 생각하면 될듯 싶다.
리눅스와 비슷한 운영체제로는 정통적인 유닉스 클론 이라고 평가받는 [:FreeBSD BSD]계열이 있다. BSD계열중 가장 잘알려진 [http://www.kr.freebsd.org FreeBSD]의 경우 실제로 과거부터 hotmail.com, yahoo.com, cdrom.com 을 운영해온 네트워킹에 대한 안정성이 입증된 운영체제이다. 실제로 2.6커널의 도입이전에는 BSD의 네트워킹이 더욱 뛰어나다는 평가를 받았지만 일반적인 의견이었으나, 많은 구조적 변경을 통해서 리눅스는 현재 이런 점을 극복하고 BSD와 리눅스를 선택하는 것은 운영자의 기호일 뿐이라는 이야기를 한다. 최근에는 리눅스를 데스크탑의 용도로 까지 확장하려는 노력의 덕분에 로케일 설정관련 부분이 대폭 강화되었으며, 사용자 편의성을 고려한 WindowManager인 [Gnome], [KDE] 등의 프로그램이 대폭 강화되면서 low-level 유저라도 약간의 관심만 기울인다면 충분히 서버로써 쓸 만한 운영체제로 변모하였다.
= 관련하여 진행된 프로젝트 =
[http://www.zeropage.org/pub/Linux/Microsoftware_Linux_Command.pdf 마이크로소프트웨어_고급_리눅스_명령와_중요_시스템_관리]
[http://www.kldp.org 리눅스 문서 한글화 프로젝트(KLDP)]
[http://j2k.naver.com/j2k_frame.php/korean/http://www.linux.or.jp/JF/ 리눅스 문서 일본어화 프로젝트(LJFP)]
[http://kltp.kldp.org 한국 리눅스 팁 프로젝트(KLTP)]
[BSD]도 상당히 유명한 편인데 이 커널의 제작자가 안알려진 것은 약간 특이한 일이라고 생각할 것이다. 이유인 즉은 BSD는 현재 메인테이너들에 의해서 커널이 관리되기 때문이다. 리눅스 커널은 커널 메인테이너 들을 의견의 제시를 하지만 실제로 방향을 결정하는 최종 결정권자는 리눅스 커널의 최초 개발자인 리누즈 토발즈이다. 그렇지만 BSD는 세계에 있는 BSD메인테이너(커미터)중에 몇명이 선발되어 커널의 개발을 주도하고 운영되기 때문에 사실 어떤 한사람의 이름이 특별히 나올 여지가 많지는 않다. 리누즈 토발즈는 좋은의미의 독재자라고 불리기도한다.
- NumericalAnalysisClass . . . . 21 matches
강의내용 : 최근의 수치해석 수업은 그래픽스 수업의 선수과목으로서 성격이 이전과 달라졌다. 주로 line, curve, plane, matrix 등 그래픽스와 관련된 내용을 배운다.
실습 : 주로 레포트 위주.
=== Report Specification ===
전산학에서 OOP의 발전을 별로 수용하지 않은 대표적인 두 영역이 컴파일러와 수치해석 쪽이다. 또한, 대부분의 수치해석 교과서들은 잡다한 기법과 코드의 백과사전 수준에서 그치고 있다.
하지만 이 책은 다르다. 어떤 문제를 접했을 때 어떻게 프로그램을 새로 만들어 내야하는지, 디자인은 어떻게 해야하고, 훌륭한 프로그램을 어떻게 만드는지를 말하고 있다. 게다가 OOP를 "정말" -- 시늉으로써만이 아니고 -- 사용한다. 모든 코드가 Java와 Smalltalk 양자로 쓰여있는 점도 큰 장점이다.
세간에서 간혹 추천서적으로 꼽히기도 하는 Numerical Recipe 시리즈는 사실 전문가들로부터 "최악의 책"으로 꼽히고 있다. 단순히 책의 구성이나 깊이 등을 떠나서 잘못된 정보가 너무 많다, 수치해석에 대해서는 아마추어의 수준도 못되는 사람이 썼다는 비판이다. 인터넷에 이 책에 대한 전문적인 서평이 많이 있다 -- 문제점 하나하나 꼼꼼하게 비판한 것이다.
과목 자체의 진행은 괜찮다고 생각. 교과내용이 바뀐뒤의 첫 적용이여서 그런지, 교재내용에 없는 내용이 자주 언급되었다. (근데, 이게 그 예전 책의 내용인듯 하다는. -_a) 도서관에서 두권정도 책을 섞어봐야 할듯. (Applied Numerical Analysis 던가.. 이 책에서 내용이 수업과 비슷했던걸로 기억). 뭐. 중간에 설명하시다가 틀리시는것만 빼면 -_-; 그래도 인간성과 중간중간 인생선배 (실제로도 학과 선배이시니)로서의 조언으로 보완을. ^^;
수학에 약한 1002로선 첫방에 이해를 못해서리; 수업때 이해안간건 수치해석책과 3D Graphics 관련 책을 이리저리 섞어보면서 나름대로 더듬거리며 따라갔다. (수치해석책들은 Bezier 가 별로 언급되지 않는 관계로) --석천
- OurMajorLangIsCAndCPlusPlus/print/조현태 . . . . 21 matches
* 요구사항에는.. 절대로! %f일때 0을 넣으면 0.0이라고 출력하라는 내용도.. %f에서 소숫점 이하 몇자리만 출력하라는 내용도.. 없었다!!!!! (이런 게으름뱅이!! 퍽!)
if (0 > number || 0 > lowNumber)
if (0 != lowNumber)
if ('%' == outData[readPoint])
if ('d' == outData[readPoint])
else if ('f' == outData[readPoint])
else if ('s' == outData[readPoint])
else if ('@' == outData[readPoint])
if ('d' == outData[readPoint])
if (0 != i)
else if ('f' == outData[readPoint])
if (0 != i)
else if ('s' == outData[readPoint])
if (0 != i)
else
va_end(variables);
- ProgrammingLanguageClass/2006/EndTermExamination . . . . 21 matches
02, 05 년에 언어 디자인시 고려해야할 점에 대한 문제가 출제되어서 그쪽으로 공부를 많이 했지만 나오지 않았다는 점에서 의외였음. 디자인 이슈를 공부할 생각이라면 Pointer, Array, Abstraction, Subprogram 의 디자인 이슈에 대해서 공부하는 것이 좋을 듯함.
a) c언어에서, switch문의 조건 넣는 부분에 모든 ordinal type이 들어갈 수 있는가?
b) 일반적으로 서브프로그램의 파라메터 전달시 참조유형으로 전달해야하는가를 묻는 문제.
d) if에서 Dijkstra's Guarded Command 에서 Boolean Expression 중 어떠한 것도 참이 아닌경우 구문을 벗어나는지 묻는 문제
a) 상기 소스에서 fun 함수의 파라메터 전달 방식이 Pass-By-Value, Pass-By-Name 의 경우로 나누어서 출력 결과값을 나타내라 (소스는 대충 비슷한거 같은데 확실하지 않음. -_-;; 기억에 의존하다 보니 ㅋㅋ)
// C 에서 돌려본 결과 function evaluation 이 먼저되며, 이는 조건상 left-to-right 로 연관지어서 답을 적을 수 있을듯함.
셀렉터의 경우 런타임 에러 발생, 루프시에는 루프를 벗어난다.
end loop
// reverse 키워드가 선언된 시점에서만 역으로 반복됨에 조심할 것
만약에 upto 라는 단어에 두가지의 의미가 상존하는 것으로 보이기 때문에 정확한 답을 대답하기 힘들 것으로 보이며, 맞고 틀림은 해설의 정확성에 따라 결정될 것으로 보인다.
up to ... (1) <어느 위치·정도·시점이> …까지(에), …에 이르기까지;<지위 등이> …에 이르러:up to this time[now] 지금껏, 지금[이 시간]까지는/I am up to the ninth lesson. 나는 제 9과까지 나가고 있다./He counted from one up to thirty. 그는 1에서 30까지 세었다./He worked his way up to company president. 그는 그 회사의 사장으로까지 출세했다. (2) [대개 부정문·의문문에서] 《구어》 <일 등>을 감당하여, …을 할 수 있고[할 수 있을 정도로 뛰어나]:You’re not up to the job. 너는 그 일을 감당하지 못한다./This novel isn’t up to his best. 이 소설은 그의 최고작에는 미치지 못한다./This camera is not up to much. 《구어》 이 카메라는 별로 대단한 것은 아니다./Do you feel up to going out today? 오늘은 외출할 수 있을 것 같습니까? 《병자에게 묻는 말》 (3) 《구어》 <나쁜 짓>에 손을 대고;…을 꾀하고:He is up to something[no good]. 그는 어떤[좋지 않은] 일을 꾀하고 있다./What are they up to? 그들은 무슨 짓을 하려는 것인가? (4) 《구어》 <사람이> 해야 할, …나름인, …의 의무인:It’s up to him to support his mother. 그야말로 어머니를 부양해야 한다./I’ll leave it up to you. 그것을 네게 맡기마./It’s up to you whether to go or not. 가고 안가고는 네 맘에 달려 있다./The final choice is up to you. 마지막 선택은 네 손에 달려 있다.
- RubyLanguage/Container . . . . 21 matches
* 객체를 구조화된 방법으로 저장해둘 수 있는 추상 데이터 타입(ADT)
* Ruby 프로그래밍에 있어 가장 기본적인 컨테이너 객체이다.
* 다른 객체로의 참조를 저장하는 컨테이너이다.
* 객체로의 참조를 차례대로 나열한 것.
* 요소로 배열을 포함할 수도 있다.
* 리터럴로 생성
* Array.new로 생성
coffee[3] #coffee 배열의 네번째 요소에 접근하나 요소가 없으므로 nil 반환
}}}[[FootNote('''p 메서드''' : 객체를 디버그에 적합한 형식으로 문자열화하여 출력하는 메서드로 주로 디버그 출력을 위해 사용. 디버그, 학습, ShortCoding 이외에는 사용하지 않는 것이 좋다.)]]
* 음의 첨자 사용시 뒤에서부터 역순으로 요소를 가리킨다.
* name[n, m] : name 배열의 n 위치부터 최대 m개의 요소를 포함하는 새로운 배열 객체를 생성하여 반환
* 첨자대입을 이용함으로써 배열의 내용을 갱신할 수 있다.
* 배열은 자동확장되며 중간의 공백은 nil로 채워진다.
* 길이를 포함한 첨자나 범위 첨자를 사용한 경우, 우변에 복수 개의 값을 취할 수 있다.(line 5, 6)
* 좌변의 요소개수보다 우변 식이 적은 경우 모자란 부분의 요소는 제거되고 배열의 크기가 줄어든다.(line 7)
* 좌변에 지정한 요소개수보다 우변 식이 많은 경우 배열의 크기를 늘려서 대입한다.(line 9)
* 배열 객체끼리는 대응하는 요소가 모두 동일할 경우에 한해서만 같다.
모든 배열은 Array 클래스의 인스턴스로, 배열은 그 자체가 객체이다. 배열은 다양한 메서드를 통해 조작할 수 있다.
- TicTacToe/zennith . . . . 21 matches
public class Serious extends JFrame {
if (blockNum < 3)
else if (blockNum < 6)
else
if (blockNum == 0 || blockNum == 3 || blockNum == 6)
else if (blockNum == 1 || blockNum == 4 || blockNum == 7)
else
if (block[x][y] == 0)
if ((block[i][0] == markO && block[i][1] == markO && block[i][2] == markO)
if ((block[0][0] == markO && block[1][1] == markO && block[2][2] == markO)
if (win)
if ( checkBlockIsVoid(blockNum) != true )
if (turn == true) {
} else {
if ( checkWinner() ) {
if (turn)
else
if (block[i][j] == markX)
if (block[i][j] == markO)
- ZPBoard/PHPStudy/기본문법 . . . . 21 matches
* echo 문으로 출력하는 것은 그대로 html 소스가 됨 (이걸 모르면 php를 제대로 써먹을 수가 없음)
* echo 문으로 출력시에 echo "text" 보다 echo 'text'가 더 빠르다고 함. " " 와 ' ' 의 차이점은 " " 안에는 $변수 가 인식이 되고 ' ' 안에서는 $변수 하면 변수가 인식이 안되고 그대로 출력됨
* define() 을 사용하여 정의할 수 있으며, 변수와는 달리 한번 정의된 뒤로는 변경할 수가 없다.
* 우선 기본적으로 C에서 사용하던 +, -, *, /, % 는 동일하게 사용한다.
== 제어구조(foreach 제외 if-elseif-else, swich-case, for, while, do-while) ==
if(조건){
} elseif(조건){
} else {
while(조건){
} while (조건);
*배열을 원소를 차례로 지정한 변수에 하나씩 저장시켜서 루프를 돌면서 반복 수행
* 그냥 함수로 설정만 하면 뭐든 할 수 있음
- 니젤프림/BuilderPattern . . . . 21 matches
빌더 패턴은 소프트웨어 디자인 패턴의 하나이다. 빌더 패턴은 복잡한 객체를 생성하는 방법과, 표현하는 방법을 정의하는 클래스를 별도로 분리한다. 이 분리로서 얻어지는 효과는, 동일한 생성 과정이 다른 표현을 얻어낼 수 있게 되는 것이다.
쉽게 말해서, 아주 복잡한 오브젝트를 생성해야하는데, 그 일을 오브젝트를 원하는 클래스가 하는게 아니라, Builder 에게 시키는 것이다. 그런데 자꾸 나오는 생성/표현 의 의미는, 바로 director 의 존재를 설명해 준다고 할 수 있다. director 는 Building step(construction process) 을 정의하고 concrete builder 는 product 의 구체적인 표현(representation) 을 정의하기에.. 그리고, builder 가 추상적인 인터페이스를 제공하므로 director 는 그것을 이용하는 것이다.
패스트(정크)푸드 레스토랑 맥도날드에서 어린이용 해피밀을 만들어내는 걸로 예를 들 수 있다. 일반적으로 해피밀은 메인, 사이드, 음료, 장난감 (햄버거, 프라이, 콜라, 매달 바뀌는 장난감)으로 이루어져 있다. 여기서 중요한건, 이런 템플릿이 정해져 있다는 것이다. 요즘 같이 까다로운 아이들에게 어릴때부터 맥도날드의 입맛을 확실히 들여놓으려면 당연히 다양한 바리에이션이 필요하다. 고객은 햄버거나 치즈버거나, 아니면 맥너겟이나 이런걸 선택할 수 있지만, 기본적으로 해피밀이 구성되는 방식에는 변함 없다. 여기서 빌더 패턴을 적용한다면, 카운터에서 주문을 받는 직원을 Director 라고 할 수 있다. 물론 고객은 Customer 이다. 고객이 원하는 바리에이션을 선택해서 해피밀 셋트를 구성하게 되면 (Customer가 Concrete Builder 를 선택한다) Director 는 정해진 템플릿에 따라 주방 직원(Concrete Builder) 에게 의뢰하여 해피밀 세트(Product) 를 만들어 낸다. 여기서 Director 가 Concrete Builder 에게 요구하는 방식은 종류에 따라 비슷 하므로 그것을 추상화시킨 인터페이스를 Builder 라고 할 수 있겠다.
http://www2.ing.puc.cl/~jnavon/IIC2142/patexamples_files/pateximg2.gif
Builder 를 구현한 부분. 일반적으로 다수개의 Concrete Builder 가 존재하며, Builder 가 제공하는 인터페이스를 이용해서 late binding 의 형식으로 사용하게 된다. 물론, builder pattern 에서의 주 관심하는 Product 를 만들어내는 것이다.
만들어야 할 대상. 일반적으로 Builder Pattern 이 생성하는 Product 는 Composite Pattern 으로 이루어진다.
class HawaiianPizzaBuilder extends PizzaBuilder {
class SpicyPizzaBuilder extends PizzaBuilder {
public class Plan extends PlanComponent {
public class PlanItem extends PlanComponent {
public class MyPlanner extends Planner {
Builder Pattern : 복잡한 오브젝트를 어떤 방식으로 조합하여 만들어낼지 에 대한 방법을 제공한다. (encapsulate) 예를 들자면, 건축업자와 계약을 해서 집을 건설 할 때, 건축업자(builder) 에게 평면도(product 의 윤곽)를 제공하면 건축업자는 일련의 작업을 거쳐서 집(complex object)을 만들어 낸다.
- 데블스캠프2003/다루어볼문제와관련세미나 . . . . 21 matches
* 회의 때 나왔던 주제들 입니다. OOP, Computer System, 다양한 프로그램 언어 체험, 네트워크
* STL을 알려주는건 어떨까요? 좀 더 강력한 프로그래밍을 하는 방법을 다룰 수도 있을듯 한데...-[상욱]
* 작년 프로그램 잔치때 했던 여러 언어 중 하나를 골라서 뭔가를 짜보는 것도 괜찮을듯.. 여러가지 패러다임을 익히는 게 중요하다는 것을 알아서리.. --인수
* 계획을 말씀드리겠습니다. 여러 문제를 푸는것 또한 중요하지만, 큰(?) 프로그램을 다루는것도 괜찮은 생각 같아서 OOP를 2틀째 넣고 마지막날까지 팀으로 연속해서 만들어 데모를 하는 방법도 생각을 했었습니다.(정모 때요..) -[상욱]
입장을 바꿔서 생각해보세요. 과연 1학년때 큰 프로그램을 짜라고 하면 짤 수 있을지... 선배들과 짠다고 하면 선배들이 대부분 짜버리는 부정적인 결과가 나올지도 모를것 같습니다. 페어를 통해 배우는게 많기는 하겠지만 이제 막 ToyProblems 에 재미를 붙일 사람들인데 너무 목표를 크게 잡고 있는 것은 아닌지요... 아마도 제가 큰프로그램에 대해 잘 몰라서 이런 말을 하는 것 같습니다. 큰 프로그램에 대한 명확한 설명을 바랍니다. --[창섭]
큰 프로그램이라고 말은 해 봤자 선배님들이 풀면 4~5시간이면 풀어버릴 문제가 될꺼 같습니다. 휴대폰 메뉴 만들기나 PDA기능 만들기 등 이런 조그만 프로그램을 묶어놓는 프로그램을 하면서 OOP를 조금이나마 느껴보라는 차원에서 하는 것입니다. 물론 같이 페어를 하는 선배님들은 정말 기초적인 것만 알려주는 식이고요 그 팀을 이끌어 가서는 안되겠죠? ^^; -[상욱]
* ToyProblems 와같은 식이면 좋을것 같은데요. 1학년 텀프로젝트가 있는데 그것 하나만 가지고도 SP, OOP 등의 프로그래밍철학과, STL 등을 다루기에 좋을것 같습니다. ([http://zeropage.org/pds/200361434244/2003C++TrmPrjSpec.ppt spec]) SP 와 OOP 는.. 누가할지.. 맡게되면 고생을할수도 있겠군요. 아래 JuNe 선배님의 CSP 나.. Tuple Space (전에 P2P 관련 문서에서 본것같은 기억이..-_-a ) 등과는 약간 맞지 않을수도 있겠지만요. (그것은 다른 도메인의 문제와 다루는게 좋을듯합니다) - [임인택]
* 지나가다 잠시 말씀 드릴까 합니다. 아직 oop개념이나 프로그램 모듈화에 대해서 개념이 없는 분들에게 STL같은 것을 가르친다는 것은 약간 문제가 있지 않을까요? oop개념을 가르쳐도 구현 같이 base적인 경험이 없이 단지 가져다 쓰는것을 먼저 배우면 좋지 않을 것 같습니다. 1학년 분들 숙제 하는 것을 보니 모듈화 같은것을 가르쳐도 좋을 것 같은데. 많은 것을 가르치려고 하시는 것은 좋으나 능력에 적절하게 가르치는 것도 맞는 것 같군요. STL 같은 걸 가르치는 건 그 다음이 되었으면 좋겠구요.. 내부사정을 잘 모르니 틀리다 싶은 말이면 걍 흘려보내세요. 지우셔도 상관 없구요. ^^ - 00 나현철
* 네. 현철이형 그래서 제가 생각한게 일단 동적 배열의 확실한 이해와, 링크드 리스트를 구현해보게 한다음에, 이들 지식의 선행으로 STL을 가르치려 하려구 그랬거든요. 위 두가지만 확실히 이해할 수 있다면 STL의 기본적인 (vector나 list같은) 것은 가르쳐도 무방하다고 생각합니다. --[인수]
* 저는 STL 같은 것은 그냥 할수 있을 만큼 사용할줄만 알면 되다고 생각합니다. Library 가 제공하는 것은 우리에게 좀더 고차원적인 사고에 전념할수 있는 것이 겠지요. 배열의 길이에 신경쓰지 않는 것만으로, C++에서 얼마나 무한한 사고가 가능할까요? 학교 교제는 C++을 가르치는 것이 아니라, C에다 어떻게 충돌을 일으키지 않고 문법을 추가시켜 C++이 되었는가를 가르치기 때문에 이런 기회는 필요 할것 같습니다. 아마 궁금한 사람은 STL의 소스를 보겠지요. 사족으로 STL은 OOP보다 Generic Programming의 관점에서 구현되 었습니다. --NeoCoin
* 도큐먼트나 튜토리얼을 이용하는 방법을 알려주는 것도 괜찮은 것 같습니다. 새내기들에게 MSDN 에서 검색을 하는 것을 알려줬더니 단지 영어라는 이유로 겁부터 먹고 사용을 못하더군요. 어떠한 주제를 던져주고 이러한 것들을 스스로 찾아서 사용하는 방법을 알려주는 것도 스스로 공부를 해 나가는데 있어서 좋은 경험이 되지 않을까 합니다. -- [상욱]
오늘 밤에 가능하나요? 중대로 가도록 하죠. 길게 할 건 아니고 딱 한시간만. --JuNe
- 새싹교실/2011 . . . . 21 matches
내가 짠 코드를 직접 출력을 통해 확인하는 것은 분명 매력적인 일입니다. 그러나 처음 익힌 코딩 습관은 버리기 매우 어렵습니다. 많은 학생들이 처음 프로그래밍을 배우며 printf 함수를 사용하여 코드를 검증하는 습관을 들입니다. 그 때문에 상당수의 졸업할때까지 테스트보다는 직접 눈으로 확인하는 것을 선호합니다. 그런데 작성한 코드가 잘 돌아가는지 알기 위해 직접 눈으로 확인해야만 하는 것은 매우 많은 문제가 있습니다.(이것에 대해서 더 적자면 정말 길어질테니 일단 이 페이지엔 적지 않겠습니다.)
* 테스트는 [http://winapi.co.kr/clec/reference/assert.gif assert]함수를 통해 간단히 만들 수 있습니다.
* 위키를 더 유용하게 사용하기 위해 지켜야할 것들이 있습니다. 각 반 페이지를 만드실때 페이지 이름은 '''새싹교실/2011/반이름''' 으로 만들어주세요.
* 각 반 이름 아래에 날짜별로 하위페이지를 만드셔도 좋고 반 페이지에 제목으로 날짜를 분류하여 작성하셔도 좋습니다.
회고를 통해 매번 그날 했던 것을 돌아봄으로써 배운 것을 더 잘 기억할 수 있고 학생들이 피드백을 작성하기도 더 수월해집니다.
* 올해 새싹 교실 지원은 기본적으로 피드백 개수를 세어 지원합니다.
* 각 반 페이지에 매번 공부한 내용을 정리해주세요. 일정 기간 별로 가장 잘 정리한 반을 뽑아 지원합니다.
* 혹은 새싹 교실에서 진행한 프로젝트의 소스를 공개하는 것도 좋습니다.
* 새싹 교실을 진행하면서 영상으로 찍어 공유하는 것도 좋습니다.
* 이 외에도 여러분이 생각하실 수 있는 새롭고 재밌는 방법으로 새싹 교실의 내용을 공유해주세요.
* 손봉수 교수님 수업의 커리큘럼을 기반으로 작성되었습니다.
* 커리큘럼 가이드라인은 참고 및 예시용으로 사용하며, 평가와는 무관합니다.
프로그래밍 단계(code 작성->compile->link->generating .exe file)
constant/variable->variable: 논리회로와 연관시키면 은근히 편함
if-else
while, do-while, for: 서로 바꿔서 써보도록(피드백 필수)
dangle else problem
- 새싹교실/2011/무전취식/레벨7 . . . . 21 matches
Array 메모리상에 똑같은 형식의 변수들이 한개의 이름으로 모여있는것.
김준석 : 지난주부터 체육대회 준비를 했음. 경영대 체육대회 준비를함. 300명이야. 3반 반장 3명. 240만원 걷어서 통장 넣어놓음. 불안함. 체육대회 준비가 좀 힘들었음. 그리고 회비 걷는건 너무 힘듬. 그리고 토요일날 라인댄스 배우고 있음. 신남. 그리고 프로젝트 3개랑 발표가 1개 있었음. 3개는 무난하게 Mile Stone을 넘어갔다. 발표는 신난다. prezi라는 툴을 배웠음. 지난주도 신났다. 그리고 부처님 오신날 전날 인사동을 갓는데 대로를 다 치워놓고 동국대 사람들이랑 불교 연합에서 외국인들도 많이 나오고 행사를 하는걸 즐겁게 봄.
이소라 : 재수하는 친구를 만남. 12시에 만나서 점심을 먹으러 김밥 완전 맛난데 먹으러감'ㅅ' 그리고 청계천 걸어서 종각을 갔는데 케잌 가게가 완전 맛있는데서 딸기 스무디랑 케잌 완전 맛난거 먹음. 그러고 대학로를 감. 그리고 적녁을 먹어야 되서 돈부리를 먹음. 집에 그냥 가기 아쉬워서 카페에서 오렌지 에이드. 그리고 건대 축제 감. 갔는데 중앙대를 같이 온 친구를 한번도 못봤는데 건대 축제가서 봄.
그리고 나와서 일본어 과에 친구보러 주점감. 그래서 1:1로 술 한병 놓고 함. 근데 컴공 누가 와있다고 함. 그래서 1:1로 한병 놓고 먹음. ㅋㅋㅋ 그리고 나왔는데 성균관대 다니는 친구가 와서 얘기하다가 고등학교 선배를 만남. 그래서 또가서 먹음. 죽음 ㅠㅠ 그래서 오늘 아침에 밥을 못먹음.
이진영 : 일요일에 어버이날 이어서 엄마,아빠 산에 가신틈을 타서. 이때 언니랑 나가서 선물 사옴 엄마는 스카프 아빠는 세시봉 사드림. 샀는데 엄마 아빠가 밤 12시 넘어서 들어오셔서 5월 9일 드림 . 난 싼타였음. ㅋㅋㅋㅋ 그리고 월요일에 남자친구랑 멀티방에 갓는데 Wii로 권투게임함. 저는 필살기를 알고있었는데 남친한테 알려주니 계속짐 ㅠㅠ 그래서 완전 약올라서 다음번에 꼭 이길거임. 원숭이 캐릭터로 계속 이기고 원숭이춤춤 ㅋㅋㅋ 완전 때리고 싶음 ㅋㅋㅋ 석가탄신일에 학교에옴. 창설하러. 그래서 한 4시간동안 개조를 할려고 노력했는데 한시간만에 다른 모델로 바뀜 ㅠㅠ 그래서 학교 3시에 왔는데 10시에감 ㅋㅋㅋ 그래서 고딩 동창회도 못감 . 그리고 어제 건대 친구가 축제라고 오래서 갔는데 축제 구경 안시켜주고 밥먹고 칵테일 바를 감. 소라랑 같이 안다님 ㅋㅋ. 가위바위보해서 데낄라 준대서 이겼더니 감기약맛남 ㅠㅠ 그리고 애플 마티니를 시켰는데 완전 씀. 술이 체질이 아닌듯함. 그래서 집에 오는 전철에서 딥슬립 옆남자 어깨에 기대서 잠. 그리고 오늘 창설 실패함.
서원태 : 이해가 안됨. 앞으로 C공부를 자주해야할것 같다.
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 이걸 너무 늦게 올리게 되는군. 드디어 나오는 pointer 대마왕!! 이거이거 쓰는법이 정말 힘들게 하지요~ 난 컴퓨터가 아니라. 이건 너무 힘든 개념입니다. 요즘 너무 지루하게 가르치고 있는건지 아니면 시간대가 졸려운 시간인건지 모르겠습니다만 문제가 있는것 같아요. 졸리거든요. 이제 부터 아이스브레이킹 20% 복습 40% 진도 40% 시간이 될듯합니다. 한번 읽어보는것만으로 큰 힘이 되는 개념이라 생각하고 갈키고 있으니 후기 쓸때도 잘 부탁드립니다. 길게 써요 좀. - [김준석]
* 이제 포인터라는걸 배웠는데 너무 어렵습니다. 주위 친구들은(능력자들) 미리 배워놔서 잘 쓰고 있다는 말을 들으니 너무 부러워요ㅋ. 인터넷에 보니까 포인터배열,배열포인터라는게 있더군요 이게 뭔 소린지ㅋㅋㅋㅋ 다 자기하기 나름이지만 계속해서 난이도가 높아지는 C프로그래밍이 무서워지기 시작합니다ㅋㅋ C과제도 점점 어려워지는데 자기스스로 한게 반정도 쯤? 나머지는 인터넷,선배님 찬스ㅋㅋ 방학동안에 C공부를 엄청나게 해야할것 같아요. 기말고사도 1달을 앞두고 있는데 중간고사때처럼 망치면 안되니까 열심히 복습을 해야겠습니다 - [서원태]
* 포인터의 심화과정은 정말 길지. 그것의 기본 개념을 배웠다고 생각하면된다. 후기 먼저써준것 고맙다. 천릿길도 한걸음 부터라고 너가 하고있는 일이 하나하나 너에게 힘으로 돌아올꺼야. 그리고 인터넷을 찾고 선배들에게 물어보는것은 분명한 '검색'의 일종이다. 자주 찾아서 쓰다보면 너의 지식이 될꺼야. - [김준석]
* 지난 시간 복습을 하고! 드디어 그 포인터라는 것을 들어갔습니다..학기초에 소라가 포인터 포인터@.@ 라고할때 그 포인터가 이렇게 일 찍 다가올 줄은 몰랐네요..ㅋㅋㅋ ㅠㅠ오빠가 잘 설명 해주셔서 대충은 알 것같아요 ㅎㅎㅎㅎ 하지만 꽉 잡고 싶어용! 앞으로 3년은 편해진다고 하시기에......ㅎㅎㅠㅠ 이제 첨 시작 한거니까 겁먹지 않을 테여요!! ㅎ ㅔ헹~~!복습을 마니 해서 좋아요!! - [이진영]
* 우린 복습을 위주로 가르키지! 지식이란 좀 숙성되는데 시간이 걸리니까!!! 포인터를 가르치는건 매우 힘들지용 사람은 기본적으로 계산에 약해.. 그래서 연결되고 연결되고 연결되는 관계를 모르지용... 하지만! 계속 계속 포인터 써보다 보면 느는게 포인터 입니다! 이번 학기 말에는 MFC도 건들여보았으면 좋겠는데 말이지. -[김준석]
* 저도 포인터를 포기한 경험이 있어서 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ못해요.... 앞으로 오빠한테 잘 배울게용...하하 천천히 가르쳐주세용>_< 배열선언하고 배열이름엔 배열이 시작되는 주소값이 들어간다는 것도 배웠어요. 이제 점점 더 어려워지겠죠..흑흑 걱정이 앞서여어어어 이제 소라찬스따윜ㅋㅋㅋㅋ -[이소라]
- 새싹교실/2011/무전취식/레벨9 . . . . 21 matches
* Rand함수의 쓰임, seed값을 초기화시켜줘야 제대로된 rand가 나옵니다. 복습합시다.
if(A[i]>A[j]){
if(float_val == -1) break;
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 후기가 날아가서 갑자기 의욕이 팍... 앞으로는 저장하고 적어야겠습니다. 이런일이. 역대 Ice Breaking중 가장 길었는데!!! 이미 수업 진도는 다 나아가서.. 이제 좌우를 돌아볼차례입니다. 알고리즘도 배우고 함수 쓰임도 배우고 코딩도 손에 익히고. 이번 시간에는 진영이에게 코딩을 맞겼는데 생각보다(?) 정말 잘했습니다. 가르치고 싶은건 이제 생각한 내용을 코드로 바꾸는것입니다. 다음시간에는 그것에 대해 한번 생각해서 진도에 적용시켜봐야겠습니다. 그리고 자료구조를 한번 알려줘야겠어요. 숙제는 잘들 해가죠? - [김준석]
* 일등이다 야홍호오호오홍호오호옿 ice breaking이 저장되지않았다니... 슬픕니다ㅜ_ㅜ제꺼가 제일길었는데... 숙제 다시 풀어보다가 생각나서 후기쓰려고 들어왔는데 일등이네요 하핫 오늘은 축젠데 노는건 내일부터 해야겠네요ㅠ_ㅠ 지지난 시간 복습을 했습니다. 스택구조에대해서 다시한번 배웠고, 파일입출력을 배웠습니당(사실 복습). 파일은 구조체로 작성되어있는데, 파일이 있는 주소와 파일을 어디까지 읽어왔는지를 기억하는 변수가 포함되어 있다고 배웠어요. 그래서 while문에서 fgets로 읽어온 곳이 null이면 break하라는 if문을 4번거쳐서(파일 내용이 4줄일경우) printf가 4번실행된다는 것을 알았어용.(맞낰ㅋㅋㅋ) 그리고 숙제로 나온 문제를 풀어주셨는데 2번이 어려웠었는데 수..수학때문이었던 것 같네용... 아직까지 dev의 공식을 모르겠어요. 나름 수학열심히했었는데.. 다시해야하나봐요ㅠ_ㅠ 수학이 모든 학문과 연관되어있다니..싫어도 꼭 제대로 공부해야할 것 같습니다ㅜ_ㅜ(그래도 선대는싫어요.)c공부도열씨미하고 수학공부도열씨미할게용 하하하하 후기 길다!! 숙제 도와주셔서 감사합니당♥히히힛 - [이소라]
* 오옷~~ 소라가 길게 썻어 ㅋㅋ 우와우와.. 정말 레벨 9까지의 후기중에 가장 보람찬 후기군요. Ice Breaking저장 못해서 미안... 흑흑. 오늘은 축제이지만 사실 우리학교는 별로 놓게 없답니다 슬프지만 이게 현실이에요..ㅠ.ㅠ 맨날 술먹고 스타부르고. 정작 학생들이 놀자리가 없다니 이게 뭔가요 =3=!!! 이번 레벨9에서 배운내용에 대해 자세하게 남겨줘서 너무 기쁩니다. 정말. 정말 기쁨. 다음시간에도 파일 입출력을 해보고. 돌아가며 실습에 들어가봐야겠습니다. 수학. 우와 어렵죠. 소라도 수학이 약하지만 언젠가 수학이 필요한날이 올때가 있을거란다. 정말로. 정말로. - [김준석]
* 이번 수업때 배운건 셀렉션소트와 버블소트.... 둘을 모두 손봉수교수님 강의자료를 보면서 공부했는데 숙제를 할때 셀렉션소트를 해야 하는걸 버블소트로 써버려서 다시 하고 있어요 ㅜㅜ 다시 하는 김에 이번 수업에 배운 셀렉션소트에 대해서 또 한번 공부를 하게되어 참 유익했습니다.(과제에 관한 힌트때문만은 아니에요 ㅋㅋㅋ) 오름차순이나 내림차순으로 정열하게 할 수 있는 소트들중 셀렉션소트와 버블소트와의 차이점을 알게 되었고(이중 첫번째 것과 비교&교환하고 이후의 것들도 두번째 것과 교환하는 셀렉션소트에 대한 이해부족으로 과제에 애를 많이 먹었습니다ㅋㅋ) 과제도 이제 점점 어려워지네요ㅋㅋ 복습이 정말정말 중요하다는 것을 계속해서 깨닫고 있습니다. 기말고사 준비를 해야겠어요ㅋㅋㅋ - [서원태]
* WIKI 업로드
- 새싹교실/2011/씨언어발전/2회차 . . . . 21 matches
새싹강사 오리엔테이션에서 얘기했던 방법대로 입출력을 설명할수도 있겠지만 우선 강사도 잘 모르고..
외우라는 식으로 사용법을 배우고 나중에 좀더 자세히 알 수 있도록 하려고 생각중입니다.
자봉단 회의관계로 불참
if(a>=90)printf("넌 A다.\n");
else if(90>a && a>=80)printf("넌 B다.\n");
else if(80>a && a>=70)printf("넌 C다.\n");
else if(70>a)printf("넌 F다.\n");
* 요런걸 배웠음다 ㅎㅎㅎㅎ 범위를 정할때 90>a>=80 이런식으로 하면 에러가 나더라구요... ㅎㅎㅎㅎ
* 한줄로 프린트하는...... 그냥 띄어쓰기로 하면된다는 ㅋㅋㅋㅋㅋ
if(a>b)big=a;
else big=b;
if(big>c);
else big=c;
if(a>b)small=b;
else small=a;
if(small>c)small=c;
오늘 처음으로 드디어 새싹교실을 했다!!
- 이영호/My라이브러리 . . . . 21 matches
새로운 용도의 라이브러리 제작
// 성공시 0, 실패시 -1 반환. (socket에서 에러가 났는지 bind에서 에러가 났는지 구분이 힘들겠지만, socket이 할당 되지 않는 경우는 적으므로 bind 에러임.)
// Bind 에러에서도 서버를 재가동 할 경우 resueaddr 로 flag를 설정했기 때문에, Port 에러 뿐임. 이미 Port를 사용할 때만 에러가 남.
// send 함수 시 인자 4개가 필요하기 때문에 2개로 줄인 함수다. 단, ascii문자만 전달 된다. recv 함수는 만들 필요가 없다.
int send_msg(int sockfd, const *msg);
#if !defined(TURE)
#endif
#if !defined(FALSE)
#endif
if(*sockfd == -1)
if(bind(*sockfd, (struct sockaddr *)ina, sizeof(struct sockaddr)) == -1)
if(*sockfd == -1)
if(bind(*sockfd, (struct sockaddr *)ina, sizeof(struct sockaddr)) == -1)
if(setsockopt(*sockfd, SOL_SOCKET, SO_REUSEADDR, &option, sizeof(option)) == -1)
int send_msg(int sockfd, const *msg)
send(sockfd, msg, strlen(msg), 0);
- 전시회 . . . . 21 matches
넉넉히 1시 이후에 가는 것으로 생각하고 있습니다. --[Leonardong]
오늘 전기전자공학과학회의 전시회를 보았는데 재밌어보인다. 우리도 그런 거하면 괜찮을 듯. 돈은 별로 안들어보이는데.,우리가 화드웨어가 필요한 것도 아니고..--[강희경]
수준 높은 작품들이 많습니다. 특히 제로페이져인 김정욱형의 작품이 기대되네요. --[강희경]
* 음료수를 공짜로 나눠준다.
* 출석 프로그램의 경우 이름순 정렬이 되지 않는다.
* 세균전의 경우 더 이상 둘 곳이 없을 때 게임이 끝나지 않는다.
* 3D지형 프로그램의 경우 지형의 끝에 도달할 경우에도 계속 전진이 가능하다.(좌표의 증가)
* 이퀄라이져 프로그램의 경우 마이크를 끈 상태에도 이퀄라이져가 움직인다.
* 화상 채팅 프로그램의 접속 불가.
* 설명해주는 오퍼레이터가 프로그램을 잘 모른다. 프로그램 개발자가 직접 오면 좋지만, 그렇지 못한 경우 좀더 상세한 설명이 있으면 좋았을 듯 하다.
* 3D지형 프로그램의 효과를 볼 수 있게 비교했으면 좋았을텐데...
이름 자체가 fast인 만큼. 다른 프로그램보다 빠르다는 것을 비교해서 보여주면 좋겠죠 --[강희경]
프로그램의 성능을 볼수가 없었죠 3.9기가 씨피유에 지포스2 에서 그 정도 화면이 끊긴다면 그게 더 이상한 ~_~ --[김홍선]
=== 중앙대 컴퓨터공학과 프로그래밍 전시설명회 ===
* 학교가 너무 작았다. 기대와 다르게 별로 이쁜 여자가 없었다. - [이승한]
- 제로페이지는 . . . . 21 matches
'''제로페이지는 ... 이다.'''
* 제로페이지를 설명해보자. 제로페이지(ZeroPage)페이지에 기록된 소개글은 소수의 머리에서 나온것일 뿐이다. 공통의 합의를 도출해 보고 싶다. 도대체 제로페이지의 정체는 무엇인가.
* 제로페이지는.. 학회..를 가장한.. 친목모임?? 은 아닌것 같구요 혼자서 하면 의지가 무너질것 같은 일들을 같이 해줄수 있는곳... --선호
* ["제로페이지는"] 중앙대학교 컴퓨터공학과의 정학회가 되면 좋겠고, 학생들간 컴퓨터공학에 관련한 학술적 정보를 효율적인 동시에 자유롭게 교류할 수 있는 시스템이 되면 좋겠다. --류상민
* ''현재로써의 제로페이지는(개인적 바램을 제외하고 말한다면) 중앙대학교 컴퓨터공학과 내의 전공 관련 학술모임으로 과내 활동단체 중 하나이다.'' 맞을까요? ^^;; 제로페이지의 역할보다는 무엇인지라는 것에 입각했습니다.--창섭
* ["제로페이지는"] 우선 중대 컴공이라는 이름하에 지원을 받으며 지도 교수가 먼저 생겨야 한다. 좀 주제와는 떨어진 얘기 였지만 나로선 이게 우선시 되어야 할것 같다. 이름은 있되. 실체가 없는 듯 하다란 느낌이다. --["erunc0"]
* 제로페이지는 중대 컴공이라는 이름하에 지원을 받으며 지도 교수님(이찬근 교수님)이 함께 하고 계십니다. -[김태진]
* ["제로페이지는"] ["제로페이지의장점"] 때문에 제로페이지이다. 그 장점을 살려나가야 한다.
* ["제로페이지는"] 같이 공부하는 사람들의 모임이다. 서로 가르쳐주고 배우면서 학과 공부로 모자란 지식을 얻을 수 있는 문화가 전해 내려온다. --[Leonardong]
* [제로페이지는] 자신의 장점을 발산하고 타인의 장점을 흡수하는 유기적인 개체들의 집합이다. - [임인택]
["제로페이지분류"], ["토론분류"]
- 큰수찾아저장하기/허아영 . . . . 21 matches
행과 열이 같이 for속에 들어가게 되면 값이 틀려져서 따로 처리하다보니 소스가 길어졌다.
물론 이런 생각도 해 보았다. matrix를 temp1,2 matrix를 만들어서 행과 열을 따로 계산한다..
* 나름대로 sort에 대해 여러가지 생각을 하게 된 계기가 된 것 같다.
연습장에 연필로 끄적끄적거려 보기도 하고.. ^^
추가: 시간이 많이 걸린 이유 - 역시나 배열을 함수화 하는 것에서, 새로운 방법이 없을까 궁리하다가,
또 더 좀더 효율적인 프로그램을 만들기 위해선 어떻게 해야할까 ? 그리고 C언어의 장점을 살리는 방법이 뭘까?
하고 생각해 봤다. 그래서 생각하면서 프로그래밍 한 것, 또 자초해서 해 버린 소트 때문에 시간이 많이 걸린 것 같다.
if(temp_matrix[i][j] > temp_matrix[i][j+1]){
if(temp_matrix[j][i] > temp_matrix[j+1][i]){
if(temp_matrix[MATRIX_SIZE-1][i] > temp_matrix[MATRIX_SIZE-1][i+1]){
if(temp_matrix[i][MATRIX_SIZE-1] > temp_matrix[i+1][MATRIX_SIZE-1]){
if(j == MATRIX_SIZE)
각 기능별로 함수로 나누는건 좋은 생각인데 말야..^^ 그게 오히려 문제가 된것 같은 느낌이..ㅎㅎ
다해서 한페이지 안에 들어갈 정도로 간단하다면 그냥 짜넣어도 문제는 없을것 같아..^^ -[조현태]
일부러 소트 했어 ~ 쓰고 싶더라고 ㅋㅋ , 나름대로 다 하고나서 희열을 느꼈는데..^^;; --아영
으음... 이거 가로먼저 소트하는거랑 세로먼저 소트하는거랑 답이 다르게 나올텐데..ㅎㅎ - [조현태]
소트한건 쓰레기배열이니 문제없는거같은데 -_-;; 원래배열은 고대로 있잖아 --[정수민]
분명히 열심히 읽는데 말이야..ㅎㅎㅎ 문제는 내 머리의 메모리가 작아서 몇몇 부분은 기억을 잘 못한다고...ㅎㅎㅎ 그러니 다 적힌내용으로 삽질하고 있어도 너그러운 아량으로 이해해주시길..ㅎㅎㅎ - [조현태]
- 2dInDirect3d/Chapter1 . . . . 20 matches
이것을 만드는 이유는 간단하다. IDirect3DDevice8 객체를 만들기 위해서는 "꼭" 필요하기 때문에 만든다. 이 객체에서는 실질적인 작업보다는 초기화를 도와주는 역할을 주로 한다.
그럼 실제로 만들어보자. 만들때에는 다음 함수가 필요하다.
1. [IN] 유일한 인자인 SDKVersion에는 SDK의 버전을 넣어준다. 8.0 이렇게 집어넣는 것이 아니라 지정되어있는 매크로가 있다. 사용하는 방법은 단 한가지뿐이다.
if( pd3d )
어댑터에는 모두 번호가 붙어있다. 첫번째 어댑터에는 0, 두번째 어댑터에는 1, 이런 식이다. 0은 기본으로 있기 때문에 매크로로도 만들어져 있다. '''D3DADAPTER_DEFAULT''' 매크로이다. 0번 어댑터를 기본 어댑터라고도 한다.
HRESULT GetAdapterIdentifier {
D3DADAPTER_IDENTIFIER8* pIdentifier
VendorID, DeviceID, SubSysID, Revision : 칩셋마다 틀려요
DeviceIdentifier : 드라이버나 어댑터를 위한 GUID(?)
만들 수 있는 디바이스의 타입은 세 가지가 있다. (2번째 인자의 값으로 사용한다.)
2. D3DDEVTYPE_REF : HAL 보다 느리지만 소프트웨어적으로 지원
3. D3DDEVTYPE_SW : 하드웨어 가속을 전혀 사용하지 않고 소프트웨어적으로 에뮬레이션
1. 32비트 포맷으로는 D3DFMT_X8R8G8B8, D3DFMT_A8R8G8B8 등이 있다.
2. 24비트 포맷으로는 D3DFMT_R8G8B8 이 있다.
3. 16비트 포맷으로는 D3DFMT_R5G6B5, D3DFMT_X1R5G5B5, D3DFMT_A1R5G5B5, D3DFMT_A4R4G4B4 등이 있다.
Width : 가로폭
Height : 세로폭
- 3N+1Problem/황재선 . . . . 20 matches
if (maxCycle < temp)
if (aNum == 1)
if (aNum % 2)
else
cout << aMaxCycle << endl;
if num % 2:
else:
if str(num) in self.cycleDic:
if length > maxLength:
if __name__ == '__main__':
if num in cycleDic:
if length > maxLength:
if __name__ == '__main__':
입력은 0과 1000000 사이의 값을 갖는 한 쌍의 정수이다. 1과 999999를 입력한 경우 몇 초 이내에 답이 나올까. Python으로 4초 이내를 목표로 구현했다. 하지만 만족할 만한 결과가 나오지 않았다. 안타깝게도 더이상 최적화할 묘안이 떠오르지 않는다 -- 재선
http://bioinfo.sarang.net/wiki/AlgorithmQuiz_2f3Plus1 에서 yong27님의 소스코드를 보았다. 소스가 정말 깔끔했다. 실행속도가 빨라서 그 원인을 분석해가며 지난번 작성했던 코드를 수정했다. 나의 목적은 0.001초라도 빠르게 결과를 출력하는 것이었다. 실행시간을 최소화하기위해 클래스마저 없앴다. 특히 두 부분을 수정하니 실행시간이 현저히 줄었다. 하나는 클래스 멤버변수를 제거하고 지역변수화한 경우인데 왜 그런지 모르겠다. 둘째는 사전형 타입인 cycleDic 에서 key를 문자열에서 숫자로 바꾼 부분이었다. 지난번 구현시 무엇때문에 수치형을 문자열로 변환하여 key로 만들었는지 모르겠다. -- 재선
- AcceleratedC++/Chapter0 . . . . 20 matches
std::cout << "Hello, world!" << std::endl;
main 함수의 리턴형은 ISO/ANSI C++ 표준에서 int로 정하고 있다. 리턴값은 프로그램이 아무런 에러 없이 종료되는 경우에는 0을 리턴하도록 되어 있고, 에러가 발생해서 종료한 경우에는 0 이외의 값을 리턴하도록 되어있다. 이 값은 OS로 돌려지는 값이기는 하지만 OS에서 이것에 따라 특별히 처리하는 것은 없기 때문에 일반적인 경우에는 이 값은 아무런 의미가 없다. 이 값을 이용할수 있는 방법으로는 exec... 함수를 이용하여 프로그램을 실행해주고 받아오는 방법 등이 있다.
이런 문장이 들어있는 C++ 프로그램을 컴파일 해 보면 에러가 날 것 같지만 에러가 나지 않는다. 왜냐하면 둘 다 모두 계산 가능한 식이기 때문이다. 계산 가능한 식이라면 최종 결과가 존재해야 한다. 첫번째 문장은 계산이 끝나있는 식이고 최종 결과가 100 이다. 두번째 문장은 한번만 계산하면 계산이 끝나고 최종 결과는 4 이다. 그렇다면 다음과 같은 문장은 계산 가능한 식이 맞는가?
첫번째 문장을 계산하면 a라는 변수에 10을 대입하면 되고 결국 남는것은 a밖에 없으므로 a의 값이 최종 결과가 된다. 두번째 문장을 계산하면 std::cout과 "Hello World!!"를 왼쪽 쉬프트 연산을 하고 나온 결과가 최종 결과가 된다. 실재로 연산 결과가 std::cout 이고 이것이 최종 결과가 된다. 여기서 왼쪽 쉬프트 연산이 과연 std::cout과 "Hello World!!" 사이에서 가능한 것인가 라는 의문을 갖게 될수도 있겠지만 C++에는 연산자 재정의(operator overloading) 라는 것이 있기 때문에 이런것을 충분히 가능하게 만들수 있다고만 알고 넘어가기 바란다. 여기서 두번째 문장을 자세히 알고 넘어갈 필요가 있다. 두번째 문장도 앞에서 설명했듯이 계산 가능한 식이고, 결국 실행되면 계산이 수행되지만 그것과 더불어 일어나는 일이 한가지 더 있는데, 바로 표준 출력으로 "Hello World!!" 가 출력된다는 것이다. 이렇게 계산되어지는 과정에서 계산 결과와 더불어 나타나는 것을 side effect라고 한다. 첫번째 문장과 같은 경우에는 side effect가 없다. 다음과 같은 두 문장이 있다고 하자.
여기서 첫번째 문장은 b라는 변수의 값과 c라는 변수의 값을 더해서 a라는 변수에 저장하는 식으로 최종 결과가 a라는 변수에 저장되므로 이러한 문장은 최종 결과만을 이용하기 위한 문장이고, 두번째 문장은 std::cout과 "Hi! C++"을 왼쪽 쉬프트 연산을 하여 side effect로 "Hi! C++"을 표준 출력에 출력하고 최종 결과는 특별히 따로 저장하지 않으므로 최종 결과에는 관심이 없고, side effect만을 이용하기 위한 문장이다. 물론 예를 들지는 않았지만 최종 결과도 이용하고 side effect도 이용하기 위한 문장도 있다.
- BabyStepsSafely . . . . 20 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.
if(maxValue >= 2) // the only valid case
if(f[i])
if(f[i]) // if prime
else
return new int[0]; return null array if bad input.
public class TestGeneratePrimes extends TestCase
if(isPrime(i))
else
if(isPrime(i))
else
if(n < 2 ) return false;
if(primes.length == 0) return false;
if(value == primes[i]) return true;
Our first activity is to refactor the tests. [We might need some justification정당화 for refactoring the tests first, I was thinking that it should tie동여매다 into writing the tests first] The array method is being removed so all the test cases for this method need to be removed as well. Looking at Listing2. "Class TestsGeneratePrimes," it appears that the only difference in the suite of tests is that one tests a List of Integers and the other tests an array of ints. For example, testListPrime and testPrime test the same thing, the only difference is that testListPrime expects a List of Integer objects and testPrime expects and array of int variables. Therefore, we can remove the tests that use the array method and not worry that they are testing something that is different than the List tests.
- C++스터디_2005여름/도서관리프로그램/조현태 . . . . 20 matches
(거기다 이페이지 [LittleAOI]를 링크하고 있는걸로 봐서 관계있는듯..해서..ㅎ 난몰라~ >ㅁ<;;)
이로써 배열을 사용해도 빈공간이 생겨 자료를 땡긴다거나 하는 고생은 하지 않아도 된다는..(어이 그렇다고 배열로 짜냐;;)
나름대로 자료구조를 분리 시켰다. (그래도 C++답지는 않은듯..느낌탓인가..)
if (1==select)
else if (2==select || 3==select)
if ('y'==y_n || 'Y'==y_n )
cout << output_data[select] << "하실 책을 무엇으로 검색하시겠습니까? (1.이름 2.ISBN)\n>>";
if (-1==where)
if ('y'==y_n || 'Y'==y_n )
if (-1==datas->data_process(where, (select+1)%2))
else
if (target_a[i]!=target_b[i])
if (target_a[i]!=target_b[i])
if (1==select_menu)
else
if (0==str_cmp(temp_target,target))
if (state_number==*datas[3][data_number])
[LittleAOI] [C++스터디_2005여름/도서관리프로그램]
- C++스터디_2005여름/학점계산프로그램/정수민 . . . . 20 matches
나름대로 열시미한 =ㅅ=
#ifndef GRADE_H_
#endif
if (compare-students[i].average < temp &&
if (compare-students[i].average == temp) {
if (good_student_number>num)
if (students[i].average<1.5)
#ifndef STUDENT_H_
#endif
if (str[0]=='F')
else
if (str[1]=='+'){
cout << "학번 : " << school_number << " 평점 : " << average << endl;
if (str1[1]=='+'){
cout<<average1<<endl;
cout<<(int)str1[0]<<endl<<(int)str1[1]<<endl<<(int)str1[2];
모르긴 몰라도 이정도면 잘한고 같운데..ㅎ 숫자를 앞에 상수로 선언하면 더욱더 좋겠지만...ㅎ 구래두 잘해떵~>ㅁ<:;
- HelpOnProcessingInstructions . . . . 20 matches
== 프로세싱 인스트럭션 (PI) ==
모니위키 페이지를 처리할 때에 프로세싱 인스트럭션 (PI)에 의해 그 기능이 제어될 수 있습니다. 프로세싱 인스트럭션은 페이지의 맨 상단에 위치하며, "{{{#}}}" 문자로 시작하는 키워드(대소문자 구분없음)로 구성되며 인자가 선택적으로 붙을 수 있습니다. {{{##}}} 두개가 시작되는 줄은 주석줄로 처리됩니다.
지원되는 여러가지 프로세싱 인스트럭션 (PIs):
* {{{#format}}} ''format-지정자'': 페이지의 포맷을 지정합니다. {{{#!}}}로 시작되는 경우는 공백 없이 바로 포맷-지정자를 씁니다.
* <!> vim 이나 기타 여러가지 포맷 지정자는 `plugin/processor` 아래의 지원 가능한 모든 프로세서에 대해서 가능합니다.
* {{{#redirect}}} ''페이지이름'': 다른 페이지로 이동 (MeatBall:PageRedirect''''''참조)
모든 PI는 페이지의 맨 상단에 위치해야 합니다. 특별히 {{{#redirect}}}는 가장 맨 윗줄에 위치해야 합니다. 주석임을 나타내는 {{{##}}}만은 페이지 어느곳에나 쓸 수 있습니다만, 중간에 쓰는 경우에는 `wiki` 포매팅 문서일 경우에만 {{{##}}}가 주석으로 인식됩니다.
* {{{#!}}}''프로세서-이름'': {{{#format}}} ''formatter''와 같다. 예) {{{#!vim}}}
* {{{#title}}} ''페이지 제목'': 좀 더 장황하고 설명적인 페이지 제목으로 바꿔준다.
* {{{#action}}} ''action name'': 페이지에 대한 기본 액션을 ''EditText'' 이외의 다른 것으로 바꿔준다.
* {{{#redirect}}} ''url'' : 페이지를 보게되면 `url`이 가리키는 곳으로 이동한다. `url`은 페이지 이름이 될 수도 있고, 인터위키, url 등등이 될 수 있다.
* {{{#filter}}} ''filter1'' | ''filter2'': apply MoniWikiFilters supported by the 모니위키 '''1.1.0'''부터
- HelpOnUserPreferences . . . . 20 matches
User``Preferences에서 설정하실 수 있는 것으로는 다음과 같은 것이 있습니다.:
* '''[[GetText(Name)]]''': 사용자의 실제 이름 혹은 별명. WikiName 형식으로 만들면 편리합니다.
* OpenID를 지원하는 경우는 OpenID를 쓰실 수 있습니다.
* 웹상의 비번은 쉽게 노출될 가능성이 많으므로 가능한 노출되어도 큰 문제가 되지 않을 비밀번호를 사용하시기 바랍니다.
* '''[[GetText(Password repeat)]]''': 초기 사용자 등록시에 나타납니다. 바로 위에서 입력했던 비밀번호를 확인하는 단계로, 조금 전에 넣어주었던 비밀번호를 그대로 집어넣어 주시면 됩니다.
* '''[[GetText(Email)]]''': 자주 쓸 이메일 주소. 이메일 주소를 넣어주면 원하는 위키페이지에 대하여 그 변경점을 구독신청하거나 취소하실 수 있습니다. 비밀번호를 잊으셨을 경우에도 이 이메일 주소를 사용해 새로운 비밀번호를 등록하실 수 있습니다.
* 이메일 주소는 반드시 고유해야 하며, ACL 설정에 따라서는 이메일 주소를 반드시 필요로 하는 경우도 있습니다.
* '''[[GetText(User CSS URL)]]''': 자신이 원하는 CSS로 변경하고 싶을 경우에 사용합니다.
* '''[[GetText(Your time is)]]''': 원하는 시간대를 설정하면 자신이 원하는 시간대로 시간이 표시됩니다.
* '''[[GetText(Preferred language)]]''': 기본 언어 바꾸기 ( <!> 모니위키에서 미지원) 기본 값은 브라우져 세팅에서 가져오며, 이 설정을 바꾸면 위키위키의 여러 메시지가 언어 설정에 맞게 보여집니다. 이 설정을 바꾸면 메일로 날아오는 알림 메일의 언어도 언어설정에 맞게끔 날아오게 됩니다.
* '''[[GetText(Subscribed wiki pages (one regex per line))]]''': 모든 페이지의 변경알림을 받아보고 싶은 경우에 '''`.*`''' 를 집어넣으시면 됩니다. (위키위키가 많은 변경이 있는 경우 권장하지 않습니다.) 각 페이지를 보고싶은 경우에는 각각의 페이지 이름을 줄 단위로 넣으시면 됩니다. 정규식에 익숙하신 사용자의 경우에 정규식을 사용하실 수도 있습니다. 설정에 따라서 상단의 아이콘 툴바에 [[Icon(email)]]이 나타날 수 있으며, 이메일 아이콘을 누르면 해당 페이지를 구독하는 폼이 뜨게 됩니다.
- LIB_2 . . . . 20 matches
씨에서는 interrupt란 예약어로 함수를 인터럽트 콜이 가능한 함수를 만들 수 있다.[[BR]]
이럴 경우 컴파일을 해 보면 펑션의 호출이 RET가 아닌 IRET로 끝나게 된다.[[BR]]
그럴 경우 IRET 로 끝날 경우 [CS]:[IP] FLAGS를 스택에서 PUSH하게 된다.[[BR]]
PS RET로 끝날 경우 [CS]:[IP]만 PUSH하게 된다.[[BR]]
for ( int i = 0 ; i < suspend_tcb_ptr + 1; i++ ){
pSuspend_heap[i]->delay--;
if ( High_Task->priority < pSuspend_heap[i]->priority && pSuspend_heap[i]->delay < 0 ) {
pSuspend_heap[i]->delay = 0;
LIB_resume_task(pSuspend_heap[i]->priority);
인터럽트 서비스 루틴을 초기화 해주는 함수로 [[BR]]
부분을 위의 LIB_ISR로 바꿔준다.
이 프로그램이 복귀 가능하게 만들 경우 TSR을 이용한다..근데 지금은 필요 없는듯...
High_Task 로 지정된 태스크일 것이다. 그 태스크의 스택 위치를 찾아 스택 포인트를 바꿔준다.
- LearningGuideToDesignPatterns . . . . 20 matches
DesignPatterns로 Pattern 스터디를 처음 시작할때 보면, 23개의 Pattern들을 navigate 할 방향을 결정할만한 뚜렷한 기준이 없음을 알 수 있다. 이 책의 Pattern들은 Creational, Structural, Behavioral 분류로 나누어져 있다. 이러한 분류들은 각각 다른 성질들의 Pattern들을 빨리 찾는데 도움을 주긴 하지만, 패턴을 공부할때 그 공부 순서에 대해서는 구체적인 도움을 주지 못한다.
Pattern들은 각각 독립적으로 쓰이는 경우는 흔치 않다. 예를 들면, IteratorPattern은 종종 CompositePattern 과 같이 쓰이고, ObserverPattern과 MediatorPattern들은 전통적인 결합관계를 형성하며, SingletonPattern은 AbstractFactoryPattern와 같이 쓰인다. Pattern들로 디자인과 프로그래밍을 시작하려고 할때에, 패턴을 사용하는데 있어서 실제적인 기술은 어떻게 각 패턴들을 조합해야 할 것인가에 대해 아는 것임을 발견하게 될 것이다.
여러해가 지난 지금, DPSG는 23주 기간의 pattern들을 공부하는 스터디 그룹들을 가져왔다. 각각의 그룹들은 스터디 그룹을 위한 navigation 에 대해 실험하고, 토론하고, 수정했다. 여기서 제안된 navigation은 매 새로운 스터디 그룹들에게 이용된다. 여기서 제안된 navigation은 Pattern 초심자들에게 더 지혜롭게 하나의 패턴에서 다른 패턴으로 이동하게끔 도와줄 것이며, 효율적으로 23개의 Pattern들을 터득하는데 도움을 줄 것이다. 물론 이 navigation은 계속 개선해 나갈 것이다. 그리고 당신이 제안하는 개선책 또한 환영한다.
FactoryMethodPattern 로 시작하라. 이 패턴은 다른 패턴들에 전반적으로 사용된다.
StrategyPattern 또한 책 전반에 걸쳐 빈번하게 이용된다. 이 패턴에 대해 일찍 알아둠으로써, 다른 패턴을 이해하는데 도움을 줄 것이다.
IteratorPattern 을 공부함으로, CompositePattern 에 대한 이해도를 높여줄 것이다.
AbstractFactoryPattern은 두번째로 쉬운 creational Pattern이다. 이 패턴은 또한 FactoryMethodPattern를 보강하는데 도움을 준다.
Proxy 가 어떻게 object에 대한 access를 control 하는지 공부하라. 이 패턴은 뒤의 AdapterPattern을 직접적으로 이끌어낸다.
최종적으로, 학습자는 어떻게 BridgePattern이 AdapterPattern 과 ProxyPattern 과 다른지 공부하게 된다.
ObserverPattern 과 Model-View-Controller (MVC) Design 을 이해하기 위한 준비단계로 MediatorPattern을 공부한다.
object의 행동 변화에 대한 또 다른 방법으로 StatePattern 을 공부할 수 있을 것이다.
가장 마지막으로 읽을 Pattern 은 FacadePattern 이다. 이 Pattern은 InterpreterPattern 의 예제코드와 그 주제가 비슷하므로, InterpreterPattern 다음에 이어지는 것이 적절하다.
- MoinMoinTodo . . . . 20 matches
This is a list of things that are to be implemented. If you miss a feature, have a neat idea or any other suggestion, please put it on MoinMoinIdeas.
* Macro that lists all users that have an email address; a click on the user name sends the re-login URL to that email (and not more than once a day).
* Send a timestamp with the EditPage link, and then compare to the current timestamp; warn the user if page was edited since displaying.
* Now that we can identify certain authors (those who have set a user profile), we can avoid to create a backup copy if one author makes several changes; we have to remember who made the last save of a page, though.
* Implement the update script (copying new images etc.) described elsewhere on this page or MoinMoinIdeas.
* By default, enable an as-if mode that shows what needs to be fixed.
* Replace SystemPages by using the normal "save page" code, thus creating a backup copy of the page that was in the system. Only replace when diff shows the page needs updating.
* Send a regular "changes" mail? (checkbox, plus frequency setting hourly/daily/weekly/etc.)
* On request, send email containing an URL to send the cookie
* configurable fonts, font sizes etc. (copy master CSS file to a user one, and send that)
* Remember when someone starts to edit a page, and warn when someone else opens the same page for editing
* Diffs:
* Lynx-friendliness (keep >>> === <<< ?)
* diff -y gives side by side comparisons
* Script or macro to allow the creation of new wikis ==> WikiFarm
* On request, send email containing an URL to send the cookie (i.e. login from a click into the email)
* Checkbox: Send daily "changes" mail?
- ObjectWorld . . . . 20 matches
2002 년 6월 8일날 SoftwareArchitecture 에 대한 세미나가 ObjectWorld 주체로 열렸습니다.
Http Unit 에 대해선 좀 회의적인 투로 설명을 하신것 같고, (이정도까지 테스트 할까..에 가까운) ["ExtremeProgramming"] 에서의 TDD 스타일은 따로 취급되었다라는 생각이 들었다는. (XP에서의 테스트를 먼저 작성하라는 이야기에 대해서 그냥 TP를 읽는 수준으로만 넘어간것 보면. 코딩 완료이후 테스트를 기본이라 생각하고 설명하셨다 생각됨.)
두번째 Session 에서는 세분이 나오셨습니다. 아키텍쳐란 무엇인가에 대해 주로 case-study 의 접근으로 설명하셨는데, 그리 명확하지 않군요. (Platform? Middleware? API? Framework? Application Server? 어떤 걸 이야기하시려는것인지 한번쯤 명확하게 결론을 내려주셨었더라면 더 좋았을 것 같은데 하는 아쉬움.) 아키텍쳐를 적용하는 개발자/인지하는 개발자/인지하지 못한 개발자로 분류하셔서 설명하셨는데, 저의 경우는 다음으로 바꾸어서 생각하니까 좀 더 이해하기가 쉬웠더라는. '자신이 작업하는 플랫폼의 특성을 적극적으로 사용하는 개발자/플랫폼을 이해하는 개발자/이해하지 못한 개발자' 아직까지도 Architecture 와 그밖에 다른 것들과 혼동이 가긴 하네요. 일단 잠정적으로 생각해두는 분류는 이렇게 생각하고 있지만. 이렇게만 정의하기엔 너무 단순하죠. 해당 자료집에서의 Architecture 에 대한 정의를 좀 더 자세히 들여다봐야 할듯.
* Middleware, Application Server - Architecture 를 Instance 화 시킨 실질적 제품들. 전체 시스템 내에서의 역할에 대한 설명으로서의 접근.
세번째 Session 에서는 지난번 세미나 마지막 주자분(신동민씨였던가요.. 성함이 가물가물;)이 Java 버전업에 대한 Architecture 적 관점에서의 접근에 대한 내용을 발표하셨습니다. Java 가 결국은 JVM 이란 기존 플랫폼에 하나의 Layer를 올린것으로서 그로 인한 장점들에 대해 설명하셨는데, 개인적으론 'Java 가 OS에서 밀린 이상 OS를 넘어서려니 어쩔수 없었던 선택이였다' 라고 생각하는 관계로. -_-. 하지만, Layer 나 Reflection 등의 Architecture Pattern 의 선택에 따른 Trade off 에 대해서 설명하신 것과, 디자인을 중시하고 추후 LazyOptimization 을 추구한 하나의 사례로서 설명하신건 개인적으론 좋았습니다.
저번 세미나때도 약간 그런느낌이 들긴 했지만, POSA를 너무들 좋아하시는 것 같다는 생각이. ^^; EnableTechniques 뿐만 아니라 해당 EnableTechniques 이 지켜짐으로서 얻을 수 있는 효과들에 대해 적절하게 언급을 해주셨으면 좋았었을 것 같은데 하는 아쉬움이 남긴 합니다. --석천
개인적 사정으로 참석 못한 것이 아쉽습니다. ObjectWorld는 주로 Moa:박성운 씨와 송재하씨, 그리고 김유석 씨 등의 색깔을 띄는 듯 합니다. 친자바적인 성향이나, POSA, 아키텍춰 중심 등이 그러하죠. 잡종교배를 통한 ["생각을곱하는모임"]이 되기를 바랍니다.
''Haven't read it. If I gave advice and I were to advise /you/, I'd advise more testing and programming, not more theory. Still, smoke 'em if ya got 'am.
- ProgrammingLanguageClass/2006/Report3 . . . . 20 matches
== Specification ==
though it is difficult to avoid run-time overhead in the execution of thunks, sometimes it
Of course, if a C program with the call statement above is to be compiled by a
parameters prefixed with name as if they were called by name without causing any
thunks 는 두가지 의미로 해석됩니다. 첫번째, 함수형 언어에서 말하는 지연형 계산 두번째, 호환성의 이유로 서로다른 데이터형 간의 매핑을 행하는 행위
이번 숙제에서 구현하려는 것은 첫번째의 의미로 지연형 계산(delayed computation)을 의미합니다. call-by-name, call-by-need를 통해 함수에게 넘어오는 일련의 매개변수를 thunk라는 이름으로 부릅니다. 간단히 말해 thunk라는 것은 실행시에 계산되어 변수의 값이 얻어진다는 의미입니다. (이는 기존의 함수에서 파라메터 패싱에서 Call 시에 변수에 바인딩되는 것과는 다릅니다.) 이런 기능이 최초로 구현된 Algol60입니다.
2) You are also recommended to check if Swap (x, y) does work properly or not
Jensen's Machine 은 Jørn Jensen라는 사람이 Algol 60을 제안하는 보고서에서 제시한 프로그래밍 테크닉을 말합니다.
end;
end
제시된 문제는 상기와 같으며, 이는 100번째의 조화수를 구하는 문제를 해결하는 방법입니다. 차후에 그 이름도 유명한 Knuth 님께서 Man Boy Test로 발전시켰습니다.
You should follow the guideline suggested later. To be specific, your report is
음 잠깐 하면서 생각한건데.... 이 숙제 정말로 구리다. -_- 내가 이렇게 재미없는 숙제를 하게된건 파일구조때 binary 가지고 장난친 이후 처음인듯하다. 문자열 장난할꺼면 펄로하게 해주던지... C 문자열 함수 가지고 놀려니... 정말로 구리다라는 생각뿐~ - [eternalbleu]
- Slurpys/김회영 . . . . 20 matches
if(result[j])
else
cout<<endl;
cout<<"END OF OUTPUT\n";
if(isSlimpy(string,nowPointer,arraySize))
if(isSlumpy(string,nowPointer,arraySize))
if((*nowPointer)+1==arraySize)
if(isNextCharacter(string,nowPointer,arraySize,'A'))
if(isNextCharacter(string,nowPointer,arraySize,'H'))
else if(isNextCharacter(string,nowPointer,arraySize,'B')
else if(isSlumpy(string,nowPointer,arraySize)
if(isNextCharacter(string,nowPointer,arraySize,'D')
if(isFollowF(string,nowPointer,arraySize))
if(isNextCharacter(string,nowPointer,arraySize,'G'))
if(isSlumpy(string,nowPointer,arraySize))
if((*nowPointer)+1>=arraySize)
if(count>0)
if((*nowPointer)+1>=arraySize)
if(string[(*nowPointer)+1]==checker)
- Slurpys/문보창 . . . . 20 matches
힘들게 버그를 잡고 통과. 재귀함수 사용시 여러가지 통로(?)를 잘 관리해 줘야한다.
if (isSlurpy(str, index))
else
cout << "END OF OUTPUTn";
if (!isSlimp(str, index))
if (!isSlump(str, index))
if (index != strlen(str))
if (str[index++] != 'A')
if (str[index] == 'H')
if (str[index] == 'B')
if (!isSlimp(str, index))
if (str[index] == 'C')
else return false;
if (!isSlump(str, index))
else if (str[index] == 'C')
if (!(str[index] == 'D' || str[index] == 'E'))
if (str[index] != 'F')
if (str[index] == 'G')
if (!isSlump(str, index))
else
- StacksOfFlapjacks . . . . 20 matches
그릴에서 팬 케이크를 구워서 완벽한 팬 케이크 스택을 만드는 것은 정말 까다로운 일이다. 아무리 팬 케이크를 정성스럽게 만들어도 팬 케이크의 크기가 조금씩 다르기 때문이다. 하지만 팬 케이크를 잘 정렬해서 위에 있는 팬 케이크가 아래에 있는 팬 케이크보다 더 작게 쌓으면 깔끔하게 보이게 할 수 있다. 팬 케이크의 크기는 그 지름으로 주어진다.
스택을 정렬하는 과정은 일련의 팬 케이크 뒤집기 작업을 통해 이루어진다. 한 번 뒤집는 작업은 스택에 쌓여있는 것 중 두 팬 케이크 사이에 주걱을 집어넣고 그 주걱 위에 있는 모든 팬 케이크를 뒤집는 작업(주걱 위에 있는 팬 케이크로 구성된 하위 스택의 순서가 거꾸로 되도록 만드는 작업)으로 구성된다. 한 번의 뒤집기 작업은 전체 스택을 기준으로 뒤집어질 하위 스택의 맨 아래에 있는 팬 케이크의 위치를 지정하는 방식으로 표시된다. n개의 팬 케이크로 구성된 스택이 있을 때 맨 밑에 있는 팬 케이크의 위치는 1, 맨 위에 있는 팬 케이크의 위치는 n으로 표시된다.
스택은 팬 케이크가 등장하는 순서대로 스택에 들어있는 각 팬 케이크의 지름을 알려주는 식으로 열거된다. 예를 들어 다음은 세 개의 팬 케이크 스택을 열거해놓은 것인데, 왼쪽 스택 맨 위에 있는 팬 케이크는 지름이 8임을 알 수 있다.
filp(3)을 통해 왼쪽 스택이 가운데 스택으로 바뀔 수 있다. 그리고 flip(1)이라는 명령을 쓰면 가운데 스택이 오른쪽 스택으로 바뀐다.
입력은 여러 개의 팬 케이크 스택으로 구성된다. 각 스택은 한 개에서 서른 개 사이의 팬 케이크로 구성되며 각 팬 케이크의 지름은 1 이상 100이하의 정수로 주어진다. 입력은 파일 끝 문자에 의해 종료된다. 각 스택은 한 줄에 입력되며 맨 위에 있는 팬 케이크가 맨 앞에, 맨 밑에 있는 팬 케이크가 맨 뒤에 입력되고 모든 팬 케이크는 스페이스에 의해 구분된다.
각 팬 케이크 스택에 대해 원래 스택을 한 줄로 출력해야 하며 다음 줄에는 가장 큰 팬 케이크가 맨 밑으로, 가장 작은 팬 케이크가 맨 위로 올라가도록(팬 케이크가 클수록 밑으로 가도록) 스택을 정렬하기 위해 필요한 뒤집기 순서를 출력해야 한다. 뒤집기 수선를 출력한 후 맨 뒤에는 더 이상 뒤집지 않아도 된다는 것을 나타내는 0을 출력해야 한다. 스택 정렬이 끝나면 더 이상 뒤집지 않는다.
- ZIM/UIPrototype . . . . 20 matches
사용자 인터페이스의 프로토타입을 보여주세요.
http://zeropage.org/~reset/zb/data/Zim_LoginMode.gif
http://zeropage.org/~reset/zb/data/1010508003/Zim_Lists.gif
http://zeropage.org/~reset/zb/data/1010508027/Zim_PopupBuddy.gif
http://zeropage.org/~reset/zb/data/1010508027/Zim_PopupZimmer.gif
http://zeropage.org/~reset/zb/data/Zim_MessageWnd.gif
일단 오늘 연습장에 그리던것들 옮겨봤어요. 차라리 깨끗하게 손으로 그려서 스캔하는게 나을것 같다는. --a 추후 재정리 한번 하죠. --석천
UI 그릴때 MS Visio 를 쓰면 편하더군요. 학교다닐때 알았더라면, 수많은 가상 프로그램을 만들어냈을텐데 :) -- 이선우
Software for Use와 Contextual Design의 일독을 권합니다. UI쪽(특히 실전)에서는 탁월한 책들입니다. 이 책들에서는 UI 프로토타이핑을 종이를 통해 하기를 강력하게 추천하고 있습니다. 각종 자동화 툴을 써보면 오히려 불편한 경우가 많습니다. 넓은 종이와 다양한 크기의 3M 포스트 잇을 이용해서 버튼 같은 것의 위치를 자유로이 옮겨볼 수 있습니다. 이렇게 만든 프로토타입을 사무실 벽에 걸어넣고 그 앞에서 토론도 하고, 즉석에서 모양을 바꾸기도 합니다. 초기에는 커뮤니케이션 보조 도구로 화이트보드를 많이 사용하기도 합니다. 그러나 한 자리에서 함께 작업할 기회가 적은 경우에는 어쩔 수 없이 전자문서와 이미지에 의존해야겠죠. 제 경우는 주로 스캐너를 이용해서 손으로 그린 이미지 공유를 했습니다. 온라인에서 공동으로 디자인 토론을 할 경우에는 화이트보드가 지원되는 온라인 컨퍼런싱 툴을 씁니다. (e.g. 넷미팅) --김창준
groove 를 이용하는 방법도 있겠군요. 일정관리와 드로우, 노트패드, 화일 등을 공유할 수 있으니까. -- 석천
- [Lovely]boy^_^/3DLibrary . . . . 20 matches
#ifndef _3D_INSU_LIB_
friend ostream& operator << (ostream& os, const Matrix& m);
friend Matrix operator * (float n, const Matrix& m);
friend ostream& operator << (ostream& os, const Vector& v);
friend Vector operator * (float n, const Vector& v);
#endif
//////// 60분법으로 주어진 각을 라디안으로 바꾼다. ////////
if(i == j)
else
os << endl;
os << endl;
if(_nRow != m._nRow || _nCol != m._nCol)
if(_nCol != m._nRow)
//////////// x축으로 돌리는 회전행렬 구하기 //////////
//////////// y축으로 돌리는 회전행렬 구하기 //////////
//////////// z축으로 돌리는 회전행렬 구하기 //////////
os << v._vec[i] << endl;
os << endl;
- zennith/MemoryHierarchy . . . . 20 matches
하위 계층에서 가져온 데이터는, 다음번에 다시 쓰일 수 있다. 그러므로, 다시 사용할때는 하위 계층에서 다시 가져올 필요 없이, 저번에 가져온 데이터를 사용하면 된다.
순차적으로 구성된 데이터의 흐름이 필요한 경우가 있다. 그러므로, 한번 하위 계층에서 데이터를 가져올 때, 연속된 데이터의 unit 을 가져올 경우, 순차적인 다음번에 위치한 데이터가 요구될때 하위 계층에 다시 접근하지 않아도 된다.
효율성에 따라 메모리는 계층구조로 이루어지며, 상위계층일수록 빠른 속도를 보장하며, 하위계층일수록 저렴한 가격을 보장한다.
* 실행중에, 높은 레벨의 계층으로 옮겨지는 데이터 값들은, 빈번히 낮은 레벨의 메모리 계층으로 반영(shadow) 된다.
레지스터는 메모리 계층구조에서 가장 상위 계층으로서, 가장 빠른 속도와, 가장 적은 capacity 를 제공한다. 보통 개개의 레지스터는 그 프로세서의 word 크기이며, 현재 주로 사용되고 있는 인텔 i386 계열 프로세서들의 범용 레지스터의 크기는 32bit 이다.
요즈음의 RISC 구조 프로세서에서는, 모든 연산의 연산자들로 레지스터만 허용하므로, 이 제한된 숫자의 레지스터들을 어떻게 관리하느냐가 성능 향상의 주안점이다. 가령, 빈번하게 요구되는 변수는 계속 가지고 있는다던지, 아니면 한동안 쓰임이 없는 변수를 레지스터에서 버린다던지 하는 일이다. 물론, 이 일(optimal register allocation)은 컴파일러에서 담당한다.
캐쉬의 목적 : 어떻게 하면 최대한 메모리 참조를 적게하고 레지스터로 옮길 수 있을까.
보조 저장공간의 목적 : 많이.. 무결하게.. 덤으로 빠르면 좋고..
Q: Spartial Locality의 의미는 하위계층에 이왕 한번 접근하는거 그때 유닛단위로 묶어서 여러개 가져와서 나중에 필요할때 쓴다는 말인가여? 그렇다면 그렇게 유닛 단위로 묶는 기준은 뭐에여? - 상협
A: 각각의 계층마다 다릅니다. 캐쉬에서 쓰이는 unit 과 가상메모리에서 쓰이는 page 의 크기 차이는 큽니다. 다만, spartial locality 를 위해서 사용된다는 점은 같겠죠.. 좀더 상세한 설명을 원하신다면.. 제게 개인적으로 물어보시거나, 아니면 공부 하시길 -["zennith"]
- 가위바위보/동기 . . . . 20 matches
ifstream fin("data1.txt");
cout<<name1<<endl<<name2<<endl;
if (strcmp(test,"0:0")==0)
else if (strcmp(test,"1:1")==0)
else if (strcmp(test,"2:2")==0)
else if (strcmp(test,"1:0")==0)
else if (strcmp(test,"2:1")==0)
else if (strcmp(test,"0:2")==0)
else if (strcmp(test,"0:1")==0)
else if (strcmp(test,"1:2")==0)
else if (strcmp(test,"2:0")==0)
- 데블스캠프2005/RUR-PLE/SelectableHarvest . . . . 20 matches
if front_is_clear():
else:
if front_is_clear():
else:
if front_is_clear():
if next_to_a_beeper():
if next_to_a_beeper():
if not next_to_a_beeper():
if next_to_a_beeper():
if next_to_a_beeper():
if next_to_a_beeper():
if next_to_a_beeper():
if next_to_a_beeper():
if not next_to_a_carrot():
else:
if not next_to_a_carrot():
if next_to_a_beeper():
else:
if not next_to_a_beeper():
if not next_to_a_beeper():
- 데블스캠프2005/월요일후기 . . . . 20 matches
교훈 : 내가 모르는 언어는 많다. 그러므로 정복하자.
사실 : OOP의 개념과 플래시, 프로그래밍 언어 만들기,로보코드를 했다
느낌 : 개념을 제대로 이해할 수 있었다.
느낌: 새로운 세계를 보게 된듯한 느낌
교훈: 제로페이지를 통해 자극 받아 더욱더 열심히 공부하자
사실: 새로운 언어 만들기, OOP, 플래시에 대해서 공부했다.
교훈: 새로운 분야는 많다.그리고 내가 모르는 분야가 더 많다. 앞으로 1주일 동안 무엇이 있는지 맛이라도 보자.
느낌점:새로운 것을 배워서 내가 몰랐던것을 알게되서 좋왔고 넓은 시야로 바라 봐야 겠다는 것을 느꼈습니다.
교훈: 새로운 발상
사실: 새로운 언어 만들기 및 실습, OOP 와 게임, 플래시와 실습을 했다.
느낌: 무언가 새로운 것이 많았고, 새롭게 보는 시각을 가진 것 같다.
교훈: 지금부터라도 새로운 것들을 더 느껴봐야 겠다는 느낌.
교훈으로는 코딩 수준을 한단계 끌어올리자
사실: 로보코드 부분에서
잡담카드게임이나 로보코드활동에서는 참여하는 인원이 많았다. 실습활동이기 때문일 것이다.
딱딱한 내용이라면 유머를 최대한 활용해야 했는데 아쉽다. 사람들이 어려워한다고 강의자가 당황해서 준비한 내용을 건너뛰다 보니 오히려 더 이해가 안된 것 같아 아쉽다. 차라리 준비한 대로 설명을 해나가면 사람들이 이해하기 쉽지 않았을까?
리허설 한 번으로는 불충분하다. 참가 인원을 고려한 리허설이 필요하다. 기왕이면 혼자 리허설하기보다 여럿이 같이 할 수 있으면 더 좋겠다.
- 루프는0부터? . . . . 20 matches
== 루프의 카운트의 초기값을 0으로 설정하는 이유 ==
대부분의 경험있는 C++프로그래머들은, 처음에는 이상하다고 생각할만한 프로그래밍 습관을 가지고 있습니다. 그것은 바로 번호를 매길 때에 언제나 1부터 시작하는 것이 아니라 0부터 시작한다는 것입니다.
첫번째 것은 0부터 번호를 매기고 !=를 사용하는데 반해, 두번째 것은 1부터 번호를 매기고 <=로 비교합니다. 반복횟수는 둘다 동일합니다. 두번째 것보다 첫 번재 것을 더 성호하는 이유가 있을까요?
보통 비대칭형 범위는 대칭형 범위보다 더 사용하기 쉽습니다. 왜냐하면 다음과 같은 중요한 속성이 있기 때문입니다. [m, n)과 같은 형식의 범위는 n-m개의 요소들을 가지며 [m,n]의 형식은 n-m+1의 요소들을 가집니다. 따라서 [0, rows)에서 요소들의 개수는 직관적인데 반해, [1, rows]에서 요소들의 개수는 덜 직관적 입니다. 이러한 속성차이는, 특히 빈 범위의 경우에 더 뚜렷합니다. 만약 비 대칭형 범위를 사용한다면, 빈 범위를 [m,n)으로 표현할수 있지만, 대칭형 범위에서는 [n, n-1]을 사용해야 합니다. 범위의 끝이 시작보다 더 작을수 있따는 가능성은 프로그램 설계시 끝이 정의되지 않아 버리는 문제를 야기 시킬수 있습니다.
지금까지 r개의 행을 출력했따고 표현할 수 있기 때문입니다. 만약 1부터 번호를 매긴다면? 이제막 r번째 행을 출력하려는 찰나라고 정의할 수도 있겠지만, 그러한 구문은 불변식으로 정당치 않습니다. 왜냐하면, while이 조건식을 마지막으로 검사할때, rows+1이 되기 때문입니다. 이때 우리가 원하는 것은 rows행만을 출력하는 것 입니다. 따라서 우리는 r번째 행을 막 출력 하려던 것이 아닌 셈이 됩니다. 지금까지 r-1개의 행들을 출력했다고 불변식을 정의할 수도 있을 것입니다. 하지만 불변식을 그런식으로 정의 햇다면, r을 0부터 시작시켜 단순화 시키는 것이 더 낫지 않을까요?
사소한 것일지 모르지만, 루프가 끝날 때 우리가 짐작 할 수 있게 되는 프로그램의 상태 정보에 영향을 줄 수 있습니다.
조건식이 r!=rows라면, 루프가 끝날 때 r==rows라는 사실을 알수 있습니다. 불변식은 r개의 행을 출력했따는 사실을 말해 주기 때문에, 정확히 rows개의 행을 출력했다는 것을 알 수 있습니다. 한편, 만약 조건식이 <=rows라면, 그로부터 알 수 있는 사실은 최소한 rows개의 행을 출력했다는 사실 뿐입니다. 따라서 그 이상을 출력했을 수도 있는 것입니다. 0부터 번호를 매기게 되면 정확히 rows번의 반복을 수행했는지 확실히 하고자 할 때, R!=rows를 조건식으로 사용할 수 있습니다. 또한, 반복횟수가 rows번 또는 그 이상이 되기만을 원한다면, r<rows를 사용할 수 있습니다. 만약 1부터 번호를 매기다면 최소 rows번의 반복만을 원할때 r<=rows를 사용할 수 있습니다. 하지만, rows가 정확한 숫자가 되도록 하려면 어떻게 해야 할까요? 그런 경우에는 좀더 복잡한 조건식인 r==rows+1과 같은 방법을 사용 할수 있습니다. 하지만 이렇게 복잡하게 해서 얻을수 있는 이득은 거의 없습니다.
- 문자열검색/허아영 . . . . 20 matches
연필을 잡지 않으면 시간이 배로 드는것 같다.
앞으로 실수하지 않게 데블스캠프때 배웠듯이, 건축에 있어서 설계를 작성하는것은 중요한 것 처럼
프로그래밍에 있어서도 구상과 설계는 매우 중요하다고 느낀다.
이번 프로그래밍의 알고리즘.
단어의 시작을 중점으로 한다.(나는 문자열 이라기 보다는 단어 검색 중심으로 짠것같다.)
만약에 Hot이라는 단어를 저 문장에서 찾았을때, 먼저 H로 시작하는 단어가 있기 때문에 His와 비교를 당하게 된다.
if(search_str[0] == 'E' && search_str[1] == 'E')
if(x[x_n] == ' ')
if(x[exist_str[word_num]] != search_str[search_str_num])
if(exist_str[word_num] >= 0)
}else{
if(x[temp] == search_str[search_str_num]){
}else{
==== C++로 문자 검색. ====
if(str[i] == ch)
}else{
if(found_num == 0){
}else if(0 < found_num && found_num < strlen(str)){
- 문제풀이/1회 . . . . 20 matches
책에서 숫자를 가지고 장난 친경우는 없는것 같아서...
1. 입력 3가지수를 받아서 if문을 이용하여 최대값 최소값을 출력하는 프로그램을 작성하세요. DeleteMe)스펙이 if문의 언급은 잘못된것 아닌가요?
2. 1 을 활용하여 10개의 입력중에 가장 최대, 최소 값을을 출력하는 프로그램을 작성하세요.
Equivalent to eval(raw_input(prompt)). Warning: This function is not safe from user errors! It expects a valid Python expression as input; if the input is not syntactically valid, a SyntaxError will be raised. Other exceptions may be raised if there is an error during evaluation. (On the other hand, sometimes this is exactly what you need when writing a quick script for expert use.)
If the readline module was loaded, then input() will use it to provide elaborate line editing and history features.
if count != 0 :
if mx == None :
else :
else :
if mx == None:
else :
v.append(input())
1. 다음과 같은 공백으로 구분되는 임의의 숫자 입력이 주어질때 최대, 최소값을 출력하세요.[[BR]](데이터 양은 [Python]과 머신이 처리할수 있는 범위내로 한정)
news.append(int(i))
이런 경우를 개선하기 위해서 map 함수가 있는것입니다. 이를 Haskell에서 차용해와 문법에 내장시키고 있는 것이 List Comprehension 이고 차후 [http://www.python.org/peps/pep-0289.html Genrator Expression]으로 확장될 예정입니다. 그리고 print 와 ,혼용은 그리 추천하지 않습니다. print를 여러번 호출하는것과 동일한 효과라서, 좋은 컴퓨터에서도 눈에 뜨일만큼 처리 속도가 늦습니다. --NeoCoin
- 새싹교실/2011/앞반뒷반그리고App반 . . . . 20 matches
하지만, 힘든 부분이 있다면 반드시 ~~명시적으로~~ 속도를 늦출 것을 요청하세요. 그 부분은 웬만하면 다른 동료들도 힘들어합니다.
후반부에서는 개인별로 맞춰나가는 데 주력할 겁니다.
~~매 시간마다 위키에 나아간 곳의 지도를 작성합니다. 그냥 머리에서 나오는 대로 그리세요. (자동기술법)~~
~~여행의 연장으로, 위키에 작성한 글을 가지고 맞춤법 교정도 진행합니다.~~
* 첫 새싹수업이었어요! 일단은 저랑 성호가 같이했었구요, 이때까지 봉봉교수님 시간에했던 전반과 C의 기원(?)을 공부했어요. 어셈에 대한 언급도 나와서 뭐 이런 기계어를 배워야하나.. 라는 생각도 들었구요 =_= 아무튼 현이형이 쉽다기보다는 재밌게 설명해주셔서 좋았구요~ 새싹이 좀 더 정기적으로... 되지 못해서 늦게 시작한건 좀 아쉬웠지요. -[김태진]
* 자, 여러분. 이 줄을 복사해서, 여러분의 후기로 바꿔보세요. - [황현]
* 오늘--- 은 assert랑 do while이랑 while을 배웠고요, for로 십자가 만들기 하려다 새싹끝났어요. "우와아 참 재미있었다-_-" -[김태진]
* 그거쓰면 중간에 그 값이 거짓일경우 프로그램 따운 시켜버리는거임. 오류검사할때 쓴다고 봐야하려나..?- [김태진]
에서 assert안이 참일 경우 그냥 지나가버리지만(프로그램이 종료하지만) 그렇지 않을경우
Assertion failed: (n>100), function main, 과 같이 오류뜨면서 프로그램이 종료됨.
이것도 피드백 하나로 쳐주세요!! -[김태진]
* 시험기간 직전에 질문시간이었어요. ~~저밖에 오지 않았지만~~ 이날 새롭게 배운것은 (수업시간에 필요없다고 넘긴것이라 필요없었음에도 잔다고 필요없다는 사실을 몰랏음) redirection이었는데요! 뭐냐니 input과 output을 바로 프로그램에서 받고 띄우는 것이 아니라 다른 문서에서 불러오거나 집어넣는 것이었어요. 지금까지는 인풋은 무조건 scanf로 직접 넣었는데, 그것과는 다른것!!이었죠. 사실 방법은 지금 잘 기억나지를 않네요 -_- 아무튼 이런 신기한걸 배웠습니다. -[김태진]
* 오늘은 포인터를 배웠어요. ********별-. 선언할 때 int *a;로 선언하게 되면 *a는 a의 주소에 있는 값을 나타내는거였지요. 음.. 하다가 현 형이 하던 프로젝트에 잠깐 지워놓고 예시를 들었다가 xcode를 끄는 바람에 소스가 날라가버렸지요.... 포인터가 있으면 지정된 크기보다 큰 용량의 자료도 불러오기 쉽다는 것도 배웠구요. 아무튼 유용하게 쓸 수 있을거 같아요 -[김태진]
- 정모 . . . . 20 matches
* 진행중인 스터디, 프로젝트 이야기
||||2023.03.21||[김도엽]||||||||프로그래밍 문제로 C++ 입문해보기||
||||2023.07.03||[원지환]||||||||첫 엔진은 무엇으로 할까?||
||||2023.11.22||[조영호]||||||||아두이노로 마이크 샘플링 해서 녹음하기 & 온습도 기록해서 Grafana로 모니터링하기||[정모/2023.11.22/참석자]||
||||2024.01.03||[홍혁준]||||||||노션에서 옵시디언으로||[정모/2024.01.03/참석자]||
[http://zeropage.org zeropage]공지게시판에 있는 회의록을 여기로 다시 옮겨야 할 듯 합니다.
[정모] 라는 이름이긴 하지만, 그리 딱딱한 모임이진 않길 바란다. 지금의 정모는 너무 '딱딱' 하다라고 생각. 이는 '세미나실'이란 장소가 주는 NoSmok:어포던스 일 가능성도. (이 단어 요새 잘 써먹는군; 근데 정말 일종의 '행위유발성'의 영향을 받는게 아닌가 하는 생각이 들어서. 세미나실의 특징상 가운데 발표자가 있어야 하는식이고, 개개인별로 비격식적인 이야기를 하기 어렵다. 오른쪽의 한줄짜리 공간은 그 사람들만을 지역화 시킨다. 책상 배치상 안쪽 사람들이 밖으로 나가기 어렵다. 뒤에 앉은 사람들을 쳐다보기 어렵다. 창섭이 말투 관계상 낮게 깔리는게 사람들로 하야금 무게감을 느끼게 한다; 등등) --석천
형의 말을 듣고(사실 이걸 보고..;; ) 말투를 낮게 깔지 않고 책상 배치를 다르게 해보았습니다. 그런데 말투를 바꾸니 대다수의 사람들이 '소름끼친다'의 반응인지라..;; 근데 책상 바꾸는 것은 다들 '이게 머야..하지말자.' 하면서도 굉장히 흥미를 느끼는 듯 했습니다. 사각형으로 서로 마주보게끔 배치했거든요..(원형은 배치가 힘드니까요...^^) --창섭
- 안건제안자가 주로 고학번식이 된다.
-> Online (주로 Wiki를 통해 이루어지는) 에서 결정할 내용과 Offline 에서 결정할 내용을 구분하지 못한다.
-> Offline 에서 충분이 결정할 수 있는 일들을 Online(Wiki) 으로 미루어버린다.
-> 해결책 : 어떻게 하면 토론을 효과적으로 할것인가에 대한 brain storming 이나, 학습 등.
최근에 자주들렸던 말중 하나가 [정모]로 사람들이 모였음에도 불구하고 '위키에서 처리하자'이다. 이는 잘못이다. 위키에서는 의견들이 모이고, 결정은 정모에서 신속하게 되어야 한다고 생각한다. 위키는 해당 관련 정보를 모으고 토론이 격해질때 도큐먼트를 정리하는등 호흡이 긴 토론시에 유용하다. 모든 토론들이나 결정사항들이 위키에서 이루어질 이유가 없고, 또한 별로 유용하지도 않다. --[1002]
[제로페이지분류]
- 정모/2006.5.22 . . . . 20 matches
- 안건 : 초 - 신입생이 프로젝트를 하기 쉽게, 지방 배려, 데블스 전통 23
하 - 초기에 하면 했던 내용을 방학이 끝나면 잊어버릴 수 있다. -> but 방학때 프로젝트를 진행하기 위해 초기 학습이 필요하다.
- (창섭) 레벨 업 방식으로 경쟁을 유도하는 것이 단기간 실력 향상에 도움이 된다. 원래 데블스 캠프가 그랬었지만 제로페이지로 오면서 세미나 형식으로 바뀌었고 재학생이 얻는 것은 많았지만 신입생은 상대적으로 '구경'하는 입장이었다. 신입생들의 흡수력을 높이기 위해서는 일단 빠른 실력 향상이 급선무이다. 데블스 캠프는 기존 회원을 위한 것이 아니라 주 목적이 '신입생이 프로젝트를 할 수 있는 기반 실력 향상' 이라는 것을 주목해야할 것이다.
- (상섭) 수업방식 : 페어 프로그래밍을 한 챕터화 시키고 선배는 힌트 정도만 준다
- (상규) 일단 신입생들은 모르는 부분이 많기 때문에 페어 프로그래밍 보다는
기본을 제대로 하여서 프로젝트에 참여할 수 있게 만든다.
- (기웅) 레벨업 위주로 하되 마지막에 페어 프로그래밍을 신입생들끼리 할 수 있게 하자
- (창섭) 재학생을 위한 것은 따로 세미나를 만들어서 하자.
- 결론 : 신입생을 위한것으로 하자.
- 꼭 세미나가 주가 될 필요가 없다. (간단한 힌트 만으로 할 수 있다.)
- 각 요일마다 목표가 되는 프로그램을 정해서, 그에 맞는 문법을 가르쳐 주는게 어떨까??
- 가르쳐 줄 것 -> 프로그램을 정함.
- 예전에 나왔던 것, 헬로우 월드, 자판기, 숫자 야구, 등등.....
- 정모/2013.3.18 . . . . 20 matches
* 관심있는 분은 허진욱(010-3130-2031)로 전화해서 문의하길 바랍니다.
* Q : 개발자가 필요하셔서 오셨다고 했는데, 어떤 개발자를 원하시는지? A : everything(...), 안드로이드 할 수 있으면 된다고 생각함. 서버 유지관리도. 아이폰 점유율 망해서 안 할 생각.
* Q : 4단계 인맥까지 자동으로 보여지는건가요? A : 관심사가 같다면 보일 겁니다.
* Q : 디자인 팀은 따로 뽑으시는지? A : 따로 뽑을 겁니다.
* 음.. 시장성을 발견할 때 까지 시간을 벌어야된다는 말이었는데.. 근데 몇 보니까 서비스로 시작하다가 SI로 가기도 하더라.. 자사 서비스는 어느샌가 증발.. 그래도 아웅다웅 잘 살아있더만ㅋㅋ - [서지혜]
* 이전처럼 행사에 참여한 사람을 정회원으로 한다.
* 정회원은 4분기마다 걷으며, 분기당 1만원을 걷는다. (회비의 부활!, 작년만 임의로 걷음)
* (의견)가입서를 쓰는 것 자체가 소속감을 불러 일으키므로 있었으면 좋겠다. (Off-line 용)
* 위키로 관리하던게, 언제부턴가 자율처럼 바뀌더니 관리가 안되기 시작했다.
* 그래서 다시 위키로 관리하며, 담당자를 뽑을 것이다.
* 담당자에게는 활동 보상으로 회비 면제.
* (의견) 스마트폰으로 바코드 인식어플만들어서 관리하자 -> 프로젝트 진행 해주시면 감사하겠습니다.
* nForge에서 Github으로 바뀌었습니다.
* 관리팀 뽑습니다 (5인) : [송지훈], [임환], [구남영], [정종록], 추가로 받습니다. 신청하세요.
=== 스터디 및 프로젝트 ===
* 홍보판넬이 뜨고 있어서 [구남영] 선배님께서 같이 알아봐 주시기로 했습니다.
* 정모 종료는 회장이 선언하고나면 되는것으로!
- 정신병원에서뛰쳐나온디자인/밑줄긋기 . . . . 20 matches
* 어떤 사람이 소형 비행기로 비행하던 도중 구름 속에서 길을 잃었다. 그는 건물이 보일때까지 고도를 낮춘 뒤 그 건물의 열려 있는 창문 너머로 보이는 한 남자에게 ''"지금 제가 있는 곳이 어디입니까?"'' 라고 소리질러 물었다. 그 남자는 ''"당신은 지상 100피트 상공에 있는 비행기 안에 있습니다."'' 라고 대답했다. 조종사는 즉시 정상 코스로 복귀하여 공항을 찾아 착륙했다. 놀란 탑승객들이 조종사에게 어떻게 길을 알아냈는지 물어보았다. 조종사가 대답하기를 ''"그 남자의 대답은 100% 정확하고 사실이었지만 전혀 도움이 되지 않는 대답이었습니다. 그래서 나는 그가 마이크로소프트 사에서 일하는 소프트웨어 엔지니어라는 것을 금새 알아차렸습니다. 그리고 마이크로소프트 사 건물의 위치를 기준으로 해서 공항의 위치를 알아냈습니다."'' 라고.
* 너무 웃겨서 신나게 웃었지만 한편으로 MS 무지 까네 싶은 생각이 들었다. MS보다 못한 소프트웨어를 만드는 곳이 얼마나 많던가. 그리고 작년에 나를 포함하여 몇몇 ZeroPager로 구성된 팀이 만든 포토잇을 생각해보면………… - [김수경]
* 즉, 컴퓨터는 우리를 올바르게 인도할 수 있지만 우리가 가고자 하는 곳으로 안내하지는 않는다.
* 첨단 기술 회사들은 제품을 개선한답시고 그저 복잡하고 불필요한 기능들만 제품에 추가하고 있다. 공급자들이 이렇게 행동할 수밖에 없는 이유는 잘못된 개발 과정은 나쁜 제품의 문제를 해결할 수 없고 그저 새로운 기능만 추가할 수 있기 때문이다.
1. 사실 별로 차이 없는데 저자가 괜히 까고 있는 건 아닐까. - [김수경]
* 프로그래머들은 자신들이 가장 좋아하는 스타일로 컴퓨터의 행동 및 정보 제공 방식을 만들어내고, 이는 제인에게 가장 적합한 행동 및 정보 제공 방식과 큰 차이가 있다.
* 현대 문명 사회는, 사회 운동가들이 인종과 계층 사이의 벽을 허물기 위해 열심히 노력하는 한편으로 기술자들이 본의 아니게 새로운, 오히려 더 높은 장벽을 쌓는 데 매진하고 있는 형국이다.
= 우리는 프로그램에게 희생을 강요당하고 있다 =
= 포크로 스프 먹기 =
== 호모 로지쿠스 ==
= 운전석으로 돌아가라 =
== 지금까지의 프로세스는 잊어라 ==
- 조영준 . . . . 20 matches
* [AngelsCamp/2015] - 제로병, 피보나치킨 - https://github.com/SkywaveTM/zerobot
* 동네팀 - 신동네 프로젝트 [http://caucse.net], DB Migration 담당
* Titan Project (2015년 1학기 소프트웨어공학 팀프로젝트) - https://github.com/ZeroPage/team6-titan-2015
* Google I/O 2015 Extended Seoul 참여
* [열파참/프로젝트] - [http://library.zeropage.org] => [ZPLibrary]
* [OpenCamp/세번째] 준비 도움 및 최우수상! - 자동 볼륨 조절 안드로이드 앱 'Harmony'
* 여름방학 clonezilla 관련 프로젝트 진행
* Wiki Path Finder (wikipedia api를 이용한 두 단어간의 연관성 추정, 2014년 2학기 자료구조설계 팀 프로젝트)
* 2015년 설계패턴 팀 프로젝트의 기반 프로젝트가 됨. https://github.com/SkywaveTM/wiki-path-finder
* PicManager - 2014년 객체지향프로그래밍 팀 프로젝트 - https://github.com/ZeroPage/PicManage
* 소켓 프로그래밍
* 소문자를 대문자로 변환시켜주는 프로그램
* GDG pre devfest 2013 seoul - 징격의 안드로이드. 그리고 밤샘. - https://github.com/ZeroPage/MorningTypeHuman
* 중간고사가 끝나면 코딩공부나 더 하고싶네요. 특히 웹 쪽으로.
* 그런데 그것이 실제로 일어났습니다. [한자공]
* 코드레이스 재미있었는데, 나중에 여유가 나면 주기적으로 주최를 해 보고 싶기도. ~~그런데 하는거랑 주최랑은 다르겠지~~
* 어찌된게 자바스터디가 반쯤 코드레이스 식으로 진행되고있음 -_-;
- 튜터링/2011/어셈블리언어 . . . . 20 matches
= 시스템 프로그램 및 어셈블리언어 튜터링 =
* 2주차 : 인텔 프로세서의 구조, 파이프라이닝과 슈퍼스칼라와 스케쥴러
* 7주차 : 중간고사로 휴강
* 9주차 : 스택과 프로시저
* 10주차 : 조건부 처리, 루프
* 13주차 : 매크로 연산
* 책의 정의를 그대로 외우지 말고 왜 그렇게 되는지를 이해하자.
* 튜터 간담회로 인해 수업하지 않습니다.
* 책의 코드를 그대로 베껴와 프로그램을 완성했지만 어떻게 동작하는지는 잘 모르는 사람이 많아 다시 짜보기로 한다.
* 관례적으로 "Hello World!"를 출력해 보기로 한다.
* sum 프로시저를 만들어 재귀호출하기
* 생각했던 것 이상으로 시간이 오래걸려서 당황
* 내가 코드 설명을 부족하게 하였다. - 슈도코드를 제공하였는데, c로짠다면 3줄정도의 코드다..
main ENDP
END main
* 매크로했다.
* 매크로는 대체 왜 쓰나요?
* c 프로그램에 어셈블리 사용
* 나야말로 찌질거리며 피피티 파고있을듯
- 10학번 c++ 프로젝트 . . . . 19 matches
0. 프로젝트의 이름은 10학번 c++ 프로젝트라 하고, 이는 프로젝트의 정기모임에서 변경될 수 있다.
1. 프로젝트의 정기모임(이하 모임이라 칭함)은 매주 일요일 오후 3시에 시작한다.
* 수능시계같이 간단하게 생긴놈 (지마켓에서 천원짜리로 팜 ㅇㅇ)
* 상호야 ㅋㅋ 내가 하는건 C++ 프로젝트로 분류하기 좀 애매함 ㅋㅋ 객체지향 프로젝트라고 보는게 맞음 ㅋㅋ - [박성현]
* 수능시계같이 간단하게 생긴놈 (지마켓에서 천원짜리로 팜 ㅇㅇ)
* 프로젝트 이름은 "내 컴은 소중하니까" 임
* 해결 된 게 ....없음 앞으로 걍 다 해결해야할거뿐임
* 수능시계같이 간단하게 생긴놈 (지마켓에서 천원짜리로 팜 ㅇㅇ)
* 헤더문제는 #pragma once 사용으로 해결된 듯 함.
* 프로젝트 명 10c++ 로 바꿈.
* 3부분 전부 연결 성공했으나, 초시계를 클래스로 묶으면 에러가 발생.
= 프로젝트 완료 (10.08.28) =
* 수능시계같이 간단하게 생긴놈 (지마켓에서 천원짜리로 팜 ㅇㅇ)
* 완벽하게 수능시계를 구현하진 못했지만.... 모든 기능이 제대로 제 위치에서 잘 돌아감.
- 3N+1Problem/강희경 . . . . 19 matches
파이선으로 재귀호출을 한번 구현해보았으나, 엄청 느리다.
if aNumber == 1:
elif aNumber%2 == 0:
else:
1. 22의 경우 22, 11, 34...이렇게 되는데 22의 싸이클 안에 11, 34등의 싸이클도 포함되니 최대값에서 그들을 배제하는 것이 가능하다.
2. 범위 안에 어떤수의 2의 배수가 있는 경우(또는 (x - 1)/3이 있는 경우) 1과 같은 이유로 그 수는 최대값에서 배제한다.
범위(Range)를 인위적으로 줄여야한다는 결론에 도달.
if(IsInRange(aMin, aMax, aNumber) and aBinaryMap[aNumber-aMin]):
if(aNumber%2 == 0):
else:
if(aBinaryMap[i-aMin]):
if(maxCycleLength < cycleLength):
if(aMin <= aNumber and aMax >= aNumber):
else:
if(aMin > 0 and aMax < 1000000 and aMin < aMax):
else:
if __name__ == '__main__':
- Basic알고리즘/63빌딩 . . . . 19 matches
그 층을 알기 위해서 다섯번을 떨어질 기회가 주어진다면, 어떤 방법으로 그 층을 찾을 수 있을까 ? (search알고리즘)
* 떨어졌을때... 뭔가 떨어진 거에 대한.. 답이 나오는건가? 더 높은 층으로 가라던지, 더 낮은 층으로 가라던지.? --[(snowflower)]
이 문제는 이진검색으로 풀 수 있습니다.
이진검색 이란 순서대로 (이진트리안에) 보관되어 있는 데이터를 검색하기 위해서 중간에 있는 (혹은 이진 트리의 루트에 해당하는) 값을 고른다음, 찾는 값이 그보다 크면 오른쪽으로 (값이 더 큰 쪽으로 ) 이동하고, 작으면 왼쪽으로 (값이 더 작은 쪽으로) 이동하는 방법을 의미한다. 유명한 알고리즘이므로 모르는 사람이 없으리라고 생각한다. -저자^_^
* 32층에서 떨어져 본다. 당연히 죽는다. 따라서 문제의 층은 32층보다 아래에 있다. 32를 다시 2로 나눈 값은 16.
그러므로 16층과 18층의 중간인 17층이 정답이다.
Upload:이진검색.gif
18층일때는?? 18층에서 떨어져 본다. 역시 죽는다(죽기 시작하는 층이므로..). 그러나 17층에서 떨어지면 안죽는다. 그러므로 18층이 정답이다.... 이러니까 6번탐색인게 아닌가요? - [조현태]
그러고 보니, 그렇네 - 17층에서 죽느냐 안죽느냐에 따라서 그 층이 달라지는거잖아. 임의의 층이 17층이므로 17층에서는 죽어야겠네? -허아영
그렇지. 단순 바이너리 서치는 2의 n승개일때 n번의 탐색을 필요로 하니까... 이건 바이너리로는 안되.T.T - [조현태]
코딩. 랜덤함수로 1 ~ 64 중의 수를 정한 다음, 자신의 방법을 통해서 찾아보자!
- Basic알고리즘/팰린드롬/허아영 . . . . 19 matches
if(string[i] == string[len-i-1])
else {
if(isPalindrome(str, len))
cout << "->true" << endl;
else
cout << "->false" << endl;
if(string[0] >= 'a' && string[0] <= 'z' || string[0] >= 'A' && string[0] <= 'Z')
if(string[i] == string[len-i-1])
else {
} else {
if(string[i+j] == string[len-i-2+j])
else {
if(len == 1)
cout << "->true" << endl;
else if(isPalindrome(str, len))
cout << "->true" << endl;
else
cout << "->false" << endl;
- Cpp/2011년스터디 . . . . 19 matches
* 2학기에 들어가기 전에 잉여로운 방학시간을 이용해서 C++에 관한 여러가지를 공부해보는 스터디입니다.
* 진행 방식: 간단하게 C++책을 학습한뒤 테트리스 코드 레이스로 둘이 같이 짜면서 필요한 부분을 다시 탐독한다.
* 클래스에 관해 공부하고, 그걸 토대로 프로그램을 짜본다.
* XCode에서 코드를 좀 더 업그레이드 시켜보려고 했으나 망할 --VS2008-- '윈도' 에만 돌아가는 것들(Windows.h)이 있어 실패하고 한종이 컴퓨터에서만 짜기로 했음.
* 태진이 한텐 좀 미안한데 혼자서 따로 만들어 보고 있었다. X코드와 VS2008은 서로 다른점이 너무 많아서 둘이 같이하면 이래저래 진행이 안될것 같아서; 움직이는 블록과 이미 자리잡은 블럭(+배경) 그리고 이들을 움직이게 하는 함수. 이렇게 3개를 class화 했다. 이 중 이미 자리를 잡은 블럭은 다른 두개의 객체에서 접근가능하면서, 유일하게 하나만 존재해야 했다. 그래서 찾아본결과. 싱글톤 패턴이란게 있어서... 이것 때문에 하루동안 고생했다. 어쨋든 성공 ㅋㅋ 뭔가 끝이 보이는 느낌이다. 근데 왠지 완성시키고 나면 종나 느릴것 같아..
* 아 됐으 이제 해볼까! -> 블럭이 바닥에 도달해서 죽어야 하는데 죽지않고 버틴다. 게다가 왼쪽으로 이동하기 까지!
* 이건 바닥에 도달하는 조건을 if(MKB()==false)로 했었던가? 인데.. MKB에 들어가보니 false 반환이 없었다.. 헐.
* 위의 문제를 해결하니 블럭이 원하는데로 잘 죽고 잘 생성되더라. 근데 1줄을 없애려 하니...
* 위의 상황은 디버그일때 일이고 릴리즈일때는.. 프로그램이 죽진 않으나.... 말로 표현할수가 없다.
* 릴리즈에선... 안죽어... 사실 죽는 조건을 잘못 설정한 탓도 있긴한데.. 심지어 그냥 냅두면 부활도 한다 으앜 뭐지!
조작은 WASD와 ,.로합니다. space는 아직 못합니다 ㅜㅠ
* 절차지향적으로 먼저 짜본다
* 객체지향적으로 짜보고 고친다. 확장성까지 고려된 말끔한 형태가 나올때까지.....
* 보니까 06년도에 06학번을 대상으로 테트리스 만들기 라는 활동도 있었고 10년 데블스캠프에서도 테트리스가 언급되었던것 같은데 아예 새싹교실할때 테트리스를 포함해보는건 어떨까. 기본적인 블럭낙하에 줄이 없어지고 점수가 표시되는 정도라면 잘되는 새싹반은 완성도 가능하지 않을까?
- DataStructure/String . . . . 19 matches
if(strstr[str_count]==ptnptn[ptn_count]) // 문자 비교해서 같을때
else
if(ptn_count==0)
ptn_count=0; // 다를때는 패턴은 0으로
if(ptn_count==ptn_len) // 패턴이 문자열 내에 있을때 그 시작 위치 리턴
else if(str_count==str_len) // 패턴이 문자열 내에 없을때 거짓(다 돌았는데 카운트가
* 요건 걍 심심해서 만들어 봤습니다. 뭔가 코드가 좀 더러운거 같긴 하지만..-.-;; 앞으로 공부를 개념을 익히면 소스를 보기 전에 제 손으로 만들어보는 연습을 하려고 합니다.
* 이것보다 더 낳은 방법으로 Failure Function을 쓰는 방법이 있져.(O(m+n))
f(j) = largest i such that i < j and 문자열의 0 ~ i번째 = 문자열의 (j - i) ~ j번째, if such an i exists
j = 5 일때, pattern = abcabc 여기서 [[HTML(<b><font color=red>)]]abc[[HTML(</font></b>)]][[HTML(<b><font color=blue>)]]abc[[HTML(</font></b>)]]이므로 i = 2이고 i < j이므로 f(5) = 2
j = 4 일때, pattern = abcab 여기서 [[HTML(<b><font color=red>)]]ab[[HTML(</font></b>)]]c[[HTML(<b><font color=blue>)]]ab[[HTML(</font></b>)]]이므로 i = 1이고 i < j 이므로 f(4) = 1
j = 3 일때, pattern = abca 여기서 [[HTML(<b><font color=red>)]]a[[HTML(</font></b>)]]bc[[HTML(<b><font color=blue>)]]a[[HTML(</font></b>)]]이므로 i = 0이고 i < j 이므로 f(3) = 0
같은 것이 없는 경우 - abcabcac f(j) = -1 -- [황재선]
고마워.^^근데 C로 fail() 구현 부분은 더 신기하다. ㅡㅡ; --[Leonardong]
- DebuggingSeminar_2005/DebugCRT . . . . 19 matches
자기가 짠 프로그램으로 돌려보고 누수 여부를 판단하기에 좋을 것이다.
|| _CRTDBG_CHECK_ALWAYS_DF || _CrtCheckMemory() 함수를 모든 new, delete 함수에 대해서 자동 호출 되도록 지정한다.[[BR]] 이 함수는 할당된 공간의 유효성을 지속적으로 체크한다. 즉 domainerror나 기타 메모리 access에 관한 부분을 검사한다. 대신 오버헤드가 상당하다. 그러나 그만큼 디버깅의 효율성을 높여줄 수 있다. ||
|| _CRTDBG_CHECK_CRT_DF || 내부적으로 사용되는 메모리가 디버그작업을 하는 동안 추적된다. ||
|| _CRTDBG_LEAK_CHECK_DF || 프로그램이 종료되는 시점에서 _CrtDumpMemoryLeaks()를 호출. 메모리 해제에 실패한 경우 그 정보를 얻을 수 있다. ||
''_CRTDBG_ALLOC_MEM_DF 는 기본적으로 on, 기타 플래그는 디폴트 off이므로 bitwise 연산자를 이용해서 적절하게 플래그를 설정해야한다.''
MFC에서는 기본적으로 로드하지만 콘솔에서는 사용자가 직접 지정을 해줘야 로드한다.
''crtdbg.h는 ASSERT, ASSERTE라는 메크로 함수를 생성한다. 둘의 차이점은 ASSERTE는 assertion 표현을 보고하고, 다른 것은 하지 않는 다는 것이다.''
''다중 목적지 지정은 flag 설정과 마찬가지로 | 연산자를 통해서 가능하다.''
|| _CRTDBG_FILE_STDERR || 표준 에러 스트림으로 전달 ||
|| _CRTDBG_FILE_STDOUT || 표준 출력 스트림으로 전달 ||
대체로 클래스에서의 메모리 유출은 동적 멤버 변수들이 만들어졌을 때 해야하는 '삼의 법칙'을 지키지 않는데서 비롯되는 경우가 많다.
동적 멤버변수를 사용하는 경우에는 대입, 할당 생성자, 소멸자를 반드시 만들어야한다.
DCRT를 켜고 끄는 것에 따라서 프로그램의 수행속도의 차이가 상당하다. STL때문인지도 모르겠지만. - [eternalbleu]
- DispatchedInterpretation . . . . 19 matches
인코딩은 프로그래밍에 있어서 필수적이다. 데이터가 계산으로부터 분리되어 있던 과거에는, 인코딩 작업은 매우 중요했다. 삑사리 한번 내면 돈 겁나 많이 들었다. 하지만 객체지향 시대에는 좀 다르다. 인코딩은 두번째로 밀려나고 객체들 사이의 책임을 분배하는 것이 가장 중요하게 된 것이다. 잘짜여진 OO 프로그램에는, 어떠한 정보에 관심을 가지는 객체가 하나밖에 없어야 한다. 그 객체는 자신의 정보에 직접 접근하고, 은밀하게 인코딩과 디코딩을 수행한다.
그.러.나. 객체의 정보가 다른 객체에 영향을 미쳐야만 할때가 있다. 간단할때는, 그냥 인코딩된 오브젝트에 메세지를 보내면 수월하게 해결이 가능하다. 하지만 복잡한 경우에는 힘들다. 문제는 수백의 클라이언트들에게 모든 타입의 정보에 대해 명시적으로 case 형태의 구조를 만들기를 원하지 않는다는 것이다.(??)
역시 코드로 이해하는 것이 빠르다. Shape 객체는 line, curve, stroke, fill 커맨드들의 순차적인 조합으로 이루어져 있다. 이것은 commandAt(int)라는 n번째 커맨드를 리턴해주는 메세지와, argumentsAt(int)라는 커맨드에 넘겨줄 인자들의 배열을 리턴해주는 메세지를 제공해준다.
if(command == lineFunc)
else if(command == curveFunc)
위의 코드를 보면 알겠지만, CURVE 다음에는 STROKE, FILL 등이 계속 나올 것이다. 즉, case 구조를 씀으로써, OAOO의 원칙을 위반하고 있다. 이에 우리는 case 구조가 인코딩된 객체 안에 숨겨지도록 하는 해결책이 필요하다.
또한, commantAt이나 argumentAt같은 메세지 말고, sendCommand(at,to) 같은 메세지를 제공하자. 위의 line,curve도 이꼴이므로 같이 다룰수 있다.
aShape.sendCommand(i,this);
저 메소드는 Shape로 가는게 좋을 듯하다.
void Shape::sendCommandTo(Object& anObject)
sendCommand(i,object);
aShape.sendCommandTo(this);
- EcologicalBinPacking/강희경 . . . . 19 matches
if(noMove[i] > MAX)
cout << endl;
cout << movedBottle << endl;
if(!(cin >> slots[i])){
if(temp != '\n')
if(!isCorrectInput){
if(pNoMove[i] > MAX)
if(isCorrectInput)
cout << colorsCombination[aInformation[0]] << aInformation[1] << endl;
else
cout << "잘못된 입력으로 프로그램을 종료합니다.\n";
*전역변수 남발로 인한 공간(memory)낭비 없애기
if(isCorrectInput)
cout << colorsCombination[aInformation[0]] << aInformation[1] << endl;
else
cout << "잘못된 입력으로 프로그램을 종료합니다.\n";
output() 함수도 이런식으로 리펙토링할 수 있다. --재동
- EightQueenProblem/kulguy . . . . 19 matches
문제에 대한 개략적인 이해만 하고서 마치 그 알고리즘을 완전히 이해한 냥 무턱대고 코딩에 들어갔다가 정답이고 뭐고 완전히 엉켜버렸습니다. 결국 처음부터 다시 코딩 이전 단계부터 차근히 준비하여 겨우 문제를 해결할 수 있었습니다. 코딩 이전의 여러 프로그래밍 단계는 함부로 건너뛸 단계가 아니란 것을 다시 한번 뼈 속 깊이 깨달았으며 성능을 위해 시공 교환 법칙을 나름대로 적용해 보았는데 그 효과의 상당함을 경험하였습니다.
성능이란 것을 크게 수행 시간(時)과 수행시 필요한 메모리(空)라는 2가지 측면에서 본다면 메모리쪽의 성능을 희생해서 수행 시간을 끌어올리는 것을 말합니다. 즉, 자주 쓰일 것 같은 계산 결과는 매번 계산하지 않고 메모리에 담아두거나 외부에 저장했다가 가져오는 식이 되는 거죠. 저같은 경우 문제를 풀기 위해 체스판 위에 퀸 하나가 놓일 때마다 다음 퀸이 놓일 수 있는 "가능한 자리를 계산"해서 그 다음 퀸을 배치하는 방식을 사용했습니다. 이 때 "가능한 자리를 계산"한 결과를 메모리에 담아두고 계속 이용하였죠. 참고로 이 용어와 개념들은 김창준님이 마소에 기고하신 파이썬 관련 기사에서 비스므리 인용한 것 입니다. 인용이란 본래 그 내용을 정확히 전달해야 하는데 -_-;;; 마소 기사를 직접 참고해보시기 바랍니다 :)
if (index == queensNum)
if(point.getY() == index + 1)
if (locate(index + 1))
else
if (!queen.canAttack(point))
buff.append(queen.getPoint().toString());
buff.append("\n");
if (index < points.size())
buff.append(point);
buff.append("\n");
int diffX = Math.abs(point.x - x);
int diffY = Math.abs(point.y - y);
return diffX == diffY;
- JollyJumpers/남훈 . . . . 19 matches
def check(table, diff):
if diff <= len(table):
table[diff - 1] = 1
if table == []:
if table[0] == 0:
diffTable = initTable(n)
diff = abs(seq[i] - seq[i+1])
check(diffTable, diff)
if isComplete(diffTable):
else:
if line == '' or line[0] == '0':
inted.append(int(atom))
lines.append(inted[1:])
if t:
else:
if __name__ == '__main__':
- LC-Display/문보창 . . . . 19 matches
쉽게 생각하고, 구상을 하지 않고 바로 코딩을 한 후유증을 여실히 보여준다. 수행시간이나 메모리사용이 만족스럽지 못하고, 코드또한 가독성이 떨어진다. 추후 리펙토링이 필요하다.
if (size == 0)
for (j=0; j<MAX_ROW; j++) // 공백으로 초기화
if (d[i].num[j] != '')
else break;
cout << endl;
cout << endl;
int end = start + col - 1;
if (m1 || m2 || m3)
for (i = start+1; i < end; i++)
if (m1) pd[0][i] = '-';
if (m2) pd[s+1][i] = '-';
if (m3) pd[2*s+2][i] = '-';
if (l1 || r1)
if (l1) pd[i][start] = '|';
if (r1) pd[i][start+s+1] = '|';
if (l2 || r2)
if (l2) pd[i][start] = '|';
if (r2) pd[i][start+s+1] = '|';
- LearningToDrive . . . . 19 matches
I can remeber clearly the day I first began learning to drive. My mother and I were driving up Interstate 5 near Chico, California, a horizon. My mom had me reach over from the passenger seat and hold the steering wheel. She let me get the feel of how motion of the wheel affected the dirction of the car. Then she told me, "Here's how you drive. Line the car up in the middle of the lane, straight toward the horizon."
This is the paradigm for XP. There is no such thing as straight and level. Even if things seem to be going perfectly, you don't take your eyes off the road. Change is the only constant. Always be prepared to move a little this way, a little that way. Sometimes maybe you have to move in a completely different direction. That's life as a programmer.
The driver of a software project is the customer. If the software doesn't do what they want it to do, you have failed. Of course, they don't know exactly what the software should do. That's why software development is like steering, not like getting the car pointed straight down the road. Out job as programmers is to give the customer a steering wheel and give them feedback about exactly where we are on the road.
안되는 영어로 읽고 있는 중인 XP Explained 중. (제대로 뜻을 이해한건지. -_-;)
소프트웨어 개발을 운전을 배우는 것에 비유한 설명이 재미있네요. software project 의 Driver 는 customer 라는 말과.. Programmer 는 customer 에게 운전대를 주고, 그들에게 우리가 정확히 제대로 된 길에 있는지에 대해 feedback 을 주는 직업이라는 말이 인상적이여서. 그리고 customer 와 programmer 와의 의견이 수렴되어가는 과정이 머릿속으로 그려지는 것이 나름대로 인상적인중. 그리고 'Change is the only constant. Always be prepared to move a little this way, a little that way. Sometimes maybe you have to move in a completely different direction. That's life as a programmer.' 부분도.. 아.. 부지런해야 할 프로그래머. --;
최근 무지 하기 싫어하면서 억지로 했던 알바 하나가 있었죠. 기획도 늦게 나오고, 그러면서 해당 기일에는 제대로 맞출것을 얘기하면서 '너희들이 고생 좀 해줘라' 식으로 말하는 것도 괭장히 맘에 안들었었고. 시간쫓기며 프로그래밍 하는 중간에 '이기능 넣으면 어떻겠니? 이렇게 했으면 좋겠는데..'
그때는 괭장히 짜증나고 그랬었는데.. 한편으론 제가 도량이 더 넓었다면 어땠을까 하는 생각도 해봅니다. 애시당초 기획할때 제가 아는 범위 내에서 도와주려고 노력했다면, 프로그래밍 중간중간 완성된 것 보여주면서 원하는 것에 대해 제대로 수렴을 시킨건지 물어봤었더라면.
자기 자신의 게으름은 간과하면서 그러면서 맨날 뒷통수 치는 것이 '개발이 어떤 것인지 이해하는 사람이라면 이런식으로 일처리를 안할텐데..' 라는.
- LoveCalculator/허아영 . . . . 19 matches
사랑을 이름으로 이렇게 장난치면 안되요~ 왜냐하면 사랑은 마음속에 있는거거든요~
if(strlen(first_person) > 25 || strlen(second_person) > 25)
if(first_person_sum < second_person_sum)
}else{
if(name[i] >= 65 && name[i] <= 90)
}else if(name[i] >= 97 && name[i] <= 122)
}else{}
뭐..점수따위로 마음을 결정할 수 없는고야~ㅎ
음..그건 그렇고 변수를 사람1 사람2로 나눴는데.. 그걸 배열로 지정하면 같은 공식의 중복을 피할 수 있을듯..ㅎ
충고 고마워. 문제 한글로 낼께 ㅋㅋ
tolower(해당문자를 소문자로 바꿔줌, 소문자면 그대로)함수 또는 toupper(대문자로)를 쓰고 알파벳에서 숫자가 아닌 문자(alpha = alpha - 'a' +1)로 처리 하였다면 대소문자 따로 처리할 필요 없었고, 가독성 또한 좋아지지 않았을까? - [이영호]
글고 아영이 소스 보면서 지금 느낀건데; 내 소스 버그 있는거같다; 이름에 공백 있으면 내꺼 제대로 안될거같은데 ㄱ-;;; 어흑 ㅠㅠ
└ㅎㅎ 나두 getche 써서 했다가 띄어쓰기 없어도 될거 같아성 다시 scanf로 고친거였는데..ㅎㅎ 다시보니까 있어야 될듯도..
- NUnit/C#예제 . . . . 19 matches
1. C# 관련 프로젝트를 만든다. (예제에는 클래스라이브러리)
1. 솔루션 탐색기를 열어 현재 프로젝트의 참조 -> PopUp 참조추가 NUnit 의 nunit.framework 추가
1. NUnit gui나 console 브라우져로 빌드후 나온 dll 혹은 exe를 로딩해서 Test를 실행한다.
|| Upload:NunitByC#ExampleGui.gif ||
|| Upload:NunitByC#ExampleConsole.gif ||
== 단축키로 콘솔에서 UnitTest 실행하기 ==
이대로 쓰기에는 다른 xUnit에 비하면 사용이 불편하다. 하지만 몇 가지 설정을 해 놓으면 콘솔 실행을 자동으로 수행할 수 있다.
1. 메뉴에서 도구(tool)로 간다.
1. Command에는 설치한 NUnit 콘솔 프로그램의 경로를 적어준다.(예:C:\Program Files\NUnit 2.2\bin\nunit-console.exe)
1. Argument에 {{{ $(ProjectDir)\bin\debug\$(TargetName).exe }}} 라고 적는다. ( 보통은 디버그 모드에서서 컴파일 하므로 폴더가 debug이다. 릴리즈인 경우에는 release로 바꾸면 될 듯)
1. 이건 옵션이지만 Use Output Window를 선택하면 프로젝트 Output창으로 결과가 나온다.
1. Show Command Containing 밑에 있는 박스에서 방금 추가한 실행도구를 선택한다. 이 때 명령의 이름이 나오지 않으므로 NUnit을 실행하는 것이 몇 번째 실행 명령(External Command)인지 알아두어야 한다. 처음 실행 도구를 추가했다면 아마 External Command8 일 것이다. (VS2005경우는 외부명령1이 첫번째 External Tools임)
- SharedSourceProgram . . . . 19 matches
소스공유 프로그램(Shared Source Program)을 통해 주요 MS 제품군의 소스에 접근할 수 잇는 권한을 획득한다. 특히 소스공유 프로그램은 현재 한국과 호주 양국 MVP에게만 부여된 권한이다.
국내에서 MVP가 되고 싶다면 본인이 한국MS MVP 웹사이트에서 신청서를 다운로드해 담당자에게 접수시키면 된다. 현재 국내에서는 1년에 세번 선발하며, 한국MS 내부 심사 1차례와 두 차례의 MS 본사 심사를 통과해야 최종적으로 MVP 인증을 받을 수 있다.
MVP만의 뉴스그룹에서 창업한 경우도
리눅스를 정부 프로그램으로 채택하는 국가들이 세계적으로 늘어나고 있는 가운데, 마이크로소프트(MS)가 오피스 소스코드 공개를 통해 오픈소스 진영에 적극 맞서고 있다.
MS는 3년 전부터 `소스공유 이니셔티브'(Shared Source Initiative)라는 프로그램을 통해 협력업체들과 정부에 윈도 소스코드를 공개해왔다. 특히 최근 몇 년간 각 국 정부가 오픈 소스 진영으로 전환하는 것을 막기 위해, 정부와 특정 회사가 소스코드를 볼 수 있는 프로그램을 확대해왔다.
공대차원 학회 지원 프로그램의 한가지 방법으로 Shared Source Program 이 준비되고 있다고 한다.
돈을내고 라이센스를 받아야 하는 프로그램이라 학교측에서도 그전에 컴공의 각 학회들에게 어떤 방식으로 SSP를 활용해 나갈지를 먼저 물어보고 실제로 진행을 할 예정인가보다.
빠른 시일안의 대답이 필요하므로 많은 학우들의 많은 이야기가 있기를 바랍니다.
이야기가 나온지 어느정도 지났는데, 어떻게 하기로 했나요?--[Leonardong]
- TicTacToe/임인택 . . . . 19 matches
public class TicTacToe extends JFrame {
if( board[x][y] != __NONE )
if( b )
else
if( result != __NONE ) {
if( result == -3)
else if( result == 3)
if( winLose(checkPoint) ) return checkPoint;
if( winLose(checkPoint) ) return checkPoint;
if( winLose(checkPoint) ) return checkPoint;
if( winLose(checkPoint) ) return checkPoint;
if( winLose(checkPoint) ) return checkPoint;
if( winLose(checkPoint) ) return checkPoint;
if( winLose(checkPoint) ) return checkPoint;
if( winLose(checkPoint) ) return checkPoint;
if( choice == __O ) {
else if( choice == __X ) {
- django . . . . 19 matches
* 개발이 끝나고 실제로 서비스할 경우에는 apache + mod_python 으로 올려야 한다.
* html 이 있는 template 에 많은 것을 바라지 말자. 가능하면 view에서 데이터를 거의다 처리해서 template에 넘기는것이 좋다. template에서 받아온 데어터로 리스트와 맵 변수의 첨자(subscriber)로 사용하려고 했는데 안된다. 이러한 경우에는 view에서 데이터를 아예 가공해서 넘기는 것이 좋다.
* mysql 은 사용자를 생성하고 settings.py 파일을 설정한다. 그리고 pysqlite와 다른 점은 DB 이름을 넣고 나서 mysql 들어가서 따로 DB를 만들어 줘야 한다. 그리고 사용자도 만들어 줘야 한다.
* [http://linux.softpedia.com/progDownload/PySQLite-Download-6511.html pysqlite다운로드]
PythonPath "['<프로젝트 부모폴더>'] + sys.path"
SetEnv DJANGO_SETTINGS_MODULE <프로젝트 이름>.settings
[예시] /path/to/project/mysite 에 settings.py 파일이 있는 경우
실수로
* [http://altlang.org/fest/EnglishStudyWithDjango 대안언어축제에서실습한장고] : 실제로 웹 개발을 따라서 해본다.
= mod_python으로 동작시 admin 화면 깨짐 해결 =
* 원인은 CSS 를 제대로 로드하지 못해서임.
* [http://blog.go4teams.com/?p=56 django로블로그에비디오넣기]
* [django/ModifyingObject]
- 데블스캠프2006/목요일후기 . . . . 19 matches
그래도 새로운 것 많이 접할수 있어서 정말 좋습니다.
개인적인 사정으로 인해 처음이자 마지막 참여가 될 수밖에 없었던 데블스 캠프..[크흑!]
일주일간 풀로 참여하지 못한게 아쉬울 정도로 배운 것도 느낀 것도 많았습니다.
사실 코딩 자체를 스스로 논리를 생각하고 구현하는걸 잘 못하고 주변사람의 도움을 많이 받았었는데
오목을 코딩하면서 스스로 생각도 해보고 오류도 많이 겪었습니다.
개인적으로 오류 잡느라 시간을 너무 잡아먹었기 때문에
그래픽으로 만드는 것(GUI였던가..)이라던가 '객체화'와 '6목, 3X3 잡아내기'는 못했지만
오목을 구현화 했다는것만으로도 저에게는 큰 수확이었어요..[웃음]
API의 경우 완전 생소하기도 하고 API에 대한 기본적인 이론보다 코딩을 중심으로 가르쳐주셔서
마지막 아날로그 시계는.. 사각형, 원, 선 그리기를 RAND 함수로 하겠다고 했다가 시간을 너무 소비해버려서 구현하지 못했지만
(시간당 초기화하는거.. 그냥 srand(time(NULL)); 해도 됐었는데.. 선호 오빠가 SetTimer로 하면 되지 않겠냐고 하셔서 대략..ㅠㅠ)
저에게는 하루였지만 그 정도로 유익한 시간이었던거 같습니다^^/
옆에서 말 걸어도 못들을 정도로 집중하는 여러분의 모습에 감동..
물론 예상외로 빠른 반응이 올 경우에 대비한 강의분량도 있어야겠지만 그렇다고 해서 느릴 경우를 예상하지 못하면 더 실패할 수 있다.
- 데블스캠프2011/셋째날/String만들기/김준석 . . . . 19 matches
if(offset >= str.count){
else{
if(at>count) return '\0';
if(this->charAt(i) == str.charAt(0)){
if(this->charAt(select + j) != str.charAt(j)) select = -1;
if(select != -1) return select;
if(this->charAt(i) == str.charAt(0)){
if(this->charAt(select + j) != str.charAt(j)) select = -1;
if(select != -1) choice = select;
if(choice != -1) return choice;
if(count == 0) return true;
else return false;
if(this->equals(*temp)) return 0;
else return -1;
if(this->count != str.count) return false;
if(*temp != *temp2) return false;
if(s->subString(3,2)->equals(*s2)) cout << "꾸엑" <<endl;
//cout << s->lastIndexOf(*s2) << endl;
- 동문서버위키 . . . . 19 matches
중앙대학교 컴퓨터공학과 동문 간의 소통을 위해 최초로 연 위키.
동문서버위키가 현 상황에서 제로페이지의 위키나 다른 성공적 위키 사이트에 비해 상대적으로 사용이 저조하고 NoSmok:DegreeOfWikiness 가 낮고 무엇보다도 사람들이 해당 위키를 통해 얻는 "삶 속에서의 가치"(혹은 효용)가 없어서 한마디로 실패한 커뮤니티 사이트가 된 이유는 무엇일까.
사람들의 인식을 바꾸는데에 실패했다고 본다. 일단 사람들이 위키를 현재 (익명) 게시판의 연장 혹은 (조금 저열한) 보조물 정도로 여기는 인식이 굳어졌다고 본다. 특히 최근 동문서버위키를 살리려고 감성사전 페이지를 만드는 등 구제 노력이 있었으나 그것은 오히려 상황을 더 어렵게 만들었다고 본다. 한번 여러가지로 생각해 보고 분석하고 함께 논의해 볼 문제라고 생각한다. --김창준
여러가지 생각나는 대로 적어보면
* 테스트 기간때의 개인페이지의 영향 - 동문서버팀에서 '좋은 선례' 를 만들어보기 위해 동문서버 프로젝트 자체가 돌아가는 모습 (ex - [http://dongmun.cse.cau.ac.kr/phpwiki/index.php?PPGroup_Board 동문서버게시판프로젝트]) 을 일부러 위키에 남겨보고, 몇몇 사람들이 공동번역페이지나 스터디 페이지 같은 것들을 열어봤었지만. 이미 그때 사람들의 주 관심사들은 자신들의 페이지들에 일기를 남기는 것이였었죠. 그 이후, 인식을 바꿀만한 사건들이 나오지 않은 것 같습니다.
* 위키 스타일의 이해차이 - 이미 잘 정립된 위키스타일을 인식하고 있는 사람이 있던가 하면 그렇지 못한 사람들도 있었죠. 이미 잘 정립된 위키스타일을 알고 있는 사람들이 바로 위키초심자에게 해당 룰을 적용하는 일은 위험한 것이라는 것을 그때 느꼈죠. (일부 사람들은 자신들이 작성하던 페이지를 도로 삭제하기도 했었죠. 위키의 룰이 강제성이 없으며, 반론을 제기할 수도 있는 것임에도 불구하고 시간낭비하기 싫었던 것일까요.. 쩝) 위키의 룰은 결국 위키를 사용하는 사람들이 이용해나가면서 서로 암묵적으로 인정해나가는 것들이 룰로서 올라가지, TopDown 식으로 명령하달식으로 내려 올 수 없는것이겠죠.
* 주제의식의 부족 - 이것은 앞의 이야기와 이어지는데요. 인식을 바꾸지 못했던 점과 이어지죠. 주제에 대해서 [http://dongmun.cse.cau.ac.kr/phpwiki/index.php?%B5%BF%B9%AE%C0%A7%C5%B0 동문위키] 페이지에서 언급을 했었으면서도 실제로 열려있는 페이지들이 그러하지 못했죠. 이는 시험서비스였다는 점도 작용하겠지만, 시험서비스가 기간이 너무 길었죠. (기약없는 시험서비스기간) --석천
* 할말이 없네요. 다 옳은 말이니. 생각해 보면 동문위키를 프로젝트의 구심점으로 삼은 사람이 없다는게 이상할 정도 입니다. 더구나, 현재의 감정사전과, 개인의 신변 잡기식 글들이 늘어나면서 해당 툴의 접근 폭력성이 더 늘어나 사태가 더 심해지는 것 같네요. 현재 ZeroWiki 도 침체의 길을 가느냐, 아니면 꾸준히 활성화냐 이렇게 될것 같은데 약간 걱정입니다. --상민
- 몸짱프로젝트 . . . . 19 matches
DataStructure를 배우면서 나오는 알고리즘을 구현해보자는 취지로 만든 프로젝트페이지.
* 참고한 책 : ProgrammingPearls(번역서 [생각하는프로그래밍])
|| BubbleSort || [몸짱프로젝트/BubbleSort] ||
|| BucketSort || [몸짱프로젝트/BucketSort] ||
|| BinarySearch || [몸짱프로젝트/BinarySearch] ||
|| Invert 기능 || [몸짱프로젝트/Invert] ||
== 자료구조 숙제로 나왔던 것 ==
[몸짱프로젝트/CrossReference]
[몸짱프로젝트/BinarySearchTree]
[몸짱프로젝트/MinimalCostSpanningTree]
|| FindShortestPath || [몸짱프로젝트/ShortestPaths] ||
|| [Maze] || [몸짱프로젝트/Maze] ||
|| HanoiProblem || [몸짱프로젝트/HanoiProblem] ||
|| KnightTour || [몸짱프로젝트/KnightTour] ||
|| . || [몸짱프로젝트/DisplayPumutation] ||
|| prefix Infix postfix || [몸짱프로젝트/InfixToPostfix], [몸짱프로젝트/InfixToPrefix] ||
[프로젝트분류]
- 새싹C스터디2005/선생님페이지 . . . . 19 matches
* [Leonardong]의 빠른코딩을 위해서 의식적으로 마우스를 사용하지 않는 습관을 기르는 것도 참 좋겠다고 생각합니다.
* 스스로 생각해서 예제를 풀어나가는 연습도 중요할듯 싶네요.
* 배열을 추가했습니다. 배열(이중)을 제대로 가르쳐야 Linked List를 제대로 가르칠 수 있을 것 같네요. Linked List를 쓰는 이유를 알려면 이중 배열을 알아야한다 생각해요. 안쓰면 뭐가 안좋은지 알 수 있을테니까요. [이영호]
지금 배열과, 제어문까지 나간걸로 알고 있는데 지나치게 빠른건 아닌지 생각해 봅니다. 변수에 대한 입출력 연습이 지나치게 적었던것 같은데. 어떻게 생각하시나요?? - [톱아보다]
지난번 세미나를 잠깐 듣고 느낀것은 한번에 너무 많은것을 알려주려고 하는 것 같았습니다. 몇번의 세미나를 통해 프로그래밍 언어 한가지를 가르쳐주는 것은 불가능합니다. 주제를 더 줄이고 보다 확실하게 이해할 수 있도록 가르쳐 주는 것이 더 좋을 것 같습니다. 모든 부분을 설명하지 못해도 상관 없습니다. 어차피 언어는 스스로 익히는 것입니다. 우리가 할 일은 스스로 익히는 일에 보다 빨리 다가갈 수 있도록 조금씩 이해의 폭을 넓혀주기만 하면 되는 것입니다.
여러분들보다 조금은 세미나 경험이 많은 사람이기에 한가지 이야기만 드리겠습니다. 세미나를 통해 무언가를 설명할 때 정의(definition)에 대해서 명확하게 알려주도록 노력해 보세요. 여러분이 세미나를 한 후에 신입생들에게 "변수의 정의가 무엇이냐?", "함수의 정의가 무엇이냐?" 와 같은 질문을 한다면 신입생들이 대답을 할 수 있을까요? 혹은 여러분들은 이러한 질문에 명쾌하게 대답을 할 수 있습니까? 어떤 새로운 것을 배울 때 가장 중요한 것은 그것이 어디에 쓰이는 것인지, 그것이 어떻게 쓰는 것인지와 같은 것들이 아니라 그것이 무엇인지를 아는 것입니다. 무엇인지 확실하게 알아야 그 다음을 이해하는데에도 보다 쉽지 않을까요?
어디에 쓰이는 지는 스스로 알아 나가야할 것이라고 생각합니다. 저는 이번 스터디를 진행하면서 신입생의 스스로 알아가는 즐거움을 뺏는 것 같아서 불안합니다. -[강희경]
진도에 ㅤㅉㅗㅈ겨서 그렇게 되는 것 같습니다. 저도 스스로 알아가고 고민하는 과정을 즐길줄 알게 되는 기회가 되었으면 하네요. - [톱아보다]
오늘 집에 오면서 [프로그래머를위한공부론]을 다시 읽어봤는데(앞으로 수십 번은 다시 읽어봐야겠지만) 다음과 같은 구절이 있었습니다.
교육은 물고기를 잡는 방법을 가르쳐야 합니다. 어떤 알고리즘을 배운다면 그 알고리즘을 고안해낸 사람이 어떤 사고 과정을 거쳐 그 해법에 도달했는지를 구경할 수 있어야 하고, 학생은 각자 스스로만의 해법을 차근차근 '구성'(construct)할 수 있어야 합니다 (이를 교육철학에서 구성주의라고 합니다. 교육철학자 삐아제(Jean Piaget)의 제자이자, 마빈 민스키와 함께 MIT 미디어랩의 선구자인 세이머 페퍼트 박사가 주창했습니다). 전문가가 하는 것을 배우지 말고, 그들이 어떻게 전문가가 되었는지를 배우고 흉내 내야 합니다. 결국은 소크라테스적인 대화법입니다. 해답을 가르쳐 주지 않으면서도 초등학교 학생이 자신이 가진 지식만으로 스스로 퀵소트를 유도할 수 있도록 옆에서 도와줄 수 있습니까? 이것이 우리 스스로와 교사들에게 물어야 할 질문입니다.
이제 포인터에 대해서 다룰 예정인데. 저는 선생님들도 이해가 좀 부족하다고 생각합니다.(저만 그런가요ㅋ?) 다들 공부해 명확히 이해해서 잘 지도해주시고 스스로 발전도 하시길 바랍니다. -[강희경]
- 새싹교실/2011/AmazingC . . . . 19 matches
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 수업 시간을 '''목요일 1시 30분'''으로 확정지었습니다.
* C 프로그래밍과는 별개로 '''선형대수학'''도 수업 과목에 넣기로 하였습니다.
==== part1. 프로그래밍의 기초 ====
* 컴파일러, 링커, 전처리기, 디버깅 등의 프로그래밍의 기본적인 요소에 대해 알아보았다.
* [[박지호]]: 프로그래밍의 기초에 대한 내용을 배웠습니다. 수업 내용이 이미 배운 것이었지만 질 자체는 꽤 괜찮았다고 생각합니다. 또한 직접 ppt까지 제작하신 기호형의 성의가 돋보였습니다. 앞으로 수업에 대한 기대가 큽니다.
* 비트란 10진수의 숫자를 2진수로 바꿨을 때 디지털 숫자 한 자리를 비트라고 한다. 단, 맨 앞자리 비트는 부호 비트로 사용한다.
* 오버플로우 = 어떤 특정한 자료형이 표현할 수 있는 데이터의 범위를 벗어났을때 오버플로우가 발생했다고 한다.
* 식별자란 프로그램을 할때 사용자가 다른 것과 구분할 수 있도록 하는 것
* 식별자로 C라이브러리에서 제공하는 키워드(int, char, long, new등)는 쓸 수 없다.
* 우리가 char형 변수에 문자를 넣을땐 컴터가 문자로 저장을 하지 못한다!!(왜냐하면 컴퓨터는 숫자로 이루어진 기계니까)
* 조건문 if와 for, while, do while등에 대해 배웁니다.
- 새싹교실/2012/주먹밥/이소라때리기게임 . . . . 19 matches
= 프로그램 목적 =
//select에 정의된대로 정의된 함수들.
////////////////게임 프로세스 함수들.
int playerload(PLAYER *); //플레이어 로드
if(sora.skill.health <= 0 && player.skill.health <= 0){
else if(sora.skill.health <= 0){
else if(player.skill.health <= 0 ){
//select에 정의된대로 정의된 함수들.
printf("%s가 %s를 발로찹니다. 데미지 : %d 만큼 입혔습니다!\n",who->name,target->name,temp);
////////////////게임 프로세스 함수들.
if(select <= 0 || select > CLASSSIZE) select = -1;
printf("자힐 : 1 발로 차기 : 2 주먹 : 3 \n");
if(select > 0 || select <= SKILLSIZE){
if(select == menu[i].select){
if(select > 0 || select <= SKILLSIZE){
if(select == menu[i].select){
}//플레이어 로드
- 숫자를한글로바꾸기/김태훈zyint . . . . 19 matches
C++로 해볼라고 했으나; 너무많은 에러로 좌절하고 걍 씨로 했다..
글구 num2str 요함수.. 걍 수민이한것처럼 배열로 하면 되는데; 괜히 switch로 했다 ㅠㅠ 엉엉
char* num2str(int num); //숫자를 문자로 변경시켜줍니다.
void inputdata(char *getdata); // 5자리이하 숫자를 문자로 getdata에 배열로 입력받기
// 5자리이하 숫자를 문자로 getdata에 배열로 입력받기
if(strlen(getdata)>5) continue;
if(!is_numarray(getdata)) continue;
//모든 조건이 참이면 빠져나감.
//숫자를 문자로 변경시켜줍니다.
if(getdata[i]<48 || getdata[i]>57) return FALSE;
if(getdata[i] != '0')
if(!(i==0 && getdata[i] == '1')){
글게말이다 ㅠㅠ 내가 왜 저리 해두었는지 나두 쫌 뻘쭘하다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 걍 배열로 저리 해두면 됐는데.. 음 글고보니 영만 땡 치면 아무것도 안나오겠구나 ㅠㅠ
[LittleAOI] [숫자를한글로바꾸기]
- 스터디제안 . . . . 19 matches
각자 흥미로운 기사를 나눠 갖고 공부한 다음, 함께 모여서 발표하고, 토론하고, 제로페이지 위키에 그 내용을 요약해서 올린다. 기사를 번역할 필요는 없고 대충 어떤 내용인지, 그리고 소감 같은 것, 관련 정보를 함께 연결지어 올린다.
새로운 기술의 조류를 관망할 수 있을 것이다. 위 잡지들에서 한 번 크게 떠들고 나서 몇 달이 지나면 그제서야 국내 잡지에서 조금씩 모습을 드러내는 일이 다반사다.
더구나 제로페이지 위키에 오는 사람들의 눈높이를 한 단계 높여줄 수 있다. 컴퓨터 기술을 바라보는 안목이 훨씬 넓어질 것이다.
잡지 정리 스터디 같은 경우에는 정모때 정리한걸 간단히 발표 해도 상당히 좋을거 같습니다. 특정한 분야가 아니라 모든 회원들이 들어도 될만한 내용일 테니 회원들에게도 도움이 되고 정모의 입지도 높일 수 있을거 같습니다. - 상협
많은 경우, 특정 주제에 대한 스터디를 만들 때에는 가능하면 독립적인 아이덴티티를 드러내는 이름을 짓기보다, 그냥 공부하는 구체적 주제로 이름을 짓는 것이 나은 것 같습니다(반대로 특별한 이름을 짓는 것이 주는 장점도 많습니다). 어차피 스터디 그룹은 한시적인 것이고, 공부하자고 모인 것이지 어떤 조직을 만들자고 모인 것은 아니며, 해당 그룹이 공부한 내용은 이런 위키에 축적이 될 것이므로. 그룹의 공동체적 성격이 초점이 되고, 공부보다 "관계"가 중심에 놓이는 경우가 있는데, 이는 공부하는 사람들이 피해야할 것입니다. 같은 주제를 공부하고 싶은 사람들끼리 모여서 정말 열심히, 성실히 공부한 다음, 그 자료를 위키에 남기고, 다음을 기약하며 소리없이 해산하면 그만인 것이죠. 이 때의 또 다른 장점은, 다음에 그 주제를 공부하는 다른 스터디 그룹이 있을 때 이전에 스터디를 했던 사람들의 작업에 접근할 확률이 더욱 높아진다는 것이죠. 관계중심적인 공동체를 이루면 장점도 많지만, 외부에서 절연될 확률이 높아진다는 단점도 있는 것 같습니다.
스터디의 이름에 담겨 있는 정보가, 해당 분야나 스터디의 시기의 정보뿐 아니라, 목표에 부합하는 의미가 첨가되는 것 역시 의미있을 것으로 생각합니다. 이름을 읽을때 마다 목표를 상기시키는 역할도 겸할수 있어서, 거울의 역할을 할 수 있을 것입니다. 하지만, 말씀 하신대로 독립적인 주제와 독립적인 의미를 가지게, 목표만을 이름으로 삼는것은 스터디의 내용과 괴리 될수 있다는 위험때문에, 피해야 할 것으로 생각합니다. --["neocoin"]
''어떤 뜻인지? 해당 스터디의 목표로 이름을 짓는 것이 스터디 내용과 괴리될 수 있다라는 말이 해석이 안되는중. --["1002"]''
목표'''만'''으로 이름 짓는 것이라는 것이지 뭐, 예를들어서, ''C++ 잘해 보자 훌륭한 넘 되자'' 라는 목표땜에, {{{~cpp GoodGuy}}} 이라고 이름 지으면 --;; --["neocoin"]
''설마.; 너무 비약시키는거 아닌지; 위의 글은 '공부하려는 대상, 주제를 이름그대로 쓰자'인데. ["1002"]''
내가 받아들이는 것은, 공부하는 주제로만 짓자는 것 으로 내가 착각을 한 모양이군. 그래서 목표를 섞어도 별 상관 없다는 생각이었는데? --["neocoin"]
- 정모/2011.4.4/CodeRace/김수경 . . . . 19 matches
* 2011년 4월 4일 정모에서 진행된 레이튼 교수와 함께하는 CodeRace.진행자라서 직접 CodeRace에 참여하지 못한 것이 아쉬워 늦게라도 코딩해본다. 오늘 정말 일찍 자려고 했는데 누워있다가 이거 너무너무 짜보고 싶어서 갑자기 잠이 슬슬 깨길래 어떻게 할 지 고민. 고민하다 잠이 달아날 정도로 하고 싶은 것은 그냥 넘기면 안 되겠다 싶어 새벽 3시에 일어나 코딩 시작.
* [TDD]로 개발하려 했는데 rake aborted! No Rakefile found. 라는 메세지가 뜨면서 테스트가 실행되지 않아 포기함. 한시간동안 계속 찾아봤지만 모르겠다. 영어 문서를 읽으면 답이 있을 것 같은데 더 이상은 영어를 읽고싶지않아ㅜㅜㅜㅜㅜㅜ
* 모든 사람이 A 마을에서 B 마을로 건너간다.
* 레이튼 교수가 A 마을에서 B 마을로 건너간다.
end
end
end
if !layton.location
end
* 레이튼 교수는 배를 타고 맞은편 마을로 건너갈 수 있다.
end
end
end
end
end
if !layton.location
end
* 돈 파울로
* 돈 파울로는 레이튼 교수가 없으면 루크를 강에 던져버린다.
- 지금그때2005/홍보 . . . . 19 matches
자기도 모르게 지나가 버린 시간에, 앗 벌써 10시야? 하는 생각이 들만큼 빨리 지나가 버린 시간으로 인해 많은 얘길 못햇던게 안타깝습니다. - 04 김동경
시간이 지날수록 달아오르는 강의실의 공기 속에서 마무리 선언을 할 수 밖에 없었던 것이 아쉬움으로 남는군요. 참여하신 모든 분들 - 류상민
지금..그때..가 컴공의 전통으로 남기를 바랍니다. 선배님들의 많은 이야기를 듣게 되어 정말 후회없는 시간이 되었습니다. - 04 박능규
정말 안 온사람들은 후회할 정도로 멋진 자리였다고 생각합니다. 위에 분들이 다 하신 얘기라서 지겹겠지만 역시..이런 자리가 자주 있었으면 하네요.
OST가 말 없는 사람의 입도 열어준다는 말을 듣고 반신반의했었는데, 정말 어제 평소에 말이 별로 없던 새내기들(저를 포함)도 이야기를 열심히 하더군요. - 인수
중앙대학교 전통으로 계속 이어간다면 좋겠습니다. 03 노수민
앞으로도 역사와 전통을 자랑하는 모임이 계속 이어졌으면 하는 바람입니다. -03 황재선-
앞으로도 이런 자리가 지속적으로 마련됐으면 좋겠네요. - 주현
<B><FONT COLOR="GREEN">"2005년 지금그때"</FONT>는 그런 바람으로 만든 이야기 자리입니다. 놀이처럼 진행되는 행사 속에서 재미와 더불어 많은 것을 얻으리라 생각합니다.
<font color = "Magenta"><a href = "http://zeropage.org/~dduk/memo/memo.php?id=nowthen2005"> 신청하러 가기 </a></font>
<font color = "Magenta"><a href = "http://zeropage.org/wikis/nowthen2004/_c1_f6_b1_dd_b1_d7_b6_a72004_2f_c8_c4_b1_e2"> 더 많은 2004년 후기 보러가기 </a></font>
여러분이 지금 알고 있는 것을 중,고등학교 때 알았더라면 좋았을 무언가가 있습니다. 마찬가지 생각을 대학을 오래 다니다 보면, 졸업하고 사회에 나가보면 하게 될 겁니다. 선배가 아쉬웠던 점에 대해 후배와 함께 이야기 나누는 자리가 바로 '지금그때'입니다. 여기서는 학번으로 결정되는 선후배 뿐 아니라 인생 선후배로서 서로의 경험을 이야기할 수 있는 자리입니다. 이성관계, 학점, 영어, 군대, 휴학, 복학, 그 밖에 어떤 주제를 가지고도 이야기 할 수 있습니다.
더불어 대학 생활 내내 접해보지 못 할 수도 있는 OST라는 너무도 신기한 토론 방식을 체험할 수 있습니다. 제로페이지에서 국내 대학 최초로 시작했기 때문에 자부심을 가지셔도 좋습니다. 자신이 내성적이라서 토론이라면 듣고만 있지 않을까 생각하시던 분들도, OST를 하면 자신이 얼마나 활발히 토론에 참여하는지 알게 되고 놀라실 겁니다.
http://zeropage.org/~dduk/memo/memo.php?id=nowthen2005
- 2학기자바스터디 . . . . 18 matches
일단 임시로 페이지부터 만듭니다
자세한건 모여서 정하기로 하구요
그리고 배운걸 바탕으로 간단한 프로그램을 완성하고요
DeleteMe) 제 생각에는 프로젝트를 하나 진행하는 것이 낳을 것 같습니다. 책의 내용을 그대로 따라가다 보면 굉장히 지루합니다. 그냥 프로젝트를 하나 선정해서 하는 것이 재미있을겁니다. 그리고 교제는 흠... 여러분들이 영어라고 안보는 레퍼런스와 튜토리얼이면 충분하다고 생각이 들지만 그게 아니라면 비싼거 말고 싼걸루 좋은책 하나 선정해서 보시기 바랍니다^^; -[상욱]
아~ 참고로 저의 게으름으로 방학 중 자바 스터디가 허술한 점은 사과드립니다;;; -[상욱]
오히려 우리들이 더 게으르게 했죠 ㅡ.ㅡ;;; 많이 나가진 못했지만 그래도 개념적인 면(객체지향이나 클래스..)에서 자세히 설명해 주셨는데... 앞으로 도움이 많이 될것 같아요... 계속 공부하는 후배들이 남았다는것만 해도 큰 성과지요 ^^ -세환
추석끝나고 본격적으로 시작하죠... 교재는 따로 정하지말고 도서관에서 읽기 쉬운걸로 골라서 보면 될것 같구요... 프로젝트까지는 아니어도 간단한 프로그램짜는걸로 해요(toy problem이나 5인용스터디에서 했던것처럼) -세환
교재는 [게임을 만들며 배우는 자바 프로그래밍]이고 지금목표는 테트리스, 더 나아간다면 네트웍테트리스...
[프로젝트분류] [JavaStudy2003]
- AI오목컨테스트2005 . . . . 18 matches
* 프로젝트 종료.
* 상품은 과제 해온 현태에게로..
= 프로젝트 결과 =
* http://zeropage.org/trac/namsangboy/browser/Omok - 상협의 Python으로 만든 오목 AI (기초적인 것만 함)
* 1학년에게는 좀 무리였나 보다. 왠만하면 1학년 프로젝트로는 적절하지 않은것 같다. 다시는 1학년 프로젝트로 안하는게 좋을것 같다. 프로젝트 선택을 잘못한것 같다. 어떻게 생각하면 3학년 AI 팀플이 오목과 비슷한 오델로 AI 짜는건데 일학년에게 짜라고 한것은 좀 오바였나 보다. 이 프로젝트에서 결과물을 만들지 못한 회원들도 좌절은 하지 말고 열심히들 해 나가길~ - [(namsang)]
|| 1/19 || 4시 칠피 || 3개 연속으로 두었을때 막기/상협,현태 (민경, 태훈은 못해옴) || 진행상황. || 없음||
|| 2/02(목) || 4시 칠피 || 3개 연속으로 두었을때 막기/MFC연습(집그리기 - 민경, 태훈) || 진행상황. || 없음||
아마도 파이선으로 저번에 짜려고 하는거 같던데... 5월에 구상하던 일이 방학에.. ^^;; - [eternalbleu]
앗 원래 파이썬으로 해볼까 하다가 MFC로 하는거 더 쉬울거 같아서 MFC로 전환,, - [(namsang)]
제가 참가하는 프로젝트 책만 다 사도 거덜나겠는데요?ㅋㅋ - [민경]
- AOI/2004 . . . . 18 matches
잠깐 다른 사람 소스들을 봤는데 이런식이 많더라. 나쁘다는 건 아니다. 실제로 재동과 상규가 프로그래밍대회에서는 저런식으로 했었다. 이유는 대회에선 무조건 속도전이라 함수 이름이나 함수의 길이는 신경쓰지 못하기 때문이였다. 하지만 적어도 대회가 아닌 연습에서는 좀 더 흐름을 알아보기 쉽게 하는게 좋을 거 같다. --재동
오늘은 오래간만에 C++로 코딩해 봤다. 속도 최우선 프로그래밍으로... 다음에 할 때는 다른 언어로, 또는 OOP로, 또는 TDD로 코딩해봐야겠다. --재동
열심히 코딩하는 건 보기좋다. 하지만 소스 코드에서 냄새가 많이 난다. 너네가 만날 때는 그때까지 짰던 소스 코드를 서로 바꿔가며 좋은점, 고칠점에 대하여 논하고 리팩토링 해보면 도움이 많이 되겠다. --재동
용두사미! 왜 끝은 흐지부지 되는 경향이 있을까요? 쉽고, 재밌는(?) 문제 위주로 올릴테니 우리 모두 힘내서 풀어보아요! - 보창
uva robot의 경우 보통 300 번 이상의 test case 를 쓰는 것 같습니다. 동적 메모리가 아닌 정적으로 할당할 경우 이 점을 유의(?)하지 않으면 RE error(포인터 에러)가 납니다. 보창은 이것때문에 하루종일 프로그램을 뜯어고쳤으나, 결국 우연한 기회에 알게 되었습니다. LCD-Display의 경우 robot은 1000줄 이상을 test하는 걸로 보여집니다. -- 보창
- AdventuresInMoving:PartIV . . . . 18 matches
워털루에서 대도시로 이사를 가려고 하는데, 이삿짐 트럭을 빌려서 갈까 생각 중이다. 그런데 요즘 기름 값이 하도 비싸서 가는데 기름 값이 얼마 정도 들지 미리 계산해보고자 한다.
이 트럭은 1킬로미터를 가는 데 1리터의 기름이 필요하다. 기름통은 200리터다. 워털루에서 트럭을 빌릴 때는 기름통이 절반만큼 차 있다. 나중에 대도시에서 차를 반납할 때도 기름은 절반 이상 채워 놓아야 한다. 그렇게 하지 않으면 렌탈 회사에 훨씬 비싼 비용을 지불해야 한다. 기름 값은 최대한 아끼고 싶지만, 그렇다고 해서 길 위에서 기름이 바닥나서 멈춰서는 일은 없도록 해야 한다.
첫 줄에는 테스트 케이스의 개수를 나타내는 양의 정수가 입력되며, 그 다음 줄은 빈 줄이다. 각 테스트 케이스는 정수만으로 구성된다. 첫번째 정수는 워털루에서 대도시까지의 거리를 킬로미터 단위로 표시한 것으로, 최대 10,000이다. 그 밑으로는 출발지로부터 거리가 가까운 것부터 먼 것 순서로, 주유소에 대한 정보가 입력되며, 최대 100개까지 입력될 수 있다. 각 주유소에 대해 워털루로부터의 거리(킬로미터 단위)와 휘발유 1리터당 가격(0.1센트 단위)이 입력된다. 리터당 휘발유 값은 최대 2,000(즉 200센트 = 2달러)이다. 서로 다른 테스트 케이스 사이에는 빈 줄이 입력된다.
각 테스트 케이스에 대해 워털루에서 대도시까지 가는 데 드는 연료비의 최소 값을 출력한다. 문제의 제약조건에 따를 때 워털루에서 대도시까지 갈 수 없으면 "Impossible"이라고 출력한다. 서로 다른 테스트 케이스에 대한 결과 사이에는 빈 줄을 출력한다.
음. 나중에 대도시에서 차를 반납할 때도 기름은 절반 이상 채워 놓아야 한다. 여기서 절반 이상이라는 조건에 주의를 하지 않으면 안됩니다. -- 보창
위의 테스트 케이스를 보면 처음에는 거리가 100인 주유소에 무조건 가야합니다. 그러면 기름은 0이 되고, 스터디때 말한 방법으로 하면 앞의 200까지를 살피고, 가장 작은 가격이 있는 곳인 (200, 777) 까지 갈 수 있는 기름 100을 넣고 출발합니다. 그러나 여기서 살펴보면 최적의 해는 여기서 50만큼의 기름만 넣고, 150의 지점에서 또 50의 기름을 넣어서 (200,777)에 가는 경우입니다. -- 보창
- CNight2011/고한종 . . . . 18 matches
많이 모일거라 예상했는데 6피에서 내려온 그 인원 그대로라 당황 ㅋㅋ
누님께 배열과 포인터의 기본, 주소에 의한 .. 뭐라고해야하나 암튼. 근본적으로 배열은 포인터와 동일. 이런것을 배웠다.
배열이 근본적으로 포인터란 것은 이미 알고 있었으나 실제 컴파일러에서 이런식으로 표현 된다는 것을 배웠다.
실제 메모리상에서는 2차원이든 3차원이든 메모리상에서는 그냥 선형으로 저장된다.
일단 뭘하는 것 인진 제대로 알았다.
사용법은 생각이 나질 않는다.. 사실 이때 졸려서 한귀로 듣고 거의 흘림..
목록의 중간에 삽입,삭제가 그냥 배열에 비해 매우 편리하므로 자주 사용된다.
즉, 프로그래머는 힘들고 사용자는 편하다는얘기...
10은 배열로 치면 dia[ 10]을한 셈이 된다.
이대로 라면 변수가 10개짜리인 배열을 heap 선언한것과 같다.
본래 의도대로라면 배열이 '터지는'때를 캐치해서 realloc으로 배열의 갯수를 늘려주려고 했으나
C언어에서 int a[ 2]={1,2} 선언후 printf("%d",a[2]); 같은 경우도 허용하므로 언제 터지는지 알 수가 없었다..
if(i%10==0)realloc(dia,sizeof(float)*10*k++);이라고 했다.
많은 경우에 매모리를 복사해야하니까.
그러니까 애초에 heap에 엄청큰 공간을 할당하고, 버퍼를 통해 값을 임시저장한뒤, 다차면 큰공간으로 옮기고 입력이 끝나면 realloc을 통해 큰공간을 알맞게 줄여주는 그런것이 더 좋다고 하는데 난 잘모르겠닼
- CryptKicker2/문보창 . . . . 18 matches
if (input(s, rule))
else
if (i != nCase-1)
cout << endl;
if (isreplace(str))
if (serch)
if (len != PROPER_LEN) // 1차 - 길이 비교
else if (!(str[3] == ' ' && str[9] == ' ' && str[15] == ' ' && str[19] == ' ' && str[25] == ' ' &&
if (isalpha(str[i]))
if (alpa[i] == 2)
else if (alpa[i] == 3)
else if (alpa[i] == 4)
if (!(count2 == 4 && count3 == 1 && count4 == 1)) // 알파벳 빈도수 조사
if (isalpha(str[i]))
if (isalpha(s[i]))
- ErdosNumbers/차영권 . . . . 18 matches
if (*c == '.' && (*(c+1) == ',' || *(c+1) == ':'))
if (strcmp(author[i][j].name, "Erdos, P.") == 0)
if (k == j)
else
if (count2 == 0)
if (isThere(author[i], saveBound[i]))
else
if (strcmp(search[k], author[i][j].name) == 0)
cout << "Scenario " << scenario++ << endl;
if (saveResult[i] == 2)
cout << "infinity" << endl;
else
cout << saveResult[i] << endl;
if (strcmp(author[i].name, name) == 0)
if (author[i].erdosNumber == 1)
else
if (author[i].erdosNumber == 1)
else
- JSP/SearchAgency . . . . 18 matches
class OneNormsReader extends FilterIndexReader {
if (normsField != null)
if (queries != null) {
} else {
if(line!=null)
if (repeat > 0) { // repeat & time as benchmark
Date end = new Date();
out.println("Time: "+(end.getTime()-start.getTime())+"ms");
int end = Math.min(hits.length(), start + HITS_PER_PAGE);
for (int i = start; i < end; i++) {
if (raw) { // output raw format
if (path != null) {
if (title != null) {
} else {
if (queries != null) // non-interactive
if (hits.length() > end) {
if (line.length() == 0 || line.charAt(0) == 'n')
- KnightTour/재니 . . . . 18 matches
* 시작 지점을 (0, 0) 부터 (7, 7) 까지 64가지로 하여 순서대로 검색한다.
#if !defined(AFX_KNIGHT_H__B5234B12_3582_4CB8_8253_6ADFBE7B5E68__INCLUDED_)
#if _MSC_VER > 1000
#endif // _MSC_VER > 1000
#endif // !defined(AFX_KNIGHT_H__B5234B12_3582_4CB8_8253_6ADFBE7B5E68__INCLUDED_)
printf("\n\n경 로 :\n");
if (counter % 32 == 31)
if (direction > 7) { // BackStep
if (m_CurrentRow < 0 || m_CurrentRow > 7
* 와하하~ 페이지 이름 잘못 적어서 새로 만들다..ㅡ.ㅡ;;; -[재니]
나이트가 위치한 셀이 고립된 경우 BackStep 과정을 한 번 더 실행하면 루트를 찾는 시간이 훨씬 짧아짐.
* 셀이 고립되면 어차피 다른 경로로 접근할 수 없어서 BackStep 을 두번 한 건데...
몇몇 경우에서 broot-force 보다 더 검색을 많이 하는 경우도 발견됨.
- LawOfDemeter . . . . 18 matches
within our class can we just starting sending commands and queries to any other object in the system will-
Specifically missing from this list is methods belonging to objects that were returned from some other
()). Direct access of a child like this extends coupling from the caller farther than it needs to be. The
caller is depending on these facts:
Now the caller is only depending on the fact that it can add a foo to thingy, which sounds high level
enough to have been a responsibility, not too dependent on implementation.
The disadvantage, of course, is that you end up writing many small wrapper methods that do very little but
something somewhere else. This tends to create fragile, brittle code.
Depending on your application, the development and maintenance costs of high class coupling may easily
It helps to maintain the "Tell, Don't Ask" principle if you think in terms of commands that perform a very
specific, well defined action.
It helps you to think about class invariants if you class is primarily command based. (If you are just
If you can assume that evaluation of a query is free of any side effects, then you can:
The last, of course, is why Eiffel requires only side-effect free methods to be called from within an
Assertion. But even in C++ or Java, if you want to manually check the state of an object at some point in
the code, you can do so with confidence if you know the queries you are calling will not cause anything
else to change.
- LongestNap/문보창 . . . . 18 matches
int end;
if (a.start < b.start)
else return false;
const int END_TIME = 18;
pro[i].end = ehour * 60 + emin;
if (naptime < (pro[i].start - pro[i-1].end))
naptime = pro[i].start - pro[i-1].end;
nap.start = pro[i-1].end;
if (naptime < (END_TIME * 60 - pro[nPro-1].end))
naptime = END_TIME * 60 - pro[nPro-1].end;
nap.start = pro[nPro-1].end;
nap.end = nap.start + naptime;
if (nap.start%60 < 10)
else cout << nap.start%60;
int during = nap.end - nap.start;
if (during >= 60)
else
- MobileJavaStudy/NineNine . . . . 18 matches
메뉴로 단을 선택하여 구구단 출력.
public class NineNine extends MIDlet implements CommandListener{
if (c == nextCommand) {
form.append(str);
else if (c == exitCommand) {
notifyDestroyed();
else if (c == backCommand) {
public class NineNine extends MIDlet implements CommandListener {
nineDanList.append(String.valueOf(i) + " dan", null);
if(c == selectCommand) {
danForm.append(String.valueOf(dan) + " * " + String.valueOf(i)
else if(c == backCommand) {
else if(c == exitCommand) {
notifyDestroyed();
- OurMajorLangIsCAndCPlusPlus/locale.h . . . . 18 matches
location specific information 를 setting 하는데 유용한 라이브러리
== 매크로 ==
#define LC_ALL (integer constant expression) 모든 카테고리에 대한 로케일 설정을 위한 환경변수이다
#define LC_COLLATE (integer constant expression) 스트링(string)의 정렬 순서(sort order 또는 collation)를 위한 로케일 설정을 위해 사용
#define LC_CTYPE (integer constant expression) 문자 분류(알파벳, 숫자, 한글 또는 소문자, 대문자 등등), 변환, 대소문자 비교을 위한 로케일 설정을 의미
#define LC_MONETARY (integer constant expression) 금액 표현(천단위 구분 문자, 소수점 문자, 금액 표시 문자, 그 위치 등)을 위한 로케일 설정
#define LC_NUMERIC (integer constant expression) 금액이 아닌 숫자 표현(천단위, 소수점, 숫자 그룹핑 등)을 위한 로케일 설정
#define LC_TIME (integer constant expression) 시간과 날짜의 표현(년, 월, 일에 대한 명칭 등)을 위한 로케일 설정 예를 들어 strftime(), strptime()
|| char* setlocale(int category, const char* locale); || category에 대해 로케일 locale을 설정하고 (물론, 사용 가능한 로케일인 경우), 설정된 로케일값을 리턴. ||
/* 현재 로케일명을 알아낸다. */
/* setlocale()의 재호출 의해 변경될 것을 대비해 로케일 이름을 미리 복사해 둔다. */
if (saved_locale == NULL)
/* 로케일을 변경하고 subroutine을 수행한다. */
/* 원래의 로케일로 복귀한다. */
- Pairsumonious_Numbers/권영기 . . . . 18 matches
if(checkans[i] != temp[i])return 0;
if(s == n+1 && checker()){
for(it1 = iter; it1 != sum.end() && !flag; it1++){
for(it2 = temp; it2 != sum.end() && !flag; it2++){
if(ans[s-2] <= ans[s-1] && ans[s-1] <= ans[s]){
tempit = find(it2, sum.end(), ans[s-1] + ans[s]);
//back(s+1, find(it2, sum.end(), ans[s-1] + ans[s]));
if(start == 1){
else if(start == 0){
for(iter = sum.begin(); iter!=sum.end(); iter++){
if(ans[1] <= ans[2] && ans[2] <= ans[3]){
tempit = find(sum.begin(), sum.end(), ans[2]+ans[3]);
//back(4, find(sum.begin(), sum.end(), ans[2] + ans[3]));
if(flag)break;
if(!flag)printf("Impossible");
else{
if(i != n)printf(" ");
- Polynomial . . . . 18 matches
다항식의 곱셈을 이용하는 프로그램을 작성한다.
하나의 항은 coefficient 와 exponent 로 구성된다. 하나의 항(단항식)을 표현하는 자료구조는 다음처럼 구조체를 사용한다. (여기서는 지수와 밑모두 integer를 사용한다)
다항식을 표현하는자료구조는 크게 두가지로 생각해 볼 수 있다. linked list 와 array 이다. 배열은 모두들 잘 알겠고 linked list 는 동적으로 storage를 할당받아 각 노드를 포인터로 연결한 자료구조를 말한다..(라고 우선 설명만 해둬야지 정확한 정의는 내리지 못하겠다..-_-). 물론 동적으로 할당받지 않고도 linked list 를 구현할수 있지만 그럴꺼면 배열로 하는게 낫지 그 노가다를 뭐하러 하나...-_-
Node expr_1[SIZE]; // 이와 같은 식으로 표현한다.
이 방법을 사용할때 발생할수 있는 문제점은 memory leakage (메모리 누수)이다. Java같은 경우는 쓰레기 수집기가 있지만 c 는 코더(-_-)가 일일이 사용되지 않는 자원을 회수해줘야 한다. 그렇지 않으면 그 자원을 다시 사용할 수 없게 된다.
=== specification ===
Node* mul(Node *n1, Node *n2); // 두 다항식의 곱을 표현하는 새로운 다항식을 리턴한다.
Node* add(Node *n1, Node *n2); // 두 다항식의 합을 표현하는 새로운 다항식을 리턴한다.
Node* add(Node *n1, Node *n2); // 두 다항식의 차를 표현하는 새로운 다항식을 리턴한다.
/* 문제점 : 다음과 같은 경우는 어떻게 처리해야 할까?
Node* input(); // 사용자에게 값을 입력받아 새로운 다항식을 생성하여 리턴한다.
void sort(Node *node) // 다항식을 내림차순으로 정리한다.
다음과 같은 자료의 합, 차, 곱을 리턴하는 프로그램을 작성하시오
* 다항식을 표현하는 클래스를 만들어서 operator overloading 을 사용해도 되겠지만 이는 위에 말한 내용을 이미 구현한 후 이걸 클래스로 포장하는거기때문에 지금수준에서는 무리라고 생각됨... - 임인택
- ProgrammingWithInterface . . . . 18 matches
책에서는 말한다. 많은 개발자들이 [[OOP#s-1.2|인터페이스]] 보다는 [[OOP#s-1.2|상속]]을 사용하여 개발한다고... 그렇다! 사실이다. 나도 여지껏 인터페이스로 무장한 코드를 보지 못했다.
언제나 개발을 할 때 '어라~ 같은 일 하는데? 이거 Base 클래스 만들어서 위로 올려야 겠는데?' 일말의 틈도 주지 않고 실행한다. 다형성을 사용하는 코드를 생성한다. '와우~! 한결 깔끔해 졌는걸?' 하지만 오산이었다. 시간이 지나서 먼가 추가할 동작들이 생겼다. 이제 고치기 시작한다. Base 클래스 부터... 고치고 나니 컴파일이 되지 않는다. 코드 수정의 여파가 하위 클래스들에게 까지 미친다. 정말 미친다. 이런 상속을 통한 계층 구조는 상위 클래스와 하위 클래스의 결합도를 높여준다. 지나 치게 크게..! 동감하지 않는가? 하나를 고쳤는데 수정할 꺼리가 마구 쏟아지는 상황을...
상속을 사용하는 상황을 국한 시켜야 할 것같다. 상위 클래스의 기능을 100%로 사용하면서 추가적인 기능을 필요로 하는 객체가 필요할 때! .. 이런 상황일 때는 상속을 사용해도 후풍이 두렵지 않을 것 같다. GoF의 책이나 다른 DP의 책들은 항상 말한다. 상속 보다는 인터페이스를 통해 다형성을 사용하라고... 그 이유를 이제야 알 것같다. 동감하지 않는가? Base 클래스를 수정할 때마다 하위 클래스를 수정해야 하는 상황이 발생한다면 그건 인터페이스를 통해 다형성을 지원하는게 더 낫다는 신호이다. 객체는 언제나 [[SOLID|SRP (Single Responsiblity Principle)]]을 지켜야 한다고 생각한다.
class Stack extends ArrayList {
상위 클래스가 가지는 메소드가 적다면 모두 [오버라이딩]하는 방법이 있지만 만약 귀찮을 정도로 많은 메소드가 있다면 오랜 시간이 걸릴 것이다. 그리고 만약 상위 클래스가 수정된다면 다시 그 여파가 하위 클래스에게 전달된다. 또 다른 방법으로 함수를 오버라이딩하여 예외를 던지도록 만들어 원치않는 호출을 막을 수 있지다. 하지만 이는 컴파일 타임 에러를 런타임 에러로 바꾸는 것이다. 그리고 LSP (Liskov Sustitution Principle : "기반 클래스는 파생클래스로 대체 가능해야 한다") 원칙을 어기게 된다. 당연히 ArrayList를 상속받은 Stack은 clear 메소드를 사용할 수 있어야 한다. 그런데 예외를 던지다니 말이 되는가?
자.. Stack과 ArrayList간의 결합도가 많이 낮아 졌다. 구현하지 않은 clear 따위 호출 되지도 않는다. 왠지 합성을 사용하는 방법이 더 나은 것 같다. 이런 말도 있다. 상속 보다는 합성을 사용하라고... 자 다시 본론으로 들어와 저 Stack을 상속하는 클래스를 만들어 보자. MonitorableStack은 Stack의 최소, 최대 크기를 기억하는 Stack이다.
class MonitorableStack extends Stack {
if(size() > maxHeight)
if(size() < minHeight)
와!~ 예전의 Stack보다 성능은 확실히 좋아 졌을 것이다. 그런데 문제가 발생했다. 더이상 pushMany 메소드에서 push 메소드를 호출하지 않는다. 이렇게 되면 MonitorableStack은 더이상 Stack의 최대 크기를 추적하지 못하게 된다. 예기치 않은 결과이다. 상속을 사용한 구현으로 발생한 문제이다. 여기까지 글을 (책의 내용) 읽었다면, 아마 '상속을 사용하기 전에 한번 더 생각하는게 좋겠다' 라는 생각을 가슴 깊이 느꼈을 것이다. 아니면 별수 없는 일이다... :(
if(stack.size() > maxHeight)
if(size() < minHeight)
if(stack.size() > maxHeight)
완성된 코드에서는 상속으로 인한 문제들이 발생하지 않는다.
- ProjectPrometheus/개요 . . . . 18 matches
나는 우리학교 도서관에 아마존 스타일의 시스템(많이도 말고, 도서별 리뷰 등록, 별표 평가, 고객 클러스터링을 통한 서적 추천, 도서별 대출/검색 횟수를 통한 베스트셀러 집계 및 이에 대한 통계 분석 -- 예컨대 공대 학생의 베스트셀러, 경영학과의 베스트셀러, 4학년의 베스트셀러 등 -- 같은 것만이라도) 을 도입하면 학생들의 독서량이 두 배는 높아질 것이라고 확신하며, 이것이 다른 곳(정문 바꾸기 등)에 돈을 쓰는 것 몇 십 배의 가치를 지속적으로 만들어 낼 것이라 믿는다. 이제는 도서관도 인터넷 서점을 벤치마킹 해야 한다.
지금 도서관의 온라인 시스템은 상당히 오래된 레거시 코드와 아키텍춰를 거의 그대로 사용하면서 프론트엔드만 웹(CGI)으로 옮긴 것으로 보인다. 만약 완전한 리스트럭춰링 작업을 한다면 얼마나 걸릴까? 나는 커스터머나 도메인 전문가(도서관 사서, 학생)를 포함한 6-8명의 정예 요원으로 약 5 개월의 기간이면 데이타 마이그레이션을 포함, 새로운 시스템으로 옮길 수 있다고 본다. 우리과에서 이 프로젝트를 하면 좋을텐데 하는 바램도 있다(하지만 학생의 사정상 힘들 것이다 -- 만약 풀타임으로 전념하지 못하면 기간은 훨씬 늘어날 것이다). 외국의 대학 -- 특히 실리콘벨리 부근 -- 에서는 SoftwareEngineeringClass에 근처 회사의 실제 커스터머를 데려와서 그 사람이 원하는 "진짜" 소프트웨어를 개발하는 실습을 시킨다. 실습 시간에 학부생과 대학원생이, 혹은 저학년과 고학년이 어울려서(대학원생이나 고학년이 어울리는 것이 아주 중요하다. see also SituatedLearning ) 일종의 프로토타입을 만드는 작업을 하면 좋을 것 같다. 엄청나게 많은 것을 배우게 될 것이다.
이런 프로젝트가 컴공과 학생에게 쉽게 떨어질리는 만무하다. 그래서 대부분은 디자인 단계에서 끝내게 된다. 유스케이스 몇개 그려보고 끝나는 것이다. 좀 더 용감하고 야망이 높은 사람들은 밑바닥부터 구축을 해나갈지도 모르겠다. 어찌 되었건 프로그래밍은 중요하다. 빌게이츠가 늘 하는 말이 "Code is the thing"이란다. 만약 프로그래밍을 직접 해보지 않고 끝내게 되면 자신이 배울 수 있는 엄청난 크기의 빙산을 그냥 지나치는 셈이다.
즉, 현재의 도서관 시스템을 일종의 웹서비스로 이용하는 것이다. 직접 CGI로 쿼리를 보내고 받아오는 HTML을 파싱해서 적절한 XML로 치환해주는 레이어를 만든다. 이렇게 하면 "일반적 도서관 랩퍼"를 만들 수 있다. 즉, 어느 도서관 시스템에든지 약간만 수정하면 적용할 수 있게 된다.
사용자는 이 랩퍼를 통해 로긴을 하고, 책 평가도 하고, 리뷰도 쓰고, 베스트셀러 검색도 하고, 대출 예약도 한다. 기존 시스템의 모집합이 되는 셈이다. (하지만 꼭 그럴 필요는 없다. 중요하고 자주 쓰이는 기능만 노출해도 충분하다)
일단 이걸 만든 사람들이 열심히 사용하다가, 우리과 사람들이 점점 더 쓰고, 나중엔 다른 과 학생들까지 쓰다보면, 혹시 모르잖는가. 정말 이런 시스템으로 도서관을 바꿀 생각을 정책입안자들이 하게 될지.
- PyIde/Exploration . . . . 18 matches
http://free1002.nameip.net:8080/pyki/upload/PyUnitRunnerRedBar.gif http://free1002.nameip.net:8080/pyki/upload/PyUnitRunnerGreenBar.gif
BoaConstructor 로 UI 작업하고, 위험하겠지만 어차피 Spike 라 생각하고 Test 없이 지속적으로 리팩토링을 해 나가면서 prototype 을 만들어나갔다. StepwiseRefinement로 진행하니까 코드가 짧은 시간에 읽기 쉽고 빨리 진행되었다.
Design 을 할때 오버하는 성향이 있는 것 같다. IListener 가 있으면 DIP를 지키는 것이기도 하고, 기존 TestResult 등의 클래스들을 수정하지 않으면서 Listener 들만 추가하는 방식으로 재사용가능하니까 OCP 상으로도 좋겠지만. 과연 당장 필요한 것일까? 그냥 TestResult 를 모델로 들고 있고 View 클래스 하나 더 있는 것으로 문제가 있을까?
SimpleTestResult Spike. result 결과물 잘 받아진다. Result 에 listener 연결해주면 테스트 실행, 정지, 성공, 실패일때마다 listener 로 메세지를 날린다. 나중에 GUI Runner 쪽에서 listener 를 implements 해주면 될듯.
unittest 모듈을 프린트하여 Code 분석을 했다. 이전에 cgi 로 test runner 돌아가게끔 만들때 구경을 해서 그런지 별로 어렵지 않았다. (조금 리팩토링이 필요해보기는 코드같긴 하지만.. JUnit 의 경우 Assert 가 따로 클래스로 빠져있는데 PyUnit 의 경우 TestCase 에 전부 implementation 되어서 덩치가 약간 더 크다. 뭐, 별 문제될 부분은 아니긴 하다.
약간만 Refactoring 해서 쓰면 될듯. Runner abstract class 추출하고, TestResult 상속받은 클래스 만들고,. Test Loading 은 TestLoader 그대로 쓰면 될것 같다.
Eric 의 Qt Unittest 모듈이랑, PyUnit Tkinter 코드를 보니, 거의 바로 답이 나와버린 것 같긴 하다.
- RandomWalk/은지 . . . . 18 matches
int end , direct ;
//동적 배열로 walk판 만듬
//동적배열로 check판 만듬
if (i==0 || i==size+1 || j==0 || j==size+1)
else
move(direct); //결정된 방향으로 움직임
end = check_all(size); //모든 판을 다 갔는지 체크
}while(!end);
if(sum == size*size)
else
case 0 : if (walk[row-1][col] != -1)
case 1 : if (walk[row-1][col+1] != -1)
case 2 :if (walk[row][col+1] != -1)
case 3 : if (walk[row+1][col+1] != -1)
case 4: if (walk[row+1][col] != -1)
case 5 : if (walk[row+1][col-1] != -1)
case 6 : if (walk[row][col-1] != -1)
case 7 : if (walk[row-1][col-1] != -1)
- SuperMarket/재니 . . . . 18 matches
if (input < 1 || input > 5){
cout << "남은 돈 : " << money << endl;
if (money >= product[wantProduct].price * wantNum){
else
if (product[i].num > 0)
if (product[wantProduct].num >= wantNum){
else
if (input == 1)
else if (input == 2)
else if (input == 3)
else if (input == 4){
else if (input == 5)
cout << endl;
* 재니야 소스 보기 좋게 올려라... 들여쓰기 좀 제대로 하고... 보기 힘들잖어...-,-;;; --재동
- TicTacToe/유주영 . . . . 18 matches
public class WoWJAVA extends JFrame{
if(x>(i*100) && x<((i+1)*100))
if(y>(j*100) && y<((j+1)*100))
if(count%2==0)
else
if((count%2) == 0 && count!=0)
else if(count!=0)
if(ticbox[k][0] == 2 && ticbox[k][1]==2 && ticbox[k][2] == 2 && count!=0)
else if(ticbox[k][0] == 3 && ticbox[k][1]==3 && ticbox[k][2] == 3 && count!=0)
if(ticbox[0][l] == 2 && ticbox[1][l]==2 && ticbox[2][l] == 2 && count!=0)
else if(ticbox[0][l] == 3 && ticbox[1][l]==3 && ticbox[2][l] == 3 && count!=0)
if(ticbox[0][0] == 2 && ticbox[1][1]==2 && ticbox[2][2] == 2 && count!=0)
if(ticbox[0][0] == 3 && ticbox[1][1]==3 && ticbox[2][2] == 3 && count!=0)
if(ticbox[0][2] == 2 && ticbox[1][1]==2 && ticbox[2][0] == 2 && count!=0)
if(ticbox[0][2] == 3 && ticbox[1][1]==3 && ticbox[2][0] == 3 && count!=0)
- UpgradeC++/과제1 . . . . 18 matches
cout<<endl;
cout<<"--------------------------------------------"<<endl<<endl;
cout<<endl;
cout<<"--------------------------------------------"<<endl<<endl;
if(i < size/2+1)
else
cout<<endl;
cout << endl;
cout << endl;
cout << endl;
올 대단한걸..^^ 잘해쓰~ 앞으로도 계속 열심히..[조재화]
cout << endl;
//cout << endl;
cout << endl;
cout << endl;*/
cout << endl;
- ZIM/EssentialUseCase . . . . 18 matches
==== 로그인 ====
==== 로그아웃 ====
화일 전송시의 System Response는 클라이언트프로그램의 입장에서 써야 하나요? -- 석천
클라이언트 프로그램 + 서버 프로그램 = 시스템 아닌가요? ^^ -- 데기
음. UP 로 Process 진행할 때.. 많은 Requirements를 모두 나열하고..
그것을 구현으로 들어간다는건 좀 무리라고 볼 수 있죠..
처음 Requirements 만들때 각 Requirements 별로 Risk Level 을 정하는 방법이죠..
예를 들면 로그인,쪽지 보내기, 문자열 송수신, 같은 경우를 Level 1
파일 전송에 대한 것은 Level 2 이런 식으로 말이죠..
이렇게 먼저 아키텍쳐에 기반이 될만한 것은 Level1 으로 정하고..
미리 만드는 것이 프로세스를 진행해 나가는데 위험도를 최소로 하여 진행해 나갈 수 있을 듯 싶네요. -- 구근
''XP 는 User Story에서의 사용자 무게중심 & 실제 구현시의 걸릴 Task point 으로 잡고, UP 는 기반이 될 아키텍처 순위로 잡고. 둘을 비교해서 생각하는 것도 좋겠군요. 조언 감사해요.~ ^^ --석천''
RUP는 ADD이고 XP는 FDD에 가깝습니다. 참고로 마이크로소프트에서는 FDD를 선호합니다. 스펙과 요구사항이 미리 확실히 정의되어있고 변화할 일이 거의 없고, 개발시 리스크가 낮다(유사 기술 개발 경험이 있다)면 ADD를, 그렇지 않고, 변화가능하고, 요구사항도 확실치 못하고, 개발시 리스크가 높다면 FDD가 적절하겠죠. XP의 아키텍춰에 대해서는 http://users.vnet.net/wwake/xp/xp0007b.shtml 를 참고하세요. --김창준
- ZPHomePage/20050111 . . . . 18 matches
* 제로페이지 로고, 캐릭터 디자인 공모
* 공식적으로 사용할 용도로 공모
* 상금결정(캐릭터-3만, 로고-2만) => 제로페이지회의에 입안
* 접수방법 - 이메일로(윤성만)
* 심사 1차-홈페이지개편프로젝트참가자, 2차-제로페이지회원투표
* 제로페이지회원과 일반회원(외부인)을 어떻게 구분할것인가?
=> 일단 회원가입후 제로페이지회원을 따로 분리한다.
* 회원가입시 기입해야하는 내용? (제로페이지회원은 일반회원과 기입내용이 달라야하지 않나?)
* 접속자 정보를 뺀다. => 다음 프로젝트에 일대일 대화기능과 함께 추가
* 이전에 쓰던 게시판(Q&A, 감상, 삽질) 그대로 보존해서 사용
* 볼만한 위키페이지를 1주일 단위로 소개
* 도토리 => 다음 프로젝트로
- ZeroPageServer/set2002_815 . . . . 18 matches
* Terminal에서 Home키와 End키 먹도록 세팅
* 커널 컴파일시 필요없는 거의 모든 옵션을 뺐다. ISA지원이라던지, 구형 cd-rom, usb, ieee, agp 등 전부 제거 했다. 앞으로의 성능 차이가 기대된다.
* ZeroWiki - moinmoin 0.10 으로 돌리는중
* 개인 계정 100 MB (기본적으로 쿼터제한은 없으나 관리자가 관리)
* Server 프로그램을 자기 계정에서 고정 도메인 & IP 로 돌려볼 수 있다는 것도 큰 장점.
* 일정:2002년 8월 14일 오후 3시 부터 백업 시작 ~ 8월 15일 오후 대략 12시에 종료 시점으로 생각
* 남훈 ( 00,["zennith"] ) : 간다음에 php 곧바로 됨
* 이번 세팅의 목적은 '''좀더 편한 패키지 관리, 안정된 환경'''을 위해서이다. 그래서 상민이의 물망에 오른 것이 Zentoo Linux와 Debian, FreeBSD 정도 인데, 기본적으로 Linux를 택해서, FreeBSD와 Zentoo Linux와 Debian 비교에서 사용자 층과 편이성면에서 Debian이 더 우수하게 느껴져 선택하였다.
* 설치는 한달여 즈음 전에 릴리즈된 woody를 기본으로, 일본의 미러 소스 리스트를 이용해서 네트웍 설치를 하였다. Redhat측에서 시작부터 rpm에 대한 체계적 통합적 관리가 되었다면, 현재의 deb 패키지 처럼 완전 네트웍 설치를 할수 있었을텐데 안타까운 점이다.
* PC실 음식물 반입금지이고, 서버는 지켜야 겠고, 복도에서 짜장면 & 짬뽕을 pc실 의자와 책상 내놓고 차려 먹다가 다시 pc실로 들어가서 상차려 먹었다.
* 모듈 적재시 경로 설정
* 27일 새벽에 http.conf 파일에 권한을 주는 설정들로 시도. 불발
* redhat 계열에서는 apache 기본 유저가 nobody인데, www-data 로 바꾸었다.
* [[HTML( <STRIKE> jvm, jdk, mm.mysql, junit, servlet 설치, 경로 </STRIKE> )]] JDK 1.4.01
* [[HTML( <STRIKE> Moin 에서 Redirection 문제 </STRIKE> )]] : kernel upgrade로 해결 되었음 원인 불명확
* [[HTML( <STRIKE> ZeroPage 로그인 문구 </STRIKE> )]]
* [[HTML( <STRIKE> 사용자 기본 ls세팅 컬러로 </STRIKE> )]]
* hosts 에서 zp.zeropage 가 되어 있는 것이 문제 일듯. 서버 까지 왔다가 다른 곳으로?
- [Lovely]boy^_^/Diary/2-2-10 . . . . 18 matches
* SBPP 서문, Introduction 읽었다. 읽으면서 첨에 나온 예제를 C++ 예제로 바꾸어 보았다. 이제 슬슬 문법이 감이 오기 시작한다.
* XB 진짜로 시작. 재동이가 고객이 되어서, 재동이가 준비해온 네트워크 오델로를 짜기로 했다. 처음에는 기대감에 마구마구 넘쳐서 침을 튀겨가며 얘기를 했지만, 나중에는--; 결국 통합은 실패했다. 기초부터 시작해야 할듯싶다. 하지만 배운것도 많았다. 재미도 있었고.. 글구 혜선이가 고객을 해주기로 했다. 이제 프로젝트가 본격적으로 시작이 된다. 낼부터 2주정도는 간단한 프로그램으로 TDD와 호흡 맞추는데 주안점을 둘 생각이다.
* 오늘의 XB 는 정말 잼있엇다. 어제보다 훨씬 나은 성과에, 결과물도 내일이면 나올듯하다. 즐겁게 프로그래밍을 하기 위해 재동이를 좀 희생시키기 했지만.;; 보람찬 하루였다.
* 오늘의 XB는 삽질이었다.--; Date클래스의 날짜, 월 등등이 0부터 시작한다는 사실을 모르고 왜 계속 테스트가 failed하는지 알수가 없었던 것이었다. 덕택에 평소엔 거들떠도 안보던 Calendar, 그레고리Date, SimpleData등등 날짜에 관련된 클래스들을 다 뒤져볼수 있었다. 하지만..--; 결국 Date클래스에서 끝났다. 이제 UI부분만 하면 될듯하다.
* 영창이놈이랑 윤창이놈 점수가 잘 나와야 할텐데.. 영창이놈은 이미 군대 가기로 결정을 했다. 나도 군대를 가야 하는걸까.
* Today's XB is very joyful. Today's fruit is better than yesterday's, and a result is maybe going to come out tommorow. Although Jae-Dong sacrifices for joyful programming;; Today is fruitfull day.
* Today's XB is full of mistakes.--; Because Java Date class's member starts with 0, not 1. so our tests fail and fail and fail again.. So we search some classes that realted with date.- Calendar, GregoryDate, SimpleDate.. - but--; our solution ends at date class. Out remain task is maybe a UI.
* Arcanoid documentation end.
* Arcanoid presentation end.
* 영창이놈이랑 윤창이놈 점수가 잘 나와야 할텐데.. 영창이놈은 이미 군대 가기로 결정을 했다. 나도 군대를 가야 하는걸까.
- eXtensibleMarkupLanguage . . . . 18 matches
The Extensible Markup Language (XML) is a W3C-recommended general-purpose markup language for creating special-purpose markup languages, capable of describing many different kinds of data. In other words XML is a way of describing data and an XML file can contain the data too, as in a database. It is a simplified subset of Standard Generalized Markup Language (SGML). Its primary purpose is to facilitate the sharing of data across different systems, particularly systems connected via the Internet. Languages based on XML (for example, Geography Markup Language (GML), RDF/XML, RSS, Atom, MathML, XHTML, SVG, and MusicXML) are defined in a formal way, allowing programs to modify and validate documents in these languages without prior knowledge of their form.
* [http://www.joon.pe.kr/blog/250 php로 xml 생성 클래스(예제포함)]
* XML은 정말로 굉장히 강력하다. 덕분에 톰캣을 위시한 많은 애플리케이션이 셋업 파일로 XML을 활용하기 시작했다. BUT 크리티컬한 부분에 XML을 소통 데이터로 이용하게 될 경우 해당 부분이 그 프로그램의 performance critical path 가 되는 경우가 발생한다.
* XML은 데이터 표현 방식(data presentation)이기 때문에 문법에 하나라도 어긋나거나 코드셋이 맞지 않는 경우에는 100% 에러를 내뱉는다. HTML을 다루다가 XML을 공부할 경우 이런 점에 당황스럽기도함. (DB 에서 코드셋 잘못 다루면 삽질하는 거랑 비슷함;; -_-)
* DTD로 검색하다 여기로 왔네요ㅋㅋㅋ 예전에 쓰신 것 같아서 지금은 아시는 내용이겠지만 나중에 다른 분들이 이 페이지를 보실 수 있으니 시간을 건너뛰어 댓글 답니다~ DTD는 Document Type Definition의 약자로 XML 문서 작성을 위한 규칙을 기술하는 형식입니다. valid XML Document의 경우 well-formed XML Document이면서 XML에서 사용되는 원소 이름이 해당 문서에 대한 XML DTD나 XML Schema에 명세된 구조와 합치되어야 한다고 하네요. 이 내용에 대한 수업을 들으며 씁니다ㅋㅋㅋㅋㅋㅋㅋ - [김수경]
- html5/webSqlDatabase . . . . 18 matches
* 로컬 저장소의 일부. [html5/web-storage]외에 추가 제공되는 것.
* WebSqlDatabase는 보다 구조적이고 체계화된 관계형 데이터 베이스를 대량으로 저장
*SQLite를 기반으로 하고 있다.
* 의외로 파이어폭스에서 지원하지 않는다.
if(!!window.openDatabase) {
else{
* Indexed Database는 새로 등장한 또다른 로컬 저장소 스펙이다
* 2009년 말까지 사양 책정이 진행중이던 Web SQL Database 의 대안으로 탄생했다
* 현재 Web SQL Database 는 사양 책정이 중지된 상태이며, IndexedDB 라는 새로운 스펙이
대안으로 떠오르고 있다
* 비동기 작업 이므로 UI에 최소한의 영향을 준다.
* 도메인 단위로 DB가 분리된다.
html5rocks.webdb.db = openDatabase('Todo', '1.0', 'todo manager', dbSize);
// re-render all the data
tx.executeSql('CREATE TABLE IF NOT EXISTS ' +
html5rocks.webdb.getAllTodoItems = function(renderFunc) {
tx.executeSql('SELECT * FROM todo', [], renderFunc,
rowOutput += renderTodo(rs.rows.item(i));
function renderTodo(row) {
var db = openDatabase('mydb', '1.0', 'my first database', 2 * 1024 * 1024);
- 날다람쥐 6월9일 . . . . 18 matches
-> 홈으로
a = 14; 라는 명령어를 통해 a의 내용을 14로 바꿀 수 있다.
예를 들어 int *ip, i; 이렇게 하면 뒤의 i는 일반적인 int로, 앞의 ip는 포인터 INT형으로 선언이 된다.
하지만 포인터를 왜'쓰는지 잘 모르는 경우가 많다.-_-;
*cp = a + b; // cp라는 포인터가 가리키는 주소의 값을 a + b로 바꿔준다(main 함수 안의 c).
= 포인터를 이용한 간단한 프로그램 =
= 배열의 이동을 포인터로?! =
바로 위의 배열을 모두 출력하는데, printf("%d", *(ap + @))의 형태로 출력해보자. 여기서 모든 값들을 출력하려면 @에 각각 어떤 수가 들어가는지 직접 해보고 왜 그런지 설명하기.
배열의 이동을 포인터로 :
//정석: 여기서 ap+1 에서의 1 은 1byte의 1이 아니라 sizeof(int) * 1 의 1이다. 따라서 for문 형태로 작성할 때는 ap + i로 하면 된다.
포인터를 이용한 간단한 프로그램 :
scanf("%s %d", NameC, NumC);// 포인터이므로 '&' 를 붙이지 않는다.
NameC = Name2;//배열도 일종의 포인터이므로 Name2 앞에 '&' 을 붙이지 않는다.
NumC = &Num2;//Num2는 포인터가 아니므로 '&' 을 앞에 붙여야 한다.
edit(NameC, NumC);// NameC 와 NumC, 즉 주소를 edit함수로 전달.
- 데블스캠프/2013 . . . . 18 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 ||
|| 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 ||
|| 10 |||||||||||||||||||| |||| [Ending] || 5 ||
|| 윤종하(20기) || [http://zeropage.org/seminar/91448 로우레벨로 보는 Physical MAC Cross Layer] ||
|| 서민관(19기) || [http://zeropage.org/devils/91470#0, HTTP 프로토콜, C언어를 이용한 웹 서버 만들기] ||
|| 이승한(14기) || [진격의안드로이드&Java] ||
|| 정의정(21기) || MVC와 Observer 패턴을 이용한 UI 프로그래밍 ||
|| 김민재(22기) || Ending ||
* 시간 나면 제 클린코드 페이지에 답변좀 부탁해요.. 클린코드 스터디 페이지로는 정확한 참가자를 모르겠어서... - [지원]
* 옙 답변달았습니다. 더 많은 정보는 [https://trello.com/board/cleancode-study/51abfa4ab9c762c62000158a 트렐로]에 있을지도 모릅니다. 아카이빙을 잘 안해서.. - [서지혜]
- 데블스캠프2005/RUR-PLE/정수민 . . . . 18 matches
if next_to_a_beeper():
if not front_is_clear():
else:
else:
if front_is_clear():
if next_to_a_beeper():
else:
if next_to_a_beeper():
if not front_is_clear():
else:
if front_is_clear():
if front_is_clear():
if next_to_a_beeper():
먹기함수 제일밑에 ()는 수정중에 실수로 남아있던거 =0=;; 근데 저게있어두 실행이 돼긴돼는군;;;
그리고 여기서 재귀함수는 선을 그어서 그밑에있는건 무조건 실행해 더 낮은 줄에있어도 if이있으면 실행이 돼는 =0=;;
sort1이거 나만 있는 맵인가..;;ㅎㅎ 그러니까 이거 sort할곳 바로 옆에 벽이 있는 맵에서는 안된다우..ㅎㅎ
//추신: 러플이녀석 재귀호출이 이상한 방식으로 이루어 지는것 같다오. C를 써온 사람의 입장에서 볼때 불편하다는..
- 데블스캠프2006/월요일/연습문제/if-else/임다찬 . . . . 18 matches
== 데블스캠프2006/월요일/연습문제/if-else/임다찬 ==
if(number >= 50 && number <= 100){
cout << "3의배수" << endl;
if(i%3==0){
cout << endl;
cout << "5d의배수"<<endl;
if(i%5==0){
cout<<endl;
else{
cout << "error" << endl;
if(mun >= 65 && mun <= 90 || mun>=97 && mun <= 122){
cout << "영문자" << endl;
else if(mun >= 48 && mun <= 57){
cout << "숫자" << endl;
else{
cout << "특수문자" << endl;
- 데블스캠프2009/금요일/SPECIALSeminar . . . . 18 matches
1. 프로그래밍 못하면 소프트웨어 개발 못하나?
* Tool을 효율적으로(편리하게) 사용할 수 있는 능력 - 성현
* 지원 : Satisficing (Satisfy + Sacrifice) - 여러가지 한도 안에서의 최적을 찾아낸다.
* 성현 : 남의 코드를 효율적으로 쓴다.
* 그 사람이 전문가인지 아닌지 객관적인 판단기준이 있는 직업. (프로그래머도 이에 속함)
* 그 분의 비결은? - 프로젝트가 끝나고 쉬는 기간 동안 단체로 진행했던 프로젝트를 홀로 재개발
* SI 업체의 경우 분석, 설계 후 Test가 다른 팀에 넘어가기도 하는 등 Feedback이 어렵다.
1. 결론 : 과제를 할 때 한번으로 끝내지 말고 실험 해보고 학습 목표를 갖는 자세를..
* 수동적이 아니라 능동적으로 신경써야(뇌가 활동해야) 학습이 잘 되기 때문. - myelin
* 화학, 물리학은 별로 중요하지 않다.
* 화면에 100000개의 랜덤한 원을 그리는 프로그램 - 어떻게 검증할 것인가?
* 반복문이 제대로 됐는지 체크 - 첫, 끝 index 출력, 에러 메세지 확인
* 주어진 정보로 error의 범위를 최대한 좁혀라!!
* 현재 학부생은 도서관에서 잡지나 논문을 공짜로 읽을 수 있다!
* 전문가에게 컨텍하라. - 특히, 외국의 경우, e-mail을 하면 80%는 답변을 해준다
- 데블스캠프2009/금요일후기 . . . . 18 matches
* [김준석] - 이외수씨는 얘기했다. 세상에 답을 알기는 쉬워도 답을 실천하기는 어렵다고. '반성','반복','목표'. 인간개발에 대해 얘기를 할때 능력을 단련시키는데는 이 단어들은 빠지지 않는 '답'인듯하다. 그래프를 그려 사람 능력 발전정도에 대해 얘기해주실때 개발자가 1차 목표인 나에게 좀더 현실감 있게 다가왔다. 사람 심리에서 나누는 상위의 욕구(명예욕, 과시욕)에 자극되는것이 아니라 내가 앞으로 살아가는데 필요한 밥을먹고 옷을입고 자는 '생존'의 욕구를 건들여 절실해졌달까? 비록 내가 최종 목표가 아닌 1차 목표(10년)으로 개발자를 생각했다고 했다지만 능력 개발에 매달리지 않으면 왠지 '평범'하거나 '떨어져나가는'그런 개발자가 되는 미래가 피부에 와닫는 느낌은 서늘하면서 뒤쳐진다는 생각에 분함을 느꼇다. 그런 내 미래에 대해 생각한다면 무언가 내가 해야한다고 생각하지만 달없는 밤길을 걷듣이 앞이 보이지 않는 길을 걷는것 같은 느낌. 생각으로는 어딘가를 가야한다 생각하는데 보이지 않아 어디로 가야할지 모르는 그런 망설임. 그때 앞길을 밝혀줄 불빛이 필요하듯 좀더 다양한 공부 경험과 그것을 반성,반복,목표하는 자세가 필요하다고 생각한다. '철학','수학','소통','작문'등의 아주 기본적인것에 대해 좀더 한번 생각을해보고 태도를 고쳐보는것도 필요하게 되었다. 또 한가지 나한테 아쉬운 점이라면 아직 군인 신분이라고 정확한 목표를 세워놓지 않아서 그것에 대한 조언을 여쭈지 못했다는것이 아쉬웠다. 후에 메일로 상담신청 고?
* '''서민관''' - 이번 데블스 캠프 전체 중에서 세미나로 꼽자면 추상화 세미나와 함꼐 가장 마음에 들었던 세미나였습니다. 역시 고학번에 사회에서 활동하고 계신 분이라서 그런지 말씀 하나하나가 무게가 있고 날카로운 느낌이 들었습니다. 개발 실력을 늘리기 위해서 피드백과 반복, 학습 목표의 중요성을 말씀하셨는데, 이 세 가지는 앞으로도 항상 머릿속에 넣어둘 생각입니다. 그리고 커뮤니케이션 실력에 상당히 무게감을 두셨는데, 저 같은 경우 그런 부분이 부족한 점이 많았던 만큼 앞으로는 조금 더 사람들에게 다가가고 더 많이 어울리도록 노력해볼 생각입니다.
* [송지원] - 감동의 물결, '선배님은 역시 다르구나!'를 확확 느꼈다. 나의 평생 직업을 찾기 위해 노력한다고는 했지만 정작 나는 학술회 잡지나 논문에는 손대본적도 없다. 사실 도서관에서 그걸 공짜로 빌려준다는걸 모르고 있진 않았는데 말이다. 모르는 것보다 알면서 안하는게 더 나쁜건데.. 삽질을 적게 하는 방법 세미나에서는 역시 정형화된 발상과 안일한 마음가짐으로는 성공할 수 없구나 라는걸 실감했고, 제로페이지는 이래서 대단한 곳이구나 하는 것도 느꼈다.
* [송지원] - 처참했다. 내가 처참했던 이유는 Short Coding에 실패했기 때문이 아니라 Coding 자체에 실패했기 때문이다. 아이디어는 제대로 생각했는데 구현을 잘 못하겠다는 나의 첫 마디는 헛소리였다. 아이디어도 틀렸고 코딩도 처참했다. 그리고 마지막엔 아이디어를 줘도 Wrong Answer를 띄우고 말았다. (주어진 숫자에 대해서는 성공했지만 정작 1이나 2를 input으로 받으면 실패했기 때문) 줘도 못받아먹는 이 못난 인간을 어찌하면 좋으리요 ㅋㅋㅋㅋ
* '''서민관''' - 참. 무시무시한 수업이었습니다. 여러가지 의미로. 실력도 물론 무시무시하셨지만, 그것보다 우리가 평소 아무렇지 않게 사용하던 사이트들이 그렇게 보안에 취약한지는 처음 알았네요. 아무렇지 않아 보이는 이미지 파일이 쿠키를 뽑아내는 모습은 참 기가 막혔습니다. 덕분에 Javascript의 강력함도 같이 느낄 수 있었네요. 이번 방학에 팀 프로젝트를 하신다고 하던데 되도록이면 같이 참가해서 뭐라도 좀 배워보고 싶습니다.
* [송지원] - 진짜 너무 제대로 듣고 싶었는데 5일간의 강행군이 저질체력을 가진 여학우에게는 무리였는지 다리근육에 통증을 호소하며 흠씬 두들기다가 결국은 쓰러져 자고 말았다. 하아-ㅁ-... 비참한 마무리..
- 레밍즈프로젝트/프로토타입/파일스트림 . . . . 18 matches
SeeAlso) [레밍즈프로젝트], [레밍즈프로젝트/프로토타입]
|| 파일복사 프로그램 || [http://blog.naver.com/kds6221.do?Redirect=Log&logNo=140013999545] ||
|| SeekToEnd || Positions the current file pointer at the end of the file. ||
|| Rename || Renames the specified file (static function). ||
|| Remove || Deletes the specified file (static function). ||
|| GetStatus || Retrieves the status of the specified file (static, virtual function). ||
|| SetStatus || Sets the status of the specified file (static, virtual function). ||
if(!Wfile.Open("TestFile.txt", CFile::modeCreate | CFile::modeWrite))
*ps2 = NULL; // NULL 문자로 끝나게 한다.
if(!Rfile.Open("TestFile.txt", CFile::modeRead))
우선 기본적으로 레밍즈에서 맵을 제작하게 되면 맵을 저장하기 위해서
그리고 레밍즈 게임을 실행하게 되면 그 맵이 불려져야 하므로,
그러나 실제 레밍즈 게임에서는 txt 파일 형식이 아니라 bitmap 형식으로의 저장과 읽기가 가능해야 하므로,
가상화면을 생성하고, 가상화면에 그린것을 화면으로 복사하고 , 가상화면을 지우는 작업등이 추가 되어야 한다.
그 나머지 과정은 일반적인 작업 내용은 거의 동일하므로 기본적인 CFile 부분을 숙지해야 할 것 같다.
- 로고캐릭터공모 . . . . 18 matches
제로페이지에서는 홈페이지 개편과 더불어 대외적인 홍보 활동 및 각종 행사에 사용할 공식적인 로고와 캐릭터를 공모하고 있습니다. 본 공모에 작품이 채택되신 분께는 작은 상금도 준비되어 있습니다. 여러분의 많은 참여 부탁드립니다.
제로페이지 학회 성격을 잘 반영할 수 있는 참신하고 독창적인 이미지의
- 로고
* 제출방법 : 이메일로 보내주세요~ (ysmgfcjh@paran.com)
* 로고 1편 - 2만원
* 1차심사 - 제로페이지 홈페이지개편프로젝트 참가자
* 2차심사 - 제로페이지 회원 투표
* 홈페이지 http://zeropage.org/wiki/로고캐릭터공모
응모된 작품은 반환하지 않으며 채택된 작품에 대한 소유권 및 권리는 제로페이지에 귀속됨
== 질문은 [로고캐릭터공모/문의]에 해주시기 바랍니다 ==
* 총 6개의 로고 작품. 2개의 캐릭터 작품이 접수되었으며
* 로고는 강희경의 작품이 선정(다양성과 미완결성을 표현한, ZP를 형상화한 도트이미지)
우와 좋은 아이디어다. [로고캐릭터공모/문의]로 따로 페이지 또는 게시판 링크가 걸리게 해도 좋을 것 같네. --[Leonardong]
[제로페이지분류]
- 만년달력/손동일,aekae . . . . 18 matches
if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12)
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
else if (month == 4 || month == 6 || month == 9 || month == 11)
else
if (month > 2) // 윤년인지 평년인지
if (year % 4 == 0)
if (year % 100 == 0)
if (year % 400 == 0)
if (a==0)
else
if (a==0)
else
if (a==0)
if (first == 7)
cout << "일\t월\t화\t수\t목\t금\t토" << endl;
cout << "-----------------------------------------------------" << endl;
if (arr[i][j] > a)
- 새싹교실/2011/A+ . . . . 18 matches
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
* 한종 - 이 날은 원희형의 부득이한 사정으로 아주 간략한 수업만 하고,
* 한종 - printf,scanf 부터 시작하여 if문 쓰는법까지 배웠다, while, do while도 언뜻 배우긴했지만 기억이 안남;
전 시간에 배운 조건/반복문과 다른 몇가지를 기억하지 못해서 리뷰하는 시간을 가졌다.
그 뒤에 배열과 포인터를 동시에 나가려 했으나 이해력의 부족으로 배열선언 하는법까지만 배웠다.
* 그거 PC사랑에 나온 SSD 구조 설명 기사보는 느낌이다.. 같은정도로만 기억하고 있어요 -[고한종]
과제로 배열을 이용한 구구단 만들기를 받았다.
* 중간고사 범위에 맞춰서 함수에대해서 배웠다. 진경이한테 얼핏 배워서 쓰는법은 알았었지만 return에 대해서 정확히 이해를 못했었는데 이번 수업으로 return쓰는 법을 이해하게 되었다. 함수를 쓸 수 있게 된덕에 앞으로 좀더 많은것을 짤 수 있게 될 것 같다. 그리고.. 팩토리얼을 짜봤다.[고한종/팩토리얼]
아마 이날 switch와 for, continoue, break를 배웠던것으로 기억한다.
* 아, 실수로 피드백 쓰는 걸 까먹어서 언제 했는지도 기억이 안난다. 큰일이다. 당연히 뭐했는지도 기억이 안난다, 다만 내가 아직 배열과 포인터를 못쓰는걸 보아 복습을 했었던 것 같다. 진짜 배열 이전에 배우는 것이라면 이제 능숙하게 쓸 수 있는 것 같다. - [고한종]
* 이 날은 나와 성준이만 와서 자동으로 수업파했다. 한마디로 수업X - [김한성]
* 피드백 쓰는게 갈 수록 늦어지고 있다 큰일이다 으헝헝. 배열과 포인터, call by value==pass by value에 대해서 배웠고 과제는 swap()을 구현해보라 하셨다. 포인터사용이 아직 능숙하진 않지만 이걸 이용하면 이제 할 수 있는게 무궁무진 해지겠지... 과제완료 : [고한종/swap()] 그리고 이걸 이용해서 다음 C프로그래밍 과목 과제로 예상되는 sort를 시도하고 있으나 잘안됨 ㅜㅠ - [고한종]
- 새싹교실/2011/쉬운것같지만쉬운반/2011.3.29 . . . . 18 matches
4. 다음 printf 함수와 scanf 함수 사용 중 틀린 것을 고르고, 제대로 고치시오.
(고친 부분에 대해서는 하이라이트 표시해주세요~ 하이라이트는 따옴표세개로 양 옆을 감싸주면 됩니다~)
scanf("%d", x); //x는 int형 으로 선언되어 있다고 가정.
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 오늘 배운 것은 printf의 사용법과 각종 연산자에 대한 것이었다. 예전에 배운 적이 있지만 다시 배우니 더 깊이 알게 된 것 같다. 프로그래밍은 배울 수록 느는 것 같다. 앞으로도 복습은 소홀히 하지 않아야겠다. - [장용운]
* 오늘 가르치면서 느낀건 내가 준비가 좀 부족했다는 것이다. 시나리오가 제대로 준비되지 않아, 말에 두서가 없었다. Flexible하게 해보려고 하는 것도 좋지만, 일단 최소한의 시나리오는 그리고 해야 할 것 같다. 그리고 컴퓨터로 실습을 하려고 했는데, 다음부터는 일단 개념적으로 익히고 실습을 해야겠다. 손에 익숙해지는 것도 중요하지만, 우선적으로 머리가 추측을 할 수 있도록 하는게 더 중요한 것 같다. 그 사이의 갭은 점점 실습을 통해 줄여나가면 될 것 같다. - [박성현]
scanf("%d", x); //x는 int형 으로 선언되어 있다고 가정.
scanf("%d", x); //x는 int형 으로 선언되어 있다고 가정.
1. 개행 문자(\n)는 printf 함수에서 줄을 넘길 때 사용합니다. 이것에 캐리지 리턴(\r)을 직접 타이핑하지 않는 이유는 printf 함수가 텍스트 모드로 출력하기 때문에 자동으로 캐리지 리턴이 앞에 붙게 되기 때문입니다.
scanf("%d", '''&'''x); //x는 int형 으로 선언되어 있다고 가정.
scanf("%d", &x); //x는 int형 으로 선언되어 있다고 가정.
- 새싹교실/2012/아우토반/앞반/5.10 . . . . 18 matches
* 포인터를 인자로 받는 함수
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
위에 *p=&a에서 변수 p는 a의 주소 값을 가르키고 *p는 a의 주소안에 있는 값을 나타내므로
다섯번째 printf함수에서 변수 &p는 위에서 p가 a의 주소와 값을 받았으므로 a의 주소값이 나타남
따라서 결과로 4 4
printf("%d\n",p); --------->변수p에 있는 값을 출력하므로, 결과값은 1767348
printf("%d\n",*p); --------->*연산자는 포인터변수가 저장하는 변수의 주소에 저장된 값을 출력하므로 &a에 있는 값은 0이므로
ㄴ-----> *pA는 변수a에있는 값이므로 크기가 4, pA는 변수a의 주소값이므로 크기가 4
ㄴ-----> *pB는 변수 b에 있는 값이므로 크기가 4, pA는 변수b의 주소값이므로 크기가 4
ㄴ-----> *pC는 변수c에있는 값이므로 크기가 1 , pC는 변수c의 주소값이므로 크기가 4
ㄴ-----> *pd는 변수d에있는 값이므로 크기가 8 , pd는 변수d의 주소값이므로 크기가 4
- 수학의정석 . . . . 18 matches
목적 : 이 페이지는 고등학교 때 배운 수학을 컴퓨터 언어로 구현하기 위해 만든 페이지이다. (존칭 생략)
취지 : 컴퓨터를 배우는 입장에서 컴퓨터 언어와 컴퓨터 구조만을 알고 우리들이 배운 수학이나 과학의 배경지식을 접목시키지 못하는 것은 정말 바보 같은 행동이다. 결국 그 사람은 코더밖에 될 수 없으며 결코 프로그래머는 되지 못한다. 때문에 이러한 페이지를 만들어 수학을 컴퓨터에 접목시켜 배우고자 한다.
출체되는 위치는 수학의 정석(공통, 수1, 수2) 6차 교육과정이며, 이 경우 7차 교육과정에서 배운 사람들이 풀지 못하는 문제도 나온다. (1차변환,복소수, 등)
SOURCE : 자신의 풀이를 먼저 적고 그것을 가지고 어떻게 프로그램을 짰는지 적어야한다. 그리고 아래에 소스를 포함하도록한다.
CPU_CLOCKS : 시간은 기록 되지 않으며 프로그램이 수행된 시간(CPU CLOCK을 기록해야한다. 방법은 아래.)
UPDATE : ○로 표시하며 프로그램이 일주일 동안 업데이트 되었음을 기록하는 것이다.
이러한 UPDATE를 둔 이유는 수학의 입장에서 여러가지 방식으로 문제를 풀 수 있기 때문이다.
P.S : 출제자가 GCC만을 사용하는 관계로 그래프등의 문제는 나오지 않을것이다.
경우에 따라서는 아주 어려운 문제가 나올 수 있다. 이것은 출제자가 놀리는 것이 아니라 출제자 또한 그 문제를 어렵게 생각한다는 것을 뜻한다.
(프로그램수행) // 함수들을 수행
printf("CPU CLOCKS = %d\n", clock() - time_in); // 끝났을때 시간 - 초기 시작시간 = 프로그램 실행 시간
return 0; // 프로그램 종료.
제가 알기론 clock() 함수가 리턴하는 값은 프로그램이 시작된 이후로 경과한 CPU 클럭 수 이기 때문에 시스템마다 다르다고 알고 있습니다. 그래서 CLK_TCK로 나누어 초 단위로 바꾸어 비교를 하는것으로 알고있는데... 어떻게 생각하시는지...? --[상규]
- 실시간멀티플레이어게임프로젝트/첫주차소스3 . . . . 18 matches
-제목 : 미정(임시로 ''survival of virus'')
Upload:test_1.zip --재동 (게임에 로그인했을 때 이벤트에서 현재 시간 보다 오래된 일 처리)
Upload:test_0.9b.zip --휘동(등록과 로그인 가능. 로그인 후 메인 화면으로 넘어가기 처리중)
Upload:test_3.zip --재동, 휘동 (로그인 합침)
Upload:test_5.zip --재동 (로그인후에 스캐줄 있으면 첫화면 표시, 월,일 비교)
Upload:test_4b.zip --휘동 (로그인 화면 깔끔하게, 플레이어 정보를 클래스로, 플레이어 정보 넘겨주기)
Upload:test_6.zip --재동 (과거 시간 스캐줄 막음, 현재 시간으로 처음 값 설정)
- 로그인 인터페이스 깔끔하게->표만들기 태그 이용
- 플레이어 정보 보내주기->현재 로그인 한 아이디(임시 파일에 저장)에 따른 정보를 넘겨줌
일단 이차원 이동하는 소스 올릴께요.. 다른대로 옮기는게 좋을듯.. --지용
프레임 워크는 재동이형이 새로 구상한 것을 구현하려고 하고, 저는 게임 내용을 만드는 일로 바꿨습니다. -- 휘동
저장된 명령을 실행하는 때를 '상태보기' 기능을 쓸 때 하는게 좋겠다는 생각입니다. , 로그인 할 때만 실행하게 한다면, 로그인 후에 내린 명령 중에 실행 해야 할 게 있을 때 실행을 하지 않은 상태에서 '상태보기'기능을 쓰기 때문에 잘못된 결과가 나올 것 같습니다. -- 휘동
[실시간멀티플레이어게임프로젝트]
- 정모/2007.1.6 . . . . 18 matches
A.김정현 - 지시하기보다는 협력하는 방식으로 진행하는 문화와 분위기를 만들겠다.
김준석 - 이끌어 나가야 할 사람이 필요하기 때문에 회장 중심적으로 나가겠다.
Q.신입생에게 '학회/제로페이지'라는 익숙하지 않은 개념을 어떻게 전달 하고 진입장벽을 어떻게 깨줄 것인가?
A.김정현 - 1학기에는 세미나를 주로, 2학기에는 본격적인 방법으로 진행하겠다.
김준석 - 초반에는 친목을 다지는 분위기로, 자연스럽게 열정에 빠져들게 만들도록 하겠다.
이장길 - 선배가 의무적으로 프로젝트를 배당하는 방향으로 가겠다.
Q.제로페이지에서 무엇을 얻었는가?
A.김정현 - 제로페이지의 세미나, 제로페이지내의 다른사람 관찰하기, 세미나 지켜보기.
Q.얻은걸 위해서 실질적으로 할 것은?
A.김정현 - 세미나에서 지식이 일방적으로 전달되는걸 막기위해 회의에서 서로 의견을 나눌 수 있는 것을 만들겠다.
김준석 - 학회 분위기를 열정적으로 만들겠다.
이장길 - 후배의 경우에는 감정이 앞설것 같지만 잘 풀어서 관계를 유지하겠다. 선배가 강하게 나와도 어느정도는 자신의 기준을 지키겠다.
Q.제로페이지 하면 떠오르는 단어.
- 정모/2011.7.18 . . . . 18 matches
== 프로젝트/스터디 ==
* 파일 비교 프로그램을 두주간 구현하는 것이 목표.
* 해결이 안 된 PIGS와 The lazy programmer를 다같이 풀기로 함.
* Free talking과 Theme talking으로 나누어 진행.
* 내일부터는 심슨의 한 장면을 따라해보는 시간도 가지기로 했음.
* 긍정적으로 행동하고 부정적으로 계획하는 능력이 필요합니다. '왜 일하는가'라는 책에서 읽었는데 아이디어나 목표를 정하고 추진하는 것은 긍정적인 사람에게(책에서는 가연성 인간이라고 표현했음) 계획과 평가는 부정적인 사람에게 맡기면 좋다고 했었습니다. 낙관적인 것도 현실적인 대안 없이는 그저 생각없는 사람일 뿐이라 생각합니다만 그렇다고 긍정의 자세를 버리는 것도 생각없는 사람인듯.. - [서지혜]
* ACM문제를 풀면서, 코드짜면서 생각하는게 더 빠른거 같아~ 라는건 헛소리라는걸 깨달았습니다. 코드를 짜기에 앞서 여러번 생각해보고 많은 예외상황을 고려한 후에 확신이 들때서야 코딩하는게 서너번씩 새로 짜지않고 바로 좋은 코드를 짤 수 있는 방법인거 같았습니다. -[김태진]
* 막상 떠오르는게 없어서 진짜 리빙포인트를 얘기해버렸는데... 근데 정말로 3근에 만 원 하는고기 콜라에 담가뒀다 먹으면 먹을만 하긴 해여모름지기 싼고기는 양념을 해먹어야 평타/ 다음엔 진지하게 생각해서올게요...-[고한종]
* '''문제를 인식했을 때 일단 멈춰서 생각하는 게 중요하다''' 매번 브레이크를 거냐라고 생각이 들겠지만 문제가 스스로 사라지는 일은 거의 없는데다 스스로 자라는 성질이 있어서.. 특히 팀플레이에서는 문제인식을 공유하는게 중요하다고 생각해요!! 나중에 피바람이 붑니다. - [서지혜]
* 후기는 작성한 순서대로 쓸 필요 없으니 새치기해도 괜찮아요~ OMS는 원래 거창한 세미나라기보단 관심사를 공유하는 코너라서 부담가질 필요 없답니다. 그리고 내용 전혀 빈약하지 않았어요!! - [김수경]
* 방학중 정모에서 제가 공부한 것을 공유하는 코너를 진행하겠다고 했는데 지난번엔 정모를 짧게 끝내느라, 이번주는 다른 공유들이 있어서 계속 안 하게 되네요 ㅋㅋ 사실 시간 떼우려고 생각해낸 코너라 못하게 되는 게 바람직한 것 같습니다(?) 이번 OMS는 리눅스 서버를 직접 돌려보는 것에 대한 내용이었는데 저는 1학년때 리눅스가 뭔지도 그냥 들은 정도로만 알고있었던 기억이 납니다. 그런데 새내기가 직접 서버 구축하고 그 내용을 정모에서 공유하는 걸 보니 부럽네요ㅠㅠ 저도 그런 경험을 해봤으면 좋았을텐데... - [김수경]
* 처음 OMS를 보면서 우리집 컴퓨터도 이제 6년차에 돌입했는데.. 저렇게 써야하나 라는 생각이 들다가 그냥 이상태로 쓰지 뭐 이런 생각이 든 -_-;;; 암튼.. 저도 1학년땐 리눅스를 사용하는 모습만 보고 직접 써 보지는 못했었는데 사용하는 모습을 보니 대단하다는 생각이 드네요. 리빙포인트를 하면서 학원에서 들었던 이야기랑 삼수때 겪었던 이야기가 믹스되어 말하게 되었네요. 원래는 그냥 학원 이야기만 하려고 했는데 -ㅅ-a Joseph Yoder 와의 만남 후기를 들으면서 스티브 맥코넬씨가 쓴 Code Complete라는 책에서 이야기 하는 내용과도 많이 겹치는구나 라는 생각을 했습니다. - [권순의]
* 한종이가 집에 남는 컴퓨터를 굴리는 방법을 OMS해 주었죠. 서버쪽은 아직 관심이 없어서 전혀 손대보지 않고 있었는데, 한종이는 진규한테 여러모로 들었다거나 혼자 여러가지를 연구해보아 많은 것을 알고 있는거 같았어요. (그러나 리눅스에 대한 관심이 일어나지는 (아직) 않았습니다..ㅠㅠ) 지원이누나가 해준 DB2에 대한 설명(과 IBM에 대한 설명)에서는 우리과에 관련된 스키마를 여러가지 얻을 수 있어 좋았던거 같았어요. 항상 ZP형누나들이 많은걸 알려주셔서 정말 즐겁네요. ㅎㅎㅎ-[김태진]
* 늦잠자서 늦게갔는데 마에땜에 중간에 나갔어요.. 흑흑 부외활동을 하면서 새삼 느꼈는데 지피 정모는 정말 좋은 활동입니다.진짜진짜로. 전공 관련 정보들도 얻을 수 있고 몰랐던 내용을 소개받을 수도 있고 남이 공부해서 떠먹여주기도 하고 외부 활동 정보도 얻을 수 있고 영어나 책읽기등 전공외 활동이야기도 들을 수 있고 이런 모임이 세상에 어디있나요ㅠㅠ 방학이라고 학교 오기 귀찮으신건 알겠지만 정말 유익한 자리입니다. 같이해요ㅠㅠ - [서지혜]
* 인원이 적었던게 아쉬웠습니다. 좋은 얘기는 그래도 여전히 많이 나오네요. OMS는 점점 익숙해져가는 단계인것 같아서 좋습니다. 갑자기 서버를 만들고 싶어지네요. 프로젝트를 발표하면 Addon을 만드는 결의를 다지고 갑니다. 다음주에도 좋은 정모가 되기를 - [김준석]
- 정모/2011.9.20 . . . . 18 matches
* 자격조건은 배워나갈 자세가 되어있는 사람''??'' Ruby on rails를 쓸 줄 알면 더 좋은듯한 느낌이...
* 회장이 먹고살길을 찾느라 바쁜 관계로 학회의 날 담당자가 필요하게 되었습니다.
* 기사라고 해서 뉴스를 말하는 건 아닌데 ㅋㅋㅋ 소식같은 걸 외부 기사로 섭외하려는 건 아니고... 자기가 관심있는 분야에 대해 쓴 내용이 제일 좋지. - [김수경]
== 스터디/프로젝트 공유 ==
* 그 정도로 공강이 긴 건 아마 저밖에 없었던 것 같습니다. 공강때문에 안 오는 사람은 별로 없을 것 같아요.. - [김수경]
== 로고 ==
* 그래픽 작업이 완료된 4개(?)의 후보를 두고 홈페이지 투표로 최종 로고를 결정하겠습니다.
* OMS 재미있었어요. 통계 자료까지 준비해와서 더 흥미로웠습니다. 책을 1년에 한권도 안 읽는 사람이 10명중 3명이 넘는다니 충격적이네요. [2011년독서모임]은 제가 하자고 만들어놓고 중간에 쏙 빠져서 민망하네요. 바쁠땐 바쁜대로 일정을 조정해가며 굉장히 꾸준히 이어나가는 모습이 보기 좋아요. 독서모임만 해도 평균 독서량 이상을 읽을 수 있다니 멋집니다. 그동안 했던 주제를 모아서 보여주니 진짜 다양한 책을 읽었구나 싶은 느낌도 들었습니다. - [김수경]
* 오랜만에 처음부터 끝까지 정모를 참여한 시간이었습니다. 몇몇 분들이 오지 않으셔서 좀 썰렁했던 것 같네요. 제로페이지에서 진행하는 스터디에 참여하고 싶은 생각도 있었는데 아무래도 시간이 부족할 것 같아서 포기했네요 ㅠㅠ; OMS 대상자가 될 뻔한 위험이 있었네요 살떨려요.. 오늘 OMS를 보고 집에 가는 길에 책을 질렀습니다. '독서'용은 아니지만 저에게 도움이 될 것 같네요. 그런데... 으앙 제가 참가자가 아니라니! - [장용운]
* 구인 구직의 시간에서 루비가 언급될 줄 몰랐어요! 데블스캠프에서 세미나를 했던 지혜언니의 선견지명에 감탄했습니다ㅎㅎ 제가 만든 ZP 로고는 그냥 0 page라는 의미로 OMS에서 제 역할을 해주었지요 ㄲㄲ 독서 모임을 하면서 확실히 좋았던 점이 제가 책을 읽는다는 그 자체였어요. 고등학교 과제는 인터넷에서 긁는거 아니냐 했었는데 그게 바로 저였습니다ㅠㅠ 과제로 내주지 않는 이상 책을 전혀 찾지 않았었는데 독서모임을 하면서 주제 외의 책을 찾아 읽는 데도 어색하지 않은게 좋았달까요. 아직까지도 줄거리나 의견을 말하는 데는 쩔쩔매지만 계속 하다보면 물 흐르듯이 말하는 날이 오겠지요 ~ㅁ~ 많이 참여하면 좋겠어요~ -[강소현]
* 벤처(?) 회사에서 구직하러 많이 오시는군요.. 임베디드 시간에도 홍보하러 오시고ㅇ_ㅇ 시작하는 사람들의 열기가 느껴져서 둑흔거리네요ㅋㅋ 개인적인 의견이지만서도.. 벤처야말로 노련함이 필요한 곳 같아요.(아니면 천부적인 센스라거나!) 특히 우리나라처럼 벤처 제도가 잘 없는곳에서는..
회장님도 부회장님도 개인적인 일로 정모를 알차게 꾸려나가지 못하는 점 죄송합니다ㅜㅜ 정모에 대한 제안이나 의견이 있다면 가지고 계신 모든 루트를 통해 의견날려주세요. 정모는 참여하는 여러분 모두의 것 이니까요:) (부회장은 회장의 그림자라 존재감이없다!!ㅋㅋㅋㅋ...ㅠㅠㅠㅠㅠㅠㅠㅠㅠ미아뉴ㅠㅠㅠ) - [서지혜]
- 큰수찾아저장하기/김태훈zyint . . . . 18 matches
문제는 쉬운데 이걸 함수로 나누기가 무지 애매하다 -_-;
문제는 금방풀고; 이 프로그래밍 함수 어떻게 나눌지 생각한게 한시간 걸렸을듯...
//전체 4 * 4 행렬의 공간 중 3 * 3 행렬의 공간에 키보드로 입력을 받아 숫자를 저장한 후,
if(max < value[i][j]) max = value[i][j];
if(max < value[i][j]) max = value[i][j];
for(i=0;i<ROW-1;++i) if(max < value[i][3]) max=value[i][3];
for(i=0;i<COL-1;++i) if(max < value[3][i]) max=value[3][i];
//이들을 깔끔하게 출력하는 프로그램을 작성하여라.
void transpose(int (*value)[COL]); //행렬의 diagonal을 기준으로 transpose
#ifdef DEBUG
#else
//전체 4 * 4 행렬의 공간 중 3 * 3 행렬의 공간에 키보드로 입력을 받아 숫자를 저장한 후,
#endif //DEBUG
for(i=0;i<ROW-1;++i) if(max < value[i][3]) max=value[i][3];
for(i=0;i<COL-1;++i) if(max < value[3][i]) max=value[3][i];
//이들을 깔끔하게 출력하는 프로그램을 작성하여라.
if(max < value[j][i]) max = value[j][i];
- 프로그래밍잔치 . . . . 18 matches
== 프로그래밍 잔치 ==
2002년 여름의 마지막을 마감하는 조촐한 프로그래밍 모임. 이름은 ["프로그래밍파티"]의 오마쥬, 남상협군 제시
여름방학의 끝자락에서 방학을 시작한 데블스캠프 처럼, 방학을 마무리 하는 조촐한 프로그래밍 이벤트
|| ["프로그래밍잔치/첫째날"] ||
|| ["프로그래밍잔치/둘째날"] ||
|| ["프로그래밍잔치/셋째날"] ||
* ["프로그래밍잔치/첫째날후기"]
* ["프로그래밍잔치/둘째날후기"]
* ["프로그래밍잔치/셋째날후기"]
* ["프로그래밍잔치/정리"]
* 원래 1학년 위주의 프로그래밍 파티를 생각했는데, 1학년 위주라는 것이 협소하다는 생각과 외부의 의견으로 방학 마무리로 정리로 바꾸었습니다. 계획에 대강 쓰여진것 말고, 좋은 의견이 있으면 내놨으면 제시해 주세요. --["상민"]
* 대박으로 바쁜일 터졌다.. ㅜㅡ 이런.. 토요일에나 한번 갈수 있겠어요.. ㅜㅡ -- ["erunc0"]
* 형이 군대에서 휴가 나올거 같아서 부분 참여로 변경 했습니당~ - ["상협"]
* 나가려고 했으나.. 아직까지 회사인관계로.. ㅜㅡ 아마 일요일날 집에 들어 올것 같음.. 죄송해요.. - ["erunc0"]
- AcceleratedC++/Chapter1 . . . . 17 matches
std::cout << "Hello, " << name << "!" << std::endl;
// build the message that we intend to write
// build the first and fifth lines of the output
std::cout << std::endl;
std::cout << first << std::endl;
std::cout << second << std::endl;
std::cout << "* " << greeting << " *" << std::endl;
std::cout << second << std::endl;
std::cout << first << std::endl;
interface : 객체의 타입으로 묵시적으로 내포 되어 있는 것은 인터페이스로서, 해당 타입의 객체에 사용 가능한 연산(operation)들의 집합을 말합니다. name을 string 타입의 변수(이름 있는 객체)로 정의 하게 되며, 우리는 string으로 할 수 있는 모든 일들을 name으로 하고 싶다는 뜻을 묵시적으로 내포하게 됩니다.
초기화, end-of-file, buffer, flush, overload, const, associativity(결합방식), 멤버함수, 기본 내장 타입, 기본타입(built-in type)
- AsemblC++ . . . . 17 matches
C 프로젝트로 빌드로 생성된 .exe파일에서 어셈블 코드를 찾아내고 그 효율성과 다른 각 IDE들의 차이점을 찾아보려는 의도로 만들어진 페이지.
MASM의 어셈블 코드를 [VisualStudio]에서 들여다 보는것 처럼 드래그하면 되는걸로 쉽게 생각했지만 그게 아니었다. VS를 너무 호락호락하게 본것 같다. 불가능 한것은 아니어 보이는데 쉬워보이지는 않는다.
그렇다면 [i++VS++i]에서 최적화된 i++ 어셈블 코드에 관한 이야기, 연산자 오버로딩에 있어서 후치연산자++ 의 용도에 관한 이야기들은 어떻게 해서 나오게 된것인지 궁금합니다.
그렇다면 다른 방법이 있다는 건데... 바로 컴파일러에 어셈블리 코드를 얻어내는 기능이 있습니다.
이렇게 얻은 어셈블리 코드는 모든 최적화 과정이 끝난 상태이기 때문에 .exe 파일로 만들어질 때 까지 변형되지 않습니다.
어셈블 코드들을 쉽게 보여준다면 프로그램의 보안 문제에도 직접적으로 연관이 되는 군요. 수정에 관한 보안장치도 있을 것이고요. 패리티 같은 단순한 보안장치일지라도 코드의 무결성을 지키면서 어셈블을 수정하기란 쉬워 보이지 않네요. - 톱아보다
.exe 파일에 대한 어셈블리 코드는 역어셈블러(아래 상협이가 말한 softice와 같은 프로그램)만 있으면 쉽게 얻을 수 있습니다. 수정에 관한 보안장치도 전혀 없구요. 하지만 .exe 파일에 대한 어셈블리 코드는 분석하거나 수정하는것 자체가 거의 불가능할 정도로 어렵습니다. 이유는... 시간이 없어서 나중에 쓰도록 하죠-_-; --[상규]
처음에는 그냥 얼마나, 어떤식으로 컴파일러에 의해서 코드가 최적화되고 [IDE]의 버전과 종류에 따라서 어떤 차이가 존재할까 라는 단순한 물음이었지만, 지금 보니 그렇게 코드를 파해치고 분석하는게 해킹이고 크래킹 인것 같기도 합니다;; - [톱아보다]
제가 위에 쓴 방법으로 해보신다면 이제 너도 할수 있습니다!^^ --[상규]
Softice같은 프로그램을 사용해서 시리얼 번호가 있는 프로그램이나 날짜 제한 프로그램을 크랙 하기도 합니다. 이번 디버깅 세미나에서 함 해볼라고 그랬는데 집에 있는 컴퓨터에서 그게 잘 안돌아가서 보류함. - [상협]
- C++3DGame . . . . 17 matches
C++ 3D 게임 프로그래밍[[BR]]
가장 일반적인 좌표계인 데카르트 좌표계는 원점으로 사용할 점과 원점을 지나며 서로 지각인 세 개의 축이 있다.[[BR]]
"원점에서 동쪽을 바라보며 죽쪽으로 38도 회전하고, 위로 65도 회전한 후에 이 선을 따라 7.47피트로 이동"하는 방법으로 위치를 설명할 수 있다. 그러나, 수학적으로 풀 경우, 점을 이리저리 움직이면 처리하기가 더운 어려워진다. 그래서 이런 폴라 좌표계는 제어가 어렵기 때문에 3D엔진에서는 거의 사용하지 않는다.
3D 오브젝으를 사용하여 작업하다 보면 하나의 점으로 작업하는 것보다 여러 점을 묶어 작업하는 것이 효율적임을 알게 된다.
예를 들어, 컴퓨터를 모델링할 경우 다음 코드와 같은 구조로 저장할수 있다.
이렇게 하면 게임에서 CPU를 움직여야 할 경우, CPU를 그리는데 사용하는 모든점에 대한 컴퓨터 중앙 만 움직이면 된다.[[BR]]
CPU::GetWorldCoord(int index)는 그 세계의 원점에 대해 CPU 여덟개 점 중의 하나를 반환한다. 단지 coord[index]를 반환한다면, CPU중앙에 해당하는 CPU점을 반환하기 때문에 나중에 CPU를 그랠 때 원하는 대로 그릴 수 없게 된다. 중앙을 움직이면서도 CPU점 여덟개를 모두 옮기는 효과를 낼 수도 있다.
=== 2. 3D영역에서 2D컴퓨터 화면으로 ===
역시나 나의 수학의 한계로. 그냥 쓰윽 보면서 넘어 갔다. 뭔소리인지는 모르겠고. ㅋㅋㅋ 그냥 가져다 쓰면 되지. 나중에 궁금하면 더 파볼것이다.[[BR]]
=== 3. 그래픽 프로그래밍 개요 ===
- C++스터디_2005여름/학점계산프로그램/허아영 . . . . 17 matches
=== 학점계산프로그램/허아영 ===
솔직히 부끄럽습니다. C도 모르는데, C++로 이렇게 어려운 것을-_- ;;
void input();//파일입력, 학점으로 전환
#ifndef STUDENT_H_
void sort(); // 학점평균이 높은 순으로 저장.
#endif
if(strcmp(grade_input[i], grade_data[j]) == 0)
cout << "학고 명단" << endl;
if(credit_average[i] <= 1.5)
cout << name[i] << endl;
cout << "장학생 명단" << endl;
cout << endl;
if(credit_average[i] <= credit_average[j])
음.. 동기를 안좋은 곳으로 끌어들이다닛..나쁜아이.훗..
칼큘레이트(귀차니즘으로 영어 생략)함수와 스튜던트 함수 양쪽에서 둘다 파일 입출력 하는게 있는것 같은데..
[허아영] [C++스터디_2005여름] [C++스터디_2005여름/학점계산프로그램]
- CarmichaelNumbers/조현태 . . . . 17 matches
그리고 [CarmichaelNumbers]가 뭔지 몰라서..인터넷에서 뒤져본 결과 최소 3개 이상의 소수의 곱이었던 관계로 그 부분도 추가해 주었다.
마지막으로.. 심심 하면 새침한 표정으로 나타나는 변수크기 초과오류 아가씨..
아가씨가 입을 수 있는 크기의 숫자가 나머지로 나오도록 해주었다. 다행히 주어진 숫자의 범위가 크지않아 예쁜 숫자들의 범위에서 끝났다고나 할까..
대신 연산이 느려지긴 했겠지만 뭐.. 범위가 작은 관계로 입력하면 바로바로 나와주는 쎈쓰~! 그래서 별로 신경쓰지는 않았다.
if (0==number)
if (0==answer)
else
if (0!=Sosu(number))
if (i!=a)
if (2==number || 3==number)
if (0==log_number[i])
if (i==number)
if (log_number[number]<3)
- ConstructorMethod . . . . 17 matches
그래서 Constructor Method를 쓰기를 권한다. 즉 인스턴스를 똑바로 만들어주는 각각의 메소드를 추가해주는 것이다.
한가지 예로 위의 것을 고쳐보자.
또다른 예로 반지름과 각도를 받아 x,y를 계산해주는 Constructor method를 만들어보자.
하지만 이 패턴은 C++/Java에서는 별로 필요가 없을듯하다. 생성자의 오버로딩을 언어 차원에서 지원해주는데 굳이 쓸 필요가 있나 하는 생각이 든다. 하지만 스몰토크에서는 new를 오버로딩하는걸 그리 반겨하는것 같지는 않다.
''DesignPatterns 로 이야기한다면 일종의 FactoryMethod 임.(완전히 매치되는건 아니고, 어느정도 비슷) 비교적 자주 사용되는 패턴인데, 왜냐하면 객체를 생성하고 각각 임의로 셋팅해주는 일을 생성자 오버로딩을 더하지 않고서도 할 수 있으니까.
요새 프로그래밍 하면서 느끼는 점은, 과도한 오버로딩은 해당 객체를 이용하는 사람입장에서 골치아프게 만든다는것. 왜냐하면, 같은 메소드 이름에서는 해당 파라메터가 다른 것으로 바뀌었을때에 대한 의도를 메소드 이름에 드러나지 않기 때문에.
개인적으로는 JUnit Test 작성할때, Test 대상이 되는 클래스에 대한 리팩토링 시도하는중 중간단계 역할로 많이 써먹었음.
ps. 스몰토크에서는 오버로딩이 없는 걸로 알고 있음. --[1002]''
음.. 오버로딩이 없나요? 보면 new랑 new:이렇게 두개 있는 클래스도 있던데... 저건 아예 다른 메세지인가요? --[인수]
- CryptKicker . . . . 17 matches
텍스트를 암호화하는 방법 중에 보안상 취약하긴 하지만 흔하게 쓰이는 방법으로 알파벳 글자를 다른 글자로 돌리는 방법이 있다. 즉 알파벳의 각 글자를 다른 글자로 치환한다. 암호화된 것을 다시 원래대로 되돌릴 수 있으려면 두 개의 서로 다른 글자가 같은 글자로 치환되지 않아야 한다.
암호화된 텍스트가 한 줄 이상 입력되는데, 각 줄마다 서로 다른 치환 방법이 적용된다고 가정하자. 암호화 이전의 텍스트에 있는 단어는 모두 주어진 사전에 들어있는 단어라고 가정하고, 암호화된 텍스트를 해독하여 원래 텍스트를 알아내자.
입력은 한 개의 정수 n이 들어있는 행으로 시작되며 그 다음 줄부터는 한 줄에 하나씩 n개의 소문자로 쓰인 단어들이 알파벳 순으로 입력된다. 이 n개의 단어들은 복호화된 텍스트에 들어갈 수 있는 단어로 구성된 사전이다. 사전 뒤에는 몇 줄의 텍스트가 입력된다. 각 줄은 앞에서 설명했던 방법에 따라 암호화된다.
각 줄을 복호화하여 표준 출력으로 출력한다. 여러 문장으로 복호화될 수 있다면 그 중 아무 결과나 출력하면 된다. 가능한 풀이가 없다면 알파벳 모든 문자를 아스테리스크(*)로 바꾸면 된다.
영어는 26글자의 알파벳으로 이루어져있다. 단순히 짜맞추기엔 너무 많은 갯수이다. 하지만 그것들의 출현빈도는 각각다르다. z, q와 같은 글자는 1%미만의 출현비율이 나타나고,
e, i, o 와 같은 글자는 알파벳의 특성상 10퍼센트가 넘는 출현빈도가 나타난다. 기억나기론 E가 13퍼센트 정도였던것 같다. 이 규칙을 따르지 않는 문장과 단어가 있지 않나고 반박할지 모르지만 확률이다. 특수화된 경우의 문장과, 단어의 경우를 일반화 시키면 곤란하다. 이런 알파벳의 출현빈도는 몇줄의, 몇개의 단어에는 잘 맞지 않을테지만, 암호화된 문장과 문서가 많아질수록 그 출현빈도는 표중화된 확률에 거의 일치하게 된다.
- CxxTest . . . . 17 matches
C++ 의 경우는 언어차원에서의 리플랙션을 지원하지 않기 때문에 테스트를 추가하는 부분이 자바나 파이썬 등에 비해 상당히 귀찮다. 그에 대한 대안으로 [CUT] 등의 C UnitTestFramework 의 경우 외부에서 Perl 등으로 작성한 스크립트언어로 테스트실행과 관련한 Runner 를 코드제너레이팅하는 방법을 쓰고 있다.
CxxUnit은 [CUT]의 C++버전이라 봐도 약간 상통하리라 본다.(오래되기는 CxxUnit 이 더 오래되었던걸로 기억) Python 이나 Perl 의 코드제너레이터 스크립트를 이용, Runner화일을 만들어준다. 이를 컴파일하여 실행하면 테스트가 실행된다.
[1002]의 경우 요새 CxxUnit 을 사용중. 밑의 스크립트를 Visual Studio 의 Tools(일종의 External Tools)에 연결시켜놓고 쓴다. Tool 을 실행하여 코드제너레이팅 한뒤, 컴파일. (cxxtestgen.py 는 CxxTest 안에 있다.) 화일 이름이 Test 로 끝나는 화일들을 등록해준다.
if isfile(eachFile):
if fileName.endswith("Test"):
testFiles.append(eachFile)
if __name__=="__main__":
단점이 있다면 테스트 상속이 안된다는 점이다. 개인적으로 MockObject 만들어 인터페이스 테스트 만든뒤 RealObject 를 만들어 테스트하는 경우가 많은 만큼 귀찮다. (테스트의 중복으로 이어지므로) 어흑.
- EightQueenProblem/강석천 . . . . 17 matches
## if all queen pass the function 'IsAttackableOthers'
if self.FindQueenInSameVertical (x):
elif self.FindQueenInSameHorizonal (y):
elif self.FindQueenInSameCrossLeftTopToRightBottom (x,y):
elif self.FindQueenInSameCrossLeftBottomToRightTop (x,y):
else:
if self.GetData (x,i) == 1:
if self.GetData (i,y) == 1:
if self.GetData (FirstCornerX + i, FirstCornerY + i) == 1:
if self.GetData (FirstCornerX + i, FirstCornerY - i) == 1:
if self.IsSelftyZone (x,y):
else:
if Level == 8:
if not Ret:
if not self.IsAttackableOthers (i, Level):
UnAttackablePositionList.append ((i,Level))
if __name__ == '__main__':
- GDBUsage . . . . 17 matches
pipe를 통한 간단한 프로세스 통신의 일예
if (state == -1) {
if(pid == -1) {
else if (pid == 0) {
else {
해당 라인을 전후로 하여 소스 코드를 보여준다.
해당 인자값을 구조 프로그램이 실행된다. 브레이크 포인터 설정을 통해서 진행을 중지하는 것이 가능하다.
(VS에서는 프로젝트 설정으로 조정가능)
16 if (state == -1) {
22 if(pid == -1) {
22 if(pid == -1) {
쉘로 탈출해 해당 명령어를 수행후 복귀한다.
Edit specified file or function.
Editing targets can be specified in these ways:
= front-end =
- GarbageCollection . . . . 17 matches
컴퓨터 환경에서 가비지 컬렉션은 자동화된 메모리 관리의 한가지 형태이다. 가비지 컬렉터는 애플리케이션이 다시는 접근하지 않는 객체가 사용한 메모르 공간을 회수하려고 한다. 가비지 컬렉션은 John McCarthy 가 1959년 Lisp 언어에서 수동적인 메모리 관리로 인한 문제를 해결하기 위해서 제안한 개념이다.
현재에는 기본적으로 Java, Dylan 과 같은 언어에서는 기본 명세로서 제공되는 기능이며, C++, C와 같이 수동적 메모리 할당으로 디자인되었지만 가비지 컬렉션 구현을 지원하는 언어들도 존재한다.
가비지 컬렉션의 주요 기술은 다음의 2가지로 구분할 수 있다.
1. 어떻게 앞으로 사용되지 않을 객체를 결정할 수 있는가?
2. 그 객체가 사용하는 객체의 저장공간을 어떤식으로 반환할 것인가?
2번째 경우에 대한 힌트를 학교 자료구조 교재인 Fundamentals of data structure in c 의 Linked List 파트에서 힌트를 얻을 수 있고, 1번째의 내용은 원칙적으로 완벽한 예측이 불가능하기 때문에 시스템에서 객체 참조를 저장하는 식으로 해서 참조가 없으면 다시는 쓰지 않는 다는 식으로 해서 처리하는 듯함. (C++ 참조 변수를 통한 객체 자동 소멸 관련 내용과 관련한 부분인 듯, 추측이긴 한데 이게 맞는거 같음;;; 아닐지도 ㅋㅋㅋ)
이거 말고도 문제가 상당하다고 하지만, 해석해야하는 관계로;;; 아래 링크에서 확인 바람.
2번째의 것의 경우에는 자료구조 시간에 들은 바로는 전체 메모리 영역을 2개의 영역으로 구분(used, unused). 메모리를 할당하는 개념이 아니라 unused 영역에서 빌려오고, 사용이 끝나면 다시 unused 영역으로 돌려주는 식으로 만든다고함. ㅡㅡ;; 내가 생각하기에는 이건 OS(or VM), 나 컴파일러 수준(혹은 allocation 관련 라이브러리 수준)에서 지원하지 않으면 안되는 것 같음. 정확하게 아시는 분은 덧붙임좀..;;;
- Google/GoogleTalk . . . . 17 matches
print "last_word :".$1."\n" if $debug;
if($close_counter>1) { exit; }
else
print "unencoded: " . $unencoded_url ."\n" if $debug;
print "encoded: " . $url->as_string . "\n" if $debug;
if($response->is_success)
print "Response:\n$res\n" if $debug;
print $1."\n\n" if $debug;
if ($next_word) {push(@next_words,$next_word);}
print "@next_words ".($#next_words+1)."\n" if $debug;
print "selected :".$next_words[$select]."\n" if $debug;
else
print $response->error_as_HTML if $debug;
print "query :".$q."\n" if $debug;
print "text :".$text."\n" if $debug;
print "match 1 |".$1."| 2 |".$2."| 3 |".$3."| 4 |".$4."|\n" if $debug;
경우에는
- JavaStudy2004 . . . . 17 matches
[겨울과프로젝트] 2004년 겨울방학에 진행하는 [Java] 스터디.
* [JavaStudy2004/오버로딩과오버라이딩]
* [JavaStudy2004/마우스로그림그리기]
* [JavaStudy2004/로보코드]
* ''''숙제 및 파일 업로드는 페이지 하단의 UploadFile을 참고해서 하시면 됩니다''''
* 추천도서 - Java HowToProgram - Deitel사. 2학년 전공 JavaProgrammingClass에서 교재로 사용하는 책. 간단하고 쉽다. 자바를 처음 시작하는 이에게 추천도서
* 작년에 [상규] 형이 진형하셨던 [5인용C++스터디] 를 경험삼아 비슷한 방식으로 진행하려 합니다
그리고 실습 같은것을 2명 짝 PairProgramming으로 하는걸 생각하고 있습니다
* 요새 난 영국 유학생 1학년 대상으로 자바 과외하는데... Pair로 하니까 금방 따라오더라. 내가 먼저 시범을 보이고 그것을 약간 응용한 것을 해보라고 한다. Pair 바꾸는 시간은 약 5~7분. 내가 시범 보이면서 말로 설명도 해야하기 때문에 그정도가 적당. 보통 설명할 때는 펜으로 종이에 그림으로 하고. --재동
* 새 언어를 배우면서 너무 툴에 의존하는 것 같다. 툴을 배우는게 언어를 배운다는 것을 잊지말자. 메모장으로 하는 것도 나쁘지 않고 --[강희경]
* 선생님만 19일 모임을 기억하고 있었더군요;; ㅋㄷㅋㄷ 금요일에 다시 모이기로 했습니다. - [이승한]
* 다음번 시간을 언제로 잡을까요? 수요일은 제가 안되네요 금요일쯤 생각하고 있는데 어떤가요? --[iruril]
[프로젝트분류], [Java]
- KDP_토론 . . . . 17 matches
* 현재의 이 WikiWiki 는 'Only for Study' 용이므로, 목적에 맞지 않는 사적인 페이지는 허용하지 않습니다.
* 로그인의 실명화 - UserPreferences 에 자신의 이름과 password를 등록시키면 자신의 SessionID가 붙는 MoinMoin 바로가기를 얻을 수 있을것임. 그 링크를 즐겨찾기에 놓고 사용하면 자동으로 로그인이 된 상태로 모인모인에 접속가능.
* 문체의 통일 - 일단은 '~다' 체로 통일. (중간 딴지가 없으므로 암묵적 동의라 생각함. 이견있으신 분들은 태클을..~)
* 이미지 & 화일 관련 - http://zeropage.org/~reset/zb/zboard.php?id=KDP_board_image 에 업로드 한 뒤 링크 따서 붙이는 식으로 합시다.
* 토론이 이미 끝난 내용에 대해서는 정해진 내용을 정리해서 KDP_Rule 로 옮깁니다.
JStorm 계셨던 분의 말씀을 들어보니, 서적의 번역과 그에 따른 저작권 문제, 출판 문제가 상당히 머리가 아프더군. 우리가 완전 번역을 하면 저작권에 걸리는 거고, 완전 번역시에 그걸 출판을 모색할 경우 상당히 힘들것으로 보인다. 이유는 우리가 학부생이고, 전문가라고 볼수 없는 위치에 있기 때문에 출판사 측에서는 그런 점을 지적한다. 그래서 많은 책에는 유명한 사람들의 감수가 들어 있다.
출판과 라이선스에 관련한 작업이 많고 학부생이 타진하기에는 너무 시간을 많이 빼앗기며, 그것은 공부 차원을 떠난 일이다. 이렇게 머리 아플바에야 완전 번역을 지향하는 것보다 강의 노트식 정리를 지향하고(비록 내용이 완전 번역일지라도) 원칙적 외부 반출을 금지하며, 내부 자료로 쓰도록 명시하여 라이선스 문제를 벗어나도록 하자는게 내 생각이고, 석천도 기본적인 동의를 한것으로 알고 있다. 그럼 의견들좀 타진 --상민
소모임내 스터디를 위한 문서번역은 어디든지 하는 곳들이 있다고 할때.. 단, 우리의 문제는 인터넷에 그 문서들이 노출되어있다는 점. 그래서 공개되어있다는 점이 되겠지. 하지만, 의도적인 저작권 위반이 아닌이상, 그리고 명시적으로 우리의 목적을 밝히는 선이면 추후에 문제가 발생하더라도 바로 소송걸릴일은 없을거라 생각. 그리고, 도큐먼트의 효율화를 위해서 처음엔 번역인 문서들도 요약화되어질 것이라 생각중. (어차피 1차 번역은 소위 '와우북식 번역책 욕하기' 에 딱 걸릴 수준인지라. --;) -- 석천
- LoveCalculator/zyint . . . . 17 matches
처음으로 C++로 해봤다
for(vector<string>::iterator i=instr.begin();i<instr.end();++i)
cout << (digit1 > digit2? digit2/digit1 : digit1/digit2)*100 << " %" << endl;
if(str[i]>=97 && str[i]<=122) // 소문자 a~z일경우
if(c>=97 && c<=122) // 소문자 a~z일경우
if(c>=65 && c<=90)
else
//한자리 일경우 종료
if(a<10) return a;
알파벳에서 숫자가 아닌 문자(alpha = alpha - 'a' +1)로 처리 하였다면 가독성이 좋아지지 않았을까? 그런데, 이건 내 취향일 수도 있지만,.. class로 함수들을 묶어 외부 접근을 못하게 했으면 나중에 소스코드를 재사용하기 훨씬 쉬워졌을텐데. 함수 분류는 현태 말대로 좋은거 같네. (그리고 upper함수는 toupper라고 이미 구현되어 있어.) - 이영호
toupper는... 몰랐습니다ㅠㅠ 비주얼어시스트로 upper쳐봤는데 안나와서 걍 만들었어요; MSDN 뒤졌으면 찾아서 썼을텐데~크크ㅠㅠ
위에말대로 클래스는 아직 배우지 않아서;; 배우면 곧 적용시켜야 겠네요^^ 아직 클래스의 위력은 잘 모르겠어서; -zyint
- MFCStudy_2002_2 . . . . 17 matches
DeleteMe ) 우리도도 그러다가 결국 따분한 이름으로 끝났다는 --["상민"]
* [07/18] - 공지는 수시로 확인해 주세요. 부탁드립니다!
* [07/18] - 책 준비 제대로 못해서 죄송합니다.
* [08/08] - 8월 8일 모임 있었습니다. 참석율이 저조 해서 조금 실망이네요.. 숙제로 낸 부분까지 모두 완성해오세요 ^_^;
* 숙제는 제가 컴퓨터를 켜면 MSN으로 보내주세요 ㅡ.ㅡ/
* 목욜날 제로페이지 정모하는 날 아닌가? 정모시간이랑 우리 스터디 하는 시간이랑 겹치는거 아냐??
- 뭐 정모 있으면 다른날로 옮기면 되고 정모 방학때는 한달에 한번이라던데......
[[BR]]- 역시나..정모와 겹쳤군요... 그런데 어쩌죠.. 제가 여.름.성.경.학.교.교사로 걸리는 바람에 숙제를 하나도 못했거덩요..-_-;;-성재
* 책 샀어요... 근데 역시 생각했던데로 꽤 두껍더군요...ㅠ.ㅠ 으... 1407페이지라....ㅠ.ㅠ
책이 없어서 그런지 좀 정리가 안된 느낌이다. 책을 빨리 사야겠다..함수를 몇개 배운거 같긴 한데 기억이 잘 나질 않으니..기억나는 사람이 이 페이지에 내용을 올려놨음 좋겠다.그리고 앞으로 스터디 할 때 책을 중심으로 차근차근 진도를 나가면 좀 정리가 될것 같기두 한데..-은지 [[BR]]
''처음에는 책을 위주로 보는게 좋겠지만, vc를 이용해서 윈도우 프로그래밍을 할때에는 MSDN 을 참조하는 훈련을 하는것도 중요합니다. 책은 그리 중요하지 않지만. 문서가 중요하죠.~'' - 임인택
''덧붙임. 비단 윈도우 프로그래밍뿐만 아니라 다른 어떤 종류의 프로그래밍을 하더라도 레퍼런스(라고 해야하나.. 적당한 단어가 생각이 안나네요..;;)는 없어서는 안되죠'' - 임인택
열심히 해서 훌륭한 프로그램을~ ㅋㅋㅋ... -상욱["whiteblue"] [[BR]]
["프로젝트분류"]
- MobileJavaStudy . . . . 17 matches
["Java2MicroEdition"]을 주축으로 핸드폰용 프로그램을 공부하는 페이지입니다.
* 이론적인 내용을 중심으로 공부하기보다는 간단한 프로그램들을 직접 개발해보며 J2ME를 알아가는 방법으로 진행한다.
* 서로의 소스를 비교해보며 잘된점과 잘못된점에 대해 생각해본다.
* 어느 정도의 실력이 갖춰지면 팀 프로젝트를 진행한다.
* ["MobileJavaStudy/Tip"] - 유용한 프로그래밍 팁
* ["MobileJavaStudy/HelloWorld"] - "Hello World" 를 출력하는 프로그램 제작 (9월 18일 까지)
* ["MobileJavaStudy/NineNine"] - 구구단을 종류별로 출력하는 프로그램 제작 (9월 20일 까지)
* http://www.mobilejava.co.kr - 모바일 자바 공부하기에 젤로 좋은 사이트
* http://www.joyworld.co.kr - 핸드폰에서 직접 테스트해볼때 서버로 쓸 수 있는 사이트
* 모바일자바스터디는 일단 종료하는게 어떨까?? 다음에 2차 스터디를 하든지 아님.. 프로젝트를 하든지 하면 될듯 한데.. --["상규"]
* 그려 XP 스터디 때문에 좀 힘들꺼 같으니까 우선은 종료하자. 담에는 스터디가 아닌 프로젝트 페이지로 열자꾸나 --재동
["프로젝트분류"]
- NoSmokMoinMoinVsMoinMoin . . . . 17 matches
|| 화일업로드 || 지원. 페이지별 개별 화일첨부. 화일첨부시 rename 가능 || 일종의 자료실. 하나의 공용 페이지로 화일공유|| 둘 다 위키와 함께 백업하기에 편리 ||
|| Navigation 기본형태 || 하단 검색창, 노스모크 스타일로 커스터마이징 가능 || 상단 검색창. 익스에서 단축키(Alt-Z, Alt-X, \) 지원. NoSmok:양손항해 를 위한 디자인 || . ||
|| 속도 || 느림 || 보통 || 이건 좀 개인적 느낌임. 다른 사람 생각 알고 싶음. nosmok moinmoin 은 action 으로 Clear History 지원 ||
|| login || u-id || id/pass || 이건 nosmok 쪽이 더 익숙하고 편리한 형태라 생각. 기존 u-id 식 로그인이 사람들 고생 좀 시킨것을 생각하면.||
|| 계층 위키 || 지원 || 지원 (1차 레벨) || '/' 구분자 이용시 부모 페이지 이름 자동으로 붙여줌.(단, 계층 위키의 적절한 이용에 대해선 NoSmok:HierarchicalWiki 의 글 참조||
|| 부가기능 || Hot Draw Plugin 지원, 간단한 벡터 그래픽 첨부 가능. 페이지 미리보기 기능, RecentChanges 에 변경사항에 대한 Comment 기능 지원. go 입력창에 새 페이지 작성시 자동으로 이미 만들어진 비슷한 이름(Like Page) 페이지들 리스트 보여줌.(1.1 이상) || go 입력창에 새 페이지 작성시 자동으로 이미 만들어진 비슷한 이름(Like Page) 페이지들 리스트 보여줌. InterWiki 등록을 위키내에서 수정가능. || . ||
|| . || Header 태그 이용시 자동으로 번호 붙음(해제 가능) || . || 때에따라선 불편한 기능. Header 작은 태그들을 꼭 큰 태그 써야만 쓸 수 있으니 쩝||
* nosmok moin인 moin 0.9를 기반으로 하여 업그레이드 되었고, moinmoin 1.1은 http://sf.net 에 올라와 있는 버전들의 가장 상위 버전입니다. 석천 차이좀 간단히 써주라. --["상민"]
기능들에 대해서는 좀 더 알아봐야 할듯. 그리고 또하나 생각할것은, 우리가 자주 이용하는 기능이 좋은 녀석을 골라야 한다는점. 둘 다 Python Source 이므로 여차하면 소스수정도 가능할듯. --석천
저것만으로는 아직 감이 전혀 안오네요.. 많이 여기저기 돌아다녀 봐야 겠네요 ㅡ.ㅡ --선호
["노스모크모인모인"] 으로 위키를 바꿉니다. 그리고 추후 노스모크모인모인 버전업할때에 한차례 더 바꿀 예정입니다. --["1002"]
요새 경황이 없어서 Sorry; (솔직히 심볼릭 링크 가리키고 있는 위치만 바꿔주면 완료이긴 하지만.. -_-; 저번에 심볼릭 링크로 위키 선택 가능하게 해놨던 관계로.. 하루만 버텨; 그리고, 지금 노스모크모인모인에서 북마크 기능이 제대로 작동 안되는중인지라. 이 기능 쓰는 사람 많은지 봐서..~ --["1002"])
전 현재 배포판인 MoinMoin 1.0 을 커스터마이징해서 썼으면 합니다. ''(http://acup.wo.to 에 가보시면 MoinMoin 1.0 을 커스터마이징한 위키를 구경할 수 있습니다.)'' ["노스모크모인모인"]에도 현재 욕심나는 기능이 많긴 하지만 MoinMoin 1.0 의 AttachFile 기능이 참 유용하다고 생각하고 있습니다. 그 밖에 Seminar:YoriJori 프로젝트가 다소 정체되어 있다는 느낌이 들기도 한 것이 이유가 될수 있겠습니다. MoinMoin 1.0 설치 및 커스터마이징은 2 ManDay 정도만 투자하면 가능하리라 생각됩니다. --["이덕준"]
- PowerOfCryptography/이영호 . . . . 17 matches
- 수정. 한가지 오류를 바로 잡음. "/10" 으로 나눔 연산.
p를 1834567891242341235423542542451234145678551475585744로 가정
// p를 string으로 받음
// n을 밖으로 낸다.
= 1/n * ( log( 10의 (string:p의 자릿수)승) + log((x) = string:p의 맨 첫숫자와 두번째 숫자를 일의자리로 한 것을 반올림. -> 예제에서 1.8) )
// 반올림은 ceil, floor 함수로 효율성 있게 구성한다.
// 여기서 문자를 숫자로 변경하고 log10 함수를 사용한다.
// 반올림 하지 않고 바로 log10을 취해도 됨.
// 반올림을 하고 정수로 캐스팅한다.
설령 실수형이래도 로그로 인해 근사값에 맞아 떨어짐. (반올림 하면됨)
// 개략 적인 코딩으로 컴파일러가 없어 에러를 잡지 못했음.
if(ret_buf >= (ceil(ret_buf)+floor(ret_buf))/2) // 반올림. 올림+내림/2보다 클거나 같을 경우
ret = (int)ret_buf; // 내림일경우 여기서 저절로 내린다.
- PythonForStatement . . . . 17 matches
}}} 약간..변형으로..
이유는 hello world라는 문자열 a 역시 C++의 배열과 비슷하게 쓸 수 있기 때문이야. h는 {{{a[0]}}}, e 는 {{{a[1]}}}... 이런식으로 말이야.
python의 for statement 문법의 근원적인 차원으로 접근해 봅시다.
["else" ":" suite]
음수가 아닌수로 제한되어 있으며 순서가 매겨진 집합. 내장함수인 len()는 시퀀스의 아이템 갯수를 반환한다. 시퀀스의 길이라 n이면, 인덱스는 0..n-1 까지의 범위를 가진다. 시퀀스의 아이템 i는 a[i]로 선택된다.
내장형의 시퀀스는 2.3 기준으로 여섯가지가 미리 정의 되어 있습니다.
내장형인 strings 도 시퀀스 형이며, {{{a[i]}}} 형태로 접근할수 있습니다. 따라서,
에서 i는 반복적으로 'h','e'... 을 반환하며
위에 기술된대로 list형 역시 시퀀스 형이며, {{{a[i]}}} 형태로 접근할수 있습니다.
여기까지 알아 보시려면, Python Language Reference에서 sequence, for statement로 열심히 찾아 보시면 됩니다. 열혈강의 파이썬에도 잘 나와있습니다. 그리고 다음의 이야기들은 다른 언어를 좀 아시면 이해가실 겁니다.
C / Java 1.4 이하버전 의 for 제어문은 객체의 특성을 따라 동작하지 않습니다. 이 언어들에서 for문은 정해진 조건문을 검사하면서, 탈출합니다. 즉, while문을 사람이 읽기 쉽게 약간 고차원으로 추상화된 형태에 불과합니다.
왜 C++에 안되느냐면, C++의 제어문이 C문법에 종속되어 있고, C에서는 배열과 같이 주소를 통한 인덱스로 접근하는 형들이 종료 인덱스에 대한 정보가 없어서 구현이 불가능합니다. 추상화 시켜 C++에서는 [STL]에 for_each(..) 라는 함수로 비슷한 것이 구현되어 있기는 합니다.
Java 1.5 에 advanced for statement 라는 이름으로 비슷한 것이 추가되었고, C#에는 언어가 탄생 될때 부터 있었습니다. Java 1.5에서는 수년간 논의 끝에 도입을 했는데, 언어에 녹이기 위해서는 Autoboxing/Unboxing과 편리성을 위해 Template과 같은 여러 필수불가결하고 복잡다난(?)한 개념이 함께 추가되었습니다.
- RandomWalk/종찬 . . . . 17 matches
int end=0;
while(end == 0) {
end=1;
if (x_move==0) {
if (x>0)
else if (x_move==2) {
if (x<size-1) {
if (y_move==0) {
if (y>0) {
else if (y_move==2) {
if (y<size-1) {
if (data[i][j] ==0) {
end=0;
cout << endl;
cout << "합 : " << sum << endl;
- Randomwalk/조동영 . . . . 17 matches
//바퀴벌레를 8방향으로 이동하게 할 배열
cout << "직사각형의 가로크기를 입력해주세요(2 < X <= 40) :";
cout << "직사각형의 세로크기를 입력해주세요(2 <= Y < 20) :";
if (Xroom > 2 && Xroom < 41 && Yroom > 1 && Yroom < 21)
cout << "세로, 가로의 크기의 범위를 벗어났네요. 다시 입력하세요." << endl;
if (ibug >= 0 && ibug < Xroom && jbug >= 0 && jbug < Yroom)
cout << "바퀴벌레가 방의 범위를 벗어났네요. 다시 입력하세요." << endl;
if(room[i][j] == 0)
if (ibug + imove[random] <0 || ibug + imove[random] > Xroom-1 ||
else{
cout << endl;
cout << "\n총 이동한 횟수 :" << count << endl;
오랜만에 C++ 로 코딩해보는듯...ㅋ 재미있었당
2차원 동적 배열할때 벡터를 사용해도 좋음. [RandomWalk2/Vector로2차원동적배열만들기] 자료구조 숙제는 [STL]을 사용하면 더 편하게 할수 있는거 같다. - [상협]
편하기야 하겠지만 남발하는건 좋지 않음. 특히 자료구조 숙제같은 경우에는 :( - [임인택]
- Temp/Parser . . . . 17 matches
#VendingMachineParser.py
class VendingCmd:
if item[0] != 'cmd':
if not tok:
self.err('Unexpected end of file')
if tok:
if num not in (10,50,100,500,1000):
if tok not in ('black','white','sugar_black','sugar_white'):
if money: return VendingCmd('put',arg=money)
if button: return VendingCmd('push',arg=button)
if aString:
if not tok:
if cmd is None:
cmds.append(cmd)
if __name__=='__main__':
- TheJavaMan/비행기게임 . . . . 17 matches
* 종스크롤(앞으로 나아가는) 게임
* 비행기 이미지 myplane안으로 넣기
- 플레이어 비행기는 HP와 MP를 갖는다.(처음 시작할때 랜덤하게 최고치를 정하게 된다..따라서 엄청 안좋은 비행기로 시작하는 경우도 생긴다-_-;;)
- 미사일의 파워 : 같은 종류의 적 비행기를 미사일에 성능에 따라 두번 맞춰야 터지는 경우가 있는가 하면, 한발로 적 비행기를 폭파시키고도 미사일이 계속 나가는 경우도 있다.(이 부분은 미사일에 HP개념을 두어, 미사일과 적기가 접촉하면 같은 속도로 HP가 깎이면서 먼저 HP가 0이되는 것이 터지는 방법으로 구현한다)
- HP, MP는 일정 점수 단위를 넘을때마다 상승한다.(디아블로로 치면 '피가 빨린다'는 표현이 된다) 레벨업도 일정 점수가 넘으면 오른다.(미사일의 파워, HP, MP, 스킬의 파워가 오르고 비행기의 모습 등등이 바뀔수도 있다)
- 적 비행기는 일반, 중간보스, 보스 형태가 있는데 보스급 비행기는 점수를 많이 준다거나 특정한 혜택을 준다.(디아블로로 치면 '레어 아이템' 정도가 된다)
* 적기 움직임을 로보코드처럼 정해줄 수 있다면 좋겠다는 생각에서 로보코드를 분석해보려고 하는데 같이 할 사람? -[Leonardong]
* 야 왜 비행기로 최고의 성능을 보유한 F-16을 안쓰는거야!! - xxxxxxxxx
* 위에 소스를 받아서 새 프로젝트를 만들고 file->import하면 된다.
- TheWarOfGenesis2R/일지 . . . . 17 matches
* [[HTML(<STRIKE>)]] DirectDraw 복습으로 알카노이드 만들기. [[HTML(</STRIKE>)]] - 1시간
* 이동(무한히--;), 공격(바로 옆에 있는 놈만) 가능
* 초기에는 Text모드로 스크립트를 만들고, 추후에 Binary모드로 스크립트를 만들 계획
* 계속 장난으로 작업하던 전투루틴의 헤더를 나눴다.
* 새로운 직업의 추가 등등
* 가드 직업의 구현 완료. 계속 이 템플릿으로 가면 될거 같다.
* 선호군이 인수군이 만든 전투 루틴을 그대로 갖다 쓸수 있을까 하는 의심을 품었다. 이에 발끈한 인수군, 조금 뚝딱거려서 mfc로 포팅해보았다. 잘된다. 고친거라곤 cout 이것과 명령어 파싱하는 그 부분밖에 없다. 잘된거 같다.
* GUI로 보이니까 버그가 보인다. 버그 수정
* Archer와 도끼병의 추가. 이로써, 직업의 추가는 매우 쉽다는 것이 판명됐다.
* 데이터들 파일로 빼는 작업
* 리팩토링의 위대함을 계속 느껴 버렸다. Extract Method는 기본이고, 상위 클래스로 올리기, 등등 이것저것 하니까 매우 간단해지는 것을 느꼈다.
* 메인 프로그램 : 스크립트를 읽어오기가 가능하다.
* 메인 프로그램 : 스크롤시 맵을 벗어나면 스크롤이 되지 않는다.
* 메인 프로그램 : 전투루틴 (일부) 포팅.
* 메인 프로그램 : 전투루틴 완전 포팅
- TicTacToe/노수민 . . . . 17 matches
public class TicTacToe extends JFrame {
if (exit)
else {
if (100 <= e.getX()
if (!checkBoard(row, col)) {
if (turn == O)
else
if (checkWin()) {
if (turn == 1)
else
if (board[r][c] != 0)
else
if ((board[i][0] == O && board[i][1] == O && board[i][2] == O)
if ((board[0][0] == O && board[1][1] == O && board[2][2] == O)
if (board[i][j] == 1)
else if (board[i][j] == 2) {
- TwistingTheTriad . . . . 17 matches
C++ 시스템의 Taligent 로부터 유래. Dolphin Smalltalk 의 UI Framework. 논문에서는 'Widget' 과 'MVC' 대신 MVP 를 채택한 이유 등을 다룬다고 한다. 그리고 MVC 3 요소를 rotating (or twisting)함으로서 현재 존재하는 다른 Smalltalk 환경보다 쓰기 쉽고 더 유연한 'Observer' based framework 를 만들 것을 보여줄 것이다.
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.
- 내가 파악한 MVC 모델은 너무 얕은 지식이였나. 여태껏 그냥 Layer 단으로만 그렇게 나누어진다만 생각했지 해당 이벤트 발생시나 모델의 값 변화시 어떠한 단계로 Control 이 흘러가는지에 대해서는 구체적으로 생각해본 적이 없었던 것 같다. 화살표를 보면 Application Model -> Controller 로의 화살표가 없다. 그리고 Problem Space 의 범위도 차이가 난다.
근데, WEB 에서의 MVC 와 GUI 에서의 MVC 는 그 Control Flow 가 다르긴 할것이다. 웹에서는 View 부분에서 이벤트가 발생하여 이것이 도로 Model 로 올라간다..식이 없기 때문이다. 믿을만한 출처일지는 모르겠지만, 암튼 이를 구분하는 글도 있는듯. http://www.purpletech.com/articles/mvc/mvc-and-beyond.html
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.
The behaviour of a view in MVP is much the same as in MVC. It is the view's responsibility to display the contents of a model. The model is expected to trigger appropriate change notification whenever its data is modified and these allow the view to "hang off" the model following the standard Observer pattern. In the same way as MVC does, this allows multiple vies to be connected to a single model.
One significant difference in MVP is the removal of the controller. Instead, the view is expected to handle the raw user interface events generated by the operating system (in Windows these come in as WM_xxxx messages) and this way of working fits more naturally into the style of most modern operating systems. In some cases, as a TextView, the user input is handled directly by the view and used to make changes to the model data. However, in most cases the user input events are actually routed via the presenter and it is this which becomes responsible for how the model gets changed.
While it is the view's responsibility to display model data it is the presenter that governs how the model can be manipulated and changed by the user interface. This is where the heart of an application's behaviour resides. In many ways, a MVP presenter is equivalent to the application model in MVC; most of the code dealing with how a user interface works is built into a presenter class. The main difference is that a presenter is ''directly'' linked to its associated view so that the two can closely collaborate in their roles of supplying the user interface for a particular model.
- VendingMachine_참관자 . . . . 17 matches
class VendingMachine{
VendingMachine();
if(i<=TOKEN_NUM) return i;
void VendingMachine::SetMenuM(int i)
void VendingMachine::AvailMenuPrint()
if (Money >= Price[i]){
void VendingMachine::AddingMenu(char * name, int price)
if (price<MinPrice) MinPrice=price;
VendingMachine::VendingMachine()
void VendingMachine::ProcessMoney()
void VendingMachine::ProcessPush()
if (Money<MinPrice) return;
if (Money >=Price[SM]){
void VendingMachine::ProcessReturn()
void VendingMachine::On()
VendingMachine v;
- [Lovely]boy^_^/USACO/BrokenNecklace . . . . 17 matches
* 역시 해석 삽질로;; 이상한 길로 빠졌다는;;
* 전혀 생각도 못한 경우가 튀어나와서 그걸 생각 못해준게;;
* 테스트 케이스에 맞춰 프로그램 고쳐나가다 보니..;; 점점 더러워졌다는;;
ifstream fin("beads.in");
fout << Process() << endl;
if(cur == 'w')
if(temp[j] != 'w')
if(cur == temp[j] || temp[j] == 'w')
else
if(j == len)
if(!allsame)
if(cur == 'w')
if(temp[len-1-j] != 'w')
if(cur == temp[len-1-j] || temp[len-1-j] == 'w')
else
if(max < lnum + rnum)
- 덜덜덜/숙제제출페이지 . . . . 17 matches
* multiplication : 구구단 프로그램 *
{{{~cpp /*학생 다섯명의 세 과목 평균을 구하는 프로그램입니다.
* 프로그램 이에요^^ *
음... 이름을 알파벳 1글자 이상 입력하면 프로그램이 이상해져 버립니다 ㅋ (힌트 : 이중배열 or 구조체) - [조동영]
*5명의 성적을 입력받아 평균내는 프로그램!! *
말했잔니 ㅋ 5명의 국어, 영어, 수학 점수를 각각 받아서 A는 평균이 XX다 B는 평균이 XX다 이런식으로 5명 모두 출력하는거야
너가 지금 짠건 한명만 받고 한명의 평균만 낸거고 ㅋ 그렇게 5명의 이름을 모두 받기위해서 char name [5][10]; 이런식으로 2중배열로 메모리를 잡아주어서
/* 프로그램입니다. */
우오오 구조체로 처음한 사람이다아~~~ ㅋㅋ 베리베리굳!!! 내가 가르친건 아니지만 감개무량 ㅠㅠ 구조체 이해했다면 이번 숙제도 가능할거입니다 ㅋ- [조동영]
* 다섯명의 성적을 입력받아 평균을 내는 프로그램 *
'%c' 는 캐릭터 문자 하나(char)를 말합니다. '%s'로 바꾸면 문자열(string)을 받거나 표현할 수 있습니다. 즉, {{{~cpp scanf("%c", &n);}}}가 {{{~cpp scanf("%s", &n);}}}로. printf로 표현할때도 마찬가지입니다. --재동
이런식으로 각 학생의 점수를 넣을수 있습니다.
위에 이름까지 같이 함께 묶어서 넣고 싶으면 .. 이름은 타입이 다르기때문에 구조체라는것을 써서 같이 묶어서 넣을수 있습니다. 구조체는 나중에 배울겁니다. ^^ 그리고 주석을 사용안하고 변수명으로 의미를 알수 있게 해줄수 있다면 그게 더 좋습니다. 변수명이 조금 길어지더라도 주석 없어도 이해가도록 짜면 좋습니다.(리펙토링에 나오는 얘기..) 예를 들면 국어 성적 변수명은 KoreaScore 혹은 ScoreOfKorea 이런식으로 쓸수 있습니다. - [상협]
- 데블스캠프2004/목요일후기 . . . . 17 matches
느낌 : 피로감;;;
교훈 : C도 흥미로운 프로그램이다
1학기때 배운 c++ 을 기초로 실습을 하니 흥미로왔다.
교훈 : 앞으로도 많이 배우고 도와주며서 향상된 기술을 쌓아나가자.^^
느낌 : 앞으로 유용하게 써먹을수 있을것 같다
교훈 : 새로운걸 끊임없이 받아들여야겠다
희경이는 잠이 많다. C는 최근 나온 언어들에 비해 문법들이 쓰기 불편하다. 그리고 데블스캠프는 힘들다고 느꼈다. 프로그래밍의 세계는 무궁무진하다. 여러 언어들을 접해보면 프로그래밍에 도움이 많이 된다는 교훈을 얻었다 --[노수민]
DeleteMe 강사 두분은 그냥 생각나는데로 쓰고, 나중에 분류하는 편도 편해요. --NeoCoin
* '문제는 내는 사람이 재밌는 걸 해야한다'는 말을 제대로 실감했다.
* 연이은 밤샘으로 인해 암호화 실습할 때 좀 졸았습니다. --영동
* 재선이가 찾아본 결과론 char str[]의 경우는 널문자를 포함하고 string은 아니기 때문이라는데 정말일까요?
* 수요일 새벽에 할 때는 자는 사람은 1명 밖에 없었습니다. 제가 보기에 그 이유는 재학생과의 패어에다가 15분 간격으로 계속해서 나오는 요구사항 변경이 그들을 계속 긴장시켜 놓은 듯 합니다. 즉, 밤 늦은 시간에는 템포를 짧게 하는 게 좋은 것 같습니다. 그러면 늘어질 새가 없게 되지요. --재동
* Siver bullet 는 Pair + 요구사항 변경일까? 시간이 걸리는 한가지를 진득히 구현하면서 밤을 새는 끈기를 이끄는 방법은 없을까? 재동 처럼하지 않은 것은 작년과 같은 기억으로 진행했었던 모양이다. 역시 피드백은 유용하군. ([데블스캠프2004/수요일후기] 강사후기에 적어주라) 작년 기록에서는 Pair 는 하지 않았군. 그럼 어떻게 해결했었을까? 03들이 작년의 기억을 되살려 [데블스캠프2004/공유비전]에 끈기를 넣은것 같은데 그때는 어떻게 했었지? --NeoCoin
* 그렇군, 뒤에 이틀을 살펴보니 신입생+신입생으로 구성된 페어가 보이는군, 올해는 재학생 + 신입생 페어를 지향한것 같은데(나도 그렇고) 무언가 부족한 점이 있을까? 월요일 관찰은 2/8분 규칙을 해도 몇몇이 선배가 무시하고 키보드 독점 폐해가 있었다. --NeoCoin
- 데블스캠프2004준비 . . . . 17 matches
* 소요비용 - pc실 관리 비용으로 쓴다.
* 토이 프러블럼 분제에 대한 도움을 줄때 개념설명을 해주고 얘기를 하면 그것으로 하여금 한번쯤 생각을 해서 스스로 짤 수 있도록 하자.
* 새로운 문제를 쓰자
* 새로운 멤버의 의지검증
|| 새로움 || 5 ||
|| 스스로 삽질 || 2 ||
=== 프로그램 문제 ===
* 로또번호생성기, 주민번호같은 양식검사기
주어진 시간 동안 신제용의 기상시간 데이타로부터 가능하면 많은 "정보"를 얻어내기
* 중대 졸업가능여부 판단 프로그램
* 정렬 개념 설명과 프로그래밍 실습-> 코드 비교 토론 -> 다른 방식 생각해보기
이번 데블스캠프2004에는 작년과 다른점이나 새로워지는 점같은것은 없나요? --NeoCoin
새회원이 프로그램 문제를 해결하는 동안 기존 회원을 위한 세미나를 준비해보면 좋겠다는 제안이 나왔습니다. 작년 기록을 보면 기존 회원을 위한 세미나는 없었던 모양입니다.--[Leonardong]
당연히 없었습니다. [데블스캠프]의 기본취지를 보시면, '밤새서 회원을 뽑기위한' 것 입니다. [데블스캠프]를 재정의하던지, 새로운 행사로 이름을 바꾸던지 해야지요.--NeoCoin
바로 다음 주인데 광고가 안되고 있습니다. 전에 세미나 할 때 이야기 했다고 안심하고 있으면 안됩니다. 과 게시판에 대자보도 붙이고 동문서버에 글도 올리는 게 좋겠습니다. 시험 기간이라도 조금만 수고해주세요. --재동
- 데블스캠프2009/월요일/연습문제/svn코드레이스/서민관 . . . . 17 matches
if(ent>50 || ent>max)
else if(ent <= 0||ent <min)
else if(ent<num && ent>0)
else if(ent>num && ent<=50)
else
if(min == max)
if(a%2==0)
if(i%2==1&&j%2==1)
else if(i%2==1&&j%2==0)
else if(i%2==0&&j%2==1)
else
else
- 레밍즈프로젝트 . . . . 17 matches
2005 년도 OP 텀 프로젝트
[레밍즈프로젝트/연락]
|| [레밍즈프로젝트/이승한] || 위키문서화, 그래픽 출력 프로토타이핑 ||
|| [레밍즈프로젝트/유주호] || 프레임 부분 프로토타이핑, 레밍 클래스 제작 ||
|| [레밍즈프로젝트/박진하] || 자료구조 프로토 타이핑, 맵 클래스 제작 ||
[레밍즈프로젝트/일정]
[레밍즈프로젝트/프로토타입]
[레밍즈프로젝트/다이어그램]
[레밍즈프로젝트/스펙분석]
[레밍즈프로젝트/그리기DC]
[레밍즈프로젝트/드래프트버전]
[http://myhome.naver.com/ssam1221/ 레밍즈 다운로드 사이트]
다운로드 가능 주소 : ftp://leonardong.nameip.net
- 새싹교실/2011/AmazingC/5일차(4월 14일) . . . . 17 matches
* 조건문
* if
if(조건식){
for(초기식;조건식;증감식){
* 초기식, 조건식, 증감식 생략 가능하다. 그러나 일반적인 상황에선 비추천
* 조건식을 만족하는 동안 증감식 수행하면서 명령 반복 실행
while(조건식){
* 조건식을 만족하는 동안 무한번 명령 반복
}while(조건식);
* 명령을 수행 후 조건식을 판단
[이가희] - 지금까지 배운 부분중에 가장 중요한 부분이라고 생각되는 반복문과 조건문! if, while, for! 뒤에 별찍는게 좀 무서워보이긴 합니다만 열심히 해보겠습니다^_^ 오빠도 시험 잘보세요~ 아니 잘 보시고 계신가요 ㅋㅋㅋㅋ?
1~2. 다음을 출력하는 프로그램을 작성하세요.
3. 구구단을 출력하는 프로그램을 작성하세요.(1단~9단)
4. 369게임을 30미만까지만 출력하는 프로그램을 작성하세요.(게임 방식대로)
- 새싹교실/2012/Dazed&Confused . . . . 17 matches
* 새싹 인원들 개인 사정들로 인해 한 주 휴강 -_-a (처음 부터..;;)
* 사실상 첫 수업이었다. 어떻게 가르쳐야 할까 고민하다가 나름 PPT를 만들어 보긴 했는데 (그래봤자 [http://winapi.co.kr/ winpai]에서 다 복붇이었지만 -_-) 허허허.... 모르겠다 -_-a 뭐.. 어찌되었든 간에 일단 이론적으로 PPT를 보면서 설명을 하면서 진행을 했는데.. 알긴 아는 거 같은데... 음.. 좀 더 같이 해 보면 알겠지- 그래도 잘 따라와 준 것 같아 고마웠다. 많이 부족한 놈을 선생으로 둔 새싹들도 고생 많았어요 -ㅅ- 다음엔 더 준비 해 올게요a 근데 왜 회고지엔 소라 게임에 대한 이야기만 있는거지.. 에잇 - [권순의]
* 소라 때리기 게임을 만들었다. 직접 소스코드를 입력하면서 소스코드의 쓰임을 익혔다. getchar(getch로 하다가 Visual Studio에서 즐 날려서 이걸로 대체)함수와 rand 함수를 배웠다. ppt를 통해 함수의 쓰임을 알아 볼 수 있어 좋았다. - [김민재]
* define, rand, srand, 다양한 헤더파일을 처음 써 보았다. 내가 혼자서 다시 해 봐야겠다. 신기했다. 이렇게 다양한 함수를 알게 되어 좋았지만 조금 더 집중해야 할 것 같다. 이번 강의에서는 실습이 적었는데 실습과 직접 프로그래밍을 해 보는 시간을 가졌으면 좋겠다. - [박용진]
* 새로운 용어들 #define, getchar, rand, <math.h>등에 대해서 알게 되었다. 이런 새로운 용어들을 복습해 봐야겠다. winapi를 알게 되어 조금 더 찾아 볼 수 있어 좋았다 - [박승우]
* 드디어 반 아해들이 맨붕을 하기 시작했습니다. 뭐 놀라운 결과도 아니지만,, 직접 보니 ...하네요. 이번에도 ppt를 열심히 복붙해서 나누어 줬습니다. 그렇게 하나하나 알려주다가 포인터부터 조금씩 힘들어 하더니 재귀함수 부분에서 실습을 원하길래 피보나치를 짜 보라고 시켰습니다. 표정들이 맨붕 복탄을 맞은 것 같더군요. 음... 그래서 결국 준비한 부분은 다 못 나갔습니다. 다음에 이어서 해야겠네요. 4주차 내용이 끝나면 한번 전반적으로 실습 위주로 시켜야 겠습니다. - [권순의]
* Pointer, 재귀함수, 메모리 등 많은 것을 배우는 시간이었다. 그러나 이 모든 것들이 다 새로운 것이다 보니 심하게 맨붕을 경험하게 되었다. 다음에 차근차근 복습하는 시간을 가져야 겠다.
* 포인터와 구조체, 전역 번수와 지역 변수에 대해 배웠고, 포인터가 어느 곳에서나 자료를 읽을 수 있다고 하는 것과 Call-by-Value, Call-by-Reference에 대해서도 배웠다. 포인터에 대한 개념은 알고 있었지만 깊게는 알지 못했는데 오늘 새싹으로 많은 것을 배울 수 있었다. 그러나 이 모든 것들이 하루만에 끝내려고 하다 보니 너무 부담스러웠다. 조금 더 다양한 프로그래밍 예제에 대한 경험을 했으면 좋겠다. - [김민재]
* 포인터, 재귀함수, 피보나치 수열을 코딩해 보았다. 피보나치는 하다가 실패했지만 자주 코딩을 해 보면 슬슬 감이 올 것 같다. 재귀함수의 return에 대한 개념이 흐려서 아직 재귀함수를 잘 못 쓰겠다. 연습을 자주 해야겠다. Practice makes Perfect?.. 포인터에 대한 개념이 흐렸는데 어느 정도 자리를.. 개념을 잡은 것 같다. 머리 속에서 코딩이 안 되면 펜으로 수도 코드작성이나 수학적으로 해설을 먼저 작성하는 연습을 해 보아야겠다. 강의에서 좀 더 코딩 연습이나 연습 문제 풀기와 같은 것이 많았으면 좋겠다. 단순히 따라적기만 해서는 잘 이해가 안 되는 것 같다. - [박용진]
* 오늘 강의는 지난 주 내용을 복습하는 것 위주로 진행되었습니다. 그래도 한 번 했던 내용이라 저번 주 보다는 이해하는 정도가 다르더군요. 그래서 다시 한번 재귀함수를 통한 피보나치 수열을 짜 보게 했습니다. 저번 주 보다는 그래도 나은 결과를 보여주었습니다. 그래도 지속적으로 반복 학습 시켜야 할 듯 싶습니다. 그와 동시에 실습도 여러번 필요 할 듯 하군요.. - [권순의]
- 새싹교실/2012/벽돌쌓기 . . . . 17 matches
: 조건문(if, switch), 반복문(for, while) 설명
* 첫 수업이라 많은 진도를 빼지 않고, 기본적으로 Hello World 프로그램 구현 가능에 중점을 두었다.
* 의외로 이해를 빨리하여 실습 예제를 빠르게 해결하였고, 흥미를 보이는 데 있어서 성공적이었다.
* 일반적으로 많이 쓰이는 반복문과 조건문을 설명하는 데에 있어 시간을 많이 투자하였고, 본 강사의 예제 코드를 따라 입력하게 한 뒤, 디버깅을 통하여 어떻게 구현되는가를 설명하였다.
* 허나 1회차의 내용을 제대로 복습하지 않아 1회차 내용을 다시 설명하는 데 시간이 조금 걸렸고, C언어를 배우는 데 있어서 필요로 되는 프로그래밍 능력 또한 키워주어야 한다고 판단 되었다.
* int와 int값의 연산은 int로 나오는 데, int와 float값의 연산이 왜 float로 출력되는 가, float와 float값을 int값에 저장하였을 때 왜 소수점 자리가 버려지는 가 등과 같은 내용으로 강제형변환을 강의하였다.
* 함수의 구현에 있어서 기본적인 int main(void) {}로 시작하여 간단한 swap함수와 add함수를 구현하여 설명하였고 return값이 정확하게 어떤 의미를 띄는지 함수선언의 자료형에 맞춰 강의하였다.
* 다음 강의로는 pointer에 중점을 맞춰 강의할 계획이다.
* 추가적으로 복습의 문제에 있어 회차마다 과제를 하나 내주어 복습을 반강제적으로 하게끔 유도하겠다.
- 새싹교실/2012/아우토반/뒷반/3.30 . . . . 17 matches
* 제어문(if, if~else, else if, switch)
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 오늘은 여러 가지 기초적인 문법 사항을 알려주었다. 언제나처럼 변수의 개념에 대해 강조했고, 개념 설명 위주로 수업을 진행하였다. 다음 주는 실습 시간이 될 예정이다. 아무래도 C를 처음 배울 때엔 많은 연습이 필요한 것 같다. 그러므로 학생여러분은 숙제를 해결해오세요~ ㅋㅋ - [장용운]
* 오늘은 C언어의 기초를 배운 것 같다. 오늘은 너무 피곤해서 수업시간 내내 졸았던 것 같아서 용운이 형한테 너무 죄송스러웠다. 그래도 이번 수업에서 한 내용은 C프로그래밍 수업 때 조금 들었던 것이었기 때문에 내용을 이해하기가 조금 수월했던 것 같다. 오늘 너무 많이 졸았기 때문에 다음 시간부터는 수업전에 컨디션 조절을 해야겠다. 그리고 앞으로 내용이 많이 어려워질것 같은데..... 열심히 해야겠다. - [김태헌]
정수를 하나 입력받는다. 입력받는 정수는 1~100 사이의 숫자로 가정한다.
입력받은 정수를 한글 발음으로 출력하는 프로그램을 작성하시오
while문의 조건문에는 != 연산자를 사용한다. != 연산자는 양쪽 피연산자가 같은 값을 갖지 않을 때 참이 된다.
전 영어가 싫어서 한글로 주석을 달았습니다~
- 스네이크바이트/C++ . . . . 17 matches
cout << ID << " " << Name << endl;//학번과 이름 출력
if(stu[i].getTotal() > Max)
if(stu[i].getMath() > Max)
if(stu[i].getKor() > Max)
if(stu[i].getEng() > Max)
cout << b <<endl;
cout << "천재" << endl;
cout << *pc << endl;
cout << c << endl;
cout << array[i] << endl;
cout << *(--pa) << endl;
cout << array[i] << endl;
cout << (*(type1.link)).data << endl;
if(input != 'q')
if(index == 0){
else
cout << "NULL" << endl;
- 위키설명회2005 . . . . 17 matches
[신입회원모집]과 [부드러운위키만들기]의 한가지 방법으로 행해지는 행사.
제로페이지의 활동에 큰 축이 되지만 첫 진입에 어려움을 겪는 위키를 설명하고 사용해보며 자연스러운 진입을 유도하는 자리.
[노스모크] 에서 검색을 통해 흥미로운 페이지를 찾아내고 간단하게 발표를 한다.
[노스모크] 를 이용하는 이유는 ZP위키는 프로젝트 중심이기 때문에 흥미로운 페이지가 적고, [좋은위키페이지] 에대한 분별력이 떨어질 것이라는우려.
잘만들어진 위키 프로젝트 페이지
제 일년전을 돌이켜보면 처음 한달동안은 공강조차 즐거울정도로 쉴새없이 즐겼던 기억이 납니다. ^^
앞으로도 즐거운 대학생활 즐기시길 바라며
ZeroPage에서 신입생을 대상으로한 ZP소개 및 wiki 설명회를 준비했습니다.
하지만 마치 바둑이 단 몇가지의 룰로 변화무쌍한 형세를 만들어 나가듯이,
<p href = "http://cafe.naver.com/gosok.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=135">ZDnet기사</p>
너무 늦고 있는것 같네요;; 내일 완성을 목표로!!
예전에 워드프로세서 자격증 실기시험 연습에서 만들었던 공문서와 구조나 주제 넘기는 방법들이 비슷하네요. 그땐 그게 아무짝에도 쓸모 없을줄 알았는데. 어쩐지 무의식중에 나오게 되는군요. - [이승한]
제 나름대로 한번 써보았습니다. 여기에 몇몇 내용만 덧붙이면 좋을 것 같네요.
* 음 그리고.. 위키위키의 메인 로고이미지 http://zeropage.org/wikis/nosmok/moinmoin.gif 는 그대로 계속 쓰는건가요..? ^.^a - [임인택]
- 정모/2013.1.8 . . . . 17 matches
* 회장은 선거일로 5일 이전 공고된 정모에서 정회원 출석 인원 과반의 득표로 당선되며 부득이한 경우 5일 이상 진행된 인터넷 투표에서 정회원 재적 인원 과반의 참여와 참여 인원 과반의 득표로 당선됩니다.
* 원칙적으로 휴먼 중인 정회원은 정회원 재적 인원에는 포함하지 않으나, 정모에 출석한 때에는 정회원 출석 인원에 포함합니다.
* 은퇴 처리되면 정회원으로서의 권한과 의무가 소멸합니다.
* 탈퇴 또는 제명 처리되면 회원으로서의 권한과 의무가 소멸합니다.
* 인터넷 투표는 정모 선거의 대체이므로 휴면 중인 정회원은 인터넷 투표에 참여할 경우 정모 출석에 준하여 권한을 행사하는 것으로 인정할 수도 있을 것 같습니다.
* 현재 졸업자, 졸업예정자 여부와 무관하게, 회장에게 활동 중단 후 1년 이내에 은퇴 의사를 표시하여 "은퇴 처리"되거나, 탈퇴 의사를 표시하여 "탈퇴 처리"되거나, 1년 이상 활동하지 않아 정모에서 "제명 처리"되거나, 회장이 정한 자격과 요건에 미치지 않아 준회원으로 "강등 처리"된 경우 선거권과 피선거권이 상실됩니다.
* 1인 1프로젝트/스터디 진행 의무
* 개인적으로 진행하는 사람은 정모나 위키에서 공유할것.
* 이수 : 9시까지 늦으면 버스터미널로 가서 와야 합니다. 차비 환불 따위 없다.
* 프로젝터
* [서민관] - 이래저래 행사도 많아서 시간이 많이 걸린 정모였습니다. 개인적으로는 임기 말인데도 꾸준히 활동을 하는 걸 보면 역시 태진이가 부지런하고 의욕 있는 사람이라는 느낌이 많이 드네요. 이번 MT는 빠지게 되었지만 어쨌든 다들 즐겁게 갔다 오셨으면 좋겠습니다. 1인 1스터디는 잘 될까 걱정은 좀 있군요...
- 프로그래머가알아야할97가지/ActWithPrudence . . . . 17 matches
이터레이션 초반에 스케줄이 아무리 여유로워 보인다고 해도, 시간 압박을 다소 받는 건 어쩔 수 없다. “제대로 하기”와 “빨리 하기” 중 선택해야 할 경우, 나중에 다시 돌아와서 고칠 수 있다는 전제하에 “빨리 하기”를 선택하고 싶어지기도 한다. 스스로에게나 팀에게 또는 고객에게 이런 약속을 할 때에는 정말로 나중에 고치겠다는 뜻이다. 그러나 십중팔구 다음 이터레이션에서 새로운 문제가 나타나서 거기에 집중하게 되곤 한다. 이렇게 연기된 작업은 기술적 부채(Technical Debt)라고 알려져 있으며 이런 일에 익숙해져서는 안 된다. 특별히, 마틴 파울러(Martin Fowler)는 그의 기술적 부채 분류 체계에서 이를 의도하지 않은 기술적 부채와 헷갈려서는 안 되는 계획적인 기술적 부채라고 부른다.
기술적 부채는 대출과 마찬가지다. 그로 인해 단기적인 이익을 얻지만, 전액을 상환하기 전까지는 이자를 지불해야 한다. 이런 코드 내 지름길 때문에 기능을 추가하거나 코드를 구조조정하기 어려워진다. 이런 지름길은 결함과 안정적이지 못한 테스트 케이스가 자라는 밑거름이 된다. 이를 오래 방치하면 방치할수록 더 나빠진다. 수정을 하려고 할 때 즈음이면 코드를 구조조정하고 수정하기 훨씬 어렵게 만드는 그다지 좋지 않은 설계가 애초의 문제 위에 켜켜이 쌓여 있을 수 있다. 사실상, 다시 돌아가서 고쳐야 할 때는 일이 너무 심각해져서 반드시 고쳐야 할 때뿐이다. 그 때엔 일정이나 위험을 감당할 수 없어 고치기 어려운 경우가 다반사이다.
데드라인을 맞춘다거나 기능의 단편을 구현하려고 기술적 부채를 발생시켜야 할 때가 있다. 이런 입장이 되지 않도록 애써야 하지만, 이런 상황이 반드시 필요하다면 그렇게 하되, 다만 반드시 기술적 부채를 추적해서 재빨리 갚아서 급히 끌어내려야 한다. 그렇게 타협하기로 결정하자마자, 이슈 추적 시스템에 과업 카드나 로그를 작성해서 잊어버리지 않도록 해야 한다.
다음 이터레이션에서 그 부채의 상환을 계획한다면, 비용은 최소화 될 것이다. 부채를 상환하지 않고 놔두면 이자가 누적되며, 그 이자는 가시적인 비용으로 추적되어야 한다. 이렇게 하면 프로젝트의 기술적 부채가 사업적 가치에 미치는 영향을 강조하며 상환에 적절한 우선 순위를 줄 수 있게 된다. 이자를 어떻게 산정하고 추적할 것인가는 각각의 프로젝트에 달려있지만, 반드시 그것들을 추적해야 한다.
이 글은 [http://creativecommons.org/licenses/by/3.0/us/ Creative Commons Attribution 3] 라이센스로 작성되었습니다.
여지껏 과제를 하면서 "제대로 하기"와 "빨리 하기"중 "빨리 하기"를 선택한 적이 많았는데 요즘 그 선택들에 대해 후회하고 있습니다. 지금도 프로젝트를 진행하며 팀이 두 선택지 중 고민중인데 진행하다보면 "빨리 하기"가 더 매력적으로 느껴지는 것 같아 걱정됩니다. 이 페이지를 팀원들이 다같이 읽어보면 좋겠다는 생각이 드네요. - [김수경]
- 프로그래밍잔치/ErrorMessage . . . . 17 matches
* 올라와서 언어를 정했다. 공통으로 다 아는 언어는 C++, GUI로 할것이므로 MFC가 낙찰되었다. 다이얼로그 가지고 놀던중 달력이 보인다.--; 달력 없애기로 함. 시계도 없애기로 함
* 1차 정리 시간 가까워질 무렵, 우리는 좌절을 느꼈다. MFC 그나마 좀 해본 인수군과 창섭군이 MFC에서 다뤄본건 다이얼로그 박스에 비트맵 뿌리는것 말곤 없었던 것이다.--; 그래서 다같이 어설픈 언어로 하느니, MFC로 하는 GUI보다는 JAVA로 하는 GUI에 익숙한 인수군이 자바로 하자고 운을 뜸. 창섭군 적극-_-동의. 그래서 자바로 바꿨음. 한 2시간 날렸다.
* 그러다가 인수군과 상욱이는 커피 마시고 오고, 어쩌다 보니까 팀이 바뀌었다. 나도 모르는 새에--; 은지누나+창섭군, 인수군+기웅, 상욱 이렇게 나뉘었다. 은지누나랑 창섭군은 전화번호부를 계속 만들기 시작했고, 인수군과 기웅은 레이아웃 잡으면서, 전자수첩 비슷-_-하게 만들어 나갔다. 상욱이는 자바는 익숙하지 않다고 일단 c로 만능달력 만들겠다고 시작.
* 끝나갈 무렵, 합칠떄가 왔다. 창섭군과 은지 누나가 한걸 가져와서 씌울라고 보니..(처음에는 쉬울줄 알았따. 내 메인 프레임에서 버튼을 누르면 창섭군과 은지 누나가 만든 전화번호부 프레임을 띄울 예정이었다.) 문제가 생겼다. 내껀 스윙이고, 창섭이네꺼는 AWT다.--; 스윙과 AWT 같이 쓰지 말라고 하는 말을 너무 많이 봐서.. 스윙으로 고치기 시작했다. ... shit. 함수가 다르자나.--; 이러면서 어떻게 어떻게 고치고 보니--; 메뉴가 가운데 달렸다. 석천이형의 도움을 받아서, 메뉴를 제 위치에 나오게 했다.
* 다 끝났다. 상욱이가 한 만능달력을 넣으려고 했지만, 시간 없어서 못했다. 하다가 SUCCESS팀 하는거 보고 생각난거, 우리 달력을 클릭하면 스케줄러가 뜰수 있게--; 실제로도 이것까지 해놨다. 날짜 클릭하면 창 하나 나오게.. 나중에 파일로 저장할수 있는 그런걸 해야겠다.
["프로그래밍잔치"]
- 현종이 . . . . 17 matches
<<m_dAvg << endl;
<<"\t\t"<< "이 름 : "<< m_szName << endl <<"\t\t"<<"국 어 : "
<< m_nKorean << endl;
cout<<"\n 영어수석 " << "\t" << "번 호 : "<< m_nNumber << endl
<<"\t\t"<< "이 름 : "<< m_szName << endl <<"\t\t"<<"영 어 : "
<< m_nEnglish << endl;
cout<<"\n 수학수석 " << "\t" << "번 호 : "<< m_nNumber << endl
<<"\t\t"<< "이 름 : "<< m_szName << endl <<"\t\t"<<"수 학 : "
<< m_nMath << endl;
if (s.m_nTotal > m_nTotal)
else
if (s.m_nKorean > m_nKorean)
else
if (s.m_nEnglish > m_nEnglish)
else
if (s.m_nMath > m_nMath)
else
- 후기 . . . . 17 matches
함수형 언어 Haskell을 배우는 시간을 많이 가졌는데 참 재미있었다. 더욱 재미있는 것은 함수형 언어의 좋은 점이 다른 언어에도 녹아들 수 있다는 것이다. 수학에서 출발하는 개념이 실제로 쓰이도록 중간에서 다리 역할을 하고 있다. 수학이 프로그램 언어에 미치는 영향력을 볼 때 학부 때 컴퓨터 공학 대신에 수학을 전공해도 좋을 것 같다. 그게 안 된다면 대안언어축제라도 참가하면서 [성장]할 수 있어야 한다.
대안언어가 보여준 많은 새로운 생각이 널리 퍼지지 않아 안타깝다. 혁신을 이루려면 많은 사람이 그 아이디어를 받아들여야 한다던데, 대안언어축제 이후에 어떠한 변화가 있을까? 새로운 아이디어를 적용한 코드를 작성할 수 있을까? 새로운 프로그램을 만드려고 할 때, 현재 사용하는 언어보다 더 적당한 언어를 선택할 수 있을까? 기존에 개발하던 프로그램이 있을 때는 새로운 언어로 갈아탈 수 있을까? 창의적인 아이디어와 실용성 사이 간격을 좁혀서 대안언어가 정말로 대안이 되길 꿈꿔본다.
더 대중적인 축제를 만들 생각도 해 보았다. 사람에게 감각적인 자극을 줄 수 있는 언어나 그 언어로 만들어진 프로그램, 혹은 다른 무언가가 있으면 어떨까? Mathmetica에서 프랙탈로 삼각형을 그리는 모습을 보고 사람들은 감탄했다. 패널토론 도중에 Squeak에서 보여준 시뮬레이션 역시 놀라웠다. 마이크로칩을 프로그램하여 모르스 부호를 불빛으로 깜박거리는 모습도 신기했다. 프로그램 언어에 익숙하지 않은 다른 분야를 공부하는 참가자들은 눈에 보이지 않는 동작 보다는, 감각적인 자극에 많은 호기심을 느낄 것이다. 시각 이외에 다른 감각을 자극하는 볼거리가 준비된다면 가족끼리 대안언어축제에 놀러 올 수 있을 것 같다. 마치 구경도 하고, 직접 체험해 볼 수도 있는 전시장에 온 것 같은 기분을 낼 수 있을 것이다.
- 3n 1/Celfin . . . . 16 matches
int countNum, cycle, i, start, end;
if(number%2==0)
else
int maxCycle(int start, int end)
for(i=start; i<=end; i++)
if(cycleNumber(i)>cycle)
while(cin>>start>>end)
if(start>end)
cout << start << " " << end << " " << maxCycle(end, start) << endl;
else
cout << start << " " << end << " " << maxCycle(start, end) << endl;
- 5인용C++스터디/후기 . . . . 16 matches
우선 처음 시작했던 사람들 모두가 함께 끝낼 수 있어서 이번 스터디는 그럭저럭 잘 끝난것 같습니다. 스터디 내용이 좀 많았지만 발표 준비도 잘 해 주었고, 숙제도 잘 하며 잘 따라와준것 같습니다. 이번 스터디가 얼마나 도움이 되었는지는 모르겠지만 지금까지 배운것 보다 좀 더 풍부한 경험이 되었다면 충분히 얻은것이라 생각합니다~ 앞으로는 관심분야를 잘 찾아서 스스로 스터디를 열고 열심히 공부하는 모습을 볼 수 있기를 바랍니다~^^ 다들 수고하셨습니다!
수업뒤 복습을 많이 해야하는데 처음에는 잘 하다가 나중에는 많이 부족했던것이 좀 아쉽네요. 개인적으로 좀 준비미흡이 안타깝습니다.
그래도 꾸준히 진도를 나가면서 전반적인 부분을 알게된 것 같네요. 많이 도움이 되었구요. 그리고 시스템체계에대해서도 약간 알았는데 앞으로도 공부하면서 더 많이 알아야 겠다는 의욕도 생기네요. 앞으로도 친구들과 스터디그룹을 만들어서 서로 공부하면서 선배님들께 물어보기도해야겠고^^; 글구 이번에 MFC를 배운것이 MFC를 공부하는데 이젠는 책을 보면 어느정도 할 수 있을 꺼 같아 좋은 것 같습니다.
방학기간동안 시간내주어서 지도해주신 상규선배님께 감사하구요 ^^ 글구 앞으로도 종종 자주 물어볼꼐요.~!
문법이 복잡하고 어려워서 정말 힘들었지만 그에 대한 두려움을 조금이나마 극복하게 된것 같습니다. MSDN 찾아보면서 숙제를 완성시키는 과정이 나름대로 만족스러웠습니다. MFC의 메시징 시스템 등의 체계, 윈도우 메시지의 작동 원리 등을 완벽히 이해하고 싶다는 생각이 듭니다. 스터디를 어떤 식으로 준비하고 발표해야될지 알게 되었고 윈도우 프로그램을 보면 어떤 식으로 만들었는지 대략 알 수 있는 능력이 생긴 것 같습니다. 다음 스터디부터 더욱 열심히 하고 싶습니다.
처음에는 의욕적으로(하핫) 스터디 나오면서 MFC를 알아가게 되었는데요.. 나중에는 몇번 빠지다 보니 저도 모르게 흐트러지고 있었네요. 그래도 모두들 꾸준히 나오는 것을 보고 저도 끝까지 나올수 있었습니다 ^^. 무엇보다 개인별로 발표 준비를 하면서 스스로 알아갈 수 있었다는 점이 좋았구요, 그 덕분에 스터디를 집까지 연장할 수 있었습니다.
공부하면서 아 내가 많이 부족하구나 하는 것을 알게 되었어요.. 끝까지 문법과 메시지 처리의 압박에 시달렸는데 내가 발표한것은 그나마(!!) 나은데 다른사람이 발표한 내용은 잘 알지 못하는 것 같아요 ㅎㅎ ^^; 친구들과 같이 공부하면서 나름대로의 경쟁심? 이랄까 의욕이란 것도 생기고 저만 빼고 다들 너무 잘 한 것 같아 앞으로도 열심히 노력해야겠다는 생각도 들엇구요 어떻게 공부해야 하나 대충 가닥을 잡을 수 있던 시간이었습니다
- AM/AboutMFC . . . . 16 matches
보통 이 수준까지 알고, 짤 필요는 없습니다. 하지만, 차후에는 궁금해서 알수밖에 없죠. (예외는 있으니, 따지지 마세요.) 보통 책에서 원리 수준만 소개합니다. 지면을 할애하기에는 MFC가 매크로의 도배로 이루어 져서 설명하기가 귀찮거든요. 하지만 자료는 있죠.
MFC의 정확한 동작 원리를 알고 싶다면, 2000년 5~8월 사이의 프로그래밍세계의 MFC관련 기사를 추천합니다.(도서관에 있고, 복사할수 있습니다.) 재미있는 자료입니다. 저는 우연히 01년 상반기에 기사의 필자 곽용재씨에게 해당 내용에 대한 강의를 들은적이 있는데, 그때 그림 사용을 허락맡고 [MFCStudy_2001]를 위해 자료를 만들어서 세미나를 했습니다.
자료는 소스분석으로 만들어 졌기 때문에 철저히 MFC 6.0(mfc42.dll Visual C++ 버전 6.0)을 기반합니다. 지금이 7.1 (mfc71.dll Visual C++ .NET 2003) 까지 올라 왔지만, 메세지 핸들링을 다룬 이 내용의 변화는 언급이 없습니다. ( from MSDN 2003 )
그나저나 정말 유치하게 써놨군요. 이 자료는 제 이야기를 전제하고 있어서 전혀 친절하지 않습니다.위에 언급한 프세 기사도 내용이 내용이니 만큼 :) 친절한 편은 아니지만 한줄씩 확인하면서 읽으면 알수 있습니다. 처음의 흥미로운 부분과 머릿말들을 보고 MFC 소스를 따라가는 방법만을 보세요.
|| Upload:MFC_Macro_23of3_2001.11.11.doc ||예제 소스코드 그림 파일로 캡춰||
F12로 따라가는 것은 한계가 있습니다.(제가 F12 기능 자체를 몰랐기도 하지만, F12는 단순 검색에 의존하는 면이 강해서 검색 불가거나 Template을 도배한 7.0이후 부터 복수로 결과가 튀어 나올때가 많죠. ) 그래서 MFC프로그래밍을 할때 하나의 새로운 프로젝트를 열어 놓고 라이브러리 서치용으로 사용합니다. Include와 Library 디렉토리의 모든 MFC관련 자료를 통째로 복사해 소스와 헤더를 정리해 프로젝트에 넣어 버립니다. 그렇게 해놓으면 class 창에서 찾아가기 용이하게 바뀝니다. 모든 파일 전체 검색 역시 쉽게 할수 있습니다.
그런데요. C# 관련해서 프로그래밍 프로젝트는 없어요? Windows플랫폼이라면, 일반 어플리케이션은 C# 뿐만아니라, Embeded 까지 .NET 계열이 맡게 될텐데 말이죠 :) --NeoCoin
- APlusProject/ENG . . . . 16 matches
설치할때 필요한 .NET Framework 파일은 바로 위에 파일 두개 나누어져 있습니다.
dotnetfx_kor.alz와 dotnetfx_kor.a00입니다. 알집으로 압축 풀면 됩니다.
Upload:APP_SetupManual_0609.zip --바로 위에 최종문서라고 적힌거 확인했는데 인덱스인가 승인에 잘못되어있길래 다시 수정해서 올립니다(qa)
=== asp.net웹 응용프로그램 만들기 할때 에러 발생시 해결책 ===
해결 방법: C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 폴더로 이동
프로젝트를 만든 컴퓨터는 .NET이 직접 프로젝트를 만들면서
->"로컬 컴퓨터" 확장
->응용 프로그램 설정 "만들기" 버튼 누름!!
XP가 OS일 경우 보안탭이 안보입니다. 이것을 해결하는 방법은...
==== 프로그램 ====
프로그램 확인 했습니다. 잘 되네요. 수고하셨습니다. 한편 추가된 페이지들로 인해 기본 설계와 상세 설계가 약간 변경해야 할 듯 합니다. 구현 하면서 설계때 생각치 못했던 게 나와서 설계 문서에 영향을 주리라는 건 이미 예상했던 일입니다. --재동
1. 로그인
2. 프로젝트 하나 불러오고
4. Select EF 페이지로 이동하면...
- BlueZ . . . . 16 matches
The overall goal of this project is to make an implementation of the Bluetooth™ wireless standards specifications for Linux. The code is licensed under the GNU General Public License (GPL) and is now included in the Linux 2.4 and Linux 2.6 kernel series.
주의점) 커널 2.4의 경우 스택에 RFCOMM 관련 스택이 구현 안된 버전들이 존재하기 때문에 해당 사이트에서 버전에 맞는 패치를 한뒤 커널을 새로 올려야함.
if (dev_id < 0 || sock < 0) {
if( num_rsp < 0 ) perror("hci_inquiry");
if (hci_read_remote_name(sock, &(ii+i)->bdaddr, sizeof(name),
if( bytes_read > 0 ) {
// send a message
if( status == 0 ) {
if( status < 0 ) perror("uh oh");
if( bytes_read > 0 ) {
if(argc < 2)
// send a message
if( status == 0 ) {
if( status < 0 ) perror("uh oh");
http://tistory.izyou.net/entry/BlueZ-라이브러리를-이용한-리눅스-Bluetooth-프로그래밍
- C++Study_2003 . . . . 16 matches
* 여러가지 방법이 있겠지만... 이번엔 담임이 주로 가르치는 방법이 아닌 학생이 중심이 되어 공부하고 발표하는식은 어떨까요? 처음 몇번은 담임이 세미나를 하는 식으로 하고.. 다음부터는 학생이 주제별로 준비를 해서 발표하고.. 부족한 부분은 담임에 채워주는 방식.. --[상규]
* 나쁘지 않을 것같네. 나는 마음먹은 대로 프로그래밍을 짤 수 있도록, 후반부의 문법을 가르쳐 주었으면 좋겠다는 생각을 했는데. --[선호]
* 새로 담임으로 참가했습니다! 많이 부족할 거 같지만 열심히 하겠습니다... --영동["Yggdrasil"]
* 남은 친구들을 나눠야 하는데.. 어떤 방식으로 나눌까요?? --[선호]
* 개인적인 사정으로 회의를 참여 못해서 회의 결과를 모르겠습니다.
원래 회의때 스터디에 대한 이야기를 하려 했으나 스터디 희망자중 5명만 회의에 참석하여 이 5명으로 구성된 [5인용C++스터디]가 우선적으로 만들어진 것입니다. 나머지 분들도 스터디를 하시려면 두 그룹 정도로 나누어 스터디를 진행하시면 되겠습니다. 전부 한꺼번에 스터디를 하기에는 좀 인원이 많습니다. --[상규]
* 음.. -_-죄송합니다.. 영동이랑 연락을 하려다가 점점 늦어지네요.. 팀은 인수군과 협의한 대로 나눠볼께요 ^_^;;;
* 우리 팀은, 동일군의 의견으로 목요일 오후1시로 하겠습니다 ^_^. 정 안되겠다 싶으면 연락 주세요. --[선호]
[프로젝트분류]
- C++스터디_2005여름/도서관리프로그램/문보창 . . . . 16 matches
Book 클래스와 ManageBook 클래스로 나눠서 각자 맡은바 임무를 잘 해 주도록 일을 분담했다. 스터디 시간에 Null 포인터에 자꾸 노드를 삽입했기 때문에 노드가 추가 되지 않았다. 그 전에도 그런 실수를 했는데 똑같은 실수를 반복하다니...
우선 스터디 시간에 버벅대서 마무리 짓지 못한거 미안하게 생각합니다. 자신이 꼭 스스로 프로그램을 짜시고, 그런 후에 제 코드와 비교해 보시기 바랍니다. 저보다 여러분이 잘한 점, 혹은 제가 잘한 점이 무엇인지 생각해 보시기 바랍니다. 어떤게 더 확장성과 재사용성에 유리한지 곰곰히 생각해보세요.
#ifndef BOOK_H_
#endif
#ifndef MANAGEBOOK_H_
#endif
if (!book_list)
if (strcmp((*temp).get_ISBN(), b.get_ISBN()) == 0 &&
if ((*temp).get_state() == kind_order)
else
cout << (*temp).get_ISBN() << endl;
cout << "** 도서관리 프로그램 **\n";
[C++스터디_2005여름/도서관리프로그램]
- C++스터디_2005여름/학점계산프로그램/문보창 . . . . 16 matches
꼭 본인이 모두 학점계산프로그램을 완성한 후 제 가 짠 코드와 비교해 보시기 바랍니다.
#ifndef CALCULATEGRADE_H_
void sort_student(); // 평점으로 정렬
#endif
// 평점으로 정렬시킨다.
if (student[p].average < student[j].average)
if (student[i].average < 1.5)
#ifndef STUDENT_H_
#endif
// 파일로부터 4과목 점수를 읽는다.
// 해당 학점을 double형 숫자로 1대 1 로 변환 시켜 입력
if (strcmp(str, alpa_grade[j]) == 0)
cout << "학번 : " << number << " 평점 : " << average << endl;
- CPPStudy_2005_1/STL성적처리_1_class . . . . 16 matches
#ifndef GUARD_Student
#endif
return m_total=accumulate(m_subjects.begin(),m_subjects.end(),0);
#ifndef GUARD_ScoreProject
ifstream &m_fin;
ScoreProcess(ifstream &fin,vector<Student> &students);
#endif
ScoreProcess::ScoreProcess(ifstream &fin,vector<Student> &students) : m_fin(fin),m_students(students)
it!=subject.end() && m_fin>>scoreTemp;++it)
for(vector<Student>::iterator it = m_students.begin() ; it!=m_students.end();++it)
for(vector<int>::const_iterator it2 = scores.begin();it2!=scores.end();++it2)
out<<it->getTotal()<<"\t"<<it->getAverage()<<endl;
sort(m_students.begin(),m_students.end(),::totalCompare);
ifstream fin("score.txt");
- ComputerNetworkClass/Report2006/BuildingWebServer . . . . 16 matches
* wsock32.lib 을 프로젝트에 추가 해야 돌아간다.
* [http://dasomnetwork.com/~leedw/mywiki/moin.cgi/NetworkProgramming 네트워크프로그래밍]
* 제작 작성해본 결과 HTTP Application 의 기본적인 사항은 에코서버의 연장선에 있습니다. RFC1945 를 확인하면 아주 단순한 형태의 구현만으로도 충분히 간단한 웹 서버의 동작을 구현하는 것이 가능합니다. (물론 이는 웹 브라우저가 RFC1945 의 HTTP-message BNF 의 가장 단순한 형태를 지원한다는 가정하에서 입니다.) CGI, 로드밸런싱을 이용할 수 있을 정도의 구현이 아닌이상 이는 단순한 에코서버의 연장선과 크게 다르지 않습니다. (어쩌면 모든 네트웍 프로그램이 에코서버일지도 -_-;)
프락시 서버 역시도 기본적으로 웹 서버와 동작이 다르지 않으며, Cache 의 방법과 로깅을 처리하는 방식에서 차이만 존재한다고 생각이 됩니다. 물론 핵심적인 부분이기 때문에 각 프락시 서버의 핵심기술이라고 볼 수 있겠지만, 이는 학과의 개인 프로젝트의 수준을 넘는 처리이므로 불필요하다고 보아지는 바, 역시 프락시 역시도 에코서버의 확장형으로 보아도 무방할 듯 합니다.
최초 작성하시는 분들은 우선 자신이 구현하려고 하는 웹 서버의 동작의 기본적인 구조(멀티쓰레드, 멀티프로세스, IO멀티플렉싱 등)를 결정하시고, 해당 방식으로 구현된 에코서버를 작성 혹은 소스를 구하신 후 웹브라우저의 HTTP request 를 읽어 분석한뒤, 알맞는 파일을 브라우저의 소켓으로 보내는 형태로 작성하시길 권합니다.
기본 소켓의 HELLO WORLD 만 주고 받을 줄 알고 HTTP BNF 만 주어진다면 1~3시간 이내로도 해결할 수 잇는 단순한 형태의 프로그램입니다.
- CryptKicker2 . . . . 16 matches
텍스트를 암호화하는 방법 중에 보안상 취약하긴 하지만 흔하게 쓰이는 방법으로 알파벳 글자를 다른 글자로 바꾸는 방법이 있다. 즉 알파벳의 각 글자가 다른 글자로 치환된다. 암호화된 것을 다시 원래대로 되돌릴 수 있으려면 두 개의 서로 다른 글자가 같은 글자로 치환되지 않아야 한다.
알려진 평문 공격법(known plain text attack)이라는 강력한 암호 분석 방법이 있다. 알려진 평문 공격법은 상대방이 암호화했다는 것을 알고 있는 구문이나 문장을 바탕으로 암호화된 텍스트를 관찰해서 인코딩 방법을 유추하는 방법이다.
첫번째 줄에는 양의 정수 하나만 들어있는데, 이 정수는 테스트 케이스의 개수를 나타낸다. 그 다음 줄은 빈 줄이다. 서로 다른 테스트 케이스는 빈 줄로 구분된다.
각 케이스는 여러 줄로 구성되는데, 앞에서 설명한 방법에 따라 암호화된 텍스트다. 암호화된 내용은 소문자와 스페이스만으로 구성되며 길이는 최대 80문자로 제한된다. 입력되는 텍스트는 100줄로 제한된다.
각 테스트 케이스에 대해 각 줄을 복호화하여 표준 출력으로 출력한다. 가능한 암호화 방법이 두 개 이상있으면 그 중 아무 결과나 출력해도 된다. 복호화할 수 없는 경우에는 다음과 같은 결과를 출력한다.
서로 다른 케이스 사이에는 빈 줄을 한 개 집어넣는다.
- CubicSpline/1002/NaCurves.py . . . . 16 matches
controlPointListY.append(givenFunction(x))
if i == j:
else:
if (x >= self.controlPointListX[0]) and (x < self.controlPointListX[3]):
elif (x >= self.controlPointListX[3]) and (x < self.controlPointListX[6]):
elif (x >= self.controlPointListX[6]) and (x < self.controlPointListX[9]):
elif (x >= self.controlPointListX[9]) and (x <= self.controlPointListX[10]):
if ((self.pieceSize-1)*(i-1)+self.pieceSize) > self.getCountControlPoints():
return self.controlPointListX[self.getFirstPiecePoint(i) : self.getEndPiecePoint(i)]
def getEndPiecePoint(self, i):
if (x >= self.getXi(i)) and (x < self.getXi(i+1)):
if x >= self.getXi(len(self.controlPointListX)-2):
cplY.append (givenFunction(x))
if i>0:
matrixB.append([6 * ( self.deltaY(i)/self.deltaX(i) - self.deltaY(i-1)/self.deltaX(i-1) )])
tempY.append([0.0])
row.append(0.0)
matrix.append(row)
- Doublets/문보창 . . . . 16 matches
if (type == 1)
if (type == 2)
if (count % 2 == 0)
else
if (node.front == NULL)
else
if (dic.next == NULL)
if (strcmp(first, second) == 0)
if (strlen(first) != strlen(dic.next->data))
if (first[i] != dic.next->data[i])
if (gap > 1)
if (gap == 1 && strcmp(formerWord, dic.next->data) != 0)
else
if (word.next != NULL)
cout << endl;
cout << dou->next->data << endl;
- GDG . . . . 16 matches
* ZeroPage 내 소모임 형태로 개설하는 것이 좋다는 의견을 수렴하여 공지. (9월 중)
* GDG Pre-DevFest Hackathon 2013 에 참여하고, GDG DevFest Korea 2013의 HackFair 안드로이드 애플리케이션 공모전에 작품 출품.
* 2014년 1월 25일 Std.IO 단체 결성과 Hello, World! 행사 진행으로 인해 가능성이 더 높아짐.
* 안 하기로 결정, 2014년 2월 6일 - [조광희]
* '''외부 행사는 GDG로 나가야 함 (병기를 할 수는 있음)'''
* 구글 서비스와 관련된 스터디/프로젝트?
* 큰 행사는 GDG를 설립하지 않고도 Std.IO로 진행할 수 있음
* OpenCamp가 별로 좋지 않다는 의견으로 보일 수 있어 부연합니다. ZeroPager가 원하는 활동이 있다면 그것을 하면 되지 굳이 OpenCamp와 같은 방식의 세미나를 고집할 필요는 없다는 의미입니다. - [김수경]
* 숭실대가 GDGSSU 이미 만들지 않은 상태면 GDG동작을 진지하게 밀었을텐데... 이미 GDG 따로 만들어서 안타깝네요. - [김수경]
* 별개의 조직으로 만들고 제로페이지 임원진과 GDGCAU 임원진은 안겹치도록. 회원은 자유.
* Chapter Status Requirements 활동이 제로페이지의 활동과 겹치는 부분이 많다고 생각함. 이 부분에 대해서 제로페이지 위주로 활동을 할 것인지, GDG 활동을 할 것인지에 따라 필요 유무가 확실하게 갈릴 것으로 보임 - [이봉규]
- HowToStudyXp . . . . 16 matches
제가 공부한 경험을 토대로 "만약 다시 공부한다면...":
* XP Installed (Ron Jeffries et al) : C3 프로젝트에 적용한 예, 얻은 교훈 등
이 중에서 XPI나 XPX를 먼저 권합니다. XPE는 좀 추상적인 서술이 많아서 봐도 느낌이 별로 없을 수 있습니다. (작년 마소 11월호에 제가 쓴 리뷰 참고)
* XP in Practice (Robert C. Martin et al) : 두 세 사람이 짧은 기간 동안 간단한 프로젝트를 XP로 진행한 것을 기록. Java 사용. (중요한 문헌은 아님)
* Surviving Object-Oriented Projects (Alistair Cockburn) : 얇고 포괄적인 OO 프로젝트 가이드라인
* The Psychology of Computer Programming (Gerald M. Weinberg) : 프로그래밍에 심리학을 적용한 고전. Egoless Programming이 여기서 나왔다.
* ["SoftwareCraftsmanship"] (Pete McBreen) : 새로운 프로그래머상
* ["TestDrivenDevelopmentByExample"] (Kent Beck) : 곧(아마 올해 내에) 출간 예정인 최초의 TDD 서적. TDD를 모르면 XP도 모르는 것. (TDD를 실제 적용하려면 적어도 반년 정도는 계속 훈련해야 함)
* http://groups.yahoo.com/group/testdrivendevelopment
KentBeck 스스로가 XP Explained를 만약 다시 쓴다면 뜯어 고치고 싶은 부분이 상당히 된다고 말하는 것을 보아도 알 수 있듯이, 초기 XP 이후 바뀐 점, 보완된 점이 상당수 있습니다. 따라서, 책만으로 XP를 공부하기는 힘듭니다. 지금은 책 속의 XP가 사람들의 머리 속 XP에 한참 뒤쳐져 있습니다.
어찌되었건, XP에는 무술이나 춤, 혹은 악기 연주 등과 유사한 면이 많습니다. 따라서, 글을 보고 그것을 익히기는 쉽지 않습니다. 그나마 메일링 리스트 같은 "대화"를 보면 훨씬 더 많은 것을 얻을 수 있기는 하지만, 태권도 정권 찌르기를 말로 설명해 내는 것이 불가능에 가깝듯이 XP를 언어를 통해 익히기는 정말 어렵습니다. 우리의 언어는 너무도 성글은 미디어입니다. (XP는 매 초, 매 순간 벌어지는 "일상적" 장면 장면의 연속들이 매우 중요합니다.)
이게 힘들면 같이 스터디를 하는 방법이 있습니다(스터디 그룹에 관한 패턴 KH도 참고하시길. http://www.industriallogic.com/papers/khdraft.pdf). 이 때 같이 책을 공부하거나 하는 것은 시간 낭비가 많습니다. 차라리 공부는 미리 다 해오고 만나서 토론을 하거나 아니면 직접 실험을 해보는 것이 훨씬 좋습니다 -- 두사람 당 한대의 컴퓨터와 커대란 화이트 보드를 옆에 두고 말이죠. 제 경우 스터디 팀과 함께 저녁 시간마다 가상 XP 프로젝트를 많이 진행했고, 짤막짤막하게 프로그래밍 세션도 많이 가졌습니다.
- JavaScript/2011년스터디/CanvasPaint . . . . 16 matches
if(ctx && flag){
if(drawmethod==1) drawLines();
else if(drawmethod==2) drawDotPoint();
if(lastImage1!=element.toDataURL()){
if(ctx && flag){
if(window.addEventListener){
if(!canvas){
//연필로 그리기
if(tool.started){
if(tool.started){
if(tool.started==false)
if(tool.started){
if(tool.started){
if(e.layerX || e.layerY == 0){
if(func){
- JollyJumpers . . . . 16 matches
n개의 정수(n>0)로 이루어진 수열에 대해 서로 인접해 있는 두 수의 차가 1에서 n-1까지의 값을 모두 가지면 그 수열을 유쾌한 점퍼(jolly jumper)라고 부른다. 예를 들어 다음과 같은 수열에서
앞 뒤에 있는 숫자 차의 절대 값이 각각 3,2,1이므로 이 수열은 유쾌한 점퍼가 된다. 어떤 수열이 유쾌한 점퍼인지 판단할 수 있는 프로그램을 작성하라.
입력 조건이 명확하지가 않군요! (1)입력을 한 줄 입력받고, Jolly 여부를 판단하고, 프로그램을 끝내거나, 혹은 (2)입력을 우선 모두 받고 입력의 끝 조건을 만났을 때,
각 줄 마다 Jolly 여부를 판단하는 경우가 있을 것 같네요. (2)번 방식의 경우 숫자대신 영문자가 들어오면 프로그램을 끝내는 방식으로 하면 좋을것 같군요. -- [문보창]
그건 그리 중요하지 않아. (1)로 하던지 (2)로 하던지. 중요한건 제대로 Jolly jumper를 판단할 수 있는가지. --재동
이 문제 첨에 봤을때하고 입력조건이 바뀌지 않았나요? 저는 입력이 4 1 4 3 1이 아니라 그냥 1 4 3 1 로 햇습니다 --[iruril]
- JollyJumpers/Leonardong . . . . 16 matches
if self.checkJolly( aSet = self.getSetOfDiffence( aSeries[1:] ),
if i not in aSet:
def getSetOfDiffence( self, aSeries ):
if seriesChar[0] is '0':
seriesInt.append( int(char) )
def testGetSetOfDiffernce(self):
self.assertEquals( str(self.jj.getSetOfDiffence( aSeries = [5,6,8] )),
self.assertEquals( str(self.jj.getSetOfDiffence( aSeries = [7,6,4] )),
if __name__ == '__main__':
처음에 리스트에 차를 집어넣은 후 정렬하려 했다가 집합 개념이 떠올라 그 쪽으로 해결했다. statementForSeries메서드 부분에 있던 CheckJolly메서드를 따로 테스트하면서 ExtractMethod를 하게 되었고, 차가 음수인 경우도 테스트를 통해 알게되었다. 보폭이 아직 좁지만 술술 진행한 문제이다.
실제 코딩에 들어가기 전에 생각하는 시간을 가진다. [생각하는프로그래밍]에서 읽은 게으른 프로그래머가 될 필요가 있겠다. 가능한 디자인 공간을 5분이라도 탐구하고 그 가운데 가장 괜찮은 놈으로 시도해봐야겠다. --[Leonardong]
- MFC/Print . . . . 16 matches
출력을 구현하기 위해서는 view 클래스로 부터 상속받은 수많은 함수들을 오버라이딩 해야한다.
= 프린트 로직과 관계된 함수들 =
* CDC::EndPage()
페이지가 남았다면 OnPrepareDC()로 이동하여 루프
* CDC::EndDoc()
* CView::OnEndPrinting()
뷰클래스의 5개의 멤버함수는 프로그래머가 재정의 해야한다. 최소한 5개중에서 OnPreparePrinting(), OnPrepareDC(), OnPrint()는 구현해야한다.
프린터에 대한 데이터의 출력은 디스플레이에 출력하는 것과 동일한 방식으로 이루어진다. (GDI가 장치 독립적으로 만들어져 잇기 때문이다.)
프린터 작업과 관계되는 모든 함수는 CPrintInfo 형의 객체 포인터가 인자로 전달된다. 이 객체는 프린터 작업을 관리하는 함수들을 연결시켜준다.
모든 멤버 변수는 public 변수로 다음과 같다.
|| m_bContinuePrinting || TRUE로 설정되면 출력 루프를 계속한다. FALSE가 되면 프린트 작업 종료. ||
|| m_nCurPage || UINT형식을 갖는 값으로서 현재 페이지 번호를 저장 ||
|| m_rectDraw || CRect 객체. 페이지에서 사용 가능한 영역을 논리 좌표로 정의 한다. ||
|| m_strPageDesc || CString 객체로 프린트 preview 동안에 페이지 번호를 나타내기 위해 프레임 웍에서 사용되는 포맷 문자열을 포함한다. ||
|| m_bDocObject || 응용프로그램이 lPrint 인터페이스를 통하여 출력하면 TRUE로 설정되며, 그렇지 않은 경우에는 FALSE이다. ||
|| m_dwFlags || m_bDocObject가 TRUE일때만 유호. DWORD값으로 lPrint::Print에 전달된 플래그 ||
- MagicSquare/재동 . . . . 16 matches
self.board.append([])
self.board[i].append(0)
if row < 1 and col > self.boardLength-1:
elif row < 1:
elif col > self.boardLength-1:
elif self.board[row][col] != 0:
if __name__ == "__main__":
if input % 2 == 1:
else:
if self.isOutOfUpAndRight():
elif self.isOutOfUp():
elif self.isOutOfRight():
elif self.isObstacle():
if __name__ == "__main__":
if input % 2 == 1:
else:
- PowerOfCryptography/허아영 . . . . 16 matches
나름대로 연필로 끄적거리다가, 끙끙앓기도 했지만, 곧 풀었어요! (올바른 알고리즘&답 인지는 모르겠지만 ^^;)
아마 제 맘대로 알고리즘 만든거라 이상하 거나 효율적이지 않은 코드가 많을 듯 합니다.
조건 부탁드립니다.
범위지정과 [PowerOfCryptography/Hint]를보고 ver 3을 만들기로 했다..
if(square_k(k, n) == p){
}else{
if(square_k(k, n) == p){
}else{
난 이 문제 보는 순간 sqrt함수 바로 쓰려고 했는데 -_-; 어쨌든 아영아 C++의 오버로딩으로 두개를 합쳐보는건 어떨까? - [이영호]
음.. 잘짯네.^^ 근데 temp라는 전역변수 없어도 되는거 아니냐?ㅎ 아웅 복잡해~>ㅁ<;; 그리궁..재귀호출인듯..ㅎ 꼭 재귀호출 안써도 될것 같은데 말야.^^ 잘못하면 스택오버플로우의 압박이..;;ㅁ;; 아닌가?ㅎ~~>ㅃ<;;;; ㅎㅎ 그럼 조은하루~!^^* - [조현태]
temp도 나중에 넣은거야. temp 넣지 않고 k 값을 바로 받아버리면 값이 달라져서 그렇게 했어 ^^
재귀호출은.. 생각난 대로 한건데, 스택오버플로우 되냐? ㅡㅜ -- 아영
- PyIde . . . . 16 matches
* 이름 : PyIde (PyIdea 로 하고 싶었으나.. 이미 sourceforge쪽에서 누군가가 같은 이름을 먹어버려서. -_-)
* 기간 : 새로 세울 생각. 단, 2-3개월 뒤에.
* Prototyping & 외부 공개소스 Review & Copy & Paste 하여 가능한한 빠른 시간내에 원하는 기능 구현법이나 라이브러리들을 연습하여 익힌뒤, Refactoring For Understanding 을 하고, 일부 부분에 대해 TDD 로 재작성.
* [Plex] - http://www.cosc.canterbury.ac.nz/~greg/python/Plex/ - 근데.. 몇몇 부분은 parser 모듈로만으로 충분할것도 같은데..
* [Eclipse] - [wxPython] 과 PDE 중 어느쪽이 더 효율적일까.. CVS 관련 기능들등 프로젝트 관리면에서는 Eclipse 의 Plugin 으로 개발하는 것이 훨씬 이득이긴 한데.. Eclipse Plugin 도 [Jython] 으로 프로그래밍이 가능할까?
''가능하다. Jython 스크립트를 Java Class 파일로 간단하게 바꿀 수 있다. 나는 IE 오토메이션을 이렇게 해서 자바 FIT에서 통합으로 관리하게 했었다. --JuNe''
아마 중간중간 학습할 코드들. 공부거리들. 하지만 중요한건 '지속가능한 속도로'
* http://www.exman.pe.kr/ExmanIDE/ - exman 님의 IDE. 마소 오픈디벨로퍼에서 개발기가 연재중.
* http://codespeak.net/pypy/ - 순수 파이썬으로 구현하는 python 이라고 한다. 관심이 가는중.
* 인터프리터에서 타이핑한 내용 화일로 저장하기 ( 이거 되는거 있나? python 사용법을 몰라서 )
[프로젝트분류]
- SwitchAndCaseAsBadSmell . . . . 16 matches
["가위바위보"] 구현 코드들을 보면 케이스 문을 많이 쓰거나 혹은 비슷한 구조의 if 문이 중복된 경우가 많습니다.
케이스문이 줄줄이 나오는 것이나 비슷한 구조가 반복되는 것이나 모두 "나쁜 냄새"(Moa:BadSmell )입니다. 조금이라도 나쁜 냄새가 나면 바로바로 냄새 제거를 해야 합니다. 예컨대, 반복되는 케이스문은 테이블 프로그래밍(Table/Data Driven Programming)으로 해결할 수 있습니다.
그리고, 사고의 도구들을 적극적으로 활용하기 바랍니다. 스테이트 다이어그램이나, 심지어는 x,y 좌표계를 사용하는 것, 혹은 서브루틴을 통해 문제를 소문제(subproblem)로 나누는 것도 아주 훌륭한 사고의 도구가 됩니다 -- 문제의 복잡도를 낮춰주기 때문이죠.
* 텍스트화일로부터 입력자료 읽고 해석하기
* 사람별로 이긴 횟수, 진 횟수 누적하기
if p1>=p2:
else:
사실은 이런 종적 상태로서의 프로그램이 중요한 것이 아니고, 어떻게 이런 프로그램에 도달할 수 있었는지, 그 사고와 프로그래밍의 과정이 중요합니다.
- TestDrivenDatabaseDevelopment . . . . 16 matches
TDD 로 Database Programming 을 진행하는 방법 & 경험들.
[1002]의 경우 TDD 로 DB 부분을 만들때 어떻게 진행될까 궁리하던중 두가지를 실험해보았다. 보통은 TDD로 DB 부분을 만들때 DB Repository 부분에 대해서 MockObject 를 만들지만, 다음은 Mock 을 안만들고 작성해봤다. 어떤 일이 일어날까를 생각하며.
public class SpikeRepositoryTest extends TestCase {
작성하는중에, DB에 직접 접속해서 확인하는 코드가 테스트에 드러났다. (이는 예상한 일이긴 하다. DB 에 비종속적인 interface 를 제외하더라도 DB 쪽 코드를 계속 쌓아가기 위해선 DB 코드를 어느정도 써야 한다.) 처음 DB 에 직접 데이터를 넣을때는 side-effect가 발생하므로, 테스트를 2번씩 돌려줘서 side-effect를 확인을 했다. 점차적으로 initialize 메소드와 destroy 메소드를 만들고 이를 setUp, tearDown 쪽에 넣어줌으로 테스트시의 side-effect를 해결해나갔다.
프로그래밍을 하다가, 만일 여기서부터 interface 를 추출한뒤에 거꾸로 MockRepository 를 만들 수 있을까 하는 생각을 했다. (interface 를 추출함으로서 같은 메소드에 대해 다른 성격의 Repository, 즉 File Based 나 다른 서버 로부터 데이터를 얻어오는 Repository 등 다형성을 생각해볼 수 있는 것이다.)
결과는 다음의 문제가 발생하였다. 바로, interface 에 DB Exception 던진것들이 묻어나는것이다.
즉, MockRepository 에서는 Exception 을 던질 필요가 없는데, 메소드마다 전부 throw 를 던져줘야 한다. (한편으로는, 다른 언어에서는 상관없는데 Java 에서의 Checked Exception 의 문제일런지도 모르겠다.
만일 MockRepository를 먼저 만든다면? interface 를 추출한 순간에는 문제가 없겠지만, 다음에 DBRepository 를 만들때가 문제가 된다. interface 의 정의에서는 예외를 던지지 않으므로, interface 를 다시 수정하던지, 아니면 SQL 관련 Exception 을 전부 해당 메소드 안에서 try-catch 로 잡아내야 한다. 즉, Database 에서의 예외처리들에 대해 전부 Repository 안에서 자체해결을 하게끔 강요하는 코드가 나온다.
- Ubiquitous . . . . 16 matches
유비쿼터스 컴퓨팅의 발전사는 1988년 미국 제록스의 팔로알토 연구소(PARC)의 연구원인 마크 와이저(Mark Wiser)가 차세대 컴퓨팅 비전으로 제시한 '''‘쉬운 컴퓨터’''' 연구에서 시작됐다.
최상의 도구란 사용자로 하여금 그 도구를 이용하고 있음을 자각하지 못하고 수행하고 있는 일에만 집중하게 하여 업무의 효율성을 높이게 하는 것’이라고 생각했다. 즉, 기존의 정보 기술이 업무를 보조하는 보조적 수단이 아닌 그 자체가 중심이 되어 버린 것을 비판하며, 인간 중심의 컴퓨팅 기술 즉, 사용하기 쉬운 컴퓨터 개념으로써의 유비쿼터스 컴퓨팅 비전이 제시되었다
지금까지 컴퓨터 과학은 연간1.5억대의 PC로 대표되는 대화형 컴퓨터에만 전력을 다 하였을 뿐, 연간 80억 개의 휴대형 마이크로 컴퓨터는 별로 주목하지 않았다.
가트너 그룹의 발표에 따르면 2001년 세계 PC 판매량은 1억 286만대이고 휴대용 단말기는 3억9958만대로 집계되었다고 한다.
물이나 공기처럼 시공을 초월해 '언제 어디에나 존재한다'는 뜻의 라틴어(語)로, 사용자가 컴퓨터나 네트워크를 의식하지 않고 장소에 상관없이 자유롭게 네트워크에 접속할 수 있는 환경을 말한다. 1988년 미국의 사무용 복사기 제조회사인 제록스의 와이저(Mark Weiser)가 '유비쿼터스 컴퓨팅'이라는 용어를 사용하면서 처음으로 등장하였다.
당시 와이저는 유비쿼터스 컴퓨팅을 메인프레임과 퍼스널컴퓨터(PC)에 이어 제3의 정보혁명을 이끌 것이라고 주장하였는데, 단독으로 쓰이지는 않고 유비쿼터스 통신, 유비쿼터스 네트워크 등과 같은 형태로 쓰인다. 곧 '''컴퓨터에 어떠한 기능을 추가하는 것이 아니라 자동차·냉장고·안경·시계·스테레오장비 등과 같이 어떤 기기나 사물에 컴퓨터를 집어넣어 커뮤니케이션이 가능하도록 해 주는 정보기술(IT) 환경 또는 정보기술 패러다임'''을 뜻한다.
유비쿼터스화가 이루어지면 가정·자동차는 물론, 심지어 산 꼭대기에서도 정보기술을 활용할 수 있고, 네트워크에 연결되는 컴퓨터 사용자의 수도 늘어나 정보기술산업의 규모와 범위도 그만큼 커지게 된다. 그러나 유비쿼터스 네트워크가 이루어지기 위해서는 광대역통신과 컨버전스 기술의 일반화, 정보기술 기기의 저가격화 등 정보기술의 고도화가 전제되어야 한다. 이러한 제약들로 인해 2003년 현재 일반화되어 있지는 않지만, 휴대성과 편의성뿐 아니라 시간과 장소에 구애받지 않고도 네트워크에 접속할 수 있는 장점들 때문에 세계적인 개발 경쟁이 일고 있다.
전자태그(RFID, 또는 스마트태그) : RFID는 스캐너라는 특정 장비를 필요로 했던 기존 바코드와 달리 무선을 통해 식품, 동물, 사물 등 다양한 개체의 정보를 관리할 수 있는 차세대 인식 기술을 말한다.
VoIPv6(Voice over IPv6) : 음성신호를 압축해 패킷으로 전송, 인터넷 전화
IT839 전략 : 우리나라 정부에서 진행하고 있는 차세대 성장엔진 전략. SoC 등 RIFD등의 전략들이 있다.
[http://zdnet.co.kr/news/network/ipv6/0,39029016,39137195,00.htm 한국 IPv6 주소 확보「세계 3위, 아태 1위」] - 독일이 9000여 개로 1위라고 하네요.
- UploadFile . . . . 16 matches
업로드 파일 이름은 유일하게 해주세요.
동일한 파일이 업로드 된다면, 기존의 파일이 지워지고 대체 됩니다.
다른 분이 업로드한 파일을 지우지 않도록 조심하세요.
MoniWiki는 두가지 인터페이스의 UploadFile매크로를 지원한다. 각각 이에 대응하는 액션이 있다.
UploadFile매크로는 파일을 올리는 폼을 보여주고, UploadedFiles매크로는 올려진 파일의 리스트를 보여준다.
== 다중 디렉토리 업로드 지원 ==
UploadFile매크로와 UploadedFiles매크로는 각각 다중 디렉토리를 지원한다.
'UploadFile'페이지 이외의 특정한 페이지에서 {{{[[UploadFile]]}}}을 사용하면, 그 페이지 이름을 하위 디렉토리로 하는 새로운 UploadFile 디렉토리가 만들어지고 그 밑으로 파일이 업로드 된다. (1단계 하위 디렉토리만 지원된다)
기본값은 {{{$pds_allowed}}}를 정하지 않았을 경우 {{{'png|jpg|jpeg|gif|mp3|zip|tgz|gz|txt|css|exe|hwp'}}}로 내정됩니다.
- VimSettingForPython . . . . 16 matches
set diffexpr=MyDiff()
function MyDiff()
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
silent execute '!C:Vimvim62diff -a ' . opt . v:fname_in . ' ' . v:fname_new . ' > ' . v:fname_out
endfunction
source $VIMRUNTIME/1002/EnhancedCommentify.vim
let g:EnhCommentifyUseAltKeys = "no"
let g:EnhCommentifyPretty = "yes"
- WorldCupNoise/권순의 . . . . 16 matches
cout << endl;
cout << "Scenario #" << i + 1 << ":" << endl << trumpet(scenario[i]) << endl << endl;
if(num == 1)
else if(num == 2)
else{
cout << "Scenario #" << i + 1 << ":" << endl << trumpet(scenario[i]) << endl << endl;
if(num == 1)
else if(num == 2)
else{
* 아... 입력 받고 시나리오 바로 출력하는 방식이었네요.. 전 처음에 입력 다 받고 나서 출력하는 거였는데.. 영어가 문제네요 -_-a
- YetAnotherTextMenu . . . . 16 matches
이번에도 역시나 텍스트 메뉴를 입력도구로 사용하는 프로그램이다.
보통 ToyProblems를 내줄 때, 입력양식으로 텍스트 메뉴를 이용하라는 요구사항이 주어지기도 한다. JuNe이 보기에는 이것은 "단견"이다. 학생들은 매번 비슷한 방식으로 텍스트 메뉴 프로그램을 만들 것이고, 매번 거기에 일정 시간을 빼앗길 것이다. 재미있게도 텍스트 메뉴를 사용하는 프로그램을 작성하면, 학생들이 만드는 프로그램 역시 그 메뉴의 구조를 닮는다. 이것은 그다지 바람직하지 않은 경우가 많다.
텍스트 메뉴에서 찾는 장점이라면 인터액티브하게 테스트해보기 좋다는 것 정도 될까? 그런데 이는 표준 입출력을 사용하되 버퍼링을 쓰지 않으면 역시 인터액티브하게 테스트 가능하다. 일종의 커맨드 쉘을 제공하는 셈이다(실제로 이를 좀 더 발전시키도록 하면 학생들은 많은 것을 배울 것이다).
차라리 "텍스트 메뉴" 자체를 Event Driven Programming 개념을 전달하기 위한 toy problem으로 쓰는 건 어떨까? 간단한 구조를 통해, 콜백 함수가 무엇인지 등을 배울 수 있을 것이다.
표준 입, 출력으로 간단하게 입력 받고 출력하게 하라. 입력자료는 다른 프로그램의 출력일 수 있다고 가정하고, 출력자료는 다른 프로그램의 입력으로 들어갈 수 있다고 가정하라.
ICPC 등 외국 컴퓨터 프로그래밍 경진 대회를 보면 대부분 이런 식으로 문제가 나온다.
- ZeroPageServer/Wiki . . . . 16 matches
A : RecentChanges 는 editlog 를 분석해서 출력하는데, editlog는 과거 기록을 삭제하지 않습니다. 따라서 editlog가 수만 라인 이상이 되면 editlog 를 읽는 속도가 급격히 느려질수 있으므로, 뒤에서 1000줄 정도를 남기고 삭제하면 원래 속도로 돌아 옵니다.
노스모크모인 안정 버전으로 바꾸었습니다. 얻는것
- 그 이상의 자료는 ssh-ftp 로 직접 올리세요.
저장 경로는 pub/upload 입니다. 권한을 꼭 풀어주세요.
몇가지 사소한 안내가 한글로 바뀌었습니다.
로그인을 편리하게 할수 있습니다. Go! KeyNavigator 로그인 안내 참고
로그인을 id-Password 활성화
기존의 번호 로그인 데이터를 삭제하였습니다.
번호 로그인 기능을 쓰시던 분들은 id-password 를 새로 만들어 주세요.
CSS 를 몇개 두었습니다. 로그인시 안내를 볼수 있습니다.
검색에 버그가 있는것 같네요. CVS로 검색하면 정작 [CVS]페이지는 나오지 않습니다. --[sun]
* Q : 로그인을 했는데도, RecentChanges 페이지에서 diff 아이콘 이외에 update, delete, new 등의 아이콘이 안생기는데, 노스모크 안정버전에서는 원래 그러한 것인가요? --[sun]
- [Lovely]boy^_^/USACO/WhatTimeIsIt? . . . . 16 matches
ifstream fin("clock.in");
if(min >= 45)
if(hour != 12)
else
else if(min == 15)
else if(min%10)
if(min/10)
if(min/10 == 1)
else
else
else
fout << endl;
if(a[i] == ':')
string m(a.begin() + token + 1, a.end());
- html5/richtext-edit . . . . 16 matches
* HTML5는 리치텍스트 편집용 API를 표준으로 규정한다.
* contenteditable : 문자열을 값으로 가짐, ""(null), "true" "false"
* contenteditable의 상태는 상속되므로 편집가능한 요소 하위의 요소는 모두 편집가능
isContentEditable로 현재 편집가능 알수잇음 ("true", "false", "inherit"반환)
if(editor.isContentEditable)
iFrame의 contentDocument를 대상 - iFrame안의 내용 편집가능
<iframe
</iframe>
<iframe
</iframe>
* collapse(parentNode, offset) : 지정한 요소(parrentNode)안의 지정한 위치(offset)으로 커서를 이동시킨다
* collapseToStart() : 현재 텍스트의 맨 앞으로 커서를 이동시킴
* collapseToEnd() : 선택된 텍스트의 맨 뒤로 커서를 이동시킴
if(data.operation == "add-favorite") {
// 즐겨찾기로부터의 삭제 처리
<블로그>
http://cafe.naver.com/webappdev.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=91
- whiteblue/파일읽어오기 . . . . 16 matches
UserInfo * pLendPeople;
void lendBook(UserInfo * pUi) { pLendPeople = pUi; bLone = true; }
ifstream f;
// end
ifstream fin;
if ( szTemp[i] == ',' )
// end
ifstream fin2;
if ( szTemp2[i] == ',' )
// end
if ( userinfo[i]->getSchoolNumber() == nUserNum )
if ( bookinfo[i]->getBookNumber() == nBookNum )
음. 근데 이거 스펙대로 한건가? 스펙에는 linked list 아니면, array 쓰라고 한것 같은뎅..-_-a - 임인택
그거 대신 STL을 썼죠.. vector 도 linked list 로 되어있잖아요^^;; -- 상욱(["whiteblue"])
벡터 링크드 리스트 아닌데;; list가 링크드 리스트다. 벡터는 내부적으로 동적 배열 씀. --인수
- 데블스캠프2006/월요일/연습문제/if-else/김준석 . . . . 16 matches
== 데블스캠프2006/월요일/연습문제/if-else/김준석 ==
if(50<=i && i<=100){
if(j%3==0 || j%5==0){
if(count%5==0) cout << endl;
cout << endl;
else cout << "님하 맨허" << "\n";
if else 2번 문제
if('a'<=i && i<='z') cout << "소문자입니다" << "\n";
else if('A'<= i && i<='Z') cout << "대문자입니다" << "\n";
else if('0' <= i && i <= '9') cout << "숫자입니다" << "\n";
else cout << "특수문자 입니다" << "\n";
- 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/송지원 . . . . 16 matches
* 가장 느리고 무식한 Linear Search로도 문제해결 했다를 보여주는 의지의 한국인 코드
* 프로그램을 재실행하면 또 오래 기다려야 해서 파일 입출력을 적극 활용
* 고로 이 프로그램을 복붙해서 그냥 실행하면 돌아가지 않습니다
* 이 프로그램은 Bayes Classifier 값을 구하는것 까지이고, 시간 관계상 값의 참/거짓 빈도는 엑셀을 이용해서 계산했습니다.
* 다른 분들과 달리, 저는 한 글자인 문자와 특수문자를 첫 글자로 포함하는 단어들은 Train Data 및 Test Data 분석에 포함시키지 않았습니다.
if(str.length() > 1 && str.charAt(0) != '.' && str.charAt(0) != ','&& str.charAt(0) != '!'&& str.charAt(0) != '"' && str.charAt(0) != ':' && str.charAt(0) != '-' && str.charAt(0) != ';'){
if(str.equals(data.get(i))){
if(addFlag){
if(str.length() > 1 && str.charAt(0) != '.' && str.charAt(0) != ','&& str.charAt(0) != '!'&& str.charAt(0) != '"' && str.charAt(0) != ':' && str.charAt(0) != '-' && str.charAt(0) != ';'){
if(str.equals(articleWords.get(j))){
if(addFlag) articleWords.add(str);
if(articleWords.get(j).equals(data.get(k))) eNum = frequency.get(k);
if(articleWords.get(j).equals(data2.get(k))) pNum = frequency2.get(k);
if (eNum == 0 || pNum == 0){ eNum++; pNum++; }
- 삼총사CppStudy/숙제2/곽세환 . . . . 16 matches
cout << "v1과 v2의 내적 : " << (v1 ^ v2) << endl;
cout << "v1의 길이 : " << v1.Length() << endl;
cout << "x = " << cx << ", y = " << cy << ", z = " << cz << endl;
진짜 잘하네요.. ^_^ 단한개를 지적하자면 스칼라값을 곱할때 v3 = 5 * v1; 이 안된다는것 정도겠네요... 이런건 friend함수를 한개정도 더 만들어주면 됩니다.
friend CVector operator*(double s, CVector v);
friend ostream & operator<<(ostream & os, CVector v);
cout << "v1 : " << v1 << endl;
cout << "v2 : " << v2 << endl;
cout << "v1 + v2 : " << v3 << endl;
cout << "v1 - v2 : " << v1 - v2 << endl;
cout << "v1 * 5 : " << v1 * 5 << endl;
cout << "5 * v1 : " << 5 * v1 << endl;
cout << "v1과 v2의 외적 : " << v1 * v2 << endl;
cout << "v1과 v2의 내적 : " << (v1 ^ v2) << endl;
cout << "v1의 길이 : " << v1.Length() << endl;
cout << "v1의 초기화 : " << v1 << endl;
- 새싹교실/2012/절반/중간고사전 . . . . 16 matches
* 4월에 겨우 첫주차를 시작하게되어 진도에 대한 부담이 있는터라 일단 비주얼 스튜디오로 실습을 진행했습니다. 리눅스 셋팅에 두시간을 다 쓰고 싶진 않았어요^_T 생각할수록 올해 시그윈 쓰는 건 참 마음에 안 든다…
* 교수님 커리큘럼이 궁금하네요. 제어문까지 진도 나갔다길래 변수, 자료형, 전처리기 당연히 했을 줄 알았는데 그런 내용은 아직 안 다룬 것 같더라구요? 제가 파악을 못한건지-_-; 처음부터 새로 가르칠 생각이 아니라 교수님 수업을 바탕으로 모르는 것을 채워주는 것이 목표라 수업 커리큘럼을 알고싶은데 올해 커리큘럼은 어디서 봐야할지 모르겠습니다. 봉봉 교수님때는 봉봉 교수님 페이지에서 강의자료를 받아서 볼 수 있었는데…
* 원래 설명을 좀 길게 하는 스타일인데 이번 년도엔 스타일을 조금 바꿔봤습니다. 지지난주 월요일에 OT 겸 만났을때 실습 위주로 가는 게 좋다는 의견이 있었고, 미리 공부해 본 부분이 있다는 말에 실습 과제만 준비해왔어요. 인원도 두명밖에 안되니 코딩하는 부분을 보고 보충해서 설명할 부분을 보충해서 설명하는 게 좋겠다고 생각했는데 교수님 커리큘럼과 제가 가르치고 싶은 순서가 안 맞는 문제도 있고해서 다음 시간부터는 간단하게라도 설명을 하고 실습을 진행해야 하지 않을까 싶은 생각이 듭니다. 장소도 칠판이 있는 곳으로 가야겠어요. 그런데 2시라 4피 쓸 수 있을까 걱정은 좀 되네요. 4피, 5피 중 하나는 쓸 수 있길 바랍니다.
* 오늘 새로 배운 것 세 가지
* 몇 자리 숫자든 상관없이 각 자리 수의 합을 더하는 프로그램 만들기
* 숫자로 시작하면 안 됨
* 제어문 파트는 각각 문법보다 어떻게 활용하느냐가 중요하다고 생각해서 일단 문법은 if문과 for문만 진행했습니다. 구구단 실습과 별찍기를 진행했으니 이제 반복문의 기본적인 활용에는 조금 익숙해지지 않았을까 싶습니다.
* 별찍기로 다이아몬드 모양 만들기
* 화요일 3시에 5피에 캡스톤 설계 수업이 있네요. 새싹하다 쫓겨났습니다ㅜㅜ 앞으로 5피는 못 쓰겠구나… 칠판 있는 곳을 선호하는데 어디로 가야할지 모르겠네요. 1학기에 5피 수업 몇개 없는 것 같은데 하필 시간이 겹치다니ㅠㅠ
* 앞으로 새싹을 게임 만들기로 진행하려고하는데 새내기들이 게임을 안 좋아한다고 해서 놀랐습니다. 당연히 좋아할 줄 알았는데 아니었어요. 컴공은 다 겜덕인줄 알았는데 나의 착각이었구나…………
* 가위바위보의 경우를 나눠서 설정하는 것
* 내손으로 처음 만들어본 게임
- 새싹교실/2012/햇반 . . . . 16 matches
하지만 학기초 공식적인 일정들이 많아서 따로 보강을 해야만 할 실정
민형이와 상영이가 총엠티 자봉단인 관계로 금요일 1시반으로 새싹반 변경
지금까지의 수업에서 했었던 내용을 집중적으로 복습
당시 6층 피씨실에서 없었던 관계로 VS를 이용하여 수업
1. 프로젝트 생성
2. 조건문
연습문제에서 했었던 간단한 별그리기를 기초로하여 좀더 어려운 별그리기 문제
저번시간에 했었던 순환문과 조건문 복습
민형이의 지각, 상영이에게 집중적으로 여러 예제를 스스로 구현하게함
민형:: 제가 C언어 시간때 공부를 열심히 하지 않아서 바로바로 진도를 따라가지 못하고 버벅댓지만, 앞으로 열심히 하겠습니다.
상영:: 전 아무것도 모르고 이 전공을 택했고 물론 c프로그래밍에 관해서도 아무것도 몰랐지만 별찍기나 구구단만들기 같은 것을 하다보니 C프로그래밍에 흥미가 붙었고 더 많은 것을 해보고 싶다는 생각이 들었습니다
- 시간맞추기/허아영 . . . . 16 matches
그리고, 이 프로그램 . 나도 못 맞추겠다. 8초를 어떻게 딱!! 알아낸담 ㅋㅋㅋ
if (kbhit()){
if(start_t - record == 0)
}else{
if (kbhit()){
if(time(0) - start_t == record)
}else{
if (kbhit()){
if(time(0)-start_t == record-1 ) // 수정한 부분
}else{
record로하면 9초가되어버리니( 0부터시작^^) -1을 붙였어.
사실 맨처음에 0 -> 1 이 되는순간이 0초에 극도로 가까울수도, 1초에 극도로 가까울 수도 있다는 거지..ㅎㅎㅎ
다른 함수가 있는걸로 알고 있지만.. 뭐~~
내가 얼핏 보기에는 clock() 함수도 프로그램 시작하고 시간을 제는 것이라고 들었는데, 어떻게 쓰는걸까? - [허아영]
음.. clock_t라는 time_t랑 비슷한 변수를 만들고 변수명=clock() 라고하면 프로그램이 시작된 뒤부터 지나간 시간이 기록되는군.. 그런데 함수의 특성상 정확한 시간을 나타내지는 않는다는 단점이..;;ㅁ;; - [조현태]
- 압축알고리즘/희경&능규 . . . . 16 matches
ifstream fin("input.txt");
if(pass[i] != temp)
if(i!=0)
else
ifstream fin("input.txt");
if(i==0)
else
if(pass[i] < 48 )
ifstream fin("output.txt");
if(isalpha(pass[i]))
else
ifstream fin("output.txt");
if(i==0)
else
if(pass[i] == 45)
else
- 정모/2003.8.12 . . . . 16 matches
=== 제로페이지 MT ===
* 연락처 파일이 깨졌음. 어쩔 수 없이 방 먼저 잡기로 하였음. 15명정도 짜리의 방로 잡기로 하고 이번주 내로 답사가기로 했습니다.
* 연락은 뒤져보거나 각 학번 별로 선배님 한분께 연락, 퍼뜨려 달라고 부탁드리기.
* [MedusaCppStudy] => 효율 70% 정도로, AcceleratedC++로 진도를 나가는 중
* [5인용C++스터디] => 효율 50% 정도로, 최종 결과물 준비중.
* [삼총사CppStudy] => 50% 정도로, 문법, 실습 위주.
* [HardcoreCppStudy] => 50% 정도로, 문법, 실습 위주. 지난주는 몇명이 안 와서 진도 안 나가고 실습을 좀 하였음.
* [타도코코아CppStudy] => 관리자(인수형)의 부재로 현재 상황을 알 수 없음.
* [JavaStudy2003] => 관리자의 아르바이트로 인해서 어려움을 겪음. 관리자가 제작한 튜토리얼을 보고 오에카키 제작을 목표로 함.
* [ProjectAR] => 상욱이 아르바이트로 빠져나간 후 진행이 더딤.
- 정모/2005.2.2 . . . . 16 matches
* 학생회측에서 서버실의 청소가 끝나는대로 구피의 청소와 PC점검 및 PC점검및 포멧 새로운 바탕화면설치를 요청.
위키 설명회는 회원모집날에 같이 하기로 하였고, 프로그램 배틀과 Joint 엠티는 일단 보류되었으므로 나중에 정해지면
남은 예산으로 해결함.
--> 올해 4월에 만약 여자 회원이 있을 경우에 일정을 잡는다. 만약 남자회원들만 남아 있을 경우 일정 취소.
* 로고, 캐릭터 상황
--> 현재(2월 12일) 로고를 제출한 윤진석 형이외에는 아무도 없습니다.--; 좀더 관심을 가지자는 의견.
* 새회원 모집 일정 --> 3월말(일찍 회원들을 모집해서 제로페이지라는 공동체의식을 좀더 강하게 유지한다는 의미를 내포함)
검은 모자를 쓰고 이야기해보겠습니다. 시작이 30분 늦어서 제시간에 온 사람은 기다렸습니다. 반대의 반대가 나와서 한 주제에 대한 이야기가 길어지기도 했습니다. 토론 주제가 암시적으로 바뀌어서 무엇을 이야기하고 있는지 모를 경우도 있습니다. ''위키에서 좀더 이야기하자''는 이야기는 정모에서 할 일을 미루기라고 봅니다.
저도 잠시 검은 모자를 써 보겠습니다. 회의 진행해나가야 하는 역할임에도 불구하고 스스로도 혼란스러워 하기도 했습니다. 덕분에 이야기가 다른 길로 빠지기도 했고요. 고쳐야 할 부분이라고 생각합니다. - [이승한]
[정모], [겨울과프로젝트]
- 정모/2005.3.14 . . . . 16 matches
정모는 이주에 한번 하는것이 보통이지만, 한번 더 하기로 결정하였습니다.
* 봄 프로젝트 시작에 대한 이야기를 해야겠네요.
* 위키설명회는 간단하게 상황보고를 하고 넘어갔습니다. (DeleteMe맞는지 모르겠네요;; 확실히 회의록은 바로올려야지 까먹네요;;- 이승한)
* 거의 확실하게 사물함을 무료로 배분 받을 수 있음을 보고.
* 그것을 발전시켜서 지금그때때 선배님과 재학생들에게 홍보를 하고 의견을 듣기로 결정.
* [지금그때] 이후에 사업을 진행 시키기로...
* 봄프로젝트 (신입생대상 세미나)
* 봄프로젝트에 신입생 대상세미나를 포함시킴.
* 1주단위 세미나로 진행
* 주제는 다양하게 선정하며. 신입생들에게 서도 주제를 받기로 결정.
* 4월 첫째주 부터 중간고사 전주 까지 하면 총 3번정도의 세미나 텀이 나옴. C세미나는 [문보창], [이승한]이 진행 하기로 결정.
* 봄프로젝트 - JSP, SmallTalk, AOI, 신입생세미나
* [회원정리]를 실시하였습니다. 유령회원들은 [ZeroWikian]으로 강등시켰습니다. 유령회원의 페이지는 곽감하게 삭제하기로 결정하였습니다.
[지금그때2005/리허설] 뿐 아니라 [위키설명회2005] 도 월요일에 하네요. 월요일에 참석을 못 할 듯 싶어서, 글로나마 [지금그때]리허설을 하면서 다음 사항을 점검하길 바래요.
그냥 다른 생각하기 귀찮아서 월요일로 정했답니다. 다음 정모는 고려해 볼께요~^^ - [이승한]
- 정모/2013.1.29 . . . . 16 matches
* 다음주 정모(2/5)는 쉬는 것으로 결정.
* 2월 12일 날 실시하기로 결정.
* 지출 예상내역으로 신입생 맞이를 위한 책자제작 비용, 스티커 등이 있다.
* 의견2: 학회실로 오게해서 가입하는 방식으로 합시다.(신청서를 오프라인으로 걷는 방식.)
* 김민재 : 새싹교실 강의 방식을 단체로 강의하는 방식으로 바꾸는게 어떻습니까?
* 의견1: 단체로 강의하는 방식은 맨투맨방식의 강의가 주는 장점을 위축시킨다.
* 의견2: 단체로 몇번한뒤에 판단을 내려서 그대로 하거나 나누는게 좋을 것같다.
* 결론: 우선은 작년 방식으로 하되 정기적으로 전체적으로 만나는 방식으로 해서 진행.(시간이 있으므로 자세한 것은 나중에 결정. 변경가능성 有)
- 중위수구하기/정수민 . . . . 16 matches
알고리즘은 사람이라면 어떻게 판단 할까 라는 생각을 주로해서 만들었다.
사람의 사고와 비슷하다고 말할수없을 정도로 딱딱하지만 중간값에서 가장 가까운 값을 찾는 점에서 이 알고리즘을 선택했다.
printf("비교할 A, B, C 값을 차례로 입력 : ");
if(a == -999){
if (middleNum_1==*a||middleNum_1==*b||middleNum_1==*c) break;
if (middleNum_2==*a||middleNum_2==*b||middleNum_2==*c) break;
if (i_1<i_2) return middleNum_1;
else return middleNum_2;
printf("비교할 A, B, C 값을 차례로 입력 : ");
if(a == -999){
if (middleNum_1==*a||middleNum_1==*b||middleNum_1==*c) return middleNum_1;
if (middleNum_2==*a||middleNum_2==*b||middleNum_2==*c) return middleNum_2;
로열티를 지불해야하는건가 =ㅅ=;; ㅎㅎ 계속할지 안할지 몰라서 =0=;;; 하도록 노력해 보마 =_=!!ㅋ
다시 보니까 , 새로운 알고리즘이다+_+ 굿굿..~! ~! --아영
꿈이 인공지능연구니까 이상한쪽으로 많이 생각이나더라고 ㅎㅎ 능률은 상당히 저조하지만 그런대로 만족하는 소스라는 ㅋ
- 05학번만의C++Study/숙제제출/1 . . . . 15 matches
이번 숙제는 월요일까지 휴일인 관계로 '''22일'''까지 '''제출'''해 주시면 됩니다.
숙제1/허아영 <<- 글쓰기를 눌러서 이런 식으로 페이지를 만드시고 거기에 자신의 소스를 올리시면 됩니다.
=> 숙제 페이지는 프로젝트 페이지의 하위 페이지에 만드시기 바랍니다. 여러 프로젝트가 존재하고 그것을 기록, 보존, 관리 차원에서 05학번만의C++Study/숙제1/허아영 와 같은 식으로 프로젝트의 하위 페이지로 만들기 바랍니다. -- 재선
섭씨 온도를 전달인자로 전달받아 화씨 온도로 환산하여 리턴하는 사용자 정의 함수를 main() 함수가 호출하는 프로그램을 작성하시오. 프로그램은 섭씨 온도로 입력할 것을 요구해야 하고, 다음과 같은 실행 결과를 출력해야 한다. 참고로, 섭씨 온도를 화씨 온도로 변환하는 공식은 Fahrenheit = 1.8 X Celsius + 32.0 이다.
섭씨 20도는 화씨로 68도 입니다.
- 1thPCinCAUCSE/ExtremePair전략 . . . . 15 matches
* ["컴공과프로그래밍경진대회"](1회 대회)에서 {{{~cpp Extreme Pair}}} 팀의 전략을 공유하는 페이지 입니다.
* 저희 {{{~cpp Extreme Pair}}} 팀은 어떤 문제든 우선 소스를 기본적으로 밑에 형태로 시작했습니다. 그래서 입력과 출력이나 진행에는 전혀 신경 쓰지 않고 문제를 푸는 알고리즘(process() 함수 부분)에만 집중할 수 있었습니다.
cout << outputData[i] << endl;
* 문제당 따로 알고리즘을 생각하여 먼저 생각난 것이나 둘 중에 좋은 알고리즘을 선택했습니다.
* 이때 여러 문제를 동시에 푸는 게(예: 2명이서 2개의 문제를 동시에 푸는 것) 아니라 한 문제에 대해서만 생각했습니다. 왜냐하면 예를 들어 문제 1번을 생각하는 데 A가 12분 B가 8분이 걸리고 문제 2번을 생각하는데 A가 10분 B가 15분이 걸렸다고 하면 한문제를 둘이 동시에 풀면 8 + 10... 총 18분이 걸렸을 것을 문제를 각각 나누어 풀면 최악의 경우 A가 1번 B가 2번으로 나누어 풀면 12 + 15... 총 27분까지 시간이 걸리기 때문입니다. (대회 규칙상 컴퓨터는 각 팀당 무조건 1대입니다)
* 코딩은 기본적으로 ["PairProgramming"] 이였습니다. 드라이버가 코딩할때 파트너는 잘못된 코딩뿐만 아니라 이해안가는 부분에서는 계속적인 질문으로 드라이버 스스로 명확한 코드를 만들도록 했습니다.
* ["TestDrivenDevelopment"]를 사용했다고 말하기는 그렇지만 테스트 케이스를 입력으로 넣어놓고 프로그래밍 중간 중간에 제대로 돌아가는 지를 확인하기 위해 지금까지의 진행 상황을 출력했습니다.
* 상규와 대회전 연습을 통해 코딩 스타일과 규칙을 미리 정했었던 게 중요했다고 생각합니다. 안그랬으면 알고리즘 이외의 것도 생각해서 속도가 느려졌을 것입니다. 그리고 미리 호흡을 맞춰봤으므로 하면서 딱딱 맞았습니다.
- 2011국제퍼실리테이터연합컨퍼런스공유회 . . . . 15 matches
* 입장할때 지급받은 스티커로 된 이름을 붙여놓고 주위 사람들과 인사하고 상대방의 눈을 보며 대화하며 캐리커처를 그려줌.
* 퍼실리테이터(facilitator)는 회의 또는 워크숍과 같이 여러 사람이 일정한 목적를 가지고 함께 일을 할 때 효과적으로 그 목적을 달성하도록 일의 과정을 설계하고 참여를 유도하여 질 높은 결과물 만들어내도록 도움을 주는 사람을 말한다.
사람들은 일정한 시간에 일정한 장소에서 홀로 일을 하는 것이 대부분이다. 그러나 때로는 여럿이 일정한 장소에 함께 모여 일하는 것이 필요한 경우가 많다. 회의나 워크숍이 그러한 경우이다.
아이디어를 창출할 때, 문제를 파악할 때, 문제를 해결할 때, 전략을 개발할 때, 비전을 만들 때, 조직의 상황을 공유할 때, 조직문화를 탐색할 때, 합의에 의하여 의사결정을 내릴 때, 팀워크를 형성할 때, 사업 계획을 개발할 때, 과제를 찾아낼 때, 실천 계획을 작성할 때 등은 일반적으로 관계하는 사람들이 함께 참여하여 일하는 것이 바람직하다.
하지만 회의나 워크숍에 대한 비판도 만만치 않다. 비효율적이고 의미없는 회의나 워크숍을 많이 경험했지 때문이다. '회의' 하면 '시간 낭비,' '쓸데없는 일' 정도로 여기는 사람들도 적지 않다. 이는 회의를 효과적으로 설계하고 진행하는 요령을 가지지 못한 사람에 의해 진행되는 회의를 주로 경험한 데서 비롯된다.
- 필요한 경우 절차에 따라 기법(예: 브레인스토밍)과 도구(예: SWOT)를 사용한다.
- 참석자의 참여 분위기를 파악하고 적극적으로 참여하도록 유도한다.
- 예정대로 진행되고 있는지 평가하면서 필요한 조치를 취한다.
- 참석자들 스스로 우수한 결과물을 내놓을 것이라고 신뢰한다.
퍼실리테이터는 답을 제공하는 컨설턴트가 아니며, 지식을 전달하는 강사도 아니다. 또한 개인의 성장을 돕는 코치와도 다르다. 퍼실리테이터는 참여자들(group)이 스스로 답(문제해결)을 찾도록 과정을 설계하고 진행을 돕는 사람이다.
- 2011년돌아보기 . . . . 15 matches
* 활동하는 회원들, 졸업생들에게 적극적으로 도움을 요청했으면 좋겠다.
* 제로페이지만의 가치를 지니길.
* 제로페이저간의 예의를 지키길.
* DevilsCamp에 신입생이 많이 오게하려고 미리 홍보도 하고 날짜 잡을때도 많이 신경썼는데 별로 효과가 없었다.
* 선배들이 신입생들에게 새싹교실을 함으로써 많은 것들을 배울 기회(시작점?)가 되었다.
* ZeroPage 회장으로 활동을 하며 많은 사람들을 알게 되었다. 회장을 하지 않았더라면 잘 모르는 사이였을텐데!
* ZP가 나에게 스터디, 프로젝트 및 활동 공유의 장이 되었다.
* 실험실로써의 ZP의 역할을 충실히 해냈다.
2011년 ZeroPage를 마무리하며 자유로운 감상을 남겨주세요.
* 휴학하고도, 방학하고도 항상 ZeroPage 활동에 빠진 적이 없는 ZP순이인데 이제 졸업이니 전처럼 활동할 수가 없겠네요. 한 해를 마무리한다기보다 5년간의 활동에 마침표를 찍는다는 느낌이라 2011년을 보내는 마음이 더욱 복잡합니다. 특히나 올해는 회장으로 활동해서 개인적으로 더 특별한 한 해였습니다. 회장으로 막 활동을 시작했던 작년 이맘때가 생각나네요. 욕심도 기대도 걱정도 많았던 때였습니다. 일년이 지난 지금 하나하나 따져보면 뿌듯한 일도 있고 아쉬운 일도 있지만 전체적으로 생각해보면 보람찬 한 해였다는 생각이 듭니다. 4학년과 ZeroPage 회장을 병행하면서 잘할 수 있을까 싶었는데 잘한 것은 모르겠지만 하면서 배운 것, 얻은 것이 많아 회장으로 활동하기 정말 잘했다는 생각이 듭니다. 시도해보고 싶었던 것들을 가끔은 정말 대책없다 싶을 정도로 이것저것 많이 해봤는데 ZeroPager들이 함께 참여해주어 너무 고맙고 즐거웠습니다. 2012년은 더욱 더 ZeroPager들이 ZeroPage를 통해 성장하고, 또 ZeroPage도 성장할 수 있는 한 해가 되면 좋겠습니다. - [김수경]
- 3rdPCinCAUCSE/J-sow전략 . . . . 15 matches
문제풀기 규칙을 정한다든지, 예상 문제를 살펴보는 준비는 없었습니다. 작년에 같은 팀을 했기에 올해도 같은 팀으로 [정우]와 함께 나갔습니다. 작년 대히를 생각해보면, 알고리즘을 생각하는데 주력할 것이라는 이야기를 나누었습니다.
준비물로는 무한한 이면지와 볼펜 두자루가 있었습니다.
예상보다 문제가 간단해서 흥분했습니다. 난이도를 살핀 결과 B < A < C 라고 판단하고 쉬운 순서대로 풀어나갔습니다.
* 사각형의 꼭지점에 집착한 [나휘동]과 달리, 한 칸 넓이를 중심으로 본 [정우]가 의견을 내자 가장 쉬운 문제로 전락(?)했습니다.
* PsuedoCode도 적어보지 않고 바로 코딩했습니다.
* 두 번째 테스트 케이스를 받을 때 (이차원 배열을 모두 0으로 만드는 작업) "초기화"를 하지 않아 두 번 패널티를 받았습니다 :(
* 자가 테스트는 화면에 붙여넣기를 하다가 나중에 파일 입출력으로 바꾸었습니다. 화면에 붙여넣기는 시간이 너무 오래 걸렸습니다. :(
* 이번 문제도 배열로 풀 수 있으리라는 생각을 우선 했습니다.
* 다음 과정을 PsuedoCode로 작성했습니다.
* 이차원 배열을 써서 자신보다 무거운 것은 1로, 가벼운 것은 -1로 했습니다.
* 배열을 따라가면서 추가적으로 얻을 수 있는 관계를 설정해주었습니다. "예) '1번 < 4번', '4번 < 5번'일때 '1번 < 5번'인 관계를 표시"
* B번 문제에서 했던 실수(초기화)를 그대로 반복해서 패널티 한 번을 받고 풀다가 끝났습니다. :(
* 아무리 급해도 필요한 기능은 함수로 묶어내야 한다고 느꼈습니다.
- AppletVSApplication/영동 . . . . 15 matches
* 스스로 실행될 수 있는 자바 프로그램.
* 웹 브라우저에서 실행되는 작은 프로그램을 애플릿이라 한다. 웹에서 클라이언트 측의 프로그래밍을 지원하는 강력한 툴로 사용된다.
* 애플릿은 로컬 디스크를 사용할 수 없다. 함부로 내 컴퓨터나 다른 컴퓨터에서 정보를 전송할 수 없다는 뜻이며, 디지털 서명을 인정하면 로컬 디스크를 이용할 수 있다.
* 애플릿은 시간이 오래 걸릴 수 있다. 애플릿과 필요한 파일들이 서버로부터 다운로드 되어야 하므로 시간이 걸린다. 이런 파일들을 JAR로 압축하여 전송하면 시간이 단축되며, 압축된 각 파일에 디지털 서명을 추가할 수 있다.
* 장점: 클라이언트/서버나 그 외의 네트웍 어플리케이션을 개발할 경우에 이익이 많다.
* 개발된 소프트웨어의 설치를 신경 쓰지 않아도 된다. 실제 플랫폼과는 무관하므로 플랫폼이 다르다고 코드 수정할 필요가 없다. 그런데 이건 자바 가상머신이 가진 기본적인 특징아닌가요...?
* 잘못된 코드로 시스템의 다른 부분이 영향을 받지 않는다. 자바 언어와 애플릿 구조에서 갖고 있는 보안성 때문이다. 이런 점 때문에 회사 내부에서만 사용하는 소위 인트라넷 클라이언트/서버 시스템에 자바가 널리 사용되고 있다.
- ClassifyByAnagram/김재우 . . . . 15 matches
if __name__ == '__main__':
self.dictionary.setdefault( self.sortChar( word ) ,[]).append( word )
if __name__ == '__main__':
Assertion.AssertEquals( "-abc add abc-cba append abc", anagram.GetLog() );
Assertion.AssertEquals( "-abc add abc-cba append abc-aa add aa", anagram.GetLog() );
if ( null == list )
else
m_log.Write( "-" + word + " append " + sortedWord );
public class AnagramTest extends TestCase {
// if ( "ba".equals( source ) )
// else if ( "bca".equals( source ) )
strBuf.append( s );
if( null == list ) {
if ( !first ) {
- ComputerNetworkClass/Exam2006_2 . . . . 15 matches
개별적인 기술의 상세 내용을 묻기보다는 전체 기술에 대한 비교과 차이점에 대한 이해를 중심으로 출제.
(한마디로 넓게 공부해야 결과 좋을듯함.)
인터넷 보안 관련된 문제에서 문제로 출제 될 만하다고 생각했던 부분인 Authencation Protocol (3-way-handshake, keberos, using RSA)에 대한 내용역시 미출제되었음. 덕분에 시험 난이도는 낮아졌지만, PEM 의 구조에 대한 설명이 들어갔기 때문에 따로 관심을 가지고 공부한 사람이 아니면 약간 어려웠을지도 모르겠음.
authenticate(fabrication -> 3-way handshake, keberos, using RSA)
integrigy(modification -> keyed MD5)
3. PEM 으로 이메일 보낼경우, 보내지는 내용들 구조와 함께 설명. 같이 보내지는 첨부 파일은 a.jpg
일반적인 메일 전송 프로토콜의 이해와 MIME 프로토콜에 대한 간단한 이해. 그리고 E(MD(5), PrivateKeyOfSnd) 의 해석 방법과 계층적 인증에 대한 이해를 묻는 문제였음.
문제의 내용에 메일의 헤더와 구조를 나타내라는 말이 있기 떄문에 책을 참조하거나 일반적으로 받는 이메일의 구조를 한번 본뒤 시험을 보면 좋음.
Integrated Service(flow-based), Differentiated Service(service-based) 에대한 전반적인 이해를 하는 문제. 해당 기법에 WFQ를 적용하는 방법에 대한 이해를 묻는 문제로 약간 응용해서 적으란 것으로 보임. 책에 DS에 대한 설명은 WRED, RIO에 대한 설명만 되어있었고, 이 방식은 Queuing 에 의한 WFQ의 사후 처리가 아닌 사전 체리에 관련된 내용이었음. 솔직히 WFQ 왜 냈는지 모르겠음. -_-;;
- DataCommunicationSummaryProject/Chapter12 . . . . 15 matches
* 높아서 딜레이 무지 김, 파워도 많이 듬, 높은 데 가지 올라가므로 로켓 비쌈
* 과학이나 군사용으로 사용
* 이 위성이 젤 모바일에 적합 (가까우므로)
* GEO 위성에서 어느 한 방향에 집중적으로 전파를 쏘는 안테나를 달아 지면에서는 작은 안테나로도 전파 받을 수 있음 (예: SkyLife)
* 위성은 전통적으로 대륙을 잇는 백본 네트워크로 사용되어 왔지만, 이 역할은 fiber에 의해 강탈당했다.
* TV 방송국에 의해 선구적이었던, 직접적인 위성 to 사용자 방송은 인터넷에 접근하는 용도로 쓰이는게 점점 늘고 있다.
* 대다수의 커뮤니케이션 위성은 지구로부터 먼, 그래서 눈에 띄는 지연시간의 GEO를 사용한다.
* 새로운 LEO는 모바일 네트워크와 함께 노력해왔다.(?) Iridium이 그들의 재정에 그림자를 드리우긴 했지만,(망했다는 소린가?) 많은 국가의 3G 라이센스 비용에 비해, 위성 네트워크는 싸다.
* 기구와 비행기는 값싼 가격으로 많은 위성 시스템의 이익을 창출하는, 가능한 다른 기술이 될수 있다.
* 커뮤니케이션 위성은 궁극적으로 태양계 전체를 궤뚫는 인터넷으로 확장될 것이다.(뭐야 이거)
- DataStructure/Queue . . . . 15 matches
* 위 아래 뻥 뚫린.. 위로 물부으면 밑으로 나오겠죠? (먼저 들어간건 먼저 나온다!)
== 배열로 구현한 Queue ==
if(m_nRear==Size-1 && m_nFront!=m_nRear)
if(!IsFull())
else
if(!IsEmpty())
else
if(count==m_nRear)
* 이를 보완하기 위해 원형 큐라는게 있더랍니다. 또는 링크드 리스트로 큐를 만들어서 제한없이 쓰는 방법도 있겠죠.
== Linked List로 만든 큐 ==
if(!IsEmpty())
else
if(m_pRear==m_pFront)
else
- DevOn . . . . 15 matches
* 시각적 커뮤니케이션: 그림과 기호로 말하기
* [Lisp]을 이용한 실시간 멀티미디어 프로그래밍
* [정진경] - 앞 부분 못 들음. 연사는 팀 내 코드 리뷰는 문화이고, 팀 내 공감대가 없으면 효과가 없다는 것을 강조함. 코드 리뷰가 잘 안 되고 있는 사례로 '패치 몰아서 리뷰 요청하기'가 있는데 내가 그러고 있어서 반성하고 있음.
* [정진경] - Gnome 3.10 즐기기는 잘 기억나지 않는다... 미안.. 진크리에이터... Wayland는 나름 도움이 되었는데, X 서버가 컴포지터가 인터프로세스 통신을 한다는 사실을 처음 알게 되었다. Wayland는 X 서버와 컴포지터가 합쳐져 있는 형태이고, 프레임버퍼를 위한 API가 제공된다는 것.. 이 부분은 나중에 공부해서 해당 페이지에 자세한 내용을 기술할 필요가 있을 것 같다...
=== 라즈베리파이로 크롬캐스트 따라하기 ===
* [정진경] - [파이어버그]의 기능들이 [파이어폭스]에 점점 합쳐지면서, 해당 기술들을 쓰는 것을 보여줬는데, [WebKit] 기반의 브라우저, 특히 [구글 크롬]과 크게 차별화된 점은 보지 못했다. 어느 정도 디테일한 부분에서 다른 점들이 있는 것 같은데, 눈으로 봐서는 잘 기억나지 않는다. 내가 크롬 도구를 전문적으로 써본 게 아니라서 파이어폭스의 디버거가 어떤 점이 더 우수한지는 잘 모르겠다. 기능 면에서는 부족하지 않은 것 같다.
=== [Servo], 새로운 렌더링 엔진 ===
* [정진경] - 이 세션 때문에 데브온에 왔지만 연사의 불참으로 취소.
* 통계적방법으로 자손을 만들어 효율성을 강화시킨 AI를 한판만에 이기는데 성공. -[김태진]
* 퀴즈 맞추면 머그컵 준다길래 눈으로 풀고 답 맞추기. 1번 문제인 ANSI의 뜻이 뭔가가 가장 어려웠음. -[김태진]
* 다음의 웹 접근성 테스트 프로세스에 대해 설명 들음. QA팀 외에 웹 접근성을 테스트하는 팀이 따로 있다고. 보통 QA가 전부 다 하는게 아닌가 했지만 2013 하반기 신입전형에서 웹 접근성 보고서를 읽고 1500자 글을 쓰게 한 것으로 보아 매우 진지하게 생각하고 있는듯. - [서지혜]
* 내용은 뻔한 것 같아서 제대로 듣지도 않았지만 철수형을 처음 볼 수 있었음다. -[태진]
- EightQueenProblem/nextream . . . . 15 matches
모든 분들이 C/C++ 아니면 파이선이라, C로 할까 하다가 좀 특이하게 자바스크립트를 써봤습니다.
처음엔 2차원 배열 메모리 공간을 두고 메모리 상에 체크해 가며 루프를 돌릴까 하다가 생각을 바꿔서 재귀호출을 이용하게 되었습니다. 첫 문제에서 일단 제일 첫 퀸은 무조건 (0,0) 이라고 고정하고 재귀를 두번째 퀸부터 돌렸는데, 오히려 나중에 이 생각이 두번째 문제 풀때 딱 한글자만 바꿔서 적응이 되는 것을 가능케 한것 같습니다.
원래 첫번째 해법은, 한개만 뽑든지, 아니면 다뽑든지 둘중 하나였어야 하는데, 결론적으로는 문제를 풀긴 했지만, 어정쩡한 모습이 되버리고 말았습니다.
기본 아이디어는 한 라인씩 진행해 가면서 현재 라인 선상에서 X좌표값을 바꿔가며 위에 있는 퀸들에 의해 위협을 받는지 검사해서 안전한 경우에는 계속 다음 라인으로 진행하고, 아닌 경우에는 철수하는 것입니다. 위협여부에 대해서는 같은 세로선상이거나, 대각선인 경우는 X, Y 좌표의 합과 차가 각각 동일한 것이 있는지를 조사하는 것으로 만들었습니다.
if (positions[line]==positions[i] || i+positions[i]==line+positions[line] || i-positions[i]==line-positions[line])
if (line>=8) { display(); return; }
if (safe(line)) check(line+1);
if (positions[line]==positions[i] || i+positions[i]==line+positions[line] || i-positions[i]==line-positions[line])
if (line>=8) { display(); return; }
if (safe(line)) check(line+1);
- GofStructureDiagramConsideredHarmful . . . . 15 matches
Design Pattern 책 전반에 걸쳐 반복적으로 잘못 이해되는 내용들이 있는데, 불행하게도 이러한 실수는 GoF의 스타일을 모방한 다른 Pattern 책의 저자들에게서도 반복적으로 나타난다.
사실은 각 Pattern을 구현하기 위한 여러가지 방법이 있는데, GoF의 OMT diagram을 보노라면 마치 각 Pattern에 대한 단 한가지 구현만이 있는 것으로 잘못 이해될 수 있다.
하지만, Pattern에 대한 경험이 부족한 학생들이나 사용자들은 이 사실을 모르고 있다. 그들은 Pattern에 대한 저술들을 너무 빨리 읽는다. 단지 한 개의 Diagram만을 이해하는 것으로 Pattern을 이해했다고 착각하는 경우도 잦다. 이게 바로 필자가 생각하기에는 독자들에게 해로워보이는 GoF 방식의 단점이다.
GoF 책의 각 Pattern 마다 첨부되어 있는 구현에 대한 매우 중요하고 민감한 해설들은 어떠한가? 이 해설들을 통해서 Pattern이 여러 방법으로 구현될 수 있다는 사실을 알 수는 없을까? 알 수 없을 것이다. 왜냐하면 많은 독자들이 아예 구현에 대한 해설 부분을 읽지도 않고 넘어가기 때문이다. 그들은 보통 간략하고 훌륭하게 그려진 Structure diagram을 더 선호하는데, 그 이유는 보통 Diagram에 대한 내용이 세 페이지 정도 분량 밖에 되지 않을 뿐더러 이것을 이해하기 위해 많은 시간동안 고민을 할 필요도 없기 때문이다.
엔지니어들에게 있어서 Diagram은 정말 뿌리치기 힘든 유혹이다. 하지만 Gof의 Structure diagram의 경우엔 충분히 많은 내용을 말해줄 수 없다. Pattern들이 다양한 Structure를 가질 수 있으며, 다양하게 구현될 수 있다는 것을 독자들에게 알려주기엔 턱없이 부족하다.
I routinely ask folks to add the word "SAMPLE" to each GoF Structure diagram in the Design Patterns book. In the future, I'd much prefer to see sketches of numerous structures for each Pattern, so readers can quickly understand that there isn't just one way to implement a Pattern. But if an author will take that step, I'd suggest going even further: loose the GoF style altogether and communicate via a pattern language, rich with diagrams, strong language, code and stories.
공부하는 입장으로서 인식해둘만한 내용이라 생각이 되네요.
비단 패턴만이 그렇지는 않습니다. 조금은 다른 이야기를 해보고록 하지요. 사람으로부터 나온(derived) 어떤 유-무형의 것들은 그것을 만든 사람, 또 그 사람이 몸담고 있는 환경을 반영(reflection) 합니다. 예를들어, 실세계에서 집을 짓는다고 해봅시다. 거기엔 수많은 공법이 존재합니다. 또 하나의 공법을 이야기한다고해도 실제로 투입되는 사람들에따라 다양하게 나올 수 있습니다.(지난 2002년 1월 8일 뉴스에서는 측량할때마다 다른 토지 계산이 나오더군요) 조금더 엉뚱한 이야기를 해볼까요. 하나님의 말씀은 하나이겠지만, 성경은 해석하기에 따라 다릅니다. 또 그 하나하나의 성경은 하나지만 그를 믿는 사람이 받아들이기에 따라 다양해집니다.
학문, 더 넓혀서 살아감에 있어 하나의 사실이나 의견을 접할때, 절대적이란 것은 "명제" 나 "진리" 같은 것 외에는 없음을 생각해보면 답을 찾는데 도움이 될 것 입니다. 다만, 눈에 보이는 형태에서는 이를 금방 인지하기 쉬우나, 눈에 보이지 않는 형태이거나(예를들면 지식), 습관적으로 믿을만하다고 생각되는 매체에서 얻은 정보나 이야기에 대해 "경계의 레이더"를 꺼놓거나 미처 알아차릴 경황이 없게 되는 경우를 조심하면 되겠죠.
- HowToDiscussIt . . . . 15 matches
둘이서 혹은 여럿이서 어떻게 토론을 하면 효과적으로 할 수 있을까.
* 술퍼맨 : 강남에 새로 생긴 디스코텍이 수질이 우수하다는 정보를 입수했습니다.
* 술퍼맨 : 아니, 수질이 우수하다는데... 제가 증명을 해드리죠. 수질이 우수하다면 어쩌고 저쩌고 하므로 이 공리와 이론을 이용하면...
지금 이 경우, "어떻게" 토론을 진행할 지에 대한 합의가 되어있지 않은 상태이고, "무엇을"과 "어떻게"가 뒤섞여 있다. 이렇게 해서는 진도가 잘 나가지 않는다. 따라서, 양자를 분리한다.
대부분의 경우, 먼저 의견을 일단 다 받아놓고, 각각의 장점을 다 이야기 하게 하고, 또 각각의 단점을 다 들어보고 하는 식으로 단계적으로 진행하는 것이 효율적이다.
한꺼번에 토론을 하기엔 사람이 너무 많다. 내성적인 사람들은 많은 사람 앞에서 이야기 하기를 꺼린다. 혹시나 자신이 한 말이 남들에게 바보처럼 보이지 않을까 걱정한다. 특히 의견/질문을 내는 사람이 별로 없는 상황은 악순환을 거듭한다. 의견을 내는 사람이 없기 때문에 의견 내기가 어려워진다. 또한, 낮은 위치의 사람(저학년, 하급자, 경험이 적은 사람)과 높은 위치의 사람이 섞여 있는 경우, 낮은 위치의 사람은 무언의 압력을 느끼고 의견 개진을 어려워 한다. 보통 한 두 사람 말 많은(혹은 경험이 많은) 사람이 전체 토론을 주도하게 된다.
이럴 경우 '''Subgroup''' 패턴을 사용한다. 사람 수가 적으면 참여도가 높아진다.
예컨대, 일단 전체 그룹을 모아놓고 간략한 문제 상황 설명과 목적에 대해 컨센서스를 이룬 후에, 학년별 소그룹으로 나누고 자기들끼리 알아서 대표를 선출하고 토론하도록 한다. 선배의 눈치를 볼 필요 없이 자신들만의 의견을 개진, 정리하도록 한다. 얼마 후에 모든 그룹이 모여서 각 소그룹의 대표자가 토의 내용을 요약 발표한다. 이것에 대해 다시 전체 토론을 하고, 또 다시 '''Subgroup'''을 사용할 수도 있다.
전체 개미 사회에서 일을 열심히 하는 개미가 20%이고, 나머지 80%는 게으름뱅이라고 하면, 이 80%만 따로 독립시켜 놓으면 그 중 20%가 부지런한 개미가 된다. 전체 시스템의 모양은 변하지 않고, 각자의 역할이 조금씩 바뀌는 것이다. 말을 잘 하지 않는 사람이 있고, 말을 많이 하는 사람(예컨대 진행자, 강연자)이 있을 때, 이를 다시 소규모로 나누게 되면 대부분 참여도가 높아지게 된다.
또한 동류집단 사이에서는 좀 더 자유로운 의견 개진이 가능하다.
의견 발표를 하지 않는 사람을 보고 뭐라고 하거나, 질문을 강요하기 보다는 그들이 왜 그렇게 소극적인지를 분석하고, 적극적으로 될 수 있는 환경과 NoSmok:어포던스 를 제공하라.
- MagicSquare/영록 . . . . 15 matches
cout << "마방진 프로그램을 시작하겠습니다.\n";
if(array[a][b] == 82)
if(array[size][b]!=0)
else
else if(array[a][b] == 83)
if(array[size][size]!=0)
else
else if (array[a][b] == 84){
if(array[a][size]!=0){
else
else if (array[a][b] == 0)
else{
- MagicSquare/정훈 . . . . 15 matches
끝까지 2차원 배열을 안쓰겠다는 일념으로 짰습니다~~..[[BR]]
cout << "몇개의 칸으로 마방진을 할까??(9까지만 됨) ";
cout << soo << "*" << soo << "으로 한단말이지??\n";
if(x == soo-1 && y == 0)
else if(y == 0)
if(ma[x][y] != 0)
else if(x == soo-1)
if(ma[x][y] != 0)
else
if(ma[x][y] != 0)
else
cout << endl << endl;
- One/주승범 . . . . 15 matches
if (n==3 || n==4 || n==7 || n==9 )
if ( a==1 || a==2 || a==3 )
else
if ( a==1 )
else if ( a==2 )
else if ( a==3 )
else
if ( a==1 )
else if ( a==2 )
else if ( a==3 )
else
- ProgrammingPearls/Column4 . . . . 15 matches
* 100명의 프로페셔널 프로그래머들에게 Binary search를 짜보라고 시켰다. 결과는? 90퍼센트의 사람은 버그 있는 Binary search를 짰다고 한다.
* 프로그램의 correctness를 판별하기 위해, 프로그램의 중간중간에 assert를 집어넣고 있다.
* 프로그램을 한줄한줄씩 따라 내려가면서 Loop에서는 위의 원칙을 적용해 corret한가를 검사하고 있다.
* Verification을 위한 general한 principles을 제공하고 있다.
* Assertions : 입력, 변수, 출력간의 관계는 프로그램의 상태를 묘사해준다. assertion은 그들의 관계를 정확히 말해준다.
* Sequential Control Structures : 이 문장 다음에 저 문장. 그 사이에 assertion을 집어넣는다. 그럼 프로그램 문장 하나하나의 각각의 진행상황을 체크할수가 있다.
* Selection Control Structures : 조건문에서 쓰인다. 각각의 조건마다, 확실히 맞다는 assertion을 집어넣어준다.
* Iteration Control Structures : 위에서도 말했듯이, 초기화, 유지, 종료조건이 확실한가를 체크해야한다.
* Functions : precondition - 함수 시작 전에 보장되어야 할 조건 -과 postcondition - 함수 끝날때에 보장되어야 할 조건 -을 명시해준다.(...) 이러한 방법을 "Programming by contract"라 한다.
=== The Roles of Program Verification ===
* 가장 많이 쓰는 verification방법은 Test Case이다.
- ProjectPrometheus/MappingObjectToRDB . . . . 15 matches
For Recommendation System (Read Book, point )
For Recommendation System ( Related Book Point )
* 고민할 필요 없다; 상당히 귀찮아 보이지만, 실제 전체 작업에서 차지 하는 양은 얼마 되지 않는다. 괜히 라이브러리 만들려고 하면 더 복잡해질것이다. O/R 맵핑 라이브러리로 포커스를 맞추게 되지 않도록 조심.
PEAA 의 RDB Mapping 과 관련된 패턴을 바로 적용하는 것에 대한 답변
* 패턴의 오/남용 문제가 발생할 수 있다. - 어설프게 아는것은 모르느니만 못한 경우가 있다. 그리고 제대로 안다고 해서 "많이" 하는 것은 정말 잘 아는게 아닐 수 있다.
한편으로 [http://www.xpuniverse.com/2001/pdfs/EP203.pdf Up-Front Design Versus Evolutionary Design In Denali's Persistence Layer] 의 글을 보면. DB 관련 퍼시스턴트 부분에 대해서도 조금씩 조금씩 발전시킬 수 있을 것 같다. 발전하는 모양새의 중간단계가 PEAA 에서의 Table/Row Gateway 와도 같아 보인다.
1. 13개월 프로젝트인데 2만라인짜리라는점 - 뭐.. 꼭 소스 라인수로 세는건 무리가 있긴 하지만. Servlet 프로젝트 2만라인. 내가 전에 팀 프로젝트로 MFC 엑셀 만들때가 1만 7천라인이였는데. -_-a 물론, Refactoring 이 잘 되어있고, XP 가 잘 적용된 프로젝트이라면 적은라인수로 많은 일을 하겠지만.
2. 초기에 UpFrontDesign 로 나간 뒤, 후기에 점진적 발전을 추구한점 - 두개가 비교대상이 되긴 어렵다.
- ProjectSemiPhotoshop/Journey . . . . 15 matches
* 한일 : 프레임웍 작성 , Bmp 로딩 구현, Sampling 구현, 팀원간 소스 이해, 시간예측, 다음 일정 계획
* 한일 : 새로운 제안을 물어보았다 --["경태"]
* 내용 : eXtreme Programming을 실전 경험에서 응용해 보는 것이 어떨가 싶다. : 이 문제에 관해서는 수요일에 파일 구조 시간에 만나서 이야기 하도록 하자. 내 기본 생각은 Xp Pratice 들 중 골라서 적용하기에 힘들어서 못할것으로 생각하는데, 뭐, 만나서 이야기 하면 타결점을 찾겠지. ExtremeBear 도 이 숙제 때문에 중단 상태인데 --["상민"]
* 한일 : 현민과 경태, 현민 집에서 알카로이드의 기본을 열심히 배우고 익힘. - 자료실 스크린 샷
* 내가 점심을 먹고 낮잠을 자는 바람에 피씨 실에서 모이기로한 스터디 약속이 깨졌으나 4시 반쯤에 부시시 일어나서 경태에게 스터디를 하자고 했음. 웨 항상 밥 먹고 나면 졸리는지는 모르겠으나... -.ㅡ;;; 어쨋거나 스터디는 무사히 진행됨.
* 상민이와 한 프로그램의 스타일이 달라서 나중에 세미 포토샵을 공동을 작업할 때에는 어느 정도 비슷하게 맞춰야할 것으로 보여..-.ㅡ 아직 뭘 모르는 나의 눈에는 그렇게 보였음.
* 아직은 이해하기도 힘들고, 어려운 프로그래밍이지만 앞으로 열심히 해서 세미 포토샵때는 정말 Pare Programming이 될 수 있도록 열심히 공부할께~ -- 현민
* 프로그래밍 자체가 약간 게임과 같은 느낌이 좋왔고, 현민이가 어땠는지 궁금하다. 해깔리기만 하지 않을까? --["neocoin"]
* 처음에는 저번에 했던 스터디 내용의 연장이라 따라갈 수 있었는데 뒷부분에 벽돌을 개별적으로 설정해주는 그 배열을 쓰는데서 솔직히 좀 이해가 잘 안된다. 책을 보고 더 연마해야할 듯 싶다. -- 현민
* ["STL"] 관련 서적은 네가 가진게 없을꺼라고 생각한다. 학교에서도 가르쳐주지 않는 부분이라. 스스로 익혀야 한다. 너무나 단 과실이라, 꼭 보기를 권한다. 관련 내용은 ["STL"] 에서 ["STL/vector"],["STL/vector/CookBook"]를 참고하면 될꺼다. --["neocoin"]
* 한일: GDI 로 그림 그려보기, BMP 출력해 보기, Keyboard 입력 받아서 이용해 보기
* 현민이에게 야속한 말일지 모르지만, 솔찍히 약간 당황스러웠다. ''무엇을 해야하는가?'' 에서 출발하고 싶었지만, 불행히 ''무엇을 배워야 하는가?'' 로 출발과 끝을 마무리 했다. 역시 ''문제를 인식''하는 단계가 중요함을 느낀다. --["neocoin"]
* 스파르타식으로 하장. ^^;; --경태
- RandomWalk/김아영 . . . . 15 matches
int x, y, arsize, end=1;
case 0 : if(x!=0 && y!=0)
case 1 : if(y!=0)
case 2 : if(x!=arsize-1 && y!=0)
case 3 : if(x!=arsize-1)
case 4 : if(x!=arsize-1 && y!=arsize-1)
case 5 : if(y!=arsize-1)
case 6 : if(x!=0 && y!=arsize-1)
case 7 : if(x!=0)
if(board[x][y]==0)
end++;
}while(end<arsize*arsize);
cout << endl;
cout << endl << "총 이동 횟수는 " << total << "입니다." << endl ;
- Ruby/2011년스터디/서지혜 . . . . 15 matches
== 프로젝트 ==
* 일정 시간이 지나면 웹 브라우저를 종료하는 프로그램 만들기
* 0207 : 프로그램 명세. 엔포지에 프로젝트 생성([http://nforge.zeropage.org/projects/deletewastes 엔포지 링크])
== 프로그램 기능 ==
* 프로세서간 통신 실패시
* 프로세스간의 통신
* windows API로 프로세스의 정보 받아오기 ([http://sosal.tistory.com/100 원본])
if(hProcessSnap == INVALID_HANDLE_VALUE) {
if(!Process32First(hProcessSnap, &pe32)){
* 특정 프로세스 죽이기 ([http://sosal.tistory.com/entry/%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4-%EB%A6%AC%EC%8A%A4%ED%8A%B8-%EC%B6%9C%EB%A0%A5-%EA%B0%95%EC%A0%9C-%EC%A2%85%EB%A3%8C-%EC%86%8C%EC%8A%A4 원본])
TCHAR *targetProcess = _T("NateOnMain.exe"); // 종료하려는 프로세스의 이름을 쓴다
if(0 == _tcscmp(pe32.szExeFile, target)){
if(hProcess){
- SpikeSolution . . . . 15 matches
주어진 문제에 대한 실험적인 프로그래밍.
어떻게 보면 우리가 일반적으로 하고 있는 것이다. Visual C++로 해당 라이브러리를 이용한 프로그래밍을 할때 우리는 어떻게 할까? 아마도 Visual C++을 2개를 띄울 것이다. 그리고 한 창에서는 해당 라이브러리가 제대로 작동하는지, 대강 값들을 넣어보고 이리저리 제대로 원하는 일을 하게끔 여러 시도들을 하게 될 것이다. 그렇게 함으로서 미지인 부분에 대한 대강의 선을 잡아놓는다.
(ex) DB를 연결하기 위해 DB를 Install 하기, DB 작동이 어떻게 되는지 query 날려보기. 해당 라이브러리가 어떻게 작동하는지 간단한 예제 프로그래밍 등
이러한 실험들을 XP에서는 Spike Solution이라고 한다. 다른 점이라면, 우리는 보통 실험 코드를 만든 뒤 실전 코드에 바로 붙일 것이다. 하지만 Spike Solution 의 경우는 '실험은 실험에서 끝난다' 에서 다를 수 있다. 보통 Spike Solution 에서 실험한 코드들을 메인소스에 바로 적용시키지 않는다. Spike Solution은 처음 계획시 estimate의 선을 잡기 위한 것으로 메인소스에 그대로 적용될 코드는 아닌 것이다. 지우고 다시 만들어 내도록 한다. 그러함으로써 한편으로는 학습효과를 가져오고, 실전 소스의 질을 향상시킬 수 있다.
- StacksOfFlapjacks/이동현 . . . . 15 matches
해법은 일단 0~n 까지 케익 중 가장 큰 케익 바로뒤에 주걱을 꼽고 한번 뒤집어 가장 큰 케익을 맨 위에 오게한 후 다시 flip(1)로 뒤집어 가장 큰 케익이 맨 아래 n에 오게한다.
시간 대부분을 입력받는것 짜는데 매달렸으나 아직도 입력부분을 문제에서 요구한대로 완성하지 못했다.
여러줄 입력받는걸 만들기 힘들어 일단 그냥 한줄 입력받고 결과출력 하는 식으로 했다.
int searchBigIndex(int end){ //0~end index까지 검사하여 가장 큰 수의 index리턴.
for(int i=1;i<=end;i++){
if(cake[big_index]<cake[i])
bool isEnd(){ //모든숫자가 정렬되었는지 확인.
if(cake[i-1]>cake[i])
cout << "0\n"; //모든케익이 정렬되었으므로 더이상 뒤집을게없다는 0출력
if(isEnd()==true)
if(searchBigIndex(j)==j) //제일 큰 케익이 놓일자리에 이미 놓여있다면 다음뒤집기로.
if(searchBigIndex(j)!=0) //맨위에 제일큰케익이 있으면 뒤집을 필요가 없다.
if(j>30) break;
- StaticInitializer . . . . 15 matches
[Java] 에서 'Class Variable' 또는 'Class Method' 라 불리는, 해당 Class 내에서 공용적으로 쓸 수 있는 변수나 메소드들을 Static Variable 또는 Static Method 라 불린다.
문제는 StaticInitializer 부분에 대해서 상속 클래스에서 치환을 시킬 수 없다는 점이다. 이는 꽤 심각한 문제를 발생하는데, 특히 Test 를 작성하는중 MockObject 등의 방법을 사용할 때 StaticInitializer 로 된 코드를 치환시킬 수 없기 때문이다. 저 안에 의존성을 가지는 다른 객체를 생성한다고 한다면 그 객체를 Mock 으로 치환하는 등의 일을 하곤 하는데 StaticInitialzer 는 아에 해당 클래스가 인스턴스화 될때 바로 실행이 되어버리기 때문에 치환할 수 없다.
StaticInitialzer 에서 값만 치환하는 것으로 (상속클래스에서 해당 Class Variable 의 값을 바꿔주는식으로) 해결되는 문제라면 크게 어렵진 않다. 하지만, 만일 저 부분에 DB 나 File 등(또는 File 을 사용하는 Logger 등) 외부 자원을 이용하는 클래스를 초기화하게 된다면 사태는 더욱더 심각해진다. 처음부터 해당 Class 가 DB, File 등 큰 자원에 대해 의존성을 가지게 되는 것이다. 게다가 이는 상속을 하여 해당 부분을 Mock 으로 치환하려고 해도 StaticInitializer 가 먼저 실행되어버리므로 '치환'이 불가능해져버린다.
이를 방지하려면, StaticInitializer 를 일반 Method 로 추출한뒤, 생성자에서 이를 호출한다. (단, 인스턴스를 2개 이상 만드는 클래스인경우 문제가 있겠다.)
그 외에 Static 의 경우, 그 사용 가능 Focus가 Global 해지기 때문에 이 또한 Bad Smell 이 될 가능성이 농후하다. 개인적으로는 가급적이면 Static Variable 을 쓰지 않는 습관을 들이려고 한다. --[1002]
이 문제가, final static 으로 값이 세팅될때의 문제가 아닌가요? Mock의 생성자에서 교체 가능하지 않나요? --NeoCoin
Mock 생성자에서 값이 교체되어도 StaticInitializer 자체가 실행된다는 점에는 변함이 없습니다. 만일 StaticInitializer 에서 외부 자원들을 사용한다면, Side-Effect 들을 피하기 어려운 경우가 많다는 것을 강조하고 싶었습니다. --[1002]
실무에서 저러한 StaticInitializer 를 가장 많이 볼 수 있는 곳은 Logging 관련 코드이다. 보통 Logging 관련 코드들은 개발 마무리 즈음에 붙이게 되는데, 일정에 쫓기다 보니 사람들이 Logging 관련 코드에 대해서는 CopyAndPaste 의 유혹에 빠지게 된다. 순식간에 Logging 과 Property(해당 클래스에 대한 환경설정부분) 에 대한 Dependency 가 발생하게 된다. 팀 차원에서 조심할 필요가 있다. --[1002]
- TddWithWebPresentation . . . . 15 matches
즉, 현재 action 코드에 다 섞여있는 것이다.이부분을 TDD로 작성하기 위한 테스트는 다음과 같았다.
즉, 일종의 Template Method 의 형태로서 Testable 하기 편한 ViewPageAction 의 서브클래스를 만들었다. 어차피 중요한것은 해당 표현 부분이 잘 호출되느냐이므로, 이에 대해서는 서브클래스로서 텍스트를 비교했다.
그러다가, 최근 프로젝트 하는중에 ModelViewPresenter 라는 개념에 대해 익히게 되었다. 정확한 개념에 대해서는 잘 잡지를 못했지만, HumbleDialogBox 라는 아티클을 보니 대강 감이 온것 같았다. 중요한 건 표현부분에 대해서 가능한한 로직이 남지 않아야 한다는 점이고, 표현부분을 사용하는 쪽 입장에서도 가능한한 추상화레벨이 높은 메소드를 쓸 수 있어야 한다는 점이다.
암튼, 현재의 내 코드로 봤을때는 기존의 MVC 로 봤을 때에도 View와 Controller 가 섞여있는 형태였다. 이 부분에 대해서 다음과 같이 코드를 변경해보았다.
presenter 부분은 추후 내부적으로 Template 엔진을 사용하는 방향을 생각해 볼 수도 있을것 같다.
이렇게 될 경우 테스트 코드는 다음과 같다. 여차하면 테스트 코드에서 presenter 를 사용할 수도 있었다. (어차피 ViewPageAction 역할을 잘 하느냐가 중요하니까, 거기에 붙는 HTML 들이 어떠하냐가 중요하진 않을것이다.)
하지만, 이건 리팩토링 단계에서의 이야기고, 만일 새 코드를 작성하는 중의 UI 부분 presenter 를 TDD로 구현한다면 어떻게 될까? 아마 저 MockViewPresenter 부분이 먼저 구현되고, 이 인터페이스를 근거로 ViewPresenter 를 만든 뒤 HTML 코드 부분을 작성하면 될 것 같다. 실제 UI 에 어떠어떠한 것이 표현되느냐는 AcceptanceTest 단에 맡기면 되리라.
2. MockPresenter 를 만든다. 중요한 것은 출력결과를 테스트하는것이 목적이 아니라 action 결과 행해지는 일들(Transaction)이 제대로 일어났는지를 테스트하는 것이다. MockPresenter 는 그냥 해당 메소드들이 호출되었는지만 verify 하는정도면 충분할 것이다.
3. MockPresenter 를 근거로 Real Presenter 를 만든다.
- TowerOfCubes . . . . 15 matches
서로 무게가 다른 N개의 색이 칠해진 정육면체가 주어졌다. 각 정육면체의 모든 면은 서로 다른 색으로 칠해져 있다. "무거운 정육면체를 가벼운 정육면체 위에 올려놓지 않는다"라는 첫번째 조건과 "모든 정육면체의 바닥면(맨 밑에 있는 것은 제외)의 색은 그 밑에 있는 정육면체의 윗면의 색과 같아야 한다"라는 두번째 조건이 주어졌을 때, 두 조건을 만족하면서 최대한 높은 탑을 쌓아야 한다.
여러 테스트 케이스가 입력될 수 있다. 각 테스트 케이스의 첫번째 줄에는 주어진 정육면체의 개수를 나타내는 정수 N(1≤N≤500)이 입력된다. 그 밑으로 N줄에 걸쳐 각 정육면체를 설명하는 내용이 입력된다. 각 정육면체를 설명하는 부분에서는 각 면의 색이 입력되는데, 각각 앞, 뒤, 왼쪽, 오른쪽, 위, 아래의 색을 나타내는 색이 순서대로 입력된다. 편의상 색은 1에서 100까지의 정수로 표현하자. 정육면체는 무게가 증가하는 순서대로 입력된다고 가정해도 좋다. 즉 첫번째 정육면체가 가장 가볍고 N번째 정육면체가 가장 무겁다고 가정할 수 있다.
N의 값으로 0이 들어오면 입력이 종료된다.
우선 각 케이스마다 출력 예에 나와있는 식으로 테스트 케이스 번호를 출력한다. 그 다음 줄에는 가장 높은 탑의 정육면체 개수를 출력한다. 그 다음 줄부터는 탑을 이루는 정육면체를, 맨 위에 있는 정육면체부터 아래로 내려가면서, 한 줄에 하나씩 출력한다. 정육면체를 출력할 때는 입력된 순서를 나타내는 번호를 출력하고 스페이스를 하나 출력한 다음, 어느 방향에 있던 면이 위로 올라가도록 쌓았는지를 나타내는 문자열(front, back, left, right, top, bottom, 앞, 뒤, 왼쪽, 오른쪽, 위, 아래를 나타냄)을 출력한다. 답이 여러개 있을 수 있는데, 그 중 아무 답이나 출력해도 된다.
서로 다른 테스트 케이스 사이에는 빈 줄을 출력한다.
- WinampPlugin을이용한프로그래밍 . . . . 15 matches
winamp 의 plugin 을 이용한 프로그래밍
winamp 의 경우 다양한 plugin 를 지원한다.
input plugin은 해당 화일을 읽어드리고 output plugin 으로의 출력을 소스를 제공한다. output plugin 은 출력 소스를 사운드카드나 하드 디스크로의 출력을 관장한다. 이 중간에 DSP 와 Visual plugin 이 callback 으로 결과물을 받은뒤 변수들을 이용한다.
// 버전이 다른 경우에 대한 처리.
if (in->version != IN_VER || out->version != OUT_VER)
// 이 프로그램은 console mode 기반이다. 그러므로 window 관련 셋팅은 NULL.
if (in->UsesOutputPlug)
// 여기서는 화면 출력 부분이 없으므로 비어있는 callback 함수를 만들어서 연결해준다.
// if playing starts correctly
if (!in->Play(playFile))
Sleep(1000); // 각 plugin 에서의 작업은 멀티스레드로 비동기적으로 일어난다.
- ZPBoard/APM/Install . . . . 15 matches
* PHP 디렉토리에 있는 php4ts.dll 파일을 Windows 디렉토리의 System(Windows 98의 경우) 또는 System32(Windows NT, XP의 경우) 디렉토리에 복사한다.
* PHP 디렉토리에 있는 php.ini-dist 파일을 Windows 디렉토리에 php.ini 라는 이름으로 바꾸어 복사한다.
print ("MySQL이 정상적으로 설치되었습니다.");
* 웹브라우져를 실행시켜 주소에 http://127.0.0.1/test.php 를 입력하고, 제대로 설치 되었는지 확인한다.
* 제어판 -> 프로그램 추가/제거 -> Windows 구성 요소 추가/제거 에서 IIS를 설치한다.
* PHP 디렉토리에 있는 php4ts.dll 파일을 Windows 디렉토리의 System(Windows 98의 경우) 또는 System32(Windows NT, XP의 경우) 디렉토리에 복사한다.
* PHP 디렉토리에 있는 php.ini-dist 파일을 Windows 디렉토리에 php.ini 라는 이름으로 바꾸어 복사한다.
* 제어판 -> 관리 도구 -> 인터넷 정보 서비스 에서 기본 웹 사이트의 속성으로 가서 홈 디렉토리 탭의 구성 버튼을 누른다. 거기서 추가 버튼을 눌러 실행 파일에는 c:\php\sapi\php4isapi.dll 을 찾아 넣고, 확장명에는 .php 를 넣고 확인을 누른다.
print ("MySQL이 정상적으로 설치되었습니다.");
* 웹브라우져를 실행시켜 주소에 http://127.0.0.1/test.php 를 입력하고, 제대로 설치 되었는지 확인한다.
* APM을 설치, 설정을 자동으로 해주는 프로그램도 있네요. 번거로운 설치과정이 귀찮으신 분들은 이놈도 좋을듯. [http://www.apmsetup.com/]. 하지만 직접 설치해 보지 않으면 모르는것도 있으니... 귀찮으신 분만 쓰세요ㅋ - [이승한]
- callusedHand/physicalExercise . . . . 15 matches
손바닥을 위로 한 채 다른 쪽 손으로 손가락을 가볍게 잡아 당긴다.
두 팔을 쭉 편 후 손가락 끝으로 원을 그리듯이 양쪽방향으로 각각 열 번씩 돌린다.
자리에서 일어나 양 손을 머리위로 치켜 올리고,천장까지 손이 닿도록 힘껏 뻗는다. 다시 손을 한 쪽씩 머리위로 올려서 천장을 향해 힘껏 뻗는다.
손바닥을 앞으로 향한 채 두 팔을 앞으로 쭉 뻗는다. 깊은 숨을 들이 쉬면서 천천히 두 손을 끌어 당긴다. 3-5초 동안 이런 자세를 유지하다가 숨을 내쉰다. 3-5회 반복한다.
배영을 하는 것처럼 한 팔을 먼저 뒤로 돌리고 다시 다른 팔을 돌린다. 이런 동작을 3-5회 반복한다.
어깨를 천천히 귀 쪽으로 올렸다가 다시 뒤로 돌려서 내린다. 이런 동작을 3-5회 반복한다.
똑바로 서서 머리 뒤로 양손을 깍지낀채 어깨를 힘껏 죈다. 어깨에 힘을 준 상태에서 숨을 깊이 들이마셨다가 다시 내쉬면서 근육의 힘을 푼다.
등을 쭉 폈다가 활처럼 구부린 후, 똑바로 앉아서 고개를 꼿꼿이 세운다. 천천히 오른쪽 귀를 오른쪽 어깨에 대면서 고개를 돌려 앞으로 숙였다가 다시 든다. 이런 동작을 2-3회 반복한다.
- pragma . . . . 15 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 지시어들은 일반적으로 '''컴파일러들 마다 서로 다르다'''.
map에서 나는 경고는 번호 C4786번과 C4788번(identifier가 너무 길어서 나타나는 경고라고 한다) 단 2개 뿐임을 알았고, 결국 소스의 맨 윗줄에
한줄을 추가함으로 해결을 봤다.
NeoCoin 은 Debug 모드에서, 값을 추적할 것을 포기하고, Project Setting -> C/C++ tab -> Debug info -> Line Numbers Only 로 놓고 쓴다.
하지만, 이러한 경고는 Visual C++ 6.0 에서만 유효한것이고, VS.NET 부터 추가 세팅이 필요 없다. VC++ 6.0 에서는 map은 물론 STLPort 나, [Boost] 사용하는 것을 권장하지 않는다. 더 이상 MS 측의 컴파일러 기술 지원이 없으므로, VS.NET 이상 버전을 사용해야 한다.
혹시라도.. 저 #pragma warning(disable: n ... m) 을 써서 언제나 문제를 해결 할 수 있을거라고 생각하시면 안됩니다. 저 위의 설명에도 씌여있듯이, pragma directive 는 지극히.. 시스템에 의존적입니다. 그러므로, VC 에서는 먹힌다는 저 명령어가 GCC 에서는 안될수도 있고.. 뭐 그런겁니다. 확실하게 쓰고싶으시다면.. 그 컴파일러의 문서를 참조하는것이 도움될겁니다.
표준으로 정해진 몇몇의 pragma directive 가 있다고 알고있는데.. 그것들을 내키면 정리해서 올려보겠습니다.
- ricoder . . . . 15 matches
프로그램 잘 못짜는거 영동이가 많이 도와준다.. ㅜ_ㅜ
== 제로페이지 공부 오픈소스 ==
//옆으로 나오는 구구단..
if( i == 5)
else
if (i ==0)
else
흠... 이 프로그램도 영동이의 도움.. ㅡ.ㅡ;; 영동이 소스 보고 하다보니깐. 완젼 똑같아졌네요. -_-;;
흠.. 큐는 제 힘으로 짜야되겠습다..
if(k == 5)
else
if (k == 0)
else
// 음... 시간이 되면 프로그램 종료되는...... 그런 소스..-_-;
== 제로 페이지 동기들 ==
- subsequence/권영기 . . . . 15 matches
if(sum[i] - sum[i - m] >= s) {
if(ans > m)ans = m;
if(!flag)l = m + 1;
else h = m - 1;
if(ans == 100020)ans = 0;
if(laundry[i] - mid > 0){
if(k - 1 <= 0)temp += laundry[i] - mid;
else temp += (laundry[i] - mid + (k - 2)) / (k-1);
if(temp <= mid){
if(ans > mid)ans = mid;
else low = mid + 1;
if(barn[i] - barn[temp] >= mid){
if(count >= c-1){
if(ans < mid)ans = mid;
else high = mid - 1;
- zyint . . . . 15 matches
MSN : {{{zyint 앳 zyint닷컴}}} >> 앳을 @로 닷컴을 .com으로 공백을 지운후 이메일 주소를 재구성 하세요.
|| 다빈치코드(일러스트레이티드 버젼;;) || . || ★★★★ || 음.. 다빈치코드는 상하권으로 나뉜거랑 이책이랑 두번봤는데... 아무래도 사진을 직접 보면서 읽으니 [[BR]] 이해가 잘갔다-_-(사실 글로만 읽다보면 이해가 전혀 안되는 부분도 있었고;; [[BR]]최후의 만찬 그림을 책을 읽으면서 바로 바로 [[BR]] 보고싶었엇는데 사진이 포함된 이책은 좋았던거 같다.ㅋ [[BR]]음.. 전체적인 줄거리와 책 속에 있는 지식은 나름대로 만족스러웠다. ||
|| 웰컴투동막골 || ★★★★★ || 대박작품-_-; 제목이나 포스터에서 풍겨오는 찌질함은 영화를 보면 바로 사라진다. [[BR]]감독 특유의(이 영화에서 처음보는것인듯) 아웃포커싱 기술로-_-; 감독의 쏀쓰가 물씬 풍겼다! 정말 최고의 영화! ||
|| 로봇 || ★★★ || 가족끼리 보면 좋을거같다. 뭐 내용이야 뻔하지만 그래도 해피엔딩이라 그런지 재밌다.. [[BR]]으흐흐흐.. 로봇이 3D그래픽으로 만들어졌는데 흠 어색한점은 전혀 없었던거 같다.. ||
= 참가 프로젝트 =
검색로봇 차단방법 : [Robots Exclusioin]
엠티때 프로젝트 하나 할까하고 말했지? 음.. 그거 진짜 사람 모을까? 할래? -[조현태]
- 같은 페이지가 생기면 무슨 문제가 있을까? . . . . 15 matches
* 용량문제는 많아야 1~5MB 안쪽 이다. 1000Page가 넘어가는 ZeroWiki 가 백업 용량이 3.5MB이다. SeeAlso SystemPages 중간 백업 로그
* 논의를 읽다 보니 새로 생각나서 적어봅니다. 중복 페이지가 생긴다면 발견자가 고칠 때 사람마다 기준이 달라서 한번에 해결이 되는 것이 아니라, 이사람은 이렇게 고치고 저사람은 저렇게 고쳐서, '''쉽게'''정리가 안 되지 않을까 싶네요 - [Leonardong]
무엇(What-손이 한 번 이라도 덜 가는 구조)인지는 알고, 이것은 저도 전제로 삼는 지향점 입니다. 이야기 할 발전적인 방향은 어떻게(How-그 구조로 어떻게 만들까?)를 논하는 것 이라 생각합니다. 제가 너무 함축적으로 글을 작성해서 풀어 씁니다.
[현재 위키에 어떤 습관이 생기고 있는걸까?]의 공원 길의 예제와 같이 중복 페이지가 생기고, 발견자(위키 사용자-WikiGnome)가 중복 페이지를 한두장 고칠 필요가 느껴질때 한두장 해결해나가는 일종의 아래에서 위로(BottomUp)의 해결 방식을 이야기 하는 것입니다.
앞에서도 썼듯 ''페이지를 생성할 때, 검색을 자동으로 해준다. 그래서 검색 결과를 보여주고 페이지를 새로 만들지, 아니면 원래 페이지에 덧붙여서 쓸 지 사용자가 결정하게 한다. 그러다면 검색 결과를 무시하지 않는 한, 중복 페이지가 줄어들지 않을까''라는 생각이 기본입니다. 검색범위를 페이지 이름으로 할지 전체 글을 대상으로 할 지는 생각을 못 해 보았지만요. 페이지를 손으로 고치는 방식을 대체할 것은 생각 못했지만, 제가 생각한 방식은 페이지를 만들기 전에 할 수 있으므로, 페이지를 만들고 나서 해결하는 '''아래에서 위로''' 방식과 혼합해서 쓸 수 있다고 생각합니다. 써 놓고 보니 페이지 이름하고는 빗나간 이야기이긴 하지만 어떻게 손이 한 번이라도 덜 가는 구조를 만들까 하다 보니 이런 글을 썼습니다.-[Leonardong]
페이지이름을 만들때, '''제목대상 검색'''은 이전부터 지원되었습니다. 예를들어 이동 창에 Front를 쳐보세요. 처음부터 후자를 이야기 하는 것으로 알고 있었습니다. 보통 '''내용검색(FullTextSearch)'''는 부하 때문에 걸지 않습니다. 하지만, 현재 OneWiki 의 페이지가 적고, 페이지를 만드는 행위 자체가 적으므로, 후자의 기능 연결해 놓고 편리성과 부하의 적당한 수준을 관찰해 보지요. --NeoCoin
- 객체지향용어한글화토론 . . . . 15 matches
* 우리 어휘를 사용하는 이유는 그 어휘에 내포된 여러가지 의미를 직관적으로 느낄수 있기 때문아닐까??
* 비슷한 부류의 책들이 반복적으로 그런 어휘 설명을 함으로서 페이지를 낭비하는것 보다는 어휘를 우리말로 대체시켜서 좀더 직관적으로 알아보게 만드는게 좋지 않을까??
* 외국인이 느끼는 그 느낌을 최대한 살릴수 있는, 그 숨은 뜻을 최대한 내포하는 우리말로 바꾼다면 좀더 이해가 쉽지 않을까??
* [이승한]이 처음 C언어를 접했을때 가장 답답했던 점은 용어를 한글로 적어 놓긴 했지만 발음 그대로 옮겨 놓은것에 불과해서 그것이 어떤 뜻을 담고 있는지, 어떤 의미로 쓰이고 있는지 전혀 못 알아 보았던 점이다.
* 게다가 점임가경으로 그렇게 발음 그대로 옮겨ㅤ많은 용어들이 책마다 다르게 쓰여져 있다는 것이었다. 특히 발행년도가 몇해씩 차이가 나는 책들은 그게 유난히도 심해서 도저히 같은 용어라고 보기 힘든 경우도 참 많았다. 그래도 요즘은 국내의 개발자 커뮤니티들이 많이 활성화되어서 사람들의 암묵적인 합의가 있어서 그런지 어느정도 통일이 되긴 했다.
* 그 뜻을 설명하는 방법도 책 마다 가지 각색으로 제대로 뜻을 파악하는것은 여전히 어렵다.
* 번역은 한 문화를 다른 한 문화로 이식하는 작업이다.
- 데블스캠프2006/SSH . . . . 15 matches
* 로그인
* zeropage.org/~id url 로 들어가면 해당 index.html 화일이 보임
* index.html, index.php, index.jsp 같이 index 는 기본 파일로 지정됨
* zeropage.org/~id/image.jpg 이런식으로.
* Makefile 작성 아래 파일명을 자신의 파일명으로 작성
* make 로 컴파일
* put : 해당 ftp 에 자료 업로드
* get : ftp 에서 자료 다운로드
* ftp 서버 설정을 익명 접속 허용으로 바꾼다.
* wget 으로 해당 ftp에서 자료를 다운 받아 본다. wget ftp://~ 이런식으로
* 쉘 스크립트는? 여러 명령어들을 파일로 저장하여 손쉽게 실행
* 문제상황 : 리눅스용 프로그램을 만들어야 하는 과제가 나왔다. 해당 과제는 컴파일과 실행을 리눅스에서만 해야 한다. 그런데 vi로 하기는 싫고, visual studio 나 editplus로 작업을 하고 싶다. 어떻게 할까?
- 데블스캠프2006/월요일/연습문제/if-else/주소영 . . . . 15 matches
== 데블스캠프2006/월요일/연습문제/if-else/주소영 ==
if( n<50 || 100<n) {
else {
if(i%3==0){
if(i%5==0){
//else
if else 2번째 문제
if ( 65 <= a && a <= 90) {
else if (97 <= a && a <= 122){
else if (48 <= a && a<=58){
else
- 데블스캠프2011/둘째날/Machine-Learning/SVM/namsangboy . . . . 15 matches
if not wordfreqdic[eachclass].has_key(word):
def classifydocument(document):
if __name__=="__main__":
totalprob = classifydocument(line)
if eachclass=="economy":
if totalprob>0:
elif eachclass=="politics":
if totalprob<0:
if __name__=="__main__":
print "read end "
print "end"
if not wordindexdic.has_key(word):
if not docwordfreq.has_key(wordidx):
outlist.append(str(wordidx)+":"+str(1))
# outlist.append(str(wordidx)+":"+str(docwordfreq[wordidx]))
- 데블스캠프2012/넷째날/묻지마Csharp/서민관 . . . . 15 matches
private void clicked(object sender, EventArgs e)
private void pushButton_Click(object sender, EventArgs e)
private void timer1_Tick(object sender, EventArgs e)
if (collide(label1, label2))
if (monsterIsDead)
else
if ( label1.Location.X + label1.Size.Width >= label2.Location.X && label1.Location.Y + label1.Size.Height >= label2.Location.Y ) {
private void Form1_KeyUp(object sender, KeyEventArgs e)
if (e.KeyCode == Keys.Up)
else if (e.KeyCode == Keys.Down)
else if (e.KeyCode == Keys.Left)
else if (e.KeyCode == Keys.Right)
- 로마숫자바꾸기 . . . . 15 matches
=== 로마숫자로 바꾸기 ===
문제 : 두자리 정수를 받아들여 그 숫자에 해당하는 로마 숫자를 출력시키는 프로그램을 작성하여라.
다음과 같은 형식으로 정수에 해당하는 로마 숫자를 출력시킨다.
=== 처리조건 ===
* 로마 숫자는 ⅩⅠⅤ 세 종류만 사용한다.
* 입력 자료는 99 미만으로 한다. 99: 종료
* '''ㅈ + 한자키 '''에 로마숫자있다. 또는 여기 페이지에서 복사해서 사용.
* 참고용 로마숫자
|| 로마숫자 || Ⅰ || ⅠⅠ || ⅠⅠⅠ || ⅠⅤ || Ⅴ || ⅤⅠ || ⅤⅠⅠ || ⅤⅠⅠⅠ|| ⅠⅩ || Ⅹ ||
|| [조현태] || C || . || [로마숫자바꾸기/조현태] ||
|| [허아영] || C || 40분 || [로마숫자바꾸기/허아영] ||
|| DamienRice || [Erlang] || 30분 || [로마숫자바꾸기/DamienRice] ||
- 만년달력/방선희,장창재 . . . . 15 matches
if (m == 0 && start < 7)
if (m >= 1)
if (calen[m][n] <= def_max_month(year,month))
if (m == 0 && start < 7)
if (m >= 1)
cout << endl;
cout << endl;
case 2 : if (temp_year % 4 == 0)
if (temp_year % 100 == 0)
if (temp_year % 400 == 0)
if (temp_year % 4000 == 0)
else
else
else
else temp_month=28;
- 빵페이지/도형그리기 . . . . 15 matches
위 도형들을 출력하는 프로그램을 작성하세요
==== 따로따로 버젼 ====
cout<<"도형그리기"<<endl<<endl;
cout<<endl;
cout<<"도형그리기"<<endl;
cout<<endl;
* 이야 깔끔하다~ 변수를 하나로 통일하는 방법도 있었군 - 승균
cout << endl;
* 같은 생각으로 작성한다면 소스가 어떻게 표현될까 궁금했다. 소스양만 따지면, Python 을 위한 문제인가.
if( num > MAX ) exit(0);
cout << endl;
cout << oddf << evenf << endl;
std::cout << buffer << std::endl;
- 새싹교실/2012/새싹교실강사교육/1주차 . . . . 15 matches
1. 새싹 강사, 학생에게 서로 질문 던져보기 (뭐 때문에 들어왔나?/목표는?/왜 그렇게 잘생김•이쁨?/한 주 동안 뭐했는지 공유)
4. 수기로 후기 작성 및 적은 뒤 돌려보면서 공유
5. 회비 걷고 서로 기억하기||
선배 후배간의 학술적인 교류를 개인적인 능력에 의한 특혜가 아니라 누구나 공개적으로 경험하기 위하여 ‘05년도부터 시작된 ZeroPage ‘새싹 배움터’를 시초로 한다. 현 ‘12년 학부의 한 행사로 자리잡아 컴퓨터 공학부의 세 학회(ZeroPage, Netory, CLUG)가 진행을 하고 교수님과의 Feedback을 통해 유동적인 강의 과정을 만든다. 또한, 새싹 교실의 필수과정인 Wiki의 사용, 회고를 통해 처음 프로그래밍을 접하는 새내기들뿐만 아니라 새싹 교실의 선생들도 배움을 얻어가는 자리이다.
※ 시간은 강사 재량에 따라 기본 한 시간에서 2시간까지로 진행합니다.
각 반 페이지는 새싹교실/2012/반이름처럼 하위 문서로 만들어주셔야 합니다
페이지를 고치고 싶으면 로그인하고 ‘e’를 누르면 됩니다. 가입은 쉬워요
예) 새싹교실 첫 수업이었다. 강사는 누구셨고 잘생겼다. 누구누구랑 같이 듣게 되었는데 얘네는 처음 본다. 얘는 언제 봤었고 같이 해서 좋다. 새싹교실의 정의에 대해 배웠는데 강의 중에는 뭔가 강사가 들떠있는 것처럼 보였다. 그리고 위키를 작성하는 것을 보았는데 사용법이 어려워 보였다. 그런데 거기다가 내 페이지로 글을 만들고 내 각오를 여기다가 적으니 부끄럽지만 신기하고 좋았다. 학교 강의에서는 이렇게 가르쳤는데 여기선 이렇게 가르친다 그런데 학교 강의가 더 잘 이해되는 것 같았다.
3.3 Vitualbox실행 -> 새로 만들기 -> 다음 -> 운영체제 : Linux 버전: Ubuntu(64bit) ->다음 -> 메모리(1024MB) -> 다음 -> 다음 -> 무한 다음 -> 만들기 버튼 클릭 -> 완성
3.5 팝업 메시지 다 확인 클릭 -> 부팅되면 설치 마법사가 실행되고 있음 -> 한국어 선택 -> Ubuntu 깔기 선택 -> 체크 박스 체크 안하고 앞으로 클릭 -> 앞으로 또 클릭 -> 지금 깔기(아직 끝난 거 아니다) -> 설치하면서 설정 -> 중요! 글자판 배치에서 한국어(101/104키 호환)을 골라야 한/영 키가 정상 작동함. -> 계정 암호설정은 알아서.
3.6 위의 과정을 매뉴얼로 만들어오세요. 프린트해오셔야 합니다! 사진만 붙인 거 인정 안 합니다. 점수? 매겨드립니다.
- 새회원을받으면 . . . . 15 matches
AnswerMe 5월 10일 위키설명회를 하면서 새회원을 받기로 하였는데...여러가지 생각이 떠오릅니다. ZeroPagers 여러분의 의견을 듣고 싶습니다.
SeeAlso [회원자격], [ZeroPage회칙], [정모/2003.3.5], [열린제로페이지]
* 그들은 제로페이지에서 무엇을 할 수 있을까?
* 제로페이지에서 새회원의 위치는 어디일까?
* 새회원/기존회원을 준회원/정회원 개념으로 볼 것인가?
* 제로페이지에서 활동하지 않았던 사람
* 앞으로 제로페이지에서 활동을 하려는 의사를 밝히는 사람
입니다.(둘은 and로 묶입니다.) ZeroPagers 여러분은 어떻게 생각하시나요? --[Leonardong]
* 04학번에게 이상한(?) 소문을 들었습니다. 그대로 적어봅니다. ' ''제로페이지는 들어가면 졸라 빡시다. 열심히 활동 안 하면 준회원되고, 제로페이지에서 짤린다.'' '라고 하더군요. --[Leonardong]
* 왜냐면, 열심히 하는 사람과 열심히 하지 않을 사람이 같이 섞여 있으면 서로 피곤하기 때문이지. 유유상종을 잊지 말게나! --[zennith]
- [http://netory.org 네토리]처럼 정기적(또는 비정기적)인 무언가가 있었으면 좋겠습니다. 굳이 그것이 모임의 형태가 아니더라도 ''새내기들이 자신이 제로페이지에 지원하였다는 사실을 잊어버리지 않게''해 주는게 필요하지 않을까요? 예를 들면, 숙제를 내준다던지, ProgrammingParty 같은 것들이요. - [임인택]
[제로페이지분류]
- 성당과시장 . . . . 15 matches
[http://kldp.org/root/cathedral-bazaar/cathedral-bazaar.html 성당과시장] 에서 논문 번역문을 읽을 수 있다. 논문 발표후 Eric S. Raymond는 집중 조명을 받았는데, 얼마 있어 지금은 사라진 Netscape 가 자사의 웹 브라우저인 Netscape Navigtor를 [http://mozilla.org 모질라 프로젝트]로 오픈 소스시켜 더 유명해 졌다. RevolutionOS 에서 실제로 Netscape의 경영진은 이 결정중 이 논문을 읽었다고 인터뷰한다.
그외에도 [http://kldp.org/root/gnu/cb/homesteading/homesteading.ko.html 인지권의 개간], [http://kldp.org/root/gnu/cb/hacker-revenge/ 해커들의 반란]이라는 논문도 있다. [http://kldp.org/root/cathedral-bazaar/cathedral-bazaar.html 성당과시장], [http://kldp.org/root/gnu/cb/homesteading/homesteading.ko.html 인지권의 개간], [http://kldp.org/root/gnu/cb/magic-cauldron/ 마법의 솥], [http://kldp.org/root/gnu/cb/hacker-revenge/ 해커들의 반란] 순으로 씌였다.
나의 경우 이런 책은 잘 않읽기 때문에 그냥 요점만 알아두는 것을 좋아한다. -_-;
|| 성당 || 찬란한 고독 속에서 일하는 몇 명의 도사 프로그래머나 작은 그룹의 뛰어난 프로그래머들에 의해 조심스럽게 만들어지고 때가 되어야 발표할 수 있는 엄숙한 성당 건축 방식 ||
|| 시장 || 일찍, 그리고 자주 발표하여 다른 사람에게 위임할 수 있는 것은 모두 위임하고, 뒤범벅된 부분까지 공개하는 그런 스타일은 서로 다른 의견과 접근 방식이 난무하는 매우 소란스러운 시장 같은 분위기 ||
우리가 본래 생까했던 성당 방식이 아니라 시장방식의 개발형태로 꽤나 괜찮은 시스템인 '''리눅스'''시스템이 탄생하였다.
(또한, 레이몬드 본인은 이 시장방식이라는 것을 실제로 경험해보고자 fetchmail 이라는 것을 실제로 시장방식으로 개발해보았다고한다.)
이 책은 당시 책이 발표된 시점에서 얼마뒤 네츠케이프 사가 망하고, 망하면서 Netscape 을 Mozilla 라는 Project 이름으로 발표함으로써 더욱유명해 졌다고한다.
실제로도 네츠케이프사에서 이 결정을 하는데 이 책이 중요한 역할을 했다고 한다.
- 수학의정석/집합의연산/이영호 . . . . 15 matches
새로운 방법을 생각해내 구현을 하긴 했지만 배열을 malloc으로 했으면 더 좋았을걸이라는 생각이 계속 든다.
만약 이것을 malloc으로 구현하려했다면 메모리 크기를 구해야하므로
input은 9 {1,2,3,4,5,6,7,8,9}로 테스트를 해 보았다. 결과는 아래.
if(next == '\0') break;
if(i == 1){
if(buf[j] == 99){
else{
if(buf[i] == 99)
else if(buf[i] == '\0')
else
갯수는 2^9 - 1로 511개.
갯수는 2^19 - 1로 1023개.
- 쓰레드에관한잡담 . . . . 15 matches
process scheduling은 크게 두가지로 나뉜다.
thread를 사용할때 중요한것이 동기화인데, context switch를 할 때 데이터가 저장이 안된 상태에서 다른 thread로 우선순위가 넘어가면 치명적인 오류가 나게된다.
Linux에서 멀티 프로세스 개념인 fork()는 내부적으로 do_fork()란 Kernel 함수를 호출하며, do_fork()는 내부적으로 user thread인 POSIX기반의 Mutex를 사용한다.
여담으로... context switch시 PCB(Process Control Block)에 정보가 저장된다.
이것은 Assembly어로 짜여지며 그 이유는 속도 때문이다.
-> 만약 Zombie Process가 생성되면 시스템 자원을 먹지는 않지만 PCB가 좀비프로세스의 리턴 값으로 늘어나 시스템이 전반적으로 느려진다.
함수가 실행되고 context switch가 일어나고 arg가 제대로 안바뀌는 것 같다.
arg는 0~9까지가 아닌 몇몇의 중복되는 수로 나타나게 된다.
pthread_mutex_lock을 변수 앞에 걸어주면 arg는 0으로 채워지게된다.
Critical Section이 아닌데도 데이터가 제대로 바뀌지 않는다.
argument가 제대로 넘겨지지 않는 것 같다.
- 위키에대한생각 . . . . 15 matches
* 처음 위키를 접했을때 '뭐 이딴게 다있어' 라는 생각을 했던 기억이 있다. 접한지 6개월정도 지났지만, 아직도 그다지 위키가 강력하다거나 혹은 일반 게시판보다 뛰어난점이 있다고 생각하지 않는다. 아직 위키를 제대로 모르는걸까.......암튼 뭐 그렇다.--[아무개]
* 익숙한 사람에게는 편리하나, 처음 컴퓨터를 쓰는 사람에게는 복잡해 보일 수도 있다고 생각합니다. 글 쓸때 각종 효과를 특수 문자(들)을 써서 나타내므로, 일종의 컴퓨터 언어같은 면이 있다고 보입니다. 따라서 우리같이 연관 있는 사람은 금방 배우지만, 아닌 사람들에겐 쓰기 힘들다는 인상을 줄 수 있습니다. -[Leonardong]
=== 누구나 손쉽게 페이지를 수정할 수 있으므로 참여를 유도할수 있다. ===
=== 백업이 되어 실수로 지워도 복구할 수 있다는 점 ===
* 기존에는 월단위로 백업하고, history를 삭제해서 복구가 불가능했다. --NeoCoin
* 한번 뒤로 밀리면 다시 그 페이지를 보기가 상당히 어렵다기 보다는 귀찮다. 내가 생각한 가장 치명적인 약점. -- 장창재
* 검색을 하지 않고 페이지를 만들 경우 같은 내용을 담을 페이지가 생길 수 있다. 페이지만들기를 할 때 자동으로 검색을 한 다음 만들게 하는 방법도 괜찮은 듯하다.
*위키는 최근바뀐글을 보고 그 페이지의 참여 정도를 파악할 수 있다는 점에서, 기존의 조회수를 보고 참여하는 것에 익숙한 사람들은 다소 어색한 공간이 될 수도 있다. 이를테면, 내가 어느 위키페이지에 글을 남겼는데 그 페이지를 보는 사람이 얼마나 있을까 하는 의구심이 생겨 그 페이지에 대한 참여를 더디게 할 수 있다. 다른 사람이 그 페이지를 보기만 하고 글을 남기지 않는다면 최근바뀐글에 그 페이지가 업데이트 되지 않으므로, 참여 의욕을 저하시키는 요인이 된다. 해당 페이지에 조회수를 누구나 쉽게 볼 수 있도록 나타낼수는 없을까? (물론, 조회수를 나타내면 참여가 적은 페이지를 두번 죽이는 경우가 될수도 있다 ㅡ.ㅡ;;)--[문원명]
=== 일반 게시판보다 눈으로 보기에 덜 예쁘다. ===
* 소스 단위 기능 재 디자인 - 예) http://openlook.org/ 위키와 블로그를 섞어 놓으셨다.
모든 이야기는 '''게시판에 비해서''' 라는 말을 다 붙이는 것이 암묵적으로 생략된 느낌이 든다. --NeoCoin
'''제로(혹은 원)''' 위키라는 말도 생략하고 쓰는 듯 합니다.--Leonardong
'''위키에 첨으로 글을 남깁니다....신기해라...^^; 위키에 들어오는 사람들은 모두 착하다...라는 전제하에..흠흠..--'''Dokody
- 이승한/질문 . . . . 15 matches
cout << sizeof(Ascores) << " " << sizeof(Ascores[0]) << endl;
cout << sizeof(scores) << " " << sizeof(scores[0]) << endl;
vs에서 타이핑하는 방식이외에 자동으로 함수를 생성해주는 바법사를 이용해 firend 함수를 생성할수는 없나요??
== 강희경의 나름대로의 답변 ==
아마 승한이가 원하는 답은 아니겠지만 한번 적어본다. 지금 함수에 전달하는 것은 인트형의 포인터이기 때문에 함수는 지금 받은 것이 숫자인지 배열인지 알 수 가 없지. 게다가 주소를 참조하게 되서 함수 안에서 그 값을 변경해주면 원본 값도 변하게 되고. 그래서 나는 함수 안에 멤버 변수를 만들어서 전달 값을 복사해서 쓰거든. 보통 전달인수를 받을 때 컴파일러에서 그 원본 값을 쓰지 않고 복사값을 사용하는 건 알지? 그 작업을 프로그래머가 해주는 것이지. 밑은 여태 말한대로 구현하고 간단하게 테스트한 소스야.
int *copyArray = new int[aLength];//전달 배열과 같은 크기의 새로운 배열 생성
cout << sizeof(copyArray[0])*aLength << " " << sizeof(copyArray[0]) << endl;
//여기부터는 테스트를 위해 임의로 만든 코드!
cout << endl;
for(index = 0; index < aLength; index++)//copyArray의 모든 값을 0으로 초기화
cout << endl;
cout << sizeof(scores) << " " << sizeof(scores[0]) << endl;
cout << endl;
- 정모/2002.9.26 . . . . 15 matches
저번 정모 이후, 사람들 살던 이야기. MobileJavaStudy 팀 (재동, 상규) 이야기가 있었다. 핸드폰으로 프로그램 올린 모습을 보여주었다.
["ProjectPrometheus"] 팀의 경우는 현재 도서관 UI 가 바뀌는 통에 열심히 기존 코드 수정중이라고 함. 그대신 모듈화가 되어있어서 소스의 일부 클래스들만 수정하면 된다고 한다.
* 학사장교 - 컴퓨터와 관련된 학사장교의 경우 경쟁률이 6 : 1 선이라고 한다. 시험과 면접등이 있다.
그리고, 경력을 쌓는 방법으로 대학원 프로젝트가 있을때 참여의사를 표시하여 참여하거나, 방학중 아르바이트 등의 이야기들이 있었다.
이런 비형식적인 오프모임도 좋은 것 같다. 오늘은 Seminar:RenaissanceClub 모임 스타일이랑 비슷한데, 꼭 '안건', '의견' 식으로 가지 않아도 좋을 것 같다. 사람들의 최근 관심사가 무엇인지 알고, 서로 자유롭게 의견을 말하거나 물어보는. 개인적으로는 이런 스타일로 계속 가보는 것도 재미있을 듯 싶다. ^^; --["1002"]
한번씩 돌아가면서 정모 기간 (2주정도?) 내 일어난 일이나 사건들. 관심사 등등. 그리고 2차행사로서 간단한 세미나를 한다던지, 자신이 만든 프로그램에 대해 시연을 한다던지. 문제를 제대로 정의할 수 있다면, 답을 구할 수 있을것 같다. (가장 간단한 일을 시작할 수 있을 것 같다. 정모 스타일에 비격식적 대화시간을 넣어본다던지, 자네가 정모 진행을 할때, 주위를 환기시킬 수 있고. 또는, 회장의 진행없이 나가볼 수도 있고.) --["1002"]
ps. 조금 아쉬운건, 조언해줄만한 경험있는 선배들의 참여가 적은 것같다는. (병특 문제에 대해 지금 준비하고 있는 사람이 이야기하는 것과, 현업에서 뛰는 사람이 이야기할때는 그 내용이 많이 차이날것 같다.) 시간이 늘 학부생 위주로 맞춰져 있는것도 약점이 되는듯하다. --["1002"]
ps. 남훈이가 한마디 할때면 새로운 세계가 열리는 것 같다. 마치 동양철학책을 읽는 느낌이다.; --["1002"]
- 정모/2004.04.27 . . . . 15 matches
장소 : 신피 -> 공대로비
* 행사 목적 : 제로페이지에서 활동하고자 하는 사람이 페이지를 만들어 새회원이 되도록 한다. 이후로 새회원과 함께 할 수 있는 프로젝트, 스터디, 세미나를 계속한다.
* 행사 장소 : 7층 피시실 -> [서영희]가 빌리기로 함
* 게시판 : [노수민]이 맡기로 함(04뿐 아니라 그 위 학번에게도 해당하는 홍보글)
* 단체로 관리&청소를 하기로 정함 ->두 달 동안 일주일에 한 번 돌아가며 관리를 했으니 효과적이지 못 했기 때문.
== 프로젝트 진행 상황 알리기 & 프로젝트 참여자 모집 ==
* [몸짱프로젝트] - 페이지 만들었음. - [서영희], [황재선] 참여
* 2학년 자바 텀 프로젝트
* 위키 투표로 결정하자 - [노수민]이 투표 페이지를 만들기로 결정
* 회의 하기에는 공대 로비는 너무 춥고 주의가 분산된다. [여섯색깔모자]도 중반 이후에는 거의 적용하지 못했다. 다음에는 꼭 강의실을 찾아서 회의를 해야지ㅠㅜ. --[Leonardong]
- 정모/2004.9.24 . . . . 15 matches
== 프로젝트 ==
* [스네이크바이트] - C++ 개념잡기, 프로그램 방법, 희경 강의 , - C++ 스터디 흥미없어질 때까지 유지
* 로보코드 - 로보코드 소개, 구현 및 play, 처음이자 마지막으로 모임 한번 예정
* 주제, 방식 -> 세미나 or 스터디? 어떤식으로?
방법론, 위키활용 - 지식관리, 다양한 것, 자유롭다, 회의, 숙제를 스스로, 새로운 것을 한다
[노수민], [강희경], [윤성만], [곽세환]이 하루 날 잡아서 네트워크 정비하기로 결정. 저녁 값 지원.
사고가 났을 경우를 대비 - 매주 목요일 12시(휘동, 수민 희경)
나름대로 수시로 위키도 드나들엇다고 생각하는데 안나와잇는거 같네염..;; --[김동경]
앞으로 5층? 4층? 게시판에 붙이고요, 구피에 붙이고, 과방 칠판에 써놓을 예정이고요,.
시간은 대부분 매주 화요일로 하기로 정했습니다 정모공지 위키에도 올려야겟네요 이전에는 자유게시판? 에 올리기도 했던듯 --[iruril]
- 정모/2005.1.17 . . . . 15 matches
ZP는 CS분야만 다뤄야 할까요?? CS이외의 분야를 프로젝트 주제로 삼는것은 어떨까요?? 할 수 있다면 어떤 주제가 있을까요?? - [이승한]
* 회식비의 회비지원 문제 : 현재 50만원의 피씨실관리비가 회식비로 10만원 남았습니다.
* 다음정모까지 다음학기 행사계획을 세우고 그것에따라 회비를 배분하며, 회식비로는 일절 지원을 하지 않는다.
* 2005년 계획을 작성 할 페이지를 만들기로 했죠
* [겨울과프로젝트]
* 로고와 캐릭터 공모에 4만원의 지원이 나갑니다.
무슨 지원을 말하는 건지?? 그리고 한방에 정리라고 쓰기보다는 어떻게 하기로 했다는 식으로 자세하게 썼으면 좋겠습니다. --[상규]
큭. 강의실은 확보했는데 메신저 하드 로그아웃상태에 학사 노트북은 켜지지도 않습니다. 취소합니다. 다음을 생각해봐야하는...ㅠ.ㅠ - [이승한]
오늘 과방 책상에서 진행한 회의는 어땠나요?? 별 문제 없었다면 이번 겨울은 계속 이러한 방식으로 해보려 합니다. - [이승한]
좀더 열심히 제로페이지 활동을 해야겠다는 생각을 했습니다. - [이승한]
수고했어. 근데 회의에 불참한 사람도 회의록으로 보면 모두 이해가 갈 수 있도록 좀더 자세하게 회의록을 정리해야 될 것 같아. 회장이 서기까지 하면 회의 진행이 끊기게 되고 자세하게 적기 어렵게 되거든. 보통 서기는 부회장이 하는 걸로 알고 있어. --[강희경]
[정모] [겨울과프로젝트]
- 조영준/다대다채팅 . . . . 15 matches
* 새싹교실에서 소켓에 대해 배우고 쓰레드에 대해 배운 다음에 삘받아서 슉슉 만든 프로그램.
* 원래 있던 일대일 채팅 프로그램을 개조.
* 솔직히 어떻게 짰는지 기억도 안난다. 말 그대로 '으어어어어' 하다보니 작동이 됨.
Console.WriteLine(TimeStamp() + "[]End");
string dataSend = s;
byte[] byteSend = Encoding.ASCII.GetBytes(dataSend);
stream.Write(byteSend, 0, byteSend.Length);
byteSend = null;
if (s == "exit") break;
dataGet = Encoding.ASCII.GetString(byteGet).TrimEnd('\0');
dataGet = Encoding.ASCII.GetString(byteGet).TrimEnd('\0');
clientSocket.SendBufferSize = 1024;
Console.WriteLine(TimeStamp() + "[] End");
dataGet = Encoding.ASCII.GetString(byteGet).TrimEnd('\0');
byte[] byteSend = new byte[1026];
byteSend=Encoding.ASCII.GetBytes(s);
networkStream.Write(byteSend, 0, byteSend.Length);
- 튜터링/2013/Assembly . . . . 15 matches
* 교수학습센터에서 진행하는 튜터링 프로그램에 참가해 튜터링 활동을 진행
* 이 과목에서 가장 주로 다루는 어셈블리 언어를 사용하는 이유와 현재 어떤 곳에 사용되는지, 특징은 무엇이며 장단점은 무엇인지 알아보자.
* 어셈블리 과목의 특성상 하드웨어와 소프트웨어의 이해가 동시에 필요한데, 이 부분에 관해 알아보기 위해 하드웨어가 어떤 식으로 명령을 처리하는지 알아보자.
* 어셈블리 언어란 무엇이며, 왜 쓰고 장단점은 무엇인지 써보자.(서술식으로 자신이 아는 내용/책에서 찾아본 내용을 써내려가보자.)
* 컴퓨터 구조가 어떤 식으로 되어있는지 써보고, CPU에는 어떤 것이 있으며 각각 무슨 일을 하는지 써보자.
* 재귀함수에 관해 써보고, n!을 재귀함수로 작성할 때 무엇을 고민해야하는지 써보자.
* 0과 1000 사이의 정수를 입력받아 모든 자릿수를 더하여 출력하는 프로그램을 짜보자.
* 소문자를 대문자로 바꾸는 프로그램을 작성해보자.
* Virtual, 2진수, 메모리 공간, ALU연산, Pipeline, Multitasking, 보호모드, Little-endian, RISC&CISC
1. 10진수값 223을 16진수 값으로 변환하세요.
1. 십진수 14에서 5를 빼는 과정과 결과를 2진수로 표현하여 쓰세요.
* 어셈블리언어의 기본문법을 보고, 어떤 프로그램이든 컴파일시키고 실행시켜보자.
1. 각 배열을 그림으로 표현하고, 다음의 실행결과가 나오도록 괄호를 채우시오.
4.다음 방식(indirect, indexed)로 코드를 작성하고, 설명하시오.
- 파스칼삼각형/허아영 . . . . 15 matches
ver.3 파스칼삼각형 코딩한다니까. 보창오빠가 흘려가는 말로 "재귀함수로 짜면 되지 않냐" 고 했던 말이 생각나서
짜봤다. 메모리 낭비없이 깔끔하긴 한데, 제대로 짠건지 모르겠다. 재귀함수는 어쩔 땐 헷갈린다.
int pascaltri[100][100]; // 이 부분을 어떻게 더 효율적으로 바꿀 것인가..->ver.3
printf("찾고자 하는 열, 행을 차례로 입력 :");
if(col >= row){
}else{
printf("찾고자 하는 열, 행을 차례로 입력 :");
if(col >= row){
}else{
if(row == 1 || col == row){
}else{
2차 이상의 배열을 포인터로 넘기는건 고생인데 말야.^^
엇~ 아영이 누나도 처음엔 원시적으로 짜셨네요~^^;; 후후.. 재귀함수로 이렇게 짤수있는거군요 센스 =ㅅ=b - [김준석]
- 프로그래밍잔치/첫째날 . . . . 15 matches
프로그래밍 잔치 첫째날 계획.
I. '''ZeroWiki Name Space 설명, 토론 앞으로의 발전 방향 토론 (["페이지이름"]) '''
* '''Think Difference 낯선 언어와의 조우'''
* 다양한 언어 혹은 Frameworks로 문제 풀기
* 우리가 졸업을 하면서 접하는 언어의 수가 얼마나 되는가? 10손가락에 꼽을수 있지 않을까? 프로그래밍 경력이 짧은 사람이라면, 많은 경험을, 많은 사람이라면 색다른 경험을 접해 보자.
=== 시간 - 제로위키 또 다른 대화의 방법 ===
1 : 30 시작. 칼로!
* 규칙을 스스로 만들어 낼 수 있는 자세.
* 시연 MP3공유 프로그램 20
그룹별 진행자가 존재하고, 위키 좋은점, 나쁜점(불편한점) 으로 나누어 진행
=== 시간 - Think Different! 낯선언어와의 조우! ===
* Java 은 메소드(함수, 프로시저)의 길이가 7줄을 넘으면 안된다. ; 기준
* Python 은 메소드(함수, 프로시저)의 길이가 7줄을 넘으면 안된다. line 기준
후기 : ["프로그래밍잔치/첫째날후기"]
["프로그래밍잔치"]
- 하드웨어에따른프로그램의속도차이해결 . . . . 15 matches
* 우리가 만든 프로그램이 어떤 하드웨어에서던지 일정한 속도로 돌아가기를 바라는 경우가 있다. 특히 게임을 만드는 경우가 대표적인 예이다. 그러한 경우 어떠한 해결책이 있는지 알아 보면 좋을거 같다. 여기에 그 해결책들을 적어 보고 잘못된 방법은 고치기도 하면서 좋은 방법을 찾으면 좋겠다.
* ["3DAlca"]프로젝트에서 이 게임을 펜티엄3 800 지포트2 MX 에서 돌렸을때는 정상 속도로 게임이 돌아 가는데 펜티엄 4 1.8GA Raden 9000 pro 에서는 거의 제어할 수 없는 속도가 나온다.
* 이걸로 해결 봤습니다. MFC에서는 타이머를 써봤는데 API에서는 어떻게 쓰는지 몰라서 못했었는데, 정직이형에게 물어봐서 알게 되어서 위 문제를 해결~
* hardware independent하게 게임속도를 유지하려면 매프레임 그릴때마다 이전프레임과의 시간간격을 받아와서 거기에 velocity를 곱해 position을 update하는 식으로 해야한다. 타이머를 하나 만들어 보자.
* 궁금한게 있는데, ["MFCStudy_2001/MMTimer"] 로 안된단 말이야? 가장 빠른걸로 알고 있어서, 동작 제어는 타이머단에서 하고, loop에서 열심히 그림 그려서 fliping만 해주면 되지 않을까? 낮에는 경황이 없어서, 그냥 멀티미디어 타이머 이야기만 했는데, winamp 같은 시간에 의존적인 프로그램들도 이 타이머를 사용해서 말이지. --["neocoin"]
* 허허.. 인스톨 과정에 재컴파일을 넣으면 되지 않을까 ;; 소스배포! 그것이야말로 남자(?)의 로망.. --["zennith"]
- 3D업종 . . . . 14 matches
opegl api 바이블. 모든 코드는 glut를 이용해 플랫폼 독립적으로 돌아가도록 되어있다.
별로 좋은 책은 아니지만 기초가 쉽게 설명 되어있음. 다 아는 내용이라면 굳이 볼 필요는 없는 책.
(도연이는 빠지기로 함.)
* 5.18~7~13일까지에 공백은 기말고사로 인해서 잠시 스터디를 멈춘 상태이고 7월13일 부터 다시 시작.
'''Visual Studio 2005 프로젝트로 되있습니다.
다음 경로에 파일을 복사합니다.
vc6이나 2003을 쓸 경우, 비슷한 경로에 glut를 복사하고, 프로젝트를 만들때 win32 console로 해서 링커 옵션에 opengl32.lib glu32.lib glut32.lib 파일을 추가합니다.'''
== 과거 프로젝트 ==
파일 업로드가 안되있었나봐염 업로드 했음. - 재혁
- ArtificialIntelligenceClass . . . . 14 matches
Upload:namsang:AI - Prentice Hall - Artificial Intelligence - A Modern Approach - 1995.pdf
실습 : 팀 프로젝트로 othello Game AI 작성.
지금 인공지능 수업이 피곤하고 졸린 이유는 뭘까. 교수님은 학생들의 feedback 을 끌어내려고 하지만, 끌어내기 위한 방법 자체를 잘 모르신다는 느낌을 강하게 받았다. 수업 내용의 경우도 책의 수준을 벗어나지 못한다. (시간상 조명상 더 졸립기까지 하다. 또는 교수님이 책의 내용을 정확하게 이해하시지 못한다는 느낌을 많이 받게 되었다.) 차라리 좀 더 구체적인 예제를 만들고, 이에 대한 해결법의 진행 과정에 대해 설명해주신다면 어떨까.
PPT 화일 프로젝션 & 읽기는 3시간짜리 연강 수업에는 정말로! 적합하지 않다는 것을 다시금 느끼게 해주는 수업.
요새 궁리하는건, othello team 들끼리 OpenSpaceTechnology 로 토론을 하는 시간을 가지는 건 어떨까 하는 생각을 해본다. 다양한 주제들이 나올 수 있을것 같은데.. 작게는 책에서의 knowledge representation 부분을 어떻게 실제 코드로 구현할 것인가부터 시작해서, minimax 나 alpha-beta Cutoff 의 실제 구현 모습, 알고리즘을 좀 더 빠르고 쉬우면서 정확하게 구현하는 방법 (나라면 당연히 스크립트 언어로 먼저 Prototyping 해보기) 등. 이에 대해서 교수님까지 참여하셔서 실제 우리가 당면한 컨텍스트에서부터 시작해서 끌어올려주시면 어떨까 하는 상상을 해보곤 한다.
실제로 AI 프로그래밍을 해보면서 이경우에는 지금 나와있는 어떤 방법과 어떤 방법을 어떠한 식으로 적용해 보는게 좋고, 아니면 더 나은 대안을 찾아보고 이런식이 재밌을거 같다.
* A* 서치와 빔 서치 로 실제 문제 푸는것 1문제
- AttachmentMacro . . . . 14 matches
파일이 이미 올려 있을 경우에는 그 파일을 받을 수 있는 링크가 자동으로 걸리게 되고, 파일이 아직 업로드되지 않았다면 파일을 업로드 할 수 있는 링크가 생성된다.
/!\ Attachment는 매크로로 구현되어 있으므로 {{{[[Attachment(hello.png)]]}}}라고 해도 똑같은 방식으로 작동을 합니다. 그러나 '''attachment:'''문법을 쓰시기 바랍니다.
이 경우 config.php에 {{{$use_convert_thumbs=1}}}를 넣어준다.
손톱그림의 내정된 기본 크기로 손톱 그림이 만들어지고 보여진다.
/!\ 1.1.3에서 제대로 안됩니다. 버전 1.1.3.1을 받아서 사용하시기 바랍니다.
== GUI를 사용하는 경우 ==
모니위키 1.1.3부터 제대로 지원하게 된 WikiWyg GUI를 사용하면 좀 더 쉽게 파일을 업로드 하실 수 있습니다.
- BeingALinuxer . . . . 14 matches
Being A Linuxer는 '리눅서가 되는' 정도의 뜻으로 해석할 수 있다. 이는 완료형이 아니라 진행형이다. 이 스터디로 인해 참가자들이 리눅스를 조금이나마 이해하고 리눅스 환경에 익숙해지는 것을 최종 목표로 한다.
|| 윤성복 || 05 || cutlife@hotmail.com || Linux는 오랜만 ^^;; ||
1. 일단 전체 12명을 3개의 조(각조 4인)로 나눔. 이를 각각 1조, 2조, 3조라고 함.
2. 각 조는 2개의 작은 조로 나눔. 2인이 다시 하나의 작은 조를 이루어 같이 실습하고 학습함. (SeeAlso PairProgramming)
7. 4~6의 과정을 하나의 사이클로 보고 한 사이클을 3주에 끝내는것으로 가정. 스터디가 종료될 때까지 스터디를 반복
오늘 모임은 제 사정상 내일(6/2 목욜) 5시반 으로 정했는데 B팀중 안되시는분은 오승혁군 메니져에게 연락해주시길~ -[이동현]
오늘의 의문점: 와일드카드 문자의 정확한 동작을 모르겠다.(ls pu* 로 하면 왜 pu*폴더안에있는 파일까지 다 나오는지?)
- ls directory 하면 그 안에 있는 내용도 보여주는데.. ls pu* 하면. pu로 시작하는 파일하고 pu로 시작하는 디렉토리 안의 내용을 보여주겠지. 글고 linux, unix, bsd 계열의 OS에서는 폴더보다는 디렉토리라고 부르는게 맞는듯. - 인택
뿌띠에서 logout명령어를 치면 왜 프로그램이 종료되어버리는지?(다시 login name을 입력하도록 나오는것이 정상 아닐까?)
- 프로그램 자체가 그렇게 제작되었기때문이 아닐까. -_-a - 인택
- B급좌파 . . . . 14 matches
http://image.wowbook.com/book/large_image/89-85304-71-2.gif
김규항의 글을 읽고 한편으로는 시원할런지 모르겠지만 (통쾌함하고는 좀 다르다. 친구랑 골방에서 맘에 안드는 넘들 뒤에서 까대는 느낌이랄까) 한편으로는 속이 편할리 없다. 적당히 지적인척 이야기할때 전문용어 적당히 섞어주고, 제대로 알지도 못하면서 적당히 사회 아는 양 민주당이 어쩌고 한나라당이 어쩌고 하는. 농활이나 빈활한번 안다녀온 나로서는 더더욱 이 책을 보고선 웃으면 안된다. 삶에서 민감해야 할 사항에서 그냥 간과하고 조용히 사는 소시민으로서는 그저 지식인 투덜거리는 이야기일뿐이다. 진중권이건 강준만이건 김규항이건.
그사람들의 글들이 나에게 읽어짐으로 인해 '적절히 써먹으면 재미있을 만한 글투' 지식분류에 하나 추가되면, 또는 '적절하게 사회적인 척 일수 있는 인용거리'가 되면 괜히 미안해지니까. 그냥 적절히 읽고. '아 그 사람 이야기'. 나중엔 '지식인 록을 고르다' 가 나중엔 '지식인 규항을 고르다', '지식인 중권을 고르다' 식의 글도 나올지도 모르니. -- 소시민 ["1002"]
전에 모 오프라인 모임을 나간 적이 있었다. 자기 소개시간때 처음으로 걸리게 되었다. 그냥 아무 생각없이 'C대학교 99학번 A 입니다' 라고 했는데, 그 다음부터 다른 사람들 소개가 전부 'S대학교 00학번 누굽니다' 'B회사 근무중 누구입니다' 였다. 그 와중에 중간에 붙일 소속을 궁리하며 머뭇머뭇거리다가 그냥 'B 입니다' 라고 한 사람도 있었다. 아차. 저 사람 내가 아는 사람인데, 대학에 다니지 않는다고 했었지.
맨날 '학연이네 지연이네 지역감정이 어쩌네' 하면서, 무심코 나는 그 사람에게 폭력을 행사한 것이리라. 차라리 그냥 'ZeroPage 에서 활동중 누구입니다' 라고 할걸. 온라인 모임이름이라면 그래도 1년에 10만 이상 못들어가는 대학교보단 그래도 덜 폭력적이련만. (하긴 결국 중대모임이므로 똑같으려나..) 나의 언어에선 당연한 세상이 다른 사람들에겐 당연할 수 없는 세상인 경우가 있다. 순간에 대해서 민감할 수 있었더라면. 깨어있었다면. -- ["1002"]
이처럼, 꼭 모든것을 직접 경험해봐야 대상에 대해 이야기 할 수 있다고는 생각할 수는 없는 일이 아닐까. 농활에 대해 모르면 모르는데로, 알면 아는대로 이야기 하는게 나쁠 이유가 있을까. 오히려 그런 시도를 하는 사람은 '''잘''' 아는 사람을 만나 더 '''잘''' 알게되는 계기가 생길 가능성이 훨씬 많으니, 좋은게 아닐까 (물론, 젠척 하는걸 이야기 하지 않음은 알겠지만 :) )
세상에 진리를 아는 사람이 몇이나 된다고. 기죽지 말고 당당하되, 자신의 귀만 열어놓으면 충분하지. 개인적으로 석천이가 당당한 모습을 지닌다면, 지금보다 '''백만배''' 멋져보일꺼라 생각함 ;-) --선우
''뭐.. '어설프게 젠척하지 않기 위한' 개인적인 경계의 글 정도로만 생각해주시길. :) 그 이상 가다가는 이 글이 '자기가 다치지 않기위해 미리 쳐놓은 보호막' 이 되어버릴지도 모르기에. -- ["1002"]''
- C++/SmartPointer . . . . 14 matches
#ifndef _SMARTPTR_H
if(_P != 0)
else
if (this != &_Y)
if (_Ptr != _Y._Ptr)
if(_Ptr)
if(_Ptr->_Refcnt <= 0)
if(_Ptr == 0) return TRUE;
if(_Ptr)
if(_Ptr)
if(_Ptr->_Refcnt <= 0)
#endif
이런걸 안써도 되어서 Python이 재미있는 것일지도. (하지만 Extending 쪽에서는 결국 써야 하는.. 흑) --[1002]
- Calendar성훈이코드 . . . . 14 matches
== Calendar.h ==
void printCalender(int year, int first);
== Calendar.cpp ==
#include "Calender.h"
void printCalender(int year, int first)
if(cnt == 7){
if(IsLeafYear(year) == 0) days = 29;
else days = 28;
if(year%4 == 0)
if(year%100 == 0)
if(year%400 == 0)
else
#include "Calender.h"
printCalender(year, first);
- ContestScoreBoard/조현태 . . . . 14 matches
사실 배열로 작성하려고 했으나.. 왠지 링크드 리스트가 더 어울릴 것 같고.. 배열의 장점을 살릴 수 없을 것 같아서 링크드리스트로 했다.
datas* end_point=NULL;
if (input_team_number==0)
if ('C'==input_e)
else if ('I'==input_e)
if (target_team_number==temp_point->team_number)
temp_point->prv=end_point;
if (start_point==NULL)
else
end_point->next=temp_point;
end_point=temp_point;
if (temp_point!=NULL)
- ContestScoreBoard/차영권 . . . . 14 matches
푼 문제수와 Time 패널티가 모두 같은 때에는 팀 번호가 작은 순으로 출력해야된다.
if (count < nCase-1)
cout << endl;
if (cin.peek() == '\n')
if (team[teamNumber].correctSubmit[problemNumber] == false)
if (team[teamNumber].incorrectSubmit[problemNumber] == true)
if (joined[i])
if (isBreak != 0)
if (joined[i])
if (team[i].solvedProblem > team[bestTeam].solvedProblem)
else if (team[i].solvedProblem == team[bestTeam].solvedProblem
else
<< team[bestTeam].timePenalty << endl;
- DataStructure/Stack . . . . 14 matches
* 스택(Stack) : 나중에 들어온게 먼저 나감. 밑은 막혀 있고 위만 뚫려 있는 통이라고 생각하면 됨. 밑을 도려내고 꺼낼수는 없는 노릇이니 집어넣을때도 위로, 뺄때도 위로 빼야겠져?^^;;
== 배열로 짠 스택 ==
if(top==-1)
if(top==Size-1)
if(!IsFull())
else
if(!IsEmpty())
else
== Linked List로 만든 Stack ==
if(!IsEmpty())
else
cout<<top->m_nData<<endl;
if(top==Head)
- EightQueenProblem/lasy0901 . . . . 14 matches
같은 대각선에 있다면 x좌표와 y좌표의 합이나 차가 같다는 사실을 이용해서 프로그래밍했습니다.
좀 어거지로 소스 코드 크기를 줄였습니다. -_-a
두번째 프로그램은 ... 이상하게 컴파일이 안되더군요.. 알고보니 #include <stdafx.h> 을 안 넣어서 (VC6.0) 낭패-_-a
== 하나의 해만 구하는 프로그램 ==
if ((i!=j)&&(t[i]==t[j]||t[i]+i==t[j]+j||t[i]-i==t[j]-j))
if (is_finished==0)
if (pos<8)
if (check(pos)) make(pos+1);}}
else
== 모든 해를 구하는 프로그램 ==
if ((i!=j)&&(t[i]==t[j]||t[i]+i==t[j]+j||t[i]-i==t[j]-j))
if (pos<8)
if (check(pos))
else
- EightQueenProblem/이선우2 . . . . 14 matches
if( size < 1 ) throw new Exception( NQueen2.class.getName() + "- size must be greater than 0." );
if( out != null || numberOfAnswers == -1 ) {
if( hasAnswer == -1 ) {
if( hasAnswer == 1 ) return true;
if( line == size ) {
if( isValidQueens() ) {
if( out != null ) printQueen();
if( checkOne && numberOfAnswers > 0 ) break;
if( ! checkRule( i, board[i] )) return false;
if( line != i )
if( board[i] == xPos || board[i] == rightDownWay || board[i] == leftDownWay ) return false;
if( board[i] == j ) out.print( queenMark );
else out.print( boardMark );
if( args.length != 1 ) throw new Exception();
- ErdosNumbers/문보창 . . . . 14 matches
cout << "Scenario " << i + 1 << endl;
if (ischeck[i] == false)
if (ischeck[i] == true)
if (thesis[i] == ',')
if (rest_count == 2 && thesis[i] == ',')
if (thesis[i+1] == ' ')
else
if (strcmp(name[i], temp->name) == 0)
if (isCheck) // 기존 맵에 존재한다면 추가
if (isInserted[i] == false) // 아직 추가되지 않았다면 추가
if (strcmp(temp->name, name) == 0)
if (result == -1)
else
cout << result << endl;
- HelpMiscellaneous . . . . 14 matches
MoniWikiFaq / MoniWikiFaq2 에는 예전의 FAQ를 보실 수 있습니다. 더 궁금하신 부분은 http://kldp.net/projects/moniwiki 를 통해서 질문하시기 바랍니다.
BackupScripts는 모니위키의 이전을 도와주는 스크립트 입니다. `php`로 만들어져 있고 `GNU tar`을 쓸 수 있어야 합니다.
UpgradeScript는 업그레이드를 위해서 기존에 자신이 고친 파일을 보존해주고, 새로 갱신된 파일로 바꿔주는 스크립트입니다. 유닉스 계열만 지원하며, 쉘 스크립트이며 `diff, patch, GNU tar` 등등의 실행파일이 필요합니다.
특히 페이지 이름을 영어로 만들 것인지 한글로 만들 것인지에 대한 부담을 가지게 되는데, 이러한 부담을 덜고
좀 더 유연한 페이지 이름을 접근하는 방식을 제공하는 것이 바로 페이지 이름의 별명을 지원하는 것입니다.
모니위키 1.1.5부터는 !HongGilDong이라는 페이지를 만들어 {{{#title 홍길동}}}이라고 하면 제목이 별명으로 등록되게 됩니다. 또한 다른 별명을 등록하려면 {{{#alias 홍 길 동,홍 길동}}} 등등을 등록하여 띄어쓰기에 상관없이 만들 수도 있으며, 제목 검색도 별명과 함께 검색되게 되었습니다.
특별히 한글의 경우 그 띄어쓰기가 일관되지 못하는 경우가 많이 있는데, 모니위키 1.1.5부터는 띄어쓰기에 상관 없이 제목을 검색해주므로 띄어쓰기를 조금 잘못하더라도 손쉽게 페이지를 찾을 수 있게 되었습니다.
특정 URL을 fix해주는 기능을 제공합니다. 예를 들어 과거의 {{{http://foobar.org}}}였던 링크가 최근에 {{{http://foobar.com}}}으로 바뀌었다면 이를 UrlMappings에 등록해서 자동으로 잘못된 URL 정보를 fix할 수 있게 해줍니다. 이 기능은 단지 대치만 해주기 때문에 실제로 페이지 내용이 바뀌거나 하지는 않습니다.
- HelpOnFormatting . . . . 14 matches
위키위키는 좀 더 직관적이면서 이해하기 쉬운 단순한 세트의 문법 규칙을 가지고 있습니다. HTML 문서를 만들기 위해서 HTML문법을 알아야 하는 것 처럼 위키위키 페이지를 만들거나 고치기 위해서 위키위키 문법을 알아야 합니다. HTML문법은 직관적이지 않고 복잡한 측면이 있습니다. 그러나 대다수의 HTML문서는 매우 간단한 문법을 알기만 하면 만들 수 있습니다. 위키위키는 이러한 문법을 좀 더 단순화 시키고 직관적이고 이해하기 쉬운 단순한 규칙으로 구성되도록 고안되었으며 조금만 시간을 투자한다면 위키위키의 문법을 쉽게 이해하고 배우실 수 있습니다.
그리고 이러한 포매팅을 ''있는 그대로'' 보여주기 위해 ` {{{ }}} ` 중괄호 세개를 연달아 사용하는 문법이 있습니다.
한 단락 내에서 강제로 줄 바꿈을 하고 싶은 경우에는 {{{[[BR]]}}}를 씁니다.[[BR]]이것은 위키위키의 고급 기능에 속하는 [매크로문법] 입니다.
위키위키 문법을 무시하게 하기 위해서 중괄호 세개를 {{{ {{{이렇게}}} }}} 사용하게 되면 글꼴이 고정폭 글꼴로 보여지게 되며 ({{{monospace font}}}) 만약에 이 문법을 여러 줄에 걸쳐 사용하게 되면, 중괄호 블럭의 모든 공백이 보호되어 프로그램 코드를 직접 삽입하여 보여 줄 수 있습니다.
이 경우 모든 위키 문법은 무시되고 있는 그대로를 보여주게 됩니다.
특별히 여러 줄 코드 블럭을 넣을 때 최 상단에 {{{#!php}}}, {{{#!python}}}과 같은 줄이 있으면 이것은 프로세서 해석기에 의해 해석되어
/!\ 모인모인은 {{{^MoinMoin 윗첨자^}}} 라고 하면 윗첨자가 되지만 모니위키는 공백이 없어야 합니다. 공백이 있는 경우에는 {{{^^모니위키는 이렇게^^}}} ^^모니위키는 이렇게^^ 하시면 됩니다.
/!\ 모인모인의 경우에는 여러줄에 걸쳐있는 경우에도 이러한 기본 문법이 적용되지만, 모니위키의 경우 기본 문법은 반드시 한줄에 대해서만 적용됩니다.
- JavaScript/2011년스터디/JSON-js분석 . . . . 14 matches
* stringify의 return문에서 쓰는 fake root의 역할
* str함수 내에서 object, object array등을 처리할때 재귀적으로 들여쓰기를 처리해준다. 디테일이 살아있어
if (Object.prototype.toString.apply(value) === '[object Array]') {
* toJSON에서 key를 파라메터로 넘기는 이유(코드내에서 사용하지는 않는다)
if (typeof Date.prototype.toJSON !== 'function') {
* perl에서는 "use strict"라고 썻을 경우 선언되지 않은 변수등은 오류로 뜸(프로그래머의 실수 방지)
//유니코드로 변환하는 과정 : .charCodeAt로 가져온 아스키코드를 toString(16)로 16진수 변환
// .slice(-4)로 뒤에서 4글자를 추출
* str function에서 'string', 'number', 'boolean', 'null' 은 모두 string로 변환한다. 그런데 'object'의 NULL은 뭐지??
* line 237 : value는 왜 holder[key]로 가져오는가?
- JollyJumpers/강희경 . . . . 14 matches
if(!isInputStart){
if(cin >> numberOfInputFactor){
if(numberOfInputFactor < 2){
else{
else{
if(!(cin >> inputedList[inputedList[0] - numberOfInputFactor])){
if(temp != '\n')
if(!isCorrectInput)
if(gap >= aList[0] || gap == 0 || binaryMap[gap-1]){
else
if(aIsIt)
else
졸리점퍼임을 확인하는 2가지 조건
2 2 3 4의 입력을 받는 경우 2 2 3만 인식하여 졸리점퍼라고 판단하게 된다. 현재는 고칠 생각없음
- JollyJumpers/허아영 . . . . 14 matches
if(num == 0 && num <= 0)
if(numbers[i] >= numbers[i-1])
else
if(compare[i-1] != value)
if(compare[i] >= compare[j])
if(compare[i] == i)
else {
if(num == 1)
cout << "Jolly" << endl;
else if (jolly)
cout << "Jolly" << endl;
else
cout << "Not jolly" << endl;
- LUA_4 . . . . 14 matches
>>end
>a = foo -- a라는 이름으로 foo를 넘겨준다.
[ function 함수명() end ] 형태로 함수를 만들 수 있습니다.
>> end
>> for i = 1, #arg do sum = sum + arg[i] end
>> end
함수는 사용하기에 따라 변형할 수 있는게 많아서 천천히 다양한 방법을 설명하겠습니다. 대신 변수의 범위(scope)에 대해서 간단하게 예제로 살펴 보겠습니다.
>> end
같은 주제로 다른 예를 보겠습니다.
>> end
>> end
변수 범위는 이 밖에도 다양한 이슈를 만들 수 있습니다. 예를 들면 do ~ end 문에서도 local 로 범위를 한정할 수 있고 function 자체도 변수와 같이 범위(scope)를 한정하여 사용할 수 있습니다. 또한 local을 사용하지 않으면 전역 범위 내에서 변수나 함수 자체를 접근/변경할 수 있습니다.
- LinuxProgramming/SignalHandling . . . . 14 matches
위키 페디아의 정의를 빌리자면 시그널은 '''한 프로세서와 기타 다른 프로세스 사이에 전송되는 비동기적 이벤트''' 라고 한다.
유닉스 시스템에서 어떤 이벤트(event)가 발생하면 이것을 프로세스 사이에 알리는 수단으로 시그널이 사용된다.
쉽게 MFC 와 비유하여 설명하는 시그널은 메시지와 비슷하다고 보면 된다. 실제로 signal 함수를 이용해서 우리는 MFC에서 이벤트와 이벤트 핸들러를 연결하듯 프로그래밍을 한다는 사실을 알 수 있다. (이렇게 보면 정말로 유닉스가 C로 짜여있다는 것을 확실하게 알 수 있다.)
SIGCONT - continue if stopped
if(num > 5)
if (state != 0)
if(num > 5)
이미 OS 에서 모든 처리를 다해주기 때문에 프로그래머는 핸들러만 정의하면 만사 OK다
if (state != 0) {
- LoadBalancingProblem . . . . 14 matches
Load Balancing 이라는 개념은 앞으로 몇번 접하게 될 개념입니다. 컴퓨터분야에서뿐만 아니라 다른 분야 (예를 든다면 이삿짐 업체나, 택배업체, 우체국 등등..) 에서도 쓰입니다. Load Balancing은 역할분담을 가장 적당하고 고르게 하여 각각의 개체들이 부담을 적게 느끼고 전체 작업시간을 단축시킬수 있도록 해 줍니다. 간단한 LoadBalancingProblem 문제를 접하여보고 기회가 닿는다면 조금더 복잡한 종류의 문제를 풀어보는것도 좋을것 같습니다.
SuperComputer 사는 N 개의 CPU 로 이루어진 슈퍼컴퓨터를 제작하였다. 각각의 CPU는 1에서 N 까지 번호가 새겨져 있으며 각각 독립적인 작업을 수행한다. 새로운 작업이 생기면 무작위로 한개의 CPU 에 그 작업이 할당된다. 이럴 경우 어떤 CPU 에는 작업이 엄청 많고 다른 CPU 에는 할당된 작업이 적거나 아예 없는 상황이 발생하게 된다. 이럴경우 각 CPU 에 작업을 적당하게 분배하여야 하는데 각각의 재분배 작업은 N번 CPU가 1-N, 1-N CPU 에 각각 하나씩의 작업을 전달하는 것이다. 차근차근 살펴보면,
1. 1번 CPU의 작업의수를 본다. 다른 CPU 에 비해 작업이 많으면 양옆의 CPU 중에 한곳으로한 작업을 전달해줄수 있는데 1번 CPU 의 왼쪽에는 CPU 가 없으므로 2번 CPU 에만 작업을 전달해 줄 수 있다.
1. 2번 CPU 의 작업의 수를 본다. 만약 2 번 CPU 의 작업의 수가 많다고 생각되면 1번, 3번 CPU 로 작업을 전달 해 줄수 있다.
1. (...) N 번 CPU 를 본다. 작업을 전달해줘야 할 경우 N 번 CPU 의 오른쪽에는 CPU 가 없으므로, 왼쪽으로만 전달할 수 있다.
IPSC 에는 입력을 파일로 받도록 하였으나 여기서는 직접 사용자가 다음과 같은 형식으로 입력한다.
- Lotto/김태진 . . . . 14 matches
* 솔져는 못풀고 대체제로 이거슬 풀었습니다. 이번주는 진경이한테 덜 까이겠군여.
* 아, 그리고 오랜만에 포인터를 썼는데 예상대로 써져서 흡족했습니당.-
if(N==0) break;
if(*p[6]!=a[N]) p[6]+=1;
else if(*p[5]!=a[N-1]) {p[5]+=1; p[6]=p[5]+1;}
else if(*p[4]!=a[N-2]) {p[4]+=1; p[5]=p[4]+1; p[6]=p[5]+1;}
else if(*p[3]!=a[N-3]) {p[3]+=1; p[4]=p[3]+1;p[5]=p[4]+1; p[6]=p[5]+1;}
else if(*p[2]!=a[N-4]) {p[2]+=1; p[3]=p[2]+1;p[4]=p[3]+1;p[5]=p[4]+1; p[6]=p[5]+1;}
else if(*p[1]!=a[N-5]) {p[1]+=1; p[2]=p[1]+1;p[3]=p[2]+1;p[4]=p[3]+1;p[5]=p[4]+1; p[6]=p[5]+1;}
- MineSweeper/김회영 . . . . 14 matches
if(temp[j]=='*')
if(i>0 && j>0)
if(j>0)
if(i<height-1 && j>0)
if(i>0)
if(i<height-1)
if(i>0 && j<width-1)
if(j<width-1)
if(i<height-1 && j<width-1)
cout<<endl<<"Field# :"<<count<<endl;
if(arrayOfMine[y*width+x]>=BOMB)
else
cout<<endl;
- PrimaryArithmetic/허아영 . . . . 14 matches
무조건 코드짠다- (설계하지 않고)
if(num1_len > num2_len)
else
if(n1 >= n2)
} else {
if((nums1[i]+nums2[i]) >= 10)
if(n1 == 0 && n2 == 0)
if(operation == 0)
cout << "No carry operation." << endl;
else if(operation == 1)
cout << "1 carry operation." << endl;
else
cout << operation << " carry operations." << endl;
- RandomWalk/ExtremeSlayer . . . . 14 matches
#ifndef _BOARD_H_
#endif
if(_nBlockFrequency)
if(_nBlockFrequency[i])
//// 본 프로그램 ////
if(_nBlockFrequency[i][j] == 0)
cout << endl;
cout << "현재 행 : " << _nCurRow << endl;
cout << "현재 열 : " << _nCurCol << endl;
cout << "총 이동량 : " << _nTotalMovement << endl;
if(CheckCorrectCoordinate(DelRow, DelCol))
if(_nCurRow + nDelRow < 0 || _nCurRow + nDelRow > _nRow - 1)
if(_nCurCol + nDelCol < 0 || _nCurCol + nDelCol > _nCol - 1)
- RandomWalk/재니 . . . . 14 matches
if (l_or_r == 0)
if (line == 0)
else if(line == n - 1)
else
else
if (row == 0)
else if(row == n - 1)
else
if (square[i][j] != 0)
if (passed == n * n)
cout << endl;
cout << endl;
- Refactoring/OrganizingData . . . . 14 matches
http://zeropage.org/~reset/zb/data/ReplaceDateValueWithObject.gif
http://zeropage.org/~reset/zb/data/ChangeValueToReference.gif
http://zeropage.org/~reset/zb/data/ChangeReferenceToValue.gif
* You have an array in which certain elements mean different things. [[BR]]''Replace the array with an object that has a field for each element.''
http://zeropage.org/~reset/zb/data/DuplicateObservedData.gif
* You have two classes that need to use each other's features, but there is only a one-way link.[[BR]]''Add back pointers, and change modifiers to update both sets.''
http://zeropage.org/~reset/zb/data/ChangeUnidirectionalAssociationToBidirectional.gif
* You have a two-way associational but one class no longer needs features from the other. [[BR]]''Drop the unneeded end of the association.''
http://zeropage.org/~reset/zb/data/ChangeBidirectionAssociationToUnidirectional.gif
http://zeropage.org/~reset/zb/data/EncapsulateCollection.gif
http://zeropage.org/~reset/zb/data/ReplaceTypeCodeWithClass.gif
http://zeropage.org/~reset/zb/data/ReplaceTypeCodeWithSubclasses.gif
http://zeropage.org/~reset/zb/data/ReplaceTypeCodeWithStateStrategy.gif
http://zeropage.org/~reset/zb/data/ReplaceSubclassWithFields.gif
- STL . . . . 14 matches
|| ["STL/list"] ||만들기 까다로운 더블 링크드 리스트를 제공해준다.||
=== 관련 프로젝트 페이지 ===
* ["UseSTL"] : ["neocoin"] 의 프로젝트 페이지
앞으로 C++ 을 이용하는 사람중 STL 을 접해본 사람과 STL을 접해보지 않은 사람들의 차이가 어떻게 될까 한번 상상해보며. (Collection class 를 기본내장한 C++ 의 개념 이상.. 특히 STL 를 접하면서 사람들이 [GenericProgramming] 기법에 대해 익숙하게 이용할 것이라는 생각을 해본다면 더더욱.) --["1002"]
이제 컴퓨터의 속도가 빨라진 지금, C++을 느낄려면 STL을 써서 프로그래밍 해야 Compiled language 라는 느낌을 받을수 있다. --["상민"]
DeleteMe) 인수가 가진 모든 STL 페이지 ["Refactoring"] (예제가 그 자체로만으로 돌아가나 컴파일. 이모티콘과 잡담 모두 빼서, Document Mode로 만들기, 쉬운말, 쉬운 예제로 고치기) 결과 ["인수"]의 모든 STL 페이지 사라짐(피바람);;
["EffectiveSTL"] 외부로 빼기(["인수"]가 했음) --["neocoin"]
[STL]과 같은 라이브러리를 직접 만들어보는것도 (프로젝트 형식으로 해서) 좋을 것 같네요. [GenericProgramming] 의 철학을 이해하는 데에 도움이 될 것 같고 그 안에 녹아있는 자료구조와 알고리즘을 체득할 수 있을 것 같습니다. - [임인택]
"[STL] 컨테이너는 포인터를 염두에 둬두고 설계된 것이 아니라, 객체를 담을 목적으로 설계된 자료 구조이다." 이 말을 너무 늦게 봤네요ㅠ_ㅠ 기본 데이터 타입 이외에 사용자 정의 데이터 타입(분류_[class])의 포인터를 사용하기 위해서는 상당한 노력이 필요 할것 같습니다. 혹시 쉬운 방법은 없나요? - [이승한]
"사용자 정의 데이터 타입의 포인터를 사용하기 위해서는 상당한 노력이 필요할 것 같습니다" - 어떤 뜻인지? 힘들었던 예를 코드로 써주면 더 명확할 듯.~ --[1002]
- SeparatingUserInterfaceCode . . . . 14 matches
전에 TDD 기사 썼을때 읽으면서 굉장히 감명깊었던 구절. 디자인에서 로직/UI 분리가 어떻게 이루어져야 하는가를 아주 간단하면서도 명료하게 말해준다. 개인적으론 RefactoringBook 을 읽었을때보다 이 글을 본 것이 더 충격적이였던것으로 기억된다. (특히, RefactoringBook 을 읽었을때보다 상대적으로 디자인에 대한 지식이 더 있었을때임에도 충격이 더 컸음에.) :
When separating the presentation from the domain, make sure that no part of the domain code makes any reference to the presentation code. So if you write an application with a WIMP (windows, icons, mouse, and pointer) GUI, you should be able to write a command line interface that does everything that you can do through the WIMP interface -- without copying any code from the WIMP into the command line.
도메인모델로부터 프레젠테이션 부분이 분리되었을때, 도메인 코드의 어떠한 부분도 presentattion 코드와 관련이 없도록 해야 한다. 그리하여 만일 WIMP GUI 어플리케이션을 작성했을때 당신은 WIMP 인터페이스를 통해 할 수 있는 모든 것들을 command line interface 로 작성할 수 있어야 한다. WIMP 코드로부터 어떠한 코드도 복사하지 않고.
이는 UI 부분에만 적용되지 않는다. 일종의 InformationHiding 의 개념으로 확장할 수 있다. 예를 들면 다음과 같이 응용할 수 있지 않을까.
도메인모델로부터 퍼시스턴스 부분이 분리되었을때, 도메인 코드의 어떠한 부분도 퍼시스턴트 레이어 코드와 관련이 없도록 해야 한다. 만일 MySQL Repository을 작성했을때 당신은 MySQL 인터페이스를 통해 할 수 있는 모든 것들을 Flat File Repository interface 로 작성할 수 있어야 한다. MySQL 코드로부터 어떠한 코드도 복사하지 않고.
너무 이상적이라고 말할지 모르겠지만, DIP 의 원리를 잘 지킨다면(Dependency 는 Abstraction 에 대해서만 맺는다 등) 가능하지 않을까 생각. 또는, 위에서의 WIMP를 그대로 웹으로 바꾸어도. 어떠한 디자인이 나올까 상상해본다.
- SuperMarket/세연/재동 . . . . 14 matches
== 나름대로 고쳐본 소스 ==
if(tempMoney > 0)
else
if(choice>0 && choice<4) {
if((_money - (_product[choice-1].cost * quanty)) >= 0) {
else
else
if(choice>0 && choice<4) {
if((_product[choice-1].quanty - quanty) >= 0 ) {
else
else
1. 우선 169 라인에서 141 라인으로 소스를 17% 줄임
2. 중복된 곳이 많던 buy()함수와 cancel()함수를 집중적으로 수정
4. getMyMoney() 함수를 public에서 private로 변경
- TheGrandDinner/하기웅 . . . . 14 matches
- 그렇게 배치 시키다가 자리가 남지 않아 배치할 수 없는 순간이 오면 그 배치 뿐만 아니라 다른 어떤 방법으로도 배치가 불가능하다.
- 어느 한팀의 인원이 테이블의 수보다 많아버리면 무조건 배치가 불가능해진다.
- 팀의 이름표를 붙이고 그 상태에서 인원이 많은 순으로 정렬
- 테이블의 이름표를 붙이고 그 상태에서 자리가 많은 순으로 정렬
- 0을 만나지 않고 다 배치시키고 나면 '1'을 출력하고 사람에게 메겨진 테이블 번호의 작은 순으로 정렬 후 출력
cout << "1" <<endl;
cout <<endl;
if(team[i].memberNum>input2)
if(nTable[j].chairNum>0)
else
if(input1==0 && input2==0)
if(matchingTable())
else
cout << "0" <<endl;
- TugOfWar/문보창 . . . . 14 matches
백트래킹문제. 따져줘야 하는 가지수가 적은 경우 최적화된 알고리즘을 찾는 것 보다는 그 가지수를 모두 따지는 것이 유리할 수도 있다.
if (sumleft <= sumright)
if (j != 0)
else
if (j != 0)
if (gap == 0)
if (gap < 0) // 왼쪽편이 가벼울때
if (abs(gap) > abs(abs(gap) - (2 * (right[k] - left[j]))))
else // 왼쪽편이 무거울때
if (gap > abs(gap - (2 * (left[j] - right[k]))))
if (sumleft > sumright)
cout << tugwar[i].left << " " << tugwar[i].right << endl;
if (i != nCase - 1)
cout << endl;
- WikiProjectHistory . . . . 14 matches
기존에 열렸던, 완성 or 유보 프로젝트들.
|| ["MineFinder"] || ["1002"] || 2002.2.20~3.1. Win 지뢰찾기의 지뢰 찾아주는 프로그램 제작 || 종료 ||
|| ["MFCStudy_2001"]|| 6명 || 2001.2학기~ 2002.1 MFC 를 이용한 개인 프로그램 작성||종료||
|| ["자바프로젝트/방화벽팀메신저"] || ["상협"], 태성, 종운, 기웅 || 자바 메신저 제작 프로젝트 || 종료 ||
|| ["SharpZeroJavaProject"] || ["[Lovely]boy^_^"], ["snowflower"] || 자바 온라인 게임 프로젝트 || 종료 ||
|| ["KDPProject"] || ["1002"], ["neocoin"], ["comein2"], ["JihwanPark"] || Design Pattern Study. Wiki 활성화 첫 프로젝트. 종료후 남은 Pattern 은 개인적 담당. || 종료 ||
|| ["PhotoShop2003"] || ["인수"], 철민, ["상협"] || 학교 프로젝트 || 종료 ||
|| ["비행기게임"] || ["상협"], ["[Lovely]boy^_^"], ["신재동"] ||Python 으로 만드는 비행기 게임|| 종료 ||
|| ["3DAlca"] || ["상협"] || 3D로 만드는 알카로이드 || 종료 ||
|| ["제로Wiki"] || ["상협"] || 위키 포탈 || 종료 ||
|| ["OpenGL_Beginner"] || ["neocoin"] || OpenGL의 기초를 공부하고, 3D로 바꿀만한 꺼리를 찾는다. ||유보||
["프로젝트분류"]
- ZeroPage소개 . . . . 14 matches
* 위키 5000번째 페이지 기념으로 만들어 보았습니다.
* 지금 쓰는 것의 느낌은 2012년이 어떠할지를 쓰는 느낌보다는 2011년을 보고, 1학기를 시작하기에 앞서 어떠했고, 어떠할거 같다라는 느낌으로 써보자는거에요~ 또, ZP의 전반적인 분위기와도 관련되있을거구요. - [김태진]
* 변하지 않는 ZeroPage만의 가치를 말하는군요. 이에 대한 의견은 설문조사등으로 원하는 ZeroPage상에 대해 의견을 모아보는 것도 좋겠네요. 다만 일관성있는 가치를 세우는게 좋겠습니다. 언행일치정도? - [서지혜]
* 네, 바로 그거 말하는거에요. 사실 저번 회고때 물어봤어야 했는데, 깜빡했네요. -[김태진]
[제로페이지]는 공부하고자하는 뜻이 있는 사람들이 모인 일종의 인력의 장입니다. 그 안에서 뜻이 같은 사람들을 만날수 있기를, 또는 자신이 아는 것에 대해 다른 사람들에게 전달해줄수 있기를, 또는 자신의 부족한 점을 다른 사람들로부터 얻어갈 수 있었으면 합니다. 개인의 이익들이 모여서 집단의 이익을 만들어가며, 집단의 이익을 추구하는 것이 곧 개개인들에게 이익이 되는 경지가 되었으면 합니다.
여러가지 힘든 여건 속에서도 뜻이 있는 사람들의 수고와 노력으로 지금까지 이어져 온라인/오프라인 활동을 계속하고 있습니다. 지금까지의 ZeroPage 는 ZeroPage를 거쳐간 사람들이 만들어놓은, 혹은 현재 활동중인 사람들의 과정에 대한 결과이며, 다시 많은 사람들에 의해 재창조되고 새로운 모습을 만들어나가게 될 것입니다. 언제나 '현재 진행형' 중인 학회이기를. 이 정의 또한 사람들이 스스로 깨뜨리고, 더 좋은 방향으로 바꾸어나가기를.
* ZeroPage는 컴퓨터공학부 내에 있는 학술 동아리로서, 올해 21년째를 맞이 하고 있습니다. ZeroPage에서는 Computer Science&Engineering 전반에 걸쳐 구성원들이 하고자하는 분야를 탐구하고, 프로젝트를 진행하고 있습니다. 또, 매주 정모를 통해 구성원들과 자신의 스터디, 프로젝트 진행사항들을 이야기하고 각종 세미나들을 통해 자신이 알고 있는 것을 다른 사람들과 공유하여 구성원들 모두가 함께 발전해나가고자 하는 동아리입니다. 또한 새싹교실과 데블스 캠프와 같이 동아리 구성원이 아닌 학우들도 함께 참여할 수 있는 프로그램을 통해 함께 발전해나가고자 하고 있습니다.
- ZeroWiki/Mobile . . . . 14 matches
* => 페이지를 불러와 이를 다시 바꿔야 하므로 직접 연동에 비해 느리며 서버에 부하를 줌. 하지만 위키 HTML 소스 분석만 하면 됨
개인적으로는 JSP로 해보고 싶다는 생각을 가지고 있지만 따로 공부를 해야 해서...
모바일 환경에서 열람만 가능할 것인가? 편집도 가능하게 할 것인가? 편집을 할 경우 편집 도구라던가 [AJAX]라던가 어떻게 해야 하나 고민이 있음
=== 프로젝트로 수행? ===
[정모/2011.3.21]에서 일단 말해보고, 반응 살펴보고, 반응 그닥이면 개인프로젝트로 진행 - [강성현]
* 올해 졸업하신 14기 [이승한] 선배님께서 모니위키 모바일 프로젝트를 진행하고 계십니다.
* http://framework.zend.com/manual/en/zend.http.html
만약 그래도 별개의 프로젝트로 진행하고 싶다면 [http://jquerymobile.com/ jQuery Mobile]을 사용하시는 것을 추천합니다. - [변형진]
- [Lovely]boy^_^/EnglishGrammer/PresentAndPast . . . . 14 matches
* 우리말로 하자면 현재 진행형. 말하는 시점에서 그 일이 진행되고 있음. 아직 끝나지 않음
ex) I'm reading an interesting book at the moment. I'll lend it to you when I've finished it.
(일반적이고 반복적으로 일어나는 일을 표현할때 단순 과거를 쓴다. 말하는 시점에서 일어나는지 안일어나는지는 중요하지 않음)
In the following examples do is also the main verb( do가 메인 동사로 쓰일때도 있다. )
ex) When temporary situations : I'm living with some friends until I find an apartment.
understand believe remember belong contain consist depend seem
When think means "believe" do not use the continuous (think가 believe의 의미로 쓰일때는 진행형 불가)
When have means "possess" do not use the continuous (have가 가진다의 의미로 쓰일떄 역시 진행형 불가)
We normally use the simple present(not continuous) with these verbs.(우리말로 지각동사에는 단순현재)
B. Very often the simple past ends in -ed (꽤 자주 -ed로 끝난단 말입니다.)
D. We often use the simple past and the past continuous together to say that something happened in the middle of something else.
ex) When Beth arrived, we had dinner.( = Beth arrived and then we had dinner.)
ex) We were good friends. We knew each other well.(not We were knowing)
- django/Model . . . . 14 matches
모델은 웹 어플리케이션에서 사용할 데이터를 명세한 python소스코드이다. 모델은 데이터베이스와 연동되며, 간단한 경우 모델 하나가 데이터베이스 테이블 하나로 매핑된다. 따라서 웹 개발자는 데이터베이스를 직접 손대지 않고 소스코드인 모델을 변경해가면서 작업을 진행할 수 있다. 모델을 변경할 때마다 django에서 제공하는 manage.py syncdb를 이용하면 변경된 모델이 데이터베이스 테이블에 반영된다.
모델은 사용자가 지정하지 않는 경우 기본적으로 id라는 이름으로 정수형 주키를 가진다.
모델에 해당하는 테이블을 생성하는 SQL문은 {{{python manage.py sql <app name>}}}으로 확인할 수 있다. 위에 해당하는 SQL문은 다음과 같다.
혹은 모델이 되는 클래스의 이름을 문자열로 지정할 수도 있다. 이는 클래스를 정의하는 순서에 상관없이 한 모델이 다른 모델을 참조할 수 있도록 한다.
다 대 다 관계에서는 어느 한 쪽 모델에 다 대 다 관계임을 표현한다. 하지만 양쪽 모두에 다 대 다 필드를 설치하면 안된다. Django는 다 대 다 관계인 경우 이를 표현하는 테이블을 자동으로 생성한다. 다음은 Employee와 Deparment모델 사이에 다 대 다 관계를 나타내고 있다.
다대다 관계는 좀더 복잡해질 수 있다. 두 모델 사이에 관계에 해당하는 테이블이 또다른 속성이 필요한 경우이다. 이 때는 중간 역할을 하는 모델을 직접 생성하고 양쪽 모델을 참조하도록 만든다. 다음은 RiskReport와 ControlReport사이 다 대 다 관계에서 보고된 위험에 대해서 대처 방안이 적절했는지 평가하는 is_vaild속성을 가지는 RiskControl모델을 보여주고 있다.
하지만 이 경우 risk_report와 control_report의 합성키를 사용하도록 지원하지 않는다.
Django는 정의한 모델에 Admin클래스를 재정의해서 이를 삽입, 삭제, 갱신할 수 있는 기본적인 관리자 인터페이스를 자동으로 생성해준다. 사용자 인터페이스는 입력 항목을 원하는대로 배치할 수 있으며, 원하는 디자인도 적용할 수 있다. 이것으로 기본적인 입력 시스템은 만들어졌다.
- html5/form . . . . 14 matches
* HTML5 의 Canvas를 지원하지 않는 IE8 이전 버전을 위해 ExplorerCanvas(http://code.google.com/p/explorercanvas/) 라이브러리가 제공되듯이 HTML5 확장 폼을 지원하지 않는 브라우저의 경우 WebForm2 라이브러리를 사용할만 하다
* http://nz.pe.kr/wordpress/programming/html5/번역-지금-바로-cross-browser-html5-form-만드는-방법
* search 타입, 전화번호 입력을 위한 tel 타입, 리소스 주소 입력을 위한 url 타입, 이메일 입력을 위한 email 타입, 색상 입력을 위한 color 타입 등이 새로 추가
* 참고: 새로운 입력(input) 양식에 대한 다음 글을 참고하기 바란다
* {{{<input type='file' accept="image/gif">}}}
* form 으로 전송되고, 값을 사용자가 조정 불 가능하다.
* 공개키기반의 키 쌍을 생성하며 폼 전송 시 공개키가 서버로 전송된다.
* min, max 로 최소값과 최대값(임계치)를 설정하며 현재 사용량의 정도(낮음, 높음, 적정)을 나타내는 low, high, optimum 속성이 제공된다.
* {{{<input type=email>}}}에 입력된 값이 이메일 패턴과 다를 경우 폼은 전송되지 않고 에러 메시지를 표시해 준다.
* 입력 양식에 pattern 속성으로 정규표현식으로 입력 패턴을 지정할 수 있다
* 글이 입력될 때 마다 아래로 복사하고 글자 수를 표시하는 코드
* [http://www.w3.org/TR/html5-diff/ w3c:HTML5 differences from HTML4]
- minesweeper/Celfin . . . . 14 matches
if(mine[j][i]!='*')
if(mine[j-1][i-1]=='*')
if(mine[j-1][i]=='*')
if(mine[j-1][i+1]=='*')
if(mine[j][i+1]=='*')
if(mine[j+1][i+1]=='*')
if(mine[j+1][i]=='*')
if(mine[j+1][i-1]=='*')
if(mine[j][i-1]=='*')
cout << "Field #"<<field<<":"<<endl;
cout<<endl;
if(x==0 && y==0)
if(blank++!=0)
cout << endl;
- woodpage/쓰레기 . . . . 14 matches
DeleteMe 아니..22이 늙었다뇨. 흑... 그럼 선배들은 어쩌라고여...^^;; 현대 의학기술로 보아 아직 여태까지 산 것의 4배는 더 살텐데..-.-
*JSP 웹프로그래밍 (출판사: 가메)
*C로배우는 알고리즘 1,2 (출판사: 세화)
*실시간 전략 게임 프로그램 (출판사: 정보문화사)
*C++ 3D 게임 프로그래밍 (출판사: 혜지원)
: JBuilder 아주 편한 툴이라는걸 알았고 예전에 본 자바(아주로우한)를 툴만으로 구현해줌 --; 한마디로 삽질이었음(내생각)
*JSP 웹프로그래밍
: 여름방학때 잠시 봤었지만 책이 맘에 안들어서 그냥 있었음 우연히 도서관에서 내가가진 책을 보완해주는 책(JSP 프로페셔널 출판사 가메)이 있어서 같이 봄 웹프로그램은 눈에 보여좋음 ^^;; 게시판을 MVC 2모델로 짰는데 좀나중에 MVC 1모델로 짜볼것임
== 진행중인 프로젝트 ==
- 데블스캠프2005/월요일/BlueDragon . . . . 14 matches
if self.place == '청룡탕' and not self.aDragon.die:
if self.place == '할매동산':
if not self.aTrasure.open:
if self.hasKey:
print '보물상자를 열쇠로 엽니다.'
else:
if room != self.place:
place = raw_input("어디로 갈까요?")
if self.place != '청룡탕':
if self.aDragon.hp <= 0:
else:
if self.aUser.hp <= 0:
if __name__ == '__main__':
print '어디로 갈까요?'
- 데블스캠프2006/월요일/연습문제/if-else/이차형 . . . . 14 matches
== 데블스캠프2006/월요일/연습문제/if-else/이차형 ==
if (n>=50 && n<=100)
if (i%3==0)
if (i%5==0)
else
if else 2번째문제
if(n>=48 && n<=57)
else if(n>=92 && n<=122)
else if(n>=65 && n<=90)
else
- 데블스캠프2010/다섯째날/ObjectCraft/미션3/김상호 . . . . 14 matches
if(b.hp<=0 || a.hp<=0)
if(b.hp==0)
int defenderunit = rand() % 2;
attack(a[attackerTeam * 2 + attackerUnit],a[(!attackerTeam) * 2 + defenderunit]);
if(a[0].hp<=0 && a[1].hp<=0)
if(a[2].hp<=0 && a[3].hp<=0)
int defenderunit = rand() % 2;
a[attackerTeam * 2 + attackerUnit].attack(a[(!attackerTeam) * 2 + defenderunit]);
if(a[0].is_dead() && a[1].is_dead())
if(a[2].is_dead() && a[3].is_dead())
if(b.hp<=0 || this->hp<=0)
if(b.hp==0)
if(this->hp<=0)
else
- 데블스캠프2012/넷째날/묻지마Csharp/Mission3/김수경 . . . . 14 matches
private void startBtn_Click(object sender, EventArgs e)
if (!timer1.Enabled)
else
if (++milli == 10)
if (++second == 60)
if (++minute == 60)
private void timer1_Tick(object sender, EventArgs e)
private void stopBtn_Click(object sender, EventArgs e)
private void recordBtn_Click(object sender, EventArgs e)
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
if (disposing && (components != null))
/// Required method for Designer support - do not modify
this.SuspendLayout();
#endregion
- 문자반대출력/문보창 . . . . 14 matches
음 만약에 한글과 같은 확장문자가 담겼다면 process_wchar() 함수에서 약간의 꼼수를 부린다. 가상의 예(실제로 이렇게 되지는 않지만, 원리는 같음)를 들어보자. "가나" 라는 문자열을 ver1과 같은 통상의 프로그램으로 뒤집으면 "나가"와 같이 프로그래머가 원했던 결과가 나오는 것이 아니고 "ㅏㄴㅏㄱ"가 나온다. 그렇다면 확장문자를 판단해서 문자열을 뒤집기 전에 "가나"라는 문자열을 "ㅏㄱㅏㄴ" 이렇게 만들어 놓는다면 기존 ver1의 프로세스를 전혀 바꾸지 않고도, process_wchar()만을 추가하는 것으로 원했던 기능을 모두 수행하게 된다.
reverse(str.begin(), str.end()); // 문자열을 거꾸로 해주는 STL 함수
// 파일로부터 문자열을 읽어들인다.
==== ver2 (확장문자까지 판단해서 반대로 한다) ====
reverse(str.begin(), str.end()); // 문자열을 거꾸로 해주는 STL 함수
if (str[i] < 0 && str[i + 1] < 0)
// 파일로부터 문자열을 읽어들인다.
- 새싹교실/2012/도자기반 . . . . 14 matches
뭐든 몸으로 직접 해봐야 익혀지니까요..?!
그 다음 뭘 할까 고민하다가 C수업시간에 한 것들을 복습해 보기로 하고
그래서 일단 C에서 자주 사용되는 자료형과 변수 선언& 초기화 방법 그리고 기본적인 연산자 순으로 스터디를 진행했습니다.
마지막으로 입출력 기본 함수 사용법을 알려준 후 C수업시간에 한 예제들과 간단한 과제들을 직접 해보게 시켰습니다.
이것을 끝으로 스터디가 끝났습니다.
그리고 2주차에 일정조정에 실패하여 2,3주차를 일요일에 하기로 했습니다.
* 다양한헤더파일을 설명해줬습니다. 2주차 예제에 새로 등장한 stdlib.h, time.h 에 포함되는 간단한 함수들을 설명했습니다. 그리고 #define을 쓰는 이유도 설명했습니다. 랜덤변수를 얻기 위한 rand함수와 사용법 등을 알려주면서 다시 한번 winapi.co.kr 에 대해서도 언급했습니다. 또한 srand(time(NULL))을 사용하여 씨드를 설정해줘야 매번 다른 값이 나오는 것도 설명 했습니다.
또한 switch문에서 조건에 들어가는 변수에 따라 접근하는 case가 정해지는 것과 각 case 마지막에 break을 걸어주지 않으면 그 밑의 모든 case가 실행되는 것도 설명했습니다. 그리고 논리연산(AND(&&), OR()||)에 대해서도 간단하게 설명했습니다. 특히 OR연산에서 || 이 모양이 어딨는지 몰라서 헤매고 있어서 안타까웠습니다...
구조체 선언 방법과 typedef를 쓰는 이유를 설명 하는데 구조체 예제 안에 배열이 있어서 배열에 대해서 먼저 설명했습니다. 배열의 이름이 갖는 의미와 인덱스로 접근가능한 자료구조라는 것을 설명했습니다. 그 다음으로는 미뤄왔던 함수에 대해서 설명했습니다. 이번에도 예제로 설명하려 했는데 파라미터로 포인터를 받아오기에 먼저 포인터에 관한 설명을 했습니다. swap예제를 사용하여 call by value 기반의 C에서 포인터를 사용하여 call by reference를 구현 할 수 있다고 설명했습니다. 그리고 배열접근 방법에 인덱스와 배열이름+숫자 로 접근하는 방법도 알려줬습니다.
* 박환희 - 오늘은 제어문에 대한 내용을 배웠고 느낌은 마음이 편하였고 제어문에서는 이러한 종류가 있다는것을 알았고 앞으로 문법을 좀더 익혀야겠다는것을 생각했습니다.
- 새싹교실/2012/새싹교실강사교육/3주차 . . . . 14 matches
코딩을 하다 보면 자신의 코드를 다시 한번 점검해야 하는 경우가 꼭 생깁니다. 하지만 항상 문제가 생기죠. 이게 main문의 괄호(curly bracket : {} ) 인지 for문의 {} 인지 헷갈릴 때가 있죠? 이번 시간 이후에 한번 검색해보세요. 코딩 띄어쓰기, 괄호를 어떻게 붙여야 하는지에 대해서 말입니다. 꼭! 잊지 마세요. 중요하답니다.
printf("칼로리 계산기\n");
if(mode == 0) break;
else if(mode == 1) cal_num = calregist(cal, cal_num);
else if(mode == 2) printf("총칼로리 : %6.2fkcal\n\n", calcalc(cal, cal_num));
printf("그 식품의 칼로리를 입력하세요[kcal/100g] : ");
printf("식품명(end를 입력하면 계산합니다.) : ");
if(strcmp(name, "end") == 0)
if(strcmp(name, (pcal+i)->name) == 0){
컴퓨터 관련 자유주제에 대해 조사해오세요~! 구글 협업문서로 조를 이루어 해봅시다.
- 새싹교실/2012/앞부분만본반 . . . . 14 matches
이에 대한 기하학적 표현으로
Ax=b 에서 A : coefficient matrix (계수 행렬) -> mxn행렬일 경우 -> 방정식의 수 : m 미지수의 수 : n
-> 연립일차방정식을 matrix equation 꼴로 거기에 더나아가 augmented matrix 꼴로 나아가는 뱡향으로 설명함
E.R.O는 reversible 하므로 그에 대한 inverse E.R.O를 설명함.
2. C 프로그램의 완성과정
4. 주석이 들어가야 완성된 프로그램
3 -> 문제 1. 다음과 같은 형식으로 본인의 이름을 출력하는 프로그램을 완성해보자 .
문제 2. 본인의 이름, 주소, 그리고 전화번호를 모니터에 출력하는 프로그램을 작성해보자.(\n을 사용)
A system of linear equation is said to be consistent if it has either one solution or infinitely many solutions; a system is inconsistent if it has no solution.
A L.S has a solution 이라는 말이 관사 a 에 초점을 맞추어 exactly one solution으로 이해하는 애들이 있기 때문에
- 스터디지원 . . . . 14 matches
* 제로페이지에서는 제로페이지 구성원으로 구성되어진 스터디, 프로젝트를 대상으로 지원을 하고 있습니다.
* 다른 소모임과 협의하에 회식 지원을 없애는 쪽으로 합의하였습니다.
* ~~제로페이지 내에서 진행되는 스터디와 프로젝트에 대해, 한 달 한도 금액(인당 1만원) 내에서 식비로 사용하고 월말에 정산하는 방식입니다.~~
* ~~조건~~
* ~~한 달 안에 스터디와 프로젝트가 2회 이상 진행되어야 하고 그 진행 상황을 위키에 기록하여야 합니다.(다른 곳에 기록 후 링크로 대체 가능)~~
* ~~위키에 등록되어 있는 스터디와 프로젝트이어야 합니다.~~
* [정모/2016.3.30]에서 스터디 및 프로젝트 지원금과 관련된 내용 정리가 필요하다고 해서 recall함. - [김민재]
- 유혹하는글쓰기 . . . . 14 matches
''독자가 그렇듯이 작가도 처음에는 등장 인물에 대하여 그릇된 인식을 가질 수 있다는 깨달음...정서적으로 또는 상상력의 측면에서 까다롭다는 이유만으로 어떤 작품을 중단하는 것은 잘못''
''정말 심각한 잘못은 낱말을 화려하게 치장하려고 하는 것으로...애완동물에게 야회복을 입히는 것''
''지옥으로 가는 길은 수많은 부사들로 뒤덮여 있다..잔디밭에 한 포기가 돋아나면 제법 예쁘고 독특해 보인다. 그러나 이때 곧바로 뽑아버리지 않으면...철저하게(totally), 완벽하게(completely), 어지럽게(profligately) 민들레로 뒤덮이고 만다.''
학교에서 글쓰기 강의를 들은지 2년여 만에 흥미로운 글쓰기 강좌를 들은 셈이다. 소설가 입담이 어디 갈까 싶게 어릴 적 이야기부터 시작해서 글쓰기로 입문해 가는 과정을 거쳐 자연스럽게 창작론으로 넘어간다. 그렇다고 창작론 역시 따분한 이론이 아닌 덕분에 끝까지 빠져들 수 있었다.
프로그래밍에 적용시켜도 좋은 교훈도 얻을 수 있었다. 워낙 글쓰기와 프로그래밍이 비슷하기 때문이리라. 나에게는 까다로운 작업을 하다가 포기한 경험이 있기에 작가의 말이 쓰디 쓴 약이 될 것 같다. 슬쩍 피해갈 수 없다. 지름길도 없다.
* 기억에 남는 것은 인위적으로 플롯을 만들어서 이렇게 해야지 하면서 창작을 하는것이 아니라, 작가 자신도 쓰면서 앞날을 알 수 없다고 한다. 뭔가 와 닿는게 있다. 그리고 자신이 잘 아는 내용(배경)에 대해서 써야 좋다는 것도 알았다.
- 정규표현식/스터디/메타문자사용하기 . . . . 14 matches
* 윈도우 시스템에서 폴더의 구분을 역슬래시(\)로 하는 반면에 리눅스 시스템은 슬래시(/)를 사용한다. 따라서 이것을 변경하기 위해 사용할 수 있다.
메타문자는 일반적으로 두 가지 범주로 나뉜다.
* 정규 표현식 문법의 일부로 쓰는 문자(ex : [])
정규표현식 검사를 할때 공백문자를 검색해야할 경우도 있다. 공백문자는 다음과 같이 나타낼 수 있다.
자주쓰는 문자 집합들은 특수한 메타 문자로 대신하여 찾기도 한다. 이런 메타 문자들을 문자 클래스(classes of characters)라고 부른다. {{{[0-9]}}} = {{{[0123456789]}}} 와 같은걸 알것이다. 이것을 {{{[0-9]}}} 보다 더 편한게 찾으려면 '\d'로 찾을수 있고 제외하고 찾기는 '\D'로 {{{[^0-9]}}}를 대신할수 있다.
위와 보면 깨달을수 있다시피 정규 표현 문법은 대소문자를 구별하며 소문자와 대문자를 서로 반대임을 뜻한다.
그것은 다음의 예문으로 본보기로 할것이다.
위의 예문에서는 정규표현식이 숫자로만이 이루어진것도 찾을수 있어야하지만 찾지 못하는걸 볼수있다.
'\x'를 붙여 10진수 10은 '\x0A'로 표현할수 있다. 이 문자를 사용한다면 '\n'과 기능이 같다
* 문자와 문자 집합으로 찾는 기본 내용은 2장과 3장에서 모두 배웠고, 이 장에서는 특정 문자나 전체 집합 혹은 문자 클래스와 일치하는 메타 문자를 소개했다. 이렇게 메타 문자와 포직스 클래스는 정규 표현식 패턴을 단순하게 만든다.
- 정모/2003.9.23 . . . . 14 matches
* 앞으로 회의는 격주 월요일 6시에 진행하기로 하였습니다.
* 다음 회의는 10/6일 예정이지만, 이날 회의진행자(영동)이 축제 자봉단인 관계로 회의가 가능할 지 모르겠습니다. 추후에 회의를 미루는 공지를 하거나 아니면 01 선배님 한분께서 맡아서 해주실 겁니다. -영동
* 회비를 걷는 쪽으로 나가겠습니다.
* 재동이형께서 개인적으로 친분이 있는 고대의 동아리 주체의 세미나에 제로페이지 일부 회원들이 참석하기로 했습니다. 일단 날짜는 10/4에 고대 쪽으로 갈 예정입니다.
* 파이선 스터디: 현재 1주째 진행으로 문법을 익혔으며 2주째는 리얼타임멀티플레이어게임프로젝트로 휴강했습니다.
* 리얼타임멀티플레이어게임프로젝트(RTMPGP): 1주 진행했고 어떻게 짤까와 메인프레임을 논의했고, Python으로 짤 예정입니다. 총 4주과정입니다.
* MFC: 조만간 2학년 MFC프로젝트가 진행될 예정입니다.
- 정모/2004.12.20 . . . . 14 matches
* 제로페이지의 방학기간중 활동방향을 이야기함.
* 프로젝트 결성.
* 서버를 어디로 이동할지 정함.
더 나아지도록 앞으로 많이 노력하겠습니다!! 앞으로도 부족한 부분 고쳐야할부분 언제든 말씀해 주십시요!! 꼭 이요!!
회의에서는 겨울방학에 진행할 프로젝트에대한 대략적인 이야기를 많이 했고 후에 제로페이지 서버에 대한이야기도 있었습니다.
제로페이지 서버는 연구실이나 서버실로 옮기기로 했으며, 나휘동, 곽세환, 이승한이 관심있으신 교수님께 연락하기로 하였습니다. >__<ㅋ
겨울방학 프로젝트에 대해서는 [겨울과프로젝트] 을 참조해 주세요~ ^ ^
관련페이지 : [정모], [겨울과프로젝트]
- 정모/2012.4.30 . . . . 14 matches
그런데 LTE는 LTE와 LTE-advanced로 나뉘는데 LTE는 IMT-2000에 포함되고
wibro는 WiMAX 프로토콜을 이용한 상표명입니다. wibro의 경우 IEEE 802.16e 표준을
바탕으로 하고 있는데 4G는 IEEE 802.16m 표준을 이용한 기술을 말하므로 wibro가
3G의 경우는 CS(circuit switched)망과 PS(packet switched)망을 이용하는데 통화에는
CS망, 인터넷 사용에는 PS망을 사용합니다. 반면에 LTE의 경우는 인터넷 사용시에
PS망을 이용하고 통화시에는 현재 3G용으로 구축된 CS망을 사용하고 있습니다.
나중에 기술이 발전하면 PS망을 통하여 통화와 인터넷 양쪽을 다 처리할 것으로 보입니다.
* 새로운 지원사업입니다.
* 포트폴리오와 같이 계획서나 완성품에 대한 설명이 필요한데, 회장한테 제출하면 지원사업 선정시 프로젝트 지원금 드립니다.
== 스터디/프로젝트 ==
* 일단 듣고 적은 대로 LTE 내용을 적긴 했는데 심히 미심쩍다...... 제대로 적은 게 맞을까...
- 정모/2012.7.18 . . . . 14 matches
* [김민재]학우의 DEP(Data Execute Prevention) : 실행 불가능한 메모리 영역에서 프로그램을 실행시키는 것 방지.
* 만약 예정 일자까지 장소를 못 잡았을 경우에는 날짜가 변경될 가능성도 있음.
* [http://www.gpvilla.net/ 가평펜션] <- 여기로 예약했습니다.. 슈퍼는 멀 거 같네요 -_-
== 스터디/프로젝트 ==
* 스프링 - 목요일로 연기.
* 안드로이드 도서관 - 학교 도서관의 도서 신청 과정이 무척 불편하다 -> 안드로이드로 책의 바코드를 찍으면 도서관에서 책이 신청 되도록 하는 것이 목표. 현재 바코드 처리 부분을 만들고 있음. [ISBN_Barcode_Image_Recognition]
* Project Supply - 현재 UI 작성 일단 완료. 앞으로 LocalMap이나 건설 부분 기획 + 구현 예정.
* 방학이라 인원이 적네요. 펜션 어디 할까 하다가 제 맘대로 예약했습니다. (토달지 마삼. 환불하면 또 일 복잡해짐.) 가평으로 갑니다. 안에서만 놀거 같으니 TV 큰거 있는 곳으로 (쿨럭).. 그리고 서울어코드사업 관련해서 문서 작성을 해야 되는데 아무런 양식이 올라오지를 않아서 뭐 어쩌라는거지 라고 고민 중입니다. 일단 활동 한거 위주로 좀 모아봐야겠네요. 그리고 대외활동 하기가 참 난감하네요. 뭘 해야할지도 가닥이 잡히질 않고.. 아흠.. - [권순의]
* 사람이 적은 건 내려간 사람도 많고 하기 때문에 좀 어쩔 수 없지 않나 싶네요. 개인적인 이미지로는 ZP 사람들은 인도어 파니까 공간이 넓은 게 역시 가장 좋지 않을까 생각합니다. 저번 주에 이어서 이번 주에도 정모 정리를 조금 해 봤는데 괜찮게 했나 좀 궁금하네요 - [서민관]
- 황현/Objective-P . . . . 14 matches
== Specification (Draft) ==
Objective-J의 경우처럼, 클래스의 선언과 정의를 동시에 한다. (사실 PHP의 구조상, 이럴 수 밖에 없다.)
다만, @implementation만 사용하면 @interface가 외로워하니까, 인스턴스 변수의 선언에는 @interface를 사용하도록 하고, 메소드 선언 및 정의에 @implementation을 사용한다.
@private // 요건 비지빌리티 인디케이터. 옵셔널하다. :) 생략하면 기본값으로 @protected 적용.
@end
@end
컴파일 이후, 위 코드는 최종적으로 다음과 같이 변해야 한다. (PHP 5 객체 모델)
GNAssert()의 경우, 두 번째 인자로 @"문자열"을 받지만, 결과적으로는 컴파일 이후 GNString으로 변해야 한다.
class MyFirstObjPClass extends GNObject implements GNSomeProtocol {
if($_objp_type_check===true) {
if(is_int($localIntegerVar)===false)
- 2학기파이선스터디/문자열 . . . . 13 matches
* 굳이 C로 비유하자면 배열과 비슷하다. (비슷하다는 얘기는 다르다는 얘기)
* 문자열 정의는 '(작은 따옴표) 혹은 " (큰 따옴표) 로 정의할수 있다.
* 작은 따옴표 혹은 큰 따옴표를 세개 연속 사용해서 정의하는 경우 쓰는 그대로 정의됨.
* 자주 쓰일거라고 예상 되는것 중심으로 편집.
>>> s.'''upper'''() # 대문자로 변환
>>> s.'''upper'''().'''lower'''() # 대문자를 소문자로 변환
'I like programing' # 첫 문자를 대문자로
>>> u .'''split'''() # 공백을 기준으로 분리
>>> u.'''split'''('and') # 'and' 를 기준으로 분리. 'and'는 리스트에 없음.
>>> ':'.'''join(t)''' # ':' 문자로 결합. 틀리기 쉬우니 주의할것!!
>>> print '\n'.join(t) # 줄바꾸기로 결합.
* 파이썬에서 주석을 추가하는 방법으로는
- 8queen/민강근 . . . . 13 matches
if(arr[(a+i)%8][b]==1)
if(arr[a][(b+i)%8]==1)
if(arr[a+w][b+h]==1)
if(arr[a+w][b+h]==1)
if(arr[a+w][b+h]==1)
if(arr[a+w][b+h]==1)
cout<<endl;
if(arr[(a+i)%8][b]==1)
if(arr[a][(b+i)%8]==1)
if(arr[a+w][b+h]==1)
if(arr[a+w][b+h]==1)
if(arr[a+w][b+h]==1)
if(arr[a+w][b+h]==1)
- APlusProject . . . . 13 matches
SE Project 9조 입니다. 잠시 제로페이지 위키에 기생합니다.
Upload:Chasedocument.zip -- 재동오빠가 추적하라는거 할려고 했는데 아무래도 이거는 프로그램 아는 사람이 해야할듯한데요
어떻게 연결되어있는지 알수가 음서요;;그리구 오빠가 대강 적은 테이블 이해안가던데요. 제 생각으로는 이 추적문서를 다른 조가 우리조 심사할때
보기 좋고 바로바로 알려주기 위해서 준비한다고 생각했는데 요구사항 번호 이런게 있으면 옆에 요구사항 간단한 언급도 필요할 것 같더라구요
현재 이곳에 올려 놓는 자료는 모두 암호를 가지고 있습니다. SE 수업이 끝나면 모든 소스와 문서는 공개할 예정입니다. 혹시 파일 다운을 못받으신다면 '인터넷 익스플로어'에서 도구 -> 인터넷 옵션 -> 고급 -> 'URL을 항상 UTF-8로 보냄'의 체크를 없애고 재부팅 해야 다운 받으실 수 있습니다. (파일 이름의 한글이 문제입니다)
TestDrivenDevelopmentByExample - TDD 입문서. 한서 있음. QA와 Eng는 필독.
Visual C# .NET 2003 실전 프로젝트 -영진닷컴 Ch3 ~ Ch7
Upload:OTF.zip - OTF 프로그램. 우리가 개발해야할 바로 그 액셀 파일. (SE 교수님의 저작권 보호로 당연히 암호가 걸려 있습니다.)
오늘로써 긴 프로젝트의 마무리. --재동
- A_Multiplication_Game/권영기 . . . . 13 matches
long long int n, start1, end1, start2, end2;
if(cnt % 2 == 1){
if(temp * 9 < start)temp++;
else{
if(temp * 2 < start)temp++;
end1 = start2 - 1;
if(start1 <= 1 && 1 <= end1)break;
swap(end1, end2);
if(cnt % 2 == 1)printf("Stan wins.\n");
else printf("Ollie wins.\n");
- AcceptanceTest . . . . 13 matches
AcceptanceTest는 UserStory들에 의해서 만들어진다. Iteration 동안 IterationPlanning 회의때 선택되어진 UserStory들은 AcceptanceTest들로 전환되어진다. Customer는 해당 UserStory가 정확히 구현되었을때에 대한 시나리오를 구체화시킨다. 하나의 시나리오는 하나나 그 이상의 AcceptanceTest들을 가진다. 이 AcceptanceTest들은 해당 기능이 제대로 작동함을 보장한다.
AcceptanceTest는 blackbox system test 이다. 각각의 AcceptanceTest는 해당 시스템으로부터 기대되는 결과물에 대해 표현한다. Customer는 AcceptanceTest들에 대한 정확성을 검증과, 실패된 테스트들에 대한 우선순위에 대한 test score를 검토할 책임이 있다. AcceptanceTest들은 또한 production release를 위한 우선순위의 전환시에도 이용된다.
UserStory는 해당 UserStory의 AcceptanceTest를 Pass 하기 전까지는 수행되었다고 생각할 수 없다. 이는 새로운 AcceptanceTest들은 각 Iteration 때 만들어져야 함을 뜻한다.
QualityAssurance (QA)는 XP process의 주요 부분이다. 몇몇 프로젝트들의 QA는 분리된 그룹으로부터 수행되어지지만, 어떤 프로젝트들에서의 QA는 개발팀 스스로에 의해 수행되어진다. 각각의 경우에서 XP는 좀 더 QA와 관계있는 개발을 요구한다.
AcceptanceTest는 자동으로 수행되어져야 하며, 또한 그렇기 때문에 자주 실행될 수 있다. AcceptanceTest score는 개발팀에 의해 점수가 매겨진다. 매 Iteration에 대해 실패한 AcceptanceTest를 수정하기 위한 시간분배 스케줄에 대해서 또한 개발팀의 책임이다.
'AcceptanceTest'란 이름은 본래 'FunctionalTest' 로부터 온 것이다. 이는 ''Customer의 요구사항에 대해 system이 'acceptable' 함을 보증한다''라는 본래의 의도를 더 충실히 반영해준다.
["ProjectPrometheus"] 진행중에 ["1002"] 와 ["상민"]은 AcceptanceTest 를 작성하며 진행하였다. 주로 Python 을 이용하여 간단한 web bot 를 작성, 시스템이 잘 작동하는지에 대해 자동테스트를 구현했다.
(["ProjectPrometheus/AcceptanceTest"], 소스는 ZeroPageServer 의 CVS 프로젝트들중 AcceptanceTestServer 참조)
- ActiveXDataObjects . . . . 13 matches
{{|Microsoft ADO (ActiveX Data Objects) is a Component object model object for accessing data sources. It provides a layer between programming languages and databases, which allows a developer to write programs which access data, without knowing how the database is implemented. No knowledge of SQL is required to access a database when using ADO, although one can use ADO to execute arbitrary SQL commands. The disadvantage of this is that this introduces a dependency upon the database.
마이크로소프트 ADO(ActiveX Data Objects)는 데이터 소스에 접근하려고 고안된 COM객체이다. 이것은 프로그래밍 언어와 데이터 베이스 사이의 층을 만들어준다. 이 층은 개발자들이 DB의 구현부에 신경쓰지 않고 데이터를 다루는 프로그램을 작성하도록 해준다. ADO 를 이용할 경우, 데이터베이스에 접근하기 위해서 SQL 을 알 필요는 없다. 물론, SQL 커맨드를 수행하기 위해 ADO 를 이용할 수 있다. 하지만, SQL 커맨드를 직접 이용하는 방법은 데이터베이스에 대한 의존성을 가져온다는 단점이 있다.
{{|In the newer programming framework of .NET, Microsoft also present an upgraded version of ADO called ADO.NET, its object structure is quite different from that of traditional ADO. But ADO.NET is still not quite popular and mature till now.
새로운 프로그래밍 프레임웍인 .NET에서 MS는 ADO의 업그레이드 버전인 ADO.NET을 만들었다. ADO.NET의 객체 구조는 기존의 ADO와는 꽤 다르다. 하지만 ADO.NET은 아직까지는 대중화되거나 성숙화되지 못했다.
ADO 는 ActiveX 이므로 C++ 이건 VB 이건 Python 이건 어디서든지 이용가능. 하지만, 역시나 VB 나 Python 등에서 쓰는게 편리. 개인적으로는 ODBC 연동을 안하고 바로 ADO 로 C++ Database Programming 을 했었는데, 큰 문제는 없었던 기억. (하긴, C++ 로 DB Programming 할 일 자체가 거의 안생겨서..) --[1002]
- AdventuresInMoving:PartIV/김상섭 . . . . 13 matches
=== 그리디로 ===
if(station[now].price > station[search].price)
if(station[search].length - station[now].length >= tank)
else
else
if(maxminprice > station[search].price)
if(now + 1 == search && station[now].length + go < station[search].length)
if(maxmin)
if(station[maxmin].length - station[now].length >= tank)
else
cout << cost << endl;
if (i != numCase - 1)
cout << endl;
- AdventuresInMoving:PartIV/문보창 . . . . 13 matches
if (100 - station[1].length < 0 || j < 100 - station[1].length)
else
if (numStation == 1)
if (totalLength - station[numStation].length > 100 || station[1].length > 100)
else
cout << d[1][totalLength - station[numStation].length + 100] << endl;
if (k - getDistance(i) < 0 || d[(i-1)%2][k] >= MAX_NUM || j < k - getDistance(i))
if (cost < min)
if (d[numStation%2][j] < MAX_NUM && d[numStation%2][j] < min && j - (totalLength - station[numStation].length) >= 100)
if (min >= MAX_NUM)
cout << min << endl;
if (i != numCase - 1)
cout << endl;
- AnEasyProblem/강소현 . . . . 13 matches
bit 연산이 익숙치가 않아, 10진수 -> 2진수 변환해서 배열에 넣었습니다ㅠㅠ(끝내고 다시 반대로..;ㅁ;..이런 비효율적인!)
1이란 숫자를 찾았을 때 그 앞의 숫자가 0이면 1을 앞으로 보내고, 1이면 맨 끝쪽으로 보내는...
if(i == 0)
if(bin[num] == 1){
if(bin[num+1] == 0){
}else{
* 클래스 이름은 항상 "Main"으로 해주어야 합니다. 깜찍한 poj 같으니:)
* 2^20 = 1048576 으로 1000000보다 크니까 배열의 크기를 20으로 잡았었는데, 1과 0을 옮기면서 이 숫자보다 더 커지는 경우를 고려하지 못했습니다. 그 결과 1~1000000 중에서 4개의 숫자가 맨 앞의 1이 짤려서 숫자가 작게 출력된! ;ㅅ; 언뜻 보길래 맞은 줄 알아서 뻘짓을 많이 한 ㅋㅋ poj는 죄가 없어! 내가 바보임 ㅠㅠ
* 제가 처음에 하다하다 안되서 10진수를 2진수로 표기하려고 했다가 그게 매우 어렵다는걸 깨달았죠...; 배열로 하는 방법도 있었군요. -[김태진]
- Apache . . . . 13 matches
무료 웹 서버 프로그램.
지속적으로 패치가 발표 되고 있다.
최근 정부 프로젝트도 아파치가 도입되고 있다고 한다.
JSP를 돌리기위해서 mod_jk로 jsp 를 tomcat 에 넘겨주는 방식으로 운영되고 있음. tomcat webserver로 접속하려면, [http://zeropage.org:8080]으로 접속하면 됨.
비슷한 놈으로는 InternetInformationService (IIS) 가 윈도우 환경에서 MS에 의해서 제공되고 있음.
XP Pro에는 기본적으로 깔리는 놈이라서 윈도우 환경에서 개인 서버 돌리기에는 편함.
Starting httpd: httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
* [http://www.wallpaperama.com/forums/how-to-fix-could-not-determine-the-servers-fully-qualified-domain-name-t23.html 위문제상황해결링크]
- 레드햇계열은 yum 으로, 데비안 계열은 apt로 설치가능하다는걸 말해주는걸 까먹었다..-_- - 임인택
- BasicJAVA2005 . . . . 13 matches
- JAVA라는 언어를 가지고 어느정도의 프로그램을 짤 수있게 '''기초를 다지기!!'''
- 으헛 저책으로 하는건가...... 상협이한테 뺏어야겠네..;;; - 선호 ([snowflower])
- 새로 참여합니다 ㄳ - 태훈
- 자바언어에 대한 Tip - 자바 소스코드는 유니코드체계를 따르도록 설계되어있습니다. 그러므로 코드를 영어로만 구현해야하는 C/C++보다 매우 큰 융통성을 발휘하죠.
예를 들면, 변수도 한글로 사용이 가능합니다. (예를 들어서 String 임시 = "임시변수입니다."; 이런식으로 작성이 가능하다는 이야기죠.) - 도현
- 정말 이책 싫당..ㅠㅠ 빨리 팔아 버리고 다른 책으로 바꿔야징.;; -수생
질문 !! 이클립스 쓰는데, run as에 이상한 JUnit Plug-in Test 이런거만 있는데, 어떻게 정상적으로 java application 나오게 하죠? -- 허아영
* 8주차를 마지막으로 강의(?)는 마칠까 합니다. 앞으로 Java로 졸업작품(?)을 만들어볼까 하는데... 좋은 의견 있으면 내 주세요 --선호
[겨울방학프로젝트/2005]
- C++Seminar03 . . . . 13 matches
* 매주 월요일 오후6시부터 시작하여 10시를 maximum 으로 한다.
* CS 에 등장하는 기본적인 개념이나, 프로그래밍을 하는데 기반이 되는 지식에 대해 간단한 세미나를 하기도 한다.
1. 사회자 한명과 2인 1PC 또는 3인 1PC 로 PC 1대당 한조가 되어 PairProgramming 식으로 진행. 사회자는 간단한 개념을 설명하고 개념에 대한 실습(?) 또는 적용된 코드작성을 Pair 해본다. (이런식으로 진행할경우 장소에 문제가 될 수도 있을것 같네요. 실습실 하나를 제로페이지가 점령할수도 없는 일이고..-_- 강의실에서 간단한 설명 -> PC 실로 이동.. 정도가 대안이 될까요? ) --["임인택"]
* ZeroPage 홍보를 위한 수단중의 하나로 C++ Seminar 가 개최되었으면 합니다. 현재 회장님께서 생각하시는 바가 DevilsCamp 이전까지는 준회원체제로 운영되다가 DevilsCamp 이후로 정회원을 뽑는 방식이 좋다는 쪽인것 같은데 일단 입학실날의 강의실홍보 이후로 C++ Seminar 를 여는게 새내기들의 관심을 모으는데 좋을 것 같습니다. --["임인택"]
["프로젝트분류"]
- CPPStudy_2005_1/STL성적처리_4 . . . . 13 matches
sort(students.begin(),students.end(),compare);
ifstream fin("input.txt"); // fin과 input.txt를 연결
temp.score.erase(temp.score.begin(),temp.score.end());
//fin >> a >> b; // cin으로 화면에서 입력받는다면, fin은 연결된 파일로부터 입력받는다.
//fout << a+b << endl; // cout으로 화면으로 출력한다면, fout은 연결된 output.txt에 a+b를 출력
for(iter i = students.begin(); i != students.end(); i++)
i->total_score = accumulate(i->score.begin(),i->score.end(),0);
for(si_iter i = students.begin(); i != students.end(); i++)
for(int_iter j = i->score.begin(); j != i->score.end(); j++)
cout << i->total_score << " " << i->total_score/4 <<endl;
- ClearType . . . . 13 matches
Microsoft 에서 주도한 폰트 보정 기법의 하나로 기존의 안티얼라이징 기법과 최근에 나오고 있는 LCD Display 의 표현적 특성을 조합하여 폰트 이미지의 외관을 가히 극대화하여 표현하는 방식.
LCD 디스플레이는 RGB의 색상체를 각 픽셀당 하나씩. 즉, 1개의 픽셀에 3개의 색상 표현 요소를 가지고 있다. 기존의 방식은 해당 픽셀을 하나의 요소로만 판단하여 폰트를 보정하여 출력해왔던 반면 ClearType 은 해당 픽셀의 3가지 요소를 개별적으로 컨트롤해서 표현하는 방식을 취한다.
Upload:beonit:Antialias-vrs-Cromapixel.gif
그림을 보면 잘 이해할 듯. 4번째의 경우가 클리어 타입이 사용하는 방식이다.
* [MicroSoft]에서 개발한 텍스트 벡터드로잉 방법.
* 텍스트 벡터 드로잉
* 컴퓨터 Display 에서 bitmap으로 표현되는 글자들의 가독률이 나빠, 종이에 인쇄되는 것과 같은 수준의 글자 가독률 얻기 위해서 만들어 졌다.
* 억지로 적용을 할수는 있지만 '를' 과 같은 글자는 '■' 처럼 보이기도 한다고 한다.
* 특허문제로 Adove, Linux, Apple 들이 각 다른 방식의 벡터 드로잉 방법을 가지고 있다고 한다.
* [http://www.microsoft.com/typography/cleartype/tuner/Step1.aspx ClearType Tuner]라는 프로그램으로 세부적인 클리어타입 셋팅을 할 수 있다.
- CrackingProgram . . . . 13 matches
7/26일 두번째로 발표한 주제입니다
== 간단한 프로그램 ==
== 간단한 암호입력 프로그램 ==
if (!strcmp(pass, "12345"))
cout << "correct passwd" << endl;
else
cout << "wrong passwd" << endl;
9: if (!strcmp(pass, "12345"))
10: cout << "correct passwd" << endl;
00401390 push offset @ILT+120(std::endl) (0040107d)
11: else
12: cout << "wrong passwd" << endl;
004013B0 push offset @ILT+120(std::endl) (0040107d)
- Curl . . . . 13 matches
Curl은 미국 MIT(매사츄세츠 공과대학)의 연구 프로젝트에서 시작된 새로운 Web 언어입니다. 서버에 대부분의 처리가 집중되는 기존의 웹 어플리케이션과는 달리 클라이언트측에서 대부분의 처리를 실행하는 「리치·클라이언트」를 실현할 수 있는 점이 최대의 특징입니다. 실현 가능한 어플리케이션을 중심으로 Curl의 전모를 알아 보도록 하겠습니다.
한편, Web 어플리케이션의 과제가 표면화하고 있습니다. 처리가 서버에 너무 집중된다는 것이 가장 큰 문제점으로 거론되고 있습니다. 시스템 관리의 편리성이라는 관점에서 보면「클라이언트 측에는 Web 브라우저만 있으면 된다」라는 것은Web 어플리케이션의 아주 큰 장점입니다만, 그 때문에 클라이언트측의 “표현력이 약하고”, “조작하기 어렵고”, “응답 속도가 느리다” 등의 문제점이 부각되고 있습니다.
Upload:curl_implementation.gif
기술적으로는 최근에의 Ajax, Flex(MacromediaFlash) 등의 리치 클라이언트 기술들과 같은 분류로 묶일 수 있을듯. 다른 기술들과의 차이점으로는 어떤게 있는지? --[1002]
Ajax프로그래밍을 해본적이 없어서 Gmail에서 관찰한 내용을 기준으로 해보면... 아마도 curl 로 만들어진 빠른 속도의 애플리케이션을 이용해서 좀더 다양한 처리 같은게 가능하지 않을까요? 뭐 그래픽 에디터를 activex를 이용하지 않고도 만들 수 있다던지.. 그리고 네트워크가 disconnect된 상태에서 사용자가 작업한 내용을 보관하고 있다가 connect된 상태로 바뀌면 작업을 처리하는 일같은 것도 가능할 것 같고요.(ajax가 jscript+dhtml을 이용한 기술이라고 아는데 이런것도 가능한지는 모르겠네요.;;) 아무래도 로컬의 runtime위에서 작동을 하는 만큼 유저의 입장에서 좀더 다양한 상용의 용도가 있을 것이라는 생각이드네요. 물론 runtime 이 있기 때문에 상업적 표준이 되기전에는 기업용 시장에서만 팔릴 것들에만 쓰일지도 모르겠고요. - [eternalbleu]
- DermubaTriangle/하기웅 . . . . 13 matches
if(s==e)
if(eExp-sExp==0)
if((eNum-sNum)%2==0)
else
else
if(sNum%2==0)
else
if(eNum%2==0)
else
if(second>first)
cout << getDistance(first, second)<< endl;
else
cout << getDistance(second, first)<< endl;
- Devils . . . . 13 matches
Devils ( Developers' Idols ) 란, 과거에 [제로페이지]가 한해 70명~80명의 인원을 넘어서 너도나도 [제로페이지] 시절(19xx년~?)에 엘리트 주의를 표방하며 등장한 두개의 소모임([데블스],[폴리곤]) 중 하나이다.
두 단체의 차이점은, [데블스]는 다수 회원이 겹쳤지만, [제로페이지]와 완전한 독립 단체를 선언하고 활동하였으며, [폴리곤]은 [제로페이지]내의 작은 소모임으로 존재한다.
이 두 단체는 [제로페이지]의 규모가 작아지고, 과거의 시작 멤버 이후로 모임의 강도가 약해지면서 [제로페이지]와 통합하였는데, [데블스캠프]는 [데블스]의 정신을 이어 받은 신입생을 위한 밤새기 세미나로 남아 있다.
[Devils]의 발음에 대한 토론은 굉장히 많았으며, 창립멤버들이 '''[데블스]'''로 읽기로 결정해서 의견을 존중한다.
그냥 [제로페이지]다. :)
[제로페이지분류]
- DoWeHaveToStudyDesignPatterns . . . . 13 matches
제 개인적인 의견으로는, 다른 것들과 마찬가지로 뭐든지 공부한다고 해서 크게 해가 되지는 않겠지만(해가 되는 경우도 있습니다 -- 다익스트라가 BASIC을 배워 본 적이 있는 학생은 아예 받지 않았다는 것이 한 예가 될까요?) 공부해야 할 필요가 있겠는가라는 질문에는 선뜻 "그렇다"고 답하기가 쉽지 않습니다. 여기에는 몇가지 이유가 있습니다. (제 글을 "DesignPatterns를 공부하지 마라"는 말로 오해하지는 말아 주기 바랍니다)
우선 효율성과 순서의 문제입니다. DesignPatterns는 이미 해당 DesignPatterns를 자신의 컨텍스트에서 나름대로 경험했지만 아직 인식하고 있지는 않는 사람들이 공부하기에 좋습니다. 그렇지 않은 사람이 공부하는 경우, 투여해야할 시간은 시간대로 들고 그에 비해 얻는 것은 별로 없습니다. 어찌 보면 아이러니칼하지만, 어떤 디자인 패턴을 보고 단박에 이해가 되고 "그래 바로 이거야!"라는 생각이 든다면 그 사람은 해당 디자인 패턴을 공부하면 많은 것을 얻을 겁니다. 하지만, 잘 이해도 안되고 필요성도 못 느낀다면 지금은 때가 아니라고 생각하고 책을 덮는 게 낫습니다. 일단은 다양한 프로그램들을 "처음부터 끝까지" 개발해 보는 것이 중요하지 않나 생각합니다. (see also [WhatToProgram])
다음은 우선성의 문제입니다. 과연 DesignPatterns라는 것이 학부시절에 몇 달을 투자(실제로 제대로 공부하려면 한 달로는 어림도 없습니다)할만 한 가치가 있냐 이거죠. 기회비용을 생각해 봅시다. 좀 더 근본적인 것(FocusOnFundamentals)을 공부하는 것은 어떨까요?
- GameProgrammingGems . . . . 13 matches
위의 Game Programming Gems는 게임에 쓰이는 전반적인 알고리즘(2D, 3D, AI(길찾기 포함))들을 전반적으로 대부분 다루어 놓고 얼마나 효율적인 프로그래밍을 할 수 있고 어떻게 해야 가능한 가를 보여주는 책이 되겠다. [[BR]]
이 책은 원서도 있고 한서도 있다. 번역 수준은 탁 봤을 때 괜찮은 수준.... 책값이 없는 관계로(솔직히 영어 수준이 떨어지므로) 한서를 선택해서 읽고 있다 [[BR]]
이 책의 저자는 수십 명이다. 10명 정도는 알고 있어도 수십 명이 지은 책은 처음 일 것이다.... 나도 그렇다 ^_^; 이 책은 수십 명의 게임 프로그래머들이 자신의 노하우를 적어놓은 책이라고 하는 편이 정확하다. 즉 정보의 공유를 주장하면서 만든 책이 된다. 물론 자신이 열심히 만든 소스를 그냥 공개하자~ 라는 것은 아니다(그래주면 고맙겠다 -.-) 허나 자신은 어떤 알고리즘으로 구현했다던가, 혹은 VC++과 다이렉트 엑스를 사용할 때는 어떻게 하면 어떤 환경에서 구현하면 좋다던가 하는 건 알려주면 고맙겠지? 이 책은 그런 목적으로 쓰여진 책이 되겠다.
물론 책 다보기다 -.- 그러나 그걸로는 조금 부족하고.... 상걸고 게임 대 잔치(.... 이미 한게임에서 하고 있다 -_-)등에 출전하여 당당하게 상 따보자.... 라는 것이다.... -_-; 현재 필자는 직업을 가져서 조금 힘들지 모르지만 .... 필자가 이르노니 해보고 후회하는 게 낫기 때문에.... 이런 미친 프로젝트를 계획하고 있다. -_-V
일단 책 순서대로 할 것이다.... 만 필자의 주특기중 하나는 모르는 부분 술렁술렁 넘기기가 있다 --V 그러니 필자가 잘 모르는 부분은 대충대충 설명하고 끝낼 것이다. 우헤우헤 .... 이것이 바로 주체측의 농간이라는 것이다 -_-; 그리고 업데도 그렇게 기대하지 말자 --; 필자는 직업인데다가 바쁘다 -.-
=== 프로그래밍 기법들 ===
4. 필명을 X로 쓰는 사람은 나 밖에 없잖아 ^_^ --X
- JavaStudyInVacation/과제 . . . . 13 matches
* 어느 프로그램이든 가장 기초가되는 Hello World 를 출력하는 프로그램 짜 오기
* 첫째날 만들었던 버튼을 누르면 간단한 메시지를 출력하는 자바 에플리케이션을 에플릿으로 바꿔보기.
'''''여기서부턴 각자 하지 말고 팀으로 같이 할것!'''''
* 클라이언트가 접속되면 클라이언트의 IP 주소와 포트를 출력해주고, 클라이언트로 "ABCDEFG" 라는 문자열을 보내준다.
* 클라이언트로부터 연결이 끊기면 프로그램을 종료한다.
* 명령어 라인 인자로 접속할 서버 에플리케이션이 있는 IP 주소와 포트를 입력받아 서버에 접속한다.
* 서버로부터 문자열을 받아 화면에 출력해준다. ("ABCDEFG" 가 나와야 한다.)
* 서버와 접속을 끊고 프로그램을 종료한다.
* 가로, 세로, 대각선 중 하나라도 먼저 만든 플레이어가 이긴다.
* 두 명의 플레이어는 네트워크로 연결되어 게임을 한다.
- JollyJumpers/서지혜 . . . . 13 matches
if(feof(stdin)) break;
if(feof(stdin)) break;
if(count == 1)
if(isJ[index]) {
if(isJ[i]==true);
else {
if(i==count-1) goto JOLLY;
if(count==2&&isJ[1])
if(feof(stdin)) break;
if(feof(stdin)) break;
if(isJ[index]) {
if(isJ[i]) continue;
else {
- LispLanguage . . . . 13 matches
* 그 다음으로 친절해 보이는 설명서.
* emacs라는 IDE는 lisp을 통해 제어할 수 있다. 심지어 거대한 lisp 인터프리터라고 불리기까지 한다. 이 글은 비록 emacs를 쓰기 위해 부가적으로 lisp을 설명하는 수준이지만, 몇 안되는 한국어 lisp 설명글이므로 참고를 위해 링크를 걸어 둔다.
(if (> x 0)
하면 dribble 내의 코드만 ""안의 경로의 파일명으로 저장됨
필요시 clisp에서 (load "/home/test.lisp")을 하면 로드됨}}}
하면 세션이 lispinit.mem으로 저장됨
* Common Lisp the Language, 2nd Edition by Guy L. Steele Jr. : 역시 책이라서 체계적으로 잘 나와 있다.
[http://www.clisp.org/ CLISP] : [Commom Lisp](ANSI 표준으로 지정된 Lisp 방언)의 구현체 중 하나.
[http://clojure.org/ Clojure] : Rich Hickey가 제작한 Lisp 방언 중 하나. JVM 상에서 돌아가는 Lisp 구현체로, Java API를 직접 불러서 사용하는 것이 가능하다.
[1002]의 경우 XLISP 라는 윈도우용 프로그램 사용했었다. 언어 자체를 익히는데 최소한의 기능을 제공하는 인터프리터.
- MFC/DeviceContext . . . . 13 matches
윈도우 운영체제에 의해서 정의된 데이터 구조. 윈도우 운영체제가 장치에 비종속적인 GDI 함수로, 출력 요청을 처리하는 출력장치에 대한 작업으로 해석가능하다. DC에 대한 포인터는 윈도우의 API함수를 호출함으로써 얻을 수 있다.
|| MM_TEXT || x는 좌에서 우로 갈 수록 커지고, y는 위에서 아래로 갈수록 커진다. ||
|| MM_LOENGLISH || x는 좌우서 우로 갈 수록 커지고, y는 가장 상단에서 그 위로 갈 수록 커진다. 0.01inch 단위 ||
|| MM_HIENGLISH || x는 좌우서 우로 갈 수록 커지고, y는 가장 상단에서 그 위로 갈 수록 커진다. 0.001inch 단위 ||
|| MM_LOMETRIC || x는 좌우서 우로 갈 수록 커지고, y는 가장 상단에서 그 위로 갈 수록 커진다. 0.1mm 단위 ||
|| MM_HIMETRIC || x는 좌우서 우로 갈 수록 커지고, y는 가장 상단에서 그 위로 갈 수록 커진다. 0.01mm 단위 ||
- MFCStudy2006/1주차 . . . . 13 matches
* MFC를 이용한 기본적인 프로그래밍
* MFC 프로그래밍을 하는데 있어 기본적으로 생성되는 5개의 클래스와 그 함수의 쓰임을 알아오시오.
* 메신저로 결과물 결정
* '''3팀으로 나눠서 파트별로 프로그램 짜기.''' (제비뽑기로 결정.ㅜㅜ;)
* 로그인 & 로그아웃
if( !CFrameWnd::PreCreateWindow(cs) )
// TODO: Modify the Window class or styles here by modifying
- NumberBaseballGame/jeppy . . . . 13 matches
if (num[0] == num[1] || num[0] == num[2] || num[1] == num[2])
else strncpy(number_log[i], num, 3);
if (i<1) number[i] = num;
else
if (number[j]==num) i--;
else number[i] = num;
if (dest_num[i] == src_num[j])
if (i == j) strike++;
else ball++;
if (strike == 3) {
else
if (strike == 0 && ball == 0)
else printf("%dstrike %dball\n", strike, ball);
- RAD . . . . 13 matches
우수한 소프트웨어 개발 도구를 이용하여 전통적인 개발 방법보다 더 적은 시간과 비용으로 더 좋은 품질의 소프트웨어를 개발하는 방법.
전통적인 소프트웨어 개발 방법(waterfall 모델)은 오랜 기간의 분석, 설계, 프로그래밍 그리고 테스트 과정을 되풀이한 후 최종 단계에서 비로소 사용자가 요구한 시스템을 완성할 수 있었다. 그러나 이와 같은 방법으로는 소프트웨어의 생명주기가 점차 짧아지는 등의 급변하는 프로그램 시장과 사용자의 요구를 수용하기가 매우 어렵다. 따라서 소프트웨어의 생산성을 향상시키면서 동시에 개발 기간과 비용을 단축시킬 수 있는 방법이 요구되었고, 이러한 연구의 결과로 RAD와 같은 개념이 등장하게 되었다.
RAD는 우수한 소프트웨어 개발 도구를 이용하여 전통적인 개발 방법보다 더 적은 시간과 비용을 투자하더라도 보다 나은 품질의 소프트웨어를 개발할 수 있는 소프트웨어 개발 과정을 말한다. 이러한 RAD 방식의 개발은 응용 프로그램의 전체 개발 과정을 하나로 통합하여 기존의 반복적이고 점진적인 소프트웨어 개발 과정은 그대로 수용하면서도, 개발 과정 초기에 사용자에게 실행 가능한 기본적인 프로토타입을 제시하여 사용자의 요구를 훨씬 더 명확하게 수용하여 차후에 일어날 수 있는 많은 문제를 줄이고, 설계 과정을 그대로 개발에 재사용함으로써 전체적인 개발 기간의 단축을 꾀하는 것을 목적으로 한다.
- Random Walk2/곽세환 . . . . 13 matches
ifstream fin("input.txt");
if (cx == -1)
else if (cx == n)
if (cy == -1)
else if (cy == m)
if (array[i][j] == 0)
if (flag == false)
if (flag == false)
else
fout << cnt << endl;
fout << endl;
- RandomWalk . . . . 13 matches
바퀴벌레는 임의의 한 점에서 시작하여서 임의의 방향으로 움직이게 된다. 이미 지나갔던 자리에 다시 갈 수 있으며 프로그램은 바퀴벌레가 각 위치에 몇번 갔는지 기억하여야 한다. 프로그램은 바퀴벌레가 모든 지점에 적어도 한번 이상 도달하였을 경우 끝난다. 바퀴벌레는 가로, 세로, 대각선으로 한칸 씩만 움직일수 있으며, 바퀴벌레가 움직이는 방향을 랜덤하게 만드는 것은 각자가 생각해 보도록 한다.
* 입력 : 격자의 가로, 세로 크기, 바퀴벌레의 초기 위치
* 격자의 가로, 세로의 크기를 입력받을때. 엄청나게 큰 크기를 입력하면 어떻게 할 것인가? 배열의 동적 할당을 이용해서 2차원배열을 어떻게 사용할까? (c/c++은 자바와 달리 2차원배열을 동적할당 할 수 없다. 따라서 각자가 pseudo (혹은 imitation) dynamic 2D array 를 디자인하여야 한다)
* 할수 있다. 자바와 비슷한 모습으로 --["상민"]
* 아래와 같은 예제 식으로 소스를 만든 페이지에 넣어 주세요.
- RedThon/HelloWorld과제 . . . . 13 matches
* HelloWorld를 .py파일을 실행해서 HelloWorld출력하기(3가지로) 힌트 : 클래스, 함수, 그냥
* 주말에 남는 시간을 투자하면 충분히 할 수 있으리라 생각합니다. 꼭 3가지로 하지 않아도 여러가지 방법이 있을 테니 한 번 시도해 보세요. --[Leonardong]
python.py 로 저장해서..실행하는거 알아내는데..별짓을 다해본거 같네요...ㅋ
숙제를 나름대로.해봤습니다.
다음..함수를 이용한...나름대로..함수이길..바라고 있음...;;
결과는 아래로....옆으로..가게..절대..못함..
* 참고 하세요. 그러나 이것도 무조건 공백이 들어가서 안되는군요.
약간..변형으로..
* 문자열를 변수에 할당해서 그냥 출력(print), 리스트를 함수에 전달인자로 넘겨준 다음 루프를 써서 출력, 문자열을 함수에 전달인자로 넘겨준 다음 루프를 써서 출력하는 세가지 방법으로 숙제를 잘 했네.
형.혹시나 숙제 기다릴꺼 같아서..나름대로..해봤어..^^;;
- STL/map . . . . 13 matches
for(map<int, int>::iterator i; i = m.begin() ; i != m.end() ; ++i) {
<< "value: " << (*i).second << endl;
=== 프로그램의 예 ===
cout << "전화 번호부의 내용은 " <<endl;
for ( ; i != directory.end();i++)
<< " 전화번호: " << (*i).second << endl;
cout << "입니다. "<<endl;
if ( name.compare("exit") ==0)break;
if (directory.find(name) != directory.end())
else
warning 의 이유는 STL에서 나오는 디버그의 정보가 VC++ 디버그 정보를 위해 할당하는 공간(255byte)보다 많기 때문입니다. 보통 디버그 모드로 디버깅을 하지 않으면, Project setting에서 C/C++ 텝에서 Debug info 를 최소한 line number only 로 해놓으면 warning 는 없어 집니다. 그래도 warning 가 난다면 C/C++ 텝에서 Generate browse info 를 비활성(기본값)화 시키세요.
- TheOthers . . . . 13 matches
PL 마지막 팀 프로젝트 "The Others"팀의 프로젝트 페이지
* Weekly Report Manager? 주로 회사 같은 데서 많이 쓰는 금주 했던 일에 대한 결산 레포트이다. 어느 일을 몇시부터 몇시까지 했으며, 그 일의 종류는 무엇이며, 주별로 통계를 내어, 어느 프로젝트에 몇시간을 투자했고 자기개발에 몇시간을 투자했는지 등등을 적어 회계용도로 쓰이기도 한다.
* MFC(또는 Win32 API)로 DB와 GUI 코딩하기
* Delphi로 DB와 GUI 코딩하기
* Python으로 DB와 GUI 코딩하기
* Specification (SVN의 UIProtoType 폴더 참고)
* 아 씽 로스트 생각나자녀.. ㅋㅋ --인택
* 으흠... 로고는 구해보려고 했는데 화질의 압박이... 좋은 카메라좀 빌려줘 --[snowflower]
* 내가 너희팀 로고를 만들어 ㅤㅂㅏㅆ다 인수는 지우겠지 ㅡ,.ㅡ;; --[eternalbleu]
- TugOfWar/김회영 . . . . 13 matches
if(nPeople%2==1)
else
if(j<nPeople/2)
else
//cout<<endl<<leftTotal<<" "<<rightTotal<<endl;
cout<<endl<<leftOfTotal[j]<<" "<<rightOfTotal[j];
cout<<endl;
if(nTempGap*2 <= gap && nTempGap>= 0 && nTempGap>nMaxGap)
if(nMaxGap>0)
//오름차순으로 정렬을 수행합니다.
if(array[i]>array[j])
접근 방식이 굉장히 새로와서 놀랬어요~>__<ㅋ - [이승한]
- WeightsAndMeasures/신재동 . . . . 13 matches
if(numsStr == ['']):
if(weight == 0 or strength == 0):
turtles.append(Turtle(weight, strength))
if(t1.canAmount > t2.canAmount):
elif(t1.canAmount < t2.canAmount):
if(canAmount >= t.weight):
if(canAmount > t.canAmount):
pile.append(t)
if __name__=='__main__':
sort()에 비교 함수('''turtlesCompare''') 넣는데 은근히 힘들었음. 처음에는 C++의 STL에서 vector에 비교 함수 넣는 것과 같으리라고 생각하고 비교 함수를 만들었는데 안되서 확인해보니 파이썬의 리스트에서는 결과를 '''{-1, 0, 1}'''로 해야지 제대로 돌아간다는 것을 알았음. --재동
클래스를 사용한다면 스스로 어떻게 정렬될지 아는 놈으로 만드는 것도 좋겠다.
- WordPress . . . . 13 matches
MovableType이 유료화의 길을 걷기 시작한뒤 그 뒤를 바짝ㅤㅉㅗㅈ고 있는 설치형 Blog. 오픈소스로 개발되고 있으며 php 를 기반으로 동작하며, 충실한 플러그인 기능이 인상적이다. 기본적으로 css 를 통한 블로그 디자인이 가능했으며, 현재는 테마기능역시 지원하고 있다.
기본 인코딩으로 utf-8을 채택했기 때문에 technorati 와 같은 메타 블로그 검색엔진에도 연동이 가능하며, 앞으로의 인코딩에도 큰 문제가 없을 것으로 기대된다.
특징적인 강점으로는 mt에 비해서 굉장히 설정이 간편하고, configuration 이 엄청나게 간단하다.
기존에 egloos, tattertools 를 이용하던 분들이라면 아래의 툴로 간편하게 이주하는 것이 가능하다.
워드프레스로 만들어진 블로그 호스팅 사이트. 현재는 초대의 형식으로만 가입이 되는 상태이다.
- ZeroPageServer/set2005_88 . . . . 13 matches
2005년 8월을 기점으로 ZeroPageServer 관련 기록
* Kernel 업그레이드 2.6.12.1 데비안 기본 커널로 변경
* JSP Container 변경 : 톰캣 5.5.9. (컨테이너 변경에 따라서 jdk1.5.0-4로 변경)
* 리부팅후 jsp container 가 자동으로 미시작되던 문제 해결
* SSH의 pair key 로그인 환경설정 (~/.ssh/authorized_keys 파일을 통해서 가능함)
* 커널 2.6으로 업데이트 후 네트워크 반응속도 향상. 신규 하드의 IO성능 향상. (2.4 커널의 장치 드라이버 문제로 느린 IO를 보였던 것으로 추정)
* pair key 사용으로 굳이 패스워드를 외울 필요없음 ^^ㅋㅋ;
각 사용자의 자신의 public_html 디렉토리를 이용해서 '''jsp, php, perl, python''' 등의 웹 프로그래밍이 가능하다.
* ZeroWiki - moinmoin 0.10 으로 돌리는중
* 다양한 프로그래밍 환경
* 총 3개의 하드디스크가 서버에 부착되어 있으며, 이중에 가장 오래된 것은 현재 쓰지 않는 관계로 코드를 빼놓은 상태이다.
- django/RetrievingObject . . . . 13 matches
데이터베이스에서 레코드를 조회할 때는 Model클래스를 관리하는 Manager클래스를 이용한다. 가장 간단하게는 모든 레코드를 가져오는 방법이 있는데, 모델마다 기본적으로 제공되는 object라는 매니저를 이용한다. object 매니저로 레코드를 조회하면 QuerySet이 반환된다. 이는 관계형 데이터베이스 CLI인 JDBC의 ResultSet과 유사하다.
한 모델에 대해서는 여러 가지 필터를 설치할 수 있다. 필터는 SQL문에서 where절에 해당하는 역할을 한다. 필터에는 검색하는 컬럼의 완전 일치, 부분 일치, 사이 값, 포함, 연월일 옵션을 줄 수 있다. 기본적으로 필터는 AND 조합으로 이루어지며, OR조합을 사용하고 싶다면 Q라는 쿼리 오브젝트를 사용해야 한다.[9] 아래는 필터를 이용해 보고 날짜가2006년 10월 1일 이후인 위험 보고서를 찾는 python코드와 그에 해당하는 SQL문을 보여준다.
일대다 관계인 레코드의 경우는 selete_related메소드를 이용하면 데이터베이스 접근 횟수를 줄일 수 있다. 일반적인 데이터베이스 조회는 추상화되어있어 실행할 때마다 쿼리를 수행한다. 하지만 selete_related메소드를 사용하면 한 번 데이터베이스에서 결과를 가져온 후 필요할 때는 이를 그대로 사용한다. 다음 예제에서 두 방식이 어떻게 다른지 확인할 수 있다.
사용자는 원하는 경우 extra메서드를 이용해 원하는 컬럼을 추가한 결과를 얻을 수 있다. 다음은 2006년 1월 1일 이후 보고서를 최신으로 표시하는 컬럼을 가진 리포트 정보를 가져온다.
사용자는 values함수를 이용해서 원하는 속성을 지정할 수 있다. 이는 검색 조건을 만족하는 레코드의 필요한 속성만을 이용하므로 효율적이다. 또한 values함수는 QuerySet을 상속한 ValuesQuerySet을 리턴하므로 다시 위에서 사용한 검색 조건을 사용할 수 있다. 하지만 ValuesQuerySet은 사전형(dictionary) 자료구조를 가지고 있기 때문에, 많은 수의 레코드를 얻어오기에는 부적절하다. 다음은 사원 정보에서 이메일 속성만을 얻어온다.
Django에서 기본적으로 제공하는 조인 연산은 없다. SQL문을 직접 수행하여 원하는 결과를 얻을 수 있다. 이는 JDBC의 인터페이스와 비슷하며, 커서를 이용하여 질의를 수행한 결과를 하나씩 얻어오는 방식을 사용한다. 다음은 특정 부서 에서 시행한 위험 관리 대책을 얻어오는 함수이다.
- html5/web-workers . . . . 13 matches
* 현재 브라우저와 웹어플리케이션이 가진 설계상의 문제로 생겨남
* 현재 웹브라우저는 웹페이지를 하나의 스레드로 실행
* web workers가 메인 스레드(웹 페이지)와는 별도의 백그라운드 프로세스로 자바스크립트 실행
* 일 대 일 : <워커>, 하나의 워커 객체와 하나의 백그라운드 프로세스가 일대일로 대응
* 다 대 일 : <공유 워커>, 여러개의 워커 객체가 하나의 백그라운드 프로세스와 대응
= 워커를 이용한 프로그래밍 =
* 워커 인터페이스 생성자에 JavaScript 소스 파일의 URL인수로 전달하면 소스파일을 내려받아 백그라운드에서 실행한다
* 지역변수, 지역함수이므로 외부에서 호출 불가!
* 공유 워커는 윈도우가 달라도 URL과 이름이 같으면 같은 프로세스 공유
* onmessage() : 워커로부터의 메세지 수신을 위한 이벤트 핸들러
http://cafe.naver.com/webappdev.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=141&social=1
- naneunji/Diary . . . . 13 matches
* 오늘 잡지를 읽다 보니.. 가슴에 "퍽!" 하구 찔리는 글이 있었다. [[BR]] 대충대충 일을 마감한 후, 하는 말이 "이번에는 좀 그렇지만 다음에는 정말 제대로 한번 해봐야겠다" . 그러나 다음에도 별 수 없이 그 말을 반복하게 된다는... 내가 지난 6개월 동안 했던 생각이 아닌가..-_-;;
* 파일 입출력이 되는 java로 만든 메모장 완성^^
* java 스터디모임 : 3시 - 계산기를 짜기루 했다. 그리구 다음부턴 세미나두 병행하기로 결정
* zp 정모 : 6시반 - 간단한 프로젝트 상황 발표 후 밥(-_-)을 먹었다. 술대신..
* 과외를 하나 더 하기루 했다. 윤석이 동생..근데 과연 잘하는 짓일까...???[[BR]] 모아논 돈이 없는데 과외 하나루 생활하기란..정말 고달프다...개강하구 나선 밥값이 모자르지는 않을지 걱정됬는데..과외가 구해져서 다행이라는 생각이 든다,, 하지만 한편으로는 시간표두 빡빡한데.. 개강하구 나믄 이리저리 치여서 과외와 내 공부..둘 중 하나 혹은 둘 다를 제대루 하지 못하게 될까 걱정된다. 이미 그러한 경험을 한 적이 있기 때문에..더더욱..[[BR]] 돈과 시간..이 둘 사이에서 균형을 잡기란 쉽지 않은 일 같다.
* 7월이 끝나간다. 7월에 하기로 했던 일들을 얼른 마무리져야 겠다.
새로운 과외를 시작했다
DeleteMe) 난생 첨으로 본 것이나... 공부 안해 돈이 아깝다고 생각한거나... 걍 경험이라고 생각한거나... 전부 같은 상황이라는...;; (근데 진짜로 공부 안했다는 것은 나만의 경험일까..ㅜ.ㅜ 강의 끊어서 두번갔으니..;;) --["Wiz"]
프로그래밍파티 첫날..생소한 언어를 고르라구 했는데 내가 고른 python은 생각해보니..한번은 본 언어였음.
여러사람이 하나의 프로그램을 짠다는것..페어프로그래밍을 한다는것..
8월의 끝이자 방학의 끝이며 프로그래밍 파티의 마지막날..그동안의 생활을 정리하는 시간이 필요할 듯 하지만..
- whiteblue/만년달력 . . . . 13 matches
if (yundal == true) {
if ( monthInput > 2 )
} else { // 각 년의 1일의 위치
if ( i%100 != 0 && i%4 == 0)
else if ( i%100 == 0 && i%400 != 0)
else if ( i%400 == 0 )
else
if (yundal == true)
cout << "일\t월\t화\t수\t목\t금\t토" << endl;
if ( (j == 1 && k < locationOf1stDay) ||
} else {
- 가위바위보/영록 . . . . 13 matches
ifstream fin("data1.txt");
cout << buf << endl;
cout << buf << endl;
if(temp1>temp2)
if(temp1 == '2' && temp2 == '0')
else
else if (temp1==temp2)
else if (temp1 < temp2)
if(temp1== '0' && temp2 == '2' )
else
cout << count1 << " " << count2 << " " << count3 << endl;
- 개인키,공개키/김회영,권정욱 . . . . 13 matches
ifstream fin(secret);
if (int(ch)> 255) ch = ch % askii;
if (text == '\n') {
cout << endl;
fout << endl;
else{
cout << endl;
fout << endl;
ifstream ffin(unsecret);
if (text == '\n') {
cout << endl;
ffout << endl;
else{
- 겨울방학프로젝트/2005 . . . . 13 matches
= 제안 프로젝트 =
|| 프로젝트 || 설명 || 참가자 ||
|| [OurMajorLangIsCAndCPlusPlus] || C/C++을 자신의 주 언어로 삼고 싶은 사람들의 스터디-_- || 현태 민경 도현 수생 끝 ||
|| [PaintBox] || 시험끝났다고 놀지 말고 3일 빡세게 해서 JAVA로 그림판 짜기 || 보창 아영 선호 ||
|| [EditPlus] || 메모장보다 좀 더 높은 수준으로 만들기 || 수생 현태 ||
|| [검색에이전시_temp] || 파이선으로 맞춤형 검색 || 용안 상협 준수 ||
|| Blog || PHP로 SQL로, 간단하게 기본기능 -> JSP || 예전 그 멤버 + ||
|| [알고리즘] || Introdution to Algorithm 으로 공부 || 상섭 선호 보창 휘동 민경 도현 ||
|| [ProjectVirush] || [실시간멀티플레이게임프로젝트] 부활! || 휘동 현태 정현 재선 ||
** 2005년 12월 15일 정모에서 나온 프로젝트입니다. 해당 스터디에 해당하는 분이 스터디 이름과 페이지를 꾸며주시기 바랍니다.
** 회의에 참가하지 못하신 분들은 참가하고 싶은 프로젝트에 이름을 적어주시고 참가하세요.
[프로젝트분류] [2006년활동지도]
- 기본데이터베이스 . . . . 13 matches
문제 : 번호, 이름, 전화번호, 주소로 구성된 기본 데이터 베이스를 설계하고, 그 데이터 베이스에 특정자료를 추가, 삭제, 갱신, 출력하는 프로그램을 작성하여라.
Insert : 새로운 자료 추가
Modify : 자료 갱신
Undelete : 바로지운 자료 복구
- 영어 or 한글로 단어 출력후 선택할 수 있게 한다
=== 처리조건 ===
선형 리스트로 데이터베이스 구축
Delete, Modify, Search 경우 자료 없으면 Can't find 라고 출력
검색키는 ID, name, tel로 하며, 자료가 복수일 경우 해당자료를 전부 출력
* 이문제는 C++로 짜면 재밌겠다.. ^_^ --아영
- 대학원준비 . . . . 13 matches
* 서류 심사 내용이 간당 간당 한 사람의 경우 면접이 까다로움
전형료 : 100,000원(우편접수의 경우에는 우편소액환으로 바꾸어 동봉)
홈페이지를 기준으로 봄,가을에는 270만원(이하), 여름에는 180만원 수업료를 낸다. 장학금으로 매년 1000만원 정도를 받는다.
* 가끔 특차로 성적만으로 뽑는 경우 있음. 이렇게 특차로 뽑힌 사람의 경우 원하는 연구실로 가기 싶고, 추후 정시의 경우는 불리 할 수 있다고 함
- 데블스캠프2005/RUR-PLE/Harvest/허아영 . . . . 13 matches
if next_to_a_beeper():
else:
ifif()
ifif()
ifif()
ifif()
def ifif():
if next_to_a_beeper():
- 데블스캠프2006/월요일/함수/문제풀이/김준석 . . . . 13 matches
if(daewon >= 40 && (daewon/boat_num)<8 && (weapon_num/daewon >=1)) return true;
else return false;
cout << "대원은 40명이상 보트당 대원은 7명 이하 모든 대원에게 무기지급한다면 성공!" << endl;
cout << "대원 보트수 총기수 대로 입력" << endl;
if(team684(daewon, weapon_num, boat_num)){
cout << "대원 한명당" <<(rand()%(daewon/10) +1) * (int)(weapon_num/daewon) << "명죽이고 " << endl;
cout << "성공!!" << endl;
else {
cout << (rand()%(weapon_num/10) +1) / daewon << "명죽이고 " << endl;
cout << "실패!!" << endl;
cout << "나온 주사위 값은 " << dice() << "입니다." <<endl;
void call_back(){ cout << "백설공주" << endl;
- 데블스캠프2011 . . . . 13 matches
* 강사님들. 각 강의마다 페이지 만드실때 '''데블스캠프2011/첫째날/오프닝''' 형식으로 만들어주세요.
|| 1 || [송지원] || [:데블스캠프2011/첫째날/오프닝 오프닝] || [강성현] || [:데블스캠프2011/둘째날/Scratch Scratch] || [김수경] || [:데블스캠프2011/셋째날/String만들기 String만들기] || [이원희] || [:데블스캠프2011/넷째날/Android Android] || [조현태] || [:데블스캠프2011/다섯째날/PythonNetwork Python으로 하는 네트워크] || 8 ||
|| 2 || [송지원] || [:데블스캠프2011/첫째날/오프닝 오프닝] || [강성현] || [:데블스캠프2011/둘째날/Scratch Scratch] || [김수경] || [:데블스캠프2011/셋째날/String만들기 String만들기] || [이원희] || [:데블스캠프2011/넷째날/Android Android] || [조현태] || [:데블스캠프2011/다섯째날/PythonNetwork Python으로 하는 네트워크] || 9 ||
|| 3 || [변형진] || [:데블스캠프2011/첫째날/개발자는무엇으로사는가 개발자는 무엇으로 사는가] || [강성현] || [:데블스캠프2011/둘째날/Scratch Scratch] || [김수경] || [:데블스캠프2011/셋째날/String만들기 String만들기] || [이원희] || [:데블스캠프2011/넷째날/Android Android] || [조현태] || [:데블스캠프2011/다섯째날/PythonNetwork Python으로 하는 네트워크] || 10 ||
|| 4 || [변형진] || [:데블스캠프2011/첫째날/개발자는무엇으로사는가 개발자는 무엇으로 사는가] || [김동준] || [:데블스캠프2011/둘째날/Cracking Cracking - 창과 방패] || [김준석] || [:데블스캠프2011/셋째날/RUR-PLE RUR-PLE] || [이승한] || [:데블스캠프2011/넷째날/ARE Android Reverse Engineering] || [이정직] || [:데블스캠프2011/다섯째날/Lua Lua] || 11 ||
|| 5 || [변형진] || [:데블스캠프2011/첫째날/개발자는무엇으로사는가 개발자는 무엇으로 사는가] || [김동준] || [:데블스캠프2011/둘째날/Cracking Cracking - 창과 방패] || [김준석] || [:데블스캠프2011/셋째날/RUR-PLE RUR-PLE] || [이승한] || [:데블스캠프2011/넷째날/Git Git-분산 버전 관리 시스템] || [변형진] || [:데블스캠프2011/다섯째날/HowToWriteCodeWell How To Write Code Well] || 12 ||
|| 7 || [송지원] || [:데블스캠프2011/첫째날/Java Play with Java] || [:상협 남상협] || [:데블스캠프2011/둘째날/Machine-Learning Machine-Learning] || [윤종하], [황현] || [:데블스캠프2011/셋째날/Esolang 난해한 프로그래밍 언어] || [이승한] || [:데블스캠프2011/넷째날/Git Git-분산 버전 관리 시스템] || [변형진] || [:데블스캠프2011/다섯째날/HowToWriteCodeWell How To Write Code Well] || 2 ||
|| 8 || [송지원] || [:데블스캠프2011/첫째날/Java Play with Java] || [:상협 남상협] || [:데블스캠프2011/둘째날/Machine-Learning Machine-Learning] || [윤종하], [황현] || [:데블스캠프2011/셋째날/Esolang 난해한 프로그래밍 언어] || [서지혜] || [:데블스캠프2011/넷째날/루비 루비] || [변형진] || [:데블스캠프2011/다섯째날/HowToWriteCodeWell How To Write Code Well] || 3 ||
|| 9 || [송지원] || [:데블스캠프2011/첫째날/Java Play with Java] || [:상협 남상협] || [:데블스캠프2011/둘째날/Machine-Learning Machine-Learning] || [윤종하], [황현] || [:데블스캠프2011/셋째날/Esolang 난해한 프로그래밍 언어] || [서지혜] || [:데블스캠프2011/넷째날/루비 루비] || [김수경] || [:데블스캠프2011/다섯째날/Cryptography Cryptography], 회고 || 4 ||
- 데블스캠프2011/다섯째날/HowToWriteCodeWell/강소현,구자경 . . . . 13 matches
if(1<=floorMin && 1>=floorMax)
else
goTo(i);//있는 장소로 이동
if(currentFloor<= floorMax && currentFloor >= floorMin)
if(people == 0){
if(direction){
}else{
if(floor == currentFloor){
//el.goTo(el.getCurrentFloor());//현재 층으로 이동
//if(el.checkSameDir()){//만약에 같은 방향으로 이동하고, 처음에 누른 사람이 이동하고픈 위치보다 미달인 곳에 있으면
//el.goTo(el.getCurrentFloor());//두번째 사람이 있는 층으로 이동
el.goTo(el.getCurrentFloor());//현재 층으로 이동
- 레밍즈프로젝트/프로토타입/에니메이션 . . . . 13 matches
[레밍즈프로젝트], [레밍즈프로젝트/프로토타입]
AddFrame(UINT ITEM)으로 프레임을 추가시키고 외부에서 적절한 타이머를 통해서 움직임을 조절한다.(NextFrame())
if(m_nowFrame < int(m_frameList.size())-1)
else m_nowFrame = 0;
= GIF 포기 =
자동적인 에니메이션은 불가능. 프레임마다 에니메이션 객체가 스스로의 상태를 파악하여 새로 BMP를 뿌려 주어야 함.
CDC를 확장한 [레밍즈프로젝트/그리기DC]에 자동 에니메이션을 구현 하고자 하였다.
대안. 수동으로 진행되는 에니메이션 작업을 클래싱 할 수 있을 듯-_- 버튼에서 활용 가능 할 듯
에니메이션이 필요한 객체들은 이 클래스를 상속 받음으로서 에니메이션 처리를 할 수 있다.
이 클래스는 더블버퍼링과 bmp그리기를 자동화 시켜둔 [레밍즈프로젝트/그리기DC](CmyDouBuffDC)를 사용하여 드로잉을 수행한다. (CDC를 사용하는 도 있지만... 편의를 위해서...)
- 마케팅천재가된맥스 . . . . 13 matches
* 이 책은 정현이의 추천으로 읽게 되었는데, 엄청 재밌고 유익하게 읽었다. 이젠에 네루의 세계사 이야기 책을 읽다가 너무 빡세서 힘들었는데 이책은 마케팅, 세일즈에 대해서 만화처럼 쉽게 알아먹기 좋게 잘 설명해 주었다. 공학도라면 꼭 읽어 봐야할 책이라고 생각한다. 솔직히 우리는 기술개발이 최고로 중요하고 나머지, 경영 마케팅은 기술만 좋으면 되는거 아닌가 하고 생각하는 경향이 있다고 본다. 그런데 현실은 우리가 기술개발에서 우리의 중요성을 인정받고 싶은 만큼 마케팅 쪽도 기술개발만큼, 때에따라 훨씬 더 중요할수도 있다고 생각한다. 그런 만큼 우리 공학도도 경영, 마케팅(세일즈) 등에 대해서 잘 알아야 한다고 생각한다.
* 이책에서는 고대 이집트에서 그때까지는 없었던 '바퀴'라는것을 새로 발명한 맥스가 그 '바퀴'를 이용하여 세계최고의 '바퀴회사'가 되어 가는 과정을 이야기한다. 처음에 맥스가 '바퀴'를 만들었을때, 우리 공학도들이 그러는것처럼 이 기술은 정말 최고의 기술이야, 가만히 앉아 있어도 서로들 이것을 사려고 하겠지 하는 생각을 했다. 그러나 결과는 지금 현실과 마찬가지로 기술 개발만 하고 그 후 마케팅, 판매를 못해서 거의망하기 직전까지 간다. 그렇다고 맥스가 아예 판매에 손을 땐것은 아니다. 부인과 함께 이집 저집을 방문하면서 판매 하려고 해도 실패를 한다. 그러다가 '세일즈캡틴', '빌더벤', '마법사토비' 를 차례대로 고용해서 판매를 하려고 했지만 번번히 실패한다. 그러다가 '클로저 카시우스'를 고용해서 판매에 성공한다. 현재 시장 상황에 따라서 필요한 세일즈 방식이 다르다는 것을 보여준다. 정말 중요한것은 시장 상황에 따라서 세일즈 방식이 다르다와 세일즈 방식이 다르기 때문에 고용하는 세일즈맨들도 성향이 달라야 한다는 것이다. 강추 책.
* 여기서 제품에는 우리가 만드는 프로그램도 포함된다.
* 탄생 부분만 주로 정리했다. 다른 부분 필요하신분은 책을 보시길..
* 클로저 (이때 필요하다)
* 프리젠테이션 후 곧바로 살것인지 물어본다.
* 다음과 같은 질문을 클로저, 마법사(기술자), 빌더(인간관계구축), 세일즈맨이 각각 필요할 시장 상황에서 생각해본다.
* 이 제품의 경쟁자는 누구인가? (신제품이라 할지라도 기존의 비슷한 용도로 사용하던것들)
- 미로찾기/이규완오승혁 . . . . 13 matches
cout << "미로배열의 행입력(2< n < 40) :";
cout << "\n미로배열의 열입력(2 < m < 20) :";
cout << "미로의 길을 입력하시오.";
cout << "\n 미로를 완성했습니다. 시작해 볼까요?\n";
if(tile[i + imove[0]][j + jmove[0]] == 0)
if(tile[i + imove[1]][j + jmove[1]] == 0)
if(tile[i + imove[2]][j + jmove[2]] == 0)
if(tile[i + imove[3]][j + jmove[3]] == 0)
if(tile[i + imove[4]][j + jmove[4]] == 0)
if(tile[i + imove[5]][j + jmove[5]] == 0)
if(tile[i + imove[6]][j + jmove[6]] == 0)
if(tile[i + imove[7]][j + jmove[7]] == 0)
if( i == colum && j == row)
- 빵페이지/마방진 . . . . 13 matches
가로, 세로, 대각선의 각각의 칸에 들어가는 숫자들의 합이 같은 정사각형 만들기
위의 마방진의 규칙은 첫째열 중간칸을 1로 시작하여 오른쪽 위 대각선으로 이동하면서 1씩증가하는 것입니다.
오른쪽 위 대각선의 칸에 숫자가 있을경우 아래로 이동합니다. 다시 오른쪽 위 대각선으로 이동합니다.
이런 사각형이 마방진이야~ 3 X 3 이나 5 X 5 식으로 홀수크기가 쉬울테니 홀수로해
* 질문!!! 저기 써져 있는대로 똑같이 하는건가요?? 아니면 숫자를 입력받아서 하는건가요? - 승균
* 숫자를 입력 받다니?? 저런식으로 숫자를 출력하면 되~ - 민수
if(c_1==2 || c_1==8)
if (c_1==4 || c_1==6)
- 빵페이지/소수출력 . . . . 13 matches
* 소수를 차례대로 출력하는 프로그램을 만들어 봅시다.
2, 3, 5, 7, * * * 이런식으로 입력받은 숫자 전까지 소수를 출력
if((i%j)!=0)
if(count==(i-2))
cout << endl;
if(j*i==k)
if(count==1)
//주영이랑 원리가 비슷한 듯하다..(숙제의 영향인가;)다른 방법으로도 시도해봐야겠다.ㅡㅜ
if (num >= 2)
else
if (i % j == 0)
if (count == 0)
- 상협/Diary/8월 . . . . 13 matches
* ["3DAlca"] 네트워크(MFC)로 구현 하기
* ["비행기게임"] 프로젝트 성황리에 마치기
* 이번주는 모든 프로젝트를 마무리 지어야 겠다
|| 3 || ["3DAlca"] 네트워크로 구현하기 || 0% || 목 요일 || 수, 목 ||
* ["자유로부터의도피"]
* 오늘이 수요일인지 목요일인지 순간적으로 헷갈렸다. -_-;;
* 오늘 과외 하나 더 들어 왔다. 아싸~ 근뎅 이번에는 정석으로 못 가르칠거 같당..-_-, 내 밥벌이인 정석으로..ㅠㅜ 또 고3이당. 쩝.. ㅡㅡ;;
* 정말 자주 느끼는 거지만, 난 사람보는 눈이 절대적으로 부족하다.
* 오늘 갑자기 아주 조금씩의 미학이 떠올랐다. 하루에 어떤것을 아주 조금씩 하는것은 그것을 아예 안하는것보다 낮다고나 할까.. 뭐 당연한 말인데 갑자기 퍼뜩 몸으로 느꼈다. 그런 의미해서 사놓은 책이랑 제본해놓은 책을 앞으로 하루에 조금씩 봐야 겠다.
* 오늘은 주로 비행기 겜 프로젝트를 손좀 봤다.
- 새싹교실/2012/나도할수있다 . . . . 13 matches
*c로 운영체제를 만들겠습니다. - 이현민
*c프로그래밍 A+받겠습니다. -신윤호
* 새싹 첫수업을 했다. 도중에 현민이가 영어 수업을 받으러가서 한시간 비었다. 다음주부터는 시간을 한시간 연기하여 세시부터 시작할 예정이다. gcc의사용법을 간단히 설명했고, gdb는 학생들이 디버깅을 몰라서 설명해주지 않았다. printf사용법부터 시작해서 연산자, 데이터 타입, while,do-while,for문을 설명했다. 현민이는 쉰게 잘 따라오고, 윤호도 천천히 따라오고 있어서 앞으로 수업하는데에 지장은 없을 것 같다. 수업을 다 하고 생각해보니 너무 우왕좌왕하게 가르쳤던것 같다. 다음시간은 더욱 열심히 준비해야겠다. - 추성준
* 지난주에 수업했던 for,while의 복습으로 시작했다. 1부터 10까지의 합을 구하는 프로그램을 짜보라고 했는데 쉽게 하지 못하고 많이 버벅거렸다. 둘다 집에 비주얼 스튜디오가 없어서 복습을 안한 것 같다. 그리고 소라때리기 게이을 타이핑하게 하고, 소라때리기 게임에서 쓰이는 함수들을 설명해주었다. 그런데 한번에 너무 많은 양을 배워서 그런지 이해도가 떨어지는 것 같아서 다음주에 보충수업을 하기로 했다. 다음주 과제로는 MP를 추가해서 마법공격, 체력회복을 추가해오는것을 내주었는데 아마 안해올것 같다. -추성준
* 시작하자마자 while로 1부터 10까지 더했다. 나는 버벅거렸다. 근데 조언을 구하면서 해봤다. 게임코드도 베껴써봤다. define은 메인함수 바껭서 하는 거라고 배웠다. select=getch() 이거가 좀 헷갈렸다. break가 나오면 멈춘다고 한다. 오늘 정말 여러가지를 배운거 같다. 때리기 게임안에 많은 함수가 들어있는게 신기했다. 복습도 좀 더 열심히 해야겠다. 집에 비쥬얼스튜디오도 깔고 스스로 하는 습관을 들여야겠다. -신윤호
* 소라때리기 게임을 만들었다. for,while복습하고 오늘 여러가시 새로운거를 많이 많이 배웠다.다음에 여러가지 스킬을 만들어야 되요..ㅠㅠ너무 한꺼번에 많을걸 배웠어요....과제는 2주에
if (num1 == 1) {
} else {
* 오늘 너무 힘들다. 그냥 힘들다 내가 함수를 새로 만드는 걸 배웠는데 헷갈린다. 다 지친다.ㅠㅠ 잘 하고 싶다. 근데 해보라고 하면 난 아무생각도 나지 않는다. 도대체 어떻게 해야할지 모르겠다. 포인터라는걸 배웠는데 모르겠다. 다음주에 보충시간에 더 열심히 배워야겟다. -신윤호
- 새싹교실/2012/부부동반 . . . . 13 matches
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
C/C++의 문법과 활용을 자세하게 설명한 책. 문법을 소개하는데 그치지 않고 변화화는 코드가 실제 프로그램과 하드웨어적으로 어떠한 영향을 일으키는지 비교함으로써 본 스터디의 목적과 매우 잘 부합됨
이 둘을 읽어와 값을 출력하는 프로그램을 작성하라
이번 과제는 실질적인 코드보다 문제를 해결하는 프로세스를 알려주기 위한 과제입니다.
1시간 이상 소요되지 않는 범위에서 문제를 해결하기 위한 아이디어를 서술하고 조사한 자료를 토대로
프로그램의 개요를 A4용지 1장 이내에 작성하여 ahnzaz@gmail.com으로 보내주세요.
* 컴파일러의 도움없이 스스로 메모리와 포인터의 관계를 통해 완벽한 코드 구현
- 새싹교실/2012/아우토반/앞반/4.5 . . . . 13 matches
if(a<0||a>26)
else
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 어깨가 빠지는줄 알았어요..유.유 왜냐면 제 노트북을 가져왔었거든요. 제 노트북으로 신나게 프로그램 4개를 ㅉㅏ 보았습니다. 아우토 샘이 힌트를 좀 주셨지만, 그래도 스스로 생각해서 해보아서 보람찼습니다. 그리고 프로그래밍의 세계는 매우 무긍무진합니다. 왜냐하면 같은 프로그램인데 성준이아 소스코드가 달랐기 때문입니다. 하하하.. 신나요신나 WoW~~ 앞으로 프로그램 많이 짜보며 연습하고 복습도 열심히! 질문도 열심히 하겠습니다. 룰루랄라
* 아 왜이렇게 머리에 안들어오지. 눈으로 보는거랑 직접하는거랑 너무너무 다른것 같습니다. 역시 코딩은 많이해봐야 제맛인것 같습니다. 다음에는 미리 책을 읽고 개념에 대한 이해를 먼저 해와야할것 같습니다.
- 속죄 . . . . 13 matches
* 무더운 어느 여름날, 열세살의 브리오니 탈리스는 우연히 창 밖을 내다보다가 언니 세실리아가 옷을 벗어던지고 정원의 분수대에 뛰어드는 것을 목격한다. 자매의 어릴적 친구이자 케임브리지에서 얼마 전에 돌아온 의사 지망생 로비 터너가 그런 세실리아를 지켜보고 서 있다. 그날 하루가 끝날 무렵, 탈리스 저택의 영지에서는 또다른 한 소녀가 강간을 당하고, 이때부터 세 사람의 운명은 생각지도 못했던 엇갈림을 겪게 되는데...
* 참고로 역자 소개 ( 번역이 워낙 쓰레기이다 보니까 역자 소개도 들춰 보았음)
* 서강대학교 영문학과 한국외국어대학교를 통역번역대학원 한영과를 졸업했으며, 현재 한양대학교 국제어학원 조교수로 재직중이다. "잔의 첫사랑" "우울한 생활 극복하기" "이잔을 들겠느냐"외 다수의 책을 번역했다.
* 2차 세계대전 발발 직전. 공장을 경영하는 현대적 인물과 과거 군주주의 귀족풍습을 그대로 지니고 있는 사람이 공존하는 시간. 영국의 탈리스가라는 귀족집안이 배경이다.
* 공상하기 좋아하고 이야기 하기 좋아하는 여자아이, 세실리아라는 신식 여자, 하인 집안의 아들로 케임브리지를 우수한 성적으로 졸업하고 다시 케임브리지 의대에 합격한 로비. (위의 소개말과 다르지 않다.)
* 이 세명에게 같이 일어난 한가지 사건을 서로 다른 시각으로 한사람씩 차례로 돌아가며 의식의 흐름기법을 이용해 서술한다. 제길. 500페이지중 약 절반이상은 이렇게 의식의 흐름으로 때워버린다. 해가 어쨋네 땅이 어쨋네~ 뭐. 외국인이 자기네 말로 보면 재미있고 멋질지 모르지만, 기본적인 우리말 문법도 틀리는 이상한 번역작가의 글을 보면서 멋지다고 하긴 정말 너무 힘들고 짜증난다. 이부분 끝나는 곳까지 보는데 3달 걸렸다. 제길.
* 변태적인 내용의 편지를 실수로 보내게된 남자. 그리고 그걸보고 갑자기 사랑에 빠지는 여자. 제길. 분위기가 어쨋네 저쨋네 하면서 설득하려 하긴 하지만...아무리 봐도 설득력이 없다;; 무슨소리인지도 잘 모르겠따. 이것도 번역작가의 탓인듯.(여자의 의식부분에서 서술이 부족했던것 같다.)
- 숫자를한글로바꾸기/허아영 . . . . 13 matches
if(number == 0)
if(number_data[i] == 0)
}else{
if(number == 0)
if(number_data[i] == 0)
}else if(number_data[i] == 1 && number != 1)
if(i != (number_len-1))
}else
}else{
- 리팩토링은 프로그램을 완성한 후에 하는것이 아니라 프로그래밍을 하는 도중에 하는게 더 좋다고 생각합니다. - 임인택
[LittleAOI] [숫자를한글로바꾸기]
- 이승한/자전거여행/완료 . . . . 13 matches
생각보다 힘들어 목표수정 5박 6일 일정으로 여정완료.
* 경험이 없다보니 일정을 좀 힘들게 7일로 잡았으며 거리도 너무 멀리 잡았음.
* 자전거 타는 테크닉도 중요하지만 수리 상태에 따라 상당히 많이 다르다. 타이어는 예사고 기름칠이 잘 안된 체인의 경우에는 가끔씩 체인이 끊어지는 사태도 벌어지고. 브레이크. 휠. 엎어지기라도 해서 기어가 망가지면 난감하기도하고 생각지도 못한 곳곳에서 문제가 계속발생한다.
* 다리도 다리지만 3시간 정도 달리다보면 사타구니 부위가 무지하게 아픔. 안장을 최대한 작은것으로 달고. 생각과 다르게 작을수록 사타구니가 아프지 않다.
* 하루에 한번정도는 번갈아가면서 고장이나 자전거 수리점에 들렀는데. 가는곳 마다 이런 자전거로 여행하면 무지하게 고생할것이라고 경고를 들었고, 역시 무지하게 고생했음.
* 생각외로 돈은 많이 들지 않음
1시간 - 3시간. 수색언덕길. 지긋지긋. 이승한 욜리 힘들었음. 아직 자전거가 익숙치 않고 다리가 안풀려 세명중에 내가 가장 힘들어 했음. 나중에 친구들은 나때문에 여행이 지체 될 걸로 걱정했다고 함. 그러나 기우.
모두 40분 달리고 쉴정도로 지쳐있었고. 속도도 그냥 걷는 정도의 속도.
자전거 라이트를 달았지만 효과는 미미하고. 자동차가 한번 지나가면 강한 빛으로 인해 잠시 앞이 전혀 안보임.
큰 자갈을 밟고 논밭으로 빠질 가능성도 많음. 자동차가 얼마 없고 빠르게 다닐땐 역주행이 오히려 안전.
어떤 시골 읍내 교회에서 몰래 잠을 청함. 의외로 개방되어있었고. 수도 시설이 있어 간다하게 얼굴은 씻을수 있었음.
1시에 잠을 청함. 교회테이블에서 나오는 노래소리. 그리고 몇마리 안되지만 무지하게 매서운 모기로 환경은 열악했지만.
힘들었지만 아직까지는 체력이 남았는지 모두 3시간 반정도 자고. 새벽 4시 30분에 기상. 편의점에서 라면 한사발에 삼각김밥 하나먹고 5시에 출발. 서산으로 목표수정.
- 정모/2003.7.29 . . . . 13 matches
=== 스터디 및 프로젝트 진행상황 ===
* [삼총사CppStudy] => 현재 관계자가 없는 관계로 상황을 알 수 없음.
* [HardcoreCppStudy] => 지난주에 시작, C++을 주로 하는 방향으로 나갈 예정.
* [JavaStudy2003] => 어렵다는 의견이 다소 있음. 오늘 담당자님의 부재로 수업은 취소되고 팀원들끼리 날짜를 정해서 페이지에 올릴 것을 요망함.
* [방울뱀스터디] => 만두4개 라는 프로젝트 진행중. 팀원 한명이 유럽 여행을 떠났음.
* [ProjectAR] => 각 팀원의 여러가지 사정으로 진행이 거의 없음.
=== 제로페이지 MT ===
* 일단 이번 회의 나온 분들 중 11명 정도가 참여하실 수 있으며 총인원 16명 정도로 예상하고 있습니다.
* 지금 1'Wiki를 테스트를 하는 이유는 새로 위키를 같이 사용해 나가면서 규칙을 만들자는 취지이며, 0'Wiki를 닫지 않으면 1'Wiki를 테스트 해보는 사람만 테스트해 볼 것이므로 0'Wiki를 폐쇄할 거라고 합니다. 그러므로 ZeroWiki:ZeroPager 모두가(특히 신입생) 의욕적으로 1'Wiki사용에 참여하였으면 좋겠습니다.
- 정모/2004.11.16 . . . . 13 matches
== 발표 프로젝트 ==
* 프로그래머 소양론에 대한 책에서 자신의 생각을 다른사람에게 전달하는 프리젠테이션 능력 또한 코딩 실력만큼 중요하다고 말하는 것을 보고 생각하게 됨.
* 발표를 하고 싶었지만 자신이 따로 공지를 하고 사람을 모아야 하는등 불편한 절차때문에 망설이던 사람들에게 좋은 기회가 될수도 있을 것이다.
정기적으로 모인다 : 한달에 한번은 지나치게 많은 발표자인해, 듣는 사람들이 기다리다 지치게 될 수도 있다. 수시로 소집한다는, 말이 쉽지 참여도가 떨어질가능성이 많다.
발표형식은 자유롭다. : 실험 적인 프리젠테이션을 구성할 수 있지는 않을까요?? 발표에는 꼭 프로젝터가 필요한건 아니니까.
- 프로젝트를 열심히 하게 된다
- 준비를 못하는 경우 문제발생
* 시간 -> 관리하면 된다 , 자발적으로 하는 것이므로 상관없다, 방학때 하면 된다
* 강제로 시킨다.
이번 정모는 기대가 되네요. 앞으로도 이런 자발적인 안건 내기가 많이 나왔으면 좋겠어요.--[Leonardong]
발표 프로젝트가 잘 운영 되었으면 하네요~ 이히히히~ - [이승한]
- 정모/2005.4.4 . . . . 13 matches
[봄과프로젝트]
* 매주모여서 컴퓨터를 전체적으로 훑어주는 큰줄기의 세미나와, 자신이 공부하고싶은 분야로 깊히 들어가는 작은 줄기의 세미나로 진행해 보자.
* [봄과프로젝트]
* 와해 분위기. WinAPI 프로젝트 새로 진행, smallTalk 본격추진.
* 지원금 확대 ( 한학기 46 -> 62정도로 증가 ) SeeAlso [회계]
* 공대생 모두에게 도움이 되긴 하지만, 이왕 지원되는 거라면 좀더 학회에 유용할수 있는 방향으로 가보자.
* 공대 차원에서 새로운 패러다임에 관한 초청강연.
* 연말행사로 이끌어 보는 걸로 결정
많은 사람과 회의를 진행할때는 많은 준비사항이 필요하다는 것을 느낀 자리였습니다. 회의 진행자는 회의라는 그림을 그리는 한개의 연필과 같다는 오래되었지만 새로운 사실을 알았습니다. [여섯색깔모자]에서 어째서 파란모자사고가 그런 식의 사고가 필요했는지 이제야 조금 이해가 되는 듯도 하네요. - [톱아보다]
- 정모/2011.9.27 . . . . 13 matches
* Git, Grails, Cappuccino, Apache Thrift에 관한 설명.
== 스터디/프로젝트 공유 ==
* 격주로 진행합니다.
* 계속해서 문제를 풀고있습니다. '기숙사와 파닭'이라는 문제를 풀기로 했습니다.
* 프로젝트 소개를 하려했는데 하둡만 소개해버리고 말았네.. - [서지혜]
== 스터디/프로젝트 제안 ==
== 로고 ==
* 로고 투표를 9월 30일까지 진행할 예정입니다.
* 수요일 오후 6시로 변경되었습니다.
* 으아 정모가 수요일로 바뀌다니 ㅠㅠ 정모 못갈듯요.. - [장용운]
* 난 언제로 잡히든 못가지 ㅠㅠ 아 일요일은 뺴고 - [강성현]
* 세미나, 프로젝트 공유가 풍성했던 정모여서 기분이 매우 좋았습니다. 다음주에 제가 할 세미나 공유도 좀 열심히 준비해야겠다는 생각이...;; - [지원]
* 이 주는 정말 공유할 것들이 많은 정모였지요. 전 역시나 Cappuccino에 관심이 많아서 그걸 설명...+_ 사실 옵젝-C를 배울때 최대 약점이 될 수 있는게 그 시장이 죽어버리면 쓸모가 없어진다는건데 브라우저는 그럴일이 없으니 좋죠. 제대로 release되어서 쓸 수 있는 날이 오면 좋겠네요. -[김태진]
- 정모/2013.7.8 . . . . 13 matches
== 구글디벨로퍼 그룹 등록 관련 ==
* 2. 제로페이지 구글디벨로퍼 그룹에 등록하는거에 대해서 그쪽 분과 이야기 할 예정.
* 취지 : 보드게임하고 쉴겸 놀러가자. 그리고 제로페이지 회원들의 단합을 위해서도 가자.
* 안혁준 회원 : 픽업과 교통편이 편리해야한다. 이동하는 인원이 많으므로....어떤 보드게임을 하고 누구에게 빌릴지와 같은 구체적인 계획이나 준비가 필요할 것같다.
* 서민관 회원 : 실질적으로 그곳(단양)에 다녀온 경험이 있는 분에게 의견을 물어보는게 좋지않나? 계절학기는 다음주 월요일날 끝남. 7월 3째주에 더 낳은 요일을 선택하는게 좋지않나?
* 김민재 회장 답 : 그럼 우선 7월 3째주중에 가는 것으로 .....(''그래서 일자를 7월 3째주라고 써둠.'')
* 김민재 회장 왈 : 총무를 하시던 한종이형이 개인적인 사정으로 (바쁜일정으로 인해) 못할것같아, 총무를 다시 정해야 할 것같습니다.
= 프로젝트 및 스터디 =
* code formatting에 대한 내용을 공부. 프로젝트에 대한 것을 하나 정해서 그걸 리펙토링 하는 방향으로 진행 방향정함.
* 지금은 주로 c++을 다룸. 아마 Effective c++책을 가지고 할 예정.
- 제로페이지위키베타 . . . . 13 matches
= 제로페이지위키베타 =
* 자신의 개인 위키 서버 선택할시에 제로페이지 회원은 제로페이지 서버를 선택해 주시기 바랍니다.(이미 가입한 회원은 그대로 사용..)
* 조만간 현 위키에 있는 데이터들도 매크로를 사용하여 옮길 예정입니다.
* [http://zeropage.org/zero/ 제로페이지위키베타] 왼쪽을 클릭하세요.
* 제로페이지 회원들은 zeropage 카페에 가입을 하시고, 추후에 자신의 위키에서 글을 쓰고 그 글을 zeropage에 올리고 싶을때는 편집창 카페 선택에서 제로제이지를 선택하면 그 글은 제로페이지에 올라가게 됩니다.
* 더 궁금하신점 있으면 엠에스앤 메신저 :namsangboy@hotmail.com 으로 얘기하세요.
* 상협이의 방학 2달 반간의 결과물이로곤~ 2005 여름 방학중의 유일한 유형의 결과물이 있는 프로젝트였네 - [eternalbleu]
[프로젝트분류]
- 조금더빠른형변환사용 . . . . 13 matches
#ifdef __BIGENDIAN__
#else
#endif
#ifndef _WIN32
#else
#endif
#ifdef __BIGENDIAN__
#else
#endif
[프로그래밍분류]
- 중위수구하기/허아영 . . . . 13 matches
printf("비교할 A, B, C 값을 차례로 입력 : ");
if(a == -999){
if(*a >= *b){changeXY(a, b);};
if(*a >= *c){changeXY(a, c);};
if(*b >= *c){changeXY(b, c);};
내가만든 이 프로그램에서 변수 테이블을 만들어 보면.
|| if(*a >= *b){changeXY(a, b);} || 14 || 45 || 38 ||
|| if(*a >= *c){changeXY(a, c);} || 14 || 45 || 38 ||
|| if(*b >= *c){changeXY(b, c);} || 14 || 38 || 45 ||
그리고 int search_middleNum(int *a, int *b, int *c) 이함수는 구지 포인터로 값을 넘겨받을 필요는 없지 않나..
└ㅎㅎㅎㅎㅎ 관심이 많아 보이나?? ㅎㅎ 자제해야겠군.ㅎㅎ 단지 할일이 없어서 보다보니 눈에띄었다구..^^ 난 이쁜 아가씨 소스아니면 별로 관심없음!! CC는 버렷..쳇쳇..ㅎㅎ
두 친구가 젤 활발하군요. A 코드를 B로 바꾸면 중간 변수의 메모리도 낭비되지 않고, 좀더 최적화에 다가간 코드가 됩니다. 하지만 A를 B로 바꾸면 가독성이 떨어집니다. 상황에 따라 다르겠지만 running time에 별 차이가 없다라고 본다면, 저라면 가독성을 택할 것 같습니다. -- 보창
- 진법바꾸기/김영록 . . . . 13 matches
함수를 만들어 쓰는데 익숙하지 않아 최대한 함수를 많이 이용하는쪽으로 하려다보니
if (num1>=dividing){
else{
if (num3 ==1){
else{
num1 = num1 - temp; //나머지를 없앰으로서 소숫점을 남기지 않는다.
기능 : for문으로 각자리숫자의 값을 output하는
main 말그대로 메인
if (input_10==0){
else{
if (input_num >=2 && input_num <=24){
┗ 샒 정말이네 같은이름으로 저장해부렷다 ㅠ - [김영록]
┗ 아 ;;; 아직까지 while(1){ <-- 요런식으로 쓰는게 익숙치 않아서
- 최대공약수 . . . . 13 matches
문제 : 최대공약수(GCD)를 구하는 프로그램을 순수하게 주 프로그램으로 작성하고 그것을 다시 call-by-value로 구하여라.
(ver.1 , ver.2 로 나누에 두개의 프로그램을 짠다. )
=== 처리조건 ===
두 정수 또는 두 정식인 a와 b가 있을 때, a를 b로 나눈 나머지 a'로 b를 나누고 그 나머지로 a'를 나누는 일을 완전히
단, a, b가 자연수일 때 a > b, 다항식일 때는 a의 차수가 b의 차수 이상이어야 한다. ≒서로나눗셈법;연제법;유클리드의 호제법.
* 주 프로그램 출력
* call-by-value로된 ver.2의 출력
- 캠이랑놀자 . . . . 13 matches
* 가급적이면 라이브러리나 특정 프레임워크 관련하여 어려운 부분은 [1002] support 하에 진행 (뼈대가 되는 코드를 미리 제공해주고, 알고리즘과 관련된 부분에 대해서 사람들이 구현하는 식으로)
|| 1 || 05.9.15 || [캠이랑놀자/050915] || New Media Art 들에 대한 데모 구경. 비전 기반으로 할 수 있는 것들 구경. 추후 시간 정하기. || (v) ||
|| 2 || 05.9.25 || [캠이랑놀자/050925] || DirectShow 개관. 뼈대 코드 구경. 간단한 캠영상 플레이 프로그램 만들기 || . ||
|| 6 || 05.10.29 || 기존 한 것 회상 모드 & 프로젝트 궁리 || . ||
|| 7 || 05.11.5 || 프로젝트 모임 || . ||
|| 8 || 05.12.28 || [캠이랑놀자/051228] || 배열로서 표현되는 이미지, 데이터 조작으로서 행해지는 이미지 프로세싱, PythonLanguage & PIL & GrayScale Image 에 대한 필터 실습 || (v) ||
|| 12 || 06.1.11 || [캠이랑놀자/060111] 1시 || Image Difference, Convolution Filter (Average, Sobel, ..~) || . ||
|| 15 || 06.1.19 || . || CAM App 2차 시도 - CAM Version Difference Filter || . ||
* C++ & Python - 현재 라이브러리들 관계상 C++ 로 구현된 것들이 많은 관계로. 중간에 [1002] 가 Python Wrapper Class 만들기를 시도할 것이긴 함.~ Python 의 경우 이미지 처리에 대해서 prototyping 을 위해 중간에 이용할 예정.
- 타도코코아CppStudy/0724 . . . . 13 matches
* 구조적 프로그래밍
* 객체지향 프로그래밍
* 로직과 보여주는건 분리하자!
* 윈도우프로그래밍에 대해 간단히 : [CherryBoy]
* 구조적 프로그래밍
* 객체지향 프로그래밍
* 로직과 보여주는건 분리하자!
|| 파스칼의 삼각형 || [수진] || Upload:pascal_sujin.cpp || 헉.. 줄까지 맞추다니 멋져요.^^ 함수 분리도 꽤 잘한거 같고.. 무엇보다 다른 개념(조합)을 사용했네요. 여태까지 한 사람들은 거의 다 위에꺼 더해서 했거든요. 하지만 로직과 보여주는게 분리가 안되어 있네요. 이따 저와 함께 고쳐 봅시다. ||
|| 랜덤워크 || [정우] || Upload:random_winy.cpp || 저랑 같이 고쳐봅시다. 고칠게 많네요. 결과는 제대로 되었지만... 이런 식으로 짠 코드는 나중에 수정하기가 골치아프답니다. ||
|| 마방진(홀수) ||[정우] ||Upload:mabang_winy.cpp || 잘했어요. 고칠 거리가 좀 있긴 하지만.. 스스로 고쳐 보세요. 랜덤워크를 저와 함꼐 고쳐보면서 배운걸 마방진 고치는데 적용해 보세요. ||
* 윈도우프로그래밍에 대해 간단히 : [CherryBoy]
* 선배 이 문제들로 2개는 무리,,,, 무리,,,ㅡ.ㅜ
- 05학번만의C++Study/숙제제출/2 . . . . 12 matches
* 숙제1/허아영 <<- 글쓰기를 눌러서 이런 식으로 페이지를 만드시고 거기에 자신의 소스를 올리시면 됩니다.
* 평상시에는 문자열의 주소를 하나의 전달인자로 취하여, 그 문자열을 한 번 출력하는 함수를 작성하라. 그러다가 0이아닌 int형 값을 두 번째 전달인자로 제공하면, 그 시점에 도달할 때까지 그 함수가 호출되었던 횟수만큼 그 문자열을 반복해서 출력한다. (문자열이 출력되는 횟수는 두 번째 전달인자의 값이 아니라 그 함수가 호출되었던 횟수와 같다.)물론 이 함수는 거의 쓸모가 없다. 하지만 이것은 이 장에서 설명한 몇 가지 프로그래밍 기술을 사용할 것을 요구한다. 이들 함수를 사용하여 함수의 작동을 보여 주는 간단한 프로그램을 작성하라
* 여기서 질문!! 전달인자가 1개인 함수와 2개인 함수만들어 오버 로딩 하라는 것인가? 그게 아니라면... cin을 라인별로 입력 받아햐겠는데.. 어떤때는 변수를 하나만 받고 어떤때는 변수를 두개 받아야하니.. 라인별로 처리 해야할듯.. 하지만 라인별로 처리해도....;;;; 음... 생각이 떠오르지 않음..;;; 쳇..;;[[BR]] 어제 교수가 defalte 에 대해 설명했던거 같은데.. 전달인자를 취하지 않으면 이미 입력된 변수의 값으로 처리한다. 라고...;; 음..;;;이렇게 해야하나?
- 현태야, 책에 나와있는데로 하면 되지??? --아영
- 근데, 문자랑 숫자를 입력받은 후 출력받은담에 프로그램이 끝나게 만들어야 해? -아영
- 1thPCinCAUCSE/ProblemC . . . . 12 matches
1회 중앙대학교 컴퓨터공학과 프로그래밍 경진 대회 C번 문제 : 색깔 바꾸기
칸을 하나 누르면 그 칸과 이웃한 칸들의 색이 반대로 변한다. 예를 들어, 1번을 누르면 1,2,4,5 번의 색이 반대로 변한다. 6번을 누르면 2,3,5,6,8,9 번의 색이 반대로 변한다. 물론 5번을 누르면 1,2,3,4,5,6,7,8,9 번의 색이 반대로 변한다. 예를 들어 아래 그림 (a)에서 6번칸을 누르면 그림 (b)로 변하고, 여기서 1번칸을 누르면 그림 (c)가 되어 모두 하얗게 변한다. (a) 그림을 모두 하얗게 만드는데 누르는 회수는 2이다.
각 칸이 검은 색이나 흰색으로 칠해진 3*3 정사각형이 주어질 때, 이를 모두 흰색이 되도록 하는데, 누르는 회수를 최소로 하는 방법을 찾는 프로그램을 작성하시오.
입력은 표준 입력이다. 입력의 첫줄에 테스트 케이스의 개수를 나타내는 정수 T (10 이하) 가 주어진다. 다음 T줄의 각 줄마다 테스트 케이스가 주어진다. 테스트 케이스는 b와 w로 이루어진 길이 9인 문자열이 주어진다. 이 글자들 사이에는 빈칸이 없다. 이들은 차례로 1,2,3,4,5,6,7,8,9에 해당하는 칸의 색을 나타내는데, b는 검은색이고, w는 흰색이다.
출력은 표준 출력이다. 각 테스트 케이스의 X에 대해 자기가 계산한 회수를 한 줄에 하나씩 출력한다. 모두 흰색으로 바꾸는 것이 불가능하면 -1을 출력한다. T개의 테스트 케이스를 모두 맞춰야 맞춘 것이다.
- 2006년4학년1학기수업 . . . . 12 matches
서울 22390 - 01 프로그래밍실습(1) 컴퓨터공학부 전공 봅스트홀 컴퓨터공학과실습실3(수10,7,8,9)
서울 32732 - 01 고급프로그래밍실습(1) 컴퓨터공학부 전공 봅스트홀 컴퓨터공학과실습실3(월9,10,11,12)
서울 31582 - 01 데이터베이스프로그래밍실습 컴퓨터공학부 전공 한상만 봅스트홀 컴퓨터공학과실습실3(목10,7,8,9)
고급프로그래밍실습(1) 들을듯.
재선아 형인데 프로그래밍실습(1) 요고 들으믄 안댈까?
일단 신청해 놓으세요. 구피에서 수업하면 20명 정원이니 나중에 신청하기 힘들어요. 교수님이나 조교에 따라 스타일이 다르니 수업을 어떤 식으로 진행할지는 모르겠네요. 저는 고급(1)신청할래요~ -- 재선
|| 7(3:00) || || || 프로그래밍실습(1) || || ||
|| 8(4:00) || || || 프로그래밍실습(1) || || ||
|| 9(5:00) || || || 프로그래밍실습(1) || || ||
|| 10 || || || 프로그래밍실습(1) || || ||
2학점짜리 전공하나 들어야대고 하나는 자유선택으로 OCU
프로그래밍실습(1) : 22390-01
- 2ndPCinCAUCSE/ProblemB . . . . 12 matches
우리 나라는 가족 혹은 친척들 사이의 관계를 촌수라는 단위로 표현하는 문화를 가지고 있다. 이러한 촌수는 다음과 같은 방식으로 계산된다. 기본적으로 부모와 자식 사이를 1촌으로 정의하고 이로부터 사람들 간의 촌수를 계산한다. 예를 들면 나와 아버지, 아버지와 할아버지는 각각 1촌이므로 나와 할아버지는 2촌이 되고, 아버지 형제들과 할아버지는 1촌이므로 나와 아버지 형제들과는 3촌이 된다. 여러 사람들에 대한 부모 자식들 간의 관계가 주어졌을 때, 주어진 두 사람의 촌수를 계산하는 프로그램을 작성하시오.
입력은 표준 입력이다. 입력의 첫줄에 테스트 케이스의 개수를 나타내는 정수 T(10 이하)가 주어진다. 다음 줄 부터 T개의 테스트 케이스가 주어진다. 테스트 케이스에서 사람들은 1,2,3,...,n (1<=n<=100)의 연속된 번호로 각각 표시된다. 테스트케이스의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야하는 서로 다른 두 사람의 번호가 주어진다. 그리고 셋째 줄에는 입력할 부모-자식 관계의 개수 m이 주어진다. 넷째 줄부터 m개의 줄에는 부모-자식 관계를 나타내는 두 번호 x y 가 나온다. 이 때 앞에 나오는 번호 x 는 뒤에 나오는 정수 y의 부모 번호를 나타낸다.
출력은 표준 출력이다. 출력은 T줄로 이뤄진다. 각 테스트 케이스에 대해서 입력에서 요구한 두 사람의 촌수를 나타내는 정수를 출력한다. 어떤 경우에는 두 사람간의 친척 관계가 전혀 없어 촌수를 계산할 수 없을 때가 있다. 이 때는 -1을 출력한다. T개의 테스트 케이스를 모두 맞혀야 이 문제를 맞힌 것이다.
- 2학기파이선스터디/클라이언트 . . . . 12 matches
* ReceiveMessage? : 서버로부터 전달되는 메시지를 받아서 ChatMain? 클래스의 메시지 출력 화면에 보여주는 역할을 한다.
* SendMessage? : 서버로 메시지를 보낸다.
self.show.insert(END, str(i))
self.list.insert(END, str(i))
self.edit.delete(0, END)
if __name__ == "__main__":
## csock.send(User)
else:
def sendMessage(self, event):
self.edit.delete(0, END)
csock.send(aUser)
self.show.insert(END, "< " + str(aUser.ID) + " > : " + str(aUser.message))
if __name__ == "__main__":
## csock.send(user)
else:
root.bind("<Return>", win.sendMessage)
- 3N 1/김상섭 . . . . 12 matches
if(table[i] == 0)
if(num % 2 == 0)
if(num > Min && num < Max && table[num] == 0)
else if(num % 2 != 0)
if(num < 0)
cout << " 하하 " <<endl;
if(num > Min && num < Max && table[num] == 0)
// cout << i << " " << table[i] << endl;
if(i > j)
if(table[k] > max_num)
cout << max_num << endl;
- 3N+1/김상섭 . . . . 12 matches
if(table[i] == 0)
if(num % 2 == 0)
if(num > Min && num < Max && table[num] == 0)
else if(num % 2 != 0)
if(num < 0)
cout << " 하하 " <<endl;
if(num > Min && num < Max && table[num] == 0)
// cout << i << " " << table[i] << endl;
if(i > j)
if(table[k] > max_num)
cout << max_num << endl;
- 3N+1Problem . . . . 12 matches
3. if n == 1 then STOP
4. if n is odd then n = 3n + 1
5. else n = n/2
만약 입력으로 22가 주어졌을때 출력값은 22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1 가 될 것이다. 이 알고리즘은 간단해 보이지만 n의 값이 1로 되어 알고리즘이 종료될지는 모르는 일이다. 하지만 이는 0과 1000000 사이의 숫자, 아니 이보다 더 큰 숫자에 대해서도 n의 값이 1이 된다고 증명되었다.
입력으로 22가 주어졌을때, 출력되는 값의 수 n(22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1) 는 22 16이다. 이를 n에 대한 cycle-length 라고 한다.
정수 i와 j 에 대해 두 수 사이에 존재하는 cycle-length 값들중의 최대값을 구할 것이다. 입력은 아래와 같이 한 줄에 한 쌍의 정수로 이루어져 있다. 출력값은 이 두 정수 사이의 cycle-length 중에서 최대값을 구하는 것이다.
* 기존의 코드를 수정해서 가장 큰 Cycle Length 가 아닌 3번째로 큰 Cycle Length 를 구해보세요.
실행시간(i=1,j=1000000 기준 4초 통과)는 파이썬의 경우 가능할런지 모르겠네요. 나름대로 알고리즘을 보강했는데도 1, 100000에 빌빌 거리니...--[강희경]
- AM/20040705두번째모임 . . . . 12 matches
* Spy++, goto definition 으로 실제 코드가 돌아가는 모습과 선언부분을 직접 보여줌 -> [1002] 개별상담, 선배에게 조언
* 과감한 프로젝터, PC실 컴퓨터 등 시설물을 적극적으로 활용하였다.
* [1002]가 중간에 설명함으로 인해 앞에서 설명한 사람의 흐름을 끊음.
* 연락을 하지 않고 온 사람들로 인해 기존 정한 룰이 깨짐. 룰에 의한 효과도 저하됨.
* 진도방식 책위주 아닌 목표 프로그램의 구현을 목표로 진행하는 것은 어떨까? 일종의 milestone (중간 기점)
식으로 진행하는 방향으로.
* 스터디 진행을 두 부분으로 나누는 방법. 앞부분에서는 이론적인 부분을 같이 정리하고, 뒷 부분에선 Pair로 실제 구현을 진행하기
* 스터디 끝나기 5분전 정리의 시간. 인덱스 카드를 나누어준뒤, 그날 배웠다 생각되는 것을 5분 내로 적기.
- ATmega163 . . . . 12 matches
* 하이 퍼포먼스 , 로우 전력 - 그래봤자 8 BIT
* 비휘발성 프로그램 과 데이타 메모리
* 자체 프로그래밍 가능한 플래쉬 메모리
* 마이크로 로봇
== 프로그래밍에 필요한 유틸리티 ==
* 이후 새롬 데이타맨에서 모뎀에 의한 연결로 SETTING하고 baud rate를 19300(ㅠㅠ) 로 설정 후 reset 버튼을 누르면 [[BR]]
c:\> 에서 avrgcc 폴더로 옮기고
###### dependecies, add any dependencies you need here ###################
device missing or unknown device 라고 나온다. ponyprog 에서 장치를 꼭 163 L 로 해야하나? 163 밖에 없던데..
- C++스터디_2005여름 . . . . 12 matches
C++의 기초를 실습위주로 다져가는 스터디 입니다.
|| 05. 8. 7 || 보창 아영 규완 도연 수민 || 객체지향 실습. 프로그램짜기 ||
|| 05. 8. 11 || 보창 아영 유선 도연 수민 || 객체지향 실습. 간단한 프로그램 짜기 ||
|| 05. 8. 16 || 보창 아영 규완 도연 수민 || c++ 전반적인 용어 정리. 도서관리 프로그램 짜기 ||
|| 05. 8. 18 || 보창 아영 유선 도연 || 상속. 도서관리 프로그램을 실제로 함께 짜보기. ||
[C++스터디_2005여름/도서관리프로그램]
[C++스터디_2005여름/학점계산프로그램]
왠만하면 헤더파일 .h 말고 파일명 없는걸로 쓴는게 좋지 않을까요??
#include "sasa.h" -> 그래로..ㅡㅜ
등으로 고치면 될겁니당...@,.@ - 상섭
꼭 목요일 마지막 시간에는 지금까지 내 준 숙제 2개를 해서 페이지에 올리고, 모두 참석해 주세요. 만약 다 못하게 되더라도 혼자 힘으로 한곳까지 올려서 오세요. 마지막 날은 숙제를 비교해 가며 마무리를 하도록 하겠습니다. -- 보창
- CMM . . . . 12 matches
Capability Maturity Model. 미국 Software 평가모델의 표준. ISO 표준으로는 ["SPICE"] 가 있다.
미 국방부과 계약하려는 업체의 경우 최소 CMM Level 3 이상이여야 함.
* SW-CMM : Capability Maturity Model for Software. 소프트웨어 프로세스의 성숙도를 측정하고 프로세스 개선 계획을 수립하기 위한 모델
* P-CMM : People Capability Maturity Model. 점차적으로 복잡해지는 소프트웨어 환경에 효과적으로 대응하기 위하여 개인의 능력을 개발하고 동기부여를 강화하며 조직화하는 수준을 측정하고 개선하기 위한 모델
* SA-CMM : Software Acquisition Capability Maturity Model. 소프트웨어 획득 과정을 중점적인 대상으로 하여 성숙도를 측정하고 개선하기 위한 모델
* SE-CMM : Systems Engineering Capability Maturity Model. 시스템공학 분야에서 적용하여야 할 기본 요소들을 대상으로 현재의 프로세스 수준을 측정하고 평가하기 위한 모델로서 기본적인 프레임웍은 SW-CMM과 유사
* IPD-CMM : Integrated Product Development Capability Maturity Model. 고객 요구를 보다 잘 충족시키기 위하여 소프트웨어 제품의 생명주기 동안에 각각 진행되는 프로젝트들이 적시에 협동할 수 있는 제품 개발체계를 도입하기 위한 모델
* CMMI : Capability Maturity Model Integration. 모델을 사용하는 입장에서는 각각의 모델을 별개로 적용하는 것보다는 전체적 관점에서 시너지 효과를 내기 위해서는 어떻게 적용할 것인가에 대한 방안이 필요하게 되어 개발된 통합 모델
- CPPStudy_2005_1/STL성적처리_1 . . . . 12 matches
istream& readScores(istream &in, ifstream &fin, vector<Student_info> &students);
ifstream fin("score.txt");
s.total=accumulate(s.subjects.begin()+(s.subjects.size()-4),s.subjects.end(),0);
transform(students.begin(),students.end(),back_inserter(sum),Sum);
transform(students.begin(),students.end(),back_inserter(averageScore),average);
sort(students.begin(),students.end(),totalCompare);
for(vector<Student_info>::const_iterator it = students.begin() ; it!=students.end();++it)
istream& readScores(istream &in, ifstream &fin, vector<Student_info> &students)
it!=subject.end() && fin>>scoreTemp;++it)
http://zeropage.org/~namsangboy/score.GIF
s.total=accumulate(s.subjects.begin()+(s.subjects.size()-4),s.subjects.end(),0);
* 이 부분에서 살짝 삽질을 했다. 처음에 s.begin() 부터 s.end() 범위로 하니깐 누적되어서 더해져서 삽질하다가 다른 방도를 찾아서 저렇게 했다.
- CarmichaelNumbers/문보창 . . . . 12 matches
중간에 발생하는 버그를 잡는데 대부분의 시간을 허비했다. 65000 이란 수는 작지만 65000의 제곱은 int형의 범위를 벗어난다. ㅡㅡ; 오버플로우를 교모히 이용한 함정에 고생했다.
Carmichael Numbers를 찾는 Theorem이 있는 듯하다. 그러나 때려맞추기(?)로 문제를 풀어도 풀린다. 그러나 속도는 떨어진다.
if (isPrime(n))
if (isCarmichael(n))
else
if (n % i == 0)
if (type == NORMAL)
else
if (!passFermatTest(i, n))
if (modulo == a)
if (modN - expo <= 6)
else
- ChocolateChipCookies . . . . 12 matches
초코칩 쿠키를 만들기 위해 밀가루와 소금, 기름, 베이킹 소다, 초콜릿 칩을 섞어서 반죽을 만든 다음 가로, 세로 50cm의 정사각형 모양으로 밀어서 편다. 그리고 이 평평한 반죽을 원형으로 잘라서 쿠키판 위에 놓은 다음 약 20분 동안 오븐에서 굽는다. 쿠키가 다 되고 나면 오븐에서 꺼내서 식힌다.
반죽을 밀어서 편 다음에 첫번째 쿠키를 잘라내는 단계를 생각해보자. 반죽에 들어있는 초콜릿 칩은 모두 겉으로 드러나 있는데, 원 안에 칩이 최대한 많이 들어갈 수 있도록 자르는 방법을 찾아보자.
첫째 줄에는 테스트 케이스의 개수를 나타내는 양의 정수가 한 개 입력된다. 그 다음 줄은 빈 줄이며, 서로 다른 테스트 케이스는 빈 줄로 구분된다.
각 테스트 케이스마다 여러 줄이 입력되는데, 각 줄마다 쿠키 반죽의 정사각형 표면에 있는 칩의 위치인 (x,y) 좌표를 나타내는 부동소수점수가 두 개씩 입력된다. 각 좌표는 0.0 이상 50.0 이하다. (단위는 센티미터) 각 칩은 점으로 생각할 수 있다. 초콜릿 칩의 개수는 최대 200개며, 전부 서로 다른 위치에 있다.
각 테스트 케이스에 대해 지름 5cm인 쿠키 한 개에 들어갈 수 있는 초콜릿 칩의 최대 개수를 나타내는 정수를 하나씩 출력한다. 쿠키가 완전히 가로, 세로 50cm인 반죽 판 안에 들어가야 할 필요는 없다(즉 쿠키가 완전히 원 모양이 아니어도 괜찮다).
서로 다른 테스트 케이스의 결과 사이에는 빈 줄을 출력한다.
- DocumentObjectModel . . . . 12 matches
Document Object Model (DOM) is an application programming interface to access HTML and XML documents. It is programming language and platform independent. Behind the interface the document is represented with an object-oriented model.
Different variants of DOMs were initially implemented by web browsers to manipulate elements in an HTML document. This prompted the World Wide Web Consortium (W3C) to come up with a series of standard specifications for DOM (hence called W3CDOM).
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 를 이용하는게 좋겠지.
- EightQueenProblem/김준엽 . . . . 12 matches
1번문제를 제대로 이해 못해서 실수로 모든 경우를 구해버렸습니다. -0-;;;
if (i==x | j==y | (y-j)==(x-i) | (y-j)==-(x-i))
if (m_cells[i][j] == 1)
else if (m_cells[i][j] == -1)
else
std::cout << std::endl;
std::cout << std::endl;
if (y >= 8)
if ( cboard.isEmptyCell(x, y) )
- EightQueenProblem/이덕준소스 . . . . 12 matches
if (EightQueens(0,queens))
cout<<endl;
else
if (Promissing(level,queens))
if (level==7)
else
if (EightQueens(level+1,queens))
if (level==0)
if (!WellPutted(i,level,queens)) //if (!WellPutted(i,j,queens))
if (queens[level1]==queens[level2])
if (abs(queens[level1]-queens[level2])==abs(level2 - level1))
- EightQueenProblem/조현태2 . . . . 12 matches
여전히 잠이 안오는 걸로봐서.. 데블스캠프가 밤낮을 바꾼듯..;;ㅁ;;
if (0==mark[x[qeen]][qeen])
if (-1<i)
mark[x[qeen]][i]=1;//가로
if (-1<x[qeen]+i && x[qeen]+i<8 && -1<qeen+i && qeen+i<8)
if (-1<x[qeen]+i && x[qeen]+i<8 && -1<qeen-i && qeen-i<8)
if (8==qeen)
if (2==mark[i][j])
else
else
if (8==x[qeen])
if(-1==qeen)
- EuclidProblem/조현태 . . . . 12 matches
최대공약수는 저번에 만들어 놓은 소스.. 복사~붙여넣기.. 이걸로 해결~
그러나 수학적 지식의 부재로 x,y는 어떻게 구해야 할지 모르겠다는 판단하에..
내가 수학시간에 주로 써먹었던.. 대입법! (이름만 거창하지 적당히 찍어서 넣어본다라는 이야기..)
if (0==input_a && 0==input_b)
if (number_a>number_b)
else
if (temp_plus>0 && number_a*(*x)+number_b*(*y)>gcm)
else if (temp_plus<0 && number_a*(*x)+number_b*(*y)<gcm)
if (*temp_small>0)
else
else
- FactorialFactors/조현태 . . . . 12 matches
블로그에 적은데에서 조금더 빠르게 만들었다.
누가 1억을 3-4초안에 출력하게 해주..ㅠ.ㅜ (참고로 이 소스는 12-13초 걸린다.)
결국 입력은 무슨 말인지 몰라서 내맘대로 정해버렸다. cin..ㅎㅎㅎ 누가 설명좀 해주..ㅎㅎ
보창형 심심하실까봐~ 어제 생각한대로 약간 수정했다. 더빠르게할 다른 방법도 있는것 같지만 일단 이거부터~
1억을 기준으로 테스트 했을때 13초->10초정도의 향상이 있다. T.T 별로 많이 빨라지지는 않았네..
cout << "2-1000000사이의 숫자를 입력해주세요.조건에 맞지않는 숫자를 입력하면 종료됩니다.\n";
unsigned int suchEnd = (unsigned int)sqrt((double)answer);
for (register unsigned int i=3; i<=suchEnd; ++i)
if (0==log_answer[i])
else
for (register unsigned int i = suchEnd + 1; i <= answer; ++i)
if (0==log_answer[i])
else
해봤어. 잘돌아가더라. 다른컴퓨터에서도..ㅎㅎㅎ 여전히 실행하면 바로뜨던데? 100만정도는 ㅎㅎ-[조현태]
- FromDuskTillDawn . . . . 12 matches
블라디미르는 새하얀 피부와 날카로운 이를 가지고 있다. 나이는 600살이나 되지만, 뱀파이어인 블라디미르에게 나이는 별 의미가 없다. 블라디미르는 뱀파이어로 살아가는 데 있어서 별 다른 불편함을 느끼지 못한다. 그는 항상 야간 근무를 맡는 의사로 일하고 있는데, 훌륭하게 의사 생활을 하고 있으며, 야간 근무를 도맡아 하다 보니 동료들하고도 매우 사이 좋게 지내고 있다. 그는 파티장에서 맛을 보는 것만으로도 혈액형을 알마맞히는 쇼를 보여주곤 한다. 블라디미르는 여행을 하고 싶은데, 뱀파이어이다 보니 세 가지 문제를 극복해야만 한다.
{{| 1. 항상 관을 가지고 다녀야 하기 때문에 기차 여행 밖에는 할 수가 없다. 다행히도 워낙 오랫동안 돈을 모았기 때문에 재력이 상당하므로 항상 1등칸을 타고 다닐 수 있다.
두 도시가 주어졌을 때 최단 경로를 찾는 프로그램을 만들어서 블라디미르가 최소한의 피만 챙겨서 여행할 수 있도록 도와주자. 피를 너무 많이 가지고 다니면 사람들이 "그 피 가지고 뭘 하실 건가요?" 같은 질문을 하면서 의심할 수도 있기 때문이다.
첫번째 줄에는 테스트 케이스의 개수를 나타내는 정수 한 개가 입력된다. 각 테스트 케이스의 첫번째 줄에는 그 밑에서 몇 개의 열차 노선을 설명할 것인지를 나타내는 정수 한 개가 입력된다. 각 노선을 설명하는 부분에는 두 도시의 이름, 첫번째 도시에서의 출발 시각, 그리고 총 여행 시간이 입력된다. 출발 시각은 반드시 정각이며, 여행 시간은 정확하게 정수 단위의 시간으로 표현된다. 블라디미르는 18:00 이전에 출발할 수 없으며 6:00 이후에 도착해서도 안 된다는 점을 꼭 기억해 두자.
도시의 개수는 최대 100개며, 열차 노선(서로 다른 출발 시각 포함)은 1,000개를 넘지 않는다. 여행 시간이 한 시간 미만이거나 24시간 이상인 노선은 없지만, 블라디미르가 탈 수 있는 노선은 주어진 시간 내에서만 12시간 이내로 여행하는 것으로 제한된다.
모든 도시 이름은 최대 32글자로 주어진다. 마지막 줄에는 두 개의 도시 이름이 입력되는데, 첫번째 도시 이름은 출발지 이름, 두번째 도시 이름은 도착지 이름이다.
- Googling . . . . 12 matches
{{|Google, Inc (NASDAQ: GOOG), is a U.S. public corporation, initially established as a privately-held corporation in 1998, that designed and manages the internet Google search engine. Google's corporate headquarters is at the "Googleplex" in Mountain View, California, and employs over 4,000 workers.|}}
Google, Inc 는 미국의 공공기업이다. 이 기업은 1998년에 개인적으로 설립된 회사이다. 이 회사는 구글 인터넷 검색엔진을 설계하고 운영한다. 구글은 Mountain View 에 Googleplex에 본사를 두고 있다. 그리고 4000명 이상의 사원이 있다.
구글사이트에는 대단히 다양한 정보가 존재한다. 현재 8,168,684,336(81억개ㅡ,.ㅡ)개의 페이지를 단 몇초만에 검색하고 가장 많은 사람들이 이용하는 사이트를 가장 합리적인 판단 기준에 의거해서 반환해준다. 이만큼 다양한 페이지가 존재하는 만큼 다양한 검색 옵션을 제공한다. 단지 몇개의 검색 명령어만을 아는 것 만으로도 자신이 원하는 정보를 아주 쉽게 찾을 수 있다.
|| "''keyword''" || 검색어를 문장단위로 검색한다. 의미가 확장되어서 검색되지 않는다. ||
|| +''keyword'' || 키워드를 반드시 포함한 결과를 보여준다. 일반적으로 stopword로 지정된 것을 검색할 때 이용한다. ||
|| filetype || 인자로 전달한 확장자를 지닌 문서만을 검색한다. ||
|| related || 인자로 전달된 사이트와 유사한 사이트를 검색한다. ||
''stop word: at, and 와 같은 일반적인 단어들은 검색을 할 경우 그 결과가 너무 많기 때문에 구글에서 제외시킨다. 이런 단어를 추가시켜서 검색하기 위해서는 검색어 앞에 + 를 붙여야한다.''
구글로 만든 장난감 프로그램들이 많이 있다.
검색 연산자가 더 많았던 걸로 기억하는데... =.= 도무지 기억이 안나는 군요. - [eternalbleu]
- HelpOnLists . . . . 12 matches
숫자가 매겨진 리스트와 총알 리스트를 아주 자연스럽게 입력하실 수 있습니다. 총알 리스트를 만들고 싶으시면 그 줄의 첫 시작을 "{{{[공벡]*}}}"로 시작하여 써주시면 됩니다; 숫자가 매겨진 리스트는 그 줄의 시작을 {{{[공백]1.}}}으로 시작하시면 됩니다.
복잡한 리스트도 간단히 공백으로 여러번 들여쓰기를 하면 쉽게 만들 수 있습니다.
만약 공백을 넣어 들여쓰기만 하고 {{{*}}}나 번호리스트를 지원하는 {{{1.}}} {{{a.}}} 이외의 다른 문자가 온다면, 그 단락은 들여쓰기된 단락으로 인식됩니다.
공백을 하나 넣어 새로운 들여쓰기
새로운 단락을
공백을 하나 넣어 새로운 들여쓰기
새로운 단락을
If you indent text
then it is indented
And if you put asterisks at the start of the line
If you indent text
like this, then it is indented in the output
And if you put asterisks at the start of the line
- HowBigIsIt? . . . . 12 matches
이안이 캘리포니아로 이사를 가기 위해 짐을 싸고 있는데, 지금까지 모은 원도 포장해야 한다. 일련의 원이 주어졌을 때 그 원들을 모두 집어넣을 수 있는 가장 작은 직사각형 상자의 크기를 구하는 프로그램을 만들어야 한다.
모든 원은 상자 바닥에 닿아야 한다. 아래에 원을 직사각형 상자에 집어넣는 방법이 나와있는데, 이 그림에 나온 배치법은 최적의 방법이 아닐 수도 있다. 조금만 생각해보면 알겠지만, 최적화된 방법이라면 모든 원들이 서로 맞닿아있어야만 한다.
[http://online-judge.uva.es/p/v100/p10012.gif]
첫째 줄에는 테스트 케이스의 개수를 나타내는 양의 십진수 n(n≤50)이 입력된다. 그 밑으로 n줄에 걸쳐서 일련의 수들이 입력되는데, 각 수는 스페이스로 구분된다. 각 줄의 첫째 줄은 8 이하의 양의 정수 m이며, 그 줄에 몇 개의 수가 더 들어있는지를 나타낸다. 그 뒤로 m 개의 수가 입력되는데, 각각 상자에 집어넣어야 할 원의 반지름을 의미한다. 이 수들은 꼭 정수가 아니어도 된다.
각 테스트 케이스에 대해 원들을 모두 포장할 수 있는 가장 작은 직사각형 상자의 크기를 출력한다. 각 케이스에 대한 결과가 서로 다른 줄에 출력되어야 하며, 소수점 아래로 셋째 자리까지 출력한다. 숫자가 1보다 작지 않은 경우에는 앞에 불필요한 0을 덧붙이지 않는다(1 미만인 경우에는 0.543 같은 식으로 앞에 0을 하나 붙여준다).
- HowManyFibs?/1002 . . . . 12 matches
input space 로 볼때 최악의 경우가 1~10^100 일 수 있겠다는 생각을 하면서 뭔가 다른 공식이 있겠다 생각, 피보나치의 closed-form 을 근거로 해결할 방법에 대해 궁리해보다. a,b 구간에 가장 가까울 f(x),f(y)를 각각 구하고, y-x 를 구하면 되리라고 생각. 하지만 3시간동안 고민했는데 잘 안되어서, 그냥 노가다 스러운 방법으로 풀기 시작.
if n in [1,2]: return s[n-1]
if n==i: return fiboI
if a < fiboI < b: count+=1
if fiboI > b: return count
근데, a,b=(1,10^100) 로 해도 1초도 안걸린다. 처음에는 'big integer 를 만들어라!' 라는 문제가 아니라고 생각했는데, 풀고 나니 뭔가 허탈함. 글쌔. 출제자가 원한 답은 big integer emulation 이였을까. 흑..
* 구간 계산과 관련, 'a 와 가장 가까운 fibonacci 값을 구하기' 는 반복문 돌리기 & if 로 비교 말고 다른 방법이 없을까?
* bigint 를 지원하는 python 이나 matlab 같은 언어에서는 더 할일이 없는 문제. 내가 공식 궁리하는 동안 옆의 분이 matlab 으로 10분만에 풀어버리다. 흑.
- InWonderland . . . . 12 matches
데이터베이스 및 전자상거래 프로젝트
=== 데이터베이스 프로젝트 소스 및 문서 ===
=== 전자상거래 프로젝트 소스 및 문서 ===
|| 홈페이지(로그인) || . || ||
public bool CertifyStore(string storeReg, string storeAuth) // -인자: 사업자 등록 번호, 가맹점 비밀 번호
클라이언트에서 포인트 적립이나 사용이후에 남은 결과 포인트도 보여줘야 하지 않어? 그리고 로그 아웃도 필요하잖어.--철민
그건 적립이나 사용후에 "포인트 조회" 서비스를 통해서 보여주면 되겠지. 그리고 로그아웃도 서비스로 넣을 필요는 없어. --재동
로그인 후 다른 페이지 이동해도 로그인 유지
철민아 작업은 {{{~cpp EC_AliceCardHome001.zip}}} 이걸로 하고 월요일 저녁 5시까지 해줘. 난 함수 내부 채우고 프리젠테이션 만들고 있으마. --재동
[프로젝트분류]
- JollyJumpers/임인택 . . . . 12 matches
public String testify() {
if( (tmp<size) && !isExist[tmp-1]) {
System.out.println(jj.testify());
public class TestJJ extends TestCase {
assertEquals("Jolly", jj.testify());
assertEquals("NotJolly", jj.testify());
if( arr.length != array.length )
if( arr[i] != array[i] )
if( arr.length != flags.length )
if( arr[i] != flags[i] ) {
if( tmp<array.length && !flags[tmp-1]) {
public String testify() {
- LUA_2 . . . . 12 matches
이번에는 루아의 자료형에 대해서 글을 써 보겠습니다. 루아의 자료형은 많지 않습니다. 기본적인 자료형은 숫자, 문자열, nil(Null) , boolean 이 있습니다. 간단하게 예를 살펴보면 type 연산자로 자료형의 이름을 알 수 있습니다.
위와 같은 명령어로 자료형의 type을 알 수 있습니다.
그리고 추가적으로 table이라는 자료형이 있습니다. table은 배열로 볼 수도 있지만 루아에서는 좀 더 다른 의미를 갖습니다. table은 나중에 따로 설명하도록 하겠습니다. 우선 오늘은 맛보기로 table을 만들어만 보겠습니다.
루아는 특이하게 복수 대입을 사용할 수 있습니다. 예를 들면 첫번째 변수에는 '=' 이후 첫번째 값을 두번째 변수에는 두번째 값을 대입하는 방식으로 사용할 수 있습니다.
문자열 비교 연산자, 문자열도 알파벳 순으로 비교, 크고 작고를 알 수 있습니다.
마지막으로 루아의 자동 형 변환 기능을 보여드리겠습니다.
> print( -fake_two + 2 ) --- -fake_two는 앞에 '-'로 인해 음수가 되고 여기에 2를 더해서 0이 출력 됨
마지막으로 오늘 배운 것 이외에 추가로 주석처리 하는 방법을 살펴 보겠습니다. 앞서 예제에서 '--' 를 하고 코드를 설명했는데 '--' 가 주석을 시작하는 코드입니다. 한 줄 이상의 주석 처리는 "--[[" 와 "--]]"를 통해서 처리할 수 있습니다.
- LazyInitialization . . . . 12 matches
ExplicitInitialization의 모든 장점은 단점으로, 단점은 장점으로 된다. 당연하다.(--;)
LazyInitialization의 하나의 변수당 두개의 메소드로 나눠서 초기화를 한다. 하나는 변수가 LazyInitialization되는 것을 감추어 주는 getter이고, 다른 하나는 변수에다 디폴트값으로 할당을 해줄 DefaultValueMethod이다. 이 방법은 유연성이 증대된다. 당신이 서브클래스를 만든다면, DefaultValueMethod를 오버라이딩함으로써, 기능을 바꿀 수 있다. 전장에서도 언급했듯이 성능도 증대시킬 수 있다.
앞에서 살펴본 타이머 예제로 해보자.
if(!count) // --; 어쩔수 없다. 그냥 옮긴거다.
return 0; // 상수로 해결가능할듯
if(!period)
return 1000; // 상수로 해결가능할듯
별로 안쓸듯하지만... 켄트벡 왈 : 일단은 ExplicitInitialzation으로 출발을 하고, 상속될 거 같으면 LazyInitialization을 사용한다.
- Marbles/문보창 . . . . 12 matches
if (n == 0)
if (cheapest == TYPE1)
else
if (n % n1 == 0)
if (temp % n2 == 0)
if (firstModulo == temp % n2)
if (marble.box1 == -1)
else if (cheapest == TYPE1)
cout << marble.box1 << " " << marble.box2 << endl;
else
cout << marble.box2 << " " << marble.box1 << endl;
- MineSweeper/문보창 . . . . 12 matches
if(!inMine(mine, nField, size))
if (n == 0 && m == 0)
if (temp == '*')
else if (temp == '.')
else
if (!first)
cout << endl;
if (*pr) // 지뢰라면
if (mineSweep[j][k] < 0)
else
cout << endl;
- Monocycle/김상섭 . . . . 12 matches
if(temp[j] == '.')
if(temp[j] == 'S')
if(temp[j] == 'T')
if(next.row >= 0 && next.row < M && next.col >= 0 && next.col < N && table[next.row][next.col] )
if(next.turn_num < Max_turn)
if(next.pre_turn == right)
else if(next.pre_turn == left)
else if(next.pre_turn == NULL)
cout << endl;
cout << length(M,N) << endl;;
- NSIS/예제2 . . . . 12 matches
http://zeropage.org/~reset/zb/data/nsis_1.gif
; 인스톨러 프로그램 이름
; (만일 인스톨을 다시 할경우
; 예전의 레지스트리를 자동으로 overwrite 할 것임)
SectionEnd
SectionEnd
http://zeropage.org/~reset/zb/data/nsis_2.gif
; 인스톨러 프로그램 이름
http://zeropage.org/~reset/zb/data/nsis_3.gif
http://zeropage.org/~reset/zb/data/nsis_4.gif
http://zeropage.org/~reset/zb/data/nsis_5.gif
SectionEnd
; 인스톨러 프로그램 이름
; (만일 인스톨을 다시 할경우
; 예전의 레지스트리를 자동으로 overwrite 할 것임)
SectionEnd
SectionEnd
SectionEnd
SectionEnd
SectionEnd
- NumberBaseballGame/동기 . . . . 12 matches
if (number[0]!=0 && number[0]!=number[1] && number[1]!=number[2] && number[0]!=number[2])
cout<<number[0]<<number[1]<<number[2]<<endl;
if (input[0]!=0 && input[0]!=input[1] && input[1]!=input[2] && input[0]!=input[2])
if (number[k]==input[k])
if (number[0]==input[k])
if (number[1]==input[k])
if (number[2]==input[k])
if (strike==0 && ball==0)
cout <<"out"<<endl;
else
cout <<" strike"<<strike<<"\t"<<" ball"<<ball<<endl;
cout <<"정답입니다."<<endl;
- ObjectProgrammingInC . . . . 12 matches
결국 private가 없단 소린데... 컴파일 까지만 해서 lib 형태로 header에 public화 할 것만 공개한다면... 불가능이군...
차라리 저 구조체만 다른 lib에 저장시키고 링크를 불가능하게 내부에서만 연산을 한다면 몰라도. return value는 kernel이나 IPC로 넘겨 줘야할 듯.
이렇게 된다면 class에서 private를 쓰는 목적을 달성은 하지만 효용성은 거의 제로겠고...
attrib을 찍는다는 문제를 주셨는데... attrib가 private라 가정하고, 따라서 method1의 함수가 구조체(클래스)의 attrib을 고친다는 뜻으로 판단하고 생각해본다면... C++의 this란 예약어가 없다면 C언어에서 C++과 같은 class의 표현은 어려울 듯. 메모리주소로 가능을 할 수도 있으나, 코드 조작을 어셈블리 차원으로 내려가 하나하나 손봐야함... (이 답이 아니라면 낭패)
함수인자로 명시적으로 포인터를 넘겨주던지 해야겠네 ㅡ.ㅡ;; 결국 뻘짓이구만 ㅋㅋㅋ - [eternalbleu]
별 다른 뜻은 아니고, C++ 컴파일러의 경우 메소드인 경우 인자로서 this 를 자동으로 넘겨준다고 해서. 그리고, attrib 이 private 이 아닌 public 이라 하더라도, 똑같은 질문이 가능할듯. --[1002]
- PHP Programming . . . . 12 matches
[혜영생각] 우리홈만들기에서 홈페이지 안에 카운터나 게시판을 넣고 싶어서. 내가 만든 것으로 내 홈을 꾸미고 싶어서... [[BR]]
[지혜] 게시판을 만들 생각으로..
[지혜] 파일 업로드가 가능한 게시판을 만든다. (혜영과 별로 다를게 없군.. ㅡㅡ; 내 의견은 별로 필요해 보이지 않는걸그래.. ㅡㅡa)
[지혜] 이건 다음번에 만나서 자세하게 정하도록하죠.. ^^ (필요하다면 때때로 수정하구요. )
[지혜] 혜영양과 같은 교재임. PHP4책을 보는 것이 더 나을거라는 생각이드는고로.. 도서관에서 빌려볼 생각을 가지고 있음. 어쩐지 책이 더 맘에 들었달까나.. 아하하하.. ㅡㅡ;;
예전에 공부했던 자료들을 잠시 훑어봄(이런게 있었지 하는 기억만 되살리는 수준으로.. ^^;).
* 마이티프레스던가 거기서 개정증보판으로 나온 PHP책두 꽤 좋아~ Professional PHP Programming 책은 약간 읽기 답답할 수가 있거든..^^ 음.. 그 책 갖구 있는 넘으로서는 윤군이 있지..
* 저도 객원으로 껴주세요.. 전 다른책을 볼 생각이라서요. 'Beginning PHP 4' 인가? 아무튼 그거도 빨간책인데. 'Professional' 은 아무래도 무리스러워서. 승낙해주시면.. 가끔 문서화에 약간의 도움이라도..; -zennith
["프로젝트분류"]
- PNA2011/서지혜 . . . . 12 matches
* 프로세스 생성 비용이 작다.
* 사람에 대한 노력이 필요. 뛰어난 리더는 이끌기 보다는 스스로 이끌게끔 한다.(뒤에서 끌어준다)
* 창준선배의 내 아이와 프로그래밍으로 놀기
* 컴퓨터 밖으로 나가라 : 컴퓨터로 한 것을 실세계로 가져가라
* 내가 할 수 있는것으로 부터 시작해라 : 준비가 많이 필요하다면 잘못된 것이다. 다시하라
* 입으로 이러니 저러니 싸우지 말고 한번 실행해보자. 그 다음 다시 얘기해봐요:)
* 뒤편에 자신의 연락가능한 정보를 적어 비행기로 날린다!
* 회고중 만난 어떤 사람은 가까운 사람의 갑작스러운 죽음을 계기로 미래에 대해 생각하지 않게 되었다고 했다. 우연하게도 비행기 날리기로 이 사람의 미래일기를 받았는데 백지였다(고심하다가 무언가 쓴 말이 "없음"이었다). 자신의 미래를 대하는 이 일관성이 나에게 충격이었다.
- Postech/QualityEntranceExam06 . . . . 12 matches
1. 알고리즘 시그마 1~ i4 까지 타이트를 로우 빅오 사용하여 증명
3. 정수 4개일때 최소 비교 횟수로 소팅 해라
5. right linear 로 AB* U C* 인거 그래머로 적기
6. 1~3개 문제 펌핑 렘마 사용하여 증명 혹은 오토마타로 그려서 regular 에 속한다고 증명 하기
시덮지 않은 JK 플립 플롭 2개 있는 회로가 있고 이것의 오토마타 그리기 Moore 머신으로
이것들 JK 플립 플롭 1개로 만들 수 있나
3. Machine Language Like 한 프로그램 만들기. 코드 주고. 스앞 함수 호출하는 부분 있고 파라미터 패싱을 설명해야함.
실제 메모리 주소로 매핑 하면 어떻게 되나.
- 어떤 경우에 counting semaphore 를 쓰는지,,
Dynamic Scoping 에서 Shallow Access 하는 경우에 상관 없는 키워드 발견하기.
- ProgrammingLanguageClass/Report2002_2 . . . . 12 matches
1. To check the evaluation order of operands in the Compilers by raising the functional side-effects if possible;
1. To identify a situation in which the “add” operator would not be associative;
The output should be a sequence of test programs with the results generated from them. Your grade will be highly dependent on the quality of your test programs.
* 결과물은 주어진 것들에 의해서 만들어지는 테스트 프로그램을 순서대로 제출하라. 채점은 아마 테스트 프로그램의 품질이 많은 영향을 미칠것이다.
* 보통, floppy diskette에 당신의 프로그램과, 테스트한 데이터들과 실행에 의한 결과를 제출한다.
Be sure to design carefully your test data set to exercise your program completely. You are also recommended in your documentation to include the rationale behind your test programs.
* 프로그램의 완벽한 수행을 위해서 당신의 데스트 데이터를 신중히 설계하라. 또한 당신의 테스트 프로그램 내부에 합당한 문서를 첨부하는 것을 추천한다.
In order words, explain why you design them in such a way and what you intend to demonstrate
* 다시 말하여, 당신이 왜 그러한 디자인을 하였는지, 어떠한 의도로 해당 테스트를 만들었는지에 대한 논리적 설명을 첨부하라.
- ProgrammingPearls/Column1 . . . . 12 matches
=== A Friendly Conversation ===
대부분의 언어에는 소트가 이미 구현되어 있다. 그런데 꼭 새로운 나만의 소트를 만들어야 될때가 있다. 레코드가 한 천만개쯤 된다고 하자.이것을 우리가 알고 있는 버블소트, 퀵소트 같은 것으로 하기에는 메모리가 많이 든다. 32bit(4byte)의 정수라고 한다면, 40메가바이트가 필요하다. 하지만 어떤 작업을 할때에, 우리가 소트에 할당할 수 있는 공간은 1메가 남짓이라고 가정하자. 시간이 많이 걸려서도 안된다. 어떻게 해야 할 것인가? 이 레코드들은 7자리 전화번호이기 때문에 같은 것이 없다고 한다.
* 출력 : 오름차순으로 정렬된 숫자들
첨에는 머지 소트를 했었는데 버렸다. 다른 방법으로는, 각각의 숫자를 4byte로 표현하면 현재 메모리에 250,000개를 담을 수 있다. 250000개를 소트하고, 또 250,000개 읽고... 이걸 40번 하는 거다. 머지 소트는 중간 작업 파일에의 엑세스가 자주 일어나고, 두번째 방법은 입력을 40번을 받아야 한다는게 문제다. 이것 두가지의 장점을 잘 조합해서 입력은 한번, 중간 작업 파일이 없게는 할 수 없을까?
비트맵, 혹은 비트 벡터라 불리우는 방법이 유용할듯 싶다. 예를 들어 맥시멈 10미만의 숫자라 할때에, {1,2,3,5,8}을 표현해 보면, (0 1 1 1 0 1 0 0 1 1)이 된다. 있으면 1, 없으면 0인 것이다. 한 숫자당 1비트만 할당을 해서, 그것의 인덱스로 처리를 하는 것이다. 앞에서도 말했듯이, 미니멈과 맥시멈의 너비가 작고, 같은 숫자가 없으며, 관련된 데이터가 없다는 측면에서 이 방법을 쓸 수 있는 것이다. 대강의 코드는 다음과 같다.
# 배열값 0으로 셋팅
if b==1:
이것의 수행시간은 Θ(n)이다. 이 챕터는 문제를 주의 깊게 분석하다 보면, 가끔 엄청난 이득을 가져다 줄때가 있다는 교훈을 주고 있다. 문제 정의는 문제 풀이의 90프로다. 일반적으로 많은 공간을 사용하면 적은 시간이 소요된다고 한다. 그런데 비트맵 소트는 시간도 줄고, 공간도 줄어들었따. 적은 데이터를 다루는 것은, 그것을 수행하는 데에 더 적은 시간이 든다는 것이다. 그리고 데이터를 디스크에 두기 보다는 메모리 상에 두는 것이 디스크 액세스 같은 시간 걸리는 일을 줄일 수가 있는 것이다. 프로그램을 간단하게 짜자. 유지보수도 쉽고, 견고할 것이다.
- ProjectCCNA/Chapter5 . . . . 12 matches
* ip의 생성이유 : TCP/IP프로토콜을 사용하는 모든 장비를 구분하기 위해서
* ip주소는 2진수 32자리로 되어있음 -> 약 42억 9천개 -> 현재 사용자를 고려하면 남은 ip주소가 얼마 없음
이를 십진수로 표현시 0.0.0.0 ~ 255.255.255.255
* ip주소는 네트워크 부분과 호스트 부분으로 구분.
* 네트워크를 나타낼 땐 호스트 부분을 0으로 표현. 그리고 각 클래스에서 표현 가능한것의 제일 작은 수와 제일 큰수는 사용불가.
*호스트부분이 모두0은 네트워크, 1은 브로드캐스트 번호이므로 사용하지 않는다. -> 각 클래스에서 사용가능한 최대 호스트수는 순계산-2해줘야함.
* 기본 게이트웨이 : 내부 네트워크를 벗어날때 밖으로 통하는 문 -> 라우터의 이더넷 인터페이스
* 서브넷 마스크 : 주어진 ip주소를 네트워크 환경에 맞게 나누어 주기 위해서 씌워주는 이진수 조합 -> 이름 그대로 보조로 다시 한번 나눠준다.
* 서브넷 마스크로 나눈 서브넷 간의 통신은 라우터를 통해서 이루어진다.
[프로젝트분류], ProjectCCNA
- ProjectPrometheus/Iteration1 . . . . 12 matches
|| HTML Parsing 결과를 Object 로 반환 || 1 || ○ (1시간) ||
|| 도서관 검색 CGI 에 Get/Post 로 인자 전달 || 1 || ○ (30분) ||
|| 도서관 검색 CGI 에서 반환된 결과를 HTML 로 반환 || 1 || ○ (30분) ||
|| 도서관 검색 결과 Object 로 HTML 생성 . || 1 || ○ (30분) ||
|| {{{~cpp TestAdvancedSearch}}} || 1. 제목에 'Test' 키워드로 검색. 70 개 이상 검색되면 성공. (<TR> 갯수로 카운팅) || ○ ||
|| . || 2. 저자에 '김소월' 로 검색. 10개 이상이면 성공. || ○ ||
|| . || 3. 제목에 '한글' 로 검색. 10개 이상이면 성공. || ○ ||
|| {{{~cpp TestSimpleSearch}}} || 1. 키워드로 '한글'로 검색. 결과값이 10개 이상이면 성공. || ○ ||
|| . || 2. ISBN 으로 '897087223X'로 검색. 결과값에 저자명 '김불꾼' 이란 글자가 있으면 성공. || ○ ||
- ProjectSemiPhotoshop . . . . 12 matches
2002년 2학기 Object Programming 과목 ''' 상민,경태,현민 ''' 조의 프로젝트 페이지 입니다.
* ["경태"] : 회닉 중임다. 한마디로 찬란한 광채를 숨기고 구름 뒤에 숨어있는.. 짧게 말해 ZP기생충.. >.<
* 예비기간(알카로이드) ~ 11. ?
* [http://165.194.17.15/~neocoin/jsboard/list.php?table=pds ProjectSemiPhotoshop/자료실] - 프로젝트용 자료실 입니다.
* 각자 100~400자 이내로 이번의 프로젝트의 최종 느낌을 써주라.
* 상민 : 너무나 방해가 많은 프로젝트 였다. 강기, 조부 상, 이런 소사들이 팀 프로젝트에 많은 영향을 끼치지 않은것으로 Truck Number가 낮다고 생각되는 것이 참 만족할 느낌이였다.
* ''Xp Process 에서 거론되는 '''''트럭에 치일경우 프로젝트에 결정적 영향을 끼치는 평균 수치이다.''''' ''
["프로젝트분류"]
- ProjectSemiPhotoshop/요구사항 . . . . 12 matches
시스템 설계에 관한 전반적인 밑그림을 그리기 위해, 팀은 스토리 구현에 필요한 세부적인 작업에 대한 아이디어 수집을 한다. 이 단계에서 고객은 프로그래머가 전혀 이해하지 못하는 부분을 알아 볼 수도 있다. 설계 프로세스를 지켜보면서 팀 전체는 공통의 지식과 자신감을 얻게 된다.
영상처리는 흑백 영상을 기본으로 한다.
* 현재의 화면 or 결과 화면을 bmp 파일로 저장(*.bmp)(O)
* Quantization => 2, 4, 16, 256 가지 명암으로 표시 (O 흑백 )
* 윈도우로 설정한 영역에 대해서만 '7. 영상 질 향상' 적용(O)
참신한 아이디어를 추가할 경우 최대 3점까지 추가 점수가 가산될 수 있다.
단, 교재에 있는 코드를 그대로 복사해서 제출하면 참신한 코드라고 할 수 없으므로 가산 점이 주어지지 않는다.
* 이 과제의 점수를 30% (30점 / 성적 100점)로 한다.
* 레포트 표지에 자신이 수행한 내용 중 3)을 추가한 경우 설명서의 6, 7, 8과 같이 표시하고, 4)의 내용을 추가한 경우 설명서의 번호 9.를 표시한다.
- RandomWalk/유상욱 . . . . 12 matches
cout << random << endl;
if ( (y - 1) != -1 )
cout << "위" << endl;
if ( y + 1 != question )
cout << "아래" << endl;
if ( x - 1 != -1 )
cout << "좌" << endl;
if ( x + 1 != question )
cout << "우" << endl;
if (data[i][j] == 0)
if ( count == 0 )
cout << endl;
- RandomWalk2/상규 . . . . 12 matches
=== 프로그램 소스 ===
if(strcmp(buffer,"999")==0)
cout << count << endl;
cout << endl;
// 종료 조건 검사
if(board[i][j]==0)
if(quit==false)
if(quit==true || journey[journeycount]=='\0')
if(currenti==-1) currenti=m-1;
if(currenti==m) currenti=0;
if(currentj==-1) currentj=n-1;
if(currentj==n) currentj=0;
- STL/list . . . . 12 matches
* 만들기 까다로운 더블 링크드 리스트를 제공해준다.
for(i = l.begin() ; i != l.end() ; ++i)
cout << *i << endl;
while( i != l.end() ){
cout << *i << endl;
=== 프로그램의 예 ===
cout << "for 문에서 반복자 이용 순회" << endl;
for(i = l.begin() ; i != l.end() ; ++i)
cout << endl;
cout << "while 문에서 반복자 이용 순회" << endl;
while( i != l.end() ){
list 의 반복자는 양방향 반복자로서 임의 접근 반복자가 지원하는 연산을 제외한 기타 모든 연산자에 대한 연산을 지원한다.
- ScheduledWalk/창섭&상규 . . . . 12 matches
=== 프로그램 디자인 ===
* 사용자(User) -> 프로그램 사용자와 대응되는 객체
http://zeropage.org/~lsk8248/wiki/ScheduledWalk.gif
=== 프로그램 소스 ===
if(IsFinished())
if (BoardArray[i][j] == 0)
if(CurrentLocation.x==-1) CurrentLocation.x=MyBoard->BoardSize.height-1;
if(CurrentLocation.x==MyBoard->BoardSize.height) CurrentLocation.x=0;
if(CurrentLocation.y==-1) CurrentLocation.y=MyBoard->BoardSize.width-1;
if(CurrentLocation.y==MyBoard->BoardSize.width) CurrentLocation.y=0;
cout << "움직인 횟수: " << board->TraceCount-1 <<endl;
cout << endl;
- SignatureSurvey . . . . 12 matches
HTML Template 부분을 Generating 하는 부분을 하던중, 디자이너가 툴로 만든 HTML 코드를 분석해볼때 SigntureSurvey 의 방법을 적용해보면 어떤 일이 일어날까 의문이 들었다. 그래서 간단하게 실험해보고, 어떠한 View 를 얻을 수 있을까 구경해보다.
def repl_tagEnd(self, aText):
tagEnd = Rep1(AnyBut(">")) + Str(">")
(tagEnd, repl_tagEnd),
if token[0] is None:
if __name__=="__main__":
lines = [line for line in result.splitlines() if line.strip() != '']
이를 분석할때는 4-5point 로 레이저로 2단 나누어서 찍었다. 별로 종이를 많이 차지하지 않는다.
정확히 분석을 한 것은 아니지만. <> 태그 안으로 쓴 글자수가 같다면 화면상에서도 비슷한 것을 보이게 하기 위해 C & P 를 했을 확률이 높다. 그러면 그 부분에 대해서 looping 을 하는 식으로 묶으면 될것 같다. 종이로 찍어놓고 보면 반복되는 부분에 대해서 일반화된 패턴이 보인다는 것을 알 수 있다. 그 부분에 대해 적절히 1차적으로 검색을 하고, generating 할때의 단위들을 끄집어내면 되는 것이다.
처음써봐서 완벽하게 확신이 들진 않지만, SignatureSurvey 를 사용하면 Duplication Code 를 찾는 방법으로 일반화를 시킬 수 있지 않을까 하는 상상을 해본다.
- SnakeBite/창섭 . . . . 12 matches
* MFC 로 합니다. -.-
* 태호형의 권유로. -_-;
* 끝 -- 3.3 뜻하지 않던 일들이 생겨 일정에 차질을 빚었다. 개강전으로 미룬다. 그때까지도 못하면 더이상 미루지 않는다. --;
* 2.21 까지: 키입력 받고 움직임. 그러나 스스로 안 움직이고 바깥에 나가면 에러날뿐더러 자취가 안 없어짐. 먹이 먹어도 아무 이상 없음. 먹이도 다시 안 생김. -_-
* 뱀을 설계할 때 Linked List 로 해야 하는 것 같아 그걸 짜는데... 1학년 공부를 소홀히 해서 애를 먹었습니다.--;;
* 타이머를 잘 몰라서 인수랑 선호 문서 좀 봐야죠. 케케... OnTimer, SetTimer 로 하고 있긴 합니다만..-.-
DeleteMe) 링크드 리스트가 아니라 충분히 큰 배열로 짜면...by 최봉환[[BR]]
DeleteMe) Timer는 컴의 상태에 따라 속도가 바뀌므로 Thread를 배워서 해봄이...by 최봉환[[BR]]
DeleteMe) CRgn과 CRect에 있는 PtInRegion과 PtInRect함수로 영역 검사를 해보는 편이 편할듯 by 최봉환[[BR]]
DeleteMe) 쓰레드까지는 힘들텐데... 그냥.. 멀티미디어 타이머로 때워.. ㅡ.ㅡa --선호 [[BR]]
DeleteMe) 얼라? 봉환이 ZP였나? 아님 가입하기로 한거야? ^^--인수 [[BR]]
["프로젝트분류"], ["SnakeBite"]
- StacksOfFlapjacks/조현태 . . . . 12 matches
그러나!! 알고보니 왼쪽과 오른쪽을 꺼꾸로보고 생각했던것...
이 소스는 2번씩 뒤집는걸 기본으로 한다. (예외적으로 끝에 있을때는 한번 안뒤집는다.)
만든이의 귀차니즘으로 한회의 계산을 줄인 소스..후후후..
printf("팬케이크의 크기를 순서대로 입력해주세요. (0은 종료 또는 입력완료)\n>>");
if (0==cakes_size[number_cake])
if (0==number_cake)
if (cakes_size[maximum]<cakes_size[j])
if (maximum!=i)
if (maximum!=0)
if (j<=maximum)
else
- SuperMarket/세연 . . . . 12 matches
if(choice == 1 && (money - (s_product[0].cost * quanty)) >= 0 )
else if(choice == 2 && (money - (s_product[1].cost * quanty)) >= 0)
else if(choice == 3 && (money - (s_product[2].cost * quanty)) >= 0)
else
if(choice == 1 && (s_product[0].quanty - quanty) >= 0 )
else if(choice == 2 && (s_product[1].quanty - quanty) >= 0 )
else if(choice == 3 && (s_product[2].quanty - quanty) >= 0 )
else
- TortoiseCVS . . . . 12 matches
TortoiseCVS 의 경우는 CVS Conflict Editor 를 Preference 에서 설정할 수 있다. [1002]의 경우는 WinMerge 로 잡아놓았다.
Upload:cvs-conflict-1.gif
Conflict 이 난 화일의 경우는 보라색으로 표시된다. 이 화일에 대해서 오른쪽 버튼을 눌러보자.
Upload:cvs-conflict-2.gif
Conflict 이 난 화일의 경우 메뉴 하나가 더 추가되어있다. 바로 '''CVS Resolve conflicts'''
Upload:cvs-conflict-3.gif
WinMerge 등의 Diff 표현이 잘 되는 Compare tool 을 쓰는 것이 CVS Conflict 처리하기에는 훨씬 편하다. (기존의 <<<< ________ >>>> 으로 소스코드 안에 표현되었을때를 생각해보길. :) )
- Trace . . . . 12 matches
MFC 에서 제공하는 {{{~cpp TRACE }}} 매크로의 기능을 VC 의 다른 프로젝트에서도 사용할 수 있다. 단, 여기서는 매크로가 아니라 함수인것을 유념하자.
( {{{~cpp TRACE}}} 매크로가 내부적으로 함수 호출을 하는것 같기는 한데 생각해보면 {{{~cpp TRACE}}} 매크로보다 우리가 정의한 함수를 호출하는게 조금더 오버헤드가 있을것 같다 )
#ifdef _DEBUG
#else
#endif
va_end(args);
[상식분류], [프로그래밍분류]
- UglyNumbers/1002 . . . . 12 matches
처음 문제를 제대로 이해하지 않고 '그냥 2,3,5 외의 소수 제외한것 아닌가?' 로 접근하다가 14 는 아니라는 것을 간과. 다시 처음부터 접근.
연습장에 이것저것 써보다가 대략 두가지 접근법이 생각나다. 하나는 각 수들마다 'isUglyNumber' , 하나는 지수를 이용한 방법. 일단은 'isUglyNumber' 먼저 구현해보기로 해봄. (워낙 간단하므로)
if number == 1: return True
if number % 2 != 0 and number % 3 !=0 and number % 5 != 0: return False
if number % x == 0: number=number/x
if count == 1: return 1
if isDivideOnly235(idx):
if currentCount == count:
하지만, 결과값을 보면서 지수 스타일의 접근법이 원하는 접근법이라는 생각을 하게 되다. (10억이 넘는다 할때, isUglyNumber 식이라면 10억번이 실행된다.) 하지만, 그냥 지수로만 생각하면 uglynumber 의 순서 상 맞지 않을 것인지라 (1 : 2^0*3^0*5^0, 2 : 2^1*3^0*5^0, 3 : 2^0*3^1*5^0, 4 : 2^2*3^0*5^0 ... 0,0,0 , 1,0,0, 0,1,0 , 2,0,0 .. 도무지 숫자들 간의 연관성이 잡히지 않았다.
그러다가, '에이.. 걍 sort 해버리자.' 접근. 하지만, n 값에 따라 결과가 영향을 받을 것이라는 막연한 생각에 연습장에서 한참 고민. 그냥 실제 원하는 값 보다 여유분 값을 만들고 적당히 답을 내는 방식으로 접근. 하지만, 무언가 굉장히 찝찝함.
- VMWare . . . . 12 matches
특정 플랫폼하에서 머신을 에뮬레이팅. 해당 플랫폼 이외의 환경을 구축하는 것을 가능케 하는 프로그램이다.
유사제품으로 [Parallels] ( [eXtremeProgramming] 으로 개발되었다고 함. Mac 버전의 경우 윈도우 환경을 거 70%~90% 퍼포먼스로 구현했다고 들었음) 가 있다.
유사기술을 적용한 Linux [Xen] 커널이 등장하기 시작했으며, Xen 은 차후 나타나게될 멀티코어 CPU 환경(플랫폼 자체가 완전히 다른)에 적합한 커널의 구축을 목표로 하고 있다고 한다. (완전히 다른 프로세서라면 당연히 해당 머신에 접근하는 인터페이스 역시도 다를텐데 XEN 을 이용해 해당 부분을 추상화시켜서 접근하는 식으로..) 현재에는 해당 기술을 보안 분야에서 이용하기 위한 연구가 진행중이며 기존의 단일 커널하의 커널모드, 유저모드 식의 구분이 아닌 관리자 커널, 애플리케이션 커널과 같은 구분으로 2개의 서로 다른 커널을 구현해 커널 단에서 애플리케이션이 머신에게 직접적으로 접근할 가능성을 원천 차단하는 방식의 연구가 되고 있다.
VMWARE 는 보통 개발 중인 OS 테스트 환경, 임베디드 환경의 크로스 컴파일 환경, 개발 중 어플리케이션의 다양한 플랫폼에서의 테스트 비용 최소화를 위해서 많이 사용한다.
- VonNeumannAirport/남상협 . . . . 12 matches
Input 과 output 예제가 왜 그렇게 나왔는지 이해 하는데에서 많은 오해를 해서 의도하지 않은 삽질을 하게 되었습니다. 나름대로 시작은 testCase 만들면서 했지만 제대로 테스트 케이스 만들면서 진행은 하지를 못했습니다. 그래서 테스트 케이스는 올리지 않았습니다.
trafficOfCity.append(int(traffic))
self.trafficList.append(trafficOfCity)
eachConfigure.append(int(conf))
configureOfCity.append(eachConfigure)
self.configureList.append(configureOfCity)
trafficResult.append((confNum,traffic))
trafficList.append(Data.readline().split(" "))
configureList.append((readLineOne,readLineTwo))
self.airportList.append(airport)
result.append(airport.calculateTraffic())
- html5/communicationAPI . . . . 12 matches
* 프로그램간에 비동식으로 메세지 전달 : 느슨한 결합(loosely coupled)
* 통신 수행의 주체 : 윈도우, 백그라운드 태스크, 서버에서 동작하는 프로그램
= 크로스 도큐먼트 메세징 =
* 메세지의 송수신을 통해 둘 이상의 웹 페이지가 서로 데이터 주고받음
* targetOrigin : 메세지를 수신하는 도메인(프로토콜+도메인+포트번호)
// origin 속성으로부터 송신처 확인
if(e.origin == "http://localhost"){
// data 속성으로 수신된 메세지 확인
* 포트는 값 복사로 전달됨
* 받은 포트는 PostMessgae()의 [ports]인자에 배열 형태로 전달가능
* 주의 : 배열안에 null이 포함될 때, 이전에 postMessage()의 인수로 전달된 적이 있는 포트가 포함될 때, 한 채널의 포트1과 포트2가 동시에 포함될 때
- html5/overview . . . . 12 matches
* 서버로부터의 데이터 푸시
* 로컬파일 읽기
* 프로그램이 문서의 구조를 파악하기 쉬워짐(HTML 파싱 수월), 가독성 증가
* aticle : 섹션의 한종류, 페이지에서 독립되어있는 부분 (ex. 블로그웹의 블로그 본문)
* 마이크로 데이터 : 문서에 삽입된 데이터의 속성 데이터(데이터의 데이터, 데이터의 의미가 명확해짐)
* HTML의 목적 : 1998년 W3C는 html이 아닌 XHTML의 표준 사용을 권고한다. 그러나 XHTML은 HTML과의 비호환성으로 널리 퍼지지 못한다.
* 결과적으로 10년이상 사용되는 HTML의 저사양이 오히려 웹 어플리케이션의 발전을 저해했다. 그러나 W3C는 XHTML을 위해 새로운 HTML의 개발을 거절한다.
* 그러자 apple, mozillar, opera 세 기업이 모여 WHATWG를 발족하고 HTML의 진화를 지향한다.(apple은 플래시를 제공하는 어도비와 관계가 좋지않아 HTML5를 적극적으로 추진한다는 소문이다)
* 현재 HTML5는 W3C에 LAST CALL(최종 심사 초안)이 제출된 상태이다. 또한 W3C가 진행하던 XHTML2의 사양 제정이 중지로 HTML5의 표준화는 기정 사실로 보인다.
- ljh131 . . . . 12 matches
블로그
모든 프로그래머들이 copy & paste에 빠져있어 구글신께서 포맷으로 심판하려 할 때 홀로 노가다 코딩을 하던 아노아씨는 구글신의 특별한 계시로 포맷이 닥칠것을 미리 알게 된다. 그는 120번의 이터레이션에 걸쳐 방주(신개념 version control system)를 제작해, 8개의 대형 오픈 소스 프로젝트와 한 패키지씩의 여러 sf프로젝트를 커밋한다. 포맷이 닥치자 모든 오픈 소스 프로젝트가 실패하고 말았지만, 이 방주에 커밋된 프로젝트들은 살아 남았다고 한다.
Upload:윤희.gif
- 프로젝트 압박을 역설적으로 표현한 남박사(남사장??@,.@)
- ㄷㄷㄷ숙제2 . . . . 12 matches
1.if 문을 이용한 업앤다운 ;;
if (a<24)
} else if(a>24)
} else if(a=24)
여기까지 해봤는데요 마지막에 else를 하나 더쓴다던가 해서 문자를 썼을때
if문에서 못했던 오류 메세지가 switch문 에서는 default값을 사용해서 쉽게 되더라구요..ㅠㅠ..
if에서는 어째서!!!
if에서 왜 않되는 걸까요? ㅠ_ㅠ
또한가지 질문~! 위 소스에서 정답을 맞추지 못할경우 다시 스캔에프로 가서..
- 강의실홍보 . . . . 12 matches
기본적으로 많으면 좋다.
많은 인력 필요하다. : 집부 같은 성격의 단체에 사람들을 끌어 들이는 것이라면 해당 단체의 구성원 중 목표 대상에게 친숙한 사람을 중심으로 되도록 많이 필요하다. 이때 많은 인력으로 돌아가면서 행사의 소개를 할 수 있다.
적은 인력을 괜찮다. : 이벤트 행사의 경우, 홍보 효과 강의 시간대에 소수 (1~2)명이 들어가도 충분할 것 같다. 중요한 것은 이 소수가 행사의 전체 이미지를 잘 알고 있어야 한다는 점이다. 행사를 구체적으로 모를 경우에는 홍보자에게 상호보완적인 역할을 할 수 없으므로, 좋은 효율을 내기 힘들다.
홍보 강도에 기초해서 홍보의 횟수에 따라서, 사람의 숫자가 선형적으로 증가 하느것 같다.
* 1학년의 경우 고등학교의 버릇으로, 쉬는시간에 많은 수가 잠을 자서, 많은 영향을 끼치지 못한다. 그리고 수업 중간에 홍보를 해서, 수업을 마치고 나서 잃어버린다.
* 마지막 수업이 종료후 5분 정도의 양해를 구한다고 말하고, 홍보를 한다. 수업이 모두 끝난 순간 사람들은 모두 깨끗한 정신으로 깨어있고, 집으로 돌아가면서 웹에 광고를 볼 가능성이 높다.
- 개인키,공개키/류주영,문보창 . . . . 12 matches
ifstream fin("source.txt"); // fin과 input.txt를 연결
if(fin.eof())
if((int(ch) + key) < 256)
if(ch!=' ')
else
if(ch!=' ')
ifstream fin("source_enc.txt"); // fin과 input.txt를 연결
if(fin.eof())
if((int(ch) + key) < 256)
if(ch!=' ')
else
if(ch!=' ')
- 검색에이전시_temp . . . . 12 matches
= 세부 프로젝트 페이지 =
* 상협이 맡은 부분은 [MemeHarvester] 로 정함
* 오픈 프로젝트 입니다. 제로페이지 회원이 아니더라도 누구든이 원하면 같이할 의향이 있습니다.
* [http://prdownloads.sourceforge.net/goog-kongulo/kongulo-0.1.zip?download 웹스파이더(구글오픈소스)] - 이프로그램은 구글 데스크탑의 플러그인 같은 것으로서 이프로그램을 사용하여 특정 웹사이트 내용을 긁어서 구글 데스크탑 디비에 넣을 수 있다. 현재는 이 프로그램으로 구글 데스크탑이 아닌 그냥 파일에 쓰는식으로만 바꿔봄
* [http://pylucene.osafoundation.org/ 파이루씬] 파이썬으로 구현된 검색 엔진
좀만 더 연구하면 싸이월드에 있는 기능들을 위키에서 모두 플러그인 식으로 사용가능하겠구나. -_-
- 권영기/web crawler . . . . 12 matches
if pos is not -1 :
if line[c] is '"' :
=== 파일 다운로드하기 ===
if os.path.isdir(mdir) is False :
* os.path.isdir(path) - Return True if path is an existing directory.
* os.mkdir(path[, mode]) - Create a directory named path with numeric mode mode. If the directory already exists, OSError is raised.
if os.path.isdir(path) is False :
if os.path.isdir(path) is False :
자꾸 글자만 나오는 환경을 보니까 질리기 시작했다. 아직 완성은 멀었지만 GUI로 만들어보려고 함. 어차피 나중에 해야되니까...
* http://www.crummy.com/software/BeautifulSoup/ - 웹분석 라이브러리 BeautifulSoup 이용해보기
* 로그인이 가능한 페이지를 긁고 싶은데 방법을 모르겠다.
* 굳이 Python으로 GUI를 구현해야 할 필요성을 모르겠다.
- 데블스캠프2011/셋째날/RUR-PLE/박정근 . . . . 12 matches
if on_beeper():
if front_is_clear():
else:
if facing_north():
else:
if on_beeper():
if front_is_clear():
else:
if left_is_clear():
elif front_is_clear():
elif right_is_clear():
else:
- 데블스캠프2011/셋째날/RUR-PLE/송지원 . . . . 12 matches
if(on_beeper()) : pick_beeper()
if(front_is_clear()) : move()
else : turn_off()
if(on_beeper()) : pick_beeper()
if(on_beeper()) : pick_beeper()
if(front_is_clear()) : move()
else : turn_off()
if(on_beeper()) : pick_beeper()
== 미로 찾기 ==
if right_is_clear():
elif front_is_clear():
else:
- 렌덤워크/조재화 . . . . 12 matches
bool is_end();
if( ( n<=2 || n>40 ) || ( m<=2 || m>40 ) )
if( ( ibug<=0 || ibug>40 ) || ( jbug<=0 || jbug>40 ) )
while( is_end() )
if( (ibug+imove[k]) >=0 && (ibug+imove[k]) < n
else
continue;//범위밖으로 나가면 다시 랜덤값 결정.
bool is_end() //각방을 다 방문했는지를 검사
if(counter >= 50000) //excute limitation
if(count[i][j] == 0)
cout<<"Total moving Number : "<<counter<<endl;
cout<<endl;
- 마스코트이름토론 . . . . 12 matches
http://zeropage.org/wikis/nosmok/moinmoin.gif
== 새로운 마스코트 이름을 지어주세요~! ==
아니면 대발이의 반대 이미지라는 의미로 Moin -> Niom 니옴 (헉 마음에 안들어) --상민
쩝.. 생각해 보니 여자인것도 같네염... 저게.. 제로미 만들려고 하다가 용도가 이렇게 바뀐 것이니.. ^^; --setsuna
이름은 좋을대로 생각해 주세요.. 후후.. ^^; --setsuna
원작자의 권한으로 이름 지어도. 그래야 관련 페이지를 만들어서 찬양(?)하지 후후후 --상민
1. 제작자 스스로가 자신의 창작물에 대한 정체성을 모르고 있다. 여잔지 남잔지 마녀인지 도통 헷갈려함.
2. 제작자는 이름 짓기를 스스로 포기했다.
그러므로 *마년* 이 결사반대 당한것은 부당하다~.. ㅎㅎ --혀뉘
제로미가있으니 데블미?
그냥 제로미 시키죠. 그리고 moin글자만 빼서 대문용으로 하나좀.. --상민
- 문자반대출력/조현태 . . . . 12 matches
그래도 애교로 봐주시길..ㅎㅎ
if (where_is_save != max_size_of_stack)
else
if (where_is_save)
ifstream inputFile("source.txt");
if(!inputFile)
inputFile.seekg(0,ios_base::end);
if (outputFile == 0 )
//기록을 역으로 재생하며 파일을 출력합니다.
if (0>temp)
else
너무 날로 먹은거 같아서 reverse도 구현해 보았다 -_ -ㅎ
- 방울뱀스터디 . . . . 12 matches
* 높은 점수순으로 5위까지 저장
난 제로페이지 아닌데.... 가르쳐줘요.. 숙제3번도 희경이의 도움으로 풀어놨어요 --준환
형 계획에서.. 팀프로젝트같은거.. 저 제외하고 진행하시는게... 전 그냥 꼽사리 수업생으로 큭..
개학후에도 계속진행된다면 전 여행후에 독학으로라도 진도 맞추어 가겠습니다....
7월 26일(토) 오전 11시 7피 임시모임. 기본 프로그램의 80%를 목표로 프로그래밍 해봅시다. --재동
background = PhotoImage(file='wall.gif')
foreground = PhotoImage(file='wall2.gif')
[프로젝트분류]
- 새싹교실/2012/새싹교실강사교육/2주차 . . . . 12 matches
-과제 확인, 프로젝트 생성, GCC사용법, 컴파일, main함수, 변수, Data Type, 연산자, 입출력 기본 함수, 제어문 -
printf("발로차기 : k 주먹 : p\n");
printf("소라를 발로찹니다. 데미지 : %d 를 입혔다!\n",temp);
printf("소라가 발로찹니다. 데미지 : %d 를 입었다!\n",temp);
if(Sora <= 0 && My <= 0){
else if(Sora <= 0){
else if(My <= 0 ){
※ 강사는 손으로 적게 하면서 가르치는게 좋겠죠? 이 부분은 무엇입니다.
2.4 #define 선언문, 매크로
2.6 If문, switch() { case : default : } 제어문.
쉬운 것부터 아래로 어려운 문제
- 새싹교실/2012/아무거나/2회차 . . . . 12 matches
if(a<=c){
else {
오늘 손봉수 교수님의 수업을 듣고 제대로 이해하지 못하였었던 별만들기 수업을 다시 해보니 어렵다는 것도 깨닫았고 또 별만들기를 직접 해보니 더 이해도
while문으로 써서인지 머리를 덜 써서인지, 소스가 점점 길어지네요. for문 쓰는 법에 대해서도 꼭 배워야겠어요.
다음 시간부터는 힘들어도 꼬박꼬박 바로바로 쓸게요~. (이재형)
3 (<- scanf로 입력)
* 각 줄에서 공백을 출력하는 횟수와 *을 출력하는 횟수의 규칙을 찾아내어 식을 만들고 이를 조건식으로 활용한다.
3 (<- scanf로 입력)
if(a<=n){
else{
- 순차적학습패턴 . . . . 12 matches
...학습할 작품([지식샘패턴])을 선정한 다음 이를 연대순으로 학습한다면 훨씬 이해하기 쉬워질 것이다.
'''작가는 서로를 반박하고, 서로의 아이디어를 확장하고 부차적으로 서로를 참조하기 때문에 작품을 연대 순으로 학습하지 않는 경우 독자는 중요한 연결고리를 놓치거나 오해하기 쉬워진다. 일부 작품은 순서대로 학습하지 않으면 절대 이해할 수 없을 수도 있다.'''
그러므로,
'''이해를 극대화하기 위해 작품을 연대 순으로 학습하라. 그 순서는 작가들이 서로에게 어떤 영향을 끼쳤는지 조명하는데 도움이 될 것이다. 그 결과 예전의 작품을 참조하는 것이 보다 이해하기 쉬워진다.'''
연대 순으로 작품의 순서를 매기고 나면, 그룹은 지적인 아젠더([아젠더패턴])와 학습 주기(StudyCyclePattern)를 만들게 된다.
- 숫자를한글로바꾸기 . . . . 12 matches
=== 숫자를 한글로 바꾸기 ===
문제 : 숫자를 입력 받아서 한글로 출력시키는 프로그램을 작성하여라.
10만 보다 적은 수를 숫자로 받아들인다.
|| 이영호 || C || || [이영호/숫자를한글로바꾸기] ||
|| 조현태 || C/C++ || || [숫자를한글로바꾸기/조현태] ||
|| 정수민 || C || 4h || [숫자를한글로바꾸기/정수민] ||
|| 김태훈 || C || 40min || [숫자를한글로바꾸기/김태훈zyint] ||
|| 허아영 || C || 1h || [숫자를한글로바꾸기/허아영] ||
* 이강성 교수님께서 만드신 TestDrivenDevelopment 강의 동영상에서 다룬 내용과 같은 문제네요. 이 문제를 푸신 분들은 제게 메신저로 말씀을 해 주세요. DevilsCamp 때도 TestDrivenDevelopment 에 대해서 잠깐 접해보셨겠지만 이 동영상을 보시면 많은것을 얻으실 수 있을 것 같네요. 참고로 제 MSN 주소는 boy 골뱅 idaizy.com 입니다. 원저자께서 해당 파일이 무작위적으로 유포되는걸 원치 않으셔서 신청자에 한해서만 파일을 보내드리겠습니다. - 임인택
- 식인종과선교사문제/조현태 . . . . 12 matches
* 대충짜느라 별로 생각해보지는 않았지만.. 다해보는 방법 외에 또 무언가 존재할지도..?
if (0 > left.black || 0 > left.white || 0 > right.white || 0 > right.black)
if (left.black > left.white && 0 != left.white)
if (right.black > right.white && 0 != right.white)
bool isEnd(party& left)
if (0 == left.black && 0 == left.white)
if (isChecked[Parse(left, right, where)])
if (false == isOK(left, right))
if (isEnd(left))
if (true == MoveNext(moveData, isChecked, where * (-1), testLeft, testRight))
if (0 == moveData.size())
cout << "No Solution." << endl;
cout << "식인종 : " << moveData[i].white << "명 이동, 선교사 : " << moveData[i].black << "명 이동 " << endl;
- 아동언어습득이론 . . . . 12 matches
칭찬에 따른 보상으로 강화
생물학적 프로그램
대상 영속성 개념 습득으로 상징적 표상을 이해
어린이 자신의 지식에 근거해 독립적 탐색을 함으로써 스스로 지식을 구성해나감
읽기, 쓰기 개념도 스스로 구성
사고보다 감각, 운동활동으로 발달하기 때문
또래가 사회적 대행자로 중요함
사고를 단어로 전환
2세 전까지는 따로 발달
사고발달은 사회에서 개인으로
성인과 상호작용이 절대적으로 필요하다.
- 이승한/mysql . . . . 12 matches
mysql - 두부파일 - 테이블들. //mysql - 테이블 로 알고 있었다. //계정별로 접근성을 다르게 설정할수 있는듯 하다.
레코드 삭제 : delete from <table> where <조건식>;
테이블의 레코드 보기 : select * from score; // *자리에 조건 서식이 들어간다.
레코드 수정 : update <tableName> set <colum Name> = <update val> where <조건식>
if(!$is_connect) {
} else{
if( $totalRecord == 0 ){
if(!$mode) {
if(!strcmp($mode, "form")) {
} else if(!strcmp($mode, "process")) {
- 이차함수그리기/조현태 . . . . 12 matches
일단 그래프가 너무 길어서(y값이 25나 나오오. 세로 25면 일반 콘솔창을 넘어버리는.. 앞으로 조그맣게 하자궁..ㅎㅎ)tab을 넣어 줄이기로함.
원래 모습을 보고싶으면 TAB_Y의 값을 1로 해주면 됨.
tab값을 1이외의 값으로 할때, 일단 반올림을 하게 해두었으나, 원래 축소 연산을 할때는 일부 값을 손실시켜야 하는데, 귀찮아서 놔두었더니 1이하로 내려갈때는 그래프에 점이 중복되는 현상이 생긴다는..
근데 그래프 그리는거 파이썬으로 하면 금방 되자너.;
if (temp_sosu<=-0.5 || temp_sosu>=0.5)
if (max_y<function_x_to_y(x))
else if (min_y>function_x_to_y(x))
cout << "2차함수 출력 프로그램.";
- 정모/2011.5.9 . . . . 12 matches
== IFA 공유회 홍보 ==
* [http://onoffmix.com/event/2823 IFA 국제퍼실리테이터 컨퍼런스 2011 공유회]
* 저번주 정모에 못와서 이번주에는 꼭 가리라! 하고 왔지요. 앞으로도 항상 그럴거 같지만 가장 기억에 남는건 OMS!! 게임개발이란게 에디터를 써서 만든거도 포함된다고 생각한적은 없는데 말이죠! (워3 에디터는 살짝 만져봤었습니다) 워3에서도 와우 MPQ를 불러와서 똑같은 캐릭터를 구현할 수 있었는데, 스타2에서는 더 와우에 가깝게 만들어지더군요 -_-! World IT Show도, 이런데 거의 안가봤기에 꼭 가보고싶네요. (근데 다들 언제가시는지.. 음.) IFA도 뭘까 궁금하네요. .. 그리고 이제 피드백갯수가 2~3개정도만 남은거 같아요+_+ -[김태진]
* OMS 재밌었습니다. 스타1 유즈맵을 즐기는 저로서는 스타2의 무한한 가능성을 엿본듯한 -_-;; 비록 아직은 버그투성에 애로사항이 있더라도 좀더 지나고나면 똑똑한 게임개발툴이 나올 것 같네요. 월드아이티쇼.. 저는 아마 불발될 거 같습니다. ㅜㅜ 수금은 수업 때문에 안되고 목토는 일이 있어서 에구; 담주 OMS 준비를 제대로 할 수 있을까 걱정입니다;; 구글신 찬양과 함께 미래의 안드로이드와 클라우드 서비스에 대해 할까 하다가.. 준비할 시간이 많지 않을거 같으니 아마도 경시대회 관련 주제로 준비될거 같습니당.. - [정진경]
* 너무 부담갖지 마요ㅋㅋㅋ 말그대로 원맨쇼 하면됩니다 - [서지혜]
* 스타2를 플레이해본 적은 없지만 스타1 캠페인 에디터나 RPG만들기는 조금씩 찌끄려봤는데 이번 기호의 OMS를 보고 유저의 게임 만들기에 있어 엄청난 발전과 변화를 불러 일으켰더군요. 버그가 많고 코드에 대한 이해가 필요하다는 점도 있지만 스타2로 만들어진 와우는 정말 흥미로웠습니다. 데블스 staff 회의를 진행하면서 이제까지의 데블스캠프에 대해 회고해보고 어떻게 해야 개선할 수 있을지 고민해 보았는데 ZP에서 학우들이 학술적으로 오랜 시간 동안 많은 공유를 할 수 있는 몇 안되는 큰 행사이니 만큼 뜻깊은 시간이 되었으면 좋겠습니다. - [Enoch]
* 장소를 미리 못 잡아서 4피에서 OMS를 했는데 기호에게 미안하네요... 장소가 산만하기도 하고 좀 부담스러웠을 것 같아요ㅜㅜ 그와 별개로 내용은 정말 흥미로웠습니다. 항상 생각했던 것이지만 쓰기 편하고 단순하게 만들면 할 수 있는 게 제한되어 문제고 이것저것 할 수 있게 파워풀하게 만들면 너무 복잡한 게 문제… - [김수경]
- 정모/2011.7.11 . . . . 12 matches
* 7시부터 강남에서 진행되는 Design Pattern 세미나로 인해 정모는 6시까지 진행.
== 프로젝트/스터디 ==
* 이번주에는 제가 OMS를 하고, 회고는 시간이 없어서 하지 못했지요. OMS를 원래는 제 노트북을 연결해서 하려고 했으나.... 제대로 작동하지 않는다는 사실을 깨닫고 급 바꿔야만 했죠 -,.- 결국 keynote도 쓰지 못하고 ppt로 전환하는바람에 ppt효과도 사망.. 아무튼 한참동안 고민한 주제중에는 나름 잘 골랐던거 같아요. 오늘은 제 후기가 뭐 이런지...;; -[김태진]
* 태진이의 OMS로 첫 스타트를 했네요. 애플에 대해 이야기 하는 것이 주변 친구들을 생각나게 하더군요 -ㅅ-; 지금도 쓰고 있는 MDplayer를 팔고 IPod Classic을 살까 말까 고민중인데다 애플 제품은 잠깐씩만 만져봐서 잘 모르는 상황이었는데, 재미있었습니다. 그래도 고민은 되네요 -ㅅ-a 그러고 나서 뭔가 금방 끝난 것 같네요; - [권순의]
* DP 세미나 참여 때문에 일찍 끝나서 뭔가 약간 아쉬웠습니다. 데블스캠프도 마치고 새로운 스터디/프로젝트도 시작되어서 사실 공유할 수 있는 것들이 많았을텐데 (저 같은 경우 DB2 Certi Program에 대해 좀 공유하고 싶었고..) 다음주를 기약 해야겠어요. 태진이의 OMS는 MacBook의 디스플레이가 원활했다면 keynote로 더 좋은 presentation이 될 수 있었을텐데 아쉬웠을 것 같아요. 본의 아니게 (주제가 Apple이다 보니) 선배님들이 많이 (농담조로) 디스했는데 발표는 좋았답니다. 역시 태진이는 기대치를 높여주는 친구에요. - [지원]
* 태진이가 내가 필요하데서 나왔는데... 아 뭐야 영상통화였냐.. 그건 집에서도 되는거잖앜!! 게다가 맥북 연결이 안 되서 그나마도 안함. 방학중에도 정모는 계속된다는걸 알았음. 와우 애드온 얘기 재밌었어요. 나와서 후회되는거라곤 아 안나왔으면 OMS 안걸리는건데.. 뿐이고 OMS 끝낸 지금은 아무래도 상관없는일! ㅎㅎ! 재밌었음당 앞으로는 자주 참가할께요. - [고한종]
* DP 일정이 급하게 잡혀서 짧게 진행했네요. keynote로 진행되는 OMS를 보나 했더니 케이블때문에 못 봐서 아쉽습니다. Apple사 제품은 조금씩 만져만보고 직접 써본적이 거의 없어서 OMS 재미있게 들었습니다. - [김수경]
- 정모/2011.8.22 . . . . 12 matches
* 이번주는 [황현]학우의 개인 사정으로 OMS를 진행하지 않았습니다. OMS는 다음주에 진행됩니다.
== 프로젝트/스터디 ==
* 한종이가 테트리스를 완성했습니다. 버그는 수정할 계획이 잠정적으로 없다고 합니다.
== 로고 사생대회 ==
* 학교 청룡탕앞 계단쪽에 나가 로고 초안그리기를 약 1시간동안 했습니다. 평균 4장정도의 로고를 그렸는데, 그중에서 일차적으로 추려 투표에 부칠 예정이라고 합니다.
* 일단 지혜누나, 오늘은 제가 1빠. // 오늘은 OMS를 보지 못해 좀 아쉬웠네요.. 보다는! 사생대회를 나갔죠. 나가서 공대감성으로 최대한 열심히 그렸다는 생각이 드네요.--; 음, 또 저는 처음본, 그러나 며칠새 종하형한테 몇번 말을 들었던("아 어떤 정통부 형이 있는데"), 그러나 베일(?)에 쌓여있던 종록이형을 정모에서 뵈서 좋았어요. 말년휴가때나 12/25이후로도 자주 볼 수 있으면 좋을거같네요 ㅎㅎ -[김태진]
* 서버 백업(아마도 nForge 위주?) 과정에 가끔 일어나는 위키 8:45 현상을 보면서 nForge에 불필요한 용량을 잡아먹는 프로젝트 svn들을 몇개 지워야겠단 생각이 들었어요. 몰랐을 때 코드만 관리하지 않고 이런저런 잡데이터를 넣었다보니-_-;; 사생대회 재밌었습니다. 고퀄의 로고를 만들지는 못했지만 간만에 그림질이라니 감회가 새로웠어요. 한솥 도시락 치킨마요가 2000원 할인하는 즐거운 월요일이었습니다 (물론 이건 8월까지 이지만;;) - [지원]
- 정모/2012.1.13 . . . . 12 matches
* 총무가 개인적인 사정으로 18일까지 회비 조회를 할 수 없는 관계로 그 이후에 정산하기로 하였음.
* 정모 인원이 적어 정모에서 투표하는 것 보단 홈페이지에서 '''인터넷 투표'''를 하기로 하였음.
* [iPhoneProgramming/2012년프로젝트] - Apple에서 제공해주는 예시들을 참고하는 것이 어떻겠냐는 조언을 받음.
* 기승전와이브로 OMS 잘들었습니다. 지금 LTE 사용하는 건 여러모로 호갱이 아닐까싶네요. 그나저나 와이브로 쓴지도 꽤 오래됐는데 사실 무의식중에 아직도 수도권에서만 될거라고 생각하고 살고있었어요. 그러고보니 그럴리가 없잖아... 몇년이 지났는데.... - [김수경]
* 근데 사실 부산에가면 실제로 와이파이존도 잘 없고 뭔가 부족하단 느낌이 왠지 들지요... 근데 부산엔 버스에 와이파이가 있었다는 충격적인 사실을 얼마전에 깨닫고.. -[김태진]
* Wibro나 LTE... 아이폰을 사고 요금 폭탄 받을까봐 100MB로 버티는 저로서는 좀 먼 이야기 같네요- WiFi존에 살다보니까 별로 생각도 안하던걸 다시 본거 같습니다.ㅋㅋ 그나저나 OMS를 해야하는데.. 분명 예전에 뭔가 하리라 생각했는데 기억이안나네요ㅡ 뭐할까.. -[김태진]
- 정모/2012.2.24 . . . . 12 matches
* 앞으로의 일정
* 오랜만에 지원이누나를 다시 보는데다 승한선배가 오신다기에 급하게나마 2월 회고를 위한 정리를 진행했어요. 는 지원이누나가 정모가 잘 진행되고 있는거 같아서 좋다고 하기에 안도. ㅎㅎㅎㅎ 회고에서는 아무래도 단추공장 조가 가장 큰 인기를 끌었던거 같네요. Agile Korea가서 제대로 건져와서 써먹네요. ㅋㅋ GUI는 요새 제가 동네 리뉴얼하면서 (실제로 난 별로 안하는거같기도..) MVC패턴이나 View부분에 신경을 많이 쓰다보니 와닿는점이 참 많았어요. 승한선배가 좀 더 깊이 설명해주셨다면 좋았을텐데...라는 생각이 좀 들긴했지만요. 성현이형의 OMS도 엄청나서 (도쿄라니!) 전반적으로 정말 즐거운 정모였던거 같아요 - [김태진]
* 신입생들 대상으로 하는 얘기 맞지? 새싹 OT 하는 날 합쳐서 간단한 소개는 필요하지 않을까? 따로 하는 건 좀 오버인거 같구 ㅋㅋ 주로 새싹 소개하면서 ZeroPage 설명부터 하고 시작했던 것 같아. 그리고 간단한 세미나(혹은 새내기에게 하고싶은 말 세션) 같은 것도 함께 했던 적이 많고. - [김수경]
* 작은 OMS 이야기라는 드립으로 시작한 OMS.. 준비한다고 시간 좀 끌었는데 들어보니 시간 끌 만 했다는 생각이 들었습니다. 재미있었어요! 여행을 거의 다녀본 적이 없어 간접경험삼아 열심히 들었네요ㅋㅋㅋㅋ ''그나저나 오늘 인터넷하다가 도쿄 역 방사능 수치가 4.88 마이크로 시버트라는 글을 어디서 봤는데..............''
* 아, 그리고 회고 진행될 때 느낀 건데 올해 회장 태진이가 확실히 세심하게 준비하는 면이 있어 좋아요. 지난 일년간 정모를 준비할 때 (후반에는 사실 뭔가 잘 준비를 못한 적이 많았고....) 초반에 열심히 준비할 때에도 세세한 부분은 신경쓰지 못한 게 많았거든요. 완벽한 ZeroPage보다는 항상 더 나아가는 ZeroPage가 바람직하다고 생각하는데 올해 ZeroPage가 작년보다 더 나은 ZeroPage가 될 수 있겠다는 생각이 들어 기뻤습니다. 회장 태진이도 그렇고, 방학인데도 열심히 정모에 참석하고 또 회고를 손 들어 이야기하는 방식으로 진행했는데도 적극적으로 참여하는 ZeroPager의 모습이 정말 보기 좋았습니다 :) - [김수경]
- 정모/2012.8.1 . . . . 12 matches
* 간단한 용무로 한정
* 프로젝트 등으로 회원이 데려온 경우 회원이 책임
* 자동 복원 솔루션 알아보기로
== 스터디/프로젝트 ==
* 이론(토요일) - 프로토타입
* Spring - 하이버네이트로 심플위키 만들고 있음, 하이버네이트는 사용하기에 난이도가 높은 것 같음.
* UDK - 망함. RPG Maker로 바꿔서 진행하고 있음
* 안드로이드 도서관 - 학교 로그인 시스템 분석했고, 희망도서를 신청하거나 신청취소를 할 수 있음.
* 교수님 만나고 이런저런 개인 사정으로 스터디도 중간중간 빠지고 정모도 늦고...... Planning poker 좀 듣고 싶었는데 말이죠... - [서민관]
- 최소정수의합 . . . . 12 matches
문제 : 1 + 2 + 3 + ..... + n >= 3000 을 만족하는 최소 n과 그것의 합을 구하는 프로그램을 작성.
=== 처리조건 ===
- 이거.. 꼭 이 조건을 만족해야만 하는건지.. 루프를 사용하면 꼭 while 이나 do .. while 을..? for 는 안되고요..? 그럼 for loop 가 없는 언어로는.. 못푸는건가.. -_-. 글고 루프를 쓰지 않으면 안되는건가요..? ^^; - [아무개]
- 문제가 그렇습니다. 처리조건은 HINT라기 보다는 그 말 대로, 처리하기 위한 조건이라서 문제의 하위 조건이라고도 볼 수 있습니다.
- loop를 쓰는 방법 말고 부등식을 사용하는게 젤 간단할것 같아서 그렇게 했는데, 문제에서 제시된 조건을 반드시 만족해야 하는가 해서요 ㅠㅠ - 임인택
- 괜찮습니다. 사용하는 언어에서 만족될 함수 등등..을 써서 알아서 프로그래밍 하시면 됩니다. 하지만 처리조건을 만족할 수 있는 언어는 그렇게 프로그래밍 해주시길 바랍니다.
- 최소정수의합/송지훈 . . . . 12 matches
=> n의 범위를 무한대의 자연수로 잡고, n까지의 합과 n+1까지의 합 사이에 3000이 들어가는
최대한 haskell로 짜보려고 노력했는데 안되네요...
조건 제시법을 쓰는 방법이 잘못된건지...
while 문을 쓰는 것이 필수 보조조건이었는데 haskell도 while문 쓰는 법이 있나요?
아니면 다른 대부분의 맴버들처럼 C나 C++로 하는게 더 나은가요?
C++로 한번 짜봤슴다.
using std::endl;
cout << "The smallest 'n' for making the number what we want" << endl;
cout << "-->" << integer << endl;
cout << "Total sum is " << sum << endl;
가드 (|)를 써서 조건문 형식으로 다시 짰습니다.
- 파스칼삼각형/구자겸 . . . . 12 matches
if ( j==1 || j==i ) {
else {
if i>index: break
if ( getcol(i)==1 ): arr[i] = 1
elif ( getcol(i)==getrow(i) ): arr[i] = 1
else:
if ( getcol(i)==getrow(i) ):
최소 배열로 만든 삼각형입니다. 어떤분이 전화로 질문 하셔서 모르겠다고 했는데, 완성해버렸습니다. 필요한 배열공간은 시그마n 이 되는군요. 비쥬얼 스튜디오가 없어서 파이썬으로 만들어봤습니다.(코드가 상당히 지저분하네요-_-) 파이썬을 깔고 pascal.py로 저장한 다음에 명령콘솔창에서 "pascal.py 10"이런식으로 사용.
- 프로그래밍은습관이다 . . . . 12 matches
= 프로그래밍은습관이다 =
* 대학원 다니는 아는 선배에게 디버깅 세미나 할건데 뭐 도움되는 말좀 해달라고 하니깐 '프로그래밍은 습관이다' 란 말을 해줬다. 공감이 가는 말이다. 프로그래머에게 프로그래밍은 습관인거 같다. 마치 자전거를 처음 탈때는 엎어지고 그러다가 한번 타기 시작하면 그 다음부터는 쉽게 타는것이랑 비슷한거 같다. 난 군대 가기전에 군대 갔다 오면 프로그래밍 하는것을 다 까먹을텐데 하고 걱정을 했었다. 그런데 군대 가서 프로그래밍에 더 발전은 없었지만 마치 자전거 타는 법을 배우고 한동안 안타다가 다시 타는것과 같았다. 세세한 문법같은것은 생각이 나지 않더라도, 그런것을 어디서 찾을지와, 어떤식으로 적용할지는 몸으로 체득했기 때문에(삽질ㅜㅡ ) 몸이 기억을 했다. - [상협]
* 공감 가네요. 저는 고등학교에서 대학입시를 준비하느라 한 2년 이상정도 쉬고나서 저런 느낌을 받았었습니다. 처음에는 죄다 까먹었을줄 알았는데 막상 키보드에 손가락을 올려놓고 나면 무언가 떠오르면서 자연스럽게 키보드가 나가더군요. // 저는 [손가락이기억한다] 라는 말로 군대가는 친구들 군대를 준비하는 친구들에게 이야기 하곤 합니다. - [톱아보다]
프로그래밍은 습관이다. 그래서 학습과 반(反)학습 모두 쉽지 않다. 특히 NoSmok:UnlearnTheLearned 가 어렵다. 세살 버릇 여든 가기에, 나쁜 프로그래밍 습관은 프로그래밍 언어가 바뀌어도 유지된다.
- 호너의법칙 . . . . 12 matches
로 변환하는 것을 호너(Horner)의 법칙이라 한다.
호너의 법칙을 이용한 프로그램을 작성하여라.
=== 처리조건 ===
X 값을 정수로 받아들인다.
입력이 정말 저런모양인 것인가??? 앞에 int라고까지 적혀있다닛..;;한자씩 입력받는건가? 아니면 저 모양으로 파일입력? 아니면 소스내부에 존재?
곱셈과 덧셈횟수를 줄이라는데, { ... ((anX + an-1)X + an-2)x + ... a1 }X + a0 모양으로 정해진게 아니었던가..;;ㅁ;;
일반화된 식을 보고, 한번에 파악하기가 어렵다면 n = 1 부터 차근차근 넣어서 손으로 풀어보세요. n = 2, 3, ... 식으로 문제파악이 될때까지 풀어보세요. 그런후에 적절한 설계를 하고, 마지막으로 코딩을 하세요. 데블스캠프 세미나 때 한 하노이타워를 떠올려보세요. -- 보창
배열은 선언하고, 다항식에서 변수 x값은 표준입력받으세요. 예제 output에서는 변수 x = 1입니다. 출력은 output.txt파일에 한번 해보세요. 문제의 요구조건은 이정도 일것 같습니다. 좀 더 일반화된 프로그램을 만들고자 하는 분은 배열도 한번 입력받아 보세요. -- 보창
미안하군요. 앞으로 문제 표기 헷갈리지 않게 주의해서 쓰겠습니다 ! -- 아영
- 홈페이지만들기/css . . . . 12 matches
<font class="02">한컴 바탕폰트체로 나타냅니다.</font><br><br>
둘 다 있을 경우에는 먼저 지정한 글꼴이 우선 순위를 가진다.
스타일 시트에서는 원하는 글자 크기를 마음대로 조정할 수 있다.
<body><body>태그안에 있는 모든 문자들은 10pt로 설정되어 있습니다.<br>
<font class="02">우리 말로 스타일 시트입니다.</font><br><br>
글꼴 크기에 사용되는 단위는 아주 다양하게 있다. 단위를 사용하지 않으면 기본적으로 픽셀 단위를 사용한다.
<font size="3" class="01">italic으로 바뀝니다.</font><br><br>
<font size="3" class="02">oblique로 바뀝니다.</font><br><br>
=== 작은 영 대문자로 설정하는 font-variant ===
{font-variant:small-caps}영문자를 작은 대문자로 설정.
{font-weight:키워드}문자 두께를 키워드에서 설정한 값으로 적용
{font:각 스타일의 키워드}font에 관련된 스타일을 일괄적으로 지정할 수 있다.
- 1thPCinCAUCSE/ProblemA/Solution/zennith . . . . 11 matches
int startTime, endTime, ret = 0;
if (arg[0] == 12)
if (arg[2] == 12)
endTime = arg[2] * 60 + arg[3];
if (evalMeets(startTime))
while ( startTime = (++startTime % 720), startTime != endTime )
if (evalMeets(startTime))
if (!curTime)
if (prev != present)
if (time < meetPins[i])
else
- 3n+1Problem/김태진 . . . . 11 matches
if(b>c) {j=c; k=b;}
else {j=b; k=c;}
// 조건?참일경우:거짓일경우;
if(a==1) break;
if(a<i&&a>j) {n=A[i]; break;}
if(a%2==1) {a=(3*a+1)>>1; n++;}
else a=a>>1;
if(max<n) max=n;
if(feof(stdin)) break;
- 5인용C++스터디 . . . . 11 matches
* [5인용C++스터디/윈도우즈프로그래밍]
* [5인용C++스터디/API에서MFC로]
* [5인용C++스터디/다이얼로그박스] - 노수민
* [5인용C++스터디/소켓프로그래밍] - 나휘동
* [5인용C++스터디/마우스로그림그리기]
|| 이름 || 계획서 다운로드 || 프로그램 다운로드 ||
2003년 8월 27일로 공식적인 스터디가 종료되었습니다. 하지만 비공식적으로 최종 결과물이 만들어질때까지 계속 하는거 아시죠?^^ 강요하는건 아니지만 최종 결과물을 만들어서 목표를 달성해보면 많은 도움이 될 것입니다. 도움이 필요하면 언제는 연락주세요~ 그리고 다들 [5인용C++스터디/후기]에 스터디를 끝내고 난 후기를 적어주세요~ --[상규]
[프로젝트분류]
- 5인용C++스터디/버튼과체크박스 . . . . 11 matches
* 다이얼로그 박스에서 만들고 사용하는 방법을 발표하면 안됨!
if (CView::OnCreate(lpCreateStruct) == -1)
||BST_INDETERMINATE|| Button state is indeterminate (applies only if the button has the BS_3STATE or BS_AUTO3STATE style). ||
if(check3==BST_CHECKED)
else if(check3==BST_UNCHECKED)
else if(check3==BST_INDETERMINATE)
if(check3==BST_CHECKED)
else if(check3==BST_UNCHECKED)
- 8queen/강희경 . . . . 11 matches
if((row+1)<8 &&(col+2)<8)
if((row-2)>=0&&(col-1)>=0)
if((row-2)>=0 &&(col+1)<8)
if((row-1)>=0 &&(col+2)<8)
if((row+2)<8 && (col+1)<8)
if((row-1)>=0 && (col-2)>=0)
if((row+1)<8 && (col-2)>=0)
if((row+2)<8 && (col-1)>=0)
cout << endl;
if(board[row][col]==1)
cout << row <<","<< col <<endl;
- AdvertiseZeropage . . . . 11 matches
* WikiWiki Seminar 를 하거나 프로그래밍 Seminar
- 위키 페이지를 만들면 된다고 말은 해 두었지만 실제로 위키를 사용할줄 하는 새내기가 몇이나 있을지 의문스럽군요
* WikiWiki Seminar를 중간 고사 끝나고 하기로 정모에서 결정하였습니다. --[Leonardong]
* 학회의 성격을 분명히 한다. (일부 새내기들이 ZeroPage에 들어오면 선배들이 프로그래밍을 가르쳐줄 것이다 라고 생각하고 있습니다)
* 지금 ZeroPage의 성격은 무엇일까요? 프로그래밍을 가르쳐 주는 것이 전부가 되서는 안 되겠지만, 처음에는 주로 가르쳐주는 성격을 가지지 않나요?--[Leonardong]
- 제가 의미한 것은 '프로그래밍을 가르쳐주는곳. That's all.' 이었습니다. 제가 생각하는 ZeroPage는.. '같이 공부하면서 무언가를 얻을 수 있는곳' 아닌가요.? - [임인택]
* 현재 구상하고 있는 제로페이지 홍보 방안은
* (대외적) 오픈소스 프로젝트
* 이 부분에 대해서는 저도 회장이 되었을 때 상당히 고민했었습니다. 매년 상황이 다르고 제가 정답을 알고있는 것은 아니지만 나름대로 경험한 바가 있으니 간단한 의견을 적겠습니다. 제가 경험한 것에 의하면 기존 회원들이 학회를 학회답게 꾸려나간다면 크게 걱정할 것이 없습니다. 늘 자발적으로 공부하고, 스스럼 없이 자신이 가진 지식들을 공유하는 분위기가 형성되어 있다면 결국 그 분위기에 녹아들 수 있는 새내기들이 남게 되더라구요. '학회는 학원이 아니다.'라고 새내기들에게 직접 말해주는 것보다 실제 학회란 무엇인지 활동하는 모습을 통해 새내기들에게 보여주는 것이 더 좋은 방법이라고 생각합니다. :) - [김수경]
- AntOnAChessboard/문보창 . . . . 11 matches
cout << i << ' ' << j << endl;
if (t - x * x <= x)
else
if (x * x - t <= y)
else
if (x & 0x1)
else
if (x == sqrt(t))
else if (x & 0x1)
else
- AustralianVoting/Leonardong . . . . 11 matches
if ( candidator.votedCount >= n / 2 )
if ( candidators[ current(sheets[i]) ].fallen == false )
if ( candidators[i].votedCount <= limit )
if ( candidators[i].fallen == false)
if ( result > candidators[i].votedCount )
if ( candidators[i].fallen == false )
if ( candidators[i].votedCount != minVotedNum(candidators) )
if ( candidators[i].fallen == false )
if ( isWin( candidators[i], remainNum ) )
if ( candidators[i].fallen == false )
cout << candidators[i].name << endl;
- BeeMaja/허준수 . . . . 11 matches
생각을 코드로 옮기는 것은 어렵다.
if(start == input) break;
if(start == input) break;
if(start == input) break;
if(start == input) break;
void fifthStep(int count, int &start, int input)
if(start == input) break;
if(start == input) break;
if((3*(count*count + count) + 1) >= input)
fifthStep(count,start,input);
cout << x << " " << y << endl;
- BirthdatCake/하기웅 . . . . 11 matches
처음엔 뭔가 획기적인 방법이 없을까 생각을 많이하다가 그냥 노가다로 짜버렸다^^
if((i*ch[k].x+j*ch[k].y)>0)
else if((i*ch[k].x+j*ch[k].y)<0)
if(a==cherry && b==cherry)
if((i*ch[k].x+j*ch[k].y)>0)
else if((i*ch[k].x+j*ch[k].y)<0)
if(a==cherry && b==cherry)
if(cherry==0)
cout << getLine().x <<" " <<getLine().y<< endl;
- Bridge/권영기 . . . . 11 matches
if(tempn >= 4){
if(man[0] + man[1] + man[p] + man[1] > man[p] + man[0] + man[p-1] + man[0]){
else{
else{
if(tempn == 3){
else if(tempn == 2){
else if(tempn == 1){
if(temp.second != -1)printf(" %d", temp.second);
if(i != t-1)printf("\n");
- C++ . . . . 11 matches
Bell Labs' Bjarne Stroustrup developed C++ (originally named "C with Classes") during the 1980s as an enhancement to the C programming language. Enhancements started with the addition of classes, followed by, among many features, virtual functions, operator overloading, multiple inheritance, templates, and exception handling. The C++ programming language standard was ratified in 1998 as ISO/IEC 14882:1998, the current version of which is the 2003 version, ISO/IEC 14882:2003. New version of the standard (known informally as C++0x) is being developed.
C++은 범용성을 가진 컴퓨터 언어이다. 이는 정적으로 분류된(?) 다중 패라다임을 지원하는 언어이다. ( [:절차적프로그래밍 절차적 프로그래밍], [:GenericProgramming 제네릭 프로그래밍]을 지원한다.) 1990년대에 C++은 가장 상업적으로 인기가 있는 언어중의 하나가 되었다.
벨 연구소의 [http://www.research.att.com/~bs/homepage.html Bjarne Stroustrup]은 1980년대에 당시의 [C]를 개선해 C++을 개발하였다. (본디 C with Classes라고 명명했다고 한다.) 개선된 부분은 클래스의 지원으로 시작된다. (수많은 특징들 중에서 [가상함수], [:연산자오버로딩 연산자 오버로딩], [:다중상속 다중 상속], [템플릿], [예외처리]의 개념을 지원하는) C++ 표준은 1998년에 ISO/IEC 14882:1998로 재정되었다. 그 표준안의 최신판은 현재 ISO/IEC 14882:2003로서 2003년도 버전이다. 새 버전의 표준안(비공식 명칭 [C++0x])이 현재 개발중이다. [C]와 C++에서 ++이라는 표현은 특정 변수에 1의 값을 증가시키는 것이다. (incrementing이라 함). C++이라는 명칭을 이와 동일한 의미를 갖는데, [C]라는 언어에 증가적인 발전이 있음을 암시하는 것이다.
- C/Assembly/포인터와배열 . . . . 11 matches
// 그렇다면 index로 메모리를 복사하는 것은 eax로 복사하는 것보다 느리다는 얘긴가?
위의 경우 t는 조작 가능하지만 p는 조작 가능하지 않다.
왜냐하면 프로그램의 모든 것은 메모리로 올라간다. 즉, LC0, LC1은 프로그램의 일부로 데이터 영역에 올라간다.
포인터는 LC1을 가리키므로 메모리에 올려진 변하면 안되는 프로그램영역(CODE 영역)을 가리킨다.
하지만 배열(LC0)은 프로그램이 수행 되고 정의 부분이 되는 순간 LC0 영역의 데이터를 스택 영역에 복사한다.
즉, 배열은 CODE 영역의 포인터와 달리 스택영역에 존재하게 되므로 수정이 가능하게 되는 것이다.
- CPP_Study_2005_1/BasicBusSimulation/남상협 . . . . 11 matches
ifstream fin("data.txt");
#ifndef _BUS_SIMULATION_H_
ifstream &m_fin;
BusSimulation(ifstream &fin) : m_fin(fin) {}
#endif
for(vector<Bus>::iterator it=m_buses.begin(); it!=m_buses.end(); ++it)
for(vector<Bus>::iterator it=m_buses.begin(); it!=m_buses.end(); ++it)
#ifndef _BUS_H_
#endif
http://zerowiki.dnip.net/~namsangboy/basicBus.GIF
- ClassifyByAnagram/재동 . . . . 11 matches
self.wordList.append(self.wordString[i])
if self.anagramList[i][0] == self.getSortWordString():
if self.isWordListInAnagramList() is True:
self.anagramList[self.index].append(self.wordString)
else:
self.anagramList.append([self.getSortWordString()])
self.anagramList[len(self.anagramList)-1].append(self.wordString)
if __name__ == '__main__':
* 우선은 빠르게 하는 거 생각하지 않고 그냥 생각나는 대로 짰습니다. 이제 이걸 토대로 '빠르게'를 생각해 보아야겠지요 --재동
["ClassifyByAnagram"]
- CodeRace . . . . 11 matches
--제로페이지에서는 [http://altlang.org/fest/CodeRace 코드레이스]를 (밥 먹으러) 가기 전에 즐깁니다.--
코드 레이스는 팀 단위 실시간 프로그래밍 경진 대회입니다. 온라인게임이나 바둑, 혹은 스포츠 중계를 컴퓨터 프로그래밍에 적용하면 어떨까요? 코드 레이스는 10여팀이 동시에 같은 문제를 두고 프로그래밍을 하고, 이 모습이 실시간으로 벽에 투영되며, 해설자들은 관중과 교감해가며 그들이 두는 코드 한 수 한 수를 해설하는 독특한 행사입니다.
자신의 프로그래밍 실력을 뽐내고 싶거나 혹은 뛰어난 프로그래머들의 모든 것을 현장에서 직접 느끼고 싶은 분들을 환영합니다. 프로그래밍도 하나의 엔터테인먼트가 될 수 있다는 것을 체감하실 수 있을 겁니다.
처음에 해설자들이 시제를 제안합니다. 일종의 무대배경이 됩니다. 그리고 해설자들은 서너번에 걸쳐 요구사항 추가/수정을 합니다. 혹은 각 팀별로 돌아가면서 요구사항 추가/수정의 기회을 가질수도 있습니다. (이때 각 팀은 자기에게는 유리하면서 타 팀에는 불리하도록 요구사항 추가/수정을 할 수 있습니다.) 각 팀은 현장에서 주어진 요구사항을 빠짐없이 모두 구현해야 합니다.
대회 진행 중 해설자들은 각 팀에서 수정하는 코드를 끄집어 내서 분석하거나 해설하고, 때로는 실험해보기도 하며 바둑 중계를 연상하는 진행을 할 것입니다.
관중들은 원하는 경우 미리 비워둔 탁자에서 현장 팀을 구성해서 중간에라도 대회 참여가 가능합니다.
- ContestScoreBoard/문보창 . . . . 11 matches
if (i != numberCase - 1)
cout << endl;
if (isSumit[i] == true)
if (cin.peek() == '\n')
if (team[numTeam].timeProblem[numProblem] == -1)
if (team[numTeam].timeProblem[numProblem] == -1)
if (team[rankTeam[top]].numberSuccessProblem < team[rankTeam[j]].numberSuccessProblem)
else if (team[rankTeam[top]].numberSuccessProblem == team[rankTeam[j]].numberSuccessProblem)
if (team[rankTeam[top]].penalty > team[rankTeam[j]].penalty)
cout << rankTeam[i] << " " << team[rankTeam[i]].numberSuccessProblem << " " << team[rankTeam[i]].penalty << endl;
- CuttingSticks . . . . 11 matches
나무막대를 여러 조각으로 잘라야 한다. 절단 분야에서 가장 뛰어난 것으로 알려진 ACM(Analog Cutting Machinery)이라는 회사에서는 자를막대의 길이에 따라 요금을 부과한다. 그리고 톱의 구조상 한 번에 하나씩만 자를 수 있다.
절단 순서에 따라 요금이 달라진다는 것은 그리 어렵지 않게 알 수 있다. 예를 들어 10미터짜리 막대를 한 쪽 끝으로부터 2, 4, 7미터 위치에서 자르는 경우를 생각해보자. 자를 수 있는 방법은 매우 다양하다. 처음에 2미터 위치에서 자르고 그 다음에 4미터 위치, 마지막으로 7미터 위치에서 자를 수도 있다. 이렇게 하면 요금은 10+8+6=24가 된다. 첫번째 막대는 10미터였고, 그 다음 막대는 8미터였고, 마지막 막대는 6미터였기 때문이다. 하지만 일단 4미터 지점에서 자르고 2미터 지점에서 자른 다음 마지막에 7미터 지점에서 자르면 요금이 10+4+6=20이 되므로, 앞에서 잘랐던 방법으로 하는 것보다 요금을 줄일 수 있다. 어떤 막대가 주어졌을 때, 최소 절단 요금을 구하는 프로그램을 만들어보자.
그 다음 줄에는 n개의 양의 정수 Ci ( 0 < Ci < l) 가 입력되는데, 이 숫자들은 막대를 잘라야 할 위치를 나타내며, 오름차순으로 입력된다.(같은 정수가 두 번 입력되는 일은 없다.)
l의 값으로 0이 입력되면 입력이 종료된 것을 의미한다.
각 막대를 자르는 데 드는 최소 비용을 아래 예에 나와있는 것과 같은 식으로 출력한다.
- CvsNt . . . . 11 matches
http://www.cvsnt.org/wiki/ 모인모인으로 돌리고 있는 cvsnt 홈페이지
=== CVSNT 로 ViewCVS 돌리기 ===
이것들이 준비되었으면, conf 화일을 맞추자. 기본적으로 /cgi/viewcvs.conf 화일인데, 소스를 보면 간단하다.
하나만 맞추면 되는데, 바로 가장 중요한 CVSROOT 의 위치이다. 설정해준 곳으로 맞춰준다.
cvsgraph_path =F:webviewcvswindowsbinaries # 윈도우즈환경이고 잘 안될경우 절대경로로.
주의할점! CVS 에 해당 프로젝트와 같은 이름의 tar.gz를 올리지 말것! tarball 기능시 viewcvs 가 tarball 화일을 만들때 이름충돌이 나기 때문이다.
http://free1002.nameip.net:8080/viewcvs/viewcvs.cgi - 현재 [1002]의 컴퓨터에서 돌고있는 ViewCVS. apache cgi 로 돌리고 있다.
CVSNT 의 경우 cvs 자체 사용자와 NT 사용자 둘 다 받는 것 같다. 그래서 NT 쪽에 Poweruser 그룹의 사용자들을 추가해주면 cvs도 사용할 수 있게 된다.
- DNS와BIND . . . . 11 matches
* 주석문 - 세미콜론(;)으로 시작해서 그 라인의 끝까지
A - 호스트 네임을 주소로 맵핑하는 리소스 레코드
CNAME - 별명을 그에 해당하는 정규(canonical)네임으로 맵핑하는 리소스 레코드
네트워크 주소를 호스트 주소로 맵핑
; movie.edu: 점으로 끝나지 않는 이름은 기원이 추가됨
; 249.249.192.in-addr.arpa: 점으로 끝나지 않는 이름은 기원이 추가됨
; 253.253.192.in-addr.arpa: 점으로 끝나지 않는 이름은 기원이 추가됨
* nslookup으로 검사
* 로컬 네임 탐색
* 로컬 주소 탐색
[책분류] [프로젝트분류]
- EcologicalBinPacking/곽세환 . . . . 11 matches
if (!(cin >> bottle[i][j]))
if ((bottle[0][BROWN] + bottle[1][GREEN] + bottle[2][CLEAR]) > not_move_bottle)
if ((bottle[0][CLEAR] + bottle[1][BROWN] + bottle[2][GREEN]) > not_move_bottle)
if ((bottle[0][CLEAR] + bottle[1][GREEN] + bottle[2][BROWN]) > not_move_bottle)
if ((bottle[0][GREEN] + bottle[1][BROWN] + bottle[2][CLEAR]) > not_move_bottle)
if ((bottle[0][GREEN] + bottle[1][CLEAR] + bottle[2][BROWN]) > not_move_bottle)
if (bin[i] == BROWN)
else if (bin[i] == CLEAR)
else
cout << " " << min_move << endl;
- EightQueenProblem/강인수 . . . . 11 matches
* C++로 한거(심심해서 한거)
if(n <= 1)
if( abs(ar[i] - ar[j]) == abs(i - j) && i != j )
next_permutation(ar.begin(), ar.end());
if( isCorrectChecker(ar) )
cout << endl;
* 파이썬으로 한거(2003 데블스 캠프 대비용)
if self.board[i] == self.board[curRow] or\
if self.isValid(curRow):
if curRow == self.size-1:
if __name__ == '__main__':
- EightQueenProblem/이창섭 . . . . 11 matches
* 임의의 한 점에 퀸을 놓고 그곳을 시발점으로 하여 공격할 대상이 없는 곳에 퀸을 놓아 퀸이 총 8개가 되면 출력하고 끝난다. 퀸이 8개가 되지 않으면 다시 임의의 점을 수정한다. 이 임의의 점은 모든 좌표를 돌며 정해진다.
* 공격할 대상이 있는 가는 퀸의 놓을 위치에서 가로세로 대각선 방향으로 7칸씩 다른 퀸의 존재여부를 검사하는 것이다.
if (exam(i, j))
if (count())
else
if (array[i+7][c] == 1 || array[r][i+7] == 1 || array[r+i][c+i] == 1 || array[r-i][c-i] == 1 || array[r-i][c+i] == 1 || array[r+i][c-i] == 1)
if (array[i][j] == 1)
if (counter == 8)
else
- EightQueenProblem/임인택 . . . . 11 matches
8bit == 1byte 라는 생각을 하고 비트연산만으로 할 수 있을것 같다는 생각을 하였다. 하지만 이 경우는 n-Queen 으로까지 확장하기까지 힘들고 간단한 index 로 값을 참조할수 있는 배열에 비해 비능률적인 방법이다. 단지 속도가 조금 빠를 것으로 믿었는데.. 빨라봤자 얼마나 빠르겠어.--;
if(y==QUEEN-1) print_result();
if(check(i,y+1))
cout << endl;
if(i<0 || j<0 || i>=QUEEN || j>=QUEEN)
for(y=j-1; y>=0 && sum==0; y--) /* 위로 */
for(x=i-1; x>=0 && sum==0; x--) /* 왼쪽으로 */
- EmbeddedSystemClass . . . . 11 matches
임베디드 환경에서의 GUI 툴킷(Qt-embedded)를 이용한 프로그램. 디바이스 드라이버 프로그래밍을 실습한다.
실습에서 사용하는 리눅스는 레드햇 9.0으로 상당히 오래된 버전을 이용한다.
최신 버전의 리눅스를 구해서 할 경우 페도라 Full install 의 경우 큰 문제가 없으나,
'''다음의 명량어를 순서대로 실행해서 관련된 패키지를 설치한다.'''
// 소스 리스트 업데이트, 최신 버전으로 패키지 업데이트
// vmware tools 인스톨에 필요한 gcc 를 업로드한다.
// 리눅스 시리얼 터미널 프로그램 설치
// 필요할 경우 다음의 명령어를 통해서 x-window, gnome 을 설치한다.
// 설치후 입력기로 SCIM 을 등록한다.
- ErdosNumbers/황재선 . . . . 11 matches
if (name.compareTo("Erdos, P.") == 0) {
if (tm.containsKey(name)) {
if (joint) withCoWorker(people);
else noAssociate(people);
if (name.compareTo("Erdos, P.") != 0)
if (!isInclude(name)) {
if (person.compareTo(nameList.get(i)) == 0)
public class TestErdosNumbers extends TestCase {
* 자바 1.5의 새로운 기능을 조금 사용해보았다. 클래스 Scanner는 이전 방식으로 하는 것보다 훨씬 편한 기능을 제공해 주었다. for loop에서 신기하게 배열을 참조하는 방식이 Eclipse에서 에러로 인식된다.
- EuclidProblem/곽세환 . . . . 11 matches
if (q > p)
if (q == 0)
if (a2 < b2)
else
if ((max * i - 1) % min == 0)
else if ((max * i + 1) % min == 0)
if (a2 == min)
cout << x << " " << y << " " << gcd << endl;
else*/
cout << x << " " << y << " " << g << endl;
- HanoiProblem/상협 . . . . 11 matches
* 이 소스는 Hanoi 문제를 푼다음에 보면서 비교를 하는 식으로 보면 풀기 전에 보는 것보다 더 많은 도움이 될거 같네요.
* 단계를 크게 세단계로 나눈다.
if(n!=0)
hanoi(n-1, a,inout(a,b)); //1 번 단계 시작점 a에서 입력된 목적지링(b) 말고 다른 쪽으로 옮긴다.
cout<<a<<"->"<<b<<"\n"; //2 번 단계 시작점의 가장 큰 링을 목적지 링(b)으로 옮긴다.
hanoi(n-1, inout(a,b),b); //3번 단계 첫번째 단계에서 간곳-inout(a,b) 에서 목적지링(b) 으로 간다..
if((i==1 && j==2) || (i==2 && j==1))
else if((i==1 && j==3) || (i==3 && j==1))
else
if(n!=0)
- HelpOnPageDeletion . . . . 11 matches
페이지 지우기를 사용할 수 있는 위키의 경우 {{{DeletePage}}} 액션을 통해 페이지를 지우실 수 있습니다. 페이지를 지운다는 것은 가장 최근의 편집 복사본이 지워진다는 것이며, 페이지의 모든 변경내역은 여전히 남아있게 됩니다.
모니위키 1.1.2 이전에는 수동으로 복구하는 방법이 있었고 모니위키 1.1.3 이후에는 {{{revert}}}액션을 따로 지원하고 있습니다.
지워지거나 손상된 페이지를 복구하려면 [[Icon(info)]]를 통해서 페이지 변경내역을 볼 수 있어야 합니다. 단축키로 '''i'''를 누르면 변경 내역을 보여줍니다.
raw 혹은 [[GetText(source)]]라고 되어있는 링크를 누르면 텍스트 형식의 위키문법이 브라우져에 보여지게 되며, 이를 그대로 복사한 후에 해당 페이지에서 [[Icon(edit)]] 아이콘을 눌러 해당 페이지를 편집하여, 편집 폼에 복사했던 텍스트 내용을 붙여넣기 한 후에 저장합니다.
모니위키 1.1.3부터 지원하는 `revert`액션을 사용합니다. 단축키로 '''i'''를 누르면 변경내역을 보여주며 이때에 [[GetText(revert)]]라는 액션에 대한 링크가 나타납니다. `revert` 액션에 대한 링크가 나타나지 않으면 {{{?action=revert&rev=1.100}}}식으로 주소줄에 써넣은 후에 페이지를 불러오면 대화창이 뜨게 됩니다.
복구 액션은 남용이 가능하므로 비밀번호로 제한이 걸린 `protected`액션이므로 위키에 따라서 일반 사용자가 사용하지 못할 수 있습니다.
이러한 경우에는 일반 사용자가 복구하려면 위의 '''수동 복구'''를 참조하여 복구하시면 됩니다.
- JTDStudy/첫번째과제/원희 . . . . 11 matches
if (comNum[i] == 10){
if (comNum[i] == userNum[j] && i == j)
else if(comNum[i] == userNum[j] && j != i && (comNum[j] != userNum[j]))
if(strikeCounter == 3){
if(outCounter == 3 && strikeCounter == 0){
자바가 완전 기초라서요, 숫자 세개 입력받을때 1 2 3 이렇게 입력받으면 배열에서 1,2,3 이렇게 들어가게 할려고 노력을 해봤지만 어렵네요......ㅠㅠ 생각의 한계로 결국은 따로따로 입력받기......
* 방법은 여러 방법이 있지. 만약 100자리라면, int 형이 정수값만 가지고 나머지는 버리는 특성을 이용해서 123%10 하면 3이 나오고, 12%10 하면 2 나오고 나머지는 1이고... 이런식으로 숫자른 나누어 줄 수도 있고, 입력시에 어짜피 String형으로 받아지기 때문에 문자 하나씩 끊어 읽게끔 해도 되지^^ 조금만 생각해보면 방법이 나올 수도 있어 - [상욱]
- Java/CapacityIsChangedByDataIO . . . . 11 matches
재미로 보는 ["Java"] Container Capacity 변화
data length: 17 capacity: 34 <-- 현재 길이의 두배로
data length: 11 capacity: 20 <-- 이전 capacity 의 두배로
if (out == null)
showedString.append(" ");
showedString.append(aSrc);
stringBuffer.append((char) ('a' + length % 26));
if (oldCapacity != stringBuffer.capacity())
if (oldCapacity != stringBuffer.capacity())
if (oldCapacity != aVector.capacity())
if (oldCapacity != aVector.capacity())
- MFC/Control . . . . 11 matches
하나의 컨트롤은 클래스와 연계될 수도, 안될 수도 있다. 정적 컨트롤의 경우 클래스가 필요없을 것 같지만 CStatic 이라는 클래스를 통해서 모양을 변경하는 것이 가능하다. 마찬가지로 버튼 컨트롤들의 경우도 대부분 Dialog 객체를 통해서 처리가 된다. CButton 클래스의 경우에는 컨트롤을 관리하는데있어서 객체가 필요할 경우에 이용하게 된다. 이러한 모든 컨트롤들은 모두 윈도우의 일종이기 때문에 CWnd 에서 상속된 클래스를 이용한다.
MFC의 컨트롤들은 대부분 6가지의 종류로 구분된다.
|| 버튼 컨트롤 || 한번의 마우스 클릭으로 응용프로그램과 통신. 라디오 버튼은 다른 버튼과 그룹으로 묶여서 다중 선택이 불가능하도록 한다.[[BR]]반면 체크박스는 개별적인 선택이 가능하다. [[BR]]푸시 버튼은 일반적으로 대화상자를 닫는데 사용된다. ||
이외에도 common control 로서 애니메이트 컨트롤, tree 컨트롤, spin button 등의 컨트롤 들이 존재한다.
- MagicSquare/성재 . . . . 11 matches
혹시나 이거 밑바탕으로 될지 압니까??? ^-^;;
if(mab%2!=0)
cout<<endl;
cout<<endl;
if(mbang==0 && t+1<mab)
else
if(a-1<0)
if(mbang==0 && t+1<mab)
else
cout<<endl;
else
- NumberBaseballGame/영록 . . . . 11 matches
cout<<a<<" "<<b<<" "<<c<<endl;
if(a == number1)
else if(a == number2 || a == number3 )
if(b == number1 || b == number3)
else if(b == number2)
if(c == number1 || c == number2)
else if( c == number3)
if(count1 == 3)
- Pairsumonious_Numbers/김태진 . . . . 11 matches
if(Aindex==n)return 1;
if(abs(arr[i]-arr[j])==abs(a[Aindex-2]-a[Aindex-1])){
if(a[k]==x)flag=0;
if(flag==1)break;
if(flag==1)break;
if(a[1]>a[2]){
if(checkArr[i]!=arr[i]){
if(feof(stdin))break;
if(isValid()==1){
* 예제 케이스에 두가지경우 빼곤 다 되네요. 두 경우는 무한루프 =ㅅ= -[김태진]
- PrimaryArithmetic/문보창 . . . . 11 matches
if (strcmp(str, "0 0") == 0)
if (turn)
else if (str[i] == ' ')
else
if (temp > 9)
else
if (sumCarry == 0)
else if (sumCarry == 1)
else
- Profiling . . . . 11 matches
'''Profiling'''(프로파일링)은 원하는 부분의 프로그램 성능을 측정하는 성능 테스트이다.
많은 선인들이 절대로 최적화를 우선시 하지 말라는 말씀 하지만 프로그램을 작성하면서, 우리가 많이 신경 쓰는 부분은 '''성능'''이다.
이런 파레토 법칙은 프로그램에서도 적용될 수 있는 법칙인데, 이런 식이다. (몇%는 중요하지 않다. 중요한 점은 인간이 보통 인지하는 것과 실제의 모습이 차이가 있다는 점이다. )
프로그램의 80%의 리소스가 20%의 코드에서 쓰여진다.
프로그램이 성능을 높이기 위해서 이런 20%의 핵심 코드를 추정, 측정을 통해서 찾아야한다.
'''Profiling'''(프로파일링)은 원하는 부분의 프로그램 성능을 측정하는 성능 테스트이다.
(다른 소개글로 [http://maso.zdnet.co.kr/20010407/about/article.html?id=120&forum=0 마소4월호기사 Python 최적화론]를 추천한다.-링크깨졌음)
[컴퓨터분류],[프로그래밍분류]
- ProgrammingPearls/Column5 . . . . 11 matches
* 그냥 Binary Search의 슈도코드를 C문법으로 바꿔놓은 것이다.
* 큰 프로그램에서는 툴에서 제공하는 디버깅을 쓰지만, 이렇게 작은 알고리즘 같은 것에서는 print문 같은걸 쓰는게 편하다고 한다.
* 대강 assert의 완급 조절이라는 말로 표현이 될듯하다.
* 또한 Binary Search의 가장 중요한 전제 조건인 sort되었는가? 체크해주는 함수를 앞에다 써준다. 이 경우에는 search를 한번만 해주면 n + lg n 이렇게 될것이다. 하지만 sort되었는가 체크하는 함수는 한번만 해주면 되므로, search를 한 몇천,몇만번 돌리면 결국 lg n 에 수렴할 것이다.
* 아까 말했던 컴퓨터가 자동으로 테스트해주는 발판을 만들어보자.
* 별거 없다. 그냥 배열을 생성한다음, for를 정해진 횟수만큼 돌려가면서 assert체크해준다. 끝이다.--; 이렇게 함으로써, 사이즈가 0, 1, 2의 제곱수, 2의 제곱수가 아닌수 모든 경우의 수를 테스트해볼수가 있다.
* Coding : 하이레벨의 슈도코드로부터 시작하자.
* Debugging : 발판이랑 고립된 프로그램이나, 임베디드된 곳에서는 하기가 힘들다. Column5에서 설명한다.
- ProjectPrometheus/EngineeringTask . . . . 11 matches
|| HTML Parsing 결과를 Object 로 반환 || ○ ||
|| 도서관 검색 CGI 에 Get/Post 로 인자 전달 || ○ ||
|| 도서관 검색 CGI 에서 반환된 결과를 HTML 로 반환 || ○ ||
|| 도서관 검색 결과 Object 로 HTML 생성 . || ○ ||
|| 도서관 WEB 의 ViewBook Page 를 Parsing, ViewBook 객체로 추출 ||
|| ViewBook 정보를 보여주는 JSP Page 작성. Servlet 내의 Service 로 등록 ||
* 시스템으로부터 책을 추천받을 수 있다.
|| Prototype -> Java 로 포팅 || ○ ||
* 로그인을 해야 서비스를 이용할 수 있다.
* 새로 들어온 책을 분야별로 확인할 수 있다.
- ProjectPrometheus/LibraryCgiAnalysis . . . . 11 matches
또는 웹 필터 프로그램인 Proxomitron 을 이용할 수도 있다. (http://proxomitron.cjb.net/) 개인적으로는 webdebug 가 더 해당 폼 값/헤더 값만 보기엔 편했던걸로 기억.
* Servlet-Engine: Tomcat Web Server/3.2.1 (JSP 1.1; Servlet 2.2; Java 1.3.1_01; Windows 2000 5.0 x86; java.vendor=Sun Microsystems Inc.)
다른건 둘째치고, 제발 안정화되어서 검색 좀 제대로 되었으면 좋겠다. -_-; 젠장 검색이 되야 뭘 분석을 하던지 하지. -_-
* 같은 POST 커맨드라 하더라도 IP가 다르면 결과값이 나오지 않는다. (이로 볼때 서버 내부에서 IP와 History 가 연관되어 저장된다.)
"Accept":"image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*"}
(임시로 잠시 여기에 쓴 중)
로그아웃 양식
로그아웃 버튼
=== 새로 바뀐 폼 ===
- ProjectVirush . . . . 11 matches
외계인이 지구에 있는 생명체에게 바이러스를 보낸다. 강력한 바이러스로 지구 생명체를 몰살하려고 플레이어는 바이러스를 통제하는 과학자가 된다. 외계 본부에서 받은 지령을 성공적으로 수행하면 보상이 뒤따르지만, 그러기 위해서는 만만치 않은 다른 바이러스들을 따돌릴 전략을 세워야 한다.
Trac을 이용해 [http://165.194.17.5/trac/aekae/timeline 프로젝트 진행상황]과 [http://165.194.17.5/trac/aekae/browser//ProjectVirush Source Code]를 확인할 수 있습니다.
로그인 클라이언트 로그인, 가입화면 만들기 1.5
로그인 클라이언트 사용자 암호 암호화 1.5
로그인 서버 사용자를 파일에 등록 0.5
예약(zone->lab) 서버 현재 명령 파일로 저장 2
바이러스는 궁합이 맞는 경우에만 들어가 살 수 있다.
감염은 흡착과정과 칩입과정으로 나뉜다.
[프로젝트분류]
- ProjectVirush/Rule . . . . 11 matches
* 게임 속 시간은 단위 시간을 기준으로 흘러간다.
* 명령을 수행하는데는 현실 세계의 시간이 필요하다. 따라서 플레이어는 게임에 접속해서 명령이 수행될 시간을 예약한다. 그리고 예약한 시간에 자신의 명령이 수행되었는지를 다음 번에 확인하고 새로운 전략을 세운다.
* 기본적으로 일정한 방향성 없이 움직인다.
* 번식한다. 즉 새로운 숙주를 탄생시킨다.
* 숙주는 기본적으로 모든 바이러스를 잡을 수 있는 항체를 어느 정도 갖는다. (이를 '''기본 항체'''라고 한다.)
* 새로운 바이러스가 숙주에 침입했을 때 기본 항체가 바이러스를 잡는다.
* 기본 항체가 새로운 바이러스를 잡기에 모자라는 경우(바이러스 사살 속도<바이러스 증식 속도), 숙주는 새로운 바이러스임을 알아차리고 이에 특화된 항체를 생산한다. 특화된 항체는 기본 항체보다 바이러스 사살 속도가 빠르다.
* 한 번 특화된 항체를 생산한 경우 이를 '''습득 항체'''라고 하고, 특화된 항체를 생산하는 과정이 빨리 일어난다.
* 지령 - 외계인 본부에서 처음 시작하는 사람에게는 게임을 시작하는 방법을 알려주는 도움말으로써 지령을 내린다. 모든 플레이어어에게 지령을 내려서 경쟁을 시킬 수도 있다.
- R'sSource . . . . 11 matches
if oldlen is not newlen :
print """이 프로그램은 www.replays.co.kr의 스타크래프트 리플레이를
모아주는 프로그램 입니다."""
inputDir = raw_input("""저장 하고 싶은 경로를 지정하세요.(예>c:\\\\replay\\\\) : """)
if matching:
if matching:
if matching:
if os.path.exists(defaultDir + saveDirName)==0:
if __name__ == '__main__':
sys.argv.extend(['--packages', 'win32com'])
console=["rep.py"], # 도스창에서 실행할 파일을 생성할 경우
- Refactoring/ComposingMethods . . . . 11 matches
* 하나로 묶을 수 있는 작은 코드 조각들에 대해서, 그 목적을 잘 표현하는 이름을 가진 메소드에 넣자.
if ( (platform.toUpperCase().indexOf("MAC") > -1) &&
if ( isMaxOs && isIEBrowser && wasResized ) {
if (inputVal > 50) inputVal -= 2;
if (inputVal > 50) return -= 2;
''Turn the method into ints own object so that all the local variagles become fields on that object. You can then decompose the method into other methods on the same object.''
http://zeropage.org/~reset/zb/data/ReplaceMethodWithMethodObject.gif
if (people[i].equals ("Don")){
if (people[i].equals ("John")){
if (people[i].equals ("Kent")){
if (candidates.contains(people[i]))
- RegularExpression/2011년스터디 . . . . 11 matches
우리가 배운걸 순서대로 쭉 적어볼까요
html을 띄워놓고 익스플로러 or 크롬의 개발자 도구에서 javascript 콘솔모드로 "문장".matches("\Regex\"); 하면 나온답니다용.
* == 앞의 문자(명령)를 0개 이상 연속으로 찾을 때.
e.g. '''.*''' 로 하면 여러 문자(모든 것)을 0개 이상 받아옵니다.
+ == 앞의 문자(명령)를 1개 이상 연속으로 찾을 때.
$ 앞의 명령을 마지막으로 하는 것들을 찾음.
()소괄호 == 명령들을 |로 여러가지 나타낼 수 있음.
또 다른 예제 (저번시간과 유사함) 스크립트에서 괄호가 제대로 열리고 닫혔는지, 제대로 닫히지 않은 케이스를 뱉어줌.
}}} 으.. 아깐 제대로 됐는데 지금은 또 안되네요 --
- STL/sort . . . . 11 matches
* 우리는 프로그램 첨 배울때 sort 짜는걸 많이 한다. 수행시간이 θ(n*n)이나 되는 소트를 짜곤 했다.
sort(v.begin(), v.end(), less<int>()); // 오름차순
for(VIIT it = v.begin() ; it != v.end(); ++it)
cout << *it << endl;
cout << endl;
sort(v.begin(), v.end(), greater<int>()); // 내림차순
for(VIIT it = v.begin() ; it != v.end(); ++it)
cout << *it << endl;
// 간단하게 오름차순 쓸거면 <functional> 없애고 sort(v.begin(), v.end()) 하면 된다.
* STL의 이런 편리함은 프로그래머가 자료구조 만드느라 애쓰는 시간을 알고리즘을 생각하는 시간으로 돌려준다.
- SibichiSeminar/TrustModel . . . . 11 matches
1. TrustModel에 대한 것과 별개로 프리젠테이션 한 것도 정말 중요한 내용이라 오늘 온 새내기분들이 잘 기억하고 계셨으면 좋겠습니다. 버전 관리의 필요성이나 유용함에 대해서는 직접 느껴봐야 와닿을거예요. ZeroPage에서 느낄 수 있는 기회를 마련하도록 하겠습니다. - [김수경]
* 홍기가 대학원에서 짱박혀 있더니 이런걸 하고 있었군요,, 군대 갔다 온 사이에 너무 멀리 가 버린 느낌? ㅋㅋㅋ 아무튼,, 자료구조 시간에 Pre-test라는 형식으로 검색 방식에 관한 희소 행렬과 관련 지었던 문제가 생각이 나는 그런 세미나였습니다. 뭐 제가 본 Pre-test는 그래도 쉽게 접근할 수 있게 해 놨었는데 역시나 자세히 들어가니 뭔가 복잡하기도 하다는 느낌도 들더군요. 마지막 즈음에 M-16과 장난감 총으로 든 예시는 재밌으면서도 어딘가 한편으로는 씁쓸한 생각이 들기도 하는.. 뭐 그랬습니다. - [권순의]
* 음.. 어려운 내용이었습니다. 추상적으로 이해하고 끄덕끄덕... 견문이 좁은 탓이겠지요. ㅜㅜ 뒷부분은 재밌었습니다. 지난 주에 언급했던 커뮤니케이션의 실패와 관련이 있을지도... 버전 관리 얘기도 나왔는데, 그 부분이 궁금하네요. 그렇다 할만한 팀워크를 해본 적이 없어서요. 코드를 구역 별로 나눠서 동기화하는 방법이 적절할 것 같은데. 이런 일을 돕는 프로그램이 있는거죠? -_-; - [정진경]
* 세미나를 보면서, 와.. 저런걸 여기서(우리 코앞에 있는 연구실)도 구현하는구나.. 라는 생각이 들어서 뭐랄까, 진짜로 뭔가 연구하는데 다가간다는 느낌이 들었네요. TrustModel과 비슷한걸 만들고자 하는 사람들을 아는데, 저런식으로 아예 수치화 시키는게 역시 효율적인가.. 라는 생각도 들었구요, 후에 연구실(다른데인가?)에 들어간다면 저런걸 하는걸 보게/혹은 후에는 직접 하게될 수 있다는 사실에 나름 다시 감탄(?)했어요. ..아, 개발자와 기획자가 상상하는 것에서 상당히 그럴듯하다고 생각했어요.(창설에 이렇게 만들어달라고 하면 상당히 다른 모양이 탄생하곤 했지요) -[김태진]
* 세미나 주제가 참 놀라웠습니다. 페이스북을 이용해 관심사가 같은 사람들을 엮어주는 앱은 이미 나와있지만, 이건 일일히 사용자가 입력을 해야하는데, TrustModel은 프로그램이 알아서 다해주는것 같더군요. 지식이 얇아서 여기까지밖에 이해 못했습니다. 꺼이꺼이. 세미나 막간에 넣은 M-16인용 개발자-기획자-디자이너의... 뭐라고 해야하나요. 암튼 재밌게 잘 봤습니다. 삼위일체가 답이군요. 하하하하.. 정확한 커뮤니케이션은 정말 힘든것 같아요. 새내기 다운 새내기가 없다는 말씀을 자꾸 하셨는데.. 저 새내기 맞아요 ㅜㅠ C언어도 학교 오고나서야 처음으로 알았어요 ㅜㅠ - [고한종]
- SummationOfFourPrimes/김회영 . . . . 11 matches
if(check_prime_number(i)==true)
if(n==1)
else if(n==2 || n==3) //숫자 1,2,3은 소수이다.
else if(n>3)
if(n%j==0)
if(prime_array[a]+prime_array[b]+prime_array[c]+prime_array[d]==number)
cout<<endl;
if(temp==0)
cout<<"조건을 만족하는 정답은 없습니다.!!!!";
- UML/CaseTool . . . . 11 matches
UML Case 툴의 기능은 크게 다음의 3가지로 구분할 수 있다. round-trip 기능은 최근의 case tools의 발전중에 나오는 기능임. 필수적인 기능으로 보이지는 않음.
''Diagramming'' in this context means ''creating'' and ''editing'' UML [[diagram]]s; that is diagrams that follow the graphical notation of the Unified Modeling Language.
The diagramming part of the Unified Modeling Language seems to be a lesser debated part of the UML, compared to code generation.
The UML diagram notation evolved from elderly, previously competing notations. UML diagrams as a means to draw diagrams of - mostly - [[Object-oriented programming|object oriented]] software is less debated among software developers. If developers draw diagrams of object oriented software, there is widespread consensus ''to use the UML notation'' for that task. On the other hand, it is debated, whether those diagrams are needed at all, on what stage(s) of the software development process they should be used and whether and how (if at all) they should be kept up-to date, facing continuously evolving program code.
''[[Code generation]]'' in this context means, that the user creates UML diagrams, which have some connoted model data, from which the UML tool derives (through a conversion process) parts or all of the [[source code]] for the software system that is to be developed. Often, the user can provide some skeleton of the program source code, in the form of a source code [[template]] where predefined tokens are then replaced with program source code parts, emitted by the UML tool during the code generation process.
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/]).
This means that the user should be able to change either the ''model data'' (together with the corresponding diagrams) or the ''program source code'' and then the UML tool updates the other part automatically.
Rational Software Architect, Together가 유명하고, 오픈 소스로는 Argo, Violet 이 유명하다.
UML 케이스 툴과 달리 Visio 같은 경우에는 Diagramming 기능만을 제공한다. Diagramming Tool 이라고 분류하는 듯하다.
- UglyNumbers/송지훈 . . . . 11 matches
using std::endl;
clock_t start,end; // 수행시간 구할 때 쓰려고 넣은 변수.
if(num == 1) { // 2, 3, 5 로 나눴는데 몫이 1이면 못난이수.
end = clock(); // 끝난 시간.
cout << "Run time = " << (double)(end-start)/CLK_TCK << endl
<< arr[target-1] << endl;
다른 방식의 알고리즘으로 그냥 막 배열에 때려넣은 뒤
30개까지 구해봐도 법칙을 못찾아서 그냥 위의 방법으로 구했음...
결국 퀵 소트로 정렬하신 듯 한데...
- WikiSandPage . . . . 11 matches
로그아웃 버튼 제조 태그
<span class="button"><input type="submit" class="button" name="logout" value="로그아웃"></span>
== 환경설정의 로그인 화면 ==
* 로그인 여부를 어떻게 구분할 것인가?
말이 되냐 Uplode ;; 아 moin 1.0 대로 업그레이드 해도, 이런식으로 InterMap 이면 변화없이
새로 추가된것인가?
cout << "Hello, world~~~" << endl;
http://zeropage.org/wikis/nosmok/moinmoin.gif
[http://zeropage.org/wikis/nosmok/moinmoin.gif 이쁜이사진]
과연 어떻게 나올까. 전체 다 나오는 건 별로인데
- Xen . . . . 11 matches
젠(Xen)은 오픈소스 기반의 가상화 SW다. 젠은 하나의 컴퓨터에서 여러 종류의 운용체계(OS)를 사용할 수 있게 하는 SW로 한 가지 단점은 OS를 수정해야 한다는 점. 그러나 올해 공개될 인텔의 밴더풀(vanderpool)이나 VT 기술을 적용할 경우 OS 수정이 필요하지 않을 것으로 보여 빠른 확산이 예상된다.
초창기 개발과 지원을 담당해 온 ‘젠소스’라는 기업은 젠을 컴퓨터의 표준 기능으로 자리잡게 하겠다는 계획이다. 실제로 최근 열린 리눅스 월드 콘퍼런스에서 IBM·HP·인텔 등 주요 컴퓨팅 관련 기업이 젠에 대한 후원 의사를 밝힌 바 있다.
현재 젠은 인텔 펜티엄과 같은 x86 계열 프로세서에서 작동되지만 곧 다른 프로세서에서도 작동될 것으로 보인다. AMD는 패시피카(pacifica) 등 차세대 기술이 적용되는 64비트 기반 옵테론 칩세트에서 젠을 사용할 수 있도록 할 계획이다. 인텔은 아이테니엄 프로세서에서도 실험적으로 젠을 지원하고 있으며, IBM도 파워 칩에서 젠을 사용하는 데 관심을 보이고 있다
- ZPHomePage/계획 . . . . 11 matches
* 위키를 홈페이지 속으로
* 캐릭터, 로고, 배너 제작 => 후에 뱃지 제작에도 이용
* 게시판과 위키 로그인 통합
* RSS로 게시판내용 출력
* 제로페이지 소개 페이지 제작
로또어때? --세환
* 볼만한 위키 페이지 1주일 단위로 소개
== 다음 프로젝트로 ==
이번프로젝트에선 빼기로 했음. 아바타나 아이템을 디자인하기엔 작업이 커질 것 같음
- [Lovely]boy^_^/Diary/2-2-15 . . . . 11 matches
* A data communication course ended. Professor told us good sayings. I feel a lot of things about his sayings.
* A computer architecture&organization course ended too. I am worrying about a final test.
* A merriage and family course ended too, Professor is so funny. A final test is 50 question - O/X and objective.
* A algorithm course ended. This course does not teaches me many things.
* A object programming course ended. Professor told us good sayings, similar to a data communication course's professor. At first, I didn't like him, but now it's not. I like him very much. He is a good man.
* Tomorrow is a unix system programming final test. It's so difficult. I'll try hard.
* 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.
* Ah.. I want to play a bass. It's about 2 months since I have not done play bass. And I want to buy a bass amplifier. A few weeks ago, I had a chance that can listen a bass amplifier's sound at Cham-Sol's home. I was impressed its sound. ㅠ.ㅠ.
- iruril/도자기토론 . . . . 11 matches
* 총토론시간은 20분이내로
그럼 생활속에서 이런거 말고 그냥 문화적인 것으로 생각하는거야?
부가적으로 붙어야 하지 않을까
도자기 문화에 대한 현주소와 사람들의 인식 그리고 앞으로 해야할 일 머 이런거 정도해야대나..
앞으로 도예문화가 더 발전하고 보편화 됬으면 좋겠다 라고 끝내도 되지않을가..
그러니까 찬반을 위주로 하고 간단하게 결론 내리는거지.
문화생활에 있어서 소유하지 않더라도 즐기는 것 만으로도 가치가 있을 수 있다.
- 생활로써 즐긴다 (식기 등)
--취미를 악기나 미술만 아니고 도자기 제작으로 할 수도
--사람들이 그래도 옛날보다 풍요로워지고 정보같은 걸 쉽게 접할 수 있게 되어서 문화의식이 점점 높아지고 있다
[다큐먼트모드]로 정리하면 어떨까요~--[Leonardong]
- mantis . . . . 11 matches
* apm 설치후, 걍 www 폴더에 복사후 웹으로 해당 localhost/mantis 들어 가면 인스톨 나오고 DB 관련 한것을 넣어 주면 설치가 됩니다.
* administrator , 암호는 root 로 로그인 후에 계정관리에서 preference 부분에 가서 제일 하단 부에 있는 언어 선택을 한글로 해야 한글로 메뉴를 보고 한글을 사용할 수 있습니다.
테이블을 만들때 euc-kr 으로 만들었고 euc-kr 을 mantis 에서 사용하기 위해 아래와 같이 mantis 소스를 수정 하였습니다.
346 if ($this->_connectionID === false) return false;
348 if ($argDatabasename) return $this->SelectDB($argDatabasename);
359 if ($this->_connectionID === false) return false;
361 if ($this->autoRollback) $this->RollbackTrans();
* 에러 메시지 제거는? 에디트 플러스 Find in file 에서 htmlspecialchars 이 것을 다 찾아서 @htmlspecialchars 이것으로 바꿔 주면 됩니다.
- whiteblue/자료구조다항식구하기 . . . . 11 matches
if ( tempCoef == 0 && tempExpon == 0 )
cout << "End" << endl;
if (tempExpon >= 0 && tempExpon < preExpon)
else
cerr << "다시 입력하시오." << endl;
if ( v[j].expon < v[j+1].expon )
if ( v[i].expon == v[i+1].expon )
if ( a->link == NULL ) {
cout << a->coef << "X^" << a->expon << endl;
if ( a != NULL )
else
- wxPython . . . . 11 matches
qt, gtk 로의 접근에 어려움을 갖는다면 충분히 배워볼만한 툴킷. 정말로 쉽고, 다큐멘테이션, 예제프로그램의 제공 형태가 굉장히
바람직한 형태로 구성되어있다. 예제프로그램은 도움말 파일의 형태로 embeded 되어서 실행되는 코드로 구성되어있다.
C로 짜여진 버전으로 바인딩된 형태이며, 각종 IDE 와 찾은 충돌로인해 많은 문제를 일으키지만, PyDev (eclipse plugin) 과 굉장히
* [http://www.roebling.de wxDesigner] - GUI 디자인 툴. GUI 디자인 한 결과물을 wxPython, wxWindows 등의 코드로 변환할 수 있다.
- 강소현 . . . . 11 matches
주위의 잡음에 지나치게 신경을 써서 하루라도 마음 편할 날이 없는 타입입니다. 이른바 과민성 성격이라 불리는 부류의 사람으로 스스로에게 도저히 자신을 갖지 못합니다. 항상 소극적이고 지나치게 자상한데다 매사의 대처가 엉성해 주위사람들로부터는 점점 이용만 당하고 결국 손에 남는 것은 찌꺼기뿐입니다. '지’, '정’, '의’의 불균형이 심해 사회의 작은 풍파에도 크게 흔들리고 덧없는 세상의 뒷길을 비틀대며 걸어갈 수밖에 없습니다. 이런 타입에게 가장 요구되는 것은 모든 일을 나누어 생각하는 습관입니다. 그리고 다른 한 가지는 눈을 딱 감고 자기주장을 관철시켜버리는 오기입니다. 필요할 때는 정색도 할줄 알아야 앞으로 더 큰 시야를 얻을 수 있습니다.
▷ 대인관계 (상대방이 이 타입일 경우 어떻게 하연 좋을까?)
연인, 배우자 - 답답한 상대로 처음에는 기저이 당신의 뜻대로 되어주겠지만 어느새 반응을 보이지 않기 시작해 점점 불만을 느끼게 될 것입니다.
거래처고객 - 이런 상대와 일을 한다면 당신의 페이스에 말려들게 하여 끌어당기는 수밖에 없습니다. 그리고 당신의 방식이 성의를 기본으로만 한다면 그걸로 충분합니다. 상대방도 그걸 바라고 있을 테니까요.
상사 - 부하 관리에 소홀해 부원들이 따로 따로 행동하게 될 위험이 있습니다. 하지만 그것에 편승하여 편하게 지낼 생각은 하지 마십시오. 오히려 그런 가운데 유일하게 빛을 발하는 존재가 될 수 있는 기회입니다.
- 나를만든책장/서지혜 . . . . 11 matches
* 똑바로 일해라(ReWork)
* 개발자를 ''남자친구''로 둔 사람들을 위한 글임. 여자가 개발자일 경우따위 고려 안함^^ 왜 읽었을까. 불쏘시개이다.
* 뉴욕의 프로그래머
* 마우스드라이버 크로니클
* 프로그래밍은 상상이다
* 사람들이 미쳤다고 말한 외로운 수학 천재 이야기
* 실용주의 프로그래머
* 로마의 기둥을 찾아라!
* 후기 : 기대에서 실망으로 실망에서 감동으로. 처음 한장을 읽고 내팽개쳐둔것이 실수였다. 시간가는 줄 모르고 눈물 줄줄 흘린 책. 번역 제목보다 역시 원서 제목이 책의 주제를 잘 말하는것 같다. 원서 제목은 If I stay.
- 데블스캠프2005/금요일/OneCard . . . . 11 matches
cards.append(Card(shape, number))
if job != None:
if numCardsRemoved == 0:
if select == -1 :
if not canHandOut(cardOnTable, myCards[select]):
else:
if canHandOut(cardOnTable, pcCards[index]):
if removed:
if cardOnTable.shape==myCard.shape or cardOnTable.number==myCard.number:
else:
if __name__=='__main__':
- 데블스캠프2006/월요일/연습문제/if-else/윤성준 . . . . 11 matches
== 데블스캠프2006/월요일/연습문제/if-else/윤성준 ==
cout << endl << "50~100 까지 숫자 입력 :";
if ( i >= 50 && i <= 100 ) {
cout << "3의배수" <<endl;
if ( n != 0 )
cout << endl;
cout << "5의 배수" <<endl;
if ( n != 0 )
else {
cout << "잘못입력" <<endl;
- 데블스캠프2006/월요일/연습문제/if-else/이경록 . . . . 11 matches
== 데블스캠프2006/월요일/연습문제/if-else/이경록 ==
if(a<50 || a>100){
else {
if(b % 3 == 0 || b % 5 == 0){
if(a>=48 && a<=57) cout<<"입력하신 것은 숫자 입니다\n";
else if(a>=65 && a<= 90) cout<<"입력하신 것은 대문자 입니다\n";
else if(a>=97 && a<= 122) cout<<"입력하신 것은 소문자 입니다\n";
else cout<<"입력하신 것은 특수문자 입니다\n";
- 데블스캠프2006/월요일/연습문제/if-else/이장길 . . . . 11 matches
== 데블스캠프2006/월요일/연습문제/if-else/이장길 ==
if(a>=50 && a<=100){
if(i %3 == 0 || i %5 == 0)
else{
if( a>=48 && a<=57){
else if(a>=65 && 90>=a){
else if(a>=97 && a<=121){
else{
- 데블스캠프2011/넷째날/Git/권순의 . . . . 11 matches
// myCmdBase.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
// 사용자 입력을 띄어쓰기 단위로 나누고 몇개로
// 문자열을 띄어쓰기 단위로 나눈다.
if( strlen(str) <= 0 )
if( strcmp(argv[0], cmds[i].cmdName ) == 0 )
ifstream f("rei.txt");
if(!f) {
cout << "Fail to Load File" << endl;
* 인터넷 찾아보시면 이미지를 텍스트로 바꾸어 주는 사이트 있습니다. 뻘짓하지 마세요
* 조, 좋은 뻘짓이다. 아, 이미지를 텍스트로 바꿔주는 사이트입니다. [http://photo2text.com photo2text] - [지원]
- 데블스캠프2011/둘째날/Machine-Learning . . . . 11 matches
* 자동 분류할 데이터 다운로드 : http://office.buzzni.com/media/svm_data.tar.gz
* Naive Bayes classifier 개발 http://en.wikipedia.org/wiki/Naive_Bayes_classifier
* [데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/namsangboy]
* [데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/송지원]
* [데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/강성현]
* [데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/김수경]
* [데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/김동준]
* [데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/변형진]
* svm classify : ./svm_multiclass_classify /home/newmoni/workspace/DevilsCamp/data/test2.svm_light economy_politics2.10.model
- 데블스캠프2012 . . . . 11 matches
* 강사님들. 각 강의마다 페이지 만드실때 '''데블스캠프2012/첫째날''' 형식으로 만들어주세요.
|| 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 ||
|| 4 |||| UI프로그래밍 |||| [http://prezi.com/uit4ykp5bx8g/javascript/ JavaScript 편견깨기] |||| [http://zeropage.org/seminar/62046 테스트를 위한 CTIP] |||| |||| [:데블스캠프2012/넷째날/묻지마Csharp 묻지마 C#] |||| [http://zeropage.org/seminar/62095 비트맵 가지고 놀기] || 11 ||
|| 5 |||| UI프로그래밍 |||| JavaScript 편견깨기 |||| 테스트를 위한 CTIP |||| |||| [:데블스캠프2012/넷째날/묻지마Csharp 묻지마 C#] |||| 비트맵 가지고 놀기 || 12 ||
|| 7 |||| [http://zeropage.org/index.php?mid=seminar&category=61948 페챠쿠챠] |||| [http://zeropage.org/seminar/62023 Kinect] |||| [http://zeropage.org/62033 LLVM+Clang...] |||| |||| 새내기를 위한 파일입출력 |||| CSE Life || 2 ||
|| 8 |||| 페챠쿠챠 |||| Kinect |||| [:데블스캠프2012/셋째날/앵그리버드만들기 앵그리버드 만들기] |||| |||| 새내기를 위한 파일입출력 |||| CSE Life || 3 ||
|| UI프로그래밍 || [정의정](20기) ||
|| C로배우는 C++의원리 || [이상규](11기) ||
|| CSE Life || [변형진](16기) ||
- 몸짱프로젝트/InfixToPostfix . . . . 11 matches
#ifndef __STACK__H__
if ( *top < MAX - 1 )
if ( *top < 0 )
#endif
if ( isOperand(aTerm[i]) )
else{
if ( income.op.precedence < stack[top].op.precedence )
if ( operators[i].token == aToken )
if ( operators[i].token == aToken )
[몸짱프로젝트]
- 무엇을공부할것인가 . . . . 11 matches
완벽하게 만들수는 없어도. 사람들은 어떠한 순서로 공부했고 어떤 생각을 했을까?
컴퓨터과학 혹은 컴퓨터공학을 효율적으로 할 수 있는 일련의 과정(커리큘럼이 되나요?)을 생각해보자는 의도로 연 페이지인가요? --["데기"]
Game Developer, System Software Developer, Software Architect, 전산학자 식으로 각각의 직업과 관련된 지식에 대한 Roadmap 은 어떨까요? (예전에 '~~한 개발자가 되기 위한 book map' 같은 것도 있었던 것 같은데)
["무엇을공부할것인가"]라는 것을 논하기 이전에 기본적인 전제에 대해 생각해 볼 필요가 있습니다. 그러면 문제 정의 자체가 바뀌어 버릴 수가 있습니다. 예를 들어 "어떻게 하면 이 프로시줘를 옵티마이징할까"를 고민할 때, 아예 그 프로시줘를 실행시키지 않는 방법은 없을까를 묻는 것이죠.
전산학을, 프로그래밍을 공부하는 사람이라면, 만약 내가 지금 배우는 대부분의 지식과 기술들이 내가 졸업을 하고 회사에 입사를 할 약 4년(혹은 병역을 마치는 경우 6년) 후에 쓸모없어 진다면 어떨까 하고 생각을 해 볼 수 있겠죠. 오늘 내가 밤샘을 하고 고민을 하면서 내가 사용하는 특정 도구의 한계를 우회하기 위해 기발한 방법을 짜내면서 얻는 지식은 4년 혹은 6년 후에 어떤 가치가 있을까요? 그 노력에 비해 얼마나 가치가 있을까요? 만약 그런 과정을 통해 어떤 지혜를 얻을 수 있다면, 좀 더 효과적이고 경제적인 방법은 없을까요?
SeparationOfConcerns로 유명한 데이비드 파르나스(David L. Parnas)는 FocusOnFundamentals를 말합니다. (see also ["컴퓨터고전스터디"]) 최근 작고한 다익스트라(NoSmok:EdsgerDijkstra )는 수학과 언어적 능력을 말합니다. ''Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer. -- NoSmok:EdsgerDijkstra '' 참고로 다익스트라는 자기 밑에 학생을 받을 때에 전산학 전공자보다 수학 전공자에게 더 믿음이 간다고 합니다.
about particular technologies, the important part is learning concepts. If
- Software reliability: that's a difficult one. IMO experience,
- 문자반대출력 . . . . 11 matches
문제 : 파일 입력으로 문자열을 입력한 후, 어떠한 알고리즘을 통해 반대로 된 문자열을 파일로 출력한다.
=== 처리조건 ===
* 맞게 푼건지는 모르겠지만 파이썬은 자체적으로 거꾸로 해주는 함수가 있어서 솔직히 이런 문제는 풀기가 굉장히 쉽다. 위에서 저거 걸린 시간은 파일 입출력과 그 해당 함수 찾는 시간.. - 상협
* C 에도 라이브러리로 문자열 반전 시켜주는 함수를 제공합니다. strrev()라는 함수를 사용하면 '\0'바로 전 글자부터 거꾸로 만들어주죠. 물론 ANSI 표준은 아니고 Semantec, Borland, Microsoft 에서 제공하는 컴파일러의 경우에 자체 라이브러리로 제공합니다. 이식성을 생각하지 않는 일반적인 코딩에서는 위에 나열한 컴파일러를 이용한다면 사용할 수 있습니다. - 도현
- 문제풀이/제안 . . . . 11 matches
* 이번 프로그래밍 대회를 통해 내 실력이 부족함을 처절하게 느꼈음
* 단순한 프로그래밍 언어 지식 획득 이상의 무언가의 공부가 필요하다고 생각하여 시작.
* 문제는 일주일에 한문제 정도를 푸는것으로 한다.
* 문제 페이지는 "문제풀이/회차" 의 형식으로 만들고 이 페이지에 연결을 걸어둔다.
* 하지만 지나치게 높거나 낮은 수준의 문제가 업로드 되었을 경우. 의견을 조율하여 새로 올립니다.
* "문제풀이/회차/답안"로 페이지를 꾸민다.
* 정답 공개 시기는 출제자 마음대로 한다.
* 답이랄게 따로 없지다.
[프로젝트분류]
- 미로찾기/조현태 . . . . 11 matches
if (1==map[x_3][y_3])
if (1==map[x_2][y_2])
if (1==map[x_1][y_1])
else
else
else
look=4;//12시를 0으로 간주합니다.
if (x==11 && y==15)
else
if (2==map[i][j])
else
- 송치완 . . . . 11 matches
* [새싹교실/2011/쉬운것같지만쉬운반]의 새싹으로 참여
* 4월 23일 논산훈련소로 입대
* 6월 1일 캠프잭슨으로 후반기교육
* 6월 21일 용산 미군기지로 자대배치
* 10월 1일 일병으로 진급
* 4월 1일 상병으로 진급
* 11월 1일 병장으로 진급
* 유로 트럭 시뮬레이터 2 자율주행 프로젝트인 ChosunTruck의 Founder
== 앞으로 하고 싶은 것 ==
* 내가 진짜로 하고 싶은게 뭔지를 찾고싶다.
- 수학의정석/행렬/조현태 . . . . 11 matches
이유는 속도때문.. (알고리즘따위 버려버리고 단지 오버헤드를 줄임으로써 속도를 높이려는 대마왕의 수작..;;ㅁ;;)
입력을 받는 부분을 포함시켜 버리면.. 늦게 입력하면 걸린시간이 많은걸로 나오고, 빨리 입력하면 걸린시간이 짧은걸로 나온다.
if (size_x[0]!=size_x[1] || size_y[0]!=size_y[1])
else
if (size_x[0]!=size_y[1])
else
printf("CPU CLOCKS = %d\n", clock() - time_in); // 끝났을때 시간 - 초기 시작시간 = 프로그램 실행 시간
return 0; // 프로그램 종료.
printf("배열의 세로길이를 입력해주세요.>>");
printf("배열의 가로길이를 입력해주세요.>>");
- 숫자야구/장창재 . . . . 11 matches
cout << key_first << key_second << key_third << endl;
if (key_first == input_first)
if (key_second == input_second)
if (key_third == input_third)
if (key_first == input_second)
if (key_first == input_third)
if (key_second == input_third)
if (key_second == input_first)
if (key_third == input_first)
if (key_third == input_second)
cout << strike << "스트라이크 " << ball << "볼" << endl;
- 육군일반병 . . . . 11 matches
["병역문제어떻게해결할것인가"]하는 고민에서 많은 컴공인들은 ["육군일반병"]을 아예 제껴놓고 고려할 것이며, 주변에 그리로 빠지는 친구가 있다면, "참, 삶에 대해 너무 방관한 거 아냐"하며 혀를 끌끌 찰지도 모른다.
JuNe은 ["육군일반병"] 출신입니다. 그렇다고 보통 말하는 일빵빵(속어로 땅개라고 부름)은 아니고 장갑차 조종수였습니다. 그렇지만 저는 이렇게 생각합니다. 나름대로 군 생활을 보람차게 했다고. 누구는 미쳤냐고 할 수도 있습니다. 하지만 어떤 시기를 보람차게 보내냐 아니냐는 것은 자신의 문제입니다. 일개인의 능력입니다.
무엇이 저를 이렇게 만들었을까요? 그것은 개선에의 노력이었습니다. 일신우일신. 하루 하루 새로워 지고, 더 나아지려는 상향의 욕구, 더 잘 살아보려는(To Live Better), 화이트헤드가 말하는 이성의 기능, 바로 그것이었습니다. 하지만 대부분의 사람들은 정확히 반대의 노력을 합니다. 국방부 시계는 거꾸로 매달아 놔도 간다는 말을 합니다. 그들의 포커스는 "시간"입니다. 저의 포커스는 "상태의 변화"였습니다.
아무리 좋은 곳으로 빠진다고 해도 그곳이 지옥일 수 있습니다(최후방 PX병도 "X"뺑이 쳤다며 할 말이 많습니다). 결국 최종 선택은 자신이 합니다. 자기가 좋은 곳과 나쁜 곳을 스스로 만드는 것입니다.
이런 말을 하긴 했지만, 군대가서 잘 생활할 사람은 사실 군대를 가지 않아도 됩니다. 오히려 군대 밖에서 더 많은 기회를 포착할 수 있습니다. 하지만 군대가서 잘 생활하기 어려운 사람은 오히려 군대를 가서 나름의 활로를 찾는 것이 삶의 전환점이 될지도 모르겠습니다. 하지만, 회피로로는 삼지 마십시오.
- 이영호/지뢰찾기 . . . . 11 matches
지뢰찾기 만든 coder가 어떤 생각으로 이걸 짰는지 분석부터 시작.
결과: 2차원 배열로 만들어져 있으며 일반적이다.
Crack: 분석 완료 직후, Inline Patch로 배열 부분을 손보고 지뢰 찾기 시작 후 고급 기록 1초 갱신 완료.
아래 소스는 지뢰찾기 분석한 것을 coder가 제작한 게임 소스 그대로 C언어로 완벽하게 구현한 것이다. (아마 M$에 있는 소스와 완벽히 똑같을 것이다.)
int base = 0x1E; // 가로길이 (30) <- 원래 main_func()의 매개변수로 받아온다.
int height = 0x10; // 세로길이 (16)
int map[height][base] = {0x0f, }; // 눈여겨 볼점은 x좌표는 뒤에 y좌표는 앞에 썼다는 점.. 지뢰 없는 곳은 0x0f로 기록 있는 곳은 0x80
if(map[ret_height][ret_base] == 0x80)
Reverse 하는 김에 모기 퇴치 프로그램도 같이 짜야 할듯; --[1002]
- 정모/2002.5.2 . . . . 11 matches
* 컬럼 메뉴에 있는 글 위키로 올리기
* 위키 FrontPage 관련 - 학기중에는 Project 단위에 대해 일의 처리가 어렵습니다. 이에 따른 FrontPage 학기모드용으로 전환을 할까 합니다. 그리고 그에 따른 위키 정리 관련. -- 석천
=== 불참인원(총 11명..병특,공익 제외, 99학번까지.. 오른쪽 칸에 사유를 적어 주세요..) ===
* 손혜연 : 어제 저녁 집에 오는길에 버스안에서 사고를 당해서. 허리부상으로 오늘 아무데도 나가지 않고 누워있었습니다. 죄송합니다.
컬럼 게시판을 위키로 옮깁시다.
하지만 새로 사용하게된 위키가 기존의 컬럼 게시판이 하던 일을 더 멋지게 해내고 있습니다.
정도로 해 두는 것이 좋을 것 같다는 생각. 다른 분들은? --석천
-> 컬럼게시판을 위키 내의 페이지들로 이동시킴. 처리 완료.
* 학기중 모드로 바꾼다. 이는 ZP 회원이면 누구든지 편리한대로 수정하도록 한다.
* 제로페이지 회원 소개
- 정모/2004.2.3 . . . . 11 matches
== 프로젝트 진행상황 알림 (발표 & 질문) - 10분 ==
* TheJavaMan 은 프로젝트 참여자 전원이 참여하는 프로젝트인 비행기 게임 만들기를 새로 시작
* RummikubProject 은 프로젝트 참여자가 없어서 알 수 없음
* 겨울 모꼬지 취소. 2월 13일 하루 소풍을 가기로 함.
* 소풍을 여행으로 바꾸려고 합니다. 동문서버 제로페이지 게시판에도 있고 [2004겨울여행] 에도 관련 내용이 있으니 참석할 수 있는지 없는지 적어주세요. 다른 장소를 추천하셔도 좋습니다. -[Leonardong]
== (있을 경우) 추가 안건 ==
* 이번에 예정 시간에 맞춰 회의를 진행하려 했으나 이런 저런 사정으로 뜻대로 되지 않았네요. ㅜㅜ -[Leonardong]
- 정모/2005.12.15 . . . . 11 matches
안건 : MT, 방학 프로젝트, 학회비, PC실 관리, 방학동안 회의주기 등.
1. 방학시작 & 2학기 프로젝트 마무리
- 저번학기 프로젝트 마무리
cam이랑 -> 방학 때 하기로 미룸.
2. 방학 중 프로젝트 정하기
- [겨울방학프로젝트/2005]
- OT.하기 전에 그 주에 가기로 함.
- 다음주 모임에 고학번 선배님께서 1,2학년을 대상으로 이시기에는 어떤걸 보면 좋을거라는 "참고용"조언 해 해주셨으면 해요 ^^
- [나를만든책장] 을 채워보기 좋은 기회일 것 같아요. 묻어 버리기는 아까운 아이디어죠! (게다가 책장 대용으로 제로페이지 사물함도 마련되어 있답니다.) - [Leonardong]
- 그거 좋은 아이디어이네요. . 제로페이지 전용 사물함을 개방하여 필요한 사람이 쓸 수있도록 사용하는 것도 괜찮을 것 같네요 ^^ 계획을 잘해서 실행해볼까요? 다음주 회의안에 올리도록 합시다. - [허아영]
- 정모/2005.4.25 . . . . 11 matches
* 새프로젝트
SSP 확정으로 인해 windows 기반으로 수업하게 될듯.
* 새 프로젝트
└ 송수생 외 11명 (짝수로 진행)
* 외부프로젝트 - 성균관대 게임개발대회
└ 시나리오 작성부터 코딩까지 파트별로 따로 나뉘어져서 심사한다고 함.
* 세미나위주 → 전체에게 문제를 내는 방식으로 나중에 해설을 해주는 형태
* 5월28일로 확정.
* [[HTML(<span style="font-size:9pt; letter-spacing:-1px;"><font face="Verdana" color=ff4500><b>)]]오는 사람한테는 회비로 식사제공 (예상메뉴 : 피자)[[HTML(</b></font></span>)]]
- 정모/2013.7.15 . . . . 11 matches
== 삼성 S/W FriendShip ==
* 활동 우수 동아리로 선정되었습니다. 22일에 Workshop에 참가하여, 활동 보고 및 동아리 소개 기회가 주어집니다.
* 원래 이번주 금(19일), 토(20일) 예정이었으나, 비 소식이 있고 준비가 미흡한 부분이 있어, 8월 둘째 주로 일정을 변경하고자 합니다.
* 책 읽어보고, 책에 있는 내용대로 실제로 해 보는 게 좋을 것 같다고 해서, 리펙토링을 해 보고 수경선배님의 코드를 리펙토링을 할 계획. (논의)
* 현재 게임 공모전을 목표로 노력중. 유니티 스터디는 엔진을 배우는 자리였으나 글로벌 게임 경진을 목표로 개발 하는 것으로 방향 전환.
* 드디어 OOP의 세계로 들어가기 시작.
* 삼성 스마트 티비에 들어갈 앱 제작 -> 스마트폰과 티비를 연결해서 폰을 컨트롤러처럼 제작 -> 안드로이드 앱 제작 필요
- 정모/2013.9.11 . . . . 11 matches
* 다양한 주제로 진행했던 OMS를 이제 학술적인 내용으로 진행하려고 합니다.
* OMS 진행은 10분으로 제한합니다.
* 행사 참여비용이 인당 10만원이 넘는 경우, 그리고 단체 지원금액이 20만원이 넘는 경우, 회의를 통해서 지원 여부를 결정.
* 학술 행사 지원금을 받는 회원은, 학술 행사에 참여하여 배운 점이나 느낀 점을 정기모임 때 공유해야 합니다. (ppt 발표라든지, 미니 세미나 형식으로)
== 스터디/프로젝트 공유 방안 ==
* 몇 달 간격으로 경과 보고를 진행을 해보는 것은 좋지 않을까? - 정의정 학우
* 오픈 캠프 형식으로 스터디 결과를 보고하는 방법은 좋지 않을까? - 안혁준 학우
* "제로페이지 회원이 좀 더 GDG에 행사에 참여하는 모습을 봐서 GDG 개설을 고려하겠다."라는 답변을 받았습니다.
* 지금도 신청을 받고 있으므로 관심이 있으면 지원해보세요.
- 제로위키이용의어려움 . . . . 11 matches
위키의 룰은 단순하다. '''새로쓰고, 수정하고, 삭제하고''' 이 세개 뿐입니다.
어렵다는 것은 위키의 사용이 어려운것이 아니라, 위키를 공동체가 사용할때의 생기는 예절과 규칙에 새로운 사용자가 적응하면서 느끼는 어려움일 것입니다. 계속 이렇게 가면, 우리가 다른 나라의 말과 문화를 배우는 것에 비견될수 있지 않을까요?
그래서, 현 ZeroWiki 쓰기를 막아 버리고, 기존 사용자들과 새로운 사용자들과 새로운 위키에서 작업하는 것도 좋을것이라는 생각이 들었습니다. NeoCoin은 그냥 삭제를 생각했는데, [1002]는 처음에는 그냥 모든 Contents 를 앞으로 한두달간 막아 버리고, 새로운 규칙들이 생기면 기존 contents 를 녹여가는 것을 생각했습니다. 그리고 이야기 중에서 현 ZeroWiki 를 SisterWiki 로 연결한 새로운 위키도 괜찮다는 생각이 들었습니다.
지금 ZeroWiki 1789 페이지를 넘어 2000으로 달려가고 있다. 새롭게 시작하는 것도 좋을꺼 같은데? 어떨까요?
[선호]는 항상 새로운것, 깔끔한것을 좋아하기 때문에, 새로운 바닥에서 새롭게 시작하는 것도 좋다고 생각합니다.
- 중위수구하기/남도연 . . . . 11 matches
cout<<"비교할 세 수를 입력하세요"<<endl;
if ((x>=y && x<=z) || (x<=y && x>=z)) {
else if ((y>=x && y<=z) || (y<=x && y>=z)) {
else {
if (x==-999||y==-999||z==-999){
cout<<"프로그램 종료"<<endl;
else {
cout<<"A="<<x<<" B="<<y<<" C="<<z<<endl;
cout<<"중위수는 "<<center<<"입니다."<<endl;
- 지금그때2003/토론20030310 . . . . 11 matches
* 어떻게 하면, 이러한 행사(또는 다른 생산적인 행사들)를 '관습'으로 남길 수 있을 것인가. '관습'으로 유지시켜주기 위해, 더 나아가 이러한 관습을 발전시켜주고 키워주기 위해선 어떠한 시스템이 필요할까.
* 사람들 간 지식을 서로 전수해주는 문화. 보다 생산적이고 발전적인 토론.(피시실이건 어디건)
* 꼭 '대학선배' 가 아닌 '인생선배'로서 이야기할 수 있는 자유로운 이야기들. 간단하면서 실용적인 질문들 등등 자유.
* ex) 프로그램 공부는 어떻게 하나요? , 요새 어떤 책을 보나요? , 영어공부는 어떻게 해야 하나요? , 사회에 나가면 어떤 일을 하나요? , 학교공부만 따라가면 충분한가요? , 학회에 속해야 하나요? 등등
* 토론방법으로서 제안된 방법
ex) 금요일 : 토요일 업무가 평일에 비해 상대적으로 가벼우므로 평일에 비해 부담이 적다.
* 기타 - 금요일인 경우 학교선배가 아닌 다른모임사람들을 같이 참석시킬 수 있다. ex) RenaissanceClub
ex) 토요일 : 학부생들 수업이 없어서 학교에 오지 않을 가능성 높으므로 참여도가 적다.
- 최소정수의합/조현태 . . . . 11 matches
//1 + 2 + 3 + ..... + n >= 3000 을 만족하는 최소 n과 그것의 합을 구하는 프로그램을 작성
int sum(int end_number)
if (1==end_number)
else
return end_number*(end_number+1)/2;
* 1에서 n수까지 합 공식을 사용한것 같은데, 알고리즘 측면으로 공부하는 것이라서, 원리적인 알고리즘을 사용하는 코드를 사용하면 좋을 것 같네요. 비록 제 생각이긴 하지만, 복잡한 문제에서는 공식을 알 수 없을 것 같아서요^^ -[허아영]
└ 이 경우에는 공식을 안쓰는 편이 더 빠르답니다.^_^ 그래도 한번 써보고 싶었어요. 고등학교 수학의 추억이 떠올라서.^_^- 일단 반성..ㅠ.ㅜ 앞으로 가급적 정상적으로 수행하도록 하겠습니다.^^[조현태]
- 컴퓨터를전공하면서꼭알아야할세가지 . . . . 11 matches
제 소견으로는 컴퓨터를 전공한다면 아마도 다음 세가지는 기본적으로 갖춰야 하지 않을까 합니다.
1. 모국어로서의 프로그래밍 언어 최소 하나
첫번째는 "언어"적 훈련을 말합니다. "필로로기"의 수련이 되어 있지 않으면 모든 공부를 허술하게 할 수 있습니다. 최소 하나를 습득하고, 매 년(혹은 격 년) 전혀 다른 패러다임의 언어를 하나씩 공부합니다.
두번째는 "필로소피"이고, "사이언스"에 해당합니다. 도대체 컴퓨터로 무엇이 가능하고 무엇이 불가능한 것인가를 묻는 것이지요. 컴퓨터 공부중에서 가장 이론적이고 학문적인 성격이 강한 것입니다. 이게 없고서는 컴퓨터공"학"(보다 적절히는 전산"학")을 했다는 말하기가 좀 그렇죠.(그렇다고 그 효용이 큰 건 아닙니다. 컴퓨터 전공자들의 끊을 수 없는 딜레마기도 하죠.)
두번째가 "무엇을"이었다면, 세번째는 "어떻게"에 해당합니다. 같은 일을 해도 어떻게 하면 효과적/효율적으로 할 수 있느냐를 공부하는 것이죠. 어차피 실용기술적인 측면에서 컴퓨터를 본다면 이 소프트웨어 공학을 지나칠 수 없을 겁니다. 그런데, 이 SE라는 것은 단순히 어떤 "거대 프로세스 모델"만을 일컫는 것은 아닙니다. 궁극적으로는, 계획을 잘 짜는 법, 사람을 잘 관리하는 법, 정보를 잘 정리하는 법 등이 모두 포함됩니다.
- 코드레이스/2007.03.24상섭수생형진 . . . . 11 matches
if (sec%150 < 120)
cout << ((getColor(sec))? "green" : "red") << endl ;
if (sec%150 < 120)
cout << sec << "초" << endl << ((getColor(sec))? "green" : "red") << endl ;
if (sec%150 < 120)
cout << cnt << "명이 신호위반" << endl ;
if (sec%155 < 120)
else if (sec%155 < 125)
cout << cnt << "명이 신호위반" << endl ;
- 파스칼삼각형/김수경 . . . . 11 matches
간단하게 만들 수 있어서 여러 언어로 짜서 올리면 좋았을텐데
if(n>m) return -1;
if(m == 1 || n == 1 || m == n) return 1;
printf("행, 열 차례대로 입력 ex/3,2\n>>>>");
if not isinstance(element, int):
if element <= 0:
if line < element:
if (line == 1) or (element == 1) or (line == element):
else:
if not isinstance(n, int):
if n <= 0:
- 프로그래밍잔치/둘째날 . . . . 11 matches
신입회원들이 고객의 역할, 기존회원들과 고객이 같이 하나의 팀이 되어 프로그램을 완성해내는 팀 프로그래밍 게임.
* 팀 프로젝트를 잘하기 위해서는 무엇을 해야 할까? 토론. - 15분.
대화 - 4명일 경우 2:2 할건데, Pair 끼리 뿐만아니라, Pair 팀들끼리의 대화도 중요.
개발기간 중간에도 '실행 가능한 프로그램' - 2차 진행후 체크.
공지 : 2차 진행뒤에 2차까지 완성된 프로그램 시연. (돌아가는 프로그램 보여주세요!)
프로그램 작성 시간 종료 후 점검. 각 팀별로 시연하기.
후기 : ["프로그래밍잔치/둘째날후기"]
["프로그래밍잔치"]
- 프로그래밍잔치/셋째날후기 . . . . 11 matches
모여서 전화번호 핸드폰에 있는 문자로 입력받아 번호로 출력하는 프로그램을 짰다. (["Telephone"] 참조)
플밍이 끝난 뒤, CommentMixing 을 하기로 했다. CommentMixing 전, 1002 와 영동 Pair 가 CommentMixing 의 시연 예를 보이며 간단하게 설명을 하였다.
CommentMixing 뒤에 서로의 것을 보며 토론했다.
행사가 끝나고 난뒤 선배님들과 후배들의 조촐한 만남이 있었다. 영합반점에서 저녁식사를 한 후(회비로 해결) 토파즈로 뒷풀이. 간단하게 선후배 인사를 한 뒤 서로 이야기를 했다.
10시 경 해산. ["프로그래밍잔치"] 종료.~
* 음... 전 지금까지 무조건 주석은 많을수록 좋다고 생각했습니다. 그런데 그런 주석이 적을수록 좋은 코드였다니... 어쨌든 주석을 줄이는 방법이 신기했습니다. 세상에 이런 방법도 있구나... 하는 충격이었습니다. 그리고 평소에 못 뵈던 선배님들을 뵈서 즐거운 시간을 가졌습니다. --[영동]
["프로그래밍잔치"]
- 프로그래밍잔치/정리 . . . . 11 matches
["프로그래밍잔치"] 시작과 끝. 준비하는 사람 입장에서 생각해본 정리.
* 기획단계에서 01, 02 등 다른 학번들이나 다른 사람 참여를 제대로 못시킨점. 이는 추후 재현가능성이 줄어든다.
* 토론을 시키는중, 토론의 방향을 제대로 제시하지 못한점.
-> Opening Question 이 있다면 어느정도 해결가능하리라 생각. Facilitator 가 답을 유도하지 않되, 너무 다른 길로 걸어가지 않도록 하는 기준이 될 수 있으리라 생각.
* 중간에 진행중 간간히 리듬이 끊어짐. 또는, Facilitator 가 질문만 던지고 답을 받은뒤에 제대로 정리를 하지 못함. 그래서 단발성 질/답으로 끝나는 경우 발생.
-> 준비한 리허설에 대해서. 리허설의 정도를 좀 더 많이 준비한다던지. 해당 주제에 대해 미리 공부해둠으로서 자신이 해당 주제를 접했을때의 소감 등에 대해서 이야기할 수 있도록.
그랬다면 사람들이 Pair 를 더 적극적으로 실천해보지 않았을까.
-> 진행 스케줄 중에 '5분 Pair Time', 'CRC Session Time' 등을 도입해주면, 사람들이 디자인이나 Pair 시 실천방법으로 도움을 받을 수 있으리라 생각한다.
["프로그래밍잔치"]
- 헝가리안표기법 . . . . 11 matches
10, 15년전 Microsoft의 개발자중 헝가리 사람의 프로그래머가 쓰던 변수 명명법. MS내부에서 따라쓰기 시작하던 것이 점차 전세계의 프로그래머들에게 널리 퍼져 이젠 프로그램 코딩시 변수 명명의 표준적인 관례가 되었다.
그러나 실제로 현장에서 일하다 보면 헝가리안 표기법을 제대로 지키는 개발자는 그리 많지 않다. 어느정도 개발경험을 가지고 있는 프로그래머는 물론 심지어 시중의 프로그래밍 서적에서 조차 저자마다 변수명을 개인에 따라 가지각색으로 짓고 있어서 처음 프로그램을 배우는 입문자들들이 변수 명명에 대한 기준을 제대로 잡지 못하고 있는 실정이다.
|| pfn || * || function pointer || int (*pifnFunc1)(int x, int y) ||
- 05학번만의C++Study/숙제제출4/최경현 . . . . 10 matches
cout << "클래스가 생성 되었습니다." << endl ;
cout << m_number << "를 가진 클래스가 파괴 되었습니다." << endl ;
if( m_number == check_number )
else
if( number ==0 )
else
if(check_number[k] == 1)
if(check2==0)
실행되는거만을 목적으로 지저분하게 만들었다. 그런데 버그가 있다 -_- [최경현]
해결 방법은 그 공간뒤의 클래스들을 한칸씩 앞으로 당기고, i의 값을 1줄여주면 되겠지.ㅎㅎ
- 2012년독서모임 . . . . 10 matches
* 현재 참가자 : [김태진], [김수경], who else?
* 시간 : 정모 직후 -> 1월 31일 화요일로 미룸
* [권순의] - 오랜만에 시작하는군요. Fault Line은 보이지 않는 균열이 세계 경제를 위협한다는 내용으로 지표면에서 단층면이 접하는 선인 단층선이 Fault Line인데 그 곳에서 지진이 발생한다는 것 때문에 따 왔다고 하더군요. 그래서 과거 시행했던 정책이나 여러 사건들을 통해 현재의 경제가 어떠한 상황에 이르게 되었는지에 대해서 서술한 책입니다. 사실 무지 재미 없습니다. -_- 읽은지 꽤 됬는데 눈에 잘 안 들어오고 하다 보니 아직도 다 못 읽었..
* [김태진] - Pi 이야기 (는 제대로 읽지 못했어요 ㅠㅠ)
* [권순의] - 신은 위대하지 않다.. 웃기게 쓴 글은 아닌데 좀 웃긴 부분이 많습니다. 글을 잘 쓰네요. 다양한 관점에서 신이 존재하지 않는 이유를 나열합니다. 과학적으로도.. 성경도.. 뭐 어찌되었든 간에 이 책을 읽고 동조하는 거 보다는 그냥 한번 쯤 생각해 보는 부분이 맞는 것 같습니다.
* 그러고 어렸을 때 부터 가진 종교에 관한 이야기를 쭉 했었는데요,, 뭐 라엘리안 무브먼트에 대한 이야기도 하고, 마호메트 위인전에 대해서도 이야기 하고, 어렸을 적 경험담? 도 이야기 하고 여튼 이것 저것 많이 이야기는 했는데 알맹이는 없는 거 같네요 -_-; 그냥 종교인 덕분에 빡친 기억들과 이러 저러한 이유로 전 그냥 나대로 살 생각입니다 가 결론이 된?? 뭐 여하튼.. 종교라는 것이 인류에 있어 의지할 곳 없던 사람들에게 도움이 된 부분이 없잖아 있습니다. 그래서들 종교를 믿는 것 같고요. 물론, 아닌 사람도 있지만 종교의 본질은 제가 생각하기에 마음의 안식처 인 것 같습니다. 굳이 종교를 가지지 않고도 마음의 안식처를 가질 수 있다면야 종교가 필요 없겠죠... 이건 쓰다가 생각난건데 정말 2012년에 지구 멸망하나?
* 사실 지난 번 주제를 정할 때 한기가 요즘 고민이 뭐냐고 물어봐서 여자? 라고 대답한 것이 주제가 되었.. 흠흠.. 이 책은 한 장 한 장 마다 다른 주제?에 대한 이야기를 남자의 관점과 여자의 관점에서 전개되고 그것들이 모여 하나의 챕터?가 되는 식으로 구성되어 있습니다. 화성에서 온 남자, 금성에서 온 여자보다는 극단적이지는 않지만 남자와 여자의 생각하는 차이에 대해서 다시한번 볼 수 있는 책이었습니다. 참.. 갈길이 머네요 라는 결론을 가져다 준? ㅋㅋ - [권순의]
* 주제가 포괄적이라서 당연히 괜찮은 책은 많겠지만ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 주제를 굳이 저걸로 정한 게 부끄러웤ㅋㅋㅋㅋㅋㅋㅋㅋㅋ - [김수경]
* 인류가 다른 생명체와 다른 점은 표현할 수 있는 언어가 있어서이다 라는 말은 많이들 들어보았을 것입니다. 그래서 인류가 발명한 발명 중 가장 위대한 발명으로 언어를 선택했는데.. 책이 정말 학술적인 내용이네요.. 사실 지루해서 힘들었습니다. 영어에서의 불규칙 과거형 단어들이랄지.. 인간의 사고가 언어에 투영되는 것 등이 나왔는데.. 그냥 그러려니 하는 내용들.. 관심이 없으니 힘드네요a - [권순의]
- 2dInDirect3d/Chapter2 . . . . 10 matches
4. 마지막 인자로는 생성될 디바이스의 객체를 넣어준다.
뷰포트는 실제적으로 렌더링을 하는 지역이다. 뷰포트가 없이는 디바이스는 어디에 렌더링을 할지 모른다.
Direct3D에서 사용하는 색상은 '''D3DCOLOR''' 이다. (3D에서는 COLORREF였다.) 저것을 정의하는 매크로에는 다음과 같은 세가지가 있다.
RGB(r, g, b); // 보통 사용하는 색상 매크로
D3DCOLOR_XRGB(r, g, b); // 보통 사용하는 매크로와 사용법이 같다. 이때 a 값은 0이 아닌 255(최대값)이 들어간다.
백버퍼에 그림이 들어오거나 클리어 한 경우엔 그것을 앞으로 끌고나와야 한다. 그것을 하는 함수가 Present함수이다.
1. 결과값은 D3D_OK, 실패했을경우엔 D3D_INVALIDCALL이나 D3D_DEVICELOST가 리턴된다.
1. 네 인자 모두 NULL을 넣어주면 된다. (프레젠트는 한 화면단위로 하는 경우가 대부분이기 때문이다.)
- 3N+1Problem/문보창 . . . . 10 matches
문제에 나와 있는 단순한 알고리즘을 제대로 구현만 해도 성공하는 쉬운 문제.
cout << a << " " << b << " " << maxCycle << endl;
if (a > b)
if (a == 1 && b == 1)
else if (a == 1)
if (temp % 2 == 0)
if (temp == 1)
else
if (maxCycle < nCycle)
- AOI . . . . 10 matches
* 기존 [AOI] 진행과 비슷하나 레벨 3, 4(어려운 문제)위주로 도전해 본다.
* 어려운 문제의 경우 해당 알고리즘 지식이 필요한 경우가 많습니다. 문제를 해결한 후 꼭 문제 접근방식을 코드와 곁들여 넣어 주세요.
* 기존 [AOI] 경우는 쉬운 문제 위주여서 언어실력의 기초를 다지는 효과가 컸지만 앞으로는 심도있는 문제를 풀어보며 알고리즘과 문제해결능력향상 위주의 공부를 하도록 하겠습니다.
* [컴공과프로그래밍경진대회]
* 온라인으로라도 열심히 참여하겠음 --[곽세환]
* 시험이 별로 안남았네요..천천히 올리겠읍니다 -- 차영권
* http://online-judge.uva.es/problemset/ <-- 여기에서 로봇이 실시간으로 답이 맞았는지 채점도 해준답니다. 푸신분들은 한번 해 보세요 - 보창
- APlusProject/PMPL . . . . 10 matches
Upload:APP_TracingChart_0619.zip - 한글파일로 수정했고, 세로로 안되서 가로로 했다. 버전은 0.2
Upload:APP_Sequence0606.zip -- EF경우는 객체가 둘 씩 필요한데 표기방법을 잘 몰라서 어떻게 해야할지?
기본 설계서 순서를 바꿔야 할 듯. 보통 유즈 케이스 -> 시퀀스 -> 클래스 식으로 발전. --재동
우선은 그냥 올리고. 다음 주 프로젝트 끝나면 최종 자료 이외에는 다 지울거야. 그리고 최종 자료는 공개로. --재동
심사 보고서는 오늘 저녁안으로 만들어 올릴께요. 그래서 내일 최종 제출하도록 하겠습니다. --재동
- AustralianVoting/문보창 . . . . 10 matches
if (cin.peek() == '\n' || cin.peek() == EOF)
if (!died[bal[i][j]-1])
if (!died[i])
if (max < poll[i])
if (min > poll[i])
if (max > nBal/2)
else if (max == min)
if (!died[i])
if (!died[i] && min == poll[i])
- AutomatedJudgeScript/문보창 . . . . 10 matches
단순한 문자열 비교문제라는 생각이 들었다. Presentation Error와 Accepted 를 어떻게 하면 쉽게 구별할 수 있을지를 고민하다 입력받을때부터 숫자를 따로 입력받는 배열을 만들어 주는 방법을 이용하였다.
if (!setString(answer, answerDigit) || !setString(reply, replyDigit))
if (strcmp(answerDigit, replyDigit) != 0)
else if (strcmp(answer, reply) == 0)
else
if (n == 0)
if (c == '\n')
if (nReturn == n)
if (c >= '0' && c <= '9')
- CauGlobal/Episode . . . . 10 matches
방학을 이용해 배낭여행을 가려 하거나, 혹은 다른 이유로 인해 외국에 가려할때 어느정도 일찍 항공권을 알아보지 않으면 구하기가 꾀나 어렵습니다. 아니면 있는 항공권은 엄청난 가격을 자랑하지요.
그렇지만, 어디 사람이 늘 여유있는 계획대로 움직이게만 될까요. 그럴땐 좋은 방법이 있습니다.
1. 먼저 실시간으로 항공권을 알아볼 수 있는 인터넷 사이트를 이용합니다. (투어익스프레스가 좋더군요)
1. 외국 항공편은 직항도 있지만 대개는 자기 나라를 한번 거쳐 갑니다. 이럴때, 성수기에는 보통 구간별로 WAIT 상태로 됩니다.
1. 그래서 몇개의 예약을 통해 OK상태로 된 'union of 예약'이 하나의 셋트를 만들면 됩니다.
1. 이때 꼭 같은 곳으로 가는 항공편일 필요는 없습니다. 예를들어, 샌프란시스코로 가는 JAL 항공권일 경우, 서울->동경 구간이 WAIT 상태라면, LA로 가는 예약에서 서울->동경 구간을 확보한다면 되는거죠.
- CauGlobal/ToDo . . . . 10 matches
* 로컬: 나휘동
* 자료 정리 및 워드로 작성
* 자료 정리 및 워드로 작성
① 2005학년도 「CAU 세계문화체험단」 지원 계획서 1부(다운로드)
② 2005학년도 「CAU 세계문화체험단」 개인 지원서 1부(다운로드)
※ A4 세로 형식으로 자유롭게 작성하되
소요 예상 경비 산출내역이 필수적으로 포함되어야 함
※ 한글2002이상 버전으로 저장하여 파일 및 문서로 제출
- ComposedMethod . . . . 10 matches
인간과 의사소통이 잘되는 프로그램을 원하는가? 메소드의 이름을 지을때 의도가 잘 드러나게 짓자.
메세지를 보내는 데에는 시간이 걸린다. 즉 함수 호출에는 오버헤드가 뒤따른다. 그러므로 최고의 속도를 내려면 하나의 메소드에 모든걸 때려넣을 수도 있다. 하지만? 댓가는 클것이다.(인력낭비, 비구조적 프로그램 양산)
초보자들은 작은 크기의 많은 메소드를 보고는, 프로그램의 진행 상황을 잘 모른다고 할 수도 있다. 하지만 경험이 쌓일수록, 잘 지어진 이름의 메세지는 코드의 흐름을 알기 쉽게 해준다. 메소드 이름을 의도가 드러나게 짓는것은 하나의 메소드 크기를 작게 하는 가장 큰 이유가 된다. 그 코드를 보는 사람들은 하나 하나의 작은 부분을 이해함으로써, 더 큰 부분을 이해할수 있게 된다. 또한 메소드를 작게 하면 버그가 발생했을때도 거기에 국한시킬 수가 있다. 뭔가 개선하기가 쉬워질 것이다. 물론 상속도 자연스럽게 할수 있다.
'''당신의 프로그램을 하나의 동일화된 작업을 수행할수 있는 메소드들로 나눠라. 모든 메소드는 같은 수준의 추상화를 유지해야 한다. 이는 자연스럽게 여러개의 작은 메소드를 만들어내게 될 것이다.'''
당신이 가장 중요하게 Composed Method를 쓸때는, 당신이 뭔가를 구현하고 있을때 새로운 책임을 발견했을때이다. 당신이 둘 이상의 메세지를 다른 객체로 보낼때, 수신 객체에서는 그 메세지들을 합치는 Composed Method를 만들 수 있다. 이러한 Method들은 당신의 시스템의 다른 부분에서도 유용하게 쓰일 것이다.
개인적으로, 간단해보이지만 아주 중요한 이야기라 생각함. ProgrammingByIntention 의 입장에서, 또한 '같은 레벨의 추상화를 유지하라'라는 대목에서. (StepwiseRefinement 를 하면 자연스럽게 진행됨) --[1002]
- ComputerNetworkClass/Exam2004_1 . . . . 10 matches
다음 그림에서 각 단계들의 프로로콜 스택을 그려라.
다음 그림은 Y 라우터의 경우 포트 3으로 X 라우터와 연결되어있는 상태이며 X 라우터는 CIDR 로 ____.____.___.____ 에 대해 Network A 로, ____,____,___,____ 에 대해 Network B 로 라우팅 한다.
위의 결과를 근거로 CIDR 이 어떻게 네트워크에서의 확장성 문제를 완화시키는지 설명하시오.
UDP 가 TCP 보다 장점을 가지는 경우를 쓰고, UDP 에 알맞는 어플리케이션에 대해 2개의 예를 들어라.
TCP 에서 접속시에 이용하는 프로토콜을 그리고 설명하여라.
- ContestScoreBoard/허아영 . . . . 10 matches
if(temp_team_num == 0) // case 끝은 0으로
if(moment == 'C')
} else if(moment == 'I')
} else
if(team_data[i][0] != 0)
cout << "team number : " << i << endl;
cout << "team num of q : " << q_index[i] << endl;
cout << "team time : " << team_data[i][0] << endl;
- CreativeClub . . . . 10 matches
* [김태진] - 안드로이드
* PC방 PC들을 윈 7로 바꾸기
* 주제는 뭘로..?
6. 경험 부족으로 인한 일정 추정 어려움
* 개인적으로 진행한 프로젝트 등을 손봐서 공모전에 사용하지 않음
* 공모전과 관련해서 조언을 해 줄 만한 경험자가 별로 없음
* wiki 제작이 잘 되었을 경우 정모에서 많은 글을 등록한 사람에게 지원을 하는 방안도 생각.
* 외부인으로 구성된 팀 공모전 등 지원
* Trello, Wiki 등에 도서 리스트를 정리하고, 지면으로도 출력하여, 외부인에게 알린다.
- DesktopDecoration . . . . 10 matches
말그대로 데스크탑을 꾸며보는데 관련된 정보를 제공하는 페이지. 관련 유틸리티를 다루고 이야기 해본다.
Yahoo가 사들인뒤로 무료로 배포되는 위젯 프로그램. 최초에 나온후로 Mac이 배껴서 MacOSX에 고대로 넣어버린 그 기능이다. 각각의 윗젯들은 독립된 프로세서로 인식되며 Konfabulator 가 관리를 하는 그런 식이다. 따라서 위젯에 따라서 자치하는 메모리의 양이나 리소스가 천차만별이다.
MacOS에 존재하는 가장 특징적인 기능중의 하나로 윈도우 식의 Alt+Tab 창이동의 허전함을 완전히 불식시킨 새로운 인터페이스이다. [http://www.apple.co.kr/macosx/features/expose/ Expose]에서 기능의 확인이 가능하다.
- EightQueenProblem/임인택/java . . . . 10 matches
심심해서 자바코드로 그냥 옮겼습니다. 몇군데만 수정하니까 그대로 돌아가는군요~ 호호..-.-;;
if(y==QUEEN-1) print_result();
if(check(i,y+1))
if(i<0 || j<0 || i>=QUEEN || j>=QUEEN)
for(y=j-1; y>=0 && sum==0; y--) /* 위로 */
for(x=i-1; x>=0 && sum==0; x--) /* 왼쪽으로 */
if(sum==0)
else
if(args.length!=1)
- HardcoreCppStudy . . . . 10 matches
Hardcore란 의미는 단어 그대로의 뜻이 아니라 열심히(hard) 핵심(core)을 탐구한다는 의미입니다...
* 멤버를 보면 모두 한가닥(?)하는 나름대로 하드코어.특히 김모양.
인수형이나 상규형처럼 여러가지를 신입생들에게 접해 보게 하고 싶지만... 아는 게 없어서 2학기 때 수업할 C++ 중심으로 나가겠습니다.
* 모임은 매주 목요일 3시로 정하였습니다.
* 수업 방식은 매주 중요한 개념에 대해 이야기하고 그 개념을 응용할 수 있는 예제들을 숙제로 내겠습니다.
* 이번주 담당자의 사정으로 쉽니다. 숙제로 두번째 숙제에 있는 성적정렬프로그램 짜오세요. 교재로 공부해서.
[C++Study_2003], [프로젝트분류]
- HardcoreCppStudy/첫숙제/Overloading/김아영 . . . . 10 matches
cout << "방향을 입력하세요(0은 북쪽방향, 시계 방향으로 1~7, 끝내기 999) : " ;
if(direction[D-2]=='9' && direction[D-1]=='9' && direction[D]=='9')
if(x<0)
else if(x==garo)
if(y<0)
else if(y==sero)
cout << endl ;
cout << "총 이동 횟수는 " << total << "입니다. " << endl ;
- HelpOnInstallation/SetGid . . . . 10 matches
보안상의 이유로 웹서버는 php 스크립트를 `nobody, www, apache` 혹은 `httpd`같은 특별히 제한된 계정으로 실행하게 됩니다. 이러한 이유로 [모니위키] 스크립트가 생성하게 되는 여러 파일 혹은 디렉토리는 이러한 특별한 계정의 소유가 되며 진짜 사용자가 소유하지 못하게 되는 일이 발생하고 어떤 경우는 이렇게 만들어진 파일을 읽을수도 지울 수도 없게 됩니다.
이런 경우를 막기 위해서 `chmod 2777` 대신에 `chmod 777`을 하는 경우도 있으나, 이로서 문제가 모두 해결되지는 않습니다.
이러한 것을 방지하기 위해서 [모니위키]가 특별한 파일을 생성하게 되는 몇몇 디렉토리에 대하여 그룹 아이디로 퍼미션을 가지게 할 수 있습니다. 이렇게 Setgid를 사용하도록 그룹 퍼미션을 주게되면 wiki.php에 의해 새롭게 만들어지는 모든 파일은 진짜 사용자의 그룹아이디와 같게 되며, 그룹 아이디가 가지는 퍼미션을 진짜 사용자도 누릴 수 있게되어 읽거나 고치거나 지울 수 있게 됩니다.
그런 다음 monisetup.php를 웹상에서 실행시키면 monisetup.php는 필요한 여러 디렉토리를 만들게 되며 이 디렉토리들은 setgid에 적용을 받게 되고, 이렇게 최초 setgid 설정을 마친 후에는 최상위 디렉토리의 퍼미션을 원래의 퍼미션으로 되돌려야 합니다. (보통 `chmod 755`로)
- HowManyZerosAndDigits/임인택 . . . . 10 matches
public class MyTest extends TestCase {
if( _b == 10 )
if( remainder != 0 )
if( !(quotient==0 && remainder==0)) // 제일 상위자리가 0인 경우는 넣지 않는다.
if( number.charAt(i)== '0' )
if( _b == 10 ) {
else {
if( _b == 10 ) {
} else {
- HowToBuildConceptMap . . . . 10 matches
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.
* Rank order the concepts by placing the broadest and most inclusive idea at the top of the map. It is sometimes difficult to identify the boradest, most inclusive concept. It is helpful to reflect on your focus question to help decide the ranking of the concepts. Sometimes this process leads to modification of the focus question or writing a new focus question.
* Next selet the two, three or four suboncepts to place under each general concept. Avoid placing more than three or four concepts under any other concept. If there seem to be six or eight concepts that belong under a major concept or subconcept, it is usually possible to identifiy some appropriate concept of intermediate inclusiveness, thus creating another level of hierarchy in your map.
* Look for crosslinks between concepts in different sections of the map and label these lines. Crosslinks can often help to see new, creative relationships in the knowledge domain.
* Specific examples of concepts can be attached to the concept labels (e.g., golden retriver is a specific example of a dog breed).
* Concept maps could be made in many different forms for the same set of concepts. There is no one way to draw a concept map. As your understanding of relationships between concepts changes, so will your maps.
- IDL . . . . 10 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 을 사용하도록 하자.
- Metaphor . . . . 10 matches
Choose a system metaphor to keep the team on the same page by naming classes and methods consistently. What you name your objects is very important for understanding the overall design of the system and code reuse as well. Being able to guess at what something might be named if it already existed and being right is a real time saver. Choose a system of names for your objects that everyone can relate to without specific, hard to earn knowledge about the system. For example the Chrysler payroll system was built as a production line. At Ford car sales were structured as a bill of materials. There is also a metaphor known as the naive metaphor which is based on your domain itself. But don't choose the naive metaphor unless it is simple enough.
시스템 메타포를 선정하면 같은 팀내에서 클래스와 메소드의 이름을 일관적으로 정할수 있어 공감대를 형성할 수 있다. (즉 하나의 메타포를 선정하여 공유하면 변수 이름같은 것을 지을때 같은 관점으로 짖게 된다는 의미). 어떤 객체에 대한 이름을 정하는 것은 시스템 전체를 이해하거나 코드를 재사용하는데 매우 중요하다. 만약 메타포를 올바르게 정한다면, 이름이 어떻게 정해지는가를 추측할 수 있게되고 실제로 개발 시간을 크게 절감시켜준다. 구축할 객체에 대한 이름을 위한 시스템(즉 메타포)를 결정할때는 모든 사람이 해당 시스템에 대하여 특별한 지식이 없이도 쉽게 연관되어 질수 있는 것으로 선택해야 한다. 예를 들어 크라이슬러의 지불시스템은 생산라인으로 구축되었다. 포드의 자동차 영업사원들은 BOM(부품표)으로 구조화 되었다. 구축하려고 하는 분야의 메타포를 사용할 수도 있다. 그러나 충분히 단순하지 않다면 영영에 해당하는 메타포를 사용하지는 말아라.
--> 그런데 실 사례로 이해하기가 힘드네요. 메타포가 현재 시스템을 충분히 포괄하지 못하는 경우가 상당히 많을턴데...
- ModelingSimulationClass_Exam2006_1 . . . . 10 matches
운전 면허 시험을 본다. 운전 면허 시험은 총 2단계로 구분되어 치러진다.
(a) 해당 모델을 구성하고 필요할 경우 가정을 해도 좋다. (7 points)
y = a(x-30) ( 30 < x < 90) y = b(x-110) (90< x < 110) 형태의 그래프로 90 지점에서 교차하는 그래프임
(a) (5 points) Peak Value 구하기 - '''그래프의 가장 높은 지점의 높이를 구하라는 문제로 파악했음. pdf 전체의 넓이가 1이라는 사실을 이용하는 문제'''
1) 나의 경우 해당 문제를 간단한 확률 모델 + Single Queue, Multi Server 의 문제로 파악했다. 확률모델은 1차 합격자를 가리는데 쓰이고, SQMS모델은 실기 시험을 가리는데 사용하고, 가정으로 실기 시험은 7분을 최고 점으로갖는 Triangle Distribution 이라고 가정하고 풀이했음.
2) 부족한 시간, 랜덤함수를 사용할 수 없는 상황이라는 점을 말하고, TD 의 기대치를 구했다. 대충 구해보니 7.55 분가량이 소요된다는 사실을 알았다. (좌우 대칭형으로 가정했기 때문에... -_-) 따라서 한 패거리의 실기 시험합격자의 최대 인원은 40명 소요되는 시간은 총 5시간이지만 SQMS 모델이 큐잉에서 최대의 효율을 발휘 할 수 있으므로, 양쪽의 서버에 반씩을 나누어서 시험을 보면 2시간 반가량이 필요하다고 판단. 필기가 종료되는 시간은 10:00 + 2:30. 14:00 + 2:30 따라서 당일의 시험이 완전히 종료되는 17:00 분 안에 시험을 끝낼 수 있기 때문에 해당 모델은 안정하다고 적긴적었다. -_-;;
- NSIS_Start . . . . 10 matches
* 프로젝트 이름 : NSIS Start (About Nullsoft ({{{~cpp SuperPiMP}}} | Scriptable) Install System)
* 프로젝트 기간 : 2월 1일 ~ 2월 9일 (MT 기간 감안)
* 목표 : 한글 메뉴얼 만들기. 간단한 프로그램 배포본 만들기.
* 예제 위주로 접근. 목표 예제들 중심으로.
* 간단한 Installer (그냥 해당 디렉토리에 압축 풀리는 정도로.)
* NSIS Ide 를 간단하게 제작하였으나 실제로 써먹지는 못함. (Editplus가 더 편하더라라는. ^^;)
* ["NSISIde"] - 하루 단기 프로젝트로 만들어봤었던 NSIS Ide
["프로젝트분류"]
- NumberBaseballGame/재니 . . . . 10 matches
cout << a << b << c << endl;
if (input < 123 || input > 987)
if (a == x) strike++;
if (b == y) strike++;
if (c == z) strike++;
if (a == y || a == z) ball++;
if (b == x || b == z) ball++;
if (c == x || c == y) ball++;
if (strike == 0 && ball == 0)
else
- Omok . . . . 10 matches
* 저는 나중에 윈도우즈 용으로 바꿀걸 생각해서 터보씨로는 그냥 돌아가게만 짜봤습니다.
* 처음에 화면을 clrscr()로 지운 다움에 화면에 판( '+' 연산기호 플러스.) 를 뿌려 줍니다.
* 돌을 찍을때 물론 번갈아 가면서 찍어야 할테죠.. 키보드로 돌을 움직이는것이 중요한데, 이것은 여러분이 아는 기본 적인 지식으로 할 수 있습니다.
* 이러면 아스키 코드 사용하지 않고도 짤 수 있습니다. 전 아스키 코드 쓰는거랑 터보시에서 그래픽 하는거 싫어서 이렇게 해봤었습니다. 뭐 다른 방법으로 짜고 싶으면 짜시고요. - 상협
* 전부 그림으로 처리하기 때문에 그래픽적인 요소들을 위한 코딩이 많이 들어가는...(나쁘게 말하면 생노가다..--; )
* 개인적으로 이걸 해봤는데.. 뭐 Visual 적인거 좋아하시면 이렇게 하시고.. 그냥 오목의 알고리즘만 생각하시면 굳이 그래픽을 사용안하셔도 좋을듯..^^
* 그래픽을 썼을 때 저의 경우 코드라인수는 250line 정도였습니다. - 창섭
* 그리고 이거 할때 중복된 코드를 많이 만드는 경우도 있는데 가능하면 중복되는 소스를 줄이면서 짜보세요.
- OperatingSystemClass/Exam2002_2 . . . . 10 matches
* countable semaphore class 를 구현. 단, default 생성자에서 세마포어 값은 0으로 설정.
class A extends Thread
class B extends Thread
* If a memory reference takes 200 nanoseconds, how long does a paged memory reference take?
* If we add associative registers and 75 percent of all page-table references are found in the associative regsters, what is the effective memory time? (Assume that finding a page-table entry in the associative registers takes zero time, if the entry is there)
* FIFO replacement
6. Consider a file currently consisting of 100 blocks. Assume that the file control block(and the index block, in the case of indexed allocation) is already in memory, Calculate how many disk I/O operations are required for contiguous, linked and indexed (single-level) allocation strategies, if for one block, the following conditions hold. In the contiguous allocation case, assume that there is no room to grow in the beginning, but there is room to grow in the end. Assume that the block information to be added in stored in memory.
* The block is added at the end.
* The block is removed from the end.
7. Suppose that a disk drive has 5000 cylinders, numbered 0 to 4999. The drive is currently serving a request at cylinder 143, and the previous requrest was at cylinder 125. The queue of pending requests, in FIFO order, is
Starting from the current head position, what is the total distance (in cylinders) that the disk arm moves to satisfy all the pending requrests, for each of the following disk scheduling algorithms?
- ProjectAR/CollisionCheck . . . . 10 matches
* 기본적으로는 비트맵을 읽어서 텍스쳐르 변환할것이므로, 기본적인 Object는 사각형이다.
* 그러자니 오브젝트마다 그림 크기에 맞는 2차원 배열을 가져야 한다. 어쩌면 비트맵을 읽어오면서, 그 비트맵이 메모리에 있을테니, 그걸 참조하는 방법도 있을듯 하다. 안된다 하더라도, 요즘 컴퓨터 메모리 남아도니까 별로 문제가 되지는 않을듯 싶다.
* 속도가 제대로 나올까?
일단 히트 판정이 날려면 주인공이 공격을 하게 됩니다. 그 때 발생하는 무기의 범위는 부채꼴이 되겠죠? 그렇게 때문에 오브젝트가 주인공의 위치와 무기의 거리사이에(각도는 제한된 상태) 들어온다면 히트 판정이 나게 되겠죠? 그러므로 정교한 히트 판정이 나기 위해서는 사각형 영역보다 부채꼴 형태가 더 적합하다고 생각합니다. 그리고 적의 충돌을 판정하기 위해서는 적은 최대한 둥근 모습으로 만든다면 해결이 어느정도 가능하다고 생각합니다. 둥그스름한 물체가 땅에 닿는 곳은 원형이 되겠죠? 그 원형을 판단하면 되지 않을까요? 어짜피 그려지는 곳의 머리가 주인공의 무기와 겹치는 동시에 친다면 더 부자연스러울꺼 같네요...
* 그런데 왜 부채꼴이야? 창이라면 푹 찌르니까 사각형 + 사각형이 될테고.. 검도 찌르면 사각형 + 사각형. 베면 사각형 + 부채꼴이 되겠구나. 생각외로 복잡하군.
* 완성. 일단 오브젝트 사각형 + 무기 리치 사각형 이런식으로 했음
타일식으로 간다면... -_- 적도 나도 모두가 타일위에 서 있는 꼴이 된다.
추가로 의견 바람. --선호
- ProjectCCNA/Chapter2 . . . . 10 matches
* LAN - 일반적으로 라우터를 경계로 허브를 통해 구성된 네트워크 망
* ethernet: CSMA/CD- 이더넷 통신에서 사용하는 프로토콜이다. 회선이 사용중이지 않을때 전송하고 충돌이 생기면 일정시간후 재전송한다.
* MAC address - 6개의 octet 으로 구성되어있으며 앞의 3개 는 제조회사, 뒤 3개는 일련번호를 나타낸다. 일반적으로 mac주소는 전세계에 유일하다.
* MAC 주소가 FF-FF-FF-FF-FF-FF 는 브로드캐스트로써 LAN상에 모든 PC에게 데이터를 전송한다.
* 브로드캐스트 - LAN상에 모든 PC에게 데이터를 보냄.
* 네트워크에 대한 표준 모델이며 실제로 사용되는것은 아니다.
[프로젝트분류], ProjectCCNA
- ProjectSemiPhotoshop/기록 . . . . 10 matches
* 현민이를 고수로! - Sub Project
|| 10.17 || 첫미팅: 위키사용법, ''현민이를 고수로!'' 계획, 자료실 계획 ||
* 11/19 상민과 현민이 이미지 프로젝트의 시작을 위한 시작 코딩
* Bitmap 로딩과, 저장부에 대한 작성. 기존 메모리 다루기가 힘들것 같아서, 추상화 목표.
* 다음일정 까지 해올 시험 프로그램 임무 부여
* Bmp 로딩 구현
* 2차 integragion - 추가기능 + 새로운 라이브러리(하지만 추가기능에 대한 대응 미흡으로 철수)
* Contrast Stretching, Histogram Equalisation, 윈도우로 설정한 영역에 대해서만 '7. 영상 질 향상' 적용
* 3차 Integration : 11월 29일에 작성한 기능들 하나로 합침.
- RabbitHunt/김태진 . . . . 10 matches
if(b[0][i]==b[0][j]) {C++; continue;}
//if(a[i][j]!=0){
if(a[i][j]==a[i][k+1]) c[i][j]++;
if(c[i][0]<c[i][j+1]) c[i][0]=c[i][j+1];
if(C<c[0][0]) C=c[0][0];
if(c[i][0]<c[i+1][0]) C=c[i+1][0];
if(C==0) C++;
* 새벽 5시까지 삽질해서 만든 코드입니다. 웬만한 예외사항도 다 점검해봤는데 됩니다. 하지만 기울기가 소숫값이면 그걸 정수값으로 인식해버리던데, 그걸 아직 해결하지 못하고 있네요. 제 예상대로면 그게 해결되면 accept...일지도.. float로 a배열을 선언해도 안되는건가..? 될텐데;;
- RandomWalk2/TestCase2 . . . . 10 matches
test.exe 는 작성한 프로그램 실행 파일 이름입니다.
1. 가로 세로 같으며, 여정이 종료 되었을때 표현
2. 가로 세로 같으며, 여정이 종료 되기전에 모두 방문해서 종료
3. 가로 세로 같으며, 벽에서 다른 벽으로 나오는가 확인
4. 가로 세로 다르며, 여정이 종료 되었을때 표현
- Score/1002 . . . . 10 matches
See Also [프로그래밍/Score]
1줄로 표현할 방법을 이리저리 고민.
input 에 대해서 여러 방법으로 변형을 시도. 그 중 좋은 아이디어가 떠오름.
각 sub 단위의 "O" 의 갯수를 세고 이에 대해 각 부분별로 f(n) = f(n-1)+1 에 대한 총합 계산을 해주면 되겠다 생각.
f(n) 에 대해서 sum(f(n)) = n(n+1)/2 이므로, 이를 이용하면 되리라 생각이 듬. 결국 해결.
def ox(aList): return sum((len(e)*(len(e)+1))/2 for e in aList.split("X") if e!='')
위에서 원소가 없을 때 if e!=''로 처리하는데, 없으면 len(e)가 0이 되므로 그냥 일반화해도 될 것이다. 즉 "있다"와 "없다"를 일반화.
J언어로 해봤다.
- ServiceQualityOfYongsanMarket . . . . 10 matches
용산 전자상가에 갈일이 많을 텐데, 이곳에 개개인이 평가한 상점의 서비스 평가나 가격등에 대한 정보를 모아두면 좋을 것 같아서 이 페이지를 만들었습니다. 상점이름은 ID로만 표현해두고 이 ID에 대한 정보는 ZP의 게시판에만 게시를 해서 외부인은 열람할 수 없게 해 두는 것이 좋을것 같네요. -- 임인택
* 홈페이지에서 주문&입금 후 전화로 찾아갈 테니 물건을 준비해 줄 수 있냐고 묻는 도중에 내 말을 자르며, '찾아가심 됩니다' 라며 전화거는 사람을 무안하게 만들었다. 여기서 약간 기분이 상함...
* 주문한 셋트에 대한 궁합(?)을 보고 이에 대한 대안을 전화로 알려줌.
용산의 메인 고객은 소비자가 아니므로. 뭔가 핀트를 잘못맞춘건 아닐까; 그리고 용산의 영수증인 경우, 워낙에 이일저일(?) 하는 일들이 많아서 일부러 자유로이 빈 영수증 두었다가 필요할때 상호 도장찍는 경우 많음..--[1002]
보통 이런경우보다는 기분좋게 물건사는 경우가 더 많았는데, 이날은 정말 짜증이 밀려와, 개인적으로라도 이 가게는 안가려고 리스트업하는겁니다. 흐흐. - 임인택
- ShellSort/문보창 . . . . 10 matches
첨에 문제 파악을 잘못해서 중간에 코드를 뜯어고치느라 시간을 많이 허비했다. 귀찮아서 구상을 하지않고, 바로 코딩을 하다보니 발생한 사태였다. 수행시간이 다른사람에 비해 턱없이 길다. 나중에 보다 효율적인 접근방법을 찾아보겠다.
inline void show_turtle(const char turt[]) { cout << turt << endl; };
if (i != nCase-1)
cout << endl;
if (strcmp(newTurt[i], oldTurt[j]) == 0)
if (code[count] != count)
else
if (code[i] != count)
else
if (isMove[j] && code[j] == i)
- StandardWidgetToolkit . . . . 10 matches
[Eclipse]의 근간이 되는 [Java]용 그래픽 툴킷 Eclipse 2.1 부터 공식적으로 SWT가 분리되어 배포되고 있다.
내부에서는 초기부터 SWT와 [Eclipse] 프로젝트의 역할이 분담되어, 과거 IBM developerworks 에 gcc를 이용한 프로그램 작성에 대한 문서가 있었으나, SWT를 이용한 프로그램의 등장은 보이지 않았다. 그러나 분리되면서, 그러한 프로그램을 기대할 수 있게 되었다.
[http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/main.html SWT 프로젝트 페이지]
--''[http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/platform-swt-home/main.html SWT 프로젝트 페이지]'' 에서
1. SWT를 다운로드 받는다. [http://www.eclipse.org/downloads/index.php Eclipse downlaod]에서 받을수 있다. Upload:swt-2.1-win32.zip
if (!display.readAndDispatch())
* 실행을 시키기 위해서, 실행되는 위치에 swt-win32-2133.dll (Windows 경우)가 있어야 한다.
- StringOfCPlusPlus/상협 . . . . 10 matches
#ifndef _STRING0_H_
void n_set() {n=0;}//n의 값을 0으로 초기화
void lenstr() {while(st[n]!='\0') n++;}//문자열의 길이를 n값으로 저장
void reverse();//문자열 거꾸로
int search(char se);//찾고자 하는 문자열의 갯수로 알려줌
friend ostream& operator<<(ostream &os, String &s);
#endif
if(st[i]==se)
if(st[i]==' ')
- SummationOfFourPrimes . . . . 10 matches
오일러는 솟수가 숫자 영역에서 무한하다는 가설을 자신의 고전이론으로 증명했다. 모든 수들이 4개의 양의 솟수 합으로 표현될 수 있을까? 답을 알 수는 없다. 답은 느린 386 컴퓨터에서도 돌아갈 수 있기를 원한다. 시간 제한은 펜티엄3 800 컴퓨터를 기준으로 한다. 이 문제에서 솟수의 정의는 "완전한 두 개의 다른 정수로만 나눠 떨어지는 양수"이다. 예를 들어,37은 정수 37과1로만 나눠지는 솟수이다.입력은 한 라인에 하나의 정수N만 포함한다. 여기서 N은 10000000이하의 수이다. 이 수는 4개의 솟수의 합으로 구성될 수 있는 수이다. 입력은 하나의 수만 받는다. 입력 라인에 맞춰, 주어진 조건에 맞는 4개의 솟수를 한 줄에 출력한다. 입력된 수가 솟수 4개의 합으로 표현될 수 없으면"Impossible."이라 출력한다. 답은 여러개가 있을수 있다. 모든 정답을 받아들인다.
[http://www.n2n.pe.kr/util/find_prime.php 소수판정기]로 답을 확인해볼 수 있겠네요. --[Leonardong]
[문보창]이 푼 게 200등이네... 내 순위 찾다가 발견함. 참고로 난 394등. 나도 분발해야겠다 --[곽세환]
- TAOCP . . . . 10 matches
== 프로젝트 목표 ==
* 문제(Exercise)를 풀어보고 모여서 서로 답을 비교한 후에 해답을 본다.
* 참고자료로 볼 수 있도록 위키페이지에 정리한다.
을 갖기로 하죠.
DeleteMe)MIXware부분에 가서 프로그램 받을 수 있어. 다 써보진 못했는데 2번째꺼 해보니깐 좋더라...
[삼색볼펜초학습법]으로 책을 읽고 모임을 가진다면 더 좋겠다는 생각을 한다.
대부분 번역하려고 노력했는데 생각보다 힘들다. 그냥 영어로 정리하는게 더 괜찮을듯
휘동이 정리보구 궁금해하던 문제들이 많이 풀렸다. 이젠 프로그램 짜야쥐... --세환
[TAOCP/BasicConcepts]에 있던 Exercise18은 [TAOCP/Exercises]로 옮김
[책분류][프로젝트분류]
- ThePragmaticProgrammer . . . . 10 matches
프로그래머는 일련의 도구들(에디터, 객체 관리자, 버전 트래커)을 사용하여 어떤 환경하에서(하드웨어 어셈불리상의 운영시스템) 운용될 수 있는 제품(프로그램)를 만들어내도록 훈련받은 공예가에 비유할 수 있다. 다른 공예작업과 마찬가지로, 컴퓨터 프로그래밍도 대학이나 관련학원에서 가르쳐지지 않는/쉽게 터득할 수 없는 지식과 지혜를 집적하여 완성해 가는 과정을 갖는다.
이들의 프로그램학은 구체적이며, 그 구현에 이르는 경로는 간결하다. 이들은 예를들어,하나의 텍스트 편집기를 배우게 되면 그것을 모든 것에 활용하라고 독자들에게 조언하고 있다. 또한 권고하고 있는 것은, 심지어 가장 작은 프로젝트에 대해서도 버전트래킹 소프트웨어를 사용하라는 것이며, 규칙적인 수식구문과 텍스트 처리언어 학습의 장점을 계도하고 있다.
번역서(실용주의프로그래머)를 한 번 다 읽었지만 다시 봐야 할 내용이 너무 많이 있다. 다루는 분야가 매우 넓으면서도 각 장은 시간이 지나도 값어치 있을 실용적인 정보를 담고 있다. 언제 멈출지 몰라서 ''그림은 물감 속에서 사라진다''나 ''프로그래밍을 우연에 맡기면 어떻게 되는가'' 같이 내가 습관적으로 잘못하고 있는 부분을 짚어주기도 한다. -- [(leonardong)]
- ThePriestMathematician . . . . 10 matches
"하노이의 탑(Tower of Hanoi)" 퍼즐에 관한 고대 신화는 이미 잘 알려져 있다. 최근 밝혀진 전설에 의하면, 브라흐마나 수도사들이 64개의 원반을 한 쪽 침에서 다른 쪽 침으로 옮기는 데 얼마나 오래 걸리는지를 알아내고 나서는 더 빠르게 옮기는 방법을 찾아내자는 결론을 내렸다. 다음 그림은 침이 네 개인 하노이의 탑이다.
1. 맨 위에 있는 원반(맨 위에 있는 k개의 원반)을 다른 침으로 옮긴다.
2. 침이 세 개 있는 경우에 쓰는 방법을 그대로 적용해서 나머지 n-k개의 원반(전체 원반의 개수를 n개라고 가정)을 목표 지점으로 옮긴다.
3. 마지막으로 네 개의 침을 이용해서 맨 위에 있던 k개의 원반을 최종 목적지로 옮긴다.
그 영리한 수도사가 제안한 네 개의 침을 사용하는 방법으로 원반을 옮기는 횟수를 계산하자. 원반은 한 번에 하나씩만 옮길 수 있으며 큰 원반을 작은 원반 위에 놓을 수는 없다. 이동 횟수를 구하려면 먼저 원반 이동 횟수를 최소화시킬 수 있는 k값을 구해야 한다.
입력 파일은 여러 줄로 구성된다. 각 줄에는 0 이상 10,000 이하의 정수 N이 들어있으며, 이 값은 옮겨야 할 원반의 개수를 나타낸다. 파일 끝 문자가 들어오면 입력이 종료된다.
입력된 각 줄에 대해 N개의 원반을 최종 위치로 옮기는 데 필요한 이동 횟수를 출력한다.
- TheTrip/곽세환 . . . . 10 matches
* double형의 정밀도때문에 계속 삽질했음(예를 들어 9.03의 경우 9.029999999999...으로 입력됨). 지식검색 결과 컴퓨터구조상 어쩔 수 없다고 함. 문자열로 입력받는 방법말고 좋은 해결 방법있으면 가르쳐주세요.
* double형 함부로 쓸 게 못된다는걸 뼈저리게 느낌
if (student[i] != aver)
if (studentExchanged[i] == aver)
if (student[i] > student[j])
if (studentExchanged[i] > studentExchanged[j])
if (studentExchanged[i] > student[i])
cout << "$" << (exchange / 100.0) << endl;
- TheTrip/문보창 . . . . 10 matches
int main() // cent단위로 계산
if (n == 0)
if (cin.peek() == '.')
else
if (cost[i] > aver)
if (r > 0)
for (i=0; i<count; i++) // dollor단위로 출력
if (cent < 10)
else
cout << endl;
- TugOfWar/이승한 . . . . 10 matches
급기야는 오류가 보이자 땜빵으로 매꿔버리기도 하고...-_-ㅋ;;
int maxToZero(int input[]); //가장큰수를 0로 바꾸어주는 함
if( teamA + maxInInput == aver ){
}else if( teamB + maxInInput == aver ){
}else if( teamA < teamB ){
}else{
cout<<outA[n]<<" "<<outB[n]<<endl;
if(max < weight[cycle]){
- WikiSlide . . . . 10 matches
* SiteNavigation: A list of the different indices of the Wiki
To edit a page, just click on [[Icon(edit)]] or on the link "`EditText`" at the end of the page. A form will appear enabling you to change text and save it again. A backup copy of the previous page's content is made each time.
You can check the appearance of the page without saving it by using the preview function - ''without'' creating an entry on RecentChanges; additionally there will be an intermediate save of the page content, if you have created a homepage ([[Icon(home)]] is visible).
||<rowbgcolor="#DEDEDE">'''Home:''' `CTRL+Home`||'''End:''' `CTRL+End`||
(!) If you discover an interesting format somewhere, just use the "raw" icon to find out how it was done.
(!) A common error is to insert an additional blank after the ending equal signs!
Tables appear if you separate the content of the columns by `||`. All fields of the same row must be also on the same line in the editor.
* The parameters are optional, depending on the macro.
Below the list of templates you will also find a list of existing pages with a similar name. You should always check this list because someone else might have already started a page about the same subject but named it slightly differently.
* If you want to edit a page without being disturbed, just write a note to that effect ''at the top'' of the page and save that change first.
* If two people edit a page simultaneously, the first can save normally, but the second will get a warning and should follow the directions to merge their changes with the already saved data.
* Personal Homepages: normally only changed by their owner, but you may append messages at the end of the page
- X . . . . 10 matches
* 필명 : 주로 쓰이는 필명은 X.... (한글자인데다가 영문이라서 깨질 염려도 없다 -_-)
최근에는 게임 개발쪽으로 눈을 돌리고 있음
뭐 XBOX, PS2, NGQ까지 들어오는 마당에 GP32, GBA,.... 등등 많은 게임기들이 한국 시장에 진출하거나 하려고 준비중이고 PC게임시장은 비상식적으로 자라나고 있고 거기에 시장이 거의 포화상태라고 나는 내다보고 있다.[[BR]]
내 생각으로는 현재 PC가 들어가 있는 게임방이 나중에는 XBOX방, PS2방 등으로 바뀔 가능성이 크다고 본다.
원래 만화 시나리오였다가 게임 -> 소설 쪽으로 넘어갈 듯 -.-[[BR]]
잃어버리지 않게 파일로 남겨놨는데 .... 당연히 암호 걸어놨지 -.-V[[BR]]
게임 프로그래밍 서적중 탑 5 안에 들어갈 정도의 책이다..... 단 어렵다 -_-[[BR]]
1권 ch1은 게임 프로그래밍에 관한 전반적인 것과 룰을 가르치는데 대부분 C++이라 -.-[[BR]]
* GP32 개발툴로 가지고 놀기
- stuck!! . . . . 10 matches
우리는 스스로 공부한다!!
출첵은 스스로 한다.
숙제는 담임선생님 메일 silverfishlee골뱅이hotmail.com으로 제출합니다.
email 제목에는 {stuck!!}을 접두어로 붙이고 이름과 찻수를 반드시 넣어서 제출해 주세요.
1차 : 입출력그리고 간단한 변수의 종류에 대해서 공부해보고, 이름과 학번 그리고 원하는 평점을 입력받고 그것을 그대로 출력하는 프로그램을 작성해 본다. 일요일 오후 3시까지 제출해 주세요. 미 제출시 가혹한 벌금이 있습니다ㅋㅋㅋ
2차 : 3개의 수를 배열로 입력받고. 그 수중 가장 큰수와 가장 작은 수를 골라내서 출력하라.
3차 : 자신의 프로필 페이지를 만들고 이곳에 링크를 단다. [구구단]을 만들고 담임 메일로 보낸다. 이름필수. 14일 오전 12시까지. 14일 12시에 4차 숙제 나옴.
숙제는 실제로 검사된 내용이 없는듯... 담임의 불 성실함이 원인...;;
- 김재현 . . . . 10 matches
진짜로. 모르겠어-ㅅ-;
네이버블로그--- www.naver.com/syniori.do
대략 로또 추첨기.
if(aInput==1)
if (aInput%2==1)
else
if(most<cycle_length)
포인터에 대한 이해가 아직 부족해서 스스로 코드를 짜진 못하고,교수님이 올리신
소스코드를 참고해서 하나로 합쳤습니다. 앞으로 분발하겠습니다....
- 데블스캠프2005/금요일/OneCard/이동현 . . . . 10 matches
컴퓨터대 컴퓨터로 하게 만들었습니다
if(card.face == face)
if(card.num == num)
System.out.println("마지막으로 낸 카드");
if(choice == -1){
else{
if(comCards.size() == 1){
if(choice == -1){
else{
if(playerCards.size() == 1){
- 데블스캠프2006/월요일/함수/문제풀이/윤성준 . . . . 10 matches
if (member >= 3 && gun >= 2 && boat >= 1) {
} else {
cout << "1" << endl;
cout << "2" << endl;
cout << "3" << endl;
cout << "4" << endl;
cout << "5" << endl;
cout << "6" << endl;
cout << "7" << endl;
cout << "공주" << endl;
- 데블스캠프2011/다섯째날/HowToWriteCodeWell/임상현,서민관 . . . . 10 matches
if ( i > j ) {
else {
if(minFloor <= 1 && maxFloor>=1)
else
if(minFloor < 0 && maxFloor < 0)
if(i<0 && j<0){
else{
if ( i >= minFloor && i <= maxFloor && i != 0 ) {
else{
public void push(int i) throws Exception { // 엘리베이터 내부에서 i층으로 이동.
- 마방진/문원명 . . . . 10 matches
if( (row == 0) && (col == size-1) )
else if (row == 0)
else if (col == size-1)
else
if(array[row][col] != 0)
if(row == size-1)
else
cout << endl;
- 미로찾기/상욱&인수 . . . . 10 matches
public static int END = 2;
public boolean isEndPoint(Point point) {
return getBoardSymbol(point) == END;
if ( isValidMove(curPoint,i) ) {
if (point.x > curPoint.x)
if (point.x < curPoint.x)
if (point.y > curPoint.y)
while( !board.isEndPoint( getLastPoint() ) )
public class MazeTestCase extends TestCase {
public void testEnd() {
public class ComplexMazeTestCase extends TestCase {
public class MazeFrame extends JApplet {
if( boardSymbol == MazeBoard.WALL )
else if( boardSymbol == MazeBoard.PATH ||
- 비밀키/최원서 . . . . 10 matches
ifstream fin("input.txt"); // fin과 input.txt를 연결
if (fin.eof())
cout << endl;
fout << endl;
cout << endl;
ifstream fin("output.txt"); // fin과 input.txt를 연결
if (fin.eof())
cout << endl;
fout << endl;
cout << endl;
- 사랑방 . . . . 10 matches
purely functional language - Haskell 로 구현한 quick sort algorithm..
''약간은 사기라고 봐도 됩니다. 퀵소트에서 첫번째 원소를 피봇으로 잡는 경우가 헤스켈에서 아주 간단히 표현될 수 있다는 점을 이용한 것이죠 -- 첫번째가 피봇이 되면 문제가 생기는 상황들이 있죠. 보통 헤스켈의 "간결성"을 강조하기 위해 전형적으로 사용되는 예입니다. 뭔가 독특한 점을 강조하기 위해 쓰인다는 것 자체가 이미 약간의 과장을 암시하고 있습니다. see also Seminar:QuickSort --JuNe''
regular expression으로 다음이 표현가능한지.
ex) &12;{ 의 경우 '''&'''12;{'''&'''#; (굵은 글씨가 매치된 케이스)
i. 스트링 비교하여 "&"일 경우 - 찾음.
i. 그렇지 않을 경우 - pass.
만약, 정규표현으로 표현되면 깔끔할텐데. 아는분 없소. :) --["sun"]
negative LA assertion을 쓰면 간단합니다. {{{~cpp &(?!#\d{1,3};)}}} RE를 제대로 사용하려면 ''Mastering Regular Expressions, 2Ed ISBN:0596002890''를 공부하시길. --JuNe
- 상협/Diary/9월 . . . . 10 matches
* ["3DAlca"] 네트워크(MFC)로 구현 하기
* ["비행기게임"] 프로젝트 성황리에 마치기
* 이번주는 모든 프로젝트를 마무리 지어야 겠다
|| 3 || ["3DAlca"] 네트워크로 구현하기 ||
* 장점 : 만약 가기로 하면 맘은 편하다. 보통 사람들이 택하는 길이기 때문에 심리적으로 부담이 없다. 군대에서 배울게 있다고 한다. 다행히 기숙사에서 그런거 좀 배워서 그런거 배우는거는 군대직접 가서 안배워도 될거 같다.
* 단점 : 국내 대학원 떨어지면 군대 가야 한다. -_-; 심리적인 부담감이 만빵이다. 또 석사로 유학도 못간다. 유학 가고 싶었는데. 쩝.-_-;
* 현재로서는 군대 가는것은 평범한 해결책이고 부담없는 방법인거 같다. 군대 가서 굴르고 하는거는 안해봐서 뭐라고 말은 못해도 그렇게 거부감이 들지는 않는다. 기숙사랑 친근한 분위기일거 같다. -_-; 다만 안그래도 굳은 머리가 완전히 굳어 버려서 창조적인 사고가 마비될꺼 같은게 좀 걸린다. 다른 해결책들은 좀 스릴이 있는거 같다. 노력도 많이 해야 할거 같다. 어차피 한번사는 인생 스릴있게 갈때까지 가볼까나..쩝..
* 너무 심각하게 생각하지 말아야 겠다. 뭐 최악의 경우라고 해봤자 나이 엄청 먹어서 군대가서 젊은 얘들한테 욕먹는건데, 그정도를 못버티면 내 자질이 부족한거니깐.
* 기숙사 야유회 끝났고, 친구 만나고 별로 한거 없다. -_-;
- 새싹-날다람쥐 6월 10일 . . . . 10 matches
-> 홈으로
ex)이것으로 2차원 배열을 만들려면?
C에서는 변수 선언을 맨 위에 해야 하므로 int d[temp]와 같은 형태로 선언할 수 없다.(아무데서나 선언을 할 수 있는 C++에서도 이런 형태는 불가능하다.)
free(d); 를 이용해서 지금 실행중인 프로그램에 종속되어있는 sizeof(char) * temp만큼의 메모리를 OS에 다시 반환시킨다.
하지만 간단한 프로그램에서는 이렇게 해 줄 필요가 없다. 프로그램을 종료시키면 알아서 OS가 가져가기 때문에.
나중에 거대 프로젝트(오랜시간동안 켜 놓아야 하는 게임 같은 경우)에서는 메모리 반환을 하지 않으면 컴퓨터가 느려지고 가용메모리가 없어져서 메모리를 요청했을 때 메모리가 부족해 프로그램을 다시 껐다 켜야 하는 상황이 발생할 수 있다.
- 새싹교실/2011/學高/4회차 . . . . 10 matches
* 세개의 정수를 받아들여, 그 수를 모두 더한 후 7를 더하면 얼마인지 출력하는 프로그램
// scanf()로 숫자 입력 받기
// printf()로 결과 출력하기
* 프로젝트 만들기 복습
define PI 3.141592<< 코딩할때 PI라고 쓰면 숫자로 인식함. define은 중간에 수정 불가.
배운내용을 복습하지 않아서 따라가는데 어려움이 있었습니다. 질문도 더 많아진것 같구요 앞으로는 열심히 복습하겠습니다~
printf는 출력하는 거고 반대로 scanf는 입력값을 주는것? 이다..?
%.f : if, %.2f 라면 소수점 둘째자리까지 출력하자는 뜻. (셋째 자리에서 반올림하여 나타남.)
비스가 안깔려서 수업에 제대로 집중을 못했네영 .
혹 아시는분은 네이트온으로 알려주시길 바랍니다 -
- 새싹교실/2011/學高/8회차 . . . . 10 matches
* 아래 소스코드를 큰 틀로 해서 recursive function을 이용하여 하노이의 탑 시뮬레이션 프로그램을 작성하라(이동 상황을 출력한다, 전역변수를 이용하여 횟수를 카운트하게 하여 H_n = 2*H_n-1 + 1 점화식에 맞는 답이 나옴을 보여야한다.)
if(num>0){
즉석에서 짠 코드이므로 컴파일 에러나면 알아서 잡아주세요
* 컴파일은 안 해봤지만 함수 원형 선언 시 매개변수의 타입은 왜 써주지 않았는지 궁금하네요. 받을 때는 num으로 받고 쓸 때는 n으로 쓴 것도; 그리고 전역 변수를 안 써도 리턴 값을 통해 카운트 충분히 할 수 있을 것 같은데... - [김수경]
* 음... 헤더는 제가 실수한거구요. 하노이의 탑을 짤 때 제대로 짰는지 확인해보라는 의미로 count를 넣었기 때문에 굳이 함수의 형태를 건들기보단 전역변수를 임시로 선언해서 쓰는것이 더 좋을 것 같아서 이렇게 작성했습니다. - [윤종하]
* 앞으로 날밤새고 새싹하지 않겠다. 술먹고 취해서 새싹하는 느낌이었다.
- 숫자를한글로바꾸기/조현태 . . . . 10 matches
자꾸 우려먹는거지뭐.,ㅎㅎㅎ 새로 짜기도 귀찮고.ㅎ
소스가 프로그래머의 자산이라고나 할까..ㅎㅎㅎ
if (where_is_save != max_size_of_stack)
else
if (where_is_save)
if (jari==-1)
if (temp!=0)
음;; 그런게 존재하는건 아니구... C언어면 C언어답게 하는 것이 좋구 C++이면 C++답게 코딩하는게 좋은데.. malloc은 C언어에서 쓰이잖아. 물론 C++에서도 쓰이겠지만 C와의 호환성 때문이지 정말로 쓰이는것은 new니까 new를 쓰는게 좋다는거지. 클래스를 malloc으로는 할당 못하거든.
[LittleAOI] [숫자를한글로바꾸기]
- 숫자야구/조재화 . . . . 10 matches
if(a==b || a==c )
if(b == c)
cout<<a<<b<<c<<endl;
if(input/100 ==a)
if(input/10-(input/100)*10 ==b )
if( input-(input/10)*10 ==c )
if(input/100 ==b || input/100 ==c)
if(input/10-(input/100)*10 ==a ||input/10-(input/100)*10==c )
if(input-(input/10)*10 ==a || input-(input/10)*10 ==b )
cout<<i<<"스트라이크 "<<j<<"볼입니다."<<endl;
- 여사모 . . . . 10 matches
- 아마도 문자열이 초기화가 안돼서인것 같다. strlen()함수는 char *(캐릭터형 포인터)을 전달인자로 받지.
으로 NULL이 들어가게 되 있거든. 그런데 위에서 초기화를 안 해줬으니 메모리 상에 있는 쓸데없는 데이터들
DeleteMe 위의 답변을 쓰신분은, NoSmok:단락개념 NoSmok:단락나누기 NoSmok:단락개념토론 을 읽어 보세요. Edit모드에서 보기 편하게 엔터를 넣었지만, 생각의 단위로 단락이 있는것 같지는 안네요. --아무개
cout << front[2] << endl; // 세번째 배열의 값을 출력
cout << front << endl; // 첫번째 배열의 주소값을 출력
cout << *front << endl; // 첫번째 배열의 값을 출력
cout << (front+4) << endl; // 다섯번째 배열의 주소값을 출력
cout << *(front+4) << endl; // 다섯번째 배열의 값을 출력 */
int * a = new int[b]; // 이와 같은 경우에는 원하는 값을 할당받아 사용하므로 올바르게 실행된다. */
- 일정잡기 . . . . 10 matches
* 예를들어 3학년 동기엠티를 추진하는 K군이 있다고 하자. K군은 5월 중에 MT를 가고싶어한다. K군은 일정을 잘 잡는데 필요한 요소를 고려해서 1달 전에 MT를 갈 계획을 세우기 시작한다. 이 때 1달전이라는데서 얻을 수 있는 이점은 1번과 2번이다. 1번의 경우, MT참가 인원에 영향을 미치는 요소들을 미리 파악할 수 있게 된다는 장점이 생기게 되는데, 예를들어 농활(5/3~5/6) 해오름제(5/16) 축제(5/22~5/24)와 같이 일정을 잡는 사람이 바꿀 수 없는 요소를 미리 파악해 이를 피하도록 유도할 수 있다. 2번의 경우, MT참가자들의 일정을 1달전에 고정시킴으로 인해서 자신의 다른 일정들을 다른 날짜로 보내도록 만들고, 해당 날짜에 MT가 있음을 주지시켜 이 날 다른 집단이 일정을 잡는 것을 피하도록 할 수 있었다.
* 역시 가장 좋은 방법은 위에서 말한대로 일정을 미리 잡는 것인데, 이외에 3번이 필요한 경우도 발생한다. 예를들어 3학년의 특정 한 과목을 재시험쳐야하는 상황이 왔는데, 일정이 있는 당일 오후 6시에 시험을 칠 뻔 하였으나 강의실 사정 등으로 수업시간에 치게되는 운에 의해서 일정에 영향을 받지 않는다던가 말이다.
* 반면에 1,2,3번이 모두 결여된 경우도 있는데, C집단의 회장 L군은 2012년 C집단의 정모가 매번 다른 일정과 겹치게되는 불운을 맞이하게된다. 정보 수집을 하지 못해 학교 행사와 일정이 겹쳤음은 물론이고, 그 때문에 직전에 날짜를 바꿈으로 인해서 다른 사람들의 다른 일정과 모조리 겹쳐지게 되기도 한다. 게다가 운도 없어 그 날짜에 자신이 참석하지 못하는 불운을 맞이하였고, 일정 파토라는 최악의 사태를 낳기도 했다.
* 올해 ZP회장은 효과적으로 일정을 계획하여 많은 사람들이 참석하도록 할 수 있을까.
- 정모/2002.12.30 . . . . 10 matches
* 방학 프로젝트 대체 이벤트
방학을 다음과 같이 3부분으로 나눠서 행사를 해봤으면 좋겠습니다.
* 방학 초 스터디 및 프로젝트
이전까지는 방학중에 4주에서 6주 정도를 잡아 스터디나 프로젝트를 했지만 이것을 방학 초 1주에 몰아서 한다. 우선 스터디 또는 프로젝트 그룹을 나눈 후, 목표를 정하고,
1주에 걸쳐 나인투나인(AM 9:00 ~ PM 9:00) 으로 아주 타이트하게 진행한다. 마지막날에 그룹별로 발표를 함으로 끝낸다. 4주에서 6주 정도 잡고 스터디를 하는것보다 오히려
방학이 끝나기 전에 다시한번 모여 특별한 이벤트를 한다. 이때는 스터디나 프로젝트보다는 흥미롭고 새로운 경험을 해볼 수 있는 시간을 마련한다.
- 정모/2002.3.28 . . . . 10 matches
* 세미나를 한다면 누가 언제 어떤 주제로 누구를 대상으로 할 것인지도 정하면 좋겠습니다. 3월 마지막 정모이니만큼.. --창섭
* 작년에도 몇몇 분이 해주셨던 걸로 기억하는데요..중간고사 이전에 씨뿔뿔 기초 세미나가 어떨까요? 4월에 있을 신입생 모집에도 좋은 홍보가 될 듯 싶은데.. --병희
* 난 씨 로 했으면 하는데. --남훈
* 씨가되든 씨플러스플러스가 되든 강사로 나설 각오가된 사람을 찾는게 우선인 것 같네요. 할 생각있는 사람이 자신있게 나서주길 바래요. --이덕준
* 파이선의 업그레이드를 위해서, zp 서버 업그레이드를(RedHat 7.1 정도 이상으로) 해야 합니다. 일전에 봐라군이 시도하다가 라이브러리 업그레이드에서 막혀서, 일단 잠정 보류라고 합니다. --상민
* 랜카드 에서 WOL(Wake On Lan) 을 메인보드와 연결하면 정전됐다가 전기가 들어왔을때 자동으로 켜진다죠 WOL 전선 값도 몇푼 안할텐데 어서 하나 연결합시다~. -- 동문서버에서 동현이형 글을 퍼옴.
추가로 설치해야하는 것:
b. 다음주로 합시다.
>이것으로 정모/회의는 마칩니다.<
- 정모/2011.7.4 . . . . 10 matches
== 프로젝트/스터디 ==
* 지속 여부 결정 및 새로운 프로젝트/스터디 제안
* 여름방학 프로젝트/스터디는 [2011년활동지도]에서 보실 수 있습니다.
== 로고 공모 ==
* 중간에 물리 교수님에게서 전화 와서 전화 받고 오니까 많은 부분이 지나가있더군요 -ㅅ-;;;; 쩝.. 뭐 그래도 들을 내용은 다 들었으니깐... 방학을 맞아 새로이 스터디가 진행되는 건 열심히 해 봐야겠네요a 결국 방학이든 아니든 학교는 자주 오게 된 -ㅅ-ㅋ 끝나고 곱창집이랑 하우스?에서 아이스크림 먹고 오락실 가서 1945한판 하고 (펌프가 없어서 못하고) 재미있었습니다. ㅋㅋㅋ - [권순의]
* 재학생으로 지낼 수 있는 마지막 학기라고 생각하니 역대 제로페이지 활동 중 가장 많은 프로젝트/스터디에 참가하게 되었습니다. 그 동안의 지피 활동에 비해 프로젝트/스터디 활동을 참 적게 했던게 부끄럽네요ㅠ 역시 공부와는 거리가 먼... 뭐 하나 도중하차 하지 않고 끝까지 하고 싶어요. 곱창은 검색한 보람이 있었고 오락실에서 아무 게임도 못한건 아쉬웠습니다. (테크니카라도 배워야 하나...ㄱ-) - [지원]
- 정모/2012.5.21 . . . . 10 matches
if(true){
데블스캠프는 ZeroPage에서 5일간 연속으로 세미나를 진행하는 행사입니다.
== 스터디&프로젝트 ==
미리 위의 유형을 미리 준비하기 힘들죠. 자칫 의견으로 흐를수 있구요. 은근히 시간 많이 걸리고 보통 30분짜리를 만들어 옵니다. 그럼 아예 데블스 캠프 한 코너로 만드는거죠. 아예 모여서 1시간동안 이걸 준비한 후(10~20장 이미지)에 30분 쉬고 1시간 동안 5분씩 12명이 발표해 버리는 겁니다. 3분이면 20명이 할수 있겠네요. 3,4학년에 있을 수많은 발표 과정을 압축해서 경험할 수 있을 것 같습니다.
어떤 모임에서 의도하지 않게 Speed geeking 의 일부 방식으로 이야기를 하게되었는데,
1.5 시간동안 지루하지 않고 꽤 재미있게 기술적인 토론을 할 수 있었습니다. OST에 적용도 좋고 혹은 Speed geeking 을 코딩 작업이 끝난후에 소규모로 서로 코드 리뷰를 하면서 고학년의 의견을 붙이는 것도 좋을 것 같아요.
* 올해 들어서 참가한 ZP 정모 중에서 가장 사람이 적었던 것 같은 정모였습니다 -_-;;; 그런데 생각해보니 다들 이번 컴공 전시회 관련으로 나가서 그런 것 같네요. 그렇게 보면 오히려 ZP에 능력있는 사람이 많다는 얘기니 그건 또 그것 나름대로 나쁘지 않나 싶군요. 태진이 OMS에 사람이 덜 참가한 것은 약간 아쉬웠지만서도. 그리고 데블스 관련 연락을 돌렸는데 이렇다하게 참가를 확답해 주신 선배님이 없는 것은 좀 아쉬웠습니다. 역시 다들 사는 게 바쁘신 거겠죠... - [서민관]
- 정모/2013.4.8 . . . . 10 matches
* 상식적으로 총무가 돈 안줄것 같은건 사지마세요.
* 서로 어색어색 한것 같아서 [김태진]이 진행하자고 함.
* 이로써 오늘도 [김태진]의 진행욕구는 채워졌습니다.
* 롯데월드 / 에버랜드 / 서울랜드 어디로?
= 스터디&프로젝트 공유 =
== WINAPI로 6p 게토 시스템 ==
* 한주 쉬기로 했습니다.
* 네트워크에 관한 것. 어떤식으로 네트워크를 구성해야 하는가, 장비를 다루는 법도 관련되어 있고.
* 4월12일에 Qualification Round가 있네요. 등록 빨리 하셔야할 듯.. - [서지혜]
* 약속때문에 아이스 브레이킹하는 중에 왓네요. 개인적으로는 재미있었습니다. - [김윤환]
- 제로스 . . . . 10 matches
== 제로스 ==
* 제작한 OS에서 돌아가는 응용프로그램을 만들어 본다.
발표팀 : 발표(방식은 자유), 질문을 해도 대답할 수 있을 정도로 공부해 오기.
모르는 경우 같이 토의.
* 현재 프로젝트의 방향은 정하지 않은 것으로 보이니까 공룡책으로 이론 공부를 하고 Nachos라는 교육용 OS 프로그램 분석을 병행하면서 여기서 얻은 지식으로 OS를 만드는 접근 방법을 사용하는 것이 어떨까 하는데 다들 의견이 어떠신지 궁금? -- 이론 : Operating System Concepts -- 실습 : Nachos - [진석]
[프로젝트분류] [2007년활동지도]
- 졸업논문/요약본 . . . . 10 matches
웹 환경은 이제 하나의 플랫폼으로 자리 잡고 있다. 빠르게 변하는 웹 환경에는 python같은 객체지향 언어가 적당하다. Django는 python으로 만들어진 웹 애플리케이션 프레임워크로, 데이터베이스를 추상화하여 개발자가 기민하게 웹 애플리케이션을 작성하도록 돕는다. Django에서는 기존에 ODBC등을 이용하는 CLI 보다 한 단계 더 높은 수준에서 데이터베이스를 사용할 수 있다. 예를 들어 주언어 python에 클래스를 정의하면 데이터베이스 테이블을 자동으로 생성해주며, 클래스가 변경되면 데이터베이스 테이블도 자동으로 수정해준다. 그 밖에 삽입, 삭제, 수정, 조회 기능을 클래스가 가진 메소드로 추상화하여 주언어 수준에서 데이터베이스를 사용할 수 있도록 한다. 이러한 지원을 바탕으로 웹 애플리캐이션 개발자는 기민하게 프로그램을 작성할 수 있다.
Web environment has became a standalone platform. Object-oriented languages, such as python, are suitable for web. Django is a web application framework written by python, and helps web developers writting web application more agile by abstracting database. Django provides high level abstraction on database, higher than CLI which uses ODBC. Django, for instance, creates database tables when developer writes classes in python, and modifies tables when developer modifies classes in python. In addition, django helps developers using database on host-language(python) level by abstracting insertion, deletion, update, retrieving of recodes to class method. Therefore, web developers make programs more agile.
- 지금그때2004/패널토의질문지 . . . . 10 matches
질문하는 사람이 없을 경우 사회자가 패널에게 질문할 것들
* 마지막으로 놀라운 경험을 한 때? 경험의 내용?
* 다시 대학때로, 일학년때로 돌아간다면 가장 해보고 싶은 일?
질문을 할때 사회자의 말투라고 할까요. 내용은 위의 질문내용으로 할 수 있지만 질문접근방법에 대해서도 신경쓰면 더 좋은 답을 얻을 수 있지 않을까 합니다. 그러한 점에서 볼때 [질문의힘] 의 후반부에 나오는 인터뷰들의 예를 참고해볼만 하다 생각합니다.
"저의 경우 지금 자료구조 수업을 듣고 있는데 머릿속에 잘 안들어옵니다. 선배님들은 자료구조가 중요한 과목이니 열심히 공부하라고 하시지만 쉽지가 않네요. 선배님께서 수업을 들으셨을때는 어떻게 하셨습니까? 그리고, 보다 능동적으로 재밌게 공부할 방법이 없을까요?"
식으로 이전에 같은 컴공과 학생이라는 연결고리를 만들 수 있겠습니다. 또한, 방청객들도 이러한 질문을 들으면서 자기 경험대비 질문의 연결고리를 찾을 수도 있겠다는 생각이 듭니다. --[1002]
"저희는 이제 막 고등학교를 졸업하고 대학에 들어왔습니다. 삶에 있어서는, 뭐랄까 일종의 180도 회전 같은 거죠. 그래서 그래 이제는 한번 마음껏 놀아보자, 그런 생각도 드는 것이 사실입니다. 하지만 아마도 선배님께서는 '내가 만약 그때로 돌아간다면 X나게 공부했을 것이다'라고 말씀하실지도 모르겠습니다. 그렇지만, 그것은 이미 과거의 경험을 전제로 '그랬었더라면'하는 후회의 형식이기 때문에 그런 말씀을 하실 수 있는 것 아닌가요? 지금 정말 열심히 놀고 설사 나중에 후회하더라도 나름의 가치가 있는 것은 아닌가요? 지금 우리에게 선배의 후회를 강요할 수는 없는 것 아닌가요?" --JuNe
- 지금그때2005/회의20050318 . . . . 10 matches
정말 질문하고 싶은 경우 개인당 1회로 질문권 발동
메뉴판에 없는 질문이 하고 싶은 경우 포스트 잇에 적음
새로운 질문이 등록된 경우 주사위를 굴리기 전 웨이터가 모두에게 질문을 알려줌
한 질문에 대해 7분이 넘는 대답을 하는 경우
매니저가 아이템으로 중지시킴
확실치 않거나 빼먹은 선배님들 새로 연락하기
크게 두 개 부분,질문 레스토랑과 OST 부분으로 나뉨. 3시간 20분 계획
6:20 서로 소개
- 진법바꾸기/허아영 . . . . 10 matches
if(any_jinbeob < 0 || any_jinbeob > 24){
}else{
if(ten_jinsu == 0)
안돌려봐서 모르겠지만 말야..ㅎㅎ 왠지... 저기 do~while문안의 i랑 turn..하나로 해도 되지않을까??ㅎㅎㅎ
나의 프로그래밍 관 이랄까? 그런게 짧게 작성하자! 막 이러는게 아니라서 .^^;;
코딩하는게 나의 코딩관 또는 프로그래밍 관이라도 보면 돼 ㅋㅋ
음.. 프로그램을 짤 때 각자의 가치관이 소스에 드러나는건 당연한 거고, 아영이의 가치관은 훌륭하기 그지없다고 봐.ㅎㅎ 회사에가서 소스를 작성했을때, 알려주기 싫다거나 귀찮다는 이유로 소스를 가지런히 만들지 않는다면, 그건 월급을 받고도 자기일을 다 하지않는 것과도 같을 테니까.ㅎㅎㅎ
그런데 말야.. 저기 두 번째 함수의 i 과 turn 은 정말로 전혀 다른게 없다고. 이름을 여러개로 해주고 싶었다면 포인터를 사용하거나 전처리문을 사용하는게 나을텐데.. 같은연산이 중복되서 일어나니까 오히려 햇갈린다고..ㅎㅎㅎ
- 짜장면 . . . . 10 matches
... 어떤 글을 쓰더라도 짜장면을 자장면으로 표기하지는 않을 작정이다. 그것도 어른들 때문이다. 어른들은 아이들이 짜장면이라고 쓰면 맞춤법에 맞게 기어이 자장면으로 쓰라고 가르친다. 우둔한 탓인지는 몰라도 나는 우리나라 어느 중국집도 자장면을 파는 집을 보지 못했다. 중국집에는 짜장면이 있고, 짜장면은 짜장면일 뿐이다. 이 세상의 권력을 쥐고 있는 어른들이 언젠가는 아이들에게 배워서 자장면이 아닌 짜장면을 사주는 날이 올 것이라 기대하면서... - 본문중에서}}}
* 아영이의 추천으로 읽게 되었다. 괜찮은 책이었다. 흡입력도 있어서 재밌게 잘 읽어 나갈 수 있었다. 우리가 흔히 색 안경을 끼고 보는 아이들도 우리와 다를바 없는 나름대로 사정이 각자 있는 아이들이구나 하는 생각도 하게 되었다. 밖에서는 존경받는 훌륭한 교사이면서 집에서는 아내에게 막 대하는 주인공의 아버지를 보면서 [자유로부터의도피] 에 나오는 새디스트 (성적인 의미가 아니라 성격적 의미에서)적인 인간이 떠 올랐다.
* 거칠것이 없었던 청년기와 반항심으로 충만했던 시기를 다시한번 떠올려볼 수 있었다.
* 고등학교 3학년, 서울에 올라왔다가 사촌오빠가 권해준 책이었다. 기차 안에서 읽으라고 ^^.. 가벼운 소설정도로 생각했었다. 맞다. 가벼운 소설이다. 쉽게 술술 읽혀지지만 그 얇은 책 속을 통해서 슬픔, 분노, 희열, 사랑, 행복, 비열, 긴장감, 등 다양한 감정을 느낄 수 있다는 것에 대해 나의 또다른 인생을 겪어 보는 것 같아서 좋았다.
* 내 21년 동안 너무나도 평범했기 때문에 내가 아닌 다른 사람의 삶도 다 그럴 것이라고 생각했었다. 하지만 이 책을 읽고 선입견이랄까? 고정관념을 가졌던 여러가지 모습을 새로이 제대로 볼 수 있게 된 계기가 되었다. 저자가 이 책에서 말하는 여러가지.. 예를들어 '짜장면 배달을 하는 사람이 꼭 인생이 잘못되어서가 아니다' 라는 구절을 보았을 때 '아! 난 선입견을 가지고 사람들을 판단했구나..' 라고 느꼈다.
* 이 소설은.. 지금 현재 어른이 된 저자가, 과거를 회상하는 내용으로 나와 있다. 하지만 실제 필자는 정말 바르게 자라왔다고 한다.
- 코드레이스/2007.03.24상협지훈 . . . . 10 matches
if rest < 120:
else:
if rest < 120:
else:
if rest < 120:
else:
if check(sec) == "red":
if rest < 120:
else:
if check(sec) == "red":
- 타도코코아CppStudy . . . . 10 matches
* 리팩토링과 의도에 의한 프로그래밍 - 이건 계속 지켜나가야함
* [코코아] : for랑 if를 자유롭게 쓰고 싶어요^^. 함수도 자유롭게 쓰고 싶어요. 지뢰찾기, 인수형따라잡기...선희 방 청소 시키기
* 매일매일 작은 프로그램을 짜보자!
* 숙제는 꼭 해오세요^^. 한번 해봤던 것도 다른 방법으로 풀어오면 인정해드립니다.
* 발표준비는 친구들이 알아들어 먹을수 있을 정도로 잘해오세요^^ 다른 사람들도 발표 안맡았다고 띵까띵까 놀지 마시고.. 예습해오세요. 제가 부족한 부분에 한해서 보충 설명을 하겠습니다. --[인수]
* 저도 잘 안써서 모르지만 F9 키로 break point 를 잡은 뒤, F11 키를 누르면 debug 가 되는 걸로 알아요^^ - 대근([CherryBoy])
* 제가 깜빡하고 이말을 미리 못 드렸네요-_-; 제가 담주 28~31 8월4일~9일..알바 풀타임을 하기 때문에; 도저히 빠질수가 없는 관계로 스터디로 총 4번을 빠질듯 해요ㅠ.ㅠ 2주동안 컴터 거의 킬 시간도 없을 듯 해요;;아 진작 말을 못드린점 죄송하구요...알바 끝나면 더 열심히 하겠어요...;그리고 오늘 부터는 가족끼리 여행가기 때문에...에혀;;뭐 숙제할 시간도 없겠다ㅠ.ㅠ 그동안 잘 지내세요...그럼 이만; 인수형! 제 맘 아시죠?;;위부는 말 했고...방이랑 옹은 기쁜 소식을 접해서 좋겠군-_-;대근이형 나중에 뵈요ㅠ.ㅠ스타 담에 꼭하구요;
[C++Study_2003], [프로젝트분류]
- 파이썬으로익스플로어제어 . . . . 10 matches
//동문서버의 경우 http://www.caucse.net/page/home.php 로 해야함.
//프레임의 경우 주의 필요
자세한 내용은 http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/reference/objects/internetexplorer.asp 에의 컴포넌트들을 참조하세요. 주로 알아야 할 객체는 WebBrowser, Document 객체입니다. (login 예제는 나중에~) --[1002]
IE Automation 을 이용한 것이므로, firefox 나 opera 의 경우는 다른 방법을 이용해야겠죠. --[1002]
* 파이썬 인간적으로 너무 쉽네요. 우린 c++/mfc/atl/com으로 하고있는데 - [ljh131]
* Document.body.innerHTML 이렇게 하면 body 에 있는 내용을 다운로드 받을 수 있다
* ie.Document.FormName.fieldName.value = XXX 이런식으로 값을 넣는다.
- 혀뉘 . . . . 10 matches
남에게 싫은 소리 못하고 속으로 삭인다
타인을 무조건 이해해 주고 자기 의견과는 상관없이 따라가 준다
오래도록 계속될 관계로 보아도 좋을 것입니다.
당신은 사람을 선택하는데에도 신중하며, 왠만한 일로는 마음이 흔들리지 않을 것입니다.
상대방의 배신에도 때로는 너그러울 수 있고 용서해 주기도 하지만,
* 로마인 이야기
* GNU 에 도움이 되는, 열린 마음을 가진 프로그래머
그런 눈으로 바라보는 새벽 거리에.. 별다른 차가움도 있을리 없지. 참 조용해..
그냥 생각인데, 10여년 후에는 베트남에 대한 보상 문제로 사회가 또한번 발칵 뒤집히지 않을까 싶어.
참으로 오랫만이 아닌가.. 흐흣..
- ACM_ICPC . . . . 9 matches
* [http://acm.kaist.ac.kr/2009/rank/new_summary_full.html 2009년 스탠딩] - No attending
* [http://acm.kaist.ac.kr/phpBB3/viewtopic.php?f=7&t=129 2010년 스탠딩] - No attending
|| 네트워크플로우 || . || Big Integer || . ||
* 외국팀 제외 학교 순위 10위로 동상 수상!
* 2009년 이후로 오랜만의 Seoul Regional 입니다.
* 올해부터 시상을 학교 순위가 아닌 본선 순위로 진행된다고 합니다. ~~수상권을 멀고 힘든 것~~
* 장소 : COVID-19로 인한 온라인 진행
* 특이사항으로 한국 대학 팀의 타 리저널 출전과 외국 대학 팀의 한국 리저널 출전이 막혔습니다.
* 장소 : COVID-19로 인한 온라인 진행
- AKnight'sJourney . . . . 9 matches
기사는 또 다시 같은 검은색과 흰색 사각형을 보는 것이 지루해 '''전 세계'''를 여행하기로 결심했다. 기사의 세계는 8*8 보다 각은 면적을 가진 체스판이다. 기사는 이동할 때 두 칸 이동하고 직각으로 한 칸 이동한다.
입력은 첫 번째 라인에 양의 정수 N과 함께 시작됩니다. 다음 라인은 N 개의 테스트 케이스가 포함되어 있습니다. 각 테스트 케이스는 두 양의 정수 P와 Q로 이루어져 있는데, 1<= P * Q <= 26 로 제한이 되어있습니다. P*Q 체스판에서 P는 1, 2, ..., p , Q는 A, B, C, ..., Q를 나타냅니다.
시나리오 시작 번호는 1입니다. 모든 시나리오에 대한 출력은 "Scenario # I:"으로 시작합니다. 다음 기사 이동과 체스판의 모든 사각형을 방문하는 순서는 '''사전 편찬(집필) 상의 순서'''를 따라야 합니다. 방문 가능한 경로는 여러 가지가 있을 수 있지만, ABC, 123 의 순서를 따지면 결과는 하나로 정해져 있습니다. 최종 경로는 한 줄에 제공해야합니다. 전부 방문할 수 있는 경로가 존재하지 않으면, 당신이 한 줄에 출력 불가능합니다.
- AdvancedJS . . . . 9 matches
* 새로운 경험이었다. 전부 다 이해하지는 못했지만 신기했다 *_* -[김상호]
* 혼자공부하는 것보다 세미나를 통해 더 효율적으로 공부할 수 있던것같다. 다른 언어와 달리 자유로워서 프로토타입 이해가 힘들었지만 책을 보며 다시 공부해보면 이해가 더 잘 될것같다 - [서지혜]
* 개인적으로 자바스크립트에 관심도 있고 해서 세미나를 들으러 왔다. 근데 가끔 웹페이지에서 자바스크립트 소스를 보면 C++이랑 비슷하게 쓰길래 그냥 비슷한 언어인가 싶었는데, 이번에 들어보면서 오히려 다른 점이 크게 부각된 느낌이다. C++이랑 비교해서 상속 방식도 다르고(프로토타입 상속) this의 개념도 좀 다르고 함수가 객체로 취급되고 등등. 물론 나중에 따로 책을 보면서 공부를 하긴 하겠지만 아마 이번에 배운 내용은 책에서 쉽게 찾아볼 수 없지 않을까 싶다. - [서민관]
* 도중에 참가했지만 다른것보다도 프로토타입(체인포함)에 관해서 좀 더 배울 수 있어서 좋았다. - [김홍기]
- AproximateBinaryTree/김상섭 . . . . 9 matches
if(dp)
if(temp < min_total_weight_sum)
if(min_index != 0)
if(min_index != dp->nodes.size()-1)
if(dp)
if(dp)
sort(root->nodes.begin(),root->nodes.end(),comapare);
cout << endl;
cout << cost(root,1) << endl;
- BasicJava2005/5주차 . . . . 9 matches
- static은 클래스에 종속되는 변수로 인스턴스명이 아닌 클래스명으로 호출된다.
- parseXXX : String을 각 형태로 변환한다.
- toString : 지정한 숫자를 문자열 형태로 반환한다.
연습 > 2차방정식의 해를 구하는 프로그램을 작성해 보자.
System.out.println("0으로 나누지 마세요");
- try ~ catch 구문을 실행후 무조건 finally문장을 실행한다.
throw : 임의로 예외를 발생시키고자 할 때 사용한다.
연습 > 100이상의 정수가 입력되었을 때 예외를 발생시키는 프로그램을 작성해 보자.
- BeeMaja . . . . 9 matches
마야라는 꿀벌이 있다. 마야는 수천 마리의 다른 벌들과 함께 육각형 모양의 벌집에서 살고 있다. 그런데 마야에게 문제가 생겼다. 그녀의 친구 윌리가 만날 장소를 알려줬는데, 윌리(숫놈 일벌)와 마야(암놈 일벌)는 서로 다른 좌표계를 사용한다.
* 마야의 좌표계(왼쪽 그림) - 마야(왼쪽)는 벌집 전체를 커버할 수 있는 2차원 격자를 써서 특정 칸으로 바로 날아갈 수 있다.
* 윌리의 좌표계(오른쪽 그림) - 윌리(오른쪽)는 조금 지능이 낮아서 벌집 한가운데 있는 1번 지점에서 시작해서 시계방향으로 걸어서 이동하는 방법밖에 쓸 수 없다.
[http://online-judge.uva.es/p/v101/p10182a.gif] [http://online-judge.uva.es/p/v101/p10182b.gif]
마야를 도와서 윌리가 쓰는 좌표계를 마야가 쓰는 좌표계로 변환해보자. 어떤 벌집 번호가 주어졌을 때, 그 번호를 마야의 시스템에서의 좌표로 변환해서 출력하는 프로그램을 만들어야 한다.
- CPPStudy_2005_1/STL성적처리_2 . . . . 9 matches
ifstream fin("input.txt");
if (line[i] == ' ') {
} else ++quantity;
return accumulate(grades.begin(), grades.end(), 0.0);
iter != record.end();
grades != (iter->second).end();
cout<<endl;
* sorting 이 안되는 것이 map 의 단점이다. ㅡ,.ㅡ; 그야말로 검색할때만 좋은 것 같다.
* 다른 컨테이너와 기본적인 DS의 골격가 다르기 때문에 치환정도로는 DS의 변경이 안된다.
- ChainsawMassacre . . . . 9 matches
조직위원회에서 당신에게 무도회장으로 쓸 수 있는 가장 넓은 직사각형 영역을 찾아달라는 요청을 했다. 장소를 물색해야 할 전체 영역은 직사각형이며, 무도회장은 완전히 그 직사각형 안에 들어있어야 한다. 그리고 무도회장의 각 변은 전체 영역을 나타내는 직사각형의 각 변과 평행해야 한다. 무도회장은 주어진 영역의 경계에 닿아 있어도 된다. 그리고 무도회장 내부에만 나무가 없으면, 경계선 위에 나무가 있어도 상관없다.
첫째 줄에는 시나리오 개수가 입력된다. 각 시나리오의 첫째 줄에는 주어진 영역의 길이 l과 너비 w가 미터 단위로 입력된다(둘 다 정수며 0보다 크고 10,000 이하다). 그 밑으로는 각 줄마다 다음 형식에 따라 나무 한 그루 또는 한 줄로 심어진 나무들을 설명하는 내용이 입력된다.
* 1 × y - '1'은 나무가 한 그루라는 것을 의미하며, x와 y는 왼쪽 맨 위 지점을 기준으로 x와 y 좌표를 미터 단위로 표현한 것이다.
* k × y dx dy - k 가 1보다 크면 여러 그루의 나무가 한 줄로 심어져 있는 것을 나타내며, 그 좌표는 (x,y), (x+dx,y+dy),...,(x+(k-1)dx, y+(k-1)dy)이다.
x, y, dx, dy는 모두 정수로 입력된다. 모든 나무는 주어진 영역 내에 있다. 즉 모든 좌표가 (0,l) × (0,w) 안에 들어간다. 나무는 최대 1,000 그루까지 있을 수 있다.
각 시나리오에 대해, 한 줄에 한 시나리오씩 무도회장의 최대 크기를 제곱미터 단위로 출력한다.
- CheckTheCheck . . . . 9 matches
체스판 설정을 읽어서 킹이 공격받고 있는지(체크 상태인지)확인하는 일을 해야 한다. 상대방의 다음 수에 의해 킹이 죽을 수 있는 위치에 있으면 킹이 체크 상태가 된다. 흰 말은 대문자로, 검은 말은 소문자로 표시된다. 흰 편은 항상 판의 아래쪽에, 검은 편은 판의 위쪽에 자리잡는다.
다른 말을 건너뛸 수 있는 것은 나이트밖에 없다는 것을 꼭 기억해두자. 폰의 움직임은 어느 편인가에 따라 다르다. 검은 폰이면 아래쪽 대각선 방향으로, 흰색 폰이면 위쪽 대각선 방향으로 한 칸만 움직일 수 있다. 위에 있는 예는 소문자 "p"로 표시된 검은 폰의 움직임을 나타낸 것이다. 방금 "움직인다"라고 표현한 것은 폰이 상대방 말을 잡을 수 있는 경우를 의미한다.
입력에는 임의 개수의 체스판 배치가 들어있을 수 있으며 각 판은 각각 여덟 개 문자로 구성된 여덟 줄로 구성된다. "."은 빈 칸을 의미하며 위에서 정의했듯이 각 말을 의미하는 대문자 또는 소문자가 입력된다. 틀린 문자는 없으며 두 킹이 모두 체크를 당하는 배치는 입력되지 않는다. "." 문자만으로 구성된 비어있는 체스판이 나올 때까지 입력을 읽어야 하며 비어있는 체스판은 처리하지 않는다. 각 체스판 배치 사이에는 빈 줄이 하나씩 들어간다. 비어있는 판을 제외한 모든 판에는 정확하게 하나씩의 흰 킹과 검은 킹이 들어있다.
- Class . . . . 9 matches
지하수, 해수, 민물, 빗물 이라는 개념들은 모두 '물'이라는 하나의 개념으로 추상화할 수 있다.
음.. 나만의 생각일지는 모르겠는데... 물 시리즈로 모델링을 한다면 물 클래스를 상속받는 지하수 클래스, 해수 클래스 등등으로 보통 가지 않남?;
그래서 수정해보기로 했습니다!
- 바닷물 속에는 다양한 원소들이 '염분'이라는 단어로 추상화된다. ->클래스.
- 염분의 각 원소들은 원소의 형태보다는 화합물의 형태로 존재한다.
화합물들은 서로간에 더이상 영향을 주지 않는 상태로 안정화하기 때문에
각 화합물들은 서로간에 영향을 주지 않는다.-> 객체의 성질.
- ClassifyByAnagram/1002 . . . . 9 matches
hotspot 으로 프로파일링 돌린뒤 중간 쓸데없어보이는 코드들 마구마구 삭제. 가장 병목지점은 Anagram.register, {{{~cpp WordElement}}} (지금은 input 갯수 n 에 대해 n 번 실행)
if self.anagrams.has_key(aw):
self.anagrams[aw].append(aWord)
else:
if __name__=="__main__":
end=time.clock()
print "time : ", end-start
["ClassifyByAnagram"]
- CubicSpline/1002/test_NaCurves.py . . . . 9 matches
listY.append(givenFunction(x))
if i == j:
else:
if i == 1:
else:
expected.append (givenFunction(x))
if i-1 >= 0:
expected.append([6 * ( self.deltaY(i)/self.deltaX(i) - self.deltaY(i-1)/self.deltaX(i-1) )])
if __name__=="__main__":
- DataStructure . . . . 9 matches
* 2월 4일 : 옛날에 한 링크드 리스트 다시 한번 해보고 있음.이번엔 double로
* 2월 14일 : 설 동안 좀 쉬고.. 마음가짐을 새로 잡았습니다. 실은 만화책 보느라..--; 지금 폭주중..--; 모르는게 무더기로 ㅠ.ㅠ 역시 대강대강 훑고 간 부작용인가..
* 현재 : 이제 마음이 바뀌었다. 자료구조 시간에 뭔가를 배우면 그 개념을 따라 내가 스스로 만들어 보는걸로..
''하지만, 이는 기존 70,80년대 Structured Programming에서 보는 프로그램의 상당히 제한적인 시각이다.''
* 위의 공식을 보건대 훌륭한 프로그래머가 되기 위해선 자료구조 알고리즘이 필수이다.
* OOP시대에는 위의 개념이 살짝 바뀌었더군여. Algorithms+Data Structure=Object, Object+Object+....+Object=Programs 이런식으로..
["프로젝트분류"]
- DelegationPattern . . . . 9 matches
example) 예전에 VonNeumannAirport 을 JuNe 과 ["1002"] 가 Pair 하던중 JuNe 이 작성했던 Refactoring 으로서의 Delegation.
이 기능을 추가하기 위해 일단 Airport Code 를 Refactoring 하기로 했다. 이를 위해 Airport 의 기능중 Configuration 과 관련된 기능에 대해 Configuration 을 Extract 하고, 내부적으로는 Delegation 함으로서 외부적으로 보이는 기능에 대해서는 일관성을 유지한다. (Test Code 가 일종의 Guard 역할을 했었음)
if (anArray[i] == anInt) return i+1;
["ResponsibilityDrivenDesign"] , ["Refactoring"], ["DelegationPattern"] 을 꾸준히 지켜주면 좋은 코드가 나올 수 있다. (["DesignPattern"] 이 유도되어짐)
전에 SE 수업중에 컴포넌트모델의 필요성을 이야기하던중 '상속으로의 재사용이 어렵기 때문에' 이야기를 하셨는데, 왜 대안 중 하나로서의 [Delegation] 에 대한 언급이 전혀 없으셨는지 모르겠다. Delegation 만 잘 이해해도 준 컴포넌트 스타일의 모듈화 프로그래밍을 잘 진행할 수 있고, 사람들 간의 작업분담도 잘 이끌어 낼 수 있을건데.. --[1002]
- EightQueenProblem/서상현 . . . . 9 matches
if (board[x][y]) return 0;
if (board[xx][yy]) return 0;
if (level == n) {
else {
if (safe(i, j)) {
if (recur(level+1))
if (level == n) {
else {
if (safe(i, j)) {
- EightQueenProblem/이선우 . . . . 9 matches
if( line == sizeOfBoard ) {
if( checkRuleSet() ) {
if( ! checkRule( board[i], i )) return false;
if( y != i ) {
if( board[i] == x || board[i] == rightDownWay || board[i] == leftDownWay ) return false;
if( board[i] == j ) System.out.print( QUEEN_MARK );
else System.out.print( BLANK_BOARD );
System.out.println( "Number of different board: " + numberOfBoard );
if( args.length != 1 ) throw new Exception();
- EuclidProblem/Leonardong . . . . 9 matches
if ( remain == 0 )
/* cout << gcd( 10, 5 ) << endl
<< gcd( 11, 7 ) << endl
<< gcd( 12, 8 ) << endl
<< gcd( 13, 13) << endl
<< gcd( 11111111, 12938 ) << endl;
if ( int(y) == y )
if ( abs(xResult) + abs(yResult) > abs(x) + abs(int(y)) ){
cout << xResult << " " << yResult << " " << gcd(A,B) << endl;
- EventDrvienRealtimeSearchAgency . . . . 9 matches
* 쉽게 생각하면 로봇이 대신 웹서핑을 해서 사용자가 필요한 정보만 실시간으로 수집해서 바로 바로 실시간으로 제공해주는 Searcy Agency를 Event Driven Realtime Search Agency 라고 칭한다.
* 로봇이 사용자가 지정한 타겟 웹 정보를 짧은 시간 간격으로 수집한다.
* 각 게시판이나 웹페이지들이 Observable 즉 관찰할 객체들이고 이 객체들은 각자 자신의 Observer 리스트를 가지고 있다. 이 Oberver 리스트는 바로 사용자들이 아니라 이 많은 사용자들과 웹을 매개해주는 서버이다. 이 Obsever 서버 리스트를 가지고 있으면서 해당 자신의 웹이 업데이트 될때마다 업데이트 내용을 이 Observer 리스트 서버(EDRSA가 동작하는)들에게 전송을 한다.
* 그러면 해당 서버에 있는 EDRSA 들은 해당 웝에 대한 모니터링을 신청한 각 사용자들에게 각 사용자들이 입력한 키워드에 따라서 해당되는 내용들만 해당 사용자의 클라이언트 프로그램에 전송해준다.
- ExtremeBear/OdeloProject . . . . 9 matches
ExtremeBear 프로젝트
고객의 요구로 오델로 게임 구현
* Network로 쌍방향(p2p)구현
* 규칙(오델로 수용)
* xp경험보다는 프로그래밍 경험이라는 생각이 들었다.
=== 앞으로 어떼 해야 할것인가? ===
* 내일은 간단한 문제로 호흡을 마추어 보도록한다.
비디오 샵 관리 프로그램을 좀 길게 여유롭게 생각해보면서 해보도록 하였다.
- FileInputOutput . . . . 9 matches
ifstream fin("input.txt"); // fin과 input.txt를 연결
fin >> a >> b; // cin으로 화면에서 입력받는다면, fin은 연결된 파일로부터 입력받는다.
fout << a+b << endl; // cout으로 화면으로 출력한다면, fout은 연결된 output.txt에 a+b를 출력
저 프로그램을 실행하면 output.txt가 생기면서 11이 그 안에 써진다.
저 프로그램을 실행하면 output.txt가 생기면서 11이 그 안에 써진다.
[프로그래밍분류]
- HelpOnHeadlines . . . . 9 matches
"="로 시작해서 "="로 끝나는 줄은 섹션의 제목(Heading)이 됩니다. 다섯단계 이상일 경우는 모두 <h5>로 렌더링 됩니다.
= Heading <h1> 일반적인 경우 사용하지 않습니다. =
= Heading <h1> 일반적인 경우 사용하지 않습니다. =
/!\ {{{= 레벨 1 =}}} 제목은 <h1>으로 랜더링되지만 다른 위키위키 마크업과 통일성을 위해 '''두개'''의 "==" 부터 제목줄을 사용하시는 것을 권장합니다. MediaWiki에서도 비슷한 이유로 ``레벨1`` 제목 사용을 제한적 허용하고 있는데, 그 이유는 <h1>은 ''페이지의 제목''에 할당하고 있기 때문이라고 합니다.
모니위키의 경우 제목줄에 기본 문법을 사용하실 수 있습니다. 모인모인 혹은 DokuWiki에서는 이를 지원하지 않습니다.
- HowManyFibs?/하기웅 . . . . 9 matches
char start[101], end[101];
int output(BigInteger startNum, BigInteger endNum)
if(fibNum[i]>=startNum && fibNum[i]<=endNum)
while(cin>>start>>end)
if(start[0] == '0' && end[0] =='0')
cout << output(convertBig(start), convertBig(end)) << endl;
- HowToStudyRefactoring . . . . 9 matches
OOP를 하든 안하든 프로그래밍이란 업을 하는 사람이라면 이 책은 자신의 공력을 서너 단계 레벨업시켜 줄 수 있다. 자질구레한 기술을 익히는 것이 아니고 기감과 내공을 증강하는 것이다. 혹자는 DesignPatterns 이전에 ["Refactoring"]을 봐야 한다고도 한다. 이 말이 어느 정도 일리가 있는 것이, 효과적인 학습은 문제 의식이 선행되어야 하기 때문이다. DesignPatterns는 거시적 차원에서 해결안들을 모아놓은 것이다. ["Refactoring"]을 보고 나쁜 냄새(Bad Smell)를 맡을 수 있는 후각을 발달시켜야 한다. ["Refactoring"]의 목록을 모두 외우는 것은 큰 의미가 없다. 그것보다 냄새나는 코드를 느낄 수 있는 감수성을 키우는 것이 더 중요하다. 본인은 일주일에 한 가지씩 나쁜 냄새를 정해놓고 그 기간 동안에는 자신이 접하는 모든 코드에서 그 냄새만이라도 확실히 맡도록 집중하는 방법을 권한다. 일명 ["일취집중후각법"]. 패턴 개념을 만든 건축가 크리스토퍼 알렉산더나 GoF의 랄프 존슨은 좋은 디자인이란 나쁜 것이 없는 상태라고 한다. 무색 무미 무취의 無爲적 自然 코드가 되는 그날을 위해 오늘도 우리는 리팩토링이라는 有爲를 익힌다. -- 김창준, ''마이크로소프트웨어 2001년 11월호''
기학으로 우리 사상사에 큰 획을 그은 철학자요, "서울서 책만 사다 망한 사람"으로 이름을 날릴 정도로 엄청난 지식욕을 과시하던 사상가 혜강 최한기는 그의 저술 <神氣通>에서 눈에 통하는 법(目通), 귀에 통하는 법(耳通), 코에 통하는 법(鼻通) 등을 이야기하고 있다. 어떻게 하면 우리는 코에 도통할 수 있을까? 리팩토링을 공부하거나 혹은 했던 사람들에게 많은 영감과 메타포를 주는 책이다. 일독을 권한다. --김창준
* Minimize Comments : 코드의 가독성을 떨어뜨리지 않거나 혹은 오히려 올리면서 주석을 최소화하도록 노력한다. 이렇게 하면, 자동으로 리팩토링이 이뤄지는 경우가 많다.
* Follow ["LawOfDemeter"] : 디미터 법칙을 가능하면 지키려고 한다. 어떤 리팩토링이 저절로 이뤄지거나 필요 없어지는가?
* Pair Refactoring : 함께 리팩토링한다. 혼자 하는 것 보다 훨씬 빨리 훨씬 더 많은 것을 배울 수 있다. 특히, 각자 작성했던 코드를 함께 리팩토링하고, 제삼자의 코드를 또 함께 리팩토링해 보라. 사람이 많다면 다른 페어가 리팩토링한 것과 서로 비교하고 토론해보라.
- ImmediateDecodability/문보창 . . . . 9 matches
단순히 조건에 나와있는데로 Decodablility를 파악해 주면 되는 문제다. 코드를 계속 압축해 나가다 보니 수행시간이 갈수록 빨라졌고, 상위에 랭크될 수 있었다.
if (code[i][0] == '9')
if (i==j)
if (code[i][k] != code[j][k])
if (isDecodable == false)
if (isDecodable == false)
if (!isDecodable)
else
- JUnit . . . . 9 matches
참고로 저는 다음과 같이 배치화일을 만들어서 사용합니다. (주로 ViImproved 에서 Java 코딩을 하는 관계로)
PyUnit 에서 argument 로 -v 를 주면 testing message 가 나오지 않습니까..?
같은 식으로요.. - 임인택
console mode 로 표현하고 싶다면 textui runner 를 이용하시기를.. --["1002"]
textmode 로 쓰는데...흠..;; 의도가 정확히 전달이 되지 않는것 같네요..T_T. 제가 여쭤보려고했던건 보통 textui 로 실행하면
}}} 이렇게 나오지 않습니까... 이게 아니고.. 저~ 위에 있는것처럼.. (생각해보면, 별로 중요한거도 아닌데 매달리네요..-_-) - 임인택
- JavaStudy2004/조동영 . . . . 9 matches
if (totalHp > unitHp) {
} else if (totalHp == unitHp) {
} else {
public class zealot extends Unit {
public class dragoon extends Unit {
자식 클래스의 생성자는 전달인자가 없는 기본 생성자 모양으로 해놓고( ex) zealot() )
생성자 내에서 자동으로 (질럿이나 드라군은 hp 실드 등이 결정되어있으므로) 결정하면 더 좋겠죠? --[iruril]
- JollyJumpers/곽세환 . . . . 9 matches
bool diff[3000]; // 연속된 두값의 차이값을 체크
if (n > 1)
diff[i] = false;
diff[abs(input[i] - input[i + 1])] = true;
if (diff[i] == false)
if (isJolly == true)
else
맨 처음에 n을 입력 받는 작업이 있으니, 배열을 동적으로 생성하는 것이 더 좋지 않을까? --[강희경]
- JollyJumpers/김태진 . . . . 9 matches
if(feof(stdin)) break;
if(val==1) {
if(feof(stdin)) break;
if(result==val-2) printf("Jolly\n");
else printf("Not jolly\n");
if(feof(stdin)) break;
if(B[0]!=1) return -100;
if(B[j+1]-B[j]==1) x+=1;
if(C[j]>C[j+1]){
- KeyNavigator . . . . 9 matches
ZeroWiki는 [노스모크모인모인]의 기본 버전을 기초로 하고 있습니다.
|| Alt + z || Go 창으로 ||
|| Alt + d || 주소창으로 ||
== 로그인 과정 안내 ==
로그인과 로그아웃시 마우스 사용을 하지 않고 키의 여정을 최소화 했습니다.
=== 로그인 ===
1. Alt + c , Enter : UserPreferences 로 이동
=== 로그아웃 ===
- MineSweeper/황재선 . . . . 9 matches
if (mineArr[row][col].compareTo("*") == 0)
if (row+posRow[i] >= 0 && col+posCol[i] >= 0 &&
if (mineArr[row+posRow[i]][col+posCol[i]].compareTo("*") == 0)
if (array[0] == 0 && array[1] == 0) {
else {
public class TestMineSweeper extends TestCase {
* 변수 명명이 아직도 고민된다. 배열은 무조건 array 혹은 arr으로, 키보드 입력은 input을 붙인다. 딱히 적당한 이름이 생각나지 않는다.
* tdd가 힘들다. 무엇을 테스트해야할지 모르겠다. 키보드 입력과 결과부분을 테스트했다. 그냥 막코딩한것같다. 생각대로 풀려서 다행이다.
- ModelViewPresenter . . . . 9 matches
MVP 는 실제로 3개의 클래스가 더 있다. 요약하면
* Interactor - 키보드나 마우스 이벤트들을 Command 나 Selection 으로 매핑한다.
어플리케이션을 이러한 방법으로 나누는 것은 좋은 SeparationOfConcerns 이 되며, 다양한 부분들을 재사용할 수 있도록 해준다.
Model-View-Presenter or MVP is a next generation programming model for the C++ and Java programming languages. MVP is based on a generalization of the classic MVC programming model of Smalltalk and provides a powerful yet easy to understand design methodology for a broad range of application and component development tasks. The framework-based implementation of these concepts adds great value to developer programs that employ MVP. MVP also is adaptable across multiple client/server and multi-tier application architectures. MVP will enable IBM to deliver a unified conceptual programming model across all its major object-oriented language environments.
C++, Java 의 다음 세대 프로그래밍 모델. Smalltalk 의 고전적인 MVC 프로그래밍 모델에서 나왔으며, 다양한 번위의 어플리케이션과 컴포넌트 개발 테스크를 위한 강력하면서 이해하기 쉬운 디자인 방법론. 이 개념의 framework-based 구현물은 MVP 를 em쓰는 개발 프로그램에 훌륭한 가치를 더해준다. MVP는 또한 다중 client/server 나 multi-tier 어플리케이션 아키텍쳐에도 적합하다. MVP 는 IBM 의 대부분의 OO Language 환경들에 대해 단일한 개념의 프로그래밍 모델을 제공해 줄 수 있을것이다.
실제 IBM 의 샌프란시스코 프레임워크에 사용되었다고 들었던것 같다. (그래서 그런지 좀 추상적이면서 광고성의 문구로 보이긴 하다 -_-;) --[1002]
- NeoZeropageWeb/기획안 . . . . 9 matches
2006년 신학기를 최종 목표로 제로페이지 홈페이지의 구조를 쇄신한다.
'''세계의 추세 블로깅을 지원한다.'''
테마 : 서브 버전, TRAC, 제로위키의 통합적 기능을 제공하여 프로젝트 진행의 중심이 될 수 있도록 만든다.
'''UTF-8로의 인코딩을 지향한다'''
테마 : 기존 데이터의 UTF-8로의 변경 및 제로페이지 서버의 로케일 변경
- NumberBaseballGame/정훈 . . . . 9 matches
cout << "답 : " << rbaek << rsib << ril << endl;
if(three < 100 || three >999)
if(baek == sib || baek == il || sib == il)
if(baek == rbaek)
if(baek == ril || baek == rsib)
if(sib == rsib)
if(sib == ril || sib == rbaek)
if(il == ril)
if(il == rbaek || il == rsib)
- OOP . . . . 9 matches
'''Object Oriented Programming''' : 객체 지향 프로그래밍. ~~객체를 지향하는 프로그래밍입니다.~~이 이전에 Object Based Progamming 것이 있었다.이 다음 세대의 프로그래밍 기법은 GenericProgramming이라고 이야기된다.
* [Implementation](구현 : 인간의 개념 속에 존재하는 생각과 사상 등을 실제 물리적인 객체로 구성하는 일련의 작업. 예를 들어 새로운 구조의 컴퓨터 시스템을 만들어 내는 작업과 설계 과정을 거쳐서 전달된 내용을 실제 프로그램으로 구성하여 컴퓨터에서 사용할 수 있도록 하는 작업 등이 모두 구현 작업의 한 가지에 해당된다고 할 수 있다. : 정보문화사 컴퓨터 용어사전 발췌)
[UML]로 표기할수 있다.
[프로그래밍분류]
- One/박원석 . . . . 9 matches
if(i==3 || i==4 || i==7 || i==9)
if(c==1)
else if(c==2)
else if(c==3)
else
if(i%j==0)
if(c[i]==2)
- OpenCamp/첫번째 . . . . 9 matches
* jQuery 실습용 파일 - 마우스 우클릭으로 다운 요망
* [https://trello-attachments.s3.amazonaws.com/504f7c6ae6f809262cf15522/5050dc29719d8029024cca6f/f04b35485152d4ac19e1392e2af55d89/forConference.html 다운로드]
- MySQL Create Database END -----
* 발표하는 입장이어서 좀 많이 떨렸었습니다. 발표하는 주제가 별로 재미있거나 신기한건 아니어서 사람들 지루해할 것 같았는데 들으신 분들은 어땠는지 잘 모르겠네요. 나중에라도 자바스크립트를 공부할 때 기억이 나서 도움이 됐으면 좋겠습니다. 그 외에 듣는 입장에서는 web의 기본 protocol이나 ajax, node.js에 대한 설명이나 웹 헤더의 분석 그리고 jquery, php의 실습 등 이론 부분과 실습 부분 다 재미있었습니다. 하지만 다음번 자바 발표는 좀 무섭네요... - [서영주]
* 데블스 때도 그랬지만 남들 앞에서 발표를 한다는 건 상당히 떨리는 일이네요. 개인적으로는 이번 발표를 준비하면서 방학 동안 배웠던 부분에 대해서 다시 돌아보는 기회가 되었습니다. 그리고 그 외에도 방학 동안에 다루지 않았던 native app을 만드는 것이나 분석용 툴을 사용하는 법, Node.js, php 등 다양한 주제를 볼 수 있어서 좋았습니다. 물론 이번 Open Camp에서 다룬 부분은 실제 바로 사용하기에는 약간 부족함이 있을 수도 있겠지만 이런 분야나 기술이 있다는 것에 대한 길잡이 역할이 되어서 그쪽으로 공부를 하는 기회가 될 수 있으면 좋겠습니다. - [서민관]
* 1학년 때 데블스캠프에 잠깐 참가했을 때 수업시간에 배우는게 다가 아니라는 것을 느꼈었습니다. 이번 오픈캠프에서도 생각하지 않고 있었던 웹 분야에 대해 많은걸 알게 되어 좋았습니다. 처음 keynote에서 개발자에 미치는 영향력에 대해 설명하셨을 때부터 집중이 확 된 것 같습니다. 겨울방학 때 웹쪽을 공부해야겠다는 생각이 들었고, 자바스크립트로 구현하는 OOP부터 조금 어려웠지만 나중에 많은 도움이 될거라고 생각합니다. 책까지 받게 되어 너무 좋았지만 (+밥까지 얻어 먹게 되어) 뭔가 죄송하다는 생각도 들었습니다!_! 피곤하실텐데도 열심히 발표하거나 행사진행을 위해 애쓰시는 모습을 보며 가끔 공부가 힘들다고 투정하는 저를 반성하기도 했습니다. 덧: 생중계 코딩이 가장 인상적이었습니다~! - [구자경]
* 데블스도 그렇고 이번 OPEN CAMP도 그렇고 항상 ZP를 통해서 많은 것을 얻어가는 것 같습니다. Keynote는 캠프에 대한 집중도를 높여주었고, AJAX, Protocols, OOP , Reverse Engineering of Web 주제를 통해서는 웹 개발을 위해서는 어떤 지식들이 필요한 지를 알게되었고, NODE.js 주제에서는 현재 웹 개발자들의 가장 큰 관심사가 무엇있지를 접해볼 수 있었습니다. 마지막 실습시간에는 간단한 웹페이지를 제작하면서 JQuery와 PHP를 접할 수 있었습니다. 제 기반 지식이 부족하여 모든 주제에 대해서 이해하지 못한 것은 아쉽지만 이번을 계기로 삼아서 더욱 열심히 공부하려고 합니다. 다음 Java Conference도 기대가 되고, 이런 굉장한 행사를 준비해신 모든 분들 감사합니다. :) - [권영기]
* 준비를 미리미리 해야지 하면서도 자꾸 미뤘네요 -_-;;; 좀만 더 미리 해서 민재랑 연동했으면 보다 더 좋았을텐데 아쉽네요. 근데 피로는 며칠이 지나도 안 없어져요 -ㅅ-; - [권순의]
- PersonalHistory . . . . 9 matches
* [땅콩이보육프로젝트2005]
* [SmallTalk]다 프로젝트. Feat. [톱아보다], 매주 금요일 10시 모임. [SmalltalkBestPracticePatterns]를 공부하면서 [SBPPSummary]페이지의 완성과, 자판기프로그램 제작이 목표.
* 웹커뮤니티 만들기 프로젝트(외부)
* [http://aekae.ce.ro SE수업 프로젝트]
* [데블스캠프2004] - 실제로 많이 배우는 사람은 2학년 일지도 모르겠다.
* [몸짱프로젝트] - 2004년 6월 18일 종료
* 자바 텀 프로젝트 - 2004년 6월 3일 종료
* [실시간멀티플레이어게임프로젝트] - 2003년 10/4일 종료
- ProcrusteanBed . . . . 9 matches
저 악명 높은 도둑 프로크루스테스도 그런 도둑 중의 하나였다. 프로크루스테스의 집에는 침대가 하나 있었다. 도둑은 나그네가 지나가면 집 안으로 불러들여 이 침대에 눕혔다. 그러나 나그네로 하여금 그냥 그 침대에 누워 쉬어 가게 하는 것이 아니었다. 이 도둑은 나그네의 키가 침대 길이보다 길면 몸을 잘라서 죽이고, 나그네의 키가 침대 길이보다 짧으면 몸을 늘여서 죽였다. '프로크루스테스의 침대'(ProcrusteanBed)는 여기에서 생겨난 말이다. 자기 생각에 맞추어 남의 생각을 뜯어 고치려는 버르장머리, 남에게 해를 끼치면서까지 자기 주장을 굽히지 않는 횡포를 '프로크루스테스의 침대'라고 하는 것은 바로 여기에서 유래한 것이다. [[BR]][[BR]]'' '이윤기의 그리스 로마 신화' '' 중.
["이덕준"]은 자신에게 프로크루스테스 기질이 넘친다는 것을 위키를 쓰면서 자각했습니다.
- ProjectPrometheus/Iteration9 . . . . 9 matches
* 바구니 기능 - 근데, 우리가 생각한 기능은 아닌듯. 용도가 좀 다름. 이에 따라 login 이 쿠키 스타일로 바뀜. (JSP 를 쓰던데, Session 스타일일 가능성도)
* 전반적 UI 전체 (많이 이뻐졌다. 고로 RE 모듈이 수고 좀 하겠군. --a)
각자 사정 & 추석으로 한주 쉼.
검색 결과 없을 경우 에러
local DB에 있는 책이 폐기 되어 번호가 사라진 경우 에러
미스테리 : logging.jsp 파일이 include 시에 과거 코딩으로 돌아온다.
로그인
로그인 없어도 이용 가능 기능 : Search
Recommendation system
- STL/string . . . . 9 matches
* 잘못쓰면 메모리 누수의 주범이 되는 char* 대신으로 쓸수 있다.
* 문자열 길이는 b.size() 로 알수 있다.
* a문자열의 4-7번째까지의 문자를 문자열로 떼어내기
cout << name<<endl;
* new - char* 로 만든 문자열은 프로그램 사용후 delete 해줘야 되지만, string은 소멸자에서 알아서 해준다. 생산성 증가!
* string 클래스라고 해서 공백을 무시할수 있는것은 아니다. 학교 교재에 보면 getline()과 get()이 나온다. string 변수로 입력을 받는다 해도 cin >>을 사용하면 공백을 입력 받을수 없다. 따라서 getline() 써줘야 한다.
["[Lovely]boy^_^"]는 이걸 망각하고 1시간동안 삽질을 한 경험이 있다. 이럴때는 일단 char input[255]정도로 큰 배열 잡아 놓은 다음 string으로 변환 시켜준다. 예제를 보자.
- ScheduledWalk/권정욱 . . . . 9 matches
ifstream fin("input.txt");
if (direct == ' ' || direct =='\n') {
if (direct == '9') break;
if (x < 0) x += length;
if (x == length) x -= length;
if (y < 0) y += length;
if (y == length) y -= length;
cout << endl;
cout << endl;
- Self-describingSequence/황재선 . . . . 9 matches
* 구현은 했는데 close form으로 식을 못 만들겠다;
if (n == 1) {
else if (n == 2 || n == 3) {
if (input == n) {
if (input > MAX) {
else {
if (n == 0) {
public class TestDescribingSequence extends TestCase {
- Steps/문보창 . . . . 9 matches
A, B 라는 입력이 들어왔을 때, n = B - A 로 본다면, n = 1 ~ 20 {1,2,3,3,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,8}. 간단한 일차 방정식 작성으로 풀 수 있다.
if (n == i * (i - 1))
cout << 2 * (i - 1) << endl;
else if (n <= i * i)
cout << 2 * i - 1 << endl;
else
cout << 2 * i << endl;
- TCP/IP . . . . 9 matches
소켓 프로그래밍을 위한 TCP/IP 용어 정리
위에 나왔던 그림중 전송 계층부분에 해당하는 프로토콜들이다.
간단하게 설명해서 TCP 는 신뢰성있는 전송, UDP 는 '난 보냈으니 잘 가던지 말던지' 라고 하는 프로토콜이다.
* 인제 TCP/IP 소켓 프로그래밍에 들어가 볼까? 근데 사전지식이 많이 부족하겠군
위에있는 것만으로는 택도 없지.. 그렇다면? 알아서들.. 찾아보시길.. -_-; (사실 나도 잘 몰라...)
* Richard Stevens와 Douglas Comer의 저작들: 이 쪽에서는 바이블로 통함.
* Effective TCP/IP Programming: 44 Tips to Improve Your Network Programs : TCP/IP 프로그래밍 팁 모음
* Interactive Shell이 지원되는 언어(e.g. Python, Ruby, ...)를 사용하면 TCP/IP의 개념을 아주 빠른 시간 안에 배울 수 있음. (Python은 내부적으로 C 라이브러리를 그대로 사용) 또, 현재 개발된/개발중인 시스템을 테스트 하는 데에도 매우 편리함. 예컨대, 리코에서는 XMLRPC 서버 접속을 파이썬 쉘에서 하고(import xmlrpc 한 다음에...), 거기서 사용자 등록 등의 서비스를 직접 사용하게 한다.
- TCP/IP_IllustratedVol1 . . . . 9 matches
*이 책은 스티븐스 박사의 名著 중의 하나로서, 내가 network 에 관한 다른 책을 달리 읽어본 것은 아니지만, 전반적인 네트워크에 관한 이론을 설명하면서도 구체적인 설명이 필요할때는 거침없이 베어버리는(이런 표현을 용서해 주기 바란다.) 그런 책이다.
* 서로가 서로에게 견제의 대상이 되며, 게으름과 귀찮음을 미연에 방지한다.
* 무턱대고 만들었다. 으.. 아무래도 오늘 자료구조 사건이 큰 영향이었던 듯. 아무튼 저번주와 이번주.. 충분히 느슨해졌었으니 다음주부터는 다시 strict management 체계로 가자. 그리고 문서화도 이 페이지에 좀 해야겠다. '앞으로는'. -zennith.
* 남훈 정말 무턱대로 만들 수 있는 거야! 한마디 상의 없이...열심히 하자! 10장부터!~ -- 정직 --
* 다들 이 페이지는 보고 있기나 한건가.. 재동이는 거의 안보이고 -_-.. 아무튼 정직이는 시간이 없다고 하니 일단 의논이나 좀 해보자. 우리 이 스터디 일단 유보 할까? 이렇게 제대로 안되고 하느니 차라리 유보하는게 좋을 듯 한데? -zennith
* 흠... 솔직히 트래스라우트 넘어가면서부터는 소화하기 힘들정도로 넘 어려버요 -재동-
[프로젝트분류]
- TheGrandDinner . . . . 9 matches
올해 ACM 국제 대회 결선에 참가한 모든 팀은 시상식 후에 있는 대만찬에 참석해야 한다. 서로 다른 팀에 속한 멤버들이 최대한 서로 어울릴 수 있게 하기 위해, 한 테이블에 같은 팀에 속한 멤버가 두 명이상 앉을 수 없도록 했다.
각 팀에 속한 멤버들의 수(경시대회 참가자, 감독, 후보 선수, 참관인 모두 포함)와 각 테이블에 앉을 수 있는 사람 수가 주어졌을 때 처음에 정한 규칙대로 모두 앉을 수 있는지를 결정해야 한다. 규칙대로 앉을 수 있다면, 좌석 배치 방법을 출력한다. 여러 방법으로 배치할 수 있는 경우에는 아무 방법이나 출력해도 된다.
M과 N이 모두 0으로 입력되면 입력이 끝난다.
각 테스트 케이스에 대해 좌석을 배치할 수 있으면 1을, 그렇지 않으면 0을 출력한다. 배치가 가능한 경우에는, 그 밑으로 M줄에 걸쳐 좌석 배치를 출력하는데, i번째 줄에는 i번째 팀 멤버들이 앉을 테이블 번호(1에서 N까지)를 출력한다.
- TheWarOfGenesis2R . . . . 9 matches
== DirectDraw로 만든 간단한 알카노이드(11/07) ==
* 타일 그래픽의 편집은 그림판으로, 속성의 편집은 타일에디터로 한다. 추후.. 통합(?) 할지도?
* 내가 그 길찾는 프로그램 돌려봤는데.. 가끔은 벽을 뚫기도 한다. ^^ 내부벽 뿐만 아니라 외부벽을 뚫고 나가 헤매기도..;; 그리고 지그재그로 돌다가 가기도 한다. 참고하라궁...^^ --["창섭"]
* 내가 찾은건 자기 자신칸을 눌렀을때.. -_-헤맨다.. 벽을 뚫고가는 현상은 없는걸로 아는데..
* 버그: 3,2-3,1를 클릭후 1,1을 클릭하면 최단거리로 가는게 아니라 다른데로 돌아감..
["2dInDirect3d"] [Direct3D] ["프로젝트분류"]
- UML서적관련추천 . . . . 9 matches
수업시간에 나갈 때의 어찌 하다보니, 주된 스타일은 'All it together' 그리고 그 이후의 단계별 접근으로 진행이 되었습니다. 해당 단계들에 대해서 처음에는 전체적인 부분을 한꺼번에 진행하고, 그리고 각 단계들을 보게 되었습니다.
UML 에 대한 개론서입니다. 두께도 얇고, 도서관에도 있습니다. 내용 상의 서술은 오히려 어느정도 개발을 한 사람들이 재미있게 읽을 만한 것이긴 하나, 개론서로 읽어도 괜찮을 것 같습니다.
The Unified Modeling Language User Guide 2/E
UML 을 만든 소위 Three-Amigo 라 불리는 3명이 저자인 책입니다. Grady Booch, Ivar Jacobson, James Rumbaugh. 1판 번역서가 도서관에 있던걸로 기억하는데, 앞부분만 읽어보셔도 정말 예술인 책입니다. 처음 읽었을때, '모델' 이라는 개념에 대해서 이렇게 멋지게 서술한 책이 또 있을까 생각이 들던 책이였습니다. 그리고, UML 을 공부할때 소위 '정석적'이라고 이야기하는 것들은 아마 이 유저가이드나 Reference Manual 에서 언급된 설명을 기준으로 말할 것이라 생각이 듭니다.
The Unified Modeling Language Reference Manual (2/E)
참고로, 저는 Reference Manual 은 안읽어봤고, 위의 두 권은 읽어봤습니다. 그리고 UML 3일 가이드 같은 가벼운 책들을 읽었습니다. (하지만, 기억력이 나빠서.. 종종 다시 읽으면서 리프레쉬 해야 합니다;; 아마 조교 치고 다이어그램 자주 틀릴 겁니다;;;)
참고로 UML 은 'Modeling Language' 입니다. 모델링 서술을 위한 언어일 뿐, 모델링이나 디자인 방법 자체에 대한 설명을 하진 않습니다. 디자인 관련 서적은 따로 서술하겠습니다.
- UsenetMacro . . . . 9 matches
if ($group == 'http') {
} else {
if (preg_match('/[[:xdigit:]]+/', $thread))
else
if (!$subj) {
if (!preg_match('@200 OK@i', $buf))
if (strlen($_) < 1024) break;
if (!$subj) $subj = $group;
then it will be displayed like...
- VisualStudio2005 . . . . 9 matches
이번 [VisualStudio2005]에서는 Express Edition이라는 버전을 다운로드할 수 있도록 제공하고 있다.
VB, C#, C++, J# 네가지로 나누어서 제공이 되며
1년간 무료로 사용할 수 있다.
C# 자동으로 클래스 다이어 그램 그려주네요. 테스트 케이스 작성은 아직 못 해봤음. -_-
* 소스의 수정된 부분은 노란색으로 표시합니다. 저장이 되면 초록색으로 바뀝니다. 아마도 합병(merge)에서 사용될 부분인듯.
* 소스관리는 DB를 이용해서 하는 듯 합니다. MS Access로도 가능한 듯 합니다.
* 솔루션에 프로젝트 스타트 업이라는 녀석으로... 무언가를 하는것 같은데... 무얼하는지는...-_-ㅋ
- ZeroPageServer/BlockingUninvitedGuests . . . . 9 matches
제로페이지 위키의 RecentChanges 를 보면 가끔 쓰레기 페이지가 생성이 되는 경우가 있는데, 매번 수작업으로 페이지를 삭제해야 하는 번거로움이 있다. 이를 서버 또는 위키위키 자체가 막아주는 방법에 대해서 토의해 보는 페이지.
=== 주로 생성되는 페이지 ===
* 스타워즈비행기 게임 다운로드
=== 주로 접근하는 아이피들 ===
- 만약 해당 페이지를 생성하는 주체가 로봇이 아닌 검색엔진의 결과를 클릭한 사용자라면 이 방법은 적절하지 않다.
- [임인택]의 [http://purepond.cafe24.com/ 개인위키]도 ZeroPage 에서와 같은 문제점을 (그것도 더 심하게) 겪었는데 아파치의 보안기능 (.htaccess 파일 이용)을 적용해봐도 결과는 마찬가지였다. 누군가의 장난이거나 검색엔진(+사용자)의 무지에서 오는 문제인것이 확실하였는데. 결국 NoSmoke:노스모크모인모인 의 '''등록한 사용자만 글을 쓸수 있게 하는''' 기능을 이용하여 이 문제를 해결하였다. 여담으로.. 쓰레기 페이지를 손수 지우느라 엄청 고생함...-_-;;
- [Lovely]boy^_^/USACO/MixingMilk . . . . 9 matches
* 훌륭한 프로그래머들의 습관을 따라 해보려 노력중이다.
* 전문 프로그래머들은 assert문을 자주 쓴다고 한다.
ifstream fin("milk.in");
fout << Process(suf, numf, data, numlist) << endl;
if(data[cost] == 0)
sort(numlist.begin(), numlist.end());
if(suf > until + data[numlist[i]])
else
if(whenstop < numlist.size())
- radiohead4us/PenpalInfo . . . . 9 matches
Gender: Female
Comments: Hi All! Writing letters is my greatest hobby and i am still looking for some pals around my age. If you´re interested in writing snail mail to me, please send me an e-mail. Thanks! I promise, I will answer all.
Last Modify: 2003-06-07 16:39:17
Gender: Female
Comments: I'm looking for friends all over the world(^0^)/
Last Modify: 2003-06-09 14:55:42
Gender: Female
Comments: Hi~ I'm preety girl.*^^* I'm not speak english well. But i'm want good friend and study english.
Last Modify: 2003-06-11 14:28:22
- randomwalk/홍선 . . . . 9 matches
cout << "가로의 크기를 설정하세요. ( 2 < x <=40 ) \n";
cout << "세로의 크기를 설정하세요. ( 2 < y <=20 ) \n";
t=rand()%Direction; // 랜덤으로 바퀴벌레가 움직일 방향을 정한다
if(Pos_x + imove[t] >= 0 && Pos_x + imove[t] < size_x) // 바퀴벌레가 타일밖으로 벗어나지 않도록 하는 조건
if(Pos_y + jmove[t] >= 0 && Pos_y + jmove[t] < size_y)
if(Tile[Pos_x][Pos_y]==0)
cout << endl;
- usa_selfish/곽병학 . . . . 9 matches
if(i != 0)
if(o1.b < o2.b) return -1;
else if(o1.b == o2.b) {
if(o1.a < o2.a) return -1;
else if(o1.a == o2.a) return 0;
else return 1;
else return 1;
- whiteblue/MagicSquare . . . . 9 matches
if ( arr[i][j] == 0)
else
if ( i == size )
if ( j == size )
if ( j == size )
if (i == -1 )
if (j == -1 )
cout << endl;
cout << endl;
- 강희경/도서관 . . . . 9 matches
* 인체 드로잉 바이블
|| 1 || 뛰어난직원은분명따로있다 || 김경준 || 중도 || ||
|| 6 || 19단의비밀 || 이장규, 김준술 || 중도 || [책거꾸로읽기] ||
|| 9 || NoSmoke:학문의즐거움 || 히로나카 헤이스케 || [임인택] || [학문의즐거움] ||
|| 12 || 이제는 절대로 심리전에서 밀리지 않는다 || 이토 아키라, 나이토 요시히토 || [강희경] || ||
''어떤한 이유로든 다시 읽어볼 책''
|| 5 || 이제는 절대로 심리전에서 밀리지 않는다 || 이토 아키라, 나이토 요시히토 || [강희경] || ||
* 역사 : [로마인이야기](1권은 지루하지만 2권부터 재밌음), [http://zeropage.org/~namsangboy/wiki/wiki.php/%EB%8B%A8%EC%88%A8%EC%97%90%EC%9D%BD%EB%8A%94%EC%A1%B0%EC%84%A0%EC%99%95%EC%A1%B0%EC%98%A4%EB%B0%B1%EB%85%84 단숨에읽는조선왕조오백년], 학생부군과 백수건달
* 심리학 : [설득의심리학], 성의로부터의 자유
- 공업수학2006 . . . . 9 matches
1. y로 식을 풀어내기
2. ln[x] 에서 x를 밖으로 끌어낼때, 루트를 씌울 때의 부호 처리
|| 2006/05/04(목) || 4352 || 4.3 팀별로 ||
|| 2006/05/11(목) || Study Room || 4.6 4장리뷰 팀별로 ||
|| 2006/05/18(목) || 4453 || 5.1, 5.2, 6.1 팀별로 ||
* 06/04/06 : 금요일 지금그때 행사 관계로 목요일에 실시
허리케인공업수학으로 개명하는 것은 어떨까? ㅋㄷㅋㄷ
도현이도 하는거야?? 고맙다 앞으로 많은 기부 바란다 ㅋㅋ - [eternalbleu]
언제나 OK 못모이면 서버로 들어가는 거지 머 ㅋㅋㅋ - [eternalbleu]
- 그래픽스세미나/3주차 . . . . 9 matches
|| 박경태 || 기권. C# struct형으로 만들어보려다가 생고생만 함. 해보기는 했어엽.. ||
* 창의 프로그램(nehe OpenGL tutorial 10번정도면 괜찮을듯 하군요..^^)
friend CGX_Vector<T> operator-(CGX_Vector<T> in);
for(int i=0;i<3;i++) if (e[i]- b[i] > EPSILON) return FALSE;
///도트 프로덕트..
for (int i =0;i<DG-1;i++)//homogenious coordinate system 이므로..
if (e[i] > v) temp.e[i]=v;
else temp.e[i]=e[i];
if (e[i]>max) max= e[i];
- 김상윤 . . . . 9 matches
cout << a << b << c << endl;
if(i/100 == a)
if((i / 10) % 10 == b)
if(i % 10 == c)
if(i / 100 == b || i / 100 == c)
if((i / 10) % 10 == a || (i / 10) % 10 == c )
if(i % 10 ==a || i % 10 ==b )
cout << j << "S" << endl;
cout << k << "B" << endl;
- 데블스캠프2003/넷째날/후기 . . . . 9 matches
* 중간에 조는 바람에...ㅜㅜ죄송하고... 얻을 수 있는데도 못 얻은게 많았다. 오늘도 끝으로 갈수록 집중이 안되는 문제가 생김. OOP로 짜는 랜덤워크 구현에 너무 많은 시간이 걸린 것 같네요. 미리 코드를 짜 놓았다면 좀 낫지 않았을까요? -Leonardong
* 열심히 OOP 짜는데... 누가 그림판으로 장난을 치냐... 선생 변준원.. ㅋㅋ --동일
* OOP 는 알아듣기랑 변수를 선언하는게 힘들거 같지만,,, 그래도 잘 알게되면 쓸만한 것 같다.. OOP를 이용해서 프로그램을 짤 수 있었으면 좋겠다... 근데 이걸 언제 배울까... ㅡㅜ;; -- [손동일]
* 만력달력 짜서 기분이 좋았다. ㅋㅋ 그리고 OOP개념을 예시로 잘 설명해주어서 조금이나마 자알~ 이해했던것에 좋았다. 비록 소스짜는데 오래걸려서 졸았지만...ㅠㅠ 하지만 이 OOP를 활용하는 것이 중요하다는 것 알 수 있었다.[조재화]
* 오늘 알게 된 OOP의 특징 중 각 클래스를 묶는 캡슐이라는 개념....이것을 보니 프로그램 짰을때, 더 쉽게 고칠 수 있을 것 같네요.. --[문원명]
* 만년 달력을 통해서 선희와 함께 아티스트로 재 탄생.다시 태어난 기분이에요.[장창재]
* 말로만 OOP 설명들었을땐 정말 매력적이고 강력해서 OOP만 사용할 줄 알았는데 코딩하는 과정을 보니 너무 복잡한 것 같다. 많은 매서드를 사용하므로 매서드 명명에 유의해야겠다는 생각이 들었다. --황재선[aekae]
- 데블스캠프2003/다섯째날/후기 . . . . 9 matches
* 마지막날 시작전; 이제 마지막날 프로그램이 시행 될거다; 오늘도 많은것을 얻어가자.--[변준원]
* 마지막날.. 오목 정말 잼있고 적절한 시간에 다해서 마지막 시간은 겜을 즐길 수 있었다. 캠프 기간동안 많은 체험을 할 수 있어서 정말 정말 좋았고 캠프기간동안 잘 가르쳐준 선배님들에게 감사하다는 말을 하고 싶다. 그리고 앞으로도 컴퓨터실력향상에 항상 부지런 하도록 노력하자~~ 동기친구들 모두들 수고 많았고...다들 파이링~~~ ^^: [조재화]
* 오목 짜고 뿌듯한 건 진짜 짱이었고;; 스타와 포트가 너무너무 재미있었다=ㅂ= 모君의 컴퓨터가 마우스를 흔들지 않으면 다운이 되서; 계속 흔들고 있었던 게 너무 웃겼다 ㅋ; 늘었다고 생각되는 건..프로그램 실력 조금이랑..스타와 포트 실력 왕창-_- (콜록) [이진훈]
* 마지막날. 페어로 오목을 거의 짰다. 5일동안 힘든만큼 많은 것을 얻었다. 데블스캠프에서의 열정을 계속 이어갔으면 좋겠다. --- 황재선[aekae]
* 드뎌 드뎌 끝났다,,,5일동안 정말 폐인이었다,..낮엔 게임하고 밤엔 프로그래밍하고,,,,,,,,,,,,,,,,,,,,--희경
* 하루밖에 참가하지 못했지만 도움이 되었고 앞으로 더욱 열심히 해야겠다는 생각이 들었다. 집에 가서 이전 과제들을 해봐야겠다 --[노수민]
* 3일밖에 못나온게 조금 아쉬웠다. 개인의 즐거움을 위해 후배를 저버린것 같은 느낌이 약간은 든다. 내년에도 이런 기회가(절대로 없겠지만) 있다면 다 열심히, 성심껏 해주고 싶다. --[snowflower]
* 자 모두 열심히 하겠다는 말. 행동으로 보여주시기 바랍니다. --[인수]
* 끝까지 처음같이 못한점...앞으로는 없도록 노력해야겠다. -[Leonardong]
- 데블스캠프2003/둘째날/후기 . . . . 9 matches
* 오늘 한거 정말 장난이 아니다. 앞으로 도전은 계속된다. 모두들 열심하는 모습 보기 좋았네... 모두들 방학이 끝난다음에는 모두들 프로그램짜는데 자신감을 가질 수 있길 노력하자~~["조재화"]
* 오늘 잘해보리라는 나의 다짐은 저멀리 날아가 버렸다.. '''8명의 여왕'''이 내머리속에서 '''미로'''를 헤매며 '''랜덤워크'''를 하고 있다;;머리가 터지려 한다. 아니 아직 안 터진게 신기할 따름이다.. 아으.. 쓰댕앤 큐;; 당구나 치러 갈까;; 암튼 파이팅이다!! -- ps 나르동~ 또 김치 싸갖고 와라..ㅋㅋ --[변준원]
* TDD와 페어프로그래밍으로 상욱이랑 미로찾기를 만들면서 많은걸 깨달았다. 가장 중요한건 네이밍의 중요성! 이름을 이상하게 지어놓고 이상한걸 호출하다가 자꾸 이상하게 나와서, 나중에는 '미로를 무시하고 이동한다.' 라는 말까지 나왔었다.--; 그러면서 중간에 TDD를 잘못했구나 아직 멀었구나 덜 테스트했구나하면서 좌절을 했지만 이름을 고치고 나니 바로 해결이 되는걸 보면서.. 아.. 더불어 CSP는 아직도 이해가 잘 안간다. --인수
* 8퀸 문제를 실패하면서, 프로그램을 짤 때에는 먼저 확실한 알고리즘을 구축해 놓아야 한다고 생각했어요.. 알고리즘부터 틀리게 되면 나중에는 디버깅도 소용이 없다는 사실.. --[문원명]
- 데블스캠프2006/월요일/함수/문제풀이/윤영준 . . . . 9 matches
if(power>100){
else{
if(a()==1){
if(a()==2){
if(a()==3){
if(a()==4){
if(a()==5){
if(a()==6){
if(a()==7){
- 데블스캠프2009/월요일/연습문제/svn코드레이스/박준호 . . . . 9 matches
if( maxnum - minnum == 0)
if( (guess > maxnum) || (guess < minnum) )
else
if( number > guess)
else if(number < guess)
else
if(n%2 == 0)
else{
- 데블스캠프2010/일반리스트 . . . . 9 matches
if (tolower(first[i])<tolower(second[i])) return true;
else if (tolower(first[i])>tolower(second[i])) return false;
if (first.length()<second.length()) return true;
else return false;
for (it=mylist.begin(); it!=mylist.end(); ++it)
cout << endl;
for (it=mylist.begin(); it!=mylist.end(); ++it)
cout << endl;
- 데블스캠프2011/넷째날/루비/김준석 . . . . 9 matches
if a == b then
else if a> b then
else puts "쟤가 이김"
end
end
end
- 데블스캠프2011/다섯째날/HowToWriteCodeWell/권순의,김호동 . . . . 9 matches
if(i <= max && i >= min && inElevator ){
} else if (i < min){
} else if (i > max){
if(button) {
// 엘레베이터에 안탔으므로 이동이 안됨
// 안에서 엘레베이터를 타지만 최저층을 초과하는 경우
// 안에서 엘레베이터를 타지만 최고층을 초과하는 경우
- 레밍즈프로젝트/박진하 . . . . 9 matches
[레밍즈프로젝트]
[레밍즈프로젝트/이승한]
[레밍즈프로젝트/유주호]
int Append(const CArray& src);
#ifdef _DEBUG
#endif
if (ar.IsStoring())
else
- 마이포지셔닝 . . . . 9 matches
* 이책은 글로벌CEO 특강에서 스파이렉스 사코사의 박인순 사장님이 아주 아주 강력하게 추천해서 정현이와 공동 구매 해서 샀다. 아직 도서관에는 안 들어 왔는데 지금 우선 신청은 해놓은 상태다. 우선 전체적인 느낌은 보통의 성공학, 자기계발서는 어찌 좀 뜬구름 잡는듯한 내용도 많았는데 이책은 아주 현실적으로 접근하고 있다. 처세서, 성공학 같은 책중에서 이책이 가장 솔직하고 정확하게 그 길을 제시해주는거 같다. 저런 책에 관심이 있다면 이 책을 꼭 읽어 보는게 좋다. 누군가와 협력하고, 누군가의 장점을 알아볼수 있고, 좋은 아이디어를 알아볼수 있는 능력이 정말 핵심인거 같다. 그리고 혼자 잘나서 다 할수 있다는 생각을 가지면 절대 안되고, 자신이 올라탈 말이 있어야 한다. 그리고 2막은 없다는 이야기가 있는데 1막에서 성공하였다고 해서, 그 똑같은 일을 그 회사 나와서 다시 다른 회사 차려서 해서 성공하는 경우는 거의 없다. 그것은 자기 자신이 시기를 잘 만나서 성공한게 아니라 자기가 잘나서 성공한거라는것을 대중에게 보여주고자 하는 자아 때문인데, 그런 자아를 가지고서 다시 성공할 수도 없다. '수로부여'라고 자신이 한번 잘되었던 일이 있으면 계속 그런식으로 일을 하는것을 말하는 특성이 있는데, 두번째로 할때도 첫번째것이 성공하였다고 그런식으로 똑같이 해서 어떤 경쟁력도 생길수 없다.
* 이책에서는 자기 혼자서는 아무것도 할수 없다고 한다. 그리고 우리가 보통 믿고 있는것과 같이 아주 죽으라고 공부하고 일만해서 성공할 확률은 1%정도밖에 안된다고 한다. 확실히 맞는말 같다. 우리는 무조건 공부만 열심히 하면 될꺼라는 생각을 주입받았지만 그렇게 해서 성공하는건 정말 1%도 안될 정도로 힘들다고 본다. 뭐 어느정도 안정된 생활은 가능할지도 모르겠다.
- 미로찾기/최경현김상섭 . . . . 9 matches
if(abc[nowr-1][nowc-1] == 0)
if(abc[nowr][nowc-1] == 0)
if(abc[nowr+1][nowc-1] == 0)
if(abc[nowr-1][nowc] == 0)
case 5 :if(abc[nowr+1][nowc] == 0)
if(abc[nowr-1][nowc+1] == 0)
if(abc[nowr][nowc+1] == 0)
if(abc[nowr+1][nowc+1] == 0)
[미로찾기]
- 바람의딸걸어서지구3바퀴반 . . . . 9 matches
* 이책에서는 한비야의 세계여행을 재밌게 전해준다. 이책에서 인상깊은 구절은 킬리만자로 산을 올라갈때 천천히 자신의 속도로 꾸준히 올라간다면 누구나 올라갈 수 있다고 하는 구절이다. 인생도 마찬가지로 누가 어떤 속도로 가던지 자신의 속도를 알고 자신의 속도로 꾸준히 나간다면 못 이룰게 없다. 또 얻은 교훈은 세상은 사람이 만들어낸 각종 규칙, 규범들로 돌아가지만 말만 잘하면 얻고자 하는것을 얻을 수 있다. 결국 그런 규칙, 규범도 사람이 만든 것들이기에.. 그리고 반드시 환경이 편하고 몸도 편해야 행복한건 아니란것도 느꼈다. 오히려 더 행복을 방해하는 조건으로 작용할 수도 있다. 환경이 아주 불편하고 바빠도 사람은 아주 행복할 수 있고, 오히려 행복하기에 더 좋은 조건일 수 도 있다. 오지일 수록 더 행복해 보이는 이유도 이러한 이유 때문일지도 모르겠다. 행복은 내 안에 있다. 그리고 세계에는 지금의 나의 환경과는 비교할 수 없을 만큼 불편하고 좋지 못한 환경에서도 행복하게 사는 사람이 많다는걸 느끼고 지금의 생활에 감사하자는 생각을 했다. 그리고 한비야가 어떤 외국인과 만나서 같이 등산하는데 그 외국인 행동이 꼴볼견이고 싫어할 행동만 했다고 그런다. 그런데 알고보니 그 외국인은 마약에 중독되었다가 마약을 끊고 나서 지독한 우울증에 시달리고 있다고 한다. 그 말을 듣고 쉽게 다른 사람을 판단해서는 안되겠다는 생각이 들었다. 역시 사람 사는 일에는 원인이 있고 결과가 있다. 또 무슨일을 하던지 목표를 잡고 나서 세부적인 계획을 세워서 차근 차근 해 나간다면 아무리 큰 목표라도 이룰 수 있겠다는 생각도 들었다. 사람은 계획에 있어서는 치밀해야겠단 생각이 들었고, 꾸준한 계획들의 실천이 있어야만 원하는 성과를 이룰수 있다는걸 느꼈다.
- 벡터/김태훈 . . . . 9 matches
sort(stre.begin(), stre.end(),compare);
for(vector<student>::iterator i = stre.begin(); i!=stre.end() ;i++)
cout << i->name <<"\t"<<i->score<< endl;
cout<<"-------------------------"<<endl;
sort(stre.begin(), stre.end(),compare2 );
for(i = stre.begin();i<stre.end();i++)
cout << i->name <<"\t"<<i->score<< endl;
for(vector<student>::iterator i = stre.begin();!(i=stre.end());i++)
cout << (*i).name << endl;
- 비밀키/황재선 . . . . 9 matches
ifstream fin("source.txt");
cout << "원본값" << endl;
if (fin.eof())
cout << endl;
cout << "암호화" << endl;
cout << endl;
fout << endl;
cout << "복호화" << endl;
cout << endl;
- 알고리즘8주숙제 . . . . 9 matches
==== 1. Friendly Coins ====
Optimal Binary Tree는 Dynamic Programming 기법으로 풀리는 유명한 문제입니다. 그누스 형님 방법에 의하면 O(n<sup>2</sup>)으로 풀립니다. 그러나 우리는 이보다 점근적으로 더 빠른 휴리스틱 버전을 작성해야 합니다.
다음과 같이 input 이 들어온다고 가정합시다. 여기서 맨 앞 하나의 정수는 노드의 수를 나타냅니다. 그 밑으로 노드에 대한 정보가 입력됩니다. 노드의 처음은 key 값이고, 그 다음 값은 확률(확률은 1이상의 정수로 임의로 입력) 입니다. 하나의 노드를 검색했을때 실패하는 경우는 없다고 가정합시다. 최적의 평균탐색시간을 가지는 이진탐색트리를 구현하고 다음을 출력하시오.
샘플 Output 에서는 beta를 root 값으로 본 것임. 여러 풀이가 나올 수 있음. 이 페이지의 하위 페이지에 코드와 설명을 올려주세요.
- 압축알고리즘/수진&재동 . . . . 9 matches
if(isdigit(c) != 0){
if (c == '-')
int diff = atoi(&c);
cout << (char)((int)standard - diff);
else
int diff = atoi(&c);
cout << (char)((int)standard + diff);
else
cout << endl;
- 여섯색깔모자 . . . . 9 matches
Green - 초록은 풀, 채소의 색으로 풍성하고 풍부한 성장을 나타냅니다. 따라서 녹색 모자는 창조성과 새로운 아이디어를 의미합니다.
수민형에게 이야기 듣고 빌리게 된 책. 예전과 다르게 요즘은 이런책에도 손이 가지더 군요. 이것과 비슷한 다른 책들은 없나요?? '토론'이라는 키워드로 접근하면 무리가 없을까요?? - [이승한]
평소에 의견을 교환 하다가 보면 어느새 자신의 자존심을 지키려는 논쟁 으로 변하게 되는 경우가 많다. 이 논쟁이란게 시간은 시간대로 잡아 먹고, 각자에게 한가지 생각에만 편향되게 하고(자신이 주장하는 의견), 그 편향된 생각을 뒷받침 하고자 하는 생각들만 하게 만드는 아주 좋지 못한 결과에 이르게 되는 경우가 많다. 시간은 시간대로 엄청 잡아 먹고... 이에 대해서 여섯 색깔 모자의 방법은 굉장히 괜찮을거 같다. 나중에 함 써먹어 봐야 겠다. 인상 깊은 부분은 회의를 통해서 지도를 만들어 나간후 나중에 선택한다는 내용이다. 보통 회의가 흐르기 쉬운 방향은 각자 주장을 하고 그에 뒷받침 되는것을 말하는 식인데, 이것보다 회의를 통해서 같이 머리를 맞대서 지도를 만든후 나중에 그 지도를 보고 같이 올바른 길로 가는 이책의 방식이 여러사람의 지혜를 모을수 있는 더 좋은 방법이라고 생각한다. 이 책도 PowerReading 처럼 잘 활용 해보느냐 해보지 않느냐에 따라서 엄청난 가치를 자신에게 줄 수 도 있고, 아무런 가치도 주지 않을 수 있다고 생각한다. - [상협]
- 열정적인리더패턴 . . . . 9 matches
스터디 그룹은 지속적인 에너지(EnduringEnergyPattern)를 갖고 안전한 장소([안전한장소패턴])가 되기 위한 리더십이 필요하다. 이 패턴은 이런 특성을 만들기 위해 리더가 해야할 일을 설명한다.
그러므로,
'''열정을 갖고 솔선수범해서 스터디 그룹을 이끌어라. 사람들이 원하는 곳으로 만들고, 더 큰 커뮤니티에 참석하도록 초대하라. 자극이 되는 이벤트, 가상 공간 상에서의 대화로 멤버들에게 힘을 주고, 멤버들의 아이디어를 가까이서 수렴함으로써 지속적으로 그룹을 발전시킬 방법을 모색하라.'''
때로는 다양한 사유로 인해 리더가 그룹을 이끌지 못할 수도 있다. 이게 짧은 기간이면 대체로 문제가 되지 않는다. 하지만 어느 정도 기간 동안 그룹의 리더가 공석이 된다면, 누군가가 나서서 그 역할을 맡아야 한다. 일반적으로 이미 그룹에 대해 열정적인, 적극적 참여자(ActiveParticipantPattern)가 좋은 선택이다. 그러나 언제나 최선은 역할을 맡겠다는 지원자이다.
- 위키설명회 . . . . 9 matches
== 위키와 제로페이지 ==
* 로그인하기
* 새로운 유저 만들기
* 로그인과 페이지 만들기를 하면서 UserPreferences가 이상해지고, [페이지이름]의 규칙을 어긴 페이지가 많이 만들어졌습니다.--[Leonardong]
* TopDown BottomUp 두가지 방법으로 페이지를 만들어 나가면서 각각의 의의와 프로그래밍, 사고 방식의 상관관계를 이야기 해 본다.
* Rename, [문서구조조정]을 통해서 [Refactoring]을 경험하고, 이것이 프로그래밍의 영역에서 어떠한 관점을 가지고 있는지 이야기 해 본다.
* 현재 위키가 사용되는 곳들을 예시하고 (한국 Gnome 사용자 모임, 데비안 사용자 모임, kldp ) 일정 주제에 대한 자료 찾거나 서핑의 시간 (20~60분) 가진후 서로다른 쓰임새에 대하여 토의해 본다.
* [위키설명회] 도중에 난감했던 한 가지는, 파란아이를 통해 이전 문서의 원문을 볼 수 없어서 페이지 내용을 복구하는 방법을 저조차 모르고 있다는 사실을 안 것입니다. 원래 파란아이로 원문을 볼 수 없었나요? --[Leonardong]
- 음계연습하기 . . . . 9 matches
피터 드러커의 '''이노베이터의 조건''' 에서
세상에 음계(etude-연습곡)를 연습하는 것보다 더 지루한 일은 없다. 그러나 [[HTML(<FONT COLOR=BLUE>위대한 연주자일수록 하루도 빠짐없이 성실하게 음계를 연습한다.</FONT>)]] 마찬가지로 [[HTML(<FONT COLOR=BLUE>유능한 외과 의사일수록 한층 더 성실하게 봉합술을 연마한다.</FONT>)]]
피아니스트는 연주 능력 향상에 크게 도움이 될 것 같지 않은 음계를 여러 달 동안 계속 연습하기도 한다. 그러나 그 연습이 피아니스트로 하여금 원하는 음악적 성취를 이룰 수 있도록 해준다. 외과 의사는 능숙한 수술 실력 향상에 크게 도움이 될 것 같지 않은 작은 손놀림을 익히기 위해 여러달 동안 계속해서 봉합용 실과 씨름을 한다. 외과 의사는 그 꾸준한 연습 덕분에 수술을 빠르고 정확하게 하게 되고, 그 결과 소중한 인명을 구하기도 한다. [[HTML(<FONT COLOR=RED>무언가를 성취하는 것은 반복적인 연습에 의해서만 가능하다. </FONT>)]]
프로그래밍도 이러한 음계(etude-연습곡)연습을 꾸준히 해서 장인(Craftsman)으로 발전해 나가는 길이 있지 않을까?
피아노 배울 때는 '하농'과 '체르니' 연습이 음계연습이었습니다. 프로그래밍에 있어 음계연습이 어떤 것이 될 수 있을지 전혀 감이 안 잡힙니다. 누구 자신만의 음계연습 알려주실 분 없나요? :) --[창섭]
맞습니다. 제가 통기타 동아리에서 연습할 때도 선후배간에 내려오는 연습법이 바로 거울을 보며 연습하는 것과 녹음하는 것이었습니다. 이는 기타, 노래 모두에게 해당하는 것으로 자신을 객관적으로 살펴볼 수 있는 방법이었습니다. --[창섭]
- 이연주/공부방 . . . . 9 matches
2 ∼ 9 까지의 구구단을 한 화면에 출력하는 프로그램을 작성하시오.
줄이 똑바로 서있는 구구단 결과물을 원했는데;;=_=;;;;
* 잡다한 궁금증 : %d 랑 %2d 차이는 눈으로 확인했습니다만 왜 이렇게 되는거에요?
-뭔가 도움이 안될지도 모르지만;; %d는 그냥 변수에 저장되 있는 숫자의 자릿수를 그대로 받아서 출력하지만 %숫자d 같은경우는 안의 숫자만큼의 공간을 우선확보하고 변수안의 수를 읽어드리기 때문으로 알고있심 =0=;; 변수의 자리수가 안의 숫자를 오버해 버릴때의 문제는 나도 모르지만;; %.2f 같은경우는 소수점을 2자리까지만 표시를 하는게지 -_-!!! -[정수민]
포인터로 배열들의 요소를 지적하고 배열간의 자료교환을 하는 프로그램을 작성하시오.
- 이영호/끄적끄적 . . . . 9 matches
다른 사람과 비교하니 구조가 너무 다르군... 나만 링크드 리스트로 짰나...
조금만 더 짜면 될테지만 미완성 부분 완성시켜도 메모장에서 소스 짜버려 제대로 돌아갈지도 의문이고...
그래서 나온 버그 잡을바에 새로 코딩하는게 나을테고 !@#!$$@#^%!^$!%
if(argc != 2)
if((fp=fopen(argv[1], "ra") == NULL)
if(i==1 && j ==1) continue;
// 52개의 순서 초기화. (따로 밖으로 내는게 편하다는 생각이 든다.)
// File에서 array로 바뀐 것을 읽어와 함수를 수행 하는 것을 count-1번 반복한다.
- 장용운 . . . . 9 matches
=== 프로필 ===
* 제로페이지(ZeroPage)
* 제로페이지 UDK스터디
* 클러그 프로젝트팀 TeamBR
* 카스파로프(Kasparov, 회장)
블로그 : http://neostage.tistory.com/
*API랑 PHP 배우면 좋음? 프로그래밍하는데 둘러보니까 이거 두개 코드 무지 짧은데 뭔가 대단하던데 ;;;; - [고한종]
*ㄴ API는 코드 완전길어 번거로운 녀석이지 - [장용운]
* 롤에서 나와 학교로 돌아와다오.. -[김태진]
- 정규표현식/스터디/문자집합으로찾기 . . . . 9 matches
* {{{다음과 같이 [] 는 리스트를 나열해주는 것으로 .과 같이 한글자만을 지원한다 여러개의 []리스트를 사용하고싶다면 '*'(와일드카드)를 붙이거나 범위를 지정해주는 {}를 사용하여 []* 이나 []{4,4}(4개 찾기)로 이용할수 있다.}}}
* {{{또한 다음과 같이 [0-9] = [0123456789]와 같이 사용하며 문자 또한 지원한다. 축약법은 하이픈(-)을 붙이는 방법으로 [A-Z][a-z] 이방법은 아스키 코드 방식을 따르며 축약시킬 경우 [a-A]는 역순이므로 되지 않는다. 또한 리스트([])안에서는 또다른 리스트([])와 역슬래시(\), 하이픈(-)을 제외하고는 모두 일반 문자와 같이 인식하므로 특수문자 %&^*$ 를 단순히 리스트 안에 나열하는것으로 검색할수 있다 리스트 안에서 리스트([])를 검색하는 방법은 역슬래시를 붙여 이스케이프를 시켜야한다.}}}
* ex ) [\\\[\]%\-&^*$a-zA-Z0-9]{{{[A-z][a-f]}}} 로 찾을수 있다.
[정규표현식/스터디/문자집합으로찾기/예제]
- 정모/2005.1.3 . . . . 9 matches
[겨울과프로젝트] 에 대해서 간단하게 이야기
* 김정욱 선배님(맞나요??) 이 엠베디드 관련하여 병특을 하셧다고 하셧음. 제의 해보는 걸로.
* 각각의 프로젝트의 진척상황에 대하여 이야기를 들었으며, JAVA는 수민이형의 지각으로 약간의 차질.( -_-^ 늦지마요 )
* 프로젝트 관련하여 조별로 나뉘어 이야기를 하였습니다.
그외 CS이외의 분야에 대해서 토론이나 공부하는 것에 대한 가벼운 제안이 회식자리에서 있었습니다. 충분한 이야기가 오간다면 다음 정모에 큰 주제로 올라올수 있을것 같습니다.
말로 하면 잊기 쉬우니까 오늘 느낀 점을 여기 적을게. 오늘 정모 준비해 온 부분 시간 질질 끌지 않고 빠르게 진행해서 지루하지 않았어. 아쉬운 점은 준비해 온 순서를 간단하게라도 모두에게 알려주지 않았다는 점이야. 오늘 왜 모였는지, 회의 목적이 무엇인지 다들 몰라서 생각을 잘 모을 수 없었다고 봐. 각자 이야기 하는 건 그렇다 치더라도 말이지. 앞에 있지 않으니까 아쉬운 점이 칭찬할 점보다 많이 보인다. 미안하군. 힘내라고~!
[정모], [겨울과프로젝트]
- 정모/2011.10.12 . . . . 9 matches
== 스터디/프로젝트 공유 ==
* Dynamic Programming으로 문제를 풀어보려 했으나 진경이를 제외하고는 accept시키지 못하여 재귀문으로 구현하는 것부터 해보기로 하였습니다.
* ZeroPage와는 무관하지만 프로젝트 제안서를 이찬근 교수님께 제출하여 공간을 사용할 수 있습니다.
* 함께 사용하는 공간이니만큼 서로 배려하고 깨끗하게 사용합시다.
* 후기쓰라던 김태진은 왜 먼저 쓰지 아니 하였는가, 오늘 정모 유쾌했구요. 축구는 하기 싫어옄. 기획단은 어지간해선 하려는 성격인데 컴공축제 기획 끝난게 그제인데 바로 연이어서 하는건 심히 정신적 부담이라.... 근데 성준이 하길래 놀람. - [고한종]
* 오늘 오신 유상민 선배님께서 ZP의 과거사를 이야기 해 주심과 고대 유물을 전수해주셔서.. 갑작스러웠지만 뜻 깊은 자리였습니다. 그렇게 (소닉 20주년은 알고 있었는데 -_-a) 까먹고 있었던 ZeroPage 20주년 행사를 하게 되어 기쁘네요. 이 행사 이름도 잘 정한거 같아 좋았고요,, 음.. 오늘 OMS는 어디선가 많이 들었던 내용들이 종합적으로 나왔네요 ㅎㅎ 다만 어디선가 들었던 내용들이 좀 더 명확하게 되면서 그냥 녹는줄만 알았던 회충들이 소화가 된다는 사실에........... 음... 여하튼 재미있었습니다. - [권순의]
* 네, 중요한 일이 있으니 가급적 참여하라는 말에 뭘까 의아했는데 선배님이 오셨었군요! 전 이때까지 04밑의 이야기는 거의 들은적이 없었는데 좀 더 많은 걸 알게되어서 좋았던거 같네요. 폴리곤/데블스 였다니.... 11월말에 할 예정이니 잘 준비해서 성공적으로 했으면 좋겠어요. 뭐랄까, 20주년이라는 큰 행사라서 12월에 할 행사까지 다 모을거같은 행사의 총 집합체! 기대됩니다. -[김태진]
- 정모/2011.5.23 . . . . 9 matches
* 저는 불참자로 보는게 맞을거 같아서 제 이름 뺐습니다. - [윤종하]
* 참가비가 만원인데 오늘 내로 등록하면 오천원이예요.
1. 겨울방학때도 그렇고 지금도 [JavaScript/2011년스터디]를 하고있어서 이번 OMS를 더 재미있게 들었습니다. 아직 잘 아는 것은 아니지만 스터디를 하다보니 ScriptLanguage가 생각보다 매력적인 면이 많더라구요. 다른 ZeroPager들도 이번 OMS를 계기로 ScriptLanguage에 관심가질 수 있다면 좋겠어요.
* 먼저 자바스크립트 스터디에 관심이 생겼어요(진경이도 어제 뭐더라.. 어떤 언어가 알고리듬이 아주 달라서 배울만한 가치가 있다고 하더라구요. 같은 맥락이지 싶어요). 내일 몇시인지 알아낸 다음에 어떻게 진행되고 있는지 살펴보고, 적합하다 판단되면 저도 동참해야겠어요. 또 세미나를 보면서, 와.. 저런걸 여기서도 구현하는구나.. 라는 생각이 들었어요. TrustModel과 비슷한걸 만들고자 하는 사람들을 아는데, 저런식으로 아예 수치화 시키는게 역시 효율적인가.. 라는 생각도 들었구요, 후에 연구실(다른데인가?)에 들어간다면 저런걸 하는걸 보게/혹은 후에는 직접 하게될 수 있다는 사실에 나름 다시 감탄(?)했어요. ..아니면 빨리 이 길을 뜨는게 답인가요?ㅋㅋㅋㅋ 아, 또 성현이형이 동아리에서 프로젝트같은거 하신다고 하셨는데, 어떤걸 누구와 어떻게하였는지(그러니까 그 전반)도 한번 들어볼 기회가 있으면 좋겠어요. 여기서 잘 복붙해서 세미나 글에도 후기를 올려야겠네요...ㅎㅎ -[김태진]
* 지난 정모때 사람이 많았어서 상대적 박탈감(?)이 느껴지는 정모였습니다. 기말이 다가오니 바쁘신지 안오신 분들도 많았고ㅜㅜ 내 OMS가 있던 날인데.. 흙흙 그래도 매번 참석하는 11이 있어 기특합니다. 사람은 빈곤했지만 내용은 학술적인 내용으로 풍요로웠네요. 세미나도 하고. 연구실에서 무슨일을 하고있는지 알수 있는 좋은 기회였습니다. 연구실도 트렌드를 따르는군요ㅋㅋ 친구추천이랑 약간 비슷한거 같아요. 나의 OMS 잘 들으셨는지ㅠㅠ 아 스크립트 소개를 위한 스크립트도 썼는데 눈이 침침해서 잘 안보여서 횡설수설했네.. 자료실에 ppt랑 스크립트 같이 올려뒀어요 비교해 보세요.. 컴파일 언어가 전부인줄 알았다면 다른 종류의 언어도 익혀보세요! 전 루비와 얼랭을 해볼 생각입니다ㅋㅋ 구루가 되어보아요:> - [서지혜]
* 아아 일주일 뒤에 후기를 쓰는 군요. 요즘 이런것에 신경을 덜쓰는것 같아요. 홍기형의 세미나 잘 봤습니다. 스크립트에 관한 OMS도 잘 봤습니다. 스크립트언어는 java말고는 아무것도 몰랐는데.. 그래서 자바==스크립트 라고 생각한적도 있었는데 좋은 지식을 얻게 되어 기쁩니다. 커스 공연덕에 1시간으로 짧게 끝난 정모라 조금 아쉽습니다. 너무 서둘러서 끝난 기분이 드네요. - [고한종]
* 자바와 자바스크립트는 서로 다른 언어입니다. 자바는 스크립트 언어가 아니예요. - [김수경]
- 정모/2012.4.2 . . . . 9 matches
* OMS는 음악 만들기였는데 뮤직쉐이크 어디서 들어본 거 같긴 해요. 그런데 써본 적은 없고… 그런 프로그램으로 음악 만들기 힘들지 않나 싶었는데 생각보다 해볼만 한 것 같습니다. 시간나면 써봐야겠어요.
* 회고하면서 friendship에 쓸 내용도 함께 쓰는 아이디어 좋은 것 같아요. 회장 혼자 일하는 거 보다 나눠서 쓰는게 나으니까 ㅋㅋ 써달라고 말만 하면 보통 안 쓸텐데 이렇게 정모에서 쓰게하는 건 좋은 방법이네요.
* 사실 매번 꼭 빠르게 끝내겠어!! 라고 하는거보단, 3월 한달 내내 길었으니, 환기하는 입장에서 빠른템포로 해보기로 한거였습니다. 다른부분은 몰라도, 제가 어떤걸 공지하는 시간은 줄여야겠다는 생각이 종종 들곤 하더라구요. 그래서 해본거에요. ㅎㅎ -[김태진]
* 전반적으로 정모가 빠르게 진행되서 좋네요. 사실 기존에는 괜시리 길어지는 느낌이 많이 들었는데 말이죠. OMS.. 그런게 있는줄은 처음 알았네요. 좀 더 다양하게 만들면 재밌을 거 같기도...? 새싹.. 드디어 저희반 아해들이 멘붕하기 시작했습니다. 애도.. 쩝.. 그래도 일단 진행 해 보고 있습니다. 참여율이 그래도 좋네요. 그리고 회고는 뭐 이번 달엔.. 생각해 보면 특이했던 듯... 싶내요?? 다른 것 보다 영어로 진행이 되었어서 그런건지 몰라도.. - [권순의]
* 다들 말씀하시는 대로 빠른 진행이 돋보였네요. 그리고 빈자리들도 눈에 많이 띄었습니다. 지난주까지의 북적거림이 거짓말같네요 -_-;;; 3월 회고를 하면서 새삼 돌아보니 3월에는 비교적 바쁘게 살지 않았나 싶습니다 ㅠㅠ 조금 더 여유가 있었으면 좋겠어요. - [서민관]
* 신나는군요 드디어 간만에 OMS를 잡게 되었습니다. 폭풍같은 1주에도 간만에 해보아야 할일이 생겼네요. 정모는 짧아지니까 새로운 감흥입니다. 어. 빨라졌네?? 이정도? 컨텐츠가 짧아진 대신 프리토킹 시간을 조금 가져보는것이 좋을것 같습니다. - [김준석]
- 정모/2012.7.11 . . . . 9 matches
* 계곡 : 바다 = 9 : 3. 계곡으로 결정.
* 대상 : 중앙대 컴퓨터공학부 재학생으로 구성된 IT 동아리
* 지원 조건 : IT 동아리 활동 내역서 작성해서 제출
== 스터디/프로젝트 ==
- 첫주차에는 문서 작성, 삭제 등을 목표로 삼아서 hibernate 등을 이용할 예정.
* 작은자바이야기 - 매주 진행을 할 때 어떤 코드를 기준으로 진행을 할지 고려해 봐야 함.
- 안드로이드에서는 JavaCV를 import해서 사용한다.
- 안드로이드는 하드웨어 제어에 대해 굉장히 제한이 많아서 이용이 힘들었다.
* 후기가 좀 늦었네요. OMS로 Lisp 쪽에서의 객체 시스템에 대해서 다뤄 봤는데 들을만 했는지 어떤지 모르겠네요 ;;; 데블스 캠프 때도 그렇지만 세미나는 항상 준비하는 사람이 제일 많이 배우는 것 같군요. 그 외에도 서울 어코드 사업이나 MT 준비 등 이래저래 할 이야기가 많은 정모였습니다. 근데 서울 어코드는 어떻게 할 건지 좀 궁금하군요. 또 서류 써야 하나... - [서민관]
- 조현태/프로젝트 . . . . 9 matches
== 조현태/프로젝트 ==
=== 완료된 프로젝트 ===
* 제로위키! - 제로페이지의 훌륭한 역사의 발자취(?)를 남길만한 작품..ㅎㅎ
- [제로Wiki]
* php블로그 만들기 - 완성될 수 있을까??ㅎㅎ
* 땅콩이 만들기 - 의외의 인공지능으로 높은 개그수준을....;;;;;;;;
- [땅콩이보육프로젝트2005]
=== 진행중인 프로젝트 ===
- 지금그때2004 . . . . 9 matches
|| wiki:NowThen2004/패널토의 ||
|| wiki:NowThen2004/OST종합 = wiki:NowThen2004/복수전공 + wiki:NowThen2004/시간관리 + ? ||
wiki:NowThen2004/지금그때2004 에서 활동을 정리하세요.
wiki:NowThen2004/지금그때2004/후기 에서 후기를 기록해 주세요.
정말 죄송한데요, 목요일부터 시작된 감기로 지금 4월 5일까지 목소리가 정상으로 돌아오고 있지 않네요. 지금은 목이 쉬었습니다. 어쩌면 좋을까요? --[Leonardong]
* [지금그때2004]를 미루려 합니다. 행사를 하려면 제대로 준비해야겠다는 절박함을 느꼈기에 말이죠. --[Leonardong]
* 04 참여가 예상 외로 적군요. 홍보에 대해서 다시 생각해봐야 할 듯 합니다.- [Leonardong]
졸업한, 혹은 아직 졸업하지 않은 선배들 몇 명을 패널로 앞에 앉게 합니다. 그리고 사회자 한명이 질문을 합니다. 토크쇼처럼 말이죠. 중간에 "방청객"의 질문을 받을 수도 있습니다. 패널은 각자 자신의 생각을 말합니다.
Berkeley Visionaries Prognosticate About the Future http://netshow01.eecs.berkeley.edu/CS-day-004/Berkeley_Visionaries.wmv 이걸 보면 대충 감이 올겁니다. 이 동영상의 경우 뛰어난 패널진에 비해 진행자가 그리 좋은 질문을 하지 못해서 아쉽기는 합니다. 좋은 질문을 하려면 서점이나 도서관에서 [질문의 힘]이라는 책을 읽어보세요. 그리고 04학번 눈높이의 질문에 대한 고학번들의 생각을 들어보는 것도 중요하지만 04학번이 전혀 생각 못하는 질문을 대신 물어주는 것도 중요합니다. 고객과 요구사항을 뽑는 것과 비슷할 수 있겠죠. "그들이 원하는 것"은 물론 "그들이 필요로 하는 것"(주로, 나중에 그들이 원할만한 것)을 이야기해야 하니까요 -- 또 종종 그들은 자신이 뭘 원하는지 모르는 경우도 많습니다.
- 지금그때2005/자료집 . . . . 9 matches
지금그때 행사는 03년도 부터 시작 되었고 열광적인 반응으로 현재까지 이어지고 있습니다.
기록되지 않은것은 기억되지 않는다 라는 말이 있습니다. 이곳에서 남은 소중한 경험들은 그 자료집에 담아가셔서 자신의 것으로 남기시기 바랍니다.
* 개인 질문권(아이템) - 정말 질문하고 싶은 경우 개인당 1회로 질문할 수 있는 기회를 드립니다.
* 질문 등록 - 메뉴판에 없는 질문이 하고 싶은 경우 포스트 잇에 적어주세요. 질문이 적힌 포스트 잇은 웨이터가 수거해 드립니다. 새로운 질문이 등록된 경우 주사위를 굴리기 전 웨이터가 모두에게 질문을 알려주고, 원하는 사람은 질문을 자기의 메뉴판에 추가하세요.
* 입막음 - 한 질문에 대해 7분이 넘는 대답을 하는 경우 매니저에게 중지 당할 수 있습니다. 다음 질문을 위해 양해해 주세요.
프로그래밍 언어가 컴퓨터공학을 공부하는데 얼마나 중요한가? 다른 중요한것은 무엇인가?
- 코드레이스출동/후기 . . . . 9 matches
* 진행자(해설자)의 말을 귀담아 듣지 않았다; 에러 리포트 보는 법을 몰랐고 전반적으로 어떻게 돌아가는지 관심없이 오로지 돌아가지 않는 코드에만 집중했다.
* 첫 요구조건이 나왔을때 페어로 진행하지 못했다. 초반이라 하나의 견고한 설계가 나와야 한다고 생각해서 였다. 하지만 빨리빨리 하자는 생각에 간단한 설계를 하여 나중에 힘들었다. 특히 파싱 처리를 쉽게 해주는 코드를 작성했더라면.. 고생하지 않았을 것이다.
* 코드에 집중하느라 해설에 집중하지 못한 점과 요구사항 구현 실패로 중반 이후 긴장감있게 진행하지 못한 점이 아쉽다. 제대로 되지는 않았지만 팀원들과 의사소통하며 프로그래밍 하는 것은 즐거웠다.
* 리눅스 콘솔 명령어로 뭔가 자유자재로 컨트롤 하는 사람들이 정말 부러웠다..
- 파스칼삼각형/sksmsvlxk . . . . 9 matches
cpp로 저장하는 건 없는 모양...
각 숫자의 배열을 이딴 식으로 만드는게 포인트.
맨 윗줄 가운데와 맨 마지막줄 양 끝을 1로 초기화하고
나머지는 일반 파스칼의 삼각형 구하는 것처럼 다 산수로
//그러나 불필요한 공간을 좀 많이 필요로 하는...
//0으로 모두 초기화.
if(arr[i][j] == 0) {
cout << endl;
//new로 잡아준 메모리를 다시 반환.
- 프로젝트 . . . . 9 matches
* [수충프로젝트]
* [SmallTalk]다 프로젝트. Feat. [톱아보다], 매주 금요일 10시 모임. [SmalltalkBestPracticePatterns]를 공부하면서 [SBPPSummary]페이지의 완성과, 자판기프로그램 제작이 목표.
* 웹커뮤니티 만들기 프로젝트(외부)
* (V) [http://aekae.ce.ro SE수업 프로젝트]
* [데블스캠프2004] - 실제로 많이 배우는 사람은 2학년 일지도 모르겠다.
* [몸짱프로젝트] - 2004년 6월 18일 종료
* 자바 텀 프로젝트 - 2004년 6월 3일 종료
* [실시간멀티플레이어게임프로젝트] - 2003년 10/4일 종료
- 호너의법칙/조현태 . . . . 9 matches
그냥 파일로 출력할까 하다가, 어떻게든 반복을 피해보고자 버퍼를 넣었더니 더 복잡해졌다.
if (10<=i)
if (10<=input[i])
if (INPUT_MAX-1==number)
else{
프로그램 돌리면 에러가 뜹니다.
register int i를 여러번 쓴 것은 메모리 낭비를 적게하려는 생각이었습니다. 그냥 메모리도 아니고 레지스터 메모리를 프로그램 시작부터 끝까지 잡고있을 필요는 없을것 같았답니다.^^
그리고 제가 사용한 컴파일러(비주얼 .NET) 은 저에게 말하면 미소녀는 무료, 일반인은 밥 한끼, 미소년은 무한끼에 FTP나 HTTP로 제공해드리고 있습니다.^^
참고로 올려진 소스들은 모두 정상적인 작동 테스트를 거친 뒤였습니다.^^ - [조현태]
- 05학번만의C++Study/숙제제출1/윤정훈 . . . . 8 matches
using std::endl;
cout << "섭씨온도를 화씨온도로 바꿔주는 프로그램 입니다. \n섭씨온도를 입력해주세요" << endl;
cout << " 변환된 화씨온도는 " << Ftemp << "입니다." << endl;
* 섭씨 온도를 전달인자로 전달받아 화씨 온도로 환산하여 리턴하는 사용자 정의 함수를 main() 함수가 호출하는 프로그램을 작성하시오. --[최경현]
- 2005리눅스프로젝트<설치> . . . . 8 matches
= 2005리눅스 프로젝트 =
*VMware-workstation-5 이란 가상 컴퓨터 프로그램입니다. 윈도우에서 VM으로 여러 윈도우를 설치 할수가 있습니다.(컴터사양이 딸리시는분은 느릴것입니다.)
* 데비안을 사용할려고 했지만 경험부족 때문에 X-WINDOW를 설치를 못해서 다른 버전중에 레드핫 계열인 Fedora core4를 선택했습니다. 레드핫,데비안,Fedora 설치 해서 이 버전이 제일 갠찮은 것같아서 이걸로 사용하기로 결정을 했습니다.
* 데비안 밀었다가 다시 설치하고 싶은데.. 그나저나 이번주 월요일은 스터디 쉬는거지?? 학교도 안가는데..그렇담 여유가 좀 있군... 아님 낭패..ㅋㅋ [[BR]]그리고 질문!! Fedora로 통일해야하는거야?? 아님 Fedora 를 중심으로 돈다는건가? ...<< 그게 그말인가?? 요즘언어의 장벽을 느끼는 형노.;;;;;; [(laciel)형노]
* 일단은 통일을 하기로 했는데 머 데비안 사용할줄 알면 해도되궁... 아 이번주는 수요일4교시에 스터디있어용....[(shusheng)수생]
- 2ndPCinCAUCSE/ProblemA . . . . 8 matches
같은 길이의 성냥개비가 여러 개 주어져 있다. 이것들을 평면에 늘어놓아서 삼각형을 만들려고 한다. 삼각형의 한 변은 여러 개의 성냥개비를 직선으로 이어서 만들 수 있지만, 성냥개비를 꺾거나 잘라서 변의 한 부분을 만들 수는 없다. 성냥개비의 개수가 주어졌을 때, 이들 성냥개비를 사용하여 만들 수 있는 서로 다른 삼각형의 개수를 구하는 프로그램을 작성하시오. 예를 들어서 9개의 성냥개비로 만들 수 있는 서로 다른 삼각형은 3가지이다.
(2) 삼각형을 한 개도 만들 수 없으면 0을 출력한다. 예를 들어서, 주어진 성냥개비의 개수가1, 2, 또는 4인 경우에는 삼각형을 한 개도 만들수 없다.
(3) 합동인 삼각형들은 같은 삼각형으로 본다.
출력은 표준 출력이다. 출력은 T줄로 이뤄진다. 각 테스트 케이스에 대해서 삼각형의 개수를 출력한다. T개의 테스트 케이스를 모두 맞혀야 이 문제를 맞힌 것이다.
- 2학기파이선스터디 . . . . 8 matches
* 객체를 보낼 수 없는데 어떤 방식으로 정보를 보낼까. - 재선
[2학기파이선스터디/if문, for문, while문, 수치형]
[실시간멀티플레이어게임프로젝트] 참여로 쉬는 기간.
=== 11월 10일! 새로운 시작~! ===
[2학기파이선스터디/서버&클라이언트접속프로그램]
[실시간멀티플레이어게임프로젝트]
[프로젝트분류]
- 5인용C++스터디/클래스상속 . . . . 8 matches
객체지향 프로그래밍의 핵심적인 개념 가운데 하나.
기존의 클래스 위에서 새로운 클래스를 생성할 수 있는 능력을 가르킨다.
cout<<endl<<"age : "<<cho.get_age();
cout<<endl<<"age : "<<blank.get_age();
cout<<endl;
cout<<endl<<"age : "<<park.get_age();
cout<<endl<<"salary : "<<park.get_salary();
cout<<endl;
- AnEasyProblem/김태진 . . . . 8 matches
* 비트맵연산을 적당히 써서 했습니다. 1의 갯수를 for문으로 구하고, 자신보다 큰 숫자가 1의갯수가 처음숫자와 같을때까지 1씩 늘려가며 계산시켰습니다.
if(N==0) break;
if(nf%2==1) kf++;
* 분명 처음에는 아 뭐 이런거 쯤이야 어렵지 않겠쿤! 하고 문제에 들이댔습니다. .. 그러나 나는 10진수로 보이지만 컴터는 2진수로 알고있겠지!! 라고 생각하고 계산하려해도 당최 쉽지가 않더군요 -- 한참 고민하다 진경이가 힌트를 준 덕분에 해결했습니다. 한번만에 accept! 코드길이는 198B까지 줄였으나, 더 줄일 생각은 아직 별로 들질 않네요-ㅎㅎㅎ
* 한번만에 accept 부럽다아-. 난 항상 고루고루 에러를 겪는데ㅋㅋㅋㅋ 덕분에 기를 빨려서 그런가 두번째 문제가 이해가 안간다 ㅠㅠ 왜 A1B3C1A2 요런식으로 가는거고 위에 3은 뭐고 으어어... -[강소현]
* 이번건 문제 잘 읽어보고 충분히 체크해본다음에 제출해서 바로 accept된거같아요. (졸리점퍼때처럼 엄청 복잡한 알고리즘을 쓰지 않아서기도 하지만요 --) 나이트저니는.. 으아아아= -[김태진]
- Basic알고리즘/팰린드롬/조현태 . . . . 8 matches
if (0 > buffur[i])
if (buffur[i] != buffur[nowCheck - 1] || buffur[i + 1] != buffur[nowCheck] )
else
if (buffur[i] != buffur[nowCheck])
if (isSame)
cout << "true" << endl;
else
cout << "false" << endl;
- Boost/SmartPointer . . . . 8 matches
* boost 라이브러리는 헤더 파일만이 존재한다. 모든 구현을 헤더 파일에 해 놓았기 때문이다. 바로 필살 헤더와 구현 분리하기 귀잖어 기술....본인은 애용한다...
* 표준 라이브러리에도 auto_ptr 이라고 같은 개념의 클래스가 있지만, 버그가 있다. -_-;; auto_ptr를 컨테이너에 집어넣으면 버그땜시 스스로 삭제가 안되 메모리가 새는 아주 심각한 문제이다.
* 모든 객체에 스마트포인터를 쓰도록 프로그램 짜면 자바같은 느낌으로 짤수도 ...
// use, modify, sell and distribute this software is granted provided this
// argument, so would not work as intended. At that point the code was
std::for_each( foo_vector.begin(), foo_vector.end(), FooPtrOps() );
std::for_each( foo_set.begin(), foo_set.end(), FooPtrOps() );
- BoostLibrary/SmartPointer . . . . 8 matches
* boost 라이브러리는 헤더 파일만이 존재한다. 모든 구현을 헤더 파일에 해 놓았기 때문이다. 바로 필살 헤더와 구현 분리하기 귀잖어 기술....본인은 애용한다...
* 표준 라이브러리에도 auto_ptr 이라고 같은 개념의 클래스가 있지만, 버그가 있다. -_-;; auto_ptr를 컨테이너에 집어넣으면 버그땜시 스스로 삭제가 안되 메모리가 새는 아주 심각한 문제이다.
* 모든 객체에 스마트포인터를 쓰도록 프로그램 짜면 자바같은 느낌으로 짤수도 ...
// use, modify, sell and distribute this software is granted provided this
// argument, so would not work as intended. At that point the code was
std::for_each( foo_vector.begin(), foo_vector.end(), FooPtrOps() );
std::for_each( foo_set.begin(), foo_set.end(), FooPtrOps() );
- CNight2011 . . . . 8 matches
* 왕고로서 C Night에 참여해서 학우들에게 도움도 주고 제가 모르는 것도 배우고 싶었는데 잘 되었는지 모르겠네요. 미리미리 이것저것 테스트 해보고 동적 메모리 할당에 대해 질문한 학우들을 보고 11학번 역시 수준이 높구나 생각이 들었습니다. 다음에는 다른 컨텐츠로 밤샘투어 해보고 싶어요 ㅋㅋ - [지원]
* C를 1학년 때 힘들어 했던 기억 등으로 인해 다시 한번 (자료구조를 하면서도 다루긴 했지만) 리마인딩하고 싶다는 마음에 참여 하였는데, 이번 11학번 학우들은 저보다 상당한 실력과 열정을 가지고 있다는 것을 보고 한편으로는 부럽기도 했고, 한편으로는 더 열심히 해야 겠다라는 생각도 들었습니다. 오랜만에 밤 새니까 힘드네요 ㅋㅋ 늙었나 봅니다. ㅋㅋㅋ - [권순의]
* 12시 30분쯤, 도중에 참여했습니다. 피곤피곤.. 뭔가 C언어와 관련된 활동을 했었어야했는데. 백트래킹, DP를 설명만 하고 구현을 안했네요-_-; 다음에 기회가 된다면 재귀함수를 실제로 응용하는 방법에 대해 알아볼 시간이 있으면 좋겠네용 - [정진경]
* 많다면 많은 정보들이 한꺼번에 머릿속에 들어왔었는데요, 이것 저것 배우면서 저게 유용하긴 한데.. 분명 포인터랑 연관되어있다긴 하는데 뭐가 어떻게 연관된거야?! 라고 하다가 Linked List를 배우면서 왜 구조체가 필요한지(very powerful!) 왜 많은 수의 자료들을 무조건 배열로만 쓸 수는 없는지등 많은 것을 알게되었어요. 나중에는 카트가 3D면서 렉없는 상당히 잘만든 게임이라는 말도 들었는데, 자료가 유동성 있으면서 접근하기 쉬운 그런걸 만든다는게 쉬운 것만은 아니겠구나 라고 생각했지요. 자구를 공부하면 이런 부분을 공부하는거겠죠. 재밌겠네요+_+(까봐야 알지만) -[김태진]
- ClassifyByAnagram/Passion . . . . 8 matches
if (isCreated(itemList))
if (isValidLine(line))
if (buffer.charAt(i) > buffer.charAt(j))
if (list == null)
else
long end = System.currentTimeMillis();
System.out.println("time : "+(end-start)+"millis");
public class AnagramTest extends TestCase {
- CommonState . . . . 8 matches
컴퓨터 시대의 여명에는(초기에는) state가 짱이었다. 펀치 카드도 상태를 위해 존재했고, 유닛 레코드 장비도 그랬다. 그러다가 전자적인 컴퓨팅이 나오기 시작하면서 state는 더이상 물리적인 상태로 존재하지 않게 되었다. 물리적인 형태는 전자적인 형태로 바뀌어서, 보다 더 쉽고 빠르게 다룰수 있게 되었다.
초기 컴퓨터는 용량이 너무 적어서, 프로그램 짧게 만들기 이런걸 많이 해야만 했다. 당연하지만 그걸 알아볼 수 있으리라는 기대는 하지 않았다. 그러다가 용량이 커지니까 이제는 많고 많은 state들을 사용하는 많고 많은 함수들을 많이 사용하게 되었다. 하나 고칠라면 전체를 뜯어 고쳐야 했다. state로서의 프로그램은 안좋다. 그러니 state도 안좋다(??) 이런 상황에서 state가 없고, 프로그램만 있는 함수형 언어가 나오게 되었다. 개념적인 우아함과 수학적인 우아함을 갖추고 있음에도 불구하고, 상업적인 소프트웨어를 만드는데에는 전혀 쓰이지 않았다. 이유는 사람들은 state를 기반으로 생각하고 모델링하기 때문이었다. state는 실세계에 대해 생각하는 좋은 방법이다. 객체는 두 가지의 중간이다.(?이렇게 해석해야하나..--;) state는 잘 다뤄질때만 좋다. 작은 조각으로 나누면 다루기 쉬워진다. 이렇게 하면 변화를 어느 한 곳만 국한시킬 수 있게 된다.
- CompilerTheory/ManBoyTest . . . . 8 matches
end;
if k <= 0 then A := x4 + x5 else B
end;
end;
Donald Knuth 가 Algol 60의 구현 정도를 판변하기위해서 만든 프로그램. 테스트의 목적은 올바르게 구현된 scoping rule, call-by-name의 구현 정도를 판별해서 boys(algol 60 구현물)들중에서 men (쓸만한 놈)을 가려내는 용도로 고안되었습니다.
- ComputerGraphicsClass/Exam2004_2 . . . . 8 matches
다음 수식과 같이 세 항으로 표현된 단순 조명 모델에서 빈 칸을 채우고, 각 항을 설명하시오. (특히 광원과 시점의 위치가 각 항이 어떻게 달라지는가를 수식으로 설명하시오)
=== Ploygon Rendering Methods ===
폴리곤 ABC의 법선벡터(Normal Vector)를 구하시오. (단, 폴리곤이 보이는 면은 시계 반대 방향으로 ABC 순서로 보이는 면이며 단위벡터를 구하는 것이 아님)
점 D 는 선분 AB 의 중점이고, 점 E는 선분 AC를 3 : 2로 나눈 점이다. 또한 F는 D 와 E의 중점이다. 점 A,B,C의 색이 각각 red(1,0,0), green(0,1,0), white(1,1,1)일 때 점 D,E,F의 색을 (r,g,b) 형태로 나타내어라.
=== Non-Photorealistic Rendering ===
- DataCommunicationSummaryProject/Chapter11 . . . . 8 matches
* 광케이블의 경우 중간에 신호확장을 거치기 전까지 초당 1000테라비트(페타비트)까지도 보내지만 무선은 이렇게 할 수 없다. 하지만 통신의 말단부분(Local Loop)에선 다르다. 도심 한가운데다가 광케이블을 파묻기 위해 다 뒤엎진 못하지 않는가...;;
* 광대역(대역폭이 넓은) 무선 시스템이 몇년 내에 유용할 것으로 보이는데 전화든 TV 든 유선통신보다 싸고 쉽게 쓸 수 있을 것이다.
* 보내고 받는 모양새가 대칭형이다. 레이저나 극초단파 같은 걸로 사용한다.
* 단말기만 있으면 거의 영구적으로 base station 과 연결되어 사용가능하고 기타 등등 열라 좋은 점이 많긴하지만 대역폭을 공유한다는 것이 단점이다.
* 대부분 보급되어있는 wireless local loop system은 산업, 과학, 의학용 주파수(ISM band) 를 사용한다. 실제로 IEEE 802.11b 표준에 기초한 시스템도 있다.
* 8km 까지는 서비스 범위가 도달한다. 표준으로 11Mbps를 지원하지만 multipoint 특성상 대역폭을 사용자들이 공유하기 때문에 실제로는 2~6Mbps 가된다.
* 1970년대 45Km 이상까지도 되는 케이블 TV 와 경쟁하기 위해 TV 방송 시스템으로 개발되었다.
- DevCppInstallationGuide . . . . 8 matches
다운 로드 - http://zeropage.org/pub/util/devcpp-4.9.9.2_setup.exe
└'''기본언어로 설정'''을 해주면 선택사항이 고정됩니다. 프로젝트 이름은 프로그램 이름이라고 생각하면 됩니다.
└main.c이라는 이름으로 저장하기 보다 '''프로젝트 이름.c'''으로 저장하는 것이 나중에 다시 볼 때 좋습니다.
해주시면 컴파일시 에러가 났을 때 쉽게 확인가능합니다. 글꼴은 둘다 굴림체로 하는것이 보기에 좋더군요. :) [이영호]
- Doublets . . . . 8 matches
딱 한 글자만 서로 다른 한 쌍의 단어를 더블릿이라고 부른다. 예를 들어 'booster'와 'rooster', 'rooster'와 'roaster', 'roaster'와 'roasted' 등은 모두 더블릿이다.
단어의 최대 길이는 16글자고 최대 25,143개의 단어(모두 소문자)가 들어있는 사전이 주어진다. 그리고 몇 쌍의 단어가 주어진다. 각 쌍의 단어에 대해 첫번째 단어로 시작해서 두번째 단어로 끝나고, 서로 인접한 각 단어 쌍이 더블릿인 가장 짧은 단어 시퀀스를 찾아라. 예를 들어 'booster'와 'roasted'라는 단어 쌍이 입력되면, 그리고 여기에 있는 단어들이 모두 사전에 들어있으면 'booster', 'rooster', 'roaster', 'roasted'라는 시퀀스가 답이 될 수 있다.
입력은 사전과 몇 쌍의 단어로 이루어져있다. 사전은 몇 개의 단어로 구성되는데 한 줄에 한 단어씩 들어가며 사전이 끝나면 빈 줄이 한 개 입력된다. 그 다음 줄부터는 각 줄마다 한 쌍씩의 단어가 입력되며 한 줄에 있는 두 단어는 스페이스에 의해 구분된다.
입력된 각 단어 쌍에 대해 첫번째 단어로 시작해서 두번째 단어로 끝나는 가장 짧은 단어 시퀀스를 한 줄에 한 단어씩 출력한다. 위 아래에 있는 두 단어는 더블릿이어야 한다.
- EcologicalBinPacking/황재선 . . . . 8 matches
if (sum > pow(2, 30))
cout << "병의 수 초과" << endl;
cout << "다시 입력" << endl;
if (i == colorIndex[allColorSet][index] || i == colorIndex[allColorSet][index+1]
else
if (allColorSet == 0)
if (isMinValue(sum, minValue))
cout << color[colorResult] << " " << min << endl;
- EightQueenProblem/Leonardong . . . . 8 matches
self.board.append([0]*aSize)
self.positions.append((aRow, aCol))
if p[1] == aCol or p[0] == aRow or \
if len(self.positions) > 0:
if aCol >= len(self.board):
elif self.isPositionValid(aRow, aCol):
if len(self.positions) >= aSize:
if __name__ == '__main__':
- EightQueenProblem2/이강성 . . . . 8 matches
if count == 0:
if self.board[x][y] != 0:
self.queens.append( (x, y) )
if res:
if count == 1:
self.solutions.append(self.queens[:])
else:
if __name__ == '__main__':
- EightQueenProblem2/이덕준소스 . . . . 8 matches
if (Promissing(level,queens))
if (level==7)
else
if (level==0)
if (!WellPutted(i,level,queens))
if (queens[level1]==queens[level2])
if (abs(queens[level1]-queens[level2]) == level2 - level1)
cout<<endl;
- ExploringWorld/20040308-시간여행 . . . . 8 matches
2004년 3월 8일 <시간여행-과거로의 산책>
지하철에서 세환이와 오늘을 제목을 정한다면, 어떨까 라는 고민을 했다. '워밍업 데이'? '시작한날'? 하지만 이런 무미건조한 단어를 쓰기에 오늘을 따뜻하게 표현하고 싶었다. 그리고 집에와 Zp서버의 과거를 주로 이야기한 '시간여행'이라는 제목을 붙였다. 오늘을 한마디로 설명하기에 충분한 날이다. 그러나 크게 후회되는 점이 있다. 얼마전 나의 여행기에 '잘못된 이야기'에 대한 반성을 쓰고 실천 사항을 적었는데 오늘 후배님들 앞에서 실천하지 않았다. 결과, 다시 한번 아까운 시간을 두서없는 이야기로 채우는 우를 반복하였다. 다음주에는 반드시 이야기를 위한 '계획'을 세워 가치있고 압축적으로 시간을 써야겠다. --NeoCoin
집으로 돌아와 MakeAnotherWorld 라는 세상을 만든다는 거창한 은유법보다, 여행을 한다는 느낌의 은유로 시작하면 재미있겠다는 생각이 들었다. 그래서 WalkingAroundWorld 나, CyclingWorld 같은 여행이라는 은유의 제목이 더 그럴싸한것 같은데, 너희들은 어때? --NeoCoin
오 좋은 생각이다. 차타고 휙지나가는게 아니라, 자전거를 타거나 걸어다니면서 이것도 기웃 저곳도 기웃을 생각했는데, 그럴게 아니라 새로운 세계를 탐험한다는 느낌이 더 좋을것 같다. ExploringWorld 정도면 될것 같다. rename 할까? 또 좋은 의견 없나? --NeoCoin
- FileZilla . . . . 8 matches
[http://filezilla.sourceforge.net 프로젝트 홈페이지]
[임인택]이 사용하는 오픈소스 ftp 클라이언트. 그 전에는 alftp을 주로 사용했는데, 사용했던 시기가 alftp 가 약간 불안하게 동작했던 시기라서 아예 FileZilla로 전환했다. 기본적인 ftp 프로토콜 외에도 sftp 프로토콜까지 지원한다. 2.2.7 버전대로 올라오면서 한글까지 지원하여 이제는 더없이 좋은 ftp 클라이언트가 되었다. 그 외에도 편리한 사이트 매니저 기능등을 제공하지만 로컬 디렉토리를 브라우징할때 약간 불편한 면이 있다.
http://zeropage.org/pub/wiki_image/filezilla.gif
- FrontPage . . . . 8 matches
* 제로페이지에 처음 방문하신다면 [ZP%20Docs|여기]를 참고..
<div style = "float:right"> <a href="https://wiki.zeropage.org/wiki.php/UserPreferences">로그인하러가기</a> </div>
* [스터디지원] : 스터디 및 프로젝트 지원에 대한 안내
* 링크로 들어간 뒤 오른쪽 하단 +Google 캘린더 버튼을 누르시면 자신의 Google 캘린더에 추가할 수 있습니다.
* '''개인정보 누출을 주의해 주세요. 위키 페이지에 이메일이나 전화번호를 노출 시키면 웹에 돌아다니는 로봇에 수집될 수 있습니다.'''
* 페이지 제목에 공백을 사용하면 링크가 제대로 걸리지 않는 문제가 생기는 것 같아 임시로 공지합니다. 해결하면 수정하겠습니다.
* 서버 이전으로 ZeroWiki 동작에 문제가 있을 수 있습니다. 문제가 있으면 Mattermost ~devops 채널에 제보바랍니다.
- HASH구하기/오후근,조재화 . . . . 8 matches
ifstream fin("source.txt");
if(temp == -1) //파일끝일경우
else //파일끝이 아닐경우
if(flag == false)
cout << endl;
cout << endl;
- HanoiProblem/임인택 . . . . 8 matches
if( numOfDiscs > 3 ) {
else {
public boolean verifyAllDiscsAreMoved(){
if( discsAtPillar.isEmpty() )
if( iObj.intValue() > discNum.intValue() )
else
if( movable(discNum) ) {
else {
- HelpOnInstallation/MultipleUser . . . . 8 matches
각 사용자는 따로 설치할 필요 없이 관리자가 설치해놓은 모니위키를 단지 make install로 비교적 간단히 설치할 수 있습니다.
=== 다운로드 후 압축 풀기 ===
=== 관리자 모드로 설치 ===
이 경우 대부분의 php파일이 설치되지 않은채로 각 사용자가 사용하게 되기 때문에, 모니위키의 php취약점이 발견되었을 경우 관리자가 설치된 [모니위키]만을 업데이트하는 것으로 문제점을 해결할 수 있게 됩니다. 물론 일부 카피된 파일 및 php 이외에 웹상에 직접 노출되는 지역 파일은 사용자가 직접 업데이트해야 하겠지요.
- HerdingFrosh . . . . 8 matches
어느 날 대학 캠퍼스 한 가운데 있는 잔디밭을 신입생들이 점령하고 말았다. 캠퍼스 미화를 위해 4학년 선배들이 분홍색 명주실을 써서 신입생들을 감싸기로 했다. 당신은 이 일을 하기 위해 필요한 명주실의 길이를 계산하는 일을 맡게 되었다.
4학년 선배는 전신주에 그 명주실을 묶고, 잔디밭 주변을 한 바퀴 돌면서 명주실로 모든 학생들을 감싼 다음 다시 전신주로 돌아온다. 그 선배는 모든 신입생들을 둘러싸는 필요한 최소 길이만큼의 명주실을 사용했으며, 전신주에 명주실을 묶기 위해서 1미터만 남겼다.
전신주의 위치 좌표는 (0,0) 이라고 하자. 이때 첫번째 좌표는 남/북 방향이고 두번째 좌표는 동/서 방향이다. 신입생의 좌표는 전신주를 기준으로 미터 단위로 주어진다. 신입생 수는 1,000 명을 넘지 않는다.
각 테스트 케이스의 첫 줄에는 신입생 수를 나타내는 정수가 입력되고, 그 밑으로는 n줄에 걸쳐서 각 신입생의 위치를 나타내는 실수가 두 개씩 입력된다.
서로 다른 테스트 케이스 사이에는 빈 줄이 하나씩 입력된다.
각 테스트 케이스에 대해 필요한 명주실의 길이를 소수점 둘째 자리까지 출력한다. 서로 다른 테스트 케이스의 결과 사이에는 빈 줄을 하나씩 출력한다.
- ImmediateDecodability . . . . 8 matches
파일에서 연속된 데이터를 그룹 형태로 입력을 받아들인다. 그룹의 각 데이터는 기호용 이진 코드를 나타내는 0과 1의 집합으로 구성된다. 각 그룹은 단일 숫자 9로 구분된다. 구분 숫자인 9는 그룹에 속하지 않는다.
각 그룹은 다른 그룹과 따로 처리해야 한다. 한 그룹의 코드가 다른 그룹의 코드와는 연관해서 처리하지 않는다. 즉, 각 그룹은 따로따로 처리해야 한다.
각 그룹에서 프로그램은 그룹의 코드들이 직접 해독 가능성이 있는지를 결정하고, 주어진 그룹 번호와 그룹의 직접 해독 가능성 여부를 한 줄씩 출력한다.
입력 예제는 위의 예로 설명되었다.
- IsThisIntegration? . . . . 8 matches
아래에 정사각형 ABCD의 그림이 나와있다. AB = BC = CD = DA = a 다. 그리고 각각 A, B, C, D를 중심으로 하고 반지름이 a인 네 개의 원호가 그려져 있다. A를 중심으로 하는 호는 꼭지점 B에서 시작해서 꼭지점 D에서 끝난다. 다른 모든 호도 비슷한 방식으로 그려진다. 이렇게 하면 서로 모양이 다른 세 가지 영역이 만들어진다. 이렇게 서로 모양이 다른 각 영역의 넓이 합을 구하라.
각 테스트 케이스마다, 위 그림에 나와있는 서로 모양이 다른 세 영역의 넓이의 합을 출력한다. 세 부동소수점수는 모두 소수점 셋째 자리까지 출력한다. 각 케이스의 첫번째 수는 위 그림에서 줄무늬로 표시된 영역, 두번째 수는 점으로 표시된 영역, 세번째 수는 나머지 영역의 넓이 합이다.
- Java/스레드재사용 . . . . 8 matches
if((thread==null) && (reThread==null)) {
if(threads.isEmpty()) {
else {
notify();
if ((target != null) && ((thread != null) ^ (reThread != null))) {
if (thread != null) {
} else {
if((target!=null) && ((reThread==this.reThread))) {
- JavaStudy2003/두번째수업 . . . . 8 matches
* 위의 내용 제가 정말로 피땀흘려 만들어놓은 내용입니다. Copy & Paste 하나도 없이 제가 순수하게 참고만 해서 만든 튜토리얼입니다. 이렇게 노력한걸 좀 가상하게 여겨서 숙제 좀 제대로 해 보죠? -_-+ -[상욱]
* 앞으로 이런식의 튜토리얼을 3번정도 더 만들어볼까 합니다. 제가 임의로 만든 것이기 때문에 보고서 좀 어렵다 싶은 부분 있으면 바로바로 말해 주세요. -[상욱]
아마 한글 97이라서 그런거 아닐까? 2002로 만들었거든... 97로 저장하니깐 표가 깨져서..;; 한글2002뷰어 받아서 봐. -[상욱]
- JollyJumpers/문보창 . . . . 8 matches
한개의 정수 1 n 이 들어와 있을경우 이것을 Jolly로 판단해야할까?
if (n == 1)
showJolly(true); // n이 1일 경우 Jully 이다. 왜 그럴까?
else
if (0 < gap && gap < n)
else
if (!bitJolly[i])
- LCD-Display/김상섭 . . . . 8 matches
if(j != test.size() -1)
cout << endl;
if(j != test.size() -1)
if(j != test.size() -1)
cout << endl;
if(j != test.size() -1)
if(j != test.size() -1)
cout << endl;
- LinuxSystemClass . . . . 8 matches
=== Report Specification ===
개인적으로 교재가 마음에 든다. 단, 제대로 공부할 것이라면 가능한 한 원서를 권한다. 한서의 경우 용어의 혼동문제와, 중간 오역문제가 눈에 띈다. (inexpensive를 expensive 로 정 반대의 뜻으로 해석한) 뭐, 물론 그럼에도 불구하고 아마 사람들은 한서 읽는 속도가 원서 읽는 속도의 3배 이상은 될테니. 알아서 잘.
학교 수업공부를 하거나 레포트를 쓰는 경우 위의 학교 교재와 함께 'The Design of the Unix Operating System' 을 같이 보면 도움이 많이 된다. 해당 알고리즘들에 대해서 좀 더 구체적으로 서술되어있다. 단, 책이 좀 오래된 감이 있다.
- LoadBalancingProblem/Leonardong . . . . 8 matches
if self.minWork > self.eachWork[i]:
if self.maxWork < self.eachWork[i]:
if self.maxWork - self.minWork > 1:
if self.getWork(aID) > self.minWork:
if aID != 1:
if aID != self.numOfCPU:
if self.isThisOverWork(id):
if __name__ == '__main__':
- MFCStudy_2002_1 . . . . 8 matches
* ["EightQueenProblem"] OOP 로 해오십시오. 다음 모임은 8/29 오전 11:00 입니다. ["프로그래밍잔치"] 전에 잠깐 모여서 마지막 모임을 가집시다. ^^
예) 바보: 1999.4.5 오늘은 MFC 래스터연산과 마스크라는 것을 봤다. 오... 신기하다. 이런 것으로 배경을 정확히 잘라낼줄이야...후훗.
아아~ 오목을 짜는데~~전에는 무식한 방법으로 돌을 하나 놓을때마다 판 전체를 검색하는...방법을 사용했는데..[[BR]]
이번에는 돌을 중심으로 좌우양대각선을 검사하는 방법을 쓸라구요~~[[BR]]
그리고 중간 중간에..함수를 만들어서 사용하고 싶은데...전달인자로 뭘 받아야하는지도 잘모르겠고..^^a[[BR]]
["MFC프로그래밍시작하기"]
["프로젝트분류"]
- MagicSquare/재니 . . . . 8 matches
if (line == num - 1)
else line++;
if (row == num - 1)
else row++;
if (mbj[line][row] != 0)
if(line == 0 && row == 0)
else
cout << endl;
- MultiplyingByRotation . . . . 8 matches
보통 자연수의 곱셈은 복잡한 연산이다. 어떤경우에서는 연산결과가 마지막 숫자를 앞으로 옮기는 것에 의해서 얻을 수 있다.
입력은 텍스트파일이다. 진수,첫번째 숫자의 마지막 숫자(the least significant digit of the first factor)와 두번째 숫자(second factor)로 구성된 3개의 수치가 한줄씩 입력된다. 각 수치는 공백으로 구분된다. 두번째 숫자는 해당 진수보다 적은 숫자이다. 입력파일은 EOF로 끝난다.
프로그램은 이동 곱셈속성을 갖는 숫자중 가장 작은 첫 번째 숫자의 자리 개수를 출력한다.출력 파일도 텍스트파일로 한다. 입력되는 데이터순서에 맞추어 결과를 한 줄씩 출력한다.
- NUnit . . . . 8 matches
* http://nunit.org/ Download 에서 받아서 설치한다. MS Platform 답게 .msi 로 제공한다.
|| Upload:NUnitByC#.gif ||
* NUnit 은 pyunit과 junit 과 달리, .Net Frameworks 에 도입된 Source 내의 Meta Data 기록인 Attribute 으로 {{{~cpp TestFixture}}}를 구성하고 테스트 임을 만방에 알린다.
* 스크린 샷에서 처럼, 함수 이름이 Test 세팅에 종속적이지 않다. (반면 JUnit 은 reflection으로 Test 메소드들을 찾아내므로, Test의 이름들이 testXXX 와 같은 형태여야 한다.)
* C++에서 CppUnit을 사용할수도 있겠지만, [인수]군이 써본바로는, 또한 6.0이 아닌 .Net을 쓴다면 NUnit이 더 좋은것 같다.(어차피 6.0에선 돌아가지도 않지만--;) CppUnit은... 뭔가 좀 이상하다.--; --[인수]
* Java 1.5 에 메타 테그가 추가되면 NUnit 방식의 TestCase 버전이 나올것 같다. 일단 이름의 자유로움과, 어떠한 클래스라도 Test가 될수 있다는 점이 좋왔다. 하지만, TestFixture 를 붙여주지 않고도, 목표한 클래스의 Test 들을 실행할 수 있는 방식이면 어떨까 생각해 본다. --NeoCoin
* MFC에서 사용하기 추가했습니다. 저 방식대로라면 어떠한 방식에서든 쓸 수 있겠네요. --[인수]
- NumberBaseballGame/성재 . . . . 8 matches
if(num>100 && num<999)
if(i==j && match[i]==rmatch[j])
else if(i!=j && match[i]==rmatch[j])
if(strike==0 && ball==0)
else
{cout<< endl <<strike << ":스트라이크\n";
else
- OurMajorLangIsCAndCPlusPlus/2006.2.06/허준수 . . . . 8 matches
//friend ostream& operator << (ostream& o, myString &s);
if(s.ch==NULL)
cout << s[2] << endl;
cout << s<<endl;
cout << s1 << s2 <<endl;
cout << s << s.length() << endl;
cout << s2 <<endl;
cout << "input string : " << s <<endl;
- PC실관리 . . . . 8 matches
2005년 2학기부터 7피를 관리하기로 바뀌었습니다.
* (V) 27번, 고스트 이미지로 복구
① 모든 PC가 정상적으로 돌아가는가?
② 프린터가 정상적으로 돌아가는가?
③ 입력장치(키보드/마우스)가 정상적으로 돌아가는가?
8. 에어컨 냄새 제거는 약품으로 하는 것이 좋다?
아니다. 가끔 햇볕이 좋은 날 창문을 열고 에어컨을 OFF 시킨 채 송풍 팬을 2, 3단으로 작동한다. 더해서 매트 밑에 신문지를 넣어두면 냄새와 습기 제거에 큰 효과를 볼 수 있다.
[제로페이지분류]
- PHPStudy2005 . . . . 8 matches
* 기본적으로 PHP 돌릴수 있는 환경 (APM 설치) 을 만들어 본다.
* 처음 웹프로그래밍 할때 잘 이해가 안가는 부분에 대한 이해를 돕는다.(APM 설치, GET, POST 전달 방식, 정규식등)
* 일방적인 정보 전달 스터디가 아닌, 하는 방법(메뉴얼 찾아서 하기, 틀정 사이트 Q & A 찾아서 하기, 있던 PHP소스 재활용하기, 모를땐 메신저로 선배한테 물어보기-_- 등..) 을 알려주고, 그에 따라 간단한 PHP 프로그램을 작성해본다.
* [http://ezphp.net/lecture/ 다우니 PHP 초보 강좌] - 정현아 왼쪽꺼 강좌 3 문법 배우기, 4 카운터 만들기만 익히면 된다. 그리고 바로 투입~! ㅋ -[상협]
DeleteMe) 스터디? 프로젝트? - [eternalbleu]
옛날에 신입생 대상으로 하려고 했던건데 ㅋ, 그냥 PHP 과외 -_-; - [상협]
[프로젝트분류]
- POLY/김태진 . . . . 8 matches
* 가로줄을 층이라 치고, X개로 만드는 것의 경우는
* X-1개(제일 위층을 제외하고) + 제일 위층 1개 , X-2개 + 최상층 2개, ... , 1개 + 최상층 X-1개, 최상층 X개 로 쪼갤 수 있다.
* 이때, 제일 위층을 제외한 것의 제일 위층의 개수가 몇개인지 중요한데, 최상층 개수와 두번째층의 개수에 의해 폴리오미노를 만족하는 경우의 수가 세분화되기 때문이다.
* (예를들어 최상층 3개, 두번째층 2개(그 아래층은 상관없음)인 경우는 " 최상층 + 두번째층 - 1 ", 즉 4개의 경우가 생기고, 이를 곱해야한다.
* 여기까지 이해를 했다면 직접 DP 점화식을 만들어보고, 그렇지 않다면 코드를 보고 이해해보려고 노력해보자. 실제로 유의미한 코드는 3번째 for문과 점화식 한줄, 총 두줄 뿐이라는 것을 알게 될 것이다.
- PluggableBehavior . . . . 8 matches
한 클래스의 다른 객체들은 일반적으로 서로 다른 상태와 같은 행위를 가지게 된다. 만약에 다른 로직을 원한다면, 다른 클래스를 쓴다. 우리가 만드는 객체의 90프로는 이렇다. 가끔, 다른 클래스들은 당신이 문제에 대해 어떻게 생각하는가에 대한 효과적인 의사소통을 못 할 수도 있다.(?) 클래스가 많아짐으로써 당신은 짜증이 나고 위협을 받는다. 단 하나의 메소드를 오버라이딩하려고 서브클래싱을 많이 하는것은 낭비다. 또한 이렇게 많이 서브클래싱하면서 유연성이 떨어지게 된다.
* 얼마나 많은 메소드가 동적으로 행동할 것인가?
서로 다른 행동을 유발하는 것에 사용될 변수를 추가하라. 단 하나의 메소드만 오버라이딩된 수백,수천개의 클래스를 만들지 말고, Pluggable Behavior를 사용하자.
해석 점점 이상해진다.--; 이 또한 C++에서는 함수 포인터로 구현할 수 있을 듯 하다.
- ProjectPrometheus/Iteration2 . . . . 8 matches
||||||Story Name : Recommendation System(RS) Study (Prototype)||
||||||Acceptance Test (["ProjectPrometheus/AT_RecommendationPrototype"]) ||
|| {{{~cpp RecommendationBookTest}}}|| 가중치 순서대로 책 리스트 보여주기 테스트 || ○ ||
|| {{{~cpp RecommendationBookListBig}}}|| 가중치 순서대로 책 리스트 보여주기 테스트. More || ○ ||
|| {{{~cpp RecommendationBookListLimitScore}}}|| 특정 가중치 점수 이하대의 책 리스트는 보여주지 않기 테스트. || ○ ||
|| {{{~cpp RecommendationBookListLimitScoreMore}}} || 특정 가중치 점수 이하대의 책 리스트는 보여주지 않기 테스트. More || ○ ||
- ProjectPrometheus/UserStory . . . . 8 matches
||시스템으로부터 책을 추천받을 수 있다. ||
||로그인을 해야 서비스를 이용할 수 있다. ||
||새로 들어온 책을 분야별로 확인할 수 있다. ||
* 새로 들어온 책을 분야별로 확인할 수 있다.
* 시스템으로부터 책을 추천받을 수 있다.
* 로그인을 해야 서비스를 이용할 수 있다.
- ProjectTriunity . . . . 8 matches
파일 구조 팀 프로젝트를 위한 페이지...
=== 프로그램 소스 및 문서 (첫번째) ===
|| 다운로드 || 수정한 사람 || 설명 ||
|| Upload:파일구조팀프로젝트.hwp || 이상규 || Document ||
=== 프로그램 소스 및 문서 (두번째) ===
|| 다운로드 || 수정한 사람 || 설명 ||
|| Upload:파일구조팀프로젝트2.hwp || 이상규 || Document ||
[프로젝트분류]
- PyServlet . . . . 8 matches
servlet 클래스의 경우는 수정시 바로바로 적용이 되나, import 되는 모듈을 수정하는 경우 바로 적용이 되지 않는다.
[1002] 가 PyServlet 에서 생각하는 장점이라면, Servlet 의 특징으로, CGI와는 달리 인스턴스가 메모리에 남아있다는 점이다. 간단한 프로토타이핑을 할때 memory persistence 를 이용할 수 있게 된다. ZP 에서의 12줄 이야기와 같은 프로그램을 작성할 수도 있다.
- RandomWalk2/Vector로2차원동적배열만들기 . . . . 8 matches
''DeleteMe 페이지 이름으로 MultidimensionalArray가 더 좋지 않을까요?''
음..--; 재동이한테 2차원 동적 배열 만드는 방법을 제공한 이유로..--; 책임을 지겠습니다 ㅠ.ㅠ 근데 다 그렇게 쓰던데..--;
vector 좀 들여다 보다가 대충 만들어봤습니다. 고칠거 있으면 마음-_-껏 고쳐 주세요. 행이랑 열 입력 받아서 모두 0으로 초기화하는겁니다
위의 방법 외에도 클래스로 감싸주고, 내부적으로는 1차원 배열을 쓰는 방법이 있겠죠. row*width+col로 특정 원소를 레퍼런스할 수 있습니다.
* [http://www.parashift.com/c++-faq-lite/containers-and-templates.html#faq-33.1 Why Arrays are Evil]
* array보다 vector를 먼저 가르치는 대표적인 책으로 "진정한 C++"을 가르친다는 평가를 받고 있는Seminar:AcceleratedCPlusPlus
- ReverseAndAdd/Celfin . . . . 8 matches
if(input[i]+input[number-i+9]+carry[i]>9)
else
if(carry[i]==1)
if(carry[i]==1)
cout << endl;
if(i==0)
else
if((int)(tempNum/pow(10, i))!=0)
- ReverseAndAdd/이승한 . . . . 8 matches
if reNum == num:
else:
if __name__ == '__main__':
if( reverse( input[cycle] ) == -1){
}else{
cout<<outputN[cycle]<<" "<<output[cycle]<<endl;
//수를 차례로 배열에 넣는다.
if( returnNum == originalNum )
- ReverseAndAdd/허아영 . . . . 8 matches
if(length == 1)
else {
if(num[i] == num[length-i-1])
else {
if(isPalindrome(store_numbers, length))
if(turn == 0)
if(length == 1)
cout << turn << " " << addNum << endl;
- ReverseAndAdd/황재선 . . . . 8 matches
if self.overBoundary(count, n):
if self.overBoundary(count, n):
if count >= MAX_COUNT or n > MAX_VALUE:
if __name__ == '__main__':
결과 튜플을 ((4,9339), (5,45254), (3,6666)) 와 같이 중첩 튜플로 하려했으나 못하겠다. -- 재선
테스트가 프로그램의 최종 테스트 밖에 없구나. 바로 모든 소스를 만들지는 않았을테고... 테스트 보폭을 줄이는 게 좋을 듯. --재동
reverse 부분은 shell에서 약간의 테스트를 거쳤습니다. 그래서 따로 테스트 코드를 만들지 않았는데 그 결과 디자인이 나빠진 것 같습니다. 아직은 tdd에 익숙하지 않아서 모든 함수를 테스트 코드화하면서 보폭을 줄이는 훈련을 해야겠습니다. -- 재선
- RonJeffries . . . . 8 matches
40여년간 프로그래밍을 해온 분인데, 인터뷰 중에 "장차 프로그래머가 되려는 한국의 젊은이들에게 어떤 말을 해줄 수 있겠느냐"라는 질문에 답한 내용이 인상적입니다.
왜이리 찔리는지. -_-; 특히 마지막문장.. 프로그래밍을 하다보면 가끔 누구를 위한 프로그램인가를 간과하게 되는 경우가 많게 되는지라서.. ^^;
이 글은 프로그래머가 아침마다 암송할 가치가 있지 않나 합니다. --JuNe
RonJeffries 을 좋아하는 이유중 하나로는 그의 글 스타일때문일런지도 모르겠다. 또는, XP 메일링리스트에서의 그의 답글 뒤 맨 마지막 짧은 한줄때문일지도 모르겠다. 때때로 뒤통수를 한대 때리는 유쾌한 깨달음을 준다. --["1002"]
- RubyLanguage/ExceptionHandling . . . . 8 matches
* begin안에서 실행하다 예외가 발생하면 rescue 구문으로 컨트롤이 이동된다.
* 예외를 처리후 다시 이전 코드로 돌아가고 싶다면 retry하면 된다.
end
* else
* throw에서 심볼(라벨)을 이용하면 중첩된 코드 구문을 바로 탈출할 수 있다.
* Kernal.raise(또는 Kernal.fail)로 예외를 발생시킨다
= Exception Extend =
* 예외 클래스를 상속하여 새로운 예외 클래스를 추가할 수 있다
- RubyLanguage/InputOutput . . . . 8 matches
* 파일을 new로 부르지 않고 사용할 수 있다.
* << 메서드는 매개변수 전달시 객체를 to_s 메서드로 문자열 변환한다.
* each_line : 세퍼레이터를 넘겨 한 단위(세퍼레이터로 구분)씩 읽어옴
* foreach : 한 줄씩 읽어옴. 다 읽은 후 파일을 자동으로 닫는다.
* read : 문자열로 읽어옴
* readlines : 배열로 읽어옴
client = TCPSocket.open("IP주소", '프로토콜');
client.send("상대방", 0) # 0은 표준패킷 의미
- SOLDIERS/정진경 . . . . 8 matches
if(resx>k){
if(resy>k){
X축으로 움직이는 것과 Y축으로 움직이는 것을 독립적으로 계산해도 최적해가 나옵니다.
중심으로 삼을 좌표를 찾는게 중요한데요, 저같은 경우 동적계획법을 통해 모든 경우를 살펴봤습니다.(정렬 후 선형 탐색)
- SRPG제작 . . . . 8 matches
= SRPG 프로젝트 =
* 혼자하는 프로젝트로 전향했습니다. 과연 할 수 있을지는 미지수.
1. 이것을 일단. 그림판으로 낙찰. (그 이외 BMP를 편집할 수 있는 것이라면 OK).
2. 타일 한개의 크기는 40x40으로 정함.
1. 맵을 편집하는 프로그램. 위에서 만든 타일들을 사용하여 맵을 만든다.
1. 위에서 만들어진 맵과 이벤트를 사용하여 프로그래밍을 한다.
["프로젝트분류"]
- ScheduledWalk/재니&영동 . . . . 8 matches
if (i != 0)
if (x == -1)
if (y == -1)
if (x == maxCol)
if (y == maxRow)
if (BoardArray[j] != 0)
cout << endl;
cout << "총 이동횟수 : " << count - 1 << endl;
- SchemeLanguage . . . . 8 matches
MIT에서 가르치는 프로그래밍 언어로, 흔히 우리가 알고 있는 C/C++, Java 등과는 완전히 다른 개념의 함수형 언어이다.
* http://zeropage.org/pub/language/scheme/quickref.txt - Quick Reference로 프로그래밍을 할 때 참고할만한 자료
* http://zeropage.org/pub/language/scheme/schemedoc.pdf - Tutorial 정도로 사용할 만한 자료
* http://www.htdp.org/ - How To Design Programs. 비 전공자들을 위한 Scheme Language 책으로, 인터넷에 공개되어있다. 위의 PLT Scheme 을 인스톨하면 Help 탭에 HTDP 링크가 생긴다.
(if (= x 0) 1
(if (= y 10)
- ServerBackup . . . . 8 matches
1. 해당 언어로 ftp접속
* (./) 작은 파일 하나를 zeropage@neocoin.net 으로 올린다.
f = open(filename,'rb') # file to send
s.storbinary('STOR %s'%filename, f) # Send the file
* 문제 ~ DNS Server 가 죽었음 (or 잘못 설정되어 있음 165.194.35.222 서버 확인 필요) 그래서 주소 기반으로 외부로 ping을 날릴수 없다.
* 해결 ~ {{{/etc/resolv.conf}}} 에 무료 dns 서버 등록 후 교내 서버는 가장 마지막 순위로 변경 http://theos.in/windows-xp/free-fast-public-dns-server-list/
=== 앞으로 할일 ===
- SimpleDelegation . . . . 8 matches
위임을 사용할때, 당신이 필요한 위임의 묘미(?)를 분명하게 해주는 도와주는 두가지 이슈가 있다. 하나는, 위임하는 객체의 주체성이 중요한가? 이다. 위임된 객체는 자신의 존재를 알리고 싶지 않으므로 위임한 객체로의 접근이 필요하다.(?) 다른 하나는, 위임하는 객체의 상태가 위임된 객체에게 중요한것인가? 그렇다면 위임된 객체는 일을 수행하기 위해 위임한 객체의 상태가 필요하다.(너무 이상하다.) 이 두가지에 no라고 대답할 수 있으면 Simple Delegation을 쓸 수 있다.
elements->do(blockFunc); // Array에게로 위임
위임하는 객체(delegating object)는 위임 객체 또는 위임자 객체, 위임된 객체(delegate)는 대리자로 번역할 수 있을 것 같고(차라리 영어를 그대로 쓰는게 좋을지도 모르겠네요), 주체성은 참조를 의미하지 않을까요?
객체의 주체성(?)에 대한 예를 들면(제대로 이해했는지는 잘모르겠지만... ^^;)
이런 식으로 서버에게 참조를 전달하고 서버는 누가 보낸 메시지인지를 알기 때문에 처리 결과를 해당 클라이언트에게 보냅니다. 클라이언트는 서버가 보낸 처리 결과가 성공이면 UI를 업데이트하고 실패하면 메시지를 보여준다거나 하시는 식으로 처리할 수 있을꺼 같네요.--[Benghun]
- Slurpys/박응용 . . . . 8 matches
if not target: return False
if not arg.match(target):
if arg.match(target):
if not target: return False
if t != moreword:
if count == 0 : return False
if pat.remain(): return False
if __name__ == '__main__':
- SmallTalk/문법정리 . . . . 8 matches
* 실제로 쓰이는 문법은 아니다. 하지만, Smalltlak 설명에서 해당 메소드가 어디에서 발현되는지를 알수 있게 만들어 준다.
UndifinedObject(Object)>>doesNotUnderstand:
* ^ 리턴 : Smalltalk 모든 메소드는 리턴한다. C에서와 같은 void는 없다. 그래서 명시적으로 리턴 안해주면 self를 리턴한다.
* 선택자는 단일 식별자이며, 인수는 없다.(the selector is a single Identifier, there are no arguments)
* 키워드란 콜론(:)이 뒤에 붙는 식별자이다.(a keyword is an Identifier followed by colon ":" )
일반적으로는 20이겠지만 SmallTalk에서는 30이다.--; 열라 신기하다.
읽은지 얼마 안되었는데도 스몰토크의 메소드 길이는 7줄을 넘지 않는다는 말이 나온다. 그러면서 extract method(이 말을 직접적으로 쓰진 않았지만)도 나온다.
1. 메세지는 왼쪽에서 오른쪽으로 진행한다. Evaluation is done left to right.
- SmithNumbers/신재동 . . . . 8 matches
if (i % MAIN_PRIME_NUMBER[j] == 0)
else if (i / MAIN_PRIME_NUMBER[j] <= MAIN_PRIME_NUMBER[j])
if(testNumber % MAIN_PRIME_NUMBER[i] == 0)
if(prime == 1)
if(isSmithNumber(testNumber))
cout << smithNumbers[i] << endl;
문제 설명에 나온대로 그냥 무식하게 만듬. --재동
- StackAndQueue/손동일 . . . . 8 matches
DeleteMe - [StackAndQueue/손동일] 로 [페이지이름고치기] 했습니다 - [임인택]
if (choice==1)
else if (choice==2)
else if (choice==3)
cout << " 1 : 입력"<<"\t"<<" 2 : 빼기"<<"\t"<< " 3 : 보여주기"<<endl;
cout << "숫자를 입력하세요.. "<< endl;
- TAOCP/Exercises . . . . 8 matches
0000~0099메모리 셀을 모두 0으로 만드는 프로그램
프로그램을 3000부터 로드해야 되는데... 아직 모르는게 많다
프로그램은 3000부터 시작
프로그램 실행 뒤에도 모든 메모리 셀의 값이 변하지 말아야 함.
X^13이 rA에 들어가는 프로그램 작성(X^13이 한 WORD를 넘지 않는다고 가정)
+ e d c b a 가 rA에 저장되는 프로그램 작성
- Telephone . . . . 8 matches
다음과 같은 프로그램을 만드세요.!
미국에서는 이발소 TV 광고의 경우 전화번호와 동시에 'HAIRCUT' 이라는 문구를 보여준다. 'HAIRCUT' 은 전화기의 번호의 각 영문에 대응되기 때문에 전화번호로 번역이 가능하다.
즉, 'HAIRCUT' 의 경우 밑의 전화기 자판을 보면 H 는 4, A 는 2 ... 등에 각각 대응되므로 424-7288 이 된다.
자 이러한 광고문구 글을 해당 전화번호로 번역해주는 프로그램을 만들어보자.!
"""자신의프로그램이름""" < test1.in > out.txt
- UglyNumbers/구자겸 . . . . 8 matches
if ( !unum(i) ) {
if ( num==3 || num==2 || num==5 )
if ( num%2==0 )
else if ( num%3==0 )
else if ( num%5==0 )
else
- UglyNumbers/이동현 . . . . 8 matches
처음엔 어글리넘버의 규칙성을 찾았다. 이것으로 너무나 많은 시간을 허비하고나서
규칙성은 없다(실제로 없는지는 모름)고 결론.(있었다면 0.1초내로 답이 튀어 나올것이므로 '4초내로'라는 단서도 없었을듯..)
if (((Double) arr.get(i)).doubleValue() > n) {
} else if (((Double) arr.get(i)).doubleValue() == n)
- User Stories . . . . 8 matches
User stories also drive the creation of the acceptance tests. One or more automated acceptance tests must be created to verify the user story has been correctly implemented.
One of the biggest misunderstandings with user stories is how they differ from traditional requirements specifications. The biggest
difference is in the level of detail. User stories should only provide enough detail to make a reasonably low risk estimate of how long the story will take to implement. When the time comes to implement the story developers will go to the customer and receive a detailed description of the requirements face to face.
Developers estimate how long the stories might take to implement. Each story will get a 1, 2 or 3 week estimate in "ideal development time". This ideal development time is how long it would take to implement the story in code if there were no distractions, no other assignments, and you knew exactly what to do. Longer than 3 weeks means you need to break the story down further. Less than 1 week and you are at too detailed a level, combine some stories. About 80 user stories plus or minus 20 is a perfect number to create a release plan during release planning.
Another difference between stories and a requirements document is a focus on user needs. You should try to avoid details of specific technology, data base layout, and algorithms. You should try to keep stories focused on user needs and benefits as opposed to specifying GUI layouts.
- WeightsAndMeasures . . . . 8 matches
여러 줄이 입력되는데, 한 줄에 한 쌍의 정수가 입력된다. 첫번째 정수는 체중을, 두번째 정수는 거북이의 체력을 나타낸다. 거북이의 체중은 그램 단위로 입력된다. 즉 체중이 300g이고 체력이 1,000g인 거북이등 위에는 700g을 올려놓을 수 있다. 거북이는 최대 5,607마리이다.
테스트가 너무 적은 듯. 풀기는 풀었는데 체점하려니 python은 지원하지 않아 확인 못함...=,= 나중에 C++로 변경해서 해봐야겠음. --재동
테스트 케이스가 필요하다면 꽁수가 있기는 하다. Java로 standard input으로 읽는 라인을 합쳐다가 모조리 특정 URL에 포스트 하도록 하는 코드를 만들어 업로드 한다. 그러면 심사때 사용하는 테스트 케이스를 알 수 있다. --JuNe
나와 있는대로 적은 것이지. 원문보고 해 -- 재선
배경설명 - Yertle이라는 거북이 왕이 더 멀리 내려다 보려고(자신이 내려다 보는것들을 자신이 지배하고 있다고 생각함) 왕좌, 한마디로 앉을 곳을 만드는데 거북이들을 쌓아서 만드는것이다. 처음엔 10마리 정도로 시작하다가 욕심이 끝이 없어서 계속 계속 거북이들을 쌓는다. Mack은 맨 밑에 깔려있던 거북이 이름.
- Yggdrasil/020523세미나 . . . . 8 matches
if(k==9)
else {
if(k==0)
else{
if(k==9)
else {
if(k==0)
else{
- ZPBoard/PHPStudy/쿠키 . . . . 8 matches
* 쿠키(Cookie)는 클라이언트 컴퓨터의 하드에 해당 컴퓨터의 여러가지 정보가 저장된 파일을 지칭하는 말입니다. 현재 많은 사이트들이 이를 이용해서 여러가지 서비스를 제공하고 있습니다. 예를 들자면 제로위키에서는 이를 이용해서 로그인 서비스를 제공하고 있답니다.
boolean setcookie ( "이름" [, string value [, 제한시간 [, "경로" [, "주소" [, 보안]]]]])
* 뒤에 경로, 도메인주소, 보안은 사용안해도 된다.
* 쿠키는 그 쿠키를 유효하게 하기 위해 페이지를 재로딩하기 전까지는 작동되지 않는다.
* 쿠키는 생성될 당시의 인수(parameter)를 그대로 넣어 삭제해야 한다.
setcookie("CookieName", $value, time()+3600, "경로", "도메인주소", 1);
setcookie("CookieName", $value, time()-3600, "경로", "도메인주소", 1);
- ZPHomePage/20041228 . . . . 8 matches
* 위키를 홈페이지 속으로
* 게시판과 위키 로그인 통합
* 제로페이지 소개 페이지 제작
* 캐릭터, 로고, 배너 제작 => 후에 뱃지 제작에도 이용
* 이달의 인물소개(집중적으로 질문 가능)
* RSS로 게시판내용 출력
* 다양한 것들을 경험해보는데 중점, 기본적으로 jsp 공부
* 포토샵으로 메인레이아웃 디자인
- ZP의 나아갈 길 . . . . 8 matches
조직은 매순간 선택의 기로에 서게 되는데 지리멸렬 하지 않기 위해서는 그 기준이 정체성과 가치체계에 바탕을 두어야한다
개인적으로 먼저 회장이 생각한 바를 적어줬으면 함 - 김정현
제로페이지의 정체성과 미래에 대해서는 수도 없이 논의되었었다. 내가 1학년 때에도 그랬고 내가 회장이 되어 데블스와 통합했을때도 그랬었다. 내가 3학년이 되어 휴학을 했을 때도 그랬고 이젠 내가 제대 후 복학했는데도 같은 논의는 계속 되고 있다. 이는 발전하는 모습일까 아니면 계속해서 맴도는 정체된 모습일까. 나는 온라인 상의 회의를 결코 가볍게 여기지는 않는다. 하지만 좀 더 활동적으로 실행에 옮기기 위해서는 오프라인 모임이 절대적이라고 생각한다. 제로페이지가 정말로 모습을 바꾸고 싶다면 어느정도 알을 깨고 나와야하는 고통이 따를 것이라고 생각한다. - 이창섭
오프라인으로 말씀드렸습니다. - 허아영
= 제로페이지란 =
- ZeroPageServer/Log . . . . 8 matches
* 잡담으로 ZeroWiki에 부족한 가지들 생각 해보기
''일단 쉘에서 직접 실행해 보고, {{{~cpp tail -f /etc/httpd/logs/error.log }}}를 해놓고 웹으로 실험해 보길. 그리고 cgi-handler 설정 확인해 볼 것. python이라면 cgitb를 써볼 것. --JuNe''
* Q : domain 에 관련된 문의입니다.. ["ZeroPageServer"] 에서는 user.domain 으로 자신의 home directory 에 접근할 수 없습니까.? 또 이것은 관련없는 질문인데..-_- 저렇게 셋팅을 하려면 어떻게 해야하죠.. named.conf 랑.. /var/named 에서 관련파일 다 수정했는데도... username.domain.com 에 접속을 하니.. www.domain.com 에 접속이 되는군요..-_- - ["임인택"]
* Q : 현재 ZeroPage의 서블릿컨테이너가 사흘이 멀다하고(좀 부풀려서 ^^) 운명을 달리하시는데, 데비안 버전의 Resin 문제인건가요? 아니면 파악된 다른 원인이 있습니까? 현재 2.1.6 버전이 나와있던데, 업그레이드해볼 계획이 있나요? 또는, 다른 서블릿 컨테이너를 사용해보는건 어떤가요? Resin 2.0 대 기준으로 스트레스 테스트시 죽는 일은 있었습니다. 누군가 ZeroPageServer에 스트레스테스트를 하고 있나요?
* A: 따로 스트레스 테스트 한적은 없습니다. 흠. 업그레이드 하는편이 좋겠습니다. 1월 이내로 하겠습니다.
''간단한 resin log analyzer를 만들어두었습니다. admin 안쪽 RLA.jsp로 확인바랍니다. 참, resin이 root 계정으로 동작하던데, 권한을 바꾸길 바랍니다. (권한을 바꿔줄때, 그 부산물 - jsp가 컴파일된 자바 소스나 클래스등 - 도 함께 권한을 바꿔줘야 합니다.)''
- ZeroWikiHotKey . . . . 8 matches
3. 단축키로 기능을 분류하지 않고. 기능으로 단축키를 분류하였습니다. 단축키로 기능을 분류한 페이지는 [woodpage/VisualC++HotKeyTip] 가 있습니다.
== Edit모드로 바로가기 ==
== User Preference 바로가기 ==
== 이동으로 바로가기 ==
- [Lovely]boy^_^/EnglishGrammer/Passive . . . . 8 matches
active 문장의 목적어가 passive 문장의 주어로 간답니다. 그냥 지나치기 아쉬우니까 예제 하나더.
B. When we use the passive, who or what causes the action is often unknown or unimportant.(그리니까 행위주체가 누군지 모를때나 별로 안중요할때 수동태 쓴대요)
If we want to say who does or what causes the action, we use by(수동태에서 누가 했는지 알고 싶으면 by 쓰래요)
You can use get to say that something happens to somebody or something, especially if this is unplanned or unexpected.
We use get mainly in informal spoken English. You can use be in all situations.(항상 be 쓸수있단다. 고로 귀찮은 get쓰지말자... 클래스에서 get 보는것도 지겨운데..--;)
But sometimes upposed to has a different meaning. Something is supposed to happen
= it is planned, arranged, or expected. Often this is different from what really happens
This means : Lisa arranged for somebody else to repair the roof. She didn't repair it herself.
C. Sometimes have something done has a different meaning.
- [Lovely]boy^_^/USACO/GreedyGiftGivers . . . . 8 matches
* 역시 영어가 부족해 ㅠ.ㅠ 해석을 똑바로 했으면 금방 했을텐데..;;
* 혹시 map에 삽입할때 정렬 안되게 하는 법 없나요?;; 아무리 해도 방법이 안 떠올라서 따로 string 벡터를 만들어서 저장했는데;; 너무 더러워져서;;
ifstream fin("gift1.in");
ofstream fout("gift1.out");
if(numto)
if(tempmoney - dist * numto)
fout << ManList[i] << " " << List[ManList[i]] << endl;
- eXtensibleStylesheetLanguageTransformations . . . . 8 matches
Extensible Stylesheet Language Transformations, or XSLT, is an XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized (output) by the processor in standard XML syntax or in another format, such as HTML or plain text. XSLT is most often used to convert data between different XML schemas or to convert XML data into web pages or PDF documents.
XSLT was produced as a result of the Extensible Stylesheet Language (XSL) development effort within W3C during 1998–1999, which also produced XSL Formatting Objects (XSL-FO) and the XML Path Language, XPath. The editor of the first version (and in effect the chief designer of the language) was James Clark. The version most widely used today is XSLT 1.0, which was published as a Recommendation by the W3C on 16 November 1999. A greatly expanded version 2.0, under the editorship of Michael Kay, reached the status of a Candidate Recommendation from W3C on 3 November 2005.
XSLT를 잘 이용하는 곳의 하나로 feedburner를 뽑고 싶다. 한때 MS XSLT 구현 방법에 대해서 말도 많고 탈도 많았으나... 뭐 어쨋든 나름대로들 잘 사용하고 있는 듯 보임.
MSXML 을 이용해서 만들어진 XML을 HTML로 변환하여 얻어내는 것이 가능함. MSDN 참조
XML+CSS 로는 데이터의 바꾸는 것이 불가능하지만 XSLT를 이용할 경우 아예 XML 구조 자체를 변경하는 것이 가능하다. - [eternalbleu]
- iPhoneProgramming/2012년프로젝트 . . . . 8 matches
* 진행 방식 : 전반적인 이해까지는 같이 공부하다가, 비슷한 영역의 프로그래밍을 각자하면서 App 제작.
* 비고 : 스터디로 보일 수 있으나, 프로젝트의 요소를 강하게 주어 각자 진행 할 생각.
* iPhone 프로그래밍 페이지를 만들었으나, i Phone이라고 되어 기분이 나쁨.
* 한종이는 책에 있는걸 그대로 해보는 것으로 감을 잡고 있음
* 하지만 나는 그 이전에 언어에 대한 좀 더 상세한 이해라던가, 정확히 어떻게 동작하는지를 알아야 자유로운 프로그래밍을 할 수 있다고 충돌중.
- iruril . . . . 8 matches
- 나자신으로부터의 혁명, 마음속의 향기를 느낄수 있는 음악, 사람들 속의 공간, 남보다 내가 느낄수 있는 모든것 이런것들이 내가 진정 좋아하는 것~*
* 홈페이지 : [http://iruril.wo.to] - 기억에서 사라진지 오래였는데 ocu 홈페이지 제작을 빌미로 잠시 부활 -_-;
* [로보코드]
|| 실제로 쓰이는 게임기획 - 이렇게 한다 || 제우미디어 ||대강읽음 ||
* [실시간멀티플레이어게임프로젝트]
* JAVA 텀 프로젝트
* [http://zeropage.org/~iruril/l2.css] - 요즘 밀고 있는 이효리 Wiki css 나름대로 상큼~
* 로그아웃좀 하고 댕겨라. --[구자겸]
- java/reflection . . . . 8 matches
* classpath를 이용해 현재 프로젝트내의 class가 아닌 외부 패키지 class의 method를 호출하는 방법.
* 외부 프로젝트는 jar로 패키징 한다.
* jar파일에 존재하는 class를 현재 프로젝트에서 동적으로 호출할 수 있다.
* ORM(Object-Relational-MApping)이 아닌 방식으로 DAO를 만들 때 사용되기도 한다.
* jar파일로 패키징한다. (.java와 .class만 따로 패키징하는 방법은 [http://kldp.org/node/75924 여기])
- sakurats . . . . 8 matches
* OCU때문에 반 강제적으로 PHP에 손대고 있습니다.
* 진로를 막연하게 고민합니다.
* 뒤늦은 공부에 제로위키는 정말 많은 도움이 되고 있습니다. 언제쯤 저도 도움이 되는 사람이 되면 좋겠네요.
참고적으로 하드웨어 하는데는 부속을 사고 하드웨어를 조립하거나 테스트할
진로를 막연하게 고민하고 있습니다. -- 혜욘
음.. 나도 막연히 고민하는데.. 어느 길로 가든 충격이 크지 않게 준비를 해두면서 막연한 고민을 구체화시키는 게 현재 내가 할 수 있는 일 같아. ^^ --창섭
앗~ 혜연선배님두 제로페이지였구나...^^ 몰랐는데..^^; --상욱
wiki:NoSmok:노스모크 에서 여기 링크되어 있는 것을 보고, 네가 전에 제로페이지 회원이라고 했던 것이 기억나서 와봤는데, 역시 있구나. 반갑다. 공부는 잘 되니? -- wiki:NoSmok:이응준
- zennith/source . . . . 8 matches
time_t start, end;
if (i % arr[j] == 0) {
if (flag) {
end = clock();
printf("\n%f\n", (double)(end - start) / CLK_TCK);
이 컴비네이션 함수.. 제대로 푼건지 확신이 안가는군요. 6c3 같은거로 테스트 해보면 제대로 돌아가는 거 같은데요.
- 강희경/그림판 . . . . 8 matches
제로위키 로고 제작 할 때 문득 떠오른 이미지.
=== 제로위키 로고 ===
=== 제로페이지 로고 ===
[바퀴벌레에게생명을] 프로젝트.
게임제작 프로젝트 [걸스패닉]용 이미지.
- 개인키,공개키/최원서,곽세환 . . . . 8 matches
ifstream fin("input.txt");
if (!strcmp(a, "") && fin.eof())
cout << endl;
fout << endl;
ifstream fin("output.txt");
if (!strcmp(a, "") && fin.eof())
cout << endl;
fout << endl;
- 걸스패닉 . . . . 8 matches
*게임의 종류가 바뀌었습니다. 그러나 편의성을 위해 그대로 걸스패닉이라는 이름을 따르겠습니다.--[강희경]
* 프로젝트이름 바꾸자 너무 단순하다 좀더 엘레강스~하게
* 왜 진영이아이디로 만들어 --[iruril]
* 이제 프로젝트 시작 할 시기가 아닌가? 언제 만나지? --[강희경]
* 오늘 프로그램에 이미지까지 연동시켜보자.--[강희경]
* Upload:test.gif --[강희경]
* 10월 두째주까지 완성하기로 하자! --[구자겸]
[프로젝트분류]
- 남자들에게 . . . . 8 matches
* 이책을 읽게 된 동기 : 솔직히 이책은 작가의 이름때문에 읽게 된거 같다. 예전에 로마인 이야기를 읽으면서 참 재밌다고 생각해서 그 책을 지은 작가도 알고 있었다. 그 작가가 바로 시오노 나나미다. 그리고 어떤 사람이 이 책을 추천하는 글을 본것도 이책을 읽게된 동기이다.
* 감상 : 음 이책은 주관적인 면이 강한거 같다. 뭐 이책의 특성상 자기의 의견이 많이 드러날 수 밖에 없는거 같다. 이책은 수필 스타일로 씌어 졌다. 그래서 평소 로마인 이야기에서와 같이 뭔가 자신의 모습은 감추는 듯한 시오노 나나미씨의 모습과는 다르게 이 책은 온통 시오노 나나미씨의 생각들이다. 그래서 더 흥미로웠는지도 모른다. 이책에서는 시오노 나나미씨가 남자들에게 말하고 싶어하는 여러가지 내용이 나와 있었다. 음 바로 어제지만 좀 많이 까먹어서 별로 많이 생각나지는 않지만 몇가지만 적으면....
* 너무 원칙에만 충실하려고 하고 다른 사람에게도 그 원칙을 강요하는 사람. 어느정도 공감이 가는 내용이었다. 그리고 나에게 적용해서 내가 고칠점은 무엇인가도 생각해 보았다. 자신이 가지고 있는 원칙이 무조건 옳고 다른 사람도 그렇게 해야 한다고 생각하는것은 정말 피해야할 생각인거 같다.
- 넥슨입사문제 . . . . 8 matches
요새 카트라이더로 말이 많은 넥센이라는 회사가 있지요. 건너 건너 아는 사람이 이 회사에 입사를 하려고 이력서를 냈더니 서류는 통과했습니다. 한데 면접 보기 전에 이 3 문제를 주고 풀어서 메일로 제출하라고 했더랍니다. 이 중 3번 문제가 재미있었습니다. :) --재동
이걸... 프로그램으로 짜서 제출하는 문제인건가요? 아니면 답만?;; -정수민
당연히 프로그램. 프로그램을 보내면 회사에서 문제에 나오지 않은 테스트셋으로 프로그램이 맞는 지 확인하겠지. --재동
- 당신의큰돌은무엇입니까 . . . . 8 matches
시간관리 요령을 배우기 위해 많은 학생이 커다란 강의실에 모였습니다. 그런데 강의실에 들어온 시간관리 전문가는 엉뚱하게도 커다란 항아리 하나를 테이블 위에 올려놓고 주먹만한 돌을 항아리 속에 하나씩 넣기 시작했습니다. 그리고 항아리 속에 동이 가득 차자 학생들에게 물었습니다. “ 이 항아리가 가득 찼습니까? “ 학생들은 어리둥절했지만, 이구동성으로 대답했습니다. “예!”
학생들은 이제 확신에 찬 목소리로 “아니오”라고 대답했습니다.
그는 빙긋 웃으며 물을 한 주전자 꺼내 항아리에 부었습니다. 그리고 학생들에게 물었습니다. “이 실험의 의미가 무엇이겠습니까?” 한 학생이 손을 들더니 대답했습니다. “너무 바빠서 스케줄이 꽉 찼더라도, 자신이 진정으로 노력하면 새로운 일을 그 사이에 추가로 할 수 있다는 것입니다.” 다른 학생들도 그 말에 동의하는 듯 고개를 끄덕였습니다. 그런데 시간관리 전문가는 뜻밖에도 고개를 젓는 것이었습니다.
최선을 다해서 열심히 사는 것도 중요하지만, 자신의 삶에서 가장 소중한 것이 무엇인지 잊고 살아가는 경우가 많습니다. 그것이 꿈이든 사랑이든 건강이든 가족이든 우선순위를 정해놓고서 이루려고 노력하거나 지키려고 노력한다면, 내 인생의 가치는 더욱 소중해 지겠지요
내가 알고 있는바로는 '천재B반을 위한 Time Management' 에 있던 글로 추정 -- ["1002"]
- 데블스캠프2003/셋째날/후기 . . . . 8 matches
* 오늘은 많은 언어를 접해볼 수 있어서 좋았다.. python 과 scheme 글구.. squeete? 암튼 색다른 경험이었다... 모든 프로그램에 있어 창의적인 생각으로 문제를 해결할 수 있었으면 좋겠다.... 6분 남았다.. 아~ 얼른 축구보러 가고 싶다... -- 손동일
* 공부해보고 싶은 새로운 내용을 배워 기분 좋다. 문제에서 하루 풀려서 머리가 너무 잘 돌아간다.ㅎㅎ -[Leonardong]
* 현재 램덤워크를 해보는중 풀릴듯 한데 이상하네 리턴값이 문제인거 같은데 어떠케 잡아야 할지 모르겠군;; 오늘 접한 많은 언어들 식상한표현이겠지만 너무나 좋았다. 씨뿔뿔과는 다른 언어들.. 오늘까지 하면서 이번 방학동안에 멀 해야 하는지를 깨달았다 마냥 놀아서는 도저히 남을 따라가지 못함을 남을 따라간다기 보다는 더욱 발전해야할 그리고 앞으로 발전 되있을 나의 모습을 보기 위해서. 더욱 힘을내자. 지금의 어려움은 아무것도 아니다. 아자!! -- [변준원]
* 나 역시 새로운 언어들을 보면서 오길 잘 했다는 생각이 들었다. 앞으로 종종 사용할 수 있는 언어들은 사용할만한 기회가 오면 좋겠다. --[snowflower]
* 넷째날 시작하기 몇시간 전에 쓰는 후기 -ㅂ-; 새로운 언어 배운것 정말 재밌었구요^^ OOP에 대해 조금이나마 감이 잡힌것 같습니다. 개인적으로 python을 공부해보고 싶은 생각이..^^ scheme 이랑 squeak도 재밌었어요 ^^ 우물안 개구리가 되지 않도록 노력하겠습니당! 아..그리고 랜덤워크 거의 다짠거같은데 뭐가 문제지 ㅠ_ㅠ--[방선희]
- 데블스캠프2009/수요일/JUnit/서민관 . . . . 8 matches
if (operator1 == '+')
else if (operator1 == '-')
else if (operator1 == '*')
else if (operator1 == '/')
Java로 만든 계산기에서 계산기 class 부분의 구현
- 데블스캠프2010/첫째날/오프닝 . . . . 8 matches
1. 위키 사용자 등록 후 로그인한다.
* nForge 같은 프로젝트 관리 사이트와 연동하면 효과가 쑥쑥
3. 데블스캠프 2010 프로젝트에 들어가서 '''__세디츠__'''에게 자신의 아이디와 닉네임 쪽지로 보낸다~
4. 자기 이름으로 된 폴더를 만들어서 커밋해본다~
5. 텍스트파일 다운로드 해보기~
|| [이충현] ||잉충 << 바로 접니다.||
|| [일공환] ||안녕하세요 제 성은 김씨입니다.새로운 성이다'ㅁ' 김일공환||
- 데블스캠프2011/다섯째날/HowToWriteCodeWell/송지원,성화수 . . . . 8 matches
if(ta){
if(floor + i > max) move(max);
else move(floor + i);
if(floor - i < min) move(min);
else move(floor - i);
if(floor == min){
// 최저 층에서 맨 밑에층으로 더 down실행시 해당 층만큼 최저층이 늘어나고
// 현재 층이 그 층으로 바뀐다.
- 데블스캠프2011/다섯째날/HowToWriteCodeWell/정의정,김태진 . . . . 8 matches
if(i == 10 || i == 90){
else if(status == 1){
elevator.overMaxFloor(); // print 하늘나라로.
elevator.underMinFloor(); // print 지옥으로.
elevator.callElevatorUp(40); //엘리베이터 밖에서 호출된 층으로 오도록 하는거.
elevator.callElevatorDown(70); //엘리베이터 밖에서 호출된 층으로 오도록 하는거.
assertEquals(70,elevator.floor()); //그냥 그대로
- 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/namsangboy . . . . 8 matches
if not wordfreqdic[eachclass].has_key(word):
def classifydocument(document):
if __name__=="__main__":
totalprob = classifydocument(line)
if eachclass=="economy":
if totalprob>0:
elif eachclass=="politics":
if totalprob<0:
- 땅콩이보육프로젝트2005 . . . . 8 matches
* 휘동: 주기적으로 작동하는 엔진
* word를 기준으로 next word를 찾는다. 필요하면 frequency도 이용한다.
[땅콩이보육프로젝트2005/개발일지]
[땅콩이보육프로젝트2005/유스케이스]
* [http://www.alicebot.org/ ALICE] 뢰브너 라는 인공지능 대화 로봇 대회에서 우승한 ALICE 라는 프로그램, 사이트 가면 실제로 대화해 볼수 있음
* [http://www.aawoo.com/ 와우닷컴] 국내 최초라고 하는 영어 채팅 로봇
- 레밍즈프로젝트/프로토타입/MFC더블버퍼링 . . . . 8 matches
SeeAlso) [레밍즈프로젝트], [레밍즈프로젝트/프로토타입], [(zeropage)MFC]
Test는 OnDraw 상에서 하였다. OnDraw는 Invalidate를 통해서 OnPaint가 호출되면 자동으로 호출된다.
OnDraw의 경우 도큐먼트 클래스와 연관 될 수 있다.
//end DoubleBuffering
클래스 내부에는 윈도우 핸들이 없기 때문에 GetClientRect를 사용하지 못한다. 따라서 전달인자로 CRect가 전달된다.
그림을 뿌려주고 동적으로 생성된 메모리와 오브젝트들의 할당을 해제한다.
- 마방진/민강근 . . . . 8 matches
if(h<0 && y>=0 && y <=m)
if(h>0 && y>m )
if(h<0 && y>m )
if(h>0 && y>=0 && y <=m)
cout<<endl;
if(h<0)
if(ma[h%m][(first+y)%m] == 0)
else
- 몸짱프로젝트/InfixToPrefix . . . . 8 matches
if aToken in self.precedence:
if self.isOperator(aToken):
else:
self.list.append(aToken)
if self.isOperator(self.list[0]) and \
else:
if __name__ == '__main__':
[몸짱프로젝트]
- 문서구조조정 . . . . 8 matches
위키는 ["DocumentMode"] 를 지향한다. 해당 페이지의 ["ThreadMode"]의 토론이 길어지거나, 이미 그 토론의 역할이 끝났을 경우, 페이지가 너무 길어진 경우, 페이지하나에 여러가지 주제들이 길게 늘여져있는 경우에는 문서구조조정이 필요한 때이다.
새로 페이지를 만들어주거나, 기존의 스레드 토론에서의 의견, 주장 등의 글들을 요약 & 정리 해줌으로서 해당 주제를 중심으로 페이지의 내용이 그 주제를 제대로 담도록 해준다. 이는 프로그램 기법에서 일종의 ["Refactoring"] 과 비슷한 원리이다.
- 미로찾기/황재선허아영 . . . . 8 matches
if(board[y+yPos[i]][x+xPos[i]] == GO)
if(board[y+yPos[i]][x+xPos[i]] == HADGONE)
if (count == 1 && count2 == 0)
else if (count == 1 && count2 >= 1)
else if (count >= 2) {
if(board[y+yPos[i]][x+xPos[i]] == GO)
- 반복문자열/허아영 . . . . 8 matches
다음번에 짤 때에는 선배님들께서 짜 주신 형태로 짜는것이 좋다는 말씀이신가요? - [허아영]
내가 너무 아무생각없이 나눈건가..ㅎㅎㅎ 앞으로 나눌때 신경좀 써야겠다는..;;
(짤때 CAUCSE와 5를 상수로 만들어 볼까라는 생각을 해보긴 했지만서도, 전역변수가 이유없이 늘어나는걸 안좋아 하는데..
거기다 지역변수로 하면 각 함수에 넣어버리니 수정하기가 힘들지 않을까 하는 생각에 그냥 해버렸건만..;;)
CAUCSE 문자열도 함수 입력으로 넣어 주면 좀 더 변화하기 쉬운 소스가 되지. 그리고 message나 messages 같은 함수 이름도 좀 더 명확하게 하는 게 좋을 거 같아. 나 같으면 밑에 처럼 풀 거야. 함수로 추출해 낼 때는 의미 단위로 추출하는 게 좋아. 그래야 함수 이름을 지을 때 편하지. 역으로 함수 이름을 짖기가 힘들다면 잘못된 설계가 되는거지. --재동
- 비밀키/임영동 . . . . 8 matches
ifstream fin("input.txt");
if(fin.get()=='\n')
ifstream fin1("input.txt");
for(string::iterator i=str.begin();i!=str.end();i++)
cout<<str<<endl;
for(i=str.begin();i!=str.end();i++)
fout<<str<<endl;
cout<<"-> "<<str<<endl;
- 사과나무/과제방/1회차/김도익 . . . . 8 matches
scanf 함수는 사용자로부터 자료를 입력받는 함수입니다.
scanf() 함수는 입력란을 만들어 자료를 입력받는 함수입니다. 입력된 자료는 매개변수로 지정한 변수에 대입됩니다. 문장 형식을 통해 입력된 자료를 변수에 대입한다는 점에서 변수의 값을 문장 형식에 사용하는 printf() 함수와는 출력 방향이 반대인 셈입니다
scanf() 함수를 사용하기 전에 printf() 함수로 안내문을 보여주는 것이 좋습니다.
scanf() 함수로 입력된 자료는 변수에 저장됩니다. 이때 입력받을 수 있는 자료형의 종류가 정해진 상태이므로 사용자가 제대로 입력해주어야 합니다. 따라서 scanf() 함수로 자료를 입력받기 전에 어떤 자료를 입력해야 하는지 알려주는 안내문이 필요합니다. 이 안내문은 printf() 함수를 통해 미리 보여줄 수 있습니다.
* printf("형식",형식에 필요한 요소들 ... ) 형식으로는 %d, %lf, %s ... 등이 있다. 이런걸 바랬는데 내가 과제 설명을 너무 대충 해줬구나, my fault - [고한종]
- 새싹교실/2011/學高/5회차 . . . . 8 matches
* arithmetic operator(이거 모르면 초등학교로 돌아가세요)
* increment/decrement, postfix/prefix: 이거 모르면 곧바로 질문합니다. 저 자는데 깨워도 되요(물론 ~~안~~못 받겠지만)
앞으로는 더 열심히하겠습니다 ~
그리고 새싹 선생님 열정적으로 가르쳐주셔서 감사해요 ㅋㅋㅋ
i++와 ++i는 단독으로 쓰일때 동일하지만
a=b 는 b대신 a로 표현 (?)... 그 비슷한 뜻.
=> 정답 : 2+2*7%5 은 2+4 이므로 아마도 6..
x=y일경우 x에다 y를 넣는거고, 같다는건 x==y
- 새싹교실/2012/아우토반/뒷반/4.13 . . . . 8 matches
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
*오늘 수업은 한마디로 처참했다.아니, 수업내용이 처참한게 아니라 수업을 받은 내가 처참했다.운지 하기를 여러번 결국 보다못한 새싹교실 샘이 가르쳐 주는 지경에 까지 이르게 되었다.새싹교실을 하는 보람이 있어야 하지 않겠냐고 푸념을 하시는데 죄송스럽기 그지없었으나 배울 의지는 분명히 있었다.다만 공부할 의지가 강하지 않은 것 뿐.두개의 의지는 분명히 별개라는 것을 느꼈다.공부할 의지를 불살라야 샘도 가르치는 보람이 있을텐데 불초한 제자라 샘도 고생을 많이 하실 듯.-박상희
*이번 수업에서 내준 과제는 뭐라 말하기 애매했다. 할 수 있을 것 같은데 안되더라..ㅠㅠ. 용운형은 간단하다더라.... 솔직히 앞으로의 생활이 막막하다. 어떻게든 되겠지? - [김태헌]
정수 N을 입력하여 변의 길이가 N인 마름모꼴 출력을 다음과 같이 문자로 나타내시오
if(a>1)
if( a!= 0 )
- 새싹교실/2012/열반 . . . . 8 matches
* C프로그래밍 수업에서 배운 내용을 적어주세요. 궁금한 점은 질문해주세요.
* The if selection statement랑The if...else selection statement배웠는데 잘모르겟어요..[김민규]
* 함수의 사용법과 if,else if, else문의 차이를 배웠습니다. [권우성]
- 새싹교실/2012/클러그 . . . . 8 matches
* 수업과목: C와 프로그래밍
* 자신이 원하는 대로 씁니다.
* 프로그래밍 언어로서의 C
* 프로그램 소스 코드가 프로그램으로 되는 과정(빌드)
* 프로그래밍을 처음 접하는데도 생각보다 빠르게 익혀서 놀라웠다. - [이진규]
- 새싹교실/2013/라이히스아우토반/7회차 . . . . 8 matches
Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* Internet Explorer를 제외한 다른 브라우저 (Chrome,FireFox, Opera)로 위키에 들어오면 편집하기 쉬워요.
* Can't Save가 떴을 땐 당황하지 말고, 작성한 내용을 클립보드에 보존한 뒤(Ctrl+C) 새로고침을 한 뒤 붙여넣고 저장할 것.
준비 해오기 힘들다보니 그때 그때 생각나는데로 가르친다. 그러다보니 애들이 이해를 잘 못하고, 흥미도 많이 못 느끼는 것 같다.
오늘 명연이는 이유는 설명하지 않고 안온다 했고, 영민이는 새싹보다 밥을 선택했다. 수업이 재밌고 유익하다고 느꼈다면 이쪽으로 왔겠지??
반성하는 태도를 가져야 하겠지만, 안타깝게도 앞으로도 수업준비는 잘 못해 갈 것 같다. 애들이 남은 흥미를 다 잃어버리기 전에 적어도 구조체랑 함수 만드는 법, 파일 입출력은 가르쳐야 할텐데...
- 새싹교실/2013/록구록구/2회차 . . . . 8 matches
* 제로페이지 wiki 대략적인 사용법
Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
(느낌)기대를 잔뜩 했는데 별로 맛이 없었다.
(앞으로의 계획)다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.
앞으로 더욱더 열심히 공부해서 기초 프로그래밍시간에 똑띠처럼 빨리 실습 끝내고 싶다 ㅎㅎㅎㅎ
scanf는 말로만 들어봤는데, 출력된 화면에서 입력을 할 수 있어서 신기했고
빨리빨리 배워서 실습시간에 혼자힘으로 하고싶다..
- 성의과학 . . . . 8 matches
* 나는 이 수업은 2명의 교수에게서 들었다. ( 고로 재수강이었음 :( ) 한 분은 잘 기억이 안나지만 남자 강사였고 다른 한분은 여자 강사였다. 단순히 성으로 구분해서 평가하기는 이상할지도 모르지만 후자의 여자 강사분으로부터 더 좋은 점수를 받을 수 있었고 더 좋은 강의를 들을 수 있었다. 일단 그 이유로는 시청각 자료의 활용과 거침없는 표현들 이었던 것 같다. 시청각 자료로는 성 정체성을 주제로 다루는 영화( 제목은 잘 기억이 나지 않는다. )를 보여줬는데 내용이 지루한 것이 아니어서 수업시간에 집중해서 볼 수 있었다. 무엇보다도 인상적인 부분은 강의때 표현하는 방식이었다. 교과서에 나와있는 내용을 그냥 읽는 것이 아니라 나름대로의 경험(?)에 빗대어서 설명을 해 나갔다. 그리고 남자 학생들의 수보다 여자 학생들의 수가 더 많았다는 것이 신기했다. :) --[구근]
* 난 이 수업을 매우 만족스럽게 들었다. 강사님도 탁월하셨고, 기말고사는 레포트로 대체. 그리고 이 과목 덕택에 인사동에 있는 우리나라 유일의 性박물관도 관람했다. 그러나 커플들의 압박이 심함. --[강희경]
- 세미나/2004 . . . . 8 matches
2004년 여름방학 주로 강의실을 이용한 세미나 릴레이
|| 1 || 재동 || 커리큘럼 & [프로젝트의성공과실패] || ||
|| 4 || 수민&재환 || . || 재환이가 서울에 없어서.. 다음으로 미뤘으면 합니다 ||
|| 8 || 재선 || . || 알바 관계로 연기합니다 ||
* 모바일 프로그래밍 관련해서 세미나 좀 해주세요 --[구자겸]
구체적으로 어떤것? J2ME? WIPI? J2ME로는 HelloWorld 까지는 찍을줄 알아...;; - [임인택]
* J2ME 쪽으로는 상규와 내가 MobileJavaStudy를 해본 경험이 있다. --재동
- 숫자야구/ 변준원 . . . . 8 matches
if(abc[i]==def[j])
if(i==j)
else
if(S==0 && B==0)
else if(S==3)
else
cout << S <<" S " << B <<" B " <<endl;
- 알고리즘2주숙제 . . . . 8 matches
세로가 3 가로가 n(2의 배수)인 상자가 있다. 여기에 크가가 2*1인 레고를 채울려고 한다. 가로가 n일때 빈칸 없이 가득채울수 있는 모양의 개수를 클로즈폼으로 구하시오.(Generating Function으로 구하시오)
원반의 개수가 n인 하노이 타워가 있다(막대는 A, B, C). A막대에 있는 원반을 C로 옴기는데 걸리는 최소횟수를 구하시오(단 A와 B만, B와 C만 이동가능하다.
하노이 타워는 큰 원반이 밑으로만 올수 있는 타워이다.
- 알카노이드 . . . . 8 matches
== 프로젝트 목표 ==
* 매주 월요일 제로페이지 모임 끝난 후
* 언어가 MFC 에서 JAVA 로 바뀌었습니다.
* ECLIPSE 툴과 j2 sdk 최신 버전은 [http://idaizy.com/download.php] 페이지 가면 빠른속도로 받을수 있습니다
윽;;; 책에 애플릿 밖에 없어서 애플리케이션으로 이미지 로딩을 어떻게 하는지 몰겠어요 -_-;;; 난감;;; -[김홍선]-
책 한권 더 빌려야 겠어요 -_-; 어플리케이션 위주로 된 좋은 책 머가 있을까요?? -[김홍선]-
[프로젝트분류]
- 임인택/CVSDelete . . . . 8 matches
CVS로 프로젝트 소스파일 받아다가 다른곳에 쓸때, 가끔 CVS 폴더 지우는게 너무 짜증날때가 있다. tortoise 같은데서 찾아봐도 없길래 그냥 간단하게 파이썬으로 작성.
if folder == 'CVS':
else:
if __name__=='__main__':
나의 경우는, 1. 탐색기에서 해당 디렉토리에 CVS로 화일검색(하위폴더 포함) 2. 전체 선택 3. 삭제 --[1002]
- 정모/2004.1.20 . . . . 8 matches
== 프로젝트 진행상황 알림( 발표 & 질문 ) ==
* TheJavaMan 모임 일요일 2시로 변경
* 2/8 우이동으로 결정
== 프로젝트 홍보, 새로운 프로젝트 개설( 발표 ) ==
* [신재동]의 프로젝트 예정
* 로보코드...못했다.ㅜㅜ -[Leonardong]
- 정모/2011.7.25 . . . . 8 matches
* 주제 : 미리 올려드립니다 ㅋㅋ. 구글로 영작하기! ( 부제: 이제 나도 네이티브 ㅋ )
== 프로젝트/스터디 ==
* 5.1장에서 회원 등급 조정을 예로 들어 책임을 구분하는 과정이 흥미로웠습니다. 관련 내용은 이번주에 위키에 올리겠습니다.
* 다음 주에는 못 풀었던 문제를 계속 붙잡거나 새로운 문제를 풀거나 각자 자유롭게~
* OMS 주제가 흥미로웠습니다. 자극받아서 오늘 방에 들어올땐 15층까지 걸어왔어요. 생활 속의 운동!!! 얼마나 할지는 모르겠지만…
* OMS 뭐 할까 계속 고민하다 + 아이튠즈에 음반 1400장 커버 아트와 씨름(-_-) + 이것 저것 으로 주제를 못 정하다가 그냥 7개월동안 하고 있는 생채식에 대해서 이야기 할까 해서 완전 급하게 만든 ppt로 발표했네요 -_-;; 죄송.. 그래도 일상생활 속에서 이렇게라도 운동 해야지 하면서 해 왔던 것도 이야기 하는 거라 크게 어렵지는 않았던 것 같네요. 한달.. 아 두달 회고를 하면서 보니 그래도 데블스 캠프가 가장 기억에 남는 것 같았습니다. 그리고 코드 레이스를 다시금 해 볼 수 있어 기대되네요. - [권순의]
- 정모/2012.7.25 . . . . 8 matches
* 가평 펜션으로 결정.
* 우선적으로 정모에서 의견을 모은 후에 회장단이 구체적인 기준을 결정.
* MT에서 할 프로그램 모집 중.
== 스터디/프로젝트 ==
* ZeroPage_200_OK : 토요일 - 자바스크립트 클로저, JSON 등에 대한 이야기. Prototype에 대해서 이번 주말에 다룰 것 같아서 기대됨.
* UDK : 상황이 어려움. UDK와 3D Max를 하려고 하는데 아무 것도 모르는 상황에서 하려고 하니 학습 능률이 낮다. -> 방향을 선회해서 안드로이드 2D 엔진용 에뮬레이터를 만들자는 의견이 나옴.
* 안드로이드 도서관 - 다른 바코드 인식 앱과 비교해서 샘플링이 잘 안 됨. 그 이외의 부분은 잘 되는데 해당 부분을 고치기에는 시간이 너무 오래 걸리는 것 같아서 일단 중지. 현재는 학교 웹사이트 쪽을 보면서 어떻게 파싱을 해야 할지 분석 중.
* Creative Club - ZP의 외부 활동이란 어떤 것이 있을까. 강력한 의견을 가진 사람이 없는 것이 우선 문제. 누군가가 뭘 할 때 필요한 아이디어를 내 보려고 함. OpenSource(소프트웨어, 라이브러리, 게임 개발 툴), ACM 출전, 멘토링, 공모전 등이 가능. ACM은 출전하기는 쉬우나 결과를 내기 어렵다. 멘토링은 많이들 관심이 있을지 미지수. 공모전은 시기적으로 적절한지 의문.
- 정모/2013.1.15 . . . . 8 matches
* A(김민재) : 외부인의 사용에 따른 권한 부여 등에 따른 허가, 컴퓨터 사용시 기록을 남김으로써 책임감, 사후관리의 유용성
* A(김민재) : 실제 사례와 오픈소스등을 활용하여 롱런프로젝트로 고려중.
* Q(김태진) : 회장으로써의 결심이유
* A(서민관) : 단체장으로써의 결의, zp 분위기 전환
* A(김민재) : 대내외적으로 zp의 개방화 및 홍보, 학술적 정보교류
* 다음 회장에게로 보류
* 아하! 게시판에 질문하면 되는거였구나ㅋㅋ 그럼 게시판으로 내용 옮겨감ㅋㅋ - [김수경]
- 정모/2013.3.4 . . . . 8 matches
* [고한종] 학우의 밀리언아서를 가장한 직접만든 확밀아 안드로이드 앱 소개 + 설명.
* 다음 주 정모는 신학기 개강으로 인한 변수가 많은 관계로 후에 휴대폰과 같은 매체로 공지하겠습니다.
* 활발한 학과 활동을 위해 쉬는 것으로 확정되었습니다.
* 새싹교실 소개를 할때 제로페이지를 소개.
* 3월 7일까지 강사신청을 받되 외부인 강사는 강사가 부족하면 더 받는 식으로 한다.
* 새싹강사는 12명으로 예상하고 계획중.
- 주민등록번호확인하기/김영록 . . . . 8 matches
ASCII 숫자에 -48 하는거랑 if 에서 =하고 == 혼동해서 애먹엇음
cout << "주민등록번호를 '-'없이 입력해주세요" << endl;
if (count <8)
else
if (reg_num[12] == (11-(sum)%11))
cout << "대한민국 국민이네요~ ^^ 안녕하세요!" << endl;
else
cout << "혹시 간첩???? -_-;; " << endl;
- 지금그때2004/토론20040331 . . . . 8 matches
토론 - [여섯색깔모자] 방식으로 진행
* 내일 중으로 휘동이 예약. 4251 등 책상배치가 용이하고 큰 강의실로.
미결사항에 대해서는 4월 1일 리허설중 결정 & 구체화하기로 함.
* 의견을 말하기전에 미리 모자 색깔을 말함으로서 듣는 사람으로 하여금 미리 듣는 내용을 준비할 수 있도록 해준다.
'''오늘의 느낀점-한단어로~'''
* 새로움
- 지금그때2006/기획단후기 . . . . 8 matches
선배, 그 중에서도 고학번 위주로 질문에 대답했다.
신입생을 포함한 재학생은 재미있게 참여했지만, 선배님들이 한 쪽에서 따로 이야기를 하고 계셨다. 참여를 유도했으면 좋았을 것이다.
생각보다 좋은 반응이었습니다. 내년에는 더 다양하게 많은 사람이 참가할 수 있는 쪽으로 해야겠습니다.
개인적으로 강의실을 이동해서인지 갑자기 시작되는 게임이 좀 쌩뚱맞은것 같았음
사람들이 슬슬 적응하면서 새로운 주제를 나오도록 유도하는 것은 어떨지.. - [김정현]
* 시작할때의 어수선함이 OST의 어수선한 분위기로 자연스럽게 연결됨. 바로 시작이 가능
* OST를 하면서 여러 주제와 생각들을 접하는데 이러한 분위기를 질문레스토랑에서 활발한 질의응답으로 이어질 가능성이 크다고 생각함
- 지도분류 . . . . 8 matches
||["프로젝트지도"]||현재 프로젝트 상황 ||
||["2012년활동지도"] || 2012년에 이루어지는 스터디, 프로젝트 지도들 ||
=== 프로그래밍 언어 ===
||["Java"]|| Sun사에서 태어나고, 여러 업체들에 의하여 발전하는 프로그래밍 언어이자 플렛폼 ||
||["Scheme"]|| MIT에서 가르치는, 함수형 프로그래밍 언어이다 ||
|| ["CVS"] || Concurrent Versions System. 공동 프로젝트를 위한 소스 버전 관리 도구 ||
|| RegressionTesting || 회귀 테스팅으로 기존의 기능에 문제 없는가 테스트 ||
- 질문레스토랑 . . . . 8 matches
[질문의힘]에 나오는 ''질문 게임''을 좀더 게임과 같은 분위기로. [지금그때2005]를 준비하는 이들이 창안.
* 정말 질문하고 싶은 경우 개인당 1회로 질문권 발동
* 메뉴판에 없는 질문이 하고 싶은 경우 포스트 잇에 적음
* 새로운 질문이 등록된 경우 주사위를 굴리기 전 웨이터가 모두에게 질문을 알려줌
* 한 질문에 대해 7분이 넘는 대답을 하는 경우 매니저가 아이템으로 중지시킴
- 최대공약수/허아영 . . . . 8 matches
if(x1 < x2) // 이 부분이 꼭 필요하지 않다고 문득 느낌..
이거 짜면서 ver.1까지 새로 짰다.
잘못된 변수로 print한 것을 발견..
프로그램의 마지막 부분에서 원래 값을 프린트하고 그의 복사본으로 GCD를 계산하는 방법이 있다는 것을 알았다.
if(y2 < x2)
아.. 글고보니 정말로 꼭 첫번째 값이 클 필요는 없겠네.. 아 이거 헤깔려 죽겠드라 ㄱ-;;;; - 김태훈[zyint]
의외로 헷갈렸지-.ㅜ - 아영
- 큐/Leonardong . . . . 8 matches
cout << "1 : Push \t 2 : Pop \t 3: Show" << endl;
default : cout << "눈 똑바로......" << endl;
if (order>=Asize)
cout << "입력 초과" << endl;
if (order<=0)
cout << "자료 없음" << endl;
cout << endl;
- 파스칼삼각형/김준석 . . . . 8 matches
아영이 누나 소스를 보았다. 아.. 재귀함수 + 하키스틱 공식으로 짤수있는거구나.. Ver 1, Ver 2, Ver 3의 변천사..
int pas[50][50] ={0,}; //우선 무식하게 배열을 선언하는 방식으로..
if(h<y) printf("다시하세요 ㄱ-");
else if(h<2) printf("1이겠지...");
else{
if(pas[i][j] && pas[i]) continue;
else pas[i][j] = pas[i-1][j-1] + pas[i-1][j];
- 호너의법칙/박영창 . . . . 8 matches
자료구조 숙제로 나온거라, 스펙이랑 완존히 100 파센트 다름;;
// 에러처리를 위한 매크로
// index 차수의 계수를 배열로 지정한다.
std::cout<<horner_func(x_param, coefficient, 0)<<std::endl;
horner_func 호너의 법칙을 재귀함수로 구현한다.
@param x_param 인자로 전달될 미지수의 값.
@param coefficient 인자로 전달될 계수의 배열.
if (exponential == max_exponentials-1) return coefficient[exponential];
- 화이트헤드과정철학의이해 . . . . 8 matches
김용옥씨의 서문의 인상이 꽤 깊게 남는다. 일상적 경험으로부터 귀납적 관찰로 쌓아올리지 않고, 조급하게 하나를 통찰하는 연역의 원리를 먼저 찾으려는 모습에 대한 비판. 과연 나의 말은 나의 과정들, 경험들을 얼마나 담고 있는건가.
* '진정한 발견의 방법은 비행기의 비행과 유사하다. 그것은 개별적인 관찰의 지평에서 출발하여 상상적 일반화의 엷은 대기층을 비행한다. 그리고 다시 합리적 해석에 의해 날카로워진 새로운 관찰을 위해 착륙한다.' - 서문중 인용된 Whitehead 글.
비유의 아이디어로서 ["NumericalAnalysisClass"] 때 배운 Interpoliation 기법들이였다. 수치해석시간의 Interpolication 기법들은, 몇몇개의 Control Point들을 근거로 Control Point 를 지나가는 곡선의 방정식을 구하는 법이다. 처음 Control Point 들의 갯수가 적으면 그만큼 오차도 많지만, Control Point 들을 늘려가면서 점차 본래의 곡선의 모양새를 수렴해간다.
우리는 진리를 찾기 위해 오늘도 자신의 공식에 Control Point 를 하나더 추가하고 있는것일지도 모른다. (단, 라그랑주일경우엔 좀 더 정확해보이는 Cubic Spline 으로 페러다임 전환을 하자. ^^;)
- 1thPCinCAUCSE/ProblemA . . . . 7 matches
1회 중앙대학교 컴퓨터공학과 프로그래밍 경진 대회 A번 문제 : 시계
아날로그 시계는 12시간 단위로 동작하며 시침과 분침이 있다. 주어진 시간 동안 시침과 분침이 몇 번 겹치는가를 알고 싶다. 예를 들어, 시작 시각이 11시 1분이고 끝 시각이 3시 20분이면, 이 시간 동안 시침과 분침은 4번 정확하게 일치한다. 각자 자기 시계로 확인 해 보세요. 시작 시각이나 끝 시각에 시침과 분침이 일치하더라도 회수에 포함한다.
이렇게 시작 시각과 끝 시각이 주어질 때, 그 시간 구간 동안 시침과 분침이 몇 번 일치하는가를 계산하는 프로그램을 작성하시오. 시간 구간은 12 시간 미만이라 가정한다.
입력은 표준 입력이다. 입력의 첫줄에 테스트 케이스의 개수를 나타내는 정수 T (10 이하) 가 주어진다. 다음 T줄의 각 줄마다 테스트 케이스가 주어진다. 테스트 케이스는 정수 네개로 이뤄진다. 이들 정수 사이에는 빈칸이 있다. 앞 두개의 정수는 시작 시각의 시와 분을 나타내고 뒤 두 개의 정수는 끝 시각의 시와 분을 나타낸다. 시는 1 이상 12 이하의 정수이고, 분은 0 이상 59 이하의 정수이다.
출력은 표준 출력이다. 출력은 T줄로 이뤄진다. 각 테스트 케이스에 대해서 자기가 계산한 회수를 한 줄에 하나씩 출력한다. T개의 테스트 케이스를 모두 맞춰야 이 문제를 맞춘 것이다.
- ACM2008 . . . . 7 matches
[http://acm.pku.edu.cn/JudgeOnline/ POJ] Peking university Judge Online 이란 시스템이 있는데 온라인으로 프로그래밍 문제를 제공하고, 온라인으로 소스를 보내면 서버에서 컴파일해서 결과를 알려주는 시스템이다. 책에서는 code 의 길이를 이용한 코드 골프쪽에 초점을 맞추고 있었지만 이 프로젝트의 목표상 그럴 필요는 없을거 같다. 다만 온라인으로 제공되는 문제가 꽤 있고 평가하는 시스템이 있으므로 보다 즐겁게 놀 수 있는 '꺼리' 일 것 같다.
[프로젝트분류]
- AndOnAChessBoard/허준수 . . . . 7 matches
아직 로봇에 돌려보지는 않았다. -..ㅡ;;
if(input == num - i + 1) break;
if(i >= line)
cout << line << " " << 2*line - i <<endl;
else
cout << i << " " << line <<endl;
if(input == 0) break;
- Applet포함HTML/영동 . . . . 7 matches
* 음... HTML 컨버터로 컨버트하긴 했는데 ftp사용법을 몰라서 계정에 올리는 법을 모르겠네요. 그러한 관계로, 상욱이처럼 파일 내용만 올릴게요. ftp쓰는 법 배워서 링크시킬게요... [http://165.194.17.15/pub/util/WinSCP2.exe WinSCP 2.0 Beta]
음... 계정에 올린 다음 링크를 시켰는데 이상하게 안 되네요. 경로도 맞고 권한도 문제 없을텐데...
이상하네... 프로그램을 잘 못 짠 건가?[[BR]]
DeleteMe 다음 주소로 가능하게 계정의 디렉토리를 수정하였습니다.
로 접근할수 있습니다.
DeleteMe 한가지 지적하고 싶은데요. jre 의 버전이 낮은것으로 applet 링크가 세팅되어 있어서, 최신 버전의 jre의 pc라도 jre 1.4.0_03 을 설치하려고 하는군요.
<!--"END_CONVERTED_APPLET"-->
- BasicJAVA2005/실습1/조현태 . . . . 7 matches
if (answers[i] == answers[j])
if (inputNumbers[i] == inputNumbers[j])
if (true == haveError)
else
if (answers[i] == inputNumbers[i])
else
if (answers[i] == inputNumbers[j])
- Boost . . . . 7 matches
1997년, C++의 국제 표준화 작업의 마지막을 알리는 종이 울리던 그 때, 자신들의 표준으로 올리자고 주장했던 표준 라이브러리의 기능이 삭제된 것에 불만을 품은 몇 명의 엔지니어들이 있었습니다. 이들 중 몇 명은 표준화 위원회 내부 임원이었는데, 이들은 결국 2차 표준화 작업 중에 표준 라이브러리의 기능을 보완하고 추가하기 위한 기구를 만들기 시작합니다. 그 결과가 바로 Boost(부스트)로서, '''여러 사람들에 의해 검토되고 보완된 C++ 라이브러리를 무료'''로 제공하는 웹 사이트입니다. C++ 표준 라이브러리와 잘 조화되어 동작하며 이식이 가능한 라이브러리를 만드는 데에 중점을 두고 있는데, 이런 취지에는 다음과 같은 동기가 있었다고 합니다.
'''라이브러리를 확장한 결과는 그 자체가 현재의 기술이 되며, 언젠가는 차후의 표준으로 제안될 수 있을 것입니다. http://boost.org 를 통해 라이브러리를 공개하는 일은 그러한 방법 중에 하나입니다...'''
쉽게 말해서, Boost는 미래의 표준 C++ 라이브러리의 일부가 될 수 있는 구성 요소들의 옥석을 가려주는 역할을 한다고 볼 수 있네요. 참으로 가치 있는 서비스이고, 이러 일을 하는 분들이 있다는 데에 고개 숙여 감사해야겠습니다.
정헌이 이거가지고 프로그램 짰잖아. --["neocoin"]
- BoostLibrary . . . . 7 matches
1997년, C++의 국제 표준화 작업의 마지막을 알리는 종이 울리던 그 때, 자신들의 표준으로 올리자고 주장했던 표준 라이브러리의 기능이 삭제된 것에 불만을 품은 몇 명의 엔지니어들이 있었습니다. 이들 중 몇 명은 표준화 위원회 내부 임원이었는데, 이들은 결국 2차 표준화 작업 중에 표준 라이브러리의 기능을 보완하고 추가하기 위한 기구를 만들기 시작합니다. 그 결과가 바로 Boost(부스트)로서, '''여러 사람들에 의해 검토되고 보완된 C++ 라이브러리를 무료'''로 제공하는 웹 사이트입니다. C++ 표준 라이브러리와 잘 조화되어 동작하며 이식이 가능한 라이브러리를 만드는 데에 중점을 두고 있는데, 이런 취지에는 다음과 같은 동기가 있었다고 합니다.
'''라이브러리를 확장한 결과는 그 자체가 현재의 기술이 되며, 언젠가는 차후의 표준으로 제안될 수 있을 것입니다. http://boost.org 를 통해 라이브러리를 공개하는 일은 그러한 방법 중에 하나입니다...'''
쉽게 말해서, Boost는 미래의 표준 C++ 라이브러리의 일부가 될 수 있는 구성 요소들의 옥석을 가려주는 역할을 한다고 볼 수 있네요. 참으로 가치 있는 서비스이고, 이러 일을 하는 분들이 있다는 데에 고개 숙여 감사해야겠습니다.
정헌이 이거가지고 프로그램 짰잖아. --["neocoin"]
- ChocolateChipCookies/조현태 . . . . 7 matches
- 속도를 향상 시키는 방법은 스스로 생각해 볼것!^^
if (MAX_LEGTH < GetLength(g_points[i], g_hitPoints[j][k]) || g_points[i] == g_hitPoints[j][k])
if (isAllHit)
if (maxPoint < (int)g_hitPoints[i].size())
if (0 == strlen(oneLine.c_str()))
cout << GetMaxChipNumber() << endl;
else
- CppStudy_2002_1/과제1/상협 . . . . 7 matches
if(i==0)
else
if(name==NULL)
else
if(in[i]>=max)
if(in[j]>=max)
if(count>strlen(max))
- DPSCChapter4 . . . . 7 matches
'''Bridge(121)''' Decouple an abstraction from its implementation so that the two can vary independently
'''Composite(137)''' Compose objects into tree structrures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly.
'''Decorator(161)''' Attach Additional responsibilities and behavior to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality.
'''Facade(179)''' Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use.
'''Composite(137)'''은 전체-부분의 계층 나타내기위한 tree구조로 각 object를 구성시킨다. Composite는 client 들이 개별의 object와 object들의 조합을 일정한 규칙으로 다룰수 있게 한다.
'''Decorator(161)'''은 object에게 동적으로 임무와 할일을 부여한다. Decorator는 기능의 확장을 위한 함수에 대하여 유연한 선택을 제공한다.
- DermubaTriangle/문보창 . . . . 7 matches
if ((rootN & 0x1) != (n & 0x1))
if (rootM != rootN)
if ((rootM & 0x1) == (m & 0x1))
else
if ((rootM & 0x1) != (m & 0x1))
if (n < m)
else
- DevPartner . . . . 7 matches
c) Debug 메뉴에서 "디버깅하지 않고 시작"을 선택하여 프로그램을 실행합니다.
d) 프로그램을 종료합니다. -> 세션 윈도우가 뜨면서 함수 호출 상황을 보고서로 만들어 줍니다.
솔루션탐색기에서 솔루션의 속성 페이지(ALT+ENTER)를 열면, "Debug with Profiling"이란 항목이 있습니다. 이 항목의 초기값이 none으로 되어 있기 때문에, None이 아닌 값(대부분 native)으로 맞추고 나서 해당 솔루션을 다시 빌드해야합니다. 링크시 "Compuware Linker Driver..."로 시작하는 메시지가 나오면 프로파일링이 가능하도록 실행파일이 만들어진다는 뜻입니다.
- Downshifting . . . . 7 matches
''다운 시프트Downshift''
(1) 자발적으로 일을 부담이 덜 가게 전환함으로써 삶의 즐거움을 추구하다.
(2) 자동차의 기어를 저속으로 전환한다.
미친 듯이 일하면서 행복감을 못 느끼는 사람들에게 일을 좀 줄이고 행복감을 찾으라는 이야기를 한다. 일중독에 빠져 놓치기 쉬운 가족관계, 여가생활, 종교활동, 봉사활동을 하면서 새로 얻게 된 시간을 활용해 보라고 권유한다.
굳이 일과 행복에 한정해서 생각하지 않는다면 유용한 충고로 받아들일 수 있다. 정말 원치 않는데도 하고 있는 것을 줄이고 자기가 즐기는 것을 좀더 많이 하면 좀더 행복할 것이다.
또 하나 유용한 충고. 다운시프팅 같은 변화를 행동으로 옮길 때는 작은 부분부터 바꾸어나가라. 그리고 한 번 변화에 실패했다고 포기하지 말라! -- [Leonardong]
- EnglishSpeaking/TheSimpsons/S01E01 . . . . 7 matches
* 크리스마스를 즐겁게 보내는 옆집 플랜더스네 가족들, 심슨네 가족들도 나름의 크리스마스를 보내려고 한다. 반면 심슨네 가족은 호머의 회사에서 크리스마스 보너스가 지급되지 않게 되고 크리스마스 때 쓰기 위해 모아놨던 저금통도 바트가 팔에 허락없이 문신을 해버리는 바람에 이를 지우기 위한 시술비로 전부 날려버린다. 호머는 모를 통해 알게 된 산타클로스 아르바이트를 하지만 받게 되는 급료는 겨우 13달러. 호머와 바트는 바니를 통해 알게된 경구장에서 '산타의 작은 도우미'라는 개에게 13달러를 모두 걸지만 꼴찌를 하고 돈을 잃는다. 그 대신 경구장에서 아예 쫓겨나 버린 '산타의 작은 도우미'를 크리스마스 선물로 집에 데려간다.
* 내용 : 리사, 바트가 산타클로스로부터 원하는 선물을 하나씩 말하고 처형인 Patty로부터 전화가 온다.
* 내용 : 보너스를 못받았다는 사실을 차마 가족들에게 말하지 못하는 호머는 모의 술집에서 바니를 통해 산타클로스 알바가 있음을 알게 되고 면접을 본 후 일을 시작한다.
- Euclid'sGame/강소현 . . . . 7 matches
if(r1==0 && r2==0)
if(g>1) break;
if(r1>=r2) count++;
if(count%2 == 1){
}else{
* 왜 중간단계로 [11 7]이 나오는 지 이해가 안 갔었다. 베스킨라빈스31 게임처럼 숫자를 자유롭게 부르되 이기려면 절대적으로 불러야하는 숫자가 있는 것처럼, 이 것도 처음 시작하는 사람이 이기려고 일부러 덜 뺀 거였다 ㄷㄷ
- ExtremeBear . . . . 7 matches
* ["ExtremeBear/OdeloProject"] - 오델로 프로젝트
* ["ExtremeBear/VideoShop"] - 비디오샵 프로그램 프로젝트
* Xper:ToolsForXp : XP 프로젝트를 위한 준비물
* Xper:XpDiary : XP 프로젝트 일지. XP 진행이나 관리에 대하여 배울 수 있다.
["프로젝트분류"]
- FifteenSecondsRule . . . . 7 matches
어떤 시스템/프로그램이 있을 때, 모든 개념적 단위(예컨대 패키지, 모듈, 클래스, 메쏘드 등)를 개발자 자신이 15초 이내에 설명할 수 있어야 한다는 "15초 룰"의 확장판이 꽤 유용할 때가 많습니다. 이런 식으로 설명을 모두 마쳤을 때는 소스 코드 전부를 설명한 셈이어야 합니다.
여기서 청자가 그 설명을 이해할 수 있냐 없냐는 것은 크게 중요하지 않습니다. 15초 이내에 개발자 자신이 스스로 설명할 수 있어야 합니다.
예를 들어, 경매 시스템이 있을 때, "이 시스템은 무얼 하는 것이냐?"라는 질문에 15초 이내에 깔끔하지만 '''완전한'''(complete) 대답을 할 수 있어야 하며, "그럼, 이 시스템에서 {{{~cpp Authentify}}} 서브 시스템은 뭘 하는 것이냐?"라는 질문에 역시 15초 이내에 완전한 대답이 가능해야 하고, "이 {{{~cpp FooBar}}} 객체는 무엇을 하는가?"라는 질문에 또 15초 이내의 대답이 나와야 합니다. 이런 식의 설명이 모두 끝났을 때, 소스 코드 '''전체'''를 훑은 셈이여야 합니다 -- 이게 용이하려면 프로그램의 구조가 이런 설명의 구조와 유사해야 합니다.
만약 이것이 불가능하다면 왜 그렇고, 어떻게 해야 그것이 가능할지(예컨대, 특정 개념을 표상하는 새로운 어휘를 고안한다든지, 추상 수준이 다른 것을 한 곳에 섞지 않는 것 등) 고민해 보면 많은 것을 배우게 됩니다.
- FindShortestPath . . . . 7 matches
ex1) 1,10 을 입력했을경우.. (1,2,10)이 두 숫자간의 가장 짧은 거리.. 고로 3이 되겠지..
ex2) 17,10 을 입력했을경우.. (17,6,1,3,10)-> 5.
이문제를 통해 프로그램의 기술적인 문제는 습득하기 힘들거라고 생각되지만..
자신의 생각을 프로그램으로 어떻게 구현해야 되는가.. 에 대한 훈련으로는 큰 도움이 될것이라고 생각됨..
- GuiTestingWithWxPython . . . . 7 matches
TDD로 컨트롤을 하나하나 붙이고 위치값을 잡고 리스트박스에 초기값을 설정하는 예제
if __name__=="__main__":
self.listBox.Append('testing1')
self.listBox.Append('testing2')
self.listBox.Append('testing3')
retList.append(self.listBox.GetString(idx))
if __name__=="__main__":
- HardcoreCppStudy/첫숙제/Overloading/변준원 . . . . 7 matches
C++의 새로운 특징 중 하나인 디폴트 전달인자를 살펴보자. 디폴트 전달인자는 함수의 호출에서 대응되는 실제 매개변수를 빠뜨렸을 때 자동적으로 사용되는 값이다.
전달인자 리스트를 가지고 함수를 사용할 때에는 디폴트 전달인자를 오른쪽에서 왼쪽의 순서로 첨가해야 한다. 즉, 어떤 전달인자의 값을 내정하려면 그 전달인자보다 오른쪽에 있는 모든 전달인자를 디폴트 전달인자로 해야 한다.
실제 전달인자는 왼쪽에서 오른쪽으로 가면서 해당 형식 전달인자에 대입된다. 전달인자를 건너뛸 수는 없다. 따라서 다음과 같은 것은 허용되지 않는다.
beep = harpo(3, ,8); //m을 4로 설정하지 않았으므로 틀림
- IsThisIntegration?/하기웅 . . . . 7 matches
다른 원시적인 방법으로 바꿔서 계산했음^^
x= cos t 로 치환하여 삼각 치환법을 이용해서 구한다~ (그런데 왜 잘 안될까??ㅋㅋ)
두 선이 만나는 부분이 (1/2 , 루트(3)/2)이라는 것을 쉽게 알 수 있으므로~
이렇게 가운데 부분의 넓이를 구해내면 차례로 다른 넓이고 구할 수 있다.
이런 방법으로 간단한 공식을 구한 뒤 프로그래밍~
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;
- JTDStudy/첫번째과제/정현 . . . . 7 matches
TDD로 진행했습니다.
public class BaseBallTest extends TestCase{
if(baseBall.isProper(number)) {
} else {
if(string.contains(String.valueOf(c)))
if문과 이중for 루프를 돌지 않으려고 발버둥쳤다;
벡터를 이용해 번호를 뽑는 것은 효율적인것 같진 않지만, 새로운 시도라서 신선했다
- JavaStudy2002/해온일 . . . . 7 matches
* 둘째주 ... 숙제는 ["RandomWalk"]를 자바로 구현해 보는 것입니다. 일단 난이도는 'RandomWalk -> 움직이는 물체 숫자 늘리기 -> ScheduledWalk(["RandomWalk2"])' 가 되겠습니다.
* 셋째주 ... 셋째주에 만들었던 RandomWalk 를 변형하여 둘째주 마지막 단계인 ScheduledWalk 까지 완성하는 것으로 하겠습니다.
* 넷째주 ... ScheduledWalk 를 만들다보니 자바는 입출력부분이 그리 간단하지 않다는걸 느끼게 되었습니다. 그래서 셋째주 과제는 다음으로 넘기구요 입출력에 관해 공부를 해 오는 것으로 하겠습니다.
* 영동 : 시간관리 잘못으로, 하지 못했다.
* 세연 : 평소의 프로그램이 하던것과 달라서 신기하다. 이것이 좋은 방법인지 모르겠다.
* 상욱 : 세연과 같이, 평소의 프로그래밍의 순서와 다르다.
- JavaStudy2003 . . . . 7 matches
* 스터디 연락이 늦은 것도 있고 과제도 아무도 안낸 관계로 오늘 스터디는 쉽니다. 여러분들의 호응 없이는 진행이 정말 힘듭니다. 이 글 읽으시고 되는 날짜에(이번주 내로) 꼭 연락을 주십시오. 한사람만이라도 연락오면 그 때로 하겠습니다.
* 8월 12일 화요일 회의 끝나도 바로 수업 있습니다. 2주동안 안했죠? 그건 제가 죄송하구요. 그동안 못했던거 하겠습니다.
* 집에와서 해보는데 기억이 안나요 <(;ㅁ;)> 어제 했던 "Hello, World!"프로그램 한번만 다시 올려주심 안될까요..-[선희]
알았어 ^^; 그리고 출력 양식이나 등등은 내가 한번 튜토리얼 형식으로 만들어 보지 뭐 -[상욱]
[프로젝트분류]
- MagicSquare/동기 . . . . 7 matches
cout<<"마방진 작성 프로그램입니다. 홀수를 입력하세요 >> ";
if (y<0)
if (x>MAX)
if (number[y][x]==0)
else
if (newy>MAX)
cout<<endl;
- Marbles/신재동 . . . . 7 matches
if(marbles[testCase] == 0)
if(marbles[i] == n1[i] * x + n2[i] * y)
if(cost < c1[i] * m1[i] + c2[i] * m2[i])
if(m1[i] != 0 && m2[i] != 0)
cout << m1[i] << " " << m2[i] << endl;
else
cout << "failed" << endl;
- MineSweeper/Leonardong . . . . 7 matches
self.ground.append( [None] * aColSize )
if aRow < 0 or aRow >= self.rowSize or\
if Room.mine().equals(self.ground.getZone( aRow + d[0], aCol + d[1])):
if Room.safyZone().equals( self.ground.getZone(row,col) ):
else:
if __name__ == '__main__':
작은 단계를 밟아가면서 TDD를 적용하다 보니까 시간이 많이 걸렸다. 게다가 모르는 파이선 문법 찾는데도 시간이 걸렸다. 파이선의 새로운 기능을 알게 되어 신기하다. 다음 문제를 풀어볼까나. --[Leonardong]
- MineSweeper/zyint . . . . 7 matches
if r<0 or r>mapx-1:
if c<0 or r>mapy-1:
if map[r][c] != '*':
map.append(raw_input())
#.을 0으로 변경해줍니다.
if map[i][j] == '.':
if map[i][j] == '*':
- MineSweeper/김민경 . . . . 7 matches
size1,size2=input('사이즈를 입력하세요(n1,n2 형식으로 입력하세요)')
check.append([0 for j in range(size2)])
data.append(temp)
if data[x][y]=='*' :
if x+dx[i]>=0 and x+dx[i]<size1 and y+dy[i]>=0 and y+dy[i]<size2:
if data[x+dx[i]][y+dy[i]]=='*' and check[x][y]!='*':
if __name__=="__main__":
- MineSweeper/김상섭 . . . . 7 matches
if(temp_row > 0 && temp_row <= row && temp_col > 0 && temp_col <= col && map[temp_row][temp_col] != -1)
if(count != 1)
cout << endl;
if(map[i][j] == -1)
else
cout << endl;
if(temp_char[j-1] == '*')
- MoniWikiTheme . . . . 7 matches
MoniWiki는 기본적으로 header.php와 footer.php를 고쳐서 다양한 모습으로 자신의 개인위키를
기본적으로 header.php, footer.php를 읽는다. 이게 없으면 기본값으로 대치된다.
* header.php, footer.php는 자신이 원하는 대로 꾸밀 수 있다.
* '''include'''로 처리된다.
{{{[[Theme]]}}}매크로를 이용하여 지원 가능한 Theme목록을 볼 수 있다.
- NumberBaseballGame/영동 . . . . 7 matches
if(pitcher[i]==batter[i])
if(pitcher[i]== batter[j]){
if(i!=j)
cout<<strike<<" strike~~~!"<<endl;
cout<<ball<<" ball~~~!"<<endl;
if(strike==3)
else
- ObjectOrientedDatabaseManagementSystem . . . . 7 matches
OODBMS[오오디비엠에스]는 객체로서의 모델링과 데이터 생성을 지원하는 DBMS이다. 여기에는 객체들의 클래스를 위한 지원의 일부 종류와, 클래스 특질의 상속, 그리고 서브클래스와 그 객체들에 의한 메쏘드 등을 포함한다. OODBMS의 구성요소가 무엇인지에 관해 광범위하게 합의를 이룬 표준안은 아직 없으며, OODBMS 제품들은 아직 초기에 머물러 있다고 여겨진다. 그 사이에 관계형 데이터베이스에 객체지향형 데이터베이스 개념이 부가된 ORDBMS 제품이 더욱 일반적으로 시장에 출시되었다. 객체지향형 데이터베이스 인터페이스 표준은 산업계의 그룹인 ODMG (Object Data Management Group)에 의해 개발되고 있다. OMG는 네트웍 내에서 시스템들간 객체지향형 데이터 중개 인터페이스를 표준화하였다.
Malcolm Atkinson을 비롯한 여러 사람들이 그들의 영향력 있는 논문인 The Object-Oriented Database Manifesto에서, OODBMS에 대해 다음과 같이 정의하였다.
객체지향형 데이터베이스 시스템은 두 개의 조건을 만족시켜야만 한다 : 그것은 DBMS이어야 하며, 또한 객체지향형 시스템이어야 한다. 즉, 가능한 범위까지 OODBMS는 객체지향형 프로그래밍 언어의 현재 작업과 함께 일관되어야만 한다. 첫 번째 기준은 영속성, 2차 저장관리, 동시성, 회복, 그리고 특별한 편의 등 다섯 개의 특질로 해석된다. 두 번째 것은 복잡한 객체들, 객체 동일성, 캡슐화, 형 또는 클래스, 상속, 지연 바인딩과 결합된 오버라이딩, 확장성과 계산 결과의 완성도 등 여덟 개의 특질로 해석된다.
- One/김태형 . . . . 7 matches
{ if(number==3 || number==4 || number==7 || number==9)
if(number==1)
else if(number==2)
else if(number==3)
else
- One/남상재 . . . . 7 matches
if (a==3 || a==4 || a == 7 || a == 9 )
if ( a== 1 )
else if (a == 2 )
else if (a == 3 )
else
- OperatingSystemClass/Exam2006_2 . . . . 7 matches
1, 2번 끔찍하게 어려웠다. 중간고사 스타일로 공부했던 모두를 낚았던-_-;
족보도 필요없을 정도로 완벽히 새로운 유형의 문제들이 출제되었다. 1,2번 동기화 문제는 평소에 풀어보는 훈련을 하지 않으면 시험 시간 내에 풀기 정말 힘들다.
그 외에.. raid문제. 01학번 김모군이 "이거 내면 짐승이다"라고 했는 정말로 나왔음-_-; 그 말에 덧붙여 01학번 강모군이 "모니터 내면 짐승이다"라고 했는데 역시 나왔음. 말이 씨가 된다더니 옛말 틀린거 하나도 없다.
1. Bounded Buffer문제를 세마포어로 푸시오.(코드 작성) 단 버퍼의 사이즈는 7개가 한계이다.
2. 유니크한 우선순위를 갖는 n개의 프로세스 p1, p2, ... pn이 있다. 프린터는 2대가 있다. 이 프로세서들이 각자의 우선순위에 맞게 프린트 작업을 할 수 있도록 프린터를 할당해주는 모니터를 작성하시오.
- OurMajorLangIsCAndCPlusPlus/signal.h . . . . 7 matches
== 메크로 목록 ==
|| SIGILL || 훼손된 프로그램 또는 데이터 프로그램의 실행 ||
|| SIGTERM || 프로그램 종료 ||
|| SIGABRT || 그 프로그램과 abort가 호출되면 발생 ||
|| SIG_ERR || signal요청을 받아들일 수 없는 경우에 발생 ||
|| int __cdecl raise(int) || 이 함수를 호출한 프로시져에 첫번째 인자에 시그널번호에 해당하는 시그널을 보낸다. 실패하면 0이 아닌값을 리턴하는데, 오직 유효하지 않은 시그널 번호에서만 실패하게 된다. ||
- OurMajorLangIsCAndCPlusPlus/string.h . . . . 7 matches
|| void * memset(void * dest, int c, size_t count) || Sets buffers to a specified character. ||
|| char * strcat(char * strDestination, const char * strSource) || Append a string. ||
|| char * strncat(char * strDestination, const char * strSource, size_t count) || Append characters of a string. ||
|| int strcmpi(const char *stirng1, const char *string2) || Compares two strings to determine if they are the same. The comparison is not case-sensitive. ||
|| int strcoll(const char * stirng1, const char * stirng2) || Compare strings using locale-specific information. ||
|| char * strpbrk(const char *string, const char *strCharSet) || Scan strings for characters in specified character sets. ||
|| size_t strxfrm (char *strDest, const char *strSource, size_t count) || Transform a string based on locale-specific information ||
- PC실관리/2013 . . . . 7 matches
* 리눅스 OS 설치 후, grub을 수정하는 방식으로 접근해서 성공...
* 나날이 발전하는군.. 언젠가 원하는 날에 버튼 클릭으로 포맷되는 날이 오길...-[김태진]
* Clonezilla가 Debian-based이며, alternative 버전으로 Ubuntu-based가 있습니다.
* Clonezilla 이미지를 하드디스크에 iso 형태나 또는 파티션으로 저장해서 grub로 진입하는 방법을 생각하고 있습니다. - [김민재]
* Matlab을 학과에서 구할 수 있을 것으로 보임.
* 담당 조교님의 반대로 진행하지 않았음.
- Perforce . . . . 7 matches
상업용 RC 이며, 오픈 소스 프로젝트 진행에 한해서는 무료로 배포된다.
프로그램은 서버, 클라이언트 환경으로 관리되며, 서버는 소스의 모아서 관리한다. 서버 프로그램은 유닉스, 맥, MSWin 버전으로 제공된다. 클라이언트는 GUI, CMD 버전의 툴을 지원하며 다양한 OS 에서 이용가능하다. 또한 IDE 와 연동역시 지원한다. (IDE에는 3dmax, maya, photoshop, office 등을 포괄하는 방대한 시스템)
비슷한 소프트웨어로 Rational ClearCase, MS Team Foundation, Borland StarTeam 급을 들 수 있다.
- PowerOfCryptography . . . . 7 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는 당신이 찾아야 될 정수입니다.)
주어진 입력에 대하여 [[HTML(k<sup>n</sup>=p)]] , 즉 k를 한줄씩 출력해야 합니다. 여기서 k 는 http://acm.uva.es/p/v1/113img9.gif 입니다.
- PrimeNumberPractice . . . . 7 matches
if (scope[masterIter]) {
if (scope[secondIter])
if (scope[i])
Java 로 연습
if (numberPool[i])
if (numberPool[i])
세번째는 OOP 로 도전 예정..
- ProgrammingLanguageClass/Exam2002_1 . . . . 7 matches
(대강 기억나는대로)
* 위의 식을 문법에 맞게 left-most 로 유도하시오.
* Floating Point 변수의 경우 해당 값에 대해 근사값만을 표현한다. 그 이유는 무엇인가?
공부할때 각 요소들에 대한 비교 할때마다 Ada 를 빼놓지 않기에 (늘 책에서의 비교언어는 C/C++, Pascal, Ada, Java 이다) 주로 언급된 언어들만 공부했건만, 왜 뜬금없이 PL/1 을 내신걸까; 그밖에 다른 문제들은 평이해서 그다지 별 감흥(?)없었고, 마지막 문제가 괜찮았던듯.
나의 경우는 1. string (char array) 으로 애뮬레이션 한다. (단점도 썼음. 계산뒤의 메모리할당 문제와 실제 산술연산 계산을 위한 형변환시 cost가 많이 든다 등등) 2. long integer 2 개로 앞의 32 bit 는 유효숫자를, 뒤의 32bit 는 지수를 표현한다. (2^-31 ~ 2^31 * 2^-31 ~ 2^31 까지 표현된다라고 썼는데, 실제론 저 숫자들을 다 표현할 수가 없겠군. 2^31 1024 * 1024 * 1024 * 2 니까 약 10억. 즉, 자리수 표현도 10억 이후부터는 precision 유효숫자를 다 쓸수 없을테니) 아.. 풀고나니 잘못생각했군. 흑; --석천
- ProgrammingPearls/Column6 . . . . 7 matches
* 어떤 프로그램이 1년 걸렸었는데 단계별로 쪼개서 튜닝을 했더니 하루만에 되더라하는 내용이 씌어있다.
* 알고리즘과 자료구조의 교체 : Sequential 한것을 Binary Tree로 교체함으로써 O(n*n)이 O(n*lg n)으로 줄었다.
* 시스템 의존적인 코드 튜닝 : 크리티컬한 부분을 어셈블리로 다시 짰다.
* 많은 양의 스피드업을 원한다면 다단계를 고치자. 한군데를 고침으로써 다른 부분도 고칠것이 생긴다.
- ProjectAR/기획 . . . . 7 matches
레벨(경험치로 계산)
방어력(방어구로만 계산)
이동속도(신발로만 계산)
* 위에 괄호 안에 추가한 내용은 제가 그냥 임의로 이렇게 해 보면 어떻까 하고 적어본거에요. 이거 외에도 내성도 데이터를 따로 안가져도 될꺼 같아요. 최대한 가지는 데이터가 적었으면 좋겠어요 - 상욱
있을껀 있어야 하겠지만 직접 입력이 되야 하는 데이터를 줄이자는 이야기이죠^^; 어떤 공식을 따라 계산이 되고 기본적인 데이터만 가진다면 프로그램 하는데 있어서 더욱 편하지 않을까 하네요 -[상욱]
(정령도 업그레이드를 해서 이름을 바꿔가는 건가요? 아니면 그대로 레벨만 올라갈 수 있는건가요?)
- ProjectGaia/기록 . . . . 7 matches
* Key Sequential Page단위 로딩으로 변경, Spec에 요구하는 입출력 정리
* Extendible Hash 병합, 분할 구현
* 각 기타 요구 사항에 맞는 출력 양식으로 변경, ["수행시간측정"] 도 함
* 12/9 : Pc실 Key Sequential File 초안 , Extendible Hash 초안 구현
* 중간 발표에 대한 준비, 프로젝트 스펙 점검, 지식 공유, 프로젝트 페이지 열기
- PythonIDE . . . . 7 matches
각 IDE는 서로 만의 장단점을 가지며, 기반을 둔 GUI 툴킷에 따라서 툴킷간의 상성에 영향을 받기도 한다.
* PyDev : 이클립스 플러그인으로 제공된다. 설치가 용이하며, 이클립스 통합이기 때문에 굉장히 단순하며, 안정성이 높다.
* SPE : 설치했다가 바로 지웠다.
* wingIDE : 디버깅이 지원되는 IDE, 유료로 판매한다.
* eric 3 : PyQt 로 만들어진 IDE
* Visualwx : wxToolkit 의 WYSWIG 을 지원하는 디자인 중심의 IDE. 파이선 프로그래밍을 지원한다. GUI 개발시 wxWindow 를 공부하는 유저에게 상당히 좋은 학습자료가 될 수 있다.
* Boa : 깔았다 바로 지움.
- RUR-PLE . . . . 7 matches
* 프로그래밍은 재밌다는 것을 느끼게 해줄 툴
* 컴퓨터 프로그래밍을 익히는 것은 악기를 익히는 것과 비슷하다. 당신은 그것에 관해 단순히 읽기 말고 해봐야 한다.
* 사람들이 읽기 쉬운 프로그램을 작성해야 한다.
* 컴퓨터 프로그램을 작성할때는 반복을 하지 마라.
* [http://zeropage.org/pub/language/python/python-2.4.1.msi Python 2.4 다운로드]
* [http://prdownloads.sourceforge.net/wxpython/wxPython2.6-win32-unicode-2.6.1.0-py24.exe wxPython다운로드]
* [http://prdownloads.sourceforge.net/rur-ple/rurple0.9.0.1b.zip?use_mirror=nchc 러플 다운로드]
- RandomWalk2/ExtremePair . . . . 7 matches
if(self.currentRow == -1):
elif(self.currentRow == self.row):
if(self.currentCol == -1):
elif(self.currentCol == self.col):
if(self.board[r][c] == 0):
if __name__ == '__main__':
journeyList.append(int(journeyString[i]))
- RandomWalk2/현민 . . . . 7 matches
cout << "이동할 행로들을 입력하십시오 : ";
if (next_x == -1)
if (next_x == N)
if (next_y == -1)
if (next_y == M)
if(board[a][b] == 0)
cout << endl;
- RealTimeOperatingSystemExam2006_2 . . . . 7 matches
a) 세마포를 사용하는데 초기 파라미터를 0,1, n 으로 넣어서 각각 이벤트 플래그, 바이너리 세마포, 카운팅 세마포 로 쓰는거 설명하는거 나옴
b) 세마포 구현 어떤 코드에서 OSSched() 를 호출하고 나서 무슨 코드가 있는지 나옴. 대략 타임아웃으로 돌아온건지, 아니면 세마포를 얻는건지 관련 코드
c) mutex 나 뭐 그런걸로 바이너리 세마포용으로 쓸수 있는데 굳이 왜 바이너리 세마포를 제공 해주나?
e) 메시지 큐 박스로 카운팅 세마포 용으로 쓰는 방법
- ReverseAndAdd . . . . 7 matches
대부분의 정수는 이 방법을 몇 단계만 반복하면 회문이 된다. 하지만 예외도 있다. 회문을 찾을 수 없는 것으로 밝혀진 첫번째 수는 196이다. 하지만 회문이 없다는 것이 증명된 적은 없다.
어떤 수가 주어졌을 때 회문이 있으면 출력하고, 그 회문을 찾기까지 뒤집어서 더하기를 반복한 횟수를 출력하는 프로그램을 만들어야 한다.
테스트 데이터로 쓴이는 수는 모두 뒤집어서 더하기를 1,000번 미만 반복해서 회문을 찾을 수 있는 수고, 그렇게 만들어진 회문을 4,294,967,295보다 크지 않다고 가정해도 된다.
첫번째 줄에는 테스트 케이스를 나타내는 정수 N(0<N<=100)이 들어있고, 그 아래로 N개의 줄에 걸쳐서 회문을 구해야 하는 정수가 한 줄에 하나씩 들어있다.
* 정수 N(0<N<=100) 제한을 프로그램 상에서 걸어놓으면 로봇이 틀린 답으로 판단하는군요. 왜 그럴까요? -- 보창
- ReverseAndAdd/1002 . . . . 7 matches
if n==rev: return cnt, n
* 옆의 형이 matlab 으로 풀고 나는 python 으로 풀기 시작. python 이 시간이 약간 덜 걸렸는데,
이유는 reverse 처리 부분을 matlab 으로 빨리 프로그래밍 하기 좋지가 않다는 점. 나머지 코드는 둘이 거의 거의 비슷하게 나옴.
* 예외처리 안하고 가능한 한 빨리 짧게 풀기로 고민. 실제 bot 으로 돌릴때는 다를지도 모르겠지만. (196 넣으면 에러 발생)
- STL/search . . . . 7 matches
이 과정을 재귀적으로 하면 값을 찾을수 있다. 이런 탐색 방법을 Binary Search 라고 부른다. 이것이 성립하려면, 원소들이 정렬되어 있고, 임의접근(random)이 가능해야 한다. 정렬이 안되어 2,3 번의 과정을 진생할수 없다.
* STL에서는 최적의 조합으로, sort + binary_search를 추천해준다. 예제를 보자.
sort(v.begin(), v.end());
if(binary_search(v.begin(), v.end(), 85))
else
* sort해준다음 binary_search()의 인자로는 시작부분, 끝부분, 찾고자 하는 원소. 이렇게 넣어주면 된다.
- ScheduledWalk/임인택 . . . . 7 matches
if( c == '9' )
if( curX<0 ) curX = size-1; // warp
else if( curX >= size ) curX = 0; // warp
if( curY<0 ) curY = size-1; // warp
else if( curY >= size ) curY = 0; //warp
- SmallTalk/강좌FromHitel/차례 . . . . 7 matches
| 1.1. 프로그램과 프로그래밍 언어 <#1>
| 1.3. Smalltalk 맛보기 프로그램
| 2.2. 몸으로 느껴보기
| ! 2.3.5. 무른값, 굳은값, 그리고 바로값 <#19>
| > 3. 객체로 채워진 세상
| 3.2.2. 바로값과 꼬리표
- SmallTalk_Index . . . . 7 matches
| 1.1. 프로그램과 프로그래밍 언어 <#1>
| 1.3. Smalltalk 맛보기 프로그램
| 2.2. 몸으로 느껴보기
| ! 2.3.5. 무른값, 굳은값, 그리고 바로값 <#19>
| > 3. 객체로 채워진 세상
| 3.2.2. 바로값과 꼬리표
- SolidStateDisk . . . . 7 matches
반도체 메모리 칩(e.g. DRAM chips) 으로 이루어진 디스크 시스템.
백업 메카니즘으로서 배터리나 일반적인 자기디스크를 내장하곤 한다. SDD 는 일반적인 HDD I/O interface 로 연결된다. 이로 인해서 얻을 수 있는 잇점은 적은시간에 빈번한 I/O 작업이 일어날 경우에, seek time 이나 rotational latency 가 없는 메모리로서, 자기디스크에 비해 월등한 성능을 나타낼 수 있다. 그에 덧붙여 구동부가 없는 구조로서 좀더 내구성이 뛰어나다고도 할 수 있겠다. 단점은, 특성상 대용량화가 어려우며 커다란 데이터의 요구량이 커질때. 즉 access time 보다 transfer time 이 더 요구될때 효율성이 안좋다.
- Squeak . . . . 7 matches
스퀵은 스몰토크(Smalltalk)입니다. 일반적으로 스몰토크라 그러면 국내에서는 컴퓨터 역사의 한 부분으로 과거의 언어정도로 생각하고 있습니다. 그래서인지 국내에서는 일부 취미 생활로 공부하는 사람, 극(극극극극)히 적은 특정 분야의 회사를 제외하고는 쓰이지 않습니다. 그러나 스몰토크는 진보적이라면 진보적이지 결코! 절대로! 과거의 고리타분한 언어가 아닙니다. 무엇보다도 스몰토크는 무척! 즐겁습니다. 특히 '스퀵'은 더 즐겁습니다. ;) (소개글은 http://squeak.or.kr 에서 퍼왔습니다)
== 스퀵으로 할 수 있는 것들 ==
* 스퀵 (스퀵으로 스퀵을 한다? )
- TestCase . . . . 7 matches
원하는 동작을 하는지를 검사하는 것을 그 목적으로 한다.
XP에서 TestCase를 먼저 작성함으로서 프로그래머가 내부 구현에 신경쓰다가 정작 그 원하는 동작(예를 들어, 다른 모듈과의 인터페이스)을 놓칠 위험을 줄여준다. 왜냐하면, 프로그래머는 먼저 만든 TestCase를 통과하는 것을 첫번 목표로 삼을 수 있기 때문이다.
-> Xp 에서 프로그래머는 TestCase 를 통과하는 것을 목표를 삼는다. 그래서 구현이나 디자인에 신경쓰다 원하는 모듈을 오동작으로 이끄는 위험을 줄인다.
- TheTrip/Leonardong . . . . 7 matches
if each > aMean:
resultList.append(each)
if __name__ == '__main__':
일단 문제를 이해하는데 시간이 20분 정도 걸렸다. 문제 해결책을 찾아보던 중 평균보다 많이 가진 사람들이 돈을 나누어 주면 된다는 사실을 깨닫기까지 14분 걸렸다. 코드로 만드는데는 41분이 걸렸는데, 알고리즘을 따라 무난히 작성하였다. 나머지 시간은 문법을 보거나 디버깅했다.
문제를 풀기 전에 샘플 입력부터 보는 경향이 있다. 문제를 이해 못했으므로 샘플 입력을 보다가 결국 다시 문제를 보느라 시간이 지체된다. 따라서 문제를 다 이해하고, 정의한 뒤 샘플 입력을 보아 정의가 맞는지 확인하는 순서로 문제를 풀어야겠다. 해결책은 문제를 정의한 다음에 떠올린다.
무엇이 잘못 되어도 테스트를 추가해본다는 점은 역시나 TDD가 매력적일 수 밖에 없는 요인이다. 이제는 손으로 테스트를 하려면 너무 귀찮고 시간낭비라고 생각한다. TDD 리듬을 조절해줄 파트너가 옆에 있다면 더욱 좋으련만. :) --[Leonardong]
- ThinkRon . . . . 7 matches
당신은 어떤 문제에 직면했다. 좀처럼 일이 풀리질 않는다. 이 때 스스로에게 묻는다. 만약 RonJeffries(혹은 당신이 존경하는 전문가)가 이 자리에 있었다면 어떻게 했을까?
저는 이미 RonJeffries를 어느 정도 내재화(internalize)하고 있는 것은 아닌가 생각이 듭니다. 사실 RonJeffries나 KentBeck의 언변은 "누구나 생각할 수 있는 것"들이 많습니다. 상식적이죠. 하지만 그 말이 그들의 입에서 나온다는 점이 차이를 만들어 냅니다. 혹은, 그들과 평범한 프로그래머의 차이는 알기만 하는 것과 아는 걸 실행에 옮기는 것의 차이가 아닐까 합니다. KentBeck이 "''I'm not a great programmer; I'm just a good programmer with great habits.''"이라고 말한 것처럼 말이죠 -- 사실 훌륭한 습관을 갖는다는 것처럼 어려운 게 없죠. 저는 의식적으로 ThinkRon을 하면서, 일단 제가 가진 지식을 실제로 "써먹을 수" 있게 되었고, 동시에 아주 새로운 시각을 얻게 되었습니다.
전문가 비전문가 PairProgramming을 하다가 문제에 직면했습니까? 스스로에게 물어보십시오. 만약 KentBeck이나 WardCunningham, RonJeffries 같은 사람이 이 자리에 나 대신 있었다면 이 문제에 어떻게 대응했을런지. 그리고 거기서 얻은 해답을 꼭 실행에 옮겨 보세요. 자신은 물론 상대방도 놀라게 될 것입니다. 해답은 늘 안에 있습니다.
One morning Doherty, on his way to Stiglitz’s office, said to himself, "Now what do we really talk about? What’s the nature of our conversation?" And his next thought was, "Well Stiglitz never says anything; he just asks me questions. And I don’t know the answer to the problem or I wouldn’t be down there; and yet after fifteen minutes I know the answer. So instead of continuing to Stiglitz’s office, he went to the nearest men’s room and sat down for a while and asked himself, "What questions would Stiglitz ask me about this?" And lo and behold, after ten minutes he had the answer to the problem and went down to Stiglitz’s office and proudly announced that he knew how to solve it.
- UseSTL . . . . 7 matches
* [[HTML(<strike> 4장 Differ from other lib 1 </strike>)]]
* 시작한 이후로 C++ 배웠다고 한 자로서 STL 을 몰랐다는 것이 얼마나 어리석은 것이었는가 깨닫게 된다. --["상민"]
* 이전에.. 1부터 10000까지 숫자를 임의로 생성시켜야 하는데 임의적인 숫자가 반복되어서도 안되고, 숫자가 빠져서도 안되게 코딩을 해야 하는 경우가 있었잖아. 그때는 Boolean 10000개로 이미 쓴 숫자인지 테스트 했었던 것 같은데 아래가 정석인 것 같다.
["프로젝트분류"]
- VoiceChat . . . . 7 matches
다자간에 프로젝트를 진행할때 같은 장소에서 작업을 하기 힘든 경우 음성채팅을 이용하면 그나마 숨통을 틀 수 있다. MSN 메신저를 비롯하여 음성채팅을 지원하는 여러 메신저의 경우 1:1 만 지원한다. 아래의 프로그램을 사용하면 다자간 음성채팅을 무료로 할 수 있다.
* KaZaA 의 개발진이 만들었다고 한다. 전 세계적으로 많이 쓰이고 한글화도 되어있다. PeerToPeer 기술을 사용했다. [http://web.skype.com/home.ko.html 홈페이지]
나중에 텀 프로젝트를 진행할때 메신저보다는 이것을 사용하면 좋을듯.
- WeightsAndMeasures/문보창 . . . . 7 matches
동적프로그래밍 문제. n! 번의 수행을 해야하는 문제가 동적프로그래밍을 이용하니 O(n^2)만에 풀 수 있다. 동적프로그래밍의 힘이 대단하다.
if (t[1].weight <= t[1].strength)
if (j != 0 && dynamic[(i-1)%2][j-1] + t[i].weight < dynamic[(i-1)%2][j] &&
if (dynamic[numT%2][i] < MAX_WEIGHT)
cout << result << endl;
- WikiGardening . . . . 7 matches
''실제 위키의 View 구조를 조성하는 사람들이 드물기 때문에, 기존 게시판에서의 스타일과 똑같은 이용형태가 계속 진행되어버렸다는 생각이 든다. (이 경우 RecentChanges 가 Main View 가 된다.) (조만간 위키 전체에 대한 링크 구조 분석이나 해볼까 궁리중. 예상컨데, 현재의 ZeroWiki 는 Mind Map 스타일에 더 가까운 구조이리라 생각. (개념간 연결성이 적을것이란 뜻. 개인적으로는 볼땐, 처음의 의도한 바와 다르긴 하다.) --1002'' (DeleteMe ["1002"]의 글을 다른 페이지에서 옮겨왔습니다.)
* [프로젝트분류]와 [프로젝트지도]와 [WikiProjectHistory ]
* [병역문제어떻게해결할것인가]와 [http://zeropage.org/wikis/nowthen2004/_b1_ba_b4_eb 군대]
구조조정 모델로 참고 할 만한 페이지는 [페이지제목띄어쓰기토론] 같습니다.
SeeAlso [http://no-smok.net/nsmk/_b9_ae_bc_ad_b1_b8_c1_b6_c1_b6_c1_a4#line42 제로위키 가꾸기], [문서구조조정토론]
- WindowsTemplateLibrary . . . . 7 matches
{{|The Windows Template Library (WTL) is an object-oriented Win32 encapsulation C++ library by Microsoft. The WTL supports an API for use by programmers. It was developed as a light-weight alternative to Microsoft Foundation Classes. WTL extends Microsoft's ATL, another lightweight API for using COM and for creating ActiveX controls. Though created by Microsoft, it is unsupported.
WTL은 객체지향적인, Win32 를 캡슐화하여 만들어진 C++라이브러리로 MS 에서 만들어졌다. WTL은 프로그래머에 의한 사용을 위해 API Programming Style을 지원한다. WTL MFC에 대한 경량화된 대안책으로서 개발되었다. WTL은 MS의 ATL를 확장한다. ATL 은 ActiveX COM 을 이용하거나 ActiveX 컨트롤들을 만들기 위한 또 다른 경량화된 API 이다. WTL은 MS 에 의해 만들어졌디면, MS 가 지원하진 않는다.
지원이 되지 않는 라이브러리이기 때문에 WTL에 관한 문서는 거의 없다. 그러나 대부분의 API는 표준 Win32 콜을 거의 직접적으로 반영하므로, WTL의 인터페이스는 대부분의 윈도우즈 프로그래머들에게 친숙하다.
- XMLStudy_2002/Encoding . . . . 7 matches
XML로 작성된 파일을 프로세서가 알수 있도록 변환하는 방법을 알아본다.
*단순한 텍스트 형태의 XML문서를 다양한 언어로 작성하기위해 각 언어에서 사용하는 인코딩 방식을 사용한다.
<?xml version="1.0" encoding="Shift_JIS"?>
*XML에서 유니코드를 사용하면 한 문서 내에서 어떤 부분은 한국어로 또 어떤 부분은 일본어로 작성하는게 가능하다.
*유니코드에 대해서 자세히 알고 싶거나 참조해야 하는 경우 : [http://www.unicode.org/]
- ZIM . . . . 7 matches
=== 프로젝트명 ===
a. ["ZIM"] - 개발 계획 문서 (by 프로젝트 매니저)
* 프로젝트 매니저(Project Manager) : 이덕준
* Time, Cost, Quality에 최적이 되도록 프로젝트를 관리한다.
* 전체 프로젝트의 작업산출물들(각종 문서 및 소스코드등)을 관리한다.
* 1월 7일 유저인터페이스 프로토타입에 대한 생각을 맞춰보려합니다. 학교서 뵙죠. ^^;
["프로젝트분류"]
- ZPBoardHistory . . . . 7 matches
*위키로 넘어가면서 사장되었던~~
*지금은 사용하지 않아서 역사의 뒷편으로~~~
*프로젝트 신청 게시판 : 프로젝트의 신청을 하고 사람들을 모았었습니다.
*프로젝트 게시판 : 프로젝트를 실제 진행하는 게시판입니다.
["제로페이지분류"]
- ZeroPage/회비 . . . . 7 matches
* 제로페이지에서 운영되는 회비를 좀더 투명하게 관리하기 위해서 만들어진 페이지.
* 이 페이지는 이번 해 뿐만 아니라 앞으로도 계속되는 제로페이지의 전통이 될 것이다.
== 2005년도 회비관리담당자 제로페이지 부회장 윤성만 ==
[제로페이지분류] 쪽을 보니까 그런식으로페이지가 만들어져있더군요 --[iruril]
[ZeroPage], [제로페이지분류], [2005년활동지도],[2008년활동지도], [회비]
- ZeroPage회칙토론 . . . . 7 matches
* 이제까지의 자유로운 제로페이지의 문제점
회칙을 정할 때 "'제2조 회원관리 제3항 회비'" 뭐 이런 식으로 하는 건가요? 그렇게 한다면 하드카피 문서로 만들어서 신입회원들에게도 줘야겠네요... ^^;; --["창섭"]
["neocoin"]:설마, 그렇게 까지는 필요 없겠지 회원 자격 상실 조건과, 정모 만 확실하게 정하면 더 이상 무슨 규칙이 있겠냐 --상민
각 항목에 몇조 몇항을 두는 이유는 index가 용이하라고 있는것이겠지만, 이 상황에 경우는 그리 필요없을것이라 생각함.--석천
회칙의 강제성만 부여된다면 기본적인 것들(위에 나온 것들)로도 충분하다고 생각함. --지환
- callusedHand . . . . 7 matches
== 프로필 ==
* 좋아하는 영화: 버팔로 66
* 논리적으로 생각하기-개념분석법-(저자: John Wilson)
''(move to somewhere appropriate plz) 논리학 개론 서적으로는 Irving Copi와 Quine의 서적들(특히 Quine의 책은 대가의 면모를 느끼게 해줍니다), Smullyan의 서적들을 권하고, 논리학에서 특히 전산학과 관련이 깊은 수리논리학 쪽으로는 Mendelson이나 Herbert Enderton의 책을 권합니다. 또, 증명에 관심이 있다면 How to Prove It을 권합니다. 대부분 ["중앙도서관"]에 있습니다. (누가 신청했을까요 :) ) --JuNe''
= 프로젝트 =
- html5practice/즐겨찾기목록만들기 . . . . 7 matches
* 원래 목적은 naver api를 끌고 와서 별표 찍는 연습을 만들려고 했는데. 이건 뭐. ajax cross domain 문제로 접근 불가. 난이도 하향. 로컬 목록을 사용자가 만들어서 그걸 즐겨찾기 추가 삭제 하는 코드를 만들었음. 기능과 UI가 안습이지만, 그래도. 만들었음.
if( value == "true" )
if (localStorage.length == 0){
console.log("end do show all");
if( value == "false" )
if (localStorage.length == 0){
- nilath개인페이지처음화면 . . . . 7 matches
학습 로드맵.
C(Master, 바보 찌질이들은 태클 걸지 말고.) -> Assembly(30% 진행, 일반적 프로그램 크래킹 수준)
Assembly를 모르는 놈은 C를 안다고 할 자격이 없으며(문법만이야 알겠지. 얕은 깊이로 뭔들 못할까. 언젠가 한계가 올것... ㅉㅉ), C++을 안다고 할 자격이 없다.
후후... 그나저나... C를 제대로 안배우고 다른걸 배우는 사람들은 큰일인걸...
언어의 세대 차이. C를 제대로 배운 사람(기계어 수준의, 컴퓨터의 기초, C언어의 매우 깊은 분야)이 다른 언어를 배우면 프로그래머가 될 수있고... 그것은 예술이고...
다른 생산성을 기초로한 차세대 언어만을 배운 사람이 될 수 있는 것은 기껏해야 코더뿐... 그것은 기술이다...
- snowflower/Arkanoid . . . . 7 matches
Object Programming의 일환으로 Arkanoid(벽돌깨기)를 제작하고 있습니다ㅏ.
3번을 구현하기 위해서.. 생각을 여러가지로 해 봤다. -_- 충돌처리는 지난번 만들때에도 완벽하지 못했기에.. [BR]
이번에야 말로 완벽하게 하자고 했는데, 100점은 아니지만 85점의 결과는 나왔다.
앞으로 추가하기 위한 것은 만들어둔 충돌처리 루틴을 좌표계와 연결하여 이제.. 45도가 아닌 다른 각도에서도 충돌 가능하도록 하는것.[[BR]]
3. 멀티미디어 타이머의 사용으로 속도를 높였다
문득... 다른 사람의 프로젝트 페이지에 가 보았다. 내가 알고 있는 것과는 다른 것들. 객체지향, STL... 그렇게.. 왠지 뒤로 밀리는 느낌이다.[[BR]]
- ㄷㄷㄷ . . . . 7 matches
구구단 짜기를 숙제로 내 줬는데 위키 페이지를 너무 늦게 만들어서 암쏴리 ㅠㅠ
오늘 원래 if else 문을 가르쳐 주려고 했거덩~
두번째 시간에는 if else 문과 switch 문을 배웠습니다~.
두개가 매우 비슷한 기능을 갖기 때문에 같은 내용의 프로그램을
두 개의 서로 다른 함수를 사용해서 하도록 했지~
- 강희경 . . . . 7 matches
== 종료된 프로젝트 ==
[책거꾸로읽기]
== 종료되지 않은 프로젝트(흐지부지) ==
*[http://aragorn.bawi.org/interests/tao_of_programming_(korean).html]프로그램의 도
*[http://xper.org/wiki/seminar/_b1_b9_be_ee_bd_c7_b7_c2_b0_fa_c7_c1_b7_ce_b1_d7_b7_a1_b9_d6]국어실력과프로그래밍
그리고 시간이 되신다면, NoSmok:문서구조조정 도 읽어 보세요. 유익할 겁니다. 앞으로 수많은 글을쓰실때 도움될겁니다.--NeoCoin
static library mode 로 compile해.
- 결혼과가족 . . . . 7 matches
* 강사: 최보아(외모 출중에, 그 당시 신혼이라서 경험을 바탕으로 재밌는 강의를 할 거라는 소문을 듣고 수강), 성적이 훌륭한데 학점이 안나오는 과목이 있다. 단순 암기과목인 경우 그런 경우가 있다. 예를 들어 10명이 듣는데 3명이 절대 점수 99점이고 내가 98점이면 나는 98점이라는 우수한 점수에도 불구하고 B+이라는 점수를 받게되는 것이다. 나에게 결혼과 가족이 그런 과목이었다. 강사님과 친하게 지내고 레포트 점수도 우수했고 시험 점수도 우수했지만 B+이라는 점수를 받았다. 강사에 따라 다르겠지만 단순 학점이 목적이라면 이런 암기과목은 피해야겠다.(ex, 일본어,한자...) 나름대로 강의 내용은 흥미롭고 실생활에 유용한 내용이다. [성의과학]과 같이 들을시에는 약간의 씨너지효과도 있다. --[강희경]
* 희경이의 의견에 전적으로 동의한다. 나 같은 경우는 출석 한번도 안 빠졌고 시험은 보통, 리포트 점수는 별로(열심히 썼다고 생각하는데 분량에 있어 착오가 있었다)였는데 C+를 받았다. 들어두면 좋은 내용이긴 하나 그렇다고 추천할 정도는 아니다. 수업도 많고 강사도 많아 어떤 것을 듣느냐에 따라 차이가 많은 것 같다. --[곽세환]
- 공개선언 . . . . 7 matches
다짐한 내용이 작심삼일이 되지 않으려면, 공개적으로 다짐을 밝히면 도움이 될 것 같네요.
하는 일을 구체적으로 분석하고 꼼꼼하게 처리하자. 프로가 되려면 숲도 보고 나무도 봐야지. [전문가되기세미나]를 참고해볼까?
[전문가되기세미나]의 내용을 바탕으로, 나의 노력으로 전문가가 되자. 비록 시작은 늦더라도, 맺은 열매는 시기에 늦지않게, 알차게 !
프로그래밍 연습하기.(4학년 과목 소화하고 싶다면 해두자.)
[나를만든책장] 물려주기 전에 깔끔하게 다듬어 놓기.(이제 물려줄 때가 되었지만 제대로 넘겨주자.)
- 권영기 . . . . 7 matches
* [권영기/채팅프로그램]
* NIPA-Purdue 캡스톤 프로그램
* 사실 개인 위키 페이지가 있었다는 사실을 까먹고 있었습니다. 이전에는 그래도 자주 보고 업데이트도 했었는데. 성적은 잘 받았고, 전공과 관련 없는 책도 많이 읽었네요. 작년에 몇 권 정도 책을 빌렸는지 보니까 전공 비전공 합쳐서 65권 빌렸네요. 그래도 39권 정도는 다 읽거나 어느정도 읽고 도움도 많이 받았어요. 읽은 것에 대한 내용 정리가 좀 더 되있었으면 좋았을텐데. 그래도 나름 나쁘지 않네요. 10권 정도는 빌려놓고 안봤고, 16권은 빌린책을 다시 빌려서(...) 그리고 영어 점수랑 한자 급수는 2015년으로 넘어갔습니다. - [권영기] 2015/01/05
* ㅎㅎㅎ 이게 이런식으로 댓글다는것도 생각보다 재밌어요. 나중에 다시 보기도 편하고. 많이 써봐요~ -[김태진]
* 이런 식으로 쓰면 되는군요. ㅎㅎ -[권영기]
* 학교 책은 원래 다섯권씩 풀로 빌리고 한권 읽고 나머지 손도 안 댄 체 연체하는 게 재미! - [김수경]
* 제가 그런식으로 하다가 연체료가 하루에 500원씩 늘어나는 상황을 보고 경악하고, 많은 연체료를 냈습죠 ㅠㅠ - [권영기]
- 김신애/for문예제1 . . . . 7 matches
cout<< i << "\t" <<11-i<<endl;
cout << b <<"*"<<a<<"="<<a*b<<endl;
cout << b <<"*"<<a<<"="<<a*b<<endl;
cout << array[i] << endl;
cout << array[i] << endl;
int 형 배열 10개에 cin으로 입력 받은 값을 저장해서 배열의 합을 출력~!
cout << c << endl;
- 김태진 . . . . 7 matches
* SWTV(SW Testing&Verification) 연구실에 있습니다.
* If you have any Q, feel free to contact me.
* '''프로젝트/스터디 소개 : [https://sites.google.com/site/jerenealkim/projects 링크]'''
* 2012년 제로페이지 회장
* 제로페이지 정회원 (from 5/18)
* [제로페이지의문제점]
* 새로운 사실을 알았네요..-_-; - [김태진]
* 안조기졸업. 정상적으로 졸업하던지 더 하던지. - [김태진]
- 덜덜덜 . . . . 7 matches
앞으로 잘해보아요 ^-^ ♡
구조체와 링크드리스트에대해 숙제를 낼까 생각해봤지만... 그건 학과 숙제로 충분할거 같아서 ㅋ
제출은 널널하게 시험끝나고 모임할때 까지로 하지요 ^^;
for문 하나로도 짤수있다고 하니까요 다양한 답이 나오길 기대해볼게요 ^^
공부중에 막히시거나 질문하실것은 저한테 문자나(^^;) 엠에센 으로 질문해주세요
[DevCpp] // 다운로드 가능
우씨 왜 자꾸 나 결석으로 바꿔놓냐!! 혼난다.... 누군지 모를거 같지만 위키는 기록 다남는다.. - [조동영]
- 데블스캠프2004/5일간의의미 . . . . 7 matches
* 데블스캠프 시작 전에 했던 토의로, 앞으로 데블스캠프를 하는 5일간은 무엇이고 싶나에 대해서 토의했습니다.
* 신소영: 새로운 경험
* 이슬이: 2학년 되면서 숙제를 혼자서 못 하는 경우가 많았는데, 여기서 공부해서 숙제를 혼자서 할 수 있도록.
* 곽세환: 새로운 걸 많이 배우며, 방학 동안에도 그걸 바탕으로 꾸준히
* 김홍선 : 새로운 경험, 사고의 폭 넓히기
- 데블스캠프2006/월요일 . . . . 7 matches
|| 문법 || 함수 || MSDN || SVN,SSH || 표준입출력 || 계정 및 따로 공부 ㅋㅋ ||
||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/준비/월요일 . . . . 7 matches
|| 문법 || 함수 || MSDN || SVN,SSH || 파일입출력 || 계정 및 따로 공부 ㅋㅋ ||
||pm 07:00~08:00 || 데블스 소개및 프로그램 설치 || ||
||am 04:00~06:00 || 최종 프로그램 || 남상협 (01) ||
새내기 위주로 저 레벨에 문제 부터 하나씩 올라가는 레벨업 방식.
위 일정시간에 배우는 예제 소스는 최종프로그램에서 다 사용 하여서 프로그램을 만든다.
초보자이외 잘하는 새내기는 박영창 선배께서 따로 진행할 예정.
- 데블스캠프2009/목요일/연습문제/다빈치코드/박준호 . . . . 7 matches
if (color == 'w'){
else if(color == 'b'){
if(handsort[i].color1 == 'w')
if(handsort[i].number >= handsort[(i+1)].number)
if(handsort[i].number == handsort[i+1].number)
else{
- 똥배짱 . . . . 7 matches
1 마음속으로 다져 먹은 생각이나 태도.
[똥배짱]을 부리는 사람을 논리로 설득시키기란 어렵다. 일례로 하루는 내가 축구하러 운동장에 나갔더니 사람들이 야구를 하고 있었다. 야구동아리 끼리 시합을 하는 모양이었다. 야구동아리에서 운동장을 빌렸다는 말에 내가 함께 축구하는 아저씨들도 가만히 앉아서 구경만 하고 있었다. 축구할 사람이 점차 모이자, 우리는 운동장 구석에서 미니게임을 시작했다. 야구동아리에서 제지했지만, 좋은 말로 하면 양해를 구해서 시합 끝날 때까지 미니 게임을 했다. 사실 그 정도 양보하기란 어렵지 않을 수준이었다. 하지만 시합이 끝나고 야구동아리는 수비 연습을 계속했다. 시합이 끝나고 운동장에서 다른 팀과 시합을 할 생각이었던 우리는 [똥배짱]을 부렸다. 야구동아리에서 운동장을 빌렸지만, 우리도 이만큼 기다렸으니 운동장을 써야겠다. 야구공에 맞든지 말든지 우리는 축구 할테니까 너네는 야구 해라. 우리 쪽 아저씨 몇 명과 야구동아리 몇 명이 실랑이를 벌인 끝에 결국 야구동아리가 짐싸서 떠났다.
[똥배짱]에도 해법은 있나보다. 버스를 타고 가다가 라디오에서 알콜중독자 가족에 대한 사연을 들려주었다. 알콜중독인 남편을 입원시키는 대신, 가족의 사랑으로 이겨낸 감동적인 이야기였다. 술을 끊지 못하는 남편, 아버지를 골칫거리로만 생각하던 가족에서, 발도 씻겨주고 술동무도 되어 이야기를 나누면서, 결국 알콜중독을 이겨내는 변화를 만들어냈다. 알콜중독이 [똥배짱]과 통하는 면이 있다는 면에서 생각했다. [똥배짱]에는 말로 백 번 설득하는 것보다, 행동 한 번 잘하는 것이 효과가 있다. 감성을 움직일 수 있다면, [똥배짱] 부리는 사나운 이들도 순한 양처럼 길들일 수 있다.
- 로그인없이ssh접속하기 . . . . 7 matches
* 구글에서 어떤 검색 키워드를 넣느냐에 따라서 삽질을 하던지 바로 해결하던지 한다는 것을 알았음. 위 검색 키워드로 찾아 가면 위 참고글이 나오는데 똑같이 해도 안될 가능성이 높음.
Your identification has been saved in /home/a/.ssh/id_rsa.
아래와 같은 식으로 B 서버에 .ssh 폴더가 만약 없다면 만들고.
public 키를 해당 폴더에 해당 이름으로 저장
주의점. 그리고 아래 두 라인의 명령이 위 참고 링크대로 했을때 안될 수 있는 여지.
* A에서 B 서버로 접속하기 위해서 는 A 에서 private_key 인 id_rsa 가 꼭 있어야 하고, 이것의 public_key 가 해당 B 서버의 authorized_keys 안에 추가되어 있어야 한다. authorized_keys 안에는 여러개를 넣을 수 있다.
- 마방진/장창재 . . . . 7 matches
if (st_place_h < 0)
if (st_place_y == size)
if (array[st_place_h][st_place_y] != 0)
if (st_place_h >= size)
if (st_place_y <0 )
if (st_place_h >= size)
cout << endl;
- 몸짱프로젝트/BinarySearch . . . . 7 matches
if ( aArr[i] < aArr[j] )
if ( front <= rear )
if ( aNum == aArr[mid] )
else if ( aNum > aArr[mid] )
else
[몸짱프로젝트]
- 문원명 . . . . 7 matches
프로그램을 잘 만들수 있는 창의적인 알고리즘 구상능력의 계발.
* MFC 스터디+프로젝트
* [실시간멀티플레이어게임프로젝트]
네트워크를 통해 할 수 있는 간단한 놀이 프로그램을 만들고 싶어요.
얌마~ 그건 가로세로줄 교차점에 정확히 놓아야되는거야.....ㅡ.ㅡ
제로페이지가 많이 활성화 되어 있는거 같아서 기분 좋네요^^ - [문원명]
- 미로찾기/김태훈 . . . . 7 matches
if(x==0 && y==0) continue;
if(p.col==MAP_X-1 && p.row ==MAP_Y-1) break;
if(to.col<0 || to.col > MAP_X-1 || to.row<0 || to.row > MAP_Y-1)
if(map[to.row][to.col]==1){
if(p.col==j &&p.row ==i)
else
[미로찾기] [데블스캠프2005]
- 벡터/황재선 . . . . 7 matches
sort(ss.begin(), ss.end(), compareWithName);
for (vector<student>::iterator i = ss.begin(); i < ss.end(); i++) // 오름차순
cout << (*i).name << "\t" << (*i).score << endl;
cout << endl;
sort(ss.begin(), ss.end(), compareWithScore);
for (i = ss.begin(); i < ss.end(); i++) // 오름차순
cout << (*i).name << "\t" << (*i).score << endl;
- 비행기게임/진행상황 . . . . 7 matches
* Python으로 제작할 예정인 비행기 게임의 진행상황을 체크하는 페이지 입니다.
* 7.18 : txt파일로부터 적기의 경로 불러 오기 성공
* 7.27 : 적기의 행동 패턴 함수 작성, 행동 패턴은 파일에서 읽어 들임.. 행동패턴 맘대로 추가 가능.
= 앞으로 할 스케줄 =
* 배경은 기본 배경으로 그냥 화면 있고, 그 위에 건물이나 여러가지 것들이 움직여서 움직이는 효과를 낸다. -- 완료
* 네트워크로 점수 올리기
- 빵페이지 . . . . 7 matches
어어~~빵페이지 내가 이름지어줬는데.ㅋㅋㅋ;;제로페이지도 하고싶은걸..ㅋㅋ민수행님~화이팅!!^^-똥꾹(인국)
앞으로 잘 부탁합니다. - 문보창
실행하면 한글로 나오기는 다 나오는데.. 창에 쓰는것은 한자인지 일어인지 그런 모양으로 깨져서 나와서..
* visual c++ 옵션에서 format -> 폰트 설정을 다른것으로 바꿔 보세요, 다른 툴의 경우 이런식으로 해결이 됐습니다. - 민수
- 상협/모순 . . . . 7 matches
* 양귀자씨의 장편 소설로서 삶에 대한 예리한 관찰력이 돋보이는 작품이다.
* 나는 이말에 대해서 이 소설을 읽기 전까지는 그렇게 크게 느껴지는게 없었는데.. 소설을 읽고 나서는 이말에 대해서 느껴지는게 많아 졌다. 인생을.. 미리 짜여진 계획대로.. 마음대로.. 된다고 한다면 행복할까? 자기가 하고 싶은것은 다 할수 있고, 못하는게 없다면?? 과연 행복할까~?? 어떠한 불행도 없는 행복을 행복이라고 할수 있을까? 하는 생각을 해본다. 인생이 그렇게 만만하지는 않을거 같고, 그렇게 만만하게 사는게 좋을거 같지는 않다. 나의 인생도 내 계획대로 된것도 아닌고.. 지금 생각하면 그게 더 재밌는 삶을 살 수 있게 만든건 아닌지 하는 생각이 든다.
* 이책을 읽으면서 행복과 불행에 대해서 생각해 보았다. 그리고 사랑에 대해서도 생각해 본다. 진정한 행복은 불행이 있기에 존재할 수 있는거 같다. 불행이 없는 삶은 행복또한 없는 삶이다. 행복이라는 것도 어떠한 기준이 필요할텐데 그 기준으로서 불행이 적합하기 때문이다. 모......순..... 그렇다면 어떤 방패도 뚫을 수 있는 창이 있기에 어떤 창도 막을 수 있는 방패도 존재 한다고 말할 수 있는 건가?..어떤 창도 막을 수 있다는 말에서 어떠한 창이라는 말이 어떠한 방패도 뚫을 수 있을 만한 창이라는 가정이 숨어 있다. 즉 어떠한 창도 막을 수있다는 말은 필연적으로 어떤한 방패도 뚫을 수 있는 창이라는 존재의 기반 위에서 존재 할 수 있는 것이다. 그 말의 성립 여부를 떠나서 그 말의 존재라는 기반위에서 생각하면 두 말은 서로의 불가분의 관계에 있는 것이다. 세상사의 모든 관계가 그런건 아닐까?..
- 상협/인공지능/오목 . . . . 7 matches
= 프로젝트 진행자 =
* 2003.2.3 : 여전히 중복이 좀 있긴 하지만 일년동안 더 공부한 짠밥이 있어서인지 잘 작동하지 않았던 기능들도 다 작동하게 함으로서 인공지능도 상당히 향상시키면서 동시에 소스 라인수는 대폭 줄임. 4200 -> 2300..
|| 1 || 4->5 개 만드는거(공격, 방어) || 0 || 그냥 level2라는 함수로 만듦 ||
|| 4 || 주변상황 고려해서 효율적으로 1->2개 만드는거(공격) || 0 || 그냥 만듦 ||
|| 5 || 주변상황 고려해서 효율적으로 2->3개 만드는거(공격) || 0 || 그냥 만듦 ||
* 재활용 : 원래 두지 않은 곳이지만 가상으로 돌을 두었다고 가정하면서 이것 저것 검사하기(새로운 함수 만들 필요 없이 이전에 만들었던 함수를 재활할수 있음)
- 새싹교실/2011/學高/6회차 . . . . 7 matches
* 다음 모양으로 별을 찍으시오
* if, ternary conditional operator, switch, dangling-else problem
* while, do-while, for: 이 부분은 빠르게 나갔으므로 보강 시간에 실습과 더불어 더 자세하게 하겠습니다.
* 주말에 격주로 2시간 하는거 모두 동의하는지는 모르겟지만 난 찬성일세
* 바쁜 관계로 피드백을 늦게 올려서 죄송합니다.
반복문,조건문, 여러 연산자 등에 대해서 배웠다..
- 새싹교실/2012/새싹교실강사교육 . . . . 7 matches
1. 학생과 소통이 잘되는반은(잘노는 반으로도 표현 가능하다) 새싹 이후에도 교류가 일어날 가능성이 높아진다.
1. 기본 커리큘럼으로 만들은 강의자료와 교육시간은 강사들에게 약간의 준비됬다는 자신감(자신이 뭘 가르쳐야될지에 대한 확신감으로 표현 가능)을 부여한다.
1. 일주일에 2시간강의를 진행할때 나누어서 자주 만나는것이 더 관계, 대화를 진척시켜 빠른 피드백에 의한 지식 전달에 도움이 된다(출석률이 좋을경우).
1. 학생이 적으면 당연히 좋다.(4명이서 하는 반을 2명씩으로 나누었을때)
1. 현재 이 프로세스는 현장의 학습에 도움이 되는것 보다는 장기적으로 계속 새싹교실이 진행하게 하는데 도움이 된다(학습에는 강사, 학생의 역량이 더 많은 영향을 미친다.)
- 새싹교실/2012/아우토반/뒷반/5.11 . . . . 7 matches
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
if(l>=2)
if(l!=n-1)
if(t!=1)
if( j!=num-1 )
- 새싹교실/2012/열반/120402 . . . . 7 matches
if(n<1){
}else{
* while의 중괄호도 제대로 쓰여있지 않습니다.
* main은 함수이므로 정의할 때 괄호가 필요합니다. main -> main()
* 의도한 대로라면, N은 항상 0인 상수이어야 하므로, 변수를 좀 더 생각해볼 필요가 있습니다.
* 자잘한 문법오류들을 보니 실습이 자주 필요하다는 생각이 듭니다. 다음주부터는 새로운 내용보다는 기존 내용을 확실히 하고, 중간고사 준비도 약간 해줘야겠습니다. -[정진경]
- 새싹교실/2013 . . . . 7 matches
|| 06 || [새싹교실/2013/케로로반] || [김민재] || [김도형], [이강진], [민상천], [박채원] || 1회차 || 매주 월 17시, 수 14시 30분 ||
|| 07 || [:새싹교실/2013/이게컴공과에게참좋은데말로설명할길이없네반 새싹교실/2013/이게컴공과에게 참좋은데 말로설명할 길이 없네반] || [김윤환] || [박지운], [조성주] || 2회차 || [계속작성중] ||
* 새로 글 쓸 때,6. junetemplete를 쓰면 매우 편리하다는 것을 발견했다!. 다만 새싹교실/2012로 연결되니 주의. -[고한종](13/03/19)
* 여러분 새싹반이 되게 적어보이는데, 실제로는 이거보다 많이 돌아가고 있어요. 다만 위키를 쓰자는데 동의를 안한팀이 많은 것일뿐... - [고한종](13/03/22)
- 새싹교실/2013/록구록구/4회차 . . . . 7 matches
for(초기화 ; 조건 ; 증감 )
Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
(느낌)기대를 잔뜩 했는데 별로 맛이 없었다.
(앞으로의 계획)다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.
숙제를 하니 수업시간에 배웠던게 생각나서 좋았고 앞으로는 숙제를 절대 밀리지 않고 해야 겠다.:D
실습시간에 나는 printf로 노가다하는데 잘하는 애들이 for문 쓰는거 보면서 부러웠는데,
나도이제 for문으로 아는척해야징 :) {*} :D {*}
- 새싹교실/2013/양반/4회차 . . . . 7 matches
Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
for와 if에 대해 심도있는 학습을 하였다. 기초프로그래밍 시간에 도움이 되서 좋아요.
오늘 if문과 for문을 복습했는데 정말 유익한 시간이었습니다.
꼭 이 두가지를 잘 쓰도록 해서 편하게 프로그래밍을 하고싶습니다. ㅎㅎ
- 새싹교실/2013/책상운반 . . . . 7 matches
1. 기초프로그래밍 과제를 하시는 데에 막히는 일이 없도록 할 것입니다.
* 왜 함수들의 마지막은 return 0;로 끝나는 지, 또 어떻게 쓰는지
조건문 : if, else, else if, switch
- 생각하는프로그래밍 . . . . 7 matches
처음 읽었던 때를 대학교 2학년 가을학기로 기억한다. 어디서 봤는지 기억나질 않지만(지금은 찾을 수도 없다) " [ProgrammingPearls]라는 책이 있는데, 연습문제를 다 풀어보는데 6개월이 걸렸다"라는 서평을 읽은 후(들었는지도 모르겠다) 한 번 도전해보자는 마음으로 도서관에서 책을 빌렸다. 봄학기에 자료구조 수업을 재미있게 들었던 터라 자신감마저 가지고 원서를 읽기 시작했다.
1장 본문을 다 읽고 연습문제를 보았는데, 연필로 조그맣게 체크가 되어 있었다. 누가 풀어본 것인지 몰라도 나도 한 번 풀어봐야겠다는 의욕이 솟구쳤다. (아직도 그 연필 자국이 남아있을 것이다.) 하지만 2장도 채 못 보고 반납기한이 다가오니까, 빨리 다 읽고 싶은데 이걸 언제 다 읽냐는 조바심이 났다. 그렇게 번역서와 원서 사이에서 갈등하다가 결국 번역서를 샀다.
아, 여태 열심히 프로그래밍 언어를 배운 건, 다 알고리즘 구현하는데 쓰려고 그랬던 거구나. 프로그래밍은 단순히 키보드 두드리는 게 아니구나. 생각을 잘 하고 프로그래밍 해야겠구나.
내가 산 책은 군대간 동기 녀석한테 빌려줬다. 하지만 어렵다고 안 본댄다. 부대에 프로그래밍 하다 온 사람도 조금 읽다가 그만뒀댄다. 어투가 건방지다나.
- 서지혜/2011 . . . . 7 matches
* 해야할 일이 생기면 바로 시작합시다. 나중에 잊지말고..
* 심신이 지쳐있었는데 새로운 사람들과 새로운 활동을 하니 개운?! 충전이 되었어요!
* 열정은 남아있는 열정으로 충전할 수 있다 - 시지프스를 다시 생각하다에서
* IFA 공유회 다녀옴(IAF에 대한 공유였음)
* IFA? IAF?
* 엑스퍼 정모에 조한나와 레베카가 왔었다. 시간과 언어의 장벽으로 인해 겉핥기만 했다..
* 동네 검색 종결자 프로젝트 종료..
* 난 글로발 오닥후닷
- 성적처리프로그램 . . . . 7 matches
cout << endl;
if ( i == 9999)
cout << "A : " << num[0] << endl;
cout << "B : " << num[1] << endl;
cout << "C : " << num[2] << endl;
cout << "D : " << num[3] << endl;
cout << "F : " << num[4] << endl;
- 소수구하기/상욱 . . . . 7 matches
time_t start, end;
cout << "2" << endl;
if ( i % primeNumber[j] == 0 ) {
if (isPrimeNumber) {
end = clock();
cout << (end - start)/CLK_TCK << endl;
- 소프트웨어장인정신 . . . . 7 matches
소프트웨어를 개발하는데 장인정신이라는 비유를 사용한다. 프로세스와 프로세스 산출물에 초점을 맞추는 소프트웨어 엔지니어링은 규모가 작은 프로젝트에는 좋은 선택이 아니다. 평범한 소프트웨어 개발자 여럿을 두고 이를 관리하기보다 장인 소프트웨어를 개발자 한 명을 고용하는 편이 속도나 품질 모두에서 낫다. 따라서 전통적인 수공업에서 나타나는 도제생활이 초보 프로그래머에게는 필요하다. 프로그래머는 도제를 거쳐 중간 장인으로, 결국에는 장인으로 성장하게 된다.
- 숫자야구/민강근 . . . . 7 matches
if(a == i)
if(a == j || a == q)
if(b == j)
if(b == a || b == q)
if(c == q)
if(c == i || c == j)
cout<<st<<"스트라이크 "<<ba<<"볼 입니다."<<endl;
- 실습 . . . . 7 matches
객체와 클래스 (성적 관리 프로그램)
성적 관리하는 프로그램을 클래스(class)를 이용하여 C++로 작성하여 본다.
6) Location:에 프로그램을 작성할 경로를 지정한다.
if(sung[i].GetTotal() > sung[j].GetTotal()) {
if(sung[i].GetRank() > sung[j].GetRank()) {
- 오페라의유령 . . . . 7 matches
http://www.aladdin.co.kr/Cover/8970752366_1.gif
소설이 먼저였지만, 개인적으로 Webber 와 Sarah 의 노래를 엄청나게 좋아하는 관계로. 소설을 읽는 내내 머릿속에서 Think of Me, The Music of Night, Wishing you were somehow here again 가 배경음악으로 깔리었다.
웨버아저씨에게 상상력을 선사해준 소설이란? 원작에 상관없이 자신스타일로 작품을 만들어내는 웨버아저씨여서 (그래봤자 본건 하나뿐이지만; 한편은 대본읽음). 개인적인 결론은 해당 소설로부터 자신의 주제의식을 뽑아낸 웨버아저씨 멋져요 이긴 하지만, 이 소설이 태어나지 않았더라면 Phantom of the opera 가 나타나지 않았을 것이란 생각이 들기에. (소설의 구성 등을 떠나서, Phantom 이라는 캐릭터를 볼때)
만일 이 주제로 파트리크쥐스킨트가 썼다면 아마 후각에의 집착이였던 '향수' 에 이은 청각에의 집착과 같은 이야기가 되지 않았을까 하는 상상.
- 오픈소스검색엔진Lucene활용/세미나060401_2시 . . . . 7 matches
* 자신의 프로그램에 검색이 필요한 경우 굳이 새로 만들기 보다는 기존의 검증된 오픈소스를 활용하기 위한 방법을 소개해 드릴 예정입니다.
* 자신이 앞으로 할 프로젝트에 검색이 필요하다 싶으신 분들은 와서 들으세요.
* 기본적으로 검색 엔진이 인덱스를 약간의 시간을 들여서 인덱스를 구성해서 추후에 검색을 했을 경우 빠른 검색 속도를 보장 합니다. 그리고 중간 중간에 추가, 삭제 및 변경된 내용들은 꾸준히 인덱스를 중간 중간 업데이트를 해 내갈 수 있습니다.
- 인수/Smalltalk . . . . 7 matches
* 머리에 쥐나는줄 알았다.--; 사소한거 하나로 삽질한게 몇가진지... --; 문법이 왜 이리 하던거랑 다른지.;;
numsOfWalked do: [ :val | val = 0 ifTrue: [^false] ].
newValue = 0 ifTrue: [newValue := 1].
newValue = (1 + size) ifTrue: [newValue := size].
* 짜놓고 생각 : 이건 스몰토크프로그래밍이 아니다. C++/Java의 냄새가 너무 많이 나는것 같다. 부분부분을 좀더 간단하게 할 수 있을것 같기도 하다. 책을 더 봐야 할듯 싶다. 인스턴스 생성할때도 인자를 넘겨 받을 수 있을 텐데 잘 안된다.(지금 보니까 그렇게 하지 말라 한다. 대충 찾아보니 팩토리 메소드를 많이 쓰는것 같다. 또 클래스 메소드 만드는법 알아낼라고 줄기차게 삽질을 했다.--;) do라는 좋은게 있었군.
* 따로따로 있을땐 몰랐는데 지금 보니까 중복도 있다.--; 제길
- 자리수알아내기/나휘동 . . . . 7 matches
수학을 약간 이용해서 자리수를 구합니다. 로그를 취하면 자리수가 나오죠?
절차형 프로그래밍을 많이 하다보면 1번으로 생각하기 쉽습니다. 반복적으로 작업하는 흐름이 머리 속에 떠오르지 않나요?ㅋㅋ
속도는 2번이 더 느립니다. 로그를 구하는 방법 때문일 것으로 추측해봅니다. 게다가 2번은 300자리 정도까지만 제대로 동작하는군요. :(
- 정모/2004.6.28 . . . . 7 matches
스터디 & 프로젝트 조직
스터디 & 프로젝트 조직
*새로 결성될 스터디
*각 스터디 그룹은 의무적으로 스터디한 내용을 발표하는 형식으로 세미나를 한다.
*어떻게?: 발표하는 형식으로(어려웠던 점, 깨달았던 점 발표), 점수 매기기
*제로페이지 내(1, 2학년 위주)의 자체 세미나를 할 것인가?
- 정모/2006.1.12 . . . . 7 matches
= 프로젝트 보여주기 =
참고 : [겨울방학프로젝트/2005]
보여주기 준비해 주세요. 프로젝트 사용 할겁니다^^
- 날짜 : 2월 11일, 2월 12일로 예정했으나 스텝이 몇몇 날짜를 정해서 택하기로 결정.
- 특별상으로 진행자 임의로 1, 2점을 줄 수 있음.
- 정모/2011.4.4/CodeRace/강소현 . . . . 7 matches
if(layton.getPosition() != luke.getPosition() &&
if(mustCheck(num,name)){
if(a.getTownName().equals(ship.getPosition().getTownName())){
}else{
if(num > 2){
if(num == 1 && name[0]==2){//Luke 혼자 가면
if(ship.getName().equals(people[i].getName())){
- 정모/2012.9.24 . . . . 7 matches
== 스터디/프로젝트 ==
* 학회 교류 - 우리 학교의 학술 동아리 또는 다른 학교의 학술 동아리들과 서로 교류하는 기획
* SSM Friendship
뭐 이건 일반적인 프로젝트 지원과 맥을 같이하는 방법이 되겠네요. (프로젝트 착수 지원금과 성과금)
* 프로젝트/스터디 관련 성과 보고 - 지급 보류
* HW적인 프로젝트
- 정모/2013.10.8 . . . . 7 matches
* 다음 2주 동안은 시험 준비 기간 및 시험 기간으로 정모를 진행하지 않습니다.
* 앞으로 정기 모임을 기존의 회의식 형태에서, 활동적이고 생산적인 모임으로 진행할 예정입니다.
* 회원들이 진행하는 아이스 브레이킹이나 다양한 레크레이션 활동들을 좀 더 많이 진행하고, 정모 시간을 30~40분 정도로 진행하려고 합니다.
* 학술적인 주제로 10분간 진행하는 OMS와 스터디, 프로젝트 공유, 매달 말 회고는 그대로 진행됩니다.
- 정모/2013.5.20 . . . . 7 matches
* 6월말 ~ 7월 초에 5일 연속으로 진행하는 커퍼런스
* 데블스캠프 연락을 돌렸습니다. 양식은 [정모/2012.5.21] 내용을 참고로 했습니다.
Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* TIP : Internet Explorer를 제외한 브라우저(FireFox라던가 Chrome이라던가)로 들어오면 각 항목 우측에 "편집"이라고 떠요. 좀 더 편하게 수정 할 수 있죠.
* 즉흥적으로 하기가 힘들지. - [김민재]
- 주민등록번호확인하기 . . . . 7 matches
*실제로 존재하는 주민등록번호라면 '대한민국 국민이네요~ ^^ 안녕하세요!' 를 출력하고,
검증하는 방법은 첫째자리부터 2,3,4,5,6,7,8,9,2,3,4,5 (13번째 숫자 제외)를 순서대로 곱하고
그 곱한수의 총합에서 11로 나누고 몫을 버리고 11에서 나머지를 뺀다고함.(11-(곱들의 총합)%11)
나머지가 10일경우 0으로 처리라고함
알고리즘을 알아야 프로그램을 짜는뎅; ㅠㅠ - 태훈
J라는 언어로 저렇게 간단하게 만들수 있다니 !!!!! 놀랍습니다..
- 지금그때2004/게시판홍보문안 . . . . 7 matches
* 참석한 사람들의 폭발적인 반응 <a href = "http://zeropage.org/wiki/_c1_f6_b1_dd_b1_d7_b6_a72003_2f_c8_c4_b1_e2" target = blink> <font color = "blue" >☞ 지금그때2003후기 바로가기 ☜</font> </a>
장소와 일정은 추가공지로 올리겠습니다.
<a href = "http://dduk.idaizy.com/nowthen/apply.php" target = _blink> <font color = "blue">☞ 신청하러 가기 ☜ </font> </a>
행사 진행 준비를 더 할 시간, 작년과 연결고리를 만들 시간이 더 필요하기에 2004년 지금그때를 4월 6일 화요일로 연기하려고 합니다.
눈 덮힌 들판을 갈 때는 모름지기 함부로 걷지 말아야 한다.
<a href = "http://zeropage.org/wiki/_c1_f6_b1_dd_b1_d7_b6_a72003_2f_c8_c4_b1_e2" target = blink> <font color = "blue" >☞ 지금그때2003후기 바로가기 ☜</font> </a>
<a href = "http://dduk.idaizy.com/nowthen/apply.php" target = _blink> <font color = "blue">☞ 신청하러 가기 ☜ </font> </a>
- 창섭/BitmapMasking . . . . 7 matches
* MFC 의 경우다.
* 우리가 비트맵을 불러다 쓸때 늘 사각형 모양으로 불러다 쓴다. 하지만 불러다 쓰고 싶은 모양이 사각형이 아니지만 본의 아니게 배경색까지 따라 찍힌다. 이 때 사용한다.
* 보통 비트맵을 불러올 때 마지막에 이부분이 있다. (코드의 다른 설명은 추가하지 않겠음. 논의를 벗어나므로..)
|| SRCCOPY || 그대로 복사 ||
3비트 짜리 비트맵 코드(는 없겠지만...; )를 예로 든다면... 검은색은 000 이고 흰색은 111 이다. 그리고자 하는 비트맵이 101 이라면, 검은색과 원본을 AND 연산하면
이렇게 된다. 다시 본론으로 돌아가서...우리가 하고 싶은 일은 그림의 배경을 잘라 내고 원하는 모양만을 밑그림에 붙이는 것이다. 따라서 우리는 배경은 무시되고 원하는 부분의 밑그림이 무시되어야 한다.[[BR]]
원본 그림에 흰색과 검은 색으로 그려진 그림(마스크)을 밑그림에 잘 연산시켜 순서를 잘 맞춰 그리면 원하는 그림이 나오는 것이다. 마스크는 밑의 두개중 아무거나 사용한다.
- 최대공약수/남도연 . . . . 7 matches
if (x>y) {
else {
cout<<"x="<<x<<" y="<<y<<endl;
cout<<"GCD="<<big<<endl;
화면 입출력은 메인에서 하고 클래스는 변수로 값을 넘겨받고 변수로 값을 넘겨주는게 좋지 않을까?
지금이야 상관없지만 다른 소스에서도 콘솔화면 입출력을 사용하고, 저런식으로 입출력해야 한다는 보장이 없자넝.ㅎ
- 타도코코아CppStudy/0804 . . . . 7 matches
* MFC하다가 좀 힘들어서, C++ Class를 2주정도 하기로 했다. [CherryBoy]는 계속 MFC진행하기로 했다.
최소 한개. 무조건 클래스를 이용하세요. 또한 될수 있으면 객체지향적으로.
|| ZeroWiki:ClassifyByAnagram || . || . || . ||
* 대근이 말고는 스터디 할 생각이 없는것 같군요. 쫑낼까요? 내일 결정하겠습니다. 처음의 그 의욕적인 모습들은 다 어디로 갔나요? 제가 괜히 공부하기 싫은 사람들 붙들어 놓고 공부시키는건 아니죠? 아닐거라고 믿습니다. --[인수]
* 숙제가 조금 어려운 면도 있어요..^^ 후배님들!! 대학생활은 모든지 선택이랍니다..^^ 인수행님, 어제 밤샜고 오늘 폐인의 모습으로 찾아뵙죠..ㅎ ㅔㅎ ㅔ^^ --[CherryBoy]
- 테트리스만들기2006/예제1 . . . . 7 matches
사각형만 내려오는 테트리스를 만든다. 계속 내려오기만 하면 되며 끝까지 쌓이면 프로그램이 종료된다.
가로와 세로의 크기는 임의로 정한다.
==== 발로짠 원하는 위치에 점찍는 소스 ====
if (ID_BLOCK == screenArray[i][j])
else
- 토이/숫자뒤집기/김정현 . . . . 7 matches
임의의 int 변수를 받아서 그것의 역순을 다시 int 로 리턴
Java로 작성..
2.배열 인덱스를 거꾸로 저장
if(order>o.order)
5.루프를 없애고 리커시브로
if(input==0)
7.배열 거꾸로 돌기. 이런 간단한 방법이 있었는데;;
- 파스칼삼각형/김영록 . . . . 7 matches
LITTEL AOI 거꾸로 풀어갈려고 하는데
의외로 풀렸네요;
int num_ret(int X, int Y) //재귀호출 1인경우(X=1,X=Y)엔 1을 리턴하는방식
if (X==1 || X==Y){
else{
cout << "===== △파스칼의 삼각형△ =====" << endl;
cout << num_ret(X,Y) <<"입니다! ㅋㅋ" << endl;
- 프로그래밍/장보기 . . . . 7 matches
if (rates[i][0] < minRate) {
else if (rates[i][0] == minRate) {
if (rates[i][1] < rates[minRateIndex][1]) {
타이머를 켜놓고 시간을 우선시하다보니 역시 Refactoring을 하고 싶지 않았다. 요구사항을 읽고 감이 팍 오는 문제는 그냥 막 코딩하는 식이다. main에 확 집어 넣고 풀어도 그냥 풀린 문제를 굳이 메소드로 나누고 여러 군데에서 사용되는 변수를 필드화하는 것이 정말 귀찮았다. 하지만 그러한 방식으로 전환하고 습관화하는 능력을 키워야 겠다.
[프로그래밍]
- 피그말리온과 갈라테아 . . . . 7 matches
옛날 키프로스에 한 조각가가 살았답니다.
아프로디테 여신의 신전(神殿)을 찾아가 자신의 사랑을 이루게 해 달라고 부탁했고.
그렇게 공허한 소원을 빌고 집으로 돌아온 피그말리온은
그는 너무 놀라 한걸음 뒤로 물러섰고, 잠시 후 그녀의 입술에 키스를 했습니다.
그러자 한 가닥 따스한 기운이 그 조각의 입술을 통해 온 몸으로 스며들더니
''DeleteMe) 피그말리온 효과로 알려진 바로 그 일화입니다.
- 피보나치/고준영 . . . . 7 matches
상당히 좋지 않은 알고리즘 인것같다.. 내 컴퓨터를 서버로 테스트한결과 20이 넘어가면 gg....;;;;;;
PHP를 제로페이지 새싹스터디를통해 접한후 처음으로 만든 작품(?) 이랄까..
if ($n <= 0) echo "잘못된 값이 입력되었 습니다.";
elseif ($n == 1 or $n == 2)
if ($n == 1 or $n == 2) return 1;
- 피보나치/김재성,황재선 . . . . 7 matches
if (i == 1) {
else if (i == 2) {
else if (i > 2) {
else {
printf("이프로그램제작에 도움을 주신 황재선형님꼐 감사를 드립니다");
- 회비 . . . . 7 matches
제로페이지에서 운영되는 회비를 좀더 투명하게 관리하기 위해서 만들어진 페이지. 앞으로도 계속되는 제로페이지의 전통이 될 것이다.
|| 98,000 원 || - 20,000 원 || 2005/3/15 || 제로페이지 로고 공모전 상금(강희경) ||
마이너스군요...근데 왜 5만원이나 쓰인거죠? 준비물 구입비 10000원을 휘동이한테 주고 간식은 3만원 어치 사기로 한 것 같은데요. -[강희경]
[제로페이지분류]
- 0PlayerProject . . . . 6 matches
정기 모임: 매주 화요일 저녁 6시, 공대 로비
[http://zeropage.org/~mulli2/SSHWinClient-3.1.0-build235.exe ssh win client] 제로 페이지 리눅스 계정 접속 프로그램
[0PlayerProject/커널업로드작업정리]
테스트 동영상 사이즈(320 x 240) 맞추고 xvid 코덱으로 압축 한것
(VirtualDub 이라는 프로그램을 써서 만들었습니다.)
- 2008리눅스스터디 . . . . 6 matches
|| 6/26(목) || 제로페이지 서버 설치 및 초기세팅 (세미나 진행하지 않음) || 승한, [지원], [홍기], 윤석 ||
|| 7/14(월) || 시스템 프로세스 관리(혁수), 부트 프로세스(윤석) || 승한, [지원], [홍기], 윤석, 혁수 ||
|| 8/14(목) || 리눅스 프로그래밍과 파일 시스템(영동) || [지원], [홍기], 혁수 + 영동 ||
* [http://zeropage.org/?mid=project&page=1&category=11025 제로페이지 홈페이지에 있는 리눅스 ppt들]
[프로젝트분류] [2008년활동지도]
- 3 N+1 Problem/조동영 . . . . 6 matches
if(temp % 2 == 1)
else
if(count > maxCount)
cout << "2개의 값을 입력하시오 단 첫번째것이 더 작은 숫자이어야함" << endl;
cout << "MAX cycle-length값은 " << CheckCount(num1,num2) << "입니다." << endl;
흔히 생각하는 알고리즘은 다들 비슷해서 소스가 비슷한 경우가 많어. 그걸 더욱 더 향상 시키려는 노력이 필요하지. 요즘 다른 알고리즘을 생각하려고 노력 중인데 잘 안떠오르네 ㅋ --[강희경]
- 3rdPCinCAUCSE/ProblemB . . . . 6 matches
네 개의 직사각형이 평면에 있는데, 밑변이 모두 가로축에 평행하다. 이 직사각형들이 차지하는 면적을 구하는 프로그램을 작성하시오. 이 네 개의 직사각형들은 서로 떨어져 있을 수도 있고, 겹쳐 있을 수도 있고, 하나가 다른 하나를 포함 할 수도 있으며, 변이나 꼭지점이 겹쳐질 수도 있다.
입력은 표준 입력이다. 입력의 첫줄에 테스트 케이스의 개수를 나타내는 정수 T(10 이하)가 주어진다. 다음 줄 부터 T개의 테스트 케이스가 주어진다. 각 테스트 케이스는 네 줄로 이뤄지며, 각 줄은 네 개의 정수로 구성된다. 첫 번째와 두 번째의 정수는 사각형의 왼쪽 아래 꼭지점의 x 좌표, y 좌표이고, 세 번째와 네 번째의 정수는 사각형의 오른쪽 위 꼭지점의 x 좌표, y좌표이다. 단, x좌표와 y좌표는 1이상이고 1000 이하인 정수이다.
출력은 표준 출력이다. 출력은 T줄로 이뤄진다. 각 테스트 케이스에 대해서 네 개의 직사각형이 차지하는 면적을 출력한다. T개의 테스트 케이스를 모두 맞혀야 이 문제를 맞힌 것이다.
- 50~100 사이의 3의배수와 5의 배수 출력 . . . . 6 matches
if(a >= 50 && a <= 100)
if ( i%3==0 )
cout << i << endl;
else if ( i%5==0 )
else
- 8queen/곽세환 . . . . 6 matches
if (ar[row][col] == 0)
else
if (check == Max)
if (ar[j][k] == 1)
cout << endl;
if (cnt % 24 == 0)
- <시작페이지 사용규칙> . . . . 6 matches
무분별한 페이지 남발은 자칫 페이지의 비효율을 야기하므로
일정한 규칙이 필요한 것으로 보임
* 링크를 통한 이동이 생명이므로 페이지 끝에는 꼭 이전 메뉴로 돌아갈 수 있도록 [시작] 같은 메뉴를 삽입해둔다
* 페이지는 처음에 간략한 설명, 제목, 링크로 구성된다
* 최대한 심플함을 추구한다 - 항목이 많아지면 더 작은 소항목으로 나누어 묶는다
- AKnight'sJourney/강소현 . . . . 6 matches
if(isPromising(1,1, path,0)){
}else
if(p>=path.length || q>=path[0].length || p<1 || q<1 || path[p][q] == 1)
if(count == savePath.length-1){
}else{
if(isPromising(p+direct[i][0], q+direct[i][1], path, count+1)){
- AM . . . . 6 matches
* 목적 : 윈도우 프로그래밍을 위한 API와 MFC를 공부한다.
== AM스터디에서 제작한 프로그램 ==
* 모임시 발표 자료, PPT 같은 것 좀 업로드 해주실 수 없나요? --[강희경]
* [5인용C++스터디]처럼 그날그날 배운걸로 간단한 프로그램 숙제해요... 요즘들어 그냥 책만 보는것 같아서... 저만 그런가요?? --세환
[스터디분류], [프로젝트분류]
- ASXMetafile . . . . 6 matches
일종의 윈도우즈미디어 메타파일. XML 스크립트로 이루어져있고 이 메타파일을 작성함으로써 플레이어를 건드리지 않고도 다양한 기능을 사용할 수 있다.
* <Logo href = "path of the logo source" Style = "a style" / >: Adds custom graphics to the Windows Media player by choosing either a watermark or icon style. The image formats that Windows Media Player supports are GIF, BMP, and JPEG.
* <Ref href = "path of the source" / >: Specifies a URL for a content stream.
o ASX files, on the other hand, are small text files that can always sit on an HTTP server. When the browser interprets the ASX file, it access the streaming media file that is specified inside the ASX file, from the proper HTTP, mms, or file server.
<Banner href="http://Servername/Path/Banner1.gif">
<Logo href="http://servername/path/banner2.gif" Style="ICON" />
- AntOnAChessboard/김상섭 . . . . 6 matches
if(temp > level)
else
if(level % 2 == 0)
cout << x << " " << y << endl;
else
cout << y << " " << x << endl;
- BookShelf/Past . . . . 6 matches
1. 성냥갑으로배우는 AI이야기 - 20050116
1. 실용주의 프로그래머를 위한 CVS - 20050404
1. Professonal 프로젝트 관리 - 20050502
1. [(zeropage)실용주의프로그래머] - 20050921
1. [Downshifting] - 20051008
1. 나를사로잡은그녀그녀들 - 20051023
- C++Seminar03/SimpleCurriculum . . . . 6 matches
[C++Seminar03]에서 진행하게 될 대강의 커리큘럼. 각 주에 하면 좋을것 같은 내용들을 간단하게 정리해둡니다. 페이지 크기가 커지면, 하위페이지로 [문서구조조정]을 할 것입니다.
DeleteMe) 이 페이지에 제시된 내용대로 진행된다는 뜻이 아니라, 단지 '제안하는' 것입니다. - 임인택
* 강의주제 : {{{~cpp The Little Man Computer}}}, 프로그래밍 개론
* Recursion 과 Iteration 에 대한 학습과 이해. (DeleteMe '학습'을 먼저하는게 좋을것 같아요. 학습할 주제로는.. Factorial 이 좋을것 같습니다. - 임인택)
벌써 오늘이군요.. 책을 좀 보기는 봤지만. 잘 할 수 있을지.. 아직도 프로그래밍 개론(?) 에 대해서는... 쿨럭.. --선호
[프로젝트분류]
- C/Assembly/Main . . . . 6 matches
pushl %ebp // 현재의 명령어 Counter를 Stack에 저장함. 이 프로그램이 끝나면 stack에서 다시 꺼냄.
leave // 프로그램의 종료. stack에서 프로그램 시작 전의 명령어를 꺼내 %ebp에 집어 넣는 역할.
ret // 프로그램이 종료.
따라서 프로그램이 시작하고 나갈때에는 어디서 프로그램을 시작하고 끝냈는지 위치를 저장(push)하고 꼭 반환(leave)해야한다.
- CC2호 . . . . 6 matches
포인터를 이해하는 것을 목표로 차근차근 진행할 거에요. 물론 숙제 나갑니다!
앞으로 진행할 순서는 다음과 같습니다.
* 조건문
[http://www.cs.cf.ac.uk/Dave/C/ Cardiff University CourseWare]
[http://www.zikimi.co.kr/new_zikimi/z002/002_01.htm?code=37 프로그래머 열린 공간 지킴이]
만들어진지 오래되어 조금 구질 구질하기도 하지만 좋은 내용인 Upload:zeropage:CampusC.zip 공개강좌로 위의 것보단 짧다.
- CPPStudy_2005_1/Canvas . . . . 6 matches
* 삼각형, 사각형, 원, 그리고 이것의 조합으로 이루어진 도형(또 다른 조합으로 이루어진 도형도 포함 가능) 이 있다. 이 도형들을 Pallete 에 넣고 Draw 하면 Pallete 안에 있는 모든 도형이 그려진다.
* 아래 4가지를 서브 클래스로 가진다.
* Draw, Add, Remove 함수를 virtual 함수로 가진다.
* 기본적으로 Triangle, Square 를 가지고 있다.
* registerNewShape - 새로운 도형을 등록한다.
- ChocolateChipCookies/허준수 . . . . 6 matches
if(d <= 5.0) {
if(cookies[i].numCookies > max_num)
cout << max_num <<endl;
cout << endl;
if(cin.peek() == '\n')
else
- ClassifyByAnagram/JuNe . . . . 6 matches
anagrams.setdefault(key,[]).append(eachWord)
if __name__=='__main__':
P4 1.8Ghz 512MB Win XP Python 2.2.1에서 17만 단어로 실행하면 4초. 프로세스 메모리 점유 약 31MB. 만약 psyco로 bind를 해주면(if문 위에 {{{~cpp import psyco;psyco.bind(Aangram)}}}을 추가) 3.4초.
- ClassifyByAnagram/박응주 . . . . 6 matches
_signature를 그냥 쉘에서 해봤었는데 _signature를 테스트로 넣었어야 했다.
if self._anagrams.has_key(s):
self._anagrams[s].append(word)
else:
if __name__ == "__main__":
P3 700MGhz 384MB Win2000 Python 2.2.1에서 17만 단어로 실행하면 8.8초.
- CodingStandard . . . . 6 matches
프로젝트 코딩 스타일의 표준.
팀 내에서 일관된 코딩 스타일을 적용함으로서, 사람들이 서로 코드를 읽기 편하게 하며, CollectiveOwnership 을 도와준다.
진행해본 프로젝트들의 경우, 주로 자바는 자바 코딩스타일을, Python 은 Smalltalk Style 을 이용했었다. --["1002"]
- CommentEachOther . . . . 6 matches
전에도 느꼈었고, 여러 대가들께서도 자주 말씀하시곤 하는데, 자신의 코드의 퀄리티를 높이려면 남이 만들어놓은 소스를 보라는 이야기가 있다. 이 글을 읽는 분들도 동의하리라 생각한다. CommentEachOther 는 [AOI]나 LittleAOI 처럼 여러 사람이 한 문제에 대한 풀이를 올리고 그것들에 대한 코멘트를 하는 스터디라 할 수 있겠다. 여기서 코멘트라 함은 소스코드에서 명령문 옆에 붙이는 간단한 부연설명이 될 수도 있겠고, 코드 전체에 대한 비평이나 느낌일수도 있다. 처음에는 간단한 문제로 시작해서 디자인 principle 이 들어가있는 프로그램으로 횟감의 스케일을 키워나가는게 어떨까 생각을 한다. 나는 그냥 제안하는 입장이고, 간혹 간단하게 작성한 소스를 올리는 정도로만 참여하도록 하고, 적극적인 참여를 할 사람들이 생기면 이곳에 문제와 자신의 코드를 올리고 토론을 해봤으면 좋겠다. 토론의 방법이야 오프라인 모임에서 하거나 따로 코멘트 페이지를 만들거나. 자. 다들 어떻게 생각하시는지? 참여할분들(!) 계시면 아래에 참여자 목록과 문제를 업로드해 주셨으면.~ - 임인택
- CompleteTreeLabeling . . . . 6 matches
k진 완전 트리의 깊이와 분기계수가 주어졌을 때 트리의 노드에 번호를 붙일 수 있는 모든 가능한 방법의 수를 결정해야 한다. 이때 각 노드의 레이블은 그 자손의 레이블보다 작아야 한다. 이진 힙 우선 순위 큐 자료 구조가 바로 이런 속성을 가진다(이진 트리이므로 k=2). N개의 노드가 있는 트리에 번호를 붙일 때, 1에서 N까지의 레이블을 붙일 수 있다고 가정하자.
입력 파일은 여러 줄로 구성된다. 각 줄에는 두 개의 정수 k와 d가 들어있다. k>0이며, 이 값은 k진 완전 트리의 분기계수를 나타낸다. d>0며, k진 완전 트리의 깊이를 나타낸다. k X d ≤21인 모든 k와 d에 대해 작동하는 프로그램을 만들어야 한다.
입력된 각 줄에 대해 한 줄의 결과를 출력한다. 그 줄에는 위에서 설명한 조건을 만족시키면서 k진 트리에 레이블을 붙이는 경우의 수를 출력한다.
- ConnectingTheDots . . . . 6 matches
실제로 BoardPanel.setGame 을 보면
BoardPanel.mouseReleased -> BoardPresenter.processClick -> Game.join 식으로 호출되며
Game 객체의 데이터가 바뀌는 경우에는 (ex : boxClosed)
Game.boxClosed -> listener.boxClosed (여기서 listener 는 Presenter. Presenter 들은 여러개가 될 수 있다. Game 객체에 addListener 로 등록된 만큼) -> BoardPanel.drawInitials. 식으로 도메인 모델로부터 올라온다.
- Conversion . . . . 6 matches
각자의 클라이언트들은 같은 정보임에도 서로 다른 프로토콜로 표현된 것이 필요할 때가 있을 것이다. 가장 쉬운 방법은 필요로 하는 객체마다 가능한 모든 프로토콜을 넣는 것이지만... 역시 낭비다.
이럴때는 한 오브젝트를 다른 것으로 변환하는 메소드를 추가하자.
- CppStudy_2002_1/과제1 . . . . 6 matches
DeleteMe) 소스가 너무 길어지니, 각 소스별로 페이지를 나누는 것이 좋을듯. --["1002"]
* 8장 프로그래밍 연습
* 영동의 소스 : 먼저 전체적으로 02학번의 경향이 전역 변수를 쉽게 선언하는거 같다. 전역변수는 나중에 프로그램이 커질 경우에는 다른 여러 변수와 헷갈릴 수 있기 때문에 가능하면 피하는게 좋다.
* 문제2번 : 여기서도 전역변수를 피하기를..그리고 주석도 영어로 다는 연습을 하는것도 괜찮을듯 싶다.
- C언어정복/4월6일 . . . . 6 matches
2. 제어문 (분기와 점프) - if, if else, continue, break, switch
3. 숙제 검사 - 5번 for문 하나와 if문 하나로 구구단 짜기
if (j == 9)
- DataCommunicationSummaryProject/CellSwitching . . . . 6 matches
* 고정길이 셀 사용(53byte = 48 byte의 페이로드 + 5byte의 헤더, ATM의 패킷은 셀이라고 한다.)
* 길이가 너무 작으면 데이터에 비해 헤더의 비중이 높아지므로 오버헤드가 커진다.
* 주로 랜의 백본으로 쓰인다. 하지만 기가비트 이더넷이 그것을 대체할 예정이다.
* 전통적인 랜은 방송&멀티캐스팅이 공짜다.(모두한테 보내므로), 하지만 ATM은 그것이 좀 힘들다. 그래서 두 가지 방법이 있는데
* 새 프로토콜 설계(ATMARP)
- Direct3D . . . . 6 matches
CMyD3DApplication->Render() : 실제 렌더링을 수행하는 부분
CMyD3DApplication->RenderText() : 화면에 글씨를 렌더링하는 부분
CMyD3DApplication->DeleteDeviceObject() : 따로 생성한 객체를 릴리즈하는 부분
( 참고로 자신이 생성한 객체를 릴리즈하지 않으면, 프로그램 종료시 에러를 낸다. )
이것저것 뒤져보면 D3DX 와 결합하여 훨씬 편하게 D3D프로그래밍을 할 수 있다.
- DirectX2DEngine . . . . 6 matches
짧은 기간에 빨리 작성하고 다음 프로젝트와 연결 할 예정
* 더 이상 받지 않겠습니다. 굳이 참여하고 싶은 분은 개인적으로 연락해 주세요
* SDK는 이 주소로 받으세요 : [http://www.microsoft.com/downloads/info.aspx?na=90&p=&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=1FD20DF1-DEC6-47D0-8BEF-10E266DFDAB8&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f5%2ff%2fd%2f5fd259d5-b8a8-4781-b0ad-e93a9baebe70%2fdxsdk_jun2006.exe DOWNLOAD]
* 앞으로의 계획 : Timer 및 Animation 클래스의 구현.
* 앞으로의 계획 : 실제 게임의 제작에 도전.
[프로젝트분류] [2006년활동지도]
- DrawingToy . . . . 6 matches
MFC를 익히기 위해 [강희경]이 고안해낸 프로그램.
== 프로그래밍의 목적 ==
오른쪽 단추를 돌리면 위, 아래. 왼쪽 단추를 돌리면 오른쪽, 왼쪽으로 그림이 그려진다.
시작점은 마우스 클릭으로 선정, 게임도중에도 마우스 클릭으로 시작점 변경 가능.
[프로젝트분류]
- EasyJavaStudy . . . . 6 matches
* ["Java"], ["Eclipse"], ["JUnit"], ["TestDrivenDevelopment"], ["TestFirstProgramming"]
* 여러분들 각자가 알아서 지금 공부 하시고 계신가요?^^; 이 스터디 그룹 멈춘거 아니구요 계속 하고 있는겁니다. 각자가 하다가 막히는 일이 있으면 실시간으로 서로 의논하고 하기로 합시다. 저는 자바로 스카치 를 만들어볼까 하고 있어요~! -상욱(["whiteblue"])
* 이 스터디는 더 이상의 진행이 없는 관계로 중지합니다 -[상욱]
[프로젝트분류]
- EffectiveSTL/VectorAndString . . . . 6 matches
* new 해줬으면 delete 해줘야 한다는 번거로움.
* 멀티 쓰레드 환경에서는 다른 쓰레드가 할당해주고 복사해주므로 시간이 절약된다는데.. 굳이 이것까지 쓸것인가..--;
* 새로운 메모리를 할당한다.(일반적으로 두배 커진다.)
* 원본 컨테이너의 값들을 새롭게 할당한 메모리로 옮긴다.
* reserve로 왕창 크게 잡아 놓고 나중에 trim() 써주자. 빈공간 제거된다.
- EnglishSpeaking/TheSimpsons/S01E04 . . . . 6 matches
* 호머는 가족들을 데리고 번즈 사장의 집에서 열리는 (의무적으로) 회사 연회에 참가한다. 번즈 사장은 화목해보이지 않는 가족은 해고해버리려고 하고 호머는 번즈 사장 앞에서 가족들이 화목한 '척'을 하려고 한다. 하지만 바트와 리사는 사고를 치고, 마지는 펀치를 마시다가 술에 취해버린다. 호머는 바트에게 5달러를 주고 뽀뽀를 받는 등 부자연스러운 연기를 하는 반면 진실되게 서로를 존중해주는 다른 가족들을 보며 자신의 가족에 문제가 있음을 알고 실의에 빠진다. 모의 술집에서 고민하던 호머는 TV 광고를 보고 마빈 몬로 박사의 가족 치료 센터에서 이 문제를 해결하고자 가족들을 데리고 간다. 하지만 호머를 비롯한 가족들은 어째 몬로 박사의 다양한 치료법들이 모두 역효과를 불러 일으킨다. 하지만 만족하지 못하면 2배 가격으로 환불해줘야 하는 치료 센터의 규정 덕택에 심슨 가족들은 오히려 돈을 벌게 되고 이로 인해 가족들에게 행복(?)이 찾아온다.
- FileStructureClass . . . . 6 matches
|| http://image.wowbook.com/book/large_image/89-353-0304-6.gif ||
=== Report Specification ===
다른 건 둘째치고, 교재의 Pseudo Code 가 정말 마음에 안든다. 전혀 구조적으로 볼때 한번에 이해하기 어렵게 만들어놓았다는 느낌을 지울 수가 없다. 고로, 교수님의 수업을 잘 듣고 필기할 필요가 있다. (교수님이 잡아주는 예제가 더 쉽고 이해하기도 좋다.)
강현철 교수님에게 인상적인 부분이 있다고 한다면, 중간에 질문을 던지신 뒤 학생들이 답했을때의 자세이시랄까. 그럴때 바로 '틀렸다' 라고 이야기하지 않는다. "만일 자네의 의견이 맞다면, 어떻게 이 부분을 전개한것인지 말해보게." 식으로 논리과정을 서술하게끔 다시 질문하신다. --[1002]
- HanoiTowerTroublesAgain! . . . . 6 matches
하노이의 탑 문제를 변형시킨 문제들 중에도 흥미로운 문제들이 많이 있다. 이 문제는 N개의 기둥과 1부터 무한대까지의 정수가 적혀있는 공에 관한 문제다. 두 공에 적힌 번호의 합이 완전제곱수(어떤 정수를 제곱한 수)가 아니면 그 두 공 사이에는 서로 맞닿아있을 수 없을 만큼 큰 척력이 작용하게 된다.
공을 한 번에 하나씩, 번호가 커지는 순서로 기둥에 끼우는 게임을 한다(즉 1번을 끼우고 나서 2번을 끼우고, 그리고 나서 3번을 끼우고 하는 식으로 공을 기둥에 끼움). 더 이상 서로 밀어내지 않도록 공을 끼울 수 없게 되면 게임이 끝난다. 게임의 목표는 최대한 많은 개수의 공을 끼우는 것이다. 위에 있는 그림에는 기둥이 네 개인 경우에 최대한 많은 공을 끼운 결과가 나와 있다.
- HowManyZerosAndDigits/김회영 . . . . 6 matches
cout<<"팩토리얼을 구할 수와 진수를 차례대로 입력해주세요";
cout<<"0의 갯수와 숫자의 갯수를 차례대로 출력합니다.\n";
cout<<endl;
if(n>1)
else
if(n%radix==0)
- ISAPI . . . . 6 matches
* IIS(Internet Information Services)란 웹 서버, FTP 서버와 같이 기본적이고 범용적인 인터넷 서비스를 시스템에서 제공할 수 있게 해주는 소프트웨어를 말한다. 기존 윈도우2000 제품군의 경우 기본적으로 IIS 5.0을 제공하였고 윈도우XP의 기존 IIS 5.0의 기능을 개선한 IIS 5.1을 제공하고 있다. 한 마디로 HTTP, FTP, SMTP 서버의 묶음이다.
프로그래 추가/제거 -> Windows 구성 요소 추가/제거 -> 인터넷 정보 서비스(IIS)
Internet Server Application Programming Interface 의 약자로 개발자에게 IIS 의 기능을 확장할 수 있는 방법을 제공한다. 즉, IIS 가 이미 구현한 기능을 사용해서 개발자가 새로운 기능을 구현할 수 있는 IIS SDK 다. 개발자는 ISAPI 를 이용해서 Extensions, Filters 라는 두 가지 형태의 어플리케이션을 개발할 수 있다.
- KAIST전산대학원면접/06전기 . . . . 6 matches
"아니 나는 그런거 말고 그냥 범용컴퓨터 살때 어떤기준으로
사느냐에 대해 물어봄거예요. 어떤기준으로 사겠어요."
강죠하셨고, 거기에 가장 적합한 언어로써의 객체지향언어의
잘쓰면 프로그래밍의 OCP원칙에 따라 결합도 낮고 응집도 높은
프로그래밍을 짤수 있고 유지보수가 재사용성을 늘릴수 있다고
"그래 그럼 데이타링크레이어서 IP레이어로 뭐가 붙지?"
- KIV봉사활동/예산 . . . . 6 matches
* 식비는 나머지 비용으로, 하지만 최대한 아껴서 남긴다.
* GSM 은 한국에서 같은 가격으로 다시 되판다
* 예산안은 엑셀로 작성하였다.
* 약품 : 49,200원 (품목 갯수/총가격 : 씨프로프락신 20/16000, 겔포스 1/2500, 정로환 2/3000, 버물리 4/10000, 아스피린 1/2500, 종합감기 3/4500, 과산화 1/200, 포비돈 1/500, 비타민 10/10000, 식염포도당 1/15000)
== 지원금에서 바로 지출 ==
- LC-Display . . . . 6 matches
한 친구가 방금 새 컴퓨터를 샀다. 그 친구가 지금까지 샀던 가장 강력한 컴퓨터는 공학용 전자 계산기였다. 그런데 그 친구는 새 컴퓨터의 모니터보다 공학용 계산기에 있는 LCD 디스플레이가 더 좋다며 크게 실망하고 말았다. 그 친구를 만족시킬 수 있도록 숫자를 LCD 디스플레이 방식으로 출력하는 프로그램을 만들어보자.
입력 파일은 여러 줄로 구성되며 표시될 각각의 숫자마다 한 줄씩 입력된다. 각 줄에는 s와 n이라는 두 개의 정수가 들어있으며 n은 출력될 숫자(0<=n<=99,999,999), s는 숫자를 표시하는 크기(1<=s<=10)를 의미한다. 0이 두 개 입력된 줄이 있으면 입력이 종료되며 그 줄은 처리되지 않는다.
입력 파일에서 지정한 숫자를 수평 방향은 '-'기호를, 수직 방향은 '|'를 이용해서 LCD 디스플레이 형태로 출력한다. 각 숫자는 정확하게 s+2개의 열, 2s+3개의 행으로 구성된다. 마지막 숫자를 포함한 모든 숫자를 이루는 공백을 스페이스로 채워야 한다. 두 개의 숫자 사이에는 정확하게 한 열의 공백이 있어야 한다.
- LogicCircuitClass . . . . 6 matches
* 컴퓨터의 가장 밑바닥 구조인 전자회로를 설계하기 위한 논리 회로를 배운다.
* 2006년(2학기) - 주로 연습문제, term project(10명 팀. 자유주제로 하드웨어 시스템을 회로설계하여 altera 툴로 시뮬레이팅 작성할 것.)
- MFC/CObject . . . . 6 matches
MFC의 계층 구조의 최상단에 있는 클래스이다. 자바로 치자면 Object 클래스에 비슷한 클래스이다.
이 클래스로부터 파생된 클래스는 다음의 3가지 레벨로 구분되는 기능이 있다.
각 레벨의 구분은 다음의 매크로를 통해서 설정할 수 있다.
''각각은 보조 매크로가 필요하며 DECLARE_ 대신 IMPLEMENT_ 접두사가 붙은 형태이다. 보조매크로는 클래스의 구현 파일 부분에 포함되어야 한다.''
- MineSweeper . . . . 6 matches
이 게임에서는 각 칸에 인접한 칸에 몇 개의 지뢰가 있는지를 보여준다. 각 칸에는 최대 여덟 개의 인접한 칸이 있을 수 있다. 아래쪽에 있는 4 X 4 지뢰밭에는 지뢰 두 개가 있으며 각각은 '*' 문자로 표시되어 있다.
이 지뢰밭을 방금 설명한 힌트 숫자로 표기하면 아래쪽에 있는 것과 같은 필드가 만들어진다.
입력은 임의 개수의 지뢰밭으로 구성된다. 각 지뢰밭의 첫번째 줄에는 각각 행과 열의 개수를 나타내는 두 개의 정수 n과 m(0<n,m<=100)이 들어있다. 그 다음 줄부터는 n개의 줄에 걸쳐서 각 줄마다 정확하게 m개씩의 문자가 들어있으며 이는 지뢰밭을 나타낸다.
지뢰가 없는 칸은 '.'으로, 지뢰는 '*'로 표시되며 이때 따옴표는 쓰지 않는다. n=m=0인 줄은 입력이 끝났음을 나타내는 것의므로 그 줄은 처리하지 않는다.
- MineSweeper/신재동 . . . . 6 matches
if((MOVE[i] == 0 && MOVE[j] == 0) ||
if(c == '*')
if(board[i][j] == MINE)
else
cout << endl;
cin.get()으로 개행문자(\n)를 먹어야 하는 걸 깜박해서 계속 입력과 다른 출력이 나와 상당히 삽질... --재동
- MineSweeper/허아영 . . . . 6 matches
if(inputField[i][j] == '*') //주의 : * + 1
cout << "Field #" << fieldNum << ":" << endl;
if(outputField[i][j] >= 10)
else
cout << endl;
cout << endl;
- PPProject/20041001FM . . . . 6 matches
n개의 원소를 가지는 1차원 벡터를 i만큼 왼쪽으로 회전시켜라.
cout << str << endl;
cout << str << endl;
cout<<strcat(buffer2,buffer1)<<endl;
알고리즘을 알아도 코드로 바로 풀어쓰기가 안 된다. 그럴 때는 가짜 코드(psuedo code)를 적어보는 것이 도움이 된다.
- PowerReading . . . . 6 matches
http://images.amazon.com/images/P/0960170618.01.MZZZZZZZ.gif [[BR]] ISBN:0960170618
읽기에 도움을 주는 4주간의 코스. 의외로 그 방법들이 복잡하지 않고 단순하고 간결하다.
영어가 쉬우므로 영어원서에 익숙하지 않는 사람들도 쉽게 읽을 수 있다. 앞부분만 읽어보긴 했는데, 추천할만 한 것 같습니다. '더 복잡한 룰'은 직접 필요할때 만들어서 이용하시면 될듯.
- 저도 읽어보고있는데 괜찮은것 같아요. self-testing ..(?) 을 안해서 그렇지..-_-; Do It Now! 를 마음속으로만 외치는군요.....- 임인택
- 휴가 나와서 글쓰기 귀찮음에도 불구하고, 아주 아주 많은 도움을 준 책이길래 이렇게 글을 씁니다. 뭐 이 한권 읽고 기억나는건 읽을때 손가락으로 가리키면서 읽는거 밖에 없지만, 이 조그마한 차이가 엄청난 변화를 가져왔죠. 예전보다 읽는 속도가 3~4배 정도는 빨라진거 같고(원래 무진장 천천히 읽긴 했죠 -_-;) 속도가 좀 빨라지다 보니깐 책 읽는 재미도 느끼게 되어서 더 많은 책을 읽게 되었죠. 결국 이책에서 익힌 기법으로 책을 많이 읽게 되었기에, 이 책은 저에게 가장 큰 영향을 준 책이 된 셈이네요. - 남상협
- PrimaryArithmetic/황재선 . . . . 6 matches
if each + int(b1) + int(b2) >= 10:
if self.carry == 0:
elif self.carry == 1:
else:
if __name__ == '__main__':
if n1 == '0' and n2 == '0':
- ProgrammingPartyPhotos . . . . 6 matches
2002년 5월 19일 있었던 ["프로그래밍파티"]에서 찍은 사진.
||좌로부터 상협, 희상, 인수, 희록||
||좌로부터 JuNe, 창섭, 구근, 덕준||
||포즈의 어색함으로 승부하는 Moa와 멘터의 단체사진||
||좌로부터 혁기, 석천, 경훈, 성근, 유환||
||좌로부터 상협, 희록, 인수||
- ProjectAR/Temp . . . . 6 matches
- FrameMove() : Doc를 바탕으로 출력용 좌표들을 계산한다. // 입력한 내용들도 반영한다.
- Render() : 화면에 직접 출력한다. (오직 출력루틴들만 있다.) // 계산을 하려면 FrameMove에서
그것이 바로 아이템(두둥!!)과 캐릭터
4. 직업을 바꾸더라고 스킬은 일정 확률로 남을 수 있다.(ㅡㅡ!!)
'''이상은 생각해본것이므로 절대로 확정이 아님.'''
- ProjectLegoMindstorm . . . . 6 matches
* 일단 data가 모이는대로 수정하겠습니다.
* 분류를 깜빡했었네요; 근데 쓰레드이거 역순으로 써야하지 않나요?(위부터 최신순으로) - [김홍기]
* 프로젝트분류 태그, 팀이 어떻게 있는지, 앞으로의 진행사항을 기입해 주세요. - 승한
[프로젝트분류] [2008년활동지도]
- PyOpenGL . . . . 6 matches
PyKug:PyOpenGL Python OpenGL Binding. Python 으로 [OpenGL] 프로그래밍을 하게끔 도와준다.
2.3x 버전의 경우는 설치할때 NumericPython 과 numpy 등의 모듈들을 같이 설치해주어야 한다.
새 버전의 [PyOpenGL]의 경우 메소드 이름이 약간 바뀌었다. xxxFuncCallback 함수 대신 xxxFunc 식으로 쓰인다. Nehe 의 코드 대신 [PyOpenGL] 인스톨시 같이 인스톨되는 Nehe Demo 프로그램 코드를 이용하기를 권한다.
- QueryMethod . . . . 6 matches
if( switch->getStatus() == "on" )
else if( switch->getStatus() == "off" )
이것은 두 객체 중에 하나를 리턴하는 방법이다. 딱 보기에도 뭔가 찝찝해 보인다. 하지만 이 방법은 클라이언트로 하여금 Switch가 상태를 어떻게 저장하고 있는지 알아야만 하게 해준다.
if ( switch->isOn() )
else
- RSS . . . . 6 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.
Soon afterwards, Netscape lost interest in RSS, leaving the format without an owner, just as it was becoming widely used. A working group and mailing list, RSS-DEV, was set up by various users to continue its development. At the same time, Winer posted a modified version of the RSS 0.91 specification - it was already in use in their products. Since neither side had any official claim on the name or the format, arguments raged whenever either side claimed RSS as its own, creating what became known as the RSS fork. [3]
The RSS-DEV group went on to produce RSS 1.0 in December 2000. Like RSS 0.9 (but not 0.91) this was based on the RDF specifications, but was more modular, with many of the terms coming from standard metadata vocabularies such as Dublin Core. Nineteen days later, Winer released RSS 0.92, a minor and (mostly) compatible revision of RSS 0.91. The next two years saw various minor revisions of the Userland branch of RSS, and its adoption by major media organizations, including The New York Times.
Winer published RSS 2.0 in 2002, emphasizing "Really Simple Syndication" as the meaning of the three-letter abbreviation. RSS 2.0 remained largely compatible with RSS 0.92, and added the ability to add extension elements in their own namespaces. In 2003, Winer and Userland Software assigned ownership of the RSS 2.0 specification to his then workplace, Harvard's Berkman Center for the Internet & Society.
- ReverseAndAdd/남상협 . . . . 6 matches
if numbers<=0:
else:
self.stack.append(numbers%10)
if numbers==self.reverseNumber:
else:
if __name__=='__main__':
- ReverseAndAdd/신재동 . . . . 6 matches
if(numberStr[i] != numberStr[len(numberStr) - i - 1]):
if(self.isPalindrome(number)):
else:
if __name__ == '__main__':
if(result != None):
if d==rd:break
- Ruby/2011년스터디/강성현 . . . . 6 matches
* 동문 네트워크 홈페이지를 새롭게 만들어보는 프로젝트
* 기존 사이트를 조금 더 사용자 친화적으로 만들고, 모바일 기기에서도 부담없이 볼 수 있도록 함.
* 동네 로그인, 즐겨찾기/동문게시판/나눔터/작은모임/회원검색 의 5개 페이지로 구성
* ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ 에서 다운로드
* 루비 설치폴더\bin 안에 http://www.winimage.com/zLibDll/zlib125dll.zip 에 있는 dllx64\zlibwapi.dll 파일을 복사하고 이름을 zlib.dll 로 바꿈
- RunTimeTypeInformation . . . . 6 matches
동적으로 만들어진 변수의 타입을 비교하고, 특정 타입으로 생성하는 것을 가능하게 한다. (자바에서는 instanceof를 생각해보면 될 듯)
MFC에서는 C++에서 표준으로 이용되기 이전부터 매크로를 이용한 방법으로 이것을 지원했으며, 아직도 그 잔재가 남아있다.
// if the cast is not successful
- SelfDelegation . . . . 6 matches
위임된 객체가 위임하는 객체에 접근하려면 가장 쉬운 한가지 방법이 있기는 하다. 바로 위임하는 객체의 참조를 가지고 있으면 된다. 하지만 복잡해지고, 깨질수도 있다.
여기서 제시하는 방법은, 위임하는 객체를 추가적인 파라메터로 넘기는 것이다. for라는 이름의 추가적인 파라메터로 위임하는 객체를 넘기자.
HashTable은 Collection으로 보낸 메세지가 뱉어낸 값을 기반으로 해쉬값을 계산한다.
이제 hashOf를 폴리모피즘으로 구현할 수 있다.
- SoftIce . . . . 6 matches
* 3.2 버전으로 함.
* 그리고 설정에서 마우스 사용은 None 으로 하고, Video 테스트는 꼭 해야 함. 그리고 SoftIce 실행은 Boot 로 해서 안될 경우에 Manual 로 하기 바람.
* 만약 설치하다가 이상해서 재 부팅시 시커먼 화면만 나오고 안 넘어갈 경우,, 다시 부팅후 화면 하단에 ESC 눌러라는 글씨 나올때 ESC 눌러서 SoftIce 실행을 취소해야함.(ESC 두번 누르면 취소됨)
- StarCraft . . . . 6 matches
예를 들자면 프로토스에서 게이트 웨이에서 생산되는 병력은 질롯,드라군,탬플러,다크 탬플러가 있다.
이것을 직접 Class로 만들어보자~~
그때 한 선배(오기정)가 클래스에 대해 설명하면서 스타크래프트를 예로 들어주셨고 나를 비롯한 많은 사람들이
늘 그렇듯이 대부분의 사람들이 물리적 대상과 객체를 대응하는 고정관념에 빠져있어서 문제가 됩니다. 관계, 개념 등도 객체가 될 수 있다는 발상전환을 가능케 해주면 좋겠지요. 처음에 이런 사항만 넌지시 알려주고 디자인 하게 합니다. 그러고 나서, 일단 학생들의 디자인으로 개발한 것을 놓고, 같이 토론해 보고(이 때 선배는 뒤에 물러서 관찰만 함) 다시 한번 새로 디자인하게 합니다. 그리고 이번에는 선배가 디자인한 것을 후배들이 최종적으로 디자인한 것과 동등하게 같이 놓고 토론해 봅니다. 이 때 중요한 것은 선배의 것이 마치 "궁극적 해답"인 마냥 비치지 않도록 주의하는 것이겠죠. (디자인 시에는 KentBeck과 WardCunningham이 최초 교육적 목적에서 개발한 CrcCard를 사용하면 아주 훌륭한 결과를 얻을 것입니다.) --JuNe
- SubVersionPractice . . . . 6 matches
저장소에 있는 프로젝트를 사용자의 컴퓨터로 가져오는 명령이다. 사용자는 체크아웃한 프로젝트를 가지고 작업한다.
작업한 프로젝트를 저장소에 올리는 명령이다.
프로젝트에 파일을 추가했다는 표시를 한다.
저장소에서 최근에 변경된 내용을 사용자가 작업하는 프로젝트에 적용한다. (주의해서 사용)
- Temp/Commander . . . . 6 matches
#VendingMachineCommander.py
import VendingMachineParser
self.parser = VendingMachineParser.Parser()
self.intro = 'Welcome to Vending Machine Simulator!\n'\
if self.timeToQuit:
if __name__ == '__main__':
- TestDrivenDevelopmentBetweenTeams . . . . 6 matches
관련 문서 : http://groups.yahoo.com/group/testdrivendevelopment/files 에 Inter-team TDD.pdf
팀단위로 TDD를 한다고 한다면?
일단 각 팀들끼리 TDD 를 하면서 팀들간의 대화를 통해서 일종의 공통 interface 를 빼낼 수 있다. 일단은 일종의 MockObject 로 가짜값을 채워서 테스트를 통과시킨뒤, 실제 Object 가 구현되면, 천천히 하나씩 실제 Object 의 interface 를 끼워가면서 테스트를 통과하는지를 확인한다. 그리고 최종적으로 실제 Object 로 MockObject 를 대체시킨다.
Java 의 경우 inteface 키워드나 abstact class 를 이용하여 interface 를 정의할 수 있다. 팀의 구성원끼리 Pair를 교체한 뒤 interface를 정의하면 더욱 효과적이겠다.
["TestDrivenDevelopment"]
- TestDrivenDevelopmentByExample . . . . 6 matches
* http://groups.yahoo.com/group/testdrivendevelopment/ - 야후 그룹.
* http://groups.yahoo.com/group/testdrivendevelopment/files/ - TestDrivenDevelopmentByExample 문서. (아직 미완성중. 계속 업데이트 되고 있습니다. 최신 버전을 받으세요.)
["Java"] 소스(국내에 인기있는;)로 되어있으니 추후 출판뒤 번역이 되지 않을까 하는 희망을; 하지만 지금 진행중인 책의 앞부분을 읽어보긴 했는데. 정말 'Test 로 Driven' 되는 것 같은 느낌이 듬. TDD 진행과정을 예제 하나를 통해 계속 보여주기 때문에 이해하기 편합니다.
개인적으로 TDD 중 빠른 테스트 통과를 위해 가짜 상수로 쌓아나갈때 어떻게 '중복' 이라 하여 ["Refactoring"] 할까 고민했었는데, 이전의 SeminarHowToProgramIt 에서의 예제 이후 이 문서에서의 예제가 깔끔하게 풀어주네요. 인제 한번 들여다 본 중이긴 하지만, 저자가 저자인 만큼 (KentBeck).~
TestDrivenDevelopment 에 관심있는사람은 필독문서이겠죠? --["1002"]
See Also Moa:TestDrivenDevelopmentByExample,
- TheJavaMan/로보코드 . . . . 6 matches
자바공부도 할 겸 로보코드 가지고 놀기
* 로보코드 홈페이지: http://www-903.ibm.com/developerworks/kr/robocode/robocode.html
||Upload:leonardong.Friend_1.0.jar||나휘동||
서로 배틀한번 해봤으면 좋겠군..넷미팅은 끊길려나..아직 만드는중이닷;; --[문원명]
만들어서 올린 것으로 서로 붙기. 어서 올려줘~ 그래야 붙여보지 -[Leonardong]
- TheTrip/황재선 . . . . 6 matches
double difference = money[i] - average;
if (difference > 0) movedMoney += difference;
if (trip.studentNum == 0) {
* double형으로 숫자를 입력받아서 소수점 처리를 하는데 고생했다 -- 재선
- TugOfWar/강희경 . . . . 6 matches
list.append(input('Weight: '));
if b < a:
else:
if __name__ == '__main__':
파이선 공부의 결과를 시험하기 위해 파이선으로 구현.
완성시키려면 더욱 더 세련된 알고리즘을 개발하거나, 프로그램이 엄청난 과부하를 갖던지 둘 중 하나
- VMWare/UsefulFunctions . . . . 6 matches
VMWare 는 크로스 컴파일링 환경에서 유용한 기능을 몇가지 가지고 있다. 물론 해당 가상 머신에 VMWare Tools 라는 VMWARE 가 제공하는 프로그램을 올렸을 경우에만 작동한다.
가상 머신과 호스트 머신 사이에 데이터를 옮기는 방법은 여러가지를 생각할 수 있다. 가장 많이 이용하는 방법은 NAT 로 구성된 가상 머신상의 네트웍 기능을 이용하여 FTP 로 전송하는 방법을 가장 많이 생각 할 수 있다.
즉 윈도우 시스템의 IDE 를 이용해 프로그래밍하고 VMWARE 호스트 머신에서 컴파일 하는 과정을 최대한 간단하게 만드는 방법이 이 VMWARE TOOLS 을 이용하는 것이다.
- VonNeumannAirport/Leonardong . . . . 6 matches
Traffic하고 Configuration을 각각 2차원 행렬로 표현했다. Traffic은 ( origin, destination )에 따른 traffic양이고, Configuration은 origin에서 destination 까지 떨어진 거리를 저장한 행렬이다. 전체 트래픽은 행렬에서 같은 위치에 있는 원소끼리 곱하도록 되어있다. 입출력 부분은 제외하고 전체 트래픽 구하는 기능까지만 구현했다.
매우 데이터에 의존적인 프로그램이라는 생각이 든다. 만약 석천이형 생각대로 요구사항이 바뀐다면 지금 프로그램은 감당해낼 수 있을까?
self.matrix.append([0]*numofGates)
if __name__ == "__main__":
- WorldCup/송지원 . . . . 6 matches
* 이길 경우 한 팀이 3점 받고 비길 경우 각 팀이 1점씩 받으므로 승패가 가려지면 총 3점, 안 가려지면 총 2점이 취득될 것임.
* 처음에 class명을 Main으로 해야 하는 지 몰라서 Compile Error를 아름답게 띄움...-_-;; // 아래 소스도 복붙할 때 바꿔 줘야 함
if(teams == 0) break;
* 몇번 해보면서 느끼는건데 poj는 사소한 예외는 신경 안쓰는 경우가 많은거 같더라구요....;; 괜히 Accept안되니까 우리가 온갖 예외처리를 다 잡아넣어서 그렇지요..;;;;; -[김태진]
- XOR삼각형/임인택 . . . . 6 matches
if i==0 or i==current-1 :
newList.append(1)
else :
newList.append( list[i-1]^list[i] )
if current<lineNum:
else :
- XpWeek . . . . 6 matches
[http://java.pukyung.co.kr/Lecture/Chapter21.php 네트워크 프로그래밍]
고객과 개발자 역할을 때때로 바꾸어 가며 합니다.
* 평소에 자신 없는 툴로 도전해보는 건 어떨까?
오롤롤롤로~ 멋진궐요?? - [이승한]
여차저차 해서 프로젝트가 끝나갑니다. 내일은 크리스마스 이브죠. 마지막 하루인데 제 시간에 나와서 깔끔하게 마무리 짓고 끝내 봅시다! --[Leonardong]
[2004년활동지도],[프로젝트분류]
- XpWeek/20041221 . . . . 6 matches
마이크로소프트 2002년 10월 기사 - testTwoWord까지
TDD 경험하면서 test class의 Refactoring을 어떻게 해야 될지 모르겠다. test 코드라 굳이 할 필요성을 못 느꼈고 테스트만 하면 된다는 생각이 들었기 때문이다. 인원이 적어서 고객과 개발자의 역할을 번갈아가면서 했는데 개발하기 쉬운 방향으로 생각을 이끌어나가는 것 같았다. 입장을 명확히 한 후 생각을 정리하고 표현해야겠다. 회의가 길어지면서 나타난 의욕상실이 아쉬웠다.
UserStory와 서버, 클라이언트 프로그램의 진행 방향이 정해졌다. 네트워크 관련 개발과 TDD 진행이 재밌게 이루어졌으면 좋겠다. -- 재선
음, 아침의 testOneWord와 testTwoWord는 꽤 만족 스러웠다. 자바에 대한 재미도 약간씩 붙는듯 했고. 오후의 일정은, 전날의 피로함의 연속이었는지 뭔가에 홀린 기분으로 진행한듯. 내일은 좀더 활기차게 했으면 좋겠다. 계획단계가 너무 오래걸려서 지루한 면이 없지 않아 있었지만 소수의 참여자로 인한 현상이라 생각하며.. ㅎㅎ --[박진하]
- Z&D토론/학회현황 . . . . 6 matches
ZeroPage 의 경우는 일단 01에 관해서는 MFCStudy팀 초기 1회만 참석, 그리고 정모 미참석, 이후 아무런 언급이 없는 사람을 제하고 말한 것이므로, 그외 인원의 추가사항도 언급 부탁드립니다. 그리고 데블스의 경우도 통합시의 전체 Resource 파악이라는 면에서, 통합뒤 실질적인 운영을 주도하는 사람들 위주로 적어주시기 바랍니다.
DeleteMe) ZeroPage 도 OB 회원님들 다 적을까요? 겹치시는 분들도 많고 (01 중에서도 또한 같은 현상). 그리고 위에서도 언급했지만, 통합시의 전체 Resource 에 대한 파악이라고 할 때, 통합 뒤의 학회를 실질적인 운영을 주도하는 사람들 위주로 적는게 낫지 않을까 생각해봅니다. (휴학, 군복무를 표시한 이유도 같은 이유입니다.) -- 석천
DeleteMe) OS까지 다 적을필요는 없겠죠. 젤 위에도 적혀있듯이 통합뒤에 학회를 주도하실 회원님들 위주로
- ZIM/CRCCard . . . . 6 matches
|| 로그인요청 || Session ||
|| 로그아웃요청 || Session ||
|| 로그인, 로그아웃 || ZIMServer, ZIMControl ||
|| 화일 송신 / 수신 요청 & 수락|| FileSender, FileReceiver ||
|||||| FileSender ||
- ZPBoard . . . . 6 matches
APM을 이용한 게시판 '''ZPBoard''' 제작 프로젝트.
* ["ZPBoard/AuthenticationBySession"] - Session 을 이용한 회원 인증
* 다들 ["ZPBoard/AuthenticationBySession"] 를 참고하여 일기장까지 제작하도록...^^ 궁금한건 언제든지 질문을~ --["상규"]
* 모두들 외부 프로젝트를 참여하는 관계로 잠시 쉬겠습니다. (이건 도대체 언제 끝날런지....ㅋㅋ) --["상규"]
["프로젝트분류"]
- Zero,One 위키 통합에 대한 토론 . . . . 6 matches
더 이상의 새로운 시도가 없다면, 그리고 더 이상의 장점이 없다면 통합하는게 낫다고 봅니다. --[1002]
로그인해야 쓸 수 있는 기능과 페이지 삭제 기능은 살리고 합치는데는 찬성입니다. --[Leonardong]
지금 로그인해야 쓸수 있나요? 아닐껄요. 로그인해야 지울수 있는 기능일 아니에요? --NeoCoin
ZeroWiki에서 지금 로그인 해야 쓸 수 있는 기능을 말한 것입니다. 근데 써놓고 보니 로그인 안하고 쓰는 게 위키쓰기가 쉽겠네요. --[Leonardong]
- ZeroPage성년식/준비 . . . . 6 matches
||12일||행사를 준비하기로 함.||
||28일||참가에 대한 회신 마감(이걸 기준으로 장소를 잡고, 추가모집)||
* .ai 파일을 넘겨줘야 인쇄가 가능하다는데 로고가 ai가 아니라 곤란.
* 알아봤더니 그날 대학원 면접이 있어서 장소가 없다고 함. 제 2공학관은 수업이 있고 봅스트홀은 면접. 금요일에 다시 가보기로 했음.
|| ZP책자 || 22000 || 한부당 500 * 55부 = 27500원, 그러나 극적으로 깎아서 22000원 || 김태진 ||
* DeleteMe 저따위가 축사를 할만한 학번도 자격도 없다고 생각되서, 삭제했습니다. 그리고 여기 언급된 분들 말고도 몇 분께 더 전화 돌렸는데, 당일 스캐줄로 뒷풀이 참석하신다는 분도 있고 참석 확정 하시고 등록안하는 분들도 있네요. 즐거운 행사 기대합니다. -[류상민]
- [Lovely]boy^_^/USACO/YourRideIsHere . . . . 6 matches
* STL 쓰니까 정말 편하네요. 앞으로 자주 애용할듯..
ifstream fin("ride.in");
if(IsSameCode(comet, group))
else
for(i = comet.begin() ; i != comet.end() ; ++i)
for(i = group.begin() ; i != group.end() ; ++i)
- [Lovely]boy^_^/[Lovely]boy^_^/USACO/Barn . . . . 6 matches
sort(ret.begin(), ret.end(), greater<int>());
ret.erase(ret.begin() + numPivot - 1, ret.end());
ifstream fin("barn1.in");
if(numPivot > iter)
sort(ar.begin(), ar.end());
fout << getTotal(numPivot, data, pivots) << endl;
- [Lovely]boy^_^/영작교정 . . . . 6 matches
* 변수나 함수 이름 쓸때 대소소...대소소 이런식으로 쓰다보니 저런 에러가 났다.--;
=== 새로운 시스템이 어떤 문제가 있을 것이라고 예상하십니까? ===
* 이번엔 어순에 문제가 있다. 또한 나는 영작할때 잘 안풀리면 무조건 that을 넣고 본다는 것도 알게 되었다.
=== 그 형사는 새로운 중거들을 매우 많이 밝혀냈다. ===
=== 나는 그 재앙이 일어나는 것을 막기 위해 결사적으로 노력했다. ===
* 윽--; 역시 관사가.. enforced는 위협하는거 같다..--; 위협받는걸로 착각했음
- gester . . . . 6 matches
넵~~ 중대 컴공 ZP에 가입했었지만 지금 까지는 유령 회원으로 있다가 ZP의 햇살을 밭으려고 나온 배 성민 입니다..
1학기중으로 MFC로 오목이나 테트리스를 짜는것
나두 프로그램 만들어보고파요~~
* 얼~ 쓰렉! 내 동지를 만나서 기쁘다..우리끼리 프로젝트라도? ^^ --병희
수개월간 아무런 소식이 없어서, ZeroPagers 에서 ZeroWikian 으로 분류를 바꾸었습니다. 원하시면 언제든지 참여해 주세요. --NeoCoin
- html5/drag-and-drop . . . . 6 matches
* 드래그 중 마우스 포인터가 요소 위를 가로지를때 단속적으로 발생하는 이벤트이다.
* DataTransfer 객체로부터 데이터를 꺼내어 적절하게 처리하는 부분이다.
|| dragend ||드래그 대상 요소 ||드래그 종료 ||
|| types ||setData()를 호출할 때 지정되는 포맷 문자열을 배열 형식으로 얻을 수 있다. ||
|| files ||다른 어플리케이션으로부터 드래그 & 드롭된 파일을 가져온다. ||
- html5practice . . . . 6 matches
* 로컬에만 데이터를 저장하는 안전한 메모장
* 간단한 파일(그림, 텍스트) 전송 프로그램
* filewriter가 구현 된다면 레알 p2p 전송 프로그램을 만들어도 좋을 듯
== 프로젝트 ==
* 각종 이미지 프로세싱 알고리즘 적용
* 프리마인드 파일 html5로 렌더링 하기
- html5practice/roundRect . . . . 6 matches
if (typeof stroke == "undefined" ) {
if (typeof radius === "undefined") {
if (stroke) {
if (fill) {
if (canvas.getContext){
ctx.font = "15px sans-serif";
- programmer . . . . 6 matches
DeleteMe--["programmer"] 범위가 너무 큰 말인가? 생각이 정리되는 데로 한번 적어야 겠군요.
제가 표현하고자했던 말은 누구를 프로그래머라고 부를 수 있냐는 것이였습니다. 초보/중급/ 이런건 생각해보지 않았는데, 그렇게도 여길 수 있겠군요. 너무 막막하죠. "프로그래밍 언어를 이용하여서 현재 프로그램을 만들고 있거나 가까운 시일내에 만들 사람" 먼저 간략히 이정도만 정의해놓죠.
SeeAlso [프로그래머가지녀야할생각], [프로그래머의편식]
- 가위바위보/성재 . . . . 6 matches
cout << "이선호의 이긴 수는 " << win <<"번이고," <<endl
<<"진 횟수는 "<< lose <<"번이고,"<< endl
<<"비긴횟수는 "<< moo <<"입니다."<<endl;
cout << "\n\n"<<"강인수의 이긴 수는 " << lose <<"번이고," <<endl
<<"진 횟수는 "<< win <<"번이고,"<< endl
<<"비긴횟수는 "<< moo <<"입니다."<<endl;
- 걸스패닉/디자인 . . . . 6 matches
* Upload:man2.gif 일단 캐릭터의 기본 모습. 옷 입힐꺼다.
* Upload:apple.gif 사과: 먹으면 생명연장의 꿈이 이루어진다.
* Upload:coin.gif 코인: 점수를 나타낸다. 원래 보석으로 할려고 했으나, 내맘대로 바꿈.
* Upload:tile1.gif 벽돌타일: 맵을 구성하는 타일 중 하나.
- 고한종/업적/WinAPI로만든학과주점포스기 . . . . 6 matches
삼성 소프트웨어 멤버십을 노리면서 만든 거 였는데 미완성으로 끝. 폐기.
좀더 자세히 말하자면, 아이패드에서 메인 프로그램을 돌리고, 아이폰&안드로이드에서 부속 프로그램이 돌아서 주문을 받게 하려 했음.
그러나 이게 쓸일이 없는 이유는... 실제로 축제기간때 학과주점을 열면 주문? 계산서? [http://mirror.enha.kr/wiki/그런%20거%20없다 그런거_없다]
결과물 찾고, github 프라이빗 계정 등록 성공하면 public으로 올릴 예정(...)
- 고한종/팩토리얼 . . . . 6 matches
if(num==1)
else
// 전역 변수가 필요하므로. 이코드는 사실상 거의 쓸모 없을 것 같다.
if(num==1)
else
* 위키를 열심히 사용하고 있네요~ 바람직합니다 ㅋㅋㅋ 그런데 ZeroWiki에서는 위키 페이지를 생성할때 상위페이지명/하위페이지명 이런 식으로 카테고리처럼 페이지 이름을 만든답니다. 예를 들어 이 페이지라면 고한종/팩토리얼 이렇게 써주는 것이 적절하겠죠. 그리고 각각의 페이지가 고립된 섬이 아니라 다른 페이지들과 연결될 수 있도록 상위페이지 혹은 연관된 다른 페이지를 링크해주면 더더욱 좋답니다. :) 예를들어 이 페이지에는 [고한종] 페이지와 [새싹교실/2011/A+]을 링크할 수 있겠네요. - [김수경]
- 구구단/Leonardong . . . . 6 matches
cout << endl;
cout << endl;
cout << endl;
Scheme 두번째 방법 - if
(if (< by 10)
) (print "end") ))
- 그래픽스세미나/1주차 . . . . 6 matches
1. 직선의 기울기값을 살펴본 후 -1 ~ 1 사이일 경우에는 X값을 1씩 증가시키며 Y값의 점을 찍고, 그 이상이나 이하일 경우에는 Y값을 1씩 증가시키며 X값의 점을 찍는다.
* 반대일 경우도 마찬가지
* 비교하기전에 걸러내는 방법으로는 Cohen-Sutherland 알고리즘이 있다.
1. 출력영역을 중심으로 화면을 9등분한다.
* Outcode가 0000 일 경우엔 Clipping 이 필요하다.
- 김동준/원맨쇼Report/08김홍기 . . . . 6 matches
# 스텟별로 효과가 있음.
# 안티매직포션 - 마법에 면역, 초반은 무조건 먹고 출발
없으면 +1100원이므로 초반 성장에 좋음 (은신캐릭터는 꼭 팔아야)
# 끊임없는 사냥으로 레벨업 - 돈버는건 막타!
# 처음 타자로 상당히 잘 해 준것 같다 (주제 선정의 아쉬움?)
[http://inyourheart.biz/zerowiki/wiki.php/%EA%B9%80%EB%8F%99%EC%A4%80 Main으로]
- 김태진/Search . . . . 6 matches
제목 그대로 서치인데, 배열에서, 찾고자 하는 값이 2개 이상일 경우 모든 값의 위치를 찾아주는걸 해봤습니다.
if (index<0) printf("Not found.\n");
else printf("%d is found in %d-th position in the array.\n", val,index);
if(a[check]==val){
* 과제를 더 발전시켜보았군요. 좋은 자세입니다. 다음엔 static variable말고 구조체로도 해보세요 ㅋㅋ - [서지혜]
- 남상혁 . . . . 6 matches
* 블로그 http://lenerd.tistory.com
* 안드로이드 프로젝트 - 어장관리
* 게임 프로그래밍 with SDL/OpenGL
* 안드로이드 2.1 port for GW620/KH5200(LG Eve/안드로원)
- 대학원준비에대한조언 . . . . 6 matches
여러명이 모여서 스터디를 한 지도 삼 주가 다 되어간다. 같이 준비하면서 때로는 너무 사소한 것에 매달리는 것이 아닌가 싶을 정도로 한 부분에서 넘어가지 못하는 경우가 있다. 한참을 이야기해서 결론을 내보니 이미 말하던 도중에 나왔던 이야기였거나 책을 보면 알 수 있는 내용인 경우도 있다. 하지만 그렇게 해서도 결론이 나지 않는 문제들이 있었고 [대학원준비06] 팀은 교수님께 찾아가서 질문을 했다.
질문에 대한 답도 얻었지만 [대학원준비에대한조언]을 얻은 것이 더 큰 성과였다고 생각한다. [열린질문]을 던지면서 스스로 고민하는 시간이 중요하다는 이야기를 많이 하셨다. [대학원준비06] 팀이 과목 요약을 하고 난 다음에는 고민하는 시간을 가졌으면 좋겠다.
그 밖에 연구실을 방문하라는 조언을 들었다. 포항공대에 [OpenLab]에 다녀온 경험을 생각해보면 매우 와닿는다. 심지어 아무것도 모르고 연구실을 찾아가고, 10분 남짓한 시간을 둘러보고 오더라도 연구실 사람들 직접 만날 수 있다는 사실 만으로도 얻을 것이 있다. 몇 년의 시간을 보낼 장소를 선택하는데 하루의 노력이 아까울까!
- 데블스캠프2005/RUR-PLE/TwoMoreSelectableHarvest/이승한 . . . . 6 matches
if next_to_a_beeper():
if not next_to_a_beeper():
if front_is_clear():
else:
if not next_to_a_beeper():
else:
- 데블스캠프2006/CPPFileInput . . . . 6 matches
ifstream fin;
if(i==10)
// if(AP==temp)
// cout << "에이 뿔이다."<<endl;
if(i==11)
cout << endl;
- 데블스캠프2006/목요일/winapi . . . . 6 matches
if (!RegisterClass (&wndclass))
EndPaint (hwnd, &ps) ;
if (!RegisterClass (&wndclass))
if(LOWORD(wParam) == BUTTON_ID)
EndPaint (hwnd, &ps) ;
if (!RegisterClass (&wndclass))
if (!RegisterClass (&wndclass))
오~ 경력 7년차 프로그래머 출동중비중??? ㅋㅋㅋ - [eternalbleu]
- 데블스캠프2006/월요일/연습문제/if-else/정승희 . . . . 6 matches
== 데블스캠프2006/월요일/연습문제/if-else/정승희 ==
if(50<=n && n<=100)
if(i%3==0)
if(j%5==0)
} else
- 데블스캠프2006/화요일/pointer/문제4/정승희 . . . . 6 matches
b[length]='\0';//NULL문자는 문자 집어넣고 바로 다음에 넣는거다.
cout<< b <<endl;
if(strcmp(buf, b) == 0)
cout<<"T"<<endl;
else
cout<<"F"<<endl;
- 데블스캠프2009/월요일/연습문제/svn코드레이스/박근수 . . . . 6 matches
if(a<min+1||a>max-1)
else if(a<number)
else if(a>number)
if(number==min+1&&number==max-1)
- 데블스캠프2010/Prolog . . . . 6 matches
그들은 전원이 5명 중 누군가 한 명에게서 돈을 빌리고 있고, 또 다른 한 명에게 돈을 빌려주고 있으며, 같은 상대에게서 빌린 동시에 빌려준 경우는 없다고 한다.
다음과 같이 네 가지의 전제 조건이 주어져 있다.
1.색깔이 다른 5 채의 집이 일렬로 있다.
2.각 집에는 서로 다른 국적을 가진 사람이 살고 있다.
10.블렌드(Blend) 담배를 피우는 사람은 고양이를 기르는 사람 옆 집에 산다.
15.블렌드(Blend) 담배를 피우는 사람은 생수를 마시는 사람과 이웃이다.
- 데블스캠프2010/다섯째날/후기 . . . . 6 matches
* 소스를 .cpp로 만들어 보고, class가 뭔지도 맛보고, 헤더파일도 만들어 보고, 코드를 최적화(?) 하는 것도 해봤습니다. 지금까지 전
발로 코딩을 하던 것이었군요 ㅎ_ㅎ -[김상호]
* [스터디그룹패턴언어]의 몇 가지 패턴을 짝을 지어 (독해 수준으로만)번역해보는 시간을 가졌습니다. 주제에 대한 흥미 유발에 실패한 것 같은데, 제 책임이 큰 것 같습니다. 두어 개 패턴만 골라서 깊이 생각하고 의견을 서로 나누는 기회를 가졌다면 어땠을까 싶습니다. 긍정적인 사이드 이펙트로 "번역 재미있는데?"라는 반응을 얻은 건 다행이라고 생각합니다. 번역한 결과물의 품질이 만족스러워 질 때까지 지속적으로 다듬어질 수 있길 바랍니다. -- [이덕준] [[DateTime(2010-06-28T00:27:09)]]
- 데블스캠프2012/첫째날/배웠는데도모르는C . . . . 6 matches
* 간단한 일정 관리 프로그램(?) 만들기로 배워보는 구조체, 함수 포인터....
printf("몇개의 일정을 적으실 예정입니까?(10개이내로)");
if(count==0)
else
if(count==num)
- 도덕경 . . . . 6 matches
... 공이 다 이루어지고 일이 다 되어도 백 가지 성의 사람들이 한결같이 일컬어 나 스스로 그러할 뿐이라고 하는도다!
... 내가 함이 없으니 백성이 스스로 질서를 찾고, 내가 고요하기를 좋아하니 백성이 스스로 바르게 되고, 내게 일이 없으니 백성들이 스스로 부유하게 된다. 나는 바램을 가지지 않는다. 그러니 백성들은 스스로 통나무가 될 뿐이다.
이부분 읽고 감상문 쓸 때 따로 옮겨놔야지..라고 생각했었는데[[BR]]
- 마방진/김아영 . . . . 6 matches
if(y==-1)
if(x==-1)
if(a[y][x]!=0)
if(y>4)
if(x>4)
cout<<endl;
- 마방진/임민수 . . . . 6 matches
if (garo < 0)
if (sero > num-1)
if (square[garo][sero] !=0)
if (garo > num-1)
if (sero < 0)
cout << endl;
- 메모장 . . . . 6 matches
행동을 먼저 변화시켜서 태도를 바꾸게 되는 경우가 있다. 일단 저지르고 나서(행동) 태도의 변화를 꾀한다.
말조심. 사실을 말하려는 의도에 반해 개인 사생활을 이야기하게 되는 경우가 종종 있다.
자신감. 여러 사람 앞에서 말할때 너무 긴장된다. 막 목소리 떨리고 준비한 대로 진행되지 않는다. 사진찍으려하면 표정 암울해지고ㅠ 대학생활끝나기 전에 고치자.
오늘 할일, 앞으로의 계획, 반성, 숙제, 공부 등등.. 이세상 모든것을 머리속으로 생각한다. 정신이 산만해서인지 한 분야를 생각하다가 미해결로 남겨두고 다른 상상을 한다. 종이에 나의 생각을 표현해보자. 차분히 정리해보면 길이 보일것이다. 내가 해야지, 누가 관리하냐
- 미로찾기/곽세환 . . . . 6 matches
ifstream fin("maze.txt");
if (x == -1 || x == Max_x || y == -1 || y == Max_y || array[y][x] == 1 || array[y][x] == 3)
if (array[y][x] == 2)
if (array[i][j] == 3)
else
cout << endl;
- 새싹교실/2011/AmazingC/6일차 . . . . 6 matches
* sum2의 경우 호출시 메인함수 위에 선언이 되어있나 확인한 다음 sum2의 정의부를 실행한다!!
* push와 pop으로 설명
* LIFO(Last In First Out): 마지막으로 들어온 요소가 가장 먼저 pop으로 빠져나온다. - 쓰레기통으로 비유.
6일차를 너무 늦게 올렸다. 얘들아 미안 ㅋㅋㅠㅠ 함수에 대해 좀 자세하게 알려주고 싶어서 2파트로 나눴다. 함수의 기본적인 개념들이라, 그리 어렵진 않았을 것 같다. 그리고 삼항 연산자를 이용해서 팩토리얼을 계산하는 방법도 알려주었다. 다음 시간엔 지역변수,전역변수,정적변수에 대해 배우고, 함수를 이용한 다양한 연산을 연습합니다.-[[신기호]]
- 새싹교실/2013/양반/2회차 . . . . 6 matches
* if문 - [http://soenlab.com/lecture/ccpp/cpp1/4-1-1.htm page]
Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
조건문이 꽤나 흥미로웠다.-끝-
- 숫자야구/곽세환 . . . . 6 matches
cout << endl;
if (ques[i] == ans[j])
if (i == j)
else
cout << strike << "S" << ball << "B" << endl;
cout << "OUT" << endl;
- 숫자야구/문원명 . . . . 6 matches
cout << ans[0] << "\t" << ans[1] << "\t" << ans[2] << endl << endl;
if (ans[i] == input[j])
if (i==j) strike++;
else ball++;
cout << "strike = " << strike << "\t ball = " << ball << endl;
- 숫자야구/방선희 . . . . 6 matches
if ( x1 == a )
if ( x2 == b )
if ( x3 == c )
if ( x1 == b || x1 == c)
if ( x2 == a || x2 == c)
if ( x3 == a || x3 == b)
- 시간맞추기 . . . . 6 matches
문제 : user가 시간을 맞추는 프로그램이다. 프로그램 시작 후 8초가 경과되었다고 생각했을 때, user가 아무키나 누른다.
만약 그 시간맞추기가 정확하다면 user가 이기도록 프로그램을 작성하여라.
=== 처리조건 ===
(단, 프로그래밍 하는 언어에서 지원하는 범위에서 처리조건을 만족하시오.)
- 시간맞추기/남도연 . . . . 6 matches
if (kbhit()){
if (time(0)-start==8){
cout<<"You win!!!"<<endl;
else {
cout<<"your time is off."<<endl;
└time(0), time(NULL)뭐 둘다 그말이 그말이지만.. 1970년 1월 1일부터 지나간 초를 알려줍니다. 물런 숫자가 무지무지무지무지 크므로 리턴값은 unsigned long 형 과 유사하며, 단순히 1초가 지날때마다 1씩 증가합니다. 그래서 이럴때 써먹습니다. - [조현태]
- 신재동/내손을거친책들 . . . . 6 matches
자바 프로그래머를 위한 UML 실전에서는 이것만쓴다! - 로버트 C. 마틴
그냥 PM 핑계로 책이나 몇 권 더 읽는 거지. --재동
꽃으로도 때리지 말라. - 김혜자
오랫만에 읽는 소설. 나름대로 베스트 셀러라서 기대하고 읽었는데 약간 실망. --재동
성공적인 대학원 생활과 프로의 길 - 김원
- 아잉블러그 . . . . 6 matches
서버를 구축하고 관리하고 다양한 웹 프로그램을 사용해 보는 프로젝트.
[LinuxServer]페이지의 오류로 분리된 페이지.
설마 통으로 그냥 찍어 올릴거라고는 생각도 못했삼 - 이승한
= 프로그램 =
[프로젝트분류]
- 압축알고리즘/주영&재화 . . . . 6 matches
if((int)(input[i] - standard)<10)
else
cout << endl;
if(input[i]>='0' && input[i]<='9')
else
cout << endl;
- 위키요정 . . . . 6 matches
Wiki:WikiGnome , Wiki:WikiFairies
하지만 위키는 일전에 창준이형 말씀대로 NoSmok:WikiGardening 처럼 구두를 수선하는 것보다 정원을 다듬는 은유법이 더 어울리는 것 같다. 망가지지 않도록 끊임없이 관리하는 것, 정원일이란 그대로 두면 인간에게 불편한 자연을 좀더 편하게 즐길수 있게 만드는 작업이라서 그러한 것일까?
[강희경]은 위키를 처음 접하고 글을 쓰던 그 때, 내가 쓴 글이 form이 일정하지 않다는 이유로 위키요정이 형태를 바꾸어놨을 때 자존심이 상하면서 글 쓰는 것이 꺼려졌었다. --[강희경]
위키를 옳은 방향으로 이끌어 나간다는건 힘든일 같습니다. 수십페이지를 올바른 방향으로 수정하면서 드는 생각은 이렇게 했을때 이 글을 쓴사람이 기분나빠서 위키를 쓰는것을 꺼려하지 않을지 걱정되기도 합니다. 내가 올바른 방향으로 생각하는 것이 다른사람에게는 옳지 않은 방향일지를 항상 고민합니다. 하지만 가끔은 리누즈 토발즈 같은 좋은 독재자가 필요한것도 같습니다. - [안혁준]
- 유용한팁들 . . . . 6 matches
* 구글에서 어떤 검색 키워드를 넣느냐에 따라서 삽질을 하던지 바로 해결하던지 한다는 것을 알았음. 위 검색 키워드로 찾아 가면 위 참고글이 나오는데 똑같이 해도 안될 가능성이 높음.
Your identification has been saved in /home/a/.ssh/id_rsa.
아래와 같은 식으로 B 서버에 .ssh 폴더가 만약 없다면 만들고.
public 키를 해당 폴더에 해당 이름으로 저장
주의점. 그리고 아래 두 라인의 명령이 위 참고 링크대로 했을때 안될 수 있는 여지.
- 이병윤 . . . . 6 matches
== 프로젝트 ==
==== Drifter ====
*[http://www.overthewire.org/wargames/drifter/ Drifter] WarGame 풀이
=== 수강 신청 자동화 프로그램 ===
1 여석이 존재할경우 수강신청 페이지를 요청하여 신청한다.
- 이영호/문자열검색 . . . . 6 matches
// while 고치기 귀찮다. while을 무한 루프 돌리고 Ctrl-C를 정상적인 종료로 바꿔 끝내자.
fprintf(stderr, "\n프로그램을 종료합니다.\n");
if((fp = fopen("result.out", "w")) == NULL)
buf[strlen(buf)-1] = '\0'; // stream으로 받은 \n을 제거한다.
if((loc = strstr(x, buf)) == 0)
else
- 인수/Assignment . . . . 6 matches
|| DB || . || 11/13 || 프로젝트 중간 제출 || ||
|| DB || . || 12/3 || 프로젝트 최종 제출 || ||
|| SE || . || 11/10 || 프로젝트 중간 제출 || ||
|| SE || . || 12/X || 프로젝트 최종 제출 || ||
|| AI || 9/7 || 9/7.자정전까지 || 나는 인공 지능 시스템인가? 에 대한 자신의 생각을 A4 반 장 정도(10line?) dwkim@cau.ac.kr로 제출 || || O ||
|| SE || 10/13 || 10/19 || 프로젝트 진행상황 발표 준비 || || O ||
- 정모/2003.11.17 . . . . 6 matches
* 각자 감상을 적어주세요.(페이지를 따로 만들어도 상관없습니다.)
* 뒷풀이 비용으로 지난번에 걷었던 회비(총 2만원)을 썼고, 그때에 걷었던 것도 회비로 치겠습니다.
음... 그때 돈을 안가지고 가서 못냈던것으로 기억합니다. - 창재
* 파이선: 주제가 바뀜: 채팅프로그램 만들기로.
- 정모/2004.7.26 . . . . 6 matches
=== 프로젝트&스터디 ===
* [알카노이드] - 8월 한 달 동안 자바로 벽돌깨기 만들기
* 투표대로 정하자.
* 접속할 때마다 랜덤으로 바뀌게하자.
* 클릭만으로 CSS를 변경가능하게 하자.
*회지 만들기(웹페이지로 제작)
- 정모/2005.5.23 . . . . 6 matches
* 내용 : 개념과 언어를 2-3가지 정도씩 알아봄 (Ex) 구조적 프로그래밍, 익스트림, 객체지향)
나쁜점 : >자리구하기<, 아르바이트 및 약속으로 참석저조, >세미나 하시는 분들 참석 저조<, 놀고싶음, 생활리듬파괴
늦은 6시 ~ 이른 3시로 변경 >기각<
방학초, 방학말로 나눠서 테스트 -> 데블스 말의 후기에서 고려해보기로 결정
== 프로젝트 ==
- 정모/2007.1.12 . . . . 6 matches
1. 예전정모는 회장 부회장 회원이 모여 회의와 프로젝트 진행상황을 발표하는 등등 지루함..
2. 앞으로 회의는 1주일에 한번씩( 제로페이지 정책 참여를 원하는 사람들만 참여) -> 의사결정, 아이디어 회의
=> 정보공유 : 일반, 지식인, 블로그 -> 다른사람들이게 유익할거 같은 이야기.
잡담시간에 궁금했던점들을 물어보는 시간으로 이용
날짜는 웹상에서 투표로 정함.
- 정모/2007.3.27 . . . . 6 matches
- 현재 학회비가 제대로 들어오지 않고있따.(이유 : 타 학회의 인수인계 미숙, 과사의 실수)
- PC관리 비용이 나오지 않을 경우 우리 또한 PC실을 관리할 이유가 없다(학교에 맡겨버리자)
- 회의가 끝난뒤 우리는 학회이니까 자신이 부족한 과목, 급한 숙제, 궁금한점 등등에 관해서 주제를 만들고 활용하는 방식으로 했으면 한다.
- 각 회의마다 적당한 수의 ost주제가 나와야 하므로 홈페이지에 페이지를 만들어 주제를 미리 적어보는 방법도 고려해 보자.
* 프로젝트 or 스터디
=> 온라인과 오프라인을 병행해서 프로젝트를 진행할 예정입니다.
- 정모/2011.8.29 . . . . 6 matches
* 이번주 주자 : [황현] - 마인크래프트로 논리회로
== 프로젝트/스터디 ==
* 테트리스 데모버젼을 저번주에 테스트했습니다. 한종이가 새롭게 만들어본다고 하고, 방학 마지막 주이므로 스터디를 끝냅니다.
* 9월 중 한주에 했던 것을 일기로 쓰기 (미래일기)
* 개강 후 임시로 다음 주 정모는 월요일 오후 6시에 합니다.
- 정모/2012.5.7 . . . . 6 matches
== 스터디/프로젝트 ==
* rur-ple을 이용한 짝 프로그래밍
* 로봇에게 미로를 빠져나가도록 하자! 는 숏코딩 신경전??
* 새싹 중간모임에서 뭘해야할까 한참을 고민하다 러플을 준석이형에게 부탁했는데 다행히 성공적으로 할 수 있었던거 같습니다. 정모에서 뭘 할지 생각하는게 생각보다 쉽지 않군요. + 데블스 캠프도 이젠 좀 제대로 준비할 때가 되었는데 일정도 쭉 정하고 다른 학교와 이야기도 좀 더 해봐야겠네요. -[김태진]
- 정모/2013.4.15 . . . . 6 matches
* 3명단위로 조를 따서 당번제 돌리자.
* -> 3명이 자발적으로 모여야겠지. 시간 맞추기 쉽게.
* -> 정회원인 만큼 자발적으로 눈에 띌때마다 청소하는건 당연.
= ZeroPage로고 =
* 투표로 뭘 쓸지 결정하진 못 함.
* 시험 끝나고나서야 제대로 진행 할 듯.
- 정모/2013.6.3 . . . . 6 matches
* [서민관] 학우 - 사정상 다음 주로 미뤄짐 -
<OMS 대용> 대학원으로 오세요! - [강성현](EC랩) 학우 -( 13년도 현 대학원 대표 )
* 숙명여대 쪽도 같이 프로젝트 회의 같은 걸 할 수 있었으면 좋겠어요.
* 스티커는 기존 디자인으로 하기로 했어요.
* 데블스 캠프 강사 모집과 관련된 내용과, subgroup 형식의 프로젝트 회의를 할려고 했었는데 사정상 선배님들이 참석하지 못하셔서 하지 못했습니다. 제가 부족한 점이 많았습니다. 죄송합니다. - [김민재]
- 정모/2013.8.5 . . . . 6 matches
* 현재 ZeroPage에서 GDG를 소모임 형태로 만들 것인지, 아니면 ZeroPage 자체가 중앙대 GDG가 될 것인지에 대한 의견을 들어보았습니다.
* GDG와 관련된 활동에 참가하게 될 때 'GDG 중앙대'라는 이름으로 활동하게 되는데, 이때, 'ZeroPage'라는 이름을 병기할 수 있는지?
== 스터디/프로젝트 회식비 지원 개정 ==
* 지난 주 정모 때, 스터디/프로젝트에 대한 지원 방안 개정을 제안했습니다.
* 사실 중앙대 GDG 설립 경과 보고에 있는 항목이나 지금 여기 후기에 있는 태진이 질문이나 몇몇 얘기들은 바로바로 위키나 홈페이지 공지사항을 통해서 알려줘야 조금 더 많은 사람들이 현재 상황을 알고 그에 대해 생각을 하고 의견을 나눌 수 있을텐데, 너무 아나운스가 없으니 뭐가 어떻게 되는지 알 수가 없네요... 엠티도 사실 일정만 딱 나와 있고, 누가 가는지, 언제 가는지, 가서 뭘 하는지 준비물이 필요할 수도 있는데 그런 것들에 대해서도 이야기가 없으니... - [서민관]
- 조현태/놀이/미스틱아츠 . . . . 6 matches
한마디로 똑똑한Girl...귀여운 녀석.훗..
|| 2005.04.14 || 네모네모 로직 푸는 프로그램 완성~~>ㅁ<;; 너무 힘들었..ㅎㅎㅎ(for와 if만 사용한;;) || [조현태] ||
|| 2005.05.29 || 그래픽 데이터 수정으로 좌우방향의 오차 줄임. || [조현태] ||
|| 2005.06.17 || 화면 출력 알고리즘 변화, 포인터로 간단한 레이어 효과 가능 || [조현태] ||
- 지금그때2003/규칙 . . . . 6 matches
* 도움을 줄수 없거나, 도움을 받을수 없다면 다른 책상으로 떠나세요.
* Test 중 2번의 룰을 좀더 완화 하였다. 경험을 붙이니 말에 너무 많은 제약사항이 붙었다. 그래서 우리는 한가지 제약사항을 없애고, '''제가, 저는, 저도'''로 룰을 바꾸어 해보았는데, 자신을 낮추는 것만으로 원만한 대화의 장이 될수 있었다.
* 단, xx의 정의에 대한 질문시에 시작하기가 난해 했는데(ex- 전산센터가 뭐에요?), 이는 조그마한 트릭으로 충분히 극복할수 있었다.
* 이전 룰로 하기 힘들다. 제약 사항이 생각보다 크다 (->) 제가, 저는, 저도 로 변경
- 지금그때2005/회고 . . . . 6 matches
사람들의 반응이 좋았다. 처음 시행해본 [질문레스토랑]은 앞으로도 많이 쓰일 수 있을 것 같다. OST에서 활기찬 토론을 할 수 있어서 좋았다. 처음 뵙는 선배님들이 많아서 반가웠다.([복날]) -[강희경]
작년에 경우 중간에 자리를 뜨는 사람이 꽤 되었다는 말을 들었는데 이번엔 그런 경우가 전혀 없었다.(잠시 들른 석천형 제외) -[강희경]
[지금그때]와 같은 행사를 제로페이지 내에서만 단독적으로 할 필요는 없는것 같습니다. JStorm에서도 http://gift2005.ce.ro 와 같은 행사를 하더군요. 겹치는 부분도 많다고 보여집니다. 내년에는 Netory, JStorm과 같이 연계해서 해보는건 어떨까요? -[sun]
- 축적과변화 . . . . 6 matches
내가 존경하는 스승님께선 어떤 사람이 얼마나 위대하냐는 것은 그 사람의 생애에 계단이 얼마나 많았느냐로 대변될 수도 있다고 말씀하셨다. 여기서 계단이라는 것은 극적인 "변화"를 말한다. 껍질을 깨고 나오는 순간이고, 삶의 변곡점이며 특이점인 것이다.
컴퓨터를 공부하는 사람들이 각자 자신의 일상에서 하루하루 열심히, 차근차근 공부하는 것도 중요하겠지만, 자신의 컴퓨터 역사에서 "계단"이라고 부를만한 시점이 정말 몇 번이나 있었나 되짚어 보는 것도 아주 중요합니다. 그리고, 주변에 그럴만한 기회가 있다면 적극적으로 참여하고, 또 그런 기회를 만들어 내는 것이 좋습니다. 그런데 이런 변화의 기회라는 것은 나의 세계와 이질적인 것일 수록 그 가능성과 타격(!) 정도가 높습니다. (see also NoSmok:CelebrationOfDifferences ) 그렇지만 완전히 다르기만 해서는 안됩니다. 같으면서 달라야 합니다. 예컨대, 내가 아주 익숙한 세계로 알았는데 그걸 전혀 낯설게 보고 있는 세계, 그런것 말이죠.
이런 맥락에서 저는 제로페이지 친구들이 이 변화의 기회를 자주 접했으면 합니다.
see also ["프로그래밍파티"]
- 코드레이스출동 . . . . 6 matches
=== 코드레이스에 제로페이지 출동!! ===
+ 제로페이지 이름을 알림
7피에는 리눅스가 설치 안 되있고 구피에도 컴퓨터가 바뀌어서 아직 설치가 안 돼있습니다. 구피를 관리하는 네토리에서 아직 설치 계획이 잡히지 않은 듯 싶은데, 한 번 물어봐야겠네요. 만약 수요일까지 설치가 안된다면 임의로 구피나 7피 컴퓨터 몇 대에다가 리눅스를 설치해야 합니다. 7피에 새로 들어온 컴퓨터는 리눅스가 설치 안되서 못했고, 그래서 구피에서 7피로 올라왔다고 하네요
다음주 월요일에도 '팀1'은 연습을 하려 합니다. 중요 멤버 상규가 수요일이 안되서 월요일 1번 더한다는... 결과적으로는 좋지요. ^^ 여튼 시간 되시는 팀은 위에 공지를 참고 하여 오세요. 이때는 다음주 수요일 보다 간단하게 해서 2~3시간 정도 연습할 예정입니다. 우리 모두 열심히 훈련!! 빰빠빠라빠~ (효과음) --재동
- 타도코코아CppStudy/0728 . . . . 6 matches
* 윈도우 프로그래밍의 기본
* API는 안합니다. 빠른 결과물 산출을 위해 MFC로 바로 갑니다.
* 없습니다. 대신 윈도우즈 프로그래밍의 기본을 공부해오세요. 자신이 이해갈때까지
* 개인프로젝트 시작. 매주 검사
* 게임 만드는데 필요한 간단한 프로그래밍적 지식
- 타도코코아CppStudy/0731 . . . . 6 matches
윈도우 프로그래밍은 메세지 기반이다. 즉 윈도우에서 발생하는 메세지들을 캐치해서 그것에 따라 프로그래밍을 하면 된다.
이게 다다. 실제로는 더 있겠지만 우리가 알아야 될것은 이것으로도 충분하다.
* 윈도우에 그림을 그려주기 위해서는 DC라는게 필요하다. MFC에서는 DC를 랩핑하고 있는 가장 기본적인 클래스로 CDC를 지원한다. CDC는 그림 그리는 사람의 손이라고 생각하면 된다. 그림을 그려주기 위해 어떤 색깔의 펜이나 붓을 고를수 있을 것이다. 또한 사각형, 원도 그릴수 있다. 이러한 행위들을 CDC의 멤버함수로 정의해놨다. 우리는 그걸 갖다 쓰기만 하면 된다. 세부적인 것은 나중에 알아도 된다.
- 탈무드 . . . . 6 matches
* 행복을 얻으려면 만족으로부터 멀어져야 한다.
* 노예도 현재의 상태에 만족하고 있으면 자유로운 사람이며 자유인도 현재의 상태에 만족하고 있지 않으면 노예가 된다.
* 사람은 금전을 시간보다도 소중히 여기는데 그로인하여 잃은 시간은 금전으로는 못 산다.
* 이책은 여러모로 참 유익한 책이다. 나에게 지혜로 발전할 수 있는 지식을 많이 주었다. 이 지식이 나의 지혜가 되기 위해서 실 생활에 활용하면서 참 의미를 알아야 겠다. 이책에서 와 닿는 내용은 '성공의 절반은 인내다'와 친절과 겸하(겸손)가 중요하다는 내용, 시간이 돈보다 중요하다는 내용등이다.
- 토이/삼각형만들기/김남훈 . . . . 6 matches
세번째가 결국 문제인데, 무슨 수열 생각할 거 없이 그저 직관적으로 recursive로 필요한 버퍼의 양을 구현. 이건 별표 찍는 시작 위치 정할때도 쓸수 있더구만. 그저 손 가는대로 프로그래밍 했을 뿐.
다만 걱정되는게 있었다면, visual studio 띄우기도 귀찮아서.. 그리고 요즘에는 이런거 짜는데 마소 비주얼 스튜디오 형님까지 끌어들이는건 좀 미안하게 느껴져서 그냥 zp server 에서 vi 로 두들겼는데.. 나 gdb 쓸 줄 모르니까. malloc 쓰면서 약간 두려웠지. 흐흐흐. 다행이 const int 를 case 에서 받을 수 없는거 (이런 줄 오늘 알았다) 말고는 별달리 에러 없이 한방에 되주셔서 즐거웠지.
if (num == 1)
- 통찰력풀패턴 . . . . 6 matches
일단 지식의 샘([지식샘패턴])을 발견했으면, 그로부터 들이킬 물이 어마어마할 수 있다. 이 패턴은 위대한 작품을 보다 쉽고 바람직하게 공부하는 방법을 제시한다.
'''혼자 스스로 작품을 읽고 공부하는 건 아무 문제도 되지 않는다. 그러나 위대한 작품은 잘 알아야할 가치가 있고, 개인 학습은 그룹으로 대화하며 학습한 것에 비하면 초라하다.'''
그러므로,
'''작품을 혼자 스스로 읽고 공부하되, 정기적인 스터디 그룹에서 다른 사람들과 논의해라. 모르는 것을 물어보고 아는 것을 설명하는데 목표를 두어라. 동료와의 정보 교환은 이해를 대단히 풍요롭게 만들어 줄 것이다.'''
가장 학습이 풍요로워 질 때는 그룹이 동기 부여된 중재자([중재자패턴])와 준비된 참가자(PreparedParticipantPattern)를 가졌을 때이다.
- 파이썬->exe . . . . 6 matches
주제 : win32com 을 이용한 파이썬 프로그램 py2exe로 실행파일 만들기
win32com 에 있는 것들을 사용해서 프로그램을 만들고 나면..
py2exe로 패키징하여 다른 컴퓨터에서 돌리면 에러가 납니다
간단한 팁입니다만 구글같은데 아무리 서치해봐도 안나오길래 팁으로 올립니다.
sys.argv.extend(['--packages', 'win32com'])
- 파일 입출력_1 . . . . 6 matches
ifstream fin;
if(i==10)
// if(AP==temp)
// cout << "에이 뿔이다."<<endl;
if(i==11)
cout << endl;
- 피보나치/김홍선 . . . . 6 matches
cout << ar[i] << endl;
재귀호출로 만들려다가 상당히 이상하게 엉켜서 포기 ㅠ_ㅠ
cout << "몇번째까지 수를 구할까요?" << endl;
if(!cin){
cout << "숫자를 넣으세요!" << endl;
if(n>0){
- 피보나치/조현태 . . . . 6 matches
if( number!=0)
if (0==call && number>0)
cout << "피보나치 수열을 출력하는 프로그램입니다.\n 몇번째 숫자를 출력하시겠습니까?";
이번엔 파이썬으로 ..ㅎㅎ
if n<2:
if __name__ == '__main__':
- 호너의법칙/남도연 . . . . 6 matches
cout<<"# Horner Function Value ---->"<<function_value<<endl;
outputFILE << "# Horner Function Value ---->"<<function_value<<endl;
cout<<"# Horner ADD Count ---->"<<num_add<<endl;
outputFILE << "# Horner ADD Count ---->"<<num_add<<endl;
cout<<"# Horner Multiply Count ---->"<<num_multiply<<endl;
outputFILE << "# Horner Multiply Count ---->"<<num_multiply<<endl;
- 01학번모임 . . . . 5 matches
01 학번들의 협력을 통해 제로페이지 내에서 모범적인 고학번의 모델을 제시하기 위해 앞으로도 지난 2006년 3월 10일의 모임과 같은 자리를 꾸준히 가지면 좋을것 같다는 생각이 드는데...
어차피 사회에 나가면 서로 협력하며 살게될 우리 동기들 (아닌가..?ㅋ) 가끔씩 모여서 나쁠것 없지 않은가...?
그래 계모임 하나 만들자. ㅋㅋ 한, 두달에 한번씩 정기적으로 만나는것도 좋을듯~ - [(namsang)]
-_-그정도야 뭐.... 서로 이야기도 하고 좋지.. - 선호
- 2002년도ACM문제샘플풀이/문제C . . . . 5 matches
if(inputData[i].s % 2 == 0)
if( ((count / inputData[i].k) % 2 == 1 && (count % inputData[i].k) == 0)
else
Means Ends Analysis라고 하는데 일반적인 문제 해결 기법 중 하나다. 하노이 탑 문제가 전형적인 예로 사용되지. 인지심리학 개론 서적을 찾아보면 잘 나와있다. 1975년도에 튜링상을 받은 앨런 뉴엘과 허버트 사이먼(''The Sciences of the Artificial''의 저자)이 정립했지. --JuNe
- 2002년도ACM문제샘플풀이/문제E . . . . 5 matches
if(temp.weight[j]!=inputData[i].weight[j])
if(flag == false)
sort(sortedWeights.begin(), sortedWeights.end());
if(!isSamePos(weights, sortedWeights, i))
if(!isSamePos(weights, sortedWeights, i))
- 2006신입생/방명록 . . . . 5 matches
- 06학번 김준석입니다~~ 제로페이지 가입신청해써요~
내위에 준영이 저주하겟다. 뼈 빠지게 10분동안 적을걸 단 10글자로 동시수정을 일으켜 날려버리다니 ㅠㅠ
- 오 차형아!! 다음에 제로페이지 선배님들께 첨삭 받으렴~ 쉽고 재밌단다! ㅎ - [허아영]
시선이 따가우므로..ㅎㅎ
-정리 한다고 제가 좀 정리를 했지만 그래도 지저분한 모양이..ㅡㅡ;; 그러고 임의로 제가 정리 한거 기분 나쁘신 분들 죄송합니다^^; - [송수생]
- 2011년독서모임/주제 . . . . 5 matches
||본격 중간고사 기념 자유주제||당신없는 나는, 하늘 호수로 떠난 여행||
||서로의 책 빌려보기||GO, 하늘 호수로 떠난 여행, 선물||
||자신의 취미가 담긴 책 읽기||Legend, 고구려, 수집이야기||
||여행에 관련된 책||지도밖으로 행군하라, 서울여행사전, 나의 문화유산 답사기, 동경오감 ||
- 2thPCinCAUCSE/ProblemA/Solution/상욱 . . . . 5 matches
if ( k < j ) {
} else if ( i+j <= k || i+k <= j || j+k <= i) {
} else {
cout << count << endl;
- 2학기파이선스터디/서버&클라이언트접속프로그램 . . . . 5 matches
conn.send(daytime)
if __name__ == '__main__':
if __name__ == '__main__':
serversock.send(user)
if __name__ == '__main__':
- 3DGraphicsFoundation . . . . 5 matches
* 세컨드 바이블로 4, 5, 17장 진행(종료)
* 인수의 프로그램 [http://165.194.17.15/~nuburizzang/Fracta.exe] : 소스 조올라 더렵다 --; 튜토리얼에서 제공하는 무지막지하게 긴 템플릿을 써서 상당히 길기도 하다. 걍 실행파일만..--; 근데 꼭 심시티 같다--;
* 상협의 프로그램 [http://165.194.17.15/~namsang/FractalSurface.exe] : 오예 링크 걸렸당~
* [http://http://www.drunkenhyena.com/docs/d3d_tutorial.phtml] : 여기는 nehe 소스를 DX로 만들어 놓은 곳.. -- 정수
["프로젝트분류"]
- 3N+1Problem/곽세환 . . . . 5 matches
if (temp_i > temp_j)
if ((temp = cycle(temp_i)) > great_length)
cout << i << " " << j << " " << great_length << endl;
if (n % 2 == 1)
else
- 3N+1Problem/김회영 . . . . 5 matches
cout<<"적당한 두 수를 입력하세요 ( 단.n1<n2 )"<<endl;
if(check(temp)>max)
cout<<"숫자"<<n1<<"과"<<n2<<"사이의 최대 사이클길이는"<<max<<"입니다."<<endl;
if(temp==0)//temp값이 짝수라면..
else //temp값이 홀수라면..
- 3rdPCinCAUCSE/ProblemC . . . . 5 matches
모양은 같으나, 무게가 모두 다른 N개의 구슬이 있다. N은 홀수이며, 구슬에는 번호가 1,2, .... N으로 붙어있다. 이 구슬 중에서 무게가 전체의 중간인 (무게 순서로 (N+1)/2번째) 구슬을 찾기 위해서 아래와 같은 일을 하려 한다.
M개의 쌍에 대한 결과를 보고 무게가 중간인 구슬이 될 수 없는 구슬의 개수를 구하는 프로그램을 작성하시오.
출력은 표준 출력이다. 출력은 T줄로 이뤄진다. 각 테스트 케이스에 대해서 무게가 중간이 절대로 될 수 없는 구슬의 수를 출력한다. T개의 테스트 케이스를 모두 맞혀야 이 문제를 맞힌 것이다.
- 5인용C++스터디/마우스로그림그리기 . . . . 5 matches
마우스를 이용하여 그림을 그릴 수 있는 프로그램 작성하기.
API로 만든 것
|| 이름 || 다운로드 || 평가 ||
MFC로 만든 것
|| 이름 || 다운로드 || 평가 ||
- 5인용C++스터디/타이머보충 . . . . 5 matches
#ifndef _AFX_NO_AFXCMN_SUPPORT
#endif // _AFX_NO_AFXCMN_SUPPORT
타이머 프로시져 추가
if (CView::OnCreate(lpCreateStruct) == -1)
END_MESSAGE_MAP()
- ACE/CallbackExample . . . . 5 matches
cerr << "Log Message Received: " << endl;
<< endl;
cerr << "\tlength: " << log_record.length() << endl;
cerr << "\tPid: " << log_record.pid() << endl;
cerr << "\tMsgData: " << data.c_str() << endl;
- AnEasyProblem/강성현 . . . . 5 matches
if (i == 0) break;
if (cc == c) break;
cout << i << endl;
* 처음엔 배열로 하려고 했다가 복잡한거같아서 걍 포기. 그냥 편하게 한것 같네요. 바로 accept 돼서 좀 놀람
- AncientCipher/정진경 . . . . 5 matches
if (l1!=l2) { printf ("NO\n"); return 0; }
if (c1[i]==c2[j]) break;
if (j>=26) break;
if (i<26) printf ("NO\n");
else printf ("YES\n");
- BasicJava2005/3주차 . . . . 5 matches
* String은 Java에서 기본적으로 지원하는 String을 저장하는 자료형
* 기본 자료형과 거의 마찬가지로 사용할 수 있다.
* import [패키지 이름]; 으로 사용할 수 있다.
* java.lang.* 패키지는 기본으로 import되어있다.
* add/remove/get 함수등을 사용하여 배열에 마음대로 추가/삭제가 가능하다.
- Basic알고리즘 . . . . 5 matches
{{| " 그래서 우리는 컴퓨터 프로그래밍을 하나의 예술로 생각한다. 그것은 그 안에 세상에 대한 지식이 축적되어 있기 때문이고, 기술(skill) 과 독창성(ingenuity)을 요구하기 때문이고 그리고 아름다움의 대상(objects of beauty)을 창조하기 때문이다. 어렴풋하게나마 자신을 예술가(artist)라고 의식하는 프로그래머는 스스로 하는 일을 진정으로 즐길 것이며, 또한 남보다 더 훌륭한 작품을 내놓을 것이다. |}} - The Art Of Computer Programming(Addison- wesley,1997)
- Basic알고리즘/RSA알고리즘 . . . . 5 matches
암호화 세계에 혁명을 몰고 온 RSA 알고리즘은 다음과 같은 수학적인 기호와 개념으로 설명된다.
3. 다음 조건을 만족하는 e를 찾는다.
4. 다음 조건을 만족하는 d를 찾는다.
보내는 사람이 어떤 숫자를 퍼블릭키로 암호화 해서 13이라는 숫자가 나왔다면,
프라이빗키로 해석한 답은 무엇일까?
- BeeMaja/고준영 . . . . 5 matches
아무래도 나말고 다른사람은 절대로 알아볼수 없을듯.. --;;;;;;
if(!willy) exit(0);
if(willy == 0)
puts("정상적인 작동이 아니므로 종료합니다.");
for (row=0; CAL(row) < willy; row++)에서 매번 for문이 돌때마다 CAL(row)로 계산하지 말고 미리 계산된 값을 변수에 저장해놓고 비교하는게 더 좋을듯. - 고준영
- BookShelf . . . . 5 matches
1. [테스트주도개발] - [TestDrivenDevelopmentByExample] 번역서
1. [실용주의프로그래머]
1. [생각하는프로그래밍] ( [ProgrammingPearls] 번역서 )
[지도밖으로행군하라] - 200701
[꽃으로도때리지말라] - 20070215
Generating Typed Dependency Parses from Phrase Structure Parses - 20070215
- BookTemplate . . . . 5 matches
[노스모크]에서는 ISBN 링크가 되는 책소개의 경우 링크를 상단에, 서평을 하단에 적는것을 원칙으로 한다.
* B) * 5 : [나를만든책]이다. 탁월하다. 이미 고전이거나, 혹은 앞으로 고전이 될 것이다.
* B) * 3 : 전체적으로 그다지 훌륭하진 않았지만 나름대로 뭔가를 얻을 수 있었다.
- C99표준에추가된C언어의엄청좋은기능 . . . . 5 matches
배열을 동적으로 저렇게 할당하다니 -_-...
* 알아본 결과 C99에서 지원되는 것으로 표준이 맞으며, 단지 VS의 컴파일러가 C99를 완전히 만족시키지 않기 때문이라고함. gcc도 3.0 이후버전부터 지원된 기능으로 variable-length array 이라고 부르는군요. (gcc는 C99발표이전부터 extension 의 형태로 지원을 하기는 했다고 합니다.) - [eternalbleu]
The new variable-length array (VLA) feature is partially available. Simple VLAs will work. However, this is a pure coincidence; in fact, GNU C has its own variable-length array support. As a result, while simple code using variable-length arrays will work, a lot of code will run into the differences between the older GNU C support for VLAs and the C99 definition. Declare arrays whose length is a local variable, but don't try to go much further.
- CincomSmalltalk . . . . 5 matches
* [http://zeropage.org/pub/language/smalltalk_cincom/ExtendedBase.tar.gz VisualWorks commonly used optional components]
* optional components, goodies, {{{~cpp VisualWorks documentation}}} 은 필요한 경우 다운받아 만든 디렉토리에 압축을 푼다.
* 연결 프로그램으로 압푹을 푼 디렉토리 안에 있는 bin\win 디렉토리 안에 있는 visual.exe 를 지정해준다.
* {{{~cpp ObjectStudio documentation}}} 은 필요한 경우 {{{~cpp ObjectStudio}}} 가 설치된 디렉토리에 압축을 푼다.
- CodeRace/20060105/아영보창 . . . . 5 matches
if (a->data < b->data)
if (container[i]->data == word->data)
if (isFind == false)
cout << container[i]->data << ' ' << container[i]->count << ' ' << container[i]->asciiSum << endl;
if (('A' <= temp[j] && temp[j] <= 'Z') || ('a' <= temp[j] && temp[j] <= 'z'))
- ConverterMethod . . . . 5 matches
스몰토크의 String 클래스에 보면 asDate라는 메세지가 있다. 켄트벡이 경험한 정말 극단적인 경우에 하나의 객체마다 다른 형태로 변환시켜주는 Converter Method가 30개씩 있었다고 한다. 새로운 객체가 추가될때마다 저 30개의 메소드를 모두 추가해줘야만 했던 것이다.
위 예제에서 Set은 Collection처럼 동작해야 한다. 즉, 객체가 리턴한것은 수신 객체와 같은 프로토콜을 가지고 있어야 한다. C++에서는 상속으로 해결할 수 있을듯하다.
- C언어정복/3월30일-숙제 . . . . 5 matches
1. 인치(inch) 단위를 센티미터 단위로 변환하는 프로그램을 사용자에게 입력을 받고, 계산된 값을 출력하라. (1in = 2.54cm)
5. if문 하나와 for문 하나씩만을 사용하여 2단부터 9단까지의 구구단을 출력하시오.
(if문은 아직 안 배웠으므로 책을 참고)
- C프로그래밍 . . . . 5 matches
매크로를 사용해서
매크로로 삼각형의 넓이를 구하는 매크로
1부터 X까지의 합을 입력 받는 매크로
- DatabaseManagementSystem . . . . 5 matches
DBMS라는 것은 DB를 다루기위해서 만들어진 프로그램이다. 이것은 다수의 사용자가 요청한 정보를 처리합니다. 원래 대용량의 데이터를 다루기위해서 만들어진 컴퓨터때문에 만들어진 것으로 DBMS는 컴퓨터의 back-end 프로그램의 표준화된 일부로서 완전히 통합되었다.
- Data전송 . . . . 5 matches
클라이언트(form) -> 서버로 전송
html 에서 작성한 텍스트 박스등에 입력된 값을 서버로 전송
3. html 이 메인 역활을 하므로 주소창에 파일이름.html 을 설정한다.
if(list.equals("1")){
} else {
- DebuggingSeminar_2005 . . . . 5 matches
''기록으로 남길분들 추가 바람. 제가 기억을 몬해서;;'' - [eternalbleu]
|| [http://www.dependencywalker.com/ DependencyWalker] || Dependency Walker (Included at VS6) ||
|| [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tools/tools/rebase.asp ReBase MSDN] || Rebase is a command-line tool that you can use to specify the base addresses for the DLLs that your application uses ||
- EmbeddedGogo . . . . 5 matches
* 프로젝트의 방향에 대해서 이야기 해봄
* 임베디드를 해보자로 결론. 하지만 무엇을 할 것인가?
* NASM, NASM-IDE 다운로드 [http://uk.geocities.com/rob_anderton/]
부트로더 공부할려면 어셈블리하고 인텔 CPU에 대해 우선 공부해야 될텐데 ---[fnwinter]
[프로젝트분류]
- FooBarBaz . . . . 5 matches
이외에도 foo와 baz 는 속어로도 쓰이는데 우리말로는 '쳇, 제길' 정도로 쓰이고, 온라인상에서는 ''Excuse me'', 정도의 뜻으로 쓰인다고 한다. (PC통신이나 인터넷이 발달하면서 신조어가 생기거나 기존에 있던 어휘에 새로운 뜻이 첨가되는것은 우리나라에만 해당되는것은 아닌듯 하다)
- ForeverStudent . . . . 5 matches
언제나 배우는 학생이다. 공자는 스스로를 호학(배움을 좋아하는 -- 참고로 好의 레게 영역은 love다)하는 사람이라고 평가했다.
학생으로의 부분적 기간이 종결되는 순간 자기 스스로를 학생의 무리에서 제외시켜 버리는 경우가 있다. 하지만 우리는 영원히 학생일 뿐이다. 배울 것이 있는데, 내 나이가 몇이고 내가 뭘하고 몇 학년인지 따질 필요가 있겠는가.
- FortuneMacro . . . . 5 matches
Fortune 매크로 플러그인은 GNU fortune프로그램을 이용한 매크로입니다.
Fortune 매크로는 fortune파일의 인덱스를 직접 읽어들여 사용하므로 FortuneCookies를 읽어들이는 RandomQuoteMacro보다 매우 빠릅니다. :)
- GotoStatementConsideredHarmful . . . . 5 matches
주로 JuNe 과 [jania] 의 토론을 읽으면서 이해를 하게 된 논문이다. '실행시간계'와 '코드공간계' 의 차이성을 줄인다는 아이디어가 참으로 대단하단 생각이 든다. 아마 이 원칙을 제대로 지킨다면, (즉, 같은 묶음의 코드들에 대한 추상화도를 일정하게 유지한다던가, if-else 의 긴 구문들에 대해 리팩토링을 하여 각각들을 메소드화한다던가 등등) 디버깅하기에 상당히 편할 것이고(단, 디버깅 툴은 고생좀 하겠다. Call Stack 을 계속 따라갈건데, abstraction level 이 높을 수록 call stack 깊이는 보통 깊어지니까. 그대신 사람이 직접 디버깅하기엔 좋다. abstraction level 을 생각하면 버그 있을 부분 찾기가 빨라지니까), 코드도 간결해질 것이다.
- HASH구하기/권정욱,곽세환 . . . . 5 matches
ifstream fin(secret);
if (fin.eof())
if (fin.eof())
if (identi[i][j] != '\0') sum_ascii[j] += identi[i][j];
cout << endl;
- HelpContents . . . . 5 matches
* ["로그인하기"] - RecentChanges 에 IP대신 실명을 사용하는 방법. 그리고 기타 부가적인 기능을 제공받음.
* ["MacroMarket"] - wiki의 다양한 매크로에 관한 설명 페이지
* HelpOnUserPreferences - 위키 사용자로 등록하고, 설정가능한 기본값을 입맛에 맞게 고쳐보세요.
HelpIndex를 보시면 자동으로 만들어진 도움말 목록을 보실 수 있습니다.
== [:SlideShow 슬라이드 쇼]로 보기 ==
- IntegratedDevelopmentEnvironment . . . . 5 matches
IDE는 Integrated Development Environment를 말하며 한국어로는 통합 개발 환경을 의미한다. 보통 텍스트 편집기에 syntax highlite와 debugger, 빌드 도구, 컴파일러 등이 모두 통합되어 나오며 IDE하나만으로도 소스코드를 작성하는데 문제가 없다.[* 최근에는 이마저도 부족한 경우도 있다.]
종종 일반 Text editor가 너무나 많은 기능을 제공하는 나머지 IDE랑 헷갈리기도 한다. vim의 plugin을 깔거나 sublime을 잘 설정하면 IDE부럽지 않게 사용할수 있으나 해당 프로그램은 기본적으로 TextEditor이다. plugin을 통해서 지원하는 기능은 사실상 통합된 기능이라 보기 어렵기 떄문이다.
- InterWikiIcons . . . . 5 matches
Any recommendations on what software to use to shrink an image to appropriate size?
* [[Icon(moin-new.gif)]]Amazon - http://puzzlet.org/imgs/amazon-16.png
* [[Icon(moin-new.gif)]][http://www.worrynet.com/jandi/wiki.cgi/%C0%DC%B5%F0%B9%E7 Jandi] - http://puzzlet.org/imgs/jandi-16.png (16x16x16M)
* [[Icon(moin-new.gif)]][http://ko.wikipedia.org/ KoWikipedia] - http://puzzlet.org/imgs/kowikipedia-16.png (16x16x16M)
* Freefeel - http://freefeel.org/upload/freefeelz16.png (as recommended at Freefeel:FreeFeelZone 16x15x256) or http://puzzlet.org/imgs/freefeel-16-new.png (16x16x16)
- JTDStudy/두번째과제/장길 . . . . 5 matches
public class TestButtonMain extends Applet implements ActionListener{
public class TestFrame extends Frame implements WindowListener{
public void windowDeiconified(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
* 너무 오랫만에 숙제를 했네요....... windfencer.zerpage.org 여기에 들어가면 위 소스로 만든 애플릿을 확인하실수 있습니다. - 장길 -
- Java/ServletFilter . . . . 5 matches
Java Servlet 2.3 스펙에서부터 소개된 새로운 컴포넌트 타입.
이중 EncodingFilter 의 경우 JSP 프로그래머들에게도 보편적으로 이용되고 있는중.
기존의 model 1 스타일의 jsp/servlet 코드를 가능한 한 덜 건드리고 새 기능을 추가해야 할때 나름대로 써먹을 수 있는 방법중 하나.
- JavaStudy2002 . . . . 5 matches
* ["Java"], ["Eclipse"], ["JUnit"], ["TestDrivenDevelopment"], ["TestFirstProgramming"]
* 상민이형께서 자바스터디를 즐겁게 이끌어 나가는 방법이 없냐고 물으시더군요. 예전에 C++ 같은 것을 하면서 감동을 느꼈거나 흥미로웠던 점에 대한 의견을 적어주세요. --[영동]
* 이번주는 " Airport Problem "을 다 마치는걸 목표로 잡았었는데, 결국 다 못하고 말았다, 이론....... - 세연(["세여니"]) -
* 12/20 첫번째 마지막 날로 잠정 결정
..12/23일로 변경
["프로젝트분류"]
- JavaStudy2002/상욱-2주차 . . . . 5 matches
if ( board.boardState(tempX, tempY) == true ) {
else
if ( board_[x][y] == true )
else
if ( boardCount[i][j] == 0 )
- JollyJumpers/강소현 . . . . 5 matches
if(isJolly(arr, size)){ //졸리점퍼 체크
}else{
if(Math.abs(arr[i+1]-arr[i]) >= size)//size 넘어가면 1~n-1을 넘어가니까.
else
if(jollyNum[i] == 0)//1~n-1 중 하나라도 포함 안하면 not jolly
- JollyJumpers/김회영 . . . . 5 matches
if(count!=1)
if(seqCheck(array,count))
else
if(array[j]==i)
if(checker==count-1)
- JollyJumpers/신재동 . . . . 5 matches
if(listSize - 1 < getGap(aList, i))
if(jollyJumper.isJollyJumper(list))
else
public class JollyJumperTest extends TestCase {
이번엔 TDD로... 쉬운 알고리즘이라 테스트를 몇 개 안만들고 끝냈다. --재동
- JustDoIt . . . . 5 matches
* 하욱주 - 우리 최고 핵심 정예 멤버. 한마디로 '주춧돌'
죄송합니다 다음으로 미룹시당; -[수민]
임의로 피보나치/김홍선 페이지 만들었는데 앞으로 소스도 이런식으로 올려주세요~ -[iruril]
- KIV봉사활동/준비물 . . . . 5 matches
* 씨프로프락신
* 쌀은 현지 쌀로.
* 프린트 : 한글 영어독음, 간단한 회화나 단어(워드파일로 준비), 그림, 쓰기책
* unlock usim phone 2대 - ''1대 안드로이드'', 나머지 한대 애니콜
* 개인 위생용품은 따로 챙기자 - 휴지, 생리대, 물티슈
- LinearAlgebraClass . . . . 5 matches
길버트 스트랭은 선형대수학 쪽에선 아주 유명한 사람으로, 그이의 ''Introduction to Linear Algebra''는 선형대수학 입문 서적으로 정평이 나있다. 그의 MIT 수업을 이토록 깨끗한 화질로 "공짜로" 한국 안방에 앉아서 볼 수 있다는 것은 축복이다. 영어 듣기 훈련과 수학공부 두마리를 다 잡고 싶은 사람에게 강력 추천한다. 선형 대수학을 들었던(그리고 학기가 끝나고 책으로 캠프화이어를 했던) 사람이라면 더더욱 추천한다. (see also HowToReadIt 같은 대상에 대한 다양한 자료의 접근) 대가는 기초를 어떻게 가르치는가를 유심히 보라. 내가 학교에서 선형대수학 수강을 했을 때, 이런 자료가 있었고, 이런 걸 보라고 알려주는 사람이 있었다면 학교 생활이 얼마나 흥미진지하고 행복했을지 생각해 보곤 한다. --JuNe
- LinkedList/세연 . . . . 5 matches
//처음으로 스택에 자료를 넣을때
if(head_pointer == NULL)
else
if(head_pointer == NULL)
else
- LinkedList/숙제 . . . . 5 matches
typedef로 'strucrt _slist'를 List로 정의한다.
pList->next=0; // 이 구조체가 처음 부분에 있다는 것을 표시한다. 0으로.
printf("root생성시\n"); // *pList를 root로 한다.
free(pIns); // malloc함수로 만들어진 메모리중 쓸모 없는 메모리는 다시 반환되어야한다. (그렇지 않으면 메모리가 가득차서 컴퓨터가 멈춘다. ㅋㅋ)
- Lotto/송지원 . . . . 5 matches
|| 출력 ||각 테스트 케이스에 대해, 가능한 모든 방법의 수를 오름차순으로 정렬. 각 테스트 케이스는 비어있는 하나의 줄로 분리. ||
if( j != 5 ) printf(" ");
else printf("\n");
if( dmy[5-j] == n-j ) {
- MFC Study 2006 . . . . 5 matches
|| 9월 28일 || [Class로 계산기 짜기] ||
|| 11월 9일 || API나 MFC를 이용하여 윈도우 창을 띄우고 x by x 의 보드를 그리는 프로그램 ||
* 전에 배웠던 식으로 자신이 표현하고 싶은 주제를 선택해서 Class와 Object로 표현해 보세요. 문법, 코드 등 코딩에 필요한 무엇도 필요없습니다. 설계에는 정답이 없다고 말한거 기억하시죠?^^; -[상욱]
[프로젝트지도], [FrontPage]
- Map연습문제/노수민 . . . . 5 matches
ifstream fin("input.txt");
cout << endl;
ifstream fin("input.txt");
for(map::iterator i=vec.begin(); i< vec.end() ;i++)
cout << endl;
- MoinMoinDiscussion . . . . 5 matches
'''Q''': How do you inline an image stored locally? (e.g. ../wiki-moimoin/data/images/picture.gif)
'''A''': See the {{{~cpp [[Icon]]}}} macro; besides that, fully qualified URLs to the wiki server work, too.
* '''R''': The Icon macro worked well. I wanted to avoid the fully qualified URL because to access the Wiki in question requires password authentication. Including an image using the full URL caused my webserver (Apache 1.3.19) to reprompt for authentication whenever the page was viewed or re-edited. Perhaps a default {{{~cpp [[Image]]}}} macro could be added to the distribution (essentially identical to {{{~cpp [[Icon]]}}} ) which isn't relative to the data/img directory. (!) I've actually been thinking about trying to cook up my own "upload image" (or upload attachment) macro. I need to familiarize myself with the MoinMoin source first, but would others find this useful?
- MoniWikiThemes . . . . 5 matches
/!\ 아직 테스트중입니다. 테이블은 철저히 배제시키고 css로만 테마를 고칠수 있게 할 예정. 테마 이름은 바뀔 수 있습니다. 라이센스는 GPL
급하게나마 css wikiBody background-color: #fff; 부분을 주석처리하니 제대로 보입니다.
아 그리고, 모질라에서는 색감이 제대로 나오는데, IE에서는 색감이 맞지 않게 나오더군요 ㅡㅡ;; --WkPark
IE의 경우 display:block 또는 display:table 을 통해 2개 이상의 블록모델 레이어를 중첩시킬 때 width 속성을 각각 주지 않으면 마우스 스크롤이나 리플레시 동작에 컨텐츠가 지워지는 특징(버그?)이 있습니다. width 속성을 주면 괜찮아 지더군요. 최근 저도 CSS만으로 테마를 구현하고 있습니다. --[http://scrapnote.com 고미다]
- MultiplyingByRotation/곽세환 . . . . 5 matches
if (dec * factor2 == dec2)
if (number[i] == base)
else
if (i == number_jarisu)
cout << number_jarisu << endl;
- NumberBaseballGame . . . . 5 matches
1. 우선 컴퓨터가 렌덤으로 자리수가 3인 숫자를 만듭니다.[[BR]][[BR]]
사용자는 스트라이크와 볼수로 컴퓨터가 만든 수를 추리하여 찾는 것입니다.
만약 그렇다면, 다음의 경우에 스트라이크와 볼은 각각 얼마인가요? 혹은 어떤 에러 메시지를 출력하나요?
* 아래와 같은 예제 식으로 소스를 만든 페이지에 넣어 주세요.
반대로, 사용자가 숫자를 부르면 컴퓨터가 맞추게 하는 방법도 있습니다. 두 가지를 합하면 컴퓨터와의 대결이 됩니다. ^^ (그런데 거의 이기기가 불가능합니다.) 소스는 [http://my.netian.com/~sshiskom/file/python/baseball.py 여기]에.
- NumericalAnalysisClass/Exam2002_1 . . . . 5 matches
2. Find the intersection point between the plane 3x+4y+z=24 and the line whose end points are p0=(10,-10,2), p1=(10,2,2)
* 시험공부를 할때 체크리스트 만들고 해당 항목들은 직접 증명해보기 식으로 공부했는데, 가장 확실한 것 같다. (하지만, 시험시간에 일일히 증명해서 푼다는 건 좀 우스운거고; 프로그래밍에서도 idoim 이 있듯, 빨리 풀려면 공식을 외워야겠지. 하지만, '외워지게' 하는것이 가장 좋겠다.)
* 실제 구현부분은 프로그램 레포트가 대체해주므로, 이론/구현 평가에 대해서는 적절하다고 생각됨. --석천
- OurMajorLangIsCAndCPlusPlus/ctype.h . . . . 5 matches
|| int toupper(int c) || 입력된 문자를 소문자로 변경한다. ||
|| int tolower(int c) || 입력된 문자를 대문자로 변경한다. ||
|| wchar_t towupper(wchar_t)|| 입력된 문자를 소문자로 변경한다. ||
|| wchar_t towlower(wchar_t)|| 입력된 문자를 대문자로 변경한다. ||
|| int toascii(int) || ASCII 코드로 변환. ||
- OurMajorLangIsCAndCPlusPlus/math.h . . . . 5 matches
||double atof ( const char * string ) || 문자열을 실수형으로 변형시킨다||
||double fabs ( double x ) || 실수형의 절대값을 실수형으로 리턴한다 ||
||double log ( double x ) || x의 로그값을 구한다 ||
||double log10 ( double x ) || x의 상용로그값을 구한다 ||
||double modf ( double x , double * ipart ) || x를 소숫점 아래의 값과 정수로 나눈다 ||
- ProjectAR/ThinkAbout . . . . 5 matches
== 프로그램의 핵심적 요소들 ==
엑션 RPG는 리얼타임(실시간)으로 진행이 되고, 임펙트의 화려함이 있어야 게임의 재미가 높아지기에
층을 자유자제로 움직이기 때문에 이벤트가 진행되는 경우의 수는 굉장히 많을 것이다. 이것들이 버그
아이템에 정령이 깃드는 시스템을 하기로 했다. 그 과정에서 발생하는 버그가 있을 수 있다. (정령 두개
- ProjectAR/회의/20030525 . . . . 5 matches
* 멤버 변수 앞에는 m_ , 포인터는 m_pComponent 이런식으로 간다. 그 외에 타입 정보는 넣지 않는다.
* 이동이 약간 애매하긴 한데, 프레임 기반으로 간다.
* 인벤토리는 이스 스타일로 간다. 그냥 주인공이 CARItem*형 포인터의 배열 또는 리스트를 가지고 있으면 된다.
* 제한자는 모두 public으로 한다.
* 모든 데이터는 파일로 뺀다.
- ProjectPrometheus/CollaborativeFiltering . . . . 5 matches
일단은 본격적인 CF로 가는 것보다 아마존의 "Customers who bought this book also bought"식으로 좀 더 간단한 것을 하는 것이 좋을 듯 하다. 이것은 꼭 Clustering이 필요없다 -- Clustering이 효과를 발휘하려면 상당량의 데이타(NoSmok:CriticalMass )가 쌓여야 하는데, 쉬운 일이 아닐 것이다. 다음은 JuNe이 생각한 간단한 알고리즘. 일종의 Item-to-Item Correlation Recommendation.
*When a user does a specific well-defined action, bookPref is updated as "prefCoef*userPref+bookPref" and resorted. (some books at the end of the list might be eliminated for performance reasons)
- ProjectPrometheus/Iteration7 . . . . 5 matches
|| sessoin으로 view point누적 방지 || 0.5 || ○||
|| 로그인 + 검색 || . || ○ ||
|| 로그인 + 검색, 보기(x2) + viewpoint|| . || ○ ||
|| 로그인 + 보기 + Rating(lightView)|| . || ○ ||
|| 로그인 + 보기 + 서평(heavyView)|| . || ○ ||
- ProjectSemiPhotoshop/계획서 . . . . 5 matches
* 10/31 pm5:00~pm10:00 현민과 경태, 현민 집에서 알카로이드의 기본을 열심히 배우고 익힘
* 11/19 상민과 현민이 이미지 프로젝트의 시작을 위한 시작 코딩
* Bitmap 로딩과, 저장부에 대한 작성. 기존 메모리 다루기가 힘들것 같아서, 추상화 목표.
* 다음일정 까지 해올 시험 프로그램 임무 부여
* Bmp 로딩 구현
- ReadySet 번역처음화면 . . . . 5 matches
'''*What makes this product different from others?'''
This is an open source project that you are welcome to use for free and help make better. Existing packages of software engineering templates are highly costly and biased by the authorship of only a few people, by vendor-client relationships, or by the set of tools offered by a particular vendor.
*Use a text editor or an HTML editor. Please see our list of recommended tools. (You can use Word, but that is strongly discouraged.)
*9. If you have questions or insights about a templates, please read the FAQ or send an email to dev@readyset.tigris.org. You must subscribe to the mailing list before you may post.
- RedThon . . . . 5 matches
{{|Many programmes lose sight of the fact that learning a particular system or language is a means of learning something else, not an goal in itself.
많은 프로그래머들은 특정 시스템이나 프로그래밍 언어를 배우는 것이 뭔가 다른 것을 배우는 것일 뿐,
월요일 A,B반 모두 5시에 마치는거 같습니다. 5시에 바로 하죠??....- [Redmoon] -
이 스터디를 종료합니다. 별로 한 게 없어서 아쉽네요. 방학 때 다시 할 수 있기를 바랍니다.--[Leonardong]
- Reverse Engineering처음화면 . . . . 5 matches
1. 프로그램이 왜 이렇게 짜여져 있는지 확인.
2. 보안 관련으로 나가려는 사람.
4. 프로그래밍 후의 Debugging을 위한 초석.
5. Pack되어있는 프로그램 분석. Pack 프로그램 제작. 알고리즘 제작.
- ReverseAndAdd/문보창 . . . . 5 matches
if (originN == reverseN)
cout << nadd[i] << " " << pal[i] << endl;
if int(n) == int(n[::-1]):
else:
if __name__== '__main__':
- Scheduled Walk/소영&재화 . . . . 5 matches
if (i<0)
if (i>=length_size)
if (j<0)
if (j>=width_size)
cout<<endl;
- SeedBackers . . . . 5 matches
2005년 2월 졸업생들. 졸업 논문 심사를 통과하기 위해. 조금 더 양질의 논문을 산출해내기 위해 서로의 논문을 같이 준비하고 피드백(feed-back)을 넘어선 시드백(seed-back)을 주고받기 위한 프로젝트 페이지
|| [임인택] || OpenSource 프로젝트 산출물의 품질 향상을 위한 프로세스 개선 방안 || SE 연구실 ||
[프로젝트분류]
- Self-describingSequence/문보창 . . . . 5 matches
Sorted List 이므로 Search 부분에서 Linear Search 대신 Binary Search를 하면 좀 더 효율적이나, 이 정도만 해도 충분히 빠르다. 메모리 사용량을 줄이려면 어떻게 해야 할까?
if (count == 0)
if (n < table[i])
if (n == table[i-1])
cout << i << endl;
- Star . . . . 5 matches
48개의 삼각형 셀로 이루어진 판이 하나 있다. 각 셀에는 0에서 9까지의 숫자가 적혀있다. 모든 셀은 두 줄 또는 세 줄에 속한다. 각 줄들은 A에서 L까지의 문자로 표시된다. 아래 그림을 보면 9라는 숫자가 들어있는 셀은 D, G, I 줄에 속하며, 7이라는 숫자가 들어있는 줄은 B, I 줄에 속한다.
[[http://online-judge.uva.es/p/v101/p10159.gif]] ~~[[DeadLink]]~~
이 열두 개의 줄에서 각각 가장 큰 수를 읽어 들여서 판 위에 있는 수를 모두 더한 값의 최소 값과 최대 값을 구하는 프로그램을 만들어라.
입력된 각 줄에 대해 주어진 판에 들어있는 숫자 총합의 최소 값과 최대 값을 출력한다. 이 두 값은 같은 줄에 출력해야 하며, 두 숫자 사이에는 딱 한 개의 스페이스를 출력한다. 풀이가 없는 경우에는 "NO SOLUTION"이라고 출력해야 한다.
- Steps/하기웅 . . . . 5 matches
if(number==0)
else if(number>powNum && number<=(powNum+sqrtNum))
else
cout << showResult(y-x) << endl;
- The Trip/Celfin . . . . 5 matches
if(student[j]<average)
if(student[j]>average+1)
if(most <least )
if(student_num==0)
cout << "$" << calculate()/100 <<endl;
- TheKnightsOfTheRoundTable/하기웅 . . . . 5 matches
헤론의 공식을 이용해 세변으로 넓이는 구하면
헤론의 공식을 이용해서 구한 넓이 = (내심원의 반지름 x 세변의 합)/2 로 구할 수 있다.
if(halfSum==0)
cout << "The radius of the round table is: 0.000"<<endl;
cout << "The radius of the round table is: " << 1.0*sqrt(halfSum*(halfSum-a)*(halfSum-b)*(halfSum-c))/halfSum << endl;
- TheLagestSmallestBox/하기웅 . . . . 5 matches
대부분 똑같은 방식으로 풀었으리라 예상하고 설명 안함^^
if(length<width)
cout << (length+width - sqrt(length*length - length*width + width*width))/6.0 << " 0.000 " << length/2.0 << endl;
else
cout << (length+width - sqrt(length*length - length*width + width*width))/6.0 << " 0.000 " << width/2.0 << endl;
- TheWarOfGenesis2R/ToDo . . . . 5 matches
* 현재 맵의 편집이 숫자로만 가능. 그림을 보면서 편집할 수 있도록 고칠 예정.
== 메인 프로그램 ==
* 현재 1스테이지만 로딩이 되도록 프로그래밍이 되어 있다. 여러 판을 할 수 있도록 로딩루틴 수정
- TkinterProgramming/Calculator2 . . . . 5 matches
self.display.component('text').delete(1.0, END)
self.display.insert(END, '\n')
if result :
self.display.insert(END, '%s\n' % result, 'ans')
if key != '\b':
else:
self.display.insert(END, key)
if ktype == FUN:
else:
- TopicMap . . . . 5 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.
''Nice idea. But i would just make it the normal behavior for external links. That way you don't clutter MoinMoin with too many different features. --MarkoSchulz''
Could you provide a more involved example markup and its corresponding rendering? As far as I understand it, you want to serialize a wiki, correct? You should ask yourself what you want to do with circular references. You could either disallow them or limit the recursion. What does "map" do? See also wiki:MeatBall:TransClusion''''''. -- SunirShah
1. Appendix
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.
- TugOfWar/신재동 . . . . 5 matches
weights.append(weight)
if(group1 < group2):
else:
if __name__ == '__main__':
이전에 비스무리한 문제를 푼 적이 있었다. 하긴 이런류의 경시대회 문제들 어느 정도 풀다 보면 해결 방법이 몇 가지로 나뉘는 것 같다. --재동
- XpWeek/20041222 . . . . 5 matches
3시 16분 : 나휘동 밖으로 데이트. 패어는 제대로 이루어 지지 않고. 좌절분위기.
[http://kin.naver.com/browse/db_detail.php?d1id=1&dir_id=10106&docid=722107 jsp에서 ms타임을 년시분초로 바꾸어주는 방법]
>__<ㅋ 3시 이후부터 제대로 작업을 안해서 조금 아쉽긴 하지만 그래도 참 재미 있었어요~>__<ㅋ 특히. 잡지에서나 듣던 화이트 보드에 유저스토리 붙여가면서 중요도를 측정하고 코딩을 하는 것은. 으흐흐흐 참 멋졌음~!! 소스 가져다 붙이면서 이해하는 재미도 쏠쏠했고~>__<ㅋ
그런데 내일이랑 내일모래는 약속으로 쥐쥐 저는 이만 해야 할듯...ㅠ.ㅠㅋ - [이승한]
- ZeroPager구조조정 . . . . 5 matches
초기 인원 50(05학번)에서 지금 활동하는 인원은 많지 않기 때문에 Zeropage의 효율적인 관리를 위해서 등등을 위해 05학번을 대상으로 구조조정을 해보려고 합니다.
크게 정회원과 준회원으로 나누는 것만 정하려고합니다.
''프로젝트 참여 > 정모 참여 > 연락'' 을 우선순위로 따져서 나눈 것입니다.
하지만 언제든지 정회원이 될 수 있습니다.( 정회원 조건에 만족 한다면 )
- Zeropage/Staff/회의_2006_02_13 . . . . 5 matches
신입생 3월에 준회원 -> 세미나 프로그램 생각하기(커리큘럼 작성)
1학기->페어 프로그램, 문제풀기
3월.. 6월 - 바로 투표
홍 보 : 프로젝트 결과물(), 신청(6월)
프로그램접수 : -
- [Lovely]boy^_^/Diary/2-2-16 . . . . 5 matches
* Today, All final-exams will end.
DeleteMe) I envy you. In my case, all final-exams will end at Friday. Shit~!!! -_- Because of dynamics(In fact, statics)... -_-;; --["Wiz"]
* I studied Grammar in Use Chapter 39,40. I have not done study this book since then summer.--;
* I typed directX codes from NeXe sites, because RolePlaying Games with DirectX that I borrowed some days ago is so difficult for me. Let's study slow and steady...
* I had drunken with friend until A.M. 2:00. and had sung until A.M. 4:00--;
- fnwinter . . . . 5 matches
효과적인 프로그래밍(디자인 패턴,리팩토링,테스트 주도 개발,파이썬)
사운드 프로그래밍(FFT/Eq/Sound Effect/BASS/FMOD 사용하기/공짜로 MP3를 다운받기)
이제 학교로 돌아갈 때가 된거 같다.
몇가지만 완료하면 Free 하게 생활할 수 있을 텐데. 앞으로 한달반은 더 고생해야 할 듯.(2005.4.18)
- iText . . . . 5 matches
RefactorMe [페이지이름]이 부적절하다고 생각하시는 분은 [페이지이름바꾸기]해 주세요. 프로젝트(라이브러리) 이름을 그대로 사용했습니다.
* [http://www.lowagie.com/iText/ 프로젝트 홈페이지]
* [http://sourceforge.net/projects/itext/ 프로젝트 홈페이지(SourceForge)]
[도구분류], [프로그래밍분류]
- neocoin/CodeScrap . . . . 5 matches
["상민"] 이가 프로그래밍중 사용하는 이디엄, 신기한 현상들을 모아놓는 페이지
copy(vector1.begin(), vector1.end(), out); cout << endl;
if ( aOption == INIT_START )...
if ( m_nTime < (int)::GetPrivateProfileInt("FindBomb", "AMA_Time", 999, ".\FindBomb.ini")){
- snowflower . . . . 5 matches
||[TheWarOfGenesis2R]||창세기전2 리메이크 프로젝트|| _ ||
||[PaintBox]||Java로 그림판 만들기|| 2005.12 ||
||[DirectX2DEngine]||DX로 2D 엔진 제작|| 2006.07 ~ ||
||Pump-2W||개인적인 프로젝트, PCI9112Card|| 2006.02 ~ 2006.04||
2005.10.19 - 블로그 Open [http://rhasya.egloos.com]
- usa_selfish/권영기 . . . . 5 matches
if(a.s1 == b.s1)return a.s2<b.s2;
if(c[i].s1 != rc[m-1].s1){
if(check[d[i-1]] <= rc[i].s1)d[i] = d[i-1]+1;
else d[i] = d[i-1];
if(check[d[i]] > rc[i].s2)check[d[i]] = rc[i].s2;
- 가위바위보/은지 . . . . 5 matches
ifstream fin("test1.txt");
if (num1 == num2)
else if ((num1 == 0 && num2 == 1) || (num1 == 1 && num2 ==2) || (num1 == 2 && num2 == 0))
else
- 가위바위보/재니 . . . . 5 matches
ifstream fin("gawi.txt");
if (choose[0] == choose[1])
else if(choose[0] == choose[1] + 1 || choose[0] == choose[1] - 2)
else result[2]++;
- 갓헌내기C,C++스터디 . . . . 5 matches
* 스터디를 진행하려고 했으나 새내기 새로배움터 부주체와 제로페이지 활동을 병행하는데 무리가 있다고 생각되어서
* playing with C,엡솔루트 C++ , WINAPI , C로 쓴 자료구조론 (이석호 저)
* 엡솔루트 C++는 한번 모임마다, 배운것을 응용하여 하나의 결과물 만들어내는걸로
* 이주일이상 모임이 없을경우 스터디를 폐쇄한다..
- 구구단/강희경 . . . . 5 matches
if(count==4)
cout << endl;
cout << endl;
if(count==4)
cout << endl;
- 구구단/곽세환 . . . . 5 matches
if (k==6)
if (j==10)
스킴으로 짠 구구단
(if (< y 9) (begin (ggd x y) (iter x (+ y 1)))
스몰토크로 짠 구구단
- 구구단/방선희 . . . . 5 matches
if( i > 4 )
cout << endl;
cout << endl;
if( k > 8 )
cout << endl;
- 금고/문보창 . . . . 5 matches
바로 코드 짜면 저번처럼 망해버릴 것만 같아서, 점화식 만들고, 간단히 증명까지 하고 코드를 짰다. 층수 n, 금고수 k 라 할때, 현재 복잡도 O(nk). 구간 값을 저장한다면 메모리와 시간 모두 더 줄일수 있을 것이다.
층수가 n 인 건물중 해를 찾는 위치에 첫 금고를 떨어뜨린다고 하자. 그러면 건물은 그 위치 아래와 위로 나뉘어지며, 위쪽은 T(b, k) 가 되고, 아래쪽은 T(a, k-1)이 된다. 여기서 a, b는 첫 금고를 떨어뜨린 위치를 기준으로 나뉘어진 위 아래 건물의 층수다. 여기서 문제의 정의에 따라 우리가 구하고자 하는 해는
if (value < d[i][k])
cout << d[n][k] << endl;
- 김희성/ShortCoding/최대공약수 . . . . 5 matches
'''컴파일러''' - gcc 컴파일러는 사용된 function을 확인하여 필요한 header file을 자동으로 include 해줍니다. 또한 gcc 컴파일러는 타입이 선언되지 않은 변수는 int형으로 처리합니다. 이로인해서 main의 본래 형식은 int main(int,char**)이지만 변수형을 선언하지 않으면 두번째 인자도 int형으로 처리됩니다.
'''Coding Skill''' - a^=b^=a^=b;(a^=b;b^=a;a^=b;)는 추가 변수 없이 두 수의 값을 바꾸는 방법입니다. 하지만 두 수가 같을 시 두 수의 값이 0이 되는 치명적인 버그가 있습니다. 본 코드에서는 while문에서 a%=b라는 조건을 주어 이 버그를 차단하고 있습니다.
- 데블스캠프2003/ToyProblems . . . . 5 matches
for & if
vending machine
단어의 순서 산출하기(abcdfe 는 2번째 이런 식으로...)
*로 이등변삼각형 그리기
*로 동그라미 그리기
- 데블스캠프2005/화요일 . . . . 5 matches
C를 막 배운 신입생을 대상으로 한다.
[미로찾기]
쥐는 8방향(대각선 4방향, 가로세로 4방향)으로 움직일 수 있다.
- 데블스캠프2006/월요일/연습문제/for/김준석 . . . . 5 matches
cout << endl;
cout << endl;
cout << endl;
cout << "10이하의 숫자를 입력해 주세요 " << endl;
cout << sum << endl;
- 데블스캠프2006/월요일/연습문제/for/임다찬 . . . . 5 matches
cout << endl;
cout << endl;
if(n<=1){
else{
cout << factorial(number) << endl;
- 데블스캠프2006/월요일/연습문제/if-else/김건영 . . . . 5 matches
== 데블스캠프2006/월요일/연습문제/if-else/김건영 ==
if(value >= 50 && value <= 100)
cout << "3의 배수" << i << endl;
cout << "5의 배수" << j << endl;
- 데블스캠프2006/월요일/연습문제/if-else/김대순 . . . . 5 matches
== 데블스캠프2006/월요일/연습문제/if-else/김대순 ==
if((i>=50)&&(i<=100))
if((j%3==0)||(j%5==0))
else
- 데블스캠프2006/월요일/연습문제/switch/윤성준 . . . . 5 matches
cout << "A: " << a << "명" << endl;
cout << "B: " << b << "명" << endl;
cout << "C: " << c << "명" << endl;
cout << "D: " << d << "명" << endl;
cout << "F: " << f << "명" << endl;
- 데블스캠프2006/월요일/연습문제/switch/주소영 . . . . 5 matches
cout <<"A="<<a<<endl;
cout <<"B="<<b<<endl;
cout <<"C="<<c<<endl;
cout <<"D="<<d<<endl;
cout <<"F="<<f<<endl;
- 데블스캠프2006/화요일/pointer/문제4/이장길 . . . . 5 matches
cout <<reverse << endl;
if(reverse[i] == buf[i]){
else{
cout << "false" << endl;
cout << " true " <<endl;
- 데블스캠프2006/화요일/pointer/문제4/주소영 . . . . 5 matches
if(buf[i] != buf[length-i-1]){
if(r==0)
cout <<"F"<<endl;
else
cout <<"T"<<endl;
- 데블스캠프2009/수요일 . . . . 5 matches
|| 이병윤 || RootKit || Windows의 구조와 IA32 의 구조를 간단하게 설명. 커널레벨로의 접근을 이용한 간단한 루트킷 작성 || ||
|| 김준석 || 객체 지향 프로그래밍(OOP) || OOP에 대한 개요 이해, 추상화에 대한 개념. OOP 기반의 프로그램 설계를 코드가 아닌 글로 새내기와 함께 해본다. || 문법은 잊고 의사코드를 사용한 설계실습을 해보자 ||
|| 송지원 || Simple Java & JUnitTest || Java의 간단한 문법과 개념을 배우고,[[br]]JUnitTest를 통해 TDD 기반의 프로그래밍에 대해 맛보기. || 아무래도 Test가[[br]]메인이다 보니,[[br]]Java를 통한 OOP 개념의 실습은[[br]]시간상 진행하지 않는다. ||
- 데블스캠프2011/넷째날/Android/송지원 . . . . 5 matches
public class DevilsCampAndroidActivity extends Activity implements OnClickListener {
if(v.getId() == R.id.button1) btn = "button1";
if(v.getId() == R.id.button2) btn = "button2";
if(v.getId() == R.id.button3) btn = "button3";
if(event.getAction() == MotionEvent.ACTION_DOWN){
- 데블스캠프2012/넷째날/묻지마Csharp/김태진 . . . . 5 matches
private void clicked(object sender, EventArgs e)
private void button1_Click(object sender, EventArgs e)
private void timer1_Tick(object sender, EventArgs e)
private void pictureBox1_Paint(object sender, PaintEventArgs e)
private void label4_MouseMove(object sender, MouseEventArgs e)
- 랜웍/이진훈 . . . . 5 matches
if (a == 0 && b == 0)
else if ((x+a >= 0 && x+a < 3) && (y+b >= 0 && y+b < 3))
cout << endl;
if (pan[i][j] == 0)
- 레밍즈프로젝트/스펙분석 . . . . 5 matches
[레밍즈프로젝트]
Upload:레밍즈프로젝트_게임스펙분석.gif
Upload:레밍즈프로젝트_맵제작스펙.gif
- 레밍즈프로젝트/프로토타입/에니메이션버튼 . . . . 5 matches
SeeAlso) [레밍즈프로젝트], [레밍즈프로젝트/프로토타입]
윈도우 컨트롤 중에 에니메이터 컨트롤이 있다고 함. -_- 그 녀석을 사용하면 해결 할 수 있을듯. 바로 밑에 있군-_- -이승한
|| ImageButton(.jpeg, .gif...) || [http://www.codeproject.com/buttonctrl/CKbcButton.asp] ||
- 마방진/곽세환 . . . . 5 matches
if (mabang[(row - 1 == -1 ? input - 1 : row - 1)][(col + 1 == input) ? 0 : col + 1] == 0)
else
if (row == -1)
if (col == input)
cout << endl;
- 마인드맵핑 . . . . 5 matches
홀로그램
''이미지가 감광판의 각 부분에 저장된다는 것이다 감광판이 깨어져서 산산조각이 나더라도 전체의 이미지는 조각 하나하나에 그대로 재창조될 수 있다.''
''말로 할 수 있는 것은 글로 쓰지 않는다.''
''캠프에서의 첫날은 <나는 그것을 할 수 없다> 날로 불리워지는데 그것은 아이들의 정신과 육체가 할 수 없다고 생각하는 것을 하는 날이기 때문이다.''
- 만년달력 . . . . 5 matches
* 원하는 년도와 달을 입력하면 그 달의 달력이 나오는 프로그램.
* 4로 나누어 떨어지면서 100으로 나누어 떨어지지 않는 해.
* 400으로 나누어 떨어지면 무조건 윤달.
- 벡터/김홍선,노수민 . . . . 5 matches
ifstream fin("input.txt");
sort(vec.begin(), vec.end(), *compare);
for(i=vec.begin();i<vec.end();i++)
cout << (*i).name << endl;
cout << (*i).score << endl;
- 벡터/임민수 . . . . 5 matches
sort(vector1.begin(), vector1.end(), comp_score);
cout << vector1[i].score << endl ;
sort(vector1.begin(), vector1.end(), comp_name);
for(vector<student>::iterator j=vector1.begin(); j<vector1.end(); j++)
cout << (*j).name << endl ;
- 비밀키/조재화 . . . . 5 matches
ifstream fin("source.txt"); // fin과 input.txt를 연결
array[i]=fin.get(); // cin으로 화면에서 입력받는다면, fin은 연결된 파일로부터 입력받는다.
cout<<endl;
cout<<endl;
- 새싹교실/2011/Pixar . . . . 5 matches
* FiveFs : Facts(사실), Feelings(느낌), Findings(알게된 점), Future Action Plan(앞으로의 계획), Feedback(피드백)
* 위에 후기를 쓰는 이유가 새싹 교실을 더 잘 진행하고, 어떤 것을 배웠는지 돌아보기 위해서라고 써있습니다. 그런데 그냥 막연히 좋았어요. 재미있네요. 라고 쓰면 다음 새싹 교실에도 별로 도움이 안 되고, 배운 내용도 돌아볼 수 없답니다. 그러니 처음에는 조금 어색하더라도 FiveFs를 넣어 후기를 작성해주세요.
* 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 그리고 Feedback은 ''앞으로의 계획''을 지켰는지 체크하는 부분입니다. 이 부분은 일단 적지 마세요~ 새싹 교실에서 설명하겠습니다.
- 새싹교실/2011/씨언어발전 . . . . 5 matches
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
3회차 수업이 예정되어있던 4월 6일 각자 여러가지의 이유로 참여를 못하고 해서 다음 수업부터는 개인 사정 상관없이
강사의 안일한 태도로 2주나 새싹을 못했습니다..
- 새싹교실/2012/아무거나/3회차 . . . . 5 matches
* 함수(function)와 프로시저(procedure)
* 프로시저는 return 이 없는, void function
자릿수들을 나누는 것. 그것들을 더하는 것,함수를 만들어서 쓰는 것, 실행의 결과를 다른 파일로 출력하는 것도 배웠는데 몇 시간 지나니까 또 까먹었다. 헐ㅋ. 난 금붕어인가보다. 운지↓↓
오늘도 for문을 배우는데는 실패했지만! while로도 커버 가능함을 새삼 느낀다. F11 디버깅과 Alt+F8도 배웠는데 나한테 정말 꼭 필요한 것 같았다.
휴학하시면서도 새싹 수업을 하시는 성현이형을 봐서라도 즐겁게 하는 중이다. 크아아아 감동 ㅠㅠ. 이렇게 후기를 막장으로 써도 되는지... 궁금하다. 그래서 일단 저질러본다. 헐ㅋ. (이재형)
- 새싹교실/2012/아우토반/앞반/5.17 . . . . 5 matches
1. 문자열을 인자로 받아 문자열을 거꾸로 저장하는 함수
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
- 새싹교실/2013/라이히스아우토반/4회차 . . . . 5 matches
Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* Internet Explorer를 제외한 다른 브라우저 (Chrome,FireFox, Opera)로 위키에 들어오면 편집하기 쉬워요.
* Can't Save가 떴을 땐 당황하지 말고, 작성한 내용을 클립보드에 보존한 뒤(Ctrl+C) 새로고침을 한 뒤 붙여넣고 저장할 것.
- 새페이지만들기 . . . . 5 matches
'''방법 1'''. 또 다른 방법으로는 위의 Go 에 있는 에디트박스에 새 페이지 이름을 적는다. 해당 페이지가 없으면 새 페이지 편집모드가 된다.
'''방법 2(권장)'''. EditText를 한뒤 편집하는 장소에 {{{[["페이지이름"]]}}} 을 쓴다. 그리고 나서 그 페이지를 보면 해당 페이지이름이 붉은색으로 링크가 걸릴 것이다. 해당 페이지이름을 클릭하면 새 페이지를 편집할 수 있으며, 해당 페이지가 만들어지고 난 뒤부터는 일반링크가 걸린다.
'''방법2''' 의 방식은 일종의 TopDown 방식이 된다. 해당 주제를 Parent로 하여 계속 주제와 연관된 글들을 뻗어나가는 방식이다. 반면 '''방법 1'''전자의 방법은 BottomUp의 방식으로 사용할 수 있다. 새 주제들을 모아서 나중에 페이지분류 & 조정작업을 통해 Parent를 잡을 수 있을 것이다.
개인적으로 Zeropage에서는 후자의 방식('''방법 2''')이 일단은 주제를 흐트러트리지 않는다는 점에서 권장한다. - 강석천
- 서울대컴공대학원구술시험/05전기 . . . . 5 matches
test(T){ if(T=null) then return 0 else return 1+max(test(left_subtree), test(right_subtree)); }
3번 문제 정확하게는 DMA에 대해 설명하고 DMA가 cash에 문제되는 경우와 해결방안, 버츄얼메모리에 문제되는 경우와 해결방안 05.11.02
- 소수구하기/zennith . . . . 5 matches
time_t start, end;
if (i % arr[j] == 0) {
if (flag) {
end = clock();
printf("\n%f\n", (double)(end - start) / CLK_TCK);
- 소수구하기/임인택 . . . . 5 matches
if(i%tmp_arr[j]==0) {
else continue;
if(flag) tmp_arr[cur_arr_index++]=i;
cout << ti/clk << endl;*/
cout << ti/clk << endl;
- 수업평가 . . . . 5 matches
*유용성 : 이 과목의 구체적 지식이 수강/졸업 이후 자신의 삶에서 '''실질적'''/'''직접적'''으로 얼마나 많은 도움이 되었나
||ArtificialIntelligenceClass || 0 || 1 || 2 || -2 || 1 || 1 ||1 ||
||진짜에어로빅(전선혜) || -1 || 1 || -1 || -1 || -2 || 1 ||-2 ||
||에어로빅(스포츠댄스) || 0 || 1 || 2 || 2 || 5 || 1 ||5 ||
||[글로벌CEO] || 4 || 4 || 4 || 4 || 16 || 2 ||8 ||
- 쉽게Rpg게임만들기 . . . . 5 matches
== 세미나 ppt는 제로페이지 홈페이지에 올려놓을께요 ==
* 이렇게 쉬운도구로 게임을 만들수 있다니 정말 재미있는 강의였어요 ^^ 강사님께서 빨리 박위치ㅅㅂ 라는 재미있는 RPG를 만드셔셔
* 예전에 RPG2000으로 노가다로 대사를 만들면서 오그라들었던 기억이 새록 떠오르네요 'ㅁ'ㅋ 훨씬 간단해보이고, 어디서 배웠던 거 같은게(?) 보여 신기했습니다. - [강소현]
* RPG 만들기로 세세한 것 까지 모두 정할 수 있다는 걸 알았고 재밌었음 ㅋㅋ 혼자서 게임만드는건 좀 노가다가 필요하겠지만 몇명이서 같이 만들면 재밌는 게임도 나올듯 ㅋ [박재홍]
- 안윤호의IT인물열전 . . . . 5 matches
[마이크로소프트웨어] 에서 연재중. 단순히 기술적인 부분이 아닌, 컴퓨터 역사 자체를 조명하고 관찰하는, 정말 재미있는 글들이 많다. 마소에서 몇 안되는 정말정말 읽을만한 거리.
[http://www.zdnet.co.kr/programming/technews/article.jsp?id=63523&forum=1 오타쿠와 프로그래머는 닮은꼴?]
[http://www.zdnet.co.kr/biztech/hwsw/biztrend/article.jsp?id=52632 '스톨만의 이의있습니다']
[http://www.zdnet.co.kr/biztech/hwsw/biztrend/article.jsp?id=51851 피터드러커가 말하는 '지식사회']
[http://www.zdnet.co.kr/biztech/hwsw/biztrend/article.jsp?id=51170 데이터스모그와 오버클러킹]
- 압축알고리즘/슬이,진영 . . . . 5 matches
if(input[index]==first){
else {
if(input[index]==input[index+1])
else
cout <<"이제부터 해제합니다."<< endl;
- 여름방학프로젝트 . . . . 5 matches
= 여름방학 프로젝트 =
|| [MFCStudy_2005_1] || [상협] [eternalbleu] || 참가자 없는 관계로 폐쇄 ||
|| [제로Wiki] - 종료 || [상협] || - ||
== 프로젝트 제안 ==
[프로젝트분류]
- 위키개발2006 . . . . 5 matches
* 사이트내 실시간 채팅 매크로 추가. 아래와 같은 매크로 사용시에 실시간 채팅 매크로가 추가 된다. 직접 구현은 안했고, gabbly 거 이용함.
* 가입카페 가기 쉽도록 왼쪽 화면쯤에 스크롤로 선택하는것 있으면 좋을듯.
|| UTF-8로 바꾸기 || 남상협 ||
- 인상깊은영화 . . . . 5 matches
= 가을로 =
장르 : 멜로,애정,로맨스,드라마
교양 수업에서 히키코모리에 대한 발표를 들었는데, 그 때 제목을 들었던 기억이 난다. 로봇과 초등학생 이야기라고 수준을 너무 얕게 보면 곤란하다. 말로는 내버려 두라고 해도 사실은 이해해 줄 사람이 필요할 때가 있다. 판타지를 너무 유치하게 생각지만 않는다면 결말도 괜찮다.
- 자료병합하기/허아영 . . . . 5 matches
아무 구상없이 그냥 생각나는 대로 짰다. 리펙토링이 필요하다.
if(a[turn_a] < b[turn_b]){
}else if(a[turn_a] == b[turn_b]){
}else{
- 장창재 . . . . 5 matches
프로그래밍 자유자재로 구사하는것
제로페이지,넷토리,발짓사랑,학업 모두 열심히 하기.
우리과 사람들이랑 프로그래밍을 통해 친해지고 싶습니다.
* 그건 말할수 없는 비밀 프로젝트였는데.........ㅋㅋㅋㅋㅋ -[장창재]
- 전철에서책읽기 . . . . 5 matches
서서 책을 오래 보다 보니 나중엔 등이 아픈것 같다. 자세를 똑바로 하고 봐야 한다. --[인수]
하루에 편도 한시간반정도 지하철을 타는데. 부족한 잠과 너무 푹신한 쿠션으로 인해 앉으면 바로잔다. -- [이승한]
작년 1월에 지하철을 타며 책읽기를 했는데 한 번쯤 이런 것도 좋을 듯. 나름대로 재미있는 경험. :) Moa:ChangeSituationReading0116 --재동
- 난 버스에서 읽는데 전철에 비해 상대적으로 사람들의 시선을 덜 받는다. - [임인택]
- 정모/2004.3.19 . . . . 5 matches
== 현재 프로젝트 진행상황 ==
* 제로페이지서버 문제로 인해 보류
== 프로젝트 & 스터디 ==
* 서버 문제로 보류
- 정모/2006.1.19 . . . . 5 matches
=== Python 으로 해보는 소켓 ===
* 무조건 클라이언트(파이썬)이 먼저 시작함. (흑)
* 서버로부터 받은 좌표 데이터를 출력
sock.send("여기다가 좌표 데이터를 넣으면 됨")
=== MFC 로 해보는 소켓 ===
- 정모/2006.6.29 . . . . 5 matches
* 데블스 하루 참여자는 정회원 보류로 결정을 하였습니다.
* 정회원 안되신 분은 프로젝트 및 스터디 참여 그리고 회의를 잘 참여 하시면 정회원으로 추후 결정 하기로 했습니다^^
* 프로젝트 & 스터디 : 다이렉트2D,AJAX,알고리즘(간단한),MFC,토익영단어 [2006년활동지도]
- 정모/2006.7.6 . . . . 5 matches
* 프로젝트, 계획서
* MT장소 : 제부도(1만원), 계곡(1만원), 대천(2만원), 춘천, 편도, 가평(1만), 포천(1만) - 포천 또는 가평으로 결정
* 서버업글 : 제로페이지 학회비 10만원, 회원 각자 몇만원씩 기부
* 기짱 : 각학번에 전 제로페이지 회장이 기짱. 06은 미정
* 프로젝트 : 방학중에 진행중인 세미나 발표? 인원 모집
- 정모/2012.10.8 . . . . 5 matches
* 이미지 공 놀이 + 온몸으로 말해요(?)
== 스터디/프로젝트 ==
=== 스터디/프로젝트 제안 ===
* 프로젝트의 경우 신청서 양식을 만들어 드릴테니(...) 신청하시면 판단해서 장학금을 지금할 계획입니다.
- 정모/2013.2.19 . . . . 5 matches
* 별일 없을시에 예정대로.
* 새싹교실에 교습할 내용은 c언어를 중심으로 하되, 다른분야는 강사의 재량에 맞게 추가하는 방식으로 진행할 예정.
* 사람 수가 적은 관계로 다음주 정모에 더 구체적인 사안 논의 할 예정.
=== 스터디/프로젝트 공유 ===
- 정모/2013.9.25 . . . . 5 matches
* ZeroPage에서 총 15만원을 지원하기로 하였습니다.
* 앞으로 Facebook에 매주 정모공지를 진행합니다. 제로페이지 그룹에 가입되어 있으면 소식 전달받기가 쉽습니다.
* 인원 배치가 확정되는 대로 공지하겠습니다.
* 앞으로 정모 공지는 월요일 저녁에 할 예정입니다.
- 조재화 . . . . 5 matches
* 이메일 : dadaback엣hanmail닷net (DeleteMe 이메일주소를 그대로 적어두시면 로봇들이 긁어간답니다.. - [임인택] )
* 03. 한해동안 C++MFC와 PYTHON그리고 JAVA를 좀 잘 이해해서 컴퓨터 프로그램이나 겜을 많이 만들고 싶당.
* 앞으로 프로그래밍을 열심히 하쨩~!
- 주민등록번호확인하기/정수민 . . . . 5 matches
if (k==a[12]) printf("대한민국 국민이네요~ ^^ 안녕하세요!");
else if (k==10) {if (a[12]==0) printf("대한민국 국민이네요~ ^^ 안녕하세요!");}
else printf("혹시 간첩???? -_-;;");
- 중위수구하기/김태훈zyint . . . . 5 matches
배열 소트 기능이 있어서 php로 해봤다;;
if($_POST['mode'] == 'action')
if($_POST['a']==-999) return 0;
$value = array($_POST['a'], $_POST['b'], $_POST['c']); //입력받은 세값을 배열로 지정
씨랑 잘 보면 비슷해 +ㅁ+ switch 나 while, if, for 다 똑같어 -태훈
- 지금그때2005/리허설 . . . . 5 matches
지금그때 행사는 03년도 부터 시작 되었고 열광적인 반응으로 현재까지 이어지고 있습니다.
기록되지 않은것은 기억되지 않는다 라는 말이 있습니다. 이곳에서 남은 소중한 경험들은 그 자료집에 담아가셔서 자신의 것으로 남기시기 바랍니다.
지금그때는 앞시간과 뒷시간 두가지로 이루어져 있습니다.
이번에는 조금 바꾸어 누구나 질문을 등록 할수 있고, 모든 사람들은 자유롭게 대답할수 있는 질문릴레이 시간을 준비하였습니다. 꺼려하시지 마시고 언제든 앞에 나오셔서 질문을 등록하시고 누구나 적극적으로 대답해 주시기 바랍니다.
앞에는 저희가 생각한 이번시간에는 최소한 이런 이야기는 꼭 나왔으면 한다는 이야기들을 적어 놓았습니다. 그 이외에 또 질문하고 싶으신 내용이 있으시다면 언제든 나오셔서 질문을 등록하실수 있습니다. 대답에 집중하는 사이에 어느순간 질문을 까먹어 버리는 경우도 많으니까요.
- 지금그때2005/후기 . . . . 5 matches
* 처음에는 이게 뭐하는 행사인가 했고, 좀 뻘쭘하지 않을까 했다. 그런데 오늘 이 행사에 참여 해보니깐 상당히 큰 충격을 받았다. 이렇게 자리를 어떤식으로 만드느냐에 따라서 이렇게 훌륭한 토론, 토의, 경험 공유가 가능하구나 하는것을 느꼈다. 이 행사를 통해서 다른 사람들의 경험, 조언, 좋은 얘기를 많이 들어서 너무 좋았다. 정말 좋은 행사라고 생각했다. 그리고 이런 행사를 준비하기 위해서 수많은 회의, 토론을 한 03,04 제로페이지 후배들이 자랑스럽게 느껴졌다. 이런 '지금그때' 행사같은 분위기는 처음 느끼는데, 정말 신선하고 좋은 경험이었다. - [상협]
* 다른 생각을 가진 사람들의 얘길 듣는 건 참 재밌는 일 중 하나인 것 같습니다. 05학번 새내기들을 비롯해 04, 03들은 만날 자리를 갖기가 힘들었는데 새로운 만남을 갖게 되어 좋았습니다. 내년에는 보다 더 발전한 '''지금그때''' 가 될 수 있길 바랍니다. - [jeppy]
* 많은것을 준비하였고 많은 기대도 했었던 지금그때 2005. 작년에 참가하지 못했던 아쉬움을 달래기위하여 올해에는 준비도우미도 하였습니다. 나름대로 열심히 하였는데 행사의 주체가 되어주었으면 하였던 05학번이 많이 오지 못한것이 조금 아쉬웠을뿐. 행사 내용에는 큰 만족을 하였습니다. 저희가 준비하면서 어떤 자리가 되었으면 했던것이 잘 반영된것 같았고 이런 행사가 있을수 있다는것에 대학에 와서 또하나의 기쁨을 얻은것 같습니다. 고학번과 저학번이 이렇게 어울릴수 있는자리가 술자리 외에는 거의 힘든것이 사실인데 이렇게 잘 어울릴수있다는것에도 신선한 충격을 받았고요 앞으로도 쭉 계속 이어나가길 바랍니다. - [조동영]
- 지금그때2006/세부사항 . . . . 5 matches
목적 책을 소개 받고 그책을 기증 받아서 후배들이 그책을 읽고 많은 생각을 더 할수있게 하고 선배님은 자기에 책을 소개함 으로써 후배들에게 좋은것을 알려준다.
참여율이 적어도 선배님들께서 좋은 것을 알려 주실려고 하는 것 이기때문에 무조건 받는다.
* 질문이 생길경우
주제 - 이전의 주제를 그대로 사용하되, 필요한 것은 추가한다.
3. 이전과 같은 방식으로 진행한다.
- 지금그때2006/홍보 . . . . 5 matches
학번교차로 올린다.
[나휘동]이 독단으로 올리긴 했으나 미정이었다는 사실은 왜 아무도 몰랐는가?
Upload:NowThen2006ContactList.xls
-저는 정희록 선배님 빼고는 다 성공적으로 메일을 보냈습니다. --아영
연락 일정 금요일 이메일로 1차 연락.
선배님의 의미를 굳이 우리과로 제한하지 않으려 했어요. 목록을 만들다 보니 거의 우리과 출신이긴 하네요. 인택이형도 아는 분들께 많이 알려주세요~ -- [나휘동]
- 책분류Template . . . . 5 matches
[노스모크]에서는 ISBN 링크가 되는 책소개의 경우 링크를 상단에, 서평을 하단에 적는것을 원칙으로 한다.
* B) * 5 : [나를만든책]이다. 탁월하다. 이미 고전이거나, 혹은 앞으로 고전이 될 것이다.
* B) * 3 : 전체적으로 그다지 훌륭하진 않았지만 나름대로 뭔가를 얻을 수 있었다.
- 최소정수의합/임인택2 . . . . 5 matches
로 정의했다가 이전에 작성했던데로 gauss 의 방법을 이용하여,
로 바꾸었더니 type error가 났다. 이유인즉,
에서 rnd의 타입이 Integer로 되었는데 Integer는 다른 값으로 나눠지지 않았다(내가 방법을 모르고 있을수도 있겠지만). haskell wiki를 뒤져 toRational 이라는 함수를 찾았지만 출력되는 모양이 영 마음에 들지 않는다.
- 컴퓨터고전스터디 . . . . 5 matches
요즘 전산학과 대학생들이 모여서 리눅스 해킹법이니, MFC API니 하는 걸 같이 스터디하는 것도 나름대로 의미가 있겠지만 컴퓨터계의 고전 하나를 제대로 스터디하는 것은 어떨까 합니다. ''군자무본 본립이도생. 군자는 근본에 힘을 쓰니, 근본이 서야 길이 생기기 때문이다.''라는 말이 논어에 나오죠. 나이가 아직 어리고, 시간적 여유가 있는 때에는 어떤 구체적인 "기술"보다 좀더 일반적이고 보편적이며 이론적인 사유를 훈련하는 것이 좋지 않을까요. 구체적 기술은 거기에 갖혀버리는(Lock-In) 경향이 있습니다. 2-3년 뒤에는 쓸모없어진다든가 하는 것이죠. 하지만 고전은 대부분 앞으로도 10년은 족히 유효한 것들입니다. 꾸준히 재해석될 가능성이 있는 것들이고, 무엇보다 문제의식과 함께 치밀한 사유를 배우는 겁니다. 생각하는 법 말이죠.
* 2002년 MentorOfArts 위키에서 MythicalManMonth 로 Moa:컴퓨터고전스터디 그룹이 ZeroPagers 와 진행
* 2004년 여름방학 현재 TheArtOfComputerProgramming으로 진행
- 코드레이스/2007.03.24정현영동원희 . . . . 5 matches
if(adjustedTime < firstTime)
else if (adjustedTime<firstTime+secondTime)
else return color3;
if(getColorWithDate(time).equals("Red")) {
- 큰수찾아저장하기/조현태 . . . . 5 matches
if (number[i][j]>number[i][MAX_GARO-1])
if (number[i][j]>number[MAX_SAERO-1][j])
if (number[i][j]>number[MAX_SAERO-1][MAX_GARO-1])
난 나름대로 '''기초'''에는 충실한 여러가지를 접하게 하려고 노력했는데, ㅎㅎ
고로 쉬운것도 다시 한번 보는 센쓰~~ !! ^^ 좀만 기달리시게!~ ㅋ-[허아영]
- 토이/메일주소셀렉터/김정현 . . . . 5 matches
파일로부터 입력을 받아 가공하여 다시 파일에 저장
if(args.length==0)
else input = args[0];
if(splitedStrings.length == 2 && splitedStrings[1].equals("txt")) {
if(shouldInsertSpace) {
- 토이/숫자뒤집기/임영동 . . . . 5 matches
* 입력받은 문자열을 숫자로 변환한 뒤 10으로 나눠주면서 그 나머지를 String에 붙여버린다. 그 후 출력.
{//입력받은 숫자를 10으로 나눈 나머지를 문자열에 계속 붙여준다
}//10으로 나눠서 한자리 한자리 이동한다. 0보다 클 때만 계속 실행
return returnNumber;//문자열을 정수형으로 바꿔 리턴
- 파스칼삼각형/곽세환 . . . . 5 matches
cout << f(c, r) << endl;
if (a > b)
else if (a == 1 || a == b + 1)
else
- 피보나치/민강근 . . . . 5 matches
if (a==1)
else if (a==2)
else
cout<<pi(y) << endl;
- 02_C++세미나/0523 . . . . 4 matches
'''실습을 하면서 만들어낼 과제들, 다 못하면 숙제로 컨버젼!'''
* 음..--; 생각해보니 C++로 만든것이라서..-.-; 02들이 이해를 못할거 같다는 상규의 지적으로 걍 지웠습니다.
* 지울것 까지야.....ㅡ.ㅡ; 새로 만들어 올리면 됬을것을...ㅋㅋ
- 05학번만의C++Study/숙제제출4/조현태 . . . . 4 matches
if (0==intinput)
if (intinput==makedClass[i]->GetNumber())
if (-1==suchNumber)
else
- 06 SVN . . . . 4 matches
8. 해당 컴퓨터에서 방금 커밋한 프로젝트 체크 아웃 받기
9. 해당 프로젝트 파일 수정
10. 다시 자리 원래대로. 그후 파일 업데이트 받기.
-> 서버에 코드 업로드
- 2002년도ACM문제샘플풀이/문제B . . . . 4 matches
* STL 사용하면 쉽게 풀 수 있다는 걸 알고 있었지만 일부러 STL을 사용하지 않았습니다. 알고리즘적으로 머리를 쓰는 걸 훈련하기 위해...^^
cout << outputData[i] << endl;
if(str == given)
next_permutation(str.begin(), str.end());
- 2004여름방학MT . . . . 4 matches
* 그렇군 엠티도 제페 회비로 가는 건가?? 근데 어디루가지? -- 민수
* 헉; 내일이네? -_-;; 알바땜에 힘들듯 한데; 제로 모임은 늘 뭔가랑 겹친다ㅠㅠ --진하
* 블리자드와 샤크의 횡포로 인해 껄껄껄 --[김홍선]
* 나도 제로 모임은 늘 뭔가랑 겹친다...ㅡㅡ 나도 엠티는 밥벌이때문에... --기남
- 2005리눅스프로젝트 . . . . 4 matches
= 2005리눅스 프로젝트 =
* 리눅스에 서버관리 및 웹 프로그래밍
[(zeropage)2005리눅스프로젝트<설치>]
* 교재 : 리눅스는 책으로 하는것보다는 인터넷에서 자료를 찾아서 하는게 더 나을듯 합니다.
- 2010Python . . . . 4 matches
* 각자 원하는 매체로 공부해 온 뒤 5분 정도씩 자기가 공부한 내용을 발표하고 서로 토론.
* [박정근] - python의 특이한 배열? keyindex를 지정가능하고 순서대로 출력도 가능함. 그리고 python은 지정하는것이 특기인 듯
* Python을 도구로 CS를 공부하기 좋은 자료. 24시간 분량의 동영상 강의와 교재가 제공된다.
- 2학기파이선스터디/모듈 . . . . 4 matches
* 파이썬 프로그램 파일 혹은 C 확장 파일
* 프로그램(함수, 클래스... )과 데이터를 정의
* 모든것이 모듈단위로 분리되어 있다.
mymath.py 라는 파일로 저장한다..
- 5인용C++스터디/스택 . . . . 4 matches
|| 이름 || 다운로드 || 평가 ||
|| 노수민 || Upload:Stack_SM.cpp || 오버플로우에 대한 처리가 있으면 더 좋겠음. ||
|| 조재화 || Upload:Stack-Mr.CHO.cpp|| 역시 오버플로우에 대한 처리가 있으면 더 좋겠음. ||
|| 황재선 || Upload:Stack_JS.cpp|| 잘 했음.. exit로 끝내는것 빼고.. ||
- AI세미나 . . . . 4 matches
Artificial Intelligence (인공지능)에 대한 세미나.
세미나 시간은 2시간으로 컴퓨터 공학과 저학년도 들을 수 있을 정도로 쉽습니다. 그리고 간단한 실습도 있습니다.
http://www.red3d.com/cwr/boids/ - 불과 몇 가지 규칙으로 진짜 새처럼 보이게 한다.
- AVG-GCC . . . . 4 matches
--target-help Display target specific command line options[[BR]]
-b <machine> Run gcc for target <machine>, if installed[[BR]]
-V <version> Run gcc version number <version>, if installed[[BR]]
-x <language> Specify the language of the following input files[[BR]]
- Ajax2006Summer/프로그램설치 . . . . 4 matches
1. Eclipse를 다운로드 받습니다.
4. 다음 다이얼로그에서는 '''Search for new features to install''' 을 선택 후 '''Next>'''를 클릭합니다.
9. '''Finish''' 를 선택합시다. 그러면 알아서 다운로드를 합니다.
10. 다운로드가 끝나면 중간에 설치할 것이냐고 물어보는데 '''Install All'''을 선택해 줍시다.
- AncientCipher/강소현 . . . . 4 matches
if(compare(c,p))
else
if(!find(cSpread,pSpread[i],check))
if(!check[i] && cSpread[i] == pWord){
- ArsDigitaUniversity . . . . 4 matches
학부생 수준의 전산 전공을 일년만에 마칠 수 있을까. 그런 대학이 있다(비록 지금은 펀드 문제로 중단했지만). 인터넷계의 스타 필립 그리스펀과 그의 동료 MIT 교수들이 만든 학교 ArsDigitaUniversity다. (고로, Scheme과 함께 NoSmok:StructureAndInterpretationOfComputerPrograms 를 가르친다)
자신의 전산학 지식을 전체적으로 정리하거나, 밑바닥부터 새로 공부하고 싶은 사람들에게 많은 참고가 된다 -- 모든 수업이 한 달이면 끝난다. ArsDigitaUniversity의 "하면서 배우는"(learn by doing) 교육 모델(날마다 구체적인 Problem Set이 주어지고 오전에 수업이 끝나면 오후에 Recitation을 하며, 매 주 NoSmok:교육적인시험 을 친다)도 흥미롭다. 모든 수업에 대해 VOD와 문제, 해답, 수업 노트가 제공된다.
- AwtVSSwing/영동 . . . . 4 matches
* Heavy-weight Componet : 컴포넌트를 운영체제의 GUI와 연결시키므로 운영체제에 따라 다른 모양과 배치가 나타난다.
* 장점: 컴포넌트를 추상화함으로 각 운영체제에서 구현하는 것이 편하다.
* AWT는 사용하긴 쉽지만 한계가 있다. 롤오버 이미지를 사용하는 등 실제로 많이 쓰는 기능을 AWT로 구현하기 어려우며, 운영체제마다 버그가 생기기 때문에 사용하기 불편하다. Swing은 Top-Level의 컨테이너만을 운영체제의 자원을 사용할 뿐 그 하부에 있는 모든 것은 자바 코드에 의해 만드는 방식을 가진다. 발생하는 버그도 자바 가상머신의 범위 내에서 처리가 가능하다. 게다가 컴포넌트의 모양도 사용자의 입맛에 맞게 맞춰주는 것이 가능하다.
- Bigtable/분석및설계 . . . . 4 matches
* sw maestro 1단계 1차 프로젝트
* 지금까지 한 것들 그림등으로 정리해서 보여주기
* 프로그래밍에 가깝게. 자료구조와 알고리즘등이 나옴.
1. 커밋로그는 circular 모델?
- BusSimulation/영창 . . . . 4 matches
* 각 역마다 사람이 증가하는 값을 다르게 정해야함. (시시각각에 다르게 적용되어야 하기 때문에 적당한 범위 안에서 랜덤으로 처리해야한다.)
타야하는 버스는 마찬가지로 랜덤으로 할당해야한다.
왜 OOP적 접근법이 필요한지 약간 감이 잡힌다고 해야할까? 이런 현실의 내용을 simulation 하기에는 structured programming의 접근법으로는 참 다루기가 힘든점들이 많을 것 같다. - [eternalbleu]
- Button/상욱 . . . . 4 matches
public class Test extends JFrame implements ActionListener
if (ae.getSource() == button1) {
else if (ae.getSource() == button2) {
- Button/영동 . . . . 4 matches
public class JOptionPaneTest extends JFrame implements ActionListener {
if (ae.getSource() == 버튼1) {
} else if (ae.getSource() == 버튼2) {
- C++Analysis . . . . 4 matches
* 첫번째 모임 : 목요일 오후 5 (2시에서 5시로 변경합니다.)
* 기말고사 전이니 모여서 토론하는 식으로 진행하면 좋을듯 -_-a 다들 바쁘잖아요
* 결국은 방학 때로 미뤄지는구나........ㅠ,.ㅠ
["프로젝트분류"], ["SecretAndTrueOfC++"]
- CProgramming . . . . 4 matches
[http://www.cs.cf.ac.uk/Dave/C/ Cardiff University CourseWare]
[http://www.zikimi.co.kr/new_zikimi/z002/002_01.htm?code=37 프로그래머 열린 공간 지킴이]
만들어진지 오래되어 조금 구질 구질하기도 하지만 좋은 내용인 Upload:zeropage:CampusC.zip 공개강좌로 위의 것보단 짧다.
조건
- CanvasBreaker . . . . 4 matches
* 2002학년도 2학기 ObjectProgramming 3번째 프로젝트
* 이미지 프로세싱 프로그램
첫 회의를 하였다. 간단하게 팀 이름과 관련된 이야기를 하였고 앞으로의 일정에 대해서 이야기 하였다.
- CarmichaelNumbers . . . . 4 matches
페르마 테스트와 같이 빠른 속도로 매우 정확하게 소수 여부를 판단할 수 있는 확률적 소수 테스트 방법이라는 것이 있다. 소수 여부를 판단해야 할 정수 n이 주어졌을 때 a는 2이상 n-1이하의 난수라고 하자. 그러면 다음과 같은 식이 성립하면 n은 소수일 가능성이 있다.
주어진 정수가 카마이클 수인지 테스트하기 위한 프로그램을 만들어라.
입력은 여러 줄로 구성되며 각 줄에는 작은 양의 정수 n(2<n<65,000)이 입력된다. n=0은 입력의 끝을 나타내며, 그 줄은 처리하지 않는다.
입력된 각 수에 대해 아래에 있는 출력 예에 나와있는 식으로 그 수가 카마이클 수인지 아닌지를 판단한 결과를 출력하라.
- CategoryCategory . . . . 4 matches
또한 각각의 분류는 그 분류의 최상위 분류인 Category''''''Category를 가리키는 링크를 가지게 함으로서, 모든 분류페이지를 최종 역링크를 Category''''''Category가 되게 할 수도 있습니다.
OriginalWiki와 일관적으로 만드려면 모든 분류는 "Category"로 시작하도록 지정해야 합니다. 물론 다른 방식으로 이름을 붙여도 문제되지 않습니다.
- CeeThreadProgramming . . . . 4 matches
_endthreadex( 0 );
// Wait until second thread terminates. If you comment out the line
VS.NET에서도 함수이름을 인식하지 못하는 경우 프로젝트 세팅에서 MFC라이브러리를 사용하도록 해보세요.
/* Create independent threads each of which will execute function */
- Chopsticks/문보창 . . . . 4 matches
{{| min<sub>i+2<=k</sub>{ D[a-1][k] } |}}은 앞의 계산 결과를 이용하여 O(1) 시간만에 계산 할 수 있고, a 는 K + 8 번 있으므로 O(kn) 복잡도가 걸린다.
if (min > d[k][i])
if (min > d[!(seti&0x1)][i+2])
cout << findMin((nPerson + 8)&0x1, 2, nStick - 3 * nPerson - 22) << endl;
- Class로 계산기 짜기 . . . . 4 matches
cout << "입력이 잘못되었습니다." << endl;
void output(Memory * memory) { cout << memory->getResultNumber() << endl;}
* 그냥 보여주기 위한 코드에요. 결코 올바른 프로그래밍은 아니라는거 명심하세요^^; - [상욱]
MFCStudy2006/Class로 계산기 짜기 <- 이런 이름이 더 좋을듯 싶네요^^ - 아영
- ClipMacro . . . . 4 matches
새로운 자바 애플릿 플러그인입니다. 테스트해보세요. -- 211.106.173.4 [[Date(2005-03-09T17:15:41)]]
익스플로러 XP프로 SP2에서 잘 되는군요. print screen키를 누르신다음에 paste해보세요 -- Anonymous [[DateTime(2005-03-31T16:55:09)]]
[[Clip(imcliff2)]]
- CommentMacro . . . . 4 matches
만약 모든 페이지에 Comment 매크로를 붙이기를 원한다면 config.php에 다음을 추가해주세요.
/!\ Comment 매크로 이외에 자신이 만든 매크로가 맨 하단에 들어가도록 위의 방법을 쓰실 수 있습니다. 위의 방법으로 [[FootNoteMacro]]와 [[CommentMacro]]를 넣은 예입니다.
- CommonPermutation . . . . 4 matches
입력 파일에는 여러 개의 케이스가 들어갈 수 있으며 각 케이스는 두 개의 연속된 줄로 구성된다. 즉 첫번째 줄과 두번째 줄이 한 테스트 케이스를 이루며 세번째 줄과 네번째 줄이 또 다른 테스트 케이스를 이루는 식이다. 각 행에는 소문자로 이루어진 문자열이 하나씩 들어있으며 한 테스트 케이스를 이루는 문자열 중 첫번째 것을 a, 두번째 것을 b라고 하자. 각 문자열의 최대 길이는 1,000글자다.
입력된 각 테스트 케이스마다 한 줄씩 x를 출력한다. 위의 조건을 만족하는 x가 여러 개 있으면 알파벳 순으로 맨 앞에 있는 것을 출력한다.
- ComputerNetworkClass/Exam2006_1 . . . . 4 matches
1. 프로토콜 스택
CIDR이 인터넷의 Scalability 를 어떤 식으로 해결하는지 기술하시오.
MaxSendBuffer, MaxRcvdBuffer 위치 그리기
TCP 수신측 버퍼 오버시 TCP 프로토콜의 처리과정 및 Probing 을 이용한 에러제어
- ConstructorParameterMethod . . . . 4 matches
Constructor Method로 인스턴스를 만들때, 그리로 넘겨준 파라메터들을 새롭게 만들어진 인스턴스로 어떻게 갖고 오는가? 가장 유연한 방법은 각각의 변수에 대해 setter들을 만들어 주는 것이다. 즉,
이렇게 되는것이다. 하지만 변수가 많아질수록 setter들은 계속 늘어난다. 이럴때에는 모든 변수를 한번에 set해주는 하나의 메소드를 만든다. 그리고 접두사를 set으로 명명해주고 변수의 이름을 딸려준다.
- ConvertAppIntoApplet/영동 . . . . 4 matches
public class AppletTest extends JApplet implements ActionListener {
if (ae.getSource() == 버튼1) {
} else if (ae.getSource() == 버튼2) {
- Counting/황재선 . . . . 4 matches
* 동적 프로그래밍 기법을 사용.
if (i > 1 && input - i == 0) {
if (line == null || line.equals("")) {
public class TestCounting extends TestCase {
- DPSCChapter5 . . . . 4 matches
'''Chain of Responsibility(225)''' Avoid coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. Chain the receiving objects, and pass the request along the chain until an object handles it.
'''Command(245)''' Encapsulate a request or operation as an object, thereby letting you parameterize clients with different operations, queue or log requests, and support undoable operations.
'''Command(245)''' 는 요청(request)이나 명령(operation)을 object로서 캡슐화시킨다. 그러함으로써 각각 다른 명령을 가진 클라이언트들을 파라미터화 시키고, 요청들을 queue에 쌓거나 정렬하며, 취소가능한형태의 명령들을 지원한다.
- DesignPattern2006 . . . . 4 matches
* 와... 엄청 빡세네...그냥 쉬운걸로 먼저 넘어갈까? - [상욱]
[http://kangcom.com/l_pic/200209240010.gif]
* Java 언어로 배우는 디자인 패턴 입문
* 파워풀한 프로그래밍을 위한다면(과연...그럴까^^;;) 참여자에 이름을 남기세요 - [상욱]
- Doublet . . . . 4 matches
아래는 HEAD에서 TAIL에 이르는 과정으로, doublet이란 퍼즐은 이렇게 각 단어의 글자 하나씩을 바꿔 차례로 단어를 만들어 원하는 결과에 도달하는 것입니다.
물론 단계가 적을수록 더 좋은 것으로 칩니다. 이런 거 영어 수업 시간에 써 먹어도 좋겠죠?
재미있는 내용들이 많습니다. 그 곳에 가면 어떤 할아버지(?)가 눈을 치켜뜨고 쳐다보시는데, "너 왜 지금 공부 안하고 있는거지" 하고 호통치시는것 같아 뜨끔하더군요. 그분이 그동안 말로만 들었던 누쓰(Knuth) 이네요. --이선우
- DrawMacro . . . . 4 matches
gif 그림을 그릴 수 있게 해주는 애플릿
{{{applets/TWikiDrawPlugin/}}}로 가서 {{{gmake}}} 혹은 {{{make}}} 명령을 하여 설치한다.
윈도우즈의 경우는 다음의 파일을 받아서 직접 압축을 풀어준다. {{{applets/TWikiDrawPlugin/}}}twikidraw.jar 및 *gif 파일이 있게끔 해야 한다.
- Eclipse/PluginUrls . . . . 4 matches
* 가끔 동기화가 안되는 경우가 생기기도 한다.
* 위와 같은 에러 메시지가 뜬다면 Windows -> preference -> Team -> SVN 에서 SVN interface 를 JavaSVN -> JavaHL 로 변경해야 함
* Memory 사용정보를 보여주고 ["GarbageCollection"]을 사용가능하게 해 주는 Plugin, 시간을 설정해두면 주기적으로 알아서 GC를 해줌.
* [http://yg0772.egloos.com/1032362 CDT까는법_다른블로그]
- EightQueenProblem/용쟁호투SQL . . . . 4 matches
Powerbuilder로 해본김에 늘 같이 작업하던 MS-SQL로 해보았습니다.
IF EXISTS(SELECT name FROM sysobjects WHERE name = N'temp_queen_attack' AND type = 'U') DROP TABLE temp_queen_attack
IF EXISTS (SELECT name FROM sysobjects WHERE name = N'p_temp_reset' AND type = 'P') DROP PROCEDURE p_temp_reset
IF EXISTS (SELECT name FROM sysobjects WHERE name = N'p_check_attack' AND type = 'P') DROP PROCEDURE p_check_attack
SELECT @attack_check = (CASE @x WHEN 1 THEN x1 WHEN 2 THEN x2 WHEN 3 THEN x3 WHEN 4 THEN x4 WHEN 5 THEN x5 WHEN 6 THEN x6 WHEN 7 THEN x7 WHEN 8 THEN x8 END)
IF @attack_check = 1 RETURN 1
IF @x = 1 UPDATE temp_queen_attack SET x1 = 1
IF @x = 2 UPDATE temp_queen_attack SET x2 = 1
IF @x = 3 UPDATE temp_queen_attack SET x3 = 1
IF @x = 4 UPDATE temp_queen_attack SET x4 = 1
IF @x = 5 UPDATE temp_queen_attack SET x5 = 1
IF @x = 6 UPDATE temp_queen_attack SET x6 = 1
IF @x = 7 UPDATE temp_queen_attack SET x7 = 1
IF @x = 8 UPDATE temp_queen_attack SET x8 = 1
--@x,@y에서 @x+n,@y+n방향으로 공격루트셋팅
IF @local_x > @local_y
END
IF @local_x < @local_y
END
IF @local_x = @local_y
- EuclidProblem . . . . 4 matches
한 줄에 두 개씩의 수가 입력되며 두 수는 각각 A와 B다. A와 B는 스페이스로 구분된다. (A, B < 1,000,000,001).
입력된 각 줄에 대해 각각 스페이스로 구분된 세 개의 정수 X와 Y 그리고 D를 출력한다. 식을 만족하는 X와 Y가 여러 개 있으면, (첫째로) |X| + |Y|가 최소가 되고 (둘째로) X <= Y 인 값을 출력한다.
- EuclidProblem/문보창 . . . . 4 matches
예전에 정수론 책에서 본 유클리드 알고리즘의 응용문제이다. AX + BY = GCD 에서 gcd와 x, y 구하는 법을 [문보창]페이지에 원래 가지고 있었기 때문에 단순한 copy&paste로 문제를 풀 수 있었다.
cout << x << " " << y << " " << g << endl;
if (p < q) return (gcd(q, p, y, x));
if (q == 0)
- ExplicitInitialization . . . . 4 matches
인스턴스 변수들을 어떻게 디폴트값으로 초기화시켜주는가?
모든 변수들을 명시적으로 설정해주는 initialize메소드를 구현하라. new메세지를 오버라이딩해서 새로운 인스턴스에 맞게 하라.
period = defaultMillisecondPeriod(); // C++/JAVA에서는 그냥 상수로 써도 될듯하다.
- Factorial2 . . . . 4 matches
Factorial of Number A 란 A! 식으로 표현하며, A 의 계승이라는 표현을 씁니다.
A! = A * (A-1)! 식으로 정의되며, 1! = 1 입니다.
임의의 수 A 에 대한 Factorial 을 구하는 프로그램을 작성하시오. (A 는 20이상이 될 수 있습니다.)
Hint. 기본자료형으로는 택도 없습니다.
- FactorialFactors/1002 . . . . 4 matches
if value != None: return value+start
if n % e ==0:
* 혹시나 해서 C++ 로 코드를 바꿔봤는데 (코드 옮기는데 5분) 100만 구하는데는 12초 정도 소요.
결국은 Python 에서 5초 내를 밟는 알고리즘을 만들어야 C++ 로 1초 이내의 속도가 나올 것이다.
- Freemarker . . . . 4 matches
프리마커는 자바 서블릿을 위한 오픈소스 HTML 템플릿 엔진이다. 프리마커에서는 HTML을 템플릿으로 저장하는데 이들은 결국 템플릿 객체로 컴파일 된다. 이 템플릿 객체들은 서블리셍서 제공하는 데이터들을 이용하여 HTML을 동적으로 생성한다. 프리마커 객체들은 서블릿에서 제공하는 데이터들을 이용하여 HTML을 동적으로 생성한다. 프리마커는 고유의 템플릿 언어를 사용하고, 정적인 HTML페이지에 근접한 속도를 자랑한다. ..하략
- FundamentalDesignPattern . . . . 4 matches
DesignPatterns 의 패턴들에 비해 구현이 간단하면서도 필수적인 패턴. 전체적으로 가장 기본이 되는 소형 패턴들. 다른 패턴들과 같이 이용된다. ["Refactoring"] 을 하면서 어느정도 유도되는 것들도 있겠다. (Delegation의 경우는 사람들이 정식명칭을 모르더라도 이미 쓰고 있을 것이다. Java 에서의 InterfacePattern 도 마찬가지.)
기본적인 것으로는 Delegation, DoubleDispatch 가 있으며 (SmalltalkBestPracticePattern에서 언급되었던 것 같은데.. 추후 조사), 'Patterns In Java' 라는 책에서는 Delegation 과 Interface, Immutable, MarkerInterface, Proxy 를 든다. (Proxy 는 DesignPatterns 에 있기도 하다.)
근데, 지금 보면 저건 Patterns in Java 의 관점인 것 같고.. 그렇게 '필수적 패턴' 이란 느낌이 안든다. (Proxy 패턴이 과연 필수개념일까. RPC 구현 원리를 이해한다던지 등등이라면 몰라도.) Patterns in Java 에 있는건 빼버리는 것이 좋을 것 같다는 생각. (DoubleDispatch 는 잘 안이용해서 모르겠고 언어 독립적으로 생각해볼때는 일단은 Delegation 정도만?) --["1002"]
- Gnucleus . . . . 4 matches
그누텔라 프로토콜에 기반을둔 윈도우용 프로그램. 다른 그누텔라 구현물과 비교하여 특별한 기능상의 장점은 없지만...
윈도우 네트워크 프로그래밍을 하는 사람이라면 한번쯤 소스를 통해서 윈도우의 메시지 드리븐을 최대한 이용한
소켓 프로그래밍의 정화를 볼 수 잇다.
- GuiTesting . . . . 4 matches
GuiTesting 을 하는 이유는 여러가지가 있을 수 있다. GUI Programming 에 대한 TestFirstProgramming 에 대한 시도를 할 수 있기 때문이다. 해당 UI Control을 하나하나 만드는 일부터 시작할 수 있다. 하지만, 보통의 경우 UI Control을 만드는 일들은 IDE 툴들에서 하는 것이 더 편하다. GuiTesting 은 해당 이벤트 발생시에 따른 처리과정에 대한 TestFirstProgramming 을 시도하려고 할 때 도움을 줄 것이다.
대부분의 경우는 TFP를 하는중에 logic 부분과 UI 부분을 분리함으로서 GuiTesting 을 복잡하게 하는 요소들을 줄일 수 있다. 그러면서 Model - View - Controler 의 형태가 유도되어질 것이다.
MVC 는 View 단을 테스트하기에 적합하지 않은 면이 있다. 그래서 ModelViewPresenter 로 해보니 좋았다. --NeoCoin
- Hacking/20041028두번째모임 . . . . 4 matches
* vmware 다운로드
* 데비안 다운로드
-sS : 스텔스 스캔(완전한 접속이 이루어지지 않은 상태로 스캔)
전에 윈도우 상에 리눅스 커널을 올려 쓰는걸 본적이 있는데 프로젝트 이름을 까먹었네요. 이걸 쓰면 리눅스 깔 필요는 없을듯.. (해보는것도 좋지만) - [임인택]
- HanoiTowerTroublesAgain!/조현태 . . . . 4 matches
if (sqrtNumber == (double)(int)sqrtNumber)
if (IsCanPut(lastBallNumbers[i], ballCount + 1) || 0 == lastBallNumbers[i])
if (FALSE == isPut)
cout << GetMaxBallNumber(stickNumber) << endl;
- HardcoreCppStudy/첫숙제/ValueVsReference/김아영 . . . . 4 matches
- 인수로 사용되는 수식이 평가된다.
- 변수 자체의 값을 전달하는 것이 아니라 인수로 사용되는 변수에 대한 포인터를 전달하는 것이다.
- 함수내에서 인수로 사용되는 변수의 값을 변경할 수 있다. (특정 상황에 따라)
- 인수를 전달할 때에는 함수에 전달되는 인수가 포인터라는 사실이 함수 정의와 프로토타입에 반영되어야 한다.
- HardcoreCppStudy/첫숙제/ValueVsReference/임민수 . . . . 4 matches
c++ 프로그래밍에선 사용자 함수를 많이 쓰게 되는데,
변수 선언시에 전체 선언이 아니라 함수안에서 지역선언으로 하게되면
대신 그 변수들의 값은 전달인자로 사용할수 있습니다만, 그것들을 사용하여 계산 결과를 리턴하는데
참조전달에 의한 함수를 사용하였을경우 변수 자체의 값이 바뀌기 때문에 위와 같은 결과가 나옵니다.
- Hartals . . . . 4 matches
방글라데시의 정당들은 자신의 세를 과시하기 위해 정기적인 동맹 휴업(파업)을 추진하는데, 이 동맹 휴업은 경제에 상당한 피해를 끼칠 수 있다. 이 문제에서는 각 당을 동맹 휴업 지수(hartal parameter)라고 부르는 h라는 양의 정수로 나타낼 수 있다고 하자. 이 동맹 휴업 지수는 한 동맹 휴업과 다음 동맹 휴업 사이의 기간을 날짜 수로 표시한 값이다.
이 결과를 보면 14일 동안 정확하게 다섯 번의 동맹 휴업(3, 4, 8, 9, 12일)이 있음을 알 수 있다. 6일은 금요일이기 때문에 동맹 휴업이 일어나지 않는다. 결국 2주 동안 근무 일수로 5일의 동맹 휴업이 실시된다.
몇 정당의 동맹 휴업 지수와, 어떤 정수 N이 주어졌을 때, N일 가운데 동맹 휴업으로 인해 일을 하지 않은 근무 일수를 계산하라.
- Hartals/차영권 . . . . 4 matches
nCase라는 변수없이 while(1)로만 묶어서 로봇에 돌리니까 '시간 초과'라는 결과가 나왔었다.흠;;
if ((j-1)%7 == 5 || (j-1)%7 == 6 || Days[j-1] == true)
cout << Save_Result[i] << endl;
- HaskellLanguage . . . . 4 matches
이전 [프로그래밍잔치] 때 사용했었던 [FunctionalLanguage].
* [http://agbird.egloos.com/ Haskell 공부하는사람 블로그]
* 오늘 굉장한 사실 하나를 알아버렸다. Haskell에서 값인줄로 알았던 3도.. 함수였던 것이다... 덜덜덜;; - 임인택
* (Num t)는 t의 자료형이 Num이라고 알려주는 것이에요. 함수는 화살표가 -> 로 나오네요.^^
- HelpForBeginners . . . . 4 matches
누구나 어떠한 페이지라도 고칠 수 있으며, 페이지간의 보다 손 쉬운 연결, 쉬운 서치환경, 그리고 현 위키에 있지 않는 페이지에 대해 새로운 페이지를 만들기 쉬운 어포던스를 제공합니다.
위키위키의 문법을 지금 당장 알고싶으신 분은 HelpOnEditing 페이지로 가시기 바랍니다.
위키위키 여행을 위한 좋은 출발점으로는
* FindPage: 다양한 방법으로 찾아보기
- HelpOnXmlPages . . . . 4 matches
If you have Python4Suite installed in your system, it is possible to save XML documents as pages. It's important to start those pages with an XML declaration "{{{<?xml ...>}}}" in the very first line. Also, you have to specify the stylesheet that is to be used to process the XML document to HTML. This is done using a [http://www.w3.org/TR/xml-stylesheet/ standard "xml-stylesheet" processing instruction], with the name of a page containing the stylesheet as the "{{{href}}}" parameter.
<xsl:value-of select="system-property('xsl:vendor')"/>
(<a href="{system-property('xsl:vendor-url')}"><xsl:value-of select="system-property('xsl:vendor-url')"/></a>)
- Hessian . . . . 4 matches
Resin 을 이용하는 경우라면 Hessian 이용해서 간단하게 RPC 를 구현할 수 있다.
public class RpcTest extends HessianServlet implements Basic {
그리고 class 화일을 Servlet 이 돌아가는 디렉토리에 복사한다. 이로서 RPC Publish 기본준비는 ok.
Java 의 경우는 다음과 같다. 위에서 정의한 interface 인 Basic 이 있어야 한다.
- HostFile . . . . 4 matches
windows 의 경우는 system32/drivers/etc/host 라는 화일.
host 화일을 이용하면, 아직 해당 도메인 이름이 DNS Server에서 셋팅이 이루어지지 않았어도 도메인으로 해당 웹페이지 접근이 가능하다. 웹 프로그래밍을 할때 virtual host 로 서브 사이트들 구분하며 개발시 편리.
- HotterColder . . . . 4 matches
뜨거워 차가워라는 게임이 있는데, 게임 방법은 다음과 같다. 일단 A가 방을 비우면 B가 방 안 어딘가에 어떤 물건을 숨긴다. A는 (0,0) 위치로 방에 다시 들어와서 방 안의 다양한 위치를 돌아다닌다. A가 새로운 위치로 움직였을 때, 물건을 숨겨둔 위치와의 거리에 따라 B가 이동 결과를 말해준다. 더 가까워지면 "뜨거워(Hotter)"라고 말하고, 멀어지면 "차가워(Colder)"라고 말하고, 차이가 없으면 "똑같아(Same)"라고 말한다.
입력된 각 행에 대해 물건이 놓여있을 가능성이 있는 위치의 넓이 총합을 출력한다. 한 줄에 하나씩 출력하며, 소수점 둘째 자리까지 출력한다. 조건에 맞는 영역이 존재하지 않으면 '0.00'을 출력한다.
- JAVAStudy_2002/진행상황 . . . . 4 matches
이제 슬슬 네트워크로 들어가도 될것 같다.[[BR]]
*나름대로 채팅을 다짰음 ^^;; 열라 허접 ~~ --;
* 2월 7일 : Core Java 책 보다가 질려서 다른책으로 바꿔서 공부하는중 무지 삽질 한 결과 대기실 UI 만듬. 제 홈페이지랑 연결해가지고 보여주고 싶지만 연결을 어떻게 해야 할줄 몰라서..^^;;
* 2월 9일 : Java 네트워크 부분 보기 시작함.. 집에 컴퓨터가 구린 관계로 읽기만 해볼 예정..
- JCreator . . . . 4 matches
Visual Studio 를 이용해본 사람들이라면 금방 익힐 수 있는 자바 IDE. 보통 자바 IDE들은 자바로 만들어지는데 비해, ["JCreator"] 는 C++ 로 만들어져서 속도가 빠르다. Visual C++ 6.0 이하 Tool 을 먼저 접한 사람이 처음 자바 프로그래밍을 하는 경우 추천.
- JSP . . . . 4 matches
3. htp://localhost:7070 (host 를 7070 으로 설정) 에서 제대로 고양이가 나오면 OK
1. hello. jsp 로 저장
2. start Tomcat 으로 서버에 접속
- JTDStudy/첫번째과제/영준 . . . . 4 matches
if (num[i] == temp[j] && i == j)
else if(num[i] == temp[j] && j != i && num[j] != temp[j])
if(strikeCounter == 3){
- JavaStudy2003/세번째수업 . . . . 4 matches
== 오버로딩(Overloading) 및 리팩토링 ==
* 오버로딩 - C++에서 cin을 cin.get(), cin.get(ch), cin.get(ch,50) 이렇게 쓰는 것처럼 같은 이름의 함수로 비슷한 기능의 역할을 하는 함수들을 만들었다.
* 또 Point(int xValue, int yValue) -> 같이 전달인자를 바로 넣어주어서 보다 간편하게 자료를 입력받을 수 있게 했다.
- JollyJumpers/조현태 . . . . 4 matches
if (0 == nums[0])
if (nums[0] <= Math.Abs(nums[i] - nums[i + 1]))
if (isJollyJumpers)
else
- Knapsack . . . . 4 matches
그리고 그 때 버는 돈은 얼마인지 구하는 프로그램을 작성하세요. [[BR]]
처음부터 단박에 이 문제를 푸는 것보다 조금 더 제한적이고 쉬운 문제에서 일반적이고 어려운 문제로 점진적으로 진행해 나가는 것은 어떨까요. NoSmok:HowToSolveIt 에서 소개하는 문제 해결 테크닉 중 하나이기도 하죠. 훨씬 더 높은 교육적 효과를 기대할 수 있지 않을까 합니다.
그리고 누군가가 만든 프로그램이 옳다는 것을 테스트하기 위해서는 이를 자동화하는 것이 편할 것이고, 이것을 위해서는 인풋과 아웃풋을 좀 단순화하는 것이 좋지 않을까 합니다. ICPC의 문제들을 구경해 보세요.
- Leonardong . . . . 4 matches
[http://zeropage.org/zero/?url=leonardong 개인위키]를 분양받아 쓰고 있습니다. 제로페이지 프로젝트에는 [http://zeropage.org/trac/leonardong/ Trac]을 쓰고 있지요.
위키는 주로 [프로젝트]를 진행할 때 씁니다. 과거 기록은 [PersonalHistory]에 남아있습니다. 그 밖에는 [인상깊은영화]라든지 [BookShelf] 를 채워나갑니다. 가끔 [Memo]를 적기도 하는데, 이제는 [(zeropage)IdeaPool]에 적는 편이 낫겠네요.
- Linux/탄생과의미 . . . . 4 matches
* 1991년 헬싱키의 대학생인 리누즈 토발즈(Linus Tovalds)가 개인적인 관심으로 작은 Unix시스템 구조인 Minix의 PC용 커널을 개발로부터 출발하게 되었다.
* Ver.0.01을 인터넷에 공개한 후에, 관심있는 연구원들이 리눅스 운영체제 개발에 동참함으로 서 급속한 발전
- 요즘 토발즈의 상표권 등록 발언으로 논란이 좀 많죠;; 얼떻게 될지는 모르겠지만;; - [eternalbleu]
- LogicCircuitClass/Exam2006_1 . . . . 4 matches
모든 문제는 영어로 출제됨. 풀이를 꼭 써야함. 120점 만점.
* BCD 를 2진수로 고쳐쓰기.
* 식 최소화 하기.(그냥하는 문제도 나오고 카르노 맵으로 하는 방법도 나옴)
* 배점 젤 큰 두 문제. 하나는 checksum 문제(강의록). 하나는 3bit Full adder 였나..? 암튼 adder 였던거 같은데 기억 안남. 설계해서 회로 그리는거였음. 식 최소하하고.
- MagicSquare/인수 . . . . 4 matches
if(_board[_y][_x] != 0) {
if(c == -1)
else if(c == _size)
- Map/임영동 . . . . 4 matches
for(it=decoder.begin();it!=decoder.end();++it)
{//이런 식으로도 된다. 하지만 반복자 쓰는 연습을 하기 위해 아래의 식으로.
for(string::iterator i=input.begin();i!=input.end();i++)
- Map연습문제/임영동 . . . . 4 matches
for(it=decoder.begin();it!=decoder.end();++it)
{//이런 식으로도 된다. 하지만 반복자 쓰는 연습을 하기 위해 아래의 식으로.
for(string::iterator i=input.begin();i!=input.end();i++)
- ModelingSimulationClass/Exam2006_2 . . . . 4 matches
1. 시간당 평균 20번의 전화가 걸려오는 사건을 poisson분포로 모델링했다. 11:30 ~ 1:00 사이인 점심시간에 전화가 30번 올 확률은 몇인가?
3. bit가 정상일 확률이 99프로이다. 총 100비트에서 3개 미만의 비트가 손상될 확률을 구하라.
3번 기억하기로 no more than three ~~ . 였던거 같은데 음 그러면 3개 이하의 비트아닌가요? - 보창
그런가-_-; 머 족보의 전세에는 지장없는 것 같다. 난 3개 미만으로 풀었는데-_-; 머 정상참작 해주지 않을까 ㅋㅋ -인수
- One/구구단 . . . . 4 matches
if(number<=1 || number>=10)
else
if(i>9 || i<2)
else
- Ones/1002 . . . . 4 matches
어떻게 접근할까 하다가 지금까지 연습장을 안 쓰고 있음을 확인. 연습장을 꺼내는 순간 '팍' 하고 느낌이 오다.~ 그리고 바로 최종 코드 완료.
if each != '1':
if isMultiplyOf(onesValue,aValue):
if __name__=="__main__":
- OpenGL_Beginner . . . . 4 matches
* 목표 : OpenGL 예제를 통해 기초를 익히고, 프로그램 만들 것을 찾는다.
* 2.24 : 마소 ASE구현 프로그램 프레임웍 분석
- 필자는 자신이 제작한 상업용 3D 설계 툴의 소스를 가지고 오고, 라이선스 문제와, 자신이 생각하는 개선점을 고쳐서 다시 작성했다고 한다. 인상 깊었다. 이해하기도 쉽고, 구조적 프로그래밍을 OOP로 옮긴다는 관점에 도움이 되었다. STL 비슷하게 linked list글 구현해 두었고, MEC++의 지식이 도움되었다. MEC++가 허송세월을 보낸것은 아닌 느낌이다. Java3D의 강좌에서도 Java3D의 프레임웍이 좋다고 하는데, 역시 살피는 과정에서 써야 겠다. 문서화 중
- OutlineProcessorMarkupLanguage . . . . 4 matches
현재 RSS 리더에서 피드를 공유하는 목적으로 주로 이용되는 포맷으로, Radio UserLand 의 DaveWiner 가 개발했다.
최초 OPML을 개발할 당시에는 단순히 사고(idea)를 정리하고, 프로젝트를 관리하는데 쓸만하다는 것이 주 목적이었지만,
- PHP Programming/HtmlTag . . . . 4 matches
*<FORM> CGI가 작동하도록 사용자가 정보를 입력하는 "입력양식"을 만들어 주는 태그. 입력양식을 만들려면 반드시 </FORM> 태그로 감싸줘야 함.
*ACTION=".." - 사용자의 입력정보를 받아서 처리하는 서버에 담김 CGI프로그램의 위치
*METHOD=".." - 사용자 입력정보가 어떤 방법으로 CGI프로그램에 전달하게 할 것인지 지정.(POST, GET 두가지 값 사용)
- ProjectIdea . . . . 4 matches
프로젝트로 해볼만한 아이디어들에 대해서..~ 좋은 아이디어이면 같이 실제로 구현해보거나 다른 사람의 아이디어를 참고하여 덧붙일 수도 있으리라 생각된다.
["프로젝트분류"]
- ProjectPrometheus/AcceptanceTestServer . . . . 4 matches
Acceptance Test 환경 만들기 - Python 으로 작성. 165.194.17.55 에서 AcceptanceTest 웹서버 돌리기.
해당 AcceptanceTest 의 Run 를 클릭하면, WEB 에서 해당 AcceptanceTest (UnitTest 작성 코드) 를 실행하고, 그 결과를 그대로 화면에 출력한다. 그러면 해당 테스트에 대한 결과를 확인할 수 있다.
Python CGI 로 작성된 Acceptance Test 용 서버 -> Acceptance Test 에 대해서 출력 양식. AcceptanceTest 스펙을 구체적으로 명시해둘것.
- ProjectPrometheus/Iteration5 . . . . 4 matches
||||||Story Name : Recommendation System(RS) Implementation ||
|| 책 정보 보기 기능 작성, 웹으로 연결 || . || ○ ||
|| 추천해주기 페이지 작성, 웹으로 연결 || . || . ||
|| SearchBookList Page에서 viewbookservice 로 연결 || 1 || ○ ||
- ProjectVirush/UserStory . . . . 4 matches
= 로그인 =
= 로그인 후 메뉴 =
외계인 본부에서 받는 지령을 볼 수 있다. 지령은 시간순으로 쌓이며, 지난 지령을 수행한 결과를 볼 수 있다.
지구를 위성에서 보듯이 보여준다. 지도에서 점으로 표시된 바이러스의 분포도를 볼 수 있다. 그래서 플레이어가 자신의 바이러스를 보낼 위치를 선정하도록 한다.
- PyIde/BicycleRepairMan분석 . . . . 4 matches
IDE 쪽에 통합시키는 것이 목적이므로, 테스트 코드나 해당 사용된 코드의 가장 바깥단을 구경중.
BicycleRepairMan_Idle.py 가 실마리가 될것 같다. VIM이나 Idle 통합부분의 경우 BRM에서의 facade를 사용한다.
코드 분석방법에서 Eclipse 의 Ctrl + Alt + H 를 눌렀을때 나오는 Method call hierarchy 기능으로 코드를 읽어나가는 것이 유용하다는 점을 알아내었다. StepwiseRefinement 를 역순으로 따라가는 느낌이랄까.
- Python/DataBase . . . . 4 matches
* [http://sourceforge.net/projects/mysql-python Mysql모듈다운로드]
* [http://www.python.org/topics/database/modules.html 기타모듈다운로드]
client_flag - integer, 필요할 경우 사용하기 위한 flag (0)
을 인자로 넣을 수 있다.
- RandomQuoteMacro . . . . 4 matches
'''Q''' : 블로그를 쓰면 Calendar 밑에 이 모듈이 붙어있더군요.
그런데 이 매크로에 의해서 나오는 내용은 어디에 들어있는거죠?
'''A''' : FortuneCookies 에 있는 내용을 뿌려주는걸로 알고있습니다.
- RandomWalk/창재 . . . . 4 matches
cout << endl << endl;
cout << "총 움직인 횟수 = " << count << endl ;
if (array[j][p] == 0)
- RandomWalk/현민 . . . . 4 matches
direction = rand() % 8; // 랜덤으로 점이 움직이는 방향
if (next_y >= 0 && next_y < num && next_x >= 0 && next_x < num)
if(data[i][j] == 0)
cout << endl;
- RandomWalk2/서상현 . . . . 4 matches
파이썬으로 개발함. 7/1 밤 11시부터 1시까지 3시간. 중간에 ["RandomWalk2/질문"]. 7/2 다시 30분간 수정. 다시 질문. 답변을 받고 몇군데를 다시 고쳐서 업로드함.
판을 나타내는 방법의 선택 덕택에 3차원으로 확장하는 것도 그다지 어려울 것 같지는 않다. 해 봐야 알겠지만.
해스켈로 시도. [http://my.netian.com/~sshiskom/file/haskell/walk.hs 소스].
- RandomWalk2/질문 . . . . 4 matches
(1) 음식을 먹고 일시적으로 슈퍼바퀴가 된 정상바퀴가 5턴이 지나기 전에 다시 음식을 먹으면 어떻게 되나요? 예를 들어 슈퍼바퀴가 된 지 2턴만에 다시 음식을 먹었다면 그 뒤로 8턴동안 슈퍼바퀴인지, 아니면 다시 이때부터 세서 5턴간 슈퍼바퀴인가요?
(2) 한 턴에 둘 이상의 바퀴가 동시에 음식이 있는 칸에 도착했을 때, 바퀴의 수가 음식의 수보다 많다면 바퀴들은 어떠한 순서로 음식을 먹게 되나요?
''RandomWalk2 Requirement Modification 4 is now updated. Thank you for the questions.''
- Refactoring/BigRefactorings . . . . 4 matches
http://zeropage.org/~reset/zb/data/TeaseApartInheritance.gif
http://zeropage.org/~reset/zb/data/ConvertProceduralDesignToObjects.gif
http://zeropage.org/~reset/zb/data/SeparateDomainFromPresentation.gif
http://zeropage.org/~reset/zb/data/ExtractHierarchy.gif
- ReverseAndAdd/김회영 . . . . 4 matches
cout<<endl;
cout<<calCount[i]<<" "<<number[i]<<endl;
while( num !=0 )//10으로 나눈 나머지가 몇인가?1이상이면
if(i>j)
- ReverseAndAdd/태훈 . . . . 4 matches
if decide(n+r) == 1:
else:
if n == int(reverse(n)):
if __name__ == '__main__':
- RuminationOnC++ . . . . 4 matches
Accelerated C++의 저자인 앤드류 쾨니그가 쓴 책이다. C++을 다년간 써온 저자의 프로그래밍 테크닉을 쉽게 이야기를 쓰듯 풀어나간 책이다. 책의 내용은 저널에 저자가 썼던 글에 살을 덧 붙이고 다듬어서 나온책이다. 약간 흥미를 위주로 쓴 측면이 있어서 재미있게 읽을 수 있다. (표지나 서문에서 느껴지는 책의 분위기는 프로그래머를 위한 C++ 동화책이다. ㅡ.ㅡ;;)
아마존의 서평이 상당히 좋은 편이다. 비록 몇명안되는 리뷰만 있지만... 책을 본 사람들의 평가의 극상의 수준이다. 초급 C++ 프로그래머가 보기엔 좀 무리가 있는 내용이지만 재미있게 남는 시간에 읽을 수 있다.. (대략 50쪽에 핸들 클래스를 사용하라는 내용이 나온다.)
- SVN 사용법 . . . . 4 matches
4. cpp 파일 선택 -> Diff 선택하면 바뀐 내역 볼 수 있다.
2. 그 안으로 이동한 후 -> Check Out 선택
3. 아이디와 프로젝트 이름을 선택하면 나의 프로젝트가 다운 가능하다 (다른 컴퓨터에서도..)
- Self-describingSequence . . . . 4 matches
솔로몬 골롱(Solomon Golomb)의 자기기술 수열 <f(1), f(2), f(3), ... >은 각 k에 대해 k라는 숫자가 정확하게 f(k)번 등장하는 속성을 가지는 양의 정수로 구성된 유일한 비감소수열이다. 이 수열의 앞 부분을 생각해보면 다음과 같은 식이라는 것을 알 수 있다.
[http://online-judge.uva.es/p/v100/10049img2.gif]
어떤 값 n이 주어졌을 때 f(n)의 값을 계산하는 프로그램을 만들어야 한다.
- Self-describingSequence/조현태 . . . . 4 matches
for(suchNumber = i; numbers.end() == numbers.find(suchNumber); --suchNumber);
for(suchNumber = pointNumber; numbers.end() == numbers.find(suchNumber); --suchNumber);
if (0 == calculateNumber)
cout << GetSolomonGolombNumber(calculateNumber) << endl;
- SilentASSERT . . . . 4 matches
C++ 개발자, 특히 Window 프로그래밍을 할 때에는 ASSERT를 잘써야 합니다.
그렇다고 Output 모드로 ASSERT를 쓰면 Fail 나는 것을 쉽게 확인 하기 어렵고, 또 수많은 TRACE 들 덕분에 분간이 되지 않습니다.
CppUnit 을 쓸려고도 해 보았지만 역시 너무 까다로와서 ASSERT를 수정하기로 맘 먹었습니다.
- Spring/탐험스터디 . . . . 4 matches
* [Spring Framework 3]로 작지만 유용한 프로그램을 만들어보자!
* 세미나가 아니라 각자가 공부한 것을 바탕으로 공유하고 정답을 찾아나가는 스터디
* 스터디 대상이 매우 방대하므로 충분한 개인적인 학습과 과제 수행, 그리고 스터디 모임에서 많은 질문을 할 것
- StackAndQueue . . . . 4 matches
* 스택(Stack) : 나중에 들어온게 먼저 나감. 밑은 막혀 있고 위만 뚫려 있는 통이라고 생각하면 됨. 밑을 도려내고 꺼낼수는 없는 노릇이니 집어넣을때도 위로, 뺄때도 위로 빼야겠져?^^;;
* 위 아래 뻥 뚫린.. 위로 물부으면 밑으로 나오겠죠? (먼저 들어간건 먼저 나온다!)
- StepwiseRefinement . . . . 4 matches
구조적 프로그래밍에서 상위 모듈을 먼저 개발하고 여기서 사용하는 하?모듈들을 개발해 나가는 방법. EdsgerDijkstra와 Niklaus Wirth가 이 방법을 대중화시킨 것으로 유명하다.
사실, TestDrivenDevelopment나 ["Refactoring"]의 상당 부분도 어찌보면 StepwiseRefinement의 연장선에 있다.
* ["ScheduledWalk/석천"] : ["1002"]가 RandomWalk2를 StepwiseRefinement로 접근한 예
Niklaus Wirth 교수의 ''Program Development by Stepwise Refinement''(1971, CACM 14.4) (http://www.acm.org/classics/dec95/ )와 EdsgerDijkstra의 [http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD227.PDF Stepwise Program Construction]을 꼬오옥 읽어보길 바랍니다. 전산학 역사에 길이 남는 유명한 논문들이고, 여기 소개된 SR은 Structured Programming에서 핵심적 역할을 했습니다. 당신은, 이 사람이 사용한 stepwise refinement에 상응하는 어떤 "일반적 문제 접근법 및 디자인 방법"을 갖고 있습니까? 이 글을 읽고 다른 문제에 stepwise refinement를 적용해 보십시오. Functional Programming이나 OOP에도 적용할 수 있습니까? 이 글을 읽고, 또 스스로 실험을 해보고 무엇을 배웠습니까? 이 stepwise refinement의 단점은 무엇이고, 이를 극복하는 방법은 무엇일까요? --김창준.
- StuPId/정진경 . . . . 4 matches
if(str[j]=='?'){
}else{
if(qk==9){
}else{
- TheKnightsOfTheRoundTable/김상섭 . . . . 4 matches
if(a == 0.0 && b ==0.0 && c==0.0)
cout << "The radius of the round table is: 0.000" << endl;
else
cout << "The radius of the round table is: " << temp << endl;
- ThePriestMathematician/김상섭 . . . . 4 matches
if(temp <= min)
cout << i << " " << a[i] << " " << hanoi[i] << endl;
for(vector<int>::iterator j = test.begin(); j != test.end(); j++)
cout << hanoi[*j] << endl;
- ThePriestMathematician/문보창 . . . . 4 matches
if (0.5 * i * (i + 1) > n)
if (n == 0)
cout << 0 << endl;
cout << result << endl;
- Thread의우리말 . . . . 4 matches
[Thread]. 내가 처음으로 [ZeroWiki] 접근하게 되었을때 가장 궁금했던 것중 하나이다. 도대체 [Thread]가 무었인가?? 수다가 달리는장소?? 의미가 불분명 했고 사실 가벼운 수다는 DeleteMe라는 방법을 통해서 이루어지고 있었다. 토론이 펼쳐지는 위치?? 어떤페이지의 Thread의 의미를 사전([http://endic.naver.com/endic.php?docid=121566 네이버사전])에서 찾아보라고 하길래 찾아보았더니 실에꿰다, 실을꿰다, 뒤섞어짜다 이런 의미가 있었다. 차라리 이런 말이었으면 내가 혼란스러워해 하지는 않았을 것이다. [부드러운위키만들기]의 한가지 방법으로 좀더 직관적인 우리말 단어를 사용해 보는것은 어떨까?? - [이승한]
- ToeicStudy . . . . 4 matches
- 인터넷 강의, 책 외 다양한자료... 등으로 인하여 선택
조속한 시일내로 책 구입후(다음주 월요일) 착수
향후 Toeic 뿐만이 아닌 학과 스터디로 발전 제시
*;;; 대충 쓰긴 썻는데 고칠사람 있으면 고치세요 ㅋㅋ 시험기간이 다가오고 있고, 앞으로 어떻게 될지 모르겠지만 책 두권은 꼭 다 마치자. -원희
- TuringMachine . . . . 4 matches
우리는 이 종이의 약속이 적혀있는 순서대로 내용을 바꾸면서 진행을 해 나간다.
우런 단순한 과정을 통해서 결과값으로 우리가 필요로 하는 내용을 얻을 수 있을 것이다.
참조) Turing Award : 알랜 튜링의 업적을 기리기 위해서 제정한 상으로, 컴퓨터 공학분야의 노벨상이라 칭해짐.
- UglyNumbers/JuNe . . . . 4 matches
간단해서 그냥 완큐로 작성. 실행시간은 0.1초 이하.
if not ugs: ugs=[1]
ugs.append(min(ts))
if __name__=='__main__':
- UglyNumbers/곽세환 . . . . 4 matches
* 숫자 하나하나를 일일이 나눠보는건 시간이 많이 걸린다. 그래서 다른 방식으로 접근.
cout << "The 1500'th ugly number is " << temp << "." << endl;
if (temp == 1)
cout << num << endl;
- UniversalsAndParticulars . . . . 4 matches
WardCunningham은 이런 말을 했다. 작지만 유용한 프로그램을 매일 만들어봐라. 복잡하고 큰 걸 만들다 보면 중요한 아이디어가 감추어져 버릴 수 있다.
자바 스윙에서 어떤 API를 통해 어떻게 그림을 그리는지를 가르치기 보다, Event Driven Programming을 가르치되, 스윙이라는 맥락을 방편으로 이용해 가르친다. 해당 프레임웍의 API가 복잡한 경우, 학습자들은 오히려 그 API를 외우고 공부하느라 더 중요한 것을 잊을 수 있다. 따라서 이런 경우 가르치는 사람이 미리 좀 더 추상적인 차원의 레이어를 만들어(이를 교육학에선 스캐폴딩이라 한다) 제공할 수 있다.
- UseCase . . . . 4 matches
그는 UseCase와 UML의 UseCase Diagram은 다른 것이라고 말하며, UseCase를 기록할 때 단순히 NoSmok:IndexCards 에 해당 UseCase의 이름만 기록해 두고, 나머지는 구두로 의견교환을 할 것을 추천한다. 그렇게 하고 시간이 지나면서 구현 내용이 점점 중요해지면 그 구체적인 내용을 카드의 여백에 채워넣으라고 한다.
이렇게 해서 최소 하나의 프로젝트에서만이라도 "제대로 활용"을 해보고 나면 비로소 필요에 따라 "더 많은 것"을 요할 수 있다. 이 때에는 본인 역시 Robert C. Martin과 같이 Alistair Cockburn의 ''Writing Effective Use Cases''(2000년 Seminar:JoltAward 수상)를 권한다. (인터넷에서 초고 pdf화일을 구할 수 있다)
- VisualSourceSafe . . . . 4 matches
* ["CVS"] 와 달리 하나의 프로젝트를 특정인이 점유하고 있으면, 해당 프로젝트 소스 자체에 접근을 금지한다. VS 계열 툴로 집에서 혼자 작업시에 사용하기는 편하다. VS계열의 툴과 잘 결합되어 있다. 아직 VS 6.0 만 쓰는 관계로 7.0은 잘 모름--["상민"]
- WinAPI/2011년스터디 . . . . 4 matches
||WS_MINIMIZE||4.최소화된 상태로 윈도우 만들기 ||
||WS_MAXMIZE||9.최대화 된 상태로 윈도우 생성 ||
||WS_BOARDER||11.단선으로된 경계선을 가짐. 크기조정불가 ||
||WS_TABSTOP||18.tab으로 포커스 지정 가능 ||
- XpWeek/20041224 . . . . 4 matches
나름대로 재밌는 시간이었지만, 왠지 꽉 짜여진 틀에서 하는 듯해서 압박이 느껴졌다. 네트워크에 대해 조금이나마 알게되어서 만족!--[강희경]
알바하느라 소홀히 한점이 아쉽다. 또한 MockObjects에 대한 이해가 부족하여 TDD로 진행하지 못한 점이 아쉽다. 5일간 쉼없이 달려왔는데 아직 미흡한 점이 많다. 혼자 리펙토링을 해보았지만 별로 재미 없었다. 구피에서 돌릴 수 있도록 간단한 리펙토링하고 GUI 기능을 추가하고 싶다. 다음주중 하루 잡아서 하는게 어때?? 그리고 나의 최종 목표는 테스트코드를 추가하는 것이다. TDD는 아니지만 네트워크에 대한 MockObjects를 구현해보고 싶다. -- 재선
[테스트주도개발]이 도착해서 읽고 따라해보고 있어. 다 읽고 나서 다시 이 프로젝트 결과물을 가다듬을 수 있을 것 같아. --[Leonardong]
- Yggdrasil/가속된씨플플/0장 . . . . 4 matches
* 주로 개념설명위주라서, 그 중에서 잘 몰랐거나 말로 설명하기 애매했던 단어를 정리했음.
* 함수: 자신의 이름을 가지며, 다른 곳에서 이를 호출하거나 실행시킬 수 있는 프로그램의 한 조각
* 네임스페이스: 서로 관계가 있는 이름들의 집합. 표준 라이브러리는 std 안에 자신이 정의하고 있는 모든 이름들을 담고 있음.
- Yggdrasil/파스칼의삼각형 . . . . 4 matches
이거... 왠지 뽀록으로 되었습니다...
if(select>10)
if(j==0 || j==i-1)
else
- ZPHomePage/참고사이트 . . . . 4 matches
마이크로소프트가 발표한 경영비젼입니다 Windows2003를 테마로 만든 것 같은데, 우리 차기 ZP홈피도 2003 테마로 만들었으면 합니다. 부드러운 분위기가 메무 맘에 드네요 -[iruril]
* http://jungle.co.kr/ ==> 여기 가보면 여러가지 멋진 디자인의 홈페이지들이 있어요~~ 허걱...-- 근데 로그인을 해야합니다. -[윤성만]
- ZP도서관/2013 . . . . 4 matches
제로페이지에서 보유중인 도서 목록입니다.
* 책에 QR코드를 붙이고 위키 플러그인을 만들어서 그 QR코드를 찍으면 대출, 반납, 연장, 예약 등을 선택할 수 있게 한 뒤 원하는 작업을 클릭하면 위키에 자동으로 기록하게 해준다면 편하겠죠... - [김수경]
* 레일즈로 도서 조회 사이트 만들자! 루비 튜토리얼이 도서관리 프로그램 만들기라 그런건 아니고!! - [서지혜]
- ZeroPageServer . . . . 4 matches
* 혹은 학회실에 있는 서버컴퓨터에서 바로 계정 생성하셔도 무방합니다.
* 기존 zp홈으로 활용하던 서버가 교내 네트워크 불안정과 기타 여러가지의 문제로 외부 호스팅을 시작한뒤 남는 서버로 돌리는 서버입니다.
- ZeroPagers . . . . 4 matches
회원 : (정회원; [회원조건]에 맞는 회원)
학부생들은 자신의 개인페이지를 현재의 계획, 관심사를 적는 등의 용도로 사용해 주세요.[[BR]]
* [이선로]
["홈페이지분류"], ["제로페이지분류"], ["ZeroWikian"]
- canvas . . . . 4 matches
for (list<Shape*>::iterator it=m_shape.begin();it!=m_shape.end();it++){
for (list<Shape*>::iterator it=m_shape.begin(); it!=m_shape.end();it++){
if (pObj==*it) m_shape.erase(it);
for(vector<Shape*>::iterator it=canvas.begin(); it!=canvas.end();++it)
- cogitator . . . . 4 matches
zeropage passive attender
기술개발이 아닌 아닌 information policy 를 공부하러 ICU로 왔음
코딩을 위한 프로그래머가 아닌 세계를 창조할줄 아는 프로그래머가 되었으면 좋겠습니다.
- cookieSend.py . . . . 4 matches
"Accept":"image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*"}
if cookieDict:
print "------------------------- response end ------------------------------"
if __name__=="__main__":
- erunc0/Mobile . . . . 4 matches
mobile. 왠지 거창하다. 내가 하는 일은 요즘 pda를 산다면 대부분이 사는 arm processor 를 장착한 wince 기반의 ipaq 기종에 미니 게임을 만든다는.. --; 아직 시장도 없거니와. sk 쪽에서 휴대폰에 이어 앞으로 펼쳐지게(?)될 pda 시장에 sk 이름에 걸맞게 휴대폰 장사에 이어 독점 비슷하다 싶이 하기위해 자그마치 500 억이라는 투자로 인해 매일 같이 삽질을 하고 있다.
* lan card - 돈있으면 구입해서 한다. compile 속도가 비약 적으로 상승. -_-;
* 속도차이는 별로 없지만, dc를 이용해 뿌리는 법은 엄연히 느린법..
- html5/문제점 . . . . 4 matches
* HTML5는 2012년에야 초안 단계에 이를 것이며 완전한 인증을 받을 것은 2022년이 될 것으로 예상.
* DRM(디지털 콘텐츠 무단사용 방지) 기능이 아직 없어 비지니스적으로 이용이 어렵다.
* HTML5는 마크업 언어(프로그래밍 언어X)로서 브라우저에만 해당 되지만
- radiohead4us/Book . . . . 4 matches
http://image.wowbook.com/book/large_image/89-8431-072-7.gif
70년간 좌익 세력이 정권을 잡았다고 하던데.... 그래서 그런건가. 굉장히 안정되어있는것 같다. 그곳에서는 권위라는 것을 찾아볼 수 없다. 국왕도 국민들과 함께 겨울스포츠를 즐기고 같이 어울린다. 한가지 충격으로 다가온 것은, 그곳에서의 대학의 모습이다. 학생들이 자유롭게 교수의 의견에 의의를 제기하고, 너무나도 자유롭고 창의적인 분위기에서 수업을 진행한다. 우리나라처럼 '''give>take''' 가 아닌 '''give<take''' 인것 같다. (역시 공부할때는 외국물을 먹어야한다)
인권탄압또한 거의 없다고 한다. 오죽하면, 주변국가에서 노르웨이로 와 일부러 죄를 짓는다고 할까.. (노르웨이의 감옥에는 차가운 독방도, 간수도 없다. 사진을 보면 그냥 자기 집에서 사는것과 별반 다를다가 없다. 그리고 원하는 기간동안 외출신청을 하면 복무기간중에 집에도 찾아갈수 있다고 한다!)
노르웨이처럼 유럽에서도 복지제도가 잘 되어있는 나라도 결국 그 복지를 떠받치고 있는 것은 제3세계 국가의 희생이라는 대목을 읽었을 때에는 ''아...!'' 하는 탄식이 나왔다. 하긴 피버노바를 만들때 동남아 어린이들이 하루 12시간씩 노동을 했다니 뭐.. (나이키나, 그런 회사들도 마찬가지인것 같다). 세상이란 참으로 아이러니한것 같다. 아니면.. ZeroSum 게임인가.. 이곳에서의 복지는 저곳에서의 희생.. 으아 모르겠다.
- teruteruboz . . . . 4 matches
{{{~cpp 한가지만 잘했으면 좋겠는데요~ ^_^ 그 한가지도 제대로 못해서 걱정입니다.
오늘은 날씨가 별로 안좋아서 그러나..
회지를 준비중이랍니다~ ^-^ 뭐..많이 부족한 BS지만...[[BR]]회지!! 기대해 주세요~ 참가를 바라시는 분들은...웅... http://csebs.woorizip.com 으로 신청해주시면..[[BR]]
심사숙고하여 특별한 악연으로 배치를...쿨럭...-_-;[[BR]]
- while문 구구단 . . . . 4 matches
if b == 10 :
여기서 질문. 이 코드는 Python 2.4 IDLE 로 짠 것인데
페이지의 출처를 알려주세요~ 가령, 스터디에서 한 작업이라면 스터디명/구구단출력 이런 식으로 페이지 이름을 만들어 주시면 됩니다.
혹은 문제로 남겨주시려면 마지막에 [문제분류]를 남기시면 분류가 됩니다.
- zeropageBlog . . . . 4 matches
* 공식 블로그 주소는 [http://blog.zeropage.org/zeropageBlog/] 입니다.
* 블로그 관리자 메일은 [http://services.nexodyne.com/email/icon/XS9S2vaD8Dp0Nwul/3jgUDRo%3D/R01haWw%3D/0/image.png] 입니다.
* 신청이 처리되면 메일로 초대장이 날아갑니다.
제로페이지분류
- 개인키,공개키/노수민,신소영 . . . . 4 matches
ifstream input("input.txt");
cout << endl;
ifstream input("output.txt");
cout << endl;
- 격언 . . . . 4 matches
* 급격하게 변화하는 지식 사회에서 학습을 멈추면 나이에 관계없이 이미 늙은 사람입니다. 반대로 끊임없이 배우는 자는 나이와 관계없이 누구나 젊은 사람입니다. - 심리학자 미하이 칙센트미하이
AnswerMe 노스모크에서 url 디코딩하는게 달라졌는지 InterWiki 매크로를 쓸수가 없네요. 해결책 아시는분? - [임인택]
NoSmok:명언 works. IE에서 UTF-8로 보내는 것이 on 되어 있지 않은지?
MozillaFirefox NightlyBuild 를 사용해서 그랬던것 같네요. 정식릴리즈로 해보니 잘됩니다. - [임인택]
- 골콘다 . . . . 4 matches
http://image.wowbook.com/book/large_image/89-7682-062-2.gif
* 책을 읽으면서 '이게 과연 1920년대의 이야기일까?' 하는 질문을 하게 하는 소설같은 역사이야기. 특히, 최근 미국의 분식회계 사태를 보며 신문에서 '브루투스, 너마저...' (책에서 똑같은 말을 한다;) 를 이야기하는것을 보면. 달라진 점이라면 액수가 커졌다 정도? (책에 나오는 모건 은행의 중개인인 리차드 위트니는 추후 자신의 경제파탄을 무마하려고 거의 300만달러에 달하는 빚을 진다. 대출을 받기 위해 고객의 유가증권들을 함부로 담보로 맡기는 짓도 서슴없이 했다고 한다. 그게 1920년대란다; 결국은 이중장부와 불투명한 경영, 하버드-월가 또는 정계의 연줄을 가진 엘리트들의 특이한 도덕(?)의식의 결과.)
* 나중에 힘이 생기면 '수구' 적이지 않을 자신이 있을까. 이미 자신의 이론이 고정화되어린 이상의 경우. --["1002"]
- 공간박스 . . . . 4 matches
[인수]군이 산것은 이것이다. 다음 쇼핑 가서 뒤지면 나온다. 가격도 16900원으로 저렴(?)한것 같다.
뭐, 2번은 그냥 탁탁 때려주면 알아서 떨어져주니까... 별로 걱정할 사항은 아닌것 같다. 1번은 참 치명적이다. 6개 조립하기도 귀찮아죽겠는데 다른 제품을 보니 12개짜리도 있는것 같았다.
* 사용기 수준은 아니고, 장점으로는 가격이 저렴하면서 나무재질이라 인테리어를 고려할때도 좋다는 것을 들 수 있을 것 같습니다. 배치만 잘 해놓으면 다양한 사이즈의 책들을 수납할 수 있구요. 단점으로는 역시 나무재질의 DIY제품이라 견고성이 떨어진다는 점입니다. 각각의 부품의 맞물리는 형식이 아니라 나사를 이용해서 결합하는 방식이라 사용하다보면 그 결합부분이 망가지는 문제점이 있습니다(제것만 그럴지도 모릅니다)
- 구구단/민강근 . . . . 4 matches
}cout<<endl;
}cout<<endl<<endl;
}cout<<endl;
- 구구단/장창재 . . . . 4 matches
cout << endl;
cout << endl << endl;
cout << endl;
- 구구단/조재화 . . . . 4 matches
cout<<endl;
cout<<endl;
cout<<endl;
(if (= y 10)
- 그래픽스세미나/2주차 . . . . 4 matches
* 창의 프로그램
|| 강인수 || Upload:bborok.bmp 위에꺼 뽀록으로 왔다갔다 하다가 나온 그림. ||
|| 김창성 || Upload:Blending.zip ||
[1002] 는 창의 프로그램 만들어낼때까지; --[1002]
- 그림으로설명하기 . . . . 4 matches
= 조건부 확률 =
[http://user.chollian.net/~jjang88/jung1math/1setl4.gif]
무언가 가르쳐줄 때 말로 설명하기 어렵다면 그림으로 설명하자. (한데 그림 그리기가 더 어렵다면 ?)
- 김민재 . . . . 4 matches
* [Pinple] 프로젝트 구성원
* [새싹교실/2013/케로로반] 튜터
* Always-On 프로젝트 ~~구성원~~ 리더 - AI Mate
- 김범준 . . . . 4 matches
duco ornamentum(라틴어로 계산기이지만 컴퓨터라고 하기로 함)
-> ducorna로 생략
-> 역순으로 배열해서 anrocud
- 논문번역/2012년스터디 . . . . 4 matches
* 논문 선정 후, 해당 논문을 '번역'해오고, 모여서 제대로된 번역이었는지, 내용에 대한 이해는 제대로 되었는지 체크해봄.
* 내용에 대한 이해도 중요하지만 영어를 공부하겠다는 목적도 내포되어 있으므로 번역할 때 유의해야함.
* 모임은 매주 목요일 진행되므로 다음주 목요일까지는 번역을 완료해야함.
- 니젤프림 . . . . 4 matches
[http://nijelprim.egloos.com 블로그에 놀러와] 광고도 한번 눌러주면 좋고 -_-
이시드로 파로디의 여섯가지 사건, 호르헤 루이스 보르헤스 + 비오이 까사레스, 북하우스
군주론, 니콜로 마키아벨리, 까치글방
- 다이어리효율적으로사용하는방법 . . . . 4 matches
* 기사 내용중에서 목표를 구체적으로 다이어리에 적으라는 내용이 공감이 감. 개인적으로 놋북이 있는관계로 노트북에 있는 위키를 다이어리로 사용,,
- 데블스캠프2002/Afterwords . . . . 4 matches
''내년에 데블스캠프 세미나를 중추적으로 이끌어야 할 사람들이 02라는 점을 강조하면 좀 나아질까요? --JuNe''
* 의외로 시간이 빨리 가서 생각보단 프로그래밍 횟수가 적다는 느낌입니다. 그리고 앞으로 공부할 게 참 많아 보인다는 생각이 들었습니다. -[영동]
- 데블스캠프2004 . . . . 4 matches
* '''장소 : 5층 피시실(구피)에서 하다가 밤에 칠층 피시실( 7층 피시실 )로 올라감'''
* 벌써 2004년도 DevilsCamp 를 시작할 때가 되었군요..^^; 하하.. 미안한 느낌만 드는건 왜일까요;; 뭐.. 그건 그렇다 치고 허접하지만 의견하나 내도 될련지... DevilsCamp는 참여하는 그 당시도 중요하지만 끝나고 나중에 "아. 그 때는 이렇게 했었지."라는 생각을 하면서 전의 내용을 확인하는 것도 중요하다고 생각합니다. 그렇기 위해서 필요한게 다시 한번 돌아보는 일입니다. 그 주제가 끝났다고 그냥 지나가는 것이 아니라는 거죠. 뭔가 부족한 것은 다시 한번 확인해서 고쳐도 보고 다르게도 만들어보고 또 다른 사람들과 비교도 하는 과정이 그대로 위키에 체계적으로 정리가 될 때 나중에 더 큰 재산이 된다는 것입니다.^^; 이상 허접한 의견이었습니다. 많은 테클 부탁드립니다.(답변은 못올림;;) -[상욱]
* 현재 가장 많이 사용되는 페이지 위주로 [문서구조조정] 했습니다. 더 좋은 의견 있으면 수정하세요. --NeoCoin
- 데블스캠프2005/RUR-PLE/TwoMoreSelectableHarvest . . . . 4 matches
if front_is_clear():
else:
if front_is_clear():
else:
- 데블스캠프2005/java . . . . 4 matches
The Stealth Project was soon renamed to the Green Project with James Gosling and Mike Sheridan joining Patrick Naughton. They, together with some other engineers, began work in a small office on Sand Hill Road in Menlo Park, California to develop a new technology. The team originally considered C++ as the language to use, but many of them as well as Bill Joy found C++ and the available APIs problematic for several reasons.
According to the available accounts, Bill Joy had ideas of a new language combining the best of Mesa and C. He proposed, in a paper called Further, to Sun that its engineers should produce an object-oriented environment based on C++. James Gosling's frustrations with C++ began while working on Imagination, an SGML editor. Initially, James attempted to modify and extend C++, which he referred to as C++ ++ -- (which is a play on the name of C++ meaning 'C++ plus some good things, and minus some bad things'), but soon abandoned that in favor of creating an entirely new language, called Oak named after the oak tree that stood just outside his office.
JAVA : J2ME, J2SE, J2EE, 자바서블릿, 자바서블릿의 한 종류로서 jsp 가 존재한다.
- 데블스캠프2005/언어디자인/그까이꺼 . . . . 4 matches
loop란 프로그램이 있다
viewer란 프로그램이 있다. 뒤에 출력하고싶은 것을 입력한다. ','로 구분한다.
loop(viewer<-star,ent)x5는 별을 화면에 하나 나타내고 한줄 띄우는 프로그램을 5번 반복한다.
- 데블스캠프2005/참가자 . . . . 4 matches
|| 송수생 || 누가 내이름 ㅅㅅㅅ로 올린겨 --+ ||
|| 임수연 || 개인경로 ||
현재 동문서버와 개인적인 경로로 참가자를 받고 있습니다.
- 데블스캠프2006/SVN . . . . 4 matches
8. 해당 컴퓨터에서 방금 커밋한 프로젝트 체크 아웃 받기
9. 해당 프로젝트 파일 수정
10. 다시 자리 원래대로. 그후 파일 업데이트 받기.
* Diff
- 데블스캠프2006/월요일/연습문제/for/윤성준 . . . . 4 matches
cout << endl;
cout << endl;
cout << endl;
if (f <= 10) {
- 데블스캠프2006/월요일/연습문제/for/이경록 . . . . 4 matches
cout<<endl;
cout<<endl;
if(a>10) {
else{
- 데블스캠프2006/월요일/연습문제/switch/김준석 . . . . 4 matches
if(i==999) continue;
else if(i<0 || i>100){
cout << "잘못 했습니다 다시 해주세요" <<endl; continue;
- 데블스캠프2006/참가자 . . . . 4 matches
이번 프로젝트 진행 시작과 함께 SVN, SSH 계정을 발급할 예정입니다. 이때 사용알 계정 ID를 입력해주세요. - [eternalbleu]
* 알바 날짜가 어떻게 될지 모르는 관계로 참여 여부가 불확실합니다. 잠정적으로 빠지는 걸로 하겠습니다. 알바 날짜 잘 결정되면 다시 올리도록 하지요. --[인수]
- 데블스캠프2006/화요일/pointer/문제1/성우용 . . . . 4 matches
cout<<"a"<<a<<endl;
cout<<"b"<<b<<endl;
cout<<"a"<<a<<endl;
cout<<"b"<<b<<endl;
- 데블스캠프2009/금요일/연습문제/ACM2453/송지원 . . . . 4 matches
if(input == 0) return 0;
if(input%2 == 1) break;
if(temp %2 == 1) break;
if(temp %2 == 0) break;
- 데블스캠프2010/다섯째날/ObjectCraft/미션1/김정욱 . . . . 4 matches
if (zergling[0].hp==0){
if (zergling[1].hp==0){
if(zergling[0].hp==0)
if(zergling[1].hp==0)
- 데블스캠프2010/다섯째날/ObjectCraft/미션2/김상호 . . . . 4 matches
if(a[0].hp==0)
if(a[1].hp==0)
if(a[0].hp==0)
if(a[1].hp==0)
- 데블스캠프2010/다섯째날/ObjectCraft/미션2/허준 . . . . 4 matches
if(zeli2.HP == 0) {
if(zeli1.HP == 0) {
if(is_dead(zeli2)) {
if(is_dead(zeli1)) {
- 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/변형진 . . . . 4 matches
if (tester.getWeight(i, line) > 0) {
} else {
if (i != index) {
if (i != index) {
- 데블스캠프2011/첫째날/오프닝 . . . . 4 matches
1. 위키 사용자 등록 후 로그인한다.
* nForge 같은 프로젝트 관리 사이트와 연동하면 효과가 쑥쑥
4. 자기 이름으로 된 폴더를 만들어서 커밋해 봅시다.
5. 텍스트 파일을 다운로드 해봅시다.
- 땅콩이보육프로젝트2005/개발일지 . . . . 4 matches
* 여자친구, 재롱이, 삼삼이, 뭐있어, 땅콩, 맥주, peanut 중 4표를 얻은 '땅콩'이가 압도적인 차이로 당첨!!
* 입력 : 위키에 땅콩 페이지 개설 후 '입력'란에 입력받고 확인을 누르면 입력된다. 내용의 수정의 위해 '수정' 버튼도 존재한다. 그 아래에 같은 형식으로 '가르치기' 도 존재한다.
* 출력 : 각 위키의 페이지에 '땅콩이' 태그가 기록된 곳 아래에 차례대로 기록해 나간다.
[땅콩이보육프로젝트2005]
- 문자열연결 . . . . 4 matches
자료구조 프로그래밍에 관련된 문제입니다.
문제 : x문자열 끝에 y문자열을 연결시키는 프로그램을 작성하여라.
=== 처리조건 ===
* 출력은 파일 (result.out)로 받는다.
- 미로찾기/김민경 . . . . 4 matches
= [미로찾기]/김민경 =
{{{~cpp //maze 최단경로일필요는 없음
if (x==finish_x && y==finish_y) {
if (!data[x+dx[i]][y+dy[i]] && x+dx[i]>=1 && x+dx[i]<=finish_x && y+dy[i]>=1 && y+dy[i]<=finish_y){
- 박성현 . . . . 4 matches
== 프로젝트 ==
* 안드로이드 이미지 공유 앱 만들기 프로젝트
* 윈도우 프로그래밍 개념 익히기.
- 반복문자열 . . . . 4 matches
문제 : CAUCSE LOVE. 라는 문장을 5번 연속해서 출력시키는 프로그램을 작성하라.
=== 처리조건 ===
- for loop가 없는 언어로 작성하면 요구조건을 충족하지 못하는건가요? - 아무개
- 블로그2007/송지훈 . . . . 4 matches
if($j % 9 == 0)
책에 나온데로 한 후 위키에서 링크를 걸려고 했슴다.
이유가 뭘까요?...말 그대로 localhost 라서 그런가?...
말 그대로 localhost 라서 링크 걸어도 외부에서는 접근 못함. 위키에 링크를 걸면 외부(위키)를 통해서 접근하는거가 됨 - [(namsang)]
- 비밀키/노수민 . . . . 4 matches
ifstream fin(fileName);
cout << endl;
ifstream fin(fileName);
cout << endl;
- 산이거기에있기때문에 . . . . 4 matches
그는 등반사의 획을 그을만한 위대한 등반가로 동료인 앤드류 어빙과 함께 실종되었다.
"산이 거기에 있기 때문에"라는 대답으로도 유명했다.
근데 웃기는 일은 우리나라의 국민윤리 교과서(79년 생이전이면 배운 교과서)에는 그 말을 에베레스트 정상을 정복한 에드먼드 힐러리 경이 한 말로 그의 위대한 정신 상태를 배워야 한다고 배운 것이다.
맬러리가 마지막에 정상에 올랐는지는 아직 수수께끼로 있지만, 나는 그가 올랐든 안올랐든, 정말 노력한 그를 존경하고 기억할 것이다.
- 삶은가장큰웃음이다 . . . . 4 matches
* 아무것도 추구하지 않는 바로 그거지요.
* 배우는 방법에는 단 한가지 그것은 바로 사는것, 체험하는 것.
* 한쪽으로 기울어서 떨어질 것 같을 때마다 다른 쪽으로 몸을 기울였다네.
- 삼총사CppStudy/Inheritance . . . . 4 matches
일단 완성이다. 기쁜마음으로 제출을 했다.
다음날 문제점이 발견되었다. 마린과 파이어뱃으로 부대를 구성하여 배열에 저장하려고 하였는데 두개의 클래스가 틀리기 때문에 한개의 배열로는 포함할 수가 없었다.
아.. 이 문제를 어떻게 하면 좋을까~? 이럴때 사용할 수 있는 스킬이 바로 '''상속(Inheritance)'''이다.
- 상협/나는희망의증거가되고싶다 . . . . 4 matches
* 음.. 이책을 읽게된 동기는 우리 누나가 추천을 해줘서 읽게 되었다. 읽고 나서는 잘 읽었다는 생각이 들었다. 언제나 느끼는 것이지만 다른 인간의 투철한 삶에 대한 투쟁을 보면 나에게 그 의지가 조금이나마 전달되는거 같아서 좋다. 나는 나 자신도 상당히 의지가 굳세다고 생각했는데, 서진규 씨를 보니 본받을 점이 많은거 같다. 서진규 씨는 고생을 더 많이 했기 때문에 그 성취후의 보람도 훨씬 더 컸을 것이다. 서진규씨의 투철한 삶에 대한 의지는 감동이었다. 그런데 그 서진규씨에게 있어서 희망이라는 것이 다른 사람에게 보여주기 위한(사회적 지위와 명성 같은 타인에 의한 판가름 되는거.) 희망인지 아니면 자기 자신에게 보여주기 위한(자아실현) 희망인지는 확실히 분간을 못하겠다. 아무래도 전자인거 같은 느낌이 좀 든다. 서진규씨는 자신의 하고 싶은 공부를 하고 있다는 데에서 기쁨을 느끼기 보다 하버드라는 곳에서 그 스스로 대단하다고 생각하는 사람들과 공부를 하게 된 점에서 더 큰 기쁨을 느끼는거 같다. 그래서 약간 씁쓸하기는 하다. 그리고 서진규씨는 미국 군인이었던 만큼 미국에 대한 사랑이 큰거 같다. 개인적으로 미국 자체를 싫어 한다고 볼 수는 없지만, 현재 미국이라는 거대한 이익 집합체가 세계에 하는 행동을 좋게 보지 않는 입장이라서 그게 좀 걸렸다. 그래도 그 수많은 세월동안 미군에 있으면서 자신의 꿈을 실현해 나갔으니 이해는 간다. 음.. 이렇게 좀 삐딱하게도 조금 볼 수 는 있지만, 그래도 서진규씨의 인생에 찬사를 보낸다. 여러가지 고난을 이겨내고 자신이 생각하는 꿈을 이루었으니... 자신이 생각하는...
* 이책을 읽어 보고, 나는 앞으로 어떻게 해야할지 생각하게 된다.. 나는 앞으로.. 어떻게 해야 할지...
- 상협/너만의명작을그려라 . . . . 4 matches
* 이책의 목적은 한 인간이 삶을 훌륭하게 살아가려면 어떻게 해야 하는지에 대해서 지금까지 살와왔던 사람들중에서 훌륭한 삶을 살았다고 평가되는 사람들을 예로 들면서 그 방법을 제시해주고 있다. 이책은 이 저자혼자서 내용을 생각해서 쓴 책이라기보다 인류에게 훌륭한 인물로 평가받은 사람들이 한 말들과, 그 행적등을 밑 바탕으로 해서 쓰여진 책이다.
* 이책은 읽고나서 생각나는거 말해보라고 하면 별로 말할건 없지만, 이 책을 읽고 있을때는 많은걸 느끼고 생각하고, 내가 느껴왔던 삶과 이책에서 제시하는 삶을 비교해 보기도 하고 그랬다.
- 새싹C스터디2005/pointer . . . . 4 matches
포인터를 쓰지 않을 경우와 비교하면 이해가 쉽다.
**pc에서 중요한 것은 **pc자체의 주소인 &pc와 **pc의 값인 pc 뿐이다. 별표는 그 변수가 표시하고 있는 메모리 주소(여기에선 값)로 이동해서 그 값을 출력하는 것이라고 생각하면 편하다.
음... swap 함수에서 값이 정수(배열, 포인터 주소를 제외한 모든 값.)일 경우 xor 치환으로 간단하게 변경 가능합니다.
- 새싹교실/2011/쉬운것같지만쉬운반/2011.3.15 . . . . 4 matches
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 오늘 2시에 6피에서 새싹교실을 처음했다. 박성현 선생님께서 위키 편집법을 가르쳐주셨다. 쫌만 더 해보면 금방 익숙해질것 같다. 앞으로 새싹교실에서 더 유용한걸 많이 배우게 되겠지??:) - [송치완]
- 새싹교실/2012/열반/120507 . . . . 4 matches
* A[n]으로 선언할 경우 첨자는 0 부터 n-1 까지 쓸 수 있습니다.
* 어떤 도서관의 서가에 책이 정렬되어 있지 않다고 가정해봅시다. 그 상황에서는 어떤 특정한 책을 찾기는 매우 힘듭니다. 우리가 도서관에서 책을 쉽게 찾을 수 있는 이유는 책들이 정렬 되어 있기 때문입니다. 단, 저런 편리함을 위해서는 어느 정도의 비용이 발생합니다. 기존의 데이터를 정렬할 때 드는 비용이 있고, 새로운 데이터가 삽입하려 할 때 정렬을 유지하기 위해 드는 비용이 발생합니다. 예를 들어 도서관의 서가에 책이 정렬되어 있으면 새로운 책이 들어왔을 때 제 자리에 찾아 꽂아야 하지만, 정렬되어 있지 않다면 아무 빈 공간에 꽂으면 됩니다. 이렇듯 비용이 발생하기 때문에, 어떤 자료를 항상 정렬할 필요는 없습니다. 찾는 일보다 추가하는 일이 훨씬 많다면 정렬하지 않는 것이 이득이 될 수도 있습니다.
- 새싹교실/2012/열반/120514 . . . . 4 matches
if(n<=1){
}else{
if(n==1){
}else{
- 새싹교실/2013/라이히스아우토반 . . . . 4 matches
* 새싹을 통해 정말로 유용한 측면에서의 언어를 배우고 컴퓨터언어를 최대한 마스터 하는 쪽으로 노력하겠습니다.!!-[박경준]
* 너무 공부쪽으로 생각하지 말고 다른것도 물어봐도 됨.
중간고사 2주전이라 기출문제를 주고 풀어보는 시간을 가진걸로 끝(...) 미안
- 새싹교실/2013/록구록구/6회차 . . . . 4 matches
Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
(느낌)기대를 잔뜩 했는데 별로 맛이 없었다.
(앞으로의 계획)다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.
과정을 하나하나 차례로 해보니 헷갈리기도 하였지만 상호선생님이 매우 자세히 설명해 주셨다.
- 새싹교실/2013/양반/5회차 . . . . 4 matches
Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
디버깅 자세히 알게됨. 기초프로그래밍 시간 예습 공부를 함.
- 서버구조 . . . . 4 matches
usr - 사용자가 정의하는 프로그램 저장
webalizer - 로그분석
1. 설치된 프로그램의 버전, 버그등의 수정이 이루어지면 갱신하거나 패치하도록한다.
1-2. caucse.net/test.html => 각 프로그램들의 버전, 설정 정보들을 알 수 있다.
- 세미나/02대상 . . . . 4 matches
동문서버에 올리는 거로만으로도, 충분 할 듯. 02학번의 가입율은 벌써 91% 이고. 아무 것도 하지 않는 자에게 떠먹여준다는 것은 좀 씁쓸하니.. 차라리 사람이 적더라도 그리하는게 나을듯해보입니다. --남훈
음...02_Archi는 중간 고사 끝나고 그 주쯤에 하기로 하겠습니다. --정직
* 6/4 일은 컴공 내에서 다 같이 축구를 보기로 했단 말이지.
- 세여니 . . . . 4 matches
전공책을 원서로 사긴샀는데 솔직히 넘 부담스럽다 [[BR]]
뭘 써야 할지 몰라서 계속 빈페이지로 놔뒀었는데 드뎌 오늘 완성했군[[BR]]
* 로봇들이 메일주소 긁어 간다는 소리를 들어서 한칸 띄어 놨습니다. --["상민"]
* 오홋! 저위에 "BOOK"이라고 써있는데 가보니 책들이 소개 되어 있네요!(를 보아하니..)..지금 '서양문화사'라는 과목을 듣는데 누나두 재밌게 들으실듯 하네요!! C++을 어쩌다 말려서 안듣고 듣게 된 과목인데..별로 후회안합니다! 나중에 들으세요! ^^ - 정훈 -
- 소수구하기/재니 . . . . 4 matches
if (i % premium[j] == 0) break;
if (premium[j] > i / 3)
clock_t end = clock() - start;
cout << (double)end/CLOCKS_PER_SEC << "초\n";
- 송수생 . . . . 4 matches
== 진행중인 스터디 및 프로젝트 ==
[2005리눅스프로젝트]
[땅콩이보육프로젝트2005]
[05경제객체프로젝트]
- 수면과학습 . . . . 4 matches
==> 회복을 위해서는 서파 수면, REM수면의 중요도 시사, 수면의 회복은 곧 정신력의 회복이며, 맑은 정신력의 기준은 알파파를 기준으로 삼는다.
1. 기억의 쇠퇴 경향으로 보았을때, 수면시 느리다.
* Smith & Lapp(1991) : 새로운 정보를 평소보다 많이 학습할 것으로 추정되는 시험 기간동안 대학생들 REM수면의 증가를 보인다.
- 수학의정석/방정식 . . . . 4 matches
문제: 강물이 흐르는 속력은 xkm/hr 이다. 이 강을 따라 ykm의 거리를 배로 왕복하는 데 t분 걸렸다고 한다. 이 때, 잔잔한 강물 위에서의 이 배의 속력을 구하여라.
x, y, t를 순서대로 넣는다.
= 처리조건 =
수학을 풀어서 간단한 식으로 나타내어 결과를 출력해도 좋다.
- 스택/이태양 . . . . 4 matches
if(stack[top] != '\0')
else
if(stack[bottom] == '\0')
else
- 시간맞추기/조현태 . . . . 4 matches
..문제는 별로 어렵지 않았다. time이녀석이야 평소에도 쓰니까..
본인은 귀차니즘으로 그냥 1초.ㅎㅎ 8-9초사이에 눌러주기만 하면 된다.^^
if (second==ANSWER_TIME-1)
else
- 시작이반 . . . . 4 matches
- from 히로나카 헤이스케의 '학문의 즐거움' 중 '창조의 여행 - 시작이 반' 중에서..
'발명광'이라 불리는 프랭클린은, 번개가 칠 때 연을 날리는 실험을 함으로써 번개가 전기임을 증명하여 피뢰침을 발명한 것으로 유명하다. 어느 날 그는 또 하나의 발명을 하여 친구 집에 뛰어가 자랑스럽게 그것을 보여 주었다. 그런데 계속되는 그의 발명에 약간 싫증이 난 친구는 "도대체 그렇게 유치한 것을 만드는게 뭐가 대단하며, 무슨 소용이 있나?" 라고 말했다. 그러자 프랭클린은 옆에 누워 있던 갓난아이를 가리키며 이렇게 반문하였다. "그렇다면 이 아기는 무슨 쓸 데가 있는가?"
창조라는 것이 출발점에서 모두 유치하다는 것이다. 다시 말해서 창조의 원형은 아기와 같고 그 것이 충분히 성장해야만 비로소 이용가치가 밝혀지는 것이다. 프랭클린은 창조의 과정이 아기를 키워가는 것과 다름없다고 말하고 있는 것이다.
- 아젠더패턴 . . . . 4 matches
아젠더(Agenda)가 없는 스터디 그룹이나 소그룹(SubGroupPattern)은 없다. 이 아젠더는 그룹 목표의 틀을 잡아주며, 멤버들이 일찌감치 준비하도록 해주며 사람들이 참여할 모임을 선택할 수 있는 기회를 준다.
그러므로,
최고의 아젠더는 그룹이 작품을 순차적으로 학습([순차적학습패턴])하도록 짜여진 것이다. 그룹이 작품을 학습하기를 마치면, 그 작품을 원래 학습할 때 없었던 그룹의 새로운 멤버들이 그 작품을 학습할 기회를 갖기를 원할 수도 있다. 이는 학습 주기(StudyCyclePattern)와 소그룹(SubGroupPattern)을 만들어서 수행할 수 있다.
- 아주오래된농담 . . . . 4 matches
행복한 결말은 애초에 바라지도 않았다. 읽는 동안 나에게 질문을 던졌다. 말기암 환자에게 병명을 말해주어야 할까? 모든 여자를 성녀와 나쁜 년으로 구분할 수 있을까? 남자는 가정이 있어도 다른 여자에 대한 유혹을 뿌리칠 수 없을까? 악조건이 사람을 악다구니로 만들까?
마음이 불편하다. 사람이 사람을 속이기가 얼마나 쉬운지 생각해본다. 자기한테 이익이 되니까, 재미로 남을 골탕먹이려고 속이기는 물론이고 자기 딴에는 배려한다고, 사랑하기 때문에 속인다. 남을 속이고, 나까지 속인다. 위선자가 되기 싫으면 최소한 나는 속이지 말아야지.
- 안전한장소패턴 . . . . 4 matches
...좋은 물리적 환경 (CommonGroundPattern, PublicLivingRoomPattern)은 어떤 스터디 그룹에서든 필수적이다. 이 패턴에서 설명하는 지성적 환경 역시 마찬가지로 필수적이다.
그러므로,
'''각자 서로를 돕고 모두가 질문하고 실수하는데 편안함을 느끼는 따뜻하고 관대하며 공손하고 집중된 환경을 만들어라.'''
실제로, 그룹 내에는 언제나 어느 정도의 개인적 충돌이나 불화가 있게 마련이다. 그런 이슈에 대해서 이야기 할 수 있도록 세션이 끝난 뒤에 사람들이 모이는 것(AfterHoursPattern)이 도움이 된다.
- 영어단어끝말잇기 . . . . 4 matches
위로 쌓아가세요.
8.end
더불어 뜻은 한글로 바로 적지 말고 영영사전(예를 들면 [http://www.oup.com/elt/global/products/oald/lookup/ OALD])을 이용해 적어주는 것도 괜찮을 듯.--[Leonardong]
- 이민석 . . . . 4 matches
* 나도 모르게 제로페이지 회원이 되었다.
* 너도 모르게 ZP로 만들었다. -[김태진]
* 커먼 리스프로 게임 서버 제작
* ElanVital - 가사 시각화 프로그램
- 임인택/RealVNCPatcher . . . . 4 matches
* 이미 만들어놓은 RealVNC 한글화 패치 자동으로 해주는 인스톨러..작성..-_-a
* 시스템 시작 서비스 목록에서 VNC Server Version 4 에 대한 실행경로 가져오기. (레지스트리에는 없다)
- 윈9x 일 경우에는 어쩌지? -> 쌩까...? -_-;;
2004.9.14 끝냄. [http://radiohead.egloos.com/718212/ 한글패치]
- 자바와자료구조2006 . . . . 4 matches
[http://www.gayhomes.net/debil/diflucan.html diflucan]
[http://h1.ripway.com/redie/diflucan.html diflucan]
- 장용운/알파벳놀이 . . . . 4 matches
using std::endl;
void draw(char begin, char end) {
for(int i=0; i<= (end-begin); i++) {
cout<<endl;
- 장정일삼국지 . . . . 4 matches
글쓴이는 머리말에서 이전에 화이론과 영웅주의로 무장한 삼국지에서 벗어나, 중국 외부 세력 뿐만 아니라 이름없이 그 시대를 살던 민중까지 소설 속에 담는다는 포부를 밝혔다. 삼국지에 원전이 있다는 편견을 버리고 지금 시대를 사는 사람의 눈으로 삼국지를 재해석하겠다는 것이다. 그래서 동탁과 여포가 한족이 아니라서 겪는 외로움과 서러움도 그려지고, 황건 농민군(황실에서 바라보았을 때 황건적)도 소탕해야 할 도적떼가 아닌 민중으로 묘사된다.
- 재미있게공부하기 . . . . 4 matches
어떤 주제를 공부하는 길은 여러가지다. 꼭 수업에서 정해준 교재로 공부해야할 필요는 없다. 모든 공부에 정도란 없다. 자신이 재미있어할만한 자료를 찾아라. 그것이 책이든, 사람이든, 인터넷이든. 다만, 그런 자료를 찾느라 모든 시간을 허비하는 잘못을 하진 말아야 한다. 먼저 공부해 본 사람들에게 물어본 다음 그 중에서 고르는 것이 효과적이다.
다른 사람과 함께 공부한다. 다양한 관점과 해석이 가능하다는 것을 배운다. 그들의 경험을 배운다. 용기를 얻고 두려움이 사라진다. 재미가 생긴다. 특히 서로를 가르치는 것도 아주 좋은 방법이다.
''재미있는 것부터 하기''와 비슷하게 특정 부분을 고르고 그 놈을 집중 공략해서 공부하는 방법이다. 이 때 가능하면 여러개의 자료를 총 동원한다. 예를 들어 논리의 진리표를 공부한다면, 논리학 개론서 수십권을 옆에 쌓아놓고 인덱스를 보고 진리표 부분만 찾아읽는다. 설명의 차이를 비교, 관찰하라(부수적으로 좋은 책을 빨리 알아채는 공력이 쌓인다). 대가는 어떤 식으로 설명하는지, 우리나라 번역서는 얼마나 개판인지 등을 살피다 보면 어느새 자신감이 붙고(최소한 진리표에 대해서 만큼은 빠싹해진다) 재미가 생긴다. see also HowToReadIt의 ''같은 주제 읽기''
- 전문가의명암 . . . . 4 matches
전문가라는 것은 한가지 방면에 도가 텄다는 것을 말한다. 여기서 말하는 "도"라는 것은 장인(craftsman)의 의미를 내포한다. 그 유명한 미야모토무사시가 무엇때문에 하산하자마자 좌절하고 다시 입산했던가. 기름장수가 쳐다보지도 않고 기름을 퐁퐁 공중으로 날려 호리병에 넣는 모습을 보고 그는 충격을 먹었다. 그 기름장수는 분명 전문가였다.
NoSmok:AlfredNorthWhitehead''''''는 ''Civilization advances by extending the number of important operations which we can perform without thinking of them.''라는 명언을 남겼다.
그 밝음 때문에 그림자가 생긴다. NoSmok:장점에서오는단점''''''인 셈이다. 어떤 작업을 하는 데 주의를 덜 기울이고 지력을 덜 씀으로 인해 전문가는 자기 작업에 대한 타자화가 불가능하다. NoSmok:TunnelVision''''''이고 NoSmok:YouSeeWhatYouWantToSee''''''인 것이다. 자신의 무한 루프 속에 빠져있게 된다. 자신의 작업을 다른 각도에서 보는 것이 어렵다 못해 거의 불가능하다. 고로 혁신적인 발전이 없고 어처구니 없는 실수(NoSmok:RidiculousSimplicity'''''')를 발견하지 못하기도 한다.
- 정규표현식/스터디/문자하나찾기/예제 . . . . 4 matches
1. t로 시작해서 .txt 로 끝나는 문자열
1. t.*\.txt : t로 시작 .* 0개 이상의 문자 문자 \.txt '.'을 이스케이프 시켜 보통 문자로 만듬 그리고 txt랑 붙어있음
- 정모/2002.10.30 . . . . 4 matches
* 중간 고사로 약간의 지체, 약 2주차 정도 진행후에 프로젝트의 진행으로 성격을 바꿀 것 예정
* 고객을 모집합니다. 고객은 저희와 함께 개발하며, 프로그래밍적 지식이 없어도 상관 없습니다.
- 정모/2002.3.14 . . . . 4 matches
3. 14 제로페이지 정모
1. 제로페이지에 대한 설명(프로젝터, 프린트물, 창립제 자료집)
2. 앞으로의 계획(재학생들도 고려 - 차별화)
- 정모/2003.2.12 . . . . 4 matches
* 새로운 회장단 축하합니다. ^^ --창섭
* 단장에게 큰 의무같은건 없지만 앞으로 열심히 하겠다는 마음이 있으면 뭐든지 할 수 있을거야~ --선호
''조금은(사실은 쫌 많이 -_-) 냉소적인 상민이의 말투를 모르는 새내기라면 상처받을 접대로구려.. 6ㅡㅡ --["sun"]'' [[BR]]
*어쩌다가 위키위키에 대해 배우게 됐는데(아주쪼금)제로페이지홈피에 위키가 있다구해서...-희경
- 정모/2003.4.29 . . . . 4 matches
2. 03 대상으로 행사를 하자.
1. 기웅이가 스터디에서 빠진 관계로 대근이 혼자 남게 되었는데, 혼자서 공부를 하기는 좀 무리인 것 같고, 다른 한 사람을 끌어들이려 합니다. 아마 참솔이가 될 듯...
2. 03대상의 행사는 아마도 세미나가 될 듯한데, 그 내용이 책의 내용을 답습하는 것이 될 지, 아니면 작년에 했던 것처럼 예제를 풀어보는 것이 될 지, 확실하게 정해진 것이 없습니다. 또한 세미나 인원(3~4명으로 팀을 나눠서 스터디 식이 될 지, 아니면 교실 하나에 여러 명 집어넣고 하는 식일지)도 아직 정해지지 않습니다.
3. 상욱이가 제로페이지 홈페이지의 디자인을 바꾸자고 하네요. 아마 이것은 PHP스터디가 끝나고 진행될 것 같습니다.
- 정모/2003.8.26 . . . . 4 matches
* [MedusaCppStudy] => 스터디 종료. 나름대로 성공적이었음.
* [HardcoreCppStudy] => 마지막 수업이 남았고, 원래는 OOP를 중심으로 실습하려했으나 여러 사정으로 마지막 시간을 OOP로 하고 끝낼 예정
- 정모/2004.1.6 . . . . 4 matches
== 프로젝트 진행상황 ==
* 숫자야구 : 콘솔창에 띄움. GUI로 바꾸는 과정에서 고생중
* 1월 10일 토요일 4시 7피실 - 페어 프로그래밍
* 미리 못 온다는 사람 빼고는 다 왔다. 잘했어요~ 하지만 회의 준비를 하고 준비하고 싶었는데 뜻대로 안 되었다. 회의 시간도 안 지켜졌다. 회의에 준비가 필요한 이유를 먼저 설명하고 시작해야 했을까? 정모가 회의를 위한 것이 아닌데도 회의만 하고는 끝났다. 음..다음에 또 도전해보자. -[Leonardong]
- 정모/2005.9.5 . . . . 4 matches
* 개강총회 형식으로 간단한 뒷풀이가 있었습니다.
* 회원정리 - 다음주 까지 안나오는 사람들은 앞으로 문자를 안보내기로 선언;;
* 관리 피씨실이 7피로 바뀌었음.
- 정모/2011.11.9 . . . . 4 matches
== 스터디/프로젝트 공유 ==
* 10월 한달 동안 ZP에서 했던 일을 각자 -5 ~ +5로 점수를 매김
* 소닉 OMS를 보면서 소닉이 돌 때 마다 제 머리도 따라서 움직인 듯한 느낌이?! 그리고 소닉x는 사람도 등장하길래 안 봤었는데, 쉐도우가 궁금해서 봐야할 듯 합니다ㅋㅋ 게임에 나오던 로봇 소닉도 등장한다고 봤던거 같은데 은근 재밌을 것 같아요. 다음 주에 예정된 쓰레기로 작품을 만드는 것도 기대됩니다. 혹시 A4용지 박스 필요하면 말씀주세요ㅎㅎ - [강소현]
- 정모/2011.12.7 . . . . 4 matches
* 시험 끝나는 주에 ZeroPage 종강파티 합니다. 아웃백에 갈 것으로 결정이 난거 같습니다.
* 날짜는 12월 22일 점심으로 예정하고 있고, 기년회도 같이 진행 할 것이라고 합니다.
* [서지혜] 학우가 바빠서 준비를 해오지 못했고, 다음 정모때 하기로 하였습니다.
* 사람이 적어서 다음에 공유하기로 하였습니다.
- 정모/2012.8.22 . . . . 4 matches
* 회비 관련 학칙을 회계로 수정
* 1년 반 이상 안 보인 회원들을 대상으로 더 이상 학회 활동을 하지 않을 회원들을 은퇴 또는 휴면 처리
* 정례 컨퍼런스 개최 - 올해에는 Web, Java를 주제로 2회 컨퍼런스를 할 예정. 앞으로도 이런 행사가 정착되었으면 좋겠다
- 정모/2012.9.17 . . . . 4 matches
* 22기 [박상영] 학우의 OMS - 솔로천국 & 여자의 마음을 사로잡는 법
== 스터디/프로젝트 ==
* 학회 교류 - 우리 학교의 학술 동아리 또는 다른 학교의 학술 동아리들과 서로 교류하는 기획
- 정모/2013.2.26 . . . . 4 matches
* 학생회 일정을 보고 확정되는대로 위키와 공지사항에 올리겠습니다.
* 특별한 동아리 행사가 없는 경우 예정대로 진행 예정입니다.
=== 스터디/프로젝트 공유 ===
- 정모/2013.8.26 . . . . 4 matches
* 2학기 중 정모 시간을, 수요일 오후 6시로 변경했습니다. 착오 없길 바랍니다. ^^
* 현행 방식에서 약간 문제점이 있어, 새로운 방법을 연구중입니다.
* ACM 대회 : 3인 1팀으로 구성되며, 신청은 9월 중까지 가능. 관심있는 사람 신청 바람.
== 스터디 프로젝트 공유 ==
- 조동영/이야기 . . . . 4 matches
- 마찬가지로 구조가 잘 잡혀있는 코드 (홍선)
- 어떤식으로 돌아갈지 생각후 코딩 시작 (홍선)
전체적으로 원활하게 돌아간것 같지만, 남이 알아보기에는 불편함이 많았다.
- 기존의 경험을 바탕으로 코딩 시작 (인택)
- 조영준/CodeRace/130506 . . . . 4 matches
* C#은 이런 저런 일을 하는데 편안한 기능이 많다보니 다른 언어로 짠 다른 분들의 코드를 보니 게을러지는 느낌이 살짝.
if (j == p.Count)
if (p[j].word == s[i])
if (p[i].word == null) break;
- 좋은위키페이지 . . . . 4 matches
["데기"]는 생각과 느낌을 나누는(곱하기까지 하면 더 좋고...) 페이지가 좋다. ["Python"] 페이지에서 파이썬 학습을 위한 로드맵만을 만나는 것보다 "내가 어제 말로만 듣던 파이썬을 써서 구구단을 짰는데 너무 쉽고 재밌어서 감동이더라."와 같은 경험을 나누는게 더 반가울것 같다. --["데기"]
["상민"] 이도 ["데기"] 가 말하는 부분들이 아쉽다. 그러한 느낌을 기록하고, 그것을 공유하는 것이 위키의 순기능중 하나라고 생각한다. 하지만, 그런 모습이 ZeroWiki에 부족한 이유가 느낌을 기록하기 위해 글을 쓰는 '''용기'''가 부족하기 때문이라고 생각한다. ZeroWiki에서는 경험과 느낌이 표현되는 곳은 프로젝트 페이지의 '''여정'''이나 '''느낌''' 기록하는 부분이나 이벤트의 '''후기''' 같은 부분이 주가 되고 있다. --["상민"]
'더 좋은' 것을 지향하되, 사람들이 자신의 수준에서 한발자국 더 내딛은 것에 대해서 서로 격려해줄 수 있어야 할 것 같다. 후배들이 '용기'를 낼 수 있어야겠지만, 다른 사람들이 '용기'를 전해줄 수도 있어야 할 것이다. --칭찬에 인색한 못된선배 ["1002"]
- 주민등록번호확인하기/문보창 . . . . 4 matches
if (sum >= 10)
if (key == sum)
if (isRight == true)
else
- 주요한/노트북선택... . . . . 4 matches
나같은 경우에는 [http://kr.dcinside14.imagesearch.yahoo.com/zb40/zboard.php?id=notesell nbinsde노트북중고] 에서 중고 매물로 소니바이오 S38LP를 158만원에 샀는데,, 아는 선배는 같은것을 새거로 290만원 가까이 주고 샀었다는 말을 주고 보람도 있었음,,
게시판에 처럼 제목을 위키에서는 잘 안짓습니다; 자기이름/노트북선택 << 이런식으로 카테고리를 정확하게 해주세요.
- 중위수구하기 . . . . 4 matches
문제 : 세 수 A, B, C를 받아들여 그 중 중위수를 구하는 프로그램을 작성하여라.
=== 처리조건 ===
* a = -999 이면 프로그램이 끝나게 한다.
* 세 수 A, B, C는 정수로 받아들인다.
- 중재자패턴 . . . . 4 matches
...참여자의 교육적인 경험에서 대화라는 수단은 직접적으로 어마어마한 비중을 차지한다. 이게 형편없이 잘 안되면, 대화는 통찰력의 풀([통찰력풀패턴])도, 안전한 장소([안전한장소패턴])도 될 수 없다. 이 패턴은 일종의 어떤 지침이 가치있는 교육적 경험을 하는데 도움이 될지 설명한다.
'''중재자가 없으면, 대화가 목적없이 흐를 수 있고 논쟁이 속출할 수 있다. 사람들이 서로를 뒤에서 험담할 수도 있으며, 그룹이 작가의 깊은 의미를 탐구하는데 실패할 것이다.'''
그러므로,
중재에 익숙해지려면 시간이 걸릴 수 있다. 왜냐하면 이는 적극적으로 말하고, 듣고, 관찰하는 것을 수반하기 때문이다. 또한 반드시 사려깊게 준비해야한다. 언제 대화에 개입할지 적절하게 결정하지 못하면 논쟁이 될 것이다.
- 지금그때2003/ToDo . . . . 4 matches
NeoCoin 군은 페이지 보는대로 외부 링크로 사용하시길.
* http://zeropage.org/pub/nowthen/
* http://zeropage.org/pub/nowthen/view_register.php
- 지금그때2004/전통과사유20040329 . . . . 4 matches
* 5:30 신피 모임, 칠판있는 곳으로 이동, 자료확인(4413)
* 느낀점은? 하나의 키워드로 요약하면?
* 현재 준비에서 문제점이 구체적으로 드러났다는 점.
* 첫번째 회의가 상대적으로 너무 시간낭비였다는 느낌.
- 창섭/삽질 . . . . 4 matches
* 같은 실수를 두번하지 않도록. 페이지를 만들어 가끔 둘러보다보면 무의식중에 실수를 방지할 수 있을 거란 생각에 만듦. 사람은 한 번 본것은 무의식에 저장을 하고 자신도 모르게 무의식이 의식으로 나온다 하지 않던가...
* 실수는 어이없게 생기는 경우가 허다하다. 황당하게 시간버리지 말자. =_=
* 이제 절대로 하지 않을 것 같은 삽질, 내가 생각하게에 제일 어이없는 삽질 순위 3까지만 보관한다. 나머진 큐처럼 지우기.
* 이상하게 함수가 작동을 안하거든 기본적으로 parameter 갯수와 reference 여부를 확인하자.
- 최소정수의합/문보창 . . . . 4 matches
inline void show_min_sum(int n) { cout << n << " " << (n * n + n) / 2 << endl; }
* 원래 이렇게 쓰는거 인가요 ? n(n+1)/2 가 n까지 숫자의 합으로 알고 있는데, 코딩할 때 만약에 공식을 모르는 경우는 어떻게 하나요?
* 음... 굳이 처음에 공식을 모르더라도 문제에 나온 식을 보고서 충분히 n(n+1)/2 를 유도해 낼 수 있습니다. 공식을 외우는 것이 중요한 것이 아니고, 해당 문제에서 규칙성을 찾고, (물론 규칙성이 없는 문제도 많습니다), 이 규칙성을 하나의 수식으로 변환시킬 수 있다면 문제를 쉽게 풀어낼 수 있고, 또 이 과정이 공식을 외우는 것보다 훨씬 중요하다고 생각합니다. --보창
- 최소정수의합/허아영 . . . . 4 matches
로 정정해주세요.^^ 그리고 n=1에서 n=0으로 바꾸어야 합니다.^^ -[조현태]
만약에 3000까지가 아닌 더 큰 수를 입력하고 프로그램을 돌려보시겠어요? 위의 코드에서 int 를 double 형으로 바꾸고 3000 대신 18000000000000000000 을 넣은 코드입니다. 한번 실행해 보세요. 더 나은 방법이 생각나실수도 있을것 같아요. 문제를 풀고 나서 어떤 점을 느끼셨나요? - 아무개
- 캠이랑놀자/아영 . . . . 4 matches
im = Image.open("lena_modified.jpg")
if((newR) < 0):
if((newG) < 0):
if((newB) < 0):
- 큰수찾아저장하기 . . . . 4 matches
{{{~cpp 문제 : 전체 4 * 4 행렬의 공간 중 3 * 3 행렬의 공간에 키보드로 입력을 받아 숫자를 저장한 후,
행렬[3][3]에는 전체 중 가장 큰 수를 찾아 저장한 다음, 이들을 깔끔하게 출력하는 프로그램을 작성하여라.
키보드로 9개의 숫자를 입력하고, 3 * 3 공간에 저장한다.
이런식으로 출력한다. (입력된 숫자만)
- 큰수찾아저장하기/문보창 . . . . 4 matches
if (arr[i][SIZE-1] < arr[i][j])
if (arr[SIZE-1][i] < arr[j][i])
if (arr[SIZE-1][SIZE-1] < arr[i][SIZE-1])
cout << endl;
- 타도코코아CppStudy/0811 . . . . 4 matches
최소 한개. 무조건 클래스를 이용하세요. 일단 문법을 익혀야 하니... 또한 될수 있으면 객체지향적으로.
|| ZeroWiki:ClassifyByAnagram || . || . || . ||
* 글쎄다.. 누가 페이지 실수로 날려먹었나? --; --[인수]
- 토이 . . . . 4 matches
* 생각나는대로 일단 적어봅시다
||[만년달력] ||원하는 년도와 달을 쓰면 그 달의 달력이 나오는 프로그램 || O || O || X || X ||
||[SpiralArray] ||나선형으로 숫자가 증가하는 2차원 배열 || X || O || X || X ||
[프로젝트분류]
- 파스칼삼각형/강희경 . . . . 4 matches
if(column > 0){
else
cout << "잘못된 입력입니다."<< endl;
cout << endl;
- 프로그래밍잔치/셋째날 . . . . 4 matches
1. 먼저 간단한 문제에 대한 프로그램을 작성한다. 제한 시간이 짧으니 가장 빨리 짜도록 한다.
관련 화일 : [http://zeropage.org/pub/WinMergeSetup.exe winmerge(화일비교프로그램)]
["프로그래밍잔치/셋째날후기"]
["프로그래밍잔치"]
- 피보나치 . . . . 4 matches
기본적인 함수의 제작은 재귀호출로 만들어야 하나, 다른 방법을 사용해도 됩니다.
참고로 피보나치 수열은 : 1, 1, 2, 3, 5, 8, 13... 으로 나가는 수열로 1번째 수와 2번째 수는 1이고 3번째 수 부터는 앞의 두 수를 더하면 됩니다.
- 피보나치/김정현 . . . . 4 matches
if(num<=1) return num;
//파이선으로 작성
if a<=1:
if __name__ == '__main__':
- 하노이탑/조현태 . . . . 4 matches
if (1==num)
cout << from << "에서" << target << "으로 옮깁니다.\n";
else
cout << from << "에서" << target << "으로 옮깁니다.\n";
- 홈페이지분류 . . . . 4 matches
["홈페이지분류"]로 분류되는 페이지들은 개인 페이지이므로 자유롭게 사용하되 제로페이지에서 자신이 참여하고 있는 스터디, 혹은 개인적으로 하고 있는 공부들, 전시회 준비 상황과 같은 내용들이 포함되면 더욱 좋을 것 같다. -- ["데기"]
- 황재선 . . . . 4 matches
* [실시간멀티플레이어게임프로젝트]
* [PPProject] : 생각하는 프로그래밍
* 숙제의 압박에서 벗어나 프로젝트 진행하고 싶구나.
* 기억나시나요? ㅋㅋ 바로 옆에서 밥 먹었는데..^^;;;
- 05학번만의C++Study/숙제제출/4 . . . . 3 matches
* 05학번만의C++Study/숙제제출1/허아영 <<- 글쓰기를 눌러서 이런 식으로 페이지를 만드시고 거기에 자신의 소스를 올리시면 됩니다.
* INT형을 만족하는 숫자를 입력하면 그 숫자를 저장하는 클래스를 생성되었다는 메시지와 함께 생성하라. 만약 입력된 숫자를 가진 클래스가 이미 존재할 경우에는 클래스가 가짖 숫자를 출력하고 해당 클래스를 삭제한다. 프로그램이 종료될떄에는 모든 클래스를 삭제한다. (단 숫자의 출력은 파괴자에서 해야한다.)
- 1~10사이 숫자 출력, 5 제외 (continue 문 사용) . . . . 3 matches
if ( i == 5 )
else
cout << i << endl;
- 2002년MT . . . . 3 matches
1. 청량리역에서 버스타는곳 쪽으로 가서 버스를 타고 간다.
* 학번별로 분류해놔야 하나.. (고학번이 위로오게 수정해주세요~)
- 3N+1Problem/강소현 . . . . 3 matches
if(n%2 == 1)
else
if(max < length(i))
- AM/20040712세번째모임 . . . . 3 matches
* 시간부족, 노트북 말썽, 참여율 저조,... 여러 안 좋은 상황에서도 꿋꿋이 모임이 진행되었습니다. 발표자로서 설명할 내용이 많았는데 제대로 전달하지 못한것 같아 아쉽구요. 혹시라도 시간문제때문에 참여못하신분은 가능한 시간을 적어주세요. 최대한 시간을 조절하겠습니다. 그리고 예습은 필수랍니다~~ --[곽세환]
* 오늘 스터디 있는것 몰랐어요; 모 제로페이지 잘 안들어와봐서 몰랐던건 내탓이지요; 목욜날 갈수있도록 할께요; [이슬이]
- APlusProject/CM . . . . 3 matches
예를 들어 개발 계획서는 끝났으므로 이전 버전 까지 해서 모두 압축해서 하나의 파일로 올리는 것입니다.
그리고 CM 개인적으로도 가지고 계셨으면 합니다. --재동
- ActiveTemplateLibrary . . . . 3 matches
{{|The Active Template Library (ATL) is a set of template-based C++ classes that simplify the programming of Component Object Model (COM) objects. The COM support in Visual C++ allows developers to easily create a variety of COM objects, Automation servers, and ActiveX controls.
ATL은 템플릿으로 이루어진 C++ 클래스 집합니다. 이 클래스들은 COM 객체를 프로그래밍하는 과정을 단순화시킨다. VisualC++에서 COM의 지원은 개발자들이 쉽게 다양한 COM객체, Automation 서버, ActiveX 컨트롤들을 생성하도록 해준다.
- AnC . . . . 3 matches
Ability and Community 의 줄임말로
실력 그리고 커뮤니티 형성을 주 목적으로 두고 있는
현재 ZP 07학번 [김동준] 학우가 선수로 뛰고 있다.
- AnEasyProblem/정진경 . . . . 3 matches
(if (< a b)
(if (< n 1)
(if (= n (BitCount m))
- Ant/BuildTemplateExample . . . . 3 matches
<target name="compile" depends="init">
<target name="dist" depends="compile">
<!-- ${build} 디렉토리 안의 class 화일들을 /dist/TestAnt.jar 화일로 묶음. -->
- AntTask . . . . 3 matches
<target name="compile" depends="init">
<target name="dist" depends="compile">
<!-- ${build} 디렉토리 안의 class 화일들을 /dist/TestAnt.jar 화일로 묶음. -->
- BasicJAVA2005/실습1/송수생 . . . . 3 matches
if(arry[i]==temp[i])
else for(int j=0; j<3; j++)
if(arry[i]==temp[j])
- BasicJAVA2005/실습2/허아영 . . . . 3 matches
안에꺼는 int-> string 형으로 변환해서
Upload:내가처음만든자바프로그램2.bmp
public class GridLayoutDemo extends JFrame implements ActionListener{
- BeeMaja/김상섭 . . . . 3 matches
if(-1*num < count)
else
cout << x << " " << y << endl;
- Benghun . . . . 3 matches
다른 곳으로 이사중 [http://earth.uos.ac.kr/~puteri/cgi-bin/puteri/wiki.cgi?강병훈 강병훈]
nosmok - moin 으로 바꾸어서 이런 [FrontPage] 링크가 됩니다. 그리고 로그인 기능을 풀어 놨으니 해보세요. 편해요. --NeoCoin
- BirthdayCake/허준수 . . . . 3 matches
if(Gradient[k].gradient > Gradient[j].gradient) {
cout << a << " " << b <<endl;
if(numCherry == 0)
- Blink . . . . 3 matches
원서로 보다가 진도가 너무 안 나가서 번역서로 마저 읽었다. 첫 순간에 내린 판단, 그것이 편견으로 이어지기 쉽기 때문에 조심해야겠지. 무엇보다도 다른 사람에 대해 내리는 판단은 틀리기 십상이기에, 누군가를 두고 두고 알아갈 수록 진면목을 볼 수 있다는 생각을 다시 한 번 해본다.
- C++0x . . . . 3 matches
* C++ 의 새로운 표준안.
* 0x라는 이름은 2010년이 되기 전에 완성하자는 의미였지만 어쩔수 없에 10진수로 넘어가게 됨
== 새로 추가된 기능 ==
- C++HowToProgram . . . . 3 matches
Deitel 부자의 C++ 개론 서적. 대학에서 교재로 많이 사용한다.
C++ 사용자 그룹에서는 "초보자에게 괜찮은 책"이라는 평가와 동시에 "형편없는 책"으로도 악명이 높다. see also [http://www.accu.org/bookreviews/public/reviews/cp/cp003204.htm ACCU review]
특히 "잘못된" 알고리즘(닥터도브스저널에 이 책에 실린 알고리즘의 오류를 지적하는 기사가 실렸다)이나 바람직하지 않은 스타일, 이디엄이 많이 있어서 초보자들에겐 극히 위험한 책으로 평가 받기도 한다.
- CNight2011/윤종하 . . . . 3 matches
* 배열은 선형으로 구성되어있다.
* 2차원 배열의 parameter 전달법으로 알아보는 즐거운 배열의 신비
* 지원 누나의 C언어로의 구조 설명
- Cocos2d . . . . 3 matches
* 서울어코드 멘토링에서 Code S 팀 중, [김민재]와 [백주협]이 "스마트 TV 게임 어플리케이션"을 제작하기로 함.
* 스마트 TV와 안드로이드 디바이스에서 Cocos2d를 활용하여 게임 진행현황을 보여주기로 함.
- CodeRace/20060105/Leonardong . . . . 3 matches
if word in result.keys():
else:
report.append((word, count))
- ComputerNetworkClass/Report2006/BuildingProxyServer . . . . 3 matches
[http://www.web-caching.com/proxy-caches.html 현존하는 여러가지 프락시 서버 프로그램]
GUID 생성하기. 파일 이름으로 활용할 수 있다.
버퍼에 저장된 문자열을 formatted 화 된 스트링, 수로 읽을 수 있다.
- Counting . . . . 3 matches
구스타보는 수를 셀 줄은 알지만 수를 쓰는 방법은 아직 배운지 얼마 되지 않았다. 1,2,3,4까지는 배웠지만 아직 4와 1이 서로 다르다는 것은 잘 모르기 때문에 4라는 숫자가 1이라는 숫자를 쓰는 또 다른 방법에 불과하다고 생각한다.
구스타보는 합이 n인 수를 몇 개 만들 수 있는지 알고 싶어한다. n = 2 일 경우에는 11,14,41,44,2 이렇게 다섯 개의 숫자를 만들 수 있다 (5 이상의 수도 셀 수는 있다. 다만 쓰지 못할 뿐이다). 하지만 2보다 큰 경우에 대해서는 그가 만들 수 있는 수의 개수를 알 수가 없어서 여러분에게 도움을 청했다.
- CssMarket . . . . 3 matches
CSS 로 다음을 사용해 보세요. UploadFile 에 저장되어 있습니다.
자신이 좋아하는 CSS를 Upload 하고, /pub/upload/*.css 로 접근하세요.
|| /pub/upload/clean.css || Upload:clean.css || 제목 그대로 깔끔하다. ||
- CubicSpline/1002/TriDiagonal.py . . . . 3 matches
emptyRow.append(0.0)
emptyMatrix.append(emptyRow)
if __name__=="__main__":
- C언어정복/3월30일 . . . . 3 matches
4. 프로그램 가독성
5. I/O부분까지 독립적인 라이브러리로 만든 이유
10. Visual Studio로 간단한 디버깅 시연
- DataSmog . . . . 3 matches
http://image.wowbook.com/book/large_image/89-374-2705-2.gif [[BR]][http://www.wowbook.com/generic/book/info/book_detail.asp?isbn=ISBN89-374-2705-2 데이터스모그]
정보 무더기는 더 이상 지식이나 지혜가 아니다. DataSmog 로부터 자신을 보호하기 위해 스스로 여과장치가 되어야한다.
- DebuggingSeminar_2005/UndName . . . . 3 matches
''디버깅 세미나에서는 이러한 함수의 이름이 컴파일 옵션으로 설정되는 map 파일안에 존재하는 것으로 이용하였다.'' - [eternalbleu]
{{{~cpp 'char * __cdecl MapDLLappyFunc(char *)'}}} 라는 알기 쉬운 형태로 변형되어 있음을 확인할 수 있습니다.
- DecomposingMessage . . . . 3 matches
메세지를 다루는 또 다른 방법은 여러 개의 조각으로 나누는 것이다. 리팩토링의 ExtractMethod이다. 스몰토크는 잘게 쪼개는 것을 좀 더 공격적으로 한다. 그래서 한 메소드의 길이가 3-4줄정도밖에 안된다고 한다. 이것이 가능한 이유는 스몰토크는 다른 언어에 비해 높은 수준의 추상화를 제공해주기 때문이다. self 에게로 메세지를 보내자.
- DirectVariableAccess . . . . 3 matches
와드 아저씨의 말로는, '클래스에 아주 적은 양의 메소드만 존재한다면, getter/setter를 추가하는 것만으로도 메소드의 수가 두배가 되어버린다. 이는 전혀 사용되지 않을 유연성을 위해 쓸데없이 갯수를 늘린 것이다.' 라고 한다.
하지만 이 클래스가 상속이 될 가능성이 있다면, setter/getter를 오버라이딩 해서 사용할수 있으므로, IndirectVariableAccess를 쓰는 것이 괜찮다.
- EcologicalBinPacking/임인택 . . . . 3 matches
if not (i== num[0] or \
results.append(sum)
if min>results[i]:
- EightQueenProblem/이준욱 . . . . 3 matches
if(map[y] & MASK << x) return 0;
if(mask(tmap, i, depth)) {
if((depth + 1) == 8) result();
- EuclidProblem/차영권 . . . . 3 matches
cout << coefficient[j-1].X << " " << coefficient[j-1].Y << " " << GCD << endl;
if (max%min == 0)
else
- FactorialFactors . . . . 3 matches
팩토리얼 함수는 많은 특성을 갖는다. 이 문제에서 주어진 정수 n을 다음과 같은 팩토리얼 식 n!로 표현했을때 인수항의 최대수를 구하고자 한다. 단 1은 제외한다. 예를 들어 보자.
입력은 여러개의 테스트 케이스로 이루어지며 각 케이스마다 다른 줄로 구분한다. 입력의 끝은 EOF이다. 각 라인은 하나의 정수 n을 가지며, n의 범위는 2 <= n <= 1000000 이다.
- Favorite . . . . 3 matches
읽은 페이지는 아래로 내린다.
[http://groups.yahoo.com/group/testdrivendevelopment/ TDD 야후그룹]
[http://openlook.org/blog/ 장혜식씨 블로그]
[http://xper.org/wiki/xp/TestDrivenDevelopmentInCeeLanguage TDD in Cee]
- Flex . . . . 3 matches
기반은 ActionScript와 Flash 기술. ActionScript로 작성된 페이지를 Flash로 변환해 준다.
[프로그래밍분류]
- GTK+ . . . . 3 matches
Pango is a library for layout and rendering of text, with an emphasis on internationalization. It forms the core of text and font handling for GTK+-2.0.
The ATK library provides a set of interfaces for accessibility. By supporting the ATK interfaces, an application or toolkit can be used with such tools as screen readers, magnifiers, and alternative input devices.
[프로그래밍분류]
- Genie/CppStudy . . . . 3 matches
* 시간이 그리 많지 않은 관계로 조금씩 진행
* 시작해봅니다. 벌써 취침시간이 지나버린 관계로 내용입력은 내일부터..-_-
[프로젝트분류],[스터디분류]
- HASH구하기/조동영,이재환,노수민 . . . . 3 matches
ifstream fin ("input.txt");
cout << na[0] << " " << na[1] << " " << na[2] << " " << na[3] << " " << na[4] << endl;
fout << na[0] << " " << na[1] << " " << na[2] << " " << na[3] << " " << na[4] << endl;
- Hacking2004 . . . . 3 matches
* 목적 : 적을 알기위해 먼저 어떤식으로 크래킹하는지 배워본다 흐흐;; 물론 그것의 약점을 파악하고 어떤 식으로 막을것인지도 배운다
* 새로 참여하고 싶으신분들은 언제든지 댓글 달아주세요
- HanoiTowerTroublesAgain!/이도현 . . . . 3 matches
cout << process(input) << endl;
if ((input & 1) == 1)
else
- HanoiTowerTroublesAgain!/하기웅 . . . . 3 matches
if(num%2==0)
else
cout << counting(test[i]) <<endl;
- HanoiTowerTroublesAgain!/황재선 . . . . 3 matches
if (prev[peg] == 0) {
if (canBallPut(prevNumber, peg, ballNumber)) {
if (ballNumber == Integer.MAX_VALUE) {
- HardcoreCppStudy/첫숙제 . . . . 3 matches
* 함수의 중복정의(Overloading)에 대해 기술할 것. 예제도 스스로 만들어 보기 // 책에는 재정의라고 나와있음.
한가지 질문.. 숙제를 하셨으니, 짜면서 overloading 으로 얻어지는 자신이 생각하는 장점과 단점은 무엇인가요? 저에게도 정답은 없습니다. 처음 접하시는 여러분의 느낌이 궁금해서요.--NeoCoin
* 마방진 만들기 // 데블스 캠프 참가자와 불참가자간의 균형을 맞추기 위해 함. 마방진을 풀 수 있는 사람은 랜덤워크도 해볼것. 일단 배열 동적할당은 안 해도 되고 5*5칸으로 해도 됨.
- Hartals/상협재동 . . . . 3 matches
if(i % 7 != 5 && i % 7 != 6)
if(strike[i] > 0)
cout << totalStrike[i] << endl;
- Hartals/조현태 . . . . 3 matches
if (0==(i-NOMAL_DAYS[j])%7)
if (j==NUMBER_NOMAL_DAY)
if (0==i%input_mans[j])
- Header 정의 . . . . 3 matches
#ifndef Header 이름
#endif
- HelpForDevelopers . . . . 3 matches
모니위키 사용중에 문제점이 발생하는 경우에는 지체없이 http://kldp.net/projects/moniwiki/bugs 사이트에서 문제점을 보고해주시기 바랍니다. 혹은 사용중에 불편한 점이 있다고 생각하셔도 보고해 주시면 고맙겠습니다.
개발자는 사용자가 불편하게 생각하는 부분을 잘 모르는 경우가 많습니다. 사용자의 피드백은 모니위키를 좀 더 사용하기 편리하게 만들어 줄 가능성을 열어줍니다!
모니위키는 GPL이라는 공개 소프트웨어 라이선스를 준수하고 있으므로, GPL에 준하는 어떠한 기여도 환영합니다.
- HelpOnNavigation . . . . 3 matches
우측 상단 (혹은 다른 위치)에는 자주 쓰이는 기능을 아이콘 형태로 모아놓은 것이 있습니다:
* [[Icon(print)]] 인쇄 친화적인 형태로 보기
* [[Icon(diff)]] 페이지의 바뀐 부분 보기
- HelpOnSmileys . . . . 3 matches
편집 화면에서 {{{[[SmileyChooser]]}}}를 넣고 싶은 경우에는 아래와 같이 EditTextForm 페이지를 편집해주셔야 합니다.
{{{EditToolbar]]}}} 혹은 {{{[[EditHints]]}}}와 마찬가지로 이것은 매크로 플러그인입니다.
- HowManyFibs? . . . . 3 matches
피보나치 수는 다음과 같은 식으로 정의된다.
입력에는 여러 개의 테스트 케이스가 들어있다. 각 테스트 케이스는 두 개의 음이 아닌 정수 a와 b로 구성된다. a=b=0이면 입력이 종료된다. 그렇지 않은 경우에는 a≤b≤10<sup>100</sup>이다. a와 b가 입력될 때 앞부분에 불필요한 0은 전혀 붙지 않는다.
- IDE/VisualStudio . . . . 3 matches
Ctrl + Shift + C : 탐색트리로 캐럿 이동. (<- 개인적으로 가장 중요한 단축키라고 생각함. ;;)
- IdeaPool . . . . 3 matches
* 우리는 아이디어를 갖고 있어도 어떠한 사정에 의해 실현(혹은 개발)까지 이르지 못하기도 한다. 따라서 모두의 아이디어를 공유한다면 프로젝트를 비롯한 각종 활동 사항에 촉진제가 될 것이다.
* 공용 아이디어 ( [IdeaPool/PublicIdea] ) - 학교, 학과, 제로페이지 등등 우리가 속한 집단에게 유용한 아이디어.
[프로젝트분류]
- ItMagazine . . . . 3 matches
다음의 다섯 가지 잡지는 세계적으로 전문 IT 개발자라면 대부분 다 보는 잡지(학술저널이 아님)들이다:
* ["마이크로소프트웨어"]
* ["프로그래밍세계"]
- JMSN . . . . 3 matches
Java 로 만들어진 MSN 호환 메신저
* http://cvs.linuxkorea.co.kr/cvs/py-msnm - Python 으로 포팅된 msnmlib
* 사용자의 일부 properties(Foward list, Reverse list, Allow list, Block list, GTC setting, BLP setting)-$1는 서버에 저장된다. $1은 client에 캐시된다. client에 캐시된 $1를 최신의 것으로 유지해야 한다.
- JSP/FileUpload . . . . 3 matches
if ((contentType != null) && (contentType.indexOf("multipart/form-data") >= 0))
int endPos = ((file.substring(0, boundaryLocation)).getBytes()).length;
fileOut.write(dataBytes, startPos, (endPos - startPos));
- Java/JDBC . . . . 3 matches
* 그후 아래와 같은 식으로 접속 가능하다. 아래에서 NSH2 는 전역 데이터베이스 이름임으로 각자 알아서 적고, 연결에서 아이디와 비번을 넣는다.
예전에 resin 에서 tomcat으로 바꾸면서 jdbc 설정하는거 몰라서 대박이었는데... -_-; - eternalbleu
- Java/ReflectionForInnerClass . . . . 3 matches
innerclass 에서는 기본적으로 Inner Class 를 포함하고 있는 상위클래스의 레퍼런스가 생성자로 들어간다. 마치 C++ 에서 메소드들에 대해 this 가 기본 파라메터로 넘어가는 것과 같은 이치랄까.
- Java/SwingCookBook . . . . 3 matches
1. pack 메소드 이용 - content pane 에 해당 컨트롤 붙여놨을 경우, 가장 최적 상태 사이즈로 맞춰줌.
컨트롤들에 대해서 pixel 좌표계로 layout 가능.
- JavaHTMLParsing/2011년프로젝트 . . . . 3 matches
//URL객체를 생성하고 해당 URL로 접속한다..
url = new URL("http://www.hufslife.com/");
if(buf == null) break;
- JavaStudy2004/스택 . . . . 3 matches
* 기본 조건
* 스택에 Push하고 Pop 하는 것을 GUI로 볼수 있게 구현
* 추가 조건
- JavaStudyInVacation/진행상황 . . . . 3 matches
SWT 관련 상식 수준 - 한글자료가 별로 없군요. 뭐니 뭐니해도 여러분이 쓰고 계시는 Eclipse 겠지요.
이런것들은 다 같이 찾아보고, 다 같이 토론하고, 다들 이해했으면 하나로 정리해서 써두 될텐데요^^ 위에 AWT와 SWING의 차이도.. 그리고 아래 네트워크를 사용하는 방법도 마찬가지구요~ 이렇게 각자 쓸것까지야... --["상규"]
* 첫째날 만들었던 버튼을 누르면 간단한 메시지를 출력하는 자바 에플리케이션을 에플릿으로 바꿔보기.
- JollyJumpers/임인택3 . . . . 3 matches
end.
위의 코드에 다음과 같이 메시지를 받는 함수를 작성하면, 이 함수를 생성하고 메시지로 리스트를 전달하면 똑같이 이용할 수 있다.
end.
- JuneTemplate . . . . 3 matches
Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
- LexAndYacc . . . . 3 matches
* 작년부터 인가 Compiler 쪽에 커다란 관심을 가지기 시작했는데 이번년 부터 본격적으로 공부를 해보려구요.. 그 전에 Lex 책을 한번 보면 뭔가 하겠구나 하고 느껴질것 같아서 이렇게 시작합니다.
* 문장을 입력해서 문장의 각 단어들을 명사 , 동사 , 등으로 나누어 주는 Simple Recognizer 입니다
* 이번은 동사만 구분하는식으로 하겠습니다
- LinuxSystemClass/Exam_2004_1 . . . . 3 matches
(기억나는대로)
다음에 대해 T & F & Justification
Linux 의 DMA 가 Bound Buffer 로 이용되는 이유?
- MFC_ . . . . 3 matches
1. [서로간의 참조]
7. [Error 발생시 풀리지 않을 경우 확인]
9. [다이얼로그박스의 엔터키 막기]
- Map/권정욱 . . . . 3 matches
=== 맵 프로그래밍 ===
ifstream fin("line.txt");
cout << endl;
- Map연습문제/황재선 . . . . 3 matches
cout << endl;
cout << "비밀키" << endl;
cout << endl;
- MoinMoinDone . . . . 3 matches
* Strip closing punctuation from URLs, so that e.g. (http://www.python.org) is recognized properly. Closing punctuation is characters like ":", ",", ".", ")", "?", "!". These are legal in URLs, but if they occur at the very end, you want to exclude them. The same if true for InterWiki links, like MeatBall:InterWiki.
- MoniWiki/HotKeys . . . . 3 matches
마우스 없이 거의 모든 기본적인 동작을 HotKeys로 쓸 수 있다.
||D||action=diff ||[[Icon(diff)]] 입체안경||
- MoniWiki/Release1.0 . . . . 3 matches
자꾸 욕심이 많아지네요 :) MoniWiki는 [개인 위키]를 목표로 합니다. 따라서 StandaloneWiki 혹은 DesktopWiki로 사용할 수 있는 쉬운 위키엔진이 목표입니다.
역시 약속은 어겼지만, 많은 피드백을 통해서 수많은 버그가 잡히고 몇몇 새로운 기능이 추가되었습니다. 7월말까지 바빠서 어렵겠고, 8월에 발표할 수 있을듯 합니다. 버그 보고 많이 해주시길~
- MoniWikiProcessor . . . . 3 matches
MoinMoin 1.1 이하에서는 Processor와 Parser로 분리되어있었고, 1.3 이후에는 Processor Parser가 Parser로 통합되었다.
MoniWiki에서는 이미 Processor와 Parser개념을 통합및 간소화 하여 Processor라는 이름으로 쓰이고 있다.
- MoreEffectiveC++/C++이 어렵다? . . . . 3 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문제]
* 다른 언어 : Java는 공통의 플랫폼 차원([http://java.sun.com/j2se/1.3/docs/guide/serialization/ Serialization]), C#은 .NET Specification에서 명시된 attribute 이용, 직렬화 인자 구분, 역시 플랫폼에서 지원
처음에는 문서 작성을 시작했고, 레이아웃을 잡아가는 과정에서 항해지도를 작성하고, 대본(?)을 만들어 보는건 어떨까 생각을 해보았다. 언제나 새로운 시도는 기대되는 것
- NSIS/예제3 . . . . 3 matches
; Uninstaller 설정 - 이건 기본적으로 nsis 에 포함된 것을 이용.
; 윈도우 프로그램추가/삭제 관리자를 위한 Uninstall 관련 key를 레지스트리에 저장
SectionEnd
SectionEnd
SectionEnd
SectionEnd
SectionEnd
File: Descending to: "f:\tetris\Sources\res" -> "$INSTDIR\Sources\res"
SectionEnd
SectionEnd
SectionEnd
- Ones/문보창 . . . . 3 matches
if (temp >= n)
if (reminder % n == 0)
cout << i+1 << endl;
- OurMajorLangIsCAndCPlusPlus/Class . . . . 3 matches
=== 구조체에서 클래스로 ===
if(this->d == 29 && this->m == 2 && !leapyear(this->y + this->n))
if(cache_valid == false)
- OurMajorLangIsCAndCPlusPlus/Variable . . . . 3 matches
register - CPU 레지스터를 변수로 할당
auto - 스택 공간을 변수로 할당
static - BSS 세그먼트의 공간을 변수로 할당
- OurMajorLangIsCAndCPlusPlus/limits.h . . . . 3 matches
||CHAR_MIN ||char형의 최소값 ||–128; 0 if /J option used ||
||CHAR_MAX ||char형의 최대값 ||127; 255 if /J option used ||
||MB_LEN_MAX ||사용할 수 있는 모든 로케일에서 문자의 최대 바이트 수 ||2 ||
- PNGFileFormat/ImageData . . . . 3 matches
* zlib으로 압축된 PNG 의 이미지의 데이터는 다음의 포맷
* 압축풀린 데이터는 각 스캔라인별로 다른 필터로 되어있다. 즉 한 스캔라인은 픽셀width바이트 +1byte 이며 이 1 바이트는 각 스캔라인의 앞부분에 온다.
- PrimaryArithmetic . . . . 3 matches
초등학생들이 여러 자리 수의 덧셈을 배울 때는 한 번에 한 자리씩 오른쪽에서 왼쪽으로 계산하도록 배운다. 그런데 그 자리 숫자의 합이 10을 넘어갈 때 그 윗자리 숫자에 1을 더해주는 것을 배울 때 많은 학생들이 힘들어한다. 일련의 덧셈 문제가 주어졌을 때 자리를 올리는 횟수를 세어서 선생님들이 학생들을 가르치는 데 도움을 줄 수 있는 프로그램을 만들어야 한다.
마지막 줄을 제외한 각 줄에 대해 주어진 두 수를 더할 때 자리를 올려야 하는 횟수를 계산한 다음, 아래에 주어진 형식대로 결과를 출력한다.
- ProjectCCNA . . . . 3 matches
* 2008 하계방학 프로젝트로 시행
[프로젝트분류] [2008년활동지도]
- ProjectPrometheus/Estimation . . . . 3 matches
* 새로 들어온 책
Recomendation System 2
* Recommendation
- PythonMultiThreading . . . . 3 matches
사용하는 방법은 매우 간단. Thread class 를 상속받은뒤 Java 처럼 start 메소드를 호출해주면 run 메소드에 구현된 내용이 multithread 로 실행된다.
if __name__=="__main__":
다른 차원의 기법으로는 Seminar:LightWeightThreads 가 있다.
- RandomWalk2/ClassPrototype . . . . 3 matches
cout <<endl;
if (journeySize <= nCurrentPosition) return -1;
cout << "move count : " << m_nMoveCount << endl;
- RecentChanges . . . . 3 matches
'''로그인 하고 쓰시면 ip대신에 자신의 멋진 id가 남습니다. ''' 현재 [[PageCount()]] 개의 페이지가 있습니다.
||||<tablealign="center"> [[Icon(diff)]] ||한 개 이상의 백업된 버전이 존재하는 페이지를 의미합니다.||
|||| [[Icon(new)]] ||북마크하신 이후 새로 만들어졌고 다시 편집되지 않은 페이지를 의미합니다.||
- ReverseAndAdd/김범준 . . . . 3 matches
if number != reverse:
else:
if __name__ == '__main__':
- ReverseAndAdd/김정현 . . . . 3 matches
if a[n]!=a[len(a)-n-1]:
if __name__ == '__main__':
t.append(a)
- ReverseAndAdd/이동현 . . . . 3 matches
if(count ==1000):
if(str(n) != str(n)[::-1]):
else:
- ReverseEngineering/책장사 . . . . 3 matches
3. API 서적 구입. (실질적으로 괜찮은 API 책이 없다. 차라리 영어를 제대로 배워 MSDN에서 찾아보는게 속편하다.)
우선적으로 할 일.
- RubyLanguage/Class . . . . 3 matches
end
end
end
- Scheduled Walk/김홍선 . . . . 3 matches
ifstream fin("input.txt");
if(j==i-1)
cout << endl;
- SharedVision . . . . 3 matches
SE 시간의 이경환 교수님의 이야기. CMM, SPICE 에서 Level 2 이상시 필요조건. 전체 회사의 비전은 팀의 비전과 일치되어야 하며, 팀의 비전과 팀 소속원의 비전이 일치되어야 한다. 회사의 비전과 팀의 비전이 일치한 제품이 나와야 하며, 팀의 행동 또한 회사의 비전과 일치되어야 한다.
어떻게 들으면 Top-Down 식의 위에서부터의 명령 하달처럼 들리지만, 나는 다르게 해석하고 싶다. 즉, 사람들 개개인 구성원들이 자신들의 역할을 스스로 결정짓고, 그것이 조직의 비전이 되는 경지.
* 또하나 생각난다면, 구심점이 되는 작은 사람들 (이때쯤 되니 또 20 : 80 법칙 생각이;)이 영향력을 발휘하는 방법. 보통은 이 스타일이 되는 것 같다. 문제제기 & 대안제안자 10%에 실제로 수습하는 사람 10%, 동의해주고 따라주는사람 40%, 60% 가 넘어간 뒤 인력의 작용(한쪽에 커다란 힘이 모여있으면 이 또한 인력이라고 생각한다. 월드컵 축구를 보라. -_-; 뉴스건 사람들이건 신문이건 전부 축구이야기만 하면 영향 안받나;) 30%, 나머지 무관심 10% (반대의견을 내는 사람은 실제 수습자들속에 있기도 하다. 물론 냉소만 보내는 사람도 있지만)
- SqLite . . . . 3 matches
[http://www.int64.org/sqlite.html - SQLite C++ Wrapper]. 단, 이 코드의 경우 long long 형을 쓰는 관계로 VC6 에서는 컴파일이 되지 않는다. long long 형을 쓰는 부분을 __int64 로 바꾸면 VC6 에서도 이용은 가능.
- Steps . . . . 3 matches
수직선 위에서 정수 x에서 정수 y로 이동하는 과정을 생각해보자. 각 단계의 길이는 음이 아니어야 하며 이전 단계의 길이보다 1이 작거나, 같거나, 1이 커야 한다.
x에서 y로 가는 데 필요한 최소 단계의 수는 얼마인가? 첫번째와 마지막 단계의 길이는 모두 1이어야 한다.
각 테스트 케이스에 대해 x 에서 y로 이동할 수 있는 최소 단계 수를 한 줄에 하나씩 출력한다.
- StuPId/김태진 . . . . 3 matches
if(id[6]=='\0') {
else {
if(id2[i]==15) unr=i;
- StudyingFundamentalsOfTcpIp . . . . 3 matches
TCP/IP 가 우리와 얼마나 가까 있는지 아시죠? 인터넷의 근간이 되는 프로토콜에 대해 스터디를 하고자 합니다. 관심있는 분의 많은 참여 부탁드립니다.
* 소켓 프로그래밍이 아닌 TCP/IP 에 대한 공동학습. 여럿이 해야 효과가 크겠죠.
* 일정 분량을 공부하고 멤버들끼리 질답을 갖는 시간을 정기적으로 갖을 것입니다.
- SubVersion/BerkeleyDBToFSFS . . . . 3 matches
if [ "$1" == "" ]
then
else
- TemplateLibrary . . . . 3 matches
템플릿 프로그래밍에서 작성되는 코드는 크게 두 부분으로 나누어진다.
* template - 말 그대로, 틀이 되는 text 코드.
- TheKnightsOfTheRoundTable . . . . 3 matches
아서 왕이 천장에 삼각형 창이 있는 방에 원탁을 놓을 계획을 세우고 있다. 그는 햇빛이 원탁 위에 비추게 하고 싶다. 특히 정오에 태양이 바로 머리 위에 있을 때는 원탁 전체에 햇빛이 비추도록 하려고 한다.
그래서 그 원탁은 방 안의 특정한 삼각형 영역 안에 자리잡아야 한다. 물론 아서 왕은 주어진 조건 내에서 최대한 큰 원탁을 만들고 싶어한다.
멀린이 점심을 먹으러 나간 사이에 해가 비추는 영역에 들어갈 수 있는 가장 큰 원탁의 반지름을 계산하는 프로그램을 만들어야 한다.
- TkinterProgramming . . . . 3 matches
만약 파이선으로 GUI 프로그래밍을 한다면 Tkinter 이것 만큼은 피하라!!!! -_-
지나치게 많은 버그와 지나치게 없는 컨트롤의 압박으로 배워도 어디에 써먹을까 걱정되는 놈이다. - [eternalbleu]
- TortoiseSVN/IgnorePattern . . . . 3 matches
서브버전에서 커밋시 기본적으로 제외하는 형태를 지정한다. 대체로 IDE 가 만들어내는 설정 파일과 컴파일된 오브젝트 파일들을 주로 넣는다.
- UglyNumbers/승한 . . . . 3 matches
if target < div:
if target != 1:
if isUgly(n):
- UpdateWindow . . . . 3 matches
일반적으로 하노이의 탑은 재귀함수 알고리즘이 가장 쉽기 때문에, 재귀함수를 사용하여 짜고 있었다.
재귀함수가 실행될때마다 Invalidate()를 호출하도록 해 두었는데. 화면 갱신은 재귀함수가 끝난 경우에만 하고 있었다.
[상규]군에게 물어 해답을 찾았다. Invalidate()함수는 다음 WM_PAINT메세지가 왔을때 화면을 다시 그리도록 명령하는 함수이다. 재귀나 반복문을 수행하는 동안에는 WM_PAINT 메세지가 발생하지 않기 때문에 강제적으로 WM_PAINT메세지를 발생시켜 주어야 하는데, 그 함수가 UpdateWindow()함수이다.
- ViImproved . . . . 3 matches
Text Editor인 VI 의 확장판. [[NoSmok:CharityWare]], [[WikiPedia:Careware]] 인 아주 유연한 에디터. 처음에 접근하기 어렵지만, 익숙해지면 여러모로 편리한 응용이 가능하다.
사실 다들 오해하고 있는 것 중의 한가지로는 vim은 불편하다는 것이다. 최근의 vim은 플러그인을 통해 여러가지 기능을 지원하며 그 중에는 단어 자동완성을 물론 문맥 자동완성뿐만 아니라 대부분 언어에 대한 syntax highlight를 지원한다. 요즘에는 흔히 볼수있는 탭기능도 지원하기 시작한지 오래되었으며 좌측에 파일 트리를 띄워두고 작업할수도 있다. 또한 .vimrc파일을 통한 강력한 커스텀마이징이 가능하며 이를 이용하여 이클립스를 능가하는 편의성을 지니기도 한다.
* [[https://www.youtube.com/watch?v=5r6yzFEXajQ | Vim + tmux - OMG!Code ]] - cheatsheet로만 vim을 배우는 사람들에게 권함 - makerdark98
- WERTYU/문보창 . . . . 3 matches
if (str[i] == ' ')
if (str[i] == diction[j])
cout << str << endl;
- Westside . . . . 3 matches
* 제로페이지, 역시 해보고 싶다. 새로운 경험을 하고 싶으나, 아직은 때가 아니다. *
[홈페이지분류], ZeroPagers, ZeroWikian ( DeleteMe 복수개로 선택해 주세요. )
- WhatToExpectFromDesignPatterns . . . . 3 matches
보편화된 디자인 관련 용어로써.
DesignPatterns capture many of the structures that result from refactoring. Using these patterns early in the life of a design prevents later refactorings. But even if you don't see how to apply a pattern until after you've built your system, the pattern can still show you how to change it. Design patterns thus provide targets for your refactorings.
- WritingOS . . . . 3 matches
실제로 대학에서 교육용으로 쓰고 있는 OS
이야~ 멋진데 ㅎ 재밌겠다. 나도 하고 싶긴 한데 이번 방학땐 다른걸 하기로 했으니,, - [namsang]
- XOR삼각형/aekae . . . . 3 matches
if (j == k+1)
if (arr[j-1][k] == arr[j-1][k+1])
else
- XOR삼각형/곽세환 . . . . 3 matches
cout << ar[0][0] << endl;
if (j == 0)
else
- XsltVersion . . . . 3 matches
<xsl:value-of select="system-property('xsl:vendor')"/>
(<a href="{system-property('xsl:vendor-url')}"><xsl:value-of select="system-property('xsl:vendor-url')"/></a>)
- ZeroPageSeminar . . . . 3 matches
앞으로 계획되어 있는 세미나 입니다. 자세한 사항은 세미나별 페이지에서 확인하세요.
* J2SE가 5.0으로 가면서 바뀐 것들에 대해
[제로페이지분류]
- ZeroPageServer/UpdateUpgrade . . . . 3 matches
2->3->4->5 차례라 실행. 모두다 엔터로 진행
소스트리는 현재(2004년) 테스트 버전인 sarge 가 되어 있다. 앞으로 sarge가 stable 이 되는 1~2년 사이에는 빈번한 패치, 업그레이드가 이루어 지므로, 일주일에서 보름 정도 사이에 한버씩 업그레이드를 해주면 된다. 한달에 한번씩 하면 수십개의 패키지가 업그레이되는 멋진 광경을 볼수 있다.
- ZeroPageServer/계정신청상황 . . . . 3 matches
현재 제로페이지 회원들 계정 신청 상황. (점검용. 2002)
'''여기에 직접 쓰지 마시고, 메일로 주세요.''' 게정 정보에는 이름, 학번 email 이 들어갑니다.
ZeroPage Server계정의 구 정보는 자신의아이디.old 로 symbolic 링크 되어있습니다. 그리고
- Zeropage/Staff . . . . 3 matches
* [http://zeropage.org/wikis/nowthen2004/%C1%F6%B1%DD%B1%D7%B6%A72004/%C8%C4%B1%E2 2004년 후기]
* [http://zeropage.org/wikis/nowthen2004/OST%C1%BE%C7%D5 지금그때2004년OST]
* 새내기의 눈높이에 맞는 이야기가 나왔으면 합니다. [지금그때]의 궁극적 목표대로 ''' "내가 이 이야기를 새내기때 들었다면 이해, 혹은 동기유발이 되었을까'''를 말이죠^^; - [상욱]
- [Lovely]boy^_^/Cartoon . . . . 3 matches
|| 소마신화전기 || 로도스도전기-회색의마녀 || 김전일 || 상남이인조 ||
빌려줘 회사로 놀러오면, 밥먹여 줄께 ^^;; --NeoCoin
저기여.. 왜 답이 없으시네여.. 저 정말로 보고 싶어서 그러는데여..ㅜ.ㅜ
- [Lovely]boy^_^/Diary/2-2-11 . . . . 3 matches
* 선호랑 ["TheWarOfGenesis2R"]의 일환으로 타일 에디터를 만들었다. BMP 파일 약간 개조해서 뒤에다가 타일 데이터를 덧붙였다.
* 오늘로 일단 학기중의 XB가 종료되었다. 배운것이 아주 많았던 프로젝트였다.
- [Lovely]boy^_^/Diary/2-2-9 . . . . 3 matches
* 중간고사 끝나고 첫주다. 중간고사때의 좌절을 바탕으로 새롭게 마음을 다잡고 공부를 열심히 해야겠다.
* I'll never advance arcanoid.--; It's bored. I'll end the refactoring instantly, and do documentaion.
* If my page is helpful to some person, It's very delightful. I feel that feeling these days.
* This meeting is also helpful. Although a half of members don't attend, I can think many new things.
- [Lovely]boy^_^/ExtremeAlgorithmStudy . . . . 3 matches
* 지금 생각난 건데 어떤 알고리즘 나오면 그걸 보기 전에 내 손으로 먼저 만들어 보는 식으로 하기로 했다.
- apache/mod_python . . . . 3 matches
* [ftp://ring.aist.go.jp/archives/net/apache/dist/httpd/modpython/win/] : 윈도우즈 환경에서 Apache 와 연동해서 설치할 경우에 왼쪽 링크 참고. 특히 주의할 점은 Apache 버전 자신의 것과 맞는 것으로 다운 받아야 함.(안그럴 경우 아파치 서버 시작 못함)
- cyflux . . . . 3 matches
또한, Flash로 작업한 작업들이나 코드들을 공유합니다. 주로, 위 주제에 관한 작업들을 주로 합니다.
- django/AggregateFunction . . . . 3 matches
Django에서 기본적으로 count 함수를 통해 레코드 개수를 셀 수 있다.
Django에서 기본적으로 제공하는 함수는 없다. 대신 order_by를 이용해서 최상위 레코드만 뽑는 방법을 사용할 수 있다.
Django에서 기본적으로 제공하는 함수는 없다. 원하는 레코드 집합을 얻어온 다음, python을 이용해서 구하는 방법을 사용할 수 있다.
- hanoitowertroublesagain/이도현 . . . . 3 matches
cout << process(input) << endl;
if ((input & 1) == 1)
else
- intI . . . . 3 matches
실제로 돌려서 값을 보고 왜 그런지 나름대로 논리를 세우긴 했는데
i++ 한 값은 일단 0 이고 그 담에 i 는 1로 증가 했는데 이제 그 i++ 한 값을 i에 넣어서 그런거 같은데
- jQuery . . . . 3 matches
jQuery는 “자바스크립트 프로그래밍을 즐겁게 하자”는 목표로 설계된 자바스크립트 라이브러리입니다.
jQuery를 사용함으로써 일반적이고, 반복되며, 업무량을 증가시키는 불필요한 마크업들을 제거할 수 있고, 이를 통해 작고, 훌륭하며, 이해하기 쉬운 자바스크립트 코드를 작성할 수 있습니다.
- lostship/MinGW . . . . 3 matches
* /mingw/STLport-4.5.3/src 로 이동한다.
* .dll.4.5 파일들을 path 가 잡힌 디렉토리로 복사 한다.
* ../g++-v3 를 c++/3.2 로 바꾸도록한다.
- 가위바위보 . . . . 3 matches
입력으로 사용자의 가위, 바위, 보를 받고
출력으로 결과(이김,비김,짐)를 보여주는 것입니다
* 아래와 같은 예제 식으로 소스를 만든 페이지에 넣어 주세요.
- 강연 . . . . 3 matches
* 아무나 가도 되나요? 근데... 영어로만 강연하면 곤란한데... -[윤성만]
- 아무나 가도 되는것 같던데. 영어라고 너무 걱정하진 말길. 다 알아들을 사람은 아무도 없으니. 한번두번 계속 참석하면서 익숙해지는거지. 나도 영어로 진행되는 강연은 이번에 두번째밖에 안된다우. - [임인택]
* 쉽고 재미있는 강연이었다. 못알아들은 내용도 있었지만, 교수님의 유머감각은 단연 돋보였다. 영어로 술술 질문하는 영교과 학생들도 인상적.. -_-; - [임인택]
- 개인키,공개키/박능규,조재화 . . . . 3 matches
ifstream fin("source.txt");
cout << endl;
cout<<endl;
- 개인키,공개키/임영동,김홍선 . . . . 3 matches
ifstream fin("xm.txt");
cout << endl;
cout << endl;
- 개인페이지 . . . . 3 matches
ZeroPage 위키의자 이고, ZeroPagers 라면 누구나 가져야 하는 위키내의 자신의 소개 페이지 이다. 개인 페이지에 실리는 정보는 자신의 소개 이외의 사항은 자율적으로 작성하며, 어떻게 사용해도 상관 없다.
개인페이지를 만들지 않으신 분들이 보이는데요. 개인 페이지는 여러 의미와 용도가 있습니다. 기본은 위키를 이용한 자신의 계획과 일정 관리, 그리고 공통된 관심사를 가진 사람들끼리 자연스럽게 생각을 공개해서 모이게 유도 합니다. 그리고 개인 공간을 가짐으로 해서 위키에 대한 좀더 높은 접근 횟수를 유도 합니다. 가장 중요한 이유는 누가 누군지 확실히 알수도 있겠죠? 일단 프로젝트에 참여하는 모든 분들은 개인 페이지를 만들고 관리 합시다. --상민
- 고슴도치의 사진 마을 . . . . 3 matches
|| [몬테카를로 법을 이용한 pi 구하기 프로그램] ||
|| [Cisco Certified Network Associate] ||
- 고슴도치의 사진 마을처음화면 . . . . 3 matches
[몬테카를로법]
[몬테카를로 법을 이용한 pi 구하기 프로그램]
- 고영준의Wiki처음화면 . . . . 3 matches
+ Action : 개인이 주체적으로 일으키는 행위
+ probability(개연성) : 어느 (의미있게) 일정한 방식으로 행위가 사회적으로 이루어질 수 있는 가망성
- 구구단/김상윤 . . . . 3 matches
cout<<endl;
cout<<endl;
cout<<endl;
- 구구단/송지훈 . . . . 3 matches
조건처럼 2단 3단 4단 5단 과 같이 출력하진 않았고
일단 저런 식으로 구구단이 가능합니다.
조건처럼 출력하는 방법은 아직 생각중.....
- 금고/조현태 . . . . 3 matches
나갔다 와서 저녁먹기전에.. 풀려고 잡았는데.. 배가 고파서 본능의 힘으로 풀었음 ㅡㅡV (본능의 위대함~!!)
while (accumulate(nodes.begin(), nodes.end(), 0) <= buildingHeight)
cout << GetMaxTryNumber(buildingHeight, tryNumber) << endl;
- 김병남 . . . . 3 matches
제로페이지 -_-;
씨프로그래밍도 되네요????/
안녕하세요! 반가워요!ㅎㅎ 씨 프로그래밍은,,
- 김준호 . . . . 3 matches
# 3월 16일에는 앞으로 새싹교실이 어떻게 진행될것인지와 컴퓨터의 기본장치들을 배웠습니다 예를들어 CPU, Main Memory 등등 입니다.
# 3월 17일에는 Microsoft Visual Studio 2008 프로그램을 이용하여 기초적인 c언어를 배웠습니다.
* 3/16, 3/17 피드백은 빨랑 해당 페이지로 옮겨서 쓰지 말입니다. - [윤종하]
- 나는이런곳을즐겨찾는다 . . . . 3 matches
|| http://www.giro.or.kr/ || 지로납부를 인터넷을 이용해 할 수 있음. 은행 가기 귀찮아 하는 사람에겐 쓸모 있음. ||.||
|| http://www.newstand.co.kr/ || 잡지들을 모아논 사이트 주로 스포츠 신문을 봄 || . ||
|| http://www.changgo.com/ || 새로운 음반에 대한 정보를 얻는다 || . ||
- 달리기/강소현 . . . . 3 matches
if(sc.next().equals("f")){
}else{
if(run >= M){
- 데블스캠프2003 . . . . 3 matches
|| 03 || 나휘동 || 시커멓게 그을린 얼굴로 나타날 예정입니다. ||
|| 7월 4일 || 금요일 || 이선호(API), 강인수(MFC) || 윈도우 프로그래밍 ||
- 음.. 좋은 생각은 아니고요... 7월 1일에 농활 2차 후발대로 출발할것 같습니다. 농활의 유혹을 뿌리칠수가 없군요.ㅠㅠ [임인택]
- 데블스캠프2003/셋째날/J2ME . . . . 3 matches
* ["MobileJavaStudy/HelloWorld"] - "Hello World" 를 출력하는 프로그램
* ["MobileJavaStudy/NineNine"] - 구구단을 종류별로 출력하는 프로그램
- 데블스캠프2005/FLASH키워드정리 . . . . 3 matches
if, else, switch, goto 등의 문법들은 거의 비슷한 모습을 하고 있다.
플레시의 함수는 특별한 데이터 타입이 없으므로 리턴타입을 미리 선언하지 않는다.
- 데블스캠프2006/준비 . . . . 3 matches
- 수 : 자료구조, 알고리즘, 재귀호출 / 상섭, 기웅, 보창, 성민, 민경 '''<- 여기에 알고리즘도 넣기로 한거 아니었나요?''' - [상규] - 맞아요
* 겁내 빡빡한데 나도 데블스 캠프 시간중 정해지지 않은 시간 혹은 대타용으로 좀 널럴한걸로 하나 할께~ 여차 하면 [RUR-PLE] 재탕도 ㅋ -[상협]
- 데블스캠프2006/화요일/pointer/문제3/이장길 . . . . 3 matches
cout <<endl;
cout <<endl;
cout <<endl;
- 데블스캠프2006/화요일/pointer/문제4/이송희 . . . . 3 matches
if(buf[i]!=buf[length-1-i])
else
cout << result << endl;
- 데블스캠프2008 . . . . 3 matches
|| 9시 ~ 12시 || [임영동] || 토이프로그래밍 1 || [이승한] || Emacs || [유상욱] || 객체지향 || [김동준] || 쿼터스 || [이병윤] || arp spoofing and sniffing ||
|| 3시 ~ 6시 || [조현태] || vb in Excel, Midi || [장재니] || 토이프로그래밍 2 || [임상현] || 정규표현식 || [허아영] || 러플 |||| 페어 코드레이스, 총화 ||
- 데블스캠프2009/금요일/SPECIALSeminar/송지훈/김홍기/박성현 . . . . 3 matches
1. 재미있었다. 이런걸 해본적이 없어서 새로웠다. 이런 기회가 있으면 좋겠다.
1. 내가 알고 있던 것과 새로 알게된 것이 많아서 좋았다.
3. 지금까지 했던 과제들, 프로젝트들을 다시한번 정리하는 과정을 현재 진행중에 있는데 이것을 완료해볼 생각.
- 데블스캠프2010/다섯째날/ObjectCraft/미션1/서민관 . . . . 3 matches
if ( z2->HP == 0 )
cout << "z2가 죽었습니다." << endl;
cout << "z1이 z2에게 데미지 " << z1->atk << "를 입혀 HP가 " << z2->HP << "가 되었다." << endl;
- 데블스캠프2010/다섯째날/ObjectCraft/미션2/박재홍 . . . . 3 matches
if(a.HP==0)
if(b.HP==0){
if(a.HP==0){
- 데블스캠프2011/다섯째날/HowToWriteCodeWell/김준석,서영주 . . . . 3 matches
if(i <= MAX_HEIGHT && i >= MIN_HEIGHT)
if(floor < i){
}else{
- 데블스캠프2011/둘째날/Scratch . . . . 3 matches
* 게임설명 : 마리오가 좌 우로 움직이고 뛰는 것만 됩니다. 파이프에 닿으면 못 앞으로 이동 못하고 점프해서 이동하게 만들고 물음표 치면 뭔가 이벤트가 생기게 하려고 했는데 안되네요 -_-;; 그래서 움직이는 것만 됩니다.
* 설명: 공을 막대기로 튀기는 핑퐁게임입니다 스페이스를 누르면 시작됩니다 벽에 부딪히면 게임 오버입니다
- 데블스캠프2012/넷째날/묻지마Csharp/Mission4/서영주 . . . . 3 matches
private void timer1_Tick(object sender, EventArgs e)
//MessageBox.Show(sender.ToString() + "\n" + e.ToString());
if (bitmap1 != null)
- 맞춤교육 . . . . 3 matches
참으로 안타까운 소식입니다. 이제는 대학이 취업의 전단계로 인식되고 있다지만.. 한발 더나아가 기업은 대학을 인재선발의 전진기지 정도로 생각하는것 같네요 - [임인택]
- 몸짱프로젝트/DisplayPumutation . . . . 3 matches
if ( i == n ){
else{
[몸짱프로젝트]
- 문자반대출력/최경현 . . . . 3 matches
if (string[i] < 0 && string[i+ 1] < 0)
if(numberOfString%2==0)
else
- 문자열검색 . . . . 3 matches
문제 : 문자열 x에서 y라는 문자열이 처음 나타난 위치를 검색하여 z에 저장하는 프로그램을 작성하여라.
=== 처리조건 ===
* 출력은 파일 (result.out)로 받는다.
- 벡터/권정욱 . . . . 3 matches
sort(vec.begin(), vec.end(), compare);
for(i = vec.begin(); i != vec.end(); i++)
cout << (*i).name << "의 성적은 : " << (*i).score << endl;
- 벡터/김수진 . . . . 3 matches
sort(vec.begin(),vec.end(),compare);
for(i=vec.begin();i!=vec.end();i++)
cout<<(*i).score<<endl;
- 벡터/임영동 . . . . 3 matches
sort(vec.begin(), vec.end(), compare);
for(vector<student>::iterator i=vec.begin();i!=vec.end();i++)
cout<<(*i).name<<" "<<(*i).score<<endl;
- 병희 . . . . 3 matches
* ["프로젝트"]
* 회의에서 기수는 없애기로 했단다. 그냥 01학번만 있는거지...ㅋㅋ ^^;; [[BR]]
수개월간 아무런 소식이 없어서, ZeroPagers 에서 ZeroWikian 으로 분류를 바꾸었습니다. 원하시면 언제든지 참여해 주세요. --NeoCoin
- 비밀키/김홍선 . . . . 3 matches
ifstream fin("xm.txt");
cout << endl;
cout << endl;
- 사람들이모임에나오지않는다 . . . . 3 matches
사람들을 다그쳐 봐야 아무런 효과가 없습니다. 어떻게 그들에게 영향을 줄까(influence)를 고민해야 합니다. 내가 그 사람을 바꾸려고 하지말고, 그 사람이 스스로 바뀌어서 "자발적으로 나오고 싶은 마음이 굴뚝 같게" 될 수 있는 상황을 만들어야 합니다.
"Reform the environment, stop trying to reform the people. They will reform themselves if the environment is right." --NoSmok:BuckminsterFuller
- 삼총사CppStudy/숙제2 . . . . 3 matches
|| Normalize || 벡터의 길이를 1로 만듭니다. ||
추가로 생성자라던지 초기화 할 수 있는 함수를 추가로 넣어줘야 합니다.
- 새로운위키놀이 . . . . 3 matches
팀별로 페이지가 있다. 그 페이지에 팀원들의 프로필 페이지를 링크시켜두고.
각 팀원들은 팀 페이지를 중심으로 각각의 팀원들의 페이지에 글을 남긴다.
- 새싹교실/2011/學高/2회차 . . . . 3 matches
* 3+5=8E+0 를 출력하는 프로그램을 작성하라. 단, %d,%e를 반드시 이용해야 한다.
집중이 잘 되지 않았습니다... 사실 배운 내용들이 제대로 기억나지않습니다~
*3+5=8E+0 를 출력하는 프로그램을 작성하라. 단, %d,%e,를 반드시 이용해야 한다.
- 새싹교실/2012/열반/120409 . . . . 3 matches
* 과제 내용을 위주로 실습을 진행했습니다.
== 별로 정사각형 출력하기 ==
if(N%10==7){
- 새싹교실/2012/열반/120604 . . . . 3 matches
* 해시테이블은 일정 조건 하에서 평균적으로 나타나는 시간복잡도입니다. 단점에 대해 기억해두세요.
* 충돌에 대한 구현이 복잡하고, 충돌이 자주 일어나는 경우 성능이 좋지 않다.
- 새싹교실/2013/록구록구/1회차 . . . . 3 matches
Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
(느낌)기대를 잔뜩 했는데 별로 맛이 없었다.
(앞으로의 계획)다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.
- 새싹교실/2013/양반/6회차 . . . . 3 matches
Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
- 새싹교실/2013/양반/7회차 . . . . 3 matches
Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
- 새싹스터디2007 . . . . 3 matches
* 2007년도 1학기 제로페이지 신입생 대상 세미나를 위한 페이지입니다.
* 일단 분반 이름은 담임선생님 이름으로 나눕니다. 차후에 이름 정하면 변경하는 것은 자유.
* 페이지 이름은 새싹스터디2007/팀명 형식으로!
- 생각 . . . . 3 matches
어휘부족 - 제가 머리속으로 묘사하려는 단어를 직접 골라내기 힘들군요. 근데 느끼죠? 뭘 말하려는지? 한글 교육을 제대로 못받았던가, 아니면 한글의 어휘표현에 한계가 있는게 분명해. --v ["nautes"]
SeeAlso [프로그래머가지녀야할생각]
- 송년회날짜정하기 . . . . 3 matches
가능한 날에 이름을 적고, 모아봅시다. 가장 많은 사람이 오는 날짜를 송년회 날로 합시다.
* 구근이형 그럼 못오시는건가봐요...쩝.. 전에 서강대에서 뵌 이후로 못뵌거 같은데... --창섭
* 26일에 있는 혜영이 누나랑 30일에 있는 분은 다른 분인가요? 성을 안 붙이고 붙이고 한걸로 보아 혹시 26일에 있는 분이 97선배인가 싶어서요...^^; --창섭
- 수 . . . . 3 matches
두번째모임(2005.4.11) - CampusC를 교재로 5명의 학생들이 한 단원씩 강의를 할 예정. ㅡ _-;;;
읽어와 주세요~ ZP에서 상의한대로, 누군가를 지목해서 해당되는 내용을 설명하게 하는 방식입니다~
└스스로 이해될때까지 약간씩 힌트만 주시는게 괜찮았어요^^ㅎㅎㅎ-[joosama]
- 스택/aekae . . . . 3 matches
cout << arr[i] << "추가" << endl;
cout << arr[--i] << "를 삭제합니다" << endl;
cout << arr[j] << endl;
- 신기훈 . . . . 3 matches
지금까지 로그인이 안된다고 생각했었는데
로그인할 때 profile만들기?
그거 하고 나서 로그인 하니 되네요...
- 알고리즘8주숙제/test . . . . 3 matches
fout << numCase << endl;
if (i % 10 == 0)
fout << endl;
- 양아석 . . . . 3 matches
if condition:function
elif condition:func
[게임프로그래밍]
- 얼굴빨개지는아이 . . . . 3 matches
''사람들은 우연히 한 친구를 만나고, 매우 기뻐하며, 몇가지 계획들도 세운다. 그러고는, 다신 만나지 못한다. 왜나하면 시간이 없기 때문이고, 일이 너무 많기 때문이며, 서로 너무 멀리 떨어져 살기 때문이다. 혹은 다른 수많은 이유들로.''
마음으로 통하는 관계가 부럽다.
- 우리들의행복한시간 . . . . 3 matches
죄 값으로 목숨을 내놓아야 하는 사람 이야기이다. 죽음이 다가오는 이야기인데도, 슬픔만이 아닌 따뜻함도 느껴진다.
사형은 마땅히 없어져야 한다. 불우하다는 뜻으로 지었는지도 모를, 블루 노트에 담긴 내용이 전부 거짓이라 하더라도, 사형은 살인자에 대한 적개심밖엔 안 된다.
한데, 사람이 사람을 용서할 수 있는가? 용서라니 너무 거창하고 오만하다. 진심으로 다른 사람과 화해할 수 있을까?
- 위키놀이 . . . . 3 matches
팀별로 페이지가 있다. 그 페이지에 팀원들의 프로필 페이지를 링크시켜두고.
각 팀원들은 팀 페이지를 중심으로 각각의 팀원들의 페이지에 글을 남긴다.
- 위키메뉴얼 . . . . 3 matches
위키메뉴얼제작에 필요한 그래픽을 캡쳐하기 위해 임의로 만든 페이지
지금 제작중인 위키메뉴얼은 위키에 익숙하지 않은 사람을 위해 만드는 것이기 때문에 위키페이지로 제작하지 않습니다.
위키에 대한 설명이 아직 많이 부족합니다. 지금 쓰다만 저런 형태말고 부드럽게 구어체로 정리할려고 합니다.
- 위키설명회2006 . . . . 3 matches
= 제로페이지 홍보 및 위키설명회 2006 =
대상 : 새내기 or 제로페이지에 관심있는 사람.
유선, 수생은 화목 자료구조 때문에 7시에 참가하기로 함.
- 윤성만 . . . . 3 matches
gmhsdoifgdf
현 제로페이지 부회장(돈관리 ^^''')
프로그램 잘짜고 싶은데~
- 윤성준 . . . . 3 matches
|| 순번 || 프로그램명 || 작성시간 || 소스코드 ||
|| 1 || 프로그램 || 3시간 || [프로그램/윤성준] ||
- 이규완 . . . . 3 matches
=== 앞으로 계획 ===
if(str[i]<0)
[[HTML(<img src=http://home.opentown.net/~mcgyber1/images/face/변신.gif>)]]아무도 없지? 변신! 귀엽지 ㅋㅋ-[허아영]
- 이승한/.vimrc . . . . 3 matches
"변수 선언문으로 감
"변수 선언문으로 감
"추적에 들어간 상태에서 이전위치로 되돌아오려면 F12 를 누르면 됩니다.
- 이승한/java . . . . 3 matches
public static void main(String [] args){} // C의 void main() 과 같이 프로그램의 시작점이다. String [] args 는 실행될때 넘어오는 문자열 값을 보인다. 정확하게 무엇인지는 모르겠다
클래스 관련 키워드 ; class, abstract, interface, extends, implements
[이승한], [겨울과프로젝트], [JavaStudy2004]
- 임다찬 . . . . 3 matches
||2006/3/31||c||[삼각형매크로/임다찬]||C프로그래밍||
[C프로그래밍]
- 임인택/내손을거친책들 . . . . 3 matches
(실제로 읽은 책들/내손을 거친 책들)의 비율을 높이자.
* 모든것은 돌멩이와 몽둥이로부터 시작되었다
* 모든것은 섹스로부터 시작되었다
- 임인택/코드 . . . . 3 matches
= (윈도우즈 프로그래밍) 한글/영문 토글하기 =
if( bChangedHangulMode )
else
- 자유게시판 . . . . 3 matches
- 자유게시판에 글 수정, 삭제, 추가 하면 RecentChanges 에 반영되지 않나요? 글고 저는 위키위주로 사용해서... (제로페이지 북마크를 http://zeropage.org/wiki/RecentChanges 로 해두고 사용하고 있습니다) - [임인택]
- 잔디밭/권순의 . . . . 3 matches
if(temp > greatestNum)
cout << greatestNum << endl << currentRow << " " << currentCol << endl;
- 정규표현식/스터디/메타문자사용하기/예제 . . . . 3 matches
로 검색하면 어떤것이 나올까요?
1. 다음 파일들의 목록에서 대문자로 시작하는 파일을 찾아라.
1. 다음 파일들의 목록에서 소문자로 시작하는 파일을 찾아라. 적어도 2개 이상의 방법을 표현할 것
- 정렬/Leonardong . . . . 3 matches
ifstream fin("unsortedData.txt"); //파일 이름이...삽질 1탄~!
if (sorted[k] < sorted[j])
fout << sorted[i-1] << endl;
- 정렬/aekae . . . . 3 matches
ifstream fin("input.txt");
if (number[j] < number[k])
fout << number[i] << endl;
- 정렬/강희경 . . . . 3 matches
ifstream fin("input.txt");
if(array[j] > array[k])
fout<<endl;
- 정렬/곽세환 . . . . 3 matches
ifstream fin("unsorteddata.txt");
if (data[i] > data[j])
fout << data[i] << endl;
- 정렬/문원명 . . . . 3 matches
ifstream fin("UnsortedData.txt");
if (arr[m]>arr[n])
fout<<arr[k]<< endl;
- 정렬/민강근 . . . . 3 matches
ifstream fin("UnsortedData.txt");
if(ar[j]<ar[k])
fout << ar[p]<<endl;
- 정렬/방선희 . . . . 3 matches
ifstream fin("UnsortedData.txt");
if(arr[j] < arr[k])
fout << arr[i] << endl;
- 정렬/변준원 . . . . 3 matches
ifstream fin("UnsortedData.txt");
if(number[j] < number[k])
fout << sorted[i] << endl;
- 정렬/장창재 . . . . 3 matches
ifstream fin("input.txt");
if (array[j] < array[k])
fout << array[ar] << endl;
- 정모/2002.11.13 . . . . 3 matches
||앞으로 알아두면 좋은 언어에 대해서||2명||
||제로페이지 학원 공개강좌!||_||
기타 - 영화, 진로에 대한 이야기, ...
- 정모/2004.2.17 . . . . 3 matches
== 현재 프로젝트 진행상황 알림 - 20분 ==
== 학기 중 프로젝트 계획 들어보기 - 10분 ==
* 수상 경력, 프로젝트 경력
- 정모/2004.3.12 . . . . 3 matches
== 현재 프로젝트 진행상황 ==
* 제로페이지서버 문제로 인해 보류
- 정모/2004.9.14 . . . . 3 matches
|| JAVA || 로보코드 || 수민, 능규, 욱주 ||
* 회의 뭐 했습니까... 듣기로는 짜장면 먹었다던데... 아 글구 스터디는 어떻게 됐습니까? 저는 홈페이지 만드는 그런 스터디 하고 싶습니다~ -성만(??)
Flash - XML 연동 => 이 스터디가 나름대로 관련이 많을걸.. 아니면 스터디 하나 만들어두 좋구 --[곽세환]
- 정모/2005.9.13 . . . . 3 matches
* [정모/2005.9.8]와 이번 정모에 나온 사람들에게만 문자들 돌리기로 선언;;
* 프로젝트
* [2005리눅스프로젝트] : 조현태, 송수생, 최경현
- 정모/2006.1.5 . . . . 3 matches
* 프로젝트 진행상황 ( 2주에 한번 하는게 낫지 않을까요? )
윗사람과의 관계에서 중요한 부분은 '예의' 입니다. '예'에서 어긋나게 되면 그 이후 그분과 대화를 할 수가 없을 것입니다. 정모때 우리가 교수님께 요구할 수 있는 것들에 대해 생각하는 것도 중요하지만, 교수님께 일단 인사를 드리는 것도 중요하다고 봅니다. 일단, 회장이 바뀌었다는 것으로 교수님께 찾아뵙고 인사드리는 것도 생각해 볼 부분이 아닐까 생각됩니다. 이전에 담당교수님과 컨텍을 한 적도 없으므로, 일단 대화창구를 여는 것이 먼저라 생각합니다. --[1002]
- 정모/2006.2.2 . . . . 3 matches
- 2월 16일에 친목을 다지기로 연락을 해보도록 한다.
모든 팀이 열씸히 하였으므로 공동 우승으로 함.
- 정모/2006.3.16 . . . . 3 matches
= 프로젝트 =
OST방식으로 진행
프로젝트: 공업수학,임베디드 리눅스 동영상 플레이어, 자자(자바와자료구조)
- 정모/2006.4.10 . . . . 3 matches
=== 프로젝트 ===
10. 숙제로 제출하고 선배가 흰트를 준다.
11. 코드레이스 진행 후 팀별로 설명한다.
- 정모/2013.2.12 . . . . 3 matches
* [김윤환] 학우의 개인적인 사정으로 인해 Pass.
* 다음주 정모(2/19)에는 PC실 정리 계획으로, 4시에 시작됩니다.
=== 스터디/프로젝트 공유 ===
- 정모/안건 . . . . 3 matches
C세미나는 신입회원중 1학년 전체를 대상으로 하고, 나머지 세미나는 신입회원중 희망하는 사람들 그룹별로 나누는게 어떨까요?
둘러 보다 보니, '항상 ZeroPage 를 활성화 하기 위해 무엇을 할것인가?' 라는 질문이 반복 되는것 같습니다. 시각을 바꾸어서, 활성화된 다른 학교의 학회, 동아리에서 그들의 장점 분석하는 벤치마크 이벤트 같은것도 있으면 어떨까요? [공학적마인드]로 말이지요. :)
- 정의정 . . . . 3 matches
* 제로페이지에서 뭔가 많이 한거같은데 사실 한게 없는 잉여회원
* [데블스캠프2012] - UI프로그래밍
* [데블스캠프2013] - MVC와 Observer 패턴을 이용한 UI 프로그래밍
- 조동영 . . . . 3 matches
승한이의 꼬임에 넘어가 시작하게된 프로젝트 ㅋㅋ
어려울것 같지만 먼가 결과물이 나올거 같은 좋은예감도 들게 해주는 프로젝트..
얼떨결에 코 꿰어서 하게댄 프로젝트... 라고하긴 머하나... 다른사람에게 설명해주는 법을 공부한다고 생각하고 해야지...
- 조윤희 . . . . 3 matches
계획: C프로그래밍의 제왕이 되기
* 재민이형 따라하기인가?ㅡㅡ;우주정복하기가 쉽지 않을 텐데?ㅋㅋ준회원으로서 준회원된거 축하다~ -[Leonardong]
* 우주정복하면.. C 프로그래밍의 우주여왕이 되는건가?? - [노수민]
- 조현태의자바교실 . . . . 3 matches
* 2학년 1학기 컴퓨터프로그램설계 프로젝트 대비라는 성격을 지닌 GUI 강좌 및 스터디.
* 각 프로젝트 질문/답변
- 즐겨찾기 . . . . 3 matches
읽은 페이지는 아래로 내린다.
[http://groups.yahoo.com/group/testdrivendevelopment/ TDD 야후그룹]
[http://groups.yahoo.com/group/testdrivendevelopment/message/11784 Well, that's gonna fail]
- 지금그때2005/진행내용 . . . . 3 matches
* 서핑중독 : 파이어 폭스 탭으로 자기가 볼 사이트 들을 미리 띄워 놓고 그 사이트들을 보면서 탭을 닫는식으로 꼭 볼 사이트만 보고, 의도하지 않았던 사이트를 볼 경우에는 새창을 띄워서 본다.
- 지금그때2005/회의20050308 . . . . 3 matches
패스하지 않을 질문으로 만들자. 패스를 하면 엄한 벌칙을 준다.
Y/N로 대답할수 있는 질문.
질문자가...뒤로가서...룰을 다듬어야...
- 지금그때2006/여섯색깔모자20060324 . . . . 3 matches
2개를 빌리기로 정함
먹는다 or 다른 강의실로 이동하여 먹는다 -> 복도에서 방황하는 것을 방지
기타 -> 쉬는 시간을 따로 정하지 말자
- 지속적인에너지패턴 . . . . 3 matches
그러므로,
'''상세한 주제에 대해 공부하기 위해서 진정한 열정에 의해 스터디 그룹을 만들어라. 일주일에 한번 또는 격주로 두시간씩 만나고, 도중에 짧은 휴식을 가져라. 보내는 시간을 즐길수 있는 곳을 미팅 장소로 정해라, 그리고 그룹이 집중할 가치가 있는 글만 공부해라.'''
- 쪽지:인수와상협 . . . . 3 matches
이 페이지는 네 위키홈과 내 위키홈이 공유하는 페이지로서,
서로 같이 가지고 있고, 서로 상대방이 수정하면 각 위키홈에 수정된글에 뜬다~ -상협
- 창섭/Arcanoid . . . . 3 matches
|| 11월 12일 || MMTimer 시도하다가 컴 다운으로 소스 날림. ㅜ.ㅜ ||
* 소스 잃어버리고 나서 한참을 망연자실 했다.. 다행(인지는 모르겠으나..)이도 중간 백업본이 있었다.. 그나마 점수 반은 받겠다.. 스크린 샷이나 올릴련다. 물론 백업본이라 기능구현은 다 안된거지만 겉모습은 어느정도 멀쩡하므로..;;
* 일정을 세부적으로 나누지 못했다. 기록도 너무 띄엄띄엄했다. 상협이 발표를 보며 느낀게 많았다. 자신이 한 일에 기록하는 거 말이다..
- 최소정수의합/김소현 . . . . 3 matches
가 거꾸로 되어있습니다.(결과값에 n이 1이 더해집니다.)
으로 수정후, n=1을 n=0으로 수정하면 됩니다.^^ - [조현태]
- 최소정수의합/이규완 . . . . 3 matches
이 알고리즘대로 수행하면 계산 결과에 1이 더해서 나옵니다.^^ 덧셈후 n에 1을 증가시키기 때문입니다.^^
수정안은 [최소정수의합/허아영]란에 댓글로 달려있습니다.^^ - [조현태]
처음 n 초기화도 0으로 해 주는것이 맞을듯.^^ 나도 틀렸음. ㅠ ㅋㅋ-[허아영]
- 최소정수의합/최경현 . . . . 3 matches
// 문제 : 1 + 2 + 3 + ..... + n >= 3000 을 만족하는 최소 n과 그것의 합을 구하는 프로그램을 작성.
if(sum>=COMPARE_NUMBER)
else
- 큰수찾아저장하기/김영록 . . . . 3 matches
if (max < space[a][i]){
if (max < space[a][i]){
if (max < space[i][j]){
- 토이/메일주소셀렉터 . . . . 3 matches
특정 text안에서 메일 주소만을 골라내 단체메일을 보내기 위한 폼(가령 a@b.com, b@c.net,..)으로 변환하여 text로 저장해준다. 여러 단계로 차례차례 나누어 구현
- 파스칼삼각형/김태훈zyint . . . . 3 matches
취중 프로그래밍 -_-
if(n==1 || n==0) return 1;
if(r==0) return 1;
- 파스칼삼각형/문원명 . . . . 3 matches
cout << res << endl;
if(aCol == 1 || aCol == aRow)
else
- 파스칼삼각형/조현태 . . . . 3 matches
if (yol==1) //행이 1일때를 하는게 옳으나, 그때는 열이 반드시 1이고 이렇게 하는것이 연산을 줄일 수 있어서... 가독성 없음;
else
* 어업;; 파스칼이 이런식으로도 돼는구나 -_-;; 신기하다 =0=;;; [정수민]
- 페이지이름고치기 . . . . 3 matches
페이지 이름을 고치는 기능이 모인모인에서는 특별하게 존재하지 않는다. 다음과 같은 과정으로 해결한다.
1. 고치려는 이름으로 새 페이지를 연다.
* 기존 페이지로부터 내용을 긁어서 새 페이지에 복사한다.
- 프로그래밍/DigitGenerator . . . . 3 matches
if (each.matches("")) {
if (i + bitSum == number) {
[프로그래밍]
- 피보나치/aekae . . . . 3 matches
cout << fivo(input) << endl;
if (i == 0)
if (i == 1)
- 피보나치/문원명 . . . . 3 matches
cout<<in<<"번째는 "<<out<<endl;
if(x>2) return num(x-1)+num(x-2);
else return 1;
- 피보나치/이동현,오승혁 . . . . 3 matches
if(input <= 0)
if(in == 1 || in == 2)
else
- 피보나치/이승한 . . . . 3 matches
if n1+n2>=dest:
else:
if __name__ == '__main__':
- 피보나치/임인택 . . . . 3 matches
if num == 1 or num == 2 :
else:
if num <= 2 :
- 허아영 . . . . 3 matches
실제 코드 >> [허아영/C코딩연습] 으로 들어오시면 볼 수 있습니다.
== python으로 ==
== 참가했던 프로젝트 & 스터디 ==
- 허아영/MBTI . . . . 3 matches
: 진실과 사실에 주로 관심을 갖고 논리적이고 분석적이며 객관적으로 사실을 판단한다.
단지, T쪽으로 기울어져 있기 때문에 T의 성향이 좀 더 뚜렷하게 나타난다 일뿐?
- 호너의법칙/김태훈zyint . . . . 3 matches
//호너의 법칙으로 계산
addcount--; // 처음 대입하는 것은 덧셈이 아니므로 보정값 -1
if(i==0) break;
- 회원 . . . . 3 matches
* 이 페이지는 현재 관리가 제대로 되지 않고 있습니다.(14/1/12) -[김태진]
* 23기 - [이봉규], [조영준], [김현빈], [박희정], [장혁재], [김도형], [원준연], [임지훈], [최다인], [남근우], [지영민], [조성욱], [이예나], [최은정], [김남규], [김도형], [정성우], [송바위샘], [김태헌], [이선로]
* 23기 - [이봉규], [조영준], [김현빈], [박희정], [장혁재], [김도형], [원준연], [임지훈], [최다인], [김도형], [송바위샘], [이선로], [정성우]
- 05학번만의C Study/숙제제출1/이형노 . . . . 2 matches
cout << "섭씨 " << cel << "도는 화씨로 " << fah << "도 입니다." << endl;
- 05학번만의C++Study/숙제제출1/이형노 . . . . 2 matches
cout << "섭씨 " << cel << "도는 화씨로 " << fah << "도 입니다." << endl;
- 05학번만의C++Study/숙제제출1/정서 . . . . 2 matches
using std::endl;
cout << "섭씨 " << celsius << "도는 화씨 " << fahrenheit << "도 입니다" << endl ;
- 2005/2학기프로젝트 . . . . 2 matches
|| 프로젝트 || 멤버 ||
|| [제로Wiki] || 01 [남상협], 05 [조현태] ||
- 2005MFC스터디 . . . . 2 matches
기초부터 시작을 하여서 간단한 프로그램 만들기
Upload:visual c++6 완벽가이드.gif
- 2006동계MT . . . . 2 matches
- 아쉬웠던 점 : 밤에 방이 후끈..ㅜㅜㅋ 별로 없다.
방에서 절반 정도는 난방이 안 들어오는 바람에, 따뜻한 곳에서만 옹기종기 모여서 잔 건 괴로웠답니다.
- 2006동계MT/사진1 . . . . 2 matches
단체로 근대 뒤에 성이 가려져있어..ㅜㅜ
집으로 가는 길
- 2007ToeflStudy . . . . 2 matches
2. 테스트는 100문항으로 하고 표제어 하나 틀릴 시 50원, 동의어 하나 틀릴 시 30원의 벌금을 문다.
* 좋은 의견 감사합니다^^ 예전에 구매했던 mp3파일로 듣기 및 작문도 병행해야겠네요. -- 진석
- 2011년MT . . . . 2 matches
* 청평이 더 가깝지만 가평이 더 펜션 찾기 쉬워 가평으로 가게 될 것 같습니다.
* 양주의 코스모스 펜션으로 결정되었습니다
- 3DCube . . . . 2 matches
* 3차원으로 큐브를 구현해서 조작할 수 있도록 한다.
* 3D 개념 공부하기 위해 학습용으로 구현해 볼 만 하다.
- 5인용C++스터디/비트맵 . . . . 2 matches
사진과 같은 정밀한 그래픽을 프로그램 실행중에 일일이 그린다는 것은 괴장히 비합리적.
즉 복잡한 그림을 출력해야 할 경우는 미리 그려진 비트맵을 사용하는 것이다.
- 7피관리 . . . . 2 matches
일반 PC : 76-119, 121 (120번은 네토리 서버로 사용되고 있음.)
[제로페이지분류]
- AM/알카노이드 . . . . 2 matches
주석을 안 달아서 뭐가 뭔지 했갈릴까봐 간략히 설명합니다. 옛날 알카노이드 겜을 모델로 해서 거의 비슷해요. 일단 CVaus 클래스는 플레이어(움직이는 막대), CBrick은 벽돌, CPill은 알약, CBall은 공입니다. 아직 총알 나가는건 안되구요, 맵도 하나밖에 없어요. 다 깨도 그냥 똑같은 맵이 나와요. (참고로 알약중에 보라색이 다음판 넘기는거구, 빨간색은 총알쏠수 있는 상태임). 메뉴 기능되는것도 없고, 게임오버되면 다시 실행 해야되요 -세환
- AcceleratedC++/Chapter15 . . . . 2 matches
15장은 5장에서 제시되었던 문자열 출력프로그램을 객체지향에 입각해서 설계하는 방법을 설명한다.
문법에 직접적인 연관이 없기 때문에 문법을 익히려는 목적으로 책을 본다면 반드시 읽어야할 필요는 없다.
- AirSpeedTemplateLibrary . . . . 2 matches
However, in making Airspeed's syntax identical to that of Velocity, our goal is to allow Python programmers to prototype, replace or extend Java code that relies on Velocity.
소스는 subversion 을 이용해서 다운받으면 됨. (해당 위키 페이지 참조. [Trac] 으로 관리되고 있음)
- Ajax . . . . 2 matches
웹 상에선 요새 한참 인기인 중인 기술. RichInternetApplication 은 Flash 쪽이 통일할 줄 알았는데 (MacromediaFlex 를 보았던 관계로) 예상을 깨게 하는데 큰 공로를 세운 기술.;
- AnEasyProblem . . . . 2 matches
아시다시피, 데이터는 컴퓨터에 이진수 형태로 저장됩니다. 우리가 토론할 문제는 양의 정수와 이 수의 이진 형태입니다.
예를들어, "78"이 주어지면, 여러분은 "1001110"과 같은 이진수 형태로 쓸 수 있습니다. 이 이진수는 4개의 1을 가지고 있습니다. "1001110" 보다 크고 4개의 1을 포함하는 가장 작은 정수는 "1010011"입니다. 출력값은 "83"이 되어야 합니다.
- AppletVSApplication/진영 . . . . 2 matches
* "'''Application'''"은 main()함수를 포함하고 있어서 자기 스스로 실행이 되는 반면에
* "'''Applet'''"은 main()함수 없이 자기 스스로 실행되지 않고 html에 의해 돌아가는 것 같습니다.
- ApplicationProgrammingInterface . . . . 2 matches
API는 소프트웨어의 특정부분이 다른 부분과 소통하기위한 방법의 정의들의 집합체이다. 이는 로우레벨, 하이레벨 소프트웨어 사에에서 보통 추상화를 달성하는 한가지 방법이다.
* [API/WindowsAPI] : 윈도우즈에 기본적으로 제공되는 API
- Atom . . . . 2 matches
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".
The completed Atom syndication format specification was submitted to the IETF for approval in June 2005, the final step in becoming an RFC Internet Standard. In July, the Atom syndication format was declared ready for implementation[1]. The latest Atom data format and publishing protocols are linked from the Working Group's home page.
- BaysianFiltering . . . . 2 matches
그리고 PatternClassification 관련한 여러 알고리즘에도 BayesTheory 를 기본으로 하는게 상당히 많다.
- Bigtable/MasterServer . . . . 2 matches
1. 로드 밸런싱을 통한 TS들의 부하관리
* 난 태블릿도 SSTABLE의 리스트를 저장하는 파일로 관리하겠어 -> 이러면 마스터가 몰라도되나?
- C 로배우는패턴의이해와활용 . . . . 2 matches
= GoF 디자인 패턴! 이렇게 활용한다:C++로배우는패턴의이해와활용 =
* 참 좋은 책 같다. 그냥 말로만 들으면 이해도 안가고 어렵게 느껴질 디자인 패턴을 적절하고 멋진 소스와 함께 보여줘서 한층 더 이해를 돕는다. 이책을 DesignPatternsJavaWorkBook 과 같이 보면 정말 괜찮은거 같다.
- COM/IUnknown . . . . 2 matches
컴자체가 바이너리 모델이 거의 C++을 유사한 형태로 가져온 만큼 C++ 모습을 보면 대략 어떤 향태인지를 추측할 수 있다.
COM 객체를 다른 포인터에 할당하거나 NULL 로 초기화 할 때 호출하여 참조카운터를 올바르게 유지해야만 객체의 정상적인 소멸을 보장할 수 있다.
- CORBA . . . . 2 matches
CORBA(Common Object Request Broker Architecture)는 소프트웨어 객체가 분산 환경에서 협력하여 작동하는 방식에 대한 일단의 명세서이다. 이 명세서에 대한 책임 기관은 OMG이며, 소프트웨어 업계를 대표하는 수 백 개의 회원 업체로 이루어져 있다. CORBA의 핵심부분은 ORB이다. ORB는 객체의 소비자인 클라이언트와 객체 생산자인 서버 사이에서 객체를 전달하는 일종의 버스로 생각될 수 있다. 객체의 소비자에게는 IDL이라는 언어를 이용한 객체 인터페이스가 제공되며, 객체의 생상자에 의해 제공되는 객체의 자세한 구현사항은 객체의 소비자에게는 완전히 숨겨진다.
- Classes . . . . 2 matches
* http://www.3dsmax.net/4_article/rendering.htm
set shiftwidth=4
- CodeConvention . . . . 2 matches
* [http://network.hanbitbook.co.kr/view_news.htm?serial=161 CTS(Common Type System)와 CLS(Common Language Specification)]
* 각 언어마다, Code Convention or Style, Notation, Naming 제각각이지만 일단은 Convention으로 해두었음 --["neocoin"]
- ComputerGraphicsClass/Exam2004_1 . . . . 2 matches
A,B,C 좌표가 있다. 이에 대해 점 (__,__) 를 기준으로 45도 방향 시계방향으로 Rotation을 하려고 한다.
- ComputerNetworkClass . . . . 2 matches
프로젝트의 수준도 데이터 통신과는 달리 survey or analysis가 아닌 실제 프로그래밍을 통한 결과 도출에 중심을 맞춘다.
- ConvertAppIntoApplet/진영 . . . . 2 matches
class NotHelloWorldPanel extends JPanel
public class NotHelloWorldApplet extends JApplet
- CppStudy_2002_2/슈퍼마켓 . . . . 2 matches
1. 클래스를 이용 (좀 더 체계적으로)
2. 가게의 물품은 무한대로 준비되어 있음
- Cpp에서의가변인자 . . . . 2 matches
C의 io 라이브러리인 printf에 쓰이는 그것이다. 또는 MFC - CString의 CString::Format이나 CString::AppendFormat에 쓰이는 그것이기도 하다. 함수 쓸때 ...이라고 나오는 인자를 가변인자라고 한다. 이렇게 하면 인자를 여러개를 받을 수 있다.
[프로그래밍분류]
- Cracking/ReverseEngineering/개발자/Software/ . . . . 2 matches
기존 배우고 있던 것들과는 별개로 Cracking에 대한 것들을 익혀야한다. (여기서 Cracking은 시스템 전반에 관한 지식을 익혀 그것을 악용 하는 것이다.)
(윈도우즈 시스템 커널이 하는 일등을 배울 수 있으며 그것을 이용해 나쁘게 사용하든 좋게 사용하든 도움이 많이 되는 책이다. Windows에 Base를 둔 Software 개발자로서는 꼭 읽어야할 책.)
- CuttingSticks/김상섭 . . . . 2 matches
for(vector< vector<int> >::iterator k = Data.begin(); k != Data.end(); k++)
if(min > temp1)
- CuttingSticks/문보창 . . . . 2 matches
if (lenStick == 0)
if (min > d[i][k] + d[k][j])
- CxImage 사용 . . . . 2 matches
BOOL CCxDoc::OnOpenDocument(LPCTSTR lpszPathName)
if (!CDocument::OnOpenDocument(lpszPathName))
//if (!ProcessShellCommand(cmdInfo))
- DebuggingTip . . . . 2 matches
정상적인 출력이 나왔던 소스로 돌아간다. :)
}}}--NeoCoin 상민이형과 메신저로 이야기하던 중.
- DefaultValueMethod . . . . 2 matches
의사소통을 더 쉽게 해주고, 상속될때에 오버라이딩 할 수 있는 여지를 남겨준다.(상속관계마다 상수가 다른 경우를 말하는 것 같다.)
시놉시스가 없는 책의 시놉시스를 비어있는 스트링으로 표현해보자.
- Delegation . . . . 2 matches
스몰토크는 다중상속을 지원하지 않는다. A와 B의 속성을 모두 가지고 있는 객체를 표현하려면 어떻해야할까? 상속은 잠재적으로 오버헤드가 있다. 또한 복잡한 상속관계에서는 서브클래스의 단 하나의 메소드를 공부함에도 위에서 알아야 할게 너무 많다. 답은 '위임'이다. 일의 일부를 다른 객체에게로 위임하자.
- DermubaTriangle/조현태 . . . . 2 matches
if ((0 == abs(trianglePoint.y) % 2 && 0 == abs(trianglePoint.x) % 2) ||
else
- Design Pattern(2007-1) Study . . . . 2 matches
매일 모여야 되나..-_-a 웹상으로 ㄱㄱ
* 이 프로젝트 시작 안하나요?^^; - [상욱]
- DesignPatterns . . . . 2 matches
["디자인패턴"] 서적중에서 레퍼런스(Reference) 라 불러지는 책. OOP 를 막연하게 알고 있고 실질적으로 어떻게 설계해야 할까 하며 고민하는 사람들에게 감동으로 다가올 책. T_T
- DevelopmentinWindows/UI . . . . 2 matches
* 프로그레스 바[[BR]]
=== 공통 다이얼로그 박스 ===
- EdsgerDijkstra . . . . 2 matches
위의 Stepwise Program Construction과 The Humble Programmer는 초강력 추천. 감동의 물결. 아마 그 글을 읽고 몇 주 동안은 여러가지 실험을 해보며 흥미진진하게 보내게 될 것이며, 몇 몇은 프로그래밍에 획기적인 전환점을 맞이할 수 있을 것이라 믿음. --김창준
[http://www.cs.utexas.edu/users/UTCS/notices/dijkstra/ewdobit.html 2002년 8월 6일 타계]. 위대하다고 불리는 인물들이 동시대에 같이 살아있었다는 것, 그리고 그 사람이 내가 살아있는 동안에 다른 세상으로 떠났다는 사실이란. 참 묘한 느낌이다. --["1002"]
- EmbedAudioFilesForFireFox . . . . 2 matches
웹 페이지에 Embed된 오디오 파일을 FireFox에서 수월하게 재생시키기 위해서는 아래와 같이 type 속성을 주고 플레이어의 크기를 명시적으로 적어줘야 한다.
* 최근에 embed태그에 관한 소송에 MS가 패소하여 앞으로는 embed태그에 관한 기능이 달라지게 된다는 소식을 들은 기억이 있네요. 동네 자게였나? - 이승한
- EnglishSpeaking/TheSimpsons . . . . 2 matches
* 현재 영어 스터디 참가자가 4명이므로 4명 기준 회화 장면 Script 위주로 적어나갈 겁니다.
- EnterpriseJavaBeans . . . . 2 matches
Lomboz - ["Eclipse"] 플러그인. 내부적으로 XDoclet를 이용, Home & Remote & Local Interface 를 자동으로 생성해준다.
- Functor . . . . 2 matches
A function object, often called a functor, is a computer programming construct allowing an object to be invoked or called as if it were an ordinary function, usually with the same syntax. The exact meaning may vary among programming languages. A functor used in this manner in computing bears little relation to the term functor as used in the mathematical field of category theory.
비슷한 구현에 대해서 OO 쪽에서는 MethodObject 라 부르기도 함. (Refactoring에 나옴) 구현 모양상으로 보면 CommandPattern, C++ 진영에서는 Functor 가 일반적인 표현.; --[1002]
- Genie . . . . 2 matches
== 프로젝트 & 스터디 ==
[VendingMachine/재니]
- Hacking . . . . 2 matches
* tcpdump, windump, sniffit 과 같은 Tool이 있음.
* Sniffing 에 대한 대비책
- HanoiProblem/은지 . . . . 2 matches
if(n==1)
else
- HanoiTowerTroublesAgain!/문보창 . . . . 2 matches
if (stick[i] == 0 || isSqure(stick[i] + number))
cout << number - 1 << endl;
- HardcoreCppStudy/두번째숙제/ConstructorAndDestructor/김아영 . . . . 2 matches
- 클래스의 객체가 생성될 때, 자동으로 호출
- 주로 변수에 대한 초기화 작업을 수행
- HardcoreCppStudy/두번째숙제/This포인터/김아영 . . . . 2 matches
f()로 클래스 내부에선 호출이 가능한데 정확히 this->f()에서 this가 생략된 형이다.
class B에서 class A의 프로퍼티나 메쏘드를 접근할 필요성이 있다면
- HowManyPiecesOfLand?/하기웅 . . . . 2 matches
if(n.isZero())
cout << Piece_of_Land(input) << endl;
- HowManyZerosAndDigits/문보창 . . . . 2 matches
시간제한이 1분짜리 문제다. Digits의 개수를 세는 것은 로그를 이용하면 간단히 해결되나, Zeros의 개수를 세는 방법이 딱히 떠오르지 않는다.
cout << nZero << " " << int(nDigit) + 1 << endl;
- InterWiki . . . . 2 matches
MoinMoin marks the InterWiki links in a way that works for the MeatBall:ColourBlind and also is MeatBall:LynxFriendly by using a little icon with an ALT attribute. If you hover above the icon in a graphical browser, you'll see to which Wiki it refers. If the icon has a border, that indicates that you used an illegal or unknown BadBadBad:InterWiki name (see the list above for valid ones). BTW, the reasoning behind the icon used is based on the idea that a Wiki:WikiWikiWeb is created by a team effort of several people.
ZeroWiki에서는 InterMap 페이지 수정으로 InterWiki를 조작할 수 있습니다.
- JTD 야구게임 짜던 코드. . . . . 2 matches
빠른 시일 내로
if()
- JTDStudy/두번째과제/상욱 . . . . 2 matches
public class HelloWorld extends JApplet implements ActionListener {
if (e.getSource() == button1) {
- Java Script/2011년스터디/박정근 . . . . 2 matches
if (e==8)
else{
- JavaScript/2011년스터디/박정근 . . . . 2 matches
if (e==8)
else{
- JavaStudy2003/두번째과제 . . . . 2 matches
* 이번 과제의 목표는 '''"자바와 친해지기"''' 입니다. 저번 수업에서 간단히 자바의 OOP문법을 설명해 드렸는데요. 그 밖의 소스나 아니면 참고자료, 책 등을 사용해서 간단한 프로그램을 만들도록 하겠습니다.
* 데블스 캠프 때 했던 ToyProblems 를 자바로 구현해 보세요. 그리고 차이점이 무엇일까 한번 생각해 보시기 바랍니다.
- JavaStudy2004/이용재 . . . . 2 matches
if (statue == 1)
if (statue == 2)
- KentBeck . . . . 2 matches
ExtremeProgramming의 세 명의 익스트리모 중 하나. CrcCard 창안. 알렉산더의 패턴 개념(see also DesignPatterns)을 컴퓨터 프로그램에 최초 적용한 사람 중 하나로 평가받고 있다.
- KnapsackProblem/김태진 . . . . 2 matches
if(w >= weight[k]){
}else{
- Komodo . . . . 2 matches
다중언어 IDE. PHP, Python, Perl, Tcl 등 주로 스크립트 언어 지원.
가장 인상적인 기능을 뽑는다면 Rx(Regular Expression) Toolkit 을 들 수 있다. 이를 이용하면 Regular Expression 에서 각 그룹에 따른 변수들이 어떻게 뽑아져나오는지 쉽게 눈으로 확인할 수 있다.
- LinuxProgramming/QueryDomainname . . . . 2 matches
if (argc != 2) {
if(!host)
- MIB . . . . 2 matches
* 기타로 지구를 구하기도 한다. 물론 대통령도 모르는 기구라서, 훈장 같은것이나 업적을 전혀 인정 받지 않는다. (이점이 드라마 Star Gate와 차별되는 점이다.)
* 요즘 ["상민"]이는 "MIB들이 처리해 줄꺼야" 라는 말을 많이 쓴다. dcinside에서 "MIB들이 처리 했습니다." 라는 소리 한마디 듣고 전염이 되어 버렸다. 여기에서 MIB라면 일전에 창준 선배가 말씀하신 그린베레 프로그래머(Green Beret Programmer(Wiki:GreenBeretCoding) 정도의 의미가 될 것이다. 후에 MIB Programmer가 더 적당한 말이 될수 있겠다고 생각하곤 한다.
- Map/노수민 . . . . 2 matches
ifstream fin("input.txt");
cout << endl;
- Map연습문제/박능규 . . . . 2 matches
cout << endl;
cout << endl;
- Map연습문제/유주영 . . . . 2 matches
ifstream fin("input.txt");
if(fin.eof())
- MemoryUsageInJava . . . . 2 matches
자바로 작성된 프로그램에서 사용된 메모리 크기 측정. 외부에서 import 된 모듈에서 사용하는 메모리도 측정되는지는 잘..-_-a
- MiningZeroWiki . . . . 2 matches
2000페이지가 넘어가는 [제로위키]를 일부나마 탐험해 보는 놀이 SeeAlso [데블스캠프2004/월요일]
* 1안 : 주최자가 시작점을 주고, 2인 일조가 되어 OHP에 보드마커를 이용해 링크 방향으로 MindMap 그린다. 차후 큰 장소에 OHP를 합쳐본다.
- MoinMoin . . . . 2 matches
* 모니위키로 개인위키를 운영하고 있었는데 기능에 한계가 있어 모인모인으로 이사하는 중 입니다. - 이승한
Mmmmh , seems that I can enrich so more info: "Moin" has the meaning of "Good Morning" but it is spoken under murmur like "mornin'" although the Syllable is too short alone, so it is spoken twice. If you shorten "Good Morning" with "morn'" it has the same effect with "morn'morn'". --Thomas Albl
- MySQL/PasswordFunctionInPython . . . . 2 matches
if each == ' ' or each == '\t': continue
if __name__=="__main__":
- NSIS/예제4 . . . . 2 matches
;경로 설정 메시지
DirText "VNC 4.0 영문판이 설치되어있는 곳의 경로를 지정해 주세요."
SectionEnd
- OekakiMacro . . . . 2 matches
{{{[[OeKaki]]}}}라고만 쓰면 페이지 전체를 OeKaki게시판처럼 쓸 수 있다. 단, 코멘트는 위키위키식으로 단다.
(!) 짧막한 코멘트를 달게끔 해도 괜찮을 것이다. Comment 플러그인을 만들고, Blog의 코멘트와 Vote매크로를 응용해서 페이지 임의의 부분에 좀 더 쉽게 코멘트를 덧붙일 수 있게 한다.
- One/실습 . . . . 2 matches
1. 1 - 10 for, do-while, while 문으로 각각 출력
순서대로 10, 9, 8, .. 1 대입
- Ones/송지원 . . . . 2 matches
if( division(&ns, n) == 0 ) break;
if( i <= LENBOUND ) printf("%d\n", i);
- OpenCamp . . . . 2 matches
* ZeroPage 내부의 다양한 학술활동을 외부의 다양한 사람들에게 개방하고 공유하면서 스스로의 배움도 점검하는 일석이조의 행사
* 주제: Programming Language and its Application(프로그래밍 언어와 그 응용)
- OperatingSystem . . . . 2 matches
일종의, [[SeparationOfConcerns]]라고 볼 수 있다. 사용자는 OperatingSystem (조금 더 엄밀히 이야기하자면, [[Kernel]]) 이 어떻게 memory 와 I/O를 관리하는지에 대해서 신경쓸 필요가 없다. (프로그래머라면 이야기가 조금 다를 수도 있겠지만 :) )
== 주로 사용되는 OS ==
- OrphanedPages . . . . 2 matches
다른페이지로부터 링크가 걸리지 않아 외로이 존재하는 고아 페이지들.
- PHP . . . . 2 matches
지금은 Professional HTML Preprocessor이라는 이름으로 쓰입니다. -[강희경]
- 비슷한 예로 GNU(GNU's Not Unix) 를 들 수 있을까요..? ^.^a - [임인택]
- ParserMarket . . . . 2 matches
This is a marketplace for your parsers. Please state your name, your email, and the release your parser is developed for (if you used a CVS snapshot, also state the revision number).
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.
If you are not familiar with Python and/or the MoinMoin code base, but have a need or an idea for a parser, this is the place to ask for it. Someone might find it useful, too, and implement it.
- PlatformSDK . . . . 2 matches
[http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm 다운로드 페이지] : 최신 버전은 VC6 와 호환되지 않는 다고함.
기타 최신버전은 [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sdkintro/sdkintro/devdoc_platform_software_development_kit_start_page.asp MSDN platform SDK 소개 페이지] 에서 다운로드 하는 것이 가능하다.
- Plex . . . . 2 matches
특히 좋아하는 이유로는 State Machine 의 개념으로 텍스트를 파싱하고 가지고 놀 수 있다는 점이 있겠다. 예를 들어 HTML에서 span 태그에 대해 파싱한다고 할때 <span 시작 - span 내용 - </span> 끝이라면 그냥 이를 서술해버리면 된다는.~
- PolynomialCoefficients . . . . 2 matches
여러 쌍의 줄이 입력된다. 각 쌍의 첫번째 줄에는 두 개의 정수 n과 k가 있으며, 그 두 정수는 스페이스로 구분된다. (0<k, n<13) 이 두 정수는 다항식의 승수(다항식을 곱하는 횟수)와 변수의 개수를 나타낸다. 각 쌍의 두번째 줄에는 k개의 음이 아닌 정수 n₁,...,nk가 입력되는데, 이때 n₁+...+ nk = n이다.
문제의 다항식 읽는데 불편하시면 번거로우시더라도 원문을 참조해 주세요. 아니면 원문을 보시고 푸는 습관을... -- [문보창]
- PolynomialCoefficients/문보창 . . . . 2 matches
if (coeffi)
cout << temp1/temp2 << endl;
- PragmaticVersionControlWithCVS/HowTo . . . . 2 matches
이 경우 체크인처럼 여러번 그리고 자주하는 일에 적용되는 규칙은 간단해햐한다.
릴리즈 브랜치와 같은 일은 좀처럼 생기지 않으므로 좀 규칙이 복잡해도 되지만 최대한 간단하게 한다.
- ProgrammingLanguageClass/Exam2002_2 . . . . 2 matches
기억나는대로 대강;
* pass by value-result, pass by reference, pass by name 에서 actual parameter 로의 Binding Time 을 서술하시오
- ProjectGaia/참고사이트 . . . . 2 matches
*[http://www.istis.unomaha.edu/isqa/haworth/isqa3300/fs009.htm Extendible Hashing] in English, 개념.코볼 구현소스
*[http://perso.enst.fr/~saglio/bdas/EPFL0525/sld009.htm Extendible Hashing]
- ProjectPrometheus/AT_BookSearch . . . . 2 matches
"Accept":"image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*"}
if __name__=="__main__":
- ProjectPrometheus/Iteration3 . . . . 2 matches
||||||Story Name : Recommendation System(RS) Implementation, Login ||
|| Prototype -> Java 로 포팅 || 1.5 || ○ (3시간. Solo) ||
- PythonXmlRpc . . . . 2 matches
if __name__=='__main__':
신기하다. 이글루스에 바로 글쓰기가 되네. - 임인택
- RandomFunction . . . . 2 matches
b가 -일 경우에는 사용에 주의가 필요합니다
[프로그래밍분류]
- RenameThisPage . . . . 2 matches
다음의 리스트들은 페이지 이름을 봤을때 어떤 일을 하는지 모르겠는 경우이나, 또는 ["페이지이름"] 규칙이 어겨진 경우이다.
- Ruby/2011년스터디/김수경 . . . . 2 matches
= Ruby를 이용한 프로젝트 =
* ZeroPage에서 사용할 수 있는 대화방을 Ruby로 구현한다.
- SceneDotOrg . . . . 2 matches
Demo Art 의 산실. 이곳에 등록된 용량대비 화려한 프로그램들을 한번쯤 구경해보시길. ;)
- 변명하자면, 나름대로 상대주의; 비교라는게 없다면 척도가 존재할 수 있을까 :) --[1002]
- ServiceOrientedProgramming . . . . 2 matches
Adrian Tang 교수의 UbiquitousComputing 관련 강연에서 잠깐 언급되어서 웹을 뒤져봤는데 자료가 꽤 있는것 같다. UbiquitousComputing 과 SemanticWeb 등등과 맞물려 있는 프로그래밍 패러다임인것 같다. 개념정리를 해서 이곳에 정리를 해볼 예정 - [임인택]
[프로그래밍분류]
- SharpZeroJavaProject . . . . 2 matches
[http://www.caucse.net/cgi-bin/moin/moin.cgi/_c0_da_b9_d9_c7_c1_b7_ce_c1_a7_c6_ae_2f_230_c6_c0_20_bf_c2_b6_f3_c0_ce_20_b0_d4_c0_d3 자바프로젝트 #0팀 온라인 게임]
["프로젝트분류"]
- SmithNumbers/김태진 . . . . 2 matches
if(l%j==0){
if(sum==ssum){
- SoftwareEngineeringClass/Exam2006_1 . . . . 2 matches
3) S/W Test 와 Independent Verification & Validation 비교하라
- SoftwareEngineeringClass/Exam2006_2 . . . . 2 matches
4. 심사를 하고 받은 후의 Software Engineer 로써 앞으로 조직의 비전을 위한 자신의 각오, 결단을 기술하시오.
- SpiralArray/세연&재니 . . . . 2 matches
if (nextCell != (nRow * nCol))
cout << endl;
- SuperMarket . . . . 2 matches
1. 클래스를 이용 (좀 더 체계적으로)
2. 가게의 물품은 무한대로 준비되어 있음
- SystemPages . . . . 2 matches
* TitleIndex - 제목으로 페이지들 목록 보기
(수정예정 - 위키가 통합되었으므로)
- TCP/IP 네트워크 관리 . . . . 2 matches
*지금 생각으로는 한주당 1장씩 읽으면 부담없을듯.
["프로젝트분류"], ["책분류"]
- TheLagestSmallestBox/김상섭 . . . . 2 matches
if(W < L)
cout << -b/2.0/a - sqrt(b*b -4*a*c)/2.0/a << " " << 0.0 << " " << min/2.0 << endl;
- Thor . . . . 2 matches
쿨럭쿨럭; 별로 소개할건 없군요 -_-a[[BR]]
일단 앞으로!!!
- ThreeFs . . . . 2 matches
''나는 오늘 친구들과 어떤 어떤 술을 어떤 어떤 순서로 마셨고 나중에 오바이트 했다. 우선은 기분 째지게 좋았다. 이런 조합의 술이 사람을 기분 좋게 한다는 점과, 얼마 안가 폐인으로 만들어 준다는 점을 배웠다.''
- UglyNumbers/문보창 . . . . 2 matches
if (expo5 + expo3 + expo2 > 29)
if (pow(2,expo2) * pow(3,expo3) * pow(5,expo5) > MAX_INT
- Velocity . . . . 2 matches
Java 의 TemplateLibrary. FreeMarker 와 함께 현업에서 자바 웹 프로그래밍시에 많이 이용.
JakartaStruts - VelocityTools 조합으로 많이 이용됨.
- WERTYU/Celfin . . . . 2 matches
if(input[i]==str[0][j])
cout << input << endl;
- WeightsAndMeasures/김상섭 . . . . 2 matches
sort(test.begin(), test.end(), compare);
if( tem <= test[i].strength)
- XOR삼각형/이태양 . . . . 2 matches
if(i==j)
if(computeXor(i, j))
- XOR삼각형/임다찬 . . . . 2 matches
if(front==back)
else
- XpWeek/20041220 . . . . 2 matches
이건 혼자서 해 보세요. [http://www-903.ibm.com/developerworks/kr/java/library/j-xp042203.html Test-driven 프로그래밍] 강좌
스피커를 가져오지 않았다. 준비가 덜 되어서 허둥댔다. TDD를 상당히 어려워 하므로 좀더 수준에 맞는 예제가 필요하겠다. --[Leonardong]
- XpWeek/20041223 . . . . 2 matches
3시 16분 : 나휘동 밖으로 데이트. 패어는 제대로 이루어 지지 않고. 좌절분위기.
- YongAn처음화면 . . . . 2 matches
[http://zeropage.org/trac/namsangboy 프로젝트 소스]
로드런너 - 웹테스트 툴
- ZeroPageServer/FixDate . . . . 2 matches
그런데, rdate 가 이번 테스트 업그레이드 버전 부터 안되는 것이다. 새버전에서 servername 을 입력받을수 없다고 하는데, 왜그런지 모르겠다. 그래서 대안으로 이것을 사용한다.
로 확인할수 있다.
- ZeroPageServer/MySQL계정 . . . . 2 matches
["ZeroPageServer"] 에서 돌아가는 ["MySQL"]의 계정으로서 ["MySQL"] 데이터 베이스를 사용할수 있는 권한이다.
* ["MySQL"] DB 를 원격에서 접근해서 사용할수 있다. 즉, 안정적인 DB 서버 프로그래밍이 가능하다.
- ZeroPageServer/계정신청방법 . . . . 2 matches
* 동일인시 계정은 동일 ID로 처리됩니다.
* gaggachi @ hotmail.com으로 메일(양식 상단) 필수
- ZeroPage_200_OK/소스 . . . . 2 matches
<form action="http://zeropage.org/act" method="post" onsubmit="if (this.password.value.length < 1) {alert('required pw'); return false;} else {return true;}">
- ZeroPage처음화면 . . . . 2 matches
이곳은 제로페이지 위키 처음 화면 입니다.
[http://zerowiki.com 제로위키 중앙 서버 구경하기]
- [Lovely]boy^_^/Diary/2-2-3 . . . . 2 matches
* CBT 토익 매일 공부하기로 했다. 듣기 정말 쉣이다. 하나도 안들린다.
* ["EffectiveSTL"] 나머지 부분은 책반납일이 다 되었음으로 인해 유보. 또한 나머지 내용은 좀 생소해서.. 기초 부분을 좀 더 봐야 할듯싶다.
- [Lovely]boy^_^/Diary/2-2-7 . . . . 2 matches
* 푸쉬푸쉬 프리젠테이션 오늘했다. 발표라는걸 정말 오랜만에 해보는거 같다. 초등학교때는 서로 발표하겠다고 손들고 난린데.. 나이 갈수록 점점 서로 안할라는거 보면 정마 신기하다.
- [Lovely]boy^_^/Diary/7/15_21 . . . . 2 matches
* 아.. 또 코감기냐.. 정말 노이로제 걸릴거 같다.
* 태양계 모델링(이걸 어떻게 이쁜 코드로 바꿀지 고민중)
- [Lovely]boy^_^/Diary/7/29_8/3 . . . . 2 matches
|| C++ || 슈퍼마켓 뜯어 고치면서 새로운 방법 익힘 || 100%? || 커맨드 패턴이라고 부르더군 ||
* 역시 밤 10시까지 일하고 새로하는 라이벌 보고 스타리그 보다 보니 아무것도 못했다
- [Lovely]boy^_^/Diary/8/6_8/10 . . . . 2 matches
|| 3D || 3D MAX로 개체 읽어와서 GL에서 그리기 || || 세미나 받음 ||
|| Python || 비행기 게임 || 간단한 회의, 앞으로의 예정 || 변태겜이 되갈 예정--; ||
- [Lovely]boy^_^/EnglishGrammer/ReportedSpeech . . . . 2 matches
A. You want to tell somebody else what Tom said. There are two ways of doing this :
A. It is not always necessary yo change the verb when you use reported speech. If you report something and it is still true, you do not need to change the verb.
But you must use a past form when there is a difference between what was said and what is really true.(--; 결국은 과거 쓰란 얘기자나)
- [Lovely]boy^_^/ExtremeAlgorithmStudy/MathematicalFoundations . . . . 2 matches
* 초반부는 뭐.. 별로 볼거 없다. 다 고등학교때나 자료구조 시간에 했던것들
* 지수, 로그, 팩토리알, 피보나치 수열 등등
- abced reverse . . . . 2 matches
cout << str1 << endl;
cout << str2 << endl;
- aekae/* . . . . 2 matches
cout << endl;
재선아 굿샷. 근데 정말로 For 문이 넘 많네. - 장창재
- biblio.xsl . . . . 2 matches
<xsl:value-of select="system-property('xsl:vendor')"/>
(<xsl:value-of select="system-property('xsl:vendor-url')"/>)
- coci_coko/권영기 . . . . 2 matches
if(n <= cnt)break;
if(sum + cnt <= n)sum += cnt;
- code regulation . . . . 2 matches
기본적으로 자바에서 쓰이는 형태를 따른다
영어문장의 형태로
- comein2 . . . . 2 matches
[http://165.194.17.15/moin/moin.cgi?action=userform&uid=1009955467.92.23121 comein2로그인]
== 앞으로 하고 싶은 공부 ==
- ddori . . . . 2 matches
* Third eye blind - Semi-charmed life
* JOE - yeah.. no one else will come close to him !
- fm_jsung . . . . 2 matches
*제로페이지 뜻이 머에여? SeeAlso ZeroPage <-- 감사~~
* fm_jsung 뜻이 머에여? -0- free style mc jin sung 멋진 아뒤 찾는 도중에, 친구의 도움으로^^
- koi_aio/권영기 . . . . 2 matches
if(cnt == 3)break;
if(check[s[i].a] < 2){
- matlab . . . . 2 matches
- 일단 classdef 로 클래스를 작성.
end
- spaurh . . . . 2 matches
* 블로그짓거리
[홈페이지분류], ZeroPagers, ZeroWikian ( DeleteMe 복수개로 선택해 주세요. )
- usa_selfish/김태진 . . . . 2 matches
if(array[k-1].right<=arr[i].left){
//if(a.left == b.left)return a.right<b.right;
- wiz네처음화면 . . . . 2 matches
* Collage Library: Book Number 0000507310 디자인 패턴, 0000494011 위대한 승리, 0000387354 설득의 심리학, 0000476065 유비처럼 경영하고 제갈량처럼 마케팅하라, 0000317364 로마인 이야기, 0000345061 커피 한잔에 담긴 성공신화...., 멘큐의 경제학..? 0000553812 사람을 움직여라 : MK택시 유봉식 회장의 성공철학!
* English music - singer : sweet box, toxic recommended by Ah young.
- zennith/로망이없다 . . . . 2 matches
"다 좋은데, 로망이 없어."
편하고 쉬운 것은 좋다. 잃는 것이 없이 많은 이익을 추구하는 것도 좋다. 하지만, 누구에게나 친절한 사람은 사실 아무에게도 친절하지 않는 것처럼, 잃는 것이 적은 것들은 반대급부 로써 거기에서 얻어지는 정신적인 만족감이 적은 것 또한 사실이다. 달리 이야기 하자면, 너무 편리한 것에서는, 열정이 느껴지지 않는다.
- ★강원길★ . . . . 2 matches
어제같은 경우엔 ... 책 보려다 잠들었다니깐 ㅎㅎ
일어나니 4시.. 그런 쉣한 경우가 ㅎㅎ 그냥 윤리며 C 며 깨끗하게 붙여넣어줬지 ^^
- 개인키,공개키/강희경,조동영 . . . . 2 matches
ifstream fin("input.txt");
ifstream fin1("output1.txt");
- 경시대회준비반 . . . . 2 matches
===== 1주차. 동적 프로그래밍 =====
[겨울방학프로젝트/2005]
- 고전모으기 . . . . 2 matches
CS에 지대한 영향을 미친 대가들의 저작들을 모아보자. 지금 당장은 들여다보지 않더라도 책장에 하나 둘 고전이 늘어간다면 이것 자체가 하나의 [어포던스]가 될 수 있지 않을까. [나를만든책장]에도 끼워넣으면 좋을 것 같다. (단, ZP회비로...=_=;; ). 어디어디서 그러던데 NoSmok:서울서책만사다망한사람 도 있다더라.
[프로젝트분류]
- 고한종/on-off를조절할수있는코드 . . . . 2 matches
//이 부분은 scanf_s("%c",&keyOnOff);로도 쓸 수 있지만 scanf_s와 scanf의 차이도 잘 모르고 scanf는 사실 매우 어려운 함수;
if(변수==n) break;
- 곽세환 . . . . 2 matches
== 프로젝트 ==
* 네트워크 프로그래밍해서 메신저랑 소리바다 만들기
- 구구단/변준원 . . . . 2 matches
cout << endl;}
cout << endl;}
- 구구단/유상욱-Scheme . . . . 2 matches
구구단을 scheme으로 만든 프로그램
- 구구단/이진훈 . . . . 2 matches
구구단을 스몰토크로 만든 페이지입니다.
{{{~cpp 스몰토크..스퀵이란 걸로 짠건데요..7살이 하는 거라 그런가ㅡㅡ 만지기가 한결 편한 느낌..
- 구자겸 . . . . 2 matches
== 현재 프로젝트 ==
== 계획중인 프로젝트 ==
- 구조체 파일 입출력 . . . . 2 matches
cout << endl << "Input age : ";
cout << endl << "Input phone number : " ;
- 권형준 . . . . 2 matches
E-Mail 을 직접 노출하면, 스팸 메일 로봇들이 퍼갈수 있습니다.
[홈페이지분류], ZeroPagers, ZeroWikian ( DeleteMe 복수개로 선택해 주세요. )
- 김도현 . . . . 2 matches
뭐 급하신 일은 폰으로 연락주시길~~
[홈페이지분류], ZeroPagers, ZeroWikian ( DeleteMe 복수개로 선택해 주세요. )
- 김상호 . . . . 2 matches
2010 여름방학 중 c++ 프로젝트, Javescript, PHP 프로젝트 진행.
- 김영록 . . . . 2 matches
여름 프로젝트
[피보나치/김영록] [미로찾기/김영록] [주민등록번호확인하기/김영록] [김영록/연구중/지뢰찾기] [진법바꾸기/김영록]
- 김준석 . . . . 2 matches
* 2021년 : 1인개발자로 살수 있을만큼 배우기
* 새삼 10년만에 처음으로 왔다감 - [지원]
- 꼬마혜성 . . . . 2 matches
제껀 제 개인 위키로 옮겨갑니다. ^^; [[BR]]
DeleteMe 그러고 보니 자네도 무지 재미있군. 위키 어렵다고 쓰기 힘들다고 하더니 개인 위키 만들어서 돌리고 있었나 보군. 다소 황당한 느낌이 든다. zp서버가 공짜 호스팅 업체로 생각되는 것은 당연한것 아닐까. --["상민"]
- 꿈 . . . . 2 matches
메일 : lucifer286@한멜닷넷
MSN : lucifer279@핫멜닷컴
- 남도연 . . . . 2 matches
E-Mail 을 직접 노출하면, 스팸 메일 로봇들이 퍼갈수 있습니다.
[홈페이지분류], ZeroPagers, ZeroWikian ( DeleteMe 복수개로 선택해 주세요. )
- 노스모크모인모인 . . . . 2 matches
NoSmok:노스모크모인모인. 기존의 모인모인을 커스터마이징한 독자적인 버전. ZeroWiki가 새로 이용할 버전.
* python의 코딩상 문제점을 찾는다. 최소한 모든 파일 unix newline 으로 변경
- 다른 폴더의 인크루드파일 참조 . . . . 2 matches
4. Additional include directories 에 ..\socket,..\data식으로 적어준다.
5. 주의 : ' , ' 로 구분
- 단식자바 . . . . 2 matches
= [여름방학프로젝트]/단식자바 =
[프로젝트분류]
- 달라이라마와도올의만남 . . . . 2 matches
* 특별사항: 한 권당 16000원의 올컬러로 된 럭셔리한 책
도올이 인도에 가서 달라이라마를 만나고 와서 쓴 기행문 형태의 책, 총 3권으로 되어있다.
- 데블스캠프2003/둘째날 . . . . 2 matches
ex) 4x4 일때(여러분은 8x8로 하세요)
[미로찾기/상욱&인수]
- 데블스캠프2005/RUR-PLE/Harvest . . . . 2 matches
#앞으로 한칸가서 삐삐줍기
#앞으로 한칸가서 삐삐줍기 연속 5번
- 데블스캠프2006/월요일/연습문제/for/성우용 . . . . 2 matches
if (num > 10)
else
- 데블스캠프2006/월요일/연습문제/for/이차형 . . . . 2 matches
if(num<=10)
else
- 데블스캠프2006/월요일/연습문제/for/주소영 . . . . 2 matches
if (n>20){
else{
- 데블스캠프2006/월요일/연습문제/switch/이장길 . . . . 2 matches
if(score[i]==999){
cout<<char('A'+i)<<" --> "<<*(n+i)<<endl;
- 데블스캠프2006/월요일/연습문제/기타문제/윤성준 . . . . 2 matches
if (num >= 1 && num <= 10) {
if (i == 5) continue;
- 데블스캠프2006/월요일/연습문제/기타문제/이경록 . . . . 2 matches
if(a==5){
else {
- 데블스캠프2006/월요일/연습문제/기타문제/임다찬 . . . . 2 matches
if(i==5) continue;
cout << i <<endl;
- 데블스캠프2006/화요일/pointer/문제1/김준석 . . . . 2 matches
cout << "a = " << a << " b = " <<b << endl;
cout << "a = " << a << " b = " <<b << endl;
- 데블스캠프2006/화요일/pointer/문제1/윤성준 . . . . 2 matches
cout << a << " " << b << endl;
cout << a << " " << b << endl;
- 데블스캠프2006/화요일/pointer/문제1/이장길 . . . . 2 matches
cout << "b = " << b << endl;
cout << " swap후 b = " << b << endl;
- 데블스캠프2006/화요일/pointer/문제1/정승희 . . . . 2 matches
cout << a<<" "<< b<<endl;
cout <<a<<" "<<b<<endl;
- 데블스캠프2006/화요일/pointer/문제1/주소영 . . . . 2 matches
cout << a << "\t " << b << endl;
cout<<a << "\t" << b<<endl;
- 데블스캠프2006/화요일/pointer/문제2/윤성준 . . . . 2 matches
cout << a << endl;
cout << b << endl;
- 데블스캠프2006/화요일/pointer/문제2/정승희 . . . . 2 matches
cout<<a<<endl;
cout<<b<<endl;
- 데블스캠프2009 . . . . 2 matches
각 요일별 연습문제,최종 프로그램 올리는 페이지들
* [http://zeropage.org/?mid=devils&category=10642 데블스캠프 2008] - amp;를 지워야 제대로 뜹니다.
- 데블스캠프2009/목요일/연습문제/다빈치코드/서민관 . . . . 2 matches
if ( hand[j].number > hand[j+1].number || ( hand[j].number == hand[j+1].number && hand[j].color == 'w'))
카드의 갯수를 입력한 후, 그 수만큼 카드 색, 카드 숫자를 입력하면 크기나 색 순서로 정렬해준다.
- 데블스캠프2009/월요일 . . . . 2 matches
|| 송지원 || Scratch (스크래치) || 초등학생도 할 수 있는 프로그래밍을 통해, [[br]]프로그래밍에 대한 친근감과 흥미 유발 || ||
- 데블스캠프2010/다섯째날/ObjectCraft/미션2/변형진 . . . . 2 matches
if (is_dead(zerglings[1])) {
if (is_dead(zerglings[0])) {
- 데블스캠프2011/네째날/이승한 . . . . 2 matches
* [http://blog.softwaregeeks.org/wp-content/uploads/2011/04/Reverse-Engineering-%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%ED%95%99%EC%8A%B5.pdf Reverse Engineering, 안드로이드 학습 발표자료] - 진성주, JCO 발표 자료
* android reversing tools - 제로페이지 홈페이지 자료실 게시물
- 데블스캠프2011/셋째날/String만들기 . . . . 2 matches
|| endsWith || str.endsWith("ef") == TRUE ||
- 데블스캠프2012/넷째날/묻지마Csharp/Mission2/김준석 . . . . 2 matches
private void myClicked(object sender, EventArgs e)
private void pushButton_Click(object sender, EventArgs e)
- 동영상처리세미나 . . . . 2 matches
이차원 배열 식으로 이렇게..
* 이틀간 잠을 제대로 못자고 간 탓에 심하게 졸았네요. 저 내용 맞나요? 아영이가 써놓은 메모 정리해봤음. 수정부탁~ -[창섭]
- 레밍딜레마 . . . . 2 matches
|| http://www.aladdin.co.kr/Cover/8955610017_1.gif [[BR]] ISBN 8955610017||
이 책은 얇다. 그래서 이 책을 5가지 정도의 '''역할 바꾸기'''로 쉽게 읽을수 있었다. 각 역할의 모든 사람에게 가치를 주고, 쉽게 공감할수 있는 이야기와 설명임을 느낄수 있었다.
- 레밍즈프로젝트/그리기DC . . . . 2 matches
[레밍즈프로젝트]에서 사용하게 될 그리기 클래스.
TODO. 출력 인터페이스로 상속 받아오기
- 로고캐릭터공모/문의 . . . . 2 matches
로고의 크기는 어느 정도가 좋을까요? 크기가 제한되지는 않나요? --[강희경]
[로고캐릭터공모]
- 로그인하기 . . . . 2 matches
ZeroWiki 에 ["로그인하기"] 위해서는...
01학번 남상협 입니다. "상협"이라는 아이디의 비밀번호가 기억이 안나는데 관리자 분이 제가 새로 만들 수 있도록 그 아이디를 지워 주시면 안되나요?
- 로마숫자바꾸기/DamienRice . . . . 2 matches
end.
[로마숫자바꾸기], LittleAOI
- 리눅스연습 . . . . 2 matches
[(zeropage)2005리눅스프로젝트]
gcc -W -Wall -O2 -o like like.c love.c -lm <- 링크 옵션 -l로 libm.a. 라이브러리를 포함시킨다는 것을 명시.
- 마방진/변준원 . . . . 2 matches
if(i<0)
cout<<endl;
- 몸짱프로젝트/BubbleSort . . . . 2 matches
if ( aArr[i] < aArr[j] )
[몸짱프로젝트]
- 문자반대출력/변형진 . . . . 2 matches
PHP에서는 strrev()라는 문자열 처리 기본 함수를 제공하지만, 현재 버전에서의 PHP는 기본 함수로는 Multibyte String을 지원하지 못한다.
유니코드 기준으로 각 문자를 쪼갠 후, 배열에 담고 뒤집어 다시 합쳤다.
- 박지호 . . . . 2 matches
* 앞으로의 계획
* 그외 고등학교 동창들이랑도 주기적으로 야구를 합니다.
- 박효정 . . . . 2 matches
E-Mail 을 직접 노출하면, 스팸 메일 로봇들이 퍼갈수 있습니다.
[홈페이지분류], ZeroPagers, ZeroWikian ( DeleteMe 복수개로 선택해 주세요. )
- 벡터/유주영 . . . . 2 matches
sort(vec.begin(),vec.end(),compare);
cout << endl;
- 복 . . . . 2 matches
앞으로 잘해보아욧!!!!
|| [윤성복] || cutlife@hotmail.com || :) || :) || :) || :) ||
- 비밀키/강희경 . . . . 2 matches
ifstream fin(fileName);
ifstream fin1("output.txt");
- 비밀키/김태훈 . . . . 2 matches
ifstream fin ("source.txt");
ifstream fin("source_enc.txt");
- 비밀키/박능규 . . . . 2 matches
ifstream fin("source.txt");
반대로.실패함...야메는 야메일뿐..
- 삼미슈퍼스타즈의마지막팬클럽 . . . . 2 matches
제목은 한겨레신문에서 수도 없이 보았지만 이제서야 읽었다. 재밌어서 깔깔 웃었다. 1할 2푼 5리 슬률로 살아가는 모든이들에게, 어쩌면 필요없는 조언일지도 모르겠다. 그보다는 9할 넘는 승률로 살아가는 어떤이들에게 고민을 안겨주지 않을까? 어쨌거나 나에게는 잘 놀고 열심히 살자는 이야기였다.
- 상협 . . . . 2 matches
* 취미 : 독서, 프로그래밍
* ["상협/프로젝트관련"]
- 새싹교실/2012/아무거나/1회차 . . . . 2 matches
1. 한줄씩 디버깅 f10 을 이용하면 그 말 그대로 실행된다 한줄씩
4. f5 를 눌러 실행중인 디버깅을 나가려면 shift f5를 누르면 된다.
- 새싹교실/2012/절반/중간고사후 . . . . 2 matches
새로운 연산자
* 앞으로 배웠으면 하는거
- 새싹교실/2013/록구록구/8회차 . . . . 2 matches
1. 5칸짜리 int형 배열을 선언합니다. 값은 임의로 정합니다.
반복문을 사용하여 배열의 모든 요소를 출력하는 프로그램을 만들어 보세요!
- 서지혜/2013 . . . . 2 matches
* 도로교통공단 vdi
* 도로교통공단 vdi
- 서지혜/MyJavaUtils . . . . 2 matches
* String 배열을 List로
* String을 연산해 새로운 String을 만들 때는 StringBuilder를 이용한다.
- 선택과집중 . . . . 2 matches
마음만 먹는다면 '무엇이든' 할 수 있다는 말이 있지만, 당신이 '모든 것'을 할 수는 없다. 삶은 우리에게 무한대의 선택을 제공한다. 하지만, 우리가 그것들을 '선택'이라고 부른다는 사실은 우리가 그것들 모두를 가질 수는 없음을 보여준다. 우리가 성숙해지려면 우리의 삶을 규정하는 선택과 노력을 제대로 해야 한다.
... 내가 여러분에게 소개하는 여러 기법들을 보기전에 먼저 꼭 해야 할 것은 당신의 삶을 보면서 정말로 관심을 쏟고 싶은 것은 무엇인지 결정하는 것이다. 물론 당신은 언제든지 우선순위를 바꿀 수 있다. 하지만, 당신이 줄 수 있는 관심보다 더 많은 관심을 줄 수는 없다.
- 선현진 . . . . 2 matches
|| 월요일 || 수업듣고 제로페이지 가기||
[홈페이지분류], ZeroPagers (DeleteMe 복수개로 선택해 주세요. )
- 소유냐존재냐 . . . . 2 matches
* 이책은 제목 때문에 읽게 되었다. 제목은 내가 생각해 보았던 문제에 대해서 무엇인가 해답을 제시해 줄거 같았기 때문이다. 나는 지금까지 소유 문제에 대해서 많이 생각해 보았었다. 고등학교때 논술을 많이 썻었는데 이때 특히 많이 생각해 본거 같다. (논술은 고통스럽지만 사고력은 키워주는거 같다. ㅡㅡ;;) 그런데 이책은 소유문제에 대해서만 논하는게 아니라 그와 대비되는 개념으로 존재라는 개념을 제시 했다. 솔직히 이책 중간 정도 부분에서 이해 안되는 부분이 많아서 대충 넘어 갔다. ㅡㅡ; 이책은 내가 어렴풋하게만 생각했던 개념이나, 생각들을 명확하게 인식하게 해주었다는 점에서 큰 의의를 가진다. 그리고 마지막에서도 현대 사회의 문제점에 대한 해결책을 현실성은 부족하지만 그래도 명확하게 제시해 주어서 속 시원했다. 한번 밖에 안 읽었고 읽은지도 꽤 되어서 이 외에는 별로 생각나는게 없다. ㅡㅡ;, 이책이 전달하고자 하는 것을 완전히 이해할때까지 더 반복해서 나의 생각과 비교하면서 읽어 봐야 겠다.
- 수학의정석/집합의연산 . . . . 2 matches
= 처리조건 =
임의의 숫자갯수와 스페이스로 띄워진 임의의 숫자를 받는다.
- 스택/조재화 . . . . 2 matches
cout<<"1.Push"<<"\t"<<"2. Pop"<<"\t"<<"3. 자료출력"<<endl;
cout<<endl;
- 시간맞추기/문보창 . . . . 2 matches
if (gap == 8)
else
- 신혜지 . . . . 2 matches
E-Mail 을 직접 노출하면, 스팸 메일 로봇들이 퍼갈수 있습니다.
[홈페이지분류], ZeroPagers, ZeroWikian ( DeleteMe 복수개로 선택해 주세요. )
- 실시간멀티플레이어게임프로젝트/첫주차소스2 . . . . 2 matches
if math.sqrt( (i[0] - pos[0])**2 + (i[1] - pos[1])**2 ) < scanlimit:
[실시간멀티플레이어게임프로젝트]
- 알고리즘5주숙제/하기웅 . . . . 2 matches
if(length<=1)
cout << pi <<endl;
- 압축알고리즘/태훈,휘동 . . . . 2 matches
ifstream fin("input.txt"); //형식은 3b11a같이
if((initial-ch>9||initial-ch<-9))
- 연습용 RDBMS 개발 . . . . 2 matches
if(num>0)
if(!(num%n))
- 오빠가돌아왔다 . . . . 2 matches
냉소 가득한 짧은 이야기였다. 우습게도 작가가 써 놓은 냉소가 너무 재미있게 느껴진다. 오랜 시간 스스로 냉소를 즐기며 살았기 때문이겠거니.
세상이 냉소로 가득 차 있지 않길 바란다.
- 위대한게츠비 . . . . 2 matches
이책은 정말 빌려놓고.. 오래동안 조금씩 조금씩 읽다가 (주로
진정한 인간관계를 이룰수 없다는것을 다시 한번 실감했다. 돈이라는 동기로
- 윤성복 . . . . 2 matches
E-Mail 을 직접 노출하면, 스팸 메일 로봇들이 퍼갈수 있습니다.
[홈페이지분류], ZeroPagers, ZeroWikian ( DeleteMe 복수개로 선택해 주세요. )
- 이덕준 . . . . 2 matches
안녕하세요. 이덕준입니다. [데기]라는 별명으로 활동하기도 했습니다.
제로페이지 9기이며 삼성SDS의 국방개발팀/NCW그룹에 재직 중 입니다.
- 이슬이 . . . . 2 matches
스스로 하는 숙제도 좋고, 열심히 하는 것도 좋지만,
제로페이지하면서 좀더 많은 관심과 흥미유발이 되어서
- 이재환 . . . . 2 matches
E-Mail 을 직접 노출하면, 스팸 메일 로봇들이 퍼갈수 있습니다.
[홈페이지분류], ZeroPagers, ZeroWikian ( DeleteMe 복수개로 선택해 주세요. )
- 이현정 . . . . 2 matches
처음으로 만든데다...
본격적으로 투입해보죠 ^^
- 일공환 . . . . 2 matches
E-Mail 을 직접 노출하면, 스팸 메일 로봇들이 퍼갈수 있습니다.
[홈페이지분류], ZeroPagers, ZeroWikian ( DeleteMe 복수개로 선택해 주세요. )
- 임시분류 . . . . 2 matches
일회용 페이지들에 대한 분류.DeleteThisPage 의 대상이 될수 있는 페이지다. 경우에 따라 보존될 가능성도 있는 페이지들. 가령 설문조사등은 일회용이 될수 있지만 일종의 자료로 남을 수도 있다. DeleteThisPage 가 아니라면 추후 재분류 대상 페이지.
- 자료실 . . . . 2 matches
[[HTML(<p align=center><iframe src="/jsp/pds/pds_session.jsp" FRAMEBORDER="no" width=100% height=100%></iframe></p>)]]
- 자리수알아내기 . . . . 2 matches
간단한 문제지만 의외로 재미있답니다.
좀더 일반화해서도 생각해볼 수 있습니다. 어떤 정수 n이 b진법으로 몇 자리인지 어떻게 알 수 있을까요?
- 정규표현식 . . . . 2 matches
* 스터디 모임요약본은 정규표현식/모임 안에 날짜별로 카테고리를 만들어 작성한다
* Wiki 문서 작성시 안의 내용은 자유이나 맨위에 정규표현식 내용 링크 리스트는 모두 나와야하며 스터디문서에서는 정규표현식 링크와 스터디 링크만 나와야 하며 반대로 모임문서에서는 정규표현식 링크와 모임 링크만 나와야한다.
- 정모/2002.5.16 . . . . 2 matches
* HCI(Human Computer Interaction)발표 하겠습니다. 이번 심리학과 리포트 때문에 작성하던 것인데, 같이 하시는 분께서 관련 업계 종사자라서, 너무 많은 자료 때문에 제가 치일 정도 입니다. 일단 방대한 자료는 필요시 드릴수 있고, (관련 논문, Samsung 개발자료 etc, xp, aqua, palm guide line 등) 발표 골자는 기본적으로 심리학의 이해 시간에 발표 자료 기반으로 컴공과에 맞추어 발표 하겠습니다. 못했지요. 약간 아쉽네요. 차후 HCI자료가 필요하신분이 있거나, 이런 분야도 있구나 란걸 알고 싶으면 세미나 해드립니다. --상민
- 정모/2004.11.30 . . . . 2 matches
* 이승한 군이 회장으로,
* 윤성만 군이 부회장으로 선출되었습니다
- 정모/2004.7.12 . . . . 2 matches
스터디 & 프로젝트 조직
스터디 & 프로젝트 조직
- 정모/2005.3.21 . . . . 2 matches
*앞으로 많은 이야기가 필요함
* 신입회원 모집 홍보는 어떻게 하기로 되어있나요? 동문서버 안들어 가거나 있는 모르는 사람들도 많을텐데... 강의실 홍보나 대자보 홍보가 적어도 이번주 부터 이루어져야 좋을거 같습니다. 그리고 홍보할때 꼭 신입생 말고 복학생,전과,편입생들도 염두에 뒀으면 좋겠습니다.
- 정모/2007.1.19 . . . . 2 matches
*오늘부터 새로운 회장님의 정책에 따라 회의와 정모를 분리합니다.
* 교육을 목적으로 하는 영화감상.
- 정모/2011.11.30 . . . . 2 matches
* 시험 끝나는 주에 ZeroPage 종강파티 합니다. 아웃백에 갈지 다른방안으로 할 것인지는 기획단들과 좀 더 이야기해본 후 결정하기로 하였습니다.
- 정모/2012.1.6 . . . . 2 matches
* [http://valleyinside.com/2012-technology-trend/ 2012년 기술 트렌드]
* 차기 회장 추천/신청이 정모 이전까지는 저한테 밖에 없었다는게 (추천 2명 + 자진 1명)좀 충격(?)이었습니다. 형진이형이 해준 Play framework는 음.. 뭔가 쉬운거같기도하고 어려운거같기도했네요. 하지만 빠르게 제가 만들었던걸 바로 만들 수 있었다니 그 이유가 형이 아는걸 말해줬기 때문에 모르는걸 제가 삽질한거랑 시간차가 많이 나서인지, 프레임워크때문인지는 생각을 한번해봐야겠네요.(는 코드 길이 차이가 많이나는군.) - [김태진]
- 정모/2012.2.10 . . . . 2 matches
* 다음주 정모는 신입생 간담회와 --승한선배의 세미나때문에-- 6시(는 그대로 유지)에 시작하게 됩니다. 헷깔리지 마세요~
* 다들 수고하셨습니다~ 먼지나서 짜증나지만 학회실 얻을 생각과 이젠 좀 PC실이 PC실답게 돌아가겠구나 하는 생각에 좀 기쁘네요. 그나저나 다이어트 중이라는 사실을 잊은 채 피자랑 족발을 미친듯이 먹었습니다^_T 기승전리눅스 OMS도 잘 들었구요. OMS 들으니 서버로 뭔가 해봐야겠다는 생각이 드네요... 사두고 장식만 해두고있는 CentOS 책도 좀 다시 들춰봐야겠습니다. - [김수경]
- 정모/2013.10.2 . . . . 2 matches
* 다음 주 수요일은 '한글날 휴일'인 관계로 화요일에 정모를 진행합니다.
* 이 날은 티타임 진행으로 별다른 안건 공유는 진행하지 않았습니다.
- 제안 . . . . 2 matches
["제안"]이라는 ["페이지이름"]이 너무 모호하다고 생각합니다. ["ZeroWiki/제안"]으로 ["페이지이름바꾸기"]하겠습니다. --["이덕준"]
2004년 7월 25일 ["ZeroWiki/제안"]으로 ["페이지이름바꾸기"]하였습니다. --[Leonardong]
- 조응택 . . . . 2 matches
프로그래밍
컴퓨터 프로그래밍 배우기
- 조현태 . . . . 2 matches
[조현태/블로그]
[조현태/프로젝트]
- 조현태/놀이/치이/기능명세/화면 장식 . . . . 2 matches
* 어느 사진으로 할것인가.
* 한글 폰트와 영문 폰트는 어떤 것으로 할것인가.
- 지금그때2004/강의실선전홍보문안 . . . . 2 matches
이 행사는 선배들이 지금 알고 있는 걸 그때도 알았더라면 더 좋았을 거란 생각에서 마련한 것으로, 선후배 사이 경험을 공유할 수 있는 이야기 자리입니다. 주제도 이성관계, 학점, 영어, 군대, 휴학, 복학, 그 밖에 어떤 주제이든지 자유롭게 묻고 답할 수 있는 자리이므로, 부담없이 참여하실 수 있습니다.
- 지금그때2004/계획 . . . . 2 matches
7시 부터 하는 것은 패널토의로 변경된 것으로 알고 있는데, 구체적인 시간 스케줄이 어떻게 되나요? --[1002]
- 지금그때2005 . . . . 2 matches
* [지금그때2005/홍보], [http://zeropage.org/~dduk/memo/memo.php?id=nowthen2005 신청페이지]
질문 레스토랑과 OST시간은 [http://zeropage.org/wikis/nowthen2004/%C1%F6%B1%DD%B1%D7%B6%A72005 지금그때위키]에 정리하여 [지금그때]가 누적될 수 있도록 하는게 좋겠다는 생각을 하네요.--[Leonardong]
- 지금그때2006/질문레스토랑 . . . . 2 matches
* 이선호 - C프로그래밍, OP등등.. 만드는것이 재미있어서..
* 이선호 - 모든지 긍정적으로 생각하는게 좋다.
- 지선아사랑해 . . . . 2 matches
* 이책에서는 TV에서도 익히 나왔던 전신 화상을 당한 이지선씨에 대한 이야기가 실려 있다. 이책을 읽으면서 그런 최악의 상황에서도 꿋꿋하게 맞서서 버티는 모습을 보면서 대단하다는 생각이 들었다. 그런 악 조건 속에서도 하나 하나에 감사하는 모습을 보고 본받아야 겠다는 생각이 들었따. 그리고 현재 내가 가진 몸, 얼굴에 대해서도 항상 감사하는 마음을 가져야겠다. 그리고 긍정적 낙천성을 가져야겠따. 그리고 어떤 고난, 시련이 닥쳐도 나에게 유리한 방향으로 받아들여야겠다.
- 지식샘패턴 . . . . 2 matches
어디에서 완전한, 걸러지지 않은, 단순화되지 않은 형태로 지식을 취할 수 있을까?
그러므로,
- 지영민/ㅇㅈㅎ게임 . . . . 2 matches
if(myHP<0)
if(GwaJaeHP <0)
- 진법바꾸기/문보창 . . . . 2 matches
bool isEnd = false;
while (isEnd == false)
isEnd = input(num, base);
if (num == 0)
cout << endl;
- 최정빈 . . . . 2 matches
우리 제로페이지 C조 대장이신 욱주형 파튕~
형 말대로 남자가 젤 많이 드러왔음 ㅋㅋㅋ
- 캠이랑놀자/051229 . . . . 2 matches
* R,G,B 값으로 이루어진다는 점
== Alpha-Blending ==
- 톱아보다처음화면 . . . . 2 matches
프로필 : [(zeropage)이승한]
[레밍즈프로젝트]
- 파스칼삼각형/Leonardong . . . . 2 matches
if (y==1)
if (x==y)
- 파스칼삼각형/aekae . . . . 2 matches
if (j+1 == k+1)
cout << arr[row][col] << endl;
- 파스칼삼각형/변형진 . . . . 2 matches
n+1행의 n+1열의 값은 조합 nCr의 값을 가지고, n!/r!(n-r)!로 계산한다.
if($n==1) return 1;
- 파스칼삼각형/이태양 . . . . 2 matches
if(i==j){
if(i==j){
- 포인터 swap . . . . 2 matches
cout << "a = " << a << "b = " << b << endl;
cout << "a = " << a << "b = " << b << endl;
- 피보나치/Leonardong . . . . 2 matches
if ( x==0 )
if ( x==1 )
- 피보나치/김상섭 . . . . 2 matches
if(num > 1 )
else
- 피보나치/김영록 . . . . 2 matches
if(round_temp !=0)
else number_output = b;
- 학회간교류/08 . . . . 2 matches
* 제로페이지, PCRC, JARAM, TGWING, 숭실대
* 자람에 연락은 제가 하고 TGWing에는 승한형이 하기로. 일단 연락에 대한 회답이 오길 기다림 2008.11.30 - [김홍기]
- 학회실청소/2013 . . . . 2 matches
* 5월 9일 청소 : 시간 관계로 10일에 진행
* 박재홍 (예비군으로 인해 불참) -> 23일 청소 합류 예정
- 한자공 . . . . 2 matches
[한자공/시즌3/프로젝트]
* 학기도 바뀌고, 페이지도 너무 길어져서 시즌제로(...) 분리시켰습니다. - [조영준]
- 한재만 . . . . 2 matches
극도의 귀차니즘으로 인해 꾸미기는 다음으로 미루겠음;;
- 행사 . . . . 2 matches
* 3월달에 준비를 시작으로 보통 4~5월에 개최한다.
* 제로페이지 신입생 준회원은 데블스캠프를 통해서 정회원이 된다.
- 홈페이지Template . . . . 2 matches
E-Mail 을 직접 노출하면, 스팸 메일 로봇들이 퍼갈수 있습니다.
[홈페이지분류], ZeroPagers, ZeroWikian ( DeleteMe 복수개로 선택해 주세요. )
- 0 . . . . 2 matches
* 홈페이지분류 맨 아래를 누르니 이리로 오네요. 이 페이지는 그야말로 ZeroPage?! ㅋㅋㅋㅋ - [김수경]
- 1 . . . . 2 matches
- 01학번모임/20060310 . . . . 1 match
제로페이지의 고학번 트랜드
- 05학번만의C Study/숙제제출1/정진수 . . . . 1 match
cout << "섭씨 " << Cel << "도는 화씨로 " << Fah << "도 입니다\n";
- 05학번만의C++Study/숙제제출1/정진수 . . . . 1 match
cout << "섭씨 " << Cel << "도는 화씨로 " << Fah << "도 입니다\n";
- 05학번만의C++Study/숙제제출1/조현태 . . . . 1 match
std::cout << "섭씨" << celsius << "도는 화씨로 " << fahrenheit(celsius) << "도입니다.\n";
- 1thPCinCAUCSE/ProblemA/Solution . . . . 1 match
|| 답안 || 누구의 || 무슨 언어로의 || 몇시간 걸린 ||
- 2002년도ACM문제샘플풀이 . . . . 1 match
''부끄러워할 필요가 없다. 촉박한 시간에 쫓겼다고는 하나, 결국 정해진 시간 내에 모두 풀은 셈이니 오히려 자랑스러워 해야 할지도 모르겠다. 아마 네 후배들은 이런 배우려는 태도에서 더 많은 걸 느끼지 않을까 싶다. 이걸 리팩토링 해서 다시 올리는 것도 좋겠고, 내 생각엔 아예 새로 해서(DoItAgainToLearn) 올려보는 것도 좋겠다. 이번에는 테스트 코드를 만들고 리팩토링도 해가면서 처음 문제 풀었던 때보다 더 짧은 시간 내에 가능하게 해보면 어떨까? 이미 풀어본 문제이니 좀 더 편하게 할 수 있을 것 같지 않니? --JuNe''
- 2005summerMT . . . . 1 match
그담으로 중요한 장소는?
- 2006동계MT/계산내역 . . . . 1 match
'''집으로 가는길 간식.. '''
- 2006동계MT/작품 . . . . 1 match
== 추억속으로.. ==
- 2thPCinCAUCSE/ProblemA/Solution . . . . 1 match
|| 답안 || 누구의 || 무슨 언어로의 || 몇시간 걸린 ||
- 2thPCinCAUCSE/ProblemB/Solution . . . . 1 match
|| 답안 || 누구의 || 무슨 언어로의 || 몇시간 걸린 ||
- 3DGraphicsFoundation/SolarSystem . . . . 1 match
* 3D로 태양계를 구현하는 것입니다.
- 4rdPCinCAUCSE . . . . 1 match
[컴공과프로그래밍경진대회] 4회차
- 5인용C++스터디/떨림없이움직이는공 . . . . 1 match
|| 이름 || 다운로드 || 평가 ||
- 5인용C++스터디/시계 . . . . 1 match
|| 이름 || 다운로드 || 평가 ||
- 5인용C++스터디/움직이는공 . . . . 1 match
|| 이름 || 다운로드 || 평가 ||
- 5인용C++스터디/작은그림판 . . . . 1 match
|| 이름 || 다운로드 || 평가 ||
- <회의> . . . . 1 match
[정모] - 제로페이지 정모
- ALittleAiSeminar/Namsang . . . . 1 match
if maxValue < self.priority[posx][posy] :
- AM/20040803여덟번째모임 . . . . 1 match
* 공부한 내용 : MFC 교재 2장(프로그램의 뼈대)
- APatternLanguageForStudyGroups . . . . 1 match
[스터디그룹패턴언어]로 [페이지이름바꾸기]했습니다. --[이덕준]
- AcceleratedC++/Chapter16 . . . . 1 match
|| ["AcceleratedC++/Chapter15"] || ["AcceleratedC++/AppendixA"] ||
- ActionMarket . . . . 1 match
moinmoin 의 Action 들 관련. Action은 Macro와는 달리 Show, Edit, Delete, Diff, Info (우측 상단 아이콘들 기능) 등 해당 페이지에 가하는 행위를 말합니다.
- AnalyzeMary . . . . 1 match
NeoCoin은 02년도 기말 시험에서 너무나 시간이 없게되는 상황을 맞이 하였다. 학교 출발까지 15분, 통학 시간 1:30 분 남은 상태에서 밥먹으면서 교수님에 성향 대하여 AnalyzeMary를 하고 15분은 강의 노트에 대한 AnalyzeMary , 그리고 도착전까지 열심히 외웠다. 도착 직전까지 외운 내용 조차 시험에 그대로 출제되어 있었다. 결국, 시험의 1문제의 부분적것 외에 전부 정답 작성이 가능했다. 여태까지 살아오면서, 최고의 효율이란 무엇인가를 느낄수 있었다. --NeoCoin
- Applet포함HTML/상욱 . . . . 1 match
이것을 htmlconverter 로 변환
<!--"END_CONVERTED_APPLET"-->
- Applet포함HTML/진영 . . . . 1 match
''C:\j2sdk1.4.1_01\bin\HtmlConverter.exe 로 컨버트''
<!--"END_CONVERTED_APPLET"-->
- AudioFormatSummary . . . . 1 match
|| Format Name || License || Contributor (Vendor) || 특징 ||
- BasicJAVA2005/8주차 . . . . 1 match
2. Socket 프로그래밍
- BasicJAVA2005/실습1 . . . . 1 match
- 3개의 숫자를 입력받아 자리와 숫자가 맞으면 스트라이크, 자리는 틀리지만 숫자가 맞으면 볼을 출력하고 3개의 숫자가 맞으면(3스트라이크) 종료하는 프로그램
- BlackBoxTesting . . . . 1 match
말 그대로 모듈을 Black Box 처런 내부를 생각하지 않고, 모듈에 대한 입력 대비 결과를 테스팅하는 방법.
- BuildingParserWithJava . . . . 1 match
3학년 1학기 ProgrammingLanguageClass에서 숙제로 파서를 만들면서 한계를 많이 느꼈었다. 가장 큰 문제는 모든 흐름이 함수 호출을 따라 흘러간다다는 것이었다. 어느 곳이 잘못되었는지 알기가 어려웠기 때문에 찾는데 무척 애를 먹었다. 문법을 하나 추가하는 작업도 매번 오래 걸렸다. 그러다 보니 평가에 중요한 예외처리를 할 시간이 많지 않았다.
- C/Assembly . . . . 1 match
이 페이지는 C언어의 함수들을 Assembly 어로 번역해 두는 곳이자,
- ChangeYourCss . . . . 1 match
UserPreferences 에서 로그인후 자신이 원하는 css 를 설정해줄 수 있다. 각자가 취향에 맞는 스타일 시트를 골라서, 만들어서 사용해보자. ^^;
- Class/2006Fall . . . . 1 match
=== [(zeropage)ArtificialIntelligenceClass] ===
- ComputerGraphicsClass/Report2004_1 . . . . 1 match
(UploadFile 매크로 살린뒤 추가 예정)
- ComputerNetworkClass/2006 . . . . 1 match
* 프로그램들 - 아래 두개 모두 다운 받아야 합니다.
- Counting/문보창 . . . . 1 match
cout << Tn[n] << endl;
- Counting/하기웅 . . . . 1 match
cout<< number[input] <<endl;
- CubicSpline/1002/CubicSpline.py . . . . 1 match
if __name__=="__main__":
- CubicSpline/1002/test_tridiagonal.py . . . . 1 match
if __name__=="__main__":
- C언어정복 . . . . 1 match
== 제로페이지 새싹스터디 모임 C언어정복 ==
- DebuggingApplication . . . . 1 match
[http://www.dependencywalker.com/]
- DeleteThisPage . . . . 1 match
페이지를 삭제한다는 의미로 쓰는 문구.
- DesignPatternSmalltalkCompanion . . . . 1 match
약자만 모아서 DPSC라고 부름. zeropage에서 가장 많이 보유하고 있을 것이라 생각되어지는 DesignPattern 서적. (모 회원이 1650원이라는 헐값에 구입했다는 이유만으로. -_-;)
- DesignPatterns/2011년스터디/서지혜 . . . . 1 match
* 패턴 카탈로그
- DirectX . . . . 1 match
이 페이지의 내용을 DirectX 로 옮겨두었습니다. DirectX 의 내용을 적절히 편집해 주세요.
- DocumentMode . . . . 1 match
해당 토론이 안정화 되어서 의견이 모아졌을때, 또는 글이 너무 길어졌을 경우, 사람들이 다같이 인정하는 안정화된 부분에 대해서 정리를 할 수 있다.
- DrPython . . . . 1 match
[http://drpython.sourceforge.net/ 프로젝트 홈페이지]
- DuplicatedPage . . . . 1 match
DuplicatedPage 란 마크를 기준으로 상단은 ZeroWiki 내용, 하단은 OneWiki 내용 입니다. 적절히 통합해 주세요
- EXIT MUSIC처음화면 . . . . 1 match
=== 블로그 ===
- EightQueenProblemSecondTry . . . . 1 match
이번에는 소스코드를 모두 삭제하고, 맨땅에서 다시 시작을 합니다. EightQueenProblem을 만족하는(즉 하나의 해법만 얻는) 프로그램을 다시 한번 작성합니다. 자신이 처음 EightQueenProblem을 풀면서 얻었던 통찰(insight)만을 이용하고, 가능하면 더 깔끔한 해답을 얻으려고 노력하면서 말이죠.
- Ellysavet . . . . 1 match
아무런 소식이 없어서, ZeroPagers 에서 ZeroWikian 으로 분류를 바꾸었습니다. 원하시면 언제든지 참여해 주세요. --NeoCoin
- EmbeddedC++ . . . . 1 match
* C++은 동적메모리 관리자가 필요하지만 [EmbeddedSystem]은 메모리가 부족하므로 C++이 잘 쓰이지 않는다.
- EnglishSpeaking/TheSimpsons/S01E02 . . . . 1 match
* 항상 학교에서 사고를 치는 바트와 똑똑하지만 뭔가 철이 없는 마틴. 어느 날 학교에서 학생들은 IQ 테스트를 치르게 되고 자꾸 자신을 약올리고 고자질하는 마틴이 재수없다고 느낀 바트는 자신의 시험지와 마틴의 시험지를 바꿔치기 한다. 그 결과 IQ 216이라는 판정 결과가 나오고 바트는 천재학교에 입학하게 되며 가족들의 대우가 달라진다. 하지만 천재 학교에서 제대로 적응할리가 없는 바트는 천재 학교 아이들에게 왕따를 당하고 옛날에 같이 놀던 친구들도 바트가 자신들과 다른 존재라며 상대하지 않는다.
- Eric3 . . . . 1 match
개발자 홈페이지 가보면 이 사람이 윈도우용 PyQT 빌드 한 거 있음. 그거 깔고 설치하면 윈도우에서 실행 가능. (무언가 기능은 많긴 한데.. 개인적으로는 이상하리 손이 안가는중.;) --[1002]
- Error 발생시 풀리지 않을 경우 확인 . . . . 1 match
1. 컨트럴 ID 가 제대로 연결되어 있는지 확인하라.
- Expat . . . . 1 match
파이선의 기본 XML 파서로 채택되어 이용되고 있다. 정직 형님의 강력 추천에도 불구 MS 계열의 개발자는 좀 꺼리는 듯 하다. ㅡ.ㅡ;; (사람은 익숙해지면 못버린다. ㅋㅋ)
- ExtremeBear/VideoShop/20021106 . . . . 1 match
* 삽질에 빠질 때 침착하게 전체적으로 보아야 겠다.
- Factorial . . . . 1 match
== Factorial을 구하는 프로그램을 작성한다. ==
- FastSearchMacro . . . . 1 match
5000여개의 파일이 있을 때 FastSearch는 2초 걸렸다. php는 파일 처리속도가 늦다는 이유로 FullSearchMacro를 쓰면 약 15여초 걸린다. 그 대신에, wiki_indexer.pl은 하루에 한두번정도 돌려야 되며, 5분여 동안의 시간이 걸린다.
- FromCopyAndPasteToDotNET . . . . 1 match
* 예제 프로그램들
- HASH구하기/류주영,황재선 . . . . 1 match
ifstream fin("input"); // fin과 input.txt를 연결
- HASH구하기/신소영 . . . . 1 match
ifstream input("input.txt");
- Hacking/20040930첫번째모임 . . . . 1 match
- 리눅스 다운로드
- Hacking/20041118네번째모임 . . . . 1 match
* 서로 부족한 부분을 보충하기
- HeadFirstDesignPatterns . . . . 1 match
- I feel like a thousand pounds of books have just been lifted off my head.
- History지도 . . . . 1 match
* ["WikiProjectHistory"] - 위키에 열렸던 프로젝트에 대한 과거기록
- HolubOnPatterns . . . . 1 match
* [http://www.yes24.com/24/Goods/2127215?Acode=101 Holub on Patterns: 실전 코드로 배우는 실용주의 디자인 패턴] - 번역서
- HomepageTemplate . . . . 1 match
[홈페이지분류], ZeroPagers, ZeroWikian ( DeleteMe 복수개로 선택해 주세요. )
- HowManyOpenSourceSoftwaresDoYouUse . . . . 1 match
얼마나 많은 OpenSource 소프트웨어를 이용하십니까? (참고로, OpenSource와 FreeWare는 다른 개념입니다.). [숫자증가식투표패턴]을 사용합니다.
- ITConversationsDotCom . . . . 1 match
KentBeck 의 음성을 처음으로 들어봤다. 그동안 Toeic L/C 에서 들어오던 억양과는 조금 다른거 갈다. 연설의 내용을 이해하는 것도 좋겠지만, 혼자 옹알거리면서 억양을 익히는 것도 좋을 것 같다. - [임인택]
- IdeaPool/PrivateIdea . . . . 1 match
* 구상한 아이디어에 대한 자세한 사항은 관련 페이지를 만들어서 옮겼습니다. 시작하려는 사람들은 그 페이지를 Starting Point 로 하여 시작하면 되겠지요. :) --[창섭]
- Ieee754Standard . . . . 1 match
전산/컴공과 학생이 NumericalAnalysisClass를 통틀어서 오로지 한가지만 배워야 한다면 나는 부동소수점 연산을 들고 싶다. --JuNe
- IsThisIntegration?/김상섭 . . . . 1 match
cout << temp*a << " " << temp*b << " " << temp*c << endl;
- IsThisIntegration?/허준수 . . . . 1 match
cout << s1 << " " << s2 << " " << s3 <<endl;
- JTDStudy/첫번째과제 . . . . 1 match
* 숫자 야구를 만들어 봅시다. 어떤식으로 돌아가는지는 다들 아시죠?
- Jakarta . . . . 1 match
apache 에서의 자바 플랫폼 하 오픈 소스 솔류션 프로젝트.
- JavaStudy2002/입출력관련문제 . . . . 1 match
* 여러분이 어려워하시는것 같아, 입력 부분을 만들었습니다. 해당 static method의 기능은 한줄을 읽고, 공백이나, 탭을 기준으로 배열을 반환합니다. 사용 방법은 해당 함수의 main 을 참고하시고, 다른 소스에서 import해서 그냥 사용하세요. --["neocoin"]
- JavaStudy2002/진행상황 . . . . 1 match
* 10/15 - 네번째 스터디 모임은 다음으로 넘기겠습니다.
- JavaStudy2003/세번째과제 . . . . 1 match
* 이번주 과제는 '''프로그래밍의 체험''' 이 되겠네요. 두번째 수업에 있는 예제의 풀이입니다.
- Jolly Jumpers/정진경 . . . . 1 match
n,a,b,k,c[3000];main(){for(;scanf("%d%d",&n,&a)+1;puts(k-1?"Not jolly":"Jolly"))for(memset(c,0,n*4),k=n;--n;a=b){scanf("%d",&b);a=abs(a-b);if(!c[a])c[a]=1,k--;}}
- JollyJumpers/1002 . . . . 1 match
역시 옆의 matlab 으로 푸는 분과 시합. 그분도 5분, 나도 5분 걸림. 해당 페이지에서 빨리 푼 사람과 늦게 푼 사람의 차이시간이 커서 무엇때문일까
- KIN . . . . 1 match
제로페이지를 나와서 회원도 아니지만 어쩌다 갖게된 위키,,,
- KIV봉사활동 . . . . 1 match
* 김준석(총무) : 한과, 약, 연수기, 프로그램 셋팅
- KIV봉사활동/개인준비물 . . . . 1 match
* 집에서 마지막으로 짐을 꾸리면서 확인할 점검표 역할을 합니다.
- Karma . . . . 1 match
스스로가 테스트를 하는 것은 아니고, 테스트 라이브러리를 동작(run)시키기 위한 환경을 제공하는듯.
- LinkedList/StackQueue . . . . 1 match
LinkedList로 Stack과 Queue를 구현하는 것입니다.
- Linux/ElectricFence . . . . 1 match
리눅스에서 사용가능한 CrtDbg 정도로 생각하면 좋다.
- ListCtrl . . . . 1 match
// TODO: Add your control notification handler code here
- MT날짜정하기 . . . . 1 match
/!\ 주의! 출발날짜로 가능한 날짜를 투표해주세요. 그리고 표 모양 안일그러지게 해주세요...^^;
- MacroMarket . . . . 1 match
moinmoin의 Macro 관련 페이지. {{{~cpp [[TableOfContents]], [[BR]] }}} 등등은 일종의 moinmoin 플러그인으로 파이썬을 이용, 향후 추가가 가능합니다.
- Map/곽세환 . . . . 1 match
cout << endl;
- Map/박능규 . . . . 1 match
cout << endl;
- Map/조재화 . . . . 1 match
cout<<endl;
- Map/황재선 . . . . 1 match
cout << endl;
- Map연습문제/나휘동 . . . . 1 match
cout << decoded << endl;
- MatLab . . . . 1 match
[1002] 가 OCU 수업으로 공부하는 툴. 요즈음 결과분석시 그래프를 그려서 분석하곤 하는데, 이때 자주 쓰는 툴. 비단 Visualization 뿐만 아니라 행렬연산 등을 간단히 실험해보는데도 유용하게 쓰인다.
- MentorOfArts . . . . 1 match
서강대학교 컴퓨터 학과 스터디그룹. Interwiki 로는 '''{{{~cpp Moa:}}}''' 를 이용합니다.
- MoinMoinNotBugs . . . . 1 match
== This is *NOT* a Browser bug with CSS rendering ==
I suspect this problem is pervasive, and I also suspect that the solution is almost moot; probably a one-off counting problem, or a mis-ordered "case" sort of sequence. If the /UL closing tag were to precede the P opening tag, all would be well.
- 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.
If you are familiar with the PHP Script language you can easily add features or enhancements.
== MoniWiki:MoniWikiFeatures ==
- MySQL/PasswordFunctionInJava . . . . 1 match
if(aStr.charAt(i) == ' ' || aStr.charAt(i) == '\t') continue; /* skipp space in password */
- NSIS/예제1 . . . . 1 match
; 인스톨 할 디렉토리로 output path 의 설정
SectionEnd ; section 완료
SectionEnd
- NetworkDatabaseManagementSystem . . . . 1 match
The network model is a database model conceived as flexible way of representing objects and their relationships. Its original inventor was Charles Bachman, and it was developed into a standard specification published in 1969 by the CODASYL Consortium. Where the hierarchical model structures data as a tree of records, with each record having one parent record and many children, the network model allows each record to have multiple parent and child records, forming a lattice structure.
- NumericPython . . . . 1 match
1.0는 제대로 동작하지 않습니다.
- NumericalAnalysisClass/Exam2004_2 . . . . 1 match
[http://dduk.idaizy.com/data/exam/%BC%F6%C4%A1%C7%D8%BC%AE2004%B3%E2%B1%E2%B8%BB%B0%ED%BB%E7.hwp 다운로드(한글2002)]
- NumericalAnalysisClass/Report2002_1 . . . . 1 match
Cubic Spline 함수를 계산하기 위해서는 Tri-Diagonal Matrix 에 대한 해를 구할 수 있어야 한다. 다음과 같이 주어진 Tri-Diagonal Matrix 시스템의 해를 계산하는 프로그램을 작성하시오.
- OpeningStatement . . . . 1 match
페이지를 새로 만들 때 그 페이지를 연 목적을 간결하게 밝히는 문장. 그 페이지의 첫문장이 되어야한다.
- Park . . . . 1 match
[홈페이지분류], ZeroWikian ( DeleteMe 복수개로 선택해 주세요. )
- PowerOfCryptography/Hint . . . . 1 match
- 문자열로 입력받을수 있다.
- PreviousFrontPage . . . . 1 match
A WikiWikiWeb is a collaborative hypertext environment, with an emphasis on easy access to and modification of information. This wiki is also part of the InterWiki space.
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.
- ProcessExplorer . . . . 1 match
http://www.sysinternals.com/images/screenshots/ProcessExplorer.gif
- ProgrammingLanguageClass/2002 . . . . 1 match
=== Report Specification ===
- ProjectPrometheus/AcceptanceTest . . . . 1 match
* 테스트 프로그램 소스 열기 링크 추가.
- ProjectPrometheus/Iteration . . . . 1 match
* Release 1 : Iteration 1 ~ 3 (I1 ~ I3)까지. 책 검색과 Login , Recommendation System (이하 RS) 기능이 완료.
- ProjectVirush/ProcotolBetweenServerAndClient . . . . 1 match
|| 로그인 || login id pw || login true || 아이디, 비밀번호 || 예약된 명령의 처리 상황||
- Quake2 . . . . 1 match
퀘이크2를 .Net 용으로 이식한 소스.
- Release Planning . . . . 1 match
Rename : ReleasePlanning 으로 이름변경합니다.
- ReverseAndAdd/민경 . . . . 1 match
if n[i]==int(s):
- ReverseAndAdd/정수민 . . . . 1 match
if m==n:
- RubyOnRails . . . . 1 match
* Ruby 로 웹 개발을 손쉽게 해주는 Framework
- RummikubProject . . . . 1 match
[프로젝트분류]
- SOLDIERS/송지원 . . . . 1 match
// x = i 축을 기준으로 x좌표 이동 수 구하기
- SWEBOK . . . . 1 match
* SWEBOK 은 이론 개론서에 속하며 마치 지도와도 같은 책이다. SWEBOK 에서는 해당 SE 관련 지식에 대해 구체적으로 가르쳐주진 않는다. SWEBOK 는 해당 SE 관련 Knowledge Area 에 대한 개론서이며, 해당 분야에 대한 실질적인 지식을 위해서는 같이 나와있는 Reference들을 읽을 필요가 있다. (Reference를 보면 대부분의 유명하다 싶은 책들은 다 나와있다. -_-;) --석천
- SearchAndReplaceTool . . . . 1 match
Actual Search & Replace 를 쓰는중. 기존 사이트 이어받은거 웹 노가다일을 해야 할 경우 매우 편리. (예전에는 그때그때 python script 를 만들어썼는데, 그럴 필요가 없을듯) --[1002]
- SecurityNeeds . . . . 1 match
I actually have a rather different security problem. I would like to set up
- Server&Client/상욱 . . . . 1 match
if ( connect.isBound() ) {
- SimpleDirectmediaLayer . . . . 1 match
크로스 플랫폼을 지원하는 멀티미디어 개발용 API.
- SnakeBite . . . . 1 match
== Specification ==
- SoftwareEngineeringClass/Exam2002_1 . . . . 1 match
* Quality Assurance 와 V & V (verification & validation) 과의 관계에 대해 쓰시오.
- Template분류 . . . . 1 match
새로운 페이지를 만들때, 레이아웃이 될수 있는 Template 들입니다.
- TheBookOpenSources . . . . 1 match
|| http://www.aladdin.co.kr/Cover/897914069X_1.gif [[BR]] ISBN:897914069X ||
- TheLargestSmallestBox/허준수 . . . . 1 match
cout << max_v << " " << 0.0 << " " << min_v/2 <<endl;
- TheWarOfGenesis2R/Temp . . . . 1 match
cout << a << b << endl;
- TopDown . . . . 1 match
하나의 문제에 대해서 작은 문제로 계속 쪼내나가는 형태를 지칭. Divide And Conquer 와 비슷하다.
- UpgradeC++ . . . . 1 match
*[UpgradeC++/과제3] 성적관리프로그램
- Vaccine . . . . 1 match
|| 바이로봇 시리즈 || 1 ||
- VisualBasicClass . . . . 1 match
언어같지 않은 언어 -_-;; 비베를 배운다. OCU 과목으로 흔히들 많이 듣는 과목이다.
- VitosFamily/Celfin . . . . 1 match
cout << sum << endl;
- VoteMacro . . . . 1 match
||[[Vote(off,일찍 자고 일찍 일어난다 6, 늦게 자고 늦게 일어난다 14, 내 맘대로 19)]]||[[Vote(아침 6, 점심 9, 저녁 13)]]||
- WebService . . . . 1 match
웹 서버를 통하여 프로그램 인터페이스를 노출하려는 방법
- WhyWikiWorks . . . . 1 match
* wiki is not wysiwyg. It's an intelligence test of sorts to be able to edit a wiki page. It's not rocket science, but it doesn't appeal to the TV watchers. If it doesn't appeal, they don't participate, which leaves those of us who read and write to get on with rational discourse.
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
- WikiKeyword . . . . 1 match
See also FacetedClassification
- Winamp . . . . 1 match
[WinampPlugin을이용한프로그래밍]
- XMLStudy_2002 . . . . 1 match
[["프로젝트분류"]]
- XOR삼각형 . . . . 1 match
파스칼의 삼각형에서 덧셈의 기본 연산을 XOR로 치환한 XOR삼각형 만들기
- XperDotOrg . . . . 1 match
인터위키로는 '''{{{Xper:}}}''' 를 이용합니다.
- ZPHomePage/20050103 . . . . 1 match
* JSP로 카운터 만들기 - 1주일(1/10까지)
- Zedroid . . . . 1 match
[프로젝트분류]
- ZeroPage/임원/회의 . . . . 1 match
[[calendar]]
- ZeroPage/임원/회의/2011-01-19 . . . . 1 match
* 결론이 나지 않아 2차 임원회의에서 더 논의하기로 함.
- ZeroPage회계장부 . . . . 1 match
Upload:nomoney.gif
- ZeroWikian . . . . 1 match
* 역시 ["ZeroPagers"] 가 세트로 묶이네요. 더 좋은 이름 있으면, 또 바꿔 봅시다 앗싸~ --["상민"]
- [Lovely]boy^_^/Diary/12Rest . . . . 1 match
* I modify above sentence.--; I test GetAsyncKeyState(), but it's speed is same with DInput.--; How do I do~~~?
- [Lovely]boy^_^/Diary/2-2-14 . . . . 1 match
* 난 항상 지하철 타고 다니는 사람들이 부러웠다. 지하철에선 책을 볼수가 있기 때문이다. 멀미를 잘 하는 나로서는 버스에서 책을 본다는건 미친 짓이다... 학교 왔다 갔다 하는데 드는 2시간을 어떻게 때울까가 현재 고민이다.
- [Lovely]boy^_^/Diary/2-2-2 . . . . 1 match
* 우리나라에 사람 무는 바퀴벌레가 들어온 기념으로.. TDD를 이용한 RandomWalk2를 해보았다.(Python) 파이썬 문법 자체에서 좀 많이 버벅거렸다는게 좀 아쉽다. 테스트 수십개가 통과하는 것을 보고 있자니 괜시리 기분이 좋아진다는--;
- [Lovely]boy^_^/Diary/2-2-8 . . . . 1 match
* 프로그래밍 경진대회 9시 7피
- [Lovely]boy^_^/EnglishGrammer/QuestionsAndAuxiliaryVerbs . . . . 1 match
But do not use do/does/did if who/what/which is the subject of the sentence.
- [Lovely]boy^_^/Temp . . . . 1 match
if(arg)
- [Lovely]boy^_^/USACO . . . . 1 match
|| ["[Lovely]boy^_^/USACO/GreedyGiftGivers"] ||
- callusedHand/projects/fileManager . . . . 1 match
가상 파일 시스템 도입 / Linux configuration center(?) / 원격 로그인
- eternalbleu . . . . 1 match
email : http://blog.izyou.net/attach/1/1247400824.gif
- html . . . . 1 match
[프로그래밍분류]
- html5 . . . . 1 match
* [http://simon.html5.org/html5-elements w3g HTML5 레퍼런스들을 목차로 잘 정리해 놓았다.]
- html5/geolocation . . . . 1 match
* 프로그램을 실행하는 디바이스의 위치 정보를 얻기 위한 API
- iPhone . . . . 1 match
[프로그래밍분류]
- jinahut . . . . 1 match
왠지 내 이름으로 페이지를 만들고 거기에 뭘 쓴다는게,
- kairen . . . . 1 match
* 아.. 제로 페이지 내의 위키 페이지 였나부네.. 기억이 가물가물..
- lostship . . . . 1 match
== 프로그램 ==
- neocoin/Education . . . . 1 match
* 프로그래밍 언어론에 대한 접근 방법 분류 필요, 기타 여러 배우는, 가르치는 법 필요.
- neocoin/MilestoneOfReport . . . . 1 match
* 제한 사항(Specification)
- radeon256 . . . . 1 match
* 프로그래밍 정복
- source . . . . 1 match
[성적처리프로그램]
- warbler . . . . 1 match
* 회사내에서 IT Project를 돌아다니며 수행 중(도 닦는 중? 맞다. 도 닦는 마음으로 해야 함.) [[BR]]
- whiteblue . . . . 1 match
안녕하세요~ 02학번 유상욱입니다~! 어쩌다보니 2003년 제로페이지 회장이 되었네요..^^;;;
- wlsdud1616 . . . . 1 match
[홈페이지분류], ZeroPagers, ZeroWikian ( DeleteMe 복수개로 선택해 주세요. )
- zozo . . . . 1 match
중대컴공 98 이선호. 제로페이지랑 친한 네토리 학회 멤버.
- 고수를찾아서 . . . . 1 match
고수는 하루아침에 될 수 없다. 극단적으로 수련을 하든, 화두를 잡고 몇 년을 끙끙대든 결국 고수가 되는 데는 시간이 걸린다. 그리고 나면 자신만의 길을 개척할 수 있다. 처음부터 모든 것을 창조해내지는 못하는 법이다.
- 구구단/S.S.S . . . . 1 match
if __name__=='__main__':
- 구구단/김범준 . . . . 1 match
if __name__ == '__main__':
- 구구단/김태훈-zyint . . . . 1 match
if __name__ == '__main__':
- 구구단/윤성복 . . . . 1 match
if __name__ == '__main__':
- 구구단/임인택2 . . . . 1 match
이것은 [구구단] 페이지에서 요구하는 출력조건을 만족하지 못함. 따라서 약간의 변환 수행.
- 구글을지탱하는기술 . . . . 1 match
* [Sawzall] : 분산처리용 프로그래밍 언어. 스크립트 언어
- 그래픽스세미나/6주차 . . . . 1 match
* 5주차 숙제 그대로 입니다.
- 글로벌CEO . . . . 1 match
= 글로벌CEO =
- 김정욱2 . . . . 1 match
"[김정욱]"으로 검색해주세요
- 김정현 . . . . 1 match
아직 저학년이니까 게임 클라이언트 쪽으로 이것저것 구경하는 중입니다
- 김지연 . . . . 1 match
== 앞으로의 계획 ==
- 김현종 . . . . 1 match
아직 너무나 서투른 프로그래밍에 있어 조금이라도 자신감을 갖고 능숙하게 다룰 수 있음 좋겠어요^^
- 꼴찌에게보내는갈채 . . . . 1 match
세대 차이란 이런 것이구나. 앞으로 오십 년 후에는 어떤 생각을 하게 될까.
- 답변 및 의견 2 . . . . 1 match
* 고것이 방법이 또 있는것 같던데.;; 담주 수요일에 이클립스로 하는거 해보장.ㅋㅋ - [송수생]
- 대순이 . . . . 1 match
로그인 했는데 2006신입생 연락처가 안보임..ㅡㅡ; ㅎㅎㅎ
- 데블스캠프2004/위키항해소감 . . . . 1 match
* 황재선: 앞으로도 위키를 갖고 나갔으면 좋겠다.
- 데블스캠프2005/RUR-PLE/Harvest/김태훈-zyint . . . . 1 match
if next_to_a_beeper():
- 데블스캠프2005/목요일 . . . . 1 match
* 시간이 빡빡한 관계로 09:00 정각에 시작하겠습니다.
- 데블스캠프2006/금요일 . . . . 1 match
프로그램 올리는 곳 - ftp://165.194.17.70:2000/
- 데블스캠프2006/금요일후기 . . . . 1 match
오늘은 j언어라는 새로운 세계를 접해서 뿌듯합니다. 5일동안 배운게 기억은 잘 나지 않지만 끝까지
- 데블스캠프2006/연습문제 . . . . 1 match
연습문제 코드나 최종 프로그램 코드 올려주세요^^
- 데블스캠프2006/월요일/연습문제/for/김대순 . . . . 1 match
if(i<=10){
- 데블스캠프2006/월요일/연습문제/for/정승희 . . . . 1 match
if(n<10){
- 데블스캠프2006/월요일/연습문제/switch/윤영준 . . . . 1 match
if(student[i]!=999)
- 데블스캠프2006/월요일/연습문제/switch/이경록 . . . . 1 match
if(score[i] == 999){
- 데블스캠프2006/월요일/연습문제/기타문제/김대순 . . . . 1 match
if(i==5) continue;
- 데블스캠프2006/월요일/연습문제/기타문제/성우용 . . . . 1 match
if(i%5 == 0)
- 데블스캠프2006/월요일/연습문제/기타문제/윤영준 . . . . 1 match
if(i==5){
- 데블스캠프2006/월요일/연습문제/기타문제/이차형 . . . . 1 match
if(i==5)
- 데블스캠프2006/월요일/연습문제/기타문제/주소영 . . . . 1 match
if(i==5){
- 데블스캠프2006/월요일/함수 . . . . 1 match
[DeleteMe] ) 파일자료 가 아닌, 데블스캠프2006/월요일/함수/파일자료 이런식으로 올려주시기 바랍니다.
- 데블스캠프2006/준비/화요일 . . . . 1 match
다운로드 등의 자료와 예제 등 의견을 나눌 수 있는 페이지 입니다.
- 데블스캠프2006/화요일/pointer/문제3/정승희 . . . . 1 match
cout<<a[i]<<" + "<<b[i]<<" = "<<c[i]<<endl;
- 데블스캠프2006/화요일/pointer/문제4/성우용 . . . . 1 match
if (buf[i] != buf_[i]){
- 데블스캠프2006/화요일/tar . . . . 1 match
요기다가 자기 프로그램 링크시켜주세요~
- 데블스캠프2009/수요일/OOP/서민관 . . . . 1 match
//오버로딩
- 데블스캠프2009/월요일/연습문제/HTML-CSS/강소현 . . . . 1 match
body {background-image:url('paper.gif');
- 데블스캠프2009/월요일/연습문제/HTML-CSS/서민관 . . . . 1 match
body {background-image:url('paper.gif');
- 데블스캠프2010/다섯째날/ObjectCraft . . . . 1 match
2. 구조체에서 클래스로
- 데블스캠프2011/넷째날/Android . . . . 1 match
1. 기본 프로젝트 생성
- 데블스캠프2011/넷째날/루비 . . . . 1 match
* [http://nightshadow.tistory.com/entry/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%96%B8%EC%96%B4-%EB%A3%A8%EB%B9%84 블로그 참고]
- 데블스캠프2011/다섯째날/Cryptography . . . . 1 match
1 < e < φ(n)이면서 φ(n)과 서로소인 e를 선택한다.
- 데블스캠프2012/넷째날/묻지마Csharp/Mission2/서민관 . . . . 1 match
private void pushButton_Click(object sender, EventArgs e)
- 데블스캠프2012/넷째날/묻지마Csharp/Mission3/서민관 . . . . 1 match
private void timer1_Tick(object sender, EventArgs e)
- 데블스캠프2012/다섯째날/C로배우는C++원리 . . . . 1 match
Describe 데블스캠프2012/다섯째날/C로배우는C++원리 here
- 데블스캠프2012/셋째날/코드 . . . . 1 match
* 웹서버에 실습파일을 만든다 -> 네이버 개발자센터 -> MapAPI를 사용해본다. -> N으로 시작하는 라이브러리 사용하면서 화냄 -> Mark위에 이벤트 출력까지 하고 끝.
- 데블스캠프2013/둘째날/API . . . . 1 match
if (!trim($_POST['name']) || !trim($_POST['text'])) {
- 도구분류 . . . . 1 match
프로그래밍시 이용되는 각종 도구들. 툴, API 등 (아마 Framework 는 추후 분류가 분화되어야 할듯)
- 동영상처리세미나/2006.08.17 . . . . 1 match
4. 실습 : 필터 바꿔보기 mirror 프로그램
- 떡장수할머니/강소현 . . . . 1 match
if((k-x*i)%y==0){
- 리디아처음화면 . . . . 1 match
앞으로 자주자주 들러서 써봐야겠어요..
- 마름모출력/S.S.S . . . . 1 match
if __name__=='__main__':
- 마름모출력/zyint . . . . 1 match
if __name__ == '__main__':
- 마름모출력/김범준 . . . . 1 match
if __name__ == '__main__':
- 마름모출력/김정현 . . . . 1 match
if __name__ == '__main__':
- 마름모출력/남도연 . . . . 1 match
if __name__=='__main__':
- 마름모출력/문보창 . . . . 1 match
if __name__== '__main__':
- 마름모출력/조현태 . . . . 1 match
if __name__ == '__main__':
- 멘티스 . . . . 1 match
[http://tong.nate.com/deergirl/2412917 블로그 퍼옴]
- 몸짱프로젝트/BucketSort . . . . 1 match
* 개발방식 : TestDrivenDevelopment using [JUnit]
[몸짱프로젝트]
- 몸짱프로젝트/Invert . . . . 1 match
[몸짱프로젝트]
- 몸짱프로젝트/KnightTour . . . . 1 match
* TestDrivenDevelopment 방식을 씀
[몸짱프로젝트]
- 문보창 . . . . 1 match
제로페이지 회원
- 문자반대출력/Microsoft . . . . 1 match
실제 구현이 어떻게 이루어져 있는 지 궁금했는데 감사합니다^^ 문자열의 맨 앞글자와 맨 뒷글자부터 swap하는 방법으로 간단하게 변환이 가능하네요~~ 오~~ 신기하다 ㅋ -- [이도현처음화면]
- 문자반대출력/남도연 . . . . 1 match
cout<<munja<<endl;
- 박수진 . . . . 1 match
제로페이지에 개성있게 생긴 05가 들어왔구나. - [상협]
- 박정근 . . . . 1 match
E-Mail 을 직접 노출하면, 스팸 메일 로봇들이 퍼갈수 있습니다.
- 박지성 . . . . 1 match
제로페이지 05
- 박진섭 . . . . 1 match
DeleteMe [홈페이지Template] 를 참고로 하여 페이지를 구성하시기를 추천합니다. --NeoCoin
- 박진하 . . . . 1 match
여러가지로 한동안 나에게서 버림 받았던 내 홈페이지ㅠㅠ
- 반복문자열/김영록 . . . . 1 match
cout << "CAUCSE LOVE." << endl ;
- 반복문자열/남도연 . . . . 1 match
cout<<"CAUCSE LOVE"<<endl;
- 반복문자열/이강희 . . . . 1 match
앞으로 많은 어드바이스 부탁드립니다~
- 반복문자열/최경현 . . . . 1 match
// CAUCSE LOVE. 라는 문장을 5번 연속해서 출력시키는 프로그램을 작성하라.
- 백주협 . . . . 1 match
2. 그 동안 못한 프로그래밍
- 빠빠안녕 . . . . 1 match
= 자, 새로운 시작이다~! =
- 사이트검색창찾기 . . . . 1 match
|| 로그인 않할 시 검색 불가능 || 작업일정 ||
- 삼총사CppStudy/20030731 . . . . 1 match
* 생성자 오버로딩(약간)
- 상욱 . . . . 1 match
* 휴~ 이제는 군대로^^;
- 상쾌한아침 . . . . 1 match
페이지 제목은 상쾌한 아침으로 결정했습니다. - [이승한]
- 새싹교실/2011/學高/10회차 . . . . 1 match
* selection sort 마저 다 짜오세요. 1등으로 짜는 사람한테 보상있음(다만 그 소스코드를 설명하는 시험 봄)
- 새싹교실/2011/學高/7회차 . . . . 1 match
* 솔까말 제대로 준비 못했다. 집에서 C 책 좀 가져오고 해야겠다. 귀차니즘이 문제임
- 새싹교실/2011/學高/9회차 . . . . 1 match
* selection sort 마저 다 짜오세요. 1등으로 짜는 사람한테 보상있음(다만 그 소스코드를 설명하는 시험 봄)
- 새싹교실/2011/씨언어발전/6회차 . . . . 1 match
&와 *은 서로 상쇄되어 scanf("%d",&*&*&*&*&*&*p); 이래 써도 되는 것을 알았다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
- 새싹교실/2012/아우토반 . . . . 1 match
* 새싹교실 열심히 참여하여 아우토반을 빛내겠습니다 뿌숑!!! 프로그래밍神 되구싶어요 뿌숑! -[안혜진]
- 새싹교실/2012/열반/120521 . . . . 1 match
if((*a)!=(*b)){
- 새싹교실/2012/해보자/과제방 . . . . 1 match
if(i!=4)
- 선희/짜다 만 소스 . . . . 1 match
Upload:Calendar_SUNNY.cpp
- 송정규 . . . . 1 match
* 내 이름은 송정규. 2013년 제로페이지 부회장 겸 총무를 맡고 있지.
- 송지훈 . . . . 1 match
취미 : 농구, 기타연주, 페이스북, 프로젝트 유지보수, 연애
- 수/구구단출력 . . . . 1 match
변수명은 가능하면 a,b 나 i,j 같이 이름만 보고 무슨 의미인지 알기 힘들게 짓기 보다는 조금 더 길어지더라도 이름만 보고 이게 무슨 역할을 하는 변수명이구나 하고 알수 있게 짓는 버릇을 들이는게 좋다. 주석이 필요 없을 정도로 변수명 함수명만 보고 이게 무슨 일을 하는 변수, 함수 이다라고 알수 있게 하면 더 더욱 좋다. - [상협]
- 수/정렬 . . . . 1 match
숫자 5개를 입력 받고 큰 순서대로 출력.
- 숙제1/최경현 . . . . 1 match
cout <<"섭씨 "<<celsius<<"도는 화씨로 "<<convert(celsius)<<"도 입니다.";
- 순수원서 . . . . 1 match
로또 사기
- 스터디제안/2013 . . . . 1 match
* 제로페이지 내에서 진행하고 싶은 스터디를 제안하는 곳입니다.
- 시간관리인생관리 . . . . 1 match
이 책으로 그동안 읽었던 다른 시간관리 책들이 그 빛을 잃어 버렸다. --NeoCoin
- 안성진 . . . . 1 match
= 앞으로 할 일 =
- 알고리즘3주숙제 . . . . 1 match
[http://www.csc.liv.ac.uk/~ped/teachadmin/algor/pic4.gif]
- 양쪽의 클래스를 참조 필요시 . . . . 1 match
2. pWnd->SendMessage(MESSAGE_ID)
- 예수는신화다 . . . . 1 match
* Title :예수는 神話다 - 기독교 탄생의 역사를 새로 쓰는 충격보고(The Jesus Mysteries)
- 오월의 노래 . . . . 1 match
건강을 회복한 뒤 슈트라스부르크로 유학, 71년에 학위를 받았으며, 여기서 5년 선배인 J.G.헤르더를 알게 되어 민족과 개성을 존중하는 문예관(文藝觀)의 영향을 받았는데, 후일 <슈투름 운트 드랑(Sturm und Drang)>의 바탕이 되기도 하였다.
- 유주영 . . . . 1 match
04학번 제로페이지 준회원!
- 윤정훈 . . . . 1 match
제로페이지 여러분 잘해봐요~!!
- 이승한 . . . . 1 match
* 제로페이지. 14기. 현재 삼성전자 무선사업부 재직 중.
- 이영호/기술문서 . . . . 1 match
[http://bbs.kldp.org/viewtopic.php?t=48059] - struct POS의 memcmp와 if 의 성능비교 (결과 : 다루는 배열이나 구조체가 커질수록 memory계 함수가 빠르다.)
- 임수연 . . . . 1 match
[[HTML(<img src= http://home.opentown.net/~mcgyber1/images/face/날라간다.gif>)]]슈퍼맨ㅋㅋ -[허아영]
- 임시 . . . . 1 match
REST allows you to make calls to ECS by passing parameter keys and values in a URL (Uniform Resource Locator). ECS returns its response in XML (Extensible Markup Language) format. You can experiment with ECS requests and responses using nothing more than a Web browser that is capable of displaying XML documents. Simply enter the REST URL into the browser's address bar, and the browser displays the raw XML response.
- 정모/2003.1.29 . . . . 1 match
* 로보코드에 흥미
- 정모/2003.12.1 . . . . 1 match
* 졸업생들은 E-mail로, 재학생들은 개별 연락.
- 정모/2006.6.23 . . . . 1 match
* 다음주 회의 내용 : 엠티 - 프로젝트 - 스터디
- 정모/2006.7.13 . . . . 1 match
* 프로젝트, 계획서
- 정모/2006.9.7 . . . . 1 match
== 결정된 프로젝트 ==
- 정모/2011.4.4/CodeRace/서지혜 . . . . 1 match
* 난 셀룰러 오타마타로 짤꺼야!
- 정모/2012.1.20 . . . . 1 match
* [2012년독서모임] - 다음주는 정모 이후에 진행하도록 하고, 기본적으로 화요일 오후 5시
- 정모/2012.11.12 . . . . 1 match
== 스터디/프로젝트 ==
- 정모/2012.11.5 . . . . 1 match
== 스터디/프로젝트 ==
- 제로페이지분류 . . . . 1 match
제로페이지의 소개, 역사, 행사추진등...
- 제본 . . . . 1 match
["제로페이지분류"]
- 조현태/놀이 . . . . 1 match
[조현태/놀이/네모로직풀기]
- 졸업논문 . . . . 1 match
* [졸업논문/참고문헌] - 참고 문헌의 열거 순서는 인용한 순서 혹은 첫 번째 저자의 이름의 사전순으로
- 지금그때 . . . . 1 match
* 지금그때는 단지 고학년이 저학년에게 경험을 나누어주는 정도의 행사는 아니라고 생각합니다. 마치 개구리 올챙이적 시절 기억못하듯이, 그때 궁금해 했지만 지금은 왜 궁금했는지 조차 모르는 그런것, 지금과 다르게 생각했던 그시절 기억들. 그런것을 고학년도 경험을 할 수 있는 기회되지 않을까요?? 때로는 우리가 조언해 주고 있는 사람들이 가지고 있는 신선한 질문들은 자신을 자신의 일을 한번 더 돌아볼수 있게 만드는 기회를 주기도 하지 않나요?? - 이승한
- 지금그때2003/계획 . . . . 1 match
ost 진행시간이 30분 정도면 "지나치게" 짧다. market place에 질문 적기는 원래 ost가 진행되는 도중에 아무나 적을 수 있다. 안 1번을 하되 OST 진행 시간을 45분 이상으로 늘리는 것이 좋겠다. --JuNe
- 지금그때2006 . . . . 1 match
* [http://165.194.17.5/~leonardong/register.php?id=nowthen2006 지금그때2006참가신청] 받기
- 지식소화전패턴 . . . . 1 match
[지식샘패턴]으로 [페이지이름바꾸기] 했습니다. --DeokjuneYi
- 창섭 . . . . 1 match
[http://165.194.17.15/pds/200232993449/SSHWinClient-3.1.0-build235.exe ssh 접속프로그램][[BR]]
- 최소정수의합/김태훈zyint . . . . 1 match
if(sum >= 3000) break;
- 최소정수의합/남도연 . . . . 1 match
cout<<"n="<<n<<"sum="<<sum<<endl;
- 최소정수의합/이태양 . . . . 1 match
if(sum>=3000){
- 캠이랑놀자/아영/숙제1 . . . . 1 match
즉석해서 써봅니다. editPlus가 안되서 ,ㅠ cmd로 실행한거 모아볼께용^^
- 캡스톤설계실 . . . . 1 match
* 헐 이런 용도로 위키가 만들어지다니... ㅋㅋ
- 컴공과프로그래밍경진대회 . . . . 1 match
중앙대학교 컴퓨터공학과 내의 프로그래밍 경진 대회.
- 코드레이스출동/CleanCode . . . . 1 match
* Delimeter로 분리
- 토이/메일주소셀렉터/김남훈 . . . . 1 match
결국 생각을 해보니 이것 역시 FSA 라서 그저 lex 로도 해결 된다는 깨우침을 얻었음.
- 통계청 . . . . 1 match
e 정부의 사업의 일환으로 2000년 이후 통계청의 정보를 web 에서 열람할수 있다.
- 튜터링/2013/고딩같은어셈 . . . . 1 match
* 서울어코드 사업에서 진행하는 튜터링 프로그램에 참가해 튜터링 활동을 진행
- 파스칼삼각형/김남훈 . . . . 1 match
(else (+ (pascal (- r 1) c)
- 파스칼삼각형/손동일 . . . . 1 match
cout << "숫자를 입력 하세요~ " << endl;
- 파스칼삼각형/임다찬 . . . . 1 match
if(i>=1){
- 파일 입출력_2 . . . . 1 match
fclose(fpt); // fopen 과 fclose 세트로 사용!
- 파킨슨의 법칙 . . . . 1 match
|| http://www.aladdin.co.kr/Cover/8950905310_1.gif ||
- 페이지지우기 . . . . 1 match
'''If you want to delete this page, YouNeedToLogin.''' 현재 ZeroWiki 에서 Delete''''''Page 권한은 계정 관리자가 갖고 있습니다. 로그인한 사용자도 그 권한을 사용할 수 있도록 한 단계 더 공개하는건 어떨까요? security.py 에서 {{{~cpp self.delete = self.delete and user.valid}}} 이 한 라인을 추가하면 됩니다. --["데기"]
- 프로그래머를위한공부론 . . . . 1 match
[http://www01.zdnet.co.kr/news/column/hotissue/0,39024748,10049399,00.htm 어떻게 공부할까? 프로그래머를 위한 「공부론」]
- 프로그래밍가르치기 . . . . 1 match
후배들에게 프로그래밍을 가르치기
- 프로그래밍실습(2) . . . . 1 match
[프로그래밍실습(2)/20051025]
- 프로젝트분류 . . . . 1 match
위키위키를 이용해서 진행하고 있는, 또는 완성된 프로젝트들.
- 피보나치/S.S.S . . . . 1 match
if __name__=='__main__':
- 피보나치/SSS . . . . 1 match
if (count == 0)
- 피보나치/김민경 . . . . 1 match
if (temp==n) printf ("%d\n",check1);
- 피보나치/유선 . . . . 1 match
printf("숫자를 몇개 출력할까요? 3이상으로 선택해 주세요");
- 피보나치/이태양 . . . . 1 match
if(i==n)
- 피보나치/정수민,남도연 . . . . 1 match
if ( n > m ) {
- 피보나치/태훈 . . . . 1 match
if __name__ == '__main__':
- 하얀가면의제국 . . . . 1 match
대한민국은 지리적으로도 여러 나라 사이에 있다. 그렇다고 다른 나라에 맞설 힘이 대단한 것도 아니다. 따라서 외세에 기대거나, 극명히 외세에 저항하기 쉽다. 이는 개인에게도 해당한다. 동경하거나 저항하거나. 그리고 동경하는 무리가 더 많다.
- 형노 . . . . 1 match
* [(zeropage)2005리눅스프로젝트]
- 홍길동 . . . . 1 match
|| 스터디 || 프로젝트 || 게임 ||
Found 3075 matching pages out of 7555 total pages (3660 pages are searched)
You can also click here to search title.