- Linux/필수명령어/용법 . . . . 385 matches
사용자를 새로 등록한다.
이것은 슈퍼 유저만이 사용할 수 있다. 명령을 입력하면 로그온 이름 등을 차례로 물어오며, 그에 따라서 알맞게 입력해 나가면 된다.
- Full name: Park Chan Wook ,,사용자 전체 이름을 입력
- GD [100]: ,,정해주는 값을 그냥 사용한다.
그외에도 홈 디렉토리에 사용하는 셸 등을 계속 물어오는데, 대괄호 속에 내정된 것을 그냥 사용하고자 한다면 엔터키만 누르면 된다. 패스워드 등을 입력하고 나면 지금까지 입력된 정보를 보여주고, 몇 가지 생성 작업을 화면으로 보여준 후 작업을 종료한다.
-m : 작업이 완결되면 사용자에게 메일을 보낸다.
명령은 기본적으로 표준 입력 장치를 통해서 받으며, ^D로 입력을 종료한다. 리다이렉션을 사용하여 다른 파일의 내용을 사용할 수 있다.
/etc/at.allow 파일이 있다면 이 파일에 명단이 있는 사용자만이 at 명령을 사용할 수 있다. /etc/at.allow 파일이 없다면 /etc/at.deny 파일을 찾는다. 이 파일에 목록이 있는 사용자는 at 명령을 사용할 수 없다. 두 파일 모두 찾지 못한다면 오로지 슈퍼 유저만이 at 명령을 사용할 수 있다. 그리고 /etc/at.deny 파일이 비어 있다면 모든 사용자가 at 명령을 사용할 수 있다.
시간을 지정할 때 상당히 다양한 방법을 사용할 수 있다. hhmm 혹은 hh:mm 형태도 가능하며, noon, midnight이나 오후 4시를 의미하는 teatime이라고도 할 수 있다. 오전 오후를 쉽게 구분하려면 am pm 문자를 추가해도 된다. 이미 지나간 시간이라면 다음 날 그 시간에 수행될 것이다. 정확한 날짜를 지정하려면 mmddyy 혹은 mm/dd/yy 아니면 dd.mm.yy 형태 중 선택하라.
현재부터 얼마의 시간이 경과한 후에 수행할지를 지정하려면 기호를 사용하라. 이 기호뒤에 숫자를 명시하고, 다시 뒤에 그 숫자의 단위가 무엇인지 지정하면 된다.
사용예
사용예
이것은 리눅스의 Boume 셸이다. sh를 사용하면 sh가 bash를 호출하여 실행한다. bash를 직접 사용하지 말고 sh를 사용하도록 하라.
유닉스 셸은 사용중이라도 주기적으로 전자우편의 수신 여부를 점검한다. 만일 사용자가 전자우편이 도착하는 즉시 알고자 한다면 biff를 사용하여 그것을 지시할 수 있다. 또는 언제라도 그 기능을 해제할 수도 있다. biff는 인수없이 사용되면 현재 어떤 상태로 되어 있는지 보여준다. 기능 설정과 해제 여부는 y 혹은 n 인수를 주어서 결정한다.
사용예
인수를 하나만 준다면 그 숫자는 연도를 의미하는 것으로 간주된다. 두 개의 숫자를 준다면 앞의 것은 월, 그 다음은 연도를 의미하는 것이 된다. 우리의 습관과는 다른 방법을 사용한다. 아무 인수도 주어지지 않으면 이번달의 달력을 표시한다. 연도를 표기할 때는 서기를 완전히 표기해야 한다. 예를들어 97은 1997년이 아니라 서기 97년의 달력을 출력할 것이다.
사용예
cat은 catenate(사슬로 잇다. 연결하다)에서 이름이 유래한다. 이것은 파일의 내용을 화면에 출력하는 데 사용되기도 하며 파일을 다른 곳에 순차적인 스트림으로 보내기 위해 사용된다.
-A : -vET 옵션을 사용한 것과 같은 효과를 가진다.
사용예
- MoreEffectiveC++/Efficiency . . . . 162 matches
DeleteMe ) 해당 스크립트의 뒷부분이 제대로 이해가 안간다. 당연한 내용을 꼬아 쓴것 같은데, 차후 수정 시도 하겠음 --상민
80-20 규칙은 수많은 기계에서, 운영체제(Operating System)에서, 그리고 어플리케이션에서 적용된다. 80-20 규칙은 단지 재미있는 표현보다 더 많은 의미가 있다.;그것은 광범위하고, 실질적인 개념이 필요한 시스템의 성능(능률)에 개선 대한 기준점을 제시한다.
많은 사람들이 병목현상(bottleneck)에 관한 해결책에 고심한다. 경험에 따른 방법, 직관력, tarot 카드이용(운에 맏기기) 그리고 Ouija(점괘를 나타내는 널판지의 상표명, 즉 점보기) 보드를 사용 하기도 하고, 소문이나 잘못, 올바르지 않은 메모리 할당, 충분하지 않은 최적화를 한 컴파일러, 혹은 치명적인 순환 구문을 만들어내기 위해 어셈블리 언어를 사용한 돌대가리 메니저들의 메니저들. 이러한 사정들은 일반적으로 멸시의 비웃음을 동반하고, 그들의 예언은 솔직히 잘못된 것이다.
(DeleteMe 이후 영어 해석이 너무 모호하다. 사실 내용을 잘 이해를 못했다. 차후 고치자. 이 전도 마찬가지)[[BR]]
대부분 프로그래머들은 그들의 프로그램에 관한 특성에 관하여 멍청한 직관력을 가지고 있다. 왜냐하면 프로그램 성능의 특징은 아주 직관적이지 못하다. 결과적으로 남에 눈에는 띄지 않고 말할수 많은 노력이 성능 향상을 위해 프로그램의 관련된 부분에 쏟아 부어 진다. 예를들어서 아마, 계산을 최소화 시키는 알고리즘과 데이터 구조가 프로그램에 적용 되다. 그렇지만 만약에 입출(I/O-bound)력 부분 적용된다면 저것은 허사가 된다. 증가되는 I/O 라이브러리는 아마 컴파일러에 의하여 바뀐 그 코드에 의해 교체될것이다. 그렇지만, 프로그램이 CPU-bound에 대한 사용이라면 또 이건 별로 중요한 포인터(관점)이 되지 않는 것이다.
일을 할 그 부분은 실질적으로 당신의 프로그램의 20%로, 당신에게 고민을 안겨주는 부분이다. 그리고 끔찍한 20%를 찾는 방법은 프로그램 프로파일러(profiler:분석자)를 사용하는 것이다. 그렇지만 어떠한 프로파일러(profiler:분석자)도 못할일이다. 당신은 가장 관심 있는 직접적인 해결책을 내놓는 것을 원한다.예를 들자면 당신의 프로그램이 매우 느리다고 하자, 당신은 프로파일러(profiler:분석자)가 프로그램의 각각 다른 부분에서 얼마나 시간이 소비되는지에 관해서 말해줄껄 원한다. 당신이 만약 그러한 능률 관점으로 중요한 향상을 이룰수 있는 부분에 관해 촛점을 맞추는 방법만 알고 있다면 또한 전체 부분에서 효율성을 증대시키는 부분을 말할수있을 것이다.
프로파일러(profiler:분석자)는 각각의 구문이 몇번이나 실행되는가 아니면 각각의 함수들이 몇번이나 불리는거 정도를 알려주는 유틸리티이다. 성능(performance)관점에서 당신은 함수가 몇번 분리는가에 관해서는 그리 큰 관심을 두지 않을 것이다. 프로그램의 사용자 수를 세거나, 너무 많은 구문이 수행되어 불평을 받는 라이브러리를 사용하는 클라이언트의 수를 세거나, 혹은 너무 많은 함수들이 불리는 것을 세는 것은 다소 드문 일이기도 하다. 하지만 만약 당신의 소프트웨어가 충분이 빠르다면 아무도 실행되는 구문의 수에 관해 관여치 않는다. 그리고 만약 너무 느리면 반대겠지. (이후 문장이 너무 이상해서 생략, 바보 작성자)
몇번이나 구문이 실행되는가, 함수가 실행되는가는 때때로 당신의 소프트웨어 안의 모습을 이야기 해준다. 예를들어 만약 당신이특별한 형태의 객체를 수백개를 만든다고 하면, 생성자의 횟수를 세는것도 충분히 값어치 있는 일일 것이다. 게다가 구문과, 함수가 불리는 숫자는 당신에게 직접적인 해결책은 제시 못하겠지만, 소프트웨어의 한면을 이해하는데 도움을 줄것이다. 예를들어서 만약 당신은 동적 메모리 사용을 해결하기 위한 방법을 찾지 못한다면 최소한 몇번의 메모리 할당과 해제 함수가 불리는것을 아게되는것은 유용한 도움을 줄지도 모른다. (e.g., operators new, new[], delete and delete[] - Item 8참고)
이런 결과들을 막는데 최선책은 당신의 소프트웨어에 가능한한 많은 데이터 들에게 프로파일을 시도하는것이다. 게다가 당신은 각 데이터들이 소프트웨어가 그것의 클라이언트들(혹은 최소한 가장 중요한 클라인트들에게라도)에게 사용방식을 잘 보여주도록 확신할수 있어야만 한다. 잘표현되는 데이터들은 얻기가 용이하다 왜냐하면 프로파일링 중에는 당신이 그들의 데이터를 사용할수 있기때문에 많은 클라이언트들이 좋기 때문이다. (뭔소리야. --;) 당신은 당신의 소프트웨어를 그들과 만나면서 조정(tuning)을 할것이고, 그것이 오직 당신이나 클라이언트들 양쪽에게 좋은 방법이다.
DeleteMe ) lazy evaluation이나 여러 용어가 마땅한 한글말이 없어서 이후 영문을 직접 쓴다. 전반적인 내용이 의미 설명을 하다. --상민
이런 같은 관점을 이제 막 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에 관해서 저런 일련의 복사와, 이동의 연산의 필요성이 없다.
지금 위에서 이렇게 접근하는 방식은 작고, 간단한 부분을 언급하는거에 불과하다 그래서, 누가 무엇을 공유했는지 알고 있고, 반환되는 값으로, 언급한 new와 복사에 추가비용되는 지출을 줄일수 있다. s1,s2가 공유하는 데이터 구조의 상태는 클라이언트들에게 명확하다. 그리고 그것은 확실히 다음에 제시될 예제같이 값을 쓰지 않고 읽기만을 요구할때는 아무런 걱정할 점이 없다.
이와 같은 구문의 사용으로, String의 convertToUpperCase 함수를 적용하면, s2의 값의 복사본을 만들어야 하고, 수정되기전에 s2에 그걸 s2의 종속되는 데이터로 만들어야 한다. convertToUpperCase 내부에 우리는 lazy 상태가 더이상 지속되지 않도록 하는 코드를 넣어야 한다.:s2가 마음대로 다룰수 있도록 s2의 공유된 값의 사본을 복사해야 한다. 반면에 만약 s2가 결코 수정되지 않을 것이라면, 이러한 s2만의 값을 복사하는 일련의 과정이 필요 없을 것이다. 그리고 s2가 존재하는 만큼 값도 계속 존재해야 한다. 만약 더 좋게, s2가 앞으로 결코 변하지 않는다면, 우리는 결코 그것의 값에 대한 노력을 할필요가 없을 것이다.
값의 공유에 관하여 좀더 자세하게 이 문제에 논의를 제공할 부분은 Item 29(모든 코드가 들어있다.)에 있다. 하지만 그 생각 역시 lazy evaluation이다.:결코 당신이 정말로 어떤것을 필요하기 전까지는 그것의 사본을 만드는 작업을 하지 않것. 일단 그보다 lazy 해져봐라.- 어떤이가 당신이 그것을 제거하기 전까지 같은 자원을 실컷 사용하는것. 몇몇 어플리케이션의 영역에서 당신은 종종 저러한 비합리적 복사의 과정을 영원히 제거해 버릴수 있을 것이다.
첫번째 operator[]는 문자열을 읽는 부분이다,하지만 두번째 operator[]는 쓰기를 수행하는 기능을 호출하는 부분이다. 여기에서 '''읽기와 쓰기를 구분'''할수 있어야 한다.(distinguish the read all from the write) 왜냐하면 읽기는 refernce-counting 구현 문자열로서 자원(실행시간 역시) 지불 비용이 낮고, 아마 저렇게 스트링의 쓰기는 새로운 복사본을 만들기 위해서 쓰기에 앞서 문자열 값을 조각내어야 하는 작업이 필요할 것이다.
이것은 우리에게 적용 관점에서 상당히 난제이다. 우리가 원하는 것에 이르기 위하여 operator[] 안쪽에 각기 다른 작업을 하는 코드가 필요하다.(읽기와 쓰기에 따라서 따로 작동해야 한다.) 어떻게 우리는 operator[]가 읽기에 불리는지 쓰기에 불리는지 결정할수 있을까? 이런 잔인한 사실은 우리를 난감하게 한다. lazy evaluation의 사용과 Item 30에 언급된 proxy 클래스(위임 클래스, DP에서의 역할과 비슷할것이라 예상) 는 우리가 수정을 위하여 읽기나 쓰기 행동을 하는지의 결정을 연기하게 한다.
lazy evaluation에서 다룰 세번째의 주제로, 당신이 많은 필드로 이루어진 큰 객체들을 사용하는 프로그램을 가지고 있다고 상상해 봐라. 그런 객체들은 반드시 프로그램이 실행때 유지되며, 나중에는 데이터 베이스 안에 저장된어진다. 각각의 객체는 각 객체를 알아볼수 있고, 유일성을 보장하는 데이터 베이스로 부터 객체를 불러올때 종류를 알아 볼수 있는, 식별자(identifier)를 가지고 있다.(OODB 인가.) :
- MoreEffectiveC++/Techniques2of3 . . . . 144 matches
Reference counting(이하 참조 세기, 단어가 길어 영어 혼용 하지 않음)는 같은 값으로 표현되는 수많은 객체들을 하나의 값으로 공유해서 표현하는 기술이다. 참조 세기는 두가지의 일반적인 동기로 제안되었는데, '''첫번째'''로 heap 객체들을 수용하기 위한 기록의 단순화를 위해서 이다. 하나의 객체가 만들어 지는데, new가 호출되고 이것은 delete가 불리기 전까지 메모리를 차지한다. 참조 세기는 같은 자료들의 중복된 객체들을 하나로 공유하여, new와 delete를 호출하는 스트레스를 줄이고, 메모리에 객체가 등록되어 유지되는 비용도 줄일수 있다. '''두번째'''의 동기는 그냥 일반적인 생각에서 나왔다. 중복된 자료를 여러 객체가 공유하여, 비용 절약 뿐아니라, 생성, 파괴의 과정의 생략으로 프로그램 수행 속도까지 높이고자 하는 목적이다.
이런 간단한 생각들의 적용을 위해서는 많이 쓰이는 자료형태를 찾아 예제삼아 보여주는 것이 이해에 도움이 도리것이다. 이런 면에서 다음의 예는 적합할 것이다.
a~e까지 모두 "Hello"라는 같은 값을 가지고 있는 다른 객체이다. 이 클래스는 참조 세기가 적용되지 않았기 때문에 모두 각각의 값을 가지고 있다. 문자열의 할당(assignment) 연산자는 아마 다음과 같이 구현되어 있을 것이다.
이러한 그림을 참조 세기에서 말하는 중복 객체에 대한 자료의 공유를 적용시킨 그림은 다음과 같을 것이다.
그리고 여기의 5에 해당 하는 숫자를 '''''Reference count''''' 라고 부른다. 혹자는 ''use count''라고 부르기도 하는데, 학술 용어의 당파에 따른거니 별 상관 안한다. 하지만 나(scott mayer) 그렇게 안부른다.
=== Implementing Reference Counting : 참조 세기 적용 ===
물론 이의 이름은 String과 다른 이름을 매겨야 하겠지만,(아마 RCString정도?) 하지만 String자체를 구현한다는 의미로 그냥 이름은 유지하고, 앞으로 말할 참조세기를 적용시킨 String 객체를 만들어 나가겠다.
data = new char[strlen(initValue) + 1]; // 새로운 값 할당(아직 참조세기 적용 x
이것으로 StringValue의 구현은 일단 끝이다. 이를 사용하는 String 객체의 구현에 들어가야 한다.
이 코드를 사용하는 상황은 다음과 같고,
여기서의 요점은 참조세기가 적용되지 않은 String 클래스보다 더 효율이 높아 진다는 점이다. 이 책 전반에 계속 언급했듯이, 생성과 파괴 같은 시간과, 공간의 많은 비용을 소모하는 식이 아닌, 해당 포인터만을 복사하므로, 일단, 생성시의 비용을 아낀다.
생성자의 손쉬운 구현같이 파괴자 구현도 그리 어려운 일이 아니다. StringValue의 파괴는, 서로가 최대한 사용하고, 값이 파괴 시점은 참조 카운터가(reference counter:이하 참조 카운터만) 1인 경우 더이상 사용하는 객체가 없으므로 파괴하도록 구성한다.
파괴자의 효율을 비교해도 역시, 마찬가지이다. delete가 불리는 시점은 해당 객체가 더 이상 필요 없을때만 제거하는 것이기 때문에 비용을 아낄수 있다.
다음과 같이 사용되며
이것의 구현은 약간은 복잡한데, 이유는 생성과 파괴가 동시에 있어야 하는 상황을 고려해야 하기 때문이다. 그래도 아직 앞으로 다루어야할 내용에 비해 상당히 간단한 편이다. 자세한 설명은 소스에 주석을 참고하라
참조세기가 적용된 문자열에 대하여 둘러 봤는데, 이번에는 배열에 관한(array-bracket) 연산자들 "[]" 이녀석들에 관해서 생각해 보자. 클래스의 선언은 다음과 같다.
(이 함수는 원래의 C++에서 배열의 사용 개념과 같이, index의 유효성을 점검하지 않는다. 이에 대한 감은은 참조 세기의 주제에 떨어져 있고, 추가하는 것도 그리 어려운일이 아니라 일단은 제외한다.)
하지만 non-const의 operator[]는 이것(const operator[])와 완전히 다른 상황이 된다. 이유는 non-const operator[]는 StringValue가 가리키고 있는 값을 변경할수 있는 권한을 내주기 때문이다. 즉, non-const operator[]는 자료의 읽기(Read)와 쓰기(Write)를 다 허용한다.
참조 세기가 적용된 String은 수정할때 조심하게 해야 된다. 그래서 일단 안전한 non-const operator[]를 수행하기 위하여 아예 operator[]를 수행할때 마다 새로운 객체를 생성해 버리는 것이다. 그래서 만든 것이 다음과 같은 방법으로 하고, 설명은 주석에 더 자세히
이런것을 해결할수 있는 방법으로는 최소한 세가지를 생각할수 있는데, '''첫번째'''는 이것을 없는걸로 취급하고, 무시 해 버리는 것이다. 이러한 접근 방향은 참조 세기가 적용되어 있는 클래스 라이브러리에 상당한 괴로움을 덜어 주는것이다. 하지만 이러한 문제를 구현상에서 완전히 무시할수는 없는 노릇이다. '''두번째'''로 생각할수 있는 방법은 이러한것을 하지 말도록 명시하는 것인데, 역시나 복잡하다. '''세번째'''로, 뭐 결국 제거야만 할것이다. 이러한 분제의 제거는 그리 어렵지는 않다. 문제는 효율이다. 이런 중복에 관련한 문제를 제거하기 위해서는, 새로운 자료 구조를 만들어 내야하고, 이것의 의미는 객체간에 서로 공유하는 자료가 줄어 든다는 의미이다. 즉, 비용이 많이 들어간다. 하지만 어쩔수 없지 않을까?
- MoreEffectiveC++/Miscellany . . . . 131 matches
(작성자주:제목은 직역보다, 전체 내용으로 결정했다.)
좋은 소프트웨어는 변화를 잘 수용한다. 새로운 기능을 수용하고, 새로운 플랫폼에 잘 적용되고, 새로운 요구를 잘 받아 들이며, 새로운 입력을 잘 잡는다. 이런 소프트웨어는 유연하고, 강하고, 신뢰성있고, 돌발 상황(사고)에 의해 죽지 않는다. 이런 소프트웨어는 미래에 필요한 요소를 예상하고, 오늘날 구현시에 포함시키는 프로그래머들에 의해서 디자인된다. 이러한 종류의 소프트웨어는-우아하게 변화하는 소프트웨어- ''program in the future tens''(매래의 프로그램:이하 영문 직접 사용)을 감안하는 사람들이 작성한다.
''program in future tense''는, 변화의 수용하고, 준비한다. 라이브러에 추가될 새로운 함수, 앞으로 일어날 새로운 오버로딩(overloading)을 알고, 잠재적으로 모호성을 가진 함수들의 결과를 예측한다. 새로운 클래스가 상속 계층에 추가될 것을 알고, 이러한 가능성에 대하여 준비한다. 새로운 어플리케이션에서 코드가 쓰이고, 그래서 새로운 목적으로 함수가 호출되고, 그런 함수들이 정확히 동작을 유지한다. 프로그래머들이 유지 보수를 할때, 일반적으로 원래의 개발자의 영역이 아닌, 유지 보수의 몫을 안다. 그러므로, 다른 사람에 의해서 소프트웨어는 이해, 수정, 발전의 관점에서 구현하고 디자인된다.
이런 좋은 소프트웨어를 만들기 위한 방법으로, 주석이나, 기타 다른 문서 대신에 C++ 내부에 디자인으로 구속해 버리는 것이다. 예를들자면 '''만약 클래스가 결코 다른 클래스로 유도되지를 원치 않을때''', 단시 주석을 헤더 파일에 넣는 것이 아니라, 유도를 방지하기 위하여 C++의 문법을 이용한 기술로 구속 시킨다.;이에 대한 방법은 '''Item 26'''에 언급되었다. 만약 클래스가 '''모든 인스턴스를 Heap영역에 생성시키고자 할때''', 클라이언트에게 말(문서)로 전달하는 것이 아니라. '''Item 27'''과 같은 접근으로 제한 시켜 버릴 수 있다. 만약 클래스에 대하여 복사와 할당을 막을려고 할때는, 복사 생성자와 할당(assignment) 연산자를 사역(private)으로 만들어 버려라. C++은 훌륭한 힘과, 유연성, 표현성을 제공한다. 이러한 언어의 특징들을 당신의 프로그래밍에서 디자인의 정책을 위해서 사용하라.
어떤이가 무언가를 '''할수있다는것''' 알게되면 그들을 그것을 '''할것이다.''' 그들은 예외를 던질 것이다. 그들은 그들 스스로에게 객체를 할당할 것이다. 그들은 값을 제공하기전에 객체를 사용할 것이다. 그들은 객체를 제공하겠지만, 결코 사용하지 않는다. 그들은 커다란 값을 제공할 것이다. 그들은 아주 작은 값을 제공할 것이다. 그들은 null 값을 제공할 것이다. '''일반적으로 만약 컴파일이 되면 어떤이가 그것을 할것이다.''' 결과적으로 당신의 클래스를 정확히 사용하는건 쉽게, 이상하게 사용하는건 어렵게 만들어라. 클라이언트가 실수를 하도록 해라 그리고 당신의 클래스들이 그러한 에러들을 방지하고, 찾고, 수정할수 있게 만들어라. (예를들어 Item 33 참고)
당신의 코드를 변화가 필요할때, 그 효과를 지역화(지역화:localized) 시키도록 디자인 해라. 가능한한 캡슐화 하여라:구체적인 구현은 private 하라. 광범위하게 적용해야 할곳이 있다면 이름없는(unamed) namespace나, file-static객체 나 함수(Item 31참고)를 사용하라. 가상 기초 클래스가 주도하는 디자인은 피하라. 왜냐하면 그러한 클래스는 그들로 부터 유도된 모든 클래스가 초기화 해야만 한다. - 그들이 직접적으로 유도되지 않은 경우도(Item 4참고) if-than-else을 개단식으로 사용한 RTTI 기반의 디자인을 피하라.(Item 31참고) 항상 클래스의 계층은 변화한다. 각 코드들은 업데이트 되어야만 한다. 그리고 만약 하나를 읽어 버린다면, 당신의 컴파일러로 부터 아무런 warning를 받을수 없을 것이다.
이와 같은 내용들을 아무리 반복해서 말하곤 하지만, 대부분의 프로그래머들은 현재의 시류를 그대로 고집한다. 훌륭한 안목의 C++ 전문가가 말하는 충고에 관해서 생각해라.
DeleteMe 전체적으로 모호가 아니다, 뒤에 내용을 봐야 앞에 내용이 이해가 감.
미래의 시류로 생각하는 관점은 완전히 다르다. 지금 어떻게 클래스를 사용하느냐를 묻는것 대신에, '''어떻게 클래스를 디자인 하느냐를 묻는다.''' 미래 지향적 생각으로는 이렇게 말한다. 만약 기초 클래스로 사용된 클래스가 '''디자인''' 된다면 그 클래스는 가상 파괴자를 가져야 한다. 그러한 클래스는 지금과 미래 모두 정확히 동작해야 한다. 그리고 그들오 부터 클래스들이 파생될때 다른 라이브러리의 클래스에게 영향을 끼쳐서는 안된다. ( 최소한, 파괴자로 인한 논란 만큼, 영향이 없어야 한다. 추가적인 변화가 클래스에 필요하면 다른 클라이언트들오 아마 영향을 받을 것이다.)
상업용 클래스 라이브러리(C++표준 라이브러리 상의 string 스펙의 날짜를 앞당기려는 회사)는 가상 파괴자를 가지고 있지 않은 sting클래스를 포함한다. 그 벤더의 설명은?
확실히 vtbl 문제는 합법적인 접근이다. (Item 24참고) 대다수 String클래스의 구현에서 오직 하나의 char*를 각각의 String 객체가 가지고 있다. 그래서 각 String객체에 추가되는 vptr도 두배의 양을 차지한다. 허용하지 않으려는 이유는 이해하기 쉽다. String같은 클래스를 무겁게 사용하면 눈에 띠는 성능 저하가 있다. 앞서 언급한 경우 클래스당 성능 저하는 약 20%정도를 가지고 온다. (Item 16참고)
어떤 것이 더 많은 문제를 일으키는 것으로, 밴더들의 주목을 받고 있을까? "우리는 String*을 사용하는 목적을 가지지 않는다. 그래서 이는 별 문제가 되지 않는다." 그건 아마 사실일 것이다. 하지만 그들의 String클래스는 수많은 개발자들이 사용가능한 것이다. 수많은 개발자들이 C++의 수준이 제각각이다. 이러한 개발자들이 String상에서의 비가상 파괴자(no virtual destructor)를 이해할까? 그들이 비가상 파괴자를 가진 String때문에 String으로 유도된 새로운 클래스가 모험 비슷한 것을 알고 있을까? 이런 벤더들은 그들의 클라이언트들이 가상 파괴자가 없는 상태에서 String*를 통하여 삭제가 올바르게 작동하지 않고, RTTI와 String에 대한 참조가 아마 부정확한 정보를 반환한다는걸 확신시킬까? 이 클래스가 정확히 쓰기 쉬운 클래스일까? 부정확하게 쓰기 어려운 클래스일까?
대안으로 C++을 사용할때 유도를 제한해 버리는 것이다. Item 26에서 어떻게 객체를 heap에 만들거고 auto_ptr객체로 heap객체를 조정하는 방법에 관해서 언급하였다. String을 위한 인터페이스 생성은 아마 독특하고 불편한 다음과 같은 문법 을 요구한다.
하지만 정확하지 않게 동작하는 유도된 클래스의 사용을 억제하는 것은 문법적으로 상당히 불편함을 낳는다. (String에서 이런 문법적으로 불편한 면이 그리 강조되지 않다. 그렇지만 다른 클래스에서 이러한 문법적인 불편함을 따지는 면이 중요하다.)
물론, 필요하다면 현재 감안하는 생각으로 접근한다. 당신이 개발중인 소프트웨어는 현재의 컴파일러에서 동작해야만 한다.;당신은 최신의 언어가 해당 기능을 구현할때까지 기다리지 못한다. 당신의 현재 가지고 있는 언어에서 동작해야 하고. 그래서 당신의 클라이언트에서 사용 가능해야 한다.;당신의 고객에게 그들의 시스템을 업그레이드 하거나, 수행 환경을(operating environment) 바꾸게 하지는 못할것이다. 그건은 '''지금''' 수행함을 보증해야 한다.;좀더 작은, 좀더 빠른 프로그램에 대한 약속은 라이프 사이클을 줄이고, 고객에게 기대감을 부풀릴 것이다. 그리고 당신이 만드는 프로그램은 '''곧''' 작동해야만 한다. 이는 종종 "최신의 과거"를 만들어 버린다. 이는 중요한 속박이다. 당신은 이를 무시할수 없다.
* 어떤 부분이 '''현재'''사용할수 없더라도, 완전한 클래스를 제공하라. 새로운 요구가 당신의 클래스를 만들게 할때, 당신은 새로운 클래스를 수정하거나, 과거로 돌아갈 일이 없을꺼다.
* 당신의 인터페이스에게 일반적인 기능을 제공하고, 에러를 방지하도록 디자인 해라. 부정확하게 사용하기 어렵게 하고, 정확하게 사용하기 쉽게 만들어라. 예를 들어서 클래스에 대한 복사나 할당에 대한 연산자를 없애서, 복사, 할당을 못하게 하라. 부분적인 할당에 대하여 옙아하라. (Item 33참고)
* 만약, 당신의 코드를 구현 (generalize:일반화) 하기 위해서 큰 제한사항이 없다면, 구현(generalize:일반화) 해라. 예를들어서, 당신이 tree 검색 알고리즘을 작성하는 중이라면, 사이클이 없는 그레프에 대해 적용 시킬수 있는 일반화에 대한 궁리를 해라.
미래를 생각하는 것은 당신의 코드에 대한 재 사용성을 늘리고, 유지보수를 쉽게하며, 소프트웨어를 견고하게 만든다. 그리고 변화하는 환경에 우아하게 대처할 것이 확실하다. 미래에 대한 대처는 반드시 현재의 생각과 균형을 이루어야만 한다. 많은 프로그래머들이 현재 이외에는 생각을 하지 않는다. 하지만, 그래서 그들은 구현과 디자인에 긴 시각을 포기해야 한다. 다르게 하여라. 거부해라. 미래를 생각하는 프로그램을 만들어라.
'''두번째''' 문제는 진짜 프로그래머들이 이와 같은 코드를 쓴다는 것이다. 특별히 C++로 전향한 C프로그래머들에 경험에서 보면, 포인터를 통한 객체의 할당은 그리 흔하지 않은것도 아니다. 그러한 경우는 이성적인 생각으로 취한 할당같이 보인다. Item 32의 촛점중, 상속 관계 상에서 우리의 클래스는 정확히 사용하기 쉽고, 부정확하게 사용하기 어렵게 해야 한다고 언급했다.
- 1002/Journal . . . . 115 matches
추후 ["Refactoring"] & 다른 위키 페이지에 해당 지식 분양용.
* 내용설명 관련 -> 1차적으로 이해를 위한 TOC 작성. - O
* 경험 내 적용 거리
* index card 내용 정리하기
* 전체 책 내용에 대한 Summary 가 TOC 로 조직적이라는 점. (이번에 TOC 를 준비 안했다.)
* 구현 경험이 풍부하다는 점. 해당 책 내용에 대해 코드로 예를 들어달라면 들어줄 수 있을정도. (나는 해석부분에 대한 1차 해석에서부터 잘 하지 못함)
* 다른사람들이 '나'로부터 뭔가 유용한점을 얻기가 쉽지 않겠다는 생각이 들게 되다. 뭐, 의외의 오해로 가능할지도. 해당 말에 대한 가치는 듣는 사람들이 만들어내니까.
자신이 좀 창피하거나 소위 '쪽팔리는' 일에 대해서 해당 내용을 안써버릴 수도 있다.
도서관에서 이전에 절반정도 읽은 적이 있는 Learning, Creating, and Using Knowledge 의 일부를 읽어보고, NoSmok:HowToReadaBook 원서를 찾아보았다. 대강 읽어봤는데, 전에 한글용어로는 약간 어색하게 느껴졌던 용어들이 머릿속에 제대로 들어왔다. (또는, 내가 영어로 된 책을 읽을때엔 전공책의 그 어투를 떠올려서일런지도 모르겠다. 즉, 영어로 된 책은 약간 더 무겁게 읽는다고 할까. 그림이 그려져 있는 책 (ex : NoSmok:AreYourLightsOn, 캘빈 & 홉스) 는 예외)
* 왜 이런식으로 읽을까 하는 생각을 해보았는데, 영어로 된 책을 읽을때는 주로 문제해결을 위해 읽을때가 많아서 그런것 같다. (속칭 고등학교 영어시험용 읽기) 빨리 읽으려고 개인적인 의역을 너무 오용하는것 같기도 하다. 그리고, 단어를 습득하는데 좀 더 민감해질 필요가 있을 것 같다. (여러번 읽기 등) Chapter 7,8 읽는데 모르거나 뜻을 대강만 알고있어서 이뜻인지 저뜻인지 애매해했던 단어들 합쳐보니 230개정도 된다. 현재 영어수준은 중학교 1학년 수준정도인것 같다.
* 발제한 사람들 중심으로 발제자가 해당 내용 정리.
* 이번에 발제를 상당히 잘했다고 생각되는 사람들을 보니, 한명은 적어도 일주일전부터 준비했고, 한명은 해당 챕터를 3-4번정도 읽었다고 한다. 그리고 그 사람들이 이야기할 수 있을 정도가 어느정도이냐면, 해당 예제상황에 대해 적절하게 자신의 예로 말할 수 있을정도이거나, 또는 요약한 내용을 거의 보지 않고도 이야기할 수 있는 수준이였다. 두명의 경우 외부 자료를 찾아보기도 했다.
* 2학년, 3학년들에 대해 좀 더 실용적인 RT로 한다면, 해당 프로그래밍 언어에 대한 RT를 할 수 있을것도 같다. (노트북 2대정도 이용, 사람들이 다같이 둘러서 보는..)
* 처음 프로그래밍을 접하는 사람에게는 전체 프로젝트 과정을 이해할 수 있는 하루를, (이건 RT 보단 밤새기 프로젝트 하루짜리를 같이 해보는게 좋을 것 같다.) 2-3학년때는 중요 논문이나 소프트웨어 페러다임 또는 양서라 불리는 책들 (How To Read a Book, 이성의 기능, Mind Map 이나 Concept Map 등)을 같이 읽고 적용해보는 것도 좋을것 같다.
* 쓰다보니 책 자체에 대한 내용이 빠졌군. -_-
* Efficiency : Effectivily - 내가 발표했었던 7장의 그 예제가 가장 중요한 예제중 하나였다고 Comment 에 써있었던걸로 기억하는데.. 생각해보면 내가 발제할 부분 내용 참 재미있는 부분이였는데, 제대로 발제 못한게 참 사람들에게 죄송스럽다.
비어있어야만 유용한것들이 있으니. 빨리 정리되어버려야 할 것들.
상단의 클래스들은 하단의 클래스들을 이용하는 식이다.
그림을 보고 나니, Inheritance 나 Delegation 이 필요없이 이루어진 부분이 있다는 점 (KeywordGenerator 클래스나 BookSearcher, HttpSpider 등) Information Hiding 이 제대로 지켜지지 않은것 같다는 점, (Book 과 관련된 데이터를 얻고, 검색하여 리스트를 만들어내는 것은 BookMapper 에서 통일되게 이루어져야 한다.) 레이어를 침범한것 (각각의 Service 클래스들이 해당 로직객체를 직접 이용하는것은 그리 보기 좋은 모양새가 아닌듯 하다. 클래스 관계가 복잡해지니까. 그리고 지금 Service 가 서블릿에 비종속적인 Command Pattern 은 아니다. 그리고 AdvancedSearchService 와 SimpleSearchService 가 BookMapper 에 촛점을 맞추지 않고 Searcher 클래스들을 이용한 것은 현명한 선택이 아니다.)
구조를 살피면서 리팩토링, KeywordGenerator 클래스와 HttpSpider 등의 클래스들을 삭제했다. 테스트 96개는 아직 잘 돌아가는중. 리팩토링중 inline class 나 inline method , extract method 나 extract class 를 할때, 일단 해당 소스를 복사해서 새 클래스를 만들거나 메소드를 만들고, 이를 이용한뒤, 기존의 메소드들은 Find Usage 기능을 이용하면서 이용하는 부분이 없을때까지 replace 하는 식으로 했는데, 테스트 코드도 계속 녹색바를 유지하면서, 작은 리듬을 유지할 수 있어서 기분이 좋았다.
- MoreEffectiveC++/Techniques1of3 . . . . 111 matches
가상 생성자, 이것에 관해서 생각해 보기는 좀 생소하다. 사실 가상 함수를 부를려면, 객체에대한 참조나, 포인터를 가지고 있어야 하는데, 생성할때 부터 가상(virtual) 함수를 사용한다? 좀 이상하지 않은가? 어떨때, 어떻게 이 '''가상 생성자''' 라는걸 써먹을수 있을꺼?
NewsLetter 객체는 아마 디스크에서 자료를 적재할 것이다. NewsLetter가 디스크에서 자료를 가지고 보여주기 위해 istream을 사용해서 NewsLetter를 구성할 객체들을 생성한다고 가정한다면 다음과 같은 코드들을 대강 만들수 있는데
// 형을 가리는 작업 없이 그냥 clone을 이용해 계속 복사해 버리면 각 형에 알맞는 복사
하지만 출력해야할 스트림 객체가 righ-hand 객체라는것이 사용자 입장에서 불편하게 만든다. 우리가 보통 사용하는 것처럼 스트림 객체에 출력할 객체를 넣는 다는 개념이 적용되지 않는 것이리라. 하지만, 전역 함수나 friend함수를 이용해서 구현한다면 더이상 가상함수로 구현할수가 없게 된다. 여기서의 방법이 비멤버 함수를 이용하는 것이다.
비멤버 함수의 가상(virtual)관련 사용에 대하여 더 다루자면 내용이 복잡해 진다. 이에 대한 관련 사항은 Item 31을 참고하라
자 지금까지 객체에 대한 이야기로 당신은 미칠 지경에 빠졌을 꺼다. 게다가 이것은 당신을 혼란에 빠트릴 수준까지 왔을 것이다. (첫줄만 직독직해.) 예를들어서 당신의 시스템에 프린터가 하나 밖에 없을때 프린터를 대변하는 객체의 숫자를 하나로 제한해야 하지 않을까? 아니면 하나의 파일에 대하여 16개의 파일 접근자만 허용할때 따위 같은거 말이다. 여기서는 그 해법에 관해서 생각해 본다.
* 작성자주 : 이 부분은 Singleton 패턴과 연관해서 생각하면 재미있을 것 같다. Singleton 패턴이 DP에 논의될때 이것을 감안 안한것이 아쉽다. 1995년에 발간이라 STL도 제대로 다루지 않았고, C++의 기본적인 문법을 이용해 구현하였다. MEC++는 Techniques 부분은 C++의 문법과 개념을 극한으로 쓴다는 느낌이 든다.
=== Allowing Zero or One Objects : 0 혹은 하나의 객체 만을 허용하는 방법 ===
// 객체의 사용권한을 부여 하는 역할을 한다.
클라이언트 입장에서는 이렇게 사용하면 된다.
하지만 이렇게 구현시에는 thePrinter가 "'''전역 공간을 사용해야 한다.'''" 것으로 코드를 약하게 만든다. 알다 시피, 전역 공간의 사용은 되도록이면 피해야 하는 방법이며, thePrinter를 Printer클래스 내부에 숨기기를 추천하다. thePrinter를 Printer클래스 내부 메소드로 넣어 버리고, friend를 삭제해 보자.
그리고 이를 사용하는 클라이언트 측에서는 다음과 같은 방법으로 사용하면 되겠다.
전역 공간 사용에 대한 문제의 해결책의 또다른 접근 방법이라고 한다면, name space를 사용하는 것이다. 다음과 같이 단순히 PrintingStuff name space로 묶어 버린다.
물론 using 키워드를 사용해서 해당 이름을 자유롭게 사용할수 잇다.
thePrinter().reset(); // 그리고 사용하는 과정
thePrinter 를 적용할때 두가지 생각해야할 미묘한 문제점이 있다.
'''첫번째'''로 만들어지는 객체의 위치이다. 위의 제시된 두가지의 방법에서, Printer 정적(staitc) 객체가 하나는 friend로 클래스의 제어권을 획득한 함수 내부에 있고, 또 하나는 클래스 멤버 메소드 내부에 있다. 함수에 있는 경우에는 정적(static) 객체는 항상 만들어져 있다. 이 의미는 해당 코드의 프로그램이 시작될때 부터 아예 객체가 만들어 진다는 의미이다. 즉, 한번도 그 객체를 사용하지 않아도, 객체는 이미 만들어져 비용을 지출하게 한다. 반면에, 함수 멤버 메소드 내부에 정적(static)객체를 만들 후자의 경우에는 객체를 만드는 역할을 하는 메소드인 Printer::thePrinter 가 제일 처음 호출될때 객체가 생성된다. 이것은 C++에서 "사용하지 않는 객체에 대한 비용은 지불하지 않는다."의 설계 다소 복잡한 이념에 근간을 둔 개념이다. 그리고 이러한 복잡한 개념은 당신을 해깔리게 만든다.
다음과 같은 코드의 함수는 매우 짧다. 이런 짧은 함수는 함수보다 inline 시켜서 속도를 높이는 것이 더 효과적이다. 하지만 그럴수가 없다. 왜 그런가 하면, inline의 의미는 정확히 해당 함수가 쓰이는 코드를 현재 함수의 몸체로 교체해 버리는 역할이다. 그런게 이렇게 할경우, 위와 같은 함수는 static객체의 처리에서 의문이 생긴다. 해당 함수가 호출된 곳을 위와 같은 함수 몸체로 교체하면, 각 교체 부분은 전부 독립적인 static 인자를 부여 받는 셈이 되어 버린다. 그래서 정적 인자를 쓴 함수는 inline을 시키지 못하며, 이런 정적 인자의 사용에 따라 일어나는 의문을 internal linkage를 가진 문제 라고 한다. DeleteMe) 날림 요약 수정 필요
자, 똑똑한 사람 이라면 당연히, 지금까지의 코드에서 의문점과 문법에 대한 의아함을 일으 킬수 있다. thePrinter는 둘다 내부에 있는 static 객체의 참조를 반환하는데, 이 "static 객체는 해당 함수,메소드의 영역(scop) 내부에서 쓰여야지 외부에서 쓰이면 안되지 않는가?" 라는 의문이 그것이다. 즉, 클라이언트 입장에서 이들 객체는 숨겨져(hidden)있는 존재이고, 이것을 사용하는 것은 잘못된 방법이다. 라고 말할수 있겠는데, 그래서 아마 당신은 다음과 같이 객체의 숫자를 세고, 제한된 객체의 수보다 더 많은 객체를 사용시 예외를 발생시켜서 문제를 해결하는 것이 더 좋은 방법이라 말할 것이다.
Printer(const Printer& rhs); // 프린터는 1개만 허용하며, 사본도 허용 하지
- EffectiveC++ . . . . 105 matches
DeleteMe #define(preprocessor)문에 대해 const와 inline을(compile)의 이용을 추천한다. --상민
int scores[NUM_TURNS]; // 상수의 사용.
#define -> inline (매크로 사용시)
아직까지 유용하게 사용되므로, 안쓸필요는 없겠죠? [[BR]]
매크로는 말 그대로 치환이기 때문에 버그 발생할 확률이 높음. 상수선언이나 함수선언같은 경우는 가급적 const 나 inline으로 대체하는게 좋겠지. (으.. 그래도 실제로 짤때는 상수 선언할때는 #define 남용 경향이..[[BR]]
* ''new를 호출할때 []를 이용했다면 delete의 호출시에도 []를이 용한다. 간단간단!''
typedef를 사용했을때의 delete.. --? : 새로운 문제 제기
나중에 메모리를 해제하기 위해서 소멸자에서 delete를 사용한다.[[BR]]
set_new_handler를 이용한 memory 할당 실패처리.[[BR]]
쓰지 않는 것일까? --a 사실 몰랐는데, 일반 적은 new (default new연산자)를 사용하게 되면 할당된 블록의 [[BR]]
DeleteMe 그런 의미보다 String 이나, linked list 혹은 기타 여러 기타 데이터 형으로 많은 수의 할당을 통해서 쓸수 있는 인자의 경우에는 사용자 정의 new를 이용하여 가능하면 공용 메모리 공간에서 활동시켜서, 메모리 할당 코드를 줄이고 (메모리 할당의 new와 alloc는 성능에 많은 영향을 미칩니다.) 메모리를 줄이고 효율적 관리를 할수 있다는 의미 같습니다. 그런 데이터 형으로 쓰이는 인자가 아닌 한 app안에서 단 한번만 사용되는 클래스라면 구지 new를 성의해서 memory leak의 위험성을 증가 시키는 것보다, 일반적인 new와 생성자 파괴자의 규칙을 쓰는것이 좋을겁니다. --상민
1. 초기화 리스트를 사용한다.
두번째는 실용주의(효율성) 차원에서 초기화 리스트를 선호 한다는 것이다. [[BR]]
* 가능한 경우 항상 멤버 초기화 리스트를 사용하는 습관을 들이면, const와 레퍼런스 변수들에 대한[[BR]]요구 조건을 채울 수 있을 뿐만 아니라, 멤버 변수들에 대한 비효율적인 초기화도 줄일수 있다.''
작용을 올바로 하기 위함이다. 적당한 예를 보도록 하자. [[BR]]
그리곤, 다음과 같은 code를 적용시켜보자.
The C++ language standard is unusually clear on this topic. 베이스 클래스에 대한 포인터를 사용해서 계승된 클래스를 [[BR]]
그리고, operator=연산자의 리턴형을 const로 정의 해 주었을때. 밑의 예제와 같은 멍청한(?) 연산을 해주었을때 적용 되지 않는다. 밑의 연산은 멍청한(?) 연산이지만 C++의 기본 타입에 대해 저런 연산이 가능하기 때문에 저런 연산도 지원하게 끔 만들어야 한다.
기본 형식을 갖는 치환 연산자에서, 리턴값으로 사용할 수 있는 두 가지 경우가 있다. 치환의 왼쪽 부분 (this)과 치환의 오른쪽 부분(인자 리스트에 있는것)이다. 어떤것을 리턴해 줄것인가? operator=과 관련된 밑의 두가지 경우를 보자.
하지만, 이번에는 클래스의 operator=를 사용하는 코드에서 문제가 발생한다.
- HolubOnPatterns/밑줄긋기 . . . . 99 matches
* 스포츠를 사용해서 비유를 하는건 쉽게 이해는 되는데, 항상 별로 재미없어. - [김준석]
* 이디엄은 일상적으로 사용하게 된 패턴이다.
* 지금은 이디엄이 되어 누구나 아무 생각 없이 사용하는 상속이 패턴이었다는 사실도 재미있고 C언어가 왕이었다는 표현도 재미있네요. - [김수경]
* 에 달린 역자주석을 보니 노스 화이트헤드가 "문명이 진보한다는 것은 인간이 의식적인 노력 없이 자동적으로 수행하는 활동이 증가하고 있음을 의미"한다는 지적을 했다고 한다. 이디엄은 과연 좋은것인가? 이디엄이야말로 생각없이 적용하는 패턴이 아닌가? - [서지혜]
* 다양한 사례에 적용해서 적용되기 전보다 높은 효율을 보일 수 있다는 것이 충분히 검증되었기 때문에 이디엄이 되는 것 아닐까요? 물론 모든 것에 100% 적용되는 이디엄이란 존재하지 않겠지만요. - [박성현]
* 이디엄은 가치 중립적이지. 이디엄을 생각없이 적용하는 것이 나쁜것이고. - [김수경]
* 오늘 얘기하면서 깨달았다. 이디엄이 패턴보다 더 습관적으로 적용하기가 쉬울테니(패턴을 몰라도 이디엄은 쓸수있음) 역자가 저런말을 쓴건가봐 - [서지혜]
* 패턴은 어떤 류의 문제를 해결하기 위해 사용되는 일반적인 기술이다.
* 그들은 패턴 자체를 패턴을 설명하기 위해 사용한 코드와 혼동하고 있는 것이다.
* 현실에서는 한 패턴에 참여하고 있는 객체와 클래스가 동시에 다른 패턴에서도 사용되는 경우가 매우 많다.
* 객체들의 상호작용을 동적 행동 양식이라 하는듯 - [서지혜]
* 패턴의 실체화 방식은 다양하지만 여러분이 좋아하는 요소만 쏙 뽑아 사용할 수는 없다.
* 즉 패턴을 사용하지 않고 설명하는 것보다 훨씬 짧고 훨씬 명확했다.
* '우둔한 프로그래머와 아키텍처'는 패턴이 항상 좋은 것이며 가능한 모든 곳에서 사용해야 한다고 일관되게 믿는다.
* 그리고는 구현하고 나서는 스스로 납득을 하게 됩니다. '이러이러하게 하는게 더 좋은 사용자 경험을 제공할 수 있을거야.' 는 무슨 -_-; - [박성현]
* 사용자가 무언가를 정말로 하고 싶어한다면 이에 대해 질문하지 말아야 한다고 주장한다.
* 단순함 , 완전성 그리고 수정의 용이성이란 세가지 요구 사항은 상충되기도 한다.
* 패턴을 분류하는 것은 필요한 상황에서 적절한 패턴을 선택하는 것을 용이하게 해준다는 점에서 유용하다.
* 여러 패턴들이 서로 관련이 있으며 실제 프로그래밍할 때는 이들을 엮어 함께 사용하는 경우가 많다는 사실만 명심하면 된다.
* 프로그래밍 프로세스는 디자인에서 시작하며 상속, 캡슐화, 디자인 패턴 등을 이용하고 디자은의 실체인 컴퓨터 프로그램을 내놓는다.
- XMLStudy_2002/Start . . . . 77 matches
1 Invalid Documents : XML의 태그 규칙을 따르지 않거나,DTD를 사용한 경우에 DTD에 정의된 규칙을 제대로 따르지 않는 문서
2 Well-Formed Documents : DTD를 사용하지는 않지만,XML의 태그 규칙을 따르는 문서
* 2번은 XML 문서에 DTD를 사용하지않았지만 XML 문서 태그 규칙에 맞게 작성되었으므로 Well-Formed 문서로 사용된다.
* 3번은 DTD도 사용하였고 태그 규칙도 맞게 작성된것이다.
1 시작 태그가 있으면 반드시 닫는 태그가 사용되어져야 한다.
2 시작 태그에 대응하는 닫는 태그가 오기전에 시작 태그의 바깥에 위치한 태그의 닫는 태그가 위치하지 않아야 한다.(태그들이 겹쳐서(orverlapped) 사용될수 없다.)
=== XML을 사용하여 문서 작성하는 방법 ===
step1. DTD 사용 여부 선택
step2. DTD를 사용하는 경우 사용할 DTD 선정 또는 새로 설계하여 작성
*XML 문서는 XML로 기술된 구조적인 정보로 구성되는 문서이며 XML1.0스펙에 맞게 작성하며 XML을 지원하는 프로세서(또는 프로그램)에서 사용하기 위해서 Well-formed나 Valid한 형태로 작성된 문서를 말한다. ---> 정의
*XML 응용프로그램이란 이러한 택스트 객체(textual object)를 처리하여 사용할수 있는 프로그램이다.
=== XML 문서의 용도 ===
*구조적 문서 검색이나 문서의 구조 정보가 필요한 응용에 이용 ,EDI DTP등에 이용,전자상거래 플랫폼으로 이용
*XML은 SGML을 좀더 손쉽게 사용할수 있는 대안으로서 취급 하지만 XML의 응용분야가 확대되면서 데이터로서의 역할이 점점 커지고 있음
*SVG(Scalable Vector Graphics)포맷과 같은 그래픽 분야 전자상거래의 트랜잭션 처리, MathML과 같은 수학식 표현 등이 사용 예
<P>이 부분이 본문의 내용이 들어가는 부분입니다.</P>
<P>그냥 패러그래프별로 내용을 적으면 됩니다.</P>
2. DTD(Optional) : DTD를 사용하는 경우에는 어떤 DTD를 사용할지를 선언한 내용또는 DTD가 포함
*standalone : 외부 마크업 선언의 사용 여부를 표시 외부 마크업 선언으 한개이상 선언했을떄 no
*encoding : 문서 작성시에 사용된 인코딩 방식을 기술
- 작은자바이야기 . . . . 77 matches
* 학교에서 배우기 힘든 다양한 지식(자바뿐만 아니고)들을 접해보고, 활용할 수 있기위해
* 언어에 관한 것 뿐만 아니라 유용한 라이브러리, 자바 개발 환경 등 개발을 더 빠르고 편리하게 할 수 있는 방법을 배우기 위해서.
* 유닛테스트, mock 프레임워크 사용 등의 부분에 대한 실제 사용 예를 잘 알기 위해
* 클래스와 그 멤버에 적용하는 기본 modifier들의 개념 및 용법을 다뤘습니다.
* 제가 "원래 모든 함수가 static"이라는 의미로 말한건 아닌데 오해의 소지가 있었나보군요. 사실 제가 설명한 가장 중요한 사실은 말씀하신 예에서 object의 컴파일 타입의 method() 메서드가 가상 메서드라면(static이 아닌 모든 Java 메서드), 실제 어떤 method() 메서드를 선택할 것이냐에 관한 부분을 object의 런타임 타입에 의한다는 부분이었지요. 그러니까 object는 컴파일 타입과 동일하지 않은 런타임 타입을 가질 수 있으며, 다형성의 구현을 위해 implicit argument인 object(=this)의 런타임 타입에 따라 override된 메서드를 선택한다는 사실을 기억하세요. (Python에선 실제 메서드 내에서 사용할 formal parameter인 self를 explicit하게 선언할 수 있다고 보면 되겠지요.) - [변형진]
* static에는 이런 용법도 있습니다. [StaticInitializer] - [안혁준]
* 멀티스레드 환경에서 synchronized modifier를 사용한 동기화에 대해 공부했습니다.
* Serializable 인터페이스와 ObjectOutput, ObjectInput을 사용한 직렬화, 역직렬화에 대해 공부했습니다.
* JNI라는 기법을 사용해 네이티브 라이브러리를 연결하여 함수를 호출할 수 있음을 배웠습니다.
* 다양한 String 객체의 활용 과정에서 객체들의 동일성과 동등성을 알아보았습니다.
* c++에서 상호배제 관련으로 mutex나 critical section같은거 엄청 배웠었는데 자바에서는 synchronized를 이용해서 쉽게 처리할 수 있다는게 신기했습니다. os 수업 들은지 오래 됐는데 멀티프로세스와 멀티스레드 수업을 다시 들으니까 설명을 참 잘 해주셔서 좋았습니다. 함수에만 붙일 수 있는게 아니고 보호자원을 가진 객체를 이용한 synchronized(this){ ... } 같은 부분은 나중에 스레드를 쓸 경우에 참고가 될 것 같습니다. 그리고 인터페이스와 리플렉션을 이용한 초기화를 보니 생각을 잘 하면 구체클래스가 코드에 안드러나게 할 수 있다는 점도 볼만했습니다. -[서영주]
* 우리가 아는 interface 사용
* generics 사용
* Iterator의 특징과 Iterable을 사용했을 때의 특징들을 공부하는 시간
* 지난시간에 이은 Inner Class와 Nested Class의 각각 특징들 Encapsulation이라던가 확장성, 임시성, 클래스 파일 생성의 귀찮음을 제거한것이 새로웠습니다. 사실 쓸일이 없어 안쓰긴 하지만 Event핸들러라던가 넘길때 자주 사용하거든요. {{{ Inner Class에서의 this는 Inner Class를 뜻합니다. 그렇기 때문에 Inner Class를 포함하는 Class의 this(현재 객체를 뜻함)을 불러오려면 상위클래스.this를 붙이면 됩니다. }}} Iterator는 Util이지만 Iterable은 java.lang 패키지(특정 패키지를 추가하지 않고 자바의 기본적인 type처럼 쓸수있는 패키지 구성이 java.lang입니다)에 포함되어 있는데 interface를 통한 확장과 재구성으로 인덱스(index)를 통한 순차적인 자료 접근 과는 다른 Iterator를 Java에서 범용으로 쓰게 만들게 된것입니다. 예제로 DB에서 List를 한꺼번에 넘겨 받아 로딩하는것은 100만개의 아이템이 있다면 엄청난 과부하를 겪게되고 Loading또한 느립니다. 하지만 지금 같은 세대에는 실시간으로 보여주면서 Loading또한 같이 하게 되죠. Iterator는 통해서는 이런 실시간 Loading을 좀더 편하게 해줄 수 있게 해줍니다. 라이브러리 없이 구현하게 되면 상당히 빡셀 것 같은 개념을 iterator를 하나의 itrable이란 인터페이스로 Java에서는 기본 패키지로 Iterable을 통해 Custom하게 구현하는 것을 도와주니 얼마나 고마운가요 :) 여튼 자바는 대단합니다=ㅂ= Generic과 Sorting은 다른 분이 설명좀. - [김준석]
* @property annotation 사용
* Generics와 Reflection을 이용한 ObjectMapper 만들기
* 리플렉션과 제네릭스를 써서 map -> object와 object -> map을 하는 부분을 해봤습니다. 자바의 일반적인 세 가지 방식의 클래스 내 변수에 대해 getClass, getFields, getMethods를 사용해 private, 나 접근자가 있는 경우의 값을 받아왔습니다. getter를 사용해서 변수 값을 받아올 때 이름이 get으로 시작하는 다른 함수를 제외하기 위해 method.getParameterTypes().length == 0 같은 부분은 이렇게 체크해야 된다는 부분은 나중에 제네릭스 관련으로 써먹을만 할 것 같습니다. 그리고 mapToObject에서는 문제가 없었지만 objectToMap의 경우에는 제네릭스의 type erase때문에 Class<T> expectedType = T.class; 같은 코드를 사용할 수 없어서 map.put(field.getName(), (T)field.get(obj));에서 형변환의 타입 안전성을 위해 인자로 Class<T> valueType을 받아오고 valueType.isAssignableFrom(field.getType())로 체크를 하는 부분도 공부가 많이 됐습니다. - [서영주]
* Annotation의 생성 및 사용
* 외부 라이브러리 사용
- 논문번역/2012년스터디/서민관 . . . . 72 matches
아직까지는 대부분의 off-line 필기 인식 시스템은 우편 번호를 읽거나 은행 수표 등의 모양을 처리하는데 사용된다.
이런 시스템들은 분할된 문자나 단어에만 한정적으로 사용되고 있고, 제약사항이 없는 필기 인식 시스템은 무척 적다.
우리가 사용할 데이터베이스에 대해서는 섹션 3에서 소개한다.
그 후에 이어지는 섹션들에서 전처리 과정, 특징 추출을 위한 방법들, 통계적 모델링과 인식에 사용된 기술 들에 대해서 서술할 것이다.
특히 적은 양의 어휘를 이용하는 분리된 단어를 인식하는 시스템이 우편번호나 legal amount reading에 사용되었고, 높은 인식률을 기록하였다. 그래서 처리 속도나 인식의 정확도를 높일 여지가 없었다 [2, 8].
이와는 달리 방대한 양의 단어를 사용하는 제한이 없는 필기 텍스트의 인식은 훨씬 어렵다.
[1, 18]과 [15]에 HMMs 방법을 사용하는 텍스트 분리에 기반을 둔 방법과 recurrent neural network와 HMMs를 혼합한 방법의 각 예시가 있다.
[15]에서 한 실험이 단일 작성자에 의한 데이터베이스에서 행해진 반면에, [1, 18]에 나타난 시스템들은 복수 작성자의 데이터를 이용해서 테스트를 했다.
작성자에 독립적이고 제약이 없는 텍스트 인식을 위한 향상된 시스템이 수백명의 작성자에 의해 만들어진 거대한 데이터베이스[10]에서 실험된 내용이 [11]에 기술되어 있다.
이어지는 섹션들에서 설명할 시스템은 비슷한 접근법을 사용하였는데, 전처리와 특징 추출 방법이 약간 다르다.
추가적으로, 각 문자 종류에 따라 HMMs나 통계적 언어 모델을 사용하는 등의 allograph 문자 모델을 사용하는 것 뿐 아니라 특징 벡터들에 대해 선형 판별 해석을 적용한 효과에 대해서도 살펴보았다.
작성자에 독립인 경우 뿐만 아니라 복수 작성자에 대한 실험도 IAM과 Bern 대학에서 수집한 필기 형태를 이용하여 이루어졌다.
우리는 작성자 독립인 경우의 실험을 위해 250명 이상의 작성자가 만든 카테고리 [a..f]의 형태들을 이용했다. 그리고 복수 작성자인 경우의 실험을 위해 6명의 작성자에 의해 만들어진 c03의 일부를 이용하였다.
우리의 시스템을 단일 작성자인 경우에도 평가하기 위해서 노인(Senior)들에게서 수집된 데이터베이스에서 제공하는 필기 형태를 이용한 실험도 하였다.
이 데이터베이스는 단일 작성자에 의한 25페이지의 필기 텍스트로 이루어져 있으며, 웹에서 공개적으로 사용할 수 있다.
주의할 점은 이 전처리 단계는 IAM 데이터베이스에는 적용할 필요가 없다는 것이다. 작성자들이 두 번째 용지에 자를 사용하게 되었고 스캔을 하는 동안에도 공식을 통해 정렬이 되었기 때문이다.
이진화 된 수필 지역의 수평 밀도 히스토그램을 이용하는 Otsu method를 이용하면 이 임계치를 자동으로 구할 수 있다.
안정적인 정규화 인자를 계산하기에 너무 짧은 지역을 회피하기 위해서 임계치를 사용하였다.
반면에 수직 위치와 일그러짐은 [15]에 나온 것과 비슷한 선형 회귀(linear regression)를 이용한 베이스라인 추정 방법을 이용해서 교정하였다. 일그러진 각도의 계산은 각의 방향을 기반으로 하였다.
각도 히스토그램에서 누적되는 모서리 기반 데이터를 얻기 위해서 정교한 모서리 검출기가 사용되었다.
- 새싹교실/2012/startLine . . . . 68 matches
=== 수업내용 ===
* wiki 사용법.
* 처음이라 간단하게 하려고 변수와 연산에 대해서만 말을 했는데, 간단하게 하려고 하니까 너무 내용이 간단해져서 뭔지 모르는 사이에 내용이 다 끝나버렸습니다. 그렇다고 잘 했느냐고 하면 그것도 딱히 아닌 느낌이네요. 앞으로는 실습 위주로 하면서 조금 더 자세하게 진행을 해야 하지 않을까 싶습니다. 경우에 따라서는 완전히 다른 방법을 써야 할지도 모르겠지만... 어쨌든 아는 것과 가르치는 것은 다르다는 것을 새삼 느낀 시간이었습니다. - [서민관]
=== 수업내용 ===
* 서민관 - 간단하게 재현이가 C문법 알고있는 부분 알아보기, 함수 만들어보기, 전체적인 계획 설명, gcc 사용법. 일단 제어문과 간단한 함수 문법까지도 알고 있는 것 같다. 어제 일도 있어서 긴장을 많이 했는데 그래도 생각보다 어렵지는 않았다. 앞으로는 좀 더 예제등을 준비해야겠다.
=== 수업내용 ===
* 1회차 내용의 복습.
* 제어문(조건문, 반복문)의 문법과 몇몇 주의해야 될 부분들(switch문의 break 사용, 반복문에서의 종료 조건 등).
* 중첩된 반복문으로 별 찍기 - 상당히 특이하게 반복문을 사용했다. 생각이 좀 좋은듯 -_-
* 박환희 - 오늘은 제어문에 대한 내용을 배웠고 느낌은 마음이 편하였고 제어문에는 이러한 종류가 있다는것을 알았고 앞으로 문법을 좀더 익혀야겠다는것을 생각했습니다.
* 서민관 - 제어문의 사용에 대한 수업(if문법, switch.. for...) 몇몇 제어문에서 주의해야 할 점들(switch에서의 break, 반복문의 종료조건등..) 그리고 중간중간에 쉬면서 환희가 약간 관심을 보인 부분들에 대해서 설명(윈도우 프로그래밍, python, 다른 c함수들) 저번에 생각보다 진행이 매끄럽지 않아서 이번에도 진행에 대한 걱정을 했는데 1:1이라 그런지 비교적 진행이 편했다. 그리고 환희가 생각보다 다양한 부분에 관심을 가지고 질문을 하는 것 같아서 보기 좋았다. 새내기들이 C를 배우기가 꽤 힘들지 않을까 했는데 의외로 if문이나 for문에서 문법의 이해가 빠른 것 같아서 좀 놀랐다. printf, scanf나 기타 헷갈리기 쉬운 c의 기본문법을 잘 알고 있어서 간단한 실습을 하기에 편했다.
=== 수업내용 ===
* 배열의 사용법.
* 함수의 사용.
* 간단한 이전 시간(if문, 반복문)의 복습과 배열의 사용에 대해 알아보았다. 그리고 이번 시간에 주로 한 내용은 함수가 왜 필요한지와 함수를 만드는 법, 함수를 사용하는 법 등이었다. 개인적으로는 함수를 꽤 중요하게 생각하는 만큼 함수의 필요성을 잘 캐치해 줬으면 좋겠다. 그리고 새삼 드는 생각이지만 환희의 질문이 중요한 부분을 잘 찌른다는 생각이 든다. 별다른 언급도 없었는데 함수 내에서 변수의 scope나 함수 내부의 이름 겹침 등에 대한 질문이 있었다. 그리고 중간에 함수 사용의 예제로 printf문을 약간 이상하게 쓴 코드를 보여줬는데 의외로 감을 잘 잡은 것 같았다. 현재 진행상황으로는 다음에 포인터를 다뤄야 할텐데 함수를 쓰는 것을 조금 더 연습을 시킬지 바로 포인터를 나갈지 고민이다. 당장 포인터를 했다가 어려워하지 않을까 모르겠다. - [서민관]
=== 수업내용 ===
* malloc 함수를 이용한 메모리 할당.
* 처음에 간단하게 재현, 성훈이의 함수에 대한 지식을 확인했다. 그 후에 swap 함수를 만들어 보고 실행시의 문제점에 대해서 이야기를 했다. 함수가 실제로 인자를 그대로 전달하지 않고 값을 복사한다는 것을 이야기 한 후에 포인터에 대한 이야기로 들어갔다. 개인적으로 새싹을 시작하기 전에 가장 고민했던 부분이 포인터를 어떤 타이밍에 넣는가였는데, 아무래도 call-by-value의 문제점에 대해서 이야기를 하면서 포인터를 꺼내는 것이 가장 효과적이지 않을까 싶다. 그 후에는 주로 그림을 통해서 프로그램 실행시 메모리 구조가 어떻게 되는지에 대해서 설명을 하고 포인터 변수를 통해 주소값을 넘기는 방법(call-by-reference)을 이야기했다. 그리고 malloc을 이용해서 메모리를 할당하는 것과 배열과 포인터의 관계에 대해서도 다루었다. 개인적인 느낌으로는 재현이는 약간 표현이 소극적인 것 같아서 정확히 어느 정도 내용을 이해했는지 알기가 어려운 느낌이 있다. 최대한 메모리 구조를 그림으로 알기 쉽게 표현했다고 생각하는데, 그래도 정확한 이해도를 알기 위해서는 연습문제 등이 필요하지 않을까 싶다. 성훈이는 C언어 자체 외에도 이런저런 부분에서 질문이 많았는데 아무래도 C언어 아래 부분쪽에 흥미가 좀 있는 것 같다. 그리고 아무래도 예제를 좀 더 구해야 하지 않을까 하는 생각이 든다. - [서민관]
* 포인터의 기초와 포인터를 이용한 swap 함수 구현, 값 변환. 그리고 malloc의 형태 기초와 좀 더 쉽게 쓰는 법 익힘. 다음엔 malloc을 이용한 응용프로그램 구현을 해보고 싶다. - [최재현]
=== 수업내용 ===
- Java Study2003/첫번째과제/장창재 . . . . 64 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)로 동작하게 됩니다. 이렇게 자바 프로그램은 컴파일 방식 및 인터프리터 방식이 모두 적용된다는 것입니다.
컴퓨터는 각 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++ 프로그램 개발자들을 가장 혼란스럽게 하고, 프로그램의 치명적인 오류를 발생시킬 수 있는 포인터 및 포인터 연산을 자바에서는 사용하지 않게 함으로써, 포인터를 사용함으로써 프로그래머가 범할 수 있는 오류를 없앴다는 것입니다.
자바는 서로 다른 이종(Heterogeneous)의 네트워크 환경에서 분산 되어 실행될 수 있도록 설계되었습니다. 이와 같은 환경에서는 응용 프로그램들이 다양한 하드웨어 아키텍쳐 위에서 실행될 수 있어야만 합니다. 이를 위해 자바 컴파일러는 이종의 하드웨어 및 소프트웨어 플랫폼에서 효율적으로 코드를 전송하기 위해 설계된 아키텍쳐 중립적인 중간 코드인 바이트코드를 생성합니다. 이는 동일한 자바 프로그램의 자바 바이트코드가 자바 가상머신이 설치되어 있는 어떤 플랫폼에서도 실행될 수 있도록 하는 것입니다. 또한, 자바는 기본 언어 정의를 엄격하게 함으로써 효율적인 이식성을 제공해 주고 있습니다. 예를 들어, int 형과 같은 기본 데이터형의 크기를 플랫폼과 무관하게 일정하게 하고, 연산자의 기능을 확실하게 규정하고 있습니다. C 언어를 이용하여 int 형을 선언할 때, 도스에서는 16비트, 윈도우 95/98/NT 등 32비트 운영 체제 환경에서는 32비트, 유닉스에서는 32비트 등 그 플랫폼에 따라 크기가 다르지만, 자바에서는 플랫폼에 상관없이 32비트로 고정되도록 하였습니다. 이는 자바 프로그램이 실행되는 환경이 자바 가상머신으로 동일하기 때문입니다.
자바는 몇 가지 단점을 가지고 있는데, 자바의 단점이라 할 수 있는 문제들과 그에 대해 자바에서는 어떤 기술 또는 방법을 이용하여 해결하려 하고 있는 지에 대해 살펴보도록 하겠습니다.
먼저, 자바는 기계어 코드를 직접 실행시키는 것이 아니고, 플랫폼 독립적인 중간 코드 형태인 바이트코드를 자바 가상머신이 해석하여 실행시키는 인터프리터 방식을 취하고 있으므로 느린 수행 시간을 갖습니다. 일반적으로 C보다 평균 8배 정도 느리고, 최대 20배까지 느립니다. 이렇게 느린 수행 시간을 해결하기 위해 다음과 같은 기술을 사용할 수 있습니다.
네이티브 코드 생성기를 이용하여 인터프리트 하는 도중에 기계어로 동적으로 번역합니다.
자바 컴파일러를 이용하여 컴파일 할 때 '-O' 옵션을 줌으로써 최적화 시켜줍니다.
자바 전용 환경:
자바 운영체제 또는 자바 프로세서와 같이 자바를 위한 전용환경을 만들어 줍니다.
두 번째, 자바 애플릿을 웹 서버로부터 웹 클라이언트가 다운로드하여 실행시켜 주게 되는데, 이 때 네트워크 속도가 느리다는 문제가 있습니다. 이런 문제점에 대해서는 다음과 같은 기술을 사용하여 해결하려 하고 있습니다.
자바 애플릿을 실행시키기 위해 애플릿을 다운로드해야 하는데, 이 때 애플릿에서 사용하는 데이터들도 존재할 수 있습니다. 예를 들어, 애니메이션을 수행하는 애플릿이 있는 HTML 페이지에 접속하여 그 애플릿을 실행시켜야 할 경우, 해당 애플릿 파일과 애플릿에서 애니메이션을 위해 사용하는 각 프레임 이미지도 존재할 것입니다. 따라서, 애플릿 파일은 물론 애플릿에서 사용하는 이미지 파일도 다운로드해야 애플릿에서 제대로 애니메이션을 수행할 수 있겠지요. 이 때, 애플릿 실행과 관련된 모든 파일을 JAR 또는 ZIP 형태의 압축 파일로 묶어 전송하게 됩니다. 이렇게 함으로써, 느린 네트워크를 이용하여 애플릿과 관련된 파일들을 다운로드 하는데 드는 시간을 줄일 수 있습니다.
다운로드 받은 애플릿과 애플릿 관련 파일들은 웹 클라이언트의 디스크에 캐싱합니다. 예를 들어, 웹 클라이언트가 애플릿이 포함된 페이지를 보다가 다른 페이지에 잠깐 들렀다가 애플릿이 포함된 페이지로 다시 돌아올 경우, 애플릿과 관련된 모든 파일들을 다시 다운로드하는 것이 아니고 웹 클라이언트의 디스크에 캐싱 되어 있는 애플릿 관련 파일들을 사용하게 됩니다. 이렇게 함으로써, 느린 네트워크를 이용하여 애플릿과 관련된 파일들을 다시 다운로드 하는데 걸리는 시간을 없앨 수 있습니다.
하나의 HTML 페이지 내에 있는 애플릿은 하나의 클래스만을 사용할 경우도 있겠지만, 대부분의 경우 여러 개의 클래스를 필요에 따라 사용하게 됩니다. 여러 개의 클래스를 사용할 경우, 모든 클래스가 동시에 사용되지는 않겠지요. 또한 어떤 클래스는 정의는 되어있지만, 필요에 따라 전혀 사용되지 않을 수도 있겠지요. 따라서, 자바에서는 필요할 경우에만 클래스를 로딩하여 사용하게 됩니다. 이러한 기술을 느린(lazy) 클래스 로딩 이라 합니다.
세 번째, 모호한 언어적 특성, 비결정적 자바 가상머신, 표준화된 실시간 API가 없는 문제 때문에 실시간 응용이 어렵습니다. 이를 위해, 자바에서는 다음과 같은 기술을 개발하고 적용함으로써 실시간 응용을 가능하게 할 수 있습니다.
- 새싹교실/2012/AClass . . . . 62 matches
=== 수업내용 ===
* 복습 및 생략한 기초 내용
1. #define이 무엇을 의미하는지 쓰고, 이것을 사용한 '간단한' 프로그램을 하나 작성해보세요.
1. if, else, else if문을 이용한 프로그램을 하나 작성해주세요. else나 else if를 3번이상 써 주세요.
1. switch-case문을 이용한 간단한 프로그램을 하나 짜 보세요.(eg. Grade계산기 A,B,C)
1. while문을 이용한 프로그램을 하나 작성해 주세요. C수업시간이나 과제에 나온 것을 새로 짜보아도 좋습니다.
1. 2중 for문을 이용하여 다음 모양의 별찍기를 작성해주세요.
1. 배열을 사용한 간단한 프로그램을 하나 만들어보세요.
1. 재귀함수를 이용한 프로그램을 하나 짜 보세요.(eg.1~n까지의 합, n!구하기등)
--> 라이브러리에서 우리가 사용하는 함수를 불러오기 위해써주는 것
-중복 for문 사용.
* /10, %10 등을 이용해서 해 보세요.
10.재귀함수를 이용해 n!을 출력하는 프로그램을 작성해 주세요.
12.재귀함수를 이용해 1부터10까지를 더하는 프로그램을 작성해 주세요.
1. 2차원 배열이 무엇인지 쓰고, 어떻게 선언하는지도 작성한 뒤, 이를 이용한 간단한 프로그램을 작성해주세요.
1. srand()함수가 무엇인지 찾아쓰고, time()을 이용해 랜덤으로 숫자를 하나 출력하는 프로그램을 작성해주세요.
* 재귀함수 : 자기 자신함수를 다시 불러서 사용하는 함수
배열 : 변수를 여러개 사용하지 않기 위해 사용
느낀 점 : 전에 배웠던 내용이라서 아직 까지는 이해하기 쉬웠다. 코딩을 많이 해봤으면 좋겠다:-@
6.포인터를 이용해 함수 swap 짜보기(대부분의 책 예제에 있습니다. 따라 써보고 코드를 이해해 보세요)
- 토비의스프링3/오브젝트와의존관계 . . . . 62 matches
* 사용자 정보를 JDBC API를 이용해 DB에 저장하고 조회할 수 있는 간단한 DAO 만들기.
* DB를 사용하여 데이터를 조회, 조작하는 기능을 전담하도록 만든 오브젝트.
* 사용자 정보를 저장할 때 자바빈 규약을 따르는 오브젝트를 이용하면 편리하다.
* User : 사용자 정보 저장용 자바빈 클래스
* UserDao : JDBC를 이용한 등록, 조회 기능이 있는 DAO 클래스
== main()을 이용한 테스트 ==
* DAO의 기능을 사용하는 웹 어플리케이션을 만들어 서버에 배치한 뒤 웹 브라우저를 통해 사용해보거나
* main 메소드를 이용한 테스트 코드
1. 사용자 등록/조회를 위한 SQL문을 담을 Statement를 만들고 실행하는 것.
|| DeleteMe) 추후 내용 보강 예정 - [김수경] ||
* interface 이용
* 런타임 사용관계 : 오브젝트 사이의 관계란 런타임시에 한 오브젝트가 다른 오브젝트의 레퍼런스를 가지고있는 것.
* 사용할 오브젝트를 내부에서 생성
* 인터페이스로 구현된 파라메터를 이용해 외부에서 전달받는다. (다형성)
* 변경이 필요한 알고리즘을 인테페이스를 통해 외부로 분리시키고, 이를 구체화한 클래스를 필요에 따라 바꿔 사용하게 하는 패턴
* 객체지향적 설계 원칙과 디자인 패턴에 나타난 장점을 자연스럽게 개발자들이 활용할 수 있게 해주는 프레임워크
* 관심사의 분리 - 오브젝트를 생성하는 쪽과 생성된 오브젝트를 사용하는 쪽을 분리하는 역할을 한다.
* 1.4.2 오브젝트 팩토리의 활용
* 프레임워크는 제어의 역전이 적용된 대표적인 기술이다.
* 라이브러리는 애플리케이션이 능동적으로 사용한다.
- Android/WallpaperChanger . . . . 59 matches
* 안드로이드의 서비스를 이용해서 구현.
// 서비스에 대한 스레드에 연결된 Handler. 타이머 이용한 반복 처리시 사용.
// startId : 서비스 시작요구 id. stopSelf에서 종료할 때 사용.
//onStart는 여러번 호출될 수 있기 때문에 식별자로 사용.
// 원격 메소드 호출을 위해 사용
|| 4/28 || WallPaperAndroidService에서 Bitmap Loading방식 바꿈. 먼저 Loading을 해서 준비해놓고 순서가 오면 화면이 바뀌는 형식으로 바꿔놓음.시간 설정 저장 DB adapter생성 및 DB새로 만들어서 저장함.사용자의 편의를 위한 TextView설명 추가 ||
일반적으로, 빠르거나 효율적인 코드라는 것은 메모리 할당을 최소화 하고, 꽉 짜인 코드를 작성하고, 특정 프로그래밍 언어나 잠재적으로 성능상 문제가 될만한 프로그래밍 어법들을 피하는 것을 말합니다. 객체지향 용어로 말하자면, 이러한 일이 가장 빈번히 일어나는 곳은 메소드 레벨이며, 이와 비슷하게 실제 코드 라인들과 반복문 등에서 발생합니다 .
네이티브 메소드를 사용하라
내부에서 Getter/Setter 사용을 피하라
주의 깊게 향상된 반복문(Enhanced For Loop)을 사용하라
내부 클래스와 함께 패키지 범위를 사용하라
누군가는 이 페이지상의 많은 조언이 "섣부른 최적화"나 마찬가지라고 비판할지도 모릅니다. 미시 최적화는 때로는 효율적인 데이터 구조와 알고리즘을 개발하는 것을 더 어렵게 만든다는 것은 사실입니다. 하지만, 핸드셋과 같은 임베디드 기기에서는 때로는 별다른 선택지가 없습니다. 예를 들어, 여러분이 데스크탑에서 개발할 때 생각하는 VM의 성능에 대한 가정을 안드로이드에도 적용한다면, 여러분은 시스템 메모리를 소진해버리는 코드를 꽤나 작성해 버리고 말 것입니다. 이것은 여러분의 애플리케이션이 바닥을 기도록 할 수 있습니다 — 시스템에서 동작하는 다른 프로그램들에게 무엇을 하는지 지켜보세요!
이것이 바로 이 가이드라인이 중요한 이유입니다. 안드로이드의 성공은 여러분의 애플리케이션이 제공하는 사용자 경험(UX)에 달렸고, 사용자 경험이란 것은 여러분의 코드가 빠르고 팔팔하게 반응하는지, 아니면 느리고 무거운지에 달렸습니다. 모든 우리의 애플리케이션들은 같은 장치에서 동작할 것이기 때문에, 어떤 의미로, 우리 모두 함께 이 것들을 지키도록 최선을 다해야 합니다. 이 문서를 운전면허를 딸 때 배워야만 하는 도로교통법이라고 생각하세요: 모든 이가 따르면 문제없이 원활하겠지만, 따르지 않는다면 사고가 날 것처럼 말입니다.
자세한 내용을 다루기 전에, 간단한 주의사항입니다: 아래 설명된 대부분의 이슈들은 VM이 JIT 컴파일러이든 아니든 효과적입니다. 같은 기능을 수행하는 두 메소드가 있고 interpret 방식에서 foo()의 실행속도가 bar()보다 빠르다면, 컴파일 된 버전에서도 아마 foo()가 bar()과 비슷하거나 더 빠른 속도를 보여줄 것입니다. 컴파일러가 여러분을 "구해줄"것이라던가 충분히 빠르게 만들어줄 것이라고 의존하는 건 현명하지 못하다는 것이죠.
객체의 생성은 결코 공짜가 아닙니다. 임시 객체들을 위해 쓰레드-당(per-thread) 할당 풀을 사용하는 세대형(generational) GC는 더 낮은 비용으로 할당 할 수 있지만, 메모리를 할당한다는 것은 메모리를 할당하지 않는 것 보다 언제나 더 높은 비용이 듭니다.
만약 사용자 인터페이스 루프에서 객체를 할당한다면, 주기적으로 가비지 컬렉션을 강요하게 될 것이고 사용자 경험에 있어서 조그마한 "딸꾹질(거북함)"을 만들게 될 겁니다.
일반적으로, 가능하다면 짧은 수명의 임시 객체 생성을 피하십시오. 더 적은 객체들을 만든다는 것은 사용자 경험에 직접적인 영향을 주는 가비지 컬렉션 줄여줌을 뜻합니다.
네이티브 메소드를 사용하라
문자열을 처리할 때, String.indexOf(), String.lastIndexOf() 와 그 밖의 특별한 메소드를 사용하는 것을 주저하지 마십시오. 이 메소드들은 대체적으로, 자바 루프로 된 것 보다 대략 10-100배 빠른 C/C++ 코드로 구현이 되어있습니다.
이 조언의 반대적 측면은 네이티브 메소드를 호출하는 것이 interpret방식의 메소드 호출보다 더 비용이 높다는 것입니다. 피할 수 있다면, 사소한 계산에는 네이티브 메소드를 사용하지 마십시오.
- 새싹교실/2011/데미안반 . . . . 57 matches
=== 수업내용 ===
으로 위쪽으로 갈 수록 상위개념이라 합니다. 선형대수학 때 배운 내용의 일부가 수치해석(3-1학기)에 들어있습니다. 그리고 그래픽스(4-1학기) 수업에서 수치해석을 전제로 수업을 합니다. 수업시간에는 '''선형대수학을 포기하라'''했었는데, C라이브러리로 그래픽을 만드는 식의 컴퓨터 그래픽스 수업에 관심이 있으신 분은 '''절대 포기하지 마세요 ㅎㅎ'''
* ; 는 문장의 끝을 나타내므로, printf("Hello World"); 처럼 어디까지 내용이 있다 나타내는 것처럼 빈 공간도 빈 공간 그대로 인식이 되지 않았나 싶어요.
* C언어의 단점 중 low-level적 특성으로 프로그래밍을 하는데 많은 주의를 요한다 했는데, 실제로 잘못 사용한 사례는?
* 나중에 포인터를 사용하는 실습을 하다 보면 많은 깨달음을 얻을 수 있지 않을까 싶습니다...
* [이준영] - C언어의 기초적인 내용에 대해 다시 배울 수 있었습니다. 생각나는거로는 %d가 생각나네요.
* [강소현] - 열성적으로 질문을 해주어서 좋았습니다. A언어도 있는지의 여부를 물었었는데 저는 몰랐었는데 실제로 존재하더라구요 ㅎㅎ 가벼운 내용이라도 의문이 드는 사항이라면 언제든지 위키나 문자로 질문해주면 최대한 답변을 달도록 노력하겠습니다. 다음 시간에는 이전에 실습했던 것의 복습과 scanf 이후로 나갈 예정입니다. PPT 준비에 디자인도 없이 급하게 만든 티가 났었는데, 다음 시간에는 조금 더 준비를 해가겠습니다:)
=== 수업내용 ===
* 산술연산자 사용 예
#include <stdio.h> //printf 함수 사용
* 기타 대입 연산자 사용 예
#include <assert.h> //assert 함수 사용
* 증가, 감소 연산자 사용 예
#include <assert.h> //assert 함수 사용
* 관계 연산자 사용 예
#include <assert.h> //assert 함수 사용
* 논리 연산자 사용 예
#include <assert.h> //assert 함수 사용
* 산술 연산자 사용 예에서 val1과 val2를 곱셈, 나눗셈, 나머지를 구하는 것을 추가하여 출력해보자.
* 기타 대입 연산자 사용 예에서 assert(val1 == 7); 를 assert(val1 != 7); 로 바꾸어 실행해보기.
- 2011년독서모임 . . . . 55 matches
* 어렸을 때는 말도 어렵고, 내용 자체가 이게 뭔 말인지 이해가 안갔었다. 지금은 인간으로서 선한 쪽 일만 할 수 없기 때문에 선+악이 공존하는 압락사스가 등장했다는 것과, 어려워질 때마다 등장하여 이끌어준 데미안이라는 존재에 가까워져가는 싱클레어의 성장기라는 것은 이해가 간다. 하지만 싱클레어의 내면 중에 데미안의 어머님을 엄마 혹은 연인으로 동일시하는 것과 데미안이 프란츠 크로머로부터 구해줘도 고마워하지 않는 것은 이해가 가지 않는다. 나중에 한번 더 읽어야 할 필요성을 느꼈다. '''이해가 안갔던 영화'''에 대해서도 이야기를 나눴는데 내가 생각한 것은 [http://movie.naver.com/movie/bi/mi/basic.nhn?code=17368#story 마법의 빗자루]였다. 편지를 받아가며 공부했던 견습 마녀 1명 외에 다른 사람들은 편지를 보낸 사람이 사기꾼인지 인식 못했다던지, 사기꾼이었던 브라운 교수가 가진 나머지 반의 책을 찾기 위해 시장에 갔다가 그 책을 노리는 또 다른 무리를 만났는데 어느 순간 안보인다던지, 마법의 주문을 찾기 위해 애니메이션 세계로 갔는데 그 곳에서 가져온 물건은 사라진다던지, 사물을 움직이는 마법 주문을 공부하려던 이유가 전쟁에 도움이 되기 위해서이었다는 사실이라던지 무언가 내용 구성 측면에서 허술하고 이해 안가는 전개가 많았다. 하지만 침대를 통해 원하는 장소로 이동이 가능하고, 사물을 움직이고, 토끼로 변하는 등 어렸을 때 가족끼리 보기에는 좋았다.
* 몰입을 위해서는 외적, 내적 동기화가 필요하다는걸 잘 알려주는 책입니다. 일과 재미의 경계를 허물자는 내용이 메인으로 담겨있고, 그를 뒷받침하는 분야별 몰입, 통계자료가 많이 나옵니다.
* 몰입에 대한 얘기가 참 많이 나오지만 몰입하기 참 어려운 책이었습니다. 동기화를 한다고 해도 '절실함'이 없으면 몰입하기 어렵고 실천하기 어렵다는게 제 생각인데 그런 부분에 대한게 별로 없어서 아쉬웠습니다. 자신이 몰입으로 이러한 성공을 거두었다는 내용이 있었으면 몰입의 효과에 대해 더 와 닿았을지 모르지만 자신이 연구를 위해 조사했던 남얘기 위주입니다.
* 저는 그냥 '몰입'이라는 책을 읽었습니다. 비슷한 내용인 것 같아요. 거기서 몰입하는 방법에 대한 방법이 아주 짧게 나와있는데, 몰입할 대상을 의식적으로라도 계속 생각하면 자연스럽게 몰입이 가능하다는 말이 있었어요.. 연구원들이 쓰기에 좋은 방법이라고 하더군요.. - [서지혜]
* 이와 관련해서 외국 음악이랑 외국 영화에 나오는 한국에 대해 찾아보려 했는데요,, 급 귀차니즘 때문에 외국 음악에 나오는 한국 관련된 것만 찾았다는...; 뭐,, 그래서 찾은 것이 Gary Moore의 Murder in the skies 라는 노래인데, 이 노래는 1983년 9월 1일에 뉴욕에서 출발한 한국행 비행기가 소련의 영공에 침범 했나(? -_-;; 죄송;;) 그래서 소련의 전투기가 Kal기를 격추시키는 일이 발생하였는데, 그것을 내용으로 소련의 만행으로 무고한 사람들이 죽음을 당했다는 것을 비판한 노래라 소개 했었고, 또 하나 찾아봤었던게 Deftones의 Korea라는 노래인데... 알고보니까 그냥 노래 내용이 어떤 소녀에 대한 이야기인데 그 소녀의 이름이 한국인 성과 비슷해서 그냥 그렇게 썻다고 해서 패스했습니다.
* 이상한 나라의 앨리스의 2부라고 말은 많이 들었는데, 실제로 읽어본 건 이번이 처음이었어요. 내용이 이어지는 건 아니고, 그냥 처음과 끝의 구성이 비슷하고 앨리스가 등장한다는 것 외에는 없는 듯 합니다. 앨리스는 7살 하고도 6개월인 호기심이 왕성한 나이여서 그런지 모든 것을 신기한 관점에서 바라봅니다. 거울 건너편은 이쪽세계와 비슷한듯 하지만 좌우가 뒤바뀌었고, 실제로 안 보이는 부분은 이쪽세계와 다를지도 몰라! 라고 생각하고, 거울 건너편 세계를 구경하고 싶어 합니다. 그래서 손을 댓는데, 어느 순간 건너편 세계로 넘어옵니다. 거울에 비치지 않았던 부분은 과연 색다른 모양을 하고 있었고, 조그만 체스 왕과 여왕이 움직이는 것이 보여, 말을 걸지만 앨리스를 보지도 듣지도 못합니다. 문 밖을 나와 언덕에 가려하는데 아무리 이동해도 제자리로 돌아와 있어, 반대로 이동하니 언덕으로 이동하는 것은 거울이 반대편이라 그런듯 합니다. 곤충에게 이름이 붙여있는 이유는 사람들이 부르기 편한게 아니라, 실제로 이름을 불러주면 대답을 해올거라 조언해주는 모기나, 땅 침대가 푹신하지 않고 딱딱하기 때문에 꽃들이 잠들지 않고 재잘재잘 말을 할 수 있게 되었다던지, 체스 사람들이 밖에서 앨리스만큼 커진 이유는 밖이 탁하지 않기 때문이라던지 독특한 관점이 많습니다. 앨리스의 이동은 체스 말의 이동에 비유되어 처음에는 졸로서 한 칸씩 이동하다가 여왕을 잡고 잠이 깹니다. 초반에 잠을 자고 있던 왕 체스 말이 꾼 꿈인지, 아니면 앨리스가 꾼 꿈인지 묻는 질문과 함께 이야기가 끝납니다.
* 배경이 현실이 아닌 영화도 소개 했었는데 (팬도럼이었습니다 -ㅅ-) 이 영화는 2528년에 지구를 대체할 행성을 향해 출발한 사람들이 팬도럼 현상(오랜 시간 고립된 장소에 있어서 생기는 공황상태랍니다 -_-;)으로 미쳐버린 한 인간이 저질러 놓은 만행과 그로 인해 생겨난 돌연변이 인간들, 그리고 흥미를 잃어버린 한 인간의 오랜 숙면과 그 숙면 속에서 깨어난 한 인간과 다른 사람(엔지니어가 한명 나옵니다) 그리고 오래전부터 깨어 있었던 사람들이 그려가는 영화인데, 후반부 반전이 흥미로운 영화입니다. (근데 전 영화를 보면서 그 반전을 예상해 버리는 바람에 -ㅅ-;;) 뭐,, 단순히 현실과 다르고 재미있게 봤던 영화라 소개 했는데, 자세한 내용은 직접 보시거나 검색창을 이용해주.. (응?)
* 이번에 읽은 책은 생일 선물로 받은 책으로, '만남'이라는 주제를 가지고 쓴 작품입니다. 처음 책의 표지를 봤을 때, 한 여자와 젊은 남자 둘이 그려져 있길래 셋의 삼각관계에 관한 책인가 했는데, 알고보니 한 남자는 여자의 아버지라고 나온 것을 보고 누가 작화를 그린거지 라는 생각을 했었습니다. -_-; 뭐 여하튼, 이 세상에서 많은 만남과 사랑에 대하여 빠른 스토리 텔링으로 이야기가 전개되어 지루하지 않게 볼 수 있었던 책이었습니다. 그리고 매 장마다 글귀들이 써 져 있었는데, (노래 가사라던가, 유명한 사람이 했던 인용구와 같은..) 그것을 하나 하나 읽어가면서 공감가는 부분도 있어 인상에 남았습니다.
* GO라는 책은 전에 순의 선배님이 읽었을 때 표지가 아기자기해서 관심을 가지고 있던 것을, 이번에 기회가 되어 읽었습니다. 언뜻 들었을 때, 여주인공한테 사실을 밝히면서 비극적으로 이야기가 끝나는 줄 알았는데, 책에서는 재일 한국인인 주인공이 사랑을 쟁취하는 내용입니다. 조선 국적을 가지고 있던 주인공 가족이었지만, 어머니의 하와이에 가고 싶다는 권유를 못이겨 아버지와 주인공 둘다 한국으로 국적을 바꿉니다. 돈만 있다면 국적도 바꿀 수 있다는 사실에 주인공은 묘한 기분을 느낍니다. 중학교까지 조선학교를 다니다가 고등학교는 일본쪽의 학교를 갔지만, 밝히지 않아도 출석부에 출신 중학교가 써있어서 차별을 당합니다. 아버지한테 배운 권투로 덤벼오는 사람들을 족족 패고 다니는 등 험하게 살다가, 누군가의 생일파티에서 운명의 상대를 만납니다. 그 여주인공와 서로 성만 밝히고, 서로의 취미를 공유하며 연애를 하다가, 일을 치르기 전(?)에 자신의 국적이 한국이라는 사실을 밝힙니다. 여주인공은 어려서부터 한국인과 중국인은 피가 더러우니 사귀지마라는 소리를 들어왔는데, 이를 어디까지를 선조로 보느냐에 따라 다르다고 설득을 합니다. 조상을 거슬러 올라가다보면 결국 한 사람이 나오며, 여주인공도 일본 토착민은 술을 잘마시는데, 여주인공의 가족이 술을 못 마시는 이유는 중국에서 유입된 사람들이기 때문이다라 주장합니다. 여주인공은 그 동안의 주입된 지식으로 처음에는 거부를 하지만, 한 두달의 시간이 흐르고 남주인공한테 전화를 하여 사랑이 이루어집니다.
* 저번 독서 모임 때 송지원 학우가 읽었던 책을 읽게 되었는데, 읽으면 읽을수록 서로의 문화에서 가지고 있는 가치관이 다르다 보니 어떻게 생각하면 어이가 없는 논리를, 그러면서도 참 배울게 많은 논리들이 있는 것을 볼 수 있었습니다. 이 책에는 류시화 작가가 인도에 가서 대한민국이라는 사회에서 일반적으로 통용되는 가치관이랑 인도라는 사회에서 일반적으로 통용되는 가치관의 차이로 인한 에피소드가 많았는데 만약 인도인이 대한민국에 와서 그들이 가지고 있는 철학을 가지고 이야기 하려면 류시화 작가가 인도에서 겪었던 것과 같은 에피소드들이 책으로 나오지 않을까 라는 생각도 하게 되었습니다.
* 이번 시간에는 책의 내용에 대한 공유 뿐 아니라 서로의 취미에 대해 나눌 수 있어서 좋았습니다. 특히, 수집이 취미였던 소현이의 캔 꼭다리와 동전 판화 모음집을 보며 놀라움을 금할 수가 없었어요 ㅎㅎ
* 제가 정한 주제이지만, 최근에는 주로 인터넷과 함께 하기 때문에 취미다운 취미를 찾기가 힘들었습니다. 그러다가 서핑을 제외하고 그나마 오래 한 활동으로 수집이 떠올랐습니다. 수집이야기는 3장에 걸쳐서 구성되어있습니다. 1장에서는 가난한 자의 변으로 부자라고 해서 좋은 수집을 할 수 있는게 아니고, 가난하지만 훌륭한 안목이 있어 물건을 구할 수 있다고 합니다. 2장에서는 물건들 중 인상깊게 모았던 물건에 대한 에피소드를 다루고 있습니다. 너무도 구하고 싶지만, 구하기 힘들었던 물건이 인연이 닿아 자연스레 제 손에 들어오는 것이 참 인상깊었습니다. 3부에서는 어떤 불상을 발견하면서 불상을 만든 제작자의 여행지를 보면서 흔적을 쫓아가는 이야기입니다. 일기장을 분석하여 3일 이상이라도 머물렀던 곳에는 그 사람의 작품이 있다고 분석하고, 찾아다니는 내용에 저도 같이 보물찾기를 하는 기분이 들었습니다.
* [강소현] - 디즈니의 해피엔딩 만화영화를 보다가, 실제 동화(각색이 많이 되긴했지만)를 보게 되니 충격이 컸어요! 인어공주가 왕자와 결혼으로 끝맺었던 내용이, 꾸러기 수비대라는 만화영화를 보면서 거품으로 사라진다는 걸 깨닫긴 했지만.. 이 내용도 실제 동화를 보면 또 무슨 비밀이 있겠지요 ;ㅅ; 쨋든! 잠자는 숲 속의 공주가 잠든 진짜 이유가 베를 짜는 바늘에 찔려서가 아니라 왠 남 시종이 공주를 겁탈해서 그랬던 거였더군요 ㅠㅠ 100년 만에 깨어난 공주와 왕자의 세대차이로 인한 갈등은 현실감이 있었어요. 왕자가 남장 여자를 좋아한다는 설정과, 100년 전 왕과 왕비가 공주가 겁탈당하지 않도록 남장을 시켜 키워왔다는 것이 맞아서...바람을 핀 왕자를 남장으로 사로잡아 해피엔딩이 된거는...ㅋㅋ 약간 억지력이 있지만 확실히 그냥 동화로 봤던 것 보다는 각색을 통해 원작을 추측한 이번의 책이 더 현실적이어서 좋았어요. 하지만 확실히 옛날이든 지금이든 애들용은 아닌듯 합니다ㅋㅋㅋ
* [권순의] - 고등학교 1학년 때 백설공주가 독사과를 먹고 잠자다가 왕자의 키스를 받고 잠에서 깨는게 아니라 시체 수집을 위해 가져가다가 떨어뜨려 백설공주가 깨어난다는 이야기를 듣고 원작에 대한 이야기가 궁금해서 백설공주의 이야기를 읽었던 기억이 있었습니다. 그리고 나서 신데렐라의 이야기에서 신데렐라가 신었던 신발이 유리구두가 아니었다는 이야기랑, 신데렐라의 언니들이 유리구드를 신기 위해 발가락을 짜르는 이야기가 있다는 소리를 듣고 내용이 궁금해져서 이번 주제를 신데렐라로 정했습니다. 쭉 읽다보니 이 책에는 가죽 구두가 아닌 유리구두로 놔 두었고, 그 유리구두에는 또 다른 의미가 들어가 있는 것을 보면서, 역시 해석은 하기 나름인가 라는 생각이 들기도 했습니다. 뭐 호박 마차라던지 그런 마술과 같은 내용은 나오지 않고 좀 사실적으로 된 신데렐라를 읽을 수 있었습니다. 뭐.. 그렇게 재미 없지도 않았고 그렇게 재미 있지도 않았던 것 같은 그런... 그러나 흥미는 유발된 (뭔소리야) 주제였던 것 같네요
* [송지원] - 디즈니 영화 '라푼젤(원제:Tangled)'을 보고 가장 읽고 싶었던 동화 원작이 라푼젤이었는데 순의가 도서관 가서 빌리는 김에 같이 빌렸습니다-_-; 막상 빌려 보니 원작의 라푼젤이라기 보다는 몇판에서 삭제된 내용의 라푼젤을 반영하면서도, 약간은 막장 드라마가 되어버린..(고텔 아주머니의 남자에 대한 반감은 그 전에 상처로 인한 건데 그 남자가 알고보니 고텔에게 복수한 거였고 뭐 고딴) 19금 라푼젤이었어요. 전체적인 스토리들을 보며 느꼈지만 그림동화는 역시 어른들을 위한 동화였어요.(음?) 다음에는 진짜 원작을 빌려보고 싶습니다.
* [김태진] - 괴짜심리학은, 좀 뭐랄까 책으로서의 교훈성은 떨어지는 내용이었어요. 신기한 내용들을 다뤘달까, 뭐 그런식이었는데 많은 수의 지식들이 머리에 스쳐지나가는 것들이었달까, 한번쯤 들어봤던 스키마들을 좀 더 자료에 근거해서 보여줬달까, 하는 내용이었습니다. 좀 더 교훈적이거나 유쾌한 내용이면 좋았으리라는 생각을 해보네요.
* 책 소개 : '서커스단 소년과 인어'는 감동류를 소설에서 찾아볼까 하면서 도서관에서 고른 책입니다. -서커스단에서 소년과 인어가 만나 서로 사랑했지만 육지에서 점점 쇠약해져가는 인어를 보고 안타까움을 느낀 소년은 인어와 함께 바다로 갑니다. 하지만 물 속에서 숨을 쉴 수 없는 소년은 결국 목숨을 잃고 맙니다-는 내용의 슬픈 동화책을 좋아하던 한 소녀로부터 시작되는 연애 소설입니다. 소녀 주희에게는 두 소꿉친구가 있었는데 이 중 한 명인 태석이는 다른 한 친구인 기훈의 신발을 찾아주러 개울가에 가다가 익사하고 맙니다. 18년 후 극적으로 기훈과 재회한 주희는 기훈에게로부터 잃어버렸던 '서커스단 소년과 인어' 책을 돌려받고 둘은 서로 사랑하게 되지만 끝내 찢겨진 마지막 페이지가 해피엔딩임은 기훈만 알고 있는 비밀이 되어 버립니다.
* [김태진] - 진규덕분에 리눅스 세미나가서 받고, 읽은 책입니다. 내용은 대략 최근 소프트웨어 시장에 대한 것과 그것이 나타날 수 있었던 것들을 말해주는 것이었는데, 이런류의 책을 신간으로 (그러니까, 나온지 얼마안된, 지금 현재시점에서 보면 거의 일치하는 책)나온걸 거의 읽은적 없어서 조금 더 현재 제 전공계열의 특성을 알 수 있었습니다. 우리나라 소프트웨어산업이 많이 발전되어 보이지만, 실상 그렇지 않은 부분이 많고, 수요도 적은편이라 좀 더 국제적으로 개발을해야 할 것이다라는 부분이 꽤 인상적이었네요.
* [권순의] - '''파피용''' (베르나르 베르베르)
* [권순의] - 파피용이란 책은 제목만 보면 감옥 탈출 이야기인가? 라는 생각을 들게 하지만, 이 책의 내용은 우리가 알고 있는 바퀴벌레 잡아먹는 이야기가 아닌 지구라는 거대 감옥을 탈출하는 이야기랄까요. 전반적인 내용을 보다 보니 이건 성경과 베르나르 베르베르의 다른 소설 '아버지들의 아버지'에서 작가가 자신이 생각하는 인류의 기원은 외계에서 왔을 것이다라는 생각의 조합이 만들어낸 이야기였습니다. 그래서 이 소설 읽고나서 베르나르 베르베르가 라엘리안 무브먼트(인류의 기원이 외계인이 만들어낸 자신들의 복제 생명체들이다 라고 주장하며 카톨릭에서 이야기 하는 신 = 외계인이라고 설명하는 단체. 인간 복제를 찬성하고 실제로도 인간 복제를 성공했다고 전 세계를 상대로 구라를 친 집단이기도 하다.)의 사상을 가지고 있는건가 라는 생각을 하게 되기도 하였습니다.
- MoreEffectiveC++/Exception . . . . 54 matches
* Item 9: 자원이 새는걸 막는 파괴자를 사용해라.
방법은 올바르다. 예외시에 해당 객체를 지워 버리는것, 그리고 이건 우리가 배운 try-catch-throw를 충실히 사용한 것이다. 하지만.. 복잡하지 않은가? 해당 코드는 말그대로 펼쳐진다.(영서의 표현) 그리고 코드의 가독성도 떨어지며, 차후 관리 차원에서 추가 코드의 발생시에도 어느 영역에 보강할것 인가에 관하여 문제시 된다.
여기에서 재미있는 기법을 이야기 해본다. 차차 소개될 smart pointer와 더불어 Standard C++ 라이브러리에 포함되어 있는 auto_ptr template 클래스를 이용한 해결책인데 auto_prt은 이렇게 생겼다.
그리고 해당 auto_prt의 적용한 모습은 다음과 같이 보인다.
이런 const 포인터의 경우에는 반드시 초기화 리스트를 이용하여 인자를 초기화 해주어야 하는 경우이다.
그래서 더 좋은 방법은 Item 9에서 언급한 방법을 사용하는 것이다.
밑의 코드는 DB의 트랜젝션을 이용해서 에러를 처리하는 모습이다.
해당 사본은 구지 복사할 필요가 없을 것이다. 하지만 catch 는 복사해 나가고 그래야만 catch 에서 localWidget의 사본을 편집해서 이용할수 있다. 이러한 복사의 규칙은 함수 전달과 예외 인자 전달의 차이점을 설명해 준다.
주석에 되어 있는데로, 생각해 보라. throw가 복사생성자를 호출하지 않아서 효율적이다. 그리고 throw는 어떠한 형이든 예외를 전달한는데 상관하지 않는다. 하지만, 사실 예외자체가 그 형에 맞게 던져지므로 걱정이 없다. 하지만 catch문에서 예외를 던지는 객체의 형태를 바꿀 필요성이 있을때 후자를 사용해야 겠다.
전달된 객체는 간단히 참조로 잡을수 있다;그것은 상수 참조로 전달될 필요성은 없다. 그러나 상수 참조가 아닌 전달 임시 객체들은 함수를 부르는걸 허용하지 않는다.
우리는 지금까지 복사에 의한 지불을 생각할수 있는데 참조의 전달은 반대로 복사하는 작업이 없다. 즉, 한번의 복사 이후 계속 같은 객체를 사용하게 되는 셈이다.
우린 아직 포인터 전달에 의한 걸 의논하지 않았다. 하지만 포인터를 이용해 예외를 던지(전달:throw)하는 것은 함수상에서 포인터를 전달(pass)하는 것과는 다른걸 알수 잇을 것이다. 즉, 포인터의 복사본이 이동하는데, 이렇게 되면 pointer를 전달하는 쪽의 영역에서 throw에 의해 튀어 나가면 포인터가 가리키고 있는 객체는 소멸되므로 포인터에 의한 예외 전달(던지는것:throw)는 피해야 한다. (전역의 static 객체의 포인터라면 이야기는 달라진다. 뒤에 다룬다.)
를 이렇게 사용 할수 있다.
catch 구문을 사용할때 해당 구문을 통해서 전달받은 예외 객체들을 받는 방법을 잘알아야 한다. 당신은 세가지의 선택을 할수 있다. 바로 전 Item 12에서 언급한 것처럼 값(by value), 참조(by reference), 포인터(by pointer)이렇게 세가지 정도가 될것이다.
* Item 14: 예외를 신중하게 사용하라.
unexpected에 관련한 기본적인 행동은 terminate를 호출해서 terminate내에서 abort를 호출로 강제로 프그램을 멈추게 한다. 이 의미는 바로 abort는 프로그램을 종료할때 깨끗이 지우는 과정을 생략하기 때문에 활성화된 스택 프레임내의 지역 변수는 파괴되지 않는다.(즉, 프로그램이 멈추고 디버그시 그 상황에 현재의 자료 값을 조사할수 있다는 의미). 그래서 예외 처리의 명세을 어긴 문제는 상당히 심각한 상황이나, 거의 발생하지 않은 상황이다. 불행히도 그런 심각한 상황을 이르게 하는 함수 작성이 용이하다는게 문제이다. 컴파일러는 오직 예외 명세에 입각한대로 부분적으로 예외 사용에 관한 검사를 한다. 예외가 잡을수 없는것-언어 표준 상에서 거부하는(비록 주의(wanning)일지라도) ''금지하는'' 것- 은 함수를 호출할때 예외 명세에서 벗어나는 함수일것이다.
자 그럼 예외 명세이 적용된 f2를 보자. 다음은 오직 int만을 예외로 던질것이다.
f1이 f2의 함수 명세과 다른 예외를 던지더라도, C++상에서는 f2에서 f1를 부르는것을 허용한다.
이 템플릿은 oprator== 함수를 모든 형에 적용시키는 것이다. 아마 같은 주소에 같은 타입이면 true를 반환하지만 아니라면 그것은 false를 반환한다. 이런 템플릿은 아무런 예외도 던지지 않은 템플릿으로 부터 함수가 만들어지는 상태에 따라 적합한 예외가 포함된다. 하지만 그것은 꼭 사실이 아니다. 왜냐하면 operator&(주소 반환 operator)가가 꼭 같은 몇몇의 형들을 위해서 overload되었기 때문이다. 만약 사실이 그러하다면 operaotr&가 operator== 안쪽에서 불릴때 예외를 던질 것이다. 그렇게 되면 우리의 예외 명세는 거부되고, 곧장 unexpected 로 직진하게 되는거다.
자, 지금 1온스의 예방는 차후 1파운드의 피해보다 낳지만 때로는 예방이 어렵고 피해가 더 쉬운 경우도 있으리라. 언급한 것처럼 때때로 unexpected 예외 직접 맞서는 것은 처음에 그것을 에방하는것 보다 쉽다. 예를들자면 만약 당신이 예외명세를 엄격하게 작성했지만 당신은 예외 명세가 되어 있지 않은 라이브러리의 함수들을 강제로 부를수 있다. 함수상에서 코드들이 바뀌는 정이라서 unexpected예외를 막는것은 비실용적이다.
- SmallTalk/강좌FromHitel/소개 . . . . 54 matches
Smalltalk White pager"의 내용에 제가 생각한 것을 몇 가지 덧붙여서 Smalltalk
의 찾아보기 어렵습니다. 이는 상용 Smalltalk 시스템의 가격이 만만치 않으며,
그러나 90년대에 들어서면서부터 훌륭한 공개용 Smalltalk 시스템이 많이 배포되
서 Smalltalk 언어는 배워볼 만한 가치가 있다는 것과 충분히 실제 응용
(application) 프로그램을 만드는데 사용할 수 있다는 것을 알려드리고자 합니
사용하여 만들어질 것이라는 이야기가 무성했습니다. 과연 오늘날 많은 무른모들
시하는 여러 가지 기술들이 개발 사용되고 있습니다. 80년대 초반에 등장하여 무
다임은 오늘날에 와서는 사실상 무른모의 모든 영역에 적용되는 패러다임이 되어
더불어 사용자의 요구에 따라 무른모를 얼마나 쉽게 유지.관리할 수 있느냐가 중
오늘날 많이 사용되고 있는 C++, Java, Object Pascal 등은 모두 프로그래밍 언
어에 객체 지향 패러다임을 적용시킨 좋은 예라고 할 수 있곘습니다. 그러나 이
각의 여유를 허용하지 않았습니다. 사람들은 자신이 이미 알고 있는 방식대로 프
되었습니다. 또한 Smalltalk 환경에서 사용되는 많은 개념들이 우리가 현재 사용
하고 있는 Delphi나 Visual Basic 등에 적용되고 있는 것으로 볼 때, 이러한 객
그럼에도 불구하고 Smalltalk는 범용 프로그래밍 언어로써 사용되기에는 몇 가지
니다. 이는 비단 Dolphin Smalltalk만이 아니라, 널리 사용되고 있는 VisualAge
for Smalltalk나 Visual Smalltalk 등의 환경에도 똑같이 적용되고 있으며, 따라
며, 이것이 Smalltalk가 범용 프로그래밍 언어로써 쓰이는데 하나의 커다란 장벽
않게 사용되고 있는 점으로 이루어진 그림(bitmap graphic)과 그래픽 사용자 환
은 사양의 시스템이 필요했던 것입니다. 비록 이러한 기능들이 개인용 컴퓨터
- SmallTalk_Introduce . . . . 54 matches
Smalltalk White pager"의 내용에 제가 생각한 것을 몇 가지 덧붙여서 Smalltalk
의 찾아보기 어렵습니다. 이는 상용 Smalltalk 시스템의 가격이 만만치 않으며,
그러나 90년대에 들어서면서부터 훌륭한 공개용 Smalltalk 시스템이 많이 배포되
서 Smalltalk 언어는 배워볼 만한 가치가 있다는 것과 충분히 실제 응용
(application) 프로그램을 만드는데 사용할 수 있다는 것을 알려드리고자 합니
사용하여 만들어질 것이라는 이야기가 무성했습니다. 과연 오늘날 많은 무른모들
시하는 여러 가지 기술들이 개발 사용되고 있습니다. 80년대 초반에 등장하여 무
다임은 오늘날에 와서는 사실상 무른모의 모든 영역에 적용되는 패러다임이 되어
더불어 사용자의 요구에 따라 무른모를 얼마나 쉽게 유지.관리할 수 있느냐가 중
오늘날 많이 사용되고 있는 C++, Java, Object Pascal 등은 모두 프로그래밍 언
어에 객체 지향 패러다임을 적용시킨 좋은 예라고 할 수 있곘습니다. 그러나 이
각의 여유를 허용하지 않았습니다. 사람들은 자신이 이미 알고 있는 방식대로 프
되었습니다. 또한 Smalltalk 환경에서 사용되는 많은 개념들이 우리가 현재 사용
하고 있는 Delphi나 Visual Basic 등에 적용되고 있는 것으로 볼 때, 이러한 객
그럼에도 불구하고 Smalltalk는 범용 프로그래밍 언어로써 사용되기에는 몇 가지
니다. 이는 비단 Dolphin Smalltalk만이 아니라, 널리 사용되고 있는 VisualAge
for Smalltalk나 Visual Smalltalk 등의 환경에도 똑같이 적용되고 있으며, 따라
며, 이것이 Smalltalk가 범용 프로그래밍 언어로써 쓰이는데 하나의 커다란 장벽
않게 사용되고 있는 점으로 이루어진 그림(bitmap graphic)과 그래픽 사용자 환
은 사양의 시스템이 필요했던 것입니다. 비록 이러한 기능들이 개인용 컴퓨터
- woodpage/VisualC++HotKeyTip . . . . 54 matches
*Hot Key를 쓰면 좋다. 스타에서 단축키 쓰는거랑 같은이유다. 마우스로 스타하는거랑 키보드까지 같이 쓰는것은 거의 천지차이다. 그만큼 유용한 단축키를 많이 쓰면 쓸수록 코딩 속도도 빨라지고 소스분석도 잘되는거같다. ^^;;
*사용도 : ***** (무지 많이 사용 없으면 코딩하기 정말 싫을거같음)
*사용도 : * ( 난 별로 사용안함 Ctrl+Tab과 F12를 더 자주이용함 )
*사용도 : ****
*사용도 : ****
*사용도 : * (가끔 필요할때까 있음)
*사용도 : * (F12를 사용함)
*사용도 : ** (그냥 실행시켜서 봄)
*사용도 : * (키를 3개씩 누를 힘이 없음 ㅠ.ㅠ)
*사용도 : ****
*사용도 : *
*사용도 : *
*사용도 : 안씀
*단어단위로 블록 설정 상당히 많이 쓰게됨 마우스를 이용할시 단어에 더블 클릭
*사용도 : *****
*사용도 : *
*사용도 : *****
*사용도 : ****
*사용도 : **
*사용도 : 사용안함(역시나 마우스로)
- 논문번역/2012년스터디/이민석 . . . . 49 matches
== 용어 사전 ==
필기 글자 인식은 패턴 인식의 도전적인 분야다. 지금까지의 오프라인 필기 인식 시스템들은 대부분 우편 주소 읽기나 은행 수표 같은 형식을 처리하는 데 적용되었다. [14] 이들 시스템이 개별 글자나 단어 인식에 한정된 반면 제약 없는(unconstrained) 필기 글자 인식을 위한 시스템은 거의 없다. 그 이유는 이러한 작업이 크게 복잡하기 때문인데 글자 또는 단어의 경계에 대한 정보가 없는 데다 헤아릴 수 없을 정도로 어휘가 방대한 것이 특징이다. 그럼에도 필기 글자 인식 기법을 더 조사하는 것이 가치 있는 이유는, 계산 능력이 향삼함에 따라 더욱 복잡한 처리를 할 수 있기 때문이다.
본 논문에서는 은닉 마르코프 모형에 기반한, 어휘(lexicon)-free 오프라인 필기 인식 시스템을 소개하고 완전한 영어 문장 데이터베이스에 관한 몇 가지 실험을 저자 독립식 그리고 대조를 위해 다저자, 단일 저자식으로 수행했다. 전처리와 특징 추출 방법을 소개하고 이에 더해 선형 판별 분석, 이서체 글자 모형의 사용, 통계적 언어 모형 같은 더욱 정교한 기법들을 조사한다. 그 뒤의 절에서는 오프라인 필기 인식에 대한 관련 작업들을 짧게 검토한다. 우리가 사용한 데이터베이스는 3절에서 소개한다. 그 다음 전처리, 특징 추출 방법, 통계적 모델링과 인식을 위한 기법을 설명한다. 평가 결과는 제안한 방법의 효율성을 입증하기 위해 7절에서 소개한다.
최근 몇 년간 오프라인 필기 인식 분야는 상당히 진전하였다. 특히 우편 주소나 legal amount 읽기를 위한, 적은 어휘를 사용한 개별 단어 인식 시스템은 높은 인식률을 달성했고 인식 정확도뿐 아니라 처리 속도를 고려해봐도 개선할 여지가 거의 없다. [2] [8]
반면에 방대하거나 아예 한계가 없는 어휘를 이용한 제약 없는 필기 글자 인식은 훨씬 어렵다. 이는 개별 단어 처리 시스템에 본질적으로 있는 문맥 지식과 단어 분할 정보가 없기 때문이다. 이런 난조에도 제약 없는 필기 글자 인식 시스템이 몇 개 개발되었다. [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]이 설명하는 접근법과 비슷하게 적용한다. 우리의 경우 이미지의 높이와 열 네 개 크기의 창이 이미지의 왼쪽에서 오른쪽으로 두 열씩 겹치면서 움직이고 기하 추출의 쌍을 추출한다.
강도 분포의 평균값의 변화 뿐 아니라 하단 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 변환은 다음 고유 벡터 문제를 풀어 계산한다.
필기 글자 인식을 위한 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과 비슷하다.
위 식에서 P(W)는 글자 시퀀스 w의 언어 모형 확률이고 P(X|W)는 이 글자 시퀀스를 그 글자 모형에 따라 입력 데이터 x로서 관찰한 확률이다. 우리의 경우 absolute discounting과 backing-off for smoothing of probability distribution을 이용한 바이그램 언어 모형을 적용하였다. (cf. e.g. [3])
우리의 필기 인식 시스템을 평가하기 위해 단일 저자식, 다저자식, 저자 독립식 인식 이렇게 세 가지 실험을 수행했다. 표 1에 이들 실험의 글자 오류율이 있다. 처음 두 열은 실험 종류, 3열은 언어 모형을 적용하지 않은 오류율, 4열은 바이그램 언어 모형을 글자 수준에서 적용한 결과다. 언어 모형은 IAM 데이터베이스의 [a..d] 범주의 모든 글을 사용하여 생성하였고 실험 내내 일정하다. 표 2에는 어휘-free 단어 인식과 어휘 기반 단어 인식이 나타나있다.
- 창섭/배치파일 . . . . 49 matches
대부분의 사람들은 배치파일이 도스환경을 쉽게 만든다는 사실을 과소평가하는데, 컴퓨터를 좀더 쉽게 사용하고 싶다면 배치파일을 꼭 짚고 넘어가는것이 좋습니다.
컴퓨터의 동작 상태를 살펴 보면 항상 사용자와의 상호작용에 의하여 작업이이루어진다는것을 알 수 있습니다. 도스라는 운영체제도 사용자가 명령을 입력하면 그 명령에 대해 도스가 분석하여 사용자가 원하는 실행 결과를 제공합니다.
따라서 사용자는 항상 도스 프롬프트 상에서 일일이 키보드를 이용한 타이핑으로 명령을 내려야 하고, 하나의 명령이 내려지면 완료될 때까지 다음 명령을 내릴수가 없습니다. 작업 과정이 얼마되지 않는다면 큰 상관이 없으나 그 과정이 매우 길고 복잡하다면 사용자는 지루함을 느끼게 됩니다. 또한 비록 짧은 작업과정이라도 컴퓨터를 켤때마다 매번 똑같은 과정을 일일이 지시하는 것도 귀찮을 것입니다.
그래서 사용자들은 문서작성에 이용하는 워드프로세서나 텍스트에디터 등을 이용해 배치 파일을 작성할 수 있습니다. 그러나 워드프로세서는 덩치가 크고 원래 목적이 편집과 출력을 위해 만들어진 것이므로 단순한 배치 파일을 작성하는 데는 권하고 싶지 않습니다.
저장할때도 워드프로세서 고유의 포맷(예" .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]
배치 프로그램 내에서 사용자의 선택을 묻기 위해 사용됩니다. 배치 파일 제작자가 설정한 물음을 출력하면서 지정된 키 입력을 기다립니다. 이 명령은 배치파일 내에서만 사용 가능합니다.
◇ 사용법 :choice [/C[:]문자열][/N][/S][/T[:]기본키,대기시간][메세지]
- /C[:]문자열 : 사용자가 선택할 수 있는 키목록을 [] 괄호 내에 ', ' 로 구분하여 출력하고 /C 스위치를 사용하지 않으면 기본적으로 YN이 사용됩니다.
- /S : 사용자의 입력에서 소문자, 대문자를 구분하도록 합니다.
- /T[:]기본키, 대기시간 : 기본키를 지정한 후 대기시간 동안 사용자의 키 입력이 없으면 자동적으로 기본키가 입력된 것으로 간주하고 진행됩니다. 지정 가능한 대기시간은 초단위이며 0에서 99 사이의 값입니다.
◇ 설명 : 입력 가능한 키를 a,b,C,D로 한정하며 사용자로부터 입력되는 영문자의 대,소문자를 구분하는데, 만약 5초 내에 사용자로부터 키 입력이 없다면 C 가 입력된 것으로 간주합니다. 그리고 화면에는
◇ 사용법 : echo [on/off] [문자열]
◇ 사용법
For %%<변수> IN (<집합>) DO <명령> [<옵션>] ☞ 배치파일용.
For %<변수> IN (<집합>) DO <명령> <옵션>] ☞ 순차처리용.
- %%<변수>, &<변수> : 변수로 사용되는 것은 임의의 영문자로 1자만 허용됩니다. 주의할 점은 배치파일에서 사용할 경우는 반드시 %%처럼 두개를 연달아 사용해야 하며, 일반 도스 프롬프트에서 사용할 때는 % 하나만 사용합니다.
- 새싹교실/2012/AClass/1회차 . . . . 48 matches
-상수형 :상수는 변환 할 수 없는 고유의 수, 프로그램을 개발할 때 변경되어 발생 할 수 있는 버그등의 위험을 줄이기 위해 사용(#define,const)
5.#define이 무엇을 의미하는지 쓰고, 이것을 사용한 '간단한' 프로그램을 하나 작성해보세요.
- 확장성이 큰 것으로 , 긴 프로그램을 설계할 때 #define으로 정의된 것을 사용할수 있어서 편리하다.
7.if, else, else if문을 이용한 프로그램을 하나 작성해주세요. else나 else if를 3번이상 써 주세요.
8.switch-case문을 이용한 간단한 프로그램을 하나 짜 보세요.(eg. Grade계산기 A,B,C)
9.while문을 이용한 프로그램을 하나 작성해 주세요. C수업시간이나 과제에 나온 것을 새로 짜보아도 좋습니다.
12.2중 for문을 이용하여 다음 모양의 별찍기를 작성해주세요.
- 함수형 프로그래밍은 프로그래밍의 주된 구조가 함수 호출에 기반을 둔 프로그래밍을 말한다. 기존 명령형 언어로 작성한 프로그램보다 간결하고 더 추상적이며 이해하기 쉽고 형식적인 분석과 조작이 용이하다는 특징이 있다.
-동일한 데이터형을 가진 자료구조로, 변수이름을 각각 다른 이름으로 사용해야 하는 번거러움을 줄이기 위해 사용한다.
6.배열을 사용한 간단한 프로그램을 하나 만들어보세요.
문자형, 넓은 범위에서 보면 일종의 정수형으로 사용될수 있다.
내용을 포함 시키도록 지시한다.
표준 입출력 라이브러리 함수를 사용하기 위해서 쓴다.
5.#define이 무엇을 의미하는지 쓰고, 이것을 사용한 '간단한' 프로그램을 하나 작성해보세요.
#define : 특정 대상을 정의함으로써 전처리기가 이를 특별하게 다루도록 하고싶을때 사용한다.
내용으로 확장된다.
7.if, else, else if문을 이용한 프로그램을 하나 작성해주세요. else나 else if를 3번이상 써 주세요.
8.switch-case문을 이용한 간단한 프로그램을 하나 짜 보세요.(eg. Grade계산기 A,B,C)
9.while문을 이용한 프로그램을 하나 작성해 주세요. C수업시간이나 과제에 나온 것을 새로 짜보아도 좋습니다.
12.2중 for문을 이용하여 다음 모양의 별찍기를 작성해주세요.
- ProjectPrometheus/Journey . . . . 47 matches
그동안의 Pair 경험에 의하면, 가장 Pair 가 잘 되기 어려운 때는, 의외로 너무 서로를 잘 알고 Pair를 잘 알고 있는 사람들인 경우인것 같다는. -_-; (Pair 가 잘 안되고 있다고 할때 소위 '이벤트성 처방전'을 써먹기가 뭐하니까. 5분 Pair를 하자고 하면 그 의도를 너무 쉽게 알고 있기에.) 잘 아는 사람들과는 주로 관찰자 입장이 되는데, 잘 아는 사람일수록 오히려 개인적으로 생각하는 룰들을 잘 적용하지 않게 된다. (하는 일들에 대한 Tracking 이라던지, 다른 사람이 먼저 Coding 을 하는중 이해 못할때 질문을 한다던지 등등. 차라리 그냥 '저사람 코딩 잘 되가나본데..'. 오히려 예전에 '문제'라고 생각하지 않았던 부분이 요새 '문제' 로 다가 온다.)
* 대안을 생각중인데, 일종의 Facade 를 만들고, Controller 의 각 service 들은 Facade 만 이용하는 식으로 작성하면 어떨까. 그렇게 한다면 Facade 에 대해서 Test Code 를 작성할 수 있으리라 생각. 또는, Servlet 부분에 대해서는 AcceptanceTest 의 관점으로 접근하는 것을 생각. 또는, cactus 에 대해서 알아봐야 하려나.. --["1002"]
어제 마지막 고민이 지하철을 타고가면서 해결되었다. 그리고 오늘 와서 생각대로 적용하니 이후 Test들에서는 아무런 문제가 발생하지 않아서 안도의 한숨을 내쉰다. 시스템들이 Test를 통과하자, 가장 큰 문제로 발생된 것이 Test의 작성과 확인이었다. 책 4권과 사용자 3명.. 정말 머리에서 피시식 연기가 나는 느낌을 받는다. 그나마 Pair이기에 한명이 코드를 보면서 생각하고, 한명은 종이를 보면서 생각하면서 동기화를 시키니 다행이지, 혼자였다면 후유.. 문뜩 온라인 게임들이 굉장히 긴 시간동안 베타 테스트를 하는 것이 이해가 간다. --["상민"]
Object-RDB Mapping 에 대해서는 ["PatternsOfEnterpriseApplicationArchitecture"] 에 나온 방법들을 읽어보고 그중 Data Mapper 의 개념을 적용해보는중. Object 와 DB Layer 가 분리되는 느낌은 좋긴 한데, 처음 해보는것이여서 그런지 상당히 복잡하게 느껴졌다. 일단 처음엔 Data Gateway 정도의 가벼운 개념으로 접근한뒤, Data Mapper 로 꺼내가는게 나았을까 하는 생각.
* 도서관은 303건 초과 리스트를 한꺼번에 요청시에는 자체적으로 검색리스트 데이터를 보내지 않는다. 과거 cgi분석시 maxdisp 인자에 많이 넣을수 있다고 들었던 선입견이 결과 예측에 작용한것 같다. 초기에는 local 서버의 Java JDK쪽에서 자료를 받는 버퍼상의 한계 문제인줄 알았는데, 테스트 작성, Web에서 수작업 테스트 결과 알게 되었다. 관련 클래스 SearchListExtractorRemoteTest )
서버쪽 클래스들에 대해서 Refactoring 을 시도 데이터클래스이면서 그 용도가 조금씩 달랐던 클래스들을 하나로 묶었다. (일단 모여해쳐 시도용으로) 그러면서 안쓰는 클래스들을 조금씩 지워나갔다. 패키지들중 Test 패키지와 메인 소스 패키지, 임시 코드 패키지들에 대해서 화일들을 옮기고 정리했다. 아직 완벽하게 정리된것 같진 않지만, 개인적으로는 이전에 비해 만족스러웠다. (이제 Target은 Resin 쪽과 임시소스들 디렉토리.)
* Code Review 로서 Refactoring 이 이용된다고 했다시피, Refactoring을 해 나가면서 전체 프로그램의 그림이 좀 더 이해가 갔다. 한동안 해당 프로그램에 대해서 플밍 리듬을 놓쳤을때 Refactoring 을 시도하는것도 좋은 전략이라 생각.
* MockObjects 를 이용, Database 에 대해서 MockObjects Test 와 Real DB Test 를 같이 해 나가보았다. DB - Recommendation System 연결을 위해서는 RS 에서의 object 들과 DB 와의 Mapping 이 필요하다고 판단, DB Schema 를 같이 궁리한 뒤, Test 를 작성하였다. 이때 이전 기억을 떠올리면서 MockObjects Test 를 상속받아서 Real DB Test 를 작성하는 식으로 접근해봤는데 좋은 방법이라 생각.
* Martin Fowler 의 PatternsOfEnterpriseApplicationArchitecture 를 읽어보는중. 우리 시스템의 경우 DataMapper 의 개념과 Gateway 의 개념을 적용해볼 수 있을 것 같다. 전자는 Data Object 를 얻어내는데에 대해 일종의 MediatorPattern 을 적용함. DB 부분과 소켓으로부터 데이터를 얻어올 때 이용할 수 있을 것 같다. 후자의 경우는 일반적으로 Object - RDB Data Mapping (또는 다른 OO 개념이 아닌 데이터들) 인데, RowDataGateway, TableDataGateway 의 경우를 이용할 수 있을것 같다.
상민쓰와 함께 ADO 를 이용한 부분에 대해 DB Mock Object 예제를 작성했다. 전에 상민이가 DB Layer 를 두지 않고, ADO Framework를 거의 치환하게끔 작성했다고 판단, 이번에는 내부적으로 ADO를 쓰건 가짜 데이터를 쓰건 신경쓰지 않는 방향으로 같이 작성하였다. ADO 는 기존에 ["1002"] 가 작업했던 프로그램에서 일부 사용한 소스를 고쳐썼다.
* STL 을 쓰면 편리하긴 한데, 확실히 학교컴퓨터에선 컴파일이 느리긴 한것 같다는; (하긴, 우리가 map 에 vector 겹친 형태로 작성을 했으니 -_-..) 그래도 STL Container 만 어느정도 이용해도 기존의 순수 C++ 을 이용할 때보다 훨씬 편하다는 점이 즐겁다. 만일 mock object 를 STL 이나 MFC Collection 없이 구현한다고 생각한다면? 그리 상상하고 싶지 않을 정도이다. (특히 DB에선) 그러면서 느끼는점이라면,
'과연 사람들이 이 소스를 보고 나서 MockObjects 를 적극적으로 이용하려고 할까?' 라는 점. (STL 을 좀 많이 써서. ^^;)
GJ가 도입되면 IBM의 Incremental Compile도 무용지물 아닐까. --["상민"]
["Jython"] 의 편리함을 깨닫았다. Java 의 클래스들에 대해서 바로 Import 하여서 쓸 수 있다. 그리고 ["Python"] 에 있는 라이브러리들을 거의 그대로 이용할 수 있다. 단, 한글 문제로 걸림. AcceptanceTest 의 경우 ["Python"] 으로 작성함.
* ''돌아가는 환경의 기본 인코딩을 설정해주면 될 듯 함. Jython이 자바로된 클래스를 바로 쓴다니, Writer 객체를 얻을때 인코딩 설정을 해주면, 해당 Writer로 빠져나가는 내용은 설정된 인코딩을 적용받음. 받아들일때도 마찬가지로, POST로 넘어온 값을 매번 인코딩 할수도 있겠지만, 그보다는, 시스템에 직접 명시해줘서 일괄적으로 바뀌는 방식을 추천함. 예를들자면, contentType="text/html; charset=euc-kr" 하는식으로 설정할 경우, 얻어오는 값들은 euc-kr로 인코딩된 값을 얻어올 수 있음. --이선우''
암튼, 이후 다시 코드 구축 방법에 대해서 일단 이야기를 하였고, (여기서는 일단 서로 합의하에 ["1002"] 스타일 식으로 진행했다. 해당 클래스가 이용되어지는 모습을 먼저 생각하고, 시나리오에 따른 코드의 뼈대를 만들어가는 방식) 그 이후로는 오히려 진행이 빨라졌다.
Client (클래스 이용자) 는 Library 에게 keyword 를 던지며 검색을 요청하면, Library는 그 keyword를 이용, 검색하여 Client 에게 돌려준다.
즉, RDD 를 위한 CRC 세션중 계속 그 클래스들의 추상화 정도를 놓고 서로 클래스들을 추출해내는데 어려움을 겪었다. ('용어는 어느정도 추상화를 시켜야 할 것인가?', '내부 구현 시스템이 가급적이면 드러나지 않는 것이 일반적으로 좋은 디자인이라고 하는것 같은데 막상 우리가 BottomUp 을 하여 뽑아낸 디자인엔 이미 이름이 'HttpSpider' 등 이고..' 등등)
* UserStory 와 사용자 시나리오를 혼용해서 쓴 것 같은데, UserStory Page 를 참조.
* UserStory 와 Scenario 일부러 혼용해서 썼다. 실제로 우리는 둘다 이용했다고 생각하기 때문에 특별히 구분할 생각을 안했음 --상민
- 새싹교실/2012/세싹 . . . . 46 matches
* 반드시 ZeroWiki에 작성해주세요. 하위 페이지를 만드는 것도 허용합니다.
* 여러분들이 배운 내용을 정리해주세요. 학습효과가 더 커집니다.
* 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
=== 수업내용 ===
* wiki를 왜 쓰는지, 어떻게 사용하는지에 대해 배웠습니다.
4) terminal 실행 -> .c 파일이 있는 경로로 이동 (ls와 cd를 이용합니다.)
* wiki 사용법 익히기
* 새싹 첫시간을 가졌습니다. 캡스톤실도 처음 들어가봐서 많이 신기했습니다. 처음 듣는 용어, 처음 보는 화면들 생소한게 많지만 재미있을 것 같아서 기대가 됩니다. 숙제도 권장사항도 열심히 해보겠습니다. 앞으로 잘 부탁드립니다. - [권영기]
=== 수업내용 ===
1) gcc 컴파일 옵션이 어려웠습니다. - gcc 컴파일 옵션의 대부분은 컴파일에 크리티컬한 것이 아니라 사용자에게 정보를 제공하는 것이 목적입니다. 그냥 안써도 되요 :D
1) 우리가 사용하는 인터넷은 패킷 스위치 방식으로 소포에 주소를 써서 목적지에 보내는 것 처럼 작동하는 네트워크 입니다.
- app : 우리가 실제로 사용하는 서비스를 제공하는 계층입니다. http, smtp, ftp등이 있습니다.
- 이런 기능들을 단계별로 나눈 이유는, 자신의 하위 계층의 구현내용이 어떤지 잘 몰라도 그 기능을 사용할 수 있도록 하기 위해서입니다.
4) 리눅스 환경에서 gcc를 사용해 봅시다.
5) 어려운 점은 카톡이나 위키 댓글을 이용해 주세요.
* 이 반의 수업내용을 보니 저도 참여하고 싶어지는군요 =_=ㅋ 재밌겠네요 ㅋㅋ - [김태진]
* 소켓 프로그래밍에 대해서 배웠습니다. 수업 내용을 잘 따라가지 못할 것이 두려워 걱정을 많이 했는데 선생님이 설명을 잘 해주셔서 수업 내용을 이해 할 수 있었습니다. 옛날에 자격증 딸 때 보았던 단어들이 막 나오니까 신기했습니다. 다음 수업까지 복습을 열심히 해야될 것 같습니다. '''아 그리고 선생님의 강의 노트가 굉장히 탐이 났습니다'''. - [권영기]
* 오피에서 숙제를 했습니다. VS로 하려니까 뭔가 막 오류가 나는데 고치지는 못하겠고 그래서 우분투를 깔아서 시도를 했네요. 용어가 익숙하지 않아서 그런지 함수 설명을 봐도 한번에 와닿지 않아서 힘들었습니다. 아 그리고 숙제를 하다가 생긴 문제인데요. 서버 프로그램을 처음 실행했을 때는 괜찮은데 두 번째로 실행했을 때는 Bind에러가 나네요. 그래서 매번 실행할 때마다 포트값을 수정해야했습니다. 왜 이런 문제가 생긴걸까요? - [권영기]
=== 수업내용 ===
* 지난 시간에 수업한 내용에 대해 이야기 했습니다.
- 새싹교실/2012/주먹밥 . . . . 45 matches
|| 12 || 용상훈 ||
|| 용상훈 || O || O || X || O || X || O ||
* [박도건] : 컴퓨터에 관한 여러가지 잡 지식 + 프로그램 사용법 습득, 네트워크 프로그래밍, 게임 만들어보기.
* [용상훈] : 기본적인 c언어와 안드로이드,아이폰 어플을 만들기 프로그래밍 사용법 습득.
* 맨 왼쪽부터 박도건, 김준석, 한원표, 용상훈 입니다.
* Linux에서 GCC를 사용한 컴파일 시범
* 한원표 : 새싹교실 첫 수업이었다. 박도건, 용상훈이라는 동기들과 같이 하게되었는데 앞으로 친해졌으면 좋곘다. 처음에는 새싹교실을 하는 이유와, 진행방식 등에 대해 선배님께 설명을 들었다. 그리고 wiwki에 가입해서 앞으로 우리가 새싹교실에서 배운것, 느낀것을 직접 편집할 수 있다는 것이 좋았다. 그 후에 Virtual Box라는 것으로. Hello World라는 프로그램을 짯는데 새로운 환경을 볼 수 있어서 좋았지만 한편으로는 처음보는 환경이라 어색한 감이 있었다. 그리고 어플 프로그램을 보여주셨는데. 친구들은 이해하는것 같은데 나만 잘 못하는 것 같았다.
* 용상훈 : 오늘 경험했던 일은 새싹교실은 "어떻게 된다"라고 설명하는 시간이었다. 처음에 새싹교실에 들어가면 무지 어색할 것 가았는데 그렇지 않았다. 컴퓨터 3대를 앞에두고 wiki에 한해서 처음 이야기를 들었다. 생소한것이어서 많이 신기하셨다. 그리고 버츄얼 박스 받고 리눅스 환경를 처음보았다. 재미있을것 같다. 그리고 가장 신기한 일은 고등학교 선배님인 박성현 선배님을 뵙는데 너무 신기 하였다. 먼저 인사를 드렸어야 했는데.. 인사드리고 전화번호도 알려드렸다. 신기한 하루였다.
* 박도건 : 캡스톤설계실(208-216)에서 김준석 선배님과, 한원표, 용상훈 동기들과 같이 3월 21일 PM6시에 gcc, Linux, android example, wiki작성법 등을 배웠다. 나랑 비슷해보이는 친구가 있어서 같이 프로젝트 할 수 있을것 같다.
* 김준석 :용상훈, 한원표, 박도건을 이끌고 새싹을 캡실에서 진행해보았다. 우리반의 징크스는 끝나지 않았다. 꼭 걸러내도 기본을 아는 친구들이 아무것도 모르는것처럼 들어와. 여튼, 그래도 새로 새싹을 가르칠수 있고 좀 알고 있는 학생들이 들어와서 좋다. 강의를 다음시간에 팍팍나가도 될것 같다. 2주차에 대해 코딩하는것이나 앞으로의 진로에 대해 물어보았고 현재 전체적인 진도나 수준을 간접적으로 알 수 있게 된것이 가장 큰 성과다.
=== 교육 내용 ===
* 이소라 때리기 게임을 Linux gedit를 사용해 코딩을 시켜봄.
* #define 선언문의 사용법에 대해 알려주었습니다. #define으로 매크로를 선언해놓으면 편하게 선언 단어를 만들음으로 쓸수있지용? 그 응용에 대해서는 다음에 기회가 되면 알려주겠습니다.
* 헤더 파일들에는 뭐가 들어가는지 한번 알아보았습니다. math.h에는 수학에 관련된 함수. time.h에는 시간 제어에 관련됨 함수를 사용했죠 .srand(time(NULL))이 왜 쓰이는 지는 아직 안알려주었답니다^.^
* if문, switch()case: default:}, for, while문의 생김새와 존재 목적에 대해서 알려주었습니다. 말그대로 프로그램의 중복을 없애고 사용자의 흐름을 좀 더 편하게 코딩할수 있도록 만들어진 예약어들입니다. 아 switch case문에서 break를 안가르쳤네요 :(
* 용상훈 - 세 정수 정렬하기
* 용상훈 - 윤년판단하기
* 용상훈 - 과제에 치여살음. 학교 짜증남. 고등학교 친구 살짝 만나고. 주말에는 MT를 빠지고 할머니 댁에 갔습니다. 참잘했어요. 그리고 가족들 외식했었음. 과제했음. 소설이나 자기계발서 읽는거 좋아해서 그거 읽고. 운동했습니다. 매일. 달리기. 웨이트도 하고 삽니다. 전 건강해 질꺼에요 뿌잉뿌잉 *^^*
* 용상훈 헤드뱅잉 - [김준석]
=== 수업 내용 ===
- MoniWikiACL . . . . 43 matches
* @ALL: 모든 사용자 (priority: 1)
* @User: 등록 사용자 (priority: 2)
== 사용자 정의 그룹 @group 그리고 @group의 priority ==
##@그룹이름 사용자리스트 [priority]
/!\ 여기서 Anonymous 사용자는 @Guest로 지정되어 있으며, @Guest는 미리 정의된 그룹이 아닙니다.
* @Block deny * // 모든 페이지(*)를 @Block 사용자그룹에 대해 모든 액션(*)을 거부(deny)
/!\ IP, CDIR, 부분IP 등등은 그룹 지정에서만 사용 가능합니다.
* `allow` : 허용
# 페이지이름 @그룹/특정사용자 allow/deny 액션리스트
=== 간단한 적용의 일부 ===
@Guest Anonymous // @Guest 사용자 그룹 정의
* @ALL deny * // 모든 페이지(*)를 모든 사용자(@ALL)에서 모든 액션(*)을 거부(deny)
* @ALL allow ticket // 모든 페이지를 모든 사용자에게 ticket 액션을 허락(allow)
// 모든 페이지(*)를 일반 가입 사용자에게(@User) 허락(*)
// WikiSandBox 페이지를 @Guest 그룹에 edit,info,diff 액션을 허용(allow)
// 사용자 Foobar는 WikiSandbox 편집 못하게 함
=== 완전한 적용의 예 ===
@Guest Anonymous // @Guest 사용자 그룹 정의
// 모든 페이지(*)를 모든 사용자(@ALL)에서 모든 액션(*)을 거부(deny)
// 모든 페이지(*)를 모든 사용자(@ALL)에게 ticket 액션을 허락(allow) ticket은 가입 폼에 나오는 로봇가입방지 captcha
- SmallTalk/강좌FromHitel/강의2 . . . . 42 matches
Smalltalk를 사용하여 프로그램을 짜기 위해서는 우선 여러분의 시스템에
Dolphin Smalltalk를 사용할 것이므로, 자료실에서 Dolphin Smalltalk를 내
원래 Dolphin Smalltalk는 상용과 공개용 Smalltalk 환경을 같이 배포하고
있습니다. Dolphin Smalltalk 1.1판은 공개용이며, 2.1판은 상용입니다. 현
재 필자가 사용하고 있고 또한 자료실에 올려진 환경은 1.1판입니다. 그러므
로 여러분이 마음대로 전송 받아서 사용할 수 있을 것입니다.
이름을 지원하는 압축 프로그램을 사용하여 압축을 푸십시오.
4. 다른 응용 프로그램을 설치할 때처럼 그냥 <Next> 단추를 누르면
니다. 대강의 내용은, 지금 사용하고 있는 Dolphin Smalltalk는 아직 등록
입니다. 저장 기능을 사용하려면 Object Arts사에서 무료로 배부하는 등록
지고 있습니다. 즉 흔히 사용하는 텍스트 문서 편집기와 비슷한 동작 방식을
일단 마우스나 글쇠판으로 밀대(scroll bar)를 사용해서 아래와 같은 문장이
이용하여 커서를
Space>글쇠를 이용하여 덩이를 지우게 되면, 덩이가 씌워진 명령의 실행 결
위의 문장 끝에 커서를 갖다 놓고, 앞서 사용했던 <Ctrl-D> 글쇠를 사용해서
음의 명령을 실행하면 결과를 알 수 있습니다. <Ctrl-D>를 사용하십시오.
것이 지금 Smalltalk 환경에서 사용할 수 있는 갈래(class)입니다. 맨 마지
3. 나타난 결과가 지나치게 복잡하면 <Ctrl-I>를 사용하여 "탐색기"
1. 마우스를 이용하여 끌어서 덩이를 씌우는 방법.
이용하는 방법
- XMLStudy_2002/XML+CSS . . . . 42 matches
XML Style의 지정, 브라우저의 사용, 디스플래이 방식 ,XML과 CSS의 작성 방식의 이용방법
*XML문서는 CSS를 이용해서 브라우저에 표현하는 것이 가능하다.
*하지만 XML문서는 반드시 텍스트 타입의 내용들로만 이루어진 것도 아니다
*그리고 스키마의 사용이 보편화 되면서 여러 타입의 데이터들을 포함할 수 있는 문서 포맷이 되어 좀더 다양한 디스플레이 방식이 필요하다.
<!-- mydoc.css를 사용하겠다 -->
* <HTML : A>태그를 사용 이것을 사용하기 위해서는
*그리고 위와 같이 HTML 네임 스페이스를 지정한 경우에는 <HTML : A> 뿐 아니라 다른 HTML의 태그들도 HTML 네임 스페이스의 Prefix를 붙여 사용할 수있다.
IE5.0을 브라우저로 사용하고 스타일로는 CSS를 사용하여 볼 수 있는 방법을 설명한 것 입니다.
<PA>XML의 스타일시트 언어는 XSL로, XSL로 기술된 스타일시트를 이용하여,
XML을 지원하게 되면서, CSS도 XML의 스타일시트로 이용할 수 있게 되었다.
현재 IE5.0에서는 XML의 표준 스타일시트인 XSL과 CSS로 작성된 스타일을 모두 사용할 수
사용한 경우, XML 문서를 Parser를 통해 파싱한 뒤
내용들을 내부적으로 HTML로 변환해서,
스타일시트를 만들어져 있어야 하고, 어떤 스타일시트를 사용할 지를 해당 XML문서 내부에
<PA>만약 XSL로 기술된 스타일시트를 사용하고자 한다면, 다음과 같이하여 사용한다.</PA>
<PA>이러한 사용할 스타일시트를 선언하는 부분은 XML 문서의 프롤로그에 위치하며,
<LCOMPO>(4) XML문서에 스타일로 사용하고자 하는 CSS를 적는다.</LCOMPO>
<PA>DTD를 보고, 사용되는 엘리먼트들에 대해서 스타일을 지정해 둔다. 만약 DTD를 사용하지 않는 문서라면, 직접 문서내용을 보고 문서 내에서 사용되는 엘리먼트들을 찾아봐야 한다.
같은 DTD를 사용하는 XML 문서들에 대해서는 같은 스타일을 지정해서 사용할 수 있으므로,
스타일은 한 번만 작성해도 같은 클래스에 속하는 XML문서들이 함께 사용할 수 있다.
- 제12회 한국자바개발자 컨퍼런스 후기/유상민의후기 . . . . 42 matches
* 원문 내용중에는 내용 중 메모, 지적질(?), 아이디어들이 뒤섞여 있어서 내용은 제거. JCO 의 pdf 찾아보면 됨. 없다고 판단되는 내용만 남김 --NeoCoin
필요 없는 내용. 나와서 맑은 공기 쐬면서 배회하다 아는 사람 만나서 놀람.
다만, '기술 변화의 중심에 서라 (한국오라클 최윤석 전무)'건은 내용은 의미 없었는데, 발표자 '최윤석'씨의 부지런함에 놀랐다. 왜 한국 오라클에서 일하는 사람이 저렇게 해야하는지 이해가 안갔다. 추측할수 있는건 두가지, 오라클 전무 그만두고 사업 준비 하던가, 오라클 전무 자리가 정말 할일이 없어서 자신이 좋아하는 취미생활 하기.
내용 생략
내용 코멘트 생략
내용을 들으면서 '이거 너무 워터폴인데?' 라고 생각했는데, 문서에 써 놓은거에 양에 비해서 비해서 잡아놓은 워크샵 일정이 매우 짧다. 앞뒤가 안맞는거 같다.
* 메뉴얼 주었을때 따라하는 사람은 없을 것 같다. 그래서 보조자가 중요하다고 했는데, 위의 내용은 회의의 주최나 진행자만 자세히 알고 있으면 될것 같다. 이걸 가지고 질문하는 분들이 안쓰럽게 느껴졌다.
* 자신의 이론을 세웠다면, 이를 패턴화 하고 용어를 만들고, 사례를 만들고, 통계를 뽑고, 결과를 반영해야 이정도 발표를 해야하지 않을까. 싶다.
* 많은 방법론과 경험을 통해 정립했다고는 하지만.. 글쎄.. 10년전에 소프트웨어 공학 책 그대로 읽는것과 별 차이를 못느끼겠다. 액션에 대한 부분의 용어 설명이 필요한 부분이 너무 많은 것 같다. 절차가 너무 많다. 이걸로 중소기업이나 소기업을 실행하게 만드는건 무리가 있다고 느낀다.
* 나는 듣는 내내 발표자 본인이 확신을 가지지 못한다고도 느낀다. 짧은 시간에 너무 많은 내용을 읽어줘버려서 발생하는 문제로 생각한다. 그래도 이렇게 많은 정보를 이야기 하려면, 눈을 반짝이면서 신나게 해야 동조 할까말까 한데.. 너무 방어적으로 남 이야기 하는거 같았다.
* 지금 발표하신걸 '이건 뭐뭐 이다.'라고 부를만한 명확한 용어가 있나?
* 적용 전과 적용후의 차이를 측정해 본적이 있는가?
* 적용 후 사례만 모았지만 비교 데이타는 없다.
* 사용 어휘는 손영수씨와 친분을 강조하는 부분이 불편했다. 질문하는 내가 바보 같이 느껴졌다.
보조자라는 표현은 잘못이라고 생각한다. 이 사람이 주제하는 사람에게 회의가 어느 단계로 가고 있는지 알려주고 회의 내역을 기록한다고 하였다. 이건 진행자 롤인데? 왜 보조자가하지? 보조자는 '기록자'에 가까운건데? 상상에 아마 컨설팅했던 본인의 롤이 보조자가 아니었나 싶다. 워크샵 주체인 팀장 옆에서 진행 가이드하고 내용을 본인이 기록한건 아닌가 싶다. 이러면 당연히 '보조자'라는 모호한 용어의 롤이 제일 중요하지.
내가 보기에 실행 자체 데이터나 용어 정의를 잘못하지 않았을까 생각한다.
소프트웨어 진흥원에서 이런식으로 가이드를 한다는 부분이 충격이었다. 컨설팅 후 참여 인원이 지속하기 너무 어렵지 않을까 싶다. 본인이 정립했으므로, 시중에 참고할 만한 관련 서적은 당연히 없고 용어 정의 부터 모호하다. 인상 깊은건 중간에 발표자와 프로그래머의 '행복'에 대한 언급을 많이 하는데.. 난 이거 듣고 많이 우울해 졌다.
이 내용이 매우 좋은 것이라면 이런 가정을 할 수 있을 것 같다.
* 시간이 너무 짧아서 의욕에 넘친 발표자가 너무 많은 발표 내용을 넣었다.
* 내가 이해력이 낮아서 발표자가 말한 용어의 상관관계를 잘 모른다.
- DataCommunicationSummaryProject/Chapter8 . . . . 40 matches
* 에어 링크가 동작하기 위해서는 두가지 수신기가 필요한데 사용자에 의해서 작동하는게 MSU(핸드폰) 운영자에 의해서 동작하는게 BTS(Base Transceiver Station) 이다.
* 여러개의 Base Station이 BSC를 같이 사용한다.
* BSC가 연결되어 있는 BTS들에게 동적으로 스펙트럼을 할당할 수 있기 때문에 하나의 셀에 더많은 사용자를 수용할 수 있다.
* 전화기의 교환기 처럼, MSC는 사용자들을 기억하고 있다가 필요할때 부른다.
* 사용자와 연결하기 위해서 네트워크에서 중요하다
* 각각의 MSC는 아래와 같은 여러개의 데이터 베이스와 연결되어 있다.(사용자의 위치 추적과, 요금 지불 정보등을 위해서)
* 자신이 포괄하는 범위내의 사용자에 대해서만 정확한 지리적인 정보를 가지고 있다.
* 만약 사용자가 범위 밖으로 이동하면, 그 이동한 곳의 MSC 분별 번호를 대신 저장한다.
* MSC가 포괄하는 위치안에 있는 사용자에게 call 요청이 오면 사용자의 home HLR가 새로운 셀의 VLR에 접촉하고, 사용자에 연결되게 해준다.
* 이 시스템의 문제는 모든 call이 사용자의 home HLR을 통해서 연결된다는 것이다. 국제적으로 연결되면 비용이 많이 들게 된다.
* 전화 번호랑 연계하여서 핸드폰을 구분하기 위해서 사용되는 고유의 번호를 가지고 있다.
* 전화요금이 정확하게 매겨지게 하고, 도난당한 핸드폰의 정보등을 가지고 있어서 도난당한건 사용못하게 하도록 한다.
* TSCs는 단지 여러 MSC들로부터 오는 연결들의 집합을 매우 높은 용량의 케이블들 합친것일 뿐이다.
* TSC는 네트워크에서 보통 매우 적거나 때때로는 하나만 사용되지기도 한다.
* 이것은 가장큰 역할은 핸드폰 시스템 자체의 신호 프로토콜을 보통 전화선에서 전화번호와 같은 정보를 나르는데 사용하는 Signaling System 7(SS7)로 변환하는 것이다.
* 모바일 데이터도 BST나 BSC와 같이 음성 데이터와 비슷한 조직 체계를 사용한다.
* PCU는 데이터가 음성 네트워크로부터 출발하는 지점이다. 그래서 그 지점은 대기 시간이나 용량에 많은 영향을 끼친다.
* 인터넷에서 사용되는 IP와 비슷한 GTP(GPRS Tunneling Protocol)라는 프로토콜을 사용한다.
* 사용자가 이러한 특화된 서비스에 접근할 수 있도록 하기 위해서는, 운영자가 특별한 형태의 GPRS roaming을 구현할 필요가 있다.
* GRX Roaming : GPRS Roaming Exchange(GRX) 라고 불리우는 새로운 형태의 서비스 공급자를 사용한다. 이것은 다양한 GPRS 네트워크에서 GTP 트래픽을 운반한다. 더 비싸다
- ViImproved/설명서 . . . . 40 matches
구 분 내 용
▶파일 데이터 파일 응용 프로그램의 데이터(binary)
텍스트 파일 응용 프로그램의 source data 또는 문서화된 파일(ASCII)
마지막 명령반복 사용 도트 명령어(.) 택스트변경시(d s c ..) 작업 동작 반복
예 제 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
주 요용 어 번지지정 명령 vi 명령중에서 처리해야할 대상의 종류를 사용자가 지정할수 있도록 하는 명령예) d 명령에서, dw는 단어 삭제를, db는 앞단어의 삭제를 의미한다.
제어키 명령에서 Ctrl키와 다른 키의 결합을 지칭하는 용어임예) ^u는 Ctrl키를 누른 상태에서 u키를 누른다는 것을 의미
비모드형 비모드형 프로그램은 키들을 항상 같은 의미로 사용한다
:w ↓ 변경된 내용을 저장하기
:q!↓ 파일변경 내용을 무시한채 vi종료 및 시스템으로
:sh↓ 쉘의 임시사용 vi로 복귀시(^d, exit 사용)
$vi -r 화일명 시스템이 불시에 꺼졌거나(인터럽 발생시), 저장을 하지 않고 나왔을 때 파일의 변경 내용을 복구함
erase 사용자의 소거 문자로 ^H와 같다
kill 사용자의 행 말소 문자. 현 행의 입력을 소거
\ 사용자의 소거 문자나 행 말소 문자를 ESC
p 버퍼의 내용(change, delete, yank)을 현재줄 이전에 복구한다
P 버퍼의 내용(change, delete, yank)을 현재줄 다음에 복구한다
[c] 변경시 변경여부를 사용자에게 물어 본다
이 연산을 한줄에 반복해서 적용한다(/g)
이 연산을 한줄에 반복해서 적용한다(/g)
- CCNA/2013스터디 . . . . 39 matches
* 사실 여기서 보는 것이 아니라 어둠의 경로를 이용해 다운받...(쿨럭)
* OSI 계층 모델의 사용 목적
* 이해도의 증가 - 사용자가 이해하기 쉽게
* 장비개발의 용이성
|| 7계층 || 응용 프로그램 계층 (Application Layer) || 응용 프로그램의 네트워크 서비스 ||
|| 6계층 || 표현 계층 (Presentation Layer) || 응용 프로그램을 위한 데이터 표현 ||
|| 응용 프로그램 계층 || OSI 계층 모델의 세션과 표현 계층 포함. 데이터의 표현, 인코딩, 제어 ||
|| 계층 모델이다 || TCP/IP의 응용 프로그램 계층은 OSI의 표현 계층과 세션 계층 포함 ||
|| 응용 프로그램 계층 || TCP/I{의 네트워크 액세스 계층은 OSI의 데이터 링크 계층과 물리 계층 포함 ||
* 응용 프로그램에서의 세션의 수립/관리/해제 담당
* 응용 프로그램에서 사용하는 데이터의 형식, 암호화, 압축 등을 담당
* 응용 프로그램 계층
* 저럼한 비용으로 여러 호스트를 연결할 수 있다.
- 설치, 운용이 쉽다 -> 문제에 대한 해결 방법들이 많이 나와 있다.
- 확장성이 높고 비용이 낮다.
- 패스트 이더넷에서는 100Mbps 풀 듀플렉스 스위치를 사용하면 충돌(Collision)이 발생하지 않는다.
* 이더넷 관련 용어
- 차이점 : 광케이블을 사용한다(토큰링은 STP 케이블 사용), 링이 듀얼링 구조(2중 링)으로 되어 있다.
* 토큰링과 FDDI는 많이 사용되지 않아서 그런지 설명이 무척 적었음.
* CHAP..MD5 알고리즘 이용 - 패스워드 암호화(Chanllenge) -> Response -> Accept/Reject
- 채팅원리 . . . . 38 matches
서버쪽에서는 총 4개의 Thread가 사용되었다. Thread는 메모리를 공유하면서도 독립적으로 실행될 수 있는 프로세스 단위라 할 수 있겠다. 4개의 Thread는 다음과 같다.
ReceiveEvent : 클라이언트의 이벤트를 받는 부분이다. 이 이벤트가 StatusDisplay 클래스에 적용된다. 각각의 이벤트는 다음과 같다.
1. 사용자가 접속한다.
2. 사용자가 나간다.
UserListControl : 사용자의 접속을 관리한다. 채팅에 접속하려는 사람이 원하는 ID를 기존의 사용자들과 비교하여, 없으면 채팅 접속을 허락하고, 있으면 다른 ID를 사용할 것을 권한다.
Broadcast : 클라이언트끼리 주고받는 대화 내용을 전달하는 클래스이다.
SendUser : 클라이언트 사용자가 현재 접속되어 있는 사람들의 ID를 알 수 있게 List에 사용자 이름을 보내주는 클래스이다.
클라이언트쪽에는 4개의 Thread가 있다. JFrame을 사용한 클래스가 2개 있는데, 하나는 Login때 ID사용 허가를 확인한는 프레임이고, 다른 하나는 채팅의 기본 프레임이다. 4개의 Thread는 다음과 같다.
Login : 현재 채팅에 사용중인 ID와 사용하고자 하는 ID를 비교하여, 채팅 참가 허가 유무를 확인한다.
UserList : ChatMain 클래스의 사용자 List에 접속한 사용자 ID를 보여주는 기능을 한다.
클라이언트가 시작되면 Login을 위한 ID 체크를 한다. 서버에 접속하여 서버에 저장되어 있는 사용자 ID Vector에 사용하고자
하는 ID와 같은 ID가 있는지 없는지 비교한 후 결과를 클라이언트에 돌려준다. 이미 사용중인 ID이면 다른 ID를 사용할 것을 권하고, 사용가능하다면 채팅을 시작한다.
클라이언트가 대기실에 입장하면 내부적으로 클라이언트는 서버쪽에 새 사용자가 접속했다는 메시지를 보낸다. 그러면서, Login 프레임대신 ChatMain 프레임을 보이게 한다. 이제부터 대기실에서 채팅이 가능하게 된다. 서버쪽에는 새 사용자가 대기실에 들어왔다는 것을 보여준다.
== 다른 사용자의 접속 ==
새 사용자가 접속을 시도하면 처음과 마찬가지로 사용자 ID 체크를 하게된다. ID 사용 확인을 한 후에 대기실에 접속을한다. 대기실에 접속하면, 기존에 대기실에 있던 사용자들의 사용자 ID를 보여주는 리스트에 새로 들어오는 사용자의 리스트가 추가되면서, 채팅화면에 새로운 사용자가 들어왔다는 메시지가 나오게 된다.
2명 이상의 사용자가 접속한 상태이므로 실제로 채팅이 가능하게 된다. 채팅의 내용은 클라이언트의 TextField의 내용을
채팅을 종료할 때는 채팅 윈도우의 종료 버튼을 누르면 윈도우 종료 이벤트가 발생한다. 클라이언트는 채팅 종료를 확인하는 옵션 패널을 보여준 후, 서버쪽에 채팅을 종료한다는 내용을 보낸다. 이때 보내는 내용은, 자신이 사용하고 있는 ID를 제거, 자신의 주소를 제거, 사용자 1명의 감소등이다.
- Linux/디렉토리용도 . . . . 37 matches
또 OS만 깔았는데 루트디렉토리에 왜 그렇게 디렉토리가 많은지 도저히 어떤 용도로 쓰이는지를
내용을 윈도우에서 강의하는거 같다는 기분이다. 덕분에 한 2장 보면 파일을 지우는 나 -_-;)''
draft는 웹상의 내용을 기본으로 내가 추가할 만한 부분을 추가함. (그런게 있을지나 모르겠네.. 너무 좋은 내용이 많다)
ps. 내가 아는 부분은 루트에 존재하는 디렉토리의 용도에 조금 더한 수준이라서 필요하다면 참고서적을 참고하겠다.
''이 책은 배포판에 의존적인 내용이 아니라 말그대로 리눅스를 그냥 쓰는 방법을 위주로 나오기 때문에
리눅스의 디렉토리 구조를 이해하기 전에 마운트라는 개념을 이해해야할 필요가 있다. 리눅스는 모든 파티션을 /(이하 루트)에 포인터를 통해 연결한 마운트의 개념을 통해서 접근을 할 수 있다. 따라서 모든 디렉토리를 각기다른 장치 각기 다른 파티션에 나누어 넣어서 따로 보관할 수 있으며 데이터가 직접 보관되는 디스크를 따로 마운트해서 나중에 시스템을 다시 설치할때에 그 파티션만 지우지 않고 후에 마운팅하는 용도로 사용이 가능하다.
lib 디렉토리에는 컴파일러를 통해서 혹은 만들어진 파일들이 잠조하는 라이브러리들이 존재한다. 또한 하부에 modules 디렉토리에 존재하는 커널 모듈은 특수장치를 설치했거나 제거했을 경우 커널이 자동적으로 모듈을 올리지 못할 경우 insmod, rmmod, modprobe 명령어를 통해서 이런 모듈을 다룰때 이용된다. 커널 모듈의 경우 2.4커널에서는 *.o, 2.6 커널에서는 *.ko의 확장자를 가지고 있다.
* 대부분 읽기 전용이나, 일부 파일중에는 쓰기가 가능한 파일이 존재하는데 이러한 파일들에 특정 값을 지정하면 커널 기능이 변하게 됨.
* 이 디렉토리 내에 있는 파일을 cat 명령을 이용하여 보면 시스템 정보를 확인 할 수 있음.
* 네트워크 관련 설정파일, 사용자 정보 및 암호정보, 파일 시스템 정보, 보안파일, 시스템 초기화 파일등 중요 설정 파일들의 위치한 디렉토리
* /etc/skel : 새로운 사용자를 추가할 때 자동적으로 생성되는 디렉토리와 파일이 있음.
아파치를 비롯한 모든 서버의 환경설정 파일이 관리 되는 곳이다. 물론 사용자가 직접 바이너리로 설치했을 경우에는 이 곳에 위치하지 않을 수도있다. 그러나 대부분 패키지 관리자를 통해서 설치된 프로그램의 경우 이곳에서 설정이 가능하다. 직접 설치를 하는 경우라면 '''X11, apache2, init.d, rc.*, skel, xinitd.d''' 디렉토리를 많이 다루게 된다.
* /var/spool/mail : 수신 메일을 사용자 명으로 기록하는 디렉토리'''
* 일반 사용자들을 위한 대부분의 프로그램 라이브러리 파일들이 위치.
* /usr/bin : 응용 프로그램의 실행 파일이 위치
'''- 다른 장치들을 마운트 할때 일반적으로 사용하는 디렉토리
- 다른 디렉토리를 사용하여도 됨.'''
'''- 일반 사용자의 홈 디렉토리가 만들어 지는 디렉토리
- 사용자 계정을 만들면 게정과 같은 이름으로 새로운 사용자 디렉토리가
예) test 사용자 추가 후 홈 디렉토리 확인하기.
- AcceleratedC++/Chapter10 . . . . 36 matches
'''low-level'''이라는 표현은 이런 내용들이 STL구현의 근간을 이루며, 하드웨어의 동작 방식과 매우 흡사하기 때문이다.
포인터(pointer) 임의 접근 반복자로서, 배열의 요소들을 접근하기 위해서는 필수, 다른 용도로도 많이 이용된다.
보통 프로그래머가 포인터를 초기화시키는 값으로 이용하는 값은 0이다. 흔이 이를 '''널 포인터(null pointer)'''라고 부른다.
'''※ 함수포인터를 처음으로 다루는 사람은 조금 어려울 지도 모르겠습니다. 좀 어렵더라도 C, C++에서 많이 이용되는 테크닉이니 익히는 건 필수이겠지요?'''
따라서 우리가 일반적으로 사용하는 함수의 표현만으로도 매개변수로 함수를 전달시키는 것이 가능한 것이다.
하지만 이러한 자동 형 변환은 함수의 리턴형에는 적용되지 않는다. 따라서 함수를 리턴하는 경우에는 명식적으로 포인터임을 나타내야할 필요가 있다.
analysis_fp get_analysis_ptr(); // 이와 같이 이용하는 것이 가능합니다.
이런식의 문법은 많이 사용되지는 않습니다. (Addition 1에서 설명합니다.)
함수 포인터는 흔히 다른 함수의 인자로 이용된다.
while (begin != end && if f(*begin)) //여기서 Pred는 Pred(*begin)이 의미를 갖는 모든 타입이 가용합니다.
vector<int>::iterator i = find_if(v.begin(), v.end(), is_negative); // &is_negative 를 사용하지 않는 이유는 자동형변환으로 포인터형으로 변환되기 때문임.
배열은 클래스 타입이 아니기 때문에 배열의 크기를 나타내는 size_type과 같은 요소는 없습니다. 대신에 C Standard Definition 이하 '''<cstddef>''' 에 '''size_t'''로 지정된 unsigned 타입으로 배열의 크기를 사용해야합니다.
포인터도 일종의 반복자이다. 이사실에서 배열의 포인터를 이용한 접근을 생각해볼 수 잇다.
이 문법을 사용함으로써 배열의 초기화시에 사용자가 명시적으로 배열의 크기를 나타내지 않아도 된다.
"hello"와 같은 문자열 리터럴은 사실은 '''const char'''형의 배열이다. 이 배열은 실제로 사용하는 문자의 갯수보다 한개가 더 많은 요소를 포함하는데, 이는 문자열 리터럴의 끝을 나타내는 '\0' 즉 널 캐릭터를 넣어야하기 때문이다.
상기의 내용을 바탕으로 string에서 우리는 다음과 같은 초기화를 행하는 것이 가능하다.
static 키워드를 사용하여서 배열의 초기화에 소요되는 시간을 단축한다.
요소 배열은 변화하지 않느 값이므로 const 키워드 이용
'''array_pointer / sizeof(*array_pointer)''' 를 이용하면 array가 가지고 있는 요소의 갯수를 알 수 있다. 자주쓰는 표현이므로 잘 익힌다.
기타의 내용은 간단하므로 생략.
- CToAssembly . . . . 36 matches
내용이 볼만해서 올림. 흠.. ㅡ.ㅡ 이제 copy paste 도 귀찮구나;; 키보드에 치기가 싫다.
이는 하드웨어만을 고려한 것이다. 모든 마이크로컴퓨터 시스템은 하드웨어 구성요소들의 작업을 지시할 소프트웨어가 필요하다. 컴퓨터 소프트웨어는 시스템측(시스템 소프트웨어)과 사용자측(사용자 소프트웨어)으로 구분할 수 있다.
프로그램을 실행하기위해 필요한 함수들을 모아둔 기본 라이브러리나 사용자가 만든 라이브러리는 사용자 소프트웨어에 포함된다.
기계어 프로그램은 컴퓨터가 이해하고 직접 실행할 수 있는 프로그램이다. 어셈블리어 명령어는 기계어 명령어와 보통 일대일 관계로 대응하지만, 우리가 쉽게 이해할 수 있는 문자열을 사용한다. 고급언어 명령어는 영어에 매우 가까워서 프로그래머가 생각하는 방식과 자연스럽게 대응한다. 결국 어셈블리어나 고급언어 프로그램은 변환기라는 프로그램에 의해 기계어로 변환되야 한다. 이 변환기를 각각 어셈블러(assembler), 컴파일러(compiler) 혹은 인터프리터(interpreter)라고 한다.
일반적으로 어셈블리어 명령어는 라벨(label), 연상기호(mnemonic), 연산수(operand)로 구성된다. 연산수 표시방법에서 연산수의 주소지정방식을 알 수 있다. 연상기호는 연산수에 저장된 정보에 작업을 한다. 사실 어셈블리어 명령어는 레지스터와 메모리위치에 작업을 한다. 80386계열은 eax, ebx, ecx 등의 (32비트) 범용레지스터를 가진다. 두 레지스터, ebp와 esp는 스택을 조작할때 사용한다. GNU Assembler (GAS) 문법으로 작성한 전형적인 명령어는 다음과 같다:
일반적으로 함수는 함수가 사용할 변수들을 정의한다. 이 변수들을 유지하려면 공간이 필요하다. 함수 호출시 변수값을 유지하기위해 스택을 사용한다. 프로그램 실행중에 반복되는 재귀호출시(recursive call) activation record가 유지되는 방법을 이해하는 것이 중요하다. esp나 ebp같은 레지스터 사용법과 스택을 다루는 push와 pop같은 명령어 사용법은 함수호출과 반환방식을 이해하는데 중요하다.
= 스택 사용하기 =
프로그램의 메모리 일부를 스택으로 사용하기위해 비워두었다. Intel 80386 이상의 마이크로프로세서에는 스택 최상위 주소를 저장하는, 스택포인터(stack pointer)라는 esp 레지스터가 있다. 아래 그림 1은 스택에 저장된 세 정수값 49, 30, 72를 보여준다 (정수는 각각 4 바이트를 차지한다). esp 레지스터는 스택 최상위 주소를 저장한다.
C 프로그램은 수백 수천개의 변수를 다룰 수 있다. C 프로그램에 해당하는 어셈블리코드는 어떻게 변수를 저장하며 변수를 다루기위해 레지스터를 충돌없이 사용하는지 알려준다.
먼저 스택포인터의 값을 기준포인터 레지스터(base pointer register) ebp에 복사한다. 기준포인터는 스택의 다른 위치를 접근할때 사용할 고정된 기준점이다. foo를 호출한 코드에서도 ebp를 사용하므로, 값을 esp 값으로 대체하기 전에 스택에 복사한다. 명령어 subl $4, %esp는 스택포인터를 감소하여 정수를 담기위한 (4 바이트) 공간을 만든다. 다음 줄은 값 10을 ebp에서 4를 뺀 (4 바이트) 주소에 복사한다. 명령어 movl %ebp, %esp는 스택포인터를 foo 시작시 가졌던 값으로 되돌리고, popl %ebp는 기준포인터 레지스터의 값을 되돌린다. 스택포인터는 이제 foo를 시작하기 전과 같은 값을 가진다. 아래 표는 main 시작과 목록 4의 (main에서 반환을 제외한) 각 명령어 실행후 레지스터 ebp, esp와 3988에서 3999까지 스택 주소의 내용이다. 우리는 main의 첫 명령어 실행전에 ebp는 값 7000, esp는 값 4000을 가지며, 스택 주소 3988에서 3999까지 임의의 값 219986, 1265789, 86이 저장되있다고 가정한다. 또, main에서 call foo 다음에 나오는 명령어의 주소가 30000이라고 가정한다.
함수로 파라미터를 전달하기위해 스택을 사용할 수 있다. 우리는 함수가 eax 레지스터에 저장한 값이 함수의 반환값이라는 (우리가 사용하는 C 컴파일러의) 규칙을 따른다. 함수를 호출하는 프로그램은 스택에 값을 넣어서 함수에게 파라미터를 전달한다. 목록 5는 sqr이라는 간단한 함수로 이를 설명한다.
sqr의 첫번째 줄을 주의있게 살펴라. 함수를 부르는 측은 ebx의 내용을 스택에 넣고 명령어 call을 실행한다. 호출시 반환주소를 스택에 넣는다. 그리고 sqr는 스택 최상위에서 4 바이트 떨어진 곳에서 파라미터를 읽을 수 있다.
리눅스 시스템호출은 int 0x80을 통해 한다. 리눅스는 일반적인 유닉스 호출 규칙과 다른 "fastcall" 규칙을 사용한다. 시스템함수 번호는 eax에, 아규먼트는 스택이 아닌 레지스터를 통해 전달한다. 따라서 ebx, ecx, edx, esi, edi, ebp에 아규먼트 6개까지 가능하다. 아규먼트가 더 있다면 간단히 구조체를 첫번째 아규먼트로 넘긴다. 결과는 eax로 반환하고, 스택을 전혀 건드리지 않는다.
asm 명령어를 사용하여 어셈블리 명령어를 C나 C++ 프로그램에 삽입할 수 있다. 예를 들어:
일반적인 어셈블리코드 명령어와 달리 asm 문장은 C 문법으로 입력과 출력 연산수를 지정할 수 있다. Asm 문장은 아무때나 사용하면 안된다. 그러면 언제 사용해야 하나?
Asm 문장은 프로그램이 컴퓨터 하드웨어에 직접 접근하게 한다. 그래서 빨리 실행되는 프로그램을 만들 수 있다. 하드웨어와 직접 상호작용하는 운영체제 코드를 작성할때 사용할 수 있다. 예를 들어, /usr/include/asm/io.h에는 입출력 포트를 직접 접근하기위한 어셈블리 명령어가 있다.
#설명 : 반복문을 사용하여 비트 위치 찾기
#설명 : bsrl을 사용하여 비트 위치 찾기
최소한 몇 초동안 실행되도록 큰 값을 명령행 아규먼트로 주고 time 명령어를 사용하여 두 코드의 실행시간을 잰다.
결과는 컴퓨터마다 다를 것이다. 그러나 인라인 어셈블리를 사용한 코드가 매우 빠르게 실행됨을 확인할 수 있다.
- BigBang . . . . 35 matches
* C/C++/Java 언어를 공부하고 서로간의 사용상 차이점과 공통적인 패턴 학습
* namespace : 이름 중복을 막기 위해 사용
* using namespace NAME; -> NAME의 namespace를 해당 scope 안에서 이용하겠다는 것
* C는 bool이 없다!, c++은 있다. java는 boolean으로 사용한다. - C11은 있단다.
* void pointer 사용 자제합시다. void pointer가 가리키는 값의 타입을 추론할 수 없다. [http://stackoverflow.com/questions/1718412/find-out-type-of-c-void-pointer 참고]
* 많은 기능을 잘게 쪼개기 위해 함수를 사용한다.
* 코드의 재사용성을 높인다.
* global variable의 사용을 자제하자. 함수의 기능을 이해하기 어렵게 만든다.
* 참조는 내부적으로 포인터를 이용한다.
* extern "C"를 이용하면 이러한 함수 decorator가 없어진다.
* 으악 이렇게 재미있는 내용들을 못 들었다니 ㅠㅠㅠㅠㅠ - [김민재]
* #ifndef NAME : #define NAME이 되어있지 않는 경우에 작동한다. 주로 헤더파일 중복 include를 막기 위해 사용한다.
* 연산자 오버로딩 : C++에서는 operator를 이용해서 연산자에 특정 기능을 정의할 수 있다. C와 자바에서는 안 된다.
* 이 이야기는 os의 가용 메모리 풀과 상관이 있군 - [서지혜]
* printf의 경우에는 첫째인자로 형을 판단할수 있기 때문에 문제가 되지 않죠. 하지만 같은 이유에서인지 printf("%f", 3) 을 잘못출력하는 문제가 있습니다. 이 취약점을 이용한 해킹 방법도 존재하지요. - [안혁준]
* stl vector를 이용한 class vector 만들기
* namespace로 같은 이름을 가진 클래스들을 사용해보자
* 가변인자의 취약점을 이용한 공격 (Format String Attack)
* private 상속을 받게 되면, 클래스 내에서만 사용할 수 있고, 외부에서는 접근을 할 수 없다. 부모 클래스가 가상함수를 가지고 있고, 이것을 재정의 해서 사용할 수 있다.
* 어떤 클래스를 쓰되, 외부에 공개하지 않고, 가상함수를 상속받아야 할 때 사용할 수 있다.
- ZeroPageServer/Mirroring . . . . 35 matches
로컬 호스트 시스템을 백업하는 방법으로는 tar 아카이브를 이용하여 묶거나 압축하는 방법이 있고, cpio, dump, dd 유틸리티를 이용하여 하드 디스크를 백업하는 방법이 있다.
이번호에서는 이러한 유틸리티를 사용하지 않고, 미러링(Mirroring) 기능을 이용하여 로컬시스템 또는 원격서버의 데이터를 그대로 복사하여 백업하는 방법에 대해서 알아봅니다......
템의 데이터를 백업할 때도 적용할 수 있으며 서버마다 동일한 데이터 구조를 유지하고자
할 때 이 방법이 사용된다.
여러대의 서버를 분산하여 서버를 동기화하는데 rsync 유틸리티가 많이 사용된다.
또한 SSH를 이용하면 rsync 서버가 구축되어 있지 않아도 미러링을 할 수 있는 이점이 있
를 설치하여 사용한다. 그러면 우선, rsync 패키지가 설치되어 있는지를 확인해 본다...
# 4. SSH를 이용한 원격 서버 데이터 미러링
rsync 서버를 구축하지 않은 상태에서 rsync로 SSH를 이용하여 데이터를 백업하는 방법
은 다음과 같다. rsync 사용법에 관한 자세한 것은 잠시 후에 살펴보기로 하자...
그러면 192.168.1.13 클라이언트에서 192.168.1.1 원격 서버의 FTP 데이터를 SSH를 이용
사용하여 원격 서버에 접속을 하게 되면 패스워드를 묻게 되는데, 원격 서버의 루트 패스
워드를 입력한다. 만일 일반 사용자 계정으로 이 명령을 수행한다면 원격 서버에도 동일한
@ [ 참고사항 ] - SSH를 이용한 rsync 데이터 동기화를 위한 원격 서버의 환경
클라이언트에서 rsync로 SSH를 이용하여 원격 서버에 접속하기 전에
앞서 SSH를 이용하여 미러링을 하는 방법에 대해 알아보았다. SSH 서버가 구축되지 않은
용자가 직접 만들어 사용해야 한다. 이 파일의 설정 형식은 다음과 같다.
uid = 사용자 ID
① {{{[rsync 서비스명]}}} : rsync 서비스의 이름(모듈명)이다. 사용자가 원하는 형태로 서비스명
④ uid, gid : 각각 파일 전송하는 사용자와 그룹의 아이디로, 익명 접속이 가능하도록 기본값
- 새싹교실/2012/개차반 . . . . 35 matches
=== 과제: 이 항목에 오늘 배운 내용을 정리하시오. ===
* 현재 사용되는 모든 컴퓨터에 적용되는 범용 컴퓨터 구조
* 이미 존재하는 함수를 가져다 쓰려 할 때 헤더파일을 불러와서 사용한다
* int는 정수를 나타내고자 할 때 사용하며 출력시 %d를 사용
* float는 소수점 아래의 숫자까지 표현하고자 할 때 사용하며 출력시 %f를 사용
* char는 문자를 나타내고자 할 때 사용하며 출력시 %c를 사용
* 과제 제출내용에서 빼먹는 수업 내용 추가!
* 수업내용: Variables, Data Types, Standard I/O
* Maximum, minimum value of int(경우의 수 이용)
* 배운 수업 내용 정리
* 변수의 이름으로 사용할 수 없다
* 수를 이진법으로 표현 시 양수/음수를 구분하기 위해 사용되는 맨 앞자리 0을 수를 표현하는 데에 사용하여 두 배 많은 수를 표현
* int의 표현 범위=4byte=32bit=2^32 에서 맨 앞자리 0을 제외한 나머지가 사용되므로 -2^31 ~ 2^31-1 개의 숫자를 표현할 수 있다
* printf ("내용", argument);
* #define 으로 사용
* 자신이 지정하는 문자열에 특정한 값 등을 지정해두고 사용할 수 있다
* 당연히, 오늘 배운 내용 정리(별로 없지?)
* 특정한 수를 입력받고 and operator를 이용하여 그 수 보다 작은 짝수 중 가장 큰 짝수를 출력하라(scanf, printf 이용)
* shift operator를 이용하여 128(=2^5)을 출력하고, 128을 특정 변수(variable)에 저장하여 그 변수와 left shift operator를 이용하여 32를 출력하라
* 변수에게 값을 주기 위해 사용된다
- 한자공/시즌1 . . . . 35 matches
* [https://github.com/ZeroPage/zp13-javastudy github]를 사용하고 있습니다.
=== 내용 ===
* 클래스의 기본 개념을 공부해 오고, 직접 클래스를 이용해서 코드를 작성해 보았습니다.
* github를 사용하기 시작하였습니다. 주소는 위에.
* 7월 9일에 github에 올린 서로의 코드를 보며 이야기를 나누고, 책에서 읽어왔으나 다루지 못한 내용을 기존 코드에서 살을 붙여서 만들 계획입니다.
=== 내용 ===
* 오버로딩에 대해 알아보고 저번주 영준이의 코드를 이용해서 간단한 오버로딩 실습을 함.
* 7월 9일에 한 오버로딩 실습 코드에 생성자를 이용해 더 살을 붙일 계획입니다.
=== 내용 ===
* global setting은 컴퓨터마다 적용되며 이름이 겹치면 commit이 안 되는 경우가 있으니 로그인 하고 설정을 먼저 바꾸자.
* Human 클래스를 짜고, 생성자를 이용해서 초기화를 시키는 방법을 이용해서 수정을 해 봄.
* static 및 패키지의 역할과 용도에 대해서 의논.
=== 내용 ===
* get,set을 통해 변수에 접근하는 연습을 하고, 추가적으로 패키지를 직접 사용해 보았습니다. 생성자는 덤.
=== 내용 ===
* 상속과 오버라이딩에 대해 자신이 배운 내용을 나누었습니다.
* 다음 날 실습 내용을 결정하였습니다.
* 7월 23일에 계획한 실습 내용에 따라 실습을 할 예정입니다.
=== 내용 ===
* 상속을 주된 내용으로 실습을 하였습니다.
- JavaNetworkProgramming . . . . 34 matches
*'''하지만 문서를 남기면서 책을 보는게 아직 책내용을 확실히 이해하지 않은이상 힘들다 ㅠ.ㅠ'''
*자원과 관련된 보안 : 자원과 관련된 보안은 로우 레벨 보안보다 좀더 프로그래머에게 직접적으로 관련되어있음 애플릿을 클라이언트로 사용할때 더 중요함 이는 애플릿이 보안 제약에 직접적으로 연관되어 있기 때문
*간단한 사용자 예외
public class AuthException extends IOException{ //사용자 예외를 정의할때 적당한 예외 클래스의 서브클래스가 되는것이 중요한데
*자바에서 코드의 특정 부분을 한번에 한 쓰레드만이 접근할수 있도록 해주기위해 synchronized 문장을 사용
*세마포어(semaphores) : 세마포어란, 자바 객체가 아니라 특별한 형태의 시스템 객체이며, 이객체는 '얻기(get)'와 '놓기(release)'라는 두 가지 기능을 가지고 있다 한 순간에, 오직 하나의 쓰레드만이 세마포어를 얻을 수 있으며(get), 한 쓰레드가 세마포어를 가지고 있는 동안 세마포어를 얻으려고 시도한 다른 쓰레드들은 모두 대기 상태에 들어간다. 다시 쓰레드가 세마포어를 놓으면(release) 다른 쓰레드가 세마포어를 얻고(get) 다시 대기상태로 들어간다. 이런한 매커니즘을 사용하여 특정 작업을 동기화 할수있다.
*동기화의 효율 : 대부분의 경우 동기화 작업은 매우 중요하며, 때로는 적대 생략해서는 안되는 경우도 있다. 그러나 불필요한 동기화 작업은 프로그램의 수행 성능을 떨어뜨리고, 재사용성을 감소시키며, 프로그램이 교착 상태에 빠지게 할 수도 있다.
*Thread 클래스 : 보통 상속받아서 사용
} //경우가 생길 수도 있다. 따라서 stop() 메소드를 사용하는 대신 쓰레드 자신의 종료상태를 인지하고, 수행을 중지하는 플래그
} //사용하는 방법이 더좋다. 가장 권장되는 방법은 위와 같은 플래그와 함께 interrupt()를 사용하는 것이다.
*효과적인 다중 쓰레딩 : 자바에서 쓰레드를 생성하는 것은 매우 느린 작업이며 일부 자바 가상 머신은 쓰레드에 관련된 메모리 누스 때문에 고생하기도 한다. 따라서 효과적인 쓰레딩을 위해서는 새로 쓰레드르 생성하는 것 보다 이전에 생성했던 쓰레드 객체를 재사용하느 것이 좋다 진보된 형대의 자바 가상 머신에서는 시스템 레벨에서 이러한 쓰레드 재사용을 지원하기도 하지만, 이경우조차도 쓰레드를 재상용하는 방식을 사용하면 여러가지 이점을 얻을수 있다. --예제는 17장쯤에..
*6장 : 스트림을 사용한 파일 처리 프로그램밍의 진수
*7장 : 필터를 이용한 스트림의 확장 기법
*10장 : 문자 스트림을 사용한 개선된 I/O기법
=== Chapter6 스트림을 사용한 파일처리 프로그래밍의 진수 ===
*이외에 File,FileDescriptor,RandomAccessFile에 관해 간략히 나오고 파일스트림과 같이 사용하는 예제가 나온다.
*FileDescriptor클래스 : FileDescriptor 객체는 하위 레벨의 시스템 파일 설명자로의 핸들이다. 파일 설명자는 열려진 파일을 의미하며, 읽기 작업이나 쓰기 작업을 위한 현재의 파일 내의 위치와 같은 정보들을 포함한다. RandomAccessFile이나 FileOutputStream, FileInputStream을 사용하지 않고는 유용하게 FileDescritor를 생성할수 있는 방법은 없다 . --;
*RandomAccessFile클래스 : 파일스트림을 사용하지않고 파일을 쉽게 다룰수 있음 장점은 파일스트림 클래스는 순차적 엑세스만이 가능하지만 이것은 임의의 엑세스가 가능하다. 여기선 RandomAccessFile클래스랑 파일 스트림을 같이 쓰는데 RandomAccessFile의 장점을 가지고 네트워크에서도 별다른 수정없이 사용할수있다. 예제는 밑에 --;
//데이터를 쓰면 기존의 파일 내용 위에 덮어 쓰여진다.
this.file=file; //파일을 저장해논다. 이러면 랜덤엑세스랑 FileInputStream 사용할수있다.
- STLPort . . . . 34 matches
본 문서는 상기의 페이지에 내용을 그대로 옮긴것입니다. 개인 홈페이지의 내용이기 때문에 링크가 깨질경우를 대비한 백업이므로 가능하면 원래의 페이지에서 보시길 바랍니다. 최소한의 원작자에 대한 예의이겠죠 ^^;;
본 문서는 Win32 환경에서 Visual C++ 를 사용하시는 분들이 STLport의 STL 라이브러리를 설치하여 사용하는데 도움을 주기 위하여 작성되었습니다. 가장 최소한의 설치 과정만을 싣는데 초점을 두었으며, Visual C++ 6 이하의 버전에서는 테스트하지 않았음을 미리 알려 드립니다. 기타 세세한 정보는 외부 자료 문서화 페이지 혹은 게시판에서 얻고, 나누어 주시기 바랍니다. 감사합니다.
잘 아시겠지만, 본 문서는 읽으시는 분께서 Visual C++ 개발 환경과 C++ 사용에 불편해하지 않고 DOS 화면을 두려워하지 않는다는 가정 하에 작성했고, 윈도우 환경을 최대한 사용하는 쪽으로 작성하였습니다. :)
저는 예전 버전인 4.5.3을 그대로 사용하기로 했습니다. (빌드 및 사용방법에 차이가 없습니다)
* '''lib''' : 컴파일된 STLport 재사용 바이너리(lib, dll)가 들어가는 디렉토리. (처음엔 없다가 나중에 생길겁니다.)
* '''src''': 재사용 바이너리를 빌드하기 위한 플랫폼 별 프로젝트 파일이 있는 디렉토리. (''주의: vc6.mak 파일이 있는지 확인해 보세요. 빌드에 중요합니다'')
* 메이크 파일을 읽으면, 아래와 같은 대화 상자가 나와 "프로젝트를 만들겠냐고 물어 보는데, 당연히 [예] 하시고, 적당한 이름(예: STLP_vc6)을 짓죠. 프로젝트 파일인 .dsp와 .dsw가 만들어 지면서 재사용 바이너리를 빌드할 수 있게 됩니다.
1. 재사용 바이너리는 STLport 패키지에 있는 표준 C++ 헤더를 사용하여 빌드되므로, VC++이 이 헤더를 가장 먼저 참조할 수 있도록 해야 합니다. 따라서 이 짓을 해 줍시다.
* 기본적으로 만들어지는 라이브러리는 총 6개입니다. 이중 "stldebug"란 문자열이 들어 있는 라이브러리는 STLport 전용의 디버그 기능이 함께 들어 있는 버전입니다. 사용방법은 아래의 "디버그 기능 사용하기"에서 보십시오.
만들어진 STLport의 재사용 바이너리와 표준 헤더를 비주얼 스튜디오에서 쓸 수 있도록 해주는 과정입니다.
STLport는 상용이 아니기 때문에, 링크 시 사용하는 STLport 전용 C++ 런타임 라이브러리(입출력스트림이 있는) 직접 설정해 주어야 합니다. 이것을 제대로 이해하려면 우선 VC++가 사용하는 런타임 라이브러리를 알아 봐야 합니다. VC++6의 런타임 라이브러리는 VC98/lib 디렉토리에서 확인할 수 있는데, 정적/동적 링크여부에 따라 크게 {{{~cpp LIBxxx.lib}}} 버전과 {{{~cpp MSVCxxx.lib}}} 버전으로 나뉩니다. 프로젝트에서 조정하는 부분은 Project > Setting 메뉴로 열리는 C/C++ 탭입니다. C/C++ 탭에서 "Code Generation" 카테고리를 선택하면 '''Use Run-time Library''' 드롭다운 박스를 조정해 줄 수 있습니다. 여기서 디버그 정보 포함('''debug''') 유무, 런타임 라이브러리의 스레딩('''thread''') 모드, 동적 링크 여부('''DLL''')의 조합을 결정해 줄 수 있습니다. 긴 설명은 빼고, 간단히 정리하면 다음과 같습니다. (MSDN의 설명을 참고하여 정리하였습니다)
* C 런타임 라이브러리 (iostream 없음) : VC++6 용
* 표준 C++ 라이브러리 : VC++6 용
이렇기 때문에, STLport용 C++ 라이브러리도 여기에 맞춰 줘야 합니다. 세 개의 매크로 상수를 사용할 수 있습니다.
* STLport의 라이브러리 선택: VC++6용
이는, '''VC가 코드 생성 옵션을 무시하고 LIBCMT.lib을 기본적으로 덧대어 넣어주기 때문입니다'''. 실행파일을 만드는 경우라면 에러가 가장 성가실 테지만, 배포용 라이브러리를 만들 경우엔 경고도 없애 주어야 합니다. 이 에러와 경고를 없애기 위해서는, 위에 나온 링커 메시지 대로 /NODEFAULTLIB 옵션을 써야 합니다. VC IDE를 쓰고 계시다면 Project->Setting 메뉴를 선택하고 나오는 대화상자에서 '''"Link"''' 탭을 선택하시고, '''"Input"''' 드롭다운 항목을 고른 후에 '''"Ignore Libraries"''' 에디트 상자에 LIBCMT.lib를 써 넣으시면 됩니다.
이외에도, 기본 런타임 라이브러리와 관련된 내용의 URL을 첨부하니, 참고하시기 바랍니다.
== 디버그 기능 사용하기 ==
_STLP_DEBUG란 심볼을 정의해 두면 됩니다. 이렇게 하면, "stldebug" 문자열이 포함된 lib과 DLL이 사용됩니다.
이제 다 끝났습니다. STLport가 제대로 설치되었는지 확인하는 의미에서, 패키지에 들어 있는 메이크 파일을 Visual C++을 사용하여 읽은 후에 빌드해 보세요.
- 시간관리인생관리/요약 . . . . 34 matches
|| 좋은 시스템이 있지만, || 시스템이 없거나 나쁜 시스템을 사용한다. ||
* <!> '''연습 : 관심에 비용을 매겨라.'''
* 목록에 있는 항목에 대해서, 당신의 시간 중에서 대략 몇 퍼센트를 그것에 사용하는지 적어보아라. 모두 합쳐서 100이 되도록 하라
==== '''우선순위'''는 '''중요성'''보다 '''긴급성'''에 바탕을 할때 사용해라. ====
* '''꼭 해야할일 A''', '''해야할일 B''', '''하면 좋은일 C'''을 사용해 우선순위를 정해라.
==== '''바로 지금하기'''는 미리 정해진 과업이나 일상적인 것들을 할 때 길을 잡기 위해 사용하라. ====
* <!> '''연습 : 지난주에 당신이 계획한 그 모든 모임에 당신이 사용한 시간의 합계를 계산해 보라.'''
* 모임에 준비하고, 모임에 참석하러 가고, 회복하는데 사용한 모든 시간을 포함시켜라.
* 이런후 앞부분의 '''연습'''중 에 있는 각각의 모임이 갖는 비용을 알아보라.
==== 마감 효과를 활용하기 위해 한정된 기간동안 일을 하라. ====
==== 점검표를 이용한 순환 방식 ====
==== 당신이 작업하는 각각의 프로젝트에 점검표를 사용하라. ====
* <!> 연습 : 이 순환을 전체에 적용해 보자.
* 위의 방법으로 순환하라. 마감효과를 활용하려면 시간이 끝날때 멈추는 것이 중요하다. 그렇지 않으면 집중력을 잃기 쉽다.
==== 표준적인 분출 기간을 사용하는 실험 ====
==== 반으로 나누기 방법을 사용해 ====
* 모든 잡념에서 해방된다음, 조용히 앉아 긴장을 푼다. 머릿속에 떠오르는 생각들을 적는다.
* 얼마나 긴 시간을 사용하건 중요한 것은 정한 시간 모두를 사용하는 것이다.
* <!> 연습 '''자신을 고용해 보자.'''
* 자신이 자신을 개인적인 비서로 고용한 것 처럼 행동하라.
- SmallTalk/강좌FromHitel/강의3 . . . . 33 matches
이제까지 우리는 Dolphin Smalltalk를 사용하면서 저장 기능을 사용할 수 없
Arts사(社)는 공개용으로 사용할 수 있는 Dolphin Smalltalk 98 / 1.1판을
배포하면서, 그를 사용하는 사람들이 무료로 등록번호를 발급 받아서 사용하
도록 하고 있습니다. 이는 Dolphin Smalltalk를 사용하는 사람들이 어떤 계
고 생각합니다. 또한 사용자 지원을 위해서도 필요한 사항이라고도 합니다.
등록은 무료입니다. 그러므로 인터넷을 사용할 수 있는 사람이라면 바로 등
사용하는 방법과 전자 우편(e-mail)을 사용하는 방법이 있습니다.
1) WWW를 사용하는 방법
* Product: 사용하고 있는 Dolphin Smalltalk의 종류. 우리는 1.1판을 고르
이전에 Smalltalk를 사용한 경험을 묻고 있습니다.
Dolphin Smalltalk를 어떤 목적에 사용할 것인지를 묻습니다.
용될 수 있으므로, 다음부터는 등록 절차를 거칠 필요가 없습니다.
Smalltalk는 저장 기능을 사용할 수 있게 설정됩니다. 이제 여러분이
2) 전자우편을 사용하는 방법
WWW를 사용하기 어렵거나 인터넷을 사용하기 어려운 분들은 전자우편을 이용
내용: Username과 Image code.
일단 등록판이 생성되면 모든 기능을 제한 없이 사용할 수 있습니다.
을 것입니다. 이제 저장 기능을 사용할 수 있는 여러분의 Dolphin Smalltalk
에서 아래의 명령을 글쇠를 사용하여 실행해서 다시 한 번 디지털
> Exit Dolphin 메뉴를 사용해서 Dolphin Smalltalk를 끝내봅시다. 이 때
- SmallTalk/강좌FromHitel/강의4 . . . . 33 matches
면 지금부터는 조금 용량이 많기는 하더라도 Smalltalk 환경을 내리받아서
알림판이 '일터'와 구별되는 가장 큰 특성은, Smalltalk 환경에서 사용자에
새로운 일터를 만들기 위해서는 File > New 메뉴를 사용하거나, 도구 모음에
다고 했습니다. 그럼 다음과 같이 명령해 보십시오. 글쇠를 사용해
☞ 안녕하세요? "알림판에 이 내용이 표시된다."
과 같은 명령을 사용하여 일터에 명령의 수행 결과를 출력할 수도 있습니다.
되는 창이므로, 그 사용 방법을 확실히 익혀두는 것이 좋을 것입니다.
쇠 대신 글쇠를 사용할 때 나타나는 창입니다. 이 창은 기본적으로
복잡한 구조를 가지고 있는 객체의 내용을 좀 더 잘게 쪼개어 탐색하기 편리
하도록 만들어진 도구입니다. 앞에서 우리가 탐색기를 사용한 예를 생각해
쉽게 탐색하기 위해서는 객체 탐색기를 사용하는 것이 편리합니다.
을 탐색할 때 사용하는 도구입니다. 모두 크게 내 부분으로 이루어진 갈래
이러한 객체를 사용하거나 아니면 새로 만들어야 합니다. 이 일을 이 '갈래
자주 사용되는 도구이기도 합니다.
뽑아내어 내용을 살펴보고자 할 때 사용합니다.
리하기 위해서 사용됩니다. 꾸러미 탐색기는 이러한 꾸러미를 새로 만들거나
돋이된 내용을 실제로 보여주는 곳입니다. 갈래가 돋이되어있다면 갈래꼴
창맵씨(View Composer)는 사용자 접속 환경(User Interface)를 만드는 도구
램을 사용하는 최종사용자가 자료를 입력할 수 있도록 해 줍니다.
넓은 부분이 실제로 창을 설계할 때 사용하는 부분이고, 아래에 위치한 세
- AcceleratedC++/Chapter13 . . . . 32 matches
''(9.6절에 있는 기존의 프로그램을 이용한다.)''
Grad 클래스는 Core로 부터 파생되었다(Derived from), 상속받았다(inherits from), 혹은 Core는 Grad의 base class 이다 라는 표현을 사용한다.
또한 파생 클래스는 부모 클래스의 메소드를 재정의 하여서 자신에게 맞도록 수정하여 동작하는 것을 허용한다.
private 보호 레이블로 지정된 멤버는 그 클래스 자체, friend 함수를 통해서만 직접적으로 접근이 가능하다. 이 경우 상속된 클래스에서는 부모 클래스의 private 멤버로의 접근이 필요한데 이럴때 '''protected'''라는 키워드를 사용하면 좋다.
in >> thesis; // thesis는 Core가 아니라 Grad의 멤버 변수이므로 범위 지정 연산자를 사용해서는 안된다.
'''thesis가 적용된 점수를 리턴하는 Grad::grade() 함수'''
Core::grade()를 사용하지 않고 grade()를 사용하게 되면 Grade:grade()를 재귀적으로 호출하여 어떤 결과를 리턴할지 예상하지 못한다.
|| * 전체 객체에 대한 공간을 할당 [[HTML(<BR/>)]] * 기본 클래스 생성자 호출, 기본클래스 공간 초기화 [[HTML(<BR/>)]] * 생성자의 초기설정자''( ): { 사이에 존재하는 것들 )''를 이용해서 파생클래스의 멤버 초기화 [[HTML(<BR/>)]] * 파생 클래스의 생성자의 본체를 실행한다. ||
마찬가지로 Grad(std::istream&)을 이용해서 객체를 초기화할 때에도 '''부모 객체의 디폴트 생성자로 먼저 기존의 부분을 초기화'''하고, Grad::read(istream&)를 통해서 각 요소의 값을 초기화하게 된다.
상기의 함수는 sort에 의해서 각 요소의 판단식으로 사용되는 함수이다. 이 함수는 부모객체인 Core 객체 뿐만아니라, 자식 객체인 Grad객체도 대입하여 사용하는 것이 가능하다.
'''Grad 클래스가 사용가능한 이유'''
다시 말해서 Grad가 Core의 자식 클래스 이므로 Grad객체를 통해서 Core클래스의 함수를 바인딩시켜 사용하는 것이 가능하다는 뜻이다. ''(대신에 이 함수의 안에서는 Grad의 Core 의 요소들만을 취한다.)''
만약 위 함수에 인자로 전달된 객체가 Grad객체라면 그 객체에서 호출되는 grade는 Core::grade() 이어서는 안된다. 그렇게 호출될 경우 논문 점수가 적용되지 않은 성적를 리턴하기 때문이다. 따라서 Grad::grade() 의 함수를 호출해야 할 것이다.
기본 타입에 대한 포인터나 레퍼런스가 필요한 곳에 파생 타입을 사용할 수 있다는 개념. 하나의 타입을 통해서 여러 함수들 중 하나를 선택하여 호출할 수 있다.
'''만들어진 클래스를 이용해서 성적을 입력받고 보고서를 출력하는 프로그램 (Core)'''
'''만들어진 클래스를 이용해서 성적을 입력받고 보고서를 출력하는 프로그램 (Grad)'''
앞의 예에서처럼 vector<Core>의 컨테이너를 설정하게 되면 컨테이너 안에 저장되는 객체가 Core의 객체가 되므로 정적으로 바인딩된다. 이를 해결하기 위해서는 vector<Core*>를 통해서 객체를 동적으로 할당하고 관리하도록 하면, 서로 다른 타입의 객체를 저장하는 것도 가능하고 프로그램의 다른 부분에서 다형성의 이점을 이용하는 것도 가능하다.
인자를 전달하면서 생기는 모호함을 피하기 위해서 compare 라는 이름대신에 compare_Core_ptrs를 사용하여 컴파일러가 명시적으로 이 함수를 사용하도록 한다.
입력과 출력의 각 부분에서 그리고 컨테이너의 요소를 사용할때 포인터를 이용함으로해서 프로그램이 동적바인딩을 이용해서 상당히 간결해진 것을 확인할 수 있다.
상기와 같이 빈 소멸자를 사용하는 것은 흔한 경우이다. 기본 타입의 소멸자를 virtual 로 만듦으로서 파생 클래스에서 발생하는 기타 요소들을 해제해야할 경우가 많기 때문이다.
- 새싹교실/2012/AClass/2회차 . . . . 32 matches
10.재귀함수를 이용해 n!을 출력하는 프로그램을 작성해 주세요.
12.재귀함수를 이용해 1부터10까지를 더하는 프로그램을 작성해 주세요.
1.2차원 배열이 무엇인지 쓰고, 어떻게 선언하는지도 작성한 뒤, 이를 이용한 간단한 프로그램을 작성해주세요.
-동일한 데이터형의 많은 변수를 처리하기 위한 단수 변수를 사용하면 변수이름을 각각 다른 이름으로 사용해야하기 때문에 많은 불편이 따른다. 이러한 불편함을 덜기 위하여 같은 데이터형인 일련의 기억장소를 표현한 변수를 '배열변수'라 한다. 즉 배열을 이용하면 여러개의 변수를 간단히 표현할 수가 있다. 2차원 배열은 '데이터형,배열명,그리고 [행]과[열]'을 나타내어 표현한다. 1차원 배열은 배열 요소의 크기와 데이터형이 동일한 기억장소를 1개의 차원으로 선언하였다고 말하면 2차원 배열은 2차원으로 선언(행과열)한 것이다.
2.srand()함수가 무엇인지 찾아쓰고, time()을 이용해 랜덤으로 숫자를 하나 출력하는 프로그램을 작성해주세요.
- 난수(random number)를 생성할때 stdlib.h헤더파일을 코드에 포함시키고 srand()를 사용한다.rand()함수는 매번 그 값이 같은 반면에 매실행때마다 난수를 다르게 생성하기 위해서 srand()를 사용한다.
srand역시 stdlib.h에 포함되어 있다. srand는 시드값을 주어 사용하는 것이고 그 시드값으로부터 특정한 법칙으로 난수를 생성하는 것이다.따라서 매번 다른 난수를 얻으려면 시드값을 계속 바꾸어주어야 한다.
이러한 코드개선을 위해서 time()함수를 사용해야 한다. 이 함수를 사용하기 위해 time.h 헤더 파일을 코드에 포함시켜야 한다. 또한 time함수는 1970년 1월 1일 이후 경과된 시간을 초 단위로 반환하는 함수 이다.
printf("rand()함수를 사용,1개의 random number 나타내기 \n");
-포인터는 기억장소에 있는 어떤 변수의 주소를 말한다. 즉, 다른 기억장소 위치의 주소를 갖고 있는 변수이다.포인터는 두개의 단일 연산자인 &와 *로서 정의한다. &연산자는 일반적인 변수 이름으로 사용되고 그 변수의 주소를 의미한다. 즉 &a는 a의 주소를 의미한다. *p는 p안에 있는 주소 위치의 내용을 의미한다. &는 주소 연산자이고 , *는 간접 연산자로 포인터선언을 의미한다. 일반적인 포인터 선언형식: 데이터형 *포인터변수명; 이다.
위와 같은 표현 가능하다.(포인터명에 *을 사용하는 것은 지시하는 곳에 저장된 값을 나타내는 것이다.)
차이점으로는 포인터는 변수인데 비해 배열은 상수이고 포인터는 언제든지 다른 대상을 가리킬수 있지만 배열은 선언될 때 그 위치가 이미 고정되어 다른 대상을 가리킬 수 없다.또한 포인터는 동적으로 결정할수 있지만 배열이 가리키는 배열의 크기는 선언할 때부터 정적으로 결정되어있다. 배열로 []연산자를 이용해 그 값을 읽는 것과 포인터 간접 참조 연산으로 그 값을 읽는 것의 속도 차이가 있다.
/10, %10 등을 이용해서 해 보세요.
10. 재귀함수를 이용해 n!을 출력하는 프로그램을 작성해 주세요.
12. 재귀함수를 이용해 1부터10까지를 더하는 프로그램을 작성해 주세요.
1. 2차원 배열이 무엇인지 쓰고, 어떻게 선언하는지도 작성한 뒤, 이를 이용한 간단한 프로그램을 작성해주세요.
2. srand()함수가 무엇인지 찾아쓰고, time()을 이용해 랜덤으로 숫자를 하나 출력하는 프로그램을 작성해주세요.
#include <stdlib.h> //rand함수 사용
#include <time.h> //time함수 사용
1. 0과 1000 사이의 정수를 입력받아 모든 자릿수를 더하여 출력하는 프로그램을 짜 주세요.(/10, %10 등을 이용해서 해 보세요.)
- 새싹교실/2012/AClass/3회차 . . . . 32 matches
6.포인터를 이용해 함수 swap 짜보기(대부분의 책 예제에 있습니다. 따라 써보고 코드를 이해해 보세요)
9.포인터를 이용한 예제코드 하나를 짜 보세요.
10.LinearSearch를 구현해보세요. 배열은 1000개로 잡고, random함수를 이용해 1부터 1000까지의 숫자를 랜덤으로 배열에 넣은 후, 777이 배열내에 있었는지를 찾으면 됩니다. 프로그램을 실행시킬 때마다 결과가 달라지겠죠?
12.이번시간에 배웠던 내용을 바탕으로, int* a; int b;로 선언했을때 &a,a,*a,&b,b에 관해서 각각 설명하고, 어떤 것이 어떤 것과 일치하는 것인지를 이해할 수 있도록 쉬운말로 정리해보세요.(예제 코드를 작성한 후에 테스트해보고 써보는 것도 좋은 방법일 것입니다.)
- 다른 종류의 데이터를 하나로 묶어서 사용하는 데이터 결합법을 구조체라고 한다. 구조체는 같은 자료형을 묶어서 한다면 구조체는 다른 자료형을 묶어 사용한다.
malloc을 한 후에는 free을 호출해서 메모리에 할당하였던 것을 풀어주어야 한다. 그렇지 않으면 메모리에 남겨서 필요할때 사용할수가 없다.
3.이중포인터가 무엇인지 알아보고, 이중 포인터를 이용해 2차원 배열형태로 만들어보세요.
4.스택, 큐가 무엇인지 설명하고, 이를 이용한 간단한 예제를 만들어보세요.
6.포인터를 이용해 함수 swap 짜보기(대부분의 책 예제에 있습니다. 따라 써보고 코드를 이해해 보세요)
9.포인터를 이용한 예제코드 하나를 짜 보세요.
10.LinearSearch를 구현해보세요. 배열은 1000개로 잡고, random함수를 이용해 1부터 1000까지의 숫자를 랜덤으로 배열에 넣은 후, 777이 배열내에 있었는지를 찾으면 됩니다. 프로그램을 실행시킬 때마다 결과가 달라지겠죠?
12.이번시간에 배웠던 내용을 바탕으로, int* a; int b;로 선언했을때 &a,a,*a,&b,b에 관해서 각각 설명하고, 어떤 것이 어떤 것과 일치하는 것인지를 이해할 수 있도록 쉬운말로 정리해보세요.(예제 코드를 작성한 후에 테스트해보고 써보는 것도 좋은 방법일 것입니다.)
3.이중포인터가 무엇인지 알아보고, 이중 포인터를 이용해 2차원 배열형태로 만들어보세요.
이중 포인터는 싱글 포인터의 주소 값을 저장하기 위한 용도로 사용되는 포인터이다.
4.스택, 큐가 무엇인지 설명하고, 이를 이용한 간단한 예제를 만들어보세요.
7.포인터를 이용해 함수 swap 짜보기(대부분의 책 예제에 있습니다. 따라 써보고 코드를 이해해 보세요)
10.포인터를 이용한 예제코드 하나를 짜 보세요.
11.LinearSearch를 구현해보세요. 배열은 1000개로 잡고, random함수를 이용해 1부터 1000까지의 숫자를 랜덤으로 배열에 넣은 후, 777이 배열내에 있었는지를 찾으면 됩니다. 프로그램을 실행시킬 때마다 결과가 달라지겠죠?
13.이번시간에 배웠던 내용을 바탕으로, int* a; int b;로 선언했을때 &a,a,*a,&b,b에 관해서 각각 설명하고, 어떤 것이 어떤 것과 일치하는 것인지를 이해할 수 있도록 쉬운말로 정리해보세요.(예제 코드를 작성한 후에 테스트해보고 써보는 것도 좋은 방법일 것입니다.)
동적 할당에 가장 기번적으로 사용되는 것은 malloc함수이고, 이 함수를 사용하기 위해서는 "stdlib.h"헤더파일을 포함해야 한다
- 새싹교실/2012/AClass/4회차 . . . . 32 matches
11.이번시간에 배웠던 내용을 바탕으로, int* a; int b; int **c;로 선언했을때 &c,c,*c,&a,a에 관해서 각각 설명하고, 어떤 것이 어떤 것과 일치하는 것인지를 이해할 수 있도록 쉬운말로 정리해보세요.
- c언어에서는 char,int,float 와 같은 많은 수의 기본 데이터 형과 배열, 포인터, 구조체 등의 유도된 데이터형으로부터 새로운 데이터형을 만들 수 있는데, 사용자 측면에서 새로운 데이터 형을 정의 할 수 있도록 typedef선언을 제공한다. typedef은 #define과 달리 이미 존재하는 c언어의 데이터 형만을 취하여 정의하고 typedef은 프리프로세서에 의해 처리되는 것이 아니라 c컴파일러에 의해 처리된다. 또한 #define보다 다양한 형태의 치환이 가능하다.
4.구조체를 사용하여 student 구조체를 하나 만들고, student 구조체 배열을 만들어 0~3번째 배열에 AClass반 학생들의 정보를 적당히 넣고, 그것을 출력해보자.
구조체 내부에 char 배열을 사용해서 이름을 넣어도 좋고, 학번을 int형으로 넣어도 좋다.
9.2중포인터를 이용하여 3x3행렬을 두개 만들고, 두 배열의 합을 출력하는 프로그램을 짜보세요.
//10.LinearSearch를 구현해보세요. 배열은 1000개로 잡고, random함수를 이용해 1부터 1000까지의 숫자를 랜덤으로 배열에 넣은 후, 777이 배열내에 있었는지를 찾으면 됩니다.
11.이번시간에 배웠던 내용을 바탕으로, int* a; int b; int **c;로 선언했을때 &c,c,*c,&a,a에 관해서 각각 설명하고, 어떤 것이 어떤 것과 일치하는 것인지를 이해할 수 있도록 쉬운말로 정리해보세요.
구조체를 사용하여 student 구조체를 하나 만들고, student 구조체 배열을 만들어 0~3번째 배열에 AClass반 학생들의 정보를 적당히 넣고, 그것을 출력해보자.
구조체 내부에 char 배열을 사용해서 이름을 넣어도 좋고, 학번을 int형으로 넣어도 좋다.
9. 2중포인터를 이용하여 3x3행렬을 두개 만들고, 두 배열의 합을 출력하는 프로그램을 짜보세요.
LinearSearch를 구현해보세요. 배열은 1000개로 잡고, random함수를 이용해 1부터 1000까지의 숫자를 랜덤으로 배열에 넣은 후, 777이 배열내에 있었는지를 찾으면 됩니다. 프로그램을 실행시킬 때마다 결과가 달라지겠죠?
11. 이번시간에 배웠던 내용을 바탕으로, int* a; int b; int **c;로 선언했을때 &c,c,*c,&a,a에 관해서 각각 설명하고, 어떤 것이 어떤 것과 일치하는 것인지를 이해할 수 있도록 쉬운말로 정리해보세요.
큐를 위한 버퍼와, 시작과 끝을 나타내는 두개의 값을 사용하게 된다.
typedef 명령문은 기존에 있는 자료형을 사용자가 원하는 이름으로 사용할 수 있게끔 선언하는 명령문
<typedef 의 사용법>
<typedef 의 사용 예>
4. 구조체를 사용하여 student 구조체를 하나 만들고, student 구조체 배열을 만들어 0~3번째 배열에 AClass반 학생들의 정보를 적당히 넣고, 그것을 출력해보자.
구조체 내부에 char 배열을 사용해서 이름을 넣어도 좋고, 학번을 int형으로 넣어도 좋다.
큐를 구현하는 가장 일반적인 방법은 스택과 마찬가지로 배열을 이용하는 방법이다. 그러나 단순배열로 할경우 배열의 크기가 지정되어 있는 상태에서 데이타가 계속 추가되게 되면 어느 시점에서 overflow 가 발생하게 됨으로 데이타가 배열의 크기를 초과하게 되면, 초과된 데이타는 0번째 배열로 들어가게 해야 한다. 이러한 구조가 환형구조와 같다고 해서 보통 환형큐(circular queue) 라고 한다
1)기존 자료형의 이름을 프로그램 내부에서 다른 이름으로 사용할 수 있게 하는 것
- 토비의스프링3/밑줄긋기 . . . . 32 matches
* 스프링을 사용하는 개발자들은 자연스럽게 자바와 엔터프라이즈 개발의 기본에 충실한 베스트 프랙티스를 적용할 수 있고, 이상적인 개발 철학과 프로그래밍 모델을 이해하게 되고, 좋은 개발 습관을 체득하게 된다.
* 스프링을 사용하는 개발자들이 스프링을 통해 얻게 되는 두 가지 중요한 가치가 있다면 그것은 '''단순함'''과 '''유연성'''이다.
* 템플릿이란 이렇게 바뀌는 성질이 다른 코드 중에서 변경이 거의 일어나지 않으며 일정한 패턴으로 유지되는 특성을 가진 부분을 자유롭게 변경되는 성질을 가진 부분으로부터 독립시켜서 효과적으로 활용할 수 있도록 하는 방법이다.
* 전략 패턴에 따르면 Context가 어떤 전략을 사용하게 할 것인가는 Context를 사용하는 앞단의 Client가 결정하는 게 일반적이다.
* Context는 전달받은 그 Strategy 구현 클래스의 오브젝트를 사용한다.
* 일반적으로 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
==== 사용자 레벨 관리 기능 추가 ====
* 의미 없는 숫자를 프로퍼티에 사용하면 타입이 안전하지 않아서 위험할 수 있다.
* 그래서 숫자 타입을 직접 사용하는 것보다는 자바 5 이상에서 제공하는 이늄(enum)을 이용하는 게 안전하고 편하다.
* 두 번째 방법은 테스트를 보강해서 원하는 사용자 외의 정보는 변경되지 않았음을 직접 확인하는 것이다.
* 하지만 여러 개의 SQL이 사용되는 작업을 하나의 트랜잭션으로 취급해야 하는 경우도 있다.
* 이렇게 여러 기술의 사용 방법에 공통점이 있다면 추상화를 생각해볼 수 있다. 추상화란 하위 시스템의 공통점을 뽑아내서 분리시키는 것을 말한다. 그렇게 하면 하위 시스템이 어떤 것인지 알지 못해도, 또는 하위 시스템이 바뀌더라도 일관된 방법으로 접근할 수가 있다.
* 어떤 클래스든 스프링의 빈으로 등록할 때 먼저 검토해야 할 것은 싱글톤으로 만들어져 여러 스레드에서 동시에 사용해도 괜찮은가 하는 점이다. 상태를 갖고 있고, 멀티스레드 환경에서 안전하지 않은 클래스를 빈으로 무작정 등록하면 심각한 문제가 발생하기 때문이다.
* 패턴이나 설계 원칙을 공부하는 이유는 폼나는 용어를 외우고 기계적인 지식을 습득하면 저절로 깔끔하고 유연한 코드가 나오기 때문이 아니다. 좋은 코드를 만들기 위한 개발자 스스로의 노력과 고민이 있을 때 도움을 주기 때문이다.
* 스프링을 DI 프레임워크라고 부르는 이유는 외부 설정정보를 통한 런타임 오브젝트 DI라는 단순한 기능을 제공하기 때문이 아니다. 오히려 스프링이 DI에 담긴 원칙과 이를 응용하는 프로그래밍 모델을 자바 엔터프라이즈 기술의 많은 문제를 해결하는 데 적극적으로 활용하고 있기 때문이다. 또, 스프링과 마찬가지로 스프링을 사용하는 개발자가 만드는 애플리케이션 코드 또한 이런 DI를 활용해서 깔끔하고 유연한 코드와 설계를 만들어낼 수 있도록 지원하고 지지해주기 때문이다.
* 서비스 추상화에는 기능은 유사하나 사용 방법이 다른 로우레벨의 다양한 기술에 대해 추상 인터페이스와 일관성 있는 접근 방법을 제공해주는 것을 말한다. 반면에 테스트를 어렵게 만드는 건전하지 않은 방식으로 설계된 API를 사용할 때도 유용하게 쓰일 수 있다.
* 서비스 추상화란 이렇게 원활한 테스트만을 위해서도 충분히 가치가 있다. 기술이나 환경이 바뀔 가능성이 있음에도, JavaMail처럼 확장이 불가능하게 설계해놓은 API를 사용해야 하는 경우라면 추상화 계층의 도입을 적극 고려해볼 필요가 있다. 특별히 외부의 리소스와 연동하는 대부분 작업은 추상화의 대상이 될 수 있다.
* 테스트 환경을 만들어주기 위해, 테스트 대상이 되는 오브젝트의 기능에만 충실하게 수행하면서 빠르게, 자주 테스트를 실행할 수 있도록 사용하는 이런 오브젝트를 통틀어서 테스트 대역(test double)이라고 부른다.
* 목 오브젝트는 스텁처럼 테스트 오브젝트가 정상적으로 실행되도록 도와주면서, 테스트 오브젝트와 자신의 사이에서 일어나는 커뮤니케이션 내용을 저장해뒀다가 테스트 결과를 검증하는 데 활용할 수 있게 해준다.
- ACM_ICPC/2011년스터디 . . . . 31 matches
* 비용 계산은 올림(11분 지각시 지각비 2천원)
=== 내용 ===
=== 내용 ===
* 제 코드에 무엇이 문제인지 깨달았습니다. 입출력이 문제가 아니었어요. 숫자 범위 괜히 0이거나 3000 이상이면 "Not jolly" 출력하고 break하니까 이후에 더 적은 숫자가 들어온 경우가 무시당해서 Wrong Answer(출력 하든 안하든, 0 제외하고 3000 이상일 때만 하든 다 Wrong..;ㅅ;) 입력을 하지 않을 때까지 계속 받아야 하는데, 임의로 끊었더니 그만..... 그리고 continue로 해도 마찬가지로 3000을 제외하고 입력 버퍼에 남아있던 것들이 이어서 들어가서 꼬이게 되는! Scanner을 비우는 거는 어찌 하는 걸까요오;ㅁ;? 쨋든 그냥 맘 편하게 조건 지우고 Accepted ㅋㅋ 보증금 및 지각비 관련 내용은 엑셀에 따로 저장하였습니다. - [강소현]
=== 내용 ===
=== 내용 ===
=== 내용 ===
* 하루 전날까지 표를 보신 분들은 알겠지만 원래 하려던건 RSA Factorization이었는데 문제가 문제가 있더군요(??). 그래서 어느 조건에 맞춰야 Accept가 될지 알 수도 없고 괜히 168명의 사람들만 도전한거 같지는 않아서 일단은 pass하고 다른 문제를 풀었습니다. 기회가 되면 다음엔 prime을 이용한 문제를 좀 풀어보고 싶어요. 물론 Factorization의 특성상 시간이 오래 걸리는 점이 있어서 좋은 알고리즘을 고안해야 겠지만.. World Cup 문제에 대한 후기는.. 음.. 골라놓고 막 머리싸매고 풀어보니 별거 아닌 문제라 웬지 모임에서 학우들의 원성을 살것만 같은 느낌이에요. 엉엉..ㅠㅠ - [지원]
=== 내용 ===
=== 내용 ===
=== 내용 ===
=== 내용 ===
=== 내용 ===
=== 내용 ===
* [송지원] - Soldier를 풀면서 끝내 이해하지 못했던 진경이 코드의 한 for문을 이제서야 설명을 듣고 좀 납득했습니다. 기회가 되면 저도 그런 방법으로 풀어 봐야겠어요~_~ 문제를 하나 고르긴 했는데 잘 풀 수 있을지 모르겠네용. Lotto를 골라놓고 보니 좀 쉬워서 많은 학우들이 풀었는데 이번엔 과연 어떨지....
=== 내용 ===
=== 내용 ===
=== 내용 ===
=== 내용 ===
=== 내용 ===
- ACM_ICPC/2012년스터디 . . . . 31 matches
* 문제를 지정해서, 풀어오고, 분석. (Programming Challenges와 더블릿 홈페이지 사용)
=== 내용 ===
* 우선 [www.dovelet.com 더블릿] 사용
* [koi_aio/김윤환] '''//이거랑 푼거 더 올리고싶은데... 영기처럼 올리는거 어떻게 함요? ㅠㅜ 위키 사용법을 모르것소 살려줍매!'''
=== 내용 ===
=== 내용 ===
* 문서를 공유한다면, 그 알고리즘을 이용한 문제를 풀어보는 것도 병행해야한다고 생각함.
=== 내용 ===
=== 내용 ===
=== 내용 ===
* 오늘 한 내용
=== 내용 ===
* 오늘 한 내용
* 저번 주 내용과 같아보인다면 기분 탓입니다. - [권영기]
=== 내용 ===
* 오늘 한 내용
=== 내용 ===
=== 내용 ===
=== 내용 ===
* 오늘 한 내용
- Gof/Mediator . . . . 31 matches
비록 하나의 시스템에 많은 객체들이 참여하는 것이 일반적으로 재사용성을 강화할지라도 interconnections이 늘어나는 것은 재사용성을 감소시키려는 경향이 있다. 너무나 많은 객체간의 상호 연결들은 객체들의 독립성을 떨어뜨릴 수 있다. - 그런 시스템은 마치 완전히 통일된 것 같이 행동한다.
예로써 어떤 GUI상에서 다이얼로그 박스의 구현을 고려해보자. 하나의 다이얼로그 박스는 작은 도구들(버튼, 메뉴, 입력 필드)의 모음을 표현하는 하나의 윈도우를 사용한다.
대게 다이얼로그의 도구들 사이에는 어떤 dependency들이 존재한다. 예를 들면, 어떤 버튼은 어떤 입력 필드가 비어있을때는 비활성화 되어있는다. list box라 불리는 선택 목록에서 객체를 선택하는 것은 입력필드의 내용을 바꿀 것이다. 바꿔말하면, 입력필드에 문자를 타이핑하는 것은 자동적으로 리스트 박스에서 하나이상의 대응대는 입력을 선택하는 것이다. 한번 텍스트가 입력 필드에 나타나면, 다른 버튼들은 아마 활성화 될것이다. 그래서 사용자가 텍스트로 어떤 일을 하게 하게할 것이다. 예를 들자면, 관련있는 것을 삭제하거나 변경하거나 하는 따위의 일을 할 수 있을 것이다.
다른 다이얼로그 박스들은 도구들 사이에서 다른 dependency들을 지닐 것이다. 그래서 심지어 다이얼로그들이 똑같은 종류의 도구들을 지닌다 하더라도, 단순히 이전의 도구 클래스들을 재사용 할 수는 없다. dialog-specific dependency들을 반영하기 위해서 customize되어져야 한다. subclassing에 의해서 개별적으로 도구들을 Customize하는 것은 지루할 것이다. 왜냐하면 많은 클래스들이 그렇게 되어야 하기 때문이다.
별개의 mediator 객체에서 집단의 행위로 encapsulate하는 것에 의해서 이런 문제를 피할 수 있다. 하나의 mediator는 객체들 그룹 내의 상호작용들을 제어하고 조정할 책임이 있다. 그 mediator는 그룹내의 객체들이 다른 객체들과 명시적으로 조회하는 것을 막는 중간자로서의 역할을 한다. 그런 객체들은 단지 mediator만 알고 있고, 고로 interconnection의 수는 줄어 들게 된다.
MediatorPattern은 이럴 때 사용한다.
* 어떤 객체를 재사용하는 것이 그것이 많은 다른 객체들과 관련이 있고 통신을 하기 때문에 어려울 때.
1. MediatorPattern은 subclassing을 제한한다. mediator는 다시말해 몇몇개의 객체들 사이에 분산되어질 행위를 집중한다. 이런 행위를 바꾸는 것은 단지 Mediator를 subclassing하기만 하면 된다. Colleague 클래스들은 재사용되어질 수 있다.
2. MediatorPattern은 colleague들을 떼어놓는다. Mediator는 colleague들 사이에서 loose coupling을 촉진한다. colleagued와 Mediator를 개별적으로 다양하게 할 수 있고, 재사용 할 수 있다.
2. Colleague-Mediator communication. colleague들은 그들의 mediator와 흥미로운 이벤트가 발생했을 때, 통신을 해야한다. 한가지 방법은 mediator를 Observer로서(ObserverPattern을 이용해서) 구현하는 것이다. colleague 객체들은 Subject들로서 작동하고, 자신의 상태가 변했을 때, 지시를 Mediator에게 전달한다. Mediator는 변화의 효과를 다른 colleague들에게 전달하는 반응을 한다.
또 다른 방법은 colleague들이 보다 더 직접으로 communication할 수 있도록 특별한 interface를 mediator에게 심는 것이다. 윈도우용 Smalltalk/V가 대표적인 형태이다. mediator와 통신을 하고자 할 때, 자신을 argument로 넘겨서 mediator가 sender가 누구인지 식별하게 한다. Sample Code는 이와 같은 방법을 사용하고 있고, Smalltalk/V의 구현은 Known Uses에서 다루기로 하겠다.
우리는 DialogDirector를 Motivation에서 보았던 것처럼 font dialog를 구현하기 위해서 사용할 것이다. 추상 클래스 DialogDirector는 director들을 위한 interface를 정의 하고 있다.
changed 는 director의 WidgetChanged 연산을 호출한다. Widget들은 자신의 director의 WidgetChanged 호출을 의미있는 이벤트를 알져주기 위해서 사용한다.
DialogDirector의 subclass들은 적절한 widget작동하기 위해서 WidgetChanged를 override해서 이용한다. widget은 자신의 referece를 WidgetChanged에 argument로서 넘겨줌으로서 어떤 widget의 상태가 바뀌었는지를 director로 하여금 알게해준다. DialogDirector의 subclass들은 CreateWidget 순수 추상 연산자를 다이얼로그에 widget들을 만들기 위해 재정의한다.
ListBox, EntryField, Button은 특화된 사용자 인터페이스 요소를 위한 DialogDirector의 subclass들이다. ListBox는 현재 선택을 위해서 GetSelection연산자를 제공한다. 그리고 EntryField의 SetText 연산자는 새로운 text로 field를 채운다.
ET++[WGM88]와 THINK C class library[Sm93b]는 다이얼로그에서 widget들 사이에 mediator로서 director와 유사한 객체를 사용한다.
윈도우용 Smalltalk/V의 application구조는 mediator 구조에 가반을 두고 있다.[LaL94] 그런 환경에서 application은 윈도우를 pane들의 모음으로 구성하고 있다. library는 몇몇의 이미 정의된 pane들을 가지고 있다. 예를 들자면 TextPane, ListBox, Button등등이 포함된다. 이러한 pane들은 subclassing없이 이용될 수 있다. Application 개발자는 단지 inter-pane coordination할 책임이 있는 ViewManager만 subclassing할 수 있다. ViewManage는 Mediator이고 각각의 pane들은 자신의 owner로서 단지 자신의 ViewManager를 알고 있다. pane들은 직접적으로 서로 조회하지 않는다.
SmallTalk/V는 Pane-ViewManager 통신을 위해 event 기법을 사용하고 있다. 어떤 pane은 어떤 정보를 mediator로 부터 얻기 원하거나 어떤 의미있는 일이 발생해서 이를 mediator에게 알려주기 위해서 event를 생성한다. 하나의 event는 그 event를 식별하는 symbol을 정의한다. 그 event를 다루기 위해서 ViewManager는 pane에 method selector를 등록한다. 이 selector는 event의 handler이다. 이것은 event가 발생한 때면 언제든지 수행될 것이다.
다음 코드 인용은 ListBox가 ViewManager subclass 내에서 만들어지는 방법과 #select event를 위해 ViewManager가 event handler를 등록하는 방법을 보여주고 있다.
유사한 application은 Unidraw drawing framework에서 나타나고[VL90] connectors사이에 연결성 제약들을 적용하는 CSolver라 불리는 class를 사용한다. 그래픽 편집기에서 객체들은 다른 방법으로 서로 다른 객체들을 짜집는 것으로 보일 수 있다. connector들은 연결성이 자동적으로 관리되는 그림 편집기나 회로 설계 시스템과 같은 application들에서 유용하다. CSolver는 객체들 사이에 mediator이다. 그것은 연결제약을 해결하고, connector들의 위치를 그것들을 반영하기 위해서 update한다.
- OurMajorLangIsCAndCPlusPlus/errno.h . . . . 31 matches
|| return 값 || 메크로 || 내용 ||
||5||int EIO||입출력 에러;언제나 물리적인 입출력 에러에 사용됨.||
||6||int ENXIO||그런 장치나 주소가 없음. 시스템이 당신이 파일에서 설정한 장치를 사용하고자 하나 그러한 장치 를 찾을 수 없었다. 이것은 장치파일이 잘못 인스톨되었거나, 물리적인 장치를 빠뜨렸거나 또는 컴 퓨터와 제대로 부합되지 않았음을 의미한다. ||
||7||int E2BIG||인수가 너무 길다;실행함수에 의해서 실행되는 새로운 프로그램에 주어진 인수가 너무 큰 메모리 공간을 사용할 때.||
||10||int ECHILD||자식 프로세스(child process)가 없다. 이 에러는 자식 프로세스를 다루는 오퍼레시션을 사용했는 데 다루기위한 어느 프로세스도 존재하재 않을 때 발생한다.||
||11||int EAGAIN||자원을 일시적으로 사용할수 없다.; 그 호출은 나중에 당신이 다시 재시도 할수 있도록 한다. 오 직 분기점에서 이러한 이유로 EAGAIN에러 코드를 리턴한다.||
||12||int ENOMEM||이용할 메모리가 없음. 메모리 용량을 다 썼으므로 시스템이 더이상 메모리를 할당할 수 없다.||
||13||int EACCES||허용되지 않음;파일이 시도하려는 작동을 허용하지 않는다.||
||16||int EBUSY||시스템 자원 사용중; 분배될 수 없는 시스템 자원이 이미 사용중일 때, 예를 들어: 현재 마 운트된 파일시스템의 루트에서 한개의 파일을 지우려 할 때에 이 에러를 만난다.||
||18||int EXDEV||파일시스템이 인지할수 없는 영역에 부적당한 링크를 만들려고 시도할 때 이 에러메세지가 나온 다. 이것은 링크를 사용할때만 발생하지만 또, rename으로 파일을 재명명할 때 발생하기도 한다.||
||22||int EINVAL||적합하지 않은 인수. 이것은 라이브러리 함수에 잘못된 인수를 주는것과 같은 종류의 다양한 문제 를 지적하는데 사용한다.||
||27||int EFBIG||파일이 너무 크다; 파일의 크기가 시스템이 허용하는 것 보다 더 크다.||
||30||int EROFS||읽기 전용으로 된 어떤 파일시스템에 무언가를 수정하려고 시도할 때||
||33||int EDOM||도메인 에러; 인수의 값이 정의된 함수를 지나 도메인에게 전달되지 않았을 때 수학적 함수에 의해 사용된다.||
||34||int ERANGE||범위 에러; 결과 값이 오버플로우나 언더플로우로 인해 표현되지 않을 때 수학적 함수에 의해 사 용된다.||
||39||int ENOLCK||유용한 락이 아니다. 이것은 파일 락킹 함수들에 의해 사용된다.||
|| ||int ETXTBSY||현재 사용되고 있는 파일을 다시 읽거나 쓰기위해 오픈하려 시도할 때 발생 ("text fiel busy" 라고 한다.)||
|| ||int ENOPROTOOPT||당신은 소켓에 의해 사용되어지고 있는 특별한 프로토콜에서 이해할수 없는 소켓옵션을 지정하였다.||
|| ||int EAFNOSUPPORT||소켓을 위하여 지정된 주소의 부류들이 지원되지 않는다; 그 주소가 소켓에서 사용되는 프로토콜과 일치하지 않는 것이다.||
|| ||int EADDRINUSE||요청된 소켓주소가 이미 사용중이다.||
- Eclipse . . . . 30 matches
["Eclipse"] 프로젝트는 통합 개발 환경(IDE)을 위한 플렛폼을 목표하는 오픈소스 프로젝트 이다. [http://www.eclipse.org/projects/index.html 부분인용]
* 2006년 5월 - eclipse 3.2 RC5 [http://zeropage.org/~rhasya/eclipse3.2RC5.zip Win32용, PyDev, SubClipse포함]
* 2005년 6월 - eclipse 3.1 RC2 등장( [http://zeropage.org/pub/eclipse/eclipse-SDK-3.1RC2-win32.zip zp내 다운받아놓은 것 (win32용만)])
Eclipse에서는 내부의 CVS 클라이언트를 사용한다.[[BR]]
|| Ctrl+Alt+Up/Down || 라인 or 선택영역 복제(영역선택후 이용 가능) ||
|| Alt + Shift + Up/Down || 선택 영역 확장-선택영역 이동과 함께 이용하면 용이 ||
|| ctrl + / || 선택된 줄들의 주석처리 및 해제 (굉장히 유용합니다.) ||
* J-Creator가 초보자에게 사용하기 좋은 툴이였지만 조금씩 머리가 커가면서 제약과 기능의 빈약이 눈에 띕니다. 얼마전 파이썬 3차 세미나 후 Eclipse를 알게 되면서 매력에 푹 빠지게 되었습니다. 오늘 슬슬 훑어 보았는데 기능이 상당하더군요. 상민형의 칭찬이 괜히 나온게 아니라는 듯한 생각이...^^;;; 기능중에 리펙토링 기능과 JUnit, CVS 기능이 역시 눈에 제일 띄는군요 --재동
DeleteMe 후훗 학기중에 추천해 줄때는 사람덜 눈길도 안주더만, 역시 필요 동기가 사용을 낳는군. IntelliJ 역시 굉장히 강력함 하지만 역시나 Ecilpse, IntelliJ모두 128램에서 돌리기에는 버벅, 궁금한 사항 문의하면 답변해 줄수 있을꺼다 아마 --상민
* 회사 프로젝트에서 Eclipse 를 사용하고 있다. J2EE 개발에 유용한 EclipsePlugin 을 추천함. -- [구근]
* 올초 Eclipse를 처음 접하고, 좀 큰 프로젝트에 Eclipse를 적용해 보았다. CVS, JUnit, Ant사항을 반영하고 대형 상용 Package를 사용하는 관계로 setting할 것도 많았지만, 개발이 종료된 지금 결과적으로는 매우 성공적인 적용으로 볼 수 있다. 팀프로젝트시 모듈로 나누어 그룹 개발이 될 경우에 매우 효율적이니, 강추함. 앞으로 발전되는 모양을 지켜보거나 참여하면 더 좋을 듯... -- [warbler]
혹시 그 큰 규모라는 것이 어느정도 인지 알수 있을까요? 라인을 쉽게 세기 위해서 현 Eclipse를 새로 하나 복사해서 Eclipse용 metric 툴은 http://metrics.sourceforge.net/ 를 설치하시고 metric전용으로 사용하여 쓰면 공정-'Only counts non-blank and non-comment lines inside method bodies'-하게 세어줍니다. (구지 복사하는 이유는 부하를 많이 줍니다.) -- NeoCoin
* 2003년 5월 ~ 지금(2003년 12월) Web 프로젝트에서 Eclipse(3.0 M4 or 5) 를 이용하고 있습니다. 8명의 개발자들이 Eclipse를 함께 사용하고 있습니다. -- NeoCoin
저랑 경우가 비슷하시군요. 2003년 5월에 평가하고 적용 시작했습니다. 11월말 쯤 종료되었고, 전체 프로젝트에 Eclipse를 적용한 것이 아니라, 제가 맡은 모듈에만 적용했습니다. 전체 프로젝트 인원이 25명정도였는데, 제가 맡은 모듈에는 6명 정도가 참여했습니다. 말씀하신 metric 도구는 한 번 써서 계산해 보겠습니다. 좋은 정보 감사... -- [warbler]
* 새로운 Eclipse 3.0 은 Eclipse의 오리지날 기능을 발전하고, IntelliJ , VisualStudio 의 에디터 기능들을 많이 차용해 왔다. 뭐랄까, 에디터로 Eclipse 2.0 개발중 추가되었다가 정식에서 사라진 기능들도 일부 들어갔다. 그리고 기대했던 기능들은 새로운 프로젝트로 분리되어 대거 미구현 상태이다. 그래서 1.0->2.0 의 발전이 획기적이라는 느낌이라면, 2.0->3.0은 완성도를 높였다라는 느낌을 받는다. (이제 GTK에서 그냥 죽지 않을까?) 그리고 Sun의 지지 부진한 1.5 발표로 Eclipse까지 덩달아 예정 기능이 연기된것이 아쉽다. -- NeoCoin
* quick fix, UnitTest, [Refactoring], [CVS], 그리고 방대하고 다양한 플러그인들이 제일 마음에 든다. 툴을 사용하는 재미가 있다. - [임인택]
* 2005년 5월 중순경에 3.1 M7 버전이 나왔다. 아마 다음 버전이나 그 다음 버전이 3.1 정식버전이 되지 않을까 싶다. M6에서 M7로 가면서 메모리 사용량이 많이 줄어든 것 같다(Freemem 이라는 플러그인으로 메모리 사용량 확인). 전체적으로 가벼워진 듯한 느낌을 준다. (총 용량은 변화가 거의 없지만) - [임인택]
* 로드맵상으로 정식 버전이 나올꺼 같네요~ 이클립스 쓰면;; 정말로 이만한 툴이 없다는 것을 거듭 느끼고 있어용~ 단지 사양이 않좋으면 좀;; 그래서 학교에서는 원격으로 쓴다는;;;
- PatternOrientedSoftwareArchitecture . . . . 30 matches
* 3가지 다른 레벨(소프트웨어 구조,모든 디자인, idioms)에서 어떻게 패턴이 발생하는지 이 책에 자세히 나와 있다. 이러한 통합적인 접근 다소 이론적일거 같이 보이지만, 저자는 12개의 패턴과 실제로 사용되는 예제를 많이 보여 준다.
* 패턴에 대한소개와 이책의 구성에 대한 것등의 내용이 나온다.
* 소프트웨어 구조적인 관점에서 사용되는 패턴들이 나온다.
* 레이어 J+1에 의해서 사용될 서비스를 제공한다.
* 레이어 패턴의 중요한 구조적인 특징은 레이어 J는 오직 레이어 J+1에 의해서만 사용될 수 있다는 점이다. (스택이나 양파와 비교할 수 있다)
* Scenario3 - 레이어 N-1이 cache로 작용하여서, 레이어 N의 요청이 레이어 N-1에게만 전달되고 더이상 하위 레이어로 전달되지 않는다. 요청을 보내기만 하는 레이어들이 상태가 없는(stateless) 반면에 이러한 cache 레이어는 상태 정보를 유지한다. 상태가 없는 레이어들은 프로그램을 간단하게 한다는 이점이 있다.
* task(과업,일) 들을 레이어에 배치하기 위한 추상적인 기준을 정의 하여라. 실제적인 소프트웨어 개발에서 우리는 종종 추상적인 기준들의 혼합을 사용한다. 예를들어서 하드웨어적인 관점에서 저 수준의 레벨들의 모습을 정하고, 개념적인 복잡성으로 고 수준의 레벨을 정한다.
컴포넌트나 서비스가 사용되는 관계 |
* 각 레이어에 대한 인터페이스를 명확히 해라 (가능한한 black-box 접근을 사용하는 것이 좋다, 이것이 시스템 발전을 도와주기 때문이다. 효율이나 다른 레이어의 내부에 접근할 필요가 있을때는 예외이다.)
* 이 패턴의 알려진 사용예 (Known Uses)
* 레이어의 재활용 - 프로그래머들은 현재 존재하는 레이어가 자신의 목적에 맞지 낳는다고 이미 있는것을 재사용 하기보다는 새로 짜는 경우가 많다. 그러나 현재 존재하는 레이어를 재사용(black-box reuse)하는 것은 개발에 드는 노력과 프로그램의 결점들을 극적으로 감소 시킬 수 있다.
* 의견 : 이 layer 패턴을 사회적인 것과 결부시켜서 생각하면 관료제와 비슷하다고 생각한다. 교체 가능하고, 단계적으로 올라가고, 내려가고 뭐 여러가지 점이 유사하다. 이 패턴이 사용하는 사람들이 관료제에서 착안해서 이 패턴을 사용하는 것은 아니겠지만 하여튼 그러한 유사점을 발견하니깐 신기했다.
* 추후의 시스템 향상이 사용자에 의해서 조차, 처리 단계(step)들을 바꾸거나 재조합 하는것으로서 가능해야 한다.
* 작은 처리 단계가 큰 components 보다 다양한 환경에 재사용 하기 좋다.
* 이 패턴은 : data source - filter - pipes - filter - data sink, 의 순서로 되어 있고, 각 필터에서는 데이터를 처리하는 함수가 있을 수 있다. 레이어 패턴과 비슷한 점도 보이지만, 이 패턴의 특징은 쉬운 재조합과 재사용성이다. 에러를 처리하는 관점과 시스템의 신뢰성을 따지면 레이어가 더 낮다.
* 생각해야할 문제 : 각각의 문제에 대한 해결책은 다른 표현이나 paradigms 이 필요하다. 많은 경우에 어떻게 '부분적인 문제들을 풀어주는 해결책'이 어떻게 조합되어야 하는지에 대해서 미리 정의된 전략은 없다. 아래의 내용은 이런 종류의 문제를 푸는데 영향을 끼지치는 force(이 패턴이 사용되는 경우?)들이다.
* 그 영역이 미성숙해서, 같은 하부 task에 여러가지 알고리즘을 사용한다.
* 각각 분리된 알고리즘을 채용하는 채용하는 것은 잠재적인 평형 관계를 유도한다.
* 모든 부분적인 문제들은 같은 knowledge 표현을 사용하여 해결된다. 그러나 input으로 다양한 표현이 올 수 있다.
* 구조 : 자신의 시스템을 blackboard(knowledge source들의 집합, control components)라고 불리우는 component로 나누어라. blackboard는 중앙 데이터 저장소이다. solution space와 control data들의 요소들이 여기에 저장된다. 하나의 hypothesis는 보통 여러가지 성질이 있다. 그 성질로는 추상 레벨과 추측되는 가설의 사실 정도 또는 그 가설의 시간 간격(걸리는 시간을 말하는거 같다.)이다. 'part-of'또는'in-support of'와 같이 가설들 사이의 관계를 명확이 하는 것은 보통 유용하다. blackboard 는 3차원 문제 공간으로 볼 수도 있다. X축 - time, Y축 - abstraction, Z축 - alternative solution. knowledge source들은 직접적으로 소통을 하지 않는다. 그들은 단지 blackboard에서 읽고 쓸뿐이다. 그러므로 knowledge source 들은 blackboard 의 vocabulary들을 이해해야 한다. 각 knowledge source들은 condition부분과 action부분으로 나눌 수 있다. condition 부분은 knowledge source가 기여를 할수 있는지 결정하기 위해서 blackboard에 적으면서 현재 solution process 의 상태를 계산한다. action 부분은 blackboard의 내용을 바꿀 수 있는 변화를 일으킨다. control component 는 루프를 돌면서 blackboard에 나타나는 변화를 관찰하고 다음에 어떤 action을 취할지 결정한다. blackboard component는 inspect와 update의 두가지 procedure를 가지고 있다.
- 데블스캠프2012/셋째날/후기 . . . . 30 matches
* [김준석] - 날로먹는 APMSetup이 이렇게 유용하게 연속적으로 쓰일줄은 몰랐습니다. 실습은 Naver API 개발자 센터에 자신이 사용할 사이트 주소를 쓰고(안드로이드는 package명으로 인식하는게 재밌었습니다. 많은 사람도 쓸수 있게 서비스 하는군요) 그위에 마크를 올리는게 좋았습니다. 그러고보니 이번엔 코드는 안올려주네요. 역시 javascript와 웹서비스는 대세인듯=ㅂ= 코드임 [데블스캠프2012/셋째날/코드]
* [박정근] - 늦게와서 제대로 못 들었네요ㅠ 뒷부분에 API를 사용하는 부분을 보니 관심이 생겼습니다. 한번 들여다 봐야겠어요
* [김태진] - 설명을 할때 햄버거가 왔다거나, 등등으로 좀 산만했던게 아쉽네요. 내용도 약간 붕 떠서 핵심 내용을 이해하기 애매했던것도 있구요. 뭐, 그래도 끝에 실습을 해서 Open API가 뭔지는 잘 전달할 수 있어서 좋았던거 같아요.
* [서민관] - 개인적으로 1학년을 대상으로 정말 내용을 쉽게 하려고 했는데 그러다 보니까 내용이 약간 뜬 느낌이 있네요. 그리고 한 번에 너무 많은 주제를 다룬 것 같기도 합니다. 소켓 + HTTP + Open API라 주제가 약간 흐릿했죠. 혁준 선배는 예전 데블스에서 웹에 대해 꽤 알기 쉽게 다뤘던 것 같은데 말이죠... 하지만 개인적으로 정말 아쉬운 것은 1학년들한테 제가 이번 세미나를 준비하면서 알게 된 것들의 반도 못 전달했다는 점이군요. 세미나 준비를 하면서 덕분에 저만 잔뜩 공부했네요.
* [김수경] - 그냥 API 사용하는 법에 대한 얘기만 할거라 예상했었는데 소켓부터 시작해서 제법 이론적인 이야기들이 많이 나와서 좋았습니다. 사실 저는 네트워크 수강을 마친 상태라 설명에 불만이 없었지만 새내기 입장에서는 설명이 이해하기 조금 어렵지 않았을까 싶네요. 내용 자체가 익숙하지 않은 것 투성이니까요ㅠㅠㅠ 하지만 마지막에 직접 실습을 해보면서 재미도 느낄 수 있었을 것 같습니다.
* [권영기] - 앞 부분은 제가 지각을 해서 듣지 못했습니다. 저는 OPEN API부터 듣게 되었는데 이게 상당히 재미있네요. 덕분에 집에서 APM 설치하고 개인 페이지에 막 적용해보면서 놀고 있습니다.
* [권순의] - SE 수업을 듣는 듯한? 비슷한 내용이 많이 나오네요. 사실 찾아보면 많은 툴들인데 알려고 하지 않으면 잘 알지 못하는 것들이라 새내기들한테 많은 도움이 되길 바라는 뭐 그런... 시간이었습니다. 민관이한테 테스트에 관해서 많이 공부하고 있다는 소리를 들었었는데 정말 그런 것 같다는 생각이 들었습니다. 이것 저것 많이 찾아보고 한 것 같네요.
* [정종록] - SE 수업이 생각났던 테스트... 새내기들한테 도움이 되는 시간이었을텐데 자바이야기가 많아서 잘 들었을지 모르겠네요. 전 관심있는 내용은 아는거고 뒷부분은 관심이 잘 안가는 것도 있어서... 내용 자체는 참 필요한 내용인데 말이지....
* [김윤환] - svn(servertion) 내용이 가장 인상깊엇습니다. 그쪽부분은 정말 쓸모 있는 부분인것같아요. 그리고 테스트 부분에서 정말 필요한 부분만 테스트한다는것은 매우 설득된것 같습니다. 당연한거지만 설득당해버렷어요? 수긍해버렷어요 ㅎㅎㅎ
* [서영주] - 왜 이런 환경을 구축해서 사용하는가에 대한건 다른 사람들과 프로젝트를 진행해보지 않았으면 느끼기 어려운 것 같은데 그 필요성을 조금 더 말했어야 했던 것 같습니다. 저학년들은 일단 SVN으로 편하게 프로젝트를 공유할 수 있다는 것 정도만이라도 알아가면 좋겠다고 생각합니다.
* [이재형] - CTIP랑 개념 때는 배도 부르고 내용도 어렵고 ㅠㅠ 자버렸는데,,, SVN을 통해서 자료를 올리고 업데이트 하는 등 실습 할 때는 정말 재밌었어요! 인터넷이 느렸다는게 흠이였지만 ㅎㅎ.
* [서민관] - 개인적으로는 테스트나 환경 구축에 관심이 많은 만큼 꽤 기대를 하고 들었습니다. 내용 자체는 좋았다고 생각하는데 아무래도 세미나 대상이 애매하다는 느낌이 강하네요. 좀 더 이런 환경이나 각 플러그인들이 왜 필요한지에 초점을 맞춰서 이야기를 했으면 흥미 유발이 될 수 있지 않았을까 하는 생각이 듭니다. 세미나 형식도 형진 선배 말대로 좀 알고 찾아다니는 사람들한테 하기에 적당했다는 느낌이 드는군요. 내용이 좋은 만큼 많이 아쉽습니다.
* [김수경] - 저도 관심있는 부분이었는데 사실 전 이 내용을 3학년때 SE 시간에 들었을땐 별로 흥미와 필요를 느끼지 못했었거든요. 나중에 휴학하고 공모전 진행하면서 더 관심을 가지게 되었는데 아직 프로젝트 경험이 별로 없는 참가자들이 어떻게 받아들였을지 궁금하네요. 아직 필요를 느끼지 못하더라도 이런게 있다는 걸 알아두면 굉장히 도움이 될 것이라는 걸 알아줬으면 좋겠습니다.
* [권순의] - 뭔가 현이 다운 세미나로 시작해서 진규 스럽게 끝났다고 하면 현이한테 수치겠지? ㅋㅋㅋ 농담이고,, Apple과 관련된 것은 역시나 빠삭하게 설명이 나오는군요. OS에서 배운 내용과 연관되어 이해되기 쉬웠습니다. 뭔가 한시간의 퀄리티 있는 강의를 들은 느낌이랄까,, 그렇게 이런 저런 이야기 다 듣고 나서 생각나는 건 좋아하고 즐기면 전문가가 되나 봅니다.
* [정종록] - 정말 현이 다운 세미나. 그놈의 애플사랑은 참.... OS내용이 좀 나오고 해서 이해도 쉽고 나름 재밌는 세미나 였다. 새내기 들은 어떨지 몰라도 OS내용 나와서 난 이해가 되었지만 갑자기 생각나는 OS수업...
* [안혁준] - 어려운 주제들이었지만 말주변이 좋아서 지루하지는 않았네요. C에서의 block같은경우에는 활용도도 높은것 같구요. 아직 표준이 아니라서 실제 겪을때까지는 많은 고난과 역경이 존재할것 같은 느낌이네요.
* [서민관] - 새삼 드는 생각이지만 황현은 전문적인 지식이나 프레젠테이션 솜씨나 어디 하나 빠질 데가 없는 것 같네요. 몇몇 1학년들이 몰라서 대답하기 곤란했던 개념적인 용어들도 정확하든 정확하지 않든(드립이든) 뚜렷하고 날카롭게 가르고 가는 느낌은 들으면서 상당히 감탄했습니다. Block이라... 개인적으로는 비표준이라는 단어가 정말 찝찝하긴 한데, 표준으로 정립되면 좋겠다는 생각이 듭니다. C에도 함수 객체가 들어오면 좋겠죠.
* [김민재] - 그 동안 배웠던 자바스크립트 개념을 제대로 활용할 수 있는 기회가 되었습니다. 그 '물리' 때문에 힘들었지만, 직접 HTML을 통해 움직이는 그림을 구현하는 것은 정말 재미있었습니다.
* [서영주] - 이번에는 진짜 웹 천국인것 같습니다. 저번에는 웹이 하나도 없던 반동인건가... 게다가 어째 처음부터 짠것처럼 첫 날에 수업한 내용이나 프로그램들을 뒤에서도 계속 써먹으니까 추가적인 이해를 하는데 좋았던 것 같습니다. 물론 제대로 코딩을 하는건 그런 기술 이전의 문제인 것 같지만요. 감사합니다.
* [김태진] - 사실 물리법칙 구현이 목표였는데, 데블스버드 만들기쯤으로 뻥튀기해 실습하였더니 좀 더 괜찮았던거 같네요. 작년 이맘때 canvas를 잘 써먹어봤는데, 신입생들도 이걸 해보고 잘 써볼 수 있기를 기원합니다. 구현에 치중된 GUI를 쉽게 짜는건 html과 javascript를 이용하는게 가장 쉽고 간단하게 이해할 수 있더라구요.
- AcceleratedC++/Chapter11 . . . . 29 matches
클래스를 설계할때에는 우선 인터페이스를 결정해야한다. 인터페이스의 결정에는 실제로 그 객체를 이용한 프로그램을 작성해보는 것이 좋다.
//vector가 사용하는 타입의 이르을 얻는다.
//vector의 각요소를 살펴보기 위해, size 및 index 연산자를 사용
여기서는 '''template class'''를 이용한다.
템플릿은 함수뿐만 아니라 클래스에서도 사용하는 것이 가능하다.
템플릿은 단지 틀일 뿐이며, 사용할때 type parameter로 준 형에 따라서 실제의 클래스를 생성한다.
따라서 어떤 타입이 Vec에서 사용되는진는 정의부가 instiation 되기 전에는 알 수 없다.
2번째 생성자는 초기화의 인자로 인자 파라메터인 T의 생성자를 이용한다.
생성자가 하나의 인자를 받는 경우. 일반적인 대입 생성자와 혼용이 될 가능성이 존재하기 때문에 명시적인 생성만을 허용시키는 방법이다. (12.2 절에서 자세한 논의)
역시 다른 생성자와 마찬가지로 create() 함수를 이용해서 복사를 행하도록 만든다.
* '''헤더파일에서의 리턴타입이 Vec& 로 사용되었음'''
템플릿의 스코프 안에서는 타입 매개변수를 생략하는 식의 더 쉬운 표현을 사용할 수 있다.
* '''this 키워드의 사용'''
C++은 = 가 객체의 초기화, 복사 시에 동일하게 사용되기 때문에 복사 생성자와, 대입연산자의 구분이 없다.
= 가 초기화 되지 않은 객체에 사용되면 복사 생성자로, 초기화된 객체에 사용되면 대입 연산자로 사용된다.
'''생성자의 2가지 용법'''
'''리턴값에서의 복사 생성자의 사용, 대입연산자의 사용'''
default constructor 를 사용하기 위해서는 객체의 멤버들이 디폴트 생성자를 가진 경우에만 정상적인 동작을 보장할 수 있다.
push_back을 구현함에 있어서 요소 배열의 크기를 키워야하는데 이 것을 위해서 여기서는 필요양 보다 많은 수의 배열을 할당하고 하나씩 변수를 하나더 만들어서 현재 사용가능한 끝을 가리키는데 이용하기로 한다.
Vec에서 new, delete 키워드를 사용하지 않는다. 배열을 new로 할당하게 되면 기본적으로 생성되는 객체의 디폴트 생성자로 초기화 되기 때문이다. 이는 원래 우리가 의도한 것과는 다른 방식으로 동작한다.
- ZPBoard/AuthenticationBySession . . . . 29 matches
Session 을 이용한 인증.
회원 인증이란 회원에게 부여된 고유의 아이디와 패스워드를 통해 회원임을 확인하고, 확인된 회원에 한에서 웹 사이트의 회원 전용 기능을 사용할 수 있도록 하는 것.
'''HTTP 프로토콜'''은 stateless 프로토콜입니다. connectionless 프로토콜이라고도 합니다. 예를 들어, 웹브라우저를 통해 제로페이지에 접속한다고 봅시다. 클라이언트 입장에서는 자기 자신이 연속된 요청(게시물 보기나, 위키 사용등)을 보내는것을 알지만, 서버 입장에서는 매번 온 요청이 누구로부터 온 것인지를 알 방법이 없습니다. '''왜냐하면''' HTTP 프로토콜의 태생이 연결지향적이 아니고, 상태를 알 수 없기 때문입니다.
클라이언트와 서버간에 지속적인 유대관계를 맺고 싶을때 사용하는 방법으로 Cookie와 Session이 등장하게 되었습니다. Cookie에 대한 이야기는 논외로 하고, Session을 살펴보면, 이는 흔히 ''세션아이디'' 또는 ''세션키''라 부르는(이하 세션아이디로 통일) 값을 쿠키에 설정해놓고, 클라이언트의 요청시 쿠키에서 세션아이디를 가져와서 내부적인 검토과정을 거치고, 이에따라 유효한 요청 또는 무효한 요청을 외치게(인증하게)됩니다.
서버에서는 이 세션아이디를 바탕으로 인증 작업을 하기만 하면 되니, 정보를 얻는 방법으로 데이터베이스를 사용하건 파일시스템을 사용하건 그 이용에 제한을 가하지 않습니다.
=== Session 을 이용한 인증 ===
사용자가 '''로그인'''을 한 후에, '''세션아이디'''를 생성해서 '''세션값'''을 설정합니다. 이를 통해 클라이언트(ie. 웹브라우져)가 요청을 할때 '''세션아이디'''를 얻어오고, 서버측에서는 인증을 하게 됩니다.
예를들어, 3분 46초동안 아무런 사용자의 요청이 없을때 자동으로 로그아웃처리되는 서비스를 가정하고 다음의 시나리오를 봅시다.
i. 처음 사용자가 로그인을 합니다. 이때 세션 아이디를 생성해서 저장하겠죠? 데이터베이스를 이용한다고 가정하고, 생성한 세션아이디를 키 값으로 해서 부가적인 정보를 기록합니다. 여기서는 현재 요청이 온 시각을 기록하면 되겠군요.
i. 사용자가 '김돈규의 3분 45초간의 고백'을 듣고 재빨리 다시 서버로 요청을 보냅니다.
i. 이번엔 사용자가 화장실을 갑니다. 변비였습니다. 5분후에 돌아와서 서버로 요청을 보내지만, 이미 때는 늦었습니다. 서버가 해당 요청에 대해 '''무효'''를 선언하고, 로그인 화면을 보여줍니다.
이 예는 세션이 사용되는 기능에 초점을 맞춰 가장 단순한 경우를 이야기 한 것입니다. 실제로는 고려해야 할 부분이 더 있겠죠?
A. maybe or maybe not. 일반적인 경우, 세션에서 사용되는 쿠키는 브라우져를 닫으면서 보통 삭제되게 되어있으므로 그렇다고 볼 수도 있지만, 엄밀히 이야기해서, 로그아웃처리가 되는것은 아닙니다. 해당 세션키를 통해 다시 요청한다면, 서비스를 받을 수 있습니다. 이 모든 일은 HTTP 프로토콜 특성상 브라우져를 닫는 등의 행위가 오프라인에서 이루어지는것이기 때문입니다. (배틀넷을 하다가 랜선을 뽑으면 디스커넥이 되지만, 웹서핑도중 랜선을 뽑는건 어떠한 영양도 미치지 않는것과 같습니다.)
session_start(); // Session 을 사용하기 위해서는 반드시 맨 처음에 이 함수를 호출해주어야 한다.
이곳에 회원 인증이 된 경우에 보여줘야 할 것을 넣는다. (로그 아웃 폼, 회원 전용 기능 등...)
login.php - 회원 인증 폼에서 ACTION 속성으로 사용
logout.php - 로그 아웃 폼에서 ACTION 속성으로 사용
* Cookie와 Session의 차이를 이해했나요? 왜 Cookie를 놔두고 Session을 사용하려고 하는것이지요?
''쿠키값을 조작할 수 있습니까? 세션을 어떤식으로 생성하고 사용할 수 있는지에대해 살펴보기바랍니다''
* 질문들이 조금 이해가 안돼서요... 그럼 세션과 쿠키를 같이 사용하면 생각하시는 문제가 해결이 될까요? 쿠키의 만료 기간을 주지 않으면 브라우져를 닫으면 없어지는걸로 알고 있는데요 처음에 쿠키를 확인해 없다면 세션이 남아있더라도 지워버리는 방법을 사용하면 문제가 해결 될까요? --["상규"]
- ZeroPage_200_OK . . . . 29 matches
* 혹시 여전히 Cloud9 IDE이 동작하지 않으면 이번 내용은 클라이언트 구현만 있으므로 JSFiddle에 Save하고 URL을 링크하거나 [ZeroPage_200_OK/소스] 페이지에 올리셔도 됩니다.
* [정진경] - c9.io는 필요할 때 먹통이 되네요... 실습 테마가 웹 게임 제작이면 Challengers의 콘텐츠를 보강하기 위해 인공지능으로 플레이가 용이한 게임을 기획해야겠습니다...ㅋㅋ
* Form 계열 태그 활용
* form 관련으로 사용자 입력을 받을 수 있었던 부분 실습을 주로 배웠습니다. 근데 궁금한게 도중에 html5 얘기를 하시면서 <a href=""><button>abc</button></a> html5에서는 이렇게 사용할 수 있는데 이런게 자바스크립트를 쓸 수 없는 경우에 된다고 하셨는데 그럼 원래 버튼의 onclick같은 on~는 자바스크립트인건가요? - [서영주]
* 이번 주제는 형진이형한테 여러번 들었던 내용이었네요. 확실히 여러번 들으니까 무슨 이야기를 하는지 조금 더 빠르게 이해할 수 있었던 것 같습니다. 그리고 지난번 들을 때에는 궁금한게 생각 안 났었는데 이번엔 궁금한게 생기더군요. 뭐지 -ㅅ-;; ㅋㅋ 다만 다음주에 할아버지 팔순이라 참여를 못 하게 되어서 좀 아쉬울 뿐.. -_-a 그리고 공모전과 관련해서 끝나고 이런 저런 이야기가 많이 나왔었는데, 잘 진행되어 우리 잘 하고 있어요~ 라는 모습을 보여줬으면 하네요 - [권순의]
* 개인적으로 이래저래 많이 듣기만 한 용어들(쿠키, 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을 해서 사용할 수 있다.
* Element를 찾을 때 CSS 문법을 이용하여 작업을 할 수도 있고 jQuery의 메소드를 이용해서 작업을 할 수도 있는데, 복잡한 대상을 한 번만 찾아서 작업을 할 경우에는 CSS 문법을 이용하는 것이 좋고, 찾은 대상에서 여러 작업을 할 경우에는 jQuery 함수를 사용하거나 해당 Element를 변수에 저장해 두었다가 사용하는 것이 성능 면에서 좋다.
* Browser Object Model : 자바스크립트로 Browser와 상호작용하기 위해 제공되는 API들의 집합. 공식적인 표준은 존재하지 않아서 조금씩 다를 수 있다.
* setter, getter - 같은 함수가 set용 인자가 들어있을 경우에는 setter로, 그렇지 않을 경우에는 getter로 실행된다.
* data() 메소드 - 이벤트 핸들러에 클로저를 쓰면 핸들러가 등록되었을 시점과 핸들러가 호출되었을 시점의 변수 값이 다를 수가 있다. 클로저를 쓰지 않기 위해서는 .data()를 이용하면 해당 data가 key/value 형태로 DOM트리에 등록된다.
* live() - 처음에 ready() 때에 이벤트 핸들러를 걸어주는 식으로 코드를 짰을 경우 중간에 생성한 객체에는 이벤트 핸들러가 걸려있지 않다. 하지만 ready()에서 live() 메소드를 사용해서 이벤트 핸들러를 걸 경우 매 이벤트가 발생한 때마다 이벤트 핸들러가 걸려야 할 객체를 찾아서 없으면 이벤트 핸들러를 알아서 걸어준다. 하지만 처음에 핸들러를 걸어주는 것과 비교해서 비용이 다소 비싸다.
* sortable(), appendTo(), data(), focus(), blur(), clone() 등의 jQuery API를 사용.
* CSS -> HTML -> JavaScript 순서로 html을 작성한다. - CSS가 뒤에 있으면 HTML 렌더링을 한 후에 CSS가 적용된다. JavaScript가 앞에 있으면 JavaScript가 다 받아지고 나서 뒷부분이 실행되기 때문에 속도에 문제가 있을 수 있다.
* JavaScript가 뒤에 있으면 이벤트가 늦게 걸리게 된다. -> Command Queue 패턴 사용.
* JSONP - Same Origin Policy를 어기지 않고 Cross Site Scripting을 하기 위한 방법. callback 함수를 만들고 사이트에 특정한 요청을 보내면 callback 함수로 감싼 데이터를 넘겨준다. callback 함수로 감싸진 데이터는 이쪽의 callback 함수의 내용대로 실행된다.
- 5인용C++스터디 . . . . 28 matches
* [5인용C++스터디/클래스]
* [5인용C++스터디/템플릿]
* [5인용C++스터디/윈도우즈프로그래밍]
* [5인용C++스터디/API에서MFC로]
* [5인용C++스터디/클래스상속보충]
* [5인용C++스터디/타이머보충]
* [5인용C++스터디/클래스상속] - 조재화
* [5인용C++스터디/윈도우에그림그리기] - 황재선
* [5인용C++스터디/키보드및마우스의입출력] - 문원명
* [5인용C++스터디/비트맵] - 조재화
* [5인용C++스터디/메뉴와단축키] - 황재선
* [5인용C++스터디/버튼과체크박스] - 노수민
* [5인용C++스터디/에디트박스와콤보박스] - 문원명
* [5인용C++스터디/다이얼로그박스] - 노수민
* [5인용C++스터디/타이머] - 조재화
* [5인용C++스터디/더블버퍼링] - 황재선
* [5인용C++스터디/멀티미디어] - 문원명
* [5인용C++스터디/멀티쓰레드] - 노수민
* [5인용C++스터디/소켓프로그래밍] - 나휘동
* [5인용C++스터디/스택]
- DPSCChapter1 . . . . 28 matches
''디자인 패턴''은 객체지향 언어로 제작된 프로그램에 23개의 패턴을 제시합니다. 물론, 23개의 패턴이 객체지향 디자이너들이 필요로 할 모든 디자인의 난제들을 전부 잡아내지는 못합니다. 그럼에도 불구하고 "Gang of Four"(Gamma et al.)에서 제시한 23개의 패턴은 좋은 디자인의 든든한 출발을 보장합니다. 이 23개의 패턴은 Smalltalk class libraries에 기반을한 디자인 수준(design-level) 분석(analog)입니다. 이 패턴을 이용해서 모든 문제를 해결할 수는 없지만, 전반적이고, 실제 디자인의 다양한 문제들을 위한 해결책을 위한 유용한 지식들의 기반을 제공할것입니다. 또, 이 패턴을 통해서 전문가 수준의 디자인 지식을 취득하고, 우아하고, 사후 관리가 편하고, 확장하기 쉬운 객체지향 프로그램 개발에 기초 지식을 제공하는데 톡톡한 역할을 할것입니다.
다른 이론적인 테두리안에서 프로그램(''전통적인 절차식 스타일'')을 한 후 객체 지향 언어를 배우는 것은 어렵다. Smalltalk 안에서 복합된 응용 프로그램 하는 것을 배우는 것은 복잡한 새로운 기술과 문제에 대한 새로운 사고 방식을 요구한다.(" e.g Rosson & Carroll, 1990; Singley, & Alpert, 1991") "Smalltalk" 라는 산을 오르는 것은 확실히 사소한 것이 아니다. 일단 당신이 간단한 Smalltalk 응용 프로그램을 만드는 데 자신이 있는 경지에 닿았다고 해도, 아직 전문가의 경지와는 분명한 차이가 있다.
* 현존하는 기반 class 라이브러리로부터 이용가능한 class, methods. 그리고 그 모듈들(현재는 functionality를 function 군들 또는 모듈 정도로 해석중. 태클 바람. --;)에 대해
* 새로운 문제를 찾고 문제 해결을 위한 기존의 모듈을 재사용하기 위해, 또는 정적이거나 동적인 관점 양쪽 측면에서 프로그램을 이해하기 위해 어떻게 Smalltalk IDE 툴을 사용해야 하는가에 대해
* 객체의 환경설정과 상호작용, 이러한 서로 협력하는 객체들이 해결해야할 문제들의 정렬 등에서 반복되는 패턴에 대해
'''디자인 패턴'''은 끊이없이 발생하는 클래스 구성상의 문제에 해결책을 제시하는 재사용할수 있는 실행 모델이나 아키텍처이다. 때로 패턴은 단독적이거나 하위 클래스 구조에서 어떻게 매서드 들이 함께 작용하는지를 묘사한다.; 아마도, 패턴상에서는 좀더 빈번히 다중 클래스나 그들의 인스턴스의 협력을 보여줄다.
그러므로, 전문가들은 어떻게 새로운 문제에 대하여 고아하고 확장성있는 해결책으로 안내하는 디자인 패턴의 활용 방법을 알고 있다.
(그러므로, 전문가들은 새로운 문제를 해결하기 위해 명쾌하고 확장성이 뛰어난 디자인 패턴을 적용하는 방법을 알고 있다.)
디자이너들-소프트웨어에만 국한하지 않은 수많은 분야에서-은 그들의 과거의 문제와, 해법에 경험을 비슷한 문제에 적용 시킨다. '''''Duego와 Genson(1996)은 전문 디자이너들이 사례를 기반으로 경험에서 인지한 지혜안에서 과거의 사례를 기억하고 그들이 배운것을 적용시키는 것에 주목한다. (생략 및 의역) ''''' 이것은 체스의 고수, 의사, 변호사 그리고 건축가들이 새로운 문제에 대응하는 추론 방식의 한 방식이다. 현재, 디자인 패턴은 소프트웨어 디자이너들이 배워온것들과 다른 분야의 디자이너(other designer)들의 경험들 모두를 감안한다. 이런 노력들은 결과적으로, "거인의 어깨에 올라서 있는것" 같은 방법으로 우리를 훌륭한 디자인에 이끌수 있다. John Vlissies(1997)은 디자인 패턴은 "전문 지식을 잡고 비전문가들이 그것을 이용하기 쉽게 해주는 것이라고 평한다. (p. 32).
디자인 패턴은 새로운 패턴에 관해서 간단하게 원리를 표현하고, 패턴은 존재하는 모습을 꾸준히 설명한다.패턴은 세부내용에 들어가기 앞서, 좀더 큰 관점으로 이해를 할수있게 한다. 패턴은 우리가 좀더 큰 관점에으로 ㄸ 다른 디자이너들의 생각의 교환시 객체과 클래스가 어떻게 구성되어 있는지 묘사한다. 우리는 "싱글턴 메소드로 데이터 베이스 접근 부분을 구성했습니다." 그리고 "데이터 베이스 접근은 오직 하나의 인스턴스만이 접근하도록 해습니다. 그 클래스는 싱글 인스턴스의 방법 사용을 위해서 클래스 변수를 사용할것입니다. 그 클래스는 광역으로 광역으로 접근가능한 인스턴스로 될것이지만, ''나중고침''
Christopher Alexander와 그의 친구, 동료들은 디자인 패턴이 공간활용과, 건축, 공동체의 구성방법 까지 확장되는 것에 관한 글을 써왔다. 여기에서 그들이 추구하는 바는 이런 분야에 적용을 통하여, 소프트웨어 디자인 패턴을 위한 또 다른 새로운 창조적 생각 즉, 영감을 얻기위한 일련의 작업(궁리)이다. ''The Timeless Way of Building''(1979) 에?? Alexander는 "때로는 서로다른 문화권에서 아주 약간은 다르게 같은 패턴의 버전들이 존재하걸 볼수 있다"(p.276) 라고 언급한다. C++과 Samlltalk는 비록 같은 기본적인 패턴에서의 출발을 해도 다른 언어, 다른 개발환경, 다른 문화로 말미암아 각자 다른 모양새를 보여준다.
Gang of Four의 ''Design Patterns'' 은 C++의 관점에서 디자인의 이슈와 해결책들을 제시한다. Design Patterns는 대부분 C++을 이용한 패턴들과, C++의 적용(implementation)과 관련있는 이슈들에 관한 견해를 다루고 있다. 그러한 이슈들은 C++ 개발자들에게는 매우 중요할지 모르지만, 다른 언어들을 이용하고 있는 개발자들에게는 자칫 이해하고 패턴의 적용에 어려움을 가지고 온다.
하지만 ''Smalltalk Companion''은 ''Design Patterns'' 문서를 단순하게 반복 하는것 이상이고 C++ 코드가 있을 경우 Smalltalk 예로 바꾼다. 결과적으로, 우리가 추가적인 분석, 분류, 혹은 기존의 패턴에 대한 약간의 불일치하다고 느끼는 많은 상황이 있다. 그러므로, 우리의 많은 토의가 다른 객체 지향 언어에 잘 적용되야 할 것이다.
물론, 우리는 Smalltalk로된 간단한 코드를 많이 제공한다. 대부분에서, 우리의 예제들은 ''Design Patterns'' 예제의 간단한 Smalltalk 버전은 아니다. 우리는 자주 C++ 예제의 단순한 번역 이상으로 좀더 유용하다는 것을 느꼈다. 여기에 간단한 말로 ''Design Patterns''에 보충한 ''Smalltalk Companion''을 위한 목적이 있다.
* Smalltalk를 좀더 잘알고 사용한다. 특히 주요한 Smalltalk 환경 class libraries들을 알아본다.
* 응용 프로그램 영역(보험, 쌍방향 통신, 등등.) 과 시스템 개발(윈도우즈 시스템, 컴파일러, 등등.)의 많은 새로운 예제들을 다룬다.
- Gof/FactoryMethod . . . . 28 matches
== Also Known As : 비슷한, 혹은 동일한 역할을 하는 용어 ==
Framework(이하 Framework 그대로)는 객체사이의 관게를 정의하고, 유지하기 위하여 가상 클래스들을 사용한다. Framework는 종종 이러한 클래스들을 기반으로 객체의 생성에 책임을 진다.
여러 문서를 사용자에게 보여줄수 있는 어플리케이션에 대한 Framework에 대하여 생각해 보자. 이러한 Framework에서 두가지의 추상화에 대한 요점은, Application과 Document클래스 일것이다. 이 두 클래스다 추상적이고, 클라이언트는 그들의 Application에 알맞게 명세 사항을 구현해야 한다. 예를들어서 Drawing Application을 만들려면 우리는 DrawingApplication 과 DrawingDocument 클래스를 구현해야 한다. Application클래스는 Document 클래스를 관리한다. 그리고 사용자가 Open이나 New를 메뉴에서 선택하였을때 이들을 생성한다.
Application(클래스가 아님)만들때 요구되는 특별한 Document에 대한 Sub 클래스 구현때문에, Application 클래스는 Doment의 Sub 클래스에 대한 내용을 예측할수가 없다. Application 클래스는 오직 새로운 ''종류'' Document가 만들어 질때가 아니라, 새로운 Document 클래스가 만들어 질때만 이를 다룰수 있는 것이다. 이런 생성은 딜레마이다.:Framework는 반드시 클래스에 관해서 명시해야 되지만, 실제의 쓰임을 표현할수 없고 오직 추상화된 내용 밖에 다를수 없다.
== Applicability : 적용 ==
Fatory Method 패턴은 이럴때 사용한다.
DeleteMe) '결과' 나 '결론' 이나 그게 그거지만. --; '패턴적용결과' 정도.
DeleteMe) 왜 결과지. 결과는 적용후에 얻을수 있는 이익이지만, 현재 이것은 패턴을 적용한 코드를 구현하기 전에 이론적 바탕에 대하여 결론 짓는 것이라고 생각해서 결론이라고 했음. 그냥 결과는 부족한것 같고, "패턴 적용 결과"보다는 "패턴 적용 결과 고찰" 이라는 의미가 강한거 같은데, 그냥 결론으로 쿨럭 --;
1. ''서브 클래스와 소통 통로 제공''(''Provides hooks for subclasses.'') Factory Method를 적용한 클래스에서 객체의 생성은 항상 직접 만들어지는 객체에 비하여 유연하다. Factory Method는 객체의 상속된 버전의 제공을 위하여, sub클래스와 연결될수 있다.(hook의 의미인데, 연결로 해석했고, 그림을 보고 이해해야 한다.)
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들에 대하여 신경 쓸필요가 없다. 그러므로 이들의 관계는 병렬적이 된다.
== Implementation : 구현, 적용 ==
Factory 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생성시 종류를 판별하는 인자 하나를 넘긴다.
Unidraw 그래픽 에디터 Framework는 디스크에 저장된 객체의 재 생성을 위하여 이러한 접근법을 사용하고 있다. Unidraw는 factory method를 이용한 Creator 클래스가 식별자를 가지고 있도록 정의해 두었다. 이 클래스 식별자는 적합한 클래스를 기술하고 있다. Unidraw가 객체를 디스크에 저장할때 이 클래스 식별자가 인스턴스 변수의 어떤것 보다도 앞에 기록 되는 것이다. 그리고 디스크에서 다시 객체들이 생성될때 이 식별자를 역시 가장 먼저 읽는다.
클래스 식별자를 읽고서 Framework는 식별자를 Create에게 넘기면서 호출한다. Create는 적당한 클래스를 찾고, 그것을 객체의 생성에 사용한다. 마지막으로 Create는 객체의 Read 수행을 호출하여 디스크에 정보를 저장하고, 인스턴스 변수들을 초기화 한다.
Smalltalk프로그래머들은 종종 구체적으로 구현되어 있는 객체의 클래스를 반환하는 메소드를 사용한다. Creator의 factory method는 이러한 값을 사용하여 product를 만들어 내고, ConcreteCreator는 아마 저장하거나, 이러한 값으 계산을 수행한다. 이러한 결과는 구현되어 있는 ConcreteProduct의 형을 위하여 바인딩 조차 나중에 하게 된다.
- ZeroPageServer/SubVersion . . . . 28 matches
CVS의 대용으로 개발되기 시작하여, 최근 fsfs의 지원 이후로 CVS를 대체해 나가는 추세이다. 많은 opensource 기반 프로젝트들이 SVN으로 옮겨갈 준비들을 하고 있다. 최신버전인 1.2버전부터는 bdb가 기본이었던 것이 fsfs가 기본 타입으로 설정되었다.
* 기본적인 이용법은 거의 cvs와 동일하다. 심지어는 콘솔의 명령어도 거의 동일하다고 생각된다. 하물며 Tortoise같은 프로그램인데 오죽하랴. 다른 것은 저장소를 표기하는 방법이 다르다.
* 공용 저장소 (svn group에 속한 사용자들이 공동으롯 사용하는 공간)
제로페이지의 사용자 계정이 있다면 누구나 사용이 가능하다. 대신에 로컬에는 ssh의 클라이언트(커맨드 기반)가 필요하다. (그렇지만 그룹설정이 필요하기 때문에 관리자에게 그룹으로 설정해달라고 해야합니다. 그룹이용자가 아닌 경우에는 저장소를 읽을 수는 있지만 쓰기는 하지못한다.)
svnserver을 이용하면 사용이 간편하고 서버를 관리하기도 편하지만, 아직 SubVersion이 계정 파일로 encrypt 된 것을 지원하지 않기 때문에 패스워드 노출의 소지가 상당히 높아서 이용하지 않았다. 차후 subversion 이 이 사항을 지원하면 추가하는 것이 좋을 듯 함.
subversion 은 http 로의 접근도 제공한다. 대신에 기본제공 프로토콜보다는 속도가 느린 단점이 있다. http 의 접근은 현재 익명계정에 대해서는 checkout, read 만 사용이 가능하며 checkin 계정을 받기 위해서는 관리자에게 다음의 정보를 메일로 보내주면 추가하는 것이 가능하다.
* ''저장소의 개인권한을 만들려고 하다보니 웹에서의 체크아웃은 공용 저장소인 project, study 에 국한합니다. 개인별 저장소는 오로지 ssh 에 의한 접근만을 허용합니다.''
* SSH를 통해서 접근을 하는 경우 상당히 잦은 패스워드 입력 창을 보게됩니다. 이를 해결하기 위해서 몇가지 방법이 존재하는데.. ''(터널링 프로토콜로 SSH를 이용하기 때문에 어찌하였던 SSH 프로그램을 등록해야함.)''
Linux 계정이 있다면 ssh-keygen 을 이용해서 생성시키는 방법도 존재한다. 이 방법이 훨씬더 빠르게 생성된다.
사용자에게 복사되었을 때 어느정도의 안전성을 보장한다. 만약 설정하지 않으면 파일만 있다면 기타의
확인절차없이 바로 사용이 시스템에 접속하게 된다.
상단에 Public key for pasting into OpenSSH authorized_keys file 란에 있는 내용을 복사해서
~/.ssh/authorized_keys 에 붙여넣는다. (내용을 전체를 복사해야 된다. 그렇지 않으면 인증이 안된다. 전체는 한줄로 이루어진다)
접속하기 위해서 따로 암호를 칠 필요가 없다. 물론 키파일은 rsa로 암호화된 상태이기 때문에 사용자가
어쨋듯 상기의 방법은 단순히 SVN뿐만아니라 SSH를 사용하는 모든 서버, 클라이언트에게 해당하는
만들어진 개인키를 USB나 메일 계정에 넣어두고 필요할때마다 받아서 사용하면 거의 문제가 없다.
* 윈도우에서는 [TortoiseSVN] 을 이용해서 기존의 CVS와 거의 동일한 방식으로 사용하는 것이 가능하다.
* CVS를 이용하던 사람은 바로 이용이 가능할 정도로 기존의 CVS와 명령어의 구성체계가 유사하다.
원한다면 개인용 저장소를 만들어주는 것도 가능함.
- Emacs . . . . 27 matches
vim에서는 기본 모드가 항상 편집 모드이고 쓸수있는 mode가 고정되어 있는 반면에, emacs에서는 주 모드와 부 모드를 입맛에 맞게 바꾸어 쓸수 있습니다. 예를 들어 사용자는 text-mode라는 텍스트 문서를 편집하고 작성하는 기능을 가진 주 모드를 쓰면서, 글자의 색을 바꿔주거나 들여쓰기 내어쓰기등을 사용자 정의대로 기능을 수행하는 부 모드를 쓸 수 있습니다.
* 평소에 너무 IDE에 의존한다는 생각이 들어서 범용적인 TextEditor를 사용해보자는 결심을 하고 쓰는데 어려웠던 사항을 기록하려고 합니다.
* [http://ftp.gnu.org/pub/gnu/emacs/windows/ Download]는 여기서 하면 됩니다. 윈도우즈 용이라 버전이 약간 낮네요.
받아서 압축을 풀고 바로 사용할 수 있습니다. 하위 폴더중에 bin 폴더가 있는데 그 안에 있는 실행파일이 있습니다.
* 최소 mac 가능한 ubuntu 에서 사용하는게 정신건강에 좋습니다. ecb, cedet 등을 커맨드 한번에 설치 하느냐, 여러번 거쳐서 설치하느냐는 하늘과 땅 차이입니다. ~~윈도우는 개발자의 OS 가 아닙니다~~
* emacs 환경 그대로 remote/ssh/docker/sudo 등을 바로 사용할 수 있게 해줍니다.
* emacs 는 dired mode 는 파일을 관리하고 browse 할 수 있는데, tramp 를 활용하여 remote 를 local 처럼 사용할 수 있습니다.
* tramp 로 sudo 사용하기 : M-x-f {{{/sudo::/etc/}}}
* tramp 로 ssh 사용하기 : M-x-f {{{/ssh:you@remotehost|sudo:remotehost:/path/to/file}}}
== Python 사용하기 ==
Emacs는 HOME 이라는 환경변수를 이용해서 사용자 설정 파일인 .emacs(이름 앞에 점 하나 있습니다.)파일을 읽어들입니다. 이 환경변수에는 경로가 들어가는데 그 경로에 사용자 설정 파일이 있어야 합니다. 제어판->시스템->고급->환경변수 안에 HOME이라는 환경변수를 추가하고, 그 경로 밑에 .emacs를 설치해야 합니다. .emacs 파일 내용은 다음과 같이 만듭니다.
* 일반적으로 사용자의 HOME 디렉토리 밑에 저장됩니다.
* GNU Emacs 사용시 Windows 7 환경에서 c:\Users\[UserName]\AppData\Roaming 디렉토리에 저장됩니다.
* 주로 Emacs Wiki에서 받은 파일들이나 다양한 .el 파일들을 넣는 데 사용합니다.
== emacs의 유용한 확장 기능 ==
* Emacs의 확장 기능은 .el(Emacs Lisp 확장자) 파일을 읽어오는 방법으로 이루어진다. 따라서 .el 파일만 있으면 확장 기능을 사용할 수 있는데, ELPA 이전까지는 통일된 .el 파일의 배포 방법이 없었기 때문에 기능을 추가하려면 직접 파일을 (EmacsWiki나 github이나 다양한 방식으로) 다운받아야 하는 불편함을 감수해야 했다. ELPA는 이러한 흩어진 파일(= 확장 기능)들을 통합해서 받을 수 있는 기능을 제공하고 있다.
* 사용법
emacs 설정파일인 .emacs 혹은 init.el에 다음과같이 이어붙이면 사용할 수 있다.
emacs 설정파일인 .emacs 혹은 init.el에 다음과같이 이어붙이면 사용할 수 있다.
emacs 설정파일인 .emacs 혹은 init.el에 다음과같이 이어붙이면 사용할 수 있다.
- MoreEffectiveC++ . . . . 27 matches
ANSI C++에 대한 약간은 수준있는 내용을 다루는 책. ["EffectiveC++"] 의 추가적인 내용이다.
- wowbook 인용
* ANSI C++에 대한 제반적인 내용을 깔끔한 필체로 쉽게 쉽게 다루고 있다. 명확한 개념 설명이 돗보인다. 프로그램과 디자인 능력을 향상시키는 35개의 방법이 제시되어 있다. 배치, 가상 생성자, 포인터 레퍼런스 카운팅, 프락시 클래스, 더블 디스패치와 같은 C++의 보다 세련된 기술에 대해 설명하고있다.
* 이 책의 주요 내용
- 사용자 정의의 변환 함수 사용
- 자원 낭비를 막기위한 소멸자 사용
- 레퍼런스를 이용한 예외상황 캐취
- 예외상황 명확화 사용
- 예외상황 핸들링 비용 이해
- 예상된 계산 비용 청산
- 가상 함수 비용, 다중 계승, 가상 베이스 클래스와 RTTI
* 목표: 자료로 이용 할수 있을 정도의 정보 전달
* Item 5: Be wary of user-defined conversion functions. - 사용자 정의 형변환(conversion) 함수에 주의하라!
* Item 9: Use destuctors to prevent resource leaks. - 자원이 새는걸 막는 파괴자를 사용해라.
* Item 14: Use exception specifications judiciously. - 예외를 신중하게 사용하라.
* Item 15: Understand the costs of exception handling. - 예외 핸들링에 대한 비용 지불 대한 이해
* Item 24: Understand the costs of virtual functions, multiple ingeritance, virtual base classes, and RTTI [[BR]] - 가상 함수, 다중 상속, 가상 기초 클래스, RTTI(실시간 형 검사)에 대한 비용을 이해하라
* Item 27: Requiring or prohibiting heap-based objects. - Heap영역을 사용하는 객체 요구하기 or 피하기.
== 세미나용 항해 지도 ==
1. 2002.02.09 볼수록 절실한 내용 투성이 이다. Efficiency의 부분이 가장 중요하다고 뽑았는데, 다음 Technicque 파트는 Efficiency를 비웃고 있다. 각 장마다 거의 두세배에 다라는 양과 더불어, "C++에서 알고 싶었던 것이 여기 다 모여 있구나" 하는 생각이 든다. 내용이 너무 많아서 어쩔수 없이 다시 요약 체제로 가야 겠다.
- OpenGL스터디 . . . . 27 matches
이 페이지는 위키를 연습?할겸 제가 현제 공부중인 openGL내용을 정리하기 위한 페이지입니다. 혹시 openGL을 공부하시는 분들은 참고하셔서 도움이 되면 좋겠습니다.
* openGL을 공부하기전에 이에 필요한 간단한? 용어와 개념을 간단히 정리하고 들어갑시다.
컴퓨터화면은 2차원이다. 하지만 우리가 3D게임을 할때 보면 그 내용물은 마치 3차원의 물체처럼 보인다. 하지만 실제로는 내용물은 2차원적인 것을 3차원처럼 보이게 만든것뿐이다. 그렇다면 어떻게 2차원적인것을 3차원적인것처럼 보이게 만들 수 있을까? 여러가지 방법이 잇지만 그중에 하나는 원근법을 사용한다는 것이다. '''원근법이란 가까히 있는 것은 크게 멀리있는것은 조그마하게 표현하는것을 말한다.''' 더 정확히 말하자면 '''선사이의 각도를 조절하여 3차원효과를 내는 기법'''을 말한다.
3차원적인 요소를 더 두드러지게 표현하기 위해서는 쉐이딩을 사용하면 된다. 쉐이딩이란 '''입체적인 물체에 음영이나 색상 밝기 등을 잘 조절하여 표면에 입히는 기법'''을 말한다. 이런 기법을 통해서 정육각형같은 경우는 각 면을 도드라지게 표현할 수 있고, 더욱 실감나는 3차원적인 표현을 가능케 한다.
'''블랜딩(blending)'''이란 화면상에 색상과 물체를 혼합하는 효과를 이야기한다. 이를 사용하는 곳은 주로 두 이미지가 겹쳐있는 효과를 내기위해서 사용한다. 예를 들어
컴퓨터는 기계어라는 언어라는 이진적인 표현(이진법적인 표현)을 사용한다. 한마디로 1011001과 같은 표현을 예시로 들 수 있는데, 이 때문에 연속적인 표현을 실질적으로 표현
* 실시간 3D는 말그대로 사용자가 화면 구성에 필요한 데이터를 입력 즉시 화면에 반영하는 방식을 이야기한다. 예를 들어 비행기 시뮬레이션 프로그램이라던가, 게임을 예시로 들 수 있다.
* 화면을 구성하는 좌표방식은 우리가 보통사용하는 직교좌표계(데카르트 좌표계)말고도 여러가지가 있다. 이 좌표체계에 따라서 이미지 구성하는 방식도 완전히 달라질 수 있어서 이를 잘 고려해서 선택해야한다. 하지만 지금 우리는 일단 직교좌표계를 가지고 논해볼 것이다.
* 뷰포트란, 화면의 좌측 하단이 0,0으로 기준을 두고 우리가 눈으로 보는 윈도우 창에서 임의의 크기를 할당해서 이미지 작업을 할 수 있는 화면에서의 실질적인 이미지 작업 영역를 이야기한다. 클리핑과 연관지어 이야기하면, 클리핑을 화면에 적용시키는 영역으로 말할 수 있겟다. 이 뷰포트는 보통 창 전체를 설정해두고 작업하지만, 특수한 경우 화면의 구성을 서로 다른 이미지로 구성해야한다면, 뷰포트를 나누어서 작업할 수 있다.
* 원근 투영은 가까이 있는가 멀리있는가에 대한 표현을 가능케하는 비율을 적용한 투영으로 한점에서 퍼지는 빛을 생각하면 쉽게 알 수 있다.
== Chapter 2. openGL의 사용 ==
* openGL에는 창관리, 상호 작용 인터페이스에 대한 어떤 함수도 없다. 이는 '''일반적인 임플리먼테이션(지정된 규약을 구현한 구현체)'''에 적용하기 위해서이다. Mac이나 리눅스 윈도우 각각 환경에 대해서 모두 접근이 가능케 하기위함이라고 간단히 말할 수 있다.
* 일반 적인 임플리먼테이션이라는 용어를 약간 자세히 설명하자면 이 말은 그래픽 이미지를 출력할 수 있는 시스템이라면 어디든지 이 openGL을 적용할 수 있어야한다는 걸 함축하는 용어라고 할 수 있다.
''더 자세한 용어 설명 : 어떤 목적에 맞추어 프로그램을 작성하는 것(목적을 만족시키는 것)을 ‘임플리먼트한다’고 한다. - from <네이버 지식백과>''
* 그렇다면 이 openGL은 구체적으로 어떤식으로 작용하는가? 윈도우를 예시로 들어보자. 윈도우 같은 경우 어떤 화면에 이미지를 출력하려면 '''GDI(graphic Device Interface)라는 그래픽 장치 인터페이스'''를 통해서 출력장치로 출력데이터를 보내 출력한다.
* openGL의 하드웨어 임플리먼테이션은 그래픽 개발사에서 그래픽 카드 드라이버 형태로 개발되고 사용된다. openGL이 특정 플랫폼에서 시작하여 일반적인 플랫폼으로 전향하고 개방화를 실시했을때 각 그래픽 드라이버에 대한 openGL의 개발은 하드웨어 제작사에서 이루어져야 한다고 생각하고 그리 시행했는데, 이는 매우 적합한 선택이 되었고 이로 인해 하드웨어 임플리먼테이션은 그래픽 개발사에서 맡게되었다.
* 하드웨어적인 내용을 설명하려면 우선 openGL의'''파이프라인'''에 대해서 설명해야한다. 고로 그 파이프라인에 대해서 살펴보자.
* openGL은 데이터타입을 내부적으로 정의 하고 내부에서 쓰고 있다. 이는 역시 일반적인 임플리먼테이션을 고수하기 위해서임은 당연한 사실이다.(각 환경마다 데이터 형식이 다르기 때문에 이를 모두수용하기 위해서는 자체적으로 정의한 데이터형식을 쓸 수 밖에 없다.)
* openGL을 상징하는 GL을 앞에 붙히는건 이뿐만아니라 함수에도 적용된다는 사실을 하나 알아두자.
* 위의 규칙에서 (선택적)이라고 되어있는 것은 없을수도 있고 있을수도 잇다는 이야기이다. 위를 예를 이용해서 설명하자면, glColor()가 있 을 수 있다는 이야기이다.
- SystemEngineeringTeam/TrainingCourse . . . . 27 matches
* 여러가지 도메인이 가능했으나 한글 이름으로는 짧은 도메인이 불가능. 닉네임으로 쓰고 있는 bluemir를 사용해서 가능한 도메인 중에는 .org .net .me 등등이 가능했으나 .com은 불가능. 어차피 개인 도메인으로 사용할 예정이었고 .org 와 .net 보다는 .me가 조금더 맞는듯한 도메인 이었음. 한글이름 이니셜만 따서 .com을 사용해볼려 했으나 내 개인 도메인이라는 느낌이 들지않아서 위의 도메인으로 결정.
* jereneal.me보다 훨씬 짧은데 사용가능한 도메인이었음. jkim은 jereneal kim도 되고, (tae) jin kim도 됨. .com등의 도메인은 없었음.
* 나머지 도메인중에 구매할 것을 고르는데 도메인 설명중 .me의 "개인용으로 적합하다. 특히 resume, blogs에 사용할 수 있다"라는 설명이 나의 심금을 울렸는데 특히 resume부분이...
* 구매 사이트는 hosting.kr 사용. 형진 선배의 추천으로 가격이 싸다고 들어서.
* 닉네임이자 세례명인 linuspark을 사용, 컴공인으로써 부담되긴 하지만 여태 쓰던걸 바꿀생각이 없으므로 그대로 사용.
* 후이즈, 호스팅케이알, 가비아, 아이네임즈 등 여러 사이트들을 찾아보았으나 서비스내용은 비슷한것 같고 아직 모르는 내용들도 많아서 가격기 가장 싼 호스팅케이알에서 구입.
* .com은 이미 등록되어있었고, .org .net .info .me 등 중에서 .net이 가장 싸서 이걸로 결정, 주로 네트워크회사 등에서 사용한다지만 가격이 우선함.
* Fedora - 주로 데탑으로 많이쓰이고 업데이트가 빠르며 다양한 패키지들을 사용할수 있지만 다소 불안정함. 사실 연습용 서버로 쓰기에는 큰 무리가 없다.
* Ubuntu - 맥분투라고 비난받고 있는 리눅스 뛰어난 사용자 편의성과 GUI를 갖추고 있고 문제 해결에 실마리가 될 포럼이 가장 활발하다. 하지만 대부분의 문제는 XWindows(이걸 뭐라 부르지..)쪽 문제. 빠른 패치와 다양한 패키지를 갖추고 있지만 언제 지원이 끊길지 모른다.
* 위의 내용중 우선정도는 안정성, 문제 해결 가능성, 보안, 편의성, 지원기간 순.
* Fedora와 ubuntu는 stable하지 않다. 사실 연습용서버로는 충분하나, 다른것에 비하면..
* 현재 사용하고 있는 Fedora와는 CentOS가 유사하다.
* 서영주 - 사용 비율, 포럼의 활성화 정도도 ubuntu쪽이 더 높은 것 같고 CentOS쪽이 안정성이 높다고는 하지만 어차피 지원을 받을 수 있는 RHEL과 비교하면 크게 차이는 없다고 한다. 하지만 써본 적이 없으므로 배우고 싶다는 이유로 CentOS쪽을 써보고 싶습니다.
* 서민관 - trello 쪽에 있는 서버 운영체제 요건을 봤을 때 대부분이 큰 차이가 없는 것 같고 안정성 면에서 CentOS, 업데이트 속도 면에서 Fedora/Ubuntu 라는 느낌이라서 둘 중에 어느 쪽에 중점을 두느냐에 따라 결정이 갈리는 것 같습니다. 이런저런 생각의 결과 Ubuntu 계열을 사용하기로 결정했습니다. 이유는 여럿 있는데, 첫째는 지금까지 Ubuntu를 좀 써 본 만큼 익숙한 환경에서 하는 것이 그 외의 문제에 시간을 덜 쓰고 문제 자체만을 다루기에 좋을 것 같다는 것입니다. 그리고 두 번째로 이번에 Raspberry pi를 구매했는데, 이쪽에서 기본적으로 제공하는 운영체제가 Debian 계열이라서 Ubuntu에서 작업을 해 보면 Raspberry pi에서도 좀 더 작업을 편하게 할 수 있지 않을까 하는 생각이 들어서 Ubuntu 계열을 쓰기로 결정했습니다.
* 일단 FreeBSD는 맥계열이라 제외 맥에대한 서버는 관심이 없다. Ubuntu와 CentOS중에서 Ubuntu가 더 익숙하고 사용하기 편하지만 CentOS선택.
* 이유 : Ubuntu는 데스크탑으로 사용중이기에 Debian계열의 apt-get패키지는 사용한 적이 있다. 반면 CentOS의 yum패키지는 사용해 본 적도 별로 없고 사용하였을때 의존성문제로 많은 애러를 보았기에 이를 공부해 보고자 선택. 또한CentOS가 서버로 많이 사용된다는 점을 들어 문재해결시 도움이 될 자료가 많을 것 같아서 선택
* 페도라는 데탑용이라서 조금 짜증 날수도 있어요. 그래도 서버로 쓸수 있긴하지만 가끔 너무 최신이어서 문제해결을 못하는 경우가 있더라고요. 그야말로 RHEL의 베타테스트 버전.. - [안혁준]
- 페이지제목띄어쓰기토론 . . . . 27 matches
=== 제목에 한글 띄어쓰기 허용시 장단점 ===
* 모인모인 시스템에 별다른 영향을 끼치지 않는다. (띄어쓰기를 허용해도 오동작을 일으키지 않는다.)
=== 제목에 한글 띄어쓰기 불허용시 장단점 ===
* 영문 제목의 경우 모두 빈칸을 붙여서 사용한다. (제목으로 표시될때 자동으로 단어의 대문자 단위로 빈칸을 띄어주므로)
* 한글 제목의 경우 붙여쓰기를 기본으로 하되, 띄어쓰기도 허용한다. (띄어쓰기에 따른 효과는 아직 검증되지 않았으므로, 별다른 제약을 가하지 않기로 함)
* 제목중 특수문자는 일단 자유롭게 허용한다.
문제를 시스템과 관련해서 제한을 두지 말고 생각해봅시다. 한글 띄어쓰기가 더 사용하기에 좋은지, 아니면 붙여쓰더라도 별다른 불편이 없는지. 만약 띄어쓰는게 더 좋은 방법이라고 모인모인을 수정해볼수도 있겠죠? 예를들어, 한글의 경우 마음대로 띄어쓰기를 하는 경우가 중복된 페이지를 생성하는데 문제가 된다면, 검색시나 새로운 페이지 생성시 white space 를 제외한 검색으로 페이지를 보여줄수도 있겠지요. 생각해보면 다른 '구현' 방법도 찾을 수 있을것 같습니다. 문제는, '문제'자체가 어떠한게 더 좋은 방법인지를 이야기해보도록 합시다. -- 이선우
우선, 한국어는 영어와 달리 띄어쓰기를 하지 않아도 크게 불편하지 않습니다. 문자와 말의 특성 때문입니다. 하지만 이것이 띄어쓰기를 한 경우보다 정보 손실이 있다는 점은 사실입니다. 현재 모인모인에서는 {{{~cpp ["..."]}}}를 이용해서 확장위키이름을 사용하는 한, 띄어쓰기를 하든 안하든 상관이 없습니다. 띄어쓰기를 하는 것이 좋겠다고 생각을 한다면 그렇게 해보세요. 그리고 나서 토론해 보는 것이 좋을 것입니다. 현재 노스모크는 규칙 변경을 하기에는 비용이 너무 높습니다.
저는 만약 한글 띄어쓰기를 허용하면 분명 어리버리 영문도 띄어쓰기를 하는 사람들이 증가하게 될 것이고, 이는 곧 위키네임이라는 엄청나게 편리한 기능을 사장시킬지도 모르겠다는 우려를 했었습니다(어떤 규칙을 허용하면 그 규칙은 다른 규칙을 점진적으로 파괴하기도 합니다). 노스모크 초기 때에 페이지이름에 대해 엄격한 룰이 없었는데 제가 우려한 현상이 나타났었죠. 한글이건 영문이건, 띄어쓰기를 하는 사람도 있었고, 안하는 사람도 있었고.
DeleteMe) 위키네임이 주는 편리한 기능이란, 손쉽게 같은 내용의 중복을 방지하고 하나의 집약된 문서를 만드는 것인가요? 초기에 노스모크에서 일어난 한글 띄어쓰기 문제가 곧 영문의 경우에도 임의로 띄어쓰게 한 결과를 낳았고, 이로 인해 발생한 문제는 '중복된' 페이지의 양산,혹은 사용자가 원하는 페이지를 쉽게 찾을 수 없는데에서 기인하는지 알고 싶습니다. 전, 순수하게 띄어쓰기 자체가 사람이 문자나 내용을 인지하는데 나쁜 영향을 준다고는 생각하지 않습니다. (현재 자연스러운 글쓰기 형태는 지금 쓰는 문서처럼 띄어쓰기를 허용하니까요. 물론, 제목의 경우에도 예외라 생각하지 않습니다.). 정리해서, 띄어쓰기 자체가 띄어쓰지 않는것보다 좋지 않다고 생각하시는건지, 아니면 위키와 결부된 기능상의 문제인지 알고 싶습니다. -- 이선우
거듭 말씀드리지만, 기능상으로는 제한이 없습니다. 그리고 띄어쓰기 자체가 붙여쓰기보다 나쁘다는 어처구니 없는 일반진술도 하지 않았습니다. 어떤 구체적인 컨텍스트 속에서 이야기를 해야죠. 위키네임이 주는 편리한 기능이란 단어를 붙여쓰면 자동으로 링크가 되는 것을 말합니다. 사람들이 FrontPage라고 하면 될 것을 {{{~cpp ["front page"]}}}나 {{{~cpp ["Front Page"]}}}, 혹은 {{{~cpp ["Frontpage"]}}} 등으로 링크를 걸었다는 것이죠. 또, 사실 사용자가 띄어쓰기를 하건 말건, 혹은 대소문자를 어떻게 섞어쓰건 일종의 분리층(separation layer)을 둬서 모두 동일한 페이지이름으로 매핑을 하는 방법이 있습니다. 하지만 이렇게 되면 새로운 규칙 집합(제가 말하는 규칙이란 사람들간의 규칙을 일컫습니다)이 필요할 것입니다. 국문 경우는 몰라도 영문 경우는 띄어쓰기를 하냐 안하냐가 아주 차이가 큽니다. 노스모크는 초기부터 영어 페이지이름을 많이 사용했고 현재도 그러하기 때문에 이런 문제는 꽤 중요했죠. 또 (영문 경우) 기존의 위키표준을 지킨다는 생각도 있었고요. 하지만 여기는 아직 출발단계이고 하니까 다른 실험을 해볼 수 있겠죠. 아, 그리고 생각이 난건데, 페이지이름을 띄어쓰기를 하게 되면, 사람들이 이걸 위키에서 말하는 어떤 고유한 "단어"로서의 페이지이름(위키의 페이지이름은 "단어"입니다. 그게 하나의 커뮤니케이션 단위이기 때문이죠.)이 아니고 게시판에서의 게시물 제목 수준으로 생각하게 되는 경향(affordance)이 있었습니다. 사실 위키에서의 페이지이름은 프로그래밍의 변수이름처럼 상당히 중요한 역할을 하는데, 붙여쓰기를 하게 되면 사람들에게 기존 의식틀에서 벗어나서 페이지이름이 고유한 것이고, 기존의 게시물 제목과는 다르다는 인식을 심어주는 데에 많은 도움이 되었습니다. 다른 원인도 있겠지만, 주변에서 페이지이름에 띄어쓰기 붙여쓰기 등 별 제한 없이 자유로운 곳일수록 페이지이름을 페이지이름으로 활용하지 못하는 경우를 많이 봤습니다. 만약 띄어쓰기를 허용한다면 오히려 더욱 엄격한 규칙과 이의 전파가 필요할지도 모르겠습니다.
조금 다른 이야기인데, 특수문자를 페이지이름에 사용하는 문제입니다. 제가 특수문자를 사용하지 말자는 규칙을 만든 이유는, 그것이 발음하기 어렵기 때문입니다. 발음하기 힘든 단어를 한 사회의 언어에 사용하지 않는 것에는 언어학적, 심리학적, 사회학적, 조직학적, 문화적 문제가 중층적으로 연계되어 있습니다. 한마디로 말한다면 해당 위키 커뮤니티가 더 발전하기 위한 겁니다. 이건 다음에 기회가 되면 자세히 설명을 하죠. 아주 작은 차이 같고, 별 이유가 없고 오히려 더 불편한 것 같지만 사실은 상당한 차이를 불러오는 것들이 많습니다. 페이지이름 띄어쓰기 문제도 직접 실험도 해보고 그 결과에 대해 여러가지 분석, 논의도 해보면서 신중한 결정을 하길 바랍니다. --김창준
혹시 '/'를 사용한 페이지들를 염두에 두고 하신 말씀이신지요. ["ZIM/UIPrototype"] 과 같은 페이지의 이름은 굳이 특수문자를 안쓰고 접두어처럼 사용해서 ["ZimUIPrototype"]과 같이 만들어도 ''작은 차이''일 뿐이라는 생각이 듭니다. 그런데 '/'를 사용하니 제목에 사용된 두 개념의 경계를 명확히해서 눈으로 읽기에는 더 좋은데요, 슬래시(slash)라고 소리내어 읽어야 한다는 것이 어떤 ''상당한 차이''를 불러올지 궁금합니다. --이덕준
- 프로그래머의길 . . . . 27 matches
마소 7월달 (1999년꺼로 기억) 이승용씨의 글. 자유게시판에 인용된 글 옮김. (자유게시판 200번 대 글이군. -_-;)
프로그래머는 화가와 같다. 화가의 그림에 대한 영감이 프로그래머의 코드에 대한 영감이며, 화가의 화판은 프로그래머의 자판인 것이다. 단지 프로그래머는 화가가 사용하는 붓대신 손을 이용한 코딩을 한다는 차이점 뿐이다. 맨처음 코딩에 대한 영감은 단순하게 시작한다. 하지만 그 영감을 현실속으로 끌어내기 위해서는 많은 시행착오를 거치게 된다. 자신의 실력을 한탄하기도 하면서 자신이 만들어낸 알고리즘에 흠뻑 취하기도 한다.
이와 반대로 이상을 선택하는 프로그래머는 그 다음부타 자신과의 싸움이 시적된다. 끈기 바로 이것이다. 흔히 우리는 능력이 탁월한 사람보다는 성실한 사람을 더 높이 평가해중다. 프로그래머 역시 끈기가 없으면, 완성도 높은 프로그램을 만들지 못한다. 자신이 만든 알고리즘이 아무리 탁월하다고 해도 이를 이용한 애플리케이션의 완성도가 높지 않으면, 아무리 탁월하다고 해도 이를 이용한 애플리케이션의 완성도가 높지 않으면, 아무도 알아주지 않는다. 필자는 수많은 디버깅과 요구사항을 수용해 나가면서 자신의 이상을 실현해 나가는 프로그래머를 높이 평가하고 싶다. 그리고 그러한 사람이야말로 발전 가능성이 있으며, 신뢰할 수 있는 프로그램을 만들기 때문이다.
이 글을 읽고 있는 독자라면 어느 정도 프로그래밍을 해본 경험이 있을 것이다. 초보자라 함은 프로그래밍에 입문하고자 하는 사람을 말한다. 즉 컴퓨터 사용부터 천천히 배워나가고 있는 사람들이다. 이들은 특정 학원 혹은 학교의 정규 과정을 통해 동료들과 함께 배우기도 하고, 또는 개인적으로 학습해 나가는 경우도 있다. 초보자들의 공통점은 전문가들의 논쟁을 아직 이해 할 수는 없지만큰 관심을 갖고 있으며, 컴퓨터로 모든 일이 가능할 것이라는 부푼 기대에 차있다는 것이다. 여기서 그들의 기대감이 문제시 된다. 기대가 크면 클수록 돌아오는실망감은 비례한다.바로 컴퓨터로 할 수 있는 일이 한정돼 버리는 시점에서 더 이상의 진전이 없게 되는 것이다.
초보자 들 중 주위 사람들 보다 좀더 많은 내용을 알고 있다는 자만심을 갖고 있는이들이 특히 그럴 확률이 높다. 이들은 일종의 유틸리티를 이용해 남들이 하지 못하는 기법을 익혀 이를 자랑하면서 우월감에 사로 잡히게 된다. 하지만 그러한 우월감은 그리 오래 가지 않는다. 자신보다 더 뛰어난 전문가를 만나면 '도대체 내가 무엇을 하고 있는가?'하는 반문이 생기기 때문이다. 여기서 이들은 '이해의 벽'을 피부로 느끼며, 컴퓨터를 이용한 새로운 도전을 받아들이게 된다. 물론 이 시점에서 이해의 벽을 뛰어넘지 못하는 이들도 있을 것이다.하지만 프로그신머의 길을 걸어가기를 원하는 이는 자신에게 닥친 상황을 돌파하기 위한 해결책을 찾는다. 이것이 바로프로그램이다. 필자는 이들에게 이렇게 말하고 싶다.
첫번째 벽인 '''이해의 벽'''을 뛰어넘은 중급자는 그들만의 고유 영역을 갖게 된다. 이것이 바로 코딩이다. 코딩은 그 방법만 알면 쉽게 처리할 수 있다. 방법은 경륜이라 해도 과언이 아니다. 도공은 자신이 만든 도자기를 보며, 완벽하지 않은 것들을 일반인이 이해할 수 없을 정도로 부셔 버린다. 우리는 아무리 보아도 그것 들의 차이점을 알아낼 수가 없다. 하지만 경륜이 많은 도공은 도자기의 빛깔과 형태만 보아도 좋은 도자기인지 아니면 버려야할 도자기인지 알아낸다. 프로그램도 마찬가지이다. 컴퓨터를 이해하고 있는 프로그래머는 실행되고 있는 응용 프로그램만 보다도 어떻게 그것을 만들어 냈는지 알 수 있다 그리고 어떤 어려운 문제가 닥치더라도 해결점을 찾아낸다.
불교의 경전인 반야심경(般若心經)에 '색즉시공 공즉시색(色卽是空 空卽是色)이라는 용어가 있다. 이를 풀이하면 '얻는다는 것은 공 잃음이요, 잃어버리는 것이 곧 얻음이라'고 말할 수 있다. 필자가 이 깊은 말뜻을 이해하고 있다는 것은 아니다. 그렇다고 종교적 가치관이 뚜렷하다는 것은 더더욱 아니다. 하지만 프로그램을 자성해 오면서 반야심경이 전하는 이 말뜻을 조금이나마 이해하게 됐다는 표현이 적절할 것이다.
만약 이와 같이 생각한 독자가 있다면 필자가 의도하는 내용을 정확하게 파악한 것이 아니다. 버리라고 표현한 것은 자기 자신이 가지고 있는 생각, 즉 프로그램에 대한 생각을 버리라는 것이다. 우리 인간은 변화에 대한 불안함을 내포하고 있다 특히 나이가 들수록 그 정도는 심화되고, 젊은 사람들의 사고를 이해하기보다는 왜곡됐다고 평하게 된다. 이는 그 사람의 가치관이 고정돼 버렸기 때문에 자신의 사고와 일치하지 않는 다른 모든 행동을 잘못됐다고 생각한다.
그렇다면 어떤 시점에 코드를 버려햐 하는가? 필자는 크게 두 가지 시점에 대해 논하고자 한다. 첫번째 시점은 프로젝트를 진행하고 있는 과정에서 발생한다. 정확하게 표현하면, 새로운 기능의 가능성을 타진해 보는 프로토타입 프로그램을 완성한 시점이 된다. 소프트웨어 공학에서 설계의 중요성을 강조하기 위해 객체지향이라는 패러다임을 만들 만큼 코딩이전의 설계 단계를 강조하고 있다 물론 잘 작성된 프로그램 설계는 프로토타입이라는 중간 프로그램 생성이 필요 없이 설계 명세서에 의한 코딩만 하면 완벽한 응용 프로그램을 개발할 수 있다.
하지만 필자의 경험에 미뤄보면 이러한 경우는 업무 자동화와 같은 특정한 형식이 있는 응용 프로그램에 적용된다. 만약 프로젝트 설계자가 경험이 없는 응용 프로그램을 만들어야 한다는 가정을 두면 상황은 반전된다. 즉 설계자의 미경험에 의한 시행착오가 발생하는 것이다. 이러한 시행착오를 줄이는 방법이 새로운 기술에 대한 프로토타입의 개발이기는 하지만, 프로토타입으로 끝나야 한다. 하지만 우리의 실정은 아직까지도 프로토타입을 완성된 프로그램으로 생각하고 있는 경향이 지배적인것 같다.
코드를 버러야 하는 두번째 시점은 완성된 프로그램의 버젼 업그레이드에서 발생한다. 첫번째 경우보다 더 많은 용단을 필요로 하는 시점이기도 하다. 응용 프로그램의 버전업은 이미 만들어진 응용 프로그램에 사용자의 추가 요구사항을 수렴해서 개발한다는 의미와 이전 버전에서 발생된 문제점을 해결한다는 의미를 동시에 가지고 있다. 간혹 사용자의 추가 요구사항이 프로그래머가 상상할 수 없는 경우일 때도 있다. 그 모든 요구사항을 다 수렴해 프로그램을 만들수 는 없기 때문에 프로그래머는 타협점을 찾아 다음버전의 기능을 제한시키게 된다.
바로 사용자와 프로그래머 사이에서 발생되는 타협점을 결정하는 시점에서 프로그래머의 마음 가짐이 능동적인 자세인지 수동적인 자세인지 따라 코딩의 방향이 결정된다. 능동적이고 적극적인 프로그래머는 사용자의 요구사항을 검토해 참신한 아이디어일 경우 이를 적극 수렴한다. 하지만 수동적인 프로그래머는 현재 버전에서 지원될수 있는 사항만을 검토하는 성향이 있다.
프로그래머들이 이 시점에서 생각하는 것은 시간이다. 주어진 시간에 어떻게 그 기능을 추가할 것인가를 걱정한다. 너무 많은 코드의 변화는 주어진 시간에 완성할 수 없다는 것이다. 따라서 적당한 타협점을 찾는 것이 프로그래머의 보편적인 경향이다. 하지만 사용자의 요구사항을 수렴하는 방향으로 전환한다면, 프로그래머는 자신의 코드를 다시 한번 생각하게 될것이다. 필자는 이것을 바라는 것이다. 지신의 코드를 다시한번 돌이켜 보면 , 자신의 오류를 찾을수 있고, 또 사용자들이 바라는 방향을 예측할 수 있게 된다. 바로 이것이 완벽에 가까운 코드를 작성하는 방법일 것이다.
- 후각발달특별세미나 . . . . 27 matches
세미나 후 제 귀에 들어온 질문 중에 '함수를 많이 만들면 메모리를 더 사용하지 않는가?'라는 질문이 있었습니다. 누가 자세히 설명 좀 부탁드립니다. --재동
전문적인 설명은 아니구, 제 생각에는 함수를 사용하여 메모리 사용하는 비용과 프로그래머가 함수를 더 사용하여 소스의 가독성을 올리고, 유지 보수 및 버그를 없애는 비용과 비교를 해볼때 후자가 훨씬더 큰 비중을 차지하기 때문에 함수를 더 사용하여 메모리를 더 사용하더라도 리펙토링의 중요성이 결코 줄어들지 않는다고 생각합니다. 그리고 짧은 소스에서는 리펙토링 하여 함수가 많아 지는것이 낭비처럼 보일지 몰라도 좀더 프로그램이 커질수록 리팩토링을 해놓음으로 해서 추후에 최적화를 하는데에도 훨씬 유리하기 때문에 결국에 가서는 자원도 더 효율적으로 사용하리라고 봅니다. - [상협]
사실 이 질문은 제가 받았던 질문인데, 질문 받았던 당시에 별 생각없이 '''메모리를 많이 사용한다는 단점이 있더라도 잃는 것(단점)보다 얻는 것(장점)이 더 많기 때문에 상관없다'''고 얼버무렸습니다. 그렇게 틀린 대답은 아니였지만 많이 부족한 대답이었습니다. 그래서 재동형하고 이야기도 해보고 저도 나름대로 생각해서 답을 내어보았습니다.
메모리를 많이 사용한다는 우려의 원인은 많은 변수들에 있습니다. 전달인자를 받거나 값을 리턴할 때, 각각 상응되는 변수가 필요하기 때문이죠. 하지만 변수는 그 변수가 선언된 함수내에서만 효력을 발휘하고 함수가 종료되는 순간 사라집니다(메모리해제). 그러므로 모듈화된(쉽게 이야기해서 함수로 나뉜)프로그램에서는 함수내의 많은 변수들이 메모리를 많이 차지하더라도 그 함수가 끝나면 그 메모리는 해제되어 사용가능해집니다. 그리고 전역변수나 메인함수내의 변수만을 사용하는 프로그램은 프로그램이 끝날 때까지(메인함수가 종료될 때까지) 메모리를 잡아두므로 한번 할당된 메모리는 사용불가능합니다.
모듈화된 프로그램에서의 메모리 사용의 개념은 '''필요할 때마다 할당해서 쓰고 필요없으면 해제하자'''이고 전역변수나 메인함수내의 변수만을 사용하는 프로그램에서의 메모리 사용의 개념은 '''지금은 안쓰이더라도 나중에 쓸 메모리를 미리 할당하고 사용이 끝났더라도 메모리를 계속 잡아두자'''입니다. 전자의 경우에는 어느 순간 메모리를 많이 사용하는 경우도 있고 어느 순간에는 엄청 적게 사용하는 경우가 있습니다. 메모리 사용이 더 유동적이라고 할 수 있습니다. 밑에 참고 그래프(자체제작)를 참고해주시기 바랍니다. --[강희경]
- 아래 상규의 말대로 큰 차이는 없을 것 같습니다. 모듈에서의 변수 선언, 사용에 있어서 메모리 사용량은 기껏해야 몇 바이트 정도가 아닐까요? 아래 코드처럼 극단적인 예가 아닌 이상 큰 변화가 없는 경우가 대부분이라고 생각합니다(물론, 동적할당은 여기서 논외입니다). 그런데, 아래의 코드는 몇가지 냄새가 나는 코드로군요. 큭. :(
// foo(), bar() 가 호출될 때마다 memory사용량이 4K 씩 늘어난다.
(참고로 제가 말하고자 하는 것은 코드에 의한 메모리 사용량 입니다.)
함수의 갯수와 메모리 사용량은 직접적으로 관련이 없습니다. 메모리 사용량과 직접적으로 관련이 있는 것은 함수의 갯수가 아니라 프로그램의 길이 입니다.
- 2010JavaScript/역전재판 . . . . 26 matches
<span class='think'>(span 을 사용했음)</span><br>
contents=new Array(); //대사 내용이 들어있는 javascript파일 안에 있는 배열의 이름.
function changetext(){ // 글자가 나오는 text부분에 내용을 바꾸는 함수.
<script language="javascript" SRC="./contents.js"></script> //대사 내용을 넣은 javascript파일('contents.js')을 첨부.
<span class='think'>(span 을 사용했음)</span><br>
contents[0] = "내용1"
contents[1] = "내용2"
contents[2] = "내용3"
contents[3] = "내용4"
contents[4] = "내용5"
contents[5] = "내용6"
contents[6] = "내용7"
contents[7] = "내용8"
contents[8] = "내용9"
contents[9] = "내용10"
contents[10] = "내용11"
contents[11] = "내용12"
contents[12] = "내용13"
contents[13] = "내용14"
contents[14] = "내용15"
- DataCommunicationSummaryProject/Chapter9 . . . . 26 matches
* cellular networks가 cell을 반경으로 하는데 비하여, Short-Range Wireless Networks는 아주 짧은 반경,Ultra Wide Banded 을 사용,고속이다.pbx처럼 pirvate networks이다.
* cellular networks가 예상보다 빠르게 성장한데 비하여,short-range mobile systems은 덜 성공적이였다.그 이유에는 속도,유선에 비하여 신뢰성의 떨어짐, 경쟁적인 기준이 있다.물론 Cordless phones 처럼 인기있는것도 있지만, 점점 범위를 늘리려고 한다. 또한roaming에서의 실패성이 많다.적외선이 laptop 이나 PDA에서 거의 사용되지만 잘 사용되지 않는다.
* 2000년대 부터 wireless LANs가 데이터 속도와 가격만에서많은 성장을 가져왔다.IEEE의802.11b의 지준을 많이 사용한다.물론 아직은 핸드폰이나 인터넷에 비할수는 없지만,성장 속도는 빠르다. 새로운 시스템은 유선에 도전을 줄 만큼 데이터전송량과 속도를 증가 시켰다.
* 적외선 사용이 실패였지만 아직도 많은 연구와 회사의 사용이 있다.4세대 모바일 시스템으로 주목 받고 있다.roaming하는데 별 어려움 없이 랜과 3새대 휴대폰과 Bluetooth와의 연결도 가능할 것이다.
* 앞에서 예기했지만 짧은 반경이면 고주파이고(고주파는 아직 국가에서 할당이 잘 안돼었다) ,개인이 베이스스테이션을 달므로 허가 받은 주파수가 아니다. 즉 누구나 사요할수 있는것이다. 그럼 사용되는 주파수대를 알아볼까? 물론 고주파다.
* ISM(Industrail,Scientific, and Medical) 는 의사소통을 위한것이 아니다. 따라서 이 범위의 주파수는 국가에서 나두었다. 그래서 무선 전화나 무선 랜에서 사용된다.
* ISM 2.4 는 여러 국가에서 모두 사용가능한 주파수 범위이다.따라서 너무나 많은 곳에서 사용하므로 완전 사장보다 더 복잡하다. 그러니 스프레드 스펙트럼을 사용한다. 하지만 11Mbps이상은 능력이 딸린다.
* Light의 예로 적외선이있다.(비허가) 빛이므로 조준을 잘해야겠다. 좋은점은 높은 주파수대라는것(아직 높은 주파수대는 국가에서 안팔았으니 자유로이 많이 사용할수있따) 보안에 좋다. 벽을 통과 못하니 누가 몰래 들을 가능성은 적겠지.
* 어느곳에나 사용가능, 이동성의 편이성,속도의 빠름, 표준기준 확정, 등이 새로운 이점들. 하지만 아직도 보안은 문제점
* CCK(Complementary Code Keying)라고 불리는DSSS의 2.4GHZ를 사용한다. 물론 기존의 기계와 호환성을 기진다. MAC하는 방법은 CSMA/CA(여기서 A는 avoidance이다 유선과는 틀리다) half-duples이다.shared이다. 대역폭이 11Mbps이지만 오보헤드가 심하다. 여기에다가 쉐어드이니 장에가 심하면 1-2Mbps밖에 안된다.하지만 데이터 전송률은 쓸만하다. 이러한 낭비를 줄이려고 차세대로 갈수록 물리적인 데이터 율을 줄인다.
* 유럽의 1992년에 새운 기준이다. 지들이 만든 GSM을 기준으로 한다.5-GHz의 대여폭을 사용한다.
* VPN을 이용해 인증된 패킷만 통과시킨다.
* 같은 전화기를 사설, 공용 네트워크 모두에서 사용한다.
* 공용 셀룰라 네트워크(ex)GSM) + 사설 기지국
* Frequency Hopping을 사용한다.
* 짧은 거리 무선 시스템은 허가되지 않은 주파수 영역을 사용한다. 이것들은 대화를 위해 공개될수 있고, ISM 어플리케이션과 공유될수 있다.
* 높은 수용능력은 높은 주파수를 사용해야 할 필요가 있다. HiperLAN2와 IEEE 802.11a 모두 5Ghz의 밴드를 사용하며, 54Mbps의 속도를 낼수 있다.
* 적외선 기술은 거의 대부분의 휴대용 컴퓨터 장치 안에 지어졌고, 데이터 전송의 방법에 있어서 케이블보다 더 편할때도 있다.
* 4G 모바일 시스템은 무선 랜을 확장한다. 왜냐하면 거리가 매우 짧고, 많은 장치들이 3G, 무선랜, Bluetooth와 콤비로 사용되기 때문이다.
- Gof/Facade . . . . 26 matches
서브시스템의 인터페이스집합에 일관된 인터페이스를 제공한다. Facade는 고급레벨의 인터페이스를 정의함으로서 서브시스템을 더 사용하기 쉽게 해준다.
예를 들기 위해, 어플리케이션에게 컴파일러 서브시스템을 제공해주는 프로그래밍 환경이 있다고 하자. 이 서브시스템은 컴파일러를 구현하는 Scanner, Parser, ProgramNode, BytecodeStream, 그리고 ProgramNodeBuilder 클래스를 포함하고 있다. 몇몇 특수화된 어플리케이션은 이러한 클래스들을 직접적으로 접근할 필요가 있을 것이다. 하지만, 대부분의 컴파일러 시스템을 이용하는 클라이언트들은 일반적으로 구문분석(Parsing)이나 코드 변환 (Code generation) 의 세부적인 부분에 대해 신경쓸 필요가 없다.(그들은 단지 약간의 코드를 컴파일하기 원할뿐이지 다른 강력한 기능을 알 필요가 없다.) 그러한 클라이언트들에게는 컴파일러 서브시스템의 강력하지만 저급레벨인 인터페이스는 단지 그들의 작업을 복잡하게 만들 뿐이다.
이러한 클래스들로부터 클라이언트들을 보호할 수 있는 고급레벨의 인터페이스를 제공하기 위해 컴파일러 서브시스템은 facade 로서 Compiler class를 포함한다. 이러한 클래스는 컴파일러의 각 기능성들에 대한 단일한 인터페이스를 정의한다. Compiler class는 facade (원래의 단어 뜻은 건물의 전면. 외관, 겉보기..) 로서 작용한다. Compiler class는 클라이언트들에게 컴파일러 서브시스템에 대한 단일하고 단순한 인터페이스를 제공한다. Compiler class는 컴파일러의 각 기능들을 구현한 클래스들을 완벽하게 은폐시키지 않고, 하나의 클래스에 포함시켜서 붙인다. 컴파일러 facade 는저급레벨의 기능들의 은폐없이 대부분의 프로그래머들에게 편리성을 제공한다.
이럴때 Facade Pattern을 사용하라.
* 복잡한 서브 시스템에 대해 단순한 인터페이스를 제공하기 원할때. 서브시스템은 종종 시스템들이 발전되어나가면서 더욱 복잡성을 띄게 된다. 대부분의 패턴들은 패턴이 적용된 결과로 많고 작은 클래스들이 되게 한다. 패턴의 적용은 서브시스템들이 더 재사용가능하고 커스터마이즈하기 쉽게 하지만, 커스터마이즈할 필요가 없는 클라이언트들이 사용하기 어렵게 만든다. Facade는 서브시스템에 대한 단순하고 기본적인 시각을 제공한다. 이러한 시각은 대부분의 클라이언트들에게 충분하다. 커스터마이즈가 필요한 클라이언트들에게만이 facade를 넘어서 볼 필요가 있는 것이다.
* 서브시스템에 계층을 두고 싶을 때. 각 서브시스템 레벨의 entry point를 정의하기 위해 facade를 사용하라. 만일 각 서브시스템들이 서로 의존적이라면 서브시스템들간의 대화를 각 시스템간의 facade로 단일화 시킴으로서 그 의존성을 단순화시킬 수 있다.
facade 를 사용하는 클라이언트는 직접 서브시스템 객체에 접근할 필요가 없다.
1. 서브시스템 컴포넌트로부터 클라이언트들을 보호한다. 그러함으로서 클라이언트가 다루는 객체의 수를 줄이고, 서브시스템을 이용하기 쉽게 해준다.
3. 그러하면서도 어플리케이션은 여전히 서스시스템 클래스들을 사용할 방법을 제공한다. 사용의 편리성과 일반성을 선택할 수 있다.
그러면 클라이언트는 추상 Facade class의 인터페이스를 통해 서브시스템과 대화할 수 있다. 이러한 추상클래스와의 연결은 클라이언트가 사용할 서브시스템의 구현을 알아야 하는 필요성을 없애준다.
서브시스템 클래스를 private 로 만드는 것은 유용하지만, 일부의 OOP Language가 지원한다. C++과 Smalltalk 는 전통적으로 class에 대한 namespace를 global하게 가진다. 하지만 최근에 C++ 표준회의에서 namespace가 추가됨으로서 [Str94], public 서브시스템 클래스를 노출시킬 수 있게 되었다.[Str94] (충돌의 여지를 줄였다는 편이 맞을듯..)
Parser 클래스는 Scanner의 token로 parse tree를 구축하기 위해 ProgramNodeBuilder 를 사용한다.
Parser는 점진적으로 parse tree를 만들기 위해 ProgramNodeBuilder 를 호출한다. 이 클래스들은 Builder pattern에 따라 상호작용한다.
Traverse operaton은 CodeGenerator 객체를 인자로 취한다. ProgramNode subclass들은 BytecodeStream에 있는 Bytecode객체들을 machine code로 변환하기 위해 CodeGenerator 객체를 사용한다. CodeGenerator 클래는 visitor이다. (VisitorPattern을 참조하라)
이 구현에서는 사용하려는 code-generator의 형태에 대해서 hard-codes (직접 특정형태 부분을 추상화시키지 않고 바로 입력)를 했다. 그렇게 함으로서 프로그래머는 목적이 되는 아키텍처로 구체화시키도록 요구받지 않는다. 만일 목적이 되는 아키텍처가 단 하나라면 그것은 아마 이성적인 판단일 것이다. 만일 그러한 경우가 아니라면 우리는 Compiler 의 constructor 에 CodeGenerator 를 인자로 추가하기 원할 것이다. 그러면 프로그래머는 Compiler를 instance화 할때 사용할 generator를 구체화할 수 있다. Compiler facade는 또한 Scanner나 ProgramNodeBuilder 등의 다른 협동하는 서브시스템클래스를 인자화할 수 있다. 그것은 유연성을 증가시키지만, 또한 일반적인 사용형태에 대해 인터페이스의 단순함을 제공하는 Facade pattern의 의의를 떨어뜨린다.
Choices operating system [CIRM93] 은 많은 framework를 하나로 합치기 위해 facade를 사용한다. Choices에서의 key가 되는 추상객체들은 process와 storge, 그리고 adress spaces 이다. 이러한 각 추상객체들에는 각각에 대응되는 서브시스템이 있으며, framework로서 구현된다. 이 framework는 다양한 하드웨어 플랫폼에 대해 Choices에 대한 porting을 지원한다. 이 두 서브시스템은 '대표자'를 가진다. (즉, facade) 이 대표자들은 FileSystemInterface (storage) 와 Domain (address spaces)이다.
앞의 다이어그램이 보여주듯, 가상 메모리 서브시스템은 내부적으로 다음과 같은 컴포넌트를 이용한다.
AbstactFactory 는 Facade구현시 서브시스템 독립적인 방법으로 서브시스템 객체를 만들 수 있는 인터페이스를 제공하기 위해 사용한다. Abstract Factory는 또한 플랫폼 비독립적 클래스를 감추기 위해 Facade의 대안으로서 사용할 수 있다.
Mediator 는 존재하는 class들의 기능들을 추상화시킨다는 점에서 Facade와 비슷하다. 하지만 Mediator의 목적은 정해지지 않은 동료클래스간의 통신을 추상화시키고, 해당 동료클래스군 어디에도 포함되지 않는 기능들을 중앙으로 모은다. Mediator의 동료클래스들은 Mediator에 대한 정보를 가지며 서로 직접적으로 통신하는 대신 mediator를 통해 통신한다. 대조적으로 facade는 단지 서브시스템들을 사용하기 편하게 하기 위해서 서브시스템들의 인터페이스를 추상화시킬 뿐이다. facade는 새로운 기능을 새로 정의하지 않으며, 서브시스템 클래스는 facade에 대한 정보를 가질 필요가 없다.
- NSIS/Reference . . . . 26 matches
주로 이용하는 것들 (["NSIS/예제1"], ["NSIS/예제2"], ["NSIS/예제3"] 을 작성할 때 필요한 것 정도의 수준)위주로 정리. 좀 더 자세한 것에 대해서는 원문을 참조.
|| BGGradient || 000000 308030 FFFFFF || 그라데이션 배경화면의 이용. 16진수 RGB값으로 표현 ||
|| InstType || "Full Install" || Install 관련 component type 에 대한 정의. 순서대로 1,2,3,4...8 까지의 번호들이 매겨지며, 이는 추후 SectionIn 에서 해당 component 에 대한 포함관계시에 적용된다. ||
|| SpaceTexts || "필요요구용량" "이용가능한용량" || "Space required:", "Space available:" 에 대한 표현 관련 텍스트 ||
|| AllowRootDirInstall || false || 루트디렉토리에 설치할 수 있도록 허용할것인지에 대한 여부 ||
|| InstallColors || FFFF00 000000 || foregroundcolor backgroundcolor. 또는 /windows 옵션을 이용가능 ||
|| InstProgressFlags || smooth colored|| smooth, colored. colored 를 설정시는 InstallColors 의 색으로 적용 ||
InstType 하나당 여러개의 Section 묶음으로 되어있는 것이다. 사용자는 각각의 Section 에 대해 활성/비활성화 함으로서 설치될 모듈들을 고를 수 있다.
|| Section || "ZPTest Defaults Modules (required)" || Section 의 시작을 알린다. Section의 이름을 설정. 만일 Section의 이름이 비어있거나 '-'로 시작되는 경우에는 사용자가 선택할 수 없고, 볼 수도 없다. (즉, 반드시 필요한 Section에 대해). 그리고 가장 처음으로 선언되는 Section은 default Section이 되며 역시 필수 Section이 된다.||
|| AddSize || 1000 || kb 단위. 각 Section당 필요한 용량에 대해 적어준다. ||
Label은 Goto 명령어나 기타 조건제어문들 (IfErrors, MessageBox, IfFileExists, StrCmp 등)을 위해 이용한다.
|| SetOutPath || outpath || output path를 설정한뒤 ($OUTDIR), 만일 해당 path가 존재하지 않으면 만든다. 반드시 full-pathname 이여야 하며 일반적으로 $INSTDIR 이 이용된다. ||
|| File || ([/r] file|wildcard [...]) | /oname=file.data infile.dat||해당 output path ($OUTDIR)에 화일들을 추가한다. 와일드카드 (?, *) 등을 이용할 수 있다. 만일 /r 옵션을 이용할 경우, 해당 화일들와 디렉토리들이 재귀적으로 추가된다. (rm -rf의 'r' 옵션의 의미를 생각하길) ||
|| Exec || command || 특정 프로그램을 실행하고 계속 다음진행을 한다. $OUTDIR 은 작업디렉토리로 이용된다. ex) Exec '"$INSTDIR\command.exe" parameters'||
|| ExecShell || action command [parameters] [SW_SHOWNORMAL | SW_SHOWMAXIMIZED | SW_SHOWMINIMIZED]|| ShellExecute를 이용, 프로그램을 실행시킨다. action은 보통 'open', 'print' 등을 말한다. $OUTDIR 은 작업디렉토리로 이용된다.||
|| Delete || [/REBOOTOK] file || 화일을 삭제한다. 와일드카드 사용가능.||
이용가능한 변수들.
* $0 ~ $9, $R0 ~ $R9 - 사용자 변수들. 다른 명령어들의 결과값 등을 받을 때 이용할 수 있다.
* $STARTMENU - 시작메뉴 folder. (CreateShortCut 을 이용, 시작메뉴에 등록시 유용하다.)
* $SMPROGRAMS - 시작메뉴 programs folder (보통 $STARTMENU\Programs 대신 이용)
- UDK/2012년스터디 . . . . 26 matches
* [권순의], [이민규], [장용운], [박도건]
* 이게 다 [장용운]의 계략입니다. ㅋㅋㅋ
* [http://udn.epicgames.com/Three/UnGlossaryKR.html 용어집] 용어집부터 읽으면 이해가 쉽군여
* [http://udn.epicgames.com/Three/UnrealScriptReferenceKR.html 언리얼스크립트 레퍼런스] UnrealScript 사용자용
* [http://udn.epicgames.com/Three/MaterialsCompendiumKR.html 머터리얼 개론] 텍스쳐와 여러 가지 연산 기능을 이용하여 머터리얼 속성을 만듬
|| [장용운] || O ||
=== 학습 내용 ===
* 용운이의 개략적인 설명과 시연
* UDK로 만든 것들을 보니 방향성을 확실히 잡고 진행을 해야 겠다라는 생각이 들더군요. 오늘은 첫 날 모임 약속이 좀 거시기 해서 출석률이 저 모양이긴 한데 모두들 무엇을 만들지에 대해서 확실히 정하도록 하는 것이 중요하겠네요. 다음으로 UDK 상당히 무겁군요 -_-;; 그래도 그래픽이 상당히 좋네요. 영화속 CG 같은 느낌이었습니다. 오늘은 제가 용운이한테 어떤 것들이 있는지 그냥 보는 시간이었고요,, 정모 시간이나 다음 모임 때 확실히 주제를 정하도록 해야겠네요 - [권순의]
* 몇 시에 모이자고 한 게 없어서 그냥저냥 모여서 순의형과 UDK 툴과 UDK로 만든 게임을 살펴보았습니다. 빨리 UDK를 배워서 게임을 만들고 싶습니다. 지금은 감도 안잡히네요-_-; 설명서나 책같은 것들을 좀 더 읽어봐야겠습니다. 그리고 UDK툴이 메모리나 그래픽을 꽤 많이 잡아먹네요ㅋㅋ 근데 화면 돌릴 때 눈이 어지럽게 돌아가는 건 어떻게 좀 해결을 봐야 할 것 같습니다. - [장용운]
* 그런 정도까지 하려면 5월초까지 만들 수 있을까???ㅋㅋㅋㅋ - [장용운]
* 그냥 뭐 전체 광원 하나놓고, 지형 적당히 만들어준뒤에 나무, 돌, 호수, 풀만 잘배치하면 끝...일거 같은데용... - [박도건]
* 그게 그렇게 간단한 게 아니란다...ㅋㅋㅋ - [장용운]
|| [장용운] || O ||
=== 학습내용 ===
* 캡스톤 설계실에 일이 있어 들른 용운이가 게임 테크에서 뭘 보고 왔는지에 대해서 간단하게 이야기 해 줌
|| [장용운] || O ||
=== 학습내용 ===
특히 Erosion의 Flow map은 여러모로 유용
* 앞으로 일정이 타이트하게 되었습니다. 중간고사도 끼었고.. 무엇보다 아직 공부해야 할 부분이 많다는 것이 좀 더 부담으로 다가온 것 같습니다. 각자가 무엇을 공부 할 지에 대해서 이야기를 나누고 공부를 시작하기로 했는데,, 무엇보다 좀 더 많은 내용을 알고자 노력해야겠습니다. 그리고 Unreal Script도 공부해 보면 좋을 것 같네요. - [권순의]
- 데블스캠프2002/진행상황 . . . . 26 matches
* 화이트 보드 - 목요일 세미나 이후 화이트보드를 5층 피시실에 그냥 두었다. 처음엔 들고 갈까 했었다가 귀찮아서 두었는데, 중간에 후배가 어제 배운 내용에 대해 질문했을 때 '오. 마침 화이트보드가 있네?' 어제 했었던 방법으로 적어나가면서 편리함을 느꼈다.
게다가 피시실에 서 있는중 중간중간 아이디어가 떠오를때 화이트보드를 쳐다보고 있노나니 내용 없는 빈 보드를 가만히 두고 싶어지지 않는다. 손이 근절근절해지도록 일종의 NoSmok:어포던스 를 제공한다고 할까. 칠판과는 다르게 손도 잘 안더러워진다.
* 세미나나 스터디를 준비할때 앞 세미나의 흐름이 연결되었을 경우 그 진행이 더 쉽다. 앞에서의 세미나 내용을 이용하여 설명하면 강사나 학습자나 서로 시간낭비를 줄일 수 있으니까. 추후 이러한 세미나 준비를 할때 그 체계성을 고려해야 할 것이다.
* 일단 지난시간에 만들었었던 RandomWalk 의 스펙을 수정한 RandomWalk2 를 사람들로 하여금 풀게 한뒤, 그 중에 완성한 두명을 뽑아 (상규와 현민) 자신이 어떻게 프로그래밍을 했는지에 대해 창준이형의 진행으로 질답을 하면서 설명해나갔다. 그리고 코드를 프로젝터와 노트북을 이용, 신피의 벽에 비추며 설명하였다. (["RandomWalk2/상규"], ["RandomWalk2/현민"])
* StructuredProgramming - 창준이형이 역사적인 관점에서의 StructuredProgramming에 대해 설명을 하셨다. 그 다음 ["1002"]는 ["RandomWalk2"] 문제에 대해서 StructuredProgramming을 적용하여 풀어나가는 과정을 설명해 나갔다. (원래 예정의 경우 StructuredProgramming 으로 ["RandomWalk2"] 를 만들어가는 과정을 자세하게 보여주려고 했지만, 시간관계상 Prototype 정도에서 그쳤다)
* ["RandomWalk2"] 를 ObjectOrientedProgramming 으로 구현하기 - 위의 Python 관련 실습동안 ["1002"] 는 ["RandomWalk2"] 에 대해서 C++ Prototype을 작성. (["RandomWalk2/ClassPrototype"]) 이를 뼈대로 삼아서 ["RandomWalk2"] 를 작성해보도록 실습. 해당 소스에 대한 간략한 설명, 구현의 예를 설명. 중간에 객체들에 대한 독립적인 테스트방법을 설명하면서 assert 문을 이용한 UnitTest 의 예를 보였다.
또, 동일 문제를 여러번 하는 것의 교육적 효과를 다시금 확신하게 되었다. 내용이 이어지고 연계가 되니, "현재의 주제를 벗어난 것들에 에너지를 덜 소모하면서" 많은 학습이 가능했다. 최소한 문제를 매번 새로 설명하고, 그걸 이해시키게 하는 시간은 주제가 바뀔 때마다 아낄 수 있었다.
* '''Pair Teaching''' 세미나를 혼자서 진행하는게 아닌 둘이서 진행한다면? CRC 디자인 세션이라던지, Structured Programming 시 한명은 프로그래밍을, 한명은 설명을 해주는 방법을 해보면서 '만일 이 일을 혼자서 진행했다면?' 하는 생각을 해본다. 비록 신입회원들에게 하고싶었던 말들 (중간중간 팻감거리들;) 에 대해 언급하진 못했지만, 오히려 세미나 내용 자체에 더 집중할 수 있었다. (팻감거리들이 너무 길어지면 이야기가 산으로 가기 쉽기에.) 그리고 내용설명을 하고 있는 사람이 놓치고 있는 내용이나 사람들과의 Feedback 을 다른 진행자가 읽고, 다음 단계시 생각해볼 수 있었다.
다른 하나는, 요구사항이 어떻게 제시되느냐가 산출물로서의 프로그램에 큰 영향을 끼친다는 점이다. 요구사항이 어떤 순서로 제시되느냐, 심지어는 어떤 시제로 제시되느냐가 프로그램에 큰 영향을 끼친다. 심리학에서 흥미로운 결과를 찾아냈다. "내일은 한국과 브라질의 경기날입니다. 결과가 어떻게 될까요?"라는 질문과, "어제는 한국과 브라질의 경기가 있었습니다. 결과가 어땠나요?"라는 질문에 대해 사람들의 대답은 큰 차이가 있었다. 후자 경우가 훨씬 더 풍부하고, 자세하며, 구체적인 정보를 끌어냈다. 이 사실은 요구사항에도 적용이 되어서, 요구사항의 내용을 "미래 완료형"이나 "과거형"으로 표현하는 방법(Wiki:FuturePerfectThinking )도 생겼다. "This system will provide a friendly user interface"보다, "This system will have provided a friendly user interface"가 낫다는 이야기다. 어찌되었건, 우리는 요구사항이 표현된 "글" 자체에 종속되고, 많은 영향을 받는다.
* 마지막의 ScheduledWalk Prototype 부분을 사람들이 제대로 활용하지 못했다. 세미나때 '가장 빨리 써먹는 방법은 기존의 코드를 읽고 흉내내는 겁니다' 라고 창준이형이 이야기했지만, 사람들에겐 아직 익숙하지 않아서 였을까.
* 실습 - Personal Web Server 설치 & 간단한 ASP 실습. 윈도우즈 프로그래밍 관련 실습. 도스용 ["Omok"] 프로그래밍
* 도스에서 Debug 를 이용, 어셈블러로 abcde-z 를 화면에 출력하기.
* 본래 Unix 실습때 쉘 스크립트를 이용, 쓰레기통 작성을 하려고 했지만, 실제 실습때 하지 못했다.
꼭 생소하다의 문제를 떠나서, 전반적인 컴퓨터 동작원리 보다 구체적 용어들 (어떻게 보면, 이미 공부하여 알고 있는 사람들의 경우 일상어화 되어버린 언어들)이 먼저 나와버렸기 때문이다. 컴퓨터가 하드웨어와 소프트웨어로 구분되어지기 이전엔 어떠했는지, 그게 하드웨어와 소프트웨어로서 구분하는 방법으로서 폰 노이만 아키텍쳐가 나온 이야기라던지, 그러하기 때문에 PC 카운터가 필요하며 메모리로부터 명령어를 읽어온 뒤, CPU에서 명령을 해석하고 처리한다라던지 등등. 그러한 이야기가 나오기전에 어드레스/세그먼트/옵셋/디코딩 이 나와버렸기 때문에 어려운 세미나가 되어버렸다고 생각한다. 후에 상민이가 다시 동작원리부터 상대적으로 쉬운 용어로 설명을 해주면서 사람들의 반응을 유도한점에 대해서는 사람들이 한번 생각을 해볼 필요가 있다. 우리와 대화하는 사람은 어느정도의 지식수준을 가지고 있는가에 대해서. 정말 이해 안가는 부분에 대해서는 질문 자체를 만들어내기 힘들다. --석천
* Unix가 윈도우보다 좋은거에요? 아니면 용도가 다른가요? 어떻게 다른가요?
* 설명중에 '(설명) .... 말로 하긴 그렇고 앞으로 실습해 보면 이해가 갈거에요...' 이라는 말을 자주 하는 것으로 들렸다. 한편으로는 '실습으로 이해하는 것이 더 확실할겁니다' 란 말이겠지만, 한편으로는 '말로 설명하기엔 좀 힘들어요' 라는 인상을 풍길수도 있을 것 같다. 받아들이는 사람 입장에선. 실습으로서 말할 수 있는 내용들에 대해서는 대략 설명하고, 실습으로 설명할 수 없는 내용들에 대해서 (Unix 의 역사, DOS와 윈도우즈 등과 다른 점 등) 설명할 수 있지 않았을까. 실습 중간중간에 설명하는 것이 더 좋은 내용이라면 그건 실습때 설명하는것이 더 나을지도. -- 석천
* 불필요한 스레드란 없으니 걱정말고. ^^; 개인적으로 C 와 어셈과의 포인터관계를 어디서 찾았냐면, 해당 주소값이란 것이 무엇인가에서 찾았다. (단, 내가 정직이나 남훈이보단 하드웨어 관련지식이 깊지 않다) '포인터 값을 화면에 찍었을 경우에 나오는 엄청나게 큰 숫자(윈도우의 경우 32비트) 의 의미는 무엇인가?' 라는 질문을 하게 되었고. 그 이후 메모리가 16메가바이트라는 건 메모리에 0번부터 16메가바이트-1 이라는 번호를 부여하고, 해당 번호에 값을 대입하는 것이라는 접근을 하게 되었지. (물론, 이것도 물리적 주소는 아니겠지. 결국 우리가 이용하는 주소란 OS 에 의해 한번 걸러진 논리적 주소겠지.) 추상화의 정도를 이야기하라는 건 꼭 해당 언어 기준으로 이야기하라는 게 아니라, 경험에 대한 연결고리(여기서는 'C에서 포인터 변수를 화면에 찍어보니 이상하게 큰 숫자가 나왔다' 정도)를 찾아보자라고 한다면 정말 이야기가 '추상적'이려나; --석천
* 진행의 순서 모호 - 선호도 인정했지만 체계적인 준비가 좀 부족했던점. 본래 준비하기로 한 내용과 달랐다는 점(화일 입출력 부분) 그리고 Table Of Contents 의 부재. 그리고 사람들의 질문을 받아서 이야기 하는 방법의 약점이라고 할까. 잘못하면 전체 내용의 연결고리를 잇지 못한다는 점이 있었다고 생각
- 데블스캠프2012/넷째날/후기 . . . . 26 matches
= 백트래킹을 이용한 알고리즘 문제 해결 =
* [서영주] - 처음에 gcd나 3n-1문제의 풀이 과정에 대한 얘기는 그렇게 어렵지 않았는데 갑자기 사발뒤집기 문제 들어가면서 멘탈이... 백트래킹에 대한 얘기 자체를 조금 더 다뤄줬으면 좋았을 것 같았습니다. 이미 아는 사람들한테는 어떨지 모르겠지만 잘 모르는 저학년에게는 비주얼 스튜디오를 이용한 디버깅도 좋은 내용이 됐다고 생각합니다. 나중에 되면 정말 디버깅 지겹게 하게 되니까요 -_-
* [서민관] - 개인적으로 알고리즘 강의는 들을 때마다 참 신박합니다. 그래도 진경이가 알고리즘을 다루는 만큼 내용이 꽤 괜찮지 않았나 싶습니다. 특히 어떤 인자들은 함수의 인자로 넣고 어떤 인자는 전역으로 선언해도 되는가 같은 점은 확실히 들으면서도 그렇구나 싶은 내용이었습니다. 변하는 부분이 함수의 인자로 들어가는군요. 후반에는 약간 설명이 아쉬운 느낌이 들었지만 그래도 개인적으로는 역시 마음에 드는 강의였습니다.
* [권영기] - 오랜만에 백트태킹을 이용해보니까 참 마음처럼 구현이 안되네요. 오랜만에 알고리즘을 써본 거 같아서 좋았습니다. 미로찾기를 하지 못한게 아쉽네요.
* [안혁준] - 역시 알고리즘 문제는 만만히 다룰 대상이 아니군요. 따로 스택을 사용하지 않고 원래 존재하는 스택을 이용하는 방법은 생각해보지 않았는데 그리 복잡하지 않은 부분에서 쓸만도 하군요.
* [김수경] - 오랜만에 뵙는 지원언니 세션이었습니다. 노트북에서 C# 실습을 할 수 없어서 적당한 PC 찾아 돌아다니느라 시간을 허비했어요ㅠㅠㅠ 자리잡고도 마에스트로 없애느라 약간 뒤쳐졌네요. 뒤쳐진김에 세번째 미션은 타이머를 이용하되 원 스펙과는 조금 다르게 스탑워치를 구현했습니다…
* [이재형] - 늦게와서 뒷부분 부터만 들어서 너무 아쉬웠어요 ㅠ 비쥬얼베이직으로 계산기 만들어 봤던 기억이 나면서 어 뭔가 비슷하다라는 느낌을 받는등... 아무튼 좋은 세션을 놓쳐서 아쉬울뿐이네용ㅠ
* [서영주] - C#은 비주얼 스튜디오 2010빨인가 뭔가 C++보다 예뻐보이는 느낌이 있어서 흥미가 좀 있었는데 이번에 이렇게 듣게 돼서 좋았습니다. 내용 자체는 그렇게 어렵지 않은 저학년들을 위한 내용이었지만 어려운 내용이 없었던 만큼 오히려 부담없이 들을 수 있었던 것 같습니다. 물론 자세히 들어가면 C#만의 복잡한 내용도 있겠지만 그런 부분은 나중에 더 자세히 공부해봐야겠습니다. 간단하게라도 콘솔, gui 양쪽을 둘 다 다룬 부분도 참 좋았습니다.
* [권영기] - C#은 입학하기 전에 조금 공부했는데, 이번 세션 때 이것 저것 많이 응용해본 것 같아요. 선배님이 설명을 쉽게쉽게 하셔서 어려움없이 잘 따라갈 수 있었습니다.
* 설명을 쉽게 해준 제 덕이라 말해주어 부끄럽습니다. 사실 설명이 쉬웠다기 보다는 내용이 어렵지 않았어요 ㅋㅋㅋㅋㅋ - [지원]
* [김태진] - C#으로 남상형이 GUI를 뚝딱뚝딱 만들던걸 구경하던 기억이 나는데, 그걸 이정도로 쉽게 구현할 수 있다는게 참 놀라웠습니다. ..사실 제 OS 특성상 많이 사용할거같지는 않지만, 아무튼 처음 배워보는건 재미있었어요. + 지원이누나, 직장 일하시는데도 불구하고 시간내주셔서 감사해요~^^
* [권순의] - 파일 입출력은 학부 과정을 수행할 때 많이 쓰는 것이다 보니 잘 알아두시는 게 좋을만한 내용이었습니다. 주제 선정이 잘 된 것 같네요. 사실 저도 매번 할 때마다 찾아서 하다 보니 귀찮긴 한데,, 자주 쓸 때는 외우는데 또 한동안 안 쓰면 까먹고 그래서 ㅋㅋㅋ 새내기 여러분은 잘 외워 두는 것도 나쁘지 않다고 봅니다. 아니면 정확히 이해하는 것 만으로도 이번 시간에서 얻어갈 만한 내용이 아닐런지
* [서민관] - 이번 데블스캠프에 fundamental한 내용이 적다고 형진 선배가 얘기를 하셨는데 이번 시간이 그런 fundamental한 부분에 대한 요구를 좀 충족시켜준 시간이 아닌가 싶습니다. 다만 개인적으로 아쉬운 점은 1학년들이 C 언어 사용에 그렇게까지 익숙하지 않은지 파일 입출력 함수들의 사용이 그렇게 익숙하지 않았다는 점이었습니다. 분명 익혀두면 2학기에 도움이 될 기술이라고 생각하는 만큼 좀 아쉽긴 하네요. 그래도 아마 2학기 되면 인터넷에서 찾아가면서 하겠지만.
* [서영주] - 파일 입출력은 매번 쓸 때마다 찾아서 보고 그러는 것 같습니다. -_- 자바 오래하면 C++이 헷갈리고 C++오래하면 자바가 헷갈리고... 그래도 빼먹을 수 없는 기본적인 중요한 내용인 것 같습니다. 문자열 저장, 바이너리 저장에 대한 얘기와 바이너리로 저장된 파일이 실제로 어떻게 되어있는가, 리틀엔디안 빅엔디안 등 뭔가 눈에 보이는 실습이어서 좋았다고 생각합니다. 지금 당장은 모두 기억하기 어렵다고 하더라도 이런 방식으로도 파일을 저장할 수 있고 저런 방식으로도 저장할 수 있다는 사실을 알아두는 것 만으로도 나중에 파일입출력을 해야 할 때 참고가 될거라고 생각합니다.
*[안혁준] - 파일 입출력은 사실 이렇게 하는 경우는 이제는 거희 없지만, 알아두는게 좋은 내용이었습니다. 나중에 다른 언어들의 파일 입출력을 이해하는데 큰도움이 되거든요. 리틀 엔디안과 빅 엔디안의 차이라던가 사용문법의 차이같은것이 있지만 사실 모두 C의 출력을 예쁘게 만들어논거에 지나지 않으니까요. 새내기 분들은 함수를 다외우지는 못하더라도 "아! 파일 입출력은 어떤어떤 방식이 있구나"정도는 숙지하는게 좋을 껍니다. 어찌보면 어려운 내용을 잘 이끌어갔다고 봅니다.
- 데블스캠프2012/둘째날/후기 . . . . 26 matches
* [김태진] - 상민선배님이 오셔서 웹 전반에 관한 이야기를 해주신건 작년 성년식때도 그렇고(그땐 아이폰이었지만) 참 유익한 배경지식들을 많이 얻을 수 있는 기회인거 같아요. 후반부에 git에 관한 이야기를 따로 잠깐 해주신거도 꽤나 유용한 정보였구요. 다들 이런식으로 각 세션에 대해 후기를 작성해주면 된답니다.
* [김민재] - XE를 다루면서 MySQL에 대해서는 조금 알았지만, 오늘 이야기를 들으면서 많은 종류의 DB와 프레임워크가 있다는 것을 처음 알고 놀랐습니다. 아직 실력이 많이 부족한 탓에 이해를 못한 점도 있었지만, 웹에 대한 전반적인 이야기를 들으면서 웹에 대해 많이 이해할 수 있었습니다. 특히 우리가 사용하는 웹 서비스 하나를 위해 140대나 되는 Queueing Server가 필요하다는 점에 놀랐습니다. 앞으로는 여러가지 분야에 호기심을 가지고 관심을 가지도록 해야겠습니다.
* [김윤환] - 이히히 ㅠㅜ 무슨말이죠 ㅋㅋㅋㅋㅋㅋ 시간 내내 말하시는 용어 찿고 공부하느라 못따라갔습니다. ㅠㅜ 그래도 용어 같은건 많이 알게 된것 같아요
* [서민관] - 유상민 선배님께서 오실 줄은 몰랐는데 정말 귀중한 시간을 써 주신 것 같습니다. 개인적으로 웹이나 서버 쪽에도 관심이 많아서 관련 이야기를 좀 들을 수 있어서 좋았습니다. 개인적인 사정으로 이야기를 자세히 못 들어서 좀 아쉬웠지만 잠깐 듣기에도 꽤 흥미가 가는 내용이었습니다. 그리고 집에서 월간 마이크로소프트를 현재 보고 있는데, 말씀하시는 걸 들어보면 월간 마소 좀 보면서 이것저것 해 보는 게 좋을 것 같네요. 여담이지만 형진 선배가 정말 이상한 걸 잘 하시는군요... 삼성도 참 문제가 많은듯...
* [서영주] - 웹 개발을 위해 필요한 전반적인 지식에 대해서 알 수 있어서 좋았습니다. DB관련해서 어떤 것이 있는지, 주 언어에는 어떤 것들이 있는지. 어떤 것들을 공부해야 하는지 방향성을 알 수 있었던게 컸던 것 같습니다. 그리고 개인적으로는 개인 서버 구축이나 취미로 하는 공부도 나중에 현업에 나가서 도움이 되는 것이 많다는 얘기에는 상당히 끌리는 부분이 있었습니다. 나중에 개인 서버를 만들어서 유용하게 써봐야겠습니다. 감사합니다.
* [권순의] - 앞에서 한 내용으로 인해 날로 먹기 강의가 되었군요. 뭐 APMSetup을 설치하고 FileZilla로 서버 사용한 것 까지는 해 봤는데 블로그 만들고 하는 짓은 안 해봐서 뭐.. 새로웠습니다. 근데 본인 특성상 블로그는 운영 안 할 것 같네요. 지워야 하나.. 아 컴터 하나 사서 서버로 쓰고 싶네
* [권영기] - 겁먹어서 시도하려 하지도 않았던 개인 위키가 이렇게 쉽게 만들어질 수 있다는 사실을 알고 놀랐습니다. 오늘부터 당장 써먹어도 좋을 것 같아요. 개인용 서버를 만들어봐야겠네요.
* [안혁준] - 전 운영체제가 주로 리눅스기 때문에.. APMSetup은 윈도용이더라고요. 리눅스용을 못찾는건가.. 설치형 블로그를 체험할수 있는 기회가 되어서 좋았습니다.
* [정종록] - 앞의 강의 내용 때문에 날로 먹는 강의... APM setup하는데 그것 까지는 했지만 점점 뒤로 갈수록 굳이 지금 제 노트북에 깔고 싶지 않아서....블로그 같은 것을 안하는지라. 그래도 재미있었습니다. 특히 위키를 하나 만들떄..
* [정진경] - 입학 하기 전에 산 컴퓨터에 CentOS를 깔고 제일 먼저 해봤던게 웹서버 구축이었던 것 같네요. 윈도우즈 환경에서도 어렵지 않게 구축할 수 있네요. (물론 지금의 시점에서지만,) 개인 서버를 구축하고 응용할 수 있으면 나름 장점이 있는 것 같습니다. 활용하기 나름이지만, 최근 Online Judge System에 VC++ 컴파일러를 올리고 싶어서 윈도우즈 서버도 생각하고 있는데, 추후에 도움이 될지도 모르겠네요.
* [권순의] - 그렇게 자바 스크립트를 깊게 공부 한 편이 아니고 그냥 알바 하면서 깔작깔작 본 정도라 대강의 내용은 이해는 하겠다만 편견이 있을만큼은 아니었나보네요. 그냥 그 상태로 받아들이는 시간이었습니다. 보다 심도 있는 웹 공부를 해 봐야 겠다는 생각이 드네요.
* [이재형] - 자바 스크립트가 어떻게 활용되는지!!! 정말 신기하고 좋았습니다. 우선 C하고 비슷하게 쓰이는 것도 신기했어요! 그런데 ㅠㅠ array를 for문에서 돌릴 때 조건을 잘못 써서 멘붕을 먹었었죠ㅠ... C를 다시 좀 더 확실히 공부해야겠다는 생각을 했습니다.
* [김민재] - 저도 그 동안 JavaScript를 Copy & Paste로 이용해 온지라.. JavaScript에 대해서는 깊게 이해해야겠다는 생각을 해 본 적이 없었는데, 이번 기회를 통해 짧지만 여러가지를 알 수 있었습니다. 특히 var abc=function()이 된다는 사실에 매우 놀랐습니다. 웹 프로그래밍을 위해 JavaScript를 열심히 공부해야겠습니다.
* [김윤환] - 정말 재미있엇습니다 ㅋㅋ 거의 c랑 같아서 하기 쉬웟던것 같아요 ㅎㅎ 그런데 뒤로 내용이 산으로 가서 ㅠㅜ 거의 못알아들엇어요 ㅠㅜ
* [서민관] - 개인적으로 자바스크립트 & 혁준 선배에 관심이 많은 편이라 이번 강의가 무척 신경이 쓰였습니다. 개인적으로 예전 데블스 때 했던 웹에 대한 강의가 무척 마음에 들어서 말이죠. 이번 강의는 예상대로 무척 좋으면서 어려운 내용이었네요. 아무래도 방학 중에 좀 제대로 자바스크립트를 공부해 봐야지 싶습니다. 신기하네요. 근데 2학년이 하기에도 좀 어려워 보이는 게 아쉽긴 하네요...
* [권순의] - XBox용으로 게임을 위해 만들어진 키넥트를 가지고 플레이 한 번 해 보고 싶긴 했는데, 음.. 듣다 보니 역시 게임은 패드로 해야 제 맛.... ㅋㅋ 여하튼 작년에 이걸로 6피에서 고생하는 모습을 봐서인지 꿈과 희망은 꿈과 희망으로 남아야 한다는 말이 이해가 되긴 하더라고요. ㅎㅎㅎ 뭐 어찌되었든 간에 잘 만들고 키넥트의 기능도 보다 향상되고 하면 뭔가 더 재미난 것을 많이 만들 수 있지 않을까 싶습니다. 유투브에는 많은 사람들이 만들어 놓은 게 있긴 하겠지만 서도.... 이걸로 소닉은 어떻게 할 수 있을까... 내가 직접 뛰어야 하나 -ㅅ-;;
* [김해천] - 신기했습니다. 근데 집중력이 떨어지고 말았네요. 인식을 이용한 게임은 여러가지로 나와있습니다만, 이런 걸 프로그래밍으로써 본 것은 처음이였습니다. 왠지 모르게 신기하다는 말을 자주 씁니다만, 정말로 신기한게 많은 하루였습니다!
* [안혁준] - 키넥트를 말로만 들었지 실제 어떤식으로 동작되는지를 몰랐는데 오늘에서야 알게 되네요. 다만 키넥트의 인식이 그다지 좋지 못하다는점(관절이 20개만 잡힌다는게..) API쪽도 MS인 만큼 비공개가 많다는 점도 알게되었고요. 마이크 위치 인식같은 경우에는 음향 반사 때문에 인식이 좋지 않을수도 있다는 생각이 들었습니다. 사실 이정도 물건이면 여러가지 활용방안이 있을수 있는데 그게 어디까지 가능한가를 알게 되어서 좋은 시간이었습니다.
* [권영기] - 아, 일단 자리 위치가 좋아서 키넥트 데모활동에 많이 참여할 수 있어서 즐거웠습니다. :) 키넥트는 이야기는 많이 들어봤지만 실제로 보는 것은 이번이 처음이었어요. 사람 모션 인식하는 것(관절 20개 잡는 것부터..)이 굉장히 신기했고 음향 인식도 어느 정도 잡아낸다는게 놀라웠습니다. 나중에 기회가 된다면 키넥트를 이용해서 개발을 해보는 것도 상당히 재미있을 것 같아요. 그리고 '''Set Default'''
* [김윤환] - 정말 어떤 의미로 유익한 내용 이었습니다 ㅋㅋㅋㅋㅋㅋ c의 다른면모 훌륭햇어요 ㅋㅋ
- 졸업논문/본론 . . . . 26 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와 같은 구문을 사용할 수 있다.
데이터를 삽입,삭제,변경할 때는 조회하는 SQL에 비해 하면 단순하다. 삽입에는 insert into value 구문을, 삭제는 delete from where구문을, 변경은 update set where구문을 사용한다. 삭제와 변경시에는 중첩 질의를 사용할 수 있다.
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을 사용하는 방식이 도메인 언어에 제공하는 프레임워크에 숨어 보이지 않기 때문에 프로그램을 동적으로 쉽게 바뀔 수록 빠르게 개발할 수 있다. 또한 후반부 데이터 모델이 바뀌면 프레임워크에서 전반부에 사용자에게 보이는 부분을 자동으로 바꾸어준다. 이러한 설계 철학을 바탕으로 기민하게 웹 애플리케이션을 개발할 수 있다.
기본적으로 지원 되는 레코드 삽입, 삭제, 변경은 자동으로 사용자 화면까지 만들어주는 장점을 가진다. 대부분 웹 애플리케이션이 레코드를 한 건씩 입력하는 인터페이스를 가지기 때문에, 개발 전반부에 걸친 데이터 삽입, 삭제, 변경을 자동화할수 있기 때문이다. 특히 삽입, 변경은 저장이란 단일 개념으로 보고 save메소드로 추상화하였다. 또한 삭제는 관련된 레코드를 함께 지워주는 기능까지 제공한다. 이러한 기능은 Model클래스에 정의된 데이터 타입에 따라 자동으로 이루어진다. 따라서 삽입, 삭제, 변경 SQL문을 실행하는 인터페이스에 많은 노력을 기울이지 않고 기민하게 전체 시스템을 설계함에 집중할 수 있다.
레코드를 검색할 때는 기본적으로 간단한 질의를 처리할 수 있는 함수들을 제공한다. 앞서 살펴본 바와 같이 직접 관계를 가지는 테이블 사이에 조인 연산은 Model클래스의 메소드를 이용해서 추상화되어 있다. 하지만 그 밖인 경우에는 직접 SQL문을 작성하여 데이터를 얻어와야 하기 때문에 django를 사용하더라도 큰 이점이 없다. 또한 추상화된 Model클래스의 메소드는 기본적으로 모든 레코드 속성을 읽어오기 때문에 시간, 공간 측면에서 비효율적일 수 있다. 마지막으로 SQL의 aggregate function등을 대부분 추상화하지 않았기 때문에, 이 역시 SQL문을 작성해야 하는 번거로움이 있다.
다행히 django에서는 CLI와 마찬가지로 직접 SQL문장을 수행할 수 있는 인터페이스를 제공한다. 또한 도메인 언어인 python을 이용하면 CLI를 이용해 데이터베이스와 연동할 수도 있다. 종합적으로 기능적으로 지원이 불가능한 면은 없지만, 검색 측면에서 좀더 많은 추상화가 필요하다고 평가할 수 있다.
- 02_C++세미나 . . . . 25 matches
= 강의 내용 =
// 구조체는 사용자 정의 데이터 형이다. 구조체를 설정해 놓으면 그것을 int나 long같은 기본 데이터형처럼 쓸수있다. 예제를 봅시다.
여러가지로 말이 많았는데 이쯤에서 포인터의 쓰임에 대해 간략하게나마 설명하겠다. 포인터의 이론적인 정의는 무엇인가. 바로 '메모리의 주소를 가지고있는 변수'란 것이다. 그건, 동시에 포인터를 이용하면 그 해당하는 메모리로의 직접적인 접근과 제어가 가능하다는 뜻이다. 그렇다면 포인터의 역활은 메모리로의 직접적인 억세스가 되는것이고, 여기에 포인터의 연산을 통해 거의 어셈블리언어에 가까운정도의 저수준 메모리 제어를 가능케 한다. 바로 그것이 포인터의 존재이유이며 쓰임이다. 이런 이론적인 포인터의 쓰임 말고, 직접적인 강함의 체험을 원한다면, 여러분이 직접 사용해볼것을 권한다.
정수형 변수는 int를 사용해 만든다.
문자형 변수는 char를 사용해 만든다.
(int *) pi; /* 이런 식으로 사용하면 좀더 명확하다. 정수의 포인터라는. */
이렇게 만들면, a는(*a가 아니다. 정의할때만 *를 붙여야 한다. 사용할땐 a로 쓴다)
* 포인터의 사용
그럼 포인터를 어떻게 사용하는지 알아보기로 하자.
포인터를 사용하는데는 두가지 연산자가 사용된다.
&는 어떤 변수에 주소를 얻어내는데 사용된다. 어떤 변수가 있을때 그 변수 앞에 &를 붙이면 그것은 그 변수의 메모리 주소가 된다.
&는 일반적으로 정수형 변수나 문자형 변수 등과 같이 포인터가 아닌 변수들을 대상으로 사용하지만... 포인터를 대상으로 사용할 수도 있다.
*는 포인터를 대상으로만 사용되는 연산자인데, 포인터에 저장되어 있는 메모리 주소에 보관되어 있는 값을 엑세스할때 사용한다.
여기서 *연산자를 이용하여 *p를 출력하는것의 의미는 무엇이냐 하면...
또한 *연산자를 이용하여 *p의 값을 바꾸는것은...
* 포인터의 활용 (Call by value, Call by address)
가장 대표적인 것으로 함수 호출의 전달인자에서의 활용을 알아보도록 하자.
포인터를 사용하면 이런 것이 가능해진다.
이와같이 함수 호출에서 주소를 사용해 전달 인자를 넘겨주는 방법을
이것은 포인터 말고 '''참조''' 라는 것이 있는데, 이 참조를 이용한 방법이므로 참조를 설명할때 하도록 하겠다.
- Gof/Singleton . . . . 25 matches
SingletonPattern은 다음과 같은 경우에 사용한다.
* 단일 인스턴스가 서브클래싱에 의해 확장가능해야 할 경우. 그러면 클라이언트는 그들의 코드 수정없이 확장된 인스턴스를 사용할 수 있어야 한다.
4. 여러개의 인스턴스를 허용한다. 프로그래머의 마음에 따라 쉽게 Singleton class의 인스턴스를 하나이상을 둘 수도 있도록 할 수 있다. 게다가 어플리케이션이 사용하는 인스턴스들을 제어하기 위해 동일한 접근방법을 취할 수 있다. 단지 Singleton 인스턴스에 접근하는 것을 보장하는 operation만 수정하면 된다.
5. class operation 보다 더 유연하다. 패키지에서 Singleton의 기능을 수행하기위한 또다른 방법은 class operation들을 사용하는 것이다. (C++에서의 static 함수나 Smalltalk에서의 class method 등등) 하지만, 이러한 언어적인 테크닉들은 여러개의 인스턴스를 허용하는 디자인으로 바꾸기 힘들어진다. 게다가 C++에서의 static method는 virtual이 될 수 없으므로, subclass들이 override 할 수 없다.
SingletonPattern 을 사용할 때 고려해야 할 사항들이 있다.
1. unique instance임을 보증하는 것. SingletonPattern의 경우도 일반 클래스와 마찬가지로 인스턴스를 생성하는 방법은 같다. 하지만 클래스는 늘 단일 인스턴스가 유지되도록 프로그래밍된다. 이를 구현하는 일반적인 방법은 인스턴스를 만드는 operation을 class operations으로 두는 것이다. (static member function이거나 class method) 이 operation은 unique instance를 가지고 있는 변수에 접근하며 이때 이 변수의 값 (인스턴스)를 리턴하기 전에 이 변수가 unique instance로 초기화 되어지는 것을 보장한다. 이러한 접근은 singleton이 처음 사용되어지 전에 만들어지고 초기화됨으로서 보장된다.
클래스를 사용하는 Client는 singleton을 Instance operation을 통해 접근한다. _instance 는 0로 초기화되고, static member function 인 Instance는 단일 인스턴스 _Instance를 리턴한다. 만일 _instance가 0인 경우 unique instance로 초기화시키면서 리턴한다. Instance는 lazy-initalization을 이용한다. (Instance operation이 최초로 호출되어전까지는 리턴할 unique instance는 생성되지 않는다.)
약간 첨언을 하면, global/static 객체의 접근은 singleton들이 사용되건 사용되지 않건 간에 모든 singleton이 만들어지도록 한다는 것이다. static member function 를 사용함으로서 이러한 모든 문제들을 피할 수 있다.
2. Singleton class를 subclassing 하기 관련. 주된 주제는 클라이언트가 singleton 의 subclass를 이용할 수 있도록 subclass들의 unique instance를 설정하는 부분에 있다. 필수적으로, singleton 인스턴스를 참조하는 변수는 반드시 subclass의 인스턴스로 초기화되어져야 한다. 가장 단순한 기술은 Singleton의 Instance operation에 사용하기 원하는 singleton을 정해놓는 것이다. Sample Code에는 환경변수들을 가지고 이 기술을 어떻게 구현하는지 보여준다.
이러한 link-approach 방법은 link-time때 singleton class 의 선택을 고정시켜버리므로, run-time시의 singleton class의 선택을 힘들게 한다. subclass를 선택하기 위한 조건문들 (switch-case 등등)은 프로그램을 더 유연하게 할 수 있지만, 그것 또한 이용가능한 singleton class들을 묶어버리게 된다. 이 두가지의 방법 다 그다지 유연한 방법은 아니다.
여기서 SingletonPattern과 관련 되는 내용은 Maze application은 단 하나의 maze factory를 필요로 한다는 것과 그 maze factory의 인스턴스는 어디서든지 maze의 부분을 만들 수 있도록 존재해야 한다는 것이다. 이러할 때가 바로 SingletonPattern을 도입할 때이다. MazeFactory를 Singleton으로 구현함으로써, global variable에 대한 재정렬을 할 필요가 없이 maze 객체를 만들때 필요한 MazeFactory를 global하게 접근할 수 있다.
자, 이제 MazeFactory의 subclassing에 대해 생각해보자. MazeFactory의 subclass가 존재할 경우, application은 반드시 사용할 singleton을 결정해야 한다. 여기서는 환경변수를 통해 maze의 종류를 선택하고, 환경변수값에 기반하여 적합한 MazeFactory subclass를 인스턴스화하는 코드를 덧붙일 것이다. Instance operation은 이러한 코드를 구현할 좋은 장소이다. 왜냐하면 Instance operation은 MazeFactory를 인스턴스하는 operation이기 때문이다.
가능한 해결책으로는 Implementation에서 언급한 registry approach를 사용하는 것이다. Dynamic linking 방법도 또한 유용한 방법이다. Dynamic linking 은 application으로 하여금 사용하지 않는 subclass 도 전부 load해야 할 필요성을 덜어준다.
InterViews user interface toolkit[LCI+92]는 toolkit의 Session과 WidgetKit 클래스의 unique instance에 접근하지 위해 SingletonPattern을 이용한다. Session은 application의 메인 이벤트를 dispatch하는 루프를 정의하고 사용자 스타일관련 데이터베이스를 저장하고, 하나나 그 이상의 물리적 display 에 대한 연결들(connections)을 관리한다. WidgetKit은 user interface widgets의 look and feel을 정의한다. WidgetKit::instance () operation은 Session 에서 정의된 환경변수에 기반하여 특정 WidgetKit 의 subclass를 결정한다. Session의 비슷한 operation은 지원하는 display가 monochrome display인지 color display인지 결정하고 이에 따라서 singleton 인 Session instance를 설정한다.
많은 pattern들이 SingletonPattern을 사용하여 구현될 수 있다. AbstractFactoryPattern, BuilderPattern, PrototypePattern을 참조하라.
* 제가 테스트 용으로 n-class singleton을 구현하려 합니다. 그런데 다음과 같은 문제가 발생하는데 어떻게 해결해야 될까요?
- Spring/탐험스터디/wiki만들기 . . . . 25 matches
* 스프링 시큐리티 사용 준비
* UserDetail - 스프링 시큐리티가 사용할 수 있는 User 객체 만들기
* 현재 로그인 한 사용자 정보 가져오기
1. SecurityContextHolder를 이용하는 법
1. Spring dependency injection을 이용하는 법
* Spring Security의 Role Voter는 "ROLE_" 접두어를 사용한 접근 속성만 처리한다. 단 접두어는 커스터마이징이 가능하다.
* 위키 문법을 별도로 정의하고 파서를 구현하는 대신 Markdown을 사용하기로 결정했다.
* 아주 간단한 Pegdown 사용 예
* 위키의 문법을 구현하기로 하였는데 직접 파서를 구현하기보다 Markdown의 파서를 사용하면(Markdown 문법을 사용해야 하지만) 편리할 것 같아(명백해서 증명할 필요가 없다!) Markdown 파서중 pegdown을 쓰기로 경정. Java 언어 기반의 파서중 그나마 문서화(GitHub의 소개페이지)가 잘되어있어서....
* 아무튼 pegdown은 무지무지 쉬웠는데(new Pegdown().markdownToHTML(/* String 콘텐츠 */) 적용하는데까지 시간이 오래걸렸다. 하나 고치면 다른 에러가 나고 에러랑 스무고개했음ㅋㅋ
* 이전에 돌아가던 것이 안돌아가 코드를 보니 테스트를 위한 Mock 객체를 참조하고 있었다. 실제 객체는 구현이 덜 되어있었음. 테스트를 하기 위한 구현을 했었다는 것을 알게되었다. 테스트용 코드가 Mock 객체를 벗어나 실제 객체에도 묻어있었음. 당시엔 확장과 변화를 위해 정한걸 텐데 ''지금보니 왜 이럴까?''
* login.jsp 를 만들어서 커스터마이징 한 로그인 페이지를 사용할 수 있게 수정했다.
* save를 누르면 저장된 내용이 바로 반영되어야하는데 새로고침 해야 반영된다.
* spring security의 tag library의 ifAllGranted, ifNotGranted등을 사용할 수 있다.
* url "/"에 Page내용 보기와 Page history의 내용 보기 두가지 기능을 매핑하려 했다.
* @RequestMapping 어노테이션의 설정값들 중에 params를 이용해 파라메터 등록을 할 수 있다. 이렇게 하면 특정 파라메터가 넘어올 때에만 RequestMapping을 할 수 있다.
* 이를 이용해 RequestMapping의 value값, Method 타입이 같아도 특정 파라메터의 유무로 리퀘스트 핸들링을 달리할 수 있다.
* RequestMapping의 method 타입을 이용해 signup 페이지 호출과 실제 signup을 구분하여 핸들링
* 이건... 음.. "signup 폼을 담은 페이지를 호출" 할 때와 "사용자의 ID와 PASSWORD를 전달해 로그인 처리를 하는" 경우가 같은 Request Name을 가지게 되서..
* 이제 로그인되지 않은 사용자가 페이지 생성을 요청하면 Spring Security에 의해 Signup 페이지로 이동된다. 끗
- 새싹교실/2011/學高/1회차 . . . . 25 matches
* printf()를 사용하기 위해 include 시켜야하는 library(~.h로 끝나는 파일)은 무엇인가?
=== 가르친 내용(fact) ===
* ZeroWiki의 사용법
* 링크 걸기: 대괄호 사용
* 소스 코드: 중괄호 3개 사용
* *을 이용하여 점 찍는 법
* 컴퓨터에 대한 기초적 내용
* C언어의 진짜 기초적인 내용
* 첫 시간인데도 불구하고 준비가 미흡하여 제대로 설명하지 못했고, 수업할 내용도 다 기억해 가지 못했다.
* 다음 시간부터는 수업할 내용을 철저히 준비해가겠다.
=== 배운 내용(fact) ===
=== 배운 내용(fact) ===
* 위키의 사용법, 편집방법, 링크, 소스코드, 등을 사용하는 방법을 배웠고
* 종하가 다시 설명해주겠지만 제가 보기엔 지금 작성하신 배운 내용, 자기 반성 및 고칠 점, 과제 정답이 feedback인 것 같네요~ - [김수경]
* printf()를 사용하기 위해 include 시켜야하는 library(~.h로 끝나는 파일)은 무엇인가?
* 틀리지 않았다면 제 기억으론 위에 사용한 stdio.h가 맞습니다.
=== 배운 내용(fact) ===
2 . Wiki 사용법
* #include <stdio.h> : stdio라는 헤더파일의 함수를 사용하기 위해 include 하겠다
* printf("출력할 내용"); : 기본적으로 출력하는 함수
- 제12회 한국자바개발자 컨퍼런스 후기 . . . . 25 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) || 클라우드 서버를 활용한 서비스 개발 실습 (허광남) ||
|| 15:00 ~ 15:50 || 스타트업을위한 Rapid Development (양수열) || 하둡 기반의 규모 확장성있는 트래픽 분석도구 (이연희) || 초보자를 위한 분산 캐시 활용 전략 (강대명) || Venture Capital & Start-up Investment (이종훈-벤처캐피탈협회) || How to deal with eXtream Applications? (최홍식) || SW 융합의 메카 인천에서 놀자! || 섹시한 개발자 되기 2.0 beta (자바카페 커뮤니티) ||
|| 16:00 ~ 16:50 || 대용량 고가용성 분산 캐쉬서버(infinispan)를 활용한 웹서비스 (이용혁) || 대박날때 후회말고, 성능큭정 자주하자!/성능측정도구 nGrinder (김광섭) || 모바일 웹 개발 플랫폼 (현철주) || IT 개발자 환경의 문제점과 개선점 등 (김효상-IT노조) || 분산 애플리케이션 개발을 위한 기업 통합(EIPs) 전략 (차정호) || SW 융합의 메카 인천에서 놀자! || 되돌아 보는 스프링 프레임워크 (KSUG 커뮤니티) ||
|| 17:00 ~ 17:50 || 쓸모있는 소프트웨어 작성을 위한 설계 원칙 (김민재) || Java Secure Coding Practice (박용우) || 개발자가 알아야하는 플랫폼 전략과 오픈 API 기술 동향 (옥상훈) || 반복적인 작업이 싫은 안드로이드 개발자에게 (전성주) || 개발자가 알아야할 오픈소스 라이선스 정책 (박수홍) || 이클립스 + 구글 앱 엔진으로 JSP 서비스하기 (OKJSP 커뮤니티) || 여성개발자의 수다 엿듣고 싶은 그들만의 특별한 이야기 (여자개발자모임터 커뮤니티) ||
간단하게 점심을 먹고 본인은 첫 세미나로 Track 3에서 한 아키텍트가 알아야 할 12/97가지를 들었다. 그 내용중에서 STAN으로 프로그램의 상태를 보여주는 부분이 인상깊었다. 그렇다고 여기에 너무 민감하게 반응하지는 말라던.. 그리고 그 곳에 심취해 있다고 단순히 신기술이라고 무조건적으로 사용하기 보다는 이런 저런 상황을 고려하라는 것.. 가장 생각나는 것은 문제는 기술의 문제가 아니라 모든 것은 사람에 관한 것이다라는.. 모든 일은 나 자신으로부터 비롯된다라고 생각하고 있었는데 그 부분과 어느정도 상통하는 이야기였던 것 같다.
그 다음으로 Track 5에서 있었던 Java와 Eclipse로 개발하는 클라우드, Windows Azure를 들었다. Microsoft사의 직원이 진행하였는데 표준에 맞추려고 노력한다는 말이 생각난다. 그리고 처음엔 Java를 마소에서 어떻게 활용을 한다는 건지 궁금해서 들은 것도 있다. 이 Windows Azure는 클라우드에서 애플리케이션을 운영하든, 클라우드에서 제공한 서비스를 이용하든지 간에, 애플리케이션을 위한 플랫폼이 필요한데, 애플리케이션 개발자들에게 제공되는 서비스를 위한 클라우드 기술의 집합이라고 한다. 그래서 Large로 갈 수록 램이 15GB인가 그렇고.. 뭐 여하튼.. 이클립스를 이용해 어떻게 사용하는지 간단하게 보여주고 하는 시간이었다.
네 번째 시간으로는 Track 3에서 모바일 웹 개발 플랫폼을 들었는데.. 뭔가 웹에서 사용되는 것은 이러이러한 것이 있습니다라고 50분동안 열거하는 느낌이라 기대보다는 지루했다. -_-a 그래서 사실 기억에 남는 것이 별로 없다..;
마지막으로 Track 4에서 한 반복적인 작업이 싫은 안드로이드 개발자에게라는 것을 들었는데, 안드로이드 프로그래밍이라는 책의 저자인 사람이 안드로이드 개발에 관한 팁이라고 생각하면 될 만한 이야기를 빠르게 진행하였다. UI 매핑이라던지 파라미터 처리라던지 이러한 부분을 RoboGuice나 AndroidAnnotations를 이용해 해결할 수 있는 것을 설명과 동영상으로 잘 설명했다. 준비를 엄청나게 한 모습이 보였다. 이 부분에 대해서는 이 분 블로그인 [http://blog.softwaregeeks.org/ 클릭!] <-여기서 확인해 보시길...
하루 종일이었지만 현재의 기술 동향이라던지 사람들이 관심있어하고 관심 가져야 할 만한 부분, 알아두면 유용할 만한 팁들을 들을 수 있어 좋은 시간이었다. 다만 좀 피곤지다. -_-a -[권순의]
* <공개SW 활성화 정책> 기조연설은 뭔가 PPT가 조잡해서 집중이 안됐다. 내용은 간단히 요약하자면 '''있는 것을 가져다 쓰자''', '''한국 개발자가 개발한 오픈 소스가 세계적인 소프트웨어가 되게 하자''', '''오픈 소스 잘 알고 쓰자''' 였던 듯. 그리고 ''우리 열심히 일하고 있어요. 관심 좀...''(?) 중간에 공개 SW 개발자 대회 수상자 중 마에스트로 하는 사람 한 명이 있댔는데 그게 지혜얘기인가 싶었음.
* <Play GAE!>는 요새 Play framework를 좀 만지고 있기도 하고 구글 해커톤 가서 구글 앱 엔진 쓸 계획이 있어서 들었는데 Play 소개같은 세션이라 원하던 내용은 아니었다. 알게된 것은 '''Play framework에는 구글 앱 엔진을 지원하는 모듈이 있다'''는 것. 인상깊은 것은 플레이, 스프링, 스트럿츠의 비교. 드래곤볼 짤과 함께 각각의 전투력을 측정하는 드립이 있었는데 전투력을 책 페이지로 측정하셨다. 예상가능하게도 스프링 전투력 측정에선 토비의 스프링이 튀어나옴...
* 그 다음으론 <Event Driven Architecture>를 들었는데 생각과 너무 다른 내용이라 흥미가 없어서 옆 트랙으로 옮겼다. <성공하는 개발자를 위한 아키텍쳐 요구사항 분석 방법>에 대한 이야기였는데 처음부터 이걸 들을 걸 그랬다. 좀 많은 내용을 넣으시다보니 시간이 많이 모자란 느낌이긴 했지만 전 트랙보단 관심이 가는 내용인데. 기억에 남는 것은 각각 '''목적에 맞게 설계해야 한다'''는 이야기.
* 마지막에 들은 <반복적인 작업이 싫은 안드로이드 개발자에게> 트랙이 가장 실용적이었다. 안드로이드 앱 만들면서 View 불러오는 것과 Listener 만드는 부분 코드가 너무 더러워서 짜증났는데 Annotation으로 대체할 수 있다는 것을 알았다. Annotation을 직접 만들어도 되고, '''RoboGuice'''나 '''AndroidAnnotation''' 같은 오픈 소스를 이용할 수도 있고.
- AcceleratedC++/Chapter14 . . . . 24 matches
내부의 한 개체를 가리키는 포인터와 비슷한 객체를 적절히 사용하면 불필요한 복사가 행해지는 성능상의 문제를 해결할 수 있다.
이장의 내용은 상당히 추상적이기 때문에 상당히 주의 깊은 이해가 필요하다.
13.3.1절의 첫번째 해결법에선느 이를 위해서 포인터를 사용하여서 Core 혹은 Core로 부터 파생된 객체들을 생성하여 컬렉션 내부의 포인터들로 가리키도록 하였다. 따라서 이 경우 사용자 코드는 객체의 동적생성, 해제에 관련된 것들을 처리할 책임이 있었다.
사용자가 Handle 클래스를 이용해서 특정한 개체에 Handle을 붙이게 되면 Handle은 그 객체의 메모리를 관리하게 된다.
즉 Handle이 소멸되면 Handle이 가리키는 객체도 소멸되게 된다. 사용자는 바인딩이 안된 객체를 가리키는 핸들을 만들수는 있지만 이 경우 핸들에 접근하게되면 예외 상황을 발생하게된다. (아니면 처음 생성시 객체가 바인딩 되어있는지를 검사하도록 하면 된다.)
-> 연산자는 일견 이항 연산자 처럼 보이지만 동작하는 방식이 다른 연산자들과는 다르다. ->를 호출하게 되면 연산자의 좌측요소에서 포인터를 대신해서 사용이 가능한 요소가 리턴된다.
=== 14.1.2 제네릭 핸들 사용하기 ===
Handle 클래스는 연결된 객체의 clone() 멤버함수를 이용한다. 따라서 Core클래스에 clone()메소드를 public으로 작성하는 것이 필요하다.
'''Handle<>을 이용한 Student_info 의 구현'''
어떤 경우에 프로그래머는 Handle이 대상 객체를 복사하는 형태가 아니라 단지 가리키는 형태로만 사용되기를 바랄 수 있다. 즉 동일한 객체를 2개의 다른 Handle 이 가리킬 수 있다는 말이다.
이경우 대상객체의 해제는 객체를 가리키는 마지막 핸들이 소멸될때 행해져야한다. 이를 위해 '''레퍼런스 카운트(reference count, 참조계수)'''를 사용한다.
//Ref_handle을 기반으로 작성된 Student_info 클래스의 사용시
동일한 내용의 객체를 복사한 객체를 만들어준다.
이 구조를 이용해서 Student_info를 작성하는 경우 우리는 새로 이 클래스에 대해서 작성할 코드가 전혀없다.
이를 해결하기 위해서 우리는 전역함수인 clone()를 만들어서 해결한다. ''(소프트웨어 공학에서는 한단계를 우회하면 모든 문제가 해결된다라는 말이 있는데 여기에 적용될 수 있다,)''
template<>를 사용하면 특정 인자 타입에 대한 특정 템플릿 함수의 버전을 정의한다.
|| * Ptr<T>::make_unique()를 사용하지 않는다면 T::clone은 불필요 [[HTML(<BR/>)]] * Ptr<T>::make_unique를 사용한다면 T::clone가 있다면 T::clone을 사용할 것이다. [[HTML(<BR/>)]] * Ptr<T>::make_unique를 사용한다면 T::clone가 미정의되었다면 clone<T>를 정의해서 원하는 바를 얻을 수 있다. ||
만약 const 객체를 통해서 operator[]를 통해서 접근한다면 객체의 내용을 바꾸는 것을 허용해서는 안된다.
- MoniWikiTutorial . . . . 24 matches
* 계정 만들기: UserPreferences로 가서 사용자 등록을 합니다.
* 사용자 ID: 영문으로 사용자 ID를 만들 경우 보통 소문자 구성된 사용자 ID를 만드는 것이 일반적이지만, 위키위키에서는 FooBar같은 낙타식 사용자 ID를 종종 사용합니다. 한글로 만드셔도 됩니다.
* FindPage: 상단의 검색 폼 혹은 FindPage를 통해서 위키위키의 내용을 검색합니다.
* UserPreferences: 사용자 가입/로그인/설정
자세한 내용은 HelpOnNavigation을 참조하세요.
* '''[[GetText(Preview)]]''': 편집된 내용을 미리볼 수 있습니다.
한줄의 내용 전체가 같은 개수의 "=" 기호로 둘러쌓여 있는 경우. 이때 "=" 기호와 내용은 공백으로 분리되어 있어야 하며 그 줄은 "="기호의 개수만큼의 깊이를 가지는 제목줄이 됩니다. 예: [[BR]] `== 두번째 레벨 ==`
공백을 보존되는 preformat을 사용하고 싶은 경우는 중괄호`{{{{{{ ... }}}}}}`를 사용합니다.: {{{
"||"로 시작해서 내용이 "||"로 분리되고 "||"로 끝나면 테이블이 만들어집니다.
사용례:
고급기능인 플러그인을 사용할 수 있습니다.
* 매크로는 페이지에 따라 종종 동적으로 변할 수 있습니다. 예를 들어 {{{[[Calendar]]}}}매크로를 사용하면 보이는 달력은 날마다 그 내용이 변할 수 있습니다.
* 주로 사용하는 매크로는
* ` PageList` - 인수로 사용되는 패턴과 일치하는 페이지 목록을 보여줍니다.
자세한 내용은 HelpOnMacros를 참고하세요
* 페이지를 만들때는 Template를 사용하면 편리한 경우도 있습니다.
위키위키에 대해 더 궁금한 내용이 있다면 다음을 참고해 보시기 바랍니다.
- PairProgramming . . . . 24 matches
PairProgramming 을 적용해보는 방법, 스타일 등등
* Pair Refactoring - 꼭 소스 코드가 아니더라도 위키 페이지에 대한 ["문서구조조정"] 을 하는 경우에도 적용할 수 있다. 특히, 해당 토론이 벌어진뒤 양론으로 나누어졌을 경우, 각 의견 지지자들이 Pair 로 문서구조조정을 할때 이용할 수 있다.
* 해당 시간 내 집중도의 상승, Pair Pressure - 평소 프로그래밍 외의 것(프로그래밍 중 음악듣기, 쓸데없는 웹서핑, 메일 읽기)에 대한 잡음을 없앤다. 작업 자체에만 몰두하게 해준다. ["TestDrivenDevelopment"] 와 상호작용이 빠른 언어(["Python"] 등..)를 이용하면 Feedback 이 빠르므로 집중도가 더 높아진다.
PairProgramming 의 다른 적용 예로서 PairSynchronization 이 있다.
동문서버 프로그래밍 팀의 인수인계용으로 이용되었었다. PP를 주로 하고 한두번의 VPP를 했다. 해당 소스를 같이 만들어가면서 기존의 프로그램을 설명했다.
또 하나의 문제점으로 제기된 것은, Junior 가 Expert의 권위에 눌릴 수 있다는 것이다. Junior 는 질문에 용감해야 한다. Expert는 답변에 인색해서는 안된다. 열린 마음이 필요한 일이다. (Communication 과 Courge 는 XP 의 덕목이다. ^^)
* Pair 의 분배 - TFP를 공부하느냐고 시작한 것이였던지라, 상대적으로 CppUnit 에 익숙하지 않은 사람에게 코딩을 주도하게 했다. 한 1주일정도 되는 프로젝트라면 Junior로 하여금 경험을 쌓게 함으로써 오히려 장점으로 작용할 수도 있을 것 같다. 하지만, 역시 적절하게 분배를 했었어야 할 것 같다.
* 하지만 UnitTest도 그렇듯이, 많은 장점을 가진 방법을 완벽하지 않다는 이유로 사용하지 않는다는 것은 아쉬운 일일 것이다.
* 협동 - 이번경우는 비교적 협동이 잘 된 경우라고 생각한다. Python 으로 문제를 풀기 위한 프로그래밍을 하는데는 석천이, Idea 와 중간에 데이터 편집을 하는데에는 정규표현식을 잘 이용하는 상민이가 큰 도움을 주었다. 적절한 때에 적절하게 주도하는 사람이 전환되었던 것으로 기억.
넷미팅, VNC 등의 개발 프로그램을 공유할 수 있는 프로그램과 음성채팅 등으로 Virtual PairProgramming을 할 수 있다. (오.. 좋아진 세상~) 단,PairProgramming 에 비해 아쉬운점들이 있다. (관련 책들을 찾아서 보여주지 못한다는 것 등등) 나중에는 PC카메라와 스캐너 등등 이용할 수 있지 않을까. ^^
1002는 VNC와 넷미팅 (그때 넷미팅 화면공유시 XP가 뻗었던 관계로. -_-;) 을 이용, Python을 공유해서 다른 곳에 있는 사람과 SpikeSolution 을 VPP로 시도한 적이 있다. VNC가 화면 refresh가 느리다는 단점 빼고는 별다른 지장이 없었다. 모르는 라이브러리들을 Pair 하는 사람이 다운받아주고, 라이브러리를 설치하고. 모르는 것은 Pair 에게 물어보고, 어떻게 만들까 토론했던 경험이 좋았다.
참고사항 : 몇몇 함수에 대해서만 TDD를 적용시켰다.
나는 .NET의 System.Data의 구조를 보고 즉시 PHP에 적용시키고 싶어졌다. ASP.NET에는 SqlConnection , OdbcConnection , OleDbConnection을 제공해 준다. 이 클래스들을 잘 사용하면 DataTier의 종류가 바뀌어도 코드의 수정을 최소화 시킬 수 있다. PHP는 여러가지 종류의 데이타베이스 관련함수를 제공해준다. 어떠한 데이타베이스를 사용하느냐에 따라 동일한 기능을 하는 다른 이름의 함수를 호출해야만 한다.
IConnection을 이용해 각각의 Connection에 대해 단일의 인터페이스를 제공하고 IConnection을 구현하는 MySqlConnection , SqlConnection , OciConnection을 만들자는 것이 나의 생각이었다. 파트너는 switch구문을 이용해 클래스의 상속 구조를 없애는 것과 비교해서 어떠한 이점이 있는가에 대해 질문했다. 이것은 장시간의 토론으로 이어졌다.
나는 일차적으로 switch코드를 없앨 수 있다는 점을 설명했다. 우리는 Connection클래스가 그다지 크게 바뀌지 않을 것이라는 것에 대해 동의했었고 이 점을 근거로 switch를 사용하는 것이 유지보수를 힘들게 하는가에 대해 질문했다. 솔직히 이정도 코드라면 누구나 수정할 수 있을 것이라고 생각한다. 그리고 그렇게 많은 시간을 필요로 하는 작업도 아니라고 생각한다. 파트너는 Connection을 생성하는 부분을 include 화일로 관리하고 그곳에 한번만 define문을 작성하면 문제가 없다고 주장했다.
나는 이에 대해 하나의 프로젝트에서 여러개의 데이타베이스를 사용하게 될 경우 여러개의 추가적인 파일들을 관리해야 될지도 모른다고 했다. 그리고 new SqlConnection(); , new MySqlConnection()과 같은 방식으로 사용하는 것이 더 직관적인 것 같다고 설명했다.
긴 토론 끝에 파트너는 나의 의견에 동의했지만 만약 계속 이런 속도로 작업이 진행된다면 회사에서 가만있지 않을 것이다. (어제도 TDD를 사용했었는데 기존의 코딩시간에 비해 3배정도 더 늦어졌다. 그리고 다 끝내지도 못했고 무엇을 먼저 테스트 해야할지 갈팡질팡했었다. 처음부터 함수단위 테스트만 시도해야겠다는 생각이 원인같다.)
- Spring/탐험스터디/2011 . . . . 24 matches
* 교재가 비싸고 매우 무거워 참여자들이 스터디에 활용할 수 있도록 ZeroPage 책장에 둘 토비의 스프링 3를 2권 주문함
1.1 ApplicationContext를 생성할 시 xml을 사용하는 방법도 있고 직접 설정해주는 방법도 있는데 xml을 사용할시 좋은 점은 코딩과 설정 담당을 분리할 수 있다는 점이 있다.
1.2 pojo기반의 프로그래밍은 모듈을 조립해서 쓰기 쉽기 떄문에 재사용성이 높아진다. 이 때 조립을 코드부분에 맡기면 조립시 코드를 바꿔야 컴파일이 가능하지만 xml에 조립을 맡기면 설정xml을 바꾸는 것만으로도 쉽게 설정을 바꿔서 조립이 가능하다.
1.1. 전략 패턴 : 전략(알고리즘)의 분리를 한다는 의미. 언어에 따라 패턴을 적용하는 방법이 조금씩 다를 수도 있다. 책에서는 interface를 사용해서 전략을 분리하였는데, 이것은 자바에 어울리는 전략의 분리라고 한다.
1.2. Runtime Injection : 다형성을 만들기 위해서 사용한 방법. 개인적으로 코딩할 때 다형성의 사용이 좀 부족하다고 느꼈는데, Runtime시에 오브젝트간의 관계를 맺게 하지 않고 그냥 클래스에 맞춘 코딩을 했기 때문인 것 같다. 앞으로 코딩을 하는데 머릿속에 넣어두고 자주 써 보는 것이 좋을 것이라 생각된다.
- HomeController는 MVC 모델의 컨트롤러로 뷰에 모델을 바인딩하는 역할을 담당한다. home() 메소드 내부의 Welcome home!은 logger에 찍히는 문자열이기 때문에 실제로 실행시에 보이는 것은 아니다. HomeController가 하는 주된 역할은 return "home";을 함으로써 HomeController를 사용하는 쪽에서 home.jsp(뷰)를 찾을 수 있게 하는 것이다.
1.4. Connection c = DriverManager.getConnection(...); 문장에서 에러가 나는데 문자열의 localhost/springbook 부분을 자신이 사용할 테이블의 이름으로 바꾸어 주어야 한다. localhost/test로 바꿔준다. 이후의 문자열 두 개는 각각 자신의 MySQL 계정 이름(기본값 root), MySQL 비밀번호를 적어주면 된다.
2. 스프링 프레임워크 사용하기(p.99의 예제)
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. DIP : 멤버 변수를 외부에서 주입 받을 때는 구체 클래스가 아닌 인터페이스를 이용한다. 최대한 클래스 내부에서 변수를 할당하지 말고(new를 사용하지 말고) 주입을 받도록 한다.
1.1.1. Context : 스프링은 DI 기술을 많이 사용하고 있는데, 스프링에서 객체간의 의존관계 주입을 코드로부터 분리하는 역할을 Context가 담당하고 있다.
1.2. 불변객체와 가변객체 : 불변객체는 생성된 이후에 내부의 필드에 대한 수정자가 없는 객체를 말한다. 내부 필드에 접근이 불가능하기 때문에 값이 변하지 않는다. 따라서 한 번 생성한 이후에는 필요한 곳에 같은 객체를 재사용할 수 있다. 가변객체는 내부의 값에 접근할 수 있는 메소드를 공하는 객체를 말한다. 가변객체를 불변객체처럼 한 번 생성한 후에 여러 곳에서 사용할 경우 한 곳에서만 값이 바뀌어도 모든 값이 다 바뀌므로 가변객체는 매번 사용할 때 마다 새로 생성(new)을 해 주어야 한다.
2.1. 스프링의 ConfigurationContext 내부의 Bean에서 Context를 생성해서 DI를 하려고 했을 때 오류 발생 : Context 내부에서 Context를 생성하는 코드를 사용했기 때문에 생성이 재귀적으로 이루어져서 무한 반복된다. 그리고 디버그 시 main 이전에 에러가 일어났는데, 그것은 스프링의 Context는 시작 전에 Bean들을 생성하기 때문이다. main에 진입하기 이전의 스프링 초기화 단계에서 오류가 일어났다는 얘기.
1. Spring Project를 생성하고 실행하는데 포트가 이미 사용중이라 되지 않음.
- Framework 제어의 역전 개념이 적용된 대표적인 기술
- 라이브러리를 사용하는 애플리케이션 코드는 애플리케이션 흐름을 직접 제어한다.
- 프레임워크는 거꾸로 애플리케이션 코드가 프레임워크에 의해 사용된다.
- Adapter . . . . 23 matches
Smalltalk에서 ''Design Patterns''의 Adapter 패턴 class버전을 적용 시키지 못한다. class 버전은 다중 상속으로 그 기능을 구현하기 때문이다. [[BR]]
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사이에 붙인다.
이처럼 Adapter가 정의되어져 있다면 Adapter와 Adaptee양쪽의 인터페이스를 이미 알고 있는 셈이다.;그래서 우리는 Shape 메세지를 TextView메세지에 맞추는 해석 과정과 같은 Adapter를 이런 특별한 용도에 맞추어 만들수 있다. 우리는 이런걸 Teilored Adapter라고 부른다.
우리는 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를 얻는 방법이다.
자 그럼 여기에 예제를 보자. 우리는 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부분에서 그것의 정확한 수행 방법을 볼것이다.
- 새싹교실/2011/Noname . . . . 23 matches
=== 내용 ===
* 이스케이프 시퀀스의 사용
* 서식문자의 사용과 이유
=== 내용 ===
=== 내용 ===
* 연산자의 종류들과 #define함수의 활용법에 대해서 배웠습니다. 아직 C프로그래밍이 익숙지 않아서 간단한 함수도 어렵게 느껴졌다. 여러 예재로 우선 C프로그래밍에 익숙해 져야 겠다. 수업이 끝난 후 복습을 꼭 해야겠다. - [김창욱]
=== 내용 ===
* switch의 경우 statement 에 break의 사용을 까먹지 맙시다.
* If구문,If-Else구문,Switch구문에 대해서 배웠습니다. 역시 처음 배우는거라 예제들에 잘 적용하지 못했습니다. 하나하나 배워가면서 코딩하는게 너무 신기하게 느껴지고 수업시간이 너무 짧아 아쉽습니다. 수업시간이 길거나 자주 수업을 할 수 있으면 좋겠습니다. If구문으로 해야하는 예제들과 Switch구문으로 해야하는 예제들의 차이점을 조금 깨달았습니다. Switch구문으로 코딩해야 더 쉬운 예제들과 If구문으로 코딩해야 더 쉬운 예제들을 구별할 수 있는 능력을 키워야 겠습니다. - [김창욱]
=== 내용 ===
* 여러가지 종류의 반복문에 대해서 배웠습니다. 여러가지 형태의 별을 찍어 보았는데 재밌는 것 같습니다. 상황에 따라서 편한 반복문을 사용해야 겠습니다. 다양한 별을 찍으면서 반복문에 대해 익숙해 져야겠습니다. 저번주에 배운 내용인데도 불구하고 많이 까먹어서 복습을 해야 겠습니다.
=== 내용 ===
* 시험기간을 대비하여 많은 문제들을 풀었습니다. 반복문을 이용한 달력출력과 별찍기, 기출문제들을 풀었습니다.
=== 내용 ===
* 재귀함수의 사용
* 재귀함수의 사용법을 익숙하게 하기 위하여 여러가지 예제를 풀어보았습니다. 처음 두가지 예제는 비슷해서 그런지 금방 끝냈는데 하노이탑은 힘들어 하더라구요. 저도 작년에 이 문제를 풀기위해 온갖 노력을 하다가 그때 선생님의 도움으로 간신히 풀었는데 그 기분이 짱이더라구요. 하노이탑까지는 꼭 풀고 다음을 배워야겠습니다. - [박정근]
=== 내용 ===
* index를 이용하여 자료들에게 접근한다.
* 선언시에 바로 배열을 초기화 할때에는 중괄호 {}를 사용한다.
* 배열을 선언한 후에 배열의 각 원소에 값을 저장하러면 index를 이용한다.
- AcceleratedC++/Chapter9 . . . . 22 matches
C++은 클래스 타입과 같은 사용자가 정의한 어플리케이션 고유의 타입을 정의할 수 있는 많은 기능은 지원한다.
프로그래머는 구조체를 다루기 위해서 구조체의 각 멤버를 다루는 함수를 이용해야한다. (Student_info 를 인자로 갖는 함수는 없기 때문에)
'''왜 using-선언문을 사용하지 않는가?'''
string, vector 와 같은 것들은 Student_info의 내부 구현시에 필요한 사항이기 때문에 Student_info를 사용하는 프로그램의 또다른 프로그래머에게까지 vector, string을 std::에 존재하는 것으로 쓰기를 강요하는 것은 옳지않다.
double grade() const; //내부 멤버변수를 활용하여 점수를 계산하고 double 형으로 리턴한다.
* s:Student_info 라면 멤버함수를 호출하기 위해서는 s.read(cin), s.grade() 와 같이 함수를 사용하면서 그 함수가 속해있는 객체를 지정해야함. 암묵적으로 특정객체가 그 함수의 인자로 전달되어 그 객체의 데이터로 접근이 가능하게 된다.
::를 사용함으로써 호출되는 grade를 객체의 멤버함수가 아니라 전역 grade의 형으로 사용하는 것이 가능하다.
이전에 사용되었던 compare와 같은 함수를 어떤식으로 정의해야 할 것인가?
struct 키워드 대신 '''class''' 키워드 사용. '''보호레이블(protection label)''' 사용. 레이블은 순서없이 여러분 중복으로 나와도 무관함.
|| class 키워드를 사용한 클래스 || 기본 보호모드가 private 으로 동작한다. ||
|| struct 키워드를 사용한 클래스 || 기본 보호모드가 public 으로 동작한다. ||
일반적으로 자료구조가 간단할 때에는 struct를 이용한다. 그러나 2가지 키워드의 사용의 차이는 존재하지 않는다. 단지 문서화를 어떻게 하느냐에 의해 차이가 생길 뿐이다.
접근함수는 캡슐화의 기본개념이 반하는 것으로 다른 인터페이스 일부로서만 사용해야한다.
만약 s:Student_info 에 read(istream&)을 통해서 데이터를 입력하지 않고서 s.grade()를 사용한다면 프로그램을 에러를 낼 것이다.
bool valid() const { return !homework.empty(); } // 사용자에게 그 객체가 유효한 데이터를 가졌는지를 알려준다.
bool valid() const { return !homework.empty(); } // 사용자에게 그 객체가 유효한 데이터를 가졌는지를 알려준다.
상기에서 보듯이 : { 사이에 생성자를 명시적으로 사용함으로써 객체를 초기화하는 작업을 하는 중에 0으로 초기화 함으로써 오버헤드를 줄이는 것이 가능하다.
'''※만약 객체의 멤버로 const 멤버가 존재한다면 그 멤버는 반드시 이 표현으로만 초기화가 가능하다. 객체가 초기화 되는 시기는 생성자 코드로 진입되기 이전인데 일단 초기화된 const 멤버는 컴파일러가 그 값의 수정을 허용하지 않기 때문이다. '''
=== 9.5.2 인자를 사용하는 생성자 ===
- JavaScript/2011년스터디 . . . . 22 matches
* [박정근] - javascript에 관한 전반적인 내용들을 배웠습니다. 지난 시간동안 javascript를 공부하면서 배웠던 내용들을 정리하는시간이 되었던것 같습니다. 게다가 이론으로는 알고잇던 프로토타입같은 내용은 실제로 구글개발자 툴의 콘솔을 이용하여 직접 보면서 설명을 들으니 확실히 이해되기도 하였구요ㅋ 관심가는 부분에는 함수형 선언적 프로그래밍인데 함수형 언어를 사용한 적이 없어서 그런 방식으로 프로그래밍 하는 것에 대해 신선함을 느끼고 더 알고 싶어졌습니다. 또 자바스크립트를 하면서 DOM에 관해서도 알아야 겠다는 생각이 들었습니다. 하아.. 공부할게 많네요ㅋ
* [정진경] - 약 3시간 넘게 특강을 들었습니다.프로토타입에 대해서는 처음 접해본거 같은데 익숙치가 않아서 개념 이해가 버거운 것 같기도 하고-_-;깔짝깔짝 써본 자바스크립트가 이렇게 심오한 언어일 줄은 몰랐습니다. 더글락스 어쩌구 아저씨의 책을 정독해봐야 겠네요. 그전에 기초부터 다져야 하겠지만, 오늘 배운 부분들이 꽤 많은 핵심들을 짚었다고 생각합니다.하지만 자바스크립트로 원하는 기능을 다 구현해보더라도 오늘 배운 것들을 응용할만한 끈기가 저한테 있을지는.. 모르겠습니다;;
* 오늘 한 내용은 위에 써있는 네 줄에 대한 설명인데 네 줄 가지고 세시간 넘게 진행. 네트워크가 떠오른다.
* 네 줄 가지고 세시간 넘게 진행할만큼 중요한 내용이라고 생각한다. 그게 언어든 뭐든 쓰는 법을 익히는 것에만 집중하는 사람들을 많이 봤다. 그게 뭔지 확실히 알지도 못하면서 쓰는 법만 익히려한다. 어떻게 쓰는지를 배우는 건 그렇게 어렵지 않은데 뭔지도 모르고 문법에만 집중하면 쓸 줄은 알아도 잘 쓰지는 못하는 것 같다.
* Canvas를 이용해 그림판을 만들기를 하고 있습니다.
* Canvas를 이용해 그림판 만들기를 하고 있습니다.
* Canvas를 이용해 그림판을 만들고 있습니다.
* 오늘은 소스가 너무 스파게티여서 다른걸 첨가할 수 없었기에 리팩토링을 하고있습니다. 그 결과 나름 코드가 깔끔해졌고 기능들을 손쉽게 추가할 수 있게 되었습니다.+html select를 이용해 색깔고르기를 하고 싶었는데 함수를 찾느라 한참 걸렸네요.+ 선으로 그림그려질때 마우스를 up했다 다시down 하면 이전 위치가 저장되어 있었는데, 문제를 해결했습니다. -[김태진]
* Canvas를 이용해 그림판 만들기를 하고 있습니다.
* Canvas/SVG를 이용해 그림판 만들기를 하고 있습니다.
* 다음주 부터는 jQuery를 활용해서 공부해보기로 합니다.
* jQuery는 잠정 연기하기로 하고 php와 MySQL, js, html을 다 사용하는 방명록 만들기를 하기로 하였습니다.
* 공교롭게도(?) 3명 모두 클러그 회원이어서 클러그 서버를 이용해 MySQL을 받아 써보았습니다.
* 수많은 삽질..... (클러그 서버를 이용해서 MySQL을 쓰고 있는데 클러그서버 상태가 좋지않아 고생을 약간 하였습니다.)
=== 내용 ===
* 테이블 수정에서 유용하게 쓰일만한 MySQL 명령어들입니다.
=== 내용 ===
=== 내용 ===
- i++VS++i . . . . 22 matches
* 사용한 컴파일러 : Microsoft 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86 (Microsoft Visual C++ 6.0 에 Service Pack 5 를 설치했을때의 컴파일러)
== 그냥 사용 ==
i++; // 이렇게 하면 차이가 당연히 없지 않을까요? 이럴때는 선행이든 후행이든 증가한뒤에 printf에서 그 변수를 사용했으니..
== for 문에서 사용 ==
== 함수 에서 사용 ==
연산자 재정의를 하여 특정 개체에 대해 전위증가와 후위증가를 사용할 때에는 전위증가가 후위증가보다 효율이 좋다. operator++(int) 함수에서는 임시 객체를 생성하는 부분이 있다.
++i, 나 i++ 둘다 상관 없는 상황이라면, ++i에 습관을 들이자, 위의 연산자 재정의는 [STL]을 사용한다면 일반적인 경우이다. 후위 연산자가 구현된 Iterator는 모두 객체를 복사하는 과정을 거친다. 컴파일러단에서 Iterator 의 복사를 최적화 할수 있는 가능성에서는 보장할 수 없다. 따라서, 다음과 같은 경우
가 객체 복사를 하지 않는다. 객체가 크다면 이 비용은 무시할 수 없다. 더 궁금하면, [STL] 소스를 분석해 보자.
그냥 사용한 경우나, for 문에서 사용한 경우는 ++i 와 i++ 의 성능 차이가 없다. 그러나 함수의 전달인자로 사용한 경우는 ++i 보다 i++ 의 코드가 명령어 한개 정도 길어진다. 하지만 그냥 사용한 경우나 for 문에서 사용한 경우에는 i++ 을 쓴 곳을 ++i 로 서로 바꿔 써도 상관 없으나, 함수의 전달인자로 사용한 경우에는 i++ 을 쓴 곳을 ++i 로 바꾸면 실행 결과가 달라진다. 그러므로 함수에서 i++ 을 사용하고 있을 경우 프로그램이 한 줄 이라도 추가되지 않고 ++i 로 바꿀수 있으면 바꾸는 것이 더 효율적이다. 또한 그냥 사용할 경우나, for 문에서 사용한 경우는 ++i 를 쓰지 않아도 상관 없다. --["상규"]
* 아악... 어셈이다. 전 봐도 모르겠으니 걍 제가 본 글귀를 그대로 인용하겠습니다.
여기에서 교과서적인 이야기를 하나 하고 넘어가야 할 것 같다. 루프 안에서 항상 선행 증가를 사용하는 것이 좋은 이유는 무엇일까?
후행 증가로도 선행 증가와 동일한 방식의 루프를 만드는 것이 가능하지만, 후행 증가를 사용할 특별한 이유가 없다면 항상 선행 증가 또는 선행 감소 연산자를
사용하는 것이 바람직히다.
가 이렇게 한줄로 주는 후위 연산자의 '''기능'''을 이용할때 쓰자.
- 새싹교실/2011 . . . . 22 matches
내가 짠 코드를 직접 출력을 통해 확인하는 것은 분명 매력적인 일입니다. 그러나 처음 익힌 코딩 습관은 버리기 매우 어렵습니다. 많은 학생들이 처음 프로그래밍을 배우며 printf 함수를 사용하여 코드를 검증하는 습관을 들입니다. 그 때문에 상당수의 졸업할때까지 테스트보다는 직접 눈으로 확인하는 것을 선호합니다. 그런데 작성한 코드가 잘 돌아가는지 알기 위해 직접 눈으로 확인해야만 하는 것은 매우 많은 문제가 있습니다.(이것에 대해서 더 적자면 정말 길어질테니 일단 이 페이지엔 적지 않겠습니다.)
* 학교 수업에서 사용하기 때문에 printf 함수를 소개할 필요는 있습니다. 그러나 새싹교실에서 실습한 코드들을 검증하기 위해 매번 printf를 사용하는 것은 권장하지 않습니다.
* 혹시 assert를 사용할 줄 모르신다면, 그리고 테스트라는 게 무엇인지 잘 감이 안 오신다면 [김수경]에게 도움을 요청해주세요.
위키는 새내기들에게 낯선 환경이지만 사용하기 전혀 어렵지 않고, 내용이 쌓이면 게시판에 비해 내용들을 찾아보기 훨씬 좋답니다.
* 위키를 사용하기 어렵게 느낀다면 그건 익숙하지 않기 때문이예요. 함께 써보는 시간을 마련해주세요.
* 새내기들이 위키 문법을 처음부터 익히기는 어렵습니다. 선생님이 먼저 위키에 내용을 작성하여 학생들이 참고할 수 있도록 해주세요.
* 위키를 더 유용하게 사용하기 위해 지켜야할 것들이 있습니다. 각 반 페이지를 만드실때 페이지 이름은 '''새싹교실/2011/반이름''' 으로 만들어주세요.
* 공부한 내용 정리하기
* 각 반 페이지에 매번 공부한 내용을 정리해주세요. 일정 기간 별로 가장 잘 정리한 반을 뽑아 지원합니다.
* 이 외에도 여러분이 생각하실 수 있는 새롭고 재밌는 방법으로 새싹 교실의 내용을 공유해주세요.
== 참고용 커리큘럼 ==
* 커리큘럼 가이드라인은 참고 및 예시용으로 사용하며, 평가와는 무관합니다.
||주차||내용||
||3||computer science의 기초적인 내용:
각 파트의 역할, program의 실행원리, software(layer 활용), complier와 interpreter 역할
C언어의 기초적인 내용:
장점과 단점에 대해서 설명(이론적인 내용)
- AcceleratedC++/Chapter7 . . . . 21 matches
기존에 이용한 vector, list는 모두 push_back, insert를 이용해서 요소를 넣어주었을 때,
|| '''Key''' || 요소의 검색을 위해서 사용되는 검색어. 한개의 요소를 다른 요소와 구분하는 역할을 한다. 키는 요소의 변경시에 변경되지 않는 값이다. 이에 반하여 vector의 인덱스는 요소의 제거와 추가시 인덱스가 변화한다. 참조)DB의 WikiPedia:Primary_key 를 알아보자. ||
|| '''<map>''' || C++에서 제공되는 '''연관 배열(Associative Array)'''. 인덱스는 순서를 비교할 수 있는 것이면 무엇이든 가능하다. 단점으로는 자체적 순서를 갖기 때문에 순서를 변경하는 일반 알고리즘을 적용할 수 없다. ||
* 상기에서 지정된 map<string, int>는 "string에서 int로의 map"라는 용어로 부름. string type key, int type value
* Visual C++ 6.0 에서 소스를 컴파일 할때 책에 나온대로 (using namespace std를 사용하지 않고 위와 같이 사용하는 것들의 이름공간만 지정할 경우) map<string, int>::const_iterator 이렇게 치면 using std::map; 이렇게 미리 이름공간을 선언 했음에도 불구하고 에러가 뜬다. 6.0에서 제대로 인식을 못하는것 같다. 위와 같이 std::map<string, int>::const_iterator 이런식으로 이름 공간을 명시하거나 using namespace std; 라고 선언 하던지 해야 한다.
* Visual C++에서 map을 사용할때 warning이 많이 뜬다면 [http://zeropage.org/wiki/STL_2fmap] 이 페이지를 참고.
// 기본적으로 split 함수를 이용하여서 단어를 tokenize 한다. 만약 인자로 find_url을 주게되면 url이 나타난 위치를 기록한다.
// second 값인 vector<int> 를 이용하여서 string이 나타난 각 줄의 번호를 출력한다.
'''''주의) STL을 이용하면서 많이 범하는 실수: > > (0) >>(X) 컴파일러는 >>에 대해서 operator>>()를 기대한다.'''''
기본 변수 split 을 이용해서 입력받은 값을 이용해서 ret를 초기화한다.
문법과 주어진 단어를 이용하여서 간단한 문장조합 프로그램을 만들어 본다. 제시된 규칙은 다음과 같다.
상기에서는 map<string, vector<string> >의 형태로 구현해야한다. 그러나 <adjective>, <location>, <noun>과 같이 동일한 키 값에 대해서 규칙이 여러개가 존재하는 경우를 다루기 위해서 '''map <string, vector< vector<string> > >''' 의 타입을 이용한다.
// typedef 를 이용해서 좀더 읽기에 수월하도록 형을 지정하는 것이 가능하다.
vector<string> entry = split(line); // split 함수를 이용해서 입력된 문자열을 ' '를 기존으로 tokenize 한다.
//vector<string>의 첫번째 요소를 entry의 키값으로 이용한다. 2번째 요소부터 마지막 요소까지는 entry의 값으로 저장한다.
//Recursive function call 재귀 함수의 이용
RAND_MAX % n를 이용해서 임의의 수를 구할 경우 Pseudo 임의 값의 한계로 인해서 문제점이 발생한다.
STL의 Associative Container는 balanced self-adjusting tree(참고 WikiPedia:AVL_tree )구조를 이용하여서 연관 컨테이너를 구현했음.
- AcceleratedC++/Chapter8 . . . . 21 matches
WikiPedia:Generic_function : 함수의 호출시 인자 타입이나 리턴타입을 사용자가 알 수없다. ex)find(B,E,D)
함수의 호출시 함수의 매개변수를 operand로 하여 행해지는 operator의 유효성을 컴파일러가 조사. 사용 가능성을 판단
실제 제네릭 함수의 사용에서 가장 문제시 되는 것은 함수내부의 연산을 매개변수 타입이 지원을 하는 가이다.
{{{~cpp ex) accumulate(v.begin(), v.end(), 0.0); // 만약 0:int를 사용했다면 올바른 동작을 보장할 수 없다.}}}
|| c.find(val) || 특정형의 인스턴스인 c를 통해서만 접근가능. 내장배열에 적용 불가능 ||
|| find(c, val) || 범위 지정이 불가능하고, 유용성이 첫번째의 경우보다 적다. ||
* 1의 방식으로 작성된 함수으이 rbegin() 같은 템플릿 멤버 함수를 이용해서 역순 검색도 가능하게 작성된다.
STL 함수를 보면 인자로 받는 반복자(iterator)에 따라서 컨테이너의 함수 사용 유효성을 알 수 있다.
예를 들자면 find(B, E, D)같은 함수의 경우 ''아주 단순한 제한적 연산만을 이용''하기 때문에 대부분의 컨테이너에 대해서 사용이 가능하다. 그러나 sort(B, E)같은 경우에는 ''기본적인 사칙연산들을 반복자에 대해서 사용''하기 때문에 이런 연산을 지원하는 string, vector 만이 완벽하게 지원된다.
STL은 이런 분류를 위해서 5개의 '''반복자 카테고리(iterator category)'''를 정의하여 반복자를 분류한다. 카테고리의 분류는 반복자의 요소를 접근하는 방법에따른 분류이며, 이는 알고리즘의 사용 유효성 여부를 결정하는데 도움이 된다.
=== 8.2.2 순차적 읽기-전용 접근 ===
상기 2개의 구현 모두 begin, end iterator를 순차적으로 접근하고 있음을 알 수 있다. 상기의 함수를 통해서 순차 읽기-전용의 반복자는 '''++(전,후위), ==, !=, *'''를 지원해야한다는 것을 알 수 있다. 덧 붙여서 '''->, .'''와 같은 멤버 참조 연산자도 필요로하다. (7.2절에 사용했떤 연산자이다.)
=== 8.2.3 순차적 쓰기-전용 접근 ===
class Out 반복자를 출력에 배타적으로 사용하려면 '''++ 연산이 대입문 사이에서 1번이상은 무효'''가 되도록 만들어 주어야한다.
임의 접근 반복자르 이용하는 알고리즘은 sort. vector, string 만이 임의 접근 반복자를 지원한다. list는 빠른 데이터의 삽입, 삭제에 최적화 되었기 때문에 순차적인 접근만 가능함.
반복자의 끝값으로 컨테이너의 마지막 요소에서 한개가 지난 값을 사용하는 이유
* 마지막 요소를 범위의 끝으로 사용함으로써 발생하는 특별한 처리를 없애는 것이 가능. (실수가 줄어듬)
* 단순히 != 연산으로 범위의 순회를 마치는 조건으로 이용이 가능하다. <>와 같은 크기 연산자가 불필요하다.
- DataCommunicationSummaryProject/Chapter5 . . . . 21 matches
* Handover : 커버하는 영역 밖으로 벗어날시에 사용자에게 2G 네트워크로 handover한다.
* 5Mhz의 채널 대역폭 사용
* cdmaOne과의 차이점 : 시간 동기화가 필요없다. GPS 필요없다. 마이크로셀 사용. negative feedback에 기초한, 보다 쉬운 파워 컨트롤 메카니즘 사용
* Gold codes라 불리우는, 약간 다른 코딩 테크닉 사용. QPSK
* QPSK를 사용하는 W-CDMA는 4Mbps를 이룰수 없다. 가능할라면 하나의 셀에 한명의 사용자가 있어야 하고 채널에 간섭이 없어야 한다. 아주 잘나올때, 마이크로셀 내부에서 2Mbps, 외부에서 384kbps 가능하다.
* 멀티플렉싱은 CDMA. 듀플렉싱은 TDMA(업링크와 다운링크간에 채널 공유를 위해) - 스펙트럼 사용에 있어 가장 좋은 효율을 냄.
* HSDPA사용 - 구별이 좀 어려움.
* 새 하드웨어가 필요하지만, 새로운 라디오 인터페이스가 필요없으며, Walsh Codes를 두번 사용해서 두배의 용량을 지원한다.
* 1xMC의 QPSK대신에 8-PSK(3bit)나 16-QAM(4bit)를 사용
* 1xEV-DV(Data/Voice) : 완전히 표준화되지 않았음. 1XEV-DO의 모듈레이션 테크닉을 전체 네트워크에 적용
* IMT2000 의 표준. W-CDMA보다 작은 스펙트럼 사용
* GSM, GPRS와의 차이점 - 모듈레이션 계획 - 8PSK사용
* 데이터에만 사용됨(목소리에는 안됨). 많은 컨트롤 채널 생략
* 압축을 이용해 실제 속도보다 더 나와 보이게 한다.
* 3개의 주요 3G 시스템 : W-CDMA, CDMA2000, EDGE. 이것들은 IMT-2000으로 알려진 것으로 묶을수 있으며, 384kbps를 넘는 속도, 패킷 스위칭 방식을 사용한다.
* 처음 3G 시스템은 2001년에 서비스에 들어갔다. FOMA라 불리우는 W-CDMA의 변종을 사용한 일본에서 가장 떴다. 다른 선구지로는 UMTS를 사용하는 맨섬(어디야 이거?), CDMA2000을 사용하는 남한이 있다.
- Gof/Composite . . . . 21 matches
드로우 에디터나 회로설계 시스템과 같은 그래픽 어플리케이션은 단순한 컴포넌트들의 차원을 넘어서 복잡한 도표들을 만들어내는데 이용된다. 사용자는 더 큰 컴포넌트들을 형성하기 위해 컴포넌트들을 그룹화할 수 있고, 더 큰 컴포넌트들을 형성하기 위해 또 그룹화 할 수 있다. 단순한 구현방법으로는 Text 나 Line 같은 그래픽의 기본요소들에 대한 클래스들을 정의한 뒤, 이러한 기본요소들에 대해 컨테이너 역할을 하는 다른 클래스에 추가하는 방법이 있다.
하지만, 이러한 접근방법에는 문제점이 있다. 비록 대부분의 시간동안 사용자가 개개의 객체들을 동일하게 취급한다 하더라도, 이러한 클래스들을 이용하는 코드는 반드시 기본객체와 컨테이너 객체를 다르게 취급하여 코딩해야 한다는 점이다. 이러한 객체들의 구별은 어플리케이션을 복잡하게 만든다. CompositePattern은 객체들에 대한 재귀적 조합 방법을 서술함으로서, 클라이언트들로 하여금 이러한 구분을 할 필요가 없도록 해준다.
다음과 같은 경우에 CompositePattern 을 이용할 수 있다.
* 클라이언트들이 개개별 객체들과 객체들의 조합들의 차이점에 신경쓰지 않도록 하고 싶을 경우. Composite를 이용함으로써, 클라이언트들은 composite 구조의 모든 객체들을 동등하게 취급할 것이다.
* 클라이언트들은 Component 클래스의 인터페이스를 이용, composite 구조의 객체들과 상호작용을 한다. 만일 상호작용하는 객체가 Leaf인 경우, 해당 요청은 직접적으로 처리된다. 만일 상호작용하는 객체가 Composite인 경우, Composite는 해당 요청을 자식 컴포넌트들에게 전달하는데, 자식 컴포넌트들에게 해당 요청을 전달하기 전 또는 후에 추가적인 명령들을 수행할 수 있다.
* 새로운 종류의 컴포넌트들을 추가하기 쉽게 해준다. 새로 정의된 Composite 나 Leaf 의 서브클래스들은 자동적으로 현재의 구조들과 클라이언트 코드들과 작용한다. 클라이언트 코드들은 새로운 Component 클래스들에 대해서 수정될 필요가 없다.
* 디자인은 좀 더 일반화시켜준다. 새로운 컴포넌트를 추가하기 쉽다는 점이 단점으로 작용하는 경우는 composite의 컴포턴트들로 하여금 제한을 두기 힘들다는 점이 있다. 때때로 특정 컴포넌트들만을 가지는 composite를 원할 때가 있을 것이다. Composite 인 경우, 이러한 제한을 강제도 두기 위해 type system에 의존할 수 없게 된다. 그 대신 실시간 체크를 이용해야 할 것이다.
NetPrice 의 기본 구현부는 sub-equipment 의 net price의 합을 구하기 위해 CreateIterator를 이용할 것이다.
우리는 간단한 방법으로 Cabinet 나 Bus 와 같은 다른 equipment 컨테이너를 정의할 수 있다. 이로서 우리가 개인용 컴퓨터에 equipment들을 조립하기 위해 (꽤 간단하게) 필요로 하는 모든 것들이 주어졌다.
RTL Smalltalk 컴파일러 프레임워크 [JML92] 는 CompositePattern을 널리 사용한다. RTLExpression 은 parse tree를 위한 Component 클래스이다. RTLExpression 은 BinaryExpression 과 같은 서브클래스를 가지는데, 이는 RTLExpression 객체들을 자식으로 포함한다. 이 클래스들은 parse tree를 위해 composite 구조를 정의한다. RegisterTransfer 는 프로그램의 Single Static Assignment(SSA) 형태의 중간물을 위한 Component 클래스이다. RegisterTransfer 의 Leaf 서브클래스들은 다음과 같은 다른 형태의 static assignment 를 정의한다.
* source register 를 가지지만, destination register 를 가지지 않는, register가 해당 루틴이 리턴 된 뒤에 이용되는 assignment
* 종종 컴포넌트-부모 연결은 ChainOfResponsibilityPattern에 이용된다.
* DecoratorPattern 은 종종 Composite와 함께 이용된다. descorator 와 composite 가 함께 이용될때, 그것들은 보통 공통된 부모 클래스를 가질 것이다. 그러한 경우 decorator는 Add, Remove, GetChild 와 같은 Compoent 의 인터페이스를 지원해야 한다.
* IteratorPattern 은 composite들을 탐색할 때 이용될 수 있다.
- Linux/필수명령어 . . . . 21 matches
커맨드 명령어에 대한 사용법을 익히는 것이 필요하다.
초기에는 파일을 다룰 수 있는 기본적인 명령어부터 시작하여서, 실제 시스템의 관리를 위해 사용되는
하단에 표시한 내용은 기본적은 용도만 표시하는 것을 목적으로 하며, 각기의 명령어는 파이프라인을
이용하여서 명령어 조합이 가능하다. (이렇게 하면 사용이 무지하게 편하다)
참고서적) 체계적인 UNIX 사용법/박창윤, 정충일 공저
''처음 책은 예전에 사용되던 학교 교재이고, 두번째는 대략 응용법이라고 생각하면 될듯함.
|| adduser || 시스템에 사용자를 추가한다. ||
|| nano || pico 에디터의 클론 버전으로 vi보다 간편한 사용법 제공 ||
symbolic link, hard link 에 관한 내용은 구글링하면 됨''
|| du || 장치의 사용한 공간 보여주기 ||
|| who || 현재 접속중인 사용자를 표시한다 ||
|| talk || 연결된 사용자와 이야기 ||
|| grep || 입력으로 받은 내용에서 특정 내용을 grap 하여 참이 되는 것을 출력해준다 ||
|| more || 입력으로 받은 내용을 페이지 단위로 출력 ||
|| lilo || 부트 디스크를 만듬, MBR 재설정, lilo.conf 재설정 적용 ||
|| free || 메모리와 스왑 이용량을 출력한다 ||
[Linux] [Linux/필수명령어/용법]
- MoreEffectiveC++/Basic . . . . 21 matches
pointer의 유의 사항인 null에 관한 내용을 다시 알려준다.
사견: Call by Value 보다 Call by Reference와 Const의 조합을 선호하자. 저자의 Effective C++에 전반적으로 언급되어 있고, 프로그래밍을 해보니 괜찮은 편이었다. 단 return에서 말썽이 생기는데, 현재 내 생각은 return에 대해서 회의적이다. 그래서 나는 COM식 표현인 in, out 접두어를 사용해서 아예 인자를 넘겨서 관리한다. C++의 경우 return에 의해 객체를 Call by 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배 정도 난다고 광고하고 다녔었는데, 지금 생각해 보면 다 부질없는 이야기 같습니다.) -상민
* ''static_cast<type>(expression)''는 기존의 C style에서 사용하는 ''(type)expression'' 와 동일하다. [[BR]]
// reference에서도 사용 가능하다? 그럼 불가능 할시의 처리는?
* C 에서 지원하지 않을 경우 다음 매크로를 사용하여
이런 클래스를 선언했다. 그리고 다음과 같은 함수로 해당 클래스의 배열을 사용한다고 가정하자
그리고 다음과 같이 사용한다.
위의 두번째 호출의 클래스 상속의 다형적 성질을 이용한 함수 이용 즉
로 사용한다. 느낌이 오겠지! 당연히 상속시 child는 parent보다 큰 경우가 다반사이고 배열의 위치 추적이 엉망 진창이 되어 버린다.
* '''첫번째 문제는 해당 클래스를 이용하여 배열을 생성 할때이다. . ( The first is the creation of arrays )'''
하지만 이럴 경우에는 array를 heap arrays(heap영역 사용 array라는 의미로 받아들임)로의 확장이 불가능한 고정된 방법이다.[[BR]]
조금 더 일반적인 방법은 다음과 같이 pointer를 이용한 접근을 제시한다.
두가지를 구체적으로 이야기 해보면, '''첫번째'''로 ''for'' 문시에서 할당되는 객체의 숫자를 기억하고 있어야 한다. 잃어버리면 차후 resouce leak이 발생 할것이다. '''두번째'''로는 pointer를 위한 공간 할당으로 실제 필요한 memory 용량보다 더 쓴다. [[BR]]
첫번째에서 제기된 문제가 이번에는 template class 내부에서 일어 나고 있는 셈이다. 거참 암담한 결과를 초례한다. 문제는 이러한 template class 가 이제는 아예 STL같은 library로 구축되었단 사실. 알아서 잘 기본 생성자 만들어 적용하시라. 다른 방도 없다.
- MoreEffectiveC++/Operator . . . . 21 matches
* Item 5: 사용자 정의 형변환(conversion) 함수에 주의하라!
* C++는 타입간의 암시적 type casting을 허용한다. 이건 C의 유산인데 예를 들자면 '''char'''과 '''int''' 에서 '''short'''과 '''double''' 들이 아무런 문제없이 바뀌어 진다. 그런데 C++는 이것 보다 한수 더떠서 type casting시에 자료를 잃어 버리게 되는 int에서 short과 dougle에서 char의 변환까지 허용한다.[[BR]]
뭐 이런 암시적 형변환을 막을려면, 형전환 시키고 하는 암시적 사용을 하지 않고, 다른 함수로 명시적으로 해 줄수 있다.
이런 애매한 상황을 피할수 있는 가장 효과적인 방법은 C++에서 등장한 새로운 키워드인 '''explicit''' 의 사용이다. 이 키워드가 붙은 생성자로의 형변환에서는 반드시 명시적인 선언이 있어야 가능하다. 즉 위의 코드를 다시 작성하여 '''explicit'''의 사용을 알아보고 문법상 유의 사항도 알아 보자
// 하지만 다른 개발자가 해석에 사용자의 의도가 약간 의문이 간다.
이렇게 explicit를 사용하면 명시적으로만 형변환이 가능하다. 하지만 또 하나 문법상 유의 해야 할사항은
우리는 ++와 --연산자(이하 가칭 가감 연산자)를 즐겨 쓴다. 이 연산자 역시 클래스에서 정의해서 사용할수 있다.
수많은 개발자들이 이런 단순한 원리를 프로그램 상에서의 짧은 진행(short-circuit)을 추구하는데 사용하였다. 그렇다면 C++에서의 객체들에게 operator ||, && 를 overload 시키면 짧은 진행을 추구하는데 도움이 되지 않을까? 그런데 하지 말라니 왜일까? [[BR]]
자 이 두경우 모두를 생각해 보면 1,2 양쪽 다 expression1, expression2 의 결과 값이 필요한 상황이다. 즉, operator && 나 operator || 의 경우 양쪽이 class인자든, 어떤 형태이든 반드시 결과 값이 필요하다. 위에도 언급했지만, 이미 많은 개발자들이 &&와 ||의 특성을 잘 알고 사용하고 있으며, operator &&, ||의 overload는 구동되지 말아야할 코드가 구동되는 의도하지 않은 오류가 발생 소지가 있다.
comma operator는 표현(form expression)에 사용된다. 아래를 보자
보통 C++에서 용어들을 정확히 이해 못할 경우가 있다. 바로 ''new''operator와 ''operator new''가 그 대표적인 예가 될수있을 것이다. 다음의 코드를 보자
이 코드는 new operator를 사용한 것이다. new operator는 sizeof 처럼 언어 상에 포함되어 있으며, 개발자가 더 이상 그 의미의 변경이 불가능하다. 이건 두가지의 역할을 하는데, 첫째로 해당 객체가 들어갈 만한 메모리를 할당하는 것이고, 둘째로 해당 객체의 생성자를 불러주는 역할이다. new operator는 항상 이 두가지의 의미라 작동하며 앞에서 언급한듯 변경은 불가능하다.
다음은 placement new를 사용한 예제이다.
해당 함수(construcWidgetInBuffer())는 버퍼에 만들어진 Widget 객체의 포인터를 반환하여 준다. 이렇게 호출할 경우 객체를 임의 위치에 할당할수 있는 능력 때문에 shared memory나 memory-mapped I/O 구현에 용이하다 constructorWidget에 보이는건 바로
delete ps; // delete operator 를 사용한다.
그리고 이것의 의미는 당신이 초기화 되지 않은 raw로의 사용의 경우에는 new와 delete operator로 그냥 넘겨야 한다는 의미가 된다. 즉 이코드 대신에 다음의 예를 볼수 있을 것이다.
그렇다면, 이번에 당신은 placement new를 사용해서 메모리상에 객체를 만들었다면 delete를 사용할수 없을 꺼라는 예측을 할수 있을 것이다. 자 다음 코드를 보면서 명시적인 delete를 행하는 코드들을 보자
별다른 특별한 지적사항이 없다. 여태 까지의 연장선이고 단 new를 이용한 배열 할당을 삭제할 경우
- PrivateHomepageMaking . . . . 21 matches
직접 홈페이지를 만드는데 약간 이나마 도움(?) 혹은 필요한 내용을 적어보는 것임.
운영 서버를 사용하는 것은 대략 2가지 방식이 존재한다.
2. 개인 컴퓨터에 웹 서버를 운영, dnip 서비스를 이용.
제로페이지 서버를 이용하는 것도 굉장히 현명한 선택이다. 일단 zeropage 서버는 쿼터(quota)
가 없기 때문에 용량의 제한이 없고, mysql, php, jsp 등
을 이용가능하기 때문에 이만한 서버환경이 없다.
리눅스 환경은 윈도우와는 약간 상황이 다르다. 윈도우만 사용하던 사람은 일단
실제 APM의 설치를 위해서는 패키지 관리에 대한 내용을 필요로 하는 배포판도 있다.
윈도우를 선택한 사람은 IIS를 이용해서 ASP로 구성된 페이지를 만드는 것이 간편하다. 그렇다고 해서
IIS역시 약간의 설정으로 tomcat, php의 설정이 가능해 PHP, JSP를 이용하기 위해서 웹 서버로 아파치를
== 어떻게 내용을 만들 것인가 ==
상기의 3가지 종류의 패키지는 서로 혼용이 가능하며 이럴 경우 디자인을 통일하여
대략 보드 기반의 홈페이지는 몇가지 공통적으로 이용하는 프로그램들이 많이 존재한다.
일반적으로 이용하는 게시판 프로그램으로는 다음의 것들이 있다.
보통 PHP, MySQL을 이용한 프로그램들이 대부분이다.
|| Zeroboard || http://www.nzeo.com || PHP 기반이며 DB는 MySQL 을 이용한다 ||
|| whitebbs || http://whitebbs.com || PHP 기반이며 파일 입출력을 이용한다. (DB서버 불필요) ||
컴퓨터 관련 사람들이 많이 이용한다. ㅡ.ㅡ;;; 대부분 이런 사이트의 운영자를 보면 프로그래머다.
|| MoinMoin || http://moinmoin.wikiwikiweb.de/ || Python 기반, 파일시스템 이용 ||
|| MoniWiki || http://moniwiki.sourceforge.net/wiki.php || PHP 기반, 파일 시스템 이용 ||
- ProjectZephyrus/ClientJourney . . . . 21 matches
클라이언트 팀 모여서 한 일에 대한 정리. 한일/느낀점/교훈(["ThreeFs"]) 등을 생각해볼 수 있는 기회가 되었으면 함. (팀원내 자유로운 비방 허용; 치외법권선포;)
* 작업상황이 막바지인것을 실감할 거 같다. 엄청나게 길어진 코드를 보면 알 수 있다. 내가 없는 사이에 엄청나게 많은 변화가 있었다. 주석이 없는 코드라서 그런지 해석하는 데 애먹었다. 이궁...CVS 사용을 며칠 안해봤다고 또 잊어먹었다. 바부..도움말 뒤지는 중이다. 아마 이번 프로젝트에서 내가 가장 크게 느끼는 것은 영서와 비슷할 것 같다. 자바 언어에 대한 공부보다는 프로젝트 진행 방법, 팀프로젝트에서 개인과 팀의 역할 등을 가장 크게 배우는 것 같다. 예전에 친구와 함께 뭐 하나 하다가 어설프게 끝난 적이 있는데 아마 내가 그만큼 어설프게 진행했던 것 같다. 아무튼 이번에 가장 크게 느낀 점이다. 또 하나 느낀점이 있다면 형하고 pair 하려면 이정도로 공부하고 노력해서는 부족할 것 같다는 생각이다. 아직 내가 갈 길은 멀었다는 생각이... -_-;; 이번에 확실히 늘어난 실력은 아마도 소켓의 개념이 아닐까...-_-;;
* 소프트웨어 개발이 공장스타일이 될 수 없는 이유를 하나 든다고 한다면 개발중 개발자가 계속 학습을 해나간다는 점에 있지 않을까 한다. 처음부터 끝까지 모든 것을 다 예상하고 개발할 수 는 없을것이니. (필요한 라이브러리가 무엇인지, 실제 그 라이브러리의 장단점이 무엇인지, 어떻게 사용하면 바로 알수 없는 버그가 되어버리는지 등등. 뭐 큰 소프트웨어일 경우 이것을 다 예측해야 한다라고 하면 할말없지만. 이것도 비용을 고려해서 처신해야하겠지. Cost Estimate 자체가 Cost 가 드는것일거니.) 암튼 아쉬운건 중간에 디자인이 바뀌었을때 (실제로 처음 디자인의 클래스들을 몇개 뺀것도 있고, 인터페이스만 맞춰본 것들도 있고 그러함) 바쁜 사람들이 참석을 하지 못해서 처음부터 설명해야 하는 경우이다.
* 움.. 아무래도 난 말빨 글빨 다 딸리는거같다.. 위에글처럼 멋있게 쓰고싶은데, 그냥 내식대로 써야겠다.. 간만에 내가 또 형보다 일찍왔다. 이틀동안 빠진게 타격이 너무 컸나보다.. 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 의 관점이다.
''어차피 창섭이가 주점이 아니라 하더라도 자네는 소켓을 공부해야 했을걸. -_-v (왜냐. 중간에 창섭이랑 너랑 Pair 할것이였으니까. 창섭이도 Swing 관련 공부를 해둬야 하긴 마찬가지) 참, 그리고 해당 코드대비 완성시간은 반드시 체크하도록. 참고로 1:1 Dialog 는 1시간 10분정도 이용했음. --석천''
* PairProgramming 을 할때 가장 답답해지는 상황은 잘 이해 안가면서 넋놓고 있을때랑, 둘이 같이 있어도 Solo Programming 하느 사람 마냥 혼자서 문제를 끙끙거리며 풀려고 하는 모습이다. 꼭 문제를 스스로 삽질해서 풀어야만 자기실력이 향상되는것일까? 다른 사람에게 올바른 질문을 할 수 없는 사람은 혼자서 문제 푸는데에도 오래걸리게 된다고 생각한다. 상대방에게 질문을 하면서 자신이 모르는 것 자체를 구체화하고 (문제 자체가 모호한상태 자체가 문제다. 무엇이 문제인지, 자신이 모르는 것이 구체적으로 무엇인지 모르면서 어떻게 문제를 해결할까? 자신이 모르는게 버클리소켓 전체 사용과정인지 소켓 API의 인자들을 모르면서 네트웍 프로그래밍을 할 수 있을까. 그런사람들에게 '지금 모르겠는게 뭐지?' 라고 물으면 80-90%는 '다 몰라요' 이다. 모르겠는 부분에 대해서 하나하나 구체화시켜나가라. 구체화시킨 예로서 생각을 해봐도 좋을것이다. 시나리오를 만들어보면서, 그림을 그려보면서, 아니면 자기 자신이 그 시스템의 일부가 되어 보면서.) 다른 사람의 아이디어를 자신의 사고에 붙여나가면서 '더 좋은 방법' 을생각해낼 수는 없을까? 언제나 문제의 답을 내는 방법은 '이사람의 방식' 아니면 '저사람의 방식' 뿐일까.
* PairProgramming 의 교대시간을 5분으로 해봤다. 한 사람이 5분동안 해당 부분을 플밍하다가 다 못짜면 다음사람이 다시 5분의 시간을 가지고 이어서 짜고 하며 교대로 프로그래밍을 이어나가는 (마치 릴레이경주와도 같다) 방법이다. 사람들에게 제안했을때 그 표정들이 심상치 않다;; 그래 너희들은 실험용 모르모트다;; 흐흐.
다음번에 창섭이와 Socket Programming 을 같은 방법으로 했는데, 앞에서와 같은 효과가 나오지 않았다. 중간에 왜그럴까 생각해봤더니, 아까 GUI Programming 을 하기 전에 영서와 UI Diagram 을 그렸었다. 그러므로, 전체적으로 어디까지 해야 하는지 눈으로 확실히 보이는 것이였다. 하지만, Socket Programming 때는 일종의 Library를 만드는 스타일이 되어서 창섭이가 전체적으로 무엇을 작성해야하는지 자체를 모르는 것이였다. 그래서 중반쯤에 Socket관련 구체적인 시나리오 (UserConnection Class 를 이용하는 main 의 입장과 관련하여 서버 접속 & 결과 받아오는 것에 대한 간단한 sequence 를 그렸다) 를 만들고, 진행해 나가니까 진행이 좀 더 원할했다. 시간관계상 1시간정도밖에 작업을 하지 못한게 좀 아쉽긴 하다.
중반 어느정도 대부분의 목표 코드가 나와서 나머지를 채워넣는 과정에 대해서는 Solo 로 영서에게 시켰는데, 아직까진 프로그래밍에 익숙하지 않은 듯 싶다. 자꾸 해당 부분을 플밍하려는데에서 같은 부분이 구현된 소스코드가 있음에도 불구하고 자꾸 책을 찾아보려고 한다. 자신감의 차이였을까. 해당 부분에 대해 꼭 코드를 외워서 플밍하려 하지 않았으면 한다. '하려는 일' -> '각 언어별 구현 방법 순서 잡아보기' -> '구현' 의 과정을 거치거나, 해당 부분에 대해서 응용할 수 있는 이전에 만들어진 코드 (책의 코드 말고 현재 '작성된' 코드)를 들춰보고 생각해봤으면 하는 생각이 든다. [[BR]]
그래도 메신저리스트의 사용자 추가/삭제 부분에 대한 JTree 부분 플밍을 비슷한 수준으로 했다는 것과 CVS 에 add & commit 하는 전체 한 과정을 해본점에서 의의를 두어본다.[[BR]]
* 다른 MFC나 ["wxPython"] 등의 다른 GUI Framework와 ["디자인패턴"] 에 익숙하면 이러한 Swing 에 익숙해지는데에도 도움이 되었다. 대부분의 GUI 에선 ["CompositePattern"] 으로 윈도우들을 구성하기에. 그리고 Java API를 공부하는 동안 ["IteratorPattern"] 이나 ["DecoratorPattern"], MVC 등에 대해서도 이해하기 용이했다.
DeleteMe) ''참고로 자바에서는 순수한 형태의 MVC 모델을 사용하지 않습니다. 변형된 형태의 MVC 모델을 사용합니다 [http://java.sun.com/products/jfc/tsc/articles/getting_started/getting_started2.html Introducing Swing Architecture]. 이론과 실제의 차이랄까요. --이선우''
1002는 CVS 사용방법에 대한 예를 보이고 설명을 했다. wincvs 윈도우 버전에 익숙하지 않았던 관계로 command 입력방법을 가르쳐줬다. 그리고 영서와는 주로 Swing쪽을, 창섭과는 Java Socket Class 에 익숙해지기 위해 Socket 관련 SpikeSolution 을 했다.
대학교들어와서 그정도로 열심히(?)공부한적은 별루 없었던거같다.. 그날 이얘기를 들은 1002형은 놀란표정이었지만 사실 그랬다.. 그러니깐 학점이 그렇게 나왔겠지.. -_-;; 암튼 일주일전에 봤던 자바 기본개념을 바탕으로 남들 다 해본 스윙 기본틀이나 메뉴같은걸 작성해봤다.. 아참 그전에 CVS사용법을 배우고, Architecture와 Design에 대해서도 들었다.. 신기하다.. 무슨 도면같았다.. 이제서야 느낀거지만 프로그램에 코딩이 차지하는비중은 1/2도 안되는구나라는걸 느꼈다.. (이제서야? --;;) 여지껏 놀은시간이 너무 아까웠다.. -_-;; --영서
- WhatToProgram . . . . 21 matches
프로그래밍의 궁극은 "사용자"와 프로그램의 사용을 통해 그가 받는 "현실적 가치"에 있다. 프로그래밍을 하면서 사용자를 생각하지 않는 것은 도무지 아무 의미가 없다. 프로그래밍이라는 행위 자체가 성립하질 않는다. 골방에 틀어박혀 자기만족적인 지적 유희를 즐기는 해커가 아니라면 말이다. 우리는 사용자의 마음을 꿰뚫어야 한다. 여기에 있어 직접 사용자가 되는 것만큼 좋은 방법은 없다. 업계에서 혹자는 요구사항 분석시 사용자와 한 달 간 같이 생활해 보라는 말도 한다.
자기 삶에서 의미가 있는 프로그램을 만들게 되면 스스로가 사용자가 된다. 목적이 분명해 진다. 자기가 편한 프로그램을 만드는 것이다. 이 프로그램은 꼭, "내가 쓸 마음이 나는 프로그램"이어야 한다(그 프로그램을 만들고 싶은 열정이 생기고, 그걸 생각하면 가슴이 두근거린다면 더더욱 좋다 -- 이런 호기가 있을 때 그것을 충분히 누리도록 하라). 아무리 간단한 프로그램일지라도 나에게 가치있는 프로그램은 존재한다. 특정 언어에 대한 경험이 한 두 달일지라도 분명 그런 프로그램을 만들 수 있다. 대부분은 다른 프로그램들을 엮어주는 것일지도 모른다. 만약 난관에 부딪혔다면 책을 읽고, 사람에 묻고 자료를 검색해서 기술과 도구를 배우면 된다.
이 프로그램을 개발해서 일주일이고, 한달이고 매일 매일 사용해 봐야 한다. 일주일에 한 번 사용하는 프로그램을 만들기보다 매일 사용할만한 프로그램을 만들라. 자신이 하는 작업을 분석해 보라. 무엇을 자동화하면 편리하겠는가. 그것을 프로그램 하라. 그리고 오랜 기간 사용해 보라. 그러면서 불편한 점을 개선하고, 또 개선하라. 때로는 완전히 새로 작성해야할 필요도 있을 것이다(see also [DoItAgainToLearn]). 아마도 이 단계에서 스스로를 위한 프로그램을 작성하다 보면 아이콘을 이쁘게 하는데 시간을 허비하거나, 별 가치없는 퍼포먼스 향상에 시간을 낭비하지는 않을 것이다. 대신 무엇을 프로그램하고 무엇을 말아야 할지, 무엇을 기계의 힘으로 해결하고 무엇을 여전히 인간의 작업으로 남겨둘지, 즉, 무엇을 자동화할지 선택하게 될 것이다. 또한, 같은 문제를 해결하는 여러가지 방법(기술, 도구, ...) 중에서 비용과 이익을 저울질해서 하나를 고르는 기술을 익히게 될 것이다.
사실 이 단계에서는 꼭 어떤 사용을 전제로 하지 않더라도 열정을 갖게 해주는 프로그램이라면 괜찮다. 어떤 것에 대해 호기심이 생기는가? 컴퓨터로 실험을 해보고 싶은가? 그 생각이 밥을 먹거나, 잠을 자거나 떠나지 않는다면 프로그램 하라. 그냥 이걸 프로그램하면 공부가 될 것 같다든가, 혹은 남들이 다 하길래 한다든지 하는 것과는 질적으로 다른 경험을 할 것이다. 열정을 가진 것은 대부분 가슴 속에 그 모양이 이미 형성이 되어 있다. 조각가는 조각품의 형상을 이미 가슴 속에 품고 있다. NoSmok:최한기 는 이것을 강조한다. 일이 제대로 이루어지려면 그 일을 흉중에 품고 있어야 한다고. 머리 속에서, 정말 손끝에 잡힐 것만 같고, 그 프로그램이 살아있는 것 같이 느껴진다면 프로그램 하라. 자신의 아이디어를 컴퓨터가 이해하는 언어로 표현해 내는, 그리고 그 프로그램이 자신의 아이디어를 더 발전시키게 하는 능력을 갖게 될 것이다.
이 과정이 어느 정도 되면, 타인을 위한 프로그램을 작성할 수 있다. 나에게는 별 의미가 없지만 남에게 "아주 귀중한 가치를 주는" 프로그램을 만들어라. 서로 만들어줘도 좋다. 자신이 컴퓨터 공학과라면 국문학과 학생에게 프로그램을 만들어주라. 그와 가까이 지내고 그가 진정 원하는 것이 무엇이며, 진정 필요로 하는 것이 무엇인지(원하는 것과 필요로 하는 것은 다르다) 분석하고, 프로그램 해줘라. 그가 그 프로그램을 한 달 이상 사용하는가? 그래야 한다. 그 정도로 가치있는 프로그램이어야 한다. 가치있는 프로그램이 꼭 복잡하거나 거대할 필요는 없다. 그가 프로그램의 수정을 요구한다면 가능하면 모두 들어주어라. 그게 힘들다면 그를 납득시켜라. 아마도 이 단계에서 타인을 위한 프로그램을 작성하면서 "작성자"와 "사용자"간의 프로그램을 통한 커뮤니케이션의 중요성에 눈을 뜨게 될 것이다. 인터페이스에 대해 고민할 것이다. 얼마나 이쁘냐보다, 얼마나 실수할 행위유발성을 제공하지 않느냐, 그리고 어떤 메타포를 사용할 것인가(이에 대해서는 비지칼크란 프로그램을 연구하라) 하는 문제를 생각할 것이다.
이 단계를 거치면 이제는 타인들을 위한 프로그램을 작성한다. 일단 사용자가 다수이다. 또, 어떤 사용자 집단을 상정할 수는 있지만 개개인을 전제할 수는 없다. 아마도 이 단계에서는 평균적 사용자에 대해 고민하게 될 것이고, 때로는 여러사람의 동시 사용자로 야기되는 동시성 제어나 퍼포먼스 문제로 고민할 것이다. 그리고 프로그램의 크기가 커지면서 그리고 요구사항 변경이 여러 소스를 통해 빈번히 들어오게 되면서 어떻게 설계해야 하느냐는 문제로 고민할 것이다.
프로그래밍 기술보다도 중요한 것은 어쩌면 현실세계의 문제를 해결하는 것 그 자체일지도 모른다(도구와 기술은 본질적 문제를 해결해 나가는 과정으로서 필요에 따라 공부하면 되겠다). 우리는 정말 사용자를 위한 프로그램을 만들어야 한다. 그리고 이 공부는 가까운 곳에서부터 출발한다.
- ZeroPage_200_OK/note . . . . 21 matches
* uploder에게 리소스를 올릴때 사용 주로 새글을 쓸때 많이 사용한다.
* resource에 사용 그 url에 딱 올라갈 때 쓴다. 주로 수정에 사용된다 이미 ID를 알고 있으므로.
* 반환값을 사용할수 있고
* iframe이나 XHR요청은 이것의 적용을 받는다.
* 단, 이것을 하위 도메인. 앞에서 부터만 짜를수 있으며 붙이는 것은 허용되지 않는다.
* 부하가 많이 걸리고(요청마다 서버에 요청을 보내고 그걸 다시 내려주므로 네트워크 비용및 기타 비용이 증가)
* 원래 same origin policy를 적용받지 않음으로 극복할수 있으나 바이너리므로 애시당초 우리가 쓸수 없다.
* Same origin policy를 적용받지 않고 자바스크립트를 불러올수 있으나 바로 실행이 되므로 다른 방식을 써야한다.
* script tag를 읽어 로딩이 끝나면 바로 실행 하기 때문에 여러개를 동시에 불러올경우 전역변수를 이용한 방식은 불가.
* 프로세스간 통신에 사용되는 Pipe
* 새로운 프로세스를 만드는 비용을 줄여보자.
* 공용라이브러리는 프로세스가 실행될때 한번만 불러와진다.
* ISAPI(ISS) : DLL이용)
* mod (apache : so이용)
* 현재 가장 많이 사용되는 방식
* process per request 방식이어서 fork 비용은 여전히 존재하고 요청마다 메모리를 많이 먹는다.
* fork비용을 없애자
* 큐를 만들어서 context switch비용을 줄여보려고 노력했다.
- zennith/w2kDefaultProcess . . . . 21 matches
Win32.sys가 Win32 subsystem의 커널모드 부분인데 비해서 Csrss.exe는 사용자모드 부
작업관리줄, 바탕화면 등과 같은 사용자 셸로서 Windows의 작동에 있어 필수적인 요소
가 아니며 시스템에서 아무런 부작용 없이 작업관리자에서 종료 및 재시작이 가능하
시스템 시작과 함께 구동되는 프로세스로 사용자가 지정한 여러가지 입력로케일
시스템 트레이에 "EN" 아이콘을 띄움으로써 사용자가 입력로케일간에 변환을 손쉽게
로컬 보안 인증 서버로서 Winlogon 서비스가 사용자를 인증하는데 필요한 프로세스를
만들어 내고 이 프로세스는 Msgina.dll과 같은 인증 패키지를 이용함으로써 수행된
다. 인증이 성공하면 Lsass는 해당 사용자의 Access Token을 생성하고 이를 이용해 초
기 셸이 구동된다. 동 사용자가 초기화하는 다른 프로세스들은 이 Access Token의 지
사용자가 미리 지정한 시간에 작업을 실행시키는 Task Scheduler Service
사용자 세션을 시작시키는 세션 관리자 subsystem으로서 시스템 쓰레드에 의해 초기화
기 때문에 2개 이상이 생길 수도 있다. Svchost.exe를 이용하는 프로세스들의 명세를
확인하려면 윈2000 CD에 있는 Tlist.exe를 이용하면 되고 구문은 명령 프롬프트에서
시스템 서비스들을 시작/종료/상호작용하는 역할을 담당하는 Service Control
사용자 로그온 및 로그오프를 관리하는 프로세스로서 사용자가 Ctrl+Alt+Del를 눌러
윈2000에서 클라이언트 관리의 핵심 구성요소로서 클라이언트 응용프로그램이 처음 연
결될 경우 또는 관리 응용프로그램이 서비스를 요청할 때 초기화된다.
를 이용하여 종료가 가능하지만 system failure나 기타 다른 부작용을 야기할 수 있
- 데블스캠프2011/둘째날/후기 . . . . 21 matches
* 사실 스크래치를 접해보는 건 이번이 두 번째군요. 2009년 데블스캠프에서도 한 번 다루었던 걸로 기억합니다. 스크래치는 원래 아동 교육용으로 만들어진 프로그래밍 언어라고 들었습니다. 그런데 아동용이라고 대충 넘기기에는 기능도 생각보다 훨씬 다양하고 능력도 강력한 것 같아요. 1학년 떄는 이래저래 미숙한 부분이 많아서 그런 부분을 볼 여유도 없었는데 다시 보면서 약간 여유가 있어서 그런지 잘 만들었다는 느낌이 새삼 들었습니다. 그리고 이번에도 2009년 때처럼 게임을 만들기로 했었는데, 이번에는 다행히도! 제대로 돌아가는 게임을 만들었습니다. 사람이 그래도 발전이 있긴 하군요. 앞으로도 열심히 해야겠습니다.
* 겉모습에서 일단 코드가 나오지 않으니 확실히 잘 모르는 사람도 생각하기 쉬울 것 같습니다. 다만 반복문 구문 블록이 여러개로 나뉘어 있는데 비슷비슷해 보여서 좀 불편하기도 하더군요. 하지만 중요한건 언어의 사용법이나 형태가 아니라 만드는 사람의 실력에 달렸다는걸 만들면서, 그리고 다른 분들이 만든 물건들을 보면서 다시 한 번 느꼈습니다. 어릴 때부터 이런걸로 교육받고 자라면 코딩 잘하려나 -_-
* Scratch를 어제 블럭 쌓기라고 해서 무슨 테트리스 같은 거라고 생각했는데, 오늘 보니 아 이런거구나 하는 것을 알게 되었습니다. 꼭 프로그램 짜기 전에 의사 코드로 하는 것 같더군요a. 마지막에 성현이가 게임 만들으라고 해서 뭐 할까 하다가 슈퍼마리오 배경도 있고 해서 그걸로 좀 비슷하게 하려고 했는데, 파이프에 닿았을 때 그걸 넘어가게 하는 걸 하려다 망했네요 ㅋㅋㅋ 그러다 보니 그냥 마리오가 움직이고 뛰기만 하는 걸로 끝났습니다. 좀 더 도구를 잘 활용하지 못함이 아쉽긴 했습니다.
* [http://sdec.kr SDEC] 가느라 못 들었는데 나중에 다른 학우들이 한 걸 돌려보며 저도 다시 Scratch를 사용해봤습니다. 오랜만에 하니 재밌네요 ㅋㅋ
* 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 + 난수로 해놔서 찾기 어려웠는데 참. 이제 튜토리얼을 통해 어떤 숨겨진 값들도 다 찾을 수 있을것 같습니다. 그리고 보여주고 준비해왔던 얘제들을 통해 보안이 얼마나 중요한지 알게되었습니다. 보안에 대해 많은걸 생각하게 해주네요. 유익한시간이었습니다. 다음에 관련 책이 있다면 한번 읽어볼 생각이 드네요.
* 거기까지 했으면 거의 다 한거네, 읽어온 단어 갯수가지고 확률식 적용하면 돼~ 다시해봥ㅋㅋ - [서지혜]
를 이용해 문서의 개수를 세는데는 성공! 나머진 내년 데블스캠프때....
* 재작년에 인공지능 과목을 들었던 기억이 다시 떠오르네요. 인공지능을 아직 듣지 않은 학우들은 좀 더 어려웠을 것 같아요. 이번 시간에 짠 코드를 다른 여러 카테고리와 실제 웹문서에 적용해보면 어느 정도로 문서를 분류할 수 있을지, 실제 웹문서에 적용시킬 때 정확성을 더 향상시키기 위해 어떤 방법을 사용할 수 있을지 더 공부해보고 싶습니다. 그리고 대책없이 급하게 짜다보니 코드가 너무 지저분해진 것이 아쉽네요. RubyLanguage로 다시 짜봐야지...
- 새싹교실/2012/해보자 . . . . 21 matches
* 반드시 ZeroWiki에 작성해주세요. 하위 페이지를 만드는 것도 허용합니다.
* 여러분들이 배운 내용을 정리해주세요. 학습효과가 더 커집니다.
* 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
=== 주요 수업 내용 ===
- 선언된 이후로부터 전역변수처럼 사용 가능하다.
* 전역변수를 왠만해선 사용하지 마라! 값을 원하지 않을 때 임의로 변경할 수 있다.
1. #define pi 3.141592를 이용하여 구의 겉넓이, 부피를 계산하고 출력하는 프로그램을 만드시오.(코드를 여기에 올려주세요)
강재곤 후기 : 변수에 대해 배웠다. 첫날이라 많은 내용을 배운게 아니라 부담은 없었다. 오버플로우가 일어나면 자료의손실이 일어나므로 조심해야 한다는 것을 알았다. 다음시간부턴 직접 실습을 해보고 싶다
=== 주요 수업 내용 ===
처리내용
- parenthesis(괄호)를 이용하여 우선순위를 부여할 수 있다. ex) if((x==2&&y==3)||z==4)
처리내용
처리내용
=== 주요 수업 내용 ===
- for를 while처럼 사용할 수도 있다.
* for를 사용하는 경우: 반복처리할 횟수가 명확할 때
* while을 사용하는 경우: 반복처리할 횟수가 명확하지 않을 때(특정 조건이 되어야 반복을 그만두게 할 때)
강재곤 : for 구문을 어떻게 사용해야하는지 알았고 직접 실습을 해봤다. 자신감이 생기는거같다
=== 주요 수업 내용 ===
* switch문의 사용 방법: case by case로 분류
- 위키설명회2005/PPT준비 . . . . 21 matches
주소 영역을 8bit 만 사용, 상위 8bit 은 00 으로 가정하고 addressing 을 하면
1994년 : 삼성전자 번들용 영어 교육 프로그램
일단 제로페이지에서 있는 자료를 중심으로 내용을 만들어 봤어요. 수정할 부분 있으면 적절히 해주세요. 그리고 금요일에 모이는 거 맞죠? -[윤성만]
- 한국에서는 노스모크가 최초로 실용적인 위키를 도입하였고, 한국에서 가장크고 세계에서 10번째 내외의 큰 위키입니다.
==== 용도 ====
신제용의 위키도입경험
용도 : 자산관리, 프로젝트 멤버 주소록, *공유팁, 프로젝트 세팅방법
위키를 이용하여 대립이 아닌 상생이 가능하다.
처음 온 사용자들에게 뒤로 버튼을 누르게 만드는 결정적 요인. 글씨만 빼곡히. 어려워 보인다.
=== 추가된 내용. ===
쓰레드 방식은 최근 올라온 순서대로 게시물을 보여주기 때문에 이전에 있었던 질 높은 게시물들은 사장되고 이러한 이유로 해서 게시물들 간의, 이용
* 그런데 디자인이 구립니다. 그점이 처음 온 사용자들에게 뒤로 버튼은 눌르게 만드는 결정적인 요인일수도 있습니다. 글씨만 빼곡히 ... 어려워보입니다. 더이상 쉬워지기 힘든데도 말이죠. 많은사람이 참여하지 않아서 그래서 위키의 사상,철학,이념,방식, 시스템이 널리 퍼지지 못하고 있지는 않을까 생각해봅니다
그래서, 최대한 참여가 보장되어 있지만, 이에 익숙하지 않은 이용자들은 참여를 주저하게 되는 역설적 상황이 존재한다.
==== 또 다른 사용용도 ====
공동 필기장. 학생들이 강의 때 들은 내용을 위키위키에 올리는 방법으로 지식을 공유하고, 교수가 학생들의 강의내용 이해 정도를 파악할 수 있다고 했다.
[대괄호이용]; url; [url]; [url label].
많은 사람들이 그냥 아무 생각없이 링크 달 수 있다는 편리함으로 SeeAlso의 사용에 유혹을 받지만 SeeAlso에 있는 링크는 [InformativeLink]여야 한다.
이번 위키설명회는 ZeroPage소개와 함께 이루어지며. 위키를 사용하는 간단한 실습자리도 마련되어 있습니다.
각 위키마다 언어습과이나 문화가 틀리고 사용법도 틀리고... 처음에는 쉽게 시작할지라도 조금만 깊히 알려고 들면 너무나 복잡해져버리 더군요.
- AcceleratedC++/Chapter6 . . . . 20 matches
* 근데 이것보다 더 일반적인, (즉 컨테이너에 독립적인) 방법이 있다. 컨테이너의 멤버함수를 이용하는 것이 아닌, 표준 알고리즘을 이용하는 것이다. 위의 것과 동일한 기능을 한다.
* Postfix와 Prefix : i++과 ++i의 차이점이다. ++i는 i를 사용하기 전에 값을 증가시키고, i++은 i를 사용한 후에 값을 증가시킨다.
* 5장에서는 string(i,j) 대신에, substr이라는 함수를 이용했었는데, 이번에 쓰지 않은 이유는 substr은 반복자를 인자로 받지 않기 떄문이다.
// find_if 함수의 테스팅에 이용되는 함수이다. char은 string 의 iterator의 값이다.
* 이 예제는 string STL을 이용해서 문자열을 검색하고, 우리에게 맞는 정보를 가공하는 것이 목적이다.
Chapter 4.2에서 제시된 중앙값을 이용한 방식으로 성적을 계산할 경우 악의적으로
1. 중앙값 대신 평균을 사용하며, 제출하지 않은 과제에는 0점을 주는 방식(6.2.3)
2. 실제로 제출한 과제에 대해서만 중앙값을 적용하는 방법(6.2.4)
3. 중앙값을 이용하여 평균을 이용(6.2.2)
2. 두 계산법을(위의1,2를 의미, 3도 포함해야할듯..@,.@) 각 그룹의 모든 학생들에게 각각 적용하고, 각 그룹의 중앙 값을 출력합니다.(6.2.2)
accumulate함수: 처음2개의 전달인자를 3번째 전달인자에 누적시킴(주의 0.0대신 0을 사용하면 정수로 인식 소수점 부분을 버려버림)
* 이함수를 사용하기 위해서는 <numeric>을 include 해줘야 한다.
5장에서 사용한 list를 사용하지 않고, vector를 그대로 사용하여 그와 비슷한 성능의 알고리즘
삭제를 하기 위해서는 다음과 같은 방식으로 컨테이너의 메소드를 이용해야한다.
따라서 상기와 같은 함수를 이용한 뒤에는 이전에 할당된 반복자가 유효하다고 보고 프로그램의 로직을 만들어서는 안된다.
- CleanCode . . . . 20 matches
* [http://dogfeet.github.io/progit/progit.ko.pdf git 사용과 관련된 pro git이라는 책의 한국어 번역본. 상당히 자세히 나와 있다고 하네요]
* 실제로는 쓰지 않는데 테스트를 위한 메소드를 추가하게 되는 경우가 있을 수 있지 않은가? -> java의 경우는 reflection을 사용하면 메소드의 추가 없이 처리가 가능한 경우도 있지만 그것보다도 테스트용 framework(mockito 등)를 사용하는것이 좋다.
* 함수 인자가 많아지게 되면 사용자가 인자들에 대해서 이해를 하기 힘들다.
* F : 주중에도 스터디를! 온라인 협업 툴을 이용할 수 있다.
* javascript를 이용한 비동기 http 요청.
* callback 함수라는 것을 이용해서 작업이 끝났을 때 처리할 방법을 정할 수 있다.
- : 말하는 내용을 완전히 이해하기가 힘들다.
* 생성과 사용을 분리했을 시의 장점
- 객체 사용 코드는 대개 application 레벨인 경우가 많은데, 객체 생성 방법이 바뀌어도 사용 부분은 그대로 유지할 수 있다.
- Factory를 사용하기 때문에 복잡한 객체의 생성이나 객체의 실제 모양을 숨길 수 있다.
* Java Proxies : 객체 생성 시에 proxy를 거치게 하는 방법을 통해 해당 객체의 메소드 호출시 다양한 부가 작업들(횡단 관심사)을 처리할 수 있다. 다만 사용이 복잡하고 사용시에도 아래의 방법들에 비해 제한이 좀 있다.
* 어떤 객체의 사용자에게 그 사용자한테 필요한 메소드만 있는 인터페이스를 제공하라.
* 자바스크립트에서 지원하는 apply 함수와 arguments로 함수의 인자값을 받아올 수 있는 것을 이용해 외부의 라이브러리 사용 없이도 간단하게 proxy를 구현할 수 있다. jquery-aop 등의 외부 라이브러리도 있다.
* 진경 8/24일자 wiki 내용 작성해줘서 고마워 - [서민관]
- Java Study2003/첫번째과제/노수민 . . . . 20 matches
* 기존의 프로그래밍 언어에 비해서 간단하며 배우기가 쉽고, 핸드폰에서, 대형 금융권 시스템에까지 그 활용범위가 무궁무진한 프로그래밍 언어이자 플랫폼
자바는 컴파일 시에 에러 검사를 철저하게 하고, 실행 시에 발생할 수 있는 에러에 대해서도 실행 시에 철저하게 검사를 수행함으로써 신뢰도가 높은 프로그램을 작성할 수 있도록 해 줍니다. 또한, C/C++ 프로그램 개발자들을 가장 혼란스럽게 하고, 프로그램의 치명적인 오류를 발생시킬 수 있는 포인터 및 포인터 연산을 자바에서는 사용하지 않게 함으로써, 포인터를 사용함으로써 프로그래머가 범할 수 있는 오류를 없앴다는 것입니다.
자바는 서로 다른 이종(Heterogeneous)의 네트워크 환경에서 분산 되어 실행될 수 있도록 설계되었습니다. 이와 같은 환경에서는 응용 프로그램들이 다양한 하드웨어 아키텍쳐 위에서 실행될 수 있어야만 합니다. 이를 위해 자바 컴파일러는 이종의 하드웨어 및 소프트웨어 플랫폼에서 효율적으로 코드를 전송하기 위해 설계된 아키텍쳐 중립적인 중간 코드인 바이트코드를 생성합니다. 이는 동일한 자바 프로그램의 자바 바이트코드가 자바 가상머신이 설치되어 있는 어떤 플랫폼에서도 실행될 수 있도록 하는 것입니다. 또한, 자바는 기본 언어 정의를 엄격하게 함으로써 효율적인 이식성을 제공해 주고 있습니다. 예를 들어, int 형과 같은 기본 데이터형의 크기를 플랫폼과 무관하게 일정하게 하고, 연산자의 기능을 확실하게 규정하고 있습니다. C 언어를 이용하여 int 형을 선언할 때, 도스에서는 16비트, 윈도우 95/98/NT 등 32비트 운영 체제 환경에서는 32비트, 유닉스에서는 32비트 등 그 플랫폼에 따라 크기가 다르지만, 자바에서는 플랫폼에 상관없이 32비트로 고정되도록 하였습니다. 이는 자바 프로그램이 실행되는 환경이 자바 가상머신으로 동일하기 때문입니다.
* 자바 Applat 에서 - 자바 Bytescode는 소스를 자바 컴파일러로 컴파일한 결과물로서 HTML 문서에 비해 크기가 매우 크며 웹 서버에서 브라우저로 전송되기까지가 많은 시간이 걸린다. 일단 전송된 애플릿은 브라우저가 수행시키므로 그 속도는 클라이언트의 시스템 환경과 브라우저가 내장하고 있는 JVM의 성능에 따라 좌우된다. 28.8K 정도의 모뎀 환경이라면 그럴듯한 애플릿을 다운 받아서 수행하는데는 많은 인내심이 필요하게 된다. 그러나, 점차 인터넷 통신 환경이 좋아지고 있으며 가정집을 제외한 대부분의 사무실과 학교 등에서는 전용 회선이 깔려 있고, 넉넉한 환경의 전용선이라면 애플릿을 구동하는데 무리가 없다. 근래에는 가정에서도 초고속 통신 환경을 싼 값에 구축할 수 있으므로 점차적으로 인터넷 환경에서 애플릿의 전송은 부담이 되지 않을 것이다. JVM도 기술적으로 많이 향상되었고, Sun뿐 아니라, IBM과 같은 매머드급 회사들이 뛰어들어 개발하고 있어 초기 지적받았던 JVM의 구동 속도는 점차 문제가 되지 않는 상황이다.
자바 가상머신은 자바 플랫폼의기반을 이루며, 다양한 하드웨어기반 플랫폼에서 사용될 수 있다. (다시 말해서, 자바 가상머신은 윈도우 95/98/NT, 유닉스, 또는 매킨토시 등과 같은 기존의 운영체제 또는 인터넷 익스플로러와 넷스케이프 등과 같은 웹 브라우저 등, 여러 가지 플랫폼에 설치되어 사용될 수 있다)
사용자는 자바 바이트코드로 컴파일된 자바 프로그램을 실행시키기 위해서 이 자바 가상머신을 이용하면 된다.
* 앞에서 나온 듯이 어떤 환경에서든지 사용할 수 있다.
* 자바 언어를 이용하여 작성할 수 있는 자바 프로그램의 종류를 살펴보면 다음과 같다.
JDK와 함께 제공되는 자바 가상머신에 의해 독립적으로 실행될 수 있도록 작성된 자바 프로그램입니다. 다시 말해서, 여러분의 컴퓨터에서 윈도우의 도스창 또는 유닉스 쉘 등과 같은 쉘에서 자바 가상머신을 이용하여 실행시키는 자바 프로그램입니다. 위에 나오는 그림은 자바 애플리케이션의 실행 과정을 자세히 보여주고 있습니다.
<APPLET>~</APPLET> 태그를 이용하여 HTML 페이지 내에 포함되어, 자바 호환 웹 브라우저에 의해서 실행되도록 작성된 자바 프로그램입니다. 다시 말해서, 여러분의 홈 페이지 내에 삽입되어 자바 호환 웹 브라우저에 의해 실행되도록 규약에 맞추어 작성된 자바 프로그램을 말하는 것입니다. 다음에 나오는 그림은 자바 애플릿의 실행 과정을 자세히 보여주고 있습니다.
델파이 또는 비주얼 베이직을 이용하여 프로그램을 작성할 때, 버튼이나 창과 같은 컨트롤들을 마우스로 끌어다 프로그램 내에 삽입할 수 있도록 되어 있는데, 이와 마찬가지로 자바 빈은 하나의 완벽한 기능을 갖고 재사용될 수 있도록 만들어진 소프트웨어 컴포넌트입니다. 마이크로소프트에서 제공되는 ActiveX 컴포넌트와 같이 자바에서 컴포넌트 프로그램을 가능하도록 해 줍니다.
다른 자바 프로그램에 의해 삽입(import)되어 사용될 수 있도록 작성된 자바 프로그램입니다. 이러한 자바 패키지는 기존의 프로그래밍 언어에서 사용하던 라이브러리 또는 운영체제에서 제공해 주는 API 등과 같다고 볼 수 있습니다. 자바 패키지 역시 해당 규약을 갖겠지요. 자바에서는 기본적으로 압축 파일의 형태로 'casses.zip"이라는 자바 패키지가 제공되고 있고, 압축 파일 내에는 디렉토리 단위로 패키지가 포함되어 있다.
자바는 처음에는 가전 제품에서 단순하게 사용되다가 플랫폼 독립적인 기능이 인터넷의 기능과 조화를 이룬다는 점을 밝혀져 1995년 썬 마이크로시스템즈(Sun Microsystems)에서 "자바(Java) 언어"를 와 "핫자바(HotJava)"를 발표하면서 세상에 나오기 시작했다. "핫자바(HotJava)"는 자바 언어로 만든 웹브라우저를 말한다. 바로 JDK(Java Developers Kit) 1.0.x버전을 발표하면서 본격적인 자바 개발환경이 지원되기 시작된다. 그리고 Netscape와 라이센스 계약을 통해 Netsacpe 브라우저에서 자바가 시행됨으로서 전 세계로 자바가 확산된다.
- STLErrorDecryptor . . . . 20 matches
본 문서는 [http://www.kwak101.pe.kr/kwak101/works/InternData/STLDecryptor_QuickGuide.html QuickInstallation For STLErrorDecryptor] 의 '''내용을 백업하기 위한 목적'''으로 만든 페이지입니다. 따라서 원 홈페이지의 자료가 사라지지 않은 이상 가능하면 원 홈페이지에서 글을 읽으셨으면 합니다.
이하 원 홈페이지의 내용과 동일한 내용르 위키의 문법으로 재구성한 것 입니다.
역시, 잘 아시겠지만, 본 문서는 읽으시는 분께서 Visual C++ 개발 환경과 C++ 사용에 불편해하지 않고 탐색기 화면을 두려워하지 않는다는 가정 하에 작성했고, 윈도우 환경을 최대한 사용하는 쪽으로 작성하였습니다. :)
가) 여느 개발도구와 마찬가지로 VC의 IDE는 그 자체에 빌드용 장치(컴파일러와 링커)를 내장하고 있지 않고, 외부에 있는 컴파일러와 링커를 실행해서 프로그램을 빌드합니다. 컴파일러와 링커의 출력 결과는 실제로 콘솔로 빠져 나오는 출력이지만, 네임드 파이프(named pipe)란 것을 통해 VC의 IDE로 다시 들어가 '''출력(output)''' 윈도우에 디스플레이되는 것입니다.
컴파일을 맡은 프로그램은 CL.EXE란 것인데, 이 프로그램은 C/C++컴파일러(C2.DLL+C1XX.DLL)를 내부적으로 실행시키는 프론트엔드의 역할만을 맡습니다. VC IDE는 컴파일시 이 프로그램을 사용하도록 내정되어 있습니다.
* 펄 스크립트 인터프리터(PERL.EXE)가 사용 가능함
* 해독기 패키지에 포함된 에러 필터 스크립트(STLfilt.pl)가 사용가능 함
* STL 에러 해독기 패키지 (Win32용) : STLfilt.zip이란 이름을 가지고 있습니다 (http://ww.bdsoft.com/tools/stlfilt.html)
* 펄 스크립트 인터프리터(Win32용) : 여기서는 ActivePerl을 사용합니다. (http://ww.activestate.coml)
* MSVCP60.DLL : STL 에러 해독기의 컨트롤러가 사용하는 DLL입니다 (옵션).
* CL.EXE : VC에서 사용하는 원래의 CL.EXE를 대신할 프록시 CL.
가) Visual C++가 설치된 디렉토리로 이동하고, 여기서 \bin 디렉토리까지 찾아 들어갑니다. (제 경우에는 D:\Program Files2\Microsoft Visual Studio .NET\Vc7\bin입니다.) 제대로 갔으면, 원래의 CL을 백업용으로 모셔다 놓을 폴더를 하나 만듭니다. (제 경우에는 '''native_cl'''이란 이름으로 만들었습니다.) 그리고 나서 CL.EXE를 그 폴더에 복사해 둡니다.
''참고) 대화 상자의 상단을 보면 "CL.EXE를 CL.STL로 복사했다"란 메시지가 보이는데, 이는 프록시 CL도 백업용으로 하나 복사해 둔다는 뜻이니 괘념치 않아도 됩니다. ''
여기서 "Enable Filtering"을 선택하면 그때부터 STL 에러 필터링이 가능해집니다. 그리고, 앞으로 STL 에러 필터링을 활성화하거나 비활성화할 때에는 이 태스크바의 아이콘을 사용하면 됩니다(Enable filtering/Disable filtering을 선택하면 되겠죠). 필터링이 활성화 되어 있느냐 그렇지 않으냐의 여부는 작업 표시줄의 아이콘 색깔( Upload:STLTaskActIcon.gif 은 활성화되었다는 뜻)로 확인할 수 있습니다.
''참고) VC++.NET을 사용하시는 분의 경우엔 컴파일 전에 반드시 /WL 옵션을 주어야 합니다. /WL 옵션은 모든 에러 및 경고 메시지를 한 줄로 표시해 주는 옵션입니다. VC++.NET은 소스 코드 한 줄에 대한 에러 메시지를 여러 줄에 걸쳐(\n문자를 끼워넣어서) 표시하는데, 에러 필터링 스크립트는 에러 메시지가 한 줄로 되어 있을 때 재대로 동작하기 때문입니다. 아래와 같이 프로젝트 속성 페이지에서 [C/C++]의 [명령줄] 항목을 선택한 후 /WL 옵션을 추가합시다.''
적용 플랫폼 : Win32 / VC++ 6 & VC++.NET
작성/저작자: 곽용재 (kwak101@hitel.net)
- UbuntuLinux . . . . 20 matches
우분투 리눅스 시디를 얻게 되어서 남는 하드디스크 하나에 설치해 보았는데, 버벅이는 윈2000 꼴이 보기 싫기도 했거니와 이번 기회를 계기로 리눅스를 사용해 보자는 생각이 들었다.
설치 후 첫째 난관은 인터넷을 사용하는 것이다. (이정도 쯤이야) 마우스 클릭 몇 방에 해결되었다. DHCP가 알아서 아이피를 잡아줬다. 윈도우랑 다를 게 없다.
그럼 그전에 먼저 홈 네트워크를 구축해보자. 원래 내 컴퓨터는 서버로 사용중이었다. 집안 네트워크를 맘대로 끊어버렸어나 특한 요구가 없으므로 아무런 핍박없이 네트워크 작업을 할 수 있겠지. 우선은 구글에 검색해보고 ( 검색 먼저, 삽질은 나중에 )
다음 목표는 이전에 사용하던 윈2000을 멀티부팅하기. 사실 리눅스만 쓰고 싶은 마음이 간절하지만 각종 윈도우 전용 프로그램을 사용하던 과거를 한 순간에 지워버리지는 못하거든.
우분투는 부트로더로 grub이란 녀석을 사용한다. 원래는 GNU에서 쓰는 건데 좋길래 리눅스에도 사용하는 추세라는 글을 웹을 탐험하던 중에 읽었다. 아하 그렇군요. 그럼 grub을 사용해서 윈도우를 부팅하면 되겠네요.
물리적 하드 두개에 리눅스와 윈도우가 따로 설치된 상황이라서( 둘은 서로를 모른다.) 사실 안 되는 게 아닐까 걱정도 했다. 웹을 찾아보니 윈도우나 리눅스를 먼저 설치한 뒤 다른 하나를 설치한 경우가 대세였다. 태반은 하드 하나를 파티션을 나누는 방법으로( 굉장한 노력인듯.;; 하드가 두개 있어 아무런 걱정없이 리눅스를 다르는 하드에 설치한 나는 행운인가.;;;) 두 운영체제를 골라서 사용하는 방법을 설명하고 있었다.
이 명령을 이용한다. 제길 이거만 알았어도 eth0이 왜 안잡히냐고 삽질할 필요도 없었을 텐데.. 알고보니 eth2에 잡혀있는 것이 아닌가!
그런 뒤에야 이제 맨날 들날날락했던 /etc/network/interfaces 안에 내용을 고치고 다시 네트워크를 시작했더니 ㅇ이제 되는구나...
방법은 서버에서 서브도메인을 나눠주는 것이 좋겠는데, 아직 이건 잘 모르겠고 Samba를 통해 공유 폴더를 이용하는 수준까지 이르렀다. [http://us4.samba.org/samba/docs/man/Samba-HOWTO-Collection/FastStart.html#anon-example 따라하기]
= [http://kldp.org/node/28476 하드디스크 하나를 이용해 멀티부팅] =
= MS 인터넷 익스플로러 사용하기 =
= HP 프린터 사용하기 =
LAN이 연결된 공용 프린터를 사용하는 경우 HP Jet Direct를 이용하면 손쉽게 프린터를 잡을 수 있다.
= 듀얼 모니터 사용하기 =
- WIBRO . . . . 20 matches
이게 상용화 된다면 우리에게 어떠한 변화가 올까??
2.3GHz 주파수를 사용하는 초고속 휴대 인터넷을 지칭하는 말입니다.
기존 무선랜은 이동성이나, 중계점에서 멀어지면 이용이 불가능한 단점이 있음.
휴대폰이용료 + 가정인터넷 + 와이브로 가정에 너무 큰 부담이 되므로 휴대폰에 결합하지 않을까라는 생각을 하게 만든다.
하지만 상용화 6년후 추정이용자 90만명이라면 말도 안돼는 가정이다.
*일본애들이 휴대폰으로 인터넷을 하는 이유는 i-mode(전화 채널 중 한 채널을 데이터통신용으로 사용)라는 일본 기술을 을 사용하기 때문이죠. 가격은 싸지만 느리답니다.(데이터통신시간에 배움)--[강희경]
* 와이브로 서비스가 성공적으로 상용화 된다면 070 인터넷 전화 단말기가 엄청나게 쏟아져 나올 가능성이 큽니다. 즉 현재의 휴대전화기와 비슷한 서비스이지만 이 단말기들은 PC또는 PDA에 달면 마치 무선 랜카드처럼 작동한다는 점이 눈에 띄는 기존 휴대전화와의 차이라고 보시면 됩니다.
== 상용화시 생활의 변화 ==
몇가지 사용화의 걸림돌을 넘고 나면
* 지금의 휴대폰, PDA, 노트북을 이용하거나 전용단말기가 나와서 대략 900만명(KISDI 및 사업자 예상 가입자수)정도가 가지고 다니게 될겁니다
== 상용화 걸림돌 ==
상용화 계획이 있으니 상용화는 되겠지만, 잠깐 반짝했다가 사장이 될지(예, CT-2, WCDMA), 활성화가 되어서 국가적으로 위상이 높아질지(예, CDMA, 초고속인터넷)는 장담하지 못합니다.
테스트가 거의 끝났고 2006년(1년 여 남았음) 초, 중을 목표로 준비중. 2005년 중반부터 중계기를 설치하기 시작하고 2006년 상용화
와이브로는 휴대전화로부터, 와이맥스는 무선랜으로부터 서로의 영역으로 진보하려는 기술들로서, 와이브로는 한국 정부와 휴대전화 회사들이가 주도하여 개발되고 있고, 와이맥스는 여러개의 다국적 통신장비 기업 (인텔이 포함되어 있음이 특이함)이 주도적으로 개발하고 있습니다. 와이브로와 와이맥스는 특성이 많이 비슷하지만 도달 거리와 속도 면에서는 와이맥스가 훨씬 우위에 있습니다. (와이브로는 약 5-6km 거리에서 1Mbps정도, 와이맥스는 30Km 정도의 거리에서 50Mbps 정도) 그러나 와이브로는 와이맥스에 고려되지 않은 이동시의 통신(약 60km/s 정도의 이동속도) 과 이동통신회사 발상답게 과금체계를 가지고 있고, 상용화 예정 시기도 2006년으로 2007-8년경 시제품이 나올 와이맥스보다 훨씬 빨리 적용될 수 있다는 장점이 있습니다. 그리고 이미 통신 기술 자체의 개발은 끝나 있는 상황인데 비해 와이맥스는 통신기술이 아직 검증되지는 않고 이론적인 수준에 머물러 있습니다.
- 새싹교실/2012/우리반 . . . . 20 matches
* 반드시 ZeroWiki에 작성해주세요. 하위 페이지를 만드는 것도 허용합니다.
* 여러분들이 배운 내용을 정리해주세요. 학습효과가 더 커집니다.
* 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
=== 수업 내용 ===
* 위키사용하는 방법
=== 수업내용 ===
* printf를 사용하는 방법, %d란 무엇인가.
=== 수업 내용 ===
1.이번시간 배운 내용(자료형, %d, %c, 절차지향, if-else, scanf, printf, else if, ==, =, +=,>)을 글로 써서 정리해봅시다. 괄호안에 있는 단어들을 이용해서 써봐요. 각각의 단어들의 뜻을 나열해도 좋고, 수업시간에 한 것을 생각해가며 이러이러한 것은 주의해야한다 라는 형태로 줄글로 써도 좋아요. 단순히 정의만 쓰더라도 A4 반페이지는 될거같네요~.
2-1.switch, case문을 이용해서 이번시간에 짰던 프로그램을 새로 짜 보도록 합니다.(키에 관한 프로그램)
=== 수업 내용 ===
}}} 스위치를 이용한 키 확인
* 윤화, 도현이 과제 : 해당 출력물을 while혹은 for문을 이중으로 이용해서 짜오기.
=== 수업 내용 ===
=== 수업 내용 ===
=== 수업 내용 ===
=== 수업 내용 ===
=== 수업 내용 ===
* 저번 시간이랑 이번 시간 두 번에 걸쳐서 포인터에 관한 내용을 배웠는데 코드를 보면 그 당시에는 이해하는데, 다시 직접 해보려니 헷갈린다ㅜㅜ 혼자서 많이 연습해봐야 할 것 같다. 또 동적 할당에 대해서도 배웠는데, 배열과 비슷해서 이해하기 좋았다. 마지막 수업이라 뭔가 아쉽지만.. 한 학기동안 잘 가르쳐주셔서 C 수업 따라갈 수 있었던 것 같다 ^ㅡ^ -[미경]
- 위키QnA . . . . 20 matches
문두 삽입방식을 사용합니다. 최신내용은 앞쪽에 써주세요.
A : "도구->인터넷옵션->개인정보->편집" 눌러서 zp.cse.cau.ac.kr 허용으로 해주면 됩니다. --구근 [[BR]]
A : InterWiki 라고 합니다. InterWiki 에 등록된 다른 위키의 페이지를 링크 걸때 사용합니다. 위키간 이름공간을 연결해주는 유용한 매크로. ^^; InterWiki 에 가보시면 현재 등록된 다른 위키페이지들을 알 수 있습니다.~
* 반대로 Semi Project의 Regular Project로의 선택은 막습니다. 이것이 허용되면 구분의 의미가 없겠죠?
난 지금이 딱좋은데 더 확장되면 골치 아플껏 같고.. 혹은 사용용도가 ZeroWiki 와 합쳐 져야 한다고도 생각. project의 직접 접근성을 없애는건 반대이고 Starting Point에 사용용도를 링크하는 것이 최적이라고 생각 --상민
FrontPage가 현재 하고 있는일이 (보여주고 있는 것) ZeroWiki 정의, 사용용도, Starting Point (여기에는 프로젝트 열거도 포함), 제안이야. 이중에서 사용용도와 제안은 새 페이지로 빼는 것이 좋을 것 같은데. 그리고 프로젝트 열거 밑에 Starting Point 밑에 두는 것도 생각. 그리고 또하나는 현재 이 프로젝트 관련 글을 Q&A가 아닌 제안페이지에 두는것이 더 좋겠다는 것. 현재 우선적인 직접접근성을 제공받아야 할 것은 project니까. 그에 대해서는 나도 별 이견 없음. --석천
Q: 현재 Ant 페이지를 작성하고 있는데 Glossary 부분을 만들었고 같은 페이지 내에서 내부링크를 통해 Glossary 내용을 볼 수 있었으면 하는데 이것은 위키에서 할 수 없는지... 답변 바랍니다. ^^
A: {{{~cpp [[TableOfContents]] }}} 매크로를 사용해보시는 건 어떨까요? 소제목들에 대한 내부링크를 만들어줍니다. 링크의 기준은 === ===, == == 등으로 묶인 헤더태그들 기준입니다.
Q: Bioinformatics에 관한 프로젝트를 진행하려고 합니다. 소개와 내용의 재정리를 위해서는 많은 이미지 파일들을 위키에 올려야 될지도 모르겠는데, 위키에서의 이미지 사용은 그렇게 적절하지 않은 것 같습니다. 어떤 방식으로 이를 해결할 수 있을까요?
A: 다음 위키의 업그레이드시에 해당 문제의 해결 방법이 제시 됩니다. 지금 올리시면 차후에는 권력을 이용해서 특정인에게 노가다 시키시면 됩니다.
A: Use bookmark. (see also NoSmok:북마크사용법 )
- 정모/2011.4.4 . . . . 20 matches
* 지난주에 진행한 프로젝트, 스터디, 새싹 교실 혹은 수업 내용 중 어려운 점에 대해 질문하고 ZeroPager들이 답변해주는 시간.
* 튜터링 수업은 정규 수업 진도를 꼭 따라갈 필요는 없을 듯 합니다. 작년에 튜터링 수업을 들었던 경험상, 튜터 선배님이 다들 1년동안 배운 C, C++과 공통된 문법은 넘어가고 클래스부터 설명을 하였습니다. 그리고 수업 외에 이때 내가 알았으면 좋았을거다! 싶다 생각한 것을 가르쳐 주셨습니다. map, set에 대한 간단한 설명이나, UML 사용법에 관한 프린트를 뽑아와 알아두면 좋다 하시기도 하고, MVC에 대해 예시를 들어 설명하시기도 하고, 인터페이스를 저그, 프로토스, 테란의 공통된 기능을 묶어 설명하기도 하고... 열심히 연습하며 따라가면 좋았을텐데 저의 성찰일지는 늘 공부를 했어야 했는데...로 끝났다는 게 미스지만요ㅠㅠ([강소현])
* 뭐하러 그렇게 열심히 하나? 그냥 날로 먹어도 좋은 것 같다. 굳이 열심히 하고 싶다면 수업에 얽매이지 말고 가르치고 싶은 것을 가르쳐라. 가령 수업중엔 배울 수 없는 이클립스 or 넷빈즈 사용법이라던가.([김수경])
== 캡스톤 설계실 사용 안내 ==
* 도와줘요 ZeroPage에서 무언가 영감을 받았습니다. 다음 새싹 때 이를 활용하여 설명을 해야겠습니다. OMS를 보며 SE시간에 배웠던 waterfall, 애자일, TDD 등을 되집어보는 시간이 되어 좋았습니다. 그리고 팀플을 할 때 완벽하게 이뤄졌던 예로 창설을 들었었는데, 다시 생각해보니 아니라는 걸 깨달았어요. 한명은 새로운 방식으로 하는 걸 좋아해서 교수님이 언뜻 알려주신 C언어 비슷한 언어를 사용해 혼자 따로 하고, 한명은 놀고, 저랑 다른 팀원은 기존 방식인 그림 아이콘을 사용해서 작업했었습니다 ㄷㄷ 그리고, 기존 방식과 새로운 방식 중 잘 돌아가는 방식을 사용했던 기억이.. 완성도가 높았던 다른 교양 발표 팀플은 한 선배가 중심이 되서 PPT를 만들고, 나머지들은 자료와 사진을 모아서 드렸던 기억이.. 으으.. 제대로 된 팀플을 한 기억이 없네요 ㅠㅠ 코드레이스는 페어로 진행했는데, 자바는 이클립스가 없다고 해서, C언어를 선택했습니다. 도구에 의존하던 폐해가 이렇게..ㅠㅠ 진도가 느려서 망한줄 알았는데, 막판에 현이의 아이디어가 돋보였어요. 메인함수는 급할 때 모든 것을 포용해주나 봅니다 ㄷㄷㄷ 제가 잘 몰라서 파트너가 고생이 많았습니다. 미안ㅠㅠ [http://en.wikipedia.org/wiki/Professor_Layton 레이튼 교수]가 실제로 게임으로 있었군요!! 철자를 다 틀렸네, R이 아니었어 ㅠㅠ- [강소현]
1. 작년에 프로젝트를 진행하면서 Agile 프로세스를 도입하고 싶었는데 생소한 개념에 대해 생소한 용어로 설명하다 팀원들의 관심을 얻지 못한 경험이 있습니다. 그래서 OMS를 준비하며 Agile이라는 말도 하지 말고 Agile을 소개해보자!! 하는 생각에 '더 나은 프로젝트 만들기'라고 주제를 잡았습니다. 용어를 하나도 사용하지 않으려다보니 이번엔 너무 붕 뜨게 설명하게 된 것이 아쉬운 점입니다. 제가 Agile에 대해 정말 잘 안다면 어떠한 용어를 사용하지 않고도 쉽게 설명할 수 있었을텐데 그렇지 못한 것이 안타깝네요.
1. 다음번엔 TDD로 CodeRace를 진행해보자는 의견이 있었습니다. 정말 좋은 의견인데 대책없이 적용시킬수는 없겠다는 생각이 드네요. 하지만 굉장히 매력적인 의견이었습니다. 여름방학이나 2학기때 Test-driven CodeRace를 꼭 해보고 싶네요.
1. 그리고 이건 별도로 하는 말이지만 저는 시도때도 없이 공격적인 사람은 아닙니다. 어제의 경우 저의 잘못이 없는 상태에서(종이에는 분명 사용 전 제출이라고 적혀있었지 사용 몇일 전에 제출하라는 말은 없었습니다.) 아저씨께서 먼저 비꼬듯이 말씀하셨습니다. 아마 아저씨께서 비꼬지 않고 다음부터는 일찍 가져다달라고만 하셨으면 저도 웃으면서 다음부턴 그렇게 하겠노라고 말씀드렸을 것입니다.
* 음, 이번에 강의실 대여 논의때 "내가 너무 돈을 밝히는 듯한 언행을 해 오진 않았는지"를 생각해볼 수 있었습니다. 답은 "YES"고요....... 자중해야겠습니다. TDD의 경우는, 제가 평소 뭔가를 만들 때(특히 OOPHP Application) 흔히 사용하던 방식이라(클래스를 만들고 밑에 작동 코드를 적은 다음 브라우저로 확인) 조금만 더 노력하면 다른 곳에서도 사용할 수 있을 것 같습니다. 페어 프로그래밍은...... 소현 누님. 결코 누님의 탓이 아닙니다....... <( ºДº)> - [황현]
* 홀럽 온 패턴스에 셀룰러 오토마타라는 패턴이 있네요. 공부하고 적용해봐야겠뜸 - [서지혜]
- 제13회 한국게임컨퍼런스 후기 . . . . 20 matches
|| 시간 || 강의 내용 || 스피커 || 비고 ||
|| 09:20 – 10:20 || 하복비전엔진을 이용한 MMO게임 개발 || 강경덕(팀버게임즈) || Graphic ||
|| 11:40 – 12:40 || 빠른 게임개발을 위한 Autodesk®3ds Max® 활용 팁 || 김일혁(오토데스크 코리아) || Graphic ||
===== 내용 =====
* 세 번째 세션 Autodesk는 자신의 툴을 어떻게 사용하는지에 관한 이야기가 주였다. 이건 익숙해 지는 것이 관건인 듯..
* 점심을 먹고 키노트를 들었는데, 처음 키 노트는 장황하게 이야기를 했다만 결국 ‘한국 시장 좋음 ㅋ’ 이 이야기... 쩝.. 그리고 두 번째 키노트는 가상현실로 주목을 받고 있는 Oculus였다. 보다 실감나는 가상현실을 만들기 위해 무엇을 해야 하는지, 왜 이것을 해야 하는지에 대한 내용이었다. 결국 ‘보다 실감나게 게임을 하려면 가상현실을 해야함 ㅇㅇ’ 이 내용..
* 마지막 물리기반 렌더링.. 기대하고 들어갔으나 ‘아티스트 전용임 ㅇㅇ’ 이러는 바람에 ‘아 내가 길을 잘못 들었구나’라는 생각으로 그냥 멍 하니 들었..
|| 시간 || 강의 내용 || 스피커 || 비고 ||
|| 09:20 – 10:20 || 언리얼을 이용한 모바일게임 그래픽 제작 노하우 || 장학준(DAEgames) || Graphic ||
|| 11:40 – 12:40 || 게임용 다이나믹 오디오 믹싱 – 쌍방향 사운드 믹싱 전략 || Jacques Deveau(Audiokinetic) || Audio ||
===== 내용 =====
* 3일차에는 1일차에 그래픽 부분을 들으면서 프로그래밍과 큰 연관성을 찾지 못한 까닭에 프로그래밍 위주로 찾아 다니기로 했다. 하지만, 원래 들으려고 했던 ‘좋은 게임을 최고로 만들어 주는 요소 분석’ 파트를 들으려 했으나 갑자기 잠수를 타 버리는 바람에 급하게 언리얼 엔진 주제 쪽으로 넘어갔다. 모바일 게임과 관련한 이야기를 하면서 온라인 게임과는 비용, 기간 등 많은 차이가 발생하는 것에 대해서 이야기 했다. 그러면서 아티스트들은 제발 쓸데없는 자존심 버리고 게임이 잘 돌아가게 해 달라는 요구를 하시던.. 하기야 콘솔 게임 정도 되어야 그래픽에 많은 부분 신경 쓸 수 있겠다만 모바일은 화면도 작고 하니.. 라는 생각이 들었다. 결국 메모리를 줄이기 위해 Object를 나누어 Module 사용을 해라는 이야기로 마무리 지어졌다.
* 두 번째 들은 세션은 자기 회사의 프로그램? API를 이용해 서버를 만들고 채팅을 하고 뭐 이런 이야기를 예시를 통해 보여주었다. 그냥 가져다 쓰면 되요 라는 말과 함께 이것 저것 예시를 보여주었는데, 결국 자기 회사 홍보였다.
* 세 번째 세션은 또 음악의 세계로... 역시나 자기네 회사 프로그램을 사용하면 사운드 효과를 다양하게 낼 수 있다는 것에 대해서 이야기 해 주었다. 뭐 Chaining 관계를 이용한 소리의 조합이라나 뭐라나..
* 그 다음 키노트는 ‘다양한 사람들에게서 설문조사를 반영해 자신들은 더 좋은 게임을 만들어 나가고 있어요~’ (리얼리?) 뭐 계속 그런 내용..
* 마지막 세션은 NVDIA와 Visual Studio를 연계해서 디버깅하는 것에 관해 이야기를 했는데.. 보여주면서 하긴 했는데 뭔 내용이 이렇게 지루한지..; 전반적인 NVIDA 소개와 필터 버그 등 버그가 발생하였을 때 픽셀 히스토리 기능으로 추적해서 셰이더 편집기능으로 수정하는 등 버그를 어떻게 고치는지, 툴은 어떻게 사용하는지에 대한 이야기가 주였다.
- 코바용어정리 . . . . 20 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에 의해 제공되는 서비스를 이용하는 주된 방법은 객체 어댑터를 통하는 것이다. 객체 어댑터는 CORBA 라이브러리인데 ORB 코어 통신 서비스의 맨 위쪽에 위치하고 있으며 서버 객체를 대신하여 리퀘스트를 받아들인다. 객체 어댑터는 서버 객체를 인스턴스화하기 위한 실행 환경을 제공한다. 즉, 서버 객체에 리퀘스트를 전달하며 객체 ID를 부여하는 등의 작업을 하게 된다는 것이다. 또한, 객체 어댑터는 구현 저장소에 어댑터가 지원하는 클래스와 런타임 인스턴스를 등록한다. CORBA에서는 각 ORB가 기본 객체 어댑터(BOA)라 불리는 표준 어댑터를 지원하도록 규정한다. 하나의 서버가 여러 개의 객체 어댑터를 지원할 수 있다.
객체 어댑터를 통하여 ORB가 제공하는 서비스에는 흔히 객체 레퍼런스의 생성과 해석, 메소드 구현, 보안과 상호 작용, 구현 객체의 활성화/비활성화, 구현으로의 객체 레퍼런스 맵핑, 그리고 구현 객체의 등록 기능 등이 포함된다. 객체 어댑터를 통하게 되면, ORB에서 비슷한 요구 사항을 가진 특정 그룹의 구현 객체만을 한정하여 다루는 것이 가능해진다.
각각의 언어 매핑에 대해(아마도 객체 어댑터에의 의존하게 되겠지만) 각각의 타입의 객체를 구현하도록 해주는 메소드에 대한 인터페이스가 존재할 것이다. 이 인터페이스는 일반적으로 업콜(up-call) 인터페이스일 것이다. 구현 객체의 개발자는 그 인터페이스에 따라 루틴을 작성하게 되고 ORB는 스켈레톤을 통해서 그 루틴을 호출하게 될 것이다. 그러나 스켈레톤의 존재가 그에 사응하는 클라이언트 스텁의 조재를 의미하지는 않는다는 것이다. 이말은 클라이언트가 DII를 통해서 리퀘스트를 만들 수도 있다는 것이다. 또한, 어떤 언어 맵핑은 스켈레톤을 사용하지 않는데, 이것은 Smalltalk에시는 대체적으로 맞는 말이다.
동적 스켈레톤 인터페이스는 IDL에 기초하지 않는 스켈레톤/스텁을 가진 객체의 메소드 호출을 처리해야 하는 서버에 대해 런타임 바인딩 메커니즘을 제공한다. 동적 스켈레톤은 수신된 메시지의 파라미터값을 참조하여 어떤 객체가 호출되었는지 어떤 메소드가 호출되었는지를 알게 된다. 이것은 일반적으로 컴파일된 스켈레톤을 사용하는 것과는 비교되는데 이러한 스켈레톤에서는 메소드의 구현이 IDL로 정의된다. 구현 코드는 모든 오퍼레이션 파라미터에 대한 상세한 설명을 ORB에 제공해야 하며, ORB는 오퍼레이션을 수행할 때 사용되는 입력 파라미터값을 제공한다. 오퍼레이션이 수행된 후, 구현 코드는 출력 파라미터 또는 익셉션을 ORB에게 넘겨준다. 동적 스켈레톤 인터페이스의 특성은 프로그래밍 언어 맵핑에 따라 또는 객체 어댑터에 따라 실질적으로 달라질 수 있지만, 일반적으로는 업콜 인터페이스이다. 동적 스켈레톤은 클라이언트 스텁 또는 DII를 통해서 호출될 수 있다. 이 두 가지 방식의 클라이너트 리퀘스트 생성 인터페이스는 동일한 결과를 제공한다.
ORB 인터페이스는 애플리케이션에 중요한 지역 서비스에 대한 API들로 구성되어 있지 않다. 이것은 곧바로 ORB로 가는 인터페이스이고 모든 ORB들에 대해 동일하다.ORB 인터페이스는 객체 어댑터 또는 객체 인터페이스에 의존하지 않는다. 대부분의 ORB의 기능이 객체 어댑터, 스텁, 스켈레톤 또는 동적 호출 등을 통해서 제공되므로 몇몇 오퍼레이션만이 모든 객체들에 대해 공통이다. 공통 오퍼레이션에는 get_interface와 get_implementation 같은 함수가 포함되어 있는데, 이것들은 임의의 객체 레퍼런스에 작용하며 각각 인터페이스 저장소 객체와 구현 저장소 객체를 얻는 데 사용된다.
- 회원자격 . . . . 20 matches
4. 운영진이 정기적으로 게시판을 확인한 후 신청 내용에 따라 등급을 조정해드립니다.
4. 운영진이 정기적으로 게시판을 확인한 후 신청 내용에 따라 등급을 조정해드립니다.
5. 운영진이 정기적으로 게시판을 확인한 후 신청 내용에 따라 등급을 조정해드립니다.
5. 운영진이 정기적으로 게시판을 확인한 후 신청 내용에 따라 등급을 조정해드립니다.
\회원 등급 변경 및 신규 가입은 공식 홈페이지(zeropage.org)의 '인사게시판'을 이용
가입조건: 아래 1,2,3중에 하나를 만족하고 이 내용을 개인 위키페이지에 기록한 자
휴면회원의 신청은 공식 홈페이지(zeropage.org)의 '휴면신청게시판'을 이용
* '''회원 등급 변경 및 신규 가입은 공식 홈페이지(zeropage.org)의 '인사게시판'을 이용'''
* 가입조건: 아래 1,2,3중에 '''하나'''를 만족하고 이 내용을 개인 위키페이지에 기록한 자
* 휴면회원의 신청은 공식 홈페이지(zeropage.org)의 '휴면신청게시판'을 이용
* '''회원 등급 변경 및 신규 가입은 공식 홈페이지(zeropage.org)의 '인사게시판'을 이용'''
* 가입조건: 아래 1,2,3중에 '''하나'''를 만족하고 이 내용을 개인 위키페이지에 기록한 자
* 휴면회원의 신청은 공식 홈페이지(zeropage.org)의 '휴면신청게시판'을 이용
* '''회원 등급 변경 및 신규 가입은 공식 홈페이지(zeropage.org)의 '인사게시판'을 이용'''
* 가입조건: 아래 1,2,3중에 하나를 만족하고 이 내용을 개인 위키페이지에 기록한 자
* 휴면회원의 신청은 공식 홈페이지(zeropage.org)의 '휴면신청게시판'을 이용
* 회원 등급 변경 및 신규 가입은 공식 홈페이지(zeropage.org)의 '인사게시판'을 이용
* 회원 등급 변경 및 신규 가입은 공식 홈페이지의 '인사게시판'을 이용해야 함.
* ["상협"]:위키에 출석표를 만들어서 정모때 사전, 사후 연락 없이 나오지 않을 경우 경고 몇번 하고, 본인의 의사에 따라 자퇴시키는게 어떨까요? 연락 없이 나오지 않는다는 말은 그 만큼 학회에 관심이 없다는 것을 반증하는 예라고 볼 수 있다고 생각되거든요.(이것은 유령 회원이 생길 가능성이 있는 01이나 앞으로의 02에 해당되는 내용일듯 하네요..) -상협
제로페이지의 회원이기 위한 첫째 조건으로는 '''중앙대학교 컴퓨터공학과 동문'''이겠구요. 그 다음으로는 제로페이지란 공동체의 활동에 참여를 해야하겠지요. 정모, 전시회, 홈커밍데이, 엠티와 같은 제로페이지 행사에 자발적으로 관심을 갖고 참여 해야합니다. 그리고 세미나, 스터디 등등의 활동을 오프라인 및 온라인을 이용해서 제로페이지 회원들과 함께 꾸려나가야 합니다. 그리고 가장 중요한 조건은 '''제로페이지(ZeroPage)가 무엇을 위한 공동체인지 이해하고 동의'''해야 한다는 것입니다. 여기에서 자발적인 관심과 참여가 유도되어야 합니다. 이 조건만 만족하면 제로페이지 회원이기에 충분하다고 생각합니다.
- ACM_ICPC/2013년스터디 . . . . 19 matches
* 각자 문제를 풀어오고 설명, 설명들은 문제는 다음 시간까지 개인적으로 풀어올 것.(Dovelet 사용)
=== 내용 ===
=== 내용 ===
=== 내용 ===
=== 내용 ===
=== 내용 ===
=== 내용 ===
=== 내용 ===
* [http://211.228.163.31/30stair/bridging/bridging.php?pname=bridging&stair=15 bridging - binary indexed tree를 이용한 Up Sequence 문제]
=== 내용 ===
=== 내용 ===
=== 내용 ===
=== 내용 ===
* Shortest Path : DAG(directed acyclic graphs)로 바꾼 후 Source에서부터 dist(v) = min{dist(v) + l(u,v)}사용
=== 내용 ===
=== 내용 ===
=== 내용 ===
* 풀이 - 삼차원 테이블을 사용한 DP문제, d(bar,unit,width)는 bar번째의 bar를 사용하면서, unit의 위치에 그 bar의 폭이 width일 때의 경우이다. 따라서 가능한 모든 바코드의 수를 구하는 것은 d(bar,unit,0 ~ width)를 전부 더해주면 된다.
- C/C++어려운선언문해석하기 . . . . 19 matches
CodeProject에서 최근에 아주 흥미로운 글을 읽었습니다. 글의 내용이 별로 길지도 않고 워낙 유용한 정보라 생각되서 날림으로 번역해봤습니다. 영어와 한글의 어순이 반대라서 매끄럽지 못한 부분이 많은데 이런 경우 원문도 같이 볼 수 있도록 같이 올렸습니다.
예제에서 제시된 것과 같이 복잡한 선언문을 사용하여 이해하기 어려운 코드를 작성하는것은 결코 좋은 프로그래밍 습관이 아니겠죠.
좋습니다. 왜냐하면 다음과 같은 선언문을 사용하면서 실수할만한 소지를 없애주기 때문입니다. (역자주: 참고로 C++ 창시자인 Bjarne
const 수정자는 변수가 변경되는 것을 금지 (변수 <-> 변경할 수 없다? 모순이군요 ) 하기 위해서 사용하는 키워드입니다. const 변수
typedef는 typedef는 "* 또는 &가 형이 아닌 변수에 적용된다"라는 규칙을 극복하게 해줍니다. 다음과 같이 typedef 를 사용하게 되면
변수 p, q 모두 char를 가리키는 포인터 변수가 됩니다. typedef가 사용되지 않았다면 q는 char를 가리키는 포인터 변수가 아니라 char 형 변수였을 텐데 솔직히 이런 사실을 모르는 경우 실수하기 쉽상이죠.
아래에 typedef를 사용한 선언문들을 설명과 함께 나열해봅니다.
typedef는 보통 아래에 나열한것과 같이 struct는 선언과 같이 사용됩니다. 다음과 같은 struct 선언문을 사용하면 C++ 뿐만 아니라 C에
로그램(TSR)을 작성하는데 사용되기도 했고 Win32나 X-Windows서는 callback 함수를 작성하는데 주로 사용됩니다. 이 외에도 많은 곳에
서 함수 포인터가 사용됩니다. 예를 들자면 가상 함수 테이블, STL의 일부 템플릿 그리고 Win NT/2K/XP의 시스템 서비스에서 사용되는
면 순서가 바뀌어야 합니다. (역자 주: "순서가 바뀐다"가 정확히 의미하는 바를 파악하기가 어렵습니다. 제 짐작에는 함수 입력인자를 포함하는 괄호안에서는 왼쪽에서 오른쪽으로 입력인자들을 읽는다라는 의미가 아닐까 싶습니다). 괄호안의 모든 내용이 해석되었으면 괄호 밖으로 해석을 확
어순이 달라서 영어로 표현하는 것보다 한글로 표현하기 무지 힘듭니다. 위의 내용을 종합하면 다음과 같습니다.
원문에서는 설명이 없었지만 클래스 멤버 함수 포인터의 경우에도 똑같은 규칙이 적용될 수 있다는걸 알 수 있습니다. 원문에 달린 답글
같은 맥락으로 호출규약이 들어간 경우에도 똑같은 규칙을 적용합니다.
- Chapter I - Sample Code . . . . 19 matches
이런저런 소개들. (컴파일러는 무엇을 사용한다. 머 어쩌구저쩌구.)
모든 .c 파일에서 인클루드되는 헤더파일이다. 이 파일의 내용은 타겟프로세서마다 다르게 적용시켜야한다.
// 형 재정의 (#define이용)
OS 를 작성하다보면 전역변수가 필요한 경우가 있다. 전역변수는 어떻게 선언하는가? extern 키워드를 사용하면 된다. 하지만 uCOS-II 에서는 extern 키워드마저 #define 해서 다른 매크로로 사용한다.
위처럼 다음과 같이 매크로 정의를 해 놓고 다음과 같은 소스를 적용시킨다고 해 보자
그럼 실제 코드는 (컴파일시) 다음과 같이 적용된다는것을 알 수 있다.
만약 다음과 같이 OS_GLOBALS라는 매크로를 미리 적용시키면 형 정의가 되지 않은 상태이므로 (위의 #ifdef~#else 에서 #else 절에 걸리게 된다) 다음과 같은 코드가 된다.
실제 적용은 아래와같이
OS에서 공유자원이나 특정코드가 수행되는 도중에 다른 프로세스에 의해 interrupt 되는것을 방지하기 위해 크리티컬 섹션을 사용하게 된다. 이는 윈도우즈 프로그래밍에서 스레드관련 처리를 해 줄 때에도 나오는 용어이다. uCOS-II에서는 단순히 매크로함수를 이용해 크리티컬섹션에 들어오기와 나오기를 한다. 매크로함수가 하는 일은 단순히 인터럽트를 무효화, 유효화 시키는것 뿐이다.
// 의해 모든 레지스터의 내용을 스택에 PUSH하는 명령임. 반대는 POPF로 PUSHF의 역순으로 스택에서 꺼낸 데이터로 각각의 // 레지스터를 변경 시킴. 항상 이 두 명령은 한쌍이 되어 사용 되어야 한다.
디스플레이는 문자기반으로 한다. x, y값을 이용해서 아스키문자와 특수문자를 출력할 수 있다. 1글자 출력에 사용되는 바이트수는 2이다. 1바이트는 글자이고, 나머지 1바이트는 포그라운드/백그라운드 컬러이다. (상위 4비트가 백그라운드이고 하위 4비트가 백그라운드 컬러이다)
수행시간 측정은 한 task 의 수행시간을 측정하기 위해서 한다. (당연한거 아냐?). 이 측정은 PC의 82C52 타이머 2번을 통해 수행된다. 수행시간 측정을 위한 함수로는 PC_ElapsedStart()와 PC_ElapsedStop()이 있다. 하지만 이 두 함수를 사용하기 전에 PC_ElapsedInit()를 호출해야한다. 이 함수는 두 함수와 관련된 오버헤드를 측정하는데 사용된다. 이렇게 하면 PC_ElapsedStop 함수에 의해 수행시간이 리턴된다(마이크로세컨드). 이 두 함수는 모두 리엔터런트(주 : 몇 개의 프로그램이 동시에 하나의 task나 subroutine을 공유하여 쓰는 것에 대해 말함, from 한컴사전) 하지 않아야한다. 다음은 PC_DispChar()함수의 측정시간을 구하는 예이다.
- DataCommunicationSummaryProject/Chapter4 . . . . 19 matches
* Noncelluar - 긴급 서비스, 대형 사업에 사용.
* 일찍 표준화 되어서 많이 사용
* FDD 사용
* 4개의 slot 사용
* 사용 못함
* GSM에서 Packet Data 사용할 수 있게 업그레이드
* 미국에서 사용하는 anlog AMPS에서 digital로 업그레이드
* 30 KHz 채널 사용
* 25 KHz 채널 사용 (이미 넓은 밴드를 다른 데에 줘서 작게 사용)
* CDMA 사용
* Walsh Code 사용 (64비트)
* Walsh Code 여러 개 사용
* 바다 위에서는 위성 사용, 대륙 위에서는 큰 기지국 (Cell Size: 300Km)
* TDMA는 단지 시간의 일부로 각각의 사용자들에게 전송이나 받는걸 허용한다. 각각의 사용자에게 가능한 수용능력은 더 많은 타임 슬롯을 할당흠으로써 늘릴수 있다.
* PMR은... (해석 안됨) 그것은 많은 PMR 터미널의 주인들이 그들을 일반적인 셀 전화기로 사용함에도 불구하고, 보다 빠른 콜 셋업과 다른 것들, 회의 콜링 같은 것들을 제공한다.
- Linux/RegularExpression . . . . 19 matches
대충 용도를 적어보자면 MS시스템에서의 *(asterix)문자와 같은 용도라고 보면된다.
거의 대부분의 유닉스 애플리케이션은 정규식의 사용을 지원한다. 일단 배우면 쓰임이 대단하지만
= 정규식 펌 내용 =
이에 대한 자세한 내용은 C언어의 <ctype.h>를 참조하면 된다.
(9) () (parenthesis) : ()는 정규식내에서 패턴을 그룹화 할 때 사용
(11) \ (backslash) : 위에서 사용된 특수 문자들을 정규식내에서 문자를 취급하고 싶을 때 '\'를 선행시켜서 사용하면됨
정규식은 Unix의 대표적인 유틸리티인 vi, emacs, ed, sed, awk, grep, egrep 등에서 사용할 수 있다. 다음은 grep에서 정규식을 활용한 예를 보여 주고 있다.
<= 명령어의 결과를 grep이 입력받아 정규식을 이용하여 패턴을 찾아냄
예 : $ who | grep 'hgkim' <= hgkim이라는 사용자가 login 해 있는지를 알아봄
<= 파일을 입력받아 정규식을 이용하여 패턴을 찻아냄
이외의 명령어들도 grep과 유사한 형태로 이용된다. 따라서 정규식을 잘 이용하면 유닉스의 활용이 배가 될 것이다.
- givenPattern이 "(패턴)"으로 묶인 문자열들을 포함하고 있으면, replacementPattern에는 이에 대응하는 "\\digit(문자열)" 형태의 문자열들을 포함하고 있어야 한다(digit는 0, 1, ... ,9 중 하나). 그리고 givenString은 "(패턴)"을 이용해 찾은 결과들을 "\\digit(문자열)"에 있는 "문자열"들로 대체하게 된다. "\\0" 는 givenString 전체에 대해 "(패턴)"의 결과를 적용할 때 이용된다.
- PerformanceTest . . . . 19 matches
== HighResolutionTimer 사용하기 ==
상기 두 Windows API함수를 사용해서 수행 시간을 측정 할 수 있습니다.
수행시간 측정용 C++ Class. 수행시간 단위는 Sec 입니다. 단 HighResolutionTimer를 지원하는 프로세서가 필요합니다.
== ftime함수, timeb 구조체의 사용 ==
비교적 CPU와 OS에 의존적이지 않은 방법으로는 ftime 함수와 timeb 구조체를 사용하는 방법이 있습니다. 밀리세컨드 단위까지 밖에 제공되지 않습니다. sys/timeb.h 헤더에 정의된 내용이 ANSI C 는 아니라고 알고있습니다.
=== ftime 함수와 timeb 구조체 사용 예 ===
== RDTSC 의 사용 ==
펜티엄 이상의 CPU에서 RDTSC(Read from Time Stamp Counter)를 이용하는 방법이 있다. 펜티엄은 내부적으로 TSC(Time Stamp Counter)라는 64비트 카운터를 가지고 있는데 이 카운터의 값은 클럭 사이클마다 증가한다. RDTSC는 내부 TSC카운터의 값을 EDX와 EAX 레지스터에 복사하는 명령이다. 이 명령은 6에서 11클럭을 소요한다. Win32 API의 QueryPerformanceCounter도 이 명령을 이용해 구현한 것으로 추측된다. 인라인 어셈블러를 사용하여 다음과 같이 사용할 수 있다.
간단하게 32비트 정수로 사용하고자 한다면 RDTSC명령이 카운터에서 가져오는 값 중에서 EAX에 담긴 값만을 가져오는 방법이 있다. 짧은 시간동안 측정한다면 EAX에 담긴 값만 가지고도 클럭을 측정할 수 있다. 64비트를 모두 이용할려면 LARGE_INTEGER 구조체를 이용한다.
rdtscEx명령은 36클럭을 소요하며 측정 구간을 클럭 단위로 측정할 수 있는 강력한 시간 측정 방법이다. 하지만 이 방법은 클럭 수만 측정할 뿐 시간을 알 수는 없다. 정확한 시간을 알려면 시스템의 CPU클럭을 알아야 하며 측정한 클럭값을 CPU클럭으로 나누어야 시간이 나온다. RDTSC명령을 수행할 때 CPU가 수행 속도 향상을 위해서 CPU 명령 순서가 바뀔 수 있기 때문에 CPUID명령을 전에 수행해 명령 순서를 맞춰야 하는 경우도 있다. 자세한 설명은 인텔에서 제공하는 성능 모니터링을 위한 RDTSC 명령 사용법을 참조하기 바란다.
단, 정확한 수행시간 측정을 위해서라면 전문 Profiling Tool을 이용해 보는 것은 어떨까요? NuMega DPS 같은 제품들은 수행시간 측정을 아주 편하게 할 수 있고 측정 결과도 소스 코드 레벨까지 지원해 줍니다. 마소 부록 CD에서 평가판을 찾을 수 있습니다. 단, 사용하실 때 Development Studio 가 조금 맛이 갈겁니다. 이거 나중에 NuMega DPS 지우시면 정상으로 돌아갑니다. 그럼 이만. -- '96 박성수
멀티쓰레드로 인해 제어권이 넘어가는 것까지 고려해야 한다면 차라리 도스 같은 싱글테스킹 OS에서 알고리즘 수행시간을 계산하는게 낫지 않을까 하는 생각도 해봅니다. (하지만, 만일 TSR 프로그램 같은 것이 인터럽트 가로챈다면 역시 마찬가지 문제가 발생할듯..) 그리고 단순한 프로그램의 병목부분을 찾기 위한 수행시간 계산이라면 Visual C++ 에 있는 Profiler 를 사용하는 방법도 괜찮을 것 같습니다. 해당 함수들의 수행시간들을 보여주니까요.
- ProgrammingWithInterface . . . . 19 matches
책에서는 말한다. 많은 개발자들이 [[OOP#s-1.2|인터페이스]] 보다는 [[OOP#s-1.2|상속]]을 사용하여 개발한다고... 그렇다! 사실이다. 나도 여지껏 인터페이스로 무장한 코드를 보지 못했다.
언제나 개발을 할 때 '어라~ 같은 일 하는데? 이거 Base 클래스 만들어서 위로 올려야 겠는데?' 일말의 틈도 주지 않고 실행한다. 다형성을 사용하는 코드를 생성한다. '와우~! 한결 깔끔해 졌는걸?' 하지만 오산이었다. 시간이 지나서 먼가 추가할 동작들이 생겼다. 이제 고치기 시작한다. Base 클래스 부터... 고치고 나니 컴파일이 되지 않는다. 코드 수정의 여파가 하위 클래스들에게 까지 미친다. 정말 미친다. 이런 상속을 통한 계층 구조는 상위 클래스와 하위 클래스의 결합도를 높여준다. 지나 치게 크게..! 동감하지 않는가? 하나를 고쳤는데 수정할 꺼리가 마구 쏟아지는 상황을...
상속을 사용하는 상황을 국한 시켜야 할 것같다. 상위 클래스의 기능을 100%로 사용하면서 추가적인 기능을 필요로 하는 객체가 필요할 때! .. 이런 상황일 때는 상속을 사용해도 후풍이 두렵지 않을 것 같다. GoF의 책이나 다른 DP의 책들은 항상 말한다. 상속 보다는 인터페이스를 통해 다형성을 사용하라고... 그 이유를 이제야 알 것같다. 동감하지 않는가? Base 클래스를 수정할 때마다 하위 클래스를 수정해야 하는 상황이 발생한다면 그건 인터페이스를 통해 다형성을 지원하는게 더 낫다는 신호이다. 객체는 언제나 [[SOLID|SRP (Single Responsiblity Principle)]]을 지켜야 한다고 생각한다.
Holub이 사용하는 예제를 보자. 상속을 사용해 [Stack]을 구현한다.
완벽한 Stack이다. 하지만 다음 코드를 사용하면 우리는 Stack 객체가 어떻게 돌아갈지 예측 할 수 없다.
자 모든 값을 clear 를 사용해 삭제했는데 topOfStack의 값은 여전히 3일 것이다. 자 상속을 통한 문제를 하나 알게 되었다. 상속을 사용하면 원치 않는 상위 클래스의 메소드까지 상속할 수 있다 는 것이다.
상위 클래스가 가지는 메소드가 적다면 모두 [오버라이딩]하는 방법이 있지만 만약 귀찮을 정도로 많은 메소드가 있다면 오랜 시간이 걸릴 것이다. 그리고 만약 상위 클래스가 수정된다면 다시 그 여파가 하위 클래스에게 전달된다. 또 다른 방법으로 함수를 오버라이딩하여 예외를 던지도록 만들어 원치않는 호출을 막을 수 있지다. 하지만 이는 컴파일 타임 에러를 런타임 에러로 바꾸는 것이다. 그리고 LSP (Liskov Sustitution Principle : "기반 클래스는 파생클래스로 대체 가능해야 한다") 원칙을 어기게 된다. 당연히 ArrayList를 상속받은 Stack은 clear 메소드를 사용할 수 있어야 한다. 그런데 예외를 던지다니 말이 되는가?
Stack을 구현하는 다른 방법은 상속 대신 [캡슐화]를 사용하는 것이다.
자.. Stack과 ArrayList간의 결합도가 많이 낮아 졌다. 구현하지 않은 clear 따위 호출 되지도 않는다. 왠지 합성을 사용하는 방법이 더 나은 것 같다. 이런 말도 있다. 상속 보다는 합성을 사용하라고... 자 다시 본론으로 들어와 저 Stack을 상속하는 클래스를 만들어 보자. MonitorableStack은 Stack의 최소, 최대 크기를 기억하는 Stack이다.
깔끔한 코드가 나왔다. 하지만 MonitorableStack은 pushMany 함수를 상속한다. MonitorableStack을 사용해 pushMany 함수를 호출하면 MonitorableStack의 입력 받은 articles의 articles.length 만큼 push가 호출된다. 하지만 지금 호출된 push 메소드는 MonitorableStack의 것이라는 점! 매번 size() 함수를 호출해 최대 크기를 갱신한다. 속도가 느려질 수도 있다. 그리고 만약 누군가 Stack의 코드를 보고 pushMany 함수의 비 효율성 때문에 Stack을 밑의 코드와 같이 수정했다면 어떻게 될 것인가???
와!~ 예전의 Stack보다 성능은 확실히 좋아 졌을 것이다. 그런데 문제가 발생했다. 더이상 pushMany 메소드에서 push 메소드를 호출하지 않는다. 이렇게 되면 MonitorableStack은 더이상 Stack의 최대 크기를 추적하지 못하게 된다. 예기치 않은 결과이다. 상속을 사용한 구현으로 발생한 문제이다. 여기까지 글을 (책의 내용) 읽었다면, 아마 '상속을 사용하기 전에 한번 더 생각하는게 좋겠다' 라는 생각을 가슴 깊이 느꼈을 것이다. 아니면 별수 없는 일이다... :(
- ZeroWiki에서 언어습관 . . . . 19 matches
이 예제는 이모티콘이나, 자음, 모음만 사용한 예제 중 양호한 편입니다. 이러한 언어 습관은 작년(2003) 보다 올해(2004)가 두드러 지는것 같은데, 이런 현상에 대하여 어떻게 생각하시나요?
''과거 [노스모크]의 전례를 보았을때, 기존 회원들은 자연계처럼 자정작용이 언어습관에 적용되기를 바란것이 아닐까요? 제가 읽는 대부분의 커뮤니티에 저런 패턴의 글들이 자연 소멸했습니다. 지금 저 글을 읽기 힘들다는 느낌 자체가 신기한 경험입니다. 마치 "그놈은 멋있었다."를 읽다가 눈이 피곤한 느낌이라고 할까요? ''--NeoCoin
1. 내용의 부실 -'가즈 나이트'
지적하신 내용에 공감합니다. 기존 사용자 층의 글이 자연스럽게 줄어들고, 새로운 사용자 층이 증가하면서, 형성되는 언어습관이 재미있어서 주목하고 있는것 이지요.
문단의 내용이 확인을 부탁하는 것 같아서 답변 답니다.(그렇지 않다면, 중복 문단의 존재 이유가 없겠지요?) 전자의 문장은 잘 정리하셨습니다. 허나, ''앞으로 이모티콘이 가득한 위키라는 특별한 색깔을 [제로위키]가 가지리라는 의견이시고요.'' 에는 전체 긍정을 할수 없습니다. 아직 예단할수는 없지요. '가득가득'이라니요. 내년 신입 회원이 기대되기는 하지만요. --NeoCoin
'' ...전략...위키는 과거글이 꾸준히 읽히고, 타인이 고칠수 있는 시스템입니다. 그래서 모두가 읽는데 의미 전달의 변이가 적은 표준어, 서술 형식으로 수렴되는 것을 당연하게 생각했습니다. (반대로, 게시판은 한번 쓰면 타인이 못고치고 다시는 읽지 않으니 분위기가 수렴되거나 하는 것이 적겠지요.) 그런데, [제로위키]는 최근 2년간의 모습이 재미있거든요? ...후략...'' --NeoCoin 윗글 인용
* 예, 꾸준히 제기되는 문제입니다. 과거 글이 읽히는 것까지 위키라는 시스템이 책임지지는 않지요. 이제 [제로위키]도 2000페이지가 넘었고, 각 페이지당 A4 한장이라고 생각해도, 1000장의 두꺼운 사전이니까요. 휴~, 그 중 우리가 읽고 키울것은 많게 잡아도 20% 내외 일것입니다. (200~300 페이지) 당장 사용하는 것은 10% 정도? 그러나 위키 시스템의 철학적인 면에 대한 학습과 토론의 장이 전무한 상황에서 당연한 결과 같네요. [위키요정]과 NoSmok:문서구조조정 NoSmok:WikiGardening 등의 노력이 적은게 아쉽습니다.
* 이러한 [위키요정]의 사례로, [STL]관련 새로 만든 개인 페이지가 넘쳐나서, 내용이 중복되고 어수선했는데, 전부 정리한 적이 있습니다.
지식의 재활용을 위한 학습의 필요합니다.
이러니 저러니 해도, 순수한 [자유게시판]으로만 운영되는 것 보다는 지식의 재활용 경우가 많은 것 같습니다. 페이지 상호간에 링크를 걸고, 약간 공적인 성격의 페이지중 [지금그때]나 [데블스캠프2004]의 준비 모습은 한페이지를 계속 키워나가는 모습들을 보이니까요.
위의 [위키요정], 위키철학 공유에 대한 문제를 감안해도 앞으로는 새로운 ZeroWikian과 [위키요정]들이 활동하면서 이들이 공유하는 언어습관이 변화할 것을 기대합니다. 99, 00..년의 사용자들의 개인 페이지나 프로젝트 페이지, 게시판에 작성하는 글의 언어습관은 다릅니다.
이를 주목해 보니, 타 위키가 새로운 사용자 계층 유입이 한꺼번에 일어나지 않는다는 공통점이 보이군요. 그래서 타 위키는 언어습관이나 문화가 급격히 변화하는 것은 없습니다. 새사용자 들도 기존 위키에 분위기에 따르니까요. 마치 메일링 리스트 사용하는 것 처럼 말이죠.
그러나 [제로위키]는 새사용자 상당수가 연례적으로 유입됩니다. 생각해보니 정말 재미있는 차이군요. 더불어 우리는 첫 위키 교육에서 항상, 새 사용자의 새로운 글쓰기를 적극 권장합니다. (SeeAlso [위키의진입장벽낮추기] ) 그래서 가장 익숙한 평소에 타 게시판에서 작성하는 습관을 그대로 가지고 옵니다. 이것이 반복되면서 언어 습관이 바뀌어 나가는 것 같군요. [제로위키]는 급격한 변화상이 보이는 재미있는 실험실 같군요.
- django/RetrievingObject . . . . 19 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일 이후 보고서를 최신으로 표시하는 컬럼을 가진 리포트 정보를 가져온다.
extra메소드를 사용하면 다음과 같은 조금 복잡한 질의도 할 수 있다. 각 직원이 몇 번이나 위험 보고서를 작성했는지 알아낸다.
where절을 사용하는 것 역시 가능하다.[7] 하지만 중첩질의는 지원하지 않는다.
사용자는 values함수를 이용해서 원하는 속성을 지정할 수 있다. 이는 검색 조건을 만족하는 레코드의 필요한 속성만을 이용하므로 효율적이다. 또한 values함수는 QuerySet을 상속한 ValuesQuerySet을 리턴하므로 다시 위에서 사용한 검색 조건을 사용할 수 있다. 하지만 ValuesQuerySet은 사전형(dictionary) 자료구조를 가지고 있기 때문에, 많은 수의 레코드를 얻어오기에는 부적절하다. 다음은 사원 정보에서 이메일 속성만을 얻어온다.
Django에서 기본적으로 제공하는 조인 연산은 없다. SQL문을 직접 수행하여 원하는 결과를 얻을 수 있다. 이는 JDBC의 인터페이스와 비슷하며, 커서를 이용하여 질의를 수행한 결과를 하나씩 얻어오는 방식을 사용한다. 다음은 특정 부서 에서 시행한 위험 관리 대책을 얻어오는 함수이다.
- 논문번역/2012년스터디/김태진 . . . . 19 matches
완전한 영어 문장들로 학습/인식을 위한 데이터를 제공했는데, 각각은 Lancaster-Oslo/Bergen corpus에 기초한다. 글쓴이에 상관없는 형태와 마찬가지로 다수의 저자에 의한 실험은 the Institute of Informatics and Applied Mathe- matics (IAM)에서 수집한 손글씨 형태를 사용했다. 전체 데이터는 다양한 텍스트 영역들을 가지고 있고,500명보다 많은 글쓴이들이 쓴 1200개보다 많은 글씨를 가지고 있다. 우리는 250명의 글쓴이가 쓴 글쓴이-독립적인 실험에서 만들어진 카테고리들의 형태를 사용하고, 6명의 글쓴이가 쓴 c03 형태로 여러 글쓴이 모드를 적용해본다.
개인 저자에서도 우리의 시스템을 평가해보기 위해서, 우리는 Senior[15]로 수직한 데이터로 만들어진 글씨들을 사용한 실험을 한다. 이 데이터는 한명의 글쓴이가 만든 25페이지에 달하는 손글씨를 사용하였고, 웹에서 공공연하게 이용가능하다.
이 두가지 데이터들 모두 300dpi using 256 grey-levels로 스캔해서 사용했고, Fig 에서 각각의 데이터를 예시로 제시한다.
주어진 손글씨 문서에 대한 이미지에 대해 처음 전체 이미지를 삐뚤게 쓴 것은(?) 글쓰는 것에 대한 지속적인 "drift"(흐름) - 지속적으로 계속되는 것이거나 스캔하는 동안 부정확하게 놓여진 것(가지런하게 두지 않아서..)에 의한 오류들을 수정하기 위해 고쳤다. 그래서, 그 이미지는 2진화된 이미지를 수직 밀집 히스토그램에서 최소한의 엔트로피가 될때까지 반복한다. 이러한 전처리는 IAM 데이터베이스에 대한 공식을 사용하지 않았는데, 글쓴이들이 스캔하는 동한 정확하게 ???????because the writers were asked to use rulers on a second sheet put below the form and the formulars itself are aligned precisely during scanning.
더 많은 문서 작업을 위해, 개인의 손글씨 각 줄들을 추출했다. 이것은 글씨들을 핵심 위치들 사이로 이미지를 쪼개는 것으로 할 수 있었다. 핵심 위치란, 글씨의 아래위 선사이의 영역과 같은 것인데, 핵심 위치에 존재하는 줄에서 필요한 전체 픽셀들의 최소 갯수를 말하는 한계점을 응용하여(?)찾을 수 있다. 이러한 한계점은 2진화된 손글씨 영역에 대한 수직적인 밀집 히스토그램(the horizontal density histogram of the binarized handwriting-area)을 사용한 Otsu method를 사용하여 자동적으로 만들 수 있다. 검은색 픽셀들의 갯수는 수평적 투영 히스토그램에 각각의 줄을 합한 갯수이고, 그 이미지는 이 히스토그램의 최소화를 따라 핵심 위치들 사이로 조각 내었다.
글쓰는 스타일이 때로 한줄 내에서 중요하게(?) 바뀐다는 관측에 고무되어서, 우리는 각 손글씨 줄들을 각각 수직적인 위치, 기울어짐, slant에서 수정했다. 그래서 각각의 줄은 문서의 부분 사이에 공백으로 찾아 쪼개었다. 한계점은 일반화 요소들을 통했을때에 계산하기에 너무 짧은 부분들을 피하기 위해 사용했다. 반면에 수직적인 위치와 기울어진 것은 [15]에서 묘사된 방법과 비슷한 선형적 regresion?을 사용한 기준선 추정 방법으로 고쳤고, slant 각도에 대한 계산은 모서리의 방향에 기초하여 고쳤다. 그렇게 이미지를 이진화했고 수직적인 변화를 추출하여 consid- ering that only vertical strokes are decisive for slant estima- tion. Canny 모서리 감지는 각 히스토그램에서 계산된 모서리 방향 데이터를 얻기위해 사용했다. 그 히스토그램의 의미는 slant 각도를 사용하는 것이다.
등식 (2)는 가중치가 모두 0이 아닐 때 v1...vp사이에서 linear independence relation(선형 독립 관계)라고 한다. 그 인덱싱된 집합이 선형 독립 집합이면 그 집합은 선형독립임이 필요충분 조건이다. 간단히 말하기위해, 우리는 {v1,,,vp}가 선형독립 집합을 의미할때 v1...vp가 독립이라고 말할지도 모른다. 우리는 선형 독립 집합에게 유사한 용어들을 사용한다.
기하학적인 용어로서, 두 벡터들은 그 두 벡터가 원점을 따라 같은 선상에 놓여있기만하면 선형 의존적이다. Figure 1은 예제 3번으로부터 벡터들을 보여준다.
이 섹션에 있는 새로운 용어는 행렬-벡터간 곱의 역동적인 관점이 선형대수학에서 몇몇 개념들을 이해하고 시간이 흐르면서 발전하는(that evolve over time) 물리적인 시스템들에 대한 수학적인 모델을 만드는 것의 핵심이기 때문에 중요하다. 이런 역동적인 시스템들은 Chapter5와 1.10, 4.8, 4.9 섹션에서 논의할 것이다.
- 데블스캠프2009/월요일후기 . . . . 19 matches
* '''박준호''' - html 에 대해 그냥 대충 img src 나 이런거만 알았는데 CSS 에 대해 알아보니 정말 재밌고 firebug 같은 걸 이용하여 소스들을 보며 어떻게 되어 있는가 알 수 있어서 유익한 시간이 되었습니다. 오늘 배운걸로 더욱 더 새로운 장난도 칠 수 있을것 같습니다.
* '''서민관''' - 사실 html쪽은 인터넷을 보면서 필요한 자료가 있을 때 소스만 가끔 보는 정도에 그쳤었는데, 이번 기회에 조금 제대로 맛을 볼 수 있어서 괜찮았습니다. 그리고 파이어 폭스와 파이어 버그 같은 경우는 알아두면 나중에라도 html 관련 작업을 할 때 정말 유용하게 쓸 수 있을 것 같네요.
* '''강소현''' - 필요한 내용을 fire bug를 이용해서 찾아내고 수정해서 사용할 수 있다는 점이 좋았어요.
* [김준석] - 단순하지만 있을건 있는 프로그램. Easy, Enjoy라는 개념이 어울린다. 프로그래머가 아닌 일반인(유치원생)도 이런 프로그램을 사용해봄으로서 나와 같은 프로그래머의 입장이 되어 쉽게(Easy) 즐길수(Enjoy) 있는 기회를 준것이다. 내가 1학년때 송기원교수님이 한 말이 떠오른다 "언젠가는 일반인도 쉽게 만들수 있는 프로그램 언어가 나올꺼다. 전화 프로그램 만들고 싶으면 사람하고 사람 그림 두개 따서 전화기 그림을 가운데 놓고 연결하면 이게 전화 프로그램이 되는. 그럼 너희들은 뭐 먹고 살래? 사람들이 머리만 조금 굴리면 알아서 딱딱 만드는 세상이 될텐데 아이디어랑 생각이 중요한거야." 딱, 이거 아닌가? 물론 프로그램 언어의 현상황에서 프로그래밍에 업을 달고 사는 사람에게 쉽고 즐긴다는 말은 저기 저 먼 안드메다에 있는 개념만큼 멀게 느껴지지만 마지막에 송지원학우님이 얘기해주신것처럼 프로그래밍이 단순히 어렵고 복잡한것을 뜻하는것만이 아니라 새로운 아이디어로 생각해 그 시각으로 바라보는것으로 개발자의 입장이되는 우리도 더 쉽고 재밌게 즐길수 있을것이다. 그렇지만 기본은 먹고 살아야지.
* '''강소현''' - c언어에서 쓰이던 거를 블럭으로 쉽게 나타내, 프로그래밍하는 방법을 전혀 몰라도 활용할 수 있어 좋았어요. 게다가 그림을 이용해 간단한 애니메이션이나 게임을 만들 수 있어, 이번 수업 이후에도 자주 애용할 거 같아요.
* '''박준호''' - 새로운 프로그래밍언어를 배워봐서 재미있었다. 로보랩을 할때와 비슷한 느낌이라 더 좋았고 만약 C 언어의 함수를 다 모르고 그런 상태라면 이런 사람에게 친근한 고급언어가 더욱 쉽고 유용한거 같다.
* '''서민관''' - 마지막 시간인 svn 시간은 수업을 위한 수업이라기보다는 앞으로의 활동을 위한 베이스적인 수업의 성격이 강했던 것 같다. nforge와 svn을 이용하면 확실히 앞으로 팀 프로젝트로 코드를 짜거나 수정할 때 여러모로 편리할 것이라고 본다. 하지만 그 이후의 코드 레이스는 좀 힘들었어요. 제가 원래 머리 회전도 좀 느린 편인데다가 창의력이나 응용력도 부족하단 말이에요. 어째 앞길이 막막한데.
* '''강소현''' - 프로그램이 잘 깔리지 않아서 가입만 한 점도 있고, 페어로 활동하는 데 모르는 점이 많아 속도를 따라잡지 못해 아쉬웠습니다. 새싹스터디의 연장선으로 수경언니한테 여러 가지를 배운 듯;;...음..그래도, 다른 사람이나 폴더를 공유하고, 무언가를 수정했을 때 바뀐 부분을 바로 파악할 수 있고, 이전의 내용으로 다시 돌아갈 수도 있다는 점이 앞으로도 쓰기에 무척 좋다고 생각해요. 그보다...코드레이스를 했었구나 ㅇㅁㅇ..<<응?! ...어쩐지 앞쪽이 활발했었어...
* [김준석] - 과거 06년도 데블스 캠프때 서버 할당받아서 svn잠깐 써보고 그다음에 전혀 써보지않았던 svn... 다시쓰기가 난감 할정도는 아니었지만 까는거에서 에러나면 어떻게 하는거야? 뭐여튼 nForge로 할당받아서 프로젝트 하나하나 올리면 되겠는데 문제는 이게 제로페이지 공용이라서 과연 학생들이 학업중 팀프로젝트때도 쓸려나.. 사용법을 가르쳐주는것 만으로 충분하긴 한데.. Zeropage내의 프로젝트는 얼마 되지 않는데;; 외부프로젝트라도.. 몇개나 올라올지는 모르겠지만 일단봐야지. 한 4~5개만 나와도 엄청난 프로젝트 갯수를 채우는 거겠군.. 프로젝트 진행중 중요한건 여러명의 개발자가 사용한 프로그램이기에 주석과 구조 그리고 변수건 함수건간에 서로 알아보기 쉽게 암묵적인 규약이라도 있어야된다는거 하긴 혼자할때는 그런거 필요없지만 SVN을 통해 올리는 프로젝트는 그렇게 해야 참고하고 구경하러온 학우들에게 도움이 될테니까. 특별히 코드레이스는 엄청나게 신경쓰면서 열심히 해봤는데 마지막에 올릴때 그것의 미인증이 인터넷을 막는 바람에 못올린것에 전산센터는 좀 반성해야되! 그리고 아쉬운점은 코드레이스는 좀더 늦게하고 제로페이지에 참가한 학우들에게 알고리즘이나 객체, 구조 함수에대해서 좀더 알려주고 조금 더 생각할 문제를 풀었으면 재밌었을텐데.. 난 printf()만 나오는 그리는 문제에는 잼병이란 말이다! 그렇다고 머리를 잘쓰는건 아니지만. 뭐.. 그렇듯 코드로 짜는건 빠른 손가락만 움직이면 되지만 푸는건 머리라는 사실은 변함이 없다. 코드레이스때 특정함수를 쓰게해서 DBMS나 라이브러리 북을 찾아보는 연습하는것도 좋았을텐데... 뒤에서 원그리고 있는데 앞에서 로보코드하고있을때는 안습. 끝나고 포트2 강추.
* '''박준호''' - svn이라는걸 해보고 팀플할때 사용할수 있을것 같아 매우 유용하게 쓸 수 있을것 같아서 좋은 시간이 되었던 것 같다. 다음부터 나도 사용할것이다.
- 데블스캠프2011/다섯째날/후기 . . . . 19 matches
* 파이썬의 기본적인 프로그램을 배우고 (python에서 제공하는 학습용 라이브러리인 turtle을 사용하였습니다.) 네트워크에 관한 간단한 설명들을 들었습니다. 네트워크라는 부분을 공부해 본적이 없어서 처음 네트워크에 대해 이해하는 것이 어렵긴 했지만 알기쉬운 설명덕분에 그럭적럭 이해하고 넘어갈 수 있었습니다. server와 Client측에서 네트워크를 구성하는 부분을 파이썬으로 작성하였는데 코드는.. 긁어 왔다ㅋ 헌데 파이썬의 장점처럼 코드가 무지하게 짧았던게 인상깊었다.
* turtle을 이용해서 파이썬의 문법에 대해서 간단하게 다루어보고 파이썬의 소켓을 이용해서 서버/클라이언트를 만들어보고 와이어샤크를 이용해서 실제 주고 받는 패킷들을 보는 일을 했습니다. 그리고 중간중간에 최대한 알기 쉽게 네트워크에 대한 개략적인 설명이 끼어 있었지요. 개인적으로는 여러모로 마음에 드는 세미나였습니다. 우선은 전체적인 방향성을 잡아주는 세미나였다는 점에서 괜찮았다고 생각합니다. 사실 데블스에서는 특정 주제를 다루어도 자세히 다루기에는 시간적인 한계가 있는 만큼 이렇게 흥미를 유발할 수 있는 세미나가 좀 더 바람직하지 않은가 싶습니다. 그리고 현태 선배 스타일로 듣는 사람이 알기 쉽게 예를 들어가면서 설명을 하는 것도 듣기 좋았고요. 그리고 개인적인 의견으로는 간만에 현태 선배를 만난 것도 좋았습니다 ㅋ 나중에는 좀 더 네트워크에 대한 부분을 공부를 해 봐야겠지요. 현태 선배 덕분에 파이썬도 배우게 됐는데 네트워크도 공부하게 되는 건가...
* 옛날에 c로 TCP/IP 프로그래밍 책을 본 적이 있었는데 그쪽에서 소켓을 이용하는 부분을 생각해보면 c에 비해서 파이썬쪽에서는 참 쉽게 되는구나 싶었습니다. 그리고 개인적으로 좀 신기했던게 리턴 값이 하나 이상 있을 수 있는 함수도 있다고 한 부분이었습니다. 이건 파이썬쪽의 특성인지 아니면 다른 인터프리터쪽 언어도 이렇게 될 수 있는지 궁금하네요. 네트워크쪽에 대한 기본적인 설명도 좋았습니다. 와이어샤크쪽에 대해서는 제대로 알려면 공부가 더 필요할 듯. -_-
* 갑작스런(?) 세미나였지만, 좋은 내용이었습니다. 루비와 비슷한 면이 많은 것 같네요. 와우하는 사람들이 크게 관심을 가진 것 같던데,, 전 와우를 안해서 -ㅅ-;; 그래서 준석이가 옆에서 루아 책 가지고 이게 왜 작동이 안되냐고 성질내고 있네요.(응?) 이제 됬나보네요. 쩝.. 여하튼 간단하게 들을 수 있고 선배님의 좋은 말씀 들을 수 있어 좋았습니다.
* 루아는 설명을 약간 짧게 하셨죠. 가장 기억에 남는건 와우의 베이스에 루아가 있다!!! 라는... 루아 특징이 저용량으로 쉽게 돌릴 수 있다라는것인지라 저한테는 아직 와닿지 않았던거 같아요. 하지만 문법은 결국 파이썬과 비슷했던거 같기도... 처음 들어본 언어라는 점에서 흥미롭게 들었던거 같네요.
* 루아에 대한 간단한 소개와 문법의 설명. 사실 바쁘실텐데 와서 짧은 세미나라도 하고 가신 것만 해도 참 대단하시다는 생각이 듭니다. 사실 루아에 대한 이미지는 세미나 때 전체적인 분위기도 그렇듯이 와우 UI에 사용하는 언어라는 정도만 알고 있었는데 조금 더 자세한 설명을 들을 수 있었습니다. 개인적으로 세미나를 듣고 든 생각은 두 가지군요. 하나는 객체가 없다니??? 하는 것과 다른 하나는 크기가 작다는 게 그렇게까지 큰 메리트가 될 수 있는가? 하는 점이었습니다. 사실 요즘 이런저런 곳에서 게임 로직을 루아로 만든다는 얘기를 들었는데, 특정 작업에서 쓰는 사람들이 있다는 것은 그 부분에서 인정할 만한 뭔가가 있다는 뜻이겠지요. 하지만 개인적으로는 아직도 조금 더 손을 대 봐야 할 언어들이 있어서 당장은 건드려 볼 일이 없을 것 같다는 느낌이 좀...
* 루아에 대해서 찾아보니까 주목받는 이유는 역시 용량이 작기 때문인 것 같은데 폰쪽에서 일하셨다는 부분도 그렇고 역시 임베디드쪽인가 싶었습니다. 임베디드에서 루아로 프로그래밍을 하기 위한게 따로 있다고 하신 부분이 좀 궁금했습니다. 이번에 파이썬에 루비, 루아까지 스크립트 언어쪽을 많이 본 것 같습니다. 다들 문법적으로는 비슷한 느낌인데 어떤걸 쓰는지는 용도 나름인 것 같습니다.
* 형진이 형이 정말 자세히 가르쳐 주셨는데,, 새내기들한테는 그래도 어려운 거 같네요. 저도 1학년이었다면 그런 느낌이었겠죠 -ㅅ-;; 확실히 설명하는게 더 힘드네요. 계속 설명을 하는데 뭔가 부족하고 그래서 그거 때문에 고생했던? 뭐 그런 시간이었습니다. 책에서 이런 내용을 봤었는데 이렇게 하라고만 했지 어떻게 하라고 잘 나와있지 않아 그랬는데, 이렇게 하게 되어서 좋았습니다.
* 개인적으로 항상 고민하는 부분 중의 하나입니다. 어떻게 하면 코드를 잘 짤 수 있을까. 그리고 회고 때에도 말했듯이 제가 작년 데블스 마지막 때 세미나를 하고 싶다고 했던 주제이기도 합니다. 변명삼아 말하자면 아직도 스스로가 남에게 이야기 할 수 있을 만큼의 능력과 자신감이 없어서 세미나를 피한 것도 있습니다 ;;; 사실 제가 한다고 하면 생각을 코드로 만드는 법(형진 선배의 말하듯이 코딩하기 부분) + 남이 만들어 둔 라이브러리의 사용 으로 하려고 했는데 과연 그게 괜찮은 방법인가에 대한 확신은 역시 좀 부족하군요... 하지만 모르긴 몰라도 언어에 사로잡히지 말고 로직이 우선해야 한다는 생각은 기본에 둬도 괜찮을 것 같습니다.
* 현재 구현해야 하는 부분을 해당 기능 하나로 좁혀서 거기에만 집중해야 한다. 해결해야 하는 문제의 범위를 최소한으로 줄이는게 코드를 잘 짜는 비결이다. 라고 하셨었는데 하다 보면 이것 저것 고려할게 많아지는 것 같습니다. 그래도 앞으로는 이번에 배운 것들을 코드를 짜는데 적용해보려고 노력해야 할 것 같습니다. 다만 이렇게 문제의 범위를 최소한으로 줄였는데도 해결을 못한다면 어떻게 하면 좋을지 하는 생각이 들지만 -_- 거기는 개인의 실력 나름인가 싶습니다.
* 남이 짠 스펙을 보고 구현한다는건 처음이었습니다. 대개는 학교 프로젝트 할 경우에는 무슨 기능이 필요하다는걸 처음부터 생각하고 만드는데 실제 일하는 쪽에서는 그렇지 않을테니 좋은 경험이 됐다고 생각합니다. 유닛 테스트에서 해당 테스트 케이스가 스펙이 될 수 있다는 부분에 대해서도 잘 생각해보고 또 적용해보기 위해 노력해봐야겠습니다. 근데 TDD의 단점에 대해서는 크게 말이 없었던 것 같아서 그 부분이 좀 아쉽습니다.
* 중앙광장에서 10분, 6층에서 20분간 서성이다가 용기를 내어 5P에 아무 연락도 없이 찾아갔습니다. (예전부터 제로페이지에 가입하고 싶었지만 1학기동안 내적으로 정리가 안된 것이 있어서 찾아오질 못했었습니다). 강의는 100% 이해 안되었지만 많은 도움이 되었고, 강소현 선배님께서 잘 알려주셔서 '이런게 있구나' 이정도 느낌은 받았습니다.
* 시간 빠듯했던 것 같은데 예를 들어서 알기 쉽게 설명해주시느라 고생하신 것 같습니다. 개념적으로는 보면서 참 신기하다는 생각이 들었습니다. 하지만 실제 구현 부분의 얘기를 하면서 이런 저런 연산을 한다는 부분에서는 갑자기 흥미가 -_- 연산 부분의 실제 구현에 대한 것도 나쁘지 않긴 했지만 C나 자바 등의 주요 언어에서의 라이브러리 사용 등의 설명도 있었으면 더 좋았을 것 같습니다.
* 정보보호의 내용을 은행 보안하는거랑 연관지어 생각하려고 했는데,, 머리의 한계로 안되데요 -ㅅ-;;; 음.. 이번 설명을 듣고 이래서 정보보호라는 것이 필요하다는 것을 많이 느낀 시간이었습니다. 그런데도 비밀번호는 바꾸기 귀찮네요 -ㅅ-;; 이러고a 짧은 시간에 핵심만 잘 요약해서 진행한 세미나였습니다.
* 개인적으로는 오면서 발표 주제들도 그렇고 내가 이거 알아들을 수 있을까 하는 생각이나 처음 보는 언어들에 대한 걱정같은 것도 있었는데 설명도 잘 해주시고 하셔서 그렇게까지 어려웠던건 조금 -_- 빼고는 없었던 것 같습니다. 일반적인 학교 수업시간에서는 배우기 어려운 실전적인 부분이나 기본 지식, 그리고 이런 저런 툴들에 대한 설명까지 5일 동안에 참 많은 부분들을 배운 것 같습니다. 그리고 마지막에 세미나를 정리하는 회고 부분의 진행 방식이나 분위기에 대해서도 좋았습니다. 말하신대로 이걸 다 기억하지는 못할테고 잊어버리는 부분도 많겠지만 그래도 다시 생각해보면서 배운 것들을 적용해보기 위해서 노력해볼 생각입니다. - [서영주]
- 서지혜 . . . . 19 matches
* "그냥"이라는 단어의 사용을 자제합시다.
* 디자인패턴 스터디에서 배운것을 적용해 볼 계획
* 신선한 동네 API사용
* Apache Hadoop 기반 대용량 분산 처리 및 마이닝 알고리즘(MapReduce를 이용한 ETL) 구현하기
* 사이냅 소프트의 신입사원 채용 테스트 프로그램을 해볼 예정
* irb처럼 수식을 입력하면 계산값을 돌려주는 cmd 계산기. java와 ruby로 각각 만들다가 요즘은 java만 사용중이다.
* 꾸준 플젝인듯. 처음엔 reverse polish notation으로 입력식을 전처리하고 계산하다가 다음엔 stack 두개를 이용해서 계산하여 코드 수를 줄임.
* 그러나 위의 두 방법으로는 '3-2-1' 식을 평가할 수가 없었다(0이 아니라 2가 나옴). 멘붕을 겪고 연산자가 -이면 바로 뒤의 숫자를 음수로 만들고 -연산자는 +로 변환. 이라는 방법을 사용했다.
* 디버거를 사용할 수 없는 환경을 난생 처음 만남. print문과 로그만으로 디버깅을 할 수 있다는 것을 깨달았다. 정보 로그, 에러 로그를 분리해서 에러로그만 보면 편하다. 버그가 의심되는 부분에 printf문을 삽입해서 값의 변화를 추적하는 것도 효과적이다(달리 할수 있는 방법이 없다..). 오늘 보게된 [http://wiki.kldp.org/wiki.php/HowToBeAProgrammer#s-3.1.1 HowToBeAProgrammer]에 이 내용이 올라와있다!! 이럴수가 난 삽질쟁이가 아니었음. 기쁘다.
* hadoop MapReduce를 이용한 ETL모듈
* hadoop MapReduce를 이용한 CF알고리즘, UI : ExtJS 4.0, 검색 : Lucene, 데이터 저장 : MySQL, Hibernate
* BigTable부터 시작된 대용량 데이터 분산 병렬 처리 기술의 컨셉정도를 안 것 같다. 1년여가 지났으니 매우 많은 개념들이 바뀌었을 듯 하지만 변하지 않는 아키텍처에 대한 그림을 그릴 수 있었다.
* 후에 BigTable보다 더 유명해져버린 Hadoop도 BigTable의 컨셉을 상당부분 차용하였기에(사실 '영감'을 받아서 시작했다는 말은 '따라만들었다'와 같은 말이라서.. 물론 시작만 모방) 이해하기 어렵지 않았다.
1. Apache Hadoop 기반 대용량 분산 처리 및 마이닝 알고리즘 구현하기
* 소스포지 뒤져서 찾아낸 리눅스용 2D 게임
* [java/reflection] - java의 classLoader와 reflection을 이용해 외부 클래스 메소드 호출하는 법
* 지혜누나 페이지에서 제일 많이 배우는거같네요 ㅋㅋ 뭔가 정보 저장에 용이한 형태? ㅋㅋ -[김태진]
- 스터디/Nand 2 Tetris . . . . 19 matches
* 스터디에 사용하는 사이트 -> http://www.nand2tetris.org/
=== 공부한 내용 ===
* Mux나 Demux같은 경우, 입력이나 출력이 너무 많을 경우, 작은 규모의 Mux를 여러 개 이용해서 큰 규모의 Mux를 구현해도 된다. 예를 들면, 4way Mux는 2Way Mux 3개를 이용해서 구현할 수 있다.
=== 공부 내용 ===
=== 공부 내용 ===
* Hack Machine language를 사용해서 프로그램을 작성해 봄.
e.g. A - 32일경우, M은 M[32]임. M을 사용할 때, A의 값은 memory의 address
* A-instruction 을 사용하면, value는 A에 들어간다.
A의 값이 M이 사용될 때는, 주소의 역할을 하고, D와 같이 사용할 때는 값 그 자체로 작용함.
* [http://nand2tetris.org/chapters/chapter%2004.pdf Chapter4 책 내용]
* [http://nand2tetris.org/lectures/PDF/lecture%2004%20machine%20language.pdf PPT 내용]
* MIPS 코딩하는 것을 생각하고 과제를 진행했는데, 현실은 MIPS 보다 더 하드코어했네요. Symbol도 사용안하고(사실 Cpu emulator만 사용해서 생긴 문제일 수도 있지만), 레지스터도 2~3개 밖에 사용하지 못하는 상황에서 작성하려고 하니 참 막막했습니다. I/O Handling 같은 경우 키보드 입력을 해결하려고 나름 생각을 해서 작성을 했는데, 결과물이 영 마음에 들지 않는군요. 아무튼 이번 시간에 느낀 것은 "High-Level Language가 왜 필요한가?" 가 되겠습니다. 사실 이 느낌은 어셈블리 시간에도, 컴퓨터 구조 시간에도 느꼈지만 말이죠. 이제 1/3정도를 진행했고, 계획대로라면 12월이 되기 전까지 1/2는 진행할 수 있을 것 같아서 기분이 좋네요. 무사히 진행해서 끝을 봤으면 하는 생각입니다. - [권영기]
=== 공부 내용 ===
지금까지 기본적인 논리 게이트를 (Nand만 사용해서) 구현하고, Combinational Chip 과 Sequential Chip까지 전부 구현했다. 지금까지 구현한 것을 모두 합치면 Computer Architecture가 만들어진다.
- 콤비반장의메모 . . . . 19 matches
만화 형사 가제트(Inspector Gadget)에서 콤비 반장(Chief Quimby)은 형사 가제트에게 비밀 지령을 내릴땐 항상 자동 폭파되는 특별한 메모지를 사용하곤 했다. 그러나 인터넷 시대를 맞이한 콤비 반장은 이제 메모지 대신 한번만 사용할 수 있는 파일을 사용하려고 한다. ["콤비반장의메모"]와 같은 일회용 정보는 컴퓨터로 어떻게 구현할 수 있을까.
* 환경 구축 비용이 비싸다는 단점
* 사용자가 한번 플레이 했다는 걸 네트워크로 확인해 보는 법 밖이 없나요? 씨리얼 키나 MD5키 같은 걸 사용해서~
''사용자가 한번 플레이 했다는 걸 미디어에 직접 기록하는 방법으로는 디지털 워터마킹이 있습니다. 이 방법은 네트워킹 없이도 문제를 해결할 수 있는 방법입니다만 전문적 지식이 필요합니다. 네트워크로 확인하는 가장 쉬운 방법은 클라이언트는 재생시 마다 서버에서 인증을 받고, 서버측에서는 미디어의 아이디를 확인하고 재생횟수를 저장하는 방법이 아닐까 싶습니다. 미디어의 아이디 생성은 MD5 같은 해쉬함수 정도면 충분 할것 같습니다. --["데기"]''
* 기본의 암호 알고리즘만 적적히 사용해도 괜찮은 어플리케이션을 만들 수 있을꺼 같아여!
''정보보호에 있어서 사실 어려운건 암호화 알고리즘보다 "어떤 순서와 조합으로 이들을 응용할 것인가"의 문제인 것 같습니다. --["데기"]''
* 사용이 간편하고 편리하다.
* 지워지는 미디어만 사용가능하다. (CD-R 로는 배포불가)
* 사용자가 재생 안한 파일을 그대로 복사한다면?
MGM이 11월 개봉한 20번째 제임스 본드 영화 '다이 어나더 데이' 홍보를 위해 제작한 DVD가 36시간 이내에 영화장면 일부와 예고편 내용이 사라져 영화평론가들에게 화제를 불러일으켰다.이 DVD는 새로 나온 음악과 영화정보도 알릴 수 있고 내용이 일정시간이 지나면 사라지므로 인터넷에 복제판이 뜰 염려가 그만큼 줄고 있기 때문이다.
이 기술을 개발한 플렉스플레이사와 스펙트라디스크사는 각기 DVD 겉혹은 내부에 화학물질을 첨가해 DVD를 이용하기 시작한 시간에서부터지정된 시간까지만 내용을 볼 수 있도록 하고 있다.
''네트웍을 이용하는 모든 클라이언트는 기본적으로 서버에서 다운로드 된 정보를 이용하는 것이므로, 암호화된 컨텐츠를 제공함으로써 임의로 재생하지 못하게 하지 않는 이상 불가한일이 아닐까? 암호화된 컨텐츠이더라도 암호가 깨질때까지 한시적으로 안전하겠지만.. :) --이선우''
- CppUnit . . . . 18 matches
VC 7.0 용 세팅 화면 들만 추가합니다. --NeoCoin
[http://janbyul.com/moin/moin.cgi/CppUnit/HowTo/Kor 이곳]에 VS2005용 설정방법을 간단하게 정리해둠. - 임인택
== 준비 2 - CppUnit을 사용할 프로젝트 열 때 해주어야 할 기본 세팅 ==
* 해당 프로젝트에만 적용시
=== GUI Test Runner 의 이용 ===
Runner 실행코드는 다음과 같이 MFC UI 의 Test Runner 를 이용한다.
Win API Programming 시에 Text Runner 를 이용하여 이용 가능. 다음과 같은 식으로 쓸 수도 있다.
=== assertEqual 의 이용 ===
코드를 보면 알겠지만, ASSERT 문들에 대해서 전부 매크로를 이용한다. 만일 이를 다른 언어들의 UnitTest Framework 처럼 assertEqual 이나 assert 문으로 쓰고 싶다면, 다음의 문장을 cppunit library 를 include 하기전에 추가해준다.
기타 자세한 내용들은 (flag 들) cppunit/portability.h 를 참조하면 된다.
싱가폴 국립대학의 소프트웨어 공학 프로젝트 수업에서 CppUnit을 사용하고 있는데, http://www.comp.nus.edu.sg/~cs3214s/tools/cppunitVC.html 에 가면 MSVC에서 CppUnit을 사용하는 방법을 쉽게 설명한 안내서를 볼 수 있다.
학교 수업에서 실질적이고 현장에서 직접 쓰이는 도구들을 사용하도록 유도하는 것이 정말 부럽고, 국내 프로젝트/실습 수업에서 그냥 교재의 챕터 하나씩 발표시키고 이를 지켜보고, 평가하고, 끝에 지엽적인 질문으로 발표자 골탕 먹이는 일 외에도, 교수(혹은 조교)가 해 줄 수 있는 것이 이렇게 많다는 것이 신기하다는; --JuNe
* vc7 용 cppunit 은 없나요.? 환경이 너무 많이 바뀌어서 저걸 적용하려니까 힘드네요..-_- (인스톨 도큐먼트 보니까 최소 6.0이라고 나와있기는 하던데..) ["임인택"]
main에서는 ExampleTestCase를 사용하지 않는데요...
Win32 API환경에서 MFC TestRunner를 사용하는 방법을 찾았으면 좋겠군요. 여러가지로 시도해보았는데 MFC에 대한 지식이 너무 부족해서 계속 실패하네요. --[이응준]
- DesignPatterns/2011년스터디/1학기 . . . . 18 matches
1. DIP에서 의존관계 역전이 대체 무엇을 역전시킨다는 것인지 알게되었다. 기존에는 Highlevel 모듈이 Lowlevel 모듈에 의존하는 식이었지만 인터페이스를 사용하여 Lowlevel 모듈이 Highlevel이 제공하는 인터페이스에 의존하게 함으로써 설계를 더 유연하게 만들 수 있다.
1. 0장 읽어오고 밑줄긋기(안함), 내용에 대해 이야기 나누기
1. 좋은 설계는 천재 프로그래머에 의해 한번에 만들어지는게 아니라 고민하는 프로그래머에 의해 지속적으로 만들어 지는 것 이다. 용기를 주는 말입니다.
1. 이 자리에 이 패턴을 적용해야할 이유를 대라. 패턴을 적용할 때에는 타당한 이유가 있어야 한다. 생각없이 적용된 패턴은 오히려 설계를 망친다.
1. 책의 일부 내용으로 미루어보아 절차지향적 패러다임이 판칠때 OO를 들고 나와 절차지향의 수호자들''--절차지향으로 코드 잘 짜지도 못 하는 허접들--''과 격한 키배를 수도 없이 펼치지 않았을까…
1. 무엇이든 생각없이 받아들이지 말고 장점과 단점을 모두 생각한 후에 지금 사용하기 적절한지 판단하고 적용하라는 아주 중요한 메세지가 반복되어 나온다. 다시 한번 되새기는 시간이 되었다.
1. 드디어 1장을 다 읽었다. 1장에 정말 중요한 내용이 많다는 것을 후기를 쓰려고 돌아보며 다시 한번 느낌. 이 책을 읽으면서 1장을 건너뛰고 각 패턴에 대한 설명만 찾아보는 사람이 있을 거라 생각하니 답답함. -L-
1. CRC 모델링에 대해 설명하는 부분에 '''도메인 영역의 언어로 문제를 기술하라'''는 말이 인상적이었다. get과 set을 사용할 필요가 없다는 걸 와닿게 하는 말이었다. 언젠가 정모에서 ''체험 OO 현장''같은 활동을 해보고 싶음. 우리 모두 객체가 되어보아Yo :)
1. 인터페이스를 이용한 캡슐화는 참 편리하다 Java를 만든사람들은 이걸 목적에 두고 만든것일까?
1. SE프로젝트에서 후회하는 부분에 대해 집어보고 갈수 있었던 유용한 시간.
1. '''Control''' : Model과 View 사이의 정보 교환을 제어하는 클래스군. 모델군의 데이터를 뷰가 출력하는데 용이하도록, 뷰에서 받은 데이터를 모델에게 적합하도록 가공해준다.
1. 과제나 프로젝트를 만들때 기능 구현에만 집중하지 말고 이렇게 스터디한 내용을 적용해보니 좋다. 뭔가 배우긴 했었구나 하는 생각이 든다.
1. 일단 java를 다시 공부해야겠고 책에 나온 내용을 정말로 내껄로 쓰려면 이번처럼 활용하는 일을 계속 해봐야겠다.
- HelpOnMacros . . . . 18 matches
매크로는 위키 페이지에 특수한 기능을 집어넣는 확장입니다. 대부분의 위키페이지는 매크로기능을 사용하지 않고 있지만 경우에 따라서 이러한 특수한 기능이 필요할 때가 있습니다. 예를 들어 RecentChanges 페이지에는 RecentChanges매크로를 사용하고 있고, SystemInfo 페이지에는 SystemInfo 매크로를 사용하고 있습니다. 각 페이지를 편집하거나 [[Icon(info)]]를 눌러 이전 정보로부터 페이지 소스를 보시면 매크로를 어떻게 사용하고 있는지를 보실 수 있습니다.
매크로는 {{{[[MacroName]]}}}과 같은 문법을 사용합니다. 매크로에 대한 인자가 필요한 경우가 있는데 각 매크로에 대한 자세한 설명은 해당 페이지에서 확인하실 수 있습니다.
{{{[[MacroName]]}}} 혹은 인자가 필요한 경우에는 {{{[[MacroName(arg1,arg2,arg3...)]]}}}처럼 사용합니다.
* 모니위키 1.1.5 부터는 매크로에 대한 별명을 지원합니다. {{{[[각주]]}}}라는 식으로 써서 {{{[[FootNote]]}}}의 별명으로 사용하실 수 있습니다.
이렇게 사용하려면 다음과 같은 설정을 `config.php`에 넣어주셔야 합니다.
$myplugins=array("각주"=>"FootNote",...); # ...는 생략을 뜻합니다. 다른 내용이 없으면 쓰지 않으셔야 합니다.
||'''매크로'''||'''설명'''||'''사용례'''||
||{{{[[FullSearch]]}}} || 페이지 내용 찾기 || FindPage ||
||'''매크로'''||'''설명'''||'''사용례'''||
||{{{[[TableOfContents]]}}} || 목차 매크로 || 현재 보고계신 페이지에서 사용중입니다. ||
||'''매크로'''||'''설명'''||'''사용례'''||
||'''매크로'''||'''설명'''||'''사용례'''||
||{{{[[UserPreferences]]}}} || 사용자 환경설정 || UserPreferences ||
== 사용례 ==
각각의 매크로에 대한 예제는 각 매크로 해당 페이지에서 보실 수 있습니다. 간단한 예로 SystemInfo페이지에서 사용하는 {{{[[SystemInfo]]}}}매크로입니다. {{{[[SystemInfo]]}}}를 임의의 페이지에 집어넣으면 다음과 같이 보여집니다:
- Java Study2003/첫번째과제/방선희 . . . . 18 matches
* JVM이 알아서 더 이상 사용되지 않는 메모리를 check해서 system에 반납해 준다.
* VM이란? : 자바 언어 및 그 실행 환경의 개발자인 썬 마이크로시스템즈에 의해 사용된 용어이며, 컴파일된 자바 바이너리 코드와, 실제로 프로그램의 명령어를 실행하는 마이크로 프로세서(또는 하드웨어 플랫폼) 간에 인터페이스 역할을 담당하는 소프트웨어를 가리킨다.
프로그래밍을 할때 데이터베이스에 대한 접근이라든가 또는 다른 시스템에 대한 참조를 할때 굳이 그 시스템에 대해서 세세하게 알필요 없이 그저 외부에 주어진 인터페이스만을 이용해서 접근하면 됩니다. (예를 들자면 어떤 기능을 이용할때는 이런 메소드를 호출하면 된다. 어떤 값을 저장하기 위해서는 이런 메소드로 접근하면 된다 정도). 빈즈에 대한 내용은
* 이 내용들을 대충이라도 이해했으면 될꺼 같군요. 역시 마찬가지로 실제로 프로그램을 돌게끔 만들지를 못한거 같군요. 한번 해 보세요.
eclipse 나 Editplus의 사용법을 제대로 알고 다시 코드를 작성해보겠습니다.
* Java란 프로그램언어는 enterprise 급 기업의 web시스템에서부터 작은 핸드폰에 이르기까지어디든지 사용할 수 있다. 다시 말해 Java를 할 줄 알면 어느 곳에나 적용 가능한 프로그램을 개발 할 수 있다는 말이다. 그 뿐만 아니라, Java로 개발된 시스템은 다른 언어로 개발된 시스템보다도 훨씬 쉽게 확장이 가능하다.
* Java는 보안능력이 뛰어나다. 예를 들어 네트워크를 통해 내 PC로 download된 Java로 개발된 프로그램은 일반적으로 그 능력이 제한된다. 다시 말해 바이러스처럼 작용할 수 없다는 말이다 (이점은 MicroSoft의 Active X와 비교된다).
* Java를 이용해 재사용 가능한 object를 만들 수 있다. 이 object는 향후 다른 프로그램내에서 그냥 재사용 가능하다. 강력한 Java의 재사용성은 Java가 가지고 있는 장점 중에서도 가장큰 장점이라고 말할 수 있다.
예를 들어 A라는 회사에서 인사 시스템을 Java로 개발하여 사용하고 있다고 가정하자. 다른 B라는 회사에서도 같은 인사 시스템을 개발하고자 한다면, B회사는 A회사의 인사 시스템 중 승진과 관련된 일부분을 가져와 그대로 사용할 수 있다.
* 모호한 언어적 특성, 비결정적 자바 가상머신, 표준화된 실시간 API가 없는 문제 때문에 실시간 응용이 어렵습니다.
- JavaStudy2004/자바따라잡기 . . . . 18 matches
=== 수업 내용 ===
자바(JAVA)하면 섬나라 자바를 연상케 한다. 그러나 미국 사람들에게 자바는 에스프레소 커피로 유명한 커피 체인점을 생각 하게 된다. 유래는 커피체인점이고, 커피의 대명사로도 사용된다.
자바는 가전 제품에 들어갈 소프트웨어를 만들기 위해 탄생했다. 자바를 개발한 사람은 선 마이크로시스템즈 사의 제임즈 고슬링(James Gosling)이라는 사람이다. 그는 특정한 컴퓨터 칩에 대해 컴파일하여야 하는 널리 알려진 컴퓨터 언어인 C 언어의 문제점, 또 가전 제품의 긴 수명으로 인한 완벽한 호환을 가진 소프트웨어의 개발 요구, 가전 제품에 사용될 소프트웨어의 높은 신뢰성 필요 등의 문제에 대한 해결방안을 모색 해야만 됬다.
이 문제를 해결하기 위하여 고슬링은 C와 C++를 개조해서 해결을 해보려고 시도를 했던 것이다.그래서 C언어의 불필요한 부분이나 문제가 될 부분들을 제거한 새로운 언어를 개발하게 되였는데, 이것이 바로 자바인 것이다. 최초로 자바를 이용한 프로젝트는 가전 제품과 전기 기기들을 통합하여 가정 환경에 새로운 인터페이스를 제공하는 소위 그린 프로젝트(Green Project)라는 것 이였다. 그러던 1993년, 그래픽 기반의 월드와이드웹이 발표되고 자바의 개발자들은 곧 이러한 웹 기반의 응용 프로그램에는 자바와 같은 기기(컴퓨터 및 그 운영체제)로부터 독립된 언어가 이상적이라는 것을 발견하였다. 그리하여 그들이 개발한 것이 나중에 핫자바(HotJava)로 이름이 바뀐 웹러너(WebRunner)라는 웹 브라우저였다. 이것이 최초로 자바를 지원한 웹 브라우저가 되었다. 자바라는 이름은 지역의 어느 커피점 안에서 얻었다. 그래서 지금은 웹 페이지에서 항상 끓고 있는 커피의 상징을 볼 수 있다.
*1. 최근의 컴퓨터 분야의 용례에서, 가상머신은 자바 언어 및 그 실행 환경의 개발자인 썬 마이크로시스템즈에 의해 사용된 용어이며, 컴파일된 자바 바이너리 코드와, 실제로 프로그램의 명령어를 실행하는 마이크로프로세서(또는 하드웨어 플랫폼) 간에 인터페이스 역할을 담당하는 소프트웨어를 가리킨다. 자바 가상머신이 일단 한 플랫폼에 제공되면, 바이트코드라고 불리는 어떠한 자바 프로그램도 그 플랫폼에서 실행될 수 있다. 자바는, 응용프로그램들이 각각의 플랫폼에 맞게 재작성 되거나, 다시 컴파일하지 않아도 모든 플랫폼에서 실행되는 것을 허용하도록 설계되었다. 자바 가상머신이 이를 가능하게 한다. 자바 가상머신의 규격은 실제 "머신"(프로세서)이 아닌 추상적인 머신을 정의하고, 명령어 집합, 레지스터들의 집합, 스택, 가배지를 모은 heap, 그리고 메쏘드 영역 등을 지정한다. 이러한 추상적, 혹은 논리적으로 정의된 프로세서의 실제 구현은, 실제 프로세서에 의해 인식되는 다른 코드, 혹은 마이크로프로세서 그 자체에 내장될 수도 있다. 자바 소스 프로그램을 컴파일한 결과를 바이트코드라고 부른다. 자바 가상머신은, 실제 마이크로프로세서의 명령어에 그것을 대응시키면서 한번에 한 명령어씩 바이트코드를 해석하거나, 또는 그 바이트코드는 실제 마이크로프로세서에 맞게 JIT 컴파일러라고 불리는 것을 이용해 나중에 컴파일될 수도 있다.
*2. IBM에서 말하는 가상머신은, 다중사용자가 자원을 공유하는 운영체계를 말하며, 각 사용자는 마치 그 시스템의 모든 자원을 혼자 독점하는 것처럼 느낀다.
*3. IBM에서 말하는 가상머신이라는 용어는 또한, 내재된 콘트롤 프로그램에 의해 교대로 관리되는 운영체계를 의미하는데 사용되기도 한다. 그렇기에, IBM의 VM/ESA는 IBM S/390시스템 상의 다중 가상머신을 조정할 수 있는 것이다.
*4. 그 밖의 경우에서의 가상머신은, 컴퓨터를 실행하는 운영체계나, 어떤 프로그램을 의미하기 위해 사용되기도 했었다. 이를 인용하면
* '''J2SE 설치와 [Eclipse]툴 사용, 컴파일, 실행'''
- MFC/CollectionClass . . . . 18 matches
|| Map || 순서가 없는 데이터 항목의 집합. 키값을 통해서 각각의 컬렉션에 접근한다. 데이터의 검색에 유용하다. 그렇지만 순차적인 접근이 필요한 곳에서는 배열이 더 좋다. ||
''두가지 형태로 구현되어있다. 첫번째는 함수템플릿을 이용한 형태로 구현되어있고, 두번째는 템플릿을 사용하지 않는 방법으로 옛 버전의 VC++에서 부터 사용되어온 방식이다. 현재는 템플릿을 이용한 방법을 사용하는 것이 좋다.''
객체의 컬렉션을 정의하는 템플릿 클래스는 MFC의 CObject클래스에서 파생된다. 이런 템플릿 클래스는 기본 데이터 형식이나 사용자가 정의한 클래스, 구조체를 포함한 어떠한 종류의 객체도 저장, 관리하는 것이 가능하다. 이런 클래스들은 내부적으로 복사를 하기 때문에 복사생성자를 만들어야 한다.
CArray<저장될 객체의 형식, 사용되는 인수의 형식> anArray
첫번째 타입 인자는 저장될 요소의 타입을 말하며, 두번째 인자는 멤버함수가 사용하게될 인자를 말한다.
|| {{{~cpp operator[index]}}} || GetAt()과 동일하게 작동하며, built-in 배열과 동일한 사용법을 제공한다. [[BR]] {{{~cpp pointArray.SetAt}}}(3, NewPoint)[[BR]]{{{~cpp pointArray[3]=NewPoint}}} ||
CList<저장될 객체의 형식, 사용되는 인수의 형식> aList
첫번째 타입 인자는 저장될 요소의 타입을 말하며, 두번째 인자는 멤버함수가 사용하게될 인자를 말한다.
|| {{{~cpp GetNext(POSITION)}}} || 전달된 위치 변수를 증가시킨다. 마지막 객체에서 사용될때에는 NULL을 리턴한다. ||
|| {{{~cpp SetAt(POSITION, ObjectType)}}} || 첫번째 인자의 위치에 두번재 인자의 객체를 할당한다. POSITION 의 유효성을 검사한후에 사용해야한다. ||
CMap<키 형식, 키 인수 형식, 저장될 객체의 형식, 사용되는 인수의 형식> aMap
맵은 객체와 키의 조합을 저장한다. 키는 맵에 할당된 메모리의 특정 블록안에 객체가 저장되어 있는지를 결정하는데 사용된다. 키를 맵안의 엔트리의 어드레스로 계산될 수 있는 정소로 변환하는 과정을 해실(Hashing)이라고 한다.
|| {{{~cpp operator[]}}} || 배열과 동일한 형태로 사용하는 것이 가능 ||
|| {{{~cpp SetAt(POSITION, ObjectType)}}} || 첫번째 인자의 위치에 두번재 인자의 객체를 할당한다. POSITION 의 유효성을 검사한후에 사용해야한다. ||
- MineFinder . . . . 18 matches
* 개발방법 : XP 의 일부분 소폭적용.
* 추후 DP 로 확장된다면 StrategyPattern 과 StatePattern 등이 이용될 것 같지만. 이는 추후 ["Refactoring"] 해 나가면서 생각해볼 사항. 프로그램이 좀 더 커지고 ["Refactoring"] 이 이루어진다면 DLL 부분으로 빠져나올 수 있을듯. ('빠져나와야 할 상황이 생길듯' 이 더 정확하지만. -_-a)
* 지뢰찾기 프로그램은 윈도우에 기본적으로 내장된 프로그램을 이용한다.
* 컴퓨터가 실패했을 경우 자동으로 다시 시작하여, 사용자가 중지시키거나 지뢰를 다 찾을때까지 프로그램을 계속 진행시킨다.
* Visual C++ (2개 열어두고 쓴다. 하나는 해당 부분부분 연습용 코드 만들 곳. 하나는 메인소스 만들 곳)
지뢰찾기 프로그램의 윈도우클래스 이름이 '지뢰 찾기' 였다. 윈도우 OS 의 특징상 해당 윈도우 핸들간 메세지의 발생에 따라 해당 윈도우프로시저에서 처리가 된다. 해당 윈도우 핸들은 윈도우 클래스 이름을 아는 이상 FindWindow 함수를 이용해서 찾으면 될 것이다.
원리는 간단하다. 윈도우 핸들을 얻을 수 있다면, 해당 윈도우에 대한 DC를 얻을 수 있을 것이다. DC를 얻을 수 있다면, BitBlt 을 이용, 비트맵을 메모리DC 쪽으로 복사할 수 있을테니까. (간단한 캡쳐 프로그램시 이용할 수 있다.) 단, 화면을 복사하려는 프로그램이 다른 프로그램에 가려지면 안되겠다.
* 지뢰찾기 프로그램은 윈도우에 기본적으로 내장된 프로그램을 이용한다.
* 컴퓨터가 실패했을 경우 자동으로 다시 시작하여, 사용자가 중지시키거나 지뢰를 다 찾을때까지 프로그램을 계속 진행시킨다.
|| CMineSweeper || 실질적인 두뇌에 해당되는 부분. CMinerController 와 CMinerBitampAnalyzer 를 멤버로 가지며, 이를 이용하여 게임상황분석, 지뢰찾기관련 판단 등을 한다 ||
* 비트맵의 종류가 한정적이라는 점에서 착안, Block 전체에 대한 비교대신 한줄에 대한 비교로 바꿨다. (블럭마다 숫자들의 색이 다르므로, 이를 이용하면 속도 향상을 이끌어 낼 수 있겠다.)
검색을 하다가 우연히 [MineFinder] 페이지를 발견했습니다. 상당히 재미있더군요, 소스를 무척 깔끔하게 이해하기 쉽도록 만드셔서 무척 인상깊게 봤습니다. 다름이 아니오라 질문이 있어서 이렇게 글을 남깁니다. 지뢰찾기 알고리즘에서 각 블럭의 상태를 비트맵으로 비교를 하고 있는데 지뢰찾기 윈도우의 비트맵 데이타를 어떻게 추출하셨는지 궁금합니다. 제가 윈도우 초보라서 그런지 몰라도 무척 궁금하네요. 그 방법을 다른 응용 어플리케이션에서 얼마든 응용할 수 있을 것 같아서요. 답변 부탁드립니다. --동우
관심있게 봐 주셔서 감사합니다. ^^ 제가 한 비트맵 데이터 추출 방법은 일반적인 윈도우 캡처 프로그램의 원리와 비슷합니다. FindWindow 를 이용, 지뢰찾기 프로그램의 윈도우 핸들을 얻은뒤, 이를 가지고 해당 윈도우의 비트맵을 얻어내는 것이지요. 기타 제작 과정과 아이디어는 MineFinder 페이지에 서술해놓았습니다. --[1002]
리소스 화일은 그냥 화면캡쳐한 뒤 포토샵에서 잘랐습니다. ;) (좀 노가다 틱하지만 가장 간단한 해결책이 아닐까 하는 생각. 2년전 일이여서 정확히 기억 안나지만 95용 지뢰찾기와 2000용 지뢰찾기 2번 작업했었을겁니다. 약간 그림이 다르고 이미지좌표도 조금은 달라서. ^^)--[1002]
출처(링크)만 표기하시면 자유롭게 이용하셔도 됩니다. 홈페이지 링크주세요. ^^ (혹시 전에 지뢰찾기 어셈레벨에서 분석하여 MineFinder 만드신 분이신가요? 저는 인간까지만 모델링 했지만, 신을 모델링한. ^^;) --[1002]
- ProjectPrometheus/CookBook . . . . 18 matches
=== Python 에서의 한글 사용 ===
matcher.group(1); // 사용 (교체하거나 여러가지 할수 있음)
regular expression 패턴을 정의하기 위해서 ["Komodo"] 를 이용할 수도 있다. 또는 Seminar:TddRegularExpression 을 시도해보는 것도 좋다. ["1002"] 는 Python Interpreter 를 이용, 표현식을 찾아냈다.
물리적인 모래시계가 없을 경우 사용할만한 모래시계 소프트웨어
Python 에서는 urllib 와 httplib 를 이용한다. Python document 의 httplib - examples 를 참조하면 GET 의 예와 POST 의 예가 나온다.
Java 에서는 HttpURLConnection 을 이용한다. 관련 코드는 http://www.javafaq.nu/tips/servlets/index.shtml 를 참조.
Python 에서의 string.urlencode 과 마찬가지로 GET,POST 로 넘기기 전 파라메터에 대해 URL Encoding 이 필요하다. URLEncoder 라는 클래스를 이용하면 된다.
=== GET, POST 인자의 내용중 한글을 받을때 주의 사항 ===
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 참고
다음은 Python 을 이용, Cookie, GET/POST 변수들을 채운뒤 해당 사이트의 결과물을 인쇄하는 소스.
<init-param user="DB 사용자 ID"/>
<init-param password="DB 사용자 Password"/>
3. Data Source 를 근거로 Connection 얻고 Connection 을 이용.
6. ResultSet 객체 이용하기.
build_zpLocal.xml ( .../Prometheus/bin 에 빌드하는 스크립트 ) 를 이용, 실행되는 위치와 관계없는 곳에 일단 컴파일을 하고, 테스트를 돌리게 한다.
["Ant"] 를 이용하면 된다. Ant 의 경우 컴파일 & 배포할때 수정된 화일만 덮어쓰기를 한다. CVS & ["Ant"] 조합이면 해결이라 생각.
- UnixSocketProgrammingAndWindowsImplementation . . . . 18 matches
PF_INET : 인터넷 프로토콜 체계 사용
PF_INET6 IPv6 : 프로토콜 체계 사용
PF_UNIX : 유닉스 방식의 프로토콜 체계 사용 (프로세스간 통신)
PF_NS XEROX : 네트워크 시스템의 프로토콜 체계 사용
PF대신 AF를 사용해도 무방. (ex. PF_INET -> AF_INET)
// 우리가 사용하는 프로토콜인 TCP, UDP가 0이므로 0으로 써도 무방하다.
// 구체적인 프로토콜을 선택할 때 사용하는데 대부분의 응용 프로그렘에서는 0으로 지정하면 된다.
// sockaddr_in 은 TCP/IP체제 이므로 AF_INET만 사용한다. -> TCP/IP는 인터넷 기반이므로.
// AF_INET/PF_INET -> 인터넷 프로토콜 체계 사용.
NULL : 임의의 포트를 할당한다. client에서 사용한다.
// u_short sin_port 은 Big-Endian을 사용한다.
// 따라서 Little_Endian을 사용하는 시스템에서는 Big-Endian으로 바꿔줘야한다.
inet_addr(): 주소를 long형으로 계산하고 htonl()를 사용해 Big-Endian으로 변환 후 값을 return 한다.
// 타 시스템으로 이식을 위해 되도록 send를 사용하는 것이 좋다.
// 타 시스템으로 이식을 위해 되도록 send를 사용하는 것이 좋다.
◎ UNIX 체계에서 사용하던 함수들의 헤더파일이 Windows 기반에서는 존재하지 않을 수도 있다.
... 내용
- ZeroWiki/제안 . . . . 18 matches
* 작년에도 고치려고 생각은 해봤던 건데… ZeroWiki 첫 화면이 되게 난잡하지 않아요? 최근 변경내역 말고 다른 부분 유심히 보는 사람이 몇명이나 될지 가끔 궁금합니다. 사실 전 그 위에 공지나 아래 링크도 자잘하게 수정한 적은 꽤 있었는데 고쳐도 뭐 눈에 잘 띄질 않고… 어떤 내용이 들어가고 어떤 내용이 빠지는 게 좋을지 이야기해보고 싶어요. - [김수경]
* 모든 것을 돈을 처발라 해결하는 위키미디어 재단의 작품답게, 최적화가 *거의* 안 되어있음. 내부 메모리 10~20MB 사용은 예삿일. 소스 좀 뜯어보면 이리 저리 얽히고 섥혀 정신이 하나도 없음.
* 위키 엔진 선택은 안 그래도 논의하려고 했던 주제입니다. [http://www.dokuwiki.org DokuWiki]나 [http://www.mediawiki.org MediaWiki]를 후보군으로 염두에 두고 있습니다. 다만 무겁고 복잡한 MediaWiki보다는 깔끔한 DokuWiki를 더 비중있게 고려하고 있습니다. 하지만 위키 엔진과 관련해 가장 중요한 고려 사항은 nForge MoniWiki와 혼용으로 인한 문법 이중화의 어려움이라서 이 문제에 대한 대책이 필요합니다. - [변형진]
=== 오래된 내용 ===
지금 이 페이지처럼 오래된 내용이 남아있는 페이지를 어떻게 해야할지 논의해보고 싶습니다. 대부분의 페이지에서는 오래된 내용이 쌓여 좋을 때가 많지만 이 페이지 같은 경우 위키에 대한 제안과 논의가 이루어지는 페이지인데 이미 과거에 해결된 제안과 그에 대한 논의를 기록을 남겨놓는 것이 좋은 것인지 잘 모르겠습니다. 그냥 그대로 놔두면 현재 제안과 구분하기 쉽지 않으니까요. 제가 생각하는 선택지는 네가지 입니다.
* 이 제안은 ThreadMode와 DocumentMode에 관한 논의를 포함하고 있습니다. 이 페이지는 애초에 ThreadMode를 목적으로 작성됐고 그렇게 의견이 쌓여왔습니다. 2번 선택지는 ThreadMode의 유지를, 3번 선택지는 ThreadMode를 DocumentMode로 전환하여 정리하는 것을 의미하는 것 같습니다. 1번 선택지는 DocumentMode에 더 적합한 방식이고, 4번 선택지는 경험의 전달이라는 위키의 목적에 따라 고려 대상에 올리기도 어려울 것 같아 제외합니다. 사실 이런 제안과 논의가 나열되는 페이지에서는 결론을 정리하는 것보다는 그 결론을 도출하기 까지의 과정이 중요하다고 생각합니다. 따라서 DocumentMode로의 요약보다는 ThreadMode를 유지하는게 좀더 낫다고 생각하며, 다만 필요하다면 오래된 내용을 하위 페이지로 분류하는 것도 좋다고 생각합니다. - [변형진]
|| YouNeedToLogin || 페이지 수정에 관한 YouNeedToLogin 모드 적용 제안 ||
ZeroWiki 에 보면 ''ZeroWiki는 ZeroWikian, ZeroPagers들의 프로젝트 & 스터디 공간으로 쓰이며, 공개적으로 운영되고 있다.'' 라고 되어있습니다. ZeroWiki가 ZeroWikian 의 범용 위키인지, 아니면 특화된 목적의 위키인지, 확실히 했으면 좋겠습니다. --["zennith"]
내가 ZeroWiki 글을 처음 썼었을때가 좀 예전이긴 하지. 그때는 주로 페이지를 생산해내는 중심체들이 프로젝트 그룹이였고 (지금도 그렇지만, 예전에 비해 개개인들의 독립된 활동들이 많아졌지.) 일단 사람들 스스로가 학습용도나 개인훈련기록용으로 잘 이용하는 것 같고. 그래서 특별히 그에 대해 구분하고 싶은 생각은 없는중임. (단, 개인페이지내에서의 진행기록들이 너무 많아지는 것 같아서. 계층 위키에 대해서 개인적으로 조금 경계하는중.) 의견있으면 계속.~ --["1002"]
전 살아가는 것 자체가 크게 보자면 배우고, 발전(어떤 의미에서든)해가는 것이라고 생각합니다. 그런 의미에서 제 마음대로 위키를 사용하고 있었는데, 아무래도 하나의 사회에는 규약이란건 없더라도 지향하는 바는 있을거란 생각이 들어서 제안을 남겨 봤습니다. 전, ZeroWiki 가 nosmok 처럼 general purpose 해졌으면 합니다. --["zennith"]
그리고 일반적 목적이라.. 글쌔. 어떤 목적으로 이용하고 싶은건데? --["1002"]
각 분야의 기술들에 대한 페이지를 열었으면 합니다. OS, 하드웨어, 네트워크등의 카테고리 안에 클러스터링등의 기술들을 말입니다. 각 페이지는 소개하고 싶은 개개인들이 만들고 단순한 소개에서 부터 관심있는 사람들끼리 자료 공유, 토론의 장으로 이용했으면 합니다. 이렇게 하면 스터디 그룹을 만들기가 더욱 쉬워질테고 여러 분야를 폭 넓게 알 수 있을거라 생각합니다.--현철
''필요하시면 페이지를 열고 이용하세요. 만일 게시판이라면 해당 주제에 대해서 관리자에게 '게시판 열어주세요' 라고 요청을 하는 일이 필요하겠지만, 위키는 게시판이 아닙니다. 필요하시면 직접 카테고리를 열고, 글을 쓰시면 됩니다. (자세한 설명은 ["HelpContents"] 페이지를 반드시 참조해주시기 바랍니다.) 현재 ZeroWiki 는 스터디 용도에 대해서 주제에 제한을 가하지 않습니다. --석천''
- html5/canvas . . . . 18 matches
* IE를 제외한 모든 주요 브라우저(?)에서 사용할 수 있는 기능. IE에서 사용하고 싶으면 Explorer Canvas, uuCanfas.js 등의 라이브러리를 사용하여 제한적 기능으로 사용할 수 있다.
= 사용 방법 =
* img 요소의 DOM 객체는 Image 생성자를 사용하여 만들 수도 있다.
* video 요소의 DOM 객체를 사용할 경우 drawImage()를 호출한 시점에서 재생되는 프레임을 그려준다.
* 캔버스의 API를 이용하여 그려진 선들의 집합.
* 그리기 컨텍스트가 제공하는 API를 이용하여 직선, 베지에 곡선, 원호 등 다양한 패스를 그릴 수 있다.
1. 캔버스의 API를 이용하여 패스 그리기.
* stroke(), strokeRect() 등을 이용하여 그린 선의 색이나 스타일을 지정한다.
* fill(), fillRect() 등을 이용하여 그린 선의 색이나 스타일을 지정한다.
* CSS3의 색 지정 방법을 전부 이용할 수 있다.
* 선형 그라데이션, 원형 그라데이션을 적용할 수 있다.
* img 요소나 video 요소 혹은 다른 캔버스를 사용하여 패턴을 지정할 수 있다.
* globalAlpha 속성을 이용하여 투명도를 지정할 수 있다.
* 그리기 컨텍스트의 메서드를 이용하여 좌표를
* 캔버스가 가진 toDataURL()을 호출하여 캔버스 내용을 URL로 얻어올 수 있다.
- html5/offline-web-application . . . . 18 matches
* 스마트폰이나 넷북 등의 모바일 웹 단말기에서 네트워크 상태와 관계없이 계속 사용할 수 있다.
* 클라이언트에 캐시된 리소스를 사용하여 동작한다.
* 웹 어플리케이션을 오프라인에서도 사용할 수 있도록 리소스를 클라이언트 쪽에 캐시하기 위한 기능.
* 어플리케이션 캐시를 이용하면 웹 어플리케이션에 있어 필수적인 리소스는 캐시 매니페스트에 기록하여 브라우저에 의해 자동으로 캐시되게 한다.
* 업데이트 체크는 캐시된 웹 어플리케이션에 사용자가 액세스할 때 이루어진다. 혹은
* JavaScript API를 이용하여 명시적으로 체크할 수 있다.
* 줄 바꿈 코드는 '\r\n', '\n', '\r' 모두 사용할 수 있다.
* 상대 경로를 이용할 때는 매니페스트를 기준으로 하여 URL를 표시한다.
* 하나의 URL이 여러 개의 폴백 URL에 일치할 때는 가장 긴 폴백 URL이 적용된다.
* FALLBACK 섹션은 온라인/오프라인에 상관없이 적용된다.
* NETWORK 섹션에 지정한 URL이 다른 섹션 내용과 충돌할 경우 브라우저에 따라 예측하지 못하는 동작을 보일 때도 있다.
* 원칙적으로 금지하고 허용할 것들만 정의하는 방식이다.
* 제한을 피할 수 있어 편리하지만 사용시 신중을 기해야한다.
* JavaScript를 이용하면 어플리케이션 캐시의 동작을 세세하게 제어할 수 있다.
|| IDLE ||최신 캐시를 이용 중 ||
|| UPDATEREADY ||최신 캐시를 이용할 수 있음 ||
* 어플리케이션 캐시를 최신 내용으로 바꾼다.
* 개발 중에는 어플리케이션 캐시를 사용하지 않는다.
- 데블스캠프2011/첫째날/후기 . . . . 18 matches
* 전날 누나/형들이 프로젝트하면서 nForge를 쓰시기에 '저건 뭔가?!' 하고 있었는데 오프닝하면서 바로 해결되었지요.. 문제는 SVN을 제대로 사용하는 법을 아직 잘 모르겠다라는 거일까요. 뭔가 똑같이 따라했는데 제대로 안된 느낌! (그러나 종하형 디스하는거만큼은 어렵지않게 되더군요.ㅋㅋ)
* 처음 오프닝에서는 nForge를 처음으로 써 보게 되었습니다. 제로페이지 홈페이지 들어가면 링크는 걸려 있는데 항상 들어가 보기만 하고 여긴 뭐지? 라고만 생각했던 그런 곳이었는데 사용해 볼 수 있어 좋았습니다.
* 데블스캠프의 가장 중요한 부분인 기록을 위해서 SVN과 위키의 사용법에 대한 설명을 하는 시간. 사실 세 번째니만큼 그렇게까지 어색한 느낌은 아니었습니다. 오히려 세 번째인데도 SVN의 사용법을 완벽하게 알고 있지 못 한 자신에 더 놀랐습니다 -_- 배웠다고 썩히지 말고 좀 더 자주자주 쓰도록 노력을 해 봅시다...
* 전 늦게와서 오프닝은 잘 못들었기 때문에 svn을 활용해보지는 못했네요 ^^; 하지만 팀프로젝트를 할 때 편리한 프로그램인 것 같습니다.
* 개발자로서 나가는 진로에 대해서 알게됐다는 점이 은근히 크게 도움이 됐습니다. 이미 알고있는 사실이라고 생각했던 것이 다르기 때문에 얻어가는 것이 많았던 것 같습니다. 그리고 개발자로서의 자세 정체되지 않은, 인간관계. 그런 것에 대해 배운 다는 것이 매우 큰 장점이었던것 같습니다. 데블스캠프 첫날 첫 시간에 맞는 개론적인 내용이었던 것 같습니다.
* Play with Java에서는 1학년 때 승한이형이 여러 사람들이 함께 프로젝트를 진행할 때 누군가 어느 부분을 수정했는지 알 수 있게 해 주는 부분이 있다고 하셨었는데, 그걸 전역하고 나서야 다뤄보네요 -ㅅ-;; 쩝... 아무튼 간단한 프로그램을 만드는 것이라 재미있게 사용법도 익히고 좋았습니다. 자주 써 먹어야겠네요. ㅋ~
* java를 이번학기에 수강을 하였기 때문에 어느정도 자신이 있었습니다만, 지원누나의 설명을 들으면서 역시 알아야 할것은 많구나 라는 생각이 들었습니다. 특히 SVN을 사용한 커밋과 JUnit은 팀플할때에도 많은 도움이 될 것 같아 좀더 공부해 보고 싶어졌습니다. 저번 java팀플때는 Github을 사용했었는데 SVN과 무슨 차이점이 있는지도 궁금해 졌구요. JUnit Test는 제가 실제로 프로그래밍 하면서 사용하였던 원시적인 test와 많은 차이가 있어서 이해하기 힘들었지만 이 또한 더 사용하기 좋은 기능인것 같아 점 더 공부해 봐야겠습니다.
* 코드 중심의 팀프로젝트 경험이 없어서 SVN을 쓰게 된지 얼마 안됐는데. 참 유용한듯 싶습니다. 둘이서 할때는 커밋이나 업데이트에 문제가 거의 없었는데, 규모가 커지면 심각한 문제를 야기할 수 있다는 사실을 알게 됐습니다..-_-;; JUnit도 유익한 시간이었습니다. 테스트 기법에 대해서는 더 공부를 해봐야겠지만. 극히 일부분의 테스트케이스를 직접 입력한다는 점에는 조금 의문이 있었습니다.. 대량의 테스트케이스를 자동으로 생성하는 부분에 관심이 가네요. 또 저는 메인으로 실행하지 않아도 된다는 점보다 문서화가 용이하다는데에 느낌이 확 오더군요. 유효한 테스트케이스가 축적될수록 유지보수하는데 도움이 될테니까요.
* 자바 기본 + 이클립스 + JUnit. 사실 다른 의미로 상당히 아쉬운 세미나였습니다. 뭐가 아쉬웠냐 하면 1학년들한테 필요한 세미나일텐데 1학년이 적었다는 점 -_- Subclipse는 활용도가 무척 높아 보입니다. 쓰는 버릇을 들여두는 것이 좋을 것 같아요.
* 툴을 잘 쓰는 것도 기술이라는걸 느끼게 해주는 시간이었다고 생각합니다. 학교 수준에서는 거의 그냥 이클립스만 주물러대는데 어떤 유용한 기능들이 있는지 잘 봤습니다. 개인적으로는 페어 프로그래밍으로 다른 사람의 코딩 방식을 볼 수 있었던 것도 좋은 경험이 됐다고 생각합니다.
* 새내기들과 tool을 접해보지 않은 학생들이 듣기에 적합했던 세미나였다고 생각합니다. 새내기에게는 C가 아닌 언어의 문법을, 다른 학생들에게는 JUnit과 Subversion실습을 할 수 있었던게 좋았습니다. 개인적으로는 태진이와 PP를 해서 좋았습니다. 그리고 농담식으로 나왔던 "선 커밋을 해라." 라는 말이 정말 인상이 깊었습니다. 왜일까요. 이 말을 들었을 때 '신뢰를 보낸다'는 메시지처럼 느껴지기도 하고, '내 책임은 아니야'라는 메시지처럼 느껴지기도 했습니다. VCS을 사용하다보면 '커밋분쟁, 커밋갈등'이 일어날 수 있다는 걸 깨닫게 되기도 했습니다.
* 새내기들이 자바를 맛볼 수 있는 좋은 기회였는데 막상 1학년들이 별로 없어서 아쉬웠습니다. 저 개인적으로는 다시 새내기가 된 느낌으로 차근차근 자바 코드를 작성해보는 것이 재미있었습니다. 성현이네랑 충돌나면서 역시 형상관리 툴을 실제 팀 단위로 사용하려면 형상관리를 위한 규칙을 확실히 정하고 사용해야 문제가 덜하겠다는 생각이 들었습니다.
- 지금그때/OpeningQuestion . . . . 18 matches
그러나, 만약 자기가 어떤 분야에 있어 한국 최고(혹은 그 이상)가 되려고 한다면 영어를 편하게(!) 사용하는 것이 중요합니다. 자기 실력에 더하기가 아니고 곱하기가 됩니다.
* 협력 : 가르쳐주지는 않습니다. 하지만 협력을 잘하는 방법을 배울 "기회"는 꽤 많습니다. 잘 이용하세요. 선배들에게 어떻게 하면 협력을 하는 방법을 배울지 물어보세요. 학계에 남건, 회사에 가건 협력을 잘하는 것은 아주 중요합니다.
주어진 기회는 잘 이용해 먹는 것이 현명한 것이겠습니다. --JuNe
== 졸업한 사람들이 가장 유용하게 생각하는 과목은 무엇인가? ==
제 경우, 학과 전공 수업은 크게 유용하지 않았습니다. 만약 지금 다시 되돌아간다면 훨씬 유용하게 수업을 "이용"했을 거라고 생각합니다. 반면 타전공 수업은 대부분 만족스러웠습니다. --JuNe
* 용무는 미리미리 끝내자
'''(신제용의 설거지 일화)'''
평소 아침에 15분정도 시간이 남았을 때 설거지를 하면 늦을것이라 예상했던 신제용은
* SixSigma나 LeanProduct(?), 둘을 합한 LeanSigmaSix를 시간관리에도 적용해 볼 수 있다.
기술자로 남고 싶으면, 그는 '''평생 학습'''을 하라고 조언 합니다. 책은 '''평생 학습'''을 위한 사회 제반과 개인의 인식에 대한 내용을 더 제시합니다. 그가 제시한 것중 우리가 가장 쉽게 실천 할수 있는것은 [음계연습하기] 인 것 같습니다. (이 내용에 약간 틀릴수 있습니다. 틀린 점 있으면 읽으신 분이 고쳐주세요. )
* 사귈래?? 메신저 이용 => 돌려서 말함.
== 전공서나 그외 나에게 유용한 책은 어떻게 고르는가? ==
== 도서관을 잘 활용하는 방법은 무엇인가? ==
같은 주제 읽기(see HowToReadIt)를 하기에 도서관만한 곳이 없습니다. 그 경이적인 체험을 꼭 해보길 바랍니다. 그리고 도서신청제도를 적극적으로 활용하세요. 학생 때는 돈이 부족해서 책을 보지 못하는 경우도 있는데, 그럴 때에 사용하라고 도서신청제도가 있는 것입니다. --JuNe
- PragmaticVersionControlWithCVS/Getting Started . . . . 17 matches
CVS서버 설치는 알아서 잘해라. -_-; 리눅스에서는 패키지로 설치하면 되고, 윈도우에서는 알아서 받아서 설치하면 된다. 이미 서버가 있으면 더 좋다. 내 경우에는 데비안 리눅스를 사용하는 관계로 apt-get install cvs로 간단히 설치를 끝냈다.
현재 우리는 테스트용으로 CVS를 쓰기 때문에 CVS의 저장소를 임시로 만들 필요가 있다.
-m " " 프로젝트를 임포트할때 기록할 메시지임. (서드파티 코드를 사용하는 경우에 유리하다.)
color.txt를 위와 같이 변경한뒤에 프로프트에서 다음의 명령어를 사용해보자.
또한 '''diff''' 옵션을 이용해서 변경된 파일이 어떤 변경이 있었는지를 조사하여 보여주는 옵션도 존재한다.
'''--side-by-side''' 옵션을 이용하면 지역 버전과 저장소버전을 한화면에 출력하여서 비교를 할 수 있다.
파일을 수정, UnitTest를 거치면 수정한 내용을 저장소에 저장해야할 것이다.
'''최신 버전이 아닌 로컬 작업공간의 내용과 저장소의 내용을 비교한다'''
저장소상의 aladdin 과 동일한 버전의 number.txt는 전혀 변화가 없었기 때문에 출력되는 내용이 없다.
'''저장소의 최신버전의 내용을 로컬에 반영하기'''
'''sesame/number.txt의 내용을 확인해보자'''
상기와 같이 정상적인 체크인이 가능하다. 물론 aladdin 폴더의 내용도 다음번 수정시에는 이와 같은 일이 발생할 것이다.
=== 박치기 - 변경 내용이 충돌하는 경우 ===
이 경우 변경된 내용은 '''<<<<<<< >>>>>>> '''의 가운데에 존재하는 내용이 충돌을 일으킨 부분이다.
이 경우에는 ichi를 쓰기로 했다고 가정하자. ichi이외의 다른 부분의 나용을 모두 삭제한다. 그리고 토의 결과
- ProjectZephyrus/Client . . . . 17 matches
현재 공용 툴은 JCreator. JCreator 프로젝트 화일도 같이 업했으므로 이용할 수 있을 것임.
|| Story Point || 내용 ||
''Engineering Task나 User Story 모두 노동의 양으로 estimation을 해서, 포인트를 준다. 이렇게 "비용"이 적힌 카드들을 놓고, 어느 것을 하고, 미루고, 먼저하는 지 등의 순위 결정은 "중요도 중심", "위험도 중심"이 있는데, 작년 이후 익스트리모들(KRW)은 복잡하게 이런 걸 따지지 말고 그냥 비지니스 가치로 순서를 정하라고 한다. --JuNe''
Task Point - 영서 & 석천이 Main Frame 연습용 코드 작성했을때 기준을 1 Task Point 로 잡음. (대강 120 라인정도/1시간 정도의 난이도 & 속도)
|| '''내용''' || '''Task Point''' || '''완료여부(○)''' ||
|| 사용자 로그인 관련 ID/PASS 입력창 작성 || 1 || ○ (20분) 5/31 ||
|| 서버로부터 로그인 관련 리턴값 확인. 처리 || 0.5 || ○ (45분 이용) 6/5, 6/7||
|| 입력한 대화 내용 서버로 보내기 || 0.5 || ○ (40분) 6/7 ||
|| 서버로부터의 대화내용 대화창에 표시 || 1 || ○(25분) 6/7 ||
|| JTree 이용, buddy list class 작성 || 1 || ○ (40분) 5/31 ||
|||||| ''' 서버에 사용자등록 - 3 (이는 일단 서버팅 DB 에 있는 것을 이용하기로 함) ''' ||
|| 내용 || Task Point || . ||
|| 사용자 등록 양식 작성 || 0.5 || . ||
|| 사용자 입력 데이터를 서버에 전송 || 1 || . ||
|| 내용 || Task Point || . ||
- Ruby/2011년스터디/세미나 . . . . 17 matches
* irb 사용법
* 블럭을 이용한 반복자 함수
* [http://rubyforge.org/frs/?group_id=1109 RRobots]를 이용한 RubyLanguage Robocode
* "우아한" 언어인 루비를 다운받아 irb를 사용해 실습을 해보았다. 처음에 irb를 눌렀을 때, 무슨 dll파일이 없어서 실행이 안된다는 팝업창이 떴는데 확인 누르니까 알아서 잘 켜졌다. Ctrl+C를 눌렀더니 끌지 말지 여부가 떴는데 N을 눌러도 꺼졌다. irb보다는 넷빈즈를 이용하는게 좋다는 말이 와닿았다. 1+2를 치면 알아서 3이 나오는 것과 리턴 값이 항상 표시되는 것이 신기했다(없을 경우도 =>nil 로!). 루비의 블록 넘기기는 #define이랑 비슷한 느낌이 들었다. 새로운 언어임에도 쉽게 익힐 수 있어 좋았다. 하지만, 페어로 하는 만큼 실습 시간도 반감되지 않았을까 죄송스러웠다. 세미나 공지가 뜨면 노트북을 가져가도록 해야겠다. - [강소현]
* 우선 늦게가서 if-else 밖에 못 들어먹었습니다 ㅠ 상당히 아쉬웠어요. 근데 if구문을 사용해도 의도가 명확하다면 괄호가 필요없다게 참 신기하더라구요. 제가 약간이라도 다뤄본 C, C++, Java, JavaScript, Python에서는 괄호를 반드시 사용해야만 하는 걸로 알고있었는데 말이죠. 근데 여기서 "의도가 명확하다는 것"이 무슨말인지.. 솔직히 이해가 안 가요. ㅠ 저가형 두뇌... 그리고 루비 개발도구가 참 많더군요. aptana... 루비를 위해 만들어졌지만 루비를 쓰지 못한다는게 참 인상적이었습니다. 그리고 irb의 개발환경을 보니 수정을 할 수가 없어 참 불편하더군요. Python Shell의 개발환경이 보다 더 우수한 것 같습니다. 그리고 회고할 때 주워들은 "우아하며 불완전한 언어"라는 말... 왜 그런지 궁금하네요. - [윤종하]
* ''의도가 명확하다는 것''이 무엇인지 설명하는 것보다 의도가 명확하지 않은 상황을 제시하는 게 이해하기 좋을 것 같으니 하나 예를 들어볼게. RubyLanguage에서 괄호를 쓰지 않아도 되는 것은 if 구문에 대해서만 그런 것은 아니야. 함수의 경우도 마찬가지지. 만약 내가 매개변수 a와 b를 받아 그 둘을 더해 반환해주는 함수 add(a, b)를 만들었다 치자. 이 메서드를 다음과 같이 이용할 수 있겠지.
add(3,4) # => 7 반환 (#은 RubyLanguage에서 주석을 나타낼때 사용)
}}} 이렇게 메서드를 중첩해서 호출해야겠지? 이 때 괄호를 사용하지 않으면 다음과 같이 쓸 수 있어.
}}} 그런데 위 코드는 대체 어떤 것이 처음 나온 add 메서드에게 넘겨주는 매개변수인지 명확하지 않지? 이런 경우는 의도가 불명확한 경우라 반드시 괄호를 사용해서 코드를 작성해야해. - [김수경]
* Ruby 라는 언어를 처음으로 접하게 되었습니다. irb를 이용하여 Ruby 코딩을 연습해 보았습니다. 코드 수정이 일단 한번 해놨으면 다시 정의를 해야되서 매우 불편하였으나 c같이 문법이 딱딱하지 않고 생략해도 구문 자체의 의미가 명확하다면 알아서 해주는 모습이 매우 신기했습니다. 나중에 lua도 공부해서 wow 에드온을 어찌해봐야겠습니다. - [임상현]
* 진짜 한번쯤 건드려보고 싶은 언어였는데 차일피일 미루다가 드디어 해봤습니다. 루비의 문제점도 많이 보였지만 그래도 (제 입장에서는) 직관적인거 같아서 좋았습니다. 시간이 된다면 irb로가 아닌 editor를 이용해서 편집한 소스코드를 컴파일하고 돌려보는 방법도 해보면 좋겠어요. - [지원]
* 저도 아직 RubyLanguage에 익숙하지 않아서 어려운 점이 많지만 조금이나마 공부하며 써보니 직관적이라는 생각이 많이 들었어요. 오늘 정보보호 수업을 들으며 EuclideanAlgorithm을 바로 구현해보니 더더욱 그런 점이 와닿네요. 좀 더 긴 소스코드를 작성하실땐 Netbeans를 이용하시는 걸 추천해요~ 매우 간단하게 설치하고 간단하게 사용할 수 있답니다. - [김수경]
* 드디어 Ruby를 접해보았습니다. 여러가지 장점이 보였지만, 궁금한 것도 많이 생긴 세미나였습니다. 특히 메모리 관리 부분에서 가비지 콜렉터 존재 유무가 많이 궁금해지더군요. 그래서 검색해보니 참 재밌네요 ㅋㅋㅋ (1. 스택 개념 없음, 힙만 사용 2. 로컬변수도 힙에 올림 3. 명시적으로 메모리 해제 못함). 그리고 { |x| ~~ } 이 문법 보면서 사용하기 꺼려지는 문법이라는 생각이 든 건 저뿐만인가요? 궁금하네요. - [박성현]
- XMLStudy_2002/Resource . . . . 17 matches
XML을 사용하기 위해 필요한 것들
== XML 사용자 그룹에 따라 ==
*일반 XML 이용자들과 XML을 기반으로 하는 프로그램 개발자로 나누어서
=== 일반 XML 사용자(XML End User) ===
XML 문서에 적용하는 스타일시트를 작성하려면 CSS나 XSL편집기
XML 문서를 파싱하려면 또는 파싱된 결과를 이용하려면 XML파서
== 종류에 따라서 XML 사용시에 필요한 것들 ==
*XML도구와 자원들을 특성에 따라 프로그램 형식의 도구와 패키지 형식의 소스 레벨에서 사용할수 있는 도구와 문서 형식의 자원들과 같은 종류로 나눔
=== XML 사용을 위한 프로그램들 ===
=== XML을 지원하는 응용 프로그램 개발시에 사용되는 라이브러리/패키지(소스 레벨에서 사용할수 있는 도구들임) ===
*XML은 계속 변화하면서 너무나 빠르게 새로운 내용이 발표되고 XML을 사용하기 위해 필요로 하는 여러 소프트웨어적인 도구들도 빠르게 버전업 되므로 항상 이러한 흐름을 주시해야 할 필요가 있다.
*기본적으로 IE5.0이상에는 XML 파서와 XSL프로세서를 사용하기 때문에 XML과 XSL지원이 가능한데, IE에서 사용하고 있는 XML 파서와 XSL 프로세서가 MSXML로 dll 파일의 형태로 되어있다.
*XML.com의 Resource Guide 중 XML Parsers : 여기에서도 여러 파서들에 대한 목록을 제공한다. 목록에서는 각 파서에 대한 설명이 간단하게 되어 있지만, 각 파서 이름을 클릭하면, XML.com의 Editor 중의 한 사람인 Lisa Rein이 평가한 내용들이 기술되어 있고, 해당 파서의 메인 페이지나 다운로드 페이지로 이동할 수 있는 링크를 포함하고 있다. [http://www.xml.com/pub/Guide/XML_Parsers]
- 정모/2011.3.7 . . . . 17 matches
* (정모에서 공유한 내용들이 위키 페이지에 잘 정리되어 있습니다.)
* 사람이 적어 예전에 실패한 SpringSecurity를 이용하여 동네API와 OAuth 연동하는 실습을 함.
1. 서버가 정상 작동하지 않아서 아예 서버에 내용이 안올라갔다!!!! 이럴수가!!!
* 활동 공유로 읽었던 책을 간단히 소개하면서 내용을 되새김질하는 계기가 되어 좋았다. 루비를 다운받아 irb를 사용해 실습을 해보았다. 성현이가 OMS로 영화 재해석을 했다. 동영상도 실행되고, 효과음도 나왔다면 더 재밌는 발표가 될 수 있었을 텐데 강의실이나 상황이 열악해서 안타까웠다. 마지막에 시간이 모자라서 코드레이스를 하지 않고, 간단히 Snowball Keyword 게임을 했는데 규칙을 잘못 이해하고 얘기하여 바로 탈락했다. 다음에는 좀 더 의도를 잘 파악하도록 집중해서 들어야 겠다. - [강소현]
* 이번 정모에서 루비 세미나 - 문법실습 - 을 준비했었습니다. 잘 할수 있을까 걱정했는데 예상대로 설명도 제대로 못하고 강사주제에 들으러 오신분들께 물어보고 시간도 두배나 초과하는 추태를 보였습니다. 혼자서는 다 아는것 같은 내용도 남들 앞에서 설명하려니 제대로 떠오르지가 않네요.. 앞에서 말하면서도 얼른 끝내고 도망가고싶다는 생각이 자꾸 들었습니다ㅠ 이래서 연습이란게 중요한가 봅니다. 다른사람을 가르치려면 가르칠 사람보다 세배네배 더 공부해야 한다는 말을 뼈저리게 새기는 하루였습니다. 혹여 또 세미나를 한다면 벽보고 연습이라도 하겠습니다. 그때는 이런 괴로운 세미나를 들려드리지 않을게요ㅠㅠ - [서지혜]
* 정모에서 세미나와 페챠쿠챠만 참여하게 되었습니다. OMS할 때는 학교 컴퓨터를 이용했는데, BGM과 동영상이 재생이 안되더군요. 안타까웠습니다. 그리고 루비를 보면서 느낀게 참 신기하더군요. 가장 신기한게 'nil'이었습니다. 보면서 여러가지 질문이 생각나더라고요. ''왜 nil이 라고 용어를 붙여놨어. Null이랑 헷갈리게!'', ''실제로 가볍게 활용을 하려면 어떻게 이용해봐야 할까?'', ''루비의 가장 큰 특징이 뭐지? 왜 좋다고 이야기 할까?'' 블라블라~. 그리고 루비 위키페이지에 적어놓으셨던 문법들이 정상적으로 작동하지 않는 걸 깨달았습니다. '<'로 상속이 안돼! 이 깍쟁이 irb야~ 내가 너를 Some이라 불러줬으니 나에게로 와서 Some2가 되어달란 말이야 ㅜㅜ. 앞으로는 다음에 언어 세미나를 들을 때 ''왜 이 언어와 문법이 등장하였는지''를 좀 생각하면서 들어야겠습니다. 그냥 생각없이 들으니까 금방 까먹어 버리네요. - [박성현]
* 학생회 회의 떄문에 늦어서 루비 세미나 뒷부분부터 참석한 관계로 많은 프로그램을 놓쳐버렸습니다 OTL 아쉽더군요... 우선 새싹의 경우는 나름 담당자 인데 정모에 참여를 못해서 아쉽습니다. 그리고 성현이형의 영화 해석을 보면서 깨달은건데 그렇게 영화가 해석되는지 몰랐습니다. 그리고 JavaScript 스터디에 야매로 참가하면서... 알게된 내용이지만 인터프리터 언어에도 객체지향 언어가 존재하고 종류가 꽤 많다는게 신기하네요. 제가 어디서 주워 듣기로는 Python도 OOP가 가능하다고 하던데;; 아무튼 늦게 들어간게 죄입니다 ㅠ -[윤종하]
* 세미나가 예상외로 긴 시간을 잡아먹고 노트북의 부재로 아쉬운시간을 가졌습니다. 하지만 루비 세미나는 꽤나 유용한 세미나였던것으로 기억합니다. 예전 루비를 혼자 배워볼때랑 달리 친절한 설치도 지원해주고 제가 처음 배웠던 부분과 다른 부분을 배울수 있어 좋았습니다. 후기에 계속 나왔던 말이지만 루비는 불완전한 언어라는 말보다는 현재 루비로 지원해주는 많은 라이브러리가 부족한것이지 언어자체는 굉장히 뛰어나다고 할수있습니다. 루비에 대해 다시 떠올리는것으로 좋은 시간이었습니다. - [김준석]
* 루비에 대해 알게 되었습니다. 매우 흥미로웠지만, 별로 실용적으로 쓸 일은 없을 것이라는 생각이 들었습니다. 좋아하던 영화들을 다른 관점에서 보고 나니 "아 그럴 수도 있군! 이거 재미있는데?"라는 생각이 들었습니다. 갑자기 새싹스터디 커리큘럼 작성에 부하가 걸리기 시작했습니다. 새로운 thread를 열어서 job을 분담하지 않는다면 timeout이 날 것 같아 걱정 중입니다. 다음 페차쿠차로 Objective-C에 대해 발표 해보아야겠습니다. - [황현]
* ㅋㅋ 별로 실용적으로 쓸 일이 없다니... 내가 아는 몇몇 루비 구루들이 듣는다면 곡을 하겠는걸?ㅎㅎㅎ - [변형진]
* 제가 "실용적"이라는 단어를 잘못 사용했네요. 이 단어를 사용하는 게 아니었습니다....... 언어가 너무 "중구난방"한 느낌이 들어서, 별로 "제가 쓸 일이" 없을 것 같다는 의미를 전달하려 했어요. - [황현]
- 코바예제/시계 . . . . 17 matches
CORBA 애플리케이션이 어떤 것인지를 설정하기 위한 단순한 예제이다. 그렇기 때문에 이 코드를 그대로 사용해서는 올바르게 동작하지 않는다. 구체적인 코드는 필요에 따라서 추가해야한다. 자신이 사용할 ORB의 종류에 따라 혹은 사용할 언어에 따라서 다르게 구성될 것이다.
시간 객체에 대한 인터페이스는 ObjTimeServer이며 getTime()이라는 메소드를 가지고 있는데 getTime()는 문자 형식으로 현재의 시간을 반환해 준다. CORBA 객체를 작성하는 첫번째 단계는 인터페이스를 만드는 것이다. 인터페이스는 IDL로 작성되며 인터페이스는 IDL 컴파일러로 컴파일된다. 이 IDL 컴파일러는 기본적으로 사용자가 이용하는(예를들면 VisiBroker) ORB에 포함되어 있는 것이다. IDL로 작성된 인터페이스를 컴파일하면 컴파일러는 두 개의 코드 파일을 생성해 준다. 이 코드 파일들은 각 IDL 컴파일러가 사용하도록 약정된 프로그래밍 언어로 되어 있다. 여기에서 사용하는 ORB는 Java ORB이므로 코드 파일은 Java(Stub, Skeleton)로 되어 있을 것이다. IDL 컴파일러에 의해 생성되는 코드는 프록시 객체(proxy object) 및 스켈레톤 코드이다. 클라이언트는 프록시 객체를 사용하여 IDL로 표현된 인터페이스 타입의 객체 레퍼런스에 대한 호출을 생성한다. 바꾸어 말하녀 프록시 객체는 클라이언트가 작업을 위해 사용하는 대리("stand-in") 객체인데 원격 객체가 마치 지역 객체처럼 보이게 해준다는 것이다. 스켈레톤 코드는 이러한 인터페이스를 지원하는 객체에 액세스하기 위해 사용된다. 생성되는 코드는 위치 투명성을 구현한다. 위치 투명성을 통해 객체 레퍼런스를 변환하여 네트웍 연결을 퉁해 원격 서버로 보내며, 객체 레퍼런스에 대한 오퍼레이션에 따르붙는 파라미터를 ["마샬링"]하고, 이를 객체 레퍼런스가 지시하는 객체의 현재 메소드에 전달하여 메소드를 수행하고 그 결과를 반환하려고 하는 것이다. 바꾸어 말하면 클라이언트는 IDL 컴파일러에 의해 생성된 프록시 객체를 가지고 작업을 하는데, 그것이 마치 지역 객체로 작업하는 것처럼 보일 것이라는 의미이다. ORB와 통신하는 것이 프록시 객체의 임무이며 ORB는 네트웍 연결을 관리하고 파라미터를 실제 서버 함수에 넘겨주며 결과를 리턴한다. 이런 식으로 수행에 대한 투명성을 유지한다.
위의 IDL을 컴파일하면 스텁과 스켈레톤 코드가 생성된다. 컴파일러가 ObjTimeServer_Skeleton.java라는 이름의 파일을 생성하였으며, 여기에는 서버 쪽에서 사용되는 스켈레톤 코드가 들어 있다고 가정하자. 이제 이 IDL에서 지정된 인터페이스를 갖는 객체를 구현해야만 한다. 이 말은 서버 코드, 즉 구현을 작성해야 한다는 것이다. 그러한 구현 객체 클래스를 작성하기 위해서는 IDL 컴파일러에 의해 만들어진 스켈레톤 클래스와 결합해야 한다. 이 결합은 상속 또는 위임을 사용해서 이루어질 수 이다.
이 클래스는 환경을 초기화하고, 구현 객체를 생성하며, 클라이언트가 구현 객체를 사용할 수 있도록하고, 이벤트를 받아들이는 일을 한다.
위의 서버 코드를 컴파일하고 실행하게 되면 문자열화된 IOR을 반환할 것이다. 이것은 단지 인수 전달용으로 사용된다.
클라이언트 구현은 기본적으로 다음 세 가지 단계를 통해 이루어진다. 먼저 CORBA 환경, 즉 ORB를 초기화한다. ORB를 초기화한다는 것은 ORB 의사 객체(pseudo-object)에 대한 객체 레퍼런스를 얻게 된다는 것을 의미한다. ORB가 '의사 객체'라 불리는 이유는 그 메소드가 런타임 시스템과의 통신을 통해 라이브러리의 형태로 제공되며, 의사 객체 레퍼런스는 CORBA 인터페이스 오퍼레이션에 대한 파라미터로 전달될 수 없기 때문이다. 그 다음 단계는 객체 레퍼런스를 얻는 것이다. 객체 레퍼런스는 불투명한 데이터 구조이다. 그러나 객체 레퍼런스를 문자열로 바꿈으로써 지속성을 가지게 될 수 있다. 이것은 '객체 레퍼런스의 문자열화'라 불리며, 그 결과 얻어지는 문자열을 일컬어 '문자열화 객체 레퍼런스'라고 한다.(IOR) 이 문자열화 객체 레퍼런스는 원래의 "유효한" 객체 레퍼런스로 다시 바뀔 수 있다. 이 과정은 CORBA, 즉 ORB 인터페이스에서 정의된 두 가지 오퍼레이션 object_to_string()과 string_to_object()를 이용하여 이루어진다. 모든 CORBA 2.0 호환 ORB는 상호 운용 가능한 문자열화 객체 레퍼런스를 실제 돌아가는 객체 레퍼런스로 바꿀 수 있다. 적절한 타입으로 객체의 범위를 줄이면 그러한 결과를 얻을 수 있다. 이러한 오퍼레이션을 'narrow'라 한다. ORB를 초기화하고 객체 레퍼런스를 얻은 후에야 CORBA 프로그래밍은 원래 의도한 표준 객체 지향 프로그래밍처럼 동작하게 된다. 클라언트가 객체의 메소드를 호출하게 되면, 실제로 그 메소드는 원격 객체와 함께 동작하지만 클라이언트가 보기에는 지역 객체와 함께 동작하는 것처럼 보인다.
- ComputerNetworkClass/Exam2006_2 . . . . 16 matches
보안 기법에서 알고리즘과 자세한 구현법에 대한 내용은 교수님이 지양하신듯. (난이도 낮추려고 한듯함)
개별적인 기술의 상세 내용을 묻기보다는 전체 기술에 대한 비교과 차이점에 대한 이해를 중심으로 출제.
인터넷 보안 관련된 문제에서 문제로 출제 될 만하다고 생각했던 부분인 Authencation Protocol (3-way-handshake, keberos, using RSA)에 대한 내용역시 미출제되었음. 덕분에 시험 난이도는 낮아졌지만, PEM 의 구조에 대한 설명이 들어갔기 때문에 따로 관심을 가지고 공부한 사람이 아니면 약간 어려웠을지도 모르겠음.
2.1 playback time 에 대한 책에 제시된 그래프를 그리고 그 설명을 하는 문제. (2.1 문제에서는 MPEG 과 같은 압축 기법이 이용되지 않는다고 가정)
2.2 MPEG 을 사용하면 그래프가 어떻게 변할까?
SSRC, CSRC, Contribution Count, timestamp, sequence number, Version etc 에대한 내용을 적고 해설
2.4 play back 은 무엇이고 언제 어떻게 사용되나
2.5 멀티미디어 서비스에서 TCP는 왜 잘 사용 안될까
3. PEM 으로 이메일 보낼경우, 보내지는 내용들 구조와 함께 설명. 같이 보내지는 첨부 파일은 a.jpg
문제의 내용에 메일의 헤더와 구조를 나타내라는 말이 있기 떄문에 책을 참조하거나 일반적으로 받는 이메일의 구조를 한번 본뒤 시험을 보면 좋음.
SLOWSTART 사용시기와 해당 기법의 사용이유에 대한 해설
FR이용시 그래프의 변화 추이와 그 이유를 설명. 중복 ACK 전송에 대한 이야기와 VEGAS에서 이요하는 faster retransmit 설명했음.
Integrated Service(flow-based), Differentiated Service(service-based) 에대한 전반적인 이해를 하는 문제. 해당 기법에 WFQ를 적용하는 방법에 대한 이해를 묻는 문제로 약간 응용해서 적으란 것으로 보임. 책에 DS에 대한 설명은 WRED, RIO에 대한 설명만 되어있었고, 이 방식은 Queuing 에 의한 WFQ의 사후 처리가 아닌 사전 체리에 관련된 내용이었음. 솔직히 WFQ 왜 냈는지 모르겠음. -_-;;
- MFCStudy_2001/진행상황 . . . . 16 matches
* 2002. 1. 15 화요일 모임 : 상협+창섭= 오목 알고리즘 정리(창섭 열심히 하게나.), 인수+선호=MM Timer 사용법 및, 주의사항 문서화(아직 GDI 리소스 세는거 미해결 부분 해결 해)
* 1월 5일 - 공( 기존 지뢰찾기 스마일 표시 차용 ), 배경, 마스킹, 공 출동 처리, 벽돌 깨지는 부분 처리(반응이 즉각 안옴-뭘로 가렸다가 치워야 깨진게 보임)
*1월 2일 : 메뉴 만들기[[BR]]Option으로 Ball Size, Paddle Size, Ball Speed를 사용자가 선택하도록 하기 위해서 필요. Ball Size는 11,13,15 Pixel 중에서 하나를 선택해야 함 - 중복 선택할 수 없도록하기 위한 처리..--;나중에 보니 1학기때 실습예제로 있었는데 몰라서 한참을 삽질) 그리고 게임중일때는 Option메뉴를 선택할 수 없도록 하기 위한 처리까지 했다.
*1월 12~13일 : 멀티미디어 타이머 사용. 3번의 기회가 주어지고 3번 다 죽으면 게임 끝. (게임 끝 처리) [[BR]] Stage가 증가하면 벽돌을 하나 당 깼을때 점수 증가 & 공의 속도 20%증가
*1월 14일 : 공이 떨어지는 각도를 랜덤함수를 사용해서 일정하지 않도록 함, Stage 4, 5 그림
*흐음..--; 절대좌표랄까.. 그걸로 바를 움직였더니 마우스 냅두고 키보드로 움직이면 바가 이상하게 움직임..--; 그래서 지금 메뉴에서 처음부터 무엇을 쓸것인지 물어보는 것을 둘까 생각중.. 같이 사용은...아아.. 생각하기 싫다..--;
*SetCursor()사용하기, WM_SETCURSOR메시지
*멀티미디어 타이머 사용법. 비록 다른 사람 소스를 그대로 따라하긴 했지만..--;
*1월 6일 - 현재까지 2인용, 33처리는 완성, 1인용 인공지능 방어는 완성, 공격은 일부 완성
현재는 계속 TRACE 구문을 이용해서 어디서 잘못되었는지를 찾고 있습니다.
*1월 14일 - 13일 일요일에 석천이형의 조언에 따라 코드 전체적으로 대대적인 Refactoring(이 용어가 맞는지는 모르겠네여..^^;;)을 해서 할수 있는 한 많은 코드들을 함수로 만들었습니다. 이에 따라 라인수가 아주 많이 줄어들게 되었고, 공격과 방어 인공지능을 같은 함수로 동작하게 하여 방어 할 수 있는 패턴은 모두 컴퓨터 공격할 수 있게 하였습니다.(덕분에 코드를 체계적으로 만들때는 상당히 힘들었지만, 한번 그렇게 하니 작업이 훨씬 쉬어 졌습니다. 참으로 중용한 사실을 몸소 체험 한거 같습니다) 3,4 방어 및 공격 인공 지능을 추가 했습니다. 이제 사람을 이길 확률이 좀더 높아 졌지만, 아직도 부족한것 같고 띈 3,3 방어 및 공격과 효율적인 3 만들기를 추가할 예정입니다.
* 1월 13일 1시 40분 현재 - 화면 복원 되고, 2인용 오목 완성입니다. -,.- 근데 6목이 안 잡히네요. -_-
* 1월 21일 새벽 1시 현재 - 정상적인 사용자 인터페이스 구성을 끝내고 육목 막았습니다. 3 * 3 만 막으면 이제 인공지능으로 들어가야겠습니다. AI 설계는 뼈대만 잡은 상태입니다.
* 멤버 변수의 중요성을 깨닫고 있습니다. 참 유용하게 쓰입니다. -.-
- NSIS . . . . 16 matches
보통 프로그램을 개발하고 나서 '만들었다' 로 끝나는 경우가 많다. 하지만, 정작 배포때에는 할일이 많다. 특히 제어판 프로그램 등록/삭제 에 등록되는 방식이라던지, 레지스트리를 건드린다던지, Program Files 폴더에 복사한다던지. 이 경우에는 보통 전용 Installer 프로그램을 쓰게 되지만, 아직 제대로 써본 적이 없었던 것 같다.
* makensis 로 Script 를 컴파일한다. 그러면 makensis 는 스크립트를 분석하면서 포함해야 할 화일들을 하나로 묶어준다. 그리고 zip의 형식으로 압축해준다. (내부적으로 zip2exe 가 이용된다. 이건 zlib 사용됨.)
* /PAUSE - Makensis 가 종료되기 전 중간에 일시정지해준다. 이는 Windows 에서 직접 실행할 때 유용하다.
* /CMDHELP - command 에 대한 기본적인 사용정보를 출력해준다.
또는 Editplus 의 사용자도구그룹에 makensis 을 등록시켜서 사용하는 방법도 있겠다. (nsis 를 위한 간단한 ide 만들어서 써먹어보는중.. 이였지만. 엉엉.. 그래도 editplus 가 훨 편하긴 하다. --;)
* parameter 의 숫자들은 10진수, 16진수, 8진수들을 이용할 수 있다. (일반 숫자, 0x__, 0124 식으로..)
* 표현하고자하는 string 에 공백이 있으면 따옴표를 이용한다.
* 하나의 command 가 여러줄을 이용하는 경우 '' 를 사용한다.
NSIS 는 스크립트 기반으로 일종의 배치화일과 같으므로, 예제위주의 접근을 하면 쉽게 이용할 수 있다. ["NSIS/예제1"], ["NSIS/예제2"], ["NSIS/예제3"] 등을 분석하고 소스를 조금씩 용도에 맞게 수정하여 작성하면 쉽게 접근할 수 있을 것이다. 의문이 생기는 명령어나 속성(attribute)에 대해서는 ["NSIS/Reference"] 를 참조하기 바란다.
이용 예 : windows 의 system32 디렉토리에 dll 들을 복사해줄 때.
사용 예 : exec 로 regsvr32.exe 호출시 비동기 호출이 되어 뒤의 delete 문이 실행된다. 이를 방지하기 위한 방법으로 다음과 같이 한다.
할 일 : 1. 'Uninstall' Section 을 만든다. 2. WriteInstaller 를 이용해준다.
- NeoCoin/Server . . . . 16 matches
/etc/profile : 모든 사용자 적용 스크립트
/etc/motd : 사용자 로그인후에 나오는 메세지
/etc/skel : 사용자 생성시(useradd) 초기 bash 설정 파일 (이렇게 숨겨놓다니)
/etc/vim/vimrc : vim 전체 적용 파일
* 8080 포트에 접속해 보고, 자칫 노출될수 있는 정보에 대하여 막는다. resin, tomcat 모두 8080 포트를 이용한 테스트를 한다.
올해 들어 한국 표준시의 사이트에서 시간을 맞출수가 없다. 귀찮아서 오페라를 사용하고 있다.
* 결국 설치의 모든것을 dselect, apt를 쓰거나, dpkg로 패키징 해서 설치해야 한다. 즉, 서버 설치이후에 python이든 다른 app든 전부 툴을 이용해야 한다는 결론
jvm설정에서 dummy를 설정하고, jdk는 따로 sun에서 받아 오거나, http://blackdown.org 를 이용한다.
* 데비안에서 자바 사용하기 http://debianusers.org/stories.php?story=02/08/02/1679110
그리고 loginfo 파일에 밑에 내용을 추가
-로컬 시스템에서 특정 사용자가 사용하는 공간
find / -user <사용자> -fstype <파일시스템 타입> !-name "/dev/*" ! -name "/proc/*" -exec ls -lh{} \;
-어떤 프로그램이 어떤 포트를 사용하는지...
-tar를 이용한 디렉토리 복사, 이동
- OOD세미나 . . . . 16 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입니다.
* 집에 가자마자 아버지가 저한테 객체 지향 설계를 왜 하는지 설명하라고 했습니다. 그런데..여러 번 반복해서 언급한 내용임에도 불구하고, "단일 변화로 인한 수정 사항을 가능한 범위 내에 집중시켜라"라는 말을 정확히 할 수 없었습니다ㅠㅠ 나중에 기존 내용을 고칠 때, 여러 군데에 퍼져있으면 고치기 힘드니까 쓰인 곳 안에서만 해결하는 것이 좋다고 풀어서 대답하긴 했지만, 정확한 표현은 아닌 듯 하네요. 아직 세뇌가 덜 됐..ㅎ;;
get과 set을 사용하면 메인에서 그 자료형이 뭔지 알고 있는 거니까 변경시에 같이 변경해야 하므로 사용을 자제하는 건가요? 다른 클래스에서 private로 선언한 거를 메인에서 접근하기 위해 get과 set을 사용하는 거 같은데, 그럴거면 private로 왜 선언하는 건지 의문을 작년에 가졌...는데 여전히 모르는..;ㅅ; 우문(뭔가 질문하면서도 이상해서..;)현답을 기대합니다 ㅎ; - [강소현]
- ProjectVirush/Idea . . . . 16 matches
이 란의 모~~~든 내용은 지.극.히. 주.관.적. 이며 전혀 객관적인 자료가 없음을 밝힙니다.
또한 실시간이라는 점은 사용자가 접속하지 않아도 돌아가는 것을 의미한다. 사용자가 하루, 이틀 쉬었다가 접속하였을때 플레이어의 바이러스들이 전부 죽어있는 광경을 연출해서는 안된다. 그렇기 때문에 바이러스들은 플레이어가 없어도 꿋꿋하게 살아나갈 수 있는 인공지능을 가지고 있어야 한다.
둘째 '온라인 멀티'플레이이다. 한명의 사용자가 접속해서 사용하는 것이 아니기 때문에 여러명이 접속해서 사용하게 된다. 그러한 만큼 여러 플레이어가 행동을 한다는 것을 염두에 두어야 한다. 한명 한명에게는 적절한 난이도이지만, 협동을 하니 난이도가 대폭 하락해서 금새 이길 수 있었다 라던가 하는 이야기가 나와서는 안된다.
(이는 다양한 DNA를 통해서 여러 종류의 유닛을 생산하는 것과 같은 효과를 낼 수 있다. 수비용 바이러스.. 공격용 바이러스.. 생산용...)
플레이어는 DNA를 사용해서 자신의 바이러스의 알고리즘을 만들고.. 백혈구는 자신의 DNA를 DNA알고리즘으로 진화시키고.. DNADNA...GATACA인가;;ㅁ;;
-그냥 방법이라고 했잖냐 ㅋ 각각 바이러스를 유저마다 고유특성을 가지게 만들어서 그 고유특성에따른 암호를 나타내서 DNA흉내를 내는거라고 ㅋ 유전자 길이를 길게하고 상동유전자를 만들어서 우열의 법칙을 적용시키는것도 재미있겠지 ? +_+ 암수를 구분한건 생각으로적용시킨 유전자가 환경에 얼마나 적응 할수있을까? 해서 만들어 본거다 ㅋ 한번 창발적 세계를 만들어 보아요 >.<)b - [정수민]
페로몬 방법에서는 사용자가 홀로 떨어진 백혈구를 습격하고 도망가는 게릴라 수법을 쓴다면 당해내지 못할 것 같기도 하네요. 일단 알려진 바이러스는 다음번에 무조건 잡을 수 있게 하는 걸까요?
사용자가 백신역할을 하는 사용자를 두는 방법도 있겠고, 게임 안에서 NPC나 거꾸로 생각해서 바이러스가 퇴치해야 하는 적으로 생각할 수 있겠네요. -- [Leonardong]
저 생물에 관심많아용!! 어떤언어로 만드실건가요? - [허아영]
- SoftwareEngineeringClass . . . . 16 matches
* 강의내용: 소프트웨어 개발 공정에 대한 전반적인 이론.
* 컴퓨터 공학과 전공 수업을 통틀어 다섯 손가락 안에 꼽을 수 있을 정도로 중요한 역할을 하는 과목이다. 그러나 중앙대학교 컴퓨터 공학과에서 이 과목의 위상은 그다지 크지 않은 듯 하다. 내가 생각하는 첫번째 문제는 교재에 있다. 두번째는 비현실적인 실습내용이다. 구체적이고 실용적인 실습이 필요하다. 세번째는 학생들의 인식부족이다. 소프트웨어 공학 수업이 자신의 프로그래밍 커리어에 얼마나 많은 실질적 효용을 줄 수 있는지 전혀 깨닫지 못한다. 물론 이것은 대부분 수업 자체의 문제에서 연유한다.
* 수업에서 원하는 것을 얻지 못하는 경우 수강은 하되 독학 혹은 학생 차원의 그룹 스터디를 할 것을 강력하게 권한다. 졸업 후 어디를 가건 두고 두고 유용하게 쓰일 것이다. 외국 유명 대학 경우 AOD/VOD로 수업 내용을 볼 수 있는 곳이 많이 있다.
* 본인은 거의 독학으로 SE 공부를 했다. 수업시간에 구조적 프로그래밍(structured programming)에 대해 설명을 들었을 때는 전혀 감흥이 없었고 졸음까지 왔다. 기억나는 내용도 없다. 하지만 스스로 공부를 하면서 엄청난 충격을 받았다. OOP는 구조적 프로그래밍의 패러다임을 완전히 벗어나지 못했다! 구조적 프로그래밍을 Goto 제거 정도로만 이해하는 것은 표피적 이해일 뿐이다! 구조적 프로그래밍 하나만 제대로 익혀도 내 생산성은 엄청나게 향상될 것이다! (참고로 정말 구조적 프로그래밍이 뭔지 알고 싶은 사람들은 다익스트라의 6,70년대 이후의 저작들을 읽어보길 권한다. 칸트 철학을 공부하는 사람이 칸트의 1차 저술을 읽지 않는다는 게 말이 되겠는가.) --김창준
["neocoin"]:수업 무지하게 재미있음. 더 자세한 이야기는 수업 종료후 추가. 현재의 느낌은 수업이 커버하는 내용이 너무 방대하여, 재시간안에 지식전달을 다 못할것 같은 교수님의 불안감이 수업에서 느껴지는게 아쉬움 --상민
["fnwinter"]: 수업이 잼있다는 것은 동감...수업 내용이 너무 방대하는 것도 동감..또한...수업이 실제적이지 못하다는 것도 동감...수업에서 너무 많은 내용을 다루어서 그런가 싶다..결론...수업을..듣고..얻은.것이..무엇인가..라는 의문점이 남는다.
''수업을 청강 할 정도로 내용이 있지는 않아. 그 이유는 딱 한 번만 이경환 교수님 수업을 들어 보면 알게돼. 차라리 관련된 책을 몇 권 보는 게 더 낳을 듯 해. 여튼 개인적으로는 여차여차해서 재수강으로 인해 이번 학기까지 2번째 듣고 있지만 수업 내용 보다는 우리과 수업중 가장 규모가 큰 (기간이나 팀인원수나) 팀 프로젝트를 해 보는 게 이 수업에서 가장 크게 배울 점이라고 생각해. 많은 팀원과 개발 계획부터 시작해서 최종 테스트까지의 일련의 프로젝트 개발 과정을 해 본다는게 확실히 도움이 되지. 그리고 배 보다 배꼽이 더 큰 문서가 좀 성질 나기는 하지만 경험상 해보는 것도 괜찮은 듯 해. --재동''
* 저희 반 같은 경우에는 현재 컨설팅을 하고 있는 박사과정 선배님이 수업을 맡고 있죠. 가끔가다가 자신이 컨설팅 하는 경험담을 들을 수 있어서 좋다고 생각합니다. 교수님반보다 프로젝트 실습 과정에서 피드백도 더 많은 편이고요. 사실 개인적으로는 소프트웨어 공학에서 요구하는 내용을 경험한 사람이 많지 않기 때문에, 더 자주 피드백이 필요하다고 느끼지만요.
시간이 나면 ExtremeProgramming에 대해서도 이야기를 하신다는데, 어떤 이야기가 나올지 궁금하네요. [SPICE] 레벨4는 되어야 사용할 수 있다는 말엔 조금 당황스러웠어요. --[Leonardong]
''SE는 문서''란 말을 실감했습니다. 수업에서 요구하는 바는 모든 작업을 하기 전에는 계획서를 작성하고, 계획서에 근거해서 작업을 수행한 뒤, 보고서를 작성하는 것으로 보입니다. 처음 만드는 계획서라 시간이 오래 걸렸겠지만, 다시 계획을 세울 때에 재활용 할 수 있을 것 같습니다. 계획된 프로젝트 진행을 연습해보는 좋은 시간이었던 것 같습니다.
하지만 역할별, 작업별로 만드는 계획서와 보고서에 쏟는 시간이 너무 많다는 생각은 저 뿐만이 아닐 것입니다. 심사시에는 계획서에서 언급하지 않은 활동을 실행했다고 딴지를 걸 정도로, 계획서대로 실행된 내용을 변경없이 실행하는 것이 프로젝트의 반복가능성을 평가하는 기준인것 같습니다. 설계와 구현 사이에서 계획대로 실행 안되는 부분을 극단적으로 느꼈는데, 예를 들어 클래스 다이어그램과 시퀀스 다이어그램이 [Refactoring]과 같은 코드 재구성 작업을 할 때마다 바뀌어야 했습니다. 다이어그램이 코드로 매칭되지 않기 때문에 코드를 바꿈은 물론 다이어그램을 바꾸는 이중의 수고를 겪어야 했습니다. :( --[Leonardong]
- 데블스캠프2013/셋째날/후기 . . . . 16 matches
[김태진], [고한종], [김윤환], [서민관], [권순의], [김해천], [김현빈], [박희정], [이예나], [김남규], [지영민], [조영준], [김도형], [원준연], [임지훈], [김홍기], [엄기용], [안혁준], [이봉규], [순의형], [백주협], [ ], [ ], [정종록], [장혁수], [박성현]
* 사실 자바를 약~간 깨작거렸지만 다른 사람들이 GUI를 사용하는 프로그램을 만드는 것을 보고 어떻게 하는 것인지 굉장히 궁금하였는데 이번 기회에 알게 되어서 너무나도 기뻤습니다 :D - [조영준]
* 개인적으로 저한테는 실용성으로 따지면 아마 이번 데블스 캠프 1위가 아닌가 싶을 정도로 마음에 드는 주제였습니다. Window Builder는 전에 순의 선배가 쓰시는 걸 봐서 이런 게 있는 건 알았지만 그래도 직접 써 보니 생각보다 더 좋군요. 아마 나중에 정말로 쓸 일이 많이 있지 않을까 싶습니다. - [서민관]
* 회장님이 자바실습시험때, 이걸 이용해서 짜면 편하다고 추천해 준 것이었는데, 하지만 코드가 은근히 어려워져서 세세한 부분을 건드릴 때에는 더 많은 시간이 걸릴 것 같아서 안 쓴 윈도우빌더군요! 사실, 이 단점은 GUI 툴킷 프로그램이 짊어지고 가야 할 문제일 수도 있지만, 이번에 나름대로 빠른 프로그램 제작에는 편하겠구나라는 생각을 가지게 되었습니다. - [김해천]
* net beans를 써봐서 인지 window 빌더에 그다지 거부감은 없던것같습니다. 다만, 이클립스내에서 사용할 수 있다는 점에서 좋은것같습니다. 이때까지 net beans랑 이클립스를 혼용해서 사용해왔었는데 좋은 플러그인을 직접적으로 알게되어서 좋았습니다.(window 빌더의 존재는 알았지만 사용해보기에 너무 귀찮아서 이때까지 사용할 기회를 못가졌었는데 가지게 되서 좋았습니다.) -[김윤환]
= 서민관 / HTTP 프로토콜, C언어를 이용한 웹 서버 만들기 =
* 맥에서는 윈도우 소켓과 다른 방식이라 직접 실습해보지 못해 아쉬웠습니다. (뭐.. 한번 해봤지만서도) 하지만 피피티 정리가 체계적이라 전체적인 내용 이해하는데는 도움이 많이 되었네요 :) -[김태진]
* 올해 데캠에서는 유난히 네트워크를 이용한 것이 많이 나오는 군요! 네트워크 매니아인 저를 불타오르게 하는 세션이였네요.(하지만, 저는 네트워크가 어떤 것인 지 공부했을 뿐, 어떻게 만드는 지는 공부를 안해서... 실습 때 애를 좀 먹었습니다..) 만드는 것이 더 어렵군요! 사이언스가 엔지니어링만큼 중요하지만서도, 역시 엔지니어링이 훨씬 더 대단한 일을 하고 있다는 것 느낍니다! - [김해천]
* 소켓프로그래밍은 언젠간 공부해봐야지 하면서도 안하고 있다가 단면을 알게될 기회를 갖게되서 좋은 세션이였습니다. 이런 소켓프로그래밍을 가지고 놀면 재밋는것도 나올 수 있겠다라는 응용여지가 많아서 더 재미있는 세션이였습니다. - [김윤환]
* 좋습니다. 개인적인 생각인데 데블스 캠프가 완전히 컴공의 전공으로 뒤덮이는 것보다 가끔 이런 내용이 있어도 좋지 않을까 하는 생각을 좀 합니다. 그러던 와중에 이런 세션이 있으니 좀 만족스럽죠. 정말 전자 전기에서 오셔서 많은 재미있는 것을 보여주시는 것 같습니다. 감사합니다. - [서민관]
* 아두이노,,, 우노..게다가 우노..에 대한 안좋은 추억이..ㅠㅜ 물론 세션 내용은 흥미롭게 들을 수 있었습니다. 다만, 우노를 가지고 블루투스 모듈을 연결한 다음 안드로이드랑 통신할때 이게 문자열을 해석 잘 못하는 경우를 당해서 맨붕한적이 있어서... - [김윤환]
* 새내기들을 위해서... 용어와 이론 설명을 좀 더 해주셨으면 좋았을 것 같습니다. 그래도 직접 알고리즘을 구현하는 과정을 보면서 머신러닝에 대해 대략 감이 잡히게 되었습니다.(물론 멘붕은 어쩔 수 없지만...ㅠㅠ) - [남근우]
- 새싹교실/2012/새싹교실강사교육/1주차 . . . . 16 matches
선배 후배간의 학술적인 교류를 개인적인 능력에 의한 특혜가 아니라 누구나 공개적으로 경험하기 위하여 ‘05년도부터 시작된 ZeroPage ‘새싹 배움터’를 시초로 한다. 현 ‘12년 학부의 한 행사로 자리잡아 컴퓨터 공학부의 세 학회(ZeroPage, Netory, CLUG)가 진행을 하고 교수님과의 Feedback을 통해 유동적인 강의 과정을 만든다. 또한, 새싹 교실의 필수과정인 Wiki의 사용, 회고를 통해 처음 프로그래밍을 접하는 새내기들뿐만 아니라 새싹 교실의 선생들도 배움을 얻어가는 자리이다.
2. 새싹 교실 강의 내용 소개
(앞에 공백 한칸)* 내용 동그라미
|| 내용 || 내용 || 내용 ||
|| 내용 || 내용 || 내용 ||
코드 내용
자기 수준도 (1-10점) : 강의 내용에 대하여 자신의 수준을 평가. 1점 낮음 10점 높음
자기 이해도 (1-10점) : 강의 내용에 대하여 자신이 이해한 정도를 평가. 1점 낮음 10점 높음
언제, 어디서, 누구랑, 무엇을, 어떻게 기입은 필수. 수업내용, 강사의 태도, 본인의 태도, 다른 이의 태도를 적어주세요.
예) 새싹교실 첫 수업이었다. 강사는 누구셨고 잘생겼다. 누구누구랑 같이 듣게 되었는데 얘네는 처음 본다. 얘는 언제 봤었고 같이 해서 좋다. 새싹교실의 정의에 대해 배웠는데 강의 중에는 뭔가 강사가 들떠있는 것처럼 보였다. 그리고 위키를 작성하는 것을 보았는데 사용법이 어려워 보였다. 그런데 거기다가 내 페이지로 글을 만들고 내 각오를 여기다가 적으니 부끄럽지만 신기하고 좋았다. 학교 강의에서는 이렇게 가르쳤는데 여기선 이렇게 가르친다 그런데 학교 강의가 더 잘 이해되는 것 같았다.
좋았던 점 : 새싹 교실 중간에 좋았던 점 을 작성한다. 강사에 대해 외모, 매너, 강의 내용 등에 대해 작성해도 되고 자신이 감정에서 좋았던 점을 경험한 것에서 뽑아보자.
예 ) 강사가 늦었는데 더 일찍 와주었으면 한다. 수업시간에 졸았는데 다음에는 잠을 더 자고 와서 열심히 듣겠다. 강의 내용이 너무 어려웠다. 조금 더 쉽게 설명해 주셨으면 한다. 이번에 과제를 못했는데 꼭 다음 과제랑 같이 다음 시간 전까지 해서 올리겠다.
- 서버재조립토론 . . . . 16 matches
[정모]때 서버 재 조립에 대한 이야기가 나왔다는 이야기를 회장님을 통해 들었습니다. 일단 제가 회의에 참석하지 못하고 회의록이 올라온 것도 아니므로 어떻게 해서 서버 재조립 이야기가 나왔는지 알고 싶습니다. 일단 제 생각은 굉장히 부정적인데요. 서버가 하는 일이 거의 웹서버 내지는 소스 리파지터리로 사용되고, 대규모 소스를 컴파일한다거나 덩치가 큰 프로그램이 돌아가는것도 아니기 때문입니다. 게다가 동시접속 사용자수로 많지 않은걸로 알고있는데요. (물론 이런것들은 이제부터 하기 위해 하나 새로 맞춘다!! 면 할말 없지만..) 이 상황에서 굳이 새로 서버를 맞추는게 필요할지... [임인택]
네 충분히 그렇게 생각 하실수 있다고 생각합니다. 현재로서 서버가 하는일이 웹서버및 소스 Repository 로서의 역할이니깐요. 그리고 마지막에 프로젝트 때문에 필요할 경우에 나 새로 맞출 필요가 있다고 하신 말씀도 동감합니다. 현재 한 3주 동안 제로페이지 서버가 제대로 작동하지 않았습니다. 제로페이지 서버를 아주 자주 이용하는 입장에서는 많이 제로페이지 서버에 들어가니깐 서버가 죽어 있어서 여러가지로 불편했고, 현재 제로페이지 서버와 연계해서 돌아가는 위키 포탈을 운영 및 관리하는 입장에서는 치명적이었습니다. 제로페이지 회원들이야 안면이 있으니깐 이해해 주겠거나 좀 불편하고 말겠지 하고 생각하실수도 있지만, 위키 포탈 서비스가 우리 학회에서 제공을 해주는 서비스지만 외부에서 이용하는 사용자도 꽤 있었는데 왠만한 사용자들은 다 빠져 나간듯 하네요.. 그래서 지금은 급한게 다른 서버에서의 DB 지연을 기다리는 시간을 원래 1분에서 3초로 줄여서 그나마 임시 방편으로 수습을 했습니다. 또 프로젝트 진행을 하는데에도 제로페이지 서버가 자주 죽어서 진행을 제대로 할 수가 없었습니다.
제로페이지 서버가 현재 분명 문제가 있고, 이것을 해결해야 한다는데에는(즉 좀 가끔가다가 죽으면 뭐 어때 하는 분은 없을거라고 생각합니다.) 모두 동감 하실거라고 생각합니다. 현재 제로페이지 서버가 아주 자주 죽는 문제가 제로페이지 서버의 하드웨어 적인 문제인가, 소프트웨어 적인 문제인가, 인프라적인 문제인가 이 3가지중 하나라고 생각합니다. 인프라적인 문제는 다른 학회나, 동문서버도 안 죽고 하니깐 제외 하겠습니다. 그러면 하드웨어 아니면 소프트웨어 적인 문제인데. 솔직히 저는 리눅스가 오래 사용해서 자주 뻗는다는 것은 좀 이해가 가지 않습니다. 리눅스를 서버로 우리보다 훨씬 오래 사용하는 곳도 부지 기수일텐데 그런곳들이 모두 이런 문제를 겪고 있을까요.. 그렇다고 지금까지 관리가 안되서 그런것도 아니라고 생각합니다. 상민형, 석천이형, 영창이 모두 제가 생각하기에는 그 누구보다도 서버 관리를 잘 했다고 생각합니다. 물론 테스트를 해봐야 알 문제입니다. 오늘 회장님이 테스트 해본다고 했는데 가끔씩 서버가 죽는 문제를 어떻게 테스트를 해야할지 전 감이 안 오네요. 한 일주일정도 제로페이지 서버를 죽이고 다른것(다른 하드에) 웹서버를 깔아서 아주 아주 수시로(몇분 단위로) 그 웹서버로 들어와서 죽었는지 확인을 해야 하는데(물론 테스트는 테스트를 진행하는 한두사람만 하겠죠. 현재의 제로페이지 위키만 해도 하루 방문자가 1000이 넘는것에 비해서...)그게 참 어려운 문제라고 생각합니다. 또 한 일주일동안 서버를 죽이는것도 현재 위키위주로 돌아가는 제로페이지에도 치명적이구요. 이렇게 테스트를 해서 만약 하드웨어 적인 것이 문제라면 또 다시 서버를 업그레이드 한다음에 다시 서버를 설치하는 작업을 해야겠죠.
만약 서버를 업그레이드 하려면 회비로 할텐데(피시실 관리비로 받은) 제가 생각하기에 MT나 회식때 회비를 사용하는것도 좋지만 이렇게 제로페이지가 실질적으로 프로젝트를 하는데 많은 장애가 생기는 상황을 타개하는데 사용하는것도 참 회비를 유용하게 사용하는게 아닐까 생각합니다.(그래서 우리가 MT나 회식도 사비를 더 내더라도,,) 글을 쓰면서도 불안 하네요. 어제도 글을 쓰고 나서 저장했을때 여러번 서버가 죽어서...
저는 업그레이드가 필요하다고 생각합니다. 서버의 핵심은 안정성인데, 지금의 서버는 안타깝게도 그 역활을 제대로 수행해주지 못하고 있기때문입니다. 서버 업그레이드 시도를 하게되면, 이전의 컴퓨터에 문제가 없다고 판단될 경우 새서버의 보조 역활과 리눅스 테스트용 서버로 사용해도 큰 문제가 없다고 생각합니다.^^ 속도 측면에서는 현재의 서버도 전혀 문제가 없지만, 안정성이 낮은점은 이용자의 입장에서 불편하다고 느낄 수 밖에 없기 때문입니다.(실제로 많이 불편했답니다.ㅠ.ㅜ 꼭 필요할때만 죽어있어요..) - [조현태]
무엇보다 ZP서버가 서버로서 그다지 많이 활용되지 않으니까요. 현재로서는 기껏해야 웹서버정도? 그것도 소수로만... - [eternalbleu]
- 임베디드방향과가능성/정보 . . . . 16 matches
예전부터 임베디드는 결국 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를 기반으로 하고 있는데, 그 응용분야는 다 제각각 입니다.(즉, 임베디드 시스템이죠.)
복사기의 경우는 OA기기가 주로 사용되는 곳이 사무실이고 이 경우에는 복사의 편리성을 위해 복사기에 PC가 임베디드 되었다고 해야 옳겠죠.(이 경우 pc가 임베디드시스템이 된 것이군요(?)..)
음... 윗분들 말씀이 대개 맞는듯 하구요. 괜히 없던것도 아닌데 뭐 있는양 임베디드 어쩌고 하면서.. 얼마나 얘기 할꺼리가 없으면 그러겠습니까. 음.. 그리고 유비쿼터스라... 실용화되면 여러가지로 파급은 좀 있을듯 한데... 아직은 셀폰으로 tv나 동영상보는것 처럼.. 없어도 그만, 있어도 그만일 테지만 뭐 돈좀 긁어내려고 여기저기 들쑤시거나 하면 지금 셀폰 국민학생들도 다 가지고 있듯이.. 이상하게(?) 잘 팔릴지도 모르죠.
그리고 과거에도 CPU를 사용하여 제품들을 제어하는 업무가 많았는데.. 그것을 운영하는데 인터럽트나..무한루프를 이용하여 제어를 한 반면에..요즘에 임베디드 시스템이라고 하는것들은 간단한 운영체계를 도입한게 다른데.. 이것도..별것 아닌데.. 왜 임베디드 엔지니어니..뭐니떠드는지 잘 모르겠습니다. 그냥 마이크로 프로세서를 이용하는 땜쟁이들이 기본으로 익혀야할.. 노가다이고... 핵심 부품 예를들면 ARM7의 코어부분등은 핵심기술을 가진 회사에서 독점하고있어서..그걸 이용해서 칩을 파는 업자나.. 프로그래밍짜는 엔지니어나..그냥.. 그들의 하수인에 불과할수도 있겠네요..요즘에는 임베디드 OS도 객체지향을 이용하고.. 그래픽 라이브러리들이 잘 나와있어서 WIN CE나 윈도우즈에서 제어용 프로그래밍 짜는 수준의 단순노가다로 넘어가고있는 추세입니다.. 하여간에 이것도 다들 하니까.뭐.. 별 영양가 없는것 같습니다.. 모 업체에서.. 벼레별거 다할수있는 기술적인 능력이있는데.(암9보드에 하드도달고 액정도달고..달수있는것 다 달고..) 막상 그 보드를 만들어놓고 쓸데가 없답니다. 요즘 추세를 보니까..몇년전까지도 고급기술자의 업무였던.. PC에서 기계제어하는것들도..이젠 전문대졸업자나..고졸자가 주로하는 일이 되어버렸더군요.. 제 생각에는 미래에는 엔지니어가 그다지 많이 필요하지는 않을것 같습니다. 소수의 천재들이.. 프로그래밍 제네레이터.. 임베디드 칩 제네레이터 만들어서.. 가상현실상에서..뚝딱 뚝딱 맞추면.. 결과물이 떡하니.그냥 나와버리는 시스템이되고.. 다른 대부분의 경우에는 시스템이 거의모든 상황을 커버할만큼 고성능이되어버려서..별 예외조치에대한 필요성이 없는것이죠.. 엔지니어링 분야도..워드프로세서가 지구상에 몇개 안되는걸로 다 카바되는것처럼..그리될거같고.. 하여간에.. 기술분야에서도 극빈층에 속하는 재화를 소비만 하는 덧샘 뺄샘도 모르는 대다수의 사람과..극소수의 모든것을 다 할수있는 초기술을 가진 과학자들의 두가지 집단만이 살아남을듯 하네요.. 아마도 그런 과학자들에 의해 사육되겠지요...
- 타도코코아CppStudy/0724/선희발표_객체지향 . . . . 16 matches
예를 들어 '이동(move)' 이라는 기능이 '교수'라는 클래스에 적용될 때는 자택의 이사가 될 수 있으나, '승용차'라는 클래스에 적용되면 특정 목적지로 일정한 시각에 정해진 속도로 움직이는 행위가 될 수도 있다.
* 캡슐화(encapsulation) : 객체의 내부적인 사항과 객체들간의 외부적인 사항들을 분리시킨다. 이렇게 캡슐화된 객체의 행위는 외부에서 볼 때는 구체적인 아닌 추상적인 것이 되므로 정보 은닉(information hiding) 개념이 존중된다. 주어진 클래스의 특정 연산 기능은 메소드(method)라고 한다. 캡슐화는 무슨 메소드로 구현되었는가에 구애받지 않고 추상적으로 정의된 연산 기능을 통해 객체가 사용되고 시스템의 상태(state)를 변화시키도록 해준다.
상속성은 설계 및 코드의 재사용(reuse)을 도와주는 중요한 개념이다.
겉에서 그객체를 사용하기 위한 사용자 인터페이스는 제공하나 데이타를 검색, 수정 그리고 함수의 이용을 위해서는 이 인터페이스를 꼭 거쳐야 되게 하는것이다.
즉 함수나 데이터가 그것이 속해있는 객체전용으로 된다는것을 말한다. 좋은 예로 자동차를 들수있다.
자동차라는 객체 클래스를 우리가 사용하기 위해서는 알아야할 것이 운전하는 방법뿐인 것이다. 표지 판이나 교통신호등은 관계는 있으나 자동차를 움직이기 위한 객체 인터페이스와는 아무런 관계가 없는것이다. 캡슐화는 기능의 조직성과 논리성을 연관시킨다.
* 데이타형 클래스와 객체(Class and Objectas any type data) : 자동차를 움직이기 위한 유저가 2명 있다. 자동차라는 객체 를 둘다 사용하는데 한명은 부산에 가려고 하고 한명은 대구에 오려고 한다.
그렇다면 객체를 사용하여 생기는 마지막 목적지의 차이는 어디서 생기는 것일까? 바로 유저가 머릿속에 생각한 목적지의 차이, 즉 주어진 데이타의 차이에서 오는것이다.
기능 모형(fuction model) : 시스템 내에서 데이타 값이 변하는 과정을 보여주는 것으로 잘 알려진 자료 흐름도(DFD)가 사용된다.
설계 모형을 특정 프로그램 언어로 번역하는 작업이다. 객체, 클래스, 상속의 개념을 다 포용하는 객체지향 언어(object-oriented programming language : C++, Smalltalk 등)가 가장 좋지만 객체의 개념만 인정하고 클래스, 상속 등은 고려하지 않은 객체기반 언어(object-oriented based programming language : Ada 등)도 좋다.
또한, 일반적인 구조적 프로그래밍 언어(structured programming language : C, Pascal 등)도 객체지향 개발에 활용될 수 있는가 하면 객체 지향 데이타베이스 관리시스템(OODBMS)이 개발의 도구로 이용될 수도 있다.
- 타도코코아CppStudy/객체지향발표 . . . . 16 matches
예를 들어 '이동(move)' 이라는 기능이 '교수'라는 클래스에 적용될 때는 자택의 이사가 될 수 있으나, '승용차'라는 클래스에 적용되면 특정 목적지로 일정한 시각에 정해진 속도로 움직이는 행위가 될 수도 있다.
* 캡슐화(encapsulation) : 객체의 내부적인 사항과 객체들간의 외부적인 사항들을 분리시킨다. 이렇게 캡슐화된 객체의 행위는 외부에서 볼 때는 구체적인 아닌 추상적인 것이 되므로 정보 은닉(information hiding) 개념이 존중된다. 주어진 클래스의 특정 연산 기능은 메소드(method)라고 한다. 캡슐화는 무슨 메소드로 구현되었는가에 구애받지 않고 추상적으로 정의된 연산 기능을 통해 객체가 사용되고 시스템의 상태(state)를 변화시키도록 해준다.
상속성은 설계 및 코드의 재사용(reuse)을 도와주는 중요한 개념이다.
겉에서 그객체를 사용하기 위한 사용자 인터페이스는 제공하나 데이타를 검색, 수정 그리고 함수의 이용을 위해서는 이 인터페이스를 꼭 거쳐야 되게 하는것이다.
즉 함수나 데이터가 그것이 속해있는 객체전용으로 된다는것을 말한다. 좋은 예로 자동차를 들수있다.
자동차라는 객체 클래스를 우리가 사용하기 위해서는 알아야할 것이 운전하는 방법뿐인 것이다. 표지 판이나 교통신호등은 관계는 있으나 자동차를 움직이기 위한 객체 인터페이스와는 아무런 관계가 없는것이다. 캡슐화는 기능의 조직성과 논리성을 연관시킨다.
* 데이타형 클래스와 객체(Class and Objectas any type data) : 자동차를 움직이기 위한 유저가 2명 있다. 자동차라는 객체 를 둘다 사용하는데 한명은 부산에 가려고 하고 한명은 대구에 오려고 한다.
그렇다면 객체를 사용하여 생기는 마지막 목적지의 차이는 어디서 생기는 것일까? 바로 유저가 머릿속에 생각한 목적지의 차이, 즉 주어진 데이타의 차이에서 오는것이다.
기능 모형(fuction model) : 시스템 내에서 데이타 값이 변하는 과정을 보여주는 것으로 잘 알려진 자료 흐름도(DFD)가 사용된다.
설계 모형을 특정 프로그램 언어로 번역하는 작업이다. 객체, 클래스, 상속의 개념을 다 포용하는 객체지향 언어(object-oriented programming language : C++, Smalltalk 등)가 가장 좋지만 객체의 개념만 인정하고 클래스, 상속 등은 고려하지 않은 객체기반 언어(object-oriented based programming language : Ada 등)도 좋다.
또한, 일반적인 구조적 프로그래밍 언어(structured programming language : C, Pascal 등)도 객체지향 개발에 활용될 수 있는가 하면 객체 지향 데이타베이스 관리시스템(OODBMS)이 개발의 도구로 이용될 수도 있다.
- 5인용C++스터디/윈도우에그림그리기 . . . . 15 matches
GDI(Graphics Device Interface)란 윈도우의 클라이언트 영역에 그리기를 하는데 사용되는 함수이다. 비디오 출력과 프린터에 그래픽 출력을 책임지고 있는 부분이다. 사용자가 Windows용으로 작성하는 응용 프로그램이 GDI를 사용하여 시각적인 정보를 출력할 뿐 아니라 Windows 자체도 GDI를 사용하여 메뉴, 스크롤 바, 아이콘, 그리고 마우스 커서 같은 사용자 인터페이스 아이템의 시각적인 출력을 수행한다.
DC(Device Context)는 GDI에 의해 내부적으로 관리되는 데이터 구조체이며 '''그래픽 작업을 하기 위해서 필요한 것'''이다. 그림을 그리고자 할 때에는 반드시 먼저 DC에 대한 핸들을 얻어야 한다. 프로그램에 이 핸들을 주는 것으로 Windows는 사용자가 그 장치를 사용할 수 있도록 허가해 준다. 그러면 핸들을 GDI 함수의 인자로 사용하여 현재 그리고자 하는 장치를 Windows가 식별할 수 있도록 한다.
DC 핸들을 얻고 해제하는 가장 일반적인 방법은 WM_PAINT 메시지 처리 도중 BeginPaint와 EndPaint 호출을 사용하는 것이다.
변수 ps는 PAINTSTRUCT 형식의 구조체이다. PAINTSTRUCT 구조체에는 윈도우 프로시저가 클라이언트 영역을 그리는 데 사용할 수 있는 정보들이 저장되어 있다.
두 경우에 있어서 첫번째 인자는 프로그램의 윈도우에 대한 핸들이다. 두번째 인자는 PAINTSTRUCT 형식의 구조체에 대한 포인터이다. PAINTSTRUCT 구조체에는 윈도우 프로시저가 클라이언트 영역을 그리는 데 사용할 수 있는 정보들이 저장되어 있다.
* SelectObject() : CreatePen()으로 만든 펜을 사용하도록 지정해준다.
[5인용C++스터디]
- AcceleratedC++/Chapter12 . . . . 15 matches
상기의 클래스에는 Str(const char*) 타입의 생성자가 존재하기 때문에 이 생성자가 Str 임시 객체를 생성해서 마치 '''사용자 정의 변환(user-define conversion)'''처럼 동작한다.
위의 식 처럼 사용하기 위해서는 Str::size() 가 정의 되어야한다.
상기의 함수는 Str 자료형에 입력을 하기 때문에 Str 형에 대한 쓰기 권한이 필요하다. 그러나 9.3.1절처럼 단순히 입력 함수를 만들게 되면 일반 사용자가 객체의 내부 구조를 건드릴 수 있는 인터페이스를 제공하는 꼴이 되기 때문에 옳지 못하다.
상기에서 구현된 operator+= 는 Vec를 copy함수를 이용해서 구현하였다.
operator+는 operator+=를 이용해서 다음과 같이 간단하게 구현이 가능하다.
이항연산자는 비 멤버함수로 설계하는 것이 좋다. 이유는 멤버함수의 경우 첫번째 인자가 객체의 특정형으로 고정되기 때문에 자동 형변환을 이용할 수 없기 때문이다. 즉 대칭성(symmetry)를 유지하는 것이 가능하다.
멤버함수로 이용되는 경우 우항 피연산자가 자동 형변환되어 좌항과 일치하지 않는 것과 같은 문제가 발생할 수 잇다.
11.2.2 에서의 explicit 키워드의 사용은 자동 형변환에 이용이 되는 단일 인자를 받는 생성자의 행위를 제한함으로써 프로그래머가 원치 않는 변환을 막는 기능을 한다.
일반적으로 객체의 구조를 결정하는 생성자는 explicit 으로 내용을 구성하는 경우에는 암묵적인 실행이 가능하도록 하는 것이 일반적이다.
이런 자동 형변환이 이용된 표준 라이브러리로는 cin 들 수 있다.
그런데 istream 클래스는 istream::operator void*()를 정의하여 만약 입력에 문제가 있으면 void* 형으로 0을 그렇지 않은 경우에는 void* 를 리턴하게 함으로써 마치 bool 형처럼 사용하는 것이 가능하다.
이 것을 해결할 방법은 data의 복사본을 만들어서 그 것을 리턴하고 사용이 끝난 뒤에는 복사본을 제거하는 방식으로 해결이 가능하다.
그러나 사용자는 암묵적 변환사이에서 소멸 시켜야할 포인터를 찾을 수 없다.
|| c_str() || string 내부의 char*를 리턴한다. 따라서 사용자가 delete를 할 수는 없지만 포인터를 얻어서 수정할 수 있다. ||
- Ant . . . . 15 matches
* 왜 Ant 를 사용해야 하나?
make.gnumake,nmake,jam 과 같은 다른 Build 툴은 놔두고 왜 Ant 를 써야하는가에 대한 질문이다. Java 기반으로 프로그램을 짜고 컴파일 및 배포용 쉘 프로그램을 짜봤는가? 해봤다면 그것의 어려움을 잘 알것이다. 각 [OS] 마다 쉘 스크립트가 다르고 일반적으로 사용하고 있는 Unix 에는 또 각종 쉘들이 존재한다. 윈도우 쉘 또한 복잡하긴 매한가지이고 프로그램을 모두 작성하고 컴파일 및 배포 쉘 스크립트를 작성하기 위해서 이것들을 모두 작성하는것 자체가 프로그래머에게 또 하나의 고난이 아닐까 생각한다.(즉, 쉘 프로그램을 배워야 한다는 의미이다.)
Ant 는 OS Indepenent 하게 프로그램을 Build 할 수 있는 환경을 제공해준다. build.xml 이란 Build 파일을 작성해서 그 내용에 따라 Build 를 진행해 나갈 수 있다. Ant 는 ["Java"] 에서 거의 표준으로 굳혀져가고 있으며, 거의 모든 IDE들이 Ant 를 지원한다.
* http://jakarta.apache.org/ant/index.html 에서 최신버전의 binary, source 를 얻을 수 있다. CVS 를 이용, source 를 얻을 수도 있다.
Ant 를 사용하여 Build 하기 위해서는 JAXP 호환 XML파서가 있어야 합니다. 그런데 Ant 를 다운받으면 그 패키지 안에 포함되어 있으므로 따로 다운받으실 필요는 없습니다. JAXP 에 대해서는 http://java.sun.com/xml/ 정보를 얻을 수 있습니다.
이것은 build 파일을 test.xml 이라는 파일을 build 파일로 사용해서 build 하겠다는 의미입니다.
위의 예에 하나가 추가됐죠? -D 옵션은 Build 파일의 Property task 와 같은 역할을 합니다. 즉 Build File 내부에서 사용되는 일종의 변수를 선언한다고 볼 수 있겠죠? ^^
|| basedir || 프로젝트의 base 디렉토리를 말한다. ant 내부에서 사용되는 모든 path 들은 이 디렉토리를 기반으로 한다. || No ||
추가적으로 ''project'' 태그 뒤에 ''description'' 이란 태그를 사용하여 Project 를 설명할 수 있다.
의존관계외에 target을 수행하기 위해서 조건을 걸어서 사용할 수 있다. 이는 "'if'"와 "'unless'" 라는 attribute 를 사용해서 할 수 있다. 형식은 다음과 같다.
* ''property'' 태그 - 일종의 변수역할을 한다. 예제들을 보면 property 태그로 정의한 변수들이 어떻게 이용되는지 알 수 있다.
* '''Build File''' : Build 의 순서 및 각 단계별 작업들에 대해서 xml 형식으로 적어놓은 파일을 말한다. Ant 에서는 default 로 build.xml 을 사용한다.
AntHill, CruiseControl 등의 툴과 연동하여 이용하기도 한다. 이 툴들은 해당 ant build 를 스케줄러에 맞춰놓고, 해당 시간이 되면 자동으로 해당 ant build file을 실행해준다. See Also Wiki:AntHill, Wiki:CruiseControl
- AspectOrientedProgramming . . . . 15 matches
AOP에서는 aspect라는 새로운 프로그램 구조를 정의해 사용한다. 이는 쉽게 struct, class, interface 등과 같이 특정한 용도의 구조라 생각하면 된다. Aspect 내에는 프로그램의 여러 모듈들에 흩어져 있는 기능(하나의 기능이 여러 모듈에 흩어져 있음을 뜻한다)을 모아 정의하게 된다. 전체적으로, 어플리케이션의 각각의 클래스는 자신에게 주어진 기능만을 수행하고, 추가된 각 aspect들이 횡단적인 행위(기능)들을 모아 처리하며 전체 프로그램을 이루는 형태가 만들어진다.
이해를 돕기 위해, 그리고 설명을 쉽게 하기 위해 예를 들어가며 AOP 개념을 설명토록 하겠다. 어플리케이션의 여러 스레드들이 하나의 데이터를 공유하는 상황을 가정해보자. 공유 데이터는 Data라는 객체(Data 클래스의 인스턴스)로 캡슐화되어 있다. 서로 다른 여러 클래스의 인스턴스들이 하나의 Data 객체를 사용하고 있으나 이 공유 데이터에 접근할 수 있는 객체는 한 번에 하나씩이어야만 한다. 그렇다면 어떤 형태이건 동기화 메커니즘이 도입되어야 할 것이다. 즉, 어떤 한 객체가 데이터를 사용중이라면 Data 객체는 잠겨(lock)져야 하며, 사용이 끝났을 때 해제(unlock)되어야 한다. 전통적인 해결책은 공유 데이터를 사용하는 모든 클래스들이 하나의 공통 부모 클래스(“worker” 라 부르도록 하자)로부터 파생되는 형태이다. worker 클래스에는 lock()과 unlock() 메소드를 정의하여 작업의 시작과 끝에 이 메소드를 호출토록 하면 된다. 하지만 이런 형태는 다음과 문제들을 파생시킨다.
1. 공유 데이터를 사용하는 메소드는 상당히 주의해서 작성되어야 한다. 동기화 코드를 잘못 삽입하면 데드락(dead-lock)이 발생하거나 데이터 영속성이 깨질 수 있다. 또한 메소드 내부는 본래의 기능과 관련 없는 동기화 관련 코드들로 더럽혀질 것이다.
1. Java와 같은 단일 상속 모델에서는 worker를 만든다는 것이 불가능할 수 있다. 어떤 클래스들은 이미 다른 클래스들로부터 확장되었을 수도 있기 때문이다. 이는 특히 클래스 계층 구조 설계가 마무리된 후, 뒤늦게 동기화의 필요성을 깨달았을 때 흔히 발생한다. 동기화를 신경 쓰지 않은 범용 클래스 라이브러리를 통해 공유 데이터에 접근하려 하는 경우가 한 예가 될 수 있다.
1. 재활용성(reusability)이 감소된다. worker 클래스는 동기화가 필요치 않는 클래스나 심지어 다른 동기화 메커니즘이 필요한 상황에서도 사용하길 원할 수 있다. 동기화 관련 코드를 삽입함으로써 worker 클래스는 특정 어플리케이션에 종속적인 클래스로 전락하게 된다.
1. Data 객체를 사용하는 클래스들을 위해 lock 및 unlock 메커니즘을 제공한다(lock(), unlock()).
1. 이상의 기능을 Data 객체를 사용하는 클래스의 자바 소스를 변경하지 않고 투명하게 수행한다.
특정 메소드(ex. 객체 생성 과정 추적) 호출을 로깅할 경우 aspect가 도움이 될 수 있다. 기존 방법대로라면 log() 메소드를 만들어 놓은 후, 자바 소스에서 로깅을 원하는 메소드를 찾아 log()를 호출하는 형태를 취해야할 것이다. 여기서 AOP를 사용하면 원본 자바 코드를 수정할 필요 없이 원하는 위치에서 원하는 로깅을 수행할 수 있다. 이런 작업 모두는 aspect라는 외부 모듈에 의해 수행된다. 또 다른 예로 예외 처리가 있다. Aspect를 이용해 여러 클래스들의 산재된 메소드들에 영향을 주는 catch() 조항(clause)을 정의해 어플리케이션 전체에 걸친 지속적이고 일관적으로 예외를 처리할 수 있다.
AspectJ는 Eclipse 프로젝트라기 보다. Xerox PARC 의 AspectJ 프로젝트의 홈페이지가 옮겨 온것 입니다. 역시 이글이 wegra님이 해석해 놓으신거 였군요. 좀더 많은 내용은 아래의 SisterWiki 를 참고하시고, 관련포럼 비스무리 한데가 http://aosd.net 입니다. --NeoCoin
- Gof/Command . . . . 15 matches
때때로 요청받은 명령이나 request를 받는 객체에 대한 정보없이 객체들에게 request를 넘겨줄 때가 있다. 예를 들어 user interface tookit은 button이나 menu처럼 사용자 입력에 대해 응답하기 위해 요청을 처리하는 객체들을 포함한다. 하지만, 오직 toolkit을 사용하는 어플리케이션만이 어떤 객체가 어떤일을 해야 할지 알고 있으므로, toolkit은 button이나 menu에 대해서 요청에 대해 명시적으로 구현을 할 수 없다. toolkit 디자이너로서 우리는 request를 받는 개체나 request를 처리할 operations에 대해 알지 못한다.
어플리케이션은 각각의 구체적인 Command 의 subclass들로 각가각MenuItem 객체를 설정한다. 사용자가 MenuItem을 선택했을때 MenuItem은 메뉴아이템의 해당 명령으로서 Execute oeration을 호출하고, Execute는 실제의 명령을 수행한다. MenuItem객체들은 자신들이 사용할 Command의 subclass에 대한 정보를 가지고 있지 않다. Command subclass는 해당 request에 대한 receiver를 저장하고, receiver의 하나나 그 이상의 명령어들을 invoke한다.
OpenCommand의 Execute operation은 다르다. OpenCommand는 사용자에게 문서 이름을 물은뒤, 대응하는 Document 객체를 만들고, 해당 문서를 여는 어플리케이션에 문서를 추가한 뒤 (MDI를 생각할것) 문서를 연다.
때때로 MenuItem은 연속된 명령어들의 일괄수행을 필요로 한다. 예를 들어서 해당 페이지를 중앙에 놓고 일반크기화 시키는 MenuItem은 CenterDocumentCommand 객체와 NormalSizeCommand 객체로 만들 수 있다. 이러한 방식으로 명령어들을 이어지게 하는 것은 일반적이므로, 우리는 복수명령을 수행하기 위한 MenuItem을 허용하기 위해 MacroCommand를 정의할 수 있다. MacroCommand는 단순히 명령어들의 sequence를 수행하는 Command subclass의 구체화이다. MacroCommand는 MacroCommand를 이루고 있는 command들이 그들의 receiver를 정의하므로 명시적인 receiver를 가지지 않는다.
이러한 예들에서, 어떻게 Command pattern이 해당 명령을 invoke하는 객체와 명령을 수행하는 정보를 가진 객체를 분리하는지 주목하라. 이러함은 유저인터페이스를 디자인함에 있어서 많은 유연성을 제공한다. 어플리케이션은 단지 menu와 push button이 같은 구체적인 Command subclass의 인스턴스를 공유함으로서 menu 와 push button 인터페이스 제공할 수 있다. 우리는 동적으로 command를 바꿀 수 있으며, 이러함은 context-sensitive menu 를 구현하는데 유용하다. 또한 우리는 명령어들을 커다란 명령어에 하나로 조합함으로서 command scripting을 지원할 수 있다. 이러한 모든 것은 request를 issue하는 객체가 오직 어떻게 issue화 하는지만 알고 있으면 되기때문에 가능하다. request를 나타내는 객체는 어떻게 request가 수행되어야 할지 알 필요가 없다.
다음과 같은 경우에 CommandPattern을 이용하라.
* 기본명령어들를 기반으로 이용한 하이레벨의 명령들로 시스템을 조직할 때. 그러함 조직은 transaction을 지원하는 정보시스템에서 보편화된 방식이다. transaction은 데이터의 변화의 집합을 캡슐화한다. CommandPattern은 transaction을 디자인하는 하나의 방법을 제공한다. Command들은 공통된 인터페이스를 가지며, 모든 transaction를 같은 방법으로 invoke할 수 있도록 한다. CommandPattern은 또한 새로운 transaction들을 시스템에 확장시키기 쉽게 한다.
다음의 다이어그램은 이 객체들이 어떻게 상호작용하는지 보여준다. 이 다이어그램은 또한 어떻게 Command 가 receiver와 처리할 request로부터 invoker를 분리하는지 설명한다.
undo 할 필요가 없고, 인자를 요구하지 않는 단순한 명령어에 대해서 우리는 command의 receiver를 parameterize하기 위해 class template를 사용할 수 있다. 우리는 그러한 명령들을 위해 template subclass인 SimpleCommand를 정의할 것이다. SimpleCommand는 Receiver type에 의해 parameterize 되고
constructor는 receiver와 instance 변수에 대응되는 action을 저장한다. Execute는 단순히 action을 receiver에 적용한다.
THINK 클래스 라이브러리 [Sym93b] 또한 undo 가능한 명령을 지원하기 위해 CommandPattern을 사용한다. THINK 에서의 Command들은 "Tasks" 로 불린다. Task 객체들은 ChainOfResponsibilityPattern에 입각하여 넘겨지고 소비되어진다.
CompositePattern 는 MacroCommand를 구현하는데 이용될 수 있다.
history list 에 위치하기 전에 복사되여야 할 command는 Prototype으로서 작용한다.
- JavaScript/2011년스터디/3월이전 . . . . 15 matches
* 공부한 내용은 3분 이상 발표한다.
* 발표자를 제외한 사람들은 들은 내용과 샘플 코드에서 가장 인상깊은 점 3가지를 고른다.
* for each문을 사용하는 법.
* void 연산자를 사용하면 피연산자의 값에 상관없이 undefined를 반환한다.
* try/throw/catch/finally 의 사용 -> finally는 모든 try, catch를 나와서 사용
* with함수 사용시 발생할 수 있는 오류에 대해 알고싶다...(책에서는 생략함)
* 다음 스터디에 적용하고 싶은 점
* 클로저의 정의와 사용...ㅠ
* 함수가 데이터로써 사용될수 있다는점
* 프로토타입의 정의와 사용 상속부분이 다른 언어와는 다르다.
* 네임스페이스 사용 시 org.zeropage.namespace는 되고 org.zeropage.namespace.function1은 안 되는 이유
* 익명함수를 사용한 Dynamic programming
* 네임스페이스 사용 시 org.zeropage.namespace는 되고 org.zeropage.namespace.function1은 안 되는 이유
* 분석한 내용은 위키에 정리하고 정모에서 세미나 하기로 함
- ProjectPrometheus/UserStory . . . . 15 matches
||검색된 책들은 출판날짜, 사용자 평가 (Review) 에 따라 정렬되어진다. ||
||책 정보를 볼 때, 타 인터넷 사이트에 대한 (amazon, wowbook, yes24 등등) Link 를 제공받아 이용할 수 있다. ||
||로그인을 해야 서비스를 이용할 수 있다. ||
||사용자들을 관리할 수 있다. (사용자 정보 수정/삭제) ||
||사용자들에게 공지를 전달할 수 있다. ||
||Review 의 내용을 수정/삭제 할 수 있다. ||
사용자는
* 검색된 책들은 출판날짜, 사용자 평가 (Review) 에 따라 정렬되어진다.
* 로그인을 해야 서비스를 이용할 수 있다.
* 책 정보를 볼 때, 타 인터넷 사이트에 대한 (amazon, wowbook, yes24 등등) Link 를 제공받아 이용할 수 있다.
* 사용자들을 관리할 수 있다. (사용자 정보 수정/삭제)
* 사용자들에게 공지를 전달할 수 있다.
* Review 의 내용을 수정/삭제 할 수 있다.
- Refactoring/BadSmellsInCode . . . . 15 matches
Refactoring이 동작하는 매커니즘을 아는 것 만큼 중요한 것은, 언제 Refactoring을 적용할까 하는 것이다.
내가 이 문제로 Kent Beck 을 방문했을 때 그는 "언제" 를 설명하기 위해서 "Smell" 이라는 표현을 사용했다. 우리는 많은 코드들을 보았고, 그것들을 보면서 Refactoring이 적용가능한 어떤 구조를 발견했다.
여기에서 우리는 Refactoring이 적용가능한 아주 정확한 척도를 제공하려고는 하지 않을 것이다. 경험상, 어떠한 측정도구들도 숙련된 인간의 직관의 경쟁상대가 될 수는 없었다. 우리가 하려는 것은 Refactoring에 의해 해결될 수 있는 문제들이 있는 몇몇 부분을 지적하려는 것이다.
* ExtractMethod 하는중 parameter를 많이 넘겨야 하거나, 임시변수를 많이 사용하게 되는 경우 - ReplaceTempWithQuery, IntroduceParameterObject, PreserveWholeObject, ReplaceMethodWithMethodObject
* 꼭 항상 사용되지는 않는 인스턴스 변수들 - ExtractClass, ExtractSubclass
Parameter 인자가 많은 함수. 이해하기 힘들고, 사용하기 어렵다.
* polymorphism을 이용하기에는 너무 작아 오히려 cost가 더 드는 경우 - ReplaceParameterWithExplicitmethods
* 별로 사용하지 않는 subclass들 - CollapseHierarchy
일어날 가능성이 거의 없는 일까지 다 대비한 필요없는 코드. 모든 기능들과 절차들은 제대로 이용되었을때 쓸모있다.
* 사용하지 않는 parameter들을 가진 메소드 - RemoveParameter
delegation 의 남용.
서브클래스가 부모의 behavior는 재사용하나 부모의 인터페이스를 지원하기를 원하지는 않을 때.
나쁜 냄새를 가리기 위한 방향제로 사용되는 주석. --;
주석을 이용할 좋은 시기는 도대체 무엇을 해야 할 지 모르겠을 때 이다. 무엇을 할 것인지 주석으로 먼저 서술함으로서 주석은 프로그래머가 무엇을 해야 할 지 확신할 수 없을 때 좋은 지침서가 된다. 주석은 ' ''왜'' 당신이 이것을 하는가' 를 말하기 위한 좋은 장소이다.
- Ubiquitous . . . . 15 matches
최상의 도구란 사용자로 하여금 그 도구를 이용하고 있음을 자각하지 못하고 수행하고 있는 일에만 집중하게 하여 업무의 효율성을 높이게 하는 것’이라고 생각했다. 즉, 기존의 정보 기술이 업무를 보조하는 보조적 수단이 아닌 그 자체가 중심이 되어 버린 것을 비판하며, 인간 중심의 컴퓨팅 기술 즉, 사용하기 쉬운 컴퓨터 개념으로써의 유비쿼터스 컴퓨팅 비전이 제시되었다
가트너 그룹의 발표에 따르면 2001년 세계 PC 판매량은 1억 286만대이고 휴대용 단말기는 3억9958만대로 집계되었다고 한다.
이런 컴퓨터들은 사용자의 눈에 띄지 않는다.
인터넷이나 가상 현실 같은 가상 공간이 아닌 실제 세계의 어디서나 사용할 수 있다
인간화된 인터페이스(Calm Technology)를 제공해 사용자 상황(장소, ID, 장치, 시간, 온도, 명암, 날씨 등)에 따라 서비스가 변한다.
사용자가 네트워크나 컴퓨터를 의식하지 않고 장소에 상관없이 자유롭게 네트워크에 접속할 수 있는 정보통신 환경.
물이나 공기처럼 시공을 초월해 '언제 어디에나 존재한다'는 뜻의 라틴어(語)로, 사용자가 컴퓨터나 네트워크를 의식하지 않고 장소에 상관없이 자유롭게 네트워크에 접속할 수 있는 환경을 말한다. 1988년 미국의 사무용 복사기 제조회사인 제록스의 와이저(Mark Weiser)가 '유비쿼터스 컴퓨팅'이라는 용어를 사용하면서 처음으로 등장하였다.
유비쿼터스화가 이루어지면 가정·자동차는 물론, 심지어 산 꼭대기에서도 정보기술을 활용할 수 있고, 네트워크에 연결되는 컴퓨터 사용자의 수도 늘어나 정보기술산업의 규모와 범위도 그만큼 커지게 된다. 그러나 유비쿼터스 네트워크가 이루어지기 위해서는 광대역통신과 컨버전스 기술의 일반화, 정보기술 기기의 저가격화 등 정보기술의 고도화가 전제되어야 한다. 이러한 제약들로 인해 2003년 현재 일반화되어 있지는 않지만, 휴대성과 편의성뿐 아니라 시간과 장소에 구애받지 않고도 네트워크에 접속할 수 있는 장점들 때문에 세계적인 개발 경쟁이 일고 있다.
== 용어 ==
- 데블스캠프2005/RUR-PLE . . . . 15 matches
* 로봇 사용법 5분
* if문 사용 + 연습 5분
* not 사용 + 연습(수확2) 40분
* while 사용 + 연습(수확3) 10분
* Python 언어를 사용하여 컴퓨터 프로그래밍 언어를 배울수 있는 환경이다.
* 실제로 로봇에 프로그래밍 해서 그 로봇이 현실에서 자신이 프로그래밍 하는데로 움직이는것을 보면 정말 좋겠지만 여건이 안되는 만큼 -_-; 화면으로나마 그 로봇이 움직이는 것을 보면서 프로그래밍 해볼 수 있다. 여기에서 작성하는 코드들이 무슨 쓸모가 있을까 싶기도 하겠지만, 추후에 실제 로봇의 동작을 프로그래밍해서 넣는다면 여기서 쓰이는 방식과 비슷하게 넣을것이다.(하드웨어적으로 복잡한것을 명령어로 추상화 시킨다음에 그 명령어을 적절하게 복합적으로 사용하여 원하는 행동을 로봇이 하게 만드는 식으로..) 즉 말그대로 로봇 프로그래밍을 간접적으로나 해볼 수 있다.
= 간단한 러플 사용법 =
* repeat 명령어를 써서 여러번 수행해야 하는 함수(명령어 포함)을 한번에 방복 횟수만 지정해서 사용할 수 있다.
== if 문 사용 ==
* 위의 if문과 함수 정의, repeat를 사용하여 아래 화면과 같은 상황을 처리한다.
=== else 문 사용 ===
* not은 아래와 같은 식으로 사용한다.
* 아래와 같은 식으로 사용한다.
* while문을 사용하여 중복된 씨앗의 개수가 2 이상인 임의의 개수일 경우에도 처리 가능하게 위 소스를 수정한다.
* 정말 유익한 내용이다. 주어진 간단한 몇가지 상황을 해결하면 놀라운 기능이 되는것을 볼 수 있다.
- 데블스캠프2008/등자사용법 . . . . 15 matches
1. 배운 것의 중심 내용은 무엇인가요?
1. 중심내용 : 자전거는 지나가기에 충분한 크기다.
주요내용을 보내주세요
잠재 의식과 자신의 느낌 그리고 즐거움을 응용한 자기 개발
굳이 프로그래밍을 잘해야 한다는 강박관념에 빠지기 보다는 자연스럽게 할수 있을 정도가 되어야 한다는 내용.
네이버 지식인을 잘 활용하자
중요한 개념보다 유용한 개념 먼저 가르친다-
재미없는 일은 하기 힘들다 재미있게 공부를 하면 좋은 결과를 얻을 수 있다. 따라서 자기가 재미있게 느끼는 부분을 공부하고 그 부분과 연관된 것들을 공부한다던지 같이 공부한다던지 여러 자료를 사용한다던지 해서 재미있게 만들면 즐겁게 공부하면서 좋은 성과를 얻을 수 있다. - FLATSTAR-
1. 배운 것의 중심 내용은 무엇인가요?
그것을 상기 하게끔 만들어서 수업내용 자체에
피드백 원리를 적용 하신 것 같습니다.
몰입이 잘 되고, 적당히 도전적이고, 재미있고, 교육적이고... 많은 경우 이 표현들은 다 동의어입니다(see also 재미있게 공부하기). 어려운 일을 대면했을 때 "오히려 더 많이 하면서 더 쉽게, 더 빨리 할 수 있는" 길은 없나 자문해 보세요. 꼭 프로그래밍에만 적용되는 이야기는 아닐 것입니다.
2.역시 세미나한번으로 이주제의 내용을 다 알기엔 무리가 있다고 생각하고,
다짐 - 낙관과 비관은 모두 필요한 것같다. 적절한 적용이 필요할 것 같다
남에게 이용당할 수 있으니까.
- 위키의특징 . . . . 15 matches
|| 글쓰기 권한 || 작성자만 수정하도록 보통 사용 || 모두 수정 가능하도록 사용 ||
|| 페이지온도의 변화 || 작성시간이후 계속 낮아짐.(이러한 이유로 질&답 게시판을 보면 같은 내용의 질답이 많다 사람들이 작성날짜를 기준으로 글을 보고 쓰기 때문)|| 참여에 따라 언제든지(위키에서는 생성날짜보다 그글의 수정(혹은 생성-최근바뀐글)되었는지가 기준이 된다. 글에 대한 접근이 각글을 읽다가 링크를 따라서 여러가지 글에 대한 접근이기 때문에 언제든지 사람들의 관심을 가지는 글들은 재조명 받을수 있다.||
|| 접근성 || 단순한 메타포때문에 사용자 접근이 쉽다 || 장벽이 게시판보다 높다 ||
* 개인위키 와 블로그의 비교 (위키는 커뮤니티, 혹인 개인 위키로 사용함)
* 개인위키 : 스쳐지나가는 아이디어들을 쌓아서 결국 체계적인 정보 자료집을 만들어나가고자 할 때에 유용, 종국에 있어서는 체계적으로 정리된 지식의 형태가 된다. 개인위키는 블로그처럼 타인에게 보여주기 윈한 목적보다 자기 자신을 위한 것인 경우가 더 많다. 어느 누구에게 공개하지 않고 홀로 써도 많은 가치를 얻는다. 반면 블로그는 비공개 일기장으로 쓰는 경우는 별로 없다. 객관화된 양질의 지식을 얻기 위해서는 위키가 훌륭함.
* 블로그 : 블로그는 통시적인 개인의 관심사에 대한 문학적 구성에 유용할 것이라고 본다. 블로그는 철저히 개인적인 공간에 혼잣말을 적어두는 공간. 상대방의 정체성을 알고 관점을 이해하는데는 블로그가 장점
* MBTI유형중 N(직관)형이 위키를 많이 사용. N형은 개별 사실보다 사실 사이의 관계에 대한 인지가 선행된다. 처음 본 사람이 어떤 머리형을 하고, 어떤 셔츠, 어떤 바지, 어떤 구두를 신었는지를 먼저 파악하는 것이 아니라 그 사람이 전체적으로 풍기는 느낌을 먼저 catch 하게 되며, 이것은 개별 사실들의 전체적인 연관성에 의해 나타나게 되는 것이다. -> 위키가 이런 N형에게 그러한 수단을 풍부하게 제공함. 수평적으로 나열된 사실들에 대해서 적절한 링크(혹은 지도패턴)을 사용하여 관련을 맺어줌으로써 개별사실이 가지는 합 이상의 정보를 창조.
* 현대의 정보화 사회에서는 많은 지식을 머리속에 가지고 있는 사람보다는 유용한 지식이 어디 어디에 있는지 알면서 쉽게 찾아내는 사람이 지식인이다. 그런 의미에서 위키는 자신의 개인적 지식이나 특정 커뮤니티에서의 지식등을 체계적으로(사람의 두뇌 구조와 유사한 방식.. 링크 - 유사연상) 관리한다. 사람의 두뇌 구조와 비슷하기 때문에 일종의 외부 두뇌(external brain)로 볼수도 있다. 위키위키는 논리적이고 이성적인 객관화된 사실이나 진실을 찾아가는데는 탁월하다.
* 인터넷 일기장, 메모장, 스케치북, 스크랩북으로 활용, 수필집, 자서전, 사진첩, 신문도 될수 있다.
* Web + log. 인터넷이라는 바다에서 사용하는 '항해일지' 나 '여행일지'를 뜻함.
* 네티즌이 웹에서 기록하는 일기나 일지를 뜻한다.(가장 정확하게 표현해주는 말) 무엇을 기록할지는 사용자 마음
* 기존의 홈페이지 보다 쉽게 만들고 사용, 관리할 수 있다. 매우 쉬워서 컴맹들도 한 시간 이내로 능숙하게 사용할 수 있다.
- 2dInDirect3d/Chapter2 . . . . 14 matches
* Viewport를 생성하고 사용하는 방법
UINT Adapter, // 어댑터의 번호, D3DADAPTER_DEFAULT를 사용
D3DDEVTYPE DeviceType, //디바이스의 타임, D3DDEVTYPE_HAL을 사용
2. BehaviorFlag에는 버텍스를 처리하는 방법을 넣어준다. D3DCREATE_HARDWARE_VERTEXPROCESSING, D3DCREATE_MIXED_VERTEXPROCESSING, D3DCREATE_SOFTWARE_VERTEXPROCESSING중 한가지를 사용한다. (사실은 더 많은 옵션이 있다.) 대개 마지막 SOFTWARE를 사용한다.
5. 다 사용한 이후는 꼭!! '''Release()'''함수를 사용하여 사용을 해제시킨다.
== Direct3D에서 사용하는 색상 ==
Direct3D에서 사용하는 색상은 '''D3DCOLOR''' 이다. (3D에서는 COLORREF였다.) 저것을 정의하는 매크로에는 다음과 같은 세가지가 있다.
RGB(r, g, b); // 보통 사용하는 색상 매크로
D3DCOLOR_XRGB(r, g, b); // 보통 사용하는 매크로와 사용법이 같다. 이때 a 값은 0이 아닌 255(최대값)이 들어간다.
1. D3DCLEAR_STENCIL, D3DCLEAR_TARGET, D3DCLEAR_ZBUFFER 세개가 있는데, 보통 D3DCLEAR_TARGET를 사용한다.
- Bigtable기능명세 . . . . 14 matches
1. 태블릿 개수, cpu rate, 메모리 사용량의 비율을 계산해서
1. ISSUE : 평균+일정 수치를 이용한 계산식 필요
client는 b+ 트리를 이용해 row key 탐색을 할 수 있다.
원형 자료구조를 사용해 공간의 재활용필요 -> 한바퀴 돌아서 공간이 없어지면 memtable들의 minor compaction이 필요하다.
1. 플래그를 이용해 삭제됨을 명시
Locker는 잠금파일을 이용해 TS를 관리한다.
1. memtable에게 할당된 메모리를 다 사용해서 더 이상 쓰기를 할 수 없을 때
1. 커밋로그에게 할당된 용량을 다 사용해서 더 이상 쓰기를 할 수 없을 때
1. 클라이언트 api 사용
1. 클라이언트 api 사용
1. 클라이언트 api 사용
태블릿 서버용 api
- D3D . . . . 14 matches
GameLibrary( http://www.zeropage.org/~erunc0/study/d3d/GameLib.zip )를 만들어 가면서 책의 내용을 본다는.. 뭐뭐뭐.. [[BR]]
3D를 이용한 오락 만들기. [[BR]]
너네두 곧 필요해질 내용이 있을테니.. 근데 지금은 내코가 좀 석자라서.. 시간에 쫓기는 관계로.. 언젠가.. 꼭.. ^^;; - 해성
이런 종류의 책들이 다 그렇듯이, winapi를 사용한다.[[BR]]
그렇기 때문에, 초반의 한 chapter는 거의다 winapi를 사용해서 [[BR]]
책의 내용중 모르는 것이 너무 많다. 아니, 말이 어려운것 같다. [[BR]]
union // use union - 메모리를 공유하는 성분들에 이름을 지정하는데 사용.
float x, y, z; // 구조체의 이름이 정의되지 않았지 때문에 x,y,z 성분을 원자 단위로 사용.
point3 (float X, float Y, float Z) : x(X), y(Y), z(Z) {} // 초기화 목록을 사용. (compiler가 작업을 더 잘 수행할 수 있도록 해준다더군.)
폴리곤은 개체의 테두리를 표현하는데 사용된다.[[BR]]
모델의 각 점에 이들 변환을 적용하는 것이다.[[BR]]
* 실제사고, 개체들이 무엇을 할 것인지 스스로 결정하고 움직이는 능력을 이용하며 하고자 하는 바를 행할 계획을 세우는것 (acion steering)
제곱으로 나누다. 그리고 나서는 물체가 방향 벡터로서 이용해야될 하나의 벡터를 얻는다.[[BR]]
// 실제 사용 예.
- FoundationOfUNIX . . . . 14 matches
* UNIX 사용법에 대한 기초를 알려 줍니다.
* 몇시간 정도 밖에 못할것을 감안하여, 그렇게 많은 내용을 전달할것 같지는 않고, 실습 위주로 간다히 UNIX 사용법에 대한 맛만 보여줄 것을 목표로 잡았습니다.
= 실습해볼 내용 =
* cp file1 /test1 (절대 경로와 상대 경로를 사용할 수 있따.)
* 메뉴얼(사용 설명서) 보는 명령어
* 아까 -rwxr--r--은 (-디렉토리,파일여부 파일은 -, 디렉토리 d)(--- 사용자 권한)(---그룹 권한)(---다른사용자 권한)
* grep 파일 내용 검색하기
* vi 편집기 사용
* p - 붙이기.. dd 명령어 수행하면 지워진것이 버퍼에 저장.. p 명령어 사용함으로써 버퍼에 저장된 것을 붙임
* / - 내용찾기 /word ,다음찾기 n, 대문자 N 은 반대방향으로
* 필요한 내용
=== 응용문제 ===
- HelpOnInstallation . . . . 14 matches
* <!> `rcs`가 없어도 사용할 수 있으나 백업본이 저장되지 않습니다.
* 최신 모니위키는 PHP로 만들어진 RcsLite를 제공하며, rcs 대신에 사용할 수 있습니다.
* 윈도우즈 사용자의 경우는 아파치 웹서버를 제외한 PHP + rcs + 기타 몇몇 프로그램이 함께 패키징 된 apmoni-setup-1.1.x.exe를 제공합니다.
* 윈도우즈 사용자의 경우 micro apache 웹서버가 포함된, mapmoni-setup-1.1.x.exe 를 받으실 수도 있습니다. (단, 여기서 .x. 는 3 이상)
처음 설치할 경우 MoniSetup을 이용해서 config.php를 만들게 된다.
그러나 초보사용자라면 SystemPages는 반드시 설치하는 것을 권장한다.
모니위키 설치가 끝났지만 사용자의 입맛에 맞게 설정하고자 한다면 다음을 참고하세요.
* 기존의 data디렉토리는 전혀 덮어씌여지지 않는다. 그러나 만약의 실수를 대비하기 위해서 업그레이드 하기 전에는 data/text 디렉토리의 내용을 백업해 두는 것이 좋을 것이다.
root사용자라면 tar를 이용해서 간단히 백업할 수 있겠고, 호스팅을 하는 일반 사용자의 경우라면 backup restore를 액션을 이용할 수 있다.
* 윈도우즈 사용자라면 퍼미션이 문제가 되지 않으므로 간단히 {{{data}}}디렉토리를 통채로 복사해서 보존하면 될것이다.
* 모니위키 1.1.3.1부터는 MicroApache와 함께 배포되고 있다. MicroApache는 아파치를 작게 줄인 윈도우즈용 배포판이며, 모니위키를 보다 손쉽게 맛볼 수 있게 해준다.
- MemeHarvester . . . . 14 matches
* 젠장.. 구글에도 이와 비슷한 알리미라는 서비스가 나왔구나.. 내꺼가 먼저 만들어졌는지 이게 먼저 만들어 졌는지는 모르겠지만.. 이것은 사용자가 사이트와 키워드를 입력하는 그러한 번거로움 없이 사용자가 한번 방문한 사이트들에 대해서 자동적으로 업데이트 내용들을 알려주는 방식이었다. 이 방식은 본 받을만 한거 같다.
* 이것은 [EventDrvienRealtimeSearchAgency] 의 일종이다.- 싸이월드를 보면 자신의 방명록에 글이 올라오면 바로 알려준다. 이를 모든 웹사이트에 대해서 가능하도록 하는 프로젝트, 물론 단순히 새글이 올라왔다고만 알려주는것은 아니다. 어떠한 새글이 올라왔는지 실시간으로 알려주며 키워드를 입력하면 해당 키워드가 포함된 글이 올라올때만 알려주기도 한다. 활용 예를 보면 어떤 프로젝트인지 잘 이해가 갈 것임..
|| 데이터 수집 || 로봇이 모든 웹을 돌아다니면서 데이터 저장 || 사용자가 특정 웹을 지정하고, 해당 웹에서 사용자가 원하는 키워드가 포함된 글이 올라올 경우나 새 글이 올라올 경우(옵션에 따라) 실시간으로 알려줌, RealTimeSearchEngine ||
|| 데이터를 보여주는 방식 || 사용자가 키워드 입력 -> 저장된 데이터를 보여줌.(필요 없는 정보를 포함하여 너무 많이 보여줌) || 사용자가 키워드(입력할수도 있고 아닐수도 있고)와 특정 웹사이트들을 입력하면 해당 웹사이트에서 그 시점으로부터 특정 키워드가 새로 올라오면 실시간으로 알려주거나, 그 시점부터 특정 시점까지 바뀐 내역을 보여줌 ||
== 활용 예 ==
|| 분야 || 활용 방법 ||
|| 중고 매매 알선 || 특정 중고 제품을 원한다고 등록해놓으면 현재 등록되어 있는 중고 사이트중에서 해당 물품이 올라올 경우 사용자에게 실시간으로 알려준다. ||
||- || WebDiff - 남상협 || 바뀐 내용 비교 루틴 작성 ||
|| 05/12/25 || webDiff - 남상협 || 서버 완성(쓰레드사용), 정보를(id,비번,비교할 웹사이트 정보) 받으면 바뀐 내역을 클라이언트에게 알려줌 ||
클라이언트는 바뀐 데이터중에서 원하는 키워드가 포함되었는지 판단하고 사용자에게 보여준다.
- OurMajorLangIsCAndCPlusPlus/stdio.h . . . . 14 matches
|| 함수형식 || 용도 ||
|| size_t fwrite(const void *, size_t, size_t, FILE *) || 해당 내용을 두번째 인자의 크기만큼, 세번째 인자의 횟수로 스트림에 기록한다. ||
|| void setbuf(FILE *, char *) || 해당 스트림에 사용할 버퍼를 지정해 준다. ||
|| int setvbuf(FILE *, char *, int, size_t) || 해당 스트림에 지정된 크기만큼의 사용할 버퍼를 지정해 준다. ||
|| char * tmpnam(char *) || 임시 파일로 사용할 수 있는 이름을 인자1에 기록한다. ||
|| int vfprintf(FILE *, const char *, va_list) || 해당 스트림에 인수리스트를 이용해서 지정된 형식의 문자열을 삽입한다. ||
|| int vprintf(const char *, va_list) || 표준 입출력에 인수리스트를 이용해서 지정된 형식의 문자열을 출력한다. ||
|| int vsprintf(char *, const char *, va_list) || 해당 문자열에 인수리스트를 이용해서 지정된 형식의 문자열을 기록한다. ||
|| int vfwprintf(FILE *, const wchar_t *, va_list) || 해당 스트림에 지정된 형식의 유니코드 문자열을 인수리스트를 사용해서 기록한다. ||
|| int vwprintf(const wchar_t *, va_list) || 표준 입출력으로 지정된 형식의 유니코드 문자열을 인수리스트를 사용해서 출력한다. ||
|| int vswprintf(wchar_t *, const wchar_t *, va_list) || 유니코드 문자열을 지정된 형식의 유니코드 문자열로 인수리스트를 사용해서 기록한다. ||
|| int vswprintf(wchar_t *, size_t, const wchar_t *, va_list) || 지정된 크기 만큼의 유니코드 문자열을 인수리스트를 사용해서 작성한다. ||
|| int wscanf(const wchar_t *, ...) || 표준 입출력을 사용해서 유니코드의 입력을 받는다. ||
|| char * tempnam(const char *, const char *) || 주어진 두번째의 인자를 바탕으로 임시로 사용할 파일의 경로를 리턴한다. ||
- RAD . . . . 14 matches
우수한 소프트웨어 개발 도구를 이용하여 전통적인 개발 방법보다 더 적은 시간과 비용으로 더 좋은 품질의 소프트웨어를 개발하는 방법.
전통적인 소프트웨어 개발 방법(waterfall 모델)은 오랜 기간의 분석, 설계, 프로그래밍 그리고 테스트 과정을 되풀이한 후 최종 단계에서 비로소 사용자가 요구한 시스템을 완성할 수 있었다. 그러나 이와 같은 방법으로는 소프트웨어의 생명주기가 점차 짧아지는 등의 급변하는 프로그램 시장과 사용자의 요구를 수용하기가 매우 어렵다. 따라서 소프트웨어의 생산성을 향상시키면서 동시에 개발 기간과 비용을 단축시킬 수 있는 방법이 요구되었고, 이러한 연구의 결과로 RAD와 같은 개념이 등장하게 되었다.
RAD는 우수한 소프트웨어 개발 도구를 이용하여 전통적인 개발 방법보다 더 적은 시간과 비용을 투자하더라도 보다 나은 품질의 소프트웨어를 개발할 수 있는 소프트웨어 개발 과정을 말한다. 이러한 RAD 방식의 개발은 응용 프로그램의 전체 개발 과정을 하나로 통합하여 기존의 반복적이고 점진적인 소프트웨어 개발 과정은 그대로 수용하면서도, 개발 과정 초기에 사용자에게 실행 가능한 기본적인 프로토타입을 제시하여 사용자의 요구를 훨씬 더 명확하게 수용하여 차후에 일어날 수 있는 많은 문제를 줄이고, 설계 과정을 그대로 개발에 재사용함으로써 전체적인 개발 기간의 단축을 꾀하는 것을 목적으로 한다.
- TCP/IP 네트워크 관리 / TCP/IP의 개요 . . . . 14 matches
*1983 - 군사용 표준(MIL STD)로 TCP/IP 프로토콜 채택.
* '''인터넷''' - MILNET과 ARPANET을 합친 전체 네트워크를 가리키는 말로 사용.
* NSFNET는 ARPANET보다 규모도 작고 속도도 느렸지만, 인터넷 역사에 중요한 사건으로 기억된다. 이유는 인터넷 효용성에 새로운 가능성을 제시했기 때문.
*현재 인터넷(intetnet)은 네트워크의 모든 종류를 가리키는 포괄적 용어
*''Internet'' : 원래 ARPANET에서 성장. 다양한 네트워크를 하나의 논리적 네트워크로 묶기 위해서 인터넷 프로토콜(IP)을 사용하는 서로 연결된 네트워크의 전세계적 모임.
* 개방형 프로토콜 표준 : 특정 컴퓨터 하드웨어나 운영체제에 독립적으로 자유롭게 사용가능.
* 표준화된 하이레벨의 프로토콜 : 일관성 있고, 널리 사용 가능한 사용자 서비스를 위해서.
*ISO(International Standards Organization, 국제 표준기구)에 의해 개발된 구조적 모델 '''OSI'''(Open Systems Interconnect Reference Model)은 데이터 통신 프로토콜 구조와 기능 설명을 위해 자주 사용.
*Application layer : 네트워크를 이용하는 응용 프로그램으로 구성
*Presentation layer : 응용 프로그램에 데이터 표현을 표준화
*Session layer : 응용 프로그램간의 세션을 관리
*Data link layer : 물리적 연결선을 이용해 안정적인 데이터 전송을 제공
- UnityStudy . . . . 14 matches
* 매주 이용한 ppt, 예시 프로젝트, 리소스 외 기타 자료를 전부 여기에 올리겠습니다.
=== 배운 내용 ===
=== 배운 내용 ===
* Unity 3D 이용해서 간단한 게임을 만들어 보자.
* 축을 이용해서 객체의 position와 rotation 등을 조절할 수 있다. 또한 크기도 조절이 가능하다.
* 객체가 방향키를 이용해서 움직일 수 있도록 하는 코드를 MonoDevelop 툴을 이용, Javascript로 작성해서, Cube에 등록한다.
* 스플래시 이미지로 사용할 이미지를 Asset에 드래그 드롭으로 등록한 다음, Build Setting에서 Splash Image에서 설정할 수 있다.
=== 배운 내용 ===
=> 물리 현상에 대해 어느 정도 이해하면서 사용해야 함.
- plane은 background 용도로 사용할 수 있다.
- Game Object를 이용해준다.
* 오늘은 지난번의 Cube와 Sphere를 활용해서 실제로 접할 수 있는 게임을 만들었습니다. 상당히 재미있었네요.
- VisualBasicClass/2006/Exam1 . . . . 14 matches
1. 비주얼베이직에서 숫자를 표기하는 방법은 10진법, 8진법, 16진법으로 나뉘어진다. 이 중 10진법은 특별한 표기(기호)없이 사용이 가능하다. 하지만 8진법과 16진법은 '?O'와 '?H'로 표기한다. 이때 ?에 들어갈 기호는 무엇인가 (1점).
② ScrollBar는 수평, 수직, 양방향 모드가 있으며, 여러 줄을 사용하는 속성을 설정할 경우, 사용할 수 있다.
③ Text속성은 글자를 입력받는 속성으로 단축메뉴(popup menu)를 사용할 수 있다.
④ MultiLine은 컨트롤이 문의 여러 줄을 받아 들일 수 있는지 여부를 결정하게 된다. True는 한줄을, False는 여러줄을 사용할 수 있다.
리스트 박스는 여러개의 선택사항을 제공한다. 이 때 리스트 박스 항목 선택은 값이 ? 일때선택 유형이 확장된 다중 선택으로 'Shift + 누름' 또는 'Shift + 화살표 키'를 사용할 수 있다.
② 사용자에게 제공되는 인터페이스 옵션을 중심으로 설계가 이루어진다.
④ 이벤트 중심의 프로그래밍 방식을 사용한다.
D) 사용자 인터페이스 설계 및 구성
① 지명 인수를 사용하여인수를 서브프로그램에 전달할 때는 반드시 파라미터의 순서대로 기술하여야 한다.
② 인수들을 서브프로그램에 모두 다 전달하기 부적절한 경우에는 Optional이란 키워드를 사용하면 효과적이다.
③ 접근키를 사용할 수 없다.
② 선택된 아이템 인덱스가 변경되었을 때 이용된다.
16. 다음의 주어진 함수(용어)에 결과를 기록하시오.(3점)
- ZeroPageServer/old . . . . 14 matches
|| [http://openlook.org/distfiles/PuTTY/putty.exe putty 한글 입력 패치 적용] || 출처[http://fallin.lv/zope/pub/noriteo/putty 장혜식님의 홈] ||
|||| 서버에 관련한 내용 ||
DNS서버가 꼭 외부에 있어야 하나요? 그냥 제로페이지서버에 설치해서 사용하면 안되나요? --[곽세환]
- 상관없을것 같습니다. zeropage 에서 직접 DNS 서버 돌리면 subdomain.domain.org 같은 식으로 서브도메인도 사용할 수 있을것 같구요. - [임인택]
동문서버 말고도 idaizy.com 도 자체적으로 네임서버를 돌리고 있습니다. 근데 Named 에 대해 잘 몰라서 어떤식으로 운용되고있다고는 말씀드릴수가 없네요 아는게 없어서...-_- [임인택]
적용 완료. 이제 DNS 로 홈페이지 접속이 안되는 현상은 없을 듯... --[Passion]
* 방법은 알아냈고, 간단히만 적용시켜 두었음. ~/data/editlog 만 적절히 변경시켜주면된다.
* man과 동일한 역할의 info 를 설치해 두었습니다. 사용해 보세요.
* 현재 http://zeropage.org/pds 안의 내용이 그냥 열랍할수 있게 되어있네요. 디렉토리명이 대부분 이해할수 없는 숫자(=아마도 자료가 올라온 시간)일텐데 자료에 대한 설명은 아직 DB에 남아있나요? - [임인택]
* sshd 가 맛이 갔나요?, putty 로 터미널 로그인도 안되고.. sftp 도 로그인이 안되네요...-ㅁ-. 이거 로그인이 안되면.. 관리는 어찌하지...;; (원래부터 ssh2 로 접속해야했죠?. 셤기간인데 지송하네용. jsp 알바하는데 머좀 테스트하느라~) - [임인택]
- 음 SSH 때문에 [CVS] 도.. 사용이 불가능하군요...-_-;;; - [임인택]
- 학과장님(김성권교수님)이나 평소에 학생들이 피씨실 이용하는것에 많은 관심을 주시는 최광남 교수님께 말씀드리는 것이 좋을듯 합니다. - [임인택]
서버실을 관리하시는 박재화교수님께 제로페이지 서버는 서버실에 들어갈 수 없다는 대답을 들었습니다. 새로 백본용 스위치가 들어가면서 동문서버도 밖으로 빠졌다고 하는군요. 동문서버가 어디로 갔을지 궁금하네요. --[Leonardong]
- 개강할 임새가 되니까.. 슬슬 네트웍이 말썽을 부리려는 기미를 보이기 시작하는건가요.. 작년 ObjectProgramming 숙제하면서 피씨실 사용할때 일정시각만 되면 네트워크가 먹통이 되어가지구 적잖이 난감했었는데... - [임인택]
- 루프는0부터? . . . . 14 matches
AcceleratedC++ 의 내용 부분 발췌
첫번째 것은 0부터 번호를 매기고 !=를 사용하는데 반해, 두번째 것은 1부터 번호를 매기고 <=로 비교합니다. 반복횟수는 둘다 동일합니다. 두번째 것보다 첫 번재 것을 더 성호하는 이유가 있을까요?
=== 첫번째 이유 : 비대칭 적인 범위를 사용하기 때문에 범위를 설명하기 쉽기 때문이다. ===
첫번째 for문은 [0, rows)를 사용하는 것이 편하고, 두번째 for문은 [1, rows]를 사용하는것이 더 편하다.
보통 비대칭형 범위는 대칭형 범위보다 더 사용하기 쉽습니다. 왜냐하면 다음과 같은 중요한 속성이 있기 때문입니다. [m, n)과 같은 형식의 범위는 n-m개의 요소들을 가지며 [m,n]의 형식은 n-m+1의 요소들을 가집니다. 따라서 [0, rows)에서 요소들의 개수는 직관적인데 반해, [1, rows]에서 요소들의 개수는 덜 직관적 입니다. 이러한 속성차이는, 특히 빈 범위의 경우에 더 뚜렷합니다. 만약 비 대칭형 범위를 사용한다면, 빈 범위를 [m,n)으로 표현할수 있지만, 대칭형 범위에서는 [n, n-1]을 사용해야 합니다. 범위의 끝이 시작보다 더 작을수 있따는 가능성은 프로그램 설계시 끝이 정의되지 않아 버리는 문제를 야기 시킬수 있습니다.
=== 세번째 이유 : 비교를 위해 <=를 사용하는 대신 !=를 사용할수 있다는 것 입니다. ===
조건식이 r!=rows라면, 루프가 끝날 때 r==rows라는 사실을 알수 있습니다. 불변식은 r개의 행을 출력했따는 사실을 말해 주기 때문에, 정확히 rows개의 행을 출력했다는 것을 알 수 있습니다. 한편, 만약 조건식이 <=rows라면, 그로부터 알 수 있는 사실은 최소한 rows개의 행을 출력했다는 사실 뿐입니다. 따라서 그 이상을 출력했을 수도 있는 것입니다. 0부터 번호를 매기게 되면 정확히 rows번의 반복을 수행했는지 확실히 하고자 할 때, R!=rows를 조건식으로 사용할 수 있습니다. 또한, 반복횟수가 rows번 또는 그 이상이 되기만을 원한다면, r<rows를 사용할 수 있습니다. 만약 1부터 번호를 매기다면 최소 rows번의 반복만을 원할때 r<=rows를 사용할 수 있습니다. 하지만, rows가 정확한 숫자가 되도록 하려면 어떻게 해야 할까요? 그런 경우에는 좀더 복잡한 조건식인 r==rows+1과 같은 방법을 사용 할수 있습니다. 하지만 이렇게 복잡하게 해서 얻을수 있는 이득은 거의 없습니다.
- 새싹교실/2011/AmazingC . . . . 14 matches
=== 수업 내용 ===
=== 수업 내용 ===
==== part2. Hello World 출력하기(printf함수의 사용과 코드 분석하기) ====
* printf함수를 사용하여 문자열을 출력하는 방법에 대해 알아보았고 컴파일러가 main 함수를 분석하는 모습을 따라서 전체 코드를 분석했다.
* [[이가희]]: 배운 내용을 다시 배우는 복습차원에서 정리를 다시 한 번 찬찬히 할 수 있었던 시간이었습니다. PPT까지 만드시느라 고생하셨어요.:)
* [[박지호]]: 프로그래밍의 기초에 대한 내용을 배웠습니다. 수업 내용이 이미 배운 것이었지만 질 자체는 꽤 괜찮았다고 생각합니다. 또한 직접 ppt까지 제작하신 기호형의 성의가 돋보였습니다. 앞으로 수업에 대한 기대가 큽니다.
* 여러가지 자료형의 변수를 이용한 연산에 대해 배웁니다.
=== 수업 내용 ===
* 비트란 10진수의 숫자를 2진수로 바꿨을 때 디지털 숫자 한 자리를 비트라고 한다. 단, 맨 앞자리 비트는 부호 비트로 사용한다.
==== part2. 변수를 이용한 연산 ====
* 식별자란 프로그램을 할때 사용자가 다른 것과 구분할 수 있도록 하는 것
* [[신기호]]: ppt는 나름 알차게 짠 것 같지만, 이번에도 설명이 약간 빨랐던 것 같다. 궁금한게 있으면 물어보라고 했더니 모두 아는 내용이라고 하긴 했지만, 왠지 나중에 어려운 개념에 들어가면 학생들이 어려워할 것 같다. 그리고 가희야 빵 고마워 ㅋㅋ
* [[박지호]]: 자료형에 대해서 배웠습니다. C프 강의때 딴짓 해서인지 이해하지 못했던 내용을 배워서 좋았습니다. 마지막에 실습도 잘 이뤄졌으면 하는 아쉬움도 남았습니다.(마치 먼저 작성한것처럼 조작하지마 이가희)
- 새싹교실/2012/Dazed&Confused . . . . 14 matches
* 수업 내용: C Language
|| [박용진] ||
|| [박용진] || O ||
* define, rand, srand, 다양한 헤더파일을 처음 써 보았다. 내가 혼자서 다시 해 봐야겠다. 신기했다. 이렇게 다양한 함수를 알게 되어 좋았지만 조금 더 집중해야 할 것 같다. 이번 강의에서는 실습이 적었는데 실습과 직접 프로그래밍을 해 보는 시간을 가졌으면 좋겠다. - [박용진]
* 새로운 용어들 #define, getchar, rand, <math.h>등에 대해서 알게 되었다. 이런 새로운 용어들을 복습해 봐야겠다. winapi를 알게 되어 조금 더 찾아 볼 수 있어 좋았다 - [박승우]
|| [박용진] || O ||
* 드디어 반 아해들이 맨붕을 하기 시작했습니다. 뭐 놀라운 결과도 아니지만,, 직접 보니 ...하네요. 이번에도 ppt를 열심히 복붙해서 나누어 줬습니다. 그렇게 하나하나 알려주다가 포인터부터 조금씩 힘들어 하더니 재귀함수 부분에서 실습을 원하길래 피보나치를 짜 보라고 시켰습니다. 표정들이 맨붕 복탄을 맞은 것 같더군요. 음... 그래서 결국 준비한 부분은 다 못 나갔습니다. 다음에 이어서 해야겠네요. 4주차 내용이 끝나면 한번 전반적으로 실습 위주로 시켜야 겠습니다. - [권순의]
* 포인터, 재귀함수, 피보나치 수열을 코딩해 보았다. 피보나치는 하다가 실패했지만 자주 코딩을 해 보면 슬슬 감이 올 것 같다. 재귀함수의 return에 대한 개념이 흐려서 아직 재귀함수를 잘 못 쓰겠다. 연습을 자주 해야겠다. Practice makes Perfect?.. 포인터에 대한 개념이 흐렸는데 어느 정도 자리를.. 개념을 잡은 것 같다. 머리 속에서 코딩이 안 되면 펜으로 수도 코드작성이나 수학적으로 해설을 먼저 작성하는 연습을 해 보아야겠다. 강의에서 좀 더 코딩 연습이나 연습 문제 풀기와 같은 것이 많았으면 좋겠다. 단순히 따라적기만 해서는 잘 이해가 안 되는 것 같다. - [박용진]
|| [박용진] || X ||
* 오늘 강의는 지난 주 내용을 복습하는 것 위주로 진행되었습니다. 그래도 한 번 했던 내용이라 저번 주 보다는 이해하는 정도가 다르더군요. 그래서 다시 한번 재귀함수를 통한 피보나치 수열을 짜 보게 했습니다. 저번 주 보다는 그래도 나은 결과를 보여주었습니다. 그래도 지속적으로 반복 학습 시켜야 할 듯 싶습니다. 그와 동시에 실습도 여러번 필요 할 듯 하군요.. - [권순의]
* 함수, 재귀함수, 배열, 메모리 주소, 포인터 등을 복습하였다. 지난 주에 이해되지 않았던 부분에 대해서 상세히 설명해 주셔서 좋았다. 직접 피보나치 수열을 작성해 보면서 재귀함수의 사용을 익힐 수 있어 좋았다. - [김민재]
* 오늘 다시 복습을 했다. 복습을 하며 특히 저번에 재귀함수를 못 했었는데 오늘 다시 공부하여 재귀함수를 이용해 피보나치 수열을 짤 수 있어 좋았다. 앞 부분도 조금 더 실습을 많이 했으면 좋겠다. - [박승우]
- 위키를새로시작하자 . . . . 14 matches
2000 페이지에 가까워 지면서, ZeroWiki의 접근성이 점차 감소하고, 기존의 모든 예절과 규칙이 벽으로 작용하는것 같습니다. 그렇다고, 위키의 철학과 개념을 교육하는 기회는 없었던것 같구요.
그래서 ZeroWiki 를 막아버리고, Wiki를 새로 시작하면서, 함께 예절과 규칙을 만들어 나가면서 위갭?다시 시작하는것이 어떨까 싶습니다. 현 ZeroWiki는 읽기만 가능하고, 새로운 위키는 읽기, 쓰기, 삭제(로그인 한 사용자만) 모두를 열어둘 생각입니다. 현 ZeroWiki 상의 예절이나, 규칙은 필요에 따라 재사용, 새롭게 정의 하려고 합니다.
NeoCoin : 방법은, 현재 위키를 읽기 전용으로, 새로운 위키를 읽기, 쓰기, 지우기 다 열고 새로운 문화, 예절이 만들어 지는 모습을 경험하고 싶습니다. 읽기 전용의 위키의 내용은 전이되거나, 그대로 남거나, NoSmoke:SisterWiki (차후 연결) 하거나 하고 싶습니다. 더 나아가, 모든것에 대한 재정의와 다시금 생각해 보기를 해보았으면 합니다.
snowflower : 제로위키를 시작하고나서 쓰는 중간에 결정된 것들이 많고, 제대로 적용된것도 많지 않다고 생각합니다. 새로운 룰 밑에서 모두가 멋지게 쓸 수 있는 위키가 탄생하였으면 좋겠습니다.
성사 된다면, 현 위키 데이터는 읽기 전용으로만 접근 가능하도록 할 생각입니다. 경우에 따라서는 삭제 할수도 있을것 같습니다. --NeoCoin
위키 자체가 읽기 전용인것이기 보다는, 별도의 위키로 두는 것은 어떨까요? (물론.. 지금도 기존의 페이지가 별로 수정되고 있지 않아서 read-only 나 마찬가지인 상황이긴 하지만.) --[1002]
일정기간 읽기 전용, 차후 은근슬쩍 쓰기 가능이며 될까? --NeoCoin
상용 서비스가 아니기에 언제든지 합의만 이끌어 낸다면 가능하지요. 다만 이런 생각을 하기가 힘든것 같습니다. 이러한 시도는 Open Source 나, 상용 프로젝트에서 일정 버전 이후에 완전 새로 작성하는것에 비견하지 않을까요? --NeoCoin
음.. 저도 1'WIKI에 프로젝트 페이지를 옮기긴 했지만 좀 그랬습니다. 새로운 규약과 규칙이 만들어지자는 의견이 있는걸로 아는데요. 지금 0'WIKI의 내용을 옮겨 놓으면 그냥 예전의 위키가 되어버릴것 같습니다. 차라리 1'WIKI사용을 아직 하지 말로 나중에 시작하는건 어떨런지요? -[상욱]
- 정모/2012.4.30 . . . . 14 matches
wibro는 WiMAX 프로토콜을 이용한 상표명입니다. wibro의 경우 IEEE 802.16e 표준을
바탕으로 하고 있는데 4G는 IEEE 802.16m 표준을 이용한 기술을 말하므로 wibro가
3G의 경우는 CS(circuit switched)망과 PS(packet switched)망을 이용하는데 통화에는
CS망, 인터넷 사용에는 PS망을 사용합니다. 반면에 LTE의 경우는 인터넷 사용시에
PS망을 이용하고 통화시에는 현재 3G용으로 구축된 CS망을 사용하고 있습니다.
* 사용을 하고 나서 뒷정리는 좀 하고 갑시다.
* 공모전 내용을 누가 준비를 해 줬으면 좋겠는데...
* 일단 듣고 적은 대로 LTE 내용을 적긴 했는데 심히 미심쩍다...... 제대로 적은 게 맞을까...
* 위키 나머지 부분도 일단 듣고 대충 기억 나는 정도까지는 수정함. 정모 내용 지워서 미안 -_-;;; - [서민관]
* LTE관련 세미나 정말 재미있게 들었습니다. 제가 네트워크에 관해서 조금 지식이 있었다면 더 많은 것을 잡아낼 수 있었을텐데 라는 아쉬움도 있습니다. 아무튼 다음 세미나가 기대가 됩니다. 그리고 이번 OMS는 희성이가 미리 내용을 알려줬는데 당일에 들으니까 굉장히 신기하고 좋았습니다. :) - [권영기]
- 페이지이름 . . . . 14 matches
1. 위키위키에서 ["페이지이름"]은 너무나도 중요한 역할을 합니다. 제로위키에서 사용되어야할 페이지이름 규칙도 생각을 해보는게 좋을것 같습니다. NoSmok:페이지이름 페이지에 참고하기 좋은 내용들이 있습니다.
* 영문 제목의 경우 모두 빈칸을 붙여서 사용한다. (제목으로 표시될때 자동으로 단어의 대문자 단위로 빈칸을 띄어주므로)
* 해당 페이지에 정보가 부족하여 다른 사람들의 논의를 이끌 수 없는 내용.
* 일반화 주제를 두고 특성화된 개인의 내용을 가지고 있던 페이지
|| 일반화된 주제 || 시작된 내용 ||
* 일반화 주제로 이름과 내용을 바꾸고, 하위 페이지로 만든다.
아래는 ["제안"]이란 ["페이지이름"]에 대한 토론 내용을 HierarchicalWikiWiki 페이지에서 옮겼습니다. 좀 더 다듬어야 하겠습니다. RefactorMe --["이덕준"]
사실 ["ZeroWiki/제안"] 이나 ["제안"]과 같은 페이지는 그 ["페이지이름"]이 다소 추상적이라고 생각됩니다. ["페이지이름"]에 좀 더 구체성을 주기위해 ZeroWiki에 제안될 사항들은 각각의 주제가 제목이 되어 페이지가 열리는것이 좋을것 같다는 생각을 하고있습니다. 이는 ["페이지이름"] 페이지에서 보다 일반화되어 정리될 내용이라 생각됩니다. --["이덕준"]
추상적이라 생각되면 일종의 사랑방으로 이용하면 된다고 봅니다. 범용적인 만큼 스레드 성격의 글들을 더 잘 포용할 수 있지 않을까 생각합니다. 저는 '토론'(을 원한다면) 이나 '제안'(성격이라면) 임이 명시적으로 드러나는것이 좋지 않을까 생각한것 뿐, 특별한 다른 뜻은 없습니다. --["1002"]
사랑방과 같은 시스템에서의 문서구조조정은 그 노력이 많이 듭니다. 일관된 주제로 얘기하기가 힘들어지기 때문입니다. 따라서 되도록이면 피해야할 구조가 아닐까 생각합니다. 페이지 이름에 제안임이 명시적으로 드러나지 않아도 위키를 사용하는 사람들의 관심을 끌만큼 흥미로운 내용을 담고 있다면 괜찮다고 생각합니다. 조만간 이 부분은 ["페이지이름"] 페이지로 옮겨서 얘기해봐도 좋을듯 합니다. --["이덕준"]
- 02_Python . . . . 13 matches
''Who is "내" here?'' - 봐라용 :)
* 사용하기 쉽고 , 배우기 쉬우며 여러 방향으로 이용할수 있는 언어이다.
* GUI , 시스템 유틸리티 , AI , 인터넷 스크립팅 등에 사용할수 있는 언어이다.
== 파이썬이 사용된 예 ==
* Infoseek 이란 포탈 싸이트는 일부 검색엔진을 파이썬 기반으로 사용한다
* NASA 는 임무 제어 시스템에 파이썬을 사용한다
* Industrial Light and Magic 사는 파이썬을 사용하여 광고용 에니메이션을 제작한다
* 이 위키페이지는 파이썬을 이용한 cgi 로 만들어졌다
s2 = "spams" 이중 인용부호
block = """...""" 삼중 인용부호
* 리스트와 같은 방식으로 동작하지만 객체의 내용을 바꿀수 없다.
- 1thPCinCAUCSE . . . . 13 matches
* 사용언어: C/C++ with Visual C++ 6.0
* 휴대폰, 인터넷 사용 금지
* 개인 디스켓, CD 등 휴대 금지. 디스켓은 나눠준 것만 사용.
1. 각 문제는 데이터를 외부에서 입력받아서 프로그램으로 답을 계산한 후 반드시 출력을 한다. 이때, 입출력은 표준입출력만 사용한다. 파일 입출력문을 쓰면 안됨.
4. 채점은 자기 컴퓨터에서 하는 것이 아니라, 채점 팀의 컴퓨터에서 실행한다. 이점을 유의할 것. 즉, 자기 컴퓨터에만 있는 특수한 기능을 사용하게 되면, 채점 팀 컴퓨터에서는 안 돌아 갈 수 있음.
아쉬운 점이라면, 국내 대학생 프로그램 경진 대회와 acm의 icpc를 모델로 하는 듯 한데, 그렇다면 사용언어와 플랫폼 역시 좀 선택의 폭 을 넓게 해주는 게 좋지 않을까 하군요.
이제까지 제가 봐온 대학생 수준의 경진대회 중에서 개발환경과 언어 모두 를 이렇게 한정한 경우는, 특정 회사에서 스폰서를 하는 경우 빼고는 본 적이 없습니다. (최근 정보처리 자격증 실기 시험에서도 모든 언어를 허용하도록 바뀌었다고 합니다) 더 많은 배움의 기회가 될 것인데 참 아쉽군요.
물론 C나 C++을 사용해야만 하는 상황 자체가 하나의 과제 상황이 되고 덕분에 여러가지 공부가 되긴 하겠 지만, 우리는 "왜 C/C++ 밖에 사용할 수 없느냐"는 조금 더 본질적인 질문을 해봐야 합니다. 특히 학과 분위기가 C/C++ 쪽으로 편중되어 있는 상황에서는 말이죠.
혹시 여러가지 언어를 수용하는 경진대회가 궁금한 사람은 ICFP 프로그래밍 경진 대회(http://icfpcontest.cse.ogi.edu/ )를 한번 둘러보시기 바랍니다. 눈이 확 뜨일 겁니다. 특히 올해 주제는 로봇 프로그래밍입니다. 무척 흥미로운 주제지요.
C/C++(VC++6.0)만 사용할 수 있는 상황에서는 ["STL"]을 사용하냐 안하냐가 엄청난 차이를 불러올 것이라 생각한다. 그리고 팀이 두명이냐 세명이냐도 중요하긴 할 터인데, 어떻게 조직적으로 잘 활용하느냐에 따라 차이가 있기도 하고 별로 없기도 할 것이다. 또한 자가 테스트를 통해 어느 정도 검증된 프로그램만 제출을 할 수 있다면 페널티를 줄일 수 있기 때문에 훨씬 유리할 것이다.
- DirectDraw . . . . 13 matches
DirectX 8.1을 이용한 DirectDraw로 무언가를 만들어 보자.[[BR]]
중간중간 더 중요한 내용이 있을 것이다.
* DDSCL_ALLOWMODEX : ModeX를 사용 가능하게 해준다는데. 알수 없다.(예전에 쓰던 화면 모드라고 한다.)
* DDSCL_ALLOWREBOOT : Ctrl+Alt+Del을 사용 가능하게
* DDSCL_EXCLUSIVE : 독점 모드를 사용 가능하게, DDSCL_FULLSCREEN 과 함께 쓰인다.
* DDSCL_NOWINDOWCHANGES : 최소화/최대화를 허용하지 않는다.
ddsd.dwFlags = DDSD_CAPS|DDSD_BACKBUFFERCOUNT; // 구조체와 backbuffercount를 사용가능
[영현] 유용성을 위해.. 뒤에 나오는 7이나 2는 빼라.. ㅡㅡ; 하하..[[BR]]
[해성] 지나가다가 한마디.. ^^;; DX 초기화 과정은 이전버전과 흡사하군요.. 음.. 초기화 인터페이스를 파악했다면.. 다이렉트 엑스가 어떻게 내부적으로 작동해서 일반 윈도우 프로그래밍 보다 빠른 엑세스 메카니즘을 제공하는지 파악하시구요.. 왠만하면 DX 쓰지말구.. 추가적인 이펙트등을 구현해보는게 좋을것 같네요.. 알파블렌딩을 응용한 여러가지 기법(페이드 인아웃이나 전환.. 뭐라그러드라).. 하구.. 전 못해봤지만.. 블러링 필터 같은것두.. 서페이스에 직접 억세스 하는거 공부하면.. 해볼만 할것 같군요.. 그리구.. 음.. 매일 허접 플밍을 하구 있지만.. 그래두 지겨운 초기화 과정을 단축시키기 위해 어느정도 모듈화되게 라입을 구축하면 좋겠지요.. 전 절대 안하지만.. ㅋㅋ;; 그럼.. 잡설이었습니당~ 수거~[[BR]]
[1002] 초기화과정이 이전버전과 같은 이유는 Surface 7 을 이용해서일것 같다는. DX8로는 아직 안해봐서..~ [[BR]]
[1002] Output 이 급하다면 DirectX Media SDK 를 이용할 수도 있습니다. 알파블랜딩 기본적으로 지원합니다. 그리고 Transform Libary 를 이용하면 화면 전환과 관련된 특수효과들을 이용할 수도 있죠. 하지만, 공부하시는 입장에서는 이론을 파고들어서 직접 해보는 것이 좋겠죠.[[BR]]
- FreechalAlbumSpider . . . . 13 matches
프리첼이 유료화되면서 주위 사람들이 게시판들을 프리첼로부터 이전을 하기 시작하였다. 주위 아는 교회선배들의 경우는 그중 숭실대에서 게임방을 운영하시는 분이 있어서 교회사람들 전용 서버를 하나 마련하고 게임방에서 굴리기로 한다. 프리첼 게시판 변환기의 경우 이미 범용적인 제로보드나 이지보드에서 제공을 하지만, 앨범이나 화일 백업은 지원하지 않는다. 그리고, 게시판 백업을 할때엔 프리첼 관리자가 기존 게시판들의 접근 권한정도를 조절해줘야 한다. 로그인처리가 안되어있기 때문인데, 제로보드 게시판 변환기를 보니 쿠키 관련 처리가 없었다.
마침 개인적으로 자주 이용하는 ClientCookie 가 있기 때문에 쉽게 작성할 수 있을것이라 판단, 어느정도 스케줄을 잡고 작업 시작.~
["1002"] 는 webdebug 와 Proxomitron 두개를 이용하는데, 둘 다 일종의 프록시 서버처럼 이용하여 HTTP 로 송수신 되는 GET/POST, HTTP Header 데이터들의 로그를 확인할 수 있다. 둘을 이용, 프로토콜 분석을 하였다.
각 모듈들이 서로 불러져야 할 순서들을 정하고 난뒤, 내가 만든 각 모듈들을 일종의 SpikeSolution 처럼 라이브러리 연습하듯이 이용해보았다. 그러면서 잠시 놓쳤던 흐름을 다시 잡았다. 이러한 일들을 의식적으로, 그리고 '무엇을 할까 - 이것을 하자' 라고 생각해낼 수 있었던 것이 기분을 참 좋게 했다.
또하나 문제로는 이상하게 MySQLdb 모듈이 문제를 일으켰는데, update query 를 날릴때 에러발생을 하는 것이였다. 똑같은 쿼리문을 쉘에서 실행했을때는 잘 되었는데, MySQLdb 의 cursor 클래스를 이용, 쿼리를 날리면 실행이 안되는 것이였다. (DB 에 적용은 되는데, 에러가 발생한다.) 이 부분에 대해서는 일단 try-except 로 땜질처리를 했지만, 그리 기분좋진 않다. 수정이 필요하다.
제가 python을 전혀 몰라서 그러는데요, 이거 사용법좀 알려 주시겠어요.
암만 해도 안 되서요.. freechal 앨범용량이 너무 커져서 앨범의 일부분을 이주하려고 하는데, 이미지 가져오는 부분을 PHP로 하는데 잘 안되서요..
늦게서야 보게 되어서..; 지금도 작동을 할런지는 잘 모르겠습니다. 알바때문에 바빠서 유지보수를 못하는 중인지라.. freechal service UI 가 바뀌면 깨지는 녀석일것인지라..; 사용하기전에 필요한 것으론 Python 2.2x 버전 정도와 MySQLdb 라이브러리가 필요하고요. 해당 proper.py 화일을 맞춰주신뒤, freechalscript.py 를 실행해주시면 됩니다. 같은 역할을 하는 프로그램은 http://www.perlmania.or.kr 에서 먼저 구현된걸로 기억합니다. 거기서 해당 강좌도 있던걸로 기억하오니 참조하세요. --[1002]
원리는 보통의 이런류의 프로그램 (HTTP 로 문서 가져오고 스트링 파싱하여 데이터로 가공하고 DB에 저장) 이 비슷합니다. 단, 앨범게시판의 경우 로그인이 필요한데, 이 경우 쿠키 처리를 위한 header setting을 해줘야겠죠. Perl 같은 경우 LWP, Python 의 경우 ClientCookie, Java 의 경우 HttpUnit(원래의 용도는 다르지만, 이런 프로그램을 위한 간이 브라우저 라이브러리로 쓸 수 있습니다.) 등의 라이브러리를 쓸 수 있습니다. 그리고, 이미지의 경우는 해당 URL을 보고 다시 HTTP Connection 을 열어서 얻어와서 binary로 저장해야 한다는 것이 유의사항이 되겠습니다. (HTML만 얻어오면 img tag 의 링크들만 있겠죠.) 그리고 header setting 에서 약간 미묘(?)한 부분이 있던것 같던데, 저는 걍 webdebug 로 캡쳐한거 그대로 보낸지라..; 이 부분은 CVS의 코드 참조하세요. --[1002]
- Gof/State . . . . 13 matches
객체의 내부 상태가 바뀌었을 때 객체의 행동을 바꿀 객체를 허용한다. 객체는 마치 객체의 클래스가 변경된 것처럼 보일 것이다.
TCPConnection 클래스는 TCP 커넥션의 현재 상태를 나타내는 state 객체를 가지고 있다. (TCPState 서브클래스의 인스턴스) TCPConnection 은 이 state 객체에게 모든 상태-구체적 request들을 위임 (delegate) 한다. TCPConnection 은 커넥션의 특정 상태에 대한 명령들을 수행하기 위해 TCPState 서브클래스 인스턴스를 이용한다.
커넥션이 상태를 전환할 경우, TCPConnection 객체는 사용하고 있는 state 객체를 바꾼다. 예를 들어 커넥션이 established 에서 closed 로 바뀌는 경우 TCPConnection 은 현재의 TCPEstablished 인스턴스를 TCPClosed 인스턴스로 state 객체를 교체한다.
다음과 같은 경우에 StatePattern 을 이용한다.
TCPConnection 은 _state 멤버변수를 이용, TCPState 의 인스턴스를 유지한다. TCPState 클래스는 TCPConnection 의 상태-전환 인터페이스를 중복하여 가진다. 각각의 TCPState 명령들은 TCPConnection 인스턴스를 인자로서 취하며, TCPState 로 하여금 TCPConnection 으로부터 데이터를 접근하거나 현재 커넥션의 상태를 전환할 수 있도록 한다.
대부분의 대중적인 상호작용적인 드로잉 프로그램들은 직접 조작하여 명령을 수행하는 'tool' 을 제공한다. 예를 들어, line-drawing tool 은 사용자가 클릭 & 드레그 함으로서 새 선을 그릴 수 있도록 해준다. selection tool 은 사용자가 도형을 선택할 수 있게 해준다. 보통 이러한 툴들의 palette (일종의 도구상자 패널)를 제공한다. 사용자는 이러한 행동을 'tool을 선택한 뒤 선택한 tool을 이용한다' 라고 생각한다. 하지만, 실제로는 editor 의 행위가 현재 선택한 tool로 전환되는 것이다. drawing tool 이 활성화 되었을 때 우리는 도형을 그리고 selection tool 이 활성화 되었을 때 도형을 선택할 수 있는 식이다. 우리는 현재 선택된 tool 에 따른 editor 의 행위를 전환시키는 부분에 대해 StatePattern 을 이용할 수 있다.
툴-구체적 행위를 구현하는 서브클래스를 정의하는 곳에 대해 Tool 추상 클래스를 정의할 수 있다. drawing editor 는 currentTool 객체를 가지며, request를 이 객체에 위임시킨다. 사용자가 새 tool를 골랐을 때, drawing editor 는 행위를 전환해야 하므로 따라서 이 객체는 교체된다.
이 방법은 HowDraw [Joh92]와 Unidraw [VL90] drawing editor 프레임워크에 이용되었다. 이는 클라이언트로 하여금 새로운 종류의 tool들을 쉽게 정의할 수 있도록 해준다. HowDraw 에서 DrawingController 클래스는 currentTool 객체에게 request를 넘긴다. UniDraw에서는 각각 Viewer 와 Tool 클래스가 이와 같은 관계를 가진다. 다음의 클래스 다이어그램은 Tool 과 DrawingController 인터페이스에 대한 설명이다.
- Linux/배포판 . . . . 13 matches
자, 그렇다면 의문을 해소해보자. 운영체제의 중심은 무엇인가? 운영체제라고하는 것은 결국 하드웨어와 사용자 사이를 이어주는 가교라고 생각하면 된다. 이런 영역을 '''kernel'''이라는 용어로 부른다. 이 kernel 에도 종류가 대단히 다양한데... 그중에 하나가 리눅스이다. 리눅스이외에도 Mach, BSD, Darwin, Hurd 등등등 우리가 생각하는 것 보다 훨씬더 다양하고 많은 커널들이 존재한다. (대략 Mach 커널이 좀 유명하다. 모듈 커널의 장점을 이야기 하면서 리눅스의 커널의 비효율성에 대한 평가자료로 많이 이용되었다. 지금은 리눅스도 대부분의 장치들을 모듈로 올리는 것이 가능하지만..) 윈도우의 경우 이 커널은 관리하는 회사가 오로지 마이크로소프트뿐이기 때문에 OS패키지를 라이센스라는 이름 아래에 단독으로 공급을 하지만 리눅스는 이와 달리 커널은 공개되어있고 어떤 묶으로 묶어서 팔거나 발표를 하는 것은 자유롭기에 다양한 배포판이 존재한다.
사실상 리눅스의 다양한 프로그램들을 개인이 따로 관리한다는 것은 굉장히 어렵다. 패키지가 정적인 형태가 아니라 리눅스는 지속적인 엡데이트를 하는데, 통일된 방식으로 관리를 해준지 않으면 나중엔 어떤 프로그램을 어디에 깔았는지 조차 알기힘들어진다. (대략 도스시절 컴퓨터에 프로그램을 마구잡이로 까는 사람을 생각해보면 알듯.. -_-;) 이런 이유로 매키지 매니저라는 것을 사용하고 잇으며, 패키지 매니저는 상기와 같은 일들을 자동화된 방식으로 제공한다.''
국내의 배포판은 대부분 레드햇의 패키지 방식인 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가 진행중이긴하다) 리눅스를 좀 다루어본 사람들이 설치하고 쓴다.또 설치 시간이 컴파일 하는 시간과 같이 걸리기 때문에 엄청난 설치시간으로도 유명하다.
리눅스를 처음 시작하면서 어떤 배포판을 선택하는 지는 중요하다. 같은 리눅스이기는 하지만 사실 대부분의 리눅서들은 패키지 매니저를 이용하여 프로그램을 설치하는 편이지, 자신이 원하는 버전이 패키지 트리에 없다던가 버그가 있는 경우를 제외하면 직접 제작사 홈페이지에서 바이너리를 설치하는 경우는 거의 없다. 이럴때 동일한 패키지를 쓰는 사람한테 묻기가 편하고 이해하기가 편하기 대문이다. 2005년 현재 리눅스를 시작한다면 현시점에서는 [http://www.ubuntulinux.org/ Ubuntu]를 가지고 시작해서 [http://www.debian.org Debian] 으로 옮겨가길 권한다. 동일한 패키징 방식을 가지고 있으면서 우분투는 데스크탑 리눅스를 표방하고 있는 만큼 다루기가 쉽기 때문이다. 우분투에서 기본을 익히고 직접 서버를 운영하는 수준으로 올라가면 데비안으로 옮겨가면 배포판을 바꾸는데에 대한 부담을 전혀 느낄 필요가 없다. 나의 경우 대략 2주일 정도를 밤새면서 이런 저런 문제를 해결하면서 왠만한 문제는 이제 스스로 해결할 정도가 되었는데... 한번쯤은 해볼 만한 도전이라고 생각한다. 쓰다보면 윈도우 없이도 살 수 있는 세상도 있다는 생각도 하게 된다. 실제로 리눅스를 쓰는 사람들은 가장 게으른 배포판으로 데비안, 젠투정도를 꼽는다. 그만큼 잘 안변하고 한번 설치하면 거의 새로 설치해야할 일이 없다는 것을 말하는 것이다.
- MockObjects . . . . 13 matches
사용 예1) 여러 사람이 프로그래밍 할때, 독립된 프로그램이 아닌 모듈별로 프로그램을 만들고 있는 경우. 이럴때 해당 모듈을 작성하고 테스트 코드를 만들려고 해도, 다른 모듈의 의존성 때문에 진행이 어렵게 된다. 아직 완성되지 않은 의존성을 가진 모듈을 MockObject로 만듬으로서 해당 모듈을 만드는 동안의 의존성문제를 해결할 수 있다.
-> MockObjects 자체가 인터페이스정의를 위한 도구로 이용할 수 있다. (TestFirstProgramming 에서는 Test Code가 일종의 인터페이스를 정의하기 위한 방법으로 이용된다.)
사용 예2) Datatbase 와 관련된 프로그래밍에 대해서 UnitTest를 할때, DB Connection 에 대한 MockObject를 만들어서 DB Connection을 이용하는 객체에 DB Connection 객체 대신 넣어줌으로서 해당 작업을 하게끔 할 수 있다. 그리고 해당 함수 부분이 제대로 호출되고 있는지를 알기 위해 MockObject안에 Test 코드를 넣어 줄 수도 있다.
MockObject 는 어디까지나 가짜객체이다. 실제 테스트를 할때에는 MockObject를 이용한 경우와 실제의 객체를 이용했을때의 경우 둘 다 고려해야 한다.
그리고 위와 같은 경우 UnitTest 코드의 중복을 가져올 수도 있다. 이는 상속과 오버라이딩을 이용, 해결한다.
=== 어떻게 구현하고 사용할까 ? ===
|| Expectation || 소위 말하는 '기대값' 을 위해 미리 Mock Object에 예정된 값들을 채워넣기 위한 클래스들. MockObject는 자신의 구현을 위한 자료구조체로서 Expectation 클래스들을 이용할 수 있다. ||
|| ExpectationSet || 집합 도움 클래스. 내부적으로는 Dictionary를 이용, flag check ||
* 이용방법 - [http://xper.org/wiki/seminar/MockObjects MockObjects] 를 참조.
* http://www.mockobjects.com/papers/jdbc_testfirst.html - MockObjects를 이용한 JDBC 어플리케이션 TestFirstProgramming
- 데블스캠프2010/둘째날/후기 . . . . 13 matches
* 정보를 판별할때 유용하게 잘 쓸수 있을것 같아요 ㅋ. 수업을 잘 따라가지 못했지만 기본적인 기능과 구조에대해 알게된거 같아요 [박재홍]
* 새싹 때 배웠던 클래스를 처음으로 써봤어요. 처음엔 층을 프라이빗으로 해서 사용했는데 엘리베이터를 2개 만들 때 순위권을 노리는 매의 눈을 장착하고 퍼블릭으로 바꿨던거가 아쉬웠어요. 가까운 엘리베이터 비교하는데 어쩔 수가 없더라구요...다음에는 좀 더 개선해서 엘리베이터 클래스에 2개의 층을 저장하도록 개선해보는것도 좋을것 같아요 - [백주협]
* 그냥 사용하더 엘리베이터가 이런 알고리즘이 있었구나 하는 생각이 들었습니다. - [김상호]
* 본격 혁씨버전 슈팅게임.. ㅋㅋㅋ C를이용한 게임만들기가 정말 인상적이었습니다. 단지 C와 약간의 그림판질만으로도 만드러지는 게임이 정말 신기했습니다.
* 자료구조 프로젝트로 SDL을 사용해서 게임 수정을 해봤는데, 또 SDL을 보게 될 줄이야.. SDL 시간이었지만, 느낀건 역시 IDE는 잘 선택해야 한다는 것... 이클립스, 넷빈즈, 비쥬얼 스튜디오 등 많은 사람들이 사용하는 IDE끼리도 같은 소스를 충돌나게 하는걸 보면서 참 황당했다-_-;; - [박성현]
* 개인적으로는 직접 게임의 코드를 짜는 모습을 보거나 라이브러리 함수를 사용하는 것을 좀 더 많이 볼 수 있었으면 좋지 않았을까 하는 아쉬움이 컸습니다. 그래도 이런 식으로 외부 라이브러리를 받아서 VS의 설정을 하고, 개발환경을 갖추는 것도 하나의 큰 공부가 되지 않았나 싶습니다. 그리고 소스코드 자체도 하나씩 뜯어보면 알아보기 쉬운 디자인으로 되어 있어서 조금 더 공부를 할 동기가 될 수 있지 않을까 싶습니다. - [서민관]
* 그동안은 함수, 구조체, OOP에대해 알기만했지 왜 써야하는지 잘 이해를 못했는데 지금당장 코딩할때 잘 활용하지는 못하겠지만 왜 써야하는지에대해 이해하게 되었습니다. - [경세준]
* 예전부터 세뇌시키셨던 '단일 변화가 발생했을 때 수정사항은 예측 가능한 곳에 있도록 해라' 라는 주제를 다시 한번 접했는데, 들을 때 마다 느낀거지만 제가 너무 사고방식이 절차지향적으로 굳어진 것 같아서 '얼른 다른 새로운 패러다임의 언어를 접해봐야겠어'라는 생각을 하게 됩니다. 세미나를 듣고도 실제로 적용해볼만한 프로젝트를 하지 않으니 제대로 된 피드백이 되지 않는 것 같아서 안타까웠는데 요번엔 꼭 개인프로젝트라도 진행시켜보겠습니다! - [박성현]
* 1학년 여름방학때부터 반복적으로 들었던 내용인데 (당연한 말이지만) 처음 비슷한 내용을 들었을 때보다 지금이 훨씬 이해가 잘 된다. 1학년때부터 이런 이야기를 들었기 때문에 비록 바로 이해하고 적용시킬 수는 없었지만 그래도 학교 과제 등을 하면서 한번 더 생각해 볼 수 있었던 것 같다. 지금 1학년 후배들도 처음 들어선 잘 이해가 안 갈 수 있겠지만 이 강의를 들어본 것이 앞으로 생각하는 방향에 많은 영향을 주지 않을까 생각한다. 강사가 원래 세미나를 딱히 지루하게 하는 사람은 아닌데 어제 축구때문에 다들 너무 상태가 안 좋았던 것 같은 점이 아쉽다. - [김수경]
* 2학년이지만 아직까지도 프로그래밍에 서툴고 흥미도 부족한데 세미나를 들으면서 많은것을 느끼고 깨닫게 된 것 같아요. 오늘 배운내용이 정말 전공을 공부하는데 있어서 꼭 기억해야겠네요. 가장 기억에 남는게 말하듯이 코드를 짜는것 그리고 '단일 변화가 발생했을 때 수정사항은 예측 가능한 곳에 있도록 해라'라는 말은 꼭 잊지말고 기억해야겠어요ㅎㅎ - [허준]
- 데블스캠프2010/첫째날/후기 . . . . 13 matches
* 팀프로젝트를 할 때 한번 써봤는데 제대로 쓰질 못했던 기억이 있네요. 이걸 제대로 익혀서 다음에 유용하게 쓰게 된다면 좋겠네요ㅎㅎ - [허준]
* 짱신기해요!!!ㅋㅋㅋ 잘 사용할수잇을진 모르겟찌만..ㅠㅠㅠ - [박소연]
* 게임 분야에 관심은 있어도 이런 실무적인 내용을 접해본건 처음이었는데 유익한 시간이었습니다. - [백주협]
* 새롭게 경험해보지 못한 Rur-ple이라는 파이썬을 이용한 프로그래밍 언어 환경을 사용해보았습니다. 평소에 프로그래밍 언어에 대해 머리아프다고만 생각했었는데 이렇게 로봇을 이용해 움직이는것을 보니 좀더 재미있게 프로그래밍을 할 수 있었습니다. 머리를 많이 사용해서 그런지 좀 어지럽긴 하지만 평소에 C나 자바 대신 이것으로 프로그래밍을 한다면 코딩도 잘하고 성적도 잘 받을수 있을것만 같네요ㅎㅎ - [허준]
* 러플을 처음 접해보았는데 흠 역시 일반적인 프로그래밍 언어와는 달랐습니다. 그리고 작년에 했던 NXT가 생각나더군요. 교육용 언어에 대해 별 생각이 없었는데 오늘 해보고 나니 새로운걸 배워본다는 취지로는 좋았습니다. 언어 자체의 문법도 간단할뿐더러, 결과를 바로바로 확인해볼 수 있더라구요. 한가지 아쉬운 점이 있었다면 러플을 해본적도 없는 제가 도우미로 나섰던 점... ㅋㅋㅋㅋ 그래서 파이썬과 러플이 무슨 관계인지 확인을 못해봤습니다. 궁금했었는데... ㅋㅋㅋ - [박성현]
* 뭔가 많이 배운것 같은데 내용이 좀 어려운 것 같았어요 ㅜㅜ 그래도 앞으로 많이 도움이 되는 내용 같아요~!- [김준영]
* 전 자료구조를 배웠는데도 힘드네요ㅠㅠ좀더 열심히 들어둘껄 그랬나봐요ㅎㅎ그래도 오늘 배운내용이 리스트를 이해하는데 도움이 많이 된것 같네요~- [허준]
* 리눅스 커널 링크드 리스트를 구조체를 이용해 설명해주셨었는데, 집중도가 떨어진 상태라 잘 듣지 못했습니다. 기억나는 것은 구조체를 넘기는 것 보단 구조체 포인터를 넘겨라 입니다. 이 말의 의미가 &Struct보단 &(pStruct)를 하라는 의미인가요? 많이 헷갈리더라구요 ㅜㅜ 템플릿에 대한 이야기도 잠깐 해주셨는데, 기억나는건 '템플릿은 좋다'입니다. 그런데 저는 '프로그래머가 자신의 편안을 추구하면 결국 유저에게 그 부담이 간다.'는 생각을 하고 있거든요. 설계가 아닌 문법사용에 있어서요. 앞으로 일반화 프로그래밍을 공부해볼 생각인데, 일단 먼저 오늘 생긴 의문을 풀어줄 부분을 공부해봐야겠네요 ㅋㅋ - [박성현]
- 데블스캠프2013/첫째날/후기 . . . . 13 matches
* 기존 온라인 게임과 SNG의 개발 구조?가 완전히 다르다는 건 꽤 들을 만 한 내용이었습니다. 그리고 자원을 부족하게 유지시킨다거나 SNG의 기획 방향 등도 좋았습니다. - [서민관]
* 더 심화된 내용쪽(특히 blame, ignore)이 마음에 들어서 잘들었습니다. 다만 처음에 그냥 git commit을 하니 vim이 떠서 명령어를 몰라 맨붕해서 방황하다가 git commit -m "원하는 메세지"를 하니 core editor를 쓸필요가 없음을 깨달아서 허무한 기억이...흑...ㅠ. - [김윤환]
* 데블스 캠프에서 빠질 수 없는 내용인 버전 관리 프로그램 관련 내용을 안혁준 선배가 해 주셨습니다. 전체적으로 깔끔하게 진행한 느낌이었고, 직접 사용까지 해 보면서 새내기들은 조금 더 와 닿지 않았을까 싶네요. 다만 후반의 실습 부분은 약간 구성을 바꾸면 조금 더 매끄럽게 실습을 할 수 있지 않았을까 하는 아쉬운 느낌이 있었습니다. - [서민관]
* 버전 관리 프로그램이라는 점에 대해서는 작년에도 SVN(이 맞나요?)을 했던 것 같던데, 올해 git을 배워가네요! 근데, 이건 제가 git을 공부를 해야 될 것 같습니다. 이해는 머리속에서 잘 하는데, 사용을 못하겠네요ㅠ_ㅠ. 확실히 저는 습득속도가 느린가봐요ㅠ..어어ㅡㅠㅓ.. - [김해천]
* 많은 도움이 되는 시간이었습니다. 사실 버전을 따로 관리 하지 않아서 오히려 완성된 코드에 손을 대기 꺼져질 때도 있었는데 Git을 사용하면 이런 부단 없이 코드를 수정 할 수 있을것 같습니다. -[백주협]
* 너무나도 생소한 내용이었지만 정말 재미있었고 앞으로 많은 도움이 될 거라고 생각합니다 - [원준연]
* 네트워크를 시뮬레이터가 오픈소스 형태로 제공되고, 모델들을 테스트하는데 유용하게 쓰인다는걸 알수 있어 재미있었다.- [송정규]
* 네트워크는 물론 리눅스를 사용해본 것도 처음이었는데 공부할 것이 많은 것 같습니다. 우선 새로운 프로그램을 접해 봤다는 점에서 큰 수확이었다고 생각합니다. 네트워크 장비를 구비하여 시뮬레이트 하기가 쉽지 않을텐데 이렇게 간단하게 프로그램을 사용하여 시뮬레이트 할 수 있다는 것이 신기했습니다.- [백주협]
* 시스코 공부하면서 GNS만 사용해봤는데 오픈소스에도 좋은 시뮬레이터가 있다는걸 알게되서 좋았습니다. 코드로 사용할 수 있다는 점도 상당히 마음에 드네요 - [장혁수]
- 문서구조조정토론 . . . . 13 matches
문서 구조 조정이 되고, 원래 있었던 자리를 잃으니 '몇번째주 무슨요일'하는게 제일 첫단에 와 있군요. 이전에 보았다면 알겠지만, 그건 주가 되는 내용이 아니었습니다. 문서 구조 조정을 할때는, 관련된 내용에도 더 신경을 써야겠군요 --이선우
직접 바꾸건, 누군가 바꾸어 주느냐의 문제가 아니고, 또 단순히 글 자체에 대한 의도가 맞지 않아졌음을 이야기하는게 아닙니다. 문서 조정의 결과로 어울리지 않는 내용이 나타나는것 보다 큰 문제는, 다른 이들에게 잘못된 이야기들을 파생시킬 수 있는 점입니다. --이선우
DeleteMe) 현재의 해당 스레드는 정모에 관한 모든것을 다루는 것이라 생각해서 말씀하신 주제를 포용한다고 생각합니다. 하지만, 의도의 전달이 잘못되었다면 작성자가 고치기를 간절히 바라고 있습니다. 현재 문서 구조조정이후 고치는 사람이 별로 없는거 자체가 약간 걱정이 되지요. --상민
계속 대화의 핀트가 어긋나고 있습니다. 내용 자체가 전달하려는 의도와 어긋난 것이라면, 해당 작성자가 고치는게 가장 맞는 방법이라는데 동의합니다. 제가 제기한 이야기는 그러한 부분이 아님을 말씀드립니다. 서로 연관된 문제에서 위치를 바꾸는등의 문서 구조 조정 이야기 입니다. 이 경우, 내용 자체의 변화는 없지만, 문서 구조 조정자가 관련글의 위치를 바꿈으로써 잘못된 의미를 전달할 수 있고, 그 결과로써의 파생 결과를 우려하였습니다. 이는 해당 문서 작성자보다, 문서 구조 조정자가 좀 더 신경을 쓰는 편이 맞다고 생각합니다. --이선우
'문서 조정은 문서 작성자가 손대지 말아야 한다' 라는 어처구니 없는 내용을 어떻게 끌어냈는지 모르겠습니다. 어느 부분에서 도대체 '구조 조정은 구조 조정자의 몫이다'라는 식의 이야기를 했다는지 궁금하군요. 제 이야기는 현재의 잘잘못을 따지고, '문서 구조 조정은 ''누군가 그 일을 할 사람''이 알아서 해라'라는 식의 이야기가 아닙니다. 문서는 누구나가 노력을 해서 고쳐가되, 다만 문서 구조 조정자는(누가됬건 현재 문서를 구조 조정하고 있는 사람은), 자신이 한 결과에 따라 어울리지 않는 글이 될 수 있으므로 해당 문서 구조 조정의 시점에서 더 신경을 써야 한다는 뜻입니다. 물론, 해당글의 작성자가 나중에 발견하고 이를 고칠수도 있지만, 처음 시점부터 좀 더 신경을 쓰는 방법이 효과적이라 생각한 이유입니다. 한번 더 강조하자면, 문서 구조 조정자가 신경을 쓸 필요가 있다라는 이야기가 해당 글의 작성자 자체가 '나는 문서를 구조조정할 필요가 없다'라는 의미는 절대 아님을 이야기합니다. 모로가도 서울만 가면 되지만, 더 편한 방법이 있다면, 그런 방법을 택하는게 자연스러운건 자명한 이치입니다. --이선우
["혀뉘"] : 위키 사용에 있어서 , 기존의 게시판과 같은 '글' 편집의 독자성,일관성 을 보장받지 못하다보니 이런 토의가 필요하게 된것 같군요. 사실 위키는 이러한 편집의 권리를 많은부분 '공유' 한다는 개념에서 나온것이기 때문에, 이를 너무 의식하면 위키 본래의 기능을 상실할 수 밖에 없을것 같습니다. 이런 일이 생기는 이유가, 그동안 ZP 의 움직임에 대해서 토론할 주제들이 많았기 때문에, 위키를 토론의 목적에 사용해서 그렇지 않았나 싶군요. 누구든지 글을 수정 할 수 있다는 위키의 장점이, '토론' 분야에 적용하면서 단점으로 바뀌게 되었다고 봅니다. '토론' 분야 만큼은 편집의 독자성을 보장 하는것이 어떨까요? 문서의 종류에 따라, 사실에 기초한 문서는 여러사람이 손을 대서 '완전에 가까운 문서' 를 만들어낼 수 있겠지만, '의견' 에 기초한 문서는 여러사람이 손을 대면 댈 수록 본래 의견제시를 했던 사람의 '의견' 은 훼손됩니다. 편집의 독자성이 필요하다고 생각됩니다. 망치로 대패질 할 수는 없는게 아닐까 합니다. 망치를 쓸 곳에 대패를 사용하려면, 대패 몸이 조금 상하겠지만, 휘둘르는 방법으로 못을 박아야지요 :)
위키에서 편집의 권리를 '공유'하고 고쳐나가는 개념이 제대로 적용되는 것은, 위키를 쓰는 사람들이 점점 익혀나가야 할 부분입니다. 토론과 관련된 부분에서 위키의 방식이 단점으로 작용한다고 보지 않습니다. 예를 든다면, KLDP의 토론란을 보면 더더욱. 스레드가 길어질수록 주제와 맞지 않는 글들이나 중간에 일어나는 감정싸움들은 걸러져야 할 것임에도 불구하고 그 자리를 차지하고 있습니다. 스레드가 길어질수록 결국은 논제를 벗어납니다. 위키스타일이라면, 문서구조조정을 통해서 그러한 것을 어느정도 줄여줄 수 있을 것이라 생각됩니다.
- 새싹교실/2012/나도할수있다 . . . . 13 matches
=== 수업내용 ===
* GCC의 사용방법
* 새싹 첫수업을 했다. 도중에 현민이가 영어 수업을 받으러가서 한시간 비었다. 다음주부터는 시간을 한시간 연기하여 세시부터 시작할 예정이다. gcc의사용법을 간단히 설명했고, gdb는 학생들이 디버깅을 몰라서 설명해주지 않았다. printf사용법부터 시작해서 연산자, 데이터 타입, while,do-while,for문을 설명했다. 현민이는 쉰게 잘 따라오고, 윤호도 천천히 따라오고 있어서 앞으로 수업하는데에 지장은 없을 것 같다. 수업을 다 하고 생각해보니 너무 우왕좌왕하게 가르쳤던것 같다. 다음시간은 더욱 열심히 준비해야겠다. - 추성준
* 3월 22일, 6피에서, 이현민이랑 추선준 성생님과 c를 visual studio를 이용해서 수업을 했습니다. 함수를 몇개 배웠습니다. for,while이 어려웠습니다. 집에가서 다시한번 해보려고 합니다. 아는게 없어서 다음에 뭘 해야 할지 모르겠습니다. - 신윤호 회고지
=== 수업내용 ===
/* for 문을 이용한 1부터 10까지의 합 */
/* while 문을 이용한 1부터 10까지의 합 */
* 소라때리기 게임에 이용된 함수 소개
=== 수업내용 ===
=== 수업내용 ===
/* 배열을 이용한 스트링표현 */
* 이번주도 굉장히 많은 내용을 배웠다. 함수, 구조체, 배열, 포인터를 가르쳐줬는데 역시 한번에 이해시키기란 쉽지 않은 것같다. 다음주에도 어김없이 보충수업을 해야겠다. 짧은 수업시간에 많은걸 배우는게 쉽지 않는데 지각,결석 하지않고 잘 따라와줘서 고맙다. -추성준
- 새싹스터디2006/의견 . . . . 13 matches
따라서 지금 위키 구조를 잘 이용해 필요한 정보는 제로페이지 위키에, 각 소그룹으로 진행하는 내용은 개인 위키에 정리하면 좋겠습니다. 나중에 정리할 필요 없는 시간 약속, 출석 체크, 메시지 전달 들을 개인 위키에서 진행하면 되겠죠. 단 숙제를 내면 반 이름의 하위페이지를 만들기보다, [EightQueenProblem]처럼 정보를 모을 수 있을 것입니다. 이로써 현재 미약한 개인 위키 사용이 늘어날 것이고, 덤으로 사용자가 위키 카페 구조에 익숙해지는 효과도 얻을 것 같습니다. -- [Leonardong]
여기 페이지도 나름대로 필요하다고 생각합니다. 각 팀마다 06학번 신입생의 실력이 다른 것 처럼 각 팀은 각 나름대로 진행해야 할 것입니다. 하위 페이지에서 기록이 단순히 '재학생을 위해서' 가 아닌 무슨 문제를 풀었고, 언제 만날건지, 어떤 문제를 풀건지 등 위키에 내용으로 남겨두는 것이 좋을것 같습니다. 후에 또 참고할 수 있도 있고. 지금 많은 class의 진척도도 볼 수 있고요.
위키에 기록을 남기되 개인위키를 활용하자는 말입니다. [stuck]같은 페이지에서 언제 만날지, 오늘은 누가 나왔는지까지 후에 참고할 필요가 없다고 생각합니다. 또 [빵페이지/구구단], [복/숙제제출] 같이 페이지 아래 실습한 내용이 분산되지 않고, 각 반의 숙제 페이지는 되도록 문제에 따라 한자리에 정리하면 좋겠습니다. 진행 상황은 페이지를 만들지 않아도 링크를 걸면 되겠죠. -- [Leonardong]
제 말도 그거에요 ㅋ 링크 걸자는 거에요.. 그런데, 개인위키에 적는건 더 분산 아닌가요? 우리가 프로젝트 진행할 때 프로젝트 한 페이지에 여러 링크, 내용을 적잖아요? 새싹스터디2006/날아라병아리 이런식으로 만들어서 그 페이지 안에,우리가 풀었던 문제를 링크거는건 어떨까요?, 뭐 방법에 따라 다르겠지만, 저번처럼 새싹스터디 단체로 숙제를 내 주게 될 때는 달라지겠지만요.. -- [허아영]
사실 [너구리]페이지는 제로페이지 위키에 있어도 그만입니다. 현재 진행중인 스터디를 모두 링크하는데 [너구리]페이지가 너굴아빠 개인위키에 있든 어디 있든 상관없지요. 다만 최근바뀐글을 생각하면 일장일단이 있습니다. [너구리]페이지가 제로페이지 위키에 있으면 현재 진행중인 스터디를 모든 사람이 한 곳에서 볼 수 있을 것이고, 따라서 다른 스터디도 돌아볼 기회가 많아지겠죠. 반대로 [너구리]페이지가 개인 위키에 있으면 자신의 위키홈에 가야지 볼 수 있기 때문에, 개인 위키 사용을 활발히 만들 겁니다.
어느쪽이 되었든 하위페이지는 신중히 만들어야 합니다. 하위페이지는 순간 만들기 쉽지만 갈수록 구조를 바꾸기가 어려워집니다. '''숙제'''로 제로페이지 위키에 있는 페이지를 검색해 보세요. 내용으로 정리할 수 있는 페이지가 있지만, 손보려면 드는 시간이 적지 않을 겁니다. 일일이 페이지를 열어보기 전까지는 그 안에 어떤 내용이 있는지 알 수도 없고요. 또 하위페이지는 링크를 걸기가 더 어렵습니다. 상위 페이지 외에는 그 하위 페이지의 역링크 개수는 0에 가깝습니다. 이를테면 [5인용C++스터디/멀티쓰레드]는 [5인용C++스터디]에서만 링크하고 있습니다. 이러한 현상은 하위의 하위 페이지로 들어가면 더 심해질 것입니다. -- [Leonardong]
- 영어학습방법론 . . . . 13 matches
'일반영어공부론'의 경우는 [http://board2.cuecom.net/arumari2.html?id=beachboy 임병준님 홈페이지] 에 있습니다. 영어세미나 내용의 경우 전체적인 큰 틀은 비슷하나, 사람들의 질답내용에 따른 답변의 차이가 있었습니다. --[1002]
* 이것은 원어민들이 언어습득을 하기 용이한 방법. 따라서 Toeic 500도 안되는 사람들이 하는건 말이 안됨.
단어의 여러가지 뜻을 동시에 외우면 그 단어 고유의 명징한 의미를 파악하는데 해가 됩니다. 김창준님도 그에 대한 글을 쓰신 적이 있습니다. 한 단어의 여러 의미를 습득하기 위해서는 각 의미를 서로 다른 단어로 간주하고 습득, 여러 용례가 습득된 뒤에 용례 간의 논리적 공통점을 추론하는 것이 좋다고 봅니다. 그리고 죄송하지만 글의 통일성을 해치는 김정욱 씨의 의견은 스스로 삭제하는 것이 어떨까요? DeleteMe -- 지나가는 사람
WPM을 체크하는 Test자료들은 웹에 많이 있음. WPM test용 원문은 많은 제약사항(모르는 단어, 어려운 단어수 등)이 있는 text임
A4용지의 원문에서 모르는 단어가 10여개 정도 되는 text를 고름. 이것을 읽고 남에게 이야기할 수준으로 이해해야함. 이러면서 WPM을 측정.
* 자신이 아는 내용와 경험과 감각과 상상력을 결합해서 들어라. -> 즉 체득하라! 영어가 몸에 영어로써 배게하라!
* 주의점 : 단어를 외우지 않는다. 오직 context에 적용된 내용만을 참조한다. ex) 큼지막함 apple
* 한 단락을 보고 그것을 머릿속에 기억하고 책 내용을 영어로 씀 (완벽하게 똑같이 쓰던지 약간 요약하던지)
* 자신이 잘 알고 관심이 있는 내용을 선택해서 VOD를 통해서 듣기
내용이 저장과정에서 유실된듯 해서 일부 살렸습니다. --["데기"]
- 이성의기능 . . . . 13 matches
* 여기서 인상적인 부분의 내용은 이거다. 이성의 기능은 자신의 환경을 바꾸어가는 기능이라는 말이 너무 큰 깨닳음을 주었다. 주변을 보면 사람만큼 이렇게 환경을 바꾸는 생명체는 없다. 사람은 정말 엄청나게 환경을 바꿨다. 물론 사람들중에서 어려운 환경이 주어지면(일종의 도전) 수동적으로 그 환경에 순응하거나 멸종하는 경우도 있다. 이러한 경우에는 아무런 발전도 기대하기 어렵다. 반면 그 어려운 도전에 맞받아서 환경을 인간에게 유리하게 변형하여 큰 진보를 이루는 경우도 있다. 환경이라는 것이 얼마나 강력하게 인간에게 영향을 끼치는지는 우리 주변에서 여러 사례를 보면 쉽게 알 수 있다. 특히 인간이 만드는 문화, 조직, 인간관계 등등의 환경은 그 영향이 개인에게 끼치는 정도가 엄청나다. 이러한 환경의 영향에서 독립적이기는 상당히 힘들고, 게다가 그 환경을 바꾸는 것은 더더욱 힘들다. 하지만 인간은 이성을 가지고 있기에 자신의 환경을 계속 바꾸어 나가면서 발전할 것이다. 다만 환경이 바뀌기 힘든만큼 그 근저에 깔려 있는 기본적 패러다임이 바뀔때에는 시간이 좀 걸릴것이다.
* "피로는 이성의 反 이다." 피로는 새로움을 향한 충동을 제거시키는 작용을 한다. 피로는 하향, 이성은 상향. 피로를 거부하는 이성의 작용
책을 번역한 사람이 한동안 방송가를 떠들썩하게 한 '김용옥' 씨인데. 방송에서의 김용옥씨에 대한 느낌은 별로 안좋았었는데 최근 그 사람이 건드린 책을 보면서 김용옥씨에 대한 나의 시각을 다르게 한 책이기도 하다. 단순히 번역이 아닌 '역안'. 즉, 본래의 영어 원문을 실은뒤, 그 밑에 번역을 놓고, 그 밑에는 책을 읽으면서 자기 나름대로의 해석을 실는 방식을 취하고 있다. (한편으로는 김용옥씨가 주장하는 '기철학'을 설명하기위해 화이트헤드의 글을 끌어왔다라는 생각도 들긴 했지만) 이로 인해서 이해가 더 잘 되었다는 점과, 한편으로는 번역자의 번역중의 생각을 앎으로서 번역자의 사상에 끌러가지 않고 거리감을 두면서 읽을 수 있게 하는 장치가 된다. (번역은 제 2의 창조라고 할때, 원문에 번역자의 의도가 들어간다. 또한 언어가 다른 언어로 번역되면서 그에 따른 내용의 차이가 생길 수 있다고 할때 한편으로는 용기있는, 한편으로는 자신감 넘치는 방법이라 하겠다.)
* 김용옥씨의 '도올논어' 라는 책은 뭐 유명해서 다들 알겠지만, '도올논어' 1권을 보면 논어를 들어가기 전 자신이 공자에 대해 알고 있는 바와 어느정도 자신의 생각으로 해석한바로 책의 절반을 잡고 간다. 순수하게 기존지식을 습득만 하는 것이 과연 학문일까. 한번 딴지도 걸어보고 책의 저자와 싸우다가 자신의 시점을 교정하고, 또는 죽은 저자의 지식에 자신의 생각을 보태보기도 하고.. (거인 어깨위에서 탑쌓기..)
* 방송에서의 쇼맨쉽을 발휘하면서 그게 좀 커져서 독단적인 모습으로 보여서 아쉬웠던 김용옥씨지만, 그의 책을 보면 그의 학문하는 방식이 참 솔직해 보인다. 이것이 그의 진정한 모습이길.
* 아래로부터의 이성의 진화라고 하는 것은 비교적 짧은 예견의 시간범위에서 아주 실용적으로 이루어진 것이다. 이성으로부터 도출되는 아주 원초적이고 깊숙이 자리잡는 만족감, 기억할 수 없는 태고의 유전에서부터 우러나오는 그런 만족감은, 현재의 실천을 규제하는 어떤 방법을 강조적으로 명료하게 함으로써 제공될 수 있다. 그러한 방법이 현실적으로 기능하면 이성은 만족된다. .. 사실은 인간의 호기심을 그 방법의 범위내로 제한시키려는 또 하나의 적극적인 관심이 있는 것이다. 그러한 관심이 패배당할때는 정서적으로 적개심이 일어나게 되는 것이다. 그러면 경험론은 사라진다. ... 한 방법론이 이미 낡아버렸다는 주요 증거는, 그 방법내에서 일어나는 진보가 더 이상 주요 잇슈들을 취급하지 못한다는 사실로 입증된다. 사소한 문제들에 끊임없이 시비하고 있는 마지막 단계에 온 것이다. ... 그 방법의 범위내에서 성취할 수 있는 더 큰 대비들이 다 탐구되었고 또 친근하게 되어버렸다. 그리고 반복으로부터 생기는 만족감도 시들시들해져 버린다. 그러면 생명은 그 운명을 결정하는 마지막의 선택의 기로에 국면하게 되는 것이다.
이 마지막 선택의 기로는 이미 내가 앞에서 언급한 삼중의 충동이라는 성격에서 유래되는 것이다 : 산다, 잘 산다, 더 잘산다! 한 방법론의 탄생이라는 것은 본질적으로 살려고 하는 안전한 방법의 발견이다. 그것은 전성시대에은 좋은 삶을 위한 긴박한 조건들을 만족시킨다. 그러나 좋은 삶이라고 하는 것은 불안정한 것이다. 피곤의 법칙이 용서없이 엄습한다. 삶의 어떠한 방법론이라도 그 범위내의 신선함을 다 고갈시키고, 또 피로가 물밀쳐올때까지 그 신선한 것들을 다 써먹어버리게 되며, 하나의 마지막 결단이 그 종의 운명을 결정한다. 하나는 그 자신을 안정적으로 만들고 그냥 생존하는 수준으로 퇴행해버리는 것이요; 또 하나는 과거의 관습들을 자유롭게 떨쳐버리고, 더 잘 사는 모험을 시작하는 것이다.
- 정규표현식/스터디/메타문자사용하기 . . . . 13 matches
정규표현식을 이용하여 메타문자 그 자체를 찾기 위해서는 이스케이프 문자를 사용하면 된다.
* 배열을 검색하기 위해 활용할 수 있다.
* 윈도우 시스템에서 폴더의 구분을 역슬래시(\)로 하는 반면에 리눅스 시스템은 슬래시(/)를 사용한다. 따라서 이것을 변경하기 위해 사용할 수 있다.
16진수 표현 및 사용
'\x'를 붙여 10진수 10은 '\x0A'로 표현할수 있다. 이 문자를 사용한다면 '\n'과 기능이 같다
8진수 표현 및 사용
'\0'을 붙여 사용한다. '\011'은 '\t'과 같고 그렇게 사용 할수있다.
* 이와 같은 기능을 사용하여 정규표현식을 더욱 간결하게 만들수 있을 것이다.
== 포직스 문자 분류 사용하기 ==
* 문자와 문자 집합으로 찾는 기본 내용은 2장과 3장에서 모두 배웠고, 이 장에서는 특정 문자나 전체 집합 혹은 문자 클래스와 일치하는 메타 문자를 소개했다. 이렇게 메타 문자와 포직스 클래스는 정규 표현식 패턴을 단순하게 만든다.
- 정모/2011.5.2 . . . . 13 matches
* 프로젝트 지원서를 작성하여 캡스톤 설계실 사용 신청을 해 주세요.
* 프로젝트 이외의 용도로 사용하는 것을 자제해 주세요.
* 이번 정모는 보통 하던 정모에 비해 빠르게 진행이 되었던 것 같네요. Google Campus Recruit를 들으면서 예전에 Google 캠 톡톡이었나 거기 신청했는데 안됬던 씁쓸했던 기억이 나긴 했지만 나중에 어떤 이야기가 있었는지 들어서 좋은 정보였다는 기억이 났습니다. 이번 내용도 그 때 들었던 이야기랑은 크게 다르지 않았던 것 같았던 것 같습니다. 그리고 우리 학교에는 안오네 이러고 관심을 끄고 있었던 생각도 들고 -_-; 이번 OMS를 들으면서 난 좋아는 하는데 잘 하지는 못하는 분류에 속해 있구나 라는 생각이 들면서 분발해야 겠다고 느꼈습니다. 학교 수업에 질질 끌려 다니는 제 모습이 오버되면서 한편으로는 예전에 친구가 링크해놔서 봤었던 글(대학 수업이 무슨 수능을 준비하는 고등학생의 수업과 다른게 없는 것 같다라는)도 생각났습니다. (쩝.. 암울해지네 -ㅅ-;) - [권순의]
* 이번 OMS에서 많이 아쉬움을 느꼈습니다. 준비도 약간 부족했고 했던 얘기를 반복하게 되고 오프 더 레코드 이야기를 너무 많이 한것 같아요;ㅅ; 제로페이지 학우들에게는 뭐라도 말해주고 싶은데 아는게 쥐뿔도 없어서 그런가봐요ㅠ_ㅠ 구글 캠퍼스 리쿠르팅의 내용은 구글캠 톡톡톡이 생각나서 이것저것 껴들어서 말한거 같구요..;; 나이값좀 해야겠다고 느낀 정모였습니다. 흑흑 - [Enoch]
* 전 오프 더 레코드 이야기를 들어서 좋았어요 ㅋㅋㅋ 전에 몇몇 ZeroPager들과 ZeroPage에서 학교 밖의 이런 저런 정보들이 많이 오갔으면 좋겠다는 이야기를 한 적이 있었는데, 구글캠 톡톡톡이나 교환학생, IBM 캠퍼스 위자드 등 다양한 활동을 하신 경험을 공유해주셔서 전보다 ZeroPage에서 접할 수 있는 내용의 폭이 넓어지는 것 같아요~ 감사합니다 ㅋㅋ - [김수경]
1. OMS 정말 좋은 내용이라 더 많은 ZeroPager들이 들었으면 좋았겠다는 아쉬움이 남아요. 발등에 불 떨어진 4학년들도 그렇지만 1, 2학년에게 더더욱 좋은 내용이라고 생각하는데 1, 2학년이 많지 않았네요ㅠㅠ
* 너가 한거였음? 오 땡큐땡큐ㅋㅋㅋㅋㅋ 어쩐지 디피스터디 내용이 매우 자세하다 싶긴 했어!! ㅋㅋㅋㅋ - [김수경]
* 정모 후기를 쓰는데 조금 늦었네요 ^^; 이번 정모에서 많은 인원이 참석하지는 못했지만, 좋은 내용들이 많았던 것 같아요. IBM의 똑똑한 타이틀을 달아놓은게 상당히 흥미로웠습니다.(그런데 공모전에 내놓을 만한 실력은 아닌것 같군요) 캡스톤 설계실에 저번에 황현하고 같이 가본적이 있는데 많은 사람들이 팀 프로젝트를 하고 있었던 걸로 기억합니다. 음 그래서 말인데, 제로페이지 회원이 아니더라도 팀 프로젝트가 있으면 거기 가서 써도 되나요?(아 이거 정모에서 말을 했던가? 기억이 잘 안나네요ㅋㅋ;) - [신기호]
* 팀원 모두 ZeroPager가 아니면 그건 ZeroPage 할당된 공간을 쓸건 아니고 따로 교수님께 연락드리거나 해서 공간을 할당받아야 할 듯. ZeroPager와 비 ZeroPager가 한 팀이라면 ZeroPager가 대표가 되어 프로젝트 지원서를 작성하고 임원진에게 제출하면 사용할 수 있어~ - [김수경]
* 늦은 후기~ 항상 한두주 뒤에 후기를 쓰는듯하네요.. 이번 정모에서는 공모전등 여러 활동에 대한 공유가 있었습니다. 유용한 정보를 나누어 보기가 좋았습니다. 그냥 그런게 있군 하고 넘어가지 마시고 (안친해도)옆사람 찔러서 같이 공모전 나가보세요!! 제로페이지의 인력풀을 사용하시길 바랍니다ㅎㅎ 프로젝트 공유도 해주시고, 제로페이지를 빛내는 기회기도 하네요. 계속해서 이렇게 공유하는 지피가 되었으면 좋겠어요~ - [서지혜]
- 프로그래밍잔치/첫째날후기 . . . . 13 matches
["상민"] 과 ["1002"] 는 위키에서의 대화에 대해 간단한 시연을 보여주었다. [1002/MP3공유프로그램] 에서 가상의 인물 1002, 상민, 쩡직 등이 대화를 하면서 페이지내용을 조금씩 정리하고, 점차 [음악공유프로그램], [소리바다와그누텔라] 페이지로 나누어져가는 모습을 중간중간 버벅이는 설명과 함께 시연을 했다.
* 오늘 위키의 간단한 룰로서 들고 나온 개인페이지 내 '/' 구분자를 이용하는 계층위키에 대한 사람들의 생각
* 위키의 룰은 사용하는 사람들이 점차적으로 만들어야 하는데, 지금의 룰은 '규칙'처럼 선언을 해버린 모습같다. 위키의 룰은 결국 위키를 이용하는 사람들이 만들어가는 것 아닌가?
* 사람들이 마음편하게 쓸수도 있겠지만, 내용의 중복을 가져오기 쉽다.
* ZeroPagers 의 위키에 자신의 공부내용을 정리하는 것은 '의무'인가? 자신을 위한 행동이 아닌가? 강요되는것은 아닌지. (실제로 자신의 공부내용을 글로 정리하기에 대한 어려움)
* 위키가 책을 대신하는가? - 위키가 모든 내용을 다 이야기해주지 않으며, 그럴 필요도 없다.
* 구체적으로 '~한 점이 잘못되었다' 라고 길게 설명하는 것 보단, 그냥 조용히 적절하게 고쳐주는 것이 좋을 수도 있다.
*감상 : 위키에 글을 쓸 수 있는 용기를 내어...;;짧은 시간이나마 참여했던 후기를 남겨보면..내가 선택했던 python은 c나 java와 비슷하면서도 더 간단한 구조를 가지고 있었기 때문에..패러다임의 변화로부터 오는 충격은 적었던것 같다. 오히려 문법은 간단하지만, 손과 눈에 익지 않은 구조문들과 프로그램 실행 방식으로 인해 상당히 불편하다는 느낌을 받았고, 이렇게 실행 되는 인터프리터 언어를 접한다는게 어떤 도움이 될는지....;;;란 생각이 들었다. 특히, 툴과 언어가 익숙하지 않으니 문제(삼목)의 알고리즘도 생각이 나질 않아 당황스러웠다. 마구잡이로 짜는 코딩 습관 때문인가...하는 생각이 들었다.
* 좋았던 점 : 새로운 언어를 접할 상황이 올 때 , 문법을 익히고 적용하는 방법에 대해 경험 할 수 있었단 점. 이 때 인터넷의 많은 문서들 중 튜토리얼 형식의 문서가 도움이 된다는 점. --["naneunji"]
* 의외로 몇몇 언어들이 공통되는 부분도 있는거같군요...(제 수준에서) 그리고 Haskell은 언어보다 수학에 가까운 듯한 느낌이었습니다. 전혀 모르는(?) 언어를 사용하여 첫번째 프로그래밍할 때 가슴이 참 떨리더군요. - 영동
* 우선 위키에 글을 올릴 수 있는 용기를 만땅(?) 채울 수 있었다. 앞으론 '세여니'의 글들을 많이 볼 수 있지 않을까나??
- 5인용C++스터디/멀티미디어 . . . . 12 matches
- SND_LOOP : 지정한 사운드를 반복적으로 계속 연주한다. 이 플래그는 반드시 SND_ASYNC와 함께 사용되어야 한다.
예제) AppWizard를 사용하여 Sound라는 이름으로 SDI 프로젝트를 만든다.
PlaySound 함수를 사용하려면 mmsystem.h 파일을 먼저 include 해주어야 하고,
이번에는 SND_LOOP 플래그를 사용하여 작성해 보고, WM_RBUTTONDOWN 메시지의 핸들러도 같이 만들어보자.
SND_LOOP 플래그를 지정하면 반복적인 효과음이나 배경음악을 연주하는 등의 설정을 할 수 있을 것이다. 연주를 중지시키려면 PlaySound 함수의 첫 번째 인수를 NULL로 하여 다시 호출해 주면 된다. 따라서, 오른쪽 마우스 버튼을 누르면 연주가 중지될 것이다. 주의할 것은 SND_LOOP 플래그는 반드시 SND_ASYNC와 함께 사용해야 한다. 만약 동기화 연주방식으로 반복연주를 하면 무한 루프로 빠져버릴 위험이 있다.
사운드 파일을 연주하는 것은 사용하기는 간단하지만 연주할 때마다 디스크에서 사운드 파일을 읽어와야 하므로 반응 속도가 느리다. 따라서 이 경우에는 사운드 파일을 리소스에 포함시켜 놓고 리소스에서 읽어서 연주하는 방법으로 하는 것이 좋을 것이다.
PlaySound함수는 메모리 크기의 제한을 받아서 1-2분 정도의 사운드 밖에 낼 수 없다는 점, Wave형태만 지원한다는 점, 연주과정에 사용자가 개입할 수 없다는 단점이 있다.
MCI는 멀티미디어 요소에 대한 지원을 장치독립적으로 제공하는 일종의 라이브러리이다. 이것은 PlaySound 함수가 하지 못하는 여러 가지 일을 할 수 있지만, 사용 방법은 훨씬 더 복잡하다.
MCI를 사용하면 동영상도 아주 쉽게 재생할 수 있다. AppWizard로 PlayAVI라는 SDI 프로젝트를 만들고 WM_LBUTTONDOWN 메시지의 핸들러와 WM_DESTROY 메시지의 핸들러를 다음과 같이 작성한다.
동영상 연주는 Video fot window 라이브러리를 사용하므로 뷰에서 vfw.h를 인클루드 해 주어야 한다.
또한 프로젝트에서 이 라이브러리를 사용할 수 있도록 Project/Settings/Link 탭에 vfw32.lib를 추가한다. 그리고 동영상 파일을 프로젝트 디렉토리에 넣어두면 된다.
hInstance: MCIWnd롤 사용하는 인스턴스 핸들을 지정한다.
- 5인용C++스터디/멀티쓰레드 . . . . 12 matches
* 멀티쓰레드를 어떻게 사용하나?
* 크리티컬섹션을 어떻게 사용하나?
이렇게 작업을 함으로써 작업을 멀티 테스킹으로 할수 있다라는 의미입니다. 이때 하나의 작업 단위들을 스레드라고 합니다. "그럼 프로그램 내부에 모든 작업은 스레드로 나누어 지겠네요?" 라는 질문이 있을 것 같은데 그렇지는 않습니다. 스레드란 독립적인 작업 단위입니다. 즉 다른것에 구애 받지않는 자체적인 작업 단위를 스레드라고 합니다. 윈도에서 워드 프로세서를 띄우고 대용량의 데이터를 로드하여 프린터로 출력한다고 가정을 합시다. 프린팅 작업 도중에 워드프로세서를 사용할수 있습니까? 물론 윈도 95에서는 프린터는 프린터 대로 작동을 하고 워드 프로세서는 워드 프로세서대로 작업을 할수 있습니다. 여기에 인터넷을 통해서 큰 데이터를 다운 받는다고 가정을 합시다. 프린터하고 원드프로세서로 새로운 내용을 입력하면서 인터넷을 통해서 데이터를 다운 받을수 있습니다? 물론 할수 있습니다. 여기에서 원드프로세서의 입력작업이 하나의 스레드 프린팅 작업이 하나의 스레드 또한 다운 로드가 또하나의 스레드입니다. 실지로 윈도 98의 내부적인 모든 프로그램의 동작은 멀티 스레드로 설정되어 있습니다. 그렇기 때문에 다중 작업을 할수 있는 것입니다.
프로그램 작성하다 보면 프로그램 수행도중 현재 프로그램은 다른 작업을 수행하면서 또하나의 작업을 수행하고자 할 때가 있을 것입니다. 이때 사용하는 것이 바로 스레드 입니다. 작업을 함수로 프로그래밍을 하고 난후에 이것을 스레드로 형태로 실행하면 됩니다
동기 클래스인 CSyncObject, CSemaphore, CMutex, CCriticalSection, CEvent와 동기화된 접근을 허용하는 CMultiLock과 CSingleLock이 그것이니다.
이중 CSyncObject는 CSemaphore, CMutex, CCriticalSection, CEvent의 상위 클래스로서 직접 사용하지는 않습니다.
반복적으로 동작하는 두 개 이상의 스레드가 하나의 리소스를 공유하려고 할 때, 동시에 리소스에 접근하지 못하도록 하기 위하여 크리티칼 섹션을 사용한다.
OS에서 공유자원이나 특정코드가 수행되는 도중에 다른 프로세스에 의해 interrupt 되는것을 방지하기 위해 크리티컬 섹션을 사용하게 된다. 이는 윈도우즈 프로그래밍에서 스레드관련 처리를 해 줄 때에도 나오는 용어이다.
[5인용C++스터디]
- AcceleratedC++ . . . . 12 matches
* 소스코드의 코딩은 VS6를 이용할 수도 있겠지만, VS6가 나온지가 오래되다 보니 STL을 다루는 방식이 좀 달라서 책의 소스를 그대로 이용하는데 문제가 존재합니다. 따라서 .net 을 이용하거나 gcc를 이용하는 방식을 추천합니다.
|| [http://www.acceleratedcpp.com/details/msbugs.html VS6 코드 수정] || 책에 나온 소스를 VS6에서 이용할 경우 발생하는 문제점에 관한 내용이 있습니다. ||
|| [http://www.bloodshed.net/ Dev-C++] || GCC를 기반으로 하는 IDE환경으로 책의 소스를 그대로 이용가능. CVS를 제공함 ||
|| [http://msdn.microsoft.com/visualc/vctoolkit2003/ VSC++ Toolkit] || .net 을 구입할 수 없는 상태에서 STL을 컴파일 해야할 때 사용하면 되는 컴파일러. ||
이제 하루정도면 다 볼거 같은데... 이미 C++의 기본 문법과 템플릿의 용법을 알고 있다면, (05년 스터디의 경우 01학번들) 8장정도 까지만 하면 충분히 이 책에서 볼것은 다 보았다고 보여진다. 만약 처음으로 C++을 접하는 경우 (05년 스터디의 경우 05학번) 마지막 까지 읽어야할 필요가 있음. 물론 상당한 분량의 C++의 깊숙한 내용을 너무 간단하게 다루는 경향이 이 책에 있기 때문에 C++ Primer Plus 같은 책을 같이 보아야할 필요가 있어보인다. 책을 좀 빠르게 읽는 편이라면 2~3일동안 집중해서 본다음에 실전에 적용시켜보는 훈련이 책 잡고 있는 것보다 더 도움이 될 것으로 보인다. 그리고 이 책 -_-;; 예제가 정말로 유기적이다. 예제를 만든 사람이 더 대단해 보인다. - [eternalbleu]
흠 처음 생각했던 것 보다 뒷 장의 내용이 좀 신선한 부분이 많다. 특히 14장에 Ptr 클래스는 정말로 신선하다. =.= C++로 프로그램을 짜면 이렇게 짤 수도 있구나 그런생각이;; - [eternalbleu]
- CCNA . . . . 12 matches
* ethernet: CSMA/CD- 이더넷 통신에서 사용하는 프로토콜이다. 회선이 사용중이지 않을때 전송하고 충돌이 생기면 일정시간후 재전송한다.
* 네트워크에 대한 표준 모델이며 실제로 사용되는것은 아니다.
* TCP/IP란 프로토콜(Protocol)의 한 종류로 인터넷을 하기 위해 꼭 필요하다. ARPANET에 의해 처음으로 개발 되었으며 TCP/IP는 인터넷을 사용하는 컴퓨터라면 어디에나 세팅이 되어 있다.
* 인터넷을 사용하기 위해서는 IP라는 주소가 필요하며 이 주소는 2진수 32개로 4묶음씩 구성된다. 각 묶음마다 10진수로 나타내어 알아보기 쉽게 만들었다. 현재 IP 버전은 4인데(IPv4) 약 43억개의 주소를 할당 할 수 있다. 그런데 이 주소가 얼마 남지 않아서 ip 버전 6으로 대체 할 것이라고 한다.(IPv6은 2의 128개로 구성되어 있다고 함.)
* 또 서브넷마스크를 사용할때 AND연산이 필요하다.
* ip의 생성이유 : TCP/IP프로토콜을 사용하는 모든 장비를 구분하기 위해서
* ip주소는 2진수 32자리로 되어있음 -> 약 42억 9천개 -> 현재 사용자를 고려하면 남은 ip주소가 얼마 없음
//네트워크를 나타낼 땐 호스트 부분을 0으로 표현. 그리고 각 클래스에서 표현 가능한것의 제일 작은 수와 제일 큰수는 사용불가.
*호스트부분이 모두0은 네트워크, 1은 브로드캐스트 번호이므로 사용하지 않는다. -> 각 클래스에서 사용가능한 최대 호스트수는 순계산-2해줘야함.
* 네트워크를 나눠 쓰지 않더라도, 디폴트 서브넷 마스크를 사용한다.
- CVS . . . . 12 matches
Concurrent Versions System. 공동 프로젝트를 위한 소스 버전 관리 툴. 오픈소스계열에서 Source Repository 의 용도로서 많이 이용된다. 활발하게 이용되고 있는 곳에 대해서는 http://sourceforge.net 에서 많이 볼수 있다.
설치는 간단하다. install script 를 이용, CGI 가 돌아가는 경로에 설치한뒤, viewcvs.conf 에서 CVS ROOT 를 설정해주면 끝.
* 현재 ZeroPage 에서는 CVS 서비스를 하고 있다. http://zeropage.org/viewcvs/cgi/viewcvs.cgi 또는 ZeroPage 홈페이지의 왼쪽 메뉴 참조. 웹 클라이언트로서 viewcvs 를 이용중이다. 일반 CVS Client 로서는 Windows 플랫폼에서는 [TortoiseCVS](소위 '터틀'로 불린다.) 를 강력추천! 탐색기의 오른쪽 버튼과 연동되어 아주 편리하다.
* ZeroPage의 CVS 계정을 원하는 회원은 서버관리자(["neocoin"])에게 연락 바람 자세한 내용은 홈페이지 왼쪽 메뉴 참고
* ZeroPage의 CVS의 읽기 전용 계정은 '''cvs_reader''' 에 암호는 '''asdf''' 이다.
|| ["CVS/길동씨의CVS사용기ForLocal"] || WinCVS 설치 전제, CVS를 처음 접하는 사람이라면, Local을 이용해서 감을 잡으세요. ||
|| ["CVS/길동씨의CVS사용기ForRemote"] || WinCVS 설치 전제 ZeroPage CVS를 ||
* 원인: 어떠한 이유에 의해, cvs를 실행하는 환경이 cvs 사용자와 다를 경우 혹은 권한이 없을 경우 발생한다.
돈이 남아 도는 프로젝트 경우 {{{~cpp ClearCase}}}를 추천하고, 오픈 소스는 돈안드는 CVS,SubVersion 을 추천하고, 게임업체들은 적절한 가격과 성능인 AlianBrain을 추천한다. Visual SourceSafe는 쓰지 말라, MS와 함께 개발한 적이 있는데 MS내에서도 자체 버전관리 툴을 이용한다.
- Cockburn'sUseCaseTemplate . . . . 12 matches
[실용주의프로그래머]에 나온 목적 지향성이 있는 유스 케이스 템플릿
* 주행위자와 상호작용하는 수단
* 부행위자들과 상호작용하는 수단
4a.구매자가 직접 신용카드로 물건값을 지불한다: 신용카드로 물건값을 받는다. (유스 케이스 44)
7. 구매자는 현금, 우편환, 수표, 신용카드로 지불할 수도 있다.
* 하위 유스케이스들: 주문서를 만든다. (유스케이스 15), 신용카드로 물건값을 받는다.(유스 케이스44), 반송된 물건을 처리한다.(유스 케이스 105)
* 주행위자와 상호작용하는 수단: 아마 전화, 파일, 직접 대면
* 부행위자들: 신용카드 회사, 은행, 택배회사.
* 부행위자들과 상호작용하는 수단: 아마 전화, 파일, 직접 대면
* 신용카드가 훔친 카드라면 어떤 일이 일어나는가?
필요한 경우 다른 유스케이스에 링크를 걸 수 있을 것이다. 더 좋은 방법은 책에서 설명했듯이 유스케이스 번호만 주면 보여지는 내용을 자동으로 생성하게 만드는 것이다. 예를 들어 ''UseCase5'' 라고 적힌 부분은 자동으로 ''물건을 구매한다. (유스 케이스5)''이런 식으로 생성한다.
- DirectDraw/DDUtil . . . . 12 matches
["TheWarOfGenesis2R"]페이지의 개설에 따라 사용법을 모읍니다.
생각보다 초기화하기 까다로운 DX의 사용을 그나마 편하게 해주는 것들이다
컬러키(투명색)를 가진 채 화면에 출력한다. prc는 사용하지 않는다.
역시 prc는 사용하지 않는다.
CSurface형을 화면에 출력한다. prc는 사용하지 않는다.
위의 Blt함수들은 백 버퍼에 출력하는 함수들이다. 모든 내용을 백 버퍼에 출력했으면 다음 함수들을 사용하자
백 버퍼에 출력되어있는 내용을 현재 화면으로 출력한다. 화면을 모두 완성한 후에 사용한다.
백 버퍼의 내용을 모두 지운다.
컬러키(투명색)으로 사용할 색을 COLORREF (RGB) 형에 맞추어서 집어넣으면 된다. [[BR]]
대개 잘 쓰이지 않는 색을 사용한다.
- Garbage collector for C and C++ . . . . 12 matches
* GNU-win32 에서는 기본으로 있는 Makefile 을 사용하면된다.
/! 시스템에 따라 Makefile 내용 중 CC=cc 를 CC=gcc 로 수정하여야 한다.
* MS 개발 툴을 사용한다면 NT_MAKEFILE 을 MAKEFILE 로 이름을 바꾸어 사용한다.
* win32 쓰레드를 지원하려면 NT_THREADS_MAKEFILE 을 사용한다. (gc.mak 도 같은 파일 이다.)
* 볼랜드 개발 툴을 사용한다면 BCC_MAKEFILE 을 사용한다.
== 내가 사용한 인스톨 ==
* Makefile 수정 내용.
* Windows NT 나 Windows 2000 에서 문제가 발생한다면 -DUSE_GLOBAL_ALLOC 나 -DUSE_MUNMAP 옵션을 사용하여 컴파일 한다.
* C++ 에서 사용하려면 -DGC_OPERATOR_NEW_ARRAY 를 추가하여 컴파일 하는 것이 좋다.
= 사용법 =
- Gof/AbstractFactory . . . . 12 matches
이 문제는 기본적인 Widget의 인터페이스를 정의한 abstract WidgetFactory 클래스를 정의함으로써 해결할 수 있다. 또한 모든 종류의 Widget에는 추상클래스가 존재한다, 그리고 구체적인 서브 클래스는 Widget을 상속해서 룩앤필 기본을 정의한다. WidgetFactory의 인터페이스는 각각의 추상 Widget 클래스의 새로운 객체를 반환하는 기능을 가지고 있다. 클라이언트는 이런 기능을 수행해서 Widget 인스턴스를 만든다. 그러나 클라이언트는 사용하는 클래스의 구체적인 내용에 대해서는 신경쓰지 않는다. 이처럼 클라이언트는 일반적인(?) 룩앤필의 독립성에 의존한다.
또한 WidgetFactory는 widget 클래스 간의 의존관계를 형성한다. Motif 스크롤바는 Motif 버튼과 Motif 텍스트 에디터와 함께 사용되어야 한다, 그리고 MotifWidgetFactory를 사용함으로써 이러한 의존성이 강제적으로 이루어지게 된다.
이럴 때 Abstract Factory 패턴을 사용해라
* 어떤 연관된 집합의 객체들이 서로 같이 사용될 수 있도록 디자인되어지게 강제해야 할 때.
* AbstractFactory에 의해서 정의된 인터페이스와 AbstractProduct 클래스만을 사용한다.
클라이언트는 서로 다른 concrete factory를 사용해야 한다.
이는 conncrete factory를 쉽게 전환해서 사용할 수 있도록 해주고. 이로써 간단하게 concrete factory만 바꿔줌으로서 서로다른 산물의 조건을 쉽게 쓸수 있다.
3. ''산물간의 일관성을 촉진한다.'' 어떤 집합내의 객체들이 서로 협력하도록 고안되었다면, 어떤 어플리케이션은 한번에 단 하나의 집합에서 객체를 사용하는 것이 중요하다.
InterViews 는 AbstractFactory 클래스들을 나타내기 위해서 'Kit'를 접미사로 사용한다. 이것은 WidgetKit과 DialogKit abstract factory 들을 명확한 ["룩앤필"] UI 객체를 위해서 정의한다. InterViews는 또한 서로 다른 복합 객체를 생성하는 LayoutKit 을 포함다. 예를 들면, 어떤 layout은 문서의 방향(인물이나 풍경)에 따른 서로 다른 복합 객체를 개념적으로 정렬한다.
ET++[WGM88]은 다른 윈도우 시스템(예를 들면, X Windows 와 SunViews)간의 호환을 수행하기 위해서 Abstract Factory 패턴을 사용했다. 윈도우 시스템의 추상 base 클래스는 윈도우시스템의 자원 객체(예를 들면, MakeWindow, MakeFont, MakeColor)를 생성할 수 있는 인터페이스를 정의한다. Concrete 서브 클래스는 특정 윈도우 시스템에 인터페이스를 수행한다.
- Gof/Strategy . . . . 12 matches
비슷한 문제들을 해결할 수 있는 알고리즘의 군들을 정의하고, 각각의 알고리즘을 캡슐화하고, 그 알고리즘들을 교환할 수 있도록 한다. Strategy는 알고리즘들로 하여금 해당 알고리즘을 이용하는 클라이언트로부터 독립적일수 있도록 해준다.
* 각각의 알고리즘들은 상황에 따라 적절할 때가 존재한다. 클라이언트는 사용할지 안할지 모르는 알고리즘들까지 전부 필요하지 않다.
* TexCompositor - linebreaking 에 대해 TeX 알고리즘을 적용, 구현한다. 이 방법은 한번에 문단 전체에 대해서 전반적으로 linebreak를 최적화하려고 한다.
Composition 은 Compositor 객체의 참조를 가진다. Composition 이 텍스트를 다시 형식화할때, Composition 은 Compositor 에게 해당 책임을 넘긴다. Composition의 클라이언트는 사용하려는 Compositor의 참조를 받음으로써 사용해야 할 Compositor을 구체화시킨다.
StrategyPattern 은 다음과 같은 경우에 이용할 수 있다.
* 당신은 알고리즘의 다양함을 필요로 한다. 예를 들어, 당신이 알고리즘을 정의하는 것은 사용메모리/수행시간에 대한 trade-off (메모리를 아끼기 위해 수행시간을 희생해야 하거나, 수행시간을 위해 메모리공간을 더 사용하는 것 등의 상관관계)이다. Strategy 는 이러한 다양한 알고리즘의 계층 클래스를 구현할때 이용될 수 있다.
* StrategyPattern을 이용함으로써 복잡함이 노출되는 것과 알고리즘 구체적인 데이터 구조로 가는 것을 피할 수 있다.
* 모든 제공된 알고리즘에 대한 일반적인 인터페이스를 선언한다. Context는 ConcreteStrategy에 의해 구현된 알고리즘들을 호출하기 위해 이 인터페이스를 이용한다.
* Strategy 인터페이스를 이용하여 알고리즘을 구현한다.
- HelpOnActions . . . . 12 matches
모니위키는 액션이라는 확장기능을 제공합니다. 액션은 현재 보고 있는 페이지 혹은 전체 위키에 대한 특별한 확장 기능을 말합니다. 매크로와는 다르게 위키 페이지에 직접 매크로를 삽입해야 하는 것이 아니라 그 페이지를 다른 방식으로 보는 방법을 제공합니다. 예를 들어 페이지를 편집하는 기능를 `edit` 액션이라고 하며, 북마크를 하는 기능은 `bookmark`액션을 통해 이루어지고, 전체 검색, 제목 검색, 역링크 검색 등등 여러가지 기능을 제공합니다. 이러한 액션은 플러그인 방식으로 다른 기능을 손쉽게 확장할 수 있게 하여 위키의 풍부한 기능을 가능하게 만들어주고, 일부 액션은 페이지의 내용과 상관 없는 기능을 제공하기도 합니다. (페이지 지우기 기능은 DeletePage 혹은 페이지 이름을 바꿔주는 RenamePage 기능)
이러한 기능은 시스템에 설치하거나 일부 기능을 비활성화 시키는 것이 가능하며, 확장을 통해 새로운 기능을 넣을 수도 있습니다. (자세한 내용은 HelpForDevelopers를 통해 참조하세요)
액션의 일부 가장 기본적인 기능은 페이지의 맨 하단의 링크에 제공되거나 상단의 아이콘 메뉴에 제공되기도 합니다. (현재 사용하시는 테마에 따라서 달라질 수 있습니다)
다음의 내용은 모니위키에서 기본적으로 제공되는 액션이며, 아래에 기술된 액션의 일부는 시스템에 따라서 비활성화 되어 사용할 수 없을 수도 있습니다.
다음의 액션 목록은 기본적 기능으로 사용자에게 특별히 노출되지는 않지만 '''내부적'''으로 상단/하단의 메뉴에서 사용되는 거의 기본적인 액션 목록입니다.
* `userform`: UserPreferences 페이지에서 사용되는 내부 액션
* `titleindex`: 페이지 목록을 텍스트로 보내거나 (Self:?action=titleindex) XML로 (Self:?action=titleindex&mimetype=text/xml'''''') 보내기; MeatBall:MetaWiki 를 사용할 목적으로 쓰임.
* `fullsearch`: `FullSearch` 매크로와 함께 사용되는 전체 페이지 검색 액션
* `titlesearch`: `TitleSeach` 매크로와 함께 사용되는 제목 검색용 액션
- HelpOnUserPreferences . . . . 12 matches
== 사용자 환경 설정 ==
위키위키를 여행하시는데에 사용자 등록을 하시면 편리합니다. 사용자 등록을 마친 후에는 우상단의 아이콘에 [[Icon(home)]]이 보이게 되며, 자신만의 [위키홈페이지]를 만들어 보실 수도 있습니다.
* '''[[GetText(Name)]]''': 사용자의 실제 이름 혹은 별명. WikiName 형식으로 만들면 편리합니다.
* '''[[GetText(Password)]]''': 비밀번호는 다른사람이 쉽게 알거나 추측할 수 없는 것을 사용하시기 바랍니다.
* 웹상의 비번은 쉽게 노출될 가능성이 많으므로 가능한 노출되어도 큰 문제가 되지 않을 비밀번호를 사용하시기 바랍니다.
* '''[[GetText(Password repeat)]]''': 초기 사용자 등록시에 나타납니다. 바로 위에서 입력했던 비밀번호를 확인하는 단계로, 조금 전에 넣어주었던 비밀번호를 그대로 집어넣어 주시면 됩니다.
* '''[[GetText(Email)]]''': 자주 쓸 이메일 주소. 이메일 주소를 넣어주면 원하는 위키페이지에 대하여 그 변경점을 구독신청하거나 취소하실 수 있습니다. 비밀번호를 잊으셨을 경우에도 이 이메일 주소를 사용해 새로운 비밀번호를 등록하실 수 있습니다.
* '''[[GetText(User CSS URL)]]''': 자신이 원하는 CSS로 변경하고 싶을 경우에 사용합니다.
* '''[[GetText(Subscribed wiki pages (one regex per line))]]''': 모든 페이지의 변경알림을 받아보고 싶은 경우에 '''`.*`''' 를 집어넣으시면 됩니다. (위키위키가 많은 변경이 있는 경우 권장하지 않습니다.) 각 페이지를 보고싶은 경우에는 각각의 페이지 이름을 줄 단위로 넣으시면 됩니다. 정규식에 익숙하신 사용자의 경우에 정규식을 사용하실 수도 있습니다. 설정에 따라서 상단의 아이콘 툴바에 [[Icon(email)]]이 나타날 수 있으며, 이메일 아이콘을 누르면 해당 페이지를 구독하는 폼이 뜨게 됩니다.
/!\ 이메일 구독은 `config.php`에서 설정을 해야 합니다. 자세한 내용은 SubscribePlugin을 참조하세요.
- HowToStudyDesignPatterns . . . . 12 matches
제가 일전에 썼던 글을 인용하겠습니다:
패턴도 마찬가지인데, 대부분 그 패턴의 필요성을 체감하지 못한 채 그냥 도식적 구조를 외우기에만 주력하는 사람이 많습니다만, 사실 그렇게 되면 어떤 경우에 이 패턴이 필요하고 어떤 경우에는 사용하면 안되는지 등을 알기 힘듭니다. 설령 책에 나온 가이드를 암기했더라도요. 자신의 삶 속에서 문제의식이 구체적으로 실제 경험으로 형성되지 않았기 때문입니다.
따라서, 패턴 하나를 공부할 때에는 가능한 한 실제 예를 많이 접하도록 해야 합니다. 그리고 패턴을 적용하지 않은 경우에서 그 필요를 느끼고 설명할 수 있게끔 다양한 코드를 접해야 합니다.
어떤 특정 문장 구조(as much as ...나, no more than ... 같은)를 학습하는데 최선은 그 문장 구조를 이용한 실제 문장을 나에게 의미있는 실 컨텍스트 속에서 많이 접하고 스스로 나름의 모델을 구축(constructivism)하여 교과서의 법칙에 "기쁨에 찬 동의"를 하는 것입니다.
주변에서 특정 패턴이 구현된 코드를 구하기가 힘들다면 이 패턴을 자신이 만지고 있는 코드에 적용해 보려고 노력해 볼 수 있습니다. 이렇게 해보고 저렇게도 해보고, 그러다가 오히려 복잡도만 증가하면 "아 이 경우에는 이 패턴을 쓰면 안되겠구나"하는 걸 학습할 수도 있죠. GoF는 한결 같이 패턴을 배울 때에는 "이 패턴이 적합한 상황과 동시에 이 패턴이 악용/오용될 수 있는 상황"을 함께 공부하라고 합니다.
이런 식의 "사례 중심"의 공부를 위해서는 스터디 그룹을 조직하는 것이 좋습니다. 혼자 공부를 하건, 그룹으로 하건 조슈아 커리프스키의 유명한 A Learning Guide To Design Patterns (http://www.industriallogic.com/papers/learning.html'''''')을 꼭 참고하세요. 그리고 스터디 그룹을 효과적으로 꾸려 나가는 데에는 스터디 그룹의 패턴 언어를 서술한 Knowledge Hydrant (http://www.industriallogic.com/papers/khdraft.pdf'''''') 를 참고하면 많은 도움이 될 겁니다 -- 이 문서는 뭐든지 간에 그룹 스터디를 한다면 적용할 수 있습니다.
그런데 사실 GoF의 DP에 나온 패턴들보다 더 핵심적인 어휘군이 있습니다. 마이크로패턴이라고도 불리는 것들인데, delegation, double dispatch 같은 것들을 말합니다. DP에도 조금 언급되어 있긴 합니다. 이런 마이크로패턴은 우리가 알게 모르게 매일 사용하는 것들이고 그 활용도가 아주 높습니다. 실제로 써보면 알겠지만, DP의 패턴 하나 쓰는 일이 그리 흔한 게 아닙니다. 마이크로패턴은 켄트벡의 SBPP에 잘 나와있습니다. 영어로 치자면 관사나 조동사 같은 것들입니다.
우리가 갖고 있는 지식이라는 것은 한가지 표현양상(representation)으로만 이뤄져 있지 않습니다. "사과"라는 대상을 음식으로도, 그림의 대상으로도 이해할 수 있어야 합니다. 실제 패턴이 적용된 "다양한 경우"를 접하도록 하라는 것이 이런 겁니다. 동일 대상에 대한 다양한 접근을 시도하라는 것이죠. 자바로 구현된 코드도 보고, C++로 된 것도 보고, 스몰토크로 된 것도 봐야 합니다. 설령 "오로지 자바족"(전 이런 사람들을 Javarian이라고 부릅니다. Java와 barbarian을 합성해서 만든 조어지요. 이런 "하나만 열나리 공부하는 것"의 병폐에 대해서는 존 블리스사이즈가 C++ Report에 쓴 Diversify라는 기사를 읽어보세요 http://www.research.ibm.com/people/v/vlis/pubs/gurus-99.pdf) 이라고 할지라도요. 그래야 비로소 자바로도 "상황에 맞는" 제대로 된 패턴을 구현할 수 있습니다. 패턴은 그 구현(implementation)보다 의도(intent)가 더 중요하다는 사실을 꼭 잊지 말고, 설명을 위한 방편으로 채용된 한가지 도식에 자신의 사고를 구속하는
- Java/문서/참조 . . . . 12 matches
채팅 UI를 짜려고 여러가지를 하다가 대화명을 입력하였을 경우에 그 대화명을 저장하려고 String 형태의 대화명을 전달인자로 사용하려고 하였는데 되지 않았다. 그래서 MSN을 통해서 상민이 형에게 그에 대해서 물어보았다. 상민이형이 MSN으로 몇십분에 걸쳐서 알려 주었다.(감사~) 이 문서에 나와 있는 내용에 대해서 아시는 분들도 있겠지만, 저와 같이 잘 모르는 분도 또한 있을거 같기에 도움이 되기를 바라면서 상민이 형이 알려준 내용을 간추려 보았다.
== 구체적인 내용 ==
Java 에서는 new 와 delete 가 없지만 그 대안으로 참조형을 이용한다.
값을 이용할 수 있는 형을 말한다.
하면 될까? 안된다.(관련 내용은 제본책 3-3에 나와 있음)
그냥 양을 가리키는 용어이다.
Java이전에 태어난 상업용 언어들은 대다수 char까지를 하나의 기본 자료형으로 많이 차용했고
문제는 200KB의 사소한 용향이 아닌 그게 2메가 짜리의 문서의 경우는 문제가 된다.
문자열의자료의 경우 StringBuffer 를 사용하는 걸 권장한다.
- JavaStudy2003/두번째과제/곽세환 . . . . 12 matches
// KillRoach를 어떻게 사용할까???
= 내용요약 =
객체와 객체가 통신을 하는데 이용된다.
특정 종류의 객체들에 대해 일반적으로 적용할 수 있는 변수와 메소드를 정의하고 있다.
클래스를 실제로 사용할 수 있도록 선언하는 것
상위클래스가 가지고 있는 특성들을 하위클래스에서 사용할 수 있다.
여러개의 클래스가 같은 메시지에 대해서 각자의 방법으로 작용할 수 있는 능력이다.
아직 상속을 읽고 있는 중이기 때문에 모르는 것이지요^^. private 과 protected 는 상속이 이루어지지 않으면 똑같이 사용이 됩니다. 하지만 상속이 이루어진다면 의미는 틀려지죠. 만약 '''자동차''' 라는 객체가 있다고 봅시다. 그런데 이것은 굉장히 추상적인 개념이지요. 이 '''자동차''' 의 하위 개념인 '''트럭''' 과 '''버스''' 와 '''승용차''' 를 '''자동차'''에서 상속받아 만들었다고 합시다. 그랬을 때 '''자동차''' 가 가지는 어떠한 상태는 '''트럭''' 과 '''버스''' 와 '''승용차'''도 역시 가지고 있을 수도 있습니다. 이런 경우 protected 로 선언해 주면 그 상태를 상속받을 수 있다는 것이지요. 하지만 외부에서 접근은 불가능하다는 사실은 변함이 없습니다. 하지만 public 은 외부에서 접근이 가능하게 되는 것이지요. 한번 직접 코드로 만들어보세요. 어떻게 다른지 채험하는게 가장 이해가 쉬울겁니다.
= 과제 추가 내용 =
* 내용을 1페이지 이내로 줄어보세요.
- LUA_5 . . . . 12 matches
해쉬 테이블로 사용하기
여기서 ["a"] 는 키 값으로 사용 되었고 1는 ["a"]에 맴핑 된 값으로 사용 되었습니다. 키 값은 단순히 값으로 말고 변수로도 사용 할 수 있습니다.
대신 값으로 키값을 사용할때와는 다르게 변수에서는 테이블명에 . 로도 변수를 참조할 수 있습니다. HashT2["a"] 로도 참조 가능합니다.
그렇기 때문에 테이블은 배열로도 사용 될 수 있습니다. 그럼 배열에 추가적으로 insert 하고 remove 해 보겠습니다.
그리고 만약 배열로 사용하는 테이블 내의 값들을 정렬하고 싶으면 table.sort를 사용하면 됩니다.
지금까지는 간단히 테이블을 자료구조로 사용하였는데, 루아에서는 거의 모든 것이 테이블의 키로 사용 될 수 있기 때문에 테이블과 함수를 연결 할 수 있습니다.
>> return { Go = Go } -- 여기서 local function Go를 반환하므로 Car에 대한 맴버 함수로 사용할 수 있다.
간단하게 테이블에 대해서 배웠습니다. 테이블은 루아에서 가장 중요한 타잎이고 더 다양하게 활용할 수 있습니다. 나중에 좀 더 깊이 테이블에 대해서 써 보겠습니다.
- NumberBaseballGame . . . . 12 matches
2. 이제 사용자에게 3 자리의 숫자를 입력받아 컴퓨터가 만든 수와 비교합니다.[[BR]]
2-1. 사용자에게 받은 수와 컴퓨터가 만든 수가 같은 수에 같은 위치면 '스트라이크'.[[BR]]
2-2. 사용자에게 받은 수와 컴퓨터가 만든 수가 같은 수에 다른 위치면 '볼'.[[BR]]
이때 사용자가 395라는 숫자를 입력하면 '1 스트라이크 1볼'이 됩니다.[[BR]]
사용자는 스트라이크와 볼수로 컴퓨터가 만든 수를 추리하여 찾는 것입니다.
정답 혹은 사용자가 부르는 숫자에서 중복된 숫자가 가능합니까?
* 정답이 373이었는데, 사용자가 369를 불렀습니다.
* 정답이 373이었는데, 사용자가 132를 불렀습니다.
* 정답이 373이었는데, 사용자가 339를 불렀습니다.
* 정답이 373이었는데, 사용자가 333을 불렀습니다.
||도전자||총개발시간||소스라인수('''주석제외''')||사용언어|| Source ||
반대로, 사용자가 숫자를 부르면 컴퓨터가 맞추게 하는 방법도 있습니다. 두 가지를 합하면 컴퓨터와의 대결이 됩니다. ^^ (그런데 거의 이기기가 불가능합니다.) 소스는 [http://my.netian.com/~sshiskom/file/python/baseball.py 여기]에.
- PairProgramming토론 . . . . 12 matches
PairProgramming 자체에 대해 조금 설명을 드리자면, 우선 이건 Driver와 Observer로 역할 분담이 되는데 정해진 게 아니고, 계속 바뀝니다. 운전하는 사람이 있고, 옆에서 코치하는 사람이 있는 거죠. 실제로 타이핑을 하는 사람은 타이핑이란 작업에 몰두하느라 지력을 좀 빼앗깁니다. 대신 이걸 관찰하는 사람은 여유가 있으므로 이것 저것 객관적인 코치를 해줄 가능성이 높죠. 그런데, 예를 들어, Driver가 코딩을 하다가 Observer가 "그게 아냐 이렇게 하면 더 좋아"하면서 설명을 하는데 잘 이해를 못하겠다 싶으면 키보드를 밀어주며 "니가 해봐"라고 말합니다. 역할 바꾸기가 되는 거죠. 이게 아니더라도, 가능하면 두 사람이 지속적으로 역할 바꾸기를 하면 좋습니다. (ExtremeProgramming에선 타이머를 이용해서 정해진 시간이 되면 역할 바꾸기를 하는 예도 있습니다) 뭐 어찌되었건, 피곤하다 싶거나 지금 머리가 잘 안돌아간다 싶으면 옆 사람에게 키보드를 넘기면 되죠.
조금 장기적인 면에서 그리고 팀의 수준에서 생각해 보세요. 문제많은 코드만 만들어내는 사람과, 남들이 이해하기 힘든 코드만 만들어내는 사람이 각자 나름의 코드를 만들어내는 팀의 전체 효율과, 항상 왕도사의 코치를 받는 왕초보와, 왕초보의 이해도에 맞추기 위해 노력하는 왕도사로 이루어진 팀(왕초보/왕도사 모두 "뭔가 학습"하는 것이 있게되죠)의 전체 효율. 어떨까요? 더군다나, 그 둘이 PairProgramming을 하면 할 수록 왕초보는 왕도사 수준에 근접합니다 -- 엄청나게 빠른 성장을 목격할 수 있죠. 굳이 초기 단계의 비용이 있다고 쳐도, 그건 일종의 투자로 봐야 할 겁니다. --김창준
XP 방법 중에서 가장 손쉽게, 곧바로 적용할 수 있는 것 중 하나가 PairProgramming입니다. 물론 여타의 XP 방법들과 마찬가지로 최고의 효과를 위해서는 다른 실행법을 함께 수행해야 합니다만, 이것 하나만이라도 제대로 하면 가시적인 차이를 느낄 것입니다. 특별히 어떤 지식보다는 마음 자세와 태도가 더 중요합니다. --김창준
ps. 로코즌에선가.. XP를 적용하고 있다고 하는데, 어떻게 적용되고 있는지 궁금해지네요.
이 말은 자칫하면 사람들을 호도할 수 있다고 봅니다. 할려면 정확하게 레퍼런스를 하고 인용부호를 달고 자신의 의견은 분리를 하세요. pair-implementation이 "앞서 언급한 두가지에 비하면 택도 없다"는 말은 어디에 나오는 말입니까? 그냥 자신의 생각입니까? 그리고, XP에서는 implementation time과 analysis, design time이 따로 분리되지 않는 경우가 많습니다. 코딩을 해나가면서 design해 나갑니다. Pair로 말이죠.
''이 말은 자칫하면 사람들을 호도할 수 있다고 봅니다. 할려면 정확하게 레퍼런스를 하고 인용부호를 달고 자신의 의견은 분리를 하세요. pair-implementation이 "앞서 언급한 두가지에 비하면 택도 없다"는 말은 어디에 나오는 말입니까? 그냥 자신의 생각입니까? 그리고, XP에서는 implementation time과 analysis, design time이 따로 분리되지 않는 경우가 많습니다. 코딩을 해나가면서 design해 나갑니다. Pair로 말이죠. (창준선배님이 쓴 글중)''
저는 PairProgramming의 희망을 왕도사와 왕도사가 같이 했을 때 정말 그 힘이 발휘될 것이라는 것에서 찾고 싶습니다. 형이 말하는 왕도사와 왕초보 그룹은 학교나 제자를 기르고 싶은 왕도사에게 해당하는 사항이 아닐까요? 실제 사회에서 왕도사와 왕초보 그룹이 얼마나 효용성이 있을까요?
안목을 넓혀서 본다고 해도 저는 큰 매력이 느껴지지 않습니다. 무협 영화를 보면 일반적으로 제자는 대부분 스승을 따르고 섬깁니다. 하지만 현대 사회에 와서는 이것은 극히 일부의 사람들에게만 해당하는 내용이고 대부분은 개인적인 성향이 훨씬 강합니다. 이런 상황에서 과연 왕도사가 미래를 내다보며 왕초보를 가르칠 것인가를 생각해봐야 할 것입니다. 물론 교육을 목표로 살아가는 왕도사라면 왕초보를 가르칠 수 있을지 모르나 그 효용 범위는 겨우 몇 왕초보에게만 주어지는 기회가 아닐까요? 다른쪽으로 빠질려구 하네요..
왕도사와 왕초보를 어떻게 정의하느냐에 따라 좀 다를 수 있겠습니다. 제가 늘 말하듯이 "전문가"끼리의 PairProgramming은 일반적으로 성공적일 확률이 높습니다. 하지만 전문가일수록 자신의 프라이드와 에고가 강하기 때문에 PairProgramming의 장점을 충분히 이용 못하는 경우도 있습니다.
그리고 팀 내부에 상대적으로 실력이 부족한 사람이 있을 경우 XP에서는 이 사람을 내보낼 것인지 아니면 그대로 쓸 것인지 여러면(이득/비용)에서 판단을 합니다. 만약 그대로 써야하는 상황이라면 PairProgramming이 아주 핵심적인 요소가 됩니다.
- Polynomial . . . . 12 matches
다항식의 곱셈을 이용하는 프로그램을 작성한다.
하나의 항은 coefficient 와 exponent 로 구성된다. 하나의 항(단항식)을 표현하는 자료구조는 다음처럼 구조체를 사용한다. (여기서는 지수와 밑모두 integer를 사용한다)
* 배열을 사용한 방법
* linked list 를 사용한 방법
이 방법을 사용할때 발생할수 있는 문제점은 memory leakage (메모리 누수)이다. Java같은 경우는 쓰레기 수집기가 있지만 c 는 코더(-_-)가 일일이 사용되지 않는 자원을 회수해줘야 한다. 그렇지 않으면 그 자원을 다시 사용할 수 없게 된다.
n1 = mul(n1, n2); // n1 이 중복 사용되었다..
Node* input(); // 사용자에게 값을 입력받아 새로운 다항식을 생성하여 리턴한다.
* 다항식을 표현하는 클래스를 만들어서 operator overloading 을 사용해도 되겠지만 이는 위에 말한 내용을 이미 구현한 후 이걸 클래스로 포장하는거기때문에 지금수준에서는 무리라고 생각됨... - 임인택
- ProjectZephyrus/Server . . . . 12 matches
+---- information : DB와 같은 사용자 정보 관리 패키지
.classpath : Eclipse 용 Java의 환경 설정
.project : Eclipse용 project 세팅 파일
java_win.bat : Windows용 RunServer 실행 batch파일
javac_win.bat : Windows용 프로젝트 컴파일 batch파일
javac_zp : ZeroPage Server용 컴파일 bash script (어느 서버에서나 동작 할꺼 같다.)
ProjectZephyrusServer.jcp : JCreator용 project파일
ProjectZephyrusServer.jcw : JCreator용 workspace 파일
|||||| "end"로 종료, VM 1.3에서 돌아감, 기본 port 22000, 단일 접속만 허용||
||java -jar {{{~cpp PZServerForZeroPage.jar}}} Port번호(Default 22000)|| [http://165.194.17.15/~neocoin/ProjectZephyrus/Server/PZServerForZeroPage.jar jar]||ZeroPage용||
||'''내용'''||'''관련클래스'''||'''담당'''||'''진행율'''||
||원하는 사용자 강제 종료||{{{~cpp SocketManager, InfoManager}}}||.||.||
- ZeroPageServer/set2002_815 . . . . 12 matches
2002.8.15 일에 이루어진 ZeroPageServer 세팅에 에 관련 내용 기록
* Admin 툴은 누가 만들었고, 정확한 용도는 무엇인가? 모든 게시판이 표시되지는 않는다, 이유는 무엇인가?
''게시판 Admin 툴을 이야기하는건지? 맞다면.. '''만든이는''' ["sun"]이고 '''용도'''는 게시판 생성/삭제를 쉽게 하려는 의도에서 였으며, '''모든''' 게시판이 표시되지는 않는것은 툴을 만들었던 시점이, 자게,질/답 등 이미 몇몇 게시판이 만들어진 이후였기 때문(변경을 게을러서 안했음). --["sun"]''
* ["CVS"] 이용가능 (["neocoin"] 에게 신청)
* Web에서 CGI권한을 허용 받으려면 관리자(["neocoin"])에게 문의
* 이번 세팅의 목적은 '''좀더 편한 패키지 관리, 안정된 환경'''을 위해서이다. 그래서 상민이의 물망에 오른 것이 Zentoo Linux와 Debian, FreeBSD 정도 인데, 기본적으로 Linux를 택해서, FreeBSD와 Zentoo Linux와 Debian 비교에서 사용자 층과 편이성면에서 Debian이 더 우수하게 느껴져 선택하였다.
* 설치는 한달여 즈음 전에 릴리즈된 woody를 기본으로, 일본의 미러 소스 리스트를 이용해서 네트웍 설치를 하였다. Redhat측에서 시작부터 rpm에 대한 체계적 통합적 관리가 되었다면, 현재의 deb 패키지 처럼 완전 네트웍 설치를 할수 있었을텐데 안타까운 점이다.
* [[HTML( <STRIKE> ext3 적용 </STRIKE> )]]
* [[HTML( <STRIKE> 사용자 기본 ls세팅 컬러로 </STRIKE> )]]
* [[HTML( <STRIKE> JSP 권한 설정 </STRIKE> )]] : 사용자 woodpage에게만 줌
* {{{~cpp /home/jspVirtualPath}}} 에 해당 아이디의 symbolic 링크를 걸면 됨. resin.conf에서 path-mapping 사용
* [[HTML( <STRIKE> Servlet 사용 정책 마련 해야 함</STRIKE> )]]
- html5/web-workers . . . . 12 matches
* 처리할 내용이 많아지면 사용자는 페이지를 조작할 수 없음
* 이 문제를 해결하기 위해 Web workers를 사용
= 워커를 이용한 프로그래밍 =
* 워커와의 메세지 통신은 postMessage()를 이용
// 전역함수 postMessage 사용
* 워커생성 : Worker 이용
// worker.js이용해 생성
* 공유 워커 생성 : SharedWorker 이용
= 워커에서 사용가능한 변수, 메서드, 생성자 =
* window, document사용 불가
* onmessage(), postMessage(), onconnect()등 사용가능
- 기술적인의미에서의ZeroPage . . . . 12 matches
주소 영역을 8bit 만 사용, 상위 8bit 은 00 으로 가정하고 addressing 을 하면
(제로페이지 명령어들은 명령어의 첫번째 주소 바이트를 0으로 가정하고 단지 두번째 바이트만 가져옴으로서, 짧은 코드와 짧은 수행시간을 가져다준다. 주의 깊게 제로페이지 명령을 사용하는 것은 코드 효율에 확실한 개선을 가능케 한다.)
이는 데이터를 임시로 저장하는데에 사용하기 용이하고 당시 CPU의 적은 레지스터의 양을 보완하려는 것이었다.
1980년대에는 컴퓨터 사용자들이 아마 상상도 할수없을 만큼 1970년대의 CPU 만큼 빠르고 그 보다 더빠른 메로리가 사용었다. 그러면서 대용품으로 메인 메로리를 사용하고 아주 적은 양의 레지스터를 갖는 것이 이치에 합당했다. 16비트 버스를 갖는 컴퓨터의 제로페이지 내의 각 메모리가 아마도 한 바이트로 어드레싱되기 때문에 제로페이지내의 메모리가 아닌 곳보다 제로페이지내의 메모리를 접근하는데, 8비트 데이터 버스를 갖는 머신에서보다 더욱 빨랐었다.
예를 들자면 the MOS Technology 6502 는 오직 6개의 non-general 목적을 가진 레지스터를 가지고 있었다. 결과적으로 이는 것은 제로페이지라는 개념을 폭넓게 사용하였다. 많은 명령어들이 제로페이지와 제로페이지가 아닌 어드레씽을 위해서 다르게 쓰여졌다.
IC테크놀로지의 발전이 더욱 적은 비용으로 CPU의 레지스터를 늘리게 되었고 이에따라서 RAM을 액세스하는 것 보다 더욱 빠른 CPU명령어를 처리하게 되었기 때문에 제로페이지는 이제 대개는 역시적인 의미를 갖는다. 그럼에도 불구하고, 어떤 컴퓨터 아키텍처는 여전히 다른 목적을 위해서 제로페이지라는 개념을 제공하기는 한다; 예를 들자면 인텔의 x86은 인터럽트 테이블의 사용을 위해서 512워드의 공간을 사용한다.
- 네이버지식in . . . . 12 matches
가장 먼저 떠오른 건, 이용자 수였다. 이용자 수가 엄청나게 많다는 점이 지식in서비스를 활발하게 해 주었다. 이용자 수가 많아진 이유는 여러 가지가 있겠지만, 텔레비전 광고까지 낼 정도로 홍보를 해서 그렇지 않을까? 반면 위키 홍보는 몇 번인가 하고는 그 뒤로는 사람들이 알아서 쓰기를 바랬던 것으로 보인다. 알려지지 않은 서비스가 아무리 많은 장점이 있다 한들 사람들이 알아야 쓸테니까, 위키 사용이 활발하지 않은 건 일단 덜 알려져서라고 생각한다.
다음으로는 익숙하지 않은 형식이었다. 아예 인터넷을 처음 만나는 사람이라면 익숙한 형식이 있지도 않겠다만, 많은 사람들이 글을 쓸 때는 게시판에 제목과 이름과 내용정도가 달린 게 글 형식이고, 글 제목이 목록으로 한 페이지에 나오는 형식이 익숙한 형식일 것이다. 때문에 전부 '''내용'''처럼 생긴 위키를 보고는 일단 다르게 생긱 형식에 바로 적응하지는 못할 것이다. 쓰기 어렵지는 않겠지만 말이다. 때문에 위키가 엄청난 장점을 가져서 적응하는 노력을 들이고 싶을 만 하지 않다면 굳이 사용하려 하지 않을 것이다. -[Leonardong]
- 글쎄요. 저는 약간 다른관점으로 보게 됩니다. 네이버 지식인의 성공은 각종 매체의 힘과, 기존에 사용해오던 '게시판'이라는 형식의 '익숙함'에 더해 '보상과 동기부여'가 아닐까 싶습니다.
우선 '위키'라는 개념과 형식은 사람들에게 생소하고 낯설게 다가오게 마련입니다. 기존 '게시판' 에 익숙해져있던 사람들에게 위키의 사용은 하나의 모험으로 작용하겠죠. 사람들에게 있어서 낯설음,생소함등은 곧 거부감으로 직결되기 쉽습니다. 이러한 거부감을 없애려면 굉장한 노력과 시간과 자본이 투자되어야 하겠죠. MS 사의 윈도우즈가 성공한 요인이 뛰어난 기능과 능력이 아닌 '익숙함'이라는 것은 왠만큼 소프트웨어를 알고있는 사람들 사이에서는 상식이죠.
또하나 '보상과 동기부여' 라는 차원의 면에서 생각해 본다면, 네이버는 이미 매체를 통해 어느정도 인지도를 쌓은 후에 그 인지도를 십분 활용하여 '보상과 동기부여'를 제공합니다. 네이버와 위키의 공통점은 참여의 제한이 없습니다. 대부분의 집단에서 파워라는것이 '제한과 배제'에서 나온다고 하셨지만, 네이버의 지식인 '제한과 배제'라기 보다는 '노력(실력)에 따른 보상'이라는 자본주의 정신과 일맥상통한다고 봅니다. '보상과 동기부여' 이것이 네이버와 위키의 가장 큰 차이점이라 생각합니다.
KIN 은 Knowledge In Naver 의 약자가 아니라 지식In -> Knowledge In -> kin 으로 사용하는 것이지요.
- 데블스캠프2004/세미나주제 . . . . 12 matches
* 자료구조 SeeAlso HowToStudyDataStructureAndAlgorithms, DataStructure StackAndQueue 뒤의 두 페이지들의 용어와 내용이 어울리지 않네요. 아, 일반 용어를 프로젝트로 시작한 페이지의 마지막 모습이군요. )
- [STL]의 경우 사용법을 세미나하는것도 좋지만 GenericProgramming 의 개념과 왜 그러한 패러다임이 나왔는지, 그 배경에 대한 설명도 있으면 좋을 것 같습니다 - [임인택]
* 대충 구상하는 내용이
* RevolutionOS 별로 재미없습니다. 다 아는 내용이고, 당시의 장미빛 미래와 지금이 많이 달라진 상황이라, 슬픈 느낌마져 들었습니다. 시청하는데 의의가 있었죠. :) 제 생각은 ZeroPage 역사를 가지고 스냅샷으로 몇장 정도면 어떨까 합니다. 즉석 역할극도 재미있겠네요. 그런데 [1002] 시험은 언제 끝나요? --NeoCoin
* 정 다 필요하시다면 다 쓰셔도 됩니다. 하지만 저희 둘의 생각으로는 위 주제로 첫날 하루를 모두 하는 건 불필요한 것 같습니다. 이번 데블스 캠프의 대상은 아직 ZP 정회원이 되지 않은 이들입니다. 솔직히 (바라지는 않지만) 이들 중 많은 이들이 나갈텐데 그들을 상대로 ZP 역사나 OT에 많은 시간을 할애하는 건 소용이 없다고 봅니다. 그리고 자칫 시작 첫날부터 따분하게 되기 쉬워보입니다. --재동, 상규
장기적이자 단기적이라면, 학회를 이용해서 자신을 갈고 닦는 마음가짐을 가지고 이를 실천하게 만드는 것 시스템을 구성하는 것이 필요합니다. 즉, '''적극적인 활동을 일으키는 시스템''' 이겠지요. 실력은 따라오는 것 같습니다. 더구나 4학년이 되가면서 큰 편차가 나지 않는 것 같습니다. (K대학 전산하신분 분의 말씀인데 동감합니다.) 위의 세미나만 봐도 '하지 못해서'가 아니라 '하지 않아서' 없는것 같습니다. 서로에게 이걸 하는 것을 권하고, 부탁하면서 분담하는 것이 필요한데요. 이러기에 서로가 너무 조심하는 것이 아닐까요.
[STL]을 할때 단순히 자료구조를 사용하는 방법을 같이 보는것도 중요하겠지만 내부구조 (예를 들어, vector는 동적 배열, list은 (doubly?) linked list..)와 같이 쓰이는 함수(sort나 또 뭐가있드라..그 섞는것..; ), 반복자(Iterator)에 대한 개념 등등도 같이 보고 더불어 VC++6에 내장된 STL이 ''표준 STL이 아니라는 것''도 같이 말씀해 주셨으면;; (SeeAlso [http://www.stlport.org/ STLPort]) - [임인택]
- 아! 그리고 template에 대한 내용도.. :-) - [임인택]
=== [데블스캠프2004/금요일] 에 마지막 해야할 토론에 관한 내용들 토의 ===
* [데블스캠프2004] 에 대한 모자 사고 - 단점(아쉬운점), 장점(인상깊으점), 보충할점(2005년에 추가할 내용)
- 데블스캠프2009/수요일후기 . . . . 12 matches
* '''서민관''' - kernal이나 어셈블러 언어 등 전까지 별로 접할 일이 없던 생소한 개념들이 많이 나와서 솔직히 쉽지는 않았습니다. 그래도 OS의 구조나 Ring system 같은 것들은 개념적으로라도 알아두면 괜찮을 것 같네요. 그리고 전날 혁준 선배가 설명해준 dll에 대해 잠깐 다시 복습할 수 있었던 것도 좋았고요. 아쉬웠던 점은 역시 수업이 너무 고수준이라서 대략적인 이해만 하고 넘어가야 했던 것입니다. 그리고 수업 이후에 개인적으로 VMware의 사용법을 가르쳐 주신 것은 정말 감사합니다. 선배가 제 구세주입니다.
* '''박준호''' - 처음으로 해킹과 관련된 내용을 보아서 정말 좋았습니다. 제가 해킹쪽에 관심이 있어서 언젠가 해보고 싶고 보고 싶었는데 오늘 처음으로 경험하게 되어서 좋았구요 저도 한번 공부해야겠다는 생각이 들었습니다.
* '''서민관''' - 계속 말이 많던 객체 지향 프로그래밍. 전날의 추상화 수업에서도 객체의 개념은 잠깐 나왔었고, 개인적으로도 객체에 대해서 조금 더 들을 기회가 있어서 그렇게까지 이해하기가 어렵지는 않았던 것 같습니다. 의사코드나 플로우 차트를 이용한 프로그래밍은 확실히 무작정 코드를 쓰고 보는 것 보다는 플로우 차트 -> 의사코드 -> 실제 코드 순으로 하는 것이 간단하면서도 정확한 프로그래밍을 할 수 있을 것 같아서 괜찮다고 생각합니다.
* '''박준호''' - 객체지향 프로그램 이라는 것에 대해 개념을 잡아놓은 시간 이였습니다. 진짜 제가 코드를 짜지는 않았지만 의사 코드라는 것을 이용하여 한번쯤 객체지향으로 코드를 짜본것도 좋은 경험이 되었습니다.
* [김준석] - 강의 내내 속으로 피말렸다. 강의 도중에 이해하기 쉽게 설명할걸 몇몇 빼먹은게 자꾸 떠올라서 천천히라도 설명하려했으나 설명해놓고 보니 좀 엉뚱한데서 설명해버린 안타까운 현실. 현역 군인이라 OOP 강의에 대해서 그렇게 많은 준비는 못한것이 사실이라 강의할때 도움도 좀 받았고. 휴가 나오기전에 1~2시간씩 코딩없이 강의 할만한 내용을 찾다가 C++을 사용할 1,2학년에게 좀 중요한 내용을 잡게 됬는데.. 휴가 나오고 PPT를 작성하는데 3일동안 하루 3~4번은 고치고 내용추가를 고민하는등 긴장을 좀 많이 탓다. OOP를 이해시키고 학교생활중 설계의 중요성을 몰라 삽질을 반복했기 때문에 그 후에 코딩하기 전에 설계하는법에 좀더 중점을 둔 시간을 가지고 싶었다. 그냥 무작정 달려들어서 Run&Fix도 하기 쉽지 않은 중복많은 2~3백자리 코딩을 하기 보다는 전날 Abstractionism에서 형진이가 말했듯이 20줄 이내의 코딩, 잘 설계된 잘나뉜 코딩은 어딘가를 목표로 갈때 지도나 정보를 모아 쉽고 편한 길로 가는것과 같다. 돈도 절약되고. 안힘들고. 문제가 생겨도 모아온 정보로 해결할수 있는.. 문제를 풀어 결과를 도출해놓는것도 좋지만.. 주위에는 답을 똑같이 도출해놓을수 있는사람이 90%는 될것이다. 그렇다면 짧고 보기쉬운것이 좋겠지. 정말 아쉬운 점이라면 API나 로보코드때 이걸 설명하고 했더라면 들은 학우들에게 더 많은것을 이해할수 있었던 시간일것이라고 생각하는데.. 좀더 빨리 준비했었어야됬어.
* '''서민관''' - 수요일 수업에서 제일 마음에 들었던 부분입니다. 이클립스를 써 본 것도 좋았고, 무엇보다 JUnit test는 정말 마음에 드네요. 앞으로 갈수록 프로그램의 크기가 커질텐데 이클립스를 통한 svn 사용이나 JUnit test나 둘 다 팀 프로젝트용으로는 정말 좋은 기능이라고 생각합니다. 정말 뭐라고 더 칭찬을 해야 할 지 말이 안 나올 정도로 마음에 들었어요. 한 방에 제대로 프로그램을 못 짜는 저한테는 메인 함수 없이도 버그 수정이 가능하다는 건 정말 고마운 기능이죠.
* '''박준호''' - 처음으로 JAVA 에 대해 제대로 코딩도 해보고 접해본 시간 이였습니다. JUnit test 라는 것을 이용하여 팀플에서 얼마나 유용하게 쓰일지는.. 정말 무궁무진 할꺼 같습니다. 저도 빠른 시일내에 까먹지 않고 쓸 수 있게 되었으면 좋겠습니다.
- 데블스캠프2010/셋째날/후기 . . . . 12 matches
* 신기했어요ㅋ 가장 기억에 남던부분이 '룰'에 대하것! 제가 룰에 참 많이 엮여있던것 같구요 학습에서도 적용하고 더 잘 할 수 있을거 같아요ㅎㅎ -[박정근]
2. 논문을 처음 보고 '여기서 가장 중요한 게 뭘까? 그거 위주로 보면 좋을텐데.'라고 생각하면서 전체 내용을 대충 훑어봤는데 생소한 내용이라 뭐가 중요한지 조차 알 수 없었습니다. 나중에 김창준 선배님께서 논문의 제목에 대해서 말씀하셨을 때 제목에 먼저 집중했으면 좋았겠다는 생각이 들었습니다. 제목을 이해했다면 논문에서 다루고자 하는 것이 무엇인지 알기 훨씬 좋았을 것이고, 똑같이 논문을 읽더라도 내용을 파악하기 더 쉽지 않았을까 하는 생각이 듭니다.
또 팀장으로써 팀에게 일을 분배할때나 의견을 규합할 때 모두 '목적을 달성하기 위해 필요한 전략'을 제대로 설정하지 않고 막무가내 식으로 하다보니 단순하게 'J언어의 특징, J언어의 장점, J언어 예제'라는 완전히 가르치는 사람 입장에서의 내용들을 선택하게 되었습니다. 실제 청자의 특징을 고려하지 않은 이러한 선택으로 인해, 결과가 신구조화팀 보다 좋지 않았던 것 같습니다.
* 파이썬의 기본적인 사용법을 배웠습니다. 그림을 그리는 코딩을 하면서 파이썬이 정말 재미있다고 생각하게 되었습니다. 기회가 된다면 따로 공부하고 싶네요~ [김준영]
* python 을 이름만 들어봤는데 이렇게 직접 해보니 정말 재미있었던 시간이었습니다. turtle함수를 이용한 그림그리기 프로그램을 해보니 파이썬에 대한 흥미가 들었습니다. 앞으로 파이썬에데해서 많은 관심을 가지게된 계기가 된것 같습니다. - [양아석]
* Python이라는 언어의 특징에 대해서 알아보고 사용법에 대해 배웠다어요 C에 비해서 편한점이 많은 것 같았고, 개발자 분이 만드실 때 참 재밌게 만든 것 같다는 느낌이 들었어요ㅋㅋ. 거북이를 이용해서 여러 그림도 그려보고 재미있었어요~_~. 설명도 잘 해주셔서 이해하기 쉬웠고 코딩도 생각보다 잘 되서 좋았어요~ㅋPython에대해 좀더 알아보고 싶고 더 재밌는 그림도 그려보려고요~! [박재홍]
* Python, 개인적으로 참 배워보고 싶었던 언어였습니다. 왜냐면 ZP가 사랑하는 언어잖아요... ㅋㅋㅋㅋ 한번 들어보니 새롭긴 했습니다. 작년에 루아를 잠깐 공부해본적이 있었는데 자료형에 대해선 같은 특징을 가지고 있더라고요. 역시 '스크립트 언어는 인터프리터를 사용해서 자료형을 지정하는 것이 유연성이 없어서 그런가보다'라는 생각이 들었습니다. 재미지네요. 그런데 제가 스크립트 언어 하나 정돈 제대로 배워볼 생각인데 파이썬 한번 해봐야겠네요. - [박성현]
* 노트북 고치러 용산 갔다오느라 앞부분 놓치는 바람에 쭉 못들어서 아쉬워요 ㅠ 파이썬 한 번 공부해보고 싶었는데 ㅠ - [윤종하]
* 리버스 엔지니어링 흥미롭네요. 예전에 리버스 엔지니어링이 뭔지 궁금해서 한번 해보려고 했었는데, 어셈블리언어를 몰라서 GG 쳤던 기억이 있었는데... ㅋㅋ 오늘 보니까 어셈블리언어를 배워서 그런지 이해가 되더라고요 -_-ㅋㅋㅋ 그리고 Decompiler 부분도 흥미로웠습니다. "아니 어떤 원리로 소스를 복원시킨거죠?" 라고 물어보고 싶었어요. 그리고 가상화에 대한 내용도 좋았습니다. 가상화의 개념과 하는 이유에 대해서 잘 알 수 있었습니다. 가상화 참 안 쉽죠잉? - [박성현]
- 데블스캠프2011/셋째날/후기 . . . . 12 matches
* 처음 생각한 것은 다른 내용인데 주제를 급하게 바꿔서 테스트 케이스를 미리 만들어오지 못 한 것도 아쉽습니다. 제가 테스트 케이스를 가져왔으면 다른 학우들이 구현할 때 조금 더 편했을텐데ㅜ
* String은 자바를 사용할때 매우 빈번하게 사용하는 클래스라 직접 구현하는게 재미있었어요! 물론 귀찮고 어려워보이는건 넘어갔지만.............
* 새내기가 있었으면 쉬웠을법한 내용이 갑자기 난이도가 상승했네요 -ㅅ-;; C++을 군대가서 대부분 포멧(?) 하고 와서인지 어떻게 해야될지 몰라 멍 하니 있었던게 참... 시간만 그냥 허비했었던거 같아 씁슬했네요a 쩝.. 그래도 다시금 기억나게 되어 좋았습니다.
* String Class를 만들고 java에서 상용하는 것과 같이 String의 함수들을 짜는 시간이었다. 처음 class의 생성자를 만드는데에만 시간을 거의 다 썼다. 생각과는 다르게 많이 어려웠다. 생성자를 만들고 한두개의 함수들을 만들자 시간이 끝낫다. 프로그램을 작성하는데 익숙해 질 때쯔음 끝나서 아쉬었다. 나중에 String class 를 완성시겨봐야겠다.
* 그냥 값을 가지게 하는 식이라면 어떻게든 비슷하게는 만들겠지만 불변객체로 만들라는 부분이나 const 사용 등을 고려하려고 하니까 힘들어지네요. 게다가 함수도 몇 개 못만들고... -_- 평소에 쓰는 string 클래스의 고마움을 절실히 느꼈습니다.
* 작년에도 러플이 재미있어보였는데 알바때문에 못들었는데 오늘도 계절학기때문에 끝날때쯤 오긴 했지만 어떻게 사용하는건지 알게되었습니다. 작년에 콜솔화면만 보다가 직접적으로 눈에 동작이 보이니까 신기해보였는데 역시 간단하게 만든 동작을 바로바로 눈으로 볼 수 있으니까 재미있는것 같네요, turn_right 가 있는줄알고 계속 왜 안돼나 했어요.. ㅋ
* python을 이용한 학습 프로그램이엇다. 로봇을 이용하여 beeper를 줍고 버리고 하며 여러가지 실습 프로그램을 하엿다. 교육용프로그램이라 쉬워보였는데 정작 프로그램을 짜는데 매 마음데로 되지 않아서 고생을 하엿다. rur-ple도 끝나갈 쯔음에 프로그매짜는거에 어느정도 적응이 되서어 미션을 수행할 수 있었다. 게다가 python은 그나마 익숙한 언어라서 재미 있었다.
* 초보자를 위한 RUR-PLE. 우선 1년만에 다시 공부를 하는데 좀더 많은것을 알았지만 프로그램적으로는 나는 발전이 없었구나 생각하게되었습니다. 프로그램을 새로 짜는데 발전이 없었으니까요. 그리고 RUR-PLE을 두번째 했을때 느끼는것은 무조껀 즐기는것이 좋고 단순했으면 하는데 그렇게 안되서 참난해했습니다. 수강생들은 대부분 안들었던 사람들이지만 재학생이어서 난이도 높은걸 할까 생각했었지만 단순한 Harvest문제도 처음 하는 사람들과 비슷한 속도로 풀게 되었죠. 그 원인을 보게 되면 참 재미있죠. 처음에 단순하게 즐기는 초보자는 단순하게 문제를 풀고. 아는 사람들은 아는걸 최대한 이용해서 문제에 최적화 해서 낭비를 줄이려 합니다 그대신 오래걸리죠. 위의 이유로 같은 문제 풀이도 많은 분기가 나오는걸 볼수 있었죠. 시간 제한을 안둬서 그런가. 다음부터는 원할한 진행을 위해 시간제한을 둬봅시다. 마지막으로 RUR-PLE에 대한 감상으로 교육 환경을 만든 사람들은 참 대단하다고 다시한번 생각합니다. 봐도 봐도 재밌긴 하네요. 다음에 이걸 다시 하게 된다면 더욱 재미있게 해보았으면 좋겠습니다.
* 약간 늦게 도착해서 초반 설명을 약간 듣지 못하고 짜게 되었네요. 이 프로그램이 파이썬을 배울 수 있는 용도로 짜여있다고 했는데, 명령어들은 NXT프로그래밍 명령어랑 정말 비슷했다고 생각했어요- (창설의 악몽이 되살아났다?) 간단한 설명을 듣고 1 주워담기를 위해 1을 놓아야하는데, 그게 귀찮아서(프로그래머적 '귀차니즘'면모 발현) 놓는걸 짜고 먹는걸 짰네요. 그 뒤에는 소트를 해야 했는데, 저는 한쪽으로 쭉 밀어 넣으면 좋겠다고 생각했으나.. 그건 소트라기보단 줄맞춤(?)에 가까운거였다고 하시더군요. 아무튼 치완이랑 제가 그걸 짜서 문상 GET! 끝나고나서는 미로도 짰는데 로봇녀석이 이미 방향이란걸 가지고 있다보니 C로 짠거보다 훨씬 쉽게 짰네요.
- 데블스캠프2012/첫째날/후기 . . . . 12 matches
* 첫 날이라 그래도 쉬운 내용을 한다고 했는데 새내기들이 어떻게 받아들였을지 궁금하네요. 하긴 저도 1학년 때 뭔 소리를 하나 했지만 -ㅅ-;;; 그래도 struct를 사용해서 많이 만들어 본 것 같아 좋았습니다. UI는 뭐랄까.. Microsoft Expression은 한번도 안 써 봤는데 그런게 있다는 것을 알 수 있어 좋았습니다. 페챠쿠챠에서는 서로가 어떤 것을 좋아하는지나 어떠한 곳에서 살았는지에 대해서 재미있게 알 수 있는 것 같아 좋았습니다. 아 베이스 가르쳐 달라고 하신 분,, 나중에 학회실로 오세요-.. 미천하지만 어느 정도 가르쳐는 줄 수 있.........
* 첫날이라 나름 쉬운내용을 한것 같긴한데 새내기들은 c언어 하는데도 어려워 한것 같네요. 전 할만했는데 1학년때를 생각하면 머.... 나도 정말 어려웠으니까.... 페차쿠차 역시나 주제 정하는게 어렵지 주제만 정하면 정말 쉬운듯......페차쿠차가 오늘 내용중 제일 재미있네요. 내일 내용도 기대댐.
* 페챠쿠챠 : ...... 자신을 가장 잘 나타낼 수 있는 내용을 다루기는 했습니다. 확실히 제 인생의 가장 큰 축 중 하나니까요. 앞으로도 계속 좋아하는 마음이 변하지 않았으면 좋겠네요.
* qt에 비해 wpf가 조금 쉬울거라는 느낌이 드는군요. 그렇더라도, UI를 다른 툴을 이용해 사용하는건 아직 익숙하지 못하다보니.. 뭐, 잠깐 졸긴했지만 이런걸 할 수 있구나를 알 수 있어 좋았네요.
프로그래밍을 해야하는 신입생 대상(?)의 세션에서는 신입생들의 역량을 잘 알고 진행의 속도나 난이도를 조절해야 한다고 느꼈네요. 이론과 실습의 비율도 적정해야할 것 같구요. 올해 C프로그래밍 담당 교수님이 바뀌면서 후반부에 배우는 내용이 약간 달라진 것 같기도 합니다.
* 늦게 와서 C는 듣지 못하고 UI 프로그래밍부터 참여 했습니다. C로 UI를 만들 수 있는 툴을 배웠는데, 오늘 실습해본 툴은 C#툴이고 사양이 높은 툴인것 같아서 저사양의 다른 툴을 찾아보고 사용할 수 있을 것 같습니다. 내일 웹서버관련된 세미나를 진행하는것 같은데 늦지않고 일찍 와서 유익한 시간이 됬으면 좋겠습니다.
* 첫째 날 데블스 캠프는 정말 재미있었습니다. 우선 C 수업 중에 배우지 않은 문자열 함수와 구조체에 대해 배웠습니다. 또 수업 중에 배운 함수형 포인터를 실제로 사용해(qsort.... 잊지않겠다) 볼 수 있었습니다. 또 GUI를 위해 Microsoft Expression을 사용하게 됬는데, 이런 프로그램도 있었구나! 하는 생각이 들었습니다. GUI에서 QT Creator라는 것이 있다는 것도 오늘 처음 알게 되었습니다. 데블스 캠프를 통해 많은 것을 배울 수 있었습니다.
- 상협/삽질일지/2002 . . . . 12 matches
* AI 오목 하면서, 효율적으로 어떻게 구성할지에 대한 생각을 별로 안해서, 나중에 경우의 수가 많아지자 상당히 힘들어졌다. 그때 한번 날 잡아서 중복되어 보이는 함수들을 다 통합했다. 그 통합하는 시간이 아깝다고 생각했었는데, 한번 통합하자 효율은 극도로 높아졌다. 예전에는 몇개의 기능추가 하면 그 경로를 나름대로 축약을 했었음에도 불구하고 4가지 경로 && 공격 && 방어에 대해서 따로 시간을 내어서 코드들을 작성해야 했다. 그러나 함수들을 최대한 중복되지 않게 축약하자 한번의 기능추가가 바로 공격 && 방어 && 8가지 방향에 대해서 다 적용되는 것이었다. AI 수준 높이는데 드는 노력이 훨씬 줄어 들게 되었다. 효율적으로 프로그래밍을 해야겠다는 것을 막연히 생각하고 있었지만 이 경험으로 인해서 체감을 하게 되었다.
* 오늘은 엄청난 삽질의 하루다. 한것은 하나도 없는데 시간은 벌써 반나절이 지났다. ㅠㅜ 우선 내가 한 삽질 내용을 적어보고 그 이유는 나중에 찾아 봐야 겠다.
* 방금 삽질 하나 해결..Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 이게 메인 함수에서만 되는게 아니라 이 구문을 사용할때는 throws Exception 을 항상 해줘야만 한다는 사실.. ㅡㅡ; 그런데 이 사실을 진작 체감하고 있었다. 그런데 계속 삽질 했다. 그 이유는
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 이게 사용된 바로 그 메소드에서 throws Exception 를 해줘야 하는데 계속 전체 클래스에서 이것을 했었다. 이게 문제의 원인.. 그러나 아직 왜 꼭 throws Exception 구문을 써야 하는지 모르겠고, Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");이게 없는 곳에서 throws Exception 를 쓰면 에러 뜨는 이유도 자세히는 모르겠다. 모르는것 투성.. ㅡㅡ;;
* 지금까지 자바에서 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의 인자 하나 하나에 접근하는 메소드는 만들 수 있겠네여.. 단지 그 모든 내용을 통째로 리턴하는 메소드는 못 만들겠어여.. 이중 배열을 리턴할수가 없어서 통째로 접근하는걸 못했어여.. - 상협''
* 오늘은 간만에 빡센 삽질을 했다. 오픈GL을 하는데, 여러개 반복되는 구문이 많은거 같아서 내 딴에는 함수화 시켜서 편하게 사용해야지 하고 생각하고 함수화를 했다. 그런데 그 과정에서 여기저기 실수해서 겁나게 삽질했다. 실수하고서는 한번 죽 흩어보지 않고 단지 성급하게 빨리 에러를 찾고자 하는 맘에.. 쩝.. 역시 삽질은 정신적인 스트레스를 너무 많이 준다.
- 새싹교실/2011/쉬운것같지만쉬운반/2011.5.3 . . . . 12 matches
- 다섯번째( 치완이랑 용운이 참석: 함수 설명 )
= 공부 내용 =
* 이번 시간은 강사가 여태까지 배웠던 내용을 질문하고, 학생들이 대답을 해보는 시간을 가졌습니다.
5. assert 함수를 사용하는 이유는 무엇인가?
= 안내 내용 =
|| 새싹 || 장용운 || O ||
* 1번부터 9번까지 각자의 생각으로 정리하시오. 수업시간에 들은 내용이 기억나면 기억나는 대로 써도 됨. 아예 개념조차 모른다면 '잘 모르겠습니다' 라고 쓰세요. 그게 아니라면 '''반드시''' 정리하세요.
* 지난 시간 배웠던 것을 반복을 했다. 모두에게 문제에 대한 대답을 전부 들었다. 굉장히 의미가 있었다고 생각한다. 스쳐지나가는 기본들을 다시 다잡았다고 생각한다. 잘못알고 있거나 약간 부족하게 알고 있던 내용들을 스스로 피드백을 줌으로서, 정리하게 하였다. 앞으로 마무리 할 때 쯤 다시 한번 이런 시간을 가져야겠다. - [박성현]
* 선생님의 질문에 답하는 시간을 가졌다. 질문에 답하면서 많이 헷갈렸던 것 같다. 다른 애들의 답변을 들으면서 많은 것을 배운 것 같다. 나도 기본적인 부분을 다시 한 번 공부해봐야겠다. 프로그래밍은 아무리 작은 것이라도 절대 놓쳐선 안 되기 때문에 기본에 충실해야 되니까... - [장용운]
[장용운]
5. assert 함수를 사용하는 이유는 무엇인가?
-용운왕 장곱셈 ㅋ, 64비트 윈도우는 4기가 이상 램도 다 쓸 수 있으나 32비트 양민 윈도우는 4기가 이상 램도 2.8기가 밖에 인식불가
- 새싹교실/2012/부부동반 . . . . 12 matches
* 반드시 ZeroWiki에 작성해주세요. 하위 페이지를 만드는 것도 허용합니다.
* 여러분들이 배운 내용을 정리해주세요. 학습효과가 더 커집니다.
* 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
=== 수업 내용 ===
C/C++의 문법과 활용을 자세하게 설명한 책. 문법을 소개하는데 그치지 않고 변화화는 코드가 실제 프로그램과 하드웨어적으로 어떠한 영향을 일으키는지 비교함으로써 본 스터디의 목적과 매우 잘 부합됨
=== 수업내용 ===
프로그램의 개요를 A4용지 1장 이내에 작성하여 ahnzaz@gmail.com으로 보내주세요.
=== 수업 내용 ===
=== 수업 내용 ===
=== 수업 내용 ===
=== 수업 내용 ===
* 포인터를 활용하 거품 정렬(Bubble Sort) 구현해보기
- 새싹배움터05 . . . . 12 matches
|| 차수_날짜 || 배움주제 (진행자) || 내용 || 비고 ||
[PythonLanguage], [PHP] (WebProgramming), [ExtremeProgramming] (XP를 적용시켜 코드가 아닌 다른 무언가를 만들어 보자 -_-a ), Ghost 사용법, 발표잘하는법, PPT제작비법, OS개발
* 이번에 세미나 및 프로젝트를 할때는 과거에 비슷한 주제로 했던 문서들을 적극 활용하였으면 좋겠습니다. 지금까지 보통 세미나,스터디를 하면 뭐든 새로 만들었는데 그것보다 과거에 했던 것중에서 좋은것들을 잘 모아 편집하고 추가로 필요한 내용들을 넣는것입니다. 그렇게 하여 한가지 주제에 대한 완성도 높고 양질의 문서들을 만들어 나가서, 세미나, 프로젝트가 그 순간에만 활용되고 끝나기 보다는 과거의 것을 정제 하고 과거 했던 비슷한것들을 할 시간에 더 양질의 내용을 채워 나가서 계속 활용하였으면 합니다. -[상협]
지금 따로 메뉴얼을 제작하고 있습니다. 세미나 없이 메뉴얼만 있으면 쉽게 사용가능할 정도로 만들 예정이고요, 이번 [위키설명회2005]에서 다룬 내용도 담을 예정입니다. 그리고 첫 세미나(C프로그래밍)는 제가 할 의향이 있고 준비 중입니다. -[강희경]
7피의 프로젝터는 재학생이 이용할수 없습니다. 교수님만 이용할수 있다고 합니다. 피치못할경우 빌릴수는 있긴 합니다. - [톱아보다]
- 이영호/64bit컴퓨터와그에따른공부방향 . . . . 12 matches
윈도우 커널을 조사하고 그것을 이용하다니.
32비트 -> 64비트 가 되면 기존에 가지고 있던 책들의 내용도 바뀌게 된다.
(C를 사용할 시 Inline Assmbly만을 허용한다.)
* 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++과 같은 현재 패러다임을 따르는 사람들은 결코 나를 넘지 못하리니..."라는 말이 참이 되는 시점이 있다면 "나 역시 그들을 넘지 못하리니."도 참이 되진 않을까 반문해 보세요. 그리고 만에 하나 그렇게 된다면 거기에 만족할 수 있을까 생각해 보세요. 너무 이른 걱정이려나요? (전문성은 분야를 넘어서까지 적용되지는 않는다는 것이 최근 인지과학이 밝혀낸 사실입니다. 반드시 체스 전문가가 바둑을 특별히 잘두거나, 바둑 전문가가 체스를 뛰어나게 잘두거나 하지는 않습니다. 체스 고수가 특별히 IQ가 높고 암기력이 뛰어나거나 하지도 않고요. 한가지를 잘해서 두루 잘하기는 무척 어렵습니다)
- 일반적인사용패턴 . . . . 12 matches
그러다가 해당 페이지를 수정하고 싶으실때가 있으실 겁니다. 잘못된 정보를 바로잡고 싶을때, 내용을 덧붙이시고 싶을때, 토론중인 내용에 참여하시고 싶을때, 또는 토론중인 내용을 정리하여 하나의 문서로 만들고 싶을 때 등등.. 그럴때에는 거침없이 왼쪽 최하단의 'Edit Text'를 클릭하신뒤, 해당 페이지를 수정하시면 됩니다. 위키위키의 공간은 누구에게나 열려있으며, 누구나 수정할 수 있는 페이지입니다.
위키의 특성상 한 페이지가 길어지는 경우가 많습니다. 스크롤을 위해 휠만 사용하는 것보다는 Page Up, Page Down을 적절하게 사용하시는 것이 편합니다. 한쪽손은 키보드, 한쪽손은 마우스.~
* 검색 - 제목으로 찾기와 내용중 단어로 찾기를 지원합니다.
== 페이지 내용 되살리기 ==
* 페이지를 삭제하지 않은 경우 - 한쪽 창에서 상단 오른쪽의 파란아이와 짝짝이 안경(?)을 클릭하시면 해당 페이지의 히스토리와 페이지의 수정내용을 알 수 있습니다. 일단 파란아이를 눌러서 복구하고 싶은 버전을 View 하십시오. 그 다음, URL 입력창에서 action=recall 을 action=raw로 바꾼 후 해당 내용을 다시 복사하시면 됩니다. (이때는 Frame 안에서 작업하지마시고, 위키 페이지를 직접 전체화면으로 하여 해당 URL이 보이는 상태에서 작업하십시오.)
* 페이지를 삭제한 경우 - 짝짝이 안경(diff) 기능이 작동하지 않습니다. 파란아이를 이용하셔서 날린 내용을 얻은뒤 편집해주세요. (조금 번거롭습니다.)
1. 새 이름을 사용할 새로운 페이지를 만든다.
- 정모/2012.3.12 . . . . 12 matches
* 참가자 : [변형진], [김준석], [김수경], [정의정], [강성현], [정종록], [권순의], [박성현], [서민관], [이진규], [추성준], [김태진], [정진경], [장용운], [서지혜]
* Type erasure에 대해서는 마음에 안 들어한다기보다는 어려워한다가 더 적합해보이네요. 하지만 Type erasure가 개선될 것이라는 것은 제가 언급하지 않은 내용입니다. 다만 Java Generics에 관련된 개선이 있다는 이야기는 했지요. - [Kesarr]
당장 학우들이 학교에서 배우는 버전은 아마도 Java SE 5.0과 6일 것이므로 혼란을 피하기 위해 JLS 3e 기준으로 설명했습니다. Java SE 7의 JLS SE7e 에서는 The Diamond <>를 이용한 Type inference가 추가된 것이 가장 큰 특징이지요. 이를테면,
* 생각해보니 ZeroPage에서 세미나 형식으로 공유되는 내용들의 많은 부분이 언어에 편향되어 있는 것 같아요. 저는 아키텍처와 프레임워크, 프로젝트에 관해서도 논의가 이루어지는 것이 바람직할 것이라 생각합니다. 코드와 기술적 이슈는 구하고자 하면 반드시 구할 수 있는 문제이지만 프로젝트는 '프로그래밍과 사람'에 걸쳐있는 문제라 잘 보이지 않고 답이 정해져 있지도 않아 헤메기 쉽다고 생각해요. 답을 구하지 못하고 평생을 사는 사람도 많고
* 제가 바쁜 일은 아니지만 동아리 지원사업, 동아리 방 등등.. 회장님 수고하십니다 ㅋㅋ. 제 개인적으로는 9학점 통계과 수업가서 학점 깔아주기와 전시회 출품 등으로 바쁘게 지내서인지, 이번 학기는 뭔가 일이 많은 것 같습니다. OMS는 저한테 흥미있는 주제였습니다. 최근 안드로이드 프로그래밍 하면서 스레드 간 통신에서 불안전하게 다운캐스팅 할 때 찝찝한 기분이었는데, 머리 속에 정리는 잘 안되지만 나중에 한번 검색해볼 용기는 생긴 것 같습니다. - [정진경]
* 사고가 확장되는 건 언제나 즐거운 일이네요. 수학의 기본 정의를 이용하여 Data type을 설명하신 것을 보며, 놀라웠습니다. 프로그래밍 관련 생각을 할 때 마다, 매번 '아 나의 사고(thinking)의 도메인이 너무 작어 ㅜㅜ'라는 생각을 많이 하였는데, Data type의 정의를 들으면서 '내가 평소에 인지(recognize)하지 못했기 때문에, 깊게 생각해보려고 해도 다른 분야의 개념들이 자연스럽게 생각이 떠오르지 않는구나.'라는 생각을 해보게 되었습니다. 이런 건 계속 연습을 해야겠지요 ㅜㅜㅋ 뒤쪽 부분도 상당히 흥미로웠습니다만.. 어제 몸이 아파서 밤에 잠을 못 잔 관계로; 결국 OMS듣다가 정신이 안드로메다로 날아가서 제대로 못들었네요.. 그리고 회장은 항상 수고하네요. 갑자기 많은 일을 하게 되었을텐데 수고하십니다 ㅋ -[박성현]
* 작년에 OMS를 부활시킨 의도는 OMS를 통해 학술적인 의견들이 자유롭게 공유되길 바라서였는데, 사실 처음에는 그 의도가 충족되지 않아 불만을 가졌던 때도 있었습니다. 자유 주제라 제 기준에 학술적이지 않은 내용들이 너무 많았거든요. 물론 나중에는 학술적인 내용이 아니더라도 OMS를 통해 서로의 관심사와 경험을 공유하는 것이 충분히 의미가 있다는 생각을 하게 됐지만요. 아무튼 이번주 OMS는 모처럼 학술적 기능이 부각되는 시간이었습니다. 저도 OMS를 하게 되면 이런 방향으로 진행하고 싶네요. 능력이 안 돼서 그렇지-_-;
* Type safety를 설명하기 위해 Data type 이야기에서 시작했습니다. Data type에 대한 나름의 정의는 멘토링을 통해 듣고 새싹에서 알차게 우려먹은 내용이었어요. 아마 많은 새싹 교실 선생님들께서 첫 주에 변수와 자료형에 대해 수업을 진행하지 않을까 생각하는데 여러분도 알차게 써먹으시길ㅋㅋㅋ
* Java generics에 대한 내용이 다 이해가 가는 내용임에도 불구하고 내가 설명하면 저렇게 설명 못하겠다는 생각이 들었습니다. 왜 그럴까 생각해봤습니다. 처음에는 '하나를 설명하기 위해선 열 가지쯤 더 알고 있어야하는데 그 열 가지를 몰라서.'가 아닐까 했는데 사실 그보다는 평소에 제가 Java generics를 제대로 사용하고 있지 않아서 그런게 아닌가 싶습니다.
- 졸업논문/결론 . . . . 12 matches
이때까지 살펴본 바, django는 데이터베이스를 이용하는 패턴을 대부분 추상화하여 사용할 수 있도록 지원한다. 모델과 데이터베이스를 연동하여, 주언어인 python으로 모델만 수정하더라도 데이터베이스에 이를 반영할 수 있다. 또한 데이터베이스를 객체로 생각하고, 삽입과 갱신은 객체를 저장하는 것으로, 조회를 객체의 인스턴스를 얻어오는 것으로, 삭제를 인스턴스를 삭제하는 것으로 추상화하였다. 이러한 추상화로 모자란 부분은 사용자가 직접 SQL을 작성할 수 있도록 지원하고 있다.
기존의 웹 어플리케이션을 만들 때 설계한 대로 데이터베이스를 사용하도록 프로그래밍 하는 시간을 줄였다. 기민하게 웹 어플리케이션을 작성할 수 있기 때문에, 개발자는 데이터베이스를 올바로 설계하고 사용자에게 정말로 필요한 기능을 구현하는 데 집중할 수 있다. 또한 실제로 사용하기에 부족한 점이 있더라도, 프로토타입을 만들어 보려면 더할 나위 없이 좋은 프레임워크라고 생각한다.
RoR와 django 같은 경량 프로그래밍 기법이 힘을 얻는 또 다은 이유는, 강력한 표현력을 가진 주언어를 사용할 수 있기 때문이다. Ruby와 python은 스크립트 언어의 성격을 가지고 있으며, 객체 지향 개념과 함수형 프로그래밍 언어의 패러다임을 포함한다. 비록 느려서 시스템 프로그래밍에 사용하기에는 적당하지 않지만, 동적으로 빠르게 변하는 웹 환경에서는 ruby와 python같은 언어가 변화를 손쉽게 따라갈 수 있어 적당하다.
웹2.0은 웹을 플랫폼으로 생각한다. 플랫폼이 바뀌면 언어도 바뀐다. 웹 2.0이후에는 변화가 더욱 빨라질 것이고, 변화에 알맞는 새로운 개념과 기술과 언어가 생겨날 것이다. 하지만 기존에 널리 사용하던 기술은 변화를 맞더라도 쉽게 자리를 내주지는 않을 것이다. 따라서 변화를 만들어가는 입장에서는 기존 플랫폼, 기술, 언어와 연동할 수 있는 연결고리를 만들어서 기존의 것은 그대로 사용하면서 더 나은 것을 보여주어야 한다. Django의 사례는 기존 데이터베이스를 그대로 사용하면서도 사용자에게는 추상화된 데이터 저장고를 제공하는 변화의 연결고리를 보여주고 있다.
- 책거꾸로읽기 . . . . 12 matches
[강희경]은 보통 책들이 서두에서는 흥미위주의 간단한 이야기를 다루다가 뒤로 갈수록 내용이 어려워지거나 뒷심부족으로 책을 다 읽지 못하는 경우가 많았다. 이 문제점을 해결하는 데 있어서 '''책거꾸로읽기'''가 큰 도움이 되줄 것이라 믿고 한번 시도 해본다.
인도에서 한국 기업의 선전과 그 이유를 다룬다. 인도인의 습성이 괴이하기 때문에 인도에서 사업하기가 어렵다고 한다. 느릿느릿한 여유로움을 가지고 있으며 신용할 수 없다고 한다. 한국 기업의 선전이유는 인도인들에게 '''이 기업은 너희들의 기업이다. 너희들은 XX인이다.'''라는 마인드를 심어주었기 때문이라고 한다.
* 역시 예상했던 대로 인도에서 사업할 생각이 없는 [강희경]에겐 지루한 내용이었다.
타타와 릴라이언스라는 국민기업의 설명과 오너들과의 인터뷰 내용을 다뤘다. 대체적으로 깨끗한 경영과 사원복지, 인재양성에 힘쓰고, 번 돈의 많은 부분을 사회에 환원한다는 것이 보기 좋다.
얼마 전부터 글로벌 기업들은 과거 자기네 땅에서 자기나라 사람들을 고용해 처리하던 고객관리며 회계, 물류 같은 이른바 백 오피스(Back Office)업무를 인도에 넘겨주고 있다. 주된 이유는 비용을 절감하기 위해서다. BPO(Business Process Outsourcing)산업이 번성하면서 인도는 '''세계의 사무실'''이라는 별명까기 얻게 됐다. 인도에서 BPO산업이 숙성한 이유는 여러가지다. 먼저 영어가 되는 직원들을 쉽게 구할 수 있고, IT산업이 발달해 멀리 떨어진 본국 기업과도 불편 없이 일할 수 있다는 장점이 있다. 재밌는 건 여기에 절묘한 '''황금분할'''이론도 숨어 있다는 사실이다. 미국동부와 인도는 딱 12시간의 시차가 있다. 미국인들은 잠을 잘 때 인도인들은 일을 할 수 있다는 예기이다. 적은 비용을 들여서 쉬지 않는 24시간 업무 체제를 가동시키는 셈이다. 하지만 요즘 미국인들의 '''인도인들이 일자리를 빼았는다'''는 불만으로 정치적 문제로 비화되기까지 이르었다.
인도의 7학년(한국의 중학교 1학년) 수학교과서는 영국의 10학년 수준과 비슷하다. 12학년(한국의 고 3) 수학교과서를 서울시 교육청에 분석 의뢰하였더니 '''지금 한국의 보통 대학에서 가르치는 미분방정식이 나온다. 경제학 등에서 쓰이는 함수도 있다. 실용적인 내용이 많으면서 수준이 높다'''라는 평가가 나왔다. 십구단을 외우게 한다고 인도의 수학이 암기 위주인 것은 결코 아니다. 수를 셈하는 기초적인 계산능력을 암기를 통해 어렸을 때부터 키워놓고, 그걸 토대로 더 수준 높은 수학을 체득할 수 있게 하는 것이다.
인도에서 IIT는 명예와 부의 상징이기도 하다. IIT 출신이라는 꼬리표만 붙으면 마이크로소프트, IBM, 인텔 같은 세계적 IT 회사의 채용 담당자들이 서로 모셔갈려구 달려든다. 이런 대단한 인재들의 몸값은 얼마나 될까? 처음에는 월급 2만 루피(50만원)만 주면 만족한덴다.
뒤에서 앞으로 갈 수록 그 내용이 흥미로워서 책읽는 속도에 가속도가 생기는 듯 느껴지고 내용이 쏙쏙 들어왔다.
- 코드레이스/2007/RUR_PLE . . . . 12 matches
* 로봇 사용법 20분
* Python 언어를 사용하여 컴퓨터 프로그래밍 언어를 배울수 있는 환경이다.
* 실제로 로봇에 프로그래밍 해서 그 로봇이 현실에서 자신이 프로그래밍 하는데로 움직이는것을 보면 정말 좋겠지만 여건이 안되는 만큼 -_-; 화면으로나마 그 로봇이 움직이는 것을 보면서 프로그래밍 해볼 수 있다. 여기에서 작성하는 코드들이 무슨 쓸모가 있을까 싶기도 하겠지만, 추후에 실제 로봇의 동작을 프로그래밍해서 넣는다면 여기서 쓰이는 방식과 비슷하게 넣을것이다.(하드웨어적으로 복잡한것을 명령어로 추상화 시킨다음에 그 명령어을 적절하게 복합적으로 사용하여 원하는 행동을 로봇이 하게 만드는 식으로..) 즉 말그대로 로봇 프로그래밍을 간접적으로나 해볼 수 있다.
= 간단한 러플 사용법 =
* repeat 명령어를 써서 여러번 수행해야 하는 함수(명령어 포함)을 한번에 방복 횟수만 지정해서 사용할 수 있다.
== if 문 사용 ==
* 위의 if문과 함수 정의, repeat를 사용하여 아래 화면과 같은 상황을 처리한다.
=== else 문 사용 ===
* not은 아래와 같은 식으로 사용한다.
* 아래와 같은 식으로 사용한다.
* while문을 사용하여 중복된 씨앗의 개수가 2 이상인 임의의 개수일 경우에도 처리 가능하게 위 소스를 수정한다.
* 정말 유익한 내용이다. 주어진 간단한 몇가지 상황을 해결하면 놀라운 기능이 되는것을 볼 수 있다.
- 2005리눅스프로젝트<설치> . . . . 11 matches
Upload:vmware 한글사용서.pdf
== 기타 내용 ==
* 데비안을 사용할려고 했지만 경험부족 때문에 X-WINDOW를 설치를 못해서 다른 버전중에 레드핫 계열인 Fedora core4를 선택했습니다. 레드핫,데비안,Fedora 설치 해서 이 버전이 제일 갠찮은 것같아서 이걸로 사용하기로 결정을 했습니다.
* 만약 하드가 모자르던지 윈도우에서 리눅스를 돌리고자 하시는 분은 위 VMware을 사용하시기 바랍니다.
VM을 사용하시면 만은 용량과 불편함이 덜할것입니다^^;
* 1차 스터디는 명령어와 VI사용 법을 하겠습니다.
* 저도 데비안을 사용하고 싶은데 그 x-window 깔줄몰라서 이러는 중입니다...ㅜㅜ
* 일단은 통일을 하기로 했는데 머 데비안 사용할줄 알면 해도되궁... 아 이번주는 수요일4교시에 스터디있어용....[(shusheng)수생]
- 2학기파이선스터디/ 튜플, 사전 . . . . 11 matches
t[0]=100 # 허용 안됨. 에러 발생
* 튜플을 이용하여 좌우변에 복수개의 자료를 치환할 수 있다.
* 이를 이용하여 두 변수의 값을 쉽게 치환할 수 있다.
== 튜플을 사용하는 경우 ==
3. apply 함수를 사용할 때
4. 그 이외에 고정된 값을 표현하기 위하여 튜플을 사용한다.
- 매핑형에서는 키(key)를 이용해 값(value)에 접근하다.
이런 구조를 사용하는 이유는 키에 의한 검색속도를 빨리하기 위함이다. < 해쉬 (hash) 용법 >
함수를 키나 값으로 활용할 수도 있다.
globals()를 사용하면 전역 영역(모듈 영역)의 심볼 테이블(사전)을 얻는다.
- 5인용C++스터디/더블버퍼링 . . . . 11 matches
더블 버퍼링은 이미지를 화면에 바로 그리는 것이 아니라, 메모리(버퍼)에 먼저 그리고 화면에 나중에 그리는 방법이다. 더블 버퍼링은 화면의 깜빡임을 줄이고, 자연스러운 애니메이션을 위해서 많이 사용된다.
그렇다면 더블 버퍼링을 과연 언제 어떻게 사용해야 할까? 더블 버퍼링의 용도는 꼭 화면 깜박임을 제거하는데만 있는 것은 아니다. 내부 버퍼에서 틈틈이 작업을 할 수 있으므로 아이들(Idle) 시간을 활용하기 위해서 사용할 수도 있고 내부 버퍼를 외부 버퍼보다 더 크게 만들어 스크롤에 활용할 수도 있다.
여기서는 더블 버퍼링의 원리에 대해서만 이해하도록 하고 실무를 할 때 더블 버퍼링을 쓰면 좋겠다는 생각이 들면 적극적으로 활용해 보기 바란다. 다음 예제는 더블 버퍼링을 활용한 갱 화면이다. 갱(Gang) 화면이란 프로그램 제작자를 소개하는 용도를 가지며 일반적으로 숨겨져 있지만 제작자 자신을 표현한다는 면에 있어 다소 멋을 좀 부리는 경향이 있다. 이 예제는 배경 비트맵을 깔고 그 위에서 제작자 목록을 위로 스크롤하는 예를 보여준다.
문자열은 바깥쪽에 회색 테두리를 가지도록 했으며 보기 편하도록 큼직한 폰트를 사용했다. 비트맵 위에서 글자가 움직이지만 깜박임은 전혀 없으며 아주 부드럽게 스크롤되는 것을 볼 수 있다. 만약 이런 화면을 더블 버퍼링으로 처리하지 않는다면 배경 비트맵과 그림이 계속 반복적으로 화면에 나타나기 때문에 깜박임이 심해지고 갱 화면으로서 가치가 떨어질 것이다.
[5인용C++스터디]
- 5인용C++스터디/키보드및마우스의입출력 . . . . 11 matches
키보드로부터 입력이 발생했을 경우 윈도우즈는 포커스를 가진 프로그램에게 키보드 메시지(WM_CHAR)를 보내주며 프로그램은 이 메시지를 받아 키보드 입력을 처리한다. 여기서 포커스(Focus)를 가진 프로그램이란 활성화되어 있는 윈도우를 말하며 한번에 오직 하나의 프로그램만 활성화된다. 아무리 여러개의 프로그램이 동시에 실행되는 멀티 태스킹 환경이라 하더라도 활성화될 수 있는 프로그램은 오직 하나밖에 없으며 활성화된 프로그램만 포커스를 가지고 키보드 입력을 받아들일 수 있다. 왜냐하면 시스템에 키보드는 하나뿐이며 키보드를 사용할 수 있는 사용자도 하나뿐이기 때문이다.
소스를 입력한 후 실행해 보자. 키보드에서 키를 누르면 입력한 문자들이 화면 상단에 출력될 것이다.WndProc을 보면 우선 문자열 str이 선언되어 있으며 이 문자열 변수에 사용자가 입력한 문자들을 모은다. 단 이 변수는 WndProc에 선언되어 있는 지역변수이므로 그냥 선언하면 메시지가 발생할 때마다 초기화되기 때문에 static을 붙여 정적변수로 만들어 두어야 한다. 아니면 아예 WinMain 함수 이전에 선언하여 전역 변수로 만들어 두어도 된다.
WM_CHAR 메시지는 입력된 문자의 아스키 코드를 wParam으로 전달하도록 되어 있으며 우리는 wParam의 값을 읽어 사용자가 어떤 키를 눌렀는지를 알아내게 된다.
키보드로부터 문자를 입력받고자 할 경우는 WM_CHAR 메시지를 사용하면 된다는 것을 배웠다. 문자 이외의 키를 입력 받으려면 WM_CHAR 메시지만으로는 입력을 받을 수 없다. 예를 들어 커서 이동키라든가 Ins, Del, PgUp, 펑션키 등의 키는 문자키가 아니기 때문에 WM_CHAR 메시지로는 검출해 낼 수 없다. 이때는 WM_KEYDOWN 메시지를 사용해야 한다.
키보드에서 A키를 눌렀다 뗐다고 해 보자. 이 때 발생하는 메시지는 순서대로 WM_KEYDOWN, WM_CHAR, WM_KEYUP 세가지이다. 이 중 WM_CHAR 메시지는 사용자에 의해 발생하는 메시지가 아니다. 키보드로부터 전달되는 메시지는 키를 누를 때 WM_KEYDOWN, 키를 뗄 때 WM_KEYUP 두가지뿐이다. 그럼 WM_CHAR 메시지는 어디서 발생할까? 이 메시지는 WM_KEYDOWN에 의해 추가로 발생하는 메시지이며 메시지 루프에서 인위적으로 생성된다. 전의 코드 내용 중의 메시지 루프를 다시 보자.
윈도우즈와 같은 GUI운영체제에서는 키보드보다 마우스가 더 많이 사용된다. 윈도우즈의 공식 입력 장치는 키보드이지만 그래픽 툴이나 DTP, CAD 등의 복잡한 프로그램에서는 마우스가 주요 입력 장치로 사용된다. 키보드 입력 처리를 메시지로 하는 것과 마찬가지로 마우스 입력 처리도 메시지를 받아 처리한다. 마우스 입력에 관한 메시지는 다음과 같은 종류가 있다.
마우스 메시지는 lParam의 상위 워드에 마우스 버튼이 눌러진 y좌표, 하위 워드에 x좌표를 가지며 좌표값을 검출해 내기 위해 HIWORD, LOWORD 등의 매크로 함수를 사용한다. 즉 마우스 메시지가 발생한 위치의 좌표는 (LOWORD(lParam), HIWORD(lParam))이 된다.
- Athena . . . . 11 matches
* Quntization 완성 & Look-Up Table 사용 쉽게 해놓았습니다. (1시간) - 재동
* 상수를 이용한 영상 밝기 변화 (1시간 20분) - 명훈, 재동
* 상수를 이용한 영상 밝기 변화 다이얼로그 작성(20분) - 명훈
* 영상을 이용한 영상 밝기 변화 다이얼로그 작성(3시간) - 명훈
(영상을 이용한 변환에서 0이 있는 영상의 경우 나눗셈할수 없음. 1로 나눌때랑 같게 했음)
* 영상을 이용한 변환에서 버그 수정(30분) - 명훈
* 컬러구현에 대한 마스크 적용하기(3시간) - 재동, 명훈
* 4.1 상수를 이용한 영상 밝기 변화
* 4.2 다른 영상을 이용한 영상변화
* 5. 영상 명암 변환 - 3(Look-Up Table 이용)
* 8. 윈도우로 설정한 영역에 대해서만 '7.영상 질 향상' 적용
- CPPStudy_2005_1 . . . . 11 matches
* 소스코드의 코딩은 VS6를 이용할 수도 있겠지만, VS6가 나온지가 오래되다 보니 STL을 다루는 방식이 좀 달라서 책의 소스를 그대로 이용하는데 문제가 존재합니다. 따라서 .net 을 이용하거나 gcc를 이용하는 방식을 추천합니다.
[http://www.acceleratedcpp.com/details/msbugs.html VS6 코드 수정] 책에 나온 소스를 VS6에서 이용할 경우 발생하는 문제점에 관한 내용이 있습니다.
[http://www.bloodshed.net/ Dev-C++] GCC를 기반으로 하는 IDE환경으로 책의 소스를 그대로 이용가능. CVS를 제공함
[http://msdn.microsoft.com/visualc/vctoolkit2003/ VSC++ Toolkit] .net 을 구입할 수 없는 상태에서 STL을 컴파일 해야할 때 사용하면 되는 컴파일러. (공개)
* 혼자 공부할때는 절대로 안했을 짐한 것들을 사용
* 위키에 책 내용 정리되어서 올라와서 공부하기 좋았다.
* 위키에 내용정리 계속 해나가야할 일
- CVS/길동씨의CVS사용기ForLocal . . . . 11 matches
Local에서 간단히 CVS를 사용하는 과정에 대한 Tutorial
CVS를 개인적으로 사용할려면 두가지 방법이 있다. 하나는, 자신의 컴퓨터에 http://www.cvsnt.org/ 와 같은 서버툴을 설치하여 외부에서도 접근하는 것이고, 구지 서버를 돌리지 않고 cvs를 local에 저장소의 기능만을 이용하는 방법이 있다. 길동씨는 자신의 컴퓨터에서 간단한 저장소의 경험을 해보고 싶어서, local로 시도한다.
cvs_SetForLocal.bat 내용 (한글부분은 채워넣어 주세요.)
SET CVSROOT=local에서자신이사용할저장소
도움말 : local은 remote에 접근하는 것과 달리 로그인을 하지 않는 것을 전제 한다. 아무옵션도 붙이지 않고, 자신이 사용할 장소만을 지정한다.
SET CVSROOT=컴퓨터에서 자신이사용할저장소
* in Bash Shell ( 프롬프트에서 직접 실행 해야 적용됨 )
cvs -d c:CVSLocal init // -d 태그를 설정안하면 환경변수 CVSROOT의 값을 가져와 쓴다. 모든 cvs사용에 해당한다.
도움말 : 모듈(프로젝트와 동일 이하 모듈로 용어 통일)을 로컬의 저장소에 등록한다. 만약 내부에 소스같은 자원이 있다면 같이 등록된다.
도움말 : 지정하는 프로젝트(모듈) 전체를 받아 온다. local에 처음 프로젝트를 받아 올때 사용한다.
- Curl . . . . 11 matches
요즘은, 모든 기업이Web 어플리케이션을 이용하고 있다고 해도 과언은 아닙니다. 고객에게 정보를 제공하는 Web 사이트에 머무르지 않고, 사내의 기간계나 정보계는 물론이고 BtoB(기업간 전자상거래)나 BtoC(소비자대상 전자상거래) 등의 다양한 시스템에서 Web 기술이 이용되고 있습니다.
Ajax프로그래밍을 해본적이 없어서 Gmail에서 관찰한 내용을 기준으로 해보면... 아마도 curl 로 만들어진 빠른 속도의 애플리케이션을 이용해서 좀더 다양한 처리 같은게 가능하지 않을까요? 뭐 그래픽 에디터를 activex를 이용하지 않고도 만들 수 있다던지.. 그리고 네트워크가 disconnect된 상태에서 사용자가 작업한 내용을 보관하고 있다가 connect된 상태로 바뀌면 작업을 처리하는 일같은 것도 가능할 것 같고요.(ajax가 jscript+dhtml을 이용한 기술이라고 아는데 이런것도 가능한지는 모르겠네요.;;) 아무래도 로컬의 runtime위에서 작동을 하는 만큼 유저의 입장에서 좀더 다양한 상용의 용도가 있을 것이라는 생각이드네요. 물론 runtime 이 있기 때문에 상업적 표준이 되기전에는 기업용 시장에서만 팔릴 것들에만 쓰일지도 모르겠고요. - [eternalbleu]
- DataCommunicationSummaryProject/Chapter12 . . . . 11 matches
* 위성을 이용한 말단(local loop) 기술
* 위성 이용한 모바일 서비스
* GPS 에 사용
* 과학이나 군사용으로 사용
* Iridium: 위성을 사용한 모바일 네트워크
* 위성은 전통적으로 대륙을 잇는 백본 네트워크로 사용되어 왔지만, 이 역할은 fiber에 의해 강탈당했다.
* TV 방송국에 의해 선구적이었던, 직접적인 위성 to 사용자 방송은 인터넷에 접근하는 용도로 쓰이는게 점점 늘고 있다.
* 대다수의 커뮤니케이션 위성은 지구로부터 먼, 그래서 눈에 띄는 지연시간의 GEO를 사용한다.
* 새로운 LEO는 모바일 네트워크와 함께 노력해왔다.(?) Iridium이 그들의 재정에 그림자를 드리우긴 했지만,(망했다는 소린가?) 많은 국가의 3G 라이센스 비용에 비해, 위성 네트워크는 싸다.
- EffectiveSTL/Container . . . . 11 matches
* vector 는 Sequence Container 니까 보통 Associative Container 들(주로 Map)보다 메모리낭비가 덜함. 그대신 하나 단위 검색을 할때에는 Associative Container 들이 더 빠른 경우가 있음. (예를 들어 전화번호들을 저장한 container 에서 024878113 을 찾는다면.? map 의 경우는 바로 해쉬함수를 이용, 한큐에 찾지만, Sequence Container 들의 경우 처음부터 순차적으로 좌악 검색하겠지.) --[1002]
== a 컨테이너에 있는 내용의 뒷부분의 절반을 b라는 벡터 컨테이너에 넣고 싶다면, 어떻게 해야할까? ==
// copy 알고리즘을 이용한다.
// assign 메소드를 사용한다.
* 이 네 가지 방법을 보자. 첫번째 두번째 방법은 루프를 사용한다. 두번째 방법에 루프가 어딨냐고 물으면 나는 모른다. copy 알고리즘 내부에서 루프를 사용한단다. 하지만 assign 메소드는 루프를 사용하지 않고 한번에 짠! 해주는거 같다.
* copy, push_back 이런것은 넣어줄때 insert iterator를 사용한다. 즉, 하나 넣고 메모리 할당 해주고, 객체 복사하고(큰 객체면... --; 묵념), 또 하나 넣어주고 저 짓하고.. 이런것이다. 하지만 assign은 똑같은 작업을 한번에 짠~, 만약 100개의 객체를 넣는다면 assign은 copy이런것보다 1/100 밖에 시간이 안걸린다는 것이다.(정확하진 않겠지만.. 뭐 그러하다.)
* range 멤버 메소드는 주어진 두개의 반복자로 크기를 계산해서 한번에 옮기고 넣는다. 벡터를 예로 들면, 만약에 주어진 공간이 꽉 찼을때, insert를 수행하면, 새로운 공간 할당해서 지금의 내용들과, 넣으려는 것들을 그리로 옮기고 지금 있는걸 지우는 작업이 수행된다. 이짓을 100번 해보라, 컴퓨터가 상당히 기분나빠할지도 모른다. 하지만 range 멤버 메소드는 미리 늘려야 할 크기를 알기 때문에 한번만 하면 된다.
* 쉽지만 비효율적인 방법 - remove_copy_if 를 사용한다. 이것은 지우고 싶은걸 제외한 나머지 것들을 새로운 컨테이너로 옮긴다. 그 다음에 원래 컨테이너를 새로 만든것과 바꿔 버린다.(우울하군--;)
* 반복자를 이용해서 루프를 돌다가 어떤 걸 지우면, 그걸 가리키고 있던 반복자는 갱신된다. 다음에 어떻게 될지 장담 못한다는 뜻이다. 주의하자.
- EightQueenProblem . . . . 11 matches
이 문제를 프로그래밍을 해서 풀어보세요. 어느 언어를 사용하든 상관없습니다. 가장 자신있는 언어를 사용하세요. 그리고, 맞는 결과를 구했다면 다음 칸을 채워주세요. 비교적 간단한 문제이지만, 문제를 해결해 나가는 중에 자신의 실력과 사용하는 도구, 프로그래밍 과정, 디자인 방법 등에 대해 생각해 볼 기회가 될 것입니다. 모든 후배들에게 꼭 한번 시도해 볼 것을 권합니다. 이 경험에 대해 스스로 분석해 보고, 남들과 경험을 공유하고 차이를 살피고(AnalyzeMary), 또 토론하면서 '''아주 많은 것을 배우게 될 것입니다.''' 어쩌면 이제까지의 프로그래밍 경험에서보다 더 많은 것을 말이죠. 사실 이 실험의 진정한 가치는 문제 자체보다 이 문제가 가능케 하는 자기 관찰/반성과, 타인과의 논의에 있는 것인지도 모릅니다. --김창준
시간을 잴 때에는 Wiki:SandglassProgramming 에 소개된 프로그램을 이용하면 편리합니다. 화장실을 다녀온다든가 할 때 필요한 중간 멈춤(pause) 기능도 있습니다.
||도전자||총개발시간||소스라인수('''주석제외''')||사용언어|| Source ||
||김형용|| 8h:00m || 115 lines (+ 63 line for testcode. total 178 lines) || python || ["EightQueenProblem/김형용"]||
||용쟁호투|| 3h:56m || 146 lines || Powerbuilder || ["EightQueenProblem/용쟁호투"] ||
||용쟁호투|| 2h:10m || 177 lines || MS-SQL || ["EightQueenProblem/용쟁호투SQL"] ||
- EmbeddedSystemClass . . . . 11 matches
휴인스 테크의 교육용 보드를 이용한 실습을 한다.
임베디드 환경에서의 GUI 툴킷(Qt-embedded)를 이용한 프로그램. 디바이스 드라이버 프로그래밍을 실습한다.
블루투스 모듈을 이용해 자유주제의 과제를 수행함.
실습에서 사용하는 리눅스는 레드햇 9.0으로 상당히 오래된 버전을 이용한다.
이미지의 용량을 절약하고, 경량의 리눅스를 운용하기에는 데비안이 적합하다고 판단 데비안 환경에서
'''(리눅스를 처음 다루는 분이라면 실습에서 사용하는 레드햇을 이용하는 것이 좋다고 생각함)'''
// gcc 는 커널의 컴파일에 필요한 버전을 설치해야하며 which gcc 를 이용해 현재
- GUIProgramming . . . . 11 matches
윈도우 플랫폼에서 프로그래밍을 하는 대부분의 프로그래머가 사용하는 것으로 마이크로소프트사의 제품군에도 사용된다. 대표적인 예는 마이크로 소프트 오피스군이 있다.
GUI를 다루기 위해서 .NET에서 사용하는 클래스이다.
볼랜드사의 툴킷으로 C++빌더, 델파이 제품군에 사용된다.
모티프는 유닉스 환경하 X-Window, 혹은 POSIX 표준과 호환되는 시스템을 위해서 만들어진 툴킷이다. IEEE 1295 산업 표준으로 제정되어있으며, Motif API라는 표기법을 쓴다. 최근에는 Qt, GTK에 많이 밀리지만 여전히 많은 시스템에서 사용되는 툴킷이다.
윈도우 매니저 KDE에 사용되는 툴킷이다. 이름은 "cute"라는 단어에서 만들어졌다고 한다. 다양한 멀티플랫폼을 위한 기능이 존재하며 다국어 지원이 좋다. 또한 기본적으로 C++을 이용하지만, 파이선이나 펄, C를 위한 바인딩 기능을 제공한다.
자바로 작성된 프로그램에서 기본적으로 이용하는 API이다. 플랫폼에 독립적으로 제작된 툴킷이지만 내부 구현 상 플랫폼에서 제공하는 함수를 아주 낮은 수준의 추상화된 형태로만 제공하기 때문에 자바의 Platform-independable의 특성을 충분히 만족할 만한 수준은 못된다.
최근 버전의 자바에서 이용하기 시작한 선사의 툴킷이다. 특징으로는 AWT보다 더욱 보기 좋은 그래픽을 제공한다. 또한 AWT와 달리 플랫폼에 비종속적이기 때문에 모든 플랫폼에서 동일한 모양을 보여준다. 그리고 클래스 라이브러리에 약간의 수정을 가함으로써 Windows 에서 기타 플랫폼 (예를 들자면 Mac)의 {{{~cpp Look&Feel}}}사용하는 것이 가능하다. 물론 -_-; 원칙적으로 특정 운영체제의 룩&필은 변경해서 응용프로그램을 개발하는 것은 정책상 불법의 범주에 속한다..
- HelpOnTables . . . . 11 matches
테이블을 만들기 위해서는 테이블임을 나태내는 "`||`"를 사용합니다. `||`로 시작해서 `||`로 끝나면 테이블이 되며, 여러개의 셀을 만들기 위해서 여러번 반복하여 `||`를 사용하여 각 셀을 나누면 됩니다. 여러개의 컬럼에 걸쳐서 셀을 만들려면 `||`를 두번이상 반복해서 `||||` 식으로 만들어줍니다.
||내용1|||| 두셀에 걸친 내용 ||
||내용2||첫번째 셀||두번째 셀||
||내용1|||| 두셀에 걸친 내용 ||
||내용2||첫번째 셀||두번째 셀||
테이블의 속성을 넣을 필요가 있는 경우가 있습니다. 예를 들어 테이블 셀의 색상이나 폭 등등의 몇가지 테이블 속성을 사용하면 테이블의 가독성을 높일 수 있을 것입니다. 이를 위하여 테이블 속성을 정해주는 문법을 지원합니다. 속성은 꺽쇠 괄호를 사용해 {{{<...>}}} 형태의 문법으로 `||` 마크 다음에 바로 붙여서 써주어야 합니다.
이것을 기본으로 하여서 좀 더 장황한 설정은 HTML 속성을 넣는 전통적인 방식과 비슷한 문법을 지원합니다. (HTML에서 지원하던 모든 테이블 속성이 지원되지는 않습니다.). 이 방식을 이용하면 테이블 색상이나 줄의 속성을 지정하 수 있습니다. 특별히 테이블의 너비를 지정하려면 {{{||<tablewidth="100%">...||}}} 를 테이블 시작을 알리는 맨 처음 `||` 다음에 써넣으면 되며, 줄의 배경색은 {{{||<rowbgcolor="#FFFFE0">...||}}} 와 같이 지정합니다. 여기서 볼 수 있듯이, 테이블에 대한 속성인지, 줄에대한 속성인지를 알리기 위해 {{{table}}} 혹은 {{{row}}}와 같은 접두어가 붙었습니다.
- InWonderland . . . . 11 matches
=== 공용 소스 및 문서 ===
|| 홈페이지(사용자 등록 화면) || . || ||
|| 홈페이지(사용자 탈퇴) || . || ||
|| 홈페이지(사용 내역 조회) || . || ||
제공하는 서비스 (클라이언트는 이것들을 이용함)
[WebMethod(Description="포인트 사용")]
public bool UsePoint(string storeReg, string storeAuth, string cardNum, string cardPwd, int money, int point) // -인자: 사업자 등록 번호, 카드 번호, 돈, 사용한 포인트
일반 사용자가 카드 등록 후에는 카드 번호 출력함. 여력이 되면 비밀번호 암호화도 해야 함. 한편 카드 유효기간 귀찮다. 빼자. --재동
클라이언트에서 포인트 적립이나 사용이후에 남은 결과 포인트도 보여줘야 하지 않어? 그리고 로그 아웃도 필요하잖어.--철민
그건 적립이나 사용후에 "포인트 조회" 서비스를 통해서 보여주면 되겠지. 그리고 로그아웃도 서비스로 넣을 필요는 없어. --재동
응. 물건 살때 쓰는 현금. 나중에 사용 내역 때문에 입력 하는 거야 --재동
- MFC/MessageMap . . . . 11 matches
= 사용자 정의 메시지 발생시키기 =
* 사용자 정의 메시지란 : 특정한 시점에서 메시지를 보내서 다른 객체의 함수를 실행 시킬수 있다. 굉장히 유용하다. 일종의 콜백 함수 역할을 수행할 수 있는것이다. 즉 어떠한 다른 클래스에서 특정 시점에서 다른 객체의 특정 함수를 실행시켜야 할 필요가 있을때 사용하면 유용하고, 소켓 프로그래밍에서 자주 사용된다.
* 사용 예 : 어떤 클래스가 view 클래스의 멤버 변수이다. 해당 클래스는 파일을 다운로드 받는 클래스인데 해당 클래스에서 다운로드가 끝났을 경우 view에 있는 serialize 함수를 실행해야 한다. 허나 현재 view클래스가 그 해당 클래스를 멤버로 가지고 있기에 include 로 해당 클래스에서 view 클래스를 포함할 수도 없고, 또 view 클래스의 현재 실행되는 객체를 얻을 방법도 마땅히 없다. 이때 해당 클래스에서 다운로드가 끝난 시점에서 다운로드가 끝났다는 메시지를 발생시켜서 view에 있는 serialize 함수를 실행시킬 수 있다. 이게 바로 사용자 정의 메시지 발생을 이용한 사례..
#define UM_ACCEPTCLIENT (WM_USER+10) // 사용자 정의 메시지를 정의 한다.
사용
- MicrosoftFoundationClasses . . . . 11 matches
MFC의 클래스들은 CDocument, CView와 같이 C로 시작하는 이름을 갖는다. 데이터 멤버들에는 m_ 라는 접두어를 붙여서 만들어져 있다. 변수의 이름앞에 p, i, l, h 등을 이용해서 그 종류를 변수의 이름으로 추정가능하게 하는 [헝가리안표기법]을 이용한다. 이는 과거 C환경하에서 형식 검사기능의 부재로 인한 에러를 막기위해 고안된 측면이 크기 때문에 C++에 들어와서는 반드시 필요한 표기법은 아니다.
''컴파일 해보고자 하는 분들은 Project/Setting/General 항목에서 MFC DLL을 사용한다는 설정을 해야한다.
''인내심없이 번역서 읽으면 안되는 책. Wrox BegVC++6 내용의 진행방법은 Ivor 할아버지 답게 재미있다.''
''Com/Dcom PrimerPlus 는 현재 절판. 곽용재씨가 이름을 날리게 된 계기가 된 아주 잘 번역된 책중의 하나''
이를 사용하면 데이터의 저장, 검색에 있어서 MFC가 제공하는 표준적인 메카니즘을 이용하는 것이 가능해진다.
응용프로그램에서 document를 몇개를 다루느냐에 따라서 SDI(single document interface), MDI(multiple document interface)로 구분하여 사용한다.
View는 도큐먼트에 존재하는 데이터의 집합체를 우리가 원하는 방식으로 표현하는 메카니즘이 구현된 객체이다. document 와 마찬가지로 CView라는 클래스를 상속하여 사용하게 된다. View는 윈도우의 개념으로 보아서 프레임 윈도우 영역안의 클라이언트에 속하는 view만의 윈도우안에서 표현된다. 한개의 document 에 대해서 view는 여러개로 나누어서 만들어지는 것이 가능하다.
* {{{~cpp 응용프로그램 객체 theApp 생성}}}
- MindMapConceptMap . . . . 11 matches
How To Read a Book 과 같은 책에서도 강조하는 내용중에 '책을 분류하라' 와 '책의 구조를 파악하라'라는 내용이 있다. 책을 분류함으로서 기존에 접해본 책의 종류와 비슷한 방법으로 접근할 수 있고, 이는 시간을 단축해준다. 일종의 知道랄까. 지식에 대한 길이 어느정도 잡혀있는 곳을 걸어가는 것과 수풀을 해치며 지나가는 것은 분명 그 속도에서 차이가 있을것이다.
컴퓨터 프로그램에서도 MindMap 과 ConceptMap 을 그리는 프로그램이 많다. 하지만, 그렇게 효율적이지는 않은 것 같다. (아직까지 연습장과 펜 만큼 자유롭지가 않다. ["TabletPC"] + Visio 조합이라면 또 모를까;) MindMap 이건 ConceptMap 이건 기존 지식으로부터 연관된 지식을 떠올리고, 사고하고, 재빨리 Mapping 해 나가는 과정자체가 중요하기에. (["1002"]는 개인적으로 프로그래밍을 하려고 했다가; 그리 유용하단 느낌이 안들어서 포기했다는. 여러 프로그램들을 써 봤지만, 결국 도로 연습장 + 펜 으로 돌아갔다. ^^; 그리고 개인적으로 Map 자체를 도큐먼트용으로 보관하는것에 의미를 두지 않아서.)
빠르게 책의 구조와 내용을 파악할때는 MindMap을, 그리고 그 지식을 실제로 이용하기 위해 정리하기 위해서라면 MindMap 을 확장시키거나, ConceptMap 으로 다시 한번 표현해나가는 것이 어떨까 한다. --석천
'''마인드맵은 지극히 개인적인 도구이다.''' ["데기"]가 마인드맵에 기록하는 것들은 주로 연상 작용을 일으켜 이미 알고있는 것을 쉽게 떠오르게 할 수 있는 열쇠들이다. 마인드맵에 적힌 내용들이 그 열쇠가 되기도 하지만 그보다 마인드맵을 그리는 과정이 그 열쇠가 되어준다. 잉크가 말라 잘 안나오는 파란색 펜을 선택해서 굵은 줄로 가지를 치고 조금 삐딱한 글씨체로 ''겨울 바다''라고 썼던 일이 나중에 그 마인드맵을 다시볼때 기억의 실마리가 되어준다. 그 실마리는 언어가 될 수도 있겠지만 이미지적인 요소도 무시할 수 없다. 굴림체 ''겨울 바다''와 ["데기"]체 ''겨울 바다''를 통해 연상되는 기억에는 분명히 차이가 있을것이다.
''MindMap 에 경우 중요시 하는 것 중 하나가 연상을 더욱 더 용이하게 하는 이미지이기도 하죠. --석천''
MindMap 의 표현법을 다른 방면에도 이용할 수 있다. 결국은 트리 뷰(방사형 트리뷰) 이기 때문이다. [1002]의 경우 ToDo 를 적을때 (보통 시간관리책에서 ToDo의 경우 outline 방식으로 표현하는 경우가 많다.) 자주 쓴다. 또는 ProblemRestatement 의 방법을 연습할때 사용한다. --[1002]
- MySQL . . . . 11 matches
ZeroPage에서 사용하고 있는 데이터 베이스
''-- 이건 사용자가 root일 때만 되는거 아닌가요? 권한이 없는걸로 알고있는뎅 ^^ -jeppy''
mysqldump -p암호 -u사용자 --database DB명 > mysqlbackup.sql
mysqldump -p암호 -u사용자 DB명 TABLE명 > tablebackup.sql
mysql -p암호 -u사용자 --database db명 < mysqlbackup.sql
=== DB권한 관련 (관리자용) ===
앗 탄로 났다. 드뎌 영문으로 설치한 부작용이 다들 영어 써요 ~ 와~~;; 오호 통재라 모든것은 시험끝나고 이루어질것이니.. --["neocoin"]
MySQL에서 한글이 들어간 문자열을 제대로 정렬하려면 char 타입이 아닌 char binary 타입을 쓰면 됩니다. 하지만 이미 char 타입으로 되어있다면 ORDER BY BINARY 필드명 을 사용하면 됩니다. MySQL에서 char 타입은 순수한 아스키(0~127) 값에서만 제대로 동작합니다. 물론 char 타입을 쓴다고 해서 한글이 저장되지 않거나 하는건 아니지만, 검색이나 정렬등에서 제대로 작동하지 않는 경우가 있습니다. --["상규"]
[http://network.hanbitbook.co.kr/view_news.htm?serial=131 MySQL과 Transaction] 테이블 생성시 InnoDB 나 BSDDB 를 사용하면 Transaction 을 이용할 수 있다. (InnoDB 추천)
MySQL 에서 다른 데이터베이스로 데이터를 옮길 경우 기존 데이터중 문제가 되는 것이 바로 내장함수인 PASSWORD 를 이용해서 암호화를 한 부분이다. 다른 데이터베이스에서 이 데이터를 쓸 방법이 없기 때문이다. 이 경우, 로직 단에서 MySQL의 Password 함수를 대신 구현해줌으로서 해결을 할 순 있다.
- NUnit/C++예제 . . . . 11 matches
* 예제는 아무 생각없이 만들었고, 테스트 할 필요도 없는 거지만.. 그냥 사용법을 보는 거니까 신경쓰지 마세요.
=== MFC에서 사용하기 ===
평소대로 하자면 이렇게 하면 될것이다. 하지만 현재 프로젝트는 [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 상에서 테스트의 대상 클래스는 무조건 포인터형으로 접근할수 있다. 이제 테스트 클래스의 내용을 보자.
이렇게 해주면 된다. 이거 알아내느라 엄청 삽질했다. 그런 의미로... 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 을 작성해서 사용하는 방법이었다.
- PragmaticVersionControlWithCVS/CommonCVSCommands . . . . 11 matches
이 장에서는 우리가 cvs를 이용해서 하는 작업의 90퍼센트를 차지하는 대부분의 명령어를 다룬다.
''(이번장이 이 책에서 가장 페이지수가 많은 장이다. 대략 4~50 페이지 정도이다. 이정도까지만 보면 cvs 사용하는데 큰 무리는 없을 듯하다.)''
'''-D''' : 날짜를 이용해서 체크아웃.
파일의 내용을 확인하면 checkout 된 파일이 1.1버전의 것임을 확인할 수 있다.
* 바뀐 부분만을 저장하기 때문에 전체 리비전된 소스를 다 가지면서도 용량이 절약
''마땅한 마이너리가 없어서 책의 내용을 이용''
note) 바이너리를 자주 사용한다면 cvswrappers 에 대해서 알아보자.
개발을 하는 도중에는 여러개의 중간 단계의 파일들(.obj, .class 등등)이 생성된다. 이런 파일은 굳지 CVS 저장소에 보관하는 것이 아니라 로컬에 저장해 두고 사용자가 필요할 때마다 새로 생성시키는 것이 옳은 일이다. 다행히 cvs 는 이러한 일을 설정하는 것이 가능하다.
이렇게 저장된 .cvsignore 를 저장소에 올려두면 그 저장소를 방문하는 모든 사용자들도 동일한 무시 설정하에서 작업하는 것이 가능하다.
이렇게 관리를 하게되면 원래 존재했던 color.txt라는 파일에 존재하는 기존의 기록들이 삭제되어서 그 파일의 과거파일을 color_rename.txt의 로그로 이용하는 것이 불가하다. 기록이 따로 보관되기 때문이다.
- ReplaceTempWithQuery . . . . 11 matches
'''어떤 수식의 결과값을 저장하기 위해서 임시변수를 사용하고 있다면,''' [[BR]]
수식을 뽑아내서 메소드로 만들고, 임시변수를 참조하는 곳을 찾아 모두 메소드 호출로 바꾼다. 새로 만든 메소드는 다른 메소드에서도 사용될 수 있다.
위의 예는 매우 극단적으로 보일지도 모른다. 하지만 위의 예를 매우 복잡한 시스템의 일부분이라 가정하고 생각해보길 바란다. '''임시변수'''를 사용하는 코드는 해당 블럭에서만 접근 가능하기 때문에, 길어지는 성향이 있다. 이러한 임시변수를 '''질의 메소드'''(query method)로 바꿈으로써 어느곳에서라도, 임시변수에서 사용될 정보를 얻을 수 있고, 클래스 코드는 더 깔끔해진다.
프로그래밍 경력이 있는 사람일수록, 이러한 사실에는 동의를 하지만 '''퍼포먼스'''를 우려해서 꺼리는 경향이 있다. '' '동일한 연산을 왜 이렇게 수행하는거지?' '', '' '이러한 블럭은 지역적이기 때문에 임시 변수 사용은 문제가 되지 않아!' ''.
어느정도 수준에 오른 프로그래머일수록, 반복적으로 사용되는 값에 대해 임시변수를 사용하고 이러한 최적화(?)를 나름대로 수행하려 한다. 그러나, 이러한 미시적인 최적화는 결과적으로 거시적 최적화의 기회를 박탈하게 한다. 심지어 최악의 경우라도 임시변수를 다시 넣는 일은 쉽다(물론, 프로파일링 ' '''결과''' ', ' '''실제로''' ' 퍼포먼스에 심각한 문제를 주는 경우라면).
이러한 방법을 사용하면서 부가적으로 얻을 수 있는 장점이 하나 더 있다. 실제로 도움이 될지 안될지 모르는 최적화를 하는데 쏟는 시간을 절약할 수 있다. 임시변수 사용뿐 아니라 이러한 미세한 부분의 조정은, 해놓고 보면 별로 위대해보이지 않는 일을, 할때는 알지 못하고 결국 시간은 낭비한게 된다. 돌이켜보면 나의 이러한 노력이 제대로 효과가 있었는지도 모른다. '''왜?''' 프로파일링 해보지 않았으니까. 단순히 ''시스템을 더 빨리 돌릴 수 '''있을지도''' 모른다''는 우려에서 작성한 것이었으니까. [http://c2.com/cgi/wiki?DoTheSimplestThingThatCouldPossiblyWork DoTheSimplestThingThatCouldPossiblyWork]
개인적으로 리펙토링 서적을 읽다가 상당한 충격을 받았다. ''옳은 방법''이라고 생각한 내용이 실제는 ''옳을지도 모른다''라는 사실이었고, ''하나의 나무를 잘 키우면 전체적으로도 득이 된다''라고 생각한 내용이 실제로는 ''더 큰 가능성을 보지 못하게''하는 잘못된 습관이었다는 사실이 나를 온통 흔들어 놓았다. 다시 걸음마를 시작하게 된 느낌이다. 자신을 항상 ''바닷가에서 조개를 줍는 어린아이''에 비유하던 ''Isaac Newton''의 이야기가 떠오른다.
- VisualStudio . . . . 11 matches
VisualStudio 는 Microsoft 에서 개발한 Windows용 IDE 환경이다. 이 환경에서는 Visual C++, Visual Basic, Visual C# 등 여러 언어의 개발환경이 함께하며, 최신 버전은 [Visual Studio] 2012이다.
학교에서는 2008년까지만 해도 Visual C++ 6.0을 많이 사용했으나 2008년 2학기에 홍병우 교수님이 Visual Studio 2008 사용을 권한 것을 계기로 최신 버전 환경이 갖추어졌다.
VisualStudio 를 사용할때 초기 프로그래밍 배울때 익혀두어야 할 기능들로, [:Debugging Debugger 사용], [Profiling], Goto Definition
VisualAssist 를 사용한다면, Code Re-Parsing 기능을 실행해준다.
단, pragma 전처리기는 de facto라서 정식 표준이 아니다. 따라서 사용에 대해 유의할 필요가 있다.[* pragma는 once외에도 다른 option도 존재한다.]
== Debugger 의 사용 ==
의외로 Debugger 를 이용하지 않는 사람들이 있다. UnitTest 를 작성하면서 프로그래밍을 하지 않는다면, Debugger는 불가피하다. 학교 프로그래밍 수업때 정식으로 가르치지 않기 때문에 MSDN이나 온라인의 강좌, 알고 있는 학우들에게 물어보아 배울수 있다.
=== 여러개의 Project 를 사용하기 ===
기본적으로 지정된 경로 밖에서 라이브러리를 사용해야 하는 경우가 있다. 몰랐다가 링크를 거느라 한참 고생한 김에 여기에 정리해본다.
- WikiSandBox . . . . 11 matches
서 "HelpOnEditing" 을 누르시면 거나, Middle(마우스휠) Key 를 이용하면 help pages가 다른
'''아래 설명은 간단히 따라해 볼 만한 내용들입니다'''
흔히 사용되는 두가지 horizontal line 의 차이점을 보세요.
* 어떤 페이지에서 EditText 버튼을 눌렀을 때, 페이지 내용을 수정하지 않았음에도 불구하고
* 자신의 [필명]으로 된 홈페이지 외에 개인적인 내용의 페이지들을 많이 만든다.
* 아직 내용이 없는 페이지들을 일단 만들어 열거한다.
위의 내용 중에서 이해되지 않는 점이 있다면 관련 링크들과 HelpContents를 참조해서 익히신 이
고 원하는 내용을 쓰시기보다는 좀 더 노스모키안들의 행태를 지켜보실 필요가 있습니다. 내용상
이곳 WikiSandBox 와 자신의 홈페이지는 얼마든지 자유로운 곳입니다. 일단 내용을 자신의 홈페
이지에 추가하다가 어느정도 내용이 늘어나고, 익숙해지셨을때 새로운 페이지를 만들어서 분리하
- ZeroPageServer/AboutCracking . . . . 11 matches
* 문제 제기 : 한달후에 전산센터->용철 로 보안 권고 ip block
* 분석 : 세팅 과정에서 설치를 위한 wu-ftp 패키지 서비스를 한달간 제공하였는데, 설치 문제로 가장 자주 사용할 NeoCoin 이 걸려 든것 같음
* 2003-02-10 : [http://www.kisa.or.kr/ KISA] -> 전산센터 -> 용철 -> 정희록(["nautes"]) 경로로, 문제 제기 Server shutdown
* 2003-02-08, 09 즈음에 squid 를 이용한 proxy 서비스를 제공했다는 것을 기억. spam 샘플 몇통중 해다 suqid 사용 계정 id가 있었다는 점 기억 -> squid 동작 이후 spam신고 접수 된 것으로 가정
* '''증상 : 개인 개정에 기본 설정의 설치된 squid 2.4 stable tar 의 proxy 서비스를 최초로 사용한 후 얼마 지나지 않아, 알수 없는 메일 서버로(port 25) 데이터가 날아가는 mail rely 증상 보임 '''
* '''도움 주신 동희씨 석천(["1002"]), 신경써주신 용철이 형께 감사 드립니다. --NeoCoin'''
* 모 회원 계정의 squid 를 들수 있다. netstat 로 상태를 살피면, 기본 squid 세팅으로 proxy 를 이용하면, 상대의 smtp port인 25 번으로 계속 뭐가 발송되었다. 기본 세팅 변경후에 그 발송되는 상태가 없었다. 하지만, squid 로 이렇게 된다는 것이 보고된 사례를 찾지 못했고, stable 버전 자체에 그런 기능이 숨어 있다는 것은 생각하기 어렵다.
* 제가 위의 말을 정확하지 않게 썼습니다. 그리고, 동희씨의 말씀대로, ''소스로 설치했다면 모르겠네요.'' 에 해당 합니다. 상대의 smtp port 25으로 데이터가 전송되고 있다는 것이었습니다. 그럼 어디선가 이 서버의 squid 기본 세팅 포트로, relay 를 계속하고 있다는 의미도 되는것 같군요. 혹은, 8080이나, 80을 사용한다는 것인데 각각, resin 과 apache가 사용하고 있어서 잘 모르겠습니다. 제가 이런 분야의 지식이 부족해서요. --NeoCoin
* 서버가 몇번 정전을 맞은 이후, squid 를 실질적으로 사용한 예는, 일요일 이다. spam이 뿌려진 정확한 날짜를 알면, 비교 할수 있지 않을까?
- html5/others-api . . . . 11 matches
* HTML5는 사용자의 편의를 위한 다양한 요소를 제공한다.
* figcaption을 사용
* 플러그인을 표현할때 사용한다 동영상 음악등을 통합하여 표현할때 사용한다.
* embed엘리먼트에는 자식엘리먼트를 사용할 수 없다. 단일하게 embed만으로 종료한다
* 강조(highlight)를 표현할때 사용된다. 다른 강조의용도의 엘리먼트와 차이점은 여러번 쓰일때 사용하는것 이다.
* time엘리먼트는 24시간기준의 시간을 표현하거나 그레고리안 달력을 표현 할 때 사용한다.
* iframe은 내부에 포함된 콘텐츠를 표시할때 사용한다.
* element에 이름과 값을 설정하여 이를 데이터로 활용할수 있다.
- html5/outline . . . . 11 matches
* 문서 내 특정 내용을 의미론적으로 구분 짓는 새로운 element들
* 섹션 요소를 사용할 때는 항상 아웃라인을 염두해 둘 것
* 아웃라인과 상관 없는 범위를 지정하 ㄹ때는 div를 사용할 것
* article 요소를 사용할 것인가 말 것인가는 콘텐츠를 해당 페이지에서 분리해서 사용 가능한가에 따라 결정
* aside는 없어도 문제 없을 섹션에 사용
* 범용적 섹션
* 여러 제목을 묶어 하나로 만들기 위한 {{{<hgroup>}}} 태그 사용가능
* article 요소만 뽑아내어 이용할 수 있는가가 판단 기준
* 내용에서 분리되어도 문제없는 섹션
* figure 요소를 사용하면 콘텐츠 흐름에서 요소를 분리할 수 있고 필요할 경우 캡션을 붙일 수도 있다.
- html5/overview . . . . 11 matches
* selection : 범용적인 셀렉션
* aside : 섹션 내용과 관련되어있지만 없어도 상관없는 부분(ex. 문서 내용 요약)
* 전방호환성 - HTML5을 적용하기 이전의 브라우저에서도 HTML5사용가능(웹브라우저의 fall back 적용)
* 후방호환성 - HTML5을 적용한 브라우저에서 HTML5 이전 버전 문서 표시가능
* 이미 사용되고 있는 내용에서 사양을 추출한다
* HTML의 목적 : 1998년 W3C는 html이 아닌 XHTML의 표준 사용을 권고한다. 그러나 XHTML은 HTML과의 비호환성으로 널리 퍼지지 못한다.
* 결과적으로 10년이상 사용되는 HTML의 저사양이 오히려 웹 어플리케이션의 발전을 저해했다. 그러나 W3C는 XHTML을 위해 새로운 HTML의 개발을 거절한다.
- 마케팅천재가된맥스 . . . . 11 matches
* 이책에서는 고대 이집트에서 그때까지는 없었던 '바퀴'라는것을 새로 발명한 맥스가 그 '바퀴'를 이용하여 세계최고의 '바퀴회사'가 되어 가는 과정을 이야기한다. 처음에 맥스가 '바퀴'를 만들었을때, 우리 공학도들이 그러는것처럼 이 기술은 정말 최고의 기술이야, 가만히 앉아 있어도 서로들 이것을 사려고 하겠지 하는 생각을 했다. 그러나 결과는 지금 현실과 마찬가지로 기술 개발만 하고 그 후 마케팅, 판매를 못해서 거의망하기 직전까지 간다. 그렇다고 맥스가 아예 판매에 손을 땐것은 아니다. 부인과 함께 이집 저집을 방문하면서 판매 하려고 해도 실패를 한다. 그러다가 '세일즈캡틴', '빌더벤', '마법사토비' 를 차례대로 고용해서 판매를 하려고 했지만 번번히 실패한다. 그러다가 '클로저 카시우스'를 고용해서 판매에 성공한다. 현재 시장 상황에 따라서 필요한 세일즈 방식이 다르다는 것을 보여준다. 정말 중요한것은 시장 상황에 따라서 세일즈 방식이 다르다와 세일즈 방식이 다르기 때문에 고용하는 세일즈맨들도 성향이 달라야 한다는 것이다. 강추 책.
== 참고 내용 ==
* 기회를 혼자서만 사용하기를 원한다. 최고의 특권을 가지고 싶어한다.
* 지식, 자원이 풍부. 제품을 공급만 해줘도 알아서 잘 사용할 정도의 지식..
* 제품에 대한 기술적, 제품 사용 교육등 토탈 솔루션 제공
* 이 제품의 경쟁자는 누구인가? (신제품이라 할지라도 기존의 비슷한 용도로 사용하던것들)
* 고객들이 경쟁 업체를 이용하는 이유는?
- 새싹교실/2012/도자기반 . . . . 11 matches
=== 수업내용 ===
그래서 일단 C에서 자주 사용되는 자료형과 변수 선언& 초기화 방법 그리고 기본적인 연산자 순으로 스터디를 진행했습니다.
마지막으로 입출력 기본 함수 사용법을 알려준 후 C수업시간에 한 예제들과 간단한 과제들을 직접 해보게 시켰습니다.
.....너무 늦게 수업내용을 올렸네요.. 다음에는 일찍 올리도록 하겠습니다.
* 다양한헤더파일을 설명해줬습니다. 2주차 예제에 새로 등장한 stdlib.h, time.h 에 포함되는 간단한 함수들을 설명했습니다. 그리고 #define을 쓰는 이유도 설명했습니다. 랜덤변수를 얻기 위한 rand함수와 사용법 등을 알려주면서 다시 한번 winapi.co.kr 에 대해서도 언급했습니다. 또한 srand(time(NULL))을 사용하여 씨드를 설정해줘야 매번 다른 값이 나오는 것도 설명 했습니다.
구조체 선언 방법과 typedef를 쓰는 이유를 설명 하는데 구조체 예제 안에 배열이 있어서 배열에 대해서 먼저 설명했습니다. 배열의 이름이 갖는 의미와 인덱스로 접근가능한 자료구조라는 것을 설명했습니다. 그 다음으로는 미뤄왔던 함수에 대해서 설명했습니다. 이번에도 예제로 설명하려 했는데 파라미터로 포인터를 받아오기에 먼저 포인터에 관한 설명을 했습니다. swap예제를 사용하여 call by value 기반의 C에서 포인터를 사용하여 call by reference를 구현 할 수 있다고 설명했습니다. 그리고 배열접근 방법에 인덱스와 배열이름+숫자 로 접근하는 방법도 알려줬습니다.
* ㅋㅋㅋㅋㅋㅋㅋㅋㅋ hello wordl라니 - [장용운]
* 정종민 - 아침7시에 수업, 처음에는 wiki사용법을 배웠고 먼가 처음하는 거라 생소한 wiki? 그 다음에는 요즘 C언어 시간에 배우는 수업에 대해 복습을 했다. 처음하는 c언어라 하나도 몰라 헤맸는데 복습하니 이제야 먼지 좀 알겠다는... ㅋㅋㅋ
* 박환희 - 오늘은 제어문에 대한 내용을 배웠고 느낌은 마음이 편하였고 제어문에서는 이러한 종류가 있다는것을 알았고 앞으로 문법을 좀더 익혀야겠다는것을 생각했습니다.
- 위키설명회2005 . . . . 11 matches
제로페이지의 활동에 큰 축이 되지만 첫 진입에 어려움을 겪는 위키를 설명하고 사용해보며 자연스러운 진입을 유도하는 자리.
신입생한명이 한개의 피씨를 사용한다.
위키를 이용한 보물찾기
[노스모크] 를 이용하는 이유는 ZP위키는 프로젝트 중심이기 때문에 흥미로운 페이지가 적고, [좋은위키페이지] 에대한 분별력이 떨어질 것이라는우려.
== 위키설명회에서 반드시 이야기 해야할 내용 ==
위키는 누구나 관련한 내용을 계속 수정해 나가고 필요한 내용은 덧붙여 놓기 때문에 본문 글이 점점 다듬어져 나갑니다.텍스트가 진화한다고 말하기도 합니다.
공지에서 너무 많은 내용을 말하려 하지 않았으면 좋겠습니다.
제 나름대로 한번 써보았습니다. 여기에 몇몇 내용만 덧붙이면 좋을 것 같네요.
Wiki는 ZeroPage 모든 활동에 사용되어 Wiki없는 ZeroPage는
뿐만 아니라 Wiki에 담겨있는 철학과 사용법을 알게 되신다면
- 장용운/곱셈왕 . . . . 11 matches
당시 문제에는 변수 y에 저장된 값 38을 왼쪽 쉬프트 연산자(<<)를 사용하여 2칸 옮긴 결과를 출력하게 했는데,
허나 [장용운]은 그 문제에 있던 또다른 변수 x에 저장된 값 0xa3을 이진수로 변환하던 과정에서 문제를 8비트로 풀이하게 되었고
그 결과로 [장용운]은 38<<2를 -104로 판단하고 답을 적었고, 시험이 끝난 후 동기들에게 '답이 마이너스인 것도 있더라'라는 말을 했고
그 이후로 [장용운]은 '곱셈왕'의 칭호를 얻게 된다.
* 용운왕 장곱셈
* 이런 것도 남겨노면 나중에 재밌겠지 - [장용운]
너무 개인 위키처럼 사용하는 게 아닌가 싶네요. 이 페이지는 그렇다쳐도 멀티게이라는 페이지를 왜 만들었는지 모르겠어요… 외부 링크로 충분할 것 같아 페이지 지우고 구글 번역을 링크했습니다. - [김수경]
제가 너무 들떠서 쓸데없는 짓을 했네요;; 저번 게시판 일도 있고 자꾸 번거롭게 해서 죄송합니다. - [장용운]
위키 열심히 쓰는 건 좋은 일이니까 미안할 건 없어요 ㅋㅋ 근데 같이 쓰는거니깐 개인적인 용도로 만든 페이지는 이름 아래에 넣어주거나 하면 좋을 것 같아요. ''멀티게이'' 페이지도 처음엔 하위 페이지로 만들까 했는데 그건 내용 자체가 링크 한 줄만 있더라구요; 그래서 그냥 링크로 바꿨어요. 뻘한 내용이라도 이것저것 적을 게 있다면 페이지 만드는 걸 제한하진 않습니다 ㅎㅎ 다만 만들기 전에 진짜 필요한 페이지인지는 한번 생각해보고 만들어주세요~ - [김수경]
- 조현태/놀이/지뢰파인더 . . . . 11 matches
데블스 캠프에서 배운 로보코드를 활용할 생각..^^ 뭔가 객체같은 느낌이 들어서 클래스로 만들어 주기로 했다.^^
킁..ㅠ.ㅜ 재앙이다..;;ㅁ;; 앞으로는 이렇게 짜지 말자는거 이외에는 뭐라 할말이 없다. 오랫동안 손대지 않았던 터라, 알고리즘이 잘 생각이 나질 않는다. 그래도 내가 짜서 그런지 금방 알고리즘을 생각해내는데는 성공했지만... 많은 부분을 수정했으나, 더 많은 재앙들이 초롱초롱한 눈빛으로 나를 반기고 있다. 이쁜 아가씨면 반겨주겠지만 이런 버그덩어리라니.. 도데체 어느 부분에서 잘못된 메모리를 엑세스 하는건지..흑흑 어빠햐가 잘못해떵..ㅠ.ㅜ 제발 정상적으로 작동해줘..ㅠ.ㅜ API의 특징인지...내가 못해서인지.. 테스트가 콘솔창보다 용의하지가 않다. 수없이 조각조각 나있는 할당된 메모리의 파편을 일일이 추적하자니.. 트리나 링크드리스트 형식의 문제점이라고나 할까..;;ㅁ;; 도데체 어디서 잘못된겨~!!! !@#$%^&*()...... 그래도 실행하면 지뢰 한 2-3개.. 숫자 한 2-3개는 찾고 뻗으니위안은 된다.(참고로 아직 지뢰를 건드린적은 없다!!) 수정해야할 부분 태산.. 만들어야 할 부분 태산.. 휴가가 극도로 짦은걸 보면 방학중에도 만들어야 할지도... 뭐 나름대로 앞으로 프로그램을 어떻게 짜야 할 지에대해서 조금은 도움이 되겠지뭐..ㅠ.ㅜ 흑.. - [조현태]
계획 전면 수정. 알고리즘 및 소스 재작성 돌입. 과거 단순 "로봇을 이용해서 마호로매틱 쵸비츠..는 아니고 어쨋든 멋지게 만들어 보자!" 에서 "로봇만 이용하는건 넘흐 어려벙~ 다른걸 섞어봐야겠어~!" 로 변경. 사용하기가 편하고 검색속도가 빠른 기존의 방법과 정확도가 높은 로봇을 밀가루와 팥이만나 붕어빵이 되듯.. 잘 섞어보기로 결정했다. 새로 모든소스를 작성하고 기존 소스의 심각한 문제점이었던, 어설픈 분할과 최악의 테스트 조건(윈도우 지뢰찾기는 실행해서 어떤 맵이 나올지 모른다. 또한 테스트 시간이 길고 준비가 필요하다)을 극복하기 위해서 수정을 가했다. 좀더 체계화된 분할로 좀더 보기편하고 소스에 간지가 흐르도록 하였으며, 테스트 주도개발의 내용에서 눈꼽의 반만큼을 이용, 편리한 테스트 환경을 만들었다. (나름대로 진보환 환경과 소스!) 가슴은 아팠지만 재앙보다야 나을거라고 생각한다. 그리고 로봇..그 부분은 아직 경험이 없어서(데블스 캠프에 만들어 본게 다..)그런지 조금 빡세다. 뭐 그래도 한번 실패도 했으니, 더 쉽게 만들어 질 것이라고 생각하고 만들기로 결정했다. - 2005.08.13
|| 날짜 || 내용 ||
|| 2005.08.01 || 정말 바뻐서 한동안 손을 안댔더니, 내용이 잘 생각이 안난다는.. 디버깅 15% ||
버그가 발생하면 반드시 스샷과 함께 올려주세용!~*
- 주의 : .NET 에서 만들어버린고로 실행할때는 반드시 넷프레임워크가 최신버전으로 업데이트가 되어야.. 이참에 윈도우 업데이트 하세용~ㅎ
- 튜터링/2013/Assembly . . . . 11 matches
=== 강의 내용 ===
* 이 과목에서 가장 주로 다루는 어셈블리 언어를 사용하는 이유와 현재 어떤 곳에 사용되는지, 특징은 무엇이며 장단점은 무엇인지 알아보자.
* 어셈블리 언어란 무엇이며, 왜 쓰고 장단점은 무엇인지 써보자.(서술식으로 자신이 아는 내용/책에서 찾아본 내용을 써내려가보자.)
* /10, %10 등을 이용해서 해 보세요.
* 2중 for문을 사용하여 다음 모양의 별찍기를 작성해보자.
=== 강의 내용 ===
=== 강의 내용 ===
=== 강의 내용 ===
=== 강의 내용 ===
- 학회간교류 . . . . 11 matches
* 방 식 : 수업방식 + 질답시간 활용 + 이벤트들
* 위키사용법 : 네토리 회원은 위키에 약하다? 암튼. 아직 위키 문화에 친숙하지 않고, 에디트를 어렵게 생각하는 것 같아서.. --Netory:경태
* SQL2005 XML 데이터형 사용관련
* InfoPath 사용
* BizTalk Server 사용
* OllyDBG 나 WinDBG 사용 관련..
방식은 그저 편안하고 익숙한 수업방식이 좋을 것 같다. 대신 질답시간을 잘 활용해서 열성적인 분위기를 이끌어갔으면 좋겠다. --[경태]
오늘 분산처리 공부하다가 떠오른 아이디어인데, '''PC실 관리 프로그램''' 만들어보면 어떨까요? 각 PC실의 PC 동작 현황(현재 돌아가고 있는 프로그램)과 IP주소, 프린터 동작 여부 등의 정보를 웹상에서 보여주는 거죠.(아마도 인증된 사용자에게만 보여줘야겠지요. 동문서버팀하고 연동해도 되겠네요.) 해당 서버 프로세스는 동문서버에서 돌리고, 각 PC들마다 클라이언트 프로그램을 백그라운드로 돌리면 될 거 같고요. 그러면, 구지 구피에 자리없을 때, 7피까지 올라가보지 않아도 PC실 사용을 파악할 수도 있고, 필요하면 다른 장소에서도 학교 PC실 사용여부를 감독할 수 있겠지요. 차후 전체 PC 네트워크 관리나 바이러스 체크와 같은 관리면 등에도 응용이 가능할 것으로 예상해보고요. 어때요? --Netory:창선이
- 2학기파이선스터디/함수 . . . . 10 matches
add는 함수 객체를 참조하는 이름에 불과하므로 다른 이름을 이용해 함수를 호출할 수도 있다.
pass는 아무 일도 하지 않는 통과문(statement)이다. 함수는 최소한 한 개 이상의 문을 가져야 하기 때문에 사용한다.
인수 없이 return문 만을 사용하면 함수 호출측에 아무 값도 전달하지 않는다.
return문을 사용하지 않아도 None이라는 리턴 값은 존재한다.
* 내장 영역(built-in scope) - 파이썬 언어 자체에서 정의한 내용
LGB는 Local, Global, Built-in 의 약자로 지역, 전역, 내장 순으로 이름 공간이 적용된다.
g, h는 함수 외부에서 정의되었으므로 전역, a,b는 함수 내부에서만 사용되는 지역 변수이다.
함수 f내부의 h를 전역변수로 사용하려면(즉, 전역변수h의 값을 바꾸고자한다면)
global문을 사용하여 h가 전역 변수임을 선언해야 한다.
|| 내부 변수 선언 || 지역 영역에 변수를 생성하고 사용하는 것이 가능 || 지역 영역에 변수를 생성하는 것이 불가능 ||
- 5인용C++스터디/다이얼로그박스 . . . . 10 matches
* 다이얼로그박스에 있는 컨트롤(버튼, 라디오버튼, 체크박스, 리스트박스 등...)은 어떻게 사용하나?
대화상자(DialogBox)는 최상위 윈도우(top-level window)의 자식 윈도우로서 일반적으로 사용자로부터 정보를 얻기 위해 사용된다. Dialog는 사용자들이 파일을 선택하여 열기 등의 작업을 쉽게 하도록 합니다. 파일 작업을 쉽게하기 위해 제공하는 컴포넌트가 FileDialog클래스이다. Dialog는 Frame윈도우와 비슷한데 그 차이점을 살펴보면, 대화상자는 윈도우에 종속적이기 때문에 그 윈도우가 닫히면 대화상자도 따라서 같이 닫히게 된다는 것이다. 또한 윈도우를 최소화시켜도 대화상자는 사라지게 된다.
1-3 대화상자에서 MFC AppWizard[exe]를 선택을 하고, Location: 에 사용자가 생성시키고 싶은
이 부분에서 사용자가 선택하고 싶은 것을 선택을 한다. 이 Test프로그램은 Dialog based를
대부분의 대화상자는 modal이다. modal 대화상자는 부모 프로그램이 계속 실행되기 위해서 사용자의 응답을 기다린다. 이 말은 modal 대화상자는 사용자의 입력 확인 없이 부모 프로그램의 어떤 부분도 동작시킬 수 없다. modaless 대화상자는 부모 프로그램의 실행을 막지 않는다. 이것은 다른 부분의 프로그램의 실행을 대화장자가 막지 않는다는 것이다.
즉 modal dialog는 그 dialog가 닫혀지기 전에는 부모 윈도우로 마우스를 이용한 focus이동을 할 수 없다. 따라서, dialog를 닫지 않는 이상 main window프로그램을 이용할 수 없다.
- 5인용C++스터디/에디트박스와콤보박스 . . . . 10 matches
* 에디트박스의 내용을 어떻게 얻어오나?
* 콤보박스의 내용을 어떻게 얻어오나?
* 다이얼로그 박스에서 만들고 사용하는 방법을 발표하면 안됨!
에디트 컨트롤은 문자열을 보여주며 편집할 수 있도록 해주는 컨트롤이다. 주로 사용자에게 문자열을 입력받을 때 사용된다.
이 멤버함수들 중에서 Create 함수를 사용하면 대화상자 템플리트에 에디트를 배치하지 않고도 실행중에 에디트 컨트롤을 생성할 수 있다.
예제에서는 (10, 10, 300, 35) 사각 영역에 에디트를 생성하였으며 통지 메시지를 사용할 것이므로 IDC_MYEDIT라는 매크로 상수를 1000으로 정의하여 ID로 주었다. 여기서 1000이라는 ID는 임의로 준 것이다.
예제에서 에디트의 EN_CHANGE 통지 메시지를 사용해 보았다. 통지 메시지란 컨트롤에 어떤 변화가 발생했을 때 부모 윈도우에게 자신의 변화를 알리기 위해 보내는 메시지를 말한다.
EN_HSCROLL / 사용자가 수평스크롤 바를 클릭하였다.
EN_VSCROLL / 사용자가 수직스크롤 바를 클릭하였다.
- AI오목컨테스트2005 . . . . 10 matches
|| 날짜 || 시간및 장소 || 해올 것/해온나람 || 할 내용 || 불참자 ||
|| 12/29 || 4시 칠피 || 2인용 오목/현태 || 사용자 정의 메시지 사용법 ,, [MFC/MessageMap] ,[MFC/Socket] || 태훈(레저 생활),민경 ||
|| 1/05 || 4시 칠피 || X || 표준 오목 모델 사용법 설명 || 진행못함..||
|| 1/12 || 4시 칠피 || X || 표준 오목 모델 사용법 설명 || 없음 ||
* [(hongryun2)사용자정의메시지사용]
상품이 이정도가 된다면..;;ㅁ;; 학습하는 AI를 만들어서 하드디스크 꽉찰 정도의 용량을 학습시킨다음에 출전시켜야 하는거 아닌가용..ㅎㅎㅎ - [조현태]
- Benghun/Diary . . . . 10 matches
최근 모듈화에 대해서 공부하다가 dependency에 대해서 생각해 보았다. 무엇을 만들었을 때 dependency가 발생하는가? 함수나 클래스를 사용할 때 발생하더라. 클라이언트 코드는 사용하는 함수나 클래스가 변경될 때 영향을 받을지도 모른다. 그렇다면 dependency를 최소화하는(또는 없애는) 방법은 함수 나 클래스를 사용하지 않으면 된단 말인가? 코드 중복은 어떻게 없앨 수 있더라?
아는 사람 중에 함수나 클래스를 만드는 것을 대단히 꺼리는 사람이 있다. 만들면 좋을 것 같은 간단한 함수조차도 직접 만들려고 하지 않는다. 하지만 이미 잘 만들어 진 라이브러리는 자주 사용한다. dependency가 없다면 변경에 영향을 받는 모듈이 없을 것이다. 나름대로 잘 사용하는 replace all in files, replace all in file, copy & paste등이 강력한 프로그래밍 도구중 하나인 것 같기도 하다.(최소한 나보다는 잘 사용하는 것 같다, 나름대로의 노하우도 있는 것 같다) 아마도 그는 dependency를 최소화하는 것에 큰 관심이 있거나 다른 이유가 있나보다.
론 제프리스님과 김창준님의 인터뷰내용(마소2001 11월)을 처음 읽었을 때(2001년 11월)는 그다지 큰 느낌이 없었는데 몇일 전에 다시 그 인터뷰내용을 읽었을 때는 인터뷰가 너무 짧았던 것이 너무나도 아쉽게만 느껴졌다. XPI의 삶의 순환 법칙 고객의 역할등도 대단히 좋은 내용이었다. 빨리 세미나 가야겠다
동호선배 장가간다고 자랑한 메일 내용
- CppStudy_2002_1 . . . . 10 matches
* C++의 문법도 익히고, 나아가서 사용법, OOP에 대해서 더 친숙 해지기, 다양한 과제를 통한 프로그래밍 경험 쌓기
* 주로 과제 위주로 할테니, 과제는 모두 꼭 해오세요. 과제는 그날 배울 내용에 맞는것을 고안해서 올리겠습니다.
* 먼저 매주 몇개씩의 과제가 나가면 각자 그 과제를 해오고(도우미도 해올 것임) 서로 소스를 보면서 분석이나, 비판 해보고 나서 각자 일주일 동안 공부하면서 느낀점을 구체적으로(앞으로 도움이 되도록 발전적인 방향에서, 즉 어떤 점이 잘못되어서 앞으로 어떻게 하면 잘될것 이라든가 어떤점은 잘되었는데 그이유는 어쨌다는 둥, 공부한 내용이나 학습 방법적인 면에서) 토론하기
= 각주 과제및 할 내용들 =
||날짜||하는 내용(분량)||과제||
|| 7.18 ||8.함수의 활용(104page)|| 458P ~ 460P 프로그래밍 연습 + ???? ||
|| 8.1 ||10.클래스를 사용하자(64page)||["StringOfCPlusPlus"] ||
|| 8.23 ||13.C++코드의 재활용(90page)|| 마무리, 잡담, 놀기 ||
|| 주 || 내용 || 한 사람 ||
상협. [STL/string|String] 클래스의 스펙을 어떻게 주었는지? 사람들이 왜 전부 String 이용 프로그램 GOD 클래스를 만드는걸까 궁리.
- Cpp에서의멤버함수구현메커니즘 . . . . 10 matches
위의 "간단한 설명=코드"를 인용하면서 설명합니다.
C++의 목표는 기존 C의 성능을 해하지 않으면서 OOP를 섞는 것입니다. 필연적으로 OOP적 사고에서 용납하기 어려운 코드를 실행할 수 있습니다. OOP를 C의 구현 위에서 해야 됩니다.
C++은 Strong typed language 이므로 컴파일 시간에 모든 형이 선언되고, 사용되는 것을 검증할 수 있습니다. 하지만 이는 다음과 같은 지역 변수에 국한합니다.
여기까지가, class 와 struct 키워드가 하는 동일한 작업입니다. 그리고, class 에는 몇가지 더 생각해야 하는데, 그중 하나가 foo 를 이용해서 어떠한 member 함수를 호출할 수 있는가 입니다.
C++ 표준안에서 전역에서 함수 호출과, instance에 귀속된 멤버 함수들의 호출을 가리지 않습니다. 함수 선언과 멤버 함수 선언의 함수 실행 코드는 모두 동일 방법으로 선언되고, 모두 동일한 메커니즘의 함수 포인터를 이용해서 호출합니다.
instance에 사용되었던 메모리는, 해당 process의 가용 메모리로 돌아가지, 접근 금지 영역으로 세팅되지 않습니다. 이 부분은 delete this 시 해당 instance 영역의 값을 어떻게 "청소"하느냐에 따라서, 플랫폼 별로 다르게 나옵니다.
foo2~3 이러한 배경 지식을 이용해서 결과를 이해할수 있는 보충 설명입니다.
이 된것이고, sayHello 내에는 pointer 값 NULL 을 이용한 접근이 없으므로 아무런 에러가 발생하지 않습니다.
(실행시점에 null 값인지 검사하고, 필요시 instance pool에서 instance를 pointer를 이용해서 접근하는 것으로 기억합니다. )
- FocusOnFundamentals . . . . 10 matches
어떻게 특정한 플랫폼에서, 특정한 언어로, 화면을 빨리 리프래쉬하는지 테크닉을 가르쳐주는 책에 관심있는 사람은 많아도 모든 플랫폼에서, 모든 언어로, 특정 문제에 어떤 패러다임을 적용해야 할 지 관심있는 사람은 드물다.
내가 EE 교육을 시작했을때 나는 나의 낡아빠진 'RCA Tube Manual'이 쓸모없는 것임을 알고 놀라게 되었다. 나의 교수들 그 누구도 특정 tube 나 tube 의 타입의 장점에 대해 칭찬한 적이 없었다. 내가 왜 그랬는지 질문했을때 '유명했던 디바이스나 기술들은 10년 내에는 별볼일 없어진다'는 것을 알게되었다. 대신, 나는 근본적인 물리, 수학, 그리고 내가 오늘날까지도 유용함을 발견하는, 사고하는 방법에 대해 배웠다.
명백하게, 실용적인 경험은 모든 엔지니어링 교육에서 필수적이다; 이는 학생들로 하여금 그들이 배워온 것을 어떻게 적용할지에 대해 배우는데 도움을 준다. 나는 연구실 숙제, 나의 취미 (아마츄어 라디오) 에서 기술들에 대해 많은 것을 배웠고, 또한 여름방학때 아르바이트 등에서도 배웠다. 하지만, 수업들은 더 지속적인 가치들의 개념을 가르쳐주고, 이는 오늘날까지도 나에게 새로운 기술들에 대해 이해하고 이용할 수 있도록 도움을 주고 있다.
소프트웨어 필드에 익숙한 독자들은 오늘날의 '중요한' 주제들은 언급되지 않음을 지적한다. ["Java"], "웹 기술", "컴포넌트 지향", 그리고 "프레임워크" 는 나타나지 않았다. 이러한 접근법과 툴들에 기반한 많은 좋은 아이디어들은 반드시 가르쳐야 한다. 연구실 숙제들과 다른 프로젝트들은 학생들에게 가장 대중적이고 유명한 툴들을 이용할 기회를 제공해야 하며, 또한 뭔가 새로운 것을 경험할 기호를 제공해야 한다. 하지만, 우리는 이러한 주제들은 오늘날의 이른 변덕을 위한 교체품들 이며 만병통치약이며 곧 교체될 것들임을 기억해야 한다. 교육자들에게는 오늘날의 학생들의 성공이 40년은 지속할 수 있어야 함을 기억해야 할 책임이 있다. 우리는 이 기간동안효과적이고 유용한 근본들을 알고, 그리고 수업시간에 이 원리들을 강조해야 한다. 많은 프로그래머들은 특정 시스템이나 프로그래밍 언어를 배우는 것이 뭔가 다른 것을 배우는 것일 뿐, 그 그거 자체의 목표가 아니라는 사실에 대해 시야를 잃곤 한다.
학생들은 일반적으로 가장 많이 이용될 것 같은 언어들 (FORTRAN 이나 C)을 가르치기를 요구한다. 이는 잘못이다. 훌륭하게 학습받은 학생들 (즉, 바꿔 말하면, clean language(?)를 가르침받은 학생)은 쉽게 언어를 선택할 수 있고, 더 좋은 위치에 있거나, 그들이 부딪치게 되는 해당 언어들의 잘못된 특징들에 대해 더 잘 인식한다.
사실 제 이야기는 수사적인 차원에서 약간 과장된 것일지도 모르겠습니다. FocusOnFundamentals가 적용되는 범위를 꼭 한계지을 필요는 없을 듯 싶습니다. 자바를 공부한다면 자바의 "fundamentals"에 더 집중을 할 수도 있겠죠. 하지만 늘 "큰 그림"을 보도록 노력해야 할 것입니다. 내가 공부하는 것 속에서 "fundamentals"는 무엇이고, 내가 공부하는 것이 속한 범주에서 "fundamentals"는 무엇인지.
''우선, 제가 OOP나 RDB 등 근본을 공부하라고 한 말을 OOP, RDB 이론서만 붙잡고 늘어져라는 의미로 곡해하신 듯 합니다. 자바 말고 OOP를 공부해라는 말이 부디 자바책은 보지말고 OOP 이론서만 보라는 말로 오해되지 않기를 바랍니다(저는 요즘들어 OOP 공부는 스몰토크에서 시작하는 것이 좋지 않을까 생각하고 있습니다). 그리고 잡다하다는 것은 여러가지 너저분하게 섞여있어 체계가 없다는 것입니다. "X가 잡다하다"고 하는 것은 X 속에 있는 내용물이 체계가 없다는 이야기가 됩니다. 잡다하다는 것은 존재 지향이 아니고 관계 지향의 표현입니다. --["김창준"]''
- HanoiProblem . . . . 10 matches
||도전자||총개발시간||소스라인수('''주석제외''')||사용언어|| Source ||
재귀함수가 사용되는 대표적인 예 몇가지를 보여줍니다. 재귀함수 사용에도 그 종류가 다른데, 대표적인 종류들을 보여주는 것이 중요합니다. "아, 재귀함수라는 것이 이렇게도 사용될 수 있구나!" 퍼뮤테이션/콤비네이션, 피보나치수열, 트리검색, 팩토리알, 조건문과 재귀호출로 반복문(while) 만들기 등이면 충분하지 않을까 합니다.
그리고 재귀함수를 만들 때 유의점과 사고보조물을 가르쳐 줍니다. 유의점이라면 재귀함수는 리턴되는 값의 종류(타입)가 모두 동일해야 한다는 것, 재귀호출을 벗어나는 지점 근방에서 유의해야 한다는 점 등이고, 사고보조물로는 스택의 상태를 그림으로 그리는 방법이나, 수식을 사용하는 방법 등이 있겠죠.
시작하는 수를 하나 주고, 특정한 연산을 사용하여 정해진 스텝만에 다른 수로 전환시키는 문제를 주었습니다. 예를 들어, 8에서 시작해서 곱하기 2나, 빼기 7을 사용해서 6번의 스텝만에 15를 만드는 문제입니다.
이를 HanoiProblem에 적용하면, 3개(혹은 5개, 6개)의 원반 문제가 복잡하다면, 하나, 둘 등의 좀 더 단순한 문제를 먼저 풀고 거기서 문제풀이의 "구조적 유사성"을 발견해 낸 뒤에 좀 더 어렵거나 좀 더 일반적인 (즉 원반 n개) 문제에 도전하는 것이 효과적이라는 말이 됩니다.
종종 미로가 너무 복잡할 때 목적지에서 거꾸로 내려오는 것이 더 간단할 때가 있습니다. TestDrivenDevelopment도 이 방법을 사용합니다. 자신이 원하는 것을 컴퓨터에게 설명해 주고, 그 목적지에서 거슬러 내려옵니다.
혹은, 중간을 끊어서 볼 수도 있습니다. 어찌되었건 모든 원반이 옮겨가려면 어느 순간엔가는 가장 큰 원반이 비어있는 막대기로 이동해 가야 합니다. 이 상황에서 가장 큰 원반이 있는 막대기에는 큰 원반 하나만 있을 것이고, 그 원반이 옮겨갈 막대기는 비어있어야 하므로, 결국 두개의 막대기가 모두 사용되고, 나머지 하나의 막대기에는 나머지 원반들이 모두 크기 순으로 쌓여있게 될 것이라는 추측을 할 수 있습니다. 여기서 앞 뒤 상황을 생각해 보면 어떤 통찰을 얻을 수 있습니다.
- HelpOnLinking . . . . 10 matches
하지만 이렇게 외부링크를 새창으로 열게끔 하는 방식은 사용자를 새창을 열도록 강제하기때문에 별로 권장할만한 방식이 아닙니다.
앞부분에서도 언급한 내용이지만, 자동으로 링크가 걸릴 경우 URL 주소 되에 공백을 넣어주거나, <http://moniwiki.kldp.org/wiki.php/FrontPage>와 같이 연결해주어야 합니다. 정리해보면
* Wiki:SixSingleQuotes 를 이용한다.
* 인용부호로 묶는다. "http://moniwiki.kldp.org"처럼 => bug
이와같은 기본 형식과 함께, 모인모인/모니위키에서 지원: `wiki:`, `attachment:`. "`wiki:`" 는 내부링크 혹은 인터위키 링크를 뜻합니다. 따라서 `MoniWiki:FrontPage` 와 `wiki:MoniWiki:FrontPage`는 똑같습니다. 주의할 점은 "`wiki:`" 형식은 괄호로 연결되는 링크의 경우 반드시 사용해야 합니다. `attachment:`는 파일 첨부를 위해 사용됩니다.
WikiName과 같은 식으로 연결되는 것을 방지하고 있는 그대로 보여지는 것을 원한다면 느낌표(''bang'')를 다음과 WikiName앞에 붙여서 다음과 같이 사용할 수 있습니다. {{{!WikiName}}} `!WikiName`. 또한 물음표를 임의의 단어 앞에 붙이면 강제로 링크가 걸리게 됩니다. i.e. {{{?Hello}}} `?Hello`.
=== 사용례 ===
=== 물음표를 사용한 강제 연결 ===
* 페이지 이름 없이 인터위키 이름을 다음과 같이 사용하는 경우 {{{[MoinMoin:]}}} [MoinMoin:] {{{[[MoinWiki:]]}}} [[MoniWiki:]]
- InsideCPU . . . . 10 matches
음...여기까지만..귀찮아서 못 적겠다.. 보통 플로피의 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의 용도는 무엇인가? 글로벌 메모리는 어떠한 태스크라도 접근 가능한 메모리를 말한다. 그리고 이를 정의하는 레지스터가
바이오스로 하드와 플로피를 제어할 필요가 있다. 이는 부팅 과정에서 커널을 특정 메모리에 올리는 데 사용된다. 필이 사용 된다. MBR를 복구하는 데도 가끔 사용된다.
- Java Study2003/첫번째과제/곽세환 . . . . 10 matches
자바는 컴파일 시에 에러 검사를 철저하게 하고, 실행 시에 발생할 수 있는 에러에 대해서도 실행 시에 철저하게 검사를 수행함으로써 신뢰도가 높은 프로그램을 작성할 수 있도록 해 줍니다. 또한, C/C++ 프로그램 개발자들을 가장 혼란스럽게 하고, 프로그램의 치명적인 오류를 발생시킬 수 있는 포인터 및 포인터 연산을 자바에서는 사용하지 않게 함으로써, 포인터를 사용함으로써 프로그래머가 범할 수 있는 오류를 없앴다는 것입니다.
자바는 서로 다른 이종(Heterogeneous)의 네트워크 환경에서 분산 되어 실행될 수 있도록 설계되었습니다. 이와 같은 환경에서는 응용 프로그램들이 다양한 하드웨어 아키텍쳐 위에서 실행될 수 있어야만 합니다. 이를 위해 자바 컴파일러는 이종의 하드웨어 및 소프트웨어 플랫폼에서 효율적으로 코드를 전송하기 위해 설계된 아키텍쳐 중립적인 중간 코드인 바이트코드를 생성합니다. 이는 동일한 자바 프로그램의 자바 바이트코드가 자바 가상머신이 설치되어 있는 어떤 플랫폼에서도 실행될 수 있도록 하는 것입니다. 또한, 자바는 기본 언어 정의를 엄격하게 함으로써 효율적인 이식성을 제공해 주고 있습니다. 예를 들어, int 형과 같은 기본 데이터형의 크기를 플랫폼과 무관하게 일정하게 하고, 연산자의 기능을 확실하게 규정하고 있습니다. C 언어를 이용하여 int 형을 선언할 때, 도스에서는 16비트, 윈도우 95/98/NT 등 32비트 운영 체제 환경에서는 32비트, 유닉스에서는 32비트 등 그 플랫폼에 따라 크기가 다르지만, 자바에서는 플랫폼에 상관없이 32비트로 고정되도록 하였습니다. 이는 자바 프로그램이 실행되는 환경이 자바 가상머신으로 동일하기 때문입니다.
JDK와 함께 제공되는 자바 가상머신에 의해 독립적으로 실행될 수 있도록 작성된 자바 프로그램입니다. 다시 말해서, 여러분의 컴퓨터에서 윈도우의 도스창 또는 유닉스 쉘 등과 같은 쉘에서 자바 가상머신을 이용하여 실행시키는 자바 프로그램입니다. 위에 나오는 그림은 자바 애플리케이션의 실행 과정을 자세히 보여주고 있습니다.
<APPLET>~</APPLET> 태그를 이용하여 HTML 페이지 내에 포함되어, 자바 호환 웹 브라우저에 의해서 실행되도록 작성된 자바 프로그램입니다. 다시 말해서, 여러분의 홈 페이지 내에 삽입되어 자바 호환 웹 브라우저에 의해 실행되도록 규약에 맞추어 작성된 자바 프로그램을 말하는 것입니다. 다음에 나오는 그림은 자바 애플릿의 실행 과정을 자세히 보여주고 있습니다.
델파이 또는 비주얼 베이직을 이용하여 프로그램을 작성할 때, 버튼이나 창과 같은 컨트롤들을 마우스로 끌어다 프로그램 내에 삽입할 수 있도록 되어 있는데, 이와 마찬가지로 자바 빈은 하나의 완벽한 기능을 갖고 재사용될 수 있도록 만들어진 소프트웨어 컴포넌트입니다. 마이크로소프트에서 제공되는 ActiveX 컴포넌트와 같이 자바에서 컴포넌트 프로그램을 가능하도록 해 줍니다.
다른 자바 프로그램에 의해 삽입(import)되어 사용될 수 있도록 작성된 자바 프로그램입니다. 이러한 자바 패키지는 기존의 프로그래밍 언어에서 사용하던 라이브러리 또는 운영체제에서 제공해 주는 API 등과 같다고 볼 수 있습니다. 자바 패키지 역시 해당 규약을 갖겠지요. 자바에서는 기본적으로 압축 파일의 형태로 'casses.zip"이라는 자바 패키지가 제공되고 있고, 압축 파일 내에는 디렉토리 단위로 패키지가 포함되어 있습니다. 다음에 나오는 그림은 JDK 1.2.2 에서 제공되는 패키지를 보여주고 있습니다.
- LearningGuideToDesignPatterns . . . . 10 matches
Pattern들은 각각 독립적으로 쓰이는 경우는 흔치 않다. 예를 들면, IteratorPattern은 종종 CompositePattern 과 같이 쓰이고, ObserverPattern과 MediatorPattern들은 전통적인 결합관계를 형성하며, SingletonPattern은 AbstractFactoryPattern와 같이 쓰인다. Pattern들로 디자인과 프로그래밍을 시작하려고 할때에, 패턴을 사용하는데 있어서 실제적인 기술은 어떻게 각 패턴들을 조합해야 할 것인가에 대해 아는 것임을 발견하게 될 것이다.
여러해가 지난 지금, DPSG는 23주 기간의 pattern들을 공부하는 스터디 그룹들을 가져왔다. 각각의 그룹들은 스터디 그룹을 위한 navigation 에 대해 실험하고, 토론하고, 수정했다. 여기서 제안된 navigation은 매 새로운 스터디 그룹들에게 이용된다. 여기서 제안된 navigation은 Pattern 초심자들에게 더 지혜롭게 하나의 패턴에서 다른 패턴으로 이동하게끔 도와줄 것이며, 효율적으로 23개의 Pattern들을 터득하는데 도움을 줄 것이다. 물론 이 navigation은 계속 개선해 나갈 것이다. 그리고 당신이 제안하는 개선책 또한 환영한다.
FactoryMethodPattern 로 시작하라. 이 패턴은 다른 패턴들에 전반적으로 사용된다.
StrategyPattern 또한 책 전반에 걸쳐 빈번하게 이용된다. 이 패턴에 대해 일찍 알아둠으로써, 다른 패턴을 이해하는데 도움을 줄 것이다.
SingletonPattern은 종종 AbstractFactoryPattern 을 만드는데 이용된다. (Related Patterns 참조)
고전적인 MVC Design 을 구현하기 위해 어떻게 ObserverPattern에 의해 MediatorPattern 이 이용되는지 발견하라.
ObserverPattern 과 MediatorPattern 들을 이용한 message의 전달관계를 관찰하면서, ChainOfResponsibilityPattern 의 message handling 과 비교 & 대조할 수 있다.
CommandPattern 은 앞의 MediatorPattern 과 관련된, 여러가지 방면에서 이용된다.
아마도 가장 복잡한 creational pattern 일 것이다. PrototypePattern 은 종종 CommandPattern 과 같이 이용된다.
가장 복잡한 Pattern중 하나이다. 이 Pattern의 이용 예제는 다음 패턴인 InterpreterPattern 에서 서술된다.
- MFC/DynamicLinkLibrary . . . . 10 matches
종전의 방식처럼 정적으로 링크를 하게되면 윈도우 프로그램의 특성상 굉장히 메모리를 많이 차지하는 프로그램이 동시에 실행이 되면서 쓸데없이 동일한 코드영역이 중복적으로 메모리 공간안에 차지하게 되는 현상이 발생하였다. 여기서 착안하여 생겨난 것이 DLL이다. 이는 실제 프로그램의 수행부분을 한개로 두고서 여러개의 프로그램에서 그 부분을 공유하여 사용하는 것이다.
프로그램과 DLL이 메모리 안으로 로드되자마자 사용되는 함수들에 대한 링크가 성립된다.
프로그램이 먼저실행되데 DLL은 프로그램의 요청이 발생한 시점에서 메모리에 로드된다. 그때가 되서야 프로그램은 DLL로부터 함수의 어드레스를 얻고 그것을 사용해서 함수를 호출한다.
runtime dynmaic linking 의 중요한 점은, 런타임 상에서 해당 모듈을 교체할 수 있다는 점이다. winamp 의 나 KMP 등와 같은 플러그인을 제공해주는 프로그램의 경우 대부분 이러한 runtime-dynamic linking 방법을 이용한다.
= DLL의 내용 =
DLL은 함수에 대한 코드만을 저장는데 국한되는 것이 아니다. 비트맵, 폰트와 같은 리소스들을 DLL 안에 위치시킬 수도 있다. 예를 들자면 카드놀이에 사용되는 Cards.dll 에서 카드들에 대한 비트맵 이미지와 그 것들을 다루는데 필요한 함수들을 포함하고 있다.
독립적 실행은 불가능하지만 main함수의 변형된 형태를 포함한다. 이 곳에서는 dll이 사용되기 전에 초기화되는 내용들이 포함되게 된다. DLL초기 로드시 운영체제가 호출한다.
DLL 에서 동적으로 메모리를 생성하는 경우, 해당 DLL 을 이용하는 프로세스의 힙에 해당 메모리 공간이 잡히게 된다. DLL 이 하나만 올라간다고 메모리가 공유되진 않는다.
만일 프로세스-global 한 메모리를 쓰고 싶다면, 메모리 맵을 이용하거나 DLL 공유 영역을 선언하는 방법 등을 써야 한다.
- MFCStudy2006/1주차 . . . . 10 matches
==== 주요 내용 ====
* MFC를 이용한 기본적인 프로그래밍
* '''MFC를 이용한 메신저 제작'''
==== 상세 내용 ====
* 무엇이든지 좋습니다. MFC를 이용하여 어떠한 것이든 화면에 출력하게끔 하세요.(추가내용)
==== 주요 내용 ====
==== 상세 내용 ====
* 기본 메신저 내용 구현 (3주)
* "도움말" 박스 안 내용 수정
- MoniWikiPlugins . . . . 10 matches
== 사용자 인터페이스 관련 ==
== MoniWiki용 플러그인 ==
* FastSearch (bsd해쉬를 이용한 빠른 FullSearchMacro)
* Gallery 간단한 갤러리(UploadFile매크로 이용)
* OeKaki 그림그리기용
* EngDic /!\ 데모용
* Test /!\ 데모용
* UWL /!\ 데모용
* format: 프로세서를 액션으로 이용하기위한 인터페이스 액션 (모인모인도 이 방법을 쓴다)
* man_get: man 번역용 플러그인
- NotToolsButConcepts . . . . 10 matches
SICP를 책을 보면 예제 코드가 SchemeLanguage로 나온다. SchemeLanguage에 대해서는 잘 모르지만, 이 언어를 사용하면 개념 전달을 쉽게 할수 있어서인듯 싶다. 툴이야 몇번 쓰면 자동적으로 익혀지게 되지만(더군다나 요즈음에 나오는 툴들은 더하다) 하나의 개념, 패러다임을 자기 것으로 만드는 데에는 얼마나 오랜 시간이 걸리는가. (ToyProblems 때도, 간단한 문제를 가지고 여러 가지 방법으로 접근하였던 기억이 난다). 밥을 짓는 법을 안다면, 가스불로 만들던, 전기밥솥에 하던 상관이 없다.
NeoCoin 은 이렇게만 생각했지만, 2년 전 즈음에 생각을 바꾸었다. 구지 영어로 비슷하게 표현하면 UseToolAndLearnConcepts 이랄까? 돌이켜 보면 이런 상황을 더 많이 접하였다. 언어를 떠나 같은 시기 동안에 같은 일에 대하여, 같은 도구를 사용하는데, 한달뒤의 사용 정도와 이해도가 다른 사람들을 자주 보게 된다. 도구의 사용 능력 차이가 재미와 맞물려서 도메인의 사용 폭의 이해도 역시 비슷하게 따라오는 모습을 느낄수 있었다. 멋진 도구에 감탄하고, 사용하려는 노력 반대로 멋지지 않은 도구에서 멋진 면을 찾아내고 사용하려는 노력 이둘은 근본적인 Concept을 배우는 것과 멀리 떨어진것은 아닌것 같다.
NotToolsButConcepts라는 말은 수사적인 표현으로 용납할만한 범위에 든다고 봅니다.
가족오락관에서 보면 여러명이 일렬로 서서, 맨 끝의 한 사람에게만 속담이나 사자 성어를 하나 보여주고, 그걸 몸짓으로 차례로 전달해서 마지막 사람이 맞추는 게임이 있습니다. 최초 몸짓을 하는 사람의 의도를 이해하지 않고 그 모션을 그대로 이용할 수는 있습니다. 하지만 그 내면적 의미를 꿰뚫고 있지 못하다면, 비록 아무리 잘 관찰을 했다고 해도 나는 분명 모션의 일부를 왜곡하거나 빠트린 채 전달을 하겠지요. 그러나 이용을 계속 하다보면 우연히(그러나 꽤 오랜 시간 후에) 그 의도를 깨칠 수도 있겠지요. 하지만 우리는 "의도적으로" 그 사람의 의도를 들여다 보려는 노력을 해야 합니다 -- 그 사람의 사고를 거슬러 올라가기도 하는 등 여러 방법을 동원해서 말이죠. 그렇게 되면 우리는 똑같은 사자 성어에 대해 훨씬 더 우아하고 더 단순하며 명료하게 다듬은 모션을, 혹은 전혀 다른 모션을 새로이 창조해서 다음 사람에게 전달할 수도 있지 않겠습니까?
- NumericalAnalysisClass . . . . 10 matches
강의내용 : 최근의 수치해석 수업은 그래픽스 수업의 선수과목으로서 성격이 이전과 달라졌다. 주로 line, curve, plane, matrix 등 그래픽스와 관련된 내용을 배운다.
전산학에서 OOP의 발전을 별로 수용하지 않은 대표적인 두 영역이 컴파일러와 수치해석 쪽이다. 또한, 대부분의 수치해석 교과서들은 잡다한 기법과 코드의 백과사전 수준에서 그치고 있다.
하지만 이 책은 다르다. 어떤 문제를 접했을 때 어떻게 프로그램을 새로 만들어 내야하는지, 디자인은 어떻게 해야하고, 훌륭한 프로그램을 어떻게 만드는지를 말하고 있다. 게다가 OOP를 "정말" -- 시늉으로써만이 아니고 -- 사용한다. 모든 코드가 Java와 Smalltalk 양자로 쓰여있는 점도 큰 장점이다.
과목 자체의 진행은 괜찮다고 생각. 교과내용이 바뀐뒤의 첫 적용이여서 그런지, 교재내용에 없는 내용이 자주 언급되었다. (근데, 이게 그 예전 책의 내용인듯 하다는. -_a) 도서관에서 두권정도 책을 섞어봐야 할듯. (Applied Numerical Analysis 던가.. 이 책에서 내용이 수업과 비슷했던걸로 기억). 뭐. 중간에 설명하시다가 틀리시는것만 빼면 -_-; 그래도 인간성과 중간중간 인생선배 (실제로도 학과 선배이시니)로서의 조언으로 보완을. ^^;
- PragmaticVersionControlWithCVS/WhatIsVersionControl . . . . 10 matches
이장에서는 서로 다른 의미로 사용되는 용어의 정의를 목적으로 한다.
개발 중인 프로젝트의 모든 버전이 저장되는 장소이다. 파일 시스템, DB일수도 있으며, 어떤 경우에는 2가지를 같이 사용하기도 한다.
최근에는 네트워크를 이용해서 원격지의 서버에 존재하는 저장소에 저장한다.
각각의 체크인된 버전에는 체크인한 날짜, 시각, 변경의 내용을 저장하는 주석이 포함된다.
이 경우 PreRelease2를 불러들이게 되면 상기의 버전의 파일들이 불러들여지게 된다. 태그는 프로젝트의 진행에 있어서 중요한 일이 발생한 시점을 기록하는 것으로 사용되는 것도 가능하다.
브랜치를 이용하면 한명의 개발자가 한개의 컴퓨터를 가지고도 릴리즈 버전의 버그 수정작업과 mainline상의 프로그램의 개발을 동시에 하는 것이 가능하다.
파일을 체크아웃하는 시점부터 그 파일들은 읽기전용의 속성으로 변경된다. 따라서 다른 사람이 그 파일을 체크아웃하더라도 수정을 할 수는 없게되는 것이다.
다수의 체크아웃을 허용하는 대신에 체크인을 하는 때에, 저장소에 저장된 파일들을 로컬 작업공간에 반영시킨다.
상기와 같은 식으로 소스를 수정한뒤 fix01, fix02를 순차적으로 체크인하면 fix01에 의해서 저장소에 있는 파일이 갱신되었기 때문에 fix02가 체크인 되는 시점에서 충돌이 일어나게 된다. 이경우 CVS는 fix02의 소스에서 fix01에 반영된 3번째 줄의 변경내용을 병합하여 로컬 작업 공간에 반영하고 체크인하게된다.
- ProgrammingPartyAfterwords . . . . 10 matches
1시 40분 경 문을 열고 들어오는 이가 오늘의 Mentor 중 한명인 김창준씨와 신제용씨였다. 그들은 오늘 프로그래밍 파티의 경기 규칙이나 룰, 시간 같은것을 말해 주었다. 2시 10분경 상협군이 헐러벌떡 뛰어 왔다. 쫌 전에 창섭이와 혁기도 왔다.
모두 리눅스에서 개발을 했고, MOA팀은 C+ViImproved 를 사용했고, ZP#1, ZP#2는 모두 Java+["Eclipse"]를 사용했다.
시간이 좀 흘렀을 때, 희록님의 생각은 '우리 모두 이 프로그램을 짜는데서 왜 알고리즘이 사용되어야 하는지 모르고 있다. 이는 문제를 제대로 파악하지 못했다는 것을 의미한다' 라는 생각을 하였다. 그 때, 누군가가 입력 형식에 관해서 Mentor에게 물었다. 하지만 아쉽게도 입력형식에 대해서 명확한 답을 얻을 수는 없었지만, 몇가지 새로운 사실들을 알수 있었다. 하지만 진행은 계속 지지부진하게 되었다. 희록님은 다시 그것을 깨고자 "CRC카드를 한번 사용해서 문제를 다시 한번 생각해보자"라고 하였다. 우리는 CRC카드를 작성하기 시작하였고, 우리가 CRC카드를 이용해서 시뮬레이션을 실행해보고서는 요구사항을 분석하는데는 크게 도움이 되지 않았지만, 우리가 프로그래밍시에 어떤 객체들이 필요할지와 그 속성들에 대해서는 약간 명확해졌다.
그 때쯤인가, ZP#2팀의 Mentor이신 김창준님이 '슬쩍' 오셔서 Design이 잘 떠오르지 않는다면, 비슷한 아키텍쳐를 가진 문제를 풀어서 그 아키텍쳐를 재사용해 보라는 말씀을 하셨다. 하지만, 우리 팀원중 아무도 그것에 대해선 이후에 언급하지 않았다.(묵살되었다. --) 그러다가 우선 요구분석에 대한 이해를 높이고, 디자인을 상세화하기 위해서(디자인->코딩->디자인->코딩 단계를 반복하였다.) 코딩을 시작하기로 하였다. 상협군과 인수군은 매직펜을 맡았고, 희록군은 키보드를 맡았다. 희록군은 Unix환경에서의 Eclipse의 작업 문제로 인해 심각한 스트레스를 받고 있었다. 그러다가 컴퓨터를 한번 옮겼으나 그 스트레스를 줄이진 못했다. 아무래도 공동으로 프로그래밍 하는거에 익숙하지가 않아서 좀 서투룬 감이 있었다. 그래도 해야 겠다는 생각을 하고 문제의 요구 사항을 분석하고 어떻게 설계를 해야할지 의논했다.
요구분석을 마치고 디자인을 하기로 한 시간이 되었기에 팀원들은 한 테이블에 모였다. 그리곤 CRC 카드를 이용해서 디자인에 들어가기 시작했다. 암묵적으로 ["구근"]님이 ZP#2의 무게중심이 되어서 디자인 회의가 시작되었다. 어떤 클래스들이 필요한가, 어떤 이벤트를 누가 발생시키고 그 이벤트를 누가 알아야하는가에 대한 이야기가 오가는 가운데 ["데기"]는 문제파악 조차 제대로 안되어서 무척 혼란스러웠다. 서로 요구분석 이해에 차이가 있었음에도 불구하고 디자인은 계속 진행되었고, 시간은 계속 흐르고 흘러서 구현을 시작하기로 한 시간을 훌쩍 넘어버렸다.
팀의 사람수가 4명인 관계로 다른팀이 컴퓨터 1대를 쓰는 동안 두 팀으로 나누어 컴퓨터 두대를 이용, 작업을 해 나갔다. 다른 팀을 많이 둘러보진 않았지만, Pair 간의 대화가 잘 이루어지고 있었다. 단, 두팀으로 나누어진 관계로, 서로의 작업부분에 대한 통합부분에 대해서는 특별한 진행을 하지 않는 것 처럼 보였다.
결과를 발표하고 그 사이에 이루어졌던 토론에 대한 내용을 멘터들에게 전했다.
- ProjectZephyrus/간단CVS사용설명 . . . . 10 matches
= CVS 사용 in linux =
설치, 로그인 과정 생략, 팀원의 아이디로 로그인 하면 쓰기, 읽기 권한 허용
설정후 사용 (98의 2번 방법도 무리 없음)
이런 식으로 사용
==== local 사용자를 위한 서버 설정 ====
'''1. 사용자 그룹 추가'''
이제 ZeroPage 서버내에서 cvs 그룹에 등록된 사용자는 ZP내에서는 접근 가능
==== 원격 사용자를 위한 서버 설정 ====
'''2. ZeroPage 서버는 현재 Redhat 7.0이므로 xinetd를 이용하므로 세팅'''
를 만들고 내용은
- WOWAddOn/2011년프로젝트/초성퀴즈 . . . . 10 matches
WOW의 애드온은 Lua나 Ruby와 같은 스크립트 언어를 사용하는것으로 알고있다.
=== WOW API를 이용해서 아이템 이름을 불러오자! ===
또한 Widget과 LuaFunction의 사용정보를 볼수 있다.
아직 WOW addon에 대해서 모르는것도 있고. WOW에서 사용하는 몇몇 자료구조가 특이한건 알겠다. 젠장. Item에 뭔 부가정보가 그렇게 많이 붙어!! 여튼 그것에 대해서는 한번 다시 다루어보아야겠다.
이제 이것을 이용하여 "카르가스\:얼라이언스\:Aldiana"를 한글은 초성만 뽑고 그 외는 그냥 보존해서 출력해 보는것을 연습해보자
예제로 들은게 뭐냐하면 도시에서만 2. 거래 채널을 사용할수 있는데 밖에 나갔을때 이 채널이 활성화되있지만. CHAT_MSG_CHANNEL 이벤트를 더이상 서버에서 보내지 않는다는것이다.
Coroutine을 이용해서 만드는듯 한데 뭔가 이상하다.
그래서 OnUpdate를 Frame에 등록하고 사용해보았다.
WOW Addon Studio는 WOW Addon의 UI디자인과 이벤트 헨들링을 도와주는 유용한 툴이다.
OnUpdate에 적용할 함수를 만들고 가상 프레임이 아닌 실제 프레임을 툴로 만들어 생성하게 하면
- XpQuestion . . . . 10 matches
- '필요하면 하라'. XP 가 기본적으로 프로젝트 팀을 위한 것이기에 혼자서 XP 의 Practice 들을 보면 적용하기 어려운 것들이 있다. 하지만, XP 의 Practice 의 일부의 것들에 대해서는 혼자서 행하여도 그 장점을 취할 수 있는 것들이 있다. (TestDrivenDevelopment, ["Refactoring"], ContinuousIntegration,SimpleDesign, SustainablePace, CrcCard Session 등. 그리고 혼자서 프로그래밍을 한다 하더라도 약간 큰 프로그래밍을 한다면 Planning 이 필요하다. 학생이다 하더라도 시간관리, 일거리 관리는 익혀야 할 덕목이다.) 장점을 취할 수 있는 것들은 장점을 취하고, 지금 하기에 리스크가 큰 것들은 나중에 해도 된다.
- Story Card 는 Kent Beck 이 사용자와 더 빠른 피드백을 위해 생각한 덜 형식적인 방법이다. 어차피 Story Card 는 전부 AcceptanceTest 로 작성할 것이기에, 테스트가 작성되고 나면 AcceptanceTest 가 도큐먼트 역할을 할 것이다. Index Card 도구 자체가 보관용이 아니다. 보관이 필요하다면 위키를 쓰거나 디지털카메라 & 스캐너 등등 '보관용 도구', 'Repository' 를 이용하라.
- 어차피 실제 고객에게 가치를 주는 중요한 일만을 하자가 목적이기에. Documentation 자체가 중요한 비즈니스 가치를 준다던가, 팀 내에서 중요한 가치를 준다고 한다면 (예를 들어서, 팀원중 몇명이 항시 같이 작업을 할 수 없다던지 등등) Documentation 을 EngineeringTask 에 추가하고 역시 자원(시간)을 분배하라. (Documentation 자체가 원래 비용이 드는 일이다.)
=== PairProgramming 적용하기 ===
- ["1002"] 가 ProjectPrometheus 를 할때엔 거의 전체 작업을 Pair로 진행했다. Integration 비용이 전혀 들지 않았다. (두명이 멤버였으니; 당근!) 그리고 초기 소스와 지금 소스중 초기 모습이 남아있는 부분을 보면 '젠장. 왜 이렇게 짠거야? 이런 허접한...' 이다. 중복된 부분도 많고, 매직넘버도 남아있고, 처음엔 쓸거라 생각했던 일종의 어뎁터 역할을 하는 클래스는 오히려 일만 복잡하게 만들고 등등.
그리고, '지식의 전파'가 프로젝트에서 효율을 높인다고 한다면. 이번 기회에서도 ["1002"] 는 Pair를 한 사람과 같이 싸우고 치고 받고 하면서 여러가지 생각을 할 수 있었던 기회가 되었다. '충돌' 이 물리적작용으로만 끝난다면 상처밖에 남지 않지만, 화학작용을 한다면 뭔가 새로운 것을 만들어낸다. Pair 는 단순히 '한사람 Skill' + '한사람 Skill' 은 아니라 생각한다.
- ZeroPage성년식/거의모든ZP의역사 . . . . 10 matches
=== 정리되지 않은 내용 ===
=== 정리되지 않은 내용 ===
=== 정리되지 않은 내용 ===
=== 정리되지 않은 내용 ===
=== 정리되지 않은 내용 ===
* 월드 IT쇼 참가 // 이건 참가했다고 적으면 우리가 뭐 전시했다는 내용 같아서 패스할게요 - [지원]
* 충분한 시간이 지났다고 생각하여 위키에서 해당 내용 삭제합니다. 어떤 식으로든 문제의 소지가 있는 기록은 남기고 싶지 않습니다. 캡스톤 설계실의 사용과 ZeroPage의 관계에 대해서는 수차례 정모에서 말한 바 있기에 별도의 알림 없이 지웠습니다. - [김수경]
=== 정리되지 않은 내용 ===
* 삼성전자 번들용 영어 교육 프로그램
- ZeroPage정학회만들기 . . . . 10 matches
재정적 지원은 저희가 크게 쓰는 비용이 없는 만큼(공간이 없어서 부대비용을 쓸수가 없죠..)
* 서버 업그레이드 비용, 세미나, 각종 행사를 치르는 데 드는 비용 마련.
* 위의 내용은 ZeroPagers 2001학번들의 토의 내용입니다. 의견있으면 적어주세요.
- 개강총회보단.. 종강총회가 어떨런지 -_-;; 그리고 학우들 서명받는것은.. 시험후 방학중이니.. 설문조사란을 이용하는등 동문게시판을 이용하는 것이 어떨런지요... -_-a - ["Dantert"]
* 결론이 지도교수님모시기로 났습니다. 학과에서 '정학회' 로써 학과차원의 지원은 불가능할 것이다 라는 것이 학과장님의 말씀이셨습니다. 과차원의 지원이 있지 않다면 굳이 명분을 쌓을 이유가 없어진다고 봅니다. 설문조사를 하는 것이 명분을 얻기 위해 한다고 보기 때문에 이제는 설문조사가 필요없을 듯 싶습니다. 전에 설문지 돌렸을 때 서명해주신 학우들께 죄송할 따름이지만요.. 혹시 설문조사를 하는 것이 좋다는 의견이 제가 언급한 내용과 다른 이유에서라면 말씀해주세요. 다른 이유가 있을 것이라는 생각이 듭니다. --창섭
정확히는 '정학회'라는 용어가 아니라(어느 곳에도 정학회의 정의는 없으니.. 학과장님께서도 '정학회가 먼가?' 라고 하셨을 정도입니다...--; ) '지도교수님을 모시는 학회'가 된다고합니다. 정도가 될 것 같네요.. 아마 보기에는 '도움이 될것이다. 타 학우들에게 영향을 못미친다. 그저 그렇다.' 등등 의 관계성과 영향력의 정도를 묻는 보기나 '찬성한다. 반대한다. 관심없다.' 정도의 관심유무, 찬반의견을 묻는 보기쯤이 나올 듯합니다. 더 좋은 보기가 있었으면 좋겠는데.. 잘 생각이 나질 않습니다..^^; --창섭
- 객체지향분석설계 . . . . 10 matches
프로젝트의 목표는 여러가지로 정할 수 있다. 이 프로젝트를 통해 얻고자 하는 비지니스 요구사항, 이 프로젝트를 사용하는 사용자가 얻기 위한 사용자 요구사항, 그리고 개발자 요구사항등이 있을 수 있다.
세 가지 요구사항중 우리는 사용자의 요구사항에 귀를 기울이면 된다.
선택한 유즈케이스에 각각 유즈케이스 명세서를 작성하여 주자. 다음과 같은 내용이 포함된다.
* 사전조건 : 이 유즈케이스가 발생하기 전에 되어있어야 하는 내용
* 사후조건 : 이 유즈케이스가 종료된 후에 되어있어야 하는 내용
* 기본흐름(*) : 기본 사용 시나리오
* 대안흐름 : 기본 사용 시나리오중 분기가 발생할 수 있는 경우
* 예외흐름 : 기본 사용 시나리오중 예외가 발생할 수 있는 경우
- 날다람쥐 6월9일 . . . . 10 matches
|| 주소 |||| 변수 |||| 내용 ||
a = 14; 라는 명령어를 통해 a의 내용을 14로 바꿀 수 있다.
a라는 것은 a라는 변수가 나타내는 주소(1000)의 내용을 나타내주는 것이다.
함수 내에서 값을 아무리 바꿔봤자 지역변수 의 내용은 바뀌지 않는다. 이것을 어디서나 쓸 수 있게 하기 위해서.
이것은 캐릭터, 더블 등 다른 변수에도 모두 적용된다.
(맨 밑의 고치기 버튼을 누르면 수정할 수 있고, 자기 이름 밑에 내용 쓰기. 위의 내용은 바꿔도 되지만 책임못짐 ㅋㅋ)
= 포인터를 이용한 간단한 프로그램 =
이름과 반을 3개 입력받고 포인터를 이용해서 edit라는 함수 안에서 2번째 입력받은 사람을 수정한 후 다시 출력하기. 예) 유정석 1
포인터를 이용한 간단한 프로그램 :
- 논문번역/2012년스터디/신형준 . . . . 10 matches
자필 글자 인식에 대한 체제가 발표됬다. 이 체제는 자유 분할 접근에 의한 특성을 가지고 있는데, 전체 문서의 한줄이 인식모듈에 의해 처리되어 진다는 의미를 가지고 있다. 전처리, 특징추출, 그리고 통계적 모형화에 있어 사용되는 방법이 소개되어 있고, 인식 주제(문서) 들을 자필로 하는 독립된 작가, 다수의 작가, 그리고 혼자쓰는 작가에 대한 몇몇의 실험들이 실행되었다.
특히, 선형판별인식, 이서 문자 모델, 그리고 통계적 언어 지식의 설립에 내용이 조사되어 있다. 어휘가 자유로운 자필인식에 대한 평가 결과들은 제안된 방법들이 효과적임을 보여준다.
패턴 인식의 도전 영역은 자필 문서 인식에 있다. 지금까지 대다수의 자필 인식 시스템은 우편 주소를 읽거나 은행 수표와 같은 형태들을 처리하는데 사용됬다. 반면에 이 시스템은 분리된 문자 또는 단어에 대해서 한계를 가지고 있는데, 오직 구속되지 않은 자필 문서의 인식에 대한 많지 않은 시스템 만이 존재했다. 이와 같은 수행의 증가된 복잡성 때문에, 문자의 부재 혹은 단어의 경계 정보, 거기에 크거나 심지어 한계가 없는 단어들에 의해 특징지어진다.
전처리 과정과 특징추출에 대한 방법이 묘사되었다. 그리고 게다가 선형 판별 해석, 이서 특징 모델들의 사용, 그리고 통계적인 언어 모델들과 같은 더 세련된 기술들을 살피게 될 것이다.
다음 부분에서 우리는 오프라인 필기인식에 관련된 일의 짧은 보고서를 볼 수 있다. 우리가 사용하는 데이터베이스는 section 3에서 소개되어질 것이다.
그후에 우리는 그다음 section들에서 전처리 과정 단계, 특징 추출에 대한 방법, 그리고 통계적 모델링과 인식을 이용한 기술들을 묘사한다. 제안된 방법들의 효율성을 입증하기 위한 평가결과는 section 7에 있다.
선형 연립 방정식의 중요한 특성들은 벡터들의 개념과 표시법에 의해 묘사되어 질 수 있습니다. 이 부분에서는 벡터들과 평범한 방정식들의 연립들이 연관된 방정식들을 연결해 줍니다. 이 백터라는 용어는 다양한 수학적이고 물리적인 문맥(우리가 Chapter 4, “백터 공간”에서 논의할)을 나타냅니다. 그때까지, 벡터는 숫자들의 정렬된 목록으로 써 의미를 가집니다. 이 간단한 생각은 우리에게 흥미롭고 중요한 적용들을 가능한 빠르게 얻게 도와줍니다.
두 벡터들의 합은 유용한 기하학적 표시법을 가지고 있습니다. 북석적인 기하학구조에 의해 앞의 규칙이 학인되어 질 수 있습니다.
그리고 이것은 c1,...cp의 weights를 같는 v1,..,vp의 선형결합이라고 불려집니다. 이와 같은 선형결합을 실행할때, 위의 속성 (ii)는 우리에게 괄호를 누락시키는걸 허용해줍니다. 선형결합에서 weights는 0을 포함한 어느 실수라도 될 수 있습니다. 예를들어 벡터 (p28의 벡터 3개) v1과 v2의 몇몇의 선형결합과 같이 나타낼 수 있습니다.
- 데블스캠프2003/넷째날/Linux실습 . . . . 10 matches
척 보기에 리눅스는 윈도우 처럼 비쥬얼하지도 않고, 참 심심하게(?) 생겼음에도 불구하고 사용하는데, 그에는 아래와 같은 장점들이 있습니다.
* 저작권 비용 필요없음
* 소스가 공개되어 버그 수정에 사용자가 참여할 수 있음
=== 명령어 사용해보기 ===
* mv aaa.txt ccc.txt => aaa.txt를 ccc.txt로 이름을 바꾸는 용도로 쓸 수 있다.
* man (알고 싶은 명령어)의 형식으로 사용한다. cp명령어에 대해 알고 싶으면 man cp를 쓰면 된다.
=== 사용법 ===
* copy, paste 등 편집과 관련된 다양한 기능을 사용할 수 있다.
* C 소스를 입력합니다. 단, C++ 스타일이 아닌 C 스타일로. 즉, stdio.h와 printf등을 사용하라는 뜻이죠. 주의할 점은, 여기서 주의할 점은 main() 함수의 리턴값은 void로 해주면 안 되고 int로 해주어야 합니다.(왜 그런지는 모르겠으나 컴파일 에러가 나더라고요.)
예를 들면, apache 로그 파일을 줍니다. 그리고 sort, uniq, cut, grep, head 등의 명령어의 사용법을 간단히 가르쳐 줍니다. 그리고 이들을 파이프로 연결해서 2003년 6월에 접속한 IP 중에 가장 자주 접속한 IP 베스트 10을 1등부터 뽑아내라고 합니다. ({{{~cpp grep "Jul/2003" access.log| cut -d' ' -f1 |sort|uniq -c|sort -rn|head -10| cut -f2}}})
- 데블스캠프2005/주제 . . . . 10 matches
|| 월 || FLASH || 승한 || 3-4 || 액션스크립트를 이용한 간단한 상호작용 ||
|| 금 || ? || [신재동], [임인택] , 이정직[fnwinter] || 실습까지 3시간 예상 , 윈도우즈 프로그래밍 || 네트워크 이용한 게임 정도 ||
Recursion 과 Iteration (IndexCard 등을 이용해서.. ToyProblems 따위의 문제 풀어보기,
만약 하게된다면 선배님께 어떤 내용을 설명할 수 있을지..;; 약간 과장을 덧붙이자면 저희가 1주일동안 도스창에서 돌아가는 구구단 프로그램을 작성하면, 선배님들 께서는 하루만에 데이터 베이스를 구축하실텐데..;;(그정도로 세미나 할 내용이 없다는..;;) -[조현태]
선배 입장으로써 많은 것을 바라는 것이 아닙니다. 선배들에게 새로운 내용을 가르치는 세미나가 되기 보다(그렇게 되면 금상첨화고요) 그저 후배분들께서 좋은 경험을 얻기를 바라는 것 뿐입니다. --재동
GvR보다 좀 더 발전된 모델로 러플(http://rur-ple.sourceforge.net/ )이 있습니다. 데블스캠프에서 해보기에 좋은 내용이라고 생각합니다. --JuNe
금요일에 제가 한 타임을 맡겠습니다. 네트워크 사용한 간단한 프로그램을 만들 예정입니다. 언어는 파이썬으로 하려합니다. 그러므로 파이썬 배운 후에 몇 개의 토이프로블램은 파이썬으로 연습 시켜주셔야 합니다. --재동
너무 부담갖지말고 편하게 할 수 있는 주제로 하자고 하면 넘어올꺼야. 가령, '검색엔진 활용법' 이라던가.. - 임인택
- 데블스캠프2010/회의록 . . . . 10 matches
* ppt 전개의 방식(영어로 적힌 점, 스크롤의 속도) 때문에 내용이 도움이 안 됨.
== SDL을 이용한 게임 프로그래밍 (강사 : [남상혁]) ==
* 신입생에겐 다소 어려운 내용이었음.
* 사람이 적을 때 시작시간의 늦춰짐으로 인해 수업 내용이 부실해 진 점이 아쉬움.
* 시간도 잘 맞추고 듣는이를 고려해 재밌게 강의하고 준비, 내용 정리도 감동적이었음. 근데 강사가 군대가서 아쉬움.
* (강사후기)매우 바빴음. 심도있는 php의 내용 보다는 php에 대한 관심을 유발하는것이 목적이었음. 간단한 ppt를 만들껄.. 하는 후회가 듦.
* 시간이 짧았음. 전체적으로 새내기가 듣기에 무난함. 그러나 어려운 용어에 대한 설명이 약간 부족했음.
== 이하 내용 ==
* svn을 사용해 프로젝트를 진행한다. -[남상혁] 학우
* 위의 내용을 [김수경] 학우가 진행한다.
- 새싹교실/2011/쉬운것같지만쉬운반/2011.3.29 . . . . 10 matches
= 공부 내용 =
= 안내 내용 =
|| 새싹 || 장용운 || O ||
1. 특수 문자 중 \n을 사용하는 이유가 무엇인지 쓰세요.
4. 다음 printf 함수와 scanf 함수 사용 중 틀린 것을 고르고, 제대로 고치시오.
* 오늘은 표준 입출력 함수, 상수&변수의 의미와 각종 연산자들에 대해서 배웠다. 역시 배우면 배울수록 흥미롭다. 그런데 용운이는 다 알고있고 형준이는 안오고 뭔가 나만 배우고 있는 듯한 느낌이...... ㅜㅜ. 아무튼 지금은 무식해도 올해가 끝나갈 쯤엔 나도 C언어 마스터가 되야지. - 송치완
* 오늘 배운 것은 printf의 사용법과 각종 연산자에 대한 것이었다. 예전에 배운 적이 있지만 다시 배우니 더 깊이 알게 된 것 같다. 프로그래밍은 배울 수록 느는 것 같다. 앞으로도 복습은 소홀히 하지 않아야겠다. - [장용운]
피드백 문제 - [장용운]
1. 개행 문자(\n)는 printf 함수에서 줄을 넘길 때 사용합니다. 이것에 캐리지 리턴(\r)을 직접 타이핑하지 않는 이유는 printf 함수가 텍스트 모드로 출력하기 때문에 자동으로 캐리지 리턴이 앞에 붙게 되기 때문입니다.
- 새싹교실/2011/쉬운것같지만쉬운반/2011.4.6 . . . . 10 matches
= 공부 내용 =
= 안내 내용 =
* 알고리즘에서 배운 Bottom-up Approach를 적용해서 풀어보았습니다. 언제 했는지도 몰랐지? ㅋㅋ
|| 새싹 || 장용운 || O ||
* 별 생각 없이 2시에 갔더니 늦어버렸다. 아무래도 시간을 제대로 알고 다녀야 할 것 같다. 수업을 들어 보니 역시 교수님의 강의는 뭔가 순서가 뒤바뀌어 있는 게 맞는 것 같다. 새싹교실을 듣지 않는 학우들이 좀 불쌍해졌다. 나도 내년엔 새싹교실 선생님이 됐으면 좋겟다. 히힣 - [장용운]
* 나 출력하는 것 때문에 새싹을 45분 정도 밖에 못했다. 미리 미리 출력을 해둘 껄 그랬다. 이번 새싹 교실에서 배운 for문 덕분에 정규 수업 과제를 잘 할 수 있을 것 같다. 근데 용운아 이미 너 새싹 선생님 같음 ㅋㅋㅋㅋ - [송치완]
피드백 문제 풀이 [장용운]
장용운 문제 풀이 끝
* std:: 선언을 안했네요 ㅠㅠ 수정ㅠㅠ - [장용운]
* '고바기'라는 변수 이름이 돋보인다 ㅋㅋㅋ bit연산자인 XOR연산자(^)를 사용해서 조건판단을 한 것도 독특하다 ㅋㅋ 잘했음! ㅋㅋ - [박성현]
- 새싹교실/2012/사과나무 . . . . 10 matches
처음보는 운영체제라던가, 아직은 생소할 커맨드라인 프로그램 사용이라던가
과제로는 printf()와 scanf()의 사용법을 정리해오는 것을 주었습니다.
* 새싹교실 첫 수업이었다. 원래 두명의 학생과 같이 하기로 했는데 서로가 시간이 맞지 않아서 따로 따로 듣게 되었다. 고한종 선배님은 새터가기전에 몇번 뵙긴하였는데 대화를 해보진 못했다. 그런데 새싹 오티에서 처음 이야기 해보고 오늘은 계속 미루어 오던 수업을 드디어 듣게 되었다. 수업내용을 알아듣게 설명을 잘 해주어서 나름 어렸었던 문제들이 조금 해결되었다. - [김서정]
* 반이 바뀌었다. 우선은 '이소라 때리기 게임'을 직접 손으로 쓰게 하고 #include 나 #define 같이 코드에 쓰여져 있는 문법들에 대해서 설명해주었다. 자료형의 종류와 전처리기가 하는 일들, switch문과 if문의 용도차이 등을 설명해주었다. 수업이 끝난 뒤 책을 정하고 책에 맞춰 수업을 진행하자는 피드백이 들어와서 교재를 열혈강의로 정했다.
* 오늘은 이소라때리기라는 게임을 했다. 새 강사님과 시작을 해서 어려울 줄 알았는데 정말 친절하게 가르쳐주셨다. 알고리즘대로 구동되는 프로그램이 신기했다. 지난시간보다 더 많은 예약어를 이용했고, rand()라는 것도 사용했다. 가장 신기했던 것은 k와 p를 아닌 다른 문자를 이용했을 대 default문장이 나와 k와 p를 누를 수 있게 유도해준 것이다. 지난시간과 달리 조금 더 긴 프로그램을 짜봤는데 만들어져가는 과정이 눈으로 확인되니까 조금 더 욕심을 내보고 싶다. 앞으로 2탄을 더 복잡하게 만들고 싶다. - [김도익]
* 제어문과 반복문에 대해 1차적인 개요를 공부했다. 제어문들끼리 그리고 반복문들끼리 상호호환이 된다는 것도 공부했다. 반복문을 이용해 구구단을 짜보았다.
} //두 가지 방법을 사용했기 때문에 처음의 코드는 주석처리를 했다.
* 제어문을 반복하고 19X19단을 3단씩 출력하기를 했다. 제엄누과 반복문을 이용해서 직접 프로그래밍 해보는 일을 중점적으로 했다. 직접 짜보는 일이 큰 도움이 된다는걸 체감했다. 느리지만 꼼꼼히 해야할 것 같고, 여러번 만나는 것보다 해볼 수 있는 과제가 많이 나오는 것이 좋다고 느꼈다. - [김성원]
- 위키로프로젝트하기 . . . . 10 matches
1. 해당 주제로 페이지를 연다. 가급적이면 고유한 프로젝트 이름을 가지는 것이 좋다. 일반적인 용어에 대해서는 다른 사람들도 같은 이름의 페이지가 필요할 것이기 때문이다.
* 페이지를 조금씩 키워나간다. 페이지 내용을 키워나가도 좋고, output 화일을 링크를 걸어도 좋다. 개인적 경험으로 볼때 (1002) 권장하는 방법으로는
* 내용 정리 & 페이지 정리
기존의 게시판방식이 장점이 있다면 '시간의 역사' 라는 점이 있겠다. 매일 작업일지를 쓰는 경우. 시간의 흐름에 따른 진행상황이 처음부터 주욱 보이기 때문이다. 반면 위키는 늘 현재성을 추구한다. 위키의 페이지는 늘 해당 주제를 중심으로 고쳐지는 글이다. 하지만, 시간의 역사 자체의 의미보다는 페이지 자체 내용, 즉 Content 중심의 사고라는 점에 더 무게중심을 두고 싶다. '시간의 역사' 자체가 Content 로서 중요하다면, 그것을 위한 페이지를 열어라.
* 자신이 공부하거나 프로젝트를 추진하는 내용들을 문서로 정리하는 과정을 통해 공부한 내용을 확실히 자기 것으로 만들 수 있을 것이다. 그리고 또한 정리된 문서는 타인에게 하나의 좋은 공부자료가 될 것이다. 오프라인 세미나의 자료로 사용할 수도 있겠다. 자신이 한 일에 대해 정리하는 것 자체가 좋은 습관이라 생각된다.
* 더 효율적으로 이용하기 원한다면, 해당 지식을 이해한 상태에서 정리가 이루어져야 할 것이다. 만일 2~3명 이상 다른 사람들과 스터디를 하게 되는 경우, 해당 지식에 대한 사람들의 이해의 관점이 다를 수 있음을 알게 될 것이다. 여러 관점을 보는 것 또한 좋은 경험이 될 것이다. (외국의 대학에서는 위키를 해당 강의에 대한 공동필기장으로 쓰기도 한다.)
ZeroWiki 에서 프로젝트를 진행하는데 자유의 제약을 느낀다면 ["프로젝트전용위키"]를 설치하고 사용할 수도 있겠다. --["데기"]
- 이영호/개인공부일기장 . . . . 10 matches
☆ 앞으로 공부해야할 책들(사둔것) - 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 핵심원리
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을 써준다.
☆ 18 (월) - binaryfile to textfile && textfile to binaryfile 소스를 짬. eady.sarang.net계정의 sources에 있음. 모든 커맨드를 막아둔 곳에서 유용하게 쓰임.
16 (토) - Socket/System Programming in C (Signal 처리와 Process간의 Pipe 사용법(IPC)), 유리수, 카네기 행복론.
나만 제외하고 대학이 그러니... 내 인생이 나를 끌어당기기 시작한다. 여기에 하루하루 내가 공부한 내용을 적으려한다.
- 정모 . . . . 10 matches
== 주요 내용(순서) ==
||||2023.02.08||[정우현]||||||||네트워크 응용 설계 과목에서 알려주지 않는 것||
||||2023.09.13||[신연진]||||||||노트북에 아치 리눅스 설치해서 이용해본 후기||[정모/2023.09.13/참석자]||
||||2023.11.08||[박주용]||||||||LinkedIn의 시대||[정모/2023.11.08/참석자]||
||||2023.11.15||[백범준]||||||||AI활용 웹사이트 제작||[정모/2023.11.15/참석자]||
지난번 [정모]를 관찰하면서, 뭔가가 잘 안된다는 생각이 들어서 NeoCoin 군과 ProblemRestatement 를 약간 적용해보았다. 사람들마다 의견들은 다르겠지만, 참고해보기를.
-> Online (주로 Wiki를 통해 이루어지는) 에서 결정할 내용과 Offline 에서 결정할 내용을 구분하지 못한다.
최근에 자주들렸던 말중 하나가 [정모]로 사람들이 모였음에도 불구하고 '위키에서 처리하자'이다. 이는 잘못이다. 위키에서는 의견들이 모이고, 결정은 정모에서 신속하게 되어야 한다고 생각한다. 위키는 해당 관련 정보를 모으고 토론이 격해질때 도큐먼트를 정리하는등 호흡이 긴 토론시에 유용하다. 모든 토론들이나 결정사항들이 위키에서 이루어질 이유가 없고, 또한 별로 유용하지도 않다. --[1002]
- 정모/2013.8.12 . . . . 10 matches
= 주요 내용 =
== 학회 기자재 활용 방안 모색 ==
* 회원들이 기자재를 활용하지 않아 방치되어 있는 상태입니다.
* 기자재를 활용한 프로젝트를 기획하는 건 어떨까요?
* 활용 방안에 대한 다양한 의견을 들어보고자 합니다. 위키에 의견을 달아주세요.
* 그런데 이게 8월 12일에 있었던 정모 내용인데 활용 방안에 대한 의견을 위키로 듣고자 했으면 좀 더 일찍 정모 내용을 정리해서 올려야 하지 않았을까 싶습니다. 12일 정모 내용이 19일에 올라오면 언제 기자재 활용과 관련된 의견을 위키에 적고, 해당 의견이 언제 정모 때 반영이나 언급이 될 수 있을까요... - [서민관]
- 프로그램내에서의주석 . . . . 10 matches
그렇다면 자신이 그 코드를 해석하면서 얻은 지식을 그 코드에 적용했더라면(좀 더 의미있는 변수이름, 메써드이름 사용, 코드 일부분을 의미있는 이름의 메써드로 추출 등) 어땠을까요? --JuNe
내가 가지는 주석의 관점은 지하철에서도 언급한 내용 거의 그대로지만, 내게 있어 주석의 주된 용도는 과거의 자신과 대화를 하면서 집중도 유지, 진행도 체크하기 위해서 이고, 기타 이유는 일반적인 이유인 타인에 대한 정보 전달이다. 전자는 command.Command.execute()이나 상규와 함께 달은 information.InfoManager.writeXXX()위의 주석들이고,후자가 주로 쓰인 용도는 각 class 상단과 package 기술해 놓은 주석이다. 그외에 class diagram은 원래 아나로그로 그린것도 있지만, 설명하면서 그린건 절대로 타인의 머리속에 통째로 저장이 남지 않는다는 전제로, (왜냐면 내가 그러니까.) 타인의 열람을 위해 class diagram의 디지털화를 시켰다. 하는 김에 그런데 확실히 설명할때 JavaDoc뽑아서 그거가지고 설명하는게 편하긴 편하더라. --["상민"]
자네의 경우는 주석이 자네의 생각과정이고, 그 다음은 코드를 읽는 사람의 관점인 건데, 프로그램을 이해하기 위해서 그 사람은 어떤 과정을 거칠까? 경험이 있는 사람이야 무엇을 해야 할 지 아니까 abstract 한 클래스 이름이나 메소드들 이름만 봐도 잘 이해를 하지만, 나는 다른 사람들이 실제 코드 구현부분도 읽기를 바랬거든. (소켓에서 Read 부분 관련 블럭킹 방지를 위한 스레드의 이용방법을 모르고, Swing tree 이용법 모르는 사람에겐 더더욱. 해당 부분에 대해선 Pair 중 설명을 하긴 했으니)
그리고, 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 라는 점에서 점수 깎인다는 점은 인지중;) --석천
// 사용예
- 프로젝트전용위키 . . . . 10 matches
해당 프로젝트의 산출물이 많은 경우 프로젝트 팀만의 [프로젝트전용위키]를 만들어서 프로젝트를 수행하면 공공의 위키보다는 자유로운 분위기에서 집중력있게 프로젝트를 진행할 수 있다. (ex: http://acup.wo.to)
[프로젝트전용위키]는 일반적으로 해당 프로젝트와 그 생명주기를 같이한다. [프로젝트전용위키]는 해당 프로젝트의 형상관리 툴로 사용될것이며, 구성원들간의 커뮤니케이션용 도구의 역할도 할 것이다.
ZeroPage의 모든 프로젝트들이 ZeroWiki에서 수행되어야 할 필요는 없다. 거꾸로 ZeroPage의 모든 프로젝트들이 [프로젝트전용위키]를 따로 사용할 필요도 없다.
ZeroPage에서 [프로젝트전용위키] 생성에 편리한 인프라를 구축해준다면 좀 더 효율적인 프로젝트를 진행할 수 있을 것이라고 생각한다.
ZeroWiki와 ZeroPage에서 만든 [프로젝트전용위키]들은 HierarchicalWikiWiki를 구성해야 할 것이다.
여기서 '프로젝트'라 함은 '소프트웨어 개발'뿐이 아닌 '서적 번역,요약' 등의 내용을 포함합니다. --[이덕준]
- 1thPCinCAUCSE/null전략 . . . . 9 matches
도구는 연습장과 인덱스 카드, assert 문을 이용한 테스트 케이스 등을 이용했습니다. 연습장과 인덱스 카드는 주로 개개인 수식과 중요 변수들을 적기 위해, 또는 그림을 그리기 위해 이용했고 (두 도구의 용도가 구분되어있진 않았음) 문제에 대해서 답이 나왔다하는 가정하에 (문제지에 Sample Input->Output 이 나와있었기에 가능했습니다.) Backward 로 문제가 해결된 상황을 가정하고, 그러기 위해 필요한 변수들을 찾아나가는 방법으로 진행했습니다. 프로그래밍 스타일은 Structured 스타일의 Stepwise Refinement & PBI & assert 를 이용한 TDD 를 사용했습니다.
적절히 중복코드를 삭제하고 난 뒤, 한 5분정도 Input-Output 코드를 iostream 과 ["STL/vector"] 를 사용하여 작성한 뒤 이를 제출, 통과했습니다.
미리 예제문제로 제시된 5문제중 어려웠었던 뒤의 3문제들을 각자 풀어보고 훈련했었다면 실전에서도 더 여유있고 의식적인 작업을 할 수 있었으리라 생각하며. 그리고, 초반에 바로 TDD 로 나가는 것보다, 문제에 대한 여러 접근방법을 둔 뒤, 하나를 고르고 그에 대해 TDD 로 나가는 것이 더 좋았을 것이라고 생각. (TDD를 바로 문제 Approach 기법으로 적용하는것 보단, 해당 문제 접근방법에 대해 빨리 필요한 변수들을 발견해나가고, 명확하게 해주는데 더 효과가 크다는 생각이 들어서)
문제를 풀때 우스개로 이야기했던것이 '수학자의 접근이냐 공학자의 접근이냐'(페르마의 마지막정리 책에 나왔던 예. 즉, 연역/귀납). 이런문제인 경우 문제 풀기전 '어느쪽 접근이 더 유용할까' 궁리를.; 개인적으론 연역이 약해서 후자를..; --["1002"]
- 2006김창준선배창의세미나 . . . . 9 matches
* 단순히 기존의 방식대로 창의적인 생각을 하려고 하기 보다, 이미지나 몸동작과 같은 우뇌를 적극 활용하는 활동을 통해서 창의성을 자극 할 수 있다. 한예로 훌륭한 프로그래머들은 머리속으로 특정 상황을 Play, Pause, Backward 등을 하면서 프로그래밍이나 문제 해결등을 한다고 한다.
* 특정한 의식을 치루고 나면 알파파를 증진시키고, 창의력을 높일 수 있다. 예를 들어서 켄트백은 문제가 잘 해결되지 않을때 밖에 나가서 전기톱질을 한다고 한다. 이러한 운동을 통해서 아드레날린이 분비가 되고, 우뇌도 활용하면서 뭔가 생각의 전환을 가져 오는것 같다.
* 그리고 창준 선배도 기천이라는 의식을 활용한다고 한다.
* 이러한 의식으로 운동이나 기타 악기 연주 등이 활용 될 수 있을거 같다. (아인슈타인은 바이올린 연주를 이러한 의식으로 쓴건 아닌가 싶다)
* 주변에 있는 것들과 비유를 해보면서 창의적인 생각이 나올 수 있다. 예를 들어서 동양 철학에서의 음양 오행이나, 주역 등도 그러한 비유로 활용할 수 있다. 전혀 상관이 없을 것같은 것들도 비유를 하는 과정에서 무의식을 건드려서 뭔가 상관 있는 창의적인 것을 꺼내는것 같다.
* 천재적이고 창의적인 사람은이 하는 것들은 모두 천재적이고 창의적인 것은 아니다. 그러한 사람들이 한것들도 Variance 가 크다. 즉 좋은것은 아주 좋지만, 안 좋은 것은 아주 안 좋다는 것.(천재적 학자와 일반적인 학자의 평균 논문의 질(인용횟수로 ) 은 비슷하다. 다만 천재적 학자의 변화폭이 더 크다)
* 새로운 책을 읽는다면 그 책을 통해서 이전에 자신이 가졌던 지식, 책들을 하나식 통과 시켜 보면서 그 새로 읽은 책을 Amplifier 로 사용한다. 이렇게 해서 단순한 더하기가 아닌 지수승의 효과를 낸다.
== 생각의 축의 활용 ==
* 즉 특정한 생각의 반대, 비슷한 것을 생각하고자 하면은 그것을 어떠한 측면에서 바라보는지, 즉 축이 필요하게 된다. 그 축을 잘 활용하면 여러가지 창의 적인 생각을 하기 쉽다.
- 2010PHP . . . . 9 matches
* 이름, 내용, 비번을 입력받는다.
* 내용 임시 저장은 하지 않는다.
* 이모티콘은 우리가 제공하는 것만 사용할 수 있다.
* 내용에 /* keyword */ 형태로 쓰면 keyword에 해당되는 이모티콘이 삽입되게 한다.
* 이름, 내용, 날짜, 오늘 상태, 글번호를 출력한다.
* DB는 Mysql을 사용한다.
||내용 길이를 2000byte로 제한한다. || A ||
||내용 입력시 글자수를 체크해준다. || A ||
* MySQL Workbench 이용해봄
- AM/AboutMFC . . . . 9 matches
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 소스를 따라가는 방법만을 보세요.
F12로 따라가는 것은 한계가 있습니다.(제가 F12 기능 자체를 몰랐기도 하지만, F12는 단순 검색에 의존하는 면이 강해서 검색 불가거나 Template을 도배한 7.0이후 부터 복수로 결과가 튀어 나올때가 많죠. ) 그래서 MFC프로그래밍을 할때 하나의 새로운 프로젝트를 열어 놓고 라이브러리 서치용으로 사용합니다. Include와 Library 디렉토리의 모든 MFC관련 자료를 통째로 복사해 소스와 헤더를 정리해 프로젝트에 넣어 버립니다. 그렇게 해놓으면 class 창에서 찾아가기 용이하게 바뀝니다. 모든 파일 전체 검색 역시 쉽게 할수 있습니다.
- AOI/2004 . . . . 9 matches
용두사미! 왜 끝은 흐지부지 되는 경향이 있을까요? 쉽고, 재밌는(?) 문제 위주로 올릴테니 우리 모두 힘내서 풀어보아요! - 보창
한 문제를 풀어본 후에 소요시간이 만족스럽지 못하거나 결과코드가 불만족스럽다면 이렇게 해보세요. 내가 만약 이 문제를, 아직 풀지 않았다고 가정하고, 다시 풀어본다면 어떻게 접근하면 더 빨리 혹은 더 잘 풀 수 있을까를 고민합니다. 그리고 그 방법을 이용해서 다시 한 번 풀어봅니다(see DoItAgainToLearn). 개선된 것이 있나요? 이 경험을 통해 얻은 지혜와 기술을 다른 문제에도 적용해 봅니다. 잘 적용이 되는가요?
예를 들어, X라는 문제를 풀어봤는데 그 문제는 Y라는 알고리즘을 사용하면 쉽게 풀리는 것이었다, 하지만 그 착상을 빨리 하지 못해서 시간도 오래 걸리고 고생했다. 뭐 이런 경험을 했다면, 이 문제를 풀어서 얻은 구체적 지식을 잠시 무시하고, 이 문제를 처음 만났을 때 어떻게 Y라는 알고리즘을 사용할 수 있다는 착상에 빨리 도달할 수 있을런지 연구해 봅니다. 문제를 푼 후에 얻은 지식을 사용하지 않아야 합니다. 방법을 찾았으면 그 방법을 적용해서 다시 풀어봅니다. 그 방법이 다른 유사 문제에도 적용이 되는가요?
- BasicJava2005/3주차 . . . . 9 matches
= 이야기 내용 =
* 기본 자료형과 거의 마찬가지로 사용할 수 있다.
== Java에서 사용자의 입력을 받자 ==
* 1.4이전 : BufferedReader클래스를 사용할 수 있다.
* 5.0 이후 : Scanner 클래스를 이용하여 입력받을 수 있다.
* import [패키지 이름]; 으로 사용할 수 있다.
== Java API문서 사용하기 ==
* Java에도 MS의 MSDN같이 사용자를 돕는 메뉴얼이 존재한다.
* add/remove/get 함수등을 사용하여 배열에 마음대로 추가/삭제가 가능하다.
- CollaborativeFiltering . . . . 9 matches
협업 (상호협동) 필터링, Recommender System이라고도 불림. ProjectPrometheus에서 사용한다.
problem space가 2차원 matrix 의 형태를 생각해본다. 행에 대해서는 item을, 열에 대해서는 user를 두고, 그에 따른 rating 을 값으로 둔다. 이 matrix 를 이용, CollaborativeFiltering 은 특정 사용자(user) i 에 대해서 rating 을 예측하고, item 들을 추천한다.
1. user인 i 와 비슷한 흥미나 선호도를 가지는 사용자 집합(user set)을 선택한다.
1. 현재 이용중인 user 와 비슷한 취향의 사용자 집합을 선택 - calculate user correlation
1. 1에서 선택된 사용자 집합중 예측을 위한 부분집합 선택 - neighbourhood selection
CollaborativeFiltering 의 유용성을 평가하는 기준.
* Accuracy - 시스템이 추천한 item 에 대한 정확성 (추천 item에 대한 사용자의 점수)
- DPSCChapter3 . . . . 9 matches
패턴은 실제로 아주 간단하다. 문제 상황은 많은 부분들을 포함한다. Abstract Factory 패턴이 적용될 수 있는 예제를 보도록
우선 첫째로, 우리는 컴포넌트의 하위 부분들로 부터 단계별로 상품(자동차)을 만들 필요가 있는 응용 프로그램을 만들어보자.
그것은 몸체, 엔진, 변속장치, 그리고 승객 칸막을 포함하는 자동차를 만드는 것이다. 둘째로, 응용 프로그램은 같은 상품의
그리고 모든 faimily에서 같은 코드를 사용해서 부분들을(엔진,변속장치..) 얻는 것을 사용한다.
우리는 Abstract Factory Pattern을 이용해서 두가지 목표를 이룰 수 있다.
적용하기에는 충분한 수준의 추상을 제공하고 있다.
구체화 없이 관계된 혹은 의존적인 객체 집합을 만들기 위한 인터페이스를 제공하는" (Intent 부분에서 언급한 내용)
다형성의 힘 때문에, 클라이언트는 코드 구현을 한번만 하면된다. ABSTRACT FACTORY PATTERN을 사용하지 않을 경우, 자동차 생성 코드는 다음과 같이 보일 것이다.(아주 비효율적인 코드)
- DataCommunicationSummaryProject/Chapter11 . . . . 9 matches
* 광대역(대역폭이 넓은) 무선 시스템이 몇년 내에 유용할 것으로 보이는데 전화든 TV 든 유선통신보다 싸고 쉽게 쓸 수 있을 것이다.
* 보내고 받는 모양새가 대칭형이다. 레이저나 극초단파 같은 걸로 사용한다.
* 단말기만 있으면 거의 영구적으로 base station 과 연결되어 사용가능하고 기타 등등 열라 좋은 점이 많긴하지만 대역폭을 공유한다는 것이 단점이다.
* 대부분 보급되어있는 wireless local loop system은 산업, 과학, 의학용 주파수(ISM band) 를 사용한다. 실제로 IEEE 802.11b 표준에 기초한 시스템도 있다.
* 라이센스가 없어도 되기 때문에 누구나 설치할 수 있다. 하지만 누구나 그런 생각을 가지고 사용하기 때문에 통신방해가 많이 일어난다.
* 8km 까지는 서비스 범위가 도달한다. 표준으로 11Mbps를 지원하지만 multipoint 특성상 대역폭을 사용자들이 공유하기 때문에 실제로는 2~6Mbps 가된다.
* 허가되지 않은 시스템은 국제적인 ISM 밴드를 사용할 수 있고, 종종 IEEE 802.11 무선랜 표준에 기초하기도 한다.
* 레이저 빔은 허가가 필요없고, 다른 어떤 타입의 고정 무선시스템보다 나은 수용능력을 제공한다. 하지만 거리가 졸라 짧다.
- DesignPatternsAsAPathToConceptualIntegrity . . . . 9 matches
디자인패턴의 조직에 대한 우리의 토론중 디자인 패턴의 '자연적인 생성' 을 정의하기 어렵다는 의견이 있었다.만일 우리가 어떻게 디자인 프로세스에서 디자인 패턴들이 이용되는지 이해한다면, 그리고 패턴들의 조직화가 멀리 숨어있지 않다면, 이는 정의를 위한 좋은 프로퍼티가 될 것이다. 크리스토퍼 알렉산더(Alexander) 는 디자인 패턴의 자연적 생성은 이득이 되는 요소중 하나임을 강조했다. 소프트웨어의 관점의 업무 내에서 자연적인 생성은 실패한것 처럼 보이며, 디자인 패턴을 이용하는 더 일반적인 접근 방법은 다음과 같은 식으로 묘사된다. "xyz 문제에 대해 직면하게 되었을때.. 해결책은.." 혹자는 소프트웨어계에서 더 디자인패턴의 편의주의적인 적용은 디자인패턴의 생성적인 이용보다 유용하다고 말할지도 모른다.
하나의 어프로치는 정의, 가장 최우선의 중요한 특질을 상승시킨다. (어뎁터빌리티나 변화에 대한 분리) 그리고 이 퀄리티들들을 디자인 프로세스의 설립의 용도로 이용할 수 있다. 만일 이 최우선의 특징이 프로세스의 목적이나 구체적 디자인 분류의 하나라면 아마 'many'는 같은 개념적 완전성을 "약간의 좋은 감정"으로서 적시에 프로덕트를 ..
EDO 와 RDD 는 이 1차 원리인 "변화하는 부분에 대해 캡슐화하라"와 그들의 명확한 룰들에 따라 적용될때 다른 방법들로 만나서, 다른 디자인 패턴들을 생성해 낼 것이다. 예를 들면, RDD는 Mediator, Command, TemplateMethod, ChainOfResponsibility (주로 behavior), EDD 는 Observer, Composite, ChainOfResposibility(주로 structure) 를 생성해낼것이다.
몇몇 O-O 디자인 메소드들은 디자인 패턴을 생성의 관점에서 이용하는 환경을 만드는데 더 좋은가?
- EventDrvienRealtimeSearchAgency . . . . 9 matches
* 쉽게 생각하면 로봇이 대신 웹서핑을 해서 사용자가 필요한 정보만 실시간으로 수집해서 바로 바로 실시간으로 제공해주는 Searcy Agency를 Event Driven Realtime Search Agency 라고 칭한다.
* 로봇이 사용자가 지정한 타겟 웹 정보를 짧은 시간 간격으로 수집한다.
* 각 게시판이나 웹페이지들이 Observable 즉 관찰할 객체들이고 이 객체들은 각자 자신의 Observer 리스트를 가지고 있다. 이 Oberver 리스트는 바로 사용자들이 아니라 이 많은 사용자들과 웹을 매개해주는 서버이다. 이 Obsever 서버 리스트를 가지고 있으면서 해당 자신의 웹이 업데이트 될때마다 업데이트 내용을 이 Observer 리스트 서버(EDRSA가 동작하는)들에게 전송을 한다.
* 그러면 해당 서버에 있는 EDRSA 들은 해당 웝에 대한 모니터링을 신청한 각 사용자들에게 각 사용자들이 입력한 키워드에 따라서 해당되는 내용들만 해당 사용자의 클라이언트 프로그램에 전송해준다.
- ExtremeProgramming . . . . 9 matches
ExtremeProgramming 은 경량개발방법론으로서, RUP 등의 방법론에 비해 그 프로세스가 간단하다. XP 에서의 몇몇 개념들은 일반적인 프로그래밍에서도 유용하게 쓰일 수 있다. 특히 TestDrivenDevelopment(TestFirstProgramming) 의 개념과 Refactoring, UnitTest는 초기 공부할때 혼자서도 실습을 해볼 수 있는 내용이다. 개인 또는 소그룹의 훈련으로도 이용할 수 있을 것이다.
초기 Customer 요구분석시에는 UserStory를 작성한다. UserStory는 추후 Test Scenario를 생각하여 AcceptanceTest 부분을 작성하는데 이용한다. UserStory는 개발자들에 의해서 해당 기간 (Story-Point)을 예측(estimate) 하게 되는데, estimate가 명확하지 않을 경우에는 명확하지 않은 부분에 대해서 SpikeSolution 을 해본뒤 estimate을 하게 된다. UserStory는 다시 Wiki:EngineeringTask 로 나누어지고, Wiki:EngineeringTask 부분에 대한 estimate를 거친뒤 Task-Point를 할당한다. 해당 Point 의 기준은 deadline 의 기준이 아닌, programminer's ideal day (즉, 아무런 방해를 받지 않는 상태에서 프로그래머가 최적의 효율을 진행한다고 했을 경우의 기준) 으로 계산한다.
그 다음, 최종적으로 Customer 에게 해당 UserStory 의 우선순위를 매기게 함으로서 구현할 UserStory의 순서를 정하게 한다. 그러면 UserStory에 대한 해당 Wiki:EnginneringTask 를 분담하여 개발자들은 작업을 하게 된다. 해당 Task-Point는 Iteration 마다 다시 계산을 하여 다음 Iteration 의 estimate 에 적용된다. (해당 개발자가 해당 기간내에 처리 할 수 있는 Task-Point 와 Story-Point 에 대한 estimate) (Load Factor = 실제 수행한 날 / developer's estimated 'ideal' day. 2.5 ~ 3 이 평균) Iteration 중 매번 estimate 하며 작업속도를 체크한뒤, Customer 와 해당 UserStory 에 대한 협상을 하게 된다. 다음 Iteration 에서는 이전 Iteration 에서 수행한 Task Point 만큼의 일을 할당한다.
Iteration 중에는 매일 StandUpMeeting 을 통해 해당 프로그램의 전반적인 디자인과 Pair, Task 수행정도에 대한 회의를 하게 된다. 디자인에는 CRCCard 과 UML 등을 이용한다. 초기 디자인에서는 세부적인 부분까지 디자인하지 않는다. XP에서의 디자인은 유연한 부분이며, 초반의 과도한 Upfront Design 을 지양한다. 디자인은 해당 프로그래밍 과정에서 그 결론을 짓는다. XP의 Design 은 CRCCard, TestFirstProgramming 과 ["Refactoring"], 그리고 StandUpMeeting 나 PairProgramming 중 개발자들간의 대화를 통해 지속적으로 유도되어지며 디자인되어진다.
* UserStory: 사용자 관점에서 시스템의 행위에 대한 간략한 서술
* AcceptanceTest: 사용자 관점에서 해당 작업산출물이 제대로 돌아가는지 확인할 수 있는 테스트.
...여기에서의 XP 와 관련된 글들의 경우도 XperDotOrg 쪽으로 옮기는건 어떨까 궁리. (Interwiki 로 옮기고, ZP 에서는 ZP 내의 토론으로 대신할 수 있을듯. 자료가 어디에 있느냐는 그리 중요하지 않을 것이니. XperDotOrg 가 상용사이트나 CUG 가 되는게 아닌이상) 사람들 의견은? --["1002"]
- HardcoreCppStudy/두번째숙제/CharacteristicOfOOP/변준원 . . . . 9 matches
속성 상속이라는 개념 역시 우리의 일상 생활에서 흔히 사용하는 개념을 프로그램으로 표현하기 위한 편리한 수단이다. 어떤 객체의 종류, 즉 클래스는 좀 더 세분화하여 분류할 수가 있는데 이렇게 세분화된 종류나 유형을 subtype 혹은 subclass라고 한다.
객체 지향 프로그램의 중요한 특징으로 하나의 함수 이름이나 심볼이 여러 목적으로 사용될 수 있는 다형성(Polymorphism)을 들 수 있다. 객체 지향에서의 다형성이란, 복수의 클래스가 하나의 메세지에 대해 각 클래스가 가지고 있는 고유한 방법으로 응답할 수 있는 능력을 말한다. 즉, 별개로 정의된 클래스들이 ㅌ은 이름의 함수를 별도로 가지고 있어 하나의 메세지에 대해 각기 다른 방법으로 그 메세지를 수행할 수 있는 것을 의미한다. 예를 들어, 여러 가지 화일(file)들을 프린트 하는 함수를 생각해 보자. 화일에는 간단한 텍스트 화일(text file), 문서 편집기로 만든 포멧 화일(format file), 그래픽을 포함하는 화일(file with graphics) 등 여러 가지가 있다. 이들 각각의 화일들은 프린트 하는 방법이 모두 다르다, 객체 지향에서는 아래처럼 각 종류의 화일을 별도의 클래스로 정의하고, 각각의 화일 종류별로 Print라는 함수를 화일의 형태에 맞게 구현한다.
정보 은폐란 캡슐속에 쌓여진 항목에 대한 정보를 외부에 감추는 것을 의미한다. 즉, 처리하려는 데이타 구조와 함수에 사용된 알고리즘 들을 외부에서 직접 접근하지 못하도록 하고 캡슐 내부의 함수들만이 접근하게 된다. 객체지향에 관한 서적이나 논문에서 이 두가지 개념이 중요시 소개되는 것은 바로 객체라는 것이 캡슐화와 정보 은폐의 원리를 실제의 프로그래밍 언어에서 실현한 것이기때문이다.
위에서 살펴볼 캡슐화와 정보 은폐의 이점은 우선 객체 내부의 은폐된 데이타 구조가 변하더라도 주변 객체들에게 영향을 주지 않는다는 것이다. 예로서, 어떤 변수의 구조를 배열(array)구조에서 리스트(list) 구조로 바꾸더라도 프로그램의 다른 부분에 전혀 영향을 미치지 않는다. 또한 어떤 함수에 사용된 알고리즘을 바꾸더라도 signature만 바꾸지 않으면 외부 객체들에게 영향을 주지 않는다. 예를 들어, sorting 함수의 경우 처음 사용된 sequence sorting 알고리즘에서 quick sorting 알고리즘으로 바뀔때 외부에 어떤 영향도 주지 않는다. 이러한 장점을 유지보수 용이성(maintainability) 혹은 확장성(extendability)이라 한다.
"Printer"라는 클래스는 추상 클래스로서 실존의 어떤 프린터 기능을 가지고 있지 않고, dot matrix printer나 laser printer 등의 완전 클래스들 간의 공통된 특성만 지정하고 있으므로, 그 인스턴스를 만드는 것은 무의미하다. 추상 클래스는 점진적 개발 방법(Incremental Development)에 유용하게 사용될 수 있으며, 공통 속성(attribute)의 추출 및 정의에 유용하므로 문제를 모델링하는데 편리함을 더해준다.
- HardcoreCppStudy/첫숙제/ValueVsReference/변준원 . . . . 9 matches
매개변수로 사용되는 변수에 대한포인터를 전달
함수내에서 매개변수로 사용되는 변수의 값을 변경
반환되는 값이 여러 개이거나 배열 전체를 전달하는 경우에 주로 이용.
주로 광역적으로 정보를 전달하거나 현 시스템의 상태등을 알고자 할 때 사용.
포함하여 프로그램내 어디서나 사용이 가능합니다. 이에 반해 지역변수는 함수몸체 안에서 선언하는데 이
: 대상 객체의 주소값을 전달하는 방식으로 형식 매개변수에 포인터 변수가 사용된다.
: 참조형을 이용하여 매개변수를 전달하는 것으로 함수호출시 형식매개변수인 참조형이 실매개 변
수로 초기화되어 함수 내부에서 실매개변수를 참조하여 사용할 수 있다.
결과적으로 a=20 b=20이 되는데 결국 함수내부에서 실매개변수를 참조하여 사용하는 것입니다.
- HelpOnPageCreation . . . . 9 matches
새롭게 페이지를 만드는 경우도 일반 페이지를 편집하는 방식과 마찬가지로 고칠 수 있습니다. 편집 폼에 내용을 채운 후에 최초 저장을 하면 페이지가 진짜로 만들어지게 됩니다. 한번 만들어진 페이지는 일반적으로 지울 수 없도록 되어있습니다. [[FootNote(페이지 지우기는 모니위키 설정을 통해 변경가능합니다. 또한 모니위키에서는 페이지를 지우더라도 변경 역사까지 지우게 되어있지 않습니다. 따라서 언제든지 복구할 수 있습니다.)]] 그러므로 위키 페이지를 처음 만들 때에 위키 페이지 이름을 잘 만드는 것이 낫겠지요.[[FootNote(모니위키에서는 페이지이름을 변경하는 것도 가능하며, 페이지이름에 대한 별명을 만드는 방식도 지원합니다)]]
템플릿 페이지는 조금 특별하게 취급되는 페이지입니다. 페이지를 만들되 페이지 이름이 "'''Template'''"로 끝나는 페이지를 만들면 그것이 템플릿 페이지가 됩니다. [[FootNote(위키 관리자에 의해서 Template로 끝나는 이름이 아닌 다른 형태의 이름으로 그 설정을 바꿀 수도 있습니다)]] 이렇게 만들어진 템플릿 페이지는 페이지를 새롭게 만드는 경우에 목록으로 제시되게 되며, 템플릿 페이지를 선택하면 그것이 처음으로 편집 폼에서 인용되어 처음 만드는 페이지를 보다 쉽게 만들 수 있게 해줍니다.
|| @''''''PAGE@ || 페이지 이름 (템플릿 페이지에 주로 유용하게 사용됨) ||
|| @''''''USERNAME@ || 사용자 이름 ||
|| @''''''USER@ || 사용자 이름 서명 "-- loginname" ||
|| @''''''SIG@ || 사용자 이름 서명 "-- loginname date time" ||
|| @''''''MAILTO@ || 사용자 메일 주소 ||
이러한 변수를 집어넣어 편집하게 되면 그 저장되는 시점에서 완전히 다른 내용으로 대치된다는 사실에 유의해 주세요.
- JavaScript/2011년스터디/7월이전 . . . . 9 matches
* 관련된 내용에 관한 논의를 아래 링크에서 참고할 수 있습니다. - [변형진]
* HTML은 self closing이 안된다는 내용인것 같네요. 다시 읽어봐야겠어요 - [서지혜]
* 공부하면 할수록 HTML이라던가 웹에 대히 공부해야겠다는 생각만 듭니다. javascript만 사용한다는 것은 무리인것 같아요. 이번에는 연속적으로 키보드 이벤트를 받는 문제였는데 생각보다 쉽지 않네요ㅠ 은 innerHTML은 또 처음 들어요;; 여튼 더 공부하겠습니다!! - [박정근]
* [박정근] : document.location을 이용해 관리자가 글을 읽으면 다른 사람이 쓴 글 지워지게 하기.
* caucse.net 주소창 주소가 바뀌지 않는 이유 : 프레임을 사용해서
* 오늘은 PairProgramming으로 [http://probablyinteractive.com/url-hunter URLHunter]를 만들어보았는데 setInterval 함수를 사용하여 계속 페이지 주소를 바꿔주는 부분까지 성공했습니다. 처음에는 setTimeout 함수를 사용해서 생각처럼 제대로 작동하지 않았어요. 다음주엔 새내기가 스터디에 합류할텐데 매우 기대됩니다. 우리가 했던것들을 설명해주고 같이 [http://probablyinteractive.com/url-hunter URLHunter]를 만들어보려고 해요. 시간이 너무 걸리지 않도록 어떻게 접근할지 주말에 미리 생각해보겠습니다. - [김수경]
* 함수가 프로퍼티로 사용될 수 있다??-43p 라는 표현이 있는데 그게 어떤 것인지 잘 모르겠더라구요.
* 불리언 타입 변환 -41p에서 만약 불리언 값이 문자열 문맥에서 사용되면 true는 문자열"true"로 변환된다와 같은 말이 무슨말인지 정확히 모르겠어요. 저희가 알아낸 것은 true를 write내에 쓰면 1로 인식한다는 것뿐이었어요.
- JavaStudy2003/두번째과제/노수민 . . . . 9 matches
* 클래스 : 특정한 종류의 모든 객체들에 적용할 수 있는 변수와 메소드를 정의하는 '소프트웨어적인 설계도' 이다.
* 객체 : 실세계에 적용 - 자동차(클래스) -> 아반테, 누비라, 그랜저, 티고 등 (객체)
* 상속 : 자동차 클래스에 버스 클래스, 트럭 클래스, 자가용 클래스가 속한다면,
자동차 클래스는 상위 클래스, 버스,트럭,자가용 클래스를 하위클래스라 하며, 이들의 관계에서 "하위클래스는 상위클래스를 상속한다"고 한다.
자바 언어를 이용하여 객체를 생성하고 필요에 따라 값을 초기화 해 주어야 하는 경우
객체 생성자는 new 연산자를 이용하여 객체를 생성할 때도 호출된다.
* new 생성자를 이용하여 객체를 위한 메모리 공간을 할당
== 추가 요구 내용 ==
* 내용을 1페이지 이내로 줄어보세요.
- NSIS/예제3 . . . . 9 matches
; define 상수.. 버전 표시용.
SpaceTexts "필요요구용량" "이용가능한용량"
; Uninstaller 설정 - 이건 기본적으로 nsis 에 포함된 것을 이용.
; 사용했던 디렉토리들 제거.
SpaceTexts: required="필요요구용량" available="이용가능한용량"
- NSISIde . . . . 9 matches
Solo Programming 으로 진행. XP 공부한거 소폭 적용해봄.
|| Rich Edit Control 의 이용. 편집. 자료구조와 sink. || 0.5 ||
|| CInnerProcess Class 의 이용. 약간 수정. makensis 이용. || 0.5 ||
|| MFC의 MDI Framework 이용 || none ||
* Rich Edit Control 의 이용. 0.5
CInnerProcess Class 이용, Nsis 연결하기 - 0.5
* 하지만, View/Document 구조가 한편으로는 방해물이.. 이미 디자인이 되어버린 Framework 의 경우 어떻게 적용을 시켜나가야 할까. 일단 주로 알고리즘과 관련된 부분에 대해 Test Code를 만들게 되었다. 계속 생각해봐야 할 문제일 것이다.
* AcceptanceTest 를 중간에 짤 시간을 할당하지 못했다. (솔직히 GUI 부분이 들어가는 부분에 대해 감이 오질 않았다. 전에 Web Programming 때에는 직접 HTTP Protocol을 이용, 웹서버로부터 받아온 HTML 문서를 Parsing 한 뒤 그 결과에 대해 Test Code를 작성하는 식이였는데.. (그래도 Manual Test 목록이라도 작성해 두었어야 했는데 이건 계획단계의 실수라 생각)
- Profiling . . . . 9 matches
순간에 얼마나 많은 사용자를 수용할수 있는가?
사용자의 요구에 얼마나 빠른 응답을 보이는가?
좀더 적은 메모리를, 좀더 적은 디스크의 용량을 사용할수 있는가?
이탈리가 경제학자 파레토는 사회 전반을 관찰하면서 부의 편중, 자원의 편중 통계를 분석해서 20/80 법칙을 제시하였다. 통칭 20/80법칙, 파레토 법칙이라고 불리며 기타 여러 분야에도 폭넓게 적용된다.
이런 파레토 법칙은 프로그램에서도 적용될 수 있는 법칙인데, 이런 식이다. (몇%는 중요하지 않다. 중요한 점은 인간이 보통 인지하는 것과 실제의 모습이 차이가 있다는 점이다. )
|| PerformanceTest || C/C++을 이용한 성능 측정 코드 작성 ||
=== 수행코드 측정 관련 도구 이용 ===
- ProjectVirush/ProcotolBetweenServerAndClient . . . . 9 matches
|| 명령 || Client || Server || Client 내용 || Server 내용 ||
|| 지령 || quest || {분류} {제목} {내용} || "quest" || 옛날것부터 분류 제목 내용 보낸다. ex) questList 분류1|제목1|내용1|분류2|제목2|내용2 ||
|| 지역 선택 || showmap 1(지역 번호) || showmap Server내용 참고 || 지역 구별자(숫자) || showData 지도에보여줄감염자수 정상인수 + 바이러스이름1 개수1 항체수1 + 바이러스이름2 개수2 항체수2 ... ||
|| 연구실 || showlab || showlab Server내용 참고 || 연구실 들어감. || showLab 지도에보여줄감염자수 정상인수 + 바이러스이름1 개수1 항체수1 + 바이러스이름2 개수2 항체수2 ... ||
|| 실험실 || experiment 바이러스이름 || experiment Server내용 참고 || 바이러스 투여 || 그래프 3개(현재 바이러스 수, 해당 항체수, 사람의 생명력) 그래프 당 점 7-8개 ex) experimentData 8 host8개 antibody8개 virus8개 ||
- Ruby/2011년스터디 . . . . 9 matches
* 위키에 내용 정리하기
* 음수를 배열의 인덱스로 사용할 수 있다.
* Proc객체와 lambda함수의 차이점(정확한 차이점과 사용법)
* 숫자도 객체로 취급해서 메소드를 사용할 수 있다.
* 반복자를 이용하여 간단한 코딩이 가능
* 위키에 내용 정리하기
* , 의 사용 : {{{a, b = b, a}}} 로 간단하게 swap을 구현할 수 있다.
* 모듈을 이용하여 제한된 다중상속을 구현할 수 있다.
* 위키에 내용 정리하기
- TeachYourselfProgrammingInTenYears . . . . 9 matches
Pascal:3일간으로, Pascal 의 문법을 배우는 것은 가능할지도 모르는(유사한 언어를 이미 알고 있으면)가, 그 문법의 이용법까지는 충분히는 배울 수 없다.즉, 예를 들면 당신이 Basic 프로그래머이다고 하여, Basic 스타일로 Pascal 의 문법을 이용한 프로그램의 쓰는 법을 배울 수 있을지도 모르지만, Pascal 가 실제의 곳, 무엇에 향하고 있을까(향하지 않은가)를 배울 수 없다.그런데 여기서의 포인트는 무엇일까? Alan Perlis(역주1) 은 일찌기, 「프로그래밍에 대한 생각에 영향을 주지 않는 것 같은 언어는, 아는 가치는 없다」라고 말했다.여기서 생각되는 포인트는, 당신이 Pascal(그것보다 어느 쪽일까하고 말하면 Visual Basic 나 JavaScript 등의 (분)편이 현실에는 많을 것이다)를 그저 조금 배우지 않으면 안 된다고 하면(자), 그것은 특정의 업무를 실시하기 위해서(때문에), 기존의 툴을 사용할 필요가 있기 때문일 것이다.그러나, 그러면 프로그래밍을 배우는 것으로는 되지 않는다.그 업무의 방식을 배우고 있을 뿐이다.
만약 그러한 있고 것이라면, 4년간 대학에서(혹은 대학원에 가, 더욱) 배우는 것.그러면 성적 증명서를 필요로 하는 일자리에 접근하고, 그 분야에 도착해보다 깊은 이해를 얻게 된다.하지만, 학교를 즐길 수 없다고 한다면, (열의가 있으면) 일을 하는 과정에서 같은 체험을 얻을 수 있다.어느 경우이든, 책에 의한 학습만으로는 충분하지 않다.「컴퓨터·사이언스의 교육으로 누군가를 프로의 프로그래머로 하려고 하는 것은, 브러쉬나 그림도구에 대해 배우게 해 프로의 화가로 하는 것 같은 정도 어렵다」라고 The New Hacker's Dictionary(역주5) 의 저자인 Eric Raymond 는 말한다.내가 지금까지 고용한 중에서 최고의 프로그래머의 한 명(역주6)은, 고등학교까지 밖에 나오지 않았다.그렇지만, 그는 많은훌륭한소프트웨어를 만들어, 지금은 자신의뉴스·그룹까지 가지고 있어, 스톡옵션 덕분에, 틀림없이 내가 일생 걸려 벌 수 있는 것보다 좀 더 부자다.
표준적인 1GHz 의 PC로 2001년의 여름에 측정한, 여러가지 연산의 소용 시간
* 역주 3 - 이 두 개의 인용에 대해서는, 링크처를 더듬어도, 정확하게 어느 문헌때문인지의 인용이나 특정할 수 없었다.입수할 수 있는 국역을 아시는 바라면, 부디 연락 주세요.
* 역주 5 - ASCII BOOKS 로부터 「학카즈 대사전」(후쿠사키 타카히로역)로서 국역이 나와 있다.덧붙여 본문에 인용되고 있는 ESR 의 문장이 어느 문장으로부터의 인용인가는 몰랐다.본문에서는 ESR 는 The New Hacker's Dictionary 의 저자로서 이름을 들 수 있지만, 현재의 Jargon File 에는 해당 문장은 없었다.
- ToyProblems . . . . 9 matches
자주 사용되는 ToyProblems:
ToyProblems를 풀게 하되 다음 방법을 이용한다. Seminar:TheParadigmsOfProgramming [http://www.jdl.ac.cn/turing/pdf/p455-floyd.pdf (pdf)]을 학습하게 하는 것이다.
1. 이번에는 해당 패러다임을 이용해서 앞서 1번에서 풀었던 문제와 유사하지만 다른 문제를 풀게 한다.
학생은 이 경험을 통해 프로그래밍 "개념"과 "패러다임"들을 학습하게 되며, 어떤 경우에 어떤 패러다임이 더 적절한지 판단할 능력이 생기고, 무엇보다도 한가지 패러다임에 대한 초기 각인(새끼새가 처음 본 흰색을 무조건 어미라고 생각하는 효과)을 깨트리고, 좀 더 자유로워질 수 있다 -- 한가지 패러다임만 아는 사람보다는 여러가지 패러다임을 아는 사람이 더 개방적이고 포용력이 넓다. --JuNe
고학년(저학년을 가르칠 사람들) 대상으로 강의를 해줄 용의가 있습니다. 만만한 문제가 결코 만만한 게 아니라는 것, 간단한 것에서 정말 엄청나게 많은 걸 배울 수 있다는 것 등을 느끼게 될 것입니다. --JuNe
희상 - CSP를 응용해 문제를 푸는 것을 듣고 난 후 Alan Kay가 Paradigm이 Powerful Idea라고 했던 것에 고개를 끄덕끄덕 할 수 있었다. 그동안 FP를 맛만 보았지 제대로 탐구하지 않았던 것이 아쉬웠다. FP에 대한 관심이 더 커졌다.
늦게 온 사람이 중간에 참여하는 것은 문제가 있다. 그 사람은 앞부분을 모르기 때문에 어떤 부작용이 있다.
석천 - 늦으면 안된다. Python 사용중 아는 것과 쓰는 것의 커다란 차이를 느꼈다. 기존 사고에 갇혀버려 새로운 사고로 전이 못하는 것에서 어려움을 느꼈다.
CP도 Functor 의 일종이다. ( 예 - Spiral Matrix를 Vector의 방법으로 풀기). CP부터 배우면 CP에서 제시하는 예에서만 적용하는 것으로 갇힐수 있다.
- WinCVS . . . . 9 matches
WinCVS를 처음부터 사용해봅시다.
1. WinCVS를 사용하기 위해서는 Python과 TCL이 깔려있어야 한다.
WinCVS에 유용한 몇몇 것들이 TCL 쉘 상에서 실행된다. 이것들을 활성화 시키기 위해서는 최신버전의 ActiveTCL이나 Tcl/Tk가 필요하다. (From WinCVS설치 메뉴얼)[[BR]]'' -- 선호
''WinCVS 의 쉘에서의 직접 커맨드 입력기능을 이용하려면 이전 버전에선 TCL, 최신버전에서는 Python 을 이용합니다. 하지만, 설치 안해도 WinCVS 의 주기능들은 이용가능한걸로 기억합니다. --["1002"]''
2. 추가학 파일들이 들어있는 디렉토리로 간다. (왼쪽의 탐색창을 이용하여)
CVSNT : CVS의 NT용 서버 프로그램 ["www.cvsnt.org"]
앞으로도 계속 사용하면서 추가해보고싶다.
- erunc0/COM . . . . 9 matches
'''COM은 실용주의가 나은 산물이다.''' 마은에 든다. 상업적인 성공을 이끌게 된 이유야 무엇이든 간에.. 추상적인 학문이 아닌 실용적인 학문을 접해 보고 싶었기 때문에.. 공부하기로 마음 먹었다. 또, 하다가 그만 두면 안될텐데.. 라는 걱정은 뒤로 재쳐 두고 책한권을 구해서 차근 차근 보기로 했다.
* 간단한 C++ 클래스로 시작하여 재사용 가능한 이진 Component로써 클래스를 사용하는 법을 간단한 예제를 통해서 배우게 된다. 처음은 DLL을 통해서 client 에게 제공하는 문제에 대해 말하며. 다음에는 이렇게 제공되어진 컴포넌트에 대한 방화벽(?)등에 대해 논의 하면서 인터페이스를 통하여 컴포넌트 내의 은닉화를 위한 방법들을 설명해준다. 그리고 그다음으로는 abstract class를 사용해 (virtual function을 이용한 방법) 인터페이스의 확장에 관한 부분까지 설명한다. 그리고 끝으로는 RTTI 이용하여 더 나은 인터페이스의 확장 방법과 다중의 client 에게 컴포넌트를 제공할수 있게 만드는 부분까지 설명한다. 한서라서 그런지 애매한 용어들이 많이 있어서 아직도 이해가 가질 않는 부분이 많았다. 한번더 chapter 1응 읽은 후에 정리하고 chapter 2로 넘어가야 하겠다.
* 정말 시간이 없다. 회사에서 하는일도 엄청 쉬운 것들인데 왜이리 시간이 많이 드는지.. 아이러니 하다. chapter1을 어서 정리 해야 하는데, 꽤 괜찮은 내용 같았다. 다시 review하면서 정리해야 하는 시간이 나길. 주말이나 가능 하겠다.
- html5/richtext-edit . . . . 9 matches
* HTML5는 리치텍스트 편집용 API를 표준으로 규정한다.
* 내용 편집이 불가능한 요소(div등)를 편집하게 하기 위한 API.
* contenteditable : 특정 요소의 내용만 편집 가능
- 자바스크립트를 이용한 편집 속성 정하기 -
iFrame의 contentDocument를 대상 - iFrame안의 내용 편집가능
= 편집가능영역에서 편집할 내용 가져오기 =
* window나 document객체가 가진 getSelection()메서드를 이용하여 Selection형 객체 생성
* Selection 객체에 toString사용하면 선택한 범위의 문자열(HTML제외)가져옴
* 조작한 내용 이력 기록 undoManager가 저장(최상위 객체) 상당히 간단
- 검색에이전시_temp . . . . 9 matches
[To.용안]
|| 유용안 || 타겟메타검색 ||
|| [특정 웹사이트 메타 검색] || 유용안 ||
|| 05/12/23 || 검색_test - 유용안 || 동문서버 자유게시판 검색 테스트 ||
|| 검색_test - 유용안 || 얻어온 데이터 필터링 ||
* [http://prdownloads.sourceforge.net/goog-kongulo/kongulo-0.1.zip?download 웹스파이더(구글오픈소스)] - 이프로그램은 구글 데스크탑의 플러그인 같은 것으로서 이프로그램을 사용하여 특정 웹사이트 내용을 긁어서 구글 데스크탑 디비에 넣을 수 있다. 현재는 이 프로그램으로 구글 데스크탑이 아닌 그냥 파일에 쓰는식으로만 바꿔봄
= 사용 언어 =
좀만 더 연구하면 싸이월드에 있는 기능들을 위키에서 모두 플러그인 식으로 사용가능하겠구나. -_-
- 새싹교실/2011/A+ . . . . 9 matches
* 반드시 ZeroWiki에 작성해주세요. 하위 페이지를 만드는 것도 허용합니다.
* 여러분들이 배운 내용을 정리해주세요. 학습효과가 더 커집니다.
* 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
과제로 배열을 이용한 구구단 만들기를 받았다.
새싹교실이 끝난뒤 배운 while문과 '윤종하 게임'에서 뽑아온 switch코드를 이용해서 [고한종/on-off를 조절 할 수 있는 코드]를 만들어 내었다. 아이 싱난다. -> 이런게 피드백 인가염?
과제 다했으요 ^_^ [고한종/배열을 이용한 구구단 과제]
* 피드백 쓰는게 갈 수록 늦어지고 있다 큰일이다 으헝헝. 배열과 포인터, call by value==pass by value에 대해서 배웠고 과제는 swap()을 구현해보라 하셨다. 포인터사용이 아직 능숙하진 않지만 이걸 이용하면 이제 할 수 있는게 무궁무진 해지겠지... 과제완료 : [고한종/swap()] 그리고 이걸 이용해서 다음 C프로그래밍 과목 과제로 예상되는 sort를 시도하고 있으나 잘안됨 ㅜㅠ - [고한종]
- 새싹교실/2011/Pixar/3월 . . . . 9 matches
* printf 함수는 콘솔에 내용을 출력해주는 역할을 합니다.
* printf 함수가 내용을 출력해준다는 것을 컴퓨터가 모르니까요!
* 사실 printf가 어떻게 내용을 출력해주는지는 똑똑한 아저씨들이 stdio.h에 미리 써놓았어요. 우리는 #include <stdio.h>라는 코드를 써서 저 파일을 컴퓨터가 읽어볼 수 있도록 알려주기만 하면 됩니다.
1. C 고수는 절대 아니지만… 나름 새싹교실 4년차라 이제 오래 준비하지 않아도 뭘 가르칠지는 머리 속에 다 들어있다고 생각했는데 첫 시간 진행해보니 그렇지 않네요ㅜㅜ 관련 내용은 알고 있어도 처음 C를 접하는 새내기들에게 어떻게 설명해야 좋을지 생각해봐야겠어요. 이전까지는 사실 교수님 수업이 새싹 진도보다 조금씩 앞서나가서 수업을 보충하는 식으로 진행했던 것 같은데 이번 해엔 그렇지 않다는 것을 미리 고려하지 못했습니다ㅠㅠ
1. 생각해봤는데 제가 말이 너무 빠르고 혼자 말을 많이 해서 새내기들이 듣고 생각을 정리할 시간이 별로 없지 않았나 싶습니다. 조금 더 천천히 말하고 함께 이야기해보고, 직접 실습하며 스스로 내용을 정리하고 느낄 수 있는 시간이 될 수 있게 노력하겠습니다. - [김수경]
* 1주차에는 수업시간에 했던 간단한 Hello World랑 간단한 연산과 assert함수에대해서 배우고 응용해 보았다. 수업시간에했던 C공부에 생겼던 의문들을 자세하게 다 알 수 있어서 좋았다. C가 한참막막해보였는데 새싹교실 첫시간에 희망이생겼다. 다음시간에도 많이 배우고 갔으면 좋겠다. - [김연석]
* 위키 사용하기
* 두번째로 c프로그래밍을 배웠습니다! 피드백을 좀 늦게쓰게됬습니다. 저번시간에는 전처리기에 대해서 배웠습니다 컴파일 전에 읽어주기 때문에 전처리기라고 합니다. 우리가 써본건 #include 와 #define 입니다 그리고 변수이름으로 사용할 수 있는것들을 배웠습니다. 학교 수업이 너무 어려워서.. 열심히 하려고합니다!!.. -이승열-
* 세번째 c프로그래밍수업 새싹교실을 했습니다. 연산자에 대해서 배웠습니다. 연산자는 사칙연산이랑 나머지를 구하는거등이 있었고, assert를 이용해서 확인해보면서 & 나 | 등 배우고 printf에 대해서도 배웠어요 내일은 수업이 없다고 하니 오늘 한것을 복습을 열심히 하겠습니다~! 점점 잘할수 있을거같다는 마음이 드네요 . -이승열-
- 새싹교실/2011/무전취식/레벨8 . . . . 9 matches
== 수업 내용 ==
* 파일 입출력 : 파일 포인터를 이용해서 파일을 받아옵니다. 엽니다. 임시저장소에 넣엇다가 출력합니다. 파일을 닫습니다.
* Struct(구조체) : 간단하게 사용자 정의 배열이라고했습니다.
* 구조체란...? 사용자 정의배열이지.
* 파일 입출력을 처음 보게되었는데 어려워도 해보면 정말 재미있을것 같아요. 여태 많이 봐왔던 파일들의 위치를 나태내어주던(주소창에 막 써졌던 것들)것에 대해 오늘 배운 파일 입출력에서 실체를 알게되었습니다ㅋ 포인터는 정말 중요한것 같아요. 반드시 여러번 이용해보면서 포인터에대해 익숙해 져야겠습니다. 그리고 저도 C관련 책을 하나 구해서 따로 자습을 해야 할것 같아요. - [서원태]
* 파일 입출력 처음 배웠습니다! 완전히 처음봤어요. 근데 html인가? 하여튼 웹프밍배울때 배웠던 파일입출력이랑 조금 비슷한 것 같아요. fgets는 이해 안가요 ㅠㅠ 왜 저렇게되는지 모르겠어요 흑흑. 수업은 파일입출력까지 안나가겠지만 그래도 확실히 알아두고싶습니다+_+ 오빠 월요일에 안가서 죄송해요..헤헷.. @>----- 꽃...하핳... 그래도 오빠한테 항상 감사하고있어용♥ 앞으로도 잘부탁드려용 -[이소라]
* 파일 입출력...을 배웠지요 저 나름 열심히 쳐다봤는뎅 잘 모르겟네욧.. 구조체란 것도..너무 생소 해요!! fgets도 ㅠㅠ 으아아악 모르는거 투성이가 나와버렸어요@.@ 제눈은 빙글 빙글..ㅋㅋ 음 저도 왠지 고등학교 때 html 잠깐 아주 조금 배웠었는데 이런것 한 것 같기두 해용..히히 저도 죄송하여요 선생님♥..오빠가 없었다면 전 C 찌질찌질 왕찌질이 였을꼽니당...ㅎㅎ 근데 지금 포인터때매 너무 혼란하네용 더 알려주세요>.< 복..습도 할꼽니당!! -[이진영]
- 새싹교실/2011/무전취식/레벨9 . . . . 9 matches
== 수업 내용 ==
* 후기가 날아가서 갑자기 의욕이 팍... 앞으로는 저장하고 적어야겠습니다. 이런일이. 역대 Ice Breaking중 가장 길었는데!!! 이미 수업 진도는 다 나아가서.. 이제 좌우를 돌아볼차례입니다. 알고리즘도 배우고 함수 쓰임도 배우고 코딩도 손에 익히고. 이번 시간에는 진영이에게 코딩을 맞겼는데 생각보다(?) 정말 잘했습니다. 가르치고 싶은건 이제 생각한 내용을 코드로 바꾸는것입니다. 다음시간에는 그것에 대해 한번 생각해서 진도에 적용시켜봐야겠습니다. 그리고 자료구조를 한번 알려줘야겠어요. 숙제는 잘들 해가죠? - [김준석]
* 일등이다 야홍호오호오홍호오호옿 ice breaking이 저장되지않았다니... 슬픕니다ㅜ_ㅜ제꺼가 제일길었는데... 숙제 다시 풀어보다가 생각나서 후기쓰려고 들어왔는데 일등이네요 하핫 오늘은 축젠데 노는건 내일부터 해야겠네요ㅠ_ㅠ 지지난 시간 복습을 했습니다. 스택구조에대해서 다시한번 배웠고, 파일입출력을 배웠습니당(사실 복습). 파일은 구조체로 작성되어있는데, 파일이 있는 주소와 파일을 어디까지 읽어왔는지를 기억하는 변수가 포함되어 있다고 배웠어요. 그래서 while문에서 fgets로 읽어온 곳이 null이면 break하라는 if문을 4번거쳐서(파일 내용이 4줄일경우) printf가 4번실행된다는 것을 알았어용.(맞낰ㅋㅋㅋ) 그리고 숙제로 나온 문제를 풀어주셨는데 2번이 어려웠었는데 수..수학때문이었던 것 같네용... 아직까지 dev의 공식을 모르겠어요. 나름 수학열심히했었는데.. 다시해야하나봐요ㅠ_ㅠ 수학이 모든 학문과 연관되어있다니..싫어도 꼭 제대로 공부해야할 것 같습니다ㅜ_ㅜ(그래도 선대는싫어요.)c공부도열씨미하고 수학공부도열씨미할게용 하하하하 후기 길다!! 숙제 도와주셔서 감사합니당♥히히힛 - [이소라]
* 오옷~~ 소라가 길게 썻어 ㅋㅋ 우와우와.. 정말 레벨 9까지의 후기중에 가장 보람찬 후기군요. Ice Breaking저장 못해서 미안... 흑흑. 오늘은 축제이지만 사실 우리학교는 별로 놓게 없답니다 슬프지만 이게 현실이에요..ㅠ.ㅠ 맨날 술먹고 스타부르고. 정작 학생들이 놀자리가 없다니 이게 뭔가요 =3=!!! 이번 레벨9에서 배운내용에 대해 자세하게 남겨줘서 너무 기쁩니다. 정말. 정말 기쁨. 다음시간에도 파일 입출력을 해보고. 돌아가며 실습에 들어가봐야겠습니다. 수학. 우와 어렵죠. 소라도 수학이 약하지만 언젠가 수학이 필요한날이 올때가 있을거란다. 정말로. 정말로. - [김준석]
* 애들이 왜케 후기가 빨라진 고에여..아직 목요일인뎅?,..ㅠㅠㅠㅋㅋㅋㅋ이번 시간은 정말롱! 유익햇어요 항상 그랬지만은 이번주는 특히! 왜냐면 수업에 빠졌었어서..ㅎㅎㅎ 뭔가 이해도 팍팍됐구요오 이번 시간에는 버블소트랑 셀렉션소트랑..과제 2,3번과 음..그 저번 시간 복습 파일 입출력! 그리고 while문에서 4번돌아가는거...힝 이거는 들어도들어도 계속 알것같으면서 모르겠어요!ㅠㅠ 어려워이잉 수업시작 되기전에 저 엄청 졸렸는데 수업할 때 맛있고 재밌어서 깼어요 잠! ㅋㅋㅋ 저 은근 열심히 들었는뎅..ㅎㅎㅎ 그리고 코딩도 해봤어요! 직접! 꺅! 근데 생각보다...할 수있었어욬ㅋㅋㅋㅋ코딩 맡겨보는거 좋은거같애요 오빠!히히 이제 이거 한번 복습하구 과제 마무리하러 가야게써용!! -[이진영]
- 새싹교실/2011/쉬운것같지만쉬운반/2011.3.23 . . . . 9 matches
= 공부 내용 =
= 안내 내용 =
|| 새싹 || 장용운 || O ||
* C언어 진도를 나간 첫 수업이었다. 내가 생각보다 수업을 빠르게 진행을 한건지 수업을 반정도 진행하니까 준비해간 내용을 전부 진도를 빼버렸다; 1시간을 가르치려면 1시간을 준비해야한다더니, 그 말이 맞는 것 같다. 다음 화요일 수업에는 더 많이 준비해야겠다. C언어 말고도, 간단하게 다른 새로운거 접해보라는 의미로 tryhaskell홈페이지를 알려주었다. 애들이 재밌게 해봤으려나?ㅋㅋ - [박성현]
* C언어 프로그래밍을 시작하기 위해 필요한 컴퓨터와 프로그램에 대한 지식을 공부하였다. C언어는 역시 멋진 언어인 것 같다. haskell을 해 보고 싶었는데 사이트가 이상했다 ㅠㅠ.. 프로그래밍 언어는 너무 많은 것 같다. 다 배우려고 하진 말아야지... - [장용운]
* 문제 풀이 - [장용운]
프로그램은 여러 데이터를 가지고 사용자가 원하는 일을 수행하는 것입니다.
콘솔 응용 프로그램에선 main()
Win32 응용 프로그램에서는 APIENTRY WinMain()
- 새싹교실/2012/강력반 . . . . 9 matches
=== 수업내용 ===
1.visual studio 사용법
상황에 따라 프로그램을 다 만들기 귀찮으므로 사용
* 설유환 - printf함수, scanf함수, if문, else if문, switch 제어문을 배웠다. 특히 double, int, float의 차이를 확실히 배울 수 있었다. 잘이해안갔던 #include<stdio.h>의 의미, return 0;의 의미도 알수 있었다. 다음시간엔 간단한 알고리즘을 이용한 게임을 만들것같다. 그리고 printf("숫자%lf",input);처럼 숫자를 이용해 소숫점 표현량을 제한하여 더 이쁘게 출력하는법도 배웠다.
* 황현제 - 우선 c언어에서 쓰이는 기본적인 연산자가 무엇이 있는지에 대해서 배웠다. 또한 함수 4가지에 대해서 배웠는데, printf, scanf,switch, if에 대해서 배웠고 그리고 새싹강사님께 C를 이용해 작성하신 프로그램을 구경하기도 했는데, C로 이런것도 할 수 있다는 것을 알았다. 새싹 강사님께서 우선적으로 설명을 해주신다음 새싹들이 실습하는 방식으로 수업이 진행됬는데, 옆에서 강사님이 지속적인 피드백을 해주셔서 이해하기가 편했다. 다음에는 반복문에 대해서 배우고, 실습도 해봐야겠다.
=== 수업내용 ===
같은 작업을 계속 하기 위하여 사용
반복문을 사용한 기본적인 예제
- 새싹교실/2012/아우토반/뒷반/3.30 . . . . 9 matches
|| 강사 || 장용운 || O ||
* 오늘은 여러 가지 기초적인 문법 사항을 알려주었다. 언제나처럼 변수의 개념에 대해 강조했고, 개념 설명 위주로 수업을 진행하였다. 다음 주는 실습 시간이 될 예정이다. 아무래도 C를 처음 배울 때엔 많은 연습이 필요한 것 같다. 그러므로 학생여러분은 숙제를 해결해오세요~ ㅋㅋ - [장용운]
* 오늘 꽤 여러가지를 배웠다.수업시간에 듣지못했던것을 여기서 들을 수 있어서 매우 좋았다.아직 어려운게아니라서 머리속에 잘 들어갔고 이제는 잘 활용하는일만 남았는데 솔직히 문제를 풀어보는것은 해 본적이없어서 그닥 자신은 없다.틀려도 되겠지라는 마음을 갖고 숙제를 해봐야 할것같다.
* 오늘은 C언어의 기초를 배운 것 같다. 오늘은 너무 피곤해서 수업시간 내내 졸았던 것 같아서 용운이 형한테 너무 죄송스러웠다. 그래도 이번 수업에서 한 내용은 C프로그래밍 수업 때 조금 들었던 것이었기 때문에 내용을 이해하기가 조금 수월했던 것 같다. 오늘 너무 많이 졸았기 때문에 다음 시간부터는 수업전에 컨디션 조절을 해야겠다. 그리고 앞으로 내용이 많이 어려워질것 같은데..... 열심히 해야겠다. - [김태헌]
단, 위 작업을 0을 입력받을 때까지 계속해서 수행하여야 한다. (while문 사용)
while문의 조건문에는 != 연산자를 사용한다. != 연산자는 양쪽 피연산자가 같은 값을 갖지 않을 때 참이 된다.
- 새싹교실/2012/절반/중간고사전 . . . . 9 matches
* 교수님 커리큘럼이 궁금하네요. 제어문까지 진도 나갔다길래 변수, 자료형, 전처리기 당연히 했을 줄 알았는데 그런 내용은 아직 안 다룬 것 같더라구요? 제가 파악을 못한건지-_-; 처음부터 새로 가르칠 생각이 아니라 교수님 수업을 바탕으로 모르는 것을 채워주는 것이 목표라 수업 커리큘럼을 알고싶은데 올해 커리큘럼은 어디서 봐야할지 모르겠습니다. 봉봉 교수님때는 봉봉 교수님 페이지에서 강의자료를 받아서 볼 수 있었는데…
* 예약어를 사용하면 안 됨
* 가급적 의미를 알 수 있는 이름을 사용하자
* 제어문 파트는 각각 문법보다 어떻게 활용하느냐가 중요하다고 생각해서 일단 문법은 if문과 for문만 진행했습니다. 구구단 실습과 별찍기를 진행했으니 이제 반복문의 기본적인 활용에는 조금 익숙해지지 않았을까 싶습니다.
* for문 응용
* for문을 이용한 별 찍기
* 변수 선언시 대소문자 구분, 숫자 및 특수문자 사용 못함
* 연산자에 대해 설명할 내용 준비해오기.
- 새싹교실/2013/록구록구/2회차 . . . . 9 matches
= 수업 내용 =
* scanf 원리, 사용법
* 위키의 대략적인 사용법
* 간단한 wiki 사용법
== 내용 ==
* scanf의 원리와 사용법
* 제로페이지 wiki 대략적인 사용법
scanf와 #define에 대해서 배웠다, wiki가 무엇인지 또 어떻게 사용하는 것인지 알게 되었다
wiki의 존재와 활용법, 자기페이지 만드는방법, scanf 입출력, #define을 배웠다.
- 새싹교실/2013/케로로반 . . . . 9 matches
* 앞으로는 미리 공부할 내용을 ppt에 올리고, 각자 보면서 진행하게 해야 할듯...
* 수업 막바지에 용승이 형이 조언을 해 주셨는데, 좋은 방법인 것 같아 다음 수업 때 부턴 다른 방식으로 수업 해보려 합니다.
* 오늘 배운 내용을 토대로, 실습을 했습니다.
* 실습 내용
- 시험 점수를 입력받는데, 90점 이상이면 A, 80점 이상이면 B, 70점 이상이면 C, 60점 이상이면 D, 50점 이하이면 F를 출력하는 기능을 만들고, 사용자가 -1을 입력할 때 까지 계속 반복될 수 있도록 하세요.
* if else문을 이용하여 해결한 학생은 else문의 필요성을 알 수 있게 했습니다.
* 단순 if문만을 사용하여 처리하는 경우에는 논리 연산자의 활용을 할 수 있게 했습니다.
* 15회차 내용 복습
- 위시리스트/130511 . . . . 9 matches
* A4용지 10박스 (중요도: 5) : 꼭 필요. 적재 가능한 만큼 구매하자(2학기때 더 신청할 수 있는거 고려해서) -[김태진]
* MATLAB 활용, (저자: Stormy Attaway) -[김태진]
* 실전 코드로 배우는 실용주의 디자인 패턴 (저자: 앨런 홀럽): 이거 있던가? - [권순의]
* 한 2~3대쯤 사놓고 Ebook용으로 사용해도 될듯...
* 프로젝터용 컴터 (중요도 : 2) : 프로젝터용 컴터가 하나쯤 있으면 편하긴함. 관리가 귀찮아서 그렇지.- [안혁준]
* A4용지 추가 10박스 (중요도: 2) : 살거 없으면. -[김태진]
* 방향제나 모기향 같은 물품들은 과총(??) 등에서 '재료비' 명목으로 사용될 수도 있을 것 같은데..
- 이승한/PHP . . . . 9 matches
* asp.net에서 보았던 ODBC 를 이용한 DB와의 통신보다 간단하고 빠른듯.
* htmlspecilchars(); //& " ' < > 등 HTML에서 사용하는 키워드를 다른 키워드로 바꿔준다. ex>& -> & " ->"
* explode() // 문자열을 특정한 문자열을 기준으로 분리하여 배열형태로 넘겨준다. array 사용법을 잘모르겠음.
* <? 와 ?>로 되어있다. (ASP는 <% %>를 사용하여 타이핑하기 불편하다.)
* 화면에 문자 뿌리기 : echo(" 내용<br>");
=== 변수의 종류와 사용 ===
* 기본사용 : $변수이름의 형식이며 변수 타입은 존재하지 않는다. 객체를 이용하여 type을 지정할수는 있다.
function 함수명(전달인자){ 함수내용; return 변수;} // Function 도 상관이 없었다. return은 없어도 돼며 type이 존재하지 않으므로 함수에 리턴타입은 존재하지 않는다.
- 이학 . . . . 9 matches
일반적으로 미국에서는 이학이 발달되어 있는데, 그 이유로는 미국이란 나라가 높은 봉급으로 교수를 고용하기 때문에 여러 나라에서 우수한 인재들이 모여 있다는 점을 빼놓을 수 없다. 이학이라는 것은 책에서 배우는 것이 아니라 직접 사람과 접하면서 그 사람이 갖고 있는 지식이나 사고 방식을 배우는 거을 말한다. 따라서 우수한 인재가 모여 있다는 것은 그만큼 '이학'이 발달될 소지도 크다는 것이다.
일류 대학의 학생이라면, 이 이학만으로 단기간 내에 상당한 수준까지 배울 수가 있다. 가령, 3,4백 페이지 분량의 책에 씌어진 내용을 배우려고 할 때, 학생은 교수에게 가서 "이 책에는 무엇이 씌여져 있습니까?" 라고 일본의 대학에서는 상상도 할 수 없는 질문을 한다. 다소 유치하고 대략적인 질문이지만, 질문받은 교수는 그에 대해서 학생에게 열심히 설명한다. 그러면 그 설명에 대해서 또 질문하고, 그것을 몇 시간에 걸쳐서 되풀이하는 동안에 학생은 그 책의 요점을 파악해 버린다. 두꺼운 책을 몇 페이지 읽다가 이해하지 못해 포기하는 것보다 질문을 하는 것이 결과적으로 좋은 효과를 내는 셈이다. 물론 상세한 부분은 스스로 읽어야 되겠지만, 대체적인 요점이나 골격을 파악하면 책에 대한 이해는 훨씬 빠르다.
'이학'은 단순히 학문에서뿐만 아니라 여러 방면에서 이용된다. 예를 들어 일본에 대해서 알고 싶어하는 미국 사람은 일본에 관해서 쓴 책을 읽기 보다 우선 주변의 일본 사람에게 자꾸 질문한다. 나도 주변의 미국사람에게서 일본에 대한 여러 가지 질문을 받은 적이 있다. 질문을 받으면 대답해야 한다. 대답해 주지 않으면 자기도 상대방에게 그와 비슷한 질문을 할 수 없기 때문이다.
정말 흥미로운 내용이네요. 전국투어팀은 선배님들을 찾아가서 학문에 대한 내용에만 국한되지않은 훌륭한 ["이학"]을 하고 있겠죠? 대학 시절에 ["이학"]을 통해서 빨리 배울 수 있는 분위기가 만들어졌으면 좋겠어요. 전공에 관련한다면 위키위키가 그 대안이 될 수 있을까요?
공부를 효율적으로(비용 대 수익 면에서) 잘 하는 사람들을 보면, 질문하기를 잘(자주)하고 또 잘(능숙하게) 합니다. 또 하나 관찰할 수 있는 것은, 어느 누구에게 무엇을 묻든 꺼리거나 부끄러워 하지 않으면서도, 물을 때는 주변에서 가장 적당한 사람, 최적의 사람을 찾아 묻는다는 점입니다.
노벨 물리학상을 받은 리차드 파인만(그의 전기는 물리학과 인연이 없는 사람들에게도 추천합니다. 밤을 단숨에 샐 겁니다)은 이런 질문하기의 기술과 용기를 두루 갖춘 사람이었습니다. 그가 모 프로젝트의 중간에 투입되었을 때 관련 기술지식을 전혀 갖고 있지 못했습니다. 그 프로젝트의 현장 기술자들을 불러놓고 그들에게 끊임없이(대여섯시간?) 질문을 해서 순식간에 그들의 지식을 흡수한 이야기는 전설로 회자되기도 합니다.
도올 김용옥은 모르는 것이 있으면 남들과 달리 애둘러 묻지 않고, 직접적으로 묻습니다. "양자 역학이 뭔가요?" 거기에 "소립자, 원자, 분자 등의 미시적인 계에 적용되는 역학입니다" 식의 사전적 답변을 듣게 되면, 다시 묻습니다. "그러면 소립자는 뭔가요?" 이런 식으로 몇시간만 진행하다 보면 정말 "이해"란 걸 하게 됩니다. 물론 전문 텍스트를 보고 공부하는 과정이 결여되어 있으니 완전하진 않지만, 개념의 이해는 가능하다는 겁니다. 그런데 이게 나중에 그 분야를 공부하는 데에도 엄청난 도움이 됩니다. 천지차이죠. 수식 몇 개 외워서는 이런 지식의 심층구조(deep structure)를 획득하기 어렵습니다.
- 정모/2011.3.2 . . . . 9 matches
* 새 학기 첫 정모라 그런지 많은 분들이 참석해주셔서 좋았습니다. 정모에서 학술활동을 하기로 했는데 어제는 학기 첫 정모인데다 페챠쿠챠도 없어 안내 위주로 진행된 것이 아쉽네요. 밤을 새고 정모를 갔더니 정신이 없어 진행하는 동안 실수를 많이해서 다음부턴 정모 전날에 꼭 잠을 충분히 자고 와야겠다고 생각했습니다. 사실 어제 정모를 마치고 예정보다 정모가 빨리 끝나서 당황스러웠습니다. 내용을 꾸릴때는 두시간치 내용이라고 생각했는데 진행하면서 제가 말이 조금 빠르지 않았나 싶습니다. 앞에서 계속 혼자 말하려니 듣는 분들은 현재 어떻게 느끼고 계시는지 알 수 없어 문제입니다. 그리고 꽤 많은 내용을 안내했는데 그냥 줄줄 말하기만해서 다 기억하실 수 있을지 걱정입니다. 정모 요약에 내용을 정리해 올릴 예정이지만 그와 별개로 다음 정모부터는 안내할 내용이 많은 경우 ppt나 문서 등 자료를 준비해오도록 하겠습니다. - [김수경]
* 개강 첫 정모라 그런지 재학생분들의 참여가 많아서 좋았어요! 오랜맨에 보는 얼굴들이 많아서 반가웠습니다. 그런데 10분들은 많이 안계시네요. 참가자들의 학년(?)이 높아선지 제안된 스터디들의 수준이 높아서 설렘!! 하지만 지난학기 성적을 보고 학기중에 다른 활동이 많으면 성적이 안좋아진다는 사실을 깨달았기때문에 전부 참여하지는 못했습니다.. 스프링에 대한 설명을 잘 못해서 아쉬웠는데 앞으로는 발표할 때 머릿속으로 잠깐 생각한 다음 말해야겠습니다. (첨부)정모에서 지난 스터디때 배운 내용을 공유할 수 있도록 기록해서 정리하는 습관을 들여야겠어요. - [서지혜]
* 정모 방식이 피드백을 하는 것으로 갯수를 채워야 정회원이 유지된다고 들었습니다. 커피 포인트 도장을 찍는 것 같아, 다 모으면 정회원 혜택! 이라는 것이 더 와닿습니다. 새싹 교실 강사 지원을 했는데, 매주 2시간 씩 8회 이상 수업하는 것과 printf가 아닌 다른 방식으로 확인하는 것이 신기했습니다. 제가 잘 할 수 있을 지 모르겠지만, 되도록 중간고사 전후로 끝내는 내에서 열심히 진도를 나가보겠습니다ㅠㅠ 그리고 책읽기 모임! 장소 이번에도 카페 같은 곳으로 잡는건가요?ㅁ? 월요일 5시로 정했지만 6피의 서랍장 있는 쪽 책상에서 시험기간만 아니면 조용히 대화해도 괜찮지만..음 토모카나 기숙사 쪽의 카페를 애용하는 것도 괜찮고, 과방이나 다른 빈 강의실을 잡는 것도 괜찮을 듯 싶어요. - [강소현]
* 사람들이 정말 많이왔어요! 처음 보는 분들도 몇 분 계셨구요. 고학년들이 많아서인지 제안된 프로젝트나 스터디 내용이 수준이 있어서 좋았습니다. 안건들에 대한 의견도 많이 나와서 좋았습니다. ZP가 활발해진다는 느낌이 들어서 굿굿. 저도 지금 프로젝트 하나 건의 했는데, 잘 준비해서 열심히 해봐야 겠네요. - [박성현]
- 정모/2011.3.21 . . . . 9 matches
* Emacs & Elisp 후기 :의 소개를 보면서 다양한걸 사용하는 승한형에게 잘맞는 프로그램이라 생각됬다. 그 프로그램을 사용하기에 다양한걸 좋아하기도 하고 내가 가장많이쓰는건 Eclipse와 그걸 지원하는 플러그인이지만 여러가지를 개발하는 개발자에게 저것은 좋은프로그램이라 생각된다. 하지만 나에게는 아직도 Eclipse를 다루는것조차 아직은 버겁기에 우선 Eclipse를 하자는생각이 들었다.
* 수정했어요~ 빠진 내용이 있다면 주저하지 마시고 고치기~ - [서지혜]
1. 오랜만에 승한선배께서 오셔서 세미나 해주시니 좋네요!! 피자도 사주시고ㅜㅜㅜ 잘먹었습니당 :9 승한 선배 세미나 덕분에 정모가 더 알찬 시간이 된 것 같습니다. emacs는 전에도 [데블스캠프]에서 소개해주신 것이 기억납니다. 그때 간단히 써보았는데 파워풀한만큼 처음에 적응하기는 많이 힘들다는 느낌을 받았었어요. 그런데 다시 봐도 어려워 보이네요T_T 하지만 단축키를 사용하여 많은 작업을 할 수 있다는 것이 매력적입니다. 빠르고 효율적인 것도 그렇지만 제 노트북 터치패드가 고장인데다 마우스도 가끔 정신이 나가거든요…….
* Ice braking은 많이 민망합니다. 제가 제 실력을 압니다 ㅠㅠ 순발력+작문 실력이 요구되는데, 제가 생각한 것이 지혜 선배님과 지원 선배님의 입에서 가볍게 지나가듯이 나왔을 때 좌절했습니다ㅋㅋ 참 뻔한 생각을 개연성 있게 지었다고 좋아하다니 ㅠㅠ 그냥 얼버무리고 넘어갔는데, 좋은 취지이고 다들 읽는데도 혼자만 피하려한게 한심하기도 했습니다. 그럼에도, 이상하게 다음주에 늦게 오고 싶은 마음이 들기도...아...;ㅁ; 승한 선배님의 Emacs & Elisp 세미나는 Eclipse와 Visual Studio가 없으면 뭐 하나 건들지도 못하는 저한테 색다른 도구로 다가왔습니다. 졸업 전에 다양한 경험을 해보라는 말이 특히 와닿았습니다. 준석 선배님의 OMS는 간단한 와우 소개와 동영상으로 이루어져 있었는데, 두번째 동영상에서 공대장이 '바닥'이라 말하는 등 지시를 내리는게 충격이 컸습니다. 게임은 그냥 텍스트로 이루어진 대화만 나누는 줄 알았는데, 마이크도 사용하나봐요.. 그리고 용개가 등장한 게임이 와우였단 것도 새삼 알게 되었고, 마지막 동영상은 정말 노가다의 산물이겠구나하고 감탄했습니다. - [강소현]
1. 승한오빠 특별 세미나(emacs & elisp) : 교육기간이니 '''칼퇴할때 세미나 한번 해주세요!!''' 라고 요청드렸는데 선배님 펌프질에 보람을 느꼈던 순간이었습니다. 칼보단 감자깎기가 흙당근이나 감자를 깎을때 진리이듯이 좋은 프로그램과 좋은 툴을 적절히 사용하는게 얼마나 중요한지를 다시 생각해볼 수 있었습니다. 이 세미나 이후 아직도 textPad 강제로(?) 사용하고 있는 2학년 학우들이 불쌍해졌습니다......
1. 준석이 OMS(World of Warcraft) : 동영상을 적절하게 사용해서 집중력을 높여준 세미나였다. 아쉬운 점은 쪼----금 길었다는거;;
- 정모/2011.7.18 . . . . 9 matches
* 주제 : OMS뭐해야할까 - 집에 남는 컴퓨터 활용 - 서버만들기 (..)
* (아이폰 사파리가 스크롤이 없어서 잠시 새치기 할께요 ㅠㅜ)첫 OMS를 하게 되었습니다. 사실 내용이 참 빈약해서... 아 재미 없고 망하는거 아닌가 걱정했는데 다른 후기들 보니까 생각보단 반응이 좋네요. OMS끝난뒤에 했던 활동은 저에겐 너무 어려워서 졸고 말았습니다 .. 죄송해요분명히 OMS시작 5분전만해도 잘되던 팀뷰어가 잘안돼서 당황했음 - [고한종]
* 후기는 작성한 순서대로 쓸 필요 없으니 새치기해도 괜찮아요~ OMS는 원래 거창한 세미나라기보단 관심사를 공유하는 코너라서 부담가질 필요 없답니다. 그리고 내용 전혀 빈약하지 않았어요!! - [김수경]
* 방학중 정모에서 제가 공부한 것을 공유하는 코너를 진행하겠다고 했는데 지난번엔 정모를 짧게 끝내느라, 이번주는 다른 공유들이 있어서 계속 안 하게 되네요 ㅋㅋ 사실 시간 떼우려고 생각해낸 코너라 못하게 되는 게 바람직한 것 같습니다(?) 이번 OMS는 리눅스 서버를 직접 돌려보는 것에 대한 내용이었는데 저는 1학년때 리눅스가 뭔지도 그냥 들은 정도로만 알고있었던 기억이 납니다. 그런데 새내기가 직접 서버 구축하고 그 내용을 정모에서 공유하는 걸 보니 부럽네요ㅠㅠ 저도 그런 경험을 해봤으면 좋았을텐데... - [김수경]
* 처음 OMS를 보면서 우리집 컴퓨터도 이제 6년차에 돌입했는데.. 저렇게 써야하나 라는 생각이 들다가 그냥 이상태로 쓰지 뭐 이런 생각이 든 -_-;;; 암튼.. 저도 1학년땐 리눅스를 사용하는 모습만 보고 직접 써 보지는 못했었는데 사용하는 모습을 보니 대단하다는 생각이 드네요. 리빙포인트를 하면서 학원에서 들었던 이야기랑 삼수때 겪었던 이야기가 믹스되어 말하게 되었네요. 원래는 그냥 학원 이야기만 하려고 했는데 -ㅅ-a Joseph Yoder 와의 만남 후기를 들으면서 스티브 맥코넬씨가 쓴 Code Complete라는 책에서 이야기 하는 내용과도 많이 겹치는구나 라는 생각을 했습니다. - [권순의]
* 늦잠자서 늦게갔는데 마에땜에 중간에 나갔어요.. 흑흑 부외활동을 하면서 새삼 느꼈는데 지피 정모는 정말 좋은 활동입니다.진짜진짜로. 전공 관련 정보들도 얻을 수 있고 몰랐던 내용을 소개받을 수도 있고 남이 공부해서 떠먹여주기도 하고 외부 활동 정보도 얻을 수 있고 영어나 책읽기등 전공외 활동이야기도 들을 수 있고 이런 모임이 세상에 어디있나요ㅠㅠ 방학이라고 학교 오기 귀찮으신건 알겠지만 정말 유익한 자리입니다. 같이해요ㅠㅠ - [서지혜]
- 제로Wiki . . . . 9 matches
* 게이트웨이 서버에 추가 서버를 등록만 시키면 유기적으로 다른 서버들과 연결이 된다.(마치 하나의 컴퓨터 처럼 보인다), 각 개인 위키 혹은 카페 위키를 생성할때에 자신의 원하는 서버를 지정하면 그곳에 그 위키가 생성된다. 그 위키에 대한 페이지 데이터들은 모두 그 서버에 저장이 된다. 사용자의 입장에서 보았을때에는 하나의 웹사이트처럼 보인다.
=== 응용 ===
* 예를 들어서 여러 명이서 특정 책을 중심으로 스터디를 진행할때 스터디 페이지를 각 개인 위키와 공유 페이지로 지정하여 사용할 수 있다.
* 이메일 및 쪽지로 사용할수도 있음.
* 개념 : 페이지의 성격에 따라서 특정 분류로 나눈다. 기존의 카테고리와 같은 개념 아니냐고 생각할수 있다. 아래 활용을 보시라..
=== 활용 ===
* 저렇게 할 필요 없이 각 분류어별로 게시판을 만들면 되지 않냐고 생각할 수 도 있다. 하지만!!! 그렇게 각각의 분류 별로 게시판을 만들경우 그 게시판의 글들을 확인 하기 위해서 각각의 게시판에 들어 가야 한다. 그리고 군대 전우 카페 같은 경우 각 회원마다 군생활 시기가 겹치는 사람도 있고 겹치지 않는 사람도 있는등 각 회원에 따른 맞춤식 정보 제공이 필요하다. 이럴때 분류어 기능이 유용하다.
* 자신의 카페에 맞는 스킨을 제작하여 현재 카페에 적용 시킬수 있다.(아직 버그가 살짝 있음)
* 현재 모든 서버내에 있는 모든 카페, 페이지제목, 페이지 내용 검색 가능
- 프로그래밍언어와학습 . . . . 9 matches
* 학교에서 C++ 배운다고 하드웨어 건드리나. -_-; (전전공이라면 몰라도..) 컴퓨터공학과의 경우 학교에서 C++ 배워도 어셈블러 레벨까지 다루는 사람이 별로 없다고 할때, C++ 을 배웠다고 시스템레벨 까지의 깊은 이해가 필요없었다는 점인데.. 글을 읽으면, 마치 '교육용 언어로 C, C++ 을 배웠다면 시스템 레벨까지 이해할 것' 처럼 쓴 것 같다고 생각. (C, C++ 포인터를 레퍼런스 이상의 개념으로 쓴적이 있었나.. --a) 차라리 '우리는 전전공 출신에 하드웨어제어 해본 사람 뽑습니다' 라고 할것이지..쩝. Domain-Specific 한 부분을 생각치 않고서는 시스템 프로그래머에게서는 늘 자바와 Script Language 는 '군인을 나약하게 만드는 무기' 일 수밖에 없으니까.
언어로서 C나 C++의 (수학적, 논리적) 규칙을 정리하면 A4용지 몇장이면 충분합니다. 흥미로운 것은 그런 규칙과 요소들이 서로 조합될 때(그리고 조합된 것을 다시 조합할 때 -- 라이브러리, 프레임웍)의 변용입니다.
하지만 이제는 컴퓨터 시스템에 대한 저차원적인 이해 없이도 얼마든지 뛰어난 프로그램을 만들 수 있는 영역이 늘어나고 있습니다. 언제든지 저차원에 대한 이해는 도움을 주지만 이제는 저차원의 정의가 조금 더 상향 조정된 문제 영역이 훨씬 많습니다. (컴퓨터 발전 초기에는 적용도메인이 협소했습니다)
> 접근을 허용하지 않기 때문이다. JNI(java native i
문화인류학이 융성하던 초기, 언어학자들은 어느 언어가 더 우월한가, 또 거기서 언어 사용자의 정신능력에 차이가 생기는가 등을 따지는 연구에 심혈을 쏟았습니다. 그들이 얻은 결론은 인류에게 있어
아프리카 말로도, 중국어로도, 영어로도 "심오하고 사람을 감동시키는 효과적인 말"은 얼마든지 할 수 있습니다. 그것은 말을 어떻게 그 언어 규칙에 맞게 잘 조합하느냐의 문제입니다. 이 변용의 능력은 "언어"만 후벼파서는 절대 얻지 못합니다. "언어"가 구성해주는 2차원의 메타적인 세계를, 혹은 그 메타 세계의 메타 메타 세계를 후벼파야 합니다.
영작을 수십년간 공부한 사람을 알고 있습니다. 맨날 관용구를 외우고, 문법을 익히고, 날마다 영작을 한 편 씩 해서 미국의 교수에게 그 글을 보내고 검사를 받아온 사람입니다. 그 사람이 몇 년 전 제게 고백을 했습니다. 자기 영작 공부는 후회스러운 것이라고. 그 사람은, 훌륭한 글을 쓰는 것은 단순히 언어적, 문법적인 요소를 떠나서 얼마나 훌륭한 아이디어를 갖고 있느냐에 일차적으로 좌우되는 것이라고 깨닫고, 후학들에게 다양한 주제의 책을 접하라는 충고의 글을 썼습니다. 명료한 글을 쓰려면 언어가 명료하기 이전에 사고가 명료해야 하며, 풍부한 글을 쓰려면 언어가 풍부하기 이전에 사고가 풍부해야 합니다.
한국에서 일찍부터 컴퓨터를 접했던 소수의 "특권" 계층은 자신이 익숙하게 사용해온 것들이 인기를 잃는 것에 대해 개탄하고, 신세대들은 공부가 부족하다며 비판하길 좋아합니다. 그들의 진정한 문제는 겸손하지 못하다는 것입니다. 자신이 하고 있는 것이, 자신이 있는 영역이 더 본질적이고 더 어려우며, 더 고수준의 것이라고 생각하기 쉽습니다.
- 1002/책상정리 . . . . 8 matches
책상을 어떻게 정리할 것인가에 대한 궁리. -_- 이는 책상을 어떻게 이용할 것인가에 따라 그 방법을 달리한다.
현실세계에서의 책상은 일종의 OS 이다. 운영체제에서의 몇몇 용어들은 사무용품에서부터 비롯되었다. 데스크탑, 폴더, 화일, 캐비넷 화일 (cab) 등등. 가상계가 현실을 모델링했다고 한다면, 현실계에서도 가상계의 기법들을 어느정도 끌어올 수 있으리라. 이는 물리에서 수학적 모델을 기초로 기계 등을 만드는 것과 비슷하리라.
=== '책상은 창고 대용이다'에 대한 접근 ===
* 압축방법의 도입 - 압축의 방법으로는 일반압축기법을 이용한 압축과 손실압축법이 있다. 그리고 공간의 Optimizing 을 생각해볼 수 있다. -_-a 전자의 경우 부피줄이기, 중자는 스크랩, 후자로는 공간활용법을 생각할 수 있다.
* 주로 현재 작업중인 일에 촛점을 맞춘다. 이 경우 LRU 알고리즘을 궁리할 수 있다. 자신이 해당 자료를 다시 본지 몇일이 지났는가? 해당 자료들에 대해서 count 를 세보자. 그리하여 가장 자주 이용하는 책들을 가장 꺼내기 쉬운 위치에 놓자.
* LRU 기법 실천에 대한 또다른 접근 : 깨끗하게 비우고 시작하기 - 책들을 일단 눈에 보일 수 있는 어딘가에 쌓아놓는다. 그리고 책상과 가장 가까운 책장을 무조건 비운다. 그리고 이틀 정도 진행해보자. 그러면 점차적으로 책이 쌓일 것이고, 그 책들이 가장 최근에 내가 이용중인 책이다;
- 2dInDirect3d/Chapter3 . . . . 8 matches
* 버텍스 버퍼가 무엇인지 알고 사용법을 안다.
* 인덱스 버퍼가 무엇인지 알고 사용법을 안다.
Vertex point size : 버텍스의 크기 (포인트스프라이트에서 사용한다.)
이것은 3차원 좌표로서, 기본적인 x,y,z에 수직인 곳의 좌표를 정한다. 이것은 나중에 빛에 관련된 계산을 할 때에 사용된다.
이 노말 좌표를 사용하면 RHW는 사용할 수 없다. (둘은 함께 사용할 수 없다는 뜻입니다.)
Diffuse Color의 형태는 D3DCOLOR(사실은 DWORD형이다.)형을 사용한다.
- ATmega163 . . . . 8 matches
* 32 X 8 범용 레지스터
== 이 MPU 의 용도 ==
* 산업용 임베디드 시스템
* 용산 가서 9 pin 짜리 Serial Port 잭과 5.5volt 어덥터에 끼울 것을 준비한다.
* 그리고 납땜질용 인두와 실납을 준비후 납땜 시작.
c:\avrgcc>에서 install을 실행 시킨 후 바탕화면의 avr-gcc 배치파일을 이용해 도스창을 열어서 쓴다.
* Makefile 사용법
* avr_gcc 사용법[[BR]]
- C++3DGame . . . . 8 matches
=== 1. 좌표계 사용하기 ===
3D 영역에서의 작업을 위해서는 사용할 좌표계를 정의해야 한다.[[BR]]
가장 일반적인 좌표계인 데카르트 좌표계는 원점으로 사용할 점과 원점을 지나며 서로 지각인 세 개의 축이 있다.[[BR]]
"원점에서 동쪽을 바라보며 죽쪽으로 38도 회전하고, 위로 65도 회전한 후에 이 선을 따라 7.47피트로 이동"하는 방법으로 위치를 설명할 수 있다. 그러나, 수학적으로 풀 경우, 점을 이리저리 움직이면 처리하기가 더운 어려워진다. 그래서 이런 폴라 좌표계는 제어가 어렵기 때문에 3D엔진에서는 거의 사용하지 않는다.
==== 1.2 다중 좌표계 사용하기 ====
3D 오브젝으를 사용하여 작업하다 보면 하나의 점으로 작업하는 것보다 여러 점을 묶어 작업하는 것이 효율적임을 알게 된다.
이렇게 하면 게임에서 CPU를 움직여야 할 경우, CPU를 그리는데 사용하는 모든점에 대한 컴퓨터 중앙 만 움직이면 된다.[[BR]]
하나의 code[] 절대 "세계"좌표를 구하려면 다음과 같은 코드를 사용한다.
- CNight2011/고한종 . . . . 8 matches
사실 이것도 새싹교실때 이미 배웠던 내용. 원희형.. 보고싶어요.
사용할땐 nickname만 써주면 된다.
사용할때마다 struct name 라고 해야한다.
의미가 통하는(?) 유용한 (?) 데이터들을 그룹화 한다고 생각하면 된다.
사용법은 생각이 나질 않는다.. 사실 이때 졸려서 한귀로 듣고 거의 흘림..
목록의 중간에 삽입,삭제가 그냥 배열에 비해 매우 편리하므로 자주 사용된다.
즉, 프로그래머는 힘들고 사용자는 편하다는얘기...
C언어에서 int a[ 2]={1,2} 선언후 printf("%d",a[2]); 같은 경우도 허용하므로 언제 터지는지 알 수가 없었다..
- ComponentObjectModel . . . . 8 matches
COM은 소프트웨어 컴포넌트를 위해 만들어진 Microsoft 사의 기술이다. 이는 수많은 MS사의 프로그래밍 언어에서 소프트웨어간 통신과 동적 객체생성을 가능케한다. 비록 이 기술이 다수의 플랫폼상에서 구현이 되기는 하였지만 MS Windows 운영체제에 주로 이용된다. 사람들은 .Net 프레임워크가 COM을 어느정도까지는 대체하리라고 기대한다. COM 은 1993년에 소개되고 1997즈음해서 MS가 강조한 기술이다.
90년대 마이크로소프트가 내놓은 가장 핵심적인 기술로 차후 ActiveX 를 이루는 기반기술이 된다. COM은 언어가 아니라 객체지향을 지향하는 바이너리를 만들어 내는 표준을 지정해놓은 것이다. 따라서 어떤 언어이던지 COM 표준에 부합하는 바이너리 형태를 생성할 수 있다면 그 언어로 작성한 바이너리는 언어 독립적으로 COM을 지워하는 곳에서 컴포넌트로서 사용이 가능하다. 고질적으로 진입장벽이 업청나게 높은 기술로 유명하지만... -_-; .NET 이 나오면서 어떻게 쓰이게 될런지는 미지수가 되어버린 기술이다. Vista 가 나오면 완전히 legacy 로 취급되게 될 것인지... -_-;; 이제 MFC는 사장의 길로 걸어가는 것 같고... 당장이야 워낙에 기반이 이 기술이다보니 어쩔 수 없겠지만 .net 사용이 궤도에 오르면 아마도 COM 도 머지않아 그렇게 되지 않을까 싶다.
그렇지만 COM은 여전히 소프트웨어의 중요한 기반들과 함께 실용적인 기술이다. 예를 들자면 DirectX 3D의 레더링 SDK 는 COM에 기반하고 있다. Microsoft 는 COM를 계속 개발할 계획도, 지원할 계획도 가지고 있지 않다.
RCW를 구현하고 있는 .Net 하에서는 COM 객체는 아마도 제한적으로 호환성의 측면에서 사용될 것이다. 또한 .NET 객체들은 아마도 COM callable wrapper를 호출하는 것 때문에 COM 객체들안에서 사용될 것이다. 덧붙여서 COM+가 제공하는 일부분의 서비스들(transaction, queued components)은 여전히 .NET 응용프로그램에서도 중요한 부분이다.
COM 을 공부하던 당시 들던 생각 : 무언가 특정 기술에 대해서 공부를 할때 너무나 생소한 용어들이 많이 나와서 '대단해보이는' 혹은 '무언가 있어보이는' 녀석들이 있곤 하다. 그 경우, 동급의 더 나은 기술들이 해당 문제들을 어떻게 해결하는지에 대한 관찰이 필요하다.
- CvsNt . . . . 8 matches
이를 돌리려면 Windows용 ViewCVS 패키지를 받아야 한다. http://www.cvsnt.org/wiki/ViewCvs 를 보면 알리라.
=== 사용자 추가 ===
CVSNT 의 경우 cvs 자체 사용자와 NT 사용자 둘 다 받는 것 같다. 그래서 NT 쪽에 Poweruser 그룹의 사용자들을 추가해주면 cvs도 사용할 수 있게 된다.
일반적인 cvs사용자 추가도 가능하다. 커맨드 프롬프트에서
cvs -d 저장소이름 passwd -a 사용자 이름
- Debugging . . . . 8 matches
* 프로그램을 실행할때 디버깅 모드로 컴파일하여 디버거 기능을 포함시켜서 사용하면서 오류에 관한 각종 정보를 수집
* 수집하고 싶은 정보를 출력하기 위한 디버깅용 명령을 미리 프로그램 곳곳에 삽입하여 실행 시키는 방식
= 디버깅 용도? =
= 디버깅 소프트웨어를 사용한 디버깅 =
|| Step Out || shift+F11 || Step Into 로 함수안에 들어갔다가 나오고 싶을때 사용 ||
|| 화면(*->중요도) || 용도 ||
|| Run to Return(Step Out) || F7 || 어떤 함수안에 들어갔다가 바로 그 함수를 나오고 싶을때 사용 ||
사실 : 삽질 내용, 그 여정, 실수한 이야기 -> 사고의 과정이 드러나도록!
- DevelopmentinWindows . . . . 8 matches
* 표준 사용자 인터페이스 제공 (["DevelopmentinWindows/UI"])
* 세부적인 것들을 모두 다룰 수 있지만 너무 복잡해서 사용하기 어렵다.
* 윈도우즈 API 만큼 세부적인 것들을 모두 다룰 수는 없지만 윈도우즈 API 보다 사용하기 쉽다.
* AppWizard, ClassWizard 등의 툴과의 통합으로 더욱 쉽게 사용할 수 있다.
||c||카운터로 사용되는 변수||
=== 윈도우즈 API를 이용한 예제 프로그램 ===
=== MFC를 이용한 예제 프로그램 ===
["데블스캠프2002"], [5인용C++스터디]
- DocumentObjectModel . . . . 8 matches
DOM은 그 문서의 하부의 데이터 구조에는 어떠한 제약사항도 두질 않는다. 잘 만들어진 문서는 DOM을 이용해서 트리 구조를 취할 수 있다.
대부분의 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 를 이용하는게 좋겠지.
- EcologicalBinPacking/김회영 . . . . 8 matches
//2. 재활용 용기 저장문제
//--->재활용 통의 병의 갯수를 우선 모두 더한다. total변수에 넣는다.
//--->각각의 재활용 통에서 서로 다른색깔의 병을 모두뺏을때의 조합이
int container[9]; //용기에 들어있는 병을 입력 받는다.
int total=0; //용기에 들어있는 병의 총개수를 센다.
char save[4]={"NNN"}; //나중에 결과값을 출력시 사용
cout<<"용기에 담겨 있는 병의 개수를 차례대로 넣으세요"<<endl;
- EightQueenProblem/kulguy . . . . 8 matches
문제에 대한 개략적인 이해만 하고서 마치 그 알고리즘을 완전히 이해한 냥 무턱대고 코딩에 들어갔다가 정답이고 뭐고 완전히 엉켜버렸습니다. 결국 처음부터 다시 코딩 이전 단계부터 차근히 준비하여 겨우 문제를 해결할 수 있었습니다. 코딩 이전의 여러 프로그래밍 단계는 함부로 건너뛸 단계가 아니란 것을 다시 한번 뼈 속 깊이 깨달았으며 성능을 위해 시공 교환 법칙을 나름대로 적용해 보았는데 그 효과의 상당함을 경험하였습니다.
* 성능을 높이고자 한다면 우선 시공 교환 법칙을 이용하자.
성능이란 것을 크게 수행 시간(時)과 수행시 필요한 메모리(空)라는 2가지 측면에서 본다면 메모리쪽의 성능을 희생해서 수행 시간을 끌어올리는 것을 말합니다. 즉, 자주 쓰일 것 같은 계산 결과는 매번 계산하지 않고 메모리에 담아두거나 외부에 저장했다가 가져오는 식이 되는 거죠. 저같은 경우 문제를 풀기 위해 체스판 위에 퀸 하나가 놓일 때마다 다음 퀸이 놓일 수 있는 "가능한 자리를 계산"해서 그 다음 퀸을 배치하는 방식을 사용했습니다. 이 때 "가능한 자리를 계산"한 결과를 메모리에 담아두고 계속 이용하였죠. 참고로 이 용어와 개념들은 김창준님이 마소에 기고하신 파이썬 관련 기사에서 비스므리 인용한 것 입니다. 인용이란 본래 그 내용을 정확히 전달해야 하는데 -_-;;; 마소 기사를 직접 참고해보시기 바랍니다 :)
- EnglishSpeaking/TheSimpsons/S01E02 . . . . 8 matches
* 내용 : 심슨 가족이 다같이 scrabble(영어 단어를 이용해 점수를 획득하는 보드게임)을 하는 장면.
* 내용 : 바트가 천재 학교에 입학하게 된 후 달라진 가족들의 대우
* 내용 : 천재 학교에서 친구들을 소개받는 바트. 근데 이 친구들.. 어려운 말만 해댄다.
* 내용 : 학교가 어땠는지 물어보는 호머와 바트의 두뇌 양성을 돕는다고 오페라에 데려가는 마지
* 내용 : 결국 호머에게 솔직하게 자신이 시험지를 바꿔치기함을 고백하는 바트
* 내용 : 심슨 가족이 다같이 scrabble(영어 단어를 이용해 점수를 획득하는 보드게임)을 하는 장면.
- Gof/Adapter . . . . 8 matches
다음과 같은 경우에 AdapterPattern를 이용한다.
* 이미 만들어져 있는 클래스를 사용하고 싶지만, 인터페이스가 원하는 방식과 일치하지 않을때.
* 관련성이 없거나, 예측하지 못한 클래스들과 협동하는 재사용가능한 클래스를 생성하기 원할때. 이 경우 클래스들이 호환성을 가지는 인터페이스를 필요로 하지 않는다.
adapter 클래스는 하나의 interface를 다른 interface 에 적합하게 맞춰주기 위해 (말 그대로 어뎁터 역할~) 다중상속을 이용한다.
- 클라이언트가 이용한 domain-specific한 인터페이스를 정의한다.
- Target의 인터페이스에 따라 객체들과 상호작용을 한다.
* 해당 클래스를 이용하는 Client들은 Adapter 인스턴스의 operation들을 호출한다. adapter는 해당 Client의 요청을 수행하기 위해 Adaptee 의 operation을 호출한다.
BridgePattern 은 adapter object와 비슷한 구조를 가진다. 하지만 BridgePattern의 AdapterPattern과 그 의도가 다르다. BridgePattern은 실제 구현부와 interface부분을 분리시켜 실제 구현 부분이 다양하고 독립적일 수 있도록 하기 위한 것이다. adapter는 현재 이미 존재하는 객체에 대한 interface를 바꾸기 위해 이용된다.
- HelpOnUpdating . . . . 8 matches
UpgradeScript가 하는 일은, 위키 엔진(*.php)을 업데이트하고, 기존의 위키엔진을 사용자가 변경하거나 해서 사용하고 있던 *.php는 없는지 검사하고 사용자가 변경한 *.php파일이 있다면 백업해줍니다.
아래는 `upgrade.sh`를 사용하지 않고 수동으로 직접 업그레이드 하는 방법을 설명합니다.
`wiki.php`, `wikilib.php`는 가장 중요한 위키엔진입니다. 대부분 사용자가 직접 변경해서 사용하는 경우는 아마 이 두개의 파일일 것입니다.
다음은 `css/*.css` `imgs/*` `theme/*` `local/*` 등등의 파일을 업데이트합니다. 기존에 사용자가 변경한 파일이 있다면 반드시 백업하시기 바랍니다.
업그레이드 혹은 이전(호스팅 서버 옮김)에 대한 내용은 BackupScripts를 참고하세요.
- HowToStudyXp . . . . 8 matches
* XP Installed (Ron Jeffries et al) : C3 프로젝트에 적용한 예, 얻은 교훈 등
* Planning XP (Kent Beck, Martin Fowler) : 계획 부분만 설명 (관리자, 코치용)
* XP in Practice (Robert C. Martin et al) : 두 세 사람이 짧은 기간 동안 간단한 프로젝트를 XP로 진행한 것을 기록. Java 사용. (중요한 문헌은 아님)
* Adaptive Software Development (Jim Highsmith) : 복잡계 이론을 개발에 적용. 졸트상 수상.
* The Psychology of Computer Programming (Gerald M. Weinberg) : 프로그래밍에 심리학을 적용한 고전. Egoless Programming이 여기서 나왔다.
* ["TestDrivenDevelopmentByExample"] (Kent Beck) : 곧(아마 올해 내에) 출간 예정인 최초의 TDD 서적. TDD를 모르면 XP도 모르는 것. (TDD를 실제 적용하려면 적어도 반년 정도는 계속 훈련해야 함)
기회가 되신다면 주변에서 XP를 직접 사용하는 곳을 방문해서 하루만 같이 생활해 보시기를 권합니다. 반년 공부를 앞당겨 줄 수 있습니다.
나중에 회사에서 직접 XP를 사용할 때 많은 도움이 되었습니다.
- Linux . . . . 8 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 유저라도 약간의 관심만 기울인다면 충분히 서버로써 쓸 만한 운영체제로 변모하였다.
본 페이지는 특별히 리눅스에 대한 실제 운영에 관한 이야기를 지양하려고 한다. 운영에 관한 내용은 리눅서들이 항상 말하듯이 네트워크의 바다에 널려있기 때문이다. 수많은 자료들을 대하면서 자신이 필요한 자료를 찾는 것도 리눅서가 되는데 필요한 덕목이다.
[Linux/디렉토리용도]
[http://www.debianusers.org 한국데비안사용자모임]
[http://www.gentoo.or.kr 한국젠투사용자모임]
[http://www.ubuntu.or.kr 한국우분투사용자모임]
- MoniWikiOptions . . . . 8 matches
* 1로 설정하면 테마의 기본 CSS만을 사용하도록 강제 설정. (기본값 0)
* 기본값은 `$url_prefix.'/css/kbd.js'` : 사용하기 싫으면 그 값을 빈 문자열로 한다.
* 스마일리 사용을 켜거나 끈다.
* Email Notification을 활성화 한다. 이 기능을 키면 SubscribePlugin을 사용할 수 있다.
* 페이지 카운터의 사용 여부를 결정한다 (See PageHitsMacro)
* 모니위키 블로그에서 트랙백을 사용할 수 있게 한다.
`gethostbyaddr()`의 사용여부 결정
* UploadFile에서 허용되는 확장자를 지정한다.
- PHP Programming/HtmlTag . . . . 8 matches
*<FORM> CGI가 작동하도록 사용자가 정보를 입력하는 "입력양식"을 만들어 주는 태그. 입력양식을 만들려면 반드시 </FORM> 태그로 감싸줘야 함.
*ACTION=".." - 사용자의 입력정보를 받아서 처리하는 서버에 담김 CGI프로그램의 위치
*METHOD=".." - 사용자 입력정보가 어떤 방법으로 CGI프로그램에 전달하게 할 것인지 지정.(POST, GET 두가지 값 사용)
*<INPUT> 사용자에게 어떤 정보를 물을 때 사용하는 태그.
*VALUE=".." - 입력양식이 처음 표시될 때부터 미리 글씨가 보이게 할 때 사용
*<TEXTAREA> 여러줄까지 입력필드를 만들기 위해서 사용
- PairSynchronization . . . . 8 matches
["sun"]이 PairProgramming을 하기에 앞서 CrcCard 섹션을 가지게 되었는데, 서로의 아이디어가 충분히 공유되지 않은 상태여서 CrcCard 섹션의 진도가 나가기 어려웠다. 이때 - 물론, CrcCard 섹션과는 별도로 행해져도 관계없다. - 화이트보드와 같은 도구를 이용해서 서로가 생각한 바를 만들어나가면서, 서로의 사상공유가 급속도로 진전됨을 경험하게 되었다.
1. 추상적인 내용을 구체적으로 보고 이야기 할 수 있다.
["sun"]은 기존 프로그램의 업그레이드 작업에 새로 한명의 파트너와 함께 둘이 작업하게 되었다. XP를 개발에 적용해보기로 하고, 프로그램 디자인에 CrcCard 섹션을 이용하고자 했다. 처음 CrcCard 섹션을 진행해서 그런지, 별다른 진척이 보이지 않아 우선 화이트보드를 이용해서 개념을 정리해보고자 다른 색의 마커를 들고 한 번에 하나씩 개념을 그리고 선을 이어 나가며 디자인을 했다.
* 전체적인 개념과 연관관계를 직접 볼 수 있어서, 추가적인 개념 및 연관관계 확장이 용이했다.
* 부가적인 장점: 회사원들에게만 적용되겠지만, Pair의 작업은 집중해서 이루어지게 되므로 금방 지치게 되는 경향이 있다. 이때 회의실에서 쉬더라도, 누가 들어왔을때 화이트보드에 가득한 디자인을 보면 열심히 일하는중이라 생각해준다. :)
상민이랑 ProjectPrometheus 를 하면서 CrcCard 세션을 했을때는 CrcCard 에서의 각 클래스들을 화이트보드에 붙였었죠. 그리고 화이트보드에 선을 그으면서 일종의 Collaboration Diagram 처럼 이용하기도 했었습니다. 서로 대화하기 편한 방법을 찾아내는 것이 좋으리라 생각.~ --["1002"]
- ProjectPrometheus/EngineeringTask . . . . 8 matches
* 검색된 책들은 출판날짜, 사용자 평가 (Review) 에 따라 정렬되어진다.
* 책에 대한 구체적인 정보를 확인할 수 있다. 책 정보를 볼 때, 타 인터넷 사이트에 대한 (amazon, wowbook, yes24 등등) Link 를 제공받아 이용할 수 있다.
|| ISBN 을 이용한 Linker 작성 (고려 : ISBN 이 DB 에 저장되는 것이 좋겠다고 생각) ||
* 로그인을 해야 서비스를 이용할 수 있다.
* 사용자들을 관리할 수 있다. (사용자 정보 수정/삭제)
* 사용자들에게 공지를 전달할 수 있다.
* Review 의 내용을 수정/삭제 할 수 있다.
- ProjectPrometheus/개요 . . . . 8 matches
하지만, 현재의 도서관 시스템은 사용하면 할 수록 불편한 시스템이다. "Ease of Learning"(MS 워드)과 "Ease of Use"(Emacs, Vi) 어느 것도 충족시키지 못한다.
지금 도서관의 온라인 시스템은 상당히 오래된 레거시 코드와 아키텍춰를 거의 그대로 사용하면서 프론트엔드만 웹(CGI)으로 옮긴 것으로 보인다. 만약 완전한 리스트럭춰링 작업을 한다면 얼마나 걸릴까? 나는 커스터머나 도메인 전문가(도서관 사서, 학생)를 포함한 6-8명의 정예 요원으로 약 5 개월의 기간이면 데이타 마이그레이션을 포함, 새로운 시스템으로 옮길 수 있다고 본다. 우리과에서 이 프로젝트를 하면 좋을텐데 하는 바램도 있다(하지만 학생의 사정상 힘들 것이다 -- 만약 풀타임으로 전념하지 못하면 기간은 훨씬 늘어날 것이다). 외국의 대학 -- 특히 실리콘벨리 부근 -- 에서는 SoftwareEngineeringClass에 근처 회사의 실제 커스터머를 데려와서 그 사람이 원하는 "진짜" 소프트웨어를 개발하는 실습을 시킨다. 실습 시간에 학부생과 대학원생이, 혹은 저학년과 고학년이 어울려서(대학원생이나 고학년이 어울리는 것이 아주 중요하다. see also SituatedLearning ) 일종의 프로토타입을 만드는 작업을 하면 좋을 것 같다. 엄청나게 많은 것을 배우게 될 것이다.
이런 프로젝트가 컴공과 학생에게 쉽게 떨어질리는 만무하다. 그래서 대부분은 디자인 단계에서 끝내게 된다. 유스케이스 몇개 그려보고 끝나는 것이다. 좀 더 용감하고 야망이 높은 사람들은 밑바닥부터 구축을 해나갈지도 모르겠다. 어찌 되었건 프로그래밍은 중요하다. 빌게이츠가 늘 하는 말이 "Code is the thing"이란다. 만약 프로그래밍을 직접 해보지 않고 끝내게 되면 자신이 배울 수 있는 엄청난 크기의 빙산을 그냥 지나치는 셈이다.
전부 다 만들기엔 시간과 용기가 부족한 사람들은 기존 시스템에의 랩퍼(wrapper)를 만들 수도 있다.
즉, 현재의 도서관 시스템을 일종의 웹서비스로 이용하는 것이다. 직접 CGI로 쿼리를 보내고 받아오는 HTML을 파싱해서 적절한 XML로 치환해주는 레이어를 만든다. 이렇게 하면 "일반적 도서관 랩퍼"를 만들 수 있다. 즉, 어느 도서관 시스템에든지 약간만 수정하면 적용할 수 있게 된다.
사용자는 이 랩퍼를 통해 로긴을 하고, 책 평가도 하고, 리뷰도 쓰고, 베스트셀러 검색도 하고, 대출 예약도 한다. 기존 시스템의 모집합이 되는 셈이다. (하지만 꼭 그럴 필요는 없다. 중요하고 자주 쓰이는 기능만 노출해도 충분하다)
일단 이걸 만든 사람들이 열심히 사용하다가, 우리과 사람들이 점점 더 쓰고, 나중엔 다른 과 학생들까지 쓰다보면, 혹시 모르잖는가. 정말 이런 시스템으로 도서관을 바꿀 생각을 정책입안자들이 하게 될지.
- PyUnit . . . . 8 matches
테스팅을 하기 위해 Python의 assert 구문을 사용한다. testcase가 실행될 때 assertion을 실행하면 AssertionError 가 일어나고, testing framework는 이 testcase를 'failure' 했다고 정의할 것이다. 'assert' 를 명시적으로 써놓지 않은 부분에서의 예외가 발생한 것들은 testing framework 에서는 'errors'로 간주한다.
=== 재사용하는 set-up code : 'fixtures' 만들기. ===
종종, 많은 작은 test case들이 같은 fixture를 사용하게 될 것이다. 이러한 경우, 우리는 DefaultWidgetSizeTestCase 같은 많은 작은 one-method class 안에 SimpleWidgetTestCase를 서브클래싱하게 된다. 이건 시간낭비이고,.. --a PyUnit는 더 단순한 메커니즘을 제공한다.
makeSuite 함수를 사용할때 testcase들은 cmp 함수를 사용하여 소트한 순서되로 실행된다.
* 테스트 된 코드를 refactoring 하기 더 용이해진다.
PyUnit test framework는 테스트를 수행하기 위해 'TestRunner' 클래스를 사용한다. 가장 일반적인 TestRunner는 TextTestRunner이다.
기본적으로 TextTestRunner는 sys.stderr에 출력한다. TextTestrunner 같은 클래스는 Python interpreter session과 상호작용하면서 test들을 실행시켜볼 수 있는 이상적인 방법이다.
- SeminarHowToProgramIt . . . . 8 matches
* 7:00-7:30 세미나 준비, 환경 설치, 자리 선택, 각 언어 그룹별 xUnit(or assert) 사용법 정리/스터디
||19|| 김형용 ||
||7|| 김용기 ||
* 김형용, 류상민
'''Pipe Team''' 채희상, 강석천, 류상민, 김형용
처음에는 신입생 대상으로 Python 강의가 있다고 해서, 거기에 보탬이 될까 하는 마음으로 세미나를 해드리겠다고 했는데, 어떻게 중간에서 "프로그래밍 전반"에 대한 세미나로 성격이 변한 것 같습니다. 실습 중심으로 하게 될 것이고, 아무리 Python이 배우기 쉬운 언어라고 해도 Python에 익숙한 사람이 하나도 없는 페어가 두시간 안에 뭔가 다른 것을 (Python을 통해) 익힌다는 것은 어렵고, 또 효율적이지 못하기 때문에, 여러분들 자신이 가장 "자신있는" 언어를 사용하도록 하는 게 좋겠다는 생각을 합니다.
이 때, OOP가 가능한 언어를 추천하고, 해당 언어의 xUnit 사용법을 미리 익혀오기 바랍니다. (반나절 정도가 필요할 겁니다) http://www.xprogramming.com/software.htm 에서 다운 받을 수 있습니다.
(See Also ["PyUnit"], ["UnitTest"], ["JUnit"], ["CppUnit"]. C 언어를 사용하시는 분들은 ASSERT 문으로 UnitTest 부분을 어느정도 대신할 수 있습니다.)
- StaticInitializer . . . . 8 matches
[Java] 에서 'Class Variable' 또는 'Class Method' 라 불리는, 해당 Class 내에서 공용적으로 쓸 수 있는 변수나 메소드들을 Static Variable 또는 Static Method 라 불린다.
Static Initializer 는 이러한 값들을 미리 셋팅하기 위해 사용하며 다음과 같은 문법을 이용한다.
문제는 StaticInitializer 부분에 대해서 상속 클래스에서 치환을 시킬 수 없다는 점이다. 이는 꽤 심각한 문제를 발생하는데, 특히 Test 를 작성하는중 MockObject 등의 방법을 사용할 때 StaticInitializer 로 된 코드를 치환시킬 수 없기 때문이다. 저 안에 의존성을 가지는 다른 객체를 생성한다고 한다면 그 객체를 Mock 으로 치환하는 등의 일을 하곤 하는데 StaticInitialzer 는 아에 해당 클래스가 인스턴스화 될때 바로 실행이 되어버리기 때문에 치환할 수 없다.
StaticInitialzer 에서 값만 치환하는 것으로 (상속클래스에서 해당 Class Variable 의 값을 바꿔주는식으로) 해결되는 문제라면 크게 어렵진 않다. 하지만, 만일 저 부분에 DB 나 File 등(또는 File 을 사용하는 Logger 등) 외부 자원을 이용하는 클래스를 초기화하게 된다면 사태는 더욱더 심각해진다. 처음부터 해당 Class 가 DB, File 등 큰 자원에 대해 의존성을 가지게 되는 것이다. 게다가 이는 상속을 하여 해당 부분을 Mock 으로 치환하려고 해도 StaticInitializer 가 먼저 실행되어버리므로 '치환'이 불가능해져버린다.
그 외에 Static 의 경우, 그 사용 가능 Focus가 Global 해지기 때문에 이 또한 Bad Smell 이 될 가능성이 농후하다. 개인적으로는 가급적이면 Static Variable 을 쓰지 않는 습관을 들이려고 한다. --[1002]
Mock 생성자에서 값이 교체되어도 StaticInitializer 자체가 실행된다는 점에는 변함이 없습니다. 만일 StaticInitializer 에서 외부 자원들을 사용한다면, Side-Effect 들을 피하기 어려운 경우가 많다는 것을 강조하고 싶었습니다. --[1002]
- SubVersion . . . . 8 matches
* CVS와 매우 유사한 사용법. CVS 사용자라면 누구나 어려움없이 금방 배울 수 있습니다.
* 커밋 통지 메일 스크립트 기본 제공. CVS에서라면 스크립트를 따로 구해서 써야 하는 번거로움이 있었지만, Subversion은 기본 제공 스크립트를 이용해서 훨씬 손쉽게 설정이 가능합니다.
윈도우즈에서 이용을 해보려고 하는데.. 이래저래 애로사항이 많군요..ㅠㅠ, 버전관리도구는.. VisualSourceSafe 말고는 못쓰는건가... ㅠㅠ - [임인택]
오늘 처음 사용해보니 CVS보다 좀더 깔끔한 느낌이 이입니다. [tortoiseSVN]을 사용했는데 [CVS]보다 좀더 직관적이지 않나 싶습니다. 소스관리 툴을 처음 사용하는 사람이라면 [CVS]보다 [SubVersion]이 더 좋지 않을까 싶습니다. 다만 [tortoiseSVN]을 사용하니 체크아웃 할 때 보통 5-6번 정도 비밀번호를 쳐야 하네요;; diff, merge 툴을 따로 설정할 수 있습니다. - 이승한
- ThePragmaticProgrammer . . . . 8 matches
프로그래머는 일련의 도구들(에디터, 객체 관리자, 버전 트래커)을 사용하여 어떤 환경하에서(하드웨어 어셈불리상의 운영시스템) 운용될 수 있는 제품(프로그램)를 만들어내도록 훈련받은 공예가에 비유할 수 있다. 다른 공예작업과 마찬가지로, 컴퓨터 프로그래밍도 대학이나 관련학원에서 가르쳐지지 않는/쉽게 터득할 수 없는 지식과 지혜를 집적하여 완성해 가는 과정을 갖는다.
이 책에서, Andrew Hunt와 David Thomas는 소프트웨어 설계와 코드 작성에서의 각자의 경험 가운데 얻은 많은 유용한 노하우를 요약하여 문서화하고 있다.
이들의 프로그램학은 구체적이며, 그 구현에 이르는 경로는 간결하다. 이들은 예를들어,하나의 텍스트 편집기를 배우게 되면 그것을 모든 것에 활용하라고 독자들에게 조언하고 있다. 또한 권고하고 있는 것은, 심지어 가장 작은 프로젝트에 대해서도 버전트래킹 소프트웨어를 사용하라는 것이며, 규칙적인 수식구문과 텍스트 처리언어 학습의 장점을 계도하고 있다.
번역서(실용주의프로그래머)를 한 번 다 읽었지만 다시 봐야 할 내용이 너무 많이 있다. 다루는 분야가 매우 넓으면서도 각 장은 시간이 지나도 값어치 있을 실용적인 정보를 담고 있다. 언제 멈출지 몰라서 ''그림은 물감 속에서 사라진다''나 ''프로그래밍을 우연에 맡기면 어떻게 되는가'' 같이 내가 습관적으로 잘못하고 있는 부분을 짚어주기도 한다. -- [(leonardong)]
- Trac . . . . 8 matches
http://projects.edgewall.com/trac/wiki/TracTermsKo - Trac 용어에 대한 한글 버전
dev를 위해서는 사실 위의 링크들의 설치 방법은 거의다 쓸모 없다. Trac이 10->11로 넘어가는데 오래 정체되고 있는 이유는 내부를 대폭 개선하고 있기 때문이다. Template engine과 소스 컬러링 엔진을 바꾸었고, 기존의 plugin으로 존재하던 유용한 관리 도구들을 모두 결합하고 있다. 자료 구조도 손보고 있다. NeoCoin이 몇달간 dev버전을 사용해 보면서 별 무리 없이 이용하고 있다.
[http://neocoin.cafe24.com/cs/moin.cgi/Trac 아파치 없이, 설치 방법과 운용 방법]
* 난 링크 건 것 밖에 없어.;; 압박씩이나..~ (으흐흐) 그나저나, 시스템만 있으면 별 소용이 없고, 실제 이를 이용해먹는 프로젝트가 있는게 좋겠는데.. Toy Project 하나 만들어볼까.. --[1002]
* 이걸 써먹을 만한 놈이 없으니까 실제로 활용하는 방법은 잘 모르겠음.. ㅡ.ㅡ;; 괜찮은 놈 같은데... openlook 은 좀 프로젝트가 여러개 있더만... 실제 개발중인건지는 모르겠으나;; - [eternalbleu]
- Unicode . . . . 8 matches
현재 대부분의 리눅스 어플리 케이션은 [UTF-8]을 기반으로해서 개발되고 있거나 포팅중이다. 새로 만들어지는 모든 패키지는 모두 UTF-8을 사용한다. 그놈, KDE 와같은 윈도우 매니저들도 기존의 EUC를 기반으로한 문자셋을 지원하지만, 표면적으로만 지원할뿐 내부적으로는 UTF-8로 변환하여서 처리함. 결국 UTF-8로의 문자셋 변경은 기간의 문제이지 대세이다.
UTF-32 로 말만 바꾸어 위의 내용과 동일합니다.
인터넷 브라우저 내부에서 이것이 사용되며,
그런점도 있고, 문자열로 뭘 하기에 UTF-7 보다는 편리해서 가장 보편적으로 사용됩니다.
한 글자당 8bit 씩 할당하지만 사용은 7bit 만 합니다.
resy 보충 내용으로...
그러고보니 예전에 누군가가 국가 코드표와 인코딩이 가지는 의미에 대해 글 올렸던 거 같은데, locale 에 대한 내용이 그 후로 안올라오는 거 같기도... 07/13 5:19:40 코멘트 지우기
utf utf -8의 목적이 애매하네요. 원래 목적이 ascii문자만 있는 경우 사용하지 않는 첫번째 바이트를 없애기 위한게 아닙니다. 개발 과정에서 ascii 문자와 호환을 위해 그 영역을 그대로 변환이 되도록 한 것입니다. 목적 자체는 ucs 캐릭터가 2 또는 4바이트로 이루어져 있는데 이걸 스트링으로 쭉 이어놓고 보면 중간에 널(0x00)이 들어갈 수 있습니다. 예를 들어 '가'는 0xac00인데 이 널 바이트 때문에 스트링 처리가 곤란하게 됩니다. 그래서 널 바이트를 없앨 수 있는 인코딩 기법을 개발하게 된 거죠. 07/13 23:22:49 코멘트 지우기
- VMWare/OSImplementationTest . . . . 8 matches
불편(?)했습니다. Djgpp 라는 dos용 gcc 포팅 버전과 윈도우용 cygwin 패키지를
사용하면 역시 동일하게 gcc를 윈도우에서 컴파일 할 수 있습니다 그래도 저는 vc의
그리고 링커를 vc6를 사용하고 싶었고 그래서 이를 사용할 수 있는 방법을 소개하려
수행되도록 설계되었습니다. 부트섹터에서 이 빠른 x86에서 최신의 기능을 사용하는
- 우리는 디스켓도 사용하지 않고 바로 컴파일해서 이미지로 뜬 후 VMWare로
Partcopy.exe 툴을 사용하여 부팅 디스켓에 놓을 수도 있지만 번거롭습니다. 따라서 VMWare에서 직접 이를 디스켓 이미지로 로드하도록 합니다.
- VMWare/UsefulFunctions . . . . 8 matches
= VMWare 유용한 기능들 =
VMWare 는 크로스 컴파일링 환경에서 유용한 기능을 몇가지 가지고 있다. 물론 해당 가상 머신에 VMWare Tools 라는 VMWARE 가 제공하는 프로그램을 올렸을 경우에만 작동한다.
가상 머신이 리눅스이고 VMWARE TOOL 의 바이너리와 호환성을 갖지 못한다면 커널 드라이버를 컴파일 해서 설치해야함. (물론 VMWARE 설치 스크립트가 알아서 해줌, 우분투 DD 에서는 정상동작 하지 않았음. 데비안, 페도라 사용 가능함.)
가상 머신과 호스트 머신 사이에 데이터를 옮기는 방법은 여러가지를 생각할 수 있다. 가장 많이 이용하는 방법은 NAT 로 구성된 가상 머신상의 네트웍 기능을 이용하여 FTP 로 전송하는 방법을 가장 많이 생각 할 수 있다.
하지만 이 쉐어드 폴더 기능을 이용하면 VMWARE 수준에서 호스트 머신의 특정 디렉토리를 리눅스의 FS 에 마운팅 하는 것이 가능하다.
즉 윈도우 시스템의 IDE 를 이용해 프로그래밍하고 VMWARE 호스트 머신에서 컴파일 하는 과정을 최대한 간단하게 만드는 방법이 이 VMWARE TOOLS 을 이용하는 것이다.
- VonNeumannAirport . . . . 8 matches
* 자료형 배경 지식의 미숙 (처음 STL미사용 접근, 중반부터 STL사용으로 자료형의 일관성문제)
* 중간에 창준이형이 "너희는 C++ 로 프로그래밍을 하면서 STL를 안사용하네?" 라고 했을때, 그냥 막연하게 Java 에서의 Collection Class 정도로만 STL을 생각하고, 사용을 잘 안했다. 그러다가 중반부로 들어서면서 Vector를 이용하게 되었는데, 처음 한두번 이용한 Vector 가 후반으로 가면서 전체의 디자인을 뒤집었다; (물론 거기에는 디미터 법칙을 지키지 않은 소스도 한몫했지만 -_-;) 그걸 떠나서라도 Vector를 써 나가면서 백터 비교 assert 문 등도 만들어 놓고 하는 식으로 점차 이용하다보니 상당히 편리했다. 그러다가 ["Refactoring"] Time 때 서로 다른 자료형 (앞에서 array 로 썼던 것들) 에 대해 vector 로 통일을 하다 보니 시간이 비교적 꽤 지연이 되었다.
* ["Refactoring"] Bad Smell 을 제대로 맡지 못함 - 간과하기 쉽지만 중요한 것중 하나로 naming이 있다. 주석을 다는 중간에 느낀점이 있다면, naming 에 대해서 소홀히 했다란 느낌이 들었다. 그리고 주석을 달아가면서 이미 구식이 되어버린 예전의 테스트들 (로직이 많이 바뀌면서 테스트들이 많이 깨져나갔다) 를 보면 디미터 법칙이라던가 일관된 자료형의 사용 (InformationHiding) 의 문제가 있었음을 느낀다.
- YouNeedToLogin . . . . 8 matches
페이지 수정에 로그인이 필요한 YouNeedToLogin 모드를 적용한다면 다음과 같은 장,단점이 있을 수 있다.
* 사용에 번거롭고 귀찮은 절차가 생긴다.
* 일부의 사용자에게 틀속에 있다는 느낌을 준다.
''제가 페이지수정에 로그인 의무화를 주장하는 가장 큰 이유는 보기좋고 편리한 RecentChanges 입니다. 로그인이 귀찮은건 사실입니다만 보다 잘 정리된 ZeroWiki 를 사용하고 싶습니다.'' --["이덕준"]
''ZeroWiki는 아무나 어떠한 제한없이 로그인할 수 있습니다. 전 후자의 경우는 위키 초보자가 저지르는 실수라고 생각합니다. 로그인을 할수 있는 사용자는 그런 실수를 하지 않으리라 봅니다. 그리고 다시 말씀드리지만 그러한 작은 불편 때문에 YouNeedToLogin을 주장하는 것은 아닙니다. --["이덕준"]''
저도 사실 로그인을 글쓰기 권한으로 하는 방안에 찬성하는 입장이었는데 생각해보니 위키 사용에 익숙치 않은 사람들에겐 '로그인의 의무화'가 글을 쓰는데 또하나의 벽이 생길지도 모르겠습니다. 위키가 일반 게시판과 다르듯이 일반 싸이트 로그인하듯이 로그인하는 것과 다르다고 생각합니다. --["창섭"]
한 보름 정도만 ZeroWiki를 YouNeedToLogin 모드로 사용해보길 제안합니다. 그 이후에 YouNeedToLogin 모드를 유지할지를 결정했으면 합니다. --["이덕준"]
그런데.. 보름 정도 YouNeedToLogin 모드로 사용하게 된다면, 로긴을 하지 않았을 때 글을 쓸 수 없다는 거지요? 그건, '로그인 하지 않고 글 쓰는 것' 을 막는 거겠군요. 개인의 자유에 맏겨두지 않고 말이지요. 전 반대합니다. 일단, 싫고, 자유와 가능성을 제한한다는 것이 싫습니다. --["zennith"]
- ZPBoard/PHPStudy/기본문법 . . . . 8 matches
* 두번째를 많이 사용함.
* define() 을 사용하여 정의할 수 있으며, 변수와는 달리 한번 정의된 뒤로는 변경할 수가 없다.
* 우선 기본적으로 C에서 사용하던 +, -, *, /, % 는 동일하게 사용한다.
* 문자열을 합칠 때 사용되는 . 연산자도 있음(많이 사용함)
* 앞에서 언급한 각종 연산자를 대입연산자와 함께 사용하는 것도 C와 동일
C 의 사용법과 동일하다..
- ZPHomePage/20050111 . . . . 8 matches
== 회의내용 ==
* 공식적으로 사용할 용도로 공모
* 회원만 글쓰기를 허용할것인가?
* 회원가입시 기입해야하는 내용? (제로페이지회원은 일반회원과 기입내용이 달라야하지 않나?)
* 이전에 쓰던 게시판(Q&A, 감상, 삽질) 그대로 보존해서 사용
* 잘못된 내용있으면 수정바람 --[곽세환]
- ZeroPageHistory . . . . 8 matches
이 문서는 [[ZeroPage성년식/거의모든ZP의역사]] 에서 내용을 옳겨와 정리 하는 문서입니다.
=== 정리되지 않은 내용 ===
=== 정리되지 않은 내용 ===
=== 정리되지 않은 내용 ===
=== 정리되지 않은 내용 ===
=== 정리되지 않은 내용 ===
* 삼성전자 번들용 영어 교육 프로그램
[["ZeroPageHistory/old" 예전 페이지 내용]]
- ZeroWiki . . . . 8 matches
== ZeroWiki 의 사용용도 ==
* '''스터디'''와 관련된 용도에 대해서는 어떠한 주제이건 제한을 걸지 않습니다.
* 위와 같은 목적으로 쓰는 사람들이 알아서 잘 사용하세요. 다른 사람들의 페이지에 대해서도 자유롭게 참여하십시오.
kesarr: 노스모크는 흡연을 안 하는 사람들의 폐쇄적인 모임 같은 건데 처음에는 파이썬으로 구현된 유명 위키 플랫폼인 모인모인을 사용했는데 제로페이지 위키도 김창준 선배와 교류하면서 노스모크 활동을 하시던 제로페이지 선배님들이 모인모인을 적용했었고 노스모크 내부의 다양한 요구사항에 대응하기 위해서 노스모크의 한 회원이 모인모인을 개조하기 시작 이걸 모인모인 노스모크 에디션이라 부르고 그 회원이 아예 위키 플랫폼을 새로 만들자고 선언하고 PHP로 새로운 한국형 위키 플랫폼을 개발했는데 그것의 이름이 모니위키
kesarr: 학교에 있던 제로페이지 서버가 폭파되는 재난이 발생... 06~07년에 사용하던 제로위키에 저장된 콘텐츠는 모두 증발하고 모인모인에서 제로위키로 옮겨타던 무렵 백업해둔 자료를 가지고... 새로운 서버에 모인모인과 문법이 호환되는 모니위키를 설치해서 운영 재개... 11-12년 도쿠위키 또는 미디어위키로 위키 플랫폼을 옮기려는 제로페이지 내부 프로젝트를 개설했으나... 다들 바쁜데 진행할 게 많고 이미 모니위키가 모인모인과 많이 달라져서... 모인모인-타위키 컨버터를 쓸 수 없다는게 함정 모니위키는 한국의 일부 위키만 쓰므로... 다른 위키와의 컨버터 따위 없다.. 게다가 제로페이지 위키는 모인모인 문법과 모니위키 문법이 혼재하기 때문에 컨버터를 만드는 것 자체가 까다로운...
see also ["ZeroWiki/제안"], ["위키로프로젝트하기"], ["제로위키이용의어려움"], ["학술터위키와제로페이지위키링크문제"]
- django . . . . 8 matches
* html 이 있는 template 에 많은 것을 바라지 말자. 가능하면 view에서 데이터를 거의다 처리해서 template에 넘기는것이 좋다. template에서 받아온 데어터로 리스트와 맵 변수의 첨자(subscriber)로 사용하려고 했는데 안된다. 이러한 경우에는 view에서 데이터를 아예 가공해서 넘기는 것이 좋다.
* pysqlite를 사용하면 아래 첫번째 튜토리얼 처럼 하면 된다.
* mysql 은 사용자를 생성하고 settings.py 파일을 설정한다. 그리고 pysqlite와 다른 점은 DB 이름을 넣고 나서 mysql 들어가서 따로 DB를 만들어 줘야 한다. 그리고 사용자도 만들어 줘야 한다.
= apache2, mod_python을 이용한 웹 서버 설정 =
* [http://www.mercurytide.com/knowledge/white-papers/django-full-text-search] : Model 의 Object 에 대한 함수들 사용방법
* [http://www2.jeffcroft.com/2006/feb/25/django-templates-the-power-of-inheritance/] : Template HTML 파일 사용법
* [django/Example] - django를 이용해 만들어본 예제 시스템
- html5/drag-and-drop . . . . 8 matches
* 기존 HTML에서는 mousedown, mouseover 등을 이용하여 드래그 & 드롭을 처리했다.
= 이용 방법 =
* dragstart 이벤트 이용
* DataTransfer 객체를 이용하여 드래그 대상과 드롭 대상 사이에 임의의 데이터를 주고받는다.
* 드롭을 허용하려면 이벤트의 기본값 상태를 취소할 필요가 있다.
* 데이터를 꺼낼 때는 데이터 포맷 형식의 인수를 이용하여 getData()를 호출한다.
|| effectAllowed ||허용할 dropEffect를 지정하는 문자열 ||
|| setDragImage(image, x, y) ||img 요소를 이용하여 드래그 중의 피드백을 지정한다. ||
- html5/form . . . . 8 matches
* 폼 태그는 HTML 문서에서 사용자 입력을 위해 제공되는 양식 태그
* HTML5 의 Canvas를 지원하지 않는 IE8 이전 버전을 위해 ExplorerCanvas(http://code.google.com/p/explorercanvas/) 라이브러리가 제공되듯이 HTML5 확장 폼을 지원하지 않는 브라우저의 경우 WebForm2 라이브러리를 사용할만 하다
* pattern - 제약적인 정규식을 허용
* form 으로 전송되고, 값을 사용자가 조정 불 가능하다.
* 용량과 임계치가 존재하는 상황에서 현재 사용량을 보여주는 UI
* min, max 로 최소값과 최대값(임계치)를 설정하며 현재 사용량의 정도(낮음, 높음, 적정)을 나타내는 low, high, optimum 속성이 제공된다.
* 입력 양식에 required 속성을 부여하면 빈 값이 허용되지 않는다
- neocoin/Log . . . . 8 matches
* 내용 : 지나온 기록들
* 감안 : 임의의 비트맵 파일을 로드할수 있다. 임의 비트맵 파일로 저장할수 있다. MFC Class를 이용해 본다. Api로만 작성해 본다. Java로 작성해 본다. TDD를 생각해 본다. 어떻게 가능한가?
* 책에 대한 기록을 느낌을 적게 기록하고, 기억남는 문구의 인용으로 대체하여 보았다.
* pc실의 컴퓨터 나르고, 덕분에 용철이형 알게됨
* 위의 STL을 이용해서 OpenGL상에서 뭔가 움직이는거 만들기
* ["MoreEffectiveC++"] : 03.08 완료. 해당 책에 내용이 완료 되었다. 방학중에 나 뿐만 아니라 다른 한국인도 알아 먹을수 있게 고칠 생각이다.
* ["OpenGL_Beginner"] : 3월중에 관련 내용을 딱 두번 보았지만, 문서화 시킬만한 꺼리는 아니다. 유보 할것이고, 포기하는 만큼 학교 공부를 하자.
- JXTA는 과거 JXTA를 기고했던 마소 필자가 강의자(숭실대 대학원) 였는데, 거기에서 크게 발전한 것은 없다. JXTA의 구현 방향이 IPv6와 겹치는 부분이 많고, P2P의 서비스의 표준을 만들어 나가는 것에 많은 난관이 있다는 것이 느껴졌음. JMF는 강의자가 JMF의 초심자에 가까웠다. JMF가 계획 시행 초기의 당초 원대한 목표에 따르지 못했고, 미래 지향적인 프레임웍만을 남기고 현재 미미하다는 것에 중점, JavaTV가 일부를 차용하고, 그 일부가 무엇인지만을 알게되었음. JavaTV가 정수였다. 이 강연이 없었다면, 이날 하루를 후회했을 것이다. 현재 HDTV에서 JavaTV가 구현되었고, 올 7,8월 즈음에 skylife로 서비스 될 것으로 예상한다. 그리고 가장 궁금했던 "HDTV 상에서의 uplink는 어떻게 해결하는가"의 대답을 들어서 기뻤다.
- zennith/MemoryHierarchy . . . . 8 matches
하위 계층에서 가져온 데이터는, 다음번에 다시 쓰일 수 있다. 그러므로, 다시 사용할때는 하위 계층에서 다시 가져올 필요 없이, 저번에 가져온 데이터를 사용하면 된다.
* 가장 적은 용량
* 용량이 늘어난다
레지스터는 메모리 계층구조에서 가장 상위 계층으로서, 가장 빠른 속도와, 가장 적은 capacity 를 제공한다. 보통 개개의 레지스터는 그 프로세서의 word 크기이며, 현재 주로 사용되고 있는 인텔 i386 계열 프로세서들의 범용 레지스터의 크기는 32bit 이다.
요즈음의 RISC 구조 프로세서에서는, 모든 연산의 연산자들로 레지스터만 허용하므로, 이 제한된 숫자의 레지스터들을 어떻게 관리하느냐가 성능 향상의 주안점이다. 가령, 빈번하게 요구되는 변수는 계속 가지고 있는다던지, 아니면 한동안 쓰임이 없는 변수를 레지스터에서 버린다던지 하는 일이다. 물론, 이 일(optimal register allocation)은 컴파일러에서 담당한다.
A: 각각의 계층마다 다릅니다. 캐쉬에서 쓰이는 unit 과 가상메모리에서 쓰이는 page 의 크기 차이는 큽니다. 다만, spartial locality 를 위해서 사용된다는 점은 같겠죠.. 좀더 상세한 설명을 원하신다면.. 제게 개인적으로 물어보시거나, 아니면 공부 하시길 -["zennith"]
- 같은 페이지가 생기면 무슨 문제가 있을까? . . . . 8 matches
* 용량 낭비
* 용량문제는 많아야 1~5MB 안쪽 이다. 1000Page가 넘어가는 ZeroWiki 가 백업 용량이 3.5MB이다. SeeAlso SystemPages 중간 백업 로그
* 2년 정도 위키를 쓰면서 그런 고민은 크지 않았습니다. 현제 ZeroPage 에서 사용하는 위키는 정리하는 사람 수 자체가 적어서 경험하지 못했을수 있습니다. 사람 수가 많은 [노스모크]에서도 못느껴봤습니다. --NeoCoin
[현재 위키에 어떤 습관이 생기고 있는걸까?]의 공원 길의 예제와 같이 중복 페이지가 생기고, 발견자(위키 사용자-WikiGnome)가 중복 페이지를 한두장 고칠 필요가 느껴질때 한두장 해결해나가는 일종의 아래에서 위로(BottomUp)의 해결 방식을 이야기 하는 것입니다.
제가 읽은 토의는 '''분류'''에 대한 토의인데 맞는 내용을 읽었는지 확신이 안 드네요. 일단 생각을 정리해서 써 보겠습니다.
앞에서도 썼듯 ''페이지를 생성할 때, 검색을 자동으로 해준다. 그래서 검색 결과를 보여주고 페이지를 새로 만들지, 아니면 원래 페이지에 덧붙여서 쓸 지 사용자가 결정하게 한다. 그러다면 검색 결과를 무시하지 않는 한, 중복 페이지가 줄어들지 않을까''라는 생각이 기본입니다. 검색범위를 페이지 이름으로 할지 전체 글을 대상으로 할 지는 생각을 못 해 보았지만요. 페이지를 손으로 고치는 방식을 대체할 것은 생각 못했지만, 제가 생각한 방식은 페이지를 만들기 전에 할 수 있으므로, 페이지를 만들고 나서 해결하는 '''아래에서 위로''' 방식과 혼합해서 쓸 수 있다고 생각합니다. 써 놓고 보니 페이지 이름하고는 빗나간 이야기이긴 하지만 어떻게 손이 한 번이라도 덜 가는 구조를 만들까 하다 보니 이런 글을 썼습니다.-[Leonardong]
페이지이름을 만들때, '''제목대상 검색'''은 이전부터 지원되었습니다. 예를들어 이동 창에 Front를 쳐보세요. 처음부터 후자를 이야기 하는 것으로 알고 있었습니다. 보통 '''내용검색(FullTextSearch)'''는 부하 때문에 걸지 않습니다. 하지만, 현재 OneWiki 의 페이지가 적고, 페이지를 만드는 행위 자체가 적으므로, 후자의 기능 연결해 놓고 편리성과 부하의 적당한 수준을 관찰해 보지요. --NeoCoin
- 객체지향용어한글화토론 . . . . 8 matches
난해하기 짝이없는 [OOP]의 용어들을 처리해 보자.
= 용어를 한글화 해야하는 이유 =
* 우리 어휘를 사용하는 이유는 그 어휘에 내포된 여러가지 의미를 직관적으로 느낄수 있기 때문아닐까??
* [이승한]이 처음 C언어를 접했을때 가장 답답했던 점은 용어를 한글로 적어 놓긴 했지만 발음 그대로 옮겨 놓은것에 불과해서 그것이 어떤 뜻을 담고 있는지, 어떤 의미로 쓰이고 있는지 전혀 못 알아 보았던 점이다.
* 게다가 점임가경으로 그렇게 발음 그대로 옮겨ㅤ많은 용어들이 책마다 다르게 쓰여져 있다는 것이었다. 특히 발행년도가 몇해씩 차이가 나는 책들은 그게 유난히도 심해서 도저히 같은 용어라고 보기 힘든 경우도 참 많았다. 그래도 요즘은 국내의 개발자 커뮤니티들이 많이 활성화되어서 사람들의 암묵적인 합의가 있어서 그런지 어느정도 통일이 되긴 했다.
DeleteMe - 원서를 보는 이유중의 한가지... 용어의 문제도 있겠지만, 말그래도 '번역'된 문장은 너무 이해하기가 어렵다. - 임인택
* 'oriented'라는 단어가 사전에서는 '지향'이라고 설명되어 있지만, 그 고어적인 뜻은 '비롯되다', '해가 뜨는', '출현하는', '발생하기 시작하는' 이라는 뜻을 가지고 있습니다. 따라서 'Object oriented'라는 용어는 '객체에서 비롯된다'라고 해석할 수 있지요. 저는 이것이 좀 더 정확한 해석이라고 생각합니다. - [http://garden.egloos.com/10001141/post/20974] - 출처
- 나를만든책장관리시스템 . . . . 8 matches
* 사용자는 책장에서 책을 볼 수 있다.
* 사용자는 책을 뽑아 들어 기부자, 기부자가 남긴 말을 볼 수 있다.
* 사용자 보는 화면 - 책 제목, 이미지, ISBN, 저자, 출판사, 기부자 정보(이름, 기수), 기부자 남기는 말, 기부 날짜, 현재 대여가능 여부
* 사용자 입력 데이터 - 대출 신청
* 사용자는 자신의 대출 상태 확인 가능.(상태, 남은 날 등등)
* 옷. 첨뵙는 분이네요. ^^ [사용설명서] 를 참고하세요. 위키는 자유공간이기 때문에 이것저것 시도하면서 배운답니다. [사용설명서] 에서 애매한 부분이 있거나 읽고나서도 사용에 어색하다면 다시 말씀해주세요. : ) --[창섭]
- 데블스캠프/2013 . . . . 8 matches
외부 공개용 타임 테이블 : [http://goo.gl/a09wz]
|| 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 ||
|| 서민관(19기) || [http://zeropage.org/devils/91470#0, HTTP 프로토콜, C언어를 이용한 웹 서버 만들기] ||
|| 정의정(21기) || MVC와 Observer 패턴을 이용한 UI 프로그래밍 ||
- 데블스캠프2006/월요일/연습문제/웹서버작성/변형진 . . . . 8 matches
* 아직 다양한 보안 문제에 대한 해결 방법을 마련해놓지 않아, 지정된 디렉토리에 있는 파일만을 보이도록 허용함
* PHP로 짜면 스크립트 언어 특성상 프로그래밍이 즐겁다고나 할까요? 그런 느낌이 좋아서 PHP를 선호하긴 하지만, UI를 제외한 코어 루틴만큼은 레퍼런스와 샘플을 함께하면 대부분의 언어로 같은 루틴을 만들 수 있을 거라고 생각해요. 그래도 어느정도는 비 웹언어에 익숙해져야 하지않을까 싶어 C++, Java, C#을 고민하다 C#을 선택해서 해봤는데, C#이 클라이언트단 어플리케이션에서도 효용성을 가지려면 Windows Vista가 출시된 후의 상황을 지켜봐야 할 것 같고, 아직은 C/C++이 더 대세인건 분명해보이네요. 사실 저같은 경우에는 아직은 연구하고 싶은 관심사가 '대용량 데이터베이스 기반 검색 엔진'과 '형태소 분석 기반 자연어 처리'로 DB와 문자열 처리에 관한 부분인데, DB 처리는 일단 RDBMS에서만큼은 PHP처럼 수월한 언어가 없고, 문자열 처리는 Perl이 다른 언어들에 비해 월등하다보니 그런 언어를 도메인 언어로 해오지 않았나 싶네요. ㅋㅋ - [변형진]
* 내가 PHP 도 약간 해보고, JSP 나 Java 도 약간 해봤서 대충 심정을 알듯.. 나도 JSP랑 Java 써서 이번에 DB 프로젝트 개발 해보기전에는 웹에서는 PHP로 짜는게 가장 편하게 느껴졌었거든. 그래서 DB 프로젝트도 웹은 PHP 응용은 Java 이렇게 해 나갈려고 했는데 PHP가 Oracle 지원은 버전 5.x 부터 되서 걍 Jsp로 하게 됐지. 둘다 해본 소감은 언어적인 면에서는 뭐 PHP로 하나 Jsp로 하나 별 상관이 없는거 같고, 다만 결정 적인것은 개발환경및 Jsp 에서는 java 클래스를 가져다가 사용할수 있다는 점이었스. Jsp에서 하면 Junit 을 사용하여 Unit 테스트를 하면서 작성하기 수월했고, 또한 디버깅 환경도 Visual Studio 에서 디버깅 하듯이 웹을 한다는게 정말 좋았지. 또 java 클래스를 가져다가 사용할 수 있어서 여러 오픈 소스를 활용하기에도 좋고.(예를 들면 Lucene 같은 자바로 만든 오픈소스 검색 엔진..). 특히 Eclipse 라는 강력한 개발 환경이 있어서 Visual Studio 보다 더 개발이 수월할 정도..
- 데블스캠프2009/화요일후기 . . . . 8 matches
* [성우용] - 좋았음.ㅋ
* '''강소현''' - 수학이나 혹은 다른 과목들을 공부할 때에도 항상 목차를 보라고 선생님들이 말씀하셨었는데, 멋도 모르고 각각의 내용만 파다가 그 내용들이 어떻게 연계되는지 이해할 수 없었던 기억이 새록새록 떠오르는 거 같아요. 공부할 내용만 보는 것이 아니라 그 내용을 왜 공부하게 되었는지 알 수 있는 하나의 목차를 배운 느낌이라 좋았어요.
* [김준석] - 같은 것을 반복하기 위해 우리는 자주 copy &paste를 사용한다. 단순히 키보드 두번만 누르면 똑같은 것이 한번더 만들어지는 좋은 단축키 이다. 하지만 사실 이 반복되는것을 우리는 단순히 단축키를 누름으로서 만들어지는것은 과거의 저급언어를 사용할때나 만들어지는 반복의 숙달이다. 평소 자주 알고리즘을 연구하자는 말을 들을것이다. 문제를 푸는것 만에는 사실 극히 특별한 알고리즘이 필요없다고 생각한다. 살면서 어떻게든 간단반복으로 대부분은 풀수 있을테니까. 알고리즘을 연구하는것은 우리가 사용하는 컴퓨터의 부담을 줄이기 위해 만들며 이는 단순 반복되는 계산과정을 줄여줘 자원의 낭비를 줄여준다. 이렇듯 컴퓨터의 반복은 줄이면서 직접 키보드를 치며 반복하고있는 나의 자원소비량은 어떤가? 나는 왜 반복을 하고 있는가? 이 긴 코드를 줄일수 있는 방법은 정녕 없는것인가?라는 컴퓨터 알고리즘을 생각하듯 나를 위한 알고리즘을 생각을 해보았나? 대부분의 문서를 한장으로 줄여서 요약할수 있다는것을 가르쳐주는 One Page Proposal이라는 책에서는 "온갖 미사여구를 넣어 50page나 100page가 넘어가는 문서는 문서를 받은 사람의 책상에서 쌓이고 쌓여 결국에는 보여지지도 못하고 세절기에 들어가 버린다. 정말 자신이 있다면 알짜배기만 모아서 1Page로 보기 좋게 만들어라." 맞는 말이다. 아무리 길게 만든 프로그램이라도 20줄도 안되는 프로그램과 성능이 똑같다면 당연히 보기도 좋고 관리하기도 좋은 20줄 프로그램을 쓰겠지.이 20줄 프로그램을 쉽게 만들기위해 사람은 자신이 편리하게 개발과 연구를 했다. 그렇게 편리하도록 발달하는 과정. 그 생각을 잘보여준 세미나였다고 생각한다. 과연 네이버에서 자동완성됬던 Kesarr.
- 새싹C스터디2005 . . . . 8 matches
만들어진지 오래되어 조금 구질 구질하기도 하지만 좋은 내용.
[PracticalC]를 정리하는 이런 페이지도 있네요. 모두 같이 정리해 보고 활용해 보았으면 좋겠습니다.
=== 진행할 내용 ===
[새싹배움터05/첫번째배움터]에서 다루기로 했던 내용을 진행.
=== 진행할 내용 ===
=== 진행할 내용 ===
=== 진행할 내용 ===
기존회원 분들께서는 이 때 만들어진 신입생들의 소스를 모아주세요. 시험 끝난 후 리펙토링 세미나에서 예제로 사용할 겁니다. --재동
- 새싹교실/2011/學高/4회차 . . . . 8 matches
* 오늘 수업시간에 짰던 "세 정수 x y z를 입력받아 x + y * z를 출력하라" 이 문제를 응용하면 쉽게 짤 수 있습니다. - [윤종하]
=== 가르친 내용(fact) ===
* printf 사용법
=== 배운 내용(fact) ===
배운내용을 복습하지 않아서 따라가는데 어려움이 있었습니다. 질문도 더 많아진것 같구요 앞으로는 열심히 복습하겠습니다~
=== 배운 내용(fact) ===
다음부터는 배울 때 내용을 곱씹으며 하자.
=== 배운 내용(fact) ===
- 새싹교실/2011/무전취식/레벨7 . . . . 8 matches
== 수업 내용 ==
이진영 : 포인터는 너무 어려워용 ㅠㅠ <b>오빠가 너무 잘가르쳐줘서 감사해용<b>
* 지난 시간 복습을 하고! 드디어 그 포인터라는 것을 들어갔습니다..학기초에 소라가 포인터 포인터@.@ 라고할때 그 포인터가 이렇게 일 찍 다가올 줄은 몰랐네요..ㅋㅋㅋ ㅠㅠ오빠가 잘 설명 해주셔서 대충은 알 것같아요 ㅎㅎㅎㅎ 하지만 꽉 잡고 싶어용! 앞으로 3년은 편해진다고 하시기에......ㅎㅎㅠㅠ 이제 첨 시작 한거니까 겁먹지 않을 테여요!! ㅎ ㅔ헹~~!복습을 마니 해서 좋아요!! - [이진영]
* 우린 복습을 위주로 가르키지! 지식이란 좀 숙성되는데 시간이 걸리니까!!! 포인터를 가르치는건 매우 힘들지용 사람은 기본적으로 계산에 약해.. 그래서 연결되고 연결되고 연결되는 관계를 모르지용... 하지만! 계속 계속 포인터 써보다 보면 느는게 포인터 입니다! 이번 학기 말에는 MFC도 건들여보았으면 좋겠는데 말이지. -[김준석]
* 저도 포인터를 포기한 경험이 있어서 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ못해요.... 앞으로 오빠한테 잘 배울게용...하하 천천히 가르쳐주세용>_< 배열선언하고 배열이름엔 배열이 시작되는 주소값이 들어간다는 것도 배웠어요. 이제 점점 더 어려워지겠죠..흑흑 걱정이 앞서여어어어 이제 소라찬스따윜ㅋㅋㅋㅋ -[이소라]
- 새싹교실/2011/쉬운것같지만쉬운반/2011.5.17 . . . . 8 matches
= 공부 내용 =
1. Pointer란 무엇인가? ( 문법적 측면, 활용적 측면 )
4. 잘못된 Pointer 사용의 사례
|| 새싹 || 장용운 || O ||
3. int *p = 10; 과 int *p = a; 중 올바른 사용 예는? ( int a = 300; 이 미리 선언되어 있다고 가정 )
* 배열 나가기 전에 포인터를 나가보았습니다. 변수와 포인터를 비교하며 가르쳐보았습니다. 그러다가 용운이의 질문 덕분에 *(애스터리스크) 연산자가 뜻이 모호하다는 것을 깨닫게 되었습니다. 왜 곱하기랑 주소참소를 구분하지 않았을까요? 의문이군요. 배열하고 포인터는 어차피 다른 개념이라, 기본적인 개념은 포인터를 먼저 가르쳐도 상관없네요. 앞으로는 포인터를 먼저 가르쳐야겠습니다. 왜냐면 맛있는 걸 먼저 먹어야 기분이 좋으니까요? - [박성현]
포인터曰 "물논. 그리고 짜네가 또망가료는 굿또 알고잇치. 논 자유의 모미 아냐. 여태까지 그래 와꼬, 아패로도 개속!" - [장용운]
피드백 문제 [장용운]
- 새싹교실/2012/AClass/5회차 . . . . 8 matches
-이진 탐색은 제어검색에서 가장 대표적인 방법으로 한번 비교동작이 끝난 후 그 결과를 이용하여 다음에 비교할 대상을 선택하는 방법으로 검색한다. 주어진 파일들을 일정한 순서대로 배열된 상태에서 원하는 값을 검색하는 방법이다.
* 한번 비교 동작이 끝난 후, 그 결과를 이용하여 다음에 비교할 대상(K<Ki)을 선택하는 방법으로 검색한다.
6.LinkedList를 구현할 수 있는 구조체를 하나 만들고, 그 구조체를 이용해 linkedlist하나를 만들어봅시다.
7.동적할당을 이용해 list가 몇개 연결되어있는 구조를 만들어봅시다. list->next->next = 동적할당;
- 정렬된 데이터 집합에서 사용할 수 있는 고속 탐색 알고리즘 입니다.
6.LinkedList를 구현할 수 있는 구조체를 하나 만들고, 그 구조체를 이용해 linkedlist하나를 만들어봅시다.
7.동적할당을 이용해 list가 몇개 연결되어있는 구조를 만들어봅시다. list->next->next = 동적할당;
#include <string.h> // strlen() 함수 사용하기 위해
- 새싹교실/2012/아우토반/앞반/4.19 . . . . 8 matches
|| 강사 || 장용운 || O ||
case 1: printf("***** 고갱님 계좌 생성 해드릴게용 뿌잉 ***** \n\n");
case 2: printf("***** 고갱님 입금 할까용? ***** \n\n");
case 3: printf("***** 고갱님 얼마 출금 할까용? ***** \n\n");
default : printf("이상한거 입력하지마용\n\n\n");
printf("고갱님 계좌 생성 해드릴게용 뿌잉\n\n");
printf("고갱님 입금 할까용?\n\n");
printf("고갱님 얼마 출금 할까용?\n\n");
- 새싹교실/2013/양반/3회차 . . . . 8 matches
= 수업 내용 =
* 지난 시간 내용 복습
== 내용 ==
제어문을 사용하면 이 문장이 실행 되는 순서를 내 맘대로 제어할 수 있다.
if문에 else 절을 추가한 if-else문을 이용해서 여러 가지 조건을 처리할 수 있다.
if문 내에 if문을 또 사용할 수도 있다. 중첩된 if문이라고 한다.(nested if)
문자형을 포함하여 정수형 수식만 사용할 수 있다.
수식 3 - 조건식에 사용된 변수를 증가시키거나 감소시키기 위한 식으로 루프의 각 반복후 실행
- 오픈소스검색엔진Lucene활용/세미나060401_2시 . . . . 8 matches
* 갑자기 올립니다. [오픈소스검색엔진Lucene활용] 에 관련된 내용을 할 예정입니다.
* 방법 적용하기.
* 적용 사례 보여주기. (JSP를 이용하여 Server 상의 특정 폴더의 데이터들 검색)
* 자신의 프로그램에 검색이 필요한 경우 굳이 새로 만들기 보다는 기존의 검증된 오픈소스를 활용하기 위한 방법을 소개해 드릴 예정입니다.
* 기본적으로 검색 엔진이 인덱스를 약간의 시간을 들여서 인덱스를 구성해서 추후에 검색을 했을 경우 빠른 검색 속도를 보장 합니다. 그리고 중간 중간에 추가, 삭제 및 변경된 내용들은 꾸준히 인덱스를 중간 중간 업데이트를 해 내갈 수 있습니다.
== 활용 예 ==
- 위키설명회 . . . . 8 matches
* 페이지 복구 방법 - 파란아이 이용
* 링크 이용
* 분류분류 이용 - 노스모크 소개
* 현재 위키가 사용되는 곳들을 예시하고 (한국 Gnome 사용자 모임, 데비안 사용자 모임, kldp ) 일정 주제에 대한 자료 찾거나 서핑의 시간 (20~60분) 가진후 서로다른 쓰임새에 대하여 토의해 본다.
* 지금 사용자들도 모를? 페이지의 암묵적, 명시적 규칙에 대하여 서핑을 통해 찾기를 해본다. 보물 찾기하듯 상품을 주는것도 좋을것 같다. (연필, 지우개 등 :) )
* [위키설명회] 도중에 난감했던 한 가지는, 파란아이를 통해 이전 문서의 원문을 볼 수 없어서 페이지 내용을 복구하는 방법을 저조차 모르고 있다는 사실을 안 것입니다. 원래 파란아이로 원문을 볼 수 없었나요? --[Leonardong]
- 정규표현식/스터디/문자집합으로찾기 . . . . 8 matches
"문자집합"을 사용한다.
문자집합은 메타문자 대괄호([])를 사용해 문자집합을 표현한다. 대괄호 안에 있는 문자는 모두 집합의 구성원이 되며, 집합에 속한 문자 가운데 하나가 일치한다. 집합에 속한 모든 문자가 모두 일치할 필요는 없다.
== 문자집합 범위 사용하기(준석) ==
=== 내용 ===
* {{{다음과 같이 [] 는 리스트를 나열해주는 것으로 .과 같이 한글자만을 지원한다 여러개의 []리스트를 사용하고싶다면 '*'(와일드카드)를 붙이거나 범위를 지정해주는 {}를 사용하여 []* 이나 []{4,4}(4개 찾기)로 이용할수 있다.}}}
* {{{또한 다음과 같이 [0-9] = [0123456789]와 같이 사용하며 문자 또한 지원한다. 축약법은 하이픈(-)을 붙이는 방법으로 [A-Z][a-z] 이방법은 아스키 코드 방식을 따르며 축약시킬 경우 [a-A]는 역순이므로 되지 않는다. 또한 리스트([])안에서는 또다른 리스트([])와 역슬래시(\), 하이픈(-)을 제외하고는 모두 일반 문자와 같이 인식하므로 특수문자 %&^*$ 를 단순히 리스트 안에 나열하는것으로 검색할수 있다 리스트 안에서 리스트([])를 검색하는 방법은 역슬래시를 붙여 이스케이프를 시켜야한다.}}}
- 정모/2011.3.28 . . . . 8 matches
* [임상현] 학우의 다양한 게임 컨트롤러와 활용 소개 세미나
* 새싹 돌아보기 도중 나왔던 윤종하 게임 세미나! 정확히 언제 하실지 궁금해졌습니다 ㅋㅋ 다음 주 부터 ZP에 관심 있는 새내기들도 참여한다던데, 이제 ICE BRAKING의 진가를 발휘할 때가 오지 않았나 싶습니다. 다른 사람들도 모두 알 수 있는 용어들로 채워졌으면 합니다. OMS에서 처음과 두번째 동영상은 TV 광고에서도 많이 봤던 류였지만, 세번째의 사람 전체 행동을 인식해서 컨트롤러 없이도 게임을 즐길 수 있는 것과 네번째 동영상에서 컨트롤러를 활용해 화이트보드에 글씨를 쓰거나 3D 형태로 보이게 하는 것이 신기했습니다. 특히, 로봇같은 경우는 오른쪽으로 가라고 하는 손가락질을 인식해서 이동하는게..정말 능력자가 많은 듯 싶습니다. 책 읽기 모임은 원래 격주로 하는데 시험이 3주밖에 안남아 다음주에 진행하고, 중간고사가 끝날 때까지 쉴까 고민중입니다. 어느 새 3월이 다 갔네요! 시간 참 빠르군요 ㅠㅠ - [강소현]
* 이번 정모는 지난 한달간 제로페이지가 어떻게 지내왔었는지에 대해서 다시한번 생각해 보는 시간이었습니다. 그래서인지 독서 모임 말고도 다른 프로젝트나 스터디를 해야 겠다라는 생각이 들긴 했었는데.. 오늘 보다 보니까 박성현 학우 혼자 리펙토링 스터디에 이름이 올라가 있던데 왠지 저도 한번 해 볼까 라는 생각도 들고 -_-;; 음.. 논문 읽기라.. 여하튼.. 한달간의 제로페이지의 모습은 새 학기를 시작하는데 있어 정말 분주했었고 알차게 되기 위해 노력했었던 것 같습니다. 오늘 OMS는 콘솔 게임에 관심은 있지만 자금적인 문제..... 로 못하고 있는 저에게 참 재미 있었던 주제였습니다. 플레이스테이션도 그런 컨트롤러가 나와 있었는지 몰랐었는데 오늘 보면서 플레이스테이션이 왜 안나오나 했었는데 나와 있었구나 라는 생각을 하게 되었습니다. (응?) 그리고 그런 컨트롤러를 이용하여 게임 외 다양한 분야에 활용하는 것을 보고 생각의 전환이라는 것이 사소한 부분에서 시작하는 것을 다시금 느낄 수 있었습니다. - [권순의]
* 시작하기 전에 다들 모여 앉을 수 있도록 앞으로 나와달라고 했어야하는데 깜빡했네요. 그래서인지 이번 정모는 약간 산만한 느낌이 들었습니다. 이번 OMS는 게임 컨트롤러에 대한 내용이었는데 굉장히 흥미로웠습니다. Wii 나왔을때도 신기하다 대단하다 싶었는데 이제 뭐 들고 있을 필요도 없다니… 기술 발전이 참 놀라워요. 느리지 않을까 생각했는데 별로 느리지도 않은 것 같고 말이죠. 요새 플래시 보드(타는)게임을 자꾸 하는데 키넥트를 이용한 보드(타는)게임 해보고싶네요. 아파트에 살면서 그런거 하면 쫓겨나겠지만 난 아파트에 사는 게 아니니까;; 3월 회고를 진행했는데 OMS는 한결같이 호응이 좋습니다. 다시 시작하길 잘했네요~ 발표하는 사람에게도 듣는 사람에게도 즐거운 시간인 것 같아요. 그런데 다음주 OMS도 과연 그럴지………… 위키의 활성화도 긍정적인 반응이 많아 기뻤습니다. 안 쓰던 위키라 다들 불편하게 느끼시지 않을까했는데 역시 쓰다보면 또 익숙해지는 거니까요ㅎㅎ - [김수경]
* 키넥트의 활용이 정말 인상깊었습니다. 키워드 전기수는.... 개인적인 사정으로 인해 못 했네요ㅠㅠ 앞으론 정모에 제 시간에 가도록 노력하겠습니다. 음 OMS가 아무 주제나 되는 건가요? 그럼 언젠간 제가 SC2 지도 편집기를 소개하고 싶어요ㅋㅋ OMS 정말 좋은 것 같군요 새로운 것을 배울 수 있으니까요. - [신기호]
- 정모/2011.4.11 . . . . 8 matches
* 참여자 : [송지원], [김준석], [이원희], [김수경], [서지혜], [정의정], [강성현], [권순의], [윤종하], [신기호], [김태진], [장용운], [정진경], [송치완]
* 종하 팀 : [서지혜], [윤종하], [신기호], [장용운], [송치완], [김준석], [이원희]
* Ice Breaking .. 재밌는데 너무 시간이 오래 걸리는거 같습니다. 이거 오래하니까 뒤에 준비된 순서를 시간에 쫓겨서 하네요. 진경이 맨날 기숙사 엘리베이터에서 어색하게 인사만 하고 지나갔는데.. 오늘 보니 반가웠습니다. OMS의 영화에 나온 음악 하니까 최근에 영화관에서 레드 라이딩 후드 보다가 MUSE의 노래가 나오길래 깜짝 놀란 기억이 납니다. 영화도 되게 재밌었어요. 그리고 네이트 주소를 적어두질 못했는데 다시 한번 올려주시면 저도 파일방 이용을 좀...ㅎ 다음주 소풍 정말 기대됩니다. 항상 정모 나올 때마다 느끼는거지만 뭔가 하고 간다 라는 느낌을 확실히 받는거 같네요. 정모 준비하느라 고생하시는 회장님 감사합니다~ - [정의정]
1. 이번 OMS는 영화 속 음악에 대한 내용이었는데 매우 흥미로웠습니다. 소개하신 노래들 중 제가 좋아하는 노래가 있었던 것도 좋았구요!!! 미처 생각해보지 못한 영화 속 음악의 의미에 대한 설명을 들으니 뭔가 좀 더 교양있는 사람이 되는 것 같은 느낌이예요. 요금제때문에 한 달에 두 편씩은 꼭 영화를 보는데 앞으로 영화 볼 때 나오는 음악에 대해서도 더 관심을 가지고 들어봐야겠습니다.
1. 스피드 퀴즈는 이번에 처음 시도해봤는데 다들 어떠셨어요? 저는 역시 스피드라 그런지 정신이 없더라구요. 그 정신없는 점이 재밌기도 했지만요 ㅋㅋㅋㅋ 다음에는 스피드 퀴즈 말고 칠판을 이용한 캐치마인드를 한번 시도해볼까합니다. - [김수경]
* 저는 횟수로 따지자면 이번이 두번째로 참여하게 되는건데, 좀 제대로 참여한건 오늘이 처음이라 어떨지 많이 개대됐어요. Ice Breaking도 좀 더 재밌게 쓸 수 있었을 텐데 하는 아쉬움(?)도 남네요. 또, 중간에 스터디 소개같은거 하는데서는 이게 도대체 무슨 말이지.... 라는 것도 좀 있었구요. OMS는 매트릭스가 제일 기억에 남...는 다고 하면 거짓말이겠고.. (배경이..) 사실 OMS하는게 상당히 많이 전문적인(저번에 현이형이 준비하는거 봤거든요.)걸 하는 줄 알았는데 꼭 그런건 아닌거 같아 좀 쉽게 다가온거 같아 좋았어요. 근데 갑자기 궁금한게.. 위키에 두명이 동시에 수정하게 되면 어떻게 될까요? 앞에 저장한 사람의 내용이 씹히게 될까요;? - [김태진]
* 악.. 후기를 썼다고 기억하고 있었는데 안썼네요ㅠㅠ.... 항상 새로운 프로그램을 준비하는 회장님께 박수를 보냅니다. 진실, 거짓은 전에도 해봤지만 자기를 소개하는 IceBreaking도 즐거웠습니다. 의외의 사실과 거짓은 항상 나오는 것 같습니다. 스피드 퀴즈도 즐거웠습니다. 재학생들이 그간의 활동을 회고하고 11학번 학우들이 새로운 키워드를 알게된 좋은 계기였다고 생각합니다. 순의의 OMS도 즐겁게 봤습니다. 자신이 이야기하고자 하는 내용을 좀 더 자신 있게 표현하지 못하고 약간 쑥스러워(?) 하는 면도 보였지만 동영상도 그렇고 많은 준비를 했다고 느꼈습니다. 다음 OMS에 대한 부담이 큽니다=_=;; - [Enoch]
* 이런 매우 늦은 후기 작성이군요 ㅠㅠ 처음 간 정모는 참 재밌었어요~ 게임하는거 많이 아쉽네요 ㅋㅋ 이길 수도 있었는데~ 다음에도 시간 나면 정모에 참여하고 싶어요~ OMS는 배경화면이 인상깊군요 ㅋㅋㅋㅋㅋ 저도 열심히 공부해서 나중에 OMS를 하게 되면 좋을 것 같아요 ㅋㅋ - [장용운]
- 정모/2012.11.26 . . . . 8 matches
하지만 1월에 좀 사용할 예정
* 제출도 있고 내년에 신입생 모집때 사용 가능함
1. 오랜만에 정모 참석했네요. OMS는 굉장히 굉장히 학술적인 내용이었습니다. 사실 전 공수도 멀컴도 듣지 않아서 그리 익숙한 주제는 아니었네요. 그 화려한 수식의 향연이란... 적당히 메모를 해가면서 들었는데 살짝 헷갈렸어요. 하지만 한번 맛보기로 들어봤으니 다음에 어디에선가 다시 들을 일이 생기면 덜 낯설겠죠? :)
1. 아, 그리고 오늘 정모에서 스터디/프로젝트 진행에 대한 공유가 없었던 것이 아쉬웠습니다. 제가 참여하고 있는 스터디 외에 다른 스터디들이 어떻게 진행되고 있는지도 궁금했고, 또 제가 하고 있는 스터디들 공유하고 지원을 요청하고 싶은 내용들도 있었거든요. 오늘 회장님께 은퇴 처리를 신청했고 사실 다음 주 정모에 갈 수 있을지 여부가 불투명하긴 하지만 어쨌든 다음 주 정모에서는 스터디/프로젝트 공유가 진행되었으면 좋겠습니다.
* [강성현] : OMS는 뭐 predictable한 내용이라 그냥 편히 들었습니다. 개인적으로 그동안 했던 OMS들의 내용을 간략히 정리한 게 있었으면 좋겠네요. 지난번에 몇 번 정모를 빠졌는데 그때 했던 OMS들이 관심이 있음에도 불구하고 내용을 몰라서 아쉬웠던 적이 많았습니다. 그리고 이번 OMS처럼 들어도 잘 모르는 내용도 한번 정리하면 좀 이해할 수 있을 것 같고요.
- 정모/2012.5.14 . . . . 8 matches
* 참여자 : [김준석], [민태원], [권순의], [김수경], [강성현], [서민관], [김태진], [장용운], [이진규],[정진경], [권영기], [박상영], [김윤환], [권영기], [권여문]
* 5만원 빚 청산, 10만원 호스팅, 10만원 잡지(월간 마소 예정) 사용 예정입니다.
* 지원 신청(책 등)은 해당하는 주 정모 페이지에서만 받습니다.!!(위키를 사용합시다.)
* 정모 내용을 정모중에 간단히 쓰는 사람이 있어야 할 것 같습니다.
* 조금 늦어서 중간부터 들었지만 OMS 재미있게 들었습니다. 키보드 할 때 들어와서 키보드에 대한 이야기인가 했더니 한글에 대한 발표였네요. 사실 저는 Windows를 항상 주로 사용해왔기 때문에 한글 사용 관련하여 크게 불편함을 느낀 적은 없었는데 이번 OMS를 들으며 다양한 언어를 지원하기 위해 고려해야하는 점에 대해 생각해보게 됐습니다. PC실 관리는 사용하는 사람들이 불편할 때 학회실로 오게 하는 것이 좋다고 생각합니다. 그게 관리하는 쪽에서도, PC실 이용하는 쪽에서도 편한 방법이죠. - [김수경]
- 조현태/놀이/시간표만들기 . . . . 8 matches
=== 버전별 내용 ===
* 발로 하루만에 만든터라 용량 및 속도가 느리다.
* 이건...비밀인데..^^;; 사실 용량이 큰 이유가 안에 캐쉬를 위해서 색깔만 다른 그림파일 같은게 3개 들었다. 시간 부족으로 그부분 처리 해주기가 귀찮아서 방치중..ㅎㅎ
* 시간이 없어서 아직도.. 느리고....큰 용량이다.. 일주일에 한번정도 업데이트 해주기로 했다.
* 소켓 프로그래밍을 이용해서, 인터넷으로 시간표 전송 가능. ;;ㅁ;;
* 2학년용 : [http://zerowiki.dnip.net/~undinekr/ZPT.zip]
* 3학년용 : [http://zerowiki.dnip.net/~undinekr/ZPT2.zip]
* 4학년용 : [http://zerowiki.dnip.net/~undinekr/ZPT3.zip]
- 중앙도서관 . . . . 8 matches
하지만, 현재의 도서관 시스템은 사용하면 할 수록 불편한 시스템이다. "Ease of Learning"(MS 워드)과 "Ease of Use"(Emacs, Vi) 어느 것도 충족시키지 못한다.
지금 도서관의 온라인 시스템은 상당히 오래된 레거시 코드와 아키텍춰를 거의 그대로 사용하면서 프론트엔드만 웹(CGI)으로 옮긴 것으로 보인다. 만약 완전한 리스트럭춰링 작업을 한다면 얼마나 걸릴까? 나는 커스터머나 도메인 전문가(도서관 사서, 학생)를 포함한 6-8명의 정예 요원으로 약 5 개월의 기간이면 데이타 마이그레이션을 포함, 새로운 시스템으로 옮길 수 있다고 본다. 우리과에서 이 프로젝트를 하면 좋을텐데 하는 바램도 있다(하지만 학생의 사정상 힘들 것이다 -- 만약 풀타임으로 전념하지 못하면 기간은 훨씬 늘어날 것이다). 외국의 대학 -- 특히 실리콘벨리 부근 -- 에서는 SoftwareEngineeringClass에 근처 회사의 실제 커스터머를 데려와서 그 사람이 원하는 "진짜" 소프트웨어를 개발하는 실습을 시킨다. 실습 시간에 학부생과 대학원생이, 혹은 저학년과 고학년이 어울려서(대학원생이나 고학년이 어울리는 것이 아주 중요하다. see also NoSmok:SituatedLearning ) 일종의 프로토타입을 만드는 작업을 하면 좋을 것 같다. '''엄청나게''' 많은 것을 배우게 될 것이다. --JuNe
이런 프로젝트가 컴공과 학생에게 쉽게 떨어질리는 만무하다. 그래서 대부분은 디자인 단계에서 끝내게 된다. 유스케이스 몇개 그려보고 끝나는 것이다. 좀 더 용감하고 야망이 높은 사람들은 밑바닥부터 구축을 해나갈지도 모르겠다. 어찌 되었건 프로그래밍은 중요하다. 빌게이츠가 늘 하는 말이 "Code is the thing"이란다. 만약 프로그래밍을 직접 해보지 않고 끝내게 되면 자신이 배울 수 있는 엄청난 크기의 빙산을 그냥 지나치는 셈이다.
전부 다 만들기엔 시간과 용기가 부족한 사람들은 기존 시스템에의 랩퍼(wrapper)를 만들 수도 있다.
즉, 현재의 도서관 시스템을 일종의 웹서비스로 이용하는 것이다. 직접 CGI로 쿼리를 보내고 받아오는 HTML을 파싱해서 적절한 XML로 치환해주는 레이어를 만든다. 이렇게 하면 "일반적 도서관 랩퍼"를 만들 수 있다. 즉, 어느 도서관 시스템에든지 약간만 수정하면 적용할 수 있게 된다.
사용자는 이 랩퍼를 통해 로긴을 하고, 책 평가도 하고, 리뷰도 쓰고, 베스트셀러 검색도 하고, 대출 예약도 한다. 기존 시스템의 모집합이 되는 셈이다. (하지만 꼭 그럴 필요는 없다. 중요하고 자주 쓰이는 기능만 노출해도 충분하다)
일단 이걸 만든 사람들이 열심히 사용하다가, 우리과 사람들이 점점 더 쓰고, 나중엔 다른 과 학생들까지 쓰다보면, 혹시 모르잖는가. 정말 이런 시스템으로 도서관을 바꿀 생각을 정책입안자들이 하게 될지.
- 지금그때2003 . . . . 8 matches
김남규 김창준 정희록 신재용 강규영 김민호
주제가 어떤거지? 현재 지어진 제목을 보면 '미래를 예측하는 방법'에 관한 내용인것 같고, [지금알고있는걸그때도알았더라면]은 '어떤것에 초점을 두어야 하는가'라는거 같은데.. 전자라면.. 앨런 케이의 말을 살짝 인용하며 정말 멋질것 같은데.. "The best way to predict the future is to invent it." - Alan Kay --[sun]
[지금그때] 는 그 자체를 용어로, 이미지를 만들기 위해서 지은 것에 어느정도의 목적이 있습니다. 선후배이야기자리가 [지금그때]가 축약하는 내용을 상징하기에는 부족하다고 생각이 되었고, 새로운 용어를 만들면서, 그 자체에 의미를 부여하고, 우리가 평소에 부를수 있도록 짤막하게 해보았습니다. ex) 지금그때 에서 xx한 형식을 적용해보는 것은 어떨까요? --NeoCoin
전체 내용을 위키로 만들 계획입니다. --NeoCoin
- 창섭/BitmapMasking . . . . 8 matches
* 우리가 비트맵을 불러다 쓸때 늘 사각형 모양으로 불러다 쓴다. 하지만 불러다 쓰고 싶은 모양이 사각형이 아니지만 본의 아니게 배경색까지 따라 찍힌다. 이 때 사용한다.
* 래스터 연산을 이용한다. 디지털 공학 시간에 배우는 OR, AND, XOR 등을 비트맵에서도 적용할 수 있다. 여기서는 XOR 은 쓰지 않아도 된다.
원본 그림에 흰색과 검은 색으로 그려진 그림(마스크)을 밑그림에 잘 연산시켜 순서를 잘 맞춰 그리면 원하는 그림이 나오는 것이다. 마스크는 밑의 두개중 아무거나 사용한다.
=== 마스크 1 사용 ===
* 사용하는 마스크
=== 마스크 2 사용 ===
* 사용하는 마스크
- 컴퓨터공부지도 . . . . 8 matches
Windows Programming 이라고 한다면 Windows 운영체제에서 Windows 관련 API 를 이용 (혹은 관련 Framework), 프로그래밍을 하는 것을 의미한다. 보통 다루는 영역은 다음과 같다. (이 영역은 꼭 Windows 이기에 생기는 영역들이 아니다. Windows 이기에 생기는 영역들은 Shell Extension 이나 ActiveX, DirectX 정도? 하지만, 가로지르기는 어떻게든지 가능하다)
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 을 배우는방법이라 생각되는건, Python 에서의 Tkinter Programming 또는 Jython Interpreter 에서 Swing Tutorial 을 이용하는것이다. (["Jython"] 페이지의 JythonTutorial 참조)
GUI Programming 을 하면서 익힐 수 있는 소중한 개념으로서 Event Driven Programming, Design 으로는 CompositePattern 이 있다. 대부분의 GUI Framework 들은 Event Driven Style 의 프로그래밍 방식이며, 대부분 CompositePattern 을 이용한다. Framework 들의 디자인 개념들이 비슷하므로, 하나의 GUI 관련 Framework 에 익숙해지면 다른 Framework 도 쉽게 익힐 수 있다.
* 내 생각엔 일단.. : 윈도우 컨트롤(VC 등의 리소스 편집기에서 제공 되는 모든 컨트롤들) 을 다루는 법을 완전히 습득 하자. 리스트 컨트롤, 트리 컨트롤, 탭 컨트롤 등의 모든 컨트롤을 자유자재로 원하는 모양(비트맵) 으로 바꿔서 사용할 수 있을때 까지 하자. 완전히 습득하면 어떤 프로그램이든 50% 이상 개발 기간이 단축될 것이다. -- ["김정욱"]
Windows GUI Programming 관련 서적으로는 찰스페촐드의 책을 추천한다. 책 내용이나 번역(!)글이 어렵지만 개념설명이 잘 되어 있으며, 실려있는 예제들이 좋다.
이를 위해 Interactive Shell이 지원되는 인터프리터 언어(e.g. Python)와 패킷 스니퍼(e.g. tcpdump, ethereal, etherpeek, ...), 웹 브라우져, FTP, TELNET 클라이언트 등을 이용할 수 있다.
- 학술터위키와제로페이지위키링크문제 . . . . 8 matches
-상협- 이번에 학술터를 위키로 만들어서 활성화 하고자 하는 프로젝트를 동문서버팀과 정통부가 연계되어서 추진하고자 합니다. 동문서버팀이 위키를 만들어 주면 정통부에서 그 위키에 필요한 기본적인것들을 채우기로 했습니다. 그런데 위키가 처음 열릴때 기본적으로 사람들을 끌어모을만한 아이템이 필요한데, 이에 대해서 제로페이지에서 완료된 페이지들을 링크걸면 어떨까 하는 생각을 하였습니다. 이에 대해서 제로페이지인들의 허용 여부를 알고 보고 싶어서 이렇게 페이지를 개설 하였습니다.
* 학술터 위키 초기 발전 용이 - 학술터 위키로서는 처음에 아무것도 없이 시작하는 것 보다는 몇몇 흥미를 끌만한 내용들을 토대로 시작하는 것이 편할 것이다.
* 검색엔진으로부터의 검색문제 - 이 또한 학술터 위키쪽에서도 문제를 일으킬 수 있는 내용이다. 동문서버 관리자 또한 검색엔진 IP를 막아야 하지만, www.caucse.net 전부가 검색엔진를 거부해서는 안되는 일이다. 이는 동문서버 관리자들도 고려해야 할 사항이다.
* 동문서버 학술터 위키에서 자유롭게 이용하되, 출처를 명시하기.
=== 정통부에서 채우는 위키의 내용이란? ===
DeleteMe) 제로페이지의 위키 자체를 링크하지 않고 저쪽 위키에 페이지를 열어 필요한 내용만 가져간다면 괜찮을것 같지만.(저작권이 관련 있을까요..?) 이렇게 된다면 제로페이지의 주소는 남지 않겠죠. -- 선호 (정식 답변이 아니라 제 의견입니다^^;)
==> 제 의견은 제로페이지의 완료된 프로젝트라도 학술터와 직접적 링크를 통해서 다른 사람이 더 내용을 첨가 하거나 발전시킬 수도 있을거 같아서 단지 복사해서 붙이는 거보다는 링크가 낫다고 생각했습니다. 어차피 같은 학과 사람끼리 서로 생각과 정보를 공유하면 좋겠다고 생각했던 것입니다.
- 화이트헤드과정철학의이해 . . . . 8 matches
계속 화이트헤드에 주목하는 이유라면 (김용옥씨 관점의 화이트헤드해석일지도 모르겠다. ["이성의기능"] 때문이지만.) 점진적 발전과 Refactoring 에서 뭔가 연결고리를 흘핏 봐서랄까나. 잘못하면 뜬구름 잡는 넘이 될지 모르겠지만. 이번에도 역시 접근방법은 '유용성' 과 관련해서. 또 어쩌면 용어 차용해서 써먹기가 될까봐 걱정되지만. 여유를 가지고 몇달 생각날때 틈틈히 읽으려는 책.
김용옥씨의 서문의 인상이 꽤 깊게 남는다. 일상적 경험으로부터 귀납적 관찰로 쌓아올리지 않고, 조급하게 하나를 통찰하는 연역의 원리를 먼저 찾으려는 모습에 대한 비판. 과연 나의 말은 나의 과정들, 경험들을 얼마나 담고 있는건가.
* '진정한 발견의 방법은 비행기의 비행과 유사하다. 그것은 개별적인 관찰의 지평에서 출발하여 상상적 일반화의 엷은 대기층을 비행한다. 그리고 다시 합리적 해석에 의해 날카로워진 새로운 관찰을 위해 착륙한다.' - 서문중 인용된 Whitehead 글.
Control Point 들은 일상의 경험들이다. 그 경험들이 삶의 방정식들을 만들어간다. 비록 그 방정식들이 오차가 많을지더라도, (라그랑주일지, Cubic Spline 일지. 어쩌면 결국 현실을 누가 더 잘 설명하느냐라는 유용성의 문제일까) 어느정도 유용하다. 공식이 완성된 선은 재계산과정없이 빨리 그릴 수 있다.
- .bashrc . . . . 7 matches
# 대화모드용 기능들을 여기에 두면 됩니다.
# --> 리눅스용으로 수정
# 이 부분은 리눅스와 솔라리스용입니다 - 필요한대로 고쳐 쓰세요...
#set -o xtrace # 디버깅용
shopt -s extglob # programmable completion에 유용
alias tree='tree -Cs' # 'ls'의 멋진 대용품
# 스펠링 오타용 - 아주 개인적임 :-)
- 0PlayerProject/커널업로드작업정리 . . . . 7 matches
* 방법 2: U-Boot 사용 (현재 사용하고 있는 방법)
* 방법 3: ARMDown 사용 (ARM 부트로더가 올려져 있어야 하며 약간 느림)
* erase 시작위치 끝위치 : 시작 지점에서 끝 지점까지의 내용을 삭제한다.
* 크로스 컴파일러 안에 들어있는 것을 사용함.
* 큐티 라이브러리를 사용했으나, 매우 느림.. (더군다나 8M..) 그래서 사용하지 않을 계획.
- 2학기파이선스터디/모듈 . . . . 7 matches
* 사용자가 모듈에 정의된 함수나 변수의 이름을 사용하도록 허용하는것 ( = 라이브러리)
== 모듈을 왜 사용할까? ==
* 코드를 재사용 할 수 있다.
* from 모듈명 import 이름 (이름.. 사용)
* from 모듈명 import* (모두.. 사용)
- 3rdPCinCAUCSE . . . . 7 matches
신청 양식: 팀이름, 팀장, 팀장 전화번호 (팀원의 이름은 글 내용에 적는다.)
사용언어: C/C++ with Visual C++ 6.0
- 휴대폰, 인터넷 사용 금지
- 개인 디스켓, CD 등 휴대 금지. 디스켓은 나눠준 것만 사용.
1. 각 문제는 데이터를 외부에서 입력받아서 프로그램으로 답을 계산한 후 반드시 출력을 한다. 이때, 입출력은 표준입출력만 사용한다. 파일 입출력문을 쓰면 안됨.
4. 채점은 자기 컴퓨터에서 하는 것이 아니라, 채점 컴퓨터에서 실행한다. 즉, 자기 컴퓨터에만 있는 특수한 기능을 사용하게 되면, 채점 컴퓨터에서는 안 돌아 갈 수 있음.
아마 이전에 FourBoxes 를 풀어본 사람의 경우는 ProblemB 는 거저먹기가 생각. (재밌는건 ProblemB 의 첫번째 예제 입력 데이터조차도 마소나 FourBoxes 페이지의 내용과 똑같다. 마소의 관련 문제나 정보 올림피아드 문제은행의 것을 그대로 쓴 것이 아닌가 생각) 난이도는 전번보다 더 쉬워지고 시간도 충분하게 주어진 듯 하다.
- APlusProject/ENG . . . . 7 matches
=== 사용자 메뉴얼 ===
=== asp.net웹 응용프로그램 만들기 할때 에러 발생시 해결책 ===
단, 사용하는 OS가 윈도우즈2000이나 XP professional이어야 함.
->응용 프로그램 설정 "만들기" 버튼 누름!!
'모든 사용자에게 동일한 폴더 공유 권한을 지정(권장)'의 체크를 비활성화
=== 임시파일(백업용) ===
Upload:APP_Manual_0605.zip --설치와 사용자 메뉴얼 입니다.
- AcceleratedC++/Chapter5 . . . . 7 matches
* 여태까지 vector랑 string 갖고 잘 놀았다. 이제 이것들을 넘어서는 것을 살펴볼 것이다. 그러면서 라이브러리 사용법에 대해 더 깊게 이해하게 될것이다. 라이브러리는 자료구조?함수만을 제공해주는 것이 아니다. 튼튼한 아키텍쳐도 반영해준다. 마치 vector의 사용법을 알게 되면, 다른것도 쉽게 배울수 있는것처럼...
* 왜 students.erase(students[i]) 하지 않는가? 모든 컨테이너에 일관성을 제공하기 위해서라고 한다. 바로 반복자라 불리우는 것을 이용해, (포인터보다 반복자가 먼저 나오네요.) 동일한 방법으로 제어를 할수 있는 것이다.
* 인수曰 : STL을 사용할때에는 반복자를 이용하는 것이 표준이라 한다.
* ++i : 그냥 쓰면 된다. 각 컨테이너마다 구현은 다를테지만, 놀라울 정도의 추상화로 사용자들로 하여금 모르고 써도 되게 만들었다. 반복자를 하나씩 증가시키는 것이다.
* 지금 보니까 쓸만한 팁이 하나 있다. 바로 한 컨테이너에 다른 컨테이너의 내용들을 넣는 예제이다.
- C++스터디_2005여름/도서관리프로그램 . . . . 7 matches
지금까지 배운 것을 이용하여 도서관리 프로그램을 만든다. 간단한 기능은 다음과 같다.
도서관리프로그램에 책을 등록할 수 있다. - 이 때, 책 이름, 저자, ISBN을 사용자로부터 입력을 받아 새로 구입한 책의 정보를 입력하게 한다.
책을 대여할 수 있다. - 사용자가 책 이름 또는 ISBN 을 입력하면 책을 대여해 준다.
책을 반납할 수 있다. - 사용자가 책 이름 또는 ISBN 을 입력하면 책을 반납하게 한다.
* 주의 - 지금까지 배운 것을 이용 <=== C 로 짜지 마시오
└처음부터 전부를 만들려고 할 필요 없어용~^^ 음..대게 이경우에는 자료구조 정하고 하나씩 차근차근 테스트 해나가면서 만들면 될것 같아요. 안된다고 포기하면 미오.ㅠ.ㅜ ㅎㅎ 그리고 컴파일러가 머리가 나쁜관계로 대게 46개라도 실제 에러는 그 반수도 안된다는~ 힘내보아요~'ㅇ')/ - [조현태]
오옷..울 수민님이다아~>ㅁ<;;;; ㅎㅎ 정 안돼면 보창사마의 내용을 조금쯤 복사 붙여넣기 해도...;;ㅁ;; 무리하면 몸에 안좋다궁.ㅎ - [조현태]
- C++스터디_2005여름/학점계산프로그램 . . . . 7 matches
지금까지 배운 내용을 복습해보자.
- 우리가 같은 클래스에 속하는 객체를 여러개 생성하기를 원할 때, 서로 독립된 객체 변수들을 개별적으로 생성하는 것보다 객체들로 이루어진 배열을 생성하는 것이 더 바람직할 것이다. 지금까지 우리가 사용해온 일반적인 배열과 사용법이 같다.
- 다른 클래스에 속하는 객체를 클래스 멤버로 사용한다.
이를 이용한 간단한 실습을 해보자.
중앙대 컴공 학생 120명의 이번 학기 각 과목점수을 파일로부터 읽어들이고, 각 평점을 계산하고, 장학생명단을 발표하시오! 과목은 C, 국어와 문학, 경제와 사회, 선형대수학 이렇게 4과목으로 한다. 입력파일은 input.txt 이다. 객체 배열과 컨테인먼트을 사용하자.
장학생은 10%로 하고, 순위별로 정렬한다. 평점 1.5 미만의 학생은 따로 분리되어 사용자에게 보여줄 수 있어야 한다.
- CNight2011 . . . . 7 matches
공부한 내용을 위키페이지에 추가해주세요.
배운 내용을 적용해서 자료구조를 구현해봅시다.
구현한 내용을 추가해야겠죠
* 12시 30분쯤, 도중에 참여했습니다. 피곤피곤.. 뭔가 C언어와 관련된 활동을 했었어야했는데. 백트래킹, DP를 설명만 하고 구현을 안했네요-_-; 다음에 기회가 된다면 재귀함수를 실제로 응용하는 방법에 대해 알아볼 시간이 있으면 좋겠네용 - [정진경]
* 많다면 많은 정보들이 한꺼번에 머릿속에 들어왔었는데요, 이것 저것 배우면서 저게 유용하긴 한데.. 분명 포인터랑 연관되어있다긴 하는데 뭐가 어떻게 연관된거야?! 라고 하다가 Linked List를 배우면서 왜 구조체가 필요한지(very powerful!) 왜 많은 수의 자료들을 무조건 배열로만 쓸 수는 없는지등 많은 것을 알게되었어요. 나중에는 카트가 3D면서 렉없는 상당히 잘만든 게임이라는 말도 들었는데, 자료가 유동성 있으면서 접근하기 쉬운 그런걸 만든다는게 쉬운 것만은 아니겠구나 라고 생각했지요. 자구를 공부하면 이런 부분을 공부하는거겠죠. 재밌겠네요+_+(까봐야 알지만) -[김태진]
- ComputerGraphicsClass . . . . 7 matches
수업내용: Computer Graphics 에 대한 전반적인 이해. 주로 3D 관련 내용과 프로젝트.
2004년 부터는 프로젝트시 OpenGL 을 이용한다. (하지만 파이프라인 밑바닥부터 구현 한다)
[1002] 가 봤던 OpenGL 입문서. 간결한 설명과 실제로 입력해보고 바로 확인할 수 있는 간결한 예제가 장점. 약 200여페이지로 필요한 내용만 간결하게 들어있는게 장점이다.
C++ 코딩에 자신이 없는 사람의 경우 이 책의 맨 앞에 있는 Vector 클래스와 Matrix 클래스 코드를 이용해보기를 권함. 책 설명은 쉬우나 중간중간 설명중 좀 아쉬운 부분이 보이긴 함. (ex : 그래픽스 파이프라인 부분인데 박스 설명은 CPU 파이프라인 설명시의 예 라거나, A* 부분은 설명이 너무 부족)
가볍게 읽고 실용적으로 써먹을만한 Problem - Solution 응용서.
- ComputerNetworkClass/Exam2006_1 . . . . 7 matches
= 내용 =
상기와 같은 형식의 네트웍에서 각 라우터의 CIDR 관련 테이블의 내용을 적으시오.
각 방식에서 사용하게 되는 멀티캐스팅방식에 대한 간단한 약술
4. TCP 버프를 이용한 flow control 관련 문제들.
TCP 수신측 버퍼 오버시 TCP 프로토콜의 처리과정 및 Probing 을 이용한 에러제어
Advertised Window를 이용하지 못하는 상황하에서 TCP의 에러처리 방식에 대한 추론.
5. Client -> SunServer 의 상황하에서 ASN.1을 이용하여 정수형 데이터를 주고받는
- C언어시험 . . . . 7 matches
처음에 문제를 보고 조금 당황하기는 했는데 저도 큰 문제는 없다고 생각합니다. 문제에 '''정답''' 이란 것도 없을 것 같고.. 단지 '''배우지 않은 내용이 문제로 나왔다'''라는 이유만으로 말이 많은것 같네요. (물론 새내기의 입장은 충분히 이해합니다). 시험 문제로 인해 기분상한 새내기들께는 교수님께서 문제를 그런 스타일로 내신 의도를 파악해 보라고 말씀드리고 싶네요. 마침 내일 zp정모가 있으니 새내기들에게 C수업방식에 대한 이야기를 들어보고 내용을 이곳에 정리해서 올려보도록 하겠습니다. 제 생각도 전해주고요. 이전에, 첫 번째 과제에 대한 이야기를 듣고 (SeeAlso CodeYourself) 김승욱 교수님의 C언어 수업을 반드시 청강해 봐야겠다는 생각을 했는데.. 연구실 일정과 조교일이 겹처서.. ㅠㅠ 내년에는 반드시 청강해 볼 생각입니다. 이번일로 인해 그 의지가 더 강해지는군요. - [임인택]
제가 내린 결론부터 말씀드리자면, 새내기들의 불만을 터뜨리게 한 가장 큰 원인이 '예상하지 못한 문제가 출제되었다' 인것 같습니다(학생들은 C언어에 대한 문제가 주를 이룰 것이다라는 생각을 하고 있었을 테니까요). 사람들의 이야기를 들어보니 ''교수님의 속도와 학생들이 받아들이는 속도가 맞지 않았다.'' 라는 생각이 들었습니다. 교수님께서 ''책에 있는 내용은 스스로 공부할수 있으니 저는 책에 나오지 않는 내용을 강의하겠습니다.'' 와 비슷한 말씀을 하셨다고 합니다. (새내기가 아닌) 한 학생이 교수님께 찾아가 강의의 난이도를 높여 달라는 말도 했다고 하구요(이 일 이후에는 C언어에 대한 내용을 skip하는 경우가 많았다고 하네요).
수업시간에 시험에 나온 Waterfall, Spiral Model등등 프로세스에 관한 측면과 소프트웨어 디자인에 대한 강의도 있었다고 하는데 제 느낌이지만 교수님께서 너무 앞서나가셔서 (리듬이 맞지 않았다고 하면 될 것 같네요) 학생들이 받아들이는데 문제가 있었던것 같습니다. (이러한 주제를 다룬것 자체에 대해서는 학생들이 그다지 크게 잘못된 생각을 가지고 있는것 같지는 않습니다) 제가 수업을 들었었다면 조금 더 구체적으로 적을수 있었을텐데 아쉽네요. 적적한 메타포의 활용이 아쉽네요. 저는 요새 후배들에게 무언가를 가르치려고 할때 메타포를 많이 활용하고자 한답니다. - [임인택] - 추가해서. 제가 사실을 잘못 알고 있으면 누가 말씀해 주시길 바랍니다.
- DataStructure/Graph . . . . 7 matches
* 사용하는 메모리의 양 ( n개의 Vertices, e개의 Edges )
* 결론 : 뭐가 더 낳다 꼴았다 할 그런건 없지만.. 구현의 편리성과 같은 부수적인 것을 따져볼때 배열을 애용하는게 좋을것 같단 말입니다!
* Depth First Search(우리말로 깊이 우선 탐색) : 한우물을 쭉 파나간다는 말입니다. 가다가 막히면 빽. 스택 이용(또는 재귀). 처음으로 돌아오면 쫑난답니다.
* Breadth First Search(우리말로 너비 우선 탐색) : 첨 Vertex를 큐에 넣습니다. 뺍니다. 거기에 이어진 Vertex를 큐에 다 넣습니다. 앞에서부터 빼면서 그 노드에 연결된 Vertex를 계속 추가시켜줍니다. Queue가 비게 되면 쫑나는 거랍니다. 너비 우선 탐색을 트리에 적용시키면 그게 바로 Level Order가 되는 것이란 말이져.
= 최소 비용 신장 트리(Minimum Cost Spanning Trees) =
* Weighted Graph에 적용, 첫 Vertex에서 마지막 Vertex까지 끊어지지 않게 한번에 그린다.
* 역시 표현은 2차원 배열로 한다. 그런데 이 알고리즘은 (-) Weight 도 허용한다.(그리로 가면 이득이 된다는 말이다.) 하지만 Negative Cycle은 안된다.
- DebuggingSeminar_2005/DebugCRT . . . . 7 matches
Debug C Runtime 클래스를 이용하면 라이브러리가 알아서 동적할당되는 메모리를 역추적하여 누수되는 메모리를 가늠하는 것이 가능하다.
|| _CRTDBG_CHECK_CRT_DF || 내부적으로 사용되는 메모리가 디버그작업을 하는 동안 추적된다. ||
''_CRTDBG_ALLOC_MEM_DF 는 기본적으로 on, 기타 플래그는 디폴트 off이므로 bitwise 연산자를 이용해서 적절하게 플래그를 설정해야한다.''
MFC에서는 기본적으로 로드하지만 콘솔에서는 사용자가 직접 지정을 해줘야 로드한다.
CRT의 기본 함수들의 출력은 디버그 메시지 윈도우이다. 이를 변경하기위해서는 _CrtSetReportMode()라는 함수를 이용해서 출력에대한 일반 목적지를 지정하고, _CrtSetReportFile()를 이용해서 특별한 스트림 목적지를 설정해야한다.
동적 멤버변수를 사용하는 경우에는 대입, 할당 생성자, 소멸자를 반드시 만들어야한다.
- EclipsePlugin . . . . 7 matches
Eclipse 사용할 때 유용한 Plug-in 정리
또한 jsp 문법 오류도 잡아준다. WebApp 의 ROOT 를 지정해 줌으로써 설정이 간단히 끝난다. 자체 JSP Compiler 를 이용해서 Servlet 을 생성하므로 Lomboz 보다 훨씬 가볍다.(Lomboz는 JSP Compiler 를 기존의 WAS 것을 가져다 쓴다.)
단 jsp 파일을 servlet 파일로 변경하면서 jsp 파일의 상위폴더를 패키지 명으로 사용하는데 이 때문에 warning 이 발생하는 아주 작은 문제가 있다. :)
현재 My Eclipse 라는 상용 Plug-in 에 포함되어 있다.
탐색기 열기가 유용하게 쓰인다. :)
여로 툴이 있지만, Eclipse tail 을 가장 유용히 쓰고 있습니다.
- EightQueenProblemDiscussion . . . . 7 matches
만약 당신보다 더 짧은 시간에, 더 짧은 코드로 문제를 해결한 사람이 있다면, 그 사람과 함께 PairProgramming (혹은 NetMeeting 등을 이용, VirtualPairProgramming)을 해서 그 문제를 함께 새로 풀어보세요. 당신은 무엇을 배웠습니까? 그 사람은 어떤 방식으로 프로그램의 올바름(correctness)을 확인합니까? 그 사람은 디버깅을 어떻게 합니까(혹은 디버깅이 거의 필요하지 않은 접근법이 있던가요)? 그 사람은 어떤 순서로 문제에 접근해 갑니까? 그 사람은 어느 정도로까지 코드를 모듈화 합니까? 이 경험이 당신의 프로그래밍에 앞으로 어떤 변화를 불러올 것이라 생각합니까?
자신에게 항상 "What is the simplest thing that could possibly work?"라는 질문을 하면서 TestDrivenDevelopment를 했나요? 테스트/코드 사이클을 진행하면서 스텝을 작게 하려고 노력했나요? 중간에 진척이 별로 없는 경우, 어떤 액션을 취했나요? 그 때 테스트 사이클의 스텝을 더 작게하려고 했나요? 만약 다시 같은 문제를 새로 푼다면 어떤 순서로 테스트를 하고 싶나요? (직접 다시 한번 새로 시작하는 것도 강력 추천) 왜 다른 사람들에 비해 시간이 상대적으로 많이 걸렸을까요? 테스트 코드를 사용한 것이 그 시간만큼의 이득이 있었나요? TestDrivenDevelopment를 해내가면서 현재 패스하려고 하는 테스트 케이스에서 무엇을 배웠나요? 켄트벡이 말하는 것처럼 사고의 도구가 되어 주었나요? 참고로 저는 EightQueenProblem을 파이썬으로 약 30분 정도 시간에 50 라인 이내로(테스트 코드 제외) 풀었습니다. TestDrivenDevelopment로요. --김창준
알고리즘 궁리 부분에 대해서도 80/20 법칙이 통용되려나요. :) 3시간이 걸린 부분이 바로 다음 부분이였는데요.
사고의 도구로써는 연습장과 TFP 둘 다 이용했지만, 순수하게 적용하지는 않았습니다. (위의 Queen을 놓는 부분에 대한 재귀호출부분에서는 적용못함) 테스트작성시간/코드작성시간 등에 대한 관리는 하지 않았습니다. (이 부분에 대해서는 반성을. ^^;) 흠.. 그리고 'The Simplest Thing'을 찾아나갔다기 보다도, 이미 해당 문제에 대해서 의사코드를 생각하고, 해당 코드에 대해 Top-Down 형태로 모듈을 나눈뒤에 모듈에 대해 테스트를 만들어갔다는 생각이 드네요. --석천
지금가지 모두 C++, Python, Java 등 OOPL을 이용했는데 그 중 OOP로 푼 사람은 아무도 없네요 -- class 키워드가 있다고 OOP라고 하긴 힘들겠죠. 사람은 시간이 급하다고 생각이 들수록 평소 익숙한 도구와 멘탈리티로 돌아가려고 하죠. 어쩌면 OOP가 편하고 수월하다고 느끼는 사람이 없다는 이야기가 될지도 모르겠네요. 물론 모든 문제를 푸는데 OOP가 좋다는 이야기를 하려는 것은 아닙니다만. --김창준
- GarbageCollection . . . . 7 matches
컴퓨터 환경에서 가비지 컬렉션은 자동화된 메모리 관리의 한가지 형태이다. 가비지 컬렉터는 애플리케이션이 다시는 접근하지 않는 객체가 사용한 메모르 공간을 회수하려고 한다. 가비지 컬렉션은 John McCarthy 가 1959년 Lisp 언어에서 수동적인 메모리 관리로 인한 문제를 해결하기 위해서 제안한 개념이다.
1. 어떻게 앞으로 사용되지 않을 객체를 결정할 수 있는가?
2. 그 객체가 사용하는 객체의 저장공간을 어떤식으로 반환할 것인가?
2번째 경우에 대한 힌트를 학교 자료구조 교재인 Fundamentals of data structure in c 의 Linked List 파트에서 힌트를 얻을 수 있고, 1번째의 내용은 원칙적으로 완벽한 예측이 불가능하기 때문에 시스템에서 객체 참조를 저장하는 식으로 해서 참조가 없으면 다시는 쓰지 않는 다는 식으로 해서 처리하는 듯함. (C++ 참조 변수를 통한 객체 자동 소멸 관련 내용과 관련한 부분인 듯, 추측이긴 한데 이게 맞는거 같음;;; 아닐지도 ㅋㅋㅋ)
특정 주기를 가지고 가비지 컬렉션을 하기 때문에 그 시점에서 상당한 시간상 성능의 저하가 생긴다. 이건 일반적 애플리케이션에서는 문제가 되지 않지만, time critical 애플리케이션에서는 상당한 문제가 될 부분임. (Incremental garbage collection? 를 이용하면 이 문제를 어느정도 해결하지만 리얼타임 동작을 완전하게 보장하기는 어렵다고 함.)
2번째의 것의 경우에는 자료구조 시간에 들은 바로는 전체 메모리 영역을 2개의 영역으로 구분(used, unused). 메모리를 할당하는 개념이 아니라 unused 영역에서 빌려오고, 사용이 끝나면 다시 unused 영역으로 돌려주는 식으로 만든다고함. ㅡㅡ;; 내가 생각하기에는 이건 OS(or VM), 나 컴파일러 수준(혹은 allocation 관련 라이브러리 수준)에서 지원하지 않으면 안되는 것 같음. 정확하게 아시는 분은 덧붙임좀..;;;
- HardcoreCppStudy/첫숙제/ValueVsReference/임민수 . . . . 7 matches
c++ 프로그래밍에선 사용자 함수를 많이 쓰게 되는데,
다른 함수에서는 그 변수를 사용할 수가 없게됩니다.
대신 그 변수들의 값은 전달인자로 사용할수 있습니다만, 그것들을 사용하여 계산 결과를 리턴하는데
사용될뿐 실제 그 변수 주소의 값은 변경할 수 가 없습니다.
마치 변수 하나에 이름이 두개인것 처럼 사용할 수가 있습니다.
참조전달에 의한 함수를 사용하였을경우 변수 자체의 값이 바뀌기 때문에 위와 같은 결과가 나옵니다.
- HelpContents . . . . 7 matches
모든 것을 익히고 쓰실 필요는 없습니다. 사용하면서 쓰면 편리할 기능들을 익히면 되겠죠.
== 사용 방법 ==
* ["일반적인사용패턴"] - 일반적인, 위키위키를 사용하는 방법
* ["로그인하기"] - RecentChanges 에 IP대신 실명을 사용하는 방법. 그리고 기타 부가적인 기능을 제공받음.
* HelpOnUserPreferences - 위키 사용자로 등록하고, 설정가능한 기본값을 입맛에 맞게 고쳐보세요.
* HelpOnPageCreation - 새 페이지 만드는 방법과 템플리트 이용하기
- HelpOnHeadlines . . . . 7 matches
''' 사용례 '''
= Heading <h1> 일반적인 경우 사용하지 않습니다. =
= Heading <h1> 일반적인 경우 사용하지 않습니다. =
/!\ {{{= 레벨 1 =}}} 제목은 <h1>으로 랜더링되지만 다른 위키위키 마크업과 통일성을 위해 '''두개'''의 "==" 부터 제목줄을 사용하시는 것을 권장합니다. MediaWiki에서도 비슷한 이유로 ``레벨1`` 제목 사용을 제한적 허용하고 있는데, 그 이유는 <h1>은 ''페이지의 제목''에 할당하고 있기 때문이라고 합니다.
모니위키의 경우 제목줄에 기본 문법을 사용하실 수 있습니다. 모인모인 혹은 DokuWiki에서는 이를 지원하지 않습니다.
- HelpOnPageDeletion . . . . 7 matches
페이지 지우기를 사용할 수 있는 위키의 경우 {{{DeletePage}}} 액션을 통해 페이지를 지우실 수 있습니다. 페이지를 지운다는 것은 가장 최근의 편집 복사본이 지워진다는 것이며, 페이지의 모든 변경내역은 여전히 남아있게 됩니다.
raw 혹은 [[GetText(source)]]라고 되어있는 링크를 누르면 텍스트 형식의 위키문법이 브라우져에 보여지게 되며, 이를 그대로 복사한 후에 해당 페이지에서 [[Icon(edit)]] 아이콘을 눌러 해당 페이지를 편집하여, 편집 폼에 복사했던 텍스트 내용을 붙여넣기 한 후에 저장합니다.
모니위키 1.1.3부터 지원하는 `revert`액션을 사용합니다. 단축키로 '''i'''를 누르면 변경내역을 보여주며 이때에 [[GetText(revert)]]라는 액션에 대한 링크가 나타납니다. `revert` 액션에 대한 링크가 나타나지 않으면 {{{?action=revert&rev=1.100}}}식으로 주소줄에 써넣은 후에 페이지를 불러오면 대화창이 뜨게 됩니다.
복구 액션은 남용이 가능하므로 비밀번호로 제한이 걸린 `protected`액션이므로 위키에 따라서 일반 사용자가 사용하지 못할 수 있습니다.
이러한 경우에는 일반 사용자가 복구하려면 위의 '''수동 복구'''를 참조하여 복구하시면 됩니다.
- IntelliJ . . . . 7 matches
Inspection 을 이용하면, 현재 실제로 접근하지 않는 메소드들, private 으로 둘 수 있는 메소드들, static 으로 둘 수 있는 필드 등을 체크하고, 해당 메소드 등을 주석처리하거나 영구삭제, 또는 접근권한을 private 으로 변환하는 등 여러가지 대처를 할 수 있다.
리팩토링시에 JSP 에서 사용된 클래스들도 같이 리팩토링해준다.
Intelli J 에서는 외부 cvs client 를 이용한다. 고로, wincvs 등을 깔고 난뒤 도스 프롬프트용 cvs 를 연결해줘야 한다. (CVS - Project 연동부분에 대해서는 ["IntelliJ"] 쪽이 빨리 버전업이 되었으면 한다는.. ["Eclipse"]의 CVS 연동기능을 보면 부러운지라~)
3. CVS 이용 - 3번의 과정을 하고 나면, IntelliJ 의 Tools 에 CVS 관련 메뉴들이 생길것이고, CVS Panel 이 열릴 것이다.
|| ctrl + I || Interface 구현. actionPerformed 등의 상위 추상클래스들의 interface 틀을 만들어준다. 유용 ||
=== 사용자 정의 단축키 ===
- KDP_토론 . . . . 7 matches
* 현재의 이 WikiWiki 는 'Only for Study' 용이므로, 목적에 맞지 않는 사적인 페이지는 허용하지 않습니다.
* 로그인의 실명화 - UserPreferences 에 자신의 이름과 password를 등록시키면 자신의 SessionID가 붙는 MoinMoin 바로가기를 얻을 수 있을것임. 그 링크를 즐겨찾기에 놓고 사용하면 자동으로 로그인이 된 상태로 모인모인에 접속가능.
* GoF 책의 이미지는 GoF 화일에 있는 이미지를 사용하세요.
* 토론이 이미 끝난 내용에 대해서는 정해진 내용을 정리해서 KDP_Rule 로 옮깁니다.
출판과 라이선스에 관련한 작업이 많고 학부생이 타진하기에는 너무 시간을 많이 빼앗기며, 그것은 공부 차원을 떠난 일이다. 이렇게 머리 아플바에야 완전 번역을 지향하는 것보다 강의 노트식 정리를 지향하고(비록 내용이 완전 번역일지라도) 원칙적 외부 반출을 금지하며, 내부 자료로 쓰도록 명시하여 라이선스 문제를 벗어나도록 하자는게 내 생각이고, 석천도 기본적인 동의를 한것으로 알고 있다. 그럼 의견들좀 타진 --상민
- MoniWikiPo . . . . 7 matches
msgstr "<b>가로선</b> ----는 블로그일 경우 적용되지 않습니다."
msgstr "사용자 설정이 성공적으로 저장되었습니다 !"
msgstr " 혹은 아래의 탬플리트 목록을 이용하세요:\n"
"<b>테이블</b>: || 셀 내용 |||| 두칸에 걸친 내용 ||;<br />\n"
msgstr "처음 버전으로 다음의 탬플리트를 활용하세요 :\n"
msgstr "사용자 등록"
- NoSmokMoinMoinVsMoinMoin . . . . 7 matches
|| 화일업로드 || 지원. 페이지별 개별 화일첨부. 화일첨부시 rename 가능 || 일종의 자료실. 하나의 공용 페이지로 화일공유|| 둘 다 위키와 함께 백업하기에 편리 ||
|| Rename Page || ? || 지원 || 하지만 조심히 이용해야 할 기능.||
|| 계층 위키 || 지원 || 지원 (1차 레벨) || '/' 구분자 이용시 부모 페이지 이름 자동으로 붙여줌.(단, 계층 위키의 적절한 이용에 대해선 NoSmok:HierarchicalWiki 의 글 참조||
|| . || Header 태그 이용시 자동으로 번호 붙음(해제 가능) || . || 때에따라선 불편한 기능. Header 작은 태그들을 꼭 큰 태그 써야만 쓸 수 있으니 쩝||
기능들에 대해서는 좀 더 알아봐야 할듯. 그리고 또하나 생각할것은, 우리가 자주 이용하는 기능이 좋은 녀석을 골라야 한다는점. 둘 다 Python Source 이므로 여차하면 소스수정도 가능할듯. --석천
전 현재 배포판인 MoinMoin 1.0 을 커스터마이징해서 썼으면 합니다. ''(http://acup.wo.to 에 가보시면 MoinMoin 1.0 을 커스터마이징한 위키를 구경할 수 있습니다.)'' ["노스모크모인모인"]에도 현재 욕심나는 기능이 많긴 하지만 MoinMoin 1.0 의 AttachFile 기능이 참 유용하다고 생각하고 있습니다. 그 밖에 Seminar:YoriJori 프로젝트가 다소 정체되어 있다는 느낌이 들기도 한 것이 이유가 될수 있겠습니다. MoinMoin 1.0 설치 및 커스터마이징은 2 ManDay 정도만 투자하면 가능하리라 생각됩니다. --["이덕준"]
- Omok . . . . 7 matches
* 저는 나중에 윈도우즈 용으로 바꿀걸 생각해서 터보씨로는 그냥 돌아가게만 짜봤습니다.
* 제가 작년에 썼던 방법입니다. 터보씨의 그래픽 함수중에서는 clrscr() 함수만 사용합니다.
* 화면을 움직일때 쓴 방법은 방향키 말고 그냥 영어 자판중 'I','J','L',','을 사용하여 움직이고 찍을때는 'k' 를 사용했습니다.
* 이러면 아스키 코드 사용하지 않고도 짤 수 있습니다. 전 아스키 코드 쓰는거랑 터보시에서 그래픽 하는거 싫어서 이렇게 해봤었습니다. 뭐 다른 방법으로 짜고 싶으면 짜시고요. - 상협
* 터보씨에서 지원하는 C 의 그래픽 함수들을 이용해서 colorful 한..-_-;; 그런 오목을 만드는 겁니다.
* 개인적으로 이걸 해봤는데.. 뭐 Visual 적인거 좋아하시면 이렇게 하시고.. 그냥 오목의 알고리즘만 생각하시면 굳이 그래픽을 사용안하셔도 좋을듯..^^
- PC실관리수칙 . . . . 7 matches
1. PC실 정리와 학회실 정리는 학회실을 이용하는 사람들이 하는 것을 기본으로 한다.
1. 정리는 정회원 및 학회실을 이용하는 사람들의 의무로 자발적으로 진행하여야 한다.
2. 정리를 하고 난 후에는 일지에 정리한 내용을 간단히 작성하여야 한다. (보고서 제출시 필요)
6. 학회실은 이용하는 사람 모두가 정리하여야하며, 별도의 당번은 없으나 부회장이 '함께 대청소하기'를 시전할 수 있다.
7. 해당 관리 방식은 11월부터 바로 적용되며, 2주일간 자율적인 정리가 이루어지는 정도에 따라 4번 방침은 바뀔 수 있음.
2. 준/비회원이나 ZeroPage학회실을 이용하는 사람
3. 인쇄물이 남아있어 프린터를 사용하지 못하는 경우, 삭제되지 않으면 프린트를 끄고 몇초 후 다시 켜보는 것을 추천한다. 이후에도 차도가 없다면, 2번 프로세스를 따라가는 것이 좋다.
- PascalTriangle . . . . 7 matches
== 재귀 호출을 이용한 방법 - by 인수 ==
* 단순히 프린트물의 내용을 옮겼을 뿐..
== 동적 배열을 이용한 방법 - by 인수 ==
// 2개의 배열을 사용하여 계산을 한다
// 그 배열을 사용해 3행을 계산해 나머지 배열에 저장하고
// 다시 3행이 저장된 배열을 사용해 4행을 계산해서
== 조합의 수를 이용한 방법 ==
- PracticeNewProgrammingLanguage . . . . 7 matches
모두 사용해보는 역할이 주요함.
2. 스트링 입력 : 사용자의 키보드 입력을 통해 문자열을 입력받아 다시 출력하는 프로그램을 작성하시오.
6. 스트링 검색 : 특정 텍스트 파일을 열고, 사용자가 입력한 스트링을 검색할 수 있는 프로그램을 작성하라.
7. 2인 오목 작성 : 언어의 기능을 최대한 이용한 오목을 작성한다. (텍스트, 그래픽 무관)
1. HelloWorld 소켓 : 소켓(유사한 기능)을 이용하여 프로그램내에서 지정된 문자열을 교환하는 서버, 클라이언트를 작성하시오.
3. TCP 에코 서버, 클라이언트 : 소켓(유사한 기능)을 이용하여 TCP 기반의 에코서버를 작성함.
4. UDP 에코 서버, 클라이언트 : 소켓(유사한 기능)을 이용하여 UDP 기반의 에코서버를 작성함.
- ProjectSemiPhotoshop/Journey . . . . 7 matches
* 열심히 하자. 아직 초반이니까. 음... 강의 시간에 배운 것에 대한 용어의 공부를 더 해야겠다. -- 현민
* 내용 : eXtreme Programming을 실전 경험에서 응용해 보는 것이 어떨가 싶다. : 이 문제에 관해서는 수요일에 파일 구조 시간에 만나서 이야기 하도록 하자. 내 기본 생각은 Xp Pratice 들 중 골라서 적용하기에 힘들어서 못할것으로 생각하는데, 뭐, 만나서 이야기 하면 타결점을 찾겠지. ExtremeBear 도 이 숙제 때문에 중단 상태인데 --["상민"]
* 처음에는 저번에 했던 스터디 내용의 연장이라 따라갈 수 있었는데 뒷부분에 벽돌을 개별적으로 설정해주는 그 배열을 쓰는데서 솔직히 좀 이해가 잘 안된다. 책을 보고 더 연마해야할 듯 싶다. -- 현민
* ["STL"] 관련 서적은 네가 가진게 없을꺼라고 생각한다. 학교에서도 가르쳐주지 않는 부분이라. 스스로 익혀야 한다. 너무나 단 과실이라, 꼭 보기를 권한다. 관련 내용은 ["STL"] 에서 ["STL/vector"],["STL/vector/CookBook"]를 참고하면 될꺼다. --["neocoin"]
* 한일: GDI 로 그림 그려보기, BMP 출력해 보기, Keyboard 입력 받아서 이용해 보기
- ProjectSemiPhotoshop/요구사항 . . . . 7 matches
== Spec , To Do - 사용자 스토리 ==
i. 상수를 이용한 영상 밝기 변화
* 다른 영상을 이용한 영상변화
* 영상 명암 변환 -3 (Look-Up Table 이용)
* 윈도우로 설정한 영역에 대해서만 '7. 영상 질 향상' 적용(O)
* 레포트 표지에 자신이 수행한 내용 중 3)을 추가한 경우 설명서의 6, 7, 8과 같이 표시하고, 4)의 내용을 추가한 경우 설명서의 번호 9.를 표시한다.
- REFACTORING . . . . 7 matches
특별히 때를 둘 필요는 없다. 틈나는 대로. Don Robert 의 The Rule of Three 원칙을 적용해도 좋을 것 같다.
* 뭔가 비슷한 코드를 만들 것이고, 중복됨이 있은 경우에 당신은 주춤할 것이다. 하지만 어쨌든 일단 중복되는 내용이 있더라도 만들어라.
["Refactoring"] 에 의외로 중요한 기술로 생각되는건 바로 Extract Method 와 Rename 과 관련된 Refactoring. 가장 간단하여 시시해보일지 모르겠지만, 그로서 얻어지는 효과는 대단하다. 다른 Refactoring 기술들의 경우도 일단 Extract Method 와 Rename 만 잘 지켜지면 그만큼 적용하기 쉬워진다고 생각.
개인적으로 Refactoring 을 적용하는중, 자주 이용되는 테크닉이 StructuredProgramming 기법인 StepwiseRefinement (Rename 도 일종의 StepwiseRefinement 기술이라 생각이 든다)라는점은 의외일련지 모르겠다. OOP 와 SP 는 상호배제의 관계가 아니기에. --["1002"]
- VC용 Refactoring 도구는 없나요? C++ 이라는 언어에서 Refactoring 이라는 개념을 적용시키려면 TDD in VC++ 처럼 약간 복잡한 과정이 필요하겠지만요;; - [임인택]
- RefactoringDiscussion . . . . 7 matches
Refactoring 과 관련된 토론, 질문/답변의 장으로 활용한다.
Martin Folwer의 Refactoring p326(한서), 10장의 Parameterize Method 를 살펴보면 다음과 같은 내용이 나온다.
* 코드의 의도가 틀렸느냐에 대한 검증 - 만일 프로그램 내에서의 의도한바가 맞는지에 대한 검증은 UnitTest Code 쪽으로 넘기는게 나을 것 같다고 생각이 드네요. 글의 내용도 결국은 전체 Context 내에서 파악해야 하니까. 의도가 중시된다면 Test Code 는 필수겠죠. (여기서의 '의도'는 각 모듈별 input 에 대한 output 정도로 바꿔서 생각하셔도 좋을듯)
로직이 달라졌을 경우에 대한 검증에 대해서는, Refactoring 전에 Test Code 를 만들것이고, 로직에 따른 수용 여부는 테스트 코드쪽에서 결론이 지어져야 될 것이라는 생각이 듭니다. (아마 의도에 벗어난 코드로 바뀌어져버렸다면 Test Code 에서 검증되겠죠.) 코드 자체만 보고 바로 잘못된 코드라고 단정짓기 보단 전체 프로그램 내에서 의도에 따르는 코드일지를 생각해야 될 것 같다는 생각.
하지만 이런 논의를 떠나서 도대체 왜 리팩토링을 하는가 생각해볼 필요가 있겠습니다. 우리는 리팩토링을 "리팩토링이라는 것이 옳다 그르다"를 따지기 위해 사용하는 것이 아니고, 우리의 프로그래밍에 도움이 되기 위해 사용합니다.
물론, 이론을 공부하는 전산학자에게는 좀 다르겠지요. 하지만, 누군가 말하듯이 "완벽한 이론"은 현실에서는 큰 가치가 없기 마련입니다. 저는 리팩토링에서 "완벽한 이론"보다 "유용한 이론"을 찾습니다.
- RubyLanguage/Container . . . . 7 matches
* [] 를 사용해 참조 위치의 객체에 접근할 수 있다.
}}}[[FootNote('''p 메서드''' : 객체를 디버그에 적합한 형식으로 문자열화하여 출력하는 메서드로 주로 디버그 출력을 위해 사용. 디버그, 학습, ShortCoding 이외에는 사용하지 않는 것이 좋다.)]]
* 음의 첨자 사용시 뒤에서부터 역순으로 요소를 가리킨다.
* 첨자대입을 이용함으로써 배열의 내용을 갱신할 수 있다.
* 길이를 포함한 첨자나 범위 첨자를 사용한 경우, 우변에 복수 개의 값을 취할 수 있다.(line 5, 6)
- STL . . . . 7 matches
C++ 의 [GenericProgramming] 기법인 Template 을 이용, container (["DataStructure"] class. 다른 언어에서의 Collection class 들에 해당) 와 [Algorithm|algorithm] 에 대해 구축해놓은 라이브러리.
앞으로 C++ 을 이용하는 사람중 STL 을 접해본 사람과 STL을 접해보지 않은 사람들의 차이가 어떻게 될까 한번 상상해보며. (Collection class 를 기본내장한 C++ 의 개념 이상.. 특히 STL 를 접하면서 사람들이 [GenericProgramming] 기법에 대해 익숙하게 이용할 것이라는 생각을 해본다면 더더욱.) --["1002"]
"[STL] 컨테이너는 포인터를 염두에 둬두고 설계된 것이 아니라, 객체를 담을 목적으로 설계된 자료 구조이다." 이 말을 너무 늦게 봤네요ㅠ_ㅠ 기본 데이터 타입 이외에 사용자 정의 데이터 타입(분류_[class])의 포인터를 사용하기 위해서는 상당한 노력이 필요 할것 같습니다. 혹시 쉬운 방법은 없나요? - [이승한]
"사용자 정의 데이터 타입의 포인터를 사용하기 위해서는 상당한 노력이 필요할 것 같습니다" - 어떤 뜻인지? 힘들었던 예를 코드로 써주면 더 명확할 듯.~ --[1002]
- STL/list . . . . 7 matches
* iterator 를 이용한 순회는 containter에 공통점이다.
// for 에서 반복자 이용 순회
// while 에서 반복자 이용순회
cout << "for 문에서 반복자 이용 순회" << endl;
cout << "while 문에서 반복자 이용 순회" << endl;
for 문에서 반복자 이용 순회
while 문에서 반복자 이용 순회
- SibichiSeminar/TrustModel . . . . 7 matches
1. 요새 간단한 검색 서비스''?''를 구현하고 있어서 중간에 루씬에 대한 내용에 혹했습니다. 나도 루씬 인 액션을 볼까...
1. TrustModel에 대한 것과 별개로 프리젠테이션 한 것도 정말 중요한 내용이라 오늘 온 새내기분들이 잘 기억하고 계셨으면 좋겠습니다. 버전 관리의 필요성이나 유용함에 대해서는 직접 느껴봐야 와닿을거예요. ZeroPage에서 느낄 수 있는 기회를 마련하도록 하겠습니다. - [김수경]
* 음.. 어려운 내용이었습니다. 추상적으로 이해하고 끄덕끄덕... 견문이 좁은 탓이겠지요. ㅜㅜ 뒷부분은 재밌었습니다. 지난 주에 언급했던 커뮤니케이션의 실패와 관련이 있을지도... 버전 관리 얘기도 나왔는데, 그 부분이 궁금하네요. 그렇다 할만한 팀워크를 해본 적이 없어서요. 코드를 구역 별로 나눠서 동기화하는 방법이 적절할 것 같은데. 이런 일을 돕는 프로그램이 있는거죠? -_-; - [정진경]
* 세미나 주제가 참 놀라웠습니다. 페이스북을 이용해 관심사가 같은 사람들을 엮어주는 앱은 이미 나와있지만, 이건 일일히 사용자가 입력을 해야하는데, TrustModel은 프로그램이 알아서 다해주는것 같더군요. 지식이 얇아서 여기까지밖에 이해 못했습니다. 꺼이꺼이. 세미나 막간에 넣은 M-16인용 개발자-기획자-디자이너의... 뭐라고 해야하나요. 암튼 재밌게 잘 봤습니다. 삼위일체가 답이군요. 하하하하.. 정확한 커뮤니케이션은 정말 힘든것 같아요. 새내기 다운 새내기가 없다는 말씀을 자꾸 하셨는데.. 저 새내기 맞아요 ㅜㅠ C언어도 학교 오고나서야 처음으로 알았어요 ㅜㅠ - [고한종]
- TAOCP/BasicConcepts . . . . 7 matches
E2 단계에서 r ≠ 0 이므로 적용되지 않는다
다시 E2는 적용되지않고
=== 용어과 표기법 ===
I - 인덱스(the index specification). 값이 1~6으로 rI1~rI6에 있는 내용과 메모리 주소를 더함
M이 가리키는 메모리 셀로 점프한다. JSJ를 빼면 점프를 하면서 점프 명령어 다음 위치를 rJ에 저장한다. the comparison indicator를 이용하거나(JL, JE, JG, JGE, JLE, JNE) , 레지스터(JrN, JrZ, JrP, JrNN, JrNZ, JrNP)를 이용한다.
시프트 명령은 rA와 rX를 사용한다. SLA, SRA, SLAX, SRAX, SLC, SRC가 있다. M은 시프트하는 횟수를 나타낸다.
- TermProject/재니 . . . . 7 matches
void menu1() // 1번 메뉴 : 사용자가 지정한 과목을 입력순에 따라 화면에 출력함
void menu2() // 2번 메뉴 : 사용자가 지정한 과목의 성적순에 따라 화면에 출력함
cin >> select; // 서브메뉴를 출력하고 사용자로부터 입력받음
void sort(int i, int j) // 사용자의 선택에 따라 i, j 변수를 전달받아 정렬함
void prt_all() // 3, 4번 메뉴를 선택했을 경우 공동으로 사용하는 출력 함수
for (i = 0 ; i < 3 ; i++){ // 각 과목의 평균과 총 평균은 변수를 사용하지 않고
cout << sum_sub[i] / students << "t "; // 과목과 평균의 합계 변수를 이용하여 출력
- UnitTest . . . . 7 matches
보통 테스트 코드를 작성할때는 UnitTestFramework Library들을 이용한다. 각 Language 별로 다양한데, C++ 사용자는 ["CppUnit"], Java 는 ["JUnit"], Python 은 ["PyUnit"] 등을 이용할 수 있다. PyUnit 의 경우는 2.1부터 기본 모듈에 포함되어있다.
Q: 한가지 의문나는 점이 있어서 , 사용자가 임의로 생성할 수 없는(예를들면 Socket과 같은 시스템이 생성해주는 데이타 타입) 데이타 형이 파라미터로 있을 때는 어떻게 테스트 하는 것이 좋을까요?
A: Socket 이나 Database를 이용하는 경우에는 문제가 되겠죠. 그럴때 MockObjects를 이용하는 방법이 있었던걸로 기억하는데, 아직 실제로 제가 해보지는 않아서요. 대강 개념을 보면 MockObjects는 일종의 가짜 객체로 실제 객체가 하는 일을 시뮬레이션 해주는 객체입니다. 미리 MockObjects 를 셋팅을 해두고 해당 함수결과의 리턴 요구시에는 예측할 수 있는 데이터를 리턴하게끔 하는 것이지요. 나중에 본 프로그램에서 MockObjects들을 토대로 실제의 객체를 만든다.. 식의 개념으로 기억하고 있긴 한데, 저의 경우는 공부만 하고 적용해본 적은 없습니다. --석천
- UserPreferences . . . . 7 matches
사용자 등록 페이지 입니다. SeeAlso ["로그인하기"]
'''사용자 등록하기'''
* /!\ 웹상의 비밀번호는 안전하지 않습니다. 비밀번호는 평소에 쓰지 않는 것으로 사용해 주시길 바랍니다.
'''[[GetText(logout)]]'''을 누르면 쿠키가 지워지고, '''[[Gettext(Login)]]'''을 하시면 쿠키가 사용되며, 다른 곳에서도 같은 설정을 유지하며 사용하실 수 있습니다. 공공의 PC에서 [필명]이 도용되는 것을 막기 위해서 '''[[GetText(Logout)]]'''을 이용해 주시기 바랍니다.
- VoiceChat . . . . 7 matches
다자간에 프로젝트를 진행할때 같은 장소에서 작업을 하기 힘든 경우 음성채팅을 이용하면 그나마 숨통을 틀 수 있다. MSN 메신저를 비롯하여 음성채팅을 지원하는 여러 메신저의 경우 1:1 만 지원한다. 아래의 프로그램을 사용하면 다자간 음성채팅을 무료로 할 수 있다.
* KaZaA 의 개발진이 만들었다고 한다. 전 세계적으로 많이 쓰이고 한글화도 되어있다. PeerToPeer 기술을 사용했다. [http://web.skype.com/home.ko.html 홈페이지]
* 80 포트를 사용해서 회사같은곳에서도 사용할 수 있음.
* linux, mac, pocket pc 용 버전도 있다.
나중에 텀 프로젝트를 진행할때 메신저보다는 이것을 사용하면 좋을듯.
- Z&D토론백업 . . . . 7 matches
* 위키 스타일에 익숙하지 않으시다면, 도움말을 약간만 시간내어서 읽어주세요. 이 페이지의 편집은 이 페이지 가장 최 하단에 있는 'EditText' 를 누르시면 됩니다. (다른 사람들의 글 지우지 쓰지 않으셔도 됩니다. ^^; 그냥 중간부분에 글을 추가해주시면 됩니다. 기존 내용에 대한 요약정리를 중간중간에 해주셔도 좋습니다.) 정 불편하시다면 (위키를 선택한 것 자체가 '툴의 익숙함정도에 대한 접근성의 폭력' 이라고까지 생각되신다면, 위키를 Only DocumentMode 로 두고, 다른 곳에서 ThreadMode 토론을 열 수도 있겠습니다.)
현재의 ZeroPage 서버를 이용한다.
* 제가 이해하는 현상황 - 방금 ZP 위키 가서 몇 선배님들의 통합에 대한 글을 읽어 보았습니다.(어려운 위키를 거의 처음으로 제대로 사용한듯...-,-;;;) 그리고 여기 여러 글도 읽어 보았습니다.제가 이해하기로는 지금 상황은 (제 이해가 틀리다면 이야기해주세요) 고학번 선배님들 사이에서 의견차가 좀 있는 것 같아 보입니다. 이름 문제부터 시작해서 가장 기본적인 합치는 문제 까지... 서로에 대한 애착심이 강하다보니 의견차가 나는 것은 당연하다고 생각합니다. 그런데 정작 이야기의 주체가 되야할 00,01이 참여가 없어서 선배님들이 애 태우시는 듯 해 보입니다... 정말 죄송합니다.
데블스 게시판을 다녀오니 그게 아니었구요. 통합을 하자, 하지 말자란 내용이었네요. 허탈하군요. --이덕준
*제가 말씀드린 ''고학번이 주도적인 프로젝트 운영''이라는 것이 생각난건 99년에 과거 전시회 자료를 뒤져 볼때 였습니다. 전시회 참여 작품중에 무엇가 '대단한걸~' 하고 느끼는 많은 부분이 3학년과 4학년의 작품이고, 1,2학년의 작품이라면 3,4학년의 도움이 있는 작품들이 많았습니다. 위 글에도 잠깐 언급했지만, 인터넷과 함께 학생들이 접할수 있는 주제의 다양성 때문에 3,4학년 이라도 완전히 방향을 잡은 사람은 소수입니다. 하지만 분명 1,2학년에 비하여 그 질이 높아진 것은 분명하죠. 일단 고학번 혹은 고학년 주도적인 프로젝트의 의미는 단순히 고학년의 2명 이상의 프로젝트 활동이 좀더 활성화 되어야 한다는 생각에서 언급을 한것입니다. 군입대를 마치고 왔거나, 병특 이후에 복학한 회원들이 단체로 프로젝트를 추진하는것을 아직 보지 못했습니다. zp의 정모 토론에서 꾸준히 제기되어 왔던 이야기는 개인 스터디이고, 이중에 학회의 양에 부정적 영향을 끼치는건 1학년의 관리 부실과 개인 스터디이고, 2학년의 개인 스터디는 학회의 양과 질에 둘다 부정적 영향을 끼치는 것 같고, 학회의 질에 부정적 영향을 끼치는건 3,4학년의 개인 스터디이라고 생각합니다. 프로젝트의 용이성과, 개인 스터디에 해당하는 Semi project와 관심분야를 공개하는 개인 페이지로 다른 사람의 참여의 유도를 해서 Regular project로 만들어 나가려는 토양의 제공을 위해 현 zp에서는 위키를 통한 프로젝트 추진을 장려하고 있으며, 이제 저도 고학년에 고학번이니 쿨럭 열심히 해야죠. ^^;; '''주도적'''의 표현에서는 저학년이 고학년의 프로젝트 모습을 보면서 관심분야를 넓히고, 안목을 익히는데 있습니다. 물론 같이 하는것이 주도적의 마지막 종착점이고, 예를 들자면 현재 OS 만들기를 하고 게시는 선배님 위키에, 관심있는 00들이 접근하는것이라고 할수 있죠. -- 상민
* 동국대 전산학과 정말 인상 깊네요. 현재 zp의 모습이 오는 사람 막지않고 가는 사람 잡지 않는다 식입니다. 현재 학회로 끌어들이는 공식적인 절차가 없고 지금까지 확실히 복학생에 대한 포용에 대한 방법에 대한 의논이 없었습니다. 말씀처럼 2/3/4학년도 동시에 회원 모집에 하거나, 관심있는 사람들의 서슴없는 참여의 유도를 만들어 나가는것이 좋을것 같은데, 그럼 최소한 말씀하신 공식적인 홍보가 지금의 올해 정도에 좋다고 생각합니다. 일단 단순히 기초적인 홍보활동으로 사람이 모이는걸 지켜보아야 할것같고(이후 공식화 시키는 방향으로), 시점은 학기초에 한번과, 현재 00,01들이 계획하는 위의 계획 대로 여름방학때 밤샘 세미나가 계획되어 있는데, 여름 방학전에 그러한 홍보 전략을 통해서 밤셈세미나에 전체는 아니라도 최소한 절반은 참가하여 포용하는 방법 정도가 생각나는데요. 고학번이 많아져야 더 재미있어 질꺼 같은데. --상민
- ZeroPageMagazine . . . . 7 matches
어떤 식으로 시작해야 할까요? [유쾌한이노베이션]에서 읽은 내용을 한 번 실험해보면 재밌겠다는 생각을 합니다. 여러 팀으로 나눠서 ZeroPageMagazine의 프로토타입을 만드는거지요. 프로토타입은 완성품이 아니기 때문에, 한 팀에서 여러가지 프로토타입을 만드는 것이 전혀 문제될 것이 없습니다. 오히려 권장할만한 일이죠. 그렇게 프로토타입을 모아 놓고, 좋은 부분을 골라서 합치는 과정을 반복할 수 있을 것입니다.
''(전략)프로토타입이란 것에 맞추어 나간다는 느낌을 덜 받게 되니까 더 효율적일 것이라고 생각합니다. (후략)'' --[구자겸]이 쓴 윗글 인용
프로토타입을 만든다는 것은 말 그대로 '시제품'을 만드는 겁니다. 해당 작업을 완벽하게 하기 전에, 무언가 내가 올바르게 하는 일인건지 리허설, 혹은 실험용 간단한 모델을 만드는 작업을 이야기하죠. 건축으로 친다면 건물 만들기 전 모델을 만들고 선풍기 바람 돌려서 안무너지나 알아본다던지, 혹은 PDA 프로그램을 만들기 전에 PDA 종이 모형을 만들고 그 안에 스크린을 종이로 구성해본다던지 등을 예로 둘 수 있겠습니다.
제가 선전부의 pop지의 발행과정에 대해 설명하겠습니다. 먼저 모든 부원이 모여 잡지에 기재될 내용에 대한 토의를 합니다. (잡지의 디자인이나 형식 같은 것도 의견을 나눕니다.) 적당한 주제꺼리를 추스리면 부원들에게 그 주제를 주고 내용을 만들어오라합니다. 부원들이 내용을 구성해서 부장에게 건내면 부장은 그 내용들을 적당히 편집하여 정리하여 인쇄소에 가서 인쇄를 합니다. --[강희경]
- bitblt로 투명배경 구현하기 . . . . 7 matches
우선 앞으로 사용될 mask에 사용될 DC를 만들어 봅시다.^^
bitmap_mask=CreateBitmap(size_x, size_y, 1, 1, NULL); //mask로 사용할 흑백 비트맵을 생성합니다~!'ㅇ')/
배경으로 사용될 색(RGB(255,0,255))이외에는 모두 검은색으로 만들어 주었습니다.^^
배경으로 사용되는 색은 흰색이 되었구요.^^ 그러니까 결과는..
AND연산을 사용했어요.^^
현제 사용중인 소스의걸 조금 변형해서 복사한터라.^^ 실수가 없으면 좋으련만..
- eXtensibleMarkupLanguage . . . . 7 matches
[SAX] : XML을 읽어가면서 발생하는 이벤트에 기반한 파서. 메모리의 사용량이 적다.
* [http://xml.80port.net/bbs/view.php?id=xml&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=26 VC++에서 msxml 사용]
* XML은 정말로 굉장히 강력하다. 덕분에 톰캣을 위시한 많은 애플리케이션이 셋업 파일로 XML을 활용하기 시작했다. BUT 크리티컬한 부분에 XML을 소통 데이터로 이용하게 될 경우 해당 부분이 그 프로그램의 performance critical path 가 되는 경우가 발생한다.
* DTD로 검색하다 여기로 왔네요ㅋㅋㅋ 예전에 쓰신 것 같아서 지금은 아시는 내용이겠지만 나중에 다른 분들이 이 페이지를 보실 수 있으니 시간을 건너뛰어 댓글 답니다~ DTD는 Document Type Definition의 약자로 XML 문서 작성을 위한 규칙을 기술하는 형식입니다. valid XML Document의 경우 well-formed XML Document이면서 XML에서 사용되는 원소 이름이 해당 문서에 대한 XML DTD나 XML Schema에 명세된 구조와 합치되어야 한다고 하네요. 이 내용에 대한 수업을 들으며 씁니다ㅋㅋㅋㅋㅋㅋㅋ - [김수경]
- 데블스캠프 . . . . 7 matches
= 데블스 캠프 홍보용 멘트 =
2002년을 시작으로 매년 교내에서 6월말~7월초에 5일간 연속으로 진행하는 컨퍼런스 입니다. . 교내 홍보를 통해 Zeropage 회원 뿐만 아니라 Zeropage 외의 학생들에게 컴퓨터공학의 기초적인 주제부터 현재 트렌드까지 강의 내용을 함께 공유하는 자리입니다. Zeropage의 현재 활동하는 재학생뿐만 아니라 1기 선배님부터 참석하여 발표를 진행합니다. 링크([https://wiki.zeropage.org/wiki.php/데블스캠프])에 간략한 설명이 포함되어 있습니다
== 데블스 캠프 새내기 홍보용 멘트 ==
<p>'나는 1학년인데 저기 가면 알아듣지도 못하는 것 아닌가?' 하는 걱정은 접어두어도 됩니다:) 상당수 세미나는 컴공에 관한 기초지식만 있으면 흥미롭게 들을 수 있는 분야와 내용으로 구성되어 있습니다.
(<a href="https://zeropage.org/notice/61771">데블스 공지</a>에 가시면 어떤 내용이 준비되고 있는지 볼 수 있어요!)</p>
나우누리 Polygon (전 ZeroPage 게시판) 99년 9월 4일 승태형 글에서 인용했습니다. --1002
같다. 밤새기는 여러가지 부작용을 낳는다. 피곤하고, 몸도 축나고, 소화도 잘
- 데블스캠프2004/금요일 . . . . 7 matches
설마 이거 PT하셨나요? PT의 내용이 제 뒤통수를 때리는것 같군요.
Java의 활용분야
는 더 슬퍼집니다. 보여주신 처음 예제가 거의다 ActiveX 구현물입니다.국내 Rich Client 분야는 전부 ActiveX에 주고 해외는 [Flash]에게 내주었습니다. 현재(2003) Java의 활용분야의 80% 이상은 applet이 아닌 서버 프레임웍의 J2EE와 모바일 프레임웍의 J2ME 입니다.
저는 발표를 못봐서, 미숙한지 모릅니다. 그러나 PT가 그대로 진행되었다면, 사실과 다른 내용은 충격적이군요. 다음부터라도 반드시 타인에게 감수를 받거나, 자신에게 납득할수 있는 내용을 담으세요. --NeoCoin
==== 이클립스 사용법 ====
* repaint() 메소드를 사용
- 데블스캠프2005/월요일후기 . . . . 7 matches
황재선, 문보창, 윤성만, 나휘동, 신재동, 이용재, 이동현,
딱딱한 내용이라면 유머를 최대한 활용해야 했는데 아쉽다. 사람들이 어려워한다고 강의자가 당황해서 준비한 내용을 건너뛰다 보니 오히려 더 이해가 안된 것 같아 아쉽다. 차라리 준비한 대로 설명을 해나가면 사람들이 이해하기 쉽지 않았을까?
기록을 종용하지 않았다. 들었던 내용을 기억하는 사람이 많을까?
구석진 곳에서 듣는 사람들은 아무래도 집중도가 떨어졌다. 피시실 구조도 한 몫하겠지만, 되도록 뒤쪽 컴퓨터를 사용하지 않도록 권장할 필요가 있다.
- 데블스캠프2010/넷째날/후기 . . . . 7 matches
* 자바스크립트가 C언어와 많이 닮은것 같아서 매우 인상깊었습니다. 하지만 저의 C언어 실력이 미숙하여 하는데에 많은 어려움을 겪으면서 많은 생각을 하게 되었습니다. 일단 기본적인 C언어의 문법과 선언하는 함수 등을 자세히 공부하고, 자바스크립트에서의 C언어의 활용 방법을 좀더 연구해야겠다고 생각했습니다. 그리고 자바스크립트를 통해 비쥬얼 스튜디오보다 좀더 편리한 프로그래밍을 할수있어 더 좋은 내용의 프로그램을 만들수있다는 것에 대하여 생각해 보았습니다. 앞으로 좀더 열심히 공부해야겠다고 생각합니다. - [양아석]
* 참 재밌었습니다. "쿠키와 세션"에 대한 내용도 조금 알 수 있었고 웹의 작동 원리를 알 수 있어서 좋았습니다. AJAX가 등장한 이유도 재밌었구요 ㅋㅋ 또 하나의 웹 페이지처럼 보이지만 실상은 여러 페이지를 include 한 것을 보고, "아 이런 원리였구나" 하고 깨닫게 되었습니다. 참 신기하고 재밌네요 ㅋㅋ C++0x도 역시 흥미로웠습니다. 새로운 문법들 중 &&를 이용한 우측값 참조, 이걸 들어보니깐 점점 C++은 접근하기 어려운 언어가 되어가는 듯한 느낌을 받았습니다... 하지만 저는 성능을 더욱 개선시킬 수 있다는 점에서 새로운 것을 알아 좋았습니다. - [박성현]
* 늦어서 제대로 강의를 듣지는 못했지만 C++0x가 어떤건지는 잘 알수 있게 된것 같아요. 아직 C 도 제대로 못하는 제겐 다소 어려운 내용이긴 했습니다만.. T^T - [김준영]
* 2시간을 가지고 말하기에는 많은 내용이었지만 나름 전달하고 싶을것을 많이 전달해줄수 있어서 다행이었습니다. - [안혁준]
* 서버 만들어서 돌리는거 재밌네요. 상당히 흥미로웠습니다. PHP 예제도 타이핑 한것도 재밌었습니다. 다만 DB 쿼리 날리는 것도도 같이 해봐서 그런지 DB 쿼리날리는걸 배운건지 PHP를 배운건지 헷갈려요 ㅋㅋㅋ 또 헷갈리는게 있었는데 HTML태그를 쓰면서 PHP를 사용했는데, 기본적인 태그들이 HTML 태그랑 똑같은건가요? 아니면 Java Script처럼 HTML 안에 들어가는건가요? 헷갈리네요.. - [박성현]
- 데블스캠프2013/넷째날/후기 . . . . 7 matches
* 코드 평가 받아보니 스스로 고칠 점을 알 수 있어서 좋았어용 - [장혁수]
* 클린코드에 관심이 많았는데 대략 어떤 내용인지 알게되었습니다. - [장혁재]
* 강성현 선배님과 조를 짠 덕분에 자바 자체에 대해서도 많이 배우고, 클린 코드라는 강의 내용도 제 코드 짜는 방식을 고치는 데에 좋은 강의였습니다. 그리고 무엇보다 한글의 아름다움을 절실히 느낀 시간이었습니다. - [원준연]
* 전체적인 진행도 그렇고 내용도 그렇고 지금 ZP에서는 보기 힘든 분야가 되어버린(...) 부분을 지원 선배가 센스 있게 다루어 주셔서 좋았습니다. 시간은 다소 촉박했지만 그래도 바쁜 상황에 비해 꽤 매끄럽게 진행을 하시지 않았나 싶습니다. 다만 좀 아쉬운 점이라면 jenkins나 sonar를 쓰는 법도 혹시 다루지 않을까 싶었는데 그 부분이 없었다는 점이겠네요... 개인적으로 관심이 있었는데 ㅠㅠ - [서민관]
* 개인적으로 이번 데블스에서 내용적인 측면에서는 가장 마음에 드는 세션이었습니다. 복잡하게 보일 수 있는 안드로이드의 내부 구조를 간결하게 설명해 주셔서 알아듣기 쉬웠습니다. 그리고 .class의 disassemble도 예전에 자바 바이트 코드를 잠깐 본 일이 있어서 무슨 이야기를 하는지 이해하기 쉬웠습니다. 다만 1학년들이 듣기에는 좀 어렵지 않았을까 하는 생각이 들긴 했습니다. - [서민관]
* 게임을 만들어서 인터넷에 그냥 배포하면 안된다는 말에 크나큰 충격을 당한 1인이였습니다. 허허...물론 새션전에 들었던거였지만 이 내용에 덧붙혀서 더 많은 법적 절차를 밟아야 한다는걸 알고 또 맨탈이..허허...슬프면서 유익한 세션이였습니다. - [김윤환]
= 정의정 / MVC와 Observer 패턴을 이용한 UI 프로그래밍 =
- 데블스캠프계획백업 . . . . 7 matches
* NoSmok:ApprenticeShip 모델을 적용해서, 처음에는 선배 주도로 프로젝트를 하나 하고, 다음에는 조금씩 후배가 안으로 들어오게 하고, 선배는 바깥으로 빠지는 것도 좋습니다. 이 NoSmok:ApprenticeShip 에는 전통적으로 두가지가 있습니다. 재단사들의 경우, 사람이 새로 들어오면 맨 마지막 마무리 일(예컨대 단추달기 등)을 맡깁니다. 그러면서 경험이 쌓이면 공정을 역으로 거슬러 올라오게 합니다. 즉, 이번에는 단추달기도 하고, 주머니 달기도 하는 겁니다. 다음에는 단추달기, 주머니 달기, 팔 만들기처럼 하나씩 늘려 갑니다. 어느 시점이 되면 자신은 Journeyman이 되고 작은 일은 새로 들어온 Apprentice에게 넘기고, 자신은 나름의 확장을 계속하죠. 반대로 처음 공정부터 참여를 시키는 방법(항해사)도 있습니다. 중요한 것은 "주변"(덜 중요한 것)에서 "중심"(더 중요한 것)으로의 점차적 확장이지요. 이렇게 되면 견습공은 매번 "제품의 완전한 개발 과정"을 관찰할 수 있고, 어떻게든 도움이 되는 일을 하며, 그 참여의 영역을 넓혀나가게 되어, 종국에 가서는 전 개발 과정에 참여할 수 있습니다. 장난감 문제(Toy Problem)의 한계를 벗어나는 길이지요. --JuNe
''변화를 두려워하면 영원히 개선되지 않습니다. 하지만 어찌되건, 이 캠프를 할 당사자(가르치고 배울 사람들) 이외의 사람들의 입김이 크게 작용하는 것은 여러모로 바람직하지 못하다고 봅니다. 선배들의 이야기를 참고는 하되, 결정은 당사자들(특히 직접 가르칠 사람들)이 자신의 주관을 갖고 하길 바랍니다. 필요하다면 몇가지 실험을 해볼 수도 있을 겁니다. (그리고, NoSmok:ApprenticeShip 방식은 수천년의 시행착오를 거쳐 인류와 함께한, 우리 DNA에 코딩된 방식입니다. 이 방식의 장점은 아무 기초가 없는 사람도 참가할 수 있다는 것이죠. 과거에 공식적인 교육기관이나 별도의 책을 접하기 힘든 상황을 생각하면 오히려 당연하죠.) --JuNe''
* 변화를 두려워 하지는 않지만 무턱대고 마구 바꿔대면 망할수 있다는것은 감안해야 할겁니다. 마찬가지로 NoSmok:ApprenticeShip 모델이 어떤걸 말하는지 알지는 못하네요. 당연히 당사자가 세미나는 어떻게 할것인가 등등은 당사자들이 정해야 할 문제이고 어쩌면 제가 그 당사자중 하나가 되어 버릴지도 모르겠네요. 저역시 기존의 ["데블스캠프"]( 실제로는 데블스가 신입회원을 뽑을때 썼던 방법입니다. 95년에 시작했으니 벌써 8년째를 접어드는군요..) 를 여러차례 해왔고 기존 방법의 장점을 누구보다 잘 피부로 느끼고 있습니다.위에서 간략하게 설명해 놓은 내용을 볼때 기존의 방식이 위에서 제시한 방법보다 훨씬 효과적이라고 장담할 수 있습니다. 그건 수년간 기존의 방법을 수행해온 경험자로써의 확신입니다. -태호-
* 최근까지 했던 세미나(??)에서 했던게 구구단, 소트, 피보나치 수열, 팩토리알, 스택, 큐 등 기본 문법과 기초 자료구조를 익히기 좋은 문제들이었거든요. 대다수가 잘 짜던것 같습니다. 기본 문법은 확실히 다져진 것 같으니 뭔가 좀 응용성 있는것을 해봐도 된다고 생각합니다. --인수
* 제 생각에는 꼭 한가지 방법을 모든 신입 회원들에게 적용할 이유는 없다고 생각합니다. 아직 기초가 부족하다 싶은 회원, 좀 프로그래밍에 익숙하다 싶은 회원을 각자 다른 방법으로 캠프를 진행해도 괜찮다고 생각합니다. (작년에 MFC스터디 벽돌깨기팀과 오목짜기 팀처럼 익숙한 정도에 따라 방법을 나누는 거죠..) - 상협
''PairProgramming 이 그 방법으로서 적합하다고 생각하지만, 이 또한 '선'을 잘 맞춰야 하겠죠. 개인적으로는 약간의 전략이 필요하다고 생각합니다. 요즘 하고 있는 Pair의 경우 초기에 대해서는 가급적이면 알고 있는 내용을 천천히, 자세하게 가르쳐주려고 하는 중입니다. 일단 Todo List 를 주석으로 달아놓고, (또는 연습장 등) 제가 먼저 기본 틀이 되는 부분을 플밍을 합니다. 그리고 나머지를 후배들이 플밍하게끔 하고. 그리고 이 주기를 좀 짧게 가져보려고 하고 있죠. (20 - 30분) 그리고, 차차 그 주기를 늘려 보려는중. 너무 선배가 오래잡고 있어도 후배들은 넋놓고 구경하고, 너무 후배가 오래잡고 있어도 완성되는 정도가 오래걸려서 Feedback 이 오는 시간이 오래걸리면, 또한 지쳐하는 듯. --석천''
* 학교를 다니면서 혼자서는 거의 공부하지 않을만한, 그러나 중요한 것들(see also FocusOnFundamentals). 앞으로 학교생활에서 체험하기 힘든 것들. 학교를 졸업할 때까지 유효한 지식으로 남아있을만한 생명력이 긴 것들. 학교생활 동안 공부, 프로그래밍에 영향을 많이 끼칠 메타 수준이 높고 늘상 하는 것들. 사고하는 방법. 프로그램을 만드는 방법. 아마추어 아이디어 맨은 "아이디어"를 만들고, 프로 아이디어 맨은 "아이디어를 대량으로 생성해 낼 수 있는 구조와 과정"을 만들어 낸다고 합니다 -- 프로가 만든 아이디어는 엄청난 양의 아이디어를 자동 생산해 냅니다. 제가 학교를 다닐 때 "프로그램을 생성해 낼 수 있는 구조와 과정"을 선배에게서 배웠더라면 얼마나 좋았을까 하는 생각을 자주 합니다. 예를 들어, 이메일 주소를 찾는 RE를 "답"으로서 가르치거나, 혹은 무작정 시행착오를 거치면서 그 답을 찾으라고 종용하거나 하는 것보다는, 그런 RE를 효율적이고 손쉽게 생성해 낼 수 있는 과정과 인식적 도구를 가르쳤으면 합니다. --JuNe
- 몬테카를로법 . . . . 7 matches
[몬테카를로법]의 역사는 멀게는 확률론의 개척자들이었던 도박사들이 여러 번의 임의추출을 바탕으로 특정한 카드 조합이 나올 확률을 직접 계산했던 중세까지 거슬러올라갈 수 있습니다만, 진정한 의미에서의 몬테카를로법을 처음 사용한 사람은 현대 [컴퓨터] 구조의 완성자이기도 한 천재 수학자 [폰 노이만]으로, 그가 참여했던 [맨해튼 프로젝트](미국의 [원자폭탄] 개발 계획)에서 중성자 확산 시뮬레이션에 처음 사용한 것으로 알려져 있습니다.
간단하면서도 유명한 예로, 몬테카를로법을 이용한 파이(∏)의 계산법이 있습니다.
이와 같이 몬테카를로법은, 많은 수의 실험을 바탕으로 통계 자료를 얻어 그 자료로부터 역산하여 어떤 특정한 수치나 확률분포를 구하는 방법입니다. 특성상 통계자료가 많을수록, 또 입력값의 분포가 고를수록 결과의 정밀성이 보장된다는 것을 알 수 있습니다. 때문에 컴퓨터를 이용하여 시뮬레이션이 행해집니다.
몬테카를로법의 특징으로는, 우선 적용하기 쉽다는 점이 있습니다. 실제로 파이의 값을 정확히 구하기 위해서는 무한급수에 관한 지식과 오차범위에 관한 지식 등 다양한 배경 지식을 바탕으로 올바른 알고리즘을 만들어 그 값을 계산해야 하지만, 몬테카를로법은 그런 모든 절차와 관계없이 짧은 컴퓨터 프로그램 몇줄만으로 쉽게, 비교적 정확한 수치를 얻을 수 있습니다.
이런 장점은 이론적 배경만으로는 계산하기 어려운 수치들 - 예를 들면 복잡한 형태를 가진 표면에 빛을 비추었을 때 반사광의 분포, 복잡한 분자계의 화학적 특성 분석, 핵융합로에서 중성자 빔이 반응에 미치는 영향 등 - 을 직접 구할 필요가 있을 때 빛을 발합니다. 때문에 컴퓨터를 이용한 분석이 발달한 최근에는 거의 모든 과학과 공학 분야에 걸쳐 몬테카를로법이 광범위하게 사용되고 있습니다.
- 부드러운위키만들기 . . . . 7 matches
저같은 경우 위키에 친숙해지게 된 계기가 1학년때 상민이형, 석천이형이 이끌어준 프로젝트를 위키상에서 하다가 친숙해졌습니다. 분명 친해지는데는 시간이 좀 걸렸습니다.(한 3~4달 정도) 한번 친해지니깐, 휴가 나와서도 맨날 가봅니다. -_- 1학년 2학기때쯤에 윗 학번이 프로젝트를 하나 저렇게 이끌어 주면서 자연스럽게 위키를 사용하게 하는것도 괜찮을거라 생각합니다. 그리고 보면 제로위키 페이지중에 공개/비공개 설정을 하게 만든다면 구지 개인위키를 따로 돌리지 않고 제로위키안에 자신만의 개인위키를 만들 수 있고 그렇게 하면 자신의 개인 위키에 자주 오다 보면 접근성도 높아 지지 않을까하는 생각을 해봅니다. - 남상협
제친구가 처음으로 위키를 접하게 되었을때 첫 느낌으로 딱딱하다는 느낌을 받았다고 하더군요. 어떤사람들은 이곳 위키에서 사람들이 이야기 하는것을 보면 무서워 보인다는 이야기도 하고요. 문제는 이런 사람들이 대부분의 사람들이 비슷하게 느낀다는 것입니다. 대부분의 사람들이 위키에 적응하지 못하는 이유도 이런게 아닐까요?? 좀더 부드럽고 사용자에게 쉽게 다가갈 수 있는 위키의 방향은 없건가요? - [이승한]
도구로서의 위키에 대해 익숙하지 않아서일겁니다. 처음 접하는 이들에게 위키위키라는 매체는 문화라기보다는 단지 사용하기 어려운 도구에 가깝게 느껴질 것입니다(실제로는 무척 사용하기 쉬운 도구임에도 불구하고 말이죠). 딱딱한 느낌을 받는 것은 이곳에서 주로 다루는 내용이 컴퓨터 공학과 관련된 전공지식 위주가 아니어서일까 생각합니다. [임인택]은 이번위키설명회때 [짝위키]를 해보는 것을 제안합니다. 한 사람이 위키를 자유자재로 항해하며 페이지를 수정하면(PairProgramming으로 치면 드라이버가 되겠죠), 나머지 한사람은 드라이버가 위키를 어떻게 사용하는지 살펴보고 드라이버가 행하는 행위에 대해서 질문(일종의 옵저버)하며 위키에 대한 감을 익혀갑니다. PairProgramming 과 마찬가지로 일정한 시간간격을 두고 드라이버와 옵저버의 역할을 바꿉니다. - [임인택]
[부드러운위키만들기]와 '위키의진입장벽낮추기'의 내용이 비슷하여 페이지를 합쳤습니다. - [임인택]
- 상협/프로젝트관련 . . . . 7 matches
== 돌아온 용가리 ==
* 이것도 용가리와 마찬가지로 OpenGL을 익힌걸 연습도 할겸 해서 짰다. 그런데 생각해 보면 이걸 짜려고 OpenGL을 익혔던거 같기도 하다.
* 만약 짜본다면 내가 제일 좋아 하는 AI 오목을 Java로 TDD를 사용해서 한번 다시 짜볼까 한다. 인공지능을 사람이 못이기게 무진장 향상 시켜서.. +_+
''방화벽을 자유 자재로 넘나들기 위해서는 80번 포트 위로 올라가는게 좋고, 그렇게 하려할때 가장 손쉽게 할 수 있는 기술은 SOAP을 이용하는 것이니, 이를 고려해봄이 어떨까 하는데. socket을 이용할 경우 80번 포트에서 웹서버가 돌아가면 '''말짱꽝'''으로 방화벽을 통과하기는 어려운일이고.. 그럼 SOAP은 어떻게 쓰느냐? 가장 손쉽게 접근할 수 있는것으로는 [http://java.sun.com/xml/jaxm/index.html JAXM]을 추천함. 그럼 어떻게 돌리는가? '''RTFM''' '' :) --이선우
* 소켓으로는 80번 포트 위로 올라 가는것 보다 SOAP을 이용하는게 더 좋은가 봐요?
''뭐.. 가..강하게 키우죠; RPC 를 이용하는 Messenger Project; --석천''
- 새싹교실/2011/學高/2회차 . . . . 7 matches
* 3+5=8E+0 를 출력하는 프로그램을 작성하라. 단, %d,%e를 반드시 이용해야 한다.
=== 가르친 내용(fact) ===
=== 배운 내용(fact) ===
=== 배운 내용(fact) ===
집중이 잘 되지 않았습니다... 사실 배운 내용들이 제대로 기억나지않습니다~
=== 배운 내용(fact) ===
*3+5=8E+0 를 출력하는 프로그램을 작성하라. 단, %d,%e,를 반드시 이용해야 한다.
- 새싹교실/2011/무전취식/레벨2 . . . . 7 matches
7개 과목중에 반장이 2개 둘다 다른과 전공들. 가산점. 팀프로젝트들이 나오기시작했어. 3개. 시간표가 빡세져요. 어제 머리를 잘랐어. 6천원에 9시이후에 동네미용실에서 자르지 마세요. 와우 이번주 끝냈음. 나도 살아야지.
이소라 : 수요일날 선린 재수하는 친구 만남. 밥먹고 빵먹고 커피먹고 얘기함. 6시부터 10시까지. 공부하기 싫다는 친구. 선전 MT 선전송했음. 2등했음~~~ 여학우 2명이라 ㅋㅋ 'ㅅ'//// 선배님들 왔는데 06들 왔다. 주요한, 임지현, 이태양, 박진용 술게임 했는데 11은 한명도 안죽음 ㅋㅋㅋㅋㅋ 근데 06 오빠들은 서로 싸우고 술로 죽임 ㅋㅋㅋ 어제 진영이가 나 버렸음 ㅠㅠ 숙제하러 6피 갔는데 숙제를 한 30분 안했는데 숏다리 최연호 오빠가 밥사준다고 해서 나갔음. 성진이랑 근데 술먹음. 먹고 또 2차감. 2차에서 치소맥 먹음. 집에가서 취중 선대 과제했음ㅋㅋ. 잘안됨. 다 못했음 ㅠㅠ
== 수업 내용 ==
* 변수는 이름이 두개다! 하나. 사용자가 지정해주는 변수명. 둘. &변수명 을 하면 나오는 주소값.
* 오호~ 조금 난이도가 있지? 다음주에는 2주간 배운 내용을 복습하는 실습시간이 될것같아. 꽤 어려운 과제가 기다리고 있을지도. 신기할껄 ㅋㅋ -[김준석]
* 오늘은 새싹시간에 제어문이란걸 배웠습니당.. 재미없던건 아닌뎅 사실은 졸렸어요 그래서 쫌 졸았던거 같아서 죄송해요...ㅋㅋㅋㅋㅋㅋ사실 뭐여찌 그...int?가 -2의31~2의31-1 이라는게 잘 이해가 안되어요 히힝ㅇ...제어문은 재밌지만 좀 어려운 것 같습니다ㅇㅏ.. 구구단을 어떻게 짜지요? 우어엉 그걸 짤 수있다면 제가 자랑스러워 질 것 같아요. 과연 자랑스러워 질 수 있을지...또 팀플실도 첨 들어가봐서 좋았어용 우와앙~~~그리고 롤먹는 시간은 즐거웠어요♥♥ -[이진영]
* 죄송해요...ㅠ_ㅠ 컴퓨터할수있는상황이안되서 지금써여 으앙 ㅠㅠ 일단 공대 팀플실 짱좋았어요 ㅋㅋㅋㅋ컴터만있었으면 공강시간에 신청해서 가있었을지도.... 이걸 노리는 애들이 많아서 컴퓨터를 안놓았나봐요..그리고, if문, while문등등 제어문 배웠어요!! 오랫동안 안해서 가물가물했던 부분인데 수업하기전에배워서 다행이에요 흐히. 정말 도움이되는거같아용♡ 롤 맛있었어요!!!!!!! 롤먹을때 한 그.... 수수께끼..? 수수께끼입니까 ㅠㅠ? 하여튼..그거 재밌었어요 ㅋㅋㅋㅋㅋㅋㅋㅋ아 알아가는재미 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ - [이소라]
- 새싹교실/2011/무전취식/레벨4 . . . . 7 matches
이소라 : 화요일에 새싹끝나고 창설했어요. 전 한게 없어요 ㅠㅠㅠㅠㅠㅠ 잉여잉여 ㅋㅋㅋ 제가 뭘할까요 했더니 공부나 하랬음 ㅠㅠ 배고팠는데 성진이가 주먹밥사줘서 맛나게 먹었어요 'ㅅ'/ 금요일에 하늘이 생일이어서 1교시 물리시간에 걍 케잌사고 여유롭게 지각을 햇음. 토요일에 이화여대갔음. 친구를 만나 거기 소극장에서 영화를 봄. '파수꾼'이란 영화였는데 그 영화를 본 이유가 선린고여서 봤어용. 재밌었음. 그날 배우들 인사하는 날이라 배우들이랑 얘기하고 포스터 받아옴. 그걸 보고 밥을 먹으러감. 간데마다 사람 많아서 두시간 돌아다니고 쌈밥먹고 끝냄'ㅅ'
== 수업 내용 ==
* http://winapi.co.kr <- 사이트에 대해 설명해주었습니다. 처음에 매우 유용한 사이트지요!
* 이소라 때리기 게임을 만들어보았습니다. 그 내용 순서는 ' 시작 -> 내체력, 이소라 체력 설정 -> {현재 상태 출력 -> 내 공격 선택,이소라 공격 선택 -> 공격 -> 상태 확인}(반복) -> 종료.' 였습니다. 이게 숙제로 나가는거죠?
* 수업이 길긴 했는데ㅋㅋ 많은 것들을 배웠고 제어문을 활용해서 간단한 게임을 만드는 과정이 참 재미있었어요. 게임 만드는게 어려워보이긴 했지만 그래도 익숙해지면 편할 것 같아요. 요즘 중간고사 기간이라 시간에 쫒기기 시작했어요 ㅜㅜ 게임 만들기가 숙제인데 중간고사 공부 하느라 만들 시간이 좀 없을 것 같지만 중간중간 비는 시간을 활용해서 C언어 중간고사 준비와 간단한 게임 만들기를 할 계획입니다~! -[서원태]
* 히히 이번주는 연산자와 함수를 배웠습니다! 소라때리기 게임도 만들었구요...ㅎㅎ 3시간이나 했는데 생각보다 그렇게 힘들진 않았어요 배울때는요!...ㅋㅋㅋ끝나고 팀플하러 갔는데 골아 떨어졌었어요...ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 아무튼..연산자는 수업시간에 이어 두번째 배우는거라 괜찮았어요 히히 함수는 쫌 어려웠던거 같아요..기억이 잘 안나용....ㅎㅎ...ㅋㅋㅋㅋ 게임 만들기 할 때 ㅋㅋㅋㅋ첨에는 이해가 갔는뎅 점점 잘 안 됐어요...ㅎㅎㅎㅎ....ㅋㅋㅋㅋ 그래도 생각보다는 괜찮은거 같아요ㅠ.ㅠ....상대적으로...절대적으로는 아니에옄ㅋㅋㅋㅋㅋㅋ이해해보도록 노력하겠슴당 ㅠㅠ -[이진영]
- 새싹교실/2011/씨언어발전/5회차 . . . . 7 matches
== 수업내용 ==
* 배열을 사용하는 이유, 배열의 장점
* 배열을 사용한 학생의 점수계산 프로그램
배열을 처음으로 배워 사용법을 익혔으며 배열을 사용하던중 모든 값들을 초기화 해주어야하며
배열을 이용하여 문자열을 출력하려 할땐 주어준 배열 공간보다 하나 적은 문자열을 입력해야함을 알았다. 또, 과제를 하며 막혔던 부분을 선생님께 배우며 해결해나가 좋았다. :):)
그리고 array를 이용하여 학생들 시험점수의 총합과, 평균, 모든학생의 총합과, 총평균을 구하는 코딩을 해보았다. 또한, 소수(prime number)를 구하는 함수를 배웠다.
- 새싹교실/2012/ABC반 . . . . 7 matches
=== 수업내용 ===
Virtual Box를 이용하여 우분투를 설치하는 방법.
virtual box의 새로만들기에서 우분투 가상머신을 새로 만든다.(설정은 기본설정이면 되되 메모리 용량은 1024MB로 한다)
2. VS2010사용방법
2주차 수업 내용도 한번 읽어 오면 좋겠습니다.
=== 수업내용 ===
=== 수업내용 ===
- 새싹교실/2012/열반/120402 . . . . 7 matches
= 수업 내용 =
* while은 수업 시간에 다룬 내용이라 짧게 설명했습니다. 위의 printstar를 응용한 실습을 진행했습니다.
= 다음 수업에 배울 내용 =
* while, do while 반복문과 재귀함수를 이용한 점찍기를 배웠습니다. -[권우성]
* 자잘한 문법오류들을 보니 실습이 자주 필요하다는 생각이 듭니다. 다음주부터는 새로운 내용보다는 기존 내용을 확실히 하고, 중간고사 준비도 약간 해줘야겠습니다. -[정진경]
- 새싹교실/2013/라이히스아우토반/3회차 . . . . 7 matches
= 수업 내용 =
== 내용 ==
* 입력을 위한 함수를 써야 합니다. C언어의 콘솔을 위한 입력용 함수는 이런것들이 있습니다.
puts("나(은)는 몸통박치기!!를 사용했다.");Sleep(TURN_GAP);
puts("나(은)는 튀어오르기!!를 사용했다.");Sleep(TURN_GAP);
* Can't Save가 떴을 땐 당황하지 말고, 작성한 내용을 클립보드에 보존한 뒤(Ctrl+C) 새로고침을 한 뒤 붙여넣고 저장할 것.
그리고 case를 이용하여 재밌는 게임을 실행해 보았다.
- 새싹교실/2013/록구록구/4회차 . . . . 7 matches
== 수업 내용 ==
//반복할 내용
* 저번 주차 과제를 전부 for 문을 사용해 다시 풀어보기
수업시간에 내가 printf를 사용할 때 for문을 사용하는 친구들을 봤었는데 직접 사용해보니 뿌듯했고 while문보다 보기 편하고 더 간편했다.:)
나도 이제 수업시간에 printf대신 for문을 사용해야겠다.
- 새싹교실/2013/양반/1회차 . . . . 7 matches
= 수업 내용 =
== 내용 ==
진행이 매끄럽지 못했고, 내용을 다루는데 있어서도 더 체계적으로 생각해야겠다는 느낌을 받음.
새싹 교실 첫 번째 수업을 마쳤습니다. 오후 두 시부터 진행하여 두 시간 동안 논스톱으로 진행하였습니다. 수업 전에는 긴장도 많이 하고, 잘 할 수 있을지 걱정이 많았는데, 일단 준비한 내용은 모두 한 것 같습니다. 다만 수업 내용에 있어서 단계적으로 맞지 않는다는 느낌을 크게 받은지라 다음 수업은 내용을 잘 구성해야겠다고 생각했습니다. 다음 수업은 여러 교재를 찾아보고 짜임새 있게 수업 내용을 준비해야 되겠습니다.
- 송년회 . . . . 7 matches
돼지방앗간에서 107000원, 베를린 3층 술집에서 2차로 61000원 총 168000원사용.
송년회 회비로 10만 9000원 수입. 사용.
== 연락 내용 ==
덧. 주소록에 변경내용 반영 해 놓았습니다. - [이승한]
몇몇 메일은 내용이 조금 다를수 있습니다. - [이승한]
그날 뒤풀이로 가기 전에 잠깐 이런 것도 해보면 좋겠습니다. 아이디어는 템플스테이에서 했던 유서쓰기 시간을 차용한 것입니다. A4용지 한 장과 펜을 나누어주고 (펜은 지참하는 사람이 많겠습니다만) 한 해를 되돌아보는 글쓰기를 해 봅니다. 단 시간은 너무 길지 않게 5분정도로 하고요. 그리고 사람들에게 자신이 쓴 그대로를 읽어줍니다. 템플스테이에서는 불을 전부 끄고 각자 촛불을 하나씩 켜고 이야기했는데, 그런 준비가 안 된다면 그냥 해도 좋겠습니다. --[Leonardong]
- 시간관리하기 . . . . 7 matches
DeleteMe) 영어로 쓰려면 HowToManagement... 류가 되려나. -_-; 개인적으로 그리 치열하게 살지 않는 사람으로서 이런 페이지 글 적는게 좀 그렇지만. -_-; 일단 화두 제공용. 질문하기위해 연 페이지라고 생각하시길. --["1002"]
비록 책을 쓴 저자인 스티븐 코비는 자신의 글을 스스로 실천하지 못했는지도 모르겠지만, 책 내용으로 보면 자기혁신,관리책의 기본 바탕이 되는 내용이라 생각된다. (단, 개인적인 생각으로는, 프랭클린 플래너는 안써도 될것 같다. 사람 스타일마다 다르겠지만)
시간관리 책들의 내용들은 뭐 거기서 거기이라는 생각이 약간 들지만. 이 책의 장점이라면, 자신의 구체적인 행동이 적혀있다는 점을 뽑고 싶다. 구체적인 아이디어들이 적혀있다. 학교도서관에 있다. 책 두께도 얇고, 간단하게 한두가지만 아이디어를 얻어서 실천해보고 또 해보고 하는 식의 접근도 좋을 것 같다.
어디까지나 책을 읽고선 직접 실천해야 하는 사람은 바로 자기 자신이다. 자신이 얼마만큼 책의 내용을 자신에 맞춰서 적용하려고 했는지에 대해서는 늘 생각해볼 필요가 있다. 離의 단계 이전에는 守의 단계가 먼저 아닐까 하는 생각을 해본다.
시간관리 책들을 보고 처음부터 거대 시스템을 만들어서 한꺼번에 자신에게 적용하려고 하는 사람들에게서, 소프트웨어 개발방법론인 XP 에서의 다음의 주문은 어쩌면 의외의 효과를 가져오는 것 같다.
- 실시간멀티플레이어게임프로젝트 . . . . 7 matches
너무 늦게 말씀드려 죄송하지만 혹시 토요일 오후에 하는건 안 될 까요? 학교 보강수업과 시험 때문입니다~~ -지용
시간이 되면 AspectOrientedProgramming을 현 프로젝트에 적용하는 방법을 알려드립니다.
제작할 게임은 컴퓨터 그래픽을 사용하지 않습니다. 게임의 목표는 화려하거나 중독성 있는 게임이 아니고, 상상력을 자극하고 즐거운 게임입니다. 복잡하지만 단순한 게임이 아니고, 단순하지만 복잡한 게임입니다.
actors/actresses: 황재선, 장창재, 나휘동, 문원명, [재동], 임민수, 박정훈, 김지용, [강희경], 곽세환, [노수민]
* 학과 전용의 멀티플레이어 게임(새로운 전통!)
등입니다. 여기에서 파이썬이라는 언어에 대해 얻는 것은 다른 것들에 비해 상대적으로 그다지 크지 않을 것입니다. 이번 경험은 어떤 언어이냐가 중요하지 않습니다. C++이나 자바를 사용할 수도 있다는 말입니다. 하지만 그렇게 하지 않은 이유는, 그런 언어들을 사용하면 "언어(혹은 라이브러리 API)"라는 문제가 더 커져서 소위 배보다 배꼽이 커지는 현상이 생기기 쉽기 때문입니다.
- 위키에 코드컬러라이저 추가하기 . . . . 7 matches
이 문서의 내용은 MoinMoin 1.0 부터 지원하기 시작한 Process 에 기반한다. 그래서 그 이하 버전에서는 불가능하다.
MoinMoin에 파이선용 코드 컬러라이저는 기본으로 들어있다. 그러나 자바나 C++용 코드 컬러라이저는 기본이 아니다. 그래서 MoinMoin:ParserMarket 에 가서 자바와 C++용 파서를 받아왔다. 그런데 이럴수가 코드블럭문안에서 파서 사용이 안되는것이다.
그런데 MoinMoin:ParserMarket 에 [http://bbs.rhaon.co.kr/mywiki/moin.cgi/ProgrammingTips_2fCStringFormat Example]이라 된 곳에서는 잘 사용하고 있는것이다...[[BR]]
그리하여 그 방법을 연구한 결과가 이문서의 내용이다..;;
- 이영호/nProtect Reverse Engineering . . . . 7 matches
제로페이지 위키에 글은 많은데 자료는 거의 없는 이유는 가다듬는 작업이 거의 안 일어나서라고 봅니다. 예를 들면 중복되는 내용을 담은 페이지, 관련된 내용인데도 서로 다른 이름과 분류 아래 저장된 페이지, 의미를 알 수 없는 이름을 가진 페이지, 너무 옛날 자료라서 이제는 의미없는 내용을 담고 있는 페이지 따위입니다. 자신이 만든 페이지는 누구보다도 글쓴이 자신이 잘 가다듬을 수 있을 것입니다. 때문에 자신이 만든 페이지부터 가다듬는 것이 좋은 정보를 많이 찾을 수 있는 위키를 만드는 지름길이라고 생각합니다. 더 좋은 방법이 있을까요? -- [Leonardong]
마비노기가 아닌 다른 nProtect를 사용하는 게임을 확인한 결과 소스에 포함되어 Exception Handling을 한다는 것을 발견하였다.)
업데이트 파일에서 host의 patch 주소를 내가 사용하는 eady.sarang.net/~dark/12/Mabi/로 고치고 여기에 파일 3개를 올리고 시도 하였더니
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를 실행시킨다.)
- 자유로부터의도피 . . . . 7 matches
* 신앙은 인류의 내적 관계나 내적 긍정의 표현일 수도 있고, 개인의 고독과 인생에 대한 부정적 태도에 뿌리 박힌 깊은 회의의 감정에 대한 반작용의 구성일 수도 있다.
* 감상 : 이책을 읽게 된것은 정말 행운인거 같다. 이책은 현대인의 문제점을 아주 날카롭고 정확하게 지적해주어서 지금까지 뭔가 뿌연 안개처럼 잘 알수 없었던 문제들을 파악하는데 많은 도움을 준다. 인생살이에 정말 많은 도움이 되는 책이다. 이책은.. 강력 추천 !, 특히 고등학교와는 다른 생활에 처음 접하는 대학교 1학년들은 꼭 읽어 봤으면 좋겠다는 생각이 든다. 음.. 솔직히 이책이 그렇게 자극적인 재미를 주는 것은 아니지만, 내가 명확하게 설명하지 못한것을 명확하고 면밀하게 분석해주는데서 오는 통쾌함 같은 것을 느낄 수가 있다. 이책에서 알게 된점은 자유라는 것이 분명 좋은것이긴 하지만 그것을 제대로 제어를 하지 못하면 자신에게 좋지 못한 방향으로 다가온다는 점이다. 그리고 그렇게 좋지 않은 방향으로 다가온 것들(무력감, 고독, 기타 등등)을 피하기 위한 임시 방편(자동 인형, 파시즘)으로는 자유를 제대로 향유할 수 없고, 오히려 자신의 자아를 말살 할 수도 있다는 점이다. 그때에는 오히려 자신의 자아가 다른 어떤 자아와도 다르다는 것을 인식하고, 그러한 자아를 유지하고 키워 나가야 한다. 내가 너무 단순화 시키거나 왜곡 시켜서 말하는거 같지만 내 의견을 말하자면, 자유가 오면 피하지 말고 있는 그대로 맞 받아치고 받아들여서 자신의 제어권 안에 두어야 겠다. 즉 자유가 자신의 주인이 되게 하는게 아니라 자신이 자유의 주인이 되어야 할 것이다. 그리고 여기서 자유를 제대로 향유하지 못한 영향으로 발생하는 새디즘이나 매저키즘등이 나왔는데, 이것도 상당히 흥미로웠다. 지금까지 잘 알지 못했던 내용인데 우리주변에서는 아주 흔하게 볼 수있는 것들이었다. 새디즘이나 매저키즘이나 둘다 자유로부터 도피의 수단이었다. 대충 감상을 적으면 이정도이다.
* 루터와 칼빈 사상의 특징은 인간은 사악하고 불완전한 존재이므로 인간의 의지와 노력은 소용이 없고 절대적인 신에게의 복종만이 최선이다라는 식이다. 이는 자본주의가 발전하기 위한 심리적인 준비를 시켰다. 자기의 목적이 아닌 거대한것의 목적에 자신을 복속 시키려는 심리적 매커니즘은 신 - 개인 관계에 있어서 적용 되었지만 이는 지도자 - 개인, 조직 - 개인 간에도 쉽게 전이될 수 있다.
* 민주주의 사회에서 자유로부터 도피하는 방법은 강제적인 획일화에 동참하는것이다. 우리는 주변 사람들과 다른것을 입거나 사용하면 불안감을 가진다. 다른 많은 사람들이 입거나 사용하는 그 집합에 포함될때 안정감을 느낀다.
* 여기까지 저자가 말하는 내용의 주지는 이렇습니다. "사람은 자유를 가지기 위하여 열망하기도 하지만, 사람은 종속받고 싶어하기도 한다. 고로, 사람의 마음에는 자유 뿐만이 아니라, 내면에서는 어떤 것이든지간에 그것에 종속받고 싶어하는 마음이 있다. (예 : 민주주의 / 군주정치, 사회주의)'
- 정모/2002.5.30 . . . . 7 matches
* PairProgramming 에 대한 오해 - 과연 그 영향력이 '대단'하여 PairProgramming을 하느냐 안하느냐가 회의의 관건이 되는건지? 아까 회의중에서도 언급이 되었지만, 오늘 회의 참석자중에서 실제로 PairProgramming 을 얼마만큼 해봤는지, PairProgramming 을 하면서 서로간의 무언의 압력을 느껴봤는지 (그러면서 문제 자체에 대해 서로 집중하는 모습 등), 다른 사람들이 프로그래밍을 진행하면서 어떠한 과정을 거치는지 보신적이 있는지 궁금해지네요. (프로그래밍을 하기 전에 Class Diagram 을 그린다던지, Sequence Diagram 을 그린다던지, 언제 API를 뒤져보는지, 어떤 사이트를 돌아다니며 자료를 수집하는지, 포스트잎으로 모니터 옆에 할일을 적어 붙여놓는다던지, 인덱스카드에 Todo List를 적는지, 에디트 플러스에 할일을 적는지, 소스 자체에 주석으로 할 일을 적는지, 주석으로 프로그램을 Divide & Conquer 하는지, 아니면 메소드 이름 그 자체로 주석을 대신할만큼 명확하게 적는지, cookbook style 의 문서를 찾는지, 집에서 미리 Framework 를 익혀놓고 Reference만 참조하는지, Reference는 어떤 자료를 쓰는지, 에디터는 주로 마우스로 메뉴를 클릭하며 쓰는지, 단축키를 얼마만큼 효율적으로 이용하는지, CVS를 쓸때 Wincvs를 쓰는지, 도스 커맨드에서 CVS를 쓸때 배치화일을 어떤식으로 작성해서 쓰는지, Eclipse 의 CVS 기능을 얼마만큼 제대로 이용하는지, Tool들에 대한 정보는 어디서 얻는지, 언제 해당 툴에 대한 불편함을 '느끼는지', 문제를 풀때 Divide & Conquer 스타일로 접근하는지, Bottom Up 스타일로 접근하는지, StepwiseRefinement 스타일를 이용하는지, 프로그래밍을 할때 Test 를 먼저 작성하는지, 디버깅 모드를 어떻게 이용하는지, Socket Test 를 할때 Mock Client 로서 어떤 것을 이용하는지, 플밍할때 Temp 변수나 Middle Man들을 먼저 만들고 코드를 전개하는지, 자신이 만들려는 코드를 먼저 작성하고 필요한 변수들을 하나하나 정의해나가는지 등등.)
하지만, 스스로 문제를 먼저 해결해보도록 하는 것은 초반에 확실히 장점이 되리라 생각합니다. 자기 스스로 문제자체를 인식하고 느끼지 못한 상태에서는 어떠한 '인상적인 대단한 내용' 도 일반 흘러가는 TV채널과 다를 바가 없게 된다고 생각.
* 회비 : 만원 - 업그레이드비 및 여러가지 비용
- 정모/2005.12.15 . . . . 7 matches
참가자 : 남상협, 이상규, 김정현, 황재선, 문보창, 김상섭, 이도현, 이선호, 나휘동, 이승한, 유용안, 김민경, 김태훈, 이형노, 송수생, 조현태, 허아영
* 모임이 길어지는 바람에 MT 장소나 정확한 날짜, 또 다음학기 학회비 어디에 쓸건지, PC실 관리에 대한 내용을 토의하지 못했는데요,
- 다음주 모임에 고학번 선배님께서 1,2학년을 대상으로 이시기에는 어떤걸 보면 좋을거라는 "참고용"조언 해 해주셨으면 해요 ^^
- [나를만든책장] 을 채워보기 좋은 기회일 것 같아요. 묻어 버리기는 아까운 아이디어죠! (게다가 책장 대용으로 제로페이지 사물함도 마련되어 있답니다.) - [Leonardong]
- 그거 좋은 아이디어이네요. . 제로페이지 전용 사물함을 개방하여 필요한 사람이 쓸 수있도록 사용하는 것도 괜찮을 것 같네요 ^^ 계획을 잘해서 실행해볼까요? 다음주 회의안에 올리도록 합시다. - [허아영]
- 근데 이용안은 누구지?? -_-;; - 인택
- 정모/2013.9.11 . . . . 7 matches
= 주요 내용 =
* 다양한 주제로 진행했던 OMS를 이제 학술적인 내용으로 진행하려고 합니다.
* 행사 참여비용이 인당 10만원이 넘는 경우, 그리고 단체 지원금액이 20만원이 넘는 경우, 회의를 통해서 지원 여부를 결정.
* 기존 정모 때 공유하는 방식이, 내용면에서 조금 부족하다고 판단됩니다.
* 아두이노 : 아두이노 관련 서적도 보유중입니다. 아두이노를 이용한 스터디를 계획하고 있다.
* 키넥트 장비 - Unity 스터디에서 사용할 예정입니다.
* Nexus 7 : 현재 GDG 해커톤 대비를 위해 사용중입니다.
- 졸업논문/서론 . . . . 7 matches
이제 많은 사람의 입에 오르내리는 웹2.0이라는 개념은 오라일리(O'Reilly)와 미디어라이브 인터내셔널(MediaLive International)에서 탄생했다.[1] 2000, 2001년 닷 컴 거품이 무너지면서 살아남은 기업들이 가진 특성을 모아 웹2.0이라고 하고, 이는 2004년 10월 웹 2.0 컨퍼런스를 통해 사람들에게 널리 알려졌다. 아직까지도 웹2.0은 어느 범위까지를 통칭하는 개념인지는 여전히 논의 중이지만, 대체로 다음과 같은 키워드를 이용해 설명할 수 있다. 플랫폼, 집단 지능, 데이터 중심, 경량 프로그래밍 모델, 멀티 디바이스 소프트웨어.
이 가운데 경량 프로그래밍 모델을 적용한 웹 기술이 계속 발전해가고 있다. 웹2.0 사이트는 Adobe Flash/Flex, CSS, 의미를 지닌 XHTML markup과 Microformats의 사용, RSS/Atom를 사용한 데이터 수집, 정확하고 의미있는 URLs, 블로그 출판들 같은 전형적인 기술을 포함한다.[2]
이러한 맥락에서 python언어로 만든 django라는 프레임워크가 존재한다. RoR과 마찬가지로 django를 이용하면 기민하게 동적으로 웹 사이트를 만들 수 있다.[4] Django에서는 모델, 뷰, 템플릿, 세팅 등을 이용하여 웹 사이트를 구축할 수 있는 특징과 함께, 관리자 인터페이스를 자동으로 제공해주는 장점을 가진다. 또한 모델과 데이터베이스를 자동으로 동기화 해주고, 데이터를 삽입, 변경, 삭제할 때 웹 개발자가 직접 데이터베이스에 질의를 던지지 않아도 되도록 데이터베이스 접근을 추상화하였다.
본 논문에서는 django의 사례를 바탕으로 기민한 웹 어플리케이션 프레임워크가 데이터베이스를 어떻게 추상화했는지 살펴본다. 또한 django가 어떻게 추가적으로 데이터베이스를 사용하도록 API를 지원하는지 살펴본다. 마지막으로 django에서 지원하지 못하는 기능을 살펴보고, 미비한 부분을 개선할 방안을 제시한다.
- 프로그래밍잔치/첫째날 . . . . 7 matches
* 페이지를 고칠수 있는 '''용기'''를 생각해 보자.
* ZeroWiki를 사용할때 지켜야할 제 1 원칙을 제시 한다.
* 언어를 이용하면서 중간중간 해당언어의 특징, 개발환경 등에 대해 이야기 나누기.
* 언어를 이용하면서 문제 풀기. & 해당 언어에 대해서 위키에 Thread - Document 작성
* 1차 Feedback - 위키 활용도 - 5분
* 용기에 관해서 5
* Delete, Edit 할 수 있는 용기.
- 황현/Objective-P . . . . 7 matches
* 즉, Objective-P와 순수 PHP 코드를 혼용해 사용할 수 있다! (Just like we can mix up ObjC and pure C!)
다만, @implementation만 사용하면 @interface가 외로워하니까, 인스턴스 변수의 선언에는 @interface를 사용하도록 하고, 메소드 선언 및 정의에 @implementation을 사용한다.
@private // 요건 비지빌리티 인디케이터. 옵셔널하다. :) 생략하면 기본값으로 @protected 적용.
// 클래스 사용
- 1002/TPOCP . . . . 6 matches
* 전반적인 내용에 대한 뼈대 & 구성방식
* 내용상의 분류
자기자신의 이용을 위해 작성
다른 사람들이 이용한다는 것도 고려
case) 물리 교수로부터 해당 메트릭스를 반전하는 프로그램 작성. 한 개발자는 (A) 뭔가 배울 수 있는 좋은 기회라고 생각, buffering 을 이용하여 문제를 해결하려고 함.
B 그룹이 머신 타임은 2/5 나 1/3 정도만 이용.
- 3DGraphicsFoundationSummary . . . . 6 matches
* 왼손 좌표계 : 공간개념 이해하기 쉽기 때문에 그래픽스에서 많이 사용한다. 앞뒤가 Z, 좌우가 X, 위아래가 Y
* 광원 모델 사용(Ray-Tracing법 많이 사용)
* 사용하는 함수 : glEnable(GL_BLEND), glBlendFunc(원본 픽셀에 대한 블랜딩 계수를 계산하는 방식, 대상 픽셀에 대한 블랜딩 계수를 계산하는 방식)
|| GL_ONE || 원본 색상을 그대로 사용한다 ||
|| GL_ONE || 대상 색상을 그대로 사용한다 ||
- 5인용C++스터디/비트맵 . . . . 6 matches
비트맵은 펜이나 브러시와 같은 GDI객체이다. --> 사용하려면 DC(디바이스 컨텍스트)에서 비트뱁을 선택해서 출력하면 된다.
비트맵을 사용하는 방법은 펜이나 브러시와 비슷하다. 하지만 한 가지 분명한 차이점은 비트맵은 출력할 DC에 직접 비트맵을 선택하지 않고
"메모리 디바이스 콘텍스트"를 만들어서 BitBlt()나 StretchBlt()함수를 이용해서 메모리 디바이스에 있는 내용을 실제 디바이스 컨텍스트에 출력하는 방식을
사용한다.
즉 복잡한 그림을 출력해야 할 경우는 미리 그려진 비트맵을 사용하는 것이다.
- AcceleratedC++/Chapter0 . . . . 6 matches
main 함수의 리턴형은 ISO/ANSI C++ 표준에서 int로 정하고 있다. 리턴값은 프로그램이 아무런 에러 없이 종료되는 경우에는 0을 리턴하도록 되어 있고, 에러가 발생해서 종료한 경우에는 0 이외의 값을 리턴하도록 되어있다. 이 값은 OS로 돌려지는 값이기는 하지만 OS에서 이것에 따라 특별히 처리하는 것은 없기 때문에 일반적인 경우에는 이 값은 아무런 의미가 없다. 이 값을 이용할수 있는 방법으로는 exec... 함수를 이용하여 프로그램을 실행해주고 받아오는 방법 등이 있다.
여기서 첫번째 문장은 b라는 변수의 값과 c라는 변수의 값을 더해서 a라는 변수에 저장하는 식으로 최종 결과가 a라는 변수에 저장되므로 이러한 문장은 최종 결과만을 이용하기 위한 문장이고, 두번째 문장은 std::cout과 "Hi! C++"을 왼쪽 쉬프트 연산을 하여 side effect로 "Hi! C++"을 표준 출력에 출력하고 최종 결과는 특별히 따로 저장하지 않으므로 최종 결과에는 관심이 없고, side effect만을 이용하기 위한 문장이다. 물론 예를 들지는 않았지만 최종 결과도 이용하고 side effect도 이용하기 위한 문장도 있다.
- Bigtable/DataModel . . . . 6 matches
1. split 허용
1. 태블릿의 ID은 태블릿의 가장 마지막 키를 이용해 만든다.
1. 저장공간의 재사용 : 커밋로그는 원형 자료구조를 사용하여 자동으로 공간을 재사용하도록 한다.
1. 카탈로그 전용 파일 필요?? SSTable 하나를 할당받아 다 쓸때까지 해제하지 않는건 어떨까?
- Bioinformatics . . . . 6 matches
왜 Model을 이용하는가? 실제에 가까운 모델은 실제로 일어나는 일을 보다 더 잘 이해시키고 예측가능하게 한다.
이런 취지에서 NCBI는 sequence-related information에 관한 모델을 만들었다. 그리고 이런 모델을 이용해서 Entrez(data retrieval system)나 GenBank DB(DNA seq.를 저장해둔 DB, 두 가지는 유전자 연구의 중요한 data들이다.)와 같이 소프트웨어나 통합 DB시스템을 가능하게 만들었다.
= 용어 참조 =
National Center for Biotechnology Information 분자 생물 정보를 다루는 국가적인 자료원으로서 설립되었으며, NCBI는 공용 DB를 만들며, 계산에 관한 생물학에 연구를 이끌고 있으며, Genome 자료를 분석하기 위한 software 도구를 개발하고, 생물학 정보를 보급하고 있습니다. - 즉, 인간의 건강과 질병에 영향을 미치는 미세한 과정들을 보다 더 잘 이해하기 위한 모든 활동을 수행
DNA와 RNA를 구성하는 nucleotide는 인산기(Phophate), 5 탄당(Sugar)인 디옥시로보스(deoxyribose), 4 종류의 질소 염기(Base) 중 하나를 포함하여 3개의 부위(Phophate, Sugar, Base)로 구성된 물질이다. 당은 인산과 염기를 연결시킨다. (용어설명. 중합 : 많은 분자가 결합하여 큰 분자량의 화합물로 되는 변화)
유전 형질을 말하며 유전에 관여하는 특정 물질이다. Gene의 모임이 Genome이다. 또한 이 Gene는 DNA에 그 내용이 암호화 되어 있다. 이미 알고 있을지도 모르겠지만, Gene이라는 것은 DNA의 염기 배열이다. 이 염기 배열(base sequence)이 어떤 과정을 통해서 대응되는 순서로 아미노산(amino acid)끼리의 peptide결합을 하여 단백질로 나타는 것을 유전 형질 발현이라고 한다.
- BlogLines . . . . 6 matches
웹용 [RSSAggregator]
써본 경험에 의하면... publication 으로 개인용 블로그정도에다가 공개하기엔 쓸만하다. 그냥 사용자의 관심사를 알 수 있을 테니까? 성능이나 기능으로 보면 한참멀었다. 단순한 reader 이외의 용도로 쓸만하지 못하고, web interface 라서 platform-independable 하다는 것 이외의 장점을 찾아보기 힘들다. - [eternalbleu]
feed demon 을 주로 쓰고 있는데... 이유는 ㅡ.ㅡ;; 실행이 빠르고 watch 기능등이 있다는 정도랄까요 ;; xpyder, yeonmo 같은 것도 설치는 해봤는데.. 약간 느린 바른 속도때문에 바로 지우고야 말았다는.. 아무래도 조급증에 걸린것 같습니다. 아 그리고 블로그에 가면 tatter를 이용해서 사용합니다. - [eternalbleu]
- CppStudy_2002_2 . . . . 6 matches
* C++의 문법도 익히고, 나아가서 사용법, OOP에 대해서 더 친숙 해지기, 다양한 과제를 통한 프로그래밍 경험 쌓기
= 각주 과제및 할 내용들 =
||날짜||하는 내용||과제||
|| 미정 ||["CppStudy_2002_1"]팀과 시합||13.C++코드의 재활용||
* 형 미안해용.. -_-;; 오늘도 못해서.... 담엔 열심히 할께요..... 이 말은.. 오버고.. 담엔 열심히 하려고 노력해 볼께요. -_-;; ...........(영록)
* 오늘(8월 1일)부터는 당분간 C++ 진도를 잠시 멈추고 제가 요세 공부하는 리펙토링을 소스에 적용해 보도록 하겠습니다
- CreativeClub . . . . 6 matches
* 키워드에 얽매일 필요는 없음. 생각해오는 내용은 키워드와 직접적인 연관이 없더라도 연상할 수 있는 그 어떤 것이라도 좋다.
* 개인적으로 진행한 프로젝트 등을 손봐서 공모전에 사용하지 않음
* 인맥을 이용한 멘토링 지원
* 유용한 것을 제공한다.
* 학회실을 자주 사용하도록 유도한다.
* ZeroPage가 가진 도서 리스트를 외부에 공개하여, 외부인이 학회실을 이용하도록 유도한다.
- C언어정복 . . . . 6 matches
밑에 수업한 내용을 참고하여 내용정리를 해서 올려주세요~~
==== 수업한 내용 ====
==== 내용정리 ====
[C언어정복/3월30일-내용정리]
[C언어정복/4월60일-내용정리]
- DNS와BIND . . . . 6 matches
서버관리자가 DNS와 BIND에 대해 공부한 내용
== 이용할 도메인 ==
== 유용한 도구 ==
/etc/named -b conf-file (다른곳에 있는 환경설정파일 이용할때)
== 이후의 내용들 ==
와우~ 수고하십니다. 이후에 유용한 자료가 될듯.. ^^ - [임인택]
- DiceRoller . . . . 6 matches
* EXIT버튼 누르기 : Shift+Enter를 Roll로 사용하지 않았기 때문에 종료시 빠져나가는 루틴이 필요하다. 그래픽대조를 통해 Exit버튼을 누르자.
* 프로그램을 키고 오래 사용하면 스타트/레디 부분이 실행되지 않는다.
* 그래픽 대조루틴을 통한 카드의 자동사용
* SHIFT+ENTER : 이상하게 그 창에서만 듣지 않는다.. 무언가 문제가 있는듯.. Direct Input를 사용해 볼까 고려중이다.
2. SPY++를 조금 더 잘 사용할 수 있게 되었다.
// WriteProcessMemory를 이용하면 쓰기...
- DoubleBuffering . . . . 6 matches
* 만약 새로 그려질 그림이 기존의 지워질 화면에 그려진다면, 화면을 보는 사용자는 지워진 순간을 느끼게 된다.(개념 예제 참고) 이런 공백의 순간을 없애기 위하여 새로 그려질 그림과 배경을 동시에 그리는 기법이다.
A. 예1) 더블버퍼링 미사용시
* 예2) 더블버퍼링 사용시
["데기"] : ㅋㅋ, 표현이 조금 문제를 일으킬줄 알았어요. 화면 전체라 함은 클라이언트 영역을 얘기한 것이고, 버퍼를 바꾼다는 얘기는 포인터만 바꾼다는게 아니라 디바이스 버퍼 내용을 바꾼다는 얘기한거예요. 인수야, 내 애매한 표현땜에 페이지 플리핑이랑 헷갈리지 말어. ^^; [[BR]]
["zennith"] : 뜬금없는 소리이고, 고루한 이야기 입니다만, PCI 란 기술이 처음 소개되었을때 꽤 미래지향적인 기술로 각광받았던 것이 PCI bus mastering 이란 기술인데.. 무엇인고 하니, pci 채널로 연결되어있는 기기들끼리 서로의 메모리에 DMA 를 할 수 있었던 것이었죠. 대표적으로 이 기술이 사용된 예(라기보단 제가 알고있는 단 하나의 예)는 TV수신카드에서 사용되는 것이었는데요. TV 어플리케이션에서 TV 가 표시될 부분의 region 을 정해놓으면 TV 수신카드에서 그부분에 해당하는 비디오카드 메모리로 직접 쏴주는.. 그런 기술이었는데.. 더블버퍼링을 보니 갑자기 그 생각이 나는군요. 음.. 요즈음은 다들 agp 를 써서.. 저 pci bus mastering 이란 기술이 아직도 살아남아있는건지.. 잘 모르겠군요.
- EightQueenProblem2Discussion . . . . 6 matches
처음 문제를 해결할 때, 아무 어려움이나 장애도 없었나요? 지금 뒤돌아볼 때에 자신이 거친 과정 중에 "개선되었으면 하는 부분"이 있나요? 만약 이 문제를 다시 처음부터 새로 풀기 시작한다면 역시 똑같은 방식으로 프로그래밍을 할 것 같습니까(see also EightQueenProblemSecondTry)? 조금 더 깔끔하고 쌈박하게 푸는 방법도 있을까요? 어떻게 처음에 접근했더라면 더 "깨끗한" 코드가 나올 수 있었을까요? 비슷한 문제에 직면했을 때 일반적으로 적용할 수 있는 어떤 "추상적 패러다임" 같은 것을 발견할 수 있을까요? 그 코드를 난생 처음 보는 사람이 있다고 했을 때 몇 분만에 그 코드를 이해시킬 수 있겠습니까? 만약 그 사람 혼자 그 코드를 본다면 쉽게 이해할 수 있을까요? 주석이 없이도요? 혹시 코드 내에 중복되는 정보는 없습니까? 본인의 의도가 모두 분명히 드러나고 있습니까? --김창준
이미 알고리즘 수업 시간을 통해 생각해본 문제이기에 주저없이 백트래킹(BackTracking) 기법을 선택해서 슈도코드를 종이에 작성해보았고 그를 바탕으로 구현에 들어갔습니다.(''그냥 호기심에서 질문 하나. 알고리즘 수업에서 백트래킹을 배웠나요? 최근에는 대부분 AI쪽으로 끄집어 내서 가르치는 것이 추세입니다만... 교재가 무엇이었나요? --김창준 Foundations of Algorithms Using C++ Pseudocode, Second Edition 이었습니다. ISBN:0763706205 --이덕준'') 백트래킹은 BruteForce식 알고리즘으로 확장하기에 용이해서 수정엔 그리 많은 시간이 걸리지 않았습니다. 만일 EightQueenProblem에 대한 사전 지식이 없었다면 두번째 과제에서 무척 당황했을것 같습니다. 이번 기회에 코드의 적응도도 중요함을 새삼 확인했습니다. --이덕준
놓인 자리를 알려주고 끝난다.) 이 적은 것을 토대로 코딩을 하였고 처음 여왕은 0,0에 놓았습니다. 생각한대로 코딩을 했다고 생각하고 실행을 하자 무한루프를 돌았습니다. 전 처음 여왕이 어느 위치에 놓이던간데 거기에 맞는 답이 있는거라고 생각했는데 그것이 잘못되었다고 생각합니다. 처음부터 이 문제의 답을 알고있었다면 프로그램을 짜는데 좀더 간결한 코드를 짤수있었을텐데 란생각이 들어서 코딩을 멈추고 종이를 꺼내 문제를 풀기 시작했습니다. 하지만 답은 나오지않았고 제가푸는방식(여왕을 먼저 아무위치에나 놓고 그위치에 맞게 가로세로대각선에 없는 곳에 놓는다)을 그냥 코딩을 하였습니다. 처음 여왕의 위치를 8*8에 돌아가면서 놓고 검사를 하였습니다. 무식하긴하지만 답은 나왔습니다. 두번째 과제는 처음 코딩할때부터 판의 크기와 여왕의 숫자를 define해서 썻기 떄문에 숫자만 바꾸어 주었습니다. 하지만 답이 맞는지 확신이 서지 않습니다. 그이유는 이문제의 대한 알고리즘을 모르기 때문이라고 생각합니다. 그리고 c++을 썻는데 방학동안 쭉 자바로 플밍하다가 c++을 쓴이유가 비주얼툴의 디버깅을 이용하려는 생각이었는데 무슨문젠지 디버깅을 할수없어서 참 난감했습니다. 디버깅하면 금방알수있는 문제를 눈으로 차근차근 훓으면서 봐야했습니다. --최광식
저는 뭐 아무것도 없이 문제만 보고 뛰어들었습니다. 일단 두번의 실패 (자세한 내용은 EightQueenProblemDiscussion)이후 세번째로 잡은 생각은 일단 한줄에 한개만 말이 들어간다는 점이었습니다. 그 점에 착안하여. 8*8의 모든 점을 돌게 만들었습니다. 좀 비효율적인데다가 아주 엉망인 소스 덕분에.. 문제는 풀었지만.. 수정/보완에 엄청난 시간이 걸리더군요(종료조건을 찾을수가 없었다는.. 그래서 수정에 30분 이상 걸렸습니다.) 후...... 이래저래 많은 생각을 하게 한 소스였습니다. ㅡ.ㅡ;; 왠지 더 허접해 진 느낌은.. --선호
매번 위키나 블로그나.. 이야기만 들어봤지 실제 사용은 안해봤는데..
BackTracking에 대해 찾아보니 결국 제가 한 방법이 그 방법이군요. 알고리즘자체는 좀 틀리지만 (전 리커시브를 이용...)
- EightQueenProblemSecondTryDiscussion . . . . 6 matches
''알고리즘에도 OAOO를 적용할 수 있습니다. 정보의 중복(duplication)이 있다면 제거하는 식으로 리팩토링을 하는 겁니다. 이 때 정보의 중복은 신택스 혹은 세만틱스의 중복일 수 있습니다.''
''말씀해주셔서 감사합니다. 이해가 안되는 부분 몇가지 여쭤보겠습니다. 종합해보면, ''NQueen 자체는 어떠한 보드 형태가 n-Queens problem을 만족하는것인지를 알아봐야 하고, n * n 크기의 보드를 만들어거나 만들어진 보드를 출력하는건 ''다른 누군가''의 몫이다.'' 라는 이야기가 되는건가요?(이 내용이 위에서 쓰신 '''한가지 가능한 ... 볼 수 있겠습니다'''의 내용인지도 궁금합니다.) 그리고, 마지막에 쓰신 '''Queen 오브젝트 갑이 Queen 오브젝트 을에게 물어봅니다. "내가 너를 귀찮게 하고 있니?"''' 의 내용이 어떤 뜻인지 궁금합니다. --이선우''
OO 패러다임은 사물(사건 + 물건)들이 제 할 일을 스스로 알아 하는 신기하고 편리한 세상을 상정합니다. 친구가 집에 찾아왔다가 방을 어지럽히고 갔습니다. 자신이 갖고있는 "깨끗한 방 배치도"를 이용하거나 혹은 각 물건 당 붙어있는 "원래 위치" 꼬리표를 보고 갖다 놓을 위치와 거기로 이르는 경로를 판단, 직접 재배치를 해야하는 세상과, 벽에 지도 한장을 붙여놓고 마치 마술(automagically)처럼 "모든 물건은 제 위치로!"라고 외치면 말끔히 정리가 되는 세상, 어느 것이 OOP적일까요.
제 말을 {{{~cpp mainProgram.runEverything()}}}을 실행하면 모든 게 마술처럼 알아서 실행되게 하라는 뜻으로 오해하지는 않았으면 합니다. 위 superman의 예에서는, 전자의 경우 superman을 제대로 이용해 먹으려면 superman의 내부적 구조를 알아야 합니다. superman의 구현에 종속적이 되는 셈이죠. 하지만 후자는 그게 디커플링이 됩니다. 자기가 매일 가는 길에 있는 도시를 방문하는 것은 superman이 스스로 수행할 수 있어야 할 책임이 있다 이거죠. Queen이라는 객체가 여덟개가 있다고 칩시다. 얘네들한테 "너는 저 여왕을 공격할 수 있니?"하고 묻고 그 결과를 가지고 여왕을 배치하고 하는 것을 하나의 추상(abstraction)으로 묶는 것이 어떨까요? 묻지말고 "시키자"는 것이죠 -- 여덟개의 똑똑한 Queen 객체를 만들고 하나씩 "판 위로 올라가라"고 시킵니다. 이렇게 하면 Board와 Queen에 커플링이 생겨서 문제가 되는 건 아니냐고 했는데, 어차피 Queen은 Board 없이는 별 의미가 없고, 또, 그렇게 하지 않더라도 어떻게든 비슷하거나 혹은 더 큰 정도의 커플링이 존재합니다. 어쨌건, 지금 단계에서는, 더 나은 방법이라기보다 그냥 다른 방법이라고 편안하게 생각하면 좋을 듯 합니다. --김창준
- EmbeddedSystem . . . . 6 matches
* 임베디드 시스템은 더 큰 시스템의 구성요소를 이루거나 사람의 개입 없이 동작하도록 기대되는 하드웨어와 소프트웨어이다. 전형적인 임베디드 시스템은 전원이 켜져 동작하기 시작하면 전원이 꺼질 때까지 멈추지 않는 특수한 용도로 사용하는 일부 응용 프로그램을 시동하는 롬에 들어 있는 소프트웨어를 포함하는 단일 보드 마이크로컴퓨터이다. 임베디드 시스템은 운영체제를 포함하거나 단일 프로그램으로 작성할 수 있을 만큼 단순할 수 있다. 시스템에 필요 없을 경우 키보드, 모니터, 직렬 통신, 대용량 기억 장치와 같은 일반적인 주변 장치나 사용자 인터페이스 소프트웨어를 지원하지 않는다.그리고 실시간성을 요구할 때도 있다.
* 반대말 : 범용시스템
- EnglishSpeaking/TheSimpsons/S01E01 . . . . 6 matches
* 내용 : 리사, 바트가 산타클로스로부터 원하는 선물을 하나씩 말하고 처형인 Patty로부터 전화가 온다.
* 내용 : 바트가 허락 없이 문신을 해버리는 바람에 병원에 가서 모아둔 현금을 다 써버린다. 호머는 이 사실을 알고 차마 보너스를 받지 못했다고 말하지 못함.
* 내용 : 보너스를 못받았다는 사실을 차마 가족들에게 말하지 못하는 호머는 모의 술집에서 바니를 통해 산타클로스 알바가 있음을 알게 되고 면접을 본 후 일을 시작한다.
* 내용 : 산타 알바를 마친 호머는 바트와 함께 급료를 받는다. 하지만 실제 월급에 비해 너무 적게 나와버리고 호머는 바니를 따라 경구장에 가게 된다.
* 내용 : 보너스를 받지 못했다고 차마 말하지 못하는 호머와 뭔가 있음을 느끼지만 감 못잡는(?) 마지의 대화 내용.
- FreeMind . . . . 6 matches
인터페이스가 매우 간단해서 사용방법을 익히는 과정 필요없다. 설치 즉시 마인드 맵을 작성 할 수 있다.
이제 많은 사람들이 이것을 알고 많이 사용하죠. 적극적으로 사용 하는 사람들은 거의 없지만...
마인드 맵에 대해서 알아 보려면. 마인드 맵 북(도서관에 있음)을 읽어보는 것도 도움이 될듯. 굉장히 적극적 활용에 대한 여러가지 예가 들어 있습니다. SeeAlso) [ZP도서관]
문장으로 부터 클래스를 추출해 낼 때 유용하게 사용 할 수 있을듯 하다.
- Gnutella-MoreFree . . . . 6 matches
5개의 Descriptor를 사용하고 TCP/IP 프로토콜과 ASCII Code를 기반으로
이용하여 통신이 이루어진다.
이는 Gnutella 네트워크를 이용하는 것이 아니라 기존의 HTTP 프로토콜
을 이용하여 직접 파일이 전송된다.
<File Index>는 파일 번호이고 이는 QueryHit Result에 포함된 내용이다.
에서 다운로드 버튼을 누르면 결과 그룹중에서 pos를 기억하고 이 pos를 이용해 다운받을
- Hacking/20041028두번째모임 . . . . 6 matches
== 모임 내용 ==
=== nmap 사용하기 ===
기본 사용법) nmap ip주소
사용예) nmap -v -sS ip주소
== 공부할 내용 ==
User Mode Linux 혹은 VMWare 를 이용.
- HardcoreCppStudy/두번째숙제/CharacteristicOfOOP/김아영 . . . . 6 matches
데이터 은닉이란 모듈이 그것이 갖는 기능들을 명세한 인터페이스(interface)를 통해서만 접근되고, 그 기능을 구현하는 방법은 다른 모듈로부터 은닉되도록 하는 것을 말한다. 캡슐화된 객체의 외부 인터페이스를 엄밀히 정의함으로써 독립적으로 작성된 모듈간의 상호 종속성을 극소화하여 캡슐화된 객체는 외부 인터페이스만을 통하여 접근될 수 있도록 한다면, 세부적인 구현 상세 사항에 대해서는 객체내에 은닉시킬 수 있다. 또한 캡슐화된 객체는 객체 구현내역을 변경, 혹은 향상시킬 때 이 객체를 사용하는 타 객체들을 변경하거나 다시 컴파일하지 않도록 할 수 있다. 또 모듈의 내부 구현 사항들이 외부의 접근으로부터 보호될 수 있음으로, 그 객체의 정당성을 보증할 수 있으며, 오류가 발생되었을 경우에 오류는 한 모듈내로 국지화될 수 있다.
우리가 흔히 다루는 각각의 객체들은 서로의 관련되 영역을 사용할 수 있는 부분과 없는 부분이 있다. 이것은 별도로 접근이 가능한 영역과 불가능한 영역으로 나누어서 관리하기 때문이다. 이것을 바로 캡슐화라 한다. 갭슐화는 바로 접근 가능한 코드와 불가능한 코드로 나눔으로 인해서 데이터나 특별한 영역을 보호하거나 감추는 역활을 할 수 있다. 때문에 필요한 경우 데이터의 접근 필드를 제한함으로서 데이터를 보호하는 결과를 얻을 수 있다.
상속이란, 기존에 만들어 놓은 객체들로 부터 모든 변수와 메소드를 물려 받아 새로운 객체를 만들 수 있다는 것을 뜻한다. 즉, 새프로그램을 만들 때 기존의 자료를 이용해(상속받아) 새롭게 정의하여 사용한면 된다는 것이다. 이로인해 부수적으로 프로그래밍의 노력이 줄고 시간 단축되며 그리고 OOP의 가장 중요한 재사용성(Reusability) 얻을 수 있다. 델파이는 TObject라는 최상위 객체로부터 상속시켜 단계적으로 하위 객체들을 생성해 만들어진 구조를 지니고 있다.
추상화란, 객체가 자신의 정보를 안에 감추고 있으면서 외부에 구체적인 것이 아닌 추상적인 내용만을 알려주는 것을 말한다. 때문에 추상화란 정보의 은닉(Information Hiding)이라고도 한다.
- HelpForDevelopers . . . . 6 matches
사용중에 불편하신 부분이나 오작동하거나 질문할 부분이 있으면 개발 사이트에 오셔서 언제든지 개발자와 피드백을 하실 수 있습니다.
모니위키 사용중에 문제점이 발생하는 경우에는 지체없이 http://kldp.net/projects/moniwiki/bugs 사이트에서 문제점을 보고해주시기 바랍니다. 혹은 사용중에 불편한 점이 있다고 생각하셔도 보고해 주시면 고맙겠습니다.
개발자는 사용자가 불편하게 생각하는 부분을 잘 모르는 경우가 많습니다. 사용자의 피드백은 모니위키를 좀 더 사용하기 편리하게 만들어 줄 가능성을 열어줍니다!
- HelpOnInstallation/MultipleUser . . . . 6 matches
모니위키 버전 1.0.9 이후부터 모니위키는 다중사용자를 위한 좀 더 편리한 설치환경을 제공합니다.
각 사용자는 따로 설치할 필요 없이 관리자가 설치해놓은 모니위키를 단지 make install로 비교적 간단히 설치할 수 있습니다.
== 사용자 설치 ==
이 경우 대부분의 php파일이 설치되지 않은채로 각 사용자가 사용하게 되기 때문에, 모니위키의 php취약점이 발견되었을 경우 관리자가 설치된 [모니위키]만을 업데이트하는 것으로 문제점을 해결할 수 있게 됩니다. 물론 일부 카피된 파일 및 php 이외에 웹상에 직접 노출되는 지역 파일은 사용자가 직접 업데이트해야 하겠지요.
- HelpOnInstallation/SetGid . . . . 6 matches
보안상의 이유로 웹서버는 php 스크립트를 `nobody, www, apache` 혹은 `httpd`같은 특별히 제한된 계정으로 실행하게 됩니다. 이러한 이유로 [모니위키] 스크립트가 생성하게 되는 여러 파일 혹은 디렉토리는 이러한 특별한 계정의 소유가 되며 진짜 사용자가 소유하지 못하게 되는 일이 발생하고 어떤 경우는 이렇게 만들어진 파일을 읽을수도 지울 수도 없게 됩니다.
이러한 것을 방지하기 위해서 [모니위키]가 특별한 파일을 생성하게 되는 몇몇 디렉토리에 대하여 그룹 아이디로 퍼미션을 가지게 할 수 있습니다. 이렇게 Setgid를 사용하도록 그룹 퍼미션을 주게되면 wiki.php에 의해 새롭게 만들어지는 모든 파일은 진짜 사용자의 그룹아이디와 같게 되며, 그룹 아이디가 가지는 퍼미션을 진짜 사용자도 누릴 수 있게되어 읽거나 고치거나 지울 수 있게 됩니다.
Setgid 퍼미션을 작동시키려면 간단히 "`chmod 2777 ''dir''` 명령을 내리면 되는데, 모니위키가 여러 파일들을 만들게되는 디렉토리에 대해 이 명령을 내려주면 됩니다. 모니위키를 최초 설치하는 과정에서 setgid를 사용하려면 우선 모니위키 최상위 디렉토리를 먼저 `chmod 2777`을 해 줍니다. 아마 wiki.php가 들어있는 디렉토리가 될것입니다.
그런 다음 monisetup.php를 웹상에서 실행시키면 monisetup.php는 필요한 여러 디렉토리를 만들게 되며 이 디렉토리들은 setgid에 적용을 받게 되고, 이렇게 최초 setgid 설정을 마친 후에는 최상위 디렉토리의 퍼미션을 원래의 퍼미션으로 되돌려야 합니다. (보통 `chmod 755`로)
- HowToBlockEmpas . . . . 6 matches
지금 empas 에서 zeropage 의 해당 위키페이지들이 전부 노출되어버린 상태입니다. 아무래도 위험하다 생각되어지는데 좋은 해결방법이 없을까요? (또는 대외적으로 이를 홍보방법으로 이용할까요? -_-a)
보통 검색 로봇들은 해당 페이지들의 링크들을 얻어서 그 페이지들을 검색하고, 다시 또 링크를 얻어서 페이지를 검색하는 식으로 재귀적으로 페이지들을 검색한뒤, 내용들을 인덱스화 하여 데이터베이스에 저장하는 방식일 것입니다.
''검색결과의 삭제에 대한 내용이 다음 사이트에 있군요.'' [http://www.google.com/intl/ko/remove.html]
''이 방법이 가장 확실함. 아파치 웹 서버에서 IP deny를 시킴. 이때 검색 엔진은 보통 10여개의 IP를 사용하므로 모두 막아줘야 함''
* 이를 ZP 홍보기회로 이용한다. --a
검색서비스를 제공하고 있는 곳에서는 로봇 에이전트를 사용하여 검색한다는거 아실겁니다. 이러한 로봇은 강제성은 없지만 로봇 배제 표준을 따르도록 프로그래밍 하는 것이 관례 입니다. 웹서버 루트에 robots.txt 파일을 다음과 비슷하게 작성하시면 되겠습니다.[[BR]]
- HowToStudyDataStructureAndAlgorithms . . . . 6 matches
그리고 마지막으로, 자료구조/알고리즘 공부를 할 때에는 가능하면 실질적이고 구체적인 실세계의 문제를 함께 다루는 것이 큰 도움이 됩니다. 모든 학습에 있어 이는 똑같이 적용됩니다. 인류의 지성사를 봐도, 구상(concrete) 다음에 추상(abstract)가 오고, 인간 개체 하나의 성장을 봐도 그러합니다. be 동사 더하기 to 부정사가 예정으로 해석될 수 있다는 룰만 외우는 것보다, 그러한 다양한 예문을 실제 문맥 속에서 여러번 보는 것이 훨씬 나은 것은 자명합니다. 알고리즘/자료구조 공부를 할 때 여러 친구들과 함께 연습문제(특히 실세계의 대상들과 관련이 있는 것)를 풀어보기도 하고, ACM의 ICPC 등의 프로그래밍 경진 대회의 문제 중 해당 알고리즘/자료구조가 사용되는 문제를 -- 이게 가능하려면 "이 알고리즘이 쓰이는 문제는 이거다"라는 가이드를 해줄 사람이 있으면 좋겠죠 -- 같이 풀어보는 것도 아주 좋습니다.
우리는 알고리즘 카탈로그를 배운다. 이미 그러한 해법이 존재하고, 그것이 최고이며, 따라서 그것을 달달 외우고 이해해야 한다. 좀 똑똑한 친구들은 종종, "이야 이거 정말 기가막힌 해법이군!"하는 감탄을 외칠지도 모른다. 대부분의 나머지 학생들은 그 해법을 이해하려고 머리를 쥐어짜고 한참을 씨름한 후에야 어렴풋이 왜 이 해법이 그 문제를 해결하는지 납득하게 된다. 그리고는 그 "증명"은 책 속에 덮어두고 까맣게 사라져버린다. 앞으로는 그냥 "사용"하면 되는 것이다. 더 많은 대다수의 학생은 이 과정이 무의미하다는 것을 알기 때문에 왜 이 해법이 이 문제를 문제없이 해결하는지의 증명은 간단히 건너뛰기를 한다.
이런 학생들이 주어진 알고리즘을 사용하는 소위 "객관식" 혹은 "문제출제자"가 존재하는 시험장 상황 하에서는 뛰어난 성적을 보일것임은 자명하다. 하지만 스스로가 문제와 해답을 모두 만들어내야 하는 상황이라면, 알고리즘을 완전히 새로 고안해내야 하는, 또는 기존 알고리즘을 변형해야 하는 대다수의 상황이라면 어떨까?
알고리즘을 공부하면 큰 줄기들을 알아야 합니다. 개별 테크닉들도 중요하지만 "패러다임"이라고 할만한 것들을 알아야 합니다. 그래야 알고리즘을 상황에 맞게 마음대로 응용할 수 있습니다. 또, 자신만의 분류법을 만들어야 합니다. (see also HowToReadIt Build Your Own Taxonomy) 구체적인 문제들을 케이스 바이 케이스로 여럿 접하는 동안 그냥 지나쳐 버리면 개별자는 영원히 개별자로 남을 뿐입니다. 비슷한 문제들을 서로 묶어서 일반화를 해야 합니다. (see also DoItAgainToLearn)
자료구조와 알고리즘은 프로그램을 만드는 데 있어서 중요하다고 생각합니다. 남이 만든 자료구조와 알고리즘을 이용하는데 그치지 말고 스스로 생각하여 만드는 경지에 오르면 좋겠습니다. -[강희경]
- IDL . . . . 6 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 을 사용하도록 하자.
- Java2MicroEdition . . . . 6 matches
Java 2 Micro Edition (J2ME) 은 휴대전화나 PDA 같은 이동통신 기기등의 가전제품을 목표로 하고 있다. 그래서 초소형 장치에서 작은 장치에 이르는 이른바 소형 디바이스 들이 Java 를 사용할 수 있도록 지원하는 플랫폼이다.
* PDA 등에서 사용되는...
* 휴대전화와 같은 매우 제한적이 하드웨어에서 사용되는...
그림을 보면 맨 아래에 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의 기본이 되고 있다.
그리고, 수많은 소비자/임베디드 디바이스들에 공통적으로 적용할 수 있는 플랫폼을 개발한다는 것도 자체적으로 한계가 있었다. 다양한 하드웨어, 다양한 운영체제, 그리고 전혀 호환성 없는 유저 인터페이스까지, 이 모든 차이점을 극복하면서 기존의 J2SE 기반의 자바와의 호환성까지 유지할 수 있는 솔루션은 불가능하다는 문제인식이 있었다. 그래서 등장한 개념이 컨피규레이션과 프로파일로의 플랫폼 분할이다.
* [http://zeropage.org/~dduk/development/j2me/midp-2_0-src-windows-i686.zip midp 2.0 (win용)]
- JavaStudy2004 . . . . 6 matches
* Player 4 ( :D X-( X-( X-( :D :D ) : [이용재]
||이용재||[JavaStudy2004/이용재]||
* 추천도서 - Java HowToProgram - Deitel사. 2학년 전공 JavaProgrammingClass에서 교재로 사용하는 책. 간단하고 쉽다. 자바를 처음 시작하는 이에게 추천도서
* 작년에 [상규] 형이 진형하셨던 [5인용C++스터디] 를 경험삼아 비슷한 방식으로 진행하려 합니다
* 요새 난 영국 유학생 1학년 대상으로 자바 과외하는데... Pair로 하니까 금방 따라오더라. 내가 먼저 시범을 보이고 그것을 약간 응용한 것을 해보라고 한다. Pair 바꾸는 시간은 약 5~7분. 내가 시범 보이면서 말로 설명도 해야하기 때문에 그정도가 적당. 보통 설명할 때는 펜으로 종이에 그림으로 하고. --재동
- JavaStudyInVacation/과제 . . . . 6 matches
* AWT와 SWING이 무엇인지 알아보고, 그 차이점에 대해서 알아보기. 그리고 어떤것을 사용하는것이 더 좋다고 생각하는지, 그리고 왜 그렇게 생각한는지...?
* SWING을 사용하여 버튼이 있고, 그 버튼을 누르면 간단한 메시지를 출력하는 자바 에플리케이션 작성해 보기.
* 자바에서 네트워크를 사용하는 방법에 대해 간단히 알아보기.
* 다음과 같은 네트워크를 사용하는 간단한 에플리케이션 만들어 보기. (SWING 이나 AWT 사용 안함)
* SWING을 사용하여 제작해야 한다.
- JosephYoder방한번개모임 . . . . 6 matches
* 세미나 내용을 정리해 주세요
리펙토링 기본 기법에 관해서는 기본적으로 Rename과 함수 분할 등을 Martin Fowler이 지은 Refactoring책을 통해 알수있다고 했다 이러한 리펙토링을 이용하여 청소할 수 있고 리펙토링은 중요하다고 했다. 이거 좋군. 딱 들은 생각. 우선 리펙토링할때는 이름이 최우선적으로 다루어져야한다고 했는데 가장 설명하기 좋고 듣기도 편했던 부분이다. 그 이유는 이름부터가 단축이면 못알아먹기 때문에~~~!! 이라고했다. 그래서 나는 앞으로 길더라도 의미가 되는 단어를 쓰기로 결심했다. 괜히 이름 단축시키지 말자고.
일단 코드 컨스트럭트를 할때는 Facade and Wrapper Pattern을 이용해서 방을 청소하고 시작하라고하는것도 보았다. 하긴 이렇게하면 다른것에 상관 없이 쓸수 있겠군? 이라고 생각했다.
* 패턴을 이용한 리팩토링
* facade, wrapper 패턴등을 이용해 지저분한 구현을 숨길 수 있다!
* agile is good for refactoring, 애자일을 사용하면 설계도 리팩토링할 수 있다.
- KIV봉사활동/예산 . . . . 6 matches
* 식비는 나머지 비용으로, 하지만 최대한 아껴서 남긴다.
* 예방 주사는 개인비용이다.
== 아직 지출되지 않았으나 지출 예정인 비용 ==
* 후리카게 - 가정용 2개 만원
*위생용품 : 물티슈 80매 x 20/17800
* 피우는 야외용 모기향 20개 = 1000원
- LUA_1 . . . . 6 matches
스크립트 언어는 이제 단순히 유행을 넘어서 개발자가 알아야 할 덕목에 가까워진 것 같습니다. 저 같은 경우 아직 C/C++/Java로 개발을 하지만 보조적인 역할에서는 스크립트 언어(Python)만큼 유용한 게 없는 것 같습니다.
Python 언어를 한 동안 사용하다가 최근에는 루아에 관심을 갖게 되었는데, 의외로 루아에 대한 정리 된 자료를 찾는게 쉽지 않았습니다. 또한 오랫동안 C/C++/C#에 얽메여 있으면서 뭔가 새로운 것을 배우고자 하는 욕망에 강좌를 시작하게 되었습니다. 부족한 점이 있지만 저도 배우는 입장에서 루아에 대해 정리해 나가도록 하겠습니다.
왜 루아를 써야 할까요? Python 도 있고 Ruby, Perl 도 있는데 굳이 루아를 배워야 할 이유가 있을까요? 넵! 있습니다. 루아는 루아 나름의 매력이 있습니다. 그 중 첫째는 작다는 것입니다. 네 매우 작아요. 소스 코드가 5.1.4 버전이 216679 바이트 밖이 하지 않습니다. 이렇게 작으니까 배포할 때 굳이 고민하지 않아도 되겠죠. 그리고 이렇게 작기 때문에 embedded 환경에서도 사용 될 수 있습니다. eLuaProject가 그 중 하나입니다. 그리고 Lua는 Pure C 코드로 Porting 하기도 용의 합니다.
둘째는 빠르다는 점입니다. 빠르다는 말은 상대적일 수 있는데, 다른 스크립트 언어에 비해서 빠르다는 뜻입니다. 예를 들면 Python 이겠죠. 자세한 내용은 http://lua-users.org/wiki/LuaVersusPython 페이지에서 Python 과 비교한 부분에서 확인 하실 수 있습니다.
그리고 세번째는 많은 게임의 스크립트 언어로 검증이 되었다는 점입니다. 대표적으로 World of Warcraft(WOW)가 있겠죠. 많은 사람들이 루아를 WOW을 통해서 알게 되었죠. 간략하게 루아의 특징에 대해서 알아 보았습니다. 좀 더 자세한 루아의 역사는 http://en.wikipedia.org/wiki/Lua_(programming_language) 에서 확인할 수 있습니다. 한글 위키 페이지가 내용이 좀 부족하네요.
- LinkedList/학생관리프로그램 . . . . 6 matches
메모리 이용 학생관리 프로그램
-배열이용
-student 구조체 사용(dept, name, num(1~20)
-기능(콘솔에서 사용자 입력 원소 삽입
( 삭제-num을 이용해서...,
링크드 리스트를 이용한 학생관리 프로그램
- MFC/ObjectLinkingEmbedding . . . . 6 matches
서로 다른 응용프로그램들이 프로그램 안에 있는 데이터를 편집할 수 있도록 하는 프록램을 작성할수 있도록 하는 메카니즘이다. (예를 들자면 오피스웨어에서 포토ㅤㅅㅑㅍ에서 수정하던 그림을 특정 포맷으로 변환하지 않고 바로 붙이기 하는 경우와 같은 경우....)
|| AddRef() || 인터페이스를 사용하는 클라이언트의 개수에 대한 카운터를 증가시킨다. ||
|| Release() || 인터페이스를 사용하는 클라이언트의 개수에 대한 카운터를 감소시킨다. 카운터가 0이되면 더이상 사용되지 않으므로 메모리에서 해제될 수 있다. ||
스를 만들어서 사용하는 것도 가능하다.
서버측에는 COleServerDoc에서 파생된 도큐먼트를 이용한다. 서버측에서는 반드시 OnGetEmbeddedItem() 멤버를 구현해야한다. 이는 이 함수가 순수가상 함수이기 때문이다.
- MFC/Socket . . . . 6 matches
=== 만든 클래스를 사용하는 부분 ===
AfxMessageBox(temp.m_strData); //테스트 확인용으로 받은 메시지를 띄워준다.
* 아래 소스는 소켓 테스트 용으로 간단하게 서버와 클라이언트가 메시지를 주고 받는 프로그램
* 한쪽에서는 서버 생성을 선택 (XP의 경우 이 프로그램의 서버를 허용할지 물어볼때 예 선택)
* 이런것을 이용해서 해 나갈 예정
서버에 MFC의 CSocket을 쓰는 것은 그리 바람직해보이지 않네요. 상대적으로 사용하기 좀 어렵겠지만 CAsyncSocket을 써보도록 하세요. (개인적으로는 이것도 별로 추천하지 않습니다. 하지만 MSN이나 네이트온처럼 대형 메신저를 만드는게 아니니까 CAsyncSocket으로도 충분해 보이네요.) 기회가 된다면 MFC Socket말고 Winsock으로 코딩해보세요. --[인수]
- MFCStudy_2001 . . . . 6 matches
목표: MFC를 이용, 프로그램을 작성한다. [[BR]]
* 오목 - 1인용 인공지능 오목을 만들기
= 자세한 내용 : 공지, 일정, 제안, 진행상황 =
[창섭]:결국 제가 남긴 것은 발전된 오목이 아니라 여름방학 때 했던 것을 윈도우용으로 옮긴 것 밖에 안 되는...[[BR]]
[창섭]:우선 내꺼. -_-; -- 열라 큼직한 바둑알이 인상적이지 않나요?키둑..-.-; 하나 두고 컴이 두길 기다리지만 전혀 반응없는 2인용...-.-; 흐흐.. 에러없이 잘 돌아간다는 사실에 만족해야쥐요. 쩝.[[BR]]
[혜영] 우선 상민오빠에게 죄송하네요. 01스터디에 끼어보겠다고 나름대로의 포부를 설명하며(?) 하고 싶다고 했는데 정작에 한일이 없네요. 스터디에도 제대로 참여도 못했고, 결과물도 언제나 몇발 늦게..-_-;;; 그래도 끝까지 신경써주신 상민오빠께 감사하구요.. 이번 벽돌깨기도 한 며칠 하려고 하다가 결국 또 이렇게 중간에 흐지부지하게 끝내버리고 말았네요. 끝이라는 말이 맞진 않지만.. 하다만 내용이죠..--; 그래도 버그 수정해야지 하고 생각만 하고 또다시 시간은 흐르고, 이제는 거의 포기상태랄까요..-_-;; 암튼 아쉬웠지만.. 그래도 기쁘네요. 상민오빠 말대로 끝을 명확히 하니깐..^^:;; [[BR]]
- ObjectWorld . . . . 6 matches
첫번째 Session 에는 ["ExtremeProgramming"] 을 위한 Java 툴들에 대한 간단한 언급이였습니다. 제가 30분 가량 늦어서 내용을 다 듣진 못했지만, 주 내용은 EJB 등 웹 기반 아키텍쳐 이용시 어떻게 테스트를 할것인가에 대해서와, Non-Functional Test 관련 툴들 (Profiler, Stress Tool) 에 대한 언급들이 있었습니다. (JMeter, Http Unit, Cactus 등 설명)
두번째 Session 에서는 세분이 나오셨습니다. 아키텍쳐란 무엇인가에 대해 주로 case-study 의 접근으로 설명하셨는데, 그리 명확하지 않군요. (Platform? Middleware? API? Framework? Application Server? 어떤 걸 이야기하시려는것인지 한번쯤 명확하게 결론을 내려주셨었더라면 더 좋았을 것 같은데 하는 아쉬움.) 아키텍쳐를 적용하는 개발자/인지하는 개발자/인지하지 못한 개발자로 분류하셔서 설명하셨는데, 저의 경우는 다음으로 바꾸어서 생각하니까 좀 더 이해하기가 쉬웠더라는. '자신이 작업하는 플랫폼의 특성을 적극적으로 사용하는 개발자/플랫폼을 이해하는 개발자/이해하지 못한 개발자' 아직까지도 Architecture 와 그밖에 다른 것들과 혼동이 가긴 하네요. 일단 잠정적으로 생각해두는 분류는 이렇게 생각하고 있지만. 이렇게만 정의하기엔 너무 단순하죠. 해당 자료집에서의 Architecture 에 대한 정의를 좀 더 자세히 들여다봐야 할듯.
세번째 Session 에서는 지난번 세미나 마지막 주자분(신동민씨였던가요.. 성함이 가물가물;)이 Java 버전업에 대한 Architecture 적 관점에서의 접근에 대한 내용을 발표하셨습니다. Java 가 결국은 JVM 이란 기존 플랫폼에 하나의 Layer를 올린것으로서 그로 인한 장점들에 대해 설명하셨는데, 개인적으론 'Java 가 OS에서 밀린 이상 OS를 넘어서려니 어쩔수 없었던 선택이였다' 라고 생각하는 관계로. -_-. 하지만, Layer 나 Reflection 등의 Architecture Pattern 의 선택에 따른 Trade off 에 대해서 설명하신 것과, 디자인을 중시하고 추후 LazyOptimization 을 추구한 하나의 사례로서 설명하신건 개인적으론 좋았습니다.
- PhotoShop2003 . . . . 6 matches
* 눈깔 책의 내용을 참조하면서 어젯밤 만든 IMAGE CLASS , PIXEL CLASS을 결국 사용안하기로 했다
* 이유인즉 무슨 말인지 모르고 내가 사용 했기 때문이다. 그래서 픽셀중 2차원 사용법만 사용하기로 했다
|| 15:10 || 15:52 || 누적 적용 기능 || 상협, 인수 || 42분 ||
- Plugin/Chrome/네이버사전 . . . . 6 matches
flickr에서 permission을 받아 사진을 긁어오는 플러그인을 만드는것 같다. 파일구성은 HTML안에 스타일을 적용하는 CSS. AJAX, Javascript를 이용하여 (AJAX의 정의를 알아보아야겠다 ) 내용을 구성한다. json을 통해 뭘 하는건가. 흥미롭군.
영어로 보는게 더 자세하지만 난 한국인이라. 간단히 말하자면 인터넷에서 자료를 주고받을때 그 자료형식을 정의하는 문서인데 javascript구문을 사용하는 파일이다. xml보다 web에서 효과적이기 때문에 web상에서 쓰인다고 한다. 좋은거 배우네.
뭐 여기까지 용어정리 됬나.
* window.open함수를 이용하여 body를 '''더블''' 클릭하면 새로운 팝업창을 띄운다.
- ProgrammingLanguageClass . . . . 6 matches
수업내용: 프로그래밍 언어의 구현 & 구성요소에 대한 전반적 이해.
프로그래밍 언어를 배우는 것은 사고와 표현의 방식을 하나 더 배우는 것이다. 따라서, 설사 해당 언어로 프로그래밍을 할 기회가 별로 없다고 해도, 판이한 언어를 하나 더 배우는 것은 가치있는 일이다. 동시에 무슨 언어를 배우느냐, 어떤 신택스를 익히느냐는 것은 크게 중요하지 않다. 언어는 변하고 사멸하고 신생하며, 유행도 바뀐다. 그보다 그런 언어 저변에 깔려있는 다양한 패러다임을 접하고 충분히 이해하고 적용할 수 있어야 한다. 하지만 이게 가능하려면 구체적인 언어라는 채널을 통하지 않을 수가 없다.
그러므로, 이런 ProgrammingLanguageClass가 중요하다. 이 수업을 제하면 다른 패러다임의 다양한 언어를 접할 기회가 거의 전무하다. 자신의 모국어가 자바였다면, LISP와 Prolog, ICON, Smalltalk 등을 접하고 나서 몇 차원 넓어진 자신의 자바푸(Kungfu의 변화형)를 발견할 수 있을 것이며, 자바의 음양을 살피고 문제점을 우회하거나 수정하는 진정한 도구주의의 기쁨을 만끽할 수 있을 것이다. 한가지 언어의 노예가 되지 않는 길은 다양한 언어를 비교 판단, 현명하고 선택적인 사용을 할 능력을 기르는 법 외엔 없다. --김창준
꼭 그렇지는 않습니다. 다양한 언어를 배우고, 특히 훌륭히 디자인된 언어(각 요소들이 서로 상충하지 않고 유기적으로 조화되어 하나의 건강한 생태계를 이루는)를 충분히 접하게 되면, 아무리 문제있는 언어를 쓰게 되더라도 "선택적"인 사용이 가능해집니다.
수업시간때 기억나는건 언제나 비난의 대상인 Fortran, 모든게 완벽한 Ada, 그 이후 실용적인 선택 C++, Java. --석천[[BR]]
무심결에 쓰고 있는 프로그램 언어의 내부를 배울 수 있는 시간입니다. 개인적으로는 이런 저런 원리를 하나식 알아갈 때마다 재미있었기 때문에 수업시간도 재미있었습니다. (정말 같이 듣는 이들은 졸린 모양이더라고요.) 과제에서 엄청난 실수를 많이 저질러서 안타깝지만, 과제 자체는 강의 내용과 매우 적절하게 연결된 것이라고 생각합니다.
- ProjectCCNA/Chapter5 . . . . 6 matches
* ip의 생성이유 : TCP/IP프로토콜을 사용하는 모든 장비를 구분하기 위해서
* ip주소는 2진수 32자리로 되어있음 -> 약 42억 9천개 -> 현재 사용자를 고려하면 남은 ip주소가 얼마 없음
* 네트워크를 나타낼 땐 호스트 부분을 0으로 표현. 그리고 각 클래스에서 표현 가능한것의 제일 작은 수와 제일 큰수는 사용불가.
*호스트부분이 모두0은 네트워크, 1은 브로드캐스트 번호이므로 사용하지 않는다. -> 각 클래스에서 사용가능한 최대 호스트수는 순계산-2해줘야함.
* 네트워크를 나눠 쓰지 않더라도, 디폴트 서브넷 마스크를 사용한다.
- ProjectPrometheus/Iteration9 . . . . 6 matches
* 바구니 기능 - 근데, 우리가 생각한 기능은 아닌듯. 용도가 좀 다름. 이에 따라 login 이 쿠키 스타일로 바뀜. (JSP 를 쓰던데, Session 스타일일 가능성도)
-> DB 초기화 밑, 단행본 만 View링크 허용 Y
로그인 없어도 이용 가능 기능 : Search
관리자 기능 (Notice 변경 (,사용자 삭제, 수정))
UI 개선 (CSS 적용)
관리자 기능 (사용자 삭제, 수정)
- ProjectVirush . . . . 6 matches
Trac을 이용해 [http://165.194.17.5/trac/aekae/timeline 프로젝트 진행상황]과 [http://165.194.17.5/trac/aekae/browser//ProjectVirush Source Code]를 확인할 수 있습니다.
로그인 클라이언트 사용자 암호 암호화 1.5
로그인 서버 사용자를 파일에 등록 0.5
예약(zone->lab) 서버 사용자마다 스레드 할당 4
연구실 서버 사용자당 실험용 지역 생성 6
- ProjectZephyrus/Afterwords . . . . 6 matches
* CVS을 사용하면서 CVS의 유용함을 경험해볼 수 있었다.
* CVS을 사용하면서 CVS의 유용함을 경험해볼 수 있었다.
- 추후 개인적 소스 컨트롤 (RCS 등을 이용)도 같이 실천하도록 하자.
* (아직 정리하지 못한 내용에 대해 추후 기억을 위한 키워드) - 추측록, 신기통, 최한기, Vision, Propose, Problem, Solution
- ProjectZephyrus/ServerJourney . . . . 6 matches
* 0604에 의논한 내용 Server 측 UML에 추가
* Logout 클래스 작성, Rename작업, 04일에 의논한 내용 UML에 반영
1. {{{~cpp JavaDoc}}}을 이용한 도움말 작성 package설명 추가, 각 클래스별 설명 추가, 각 메소드별 설명 추가
1. JCreator용 설정 파일 작성
* 잘하긴요.... 해본거라 그렇죠..머..^^ 몇번의 삽질끝에... {{{~cpp writeLoginCmd}}} 완성.. 하지만.. 버디 리스트를 갖고 있는 테이블인 {{{~cpp PZContactList}}}은 중복 허용 문제때문에.. 프리머리 키도 없고... 나중에 속도문제가 생기지 않을까 하는 걱정이 됩니다.. 좀더 생각해봐야겠습니다...^^ 그리고 재동군이 이제 합류하나여? --상규
* Eclipse 사용법 배웠고, 지금까지의 서버 디자인에 대한 설명을 들었습니다. 그리고 약간의 의견교환도 있었구요. 하지만 서버 디자인에 대한것은 대부분의 윤곽은 잡혔지만 다같이 모여 여러번 이야기를 하며 아직 정확하지 않은 것들을 잡아가야 할 듯 합니다. 그리고 {{{~cpp DBConnectionManager}}}를 통해 ZP 서버의 MySQL에 접속해보고 몇가지 테스트를 해 보았습니다.(테이블 만들기, 자료 추가하기, 자료 조회하기) --상규
- PythonThreadProgramming . . . . 6 matches
* lock이 왜 필요하나? -> 하나의 공용 자원을 여러 스레드가 동시에 사용하면 문제가 생길수 있다. 그래서 공용자원을 사용할때는 락을 걸고 사용하고 사용하고 나서는 락을 푼다.
- RealTimeOperatingSystemExam2006_2 . . . . 6 matches
a) 세마포를 사용하는데 초기 파라미터를 0,1, n 으로 넣어서 각각 이벤트 플래그, 바이너리 세마포, 카운팅 세마포 로 쓰는거 설명하는거 나옴
c) mutex 나 뭐 그런걸로 바이너리 세마포용으로 쓸수 있는데 굳이 왜 바이너리 세마포를 제공 해주나?
d) mutex 구조체 (맞나?)의 변수중 Counting관련 머시기가 있는데 이걸 상호배제 세마포에서는 어떻게 활용하나?
e) 메시지 큐 박스로 카운팅 세마포 용으로 쓰는 방법
a) uCOS-ii 에서 ANSI C의 malloc와 free를 사용하지 않는 이유?
b) 메모리 정보 구조체..의 주요 필드와 용도를 설명하시오.
- Ruby/2011년스터디/강성현 . . . . 6 matches
* 동네API를 이용한 동문 네트워크 홈페이지 제작
* 기존 사이트를 조금 더 사용자 친화적으로 만들고, 모바일 기기에서도 부담없이 볼 수 있도록 함.
* json parser 구현 (정규표현식 이용)
* 만들어진 json parser를 이용하여 각 api의 입/출력을 처리할 수 있는 함수 작성
* page design, layout 등은 [html] 이용 ( [Ajax]도 사용)
- ScheduledWalk/창섭&상규 . . . . 6 matches
* 사용자(User) -> 프로그램 사용자와 대응되는 객체
* 모든것을 진행한다.(Execute) | 사용자(User), 판(Board), 바퀴벌레(Roach), 여정(Journey)
진행자는 사용자에게 진행에 필요한 정보를 요청한다. 사용자는 판 크기, 바퀴벌레의 시작위치를 알려주고 여정을 만들어 준다. 진행자는 정보에 따라 판을 만들고, 바퀴벌레를 만든다. 그리고 나서 바퀴벌레에게 여정을 주며 판 위에 올라가서 판 위를 움직이도록 명령한다. 바퀴벌레는 여정을 참고하여 자취를 남기면서 판 위를 움직이고 여정이 끝나거나 판의 모든 곳에 자취가 남으면 움직이는것을 멈춘다. 바퀴벌레가 멈추면 진행자는 판을 사용자에게 보여준다.
- SubVersionPractice . . . . 6 matches
저장소에 있는 프로젝트를 사용자의 컴퓨터로 가져오는 명령이다. 사용자는 체크아웃한 프로젝트를 가지고 작업한다.
저장소에서 최근에 변경된 내용을 사용자가 작업하는 프로젝트에 적용한다. (주의해서 사용)
- TCP/IP . . . . 6 matches
소켓 프로그래밍을 위한 TCP/IP 용어 정리
쉽게 말해서 데이터를 파일에 쓰고 읽는 것처럼 소켓을 사용해서 데이터를 쓰고 읽을 수 있단 소리다.
* Interactive Shell이 지원되는 언어(e.g. Python, Ruby, ...)를 사용하면 TCP/IP의 개념을 아주 빠른 시간 안에 배울 수 있음. (Python은 내부적으로 C 라이브러리를 그대로 사용) 또, 현재 개발된/개발중인 시스템을 테스트 하는 데에도 매우 편리함. 예컨대, 리코에서는 XMLRPC 서버 접속을 파이썬 쉘에서 하고(import xmlrpc 한 다음에...), 거기서 사용자 등록 등의 서비스를 직접 사용하게 한다.
- TestFirstProgramming . . . . 6 matches
후자의 경우는 해당 코드의 구조를 테스트해나가는 방법으로, 해당 코드의 진행이 의도한 상황에 맞게 진행되어가는지를 체크해나가는 방법이다. 이는 MockObjects 를 이용하여 접근할 수 있다. 즉, 해당 테스트하려는 모듈을 MockObject로 구현하고, 호출되기 원하는 함수들이 제대로 호출되었는지를 (MockObjects 의 mockobject.py 에 있는 ExpectationCounter 등의 이용) 확인하거나 해당 데이터의 추가 & 삭제관련 함수들이 제대로 호출되었는지를 확인하는 방법 (ExpectationList, Set, Map 등의 이용) 등으로서 접근해 나갈 수 있다.
=== 시나리오의 이용 ===
이 경우에도 ["MockObjects"] 를 이용할 수 있다. 기본적으로 XP에서의 테스트는 자동화된 테스트, 즉 테스트가 코드화 된 것이다. 처음 바로 접근이 힘들다면 Mock Server / Mock Client 를 만들어서 테스트 할 수 있겠다. 즉, 해당 상황에 대해 이미 내장되어 있는 값을 리턴해주는 서버나 클라이언트를 만드는 것이다. (이는 TestFirstProgramming 에서보단 ["AcceptanceTest"] 에 넣는게 더 맞을 듯 하긴 하다. XP 에서는 UnitTest 와 AcceptanceTest 둘 다 이용한다.)
- TheJavaMan/비행기게임 . . . . 6 matches
* RPG형식을 비행기 게임에 적용해본다.
- 처음 시작할때 비행기를 고르는 것이 아니라. 랜덤하게 비행기의 성능이 적용되어 시작하게 된다. (랜덤하게 미사일의 파워, HP, MP, 스킬의 파워, 비행기의 모습 등등이 정해진다)
- MP를 사용하여 스킬을 사용할 수 있다.(일단 한가지 스킬만 만들어본다)
..기타 추가할 아이디어들도 RPG게임을 생각하면서 적용해 보는 것이 좋을 것 같다. -[문원명]
* DoubleBuffering , Thread 등을 적절하게 이용해보세요~* - [임인택]
- ViImproved . . . . 6 matches
Text Editor인 VI 의 확장판. [[NoSmok:CharityWare]], [[WikiPedia:Careware]] 인 아주 유연한 에디터. 처음에 접근하기 어렵지만, 익숙해지면 여러모로 편리한 응용이 가능하다.
사실 다들 오해하고 있는 것 중의 한가지로는 vim은 불편하다는 것이다. 최근의 vim은 플러그인을 통해 여러가지 기능을 지원하며 그 중에는 단어 자동완성을 물론 문맥 자동완성뿐만 아니라 대부분 언어에 대한 syntax highlight를 지원한다. 요즘에는 흔히 볼수있는 탭기능도 지원하기 시작한지 오래되었으며 좌측에 파일 트리를 띄워두고 작업할수도 있다. 또한 .vimrc파일을 통한 강력한 커스텀마이징이 가능하며 이를 이용하여 이클립스를 능가하는 편의성을 지니기도 한다.
== 사용법 ==
[[/사용법]] 참조
* vimrc 을 직접 건들여 수정하기 힘든 사람들에게 꼭 추천하고 싶은 사이트 [[https://vim-bootstrap.com]] - 사용법은 직접 검색바람 - makerdark98
* [[http://kldp.org/node/125263|vim 사용자를 위한 플러그인 매니저 vundle 을 소개 합니다. - KLDP]]
- WikiStyle . . . . 6 matches
위키위키에 좋은문체에 대해 생각하고 제로위키(ZeroWiki)에 적용했으면 합니다.
* 가능하면 이인칭, 삼인칭을 사용해서 다른 사람이 수정, 첨가하기 쉽게 만든다.
* 사실/조언으로 만들기 어려운 개인적 경험에 대해 쓸 때에는 일인칭을 사용하고 끝에 필명을 붙인다.
* 문두삽입방식 (최신 내용을 맨 위에 쓰는 방식) 은 기존 게시판에서 온 방식으로 자칫하면 무비판적으로 적용하기 쉽다. 해당 방식이 현재 쓰려는 글을 배열하는 좋은 방식인지 비판해보고 적용하자.
- XMLStudy_2002/Encoding . . . . 6 matches
*단순한 텍스트 형태의 XML문서를 다양한 언어로 작성하기위해 각 언어에서 사용하는 인코딩 방식을 사용한다.
=== 일본어 사용하기 ===
*XML에서 유니코드를 사용하면 한 문서 내에서 어떤 부분은 한국어로 또 어떤 부분은 일본어로 작성하는게 가능하다.
=== XML에서의 unicode 사용에 대한 사이트 ===
*다국어 지원 웹 컨텐츠 제작시 XML과 Unicode의 결합을 역설한 내용 : [http://www.tgpconsulting.com/articles/xml.htm]
- Xen . . . . 6 matches
젠(Xen)은 오픈소스 기반의 가상화 SW다. 젠은 하나의 컴퓨터에서 여러 종류의 운용체계(OS)를 사용할 수 있게 하는 SW로 한 가지 단점은 OS를 수정해야 한다는 점. 그러나 올해 공개될 인텔의 밴더풀(vanderpool)이나 VT 기술을 적용할 경우 OS 수정이 필요하지 않을 것으로 보여 빠른 확산이 예상된다.
현재 젠은 인텔 펜티엄과 같은 x86 계열 프로세서에서 작동되지만 곧 다른 프로세서에서도 작동될 것으로 보인다. AMD는 패시피카(pacifica) 등 차세대 기술이 적용되는 64비트 기반 옵테론 칩세트에서 젠을 사용할 수 있도록 할 계획이다. 인텔은 아이테니엄 프로세서에서도 실험적으로 젠을 지원하고 있으며, IBM도 파워 칩에서 젠을 사용하는 데 관심을 보이고 있다
- Yggdrasil/가속된씨플플 . . . . 6 matches
* 그런데 감히 ''완료''란 단어를 사용하기가 두렵다.
잘알고 있겠지만, 지금 하고 있는 내용은 [AcceleratedC++]의 하위 요약 페이지와 많은 부분이 중복됩니다. 만약 이대로 유지한다면, 두 내용 모두 불완전한체로 끝나게 되겠지요. ([Yggdrasil/가속된씨플플/1장]와 [AcceleratedC++/Chapter1] 비교) 그렇다면 어떻게 할까요? 두페이지를 대상으로 [페이지다듬기]를 합니다.
* 그렇군요. 확실히 그런 하나의 완전한 페이지가 있는 편이 좋겠네요. 하나로 정리할 때는 역시 이전의 페이지를 작성한 사람과 상의를 해서 해야겠죠? 아니면 그냥 제가 추가하고 싶은 내용을 추가하면 됩니까? 후자의 경우는 '기본적인 사실인데 제가 잘 모르고 있던 개념' 같은 건 쓰기가 좀 곤란하겠군요. --영동
* 요약과 같은 객관적인 내용은 NoSmok:말없이고치기 를해도 상관없다고 생각하며, 후자의 개념 문제는 확실하지 않은 내용은 쓰지 않으면 되지요. 중요한 것은 중복된 페이지를 양산하지 않는다는 점입니다. --NeoCoin
- ZeroPageServer/BlockingUninvitedGuests . . . . 6 matches
- 만약 해당 페이지를 생성하는 주체가 로봇이 아닌 검색엔진의 결과를 클릭한 사용자라면 이 방법은 적절하지 않다.
- [임인택]의 [http://purepond.cafe24.com/ 개인위키]도 ZeroPage 에서와 같은 문제점을 (그것도 더 심하게) 겪었는데 아파치의 보안기능 (.htaccess 파일 이용)을 적용해봐도 결과는 마찬가지였다. 누군가의 장난이거나 검색엔진(+사용자)의 무지에서 오는 문제인것이 확실하였는데. 결국 NoSmoke:노스모크모인모인 의 '''등록한 사용자만 글을 쓸수 있게 하는''' 기능을 이용하여 이 문제를 해결하였다. 여담으로.. 쓰레기 페이지를 손수 지우느라 엄청 고생함...-_-;;
- django/Model . . . . 6 matches
모델은 웹 어플리케이션에서 사용할 데이터를 명세한 python소스코드이다. 모델은 데이터베이스와 연동되며, 간단한 경우 모델 하나가 데이터베이스 테이블 하나로 매핑된다. 따라서 웹 개발자는 데이터베이스를 직접 손대지 않고 소스코드인 모델을 변경해가면서 작업을 진행할 수 있다. 모델을 변경할 때마다 django에서 제공하는 manage.py syncdb를 이용하면 변경된 모델이 데이터베이스 테이블에 반영된다.
모델은 사용자가 지정하지 않는 경우 기본적으로 id라는 이름으로 정수형 주키를 가진다.
하지만 이 경우 risk_report와 control_report의 합성키를 사용하도록 지원하지 않는다.
Django는 정의한 모델에 Admin클래스를 재정의해서 이를 삽입, 삭제, 갱신할 수 있는 기본적인 관리자 인터페이스를 자동으로 생성해준다. 사용자 인터페이스는 입력 항목을 원하는대로 배치할 수 있으며, 원하는 디자인도 적용할 수 있다. 이것으로 기본적인 입력 시스템은 만들어졌다.
- django/ModifyingObject . . . . 6 matches
SQL문에서는 insert into values 구문을 이용해 레코드를 삽입하고, update set where 구문을 이용해 레코드를 수정한다. 하지만 django는 이 둘을 하나로 보고 데이터베이스에 레코드를 삽입하고 갱신하는 작업을, 모델로 만든 객체를 저장(save)하는 것으로 추상화했다. 기본적으로 모델클래스는 save메소드를 가진다. 따라서 개발자가 작성한 모델도 save메소드를 가지며, 이는 오버라이딩 할 수 있다. 아래 예에서 보듯이 save 메소드는 새로만든 레코드 필드의 속성에 따라서 적당히 삽입과 갱신 작업을 수행한다.
Employee 모델에 해당하는 새로운 객체를 만들고 save메소드를 이용하면, 데이터베이스에 새로운 레코드를 삽입하거나, 기존의 레코드를 갱신한다. 기존에 삽입하지 않았기 때문에 처음 save를 호출하면 레코드를 삽입하고, 다음 번 save를 호출하면 레코드를 갱신한다. 레코드는 객체로, 레코드의 속성을 객체의 멤버 변수로 취급한다.
save메소드는 우선 현재 저장하려는 레코드의 주키를 가지고 데이터베이스를 검색하여 레코드를 삽입할 지 갱신할 지 결정한다. 주키를 이용해 기존의 레코드를 찾은 경우에는 단순히 갱신한다. 주키를 이용해 레코드를 찾지 못한 경우에는 단순히 삽입한다. 만일 주키가 없는데 레코드가 있는 경우에는 삽입하여도 상관이 없으므로 삽입한다. 다음은 save메소드의 주요 분기점을 보여주고 있다.
데이터베이스에서 레코드를 삭제하는 작업은 Model클래스의 delete메소드로 추상화했다. 하지만 내부에서 실제로 레코드를 삭제하는 메소드는 delete_objects이다.[8] delete_objects메소드는 지우려는 레코드를 참조하는 다른 테이블의 레코드까지 함께 삭제하거나, 외래키를 NULL값으로 설정한다. 예를 들어 다음은 Risk테이블에서 한 레코드를 삭제하는 경우 이를 참조하는 Consequence, Control 테이블의 레코드까지 함께 삭제하는지를 묻는 사용자 화면이다.
- html5/문제점 . . . . 6 matches
* Flash를 사용하는 것이 아직은 조금 더 낫다.
* 오디오, 비디오 재생 시 자동 감지에 의한 재생, 고화질 파일 재생, 대용량 스트리밍 서비스,
* DRM(디지털 콘텐츠 무단사용 방지) 기능이 아직 없어 비지니스적으로 이용이 어렵다.
* 플러그인 기술은 데스크톱, 모바일 및 향후 멀티 터치 단말에 까지 확장 가능한 유용성이 있다.
* HTML5는 디바이스 상호 작용(캠이나 마이크 지원 x)이 불가능하다.
- pinple . . . . 6 matches
bitBukket : 소스 저장소 fork를 유용하게 썻음.
Heroku : 테스트 서버로 사용 현재 실서버로도 활용중.
== 사용 framework 및 기술 ==
학습비용이 높았다.
* 소통이 힘듬 -> 답을 확인 하기가 힘든 트렐로 보다는 irc같은 즉답을 할수 있는것을 활용하는것이 나았을수도..
- vending machine . . . . 6 matches
설계하고자 하는 자동 판매기에서 사용 가능한 동전은 50원, 100원, 500원 짜리 3가지이고, 커피 값은 150원이라고 가정한다. 이 자판기는 커피 값 150원 이상의 돈이 입력되면 무조건 커피를 출력하며, 커피 출력 후에 커피값 이하의 잔돈이 남을 경우 잔돈을 반환한다.
설계하고자 하는 자동판매기의 경우 사용 가능한 동전이 50원짜리, 100원짜리, 500짜리 3가지라고 설정하였음으로 이 회로의 입력은 당연히 50원짜리 동전이 입력되는 경우, 100원짜리 동전이 입력되는 경우, 500원짜리 동전이 입력되는 경우가 있을 수 있다. 입력에 대한 경우의 수는 동전이 들어오지 않는 경우, 50원 짜리가 들어오는 경우, 100원짜리가 들어오는 경우, 500원짜리가 들어오는 경우의 4가지가 되어 입력변수는 2개가 필요하게 된다. 2개의 입력변수를 각각 X, Y 라 하고, 동전이 입력되지 않을 경우에는 XY=00이 되고, 50원짜리 동전이 입력되면 XY=01이 되고, 100원짜리 동전이 입력되면 XY=10이 되고, 500원짜리 동전이 입력되면 XY=11이 된다고 가정한다.
커피값이 150원이고 사용하는 동전의 최대값이 500원이므로 거스름돈을 계산하기 위해서 상태는 0~450원까지를 상태 변수로 설계한다. 따라서 상태변수는 4개가 필요하게 된다. ABCD=0000일때는 현재 남아있는 돈이 0원인 상태이고, ABCD=0001 일때는 남아있는 돈이 50원인 상태, ABCD=0010 일때는 남아있는 돈이 100원인 상태, ABCD=0011 일때는 남아있는 돈이 150원인 상태, ... , ABCD=1001 일때는 남아있는 돈이 450원인 상태, 그리고 ABCD=1010 이후는 사용하지 않는 무정의 조건 상태(Don't care condition)로 처리한다. 또한 Filp-flop은 D Flip-flop을 사용하기로 한다.
자동판매기의 출력변수로는 커피가 출력되는지의 여부를 나타내는 변수 C와 잔돈 반환을 나타내는 출력변수 E를 사용하기로 한다. 따라서 2개의 출력변수 C,E가 필요하다. CE=00 1)일 경우는 커피와 잔돈이 모두 출력되지 않는 상태이고, CE=01 일 경우는 커피는 출력되고 잔돈이 없는 상태, CE=10일 경우는 커피는 출력되고 잔돈이 50원인 경우, CE=11일 경우는 커피는 출력되고 잔돈이 100원인 상태를 가정한다.
- 강성현 . . . . 6 matches
* [http://www.riss.kr/link?id=T13688893 온라인 집단의 의견을 이용한 의사 결정 지원 시스템]
* 자료구조(한상용 교수님) 수업조교
* 컴퓨터구조(한상용 교수님) 수업조교 (2학기)
* 자료구조(한상용 교수님) 수업조교 (1학기)
* [http://ec.cse.cau.ac.kr 전자상거래 및 인터넷 응용 연구실](EC Lab) 석사과정 ( - 2015.2)
* OOPARTS 팀 (강성현, [김준석], [장용운]) 으로 참가. 교내 1위
- 고한종 . . . . 6 matches
>Mongo, Redis 사용 경험 있습니다.
* 2학년 JAVA 팀플용으로 만든 것. 얼마전에 엄마 갤S2에 그대로 남아 있는걸 보고 놀람. - [고한종], 13년 3월 16일
* JAVA의 Swing으로 만든 시간표 대신 만들어주는 프로그램 (...) 사실 만들어 놓고 안쓴다. 2학년 말에 만들어 놓고 이번 학기(2013년 1학기)에 본인조차 안 쓴걸 보면 기획부터가 잘못된 물건. 일단 소개를 하자면, 수강신청 기간이 되면 포탈에 그 학기에 개강될 과목들을 정리해서 xls 파일로 올려줍니다. 이걸 받아서, poi 라는 JAVA 라이브러리? 에 넣고 돌리면 "[cell값]" 형식으로 String이 나옵니다. 그럼 이걸 stringTokenizer에 ]와 [를 토큰으로 해서 잘게 쪼개줍니다. (애초에 그런거 없이 CSV로 나오면 최고겠지만.. 할줄 모름 ㅠ). 사실 그냥 엑셀에서 CSV로 만들어 쓰면 되는 데, 그때 당시엔 사용 편의성을 도모한답시고 뻘짓 함. 어짜피 아무도 안 쓸텐데 ㅠㅠ 그렇게 얻어낸 과목의 시간정보를 ArrayList에 넣고, 그걸 가지고 backtraking인지.. 를 했던것 같음. 결국 속도는 처참했지만 -_-... 모든 결과가 나오는 것도 아님. 마지막으로 코드를 수정하고나서 테스트로 돌렸을때, 내가 실제로 수강신청했던 시간표는 나오지 않았음 ㅇㅈㄴ... - [고한종], 13년 3월 16일
* 나름 사용하기 쉽게 만든다고 만들었는데, 초기 셋팅에서 이상한짓해서 망치는사람이 은근 많다. 이거 만들고나서 컴퓨터 못하는사람들이 다 멍청이로 보인다 어뜩함 -_-;;; - [고한종], 13년 3월 16일
* 원본 프로그램은 ActiveX로 만들어져있었다. 게다가 스레드 돌리기 싫어서 DoEvent 기법을 썼다(...) 이걸 나는 iOS로 포팅 하는데 성공했다. ActiveX도 결국 MFC이기 때문에 별로 안 어려워 보일 수 있으나... 모든 사용자 정의 함수는 void형에, 모든 멤버변수는 public이어서 어디서 초기화하는지 일일히 찾아서 작업해야 했다. 미치는줄 알았음. 심지어 한 함수안에서 딱한번 쓰는 변수도 클래스 멤버변수로 선언되어 있기도 했음.. 그냥 지역변수를 쓰지!? - [고한종], 13년 3월 16일
* 아 그러고보니 저 1학년때 고퀄로 뽑아오면 용서해준다고 하셨죠. 정말로 고퀄로 뽑아 볼까요? - [고한종], 13년 3월 16일
- 기억 . . . . 6 matches
1. 용량이 제한 된다.
* Miller(1956)는 단기 기억 저장 공간을 7+-2 즉, 5~9로 라고 하여, 이를 magic number 7이라고 한다. 이 원리는 전화 번호나 우리가 알파벳을 외울때 사용된다.
* chunking(청킹) 은 자주쓰는 관용어구 같이 유의미 한 단위의 한 묶음을 이야기 하며 magic number를 이용해 기억력을 비약적으로 증가 시킨다. tree구조의 책 구성이나, 마인드 맵에서 발견할수 있다.
1. 용량 무제한.
a. 기억에 작용하는 요인
- 니젤프림/BuilderPattern . . . . 6 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 라고 할 수 있겠다.
Builder 를 구현한 부분. 일반적으로 다수개의 Concrete Builder 가 존재하며, Builder 가 제공하는 인터페이스를 이용해서 late binding 의 형식으로 사용하게 된다. 물론, builder pattern 에서의 주 관심하는 Product 를 만들어내는 것이다.
- 데블스캠프2002/날적이 . . . . 6 matches
* [영동] : 처음엔 남훈이 형의 세미나를 들었습니다. 제가 컴퓨터에 대해 거의 모르는 터라 처음 보는 용어가 너무 많았습니다. 그래서 그런지 "A는 어떤 어떤 일을 한다..."는 설명을 들으면 A가 어디에 속한 건지 혼란이 온달까... 그래도 나중에 동영상을 보니 그럭저럭 이해가 되는 것 같습니다. 남훈이 형 수고 많이 하셨습니다. 나중에 목소리 잘 안 나오는 거 보고 참 감사하다고 생각했습니다. 그리고 세미나가 끝나고 드디어 객체지향 프로그래밍으로 랜덤워크(스케쥴드워크로 개명됨)를 짜게 되었습니다. 어제 고민되던 문법은 의외로(?) 간단하더군요. 아직 구체적으로 들어간 게 없어서 그런가? 프로그래밍을 하는데 초반에는 5분에 한번씩 키보드를 파트너에게 넘기는 룰이 있었으나 후반엔 버그에 서로 정신이 팔려 그 규칙을 잊어버리고 거의 파트너였던 재니가 거의 짠 거 같습니다... 하여간 여기서 어려운 것은 전달인자를 넘기는 것이었습니다. 넘길 때 자꾸 변수 이름이 혼란스럽다는 것. 그리고 처음에 작성한 추상적으로 보이던 OOP 디자인. 여기서 프로그램을 이끌어 낼 수 있다는 것이 놀라웠습니다. 물론 그 이끌어 내는 과정이 너무 어렵다는 것이 문제지요. 또 한가지 놀라운 것은 확실히 객체지향 프로그래밍을 쓰면 코드의 길이가 확실히 줄어든다는 것이었습니다. 마지막으로... 세미나 준비하시고 프로그래밍 도와주신 선배님들 정말 감사합니다.
* 일부러 문법쪽에 대한 정통적인 설명을 배제하긴 했음. 뭐.. 그정도만 해도 디자인 타임때 디자인한 객체를 구현하는데 문제 없을 것 같고 해서. 졸지도 않고 끝까지 둘이서 같이 이야기하면서 플밍 하는 모습이 보기 좋았던 거 같아. 그리고 요구사항 추가내용인 바퀴벌레 2마리일때와 2차원 판이 아닌 3차원 직육면체를 돌아다닐때에 대해서 StructuredProgramming 과 ObjectOrientedProgramming 을 하여 비교하면 문제점 면에서 그 차이를 확실히 알 수 있을것임. --석천
* 대근) 오호... Unix 를 사용한 것은 정말 뜻깊은 기회였습니다. Linux의...그것도 이론만 접해본 저로서는 익힌 명령어들을 쓰구 쓰구~~ 또 쓰면서 너무 기쁜 시간이었습니다.. 물론 숙제라는 강박관념두 없었고요...[[BR]]
정말 랜덤 워크는 어려웠습니다.. 저는 랜덤 방향을 하나하나 만들어서 ELSE IF 문으로 돌고 또 돌았습니다.. 나중에 풀고 나서 재동형이 보여준 소스인 방어벽을 사용하지 않는 소스를 보고 아차~ 하는 생각이 들더군요.. 동적 2차 배열도 참신하게 재밌었습니다... 나머지라...[[BR]]LINKED LIST는 손도 못 대밨지만 옆에서 하시는 걸 보니 정말 어렵더군요..-_-;;[[BR]] 하노이의 탑 역시 지금 열심히 6시가 넘겨 풀고 있지만 풀릴지.....^^[[BR]]
* 현민 : 오늘 처음으로 유닉스라는 것을 해봤는데 윈도우처럼 그래픽 기반이 아니라서 사용하기가 힘들었습니다.
그리고 처음에는 스위치 함수안의 이프문을 사용했는데 중복되는 명령문들이 아주 많이 나와서 소스가 너무 복잡하게 보였습니다. (재동
- 데블스캠프2004/목요일후기 . . . . 6 matches
느낌 : 앞으로 유용하게 써먹을수 있을것 같다
느낌 : 암호화와 복호화가 재미있었고, 영동이 형의 마지막 맵을 이용한 복호화와 마지막 암호 welcome2zp 의 암호 재미있었습니다. 배열을 이용하면 어려워 보일 것들도 STL 을 이용해서 쉽게 할수 있다는걸 알았습니다.
* 세미나를 준비하면서 저도 몰랐던 내용을 공부하게 되었네요 - 민수
* Siver bullet 는 Pair + 요구사항 변경일까? 시간이 걸리는 한가지를 진득히 구현하면서 밤을 새는 끈기를 이끄는 방법은 없을까? 재동 처럼하지 않은 것은 작년과 같은 기억으로 진행했었던 모양이다. 역시 피드백은 유용하군. ([데블스캠프2004/수요일후기] 강사후기에 적어주라) 작년 기록에서는 Pair 는 하지 않았군. 그럼 어떻게 해결했었을까? 03들이 작년의 기억을 되살려 [데블스캠프2004/공유비전]에 끈기를 넣은것 같은데 그때는 어떻게 했었지? --NeoCoin
- 데블스캠프2005/수요일후기 . . . . 6 matches
정수민 : 약간 따라가기 어려운 내용이라 좀 힘들었습니다. 자바에 대해 좀더 알아봤으면 합니다.
김민경 : 강의내용이 어려워서, 다들 소화를 못했어요. 아쉽네요. 우리의 수준을 잘 몰르셨던듯.ㅠ
느낌: 오늘 한 내용들은 너무 어려웠다.
교훈: 너무 어려운 내용들이 많다. 시간이 지날수록 공부할 내용들이 너무 많은것 같다.
* 아직도 세미나를 할때마다 머리속이 새하얗게 변해 버린다. 생각보다 진도를 못나가고 자바의 새로운 기능에 대해서 많이 보여줄수 없었다. 문법적이나 개념적으로 지나치게 욕심을 많이 부린 탓인것 같다. 의외의 곳에서 새내기들이 버벅이고...원래 생각은 재학생이 생각외로 많이 오지않아도 새내기끼리 할수 있는 난이도 라고 생각했었는데... 선배들에게 강의 내용을 검증받지 못한점이 너무 아쉽다. 어제 엊그제 보다 지나치게 재미 없지 않았나 싶다. 설명도 지나치게 추상적이고...OOP를 어렵게 배운 만큼 새내기의 마음도 잘 이해할수 있을거라고 생각했는데... 생각보다 그러지 못한것 같다.
- 동문서버위키 . . . . 6 matches
동문서버위키가 현 상황에서 제로페이지의 위키나 다른 성공적 위키 사이트에 비해 상대적으로 사용이 저조하고 NoSmok:DegreeOfWikiness 가 낮고 무엇보다도 사람들이 해당 위키를 통해 얻는 "삶 속에서의 가치"(혹은 효용)가 없어서 한마디로 실패한 커뮤니티 사이트가 된 이유는 무엇일까.
* 위키 스타일의 이해차이 - 이미 잘 정립된 위키스타일을 인식하고 있는 사람이 있던가 하면 그렇지 못한 사람들도 있었죠. 이미 잘 정립된 위키스타일을 알고 있는 사람들이 바로 위키초심자에게 해당 룰을 적용하는 일은 위험한 것이라는 것을 그때 느꼈죠. (일부 사람들은 자신들이 작성하던 페이지를 도로 삭제하기도 했었죠. 위키의 룰이 강제성이 없으며, 반론을 제기할 수도 있는 것임에도 불구하고 시간낭비하기 싫었던 것일까요.. 쩝) 위키의 룰은 결국 위키를 사용하는 사람들이 이용해나가면서 서로 암묵적으로 인정해나가는 것들이 룰로서 올라가지, TopDown 식으로 명령하달식으로 내려 올 수 없는것이겠죠.
* 주제의식의 부족 - 이것은 앞의 이야기와 이어지는데요. 인식을 바꾸지 못했던 점과 이어지죠. 주제에 대해서 [http://dongmun.cse.cau.ac.kr/phpwiki/index.php?%B5%BF%B9%AE%C0%A7%C5%B0 동문위키] 페이지에서 언급을 했었으면서도 실제로 열려있는 페이지들이 그러하지 못했죠. 이는 시험서비스였다는 점도 작용하겠지만, 시험서비스가 기간이 너무 길었죠. (기약없는 시험서비스기간) --석천
- 문자반대출력/허아영 . . . . 6 matches
그리고 char 함수를 처음 사용해서. 처음에 에러도 많이 났다.
단점: 한글과 영어를 섞어서 사용 못한다는 점. 영어와 한글을 섞을 수 있는 ver.3 만드는 것이 문제.
비베에서는 한글이나 일본어처럼 2바이트를 사용하는 글자의 경우 알아서-_- 판단하고 한 글자 단위로 읽는 함수가 있긴 한데 씨에서는 알파벳과 같은 1바이트 문자인지 아니면 2바이트 문자인지를 어떻게 구분해야 할까요? -태훈 [zyint]
한글로 해봤었는데, 이 프로그램은 영어만 되나, 하고 생각했었습니다. 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바이트 문자이다)라는 것을 말합니다.
- 방울뱀스터디/GUI . . . . 6 matches
anchor=NW # 객체위치를 북서쪽으로 설정. fill옵션을 사용하지않아야 제대로 보일꺼 같은...
스크롤바는 대부분 리스트박스, 캔버스(Canvas)등과 함께 사용된다.
수평 스크롤바사용시에는 yscrollcommand대신 xscrollcommand, yview대신 xview를 사용..
window_create대신에 image_create를 이용하여 단추를 문서 안에 추가시킬수도 있음.
텍스트를 읽기전용으로 만듬.(state=NORMAL로 해주면 수정가능)
- 분류패턴 . . . . 6 matches
페이지 하단에 '''XXX분류''' 라는 링크를 남겨서 그 정보를 위키시스템이 이용할 수 있도록 한다. 위키의 전체 페이지 내용검색 기능을 이용해서 같은 분류에 속하는 페이지만 찾아낼 수 있다.
* 기본적으로 다음의 분류들이 존재한다. 추후 다른 분류들을 생각할 수 있겠다. 해당 분야에 대해 바라보는 시각에 따른 분류가 필요할때는 wiki:NoSmok:지도패턴 을 이용하는 것이 더 효율적일 것 같다.
* 프로젝트로부터 분파된 페이지들은 분류링크에 해당 프로젝트를 적는다. 그렇게 함으로서 해당 프로젝트와 관련된 페이지들을 분류패턴을 이용, 묶을 수 있다. (ex - ExtremeProgramming 쪽) 분류는 여러개를 두어도 상관없다.
* 가급적 프로젝트들은 Project 네임스페이스를 적용하고 프로젝트가 끝나면 문서구조조정을 통해 일반화된 페이지들을 빼낸다. 이렇게 함으로서 비슷한 주제들에 대해 묶을 수 있을 것이라 생각된다.
- 빵페이지/숫자야구 . . . . 6 matches
DeleteMe 내용이 중복되어서 문제정의와 참고자료 부분을 지웠습니다. 위키라는 지식 풀속에 중복되는 지식은 링크로 충분하겠지요. 아래의 문제들 역시 {{{~cpp 숫자야구/유주영}}} 식으로 하는 편이 차후 접근성 측면에서 더 좋을것 같습니다.--NeoCoin
int rand_num[3]; //난수생성에 사용될 변수입니다.
int i, j, k, num; //i,j,k 는 포문용, num 은 사용자 입력입니다.
int player_num[3]; //사용자가 입력한 값을 각 자리 숫자로 나눠서 rand_num과 비교하기 쉽게 만듭니다.
- 소스코드를 보아하니 레이블로 '''cin''' 을 사용하였군요. cin 이 c++의 예약어는 아니지만 예약어와 마찬가지인 ostream 의 객체 이름입니다. 이런 레이블은 코드를 읽는 사람에게 그 의미가 와전되어 전달될 수가 있습니다. - [임인택]
- 새싹교실/2011/GGT/L1&L2 . . . . 6 matches
=== 가르친 내용(fact) ===
* 컴퓨터에 대한 기초적 내용
* 막상 생각했던 것들을 잘 얘기하지 못한것 같다. 수업전에 수업할 내용을 정리&기록 하도록 해야겠다.
* 위키 사용법을 먼저 알려줬어야했는데 하지 못했다.
=== 가르친 내용(fact) ===
=== 배운 내용(fact) ===
- 새싹교실/2011/學高/5회차 . . . . 6 matches
=== 가르친 내용(fact) ===
=== 배운 내용(fact) ===
추가된 내용은 %(모듈러스?)는 *,/와 우선순위가 같다정도?
=== 배운 내용(fact) ===
배운 내용이 잘 기억이 안난다 ㅜㅜ
=== 배운 내용(fact) ===
- 새싹교실/2011/무전취식/레벨10 . . . . 6 matches
== 수업 내용 ==
* strlen()함수의 사용에 대해 알아봤죠
* 주석을 이용한 프로그램 설계 방법
* ㅋㅋㅋ오늘도 일등입니당*_* 위키올라오기전에 미리 확인한 건 처음이에요. 과제하다가 들어와서 써용. 오늘 코딩해본 1, 2번은 다했습니다. 스스로 생각해보고 스스로 코딩해보는게 중요한 것 같아욧!! 문제를 보고 어떻게 해결할까 고민하는 과정이 실력을 키우는 것 같네용... 여태까진 다른사람 생각을 그대로 옮기는 코딩을 했다면 이제부터는 제 스스로 생각해보고 코딩을 해야겠어요히히*-_-* 하하핫 이제 3번을..... - [이소라]
* 무능무능해진 소라. 그래도 가장 코딩을 잘하는군요. 역시 경험자는 달라=ㅂ=. 1등은 이쁘니까 과자한개 사주고싶은 마음만 줄께. 과제를 올라오기 전에도 했군용. 잘하고있습니다. 계속 고민하고 디버깅하는 과정이 프로그래머에겐 필요한 과정이지. 이번주에는 코딩만해서 딱히 많은 것을 느낄것이 없었지만 그래도 충실하게 후기를 써줘서 고마움. - [김준석]
- 새싹교실/2011/무전취식/레벨3 . . . . 6 matches
이진영 : 오늘 아침에 일어났는데 오늘이 토요일인줄 알았음 ㅠ.ㅠ 꿈꿔서. 근데 엄마한테 신난다고 얘기했더니 엄마가 의아해함 . 토요일이라고 밥먹고 놀고있었는데 엄마가 화요일이라고 내 꿈을 깼다 ㅠ.ㅠ 만우절날 교복을 입고 베스킨에 갔는데 소라가 거기 있던 사람들이 '얘넨 진짜 고딩인가봐'라고해서 기분이 좋았다. 일요일에 과외를 시작했어요.(초딩이 고1을 가르친다) 그때 어머니가 오셔서 5만원 추가금액을 줌. 통장이 꽉차서 좋음 ㅠㅠ ~~~! 그리고 선대하는 시간에 과외공부해서 난감해용 ㅠ.ㅠ 그리고 토요일에 처음으로 고진감래 주란걸 먹어봤는데?? 맥주잔에 소주잔을 넣고 콜라를 넣어요. 그리고 또 소주잔을 넣고 소주를 넣어요 그리고 맥주를 맥주잖에 넣으면. 참 쉽죠? 그리고 흔들면 거품이 섞이면서 맛이나는데 첨은 쓰다가 뒤에 콜라맛덕택에 달아서 고진감래 주임. 그리고 그거먹고 빙글빙글@_@ 얼굴이 터질것 같았다. 심장이 배에서도 뛰고 귀에서도 뛰었어요@_@_@///
== 수업 내용 ==
* 변수는 이름이 두개다! 하나. 사용자가 지정해주는 변수명. 둘. &변수명 을 하면 나오는 주소값.
* 이번 주 수업은 짧았지만 그래도 지난 수업 내용을 되짚을 수 있어서 나름대로 큰 의미는 있었어요~! 숙제로는 봉봉 교수님 강의때 했던 실습내용들을 전부 해보는 건데 아직은 막히는 것들이 조금은 있는것 같아요. 그런데 그게 프로그래밍 미숙으로 막히는게 아니고 그냥 제가 수학적 능력이 딸려서 막히는 것 같아요 ㅜㅜ 이제 C프로그래밍 정규수업도 실습 숙제가 나왔는데 잘 해결 됬으면 좋겠어요. -[서원태]
* 복습을 했습니다 오늘은 한시간밖에 수업을 하지않았네요 ㅠㅠ 오빠도 일이있으셨고 저도 창설 팀플을 하기위해 갔지용..ㅠㅠ 오늘은 아이스브레이킹이 젤로 재밌었어요ㅋㅋㅋㅋㅋ 사실 진짜 별로 한게 없었던 주였는데... 생각도안났고 ㅋㅋㅋㅋㅋㅋㅋ 쓰다보니 젤 많이 썻어요ㅋㅋㅋ 복습은 정말 중요한 것 같습니당☞☜ 배열도 잠깐 맛보기했었는데 배열 정말 못해요!!!ㅋㅋ 배열 빨리 들어가서 정확하게 알고 쓸 수 있었음 좋겠습니당ㅎ_ㅎ!!!!! -[이소라]
- 새싹교실/2012 . . . . 6 matches
||2||[새싹교실/2012/Dazed&Confused]||권순의, 김민재, 박승우, 박용진|| 10회차 진행 || 화요일 6시 ||
||8||[새싹교실/2012/반반]||임용승|| 5회차 진행 || ||
||14||[새싹교실/2012/아우토반]||장용운, 김태헌, 남성준, 박상희, 안혜진 ||8회차 진행|| 목 3시 / 금 오전 9시 ||
||20||[새싹교실/2012/주먹밥]||김준석, 박도건, 용상훈, 한원표|| 8회차 진행|| 수 6시 ||
* 내용이 길어지면 지금처럼 나누는 것도 나쁜 것 같진 않아요. 다만 저는 이렇게 나눌거면 관련페이지 링크를 앞부분에 모아두고 큰 제목은 없애는 게 낫지 않을까 싶은 생각은 듭니다. 제목에 딸린 내용이 페이지 링크 하나밖에 없는데 다 제목으로 분리할 필요는 없을 것 같아서요. - [김수경]
- 새싹교실/2013/라이히스아우토반/2회차 . . . . 6 matches
= 수업 내용 =
== 내용 ==
오늘은 반복문을 이용해서 구구단 실습을 했습니다 ㅋㅋ
3. for문 2개를 이용한 구구단
4. for문 2개를 이용한 팩토리열
int i,j; // for문을 돌리기 위한 인덱스용 변수.
- 새싹교실/2013/록구록구/3회차 . . . . 6 matches
== 수업 내용 ==
while 사용법
* '''조건문을 이용한 간단한 계산 프로그램 만들기!!'''
* '''반복문을 이용한 별 찍기!!'''
요렇게 출력 하면 됩니다.. 대신 반복문을 사용해야겠죠??
else if와 swich를 사용하면 왜 편리한지 잘 와닫지 않았다.
- 스터디제안 . . . . 6 matches
각자 흥미로운 기사를 나눠 갖고 공부한 다음, 함께 모여서 발표하고, 토론하고, 제로페이지 위키에 그 내용을 요약해서 올린다. 기사를 번역할 필요는 없고 대충 어떤 내용인지, 그리고 소감 같은 것, 관련 정보를 함께 연결지어 올린다.
잡지 정리 스터디 같은 경우에는 정모때 정리한걸 간단히 발표 해도 상당히 좋을거 같습니다. 특정한 분야가 아니라 모든 회원들이 들어도 될만한 내용일 테니 회원들에게도 도움이 되고 정모의 입지도 높일 수 있을거 같습니다. - 상협
많은 경우, 특정 주제에 대한 스터디를 만들 때에는 가능하면 독립적인 아이덴티티를 드러내는 이름을 짓기보다, 그냥 공부하는 구체적 주제로 이름을 짓는 것이 나은 것 같습니다(반대로 특별한 이름을 짓는 것이 주는 장점도 많습니다). 어차피 스터디 그룹은 한시적인 것이고, 공부하자고 모인 것이지 어떤 조직을 만들자고 모인 것은 아니며, 해당 그룹이 공부한 내용은 이런 위키에 축적이 될 것이므로. 그룹의 공동체적 성격이 초점이 되고, 공부보다 "관계"가 중심에 놓이는 경우가 있는데, 이는 공부하는 사람들이 피해야할 것입니다. 같은 주제를 공부하고 싶은 사람들끼리 모여서 정말 열심히, 성실히 공부한 다음, 그 자료를 위키에 남기고, 다음을 기약하며 소리없이 해산하면 그만인 것이죠. 이 때의 또 다른 장점은, 다음에 그 주제를 공부하는 다른 스터디 그룹이 있을 때 이전에 스터디를 했던 사람들의 작업에 접근할 확률이 더욱 높아진다는 것이죠. 관계중심적인 공동체를 이루면 장점도 많지만, 외부에서 절연될 확률이 높아진다는 단점도 있는 것 같습니다.
스터디의 이름에 담겨 있는 정보가, 해당 분야나 스터디의 시기의 정보뿐 아니라, 목표에 부합하는 의미가 첨가되는 것 역시 의미있을 것으로 생각합니다. 이름을 읽을때 마다 목표를 상기시키는 역할도 겸할수 있어서, 거울의 역할을 할 수 있을 것입니다. 하지만, 말씀 하신대로 독립적인 주제와 독립적인 의미를 가지게, 목표만을 이름으로 삼는것은 스터디의 내용과 괴리 될수 있다는 위험때문에, 피해야 할 것으로 생각합니다. --["neocoin"]
''어떤 뜻인지? 해당 스터디의 목표로 이름을 짓는 것이 스터디 내용과 괴리될 수 있다라는 말이 해석이 안되는중. --["1002"]''
- 실시간멀티플레이어게임프로젝트/첫주차소스3 . . . . 6 matches
Upload:game2.py -- 지용 일단 대략적인.. 게임 모습만 나옴.근데 시간을 체크해서 건강상태도 증가시켜 주는 거는 너희가 봐야 될거 같은데
Upload:game.py -- 지용, 정훈 주석 좀 달았음
game.py 사용법
- 로그인 인터페이스 깔끔하게->표만들기 태그 이용
일단 이차원 이동하는 소스 올릴께요.. 다른대로 옮기는게 좋을듯.. --지용
프레임 워크는 재동이형이 새로 구상한 것을 구현하려고 하고, 저는 게임 내용을 만드는 일로 바꿨습니다. -- 휘동
- 안혁준 . . . . 6 matches
* ~~Zeropage 용병 입니다.~~ 그냥 정회원.
이하 대부분의 내용은 '''최신화'''되어 있지 않음.
최신의 내용을 보고싶다면..
* 개인용위키 - [http://github.com/HyeokJun/WikiNote wikinote]
* [http://blog.naver.com/qa22ahj/100104060487 리눅스 부팅용 usb 만들기(설정의 저장및 하드 접근 가능)]
* [http://blog.naver.com/qa22ahj/100051706791 고군분투 키바꾸기 프로그램] <- 나름 유용했음
- 오픈소스검색엔진Lucene활용 . . . . 6 matches
* 여러가지로 활용도 많이 되고 되게 유명한거 같다.
= 활용 분야는? =
* 검색이 필요한 모든 분야에 활용 가능
* 예 -> 위키의 내용 검색, 인트라넷, 데스크탑 검색, 그룹 웨어 등등
* 쿼리에 별표를 붙이는 이유는 한글은 저기서 사용하는 분석기는 빈 공간을 중심으로 토큰을 나눈다. 한글도 빈 공간을 중심으로 나누는데 우리가 검색 하고자 하는 중요한 것들을 거의 대부분 앞 글자에 나온다. 그렇다고 그 글자만 치면 검색이 안된다. 하지만 "*"( 검색에서 모든 문자를 의미하는것) 를 뒤에 붙이면 해당 단어 뒤에 어떠한 단어든 붙어 있는 절들이 검색이 될 수 있다. 현재까지는 이러한 방법으로 문제 생기는 것은 없었음.
|| 날짜 || 진행된 내용 ||
- 위시리스트 . . . . 6 matches
* 정기적으로 결제해야 하는 상품이 아닌, 1회 결제로 사용할 수 있는 상품이어야 합니다.
* 비싸지 않은 안드로이드(iOS) 공기계 : 폰 잃어버릴때 대용으로 쓰라는건 아니고..(하루이틀은 그럴수도있겠지만) 개발용 - [김태진]
* 소파 및 1인용 의자(쿠션감있는 등받이없는 것) : 뭐.. 돈이 된다면 - [김태진]
DirectX11을 이용한 3D 게임 프로그래밍 입문
실용 Direct3D 11 렌더링 & 계산
- 장용운 . . . . 6 matches
이름 : 장용운
[장용운/곱셈왕] 38 * 4 = -104 사건
[장용운/알파벳놀이]
*ㄴ API는 코드 완전길어 번거로운 녀석이지 - [장용운]
* 내가 돌아왔다 (2014.1.1) [장용운]
* 내 페이지를 업데이트한다 (2015.3.12) [장용운]
- 정모/2003.1.15 . . . . 6 matches
= 세부 내용 =
* 위키가 어렵다 -> 위키는 처음 접근 장벽이 높은거 같습니다. 우리 01들이 02들에게 그걸 낮춰주지 못한게 실수인거 같습니다. 우리 01들도 처음에는 잘 사용안하다가, 위키를 사용하는 프로젝트를 함으로써 위키를 적극적으로 사용하게 되었는데, 02들을 대상으로 하는 프로젝트중 데블스 캠프 말고는 제대로 위키를 사용하게끔 도와준 프로젝트가 없었던거 같군요. 그나마 지금 활동하는 02들은 위키를 사용한다는 점이 위안이 됩니다. 03학번부턴 이걸 유의해야겠죠.
- 정모/2003.3.5 . . . . 6 matches
2003.3.5 에 있었던 정모의 내용을 기록
== 내용 ==
ZeroWikian 은 준회원이 아닙니다. ZeroWikian의 정의는 '''ZeroWiki 를 사용하는 사람들''' 입니다. NoSmok:OpeningStatement 를 정확히 읽어 보세요. --NeoCoin
* 조금 더 많은 모임에 찬성합니다. 가장 중요한 모임은 학회활동의 중심이 될 학술 모임이 되어야 할 것이라고 생각합니다. ZeroPageEvents 를 잘 이용했으면 합니다. 보다 적극적인 참여가 있는 ZeroPageEvents 들이 많이 추진되었으면 합니다. --["이덕준"]
* 제로페이지 웹 서비스 정도는 웹호스팅 서비스를 받는게 어떨까요. 이제 호스팅 서비스에 그리 큰 돈이 들지 않습니다. 365일 안정적인 서비스가 가능하며 수시로 자료를 백업해야하는 번거로움도 없습니다. 현 ZeroPageServer 는 실습용 서버및 파일 서버로 계속 사용할 수 있습니다. --["이덕준"]
- 정모/2012.12.3 . . . . 6 matches
* 충분한 지원금이 사용될 예정입니다.(일반 MT 비용으로 럭셔리 엠티가..!?)
* 서울 어코드에서 지원 받는 내용 설문조사, 사실대로 대답. 탐탁지않은 반응. 결국 학생에게 들어오는 소리는 적다는 사실.
* [이재형] : 종록이형의 창세기전은 정말 뭐랄까... 지난주 종하형의 OMS만큼 모르는 내용이었지만 흥미 있었어요;;; 그런데 김민재 학우가 과제하러 간 사이에 OMS가 저로 바뀌었네요. 하하하하 아이 좋아라
* [정진경] - 창세기전 옛날에 해봤으나 살라딘이 쌍검(?)을 쓴다는 것 외에는 기억이 나지 않음.. 회고해봤는데 벌써 1년이 지나갔군여. 프로젝트나 스터디에 모두 참여하는 일은 역시 힘든 것 같습니당. 크리에이티브클럽에서 나왔던 것 같은데 개인적으로 관심있는 분야나 하고 싶은 프로젝트를 하는게 어렵다면 전공 수업에서 배운 내용을 위키에 기록하는게 어떠냐..는 내용이 있었습니당. 내년에 저는 사라지기 때문에 막 던지기.. ㅋㅋ 굳이 전공 수업이 아니더라도 최근 어코드 사업으로 특강이나 멘토링 등등 참여할 수 있는 활동이 많기 때문에 학술 활동을 하기 위한 여건이 학부 차원에서 나아지고 있지 않나 싶습니당.
- 정모/2012.3.19 . . . . 6 matches
* 참가자 : [박성현], [서민관], [정종록], [김수경], [변형진], [임상현], [장용운], [정진경], [김태진], [권순의], [황현], [서지혜], [정의정], [추성준], [이민규], [박도건], [PichotFabien],[박상영],[김희성], [김민재] ...
* This meeting was so interesting. I was so glad to meet Fabien. From now, I think we should make our wiki documents to be written in English. - [장용운]
* 전체적으로 영어의 압박이 있었습니다. 사실 영어 하나도 못하지만 그 분위기가 은근 재미는 있었어요. 그런데 앞으로도 계속 정모를 영어로 진행해야하느냐에 대해서는 부정적인 견해를 가지고 있습니다. 외국인 참가자를 배려하는 건 좋지만 한국으로 교환학생을 온 외국 학생이 불편하다면 그쪽에서 한국어를 열심히 공부하는 게 맞는 방향이겠죠? 이 기회에 영어 스피킹을 마음껏 해보고싶은 사람이 영어를 적극적으로 사용하는 건 반대하지 않습니다. 그러나 영어를 사용하는 것이 정모의 원활한 진행을 해치는 것은 아닐지 고민해봐야 할 것 같아요.
* 파비앙의 DVPN, DPKI 이야기 덕분에 분위기가 한층 더 학회스러워졌네요. 작년에 네트워크 응용설계와 정보보호를 수강했던 기억이 납니다. PKI에 대해서는 [데블스캠프2011]에서 간단히 이야기 한 적도 있었어요. 그런데 별로 brilliant한 idea는 떠오르지 않네요… 전 창의적인 사람이 아니라서-_-; 그런데 창의성이란 대체 뭘까요? 요새 창의도전SW를 준비하면서 이 점이 상당히 고민스럽습니다. - [김수경]
* 저도 전체적으로 전부 영어를 쓰는게 좋다고는 생각하지 않아요. 정작 필요한 내용을 제대로 전달하지 못할 수도 있으니까요. 다만 OMS정도는 가능하면 영어로 준비해보는거도 좋지 않을까 하는 생각이에요. + 파비앙은 학회실이 생기면 - [김태진]
- 정모/2012.7.11 . . . . 6 matches
* 지원 내용 : 소정의 장학금과 재료비 및 문헌 구입비
- 첫주차에는 문서 작성, 삭제 등을 목표로 삼아서 hibernate 등을 이용할 예정.
- 인터페이스를 잘 이용해서 수정할 부분이 적도록 만들었다.
* OpenCV - 영상인식을 위한 라이브러리 사용.
- 안드로이드에서는 JavaCV를 import해서 사용한다.
- 안드로이드는 하드웨어 제어에 대해 굉장히 제한이 많아서 이용이 힘들었다.
- 정모/2012.7.25 . . . . 6 matches
* Spring : SimpleWiki 작성. 게시물 Page Repositery 기능. Hibernate 사용하는 기능을 Page Repositery에 붙이려고 하는데 Hibernate가 어려워서 잘 될까 모르겠다. 이후에는 Spring의 security 기능을 이용해서 회원가입 기능을 붙일 예정. 위키 문법을 어느 정도까지 다루어야 할지 생각 중.
* 작은자바이야기 : Generics와 Reflection API를 이용한 objectMapper 만들기. Reflection API는 강력해서 무척 마음에 든다. 그리고 objectMapper라는 아이디어를 잘 이용하면 다른 곳에서도 반복되는 작업을 많이 줄여줄 것 같아서 비슷한 방식을 사용하는 것도 좋을 것 같다.
* UDK : 상황이 어려움. UDK와 3D Max를 하려고 하는데 아무 것도 모르는 상황에서 하려고 하니 학습 능률이 낮다. -> 방향을 선회해서 안드로이드 2D 엔진용 에뮬레이터를 만들자는 의견이 나옴.
- 정모/2012.8.1 . . . . 6 matches
* 김준석, 변형진, 김수경, 임상현, 권순의, 정종록, 서민관, 황현, 이민규, 장용운, 정진경, 권영기, 김민재, 서영주
* 송지원, 김태진, 안혁준, 임용승(?)
* 간단한 용무로 한정
* 사적인 용도 사용은 퇴장
* Spring - 하이버네이트로 심플위키 만들고 있음, 하이버네이트는 사용하기에 난이도가 높은 것 같음.
- 정모/2013.1.15 . . . . 6 matches
* 참여자 : [김준석], [권순의], [장혁수], [임용승], [안혁준], [송정규], [강성현], [김태진], [서민관], [김민재], [조광희], [김해천], [박정근]
* A(김민재) : 외부인의 사용에 따른 권한 부여 등에 따른 허가, 컴퓨터 사용시 기록을 남김으로써 책임감, 사후관리의 유용성
* A(김민재) : 실제 사례와 오픈소스등을 활용하여 롱런프로젝트로 고려중.
* 아하! 게시판에 질문하면 되는거였구나ㅋㅋ 그럼 게시판으로 내용 옮겨감ㅋㅋ - [김수경]
- 지금그때2004/회고 . . . . 6 matches
* 참고 : 일반매직을 사용해서 전지에 글씨를 쓰면 책상에 자국이 남습니다. 보드마카를 이용해서 했더니 괜찮더군요. 리허설할때 사소한 것도 한번 해보고 넘어가는게 좋겠어요 (상민형 미리좀 알려주셨으면 얼마나 좋아요...)
* 정리의 어려움 - 대화 내용을 논리적 연관성으로 정리하기 어렵다. 정리가 잘 안된 자리는 중간에 다른 사람들이 들어오기 어렵다.
* 제가 급해서 잘못 전달했군요. [지금그때2004/전통과사유20040329]에 시간이 부족하고, 재현에 불과해서 내용을 간추려서 실제 속도와 다르게 한것입니다. 다음에 이러한 기회가 온다면, 한 코너만 때어서 거의 비슷한 시간으로 리허설을 해보시는 것도 좋습니다. 2003에서는 1시간 정도, ost에서 나올 만한 한주제만 때어서 [지금그때2003/규칙]을 밑바탕 삼아 동일한 속도로 했거든요. 그 피드백으로 규칙이 변했었죠. 모든 사람이 하나에 매달일 필요도 없이, 두 조로 나누어서 병렬로 하면 좋은 효과를 볼수 있습니다.
* 패널 초빙시 2주 전 연락을 하고 확답을 받은뒤, 홍보시에도 적극적으로 이용.
* 도우미들이 적극적으로 Recorder 가 되는 건 어떨까. MinMap이나 ScatterMap 기법들을 미리 숙지한뒤, 레코딩 할때 이용하면 정리 부분이 더 원활하게 진행될것 같다.
- 파이썬으로익스플로어제어 . . . . 6 matches
* ie의 type이 instance라고 나오는데, ie가 사용할 수 있는 메소드(맞나요?)에 대한 설명이 있는 문서가 어디 있나요? 어제 보여주신 id, pw를 입력폼에 넣는 메소드 및 사용법을 알고 싶어요. -- 재선
자세한 내용은 http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/webbrowser/reference/objects/internetexplorer.asp 에의 컴포넌트들을 참조하세요. 주로 알아야 할 객체는 WebBrowser, Document 객체입니다. (login 예제는 나중에~) --[1002]
IE Automation 을 이용한 것이므로, firefox 나 opera 의 경우는 다른 방법을 이용해야겠죠. --[1002]
* Document.body.innerHTML 이렇게 하면 body 에 있는 내용을 다운로드 받을 수 있다
- 프로그래밍잔치/둘째날후기 . . . . 6 matches
전자수첩을 하기로 하고.. 샌드위치를 먹으며 각자의 역할과 작은 팀을 나누었고 칠피에 올라가서 시작.. 언어는 C++, MFC 툴킷을 사용하기로 했다. 그러나.. 총 개발시간의 절반을 MFC 와 싸우다가.. 인수군의 제안과 창섭군과 은지누나의 동의로 JAVA 로 언어를 바꾸고.. 인수군은 전자계산기를 기웅군, 은지누나와 페어를 하며 짜고 창섭군은 상욱군과 함께 전화번호부를 짜던 중 창섭군의 JAVA 실력 부재와 swing 경험 부족으로 인해(ㅜ.ㅜ) 은지누나와 상욱은 페어를 바꾸고.. 결국 어설픈 틀의 전화번호부와 계산기를 합치고 C++ 로 짜여진 상욱군의 만년달력을 끝으로 시간종료.
Error Message 팀은 JuNe 의 도움에 따라 그날 한 일을 정리하는데 Activity Diagram 을 이용하는 방법에 대해 알게 되었다. 그리고 Activity Diagram 을 이용, 그날 한 일들을 정리해본다.
* 아쉽게도 오늘 한 것의 코딩 내용의 수준이 저에게 좀 높았던 거 같습니다. 그래서 중반 이후 거의 선호형이 맡게 되었고, 갈수록 소외되는 식이 되었습니다. 음... 다음부턴 팀 프로그래밍 중 팀원간에서 뒤쳐지지 않도록 노력해야겠습니다. 좋았던 점이라면 팀 프로그래밍이 어떤 거다...는 걸 알 정도의 경험이랄까...입니다. --영동
* 나역시 페어를 해본건 아주 간단한것이었긴 하지만, 그때의 느낌이라면 페어가 되는 조건에 대해서 좀 생각해봐야하겠지. Expert - Expert Expert - Novice의 단적인 예를 들자면 역시 Expert - Expert인 경우가 진행도 빠르고 페어도 효율적이겠지만 두번째의 경우 시간분배에 따라 해결하는 양도 틀리고 하지만 결국 시간이 느려지는건 사실 그러나 얻는것! 페어가 끝난후 Novice가 단지 처음의 수준에 머무르지는 않는다는 것이지. 내 느낌은 일단 그러네 ^^; 아 참고로 어중간한 사람끼리 만나면 진행은 잘되는데 머 잘되면 좋긴하지만 안되는 쪽으로도 잘 되는? 현상이 벌어질 가능성도 있다고 사료됨. (이 내용은 1002 군의 예전의 페어에 관한글을 참고함) - JihwanPark
창섭이나 인수가, 자신들의 팀프로젝트때 어떻게 했었는지 (특히 창섭.. 내가 자신과 Pair를 할때 어떤 방법들을 이용했었는지) 한번쯤 생각했더라면 좀 더 좋은 결과가 있지 않았을까. GUI Programming 먼저. UI 가 먼저되면 역시 좀.. 특히 사람들이 MFC와 Java 에 익숙하지 않다고 할때.
- 혀뉘 . . . . 6 matches
동정적이며 자기 능력에 대해서 모든 성격 유형 중에서 가장 겸손하고 적응력과 관용성이 많다.
일상활동에 있어서 관용적, 개방적, 융통성, 적응력이 있다.
조용히 있다가 무대에서 끼를 발휘한다. - 몰입이 특징
포용력과 이해력이 많다
상대방의 배신에도 때로는 너그러울 수 있고 용서해 주기도 하지만,
그런 눈으로 바라보는 새벽 거리에.. 별다른 차가움도 있을리 없지. 참 조용해..
- 2005MFC이동현님의명강의 . . . . 5 matches
== 강의 내용 ==
* 2005.10.06 곱셈기 제작(다이얼로그 생성 및 사용)
* 3차 수정. 버전을 제목표시줄에 출력하고, 미스틱아츠에 적용되었던 고도의(?)기술을 이용하여 깜빡임 현상을 없앰. 인공지능 약간 보완.
선배님 너무 수업 잘하신고 아니에용?ㅎ 우리 다음에 모만들지..;;ㅁ;; 포트리스 짤깡..ㅎ
- 2dInDirect3d/Chapter1 . . . . 5 matches
5. 텍스쳐를 사용해 게임 이미지를 불러들인다.
1. [IN] 유일한 인자인 SDKVersion에는 SDK의 버전을 넣어준다. 8.0 이렇게 집어넣는 것이 아니라 지정되어있는 매크로가 있다. 사용하는 방법은 단 한가지뿐이다.
만들 수 있는 디바이스의 타입은 세 가지가 있다. (2번째 인자의 값으로 사용한다.)
1. D3DDEVTYPE_HAL : 하드웨어에서 지원하는 기능을 사용한다.
3. D3DDEVTYPE_SW : 하드웨어 가속을 전혀 사용하지 않고 소프트웨어적으로 에뮬레이션
- 2thPCinCAUCSE . . . . 5 matches
* 사용언어: C/C++ with Visual C++ 6.0
* 휴대폰, 인터넷 사용 금지
* 개인 디스켓, CD 등 휴대 금지. 디스켓은 나눠준 것만 사용.
1. 각 문제는 데이터를 외부에서 입력받아서 프로그램으로 답을 계산한 후 반드시 출력을 한다. 이때, 입출력은 표준입출력만 사용한다. 파일 입출력문을 쓰면 안됨.
4. 채점은 자기 컴퓨터에서 하는 것이 아니라, 채점 팀의 컴퓨터에서 실행한다. 이점을 유의할 것. 즉, 자기 컴퓨터에만 있는 특수한 기능을 사용하게 되면, 채점 팀 컴퓨터에서는 안 돌아 갈 수 있음.
- 2학기파이선스터디/문자열 . . . . 5 matches
3. 각 객체들을 참조 가능(첨자 이용)
* 작은 따옴표 혹은 큰 따옴표를 세개 연속 사용해서 정의하는 경우 쓰는 그대로 정의됨.
|| 기호 || 용도 ||
1. #을 이용하는 방법( C 에서 // 와 같음)
2. 문서 문자열(doucmentation string)을 이용하는 방법
- 3D프로그래밍시작하기 . . . . 5 matches
* 옛날 D3d에는 모드가 두가지가 있었는데요 retained mode 하구 immediate mode 가 있었는데 retained 가 immediate위에서 한계층 더 추상화 시킨것이라 하더군요. 보통 immediate를 사용하는것 같더랬습니다. d3d안써봐서리.. --; 정확하진 않지만
retained는 정점지정시에 속도가 떨어지고.. immediate는 어렵지만 여러방식으로 지정이 가능하고.. 빠르고.. 그랬던거 같습니당.. 요즘엔 direct graphics라 해서 인터페이스가 바꼈는데.. 어떻게 됬는지 몰겠네용..
http://cg.cs.tu-berlin.de/~ki/engines.html 에 보면 여러가지 공개, 상용 엔진들의 리스트가 정리되어 있습니다. 아마 3D 프로그래밍하는 사람치고 이 페이지에 안가본 사람은 별로 없을것입니다만, 노파심에서..
이 단계까지는 화면에 그리는 내용이 직접 노가다 코딩으로 그릴 수 있는 간단한 큐브정도로 한정되어 있을 것입니다. 뭔가 좀 더 폼나는 것을 그리려면 맥스같은 외부툴에서 데이타를 가져와야 합니다
이 시점에서 여러가지 해결해야 할 사항이 생기는데, 첫째로는 파일 포맷에 대해서 정확히 이해하고, 각 항목이 어떤 역할을 하는 것인지를 알아야 하겠으며, 둘째로는 비교적 여러단계로 복잡하게 구성되어 있는 3D Scene Data 를 효율적으로 정렬하기 위한 자료구조를 내 프로그램에 심는 것입니다. STL 같은 라이브러리를 능숙하게 사용할 수 있다면 많은 도움이 될 것입니다. 가급적이면 계층적으로 구성된 모델을 읽을 수 있도록 해야 나중에 애니메이션도 해보고 할 수 있겠죠. 세째로는 기본 이상의 가속기에 대한 조작을 할 수 있도록 d3d_renderstate 들에 대해서 알아두는 것입니다. 최소한 바이리니어 필터링을 켜고 끄고, 텍스춰 매핑을 켜고 끄고, 알파블렌딩, 등등을 맘먹은대로 조합해볼 수 있어야겠죠
- 5인용C++스터디/클래스상속 . . . . 5 matches
== private 대신 protected를 사용이유 ==
하지만 상속하려면 private값을 이 기본 클래스에서 상속한 클래스에서 직접 엑세스 한는 것을 혀용하고 싶을 것이다.
이에 protected키워들를 사용해서 현재클래스와 상속하는 클래스에게만 엑세스를 허용한다.
[5인용C++스터디]
- ACE . . . . 5 matches
ADAPTIVE Communication Environment. 플랫폼 독립적인 네트워킹 프레임워크. [Java]가 VirtualMachine 을 사용하여 플랫폼 독립적인 프로그래밍을 가능하게 하는 것 처럼 플랫폼에 상관없이 안정적이면서도 고성능의 네트워크 프로그래밍을 할 수 있도록 도와주는 프레임워크이다.
우리가 많이 사용하는 버클리 소켓 API 를 사용한다 하더라도, 이기종간 프로그래밍을 하기는 어렵다. 이는 플랫폼간 이식성이 결여되어있고 약간의 차이가 있기 때문에 이식성 높고 안정적인 프로그래밍을 하는데 많은 어려움을 주기 때문이다. 또한 이식에 성공한다 하더라도 이전의 성능을 완전하게 보장받을 수도 없다. 또한 이식을 고려하지 않고 단순하게 소켓 API 만을 사용한다하더라도, 개발자가 조심하지 않는 이상 소켓 API 는 개발중에 문제점을 일으킬 확률이 높다. 이는 소켓 API 가 개발중에 일어날수 있는 문제점에 대한 방지를 보장하지 않기 때문이다. 이러한 문제점을 해결하기 위해 수년간 개발되어온 프레임워크가 [ACE] 이다. [임인택]은 간단한 서버를 작성할때 조차도 [Java]를 많이 선호하였는데, [ACE] 를 알게되면서는 [ACE] 로 서버를 작성해 보고 싶다는 생각을 하였다.
한서도 나와있기는 한데 번역이 깔끔하지 않다. 곽용재씨가 감수했다고 해서 약간 믿었는데. 하지만 원서보는것 보단 빠르게 읽을 수 있을듯..
- AcceleratedC++/Chapter4 . . . . 5 matches
* 3장까지의 프로그램을 보면 등급을 메기는 부분이 있다. 이 부분을 함수로 추출해보자. 함수로 추출함으로써, 나중에 똑같은 내용을 또 코딩할 필요가 없고, 알아보기도 쉬워진다. 또한 등급 메기는 방법을 바꿀때 그 함수 부분에만 문제를 한정지을 수가 있다. 또한 함수에 이름을 지어줌으로써, 더욱 추상화시킬수가 있게 된다.
* 여기서 살펴볼 게 몇가지 있다. 지난번에는 vector의 크기가 0이면 그냥 프로그램을 종료시켜버렸지만, 여기서는 예외처리라는 신기술을 사용했다. 이 방법은 여기서 끝내지 않고 다음 부분으로 넘어간다. <stdexcept>를 포함시켜 주면 된다.
* 이쯤 와서 함수의 유용함을 알았다면, 우리의 성적 매기는 방법을 따로 함수로 뽑아내고 싶을 것이다. 다음 예제를 보자.
* exception : 사용자에게 무엇이 잘못되었는가를 알려주는 exception을 던져준다.
* 다음엔 grade. 옛날 버젼은 인자로 midterm, final, homework등을 받았지만, 오버로딩을 이용해서, Student_info 하나만을 받도록 해보자.
- AppletVSApplication/상욱 . . . . 5 matches
자바는 두 가지 종류의 프로그램 형태를 가진다. 하나는 일반적인 응용 프로그램 즉, 애플리케이션(Application)이고 또 하나는 작은 프로그램이
안에서 동적으로 사용자의 입력에 반응하거나 실시간으로 변화하는 다양한 자바 프로그램들은 모두 애플릿이며 자바로 만들어진 웹 브라우저인 핫
서 실행하게 됩니다. 이렇게 자바 애플릿을 HTML 페이지에 삽입하기 위해서는 <APPLET> 태그를 사용해야 합니다.
따라서, 자바 클래스는 하나의 패널 컴포넌트가 가지는 모든 기능을 그대로 사용가능하다는 것입니다. 물론, 자바 애플리케이션은 자바 가상머신
- 애플릿과 애플리케이션이 사용하는 윈도우는 약간의 차이가 있습니다.
- AppletVSApplication/영동 . . . . 5 matches
* 웹 브라우저에서 실행되는 작은 프로그램을 애플릿이라 한다. 웹에서 클라이언트 측의 프로그래밍을 지원하는 강력한 툴로 사용된다.
* 애플릿은 로컬 디스크를 사용할 수 없다. 함부로 내 컴퓨터나 다른 컴퓨터에서 정보를 전송할 수 없다는 뜻이며, 디지털 서명을 인정하면 로컬 디스크를 이용할 수 있다.
* 잘못된 코드로 시스템의 다른 부분이 영향을 받지 않는다. 자바 언어와 애플릿 구조에서 갖고 있는 보안성 때문이다. 이런 점 때문에 회사 내부에서만 사용하는 소위 인트라넷 클라이언트/서버 시스템에 자바가 널리 사용되고 있다.
- ArtificialIntelligenceClass . . . . 5 matches
[http://www.wowbook.com/generic/book/info/book_detail.asp?isbn=ISBN89-88397-88-6 인공지능 개념및 응용]
강의내용 : '지식' 표현방법, 탐색에 의한 문제해결 방법 등
지금 인공지능 수업이 피곤하고 졸린 이유는 뭘까. 교수님은 학생들의 feedback 을 끌어내려고 하지만, 끌어내기 위한 방법 자체를 잘 모르신다는 느낌을 강하게 받았다. 수업 내용의 경우도 책의 수준을 벗어나지 못한다. (시간상 조명상 더 졸립기까지 하다. 또는 교수님이 책의 내용을 정확하게 이해하시지 못한다는 느낌을 많이 받게 되었다.) 차라리 좀 더 구체적인 예제를 만들고, 이에 대한 해결법의 진행 과정에 대해 설명해주신다면 어떨까.
실제로 AI 프로그래밍을 해보면서 이경우에는 지금 나와있는 어떤 방법과 어떤 방법을 어떠한 식으로 적용해 보는게 좋고, 아니면 더 나은 대안을 찾아보고 이런식이 재밌을거 같다.
- AseParserByJhs . . . . 5 matches
// 원래 STL 리스트로 전체 노드를 관리했는데 지금은 사용안함. 전체 노드 리스트는 이 모듈의 cpp 파일에 전역으로 선언.
static void ModelAlloc (CHS_GObject* pO); // 쓰이지 않음. j_ase 모듈에 있는 aseAllocate2CHS_Model을 사용
// 일반적인 ascii export plug in을 사용했을 경우
aseGetTextureName (s, p); //모델t 구조체에 들어가는 텍스쳐 네임은 사용x
//textureLink 에 들거나는 네임 사용
- AwtVSSwing/영동 . . . . 5 matches
* AWT는 사용하긴 쉽지만 한계가 있다. 롤오버 이미지를 사용하는 등 실제로 많이 쓰는 기능을 AWT로 구현하기 어려우며, 운영체제마다 버그가 생기기 때문에 사용하기 불편하다. Swing은 Top-Level의 컨테이너만을 운영체제의 자원을 사용할 뿐 그 하부에 있는 모든 것은 자바 코드에 의해 만드는 방식을 가진다. 발생하는 버그도 자바 가상머신의 범위 내에서 처리가 가능하다. 게다가 컴포넌트의 모양도 사용자의 입맛에 맞게 맞춰주는 것이 가능하다.
- BusSimulation/조현태 . . . . 5 matches
(사실 이 증명 시뮬레이션은 편도에서 버스 용량이 무한대고 설사 승객이 내리지 않더라도 승객이 타고, 타는데 시간이 걸린다는 것만으로도 버스가 몰려다니는 것으로 증명되어 있으나.. 재미없자넝~ 버스는 자고로 용량이 있어야.. 그리고탔으면 내리는게 인지상정.ㅎ)
사실 출력부분이 대부분 테스트용으로 만들어 진건데.. 일단 임시로 그대로 사용하기로 했다. 나중에 휴가기간에 소스좀 수정하도록 하겠다.
- 물런 재미가 없긴 하겠지만 이 증명은 버스가 편도로 움직이고 버스용량이 무한이며, 승객이 내리지 않더라도 승객이 타고 승객이 타는데 시간만 걸린다면 버스의 몰림현상이 발생한다. (고로 증명하기 위해 소스를 많이 짤 필요가 없을 수도 있다. 재미가 없겠지만..ㅎ)
- ComputerNetworkClass/Report2006/PacketAnalyzer . . . . 5 matches
* 홈페이지 나온 내용.
네트워크의 3번째 프로젝트를 하기위해서는 SIO_RCVALL 라는 옵션을 설정하여 사용할 줄 알아야한다. 유사한 옵션으로는
※ 윈도우 소켓 프로그래밍을 위해서는 윈속 라이브러리를 같이 linking 해야하며, WSActrl 을 사용하기 위해서는 winsock2 라이브러리인 ws2_32.lib 를 포함해야한다.
(2) MFC, VB 등을 이용해서 GUI 부분을 짠다. (핵심은 리포트 모듈 작성)
캡쳐기의 동작으로 인한 UI 딜레이 현상을 막기위해서 쓰레드를 이용.
- CryptKicker . . . . 5 matches
암호화된 텍스트가 한 줄 이상 입력되는데, 각 줄마다 서로 다른 치환 방법이 적용된다고 가정하자. 암호화 이전의 텍스트에 있는 단어는 모두 주어진 사전에 들어있는 단어라고 가정하고, 암호화된 텍스트를 해독하여 원래 텍스트를 알아내자.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
단일환자 치환법의 치명적 약점이 또한가지 존재하는데 이는 송신자와, 수신자 에게 적어도 한개의 법칙이 필요하다는 것이다. (이럴땐 [pangram]이 유용하게 쓰였을것이다)
송수신가자 모두 가진 무언가 공통의 법칙이 필요했을것이고, 그렇게 되면 보안상의 문제가 발생하게 되는것이다. 직접 만나서 건낼 수 있다면 좋지만, 직접 만날거면 뭣하러 암호화된 문장을 사용하겠는가. 아무튼 암호화 규칙이 노출되지 않게 하기위해서는 상당한 노력이 필요했을것이다.
단일환자치환법은 조금 허접해 보일지 모르지만 결코 이 방식을 무시할수 없는 이유는 거의 모든 암호화 방식이 이 방법을 활용하고, 변형한 방식이기 때문이다.
- C언어정복/3월30일-숙제 . . . . 5 matches
배웠으면 적용을 해봐야겠죠 ㅋㅋ
1. 인치(inch) 단위를 센티미터 단위로 변환하는 프로그램을 사용자에게 입력을 받고, 계산된 값을 출력하라. (1in = 2.54cm)
2. printf() 함수를 한 번만 사용하여 다음과 같이 4줄에 걸쳐서 표현되는 문자열을 출력하라.
3. for문을 사용하여 다음과 같이 3줄을 출력하라. (앞에 행 번호도 출력)
5. if문 하나와 for문 하나씩만을 사용하여 2단부터 9단까지의 구구단을 출력하시오.
- Django스터디2006 . . . . 5 matches
|| 우용 || wooyongyi(골뱅이)hotmail.com ||
|| 9/21 || Django 환경 구축 + POST, GET , SESSION, COOKIE 에 대한 설명, Django로 만들고 싶은것에 대한 논의(과제 확인, 웹서버 부분 못들은 사람 물어봐서 했는지 체크) || 상협, 지훈, 우용, 준석, 지원 ||
|| 9/26 || Django 실전 프로젝트 설명, 블로그 포스팅 보여주는 방법 설명, 이것을 바탕으로 간단한 블로그를 만들어 볼 예정 || 상협, 지훈, 우용, 준석 ||
|| 10/12 || 실제로 블로그에 글쓰는 기능 추가 || 상협, 우용 ||
|| 이름 || 사용 언어 || 소요 시간 || 제목 ||
- ExtremeBear/Plan . . . . 5 matches
'''도구사용'''
* ["Java"] 에 ["Eclipse"] 사용
Eclipse에서 간단한 프로젝트 사용과 ["JUnit"],CVS 사용하기 시범
* IndexCard (CRC Card, Task Card, Story Card 등으로 이용)
- FrontPage . . . . 5 matches
* '''[[ZeroWiki]] 사용이 처음이시거나 미숙하신 분'''은 [[ZeroWiki]]에서 사용하는 위키엔진인 모니위키의 튜토리얼을 읽어보세요!
* [[WikiSandBox]] : 위키 문법에 대한 간단한 설명이 있고, 자유롭게 위키 사용을 연습할 수 있는 공간입니다!
* [[지도분류]], [[분류분류]]를 이용해 위키를 탐험할 수 있습니다.
* 페이지 제목에 공백을 사용하면 링크가 제대로 걸리지 않는 문제가 생기는 것 같아 임시로 공지합니다. 해결하면 수정하겠습니다.
- Gof/Visitor . . . . 5 matches
[컴파일러]가 abstact syntax tree로 프로그램을 표현한다고 하자. 컴파일러는 모든 변수들이 정의가 되어있는 지를 검사하는 것과 같은 '정적인 의미' 분석을 위해 abstract syntax tree에 대해 operation을 수행할 필요가 있을 것이다. 컴파일러는 또한 code 변환을 할 필요가 있다. 또한 컴파일러는 type-checking, code optimization, flow analysis 와 해당 변수가 이용되기 전 선언되었는지 등의 여부를 검사하기 위해서 해당 operations들을 수행할 필요가 있다. 더 나아가 우리는 pretty-printing, program restructuring, code instrumentation, 그리고 프로그램의 다양한 기준들에 대한 계산을 하기 위해 abstract syntax tree를 이용할 것이다.
예를든다면, visitor를 이용하지 않는 컴파일러는 컴파일러의 abstact syntax tree의 TypeCheck operation을 호출함으로서 type-check 을 수행할 것이다. 각각의 node들은 node들이 가지고 있는 TypeCheck를 호출함으로써 TypeCheck를 구현할 것이다. (앞의 class diagram 참조). 만일 visitor를 이용한다면, TypeCheckingVisior 객체를 만든 뒤, TypeCheckingVisitor 객체를 인자로 넘겨주면서 abstract syntax tree의 Accept operation을 호출할 것이다. 각각의 node들은 visitor를 도로 호출함으로써 Accept를 구현할 것이다 (예를 들어, assignment node의 경우 visitor의 VisitAssignment operation을 호출할 것이고, varible reference는 VisitVaribleReference를 호출할 것이다.) AssignmentNode 클래스의 TypeCheck operation은 이제 TypeCheckingVisitor의 VisitAssignment operation으로 대체될 것이다.
VisitorPattern은 다음과 같은경우에 이용한다.
- GofStructureDiagramConsideredHarmful . . . . 5 matches
Design Pattern 책 전반에 걸쳐 반복적으로 잘못 이해되는 내용들이 있는데, 불행하게도 이러한 실수는 GoF의 스타일을 모방한 다른 Pattern 책의 저자들에게서도 반복적으로 나타난다.
하지만, Pattern에 대한 경험이 부족한 학생들이나 사용자들은 이 사실을 모르고 있다. 그들은 Pattern에 대한 저술들을 너무 빨리 읽는다. 단지 한 개의 Diagram만을 이해하는 것으로 Pattern을 이해했다고 착각하는 경우도 잦다. 이게 바로 필자가 생각하기에는 독자들에게 해로워보이는 GoF 방식의 단점이다.
GoF 책의 각 Pattern 마다 첨부되어 있는 구현에 대한 매우 중요하고 민감한 해설들은 어떠한가? 이 해설들을 통해서 Pattern이 여러 방법으로 구현될 수 있다는 사실을 알 수는 없을까? 알 수 없을 것이다. 왜냐하면 많은 독자들이 아예 구현에 대한 해설 부분을 읽지도 않고 넘어가기 때문이다. 그들은 보통 간략하고 훌륭하게 그려진 Structure diagram을 더 선호하는데, 그 이유는 보통 Diagram에 대한 내용이 세 페이지 정도 분량 밖에 되지 않을 뿐더러 이것을 이해하기 위해 많은 시간동안 고민을 할 필요도 없기 때문이다.
엔지니어들에게 있어서 Diagram은 정말 뿌리치기 힘든 유혹이다. 하지만 Gof의 Structure diagram의 경우엔 충분히 많은 내용을 말해줄 수 없다. Pattern들이 다양한 Structure를 가질 수 있으며, 다양하게 구현될 수 있다는 것을 독자들에게 알려주기엔 턱없이 부족하다.
공부하는 입장으로서 인식해둘만한 내용이라 생각이 되네요.
- Googling . . . . 5 matches
구글사이트에는 대단히 다양한 정보가 존재한다. 현재 8,168,684,336(81억개ㅡ,.ㅡ)개의 페이지를 단 몇초만에 검색하고 가장 많은 사람들이 이용하는 사이트를 가장 합리적인 판단 기준에 의거해서 반환해준다. 이만큼 다양한 페이지가 존재하는 만큼 다양한 검색 옵션을 제공한다. 단지 몇개의 검색 명령어만을 아는 것 만으로도 자신이 원하는 정보를 아주 쉽게 찾을 수 있다.
|| +''keyword'' || 키워드를 반드시 포함한 결과를 보여준다. 일반적으로 stopword로 지정된 것을 검색할 때 이용한다. ||
|| allintitle || 페이지의 제목만을 이용해서 검색한다. 내용에서는 찾지 않는다. ||
|| allintext || 페이지의 본문을 이용해서 검색한다. ||
- HanoiProblem/영동 . . . . 5 matches
mov bx, 10 ;Writeint사용시에 10진수 출력
mov ax, by ;by와 to의 위치를 바꿔줌.(ax를 temp로 사용)
mov by, si ;si를 이용해 대입
mov si, by ;메모리 간 대입 허용 안 하므로
mov from, si ;si를 이용해서 대입
- HardcoreCppStudy/첫숙제/Overloading/변준원 . . . . 5 matches
C++의 새로운 특징 중 하나인 디폴트 전달인자를 살펴보자. 디폴트 전달인자는 함수의 호출에서 대응되는 실제 매개변수를 빠뜨렸을 때 자동적으로 사용되는 값이다.
전달인자 리스트를 가지고 함수를 사용할 때에는 디폴트 전달인자를 오른쪽에서 왼쪽의 순서로 첨가해야 한다. 즉, 어떤 전달인자의 값을 내정하려면 그 전달인자보다 오른쪽에 있는 모든 전달인자를 디폴트 전달인자로 해야 한다.
beeps = harpo(8,7,6); //디폴트 전달인자를 사용하지 않음
실제 전달인자는 왼쪽에서 오른쪽으로 가면서 해당 형식 전달인자에 대입된다. 전달인자를 건너뛸 수는 없다. 따라서 다음과 같은 것은 허용되지 않는다.
다음은 함수의 다형성에 대하여 알아보자. 디폴트 전달인자는 개수를 변화시켜 가면서 같은 함수를 호출하게 했다. 함수의 다형성은 함수의 재정의라고도 하는데, 이는 여러 개의 함수가 같은 이름을 사용할 수 있게 해준다. ‘다형성’이라는 표현은 많은 형태를 가질 수 있게 해 준다.
- HardcoreCppStudy/첫숙제/ValueVsReference/김아영 . . . . 5 matches
- 인수로 사용되는 수식이 평가된다.
- 변수 자체의 값을 전달하는 것이 아니라 인수로 사용되는 변수에 대한 포인터를 전달하는 것이다.
- 함수내에서 인수로 사용되는 변수의 값을 변경할 수 있다. (특정 상황에 따라)
- 함수내에서 전달된 변수를 사용하기 위해서 간접(indirection) 연산자를 사용해야 한다.
- HelpOnConfiguration . . . . 5 matches
모니위키의 몇몇 플러그인중 외부 프로그램을 사용하는 프로그램은 환경변수 PATH를 참조하여 외부 프로그램을 호출하게 된다. 이때 PATH의 설정이 제대로 맞지 않아 외부 프로그램이 제대로 실행되지 않는 경우가 있다. 이 경우 config.php에서 `$path`를 고쳐보라.
만약 시스템 차원에서 rcs를 지원하지 않는다면 rcs를 컴파일해서 사용해보라. 예를 들어 모니위키가 설치된 디렉토리가 {{{moniwiki}}}이고
윈도우에서 gvim을 사용하여 작동된다. 이 경우 {{{$path}}}설정을 제대로 해주어야 하는데, 예를 들어 다음과 같은 식으로 `config.php`에 설정을 한다.
config.php에 `$security_class="needtologin";`를 추가하면 로그인 하지 않은 사람은 위키 페이지를 고칠 수 없게 된다. 로그인을 하지 않고 편집을 하려고 하면 경고 메시지와 함께, 가입을 종용하는 간단한 안내가 나온다.
/!\ monisetup.php은 config.php를 변경할 수 있으나, 간단한 변경만 지원하고 세세한 변경은 지원하지 않는다. 최근 1.1.3 버전부터는 여러줄의 config.php 설정을 읽고 수정할 수 있다. 단, monisetup.php를 사용할 경우 코멘트는 모두 제거가 되므로 주의해야 한다.
- HelpOnFormatting . . . . 5 matches
그리고 이러한 포매팅을 ''있는 그대로'' 보여주기 위해 ` {{{ }}} ` 중괄호 세개를 연달아 사용하는 문법이 있습니다.
위키위키 문법을 무시하게 하기 위해서 중괄호 세개를 {{{ {{{이렇게}}} }}} 사용하게 되면 글꼴이 고정폭 글꼴로 보여지게 되며 ({{{monospace font}}}) 만약에 이 문법을 여러 줄에 걸쳐 사용하게 되면, 중괄호 블럭의 모든 공백이 보호되어 프로그램 코드를 직접 삽입하여 보여 줄 수 있습니다.
/!\ 모인모인의 경우에는 여러줄에 걸쳐있는 경우에도 이러한 기본 문법이 적용되지만, 모니위키의 경우 기본 문법은 반드시 한줄에 대해서만 적용됩니다.
- HowToDiscussIt . . . . 5 matches
* 술퍼맨 : 아니, 수질이 우수하다는데... 제가 증명을 해드리죠. 수질이 우수하다면 어쩌고 저쩌고 하므로 이 공리와 이론을 이용하면...
우선은 토론을 진행할 방식에 대해 토론을 한다. 그리고, 이 방식의 대리인을 선정한다. 이 사람을 Facilitator라고 부른다. 그는 토의 내용에 대한 권한은 없지만, 진행을 정리하는 교통순경의 역할을 한다. 그리고, 모든 참가자는 이 방식을 따라 토론을 진행한다.
이럴 경우 '''Subgroup''' 패턴을 사용한다. 사람 수가 적으면 참여도가 높아진다.
예컨대, 일단 전체 그룹을 모아놓고 간략한 문제 상황 설명과 목적에 대해 컨센서스를 이룬 후에, 학년별 소그룹으로 나누고 자기들끼리 알아서 대표를 선출하고 토론하도록 한다. 선배의 눈치를 볼 필요 없이 자신들만의 의견을 개진, 정리하도록 한다. 얼마 후에 모든 그룹이 모여서 각 소그룹의 대표자가 토의 내용을 요약 발표한다. 이것에 대해 다시 전체 토론을 하고, 또 다시 '''Subgroup'''을 사용할 수도 있다.
- HowToEscapeFromMoniWiki . . . . 5 matches
이 문서에서 기술한 내용은 ZeroPage에서 사용하던 MoniWiki에서 다른 위키 엔진으로 이주(migration)하기 위해 고민하고 연구하고 실제 적용하는 과정에서 정리한 것입니다.
이 문서가 제시하고 있는 내용은 완전하지 않을 수 있으며, 기존 MoniWiki 문서 데이터를 백업하지 않고 이 방법을 적용하여 발생하는 문제에 대해 어떠한 책임도 지지 않습니다.
- JUnit/Ecliipse . . . . 5 matches
Eclipse 에서는 기본적으로 JUnit을 내장하고 있습니다. (참고로 저는 Eclipse 3.0 M9 버전을 사용하였습니다.)
따라서 별도의 다운로드 및 인스톨 과정없이 보다 편하게 JUnit을 사용할 수 있는 강점이 있으며, 실제로 마우스의 클릭 몇번으로 대부분의 클래스 및 메서드를 생성해 주는 강력한 기능을 지원합니다.
먼저 Eclipse 에서 JUnit 을 사용하기 위한 세팅법입니다.
이것으로 Junit을 사용하기 위한 준비는 끝입니다.
테스트를 하기위해 사용되는 메서드의 리스트는 아래와 같습니다.
- JavaStudy2004/클래스상속 . . . . 5 matches
=== 수업 내용 ===
많은 클래스를 만들기 위해서는 기존의 클래스 계층을 이용할 수도 있고, 자신만의 클래스 계층을 만들 필요도 있다. 이러한 계층을 만들기 위해서는 몇 가지 생각할 점이 있다.
* 다른 클래스에 공통적인 정보를 추출해서 상위클래스에 넣고 하위클래스에서 다시 사용하도록 한다.
* 생성자나 메소드에 상관없이 사용가능해요
예를들면 위 circle 클래스의 getName 메소드에서 사용한 것처럼요 super.getName() 이렇게 --[iruril]
- KIV봉사활동/준비물 . . . . 5 matches
* 뒤집개, 국자, 주걱, 조리용 젓가락
* ''모기장 : 2-3인용 2개, 끈, 스티커고리( 1kg 3피스 1세트짜리를 4세트 샀음. 총 12개 )''
* 기관장용, 코디네이터용 + 1
* 개인 위생용품은 따로 챙기자 - 휴지, 생리대, 물티슈
- LinuxSystemClass/Exam_2004_1 . . . . 5 matches
다음 용어에 대해 쓰시오
'Write Back' 은 fork 명령시에 성능향상을 위해 이용하는 기법이다
DMA 의 주된 용도는?
Linux 의 DMA 가 Bound Buffer 로 이용되는 이유?
Linux 에서의 Memory 관리시 binary buddy algorithm 을 이용한다. 어떻게 동작하는지 쓰시오.
- MFC/Control . . . . 5 matches
하나의 컨트롤은 클래스와 연계될 수도, 안될 수도 있다. 정적 컨트롤의 경우 클래스가 필요없을 것 같지만 CStatic 이라는 클래스를 통해서 모양을 변경하는 것이 가능하다. 마찬가지로 버튼 컨트롤들의 경우도 대부분 Dialog 객체를 통해서 처리가 된다. CButton 클래스의 경우에는 컨트롤을 관리하는데있어서 객체가 필요할 경우에 이용하게 된다. 이러한 모든 컨트롤들은 모두 윈도우의 일종이기 때문에 CWnd 에서 상속된 클래스를 이용한다.
|| 버튼 컨트롤 || 한번의 마우스 클릭으로 응용프로그램과 통신. 라디오 버튼은 다른 버튼과 그룹으로 묶여서 다중 선택이 불가능하도록 한다.[[BR]]반면 체크박스는 개별적인 선택이 가능하다. [[BR]]푸시 버튼은 일반적으로 대화상자를 닫는데 사용된다. ||
|| 스크롤바 || 스크롤바는 독립적이며, 대화상자의 안에서 사용됨 ||
- MFC/Print . . . . 5 matches
document 안에 저장된 내용을 출력하는 것은 view 의 역할 이다. 이 과정은 상당히 복잡하다.
프린트 작업에서 기초적인 역할을 한다. 프린트 job 정보, 프린트 작업 상황에 대한 내용이 저장된다.
|| m_rectDraw || CRect 객체. 페이지에서 사용 가능한 영역을 논리 좌표로 정의 한다. ||
|| m_strPageDesc || CString 객체로 프린트 preview 동안에 페이지 번호를 나타내기 위해 프레임 웍에서 사용되는 포맷 문자열을 포함한다. ||
|| m_bDocObject || 응용프로그램이 lPrint 인터페이스를 통하여 출력하면 TRUE로 설정되며, 그렇지 않은 경우에는 FALSE이다. ||
- MFCStudy_2001/MMTimer . . . . 5 matches
== 기본 사용법 ==
사용이 끝난 타이머를 죽이는 부분입니다.[[BR]]
이상이 기본 사용법이었습니다.
pDlg를 통해서 원래 클래스의 모든 메소드와 변수를 사용할 수 있습니다.
* CALLBACK 함수를 사용할때의 주의점. (in MSDN)[[BR]]
- MacromediaFlash . . . . 5 matches
웹에서 interactive 한 화면 제작 & 웹 클라이언트 개발용으로 활발하게 이용되는 툴.
XML 을 이용하는 방법과 loadVariables 를 이용하는 방법 등이 있다. 혹은 Flex 를 이용한다. 혹은 SOAP 을 연동할 수 있다.
- Marbles/이동현 . . . . 5 matches
1 3 -> 개당수납비용이 최소
일때 n = bq+r 이용
1 5 -> 개당수납비용이 최소
if(c1[i]/(double)n1[i] > c2[i]/(double)n2[i]) //n1에 개당수납비용이 최소인 상자가 오게함.
if(c1[i]/(double)n1[i] > c2[i]/(double)n2[i]) //n1에 개당수납비용이 최소인 상자가 오게함.
- ModelingSimulationClass_Exam2006_1 . . . . 5 matches
= 시험 내용 =
(a) (5 points) 스케쥴 표 주고..(이번에는 Single Queue, Single Server) 이 시뮬레이션에서 사용되는 상태와 이벤트에 대해 쓰시오.
(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 분 안에 시험을 끝낼 수 있기 때문에 해당 모델은 안정하다고 적긴적었다. -_-;;
- NUnit . . . . 5 matches
* Attribute 을 이용함에 따라 경험되는 장점
* Attribute 를 이용해서 다소 이해하기 어려웠던 부분
* Attribute이 익숙하지 않은 상태라 Test 를 상속받은 후 SetUp과 TearDown 의 실행점이 명쾌하지 못했다. 즉, 학습 비용이 필요하다.
* C++에서 CppUnit을 사용할수도 있겠지만, [인수]군이 써본바로는, 또한 6.0이 아닌 .Net을 쓴다면 NUnit이 더 좋은것 같다.(어차피 6.0에선 돌아가지도 않지만--;) CppUnit은... 뭔가 좀 이상하다.--; --[인수]
* MFC에서 사용하기 추가했습니다. 저 방식대로라면 어떠한 방식에서든 쓸 수 있겠네요. --[인수]
- NumericalExpressionOnComputer . . . . 5 matches
컴퓨터 언어에서 사용하는 수치표현은 크게보아서 2진수, 8진수, 10진수, 16진수 이렇게 4가지로 구분함. 전류 시그널을 이용하는 컴퓨터의 특성상 2진수의 사용은 필수적인 것이고, 8진수를 사용하는 이유는 과거 12bit, 36bit와 같이 3의 배수 bit를 기반으로한 컴퓨터 archi가 존재했기 때문이다. (현재에서는 거의 쓰이지 않지만, 아직 C/C++ 등 많은 언어에서 제공한다.) 10진수는 인간이 사고하기 편하기 때문에 의미가 있는수. 16진수는 2진수의 표현을 바로 바꿀 수 잇다는 장점으로 표현공간의 절약을 위해서 만이 사용한다.
- OOP . . . . 5 matches
== 용어 ==
* [Implementation](구현 : 인간의 개념 속에 존재하는 생각과 사상 등을 실제 물리적인 객체로 구성하는 일련의 작업. 예를 들어 새로운 구조의 컴퓨터 시스템을 만들어 내는 작업과 설계 과정을 거쳐서 전달된 내용을 실제 프로그램으로 구성하여 컴퓨터에서 사용할 수 있도록 하는 작업 등이 모두 구현 작업의 한 가지에 해당된다고 할 수 있다. : 정보문화사 컴퓨터 용어사전 발췌)
[객체지향용어한글화토론]
- PC실관리/고스트 . . . . 5 matches
고스트 이미지 생성에 일관된 정책이 없기 때문에 차후에 문제가 발생하는 듯 보임. 차후 고스트 이미지 작업시에 다음의 내용정도는 꼭 포함하자는 취지에서 작성해봄.
* '''내문서''' 폴더 위치 변경 : D 드라이브로 지정해서 C 드라이브의 고스트 작업후에도 해당 폴더에 있던 내용은 남기는 것이 가능하도록 해야할 필요가 잇을 듯함.
* '''CAUCSE''' 계정의 경우 현재 디폴드 암호가 없는데 기본 암호를 만들고 '''control userpasswords2'''를 이용해서 기본 부팅시 자동 접속이 되도록 설정해야함
* 시스템 등록정보 - 시스템 복원 : 모든 드라이브에 시스템 복원 사용 안 함 체크. (고스트 이미지의 용량을 절감할 수 있음)
- Parallels . . . . 5 matches
패래럴즈 사에서 개발한 가상 머신툴로 윈도우 플랫폼용 보다 맥용으로 유명하다. 동영상을 보면 알겠지만, 제한된 디바이스만은 구현해서 인지 굉장한 속도를 자랑한다.
글쌔. 게시판에서의 사용자 피드백과 이에 대한 반영, 빠르게 Release 했다는 현상만으로 XP process로 진행되었다고 이야기하기에는 무리가 있어보이는데.. 홈페이지 내부에서도 XP 로 진행되었다는 이야기도 없고. 빠른 릴리즈와 사용자 피드백은 XP가 XP 라고 선언되기 훨씬 이전에도 자주 이용된 방법이였건만. --[1002]
- ParametricPolymorphism . . . . 5 matches
(심심하면 아래를 읽을 것 -_-; 오로지 코드에만 관심있는 사람이라면 BACK 버튼을~ 별로 재미없는 내용으로 이어질 것으로 보임)
그리고 내용이 대부분 책에 있는 내용에서 필요한 부분만 간추린 내용이라 생략된 부분이 존재하니
본디 폴리모피즘에서 추구한 방식 즉 파라메트릭 방식에 의하면 상기의 식을 적용할 때 동적 캐스팅이 필요가 없어야한다.
- PracticalC . . . . 5 matches
이 페이지는 이번 C교제인 프렉티컬 C의 내용을 간단히 정리한 것입니다.
/* (주석 내용) */
사용법 : 프로그램 작동법에 대한 간략한 설명
제한 : 프로그램을 사용할때 제한범위를 설명(잘 모르겠음....)
개정 히스토리 : 수정한 사람, 수정내용, 수정날짜 등
- ProgrammingPearls/Column3 . . . . 5 matches
* Column1의 이상한 소트와 더불어, 지금까지 본 내용중에서 꽤 신선한 내용이다. 왜 이렇게 하는지는 잘 모르겠지만... 역시 확장성을 위한 것 같다.
* 예제 : 어느 사이트에 로그인하면 DB에서 사용자 데이터를 긁어와서 보여준다. 이것은 책에 있는 예제고, 이것을 간단히 C++, 그리고 파일 입력으로 변형을 해보면,
* 딱 보면 알겠지만, 굉장히 우울하다. 저런게 10번 반복되는 것이다. 쓰잘데기 없는 코드가 무려 110 줄이나 된다. 하지만 리팩토링을 공부했다면 쉽게 빼낼수가 있을 것이다. 그 방법으로 VB에서는 각각의 메뉴 아이템을 배열로 만들수가 있다. 배열로 만든 다음 메소드 추출을 이용하면, (예제는 C++로 다시 바꾼다.--; 비베 문법을 잘 몰라서.)
* 가능하다면 진보된 툴을 사용하자.
- ProjectPrometheus/MappingObjectToRDB . . . . 5 matches
사용자 데이터
ProjectPrometheus 는 RDB-Object 연동을 할때 일종의 DataMapper 를 구현, 적용했었다. 지금 생각해보면 오히려 일을 복잡하게 한게 아닌가 하는 생각을 하게 된다. Object Persistence 에 대해서 더 간단한 방법을 추구하려고 노력했다면 어떻게 접근했을까. --["1002"]
PEAA 의 RDB Mapping 과 관련된 패턴을 바로 적용하는 것에 대한 답변
* 패턴의 오/남용 문제가 발생할 수 있다. - 어설프게 아는것은 모르느니만 못한 경우가 있다. 그리고 제대로 안다고 해서 "많이" 하는 것은 정말 잘 아는게 아닐 수 있다.
1. 13개월 프로젝트인데 2만라인짜리라는점 - 뭐.. 꼭 소스 라인수로 세는건 무리가 있긴 하지만. Servlet 프로젝트 2만라인. 내가 전에 팀 프로젝트로 MFC 엑셀 만들때가 1만 7천라인이였는데. -_-a 물론, Refactoring 이 잘 되어있고, XP 가 잘 적용된 프로젝트이라면 적은라인수로 많은 일을 하겠지만.
- ProjectZephyrus/Thread . . . . 5 matches
* ''Database Connection Pool 을 사용하던 하지 않던, DB 자원을 얻어오는 부분을 하나의 end point에서 처리하세요. 처음부터 이를 고려하지 않을 경우, '''*.java''' 에서 Database Connection을 생성하고, 사용하는 코드를 머지않아 보게 될겁니다. 이는 정말 최악입니다. pool을 쓰다가 쓰지 않게 될 경우는?다시 pool을 써야 할 경우는? 더 좋은 방법은 interface를 잘 정의해서 사용하고, 실제 DB 작업을 하는 클래스는 Factory 를 통해 생성하는게 좋습니다. 어떤 방식으로 DB를 다루던 간에 위에서 보기엔 항상 같아야 하죠. --이선우 [[BR]]
* 제가 JDBC 할때 삽질했던거 다른 사람들은 삽질하지 않도록 하기 위해서 남긴 문서가 있어여.. 조금이나마 삽질 방지하는데 도움이 되면 좋겠네여..^^: - 상협[http://www.caucse.net/cgi-bin/moin/moin.cgi/_c0_da_b9_d9_c7_c1_b7_ce_c1_a7_c6_ae_2f_b9_e6_c8_ad_ba_ae_c6_c0_b8_de_bd_c5_c0_fa_2fJDBC JDBC 관련 삽질 방지용 문서]
Database 관련 부분 아니라 팀 프로젝트시 고려해야 할 사항은 꽤 됩니다. SuccessfulProject 를 위해서 고려해야 할 사항은 어떤게 있을까요? 자세한 내용은 차후 정리해서 쓰기로 하고, 하나 이야기 하고 싶은건 최대한 '''중복'''을 피하도록 하세요. 특히나, 한참 대화를 하지 않고 있다보면 같은 일을 하는 utility성 클래스들을 모두가 하나씩 지니고 있을겁니다.
- Python/DataBase . . . . 5 matches
== 사용법 ==
* 아래 소스는 파이썬 DB API Spec 2.0 에 있는 것들을 사용해서 작성함(즉 다른 모듈에서도 동일하게 사용가능)
unix_socket - TCP를 사용할 unix소켓의 위치
client_flag - integer, 필요할 경우 사용하기 위한 flag (0)
- RoboCode . . . . 5 matches
각 로보코드 참가자는 자바 언어의 요소를 사용하여 자신의 로봇을 만들면서 자바가 갖고 있는 상속성, 다형성, 이벤트 처리 및 내부 클래스 다루는 방법을 배우게 됩니다
로보코드는 초보자들이 자바에 쉽게 접근할 수 있도록 도와주며, 전문가들은 이를 이용하여 다른 개발자들과 실력을 견주면서 자신의 프로그래밍 스킬을 향상시킬 수 있도록 합니다.
로보코드를 이용해 로봇을 만들면서 여러분의 자바 스킬이 향상되는 것을 느낄 수 있을 것입니다.
시간 제한 안에 로봇을 만들어내라고 했더니 아무것도 못 하는 사람도 있었다. 많은 명령어 가운데 어느 것을 사용해야 할 지 감을 못잡아서 그럴 것이란 생각이 들었다. 처음 로보코드를 접하는 사람들에게는 간단한 규칙을 정해놓고 연습해보는 시간을 가져보는 것이 어떨까? 이를테면 명령어 몇 가지만을 사용한다든지, 총 명령 개수를 제한한다든지 하는 규칙이 있겠다. --[Leonardong]
- STL/string . . . . 5 matches
* new - char* 로 만든 문자열은 프로그램 사용후 delete 해줘야 되지만, string은 소멸자에서 알아서 해준다. 생산성 증가!
* STL은 이용 방법의 general 을 추구했기 때문에, 사용법이 비슷하다.
* string 클래스라고 해서 공백을 무시할수 있는것은 아니다. 학교 교재에 보면 getline()과 get()이 나온다. string 변수로 입력을 받는다 해도 cin >>을 사용하면 공백을 입력 받을수 없다. 따라서 getline() 써줘야 한다.
* string을 이용해서 직접 입력 받을려면 이렇게 할수 있다.
- STL/vector . . . . 5 matches
vector<int>::const_iterator i; // 벡터의 내용을 변경하지 않을 것임을 보장하는 반복자.
// for 에서 반복자를 이용한 순회 1
// while 에서 반복자 이용순회
// for문에서 인덱스를 이용한 순회
* 아래와 같은 방법으로 벡터 내용을 통째로 지운다.
- ScheduledWalk/석천 . . . . 5 matches
입력데이터를 받아서 처리하는 방법에는 두가지가 있겠습니다. 하나는 리턴값을 넘겨주는 방법, 하나는 인자로 해당 변수의 포인터 또는 레퍼런스를 받은뒤, 그 변수의 값을 변화시켜주는 방법. (scanf 함수가 그러한 방법이지요.) 여기선 간단하게 리턴값을 넘겨주는 방법을 이용했습니다. int 형 두개 변수를 리턴하는 것이라면 구조체를 이용하는 것이 더 간단하리라는 판단에서입니다.
음.. Vector 자체로는 별 문제없어 보이네요. 그렇다면 다음은 실제 Roach를 이동시키는 Position 과 관련된 MoveRoach 부분을 살펴보죠. (여기서는 반드시 이동방향을 결정하는 함수와 실제 이동시키는 함수에 촛점을 맞춰야 합니다. board 배열의 값이 update 가 되기 위해선 어떠어떠한 값에 영향을 받는지를 먼저 머릿속에 그려야 겠죠.) 그림이 안 그려지는 경우에는 Debugger 와 Trace, break point 를 이용할 수 있습니다. 하지만, 구조화를 잘 시켜놓았을 경우 해당 문제발생시 버그 예상부분이 어느정도 그림이 그려집니다.
["RandomWalk2/TestCase"] 에서 멈췄다면 큰일날 뻔 했군요. 테스트는 자주 해줄수록 그 프로그램의 신용도를 높여줍니다. 일종의 Quality Assurance 라고 해야겠죠.
여기서 얻을 수 있는 교훈 - 이런 변환 부분은 차라리 함수로 만들자는 겁니다. -_-; 이 경우 OO Language 라면 1차원 배열을 이용한 2차원 배열 클래스를 만들어 쓰는 것이 가장 편합니다. 문제를 해당 배열 클래스 내로 지역화 시킬 수 있죠. 여기서는 일단 C로 만들었다고 가정하고 배제합니다.
- SeminarHowToProgramItAfterwords . . . . 5 matches
''그래서 PP나 XP의 과정을 Jazz에 비유하곤 합니다. 그리고 한번 유의어사전을 프로그래밍시 일주일간만 사용해 보세요. 그리고 거기서 무엇을 더 배웠는지 이야기해보면 참 좋겠네요. --김창준''
* ["neocoin"] : UnitTest에서 추구한 프로그램의 설계에서 Divide해 나가는 과정은 여태 거의 디자인 타임에서 거의 수행을 했습니다. 그래서 여태 Test를 위한 코드들과 디버그용 코드들을 프로그램을 작성할때마다 그런 디자인에도 많은 시간을 소요했는데, 아예 프로그램의 출발을 Test에서 시작한다는 발상의 전환이 인상 깊었습니다. --상민
* 흥미로운 것은 시끄러운 프로그래밍이였다는 것이였습니다. 혼자서 하는 프로그래밍(PairProgramming을 알고나니 새로운 개념이 생기는군요. 원래 Programming이라는 것은 혼자하는 거였는데, 이제 프로그래밍하면 pair인지 single인지 구분을 해주어야겠군요)을 하는 경우에는 팀원들이 소란스럽게 떠들면 ''아 지금 설계하고 있구나''하고 생각하고, 조용해지면 ''아 지금 코딩하고 있구나..''하는 생각이 들었는데, PP는 끝까지 시끄럽게 하는거라는 느낌이 들더군요. 그렇게 대화가 많아지는 것은 코딩에 대한 이해도의 증가와 서로간의 협력 등 많은 상승효과를 가져올 수 있다는 생각을 했습니다.
* 그리고 관찰하던 중 PairProgramming에서 Leading에 관한 사항을 언급하고 싶습입니다. 사용하는 언어와 도구에 대한 이해는 확실하다는 전제하에서는 서로가 Pair에 대한 배려가 있으면 좀더 효율을 낼 수 있을꺼라 생각합니다. 배려라는 것은 자신의 상대가 좀 적극적이지 못하다면 더 적극적인 활동을 이끌어 내려는 노력을 기울어야 할 것 같습니다. 실습을 하던 두팀에서 제 느낌에 지도형식으로 이끄는 팀과 PP를 하고 있다는 생각이 드는 팀이 있었는데. 지도형식으로 이끄는 팀은 한 명이 너무 주도적으로 이끌다 보니 다른 pair들은 주의가 집중되지 못하는 모습을 보인 반면, PP를 수행하고 있는 듯한 팀은 두 명 모두 집중도가 매우 훌륭한 것 같아서 이런 것이 정말 장점이 아닌가 하는 생각이 들었습니다. 결국 PP라는 것도 혼자가 아닌 둘이다 보니 프로그래밍 실력 못지 않게 개인의 ''사회성''이 얼마나 뛰어냐는 점도 중요한 점으로 작용한다는 생각을 했습니다. (제가 서로 프로그래밍중에 촬영을 한 것은 PP를 전혀 모르는 사람들에게 이런 형식으로 하는 것이 PP라는 것을 보여주고 싶어서였습니다. 촬영이 너무 오래 비추었는지 .. 죄송합니다.)
- ServerBackup . . . . 5 matches
2008-11-02 부터 진행하는 ZeroPage 서버 데이터 원격지 백업 스크립트 관련 내용.
* {{{/etc/group}}} 에 admin 그룹에 원하는 사용자 추가, {{{/etc/sudoers}}}에서 사용자 제거
1. 적용
* 해결 ~ admin 그룹에 원하는 사용자 추가
- ServiceQualityOfYongsanMarket . . . . 5 matches
용산 전자상가에 갈일이 많을 텐데, 이곳에 개개인이 평가한 상점의 서비스 평가나 가격등에 대한 정보를 모아두면 좋을 것 같아서 이 페이지를 만들었습니다. 상점이름은 ID로만 표현해두고 이 ID에 대한 정보는 ZP의 게시판에만 게시를 해서 외부인은 열람할 수 없게 해 두는 것이 좋을것 같네요. -- 임인택
* 1시간 정도 후에 매장을 찾아가 아까 전화했던 사람이라고 설명을 해주니 물건을 챙겨줌(용산의 특성상 손님을 반갑게 맞거나 하는것은 애초에 바라지도 않음). 봉지에라도 좀 담아주지...; 영수증좀 받을 수 있냐고 물으니 눈도 마주치지 않으며, '홈페이지에서 출력하시면 됩니다'. 보통 손님이 이런 요구를 하면 직접 출력해주는게 기본적인 서비스 아닌가?
DeleteMe) 용산에서 서비스를 바라는 자체가 이상 -_-;;; 싸기만 하면 장땡 ㅋㅋㅋ - [eternalbleu]
용산의 메인 고객은 소비자가 아니므로. 뭔가 핀트를 잘못맞춘건 아닐까; 그리고 용산의 영수증인 경우, 워낙에 이일저일(?) 하는 일들이 많아서 일부러 자유로이 빈 영수증 두었다가 필요할때 상호 도장찍는 경우 많음..--[1002]
- SingletonPattern . . . . 5 matches
프로그램 내에서 오직 하나만 존재해야만 하는 공용 객체에 대한 해결방법. (내용에 대해서는 ["Gof/Singleton"] 참조)
SingletonPattern 은 남용할 경우 위험하다. 여전히 Global object 이기 때문이다. 즉, Singleton 을 이용하는 모든 모듈은 Singleton Object 와 관계를 맺고 있는 것이 된다.
적절한 상속관계와 오브젝트를 인자로 넘겨주는 방법으로 Singleton 의 남용을 적절하게 줄일 수 있는 경우가 많다.
- StepwiseRefinement . . . . 5 matches
구조적 프로그래밍에서 상위 모듈을 먼저 개발하고 여기서 사용하는 하?모듈들을 개발해 나가는 방법. EdsgerDijkstra와 Niklaus Wirth가 이 방법을 대중화시킨 것으로 유명하다.
* EightQueenProblem2Discussion : EightQueenProblem, EightQueenProblem2에 적용해 보면 많은 것을 배울 수 있다.
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의 단점은 무엇이고, 이를 극복하는 방법은 무엇일까요? --김창준.
- SummationOfFourPrimes/1002 . . . . 5 matches
그리고 소수리스트로부터 4개를 구하는 방법에 대해 생각하다. 맨 처음에 대해서는 중복을 허용하면 안되는 줄 알고 구현하였다. 그러다가 문제에서 중복을 허용한다는 사실을 알고 다시 구현.
대부분의 시간은 소수테이블을 작성하는 부분이 된다. 그래서 이 부분에 대해서 Seminar:PrimeNumber 를 참고, 최적화된 알고리즘으로 수정하였다. 그리고 역시 psyco 를 이용하였다. 그 결과, 10000000 기준 10초. 기존 알고리즘의 경우 50000번 기준 24초 이상.
10000000 건에 대해서는 7.49 초 기록 (profiler 를 이용할 경우 속도저하가 있기 때문에 profiler 를 끄고 psyco 만으로 실행)
PyRex 는 Python 코드를 C 코드로 전환해준다. 이를 이용, C 모듈로 만들어 컴파일하고 결과를 실행. 의외로 7.x 대로, PsyCo 를 썼을때보다 오히려 성능이 떨어졌다. C 코드를 보니 웬걸. 전혀 알아볼수가 없는 코드다. 차라리 깨끗하게 직접 작성해주는게 성능향상 상으로는 유리하겠다는 생각.
- UploadFileMacro . . . . 5 matches
{{{[[UploadForm]]}}} 혹은 {{{[[UploadFile(js)]]}}}: 이 매크로는 여러개의 파일을 올릴 수 있는 폼을 자바스크립트를 사용하여 만들어준다.
예를 들어, {{{MyPage}}}에 들어가서 {{{MyPage?action=UploadFile}}}을 하거나, MyPage에서 {{{[[UploadFile]]}}} 매크로를 사용하여 파일을 업로드를 하면 $upload_dir='pds';라고 되어있는 경우에 {{{pds/MyPage/}}}가 새롭게 만들어지고 거기에 올린 파일이 저장된다.
$upload_masters=array('Foobar','Babo'); 여기에 등록된 모든 사용자는 파일 확장자와 무관하게 모든 종류의 파일을 업로드 할 수 있습니다.
이 값을 1로 설정하였을 경우, 업로드 할 때의 정보를 이용해서 파일 타입을 판별합니다.
안전한 업로드가 이미 보장 된 경우 사용하실 수 있을 것입니다.
- UselessTilePackers . . . . 5 matches
Useless Tile Packer라는 회사는 효율에 대한 자부심을 가지고 있다. 이 회사는 다른 회사보다 더 적은 공간을 사용하는 것을 가장 큰 목표로 삼고 있다. 영업부에서는 "useless(쓸모 없는)"라는 단어가 오해를 불러일으킬 수 있다고 생각하여 관리부에 회사 이름을 바꾸자고 여러 번 요청했지만 매번 거절당했다.
포장해야 할 타일은 모두 두께가 같고, 간단한 다각형 모양으로 생겼다. 각 타일이 담겨있는 용기 모양은 주문자가 마음대로 정할 수 있다. 용기 모양은 그 안에 들어갈 타일을 담을 수 있는 가장 작은 형태로 제작된다.
하지만 이렇게 하면 용기 안에 낭비되는 공간이 생긴다. 타일이 주어졌을 때 낭비되는 공간의 비율을 계산해야 한다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- VMWare . . . . 5 matches
유사기술을 적용한 Linux [Xen] 커널이 등장하기 시작했으며, Xen 은 차후 나타나게될 멀티코어 CPU 환경(플랫폼 자체가 완전히 다른)에 적합한 커널의 구축을 목표로 하고 있다고 한다. (완전히 다른 프로세서라면 당연히 해당 머신에 접근하는 인터페이스 역시도 다를텐데 XEN 을 이용해 해당 부분을 추상화시켜서 접근하는 식으로..) 현재에는 해당 기술을 보안 분야에서 이용하기 위한 연구가 진행중이며 기존의 단일 커널하의 커널모드, 유저모드 식의 구분이 아닌 관리자 커널, 애플리케이션 커널과 같은 구분으로 2개의 서로 다른 커널을 구현해 커널 단에서 애플리케이션이 머신에게 직접적으로 접근할 가능성을 원천 차단하는 방식의 연구가 되고 있다.
VMWARE 는 보통 개발 중인 OS 테스트 환경, 임베디드 환경의 크로스 컴파일 환경, 개발 중 어플리케이션의 다양한 플랫폼에서의 테스트 비용 최소화를 위해서 많이 사용한다.
- Vaccine . . . . 5 matches
자주 사용하는 백신들. 어떤 백신을 사용하시는지... -_-a
|| 백신 사용 안함 || 1 ||
도스 시절부터 v3을 사용해왔고 바이러스 검출 능력이 좋고 속도가 빠르다고 생각되어 계속 사용하고 있습니다. 구하기 쉽다는 장점도 있는것 같네요.; -- 재선
- WebGL . . . . 5 matches
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로 넘겨주면 각 정점 사이에는 보간법으로 변환된 값이 넘어 온다.
- WinampPlugin을이용한프로그래밍 . . . . 5 matches
winamp 의 plugin 을 이용한 프로그래밍
input plugin은 해당 화일을 읽어드리고 output plugin 으로의 출력을 소스를 제공한다. output plugin 은 출력 소스를 사운드카드나 하드 디스크로의 출력을 관장한다. 이 중간에 DSP 와 Visual plugin 이 callback 으로 결과물을 받은뒤 변수들을 이용한다.
이들을 잘 이용하면 복잡한 ACM 관련 처리 없이 훌륭한 확장성의 플레이어를 만들 수 있을 것이다.
// 추후에 Visualization 부분을 만들때는 실제 함수부분을 이용하게 될 것이다.
// dll 들 이용 완료.
- Yggdrasil/가속된씨플플/4장 . . . . 5 matches
* 장의 제목 그대로의 내용이다. 프로그램의 구조화(함수)와 데이터의 구조화(구조체) 등등을 설명하고 있다.
* 전달인자(여기서는 배열)를 값에 의한 전달/참조에 의한 전달을 적절히 사용해야 한다. 원래 값을 보호해야 하는 경우라면 값에 의해서, 원래 값을 바꿔야하는 경우라면 참조에 의해 전달한다.
* 1학년 1학기 텀프로젝트를 할때, 성적정렬 프로그램에서 정렬로 순서가 전부 바뀌어버려서, 루프문의 끝에서 전부 다 초기화했던 기억이 난다. 이때 전달인자에 전달 방식을 제대로 이해하고 활용했다면 편했을 것을.
* 구조체 만드는 법은 다 알고 있으니 넘어가고, sort()에 전달인자로 구조체를 넘겨주게 되면, 어떤 기준으로 정렬할 것인지 알 수가 없다. 그래서 3번째 전달인자를 사용할 수 있다. 즉,
* 이렇게 사용하고, compare의 정의부는,
- ZIM . . . . 5 matches
DeleteMe) * 용어 정리에 관한 페이지가 필요한것 같습니다. 이는 추후 유지/보수에 도움이되겠죠? (ZIMMER 가 ZIM 을 쓰는 사람이란 뜻인가요?) -- 이선우
* 사용 기술 : Java. JDK 1.1 이상
* 사용 기술 : MFC ActiveX, HTML, Java Script
* 개발자용 PC 2대
* 서버용 PC 서버 1대
- ZIM/EssentialUseCase . . . . 5 matches
|| 1. 사용자의 ID와 암호를 입력한다. || 2. 등록된 사용자인지 ID와 암호를 비교한뒤 결과를 보낸다. ||
|| 1. 화일 이름 & 용량을 확인한뒤 화일수신수락여부를 결정한다. || 2. 파일을 수신한다. ||
=== 유스케이스 적용 시나리오 ===
''XP 는 User Story에서의 사용자 무게중심 & 실제 구현시의 걸릴 Task point 으로 잡고, UP 는 기반이 될 아키텍처 순위로 잡고. 둘을 비교해서 생각하는 것도 좋겠군요. 조언 감사해요.~ ^^ --석천''
- ZIM/UIPrototype . . . . 5 matches
사용자 인터페이스의 프로토타입을 보여주세요.
Software for Use와 Contextual Design의 일독을 권합니다. UI쪽(특히 실전)에서는 탁월한 책들입니다. 이 책들에서는 UI 프로토타이핑을 종이를 통해 하기를 강력하게 추천하고 있습니다. 각종 자동화 툴을 써보면 오히려 불편한 경우가 많습니다. 넓은 종이와 다양한 크기의 3M 포스트 잇을 이용해서 버튼 같은 것의 위치를 자유로이 옮겨볼 수 있습니다. 이렇게 만든 프로토타입을 사무실 벽에 걸어넣고 그 앞에서 토론도 하고, 즉석에서 모양을 바꾸기도 합니다. 초기에는 커뮤니케이션 보조 도구로 화이트보드를 많이 사용하기도 합니다. 그러나 한 자리에서 함께 작업할 기회가 적은 경우에는 어쩔 수 없이 전자문서와 이미지에 의존해야겠죠. 제 경우는 주로 스캐너를 이용해서 손으로 그린 이미지 공유를 했습니다. 온라인에서 공동으로 디자인 토론을 할 경우에는 화이트보드가 지원되는 온라인 컨퍼런싱 툴을 씁니다. (e.g. 넷미팅) --김창준
groove 를 이용하는 방법도 있겠군요. 일정관리와 드로우, 노트패드, 화일 등을 공유할 수 있으니까. -- 석천
- ZP&JARAM세미나 . . . . 5 matches
세미나 두개 다 정말 유익하게 들었습니다. 병윤이 세미나 주제가 우려먹기라는데 내가 그 때 커스모집 때문에 없어서 이번 기회에 들었습니다^^ 와핫핫~!! 프로젝트 통합방법도 내년에 돌아와서 팀플할때 잘 써먹을수 있을거 같아요. 승한오빠가 하는 프리젠테이션 방식이 굉장히 좋았어요. 간결한 글과 시각적 효과를 이용해 보는 사람으로 하여금 몰입도를 높이는..(웃음) OST도 좋았습니다. 시간이 부족한게 좀 아쉽ㅠ
행사내용에 있어서는 2번의 세미나가 조화롭게 이루어진 것 같아요. 처음 세미나는 subversion의 유용성에 대한 세미나였는데 기술적인 내용은 아니었지만 충분히 subversion의 매력을 느낄 수 있게 해 주신 세미나였고 두번째 세미나는 LAN 환경에서 어떻게 snipping, spooling 하는지 개념에서부터 실제 방법까지 잘 설명되어 있어서 이해가 잘 되었습니다.
자람 24기 김희정입니다~ 중앙대 처음가봤는데 학교가 참 옹기종기모여있으면서도 크구 참 이뻤어요! 마련된 저녁에도 감덩감덩 ㅜㅜ! 제로페이지에서 준비한 세미나에서는 새로운 내용을 알게되서 좋았습니다. 같은 08학번인데 세미나 하시는 분 보고 저도 좀더 노력해야 겠다고 생각했구요, OST에서는 게임에 대한 주제에 참여했는데 게임을 하는 걸로만 생각했었는데 이번 OST를 통해 개발자의 입장에서도 생각해 볼수 있어서 좋았습니다. 그리고 다양한 공부?에 대한 주제에 대해 들어보고 싶었는데 시간이 부족해서 참여할수 없었던게 좀 아쉬웠네여~ㅜ 여튼 그래도 알차고 재밌었던 시간이었구요~ 나중에 우리학교에서 다시만나요~안녕히~+_+
- ZPBoard/PHPStudy/MySQL . . . . 5 matches
= MySQL 사용하기 =
* 실행결과의 identifier의 내용을 배열로 저장
* 실행결과의 identifier의 내용을 field 명을 사용하여 배열로 저장
= 사용예제 =
- ZPBoard/PHPStudy/쿠키 . . . . 5 matches
* 쿠키(Cookie)는 클라이언트 컴퓨터의 하드에 해당 컴퓨터의 여러가지 정보가 저장된 파일을 지칭하는 말입니다. 현재 많은 사이트들이 이를 이용해서 여러가지 서비스를 제공하고 있습니다. 예를 들자면 제로위키에서는 이를 이용해서 로그인 서비스를 제공하고 있답니다.
= PHP에서 쿠키를 사용하는 방법 =
* 제한시간 항목에는 time()이나 mktime()함수의 리턴값을 사용할 수도 있다.
* 뒤에 경로, 도메인주소, 보안은 사용안해도 된다.
- ZP도서관 . . . . 5 matches
|| Flash Action 액션스크립트 활용사전 || 장동화 환재현 || 정보문화사 || [이승한] || 이것도 프로그래밍 ||
|| 이성의 기능 || whitehead || [강희경](김용옥 의역),["1002"] || 철학관련 ||
|| 죽음의 수용소에서 || 빅터 프랭클 || ["1002"] || 아우슈비츠 후기 & 로고테라피 심리학 ||
종필아 체게바라 평전 볼만해? 대강 무슨내용? --상민
|| 누구에게 || 누가 || 내용 ||
- ZeroPageServer/Log . . . . 5 matches
* HTML관련 내용 - 모인의 도입과 주 사용자 층이, HTML을 공부하는 층이 아니라서
* sshd 만 돌린다고 해서 SSH 파일 교환 쉘은 사용할수 없는건가요? ssh_config 파일 수정해도 잘 안되던데... ["임인택"]
* A: 하위 도메인을 가지기 위해서는 서버에 DNS(Domain Name Server)를 설치하고 각 유저에게 DNS를 드리면 되지만, 그런 용도를 생각하고 있지 않습니다. --["neocoin"]
* Q : 현재 ZeroPage의 서블릿컨테이너가 사흘이 멀다하고(좀 부풀려서 ^^) 운명을 달리하시는데, 데비안 버전의 Resin 문제인건가요? 아니면 파악된 다른 원인이 있습니까? 현재 2.1.6 버전이 나와있던데, 업그레이드해볼 계획이 있나요? 또는, 다른 서블릿 컨테이너를 사용해보는건 어떤가요? Resin 2.0 대 기준으로 스트레스 테스트시 죽는 일은 있었습니다. 누군가 ZeroPageServer에 스트레스테스트를 하고 있나요?
- ZeroPagers . . . . 5 matches
학부생들은 자신의 개인페이지를 현재의 계획, 관심사를 적는 등의 용도로 사용해 주세요.[[BR]]
* [김용준]
* [장용운]
* 성우용
- ZeroWikiVsOneWiki . . . . 5 matches
요 몇달간 한가지 목적(위키를 처음 사용하는 분들과 함께 새로운 규칙을 만들어가며 위키 사용에 익숙해지자는 것)을 위해서 제로위키와 원위키를 나눠서 썼는데, 그 결과나 앞으로 이대로 좋은지에 대해 토론해 봅시다. 그리고 다시 원위키와 제로위키를 합칠지 그대로 둘지도 생각해봅시다.
위에 보이는대로 한 가지 목적으로 원위키를 나눴는데, 그 목적을 '''처음'''사용하는 분들이 잘 모르고 있지는 않았나? 아니면 많은 다른 사용하는 분들도 모르고 있지는 않았나? 나는 '''처음'''쪽인지 '''함께'''하는 쪽인지 알지는 못하겠지만, 처음에는 생각하고 있었으나 언제부터인가 '''목적'''을 잊고 있었다. 항상 들어가는 페이지(주로 [실시간멀티플레이어게임프로젝트])만 들어가다보니 생긴 현상일지도 모르겠다. 아무튼 '''목적'''잘 알려지지 않았다고 생각한다.
OneWiki 의 목적중, 신입 회원분들이 ZeroWiki를 쓰면서 그간 쌓여 있는 것들을 보면서 짖눌린 느낌을 받지 않을까 해서 였습니다. ZeroWiki는 내부 포멧이나, 내용이나 암묵적으로 무거움을 가지고 있다는 생각이 드는 걱정으로 OneWiki를 열고 새 인원들의 원할한 실험의 장으로서 그 역할을 하기를 바랬던 것이지요.
- django/Example . . . . 5 matches
본 논문에서는 Django를 사용하여 실생활에서 쓰일 만한 시스템을 만들면서 질의처리 능력과 데이터베이스 추상화를 실험해본다. 안전관리시스템은 안전관리가 필요한 위험을 파악하고, 위험이 발생하는 경우 사용할 수 있는 대처방안을 설정한다. 그렇게 함으로써 위험한 상황이 발생하지 않도록 하고, 실제로 위험한 상황이 발생했을 때 정책에 따라 적절한 방법으로 대처하여 큰 사고로 이어지지 않도록 돕는다.
예를 들어 "너구리" 제조회사에서 안전관리시스템을 사용하여 "화재"라는 위험을 관리한다고 생각하자. "화재"가 발생하면 가연성 물질인 "너구리 꼬리"에 불이 옮겨 붙어 대형 사고로 이어질 수 있다. 따라서 "너구리" 사는 "물뿌리개"를 직원들에게 지급하여 "너구리 꼬리"에 불이 옮겨 붙기 전에 "화재"를 진압하기로 결정했다. 또한 "너구리" 사는 "화재"가 5분 안에 진압되지 않는 경우 "일일구" 서비스를 이용하기로 결정했다. 따라서 "너구리"사 직원들은 불이 났을 경우 "물뿌리개"로 일단 불을 끄고, 5분이 지나면 "일일구" 서비스를 부를 것이다.
또한 "너구리" 사는 "도난"이라는 위험도 관리한다. "너구리 꼬리"가 "도난"을 당하면 "너구리" 사는 많은 손해를 입는다. 하지만 "다잡아"라는 무인 경비시스템을 설치하기에는 너무 많은 돈이 필요해서, "너구리" 사는 "종잇장" 보험만 이용하여 "도난"을 관리한다. "종잇장" 보험은 "도난" 뿐 아니라 "화재"에 대해서도 보험금을 지급하기 때문이다. 또한 "도난"이 발생하지 않도록 직원들에게 정기적으로 교육을 실시한다.
- eclipse단축키 . . . . 5 matches
자주 사용하는 단축키
== 유용한 팁 ==
* 주로 Editor에 떠있는 화일 닫는 용도로 사용
* Content Assist : show template proposals 사용가능한 메소드 이름 보여준다
- eclipse디버깅 . . . . 5 matches
프로그램을 한 단계 진행하되, 메쏘드 호출부라면 실행 포인트를 메쏘드 안으로 옮긴다. 호출하는 메쏘드의 내부 동작을 확인하고 싶을때 사용한다.
메쏘드 호출부라도 메쏘드 안으로 들어가지 않고 현재 코드에서 한 단계씩 진행한다. 호출하는 메쏘드 내부 동작에는 관심이 없고 현재 코드 블럭에 관심을 집중하고 싶을 때 사용한다.
에디터에서 커서가 위치한 곳까지 실행한다. 브레이크포인트를 새로 추가하지 않고도 코드 내 임의의 위치로 실행포인트를 옮기고 싶을 때 유용하다. 실행되지 않을 부분을 선택한 상태에서 Run to Line을 실행시키면 프로그램이 끝까지 진행돼 버릴 수 있으므로 주의해야 한다.
선택한 스택 프레임의 첫 행으로 실행 포인트를 옮긴다. 특정 메쏘드를 실행하다 그 메쏘드의 처음부터 다시 디버깅하고 싶을 때 유용하게 사용할 수 있다.
- html5/communicationAPI . . . . 5 matches
destFrame.contentWindow.postMessage("메세지 내용", /*포트 생략가능*,/ "http://desc.example.com");
* start() : 포트를 이용할 수 있도록 한다. 채널 메세징 수행시 각각의 포트에 대해 start()를 호출
* close() : 포트를 사용할 수 없게 함
* 채널을 이용한 메세지 송신
// 포트를 이용한 메세지 송신
- 김동준/Project/OOP_Preview/Chapter1 . . . . 5 matches
== Chapter1 진행내용 ==
* OCP의 원리 이용. (코드의 재사용성)
2) 객체지향의 기본 원리를 적용해서 소프트웨어를 유연하게 한다.
3) 유지보수와 재사용이 쉬운 디자인을 위해 노력한다.
- 김희성/리눅스계정멀티채팅2차 . . . . 5 matches
int client_socket_array[25]; //클라이언트 소캣, 각 스레드 마다 자신의 번호에 해당하는 소캣 사용
//ex) 스레드가 사용 중인 소캣 == client_socket_array[스레드 번호]
//사용자가 이해하기 쉽도록 스레드 번호에 +1 값을 쓰도록 한다.
gotoxy(0,100);//gotoxy의 특징을 이용하여 화면을 한칸 올린다.
send(client_socket,buff_snd,strlen(buff_snd)+1,0);//메세지 전송을 허용함.
- 데블스캠프2005/화요일후기 . . . . 5 matches
[남도연]:오늘 크게 2가지를 배우게 되었다. 하나는 알고리즘과 자료구조에 관한 내용이었고 하나는 파이선에 대해 배운 것이었다. 알고리즘과 자료구조는 평소 우리가 수업시간에 들었던 내용이기는 하였지만, 막상 코드로 직접 적용하려니 잘 풀리지 않았다. C코딩을 할때 중요한 것이 알고리즘이라는 것을 또 한번 느끼게 되었다. 아무 생각 없이 코딩을 무작정 하려고 하다가는 크게 낭패를 본다는것을 배웠기 때문이다. 알고리즘은 하나의 계획표라고 볼 수 있다. 하나의 프로그램을 짜기 위한 계획표. 파이선은 C언어와는 사뭇 다른 언어였다. C언어 보다 편리한면이 많아 보이기는 했지만, C언어보다 못한 점도 간혹 보였다. 아직 미숙하기 때문에 딱히 무엇이라 말할 수는 없지만.. ㅋ 오늘 새로운 언어도 배우고 알고리즘의 중요성도 다시금 느끼게 되어 날 샌것이 아깝지 않았지만, 내준 과제 모두를 다 해결 하지 못한 것이 아쉬움이 남는다. 다 해결했으면 더 뿌듯 했을텐데 .. ㅋ
파이썬이라는 것을 어떻게 사용하는지 그리고 언어?를 조금이라도 더 많이 배웠고..
* 미리 ppt자료를 완성하고 리허설을 마치면 어느 시점에서 무엇을 해야할지 명확해진다. 자료 만드는데 신경을 많이 썼지만 리허설을 안 해보고 실습 자료 준비에 소홀한 점이 후회된다. 아무리 사소한 것이라도 앞에서 보여주면 그것을 따라하고 응용하면서 발전시켜나가는 수강자(?)들을 보니 더욱 철저하게 준비해야겠다는 생각이 든다.
- 데블스캠프2006/준비/월요일 . . . . 5 matches
남상협,김정현,박영창,유용안,이규완,송수생
|| 송수생 || 김정현 || 유용안 || 남상협 || 이규완 || 박영창 ||
||am 01:00~02:00 || SVN,SSH 사용법등 || 남상협 (01) ||
||am 02:00~03:00 || 검색 및 MSDN || 유용안 (01)||
위 일정시간에 배우는 예제 소스는 최종프로그램에서 다 사용 하여서 프로그램을 만든다.
- 레밍즈프로젝트/프로토타입/MFC더블버퍼링 . . . . 5 matches
== 사용 ==
클래스 내부에는 윈도우 핸들이 없기 때문에 GetClientRect를 사용하지 못한다. 따라서 전달인자로 CRect가 전달된다.
== 사용 ==
= 용도 =
화면의 끊김을 없애기 위해서 사용될 것이다.
- 반복문자열 . . . . 5 matches
* for 루프를 사용.
|| 성우용 || C || || [반복문자열/성우용] ||
|| 서용욱 || C || || [반복문자열/서용욱] ||
- 방학중PC실이용토론 . . . . 5 matches
방학 중 PC실 이용에 대해 ZeroPagers는 할 말이 있다.
구피만 개방인가요? 7층 컴퓨터가 훨씬 사양이 좋은데. 게다가 구피는 Netory가 프로젝트진행차 쓰고 있는걸로 기억합니다. 공부한다고 말하고 조교 입회하는거 상관말고 스터디할때 이용하시길. --[1002]
사람이 많은 날에는 신피 구피 모두 열어달라고 말씀드리면 안되나요? 같은 층에 있어서 관리하는게 그리 귀찮은 것도 아닐텐데... 방학이긴 하지만, 학생들이 학과 시설물을 마음대로 이용할 수 없어서야 원; - [임인택]
방학이 한 달 남았네요. 각종 스터디나 프로젝트를 잘 진행하고 계시나요? PC실 사용이 불편해졌는데, 그래도 PC실을 이용하시는 분들은 어떻게 불편을 극복하셨나요? --[Leonardong]
- 병역문제어떻게해결할것인가 . . . . 5 matches
* 위 내용은 작성자가 합격해서 정확한 내용을 파악하면 정정 될 수 있음.
* 레이다운용/정비병
* 말그대로 레이다를 운용하는 특기병. 해안가 기지에서 육지로부터 10마일 이내의 범위를 감시합니다. 나름 매달 모집하고, 학과와 자격증에 따라 추가점수가 있기 때문에 대부분 합격할 수 있습니다. 훈련소를 마치고 후반기교육을 받은 후 자대 배치를 받으며, 해안가 기지로 배치받기 때문에 인천부터 시작해서, 해남/완도, 여수, 부산, 강원도 등 어디를 배치 받을지 알 수 없습니다. 감시 기지이기 때문에 격오지로 취급해 휴가와 수당이 지급되며, 24시간 작전부대로 취급되어 체력단련 및 기타 사격 훈련, 유격, 혹한기 등의 훈련이 없습니다. 단점은 분대 단위로 근무에 투입되어 3교대를 한다는 것이지만, 밤새서 과제하던 여러분이라면 금방 익숙해질 것 입니다. 격오지 부대라서 PX가 없지만 주에 한번꼴로 황금마차가 방문합니다.
* 2016년 이후 재배정 TO에 한하여 대학생도 사용가능하도록 하여 일부 인원들은 TO를 받을 수 있게 되었으나, 수요에 비하면 재배정 TO는 굉장히 적은 상황입니다.
- 블로그2007 . . . . 5 matches
* PHP 5 무작정 따라하기(실무에 빠르게 적용하는)
== 내용 ==
* Eclipse용은 크게 두종류가 있습니다.
미래에는 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를 눌러서 무엇들이 같이 패키징 되었나 보세요.
PHP 인터프리터는 APM을 같이 생각해 설치해야 합니다. 국내에 유명한 APM패키지로는 [http://apmsetup.com/ APM Setup]이 많이 쓰입니다. 그러나 작년 말에 예정된 업그레이드 버전 이후 소식이 없습니다. (내부 사정이 있는 것 같아요.) 더 추천할 곳은 [http://www.apachefriends.org Apach Friends]라는 멋진 곳에 있는 XAMPP를 사용하세요. 천천히 RTFM해보면, 됩니다.
- 사과나무/과제방/1회차/김도익 . . . . 5 matches
== 과제 내용 ==
scanf 함수는 사용자로부터 자료를 입력받는 함수입니다.
scanf() 함수는 입력란을 만들어 자료를 입력받는 함수입니다. 입력된 자료는 매개변수로 지정한 변수에 대입됩니다. 문장 형식을 통해 입력된 자료를 변수에 대입한다는 점에서 변수의 값을 문장 형식에 사용하는 printf() 함수와는 출력 방향이 반대인 셈입니다
scanf() 함수를 사용하기 전에 printf() 함수로 안내문을 보여주는 것이 좋습니다.
scanf() 함수로 입력된 자료는 변수에 저장됩니다. 이때 입력받을 수 있는 자료형의 종류가 정해진 상태이므로 사용자가 제대로 입력해주어야 합니다. 따라서 scanf() 함수로 자료를 입력받기 전에 어떤 자료를 입력해야 하는지 알려주는 안내문이 필요합니다. 이 안내문은 printf() 함수를 통해 미리 보여줄 수 있습니다.
- 새싹교실/2011/Pixar/5월 . . . . 5 matches
* 오늘 하노이탑을 하고 재귀함수를 이용한 숙제를 했습니당. 아오 하노이탑 어려웠습니다. from temp to 유후 아직 조금 어려워요 ㅠㅠ. 프링글스는 맛있었습니다. 오늘 ARRAY가 너무너무 배우고싶었는데 망할 오상준과 이승열 이자식들이 안와서 못배웠습니다 ㅠㅠ. 숙제 집에가서 다시한번해볼려구요 더 많이ㅣㅣㅣㅣ 배우고싶어요 누나 ㅋㅋㅋㅋㅋ
배열에 대해서 누나에게 저번숙제를 위해 배워놨었기 때문에 배열은 어렵지 않았습니다. 근데 배열을 활용한 예제들이 무척이나 어려웠습니다...ㅠㅠㅠ 숙제도 해가야대는데 ㅎㄷㄷㄷㄷ 너무 어려워요 ㅠㅠㅠ 이번새싹은 컴퓨터가 바뀐 5피에서 하고싶습니다. 어려운 문제좀 잘 풀고 싶습니다 ㅠㅠ
어제는 배열에 대해 공부했습니다. 배열은 변수가 많을 때 편리하게 시간단축하기위해서 사용하는건데 자료형 쓰고 배열이름이랑 크기로 나타냅니다!
* 4피 환경이 여의치 않아 빈 강의실을 찾아 진행했습니다. 손코딩도 매우 좋은 학습 방법이라고 생각하지만 네명이나 되니 일일히 봐주기 어려워 직접 코딩하는 것보다 진행하기 어려웠어요. (다른 것들도 그렇지만) 배열은 사실 쓰는 법은 매우 간단합니다. 어떻게 활용하는지와 실제 배열 사용시 작동방법을 이해하는 것이 중요하다고 생각해요. 그런것들은 앞으로 다른 부분을 배우면서 실습을 통해 계속 배워나갈거예요. 다음 시간에는 새로 단장한 5피를 쓸 수 있었으면 좋겠습니다.
- 새싹교실/2011/學高/3회차 . . . . 5 matches
* 다음 수업시간에 배운 소스에서 배운 내용을 정리해서 올리시오.
/*사용자 공격*/
=== 가르친 내용(fact) ===
* 학생이 적어서 소스코드를 이용해서 수업했습니다.
=== 배운 내용(fact) ===
- 새싹교실/2011/學高/8회차 . . . . 5 matches
* 아래 소스코드를 큰 틀로 해서 recursive function을 이용하여 하노이의 탑 시뮬레이션 프로그램을 작성하라(이동 상황을 출력한다, 전역변수를 이용하여 횟수를 카운트하게 하여 H_n = 2*H_n-1 + 1 점화식에 맞는 답이 나옴을 보여야한다.)
== 가르친 내용 ==
* declaration과 사용
== 배운 내용 ==
- 새싹교실/2011/무전취식/레벨1 . . . . 5 matches
== 수업 내용 ==
* 첨으로 VS2008을 써보았슴다. 표준입출력 연습?? 언어에 관해서는 그다지 어려운 점이 없었는데, 내컴에 깔린 VS2008과 실습실에 깔린 VS2008 환경설정이 달라서 조금 걱정ㅠㅠ.. 사실 C언어 코딩을 반년 넘게 안하고, 중간에 C99 표준 내용을 아주 쪼오금 본 뒤 다시 표준입출력으로 돌아오니, C언어가 참 어렵다는 생각이 들기도 했습니당. 저도 갈길이 멀지만 저보다 한발짝 뒤에 있는 동기들을 보면 조금 걱정입니다. ㅜㅜ 화이팅 -[정진경]
* VS2008이란 것을 처음으로 사용해보았습니다. 처음 새싹수업에서는 어려운 점을 많이 느껴서(긴장을 좀 한 탓도 있어요ㅋㅋ) 그날 배웠던 것을 잊어먹지 않기 위해 계속 해서 성공할 때까지 실습을 했습니다. 하나 하나씩 성공을 하고 나니 뿌듯함도 느끼고 자신감도 생기는것 같아서 기분이 좋습니다. C프로그래밍 시간에 졸았던게 많이 후회가 됩니다ㅋ 대학교와서 노는 시간이 많이 늘긴 했지만 초심을 잃지 말아야 겠어요ㅋ. 앞으로는 수업한 내용들을 가능하면 당일날 복습을 해둬야 할 것 같습니다. 새싹교실 들기를 정말 잘 한 것 같아요~! -[서원태]
* ㅋㅋㅋ 특수문자 $도 허용되네요 - [서지혜]
- 새싹교실/2011/씨언어발전/4회차 . . . . 5 matches
== 수업내용 ==
* 함수의 사용법(함수의 오버로딩)
* 함수의 사용법(함수의 오버로딩)
수업시간에 자서 못들었던 함수에 대한 내용과 지역변수 전역변수 static 변수 를 배웠다.
오늘은 switch 함수를 응용하여 1을 입력하면 더하고, 2를 입력하면 곱하고, 3을 입력하면 나누는 코딩을 해 보았다.
- 새싹교실/2012/벽돌쌓기 . . . . 5 matches
: printf의 활용
* 허나 1회차의 내용을 제대로 복습하지 않아 1회차 내용을 다시 설명하는 데 시간이 조금 걸렸고, C언어를 배우는 데 있어서 필요로 되는 프로그래밍 능력 또한 키워주어야 한다고 판단 되었다.
* 본 강사의 몸 상태가 좋지가 않아 총 2시간의 강의를 진행하였고, 진도 내용 또한 부실하였다고 판단하고 반성한다.
* int와 int값의 연산은 int로 나오는 데, int와 float값의 연산이 왜 float로 출력되는 가, float와 float값을 int값에 저장하였을 때 왜 소수점 자리가 버려지는 가 등과 같은 내용으로 강제형변환을 강의하였다.
- 새싹교실/2012/아우토반/앞반/3.22 . . . . 5 matches
|| 강사 || 장용운 || O ||
* 우와 처음으로 새싹 교실 강의를 진행해 보았습니다. 긴장도 많이 됐는데 강의자료가 없어서 그런지 어수선한 순서로 가르쳐준 것 같네요..ㅜㅜ 다음부턴 강의자료도 탄탄하게 준비해 오겠습니다:O 여러분 싸릉해요♥♥♥♥ - [장용운]
용운용운쌤( ++a, a++) 계속 헷갈려용~_~
- 새싹교실/2012/아우토반/앞반/3.29 . . . . 5 matches
|| 강사 || 장용운 || O ||
* 개념 설명 위주로 수업을 진행하였다. 아무래도 포인터를 배우기에 앞서 필요한 메모리 동작에 대한 지식을 이해시키려면 좀 더 시간이 걸릴 것 같다. 실습하는 시간도 필요할 것 같다. 수많은 런타임 에러를 겪고 나서야 포인터를 느낄 수 있으니까... 긴장타시오 다음 시간엔 멘탈붕괴가 일어날 테니깐! - [장용운]
앞부분 반복문, 조건문 등 소스는 이해되지만 프로그램을짤때에는 잘 못짜고, 실전에서 사용하는것이 소스를 보는것보다 직접짜는것이 매우 미숙하다고 느껴졌습니다. 그래서 진도만이 아닌 알더라도 앞에서 확실히 기초를 다지고 새로운것을 배웠으면 좋겠습니다.ㅜㅠㅠ..-[안혜진]
(1) sizeof 연산자를 이용하여 int, char, float, double 변수와 그 변수를 가리키는 포인터 변수가 메모리를 차지하는 용량을 구하시오(소스 코드 및 결과)
- 새싹교실/2012/열반/120409 . . . . 5 matches
= 수업 내용 =
* 과제 내용을 위주로 실습을 진행했습니다.
* 중첩 반복문을 이용한 별찍기
= 다음 수업에 할 내용 =
* 수업 내용 복습
- 새싹교실/2012/열반/120507 . . . . 5 matches
= 수업 내용 =
* 어떤 도서관의 서가에 책이 정렬되어 있지 않다고 가정해봅시다. 그 상황에서는 어떤 특정한 책을 찾기는 매우 힘듭니다. 우리가 도서관에서 책을 쉽게 찾을 수 있는 이유는 책들이 정렬 되어 있기 때문입니다. 단, 저런 편리함을 위해서는 어느 정도의 비용이 발생합니다. 기존의 데이터를 정렬할 때 드는 비용이 있고, 새로운 데이터가 삽입하려 할 때 정렬을 유지하기 위해 드는 비용이 발생합니다. 예를 들어 도서관의 서가에 책이 정렬되어 있으면 새로운 책이 들어왔을 때 제 자리에 찾아 꽂아야 하지만, 정렬되어 있지 않다면 아무 빈 공간에 꽂으면 됩니다. 이렇듯 비용이 발생하기 때문에, 어떤 자료를 항상 정렬할 필요는 없습니다. 찾는 일보다 추가하는 일이 훨씬 많다면 정렬하지 않는 것이 이득이 될 수도 있습니다.
- 새싹교실/2012/탈락 . . . . 5 matches
* 변수, 데이타 타입, 반복문, 조건문 등을 가르침 기본적인 문법을 가르쳐주고 직접 그 문법을 사용하여 사용법이 익숙해지게 끔 하였다.
* 1회차에서 배운 내용을 기억하고 있는지 복습 예제를 주어 풀게하였고, 이번차에서는 스위치문의 문법과 사용하는 이유, 배열과 배열을 쓰면 편한 점 등을 설명해주고 예시문제를 주었다.
* 강사님 컨텐츠 내용을 조금 더 채워주시기 바랍니다. 어떻게 가르쳤는데 어떤 결과가 나왔는지요. - [김준석]
- 새싹교실/2012/햇반 . . . . 5 matches
지금까지의 수업에서 했었던 내용을 집중적으로 복습
당시 6층 피씨실에서 없었던 관계로 VS를 이용하여 수업
각각의 사용방법설명후 하나씩 구현해봄
ㄴ.함수의 사용방법
4) 전체적인 수업내용 처음부터 복습, 궁금한점
- 새싹교실/2013/라이히스아우토반/6회차 . . . . 5 matches
= 수업 내용 =
== 내용 ==
* Can't Save가 떴을 땐 당황하지 말고, 작성한 내용을 클립보드에 보존한 뒤(Ctrl+C) 새로고침을 한 뒤 붙여넣고 저장할 것.
오늘은 switch에 대한 자세한 복습을 했습니다. 그리고 그 switch 를 if랑 else if 를 사용하여 바꿔보았습니다.
여기서 오늘 switch 와 if 랑 else if 를 이용하여 프로그램을 짤 수 있다는 사실에서 정말 재밌었습니다.
- 새싹교실/2013/록구록구/8회차 . . . . 5 matches
== 수업 내용 ==
* 반복문을 활용한 배열의 장점 및 사용법
반복문을 사용하여 배열의 모든 요소를 출력하는 프로그램을 만들어 보세요!
2. 5칸짜리 int형 배열을 선언합니다. 값은 scanf와 반복문을 사용하여 입력받습니다.
- 손동일/TelephoneBook . . . . 5 matches
int mode; // 항목 선택시에 사용되는 변수
int menu_num; // menu 선택시에 사용되는 변수
void save(); // 적은 내용들을 파일에 저장한다.
void TelephoneBook::save() // 적은 내용들을 파일에 저장한다.
포인터를 이용할 수 있는 방법일 듯..
- 열린제로페이지 . . . . 5 matches
'숨쉬는독'군은 평소 관심이 많던 보안 관련 스터디를 하고 싶은데 어떻게 시작하면 좋을지 잘 모르는 초보자이다. 앞서 공부했던 선배의 조언을 듣고 싶고, 또 같이 공부할 사람이 있으면 좋겠다는 생각이 들었다. 그리고 자신이 공부한 내용을 나중에 공부할 사람과 공유하며 같이 발전하길 원했다. 그러나 그가 속한 '우드페이지'란 학회에는 보안에 관심이 있는 사람이 그렇게 많지 않았다. 결국 '숨쉬는독'군은 선배, 동기를 모아(공교롭게도 그들은 '우드페이지' 회원이 아니었다.) 보안학회 '까스'를 만들기로 결심을 한다. 그러나 관련 분야 초보자가 새로운 학회를 만들기란 무척 버거운 일이었다. 결국 그가 만든 보안학회는 좌초되었다.
'숨쉬는독'군은 평소 관심이 많던 보안 관련 스터디를 하고 싶은데 어떻게 시작하면 좋을지 잘 모르는 초보자이다. 앞서 공부했던 선배의 조언을 듣고 싶고, 또 같이 공부할 사람이 있으면 좋겠다는 생각이 들었다. 그리고 자신이 공부한 내용을 나중에 공부할 사람과 공유하며 같이 발전하길 원했다. 그래서 그는 과내 학회 '오픈페이지'에 보안 스터디 그룹 '까스'를 조직하고 사람을 모았다. 중앙대학교 컴퓨터 공학과 학생이라면 누구나 거리낌없이 참여할 수 있는 학회 '오픈페이지'에 보안에 관심있는 사람들이 새로 모였다. 보안 스터디 '까스'는 '오픈페이지'의 위키위키에 보안에 대한 화두 정도를 던져놓고 해체되었다.
전체적인 부분에 대한 고민은 부족하지만, 한가지 사실을 간과하는듯 하여 글을 남깁니다. 현 시점에서 제로페이지는 자선 단체가 아닙니다. 누군가 자신의 잉여 시간을 투자하여, 원할한 스터디나 프로젝트를 위해 돕는게 아닙니다. 시나리오 1-1, 2-1에서의 이유는 '누군가 뒷바라지를 안해줘서', '기대고 들어올 틈이 보이지 않아서' 라는게 주요한 이유로 보이지만, 현재로선 이러한 상황에 대한 여유가 없었고 또한 학회가 생긴 본래의 목적은 아니었기 때문입니다. 오히려 반문해볼 수 있습니다. 제로페이지에 들어오는데 누구도 막은 일이 없는것으로 알고 있습니다.(제가 학교에 없을때의 일은 모르겠습니다.) 진입장벽 이야기는, 어느 모임에나 있습니다. '모임에 처음나갔는데 아는 사람끼리만 이야기 하고 너무 서먹하더라'로 귀결되는 이야기는 여타의 동호회에서도 쉽게 찾아볼 수 있는 문제점 입니다. 모임에 들어오고자, 모임에서 어떤 내용을 얻고자 한다면 노력이 있어야 하는건 당연합니다. 애초에 그러한 접근 자체를 차단한다면 문제가 되겠지만, 현재는 말이 제로페이지로 묶여있는 상태이지 교류는 제한을 두지 않는것으로 압니다. 예를들어, 나우누리라는 통신회사가 자료를 누구나 쓸 수 있게 공개를 하지 않았다 하여, 나우누리는 정보 공유의 진입 장벽이 될 뿐이다. 라고 비난할 수는 없는 노릇입니다.
예전에..아주 예전에..당나귀와 당근이론(-.-)을 설명하던 때에 잠시 언급했던 제 의견과 유사한 의미의 내용이었기에 도움이 될까해서 당시 있었던 이야기를 한번 적어 봅니다.(어쩌면 회의록에 있을까요?) 그 때, ZeroPage회원 관리를 인력 풀 형식으로 하자는 의견을 냈었습니다. 자신이 같이 공부할 혹은 같이 프로젝트를 진행할 사람이 필요하면 학회에 그런 선전을 하고 그렇게 마음이 맡는 사람들끼리 단위 작업을 수행하는 식으로 학회를 꾸렸으면 좋겠다고 했었습니다. 하지만, 그 때 제기된 문제점은 그러한 방식은 조직의 결속력을 화해시킬 우려가 있지 않을까 하는 점이였습니다. 자신이 필요할 때는 학회를 찾다가 학회에서 자신에게 이익이 되지 않는 일을 할때는, 가령 전시회 준비를 한다거나 , 나 몰라라는 식이 될 수도 있다는 점이 문제점이였던 것 같습니다. 이런 일이 반복되게 되면 회원들 간의 유대관계가 느슨해질거라는 우려를 해결한 방안이 없었기에 더 이상의 의견을 주장하지 못하였습니다.
학교에 있을때, pc실에서 후배들과 이야기를 하는 도중에는 항상, "ZP는 언제나 열려있고, 관심있으면 아무때나 누구나 들어올수 있다." 라고 했지만, 그리 효용이 없었습니다. 이 이상 할수있는 노력이 무엇일까요?
- 우리홈만들기 . . . . 5 matches
*그계정으로 할수있는 용도는 다양하다.
* 나도 같은 생각인데. 현재의 웹 개발쪽 추세는 소 & 중형인 경우는 주로 PHP를, 중 & 대형인 경우는 Java 관련 or MS 관련 JSP & ASP라 보고 있음. 공부목적이 아닌 그냥 즐기기용이다 하더라도 PHP 나 Python 이 더 쉽게 접근할 수 있을 것이라 생각.~ - ["1002"]
* 사용중인 툴 : 에디트플러스 2 평가판 (사용한지 30일 가까워옴..)
태호형도 보고감..^^에디트 플러스 기간 지나도 무한대로 사용가능함..^^;;;
- 정규표현식/모임 . . . . 5 matches
== 결정 내용 ==
* 다음 스터디 내용 결정
1. 책 내용정리 to Wiki
이번 챕터에서 제시한 내용을 활용해야 한다.
- 정모/2003.7.29 . . . . 5 matches
== 회의 내용 ==
* [5인용C++스터디] => 결석없이 잘 진행되고 있고 숙제도 나왔음.
=== 1'Wiki의 사용 ===
* 지금 1'Wiki를 테스트를 하는 이유는 새로 위키를 같이 사용해 나가면서 규칙을 만들자는 취지이며, 0'Wiki를 닫지 않으면 1'Wiki를 테스트 해보는 사람만 테스트해 볼 것이므로 0'Wiki를 폐쇄할 거라고 합니다. 그러므로 ZeroWiki:ZeroPager 모두가(특히 신입생) 의욕적으로 1'Wiki사용에 참여하였으면 좋겠습니다.
- 정모/2005.2.16 . . . . 5 matches
* java : 위키도 있었찌만 확실한 교재가 필요했었다. 아는 내용의 단순반복으로 분위기 조금 늘어졌음. 저조한 참여율. 닥달을 해서 높은 참여율을 이끌어 냈어야 했다. 조금 질질끌렸지만 그래도 얻은게 없는것은 아니었다.
* [AOI] : 용두사미(1월 말이후부터 와해), 풀이를 위한 모임이 적었음, 매일보는 3명이서 또 풀이모임을 하기는 조금 힘들었다. 난이도 조절실패. 토론이 부족했었다. 모임부족. 학기중이라면 아침에라도 모여서 이야기 문제에 대해이야기 할수 있지 않았을까?? 사전지식의 부족.
여섯색깔모자를 이용한 회의
회의록이 전보다 알차진 것 같아서 보기 좋네요. 오늘 회의 진행도 대체로 매끄러웠고요. 회의록에 내용을 추가해보았습니다. --[강희경]
프로젝트 진행 때문에 못 간게 아니라 계속 알바중임, ZpHome 프로젝트는 용두사미식이 되어 미안하고 조만간 완성해 내놓겠습니다 --[곽세환]
- 정모/2006.12.16 . . . . 5 matches
* 상섭 - 애매 모호한 용어를 정리해 보자.
* 상협 - 기수를 어디에 사용할 것인지 먼저 명확히 해야 할 것 같다.
* 창섭 - 세미나와 같은 이점은 4학년과 같은 경우에 적용이 되지 않기 때문에 다른 이점이 나왔으면 좋겠다.
* 석천 - 인원수에 비해서 너무 많은 비용을 소모할 것 같다.
* 기웅 - 프로젝트 전에 계획과 비용을 사전 기안해서 프로젝트를 평가하고 상벌을 두는 방법도 있다.
- 정모/2006.5.22 . . . . 5 matches
=== 내용 ===
하 - 초기에 하면 했던 내용을 방학이 끝나면 잊어버릴 수 있다. -> but 방학때 프로젝트를 진행하기 위해 초기 학습이 필요하다.
- (선호) 굳이 재학생용 세미나를 밤 새서 할 필요 없다.
- 월 : 표준입출력, 문법, 함수, MSDN, 비트연산, 아스키 / 수생, 유선, 용안
- 목 : 클래스, 객체지향, API / 선호, 인수, 준수, 용재, 창섭
- 정모/2007.3.27 . . . . 5 matches
- 현재 pc관리 비용이 나오는지도 불투명 하고 동아리 지원금 또한 불분명 하고 있다.
- PC관리 비용이 나오지 않을 경우 우리 또한 PC실을 관리할 이유가 없다(학교에 맡겨버리자)
- 현재 문제가 되고 있는 부분이 다달이 PC관리비용이 14만원이 나오고 있어서 이 돈을 아마 4개의 학회가 골고루 나누어 질거 같다
- 회의가 끝난뒤 우리는 학회이니까 자신이 부족한 과목, 급한 숙제, 궁금한점 등등에 관해서 주제를 만들고 활용하는 방식으로 했으면 한다.
=> 웹쪽에서 강력한 효용성을 가지고 있음. 기초부터 시작할 예정입니다. 관심있으신 분들의 많은 참석 바랍니다.
- 정모/2007.3.6 . . . . 5 matches
세 번째 발표자 : 조현태 -> 프로젝트, 놀기, 알바(가장 많은 시간을 할애) => 방학을 주로 돈을 버는데 사용함.
유상욱 : 개인 pool 웹브라우저 <= SSM, JAVA를 활용, “여기에 동참하고 싶으신 분들은 연락주세요. 위키페이지에 이름을 남겨 주셔도 됩니다.”
김남훈 : 학교에서 배우는 좋은 책들을 활용한 프로젝트를 많이 하였으면 합니다.
- 신입생들과 관련한 세미나를 열거나, 7피 알림판등등을 이용하여 ZEROPAGE를 간접광고 활동을 많이 하였으면 합니다.
- 이 문제에 관한 사항을 좀 더 생각해 보아야 할것 같습니다. 홈페이지를 활용한 토의도 필요할거 같음.
- 정모/2011.10.12 . . . . 5 matches
* ZeroPage와는 무관하지만 프로젝트 제안서를 이찬근 교수님께 제출하여 공간을 사용할 수 있습니다.
* 함께 사용하는 공간이니만큼 서로 배려하고 깨끗하게 사용합시다.
* 오늘 오신 유상민 선배님께서 ZP의 과거사를 이야기 해 주심과 고대 유물을 전수해주셔서.. 갑작스러웠지만 뜻 깊은 자리였습니다. 그렇게 (소닉 20주년은 알고 있었는데 -_-a) 까먹고 있었던 ZeroPage 20주년 행사를 하게 되어 기쁘네요. 이 행사 이름도 잘 정한거 같아 좋았고요,, 음.. 오늘 OMS는 어디선가 많이 들었던 내용들이 종합적으로 나왔네요 ㅎㅎ 다만 어디선가 들었던 내용들이 좀 더 명확하게 되면서 그냥 녹는줄만 알았던 회충들이 소화가 된다는 사실에........... 음... 여하튼 재미있었습니다. - [권순의]
- 정모/2011.3.14 . . . . 5 matches
* Ice Breaking 때 스펙타클한 거짓말을 썼는데 "달을 다녀왔다" 라고 썼습니다. 물론 고쳤지만요.ㅋㅋ 그리고 이번 Ice Breaking은 시간이 좀 길어진게 흠이지만 참 재밌었습니다. 이번 정모 때 가장 인상적인건 현이의 옵젝C 였습니다. 중간에 "함수 오버로딩은 지원 안하나요?" 라고 물어봤었는데, "언어의 특징 상 지원할 필요가 없다" 라고 현이가 답해줬습니다. 대답을 들으면서 '''"아, 난 그동안 언어의 특징을 너무 무비판적으로 수용한 것이 아닌가?"''' 라는 생각을 하게 되었습니다. '''"객체지향 언어는 당연히 함수 오버로딩을 구현해야 한다"'''는 선입견이 있었거든요. 저에게 심심한 충격이 됐습니다. 다른 OOP Language 중 오버로딩을 구현한 비율이 얼마나 되는지 한번 찾아봐야 겠습니다 ㅋㅋㅋ - [박성현]
* PNA의 묘미는 할때마다 내용이 달라진다는거 ㅋㅋㅋ - [서지혜]
* 대안언어축제에서의 경험을 공유하는 차원에서 1주일회고를 새로운 방식으로 해봤는데 어땠을지 모르겠네요. 이게 대안언어축제에선 6~8명 정도 있을 때 했던 것인데요. ZeroPage 정모에 그대로 적용시키니 시간이 많이 소요되어 그 점을 개선하는 것이 좋겠다는 생각이 들었습니다. 오늘 OMS에서는 현이가 진행한 Objective-C 세미나를 들었는데 정말 유익했습니다. 사실 Objective-C에 대한 호의적인 의견은 전에도 들어본 적이 있는데 딱히 관심으로 이어지지는 않았습니다. 그런데 이번 정모에서 세미나를 들으니 ''오, 이거 재밌겠는데?'' 싶은 생각이 드네요!! 깊게는 아니더라도 한번 공부해서 써보고 싶어졌습니다. 마침 현이가 책장에 책도 가져다 놓았으니 틈틈이 읽어봐야겠어요. 아, 그리고 대안언어축제의 경험을 어떻게 공유해야할지 고민이 많았는데 지혜가 정말 중요한 내용들을 공유해준 덕분에 저는 자잘한 몇가지만 말하고 넘어갈 수 있었네요ㅋㅋ 위키에도 [wiki:PNA2011/서지혜 대안언어축제 내용]을 정리하고 있던데 다들 읽어보셨으면 좋겠어요~ - [김수경]
- 정모/2012.1.27 . . . . 5 matches
* 참가자 : [변형진], [김준석], [김수경], [권순의], [정종록], [강성현], [서민관], [강소현], [장용운], [정진경], [고한종], [김태진]
* 다음주자 : [장용운] 학우
* 인수인계를 위해 적을 글에 포함하려고 했는데 일단 여기에 아주 간단한 내용만 적겠습니다. 하려는 말의 핵심은 작년에 했던 것을 그대로 따를 필요가 전혀 없다는 점입니다. 굳이 선생님을 여럿 모으고 각 선생님마다 반을 할당하는 방식을 고수하지 않아도 좋다고 생각합니다. 실제로 작년에 새싹교실을 준비할때는 강연자가 바뀌는 오픈 세미나 형식으로 진행할까 하는 생각도 했었습니다. 그 아이디어가 채택되지 않은 이유랑 나는 안해놓고 이제와서 그 말을 꺼내는 이유는 다른 곳에 천천히 쓰겠지만.... - [김수경]
* OMS 잘 들었습니다. 지난번 한종이 OMS 때도 느낀거지만 누구나 접해봤을법한 주위 사건에서 얘깃거리를 잘 뽑아내는 것 같아요. 발표할때 페이지 구성이나 설명도 재미있고ㅋㅋㅋ 중간에 문자와 전화에 대한 내용이 있었는데 저는 오히려 전화보다 문자를 선호하는 편입니다. 모르는 후배에게 오는 연락은 특히나... 서로 어색한 것도 싫고 메모해야하는 내용이 포함되어있다면 문자가 훨씬 편리하니까요...... 아마 저같은 사람도 꽤 있을거예요. - [김수경]
- 정모/2012.2.3 . . . . 5 matches
* 참가자 : [김준석], [변형진], [김수경], [서지혜], [강성현], [권순의], [정종록], [박성현], [윤종하], [황현], [고한종], [김태진], [이민규], [이진규], [장용운]
* 리듬게임 1부? - [장용운]
* 이번주 금요일(2.10) 정모 전후로 6피 정비하겠습니다. 저번주에 걷은 회비를 이용한 회식을 언제할지는 당일 오시면 알려드리겠습니다.ㅋㅋ
* 조직이나 팀을 운영하는 데에 답이 존재하는 경우는 많지 않을 겁니다. 부회장님과 함께 ZeroPage를 이끌어 가는데에 다른 경험이나 시각이 필요하다는 생각이 든다면 도움을 요청하는데 주저하지 마세요. 1년 목표나 가치를 세워둔다면 자잘한 결정에 대한 비용을 줄일 수 있을겁니다. 자신이 어떤 타입의 리더인지를 파악하고 주위에 단점을 보완해줄 사람들을 두세요. 그래도 뭐 하나 하려면 머리 뽀개집니다ㅋㅋ 때로는 반대를 무릅쓰고 밀어부치는 것도 필요할거에요. 참고로 남을 설득할 때에는 처음부터 여러명을 설득하기 보다 한두명씩 자신의 편으로 끌어들이면 반발이 크지 않아요(divide and conquer). 끝으로 가장 중요한 것은 책임입니다. 모든 책임은 1차적으로 회장에게 있는겁니다. 자기가 직접적으로 한 행동이 아니라고 남에게 미루면 안돼요. 사람들의 신뢰를 잃게됩니다. 임원직을 후배님들께 물려드리자니 걱정이 많이 되네요.. 그치만 언제까지 ZP에 있을 수는 없으니ㅋㅋㅋ 화이팅!! 잘하려고 하지 말고 할 수 있는것을 하세요. 안못난 선배 물러갑니다. - [서지혜]
* 오랜만에 해보는 IceBreaking이네요. 처음엔 이게 뭔가 싶었는데 자꾸 하다보니 웃겼어요ㅋㅋㅋ 웃느라 제대로 못한듯ㅋㅋㅋㅋㅋㅋ 리듬 게임에 대한 OMS는 놀랍지만 약간 아쉬운 감이 있습니다. 다른 리듬 게임들도 볼 수 있었으면 좋겠는데. 그러니까 격주로 용운이 OMS 한번 더?! - [김수경]
- 정모/2012.4.9 . . . . 5 matches
* 쩌리들 : [변형진], [김준석], [정의정], [민태원], [서지혜], [김수경], [강성현], [정종록], [박성현], [서민관], [권여문], [김태진], [이진규],[정진경], [이민규], [장용운], [김희성], [권영기], [김윤환], [박도건]
* 용운이가 게임테크 다녀온 이야기
일단 가니까 순의형 생일을 하더라고요! 생일 축하 다시 드려용~ ^^
후기를 쓰려니까.. 여기 기능이 너무 많아 컴맹인 제가 제로페이지를 아직 잘 활용못하고 있어요.. 시간 날 때 하나하나 해봐야겠어요.
* OMS가 학회실 청소하자는 내용일 줄 알았는데 아니었어요 ㅋㅋㅋ
- 정모/2012.8.29 . . . . 5 matches
* 2학기 사용계획 [http://zeropage.org/accounts/62922 홈페이지] 참고.
* ZP에서 Trello를 사용하고 있습니다. 하단에 아이디를 적어주시면 추가해 드립니다.
* 학회실에 있는 서버를 밀고 새로 설치하였습니다. GUI도 있으니 와서 사용하고, 계정도 추가해서 외부에서 사용해보세요.
* 정모에서도 잠깐 이야기한 것처럼 ZeroPage에서 운영하는 서버 및 각종 장치와 도메인 네임, 이에 필요한 설정과 소프트웨어, 그리고 그와 관련한 이슈를 다루는 공간이 Trello에 있는 게 좋을 것 같습니다. 게시판이나 위키에 비해 ZeroPage 웹사이트가 비정상 동작할 때도 사용할 수 있고, 전체 상황이 한 눈에 파악되면서 카드 별로 상태 관리가 간편하며, 모바일(iOS, Android)에서 notification push를 받을 수 있기 때문에 실시간 커뮤니케이션과 이슈 추적 및 관리에 유리합니다.
- 정모/2013.8.19 . . . . 5 matches
= 주요 내용 =
== 학회 기자재 활용 방안 공유 ==
* 활용 방안에 대한 다양한 의견을 들어보고자 합니다.
* 기자재를 활용한 프로젝트를 기획합시다.
* 제로페이지에 'MAKE'라는 잡지가 있던데, 거기에 아두이노를 활용한 다양한 예제가 있습니다. 거기에 나오는 것을 직접 만들어 보는 프로젝트를 진행 해 봅시다.
- 정신병원에서뛰쳐나온디자인/밑줄긋기 . . . . 5 matches
= 컴퓨터 활용 능력 장애? =
* 소프트웨어 엔지니어들이 생각하는 허용 가능한 품질 수준은 전통적인 공학 분야에서 허용되는 것에 비해 훨씬 더 낮다.
* 여기서 '제인'은 컴퓨터에 익숙하지 않은 일반 사용자이다. - [김수경]
== 사용성 추구만이 해답은 아니다 ==
- 제로위키이용의어려움 . . . . 5 matches
어렵다는 것은 위키의 사용이 어려운것이 아니라, 위키를 공동체가 사용할때의 생기는 예절과 규칙에 새로운 사용자가 적응하면서 느끼는 어려움일 것입니다. 계속 이렇게 가면, 우리가 다른 나라의 말과 문화를 배우는 것에 비견될수 있지 않을까요?
그래서, 현 ZeroWiki 쓰기를 막아 버리고, 기존 사용자들과 새로운 사용자들과 새로운 위키에서 작업하는 것도 좋을것이라는 생각이 들었습니다. NeoCoin은 그냥 삭제를 생각했는데, [1002]는 처음에는 그냥 모든 Contents 를 앞으로 한두달간 막아 버리고, 새로운 규칙들이 생기면 기존 contents 를 녹여가는 것을 생각했습니다. 그리고 이야기 중에서 현 ZeroWiki 를 SisterWiki 로 연결한 새로운 위키도 괜찮다는 생각이 들었습니다.
- 특정 웹사이트 메타 검색 . . . . 5 matches
자체 검색엔진이 없고, 다른 검색엔진을 이용하는 검색입니다. 즉, 사용자가 검색어를 입력하면, 여러 개의 검색엔진(검색사이트)에 동시에 검색어를 보냅니다. 각 검색엔진으로부터 검색된 결과를 받아, 취합하여 보여주는 방식입니다. 사용자가 검색창에 키워드를 입력하고 결과를 보는 것과 동일한 과정이며, 여러 검색엔진 결과를 그대로 모은 것입니다.
== 개념 차용 ==
1. 각 게시판의 검색기능을 이용
- 프로그래밍십계명 . . . . 5 matches
7. 오류를 알려 주는 기능은 있는 대로 모두 활용할지어다.
*어떠한 것을 수정했을 때에 연관된 것이 따라서 변하지 않는다면 그것이 곧 벌레이니라. 컴파일러로 하여금 매개 변수 리스트를 완전하게 검사하도록 하고, 언젠가 손대야 하거나 따라서 변해야 하는 수치는 전부 매크로로 치환하며, 형 정의를 적극 활용하여라.
9. 사용자가 알아서 잘 써 주리라고 희망하지 말지어다.
*너의 프로그램은 항상 바보와 미친놈만이 쓰느니라. 사용 설명서를 쓸 때에는 결코 빠뜨리지 말아라. 빠뜨린 만큼 사용자는 너를 괴롭힐 것이니라.
- 하드웨어에따른프로그램의속도차이해결 . . . . 5 matches
* 아래는 제가 조사해본 내용인데 추상적이거든여.. 실제 사용예 같은거 있으면 자료 올려 주시면 좋겠습니다.
* 스레드 & 1초 쉬고 (이건 HiPerformanceTimer 관련 함수를 이용하는 방법)
* 타이머를 이용해서 시간에 따라 움직이도록 한다.
* 궁금한게 있는데, ["MFCStudy_2001/MMTimer"] 로 안된단 말이야? 가장 빠른걸로 알고 있어서, 동작 제어는 타이머단에서 하고, loop에서 열심히 그림 그려서 fliping만 해주면 되지 않을까? 낮에는 경황이 없어서, 그냥 멀티미디어 타이머 이야기만 했는데, winamp 같은 시간에 의존적인 프로그램들도 이 타이머를 사용해서 말이지. --["neocoin"]
- 회원 . . . . 5 matches
* 21기 - [김태진], [고한종], [정진경], [장용운], [이민규]
* 24기 - [이원준], [홍성현], [김용준]. [권준혁]. [유재범], [이태균], [강민승], [성훈], [김정민], [이지수], [김상헌], [우준혁], [김성원], [김동환], [유창우], [전진우], [신형철], [오영은], [장우진], [김성민]
* 21기 - [김태진], [고한종], [정진경], [장용운], [이민석], [이진규], [이민규]
* 21기 휴면 - [추성준], [고한종], [장용운], [이민석], [이민규], [이진규]
|| [장용운] || 21 || 군대 || 2015-03-?? || X ||
- 2학기자바스터디 . . . . 4 matches
DeleteMe) 제 생각에는 프로젝트를 하나 진행하는 것이 낳을 것 같습니다. 책의 내용을 그대로 따라가다 보면 굉장히 지루합니다. 그냥 프로젝트를 하나 선정해서 하는 것이 재미있을겁니다. 그리고 교제는 흠... 여러분들이 영어라고 안보는 레퍼런스와 튜토리얼이면 충분하다고 생각이 들지만 그게 아니라면 비싼거 말고 싼걸루 좋은책 하나 선정해서 보시기 바랍니다^^; -[상욱]
추석끝나고 본격적으로 시작하죠... 교재는 따로 정하지말고 도서관에서 읽기 쉬운걸로 골라서 보면 될것 같구요... 프로젝트까지는 아니어도 간단한 프로그램짜는걸로 해요(toy problem이나 5인용스터디에서 했던것처럼) -세환
내가 자바의 쉬운 GUI사용을 보여줬자나;;; ToyProblems도 괜찮지만 하나 목표를 크게 잡고 하는것도 꽤나 재미있어. -[상욱]
교재없는 친구들을 위해 공부하면서 내용 정리해 올려놓을게 -세환
- 2학기자바스터디/운세게임 . . . . 4 matches
운세게임이라서 거창한 알고리즘을 필요로 하는게 아니라 랜덤함수를 이용해 오늘의 행운을 표시합니다
날짜와 랜덤 클래스에 대한 간단한 사용법에 대해 알아봅시다
Date와 Calendar 클래스를 이용하는 방법이 있습니다
다양한 형식으로 출력하려면 SimpleDateFormat 클래스를 같이 이용합니다.
- 2학기파이선스터디/if문, for문, while문, 수치형 . . . . 4 matches
때로는 사전을 이용하는 것이 더 좋을 때도 있는데, C언어의 switch, case문과 같은 맥락에서 이해하면 된다. 다음은 위와 동일한 결과를 가져온다.
for 문에서 요소의 값 뿐 아니라 인덱스 값도 함께 사용하려면 enumerate() 내장함수를 이용한다(파이썬 2.3 이상). enumerate() 내장함수는 (인덱스, 요소값) 튜플 자료를 반복적으로 넘겨준다.
정수형으로 표현할 수 없는 큰 수는 자동으로 롱형 정수로 표현한다. 롱(long)형 상수는 정수의 마지막에 L, l을 붙여서 표현한다. 유효 자리는 메모리가 허용하는 한 무한대이다.
- 2학기파이선스터디/클라이언트 . . . . 4 matches
* Login : 현재 채팅에 사용중인 ID와 사용하고자 하는 ID를 비교하여, 채팅 참가 허가 유무를 확인한다.
* UserList? : ChatMain? 클래스의 사용자 List에 접속한 사용자 ID를 보여주는 기능을 한다.
- 3DGraphicsFoundation . . . . 4 matches
* 프랙탈을 이용한 지형 모델링 해오기(진행중)
* 프랙탈을 이용한 지형 모델링 해오기
* 프랙탈을 이용한 지형 모델링 해오리
* [http://nexe.gamedev.net] : 여기는 DX 초보자용 -- 정수
- 3D업종 . . . . 4 matches
opegl api 바이블. 모든 코드는 glut를 이용해 플랫폼 독립적으로 돌아가도록 되어있다.
별로 좋은 책은 아니지만 기초가 쉽게 설명 되어있음. 다 아는 내용이라면 굳이 볼 필요는 없는 책.
|| 날짜 || 공부내용 || 숙제내용 ||
- 5인용C++스터디/소켓프로그래밍 . . . . 4 matches
AfxMessageBox("접속 허용");
서버와 동일한 방법으로 클라이언트 프로그램에서 사용할 소켓 클래스 CClientSock을 생성(기초 클래스: CAsyncSocket)한다. 그리고 나서 [클래스위저드]의 CClientSock에 가상함수 OnReceive()와 OnClose()를 추가한 후, 다음 코드를 삽입한다.
그리고 [클래스위저드]의 CConnectDlg에 IDOK를 맵핑하여 사용자가 입력한 IP 주소를 멤버변수 m_strAddress에 저장한다.
[5인용C++스터디]
- AM/20040705두번째모임 . . . . 4 matches
* 과감한 프로젝터, PC실 컴퓨터 등 시설물을 적극적으로 활용하였다.
* 뒤의 세미나 준비자는 앞의 세미나 준비자와 설명 방법 등 정보교환, 다음번에 적용하기.
* Spy++ 과 goto definition 을 통한 분석 & 설명을 중간중간 이용하기.
* 실습실을 이용할때는 반드시 전에 미리 와 있는 사람들에게 양해를 구하고 스터디를 진행하기.
- AM/20040806아홉번째모임 . . . . 4 matches
== 모임 내용 ==
* 공부한 내용 : MFC 교재 3장(GDI를 이용한 그래픽)
== 모임 후 정한 내용 ==
- AM/20040817열한번째모임 . . . . 4 matches
== 모임 내용 ==
* 공부한 내용 : MFC 교재 5장(사용자 인터페이스)
== 모임 후 정한 내용 ==
- ActiveXDataObjects . . . . 4 matches
마이크로소프트 ADO(ActiveX Data Objects)는 데이터 소스에 접근하려고 고안된 COM객체이다. 이것은 프로그래밍 언어와 데이터 베이스 사이의 층을 만들어준다. 이 층은 개발자들이 DB의 구현부에 신경쓰지 않고 데이터를 다루는 프로그램을 작성하도록 해준다. ADO 를 이용할 경우, 데이터베이스에 접근하기 위해서 SQL 을 알 필요는 없다. 물론, SQL 커맨드를 수행하기 위해 ADO 를 이용할 수 있다. 하지만, SQL 커맨드를 직접 이용하는 방법은 데이터베이스에 대한 의존성을 가져온다는 단점이 있다.
ADO 는 ActiveX 이므로 C++ 이건 VB 이건 Python 이건 어디서든지 이용가능. 하지만, 역시나 VB 나 Python 등에서 쓰는게 편리. 개인적으로는 ODBC 연동을 안하고 바로 ADO 로 C++ Database Programming 을 했었는데, 큰 문제는 없었던 기억. (하긴, C++ 로 DB Programming 할 일 자체가 거의 안생겨서..) --[1002]
- Apache . . . . 4 matches
전세계 서버 50% 이상이 아파치를 사용한다고 한다.
어떤 OS에서도 운용가능하다.
리눅스와 아파치를 이용하면 486컴퓨터도 멋진 서버가 될 수 있다고 한다.
[ZeropageServer]도 [Linux]와 [Apache]를 이용하여 서비스를 제공한다.
- AttachmentMacro . . . . 4 matches
== 간단한 사용법 ==
/!\ 1.1.3에서 제대로 안됩니다. 버전 1.1.3.1을 받아서 사용하시기 바랍니다.
== GUI를 사용하는 경우 ==
모니위키 1.1.3부터 제대로 지원하게 된 WikiWyg GUI를 사용하면 좀 더 쉽게 파일을 업로드 하실 수 있습니다.
- Barracuda . . . . 4 matches
Struts와 비슷한 모델 2 형태의 아키텍처 이지만 스트럿츠 보다 발전된 모델 이벤트 통지 메커니즘을 제공한다. 바라쿠다 프레임 워크는 엄격한 JSP접근 방식과 달리 더 뛰어난 유연성과 확장성을 제공할 수 있도록 템플릿 엔진 컴포넌트를 새로 만들었다. 이 프로임워크에서는 사용자 인터페이스를 생성할 때 XMLC를 이용하여 코드와 컨텐츠를 분할한다. XMLC는 자바 기반의 컴파일로써 HTML과 XML문서를 소스로 읽어 들여 컴파일 하고 자바 클래스 파일을 생성한다. 이 자바 클래스 파일은 런타임에 문서를 재생성하는데 이용된다. ...중략... 마크업과 애플리케이션 로직을 분리한 덕에 웹 디자이너는 마크업에, 프로그래머는 코딩에 집중할 수 있다.
''Programming Jakarta Struts 인용''
- BasicJAVA2005 . . . . 4 matches
|| No. || 날짜 || 참여인원 || 불참 || 숙제 || 내용 ||
- 2시도 괜찮은데 앞타임에 1시에 딴 모임이 있다네요 ~ 저희는 그럼 3시 할까용?? ^-^ -허아영
예를 들면, 변수도 한글로 사용이 가능합니다. (예를 들어서 String 임시 = "임시변수입니다."; 이런식으로 작성이 가능하다는 이야기죠.) - 도현
[http://cslibrary.stanford.edu/104/ Pointer Video] 동영상 용량이 크니 다운받아 보세요. -- 재선
- BoaConstructor . . . . 4 matches
4. 재사용될 것 같은 모듈들에 대해 UnitTest 를 붙여나간다. 추후 추출용.
5. 정식 버전은 TDD 로 다시 DoItAgainToLearn. WingIDE + VIM 사용. (BRM 을 VIM 에 붙여놓다보니. 그리고 WingIDE 의 경우 Python IDE 중 Intelli Sense 기능이 가장 잘 구현되어있다.)
UnitTest 가 있는 것만으로도 언제든지 리팩토링할 수 있다는 믿음이 있다면..~ 혼자서 프로토타입 플밍 할때는 그냥 StepwiseRefinement & UnitTest 조합도 괜찮은 것 같다. 빨리 기능을 얻은뒤 기능들 보고 중간에 CRC 해가면서 유용할만한 Object들을 추출해나가는 것도. 언제든지 Object 뽑아낼 자신이 있으니까.
- B급좌파 . . . . 4 matches
김규항의 글을 읽고 한편으로는 시원할런지 모르겠지만 (통쾌함하고는 좀 다르다. 친구랑 골방에서 맘에 안드는 넘들 뒤에서 까대는 느낌이랄까) 한편으로는 속이 편할리 없다. 적당히 지적인척 이야기할때 전문용어 적당히 섞어주고, 제대로 알지도 못하면서 적당히 사회 아는 양 민주당이 어쩌고 한나라당이 어쩌고 하는. 농활이나 빈활한번 안다녀온 나로서는 더더욱 이 책을 보고선 웃으면 안된다. 삶에서 민감해야 할 사항에서 그냥 간과하고 조용히 사는 소시민으로서는 그저 지식인 투덜거리는 이야기일뿐이다. 진중권이건 강준만이건 김규항이건.
그사람들의 글들이 나에게 읽어짐으로 인해 '적절히 써먹으면 재미있을 만한 글투' 지식분류에 하나 추가되면, 또는 '적절하게 사회적인 척 일수 있는 인용거리'가 되면 괜히 미안해지니까. 그냥 적절히 읽고. '아 그 사람 이야기'. 나중엔 '지식인 록을 고르다' 가 나중엔 '지식인 규항을 고르다', '지식인 중권을 고르다' 식의 글도 나올지도 모르니. -- 소시민 ["1002"]
영업팀 : 이러 이러한 제품을 이용해서 ... (중략)
- C++Study_2003 . . . . 4 matches
* [5인용C++스터디]
* 어떤 내용을 공부할 건가요???-[Leonardong]
지금 오인용스터디 그룹은 어떻게 해서 생긴건지 딴 사람들은 왜 스터디 안하는지
원래 회의때 스터디에 대한 이야기를 하려 했으나 스터디 희망자중 5명만 회의에 참석하여 이 5명으로 구성된 [5인용C++스터디]가 우선적으로 만들어진 것입니다. 나머지 분들도 스터디를 하시려면 두 그룹 정도로 나누어 스터디를 진행하시면 되겠습니다. 전부 한꺼번에 스터디를 하기에는 좀 인원이 많습니다. --[상규]
- C++스터디_2005여름 . . . . 4 matches
|| 05. 8. 16 || 보창 아영 규완 도연 수민 || c++ 전반적인 용어 정리. 도서관리 프로그램 짜기 ||
C++ 기초 플러스란 책 좋은데, 잘 안보더라구요, 지루하긴 해도, 내용은 좋은데 -[fnwinter]
ㅋㅋ 좋긴하지만 내용을 참 많이 다루는데 {{{~cpp -------------}}} 요게 문제임 ㅋ - [eternalbleu]
내용을 많이 다루는 게 왜 문제지? -[fnwinter]
- CMM . . . . 4 matches
* SE-CMM : Systems Engineering Capability Maturity Model. 시스템공학 분야에서 적용하여야 할 기본 요소들을 대상으로 현재의 프로세스 수준을 측정하고 평가하기 위한 모델로서 기본적인 프레임웍은 SW-CMM과 유사
* CMMI : Capability Maturity Model Integration. 모델을 사용하는 입장에서는 각각의 모델을 별개로 적용하는 것보다는 전체적 관점에서 시너지 효과를 내기 위해서는 어떻게 적용할 것인가에 대한 방안이 필요하게 되어 개발된 통합 모델
- COM/IUnknown . . . . 4 matches
COM 객체를 다루는데 있어서 가장 핵심적인 인터페이스. REFIID 를 이용해 ID 에 맞는 인터페이스 포인터를 얻을 수 잇다.
※ 이론적인 내용은 C++ 의 스마트 포인터 파트를 참조. 참조카운팅의 용도와 필요성에 대해서 숙지한다.
C++ 스마트 포인터에서는 참조 카운팅을 이용해서 dangling pointer 문제를 해결한다. boost 의 shared_ptr이 이를 구현한다.
- CVS/길동씨의CVS사용기ForRemote . . . . 4 matches
먼저 다음 내용의 cvs login을 위한 cvs_set_remote.bat 란 세팅 배치 파일을 만들었다.
cvs_set_remote.bat 내용 (한글부분은 채워넣어 주세요.)
원하는 디렉토리에서 배치 파일을 실행해서 cvs가 실행되는지 확인하고 로그인을 한다. (문서의 작성자는 자신이 알고 있는 서버를 이용하였으니 개의치 마세요.)
도움말 : 지정하는 프로젝트(모듈) 전체를 받아 온다. local에 처음 프로젝트를 받아 올때 사용한다.
- CauGlobal/Episode . . . . 4 matches
방학을 이용해 배낭여행을 가려 하거나, 혹은 다른 이유로 인해 외국에 가려할때 어느정도 일찍 항공권을 알아보지 않으면 구하기가 꾀나 어렵습니다. 아니면 있는 항공권은 엄청난 가격을 자랑하지요.
항공권은 티켓의 유효기간에 따라 가격이 달라지고(유효기간이 길수록 비쌈), 일찍 예매할수록 저렴한 티켓을 구할 수 있습니다. 또한, 국적기는 자국민에게 할인을 못하게 되어있어서 외국 항공편을 이용하면 저렴하지요.
1. 먼저 실시간으로 항공권을 알아볼 수 있는 인터넷 사이트를 이용합니다. (투어익스프레스가 좋더군요)
하지만 중요한건 해당 항공사에서 이러한 묶음을 허용해줘야 하는데요, 저희는 별 말없이 해주더군요. 이번 경험을 통해 배운건, 무엇인가 간절하다면 어느새 그건 내 손안에 자라나 있다는 것. 삶이란 어떻게보면 자신의 상상력이 그 한계일지도 모릅니다. :)
- Chapter II - Real-Time Systems Concepts . . . . 4 matches
예를 들어 High Priority를 가진 Task가 선점형 수행을 하며 다른 Task 보다 많은 자원을 사용할 수 있을 때를 말한는것 같다.
=== Real Time System 의 사용 범위 ===
작은 시스템에서는 시스템의 효율성을 위해 보단 간편하고 일반적인 디자인을 사용한다고 한다. 실제로 어플리케이션이 작동하는 부분을 Background System이라고 하며 ISR (interrupt service rountines) 라고 불리우는 인터럽트 부분을 Foreground system이라고 한다.
변화를 가져오므로 리얼타임에서는 사용되지 않는다.
- ClearType . . . . 4 matches
그림을 보면 잘 이해할 듯. 4번째의 경우가 클리어 타입이 사용하는 방식이다.
* [http://www.microsoft.com/typography/ClearTypeInfo.mspx ClearType기술 홈페이지] - 윈도우 적용 방법이나 기술에대한 자세한 소개.
* 폰트를 매우크게하면 적용된 상태를 볼수 있다고 한다.
* 억지로 적용을 할수는 있지만 '를' 과 같은 글자는 '■' 처럼 보이기도 한다고 한다.
- CollectiveOwnership . . . . 4 matches
만약 누군가가 클래스의 인터페이스를 변경했으면 변경된 클래스를 사용하는 모든 클라이언트 코드에서 오류가 발생할 것이다. 그렇게되면 클래스를 변경한 사람이 모든 오류를 수정해야만 하는가, 아니면 먼저(컴파일 시간에 오류가 발생할꺼 같은데) 발견한 사람이 수정해야 하는가?
Wiki:RefactorLowHangingFruit . 고쳐야 할 것이 많다면 오히려 조금씩 고치도록 한다(그리고 고치는 작업을 엔지니어링 태스크로 혹은 유저 스토리로 명시화해서 관리한다). 고치는 중에, 5분 정도의 단위로 테스트를 해봐서 하나도 문제가 없도록 고쳐 나가야 한다. 섬과 육지를 연결하는 다리가 있을 때, 이걸 새 다리로 교체하려면 헌 다리를 부수고 새 다리를 만드는 것이 아니고, 새 다리를 만든 다음 헌 다리를 부수어야 하는 것이다. {{{~cpp formatText(String data)}}}을 {{{~cpp formatText(String data,boolean shouldBeVeryFancy)}}}로 바꾸어야 한다면, {{{~cpp fancibleFormatText}}}를 만들고, 기존의 {{{~cpp formatText}}}를 호출하는 곳을 {{{~cpp fancibleFormatText(data,false)}}}로 하나씩 바꿔나가면서 계속 테스트를 돌려보면 된다. 이게 완전히 다 되었다고 생각이 들면 {{{~cpp formatText}}} 정의를 지워본다. 문제가 없으면 {{{~cpp fancibleFormatText}}}를 {{{~cpp formatText}}}로 rename method 리팩토링을 해준다. 하지만 만약 이 작업이 너무 단순 반복적인 경우에, 충분히 용기가 생기고, 또 확신이 들면 이 작업을 자동화할 수 있다(OAOO). 예컨대 IDE에서 지원하는 자동 리팩토링을 사용하거나, 정규식을 통한 바꾸기(replace) 기능을 쓰거나, 해당 언어 파서를 이용하는 간단한 스크립트를 작성해서 쓰는 방법 등이 있다. 이렇게 큰 걸음을 디디는 경우에는 자동화 테스트가 필수적이다.
- CommonState . . . . 4 matches
초기 컴퓨터는 용량이 너무 적어서, 프로그램 짧게 만들기 이런걸 많이 해야만 했다. 당연하지만 그걸 알아볼 수 있으리라는 기대는 하지 않았다. 그러다가 용량이 커지니까 이제는 많고 많은 state들을 사용하는 많고 많은 함수들을 많이 사용하게 되었다. 하나 고칠라면 전체를 뜯어 고쳐야 했다. state로서의 프로그램은 안좋다. 그러니 state도 안좋다(??) 이런 상황에서 state가 없고, 프로그램만 있는 함수형 언어가 나오게 되었다. 개념적인 우아함과 수학적인 우아함을 갖추고 있음에도 불구하고, 상업적인 소프트웨어를 만드는데에는 전혀 쓰이지 않았다. 이유는 사람들은 state를 기반으로 생각하고 모델링하기 때문이었다. state는 실세계에 대해 생각하는 좋은 방법이다. 객체는 두 가지의 중간이다.(?이렇게 해석해야하나..--;) state는 잘 다뤄질때만 좋다. 작은 조각으로 나누면 다루기 쉬워진다. 이렇게 하면 변화를 어느 한 곳만 국한시킬 수 있게 된다.
- ComputerNetworkClass . . . . 4 matches
수업내용: 데이터 통신에서 배우는 것보다 한단계 상위 레이어. IP (Internet Protocol), TCP,UDP, Routing 의 원리, Subnet Mask, Tunneling 등의 개념 등에 대해 자세하게 배운다.
실용적 수준의 네트워킹 기술을 공부한다.
기존의 데이터 통신이 DL, PHY 에 집중하여 공부한 측면이 강했다면, 이 과목은 실제 Programmer 가 실무에서 많이 사용하게될 기술인 TCP, UDP, RTP 및 socket, rpc 에 대한 전반적인 내용을 다룬다.
- ComputerNetworkClass/Report2006/BuildingProxyServer . . . . 4 matches
GUID 생성하기. 파일 이름으로 활용할 수 있다.
인터넷 상에서 유일한 16바이트의 숫자를 나타내면 COM객체의 유일한 식별자를 만들기 위해서 이용하지만...
이것을 이용하면 캐쉬할 파일의 이름이 겹치는 문제를 한방에 해결할 수 잇음.
늦은 것 같지만... -_-;; 휘동이에게 말해줬다가 실패한 함수에 대한 내용올림... scanf가 아니라 sscanf 였음
- Cracking/ReverseEngineering/개발자/Software/ . . . . 4 matches
기존 배우고 있던 것들과는 별개로 Cracking에 대한 것들을 익혀야한다. (여기서 Cracking은 시스템 전반에 관한 지식을 익혀 그것을 악용 하는 것이다.)
(윈도우즈 시스템 커널이 하는 일등을 배울 수 있으며 그것을 이용해 나쁘게 사용하든 좋게 사용하든 도움이 많이 되는 책이다. Windows에 Base를 둔 Software 개발자로서는 꼭 읽어야할 책.)
- CryptKicker2 . . . . 4 matches
여러 줄의 텍스트가 주어졌을 때 같은 케이스에서는 모든 줄에서 같은 치환 방법을 사용한다고 가정하고 그 중 한 줄은 the quick brown fox jumps over the lazy dog라는 평문을 암호화한 것이라는 점을 이용해서 암호화된 텍스트를 복호화하라.
각 케이스는 여러 줄로 구성되는데, 앞에서 설명한 방법에 따라 암호화된 텍스트다. 암호화된 내용은 소문자와 스페이스만으로 구성되며 길이는 최대 80문자로 제한된다. 입력되는 텍스트는 100줄로 제한된다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- DPSCChapter2 . . . . 4 matches
디자인 패턴에 대한 구체적인 설명에 들어가기 전에 우리는 다양한 패턴들이 포함된 것들에 대한 예시들을 보여준다. 디자인 패턴 서문에서 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에서 조용히 타이핑하며 앉아있다.
제가 디자인부탁하는 것은 바로 이 요구-진행 작업흐름시스템 입니다. (그냥 영어 그대로 써도 될것 같은데.. 대체할 용어가 생각안난다. 아, 어휘 딸려라. --;) 이 개체들이 어떻게 같지 작용해야 할지 모르겠어요. 제가 생각하기론, 이 시스템에서의 기본적인 개체들은 찾은 것 같은데, 각 개체들의 행위들을 어떻게 이해해야 할지 모르겠어요.
- DelegationPattern . . . . 4 matches
DelegationPattern을 쓸 때 중요한 점은, DelegationPattern을 사용하는 클래스의 클라이언트는 그 클래스가 Delegation을 쓰는지 안쓰는지 몰라야 한다는 것이다. 즉, 우리에게 있어 DelegationPattern이 사용된 클래스는 여느 클래스와 동일하게 인식되고 사용되어져야 한다. 게을러서 남에게 자신의 숙제를 위임하는 학생은 절대 남들에게 그 사실을 노출해선 안된다.
전에 SE 수업중에 컴포넌트모델의 필요성을 이야기하던중 '상속으로의 재사용이 어렵기 때문에' 이야기를 하셨는데, 왜 대안 중 하나로서의 [Delegation] 에 대한 언급이 전혀 없으셨는지 모르겠다. Delegation 만 잘 이해해도 준 컴포넌트 스타일의 모듈화 프로그래밍을 잘 진행할 수 있고, 사람들 간의 작업분담도 잘 이끌어 낼 수 있을건데.. --[1002]
- DrawingToy . . . . 4 matches
키보드를 이용하여 그림을 그린다.
사용언어: MFC
단추 대신 키보드의 방향키를 이용한다.
뒤집어서 흔들기는 스페이스바를 이용.
- EffectiveSTL/VectorAndString . . . . 4 matches
* 가장 많이 쓰는 vector, string에 관련된 팁 모음이다. 큰1장 후반부에는 모르는 내용(할당기 같은..)이 좀 많아서 일단 건너 뛰었다.
* capacity() - 현재 할당되어 있는 메모리에 최대 수용할수 있는 객체 수
== 크기를 유지하고 싶다면 reserve 메소드를 사용하자. ==
* reserve를 사용하면 재할당, 반복자, 포인터, 참조 등등의 갱신을 최소화 시킬수 있다.
- ExploringWorld/20040412-세상읽기 . . . . 4 matches
=== 내용 ===
"영문학의 대작을 읽은 적이 없다는 과학자들의 뉴스를 듣고 이들은 동정어린 쓴웃음을 던진다. 그들은 과학자들을 무지한 전문가라면서 무시한다. 하지만 그들 자신의 무지와 '전문적인 바보' 모습도 사람들을 놀라게 한다. 나는 전통적인 문화의 기준에서 높은 수준의 교육을 받았다는 사람들의 모임에 참석한 적이 있는데, 그들은 과학자들의 무지에 불신을 표명하는 데 상당히 재미를 붙인 사람들이었다. 내가 도저히 참을 수 없어서, 당신들 가운데 열역학의 제 2 법칙을 설명할수 있는 사람이 몇이나 되느냐고 물었다. 대답은 냉랭하고 부정적인 것이었다. 나는 '당신은 셰익스피어 작품을 읽은 일이 있소?'라는 질문과 맞먹는 과학의 질문을 던졌던 것이다. 그보다 더 쉬운 질문, 이를테면 '질량 혹은 가속도란 무엇인가?'(이는 '당신은 읽을 줄 압니까?'라는 것과 동등한 과학상의 질문이다.)라고 물었다면 ... 열 명에 하나가 내가 그들과 같은 언어를 사용한 것 정도는 느꼈으리라고 믿는다....가장 현명하다는 사람들 대부분은 물리학에 관한 한 말하자면 신석기 시대 선조들과 거의 같은 수준의 통찰력 밖에 가지고 있지 않는 것이다."...
내용이 있고 '열역학의 제2법칙'이 공대상이 당연히 알수 밖에 없는 근본 지식이라는 내용의 맥락으로 책의 후반부를 마무리 짓는다. 그런데, 전산에 종사하는 사람들에게 2주간 같은 질문을 해봤지만 '''아무도 답변을 하지 못했다.''' (그런데 오늘 재선이가 대답했다. 세상에 :) )
- Freemarker . . . . 4 matches
프리마커는 자바 서블릿을 위한 오픈소스 HTML 템플릿 엔진이다. 프리마커에서는 HTML을 템플릿으로 저장하는데 이들은 결국 템플릿 객체로 컴파일 된다. 이 템플릿 객체들은 서블리셍서 제공하는 데이터들을 이용하여 HTML을 동적으로 생성한다. 프리마커 객체들은 서블릿에서 제공하는 데이터들을 이용하여 HTML을 동적으로 생성한다. 프리마커는 고유의 템플릿 언어를 사용하고, 정적인 HTML페이지에 근접한 속도를 자랑한다. ..하략
'' Programming Jakarta Struts 인용''
- GDBUsage . . . . 4 matches
gdb 를 이용하기 위해서는 gcc 옵션에 '''-g'''를 주고 컴파일 해야함.
해당 변수의 내용을 출력해준다.
[http://kldp.org/node/71806 KLDP:GDB 잘 쓰기]라는 글 에도 사용법이 쉽게 정리 되어 있습니다.
다른 유용한 기능들도 적어주333 - [eternalbleu]
- Gnucleus . . . . 4 matches
그누텔라 프로토콜에 기반을둔 윈도우용 프로그램. 다른 그누텔라 구현물과 비교하여 특별한 기능상의 장점은 없지만...
소스가 굉장히 깔끔하고, 원래 부터 확장성이 좋은 누텔라 기반인지라 P2P 이용 어플리케이션에 많이 이용된다.
윈도우 네트워크 프로그래밍을 하는 사람이라면 한번쯤 소스를 통해서 윈도우의 메시지 드리븐을 최대한 이용한
- GuiTestingWithMfc . . . . 4 matches
CppUnit 을 이용한 MFC 에서의 GuiTesting (시도중. 결과는?)
Dialog Based 의 경우 Modal Dialog 를 이용하게 된다. 이 경우 Dialog 내에서만 메세지루프가 작동하게 되므로, DoModal 함수로 다이얼로그를 띄운 이후의 코드는 해당 Dialog 가 닫히기 전까지는 실행되지 않는다. 고로, CppUnit 에서의 fixture 를 미리 구성하여 쓸 수 없다.
#include "stdafx.h" // resource, mfc 를 이용할 수 있다.
==== 5. edit box 의 내용이 데이터 추가후 초기화 되는지 확인 ====
- Hessian . . . . 4 matches
Resin 을 이용하는 경우라면 Hessian 이용해서 간단하게 RPC 를 구현할 수 있다.
그리고 RPC Test 를 구현해보자. (여기선 Hessian Servlet 을 이용)
Java 와 Python 둘 다 구현이 가능하다. 여기서는 간단하게 Python Interpreter 를 이용해보자.
- IsThisIntegration?/하기웅 . . . . 4 matches
처음에 적분을 이용해서 볼려고 별 쑈를 다하다가 결국엔 적분이 기억이 잘안나서..
일단 적분을 이용해서 구하면 인테그랄(0에서 1/2까지) 루트(a^2 - x^2) 을 구하면 되고~
x= cos t 로 치환하여 삼각 치환법을 이용해서 구한다~ (그런데 왜 잘 안될까??ㅋㅋ)
y=루트(3)x 라는 직선과 y=(1/루트(3))x 라는 직선이 y=1/2과 만나는 점을 이용하여 구한
- IsbnMap . . . . 4 matches
IsbmMacro에서 사용하기 위해 다음과 같은 방식으로 ISBN을 등록하실 수 있습니다.
IsbnMap 에서 map 을 분리해서 사용하는 방법이 있을 수 있고 - 이 경우 출판년도에 따라서 옵션을 달리 줘야 하는 불편함이 있습니다. - ISBN 매크로를 고쳐서 (가능하다면 jpg가 없을 때 gif를 찾는 어떤 로직을 넣는 방법이 있을지 않을까 하는 생각이 듭니다. 제가 coding에 능력이 전혀 없는지라, 이게 구현할 수 있는 방법인지는 모르겠지만 논리적 차원에서는 이게 사용자 정신건강에 이로운 해결책이 아닐까합니다. (제 위키에서 책목록을 관리하는데 수작업으로 바꿔 줄 생각을 하니 조금 끔직합니다. - 스크립트를 돌려도 되기는 하지만 ... )
모니위키 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)]]
- Java/ServletFilter . . . . 4 matches
Filter 를 이용하면, 해당 JSP,Servlet 등이 동작하기 전에 수행되어야 하는 처리들에 대해서 추상화할 수 있다.
Filter 를 이용한 응용을 보면
이중 EncodingFilter 의 경우 JSP 프로그래머들에게도 보편적으로 이용되고 있는중.
- JavaHTMLParsing/2011년프로젝트 . . . . 4 matches
InputStream is;//URL접속에서 내용을 읽기위한 Stream
//내용을 읽어오기위한 InputStream객체를 생성한다..
//내용을 읽어서 화면에 출력한다..
System.err.println("잘못된 URL입니다. 사용법 : java URLConn http://hostname/path]");
- JavaStudy2002/영동-3주차 . . . . 4 matches
* HashMap 을 이용해서 방향값에 대한 값의 변화량을 넣습니다. 이전에 배열로 구현하여 코드를 짧게 하는 것과 같은 목적입니다.
// HashMap 을 이용해서 변화량만을 추가
// HashMap 을 이용해서 변화량만을 추가
[http://zeropage.org/pub/j2sdk-1.4.1-doc/docs/api/java/util/ArrayList.html ArrayList] 나, [http://zeropage.org/pub/j2sdk-1.4.1-doc/docs/api/java/util/HashMap.html HashMap] 은 보통의 자바 책들에서 나오는 Vector 와 Hashtable 과 동일한 역할을 합니다. 1.3에서 추가된 collection framework에서 위의 두가지를 더 추천해서 이용했습니다.
- JavaStudy2003/두번째수업 . . . . 4 matches
2003년 신입생 대상 자바 스터디 두번째 수업 내용입니다.
== 내용 ==
* 위의 내용 제가 정말로 피땀흘려 만들어놓은 내용입니다. Copy & Paste 하나도 없이 제가 순수하게 참고만 해서 만든 튜토리얼입니다. 이렇게 노력한걸 좀 가상하게 여겨서 숙제 좀 제대로 해 보죠? -_-+ -[상욱]
- JavaStudy2004/클래스 . . . . 4 matches
=== 수업 내용 ===
* 클래스 - OOP를 구현하기 위해 자바에서 사용하는 개념
||이용재||[JavaStudy2004/이용재]||
- KnowledgeManagement . . . . 4 matches
* 지식 프로세스를 용이하게 하기 위해서 조직에게 필요한 것은? 어떠한 조직이 어떠한 프로세스에서 가장 잘 지식 관리를 할수 있나? 에 초첨.
* 사람, 객체, 지식 그리고 환경적 요소들 간에 상호작용에 초점을 맞춘다.
* 세번째 지식의 종류는 embedded knowledge 이다. 이것은 물리적인 사물에 비 명시적인 방법으로 내재되어 있는 지식이다. 예를 들어서 알려지지 않은 장치의 모양과 특성은 그 기계가 어떻게 사용되어지는지 이해하는지에 대한 핵심 요소를 포함하고 있다.
* 지식 저장소에서 지식을 넣고 가져오는 한가지 대체적인 전략은 각 개인이 자신의 지식 요구에 따라 ad hoc 기반으로 접근 하는 것이다. 이 방법의 장점은 각 개인에게서 오는 응답의 내용과 제시된 문제에 대한 해결책이 풍부하고 그것을 제시하는 개인에게 특화될 수 있다는 점이다.
- LC-Display . . . . 4 matches
한 친구가 방금 새 컴퓨터를 샀다. 그 친구가 지금까지 샀던 가장 강력한 컴퓨터는 공학용 전자 계산기였다. 그런데 그 친구는 새 컴퓨터의 모니터보다 공학용 계산기에 있는 LCD 디스플레이가 더 좋다며 크게 실망하고 말았다. 그 친구를 만족시킬 수 있도록 숫자를 LCD 디스플레이 방식으로 출력하는 프로그램을 만들어보자.
입력 파일에서 지정한 숫자를 수평 방향은 '-'기호를, 수직 방향은 '|'를 이용해서 LCD 디스플레이 형태로 출력한다. 각 숫자는 정확하게 s+2개의 열, 2s+3개의 행으로 구성된다. 마지막 숫자를 포함한 모든 숫자를 이루는 공백을 스페이스로 채워야 한다. 두 개의 숫자 사이에는 정확하게 한 열의 공백이 있어야 한다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- LUA_2 . . . . 4 matches
루아는 특이하게 복수 대입을 사용할 수 있습니다. 예를 들면 첫번째 변수에는 '=' 이후 첫번째 값을 두번째 변수에는 두번째 값을 대입하는 방식으로 사용할 수 있습니다.
이제는 기본 사칙 연산과 비교 연산자를 사용하는 예제를 보겠습니다.
다음에는 인용문 출력하기 '[[' ']]' 를 통해서 multi line의 문자열을 출력할 수 있습니다.
- MFC Study 2006 . . . . 4 matches
준석, 상욱, 현태, 지원, 우용, 동규, 찬협, 장길, 성준, 영준, 준영
|| 날 짜 || 내용 ||
|| 날짜 || 내용||
|| 11월 9일 || API나 MFC를 이용하여 윈도우 창을 띄우고 x by x 의 보드를 그리는 프로그램 ||
- MFC/Serialize . . . . 4 matches
CXXXDoc 클래스의 객체가 시리얼화 입력과정동안 응용 프로그램을 통해 동적으로 생성될 수 있도록 한다. IMPLEMENT_DYNCREATE와 매치. 이 매크로는 CObject 에서 파생된 클래스에만 적용된다. 따라서 직렬화를 하려면 클래스는 직접적이든 간접적이든 CObject의 Derived Class 여야한다.
직렬화 기능이 작동하는데 있어서 필요한 것. 이는 파일로 부터 객체를 읽을때 객체를 합성하는 프레임웍에 의해 사용된다.
DECLARE_SERIAL()매크로를 통해서 직렬화 기능의 추가가 가능하다. 내부적으로 new, delete 를 사용하는데, 매모리 릭을 추적하는 코드가 들어가므로 특별히 프로그래머가 신경써야 하는 부분은 없다.
- MFCStudy_2002_2 . . . . 4 matches
* 기본적인 MFC사용법(?), 간단한 클래스와 함수에 대한 공부
* 클래스 위저드 사용법에 대한 공부.
책이 없어서 그런지 좀 정리가 안된 느낌이다. 책을 빨리 사야겠다..함수를 몇개 배운거 같긴 한데 기억이 잘 나질 않으니..기억나는 사람이 이 페이지에 내용을 올려놨음 좋겠다.그리고 앞으로 스터디 할 때 책을 중심으로 차근차근 진도를 나가면 좀 정리가 될것 같기두 한데..-은지 [[BR]]
''처음에는 책을 위주로 보는게 좋겠지만, vc를 이용해서 윈도우 프로그래밍을 할때에는 MSDN 을 참조하는 훈련을 하는것도 중요합니다. 책은 그리 중요하지 않지만. 문서가 중요하죠.~'' - 임인택
- Marbles . . . . 4 matches
각 상자에는 정확하게 주어진 용량만큼의 구슬을 집어넣을 것이며, 총비용은 최소한으로 줄였으면 한다. 여러 상자에 구슬을 나눠 담는 가장 좋은 방법을 찾아보자.
입력에 있는 각 테스트 케이스에 대해 비용을 최소화할 수 있는 해법을 출력한다(한 줄에 테스트 케이스 하나씩). 해법이 있으면 두 개의 음이 아닌 정수 m1, m2를 출력한다. 이때 mi는 타입 i인 상자의 개수를 의미한다. 해가 없으면 "failed"를 출력한다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- MatrixAndQuaternionsFaq . . . . 4 matches
대신 이 내용을 tp로 만든거를 올리겠습니다. 글구 어떤 분이 쓰신 글.. 도 함께 올리도록 하지요.
위에는 이 글에서 사용하는 방법대루 하면 저렇게 된다는 뜻이구.. 저는 Gl 에서 쓰는대루 좌->우로 한 행을 해석하는 방법으로 설명합니다.
'''용어설명입니다.'''
그리구.. transform 행렬을 적용시킨 vertex normal은 정규화(크기1로..) 되어있지 않을수 있으니.. 것두 다시 해야 한다고 합니다.'''
- NamedPipe . . . . 4 matches
// 파이프가 연결이 되면 파이프를 읽기용으로 바꾼다.
// 여기서 잠깐 PIPE_READMODE_MESSAGE는 읽기용이라고 나와있지만 MSDN에는 이 모드가 새로운 모드로
실제 예제 파일 NamedPipe를 이용한 Chat Program [http://www.zeropage.org/pds/20031103027/NamedPipe.zip]
["용어분류"],["도구분류"]
- NextEvent . . . . 4 matches
Fishbowl이라는 기술은 많은 사람이 토론을 할 경우 사용하는 테크닉입니다. 두개의 동심원으로 좌석을 배치하고 안쪽(어항)에 토론을 하는 사람들이 착석하고, 바깥쪽에 청중이 착석합니다. 안의 사람은 밖의 사람과 대화하지 못하고, 밖의 사람은 안의 사람에게 말을 걸지 못합니다. 안에 있는 사람들이 토론을 하는 것을 밖의 사람들이 어항을 구경하듯 관찰합니다. 여기에 변화를 주게 되면, 안의 사람을 동적으로 교환할 수 있습니다. 밖의 사람 중에 토론에 참여하고 싶은 사람이 있다면 언제든 안으로 들어와서 앉습니다. 그러면 최소한 한 사람이 밖으로 나갈 때까지 토론은 중단됩니다.
이 토론 기법을 프로그래밍에 적용합니다. 그리고 축구중계의 개념을 집어 넣습니다. 안의 사람들이 프로그래밍을 하고 이것을 벽면에 프로젝션합니다. 해설자와 아나운서가 이 광경을 해설합니다. 프로그래밍을 하는 팀원들 중에 피곤한 사람은 밖으로 나올 수 있습니다. 해설자는 나오는 사람을 인터뷰하기도 하고, 방금 어항 속 물고기의 행동에 대한 해설을 해줍니다. "아~ 멋진 페인트 액션이에요~" "저게 바로 압박 프로그래밍이라는 것이죠." 사람이 비면 밖의 사람이 안으로 들어갈 수 있습니다. 또 밖의 사람이 안으로 들어가면 안의 사람 중 한 사람은 밖으로 나옵니다. 이런 식으로 팀원이 항상 유동적으로 바뀝니다. 대신 개발하는 프로그램은 계속 유지됩니다.
자신이 쓰는 언어의 개발자 중에서 자기는 어떤 위치인지 궁금합니까? 다른 언어를 사용하는 개발자가 만든 프로그램과 자신이 만든 프로그램의 수행 시간, 개발 시간, 코드 크기 등의 비교 결과가 궁금합니까?
NextEvent로 좋아보여서 여기다 그 내용을 복사합니다. --[Leonardong]
- OpenCamp/첫번째 . . . . 4 matches
* jQuery 실습용 파일 - 마우스 우클릭으로 다운 요망
* 데블스 때도 그랬지만 남들 앞에서 발표를 한다는 건 상당히 떨리는 일이네요. 개인적으로는 이번 발표를 준비하면서 방학 동안 배웠던 부분에 대해서 다시 돌아보는 기회가 되었습니다. 그리고 그 외에도 방학 동안에 다루지 않았던 native app을 만드는 것이나 분석용 툴을 사용하는 법, Node.js, php 등 다양한 주제를 볼 수 있어서 좋았습니다. 물론 이번 Open Camp에서 다룬 부분은 실제 바로 사용하기에는 약간 부족함이 있을 수도 있겠지만 이런 분야나 기술이 있다는 것에 대한 길잡이 역할이 되어서 그쪽으로 공부를 하는 기회가 될 수 있으면 좋겠습니다. - [서민관]
- OptimizeCompile . . . . 4 matches
현재 프로세서의 속도는 [무어의 법칙]에 따라 극한으로 속도가 증가하고 있다. 이러한 상황에서는 예전처럼 [CPU] 의 속도 에 프로그램의 실행속도가 크게 영향 받지는 않으므로, 컴파일러의 최적화 작업도 더이상 연산(computation)을 줄이는 것 만이 목적이 되는 것이 아니라, 좀 더 메모리 계층구조를 효율적으로 사용하는 것에 관심이 기울여지게 된다.
실행 시간(run time) 중의 계산을 줄이는 것이 목적이다. 이 최적화는 '미리 컴파일 시간에 계산(precomputaion in compile time)' 할 수 있거나, '미리 계산된 값을 재사용(reuse a previously computated value)' 할 수 있는 상황에서 적용된다.
연산에서 두개 이상의 constant 들은, 미리 계산되어 하나의 constant 값으로 바꿀 수 있다. 위의 예에 적용하자면
- PNA2011/서지혜 . . . . 4 matches
* Erlang은 함수형 언어. 분산처리 능력이 뛰어나다. 리스트의 재귀처리가 용이하다
* 프로세스 생성 비용이 작다.
* 상대방의 의견을 부정부터 하기보단, 그것을 적용했을 때의 미래를 상상해 봅시다
* 의견을 받았을 때 구현을 생각하지 말고(머리아프잖아요) 일단 아이디어들을 수용한 다음, 선택하고 구현은 그 다음에~
- PageListMacro . . . . 4 matches
[페이지이름]만 찾는다. 내용은 FullSearchMacro로 찾는다.
== 사용례 ==
SisterWiki에 있는 내용도 찾을 수 있으면 좋겠습니다. FullSearchMacro야 SisterWiki랑은 무관하지만 PageList는 SisterWiki까지도 수용할 수 있다고 생각합니다.
- PairProgrammingForGroupStudy . . . . 4 matches
PairProgramming이란 ExtremeProgramming이라고 하는 새로운 소프트웨어 개발 방법론의 한가지 기법으로, 두명이 한 컴퓨터를 이용해서 같이 프로그래밍을 하는 것을 말합니다.
저는 여기서 PairProgramming의 교육적 효과와 이를 그룹 스터디나 프로젝트 팀 교육에 응용하는 방법을 간략히 서술하겠습니다.
이 방식을 소프트웨어 개발 업체에서 적용한 것은 Apprenticeship in a Software Studio라는 문서에 잘 나와 있습니다. http://www.rolemodelsoft.com/papers/ApprenticeshipInASoftwareStudio.htm (꼭 읽어보기를 권합니다. 설사 프로그래밍과는 관련없는 사람일지라도)
여기서는 단기간에 이런 PairProgramming을 통해서 팀 내에 지식이 확산되게 하거나, 그룹 스터디에 이용할 수 있는 방법을 보도록 하죠.
- PowerOfCryptography/조현태 . . . . 4 matches
cout << "이용해주셔서 감사합니다.\n";
cout << "이용해주셔서 감사합니다.\n";
암튼 요즈음 방법으로는... __int64 를 만드는 방법으로... assembly를 이용하면 엄청 간단해지더군 -_-...
;;ㅁ;; 음.. 영호선배는 넘흐 마니 알고이쩡..>ㅃ<;; C언어 소스 봐도 모르게떠용..ㅎㅎ 64비트형의 인트형의 변수를 두개 지정하고 a에다가 최대값을..(아마 부호가 있기 때문에 -1저장됬을듯한..)넣고 b에는 a-1을.. 그럼 -2가 저장..;; 음.. 이게 아니라 혹시 b가 포인터라서 메모리 한칸 앞쪽을 잡아주는 건가요? 음.. 그러면 할당되지않은 메모리를 건드는 사태가..;;ㅁ;; 이것도 아닌가.. 연구를..;;ㅁ;; - [조현태]
- PrimaryArithmetic/sun . . . . 4 matches
단순히 사람이 덧셈을 하는 식으로 풀었다. 끝자리 부터 하나씩 더해가며, 올림수가 발생했을 경우 같이 더하는 방식을 이용했다.
== 응용프로그램으로 ==
문제 풀이를 위해서 별다른 알고리즘이 아닌 현실에서의 덧셈 방법을 사용했고, 코드량이 별로 되지 않음에도 1시간이 걸린것은 도중에 msn으로 친구과 채팅을 하며 했기 때문이다. 본인이 느끼기에는 msn을 얼마 하지 않았던것 같은데 실제로는 시간이 꽤 지나있는걸 보면 아인슈타인의 상대성원리에 따라 시간이 흐름을 알 수 있다. 직장인의 경우 이것을 좀 더 일반화 해보면, '왠지 오늘 하루 일하기 싫다'라고 느껴지고, 휴가를 쓸 수 없을땐 근무중에 메신저를 하면 시간이 금방 감을 알 수 있겠다.
단, 기술에는 언제나 어두운 면이 있듯이, 시간을 엄청나게 빨리 보내는 도중 상사와의 원치않는 메시징은 반대의 효과를 나타낼수도 있다. (즉, 이럴땐 '오프라인으로 보임'을 이용하도록 하자)
- ProgrammingLanguageClass/2006/EndTermExamination . . . . 4 matches
= 전체내용 =
가디드 커맨드의 내용이 나왔다는 점이 약간 의외였음.
e) Ada 에서 for loop 를 이용한 iteration 소스. 루프 종료후 condition variable 처리에 대한 문제 출제.
c) display 에 대한 설명을 하시오. (Qsd = Psd, Qsd < Psd, Qsd > Psd 를 나누어서 설명. 5판에 자세한 내용있음)
- ProgrammingPearls/Column1 . . . . 4 matches
파일 내용의 소트를 어떻게 할 것인가?
* 제한 : 메모리를 1메가 정도밖에 사용할 수 없음. 디스크 공간 넉넉함. 수행시간이 수분을 넘으면 안됨. 10초 정도면 괜찮음.
비트맵, 혹은 비트 벡터라 불리우는 방법이 유용할듯 싶다. 예를 들어 맥시멈 10미만의 숫자라 할때에, {1,2,3,5,8}을 표현해 보면, (0 1 1 1 0 1 0 0 1 1)이 된다. 있으면 1, 없으면 0인 것이다. 한 숫자당 1비트만 할당을 해서, 그것의 인덱스로 처리를 하는 것이다. 앞에서도 말했듯이, 미니멈과 맥시멈의 너비가 작고, 같은 숫자가 없으며, 관련된 데이터가 없다는 측면에서 이 방법을 쓸 수 있는 것이다. 대강의 코드는 다음과 같다.
이것의 수행시간은 Θ(n)이다. 이 챕터는 문제를 주의 깊게 분석하다 보면, 가끔 엄청난 이득을 가져다 줄때가 있다는 교훈을 주고 있다. 문제 정의는 문제 풀이의 90프로다. 일반적으로 많은 공간을 사용하면 적은 시간이 소요된다고 한다. 그런데 비트맵 소트는 시간도 줄고, 공간도 줄어들었따. 적은 데이터를 다루는 것은, 그것을 수행하는 데에 더 적은 시간이 든다는 것이다. 그리고 데이터를 디스크에 두기 보다는 메모리 상에 두는 것이 디스크 액세스 같은 시간 걸리는 일을 줄일 수가 있는 것이다. 프로그램을 간단하게 짜자. 유지보수도 쉽고, 견고할 것이다.
- ProjectAR/Design . . . . 4 matches
* 아이템을 상속받는 착용가능한 아이템, 소모성 아이템 등등
* 착용가능한 아이템은 정령을 가지고 있다.
* CARHero는 장착한 아이템에 스킬이 달려 있다면(정령에 의한) 그 스킬을 사용할 수 있다.
* CARItem은 그것을 사용한 CARHero의 상태를 변화시켜 줄수 있다.
- ProjectPrometheus/Iteration6 . . . . 4 matches
||요일|| 시간 ||내용||
|| 도서관 검색 결과를 사용자 평가도에 따라 정렬하기 || . || . ||
|| 사용자 공지 || . || . ||
|| 사용자 등록 페이지 작성 || . || . ||
- ProjectPrometheus/LibraryCgiAnalysis . . . . 4 matches
파이썬에서 webdebug 를 이용, 브라우저가 전송하는 GET, POST 값을 분석했다.
또는 웹 필터 프로그램인 Proxomitron 을 이용할 수도 있다. (http://proxomitron.cjb.net/) 개인적으로는 webdebug 가 더 해당 폼 값/헤더 값만 보기엔 편했던걸로 기억.
* USERID 는 아무값이나 넣어줘도 상관이 없되, 내용이 없으면 안됨.
사용자 정보 ( 필수 사항 구분 )
- ProjectZephyrus/일정 . . . . 4 matches
|| 날짜 || 시간 || 내용 || . ||
||5.24 (금)||영서 - 10시, 창섭 - 3시|| Study 상태 점검. CVS 사용법 시연 & 연습. 약간의 Small Client 구현|| ○ ||
||5.27 (월)||영서 - 3시, 창섭 - 2시|| Client 일부분 연습용 프로그래밍 || △ (영서 사정상 참여못함) ||
||5.28 (화)||영서 - 5시 || JBuilder 일부 설명, JTree 일부 연습용 프로그래밍. 기타) 책 빌려주기 || △ (JBuilder 설명못함) ||
- Project메모장 . . . . 4 matches
[강희경]이 "실제 사용을 목적으로" 계획한 프로젝트.
* 기간: 가능하면 빨리 실용화
* DB 사용.
*처음하는 DB응용프로그래밍의 압박을 느낌.
- PyGame . . . . 4 matches
["SDL"] 라이브러리를 이용해서 만든 게임개발용 ["Python"] 모듈.
사용하기 정말 쉽다. [Python] Interpreter 에서 한줄 한줄 입력하면서 공부할 수도 있다.
["데기"]는 PyGame 을 이용해서 3D Viewing System 을 만든바 있다.
- PyServlet . . . . 4 matches
Jython 을 이용한 Servlet 코드 작성하기.
servlet 클래스의 경우는 수정시 바로바로 적용이 되나, import 되는 모듈을 수정하는 경우 바로 적용이 되지 않는다.
[1002] 가 PyServlet 에서 생각하는 장점이라면, Servlet 의 특징으로, CGI와는 달리 인스턴스가 메모리에 남아있다는 점이다. 간단한 프로토타이핑을 할때 memory persistence 를 이용할 수 있게 된다. ZP 에서의 12줄 이야기와 같은 프로그램을 작성할 수도 있다.
- PythonLanguage . . . . 4 matches
* ["wxPython"] - linux, windows 둘 다 이용가능한 GUI Toolkit.
* 인터넷에 내용이 공개되어 있는 책
* http://python.or.kr - 파이썬 정보 광장 (국내 파이썬 사용자들 그룹)
* http://www.gpgstudy.com/gpgiki/python_script - 파이썬의 Extending 과 Embedding 의 응용.
- RandomFunction . . . . 4 matches
랜덤함수의 사용법입니다.
rand() % a + b의 형식을 사용하면 b ~ a+b 사이의 숫자를 얻을 수 있습니다. ( 1da + b 라고도 하지요. )
b가 -일 경우에는 사용에 주의가 필요합니다
#include <ctime> // time(0)의 사용을 위해 필요합니다.
- RandomWalk2 . . . . 4 matches
표준입력을 통해 다음 내용을 입력 받는다.
||해결자 ||개발시간 ||사용언어||Source ||
자신이 사용한 방법과 비교해 보라. 누구의 것이 더 낫다고 생각하는가?
몇 몇 사람들이 공통적으로 사용하는 "좋은 접근법"과 "나쁜 접근법"이 있는가?
- RedundantArrayOfInexpensiveDisks . . . . 4 matches
통칭 RAID 시스템이라 불리는 디스크 성능 향상 법에 대한 내용
메모리와 프로세서와는 다르게, 속도를 높이는 것이 힘든 디스크로서는 가격이 낮다는 특성을 이용해서 좀 다른 길을 걸어가기 시작했는데...
shadowing 혹은 mirroring 이라고 부르며, 단어 그 자체 대로, 여러개의 디스크에 완벽하게 동일한 자료를 저장한다. 물론 읽어오는 작업을 할 때에는 병렬로 읽어올 수 있기때문에 성능향상이 있지만, 쓰기작업을 수행할때는 하나의 디스크를 사용하는 것과 차이가 없다. 조금 무식한 방법이지만 자료의 무결성을 보장하려고 할때 가장 확실한 방법이기도 하다.
기본적으로 RAID 5 와 비슷한 구성이다. 2-dimentional array 로 디스크들을 구성하며, 각각의 row 와 column 에 패리티를 사용하여 두개까지의 디스크가 동시에 문제를 일으키더라도 정상 동작을 가능하게 한다. 1987년에 제정된 최초의 RAID 표준으로부터 처음 나온 추가 레벨이다.
- ReleaseDebugBuildStartGo의관계 . . . . 4 matches
VC++ 통합환경을 사용할 때 가장 많이 쓰게 되는 기능 중, Build->Start(CTRL+F5)와 Debug->Go(F5)의 차이점중 하나에 대해 알아 보겠습니다.
F5는 IDE(통합환경)가 실행 프로세스를 반동결(Soft-ice)상태로 실행시켜, 사용자가 내부 변수의 값을 들여다 볼 수 있거나 중간에 멈출 수 있게 합니다. 디버깅을 할 때에 아주 중요한 역할을 하지요.
이 두 개의 기능은 방금 설명한 것 이외에 조금 다른 실행환경을 제공합니다. 바로 "미초기화 변수의 초기화"입니다. 그리고, 이 양상은 프로그램이 릴리즈 빌드냐, 디버그 빌드냐에 따라 다릅니다. 아래와 같은 구조체와 이것을 사용한 코드(비록 한 줄이지만)있다고 가정합시다.
디버깅할 때는 잘 돌던 프로그램이 그냥 실행시킬 땐 오동작을 보이는 경우가 있어 막대한 육체적/정신적 에너지를 낭비하는 경우가 있는데, 그런 경우를 만난다면 이 글의 내용을 한 번쯤 떠올려 보시기 바랍니다. 그리고 다음의 점검을 해보시기 바랍니다.
- RubyLanguage/ExceptionHandling . . . . 4 matches
*사용법 : rescue 예외클래스명
* 예외 발생시 throw를 이용해 예외를 발생시키고 catch에서 심볼을 이용하여 예외를 캐치한다.
* throw에서 심볼(라벨)을 이용하면 중첩된 코드 구문을 바로 탈출할 수 있다.
- RuminationOnC++ . . . . 4 matches
Accelerated C++의 저자인 앤드류 쾨니그가 쓴 책이다. C++을 다년간 써온 저자의 프로그래밍 테크닉을 쉽게 이야기를 쓰듯 풀어나간 책이다. 책의 내용은 저널에 저자가 썼던 글에 살을 덧 붙이고 다듬어서 나온책이다. 약간 흥미를 위주로 쓴 측면이 있어서 재미있게 읽을 수 있다. (표지나 서문에서 느껴지는 책의 분위기는 프로그래머를 위한 C++ 동화책이다. ㅡ.ㅡ;;)
아마존의 서평이 상당히 좋은 편이다. 비록 몇명안되는 리뷰만 있지만... 책을 본 사람들의 평가의 극상의 수준이다. 초급 C++ 프로그래머가 보기엔 좀 무리가 있는 내용이지만 재미있게 남는 시간에 읽을 수 있다.. (대략 50쪽에 핸들 클래스를 사용하라는 내용이 나온다.)
- STL/map . . . . 4 matches
* dictionary 구조란 '''key''' 와 '''value'''가 존재하며, '''key'''를 이용하여 '''value'''를 찾는 자료구조이다.
* map 은 내부에 STL의 pair 를 이용하여 구현한다. 그래서, iterator 가 가리키는 것은 pair<key_type, value_type> 형이다.
// for 에서 반복자 이용 순회
cout << "전화 번호부의 내용은 " <<endl;
- STL/vector/CookBook . . . . 4 matches
= 벡터를 사용해보기 위한 기본 셋팅(앞으로 편의상 반말로 합니다.) =
* 또 하나 살펴볼게 있다. 아까 예제에서는 반복자로 벡터 내부를 순회했었다. 하지만 벡터는 임의접근을 허용한다. 배열처럼 ar[4] 이런식으로 쓸수 있단 말이다. 편한대로 써주자.
* 여기서 잡담 하나. 객체를 parameter로 넘길때도 복사가 수행되지 않는 참조를 사용하자.
* 그래서 pointer만을 이용해서 저장하자. 하지만 쓸모 없는 객체는 우리가 지워줘야 한다. 포인터를 넣어줄때에는, 컨테이너가 소멸될때는 포인터들은 지워지겠지만. 그 포인터들이 가르키는 값들은 지워지지 않기 때문이다.
- Slurpys . . . . 4 matches
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
|| 박응용 || Python || 2시간 || [Slurpys/박응용] ||
정확하게 이름은 생각나지 않지만 디지털공학 시간에 예제로 해보았던 자판기나 신호등 문제의 접근 방법을 사용하면 재미 있을것 같습니다. - [이승한]
- StandardWidgetToolkit . . . . 4 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/dev.html SWT 2.1 문서] - Code Snippets 가 많아서, 따라하기 용이하다.
- TdddArticle . . . . 4 matches
제약사항으로는 Stored Procedure 나 Trigger 등 Vendor-Specfic 한 기술들을 적용하기 어렵다는 점 (이를 위해선 로컬 DB 또한 해당 Vendor의 DB를 설치해야 하므로).
DeleteMe) - 오라클의 경우 인스턴스당 기본으로 먹는게 보통 200 메가 정도. 즉 기본 외에 자기가 만든걸 더 띄울경우 보통 400 메가 이상을 먹게 되는데 이건 뜰때 얘기고 가만히 냅두면 50 메가 이하로 메모리가 내려감. 물론 윈도우 하에서 얘기임. 나머진 확실하지 않음. 연결이 많아지면 메모리가 다시 올라갈것임. -박준용-
여기에서의 TDD 진행 방법보다는 Reference 와 사용 도구들에 더 눈길이 간다. XDoclet 와 ant, O-R 매핑 도구를 저런 식으로도 쓸 수 있구나 하는 것이 신기. 그리고 HSQLDB 라는 가벼운 (160kb 정도라고 한다) DB 로 로컬테스트 DB 를 구축한다는 점도.
reference 쪽은 최근의 테스트와 DB 관련 최신기술 & 문서들은 다 나온 듯 하다. 익숙해지면 꽤 유용할 듯 하다. (hibernate 는 꽤 많이 쓰이는 듯 하다. Intellij 이건 Eclipse 건 플러그인들이 다 있는걸 보면. XDoclet 에서도 지원)
- ThePriestMathematician . . . . 4 matches
2. 침이 세 개 있는 경우에 쓰는 방법을 그대로 적용해서 나머지 n-k개의 원반(전체 원반의 개수를 n개라고 가정)을 목표 지점으로 옮긴다.
3. 마지막으로 네 개의 침을 이용해서 맨 위에 있던 k개의 원반을 최종 목적지로 옮긴다.
그 영리한 수도사가 제안한 네 개의 침을 사용하는 방법으로 원반을 옮기는 횟수를 계산하자. 원반은 한 번에 하나씩만 옮길 수 있으며 큰 원반을 작은 원반 위에 놓을 수는 없다. 이동 횟수를 구하려면 먼저 원반 이동 횟수를 최소화시킬 수 있는 k값을 구해야 한다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- TheTrip/이승한 . . . . 4 matches
double sum = 0; //각여행에서 사용한 금액의 총합
double aver = 0; //각여행에서 사용한 금액의 평균
//평균 = 지출내용 / 참가학생수
aver = sum = 0; // 이번 여행경비 산출에 사용된 임시변수들을 초기화 시킨다.
- TuringMachine . . . . 4 matches
튜링 머신은 알랜 튜링이라는 사람이 소개한 개념입니다. 그가 소개한 이 머신은 현재 현시대의 대부분의 컴퓨터에 적용되어 쓰이고 있다.
종이에는 우리가 행해야할 과정에 관한 약속들이 적혀 있는 부분, 그리고 그 과정을 통해서 바꾸어야할 내용이 적혀있는 부분이 존재한다.
우리는 이 종이의 약속이 적혀있는 순서대로 내용을 바꾸면서 진행을 해 나간다.
우런 단순한 과정을 통해서 결과값으로 우리가 필요로 하는 내용을 얻을 수 있을 것이다.
- UserStory . . . . 4 matches
사용자의 요구사항에 대한 간략한 기술. XP의 다른 과정들이 그렇듯이 (이건 아마도 XP 방식으로 진행하는 팀들의 특징인듯. -_-a Case Tool 보다는 간단한 카드와 펜을 선호함.~) 보통 인덱스 카드에 기술을 한다.
Wiki:EngineeringTask 란 해당 Story를 구현하기 위해 실질적으로 해야 할 일들에 대한 서술이다. UserStory 의 각 항목이 비교적 사용자 관점에서의 서술이라 한다면, Wiki:EngineeringTask는 구현해야 하는 Developer들 관점에서의 서술이다.
매 Iteration (개발주기)를 진행할 때마다 실제로 진행한 Story들을 계산, 다음 estimation에 이용하게 된다.
시스템과 사용자간의 어떤 행위들을 하는가른 간단히 순서적으로 적는것이지.
- VendingMachine/재니 . . . . 4 matches
* 자판기는 사용자 인터페이스를 구현하는데 사용하고, 사람이 주문할 음료(Drink)를 따로 분류하자..
cout << used << "원을 사용하셨습니다.n";
아직 클래스 사용법도 제대로 모르는지라 서툴기도 하고.. 결론은 역시 공부해야할 것이 많다는 것...^^
- VisualStuioDotNetHotKey . . . . 4 matches
잘 살펴보면 6.0의 단축키로 사용할수 있는 옵션도 있다.
이런것도 있다. 도구모음에 오른쪽클릭 -> 사용자 지정 -> 옵션 -> 스크린 팁에 바로가기 키 표시
Shift+Alt+F12 : 이거 찾기보다 좋더군요. 함수나 define등 아무거나에서 사용
Ctrl + V와는 달리 클립보드에 있는 복사된내용을 돌아가면서 붙여준다. 따로 복사를 해주거나 할 필요는 없다. 그냥 Ctrl+C로 계속 원하는것을 복사하면 된다.
- VonNeumannAirport/1002 . . . . 4 matches
언어는 C++ 로 할 것이고 중간에 STL 중 vector 를 간단하게 이용할겁니다. (자세한 이용법은 나도 모르는 관계로 -_-;) 일단 저는 이 문제를 한번 풀어본 적이 있습니다. 연습삼아서 새로 풀어봅니다.
에러가 난다. C++ 에서는 터플이 없으므로.. -_- 배열을 넘기는 방법이 있고, vector 를 이용하는 방법이 있습니다. 저번에는 배열로 했기 때문에 이번엔 vector 로 해본다는. ^^;
근데, Refactoring 에 대해서만 1시간을 쓴 것 같다. 그것도 메인 코드인 Configuration 클래스 보단, Test 코드에 대한 Refactoring 이 주가 된 것 같다. 실질적인 실용성을 볼때, 메인 코드에 대한 Refactoring 위주로 나가는 것이 좋을 것 같다. (깨진 Test 는 주로 삭제하는 스타일로 가고..)
- WeightsAndMeasures . . . . 4 matches
어떤 거북이도 자기 체력이 허용하는 한도 내에서만 등 위에 다른 거북이를 올려놓으면서, 몇 마리의 거북이를 쌓을 수 있는지를 나타내는 정수를 출력한다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
테스트 케이스가 필요하다면 꽁수가 있기는 하다. Java로 standard input으로 읽는 라인을 합쳐다가 모조리 특정 URL에 포스트 하도록 하는 코드를 만들어 업로드 한다. 그러면 심사때 사용하는 테스트 케이스를 알 수 있다. --JuNe
헉! 내가 학원에서 읽은 동화책 내용이다 --세환
- WikiProjectHistory . . . . 4 matches
|| [검색에이전시_temp] || 남상협, 유용안 || 이벤트 기반 검색 에이전시 || 종료 ||
|| [MFCStudy_2005_2_야매] || 상협, 태훈, 민경, 수민, 지희 || 2인용 오목 || 종료 ||
|| ["NSIS_Start"] || ["1002"] || 2002.2.1~2.9. NSIS Installer에 대한 사용법 작성 ||종료||
|| ["MFCStudy_2001"]|| 6명 || 2001.2학기~ 2002.1 MFC 를 이용한 개인 프로그램 작성||종료||
- WinAPI/2011년스터디 . . . . 4 matches
||WS_POPUP||2.팝업윈도우 3과 같이 사용 못함||
||WS_CHILD||3.차일드 윈도우 2와 같이 사용 못함||
||WS_DISABLED||6.사용금지/입력 못받음 ||
||WS_GROUP||17.라디오버튼등의 그룹을 정할때 사용 ||
- YetAnotherTextMenu . . . . 4 matches
이번에도 역시나 텍스트 메뉴를 입력도구로 사용하는 프로그램이다.
보통 ToyProblems를 내줄 때, 입력양식으로 텍스트 메뉴를 이용하라는 요구사항이 주어지기도 한다. JuNe이 보기에는 이것은 "단견"이다. 학생들은 매번 비슷한 방식으로 텍스트 메뉴 프로그램을 만들 것이고, 매번 거기에 일정 시간을 빼앗길 것이다. 재미있게도 텍스트 메뉴를 사용하는 프로그램을 작성하면, 학생들이 만드는 프로그램 역시 그 메뉴의 구조를 닮는다. 이것은 그다지 바람직하지 않은 경우가 많다.
텍스트 메뉴에서 찾는 장점이라면 인터액티브하게 테스트해보기 좋다는 것 정도 될까? 그런데 이는 표준 입출력을 사용하되 버퍼링을 쓰지 않으면 역시 인터액티브하게 테스트 가능하다. 일종의 커맨드 쉘을 제공하는 셈이다(실제로 이를 좀 더 발전시키도록 하면 학생들은 많은 것을 배울 것이다).
- Yggdrasil/가속된씨플플/1장 . . . . 4 matches
== 잘 모르던 용어 정리 ==
* 인터페이스: 해당 타입의 객체에 사용 가능한 연산(operation)들의 집합
* x라는 인스턴스는 선언된 괄호 밖을 나가서 사용되었으니 에러를 출력. 이미 소멸되었으며, 맞게 고치려면 7째줄의 괄호를 없애고 그 다음줄에 써야한다.
* cin은 공백이나 파일의 끝을 만나면 그때까지의 문자들을 변수에 저장하기 때문에 Samuel Beckett이라고 입력했으면 첫 cin엔 Samuel까지 들어가고, Beckett은 버퍼에 남아있어서 다음의 cin은 사용자에게 입력할 틈도 안 주고 남은 Beckett이란 단어를 flush하기 때문이다.
- Yggdrasil/가속된씨플플/2장 . . . . 4 matches
== 잘 모르던 용어, 개념정리 ==
* 루프불변식(loop invariant): while문이 그 조건식을 검사하는 매 경우에 대하여 참일 것이라고 가정하는 속성. 처음에 이걸 보고, 이런 개념도 있었냐고 생각했음. 루프불변식은 코드는 아니고 주석에 해당하며, while문이 진행되면서 while문의 제일 처음과 끝에서 루프의 내용이 의도한 대로 돌아간 건지를 정의한 문장이다.(말로 설명하기 애매한 듯...) 하여튼 이것을 쓰는 이유는 루프문을 제대로 설계하기 위해서. 아래의 코드는, 책에 있는 코드로, 불변식의 예이다.
* 1장에서 배운 string 클래스에 추가할 내용. SeeAlso ["Yggdrasil/가속된씨플플/1장"]
* 비대칭적 범위(반개범위)를 사용하므로, [0,5)이면 루프가 5번 돈다는 것을 쉽게 알 수 있다. [1,5]면 5번 돈다는 것을 파악하기 힘들다.
- Z&D토론/학회명칭토론백업 . . . . 4 matches
* 창섭이가 언급한것처럼의 이름 방식은 절대 반대이다. 데블스는 99년에 새로운 회원을 모집하게되었고 98이전까지의 데블스 선배님 역시 대다수 제로페이지이고, 작년 home coming day에서 참석하신 분도 많다. 아예 재 흡수 방식으로 나가던지, 완전히 새로운 이름을 추구하던지 방식을 했으면 좋겠다. 지나간 역사들의 페이지에 연연하는건 바보 짓일지 모르나, 스폰때의 기억과, 전체 기수간의 balance조정(미안합니다. 요즘 rpg합니다. --;) 역시 대두되는 문제일 것이다.[[BR]]결정적으로 느끼게된 계기는 통합 회의라고 모인 회의에서 토론하던 것들이 내 경험에 99년 말에 했던 것과, 00년 말에 했던 것과 같고, 더 작은 부분 그 일부임을 깨달았을 때였다. 과거 했던 주제는 회원 모집, 회장 선출, 서버 관리 문제, 회비 문제, 전시회 문제, 방학중 스터디 구성, 활성화 방안 문제 였다. 이번 처음 경험인 01들은 마치 이번 회의가 통합을 위한 회의로 들렸을지 모르겠지만, 내용 상으로 봤을때 뭐가 다른가. 부족하면 부족했지. 아니면 데블스 인원이 참관인 같았다.[[BR]]그냥 이름을 고수 하던지 새로 하던지 둘중에 하나로 하라, 하지만 개인적인 의견이라면 '''선''' ''고수'' '''후''' ''변경'' 이다. 이유라면 또다시 긴글 써야 하니, 아무나 데블스 회원이 참여시 제발 설득해 달라 --; --상민
(이상한 결론입니다. 네가지 토론 내용이 모두 학회 명칭을 ZeroPage로 정하는 것을 뒷받침하지 못하고 있습니다.)
바로 윗글은 누가 쓴 글이지요?. 바로 윗글이 원래 있던 위치에 의하면 네가지 토론 내용은 이렇지요.
이 네가지에 의하면 토론 내용이 모두 ZeroPage로 정하는것을 뒷받침하지 못하고 있다고 했는데, 무언가 착각하셨군요. 학회명칭은 회의에 의해 결정된것이지 위의 네줄 토론으로 정해지지 않았습니다 --혀뉘
- ZIM/ConceptualModel . . . . 4 matches
프로젝트 ["ZIM"]에서 사용하는 개념들입니다. ConceptualDiagram은 생략합니다.
* '''ZIM Control''' : Zimmer 가 사용하는 프로그램 본체
* '''Message Window''' : Zimmer 가 대화할 때 사용하는 창
* '''Zimmer''' : ZIM 사용자.
- ZPHomePage . . . . 4 matches
=== 작업 내용 ===
* http://www.click4u.pe.kr/index_0.html - 홈페이지를 만드는데 필요한 다양한 내용들이 들어있습니다.^^
[http://mozilla.or.kr MozillaFirefox] 에서도 무리없이 브라우징 할 수 있도록 해주세요. 간단해요. 표준 HTML 만 사용하면 됩니다. - [임인택]
저같은 경우에는 모니터 해상도를 1280 * 1024로 하고 사용하는데 ZP창은 너무 작습니다. 즉 여백이 엄청나게 많습니다. 적당히 해상도에 맞추어 홈페이지를 보여주는 게 좋을 듯 합니다. --재동
- ZeroPage . . . . 4 matches
* 우수상(2등) : CAU Arena - [장용운],[이민석],[이민규]
* team 'OOPARTS' 본선 38위(학교순위 15위) : [강성현], [김준석], [장용운]
* team 'OOPARTS' 37등 : [강성현], [김준석], [장용운]
* 1994 삼성전자 번들용 영어 교육 프로그램
- ZeroPageServer . . . . 4 matches
* 기존 zp홈으로 활용하던 서버가 교내 네트워크 불안정과 기타 여러가지의 문제로 외부 호스팅을 시작한뒤 남는 서버로 돌리는 서버입니다.
* 서버가 필요한 학우는 언제든지 사용이 가능합니다.
* 서버이니만큼 데탑처럼 사용하거나 파괴적인 행동을 삼가주시기 바랍니다.
이 아래는 예전 서버에 관한 내용입니다.
- ZeroPageServer/set2005_88 . . . . 4 matches
* pair key 사용으로 굳이 패스워드를 외울 필요없음 ^^ㅋㅋ;
각 사용자의 자신의 public_html 디렉토리를 이용해서 '''jsp, php, perl, python''' 등의 웹 프로그래밍이 가능하다.
=== 하드디스크의 이용 현황 ===
- [Lovely]boy^_^/Cartoon . . . . 4 matches
|| 용비불패 || 사조영웅전 || 신조협려 || 의천도룡기 ||
|| 팔용신전설 클래식 || 바람의검심 || 닥터슬럼프 || 이나중탁구부 ||
|| 20세기소년 || 1-13 || 팔용신전설 플러스 || 1-16 ||
|| 용랑전 || 1-29 ||
- django/AggregateFunction . . . . 4 matches
Django에서 기본적으로 제공하는 함수는 없다. 대신 order_by를 이용해서 최상위 레코드만 뽑는 방법을 사용할 수 있다.
Django에서 기본적으로 제공하는 함수는 없다. 원하는 레코드 집합을 얻어온 다음, python을 이용해서 구하는 방법을 사용할 수 있다.
- eXtensibleStylesheetLanguageTransformations . . . . 4 matches
XSLT를 잘 이용하는 곳의 하나로 feedburner를 뽑고 싶다. 한때 MS XSLT 구현 방법에 대해서 말도 많고 탈도 많았으나... 뭐 어쨋든 나름대로들 잘 사용하고 있는 듯 보임.
MSXML 을 이용해서 만들어진 XML을 HTML로 변환하여 얻어내는 것이 가능함. MSDN 참조
XML+CSS 로는 데이터의 바꾸는 것이 불가능하지만 XSLT를 이용할 경우 아예 XML 구조 자체를 변경하는 것이 가능하다. - [eternalbleu]
- html5/VA . . . . 4 matches
* HTML5를 지원하는 브라우저에서 사용할 수 있다.
== 사용 방법 ==
* 단순 재생뿐만아니라 JavaScript를 이용하여 정밀 제어
* 사용자 중심의 편리한 미디어 플레이어를 만들수 있다.
- html5/geolocation . . . . 4 matches
* 모바일 애플리케이션과 연동하여 사용
* 고급 레벨의 API - GPS를 이용하는지 네트워크 정보를 이용하는지는 알수 없으나
= 사용 방법 =
- html5/video&audio . . . . 4 matches
* HTML5를 지원하는 브라우저에서 사용할 수 있다.
== 사용 방법 ==
* 단순 재생뿐만아니라 JavaScript를 이용하여 정밀 제어
* 사용자 중심의 편리한 미디어 플레이어를 만들수 있다.
- html5/webSqlDatabase . . . . 4 matches
* 아래의 코드를 이용하면 지원 여부를 확인 할 수 있다.
* 일반적인 DB 사용법과 비슷하다. 열고, 수행하고, 닫고.
= 사용법 =
* 사용전에 반드시 데이터 베이스를 열어야 한다.
- html5practice . . . . 4 matches
* [html5practice/즐겨찾기목록만들기] : [html5/web-storage] 활용 - 이승한
* [html5practice/roundRect] : [html5/canvas] 활용 - 이승한
* [html5practice/계층형자료구조그리기] : [html5/canvas] 활용 - 이승한
* 각종 이미지 프로세싱 알고리즘 적용
- zyint . . . . 4 matches
|| LPU4.0 Limited Edition || . || ★★★★·|| 라이브앨범 -ㅅ- with랑 it's goin' down, step up 좋다 +ㅁ+ [[BR]]아무래도 팬클럽회원 전용 앨범이라; 노래 수가 많지 않아 아쉽긴 하다.||
|| 로봇 || ★★★ || 가족끼리 보면 좋을거같다. 뭐 내용이야 뻔하지만 그래도 해피엔딩이라 그런지 재밌다.. [[BR]]으흐흐흐.. 로봇이 3D그래픽으로 만들어졌는데 흠 어색한점은 전혀 없었던거 같다.. ||
|| 스텔스 || ★ || 폭탄 터지고 비행기 터지고 -ㄱ- 이런거 좋아하는 사람이면 좋아할거같은 영화지만................ 그다지 -ㅅ-[[BR]]내용도 엉성하고..........궁금증은.. 무인전투기에 왜 좌석이 있는것일까 -_-...[[BR]]별 반개도 아까운 영화. 시각적인 즐거움뿐, 스토리구성은 0점||
- 흐흐 오랜만에 ZP홈피 와서;; 이제 답변 다네요.. 전 만오천원짜리 닷컴도메인 쓰고 있는데 .... 조만간 닷넷 도메인 등록비용 오른다는 소문이 ㅇㅅㅇ;; - 태훈
- 결혼과가족 . . . . 4 matches
* 강사: 최보아(외모 출중에, 그 당시 신혼이라서 경험을 바탕으로 재밌는 강의를 할 거라는 소문을 듣고 수강), 성적이 훌륭한데 학점이 안나오는 과목이 있다. 단순 암기과목인 경우 그런 경우가 있다. 예를 들어 10명이 듣는데 3명이 절대 점수 99점이고 내가 98점이면 나는 98점이라는 우수한 점수에도 불구하고 B+이라는 점수를 받게되는 것이다. 나에게 결혼과 가족이 그런 과목이었다. 강사님과 친하게 지내고 레포트 점수도 우수했고 시험 점수도 우수했지만 B+이라는 점수를 받았다. 강사에 따라 다르겠지만 단순 학점이 목적이라면 이런 암기과목은 피해야겠다.(ex, 일본어,한자...) 나름대로 강의 내용은 흥미롭고 실생활에 유용한 내용이다. [성의과학]과 같이 들을시에는 약간의 씨너지효과도 있다. --[강희경]
* 희경이의 의견에 전적으로 동의한다. 나 같은 경우는 출석 한번도 안 빠졌고 시험은 보통, 리포트 점수는 별로(열심히 썼다고 생각하는데 분량에 있어 착오가 있었다)였는데 C+를 받았다. 들어두면 좋은 내용이긴 하나 그렇다고 추천할 정도는 아니다. 수업도 많고 강사도 많아 어떤 것을 듣느냐에 따라 차이가 많은 것 같다. --[곽세환]
- 공간박스 . . . . 4 matches
사용기좀 올려주세요. 장점, 단점 같은.
* 사용기 수준은 아니고, 장점으로는 가격이 저렴하면서 나무재질이라 인테리어를 고려할때도 좋다는 것을 들 수 있을 것 같습니다. 배치만 잘 해놓으면 다양한 사이즈의 책들을 수납할 수 있구요. 단점으로는 역시 나무재질의 DIY제품이라 견고성이 떨어진다는 점입니다. 각각의 부품의 맞물리는 형식이 아니라 나사를 이용해서 결합하는 방식이라 사용하다보면 그 결합부분이 망가지는 문제점이 있습니다(제것만 그럴지도 모릅니다)
- 그래픽스세미나/1주차 . . . . 4 matches
=== 내용 ===
* 그래픽스가 이용되는 분야
* 등 엄청 다양하게 사용된다.
* OpenGL을 이용하여 삼각형 그려오기
- 김동준/원맨쇼Report/08김홍기 . . . . 4 matches
# 스턴을 이용해 채널링을 깰 수 있음.
# 부엉이 - 인벤 1칸 확보, 애교, 용기
# 크립 - 중립 몬스터, 레벨업용.
*적절한 아이템의 사용
- 김태진 . . . . 4 matches
* ZeroPage 동아리 전용 건물을 만들어 동아리계의 구글(?) 만들기
* 30살이 되기 전에 교수가 되어 강의 첫시간 학생들과 같이 자리에 앉아있다 학생들이 '왜 교수님 안오시지?'하고 웅성거릴 때 "그럼 내가 한번 해볼까?"라고 하고 강의를 시작해보는 것. ~~ 이게 쉬워보이지만 빠른 졸업, 임용, 동안 세가지가 합쳐진 콤비네이션! ~~
* 조기졸업따위 사용하면 안되는 제도입니다. - [김태진]
* 조기졸업의 반대말은 뭐죠? - [장용운]
- 김희성 . . . . 4 matches
== 사용 언어 ==
* 리눅스 서버 이용 멀티 채팅
* 스레드 루틴 실행 시점이 제각각입니다. 때문에 스레드에 넘길 값은 스레드가 종료될 때까지 재사용이 안되도록 처리해줘야할듯합니다.(3/25)
* $MFT를 이용하여 모든 MFT entry를 뽑아내는데 성공하였습니다.
- 김희성/리눅스계정멀티채팅 . . . . 4 matches
int client_socket_array[25]; //클라이언트 소캣, 각 스레드 마다 자신의 번호에 해당하는 소캣 사용
//ex) 스레드가 사용 중인 소캣 == client_socket_array[스레드 번호]
//사용자가 이해하기 쉽도록 스레드 번호에 +1 값을 쓰도록 한다.
gotoxy(0,100);//gotoxy의 특징을 이용하여 화면을 한칸 올린다.
- 김희성/리눅스멀티채팅 . . . . 4 matches
int client_socket_array[25];//클라이언트 소캣, 각 스레드 마다 자신의 번호에 해당하는 소캣 사용
//ex) 스레드가 사용 중인 소캣 == client_socket_array[스레드 번호]
//사용자가 이해하기 쉽도록 스레드 번호에 +1 값을 쓰도록 한다.
gotoxy(0,100);//gotoxy의 특징을 이용하여 화면을 한칸 올린다.
- 다이어리효율적으로사용하는방법 . . . . 4 matches
[http://zine.media.daum.net/weekdonga/200612/26/weekdonga/v15180584.html 기사내용]
* 기사 내용중에서 목표를 구체적으로 다이어리에 적으라는 내용이 공감이 감. 개인적으로 놋북이 있는관계로 노트북에 있는 위키를 다이어리로 사용,,
- 덜덜덜 . . . . 4 matches
[http://165.194.17.15/pub/upload/CampusC.zip CampusC] // 오래된 내용이라 구질구질 하기도.
[덜덜덜/숙제제출페이지2] -- 3주부터 여기에 내주세용 ^^
- 출석부는 선생님전용입니다 ㅋㅋ 엠에스엔 주소빼고는 건들지 마욧!!! 교수님 출석부한번 건드려봐요 어떻게대나 ㅋ
▼▼▼▼▼Dev 사용법입니다! 꼭 보세요▼▼▼▼▼
- 데블스캠프2003/ToyProblems/Random . . . . 4 matches
랜덤함수의 사용법입니다.
#include <ctime> // time(0)의 사용을 위해 필요합니다.
rand() % a + b의 형식을 사용하면 b ~ a+b 사이의 숫자를 얻을 수 있습니다. ( 1da + b 라고도 하지요. )
b가 -일 경우에는 사용에 주의가 필요합니다..그럼=ㅂ=;; [이진훈]
- 데블스캠프2003/넷째날/후기 . . . . 4 matches
* OOP 는 알아듣기랑 변수를 선언하는게 힘들거 같지만,,, 그래도 잘 알게되면 쓸만한 것 같다.. OOP를 이용해서 프로그램을 짤 수 있었으면 좋겠다... 근데 이걸 언제 배울까... ㅡㅜ;; -- [손동일]
* 만력달력 짜서 기분이 좋았다. ㅋㅋ 그리고 OOP개념을 예시로 잘 설명해주어서 조금이나마 자알~ 이해했던것에 좋았다. 비록 소스짜는데 오래걸려서 졸았지만...ㅠㅠ 하지만 이 OOP를 활용하는 것이 중요하다는 것 알 수 있었다.[조재화]
* 말로만 OOP 설명들었을땐 정말 매력적이고 강력해서 OOP만 사용할 줄 알았는데 코딩하는 과정을 보니 너무 복잡한 것 같다. 많은 매서드를 사용하므로 매서드 명명에 유의해야겠다는 생각이 들었다. --황재선[aekae]
- 데블스캠프2003/다루어볼문제와관련세미나 . . . . 4 matches
* 저는 STL 같은 것은 그냥 할수 있을 만큼 사용할줄만 알면 되다고 생각합니다. Library 가 제공하는 것은 우리에게 좀더 고차원적인 사고에 전념할수 있는 것이 겠지요. 배열의 길이에 신경쓰지 않는 것만으로, C++에서 얼마나 무한한 사고가 가능할까요? 학교 교제는 C++을 가르치는 것이 아니라, C에다 어떻게 충돌을 일으키지 않고 문법을 추가시켜 C++이 되었는가를 가르치기 때문에 이런 기회는 필요 할것 같습니다. 아마 궁금한 사람은 STL의 소스를 보겠지요. 사족으로 STL은 OOP보다 Generic Programming의 관점에서 구현되 었습니다. --NeoCoin
* 도큐먼트나 튜토리얼을 이용하는 방법을 알려주는 것도 괜찮은 것 같습니다. 새내기들에게 MSDN 에서 검색을 하는 것을 알려줬더니 단지 영어라는 이유로 겁부터 먹고 사용을 못하더군요. 어떠한 주제를 던져주고 이러한 것들을 스스로 찾아서 사용하는 방법을 알려주는 것도 스스로 공부를 해 나가는데 있어서 좋은 경험이 되지 않을까 합니다. -- [상욱]
- 데블스캠프2004준비 . . . . 4 matches
* 소요비용 - pc실 관리 비용으로 쓴다.
* ToyProblem 가운데 해 볼 만한 것 - XOR 삼각형 (수학 공식 활용)
주어진 시간 동안 신제용의 기상시간 데이타로부터 가능하면 많은 "정보"를 얻어내기
- 데블스캠프2005/게임만들기/제작과정예제 . . . . 4 matches
우선 랜덤하게 블럭을 생성하기 위해서 start()함수에 srand((int)time(NULL));라고 적어서, 시간을 이용해서 랜덤하게 나오게 한 다음,
블럭을 랜덤하게 호출하는 함수를 만들자. 그리고 그 안에 rand()함수를 사용해서, 임의의 숫자를 얻은후 그 숫자에 맞추어 블럭을 지정하고
예제) 두번째 방법을 이용한 모습중 하나. -1은 왼쪽 0은 아래, 1은 오른쪽으로 움직인다는 뜻으로 인자를 넘겨받는다.
일반적으로 for문을 이용해서 한줄을 검색할 수 있으나, 같은 내려온 블럭이 같은색으로 처리되는 경우는, 더해서 숫자가 일치하는지를 볼 수도 있다.
- 데블스캠프2005/목요일후기 . . . . 4 matches
느낌: 오늘 내용은 실습도 많이하고, 신기한 내용도 많았고 재미있었던것 같다.
2. 회장님께서 용어 틀림.
1. 회장님 용어 틀리지 마세요 ^^;; 영어 공부????? ㅋ
- 데블스캠프2006/월요일 . . . . 4 matches
남상협,김정현,박영창,유용안,이규완,송수생
|| 송수생 || 김정현 || 유용안 || 남상협 || 이규완 || 박영창 ||
||am 02:00~03:00 || 검색 및 MSDN || 유용안 (01)||
위 일정시간에 배우는 예제 소스는 최종프로그램에서 다 사용 하여서 프로그램을 만든다.
- 데블스캠프2006/화요일/pointer . . . . 4 matches
[데블스캠프2006/화요일/pointer/문제1/성우용]
[데블스캠프2006/화요일/pointer/문제2/성우용]
[데블스캠프2006/화요일/pointer/문제3/성우용]
[데블스캠프2006/화요일/pointer/문제4/성우용]
- 데블스캠프2009/수요일 . . . . 4 matches
|| 이름 || 주제 || 내용 || 비고 ||
|| 이병윤 || RootKit || Windows의 구조와 IA32 의 구조를 간단하게 설명. 커널레벨로의 접근을 이용한 간단한 루트킷 작성 || ||
|| 김준석 || 객체 지향 프로그래밍(OOP) || OOP에 대한 개요 이해, 추상화에 대한 개념. OOP 기반의 프로그램 설계를 코드가 아닌 글로 새내기와 함께 해본다. || 문법은 잊고 의사코드를 사용한 설계실습을 해보자 ||
|| 06 || 김준석, 성우용, 송지원 ||
- 레밍즈프로젝트/연락 . . . . 4 matches
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를 다차원으로 쓰기엔 까다로운 부분이 많거든...)
4. CMyDouBuffDC는 생성되면 더블 버퍼링을 준비해주게 되. 그리고 이 녀석을 선언하고 파괴하는 곳은 View의 OnDraw뿐이야. 나머지는 모두 포인터또는 참조를 이용해서 넘겨 받아야 해
3. 맵 부분과 레밍에 대해서. CVector(없는 라이브러리)가 아니라 CArray라는 MS 제공 라이브러리를 사용해야 직렬화가 가능하대;;
- 레밍즈프로젝트/프로토타입 . . . . 4 matches
'''단순한 기술에 대한 사용이 아니라 재 사용 가능한 클래스를 만들어 보는게 핵심이다.'''
참고 : MFC에서는 [(zeropage)STL/String] 보다는 CString 클래스를 사용하는게 [(zeropage)MFC/Serialize]를 하는데 용이하다고 한다.
- 레밍즈프로젝트/프로토타입/SetBit . . . . 4 matches
= 용도 =
비트 단위로 저장되는 맵을 로드하기 위해서 사용한다.
프로그램에 사용되는 맵 타일의 형태가 확정된다면 [레밍즈프로젝트/프로토타입/MFC더블버퍼링]을 확장해 사용 할 것이다.
- 문자반대출력 . . . . 4 matches
* 파일 입출력 사용.
* C 에도 라이브러리로 문자열 반전 시켜주는 함수를 제공합니다. strrev()라는 함수를 사용하면 '\0'바로 전 글자부터 거꾸로 만들어주죠. 물론 ANSI 표준은 아니고 Semantec, Borland, Microsoft 에서 제공하는 컴파일러의 경우에 자체 라이브러리로 제공합니다. 이식성을 생각하지 않는 일반적인 코딩에서는 위에 나열한 컴파일러를 이용한다면 사용할 수 있습니다. - 도현
- 문제풀이/1회 . . . . 4 matches
1. 입력 3가지수를 받아서 if문을 이용하여 최대값 최소값을 출력하는 프로그램을 작성하세요. DeleteMe)스펙이 if문의 언급은 잘못된것 아닌가요?
2. 1 을 활용하여 10개의 입력중에 가장 최대, 최소 값을을 출력하는 프로그램을 작성하세요.
이런 경우를 개선하기 위해서 map 함수가 있는것입니다. 이를 Haskell에서 차용해와 문법에 내장시키고 있는 것이 List Comprehension 이고 차후 [http://www.python.org/peps/pep-0289.html Genrator Expression]으로 확장될 예정입니다. 그리고 print 와 ,혼용은 그리 추천하지 않습니다. print를 여러번 호출하는것과 동일한 효과라서, 좋은 컴퓨터에서도 눈에 뜨일만큼 처리 속도가 늦습니다. --NeoCoin
- 비행기게임 . . . . 4 matches
* 2인용 대결 모드. 상대편과 내가 일정한 시간후에 만난다.. 그 중간 과정에서 얼마나 많은 컴퓨터 적을 격추 했는지에 따라서 무기를 업그레이드 하거나 한다.
* 파이썬 디버그 사용 방법
암튼. 초반의 열정이 후반의 끈기로 이어지려면, 해당 일에 대한 좋은 방법들을 중간에 계속 궁리하고, 적용해봐야겠지. 개인적인 조언이라면, 초반에 너무 그래픽 등에 많이 신경쓰지 않는것이 낫다고 생각함. 일단은 전반적인 틀과 게임 엔진을 만든다는 기분으로 하고, 그 엔진이 자신이 원하는 아이디어를 수용할 수 있는가에 더 촛점을 맞추는게 낫지 않을까 함. 단, 생각은 전반적인 부분을 보되, 구현을 쉽게 하기 위해서는 구체적 예제 데이터를 가지고 작업하는것이 효율적이겠지. 그리고 그 예제 데이터를 기반으로 일종의 SpikeSolution식으로 구현을 한뒤, 그 구현된 프로그램을 보고 다시 코드를 작성하던지 또는 ["Refactoring"] 해서 일반화시키던지.(새로 짜도 얼마 시간 안걸림. 예상컨대, 아마 중반에 소스 한번 뒤집어주고 싶은 욕구가 날껄? 흐흐) --["1002"]
- 상협/감상 . . . . 4 matches
|| [여섯색깔모자] || 에드워드 드 보노 || 1 ||4/24 ~ 5/1 || 이책은 PowerReading 처럼 활용정도에 따라서 가치가 엄청 달라질거 같다. ||
|| [Refactoring] || 마틴파울러 || 1 || 굿 || 괜찮은 책이다. 아직 내가 이해와 적용을 제대로 못해서 아쉽다 ||
|| [TestDrivenDevelopmentByExample] || 켄트벡 || 1 || 굿 || 아직 제대로 이해와 적용은 못하겠다. 그래도 좋은책~ ||
* 난 원래 영화 잘 안보는 스타일 이지만, 마음도 심난하고 해서 컴퓨터로 이 영화를 보게 되었다. 처음 부분에서는 좀 황당한 재미가 있었고, 중간 부분으로 가면서 지루해져서 그만 볼까 하는 생각도 했지만, 좀 더 보다 보니깐 재밌어져서 결국 끝까지 봤다. 이 영화를 보고 느낀점은... 음.. 지금 내가 보고 있는 세계도 혹시 환상은 아닐까 하는. ㅡㅡ;; 메트릭스도 생각나고.. 그리고 영화속 주인공이 불쌍해 보였다. 뭐 비록 천재인거 같지만 그렇게 사는것은 별로 유쾌한 일은 아닐거다. 또한 천재적인 사람들은 사회에 잘 적응 못하는건 아닐까 하는 생각도 해본다. 한때 나도 머리가 천재적으로 좋았다면 좋겠다고 생각도 해보았지만, 그땐 이런 생각을 했었다. 머리가 너무 좋다면 노력해서 뭔가를 해내는 그런 쾌감을 얻을 기회가 적을 수도 있고, 주위로부터 한사람의 인격체로 인정되기 보다는 하나의 이용해 먹을 도구로 인식되지는 않을까 하는 생각도 해본다.(그사람 == 머리, 이런 이미지가 생기면 그 사람의 다른 모습은 전혀 관심밖의 일이 될테니..)
- 새싹-날다람쥐 6월 10일 . . . . 4 matches
= FREE 의 사용법 =
free(d); 를 이용해서 지금 실행중인 프로그램에 종속되어있는 sizeof(char) * temp만큼의 메모리를 OS에 다시 반환시킨다.
이 free는 가장 하위 포인터에만 사용이 가능하다. 따라서 array를 모두 free시키려면 for문을 돌려서 free(array[i])와 같이 모두 없애준 후에 free(array);를 해야 한다.
나중에 거대 프로젝트(오랜시간동안 켜 놓아야 하는 게임 같은 경우)에서는 메모리 반환을 하지 않으면 컴퓨터가 느려지고 가용메모리가 없어져서 메모리를 요청했을 때 메모리가 부족해 프로그램을 다시 껐다 켜야 하는 상황이 발생할 수 있다.
- 새싹C스터디2005/선생님페이지 . . . . 4 matches
C에서 공부해 보아야 할 내용들을 이야기 해 보았으면 좋겠습니다. 필요한 내용이 있다면 누구나 써주시고, 순서가 뒤바뀐것이 있다면 바꾸어 주세요.
* [Leonardong]의 빠른코딩을 위해서 의식적으로 마우스를 사용하지 않는 습관을 기르는 것도 참 좋겠다고 생각합니다.
* 메신저를 잘 활용하는 방법이 없을까요??
- 새싹교실/2011/쉬운것같지만쉬운반/2011.3.15 . . . . 4 matches
= 공부 내용 =
|| 새싹 || 장용운 || O ||
* 오늘 2시에 6피에서 새싹교실을 처음했다. 박성현 선생님께서 위키 편집법을 가르쳐주셨다. 쫌만 더 해보면 금방 익숙해질것 같다. 앞으로 새싹교실에서 더 유용한걸 많이 배우게 되겠지??:) - [송치완]
* 오늘 새싹교실에서 6피에서 위키의 작성법에 대해서 배워보앗다. 생각한 것보다는 상당히 쉬운 편인 것 같았다. 위키를 작성하는 맛(?)을 알게 되었다. 나중엔 직접 위키 페이지를 작성해봐야겠다. - [장용운]
- 새싹교실/2011/씨언어발전/2회차 . . . . 4 matches
== 수업내용 ==
간단하게 bongbong 커리큘럼에 있는 예제를 이용하며 기본 입출력함수의 사용법에대해 수업했습니다.
외우라는 식으로 사용법을 배우고 나중에 좀더 자세히 알 수 있도록 하려고 생각중입니다.
- 새싹교실/2012/아무거나 . . . . 4 matches
* 반드시 ZeroWiki에 작성해주세요. 하위 페이지를 만드는 것도 허용합니다.
* 여러분들이 배운 내용을 정리해주세요. 학습효과가 더 커집니다.
* 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
=== 수업내용 ===
- 새싹교실/2012/아무거나/2회차 . . . . 4 matches
[http://wiki.zeropage.org/wiki.php/%EC%83%88%EC%8B%B9%EA%B5%90%EC%8B%A4/2012/%EC%95%84%EB%AC%B4%EA%B1%B0%EB%82%98/2%ED%9A%8C%EC%B0%A8?action=edit 2회차 내용 고치기]
=== 수업내용 ===
* 공백을 출력하는 반복문과 *을 출력하는 반복문 2개를 사용하여 한 줄을 만든다.
* 각 줄에서 공백을 출력하는 횟수와 *을 출력하는 횟수의 규칙을 찾아내어 식을 만들고 이를 조건식으로 활용한다.
- 새싹교실/2012/앞부분만본반 . . . . 4 matches
E.R.O를 하면서 발생할 수 있는 실수 몇 가지를 소개하고 , 그에 대한 주의를 당부함.그리고 이것을 예제에 적용해 보았음.
문제 2. 본인의 이름, 주소, 그리고 전화번호를 모니터에 출력하는 프로그램을 작성해보자.(\n을 사용)
문제 1 다음의 출력결과를 보이도록 예제를 작성해보자. 출력되는 숫자들(25, 345, 9393)은 서식문자 %d를 이용하여 출력하자.
문제 2 다음의 출력결과를 보이도록 예제를 작성해보자. 출력되는 숫자들은 서식문자 %d를 사용해서 출력을 해보자.
- 새싹교실/2012/열반/120319 . . . . 4 matches
= 수업 내용 =
= 다음 수업에 필요한 내용 =
* 생략 가능한 내용 : 삼항연산자(?:)
* 재귀함수를 이용한 반복문을 먼저 설명하려 합니다.
- 수업평가 . . . . 4 matches
컴퓨터 공학과 전공(또는 타과 전공, 교양 등) 수업에 대한 무기명 평가. 유용성, 중요성, 수업 이후 자신에게 미친 영향, 수업의 질 등의 측면에서.
물론 해에 따라 교수가 바뀌고, 교재가 바뀌고 강의의 내용이 조금씩 다를 수 있다. 여기서는 특정 수업을 평가한다기보다, 중앙대학교 컴퓨터 공학과의 일반적 교육 수준과 학생들의 과목별 중요도에 대한 생각을 평균해 보는 데에서 의미를 찾고자 한다.
*유용성 : 이 과목의 구체적 지식이 수강/졸업 이후 자신의 삶에서 '''실질적'''/'''직접적'''으로 얼마나 많은 도움이 되었나
||'''과목''' ||중요도||유용성||영향||수업의 질||'''총점'''||'''투표자수'''||'''총점/투표자수'''||
- 스터디지원 . . . . 4 matches
* ~~제로페이지 내에서 진행되는 스터디와 프로젝트에 대해, 한 달 한도 금액(인당 1만원) 내에서 식비로 사용하고 월말에 정산하는 방식입니다.~~
* ~~회식비 사용 방안(스터디 시 다과 구입, 회식 등)은 스터디 구성원끼리 합의하여 결정하시기 바랍니다.~~
* 물품 지원과 회식 지원에 관한 이야기는 이미 정모를 통해서 여러번 공지한 내용들을 정리한 것입니다. - [김민재]
* [정모/2016.3.30]에서 스터디 및 프로젝트 지원금과 관련된 내용 정리가 필요하다고 해서 recall함. - [김민재]
- 시간맞추기 . . . . 4 matches
* 무한루프 for 사용
* time() 라이브러리 함수 사용.
* kbhit()함수 사용. - 사용자가 아무키나 눌렀는지 안눌렀는지 알리는 함수.
- 시작이반 . . . . 4 matches
'발명광'이라 불리는 프랭클린은, 번개가 칠 때 연을 날리는 실험을 함으로써 번개가 전기임을 증명하여 피뢰침을 발명한 것으로 유명하다. 어느 날 그는 또 하나의 발명을 하여 친구 집에 뛰어가 자랑스럽게 그것을 보여 주었다. 그런데 계속되는 그의 발명에 약간 싫증이 난 친구는 "도대체 그렇게 유치한 것을 만드는게 뭐가 대단하며, 무슨 소용이 있나?" 라고 말했다. 그러자 프랭클린은 옆에 누워 있던 갓난아이를 가리키며 이렇게 반문하였다. "그렇다면 이 아기는 무슨 쓸 데가 있는가?"
창조라는 것이 출발점에서 모두 유치하다는 것이다. 다시 말해서 창조의 원형은 아기와 같고 그 것이 충분히 성장해야만 비로소 이용가치가 밝혀지는 것이다. 프랭클린은 창조의 과정이 아기를 키워가는 것과 다름없다고 말하고 있는 것이다.
'''모든 창조(발명)에는 가능성이 내재 되어있다'''라는 것을 말하기 위해 인용한 것 같은데 '''일단 만들고 그 용도를 찾아본다'''라고 잘못 이해될 소지가 있습니다.. -[강희경]
- 식인종과선교사문제/변형진 . . . . 4 matches
이 문제를 푸는데 흔히 이용되는 Backtracking 기법을 사용하지 않고 구현하는 방법이 없을까 해서, Case-by-case로 최소한의 상황에 대한 처리 방법을 지정해보았다.
가능한 모든 cases를 분석한 결과 우로 건너기와 좌로 건너기에서 각각 상황에 따라 3가지 건너기 방법이 사용될 수 있었다.
'''그러나 여기에서 사용한 방법은 모든 cases를 사람이 직접 조건 별로 분류해 주어야 하므로 결코 좋은 방법이 아니다.'''
- 쓰레드에관한잡담 . . . . 4 matches
1. real-time process - 1.hard real-time(산업용), 2.soft real-time(vedio decoder 등)
thread를 사용할때 중요한것이 동기화인데, context switch를 할 때 데이터가 저장이 안된 상태에서 다른 thread로 우선순위가 넘어가면 치명적인 오류가 나게된다.
Linux에서 멀티 프로세스 개념인 fork()는 내부적으로 do_fork()란 Kernel 함수를 호출하며, do_fork()는 내부적으로 user thread인 POSIX기반의 Mutex를 사용한다.
... 그리고... 한가지... POSIX thread를 사용하여 많은 양의 thread를 생성하면 동기화를 주목해야한다.
- 아동언어습득이론 . . . . 4 matches
= 상호 작용주의 =
어린이는 외부 환경과 상호작용하며 지식을 구성, 언어발달
성인과 상호작용이 절대적으로 필요하다.
상호작용론
- 여섯색깔모자 . . . . 4 matches
== 내용 ==
Blue - 파랑은 냉철합니다. 또 모든 만물의 위에 있는 하늘의 색깔이기도 하죠. 따라서 파란 모자는 생각하는 순서를 조직하는 일, 그리고 다른 모자들의 사용을 통제하는 일과 관련이 있습니다.
평소에 의견을 교환 하다가 보면 어느새 자신의 자존심을 지키려는 논쟁 으로 변하게 되는 경우가 많다. 이 논쟁이란게 시간은 시간대로 잡아 먹고, 각자에게 한가지 생각에만 편향되게 하고(자신이 주장하는 의견), 그 편향된 생각을 뒷받침 하고자 하는 생각들만 하게 만드는 아주 좋지 못한 결과에 이르게 되는 경우가 많다. 시간은 시간대로 엄청 잡아 먹고... 이에 대해서 여섯 색깔 모자의 방법은 굉장히 괜찮을거 같다. 나중에 함 써먹어 봐야 겠다. 인상 깊은 부분은 회의를 통해서 지도를 만들어 나간후 나중에 선택한다는 내용이다. 보통 회의가 흐르기 쉬운 방향은 각자 주장을 하고 그에 뒷받침 되는것을 말하는 식인데, 이것보다 회의를 통해서 같이 머리를 맞대서 지도를 만든후 나중에 그 지도를 보고 같이 올바른 길로 가는 이책의 방식이 여러사람의 지혜를 모을수 있는 더 좋은 방법이라고 생각한다. 이 책도 PowerReading 처럼 잘 활용 해보느냐 해보지 않느냐에 따라서 엄청난 가치를 자신에게 줄 수 도 있고, 아무런 가치도 주지 않을 수 있다고 생각한다. - [상협]
- 우리가나아갈방향 . . . . 4 matches
암튼. 누차 강조하지만. 공부하기위해 모이지 않기를. 공부한 내용을 가지고 모일 수 있기를.. 경쟁과 협동이 자신들 이익과의 같은 방향노선속에서 적절하게 싹틀수 있기를. 학술연구회라는 거창한 이름이 아니더라도, 하고자 하는 욕망이 있다면 그 길은 저절로 열리는 것임을. '빛이 있으라' 라는 한마디가 세상에 빛을 열어놓은 것처럼. 모임 자체가 억지로 만들어주는 것이 아닌, 자신들이 만들어가야 할 것임을.
또 한가지는 복학생의 수용을 어떻게든 이루었으면 좋겠다는 생각을 한다. 어때 석천 올해 홍보라도 할까? --상민
''암튼. 누차 강조하지만. 공부하기위해 모이지 않기를. 공부한 내용을 가지고 모일 수 있기를.. --석천''
이번 방학에도 어김없이 프로젝트나 스터디가 열리고 있습니다. 프로그래밍 언어를 좀더 잘 다루려고, 공부나 프로젝트를 같이 해보는 경험을 쌓으려고, 자신이 공부해서 알고 있는 내용을 다른 사람에게 설명해주려고, 아니면 그냥 재미로 참여하는 분들이 많으리라 생각합니다. 그러는 가운데서 지식과 경험을 쌓을 수 있기에 제로페이지 활동은 현재로도 분명 값어치가 있습니다.
- 위시리스트/구상 . . . . 4 matches
* 오늘 의견을 들어보니, 그 동안 스터디와 프로젝트 지원과 관련된 내용들이 많이 흩어진 것 같아서 모아보고자 페이지를 개설
* 회원들의 '''스터디와 프로젝트에 필요한 용도'''로 필요한 물품을 지원해 주는 제도
* 그 동안에는 트렐로나 위키, 홈페이지 등 흩어져 있어서, 누구든 볼 수 있고 작성하기 쉽게 하기 위하여 원칙적으로 '''위키에''' 필요한 물품을, '''명확한 용도'''와 함께 작성.
* 지원의 우선 순위? 용도와 필요성으로 판단하여, 우선적으로 필요하다고 생각되는 것에 상대적으로 높은 순위를 부여합니다. 따라서 필요성을 명확하게 작성하지 않은 경우, 우선순위가 낮아질 수 있습니다. - [김민재]
- 유혹하는글쓰기 . . . . 4 matches
프로그래밍에 적용시켜도 좋은 교훈도 얻을 수 있었다. 워낙 글쓰기와 프로그래밍이 비슷하기 때문이리라. 나에게는 까다로운 작업을 하다가 포기한 경험이 있기에 작가의 말이 쓰디 쓴 약이 될 것 같다. 슬쩍 피해갈 수 없다. 지름길도 없다.
* 기억에 남는 것은 인위적으로 플롯을 만들어서 이렇게 해야지 하면서 창작을 하는것이 아니라, 작가 자신도 쓰면서 앞날을 알 수 없다고 한다. 뭔가 와 닿는게 있다. 그리고 자신이 잘 아는 내용(배경)에 대해서 써야 좋다는 것도 알았다.
* 그리고 무엇보다 중요한 것 !!! -> 일단 초고를 완성하고 나서 한 6주 정도 안 보이는곳에 놓고 안보고 있다가 6주정도 후에 다시 봐서 수정 작업을 하는게 정말 좋다고 한다. 이것은 어떻게 생각하면 [포토리딩]에 나오는 내용과 일면 비슷한 부분이 있다. 이렇게 안 보고 있는 사이에 무의식이 작용을 하나 보다.
- 인수/Assignment . . . . 4 matches
|| 과목 || Assign date || Due date || 내용 || 비고 ||
|| 과목 || Assign date || Due date || 내용 || 비고 || Submit? ||
|| 정보표준화 || 9/13 || 9/19.17시 || 수업 내용 정리 || || O ||
|| 정표 || . || 11/8 || 내용 요약 || || X ||
- 임인택/삽질 . . . . 4 matches
* DirectDraw 를 사용하려다가 계속 정의되지 않은 타입이라 나옴 - DX SDk 인클루드 순서를 맨 위로, 라이브러리도 마찬가지.
* C++ 에서 SingletonPattern 을 적용했는데.. 소멸자가 호출되지 않는것 같다.. 프로그램 종료시에 인스턴스를 강제로 삭제하였다. - 타이머 루틴에서 instance() 를 얻어왔는데. 타이머는 KillTimer 직후에 소멸되지 않는다.. 이로 인해.. 인스턴스가 삭제 된 후에 다시 생성되었었다...
JavaServerPage에서 bean 클래스를 사용할때 클래스 생성자에는 전달인자를 사용할 수 없다.
- 전문가되기세미나 . . . . 4 matches
* 최소 며칠에 한번은 다른 팀원의 대화에서 뭔가 나에게 유용한 것을 엿듣는가?
* 시스템의 사용에 대해 질문이 생긴 시점부터 전문 사용자가 답할때까지 평균 3일 이하가 걸리는가?
* 프로그래머가 이 프로그램을 사용하는 유저로부터 바로 피드백을 받을수 있나?
- 정규표현식/스터디/반복찾기 . . . . 4 matches
게으른 수량자란?? 한번 걸쳐진 범위는 제외하고 검색해준다. 그러므로 이걸 사용하면 과하게 일치하는 상황을 방지할수 있다.
이제 슬슬 정규표현식의 진짜 의미가 들어난다. 정규 표현 패턴을 사용하여 반복찾기를 하면 이제 까지 배워온 것을 이용해 구간으로 정확하게 원하는 문자를 찾아낼수 있을것이다.
다음을 이용한다면 반복찾기 정규표현식은 중복도 방지할수있는 강력한 도구로 만들수 있을것이다
- 정모/2002.7.11 . . . . 4 matches
1. zeropage.org 도메인 사용료, 소유
이선우가 알고 있기로 현재 zeropage.org 도메인은 ["구근"]이 가지고 있고, 도메인 이용료 또한 직접 내고 있는것으로 알고 있습니다. (이 이야기가 맞다면) 제로페이지는 개인에게 비용을 부담시키는 현재의 상황을 해결해주어야 합니다. 그리고, 도메인 또한 단체가 소유할 수 있는지는 모르겠군요(아는분?). 소유할 수 있다면, 차후 관리는 제로페이지에서 직접 하는게 좋지 않을까요?
* Instance MP3 - 한번만 사용하는 MP3 만들기
- 정모/2007.1.19 . . . . 4 matches
== 회의 내용 ==
* 적당한 비용? - 2만원이하
* MT내용은? 술? 관광?
* 사이트 왼쪽 메뉴중에 잘 사용하지 않는 서버 게시판 등등을 삭제.
- 정모/2007.1.29 . . . . 4 matches
내용 : 1. 기타를 활용한 놀이...(무드가 잡히면 먼가 좋은 얘기가 나올수 있다.)
예) 여러명이 한권의 책에서 각각 자신의 부분을 맡아서 읽고 다른사람들에게 내용을 이야기 해준다.
* 학회비를 MT비용 모자란 사람에게 무이자로 빌려준다.
- 정모/2007.3.13 . . . . 4 matches
- 알릴내용 :
- 조금만 준비해 가고 애들이 모르는 내용을 피드백 받아서 가르쳐주는 식으로 흥미유발, ZeroPager를 고수로 인식하도록 만듬
- 해야할 일 : 동문서버에 개시, 대자보, 홍보지(A4용지에 작성해서 붙이고 다님),
* 오늘 회의 내용 간략정리
- 정모/2011.9.20 . . . . 4 matches
* 참가자 : [김수경], [서지혜], [강소현], [김태진], [고한종], [신기호], [황현], [윤종하], [송치완], [장용운]...
* 기사라고 해서 뉴스를 말하는 건 아닌데 ㅋㅋㅋ 소식같은 걸 외부 기사로 섭외하려는 건 아니고... 자기가 관심있는 분야에 대해 쓴 내용이 제일 좋지. - [김수경]
* 오랜만에 처음부터 끝까지 정모를 참여한 시간이었습니다. 몇몇 분들이 오지 않으셔서 좀 썰렁했던 것 같네요. 제로페이지에서 진행하는 스터디에 참여하고 싶은 생각도 있었는데 아무래도 시간이 부족할 것 같아서 포기했네요 ㅠㅠ; OMS 대상자가 될 뻔한 위험이 있었네요 살떨려요.. 오늘 OMS를 보고 집에 가는 길에 책을 질렀습니다. '독서'용은 아니지만 저에게 도움이 될 것 같네요. 그런데... 으앙 제가 참가자가 아니라니! - [장용운]
- 정모/2012.11.19 . . . . 4 matches
* 학과 자산이지만 zeropage가 계속해서 사용
* 정모를 준비할 때 써놨던 내용
위키 사용
- 여기가 시끄러우니까 PC실에 조용히 하라고 할수가 엄서.....
- 정모/2012.2.17 . . . . 4 matches
* 대자보에 붙일 내용
* 프린터의 과다사용은 금물!! 종이가 끼지 않게 새 종이만 사용해주세요.
* 이승한 선배의 세미나와 총체적난.. 아니 송지원 학우가 일용할 양식을 들고 옵니다(?).
- 정모/2012.9.10 . . . . 4 matches
* 작은자바이야기 - 방학 후 첫시간, 지금까지 한 내용 다시 훑어보기, JUnit에서 Runner를 이용해서 테스팅 환경 설정하기.
* Creative Club - 지난 주 대화 내용: 제로페이지 돈 잘 쓰는 방법, 이번 주 대화할 내용: 새로운 회원을 많이 오게 하는 방법. 이런 주제로 수다를 떠는 스터디.
- 정모/2013.3.18 . . . . 4 matches
* Q : 정확한 사용자의 수요는 고려하셨는지? A : 그래서 협소하게 갑니다.
* [이병윤] 학우의 기계 학습을 이용한 Segmentation
* 자세한 내용은 (아마도) zeropage.org 참조.
* (의견)가입서를 쓰는 것 자체가 소속감을 불러 일으키므로 있었으면 좋겠다. (Off-line 용)
- 정모/2013.3.25 . . . . 4 matches
* [김홍기] 학우의 문서 내용으로 파일 찾는 프로그램 소개.
* 튜티들도 위키를 사용할 수 있게 위키 사용법을 알려 주세요.
* 방식은 1~2시간 인강 후 책 보고 정리 및 공부 등 여러가지 활용
- 정모/2013.5.13 . . . . 4 matches
* 위에 영준이 발표에 대해서 그렇다고 생각되는 말도 있고 나랑은 생각이 다른 것도 있는 것 같아서 잠깐 내 생각도 적어 봄. 개인적인 생각으로 영준이 발표가 유익하고 도움이 되는 내용이 많았던 것은 동의하지만 그게 '좋은 발표'였냐고 물어보면 그건 조금 아니지 않을까 싶은 생각이 든다... ;;; OMS가 발표를 들어주는 사람들이 있기 때문에 의미가 있는 것도 맞는 말이고 ZP 회원들이 우호적인 청중인 건 동의하지만 그렇다고 ZP 회원들이 모든 주제에 대해서 집중하고 듣는 청중은 아닐테니까. ZP회원이든 누구든 발표가 길어지거나 어려운 내용이거나 흥미가 안 가는 내용이거나 하면 주의가 흩어지는 건 당연하지 않을까. 물론 조금 더 집중해서 들어주면 좋았을 수는 있지만 청중의 주의를 끄는 것은 발표자의 일이기도 하니까. - [서민관]
* OMS 비록 졸긴 했지만 유용한 게 많았던 것 같아요ㅎㅎ 개인적으론 유익해서 좋았어요. - [김남규]
- 정모/2013.7.29 . . . . 4 matches
= 주요 내용 =
* 위키 등을 통해 스터디/프로젝트나 정모 등의 내용을 공유하고, 후기와 의견을 다는 피드백이 이루어지는 것에 대해 많은 관심을 받았습니다. - [김민재]
* 제안은, 한 달 1회 지원이 아닌, 한 달 한도 금액(기존처럼 인원 수로 책정) 내에서 사용하고 월말에 정산하는 방식으로 개정하는 것
* 일반적으로, 매 스터디 진행시에 다과를 구입해서 먹는 경우가 많기 때문이며, 1회에 한해서 전액을 사용하는 것이 효율적이지 못하다는 의견이 있기 때문
- 정모/2013.7.8 . . . . 4 matches
= 주요 내용 =
* code formatting에 대한 내용을 공부. 프로젝트에 대한 것을 하나 정해서 그걸 리펙토링 하는 방향으로 진행 방향정함.
* 충북을 가는게 쉬운 일은 아닐텐데..(지하철이 없으니 사실상 강원도와 같다는.) + 주중에 간다면 불참자도 꽤 생기겠네요. + 지극히 개인적인 의견이지만 왠지 지금 정모 내용만 봐선 보드게임하러 엠티가자는 느낌이 강하다는... 잘 준비되면 좋겠네요. 1주일 남았는데. -[김태진]
* 내용에 오해의 소지가 있는 것 같아서 저 부분(MT 계획) 이야기를 조금 다시 하자면, 저번 MT 때는 낮 시간에 뚜렷한 계획이나 일정이 없어서 시간을 좀 늘어지게 보낸 측면이 있다. 그러니 이번에는 조금 더 구체적인 계획을 세워서 가면 좋겠다. 이런 얘기였습니다. 그래서 혁준 선배가 놀 거면 대충 계획 없이 놀지 말고 보드 게임을 할 건지, 다른 뭔가를 하면서 놀 건지, 물건들을 빌리면 어떻게 할 건지 좀 일정을 잘 정하자는 얘기를 하셨는데 해당 부분만 적혀 있어서 뭔가 놀기만 하러 가는 MT 처럼 보일 수는 있네요. 수정하는 게 나을지도. - [서민관]
- 졸업논문 . . . . 4 matches
* [졸업논문/본론] - 내용을 보충하고 나눌 것
* [졸업논문/참고문헌] - 참고 문헌의 열거 순서는 인용한 순서 혹은 첫 번째 저자의 이름의 사전순으로
* 참고 문헌을 인용할 시에는 해당 참고 문헌의 번호를 꺾쇠 괄호(bracket)안에 명시한다. (예: [1])
[논문잘쓰는방법]( 움베르트 에코) 을 이전에 읽었었다. 하지만 지금 상황에는 적용할 수 없잖아!
- 지금그때2004/여섯색깔모자20040331 . . . . 4 matches
흰색 : 실제, 사실내용이나 객관적 자료 설명.
검정 : 신청서 용지를 돌리면 홍보횟수가 적어도 되지 않을까?
노랑 : 동문서버에 가입 안한 사람은 동문서버게시판에 홍보한 내용을 모를 수 있다. 더 적극성을 발휘할 수 있다.
그리고, 무엇이건 다 시도해보라. 전부다 플러스 요소로 작용한다.
- 지금그때2004/토론20040401 . . . . 4 matches
* 7:50 - 8:00 : 쉬는 시간. OST용 자리 배치
* 9:25 - 9:35 : 토론내용 정리시간, 수가의견
* 9:35 - 9:50 : 내용 발표, 끝나고 정리하는 말(발표), 마지막 코멘트
* 강의실 : 4152로 변경. 앞 시간 수업으로 7:00(or 6:50)부터 사용 가능.
- 지금그때2004/패널토의질문지 . . . . 4 matches
* 마지막으로 놀라운 경험을 한 때? 경험의 내용?
질문을 할때 사회자의 말투라고 할까요. 내용은 위의 질문내용으로 할 수 있지만 질문접근방법에 대해서도 신경쓰면 더 좋은 답을 얻을 수 있지 않을까 합니다. 그러한 점에서 볼때 [질문의힘] 의 후반부에 나오는 인터뷰들의 예를 참고해볼만 하다 생각합니다.
의 내용에 대해서는
- 지영민/ㅇㅈㅎ게임 . . . . 4 matches
puts("나(은)는 몸통박치기!!를 사용했다.");Sleep(TURN_GAP);
puts("나(은)는 튀어오르기!!를 사용했다.");Sleep(TURN_GAP);
puts("나(은)는 단단해지기!!를 사용했다.");Sleep(TURN_GAP);
puts("나(은)는 수강취소를 사용했다!");Sleep(TURN_GAP);
- 최소정수의합 . . . . 4 matches
* while이나 do ~ while을 사용.
- 이거.. 꼭 이 조건을 만족해야만 하는건지.. 루프를 사용하면 꼭 while 이나 do .. while 을..? for 는 안되고요..? 그럼 for loop 가 없는 언어로는.. 못푸는건가.. -_-. 글고 루프를 쓰지 않으면 안되는건가요..? ^^; - [아무개]
- loop를 쓰는 방법 말고 부등식을 사용하는게 젤 간단할것 같아서 그렇게 했는데, 문제에서 제시된 조건을 반드시 만족해야 하는가 해서요 ㅠㅠ - 임인택
- 괜찮습니다. 사용하는 언어에서 만족될 함수 등등..을 써서 알아서 프로그래밍 하시면 됩니다. 하지만 처리조건을 만족할 수 있는 언어는 그렇게 프로그래밍 해주시길 바랍니다.
- 카고컬트과학 . . . . 4 matches
미국의 물리학자 리처드 파인만이 만든 용어(-_-a ?). 기존의 방법(?)들을 그대로 따라하거나, 현상의 여러 면을 바라보지 못하는 과학을 일컫는다. NoSmok:파인만씨농담도잘하시네 에 다음과 같은 내용이 있다
* 가령, 어떤 물리 실험을 한다고 했을 때, 그 실험을 하는 과학자들은 이전에 다른 과학자들이 실험한 내용을 기초로 하여 새로운 가설을 만들려고 한다. 하지만 그 실험이 잘못되었을 경우에는 자신의 가설은 허무맹랑한것이 되고 만다.
쩝.. 이걸보고.. 내가 남태평양에서 수송선이 오기를 기다리는 사람들은 아닌가.. 하는 생각을 하였다. 동전의 한쪽 면만을 보려했고, 지금까지 내가 했던 생각들에 대해서 맞다고만 생각하였다. ''내 생각중에 이러이러한 것은 일리가 있다.. 하지만 저러저러한 것들은 어떻게 생각해야 할까. 어떤 관점에서 바라보아야 하는거지?'' 와 같은 생각을 몇번이나 했는지. 사물과 현상의 이면을 (항상) 바라보는 습관을 들여야겠다. (음.. 그리고 생각해보니 고등학교때 배웠던 ~~의 우상 과도 비슷한 내용인것 같네요. 어떤 철학자가 말한건데 이름은 기억이 안나고..-_-) - 임인택
- 컴퓨터가했다 . . . . 4 matches
["데기"]는 종종 무의식적으로 컴퓨터가 했다는 말을 사용했다. ''"주가 동향 분석은 컴퓨터가 해준다구."'', ''"이 그림은 컴퓨터가 그린거야."''... 그런데 그런 일들을 정말 컴퓨터가 했다고 말할 수 있을까. ''"이 그림은 내 붓이 그린거야."''라고 말하진 않는다. 사람이 한것이다. ["컴퓨터가했다"]고 말할 수 있는 것들이 있을까. 전자상거래 시간에 마련된 특강에서 '''''컴퓨터를 주체가 아닌 도구로 보라'''''는 말씀을 해주신 초청 강사님께 감사드린다.
''청소를 정말 ["데기"]가 했다고 말할 수 있을까.'' (위에서 인용 :) )
강사가 이야기했던 내용은, ''컴퓨터에 종속되지 말아라'' 정도로 해석해 볼 수 있을듯 합니다.
''A씨가 청소를 했다고 말할 수 있는 것은 손을 떼는 순간 때문이 아닌것 같습니다. 컴퓨터와 붓보다 컴퓨터와 사람간의 차이가 훨씬 크기 때문이 아닐까요. 컴퓨터와 붓은 사람이 사용하는 도구지만 사람은 주체니까요. A씨는 청소를 해야할지 말아야할지 스스로 결정할 수 있습니다. ^^ --["이덕준"]''
- 큐와 스택/문원명 . . . . 4 matches
여기서 의문점은 string헤더 파일을 include하지 않고 배열을 char *형으로 하고 #1,#2,#3을 strcpy를 사용하여 고치고 실행한 후,
// 것으로 보입니다. 경험상 debug 모드에서는 어느정도 수용가능한
그리고 위키의 사용 방법이나, 철학들을 [도움말]을 기점으로 따라가서 읽어보시면 알수 있습니다. 그러나 단발성 게시판에 익숙한 많은 분들이 쏟아지는 정보에 두드러기가 날지도 모르겠군요. ^^;; 위는 그중 필요한 링크 입니다. --NeoCoin
ps. 초반에 데블스 캠프를 대비한 ZeroWiki의 사용 방법에 대한 정책이 부재했던것 같습니다. 하지만, 이 자체가 즐거운 학습의 기회가 될수 있을 것 같습니다.
- 탈무드 . . . . 4 matches
* 이책은 여러모로 참 유익한 책이다. 나에게 지혜로 발전할 수 있는 지식을 많이 주었다. 이 지식이 나의 지혜가 되기 위해서 실 생활에 활용하면서 참 의미를 알아야 겠다. 이책에서 와 닿는 내용은 '성공의 절반은 인내다'와 친절과 겸하(겸손)가 중요하다는 내용, 시간이 돈보다 중요하다는 내용등이다.
- 토이/숫자뒤집기/김정현 . . . . 4 matches
4.제일 뻘짓;; Arrays의 소트 함수를 이용. 배보다 배꼽이..
6.String class의 기능을 활용
8.스택을 이용
9. Collections 클래스를 이용
- 허아영/C코딩연습 . . . . 4 matches
zp숙제 => ''숙제용''이라고 표기
5월 3일 ''숙제용'' (devC++로)
문제1. 로또 복권의 6자리 수를 랜덤하게 생성하데, 사용자가 발생 횟수를 선택할 수 있도록 하시오. 예를 들면, 초기 화면에서 사용자가 5를 입력하면 랜덤 수 6개를 5번 출력 하는데 출력 양식이 다음과 같도록 프로그램을 완성하시오.
- 현재 위키에 어떤 습관이 생기고 있는걸까? . . . . 4 matches
두번 이상 혹은 규칙이라 의식하고 한번이라도 행한 것이 있다면 내용과 느낌을 적어 봅시다.
* 이름의 하위 분류로 / 를 사용한다. 예) [삼총사CppStudy]하위에 속한 [삼총사CppStudy/숙제1] 페이지
+ 길에 비유를 했었는데 우리는 0'Wiki를 사용함으로 해서 익숙한 길이 있기 때문에 1'Wiki에도 역시 똑같이 사용하는것 같습니다. 이대로 페이지가 쌓인다면 0'Wiki와 똑같이 되지 않을까 합니다.-[상욱]
- 홈페이지만들기/css . . . . 4 matches
글꼴 크기에 사용되는 단위는 아주 다양하게 있다. 단위를 사용하지 않으면 기본적으로 픽셀 단위를 사용한다.
{font-weight:키워드}문자 두께를 키워드에서 설정한 값으로 적용
- 회비 . . . . 4 matches
= 사용된 회비 =
|| 8,000 원 || - 50,000 원 || 2005/3/22 || [지금그때2005] 행사비용(간식비) ||
|| -2,000 원 || - 10,000 원 || 2005/3/22 || [지금그때2005] 행사비용(준비물) ||
|| +32,000 원 || + 33,000 원 || 2005/3/29 || [지금그때2005] 행사비용 남은 돈 입금 ||
- 02_C++세미나/0523 . . . . 3 matches
== 내용 ==
'''공부할 내용들'''
* 포인터와 동적할당을 이용한 Linked List
- 05학번만의C++Study . . . . 3 matches
8. 함수의 활용
11. 클래스의 활용
14. C++ 코드의 재활용
- 2006신입생 . . . . 3 matches
* [http://services.nexodyne.com/email/]를 이용하면 [http://services.nexodyne.com/email/icon/.LOjICs%2BQCXnd%2BAz8g%3D%3D/7vKivYE%3D/SG90bWFpbA%3D%3D/0/image.png]처럼 그림으로 이메일 주소를 표기 할 수 있습니다. 무료입니다.-_-
|| 서용욱 || - || - ||
|| 성우용 || - || - ||
- 2006신입생/방명록 . . . . 3 matches
-06학번 서용욱임당...잘부탁드려요
- 용욱이 ㅎㅎ 그래그래^^ 누나 위키페이지에도 놀러와~ - [허아영]
-내위에 누구니..안타깝다..ㅋㅋ -용욱-
- 2010JavaScript/강소현/연습 . . . . 3 matches
<b>내 용:</b>
<input type="text" size="30" id="email" onchange="checkContent()" alt="내용 변화 감지"><br>
....... 차라리 css로 좀 더 세부적으로 분류한 다음에 사용하는게 나을듯??
- 2012년독서모임 . . . . 3 matches
* [권순의] - 오랜만에 시작하는군요. Fault Line은 보이지 않는 균열이 세계 경제를 위협한다는 내용으로 지표면에서 단층면이 접하는 선인 단층선이 Fault Line인데 그 곳에서 지진이 발생한다는 것 때문에 따 왔다고 하더군요. 그래서 과거 시행했던 정책이나 여러 사건들을 통해 현재의 경제가 어떠한 상황에 이르게 되었는지에 대해서 서술한 책입니다. 사실 무지 재미 없습니다. -_- 읽은지 꽤 됬는데 눈에 잘 안 들어오고 하다 보니 아직도 다 못 읽었..
* 인류가 다른 생명체와 다른 점은 표현할 수 있는 언어가 있어서이다 라는 말은 많이들 들어보았을 것입니다. 그래서 인류가 발명한 발명 중 가장 위대한 발명으로 언어를 선택했는데.. 책이 정말 학술적인 내용이네요.. 사실 지루해서 힘들었습니다. 영어에서의 불규칙 과거형 단어들이랄지.. 인간의 사고가 언어에 투영되는 것 등이 나왔는데.. 그냥 그러려니 하는 내용들.. 관심이 없으니 힘드네요a - [권순의]
- 5인용C++스터디/API에서MFC로 . . . . 3 matches
=== 매크로와 가상함수를 이용한 메시지 처리 ===
* WizardBar - ClassWizard의 축소판으로 사용하기 더욱 쉽고 편함.
[5인용C++스터디]
- 5인용C++스터디/템플릿스택 . . . . 3 matches
템플릿 클래스를 이용하여 스택 구현하기.
|| 나휘동(사용자가 배열 크기 정하게 하다 다 못함.) || Upload:stack_templete_Leonardong.cpp || 원하는 결과는 아니었지만.. 그런대로 잘 했음. ||
[5인용C++스터디]
- 5인용C++스터디/후기 . . . . 3 matches
우선 처음 시작했던 사람들 모두가 함께 끝낼 수 있어서 이번 스터디는 그럭저럭 잘 끝난것 같습니다. 스터디 내용이 좀 많았지만 발표 준비도 잘 해 주었고, 숙제도 잘 하며 잘 따라와준것 같습니다. 이번 스터디가 얼마나 도움이 되었는지는 모르겠지만 지금까지 배운것 보다 좀 더 풍부한 경험이 되었다면 충분히 얻은것이라 생각합니다~ 앞으로는 관심분야를 잘 찾아서 스스로 스터디를 열고 열심히 공부하는 모습을 볼 수 있기를 바랍니다~^^ 다들 수고하셨습니다!
공부하면서 아 내가 많이 부족하구나 하는 것을 알게 되었어요.. 끝까지 문법과 메시지 처리의 압박에 시달렸는데 내가 발표한것은 그나마(!!) 나은데 다른사람이 발표한 내용은 잘 알지 못하는 것 같아요 ㅎㅎ ^^; 친구들과 같이 공부하면서 나름대로의 경쟁심? 이랄까 의욕이란 것도 생기고 저만 빼고 다들 너무 잘 한 것 같아 앞으로도 열심히 노력해야겠다는 생각도 들엇구요 어떻게 공부해야 하나 대충 가닥을 잡을 수 있던 시간이었습니다
[5인용C++스터디]
- AM . . . . 3 matches
* 진행 방식 : 각자 정해진 분량을 공부하고 정모에 팀원들이 번갈아 가면서 공부한 내용을 세미나한다. 질문답변하며 피드백하는 과정을 갖는다.
* [5인용C++스터디]
* [5인용C++스터디]처럼 그날그날 배운걸로 간단한 프로그램 숙제해요... 요즘들어 그냥 책만 보는것 같아서... 저만 그런가요?? --세환
- AM/20040629첫번째모임 . . . . 3 matches
== 토의 내용 ==
* 진행 방식 : 각자 정해진 분량을 공부하고 정모에 팀원들이 번갈아 가면서 공부한 내용을 세미나한다. 질문답변하며 피드백하는 과정을 갖는다.
* 목표 : MFC의 원리를 이해하고 적용한다.
- AM/20040712세번째모임 . . . . 3 matches
== 모임 내용 ==
* 공부한 내용 : API 교재 3장(출력) - 4장(입력)
* 시간부족, 노트북 말썽, 참여율 저조,... 여러 안 좋은 상황에서도 꿋꿋이 모임이 진행되었습니다. 발표자로서 설명할 내용이 많았는데 제대로 전달하지 못한것 같아 아쉽구요. 혹시라도 시간문제때문에 참여못하신분은 가능한 시간을 적어주세요. 최대한 시간을 조절하겠습니다. 그리고 예습은 필수랍니다~~ --[곽세환]
- AM/20040720네번째모임 . . . . 3 matches
== 모임 내용 ==
* 공부한 내용 : API 교재 5장(리소스) - 6장(DC의 이해)
== 모임 후 정한 내용 ==
- AM/20040724다섯번째모임 . . . . 3 matches
== 모임 내용 ==
* 공부한 내용 : API 교재 7장(컨트롤)
== 모임 후 정한 내용 ==
- AM/20040727여섯번째모임 . . . . 3 matches
== 모임 내용 ==
* 공부한 내용 : API 교재 8장(대화상자) - 9장(테트리스)
== 모임 후 정한 내용 ==
- AM/20040730일곱번째모임 . . . . 3 matches
== 모임 내용 ==
* 공부한 내용 : MFC 교재 1장(사전학습)
== 모임 후 정한 내용 ==
- AM/20040803여덟번째모임 . . . . 3 matches
== 모임 내용 ==
* 공부한 내용 : MFC 교재 2장(프로그램의 뼈대)
== 모임 후 정한 내용 ==
- AM/20040813열번째모임 . . . . 3 matches
== 모임 내용 ==
* 공부한 내용 : MFC 교재 4장(대화상자와 컨트롤)
== 모임 후 정한 내용 ==
- AM/20040824열두번째모임 . . . . 3 matches
== 모임 내용 ==
* 공부한 내용 : MFC 교재 6장(도큐먼트의 데이터 관리)
== 모임 후 정한 내용 ==
- AdvancedJS . . . . 3 matches
* 여름방학동안 JavaScript 스터디를 하는데 문법 익히고 사용하는 건 혼자 공부하기 쉽지만 이런 내용은 혼자 알기 어려웠을 것 같다. 익숙한 다른 언어들이랑 다른 면이 많아서 흥미가 간다. - [김수경]
* 개인적으로 자바스크립트에 관심도 있고 해서 세미나를 들으러 왔다. 근데 가끔 웹페이지에서 자바스크립트 소스를 보면 C++이랑 비슷하게 쓰길래 그냥 비슷한 언어인가 싶었는데, 이번에 들어보면서 오히려 다른 점이 크게 부각된 느낌이다. C++이랑 비교해서 상속 방식도 다르고(프로토타입 상속) this의 개념도 좀 다르고 함수가 객체로 취급되고 등등. 물론 나중에 따로 책을 보면서 공부를 하긴 하겠지만 아마 이번에 배운 내용은 책에서 쉽게 찾아볼 수 없지 않을까 싶다. - [서민관]
- Ajax/GoogleWebToolkit . . . . 3 matches
간단히 말하자면 jscript 기반의 ajax 개발환경을 java 개발환경으로 바꾸어 버리는 툴킷이다. java 의 강력한 타입 체킹을 이용해서 개발의 비효율성을 대폭 감축시킨다.
설치하고 설치하면 간단한 웹 서버와 host 브라우저가 생성되며 이를 이용해서 eclipse 를 이용해 개발한 후 해당 코드를 jscript 로 변환하는 것으로 보인다.
- AsemblC++ . . . . 3 matches
그렇다면 [i++VS++i]에서 최적화된 i++ 어셈블 코드에 관한 이야기, 연산자 오버로딩에 있어서 후치연산자++ 의 용도에 관한 이야기들은 어떻게 해서 나오게 된것인지 궁금합니다.
== 어셈블을 이용한 [고급언어디버깅] ==
Softice같은 프로그램을 사용해서 시리얼 번호가 있는 프로그램이나 날짜 제한 프로그램을 크랙 하기도 합니다. 이번 디버깅 세미나에서 함 해볼라고 그랬는데 집에 있는 컴퓨터에서 그게 잘 안돌아가서 보류함. - [상협]
- BasicJava2005/5주차 . . . . 3 matches
- 사용자가 직접 Exception을 작성할 수 있다.
throws : 이 함수에서는 예외처리 하고 싶지 않을때 사용한다.
throw : 임의로 예외를 발생시키고자 할 때 사용한다.
- Basic알고리즘/빨간눈스님 . . . . 3 matches
상당히 좋은 문제입니다. 이 문제를 컴퓨터를 도구로 사용해서 해결을 하는 훈련을 하면 상당한 사고훈련이 될 것입니다. 적극 권합니다. 스스로 이 문제의 답을 알고 있다고 생각하는 사람도 직접 프로그래밍을 해보거나 하시면 많은 것을 느끼고 깨닫게 될 것입니다. --JuNe
제가 책 읽었던 것을 풀이해서 적었는데, 보완할 것이 있다면 덧붙일 내용에 적어주세요 ^^
== 덧붙일 내용 ==
- Boost . . . . 3 matches
Boost 는 자유롭게 사용할수 있는 C++ 라이브러리 이다.
--''Effective STL 한서중 인용''
* ["Boost/SmartPointer"] : Boost 에서 제공되는 스마트 포인터 사용 방법
- BoostLibrary . . . . 3 matches
Boost 는 자유롭게 사용할수 있는 C++ 라이브러리 이다.
--''Effective STL 한서중 인용''
* [BoostLibrary/SmartPointer] : Boost 에서 제공되는 스마트 포인터 사용 방법
- BusSimulation/영창 . . . . 3 matches
구현특이사항 : vector, map, algorithm 등 stl 클래스 사용
* 각 역마다 사람이 증가하는 값을 다르게 정해야함. (시시각각에 다르게 적용되어야 하기 때문에 적당한 범위 안에서 랜덤으로 처리해야한다.)
왜 OOP적 접근법이 필요한지 약간 감이 잡힌다고 해야할까? 이런 현실의 내용을 simulation 하기에는 structured programming의 접근법으로는 참 다루기가 힘든점들이 많을 것 같다. - [eternalbleu]
- C++Analysis . . . . 3 matches
C++를 더욱 더 잘 이해하고 사용한다.
* ["AcceleratedC++"] Chapter 2(뒷부분)~ 3 예습 및 내용 정리
* 어떻게 되가고 있는지 궁금합니다. 지금 전 7장까지 공부 했는데.. 내일 쯤이면 9장까지 진행 될 거 같네요. 아.. 정말 게을러서 죄송하고요; 이사태를 어떻게 수습할건지 생각해 봅시다. 혹시, 계속 할 의향이 있다면 9장까지 의 내용을 정리해서 세미나 한번 열 수도 있고요.. -- zennith
- C++스터디_2005여름/도서관리프로그램/조현태 . . . . 3 matches
일단 내용을 읽어보면 데이터를 '추가' 는 하지만 '삭제'는 하지않는다. (아싸아~)
이로써 배열을 사용해도 빈공간이 생겨 자료를 땡긴다거나 하는 고생은 하지 않아도 된다는..(어이 그렇다고 배열로 짜냐;;)
(사실 트리구조를 이용해서 적어도 이름만이라도 정렬을 하면 검색속도를 향상할 수 있으나..귀찮았다.....)
- CC2호 . . . . 3 matches
= 공부한 내용 =
만들어진지 오래되어 조금 구질 구질하기도 하지만 좋은 내용인 Upload:zeropage:CampusC.zip 공개강좌로 위의 것보단 짧다.
[PracticalC]를 정리하는 이런 페이지도 있네요. 모두 같이 정리해 보고 활용해 보았으면 좋겠습니다.
- CNight2011/윤종하 . . . . 3 matches
* 사용
* typedef 미사용시
* typedef 사용시
- CPPStudy_2005_1/Canvas . . . . 3 matches
* list 사용
* map 사용
=== 클래스 사용 예 ===
- CauGlobal/Interview . . . . 3 matches
가기 전에 준비했던 인터뷰할 내용.
* 공부할 내용이나 Assignment의 양은 어느 정도나 되나요? (하루에 어느정도나 학업에 투자하시나요?)
저도 그 점이 참 고민이에요. 날카로운 지적 감사합니다 :) 일단 학교에서 지원해주는 행사라 학교에서 원하는 답을 만들어주기 위한 의식이 어느정도 작용했던것 같습니다. 만약 형이 이런 기회로 가시게 된다면, 어떤걸 해보고 싶으세요? 힌트가 있으면 정말 도움이 될것 같습니다. --sun
- Chopsticks . . . . 3 matches
중국에서는 음식을 먹을 때 젓가락 두 개를 쓰지만, L씨는 조금 다르다. 그는 젓가락 세 개를 사용한다. 셋 중 하나는 긴 젓가락으로, 음식을 쿡 찍어먹기 위한 용도로 쓰인다. 두 개의 일반 젓가락의 길이는 최대한 비슷해야 하지만 나머지 하나는 무조건 제일 길기만 하면 된다. 길이가 각각 A, B, C(A<=B<=C)인 세 개의 젓가락이 있을 때 (A-B)^2을 계산하면 두 젓가락이 짝이 안 맞는 정도를 구할 수 있다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- CleanCodeWithPairProgramming . . . . 3 matches
|| 시간 || 타이틀 || 내용 ||
|| 02:30 ~ 03:00 || 리팩토링 w/ Sonar || 자동화 도구를 이용한 리팩토링 해보기 ||
* Sonar와 Jenkins, maven... 실제로 이런 자동 빌드 시스템을 사용해본 적이 없었는데, 직접 보기 신기했습니다. 페어 프로그래밍도 재밌었습니다. 하지만 여전히 시간에 쫓기는 프로그래밍은 힘들더군요... - [박성현]
- CodeCoverage . . . . 3 matches
CodeCoverage 는 Software Testing 에서 사용하는 측정 도구중의 하나이다. 프로그램이 테스트된 소스 코드의 정도를 기술한다. 이는 다른 대다수의 다른 테스트 메소드와 다른다. 왜냐하면 CodeCoverage 는 소프트웨어 기능, Object interface 과 같은 다른 측정 방법에 비하여 source code를 직접 보기 ㅤㄸㅒㅤ문이다.
일반적으로 소스 코드는 모듈화를 통해 도구처럼 만들어지고, 회귀(regression) 테스트들을 통해 실행되어 진다. 결과 출력은 실행지 않은 코드들을 보고, 이러한 부분에 대한 테스트들이 필요함을 분석해 낸다. 다른 관점의 CodeCoverage 방법들과 혼용하는 것은 회귀 테스트들의 관리하는 회귀 테스트들에게 좀더 엄격한 개발을 이끌어 낸다.
CodeCoverage 는 최종적으로 퍼센트로 표현한다. 가령 ''우리는 67% 코드를 테스트한다.'' 라고 말이다. 이것의 의미는 이용된 CodeCoverage 에 대한 얼마만큼의 의존성을 가지는가이다. 가령 67%의 PathCoverage는 67%의 StatementCoverage 에 비하여 좀더 범위가 넓다.
- CodeYourself . . . . 3 matches
C언어로 일기를 쓰라는 숙제가 있었나요? 재미있네요. 그런데 이건 좀 어려운 과제 같습니다. 왜냐하면, 프로그래밍의 일상적 시간 흐름과 정반대가 되기 때문입니다. 무슨 말이냐면, 프로그래밍이라는 행위는 시간의 순방향입니다. 내가 작성한 프로그램은 미래에 일어날 사건(실행)에 대한 청사진이죠. 하지만 일기는 주로 시간의 역방향입니다. 과거에 일어났던 일들을 정리, 기록하는 성격이 강하죠. 프로그램으로 과거의 일을 기록한다는 것은 어찌보면 쉽지만 또 어찌보면 매우 어려운 문제일수도 있습니다. 신입생 입장에서는 시간의 흐름에 따라 일어났던 과거의 이벤트 연속을 적는 수준이면 될 것 같습니다. 아쉬운 것은, 이렇게 되면 조건 분기문을 활용하기가 어렵다는 점입니다. 힌트를 준다면, 리팩토링을 하면 가능합니다(내 하루의 중복을 어떻게 제거할지 생각해 보세요 -- higher-order function이 나올 정도면 상당히 진전된 것입니다). 어차피 과거의 기록 역시 "기술"(description)의 일종이고, 미래의 계획도 "기술"이니까요.
이런 훈련이 되면 "과거형 프로그래밍"이 가능해집니다. 마치 과거에 일어난 일에 대한 기술인 것처럼 프로그램을 작성하는 것이죠. 이것은 일종의 사고의 도구입니다. 이런 실험이 있습니다. 자신의 교수가 다가오는 여름휴가 때 뭘 할지 상상을 해서 종이에 적어보라고 학생들에게 시켰습니다. 다른 그룹의 학생에게는 그 교수가 이미 여름휴가를 다녀왔다고 가정을 하고 과거형으로 무슨 일을 했는지 적어보라고 했습니다. 후자의 그룹이 쓴 내용이 훨씬 더 풍부하고 자세했다고 합니다.
자세한 내용은 선배들에게 물어보세요.
- ContestScoreBoard . . . . 3 matches
제출된 풀이 가운데 정답으로 판정받은 것이 하나라도 있으면 그 문제는 해결된 것으로 인정된다. 시간 벌점은 해당 문제에 대한 첫번째 정답이 제출될 때까지 걸린 시간으로 계산되며 정답이 나오기 전까지 제출된 오답이 있으면 한 개에 20분씩의 시간 벌점이 추가된다. 풀리지 않은 문제에 대해서는 시간 벌점이 전혀 적용되지 않는다.
각 입력은 심사 큐의 스냅샷으로 구성되는데, 여기에는 1번부터 9번까지의 문제를 푸는 1번부터 100번까지의 경시 대회 참가 팀으로부터 입력된 내용이 들어있다. 각 줄은 세 개의 수와 경시 대회 문제 시간 L형식의 글자 하나로 구성된다. L은 C, I, R, U 또는 E라는 값을 가질 수 있는데 이 글자들은 각각 Correct(정답), Incorrect(오답), clarification Request(확인 요청), Unjudged(미심사), Erroneous submission(제출 오류)을 의미한다. 마지막 세 개의 케이스는 점수에 영향을 미치지 않는다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- CppStudy_2002_1/과제1/CherryBoy . . . . 3 matches
cout << "당신은 출력 함수를 " << count << " 번 사용하셨습니다.\n";
//함수는 사용자에게 이름과 핸디켑을 요구한다
//함수는 전달인자로 전달된 값들을 사용하여
- CppStudy_2002_1/과제1/Yggdrasil . . . . 3 matches
//사용자의 임의 입력
//함수는 사용자에게 이름과 핸디캡을 요구한다
//함수는 전달인자로 전달된 값들을 사용하여
- C언어정복/3월30일-내용정리 . . . . 3 matches
==== C언어정복 3월30일 - 내용정리 ====
수업한 내용을 참고하여 내용정리를 해주세요.
- DataCommunicationSummaryProject . . . . 3 matches
* 다 정리할 필요 없이 자신이 소화한 내용을 간단히 적으면 안되나요? 우리가 뭐 고등학생도 아니고 큰 줄기가 아닌 내용까지 다 요약하자는 이야기는 아니었던 만큼, 소화한 내용을 적으면 얼마 안될거 같은데, 그정도도 못할까요? - 상협
- DatabaseClass/Exam2004_1 . . . . 3 matches
ESQL 에서의 cursor 가 필요한 이유를 쓰고, 사용법에 대해 간단한 Source Code 예를 들어 설명하시오
- (튜플변수관련. 튜플 변수 사용 안하고 같은 테이블끼리 비교한 예)
(with, derived relation, view 이용금지)
- DebuggingSeminar_2005/UndName . . . . 3 matches
DLL 파일에 의해서 분석된 내용을 보면 DLL 에 함수의 이름이 이상하게(?) 변형되어 있는것을 확인하실 수 있는데(DUMPBIN.EXE 를 통해서 가능합니다.) 이 이름의 원형을 알고 싶을때가 있습니다. 그럴때 undname.exe 라는 파일을 사용하시면 아주 쉽게 확인해 보실 수 있습니다.
''디버깅 세미나에서는 이러한 함수의 이름이 컴파일 옵션으로 설정되는 map 파일안에 존재하는 것으로 이용하였다.'' - [eternalbleu]
- DesignPattern2006 . . . . 3 matches
* 매주 금요일 1시(그 밖에 남는 시간 활용)
|| 날짜 || 할것 || 내용 ||
= 내용 =
- DevOn . . . . 3 matches
* [Lisp]을 이용한 실시간 멀티미디어 프로그래밍
* [정진경] - Gnome 3.10 즐기기는 잘 기억나지 않는다... 미안.. 진크리에이터... Wayland는 나름 도움이 되었는데, X 서버가 컴포지터가 인터프로세스 통신을 한다는 사실을 처음 알게 되었다. Wayland는 X 서버와 컴포지터가 합쳐져 있는 형태이고, 프레임버퍼를 위한 API가 제공된다는 것.. 이 부분은 나중에 공부해서 해당 페이지에 자세한 내용을 기술할 필요가 있을 것 같다...
* 내용은 뻔한 것 같아서 제대로 듣지도 않았지만 철수형을 처음 볼 수 있었음다. -[태진]
- DevPartner . . . . 3 matches
= 간단한 사용법 =
2. 사용
* 간단 사용법 :
- DirectVariableAccess . . . . 3 matches
초기화처럼 변수에 접근하는 방법도 큰 이슈 중 하나였다. 이것에도 두가지 방법이 있는데, 역시 패턴의 존재 이유처럼, 하나는 유연성, 또 다른 하나는 가독성이다. 첫번째 방법은 모든 변수를 직접 접근하는 것이다. 다른 하나는, 항상 메세지를 보내는 것이다.(setter,getter를 사용한다.)
와드 아저씨의 말로는, '클래스에 아주 적은 양의 메소드만 존재한다면, getter/setter를 추가하는 것만으로도 메소드의 수가 두배가 되어버린다. 이는 전혀 사용되지 않을 유연성을 위해 쓸데없이 갯수를 늘린 것이다.' 라고 한다.
하지만 이 클래스가 상속이 될 가능성이 있다면, setter/getter를 오버라이딩 해서 사용할수 있으므로, IndirectVariableAccess를 쓰는 것이 괜찮다.
- DirectX2DEngine . . . . 3 matches
DirectX 를 이용해서 2D 그래픽을 처리할 수 있는 엔진을 만든다.
거창하게 엔진이라고는 했지만, 그정도는 아니고 재사용 가능한 루틴을 만드는 것이 목표.
* SVN 이용 : svn://zeropage.org/home/SVN/rhasya/dxengine
- DoItAgainToLearn . . . . 3 matches
왜 동일한 문제를 여러번 풀고, 왜 같은 내용의 세미나에 또다시 참석을 하고, 같은 프로그램을 거듭 작성할까요?
Seminar에 로그인을 안 해서 여기다 DeadLink 딱지를 달았습니다. 안에 내용물도 받아지시나요? --[Leonardong]
저는 ACM의 ICPC 문제 중에 어떤 놈을 이제까지 열 번도 넘게 풀었습니다. 대부분 PairProgramming이나 세미나에서 프로그래밍 시연을 했던 것인데, 제 세미나에 여러번 참석한 친구가 물었습니다. "신기해요. 창준씨는 그 문제를 풀 때마다 다른 프로그램을 짜는 것 같아요. 혹시 준비를 안해와서 그냥 내키는 대로 하는 건 아니죠? :)" 저는 카오스 시스템과 비슷하게 초기치 민감도가 프로그래밍에도 작용하는 것 같다는 대답을 해줬습니다. 저 스스로 다른 해법을 시도하고 싶은 마음이 있으면 그렇게 출발이 조금 다르고, 또 거기서 나오는 진행 방향도 다르게 됩니다. 그런데 중요한 것은 이렇게 같은 문제를 매번 다르게 푸는 데에서 배우는 것이 엄청나게 많다는 점입니다. 저는 매번, 전보다 개선할 것을 찾아 내게 되고, 또 새로운 것을 배웁니다. 마치 마르지 않는 샘물처럼 계속 생각할 거리를 준다는 점이 참 놀랍습니다. --JuNe
- Downshifting . . . . 3 matches
미친 듯이 일하면서 행복감을 못 느끼는 사람들에게 일을 좀 줄이고 행복감을 찾으라는 이야기를 한다. 일중독에 빠져 놓치기 쉬운 가족관계, 여가생활, 종교활동, 봉사활동을 하면서 새로 얻게 된 시간을 활용해 보라고 권유한다.
굳이 일과 행복에 한정해서 생각하지 않는다면 유용한 충고로 받아들일 수 있다. 정말 원치 않는데도 하고 있는 것을 줄이고 자기가 즐기는 것을 좀더 많이 하면 좀더 행복할 것이다.
또 하나 유용한 충고. 다운시프팅 같은 변화를 행동으로 옮길 때는 작은 부분부터 바꾸어나가라. 그리고 한 번 변화에 실패했다고 포기하지 말라! -- [Leonardong]
- DuplicatedPage . . . . 3 matches
ZeroWiki와 OneWiki의 통합시 제목은 같으나 내용이 다른 페이지 입니다.
DuplicatedPage 란 마크를 기준으로 상단은 ZeroWiki 내용, 하단은 OneWiki 내용 입니다. 적절히 통합해 주세요
- Eclipse/PluginUrls . . . . 3 matches
* ["Subversion"]을 사용할 수 있게 해 주는 Plugin
* Memory 사용정보를 보여주고 ["GarbageCollection"]을 사용가능하게 해 주는 Plugin, 시간을 설정해두면 주기적으로 알아서 GC를 해줌.
- ExploringWorld . . . . 3 matches
기존 서버를 탐험하던 여행자가 나라에 의무로 이계로 여행을 떠나서, 이 서버 세상을 관리하며 평화를 지키는 그들이 필요하다. [[BR]]--[http://ruliweb.intizen.com/data/preview/read.htm?num=224 다크 클라우드2] 세계관 응용
== 내용 ==
(V) [[HTML(<font color=red><B>)]]미션 2 : (1) JDBC를 이용하여 Hello World를 넣고 빼기 (2) JSP, Servlet 비교설명 [[HTML(</B></font>)]]
- FileZilla . . . . 3 matches
[임인택]이 사용하는 오픈소스 ftp 클라이언트. 그 전에는 alftp을 주로 사용했는데, 사용했던 시기가 alftp 가 약간 불안하게 동작했던 시기라서 아예 FileZilla로 전환했다. 기본적인 ftp 프로토콜 외에도 sftp 프로토콜까지 지원한다. 2.2.7 버전대로 올라오면서 한글까지 지원하여 이제는 더없이 좋은 ftp 클라이언트가 되었다. 그 외에도 편리한 사이트 매니저 기능등을 제공하지만 로컬 디렉토리를 브라우징할때 약간 불편한 면이 있다.
- FortuneMacro . . . . 3 matches
Fortune 매크로 플러그인은 GNU fortune프로그램을 이용한 매크로입니다.
== 사용예 ==
Fortune 매크로는 fortune파일의 인덱스를 직접 읽어들여 사용하므로 FortuneCookies를 읽어들이는 RandomQuoteMacro보다 매우 빠릅니다. :)
- Hacking/20041104세번째모임 . . . . 3 matches
== 모임 내용 ==
== 공부한 내용 ==
== 공부할 내용 ==
- Hacking/20041118네번째모임 . . . . 3 matches
== 모임 내용 ==
== 공부한 내용 ==
== 공부할 내용 ==
- HardcoreCppStudy/두번째숙제 . . . . 3 matches
* this포인터란 무엇이며 사용되는 경우를 찾아보세요.
* 각 객체의 초기화는 생성자를 이용해야 합니다.
* 각 값을 비교하는 과정에서 this포인터를 사용합니다.
- HowManyZerosAndDigits . . . . 3 matches
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
만약 800진법일 경우 0~9 까지의 숫자는 표현할수 있겠지만 그 이후의 숫자는 어떻게 표현하나요? 16진법으로 나타낼때 0에서 F 로 표현하는 것처럼, 800진법에서 10이상의 수를 표현해야 할 방법이 있어야 할 것 같은데요. 알파벳을 이용한다고 해도 Z(35)이후의 수는 표현할 방법이 없는데요. 이에 대한 정의가 없다면 정확한 답을 구할 수 없을 것 같습니다(문제에서 말한 ''0의 개수''말이죠). 간단한 예를 들어 설명하자면,
그리고 문제를 설명하는 문장의 내용이 한번에 와 닿지가 않네요. 문장을 조금 다듬어 주시면 감사하겠습니다. ^^ - [임인택]
- ISAPI . . . . 3 matches
* IIS(Internet Information Services)란 웹 서버, FTP 서버와 같이 기본적이고 범용적인 인터넷 서비스를 시스템에서 제공할 수 있게 해주는 소프트웨어를 말한다. 기존 윈도우2000 제품군의 경우 기본적으로 IIS 5.0을 제공하였고 윈도우XP의 기존 IIS 5.0의 기능을 개선한 IIS 5.1을 제공하고 있다. 한 마디로 HTTP, FTP, SMTP 서버의 묶음이다.
Internet Server Application Programming Interface 의 약자로 개발자에게 IIS 의 기능을 확장할 수 있는 방법을 제공한다. 즉, IIS 가 이미 구현한 기능을 사용해서 개발자가 새로운 기능을 구현할 수 있는 IIS SDK 다. 개발자는 ISAPI 를 이용해서 Extensions, Filters 라는 두 가지 형태의 어플리케이션을 개발할 수 있다.
- IdeaPool . . . . 3 matches
* 공용 아이디어 ( [IdeaPool/PublicIdea] ) - 학교, 학과, 제로페이지 등등 우리가 속한 집단에게 유용한 아이디어.
* 개인 아이디어 ( [IdeaPool/PrivateIdea] ) - 공용 아이디어를 제외한 각종 아이디어들.
- InternalLinkage . . . . 3 matches
C++ 에서 SingletonPattern 을 구현할때 다음과 같은 방식을 사용하고는 한다.
''암튼,결론이 어떻게 되나요? singleton 을 구현하는 용도로 자주 쓰는 static 변수를 사용하는 (주로 getInstance류) 메소드에서는 inline 을 쓰지 말자 인가요? --[1002]''
- IpscAfterwords . . . . 3 matches
* 영어실력의 문제 - 모르면 모른다고 이야기 할것을. 정확하게 해석합시다. 괜히 '아마 이런 내용일 것이다' 로 해석하지 말고..
* 자자.. 가끔 자만감에 용기백배할때 한번씩 이런거 풀어주면서 겸손 모드(?)로 전환을;; --석천
* IPSC Winner 가 발표되었네요. 재밌게도 Open 과 Second 둘 다 러시아이고, 양쪽 팀 다 Pascal 을 이용했다는. ^^
- JUnit . . . . 3 matches
* http://huniv.hongik.ac.kr/~yong/moin.cgi/JunitSampleCode - 박응용씨의 위키페이지. JUnit 간단한 예제.
참고로 저는 다음과 같이 배치화일을 만들어서 사용합니다. (주로 ViImproved 에서 Java 코딩을 하는 관계로)
console mode 로 표현하고 싶다면 textui runner 를 이용하시기를.. --["1002"]
- Java/SwingCookBook . . . . 3 matches
1. pack 메소드 이용 - content pane 에 해당 컨트롤 붙여놨을 경우, 가장 최적 상태 사이즈로 맞춰줌.
2. setSize 메소드 이용
=== Layout Manager 대신 절대좌표계 이용하기 ===
- JavaStudy2002/진행상황 . . . . 3 matches
* 11/14(목) 오후 1시 - TDD Airport ( See Also ["VonNeumannAirport"]), ["Eclipse"]사용, ["CVS"] 사용
* 11/21(목) 오후 1시 - Airport 다시 공지, ["CVS"] 사용법, TDD 토론, 질문 답변
- JavaStudy2003/두번째과제 . . . . 3 matches
== 과제 내용 ==
* 이번 과제의 목표는 '''"자바와 친해지기"''' 입니다. 저번 수업에서 간단히 자바의 OOP문법을 설명해 드렸는데요. 그 밖의 소스나 아니면 참고자료, 책 등을 사용해서 간단한 프로그램을 만들도록 하겠습니다.
* 제가 밑에 링크 걸어놓은 페이지 가셔서 그 내용을 요약해서 정리해 보시기 바랍니다. Copy&Paste 하지 마시구요. 그럼 다 걸려요^^; 그냥 한번이라도 좋으니 읽어보라는 의미니까 양은 상관하지 마시구요.
- Jython . . . . 3 matches
* 아래와 같이 하면 한글을 제대로 받을 수 있다. 나는 파이썬에 있는 디코드, 인코드 함수를 사용하려고 했는데 잘 되지 않았고, 생각을 바꿔서 자바에 있는 인코드, 디코드 방법을 썼다.
* [http://huniv.hongik.ac.kr/~yong/MoinMoin/wiki-moinmoin/moin.cgi/JythonTestCode PyUnit 과 Java Class 와의 만남 from 박응용님 위키]
* PyServlet - Jython 을 이용한 servlet
- KAIST전산대학원면접/06전기 . . . . 3 matches
"아니 나는 그런거 말고 그냥 범용컴퓨터 살때 어떤기준으로
공급이 부족한 이시기에 재사용성과 유지보수성이 중요하다고
프로그래밍을 짤수 있고 유지보수가 재사용성을 늘릴수 있다고
- LIB_1 . . . . 3 matches
이건 사용자 태스크인 태스크1 이다.
LIB_create_task("task1\n",60,task1,&TaskStack1[256]); // 사용자 태스크 1을 만들어준다.
LIB_create_task("task2\n",59,task2,&TaskStack2[256]); // 사용자 태스크 2를 만들어준다.
- LUA_4 . . . . 3 matches
함수는 사용하기에 따라 변형할 수 있는게 많아서 천천히 다양한 방법을 설명하겠습니다. 대신 변수의 범위(scope)에 대해서 간단하게 예제로 살펴 보겠습니다.
변수 범위는 이 밖에도 다양한 이슈를 만들 수 있습니다. 예를 들면 do ~ end 문에서도 local 로 범위를 한정할 수 있고 function 자체도 변수와 같이 범위(scope)를 한정하여 사용할 수 있습니다. 또한 local을 사용하지 않으면 전역 범위 내에서 변수나 함수 자체를 접근/변경할 수 있습니다.
- LUA_6 . . . . 3 matches
메타 테이블은 루아에서 테이블을 사용하는 연산자 재정의? 또는 python을 예로 들면 __add__, __sub__ 와 같은 함수라고 볼 수 있습니다. 테이블을 함수가 아닌 연산자로 조작 할 수 있게끔 해 줍니다.
2. 메타 테이블을 이용한 클래스
콜론이 ":" 이 함수에서 사용 될 경우는 함수의 파라미터로 self를 생략하게 할 수 있습니다.
- LinuxProgramming/SignalHandling . . . . 3 matches
유닉스 시스템에서 어떤 이벤트(event)가 발생하면 이것을 프로세스 사이에 알리는 수단으로 시그널이 사용된다.
쉽게 MFC 와 비유하여 설명하는 시그널은 메시지와 비슷하다고 보면 된다. 실제로 signal 함수를 이용해서 우리는 MFC에서 이벤트와 이벤트 핸들러를 연결하듯 프로그래밍을 한다는 사실을 알 수 있다. (이렇게 보면 정말로 유닉스가 C로 짜여있다는 것을 확실하게 알 수 있다.)
= signal 을 이용한 타이머 =
- LinuxSystemClass . . . . 3 matches
수업내용:
[LinuxSystemClass/Report2004_1] - PosixThread 를 이용, 스레드를 만들고 그에 따른 퍼포먼스 측정.
개인적으로 교재가 마음에 든다. 단, 제대로 공부할 것이라면 가능한 한 원서를 권한다. 한서의 경우 용어의 혼동문제와, 중간 오역문제가 눈에 띈다. (inexpensive를 expensive 로 정 반대의 뜻으로 해석한) 뭐, 물론 그럼에도 불구하고 아마 사람들은 한서 읽는 속도가 원서 읽는 속도의 3배 이상은 될테니. 알아서 잘.
- LispLanguage . . . . 3 matches
[http://clojure.org/ Clojure] : Rich Hickey가 제작한 Lisp 방언 중 하나. JVM 상에서 돌아가는 Lisp 구현체로, Java API를 직접 불러서 사용하는 것이 가능하다.
[1002]의 경우 XLISP 라는 윈도우용 프로그램 사용했었다. 언어 자체를 익히는데 최소한의 기능을 제공하는 인터프리터.
- LoveCalculator/zyint . . . . 3 matches
그럼 좋은하루 되세용~ㅎ - [조현태]
알파벳에서 숫자가 아닌 문자(alpha = alpha - 'a' +1)로 처리 하였다면 가독성이 좋아지지 않았을까? 그런데, 이건 내 취향일 수도 있지만,.. class로 함수들을 묶어 외부 접근을 못하게 했으면 나중에 소스코드를 재사용하기 훨씬 쉬워졌을텐데. 함수 분류는 현태 말대로 좋은거 같네. (그리고 upper함수는 toupper라고 이미 구현되어 있어.) - 이영호
위에말대로 클래스는 아직 배우지 않아서;; 배우면 곧 적용시켜야 겠네요^^ 아직 클래스의 위력은 잘 모르겠어서; -zyint
- MFC/AddIn . . . . 3 matches
유용한 단축키 제공, 코드 생성을 간편하게 한다.
코드템플릿기능을 이용해서 자동으로 주석 생성을 가능케한다.
CrashReport 라는 것도 있다는데... code project 에서 참조하라고함. StarDock 이 이걸 이용했나본데;; dll이 있네;; - [eternalbleu]
- MFCStudy_2002_1 . . . . 3 matches
|| 7/15(월) || Visual C++ 사용. 메세지 구동방식 발표및 점검. 객체지향이란? 오목의 자석효과 구현, 기능의 모듈화. || 오전 11시 모임. 첫 모임 ||
아아~ 오목을 짜는데~~전에는 무식한 방법으로 돌을 하나 놓을때마다 판 전체를 검색하는...방법을 사용했는데..[[BR]]
그리고 중간 중간에..함수를 만들어서 사용하고 싶은데...전달인자로 뭘 받아야하는지도 잘모르겠고..^^a[[BR]]
- Map연습문제/임영동 . . . . 3 matches
//벡터, 맵 사용 예제
//각 디코딩 규칙의 상세한 내용들을 정의해줌
//디코딩용 루프
- Marbles/조현태 . . . . 3 matches
printf("테스트 케이스의 내용을 입력해 주세요.\n>>");
printf("테스트 케이스의 내용을 입력해 주세요.\n>>");
그래도 모처럼 칭찬해주시니 감사해용~♡ 헤....^0^- [조현태]
- MatLab . . . . 3 matches
[1002] 가 OCU 수업으로 공부하는 툴. 요즈음 결과분석시 그래프를 그려서 분석하곤 하는데, 이때 자주 쓰는 툴. 비단 Visualization 뿐만 아니라 행렬연산 등을 간단히 실험해보는데도 유용하게 쓰인다.
선형대수학을 공부하는 사람들은 좋은 계산기 하나 배운다 셈 치고 이용해보길.
[그래프를이용한결과분석]
- Memo . . . . 3 matches
이 밖에도 여러가지 언어로 만든 위키가 있다. 매크로를 하나 추가하는 방법이 모두 다르다. 여러 위키에 적용할 수 있는 플러그인을 만들 수 있을까?
신문을 비유로 들면 역할이 두 개로 나뉜다. 한쪽은 신문내용을 원하는 대로 편집하는 신문사, 한쪽은 신문 내용을 제보하는 취재 기자이다.
- Metaphor . . . . 3 matches
시스템 메타포를 선정하면 같은 팀내에서 클래스와 메소드의 이름을 일관적으로 정할수 있어 공감대를 형성할 수 있다. (즉 하나의 메타포를 선정하여 공유하면 변수 이름같은 것을 지을때 같은 관점으로 짖게 된다는 의미). 어떤 객체에 대한 이름을 정하는 것은 시스템 전체를 이해하거나 코드를 재사용하는데 매우 중요하다. 만약 메타포를 올바르게 정한다면, 이름이 어떻게 정해지는가를 추측할 수 있게되고 실제로 개발 시간을 크게 절감시켜준다. 구축할 객체에 대한 이름을 위한 시스템(즉 메타포)를 결정할때는 모든 사람이 해당 시스템에 대하여 특별한 지식이 없이도 쉽게 연관되어 질수 있는 것으로 선택해야 한다. 예를 들어 크라이슬러의 지불시스템은 생산라인으로 구축되었다. 포드의 자동차 영업사원들은 BOM(부품표)으로 구조화 되었다. 구축하려고 하는 분야의 메타포를 사용할 수도 있다. 그러나 충분히 단순하지 않다면 영영에 해당하는 메타포를 사용하지는 말아라.
- MobileJavaStudy . . . . 3 matches
["Java2MicroEdition"]을 주축으로 핸드폰용 프로그램을 공부하는 페이지입니다.
* 이론적인 내용을 중심으로 공부하기보다는 간단한 프로그램들을 직접 개발해보며 J2ME를 알아가는 방법으로 진행한다.
* ["MobileJavaStudy/Tip"] - 유용한 프로그래밍 팁
- MoreEffectiveC++/C++이 어렵다? . . . . 3 matches
목적 : 2002.03.14 ZeroPage 세미나용 항해지도
[http://zeropage.org/moin/moin.cgi/MoreEffectiveC_2b_2b_2fTechniques3of3#head-85091850a895b3c073a864be41ed402384d1868c RTTI를 이용해 구현 부분]
* 다른 언어 : Java는 공통의 플랫폼 차원([http://java.sun.com/j2se/1.3/docs/guide/serialization/ Serialization]), C#은 .NET Specification에서 명시된 attribute 이용, 직렬화 인자 구분, 역시 플랫폼에서 지원
- MoreMFC . . . . 3 matches
떡하니 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]]
- MultiplyingByRotation . . . . 3 matches
물론 이러한 속성은 사용하는 수체계에 따라 다르다. 위의 예제에서는 10진수를 사용했다. 9진수에서의 에는 다음과 같다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- NSIS/예제4 . . . . 3 matches
SpaceTexts "필요한 용량 : " "사용가능한 용량 : "
- OpenGL스터디_실습 코드 . . . . 3 matches
== 나선모양으로 찍힌 점 크기 조절 및 안티알리어싱 적용 ==
== 외곽선 내곽선을 구분짓는 상태적용 및 별 드로윙 ==
== 스텐실을 사용한 물결흠이 새겨진 사각형 애니메이션 그리기 ==
- OperatingSystemClass/Exam2002_1 . . . . 3 matches
2. 다음 용어들을 간단히 설명하시오.
7. 유한 용량 Message Passing 을 위한 send() 메소드와 receive() 메소들을 완성하시오. send() 메소드는 queue의 공간이 있을때까지 block 하며, 반대로 receive() 메소드는 avariable message가 있을때까지 block해야 한다.
8. SJF 스케줄링에서 Next CPU burst를 구하기 위해서 우리는 다음과 같은 예상식을 이용했다.
- OperatingSystemClass/Exam2006_1 . . . . 3 matches
=== 문제 내용 ===
겁나게 쪼잔한 책의 내용과는 달리 대체적으로 무난한 문제였다. msdos와 unix 비교하는 것 말고는-_-;
5. 알고리즘 평가 방법을 기술하시오.( 6장 내용에 있는 )
- OurMajorLangIsCAndCPlusPlus/ctype.h . . . . 3 matches
|| 함수명(Ascii) || 내용 ||
|| 함수명 (Uncode) || 내용 ||
|| 함수명 || 내용 ||
- OurMajorLangIsCAndCPlusPlus/float.h . . . . 3 matches
::float형 부동 소수점 표기의 비트 자리수에 따른 내용::
::double형 부동 소수점 표기의 비트 자리수에 따른 내용::
float형에서 가수부를 표현하는데 사용되는 비트수. 다음 표현식은 가수부 숫자들의 제한된 수 때문에 1. 0이 나온다(수학적으로는 그것이 될 수 없을 지라도):
- OurMajorLangIsCAndCPlusPlus/locale.h . . . . 3 matches
location specific information 를 setting 하는데 유용한 라이브러리
#define LC_COLLATE (integer constant expression) 스트링(string)의 정렬 순서(sort order 또는 collation)를 위한 로케일 설정을 위해 사용
|| char* setlocale(int category, const char* locale); || category에 대해 로케일 locale을 설정하고 (물론, 사용 가능한 로케일인 경우), 설정된 로케일값을 리턴. ||
- OurMajorLangIsCAndCPlusPlus/print . . . . 3 matches
printf, scanf 계열의 함수 사용 금지
C++ 라이브러리 사용 금지
출력은 fputchar, fputs 등 사용
- OurMajorLangIsCAndCPlusPlus/print/하기웅 . . . . 3 matches
puts를 통해 글을 찍는 방법을 배웠고 fputs, putchar, _fcvt등에 대해서 알게 되었다. 코드가 지져분하게 만들어졌지만 앞의 내용과
내가 위키 사용법을 잘 몰라서 올리는 법좀 붙여쓰기해서 사용했더니..
- OurMajorLangIsCAndCPlusPlus/stdlib.h . . . . 3 matches
|| MB_CUR_MAX || 현재 사용 중인 로케일에서 멀티바이트 문자의 최대 길이 ||
|| int atexit(void (*func)(void)); || 프로그램이 정상적으로 종료될 때 전달인자로 넘겨진 함수포인터를 이용해서 특정 함수 실행 ||
|| void srand(unsigned int seed); || rand()에 의해 사용되는 난수 생성기에 인자 공급 ||
- OutlineProcessorMarkupLanguage . . . . 3 matches
현재 RSS 리더에서 피드를 공유하는 목적으로 주로 이용되는 포맷으로, Radio UserLand 의 DaveWiner 가 개발했다.
그 활용가능성을 인정받아 현재는 rss에서 피드를 공유하는 것과 같은 곳에서 이용되고 있다.
- PC실관리/2013 . . . . 3 matches
* 윈도 공유 폴더 기능을 이용한 서버
* 클론질라 삼바서버를 이용한 복원 방법
* Clonezilla CD 없이 사용하는 방법 연구중...
- PNGFileFormat/ImageData . . . . 3 matches
* zip, gzip, pkzip 에서 사용하는 LZ777 파생 기법사용.
* 자세한 내용은 [PNGFileFotmat/FilterAlgorithms] 참조.
- Postech/QualityEntranceExam06 . . . . 3 matches
1. 알고리즘 시그마 1~ i4 까지 타이트를 로우 빅오 사용하여 증명
6. 1~3개 문제 펌핑 렘마 사용하여 증명 혹은 오토마타로 그려서 regular 에 속한다고 증명 하기
2. 외부 단편화는 무엇이며 TLB 를 사용하여 어떻게 해결? 그리고 내부 단편화와 외부 단편화 대조,,
- ProgrammingContest . . . . 3 matches
나이나 학력 제한이 전혀 없습니다(Open경우). 팀은 세명까지 가능하고, 혼자서도 참가 가능합니다. 사용 가능 언어는 Java, C++, Pascal, Python 등 입니다. 제한 조건은 한 팀은 프로그램 개발을 위해서는 하나의 컴퓨터만 사용해야 한다는 것입니다. 이번 금요일(2002/5/10)에 한국 시간으로는 오후 9시부터 5시간 동안입니다. 온라인(이메일)으로 진행합니다. (see also .http://ipsc.ksp.sk/rules.php )
또, Easy Input Set은 직접 수작업으로 풀고 그걸 일종의 테스트 데이타로 이용해서, Difficult Input Set을 풀 프로그램을 TDD로 작성해 나가면 역시 유리할 것입니다. 이렇게 하면 Time Penalty는 거의 받을 일이 없겠죠.
- ProgrammingPearls/Column6 . . . . 3 matches
* 어떤 프로그램이 1년 걸렸었는데 단계별로 쪼개서 튜닝을 했더니 하루만에 되더라하는 내용이 씌어있다.
* 하드웨어 업글 : 부동소숫점 연산 가속기를 사용
* 이 각각의 단계에서 빨라진 만큼을 다 곱하니 대략 400이 나오더라하는 내용이 씌어있다.
- ProjectCCNA/Chapter2 . . . . 3 matches
* ethernet: CSMA/CD- 이더넷 통신에서 사용하는 프로토콜이다. 회선이 사용중이지 않을때 전송하고 충돌이 생기면 일정시간후 재전송한다.
* 네트워크에 대한 표준 모델이며 실제로 사용되는것은 아니다.
- ProjectCCNA/Chapter3 . . . . 3 matches
* TCP/IP란 프로토콜(Protocol)의 한 종류로 인터넷을 하기 위해 꼭 필요하다. ARPANET에 의해 처음으로 개발 되었으며 TCP/IP는 인터넷을 사용하는 컴퓨터라면 어디에나 세팅이 되어 있다.
* 인터넷을 사용하기 위해서는 IP라는 주소가 필요하며 이 주소는 2진수 32개로 4묶음씩 구성된다. 각 묶음마다 10진수로 나타내어 알아보기 쉽게 만들었다. 현재 IP 버전은 4인데(IPv4) 약 43억개의 주소를 할당 할 수 있다. 그런데 이 주소가 얼마 남지 않아서 ip 버전 6으로 대체 할 것이라고 한다.(IPv6은 2의 128개로 구성되어 있다고 함.)
* 또 서브넷마스크를 사용할때 AND연산이 필요하다.
- ProjectEazy/테스트문장 . . . . 3 matches
|| 대상격(O) || 이동하는 대상물이나 변화하는 대상물, 혹은 판단, 상상과 같은 심리 사상의 내용을 나타내는 역할 ||
|| ADJP(adjectival phrase)|| 형용사구||
구구조 분석하는 부분을 작성하다 드는 생각인데요, 구구조 분석이 가능하면 문장의 뜻을 파악하는 작업은 또다시 해야 하는걸까요? 구구조 분석을 의미 해석에 어떻게 이용할 수 있을까요? --[Leonardong]
- ProjectGaia/계획설계 . . . . 3 matches
unsorted 레코드를 sort하면서 page 단위 메모리에 적재를 하되, 이때 정렬 대상 레코드를 메모리에 모두 올려서 정렬하지 않고, memory size 10인 자연선택(교재155p)을 이용함. 여기서 memory size 10이라는 것은 10개의 레코드를 올릴 수 있는 공간을 말 하고, 가변 길이 레코드일 경우 실제 사이즈는 변할 수 있다. 자연선택 이후, m-원 다단계 합병(교재166p).
정렬된 레코드를 page(4KB) 단위로 입력, page에는 header와 slot이 차지하는 공간을 제외한 크기만큼 레코드를 저장할 수 있다. 레코드를 page에 입력할 때 비신장 가변길이 저장 방법을 사용, 입력될 레코드가 page의 남은 공간보다 클 경우 다음 page에 입력된다.
master page의 page 수를 읽고 가장 마지막 page로 간 다음, page header의 freespace size를 삽입 예정 레코드의 크기와 비교하여, 만약 해당 page에 충분한 공간이 있다면 그대로 추가 입력, 충분한 공간이 없다면 다음 page를 생성하고 넣어주는 비신장 가변길이 방법을 이용한다.
- ProjectPrometheus/BugReport . . . . 3 matches
* 서평 고칠시에 과거의 서평 내용이 나와야 함.
* 현재 문제에 노출되어 있으나, 현재까지는 문제 없이 사용해왔다. 점검이 필요하다.
* 다른 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 에 소개되어 있다.
- ProjectSemiPhotoshop/기록 . . . . 3 matches
|| 10.17 || 첫미팅: 위키사용법, ''현민이를 고수로!'' 계획, 자료실 계획 ||
* 상민 : MFC MDI 를 이용한 구성
* Contrast Stretching, Histogram Equalisation, 윈도우로 설정한 영역에 대해서만 '7. 영상 질 향상' 적용
- ProjectZephyrus/PacketForm . . . . 3 matches
이 내용의 원본은 cvs의 {{{~cpp ProjectZephyrusServer/document/PacketForm.txt}}} 입니다.
바뀐 내용은 [http://zeropage.org/browsecvs/index.php?&cvsrep=ZeroPage&dir=ProjectZephyrusServer%2Fdocument%2F&file=PacketForm.txt CVS-PacketForm] 에서 확인가능
이 패킷은 사용 안함
- ProjectZephyrus/ThreadForServer . . . . 3 matches
Eclipse를 이용해서 자신이 만든 프로젝트 아무거나 ZeroPage CVS에 저장해 본다.
'''1. CVS 를 이용해서 ProjectZephyrusServerTest 를 다운 받는다. '''
글구 아까 상규한테 MySQL 사용법 대충 들었습니당 -재동-
- PyIde . . . . 3 matches
* BoaConstructor - Scintilla 가 사용된 예를 볼 수 있다.
* 인터프리터에서 타이핑한 내용 화일로 저장하기 ( 이거 되는거 있나? python 사용법을 몰라서 )
- PyIde/BicycleRepairMan분석 . . . . 3 matches
IDE 쪽에 통합시키는 것이 목적이므로, 테스트 코드나 해당 사용된 코드의 가장 바깥단을 구경중.
BicycleRepairMan_Idle.py 가 실마리가 될것 같다. VIM이나 Idle 통합부분의 경우 BRM에서의 facade를 사용한다.
코드 분석방법에서 Eclipse 의 Ctrl + Alt + H 를 눌렀을때 나오는 Method call hierarchy 기능으로 코드를 읽어나가는 것이 유용하다는 점을 알아내었다. StepwiseRefinement 를 역순으로 따라가는 느낌이랄까.
- PyIde/Exploration . . . . 3 matches
PyIde/CodeEditor 분석 & wxStyledTextCtrl API 사용방법들 구경.
Design 을 할때 오버하는 성향이 있는 것 같다. IListener 가 있으면 DIP를 지키는 것이기도 하고, 기존 TestResult 등의 클래스들을 수정하지 않으면서 Listener 들만 추가하는 방식으로 재사용가능하니까 OCP 상으로도 좋겠지만. 과연 당장 필요한 것일까? 그냥 TestResult 를 모델로 들고 있고 View 클래스 하나 더 있는 것으로 문제가 있을까?
BoaConstructor 를 이용, UI 를 만들었다. 처음에는 약간 익숙해지는게 쉽진 않았는데, 위자드 코드를 이제 이해할만 하다.
- PyIde/Scintilla . . . . 3 matches
PythonCard 의 코드를 읽어보면서 이용방법들을 익히게 되었다.
Boa Constructor 나 Pythoncard, wxPython 의 samples 의 StyleEditor 등을 보면 STCStyleEditor 모듈이 있다. 이 모듈에서 initSTC 함수를 사용하면 된다.
환경 셋팅 다이얼로그를 띄우고 싶다면 STCStyleEditDlg 를 사용한다.
- PythonFeedParser . . . . 3 matches
원래 다른 feedParser 사용하다가 한글이 잘 안되는 경우가 있어서 검색 하다가 위 링크의 파서 발견. 훨씬 좋음. 한글 파싱 잘된다. 진작 위 파서로 만들걸.. - [(namsang)]
Python 용 RSS Parser Library. RSS 파싱하는데 단 한줄이면 가능.
PHP 진영에서는? MagpieRSS 를 이용하면 될듯. http://magpierss.sourceforge.net/
- PythonNetworkProgramming . . . . 3 matches
또는, 기본 모듈로 있는 SocketServer 모듈을 사용할 수 있다. 다음은 간단한 예제.
Medusa 는 내부적으로 select / poll 를 이용, 비동기 소켓부분을 구현한다. 소켓 이벤트들 처리에 대한 인터페이스가 아주 깔끔. 참 마음에 든다.
MFC 의 CSocket 를 사용하는 스타일로 프로그래밍을 할 수 있는데, Python 이기에 코드가 더 깔끔. 그리고 Windows/Linux 양쪽 다 가능.
- RandomQuoteMacro . . . . 3 matches
그런데 이 매크로에 의해서 나오는 내용은 어디에 들어있는거죠?
이 내용을 좀 바꿔보고 싶은데 어떻게 해야 할지 알 수가 없네요. -- lordmiss
'''A''' : FortuneCookies 에 있는 내용을 뿌려주는걸로 알고있습니다.
- RandomWalk . . . . 3 matches
* 격자의 가로, 세로의 크기를 입력받을때. 엄청나게 큰 크기를 입력하면 어떻게 할 것인가? 배열의 동적 할당을 이용해서 2차원배열을 어떻게 사용할까? (c/c++은 자바와 달리 2차원배열을 동적할당 할 수 없다. 따라서 각자가 pseudo (혹은 imitation) dynamic 2D array 를 디자인하여야 한다)
||도전자||사용언어|| Source ||
- Randomwalk/조동영 . . . . 3 matches
=== 2학년 1학기 자료구조 레포트용 ===
2차원 동적 배열할때 벡터를 사용해도 좋음. [RandomWalk2/Vector로2차원동적배열만들기] 자료구조 숙제는 [STL]을 사용하면 더 편하게 할수 있는거 같다. - [상협]
- RedundantPower . . . . 3 matches
ups 는 정전이나 순간적인 전력의 약화 시에 ups 안의 내부 전력을 이용하여 컴퓨터의 정상 동작을 보증하지만 Redundant Power 시스템은 Power Suply 를 병렬로 연결하여, 하나의 Power 가 고장 났을 때, 병렬로 연결된 Redundant 로 전원을 계속 공급함으로써 컴퓨터의 정상 동작을 보증한다.
보통 서버급 컴퓨터에서는 ups 와 redundant power 가 둘 다 쓰이는 편이다. 왜냐하면, redundant power 를 사용하더라도 정전 등의 이유로 전원이 아예 나가버리면 컴퓨터가 작동을 중단하고, 설사 ups 가 있더라도, power suply 자체가 오류를 일으킬 소지가 있기 때문이다.
극단적인 예로, redundant power 를 사용시에, 한쪽의 파워를 강제 연결 해지해버려도 컴퓨터는 멀쩡히 잘 동작한다.
- Ruby/2011년스터디/김수경 . . . . 3 matches
= Ruby를 이용한 프로젝트 =
* ZeroPage에서 사용할 수 있는 대화방을 Ruby로 구현한다.
* 특정 이용자만 들어올 수 있게 제한
- RunTimeTypeInformation . . . . 3 matches
MFC에서는 C++에서 표준으로 이용되기 이전부터 매크로를 이용한 방법으로 이것을 지원했으며, 아직도 그 잔재가 남아있다.
MFC에서 CRuntimeClass 구조체, DECLARE_DYNAMIC, IMPLEMENT_DYNAMIC, DECLARE_DYNCREATE, IMPLEMENT_DYNCREATE, RUNTIME_CLASS 를 이용해서 구현하고 있다.
- SRPG제작 . . . . 3 matches
1. 맵을 편집하는 프로그램. 위에서 만든 타일들을 사용하여 맵을 만든다.
3. MDI를 사용해 본다.
1. 위에서 만들어진 맵과 이벤트를 사용하여 프로그래밍을 한다.
- STL/sort . . . . 3 matches
* 한가지 주의할점. 이 sort알고리즘은 컨테이너가 임의 접근(Random Access)을 허용한다는 가정하에 만든것이다. vector나 deque처럼 임의 접근을 허용하는 컨테이너는 이걸 쓸수 있지만. list는 임의 접근이 불가능해서 사용할수 없다. -l[5] 이런 접근이 안된다는 의미 - 따라서 list에서는 컨테이너 내부에서 sort메소드를 제공해 준다.
- SchemeLanguage . . . . 3 matches
* http://www.swiss.ai.mit.edu/projects/scheme - MIT Scheme (처음 사용하기에는 매우 어려움)
* http://www.plt-scheme.org - PLT Scheme (처음 사용자는 PLT Scheme을 적극 권장)
* http://zeropage.org/pub/language/scheme/schemedoc.pdf - Tutorial 정도로 사용할 만한 자료
- SignatureSurvey . . . . 3 matches
HTML Template 부분을 Generating 하는 부분을 하던중, 디자이너가 툴로 만든 HTML 코드를 분석해볼때 SigntureSurvey 의 방법을 적용해보면 어떤 일이 일어날까 의문이 들었다. 그래서 간단하게 실험해보고, 어떠한 View 를 얻을 수 있을까 구경해보다.
[Plex] 사용.
처음써봐서 완벽하게 확신이 들진 않지만, SignatureSurvey 를 사용하면 Duplication Code 를 찾는 방법으로 일반화를 시킬 수 있지 않을까 하는 상상을 해본다.
- SoftIce . . . . 3 matches
* Device Driver 개발 할때 사용하거나, Crack, Debug 등을 할때 사용하는 유명한 툴
* 그리고 설정에서 마우스 사용은 None 으로 하고, Video 테스트는 꼭 해야 함. 그리고 SoftIce 실행은 Boot 로 해서 안될 경우에 Manual 로 하기 바람.
- SpikeSolution . . . . 3 matches
어떻게 보면 우리가 일반적으로 하고 있는 것이다. Visual C++로 해당 라이브러리를 이용한 프로그래밍을 할때 우리는 어떻게 할까? 아마도 Visual C++을 2개를 띄울 것이다. 그리고 한 창에서는 해당 라이브러리가 제대로 작동하는지, 대강 값들을 넣어보고 이리저리 제대로 원하는 일을 하게끔 여러 시도들을 하게 될 것이다. 그렇게 함으로서 미지인 부분에 대한 대강의 선을 잡아놓는다.
이러한 실험들을 XP에서는 Spike Solution이라고 한다. 다른 점이라면, 우리는 보통 실험 코드를 만든 뒤 실전 코드에 바로 붙일 것이다. 하지만 Spike Solution 의 경우는 '실험은 실험에서 끝난다' 에서 다를 수 있다. 보통 Spike Solution 에서 실험한 코드들을 메인소스에 바로 적용시키지 않는다. Spike Solution은 처음 계획시 estimate의 선을 잡기 위한 것으로 메인소스에 그대로 적용될 코드는 아닌 것이다. 지우고 다시 만들어 내도록 한다. 그러함으로써 한편으로는 학습효과를 가져오고, 실전 소스의 질을 향상시킬 수 있다.
- TabletPC . . . . 3 matches
마이크로소프트 전시관에서 관객들의 눈길을 끈 제품은 단연 태블릿 PC 윈도우 XP 에디션. 빌게이츠가 기조연설에서 강조한 때문인지 많은 사람들이 관심을 보였다. 화면 가득한 윈도우 XP의 세련된 UI와 키보드를 대신한 펜이 눈에 들어왔다. 태블릿 PC는 데스크톱PC의 장점을 그대로 살리면서도 유동적이고 미팅이 잦은 비즈니스맨에게 적합한 제품이라고 한다. 향후 펜과 잉크 기능을 살린 애플리케이션이 추가된 버전이 소개될 예정인데, 이는 보험회사나 의사의 처방전 같은 곳에서 사용될 것이라고 한다. 이전 테크놀로지 전시회에서 대기업들이 내놓은 유사한 태블릿 PC가 크게 성과를 거두지 못한 전례가 있는데도 MS가 이렇게 태블릿 PC를 강조한 이유는 무엇일까.
MS가 어쩌면 'MS이니까 가능하다' 로 밀어붙이는게 아닐까. 그리고 이전 전시회때와 현재가 다를 수 있는것은 그만큼 현재의 기술이 발전해서 새롭게 각광받을 수 있는 기술들이 있어서겠지. (TabletPC가 블루투스 지원하고 사이즈도 공책만해지고 데스크톱 모드/렙탑 모드 사라지고 무선인터넷 지원한다면 좋겠다. --;) groove 가 TabletPC 지원할거라고 하던데.. 비즈니스용으로서 확실한 길을 걸을 수 있으려나.. (PDA도 제대로 활용되고 있는지도 모르겠는데..)
- TddWithWebPresentation . . . . 3 matches
그러다가, 최근 프로젝트 하는중에 ModelViewPresenter 라는 개념에 대해 익히게 되었다. 정확한 개념에 대해서는 잘 잡지를 못했지만, HumbleDialogBox 라는 아티클을 보니 대강 감이 온것 같았다. 중요한 건 표현부분에 대해서 가능한한 로직이 남지 않아야 한다는 점이고, 표현부분을 사용하는 쪽 입장에서도 가능한한 추상화레벨이 높은 메소드를 쓸 수 있어야 한다는 점이다.
presenter 부분은 추후 내부적으로 Template 엔진을 사용하는 방향을 생각해 볼 수도 있을것 같다.
이렇게 될 경우 테스트 코드는 다음과 같다. 여차하면 테스트 코드에서 presenter 를 사용할 수도 있었다. (어차피 ViewPageAction 역할을 잘 하느냐가 중요하니까, 거기에 붙는 HTML 들이 어떠하냐가 중요하진 않을것이다.)
- UseCase . . . . 3 matches
그는 UseCase와 UML의 UseCase Diagram은 다른 것이라고 말하며, UseCase를 기록할 때 단순히 NoSmok:IndexCards 에 해당 UseCase의 이름만 기록해 두고, 나머지는 구두로 의견교환을 할 것을 추천한다. 그렇게 하고 시간이 지나면서 구현 내용이 점점 중요해지면 그 구체적인 내용을 카드의 여백에 채워넣으라고 한다.
이렇게 해서 최소 하나의 프로젝트에서만이라도 "제대로 활용"을 해보고 나면 비로소 필요에 따라 "더 많은 것"을 요할 수 있다. 이 때에는 본인 역시 Robert C. Martin과 같이 Alistair Cockburn의 ''Writing Effective Use Cases''(2000년 Seminar:JoltAward 수상)를 권한다. (인터넷에서 초고 pdf화일을 구할 수 있다)
- VisualStudio2005 . . . . 3 matches
1년간 무료로 사용할 수 있다.
* 소스의 수정된 부분은 노란색으로 표시합니다. 저장이 되면 초록색으로 바뀝니다. 아마도 합병(merge)에서 사용될 부분인듯.
* 소스관리는 DB를 이용해서 하는 듯 합니다. MS Access로도 가능한 듯 합니다.
- WindowsTemplateLibrary . . . . 3 matches
WTL은 객체지향적인, Win32 를 캡슐화하여 만들어진 C++라이브러리로 MS 에서 만들어졌다. WTL은 프로그래머에 의한 사용을 위해 API Programming Style을 지원한다. WTL MFC에 대한 경량화된 대안책으로서 개발되었다. WTL은 MS의 ATL를 확장한다. ATL 은 ActiveX COM 을 이용하거나 ActiveX 컨트롤들을 만들기 위한 또 다른 경량화된 API 이다. WTL은 MS 에 의해 만들어졌디면, MS 가 지원하진 않는다.
오픈소스를 거침없이 비판하는 MS의 두드러진 지원이 없는 상황에서, MS는 WTL을 자유롭게 이용할 수 있도록 소스코드를 배포했다. 오픈소스 Common Public License 하에서 배포를 하면서, MS는 소스포지(인터넷 오픈소스 저장소)에 소스를 게재하였다. 소스포지에서의 WTL 버전은 7.5이다.
- Z&D토론/학회명칭토론 . . . . 3 matches
DeleteMe) 이 페이지의 Thread 는 참고일뿐, 학회명칭을 결정한 것은 1월 30일 회의입니다. 그때의 토론내용을 결론부에 적어주는 것이 적절하다고 생각합니다. (즉, ZP로 결정된 이유등에 대해서.)
["Z&D토론/학회명칭토론백업"] 스레드 백업을 해 두었으니, 내용을 비교하신뒤, 오해가 되는 내용들을 고쳐주시면 감사하겠습니다.
- ZP&COW세미나 . . . . 3 matches
|| 김지용, 노수민 || Upload:lz.Luckyzzang_1.0.jar ||
|| 김지용, 노수민 || Upload:lz.Luckyzzang_1.1.jar ||
* 유익하고 즐거운 시간이었습니다...^^ 또 봐요.. 덕분에 배우는 것도 많고 새로운 흥미거리를 많이 발견합니다.. -지용
- ZPBoard/Diary . . . . 3 matches
* 내용
* 날짜, 제목, 내용 보여줌
* 일기 읽기에서 수정 버튼 누르면 제목과, 내용 수정 가능
- ZPBoardHistory . . . . 3 matches
*지금은 사용하지 않아서 역사의 뒷편으로~~~
*세미나 게시판 : 세미나에 관련된 내용을 담고있습니다.
*컬럼 게시판 : 컬럼의 내용이 모두 위키에 녹아 들었습니다.
- ZPHomePage/20041228 . . . . 3 matches
== 회의내용 ==
* 캐릭터, 로고, 배너 제작 => 후에 뱃지 제작에도 이용
* RSS로 게시판내용 출력
- ZeroPageEvents . . . . 3 matches
|| 일시 || 제목 || 내용 || 참여자 ||
|| 4.11. 2002 || ["SeminarHowToProgramIt"] || . || 세미나 & 진행 : ["JuNe"][[BR]] 참가 : 이선우, ["woodpage"], ["물푸"], ["1002"], ["상협"], ["[Lovely]boy^_^"], ["neocoin"], ["구근"], ["comein2"], ["zennith"], ["fnwinter"], ["신재동"], ["창섭"], ["snowflower"], ["이덕준"], 채희상, 임차섭, 김형용, 김승범, 서지원, 홍성두 [[BR]] 참관: ["최태호"], ["nautes"], ["JihwanPark"], 최유환, 이한주, 김정준, 김용기 ||
- ZeroPageServer/CVS계정 . . . . 3 matches
* ZeroPageServer 의 CVS의 읽기 전용 계정은 '''cvs_man''' 에 암호는 '''asdf''' 이다.
* 읽기 전용 cvs 계정 세팅
* CVS 계정은 신청하시기 전에 최소한 ["CVS"] 에 있는 ["CVS/길동씨의CVS사용기ForLocal"] 라도 따라해 보시고 신청하세요.
- ZeroPageServer/MySQL계정 . . . . 3 matches
["ZeroPageServer"] 에서 돌아가는 ["MySQL"]의 계정으로서 ["MySQL"] 데이터 베이스를 사용할수 있는 권한이다.
* ["MySQL"] DB 를 사용할수 있다.
* ["MySQL"] DB 를 원격에서 접근해서 사용할수 있다. 즉, 안정적인 DB 서버 프로그래밍이 가능하다.
- ZeroPageServer/계정신청방법 . . . . 3 matches
* 메일 내용 : 이름, 학번, 원하는 계정 종류, ID, 가입년도
==== 계정 종류 (사용하실 것만 신청하세요.) ====
=== CVS 읽기 전용 계정 ===
- ZeroPageServer/계정신청상황 . . . . 3 matches
현재 제로페이지 회원들 계정 신청 상황. (점검용. 2002)
* ''' 접속시 주의사항''' : ["ZeroPageServer/set2002_815"]에서는 ssh2 텔넷을 지원합니다. 접속시 [http://zeropage.org/pub/util/putty.exe putty]나, 접속하실때 ssh2 지원 client를 사용하세요. ssh1전용인 zterm은 작동하지 않습니다.
- ZeroPage성년식/준비 . . . . 3 matches
|| 축사 내용 || 연락 담당 || 연락완료여부 ||
||06|| 고준영, 양병모, 이원희, 이차형, 성우용 || 김준석 || O ||
||11||고한종,정진경,송치완,추성준,장용운,이민규|| 김태진 || O ||
- callusedHand/books . . . . 3 matches
공개 소스 방식의 개발은 많은 개발자들의 자발적인 참여를 이끌어낼 수 있습니다. 그렇기 때문에 낭비라고 볼 수 있는 많은 동류의 소프트웨어 개발, 무수히 많은 패치들, 중복된 작업들이 존재합니다. 그리고 이런 양상은 혼란스러워 보입니다. 하지만 이것을 더 나은 소프트웨어를 개발하기 위한 과정이라고 보는 것이 타당할 듯 합니다. 소프트웨어 산업에도 약육강식, 적자생존의 법칙이 적용됩니다. 엔드 유저가 찾고 엔드 유저의 눈에 보이는 것은 경쟁 속에서 살아남은 몇 가지 소프트웨어입니다. 그리고 개발자들의 자발적인 참여는 성당 개발 방식에서 개발자들을 기계화하는 것과는 다릅니다. 참여 개발자라면 적어도 그 프로그램에 대한 관심, 열정을 가지고 있으며 이는 자율이라는 점에서 더욱 힘을 얻어 개발자는 개발에 열중하게 될 것입니다. 이럴때 개인의 창의력, 프로그래밍 능력이 극대화될 수 있을 겁니다.
저는 개발자의 필요에 의해 소프트웨어 개발이 진행되기 때문에 정작 엔드 유저가 필요로 하는 프로그램이 적다는 말에 반대합니다. 개발자도 사용자입니다. 개발자는 컴퓨터를 개발의 도구로만 보지 않습니다. 채팅방에서 시시콜콜한 대화를 나눌 수도 있고, 음악을 듣거나 영화를 볼 수도 있습니다. 바로 이러한 입장에서 개발의 필요가 나타나는 것입니다. 그리고 소비자의 필요와 동 떨어진, 컴퓨터 과학에 치우친 개발이라고 해도 이것은 컴퓨터 산업에 힘을 실어주기 마련입니다. 미분, 적분과 같은 실생활과 관계가 없을 것 같은 이론이 오늘날 여러 산업 분야에 큰 토대가 되고 있지 않습니까?
요구 사항 분석, 시스템 디자인, 세부 디자인 과정이 구체적으로 진행되지 않거나 문서화가 이루어 지고 있지않는 점입니다. 이는 프로그램의 유지보수, 재사용 측면에서 볼 때 심각한 문제로 한 프로그램을 개선시키고자 하는 개발자가 있을 때 디자인에 관한 문서가 없으면 많은 시행 착오를 겪을 수 밖에 없으며. 좋은 코드들이 그냥 버려지게 되는 경우가 많아 집니다. 이것들은 분명히 낭비라고 볼 수 있습니다. 그러므로 문서화 할 필요가 있습니다.
- comein2 . . . . 3 matches
* 데이터베이스 튜닝 (대용량 데이터베이스 기반 효율적인 QUERY문 생성 방법)
* E-BANKING 시스템 기반 사용자 인증 방법에 대한 연구
* ["코바용어정리"]
- intI . . . . 3 matches
integer의 i 인거지?? 그럼 언제부터 int i 라는 변수가 사용된 것일까?? 80년대의 C언어 책에서도 int i 를 사용하고 있었을까??
포트란인가 코볼인가 파스칼인가.. 아무튼 이 셋중의 한 언어에서 그렇게 쓰던것이, 하나의 관용이 된 것이라고 들은 기억이 있음 - 임인택
- java/reflection . . . . 3 matches
* classpath를 이용해 현재 프로젝트내의 class가 아닌 외부 패키지 class의 method를 호출하는 방법.
* 프레임워크에서 많이 사용되는 방법이라고 한다.
* ORM(Object-Relational-MApping)이 아닌 방식으로 DAO를 만들 때 사용되기도 한다.
- mantis . . . . 3 matches
* /core/user_api.php 에서 416line 을 아래와 같이 바꿔서 이메일 인증이 아니라 임시 암호를 부여하고, 사용자가 바꾸게끔 한다.
* administrator , 암호는 root 로 로그인 후에 계정관리에서 preference 부분에 가서 제일 하단 부에 있는 언어 선택을 한글로 해야 한글로 메뉴를 보고 한글을 사용할 수 있습니다.
테이블을 만들때 euc-kr 으로 만들었고 euc-kr 을 mantis 에서 사용하기 위해 아래와 같이 mantis 소스를 수정 하였습니다.
- ㄷㄷㄷ숙제2 . . . . 3 matches
1.if 문을 이용한 업앤다운 ;;
2.switch 문을 이용한 업앤다운;;
if문에서 못했던 오류 메세지가 switch문 에서는 default값을 사용해서 쉽게 되더라구요..ㅠㅠ..
- 가위바위보 . . . . 3 matches
렌덤 함수 이용을 가르치기 위한 숙제입니다
입력으로 사용자의 가위, 바위, 보를 받고
||도전자||총개발시간||소스라인수('''주석제외''')||사용언어|| Source ||
- 강희경/도서관 . . . . 3 matches
|| 3 || [달라이라마와도올의만남] || 김용옥 || [강희경] || ||
|| 3 || [달라이라마와도올의만남] || 김용옥 || [강희경] || ||
|| 7 || 도올논어 || 김용옥 || [강희경] || ||
- 개인페이지 . . . . 3 matches
ZeroPage 위키의자 이고, ZeroPagers 라면 누구나 가져야 하는 위키내의 자신의 소개 페이지 이다. 개인 페이지에 실리는 정보는 자신의 소개 이외의 사항은 자율적으로 작성하며, 어떻게 사용해도 상관 없다.
개인페이지를 만들지 않으신 분들이 보이는데요. 개인 페이지는 여러 의미와 용도가 있습니다. 기본은 위키를 이용한 자신의 계획과 일정 관리, 그리고 공통된 관심사를 가진 사람들끼리 자연스럽게 생각을 공개해서 모이게 유도 합니다. 그리고 개인 공간을 가짐으로 해서 위키에 대한 좀더 높은 접근 횟수를 유도 합니다. 가장 중요한 이유는 누가 누군지 확실히 알수도 있겠죠? 일단 프로젝트에 참여하는 모든 분들은 개인 페이지를 만들고 관리 합시다. --상민
- 고한종/배열을이용한구구단과제 . . . . 3 matches
printf("배열을 이용한 구구단. n을 입력하세요.");
* 오 ㅋㅋㅋ 윤종하 게임 만들면서 열심히 공부했나보네. 근데 한 가지 말해주자면 getch()를 쓰면 stdin 버퍼에 입력받은 값이 계속 남아있어서 무한루프같은 문제가 생길 수 있어. 그래서 fflush(stdin);이라는 문장을 getch()를 사용한 이후에 한 번 써주는게 좋아. 근데 코드 대충 읽어보니까 n 누르는거 아니면 while 계속 돌아갈듯?- [윤종하]
* 우연히 들어와서 봤는데 fflush()는 output stream에 사용하도록 만들어진 함수고, fflush(stdin)은 MS의 컴파일러에서만 지원하는 거라서 linux쪽에서는 작동하지 않는다고 하니까 그것도 알아두는 것이 좋지 싶어요. - [서민관]
- 고한종/십자가돌리기 . . . . 3 matches
// ㄴ#include<windows.h> 선언후 사용.
printf("사용하실 스케일을 입력하세요.\n");
* 이 코드 읽기가 무섭다 그냥 이런 게 있구나 해야겠어 ㅋㅋ - [장용운]
- 공개선언 . . . . 3 matches
다짐한 내용이 작심삼일이 되지 않으려면, 공개적으로 다짐을 밝히면 도움이 될 것 같네요.
[전문가되기세미나]의 내용을 바탕으로, 나의 노력으로 전문가가 되자. 비록 시작은 늦더라도, 맺은 열매는 시기에 늦지않게, 알차게 !
미친듯이 책 읽기.(읽을 분야와 책이 한 둘이 아니다. 도서관을 십분 활용하자.)
- 공업수학2006 . . . . 3 matches
'''허준수''' , 김상섭, 유용안, 배성민, 나휘동, 하기웅, 문보창, 강인수, 이창섭, 박영창, 라범석, 이도현
|| 2 || 허준수 유용안 배성민 하기웅 || 3의배수 + 2 ||
== 질문내용 ==
- 권영기/web crawler . . . . 3 matches
Python을 이용해서 Web Crawler를 제작하면서 Python의 사용법을 익히고, 원하는 웹 페이지를 긁기 위한 Web Crawler를 제작한다. (네이버웹툰(돌아온 럭키짱, 신의 탑...), 네이버 캐스트, 그 외의 각종 웹페이지..)
* http://www.crummy.com/software/BeautifulSoup/ - 웹분석 라이브러리 BeautifulSoup 이용해보기
- 금고 . . . . 3 matches
새로 개발한 금고의 견고함을 측정해서 광고하려고 하는데, 금고 K개를 가지고 이 빌딩의 F층이 몇 층인지를 알고 싶다. 가능한 방법은 임의의 층에서 직접 금고를 떨어뜨리고 그 결과를 확인 하는 것 뿐이다. 물론, 부서진 금고는 다시 사용할수 없으며 부서지지 않았다면 다시 사용할수 있다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- 나를만든책장/서지혜 . . . . 3 matches
* 실용주의 프로그래머
* 마음을 가라앉히고 우주적 기운을 불러들인다는 내용이 소름끼치게 오그라들지만(기-chi-의 오그라드는 표현인듯) 고양이 이야기가 많이 나와서 읽었음. 게슈탈트 스캔이라고 동물의 신체/심리 상태를 스캐닝 한다는 내용도 대뇌피질 반사! 해서 보면 나름 재미있는 책.
- 남자들에게 . . . . 3 matches
* 감상 : 음 이책은 주관적인 면이 강한거 같다. 뭐 이책의 특성상 자기의 의견이 많이 드러날 수 밖에 없는거 같다. 이책은 수필 스타일로 씌어 졌다. 그래서 평소 로마인 이야기에서와 같이 뭔가 자신의 모습은 감추는 듯한 시오노 나나미씨의 모습과는 다르게 이 책은 온통 시오노 나나미씨의 생각들이다. 그래서 더 흥미로웠는지도 모른다. 이책에서는 시오노 나나미씨가 남자들에게 말하고 싶어하는 여러가지 내용이 나와 있었다. 음 바로 어제지만 좀 많이 까먹어서 별로 많이 생각나지는 않지만 몇가지만 적으면....
* 너무 원칙에만 충실하려고 하고 다른 사람에게도 그 원칙을 강요하는 사람. 어느정도 공감이 가는 내용이었다. 그리고 나에게 적용해서 내가 고칠점은 무엇인가도 생각해 보았다. 자신이 가지고 있는 원칙이 무조건 옳고 다른 사람도 그렇게 해야 한다고 생각하는것은 정말 피해야할 생각인거 같다.
- 노스모크모인모인 . . . . 3 matches
NoSmok:노스모크모인모인. 기존의 모인모인을 커스터마이징한 독자적인 버전. ZeroWiki가 새로 이용할 버전.
* 문서의 내용보다는 문서의 이름에서 문제가 발생하는것 같습니다..
1. 일전에 창준이 형이 말씀하신 cgitb 를 적용해 본다.
- 데블스캠프2002 . . . . 3 matches
|| 날짜 || 요일 || 참가자 || 참가자가 가르칠 내용 ||
프로그래밍을 위한 연습문제들 정리. (문제, 내용, 고른 이유 등은 관련 페이지 참조)
1. 그날 가르친 것을 기준으로 실습을 할 내용을 준비하고
- 데블스캠프2003/셋째날/후기 . . . . 3 matches
* 공부해보고 싶은 새로운 내용을 배워 기분 좋다. 문제에서 하루 풀려서 머리가 너무 잘 돌아간다.ㅎㅎ -[Leonardong]
* 나 역시 새로운 언어들을 보면서 오길 잘 했다는 생각이 들었다. 앞으로 종종 사용할 수 있는 언어들은 사용할만한 기회가 오면 좋겠다. --[snowflower]
- 데블스캠프2005/Python . . . . 3 matches
* dir() : 인수에 객체를 전달하면 객체 내에서 사용할 수 있는 함수 리스트를 리턴한다.
임의의 객체 저장. 자료의 순서를 갖지 않는다. 키(key)를 이용해 값(value)에 접근한다.
내부적으로 해쉬(hash)를 이용하여 자료를 저장한다. 빠른 속도로 자료를 찾을 수 있다.
- 데블스캠프2005/월요일 . . . . 3 matches
위키에 대한 소개 (새내기의 대부분이 사용법을 아는걸로 추측...)
(15)textIntputBox와 버튼이벤트를 이용한 입력처리
(5)#2 : 함수를 이용한 곱셈기
- 데블스캠프2006/SSH . . . . 3 matches
* 기타 파일이나 이미지 링크 걸때 사용
* ftp 서버 설정을 익명 접속 허용으로 바꾼다.
* 문제상황 : 리눅스용 프로그램을 만들어야 하는 과제가 나왔다. 해당 과제는 컴파일과 실행을 리눅스에서만 해야 한다. 그런데 vi로 하기는 싫고, visual studio 나 editplus로 작업을 하고 싶다. 어떻게 할까?
- 데블스캠프2006/목요일후기 . . . . 3 matches
고준영, 김준석, 성우용, 송지원, 윤영준, 이송희, 이원희, 이장길, 이차형, 정승희, 주소영
심지어는 딴짓도 막 해요~ 진짜 수업하시는 내용들 진짜 재밌고 막~좋은거 많은데~ 너무 아깝다는 생각이 들어요~
상호작용이 중요한 강의를 준비할 때에는 청중의 반응 속도를 충분히 느리다고 가정한 후 목표를 잡아야한다는 생각이 든다.
- 데블스캠프2006/준비 . . . . 3 matches
- 월 : 표준입출력, 문법, 함수, MSDN, 비트연산, 아스키 / 수생, 유선, 용안, 정현, 규완
- 목 : 클래스, 객체지향, API / 선호, 준수, 용재, 창섭 , 재혁
* 겁내 빡빡한데 나도 데블스 캠프 시간중 정해지지 않은 시간 혹은 대타용으로 좀 널럴한걸로 하나 할께~ 여차 하면 [RUR-PLE] 재탕도 ㅋ -[상협]
- 데블스캠프2006/화요일후기 . . . . 3 matches
성우용 : 오늘의 강의도 좋았어요....약간(?) 어려움이 있었지만 선배들의 도움도 받고 해서 문제를 해결해서 기분 좋았어요....
김준석 : dir, mycopy, tar, untar 너무 좋았습니다. 코딩하는게 확실히 재밌기도하고 몸에 익숙해지기도 합니다. 새벽을 새면서 머리가 좀 굳기는 했지만 이해할때까지 붙어서 설명해주셔서 정말 감사합니다. msdn의 사용방법을 어느정도 깨우친것 같아서 얻은것도 많다고 생각합니다
제가..;;잘 설명도 못하고 잘못 알려주고 그런게 있어서 .ㅋ;; 참 미안 했어용.ㅋㅋ
- 데블스캠프2011/넷째날/Git/권순의 . . . . 3 matches
// myCmdBase.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
// 사용자 입력을 띄어쓰기 단위로 나누고 몇개로
// 가장 앞 문자열을 이용하여 일치하는 커맨드를 가져온다.
- 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/강성현 . . . . 3 matches
* HashMap을 사용하여 단어와 빈도수를 저장함. 저장할 빈도수가 2개라 int형 2개를 저장하는 Int2 클래스를 만듦.
* 파일입력은 FileData 클래스를 만들어서 사용. java.util.Scanner를 사용하였음.
- 데블스캠프2012 . . . . 3 matches
|| 1 |||| [:데블스캠프2012/첫째날/배웠는데도모르는C 배웠는데도 모르는 C] |||| 웹 서비스구축 전반에 관한 이야기 |||| 점심? |||| |||| [http://zeropage.org/seminar/62072 재귀함수를 이용한 문제 해결] |||| [http://zeropage.org/seminar/62080 C로배우는 C++의원리] || 8 ||
|| 2 |||| 배웠는데도 모르는 C |||| 웹 서비스구축 전반에 관한 이야기 |||| [http://zeropage.org/seminar/62041 소켓, 웹, OpenAPI] |||| |||| 재귀함수를 이용한 문제 해결 |||| C로배우는 C++의원리 || 9 ||
|| 백트래킹을 이용한 알고리즘 문제 해결 || [정진경](21기) ||
- 데블스캠프2013/둘째날/API . . . . 3 matches
내용 <input name="text" size="40">
<th>내용</th>
echo '<script>alert("내용이 없습니다."); location.href="index.php";</script>';
- 동일동일짱 . . . . 3 matches
HTML 의 모든 소스의 내용을 마스터 하고.. 소스를 이용 홈페이지를 만들어 보도록 하자..
홈페이지의 내용은 무엇으로 할까... 누가 추천좀 해바~~ ^^
- 땅콩이보육프로젝트2005 . . . . 3 matches
* 현태: DB이용 단어장 만들기
* DB이용 단어장 만들기
* word를 기준으로 next word를 찾는다. 필요하면 frequency도 이용한다.
- 레밍즈프로젝트/프로토타입/마스크이미지 . . . . 3 matches
= 용도 =
레밍이미지와 배경을 자연스럽게 합성하기 위해서 사용한다.
플레시, 포토ㅤㅅㅑㅍ에서 사용되는 마스크이미지의 개념과 같다.
- 레밍즈프로젝트/프로토타입/에니메이션 . . . . 3 matches
대안. 수동으로 진행되는 에니메이션 작업을 클래싱 할 수 있을 듯-_- 버튼에서 활용 가능 할 듯
이 클래스는 더블버퍼링과 bmp그리기를 자동화 시켜둔 [레밍즈프로젝트/그리기DC](CmyDouBuffDC)를 사용하여 드로잉을 수행한다. (CDC를 사용하는 도 있지만... 편의를 위해서...)
- 레밍즈프로젝트/프로토타입/파일스트림 . . . . 3 matches
CFile 클래스 내의 Write() 함수를 이용해서 'A' ~ 'Z' 까지 써 넣는 함수 (OnWriteFile())와,
기본적인 Read() 함수도 사용할 것 같다.
그 나머지 과정은 일반적인 작업 내용은 거의 동일하므로 기본적인 CFile 부분을 숙지해야 할 것 같다.
- 로마숫자바꾸기 . . . . 3 matches
* 로마 숫자는 ⅩⅠⅤ 세 종류만 사용한다.
* '''ㅈ + 한자키 '''에 로마숫자있다. 또는 여기 페이지에서 복사해서 사용.
* 참고용 로마숫자
- 반복문자열/임다찬 . . . . 3 matches
[Refactoring]가운데는 임시 변수를 없애는 내용이 나옵니다. 임시 변수는 언제 있으면 좋을까요?
const에 대해서 배웠다면 char* 대신에 const char*를 사용하는 것이 좋습니다.-- [Leonardong]
const char*는 사용안해봤어요- [임다찬]
- 사랑방 . . . . 3 matches
''약간은 사기라고 봐도 됩니다. 퀵소트에서 첫번째 원소를 피봇으로 잡는 경우가 헤스켈에서 아주 간단히 표현될 수 있다는 점을 이용한 것이죠 -- 첫번째가 피봇이 되면 문제가 생기는 상황들이 있죠. 보통 헤스켈의 "간결성"을 강조하기 위해 전형적으로 사용되는 예입니다. 뭔가 독특한 점을 강조하기 위해 쓰인다는 것 자체가 이미 약간의 과장을 암시하고 있습니다. see also Seminar:QuickSort --JuNe''
negative LA assertion을 쓰면 간단합니다. {{{~cpp &(?!#\d{1,3};)}}} RE를 제대로 사용하려면 ''Mastering Regular Expressions, 2Ed ISBN:0596002890''를 공부하시길. --JuNe
- 삼총사CppStudy/Inheritance . . . . 3 matches
아.. 이 문제를 어떻게 하면 좋을까~? 이럴때 사용할 수 있는 스킬이 바로 '''상속(Inheritance)'''이다.
protected: // protected를 사용한 이유는 상속받은 클래스에서도 이 멤버들을 사용할 수 있게 하기 위함이다.
- 상협/2DAlca . . . . 3 matches
|| 10.1 ||실습 시간에 타이머 사용방법 익힘, 타이머로 공 움직이게 해봄|| 1시간 ||
|| 10.17 ||인수에게서 멀티미디어 타이머와 더블 버퍼링 사용 방법 배움|| 40분 ||
|| 10.18 ||알카로이드 멀티 타이머및 더블 버퍼링 적용함. 예전거(튕기기 판 움직이기) 작동 안함 -_-;|| 1시간 15분 ||
- 새싹교실/2011/AmazingC/5일차(4월 14일) . . . . 3 matches
= '''수업내용''' =
* 명령을 반복할 횟수를 알고 있을때 사용
* 따라서 명령을 반복할 횟수를 모르고 있을때 사용하면 편리
- 새싹교실/2011/AmazingC/6일차 . . . . 3 matches
= '''수업내용''' =
6일차를 너무 늦게 올렸다. 얘들아 미안 ㅋㅋㅠㅠ 함수에 대해 좀 자세하게 알려주고 싶어서 2파트로 나눴다. 함수의 기본적인 개념들이라, 그리 어렵진 않았을 것 같다. 그리고 삼항 연산자를 이용해서 팩토리얼을 계산하는 방법도 알려주었다. 다음 시간엔 지역변수,전역변수,정적변수에 대해 배우고, 함수를 이용한 다양한 연산을 연습합니다.-[[신기호]]
- 새싹교실/2011/GGT . . . . 3 matches
* 반드시 ZeroWiki에 작성해주세요. 하위 페이지를 만드는 것도 허용합니다.
* 여러분들이 배운 내용을 정리해주세요. 학습효과가 더 커집니다.
* 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
- 새싹교실/2011/學高 . . . . 3 matches
* 반드시 ZeroWiki에 작성해주세요. 하위 페이지를 만드는 것도 허용합니다.
* 여러분들이 배운 내용을 정리해주세요. 학습효과가 더 커집니다.
* 참고로 ZeroWiki는 MoniWiki Engine을 사용하며 Google Chrome이나 Mozila Firefox, Safari보다는 Internet Explorer에서 가장 잘 돌아가는 것 같습니다.
- 새싹교실/2011/學高/6회차 . . . . 3 matches
=== 가르친 내용(fact) ===
=== 배운 내용(fact) ===
=== 배운 내용(fact) ===
- 새싹교실/2011/무전취식 . . . . 3 matches
== 주요내용 ==
C언어 수업시간 내용 복습 및 보강
== 수업내용 및 후기 페이지 링크 ==
- 새싹교실/2011/무전취식/레벨11 . . . . 3 matches
이진영 : 저번주에 창설 휴강해서 집에 일찍 갔는데 원래 선대 공부를 할려했는데 근데 일주일동안 잠만 많이 잤음. 그래서 일요일에 아빠 거래처 사람이 앵무새를 갖다주심. 근데 말은 못하는 애들같음. 근데 제가 조류를 싫어함. 원래 고양이를 기르려했는데 못기르는데 동네 고양이가 현관문 열어뒀더니 새들한테 달려들음. 그래서 새를 이름 지음. '모토' '로라' 근데 새가 엄청 조용했는데 하루 지나고 짹째댐. 때려야겠음. 그리고 어제 월요일이라서 남자친구 만났는데 인천 대공원갔음. 그래서 자전거 탔는데 사람 너무 많았음. 근데 한 30분타고 힘듬. 너무 덥고 그래서 쉬다가. 자전거 반납함. 그러고 롯데월드감. 그래서 롯데월드가서 야간이랑 이벤트해서 1만 5천밖에 안하는데 사람 너무 많아서 ㅠㅠ 별로 못탔는데 그래도 유명한거 다탐. 씐난다! 번지드롭 봤는데 초딩 4명이 스크림 가면쓰고 손흔드는데 많이 무서웠음. 그리고 자이로 스윙 무서웠는데 어제 타니까 별로 안무서웠음 'ㅅ'
이소라 : 저는요. 제가 부산 안가봐서 부산 가볼려구용. 그리고 시골 가서 전라북도 부완가서 작은할아버지 집에가서 친척애들 공부 갈켜주러 갈려구요. 그리고 알바를 하고싶은데 안써줄것 같아요. 그리고 영어 토익 말고 회화를 먼저 해볼려구요.
이진영 : 저도 학점 관리 할려구용.
- 새싹교실/2011/씨언어발전/3회차 . . . . 3 matches
== 수업내용 ==
for, while 등에 대한 사용법
main 도 함수의 일종, 같은 작업을 여러번 반복해서 쓰지 않고 함수를 이용해 쓸 수 있다.
- 새싹교실/2011/씨언어발전/6회차 . . . . 3 matches
== 수업내용 ==
* 포인터를 이용한 동적할당
* 포인터에 대해 개념을 정리하였다. malloc 을 이용하여 동적할당을 하는 방법을 배웠다. 이거 배우기 전엔 그냥 배열에서 a[99999] 이랬는데 ㅋㅋㅋ
- 새싹교실/2011/앞반뒷반그리고App반 . . . . 3 matches
* assert 처음알았어요 유용할거같애요 - [이민규]
* 오늘은 포인터를 배웠어요. ********별-. 선언할 때 int *a;로 선언하게 되면 *a는 a의 주소에 있는 값을 나타내는거였지요. 음.. 하다가 현 형이 하던 프로젝트에 잠깐 지워놓고 예시를 들었다가 xcode를 끄는 바람에 소스가 날라가버렸지요.... 포인터가 있으면 지정된 크기보다 큰 용량의 자료도 불러오기 쉽다는 것도 배웠구요. 아무튼 유용하게 쓸 수 있을거 같아요 -[김태진]
- 새싹교실/2012/새싹교실강사교육/2주차 . . . . 3 matches
-과제 확인, 프로젝트 생성, GCC사용법, 컴파일, main함수, 변수, Data Type, 연산자, 입출력 기본 함수, 제어문 -
2. 과제 검사, 수업을 받고 전주의 내용 물어보기, 그리고 한주간의 일 물어보기. 강의시간 물어보기.재미있는 과목과제. 등
5. 학생들이 직접 Wiki에 내용 적게 해보기
- 새싹교실/2012/아무거나/1회차 . . . . 3 matches
[http://wiki.zeropage.org/wiki.php/%EC%83%88%EC%8B%B9%EA%B5%90%EC%8B%A4/2012/%EC%95%84%EB%AC%B4%EA%B1%B0%EB%82%98/1%ED%9A%8C%EC%B0%A8?action=edit 1회차 내용 고치기]
=== 수업내용 ===
1. 한줄씩 디버깅 f10 을 이용하면 그 말 그대로 실행된다 한줄씩
- 새싹교실/2012/아우토반 . . . . 3 matches
|| 강사 || 장용운 ||
|| 강사 || 장용운 ||
* 새싹 교실을 통해서 내가 C에 대해 알고 있는 것들을 되짚어 보고, 후배님들을 잘 이끌어 줄 수 있는 기회가 되었으면 좋겠습니다. - [장용운]
- 새싹교실/2012/아우토반/뒷반/4.13 . . . . 3 matches
|| 강사 || 장용운 || 지각 ||
*오늘 수업은 한마디로 처참했다.아니, 수업내용이 처참한게 아니라 수업을 받은 내가 처참했다.운지 하기를 여러번 결국 보다못한 새싹교실 샘이 가르쳐 주는 지경에 까지 이르게 되었다.새싹교실을 하는 보람이 있어야 하지 않겠냐고 푸념을 하시는데 죄송스럽기 그지없었으나 배울 의지는 분명히 있었다.다만 공부할 의지가 강하지 않은 것 뿐.두개의 의지는 분명히 별개라는 것을 느꼈다.공부할 의지를 불살라야 샘도 가르치는 보람이 있을텐데 불초한 제자라 샘도 고생을 많이 하실 듯.-박상희
*이번 수업에서 내준 과제는 뭐라 말하기 애매했다. 할 수 있을 것 같은데 안되더라..ㅠㅠ. 용운형은 간단하다더라.... 솔직히 앞으로의 생활이 막막하다. 어떻게든 되겠지? - [김태헌]
- 새싹교실/2012/열반/120326 . . . . 3 matches
= 수업 내용 =
= 다음 수업에 배울 내용 =
* 이번 수업에는 많은 내용을 못다룬 것 같습니다. 저번 시간에 결석한 민규에게 보충수업을 안해줘서 수업이 약간 디뎌진 것 같습니다. 또 함수의 개념을 새싹들이 어렵게 느끼는 것 같습니다. 변수의 스코프를 가르친 뒤 재귀함수로 별찍기를 해볼까 합니다.
- 새싹교실/2012/열반/120514 . . . . 3 matches
= 수업 내용 =
* 재귀 함수를 응용하려면 많은 연습이 필요합니다.
* 내용이 많아 주석을 많이 달지 못했습니다. 직접 컴파일하고 실행해보고, 궁금한 점은 질문하시기 바랍니다.
- 새싹교실/2013 . . . . 3 matches
* 위키를 사용하지 않는 팀들은 그럼 새싹교실 스터디만 진행하는 건가요? 아니면 다른 곳에 기록을 한다거나 정모에서 배운 내용을 공유한다거나 다른 활동을 하는 건가요? 위키를 사용하지 않더라도 링크 없이 반 이름 정도는 리스트에 올려두는 게 어떨까 싶은 생각이 듭니다. - [김수경]
- 새싹교실/2013/라이히스아우토반/1회차 . . . . 3 matches
= 수업 내용 =
== 내용 ==
앞으로는 모든 내용을 이해하기 위해서 잘 배워야겠습니다.
- 새싹교실/2013/라이히스아우토반/4회차 . . . . 3 matches
= 수업 내용 =
== 내용 ==
* Can't Save가 떴을 땐 당황하지 말고, 작성한 내용을 클립보드에 보존한 뒤(Ctrl+C) 새로고침을 한 뒤 붙여넣고 저장할 것.
- 새싹교실/2013/라이히스아우토반/7회차 . . . . 3 matches
= 수업 내용 =
* 사용하는 방법 ex) {{{arr[3]}}}; {{{arr[i]}}};
* Can't Save가 떴을 땐 당황하지 말고, 작성한 내용을 클립보드에 보존한 뒤(Ctrl+C) 새로고침을 한 뒤 붙여넣고 저장할 것.
- 새싹교실/2013/양반/2회차 . . . . 3 matches
= 수업 내용 =
* 지난 시간 내용 복습
== 내용 ==
- 새싹교실/2013/양반/4회차 . . . . 3 matches
= 수업 내용 =
* 지난 시간 내용 복습
== 내용 ==
- 새싹교실/2013/양반/6회차 . . . . 3 matches
= 수업 내용 =
* 지난 시간 내용 복습
== 내용 ==
- 새싹교실/2013/양반/7회차 . . . . 3 matches
= 수업 내용 =
* 지난 시간 내용 복습
== 내용 ==
- 새싹교실/2013/이게컴공과에게 참좋은데 말로설명할 길이 없네반 . . . . 3 matches
- 진도: 메모리 구조(미약하게), printf와 scanf 정말 간단하게 다음시간에 더 자세하게 쓰임새 알려주어야 할뜻 , 제어문 간단한 사용법과 필요성
- 진도 : 이전에 배운 내용 총 복습 및 문제풀이.
- 이번 회차의 전반적인 계획 : 시험끝난 주이므로 브레이크 타임. 입출력 시스템과 컴퓨터 전반적인 내용에 대해서 설명한다.
- 새싹스터디2007 . . . . 3 matches
* 팀원: 주희주(07) 최창원(07) 조영선(07) 한도용(07) 정현준(07) 장은하(07) 최재용(07)
* 팀원: 이창훈(07) 정형준(07) 한도용(07) 김성호(07)
- 새싹스터디2007/영동 . . . . 3 matches
= 진행예정 내용과 진행상황 =
* 포인터 기초적인 부분.(선언 및 사용/값에 의한 전달과 포인터에 의한 전달)
||이름||포인터를 이용한 두 수의 swap||
- 설득의심리학 . . . . 3 matches
* 중공군이 백일장 대회 상품을 담배, 과일 몇개 같이 보잘것 없는 것들만 내건 이유가 그것이다. 일시적 행동이 아닌 지속적 행동을 유발하기 위해서이다. -> 자녀 교육에도 이를 이용할 수 있다.
* 인민사원 집단 자살 사건, 경마장에서 배팅에 자신이 없는 사람들은 다른 사람이 많이 배팅한 말에 배팅한다. 이를 이용해서 돈을 벌기도 한다.
* 호감의 법칙을 사용한 집단간의 갈등 극복
- 성의과학 . . . . 3 matches
* 나는 이 수업은 2명의 교수에게서 들었다. ( 고로 재수강이었음 :( ) 한 분은 잘 기억이 안나지만 남자 강사였고 다른 한분은 여자 강사였다. 단순히 성으로 구분해서 평가하기는 이상할지도 모르지만 후자의 여자 강사분으로부터 더 좋은 점수를 받을 수 있었고 더 좋은 강의를 들을 수 있었다. 일단 그 이유로는 시청각 자료의 활용과 거침없는 표현들 이었던 것 같다. 시청각 자료로는 성 정체성을 주제로 다루는 영화( 제목은 잘 기억이 나지 않는다. )를 보여줬는데 내용이 지루한 것이 아니어서 수업시간에 집중해서 볼 수 있었다. 무엇보다도 인상적인 부분은 강의때 표현하는 방식이었다. 교과서에 나와있는 내용을 그냥 읽는 것이 아니라 나름대로의 경험(?)에 빗대어서 설명을 해 나갔다. 그리고 남자 학생들의 수보다 여자 학생들의 수가 더 많았다는 것이 신기했다. :) --[구근]
- 속죄 . . . . 3 matches
* 이 세명에게 같이 일어난 한가지 사건을 서로 다른 시각으로 한사람씩 차례로 돌아가며 의식의 흐름기법을 이용해 서술한다. 제길. 500페이지중 약 절반이상은 이렇게 의식의 흐름으로 때워버린다. 해가 어쨋네 땅이 어쨋네~ 뭐. 외국인이 자기네 말로 보면 재미있고 멋질지 모르지만, 기본적인 우리말 문법도 틀리는 이상한 번역작가의 글을 보면서 멋지다고 하긴 정말 너무 힘들고 짜증난다. 이부분 끝나는 곳까지 보는데 3달 걸렸다. 제길.
* 변태적인 내용의 편지를 실수로 보내게된 남자. 그리고 그걸보고 갑자기 사랑에 빠지는 여자. 제길. 분위기가 어쨋네 저쨋네 하면서 설득하려 하긴 하지만...아무리 봐도 설득력이 없다;; 무슨소리인지도 잘 모르겠따. 이것도 번역작가의 탓인듯.(여자의 의식부분에서 서술이 부족했던것 같다.)
* 내용은 재미 있다.
- 수 . . . . 3 matches
(내용은 꽤 오래전에 만들어진 문서라 구질구질 합니다. ㅡ _-;)
읽어와 주세요~ ZP에서 상의한대로, 누군가를 지목해서 해당되는 내용을 설명하게 하는 방식입니다~
== [수/시험 준비 (담임용)] ==
- 신기호/중대생rpg(ver1.0) . . . . 3 matches
strcpy(storage[0].tooltip,"용기가 약간 생긴다.");
storage[0].setInfo("희믜한 혁명의 기운(구슬)",2,1,0,"용기가 약간 생긴다.",200);
* 다음 버전에서는 몬스터 등을 아얘 따로 저장하는 파일을 만들어서 그걸 읽어들여서 몹들을 생성하게 해야겠습니다. 일일이 메인 cpp에서 만들려고 하니 한없이 코드 줄만 길어지네요. 그리고 프로그래밍 공부를 좀 더 해야겠다는 생각이 들었습니다 ㅋㅋ 분명히 저기서 제가 삽질을 한 부분이 있을거에요 ㅠㅠ 이제 버전 1.2에선 소켓프로그래밍을 이용해서 네트워크 대전을 넣을 예정입니다.- [신기호]
- 아잉블러그 . . . . 3 matches
서버를 구축하고 관리하고 다양한 웹 프로그램을 사용해 보는 프로젝트.
|| 금요일 11/18, 오전 11시 - 1시 || [(zeropage)아잉블러그/11월18일모임내용] || PHP연습 ||
|| 화요일 11/22, 오후 2시 - 3시 || [(zeropage)아잉블러그/11월22일모임내용] || PHP연습 ||
- 알카노이드 . . . . 3 matches
* 이미지 객체 이용 스틱과 공, 벽돌 출력 - 더블 버퍼링 이용
* 키 이벤트 이용 스틱 움직임 구현
- 애자일과문서화 . . . . 3 matches
[임인택]이 [http://janbyul.com/tt/268 이곳]에 끼적이다가 옮김. 내용을 요약하자면...
라고 말한것을 듣고 기겁했다고 했다. 그러면서 (수업시간에 보는 문서화자료를 가리키며) 이런것 없이 어떻게 프로세스 개선을 하고 조직 성숙도 (Organization Maturity)를 높일 수가 있냐고 하는 것이다. 수업시간에 배우는 내용으로는 조직의 성숙도나 프로젝트 개선방향등을 측정하기 위해서는 수백 수천페이지가 되는 두툼한 문서가 필요할 것 같기도 한데(경영자적인 입장), 다른 면에서 보면 전혀 쓸모가 없어보인다. 과연 그런것이 꼭 있어야만 개선할수 있는가(개발자적 입장)?
그런 문서를 보면 별로 의미 없는 다이어그램이나 일정표. 코드등이 늘어져 있는데,, 그렇게 작성한 문서를 기계적인 측정도구의 입력 데이터로 활용할 수 있는가이다. 내가 무지해서일수도 있지만, 적어도 문서화에 있어서는 헷갈린다. 과연 해야하는건지 말아야하는건지? XP에서 쓸데없는 문서화는 피하는것이 맞는 것일텐데. 프로세스 평가할땐 필요한 데이터를 XP에서는 어떻게 해야하는지? 아아아 감이 잡히지 않는다. 실제 회사에서 개발자로. 간부급으로 수년씩 이런 고민을 하면서 일해보고 난 뒤에야 알 수 있는걸까? 생각이 복잡해서 글로도 정리가 잘 안된다. -_-; 차근차근 생각과 글을 다듬어야겠다.
- 영어단어끝말잇기 . . . . 3 matches
- 재밌어보이기는 한데, [문두삽입방식]을 사용해야 할 것 같고, 페이지가 길어지면 내용정리가 필요할듯.. - [임인택]
더불어 뜻은 한글로 바로 적지 말고 영영사전(예를 들면 [http://www.oup.com/elt/global/products/oald/lookup/ OALD])을 이용해 적어주는 것도 괜찮을 듯.--[Leonardong]
- 영어와친해지기 . . . . 3 matches
원래는 제목을 {{{~cpp EnglishDoesNotFrightenYou}}}로 하려고 했는데, 이걸 제목으로 사용하면 '영어가 쉽다'는 주제를 가진 페이지로 오해를 살것 같아 [영어와친해지기]로 정했습니다.
하지만 현실은 아주 우울한 것 같습니다(이에대한 예가 될런지는 모르겠습니다만, DevilsCamp에서 제가 발표할 내용의 슬라이드를 어설픈 영어와 한글 버전으로 제작해 놓고 영문 버전만을 발표전에 새내기와 2학년들에게 보여준 채, 발표자료가 어떤 것 같냐고 물어봤더니, 질문을 받은 학생들 모두가 상당히 부담스럽다고 대답하였습니다). 이는 아마 우리나라의 잘못된 영어교육 때문이 아닌가 생각합니다(잘못된 것은 비단 영어 뿐만이 아니지만). 저는 영어를 잘하는것은 아닙니다만 영어에 대한 부담감 같은 것들은 그리 크게 느끼지 않고 있습니다. 이점을 제가 생각하는 제 몇 안되는 장점이라고 생각하고 있는데... 사람들이 엉어에 대한 부담감을 덜 수 있는 좋은 방법이 없을까요? 여러분의 생각을 듣고 싶습니다.
이에대한 활발한 의견을 주고받다보면, 오고간 내용이 '''어떤 새로운 것을 대하는 자세'''에 대한 좋은 지침이 될 수 있을 것 같습니다.
- 우리들의행복한시간 . . . . 3 matches
사형은 마땅히 없어져야 한다. 불우하다는 뜻으로 지었는지도 모를, 블루 노트에 담긴 내용이 전부 거짓이라 하더라도, 사형은 살인자에 대한 적개심밖엔 안 된다.
한데, 사람이 사람을 용서할 수 있는가? 용서라니 너무 거창하고 오만하다. 진심으로 다른 사람과 화해할 수 있을까?
- 유닛테스트세미나 . . . . 3 matches
2006년 2학년 1학기 자바 텀 프로젝트였던 심플트론 시뮬레이터에서 이재혁 팀이 이용한 유닛 테스트를 알아보고, JUnit 및 CppUnit을 실습해본다.
프로젝트에 적용한 유닛 테스트
* Java 완전 무지 상태에 .NET 완전 무지 상태로 들었지만 4년 전 9기 선배들에게 들었던 내용이 새록새록 떠오르는 좋은 경험이었음.
- 이승한/질문 . . . . 3 matches
참조를 이용해 배열을 함수에 넘길수는 없는건가요?? 배열은 잘 넘어가지 않네요;;
vs에서 타이핑하는 방식이외에 자동으로 함수를 생성해주는 바법사를 이용해 firend 함수를 생성할수는 없나요??
아마 승한이가 원하는 답은 아니겠지만 한번 적어본다. 지금 함수에 전달하는 것은 인트형의 포인터이기 때문에 함수는 지금 받은 것이 숫자인지 배열인지 알 수 가 없지. 게다가 주소를 참조하게 되서 함수 안에서 그 값을 변경해주면 원본 값도 변하게 되고. 그래서 나는 함수 안에 멤버 변수를 만들어서 전달 값을 복사해서 쓰거든. 보통 전달인수를 받을 때 컴파일러에서 그 원본 값을 쓰지 않고 복사값을 사용하는 건 알지? 그 작업을 프로그래머가 해주는 것이지. 밑은 여태 말한대로 구현하고 간단하게 테스트한 소스야.
- 이영호/기술문서 . . . . 3 matches
[조금더빠른형변환사용]
[http://bbs.kldp.org/viewtopic.php?t=2128] - GNU C 에서의 printf 의 확장 및 locale 사용
[http://bbs.kldp.org/viewtopic.php?t=1045] - *NIX 계통의 Debug에 유용한 툴 (GNU/Linux에서는 strace = A system call tracer, ltrace = A library call tracer)
- 정규표현식 . . . . 3 matches
* 환경 : [http://groups.google.com/group/zeropageregex google 그룹메일]을 통한 메시지 전달 / Wiki를 통한 스터디 내용 저장.
* Wiki 문서 작성시 안의 내용은 자유이나 맨위에 정규표현식 내용 링크 리스트는 모두 나와야하며 스터디문서에서는 정규표현식 링크와 스터디 링크만 나와야 하며 반대로 모임문서에서는 정규표현식 링크와 모임 링크만 나와야한다.
- 정렬 . . . . 3 matches
파일 내용
파일 입출력을 사용해야 합니다. SeeAlso FileInputOutput 정렬의 방법은 무엇이어도 좋습니다.
||도전자||총개발시간||소스라인수('''주석제외''')||사용언어|| Source ||
- 정모/2003.11.17 . . . . 3 matches
== 회의 내용 ==
* 뒷풀이 비용으로 지난번에 걷었던 회비(총 2만원)을 썼고, 그때에 걷었던 것도 회비로 치겠습니다.
||세미나 뒷풀이 사용|| 아마 다 썼음||-7만||
- 정모/2003.4.29 . . . . 3 matches
== 회의 내용 ==
2. 03대상의 행사는 아마도 세미나가 될 듯한데, 그 내용이 책의 내용을 답습하는 것이 될 지, 아니면 작년에 했던 것처럼 예제를 풀어보는 것이 될 지, 확실하게 정해진 것이 없습니다. 또한 세미나 인원(3~4명으로 팀을 나눠서 스터디 식이 될 지, 아니면 교실 하나에 여러 명 집어넣고 하는 식일지)도 아직 정해지지 않습니다.
- 정모/2003.5.13 . . . . 3 matches
* 내용은 세미나, 혹은 예제풀기, 프로그래밍 개론적인 부분이 될 수 있을 것 같고, 각 주마다 세미나 주제는 정해졌습니다. 내용은 03들이 지루해 하지 않게 짧고 간단한 내용으로 합니다.
- 정모/2004.5.7 . . . . 3 matches
- 위키를 자주 사용하자 (관심 부족)
- 링크 이용(SeeAlso)
- 분류분류 이용
- 정모/2005.2.2 . . . . 3 matches
--> 자세한 내용은 보류
* 자료실을 잘 이용하자.
[여섯색깔모자]에서 말하는 노란 모자를 쓰고 이야기해보겠습니다. 시작할 때 이야기 주제를 정했습니다. 덕분에 모두가 무엇에 대해 이야기 할 지 알 수 있었고, 빠뜨리지 않고 적힌 내용을 다 처리할 수 있었습니다.
- 정모/2006.9.7 . . . . 3 matches
Haskell - 휘동, 지훈, 우용, 영준, 장길, 아영, 동규, 정현, 지원
MFC - 준석, 상욱, 현태, 지원, 우용, 동규, 찬협, 장길, 성준, 영준, 준영
HTML+CSS+JAVAS+PHP+PYTHON > 잔고 - 지원, 상협, 지훈, 우용, 준석
- 정모/2011.5.23 . . . . 3 matches
1. 오늘은 OMS도 ScriptLanguage에 대한 내용이고, 세미나도 있고해서 학술 동아리스러운 느낌이 들어서 좋았습니다ㅋㅋㅋ
* 지난 정모때 사람이 많았어서 상대적 박탈감(?)이 느껴지는 정모였습니다. 기말이 다가오니 바쁘신지 안오신 분들도 많았고ㅜㅜ 내 OMS가 있던 날인데.. 흙흙 그래도 매번 참석하는 11이 있어 기특합니다. 사람은 빈곤했지만 내용은 학술적인 내용으로 풍요로웠네요. 세미나도 하고. 연구실에서 무슨일을 하고있는지 알수 있는 좋은 기회였습니다. 연구실도 트렌드를 따르는군요ㅋㅋ 친구추천이랑 약간 비슷한거 같아요. 나의 OMS 잘 들으셨는지ㅠㅠ 아 스크립트 소개를 위한 스크립트도 썼는데 눈이 침침해서 잘 안보여서 횡설수설했네.. 자료실에 ppt랑 스크립트 같이 올려뒀어요 비교해 보세요.. 컴파일 언어가 전부인줄 알았다면 다른 종류의 언어도 익혀보세요! 전 루비와 얼랭을 해볼 생각입니다ㅋㅋ 구루가 되어보아요:> - [서지혜]
- 정모/2011.5.9 . . . . 3 matches
== 캡스톤 설계실 사용 안내 ==
* 저 토요일 3시부터 면접스터디가 잡혀서 아침 10시부터 2시까지 있다 갑니다. 데블스 staff 모임 참가 못할 거 같으니 나머지 staff분이 회의 후 회의 내용 공유해주세요 - [Enoch]
* 장소를 미리 못 잡아서 4피에서 OMS를 했는데 기호에게 미안하네요... 장소가 산만하기도 하고 좀 부담스러웠을 것 같아요ㅜㅜ 그와 별개로 내용은 정말 흥미로웠습니다. 항상 생각했던 것이지만 쓰기 편하고 단순하게 만들면 할 수 있는 게 제한되어 문제고 이것저것 할 수 있게 파워풀하게 만들면 너무 복잡한 게 문제… - [김수경]
- 정모/2012.5.7 . . . . 3 matches
* 참여자 : [변형진], [김준석], [정의정], [민태원], [권순의], [김동준], [임상현], [서지혜], [김수경], [강성현], [정종록], [박성현], [서민관], [김태진], [장용운], [이진규],[정진경], [이민규], [김희성], [권영기], [권우성], [박상영], [김윤환], [최경진], more
* rur-ple을 이용한 짝 프로그래밍
* 새내기들과 함께 rur-ple을 해서 재미있었습니다. 제 옆에 있었던 학우가.. 용운이 반이었는데 -_-a 여튼 저의 1학년 때 모습을 보는 것 같았습니다. 무언가를 짜야 하는데 막막하게 키보드 위에 손가락만 올려 놓던 모습.. 음.. (그렇다고 지금도 안 그렇다고는 말 못하지만 -ㅅ-) 그래도 힌트 던져 주니까 잘 따라 오는 모습이 보기 좋았습니다. - [권순의]
- 정모/2012.7.18 . . . . 3 matches
* 단양 쪽은 다수 수용 가능한 맨션이 딱히 없음.
* 수용 인원이 많은 곳을 찾아서 나중에 통보 할 예정.
* 수요일 : callback 함수의 개념과 Javascript의 Event Handler 사용. 표준이 제정되지 않은 상황에서 Cross Browsing은 힘들다.
- 정모/2013.6.10 . . . . 3 matches
* 스터디나 프로젝트를 하는 경우에는 ZP에서 기자재, 도서 등은 우선적으로 지원하고, 다른 비용도 나름대로 지원하니 신청해 주세요.
* 위키가 길어 보이는 건 실제로 한 내용이 많았기 때문에 어쩔 수 없는 거 아닐까. 오히려 많은 내용에 비해서는 잘 정리한 것 같음 - [서민관]
- 정모/2013.6.3 . . . . 3 matches
<OMS 대용> 대학원으로 오세요! - [강성현](EC랩) 학우 -( 13년도 현 대학원 대표 )
* [구남영] 학우님께서 하고 계신 디자인은 현판을 만들 때 부터 적용 할 것
* 데블스 캠프 강사 모집과 관련된 내용과, subgroup 형식의 프로젝트 회의를 할려고 했었는데 사정상 선배님들이 참석하지 못하셔서 하지 못했습니다. 제가 부족한 점이 많았습니다. 죄송합니다. - [김민재]
- 제로스 . . . . 3 matches
* 제작한 OS에서 돌아가는 응용프로그램을 만들어 본다.
* 현재 프로젝트의 방향은 정하지 않은 것으로 보이니까 공룡책으로 이론 공부를 하고 Nachos라는 교육용 OS 프로그램 분석을 병행하면서 여기서 얻은 지식으로 OS를 만드는 접근 방법을 사용하는 것이 어떨까 하는데 다들 의견이 어떠신지 궁금? -- 이론 : Operating System Concepts -- 실습 : Nachos - [진석]
- 제로페이지위키베타 . . . . 3 matches
* 자신의 개인 위키 서버 선택할시에 제로페이지 회원은 제로페이지 서버를 선택해 주시기 바랍니다.(이미 가입한 회원은 그대로 사용..)
* 사용하다가 발견되는 버그들은 버그 리포트에 적어 주세요..
* 조만간 현 위키에 있는 데이터들도 매크로를 사용하여 옮길 예정입니다.
- 제로페이지의문제점 . . . . 3 matches
* 졸업선배들중에 제로위키를 이용하시는 분들은 없을까? 물론 회사 차원에서의 보안상 공개할 수 없는 정보도 많고, 일과 피로때문에 글을 정리하실 시간이 많지 않다는 등 어려움이 많다. 그리고 위키 인터페이스 자체를 불편해하는 사람들 또한 많다.
혹은, Netory와 같은 방법을 써보는 건 어떨까요? 피시실 관리를 맡는 학회라는 점을 이용하는 방법이 있겠죠.
* 예전에 상민이 형이 프로젝트를 하면서 위키에 문서를 많이 남기라고 그랬었다. 그 이유인즉 다음번에 다른 사람들이 프로젝트를 할때 도움이 되도록 하기 위해서였다. 위키에서 진행되는 프로젝트가 끝나면 2가지가 남는거 같다. 한가지는 진행과정이 담겨있는 페이지들이고 다른 하나는 프로젝트를 통해서 얻은 지식, 노하우, 팁등, 그 프로젝트의 detail한 면이 아닌 그 프로젝트를 통해서 뽑아낸 좀더 일반적인 내용을 담고 있는(비슷한 주제의 프로젝트를 하는데 도움이 되는)페이지라고 생각한다. 진행 과정 페이지는 어떤식으로 진행하면 프로젝트가 망하고, 어떤식으로 진행해서 프로젝트가 끝까지 갔는지를 파악할때 도움이 되고, 프로젝트를 통해서 뽑아낸 지식 페이지들은 비슷한 주제의 프로젝트를 하는데 수고를 덜어준다. 프로젝트를 하면서 추후에도 도움이 될만한 것들을 자주 문서화 해야 좀 전수가 될거 같다. -[상협]
- 제로페이지회칙만들기 . . . . 3 matches
일단 정모날짜에 대해서는 이번주까지 결론을 내었으면 합니다. 이번달 내로 바로 적용을 해야 하니까요. 그렇게 고려해야 할 것들이 많은 것도 아닐테고. --석천
["neocoin"]:광식아 내가 18일을 말한건 이번달은 18일이 적당해서 한건데, 간담회가 있으니 제대로 안될것 같은데? 그리고 말씀대로 하는것이 좋을것 같은데요. 현재는 주중에 하는것이 더 좋을것 같네요. 정모의 내용은 물론, 요일로 하는것이 더 적당한것 같은데, 월화수목금토일 중 화요일 7시~9시 정도? --상민[[BR]]
각 항목에 몇조 몇항을 두는 이유는 index가 용이하라고 있는것이겠지만, 이 상황에 경우는 그리 필요없을것이라 생각함.--석천
- 졸업논문/요약본 . . . . 3 matches
웹 환경은 이제 하나의 플랫폼으로 자리 잡고 있다. 빠르게 변하는 웹 환경에는 python같은 객체지향 언어가 적당하다. Django는 python으로 만들어진 웹 애플리케이션 프레임워크로, 데이터베이스를 추상화하여 개발자가 기민하게 웹 애플리케이션을 작성하도록 돕는다. Django에서는 기존에 ODBC등을 이용하는 CLI 보다 한 단계 더 높은 수준에서 데이터베이스를 사용할 수 있다. 예를 들어 주언어 python에 클래스를 정의하면 데이터베이스 테이블을 자동으로 생성해주며, 클래스가 변경되면 데이터베이스 테이블도 자동으로 수정해준다. 그 밖에 삽입, 삭제, 수정, 조회 기능을 클래스가 가진 메소드로 추상화하여 주언어 수준에서 데이터베이스를 사용할 수 있도록 한다. 이러한 지원을 바탕으로 웹 애플리캐이션 개발자는 기민하게 프로그램을 작성할 수 있다.
- 좋은위키페이지 . . . . 3 matches
["상민"] 이도 ["데기"] 가 말하는 부분들이 아쉽다. 그러한 느낌을 기록하고, 그것을 공유하는 것이 위키의 순기능중 하나라고 생각한다. 하지만, 그런 모습이 ZeroWiki에 부족한 이유가 느낌을 기록하기 위해 글을 쓰는 '''용기'''가 부족하기 때문이라고 생각한다. ZeroWiki에서는 경험과 느낌이 표현되는 곳은 프로젝트 페이지의 '''여정'''이나 '''느낌''' 기록하는 부분이나 이벤트의 '''후기''' 같은 부분이 주가 되고 있다. --["상민"]
'더 좋은' 것을 지향하되, 사람들이 자신의 수준에서 한발자국 더 내딛은 것에 대해서 서로 격려해줄 수 있어야 할 것 같다. 후배들이 '용기'를 낼 수 있어야겠지만, 다른 사람들이 '용기'를 전해줄 수도 있어야 할 것이다. --칭찬에 인색한 못된선배 ["1002"]
- 지금그때2003/선전문 . . . . 3 matches
위키를 사용하시기 어려운 분들은, 이 글의 리플로 달아주세요.
공개하겠습니다. 차후 후기 페이지도 전용 위키로 옮기겠습니다.
신재용 ( 전문연구원, 중대, 박사)
- 지금그때2003/토론20030310 . . . . 3 matches
[지금그때] 준비를 위한 토론 첫번째 모임. 마저 내용을 생각해보고 옵시다.~
* 내가 만약 신입생 때 xxx 를 깨달았다면. 신입생의 궁금증을 풀어주고 친밀감과 밀도를 유지하면서 여러사람을 포용하는 방식
* 꼭 '대학선배' 가 아닌 '인생선배'로서 이야기할 수 있는 자유로운 이야기들. 간단하면서 실용적인 질문들 등등 자유.
- 지금그때2004/계획 . . . . 3 matches
* 8:00 - 8:10 : 쉬는 시간. 쉬는 시간 소개. OST용 자리 배치
* 9:25 - 9:35 : 토론내용 정리시간, 추가의견
* 9:35 - 9:50 : 내용 발표, 끝나고 정리하는 말(발표), 마지막 코멘트
- 지금그때2004/토론20040331 . . . . 3 matches
* 내일 중으로 휘동이 예약. 4251 등 책상배치가 용이하고 큰 강의실로.
* 이전 홍보문 재사용에 대해 - [지금그때2003/선전문] 참고 & 홍보문 보완. 홍보문 올리기전 사람들에게 피드백받기.
* 의견을 말하기전에 미리 모자 색깔을 말함으로서 듣는 사람으로 하여금 미리 듣는 내용을 준비할 수 있도록 해준다.
- 지금그때2005/연락 . . . . 3 matches
|| || 신제용 || ||
|| || 신제용 || 참석 불가||
[조동영] - 신제용
- 지금그때2005/진행내용 . . . . 3 matches
= 지금그때2005/진행내용 =
* 각자 생각 나는 부분 부분을 넣어서 지금그때2005 행사에서 나왔던 내용들을 적어봅시다.
[강희경]과 황재선이 기록을 하는 역할(레코더)를 맡았었습니다. 지금은 피곤해서 무리인 것 같고 빠른 시일 내에 질문레스토랑의 내용을 정리하겠습니다. --[강희경]
- 지금그때2006/여섯색깔모자20060317 . . . . 3 matches
[지금그때]에 변치않는 OpenSpaceTechnology 토론에도 아쉬운 점은 있다. 주제가 매년 반복된다. 영어, 군대, 책에 대한 이야기는 세 번 모두 나왔다. 따라서 새로운 주제가 나오도록 유도하거나, 같은 주제라면 기존 토론 내용을 바탕으로 이야기를 발전시키는 것이 좋겠다.
마지막으로 후기를 쓰는 것과 동시에 아무도 손대지 않는 [지금그때] 내용에 대한 정리가 필요하다. 중복되는 내용은 한데 모으고 아직 열기가 남아있는 주제는 이야기를 더 할 수 있으면 좋겠다.
- 지금그때2006/후기 . . . . 3 matches
최대한 사회자는 사람들의 생각을 수용하고 반영해야 한다는 생각으로 했지만 중간중간 미흡한 점이 있었습니다.
주사위를 이용한 참신한 발상도 좋았고 시간 안배에 신경을 써 진행에 지장이 없었던 것이 좋았다고 할 수 있겠네요.
1부에서 저도 말을 짧지 않게 했었지만 한 사람당 발언 시간에 제한을 두어 말을 요약적으로 하게 하고 싶다면 모래시계를 이용하는 것도 괜찮을 듯 싶습니다. 디지털 타이머보다
- 지금알고있는걸그때도알았더라면 . . . . 3 matches
나는 좀 더 다양한 사람을 만났을 것이다. 학교의 울타리나 동아리의 선 안에 갖혀있지 않았을 것이다. 그리고 나보다 더 훌륭한 사람들을 배우려고 노력하고 그들과 가까이 지내려고 했을 것이다. 나는 좀 더 용기를 가졌을 것이다. 그 사람이 날 만나줄까 걱정하기보다 일단은 만나달라고 간곡히 부탁을 해봤을 것이며, 내가 만든 것이 남들에게 우습게 보이리라 걱정하기보다 일단 남에게 보여주고 그 피드백을 얻어 더 나은 것을 만드려고 노력했을 것이다.
나는 도서관을 좀 더 적극적으로 활용했을 것이다. 나는 숙제나 교수, 혹은 교재가 맘에 들지 않는다고 수업을 등한시하기 보다 거기서 뭔가 배울 것이 없을까 찾고, 또 다양한 정보원을 이용하려고 더욱 노력했을 것이다. 주변에 나보다 뭔가 잘난 사람이 있다면 그 사람을 시기하기 보다 그를 분석하고 배우려고 했을 것이다.
- 지도분류 . . . . 3 matches
특정 주제나 내용의 글들을 모아서 안내해주는 지도들.
|| CodeCoverage || 작성한 Test 가 Code 를 얼마나 수용하나 검사해주는 도구들 ||
=== 자신을 되돌아 보게 하는 내용 ===
- 최대공약수 . . . . 3 matches
* 유클리드 호제법 사용.
* scanf를 이용한 두 수 입력.
C언어시간에 배웠는데, 이 문제에서는 아마 값을 넘기는 함수를 만들어서 사용하라는 것인듯 -- 아영
- 최소정수의합/조현태 . . . . 3 matches
* 1에서 n수까지 합 공식을 사용한것 같은데, 알고리즘 측면으로 공부하는 것이라서, 원리적인 알고리즘을 사용하는 코드를 사용하면 좋을 것 같네요. 비록 제 생각이긴 하지만, 복잡한 문제에서는 공식을 알 수 없을 것 같아서요^^ -[허아영]
- 컴공과학생의생산성 . . . . 3 matches
먼저 우리는 전산학과 학생이 아니고 컴퓨터공학과 학생이라는 점입니다. 국내에서 순수 전산학을 염두에 두고 가르치는 학교가 거의 전무하다는 점, 또 거의 대다수의 학부생이 IT 관련 취업을 목적으로 한다는 점 등을 고려할 때, 이 점은 학과 이름에 크게 관련없이 두루 적용되는 것일 겁니다. 우리는 공학(engineering)을 하고 있습니다. 생산성 이야기가 빠지고선 공학이 성립할 수가 없는 것이지요.
제가 저 이야기를 했었던 이유는 전에 엑셀을 만들때의 이야기였습니다. 만드는 방법이 천차만별이였지요. 처음 Grid Control부터 다 구현하려고 했던 사람, Grid Control만 MSFlex Grid를 사용한 사람, 이미 어느정도 스프레드시트 기능이 구현된 컨트롤을 사용하여 만든 사람 등등.
- 코코아 . . . . 3 matches
오 다들 안뇽하세용~
아직 미숙 하네용ㅋ
03학번의 손용준이라고 해요~
- 테트리스만들기2006/뒷반 . . . . 3 matches
회의 내용 : 어떤 기능을 넣을 것인가?
블럭마다 다른 색, 점수 기능, 10위까지 랭킹, 음악, 효과음, 속도 빠르게, 스테이지 기능(1인용), 2인용도 한화면에서, 아이템(속도, 뒤집기, 숨기기, 화면돌리기;;)
- 토이/메일주소셀렉터/김남훈 . . . . 3 matches
사용언어 lex
메일주소 규칙 : 영어대소문자 숫자 하이픈 언더바 '.' 사용 가능. 단 '.' 은 시작과 끝에 지정 불가. 2자 이상.
도메인 네임 규칙 : 영어대소문자 숫자 하이픈 사용가능. 단 하이픈은 시작과 끝에 지정 불가. 2자 이상.
- 튜터링/2011/어셈블리언어 . . . . 3 matches
* 지난주에는 루프와 레지스터를 이용한 재귀함수까지 해 보았다.
* 이번에는 전역변수와 스택을 이용한 재귀함수를 구현해 본다.
* c 프로그램에 어셈블리 사용
- 파스칼삼각형/sksmsvlxk . . . . 3 matches
'''수학공식을 사용했다면 소스코드의 길이가 더 줄어들었을 것.'''
//using namespace std 그냥 사용했음..
* 내가 사용할 수 있는 함수가 존재하는 지 알아야 한다.
- 페이지지우기 . . . . 3 matches
삭제하고 싶은 페이지의 내용을 지우거나, 해당 페이지 아무곳에서나 '''DeleteThisPage''' 를 남긴다. 그러면 ZeroWiki 관리자가 해당 문자열 검색을 통해 페이지를 지우게 된다.
'''If you want to delete this page, YouNeedToLogin.''' 현재 ZeroWiki 에서 Delete''''''Page 권한은 계정 관리자가 갖고 있습니다. 로그인한 사용자도 그 권한을 사용할 수 있도록 한 단계 더 공개하는건 어떨까요? security.py 에서 {{{~cpp self.delete = self.delete and user.valid}}} 이 한 라인을 추가하면 됩니다. --["데기"]
- 포지셔닝 . . . . 3 matches
* 이책도 신선한 충격을 던져준 책이다. 마케팅의 중요성을 다시한번 일깨줘 주었다. 그리고 수많은 실패 사례에도 불구 하고 많은 기업들이 시도하고 있는 '라인 확장의 오류'도 나에게 좋은 교훈이 되었다. '핵심에 집중하라'라는 경영학 책에도 나와있던 내용인데, 이게 마케팅에서도 적용되는 내용이란것을 알고 놀랬다. 이 책에서 중요하게 생각한 것은 제품이 소비자의 마인드에 어떤 포지션을 차지하고 있는가 이다. 효과적인 포지셔닝은 그 분야의 최초의 제품이라는(비록 최초가 아니더라도) 포지션을 소비자의 마인드에 심어 주는것과, 업계 리더라는 포지션을 심어주는것, 소비자의 마인드 속에서 아직 아무도 차지하지 않은 '틈새'를 찾아 내는것 등이 있다. 내가 생각해보아도 모든 분야를 다 다루는 기업보다는, 어떤 특정 분야에 집중해서 다루는 기업이 그 분야에 대해서 전문적으로 보이고, 더 우수한듯한 느낌이 든다.(우리 나라의 대기업들이 한때 문어발식 확장을 했지만, 내가 보기에는 정경 유착과, 이윤 창출보다는 대마 불사라는 무조건 몸집 키우기의 일환이었다고 본다. 결국에는 그 기업들도 각자 핵심 분야에 집중 하는건 아닌가 싶다). 이는 [설득의심리학]에 나오는 일관성의 법칙과도 어느정도 상관 관계가 있는듯 싶다. 중요한것은 제대로된 포지션을 소비자의 마인드에 확실히 심고 나서는 그것을 기반으로 일관성 있게 마케팅 해나가야 한다는것이다. 말보르가 다른 담배들이 여성 소비자를 하나라도 더 잡으려는 마케팅을 할때 카이보이가 나오는 광고를 하여서 카우보이(남자) 담배라는 포지션을 소비자의 마인드에 확실히 심어줌으로 해서 오늘날 가장 많이 팔리는 담배가 되었다. (역설적으로 여성에게도 많이 팔리는 담배가 되었다)
- 포커솔리테어평가 . . . . 3 matches
카드는 5x5 행렬에 나눠진다. 각 행과 열을 구성하는 5장의 카드에서 가장 높은 계급을 결정하는 것이다. 계급의 순서는 노 페어, 원 페어, 투 페어, 트리플, 스트레이트, 플러시, 풀 하우스, 포캉드, 스트레이트 플러시로 구성된다. 패는 가장 높은 계급으로 한 번만 사용된다. 예를 들어, 포카드는 투 페어나 트리플로 다시 사용되지 않는다.
5. 스트레이트 : 아래 계급 중 어떠한 것도 해당되지 않으며, 5장의 카드의 숫자가 순차적으로 구성되는 경우. A(에이스)는 14나 1로 사용될 수 있다. 예를 들어, AC, 2H, 4D, 3H, 5S도 스트레이트 이며, JH, XD, QC, KD, AS도 스트레이트 이다.
- 프로그래머가지녀야할생각 . . . . 3 matches
DeleteMe--우선 윗글에서 (확실히) 불분명한 두 단어를 사용하였는데 하나는 ["programmer"]이고 다른것은 ["생각"]이라는 단어입니다. 우선 단어 정의가 필요한거 같은데..대충 비슷하게는 생각할꺼 같은데 정교화가 필요할꺼 같군요. 재밌고 유익한 토론이 되었으면 합니다.
너무나 이상적이고 추상적인 생각이겠지만 '프로그래머는 사회에 이익이 되는 프로그램을 만들어야 한다'는 근본적인 생각을 갖는 건 어떨까요? 예를 들어 재미있는 오락도 좋겠지만 장애인이나 나이 많이 드신 분들을 위한 보조용프로그램 같은 것들이 많이 개발되어야 한다고 생각합니다. 전에 정보요원단 활동을 할 때 우리나라에 보급되어 있는 장애인용 프로그램들이 많이 부족한 현실을 봤었는데... 내가 만든 프로그램이 남에게 도움이 된다면 그보다 좋을 일이 또 있을까요? ^^ -- jeppy
- 프로그래밍파티 . . . . 3 matches
* 전지 6~9장정도 & 유성매직 or 컴퓨터용 사인펜 (한팀 2-3장쯤?)
또한 뒷풀이에 대한 문서화, 기록 작업을 하는 게 좋습니다(기록하기 위해서 기록하는 것은 아닙니다. 사용되어지고 읽히기 위해 기록합니다). "참 재미있었어요!"나 "아무개씨는 참 재미있는 사람이고, 홍길동씨는 인상이 좋고.."같은 통신 공간의 상투적 "후기"를 말하려는 것이 아닙니다.
ZP 랑 Moa 랑 페이지가 따로 열려있어서 정보가 분산되는 느낌이 드는데, 한곳에서 토의하는건 어떨까요? 그리고 DesignFest랑 ProgrammingContest 중 어떤거 할것인가는 무기명투표모드를 함 적용하는것도..~ (ProgrammingContest 의 경우 IPSC로 ZP가 예습(?)한 것 같은 느낌이 들어서;; 오 찔린다;) 14일까지 결정하고, 16일까지 행사때 진행방법을 구체적으로 정했으면 합니다.~ ^^ --석천
- 프로젝트기록의필수요소토론 . . . . 3 matches
지금과 같이 누적되면 말그대로 용두사미 격이 되어 버리는 계획들이 많아 질것 같아서 우려 됩니다. 아예 깨끗이 휴식이나 종료로 넘기거나(휴식이 많아지면 또 차후 휴식만 다른 페이지로 가고) 해야 할것 같은데, 그것에 기초 데이터가 마감일 일것 같습니다. 어떤지??
[1002] 프로젝트의 마감부분은 중요한 부분이 됩니다. 올바른 프로젝트의 끝맺음은 새로운 프로젝트를 다시 추진할 수 있도록 뒷처리를 해주니까요. 현재 semi-project 부분의 경우 그 양이 많은데, 어떻게 끝맺음들을 할지는 좀 더 두고봐야하겠습니다. (자신 주도하로 할 자신이 없다면 페이지를 '일반화' 시켜버리십시오. 즉, 자신의 이름을 걸고 하지 말고 하나의 문서처럼 Document 화 시켜버리십시오. 그렇다면 다른 사람들이 중간에 참여하기가 더 용이할 겁니다.) 개인의 이름을 걸고 한다는 것은 그만큼 자신이 해당 페이지를 연 것에 대해 (또는 프로젝트를 연 것에) 책임을 지겠다는 것으로 해석한다면 제가 오버한 것일까요? 하지만, 그런뜻으로 하신 것이 아니라 하더라도, 어느정도 책임감을 가지셨으면 좋겠습니다.
[1002] 한가지 더 지적한다면, 해당 토론 또한 기간이 있어야 할 것 같다는 생각. --; (사람들이 이야기는 많지만, 정작 '어떻게 하자', '예. 동감합니다', '아니요. 그건 그렇게 생각하지 않습니다', '이러이러한 방향이 더 좋겠습니다' 라는 이야기를 안하니. -_-;) 기간이 길어지고 아무 이야기 없으면 해당 주제에 대한 결론을 영원히 유보해야 하겠습니까.. 쩝. 전에도 이야기 했지만, WIKI 자주 이용해주시고, 불편하시면 다른쪽 게시판이나 해당 사람에게 e-mail 로 답변을 주시기를. (동보메일이라도 보낼까요? --a ZP 에 sendmail 이 돌고있던가 기억이 안나는군. --;)
- 허아영/Cpp연습 . . . . 3 matches
코드를 컴퓨터에만 저장만 해 놓으면 다른 컴퓨터를 사용해서 코드를 작성할 때, 이 문제는 코딩 했었나?
아직 C++을 C수준으로 사용하시는 것 같아 지금 이 시점에서 이런 말씀을 드리는게 좋을것 같습니다. C++을 공부하기 전에 다음과 같은 의문을 갖으시는게 좋을것 같습니다.
반대로 C++의 형식은 소스를 재활용할 수 있는 가능성이 높고.. 버그가 적게 생기거나 디버깅이 쉽다는..ㅎㅎ
- 호너의법칙 . . . . 3 matches
호너의 법칙을 이용한 프로그램을 작성하여라.
* 파일 출력 사용.
- 죄송 ! input안의 내용이 입력받아도 되고, 선언해도 될 듯, 선언이 더 나을것 같음.
- 홈페이지분류 . . . . 3 matches
ZeroWiki를 사용하는 사람들이 가질 수 있는 개인 홈페이지들.
["홈페이지분류"]로 분류되는 페이지들은 개인 페이지이므로 자유롭게 사용하되 제로페이지에서 자신이 참여하고 있는 스터디, 혹은 개인적으로 하고 있는 공부들, 전시회 준비 상황과 같은 내용들이 포함되면 더욱 좋을 것 같다. -- ["데기"]
- 회칙 . . . . 3 matches
② 회장은 정모에서 정한 사용 목적 및 제한 내에서 학회 재정을 집행해야 한다.
② 회장은 정모에서 정한 사용 목적 및 제한 내에서 학회 재정을 집행해야 한다.
제2조(정의) 본 회칙에 나오는 용어는 다음의 정의에 따른다.
- 후기 . . . . 3 matches
대안언어가 보여준 많은 새로운 생각이 널리 퍼지지 않아 안타깝다. 혁신을 이루려면 많은 사람이 그 아이디어를 받아들여야 한다던데, 대안언어축제 이후에 어떠한 변화가 있을까? 새로운 아이디어를 적용한 코드를 작성할 수 있을까? 새로운 프로그램을 만드려고 할 때, 현재 사용하는 언어보다 더 적당한 언어를 선택할 수 있을까? 기존에 개발하던 프로그램이 있을 때는 새로운 언어로 갈아탈 수 있을까? 창의적인 아이디어와 실용성 사이 간격을 좁혀서 대안언어가 정말로 대안이 되길 꿈꿔본다.
- 05학번만의C++Study/숙제제출/2 . . . . 2 matches
* 평상시에는 문자열의 주소를 하나의 전달인자로 취하여, 그 문자열을 한 번 출력하는 함수를 작성하라. 그러다가 0이아닌 int형 값을 두 번째 전달인자로 제공하면, 그 시점에 도달할 때까지 그 함수가 호출되었던 횟수만큼 그 문자열을 반복해서 출력한다. (문자열이 출력되는 횟수는 두 번째 전달인자의 값이 아니라 그 함수가 호출되었던 횟수와 같다.)물론 이 함수는 거의 쓸모가 없다. 하지만 이것은 이 장에서 설명한 몇 가지 프로그래밍 기술을 사용할 것을 요구한다. 이들 함수를 사용하여 함수의 작동을 보여 주는 간단한 프로그램을 작성하라
- 0PlayerProject . . . . 2 matches
[0PlayerProject/프레임버퍼사용법]
[http://psyche.cau.ac.kr/temp/junjihyun(xvid).avi] (size : 320 x 240, 용량 : 15.7M)
- 2002년도ACM문제샘플풀이/문제B . . . . 2 matches
* STL 사용하면 쉽게 풀 수 있다는 걸 알고 있었지만 일부러 STL을 사용하지 않았습니다. 알고리즘적으로 머리를 쓰는 걸 훈련하기 위해...^^
- 2006신입생/연락처 . . . . 2 matches
|| 성우용 || wooyongyi at hotmail dot com || 011-9263-6315 ||
|| 서용욱 || syhyper at hotmail dot com || 010-3099-4172 ||
- 2010JavaScript . . . . 2 matches
* 블로그 사용 http://w3schools.com/js/default.asp
-[박정근] : 역전재판의 대사를 바꾸는것에 대해서 공부하엿습니다 js파일에다가 대사 내용을 저장해 두고 하나씩 띄우면 될 것 같습니다.
- 2010Python . . . . 2 matches
* 각자 원하는 매체로 공부해 온 뒤 5분 정도씩 자기가 공부한 내용을 발표하고 서로 토론.
* 다음시간에는 무슨 내용이든 5분 발표 할 수 있어야함. 발표 못하면 노래라도 해야함.
- 2010php/방명록만들기 . . . . 2 matches
//내용 입력의 처리
echo("내 용 : $contents <br>");
- 2011국제퍼실리테이터연합컨퍼런스공유회 . . . . 2 matches
- 필요한 경우 절차에 따라 기법(예: 브레인스토밍)과 도구(예: SWOT)를 사용한다.
- 시간을 관리하고, 회의 내용을 적고, 요약한다.
- 2ndPCinCAUCSE/ProblemA . . . . 2 matches
같은 길이의 성냥개비가 여러 개 주어져 있다. 이것들을 평면에 늘어놓아서 삼각형을 만들려고 한다. 삼각형의 한 변은 여러 개의 성냥개비를 직선으로 이어서 만들 수 있지만, 성냥개비를 꺾거나 잘라서 변의 한 부분을 만들 수는 없다. 성냥개비의 개수가 주어졌을 때, 이들 성냥개비를 사용하여 만들 수 있는 서로 다른 삼각형의 개수를 구하는 프로그램을 작성하시오. 예를 들어서 9개의 성냥개비로 만들 수 있는 서로 다른 삼각형은 3가지이다.
(1) 주어진 성냥개비는 모두 사용하여 하나의 삼각형을 만들어야 한다.
- 3N+1Problem . . . . 2 matches
|| 작성자 || 사용언어 || 개발시간 || 코드 || 실행시간(i=1,j=999999 기준 4초 통과) ||
|| 작성자 || 사용언어 || 개발(수정)시간 || 코드 ||
- 3N+1Problem/1002_2 . . . . 2 matches
도저히 수열스럽지 않아서 다시 숫자들 간의 관계를 이리 적어보던중, 지난번의 UglyNumber 에서의 문제접근법(DynamicProgramming)을 해봄. 혹시 앞의 계산값이 뒤의 계산에 이용되지 않을까 생각을 해보다.
숫자들을 주욱 나열해보면서 해당 n 값 대비 count cycle Length 의 값은 고정적일것이라는 점과, 이 값을 일종의 caching 을 하여 이용할 수 있겠다는 생각이 들다.
- 3N+1Problem/Leonardong . . . . 2 matches
절대 쉽지 않은 문제였다. 아직 수행시간이 턱없이 길다. 사전형 멤버를 이용해 계산했던 부분은 저장해두어 다시 쓰도록 하였다. 답답하다. PsyCo라는 모듈을 새롭게 알알게되었다. --[Leonardong]
확신이 가지 않는 cutoff부분을 빼더라도 PsyCo를 쓰면 2초 안에 통과한다. 3시간 동안 10초 정도를 줄였는데, 10분만에 10초를 줄였다. 시간을 줄여야 하는데 정말 수가 안 떠오르면 PsyCo가 꽤 도움이 될 것이다. 남용은 조심해야겠다.--[Leonardong]
- 3rdPCinCAUCSE/FastHand전략 . . . . 2 matches
알고리즘을 위해 연습장을 썼습니다. B 문제와 A 문제는 이전에 같은 프로그램을 짜 본 경험이 있던 관계로 특별한 계산을 하지 않았으며, C 번 문제에 대해서 분석차 이용하였습니다. 그리고 테스트를 위해 예제 입력값들을 텍스트 화일로 미리 작성해두고, 도스창에서 이를 redirection, 결과를 확인했습니다. 이러한 방법은 특히 A 번 문제에서 큰 힘을 발휘했습니다. (A번 문제는 입력값이 오목판 전체 이기 때문이죠.) 결과에 대한 확인 테스트 시간이 1초도 걸리지 않았고, 테스트 인풋 데이터 만드는데도 거의 시간소요가 없었습니다.
구현은 C++로 하였으며 iostream 과 vector 를 이용했습니다.
- 5인용C++스터디/마우스로그림그리기 . . . . 2 matches
마우스를 이용하여 그림을 그릴 수 있는 프로그램 작성하기.
[5인용C++스터디]
- 5인용C++스터디/스택 . . . . 2 matches
클래스를 이용하여 스택 구현하기.
[5인용C++스터디]
- 5인용C++스터디/타이머 . . . . 2 matches
* 타이머는 어떻게 사용하나?
* 멀티미디어 타이머는 어떻게 사용하나?
- 5인용C++스터디/타이머보충 . . . . 2 matches
멀티미디어 타이머 사용하기.
[5인용C++스터디]
- 7피관리 . . . . 2 matches
* [PC실관리/고스트/네트워크를이용한OS설치]
일반 PC : 76-119, 121 (120번은 네토리 서버로 사용되고 있음.)
- ACE/HelloWorld . . . . 2 matches
* project setting 에서 link 탭에 aced.lib (디버그용), 또는 ace.lib 을 추가한다. (프로젝트 홈 디렉토리에 lib, dll 파일이있거나 path 가 걸려있어야 한다. 혹은 additional library path에 추가되어 있어야 한다)
GNU make를 사용하는 경우 다음과 같이 Makefile 을 만들어주어야 한다. 간단한 예) test.cpp 를 test로 빌드
- AKnight'sJourney . . . . 2 matches
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
|| [강소현] || 사용언어 || 개발시간 || [AKnight's Journey/강소현] ||
- AcceleratedC++/Chapter15 . . . . 2 matches
그러나 객체를 설계하는 기본적인 개념을 적용할 수 있는 예제이기 때문에 보곳 싶다면 책을 활용하는 것도 좋을듯...
- AcceleratedC++/Chapter3 . . . . 2 matches
* 평균값 대신에 중간값을 사용하는 프로그램으로 변경한다.
* vector 사용하기
- AcceptanceTest . . . . 2 matches
AcceptanceTest는 blackbox system test 이다. 각각의 AcceptanceTest는 해당 시스템으로부터 기대되는 결과물에 대해 표현한다. Customer는 AcceptanceTest들에 대한 정확성을 검증과, 실패된 테스트들에 대한 우선순위에 대한 test score를 검토할 책임이 있다. AcceptanceTest들은 또한 production release를 위한 우선순위의 전환시에도 이용된다.
["ProjectPrometheus"] 진행중에 ["1002"] 와 ["상민"]은 AcceptanceTest 를 작성하며 진행하였다. 주로 Python 을 이용하여 간단한 web bot 를 작성, 시스템이 잘 작동하는지에 대해 자동테스트를 구현했다.
- ActiveTemplateLibrary . . . . 2 matches
//CComQIPtr 사용예
//일반적인 COM interface 사용은
- AdventuresInMoving:PartIV . . . . 2 matches
이 트럭은 1킬로미터를 가는 데 1리터의 기름이 필요하다. 기름통은 200리터다. 워털루에서 트럭을 빌릴 때는 기름통이 절반만큼 차 있다. 나중에 대도시에서 차를 반납할 때도 기름은 절반 이상 채워 놓아야 한다. 그렇게 하지 않으면 렌탈 회사에 훨씬 비싼 비용을 지불해야 한다. 기름 값은 최대한 아끼고 싶지만, 그렇다고 해서 길 위에서 기름이 바닥나서 멈춰서는 일은 없도록 해야 한다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- AdvertiseZeropage . . . . 2 matches
- 위키 페이지를 만들면 된다고 말은 해 두었지만 실제로 위키를 사용할줄 하는 새내기가 몇이나 있을지 의문스럽군요
* 동문서버 이용
- AirSpeedTemplateLibrary . . . . 2 matches
특별한 녀석은 아니나, 다음의 용도를 위해 만들어진 TemplateLibrary
소스는 subversion 을 이용해서 다운받으면 됨. (해당 위키 페이지 참조. [Trac] 으로 관리되고 있음)
- Ant/JUnitAndFtp . . . . 2 matches
여기서는 ["1002"] 의 집 컴퓨터 셋팅을 예로 들었음. 적당히 값을 고쳐서 이용하면 된다.
이를 cron job 이나 windows 의 '예약된 작업' 등 스케줄러와 같이 이용하면 편리하다.
- Applet포함HTML/영동 . . . . 2 matches
* 음... HTML 컨버터로 컨버트하긴 했는데 ftp사용법을 몰라서 계정에 올리는 법을 모르겠네요. 그러한 관계로, 상욱이처럼 파일 내용만 올릴게요. ftp쓰는 법 배워서 링크시킬게요... [http://165.194.17.15/pub/util/WinSCP2.exe WinSCP 2.0 Beta]
- AutomatedJudgeScript . . . . 2 matches
입력은 임의 개수의 입력 세트로 구성된다. 각 입력 세트는 정답의 줄 수를 나타내는 100 미만의 양의 정수 n이 들어있는 행으로 시작된다. 그 다음 n개의 줄에는 정답이 입력된다. 그 다음 줄에는 제출된 풀이의 출력 결과의 줄 수를 나타내는 100 미만의 양의 정수 m이 들어있는 행이 입력된다. 그 다음 m개의 줄에는 제출된 프로그램에서 출력한 내용이 입력된다. n으로 0이 입력되면 입력을 종료하고 그 행은 처리하지 않는다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- AutomatedJudgeScript/문보창 . . . . 2 matches
단순한 문자열 비교문제라는 생각이 들었다. Presentation Error와 Accepted 를 어떻게 하면 쉽게 구별할 수 있을지를 고민하다 입력받을때부터 숫자를 따로 입력받는 배열을 만들어 주는 방법을 이용하였다.
char reply[MAX*MAX]; // 사용자 출력
- BasicJAVA2005/실습1/조현태 . . . . 2 matches
//// 사용자의 입력을 받습니다. ////
//// 사용자 입력 체크 ////
- BeeMaja . . . . 2 matches
마야라는 꿀벌이 있다. 마야는 수천 마리의 다른 벌들과 함께 육각형 모양의 벌집에서 살고 있다. 그런데 마야에게 문제가 생겼다. 그녀의 친구 윌리가 만날 장소를 알려줬는데, 윌리(숫놈 일벌)와 마야(암놈 일벌)는 서로 다른 좌표계를 사용한다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- Beginning_XML . . . . 2 matches
*1 XML 문법, 컴팩트 문법 사용
== 패턴과 문법 결합 및 재사용 ==
- BeingALinuxer . . . . 2 matches
- ls directory 하면 그 안에 있는 내용도 보여주는데.. ls pu* 하면. pu로 시작하는 파일하고 pu로 시작하는 디렉토리 안의 내용을 보여주겠지. 글고 linux, unix, bsd 계열의 OS에서는 폴더보다는 디렉토리라고 부르는게 맞는듯. - 인택
- BookShelf/Past . . . . 2 matches
1. 실용주의 프로그래머를 위한 CVS - 20050404
1. [(zeropage)실용주의프로그래머] - 20050921
- BusSimulation . . . . 2 matches
* User Input - 사용자는 자신이 원하는 시간 후의 시물레이션 결과를 볼 수 있다. 시간과 분을 입력받는다.
Discrete Event Simulation이 되겠군요. 사람이 몇 명이 기다리느냐, 길 막힘 상태 등은 이산 확률 분포를 사용하면 될 것입니다. NoSmok:TheArtOfComputerProgramming 에서 NoSmok:DonaldKnuth 가 자기 학교 수학과 건물 엘레베이터를 몇 시간 관찰해서 데이타를 수집한 것과 비슷하게 학생들이 직접 84번, 85-1번 등의 버스를 타고 다니면서 자료 수집을 해서 그걸 시뮬레이션 실험하면 아주 많은 공부가 될 것입니다 -- 특히, 어떻게 실세계를 컴퓨터로 옮기느냐 등의 모델링 문제에 관해. 실제로 NoSmok:DonaldKnuth 는 TAOCP에서 이런 연습문제를 만들어 놨습니다. 제가 학부생 때 누군가 이런 숙제를 내줬다면 아마 한 두 계단(see also ["축적과변화"]) 올라설 계기가 되지 않았을까 하고 아쉬울 때가 있습니다. 이 문제에 드는 시간은 하루나 이틀 정도가 되겠지만 여기서 얻은 경험과 지혜는 십 년도 넘게 자신의 프로그래밍 인생에 도움이 될 것이라 믿어 의심치 않습니다. (팀으로 문제 해결을 하면 더 많은 공부가 되겠지요) see also ProgrammingPartyAfterwords 참고자료 --JuNe
- C 로배우는패턴의이해와활용 . . . . 2 matches
= GoF 디자인 패턴! 이렇게 활용한다:C++로배우는패턴의이해와활용 =
- C++HowToProgram . . . . 2 matches
Deitel 부자의 C++ 개론 서적. 대학에서 교재로 많이 사용한다.
C++ 사용자 그룹에서는 "초보자에게 괜찮은 책"이라는 평가와 동시에 "형편없는 책"으로도 악명이 높다. see also [http://www.accu.org/bookreviews/public/reviews/cp/cp003204.htm ACCU review]
- C++Seminar03/SampleProblems . . . . 2 matches
For 루프 두개를 이용하여 구구단을 작성~
ax^2+bx+c 의 방정식을 근의 공식을 이용해여 풀어보기~
- C++Seminar03/SimpleCurriculum . . . . 2 matches
[C++Seminar03]에서 진행하게 될 대강의 커리큘럼. 각 주에 하면 좋을것 같은 내용들을 간단하게 정리해둡니다. 페이지 크기가 커지면, 하위페이지로 [문서구조조정]을 할 것입니다.
DeleteMe) 이 페이지에 제시된 내용대로 진행된다는 뜻이 아니라, 단지 '제안하는' 것입니다. - 임인택
- CORBA . . . . 2 matches
CORBA(Common Object Request Broker Architecture)는 소프트웨어 객체가 분산 환경에서 협력하여 작동하는 방식에 대한 일단의 명세서이다. 이 명세서에 대한 책임 기관은 OMG이며, 소프트웨어 업계를 대표하는 수 백 개의 회원 업체로 이루어져 있다. CORBA의 핵심부분은 ORB이다. ORB는 객체의 소비자인 클라이언트와 객체 생산자인 서버 사이에서 객체를 전달하는 일종의 버스로 생각될 수 있다. 객체의 소비자에게는 IDL이라는 언어를 이용한 객체 인터페이스가 제공되며, 객체의 생상자에 의해 제공되는 객체의 자세한 구현사항은 객체의 소비자에게는 완전히 숨겨진다.
* ["코바용어정리"]
- CPPStudy_2005_1/STL성적처리_2 . . . . 2 matches
map이용
주말에 class 를 이용해서 다시 작성해볼 예정
- CProgramming . . . . 2 matches
만들어진지 오래되어 조금 구질 구질하기도 하지만 좋은 내용인 Upload:zeropage:CampusC.zip 공개강좌로 위의 것보단 짧다.
[PracticalC]를 정리하는 이런 페이지도 있네요. 모두 같이 정리해 보고 활용해 보았으면 좋겠습니다.
- CSS . . . . 2 matches
잘 구조화된 클래스와 CSS를 잘 이용하면 충분히 깔끔한 소스를 얻을 수 있다.
HTML과 CSS를 분리한 웹페이지야말로, 사용자 측면에서도 개발자 및 디자이너 측면에서도 바람직하다. 웹접근성 뿐 아니라, 유지보수 관점에서도 제대로 된 구조화가 이루어져야 한다고 생각해요. - [(kiryu)]
- CanvasBreaker . . . . 2 matches
2. 다른 영상을 이용한 밝기 변화
5. 상수를 이용한 영상변화 - 30분
- CarmichaelNumbers . . . . 2 matches
암호 알고리즘 중에는 큰 소수를 활용하는 것도 있다. 하지만 어떤 큰 수가 소수인지를 판단하는 것은 그리 쉽지 않다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- CarmichaelNumbers/조현태 . . . . 2 matches
일단 소수이면 안되기 때문에 살포시 저번에 [FactorialFactors] 에서 사용했던 알고리즘을 사용해서 단시간에 소수인지 확인하도록 하였다.
- CeeThreadProgramming . . . . 2 matches
윈도우 유저레벨 동기화 방법. 가장 사용이 간단하다.
VS.NET에서도 함수이름을 인식하지 못하는 경우 프로젝트 세팅에서 MFC라이브러리를 사용하도록 해보세요.
- ChainsawMassacre . . . . 2 matches
첫째 줄에는 시나리오 개수가 입력된다. 각 시나리오의 첫째 줄에는 주어진 영역의 길이 l과 너비 w가 미터 단위로 입력된다(둘 다 정수며 0보다 크고 10,000 이하다). 그 밑으로는 각 줄마다 다음 형식에 따라 나무 한 그루 또는 한 줄로 심어진 나무들을 설명하는 내용이 입력된다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- ChartDirector . . . . 2 matches
Python 뿐만 아니라 다양한 언어들을 지원. Documentation 또한 잘 되어있고 사용도 간단.
PyKug:IflgImageChart 에도 이용됨.
- Code/RPGMaker . . . . 2 matches
알만툴에서 사용하는 Color 클래스이다.
내부적으로 자바의 java.awt.Color 클래스를 가지고 있으며 이를 이용하여 모든 값을 주고받는다.
- CodeRace . . . . 2 matches
코드 레이스는 팀 단위 실시간 프로그래밍 경진 대회입니다. 온라인게임이나 바둑, 혹은 스포츠 중계를 컴퓨터 프로그래밍에 적용하면 어떨까요? 코드 레이스는 10여팀이 동시에 같은 문제를 두고 프로그래밍을 하고, 이 모습이 실시간으로 벽에 투영되며, 해설자들은 관중과 교감해가며 그들이 두는 코드 한 수 한 수를 해설하는 독특한 행사입니다.
이 대회는 신입생의 흥미를 불러일으키기위해서 시행될수도 있습니다. 이때는 재학생을 같이 참여시켜 [PairProgramming]을 활용해 보는 것도 좋은 방법입니다.
- CodingStandard . . . . 2 matches
팀 내에서 일관된 코딩 스타일을 적용함으로서, 사람들이 서로 코드를 읽기 편하게 하며, CollectiveOwnership 을 도와준다.
진행해본 프로젝트들의 경우, 주로 자바는 자바 코딩스타일을, Python 은 Smalltalk Style 을 이용했었다. --["1002"]
- CollectionParameter . . . . 2 matches
ComposedMethod를 적용해보자.
즉, 두 메소드의 결과를 모으는 경우인데, 그리 흔한 경우는 아니였던걸로 기억. 약간은 다르긴 하지만 나의 경우 CollectionParameter 의 성격으로 필요한 경우가 read/write 등 I/O 가 내부적으로 필요할때 또는 Serialization 등의 일이 필요할때. 그 경우 I/O 부분은 Stream 클래스로 만들고(C++ 의 Stream 을 쓰던지 또는 직접 Stream 클래스 만들어 쓰던지) parameter 로 넘겨주고 그 파라메터의 메소드를 사용하는 형태였음. --[1002]
- CommonPermutation/문보창 . . . . 2 matches
ASCII 코드를 이용하여 소문자를 0~26의 숫자로 인코딩시켰다. 그 인코딩 숫자를 이용한 배열을 만들어서 그 배열끼리 비교를 해서 공통된 변경 문자열을 쉽게 만들수 있었다.
- ComputerNetworkClass/Exam2004_1 . . . . 2 matches
보내는 내용
TCP 에서 접속시에 이용하는 프로토콜을 그리고 설명하여라.
- ConstructorMethod . . . . 2 matches
''DesignPatterns 로 이야기한다면 일종의 FactoryMethod 임.(완전히 매치되는건 아니고, 어느정도 비슷) 비교적 자주 사용되는 패턴인데, 왜냐하면 객체를 생성하고 각각 임의로 셋팅해주는 일을 생성자 오버로딩을 더하지 않고서도 할 수 있으니까.
요새 프로그래밍 하면서 느끼는 점은, 과도한 오버로딩은 해당 객체를 이용하는 사람입장에서 골치아프게 만든다는것. 왜냐하면, 같은 메소드 이름에서는 해당 파라메터가 다른 것으로 바뀌었을때에 대한 의도를 메소드 이름에 드러나지 않기 때문에.
- Cpp/2011년스터디 . . . . 2 matches
* 2학기에 들어가기 전에 잉여로운 방학시간을 이용해서 C++에 관한 여러가지를 공부해보는 스터디입니다.
* 컬러기능 미묘하게 적용됨.
- CppStudy_2002_1/과제1 . . . . 2 matches
* 문제1번 : 여기서도 전역 변수를 많이 사용한거 같다. 이것은 피하는게 좋다. 여기서 함수가 호출한 갯수를 알아야 하는데 이때는 static 이라는 키워드를 사용하면 된다.
- CppStudy_2002_2/STL과제 . . . . 2 matches
* 이 내용을 파일로 입력받는다.
* 배열을 절대 사용하지 않는다!!
- CppStudy_2005_1/BasicBusSimulation . . . . 2 matches
* 시내 버스가 제 각각 다른 속도로 시내를 순환 한다. 이때 사용자로부터 입력 받은 특정 시점에서의 각 버스가 위치하는 지점을 출력해준다.
== 사용자 입력 ==
- Cpp에서의가변인자 . . . . 2 matches
=== 유용하게 쓰이는 곳 ===
[인수]는 AfxMessageBox류를 띄울때 참 유용하게 쓰고 있다. 가변인자를 몰랐을때에는
- CssMarket . . . . 2 matches
CSS 로 다음을 사용해 보세요. UploadFile 에 저장되어 있습니다.
외부에서 사용하시기 위해서는 앞에 http://zeropage.org/pub/upload/hirenn.css 같이 해주세요.
- CubicSpline/1002 . . . . 2 matches
제작 : Python 2.2, wxPython 2.3 for Python 2.2, Numerical Python 21.0 (주로 테스트를 위해 이용함)
각각 필요한 모듈에 대해서는 다음 링크들을 이용.
- CuttingSticks . . . . 2 matches
각 막대를 자르는 데 드는 최소 비용을 아래 예에 나와있는 것과 같은 식으로 출력한다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- CxxTest . . . . 2 matches
CxxUnit은 [CUT]의 C++버전이라 봐도 약간 상통하리라 본다.(오래되기는 CxxUnit 이 더 오래되었던걸로 기억) Python 이나 Perl 의 코드제너레이터 스크립트를 이용, Runner화일을 만들어준다. 이를 컴파일하여 실행하면 테스트가 실행된다.
[1002]의 경우 요새 CxxUnit 을 사용중. 밑의 스크립트를 Visual Studio 의 Tools(일종의 External Tools)에 연결시켜놓고 쓴다. Tool 을 실행하여 코드제너레이팅 한뒤, 컴파일. (cxxtestgen.py 는 CxxTest 안에 있다.) 화일 이름이 Test 로 끝나는 화일들을 등록해준다.
- C언어정복/3월30일 . . . . 2 matches
11. printf()와 scanf() 함수 이용 시연
13. for문 사용 방법 (실습 : 1~10까지 덧셈)
- DPSCChapter4 . . . . 2 matches
'''Bridge(121)'''은 적용(implementation)의 추상화를 통한 분리를 통하여 둘에게 독립성을 부여한다.
'''Facade(179)'''는 확장된 시스템에서(하위, 상속받은) interface들의 조합에 대한 일관적인 접근(interface)을 제공한다. Facade는 확장 시스템(하위, 상속받은)을 좀더 사용하게 쉽도록 높은 단계의 interface를 정의한다.
- DataCommunicationSummaryProject/CellSwitching . . . . 2 matches
* 고정길이 셀 사용(53byte = 48 byte의 페이로드 + 5byte의 헤더, ATM의 패킷은 셀이라고 한다.)
* 하드웨어 구현 용이
- DataStructure . . . . 2 matches
* 2월 14일 : 설 동안 좀 쉬고.. 마음가짐을 새로 잡았습니다. 실은 만화책 보느라..--; 지금 폭주중..--; 모르는게 무더기로 ㅠ.ㅠ 역시 대강대강 훑고 간 부작용인가..
= 내용 =
- DataStructure/Foundation . . . . 2 matches
* 기본적으로 함수를 호출하는 것 자체가 하나의 Overhead이며, 재귀호출의 경우 계속 함수스택에 해당 함수코드부분이 쌓여나가는 것이므로, n 의 값이 커질 경우 메모리를 많이 이용하게 됩니다. 하지만, 재귀호출의 표현법은 일반 수열의 표현식을 거의 그대로 이용할 수 있습니다. 코드가 간단해집니다.
- DataStructure/List . . . . 2 matches
* 리스트를 사용하는 간단한 예
* Double Linked List를 사용한 간단한 예(3개의 노드를 예로 듬)
- DatabaseManagementSystem . . . . 2 matches
DBMS라는 것은 DB를 다루기위해서 만들어진 프로그램이다. 이것은 다수의 사용자가 요청한 정보를 처리합니다. 원래 대용량의 데이터를 다루기위해서 만들어진 컴퓨터때문에 만들어진 것으로 DBMS는 컴퓨터의 back-end 프로그램의 표준화된 일부로서 완전히 통합되었다.
- DebuggingApplication . . . . 2 matches
== 맵 파일 생성하는 법과 사용법 ==
디버깅하는 데, 유용하다고 볼 수도 있고 어떻게 보면 절대적이라고도 볼 수 있는 툴
- DebuggingSeminar_2005 . . . . 2 matches
|| [DebuggingSeminar_2005/UndName] || UndName 사용법 ||
|| [DebuggingSeminar_2005/AutoExp.dat] || VC IDE의 Watch 윈도우에 사용자 데이터형의 표현형을 추가하는 파일 ||
- DesignPatternSmalltalkCompanion . . . . 2 matches
* DPSC는 GoF를 보충하는 기능을 한다. GoF에서의 내용과 비슷해보이지만, 군데군데 부연된 내용들이 보인다.
- DevCppInstallationGuide . . . . 2 matches
== 05를 위한 간단한 Dev 사용법 ==
수고했네. 내가 실행해보고 몇가지 내용 추가했어. -[강희경]
- DirectX . . . . 2 matches
이 페이지의 내용을 DirectX 로 옮겨두었습니다. DirectX 의 내용을 적절히 편집해 주세요.
- Doublet . . . . 2 matches
"이상한 나라의 앨리스(Alice in the Wonderland)"를 쓴 루이스 캐롤(Lewis Carroll)은 끝말잇기를 비롯하여, 영어 단어를 이용한 퍼즐들을 많이 만들었습니다.
재미있는 내용들이 많습니다. 그 곳에 가면 어떤 할아버지(?)가 눈을 치켜뜨고 쳐다보시는데, "너 왜 지금 공부 안하고 있는거지" 하고 호통치시는것 같아 뜨끔하더군요. 그분이 그동안 말로만 들었던 누쓰(Knuth) 이네요. --이선우
- EightQueenProblem/용쟁호투 . . . . 2 matches
C, C++, Python, Java, Delphi등이 있었으나...제가 주로사용하는 Powerbuilder로 해보고 싶은 마음에 도전하게 되었습니다...
재귀하는것이 귀찮아서 봉인되어있던 GOTO문을 사용했습니다...
- EightQueenProblem/임인택 . . . . 2 matches
n-Queen 모델에도 적용 가능합니다~
recursive-call 을 이용하겠다는 생각이 퍼뜩 들었다. 역시 가장 문제가 되는 부분은 backtrack 하는 부분이었다.
- ErdosNumbers . . . . 2 matches
각 시나리오에 대해 "Scenario i"(i는 시나리오 번호)라는 내용이 들어있는 행을 우선 출력한다. 그 다음 줄부터는 입력된 모든 이름에 대해 이름과 에르되시 수를 출력한다. 저자의 이름은 입력된 순서대로 출력된다. 에르되시 수는 시나리오에 들어있는 논문 데이터베이스를 기반으로 계산한다. 데이터베이스에 있는 논문으로 볼 때 에르되시와 전혀 관계가 없는 저자들의 에르되시 수는 "infinity"로 출력한다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- ErdosNumbers/황재선 . . . . 2 matches
* 자바 1.5의 새로운 기능을 조금 사용해보았다. 클래스 Scanner는 이전 방식으로 하는 것보다 훨씬 편한 기능을 제공해 주었다. for loop에서 신기하게 배열을 참조하는 방식이 Eclipse에서 에러로 인식된다.
이클립스 최신버전을 사용하면 되던데?! -[문보창]
- Eric3 . . . . 2 matches
근데 이게 PyQt 란 GUI라이브러리 써서 만든건데..PyQt는 Qt 있어야하는거 같고..Qt 윈도우용은 유료다.. -_-;; - [임인택]
개발자 홈페이지 가보면 이 사람이 윈도우용 PyQT 빌드 한 거 있음. 그거 깔고 설치하면 윈도우에서 실행 가능. (무언가 기능은 많긴 한데.. 개인적으로는 이상하리 손이 안가는중.;) --[1002]
- Erlang/기본문법 . . . . 2 matches
* 변수의 대입은 기존에 쓰던 방식과 같다. 물런 사용도 그대로 하면된다.
* C / C++ / Java 와 같이 정수형을 리턴하려면 div를 사용하며 나머지는 rem을 통해서 얻을 수 있다.
- EuclidProblem/곽세환 . . . . 2 matches
통과했다고 말하긴 뭐함(결국 책에 있는 코드 이용) 나중에 다시 도전할 생각
// 나머지를 이용해서 어떻게 해보려다 실패
- ExtremeBear/OdeloProject . . . . 2 matches
* gui사용(swing)
* 규칙(오델로 수용)
- FeedBack . . . . 2 matches
'''ZeroWiki에서 사용될때?''' [[BR]]
용어분류
- FifteenSecondsRule . . . . 2 matches
어떤 시스템/프로그램이 있을 때, 모든 개념적 단위(예컨대 패키지, 모듈, 클래스, 메쏘드 등)를 개발자 자신이 15초 이내에 설명할 수 있어야 한다는 "15초 룰"의 확장판이 꽤 유용할 때가 많습니다. 이런 식으로 설명을 모두 마쳤을 때는 소스 코드 전부를 설명한 셈이어야 합니다.
예를 들어, 경매 시스템이 있을 때, "이 시스템은 무얼 하는 것이냐?"라는 질문에 15초 이내에 깔끔하지만 '''완전한'''(complete) 대답을 할 수 있어야 하며, "그럼, 이 시스템에서 {{{~cpp Authentify}}} 서브 시스템은 뭘 하는 것이냐?"라는 질문에 역시 15초 이내에 완전한 대답이 가능해야 하고, "이 {{{~cpp FooBar}}} 객체는 무엇을 하는가?"라는 질문에 또 15초 이내의 대답이 나와야 합니다. 이런 식의 설명이 모두 끝났을 때, 소스 코드 '''전체'''를 훑은 셈이여야 합니다 -- 이게 용이하려면 프로그램의 구조가 이런 설명의 구조와 유사해야 합니다.
- FileStructureClass . . . . 2 matches
수업내용: 화일 구조에 관한것과 DB 를 쓰기 이전 직접 화일 구조를 만들어서 데이터처리를 할때 데이터 추가/삭제/변경에 관한 이것저것들. External Sort, B-Tree 등의 자료구조와 관련한 좀 더 심화된 내용들.
- FromDuskTillDawn/조현태 . . . . 2 matches
일단 수많은 귀차니즘으로 약간의 전역변수를 사용하였으며..
참고 : 나름대로 약간의 최적화가 되어있다. 그러나~ vector가 아닌 list를 사용한다면 좀더 효과적일듯하다.ㅎ 이런 귀차니즘~
- FundamentalDesignPattern . . . . 2 matches
DesignPatterns 의 패턴들에 비해 구현이 간단하면서도 필수적인 패턴. 전체적으로 가장 기본이 되는 소형 패턴들. 다른 패턴들과 같이 이용된다. ["Refactoring"] 을 하면서 어느정도 유도되는 것들도 있겠다. (Delegation의 경우는 사람들이 정식명칭을 모르더라도 이미 쓰고 있을 것이다. Java 에서의 InterfacePattern 도 마찬가지.)
근데, 지금 보면 저건 Patterns in Java 의 관점인 것 같고.. 그렇게 '필수적 패턴' 이란 느낌이 안든다. (Proxy 패턴이 과연 필수개념일까. RPC 구현 원리를 이해한다던지 등등이라면 몰라도.) Patterns in Java 에 있는건 빼버리는 것이 좋을 것 같다는 생각. (DoubleDispatch 는 잘 안이용해서 모르겠고 언어 독립적으로 생각해볼때는 일단은 Delegation 정도만?) --["1002"]
- GDG . . . . 2 matches
* Google의 네임벨류를 사용할 수 있음
* 내용 추가 바람
- GRASP . . . . 2 matches
'''''이 내용은 Applying UML and Patterns CHAPTER 22 [GRASP]에서 얻어온 것입니다'''''
일관된 interface를 사용
- GenericProgramming . . . . 2 matches
한소스를 여러 type에 적용시키는 프로그래밍 기법
C++에서 템플릿을 이용해서 구현되어 진다.
- Hacking . . . . 2 matches
* ssh(Secure Shell)을 이용한 원격 접속.
* Packet 전송 시 암호화 되는 툴 등을 사용.
- Hacking/20040930첫번째모임 . . . . 2 matches
== 모임 내용 ==
== 공부할 내용 ==
- Hacking/첫번째과제 . . . . 2 matches
진도를 나가다 보니 보충해서 공부 할 내용이 많기에 과제를 준비하였음
PHP로 쓸만한 방명록을 하나 만든다(형식자유, 내용자유, 단지 쓸만하면 됨)
- HanoiTowerTroublesAgain! . . . . 2 matches
하노이의 탑 문제를 변형시킨 문제들 중에도 흥미로운 문제들이 많이 있다. 이 문제는 N개의 기둥과 1부터 무한대까지의 정수가 적혀있는 공에 관한 문제다. 두 공에 적힌 번호의 합이 완전제곱수(어떤 정수를 제곱한 수)가 아니면 그 두 공 사이에는 서로 맞닿아있을 수 없을 만큼 큰 척력이 작용하게 된다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- HardcoreCppStudy . . . . 2 matches
* 수업 방식은 매주 중요한 개념에 대해 이야기하고 그 개념을 응용할 수 있는 예제들을 숙제로 내겠습니다.
* 우선 첫주는 객체지향을 들어가기 전에 7, 8장이나 함수 사용을 익숙히 하기 위해서 예제를 내겠습니다.
- HardcoreCppStudy/두번째숙제/This포인터/변준원 . . . . 2 matches
클래스 멤버내의 함수에서 자신의 함수를 호출할때 명시적 또는 묵시적으로 사용하는
했을때 Save함수 내에 GetA라는 함수를 호출한다고 하면 다음과 같이 사용이
- HelpMiscellaneous . . . . 2 matches
특정 URL을 fix해주는 기능을 제공합니다. 예를 들어 과거의 {{{http://foobar.org}}}였던 링크가 최근에 {{{http://foobar.com}}}으로 바뀌었다면 이를 UrlMappings에 등록해서 자동으로 잘못된 URL 정보를 fix할 수 있게 해줍니다. 이 기능은 단지 대치만 해주기 때문에 실제로 페이지 내용이 바뀌거나 하지는 않습니다.
그밖에 자세한 내용은 각각의 기능 페이지를 참조하세요.
- HelpOnEditing . . . . 2 matches
위키위키는 기본적으로, 위키위키 내의 모든 페이지를 모든 사용자가 고칠 수 있습니다. 위키위키는 좀 더 편리하고 직관적인 페이지 편집을 지원하며 편집에 앞서 몇가지 포매팅 규칙을 배우셔야 합니다.
* HelpOnXmlPages - 페이지를 xml로 저장하고 xslt 적용하기
- HelpOnLists . . . . 2 matches
=== 사용례 ===
/!\ 정의 문법은 자주 쓰이지 않는 문법이며 모인모인 호환용 문법입니다. 1.1.3CVS에 포함된 monimarkup.php에서 아직 지원하지 않습니다.
- HelpOnRules . . . . 2 matches
네가이상의 "-"를 사용하면 가로줄이 됩니다. 대쉬의 개수가 증가할 수록 굵기가 두꺼워지고 10개 이상이면 굵기가 더 이상 증가하지 않습니다.
=== 사용례 ===
- HerdingFrosh . . . . 2 matches
4학년 선배는 전신주에 그 명주실을 묶고, 잔디밭 주변을 한 바퀴 돌면서 명주실로 모든 학생들을 감싼 다음 다시 전신주로 돌아온다. 그 선배는 모든 신입생들을 둘러싸는 필요한 최소 길이만큼의 명주실을 사용했으며, 전신주에 명주실을 묶기 위해서 1미터만 남겼다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- HereAndNow . . . . 2 matches
[조현태]군의 페이지에서 아래 내용을 보았습니다.
* 앗, 제글이 인용될거라고는 생각지도 못했던 일이네요.^^ 저렇게 적고도 아직 리펙토링은 손도 못대고 있었는데 말입니다.
- HowBigIsIt?/하기웅 . . . . 2 matches
그래서 열심히 팩토리얼을 이용하여 모든 경우를 계산하는 프로그램을 만들었음~~
이럴 땐 두 원 사이의 거리를 이용한 풀이 방법이 통하지 않게 된다.(통하게 될려면 완벽한 예외처리가 필요하다)
- HowManyOpenSourceSoftwaresDoYouUse . . . . 2 matches
얼마나 많은 OpenSource 소프트웨어를 이용하십니까? (참고로, OpenSource와 FreeWare는 다른 개념입니다.). [숫자증가식투표패턴]을 사용합니다.
- ImmediateDecodability . . . . 2 matches
파일에서 연속된 데이터를 그룹 형태로 입력을 받아들인다. 그룹의 각 데이터는 기호용 이진 코드를 나타내는 0과 1의 집합으로 구성된다. 각 그룹은 단일 숫자 9로 구분된다. 구분 숫자인 9는 그룹에 속하지 않는다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- InterMap . . . . 2 matches
#이를 이용해 링크를 거시려면,
ZDic http://dic.zdnet.co.kr/frame_desc.html?key= # ZDnet 의 IT 용어 사전
- JAVAStudy_2002 . . . . 2 matches
목표: JAVA를 이용, 다중 Chattiing 프로그램을 작성한다. [[BR]]
core java에 나온 내용이 어렵구만.. [[BR]]
- JSP . . . . 2 matches
->servlet 변환 -> "쓰레드" 생성 -> 사용자에게 리턴 -> (사용자) -> 웹 브라우저
- JTDStudy/첫번째과제/상욱 . . . . 2 matches
* 일단 테스트 무시하고 해. JUnit사용하는 방법은 나중에 알려줄테니깐. - [상욱]
* JUnit 4.1을 추천합니다. 3~4년 후에는 4.1이 일반화 되어 있겠죠. 사용하다 보니, 4.1은 배열간의 비교까지 Overloading되어 있어서 편합니다. 다음의 예제를 보세요. SeeAlso [http://neocoin.cafe24.com/cs/moin.cgi/JUnit JUnit in CenterStage] --NeoCoin
- JTDStudy/첫번째과제/원명 . . . . 2 matches
용기가 내셔서 저를 찾으면... ;;
해당 함수를 알고리즘에 적용, Test는 계속 녹색 .
- JavaStudy2002/입출력관련문제 . . . . 2 matches
* 여러분이 어려워하시는것 같아, 입력 부분을 만들었습니다. 해당 static method의 기능은 한줄을 읽고, 공백이나, 탭을 기준으로 배열을 반환합니다. 사용 방법은 해당 함수의 main 을 참고하시고, 다른 소스에서 import해서 그냥 사용하세요. --["neocoin"]
- JavaStudy2002/해온일 . . . . 2 matches
* CVS 를 다시 이용해 보기
* CVS를 이용해서 ZeroPage 서버에 소스 올리기.
- JavaStudy2003/세번째과제 . . . . 2 matches
== 과제 내용 ==
* 으... 수업 내용을 읽고 이 페이지를 여러분들이 직접 만들줄 알았습니다. 제가 만들게 된 사태 중 하나는 역시 한분도 안읽어서인가요..ㅡ.ㅡ; -[상욱]
- JavaStudy2003/첫번째수업 . . . . 2 matches
2003년 신입생 대상 자바 스터디 첫번째 수업 내용입니다.
== 내용 ==
- JavaStudy2004/오버로딩과오버라이딩 . . . . 2 matches
== 수업 내용 ==
위에서 말한 People클래스의 move함수를 예를 들어보겠다. 위의 move함수는 정수형 인자를 매개변수로 받아들인다. 만약 people.move(1.1, 2.13)라는 명령어를 실행한다면 매개변수의 타입이 다르다는 에러가 발생할 것이다. 더블 형의 인자를 받아들이기 위해 move함수를 Overloading한다. move(double aX, double aY){this.position.x += (int)aX;this.position.y += (int)aY;} 두 함수 다 유효한 함수로 사용된다. 두 함수 중 어떤 함수가 호출될 것인지는 매개변수 값에 의해서 결정된다. 즉 오버로딩 된 함수들은 반드시 매개변수의 타입이 달라 서로 구별될 수 있어야 한다.
- JavaStudy2004/콤보박스와리스트 . . . . 2 matches
* 에디트박스의 내용을 어떻게 얻어오나?
* 콤보박스의 내용을 어떻게 얻어오나?
- JavaStudyInVacation/진행상황 . . . . 2 matches
이런것들은 다 같이 찾아보고, 다 같이 토론하고, 다들 이해했으면 하나로 정리해서 써두 될텐데요^^ 위에 AWT와 SWING의 차이도.. 그리고 아래 네트워크를 사용하는 방법도 마찬가지구요~ 이렇게 각자 쓸것까지야... --["상규"]
* 자바에서 네트워크를 사용하는 방법에 대해 간단히 알아보기.
- KeyNavigator . . . . 2 matches
== 항해용 키 ==
로그인과 로그아웃시 마우스 사용을 하지 않고 키의 여정을 최소화 했습니다.
- LinuxServer . . . . 2 matches
서버를 구축하고 관리하고 다양한 웹 프로그램을 사용해 보는 프로젝트.
|| 금요일 11/18, 오전 11시 - 1시 || [11/18일모임내용] ||
- LoadBalancingProblem . . . . 2 matches
IPSC 에는 입력을 파일로 받도록 하였으나 여기서는 직접 사용자가 다음과 같은 형식으로 입력한다.
|| 해결자 || 개발시간 || 사용언어 || Source ||
- LoveCalculator/조현태 . . . . 2 matches
커플이야 사랑을 이딴걸로 확인할일 없을꺼고.. 사용하는 사람은 할일없는 솔로뿐..
어때요? 좀 나아진거 같나요?ㅎ 평가 및 조언 부탁드려용~~>ㅁ<;;
- MFC/DeviceContext . . . . 2 matches
DC가 사용하는 좌표계.
SetViewportOrg() API 함수나, CDC::SetViewportOrg()를 이용해서 원점의 위치를 변경할 수 있다.''
- MFC/RasterOperation . . . . 2 matches
CDC는 다양한 드로윙 모드를 제공한다. ROP는 그런 드로윙 모드의 하나로, 동적으로 변화되는 그림을 그릴때 그림을 지우고 다시그리는 작업을 하는데 유용하다.
이를 이용하면 그림을 지우는 과정을 하지 않고 단순히 동일한 그림을 그림으로써 기존의 그려진 그림을 간단히 지우는 것이 가능하다.
- MFCStudy2006/Client . . . . 2 matches
* 실제 User가 사용할 Client를 제작
* 2006. 7. 11.(화) - 클라이언트의 UI구현을 위한 내용(Dialog Box, BMP집어넣기, 버튼 제작 등) 스터디, 제작
- Map/임영동 . . . . 2 matches
//벡터, 맵 사용 예제
//디코딩용 루프
- MemoryUsageInJava . . . . 2 matches
자바로 작성된 프로그램에서 사용된 메모리 크기 측정. 외부에서 import 된 모듈에서 사용하는 메모리도 측정되는지는 잘..-_-a
- Minesweeper/이도현 . . . . 2 matches
방법은 여러가지가 있겠지만 아주 간단하게 2차원배열을 잡고 8가지 방향을 모두 조사해보는 방법을 사용하였다.
// 출력 - 배열 내용 출력
- MiningZeroWiki . . . . 2 matches
활동 아이디어 n조 * (OHP필름2장, 보드마커, IndexCard 1장, 지우개용휴지2장 ), 접착테이프
* 1안 : 주최자가 시작점을 주고, 2인 일조가 되어 OHP에 보드마커를 이용해 링크 방향으로 MindMap 그린다. 차후 큰 장소에 OHP를 합쳐본다.
- MobileJavaStudy/Tip . . . . 2 matches
그러므로 {{{~cpp destroyApp}}} 메소드를 만들 때 {{{~cpp MIDletStateChangeException}}}을 사용해야 하게 된다면 {{{~cpp unconditional}}} 값에 따라 이 값이 {{{~cpp false}}}인 경우에만 {{{~cpp MIDletStatChangeException}}}을 사용하고 {{{~cpp true}}}인 경우는 무조건 {{{~cpp Destroyed}}} 상태로 가야하는 상황이므로 그 상황에 맞게 처리해 주면 된다.
- ModelViewPresenter . . . . 2 matches
어플리케이션을 이러한 방법으로 나누는 것은 좋은 SeparationOfConcerns 이 되며, 다양한 부분들을 재사용할 수 있도록 해준다.
실제 IBM 의 샌프란시스코 프레임워크에 사용되었다고 들었던것 같다. (그래서 그런지 좀 추상적이면서 광고성의 문구로 보이긴 하다 -_-;) --[1002]
- Monocycle . . . . 2 matches
각 테스트 케이스의 첫째 줄에는 그리드의 크기를 나타내는 두 개의 정수 M과 N(1≤M, N≤25)이 입력된다. 그 밑으로는 M줄에 걸쳐서 각각 N개의 글자로 그리드 구성을 기술하는 내용이 입력된다. '#' 문자는 자전거가 갈 수 없는 정사각형을 나타내며, 다른 모든 정사각형에는 자전거가 갈 수 있다. 자전거의 출발지점은 'S'로, 도착지점은 'T'로 표시된다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- NIC . . . . 2 matches
["zennith"]가 사용하고 있는 NIC 는 현재 '''Realtek 8029(AS)''' 이다. 이 NIC 에 대해서 특별히 불만은 가지고 있지 않았지만, 얼마전에 경험하게 되었다. 바로, Linux 에서의 드라이버 지원 문제였는데, 동사의 8139(10/100 mega bit ethernet 카드로서, 대부분 리얼텍 NIC 를 쓴다고 한다면 이8139일 것이다.)는 매우 잘 지원되는 것으로 보였으나.. 단지 10m bit ethernet 인 내 8029 는 너무 오래전에 나온것인지 꽤, 고난과 역경을 겪게끔 하는 그런 카드였다. 그래서, 지금 ["zennith"] 가 알아보고 있는 카드가 두개 있다. 하나는 ACTTON 에서 나온 것과, 또 다른 하나는 그 이름도 유명한 NetGear 에서 나온 10/100 카드이다. 전자의 ACTTON 것은 나름대로 한 시대를 풍미했던 DEC 의 튤립이란 카드의 벌크 제품이라던데... 7000원이라는 가격이 매우 돋보이지만, 이것역시 벌크제품인지라 드라이버 지원문제가 꽤 걸릴거 같아서, 아무래도 NetGear 의 제품을 사게 될 것 같다.
그리고 들은 소문이지만, 일부 저가형 랜카드 중에는 Collision 체크 루틴을 빼버려서 저가화 시킨다는 '- 카더라' 식의 소문이 있다. 아무튼, ["zennith"] 는 영화 와 같은 대용량의 자료를 받았을때 원본과 달라진 경험을 가끔 했었다. NetGear 로 바꾼 후에는 그런 부수적인 효과까지 기대하고 있다.
- NSIS/예제2 . . . . 2 matches
; 사용했던 디렉토리들 제거.
; 사용했던 디렉토리들 제거.
- NeoZeropageWeb . . . . 2 matches
태터 1.0 출범과 함께 다중 사용자의 지원이 가능한 것을 이용함
- NumericalAnalysisClass/Exam2002_2 . . . . 2 matches
1. 주어진 함수 f(x) = x^3 + x - 4 이 구간 [1,4] 에서 하나의 해를 갖을 때, 그 근사값이 10^-4 의 오차 한계에서 구하기 위해 이분법 (bisection method) 을 적용하였을 때 최대 반복횟수를 계산하시오.
b) 여인수를 이용한 determinant 를 계산하시오.
- ObjectOrientedReengineeringPatterns . . . . 2 matches
실용적인 책.
이 책을 처음 이용할때는 한번 '책에서 이런거 해보랬으니까 이거 해보면 어떨까?' 하면서 각 방법들을 해봤으면 한다. 여러 장점들을 얻어낼 수 있을것이다.
- OpenGL . . . . 2 matches
3D Programming 을 위한 API. 요새 유행하는 3D Game Programming 시에는 주로 [Direct3D] 와 [OpenGL]을 사용한다.
Upload:mfc+opengl.zip MFC에서 사용하는 예제
- OperatingSystem . . . . 2 matches
일종의, [[SeparationOfConcerns]]라고 볼 수 있다. 사용자는 OperatingSystem (조금 더 엄밀히 이야기하자면, [[Kernel]]) 이 어떻게 memory 와 I/O를 관리하는지에 대해서 신경쓸 필요가 없다. (프로그래머라면 이야기가 조금 다를 수도 있겠지만 :) )
== 주로 사용되는 OS ==
- OperatingSystemClass/Exam2006_2 . . . . 2 matches
=== 문제 내용 ===
5. Raid의 정의와, 사용하는 이유, 각 레벨 별 특징을 약술하시오.
- OurMajorLangIsCAndCPlusPlus/Class . . . . 2 matches
private - 클래스 멤버만 사용 가능
public - 외부에서도 사용 가능
- OurMajorLangIsCAndCPlusPlus/XML/조현태 . . . . 2 matches
/* 내용의 출력 */
/* 새로 검색된 내용을 추가합니다. */
- OurMajorLangIsCAndCPlusPlus/math.h . . . . 2 matches
|| 함수명(Ascii) || 내용 ||
||double log10 ( double x ) || x의 상용로그값을 구한다 ||
- OurMajorLangIsCAndCPlusPlus/print/조현태 . . . . 2 matches
* 요구사항에는.. 절대로! %f일때 0을 넣으면 0.0이라고 출력하라는 내용도.. %f에서 소숫점 이하 몇자리만 출력하라는 내용도.. 없었다!!!!! (이런 게으름뱅이!! 퍽!)
- OurMajorLangIsCAndCPlusPlus/string.h . . . . 2 matches
|| 함 수 명 || 내 용 ||
|| 함 수 명 || 내 용 ||
- PC실관리 . . . . 2 matches
이번 피시실 평가제 설문 내용이네요.
* [PC실관리/고스트/네트워크를이용한OS설치]
- PC실관리/고스트/네트워크를이용한OS설치 . . . . 2 matches
* 고스트를 사용하면 네트워크상에 다른 컴퓨터에 있는 고스트 이미지를 사용하여서 현재 컴퓨터에 이미지가 없더라도 설치가 가능하다. 교내 네트워크로 하기 때문에 속도가 상당히 빠르다. 10분안에 설치가 끝난다.
- PNGFileFormat/FileStructure . . . . 2 matches
|| Name || 여러개 허용? || 파일상의 위치 제약 ||
|| IDAT || o || 여러개가 사용된다면 반드시 연속적이어야 함 ||
- Perforce . . . . 2 matches
상업용 RC 이며, 오픈 소스 프로젝트 진행에 한해서는 무료로 배포된다.
프로그램은 서버, 클라이언트 환경으로 관리되며, 서버는 소스의 모아서 관리한다. 서버 프로그램은 유닉스, 맥, MSWin 버전으로 제공된다. 클라이언트는 GUI, CMD 버전의 툴을 지원하며 다양한 OS 에서 이용가능하다. 또한 IDE 와 연동역시 지원한다. (IDE에는 3dmax, maya, photoshop, office 등을 포괄하는 방대한 시스템)
- PersonalHistory . . . . 2 matches
* [ProjectEazy] - AI를 이용한 3살짜리 여자아이 '이지(Eazy)' 만들기
* [5인용C++스터디] - 2003여름방학
- PluggableBehavior . . . . 2 matches
서로 다른 행동을 유발하는 것에 사용될 변수를 추가하라. 단 하나의 메소드만 오버라이딩된 수백,수천개의 클래스를 만들지 말고, Pluggable Behavior를 사용하자.
- PluggableSelector . . . . 2 matches
예를 들어, 어떤 비쥬얼한 컴포넌트를 다른 것의 상대적인 부분에 위치시키고 싶다면, 상대적인 위치를 만들어주는 Pluggable Selector를 사용할 수 있다.(???)
이제 일반 Point처럼 사용할 수 있다.
- PowerOfCryptography . . . . 2 matches
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
ACM문제들을 훑어보다가 '1학년 여러분들이 풀어봤으면 좋겠다'라는 생각이 들어 번역해서 올립니다. 지금까지 배운 C를 이용하여 이 문제를 한번 풀어보세요. C를 다지기 좋은 문제라고 생각합니다. -- 보창
- PowerOfCryptography/Hint . . . . 2 matches
2. 꼭 루프를 사용해야 하나?
- 간단한 수학식을 통해 O(1)안에 해결할 수 있다. Log를 이용해보자.
- ProgrammingLanguageClass/Report2002_1 . . . . 2 matches
※ 입력된 문장들이 제시된 문법(grammar)에 맞는지 판단하는 Recursive Descent Parsing 기법을 이용한 파서(parser)를 작성하시오.
* 입력 스트림에서 ASCII 코드로 32 이하인 것은 모든 white-space로 간주하며, white-space는 각 token을 구별하는 용도 이외에는 모두 무시한다.
- ProjectAR/Temp . . . . 2 matches
- FrameMove() : Doc를 바탕으로 출력용 좌표들을 계산한다. // 입력한 내용들도 반영한다.
- ProjectEazy . . . . 2 matches
PyKug:KoCo - hangul 모듈 설치, 사용법
이렇게 어려운 프로젝트에 뛰어들다니 용기가 가상하구나. http://www.alicebot.org/ 를 참고해 봐라. 예전에 윤송이박사 프로젝트에서 잠시 들여다 본 적이 있다. 이쪽에서는 거의 독보적인 듯 하다. --JuNe
- ProjectGaia/요구사항 . . . . 2 matches
* 편리한 사용자 인터페이스
* 편리한 사용자 인터페이스
- ProjectPrometheus/Iteration5 . . . . 2 matches
||요일|| 시간 || 내용||
|| 도서관 검색 결과를 사용자 평가도에 따라 정렬하기 || . || . ||
- ProjectPrometheus/Iteration7 . . . . 2 matches
|| 서평 목록, 내용 출력 || 0.5 || ○||
|| 사용자 등록 페이지 || 0.5 || ○ ||
- ProjectPrometheus/Tips . . . . 2 matches
=== Python 에서의 한글 사용 ===
Python 에서는 urllib 와 httplib 를 이용한다. Python document 의 httplib - examples 를 참조하면 된다.
- ProjectPrometheus/방명록 . . . . 2 matches
* 우선 프로메테우스가 대상을 받은 거 축하드립니다...^^ 한편 한 번 써볼라고 사용자 등록을 하려니까 '500 Servlet Exception' 이 나네요...-,-;;; 그리고 저희 집 해상도가 1024 * 768 인데 프레임 오른쪽이 쬐끔 잘리네요. --재동
* 현재 http://www.lib.cau.ac.kr 에 우리가 이용했던 기본검색 이 통째로 사라졌다는.. 아마 도서관쪽에서 서비스를 막아놓고 계속 수정중인가 본데(설마 그 기능을 빼버리는 일을 하진 않겠지). 좀 시간을 둔뒤 대안을 잡아야 할듯. --["1002"]
- ProjectVirush/Rule . . . . 2 matches
* 플레이어끼리 암투 - 상대 약점을 이용해서 경쟁한다. 자기 바이러스에 유리하도록 숙주를 조종하거나 상대 바이러스에 대한 면역이 생기도록 일종의 예방접종용 바이러스(백신)을 퍼트린다.
- PyIde/SketchBook . . . . 2 matches
* search - Function 이동시 편리. 게다가 일반 텍스트 에디터에 비해 search 기능을 수행하는 비용이 작다. / 한번, 그리고 바로 키워드 입력. (다른 녀석은? Ctrl+F , 키워드 입력, enter & enter. incremental search가 아닌 경우는 한단계가 더 있게 된다.)
하지만, 손가락 동선의 경우 - ctrl + O 를 누르고 바로 메소드 이동을 한다. 일반 이동도 메소드 중간 이동은 CTRL +커서키. (이는 VIM 에서의 W, B) 위/아래는 커서키. 클래스로의 이동은 CTRL+SHIFT+T. Source Folding 도 주로 Outliner 에 의한 네비게이팅을 이용한다면 별로 쓸 일이 없다. 보통 의미를 두고 하는 행동들은 클래스나 메소드들 단위의 이동이므로, 그 밑의 구현 코드들에 대해 깊게 보지 않는다. (구현코드들에 대해 깊게 보는 경우가 생긴다면 십중팔구 Long Method 상황일것이다.)
- PythonIDE . . . . 2 matches
파이선은 나온지 상당히 오래된 언어이며, 대안언어중에서 사용자가 가장 많은 상당히 비중이 높은 언어이다. 비록 어처구니 없는 상황하에서 발생하는 에러가 무시하지 못할 수준이기는 하지만 언어의 특징인 최대의 간격함과 빠른 개발을 위한 다양한 특징이 언어자체에 내포되어있다.
* PyDev : 이클립스 플러그인으로 제공된다. 설치가 용이하며, 이클립스 통합이기 때문에 굉장히 단순하며, 안정성이 높다.
- PythonMultiThreading . . . . 2 matches
사용하는 방법은 매우 간단. Thread class 를 상속받은뒤 Java 처럼 start 메소드를 호출해주면 run 메소드에 구현된 내용이 multithread 로 실행된다.
- QuestionsAboutMultiProcessAndThread . . . . 2 matches
* CPU가 할당한 Time Slice를 하나의 Processor내부에 있는 각각의 Thread가 쪼개서 사용 하는 것인가?
* 그럼 여러 개의 Thread가 존재하는 상황일 때, 하나의 Thread가 One Time Slice를 전부 사용하는 경우가 있는가??
- RandomWalk/임인택 . . . . 2 matches
=== 소스 2 : 1에 [STL]을 사용하고 약간의 [Refactoring] ===
=== 소스 3 : Recursion 을 이용해봄 ===
- RandomWalk2/Insu . . . . 2 matches
* 하면서 static 사용법을 확실히 익혔습니다. 상규 땡쓰~^^
* STL 컨테이너는 복사본을 사용한다는 걸 알고 포인터로 바꿨습니다.
- RelationalDatabaseManagementSystem . . . . 2 matches
이 논문에서 이 사람은 대용량 데이터베이스의 저장과 작업에 잇어서 새로운 시스템을 기술한다. 기존의 정렬된 링크드 리스트의 자유로운 형태의 레코드가 아니라, 고정 길이의 레코드를 가진 표를 데이터의 저장에 이용하자는 생각이었다. 링크드 리스트 시스템은 희소한 데이터베이스를 저장하는데 있어서 대단히 비효율적이었다. 관계형 모델에서 이것은 테이블에다 데이터를 나누어서 저장하면서 이를 해결한다.
- ReleasePlanning . . . . 2 matches
릴리즈 계획 회의의 핵심은 개발팀이 각 사용자 스토리에 대하여 이상적으로 프로그래밍 했을때 소요되는 시간을 예측하는 것이다.
사용자 스토리는 출력하던지 아니면 카드위에 쓴다. 고객과 개발자는 함께 카드들을 테이블에서 이리저리 옮기면서 첫번째 또는 다음 릴리즈시 구현될 스토리를 만든다.
- ResponsibilityDrivenDesign . . . . 2 matches
RDD는 객체 디자인에 대해 명확하게 사고할수 있도록 도와주고 객체 지향 기술의 장점을 최대한 이용하는데 도움을 준다.
* SeparationOfConcerns - 논문에 관련 내용이 언급된 바 있음.
- Ruby/2011년스터디/서지혜 . . . . 2 matches
* 루비에서의 윈도우API사용
* 윈도우API 사용법 습득
- RubyLanguage/Expression . . . . 2 matches
* 수식자로 사용: 조건이 참일 때만 식을 수행
* 탈출 구문은 if 수식자를 사용하는 것이 간편함
- RubyLanguage/InputOutput . . . . 2 matches
* 파일을 new로 부르지 않고 사용할 수 있다.
* TCPSocket을 이용한 네트워킹
- ScaleFreeNetwork/OpenSource . . . . 2 matches
* [김준석]이 2012년도에 졸업하기위해 실시간응용소프트웨어 연구실에서 받은 과제
= 사용 툴 =
- Self-describingSequence/1002 . . . . 2 matches
* k 값 대비 f(k) 값을 훨씬더 많이 알아낼 수 있을텐데, 이를 이용할 방법이 있을까?
메모리 사용량 : 31MB
- SeparatingUserInterfaceCode . . . . 2 matches
이는 UI 부분에만 적용되지 않는다. 일종의 InformationHiding 의 개념으로 확장할 수 있다. 예를 들면 다음과 같이 응용할 수 있지 않을까.
- SmalltalkBestPracticePatterns/DispatchedInterpretation . . . . 2 matches
과거로 돌아가서 데이타가 연산으로부터 불리되었을 때, 그리고 종종 그 둘이 만나야 했을 때, 인코딩 결정은 중대한 것이었다. 너의 어떠한 인코딩 결정은 연산의 많은 다른 부분들을 점차적으로 증가시켜나아갔다. 만약 잘못된 인코딩을 한다면, 변화의 비용은 막대하다. The longer it took to find the mistake, the more ridiculous the bill.
때때로, 그러나, 한 객체의 정보는 다른 객체의 행위에 영향을 미칠 것이다. 정보의 사용이 단순할 경우, 또는 제한된 정보에 기반해서 선택이 가능할 경우에는 인코딩된 객체에게 메시지를 보내는 것이 충분히 가능하다. 이와 같이, 부울린 값들은 두 클래스의 하나의 인스턴스로 표현되어진다는 사실은, True 그리고 False, 메시지 #ifTrue: ifFalse:. 뒤로 숨겨진다
- SoJu . . . . 2 matches
▼▼▼▼▼Dev 사용법입니다! 꼭 보세요▼▼▼▼▼
Dev 사용법은 바로 위에 있습니다. 꼭 다운받고 해보세욧!
- SpiralArray/Leonardong . . . . 2 matches
TDD로 풀었다는 점이 기쁘다. 처음부터 너무 메서드를 어디에 속하게 할 지 고민하지 않고 시작한 것이 유용했다. 그 결과로 예전 같으면 생각하지 못했을 Direction클래스와 그 하위 클래스가 탄생했다. 또한 행렬은 최종 결과물을 저장하고 보여주는 일종의 뷰처럼 쓰였다.
goStraight 전 버전은 Direction클래스를 이용해서 이동한(벽을 만나면 이동하지 않음) 위치를 얻어내고, 이동한 기록을 저장하는 형식이었다. 벽에 대한 검사가 겹치는 것 같아 mover에서 바로 벽을 검사하고 벽에 들어서면 종료하는 것으로 만들었다. 그러고 보니 따로 카운트 할 필요가 없어 moveCount변수를 없앴다. mover가 종료 조건도 검사하는데 board 넓이만큼 이동했으면 끝나는 것이기 때문이다.
- SqLite . . . . 2 matches
어플리케이션 내에 포함(Embedding) 이 가능한 DB. Java 에서 HypersonicSql 과 비슷한 역할. C/C++ 에서 간단한 데이터베이스 기능을 추가하고 싶을 때 비교적 쉽게 이용 가능.
[http://www.int64.org/sqlite.html - SQLite C++ Wrapper]. 단, 이 코드의 경우 long long 형을 쓰는 관계로 VC6 에서는 컴파일이 되지 않는다. long long 형을 쓰는 부분을 __int64 로 바꾸면 VC6 에서도 이용은 가능.
- StarCraft . . . . 2 matches
그때의 기억을 되살려 클레스의 기본적이고도 강력한 기능중 하나인 상속성을 쉽게 이해하고 활용할수 있도록 문제를 생각해 봤다.
늘 그렇듯이 대부분의 사람들이 물리적 대상과 객체를 대응하는 고정관념에 빠져있어서 문제가 됩니다. 관계, 개념 등도 객체가 될 수 있다는 발상전환을 가능케 해주면 좋겠지요. 처음에 이런 사항만 넌지시 알려주고 디자인 하게 합니다. 그러고 나서, 일단 학생들의 디자인으로 개발한 것을 놓고, 같이 토론해 보고(이 때 선배는 뒤에 물러서 관찰만 함) 다시 한번 새로 디자인하게 합니다. 그리고 이번에는 선배가 디자인한 것을 후배들이 최종적으로 디자인한 것과 동등하게 같이 놓고 토론해 봅니다. 이 때 중요한 것은 선배의 것이 마치 "궁극적 해답"인 마냥 비치지 않도록 주의하는 것이겠죠. (디자인 시에는 KentBeck과 WardCunningham이 최초 교육적 목적에서 개발한 CrcCard를 사용하면 아주 훌륭한 결과를 얻을 것입니다.) --JuNe
- StructuredProgramming . . . . 2 matches
구조적 프로그래밍 기법으로서 OOP에서도 여전히 유용하게 이용할 수 있는 방법으로는 StepwiseRefinement 가 있다. 이는 처음 추상적인 이름으로 서술한뒤, 점차적으로 구체적인 구현부분까지 점진적으로 서술해가면서 구현해나간다. 이는 ProgrammingByIntention 과 그 맥락이 비슷하다고 할 수 있다.
- SwitchAndCaseAsBadSmell . . . . 2 matches
그리고, 사고의 도구들을 적극적으로 활용하기 바랍니다. 스테이트 다이어그램이나, 심지어는 x,y 좌표계를 사용하는 것, 혹은 서브루틴을 통해 문제를 소문제(subproblem)로 나누는 것도 아주 훌륭한 사고의 도구가 됩니다 -- 문제의 복잡도를 낮춰주기 때문이죠.
- SystemPages . . . . 2 matches
* RecentChanges - 최근에 바뀐 내용들.
=== ZeroPage Site 이용통계 ===
- TCP/IP_IllustratedVol1 . . . . 2 matches
*이 책은 스티븐스 박사의 名著 중의 하나로서, 내가 network 에 관한 다른 책을 달리 읽어본 것은 아니지만, 전반적인 네트워크에 관한 이론을 설명하면서도 구체적인 설명이 필요할때는 거침없이 베어버리는(이런 표현을 용서해 주기 바란다.) 그런 책이다.
* 공부해온 내용을 토의하면서 좀더 깊게 이해한다.
- TddRecursiveDescentParsing . . . . 2 matches
''먼저 "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. --김창준''
대강 다음과 같은 식으로 접근했고요. 테스트코드 2-3줄쓰고 파서 메인코드 작성하고 하는 식으로 접근했습니다. (["Refactoring"] 을 하다보면 FactoryMethodPattern 과 CompositePattern 이 적용될 수 있을 것 같은데, 아직은 일단.)
- Technorati . . . . 2 matches
RSS와 블로그의 폭발적인 사용에 힘입어 급속성장하고 있는 기업중에 하나. 기존 포탈의 top-down 방식의 정보 제공이 아니라 개별의 요소들을 종합해서 정보를 만들어내는 bottom-up 방식으로 가공된 정보를 제공하는 사이트.
영국 테러와 시기를 같이해 이용이 급증했다.
- TheJavaMan/숫자야구 . . . . 2 matches
1~9까지 겹치지 않는 숫자를 골라서 사용자가 맞추기
|| 사용자 입력 받기 - 겹치지 않는 숫자 ||. ||. || 끝냄 ||
- TheKnightsOfTheRoundTable/하기웅 . . . . 2 matches
헤론의 공식을 이용해 세변으로 넓이는 구하면
헤론의 공식을 이용해서 구한 넓이 = (내심원의 반지름 x 세변의 합)/2 로 구할 수 있다.
- TheOthers . . . . 2 matches
* GUI와 Access DB를 이용한 Weekly Report Manager
* Weekly Report Manager? 주로 회사 같은 데서 많이 쓰는 금주 했던 일에 대한 결산 레포트이다. 어느 일을 몇시부터 몇시까지 했으며, 그 일의 종류는 무엇이며, 주별로 통계를 내어, 어느 프로젝트에 몇시간을 투자했고 자기개발에 몇시간을 투자했는지 등등을 적어 회계용도로 쓰이기도 한다.
- TowerOfCubes . . . . 2 matches
여러 테스트 케이스가 입력될 수 있다. 각 테스트 케이스의 첫번째 줄에는 주어진 정육면체의 개수를 나타내는 정수 N(1≤N≤500)이 입력된다. 그 밑으로 N줄에 걸쳐 각 정육면체를 설명하는 내용이 입력된다. 각 정육면체를 설명하는 부분에서는 각 면의 색이 입력되는데, 각각 앞, 뒤, 왼쪽, 오른쪽, 위, 아래의 색을 나타내는 색이 순서대로 입력된다. 편의상 색은 1에서 100까지의 정수로 표현하자. 정육면체는 무게가 증가하는 순서대로 입력된다고 가정해도 좋다. 즉 첫번째 정육면체가 가장 가볍고 N번째 정육면체가 가장 무겁다고 가정할 수 있다.
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- UniversalsAndParticulars . . . . 2 matches
WardCunningham은 이런 말을 했다. 작지만 유용한 프로그램을 매일 만들어봐라. 복잡하고 큰 걸 만들다 보면 중요한 아이디어가 감추어져 버릴 수 있다.
자바 스윙에서 어떤 API를 통해 어떻게 그림을 그리는지를 가르치기 보다, Event Driven Programming을 가르치되, 스윙이라는 맥락을 방편으로 이용해 가르친다. 해당 프레임웍의 API가 복잡한 경우, 학습자들은 오히려 그 API를 외우고 공부하느라 더 중요한 것을 잊을 수 있다. 따라서 이런 경우 가르치는 사람이 미리 좀 더 추상적인 차원의 레이어를 만들어(이를 교육학에선 스캐폴딩이라 한다) 제공할 수 있다.
- UpdateWindow . . . . 2 matches
윈도우의 GDI를 이용하여 하노이의 탑을 작성하고 있었다.
일반적으로 하노이의 탑은 재귀함수 알고리즘이 가장 쉽기 때문에, 재귀함수를 사용하여 짜고 있었다.
- UploadFile . . . . 2 matches
'UploadFile'페이지 이외의 특정한 페이지에서 {{{[[UploadFile]]}}}을 사용하면, 그 페이지 이름을 하위 디렉토리로 하는 새로운 UploadFile 디렉토리가 만들어지고 그 밑으로 파일이 업로드 된다. (1단계 하위 디렉토리만 지원된다)
이렇게 NoSmok:InterWiki 를 사용합니다.
- UploadedFiles . . . . 2 matches
== 사용법 ==
모니위키는 업로드된 파일의 검색(이름 및 내용)을 지원하지 않습니다.
- Velocity . . . . 2 matches
Java 의 TemplateLibrary. FreeMarker 와 함께 현업에서 자바 웹 프로그래밍시에 많이 이용.
JakartaStruts - VelocityTools 조합으로 많이 이용됨.
- VendingMachine/세연 . . . . 2 matches
* 코드를 읽기 편한가. - 외부로 보이는 public 메소드의 이름에 대해 'how' 가 아닌 'what' 이 표현되어야 할겁니다. 클래스는 보통 '이용되어지는 모습' 으로 이용되므로, 어떤 알고리즘을 쓰느냐가 메소드로 표현되는게 아니라 '무엇을 할것인가' 가 표현되어야 겠죠.
- VendingMachine/세연/1002 . . . . 2 matches
다음과 같은 2개의 원칙만 적용해서 수정해봤습니다.
여기에 2번을 다시 적용해주면
- VimSettingForPython . . . . 2 matches
Python extension 이 설치된 상태에서 사용 가능하다.
BRM 의 리팩토링 기능을 이용할때는 리팩토링전 해당 화일을 BRM에 Import 해주어야 한다.
- VisualSourceSafe . . . . 2 matches
* ["CVS"] 와 달리 하나의 프로젝트를 특정인이 점유하고 있으면, 해당 프로젝트 소스 자체에 접근을 금지한다. VS 계열 툴로 집에서 혼자 작업시에 사용하기는 편하다. VS계열의 툴과 잘 결합되어 있다. 아직 VS 6.0 만 쓰는 관계로 7.0은 잘 모름--["상민"]
* 7.0에는 VSS 6.0c가 들었음... VSS 6.0과 사용법 UI 모두 똑같음.. --["상규"]
- VonNeumannAirport/Leonardong . . . . 2 matches
현재 요구사항에 맞추더라도 행렬에 해당하는 기능을 정리하고, 트래픽이나 거리 계산에는 행렬을 이용하는 식이 되어야 할 것이다. 지금처럼 상속받을 까닭이 없다.
행렬 곱셈 연산을 정의하면 이를 이용하기 위해서는 트래픽이나 거리 행렬 중 어느 한 쪽은 전치행렬이 되어야 한다. 그러려면 전치 행렬 연산도 있어야겠다.
- WebLogicSetup . . . . 2 matches
* WEB_INF 디렉토리 내의 web.xml을 수정해주거나, 브라우저를 통해 weblogic server consol을 이용해서 수정할 수 있다.
위에서 보는것처럼, <servlet/> 과 <servlet-mapping/>에 대한 설정이 필요하다. <servlet/>에서 설정하는 내용은 alias 된 서블릿 이름과 실제 서블릿을 매핑시키는 것이고, <servlet-mapping/>에서 설정하는것은 uri 패턴과 alias된 서블릿 이름을 매핑 시키는 역할이다. 도식화 시켜보면 다음과 같다.
- WebMapBrowser . . . . 2 matches
* 여기에 또한 집합 지성을 활용할 수도 있다. 각 노드(웹 페이지) 들을 거쳐간 사용자들이 어떤 노드로 이동하는지 통계도 나오게 하여서 자신과 비슷한 관심사 노드(웹)을 방문한 사람이 어떠한 사이트로 이동하는지를 볼 수 있게 된다.
- XMLStudy_2002/XSL . . . . 2 matches
XSL의 사용법과 필요성과 역할을 배움
<!-- 디스플레이 방법을 HTML을 이용하여 기술한다. -->
- XperDotOrg . . . . 2 matches
국내 ExtremeProgramming 사용자(?) 모임.
인터위키로는 '''{{{Xper:}}}''' 를 이용합니다.
- Z&D토론/History . . . . 2 matches
참고로 제가 생각하는 데블스가 제로페이지에서 떨어져 나온 이유는 물론 제가 없을때 데블스가 제로페이지에서 분리가 되었지만..일종의 제로페이지에 대한 무관심이라고 생각합니다. 데블스 사람들이 제로페이지에 무관심 할수 밖에 없었던 이유는 데블스 자체로도 만족을 했기 때문일 거구요.. 그러한 것은 데블스가 제로페이지에서 떨어져 나올 즈음 상경이가 써놓은 글에서 보면 알수 있습니다. 글의 내용은 폴리곤 사람들은 제로페이지에 많은 기여를 하는 반면 데블스는 아무도 제로페이지에 신경을 쓰지 않는다라는 내용이었습니다. 필요 없으니 당연히 떨어져 나가겠지요. 물론 게다가 제로페이지에 무관심한 데블스에 불만을 가지고 있는 폴리곤이 있으니.. 불보듯 뻔한 일이 아닐까 생각합니다. 어찌되었든 저역시 처음 데블스가 제로페이지에서 떨어져 나올때 불안 했던 것처럼 다시 데블스와 제로페이지를 합치자는 말이 나오는 지금 상황 역시 불안하기는 마찬가지입니다. 저는 이 일이 어찌되든 후배들이 모두 좋은 방향으로 되길 바랄 뿐이고 그들이 정하는대로 따를 것입니다. - 최태호
- Z&D토론/통합반대의견 . . . . 2 matches
다음 글은 데블스 게시판에서 옮겨온 내용입니다.
여기서 반대한들 무슨 소용이 있었겠으며,
- ZPBoard . . . . 2 matches
APM을 이용한 게시판 '''ZPBoard''' 제작 프로젝트.
* ["ZPBoard/AuthenticationBySession"] - Session 을 이용한 회원 인증
- ZPBoard/APM/Install . . . . 2 matches
* 다음과 같은 내용의 test.php 라는 파일을 만들어 웹 문서 루트 디렉토리 안에 넣는다.
* 다음과 같은 내용의 test.php 라는 파일을 만들어 웹 문서 루트 디렉토리 안에 넣는다.
- ZPBoard/HTMLStudy . . . . 2 matches
HTML 스터디 내용 정리 및 숙제.
* MySQL 과 PHP 를 사용해서 만들기
- ZPHomePage/계획 . . . . 2 matches
* 캐릭터, 로고, 배너 제작 => 후에 뱃지 제작에도 이용
* RSS로 게시판내용 출력
- ZPHomePage/레이아웃 . . . . 2 matches
* 집에가닥 글을 잘못썼다는 생각을 했는데 벌써 답글을 달았네요.. '''하면 안된다'''식으로 이해될 수가 있는것 같아 아차했습니다. 제 말의 요지는... 구현한 기능을 사람들이 얼마나 사용할까.. 였습니다. - [임인택]
* 성만-디자인2 로 확실히 정해진것인가?? 일단 보충할 내용 있으면 미리미리 적어주세요 --[곽세환]
- ZeroPage/임원/회의/2011-02-13 . . . . 2 matches
* 학술활동을 진행하는데 필요한 비용을 지원받을 수 있다.
* 비용이나 장비 등을 ZeroPage에서 지원받을 수 있어야 한다.
- ZeroPage/회비 . . . . 2 matches
== 사용된 회비 ==
== 사용된 회비 ==
- ZeroPageServer/IRC . . . . 2 matches
* 권한: [오징오징어] 봇에 등록된 사용자에 한해 아래 해당하는 권한을 설정합니다.
* ZeroPage 공지 및 IRC 사용법 안내
- ZeroPageServer/UpdateUpgrade . . . . 2 matches
ZeroPageServer 는 데비안 (SeeAlso [http://debianusers.org/ 한국데비안 사용자 모임] , 위키의 DebianKr:대문 )을 사용하고 있다.
- ZeroPage_200_OK/소스 . . . . 2 matches
aaa<div class="alert">1이 내용이 올라옵니다.</div><div class="alert">2가 내용이 올라옵니다.</div>bbb
- ZeroPage가입관련 . . . . 2 matches
* 재학생들(편입,전과,복학생 포함) 가입시 위키 사용법을 몰라서, 그리고 복잡해 보여서 망설이는 분들이 있는것 같아서 여기로 가보라고 권합니다.["ZeroPagers"]
* ["ZeroPagers"]에서 개인페이지 구경하실수 있습니다. 재학생분들중 가입을 원하시는 분들은 자신의 페이지를 만드십시오. 사용법을 정 모르겠으면 아무페이지에서나 밑에 있는 하단의 {{{~cpp EditText}}}를 누르시기 바랍니다.
- ZeroPage성년식/회의 . . . . 2 matches
* 레크리에이션 내용을 ZeroPage와 관련된 것으로 하자.
* 출력을 몇개는(추첨용? 테두리만 미리 프린트?) 해둬야 할까요? 캡실에 색지가 몇장은 있었던거로 기억해요.
- Zeropage/Staff/회의_2006_01_19 . . . . 2 matches
* 사물함은 열쇠를 이용해서 관리한다.
* 도서관과 같이 2주의 대여기간을 주며, 1일당 100원의 연체료를 물린다. (연체료는 회비로 사용한다.)
- [Lovely]boy^_^/Book . . . . 2 matches
* 체계적인 유닉스 사용법 - 떡's - 종필이형 세미나할때 빌렸었는데 여전히 안봄
* 그외 만화책 다수 - 만화책 빼고 다 먼지..--; 만화책도 옛날부터 샀단거 다 모았다면 지금쯤 300권은 되지 않았을까..--; 요즘엔 와레즈를 주로 애용함
- [Lovely]boy^_^/Diary/2-2-10 . . . . 2 matches
* 드뎌! EffectiveSTL을 빌렸다. ㅠ.ㅠ 곽용재씨가 생각보다 젊은 사람이란걸 알게 되었다.
* 드뎌! EffectiveSTL을 빌렸다. ㅠ.ㅠ 곽용재씨가 생각보다 젊은 사람이란걸 알게 되었다.
- [Lovely]boy^_^/Diary/2-2-9 . . . . 2 matches
* 초보자를 위한 UML책 빌렸다. 역자가 곽용재씨군.(이 사람 번역 짱이던데.)
* TheMythicalManMonth 5,6장 읽었다. 5장은 대충 감은 오는데.. 정확히는 무슨 내용인지 알수가 없다.--; 클났군.. 6장은 피곤해서 조금 읽다 말았다. 낼 일찍 일어나서 읽어야겠다.
- [Lovely]boy^_^/EnglishGrammer . . . . 2 matches
''영문법을 공부하려면 한국의 웬만한 교재보다는 NoSmok:GrammarInUse 가 낫습니다. 보통 Murphy시리즈라고 부르죠 -- 레벨별로 책이 따로 나와서 "시리즈"라고 합니다. 이와 함께 Azar시리즈도 많이 봅니다. 외국에 어학연수란 걸 나가면 90% 이상 이 교재로 공부합니다(고로 어학연수가서 교실에서 하는 공부는 별거 없습니다). 문법 공부를 할 때에는 레퍼런스북이 있으면 좋은데, PEU(''Practical English Usage'', Michael Swan)를 적극 추천합니다. 영어실력에 상관없이 두고 두고 유용하게 사용할 것입니다. see also NoSmok:영어학습법 --JuNe''
- [Lovely]boy^_^/영작교정 . . . . 2 matches
* 크윽..--; 모음 앞에는 an이란걸 망각하다니.. battle이 명사니까 형용사형이 와야했는데..--; 왜 그랬지--;
* 역시.. 어순과, 전치사 사용이 문제가 되었다.
- [NewSSack]Template$ . . . . 2 matches
= 수업 내용 =
== 내용 ==
- erunc0/Mobile . . . . 2 matches
* 속도차이는 별로 없지만, dc를 이용해 뿌리는 법은 엄연히 느린법..
* gx library 에서 제공해주는 몇안되는 함수를 이용하여. pda 화면에 대한 pointer를 얻어와 삽질해서 뿌린다. dx 할때랑 똑같음.
- erunc0/XP . . . . 2 matches
small talk 를 이용한 간단한 예제.
저는 지금 XPI를 읽고 있습니다. XPI에서 제시하는 극한을 실험해보기 위해 지켜야만 하는 규칙(?)들을 찾는다고 해야 할까요 ? 예를 든다면 삶의 순환 법칙을 어기지 않기 위해 유저스토리는 고객이 작성해야만 한다(도움은 주되 개발자의 욕구를 억제해야만 하는)는 것이겠죠 ? 이것은 XP 프로그래머가 반드시 지켜야만 하는 것이겠죠 ? 이것은 경험을 통해 얻는 극한으로 몰고가는 방법(요구사항을 요구하는 자에게 얻어내는 것이 가장 좋다라는 것을 최대한 활용하는 방법?)을 일종의 규칙처럼 이야기한 것 같습니다. 그러니까 실질적으로 XP팀이 지켜야 하는 것들을 설명했기 때문에 추상적이지 않다라고 해야할까요? ^^; 경험적인 것을 얻고 싶다면 김창준님이 기고하시는 마소(2002.9)를 보는 것도 좋겠네요.--["Benghun"]
- fnwinter . . . . 2 matches
사운드 프로그래밍(FFT/Eq/Sound Effect/BASS/FMOD 사용하기/공짜로 MP3를 다운받기)
Python/Win32/델파이/VB/MFC/기타등등에 쓰일 범용 Skin Library
- iText . . . . 2 matches
[Java]를 이용하여 PDF 파일을 제작을 도와주는 라이브러리. 라이선스는 [http://www.mozilla.org/MPL/MPL-1.1.html MPL]과 [http://www.gnu.org/copyleft/lesser.html LGPL].
RefactorMe [페이지이름]이 부적절하다고 생각하시는 분은 [페이지이름바꾸기]해 주세요. 프로젝트(라이브러리) 이름을 그대로 사용했습니다.
- iruril . . . . 2 matches
* [5인용C++스터디]
* 손용준 : [코코아]
- joosama . . . . 2 matches
그러나 그렇지가 않다. 서울대학교의 교수로 재직하시다가 독도학회 회장으로 있는 신용하교수는,
위키를 참 역동적으로 사용하네~ -[상협]
- lostship/MinGW . . . . 2 matches
* STLport iostreams 을 사용하려면 다음 스텝을 진행한다.
* gcc 3.2 버전에서 c++ 헤더 파일의 위치가 바뀐점이 STLport-4.5.3 에 아직 적용이 안되어 있다.
- neocoin/CodeScrap . . . . 2 matches
["상민"] 이가 프로그래밍중 사용하는 이디엄, 신기한 현상들을 모아놓는 페이지
// 내부에서 사용하면 error
- neocoin/Education . . . . 2 matches
중요한 것은 책에서 본 내용을 직접 실험해보고 거기서 피드백을 얻어서 "추측"(NoSmok:최한기 )을 잘해 다음 번에 적용하는 것이다. 따라서 가르칠 기회를 많이, 자주 갖는 것이 필요불가결하다. --JuNe
- neocoin/SnakeBite . . . . 2 matches
''bidirectional association은 최소화하는 것이 좋음. 꼭 필요하다면 back-pointer를 사용해야 함. 가능하면 MediatorPattern의 사용을 고려해보길. --JuNe''
- pragma . . . . 2 matches
하지만, 이러한 경고는 Visual C++ 6.0 에서만 유효한것이고, VS.NET 부터 추가 세팅이 필요 없다. VC++ 6.0 에서는 map은 물론 STLPort 나, [Boost] 사용하는 것을 권장하지 않는다. 더 이상 MS 측의 컴파일러 기술 지원이 없으므로, VS.NET 이상 버전을 사용해야 한다.
- radiohead4us/Book . . . . 2 matches
노르웨이의 좌파정치와, 국제 정세, 한국의 현실등을 잘 보여주고 있는 책이다. 책을 읽게되면 노르웨이에 대한 막연한 환상이 떠오른다. 모두가 대중교통수단을 타고 출퇴근을 하고, 자가용은 아주 가끔 이용한다. 그들은 어떠한 행동을 하기 전에 ''나보다 남을 먼저'' 를 생각하는것 같다. (참 부러운 대목이다). 지하철을 탈 때에도 일일이 검표를 하지 않음에도 불구하고, 무임승차를 하는 사람은 거의 없다고 한다. 직업에 대한 귀천도 없으며, 버스기사나 대학교수나 사회에서는 같은 대우를 받는다. 그리고 또.. 환경오염이 거의 없다고 한다. 흑흑 부러워.
- sibichi . . . . 2 matches
* 일단 무엇보다도 wiki에 적응되어야 본격적으로 활용이 가능할듯. 직접 써보면서 뭐가뭔지 체득을 해야..그래서 일단은 기본 제시된 템플릿사용
- stuck!! . . . . 2 matches
[http://165.194.17.15/pub/upload/CampusC.zip CampusC] // 오래된 내용이라 구질구질 하기도.
숙제는 실제로 검사된 내용이 없는듯... 담임의 불 성실함이 원인...;;
- wxPython . . . . 2 matches
== wxPython 을 이용한 GUI IDE ==
* 아직 GUI Designer -> Code Generation 부분이 완벽하지는 않다. 다른 에디터와 같이 이용하는 편이 좋을 것이다.
- zennith/SICP . . . . 2 matches
[노스모크모인모인] 에서 절대 주소로 접근할려면 [/SICP] 로 하면 된다. 디렉토리 같지 ^^;; 현재 혼용이니, 네가 일아서 사용해라 --["neocoin"]
- zeropageBlog . . . . 2 matches
* 자세한 사용법은 [http://www.tattertools.com 태터툴즈 홈페이지]를 이용해 주십시오.
- ㄷㄷㄷ . . . . 2 matches
두개가 매우 비슷한 기능을 갖기 때문에 같은 내용의 프로그램을
두 개의 서로 다른 함수를 사용해서 하도록 했지~
- 가독성 . . . . 2 matches
간단하게 C언어에 대한 문제와 답을 올리는 페이지에서 다음과 같은 내용이 있었다.
이 글을 쓰고 저 문제에 대한 이의 제기가 들어올줄 예상은 하고 있었습니다. 그에 따른 제 변명은 이렇습니다. 여러 언어의 특성상 언어마다의 코딩 스타일은 엄연히 존재합니다. C언어의 특성에 따라 하나의 함수는 한 화면에 모두 출력되게 하는 것이 중요합니다. (물론 요즘과 같은 큰 터미널에서는 문제가 되지 않겠습니다만,..) 때문에 코드의 가독성을 높히며 많은 코드들을 짜는 것은 불가분의 관계라고도 할 수 있겠죠.(함수를 붙여쓰면 코드들은 많이 들어가나 가독성이 매우 떨어지죠.) 하지만 C언어에서 저것과 같은 방식의 코드는 코드의 라인만 늘리는 결과를 초래하게 됩니다. 예를 들어 24라인만 쓸 수 있는데 for문과 while문의 갯수가 4개라고 하면 4줄을 낭비하는 꼴이 됩니다. 즉, for문과 while문의 가독성을 위해 전체적인 함수 가독성을 떨어뜨리게 되는 것이죠. (또한 for문과 while문의 {를 아래로 내리는 것과 위로 올리는 것의 차이점은 얼마되지 않습니다.) 제가 강조한 것은 이 전체적인 모듈의 가독성을 뜻한 것입니다. (딴지를 걸자면 80x24 화면에 저러한 코딩 방식을 사용하는 것은 죽음을 자초하는 길일것입니다. 토발즈 또한 강조한 것이기도 하구요. :) ) - 이영호
- 간단한C언어문제 . . . . 2 matches
안옳다. 와일문의 조건문에는 콤마가 허용돼지 않는거같다. -[정수민]
가독성에 대한 내용을 따로 뽑아서 [가독성] 페이지에 뽑아두었습니다. 이에 대한 의견 교환은 이제 새로 만들어진 페이지에서 했으면 합니다 - [임인택]
- 강소현 . . . . 2 matches
주위의 잡음에 지나치게 신경을 써서 하루라도 마음 편할 날이 없는 타입입니다. 이른바 과민성 성격이라 불리는 부류의 사람으로 스스로에게 도저히 자신을 갖지 못합니다. 항상 소극적이고 지나치게 자상한데다 매사의 대처가 엉성해 주위사람들로부터는 점점 이용만 당하고 결국 손에 남는 것은 찌꺼기뿐입니다. '지’, '정’, '의’의 불균형이 심해 사회의 작은 풍파에도 크게 흔들리고 덧없는 세상의 뒷길을 비틀대며 걸어갈 수밖에 없습니다. 이런 타입에게 가장 요구되는 것은 모든 일을 나누어 생각하는 습관입니다. 그리고 다른 한 가지는 눈을 딱 감고 자기주장을 관철시켜버리는 오기입니다. 필요할 때는 정색도 할줄 알아야 앞으로 더 큰 시야를 얻을 수 있습니다.
* 원래 내용 자체가 신랄한 거였군요 ㅎㅎ - [강소현]
- 강희경/그림판 . . . . 2 matches
이유나 목적이 어떻든 [강희경]이 그림판 또는 포토샵을 이용해 제작한 이미지.
게임제작 프로젝트 [걸스패닉]용 이미지.
- 강희경/메모장 . . . . 2 matches
가위바위보 게임에 사용해도 될 듯.
다양성: 제로페이지의 다양함과 풍부함을 나타내기 위해 무지개의 7색을 사용.
- 겨울과프로젝트 . . . . 2 matches
참가자 : [이승한], [이재환], 임영동 [Yggdrasil], [강희경], [이용재], [윤성만]
생각나는대로 써놓았습니다. 프로젝트 명과 내용 수정해 주세요~ >__<ㅋ - [이승한]
- 겨울방학프로젝트/2005 . . . . 2 matches
|| [DesignPatternStudy2005] || 디자인패턴 잠시 중단했던것을 이어서 계속.. || 상협 선호 재선 용안 준수 ||
|| [검색에이전시_temp] || 파이선으로 맞춤형 검색 || 용안 상협 준수 ||
- 경시대회준비반/BigInteger . . . . 2 matches
C++ 용 BigInteger 클래스로 거의 모든 연산을 지원한다. UVA 사이트의 구식(?) 컴파일러에도 문제없이 통과할 뿐 아니라, 성능또한 훌륭하다. 고정도 정수 연산을 하는 문제의 경우, 고정도 연산을 하는 라이브러리를 본인이 직접 짜거나, 이 클래스를 이용하면 된다. 몇 일동안 삽질한 결과 후자가 낫다는 판단이 선다. 되게 잘 짜여진 코드다. 시간 내서 분석해봐야 겠다.
- 고슴도치의 사진 마을 . . . . 2 matches
|| [몬테카를로 법을 이용한 pi 구하기 프로그램] ||
|| [SVN 사용 방법] ||
- 고한종/on-off를조절할수있는코드 . . . . 2 matches
오늘 장용운이에게 비효율적이라는 말을 들었습니다. 그래서 용운이가 이렇게 고쳐주더라구요.
- 고한종/팩토리얼 . . . . 2 matches
* 위키를 열심히 사용하고 있네요~ 바람직합니다 ㅋㅋㅋ 그런데 ZeroWiki에서는 위키 페이지를 생성할때 상위페이지명/하위페이지명 이런 식으로 카테고리처럼 페이지 이름을 만든답니다. 예를 들어 이 페이지라면 고한종/팩토리얼 이렇게 써주는 것이 적절하겠죠. 그리고 각각의 페이지가 고립된 섬이 아니라 다른 페이지들과 연결될 수 있도록 상위페이지 혹은 연관된 다른 페이지를 링크해주면 더더욱 좋답니다. :) 예를들어 이 페이지에는 [고한종] 페이지와 [새싹교실/2011/A+]을 링크할 수 있겠네요. - [김수경]
* 네. 제가 알기론 지우는 수밖에 없어요ㅜㅜ 다만 지우는 권한이 아무에게나 있는 것은 아니라서 지울 페이지는 DeleteThisPage라고 쓰면 관리자가 내용을 확인한 뒤 지웁니다. - [김수경]
- 공학적마인드 . . . . 2 matches
이들을 보았을때 [공학적마인드]란 '직관보다, 측정치나 통계 등 데이터를 이용해서 미래를 예측하려는 노력, 의사 결정 방법' 과 비슷한 의미가 아닐까요? 워낙 직관에 의존한 의사 결정이 팽배한 시점에서 자주 들었습니다. --NeoCoin
안쪽으로는 논리적으로 각 변수들을 연결시키며 내적정합성을 유지하고, 현실에서 실제 관찰한 측정치값들을 근거로 '외적정합성'을 최대한 유지하며 미래를 예측하는, 그리고 여기에 '공학', 즉 'Trade-Off' 를 적용하여 input 에 대한 노력 대비 output 을 최대로 이끌어내는 것이 [공학적마인드] 가 아닐까 생각해봅니다.
- 구글을지탱하는기술 . . . . 2 matches
* [Sawzall] : 분산처리용 프로그래밍 언어. 스크립트 언어
구글의 실시간 대용량 분산 데이터 분석 및 처리 프레임워크 공부하기
- 권영기 . . . . 2 matches
* [정모/2014.8.27] - OMS : 아두이노를 이용한 화재정보 상황 수집
* 사실 개인 위키 페이지가 있었다는 사실을 까먹고 있었습니다. 이전에는 그래도 자주 보고 업데이트도 했었는데. 성적은 잘 받았고, 전공과 관련 없는 책도 많이 읽었네요. 작년에 몇 권 정도 책을 빌렸는지 보니까 전공 비전공 합쳐서 65권 빌렸네요. 그래도 39권 정도는 다 읽거나 어느정도 읽고 도움도 많이 받았어요. 읽은 것에 대한 내용 정리가 좀 더 되있었으면 좋았을텐데. 그래도 나름 나쁘지 않네요. 10권 정도는 빌려놓고 안봤고, 16권은 빌린책을 다시 빌려서(...) 그리고 영어 점수랑 한자 급수는 2015년으로 넘어갔습니다. - [권영기] 2015/01/05
- 권영기/채팅프로그램 . . . . 2 matches
이제 멀티채팅을 완성했는데, 희성이는 계정이 적용된 채팅을 만들었군요.. 멘붕
하지만 join이 없으면 자원이 해제가 되지 않으니 메모리 누수가 생길 겁니다. 그래서 저는 join을 사용하고 싶은데 어떻게 해야할 지를 모르겠네요.
- 김재현 . . . . 2 matches
while (used[n]); // 이미 사용 ㅤ됐으면 다시 난수 발생
used[n]=1; // 사용된 숫자 표시
- 김준호 . . . . 2 matches
# 3월 17일에는 Microsoft Visual Studio 2008 프로그램을 이용하여 기초적인 c언어를 배웠습니다.
근데 printf가 글쓰는것에 이용하는것과 \n이 줄띄우는것은 알았습니다. 그런데 %d %e %c는 잘 이해가 안됩니다. ㅠㅠ
- 김희성/ShortCoding/최대공약수 . . . . 2 matches
'''컴파일러''' - gcc 컴파일러는 사용된 function을 확인하여 필요한 header file을 자동으로 include 해줍니다. 또한 gcc 컴파일러는 타입이 선언되지 않은 변수는 int형으로 처리합니다. 이로인해서 main의 본래 형식은 int main(int,char**)이지만 변수형을 선언하지 않으면 두번째 인자도 int형으로 처리됩니다.
'''알고리즘''' - 유클리드호제법을 사용합니다.
- 나는이런곳을즐겨찾는다 . . . . 2 matches
즐겨 찾는 유용한 사이트를 적어봅시다.
|| http://www.giro.or.kr/ || 지로납부를 인터넷을 이용해 할 수 있음. 은행 가기 귀찮아 하는 사람에겐 쓸모 있음. ||.||
- 논문번역/2012년스터디 . . . . 2 matches
* 논문 선정 후, 해당 논문을 '번역'해오고, 모여서 제대로된 번역이었는지, 내용에 대한 이해는 제대로 되었는지 체크해봄.
* 내용에 대한 이해도 중요하지만 영어를 공부하겠다는 목적도 내포되어 있으므로 번역할 때 유의해야함.
- 달라이라마와도올의만남 . . . . 2 matches
* Author :도올 김용옥
=== 내용 ===
- 대순이 . . . . 2 matches
== 06 성우용 ==
== 06 서용욱 ==
- 덜덜덜/숙제제출페이지 . . . . 2 matches
위에 이름까지 같이 함께 묶어서 넣고 싶으면 .. 이름은 타입이 다르기때문에 구조체라는것을 써서 같이 묶어서 넣을수 있습니다. 구조체는 나중에 배울겁니다. ^^ 그리고 주석을 사용안하고 변수명으로 의미를 알수 있게 해줄수 있다면 그게 더 좋습니다. 변수명이 조금 길어지더라도 주석 없어도 이해가도록 짜면 좋습니다.(리펙토링에 나오는 얘기..) 예를 들면 국어 성적 변수명은 KoreaScore 혹은 ScoreOfKorea 이런식으로 쓸수 있습니다. - [상협]
이번에 구조체도 배웠으니 두번째 숙제를 구조체를 이용하여 구현해보세요. 간단함. -[강희경]
- 데블스캠프2003/첫째날 . . . . 2 matches
* 위키 사용법
* 그 밖의 참가자 숙지 내용들
- 데블스캠프2004 . . . . 2 matches
* 벌써 2004년도 DevilsCamp 를 시작할 때가 되었군요..^^; 하하.. 미안한 느낌만 드는건 왜일까요;; 뭐.. 그건 그렇다 치고 허접하지만 의견하나 내도 될련지... DevilsCamp는 참여하는 그 당시도 중요하지만 끝나고 나중에 "아. 그 때는 이렇게 했었지."라는 생각을 하면서 전의 내용을 확인하는 것도 중요하다고 생각합니다. 그렇기 위해서 필요한게 다시 한번 돌아보는 일입니다. 그 주제가 끝났다고 그냥 지나가는 것이 아니라는 거죠. 뭔가 부족한 것은 다시 한번 확인해서 고쳐도 보고 다르게도 만들어보고 또 다른 사람들과 비교도 하는 과정이 그대로 위키에 체계적으로 정리가 될 때 나중에 더 큰 재산이 된다는 것입니다.^^; 이상 허접한 의견이었습니다. 많은 테클 부탁드립니다.(답변은 못올림;;) -[상욱]
* 현재 가장 많이 사용되는 페이지 위주로 [문서구조조정] 했습니다. 더 좋은 의견 있으면 수정하세요. --NeoCoin
- 데블스캠프2005/금요일후기 . . . . 2 matches
김민경 : 마지막날, 처음 테트리스 만들기, 그리고... 신기한 채팅창만들기! ... 테트리스는 뭘해야할지 너무 막막했어요~ 채팅창만드는것도 마찬가지? 였지만 흥미로운 내용+ㅁ+ 내일 LT가 매우 걱정되요.ㅠ 이뿌듯함
[이동현] : 게임을 이용하여 프로그래밍에 재미를 가지게 한점이 좋았다.
- 데블스캠프2006/준비/목요일 . . . . 2 matches
* 목표 : C언어와 Win32API를 이용, 기초적인 윈도우 프로그래밍을 배워본다.
* 용재군은 어떤거 할겨? -[창섭]
- 데블스캠프2006/참가자 . . . . 2 matches
|| 06 || [성우용] || || || 모두다(일부 불참할수도...) || . ||
이번 프로젝트 진행 시작과 함께 SVN, SSH 계정을 발급할 예정입니다. 이때 사용알 계정 ID를 입력해주세요. - [eternalbleu]
- 데블스캠프2006/화요일/pointer/문제3/정승희 . . . . 2 matches
//나중에 혹시 a를 사용하면 확실하게 a를 사용해서 에러 났다고 알려줄수 있다.
- 데블스캠프2008 . . . . 2 matches
|| 12시 ~ 3시 || [김정현] || [wiki:데블스캠프2008/등자사용법 등자 사용법] || [김남훈] || 텍스트계산기 by Python|| [나휘동] || 파이프라인 || [문원명] || 자바 ||[이장길]
- 데블스캠프2009/목요일 . . . . 2 matches
|| 이름 || 주제 || 내용 || 비고 ||
|| 06 || 성우용, 송지원 ||
- 데블스캠프2009/월요일/Scratch . . . . 2 matches
* 운영체제에 맞게 Mac용, Windows용 중 선택하시면 됩니다.
- 데블스캠프2009/총화 . . . . 2 matches
* 금요일 참여하셨던 분들은 자신이 얘기했던 내용을 다시 아래에 써주시면 됩니다.
* 이름 - 내용
- 데블스캠프2009/화요일 . . . . 2 matches
|| 이름 || 주제 || 내용 || 비고 ||
|| 06 || 김준석, 성우용, 송지원, 송지훈 ||
- 데블스캠프2010/다섯째날/ObjectCraft/미션2/김상호 . . . . 2 matches
= 레퍼런스 미 사용 =
= 레퍼런스 사용 =
- 데블스캠프2010/다섯째날/ObjectCraft/미션3/김상호 . . . . 2 matches
= class 사용 전 =
= class 사용 후 =
- 데블스캠프2011/다섯째날/HowToWriteCodeWell/강소현,구자경 . . . . 2 matches
== 활용 시도했으나 ==
final Elevator el = new Elevator(20, -10, 2);//최상층, 최하층, 수용인원
- 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/송지원 . . . . 2 matches
* 프로그램을 재실행하면 또 오래 기다려야 해서 파일 입출력을 적극 활용
* 이 프로그램은 Bayes Classifier 값을 구하는것 까지이고, 시간 관계상 값의 참/거짓 빈도는 엑셀을 이용해서 계산했습니다.
- 데블스캠프2011/둘째날/Scratch . . . . 2 matches
* 몬스터를 잡는 용입니다. 몬스터들이 가까이 다가왔을때 좌우 방향키를 이용하여 몬스러를 잡는 겁니다. 단. 너무 멀리 있을때 잡으려 한다면 게임오버입니다. 또 너무 가까이 와서 몬스터에게 맞아도 게임오버입니다. 타이밍을 잘 맞춰서 몬스터를 잡아주세요ㅎ
- 데블스캠프2011/준비 . . . . 2 matches
* 회의 내용
* 회의 내용
- 데블스캠프2011/첫째날/개발자는무엇으로사는가 . . . . 2 matches
* 이럴 때 Unit Test를 이용하는 겁니다. - [지원]
* 버그를 발견하고 수정하기까지 어떤 식의 발상을 했으며 잘 모르는 분야일 경우 어떻게 자료를 찾았고 그걸 어떤 방식으로 적용했는가.
- 데블스캠프2012/다섯째날/후기 . . . . 2 matches
* [권순의] - C++의 개념을 C에서 어떻게 적용하는지, 컴파일러가 어떻게 돌아가는지에 대해서 생각해 볼 수 있는 시간이었습니다. 재미지네요. 단계적으로 나아가는 방법이 재미있었습니다. 설명도 자세하게 해 주시고 유익한 시간이었습니다. 그러다 보니 왜 우리가 어떤 것을 사용했을 때 느리다던지 한 것에 대해서 보다 쉽게 이해할 수 있는 시간이 아니었나 합니다.
- 데블스캠프2012/셋째날/코드 . . . . 2 matches
* 웹서버에 실습파일을 만든다 -> 네이버 개발자센터 -> MapAPI를 사용해본다. -> N으로 시작하는 라이브러리 사용하면서 화냄 -> Mark위에 이벤트 출력까지 하고 끝.
- 데블스캠프2013/둘째날/후기 . . . . 2 matches
* 구현이 간단하여 쉽게 따라 할 수 있었음. 그러나 설명이 너무 빠름. 흥미로웠던건 홈페이지에 적용이 가능하다는 사실임. - [송정규]
* 비교적 간단하면서 가장 실용적인 실습이 많이 있던 수업이라 재밌었습니다! XD - [조영준]
- 도덕경 . . . . 2 matches
출처: 즉흥연기 내에 발췌되어 있는 "<<길과 얻음>>, 김용옥 옮김" 부분
ps. 유우머 응용버전)
- 디자인패턴 . . . . 2 matches
디자인 패턴을 적용함으로서 얻을 수 있는 장점으로는 '확장성'과 '유연성'을 들 수 있습니다. 그리고 초기 프로그램 설계시에 지침서가 되어주지요. OOP 의 개념을 익히고 나서 어떻게 OOP를 추구해나가야 할지 감을 못잡는 사람은 공부해보는 것만으로도 좋은 경험이 된다고 생각합니다.
그리고 한편으로는 Refactoring을 위한 방법이 됩니다. Refactoring은 OnceAndOnlyOnce를 추구합니다. 즉, 특정 코드가 중복이 되는 것을 가급적 배제합니다. 그러한 점에서 Refactoring을 위해 DesignPattern을 적용할 수 있습니다. 하지만, Refactoring 의 궁극적 목표가 DesignPattern 은 아닙니다.
- 로고캐릭터공모 . . . . 2 matches
제로페이지에서는 홈페이지 개편과 더불어 대외적인 홍보 활동 및 각종 행사에 사용할 공식적인 로고와 캐릭터를 공모하고 있습니다. 본 공모에 작품이 채택되신 분께는 작은 상금도 준비되어 있습니다. 여러분의 많은 참여 부탁드립니다.
== 공모내용 ==
- 마스코트이름토론 . . . . 2 matches
쩝.. 생각해 보니 여자인것도 같네염... 저게.. 제로미 만들려고 하다가 용도가 이렇게 바뀐 것이니.. ^^; --setsuna
그냥 제로미 시키죠. 그리고 moin글자만 빼서 대문용으로 하나좀.. --상민
- 만세삼창VS디아더스1차전 . . . . 2 matches
= 대화내용 =
바보 언어 에 있든 없든 먼상관이냐. 혹시 니 언 는 사용자 정의 타입이 없는거 아니냐 후진 것 같으니라고
- 문자반대출력/변형진 . . . . 2 matches
preg_split()는 문자열 처리 능력이 탁월한 언어인 Perl에서 사용하는 Perl 호환 정규 표현식(Regular Expressions)을 차용하여 문자열을 분리하여 배열에 담는 함수.
- 박범용 . . . . 2 matches
= Curse ware (04) 박범용 (뻠~) =
||이름 : 박범용(朴範鎔)||
- 변형진 . . . . 2 matches
[연습용 RDBMS 개발]
[대용량 웹 검색 엔진 for PHP]
- 보드카페 관리 프로그램/강석우 . . . . 2 matches
throw domain_error("그 테이블은 사용중 입니다.");
throw domain_error("그 게임은 사용중 입니다.");
- 복사생성자 . . . . 2 matches
1. stl 에서 class 복사시 많이 사용
3. 보통 operator= 재정의와 같이 사용
- 봄과프로젝트 . . . . 2 matches
학기초에 잘만 활용한다면 많은 시간이 나오는 봄을 이용하여 프로젝트를 진행해 보자.
- 비밀키/권정욱 . . . . 2 matches
=== string 비이용 ===
=== string 이용 ===
- 비행기게임/진행상황 . . . . 2 matches
* 7.8 ~ 7.9 : pygame 라이브러리 사용하니깐 만들기가 상당히 편한거 같다. 대충 비행기 움직이게 만들었다.
* ~ 8.6 : 적기 애니메이션 효과 함..(용이 날개를 힘차게 저으면서 날러 다님 -_-;;), 이젠 적기와, 적기 미사일을 늘리는 일을 해야 할듯..
- 빵페이지/마방진 . . . . 2 matches
- 아님 무대뽀(BruteForce)하게 [Backtracking]을 이용해도 될듯.. - [임인택]
* 쿠쿠 멋진놈 벌써 하다니...배열을 사용했군 - 승균
- 삼총사CppStudy/20030731 . . . . 2 matches
== 한 내용 ==
* 기본적인 클래스의 사용방법
- 상협/Diary/7월 . . . . 2 matches
|| POSA || blackboard pattern || 30% || - 내용은 읽었는데 정리를.. ㅡㅡ;; 어려워..||
|| POSA || blackboard 패턴 내용 간단히 정리 || ㅠㅜ 0%|| 무리.. ||
- 새싹교실/2011/Pixar . . . . 2 matches
1. 수년간 경험해보아 알겠지만 사실 들은 것은 기억에 잘 남지 않습니다. 교수님께서 분명 지난주에 가르쳐주신 내용이 이번주엔 생각이 나지 않죠! 그런데 어떤 것을 배웠는지 끝나고 한번씩 되짚어보면 그냥 듣기만 했던 것보다 더 기억에 잘 남는답니다.
* 위에 후기를 쓰는 이유가 새싹 교실을 더 잘 진행하고, 어떤 것을 배웠는지 돌아보기 위해서라고 써있습니다. 그런데 그냥 막연히 좋았어요. 재미있네요. 라고 쓰면 다음 새싹 교실에도 별로 도움이 안 되고, 배운 내용도 돌아볼 수 없답니다. 그러니 처음에는 조금 어색하더라도 FiveFs를 넣어 후기를 작성해주세요.
- 새싹교실/2011/Pixar/4월 . . . . 2 matches
오늘은 변수종류에대해서 배웠다 local,global,static등에 대해배웠고, 반복문을 사용하여달력도 만들어보았고, 함수에 대해서도 배웠다.
변수는 이렇게 많은 기능이 있는지는 몰랏다. 헷갈리긴 하지만 유용할거같다.
- 새싹교실/2011/學高/10회차 . . . . 2 matches
== 가르친 내용 ==
== 배운 내용 ==
- 새싹교실/2011/學高/7회차 . . . . 2 matches
=== 가르친 내용(fact) ===
=== 배운 내용(fact) ===
- 새싹교실/2011/學高/9회차 . . . . 2 matches
== 가르친 내용 ==
== 배운 내용 ==
- 새싹교실/2012/새싹교실강사교육 . . . . 2 matches
* 임용승
* 장용운
- 새싹교실/2012/새싹교실강사교육/4주차 . . . . 2 matches
이번 단원에서 배워 볼 내용은 크게 '파일' 이라고 할 수 있습니다.
1.1 프로그램의 실행 파일에는 크기의 제약이 있기 때문에 프로그램이 가지고자 하는 모든 데이터를 가질 수 없습니다. 그래서 큰 정보는 외부의 파일에 두고, 실행 중에 파일을 읽어서 사용하는 방법을 흔히 쓰게 됩니다. 예를 들어 게임 프로그램에는 BGM, 효과음, 사진, 그림, 동영상 등의 파일을 읽어서 출력하게 됩니다.
- 새싹교실/2012/설명회 . . . . 2 matches
* 선생님 지원자가 정말 많으네요. 사실 너무 많은게 아닐까 싶은 생각도 조금 듭니다. 만약 새싹교실을 성실히 진행한 반에 지원한다거나, 위키 사용을 잘 하고 있는지 한번씩 체크해보고 싶다거나, 모든 반이 함께 모여 공동의 활동을 진행하려 할때 약간 버거울수도 있지 않을까 걱정되는 면이 있어요. 반편성이나 회장님께서 각 반 선생님들께 공지해야 할 일이 있을때도 좀 힘들지 않을까 싶어 걱정이네요ㅜㅜ
* 2월부터 준비하던, 생각보다 많은 준비가 필요했던 새싹교실을 드디어 시작하게되네요. 강사모집하고 강사에게 설명해주고- ZP외 다른 강사도 들어오고- 네토리도 들어오고- 규모가 좀 확장되었네요. 전례없이(?) 강사가 넘쳐나는 2012년 새싹교실이네요. 새싹교실 소개는 진경이에게 맡기길 잘 한거 같습니다. 요즘 영 세세한 프리젠테이션 작업은 쉽지 않더라구요.(자꾸 핵심내용을 까먹어버려요--;) 신입생들이 딱 생각만큼 많이 와주어서 좋았던거 같구요.(54명 + 온 강사 15명 = 버거 70개!!) 이제 반 배정만 잘 해서 새싹교실이 잘 진행되도록만 하면 되는군요. 뭔가 많은 일을 벌리고 몇개를 어느정도 기반을 닦아낸거 같아서 다행인거같네요. -[김태진]
- 새싹교실/2012/아무거나/3회차 . . . . 2 matches
[http://wiki.zeropage.org/wiki.php/%EC%83%88%EC%8B%B9%EA%B5%90%EC%8B%A4/2012/%EC%95%84%EB%AC%B4%EA%B1%B0%EB%82%98/3%ED%9A%8C%EC%B0%A8?action=edit 3회차 내용 고치기]
=== 수업내용 ===
- 새싹교실/2012/아우토반/뒷반/3.23 . . . . 2 matches
|| 강사 || 장용운 || 지각 ||
* 새싹교실 아침반을 진행하였다. 뒷반 첫날부터 지각을 해버렸다ㅜㅜ. 오늘은 날씨도 추적추적하고 졸립고 해서 상당히 루즈해져 있었던 것 같다. 그래도 태헌이랑 상희가 잘 따라와줘서 되게 고맙다. 요즘 자기 관리가 잘 안 되고 있음을 새삼 깨달았다. 앞으로는 학생들과 모닝 커피라도 한 잔 하면서 시작해야겠다ㅎㅎ. 분위기 있는 아침 강의로 너희들을 사로잡아주겠서 뒷반도 싸릉해♥ - [장용운]
- 새싹교실/2012/아우토반/앞반/4.12 . . . . 2 matches
|| 강사 || 장용운 || O ||
continue의 정확한 사용법과 switch case에서 'p'와 같은 식으로 받아주게 했을 경우에 인식을 하는지 정확히 모르겠네요.
- 새싹교실/2012/열반 . . . . 2 matches
* C프로그래밍 수업에서 배운 내용을 적어주세요. 궁금한 점은 질문해주세요.
* 함수의 사용법과 if,else if, else문의 차이를 배웠습니다. [권우성]
- 새싹교실/2012/열반/120604 . . . . 2 matches
= 수업 내용 =
* 자료구조를 적재적소에 잘 활용해야 합니다.
- 새싹교실/2012/클러그 . . . . 2 matches
=== 수업내용 ===
=== 수업내용 ===
- 새싹교실/2013/록구록구/1회차 . . . . 2 matches
= 수업 내용 =
== 내용 ==
- 새싹교실/2013/양반/5회차 . . . . 2 matches
= 수업 내용 =
== 내용 ==
- 서민관 . . . . 2 matches
== 내용 ==
||[http://zeropage.org/seminar/95651 XML-RPC을 이용한 네이버 블로그 글 올리기]||
- 서지혜/MyJavaUtils . . . . 2 matches
자바 하면서 알게된 유용한 것 정리하기
* String을 연산해 새로운 String을 만들 때는 StringBuilder를 이용한다.
- 서지혜/단어장 . . . . 2 matches
인용 : The forms of citations generally subscribe to one of the generally excepted citations systems, such as Oxford, Harvard, and other citations systems, as their syntactic conventions are widely known and easily interrupted by readers.
(Nobody can beat it의 수동태, beaten은 beat으로도 사용된다.)
- 성당과시장 . . . . 2 matches
국내에서는 최근(2004) 이만용씨가 MS의 초대 NTO인 [http://www.microsoft.com/korea/magazine/200311/focusinterview/fi.asp 김명호 박사의 인터뷰]를 반론하는 [http://zdnet.co.kr/news/column/mylee/article.jsp?id=69285&forum=1 이만용의 Open Mind- MS NTO 김명호 박사에 대한 반론] 컬럼을 개재하여 화제가 되고 있다.
- 성우용 . . . . 2 matches
06학번성우용
|| 성우용 || ||
- 세미나/2004 . . . . 2 matches
2004년 여름방학 주로 강의실을 이용한 세미나 릴레이
|| 7 || 휘동 || [Debugging] || 간단한 디버거 사용 시연, 디버깅에 대해 이야기 나누기||
- 세벌식 . . . . 2 matches
이때문에 두벌식 키보드를 사용할때 도깨비불 현상이 발생한다. 간단하게 설명하자면 두벌식 키보드로 한글을 치다가 전혀 의도하지 않았던 글자가 나타났다가 사라지는 현상이다. [http://no-smok.net/nsmk/%EB%8F%84%EA%B9%A8%EB%B9%84%EB%B6%88%ED%98%84%EC%83%81 여기]를 보면 더 자세히 알 수 있다.
* 윈도우즈, 리눅스, MacOS 등에서 모두 세벌식을 쉽게 쓸 수 있다. [http://paero3.myzip.co.kr/use_sebeol_keyboard/index.html 이곳]에 각 OS에서 세벌식 배열을 사용할 수 있는 방법이 설명되어있다.
- 소수구하기 . . . . 2 matches
BBC의 방송 기사를 옮겨서 기사가 부실한것 같다. [http://bbs.kldp.org/viewtopic.php?t=39037&highlight=%BC%D2%BC%F6 관련내용] 그리고 이해가 안가는게, 메르센 소수를 발견하는게 그 사람의 목표였는지, 아니면 발견된것이 메르센 소수인지도 이해가 안가게 해두었지. 것참 관심없는 내용이라고 저렇게 해둔건가.--NeoCoin
- 소프트웨어장인정신 . . . . 2 matches
소프트웨어를 개발하는데 장인정신이라는 비유를 사용한다. 프로세스와 프로세스 산출물에 초점을 맞추는 소프트웨어 엔지니어링은 규모가 작은 프로젝트에는 좋은 선택이 아니다. 평범한 소프트웨어 개발자 여럿을 두고 이를 관리하기보다 장인 소프트웨어를 개발자 한 명을 고용하는 편이 속도나 품질 모두에서 낫다. 따라서 전통적인 수공업에서 나타나는 도제생활이 초보 프로그래머에게는 필요하다. 프로그래머는 도제를 거쳐 중간 장인으로, 결국에는 장인으로 성장하게 된다.
- 손동일 . . . . 2 matches
자주 이용 할테니.. 페이지 사용할 수 있게 해주세요~^^
- 송치완 . . . . 2 matches
* 전직 용투사
* 6월 21일 용산 미군기지로 자대배치
- 숫자를한글로바꾸기/조현태 . . . . 2 matches
소스가 길어 보이지만 저기의 stack이라는 클래스.. 사실 저번에 [LittleAOI]에서 만들어서 2번이나 사용했던 클래스다.
모양만 객체고 malloc을 사용하다니 -_-;;; 하이브리드 소스다 -_-;;; 안좋아 -_-;;;
- 쉽게Rpg게임만들기 . . . . 2 matches
* 잘 응용하면 재밌는 게임 만들수 있을 것 같아요^_^ ㅋㅋㅋ 포켓몬스터 같은거!! ㅋㅋ 생각보다 유익하고 재밌었음 ^_^ - [김정혜]
* 쉽게 RPG 게임 만들기 라고 해서 RPG 쯔꾸르 깔고 사용하는 법만 간단히 설명하는 건가 했는데 Ruby 얘기도 나오고 해시 얘기도 나오고 슈퍼 클래스 얘기도 나와서 놀람… - [김수경]
- 스네이크바이트 . . . . 2 matches
링크드리스트를 이용한 노드 추가
이 페이지의 모든 내용은 임의적으로 추가나 변경이 가능합니다.
- 스터디그룹패턴언어 . . . . 2 matches
우리는 평생 배워야한다. 학습하고 자라기 위해서 우리는 수업을 듣고 선생에게 상담을 받으며 기사와 책을 읽거나 동료와 친구들로 부터 도움을 구한다. 우리가 사용 가능한 많은 학습 방법 중에 가장 훌륭한 것들 중 하나가 스터디 그룹이다.
누가 먼저 이 페이지를 만들었는지는 모르겠지만, 요즘 이 패턴을 다시 볼 필요가 생겨서요. 공부하는 셈 치고, 원문의 굵은 글씨랑, 일부 내용만 먼저 옮겨볼께요. 가능하다면 패턴 이름도. 요약 번역본이 되겠죠. 관심 갖는 사람이 더 많아 질 수 있을 것 같아요. 위키니까 도움도 받을 수 있을 것 같네요. --[이덕준]
- 시간맞추기/허아영 . . . . 2 matches
그런데 time()함수를 사용한 방법에는 문제가 있는데 말이지..ㅎㅎ
time()함수의 기능상의 문제점..ㅎㅎ 사실 이거말고 다른방법을 사용하는게 더 정확한데..ㅎㅎㅎ
- 여사모 . . . . 2 matches
== 2004/05/24 성훈's 공부내용 ==
int * a = new int[b]; // 이와 같은 경우에는 원하는 값을 할당받아 사용하므로 올바르게 실행된다. */
- 온라인서점 . . . . 2 matches
[http://dicibook.com/ 대신서적] : 용산 터미널 상가 지하에 위치. 직접가서 사면 20%할인율 적용
- 요정 . . . . 2 matches
모두 서로 다른 취향을 갖고 있어 멋내기를 즐기는 듯 하다. 숲속에 사는 정령들은 숲에서 얻을 수 있는 소재를 사용해서 능숙하게 옷을 만들어 입고 인간의 주위에 사는 요정들은 인간에게 빌린 물건으로 꾸려 나가는 경우도 있는 듯 하다.
아일랜드를 대표하는 레프리콘은 사람들에게 전혀 해코지하지 않는 아주 온순한 요정으로, 땅굴 속에 숨어 살면서 언제나 한쪽 구두만 만든다고 한다. (공포영화에 주연으로 나오기도 했지만..원래는 착한 요정이랍니다) 식사를 대접해 준 구둣방 노부부를 위해 밤새 구두를 만들어 주었다는동화 속 난쟁이 요정들은 바로 이들이다. 아일랜드의 또다른 요정 밴시는 늙은 여자의 정령으로 죽음이 찾아오려 하는집밖에서 울부짖는다고 전해진다. 밴시는 머리를 길게 기르고 푸른 옷에 흰색 망토를 입은 창백한 여성으로 직접 사람들을 해치지는 않지만 섬뜩한 울음소리 덕분에 두려운 요정으로 알려져 있다. 아일랜드에는 라난시라는 요정이 또 있는데 매우 아름다운 용모로 자기에게 매혹된 남자들의 생명을 앗아간다고 한다. 이 요정은 시인이나 예술가에게 영감을 주는 요정으로, 그리스 신화의 뮤즈들과 흡사한 점이 많다.
- 위키개발2006 . . . . 2 matches
* 사이트내 실시간 채팅 매크로 추가. 아래와 같은 매크로 사용시에 실시간 채팅 매크로가 추가 된다. 직접 구현은 안했고, gabbly 거 이용함.
- 위키광부 . . . . 2 matches
[강희경]이 좋은 내용의 위키페이지가 사장되어가는 것을 보고 안타까워 만든 개념
* 둘러보니 위키에는 좋은 내용이 많은 것 같네요. 위키탐험2013이라도 해야하나. - [김민재]
- 위키기본css단장 . . . . 2 matches
* FireFox 에서 기본스킨을 적용시킨 제로위키는 RecentChanges 에서 페이지 이름이 너무 작게 나와요. -ㅅ- 누가 CSS 좀 수정해주셨으면 하는데.. ZeroPagers 들 중에서 FireFix 를 자주 사용하는 사람들이 많거든요 [1002]형이나 [임인택]이나... - [임인택]
- 위키를 써보고 싶고나처음화면 . . . . 2 matches
* 제로 위키에서 사용을 해본다.
* 펩피랩에 적용한다
- 이기적인유전자 . . . . 2 matches
* 이 책에서 내가 처음 접한 개념이 밈 이라는 개념이다. 이 밈은 이기적인 유전자가 모든 생명체를 대상으로 하는 특성이라는 점과 다르게 인간에게만 적용되는 특성이다. 이 밈은 문화와 비슷하게 보일 거 같은데, 구체적으로 예를 들면 곡조나 사상, 표어, 의복의 양식, 단지 만드는 법, 아치 건조법 등이 모두 밈의 예이다. 유전자가 유전자 풀 내에서 번식함에 있어서 정자나 난자를 운반체로 하여 몸에서 몸으로 날아다니는 것과 같이 밈이 밈 풀 내에서 번식할 때에는 넓은 의미로 모방이라고 할 수 있는 과정을 매개로 하여 뇌에서 뇌로 건너다니는 것이다. 밈은 비유로서가 아닌 엄밀한 의미에서 살아 있는 구조로 간주해야 한다고 한다. 네가 내 머리에 번식력이 있는 밈을 심어 놓는다는 것은 문자대로 네가 내 뇌에 기생한다고 하는 것이다. 나의 뇌는 그 밈의 번식용의 운반체가 되어 버리는 것이다. 예를 어 '사후에 생명이 있다는 믿음'이라는 밈은 막대한 횟수에 걸쳐 세계 속의 사람들 속에 육체적으로 실현되어 있다. 이 밈이 인간의 본성과 어떠한 관계가 있냐 하면은, 밈의 목적 달성을 위해서 이타적인 행동을 하는 사람들을 설명할 수 있는 개념이 된다. 예를 들어 '착하게 살아야 한다'라는 하나의 밈만 해도 주위에서 흔하게 볼 수 있고, 이밈은 자신의 복제자를 널리 퍼뜨리기 위해서 실제로 그에 맞는 행동을 하게 되고, 그러한 행동에 그에 상응하는 대가도 기대할 수 있게 된다.(예를 들어 착한 행동에 대한 칭찬 및 포상) 이 밈이라는 개념은 인간의 이타적 행동에 대한 설명해 주고 또한 왜 그러한 이타적 행동이 필요한지 밈의 관점에서 설명해주고 있다. 주의할 점은 이것은 하나의 관점이지 이게 전부는 아니라는 점이다. 이 밈이라는 개념은 내가 이책을 읽으면서 얻은 큰 수확중 하나이다.
- 이민석 . . . . 2 matches
* 이민규, 장용운과 함께 컴쟁이 40주년 페스티벌 참가
* 졸업논문: 하스켈을 이용한 효율적인 알고리즘 설계
- 이승한/.vimrc . . . . 2 matches
set scs "똑똑한 대소문자 구별기능 사용
" 폴딩한 내용 문서 닫고나서도 기억하기
- 이승한/java . . . . 2 matches
goto, const 는 사용하지 못한다.
사용 JOptionPane.함수들
- 이영호/My라이브러리 . . . . 2 matches
새로운 용도의 라이브러리 제작
// Bind 에러에서도 서버를 재가동 할 경우 resueaddr 로 flag를 설정했기 때문에, Port 에러 뿐임. 이미 Port를 사용할 때만 에러가 남.
- 이정화 . . . . 2 matches
''syhyper@hotmail.com 서용욱임당 안한분들 친추부탁~''
사용법..터득...ㅎㅎㅎㅎㅎㅎ 대순이..이름쓰는거 까먹음..
- 이차함수그리기 . . . . 2 matches
* 함수 값을 저장하기 위해 일차원 배열을 사용한다.
└... 이문제 왜 답이 내꺼 뿐인겨..;;ㅁ;; 아이 부끄~>ㅃ<;;; 가...아니랏.. 그냥 나처럼 점만 찍오.ㅎ 그래픽이라니~ 그냥 찍으면 되는거 아녀? 원래 그림도 다 확대하면 점인뎅.. 그냥 . 이나 ○ 이런고.. 찍어서 해결~ 하세용.ㅎㅎ- [조현태]
- 임다찬 . . . . 2 matches
|| 이름 || 내용||
나중에 [JollyJumpers] - dynamic programming 사용하나요???
- 임시분류 . . . . 2 matches
일회용 페이지들에 대한 분류.DeleteThisPage 의 대상이 될수 있는 페이지다. 경우에 따라 보존될 가능성도 있는 페이지들. 가령 설문조사등은 일회용이 될수 있지만 일종의 자료로 남을 수도 있다. DeleteThisPage 가 아니라면 추후 재분류 대상 페이지.
- 임인택/코드 . . . . 2 matches
== IME 이용 ==
== 키보드 이벤트를 이용한 아주 간단한 방법 ==
- 자유게시판 . . . . 2 matches
- 자유게시판에 글 수정, 삭제, 추가 하면 RecentChanges 에 반영되지 않나요? 글고 저는 위키위주로 사용해서... (제로페이지 북마크를 http://zeropage.org/wiki/RecentChanges 로 해두고 사용하고 있습니다) - [임인택]
- 장용운/알파벳놀이 . . . . 2 matches
* 아 잉여하다 - [장용운]
* 해봐 재밌을거야 - [장용운]
- 재미있게공부하기 . . . . 2 matches
다른 사람과 함께 공부한다. 다양한 관점과 해석이 가능하다는 것을 배운다. 그들의 경험을 배운다. 용기를 얻고 두려움이 사라진다. 재미가 생긴다. 특히 서로를 가르치는 것도 아주 좋은 방법이다.
'''여러 자료 사용하기'''
- 정규표현식/스터디/메타문자사용하기/예제 . . . . 2 matches
1. 다음 파일들의 목록에서 앞에 두글자가 영어인 파일들을 찾아라. (posix 표현식을 사용할 것)
1. 다음 파일들의 목록에서 두번째 글자가 숫자인 파일을 찾아라. (posix 표현식을 사용할 것)
- 정모/2002.3.14 . . . . 2 matches
내용 : 신입생 위주
2. 프린트물을 이용한 홍보
- 정모/2002.5.2 . . . . 2 matches
* 위키 FrontPage 관련 - 학기중에는 Project 단위에 대해 일의 처리가 어렵습니다. 이에 따른 FrontPage 학기모드용으로 전환을 할까 합니다. 그리고 그에 따른 위키 정리 관련. -- 석천
하지만 새로 사용하게된 위키가 기존의 컬럼 게시판이 하던 일을 더 멋지게 해내고 있습니다.
- 정모/2002.9.12 . . . . 2 matches
1. 신입회원 대상으로 2학기 프로젝트 -> JAVA 를 이용한 자료구조.
====>> 파일 서버로의 사용을 자제(외부에서의 로딩을 자제). FTP 막음. SSH2 로만 접근 가능.
- 정모/2003.8.12 . . . . 2 matches
== 회의 내용 ==
* [5인용C++스터디] => 효율 50% 정도로, 최종 결과물 준비중.
- 정모/2003.8.26 . . . . 2 matches
== 회의 내용 ==
* [5인용C++스터디] => 역시 종료. 뒷풀이만 남았음.
- 정모/2003.9.9 . . . . 2 matches
== 회의 내용 ==
* 현재 위키의 이용율로는 위키에서 해결하는 것을 원하지 않습니다. 극단적으로는 정모에 참석한 사람들에 한하여 발급하고 싶기도 합니다. 식정모 참석도 저조하고, 스터디 참석도 저조한 상태에서 계정을 할당 받기는 어렵다고 생각합니다. 일단 9월 달 내로 제한없이 발급하고, 결정에 따라서 이후에 정리하는 방향으로 했으면 좋겠습니다. --NeoCoin
- 정모/2004.04.27 . . . . 2 matches
방식 : 저번 정모에 이어서 [여섯색깔모자] 방식을 한 번 더 적용해보았습니다. 정모 날짜 전에 미리 회의 안건을 받았습니다.
* 회의 하기에는 공대 로비는 너무 춥고 주의가 분산된다. [여섯색깔모자]도 중반 이후에는 거의 적용하지 못했다. 다음에는 꼭 강의실을 찾아서 회의를 해야지ㅠㅜ. --[Leonardong]
- 정모/2004.10.5 . . . . 2 matches
* P2P 캐스트 - 윈엠프 방송같은 기존 BroadCast 방식에서 P2P방식으로 바꾸어 사용자가 몇 명이 몰리든 상관없이 원활히 동작
* Flex - 매크로미디어사. XML를 이용해 Flash 결과물을 만드는 툴 코딩으로 플래시 구현가능
- 정모/2004.11.16 . . . . 2 matches
* 듣는 사람도 책을 읽은 사람의 압축된 내용을 들으면서 책의 내용을 짧은 시간에 흡수 할수 있지 않을까요??
- 정모/2005.12.23 . . . . 2 matches
참가자 : 조현태, 허아영, 정수민, 김상섭, 송수생, 문보창, 김민경, 남상협, 박영창, 최광식, 황재선, 이규완, 이선호, 이용재, 허준수, 유용안, 이승한, 이도현
- 정모/2005.12.29 . . . . 2 matches
|| 캠이랑 놀자 || 파이썬을 이용하여 이미지프로세싱, 여러가지 필터 제작. 4주뒤 동영상 필터 제작 계획중 ||
= 토의 한 내용 =
- 정모/2005.3.7 . . . . 2 matches
들어갈 내용.
회장 이승한은 책장 대용으로 쓸 사물함을 빠른 시일내에 유치.
- 정모/2005.4.4 . . . . 2 matches
재학생 : 남상협, [임인택, 이동현, 이영호, 하욱주, 권정욱, 김장욱, 이도현, 이용재, 이진원, 오승혁, 김상섭, 김정현, 강희경, 조동영, 이승한, 윤성만
* 공대생 모두에게 도움이 되긴 하지만, 이왕 지원되는 거라면 좀더 학회에 유용할수 있는 방향으로 가보자.
- 정모/2005.5.23 . . . . 2 matches
이전 데블스 켐프 내용
* 내용 : 개념과 언어를 2-3가지 정도씩 알아봄 (Ex) 구조적 프로그래밍, 익스트림, 객체지향)
- 정모/2005.6.27 . . . . 2 matches
'' 그거 말하면 쓸수 있을껄. 우리때는 정모를 7피 세미나실에서 했었거든. 그거 프로젝터도 사용하면서. ''
개인 진행 : [이규완](C), [김민경](올림피아드 문제 풀어보기), 성복(용산알바), 현태(지방이라 힘듦. 개인으로 진행해야 할듯), [황재선](C#)
- 정모/2006.4.10 . . . . 2 matches
* 연습용 RDBMS만들기..
7. 새싹스터디를 이용한다.
- 정모/2007.1.12 . . . . 2 matches
=== 회의내용 ===
잡담시간에 궁금했던점들을 물어보는 시간으로 이용
- 정모/2007.4.3 . . . . 2 matches
송수생 - 주희주, 최창원, 조영선, 한도용, 정현준, 장은하, 최재용
- 정모/2011.10.5 . . . . 2 matches
* Hadoop은 대용량 분산 데이터 처리 플랫폼이다.
* ''위모트플러스'' 예~전에 했던 OMS 내용이라 다들 한동안 기억하지 못했다.
- 정모/2011.5.16 . . . . 2 matches
* [데블스캠프2011/준비]에 올라온 내용을 안내
* 으아아 OMS 스크립트가 날아갔습니다. 어디간거지. 하하 다시 쓰려니 자꾸 중간에 만화짤방만 보게 됨.. 음 골든벨 참가할 생각은 없었는데 어쩌다보니 참가해버렸네요. 으 나누기 Fail; 그리고 이프문 안에 있는 OR 연산도 고민했습니다. 3월즈음에 플립플롭 본 내용이 기억나면서 그냥 찍었는데 맞췄네요(결합방향도 의심스럽긴 했지만). 여튼 지원금은 무전취식반이 까까라도 사먹으면 될듯. 으 진정한 의미의 무전취식일지도 - [정진경]
- 정모/2011.7.25 . . . . 2 matches
* 5.1장에서 회원 등급 조정을 예로 들어 책임을 구분하는 과정이 흥미로웠습니다. 관련 내용은 이번주에 위키에 올리겠습니다.
* 곧 책장 회고북에 회고 내용 붙여두겠습니다.
- 정모/2011.8.1 . . . . 2 matches
* 그러고 보니 후기를 안 쓰고 있었네;; 흠흠.. 이번 OMS는 구글을 이용해서 영작하기.. 참 원어민이 아니고서야 술술 영작하는 정도가 되려면 엄청난 노력이 필요하죠.. 영작 하면서도 괜시리 이게 어법에 맞나 궁금하고.. 그런 문제를 잘 해결 해 줄 수 있는 내용이었던 것 같습니다. MT에 대해서 듣고 사이트 들어가 봤는데.. 뭔가 엄청 럭셔리 해 보이는데 여긴가요? 워우~ 재미있겠네요 ㅋ 기대됩니다. - [권순의]
- 정모/2011.9.27 . . . . 2 matches
* 참가자 : [김수경], [서지혜], [임상현], [송지원], [김준석], [김태진], [고한종], [이민규], [송치완], [장용운], [추성준], [정진경]
* 으아 정모가 수요일로 바뀌다니 ㅠㅠ 정모 못갈듯요.. - [장용운]
- 정모/2012.1.13 . . . . 2 matches
* 기승전와이브로 OMS 잘들었습니다. 지금 LTE 사용하는 건 여러모로 호갱이 아닐까싶네요. 그나저나 와이브로 쓴지도 꽤 오래됐는데 사실 무의식중에 아직도 수도권에서만 될거라고 생각하고 살고있었어요. 그러고보니 그럴리가 없잖아... 몇년이 지났는데.... - [김수경]
* 참신한 스타일의 OMS 잘 들었습니다. 어떤 책의 "인간은 기대했던 단어가 나오지 않으면 깜짝 놀라게 된다."라는 구절이 생각나네요. 마치 하이든의 놀람 교향곡을 들은 느낌입니다ㅋㅋㅋ.. 회칙 개정은 작년 초에 말했던거 같은데 이제야 과업을 달성(;)하네요. 지난 회장단의 사업을 마무리 해야하는데 조용히 사라진 계획이 몇 있는듯... 새회장님 당선 축하드려요. ZP를 잘 이끌어주시길.. - [서지혜]
- 정모/2012.1.20 . . . . 2 matches
* 그러고보니 다음 OMS 주자를 안 정했네요... 이번주 OMS는 사진에 대한 내용이었습니다. 디카덕분인지 요즘 사진에 다들 관심이 많아 더 많은 사람들이 들었으면 재미있었을텐데 정모 참가자가 적어 아쉬웠습니다. 두 가지 선택지 중 하나를 선택해서 들었는데 과연 셀카에 대한 내용은 뭐였을지 궁금하네요. - [김수경]
- 정모/2013.2.19 . . . . 2 matches
* 새싹교실을 알리기 위한 방식 결정(미정)(새싹교실 벽보 여부, 페이스북이나 트위터같은 매체 활용 여부 등등.)
* 새싹교실에 교습할 내용은 c언어를 중심으로 하되, 다른분야는 강사의 재량에 맞게 추가하는 방식으로 진행할 예정.
- 정모/2013.7.15 . . . . 2 matches
= 주요 내용 =
* 책 읽어보고, 책에 있는 내용대로 실제로 해 보는 게 좋을 것 같다고 해서, 리펙토링을 해 보고 수경선배님의 코드를 리펙토링을 할 계획. (논의)
- 정모/2013.9.4 . . . . 2 matches
= 주요 내용 =
* 클린 코드 : SRP(Single Responsibility Principle), DIP(Dependency Inversion Principle) 방식을 공부하였고 디자인패턴 중 템플릿 메소드에 대해서 공부하였습니다.그리고 스레드에 대해서 공부 하였습니다. trello와 github연동하는 방법이 있습니다.상당히 유용할 것같으므로 관심있으신분들은 조금만 찿아보시면 쉽게 하실수있습니다.
- 조동영/이야기 . . . . 2 matches
* 이유 : 기능이 바뀌었을 때 수정에 드는 비용이 적다.
생각을 잘못해서 문제점이 많았다. (배열사용)
- 조영준 . . . . 2 matches
* [http://steamcommunity.com/id/skywavetm 스팀 사용자]입니다.
* Wiki Path Finder (wikipedia api를 이용한 두 단어간의 연관성 추정, 2014년 2학기 자료구조설계 팀 프로젝트)
- 조현태/놀이/미스틱아츠 . . . . 2 matches
|| 날짜 || 내용 || 작성자 ||
|| 2005.04.14 || 네모네모 로직 푸는 프로그램 완성~~>ㅁ<;; 너무 힘들었..ㅎㅎㅎ(for와 if만 사용한;;) || [조현태] ||
- 조현태/놀이/채팅서버 . . . . 2 matches
나머지 2개와 seqNum의 용도를 모르겠다는..그래서 항상 같은수만 보낸다는..;;
현재, 당시 사용했던 파이썬으로 만들어진 클라이언트로 1인이 접속, 대화 할 수 있다.
- 지금그때2004 . . . . 2 matches
|| 진행내용 ||
패널 확정자 : 임민수(03), 노수민(03), 류상민(99), 강석천(99), 이선호(98), 신제용(95), 김창준(93)
- 지금그때2005 . . . . 2 matches
* [지금그때2005/진행내용]
지금그때의 의미를 담은 자료집과 질문릴레이에서 좋은 내용을 받아 적을 수 있는 종이. 그리고 OST를 간단하게 받아 적을수 있는 종이를 나눠준다면 좋지 않을까요?? - 이승한
- 지금그때2005/홍보 . . . . 2 matches
개강총회에서 들었는데, 선전부에서 소모임 행사 홍보도 해준다고 하더군요. 적극 활용해야겠죠~ --[Leonardong]
때가 때이다 보니(집부모집 시즌) 선전부를 이용해 먹는 일은 왠지 안될 것 같습니다. 이번엔 그냥 자체 제작이 좋을 듯합니다. --[강희경]
- 지금그때2005/회의20050308 . . . . 2 matches
이번에도 [여섯색깔모자]를 이용한 회의를 하였습니다.
동문서버를 이용한다.
- 지금그때2005/회의20050318 . . . . 2 matches
메뉴판용A4색지 4000원
8:40 내용 정리 요청
- 지금그때2006 . . . . 2 matches
[여섯색깔모자]와 [MindMap]을 활용합니다.
* 행사내용알림
- 지금그때2006/선전문 . . . . 2 matches
행사 세부 내용
행사 세부 내용
- 지금그때2006/여섯색깔모자20060324 . . . . 2 matches
= 주요 회의 내용 =
장점 - 시간절약, 분위기 전환, 혼란이 없다, 호출이 용이, 강의실 백업 기능
- 진법바꾸기/김영록 . . . . 2 matches
함수를 만들어 쓰는데 익숙하지 않아 최대한 함수를 많이 이용하는쪽으로 하려다보니
응용 : 원하는 자리의 수의 값을 얻을수 있다.
- 진법바꾸기/허아영 . . . . 2 matches
그런데 말야.. 저기 두 번째 함수의 i 과 turn 은 정말로 전혀 다른게 없다고. 이름을 여러개로 해주고 싶었다면 포인터를 사용하거나 전처리문을 사용하는게 나을텐데.. 같은연산이 중복되서 일어나니까 오히려 햇갈린다고..ㅎㅎㅎ
- 질문의힘 . . . . 2 matches
||파랑||사실, 내용||객관||
* 말 바꾸기 - 상대방이 했던 말을 똑같은 내용으로 다른 말로 바꾸기
- 짜장면 . . . . 2 matches
* 이 소설의 내용은.. 순수하고 바르게만 자라왔던 한 고등학생 남자아이가 주인공인데, 지금 현재 그 아이는 어머니에 대한 실망과 아버지에 대한 불신이 어우러져 목표 없이 반항하는 반항아가 되어 지내고 있다.
* 이 소설은.. 지금 현재 어른이 된 저자가, 과거를 회상하는 내용으로 나와 있다. 하지만 실제 필자는 정말 바르게 자라왔다고 한다.
- 최대공약수/남도연 . . . . 2 matches
최대한 C++을 이용해서 짤려고 했는데 역시 어렵네요 ㅡㅜ
지금이야 상관없지만 다른 소스에서도 콘솔화면 입출력을 사용하고, 저런식으로 입출력해야 한다는 보장이 없자넝.ㅎ
- 최대공약수/허아영 . . . . 2 matches
y2 = y; //y값을 y2를 이용해 사용.
- 최소정수의합/나휘동 . . . . 2 matches
sum을 공식을 이용했지만...여전히 마음에 들지 않아요
[최소정수의합/송지훈] 방식, 조건제시법과 lazy evaluation 이용
- 컴퓨터를전공하면서꼭알아야할세가지 . . . . 2 matches
두번째는 "필로소피"이고, "사이언스"에 해당합니다. 도대체 컴퓨터로 무엇이 가능하고 무엇이 불가능한 것인가를 묻는 것이지요. 컴퓨터 공부중에서 가장 이론적이고 학문적인 성격이 강한 것입니다. 이게 없고서는 컴퓨터공"학"(보다 적절히는 전산"학")을 했다는 말하기가 좀 그렇죠.(그렇다고 그 효용이 큰 건 아닙니다. 컴퓨터 전공자들의 끊을 수 없는 딜레마기도 하죠.)
두번째가 "무엇을"이었다면, 세번째는 "어떻게"에 해당합니다. 같은 일을 해도 어떻게 하면 효과적/효율적으로 할 수 있느냐를 공부하는 것이죠. 어차피 실용기술적인 측면에서 컴퓨터를 본다면 이 소프트웨어 공학을 지나칠 수 없을 겁니다. 그런데, 이 SE라는 것은 단순히 어떤 "거대 프로세스 모델"만을 일컫는 것은 아닙니다. 궁극적으로는, 계획을 잘 짜는 법, 사람을 잘 관리하는 법, 정보를 잘 정리하는 법 등이 모두 포함됩니다.
- 코드레이스출동/CleanCode . . . . 2 matches
재선, 회영, 도현, 용재
* 도현, 용재
- 타도코코아CppStudy/0724 . . . . 2 matches
|| 파스칼의 삼각형 || [수진] || Upload:pascal_sujin.cpp || 헉.. 줄까지 맞추다니 멋져요.^^ 함수 분리도 꽤 잘한거 같고.. 무엇보다 다른 개념(조합)을 사용했네요. 여태까지 한 사람들은 거의 다 위에꺼 더해서 했거든요. 하지만 로직과 보여주는게 분리가 안되어 있네요. 이따 저와 함께 고쳐 봅시다. ||
|| 마방진(홀수) ||[정우] ||Upload:mabang_winy.cpp || 잘했어요. 고칠 거리가 좀 있긴 하지만.. 스스로 고쳐 보세요. 랜덤워크를 저와 함꼐 고쳐보면서 배운걸 마방진 고치는데 적용해 보세요. ||
- 테트리스만들기2006/앞반 . . . . 2 matches
회의 내용 : 테트리스에 뭘 넣으면 좋을까.. (자세한 내용은 나중에 스캔해서 올리겠음)
- 토이 . . . . 2 matches
* 신입생도 생각만 있으면 받을 용의 있음.
||[토이/메일주소셀렉터]||text에서 메일주소만 걸러낸다. 단체 메일보낼때 유용할듯 || O || X || X || X ||
- 튜터링/2013/고딩같은어셈 . . . . 2 matches
=== 강의 내용 ===
=== 강의 내용 ===
- 파스칼삼각형/강희경 . . . . 2 matches
printArray(array, i); //행의 내용을 출력한다.
copyArray(foreArray, array); //출력했던 행의 내용을 저장하고 다음행을 위해 초기화해준다.
- 파이썬->exe . . . . 2 matches
주제 : win32com 을 이용한 파이썬 프로그램 py2exe로 실행파일 만들기
win32com 에 있는 것들을 사용해서 프로그램을 만들고 나면..
- 파일 입출력_2 . . . . 2 matches
fclose(fpt); // fopen 과 fclose 세트로 사용!
msdn 에서 사용방법 찾아보기
- 페이지이름고치기 . . . . 2 matches
* 기존 페이지로부터 내용을 긁어서 새 페이지에 복사한다.
* 기존 페이지를 DeletePage 기능을 이용해서 삭제한다.
- 프로그래머가알아야할97가지/ActWithPrudence . . . . 2 matches
다음 이터레이션에서 그 부채의 상환을 계획한다면, 비용은 최소화 될 것이다. 부채를 상환하지 않고 놔두면 이자가 누적되며, 그 이자는 가시적인 비용으로 추적되어야 한다. 이렇게 하면 프로젝트의 기술적 부채가 사업적 가치에 미치는 영향을 강조하며 상환에 적절한 우선 순위를 줄 수 있게 된다. 이자를 어떻게 산정하고 추적할 것인가는 각각의 프로젝트에 달려있지만, 반드시 그것들을 추적해야 한다.
- 프로그래밍은습관이다 . . . . 2 matches
* 대학원 다니는 아는 선배에게 디버깅 세미나 할건데 뭐 도움되는 말좀 해달라고 하니깐 '프로그래밍은 습관이다' 란 말을 해줬다. 공감이 가는 말이다. 프로그래머에게 프로그래밍은 습관인거 같다. 마치 자전거를 처음 탈때는 엎어지고 그러다가 한번 타기 시작하면 그 다음부터는 쉽게 타는것이랑 비슷한거 같다. 난 군대 가기전에 군대 갔다 오면 프로그래밍 하는것을 다 까먹을텐데 하고 걱정을 했었다. 그런데 군대 가서 프로그래밍에 더 발전은 없었지만 마치 자전거 타는 법을 배우고 한동안 안타다가 다시 타는것과 같았다. 세세한 문법같은것은 생각이 나지 않더라도, 그런것을 어디서 찾을지와, 어떤식으로 적용할지는 몸으로 체득했기 때문에(삽질ㅜㅡ ) 몸이 기억을 했다. - [상협]
* 저번에 [상규]형이 for(i=0; i<MAX; i++){...}이런식의 아주 작은 패턴이라고 말할수 있는것을 무엇이라고 설명해 주셨었는데 정확하게 용어가 생각이 안나네요;; - [톱아보다]
- 프로젝트 . . . . 2 matches
* [ProjectEazy] - AI를 이용한 3살짜리 여자아이 '이지(Eazy)' 만들기
* (V) [5인용C++스터디] - 2003여름방학
- 피보나치 . . . . 2 matches
기본적인 함수의 제작은 재귀호출로 만들어야 하나, 다른 방법을 사용해도 됩니다.
||도전자||총개발시간||소스라인수('''주석제외''')||사용언어|| Source ||
- 피보나치/김준석 . . . . 2 matches
/*p_num의 용도 : 만약 10번째까지 구한다면
if(!p_num) return; //p_num이 0이되어 if(!거짓)이 되면 return을 이용하여 종료
- 협상의법칙 . . . . 2 matches
난 이책을 읽고 14만원 상당의 메인보드 값을 벌었다. 아싸~ 이책은 초강력 강추다. 꼭 읽어 보면 좋다! 내가 이책의 내용을 여기다가 간단히 요약을 할 수 도 있겠지만, 내 생각에는 시간을 들여서 읽어봐야 조금이나마 작가의 생각을 더 많이 이해하고 공유하고, 그것을 실제로 써먹을 수 있을거라 생각하기에 그에 관한 내용을 많이 적지는 않겠다. 확실한것은 내가 책에서 얻은 지혜를 삶의 지혜로 써먹을 수 있다는 것을 직접적으로 느껴서 너무 뿌듯했다 --[상협]
- 홍길동 . . . . 2 matches
개인 사용자의 예제 페이지 입니다. 이와 유사하게 꾸밀 필요는 없으며, 꾸밀 내용이 생각나지 않으실때 쓰세요.
- 회원정리 . . . . 2 matches
한번 강제 탈퇴 당한 사람이 자기의 친구들이 자신이 관심있어 하는 내용을 공부하려고 사람을 모으는 걸 알았습니다. 과연 참여할 수 있을까요? 그 사람이 "제로페이지"라는 임의적 단체의 가상적 "선(線)" 때문에 함께 공부를 못한다면, 그럴 가치가 있을까요?
회칙에 적혀 있는 내용에 의하면 '본인 의사로 회원 자격을 상실한다'인것으로 알고 있습니다만. '정리대상'에 오른 회원들의 의사를 확인하였나요? (글을 보면, 회원정리가 먼저고 공지가 뒤에 이루어지는 것 같은데.. 이건 순서가 안맞는것 아닌가요?)
- 훌륭한프로그래머의딜레마 . . . . 2 matches
우연치 않게 두 회사에 정확히 똑같은 내용의 주문이 들어왔다. "열나어려운문제" 해결을 위한 프로그램을 작성해 달라는 것이었다.
과거 IBM사에서는 프로그램의 줄 수에 따라 급여를 계산했었다. (사실 지금도 이런 회사가 상당수 있다) 그런데 프로그램 줄 수가 늘어날 수록 숨겨진 버그 수와 유지관리에 드는 비용은 기하 급수적으로 늘어나게 된다. 이 문제를 해결하기 위해 프로그램 줄 수는 더 늘어나게 되고, 덕분에 프로그래머는 돈을 더 벌게 된다.
- .vimrc . . . . 1 match
set exrc " 특정디렉토리에서 .exrc 파일의 설정을 적용하게 함
- 02_Archi . . . . 1 match
== 강의 내용 ==
- 02_C++세미나/0515 . . . . 1 match
= 내용 =
- 05학번만의C++Study/숙제제출/1 . . . . 1 match
섭씨 온도를 전달인자로 전달받아 화씨 온도로 환산하여 리턴하는 사용자 정의 함수를 main() 함수가 호출하는 프로그램을 작성하시오. 프로그램은 섭씨 온도로 입력할 것을 요구해야 하고, 다음과 같은 실행 결과를 출력해야 한다. 참고로, 섭씨 온도를 화씨 온도로 변환하는 공식은 Fahrenheit = 1.8 X Celsius + 32.0 이다.
- 05학번만의C++Study/숙제제출1/윤정훈 . . . . 1 match
* 섭씨 온도를 전달인자로 전달받아 화씨 온도로 환산하여 리턴하는 사용자 정의 함수를 main() 함수가 호출하는 프로그램을 작성하시오. --[최경현]
- 05학번만의C++Study/숙제제출1/정서 . . . . 1 match
정서군.. 소스는 {{{다음에 ~cpp를 붙여주세용.ㅎ 그리고 위키문서는 위키양식에 맞게..;;ㅁ;; - [조현태]
- 10학번 c++ 프로젝트 . . . . 1 match
* 헤더문제는 #pragma once 사용으로 해결된 듯 함.
- 10학번 c++ 프로젝트/소스 . . . . 1 match
=== alarmsetting에서 now_time으로 넘기기 위해 사용 ===
- 1st Seminar . . . . 1 match
컴퓨터 구조를 듣고 난 뒤 세미나 내용을 다시 하번 읽어보니 이 세미나만 잘 들어뒀어도, 고생하진 않았을 것 같네요. 뒤늦게 깨달아 버렸음 --[강희경]
- 1thPCinCAUCSE/ExtremePair전략 . . . . 1 match
* ["TestDrivenDevelopment"]를 사용했다고 말하기는 그렇지만 테스트 케이스를 입력으로 넣어놓고 프로그래밍 중간 중간에 제대로 돌아가는 지를 확인하기 위해 지금까지의 진행 상황을 출력했습니다.
- 1thPCinCAUCSE/ProblemB . . . . 1 match
컴퓨터 키보드에는 0부터 9까지의 열 개의 수가 있다. 이를 이용하여 정수 57일 입력하려면 두 번 (5 한번, 7 한번) 키보드를 쳐야한다. 정수 33을 입력하려해도 역시 두 번 키보드를 쳐야 한다. 1부터 10까지 열 개의 정수를 모두 입력하려면 모두 11번 키보드를 쳐야한다. (1부터 9까지는 각 한번, 10은 두 번) 1부터 34까지를 모두 입력하려면 모두 59번의 키보드를 쳐야 한다.
- 2002년MT . . . . 1 match
* 술, 고기, 참치, 김치, 상추, 나무젓가락, 일회용접시, 쌀, 라면, 휴지, 불판, 치약
- 2002년도ACM문제샘플풀이 . . . . 1 match
* [http://cs.kaist.ac.kr/~acmicpc/problem.html 2002년도 문제 샘플] 풀이입니다. ["신재동"]과 ["상규"]가 '개발 시간 최소화' 라는 문제 때문에 시작부터 TDD와 Refactoring 그리고 OOP를 버렸습니다. 그래서 중복도 심하고 남에게 보여주기 정말 부끄럽지만... 용기내서 올립니다. 리펙토링 후에 변한 모습을 다시 올리도록 하겠습니다.
- 2002년도ACM문제샘플풀이/문제C . . . . 1 match
Means Ends Analysis라고 하는데 일반적인 문제 해결 기법 중 하나다. 하노이 탑 문제가 전형적인 예로 사용되지. 인지심리학 개론 서적을 찾아보면 잘 나와있다. 1975년도에 튜링상을 받은 앨런 뉴엘과 허버트 사이먼(''The Sciences of the Artificial''의 저자)이 정립했지. --JuNe
- 2006동계MT/계산내역 . . . . 1 match
일회용 수저 700* 2
- 2006컴퓨터구조스터디 . . . . 1 match
==== 3. 내용 ====
- 2007ToeflStudy . . . . 1 match
3. 테스트는 voca_test_generator.xls 파일을 사용한다(필요하신분은 [김건영], 남진석에게 연락)
- 2008리눅스스터디 . . . . 1 match
|| 7/21(월) || 사용자 계정 관리([홍기]), 리눅스 파일 시스템([지원]) || [지원], [홍기], 윤석, 혁수 ||
- 2011년독서모임/주제 . . . . 1 match
||SF류 (소설)책||파피용, 중력의 법칙, 유전자가 수상하다! ||
- 2011년돌아보기 . . . . 1 match
12월 마지막 정모에서 진행한 2011년 회고 내용입니다.
- 3,5,7빵Problem . . . . 1 match
이때, 컴퓨터가 두번째로 시작한다고 가정하고 사용자의 입력에 따라 무조건 이길 수 있는 최적해를 출력해 이기는 프로그램을 짜면 됩니다.
- 3DAlca . . . . 1 match
* 학술제 출품용으로.. -_-
- 3DCube . . . . 1 match
* 3D 개념 공부하기 위해 학습용으로 구현해 볼 만 하다.
- 3rdPCinCAUCSE/ProblemC . . . . 1 match
우리에게 주어진 것은 양팔 저울이다. 한 쌍의 구슬을 골라서 양팔 저울의 양쪽에 하나씩 올려 보면 어느 쪽이 무거운 가를 알 수 있다. 이렇게 M개의 쌍을 골라서 각각 양팔 저울에 올려서 어느 것이 무거운 가를 모두 알아냈다. 이 결과를 이용하여 무게가 중간이 될 가능성이 전혀 없는 구슬들은 먼저 제외한다.
- 3학년강의교재/2002 . . . . 1 match
빠진 부분을 채워주셔요~ 아. 그리고 석천이형. 제가 실수로 로그아웃을 안하고 쓰는 바람에..^^; 다시 로그아웃 해놨어용.. - 임인택
- 5인용C++스터디/떨림없이움직이는공 . . . . 1 match
[5인용C++스터디]
- 5인용C++스터디/메뉴와단축키 . . . . 1 match
[5인용C++스터디]
- 5인용C++스터디/버튼과체크박스 . . . . 1 match
* 다이얼로그 박스에서 만들고 사용하는 방법을 발표하면 안됨!
- 5인용C++스터디/시계 . . . . 1 match
[5인용C++스터디]
- 5인용C++스터디/움직이는공 . . . . 1 match
[5인용C++스터디]
- 5인용C++스터디/작은그림판 . . . . 1 match
[5인용C++스터디]
- 5인용C++스터디/클래스상속보충 . . . . 1 match
[5인용C++스터디]
- 5인용C++스터디/템플릿 . . . . 1 match
[5인용C++스터디]
- 8queen/손동일 . . . . 1 match
//배열안에 숫자는 설정됬고 이젠 x를 이용해서 흠....
- ACM2008 . . . . 1 match
[http://acm.pku.edu.cn/JudgeOnline/ POJ] Peking university Judge Online 이란 시스템이 있는데 온라인으로 프로그래밍 문제를 제공하고, 온라인으로 소스를 보내면 서버에서 컴파일해서 결과를 알려주는 시스템이다. 책에서는 code 의 길이를 이용한 코드 골프쪽에 초점을 맞추고 있었지만 이 프로젝트의 목표상 그럴 필요는 없을거 같다. 다만 온라인으로 제공되는 문제가 꽤 있고 평가하는 시스템이 있으므로 보다 즐겁게 놀 수 있는 '꺼리' 일 것 같다.
- ACM_ICPC . . . . 1 match
* team 'OOPARTS' 본선 38위(학교순위 15위) : [강성현], [김준석], [장용운]
- AI세미나 . . . . 1 match
http://www.math.umn.edu/~wittman/faces/main.html - Neural Network를 사용하여 사람의 얼굴 인식.
- ALittleAiSeminar . . . . 1 match
== 이용 툴들(설치할 것) ==
- AM/계산기 . . . . 1 match
|| 곽세환 || Upload:CalcMFC-세환.zip || 일반용 버튼기능만 구현 ||
- ASXMetafile . . . . 1 match
일종의 윈도우즈미디어 메타파일. XML 스크립트로 이루어져있고 이 메타파일을 작성함으로써 플레이어를 건드리지 않고도 다양한 기능을 사용할 수 있다.
- AVG-GCC . . . . 1 match
Usage: AVR-GCC.EXE [options] file... ''' 사용법 : AVR-GCC.EXE [옵션] FILE... '''[[BR]]
- AcceleratedC++/Chapter1 . . . . 1 match
interface : 객체의 타입으로 묵시적으로 내포 되어 있는 것은 인터페이스로서, 해당 타입의 객체에 사용 가능한 연산(operation)들의 집합을 말합니다. name을 string 타입의 변수(이름 있는 객체)로 정의 하게 되며, 우리는 string으로 할 수 있는 모든 일들을 name으로 하고 싶다는 뜻을 묵시적으로 내포하게 됩니다.
- Ajax2006Summer/프로그램설치 . . . . 1 match
* 필요한 것은 '''Eclipse 3.2 Platform Runtime Binary''' 입니다. 용량은 33메가 정도입니다 : [http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.2-200606291905/eclipse-platform-3.2-win32.zip LINK]
- AnEasyProblem . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- AnalyzeMary . . . . 1 match
NeoCoin은 02년도 기말 시험에서 너무나 시간이 없게되는 상황을 맞이 하였다. 학교 출발까지 15분, 통학 시간 1:30 분 남은 상태에서 밥먹으면서 교수님에 성향 대하여 AnalyzeMary를 하고 15분은 강의 노트에 대한 AnalyzeMary , 그리고 도착전까지 열심히 외웠다. 도착 직전까지 외운 내용 조차 시험에 그대로 출제되어 있었다. 결국, 시험의 1문제의 부분적것 외에 전부 정답 작성이 가능했다. 여태까지 살아오면서, 최고의 효율이란 무엇인가를 느낄수 있었다. --NeoCoin
- AntOnAChessboard . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- AssemblyStudy . . . . 1 match
== 용어 정리(누구든 채워주세요. 페이지를 새로 만들어도 좋습니다.) ==
- AustralianVoting . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- AustralianVoting/문보창 . . . . 1 match
Presentation Error를 잡아야 한다. 수행시간과 메모리사용량 또한 만족할 만한 수준이 아니다.
- Basic알고리즘/63빌딩 . . . . 1 match
|| 이름 || 사용언어 || 코딩 ||
- Basic알고리즘/팰린드롬/임인택 . . . . 1 match
== 사용 ==
- Bicoloring/문보창 . . . . 1 match
평이한 문제. 이산수학이 생각난다. if...else 구문을 사용할때 모든 조건을 프로그램에서 포함하는지 주의깊게 코딩해야 한다.
- Bigtable/분석및설계 . . . . 1 match
1. 오프셋을 이용한 기록 -> 원형 자료구조
- BirthdatCake/하기웅 . . . . 1 match
이것을 이용해서 a, b를 for문을 통해 변화 시켜가면서 위에 있는 점과 아래에 있는 점이 개수가 똑같은 때의 기울기를 찾는 방식.
- BirthdayCake . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- BlueZ . . . . 1 match
http://tistory.izyou.net/entry/BlueZ-라이브러리를-이용한-리눅스-Bluetooth-프로그래밍
- BookShelf . . . . 1 match
1. [실용주의프로그래머]
- BookTemplate . . . . 1 match
사용법은 NoSmok:ISBNMacro 를 참고하세요.
- Boost/SmartPointer . . . . 1 match
* boost 라이브러리는 헤더 파일만이 존재한다. 모든 구현을 헤더 파일에 해 놓았기 때문이다. 바로 필살 헤더와 구현 분리하기 귀잖어 기술....본인은 애용한다...
- BoostLibrary/SmartPointer . . . . 1 match
* boost 라이브러리는 헤더 파일만이 존재한다. 모든 구현을 헤더 파일에 해 놓았기 때문이다. 바로 필살 헤더와 구현 분리하기 귀잖어 기술....본인은 애용한다...
- BuildingParserWithJava . . . . 1 match
자바를 이용한 파서만들기, 기능추가하기
- BuildingWikiParserUsingPlex . . . . 1 match
현재 PyKi라는, [1002]가 개인적으로 만들어서 사용중인 위키에서의 parser 클래스 중 일부 코드이다.
- BusSimulation/상협 . . . . 1 match
while(m_CurrentMinute!=m_DueMinute) //사용자가 입력한 목적 시간 전까지 시간을 증가 시킨다.
- BusSimulation/태훈zyint . . . . 1 match
STL을 이용하고 함수별로 나누는 리팩토링이 필요하다 -ㅅ-
- C++ . . . . 1 match
C++은 범용성을 가진 컴퓨터 언어이다. 이는 정적으로 분류된(?) 다중 패라다임을 지원하는 언어이다. ( [:절차적프로그래밍 절차적 프로그래밍], [:GenericProgramming 제네릭 프로그래밍]을 지원한다.) 1990년대에 C++은 가장 상업적으로 인기가 있는 언어중의 하나가 되었다.
- C++Seminar03 . . . . 1 match
1. 사회자 한명과 2인 1PC 또는 3인 1PC 로 PC 1대당 한조가 되어 PairProgramming 식으로 진행. 사회자는 간단한 개념을 설명하고 개념에 대한 실습(?) 또는 적용된 코드작성을 Pair 해본다. (이런식으로 진행할경우 장소에 문제가 될 수도 있을것 같네요. 실습실 하나를 제로페이지가 점령할수도 없는 일이고..-_- 강의실에서 간단한 설명 -> PC 실로 이동.. 정도가 대안이 될까요? ) --["임인택"]
- C++스터디_2005여름/도서관리프로그램/문보창 . . . . 1 match
우선 스터디 시간에 버벅대서 마무리 짓지 못한거 미안하게 생각합니다. 자신이 꼭 스스로 프로그램을 짜시고, 그런 후에 제 코드와 비교해 보시기 바랍니다. 저보다 여러분이 잘한 점, 혹은 제가 잘한 점이 무엇인지 생각해 보시기 바랍니다. 어떤게 더 확장성과 재사용성에 유리한지 곰곰히 생각해보세요.
- C++스터디_2005여름/학점계산프로그램/문보창 . . . . 1 match
fin.ignore(100, ' '); // 사용자 지정 문자가 나올때까지 읽어 버리는 함수
- C++스터디_2005여름/학점계산프로그램/허아영 . . . . 1 match
제 소스가 C++의 특징인 OOP를 사용하지 않은 껍데기 소스라고 보창오빠는 말하더군요 ㅠㅠ( 상처ㅡㅡ++++++ )
- C/Assembly/포인터와배열 . . . . 1 match
// 마지막 k변수는 index 주소를 사용해 메모리를 목사하고 있다.
- C99표준에추가된C언어의엄청좋은기능 . . . . 1 match
* 흐음... C에서 동적할당을 하기 위해서는 new나 malloc 정도의 키워드를 사용해야 하지 않나요?? 혹시.. 컴파일 옵션을 달리해야 하는??;; - [이승한]
- CPPStudy . . . . 1 match
|| [5인용C++스터디] ||
- CPPStudy_2005_1/STL성적처리_2_class . . . . 1 match
구현특이사항 : vector이용
- CPlusPlus_Tip . . . . 1 match
1. [SVN 사용법]
- CarmichaelNumbers/문보창 . . . . 1 match
중간에 발생하는 버그를 잡는데 대부분의 시간을 허비했다. 65000 이란 수는 작지만 65000의 제곱은 int형의 범위를 벗어난다. ㅡㅡ; 오버플로우를 교모히 이용한 함정에 고생했다.
- CategoryCategory . . . . 1 match
위키위키에서 분류를 지정하는데 Category를 보통 사용합니다. 위키위키의 분류는 [역링크]를 통해서 구현됩니다.
- ChangeYourCss . . . . 1 match
UserPreferences 에서 로그인후 자신이 원하는 css 를 설정해줄 수 있다. 각자가 취향에 맞는 스타일 시트를 골라서, 만들어서 사용해보자. ^^;
- CheckTheCheck . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- ChocolateChipCookies . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- Chopsticks/문보창 . . . . 1 match
{{| min<sub>i+2<=k</sub>{ D[a-1][k] } |}}은 앞의 계산 결과를 이용하여 O(1) 시간만에 계산 할 수 있고, a 는 K + 8 번 있으므로 O(kn) 복잡도가 걸린다.
- CincomSmalltalk . . . . 1 match
* [http://zeropage.org/pub/language/smalltalk_cincom/VM-Windows.tar.gz Windows용 VM]
- ClassifyByAnagram/sun . . . . 1 match
* genKey() 메소드의 성능 개선. qsort2([http://www.cs.bell-labs.com/cm/cs/pearls/sortanim.html ProgrammingPerals 참고]) 이용.
- Cocos2d . . . . 1 match
* 스마트 TV와 안드로이드 디바이스에서 Cocos2d를 활용하여 게임 진행현황을 보여주기로 함.
- CommonPermutation . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- CompilerTheory/ManBoyTest . . . . 1 match
Donald Knuth 가 Algol 60의 구현 정도를 판변하기위해서 만든 프로그램. 테스트의 목적은 올바르게 구현된 scoping rule, call-by-name의 구현 정도를 판별해서 boys(algol 60 구현물)들중에서 men (쓸만한 놈)을 가려내는 용도로 고안되었습니다.
- CompleteTreeLabeling . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- ComponentBasedDevelopment . . . . 1 match
http://ww5.introcom.net/~nkcho/ 관련 내용 자료를 많이 링크해 두셨다.
- ComposedMethod . . . . 1 match
당신이 가장 중요하게 Composed Method를 쓸때는, 당신이 뭔가를 구현하고 있을때 새로운 책임을 발견했을때이다. 당신이 둘 이상의 메세지를 다른 객체로 보낼때, 수신 객체에서는 그 메세지들을 합치는 Composed Method를 만들 수 있다. 이러한 Method들은 당신의 시스템의 다른 부분에서도 유용하게 쓰일 것이다.
- ComputerGraphicsClass/Exam2004_1 . . . . 1 match
Homogeneous Coordination 에 대해 쓰고 왜 Computer Graphics 분야에서 많이 이용되는지 쓰시오
- ComputerNetworkClass/Report2006/BuildingWebServer . . . . 1 match
* 제작 작성해본 결과 HTTP Application 의 기본적인 사항은 에코서버의 연장선에 있습니다. RFC1945 를 확인하면 아주 단순한 형태의 구현만으로도 충분히 간단한 웹 서버의 동작을 구현하는 것이 가능합니다. (물론 이는 웹 브라우저가 RFC1945 의 HTTP-message BNF 의 가장 단순한 형태를 지원한다는 가정하에서 입니다.) CGI, 로드밸런싱을 이용할 수 있을 정도의 구현이 아닌이상 이는 단순한 에코서버의 연장선과 크게 다르지 않습니다. (어쩌면 모든 네트웍 프로그램이 에코서버일지도 -_-;)
- ConnectingTheDots . . . . 1 match
BoardPanel - View. 실제 Swing 등 구체적 라이브러리들을 이용, 실제 표현을 한다. BoardPresenter 와 상호참조 관계를 가진다.
- ConstructorParameterMethod . . . . 1 match
void setXnY(int x, int y) // smalltalk에서는 setX:xNum y:yNum이라는 메세지를 사용한다.
- CooperativeLinux . . . . 1 match
=== 스크린 샷 (Vnc를 이용해서 본 X-Window) ===
- Counting . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- Counting/문보창 . . . . 1 match
스터디 시간에 상섭이형이 발표한 점화식 이용.
- Counting/황재선 . . . . 1 match
* 동적 프로그래밍 기법을 사용.
- CppStudy_2002_2/STL과제/성적처리 . . . . 1 match
cout << "STL을 이용한 성적관리 프로그램" << endl;
- CppStudy_2002_2/슈퍼마켓 . . . . 1 match
1. 클래스를 이용 (좀 더 체계적으로)
- CrcCard . . . . 1 match
Class - Responsibility - Collaboration Card. 보통은 간단한 3 x 5 inch 짜리의 인덱스카드(IndexCard)를 이용한다.
- C프로그래밍 . . . . 1 match
매크로를 사용해서
- Data전송 . . . . 1 match
1. Get : 주소에 넣어서 보내는 방식 사용자의 data 가 표시
- Debugging/Seminar_2005 . . . . 1 match
== 디버깅 프로그램 사용방법 시연 ==
- DependencyWalker . . . . 1 match
해당 Application 의 사용 dll 을 알아볼 때 편리.
- DermubaTriangle . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- DesktopDecoration . . . . 1 match
써보면 유용하고, 예쁘다. ㅡ.ㅡ;
- DevelopmentinWindows/APIExample . . . . 1 match
= 윈도우즈 API를 이용한 예제 프로그램 =
- DevelopmentinWindows/UI . . . . 1 match
윈도우즈에서 제공되는 사용자 인터페이스.
- Direct3D . . . . 1 match
기본적인 클래스인 CD3DApplication 이 있고, 이것을 상속받은 CMyD3DApplication을 사용하여 하고싶은 일을 할 수 있다.
- DoWeHaveToStudyDesignPatterns . . . . 1 match
다음은 우선성의 문제입니다. 과연 DesignPatterns라는 것이 학부시절에 몇 달을 투자(실제로 제대로 공부하려면 한 달로는 어림도 없습니다)할만 한 가치가 있냐 이거죠. 기회비용을 생각해 봅시다. 좀 더 근본적인 것(FocusOnFundamentals)을 공부하는 것은 어떨까요?
- DoubleDispatch . . . . 1 match
argument에 메세지를 보내라. selector에다가 receiver의 클래스 네임을 덧붙인다. receiver를 argument로 넘긴다. 이 패턴을 사용한 후의 Integer, Float 코드는 다음과 같다.
- Doublets . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- Doublets/황재선 . . . . 1 match
* Graph 이용. 시작 단어에서 끝 단어의 path 검색은 dfs로 구현.
- DrPython . . . . 1 match
wxPython 을 사용해서 만든 Python IDE.
- EffectiveSTL . . . . 1 match
* Scott Meyers's Trilogy 라고 불리는 시리즈의 3번째 것이다. ''(EC++, MEC++, ESTL)'' 나의 경우에는 일단 CVS에 대한 정리를 끝내고 한서로 읽을 생각이며, 읽으면서 기존의 부분에 보충과 함께 약간의 정리를 해나갈 계획이다. 번역서가 곽용재씨가 직업한 것이라서 한서에대한 걱정도 적은편이다. - [eternalbleu]
- EightQueenProblem/lasy0901 . . . . 1 match
같은 대각선에 있다면 x좌표와 y좌표의 합이나 차가 같다는 사실을 이용해서 프로그래밍했습니다.
- EightQueenProblem/nextream . . . . 1 match
처음엔 2차원 배열 메모리 공간을 두고 메모리 상에 체크해 가며 루프를 돌릴까 하다가 생각을 바꿔서 재귀호출을 이용하게 되었습니다. 첫 문제에서 일단 제일 첫 퀸은 무조건 (0,0) 이라고 고정하고 재귀를 두번째 퀸부터 돌렸는데, 오히려 나중에 이 생각이 두번째 문제 풀때 딱 한글자만 바꿔서 적응이 되는 것을 가능케 한것 같습니다.
- EightQueenProblem/강인수 . . . . 1 match
* 파이썬으로 한거(2003 데블스 캠프 대비용)
- EightQueenProblem/밥벌레 . . . . 1 match
procedure SetQueens(n: Integer); // 퀸 배치하기. 이 소스의 핵심함수. n은 현재 사용안한다. 처음엔 RandomSeed로 쓰려했음..-_-;
- EightQueenProblem2 . . . . 1 match
||도전자||총수정시간||최종 소스라인수(주석제외)||사용언어||
- EightQueenProblemSecondTry . . . . 1 match
이번에는 소스코드를 모두 삭제하고, 맨땅에서 다시 시작을 합니다. EightQueenProblem을 만족하는(즉 하나의 해법만 얻는) 프로그램을 다시 한번 작성합니다. 자신이 처음 EightQueenProblem을 풀면서 얻었던 통찰(insight)만을 이용하고, 가능하면 더 깔끔한 해답을 얻으려고 노력하면서 말이죠.
- English Speaking/The Simpsons/S01E04 . . . . 1 match
* 내용 : 다른 가족들을 보고 상심한 호머가 모의 술집에서 술을 마시는데 다른 집을 배회하던 무리들을 찾는 경찰들이 들어온다. 다행히 호머는 그게 심슨 가족들이었단 것을 들키지 않지만 자신의 자녀들에 대해 나쁜 말을 하는 바니와 싸움이 붙는다.
- EnglishSpeaking/2011년스터디 . . . . 1 match
* [송지원] - 지난 번에 심슨 따라하기 보다 역할을 분담하니 조금 수월해졌다는 느낌이었습니다. 특히, 재미있는 장면을 선정해서 지난 번보다 조금 더 몰입할 수 있었어요. (지난 번엔 마지가 너 고민 있는듯 하다 뭐 이런 내용이었는데 이번엔 온 가족이 Scrabble 게임을 하는 장면 ㅋㅋ) Free Talking을 하면서 느낀 건 맨 처음 영어 스터디를 시작할 때보다 말문이 많이 트였다는 점. 이젠 6피에서 영어 쓰는 것도 그렇게 쪽팔리기만 하지는 않네요.
- EnglishSpeaking/TheSimpsons/S01E03 . . . . 1 match
* 내용 : 호머가 직장을 잃고 리사가 새로운 직장을 알아봐주는, 그리도 가족들이 그를 격려하는 장면.
- EnglishSpeaking/TheSimpsons/S01E04 . . . . 1 match
* 내용 : 다른 가족들을 보고 상심한 호머가 모의 술집에서 술을 마시는데 다른 집을 배회하던 무리들을 찾는 경찰들이 들어온다. 다행히 호머는 그게 심슨 가족들이었단 것을 들키지 않지만 자신의 자녀들에 대해 나쁜 말을 하는 바니와 싸움이 붙는다.
- EnglishSpeaking/TheSimpsons/S01E05 . . . . 1 match
* 내용 : 넬슨과의 전쟁을 위해 작전을 짜는 바트와 헤르만, 그리고 아브라함(바트의 할아버지)
- EnglishWritingClass/Exam2006_1 . . . . 1 match
= 시험 내용 =
- EnterpriseJavaBeans . . . . 1 match
Lomboz - ["Eclipse"] 플러그인. 내부적으로 XDoclet를 이용, Home & Remote & Local Interface 를 자동으로 생성해준다.
- ErdosNumbers/차영권 . . . . 1 match
Time Limit 나올꺼 같았다. 루프의 사용이 깔끔하지 못한거 같다.
- EuclidProblem/문보창 . . . . 1 match
예전에 정수론 책에서 본 유클리드 알고리즘의 응용문제이다. AX + BY = GCD 에서 gcd와 x, y 구하는 법을 [문보창]페이지에 원래 가지고 있었기 때문에 단순한 copy&paste로 문제를 풀 수 있었다.
- EuclidProblem/이동현 . . . . 1 match
long Eucl(long a, long b){ //a가 큰수. a=bq+r공식을 변형 r=a-qb 을 이용하여 a,b의 계수 계산
- Expat . . . . 1 match
파이선의 기본 XML 파서로 채택되어 이용되고 있다. 정직 형님의 강력 추천에도 불구 MS 계열의 개발자는 좀 꺼리는 듯 하다. ㅡ.ㅡ;; (사람은 익숙해지면 못버린다. ㅋㅋ)
- ExplicitInitialization . . . . 1 match
초기화에 대해서는 딱히 정해진 좋은 방법이 없다.(상황에 따라 택일해서 쓰라는 말) 이 패턴은 유연성보다는 가독성을 중시한다. 모든 초기화를 하나의 메소드에 때려넣는 방법이다. 유연성은 떨어질 수 밖에 없다. 변수 하나 추가하자면 ExplicitInitialization 메소드를 수정해야만 한다는 것을 기억하고 있어야 하기 때문이다. ExplicitInitialization은 LazyInitialization보다 비용이 많이 든다. 모든 변수를 인스턴스가 생성될때 초기화 하기 때문이다.
- ExploringWorld/20040315-새출발 . . . . 1 match
* VMWare를 이용해서 PHP는 리눅스에서 했다.
- ExploringWorld/참고링크 . . . . 1 match
http://www.debianusers.org - 한국 데비안 사용자 모임
- ExtremeBear/VideoShop/20021105 . . . . 1 match
* CRC 를 사용했고 프로그램의 대부분은 완성했다.
- ExtremeBear/VideoShop/20021106 . . . . 1 match
* Date Class 사용법을 알게 되었다.
- FactorialFactors . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- FactorialFactors/이동현 . . . . 1 match
하지만 k가 소수라면 이러한 방법이 통하지 않는다. 소수는 나름의 판별원칙에 따라 판단. 소수판별에는 수학공식이 이용되는데 이것은 생략 ^^
- Fmt . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- FooBarBaz . . . . 1 match
CS에서 자주(혹은 가끔) 쓰이는 관용기호들.
- FromDuskTillDawn . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- GameProgrammingGems . . . . 1 match
이 책의 저자는 수십 명이다. 10명 정도는 알고 있어도 수십 명이 지은 책은 처음 일 것이다.... 나도 그렇다 ^_^; 이 책은 수십 명의 게임 프로그래머들이 자신의 노하우를 적어놓은 책이라고 하는 편이 정확하다. 즉 정보의 공유를 주장하면서 만든 책이 된다. 물론 자신이 열심히 만든 소스를 그냥 공개하자~ 라는 것은 아니다(그래주면 고맙겠다 -.-) 허나 자신은 어떤 알고리즘으로 구현했다던가, 혹은 VC++과 다이렉트 엑스를 사용할 때는 어떻게 하면 어떤 환경에서 구현하면 좋다던가 하는 건 알려주면 고맙겠지? 이 책은 그런 목적으로 쓰여진 책이 되겠다.
- Genie/CppStudy . . . . 1 match
* 시작해봅니다. 벌써 취침시간이 지나버린 관계로 내용입력은 내일부터..-_-
- Google/GoogleTalk . . . . 1 match
수용할
- GridComputing . . . . 1 match
* [http://gridcafe.web.cern.ch/gridcafe/animations.html Flash를 이용한 쉬운 그리드 설명]
- HanoiProblem/상협 . . . . 1 match
* 위 식을 잘 활용
- HardcoreCppStudy/첫숙제/Overloading/임민수 . . . . 1 match
함수의 이름은 같게 하되 전달인자들의 개수나 형식에 따라 다르게 사용될 수 있도록 정의하는것을 말함..
- Hartals . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- HaskellLanguage . . . . 1 match
이전 [프로그래밍잔치] 때 사용했었던 [FunctionalLanguage].
- HelpForBeginners . . . . 1 match
처음 위키위키를 방문하신다면 무작정 다른 페이지를 고치려 하지 마시고 [위키모래상자]같은 곳에서 위키위키에 사용되는 간단한 문법을 테스트해보시기 바랍니다.
- HelpOnProcessors . . . . 1 match
다음과 같이 코드 블럭 영역 최 상단에 {{{#!}}}로 시작하는 프로세서 이름을 써 넣으면, 예를 들어 {{{#!python}}}이라고 하면 그 코드블럭 영역은 {{{plugin/processor/python.php}}}에 정의된 processor_python()이라는 모니위키의 플러그인에 의해 처리되게 됩니다. {{{#!python}}}은 유닉스의 스크립트 해석기를 지정하는 이른바 ''bang path'' 지정자 형식과 같으며, 유닉스에서 사용하는 목적과 동일한 컨셉트로 작동됩니다. (즉, 스크립트의 최 상단에 지정된 스크립트 지정자에 의해 스크립트의 파일 나머지 부분이 해석되어 집니다.)
- HelpOnSmileys . . . . 1 match
=== 사용례 ===
- HolubOnPatterns . . . . 1 match
* [http://www.yes24.com/24/Goods/2127215?Acode=101 Holub on Patterns: 실전 코드로 배우는 실용주의 디자인 패턴] - 번역서
- HostFile . . . . 1 match
host 화일을 이용하면, 아직 해당 도메인 이름이 DNS Server에서 셋팅이 이루어지지 않았어도 도메인으로 해당 웹페이지 접근이 가능하다. 웹 프로그래밍을 할때 virtual host 로 서브 사이트들 구분하며 개발시 편리.
- HotterColder . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- HowBigIsIt? . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- HowManyFibs? . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- HowManyFibs?/황재선 . . . . 1 match
반복적인 계산을 줄이기 위해서, bottom-up 방식으로 수열을 처음부터 계산하였다. 계산된 이전 값을 사용하여 다음 수열을 빠르게 얻을 수 있었다. Dynamic Programming을 처음으로 해보았다 :)
- HowManyPiecesOfLand? . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- HowManyPiecesOfLand?/문보창 . . . . 1 match
Closed Form 구하는데 약 3~4시간 걸린 것 같다. 계차수열을 이용해서 다음과 같은 Closed Form을 구했다.
- HowManyZerosAndDigits/문보창 . . . . 1 match
시간제한이 1분짜리 문제다. Digits의 개수를 세는 것은 로그를 이용하면 간단히 해결되나, Zeros의 개수를 세는 방법이 딱히 떠오르지 않는다.
- HowToCodingWell . . . . 1 match
* 부작용이 있어요. 절망감이 몰려옵니다....ㅜㅜㅜ - [김수경]
- ISBN_Barcode_Image_Recognition . . . . 1 match
* 영상을 두 가지 색으로만 표현하여, Object 인식을 용이하게 하기 위함
- ITConversationsDotCom . . . . 1 match
KentBeck 의 음성을 처음으로 들어봤다. 그동안 Toeic L/C 에서 들어오던 억양과는 조금 다른거 갈다. 연설의 내용을 이해하는 것도 좋겠지만, 혼자 옹알거리면서 억양을 익히는 것도 좋을 것 같다. - [임인택]
- IdeaPool/PrivateIdea . . . . 1 match
* 웹지도 브라우저에 대한 정보수집합니다. 필요한 지식이나 필요한 것들, 유용한 것들 전부 알려주세요. - [상욱]
- IntegratedDevelopmentEnvironment . . . . 1 match
종종 일반 Text editor가 너무나 많은 기능을 제공하는 나머지 IDE랑 헷갈리기도 한다. vim의 plugin을 깔거나 sublime을 잘 설정하면 IDE부럽지 않게 사용할수 있으나 해당 프로그램은 기본적으로 TextEditor이다. plugin을 통해서 지원하는 기능은 사실상 통합된 기능이라 보기 어렵기 떄문이다.
- IntentionRevealingMessage . . . . 1 match
어떻게 된건가? 의사소통이다. 한 줄의 메소드가 의사소통에 가장 중요하다.(?) 사용자의 입장에서는 그냥 highlight라는 메세지에 영역만 넣어서 보내면 되는 것이다. 사각형을 뒤집음으로써 highlight된다는 사실을 몰라도 되는 것이다. IntentionRevealingMessage는 컴퓨터를 위한다기보다는 사람을 위한 가장 극단적인 형태의 패턴이다. 의도와 구현을 분리하자는 것이다. 메세지의 이름을 그 메세지 내에서 어떻게 되는건가로 짓지 말고, 그 메세지가 무엇을 하는건가로 짓자.
- IntentionRevealingSelector . . . . 1 match
컬렉션을 사용하는 유저의 입장에서 각 컬렉션이 서치를 어떻게 하는지는 알 바 아니다. 알고 싶지도 않을 것이다. 바꿔보자.
- InterestingCartoon . . . . 1 match
그냥 페이지를 나누어도 상관없을듯 합니다. NoSmok 의 경우 NoSmok:애니메이션명대사 , NoSmok:만화속명대사 가 따로있긴 합니다. Responsibility 가 2개 이상이라 느껴진다면 이를 분리하는것도 하나의 방법이겠죠. (한편으로는, 이 페이지의 컨텐츠에 비해 너무 Rigid 하게 나가는 거 아닌가 하는 생각이 듭니다. 이 페이지로부터 다른 사람이 얻어가는, 또는 자신이 이익이 얻는 부분은 어떤건가요? 또는 어떠한 내용이 있다면 사람들로부터 더 활발한 이야기꺼리를 끌어낼 수 있을까요?) --[1002]
- IsBiggerSmarter? . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- IsThisIntegration? . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- ItNews . . . . 1 match
* asdfnews (그 주제의 폭이 '잡다' 도 허용된다면 -_-;) http://asdfnews.org
- JAVAStudy_2002/진행상황 . . . . 1 match
core java에 나온 내용이 어렵구만.. [[BR]]
- JCreator . . . . 1 match
Visual Studio 를 이용해본 사람들이라면 금방 익힐 수 있는 자바 IDE. 보통 자바 IDE들은 자바로 만들어지는데 비해, ["JCreator"] 는 C++ 로 만들어져서 속도가 빠르다. Visual C++ 6.0 이하 Tool 을 먼저 접한 사람이 처음 자바 프로그래밍을 하는 경우 추천.
- JMSN . . . . 1 match
* 사용자의 일부 properties(Foward list, Reverse list, Allow list, Block list, GTC setting, BLP setting)-$1는 서버에 저장된다. $1은 client에 캐시된다. client에 캐시된 $1를 최신의 것으로 유지해야 한다.
- JTDStudy/첫번째과제/원희 . . . . 1 match
* 방법은 여러 방법이 있지. 만약 100자리라면, int 형이 정수값만 가지고 나머지는 버리는 특성을 이용해서 123%10 하면 3이 나오고, 12%10 하면 2 나오고 나머지는 1이고... 이런식으로 숫자른 나누어 줄 수도 있고, 입력시에 어짜피 String형으로 받아지기 때문에 문자 하나씩 끊어 읽게끔 해도 되지^^ 조금만 생각해보면 방법이 나올 수도 있어 - [상욱]
- JTDStudy/첫번째과제/정현 . . . . 1 match
벡터를 이용해 번호를 뽑는 것은 효율적인것 같진 않지만, 새로운 시도라서 신선했다
- Java/DynamicProxy . . . . 1 match
Java [Java/DynamicProxy] 라이브러리와 DecoratorPattern 을 이용하여 AOP 적인 구현이 가능. Java 1.3 이후부터 지원.
- Java/JDBC . . . . 1 match
* 9i, release2 용 드라이버, 다른 버전은 oracle 에서 다운 받는다.
- Java/JSP . . . . 1 match
= 사용예 =
- Java/ModeSelectionPerformanceTest . . . . 1 match
=== 네번째. Inner Class 에 대해 Command Pattern 의 사용. ===
- JavaScript/2011년스터디/JSON-js분석 . . . . 1 match
* toJSON에서 key를 파라메터로 넘기는 이유(코드내에서 사용하지는 않는다)
- JavaStudy2003/첫번째과제 . . . . 1 match
== 과제 내용 ==
- JavaStudy2004/이용재 . . . . 1 match
죄송, 이름만 보고 04학번 '김용재'라고 생각하고 반말을 했네요. --[강희경]
- JavaStudy2004/조동영 . . . . 1 match
//사용이 안되었네요.
- JoelOnSoftware . . . . 1 match
[임인택]은 ZPHomePage보다는 ZeroWiki를 이용하기 때문에 자유게시판을 잘 안보는데, 우연히 갔다가 JoelOnSoftware에 관한 글이 올라온 걸 보게 되었다. 이전처럼 자유게시판 업데이트 되었을때, RecentChanges에 반영되었으면 좋으련만...
- JollyJumpers . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- JollyJumpers/iruril . . . . 1 match
// input()은 getIntArray()에서 사용
- JollyJumpers/강희경 . . . . 1 match
*binaryMap이라는 bool형 리스트를 사용하여 gap의 중복을 검사
- JollyJumpers/문보창 . . . . 1 match
bool bitJolly[MAX]; // bitJolly[0]은 사용하지 않는다.
- JollyJumpers/임인택2 . . . . 1 match
== 사용예 ==
- JollyJumpers/임인택3 . . . . 1 match
위의 코드에 다음과 같이 메시지를 받는 함수를 작성하면, 이 함수를 생성하고 메시지로 리스트를 전달하면 똑같이 이용할 수 있다.
- JollyJumpers/황재선 . . . . 1 match
1. {{{~cpp TreeSet}}} 을 사용했다. sort에 log(n)이 소요된다.
- KentBeck . . . . 1 match
ExtremeProgramming의 세 명의 익스트리모 중 하나. CrcCard 창안. 알렉산더의 패턴 개념(see also DesignPatterns)을 컴퓨터 프로그램에 최초 적용한 사람 중 하나로 평가받고 있다.
- Komodo . . . . 1 match
가장 인상적인 기능을 뽑는다면 Rx(Regular Expression) Toolkit 을 들 수 있다. 이를 이용하면 Regular Expression 에서 각 그룹에 따른 변수들이 어떻게 뽑아져나오는지 쉽게 눈으로 확인할 수 있다.
- LC-Display/문보창 . . . . 1 match
쉽게 생각하고, 구상을 하지 않고 바로 코딩을 한 후유증을 여실히 보여준다. 수행시간이나 메모리사용이 만족스럽지 못하고, 코드또한 가독성이 떨어진다. 추후 리펙토링이 필요하다.
- LIB_2 . . . . 1 match
이 프로그램이 복귀 가능하게 만들 경우 TSR을 이용한다..근데 지금은 필요 없는듯...
- LazyInitialization . . . . 1 match
별로 안쓸듯하지만... 켄트벡 왈 : 일단은 ExplicitInitialzation으로 출발을 하고, 상속될 거 같으면 LazyInitialization을 사용한다.
- LearningToDrive . . . . 1 match
* 하지만. 한편으론 '이상적인 만남' 일때 가능하지 않을까 하는 생각도. Communcation 이란 상호작용이라고 생각해볼때.
- LightMoreLight . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- LightMoreLight/문보창 . . . . 1 match
간단한 문제였으나, 처음에 문제 분석을 잘못하여 시간을 소비했다. 정수론 문제의 경우 문제분석만 잘해 준다면 의외로 쉽게 풀리는 것 같다. 수행시간과 메모리 사용량이 많다. 보다 좋은 알고리즘을 생각해야 한다.
- LinkedList . . . . 1 match
|| 작성자 || 소스 || 사용 언어 ||
- LinkedList/세연 . . . . 1 match
DeleteMe ) 내용은 LinkedList 가 아니라 Stack의 구현 사항인데, 문제 사항에는 LinkedList라고 해놨네요.
- LinkedList/영동 . . . . 1 match
== 자유공간리스트(?) 사용 ==
- Linux/ElectricFence . . . . 1 match
리눅스에서 사용가능한 CrtDbg 정도로 생각하면 좋다.
- Linux/MakingLinuxDaemon . . . . 1 match
2. setsid 이용 새로운 세션 생성, 현재 프로세스의 PID가 세션 제어권을 가지도록 설정
- Linux/탄생과의미 . . . . 1 match
* 1991년 헬싱키의 대학생인 리누즈 토발즈(Linus Tovalds)가 개인적인 관심으로 작은 Unix시스템 구조인 Minix의 PC용 커널을 개발로부터 출발하게 되었다.
- LinuxProgramming/QueryDomainname . . . . 1 match
표준 BSD socket 을 이용한 소스. 리눅스에서 컴파일해야함. 대충 바꾸면 윈도우에서도 할 수 잇음.
- LoveCalculator/허아영 . . . . 1 match
그럼 수고하세용~ㅎ 좋은하루되궁..ㅎ 문제 한글루 내구..ㅠ.ㅜㅎ - [조현태]
- LuaLanguage . . . . 1 match
게임 프로그래머들이 embedding language 로 많이 선호하는 언어. (embedding 시 용량이 작고 문법이 간편하다는점에서)
- MFC/HBitmapToBMP . . . . 1 match
// [hBitmap] : 이미지가 저장되어 있는 CBitmap (HBITMAP으로 변화하여 사용)
- MFCStudy2006/Server . . . . 1 match
== 세부내용 ==
- MFC_ . . . . 1 match
4. [CxImage 사용]
- MIB . . . . 1 match
* ["MIB"]들은 일반인들이 알수 없는 집단이며 검은 양복을 착용하고 다닌다.
- MIT박사가한국의공대생들에게쓴편지 . . . . 1 match
내용을 보면 'MIT 박사' 가 아니고, 'MIT 박사과정에 있는 어떤 사람'이 맞는 것 같지만, 일단, 퍼온곳에 그리 되어 있으므로..., 저작권에 걸리진 않겠죠? 여러분들도 공대생이니까요. :-)
- MacroMarket . . . . 1 match
moinmoin의 Macro 관련 페이지. {{{~cpp [[TableOfContents]], [[BR]] }}} 등등은 일종의 moinmoin 플러그인으로 파이썬을 이용, 향후 추가가 가능합니다.
- MagicSquare/정훈 . . . . 1 match
내용을 보시면 무지 허접합니다~..^^;
- MajorMap . . . . 1 match
BCD가 이진수 표현에 비해 갖는 장점 중 하나는, 표현할 수 있는 숫자 크기에 제한이 없다는 것이다. 다른 자릿수를 추가하려면, 그저 새로운 네 비트를 추가하기만 하면 된다. 이와는 대조적으로, 이진수 형식으로 표현된 숫자는 그 숫자를 표현하기 위해 사용되는 비트, 즉 8, 16, 32, 또는 64 비트 등에 의해, 표현할 수 있는 가장 큰 숫자가 제한된다. --from [http://terms.co.kr/]
- MapBrowserSite . . . . 1 match
* [http://www.congnamul.com/ 콩나물맵 브라우저] 이하는 콩나물을 사용하는 사이트들
- MedusaCppStudy . . . . 1 match
strlen()함수 이용하시오 --[강희경]
- MentorOfArts . . . . 1 match
서강대학교 컴퓨터 학과 스터디그룹. Interwiki 로는 '''{{{~cpp Moa:}}}''' 를 이용합니다.
- Microsoft . . . . 1 match
마소는 세계에서 가장 큰 소프트웨어 회사이다. 대략 직원수만 50000명으로 각국에 분포해있다. 이 회사는 1974년 빌게이츠, 폴 앨런이 창업했다. 본사는 미국 워싱턴 레드몬드에 위치해 있다. 마소는 전세계적 규모로 다양한 장비들에 사용되는 소프트웨어를 개발, 생선, 라이센싱, 지원한다. 이 회사의 가장 대중적인 제품은 윈도우즈 운영체제 시리즈와 오피스 제품군이다. 이들은 각각 데스크탑 컴퓨터 시장에서 거의 독점적위치에 있다.
- MineSweeper . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- MineSweeper/Leonardong . . . . 1 match
작은 단계를 밟아가면서 TDD를 적용하다 보니까 시간이 많이 걸렸다. 게다가 모르는 파이선 문법 찾는데도 시간이 걸렸다. 파이선의 새로운 기능을 알게 되어 신기하다. 다음 문제를 풀어볼까나. --[Leonardong]
- MineSweeper/문보창 . . . . 1 match
STL을 처음 이용해 보았다. 굳이 쓸 필요는 없었으나, 세부적인 것을 만들어주지 않아도 미리 만들어진 것을 쓰기때문에 안정적이고 쉽게 문제를 풀 수 있었다.
- MineSweeper/이승한 . . . . 1 match
이땐 객체가 무언지 잘 몰라서 함수와 전역 변수들만 가지고 만들어 본...-_-ㅋ;; C랑 다른건 Array 객체를 사용한 정도??;;
- MineSweeper/황재선 . . . . 1 match
* 자바에서 console 모드의 키보드 입력를 처음 사용했다. c보다 불편하다.
- MoinMoin . . . . 1 match
* 모인모인을 사용하는 위키 : [http://wikipedia.org], [http://no-smok.net]
- MoniWiki/Release1.0 . . . . 1 match
자꾸 욕심이 많아지네요 :) MoniWiki는 [개인 위키]를 목표로 합니다. 따라서 StandaloneWiki 혹은 DesktopWiki로 사용할 수 있는 쉬운 위키엔진이 목표입니다.
- MoniWikiTheme . . . . 1 match
{{{[[Theme]]}}}매크로를 이용하여 지원 가능한 Theme목록을 볼 수 있다.
- MySQL/root암호분실시 . . . . 1 match
== 2. 두번째 방법 (첫번째 방법으로 안될때만 사용하세요.) ==
- MythicalManMonth . . . . 1 match
MentorOfArts 와 함께 진행중인 ["컴퓨터고전스터디"]의 교재로 이 책을 이용하고 있다.
- NS2 . . . . 1 match
Networking과 관련된 여러 이론과 아이디어를 가상으로 실험해 볼 수 있는 시뮬레이터. 네트워킹과 관련된 논문에서 가설에 대한 검증을 할때 실제 실험을 해 보는 경우가 아니면 99% 이상이 시뮬레이터를 이용한다.
- NSIS_Start . . . . 1 match
* ["NSIS/예제1"], ["NSIS/예제2"], ["NSIS/예제3"] - NSIS를 이용한 예제
- NUnit/C#예제 . . . . 1 match
이대로 쓰기에는 다른 xUnit에 비하면 사용이 불편하다. 하지만 몇 가지 설정을 해 놓으면 콘솔 실행을 자동으로 수행할 수 있다.
- NiceMilk . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- NumberBaseballGame/jeppy . . . . 1 match
이것저것 해봐야겠당~ editplus 사용해도 꽤 괜찮넹.. 답답한 도스환경에서 해방~
- ObjectOrientedProgramming . . . . 1 match
* 'oriented'라는 단어가 사전에서는 '지향'이라고 설명되어 있지만, 그 고어적인 뜻은 '비롯되다', '해가 뜨는', '출현하는', '발생하기 시작하는' 이라는 뜻을 가지고 있습니다. 따라서 'Object oriented'라는 용어는 '객체에서 비롯된다'라고 해석할 수 있지요. 저는 이것이 좀 더 정확한 해석이라고 생각합니다. - [http://garden.egloos.com/10001141/post/20974 출처]
- ObjectProgrammingInC . . . . 1 match
이렇게 된다면 class에서 private를 쓰는 목적을 달성은 하지만 효용성은 거의 제로겠고...
- OeKaki . . . . 1 match
== 사용법 ==
- OekakiMacro . . . . 1 match
(!) 짧막한 코멘트를 달게끔 해도 괜찮을 것이다. Comment 플러그인을 만들고, Blog의 코멘트와 Vote매크로를 응용해서 페이지 임의의 부분에 좀 더 쉽게 코멘트를 덧붙일 수 있게 한다.
- One . . . . 1 match
실습내용 참 좋네요~>__<ㅋ 저도 내일 따라 해보고 싶어요~^^ - 톱아보다
- Ones . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- Ones/1002 . . . . 1 match
처음에는 brute-force 틱한 방법 적용. 그러다가 세번째 샘플 데이터에서 엄청나게 속도가 저하되는 것을 느낌. 여태껏의 경험에 의하면 '무언가 다른 계산 방법이 있겠군' 이라는 감이 오다. brute-force 방법에서 미리 cut 을 할 방법을 이리저리 시도. (첫째자리와 끝자리만 1 비교.) 시간이 줄어들긴 하나 9901 예제에 대해서 금방 답이 나오진 않음. 9901 보다 큰 예제도 있을것이라 할때, 분명 금방 끝낼 방법이 있을 것이라는 확신은 드나, 생각이 떠오르지 않음.
- Ones/문보창 . . . . 1 match
다른 통과자에 비해 수행시간이 매우 길고, 메모리 사용량이 많다. 추후 다른 접근방법도 생각해 보자.
- OpenCamp . . . . 1 match
* 주제: Programming Language and its Application(프로그래밍 언어와 그 응용)
- OpenCamp/두번째 . . . . 1 match
* 후기는 내가 일등. 상대적으로 어려운 주제여서 그런지 사람이 좀 적었습니다. 조촐하게 했네요. 제 세션은 실습이라 시간은 매우 매우 길게 잡았음에도 불구하고 시간이 모자라더군요. 내가 하는 것과 같이 하는것의 차이를 극명하게 느낄수 있었습니다. 첫번째 보다는 speaker의 발표력이 조금은 나아졌다고 느겼습니다. 저도 자바에 대해 잘 몰랐기 때문에 유용한 세미나 였습니다. 이로써 항상 1학년에 맞춰주던 zeropage에서 벗어난 느낌입니다. 앞으로고 이런 고급 주제를 다루었으면 좋겠습니다. - [안혁준]
- OpenGL_Beginner . . . . 1 match
- 필자는 자신이 제작한 상업용 3D 설계 툴의 소스를 가지고 오고, 라이선스 문제와, 자신이 생각하는 개선점을 고쳐서 다시 작성했다고 한다. 인상 깊었다. 이해하기도 쉽고, 구조적 프로그래밍을 OOP로 옮긴다는 관점에 도움이 되었다. STL 비슷하게 linked list글 구현해 두었고, MEC++의 지식이 도움되었다. MEC++가 허송세월을 보낸것은 아닌 느낌이다. Java3D의 강좌에서도 Java3D의 프레임웍이 좋다고 하는데, 역시 살피는 과정에서 써야 겠다. 문서화 중
- OperatingSystemClass . . . . 1 match
수업내용: Operating System 에 대한 전반적인 개론. Computer Architecture 에서 한단계 더 위의 Layer 를 공부하게 된다. 메모리의 계층구조, 멀티테스킹과 그에 따른 동기화문제, 가상 메모리 등등.
- OperatingSystemClass/Exam2002_2 . . . . 1 match
2. Java 를 이용하여 다음 class를 완성하시오.
- OurMajorLangIsCAndCPlusPlus/Variable . . . . 1 match
전역 변수 - 해당 파일 내에서 유효함 (외부 참조 가능), BSS 세그먼트의 공간 사용
- OurMajorLangIsCAndCPlusPlus/XML . . . . 1 match
반드시 C로 작성할 것! (확장자 .c 사용)
- OurMajorLangIsCAndCPlusPlus/limits.h . . . . 1 match
||MB_LEN_MAX ||사용할 수 있는 모든 로케일에서 문자의 최대 바이트 수 ||2 ||
- OurMajorLangIsCAndCPlusPlus/stdarg.h . . . . 1 match
- 사용법은 [OurMajorLangIsCAndCPlusPlus/Function] 참고
- OurMajorLangIsCAndCPlusPlus/time.h . . . . 1 match
|| 함 수 명 || 내 용 ||
- PC실관리프로그램 . . . . 1 match
=== 내용 ===
- PHPStudy2005 . . . . 1 match
* 일방적인 정보 전달 스터디가 아닌, 하는 방법(메뉴얼 찾아서 하기, 틀정 사이트 Q & A 찾아서 하기, 있던 PHP소스 재활용하기, 모를땐 메신저로 선배한테 물어보기-_- 등..) 을 알려주고, 그에 따라 간단한 PHP 프로그램을 작성해본다.
- POLY/김태진 . . . . 1 match
* DP를 이용한 문제.
- PPProject/Colume2Exercises . . . . 1 match
시프트를 일반화시켜서 생각하고 문제에 접근했다. 하지만 풀리지 않았다. 책을 다시 읽고, 그림을 봐서 무엇을 잘 못 이해했는지 살폈다. 하지만 잘못 이해한 부분은 없었다. 시간이 지나고, 문제를 다시 읽으면 힌트를 얻지 않을까 하는 생각에 문제를 읽었다. 문제에서 최대공약수라는 말을 신경쓰지 않았다는 점을 발견했다. 최대공약수를 이용해서 결국 문제를 해결했다.
- PageHitsMacro . . . . 1 match
특정 사용자명, 가령 개인위키라면 그 위키 주인, 은 제외하고 incCounter()하는 게 어떨까요?
- PlayFramework . . . . 1 match
[Java] 를 사용하는 web framework
- Plex . . . . 1 match
특히 좋아하는 이유로는 State Machine 의 개념으로 텍스트를 파싱하고 가지고 놀 수 있다는 점이 있겠다. 예를 들어 HTML에서 span 태그에 대해 파싱한다고 할때 <span 시작 - span 내용 - </span> 끝이라면 그냥 이를 서술해버리면 된다는.~
- PolynomialCoefficients . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- PowerOfCryptography/이영호 . . . . 1 match
// 여기서 문자를 숫자로 변경하고 log10 함수를 사용한다.
- PowerReading . . . . 1 match
영어가 쉬우므로 영어원서에 익숙하지 않는 사람들도 쉽게 읽을 수 있다. 앞부분만 읽어보긴 했는데, 추천할만 한 것 같습니다. '더 복잡한 룰'은 직접 필요할때 만들어서 이용하시면 될듯.
- PracticalPython . . . . 1 match
Python을 이용해 쓸모있는 프로그램을 만드는 과정을 보여주는 책이다. 따라가기 좋을 뿐 아니라, 만들어 놓은 프로그램을 발전시킬 수 있도록 유도한다.
- PragmaticVersionControlWithCVS . . . . 1 match
The Pragmatic Programmers 시리즈. 첫인상은 개념보다는 실용서라는 느낌이 확연하게 들고, 아마존 서평도 꽤 좋은 편이다.
- PragmaticVersionControlWithCVS/HowTo . . . . 1 match
이 경우 체크인처럼 여러번 그리고 자주하는 일에 적용되는 규칙은 간단해햐한다.
- PrimaryArithmetic . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- PrimaryArithmetic/1002 . . . . 1 match
일단, testToList 부터. 문제 스펙에서 '10자리 미만 수'라는 점을 그냥 이용해도 될 것 같다는 생각이 들었다.
- ProgrammingLanguageClass/Exam2002_1 . . . . 1 match
* 다른 Primitive Data Type 을 이용, 정확하게 Floating Point 를 구현할 방법이 있을까? (자신의 의견을 적으시오)
- ProgrammingLanguageClass/Report2002_2 . . . . 1 match
* 컴파일러가 적용하는 type-compatibility 규칙(묵시적 형변환 따위) 에 대한 평가.
- ProgrammingPearls/Column4 . . . . 1 match
* 프로그램을 한줄한줄씩 따라 내려가면서 Loop에서는 위의 원칙을 적용해 corret한가를 검사하고 있다.
- ProgrammingPearls/Column5 . . . . 1 match
* c에서의 assert문을 사용하는 테크닉 같은 것을 보여주고 있다.
- ProjectAR/기획 . . . . 1 match
* 위에 괄호 안에 추가한 내용은 제가 그냥 임의로 이렇게 해 보면 어떻까 하고 적어본거에요. 이거 외에도 내성도 데이터를 따로 안가져도 될꺼 같아요. 최대한 가지는 데이터가 적었으면 좋겠어요 - 상욱
- ProjectGaia/기록 . . . . 1 match
* Sort STL적용
- ProjectLegoMindstorm . . . . 1 match
* 빨리 위키 사용법을 익히고 페이지를 만들어 나갔으면 좋겠네요. - [이승한]
- ProjectPrometheus/AcceptanceTestServer . . . . 1 match
Python CGI 로 작성된 Acceptance Test 용 서버 -> Acceptance Test 에 대해서 출력 양식. AcceptanceTest 스펙을 구체적으로 명시해둘것.
- ProjectPrometheus/Iteration1 . . . . 1 match
|| Test || 내용 || Pass 여부 ||
- ProjectPrometheus/Iteration2 . . . . 1 match
|| Test || Test 내용 || Pass 여부 ||
- ProjectPrometheus/Iteration8 . . . . 1 match
|| My Page 사용자 공지 || 0.5 || ○||
- ProjectSemiPhotoshop . . . . 1 match
* [http://165.194.17.15/~neocoin/jsboard/list.php?table=pds ProjectSemiPhotoshop/자료실] - 프로젝트용 자료실 입니다.
- ProjectSemiPhotoshop/SpikeSolution . . . . 1 match
기존 테스트만 하는 방식을 떠나.. 팀플 시간관계상 소스 구현을 재활용/체계화하는 목적으로 두었습니다.
- ProjectSemiPhotoshop/계획서 . . . . 1 match
* 상민 : MFC MDI 를 이용한 구성
- ProjectVirush/UserStory . . . . 1 match
사용자는 id, pw를 입력한다.
- Prolog . . . . 1 match
추후 내용 추가할 예정 - [김수경]
- PyOpenGL . . . . 1 match
새 버전의 [PyOpenGL]의 경우 메소드 이름이 약간 바뀌었다. xxxFuncCallback 함수 대신 xxxFunc 식으로 쓰인다. Nehe 의 코드 대신 [PyOpenGL] 인스톨시 같이 인스톨되는 Nehe Demo 프로그램 코드를 이용하기를 권한다.
- PythonForStatement . . . . 1 match
C/Java1.4이하 와 Python의 for문에 대한 관점이 '''전혀''' 다릅니다. 그리고 유용하지요. C의 for문과 구분하기 위하여 python의 이러한 for문을 보통 '''for each''' 문이라고 부릅니다. 이게 진짜 for문 이라고 이야기들 하지요.
- Quake2 . . . . 1 match
퀘이크2를 .Net 용으로 이식한 소스.
- RUR-PLE/Etc . . . . 1 match
* 이 경우에서의 처리를 while 문을 사용하여 처리한다.
- RandomWalk2/Vector로2차원동적배열만들기 . . . . 1 match
["STL/vector/CookBook"] 의 내용과 통합해야 합니다.
- RedThon/HelloWorld과제 . . . . 1 match
다음..함수를 이용한...나름대로..함수이길..바라고 있음...;;
- RegularExpression/2011년스터디 . . . . 1 match
html을 띄워놓고 익스플로러 or 크롬의 개발자 도구에서 javascript 콘솔모드로 "문장".matches("\Regex\"); 하면 나온답니다용.
- ReverseAndAdd . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- ReverseAndAdd/신재동 . . . . 1 match
위 코드를 이용하면...
- ReverseAndAdd/이승한 . . . . 1 match
//returnNum을 이용하여 앞과 뒤가 같은지 검사한다.
- RonJeffries . . . . 1 match
40여년간 프로그래밍을 해온 분인데, 인터뷰 중에 "장차 프로그래머가 되려는 한국의 젊은이들에게 어떤 말을 해줄 수 있겠느냐"라는 질문에 답한 내용이 인상적입니다.
- RubyLanguage/Class . . . . 1 match
1은 다음과 같이 사용할 수 있다.
- RummikubProject . . . . 1 match
우와 진짜 하는 구나^^ 멋져~~ - 지용
- SOLDIERS/정진경 . . . . 1 match
8월 9일 ACM 스터디에 불참하게되어 위키에 내용만 올립니다. ㅜㅜ
- STL/search . . . . 1 match
* list 컨테이너와 같이 임의접근 iterator를 지원하지 않는 컨테이너에는 적용할 수 없다.
- STL/set . . . . 1 match
// for 에서 반복자 이용 순회
- SceneDotOrg . . . . 1 match
Demo Art 의 산실. 이곳에 등록된 용량대비 화려한 프로그램들을 한번쯤 구경해보시길. ;)
- Score/1002 . . . . 1 match
f(n) 에 대해서 sum(f(n)) = n(n+1)/2 이므로, 이를 이용하면 되리라 생각이 듬. 결국 해결.
- Self-describingSequence . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- Self-describingSequence/문보창 . . . . 1 match
Sorted List 이므로 Search 부분에서 Linear Search 대신 Binary Search를 하면 좀 더 효율적이나, 이 정도만 해도 충분히 빠르다. 메모리 사용량을 줄이려면 어떻게 해야 할까?
- Self-describingSequence/황재선 . . . . 1 match
* 메모리 사용을 줄이기 위한 방안이 필요하다. 또한 입력값에 맞는 배열 크기 할당이 요구된다. 여기는 입력 값에 관계없이 최대 입력 값에 맞는 배열 크기를 할당하였다.
- Seminar . . . . 1 match
|| 세미나 || 내용 || 강사 || 대상 || 일시 ||
- SeparationOfConcerns . . . . 1 match
* http://www.acm.org/classics/may96/ - 해당 논문에서 추후 ResponsibilityDrivenDesign 에 해당되는 내용도 같이 있다. (72년 논문이란다.. 72년.;)
- SharedSourceProgram . . . . 1 match
돈을내고 라이센스를 받아야 하는 프로그램이라 학교측에서도 그전에 컴공의 각 학회들에게 어떤 방식으로 SSP를 활용해 나갈지를 먼저 물어보고 실제로 진행을 할 예정인가보다.
- SharedVision . . . . 1 match
* 또하나 생각난다면, 구심점이 되는 작은 사람들 (이때쯤 되니 또 20 : 80 법칙 생각이;)이 영향력을 발휘하는 방법. 보통은 이 스타일이 되는 것 같다. 문제제기 & 대안제안자 10%에 실제로 수습하는 사람 10%, 동의해주고 따라주는사람 40%, 60% 가 넘어간 뒤 인력의 작용(한쪽에 커다란 힘이 모여있으면 이 또한 인력이라고 생각한다. 월드컵 축구를 보라. -_-; 뉴스건 사람들이건 신문이건 전부 축구이야기만 하면 영향 안받나;) 30%, 나머지 무관심 10% (반대의견을 내는 사람은 실제 수습자들속에 있기도 하다. 물론 냉소만 보내는 사람도 있지만)
- ShellSort . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- ShowMeTheExample . . . . 1 match
예제를 보여주세요~ 요청용.
- SilentASSERT . . . . 1 match
지금 만들고 있지만 현재 하는 작업이 마무리 된 후에야 적용할 수 있겠네요.
- SimpleDelegation . . . . 1 match
위임을 사용할때, 당신이 필요한 위임의 묘미(?)를 분명하게 해주는 도와주는 두가지 이슈가 있다. 하나는, 위임하는 객체의 주체성이 중요한가? 이다. 위임된 객체는 자신의 존재를 알리고 싶지 않으므로 위임한 객체로의 접근이 필요하다.(?) 다른 하나는, 위임하는 객체의 상태가 위임된 객체에게 중요한것인가? 그렇다면 위임된 객체는 일을 수행하기 위해 위임한 객체의 상태가 필요하다.(너무 이상하다.) 이 두가지에 no라고 대답할 수 있으면 Simple Delegation을 쓸 수 있다.
- SimpleDesign . . . . 1 match
저 원칙은 XP 와 떼어서 생각하기 힘든, TestDrivenDevelopment 에서 더 제대로 적용된다. TestDrivenDevelopment 를 하면 할수록 가장 단순한 것에 대해서 생각하게 된다. 이번에 기사를 쓰기 위해 간단한 프로그램을 같은 문제에 대해서만 5번 정도 풀어보게 되었는데, 풀 때마다 더 간단한 해결책이 보이게 되고, 문제를 더 잘게 나눌 수 있게 되었다.
- SimpleDirectmediaLayer . . . . 1 match
크로스 플랫폼을 지원하는 멀티미디어 개발용 API.
- Slurpys/문보창 . . . . 1 match
힘들게 버그를 잡고 통과. 재귀함수 사용시 여러가지 통로(?)를 잘 관리해 줘야한다.
- SmallTalk/강좌FromHitel/Index . . . . 1 match
| ! 2.3.1. 탐색기 사용하기 <#13>
- SmallTalk/강좌FromHitel/차례 . . . . 1 match
| ! 2.3.1. 탐색기 사용하기 <#13>
- SmallTalk/문법정리 . . . . 1 match
* Debug 모드에서 메세지의 흐름을 나타낼때도 이용된다.
- SmallTalk_Index . . . . 1 match
| ! 2.3.1. 탐색기 사용하기 <#13>
- SmithNumbers/조현태 . . . . 1 match
속도를 위해서 저번에 사용했던 소스를 또 우려먹긴 했지만..
- SoftwareEngineeringClass/Exam2006_1 . . . . 1 match
= 시험 내용 =
- SolidStateDisk . . . . 1 match
백업 메카니즘으로서 배터리나 일반적인 자기디스크를 내장하곤 한다. SDD 는 일반적인 HDD I/O interface 로 연결된다. 이로 인해서 얻을 수 있는 잇점은 적은시간에 빈번한 I/O 작업이 일어날 경우에, seek time 이나 rotational latency 가 없는 메모리로서, 자기디스크에 비해 월등한 성능을 나타낼 수 있다. 그에 덧붙여 구동부가 없는 구조로서 좀더 내구성이 뛰어나다고도 할 수 있겠다. 단점은, 특성상 대용량화가 어려우며 커다란 데이터의 요구량이 커질때. 즉 access time 보다 transfer time 이 더 요구될때 효율성이 안좋다.
- SpiralArray/영동 . . . . 1 match
* 제대해서 처음으로 숙제를 제외하고 처음 짠 ToyProblem입니다. 1학년 때 프로그래밍잔치에서 못 짰던 걸 이제야 짰네요. 우선 소요시간으로 미루어 볼때 제대하고 나서 머리가 굳었다는 걸 느낄 수 있었고, 그만큼 처음부터 막 짜지 말고 설계 및 구상을 잘 해야겠다고 생각했습니다. 또한 객체지향으로 짠 것도 아니고 변수, 함수를 너무 지저분하게 쓴 거 같기도 하고... 반성할 점이 참 많았습니다. 그리고 일단 배열 크기도 미리 정했고 시작점도 0, 0으로 가정하고 해서 사용자의 잘 못된 입력에 대응하지 않은 점도 미비했네요.
- SpiralArray/임인택 . . . . 1 match
처음에는 다른 디자인으로 접근을 했는데, 일단은 문제를 풀어보자는 취지 하에 제일 쉽게 풀릴것 같은 방법을 사용하였다.
- Spring/탐험스터디 . . . . 1 match
* [Spring Framework 3]로 작지만 유용한 프로그램을 만들어보자!
- Spring/탐험스터디/2011-02-04 . . . . 1 match
* 실습 : 동네 API를 이용하여 게시판 정보 가져오기
- Squeak . . . . 1 match
* 창준선배님과 상민형께서 올해초쯤에 마소에 게제하신 글을 보고 스퀵을 알게 되었습니다. (그전에 책을 갖고 있긴 했었지만요) 기사를 보고 스퀵을 조금 익혀두었다가 나중에 자식을 낳고 자식과 같이 스퀵을 즐길 수 있었으면 좋겠다는 생각을 하고 스퀵을 해봐야겠다는 생각을 했습니다. 하지만 아직 사용하고 있는 사람들이 많지 않은것 같더군요 - 임인택
- StackAndQueue . . . . 1 match
||도전자||총개발시간||소스라인수('''주석제외''')||사용언어|| Source ||
- StacksOfFlapjacks . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- Star . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- StephaneDucasse . . . . 1 match
최근 Stephane 은 Squeak 에 대한 책을 쓰고 있다. http://scgwiki.iam.unibe.ch:8080/StephaneDucasseWiki 에서 읽을 수 있다. Turtle Graphics 를 이용한 튜토리얼을 제공하는데 정말 재미있다! Smalltalk 를 입문하려는 사람에게 추천.!
- Steps . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- StringCompression . . . . 1 match
모든 경우를 다 해 보는 알고리즘은 O(n^3) 이 되네요. String Matching에서 좀 더 효율적인 알고리즘을 사용해보면 좀더 줄일수 있을텐데... -- 보창
- StringOfCPlusPlus/상협 . . . . 1 match
char* stval() {return st;}//이걸 알자:배열 전체 리턴 할때 * 사용 ..
- StringOfCPlusPlus/영동 . . . . 1 match
cout<<"사용할 메뉴의 번호는?(7을 누르면 종료): ";
- StructureAndInterpretationOfComputerPrograms . . . . 1 match
국내에서 [http://pl.changwon.ac.kr/sicp/sicp_data.html 창원대학교]와 [http://ropas.kaist.ac.kr/~kwang/320/02/ 카이스트] 에서 교재로 이용하고 있다. 고대 에서도 과거 가르친적이 있다고 한다. 현재는 아니지만.
- SummationOfFourPrimes . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 || 실행시간(10000000 값 기준 4초 이내 통과 여부) ||
- SummationOfFourPrimes/문보창 . . . . 1 match
소수에 대한 기본지식이 없어서 상당히 애를 먹은 문제이다. 2보다 큰 짝수는 모두 두 소수의 합으로 표현될 수 있다. 물론 아직까진 가설이다. 입력 천만기준에 대해 8이상의 모든 수는 소수 4개의 합으로 표현될 수 있다는 전제조건을 세우니 문제가 한결 쉬워 보였다. 왜냐하면 소수 4개의 합이기 때문에 소수중 유일한 짝수인 2를 이용하면 홀수 또한 소수의 합으로 표현할 수 있다. 8보다 작은 수를 제외하곤 모두 소수 4개의 합으로 표현되어진다. 실제로. 정수론에 대해 흥미를 느끼게 해 준 문제였다.
- SuperMarket . . . . 1 match
1. 클래스를 이용 (좀 더 체계적으로)
- SuperMarket/인수 . . . . 1 match
// 어떻게 하면 if/else if 중복을 없앨수 있을까 고민하다가 폴리모피즘을 이용하기로 했습니다.(근데 이거 폴리모피즘이 맞나?--;)
- SystemEngineeringTeam . . . . 1 match
* 인스톨할때 반드시 usb 2.0포트를 이용할것.
- TAOCP . . . . 1 match
시간은 꽤 걸린것 같은데 생각보다 내용이 적다ㅡ.ㅡ --세환
- TAOCP/InformationStructures . . . . 1 match
오버플로우와 언더플로우가 일어났을 때 어떻게 해야 할까? 언더플로우는 하나의 의미있는 조건 - 에러 상황이 아니라 - 이다. 하지만 오버플로우는 더 들어갈 공간이 없는데 들어갈 정보가 남아있어서 에러이다. 따라서 오버플로우가 생기면 용량한계를 넘어서서 프로그램이 종료한다.
- TFP예제/WikiPageGather . . . . 1 match
* Python 이라는 툴이 참 재미있는 녀석이라 생각한다. 방식이야 basic에서의 그것이겠지만, '인터프리터언어라는 것이 쉽고 편하다' 의 이유를 다시 생각하게 해준 계기가 되었다. 일반적으로 우리가 프로그래밍을 할 때는 (여기서는 C++이라 하자) Visual C++ 을 하나만 띄어놓고 프로그래밍 하는 경우가 별로 없다. 보통 product code 를 위한 하나, 해당 함수 기능의 부분구현 (임시코드 구현)을 위한 하나. 서버-클라이언트 프로그래밍인 경우에는 3개를 띄우는 경우도 다반사이다. Python 의 shell 은 임시코드를 구현하는데 매우 편리한 도구이다. (한편 이쯤되면 검문이 필요하다. VS 2-3개 띄우는 거랑 python IDLE을 2-3개 띄우는 거랑 다를바가 뭐냐.. --; 내가 말하고 싶은 것은 C++이나 PHP에 파이썬처럼 공통 인터프리터 쉘이 있었으면 하는 것. -_a 흐흐..) 암튼. 나는 모인모인소스를 보면서 제목 검색 관련 일부 코드를 짤라서 쉘에서 간단히 실행해보고 검토하고 실제 소스에 적용해볼 수 있었다.
- TellVsAsk . . . . 1 match
당신이 구현하려는 logic 은 아마도 호출된 객체의 책임이지, 당신의 책임이 아니다. (여기서 you 는 해당 object 를 이용하는 client. caller) 당신이 object 의 바깥쪽에서 결정을 내리는 것은 해당 object 의 encapsulation 에 위반된다.
- TestDrivenDevelopment . . . . 1 match
사람마다 다를것 같긴 하지만, 나의 경우는 테스트를 작성하기 전 TODO List 를 작성할때 가장 고민을 하고 시간이 오래걸린 것 같다. 뭘 만들것인지에 대한 이해가 제대로 되지 않은 상태에서는 도대체 '뭘 해야 할지, 어떤 결과를 기대해야 할지'를 모르기 때문. :) 한편, 만일 TODO 리스트 작성시 시간이 너무 지체된다 싶으면 빨리 '어떤 결과를 기대해야 하나(Test 디자인)' 이란 질문을 하고 테스트를 작성해보는 방법을 추천. 저 질문이 앞에서의 '뭘 할까?'라는 질문의 모호함을 보완해주기 때문. 무엇을 해야 할지 감이 안올때는 가장 간단한 Input-Output 을 서술해봄으로서 조금씩 구체화시켜나갈 수 있음. '예제에 의한 구체화'란 방법은 참 유용함. --[1002]
- TestDrivenDevelopmentBetweenTeams . . . . 1 match
Java 의 경우 inteface 키워드나 abstact class 를 이용하여 interface 를 정의할 수 있다. 팀의 구성원끼리 Pair를 교체한 뒤 interface를 정의하면 더욱 효과적이겠다.
- TestSuiteExamples . . . . 1 match
여러 UnitTestFramework에서 TestSuite를 사용하는 예제들
- TheGrandDinner . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- TheJavaMan/달력 . . . . 1 match
전에 C로 짠던걸 많이 이용했다(위키가 이럴땐 정말 좋다)
- TheKnightsOfTheRoundTable . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- ThePracticeOfProgramming . . . . 1 match
[TheElementsOfProgrammingStyle] 에 대해 문의사항이 있어 저자중 한명에게 메일을 보냈더니, 이 책을 언급하였다. TEOPS 의 중요한 내용들을 이책의 첫 챕터에 수록하였다는 말과 함께. -_-a
- TheTrip/곽세환 . . . . 1 match
int student[1000]; // 학생들이 사용한 돈
- TheTrip/문보창 . . . . 1 match
int costs[1000]; // 각 학생들의 지출 비용
- TheWarOfGenesis2R . . . . 1 match
3. [[HTML(<STRIKE>)]] DirectX - DirectGraphics / OpenGL 사용법 익히기. [[HTML(</STRIKE>)]] - 1시간 20분
- TheWarOfGenesis2R/ToDo . . . . 1 match
* 특정 컴퓨터에서 마우스커서가 깜빡임. -> Bitmap커서를 사용할 수도
- TheWarOfGenesis2R/일지 . . . . 1 match
* State 패턴 적용.(맞나 몰라.--;)
- Thread의우리말 . . . . 1 match
[Thread]. 내가 처음으로 [ZeroWiki] 접근하게 되었을때 가장 궁금했던 것중 하나이다. 도대체 [Thread]가 무었인가?? 수다가 달리는장소?? 의미가 불분명 했고 사실 가벼운 수다는 DeleteMe라는 방법을 통해서 이루어지고 있었다. 토론이 펼쳐지는 위치?? 어떤페이지의 Thread의 의미를 사전([http://endic.naver.com/endic.php?docid=121566 네이버사전])에서 찾아보라고 하길래 찾아보았더니 실에꿰다, 실을꿰다, 뒤섞어짜다 이런 의미가 있었다. 차라리 이런 말이었으면 내가 혼란스러워해 하지는 않았을 것이다. [부드러운위키만들기]의 한가지 방법으로 좀더 직관적인 우리말 단어를 사용해 보는것은 어떨까?? - [이승한]
- TiddlyWiki . . . . 1 match
USB에 넣고 숙제 메모용 정도로 쓰면 쓸만함.
- TkinterProgramming . . . . 1 match
알아서 사용하면 됨. -_-;
- TortoiseSVN . . . . 1 match
윈도우즈용 SubVersion Client.
- Trace . . . . 1 match
MFC 에서 제공하는 {{{~cpp TRACE }}} 매크로의 기능을 VC 의 다른 프로젝트에서도 사용할 수 있다. 단, 여기서는 매크로가 아니라 함수인것을 유념하자.
- TravelSalesmanProblem . . . . 1 match
가장 전형적인 TSP 로 distance 는 symmetric 하고, triangular inequilty 가 만족하고, 임의의 한 도시에서 다른 도시로의 직접(또 다른 경유도시를 이용하지 않고) 갈 수 있는 길이 항상 존재한다.
- TriDiagonal/1002 . . . . 1 match
LU 분해 뒤 해당 계산이 제대로 되었는지를 확인하기 위해 Numeric Python 모듈을 이용했다. [http://sourceforge.net/project/showfiles.php?group_id=1369 여기] 에서 받을 수 있다.
- TugOfWar . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- UML서적관련추천 . . . . 1 match
UML 에 대한 개론서입니다. 두께도 얇고, 도서관에도 있습니다. 내용 상의 서술은 오히려 어느정도 개발을 한 사람들이 재미있게 읽을 만한 것이긴 하나, 개론서로 읽어도 괜찮을 것 같습니다.
- UglyNumbers . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 || 실행시간(4초 통과여부) ||
- UglyNumbers/1002 . . . . 1 match
연습장에 이것저것 써보다가 대략 두가지 접근법이 생각나다. 하나는 각 수들마다 'isUglyNumber' , 하나는 지수를 이용한 방법. 일단은 'isUglyNumber' 먼저 구현해보기로 해봄. (워낙 간단하므로)
- UglyNumbers/곽세환 . . . . 1 match
* STL사용하니 한결 간편하다
- UglyNumbers/구자겸 . . . . 1 match
딱 3분 걸린다. 경고음 붙여서 라면 먹을때 이용하면 좋겠다.
- UglyNumbers/문보창 . . . . 1 match
접근 방법을 바꾼후 쉽게 풀린 문제. 지수의 조합을 이용.
- UglyNumbers/송지훈 . . . . 1 match
sorting 을 사용하는 방법을 생각해봐야 하겠다 라는 것을 느낌.
- UseSTL . . . . 1 match
* 가장 많은 5장의 소스를 다 쳤다. 6장은 어떤 내용이 기다리고 있을까. --["상민"]
- WERTYU . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- WeightsAndMeasures/문보창 . . . . 1 match
동적프로그래밍 문제. n! 번의 수행을 해야하는 문제가 동적프로그래밍을 이용하니 O(n^2)만에 풀 수 있다. 동적프로그래밍의 힘이 대단하다.
- WeightsAndMeasures/신재동 . . . . 1 match
클래스를 사용한다면 스스로 어떻게 정렬될지 아는 놈으로 만드는 것도 좋겠다.
- WhatToExpectFromDesignPatterns . . . . 1 match
보편화된 디자인 관련 용어로써.
- WhenJuniorsAsk . . . . 1 match
위의 제글의 이야기는 강연 방법이나 강연 대상을 이야기하자고 하는 것은 아니었습니다. 제글은 강연자의 "권위"를 강조하기 위한 이야기였습니다. 선배님의 윗 글의 의미는 대학년 1년생들에게 그 선배님이 강연을 하시는 것은 비효율적이라는 말씀을 하고 싶으신 것입니까? 문제의식이 없는 사람들에게 강연을 하는 것은 비효율적이라고 말씀하시는 것입니까? 신입생들은 강연자의 (어떤 강연인지는 모르겠지만..)강연 내용에 대한 문제의식이 전혀 없다는 전제라면 뭐라 드릴 말씀이 없습니다. 이것이 의견차를 가져오게 된 결정적인 이유 같습니다. 저는 그 선배님의 강연이 1학년들도 충분이 문제를 가질만한 이야기를 해줄 수 있는 이야기를 강연 주제로 잡으신줄 알았습니다. 뒤에 다른 저의 글은 하나의 의견차이에 대한 반론과 이번 사건에 대해 바램이 있어서 적어보았습니다. 뒷에 글까지 다 적은 후에 이 글을 수정하여서 동기화가 안될 수도 있으니 양해해주십시요.
- WikiGardening . . . . 1 match
''실제 위키의 View 구조를 조성하는 사람들이 드물기 때문에, 기존 게시판에서의 스타일과 똑같은 이용형태가 계속 진행되어버렸다는 생각이 든다. (이 경우 RecentChanges 가 Main View 가 된다.) (조만간 위키 전체에 대한 링크 구조 분석이나 해볼까 궁리중. 예상컨데, 현재의 ZeroWiki 는 Mind Map 스타일에 더 가까운 구조이리라 생각. (개념간 연결성이 적을것이란 뜻. 개인적으로는 볼땐, 처음의 의도한 바와 다르긴 하다.) --1002'' (DeleteMe ["1002"]의 글을 다른 페이지에서 옮겨왔습니다.)
- WikiSandPage . . . . 1 match
=> UserPreferences를 불러온 다음 내용 읽기가 불가
- WinSock . . . . 1 match
일반적인 버클리 소켓 스타일과 Windows 자체 스타일의 비동기소켓 (윈도우 메세지를 이용하는 방법, IOCP) API 를 제공해준다.
- Winamp . . . . 1 match
[WinampPlugin을이용한프로그래밍]
- WindowsConsoleControl . . . . 1 match
터보 C를 사용할때는 라이브러리로 콘솔제어를 쉽게 하는 함수들이 존재하였다. MS의 콘솔을 배제하는 정책 때문인지 함수는 존재하지만, 불편한 인터페이스를 그대로 유지하고 있는데, 이를 살작 추상화 시키는 간단한 소스들이다.
- WordPress . . . . 1 match
기존에 egloos, tattertools 를 이용하던 분들이라면 아래의 툴로 간편하게 이주하는 것이 가능하다.
- WritingOS . . . . 1 match
실제로 대학에서 교육용으로 쓰고 있는 OS
- X . . . . 1 match
* 요즘 하는 건 전화번호 외워서 다니기(핸폰에 저장 안해놓고.... 핸드폰에 있는 건 백업용)
- XML/PHP . . . . 1 match
PHP에서 XML 사용법
- XOR삼각형 . . . . 1 match
||도전자||총개발시간||소스라인수('''주석제외''')||사용언어|| Source ||
- XpWeek . . . . 1 match
* OST를 혼용해서 첫 날 주제를 잡으면 어떨까?
- XpWeek/20041222 . . . . 1 match
[http://java.pukyung.co.kr/Lecture/Chapter21.php 생각하는자바 활용2]
- Yggdrasil/가속된씨플플/0장 . . . . 1 match
== 용어 정리 ==
- ZIM/RealUseCase . . . . 1 match
사용자 인터페이스와 함께 설명이 이루어지면 더 좋겠죠. 일단 ["ZIM/UIPrototype"]이 대강 나온다면... ^^;;;
- ZPBoard/PHPStudy . . . . 1 match
PHP 스터디 내용 정리 및 숙제.
- ZPHomePage/20050103 . . . . 1 match
== 회의내용 ==
- ZeroPage/임원 . . . . 1 match
|| 부회장 || 33기 || [박주용] || 1학기 ||
- ZeroPageServer/FixDate . . . . 1 match
그런데, rdate 가 이번 테스트 업그레이드 버전 부터 안되는 것이다. 새버전에서 servername 을 입력받을수 없다고 하는데, 왜그런지 모르겠다. 그래서 대안으로 이것을 사용한다.
- ZeroPageServer/Telnet계정 . . . . 1 match
* 소스나, 리포트의 중계 저장고로 사용할수 있다.
- ZeroPageServer/Wiki . . . . 1 match
- KeyNavigator 가 가능합니다. 굉장히 유용합니다.
- ZeroPager구조조정 . . . . 1 match
구조조정은 아영과 현태가 저번 [정모/2005.12.23]에 나온 내용들을 고려하여,
- ZeroPage성년식/후기 . . . . 1 match
* 시간이 지난 것 같아서 약간 후기 룰에 빗겨서 작성합니다. 제 개인 기록장의 일부 내용을 옮깁니다.
- ZeroPage소개 . . . . 1 match
* 아, 또 신입생 환영회때 소개하는 멘트에도 일부 사용하게될거 같네요~
- ZeroPage정학회만들기/지도교수님여론조사 . . . . 1 match
|| 한상용 || 0 || . ||
- ZeroPage회칙 . . . . 1 match
본 회칙에 나오는 용어는 다음의 정의에 따른다.
- ZeroPage회칙토론 . . . . 1 match
각 항목에 몇조 몇항을 두는 이유는 index가 용이하라고 있는것이겠지만, 이 상황에 경우는 그리 필요없을것이라 생각함.--석천
- ZeroWiki/Mobile . . . . 1 match
만약 그래도 별개의 프로젝트로 진행하고 싶다면 [http://jquerymobile.com/ jQuery Mobile]을 사용하시는 것을 추천합니다. - [변형진]
- ZeroWikian . . . . 1 match
ZeroWiki 를 사용하는 사람들. ~~ZeroPagers와는 다르다 ZeroPagers와는!~~
- Zeropage/Staff/회의 . . . . 1 match
=== 내용 ===
- Zeropage/Staff/회의_2006_03_04 . . . . 1 match
* 그리고 제로페이지가 하는일중 핵심은 프로젝트와 스터디인 만큼 프로젝트와 스터디에 대해서 좀더 내용을 넣으면 어떨까 생각하는데, 아래는 2005년도에 했던 프로젝트와 스터디
- [Lovely]boy^_^/Arcanoid . . . . 1 match
== 사용하는 특수 기능 ==
- [Lovely]boy^_^/Diary/2-2-2 . . . . 1 match
* 우리나라에 사람 무는 바퀴벌레가 들어온 기념으로.. TDD를 이용한 RandomWalk2를 해보았다.(Python) 파이썬 문법 자체에서 좀 많이 버벅거렸다는게 좀 아쉽다. 테스트 수십개가 통과하는 것을 보고 있자니 괜시리 기분이 좋아진다는--;
- [Lovely]boy^_^/Diary/2-2-3 . . . . 1 match
* ["EffectiveSTL"] 나머지 부분은 책반납일이 다 되었음으로 인해 유보. 또한 나머지 내용은 좀 생소해서.. 기초 부분을 좀 더 봐야 할듯싶다.
- [Lovely]boy^_^/Diary/7/29_8/3 . . . . 1 match
|| 3D || 프랙탈을 이용한 지형 만들기 || 100%? || 재귀땜에 쫄았는데.. 잘돼서 다행이다 ||
- [Lovely]boy^_^/Diary/7/8_14 . . . . 1 match
* USACO 문제 풀면서 STL 공부해온걸 활용하기로 했다.
- [Lovely]boy^_^/EnglishGrammer/Passive . . . . 1 match
C. 용법은 be + past particle (be동사 + 과거분사)
- [Lovely]boy^_^/EnglishGrammer/PresentPerfectAndPast . . . . 1 match
(현재 완료를 언제 사용하느냐? 현재와 뭔가 연관 관계가 있을때.. 즉 과거에 있었던 일이 현재에 영향을 미칠때. 역시 어렵군..;;)
- [Lovely]boy^_^/USACO/YourRideIsHere . . . . 1 match
* STL 쓰니까 정말 편하네요. 앞으로 자주 애용할듯..
- c++스터디_2005여름/실습코드 . . . . 1 match
[C++스터디_2005여름] 참가자가 스터디한 날 공부 한 내용을 올리는 공간입니다.
- callusedHand/projects/fileManager . . . . 1 match
* 사용 언어: C
- callusedHand/projects/messenger . . . . 1 match
* 사용언어: Java
- cogitator . . . . 1 match
세상이란 등가교환법칙이 적용되는 곳.
- dlaza . . . . 1 match
* 이름 : 박 범 용
- eclipse플러그인 . . . . 1 match
내가 사용하는 플러그인 update 주소
- erunc0/PhysicsForGameDevelopment . . . . 1 match
* 게임에 사용되는 물리.
- gusul/김태진 . . . . 1 match
* 문제를 단순화하여, 앞으로 홀수번 시행이 최적인 경우, 지금 하는 사람이 승리하게 된다. 이를 이용하여 n-1번째 시행에서(지는 시점을 첫번째로 하여 거꾸로 올라간다.) n번째로 올 때 모두 홀수인 경우에만 해당 시점의 사람이 지게되는데 (1,3,5번에서 7번으로 갈 수 있는데 1,3,5번의 시행횟수가 모두 홀수개) 하나라도 짝수에서 오는 경우가 있으면 그 경우가 상대방이 무조건 지는 경우이므로 최선이다.
- html5/web-storage . . . . 1 match
* 문서를 만들고 보니까 http://dev.w3.org/ 의 내용이 가장 충실하고 확실하다는 걸 알게 되었음. - 이승한
- html5practice/roundRect . . . . 1 match
* roundRect function 는 [http://js-bits.blogspot.com/2010/07/canvas-rounded-corner-rectangles.html 이용] 하였음.
- html5practice/즐겨찾기목록만들기 . . . . 1 match
* 원래 목적은 naver api를 끌고 와서 별표 찍는 연습을 만들려고 했는데. 이건 뭐. ajax cross domain 문제로 접근 불가. 난이도 하향. 로컬 목록을 사용자가 만들어서 그걸 즐겨찾기 추가 삭제 하는 코드를 만들었음. 기능과 UI가 안습이지만, 그래도. 만들었음.
- iPhoneProgramming/2012년프로젝트 . . . . 1 match
* 2차 목표 : Web이나 서버에 연결하는 것과 같은 사용자 내부 요소에서 벗어나 보는 것.
- iruril/도자기토론 . . . . 1 match
DeleteMe) [iruril]이 도자기에 대한 토론에 대한 내용을 기록해놓은 페이지입니다
- jQuery . . . . 1 match
jQuery를 사용함으로써 일반적이고, 반복되며, 업무량을 증가시키는 불필요한 마크업들을 제거할 수 있고, 이를 통해 작고, 훌륭하며, 이해하기 쉬운 자바스크립트 코드를 작성할 수 있습니다.
- naneunji . . . . 1 match
10월까진 조용히 살아야지..흠..
- naneunji/Diary . . . . 1 match
자기소개서를 쓴다는게 진짜 힘든일인거 같다. 꼭 할말이 없어서라기보담..나를 표현하는데 미숙한듯..나를 표현하는데 있어서좀 더 자신감을 가져야쥐..(아는 오빠는 취직하기위해 자기소개서를 4000자 쓴다든데..a4용지 한면은 몇자정도 될까??)
- openAPI . . . . 1 match
[http://dolbbi.com/218 C#으로 openAPI 이용. 그리고 XML의 파싱]
- programmer . . . . 1 match
제가 표현하고자했던 말은 누구를 프로그래머라고 부를 수 있냐는 것이였습니다. 초보/중급/ 이런건 생각해보지 않았는데, 그렇게도 여길 수 있겠군요. 너무 막막하죠. "프로그래밍 언어를 이용하여서 현재 프로그램을 만들고 있거나 가까운 시일내에 만들 사람" 먼저 간략히 이정도만 정의해놓죠.
- randomwalk/홍선 . . . . 1 match
srand((unsigned)time(NULL)); // 시간을 이용해 랜덤을 설정
- snowflower . . . . 1 match
||[그래픽스세미나]||OpenGL을 이용한 그래픽스 - 도중에 중도 하차 ㅠ.ㅠ|| _ ||
- snowflower/Arkanoid . . . . 1 match
3. 멀티미디어 타이머의 사용으로 속도를 높였다
- source . . . . 1 match
[1~10사이 숫자 출력, 5 제외 (continue 문 사용)]
- study C++/ 한유선 . . . . 1 match
내용바꾸기 -_- 뭔말인지 ㅋ
- subsequence/권영기 . . . . 1 match
아무래도 세 문제 전부 parametric search를 이용한 문제라서 한 페이지에 넣어야 될 듯 싶네여. 페이지 낭비 같음.
- woodpage/메신저 . . . . 1 match
4. 목적 : xml을 활용한다.
- woodpage/쓰레기 . . . . 1 match
* 이봐~ 다 그렸다.. 너의 홈(보긴 보냐?? ^^;) 자료실에 올려 놓을 터이니 잘 사용하길.. 대체 며칠동안 그걸 부여잡고 있었는지 원.. [[BR]]
- 갓헌내기C,C++스터디 . . . . 1 match
* 엡솔루트 C++는 한번 모임마다, 배운것을 응용하여 하나의 결과물 만들어내는걸로
- 강연 . . . . 1 match
* 쉽고 재미있는 강연이었다. 못알아들은 내용도 있었지만, 교수님의 유머감각은 단연 돋보였다. 영어로 술술 질문하는 영교과 학생들도 인상적.. -_-; - [임인택]
- 강의실홍보 . . . . 1 match
행사 소개 (-> 구체 내용 소개 (->) 질문,답변
- 격언 . . . . 1 match
MozillaFirefox NightlyBuild 를 사용해서 그랬던것 같네요. 정식릴리즈로 해보니 잘됩니다. - [임인택]
- 고슴도치의 사진 마을처음화면 . . . . 1 match
[몬테카를로 법을 이용한 pi 구하기 프로그램]
- 고영준의Wiki처음화면 . . . . 1 match
+ 지배 : 일정한 내용의 어느 명령에 대하여 일정한 사람들에게 복종을 발견할 수 있는 가망성을 뜻한다.
- 골콘다 . . . . 1 match
* 역사가 반복되는 이유? 어떤 책에서 인용하던 구절. '낡은것은 멸하여 가는데 새것이 오지 않을때 위기가 닥쳐온다.' 멸해야 할 것이 알아서 멸하지 않을때.
- 곽병학 . . . . 1 match
* ACM 스터디용
- 구구단 . . . . 1 match
||도전자||총개발시간||소스라인수('''주석제외''')||사용언어|| Source ||
- 구구단/문원명 . . . . 1 match
DeleteMe [도움말]의 [페이지이름]을 보시고, 현재 페이지를 접근하기 쉽고, 유용하게 해주세요. 하단은 [역링크]랍니다.
- 구구단/유상욱-Scheme . . . . 1 match
음... 굉장히 괄호 사용이 많은 언어군요... 이런 언어 싫어하는데...ㅠ.ㅠ
- 구구단/임인택2 . . . . 1 match
일단, 형식없이 그냥 verb table 이용.
- 그래픽스세미나/2주차 . . . . 1 match
=== 내용 ===
- 그래픽스세미나/3주차 . . . . 1 match
=== 내용 ===
- 그래픽스세미나/5주차 . . . . 1 match
=== 내용 ===
- 그래픽스세미나/6주차 . . . . 1 match
=== 내용 ===
- 글로벌CEO . . . . 1 match
* 솔직히 들은지 몇주밖에 안되었지만 수업이 너무 좋은거 같아서 이렇게 글을 쓴다. 수요일 7,8,9 에 중앙문화예술관 10902에서 하니깐 청강 하실분은 해보시길.. 그냥 경영학 수업 듣는거 보다 이렇게 다국적 기업 CEO들의 경험과 노하우가 녹아 있는 수업을 듣는게 더 나은거 같다. 책에서는 배울수 없는 것들을 배우는 만큼 좋은 기회라고 생각한다. 지금까지 몇주동안 들은 수업 내용중에서도 상당히 귀중한 것들을 느꼈다.-[상협]
- 금고/문보창 . . . . 1 match
{{| T(a+b+1, k) = T(b,k) + 1 = T(a,k-1) + 1 |}} 이다. 여기서 a 와 b 또한 건물의 최대 높이임을 만족해야 한다. 초기값 T(1, k) = 1, T(n, 1) = n 을 이용하여 값을 구할 수 있다.
- 기본데이터베이스/조현태 . . . . 1 match
선형 리스트로 데이터베이스 구축 -> 자료구조를 배열을 사용하세요~ 로 이해....OTL
- 김동준 . . . . 1 match
* NAS 운용중 (https://nas.teledong.kr)
- 김동준/Project/Data_Structure_Overview . . . . 1 match
== 진행 내용 ==
- 김동준/Project/OOP_Preview . . . . 1 match
== 진행내용 ==
- 김세영 . . . . 1 match
4. 진성고 나와써용
- 나를만든책장/책 . . . . 1 match
== 책내용 ==
- 답변 및 의견 1 . . . . 1 match
* svn 연동해서 사용하기 편하고
- 대학원준비 . . . . 1 match
* 서류 심사 내용이 간당 간당 한 사람의 경우 면접이 까다로움
- 대학원준비에대한조언 . . . . 1 match
여러명이 모여서 스터디를 한 지도 삼 주가 다 되어간다. 같이 준비하면서 때로는 너무 사소한 것에 매달리는 것이 아닌가 싶을 정도로 한 부분에서 넘어가지 못하는 경우가 있다. 한참을 이야기해서 결론을 내보니 이미 말하던 도중에 나왔던 이야기였거나 책을 보면 알 수 있는 내용인 경우도 있다. 하지만 그렇게 해서도 결론이 나지 않는 문제들이 있었고 [대학원준비06] 팀은 교수님께 찾아가서 질문을 했다.
- 데블스캠프2003 . . . . 1 match
|| 날짜 || 요일 || 참가자 || 참가자가 가르칠 내용 ||
- 데블스캠프2003/둘째날/후기 . . . . 1 match
* 8퀸 문제를 실패하면서, 프로그램을 짤 때에는 먼저 확실한 알고리즘을 구축해 놓아야 한다고 생각했어요.. 알고리즘부터 틀리게 되면 나중에는 디버깅도 소용이 없다는 사실.. --[문원명]
- 데블스캠프2004/5일간의의미 . . . . 1 match
== 토의 내용 ==
- 데블스캠프2004/위키항해소감 . . . . 1 match
== 토의 내용 ==
- 데블스캠프2005 . . . . 1 match
[http://gigamail6.paran.com:8080/gigamail_pop.php?file=/D6/1/20050620/13/09/beonit@paran.com/1119244238_8864_x0.zip&filename=flashmx.zip FlashMX] - [데블스캠프2005/FLASH키워드정리]에서 사용할 플레시 프로그램
- 데블스캠프2005/RUR_PLE/조현태 . . . . 1 match
파일을 copy/paste하는 과정에서 중간중간에 빈 줄이 생겼는데, 일부 삭제하였으나 남은 것이 있을 경우 지우고 사용해야 합니다.(단 함수와 함수사이는 아닙니다.)
- 데블스캠프2005/java . . . . 1 match
== 자바의 기본적인 용어 ==
- 데블스캠프2005/게임만들기 . . . . 1 match
테트리스 만들기 틀을 이용한 완성 예제
- 데블스캠프2006 . . . . 1 match
[데블스캠프토론] - 예전에도 이런 내용이 :)
- 데블스캠프2006/월요일/연습문제/for . . . . 1 match
[데블스캠프2006/월요일/연습문제/for/성우용]
- 데블스캠프2006/월요일/연습문제/for/성우용 . . . . 1 match
== 데블스캠프2006/월요일/연습문제/for/성우용 ==
- 데블스캠프2006/월요일/연습문제/if-else/성우용 . . . . 1 match
== 데블스캠프2006/월요일/연습문제/if-else/성우용 ==
- 데블스캠프2006/월요일/연습문제/switch . . . . 1 match
[데블스캠프2006/월요일/연습문제/switch/성우용]
- 데블스캠프2006/월요일/연습문제/switch/성우용 . . . . 1 match
== 성우용 ==
- 데블스캠프2006/월요일/연습문제/기타문제 . . . . 1 match
[데블스캠프2006/월요일/연습문제/기타문제/성우용]
- 데블스캠프2006/월요일/연습문제/기타문제/성우용 . . . . 1 match
== 성우용 ==
- 데블스캠프2006/월요일/함수/문제풀이 . . . . 1 match
[데블스캠프2006/월요일/함수/문제풀이/성우용]
- 데블스캠프2006/월요일/함수/문제풀이/성우용 . . . . 1 match
== 성우용 ==
- 데블스캠프2006/월요일후기 . . . . 1 match
김대순, [김준석] , 이경록 , 이차형,성우용
- 데블스캠프2009/금요일 . . . . 1 match
|| 이름 || 주제 || 내용 || 비고 ||
- 데블스캠프2009/금요일/SPECIALSeminar . . . . 1 match
* Tool을 효율적으로(편리하게) 사용할 수 있는 능력 - 성현
- 데블스캠프2009/금요일후기 . . . . 1 match
* '''서민관''' - 참. 무시무시한 수업이었습니다. 여러가지 의미로. 실력도 물론 무시무시하셨지만, 그것보다 우리가 평소 아무렇지 않게 사용하던 사이트들이 그렇게 보안에 취약한지는 처음 알았네요. 아무렇지 않아 보이는 이미지 파일이 쿠키를 뽑아내는 모습은 참 기가 막혔습니다. 덕분에 Javascript의 강력함도 같이 느낄 수 있었네요. 이번 방학에 팀 프로젝트를 하신다고 하던데 되도록이면 같이 참가해서 뭐라도 좀 배워보고 싶습니다.
- 데블스캠프2009/목요일/연습문제 . . . . 1 match
* [데블스캠프2009/목요일/연습문제/MFC/성우용]
- 데블스캠프2009/수요일/OOP/서민관 . . . . 1 match
OOP 과제. 의사코드를 이용한 붕어빵기계와 붕어빵 만들기
- 데블스캠프2009/월요일 . . . . 1 match
|| 이름 || 주제 || 내용 || 비고 ||
- 데블스캠프2010 . . . . 1 match
|| 4 || 남상혁 || SDL을 이용한 게임프로그래밍 || 전 시간대 가능 ||
- 데블스캠프2010/넷째날/DHTML . . . . 1 match
*현재 대부분의 웹 사이트에서 DHTML 기술을 적용중
- 데블스캠프2010/다섯째날/후기 . . . . 1 match
* 좀 늦었지만 그래도 재미있었습니다. cpp를 이용한 저글링들의 대결!! 그리고.. 마린.. 으악;; 뭔가 심오해보였습니다.. - [양아석]
- 데블스캠프2010/첫째날/오프닝 . . . . 1 match
1. 위키 사용자 등록 후 로그인한다.
- 데블스캠프2011/둘째날/Cracking . . . . 1 match
* 동준이가 지원이에게 WPE를 이용하여 쪽지 테러하기
- 데블스캠프2011/둘째날/Machine-Learning . . . . 1 match
* SVMLight 사용 실습 http://svmlight.joachims.org/svm_multiclass.html
- 데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/김동준 . . . . 1 match
//자기 Section 이 아닌 내용을 Calculate 하는 함수. Index 에 반응하며 수행시 초기화 후 계산한다.
- 데블스캠프2011/셋째날/String만들기 . . . . 1 match
* 사용 언어 : C++
- 데블스캠프2011/첫째날/오프닝 . . . . 1 match
1. 위키 사용자 등록 후 로그인한다.
- 데블스캠프2012/넷째날/묻지마Csharp/Mission3/김준석 . . . . 1 match
* Timer를 이용해서 Label을 HTML의 Marquee효과를 내면서 이동시킨다
- 데블스캠프2012/셋째날/앵그리버드만들기 . . . . 1 match
* HTML5 canvas를 이용해 앵그리버드를 만들어봅시다.
- 데블스캠프2013/셋째날/머신러닝 . . . . 1 match
== 백주협, 지영민, 엄기용 팀 ==
- 도구분류 . . . . 1 match
프로그래밍시 이용되는 각종 도구들. 툴, API 등 (아마 Framework 는 추후 분류가 분화되어야 할듯)
- 독서는나의운명 . . . . 1 match
*자유로부터의 도피로 선정 !! 이 책 샀어용 ㅋㅋㅋ -아영
- 동영상처리세미나 . . . . 1 match
* 이틀간 잠을 제대로 못자고 간 탓에 심하게 졸았네요. 저 내용 맞나요? 아영이가 써놓은 메모 정리해봤음. 수정부탁~ -[창섭]
- 땅콩이보육프로젝트2005/개발일지 . . . . 1 match
* 입력 : 위키에 땅콩 페이지 개설 후 '입력'란에 입력받고 확인을 누르면 입력된다. 내용의 수정의 위해 '수정' 버튼도 존재한다. 그 아래에 같은 형식으로 '가르치기' 도 존재한다.
- 레밍딜레마 . . . . 1 match
시리즈 물인데, 같은 시리즈의 하나인 혜영이가 남긴 감상 [http://zeropage.org/jsp/board/thin/?table=multimedia&service=view&command=list&page=0&id=145&search=&keyword=&order=num 네안데르탈인의 그림자] 와 같은 짧고 뜻 깊은 이야기이다. 왜 이 책을 통해서 질문법을 통한 실용적이며, 진짜 실행하는, 이루어지는 비전 창출의 중요성을 다시 한번 생각하게 되었다. ["소크라테스 카페"] 에서 저자가 계속 주장하는 질문법의 힘을 새삼 느낄수 있었다.
- 레밍즈프로젝트 . . . . 1 match
= 사용도구 =
- 레밍즈프로젝트/그리기DC . . . . 1 match
[레밍즈프로젝트]에서 사용하게 될 그리기 클래스.
- 레밍즈프로젝트/다이어그램 . . . . 1 match
게임 내용과 출력부분을 완전히 분리해 내면서 모습이 달라진 것일 뿐이다.
- 레밍즈프로젝트/일정 . . . . 1 match
|| 11/12 || 일정예측, 스펙분석, 역할 분담, 툴 학습, 클래스, 시퀸스 다이어그램 || 준비물 : 스카치테이프, 다용도카드, 카메라, 보드마커 ||
- 레밍즈프로젝트/프로토타입/STLLIST . . . . 1 match
|| CList 사용 || [http://blog.naver.com/ryudk01.do?Redirect=Log&logNo=120007965930] ||
- 레밍즈프로젝트/프로토타입/에니메이션버튼 . . . . 1 match
윈도우 컨트롤 중에 에니메이터 컨트롤이 있다고 함. -_- 그 녀석을 사용하면 해결 할 수 있을듯. 바로 밑에 있군-_- -이승한
- 로고캐릭터공모/문의 . . . . 1 match
(하단의 EditText를 누르시고 자유롭게 내용을 써주세요)
- 로그인하기 . . . . 1 match
UserPreferences 페이지에서 이름과 패스워드를 적고 Profile 만들기 버튼을 누른다. ChangeYourCss 페이지나 CssMarket 에서 개인 취향에 맞는 스타일 시트를 등록해서 사용하면 더 좋다.
- 로마숫자바꾸기/조현태 . . . . 1 match
어쨋든 만들긴 했는데.. 이게 맞는겨?ㅎ 나도 모르겠.. 일단 보기의 내용은 다 맞으니..통과통과~>ㅁ<;;
- 로마숫자바꾸기/허아영 . . . . 1 match
완벽하네..ㅎㅎ 사실 그렇게 길지도 않는데?ㅎ 한 1000자리쯤 가면 좀 길어질려나..ㅎㅎ 왠지 한 {}안의 내용이 비슷비슷해 보이기는 하지만.ㅎㅎ 뭐..어디가 중복인지는 나도 모르겠..ㅎㅎ 그러니 나름대로 괜찮은 소스라고.. ㅎㅎ 그럼 좋은하루..(추신: 네 소스는 항상 테스트가 잘됨.ㅎ) - [조현태]
- 리디아처음화면 . . . . 1 match
처음 사용해 보는 wiki네요.. 우하하. ^^
- 마름모출력 . . . . 1 match
|| 작성자 || 사용언어 || 개발시간 || 코드 ||
- 마이포지셔닝 . . . . 1 match
* 이책은 글로벌CEO 특강에서 스파이렉스 사코사의 박인순 사장님이 아주 아주 강력하게 추천해서 정현이와 공동 구매 해서 샀다. 아직 도서관에는 안 들어 왔는데 지금 우선 신청은 해놓은 상태다. 우선 전체적인 느낌은 보통의 성공학, 자기계발서는 어찌 좀 뜬구름 잡는듯한 내용도 많았는데 이책은 아주 현실적으로 접근하고 있다. 처세서, 성공학 같은 책중에서 이책이 가장 솔직하고 정확하게 그 길을 제시해주는거 같다. 저런 책에 관심이 있다면 이 책을 꼭 읽어 보는게 좋다. 누군가와 협력하고, 누군가의 장점을 알아볼수 있고, 좋은 아이디어를 알아볼수 있는 능력이 정말 핵심인거 같다. 그리고 혼자 잘나서 다 할수 있다는 생각을 가지면 절대 안되고, 자신이 올라탈 말이 있어야 한다. 그리고 2막은 없다는 이야기가 있는데 1막에서 성공하였다고 해서, 그 똑같은 일을 그 회사 나와서 다시 다른 회사 차려서 해서 성공하는 경우는 거의 없다. 그것은 자기 자신이 시기를 잘 만나서 성공한게 아니라 자기가 잘나서 성공한거라는것을 대중에게 보여주고자 하는 자아 때문인데, 그런 자아를 가지고서 다시 성공할 수도 없다. '수로부여'라고 자신이 한번 잘되었던 일이 있으면 계속 그런식으로 일을 하는것을 말하는 특성이 있는데, 두번째로 할때도 첫번째것이 성공하였다고 그런식으로 똑같이 해서 어떤 경쟁력도 생길수 없다.
- 만년달력 . . . . 1 match
||이름|| 사용언어 || 링크||
- 만년달력/곽세환,조재화 . . . . 1 match
함수를 하나더 사용. 코드이해를 증가시키기위해서...
- 말없이고치기 . . . . 1 match
또한, 맞춤법을 바로 잡아주는 것과 같이 명백한 것이라면 ["말없이고치기"]를 하는 것이 훨씬 좋다. 그렇지 않으면 그걸 바로잡기 위해 서로 말을 주고 받는 사이에 부대비용이 더 커질 수 있다.
- 멘티스 . . . . 1 match
== 사용설명 ==
- 몸짱프로젝트/CrossReference . . . . 1 match
* 배열 변수 제거. string과 동적 할당 이용.
- 몸짱프로젝트/DisplayPumutation . . . . 1 match
* Recursive Function Call 사용
- 몸짱프로젝트/HanoiProblem . . . . 1 match
* Recusive Function Call 사용
- 몸짱프로젝트/InfixToPostfix . . . . 1 match
* 스택을 이용
- 몸짱프로젝트/Maze . . . . 1 match
* 스택 사용
- 무엇을공부할것인가 . . . . 1 match
전산학을, 프로그래밍을 공부하는 사람이라면, 만약 내가 지금 배우는 대부분의 지식과 기술들이 내가 졸업을 하고 회사에 입사를 할 약 4년(혹은 병역을 마치는 경우 6년) 후에 쓸모없어 진다면 어떨까 하고 생각을 해 볼 수 있겠죠. 오늘 내가 밤샘을 하고 고민을 하면서 내가 사용하는 특정 도구의 한계를 우회하기 위해 기발한 방법을 짜내면서 얻는 지식은 4년 혹은 6년 후에 어떤 가치가 있을까요? 그 노력에 비해 얼마나 가치가 있을까요? 만약 그런 과정을 통해 어떤 지혜를 얻을 수 있다면, 좀 더 효과적이고 경제적인 방법은 없을까요?
- 문서구조조정 . . . . 1 match
새로 페이지를 만들어주거나, 기존의 스레드 토론에서의 의견, 주장 등의 글들을 요약 & 정리 해줌으로서 해당 주제를 중심으로 페이지의 내용이 그 주제를 제대로 담도록 해준다. 이는 프로그램 기법에서 일종의 ["Refactoring"] 과 비슷한 원리이다.
- 문원명 . . . . 1 match
* ["5인용C++스터디"]
- 문자반대출력/임인택2 . . . . 1 match
아직 J 에서 함수부분까지 못봤다. 문제의 조건을 전부 만족하지는 못함. built-in 으로 제공되는 녀석을 사용해서 내가 짠거라고 하기에는 좀..--;
- 문자열연결/조현태 . . . . 1 match
내용이 간단해서 소스도 간단하다.
- 문제은행 . . . . 1 match
컴퓨터 프로그래밍에 흥미를 느낄수 있게 여러가지 재미있는 문제들을 내보고 서로 풀어보았으면 좋겠다는 취지에서, 그리고... 새내기들을 대상으로하는 여러 이벤트에도 사용되길 바라며 페이지를 만들었습니다. - 임인택
- 문제풀이게시판 . . . . 1 match
문제풀이도우미시장에는 자신이 사용할 수 있는 빈 시간대를 기록한다. 예컨대, 이번 주 금요일 오후 3시에서 7시까지 시간이 빈다면 도우미시장에 자신의 이름과 메신저 등의 연락처와 함께 가능시간대를 기록해 둔다. 또, 도우미를 요청하는 사람 역시 같은 방식으로 자신이 원하는 시간대를 적어둔다. 그러면 짝이 맞는 사람끼리 PP를 하고, 해당 항목을 지운다.
- 바람의딸걸어서지구3바퀴반 . . . . 1 match
* 이책에서는 한비야의 세계여행을 재밌게 전해준다. 이책에서 인상깊은 구절은 킬리만자로 산을 올라갈때 천천히 자신의 속도로 꾸준히 올라간다면 누구나 올라갈 수 있다고 하는 구절이다. 인생도 마찬가지로 누가 어떤 속도로 가던지 자신의 속도를 알고 자신의 속도로 꾸준히 나간다면 못 이룰게 없다. 또 얻은 교훈은 세상은 사람이 만들어낸 각종 규칙, 규범들로 돌아가지만 말만 잘하면 얻고자 하는것을 얻을 수 있다. 결국 그런 규칙, 규범도 사람이 만든 것들이기에.. 그리고 반드시 환경이 편하고 몸도 편해야 행복한건 아니란것도 느꼈다. 오히려 더 행복을 방해하는 조건으로 작용할 수도 있다. 환경이 아주 불편하고 바빠도 사람은 아주 행복할 수 있고, 오히려 행복하기에 더 좋은 조건일 수 도 있다. 오지일 수록 더 행복해 보이는 이유도 이러한 이유 때문일지도 모르겠다. 행복은 내 안에 있다. 그리고 세계에는 지금의 나의 환경과는 비교할 수 없을 만큼 불편하고 좋지 못한 환경에서도 행복하게 사는 사람이 많다는걸 느끼고 지금의 생활에 감사하자는 생각을 했다. 그리고 한비야가 어떤 외국인과 만나서 같이 등산하는데 그 외국인 행동이 꼴볼견이고 싫어할 행동만 했다고 그런다. 그런데 알고보니 그 외국인은 마약에 중독되었다가 마약을 끊고 나서 지독한 우울증에 시달리고 있다고 한다. 그 말을 듣고 쉽게 다른 사람을 판단해서는 안되겠다는 생각이 들었다. 역시 사람 사는 일에는 원인이 있고 결과가 있다. 또 무슨일을 하던지 목표를 잡고 나서 세부적인 계획을 세워서 차근 차근 해 나간다면 아무리 큰 목표라도 이룰 수 있겠다는 생각도 들었다. 사람은 계획에 있어서는 치밀해야겠단 생각이 들었고, 꾸준한 계획들의 실천이 있어야만 원하는 성과를 이룰수 있다는걸 느꼈다.
- 바퀴벌레에게생명을 . . . . 1 match
== 프로그램 사용법 ==
- 반복문자열/이강희 . . . . 1 match
[반복문자열/허아영]을 읽어보세요. 함수를 이해하는데 도움이 되는 내용이 들어있습니다. 함수가 무엇일까요? -- [Leonardong]
- 반복문자열/이도현 . . . . 1 match
[반복문자열/허아영]을 읽어보시면 도움이 될 내용이 있습니다. -- [Leonardong]
- 반복문자열/이정화 . . . . 1 match
[반복문자열/허아영]에 있는 내용을 읽어보길 권합니다. 함수가 무엇일까 생각해볼 수 있을 것입니다. -- [Leonardong]
- 방울뱀스터디/Thread . . . . 1 match
쓰레드를 사용하려면 : 쓰레드로 처리할 부분을 함수로 만들어주고 start_new_thread()로 그 함수로 호출하면 됩니다.
- 벌이와수요 . . . . 1 match
IT에 대한 환상을 심어준 미디어도 문제라고 봅니다. 중앙고용정보원의 보고서에 따르면, 우리나라 게임 개발자 평균 월급이 175만원이고, 웹개발자 평균 월급은 141만원 밖에 안됩니다.
- 벡터/임민수 . . . . 1 match
student("최용수",87),
- 별표출력/하나조 . . . . 1 match
힌트:중첩 for문 사용.
- 복 . . . . 1 match
[http://165.194.17.15/pub/upload/CampusC.zip CampusC] // 오래된 내용이라 구질구질 하기도.
- 복/숙제제출 . . . . 1 match
이번에 구조체도 배웠으니 두번째 숙제를 구조체를 이용하여 구현해보세요. 간단함. -[강희경]
- 복날 . . . . 1 match
* 행사 내용 - 개강총회 성격을 띰
- 분류분류 . . . . 1 match
* 이 위키에서 사용되는 분류페이지들의 시작점(Starting Point).
- 비밀키/나휘동 . . . . 1 match
비밀키를 입력받아서 파일에 있는 내용을 암호화 하는 프로그램
- 빵페이지/구구단 . . . . 1 match
재귀함수인가? 한번 사용해 봤습니다 ㅎㅎ
- 빵페이지/도형그리기 . . . . 1 match
* 포멧팅 이용, index 두개
- 사과나무/과제방/1회차/김서정 . . . . 1 match
== 과제 내용 ==
- 삼총사CppStudy . . . . 1 match
수업방식 : 주제 관련 내용 조사 후 발표..!
- 상규 . . . . 1 match
* [5인용C++스터디] (2003.7.16 ~ 2003.8.27)
- 상쾌한아침 . . . . 1 match
아침 활용하기, 상쾌한 아침 -- 재선
- 상협/Medusa . . . . 1 match
* Python으로 서버를 돌릴때 사용하면 괜찮을듯 싶다.
- 상협/너만의명작을그려라 . . . . 1 match
* 이책의 목적은 한 인간이 삶을 훌륭하게 살아가려면 어떻게 해야 하는지에 대해서 지금까지 살와왔던 사람들중에서 훌륭한 삶을 살았다고 평가되는 사람들을 예로 들면서 그 방법을 제시해주고 있다. 이책은 이 저자혼자서 내용을 생각해서 쓴 책이라기보다 인류에게 훌륭한 인물로 평가받은 사람들이 한 말들과, 그 행적등을 밑 바탕으로 해서 쓰여진 책이다.
- 상협/인공지능/오목 . . . . 1 match
* 재활용 : 원래 두지 않은 곳이지만 가상으로 돌을 두었다고 가정하면서 이것 저것 검사하기(새로운 함수 만들 필요 없이 이전에 만들었던 함수를 재활할수 있음)
- 새싹교실/2011/무전취식/레벨5 . . . . 1 match
== 수업 내용 ==
- 새싹교실/2011/무전취식/레벨6 . . . . 1 match
== 수업 내용 ==
- 새싹교실/2012/반반 . . . . 1 match
|| 임용승 || ||
- 새싹교실/2012/사과나무/과제방 . . . . 1 match
* 최소한 사용법 정도는 있어야 인정.
- 새싹교실/2012/아우토반/뒷반/4.6 . . . . 1 match
|| 강사 || 장용운 || 지각 ||
- 새싹교실/2012/아우토반/뒷반/5.11 . . . . 1 match
|| 강사 || 장용운 || O ||
- 새싹교실/2012/아우토반/앞반/4.5 . . . . 1 match
|| 강사 || 장용운 || O ||
- 새싹교실/2012/아우토반/앞반/5.10 . . . . 1 match
|| 강사 || 장용운 || O ||
- 새싹교실/2012/아우토반/앞반/5.17 . . . . 1 match
|| 강사 || 장용운 || O ||
- 새싹교실/2012/열반/120521 . . . . 1 match
= 수업 내용 =
- 새싹교실/2012/절반/중간고사후 . . . . 1 match
함수 사용법
- 새싹교실/2012/주먹밥/이소라때리기게임 . . . . 1 match
printf("세상을 구할 용사여 이름을 입력하세요(주의! 오타내도 그게 이름됨)\n");
- 새싹교실/2013/라이히스아우토반 . . . . 1 match
* 새싹을 통해 정말로 유용한 측면에서의 언어를 배우고 컴퓨터언어를 최대한 마스터 하는 쪽으로 노력하겠습니다.!!-[박경준]
- 새싹교실/2013/록구록구/10회차 . . . . 1 match
== 수업 내용 ==
- 새싹교실/2013/록구록구/11회차 . . . . 1 match
== 수업 내용 ==
- 새싹교실/2013/록구록구/5회차 . . . . 1 match
== 수업 내용 ==
- 새싹교실/2013/록구록구/6회차 . . . . 1 match
== 수업 내용 ==
- 새싹교실/2013/록구록구/9회차 . . . . 1 match
== 수업 내용 ==
- 새싹스터디2006 . . . . 1 match
씨싹 : 성우용 김대순
- 새페이지만들기 . . . . 1 match
'''방법2''' 의 방식은 일종의 TopDown 방식이 된다. 해당 주제를 Parent로 하여 계속 주제와 연관된 글들을 뻗어나가는 방식이다. 반면 '''방법 1'''전자의 방법은 BottomUp의 방식으로 사용할 수 있다. 새 주제들을 모아서 나중에 페이지분류 & 조정작업을 통해 Parent를 잡을 수 있을 것이다.
- 서버구조 . . . . 1 match
usr - 사용자가 정의하는 프로그램 저장
- 서울대컴공대학원구술시험/05전기 . . . . 1 match
2번 문제 정확하게는 max heap을 설명하고, max heap을 이용해 정렬하는 방법을 설명하라. 05.11.02 10:08
- 셸정렬(ShellSort) . . . . 1 match
* 설명: 셸에 의해 고안된 정렬(소트) 방식. 2분 탐색을 응용한 것으로 집합 중의 첫 번째 항목이 집합의 반 정도의 항목과 비교되고, 다음 2분할한 부분 집합의 두 번째 항목끼리 비교되어 순차적으로 집합의 전 항목이 비교된다. 비교 할 때마다 지정한 기준에서 떨어져 있으면 그 항목의 장소를 교환한다. -네이버 지식사전
- 수학의정석 . . . . 1 match
P.S : 출제자가 GCC만을 사용하는 관계로 그래프등의 문제는 나오지 않을것이다.
- 수학의정석/집합의연산/조현태 . . . . 1 match
음.. 저번 것과 마찬가지로 입력받는 부분은 시간계산에 포함하지 않는다. (사용자의 입력시간이 결정하기 때문.)
- 숫자를한글로바꾸기 . . . . 1 match
* 이강성 교수님께서 만드신 TestDrivenDevelopment 강의 동영상에서 다룬 내용과 같은 문제네요. 이 문제를 푸신 분들은 제게 메신저로 말씀을 해 주세요. DevilsCamp 때도 TestDrivenDevelopment 에 대해서 잠깐 접해보셨겠지만 이 동영상을 보시면 많은것을 얻으실 수 있을 것 같네요. 참고로 제 MSN 주소는 boy 골뱅 idaizy.com 입니다. 원저자께서 해당 파일이 무작위적으로 유포되는걸 원치 않으셔서 신청자에 한해서만 파일을 보내드리겠습니다. - 임인택
- 숫자를한글로바꾸기/허아영 . . . . 1 match
이렇게 편하게 해.ㅎ 4byte 안아껴두 된다구~ㅎ 메모리 남아돌앙.ㅎ 저거 소스가 용량 더먹게땁.ㅎ
- 숫자야구/강희경 . . . . 1 match
cout << " 사용자는 그 숫자를 맞추는 것입니다." << endl;
- 숫자야구/방선희 . . . . 1 match
배열을 이용해서 다시 짜보기..
- 숫자야구/손동일 . . . . 1 match
#include <ctime> // time(0)의 사용을 위해 필요합니다.
- 숫자야구/조재화 . . . . 1 match
#include <ctime> // time(0)의 사용을 위해 필요합니다.
- 스네이크바이트/C++ . . . . 1 match
MFC공부를 시작하기 앞서 [강희경]이 C++과 객체지향에 대한 내용을 설명하기 위해 만든 페이지 입니다.
- 시간관리인생관리 . . . . 1 match
시간 관리 책중에서 제일 괜찮은 책같다. 현실적이다. 몇가지는 실제 적용해 봐야겠다. -- [상협]
- 시작 . . . . 1 match
}}} [[ISBN(ISBN 숫자,KR]] [[FullSearch(내용단어)]] [[PageList(제목단어)]] [[RSS(RSS주소,5)]] [[LinkCount(페이지제목)]]
- 실습 . . . . 1 match
성적 관리하는 프로그램을 클래스(class)를 이용하여 C++로 작성하여 본다.
- 아젠더패턴 . . . . 1 match
'''적어도 3~6주치의 계획된 모임을 가지고 아젠더를 만들어서 발표하라. 아젠더가 어느정도의 리드-타임을 두고 개정될 수 있도록 하고, 특별하고 예상치 못한 이벤트나 새롭게 발견한 작품의 스터디를 수용하라.'''
- 안녕하세요 . . . . 1 match
=== 안녕 난 용욱이야 ===
- 알고리즘4주숙제 . . . . 1 match
송어의 길이가 7~11 인치 사이라고 가정하자. 송어의 길이가 9일 확률은 얼마인가? 앞의 내용에서 부족한 부분은 무엇인가? 무엇에 의해 확률이 달라질수 있겠는가?
- 알고리즘5주숙제 . . . . 1 match
랜덤마이즈 알고리즘(몬테 카를로 알고리즘)을 이용하여 원주율의 근사치를 구해보자
- 얼굴빨개지는아이 . . . . 1 match
아무리 천천히 읽어도 한 시간이면 읽을 수 있는 분량인데, 절대 감동이 덜하거나 내용이 빈약하지 않다. 마르슬랭 까이유와 르네 라토는 친구다. 갑작스레 라토가 이사간 이후, 커서 다시 만난다. 그리고 행복한 우정을 이어나간다.
- 여사모/과제/패턴인식 . . . . 1 match
사용자로부터 하나의 문자열을 입력받아 기존 문자열에 입력받은 문자열이 있는지 여부를 알려주는 함수를 만들어 보세요.
- 위키메뉴얼 . . . . 1 match
사용법 대부분이 완성되었습니다. 일정이 빡세서 원래 목표했던 기일에는 맞추지 못했지만 끝이 보이기 시작합니다.
- 위키분류 . . . . 1 match
위키위키 사용법, 위키위키 철학등에 관련한 페이지들.
- 위키에대한생각 . . . . 1 match
* 검색을 하지 않고 페이지를 만들 경우 같은 내용을 담을 페이지가 생길 수 있다. 페이지만들기를 할 때 자동으로 검색을 한 다음 만들게 하는 방법도 괜찮은 듯하다.
- 유용한팁들 . . . . 1 match
= 인덱서를 만드는데 유용한것 =
- 윤정훈 . . . . 1 match
99단 숙제 코딩내용
- 윤종하/지뢰찾기 . . . . 1 match
/*맵에 지뢰좌표 입력 및 디버깅용 파일 출력*/
- 음계연습하기 . . . . 1 match
피아니스트는 연주 능력 향상에 크게 도움이 될 것 같지 않은 음계를 여러 달 동안 계속 연습하기도 한다. 그러나 그 연습이 피아니스트로 하여금 원하는 음악적 성취를 이룰 수 있도록 해준다. 외과 의사는 능숙한 수술 실력 향상에 크게 도움이 될 것 같지 않은 작은 손놀림을 익히기 위해 여러달 동안 계속해서 봉합용 실과 씨름을 한다. 외과 의사는 그 꾸준한 연습 덕분에 수술을 빠르고 정확하게 하게 되고, 그 결과 소중한 인명을 구하기도 한다. [[HTML(<FONT COLOR=RED>무언가를 성취하는 것은 반복적인 연습에 의해서만 가능하다. </FONT>)]]
- 이병윤 . . . . 1 match
- 사용 언어 : Python
- 이상태 . . . . 1 match
* 위키사용법 , 비쥬얼스튜디오가 이런거구나~ / 3.16
- 이승한/mysql . . . . 1 match
* PHP 에서 지원하는 MySql API 함수를 사용
- 이승한/tip . . . . 1 match
잘 알지는 못하지만 XOR을 활용할수 있는 다양한 방법이 존재할듯.
- 이승한/자전거여행 . . . . 1 match
비누, 칫솔, 샴푸, 치약, 타월, 여행용 휴지
- 이연주/공부방 . . . . 1 match
- 특수문자를 이용해보시오. 다른 방법이 있을수도 있음. - [임인택]
- 이영호/문자열검색 . . . . 1 match
출제자의 뜻이 strstr함수를 이용하는 것이 아니라
- 이영호/미니프로젝트#1 . . . . 1 match
(2일에 한번씩 컴퓨터를 사용하므로...)
- 이영호/숫자를한글로바꾸기 . . . . 1 match
재사용은 가능하지만 수정 불가능 코드로 스스로 선언하겠음. 키키.
- 이영호/잡다 . . . . 1 match
여기서 재 사용할 수 없는 에너지인 열을 가지고 가상적인 실험을 해봤다. 덕분에 잠을 설쳤지만 말이다.
- 이장길 . . . . 1 match
== 추후 내용 추가 예정 ==
- 이차함수그리기/조현태 . . . . 1 match
소스 내용안의 말인데.
- 자료병합하기/임인택 . . . . 1 match
=== haskell built-in 함수와 lambda function 이용 ===
- 자리수알아내기/나휘동 . . . . 1 match
수학을 약간 이용해서 자리수를 구합니다. 로그를 취하면 자리수가 나오죠?
- 전문가의명암 . . . . 1 match
전문가는 한가지를 오랜 기간동안 해왔다. 그래서 그 작업이 몸에 배어 있다. 그의 근육과 신경, 관절이 기억하고 있는 것이다. 덕분에 자신의 뇌력은 거의 사용하지 않는다. 그래서 해당 작업을 하면서도 딴 짓을 자유롭게 할 수 있고, 작업 중 예외상황이 생겨도 여유롭게 대처할 수 있다.
- 정규표현식/templete . . . . 1 match
== 내용 ==
- 정규표현식/소프트웨어 . . . . 1 match
* 정규표현식을 지원하는 소프트웨어와 간단한 사용법을 정리 한다.
- 정모/2002.10.30 . . . . 1 match
* 부족한 내용을 채워주세요. --["neocoin"]
- 정모/2002.11.13 . . . . 1 match
결과 : ["상규"]가 다음 정모에 COM, ATL 에 대한 내용 발표
- 정모/2002.12.30 . . . . 1 match
= 내용 =
- 정모/2002.3.28 . . . . 1 match
=== 내용 ===
- 0 . . . . 1 match
* 흠 그런데 이 페이지 제가 고치기 전까진 없었던 페이지인 것 같네요. 근데 다른 페이지는 없으면 페이지를 만들거나 다시 검색하라고 나오는데 이건 왜 내용은 비어있지만 페이지는 생성되어 있던 것처럼 나왔지?? - [김수경]
- 정모/2002.9.26 . . . . 1 match
ps. 조금 아쉬운건, 조언해줄만한 경험있는 선배들의 참여가 적은 것같다는. (병특 문제에 대해 지금 준비하고 있는 사람이 이야기하는 것과, 현업에서 뛰는 사람이 이야기할때는 그 내용이 많이 차이날것 같다.) 시간이 늘 학부생 위주로 맞춰져 있는것도 약점이 되는듯하다. --["1002"]
- 정모/2003.1.29 . . . . 1 match
= 내용 =
- 정모/2003.11.3 . . . . 1 match
== 회의 내용 ==
- 정모/2003.12.27 . . . . 1 match
== 내용 ==
- 정모/2003.2.12 . . . . 1 match
= 내용 =
- 정모/2003.9.23 . . . . 1 match
== 회의 내용 ==
- 정모/2004.1.6 . . . . 1 match
* 회의 자체에 대한 부담감이 작용하지 않았다 싶다 --[문원명]
- 정모/2004.2.17 . . . . 1 match
* 7피 칠판에 있던 내용이 사라졌군요. 회의록을 기억에 의존해서 써야하네요. 죄송합니다. --휘동
- 정모/2004.2.3 . . . . 1 match
* 소풍을 여행으로 바꾸려고 합니다. 동문서버 제로페이지 게시판에도 있고 [2004겨울여행] 에도 관련 내용이 있으니 참석할 수 있는지 없는지 적어주세요. 다른 장소를 추천하셔도 좋습니다. -[Leonardong]
- 정모/2004.3.12 . . . . 1 match
* 내용 - 전통, 고학번, 술이 없음, 토크쇼, 거창하게, 하는일만, 후기링크, 직접 말함, 안오면 후회, MSN
- 정모/2004.4.9 . . . . 1 match
* [여섯색깔모자]를 적용해서 회의를 해 보았습니다.
- 정모/2004.5.21 . . . . 1 match
과거에 대학원에 이야기해서 대학원실을 빌려서 사용했습니다. --NeoCoin
- 정모/2004.6.28 . . . . 1 match
*각 스터디 그룹은 의무적으로 스터디한 내용을 발표하는 형식으로 세미나를 한다.
- 정모/2004.9.24 . . . . 1 match
방법론, 위키활용 - 지식관리, 다양한 것, 자유롭다, 회의, 숙제를 스스로, 새로운 것을 한다
- 정모/2004.9.3 . . . . 1 match
정확하지 않습니다. 빠진 내용은 추가로 적어주세요. --[Leonardong]
- 정모/2005.1.17 . . . . 1 match
PDA기초지식및 구입, 활용 가이드 - [이승한]
- 정모/2005.1.3 . . . . 1 match
* [신재동] 형의 위키사용 압박. ''위키 한 줄 이상 안쓰면 다음 정모때 자기 돈 내고 밥 먹어!!''
- 정모/2005.4.25 . . . . 1 match
└ 이중에서 62만원 사용가능 ( ex: 회식릴레이시작? )
- 정모/2005.9.5 . . . . 1 match
* 저고학번이 한팀이 됨. 학생회 점검표를 활용한다. 매달 조를 바꾼다. 담당제. 정도의 이야기
- 정모/2006.1.12 . . . . 1 match
보여주기 준비해 주세요. 프로젝트 사용 할겁니다^^
- 정모/2006.1.19 . . . . 1 match
* 아래 코드를 응용하여 한번만 돌을 두는것이 아닌 계속돌을 둘수 있도록 적절하게 수정~
- 정모/2006.2.16 . . . . 1 match
= 회의 내용 =
- 정모/2006.6.23 . . . . 1 match
* 다음주 회의 내용 : 엠티 - 프로젝트 - 스터디
- 정모/2006.6.29 . . . . 1 match
* 정회원: 정승희,이차형,윤영준,김준석,김대순,주소영,이경록,이송희,성우용,이장길
- 정모/2006.7.6 . . . . 1 match
우용, 장길, 창현, 대순, 재혁, 건영, 선호, 현태, 재웅, 준석, 휘동, 상협, 규완, 도현, 재니, 창섭, 상규, 상섭, 규현, 수생, 정현, 승한, 아영, 보창, 기웅
- 정모/2011.11.9 . . . . 1 match
* 소닉 OMS를 보면서 소닉이 돌 때 마다 제 머리도 따라서 움직인 듯한 느낌이?! 그리고 소닉x는 사람도 등장하길래 안 봤었는데, 쉐도우가 궁금해서 봐야할 듯 합니다ㅋㅋ 게임에 나오던 로봇 소닉도 등장한다고 봤던거 같은데 은근 재밌을 것 같아요. 다음 주에 예정된 쓰레기로 작품을 만드는 것도 기대됩니다. 혹시 A4용지 박스 필요하면 말씀주세요ㅎㅎ - [강소현]
- 정모/2011.12.30 . . . . 1 match
* 12월 활동 내용이 없어 한 해 회고로 대신합니다.
- 정모/2011.4.4/CodeRace/김수경 . . . . 1 match
* 사용 언어는 [RubyLanguage]
- 정모/2011.7.4 . . . . 1 match
* 중간에 물리 교수님에게서 전화 와서 전화 받고 오니까 많은 부분이 지나가있더군요 -ㅅ-;;;; 쩝.. 뭐 그래도 들을 내용은 다 들었으니깐... 방학을 맞아 새로이 스터디가 진행되는 건 열심히 해 봐야겠네요a 결국 방학이든 아니든 학교는 자주 오게 된 -ㅅ-ㅋ 끝나고 곱창집이랑 하우스?에서 아이스크림 먹고 오락실 가서 1945한판 하고 (펌프가 없어서 못하고) 재미있었습니다. ㅋㅋㅋ - [권순의]
- 정모/2011.8.22 . . . . 1 match
* 서버 백업(아마도 nForge 위주?) 과정에 가끔 일어나는 위키 8:45 현상을 보면서 nForge에 불필요한 용량을 잡아먹는 프로젝트 svn들을 몇개 지워야겠단 생각이 들었어요. 몰랐을 때 코드만 관리하지 않고 이런저런 잡데이터를 넣었다보니-_-;; 사생대회 재밌었습니다. 고퀄의 로고를 만들지는 못했지만 간만에 그림질이라니 감회가 새로웠어요. 한솥 도시락 치킨마요가 2000원 할인하는 즐거운 월요일이었습니다 (물론 이건 8월까지 이지만;;) - [지원]
- 정모/2011.8.8 . . . . 1 match
* html5에 있는 Canvas를 이용해 웹 그림판을 만들고 있습니다. 다들 여러가지 기능을 추가중입니다.
- 정모/2012.10.15 . . . . 1 match
* 칠판은 사용한 후 지워주고, 마커는 칠판 옆(주변)에 둡시다.
- 정모/2012.10.8 . . . . 1 match
* 작은자바 - DB와 연동 (JDBC 사용)
- 정모/2012.12.10 . . . . 1 match
* 연락주시면 자세한 내용을 알려 드립니다.
- 정모/2012.2.10 . . . . 1 match
* 참가자 : [김준석], [변형진], [김수경], [서지혜], [강성현], [권순의], [정종록], [고한종], [김태진], [이민규], [이진규], [장용운], [임상현], [정진경]
- 정모/2012.2.24 . . . . 1 match
* 개강 앞두고 피시실 관리와 새내기등 신경쓸일 많은 와중에도 정모 열심히 준비하는 회장님 존경. 이전 ZeroPage가 했던 고민을 다시 하고 계신듯 하여 (훌륭한 세미나나 일용할 양식같은 물질적 도움은 못하지만) 도움을 드리고 싶네요. 그렇다고 결과가 특별히 좋았던건 아니라 망설여지기도 하고.. 커피나 한잔 할까요 회장님- - [서지혜]
- 정모/2012.4.2 . . . . 1 match
* 회고하면서 friendship에 쓸 내용도 함께 쓰는 아이디어 좋은 것 같아요. 회장 혼자 일하는 거 보다 나눠서 쓰는게 나으니까 ㅋㅋ 써달라고 말만 하면 보통 안 쓸텐데 이렇게 정모에서 쓰게하는 건 좋은 방법이네요.
- 정모/2012.5.21 . . . . 1 match
1.5 시간동안 지루하지 않고 꽤 재미있게 기술적인 토론을 할 수 있었습니다. OST에 적용도 좋고 혹은 Speed geeking 을 코딩 작업이 끝난후에 소규모로 서로 코드 리뷰를 하면서 고학년의 의견을 붙이는 것도 좋을 것 같아요.
- 정모/2012.8.8 . . . . 1 match
* Spring - Secure...를 사용하지말자.??
- 정모/2013.1.22 . . . . 1 match
* 도메인,호스팅,스티커 등에 사용된후 차기 회장 김민재 학우에게 인계될 예정
- 정모/2013.1.29 . . . . 1 match
* 지출 예상내역으로 신입생 맞이를 위한 책자제작 비용, 스티커 등이 있다.
- 정모/2013.10.2 . . . . 1 match
= 주요 내용 =
- 정모/2013.10.8 . . . . 1 match
= 주요 내용 =
- 정모/2013.4.15 . . . . 1 match
* 지난번에도 했던 얘기지만 오늘 사람이 많아서 다시 얘기, 비용얘기.
- 정모/2013.5.20 . . . . 1 match
* 데블스캠프 연락을 돌렸습니다. 양식은 [정모/2012.5.21] 내용을 참고로 했습니다.
- 정모/2013.5.6/CodeRace . . . . 1 match
* 문제는 2006년도에 진행했던 Code Race 문제를 이용해서 진행되었습니다.
- 정모/2013.8.26 . . . . 1 match
= 주요 내용 =
- 정모/2013.8.5 . . . . 1 match
= 주요 내용 =
- 정모/2013.9.25 . . . . 1 match
= 주요 내용 =
- 정의정 . . . . 1 match
* [데블스캠프2013] - MVC와 Observer 패턴을 이용한 UI 프로그래밍
- 제로페이지의장점 . . . . 1 match
나는 잡다하게도 말고 딱 하나를 들고 싶다. 다양성. 생태계를 보면 진화는 접경에서 빨리 진행하는데 그 이유는 접경에 종의 다양성이 보장되기 때문이다. ["제로페이지는"] 수많은 가(edge)를 갖고 중층적 접경 속에 있으며, 거기에서 오는 다양성을 용인, 격려한다(see also NoSmok:CelebrationOfDifferences). 내가 굳이 제로페이지(혹은 거기에 모이는 사람들)를 다른 모임과 차별화 해서 본다면 이것이 아닐까 생각한다. --JuNe
- 조금더빠른형변환사용 . . . . 1 match
// 인라인 어셈 사용.
- 조재화 . . . . 1 match
* 7/16~ over [5인용C++스터디]
- 조현태 . . . . 1 match
== 그 이외의 내용.. ==
- 조현태/놀이/네모로직풀기 . . . . 1 match
아! 문제가 있는걸 , 너가 프로그램으로 푼것이구나.. 이렇게 이용 할 수도 있구나.. 많이 배운다 현태! ㅋ - [허아영]
- 중위수구하기 . . . . 1 match
(output 예를 사용하여 변수테이블 작성.)
- 지금그때2003/ToDo . . . . 1 match
NeoCoin 군은 페이지 보는대로 외부 링크로 사용하시길.
- 지금그때2003/후기 . . . . 1 match
* 준비할때의 우려와는 달리 사람들이 게임의 룰을 잘 이용하셔서 재미있는 자리가 되었다는 점이 있었고 (역시 역사와 전통을 자랑하는!)
- 지금그때2005/리허설 . . . . 1 match
앞에는 저희가 생각한 이번시간에는 최소한 이런 이야기는 꼭 나왔으면 한다는 이야기들을 적어 놓았습니다. 그 이외에 또 질문하고 싶으신 내용이 있으시다면 언제든 나오셔서 질문을 등록하실수 있습니다. 대답에 집중하는 사이에 어느순간 질문을 까먹어 버리는 경우도 많으니까요.
- 지금그때2005/자료집 . . . . 1 match
지금그때 시작하기 전에 출력할 내용. '''누구든 수정 환영.'''
- 지금그때2005/후기 . . . . 1 match
* 많은것을 준비하였고 많은 기대도 했었던 지금그때 2005. 작년에 참가하지 못했던 아쉬움을 달래기위하여 올해에는 준비도우미도 하였습니다. 나름대로 열심히 하였는데 행사의 주체가 되어주었으면 하였던 05학번이 많이 오지 못한것이 조금 아쉬웠을뿐. 행사 내용에는 큰 만족을 하였습니다. 저희가 준비하면서 어떤 자리가 되었으면 했던것이 잘 반영된것 같았고 이런 행사가 있을수 있다는것에 대학에 와서 또하나의 기쁨을 얻은것 같습니다. 고학번과 저학번이 이렇게 어울릴수 있는자리가 술자리 외에는 거의 힘든것이 사실인데 이렇게 잘 어울릴수있다는것에도 신선한 충격을 받았고요 앞으로도 쭉 계속 이어나가길 바랍니다. - [조동영]
- 지금그때2006/세부사항 . . . . 1 match
주제 - 이전의 주제를 그대로 사용하되, 필요한 것은 추가한다.
- 지금그때2006/홍보 . . . . 1 match
|| 신재용 선배님 || X || . || . ||
- 진격의안드로이드&Java . . . . 1 match
== 강의 내용 ==
- 창섭/Arcanoid . . . . 1 match
|| 11월 12일 || 새벽에 완성. 추가기능-바 늘어나기, 공 달라붙기 OnTimer 사용. ||
- 채근담 . . . . 1 match
* 특히 인상 깊었던 구절은 하면 안되는데, 하면 안되는데 (정작 정말 하고 싶은것인데)은 이미 했다고 생각하면 된다는 그런 비슷한 구절이다. 이 구절을 담배 피는것에 적용하면 딱이다. 이제 담배 피면 안되는데, 이제 담배피면 안되는데 정말 피고 싶을때는 이미 한까치 폈다고 생각을 하는것이다. 담배를 피나 안피나 피고나서 한 2,3분 지나면 똑같으니깐.. -_-
- 책분류Template . . . . 1 match
사용법은 NoSmok:ISBNMacro 를 참고하세요.
- 최대공약수/조현태 . . . . 1 match
사용하려다 왠지 함수를 잘못 나눈듯한 느낌에 뒤늦게 수정..;;
- 최소정수의합/문보창 . . . . 1 match
- -> 정리 : 규칙성이 없다면 어쩔 수 없지만, 해당 문제에서 규칙성을 찾아푸는것이 문제풀기에 용이하다 이말씀이시죠? ㅋ
- 최소정수의합/송지훈 . . . . 1 match
Haskell에서 굳이 반복이란 개념을 사용하지 않아도 되잖아요?ㅋㅋ [최소정수의합/임인택2] 도 한 번 보세요.
- 최소정수의합/임인택 . . . . 1 match
몇명을 제외하곤 다들 루프를 ㅤㅆㅓㅅ을것 같아 다른 방법을 생각해보았다. 내 코드를 다 짜고보니 현태와 보창이가 가우스의 방법을 써서 summation 을 구한걸 볼 수 있었다. 고등학교 시절을 떠올린 모양이었다. 난 조금 더 시간을 거슬러 올라가 중학교 시절로 올라갔다. 문제에서 요구하는게, ''~~이상인 최소 정수(사실 이 문제에서는 범위가 정수가 아닌 자연수로 제한되어 있다고 보는게 더 정확하다)를 구하라''인데, 이를 보고 불현듯 '''부등식'''이 생각나 바로 적용하였다. 처음에는 DivideAndConquer 를 생각해 보기도 했는데 영 시원치가 않았다가 발상의 전환을 이룬게 도움이 되었다.
- 최소정수의합/임인택2 . . . . 1 match
로 정의했다가 이전에 작성했던데로 gauss 의 방법을 이용하여,
- 캠이랑놀자 . . . . 1 match
* C++ & Python - 현재 라이브러리들 관계상 C++ 로 구현된 것들이 많은 관계로. 중간에 [1002] 가 Python Wrapper Class 만들기를 시도할 것이긴 함.~ Python 의 경우 이미지 처리에 대해서 prototyping 을 위해 중간에 이용할 예정.
- 캠이랑놀자/아영/숙제1 . . . . 1 match
즉석해서 써봅니다. editPlus가 안되서 ,ㅠ cmd로 실행한거 모아볼께용^^
- 캡스톤설계실 . . . . 1 match
* 헐 이런 용도로 위키가 만들어지다니... ㅋㅋ
- 코드레이스/2007.3.24 . . . . 1 match
신호등을 구현한다. 신호등은 빨간색에서 시작해서 파란색으로 바뀌는 것을 반복하는 보행자용 신호등이다.
- 코드레이스출동 . . . . 1 match
[코드레이스출동/CleanCode] : 재선, 회영, 도현, 용재
- 코드레이스출동/후기 . . . . 1 match
* SVN 사용에 매우 미숙했다. 또한 리눅스를 너무 몰랐다. 간단한 쉘 스크립트 작성하는데도 헤맸다. 수차례 도움을 요청했지만 불평 한번 없이 웃으며 도와주신 자봉님께 감사드립니다!
- 큰수찾아저장하기/김태훈zyint . . . . 1 match
- 추가: 리팩토링(?) 한거같지도 않지만-_- 일단 나눠봤다; 행렬에서 transpose를 이용해서;;; 일단 짜보았는데 효율적이진 않은듯 -_-
- 큰수찾아저장하기/허아영 . . . . 1 match
분명히 열심히 읽는데 말이야..ㅎㅎㅎ 문제는 내 머리의 메모리가 작아서 몇몇 부분은 기억을 잘 못한다고...ㅎㅎㅎ 그러니 다 적힌내용으로 삽질하고 있어도 너그러운 아량으로 이해해주시길..ㅎㅎㅎ - [조현태]
- 타도코코아CppStudy . . . . 1 match
* Visual C++의 Debug 사용법을 알고싶어요^^ --[선희]
- 타도코코아CppStudy/0804 . . . . 1 match
최소 한개. 무조건 클래스를 이용하세요. 또한 될수 있으면 객체지향적으로.
- 타도코코아CppStudy/0811 . . . . 1 match
최소 한개. 무조건 클래스를 이용하세요. 일단 문법을 익혀야 하니... 또한 될수 있으면 객체지향적으로.
- 토이/메일주소셀렉터 . . . . 1 match
||이름|| 사용언어 || 링크||완료||
- 토이/삼각형만들기 . . . . 1 match
사용자의 입력에 따라 다음과 같은 모양을 콘솔에 만든다
- 파스칼삼각형 . . . . 1 match
|| 도전자 || 총개발시간 || 소스라인수('''주석제외''') || 사용언어 || Source ||
- 파스칼삼각형/aekae . . . . 1 match
파스칼삼각형 배열 이용
- 파스칼삼각형/구자겸 . . . . 1 match
최소 배열로 만든 삼각형입니다. 어떤분이 전화로 질문 하셔서 모르겠다고 했는데, 완성해버렸습니다. 필요한 배열공간은 시그마n 이 되는군요. 비쥬얼 스튜디오가 없어서 파이썬으로 만들어봤습니다.(코드가 상당히 지저분하네요-_-) 파이썬을 깔고 pascal.py로 저장한 다음에 명령콘솔창에서 "pascal.py 10"이런식으로 사용.
- 파스칼삼각형/김홍기 . . . . 1 match
* 그런데 재귀함수쓰니 뭔가 이상한 문제가 나와서 그냥 포문활용
- 파일 입출력_3 . . . . 1 match
fprintf( fpt_1, "a = %d \nb = %d \nc = %d", a,b,c); //printf와 사용법 비슷
- 파킨슨의 법칙 . . . . 1 match
* '''적임자를 선발하는 임용 원칙''' 혹은 짧은 지원자 명단
- 포항공대06입시 . . . . 1 match
컨셉을 얼마나 이해하고 있나, 이것을 어떻게 실생활에 응용을 할 수 있는지 본다.(그냥 외우는것 걸러내기)
- 프로그래밍/ACM . . . . 1 match
Java 언어 사용시
- 프로그래밍/장보기 . . . . 1 match
타이머를 켜놓고 시간을 우선시하다보니 역시 Refactoring을 하고 싶지 않았다. 요구사항을 읽고 감이 팍 오는 문제는 그냥 막 코딩하는 식이다. main에 확 집어 넣고 풀어도 그냥 풀린 문제를 굳이 메소드로 나누고 여러 군데에서 사용되는 변수를 필드화하는 것이 정말 귀찮았다. 하지만 그러한 방식으로 전환하고 습관화하는 능력을 키워야 겠다.
- 프로그래밍잔치 . . . . 1 match
* 비용 : '''["회비"] 안낸 사람 회비 만냥(간식해결할 것임)'''
- 프로그래밍잔치/정리 . . . . 1 match
* 내용 자체 선정 - 나중에 다시 시도해봐도 좋은 주제들이 나온것 같다.
- 프로젝트분류 . . . . 1 match
위키위키를 이용해서 진행하고 있는, 또는 완성된 프로젝트들.
- 피보나치/westy . . . . 1 match
= 피보나치/이용재 =
- 피보나치/김영록 . . . . 1 match
변수 a,b,c를 이용해서 a,b가 주 숫자고 c는 임시 변수 입니다
- 허아영 . . . . 1 match
저도 이거 넣을래용~
- 호너의법칙/조현태 . . . . 1 match
그리고 제가 사용한 컴파일러(비주얼 .NET) 은 저에게 말하면 미소녀는 무료, 일반인은 밥 한끼, 미소년은 무한끼에 FTP나 HTTP로 제공해드리고 있습니다.^^
- 황재선 . . . . 1 match
* [5인용C++스터디]
Found 2392 matching pages out of 7555 total pages (5000 pages are searched)
You can also click here to search title.