- Linux/필수명령어/용법 . . . . 432 matches
사용자를 새로 등록한다.
이것은 슈퍼 유저만이 사용할 수 있다. 명령을 입력하면 로그온 이름 등을 차례로 물어오며, 그에 따라서 알맞게 입력해 나가면 된다.
그외에도 홈 디렉토리에 사용하는 셸 등을 계속 물어오는데, 대괄호 속에 내정된 것을 그냥 사용하고자 한다면 엔터키만 누르면 된다. 패스워드 등을 입력하고 나면 지금까지 입력된 정보를 보여주고, 몇 가지 생성 작업을 화면으로 보여준 후 작업을 종료한다.
프로그램을 지금이 아닌 나중에 실행하도록 예약한다.
-q 큐 : 대소문자 알파벳으로 큐를 지정한다. 순서적으로 빠른 알파벳이 지정된 큐 일수록 CPU 시간 점유 우선권이 낮다.
명령은 기본적으로 표준 입력 장치를 통해서 받으며, ^D로 입력을 종료한다. 리다이렉션을 사용하여 다른 파일의 내용을 사용할 수 있다.
/etc/at.allow 파일이 있다면 이 파일에 명단이 있는 사용자만이 at 명령을 사용할 수 있다. /etc/at.allow 파일이 없다면 /etc/at.deny 파일을 찾는다. 이 파일에 목록이 있는 사용자는 at 명령을 사용할 수 없다. 두 파일 모두 찾지 못한다면 오로지 슈퍼 유저만이 at 명령을 사용할 수 있다. 그리고 /etc/at.deny 파일이 비어 있다면 모든 사용자가 at 명령을 사용할 수 있다.
인수로 주어진 문자열을 큰 글씨로 만들어서 출력한다.
-w : 옵션 지정만 하면 80 칼럼으로 폭을 바꾼다. 지정하지 않으면 132 칼럼으로 내정되어 있다. -w 옵션 뒤에 숫자를 지정하면 원하는 폭으로 조정할 수 있다.
출력은 표준 출력으로 내정되어 있다. 글자는 열 배 정도 확대된다. 글자는 에스터리스크(*)를 조합하여 만든다.
biff
- biff [ y 혹은 n]
유닉스 셸은 사용중이라도 주기적으로 전자우편의 수신 여부를 점검한다. 만일 사용자가 전자우편이 도착하는 즉시 알고자 한다면 biff를 사용하여 그것을 지시할 수 있다. 또는 언제라도 그 기능을 해제할 수도 있다. biff는 인수없이 사용되면 현재 어떤 상태로 되어 있는지 보여준다. 기능 설정과 해제 여부는 y 혹은 n 인수를 주어서 결정한다.
- $ biff
- $ biff y ,,기능설정
- $ biff
인수를 하나만 준다면 그 숫자는 연도를 의미하는 것으로 간주된다. 두 개의 숫자를 준다면 앞의 것은 월, 그 다음은 연도를 의미하는 것이 된다. 우리의 습관과는 다른 방법을 사용한다. 아무 인수도 주어지지 않으면 이번달의 달력을 표시한다. 연도를 표기할 때는 서기를 완전히 표기해야 한다. 예를들어 97은 1997년이 아니라 서기 97년의 달력을 출력할 것이다.
cat은 catenate(사슬로 잇다. 연결하다)에서 이름이 유래한다. 이것은 파일의 내용을 화면에 출력하는 데 사용되기도 하며 파일을 다른 곳에 순차적인 스트림으로 보내기 위해 사용된다.
-e : 제어 문자를 ^ 형태로 출력하면서, 각 행의 끝에 $를 추가한다. -vE와 같다.
-s : 중복되고 겹치는 빈 행은 하나의 빈 행으로 처리한다.
- PairProgramming . . . . 117 matches
http://pairprogramming.com/images/pairprogrammers.gif
하나의 컴퓨터에서 둘이서 서로 상의하면서 번갈아가며 프로그래밍을 하는 방법.
* Pair Refactoring - 꼭 소스 코드가 아니더라도 위키 페이지에 대한 ["문서구조조정"] 을 하는 경우에도 적용할 수 있다. 특히, 해당 토론이 벌어진뒤 양론으로 나누어졌을 경우, 각 의견 지지자들이 Pair 로 문서구조조정을 할때 이용할 수 있다.
* 5분 Pair-Change - 장과 단이 존재하긴 하는데. 장점으로 본다면, 자신의 프로그래밍 차례가 빨리 돌아오면서 Pair 끼리의 Feedback 이 빠르다는 점에서 집중도가 높다는 점이 있다. 단, Junior 의 경우 자신의 사고가 성숙해질 시간을 방해할 수 있다. 이 경우 5분으로 시작, 점차적으로 Change 의 기간을 늘려주는 방법이 있다.
* Protocol Analysis, 지식의 전달 - Seminar:CognitivePsychology 참조. 다른 사람의 사고과정을 관찰하고, 또한 자신의 사고과정을 다른 사람으로 하여금 관찰할 수 있게 해준다. 이는 자신의 프로그래밍 과정중 잘못된 부분을 고치는데 도움을 준다.
* 해당 시간 내 집중도의 상승, Pair Pressure - 평소 프로그래밍 외의 것(프로그래밍 중 음악듣기, 쓸데없는 웹서핑, 메일 읽기)에 대한 잡음을 없앤다. 작업 자체에만 몰두하게 해준다. ["TestDrivenDevelopment"] 와 상호작용이 빠른 언어(["Python"] 등..)를 이용하면 Feedback 이 빠르므로 집중도가 더 높아진다.
* Junior : Junior Pair 는 의미가 없다? - 결과물에 상관하지 않는 학습의 경우 그 의미가 있다. Junior 의 실력 한계 내에서의 Output 으로도 의미가 있다. 처음 프로그래밍을 익히는 사람에게 Pair 를 하는 것 자체가 새로운 학습경험이 된다.
PairProgramming 의 다른 적용 예로서 PairSynchronization 이 있다.
=== 동문서버 프로그램 개발중 ===
동문서버 프로그래밍 팀의 인수인계용으로 이용되었었다. PP를 주로 하고 한두번의 VPP를 했다. 해당 소스를 같이 만들어가면서 기존의 프로그램을 설명했다.
Expert : Junior . 즉, 해당 분야에 대한 전문가 : 초심자 의 문제이다. 이 경우 그 진행이 늦어질 수 있다. (Expert : Expert는 최고의 효율성을 가진다. 물론 이것도 열린 마음을 바탕으로 한다. Junior : Junior 도 나름대로(?) 빨리 움직인다. (제대로 움직인다는 보장은 못한다. -_-;)) 그리고 Expert가 해당 프로그래밍에 대한 답 (코드)을 이미 알고 있는 경우 Expert의 집중도와 긴장감을 해치게 된다.
이 때에는 Expert는 놀지말고 (-_-;) Observer의 역할에 충실한다. Junior 의 플밍하는 부분을 보면서 전체 프로그램 내의 관계와 비교해보거나, '자신이라면 어떻게 해결할까?' 등 문제를 제기해보거나, reference, 관련 소스를 준비해주는 방법이 있다.
또 하나의 문제점으로 제기된 것은, Junior 가 Expert의 권위에 눌릴 수 있다는 것이다. Junior 는 질문에 용감해야 한다. Expert는 답변에 인색해서는 안된다. 열린 마음이 필요한 일이다. (Communication 과 Courge 는 XP 의 덕목이다. ^^)
전문가라 하더라도 프로그래밍의 실력과 다른사람에게 답변해주는 능력은 다르다. 커뮤니케이션 능력은 실제 도메인에 대한 지식과는 다를 수 있다. Expert 는 Junior 에게 설명을 해줌으로서 기존의 지식에 대한 정리를 해 나갈 수 있다. Junior 는 혼자서 삽질하는 것보다 더 빨리 필요한 지식에 대해 접근할 수 있다.
간단한 아날로그 시계를 만드는 프로그램이였다. MFC + CppUnit 로 작업했다.
* Pair 의 진행을 이끌어가는 것 - 프로그래밍의 흐름이라고 해야 할까. 디자인을 어느정도 선정도로 맞추고 어떠한 문제를 풀 것인가에 대한 약간의 선이 필요할 것 같다. 이 경우에는 초반 디자인이 허술했었다는 약점이 있었다. '전체적인 관점에서 무엇무엇을 하면 프로그램이 완성될 것이다' 라는 것. UserStory 만 생각하고 EnginneringTask 를 간과한 것이 큰 문제였다. (그때 EnginneringTask 에 대한 개념이 없었었다는. 어디서 함부로 주워만 지식. --; 사고를 하자 사고를. -_-)
* Pair 의 분배 - TFP를 공부하느냐고 시작한 것이였던지라, 상대적으로 CppUnit 에 익숙하지 않은 사람에게 코딩을 주도하게 했다. 한 1주일정도 되는 프로젝트라면 Junior로 하여금 경험을 쌓게 함으로써 오히려 장점으로 작용할 수도 있을 것 같다. 하지만, 역시 적절하게 분배를 했었어야 할 것 같다.
* 집단 삽질. --; - 이것은 헤프닝이라고 보는 것이. -_-;; Test Code 에서 둘이 라디안 구하는 공식을 거꾸로 쓰고 '왜 값이 틀리다고 하는거야!' 하며 1시간을 삽질했다는 후문이 있다는. --;
* 하지만 UnitTest도 그렇듯이, 많은 장점을 가진 방법을 완벽하지 않다는 이유로 사용하지 않는다는 것은 아쉬운 일일 것이다.
* 아직은 효율성이.. - 일종의 Learning Time 이라고 해야 할까? 대부분 실험에서 끝난다는 점. 퍽 하고 처음부터 효율성을 극대화 할 순 없을 것이다. 참고로 이때는 아날로그 시계 만드는데 거의 3시간이 걸렸다. Man-Hour 로 치면 6시간이 된다.
- 이영호/64bit컴퓨터와그에따른공부방향 . . . . 108 matches
현재 머리가 제정상은 아니지만 다시 다른 충격적인 것을 목격한바 짧은 고민 끝에 공부 방향을 바꾸기로 했다.
이 경로를 거쳐 컴퓨터를 접해온 사람들의 실력은 현재로 생각하면 굉장하다.
내가 이러한 방식으로 공부를 하면 그들을 따라 잡을 수 있을까? 결코 불가능하다.
컴퓨터 구조를 자세히 알고 어셈블리를 자유자재로 다루며 그러한 실력으로 32비트
결국 공부는 새롭게 해야하며 32비트의 지식들은 역사의 뒤안길로 자리잡게된다.
때문에 완전한 64bit 체제가 자리 잡기 전까진 32비트 체제의 지식을 내것으로 만들어야한다.
하지만 많은 양이므로 불가능 하다. 그전에 64bit체제가 완성 될 것이므로.
앞으로 내가 걸을 길은 그들과 같은 길을 걷는 것이다.
OS를 만들기도 하겠으며, 저 사람들과 같은 MDir Clone, Graphics, Sound 등 모든 것을 Assembly로 해내겠다.
몇가지 질문을 한다면 (활동 영역을 아마 시스템 프로그래머 분야로 잡은 것 같아서, 좋아하는 분야를 공부하는 것에 대해서는 큰 이견이 없습니다.)
* 32비트에서 64비트 컴퓨터로 바뀔 경우, 어플리케이션 개발자들의 경우 기존 개발 방식에서 많은 차이가 생길까요? 32비트에서 64비트 컴퓨터로의 전환이 개발자들의 페러다임의 전환을 의미할까요?
* C++ 혹은 더 나아가 C++ 보다 속도상으로 느린 스크립트 언어를 쓰는 사람은 C++ 개발자들보다 덜 우수할까요? (위의 Assembly > C++ 로 평가한것으로 봐서는, 퍼포먼스와 하드웨어 제어 용이성 관점에서 Assembly 를 평가한 것 같습니다만) C++ 개발자들 혹은 더 나아가서 Java 나 Python 과 같은 개발자들이 Assembly 와 같은 low level 제어성을 포기하는대신 얻어간 것은 어떤 것일까요?
└저도 C (배우게 된다면 Assembly도.ㅎ)를 좋아 합니다.ㅎ 무엇보다 빠른 연산속도와 하드웨어 제어(해본적은 없지만), 포인터를 통한 메모리 접근등 좋은 점이 많아요.^^* 그렇지만 예를 들어 1만 팩토리얼을 출력하는 프로그램을 작성하시오. 라고 문제가 주어졌을때, C로 짜면 한나절이지만 파이썬으로 작성하게 되면 5분도 안걸리게 됩니다. 물런 연산속도가 느리기는 하지만 말입니다.^^ 이런 점에서 봤을때, 속도가 중요하다거나 특화된 프로그램을 작성해야할 경우에는 C와 같은 언어가 좋지만 보편적으로 사용하는 워드프로세서라든지 기타 응용프로그램이나, 제작해야할 프로그램의 제작시간이 짧을 경우에는 상위레벨의 언어가 좋을거라고 봅니다.^^ 뭐 이렇게 말은해도.. 사실 서로의 장점을 그때그때 맞춰서 섞어쓰는게 가장 좋지 않을까요?ㅎ (게임을 만들때 하위레벨의 언어로 하드웨어를 직접 사용한다 하더라도, 다이렉트를 이용하지 각각의 그래픽 카드에 맞춰서 프로그램을 만들지 않는것과 비슷한것 같아요.^^) 이상 지나가는 행인1의 잡다한 생각이었습니다.^^* - [조현태]
음. 아쉽게도 그런 용도로 Assembly를 평가 한게 아닙니다. 우수하고 못하다의 평가는 여기서도 나오는군요. 한가지만 파면 성공한다와 같은 맥락이랄까요... 저는 미래의 직장보다도 현재의 지식욕을 채우고 싶을 뿐입니다. 누구보다도 이것에 대해 많이 알고 싶고 또한 그렇게 되길 바랄뿐입니다. 과연 Java나 Python등을 공부하다보면 컴퓨터에 대한 가장 기초적인 지식들을 얻기 쉬울까요? 그렇기 때문에 Assembly에 대한 직접적인 접근을 하려고 하는 것입니다. 지식욕이 아니더래도 현직에 계시는 프로그래머분들께 컴퓨터에 대한 기초가 부족하고 프로그램만 짤 줄 아는 신참 직원들은 항상 한계에 다다르면 좌절한다라는 말을 들은적이 있습니다. 한번쯤은 생각해 볼 문제입니다. Assembly > C++을 평가한 것은 이런 맥락입니다. 컴퓨터에 대한 기초가 있느냐 없느냐. Assembly를 만지고 C++을 만진 사람의 경우는 모르겠지만 C++만 만지고 Assembly를 공부하지 않은 사람의 한계는 언젠가는 드러나게 되죠.
전 어제 제가 평생 해도 따라가지 못할것 같은 사람을 보았습니다. 그 사람과의 벽이랄까요. 물론 그분이 연륜이 있으시지만 컴퓨터 자체에 대한 기초적이고 깊은 지식은 따라가질 못하겠습니다. 그분의 소싯적에 C언어로만 짠 프로그램들은 컴퓨터에 대한 깊은 이해가 없으면 불가능한 것들이었습니다. 그분이 Assembly를 배우지 않고 C를 처음부터 만졌다면 어땠을까요? 그런 프로그램들을 짤 수 있었을까요? 이상, 우물 밖으로 튀어나온 개구리였습니다.
(64 비트로 변할 때에는 프로그래머가 3가지 아키텍쳐(32비트 때에는 32비트 아키텍쳐 한가지)에 대한 것을 모두 생각해야하기 때문에 32비트만 취급할 수는 없겠죠. 호환성때문에. 결국 64비트 아키텍쳐에도 공부할 시간을 할애해야하고 32비트의 공부시간이 줄어든다는 말이었습니다.) - [이영호]
이러고 보니 현직 프로그래머들의 싸움이 되고 있군요. System 프로그래머와 일반 Application 프로그래머의 싸움. 한가지... 모두가 다 그런것은 아니겠지만, 전 Coder에 머무르고 싶지는 않습니다. 저 높은 수준까지는 아니더래도 Programmer로서 Guru정도의 위치에는 가고 싶군요. - [이영호]
그냥 시스템 프로그래머와 어플리케이션 프로그래머의 차이정도로만 생각하겠습니다. 언어 관련 논쟁과 다른 레이어간 논쟁에 대해서는 정말정말 재미없습니다. ^^ 의도하는 바도 아니고요. 단지, '시스템 프로그래머' 컨텍스트가 붙지 않았을 경우에는 다른 사람들에게는 좀 갸우뚱할 상황이여서 쓴 것일 뿐입니다. (그렇다고 시스템에 대한 이해의 중요성을 무시하려는것은 당연히 절대로 아니고요.)
참고로, 어플리케이션 개발쪽에서는 다른 이야기들이 이슈가 됩니다. 순수하게 프로그래밍 부분만을 생각한다면(조금 개인적인 생각이 짙습니다만)
* Global Optimization 관점에서, 어느 부분은 생산성을 살리고 어느 부분은 퍼포먼스를 추구할까? 퍼포먼스를 추구하는 모듈에 대해서는, 어떻게 하면 추후 퍼포먼스 튜닝시 외부 모듈로의 영향력을 최소화할까? (InformationHiding)
- 오목/진훈,원명 . . . . 103 matches
#if !defined(AFX_OMOKVIEW_H__5E50035A_B51D_11D7_8B86_00105A0D3B05__INCLUDED_)
#if _MSC_VER > 1000
#endif // _MSC_VER > 1000
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
#ifdef _DEBUG
#endif
#ifndef _DEBUG // debug version in OmokView.cpp
#endif
#endif // !defined(AFX_OMOKVIEW_H__5E50035A_B51D_11D7_8B86_00105A0D3B05__INCLUDED_)
#ifdef _DEBUG
#endif
END_MESSAGE_MAP()
// TODO: Modify the Window class or styles here by modifying
if (board[findX][findY] == 1)
else if (board[findX][findY] == 2)
if (turn == 1)
else if (turn == 2)
void COmokView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
#ifdef _DEBUG
#endif //_DEBUG
- Gof/Mediator . . . . 101 matches
MediatorPattern은 객체들의 어느 집합들이 interaction하는 방법을 encapsulate하는 객체를 정의한다. Mediator는 객체들을 서로에게 명시적으로 조회하는 것을 막음으로서 loose coupling을 촉진하며, 그래서 Mediator는 여러분에게 객체들의 interactions들이 독립적으로 다양하게 해준다.
Object-Oriented 디자인은 객체들 사이의 행위 분산을 장려한다. 그런 분산은 객체들 사이에 많은 연관을 지닌 객체 구조로 나타날 수 있다. 최악의 경우에는 모든 객체가 결국 모든 다른 객체들을 알게 된다.
비록 하나의 시스템에 많은 객체들이 참여하는 것이 일반적으로 재사용성을 강화할지라도 interconnections이 늘어나는 것은 재사용성을 감소시키려는 경향이 있다. 너무나 많은 객체간의 상호 연결들은 객체들의 독립성을 떨어뜨릴 수 있다. - 그런 시스템은 마치 완전히 통일된 것 같이 행동한다.
게다가 하나의 시스템에 많은 객체들이 참여하는 것은 어떤 의미있는 방법으로 시스템의 행위를 바꾸는 것을 어렵게 한다. 왜냐하면, 행위는 많은 객체들 사이로 분산되어 졌기 때문이다. 결론적으로 당신은 아마 그런 시스템의 행위를 customize하기 위해서 수많은 subclass들을 정의해야 할 것이다.
예로써 어떤 GUI상에서 다이얼로그 박스의 구현을 고려해보자. 하나의 다이얼로그 박스는 작은 도구들(버튼, 메뉴, 입력 필드)의 모음을 표현하는 하나의 윈도우를 사용한다.
http://zeropage.org/~reset/zb/data/fontc047.gif
대게 다이얼로그의 도구들 사이에는 어떤 dependency들이 존재한다. 예를 들면, 어떤 버튼은 어떤 입력 필드가 비어있을때는 비활성화 되어있는다. list box라 불리는 선택 목록에서 객체를 선택하는 것은 입력필드의 내용을 바꿀 것이다. 바꿔말하면, 입력필드에 문자를 타이핑하는 것은 자동적으로 리스트 박스에서 하나이상의 대응대는 입력을 선택하는 것이다. 한번 텍스트가 입력 필드에 나타나면, 다른 버튼들은 아마 활성화 될것이다. 그래서 사용자가 텍스트로 어떤 일을 하게 하게할 것이다. 예를 들자면, 관련있는 것을 삭제하거나 변경하거나 하는 따위의 일을 할 수 있을 것이다.
다른 다이얼로그 박스들은 도구들 사이에서 다른 dependency들을 지닐 것이다. 그래서 심지어 다이얼로그들이 똑같은 종류의 도구들을 지닌다 하더라도, 단순히 이전의 도구 클래스들을 재사용 할 수는 없다. dialog-specific dependency들을 반영하기 위해서 customize되어져야 한다. subclassing에 의해서 개별적으로 도구들을 Customize하는 것은 지루할 것이다. 왜냐하면 많은 클래스들이 그렇게 되어야 하기 때문이다.
별개의 mediator 객체에서 집단의 행위로 encapsulate하는 것에 의해서 이런 문제를 피할 수 있다. 하나의 mediator는 객체들 그룹 내의 상호작용들을 제어하고 조정할 책임이 있다. 그 mediator는 그룹내의 객체들이 다른 객체들과 명시적으로 조회하는 것을 막는 중간자로서의 역할을 한다. 그런 객체들은 단지 mediator만 알고 있고, 고로 interconnection의 수는 줄어 들게 된다.
예를 들면, FontDialogDirector는 다이얼로그 박스의 도구들 사이의 mediator일 수 있다. FontDialogDirector객체는 다이얼로그 도구들을 알고 그들의 interaction을 조정한다. 그것은 도구들 사이의 communication에서 hub와 같은 역할을 한다.
http://zeropage.org/~reset/zb/data/media033.gif
http://zeropage.org/~reset/zb/data/media031.gif
여기서는 list box에서의 선택이 entry field 로 전달되고 있는 이벤트들의 흐름이 있다.
2. director는 리스트 박스로 부터 선택을 얻는다.
3. director는 입력 필드로 선택을 넘긴다.
director가 리스트 박스와 입력 필드 사이의 조정하는 방법을 요약하자. 도구들은 서로 단지 간접적으로 director을 통해서 통신한다. 그들은 서로에 대해서 몰라야 하며, 그들 모두는 director를 알아야 한다. 게다가 행위는 한 클래스에 지역화 되어지기 때문에 행위는 클래스를 확장하거나 교체함으로써 변하거나 바꿔질 수 있다.
http://zeropage.org/~reset/zb/data/media034.gif
DialogDirect는 다이얼로그의 전체 행위를 정의한 추상 클래스이다. client들은 화면에 다이얼로그를 나타내기 위해서 ShowDialog 연산자를 호출한다. CreateWidgets는 다이얼로그 도구들을 만들기 위한 추상 연산자이다. WidgetChanged는 또 다른 추상 연산자이며, 도구들은 director에게 그들이 변했다는 것을 알려주기 위해서 이를 호출한다. DialogDirector subclass들은 CreateWidgets을 적절한 도구들을 만들기 위해서 override하고 그리고 그들은 WidgetChanged를 변화를 다루기 위해서 override한다.
* 어떤 객체들의 집합이 잘 정의되었지만, 복잡한 방법으로 통신할 때. interconnection의 결과는 구조화되지 못하고 이해를 어렵게 한다.
http://zeropage.org/~reset/zb/data/mediator.gif
- 새싹교실/2013/양반/3회차 . . . . 97 matches
* if, if-else, switch
특별히 지정 안하면 첫 문장부터 시작하여 한 번에 한 문장씩 순차적으로 실행된다.
제어문을 사용하면 이 문장이 실행 되는 순서를 내 맘대로 제어할 수 있다.
조건문 : if문, if-else문, switch 문
=== 조건문 if ===
조건문 - 조건식의 결과(부울)에 따라 조건을 수행할 것인지 아닌지를 판단.
if(a < min)
if(a < min){
if 안에 들어가는 조건에 대해서 참이 나오면 수행하고, 거짓이 나오면 수행하지 않는다.
=== 조건문 if - else문 ===
if - else문
if문에 else 절을 추가한 if-else문을 이용해서 여러 가지 조건을 처리할 수 있다.
if (조건식)
else
조건식이 참이면 문장 1을 실행하고, 거짓이면 문장 2를 실행한다.
if(a < b)
else
if(a < b){ min = a;
}else { min = b;}
=== if - else if ===
- Gof/Singleton . . . . 96 matches
클래스로 하여금 오직 하나의 인스턴스만을 가지게 하며, 어디서든지 접근 가능하도록 한다.
몇몇 클래스들에 대해서 오직 하나의 인스턴스 만을 가지는 것은 중요한 일이다. 예를 들면, 어떤 시스템에선 수많은 프린터들이 있더라도 거기에는 단 하나의 프린터 스플러만이 있어야 한다. OS에서 돌아가는 화일시스템이나 윈도우 매니저의 경우도 오직 하나여야 한다 (동시에 2-3개의 윈도우매니저가 돌진 않는다.) 디지털 필터의 경우에도 A/D converter는 단 하나를 가진다.
어떻게 우리는 클래스로 하여금 단 하나의 인스턴스만을 가지도록 보장해줄 수 있을까? 그리고 그러한 인스턴스를 쉽게 접근하게 할 수 있을 것인가? global 변수로 둘 경우 어디서든지 접근가능하겠지만, global 변수는 단일 인스턴스만을 가지도록 할 수 없다.
더 좋은 방법은 클래스 자신으로 하여금 자기자신의 단일 인스턴스를 유지하도록 만드는 것이다. 이 클래스는 인스턴스가 생성될 때 요청을 가로챔으로서 단일 인스턴스로 만들어지는 것은 보증한다. 또한, 인스턴스에 접근하는 방법도 제공한다. 이것이 바로 SingletonPattern이다.
SingletonPattern은 다음과 같은 경우에 사용한다.
* 클래스가 정확히 오직 하나의 인스턴스만이 존재해야 할 때. 그리고 잘 알려진 엑세스 방법으로 어디서든지 접근 할 수 있어야 한다.
* 단일 인스턴스가 서브클래싱에 의해 확장가능해야 할 경우. 그러면 클라이언트는 그들의 코드 수정없이 확장된 인스턴스를 사용할 수 있어야 한다.
http://zeropage.org/~reset/zb/data/singl014.gif
* 클라이언트는 오직 Singleton의 Instance operation으로만 Singleton 인스턴스에 접근할 수 있다.
1. 클래스에 대한 접근이 오직 하나의 인스턴스에게로 제한된다. Singleton 클래스는 자기 자신의 단일 인스턴스를 캡슐화하기 때문에, 클라이언트가 언제, 어떻게 접근하던지 그 접근이 엄격하게 제어된다.
2. namespace를 줄인다. SingletonPattern은 global variable을 줄임으로서 global variable로 인한 namespace의 낭비를 줄인다.
3. 명령어와 표현을 확장시킬 수 있다. Singleton class는 subclass될 수 있고, 이 확장된 클래스의 인스턴스를 가지고 어플리케이션을 설정하는 것은 쉽다. run-time중에 필요한 경우에도 가능하다.
4. 여러개의 인스턴스를 허용한다. 프로그래머의 마음에 따라 쉽게 Singleton class의 인스턴스를 하나이상을 둘 수도 있도록 할 수 있다. 게다가 어플리케이션이 사용하는 인스턴스들을 제어하기 위해 동일한 접근방법을 취할 수 있다. 단지 Singleton 인스턴스에 접근하는 것을 보장하는 operation만 수정하면 된다.
5. class operation 보다 더 유연하다. 패키지에서 Singleton의 기능을 수행하기위한 또다른 방법은 class operation들을 사용하는 것이다. (C++에서의 static 함수나 Smalltalk에서의 class method 등등) 하지만, 이러한 언어적인 테크닉들은 여러개의 인스턴스를 허용하는 디자인으로 바꾸기 힘들어진다. 게다가 C++에서의 static method는 virtual이 될 수 없으므로, subclass들이 override 할 수 없다.
1. unique instance임을 보증하는 것. SingletonPattern의 경우도 일반 클래스와 마찬가지로 인스턴스를 생성하는 방법은 같다. 하지만 클래스는 늘 단일 인스턴스가 유지되도록 프로그래밍된다. 이를 구현하는 일반적인 방법은 인스턴스를 만드는 operation을 class operations으로 두는 것이다. (static member function이거나 class method) 이 operation은 unique instance를 가지고 있는 변수에 접근하며 이때 이 변수의 값 (인스턴스)를 리턴하기 전에 이 변수가 unique instance로 초기화 되어지는 것을 보장한다. 이러한 접근은 singleton이 처음 사용되어지 전에 만들어지고 초기화됨으로서 보장된다.
다음의 예를 보라. C++ 프로그래머는 Singleton class의 Instance operation을 static member function으로 정의한다. Singleton 또한 static member 변수인 _instance를 정의한다. _instance는 Singleton의 유일한 인스턴스를 가리키는 포인터이다.
if (_instance == 0) {
클래스를 사용하는 Client는 singleton을 Instance operation을 통해 접근한다. _instance 는 0로 초기화되고, static member function 인 Instance는 단일 인스턴스 _Instance를 리턴한다. 만일 _instance가 0인 경우 unique instance로 초기화시키면서 리턴한다. Instance는 lazy-initalization을 이용한다. (Instance operation이 최초로 호출되어전까지는 리턴할 unique instance는 생성되지 않는다.)
생성자가 protected 임을 주목하라. client 가 직접 Singleton을 인스턴스화 하려고 하면 compile-time시 에러를 발새할 것이다. 생성자를 protected 로 둠으로서 늘 단일 인스턴스로 만들어지도록 보증해준다.
더 나아가, _instance 는 Singleton 객체의 포인터이므로, Instance member function은 이 포인터로 하여금 Singleton 의 subclass를 가리키도록 할 수 있다.
- MoreEffectiveC++/Operator . . . . 96 matches
* C++에서는 크게 두가지 방식의 함수로 형변환을 컴파일러에게 수행 시키킨다:[[BR]] '''''single-argument constructors''''' 와 '''''implicit type conversion operators''''' 이 그것이다.
* '''''single-argument constructors''''' 은 인자를 하나의 인자만으로 세팅될수 있는 생성자이다. 여기 두가지의 예를 보자
* '''''implicit type conversion operator''''' 은 클래스로 하여금 해당 타입으로 ''return'' 을 원할때 암시적인 변화를 지원하기 위한 operator이다. 아래는 double로의 형변환을 위한 것이다.
'''operator<<'''는 처음 Raional 이라는 형에 대한 자신의 대응을 찾지만 없고, 이번에는 r을 ''operator<<''가 처리할수 있는 형으로 변환시키려는 작업을 한다. 그러는 와중에 r은 double로 암시적 변환이 이루어 지고 결과 double 형으로 출력이 된다.[[BR]]
뭐 이런 암시적 형변환을 막을려면, 형전환 시키고 하는 암시적 사용을 하지 않고, 다른 함수로 명시적으로 해 줄수 있다.
cout << r.asDouble(); // double로의 전환의 의도가 확실히 전해 진다.
이런 예로 C++ std library에 있는 string이 char*로 암시적 형변환이 없고 c_str의 명시적 형변환 시킨다.
첫번째 생성자는 배열의 lowBound~highBound 사이로의 크기 제한자이고, 두번째 생성자는 해당 크기로 배열 공간 생성인데, 이 두번째의 생성자가 형변환을 가능하게 만들어서 무한한 삽질에 세계에 당신을 초대한다. (실제로 이런 의미로 써있다. --상민)
if( a == b[i] ) { // 헉스! 이런 "a"는 "a[i]" 써야 할 코드였다!. (개발자의 실수 의미, 한미 양국에서 같은 발음의 oops! --;; --상민)
else {
위의 조건을 만족하지 못하면 이 코드를 수행한다.;
7줄 ''if ( a == b[i] )'' 부분의 코드에서 프로그래머는 자신의 의도와는 다른 코드를 작성했다. 이런 문법 잘못은 당연히! 컴파일러가 알려줘야 개발자의 시간을 아낄수 있으리, 하지만 이런 예제가 꼭 그렇지만은 않다. 이 코드는 컴파일러 입장에서 보면 옳은 코드가 될수 있는 것이다. 바로 Array class에서 정의 하고 있는 '''''single-argument constructor''''' 에 의하여 컴파일시 이런 코드로의 변환의 가능성이 있다.
if ( a == static_cast< Array<int> >(b[i]) )...
'''b[i]''' 는 int형을 반환하기 때문에 이렇게 즉석에서 맞춤 생성자로 type casting(형변환)을 컴파일러가 암시적으로 해줄수 있다. 이제 사태의 심각성을 알겠는가?
이런 애매한 상황을 피할수 있는 가장 효과적인 방법은 C++에서 등장한 새로운 키워드인 '''explicit''' 의 사용이다. 이 키워드가 붙은 생성자로의 형변환에서는 반드시 명시적인 선언이 있어야 가능하다. 즉 위의 코드를 다시 작성하여 '''explicit'''의 사용을 알아보고 문법상 유의 사항도 알아 보자
if ( a == Array<int>(b[p])) ... // 이 코드 역시 올바르다.
if ( a == static_cast< Array<int> >(b[p])) ... // 맞다. 위와 마찬가지로 다른 사람이 땀흘린다
if ( a == (Array<int>) b[i] ) // C-style 의 형변환인데 역시나 다른사람이 열받는다.
이렇게 explicit를 사용하면 명시적으로만 형변환이 가능하다. 하지만 또 하나 문법상 유의 해야 할사항은
이 구분에서 '''> > ''' 이 두개를 붙여쓰면 '''>>''' operator로 해석하니 유의해라
- AcceleratedC++/Chapter9 . . . . 82 matches
4.2.1절 Student_info 구조체를 다루는 함수를 작성하고, 이를 한개의 헤더파일로 통합을 하는 것은 일관된 방법을 제공하지 않기 때문에 문제가 발생한다.
프로그래머는 구조체를 다루기 위해서 구조체의 각 멤버를 다루는 함수를 이용해야한다. (Student_info 를 인자로 갖는 함수는 없기 때문에)
그러나 프로그래머는 직접적으로 이런 구조를 다루기 보다는 세부적인 구현을 감추고 싶을 수 있다.
string, vector 와 같은 것들은 Student_info의 내부 구현시에 필요한 사항이기 때문에 Student_info를 사용하는 프로그램의 또다른 프로그래머에게까지 vector, string을 std::에 존재하는 것으로 쓰기를 강요하는 것은 옳지않다.
std::istream& read(std::istream&); //입력 스트림으로 부터 입력을 받아서 4개의 멤버변수를 초기화한다.
double grade() const; //내부 멤버변수를 활용하여 점수를 계산하고 double 형으로 리턴한다.
//함수 명의 뒤에 const를 붙이면 멤버 변수의 변형을 할 수 없는 함수가 된다. (구조적으로 좋다)
* s:Student_info 라면 멤버함수를 호출하기 위해서는 s.read(cin), s.grade() 와 같이 함수를 사용하면서 그 함수가 속해있는 객체를 지정해야함. 암묵적으로 특정객체가 그 함수의 인자로 전달되어 그 객체의 데이터로 접근이 가능하게 된다.
* Student_info의 멤버함수이므로 Student_info 객체를 정의할 필요도 인자로 넘길 필요도 없다.
* 객체 내부의 데이터를 직접적으로 접근 가능하다. 예를 들어서 s.name으로 접근할 필요없다.
::를 사용함으로써 호출되는 grade를 객체의 멤버함수가 아니라 전역 grade의 형으로 사용하는 것이 가능하다.
객체에서는 const 객체 내부의 데이터들을 const형으로 다룰 수는 없지만, 멤버함수를 const 멤버함수로 만듦으로써 변형에 제한을 줄 수 있다.
이전에 사용되었던 compare와 같은 함수를 어떤식으로 정의해야 할 것인가?
compare함수는 동일한 형의 2개의 Student_info를 받아서 서로를 비교하는 역할을 한다. 이런함수를 처리하는 일반적인 방법이 있는데, 9.5, 11.2.4, 11.3.2, 12.5, 13.2.1 에서 배우게됨.
'''friend 함수를 의미하는 것'''
read, grade를 정의함으로써 Student_info에 직접적인 접근을 하지 않고도 데이터를 다룰 수 있었다.
그런데 더 나가서 이제는 아예 이 객체의 내부멤버를 프로그램의 다른 부분에서 다루는 것을 금지시키고 싶다면?
struct 키워드 대신 '''class''' 키워드 사용. '''보호레이블(protection label)''' 사용. 레이블은 순서없이 여러분 중복으로 나와도 무관함.
|| class 키워드를 사용한 클래스 || 기본 보호모드가 private 으로 동작한다. ||
|| struct 키워드를 사용한 클래스 || 기본 보호모드가 public 으로 동작한다. ||
- 우리가나아갈방향 . . . . 81 matches
우이동으로 MT안가는 MT의 치밀한 계획이 우리가 나아갈 방향 쿨럭 이건 아니고.
머 나에게도 이제 일이 시작되는 것이랄까 -_-; 그동안 책 핑계로 놀았지만.. 이젠
지식에 대해서는 공유할 수 있지만, 경험과 공부한 것 자체는 공유할 수 없다는 것임을.. 결국은 공부는 스스로 하는 것일테니. 똑같은 책의 한 구절을 보아도 사람에게마다 영양소가되는 위치가 다른 것임을. 일종의 훈련인 것에 대해서는 누구도 어떻게 해줄 수가 없는거지.
암튼. 누차 강조하지만. 공부하기위해 모이지 않기를. 공부한 내용을 가지고 모일 수 있기를.. 경쟁과 협동이 자신들 이익과의 같은 방향노선속에서 적절하게 싹틀수 있기를. 학술연구회라는 거창한 이름이 아니더라도, 하고자 하는 욕망이 있다면 그 길은 저절로 열리는 것임을. '빛이 있으라' 라는 한마디가 세상에 빛을 열어놓은 것처럼. 모임 자체가 억지로 만들어주는 것이 아닌, 자신들이 만들어가야 할 것임을.
ZP는 인력 Pool 이고, 모임의 장으로서의 역할만이라도 충실할 수 있다면. 학교가 그 역할을 제대로 못해주고 술자리로도 그 허전함을 채울 수 없을때 ZP가 그 역할을 제대로 해줄 수 있다면. 그것을 ZP의 정체성으로 정의해도 좋지 않을까. 홈 브루 컴퓨터 클럽을 꿈꿀 수 있을지도.--석천 [[BR]]
홈 브루 컴퓨터 클럽을 그 대상으로 한다면 참 좋은것 같다. 우리의 정모가 해당 모임이 될수 있을 것이고, 과거에도 그렇게 하려고 노력했것만, 호응도가 낮았다고 생각한다. 뭐 하지만 계속 바위에 계란을 던지다 보면 언젠가 이끼라도 끼지 않을까. 할수있는 최상은 제자리에서 열심히 --상민
이 말의 의도는 충분히 이해를 하지만 오해의 소지가 있을 것 같아 사족을 답니다. 모여서 할 수 있는 공부가 분명히 있습니다. 이것은 혼자서만 할 수 있는 공부와는 다릅니다. 모여서 하면 아주 좋은 성과를 볼 수 있는, 그러나 혼자서는 하기 힘든 그런 공부가 분명히 있습니다. 수프를 먹으면서 포크의 "비어있음"을 탓하고 스푼의 "차있음"을 찬양하지만, 과일을 먹으면서는 포크의 "비어있음"을 고마워하고 스푼의 "차있음"을 비난하는 법입니다. 사건(event)과 물건(thing), 즉 사물에는 "나"와의 관계 속에서 그것의 "도"를 밝혀주는 길과 쓰임이 생깁니다. 그 길로 다니면 편하고 자연스럽고 쓸모를 얻지만, 자신이 길을 억지로 내려고 하면 불편하고 거북하며 쓸모를 얻지 못합니다. --김창준
''DeleteMe) 오해의 소지가 있게 쓰긴 했네요. 본래의 의도는 (01들은 내가 한 이야기를 들어서 알겠지만) 스터디를 할때, 책을 미리 읽고 난 뒤의 생각이나 프로그래밍을 했을때의 경험들을 들고 올 생각을 하지 않고, 모이고 난 뒤에 그제서야 책을 읽을 생각을 한다는 점을 지적하고 싶었습니다. 모임자체를 하나의 시스템으로 보고 공부하지 않은 자신을 시스템으로 억지로 묶어보려고 하는 모습같아서.. 그 점을 지적하고 싶었습니다. 같이 공부했을때의 효율이 혼자서 할때보다 높기 위해서는 (장점을 가질 수 있으려면) 사전에 공부하려는 해당 부분에 대한 의미를 조금이라도 파악해두어야 한다고 생각합니다. --석천''
따스한 5월의 봄날에 맞이한 제로페이지의 10주년을 진심으로 축하합니다. 10년이라는 적지 않은 시간동안 우리 학회가 만들어온 크고 작은 모습 하나하나는 선배님들과 여러 동기 여러분 그리고 후배님들의 학문에 대한 열정과 서로에 대한 이해와 배려가 일구어낸 아름다운 자화상이라고 생각해봅니다. 우리 제로페이지는 중앙대학교 컴퓨터공학과의 최대 학회이며 여러 학생들의 학술적 비젼을 제시해 주고 있는 중요한 학회입니다. 이런 제로페이지가 좀 더 발전적이고 원숙한 모습을 갖추기 위해서 당부하고 싶은 것들을 몇가지 말씀 드리고자 합니다.
시대의 흐름을 바로 읽어 우리가 해야 할 것들에 대한 명확한 목표를 제시하고 서로 도와가며 공부할 수 있는 분위기를 조성하는데 주도적인 역할을 하길 바랍니다. 낯선 학문에 대한 설레임과 막연한 두려움 때문에 어느 곳부터 손을 대야 할 지 몰라 고민하는 신입생들이 많이 있습니다. 또 프로그래밍 언어 1~2가지를 익혔으나 그 다음에는 무엇을 해야하는지 내가 이 도구를 공부해서 무엇에 써야하는지 몰라 일관성 없는 학습만을 반복하여 제자리를 맴돌고 있는 친구들도 많이 있습니다. 우리 학회에는 훌륭한 선배님도 많이 계시고 능력있는 회원님들도 많이 있다고 자부하고 있습니다. 이런 분들이 배우고자 하는 회원들에게 방향을 제시하고 또 배우는 사람들은 자발적으로 학습하며 자신의 능력을 개발해 나가는 것이 중요합니다.
그리고 타성에 빠지지 않으려는 노력이 중요합니다. 늘상하는 같은 종류의 세미나가 학회 활동의 대부분을 차지하는 일이 매년 반복되어서는 안됩니다. 1,2학년때는 열심히 참여하다가 3,4학년때는 별로 배울것이 없다하여 많은 수의 회원들이 활동을 하지않는 모습에대해 비판만 할것이 아니라 반성해보는 자세를 가져야합니다. 최신기술에 대한 순회 세미나와 조직화된 프로젝트팀을 활성화시켜서 회원들의 동기유발을 유도해야합니다. 컴퓨터의 시작은 하나의 뿌리였지만 지금은 수만갈래로 나뉘어져 혼자서는 각각에 대한 기본적인 지식조차 얻기가 어렵습니다. 항상 새로운 주제로 많은 회원이 온/오프라인상에서 꾸준히 공부하고 그것을 나누는 분위기를 조성할 것을 제안합니다.
돌이켜보면 제가 말한 두가지는 이미 여러차례 논의되어 왔던 것이지만, 실제로 옮겨지기까지는 많은 회원들의 노력이 필요한 부분입니다. 10년이면 강산도 변한다는 말이 있듯이 이제 제로페이지는 예전의 그늘에서 벗어나 우리만의 새로운 모습으로 바꿔가는 의지가 절실해지는 때입니다. 이 행사를 준비하기 위해 밤낮으로 고생한 후배님들깨 감사를 전하며 제로페이지가 항상 신선한 모습으로 우리 곁에 남아있기를 진심으로 바랍니다.
''제로페이지 10주년 기념 격려사, 96 한상우 선배님''의 글을 옮겨적었습니다.
["열린제로페이지"]로 나가는건 어떨까요. --이덕준
CauGlobal을 다녀오고 느낀점이 많았습니다. 그 가운데 여태까지 제가 제로페이지 활동을 하면서 아쉬웠던 점이 많이 떠올랐고, 제로페이지가 나아갈 방향에 대해 느낀점도 있었습니다. 이를 여기에 적어봅니다.
이번 방학에도 어김없이 프로젝트나 스터디가 열리고 있습니다. 프로그래밍 언어를 좀더 잘 다루려고, 공부나 프로젝트를 같이 해보는 경험을 쌓으려고, 자신이 공부해서 알고 있는 내용을 다른 사람에게 설명해주려고, 아니면 그냥 재미로 참여하는 분들이 많으리라 생각합니다. 그러는 가운데서 지식과 경험을 쌓을 수 있기에 제로페이지 활동은 현재로도 분명 값어치가 있습니다.
하지만 개인 경쟁력 강화와 경력 관리라는 측면까지 고려해서 제로페이지 활동을 한다면, 지금보다 더 많은 가치를 얻을 수 있을 것 같습니다. 특히 게임이나 유틸리티 같이 쓸 목적으로 프로그램을 만드는 프로젝트를 한다면, 프로젝트 하나하나가 자신의 경력을 쌓을 수 있는 기회라는 생각도 해보면 좋겠습니다.
우리나라의 기업은 인턴쉽 제도가 발달되어 있지 않기 때문에, 대학생들이 방학이 되어도 자신의 전공과 관련된 경험을 쌓은 기회를 잡기가 쉽지 않아 보입니다. 그나마 아르바이트를 구하는 경우에는 프로그래밍 언어를 다루는 능력이 뛰어나고 경력이 있는 사람을 선호합니다. 그렇기 때문에 경력도 없고 프로그래밍 실력이 뛰어나지도 않은 대다수의 학부생이 방학 때 경력을 쌓기란 어렵습니다.
이러한 상황에서 학부생이 경력 관리를 하는 한 가지 방법으로 제로페이지 활동을 할 수 있을 것입니다. 실제로 기업에서 일하는 수준엔 못 미치더라도, 자신의 실력을 보여줄 수 있는 포트폴리오를 만드는 것이지요. 자기가 혼자 만들고 즐기는 것이 아니라 남에게 보여줄 것이기에 어느정도 완성도를 지녀야 할 것입니다. 이게 별 것 아닌 것 같지만, SourceForge같은 공동체도 대다수가 경력 관리를 위해 오픈 소스 프로젝트에 참여하고 있다고 합니다.
다른 한 가지 나아갈 방향으로 인맥을 만들고 정보를 공유하는 제로페이지가 되었으면 합니다. 현재 재학중이고 자주 만나는 제로페이지 회원들끼리는 서로 알고 있습니다. 하지만 그 외 회원들, 선배님과는 연락망이 거의 없다시피 합니다. 졸업하신 선배님을 통해서 정말 많은 정보를 얻을 수 있는데도 제로페이지 전체 회원 연락망이 없다는 사실은 참으로 안타깝습니다.
- UnixSocketProgrammingAndWindowsImplementation . . . . 78 matches
페이지의 컨텐츠를 보아하니, 따로 페이지를 뽑아내도 될것 같아 [문서구조조정] 하였습니다. 원래 페이지 이름은 '''데블스캠프2005/Socket Programming in Unix/Windows Implementation'''였습니다. - [임인택]
PF_INET : 인터넷 프로토콜 체계 사용
PF_INET6 IPv6 : 프로토콜 체계 사용
PF_UNIX : 유닉스 방식의 프로토콜 체계 사용 (프로세스간 통신)
PF_NS XEROX : 네트워크 시스템의 프로토콜 체계 사용
=== protocol: 프로토콜 ===
// 우리가 사용하는 프로토콜인 TCP, UDP가 0이므로 0으로 써도 무방하다.
// 구체적인 프로토콜을 선택할 때 사용하는데 대부분의 응용 프로그렘에서는 0으로 지정하면 된다.
if(sockfd == -1)
// 에러가 났을경우( sockfd == -1) 에러를 출력하고 프로그램 종료.
// sockaddr_in 은 TCP/IP체제 이므로 AF_INET만 사용한다. -> TCP/IP는 인터넷 기반이므로.
// AF_INET/PF_INET -> 인터넷 프로토콜 체계 사용.
데이터를 Big-Endian으로 변환 시켜주는 체계.
htons(): host-to-network 바이트 변환 (Big-Endian으로 변환)
htonl(): host-to-network 바이트 변환 (Big-Endian으로 변환)
※ 왜 우리는 데이터를 Big-Endian으로 변환 시켜주어야할까?
※ 그렇다면 우리가 전송하는 데이터 모두 Big-Endian으로 변환 시켜주어야할까?
// u_short sin_port 은 Big-Endian을 사용한다.
// 따라서 Little_Endian을 사용하는 시스템에서는 Big-Endian으로 바꿔줘야한다.
// sin_addr은 인터넷 주소를 담고 있으므로 4 바이트가 필요하다.
- 코드레이스/2007/RUR_PLE . . . . 74 matches
* 로봇 사용법 20분
* 프로그래밍 언어를 배우는것은 재밌어야 한다는 취지에서 만들어진 환경이다. 실제로 해보면 재밌다. 도움도 많이 된다.
* Python 언어를 사용하여 컴퓨터 프로그래밍 언어를 배울수 있는 환경이다.
* 실제로 로봇에 프로그래밍 해서 그 로봇이 현실에서 자신이 프로그래밍 하는데로 움직이는것을 보면 정말 좋겠지만 여건이 안되는 만큼 -_-; 화면으로나마 그 로봇이 움직이는 것을 보면서 프로그래밍 해볼 수 있다. 여기에서 작성하는 코드들이 무슨 쓸모가 있을까 싶기도 하겠지만, 추후에 실제 로봇의 동작을 프로그래밍해서 넣는다면 여기서 쓰이는 방식과 비슷하게 넣을것이다.(하드웨어적으로 복잡한것을 명령어로 추상화 시킨다음에 그 명령어을 적절하게 복합적으로 사용하여 원하는 행동을 로봇이 하게 만드는 식으로..) 즉 말그대로 로봇 프로그래밍을 간접적으로나 해볼 수 있다.
* 컴퓨터 프로그래밍을 익히는 것은 악기를 익히는 것과 비슷하다. 당신은 그것에 관해 단순히 읽기 말고 해봐야 한다.
* 사람들이 읽기 쉬운 프로그램을 작성해야 한다.
* 컴퓨터 프로그램을 작성할때는 반복을 하지 마라.
== 로봇 한번 움직여 볼까? ==
=== 키보드로 로봇 움직이기 ===
* 화면의 로봇을 클릭한다.
* 위쪽 방향 키보드를 누르면 앞으로 이동한다.
== 왼쪽으로 함 돌아 볼까? ==
* 한칸 앞으로 간다음에 왼쪽으로 돌고나서 한칸 앞으로 가고 나서 정지하는것을 볼 수 있다.
* 로봇이 길이 2인 사각형을 그리면서 반시계 방향으로 도는것을 만들어 보자.
* 로봇이 아래 그림과 같이 움직이게 해본다.
* Play버튼 옆에 Play 모양과 작대기 하나 있는것은 step into와 비슷한 역할을 한다. 명령어가 하나씩 실행된다. 현재 실행되고 있는 명령어는 코드 부분에서 회색으로 highlighting 된다.
* Play버튼을 클릭하고 나서 로봇이 움직이고 있는 도중에 자신이 원하는 순간에 step into 버튼(play 버튼 옆에 있는)을 클릭하면 그 순간부터 명령어가 하나 하나씩 실행된다.
* 아래 그림과 같이 로봇이 신문배달 하게 함 코드를 작성해보자
http://rur-ple.sourceforge.net/images/newspaper_end.png
== if 문 사용 ==
- MobileJavaStudy/SnakeBite/FinalSource . . . . 67 matches
class SplashCanvas extends Canvas {
if(head.x < 0 || head.x > xRange - 1
if(head.x == cell.x && head.y == cell.y)
if(growing) {
else {
if(direction == Snake.LEFT)
else if(direction == Snake.RIGHT)
else if(direction == Snake.UP)
else if(direction == Snake.DOWN)
class SnakeBiteCanvas extends Canvas implements Runnable {
if(appleX == cell.x && appleY == cell.y) {
if(ok)
if(drawBoard) {
if(printLevel) {
if(gameOver) {
if(!pause && !gameOver) {
if(gameAction == Canvas.LEFT && direction != Snake.RIGHT)
else if(gameAction == Canvas.RIGHT && direction != Snake.LEFT)
else if(gameAction == Canvas.UP && direction != Snake.DOWN)
else if(gameAction == Canvas.DOWN && direction != Snake.UP)
- Gof/Facade . . . . 66 matches
서브시스템의 인터페이스집합에 일관된 인터페이스를 제공한다. Facade는 고급레벨의 인터페이스를 정의함으로서 서브시스템을 더 사용하기 쉽게 해준다.
서브시스템을 구축하는 것은 복잡함을 줄이는데 도움을 준다. 일반적인 디자인의 목적은 각 서브시스템간의 통신과 의존성을 최소화시키는 것이다. 이 목적을 성취하기 위한 한가지 방법으로는 단일하고 단순한 인터페이스를 제공하는 facade object를 도입하는 것이다.
http://zeropage.org/~reset/zb/data/facad057.gif
예를 들기 위해, 어플리케이션에게 컴파일러 서브시스템을 제공해주는 프로그래밍 환경이 있다고 하자. 이 서브시스템은 컴파일러를 구현하는 Scanner, Parser, ProgramNode, BytecodeStream, 그리고 ProgramNodeBuilder 클래스를 포함하고 있다. 몇몇 특수화된 어플리케이션은 이러한 클래스들을 직접적으로 접근할 필요가 있을 것이다. 하지만, 대부분의 컴파일러 시스템을 이용하는 클라이언트들은 일반적으로 구문분석(Parsing)이나 코드 변환 (Code generation) 의 세부적인 부분에 대해 신경쓸 필요가 없다.(그들은 단지 약간의 코드를 컴파일하기 원할뿐이지 다른 강력한 기능을 알 필요가 없다.) 그러한 클라이언트들에게는 컴파일러 서브시스템의 강력하지만 저급레벨인 인터페이스는 단지 그들의 작업을 복잡하게 만들 뿐이다.
이러한 클래스들로부터 클라이언트들을 보호할 수 있는 고급레벨의 인터페이스를 제공하기 위해 컴파일러 서브시스템은 facade 로서 Compiler class를 포함한다. 이러한 클래스는 컴파일러의 각 기능성들에 대한 단일한 인터페이스를 정의한다. Compiler class는 facade (원래의 단어 뜻은 건물의 전면. 외관, 겉보기..) 로서 작용한다. Compiler class는 클라이언트들에게 컴파일러 서브시스템에 대한 단일하고 단순한 인터페이스를 제공한다. Compiler class는 컴파일러의 각 기능들을 구현한 클래스들을 완벽하게 은폐시키지 않고, 하나의 클래스에 포함시켜서 붙인다. 컴파일러 facade 는저급레벨의 기능들의 은폐없이 대부분의 프로그래머들에게 편리성을 제공한다.
http://zeropage.org/~reset/zb/data/facad058.gif
* 복잡한 서브 시스템에 대해 단순한 인터페이스를 제공하기 원할때. 서브시스템은 종종 시스템들이 발전되어나가면서 더욱 복잡성을 띄게 된다. 대부분의 패턴들은 패턴이 적용된 결과로 많고 작은 클래스들이 되게 한다. 패턴의 적용은 서브시스템들이 더 재사용가능하고 커스터마이즈하기 쉽게 하지만, 커스터마이즈할 필요가 없는 클라이언트들이 사용하기 어렵게 만든다. Facade는 서브시스템에 대한 단순하고 기본적인 시각을 제공한다. 이러한 시각은 대부분의 클라이언트들에게 충분하다. 커스터마이즈가 필요한 클라이언트들에게만이 facade를 넘어서 볼 필요가 있는 것이다.
* 클라이언트들과 추상 클래스들의 구현 사이에는 많은 의존성이 있다. 클라이언트와 서브시스템 사이를 분리시키기 위해 facade를 도입하라. 그러함으로서 서브클래스의 독립성과 Portability를 증진시킨다.
* 서브시스템에 계층을 두고 싶을 때. 각 서브시스템 레벨의 entry point를 정의하기 위해 facade를 사용하라. 만일 각 서브시스템들이 서로 의존적이라면 서브시스템들간의 대화를 각 시스템간의 facade로 단일화 시킴으로서 그 의존성을 단순화시킬 수 있다.
http://zeropage.org/~reset/zb/data/facade.gif
* 클라이언트는 Facade에게 요청을 보냄으로서 서브시스템과 대화한다. Facade 객체는 클라이언트의 요청을 적합한 서브시스템 객체에게 넘긴다. 비록 서브시스템 객체가 실제 작업을 수행하지만, facade 는 facade 의 인퍼페이스를 서브시스템의 인터페이스로 번역하기 위한 고유의 작업을 해야 할 것이다.
1. 서브시스템 컴포넌트로부터 클라이언트들을 보호한다. 그러함으로서 클라이언트가 다루는 객체의 수를 줄이고, 서브시스템을 이용하기 쉽게 해준다.
2. 서브시스템과 클라이언트 간의 연결관계를 약하게 해준다. 종종 서브시스템 컴포넌트는 클라이언트와 강한 연결관계를 가지기도 한다. 약한 연결관계는 클라이언트에게 영향을 미치지 않으면서 서브시스템의 컴포넌트들을 다양하게 만들어준다. Facade 는 시스템과 객체간의 의존성을 계층화 하는데 도움을 준다. Facade는 복잡함이나 순환의존성을 없애준다. 이것은 클클라이언트와 서브시스템이 비의존적으로 구현되었을때의 가장 중요한 결과일 것이다.
클라이언트와 서브시스템간의 연결관계는 Facade를 추상클래스로 만듬으로서 줄일 수 있다.
서브클래싱의 대체는 다른 서브시스템 객체를 가진 Facade 객체로 설정하는 것이다. facade를 커스터마이즈하려면 단순히 서브시스템 객체를 다른 객체로 교환한다.
서브시스템으로의 public interface는 모든 클라이언트들이 접속가능한 클래스들로 구성되며. 이때 서브시스템으로의 private interface는 단지 서브시스템의 확장자들을 위한 인터페이스이다. 따라서 facade class는 public interface의 일부이다. 하지만, 유일한 일부인 것은 아니다. 다른 서브시스템 클래스들 역시 대게 public interface이다. 예를 들자면, 컴파일러 서브시스템의 Parser class나 Scanner class들은 public interface의 일부이다.
서브시스템 클래스를 private 로 만드는 것은 유용하지만, 일부의 OOP Language가 지원한다. C++과 Smalltalk 는 전통적으로 class에 대한 namespace를 global하게 가진다. 하지만 최근에 C++ 표준회의에서 namespace가 추가됨으로서 [Str94], public 서브시스템 클래스를 노출시킬 수 있게 되었다.[Str94] (충돌의 여지를 줄였다는 편이 맞을듯..)
Compiler 서브시스템은 BytecodeStream 클래스를 정의한다. 이 클래스는 Bytecode 객체의 스트림부를 구현한다. Bytecode 객체는 머신코드를 구체화하는 bytecode를 캡슐화한다. 서브시스템은 또한 Token 클래스를 정의하는데, Token 객체는 프로그램 언어내의 token들을 캡슐화한다.
Parser 클래스는 Scanner의 token로 parse tree를 구축하기 위해 ProgramNodeBuilder 를 사용한다.
Parser는 점진적으로 parse tree를 만들기 위해 ProgramNodeBuilder 를 호출한다. 이 클래스들은 Builder pattern에 따라 상호작용한다.
- 새싹교실/2011/Noname . . . . 62 matches
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* Hello World! 프로그램 짜보기
* 키보드로부터의 입력받기 : scanf함수
* 모이는 시간을 잘못 알려주어서 한사람 밖에 오지 못 하였습니다. 한 사람밖에 오지 못 하여서 진도를 많이 빼지 못 하고 복습과 질문 위주로 공부를 하였습니다. 시간을 확실하게 정하고, 다음부터는 애들이 나오지 못 하여도 진도를 위주로 공부를 해야겠습니다. - [박정근]
* 연산자의 종류 : 산술, 대입, 관계, 증감, 논리, 비트, 삼항조건 연산자
* 삼항조건연산자 - ( [조건식]? 명령어1:명령어 )
* 연산자의 종류들과 #define함수의 활용법에 대해서 배웠습니다. 아직 C프로그래밍이 익숙지 않아서 간단한 함수도 어렵게 느껴졌다. 여러 예재로 우선 C프로그래밍에 익숙해 져야 겠다. 수업이 끝난 후 복습을 꼭 해야겠다. - [김창욱]
* 학생들이 이해력이 좋은건지 제가 못 가르치는 건지 금방금방 할 이야기가 다 다르네요;; 다음부터는 좀 더 열심히 공부하고 와서 가르치도혹 해야겠습니다. 또 피드백으로 과제같은 것을 내는것도 괜찮을 것 같네요 준배해 봐야겠습니다. - [박정근]
* 제어문(if문, switch문)
* if문
if (expression) {
else {
* else if의 경우에는 if-else와 다음 if-else를 합쳐놓은것!!
* switch의 경우 statement 에 break의 사용을 까먹지 맙시다.
* 저번에 제어문 할 때에는 창욱이가 없었지만 오늘은 창욱이만 나왔기 때문에 제어문 수업을 다시 했습니다.생각보다 이해가 빠르네요. 예제라던가 문제등을 좀더 준비해가야겠습니다. 또 진도를 더 빨리빨리 빼서 중간고사에 맞출 수 있도록 맞추어 봐야겠습니다. 이제 제어문 끝냈고 드디어 반복분을 할 차레입니다. 개인적으로 별찍는 문제가 가장 재미있었기에 다음번에는 그 문제를 풀어보도록 합시다ㅎㅎ - [박정근]
* If구문,If-Else구문,Switch구문에 대해서 배웠습니다. 역시 처음 배우는거라 예제들에 잘 적용하지 못했습니다. 하나하나 배워가면서 코딩하는게 너무 신기하게 느껴지고 수업시간이 너무 짧아 아쉽습니다. 수업시간이 길거나 자주 수업을 할 수 있으면 좋겠습니다. If구문으로 해야하는 예제들과 Switch구문으로 해야하는 예제들의 차이점을 조금 깨달았습니다. Switch구문으로 코딩해야 더 쉬운 예제들과 If구문으로 코딩해야 더 쉬운 예제들을 구별할 수 있는 능력을 키워야 겠습니다. - [김창욱]
* expr1 에는 변수 초기화. expr2에 조건. expr3에 조건문을 탈출하기 위한 문장.
expr2조건 확인 -> 조건에 충족될때 statement실행 -> expr3 ->
expr2조건 확인 -> 조건에 충족될때 statement실행 -> expr3 ->
- Ruby/2011년스터디/세미나 . . . . 61 matches
* 계산기로서의 루비
*루비의 모든것은 객체로써 존재한다
* 루비에서는 클래스명이 대문자로 시작해야한다!(아니면 에러)
* initialize 함수로 객체 선언하기
end
end
end
end
end
end
end
end
end
* 메서드는 {} 대신 def/end로
* if/else로 예외 처리해보자
* rescue로 만들기
== Ruby로 만들어보기 ==
* 를 하려고 했지만 tcl 문제로 CodeRace로 변경
* A마을에서 B마을로 가려면 강을 건너야한다.
* 레이튼 교수가 배를 타고 건너 B마을로 건너가게 하자.
- WinampPluginProgramming/DSP . . . . 60 matches
winamp SDK 를 받으면 sample 로 있는 dspecho 에 대한 분석.
기본 뼈대 프로그램은 다음과 같다.
// 실제로 DSP 관련 처리시 호출되는 함수들.
int modify_samples1(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate);
int modify_samples2(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate);
int modify_samples3(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate);
int modify_samples4(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate);
int modify_samples5(struct winampDSPModule *this_mod, short int *samples, int numsamples, int bps, int nch, int srate);
modify_samples1, // DSP 처리시 호출 함수
modify_samples2,
modify_samples3,
modify_samples4,
modify_samples5,
#ifdef __cplusplus
#endif
#ifdef __cplusplus
#endif
// getmodule routine from the main header. Returns NULL if an invalid module was requested,
// otherwise returns either mod1 or mod2 depending on 'which'.
if (this_mod == &mod3 || this_mod == &mod4 || this_mod == &mod5)
- Slurpys/강인수 . . . . 56 matches
end;
end;
if S[2] <> 'F' then
end;
if S[i] = 'F' then
end else
if FirstFind then
end;
end;
end;
end;
if Length(S) < 3 then
end;
if HasDorEAtFirst (S) = False then
end;
if FPos = -1 then
end;
if HasGAtLast (S,FPos) then
end;
if IsSlump(Copy(S, FPos+1, MAX_STR_LEN)) then
- DesignPatterns/2011년스터디/1학기 . . . . 55 matches
* DB 프로젝트를 하자?
1. DIP에서 의존관계 역전이 대체 무엇을 역전시킨다는 것인지 알게되었다. 기존에는 Highlevel 모듈이 Lowlevel 모듈에 의존하는 식이었지만 인터페이스를 사용하여 Lowlevel 모듈이 Highlevel이 제공하는 인터페이스에 의존하게 함으로써 설계를 더 유연하게 만들 수 있다.
1. 객체지향을 왜 해야하는가? 근본적으로 소프트웨어가 변화하기 때문이다. 객체지향은 변화에 잘 대응할 수 있는 설계 패턴이다.
1. 좋은 설계는 천재 프로그래머에 의해 한번에 만들어지는게 아니라 고민하는 프로그래머에 의해 지속적으로 만들어 지는 것 이다. 용기를 주는 말입니다.
1. 책에 나온 교차 통풍 패턴을 예로 들어 말하자면, 정적인 구조를 볼 때 마주보는 양 쪽 벽 비슷한 높이에 창문이 있는 사무실은 교차 통풍 패턴에 속하는 것처럼 보일 수 있다. 그러나 창문 앞에 커다란 건물이 있으면 바람을 막아서 창을 통해 바람이 들어오지 않는다. 교차 통풍 패턴은 마주보는 양 벽에 각각 창이 있다는 그 자체로 실내 공기를 쾌적하게 만드는 것이 아니라 창을 통해 바람이 불어들어오고 불어나감으로써 실내 공기를 쾌적하게 만드는 것이다. 따라서 교차 통풍 패턴에서 마주보는 양 벽에 창이 존재한다는 정적 구조 보다는 창을 통해 바람이 들어오고 나가는 동적인 행동 양식과 그것을 통해 실내 공기를 쾌적하게 만든다는 의도가 중요하다고 할 수 있다.
1. 책의 일부 내용으로 미루어보아 절차지향적 패러다임이 판칠때 OO를 들고 나와 절차지향의 수호자들''--절차지향으로 코드 잘 짜지도 못 하는 허접들--''과 격한 키배를 수도 없이 펼치지 않았을까…
3. 디자인이란 선택과 트레이드 오프, 리스크 관리의 연속이라는 점이 가슴에 와닿았습니다. 그래서 결국 자구 과제는 추가 사항이 없으므로 개판으로 짰습니다.
1. 저자는 열심히 getter와 setter를 깐다. get/set은 변수를 public으로 만드는 어려운 방법이다!
1. 멤버변수를 선언하면 꼭꼭 getter/setter를 만들었던 나를 반성...(나중엔 귀찮아서 public으로 한적도 있다지)
1. 책 1장을 이번에 다 읽었습니다. DB프로젝트 설계하는걸 구경 및 참여했습니다.
2. 프로젝트 설계를 하는게 매우 신기했습니다. 가장 최근에 했던 프로젝트가 약 2년 전이라 하나도 모르겠는데 모듈을 잡고 그 모듈의 역활을 잡고 그에 따라 인터페이스를 만들고 하는 걸보고 생각없이 그냥 순차적으로 프로그래밍 하려고했던 제가 참 답이 없었던거 같습니다.
3. "어떤 작업을 수행하는데 필요한 데이터를 요구하지 말라!!! 대신 정보를 가지고 있는 객체에게 일을 해달라고 부탁하라!" 항상 데이터를 get으로 꺼내와 바꿔놓고 set으로 넣어놨던 제 자신을 반성해 봅니다.
4. DB 수업을 듣지 않아서 완전히 참여는 하지 않았지만 DB팀이 하는 프로젝트가 진행되는 모습을 계속 보고 싶습니다.
1. CRC 모델링에 대해 설명하는 부분에 '''도메인 영역의 언어로 문제를 기술하라'''는 말이 인상적이었다. get과 set을 사용할 필요가 없다는 걸 와닿게 하는 말이었다. 언젠가 정모에서 ''체험 OO 현장''같은 활동을 해보고 싶음. 우리 모두 객체가 되어보아Yo :)
1. 쩌는 형님들은 잘 쓰시겠지만 코드가 꼬이는 모습을 보니 내가 하는 상속구현은 일단 슬퍼질 가능성이 매우 높으므로 생각에 생각을 해서 쓰던가 아니면 닥치고 인터페이스 구현을 해야겠다.
1. 오늘 스터디한 부분은 '왜 extends가 나쁜가'였다. 왜 나쁜지 예를 보았는데 와닿지 않아 이해하기 힘들었다.
* 다음시간에는 임상현의 SE 프로젝트인 WinMerge프로젝트를 도와주겠습니다!!!
1. 한번 짜봐야 할 필요성을 느낀다. Life Game으로 넘어가기전에.
1. 오늘은 LifeGame으로 바로 넘어가기 전에 [임상현]의 SE 과제인 파일 비교 프로그램을 설계해보았다.
1. MVC 모델에 맞춰 설계해야해서 [HolubOnPatterns]에서 좋다고 하는대로만 설계하지는 않음.
- ZeroPage . . . . 55 matches
[제로페이지]는 공부하고자하는 뜻이 있는 사람들이 모인 일종의 인력의 장입니다. 그 안에서 뜻이 같은 사람들을 만날수 있기를, 또는 자신이 아는 것에 대해 다른 사람들에게 전달해줄수 있기를, 또는 자신의 부족한 점을 다른 사람들로부터 얻어갈 수 있었으면 합니다. 개인의 이익들이 모여서 집단의 이익을 만들어가며, 집단의 이익을 추구하는 것이 곧 개개인들에게 이익이 되는 경지가 되었으면 합니다.
여러가지 힘든 여건 속에서도 뜻이 있는 사람들의 수고와 노력으로 지금까지 이어져 온라인/오프라인 활동을 계속하고 있습니다. 지금까지의 ZeroPage 는 ZeroPage를 거쳐간 사람들이 만들어놓은, 혹은 현재 활동중인 사람들의 과정에 대한 결과이며, 다시 많은 사람들에 의해 재창조되고 새로운 모습을 만들어나가게 될 것입니다. 언제나 '현재 진행형' 중인 학회이기를. 이 정의 또한 사람들이 스스로 깨뜨리고, 더 좋은 방향으로 바꾸어나가기를.
현재는 02년도부터 도입한 wiki 시스템을 통하여 각 프로젝트나 스터디를 진행할때마다 문서 산출물을 만들어 내어 양질의 정보들을 축적해 나가고 있다. 이 시스템은 스터디와 프로젝트를 팀으로 진행할때 공동 knowledge repository 의 역할을 함으로서 진행하는 회원 들에게 도움이 되고, 추후에 다른 회원이 비슷한 스터디나 프로젝트를 할때 그 wiki 페이지를 참고 함으로써 같은 곳에 쏟을 노력을 줄이고, 그 wiki 페이지를 다시 키워 나감으로써 지속적으로 양질의 정보를 축적하여왔다. 이로서 제로페이지의 wiki 시스템은 현재의 회원과 학교를 떠난 회원그리고 앞으로 제로페이지에 들어올 회원들 모두에게 도움이 되는 시스템으로서 자리매김하고 있다.
ZeroPage 라는 명칭에 대해서는 91학번 이찬근님(현재 중앙대학교 컴퓨터공학부 교수.)이 최초로 제시한 것으로 알려져있음. (from 테크니카(김승태) )
=== 제로페이지 행사들 ===
[프로젝트지도]
== 제로페이지의 연혁 ==
* 2013 삼성 Software Friendship 선정
* 2001 제로페이지 10주년
* 2000 제로페이지 소프트웨어 전시회 부활
* 1991 제로페이지 창립
* 2015 Samsung Software Friendship 4기 동아리 선정
* 12회 중앙대학교 프로그래밍 경진대회
* 삼성 Software Friendship 동아리 선정
* 11회 중앙대학교 프로그래밍 경진대회(Programming Championship)
* 장려상(4등) : 안드로이드 컨트롤러 Application - [이원희]
* 프로젝트 pinple : Pinple팀
* PinPle 프로젝트 - [변형진],[안혁준],[김민재],[정진경],[김수경],[서민관],[서영주],[권순의],[김태진]
* 10회 프로그래밍 경진대회
* 9회 프로그래밍 경진대회 우승
- 만년달력/인수 . . . . 55 matches
=== Calendar.java ===
public class Calendar {
public Calendar(int year, int month) {
public int[] getCalendar() {
if( isLeapYear(i) ) ++ret;
=== CalendarTestCase.java ===
public class CalendarTestCaseTest extends TestCase {
Calendar calendar = new Calendar(1,1);
public CalendarTestCaseTest(String arg) {
private int[] getExpectedCalendar(int start) {
for(int i = start ; i < calendar.getNumOfDays() + start ; ++i)
int real[] = calendar.getCalendar();
calendar.set(1, i + 1);
int expected[] = getExpectedCalendar(expectedSet[i]);
calendar.set(2, monthSet[i]);
assertEqualsArray( getExpectedCalendar(expectedSet[i]) );
calendar.set(4, i + 1);
int expected[] = getExpectedCalendar(expectedSet[i]);
calendar.set(2003, i + 1);
int expected[] = getExpectedCalendar(expectedSet[i]);
- 위키로프로젝트하기 . . . . 55 matches
== Wiki Project Life Cycle ==
1. 해당 주제로 페이지를 연다. 가급적이면 고유한 프로젝트 이름을 가지는 것이 좋다. 일반적인 용어에 대해서는 다른 사람들도 같은 이름의 페이지가 필요할 것이기 때문이다.
* ["프로젝트기록의필수요소토론"]에서 거론된 필수 요소들를 반드시 생각한다.
* Who - 이는 프로젝트를 진행하는 사람들이다. 해당 페이지에 대한 주도적인 책임을 지는 사람들이다.
* When - 프로젝트에서의 '기간' 은 아주 중요한 요소이다. 기간이 무한정인 프로젝트에는 힘이 없다. 기간 내에 해당 프로젝트를 끝내도록 노력하자.
* Why - 프로젝트를 하기 위한 동기이다.
* 페이지를 조금씩 키워나간다. 페이지 내용을 키워나가도 좋고, output 화일을 링크를 걸어도 좋다. 개인적 경험으로 볼때 (1002) 권장하는 방법으로는
* output 화일 링크걸기 - 다른 사람들이 직접 컴파일하거나 소스를 열어볼 수 있도록. 가급적이면 프로젝트 진행 초기버전부터 링크를 걸어주는 것이 좋다고 생각한다. (다른 사람들이 해당 사람의 사고 궤적을 볼 수 있다.)
* 공동 번역 - 영어 원문을 링크를 걸거나 전문을 실은뒤 같이 번역을 해 나가는 방법이다. Offline 으로만으로도 가능한 방법이지만 효율적인 방법으로 다른 방법들을 곁들일 수 있겠다.
* Journal/Schedule - 프로젝트 계획을 세운 것에 맞춰서 체크를 해 나가가고, 진행할 때 마다 그날의 ThreeFs 를 남긴다. 이는 ["컴공과학생의생산성"] 과도 관련이 깊다.
* 종료 - 원하는 목표에 도달했을 경우, 또는 Schedule 에 세운 계획에 맞춰 일이 완료되었을 경우에는 프로젝트를 종료한다. 만일 기간을 넘기고, 프로젝트를 진행할 의욕을 잃었다면, 프로젝트를 종료시켜라. (무기한 보류로 오래 끌고 있지 않도록 한다. 이는 추후 새 프로젝트를 열때 발목을 잡을 것이다.)
== 위키로 프로젝트 하기의 장점 ==
일반게시판에 경우 프로젝트가 어떻게 진행될까? 하나의 프로젝트당 하나의 게시판이 열려있어야 한다. 프로젝트가 10개라고 한다면 게시판이 10개가 열려있어야 하고, 각각의 글들은 시간순서대로 저장이 된다. 위키에서의 page 10개의 의미와 게시판 10개의 의미중 어떤 것이 더 cost가 적게 들까? 그리고, 시간순서의 글 index 나열방식과 텍스트 내의 하이퍼링크중심 글 나열방식중 어느것이 더 의미있는 정보를 담을까?
기존의 게시판방식이 장점이 있다면 '시간의 역사' 라는 점이 있겠다. 매일 작업일지를 쓰는 경우. 시간의 흐름에 따른 진행상황이 처음부터 주욱 보이기 때문이다. 반면 위키는 늘 현재성을 추구한다. 위키의 페이지는 늘 해당 주제를 중심으로 고쳐지는 글이다. 하지만, 시간의 역사 자체의 의미보다는 페이지 자체 내용, 즉 Content 중심의 사고라는 점에 더 무게중심을 두고 싶다. '시간의 역사' 자체가 Content 로서 중요하다면, 그것을 위한 페이지를 열어라.
== ZeroWiki 내에서 프로젝트 하기의 의미 ==
1. 현재 자신이 관심을 보인 분야를 다른 ZeroPagers에게 소개하는 효과를 가진다. 그럼으로써 해당 분야에 대해 먼저 공부한 ZeroPagers에게 암묵적으로 질문을 던지고 도움을 청하는 것이 된다. ZeroPage 에서 활동하는 사람 역시 다른 사람들의 페이지에 대해서 가급적이면 활발한 Feedback 을 보여주기 바란다.
* 이미 열려져 있는 페이지를 토대로 공부할 수 있다. 자신은 그 위에 또 하나의 글들을 추가하거나, 시대에 맞지 않는 틀린 글들을 고쳐주면 된다. 하나의 Page 이름 ( == Contents 라고 해도 좋을 것이다) 하에 많은 사람들이 해당 Page에 대한 '공헌자' 가 되는 것이다. 이는 새로운 프로젝트를 여는 것 보다 더 쉽고 빠르면서도 효율적으로 공헌하는 방법이다.
* 자신이 공부하거나 프로젝트를 추진하는 내용들을 문서로 정리하는 과정을 통해 공부한 내용을 확실히 자기 것으로 만들 수 있을 것이다. 그리고 또한 정리된 문서는 타인에게 하나의 좋은 공부자료가 될 것이다. 오프라인 세미나의 자료로 사용할 수도 있겠다. 자신이 한 일에 대해 정리하는 것 자체가 좋은 습관이라 생각된다.
* 더 효율적으로 이용하기 원한다면, 해당 지식을 이해한 상태에서 정리가 이루어져야 할 것이다. 만일 2~3명 이상 다른 사람들과 스터디를 하게 되는 경우, 해당 지식에 대한 사람들의 이해의 관점이 다를 수 있음을 알게 될 것이다. 여러 관점을 보는 것 또한 좋은 경험이 될 것이다. (외국의 대학에서는 위키를 해당 강의에 대한 공동필기장으로 쓰기도 한다.)
* 온라인이라는 잇점이 있다. 시간과 공간의 제약을 덜 받는다. 하지만, 오프라인을 배제해서는 안된다. 각각의 대화수단들은 장단점들이 존재한다. 위키의 프로젝트는 가급적 Offline에서의 프로젝트, 스터디와 이어져야 그 효과가 클 것이다. ZeroPage 의 ["정모"] 때 자신이 하고 있는 일에 대한 상황을 발표하고, 서로 의사소통을 할 수 있겠다.
- Java Study2003/첫번째과제/방선희 . . . . 54 matches
-- 기존의 compile/link/load방식의 언어에 비해 source를 compile만 하면 최종 수행코드가 생성됨으로 개발시간을 단축할 수 있다.
-- class파일은 그 자체가 실행파일이 아니다. 따라서 그냥 수행될 수 없으며, 이 class파일을 읽어서 해석한 후, 실행해 줄 무언가가 필요한데, 그것이 바로 JVM이다.
2. VM이란 무엇이며, 이것을 씀으로써 얻는 이득과 단점은 무엇인가?
* VM이란? : 자바 언어 및 그 실행 환경의 개발자인 썬 마이크로시스템즈에 의해 사용된 용어이며, 컴파일된 자바 바이너리 코드와, 실제로 프로그램의 명령어를 실행하는 마이크로 프로세서(또는 하드웨어 플랫폼) 간에 인터페이스 역할을 담당하는 소프트웨어를 가리킨다.
* 장점 : 가상머신이 한 플랫폼에서 제공되면, 어떠한 자바 프로그램도 그 플랫폼에서 실행될 수 있다.
애플릿은 브라우저에 플러그인 형식으로 실행될 수 있는 자바 프로그램을 말하고 애플리케이션은 브라우저가 아닌 순수 자바 프로그램들을 말합니다. 굳이 따지자면 서블릿, 빈즈, JSP 모두 애플리케이션에 해당하겠죠.
* 2. 서블릿이나 JSP 는 J2EE의 구성원들로서 서버사이드 스크립트라고 합니다. JSP가 만들어진 이유가 뭐냐하면, 서블릿의 문제점을 해결하기 위해서라고나 할까... 웹 프로그래밍이란게 본질적으로 웹디자이너와의 협력이 불가피한데 서블릿의 경우에는 DISPLAY 부분을 수정하기 위해서 웹디자이너가 접근하기 어렵다는 단점이 있죠.. 이때문에 JSP가 만들어졌다고 알고 있습니다. JSP라는 파일은 웹 디자이너가 페이지를 수정하기 편하게 되어있다는게 장점이죠. JSP가 컴파일되면 서블릿이 됩니다.(이게 전부임...) 그리고 서블릿이 실행되면 실제 HTML 페이지가 클라이언트에게 전송되는 것입니다.
빈즈에 대해서 이야기 하자면 웹 서비스라는 큰 테두리 내에서 이야기를 해야 하는데, 간단하게 말하자면 빈즈라는 것이 만들어진 이유는 프로그램의 DISPLAY 부분과 LOGIC 부분을 분리해서 좀 더 확장성있고 유연한 시스템을 개발하고자 하는 취지에서 탄생한 것입니다.(언뜻 이해가 안될 수도 있음...)
프로그래밍을 할때 데이터베이스에 대한 접근이라든가 또는 다른 시스템에 대한 참조를 할때 굳이 그 시스템에 대해서 세세하게 알필요 없이 그저 외부에 주어진 인터페이스만을 이용해서 접근하면 됩니다. (예를 들자면 어떤 기능을 이용할때는 이런 메소드를 호출하면 된다. 어떤 값을 저장하기 위해서는 이런 메소드로 접근하면 된다 정도). 빈즈에 대한 내용은
실제로 J2EE 프로그래밍을 해야지만이 알 수 있을듯 합니다.
4. 자바로 "Hello World!"를 출력하는 프로그램 작성하기
* 이 내용들을 대충이라도 이해했으면 될꺼 같군요. 역시 마찬가지로 실제로 프로그램을 돌게끔 만들지를 못한거 같군요. 한번 해 보세요.
* 자바가 가지는 단점이 하나도 없군요..;; 단점도 같이 조사해 주세요. 언어가 가지는 특징이 꼭 장점만 가지라는 법은 없구요 그 단점을 알아서 그것을 극복하여 프로그래밍 하는 것도 필요하답니다.
eclipse 나 Editplus의 사용법을 제대로 알고 다시 코드를 작성해보겠습니다.
* Java란 프로그램언어는 enterprise 급 기업의 web시스템에서부터 작은 핸드폰에 이르기까지어디든지 사용할 수 있다. 다시 말해 Java를 할 줄 알면 어느 곳에나 적용 가능한 프로그램을 개발 할 수 있다는 말이다. 그 뿐만 아니라, Java로 개발된 시스템은 다른 언어로 개발된 시스템보다도 훨씬 쉽게 확장이 가능하다.
예를 들어 Java로 인사시스템을 개발하여 운영하고 있다가, 새로운 급여 시스템을 개발하고자 한다고 가정하자. 이때 Java는 다른 언어에 비해 기존 시스템과 쉽게 연동가능하며, 혹 기존 시스템이 Java가 아니더라도 그 일은 가능하다.
* Java는 보안능력이 뛰어나다. 예를 들어 네트워크를 통해 내 PC로 download된 Java로 개발된 프로그램은 일반적으로 그 능력이 제한된다. 다시 말해 바이러스처럼 작용할 수 없다는 말이다 (이점은 MicroSoft의 Active X와 비교된다).
예를 들어 모 site에 접속하였더니, applet이 내 PC로 내려와 수행되었다. 만약 이 applet이 내 PC의 중요한 정보를 가져가거나 지워버릴 수 있을까? 일반적으로 불가능하다(물론 가능하게 하는 방법도 있다. 하지만 일반적으로는 불가능하다).
* MicroSoft windows에서 신나게 실행되는 게임이 Linux에서도 잘 돌까? 아마도 답은 '아니다' 일 것이다. 그러나 만약 그 게임이 Java로 제작되었다면 답은 '예' 이다. 다시 말해 Java로 개발된 프로그램은 PC, Macintosh, Linux등 machine이나 O/S에 종속되지 않는다.
기존에 Sun OS에서 Java로 개발한 인사시스템을 Windows NT로 이관하고 싶다. 이때 프로그램 수정없이 가능할까? Windows NT를 지원하는 JDK가 있다면 가능하다. 그러고 Windows NT를 지원하는 JDK는 있다.
- PowerOfCryptography/조현태 . . . . 54 matches
사실 하라면 못할것도 없지만, 입력 형식과 출력 형식등을 새로 짜내고, 덧셈및 곱셈연산을 다시짜주면 간단히(?)해결된다.
하지만 지금은 일해야 하기때문에 시간이 부족한 관계로..
임시로 뒤에 두 숫자는 해결하지 못하는 소스를 짜두었다.
두번째 소스.. 숫자가 커도 저장하고 연산할 수 있을...듯 하다..;;ㅁ;; ㅎㅎㅎ MAX_LONG의 값을 10으로 줄이고 테스트를 해서 2개 이상의 경우에도 돌아가는 것은 알겠는데... 3번째 4번째 예제의 수가 원체 커야지 말이다. 연산의 결과가 좀처럼 안나온다. 곱하기 루틴에서 계속 더하고 있는듯..;;ㅁ;;
if (temp_result>mokpyo)
else if (temp_result<mokpyo)
else
cout << "결과값에 1을 입력할경우 프로그램이 끝납니다.\n";
if (1==intput_number)
if (FALSE==answer)
else
if (NULL!=who_next)
if (NULL!=who_next)
if (prv!=NULL)
if (prv!=NULL)
else
if (prv!=NULL)
else
if (input_number>9 || input_number<0)
if (number>=MAX_LONG)
- joosama . . . . 54 matches
http://members.tripod.co.jp/pochi2_2/line_kisha.gif http://members.tripod.co.jp/pochi2_2/line_kisha.gif
http://members.tripod.co.jp/pochi2_2/line_kisha.gif http://members.tripod.co.jp/pochi2_2/line_kisha.gif
자리를 길게쭉 앉은관계로 많은 분들과는 대화를 못나눈듯...
||승한오빠[이승한]||타블로[최경현]||동영오빠[조동영]||현욱이 [sisay]||......||
말 별로 못나눠보신분들과는 너무 아쉽습니다 ㅎㅎㅎ;
암튼...짬뽕을 맛있게 먹고나서 집으로 가는길에..
5000마하의 속력으로 달려가는 센스!
http://bingoimage.naver.com/data3/bingo_36/imgbingo_80/kims1331/32788/kims1331_1.gif
나는 오랬동안 독도문제, 왜곡교과서 문제에 나름대로 관여해왔다.
그러면서 느낀것이 늘 공허한 외침으로 끝나버리고 마는 안타까움이었다.
독도문제만 하더라도,일본의 지리교과서는 물론이고, 일본에서 발행되는 어떤 지도이든지 간에 독도를 한국영토로 표기한 지도는 없다.
그러므로 당연히 일본에서 교육을 받고 자라나는 국민들은 독도가 일본영토라고 생각한다.
아니 다께시마가 아닌 독도라는 이름으로 한국이 실제적으로 지배하고 있다는 것을 알려주고 싶었다.
우리국민들의 분노도 분노로 끝나지 않고 향후의 적극적인 정부의 대책을 요구하게 되어,
그렇다면 우리정부는 왜 이렇게 미온적으로 대처하고 있는 것일까. 어떤 이는 독도의 소유권이 불명확해서 그렇다고 생각하는 사람도 있다.
그러나 그렇지가 않다. 서울대학교의 교수로 재직하시다가 독도학회 회장으로 있는 신용하교수는,
일본이 주장하고 있는 근거의 부당성을 일일이 지적하고, 우리의 영토임을 명백히하는 여러논문과 저서등의 출판으로,
그 두번째는, IMF사태가 불거진 이후에 대통령에 당선된 김대중 대통령이 외환 위기 극복을 위한 방안으로,
일본으로 부터 외환자금 300억불을 긴급히 들여오는 과정에서, 독도주변 12해리밖을 어업공동수역으로 양보를 해주었기 때문이었다.
즉 한국이 어려울때 일본은 돈으로 협상을 유리하게 진행시켜 왔던 것이다.
- 서버재조립토론 . . . . 54 matches
[정모]때 서버 재 조립에 대한 이야기가 나왔다는 이야기를 회장님을 통해 들었습니다. 일단 제가 회의에 참석하지 못하고 회의록이 올라온 것도 아니므로 어떻게 해서 서버 재조립 이야기가 나왔는지 알고 싶습니다. 일단 제 생각은 굉장히 부정적인데요. 서버가 하는 일이 거의 웹서버 내지는 소스 리파지터리로 사용되고, 대규모 소스를 컴파일한다거나 덩치가 큰 프로그램이 돌아가는것도 아니기 때문입니다. 게다가 동시접속 사용자수로 많지 않은걸로 알고있는데요. (물론 이런것들은 이제부터 하기 위해 하나 새로 맞춘다!! 면 할말 없지만..) 이 상황에서 굳이 새로 서버를 맞추는게 필요할지... [임인택]
네 충분히 그렇게 생각 하실수 있다고 생각합니다. 현재로서 서버가 하는일이 웹서버및 소스 Repository 로서의 역할이니깐요. 그리고 마지막에 프로젝트 때문에 필요할 경우에 나 새로 맞출 필요가 있다고 하신 말씀도 동감합니다. 현재 한 3주 동안 제로페이지 서버가 제대로 작동하지 않았습니다. 제로페이지 서버를 아주 자주 이용하는 입장에서는 많이 제로페이지 서버에 들어가니깐 서버가 죽어 있어서 여러가지로 불편했고, 현재 제로페이지 서버와 연계해서 돌아가는 위키 포탈을 운영 및 관리하는 입장에서는 치명적이었습니다. 제로페이지 회원들이야 안면이 있으니깐 이해해 주겠거나 좀 불편하고 말겠지 하고 생각하실수도 있지만, 위키 포탈 서비스가 우리 학회에서 제공을 해주는 서비스지만 외부에서 이용하는 사용자도 꽤 있었는데 왠만한 사용자들은 다 빠져 나간듯 하네요.. 그래서 지금은 급한게 다른 서버에서의 DB 지연을 기다리는 시간을 원래 1분에서 3초로 줄여서 그나마 임시 방편으로 수습을 했습니다. 또 프로젝트 진행을 하는데에도 제로페이지 서버가 자주 죽어서 진행을 제대로 할 수가 없었습니다.
제로페이지 서버가 현재 분명 문제가 있고, 이것을 해결해야 한다는데에는(즉 좀 가끔가다가 죽으면 뭐 어때 하는 분은 없을거라고 생각합니다.) 모두 동감 하실거라고 생각합니다. 현재 제로페이지 서버가 아주 자주 죽는 문제가 제로페이지 서버의 하드웨어 적인 문제인가, 소프트웨어 적인 문제인가, 인프라적인 문제인가 이 3가지중 하나라고 생각합니다. 인프라적인 문제는 다른 학회나, 동문서버도 안 죽고 하니깐 제외 하겠습니다. 그러면 하드웨어 아니면 소프트웨어 적인 문제인데. 솔직히 저는 리눅스가 오래 사용해서 자주 뻗는다는 것은 좀 이해가 가지 않습니다. 리눅스를 서버로 우리보다 훨씬 오래 사용하는 곳도 부지 기수일텐데 그런곳들이 모두 이런 문제를 겪고 있을까요.. 그렇다고 지금까지 관리가 안되서 그런것도 아니라고 생각합니다. 상민형, 석천이형, 영창이 모두 제가 생각하기에는 그 누구보다도 서버 관리를 잘 했다고 생각합니다. 물론 테스트를 해봐야 알 문제입니다. 오늘 회장님이 테스트 해본다고 했는데 가끔씩 서버가 죽는 문제를 어떻게 테스트를 해야할지 전 감이 안 오네요. 한 일주일정도 제로페이지 서버를 죽이고 다른것(다른 하드에) 웹서버를 깔아서 아주 아주 수시로(몇분 단위로) 그 웹서버로 들어와서 죽었는지 확인을 해야 하는데(물론 테스트는 테스트를 진행하는 한두사람만 하겠죠. 현재의 제로페이지 위키만 해도 하루 방문자가 1000이 넘는것에 비해서...)그게 참 어려운 문제라고 생각합니다. 또 한 일주일동안 서버를 죽이는것도 현재 위키위주로 돌아가는 제로페이지에도 치명적이구요. 이렇게 테스트를 해서 만약 하드웨어 적인 것이 문제라면 또 다시 서버를 업그레이드 한다음에 다시 서버를 설치하는 작업을 해야겠죠.
즉 제가 서버업그레이드를 제안하는것은 하드웨어적인 문제나 소프트웨어적인 문제를 동시에 해결하고자 제안한 것입니다. 위와 같은 테스트를 할경우 그에 따른 희생및 서버 관리자의 불필요한 수고가 필요합니다. 그리고 학회 운영 및 프로젝트에서도 많은 희생이 따름니다. 그리고 위와 같은 테스트도 확실한 방법은 아니구요, 여전히 불확실성을 내포한 방법입니다.
만약 서버를 업그레이드 하려면 회비로 할텐데(피시실 관리비로 받은) 제가 생각하기에 MT나 회식때 회비를 사용하는것도 좋지만 이렇게 제로페이지가 실질적으로 프로젝트를 하는데 많은 장애가 생기는 상황을 타개하는데 사용하는것도 참 회비를 유용하게 사용하는게 아닐까 생각합니다.(그래서 우리가 MT나 회식도 사비를 더 내더라도,,) 글을 쓰면서도 불안 하네요. 어제도 글을 쓰고 나서 저장했을때 여러번 서버가 죽어서...
결론은 저는 서버가 자주 죽는 문제의 해결책으로 서버 업그레이드를 제안합니다.(만약 다른식으로라도 서버의 빈번한 죽음을 막을수만 있다면 좋겠죠. 최소의 희생으로..) - [(namsang)]
저는 업그레이드가 필요하다고 생각합니다. 서버의 핵심은 안정성인데, 지금의 서버는 안타깝게도 그 역활을 제대로 수행해주지 못하고 있기때문입니다. 서버 업그레이드 시도를 하게되면, 이전의 컴퓨터에 문제가 없다고 판단될 경우 새서버의 보조 역활과 리눅스 테스트용 서버로 사용해도 큰 문제가 없다고 생각합니다.^^ 속도 측면에서는 현재의 서버도 전혀 문제가 없지만, 안정성이 낮은점은 이용자의 입장에서 불편하다고 느낄 수 밖에 없기 때문입니다.(실제로 많이 불편했답니다.ㅠ.ㅜ 꼭 필요할때만 죽어있어요..) - [조현태]
흠.. 저로서는 그다지~ -_-; 안정성이라는 것이 하드웨어적 안정성의 문제라면 모르겠지만.. 현재 서버의 잦은 다운 or 리부트는 하드웨어적인 문제로 보이지 않네요. 리눅스 설정 때문인 것 같은데... 좀더 지켜보는 일이 필요 할 듯합니다. 돈이 남는다면 적당히 램정도는 올리는 것이 좋겠지만.. 전체 서버를 재 조립하는건 좀 낭비같기도 하네요.
무엇보다 ZP서버가 서버로서 그다지 많이 활용되지 않으니까요. 현재로서는 기껏해야 웹서버정도? 그것도 소수로만... - [eternalbleu]
- 타도코코아CppStudy/객체지향발표 . . . . 54 matches
* Identity(식별) - 각 객체는 다른 객체로부터 분리되고 있고, 분별 가능해야 한다.
* Classification(분류) - 같은 자료구조와 행위를 가진 객체들은 동일한 클래스(class)로 분류된다.
상대적으로 각 객체는 소속 클래스의 인스턴스(instance)가 된다.
* Polymorphism(다형성) - 같은 연산 기능이 부여되어도 그 기능을 수행하는 클래스에 따라 다른 행위로 나타날 수 있다.
예를 들어 '이동(move)' 이라는 기능이 '교수'라는 클래스에 적용될 때는 자택의 이사가 될 수 있으나, '승용차'라는 클래스에 적용되면 특정 목적지로 일정한 시각에 정해진 속도로 움직이는 행위가 될 수도 있다.
즉, 주어진 클래스에 서브클래스(subclass)가 있다면 서브클래스의 모든 객체들은 소속 클래스의 모든 속성이나 연산기능을 상속받게 된다. 따라서, 서브클래스를 정의할 때에는 수퍼클래스(super class) 로부터 상속받는 내역들을 중복하여 정의할 필요가 없게 된다.
* 객체지향이란 프로그래밍을 좀더 현실생활과 비슷하게 하기 위해 나온 개념이다.
* 모든 프로그램의 요소를 각각의 독립적인 객체로 생각한다.
-- black box의 개념 : 그 객체들이 어디에 쓰이는 것인지는 알아도 그 객체들이 어떤 구조로 되어 있으며 어떤 데이타를 유통시키며 어떤 알고 리즘으로 움직이는가 하는것은 모른다는 것이다.
=== 절차적 프로그래밍과의 비교 ===
|| '''절차적 프로그래밍''' || '''객체지향 프로그래밍''' ||
|| 함수로 이루어짐 || 클래스로 이루어짐 ||
|| 구조적 프로그래밍 || 객체지향 프로그래밍 ||
|| 프로그램을 기능단위로 세분 || 프로그램을 object 단위로 세분 ||
|| 소,중형 프로그램에 적합 || 대형 프로그램 작성에 적합 ||
* 캡슐화(encapsulation) : 객체의 내부적인 사항과 객체들간의 외부적인 사항들을 분리시킨다. 이렇게 캡슐화된 객체의 행위는 외부에서 볼 때는 구체적인 아닌 추상적인 것이 되므로 정보 은닉(information hiding) 개념이 존중된다. 주어진 클래스의 특정 연산 기능은 메소드(method)라고 한다. 캡슐화는 무슨 메소드로 구현되었는가에 구애받지 않고 추상적으로 정의된 연산 기능을 통해 객체가 사용되고 시스템의 상태(state)를 변화시키도록 해준다.
* sharing : 자료 구조및 행위의 공유화(sharing)는 계층 관계에 놓여 있는 클래스들 간의 상속성(inheritance)으로 가능하다.
서브클래스가 수퍼클래스의 변수와 메소드들을 상속받을 때 필요에 따라 정의가 구체화(specification)되며, 상대적으로 상위층의 클래스 일수록 일반화(generalization) 된다고 말한다.
즉 함수나 데이터가 그것이 속해있는 객체전용으로 된다는것을 말한다. 좋은 예로 자동차를 들수있다.
그렇다면 객체를 사용하여 생기는 마지막 목적지의 차이는 어디서 생기는 것일까? 바로 유저가 머릿속에 생각한 목적지의 차이, 즉 주어진 데이타의 차이에서 오는것이다.
- 2학기파이선스터디/서버 . . . . 52 matches
if name in self.users:
conn.send('Already resistered name\n')
conn.send('[%s] Welcome!\n'%name) # 본인에게 가는 메시지
if name not in self.users:
if msg[0] != '/':
if cmd[0] == 'quit':
conn.send(msg)
if self.users.handleMessage(name, data) == -1:
self.request.send('Name ? ')
if self.users.addUser(self.request, self.client_address, name):
line.append(data)
if data[-1] == '\n':
if __name__ == '__main__':
if self.isinEntry:
self.send('Already resistered name\n')
self.append(Users(self.ID, self.message, self.isinEntry))
self.send('[%s] Welcome!\n'%self.ID) # 본인에게 가는 메시지
if self.ID not in Users:
if msg[0] != '/':
# if cmd[0] == 'quit':
- PragmaticVersionControlWithCVS/WhatIsVersionControl . . . . 51 matches
이장에서는 서로 다른 의미로 사용되는 용어의 정의를 목적으로 한다.
개발 중인 프로젝트의 모든 버전이 저장되는 장소이다. 파일 시스템, DB일수도 있으며, 어떤 경우에는 2가지를 같이 사용하기도 한다.
프로젝트의 기본으로 저장되는 소스코드. 그 외에 버전관리에 필요한 기타 파일들이 저장함.
'''원칙:만약 프로젝트의 진행에서 없으면 곤란한 모든 것이 버전관리의 대상이된다. 즉 반드시 프로그램의 빌드만이 아니라 차후에 필요한 다큐도 버전관리를 해야할 필요가 있다'''
|| 자동으로 생성되는 잔여파일의 경우 굳이이를 관리할 필요는 없다. 대신에 특수한 이유(컴파일 타임. 라이센스)로 필요한 경우에는 관리를 하는 경우도 있다 ||
지역 작업공간(local workspace)는 원격에 저장된 파일들을 프로그램의 개발을 위해서 개발자가 가지고 있는 컴퓨터에 받아서 프로그램을 수정하도록 하는 공간임.
체크아웃(checkout) : 저장소에 있는 파일을 작업공간으로 복사해 지역 복사본을 생성.
''만약 한개의 파일을 2명의 프로그래머가 각기 수정을 한뒤 commit한다면 이때의 상황을 어떤식으로 처리할 것인가?''
기본적으로 Version Control 에서 관리의 가장 작은 단위는 파일이다. 그외에 한개의 프로젝트 단위로 전체 프로그램을 관리하고, 그 하부에 모듈을 기준으로 해서 소스를 관리한다.
CVS가 각기의 파일에 할당하는 버전의 번호는 그 파일의 버전일뿐 전체 프로젝트의 버전일 수는 없다. ''(잡담:물론 따로 기능이 있지 않을까? -_-;)''
버전 관리 시스템에서는 전체의 파일, 모듈단위, 프로젝트 단위로 이에 속한 파일들에 꼬리표라는 것을 붙이는 것이 가능하다.
이 경우 PreRelease2를 불러들이게 되면 상기의 버전의 파일들이 불러들여지게 된다. 태그는 프로젝트의 진행에 있어서 중요한 일이 발생한 시점을 기록하는 것으로 사용되는 것도 가능하다.
개발중심축(mainline) : 일반적인 개발환경하에서 개발자들은 동일한 코드 기반을 가지고 작업을 한다. 체크아웃, 개정판을 만들어서, 변경사항을 체크인하면 모든 개발자가 서로의 작업을 공유하게 되는 것이다. 이러한 개발흐름을 일컬어 개발중심축이라 함.
이런 개발중심축상에서 만약 특정 시점에서 프로그램의 릴리즈 버전이 완성되어서 QA과정으로 들어갔다고 생각해보자. 이때, 프로젝트의 다른 팀원들과 동시에 개발을 진행시켜 나가면서, QA과정에서 발생된 치명적인 버그를 본래의 개발중심축상에 반영시키기 위해서 만들어진 개념임. (그림이 있어야 이해가 쉬울듯. 글만 읽어서는 SE를 듣지 않은 이상 이해 힘들어보임.)
브랜치를 만들게 되면 그 시점에서 브랜치로 만들어진 소스는 개발의 중심축선상에서 빠져나와서 기본 개발축과 다른 개발을 할 수 있다. 또한 이렇게 분기된 프로젝트의 변경부분을 본래의 개발중심축선상에 반영시키는 것또한 가능하다. 또한 이 릴리즈 시점을 지나서 개발중심축이 상당부분 진행이 된 상태에서 소비자가 릴리즈버전의 버그를 보고하여, 이 버그를 고쳐야할 필요가 생겼을때 개발자들을 새로 소스를 만들 필요없이 단지 릴리즈 시점의 브랜치로 옮겨서 작업을 하고, 패치를 만들어 내는 것이 가능하다.
브랜치를 이용하면 한명의 개발자가 한개의 컴퓨터를 가지고도 릴리즈 버전의 버그 수정작업과 mainline상의 프로그램의 개발을 동시에 하는 것이 가능하다.
이 경우 브랜치에서 수정된 사항이 mainline상에도 반영되어야할 필요가 있을때 이를 병합의 과정을 통해서 하는 것이 가능하다.
만약 한개의 파일을 가지고 2명의 사람이 동시에 수정작업을 거쳐서 체크인하게된다면 어떤 상황이 벌어질까? 아마 이대로는 한개의 파일이 쓰여지고 다른 파일이 그 파일을 덮어 쓰는 상황이 벌어질 것이다.
파일을 체크아웃하는 시점부터 그 파일들은 읽기전용의 속성으로 변경된다. 따라서 다른 사람이 그 파일을 체크아웃하더라도 수정을 할 수는 없게되는 것이다.
다수의 체크아웃을 허용하는 대신에 체크인을 하는 때에, 저장소에 저장된 파일들을 로컬 작업공간에 반영시킨다.
- EightQueenProblemDiscussion . . . . 50 matches
당신은 어떤 식으로 이 문제에 접근을 했고, 어떤 사고의 과정을 거쳤으며, 어떤 과정으로 프로그래밍을 했으며, 어떤 디자인 결정을 했습니까? 만약 실패했다면 당신이 했던 것 혹은 하지 않았던 것 중 무엇이 실패의 주요인이었다고 분석을 하십니까?
만약 당신보다 더 짧은 시간에, 더 짧은 코드로 문제를 해결한 사람이 있다면, 그 사람과 함께 PairProgramming (혹은 NetMeeting 등을 이용, VirtualPairProgramming)을 해서 그 문제를 함께 새로 풀어보세요. 당신은 무엇을 배웠습니까? 그 사람은 어떤 방식으로 프로그램의 올바름(correctness)을 확인합니까? 그 사람은 디버깅을 어떻게 합니까(혹은 디버깅이 거의 필요하지 않은 접근법이 있던가요)? 그 사람은 어떤 순서로 문제에 접근해 갑니까? 그 사람은 어느 정도로까지 코드를 모듈화 합니까? 이 경험이 당신의 프로그래밍에 앞으로 어떤 변화를 불러올 것이라 생각합니까?
말 그대로 그냥 정공법 (이 될지는 모르겠지만. -_-;)으로 나갔다. 여기서는 테스트 코드로 대신을..
그 다음에는 '퀸을 놓을 수 있는 위치가 안전한 곳일까?' 하는 점에 대해 접근. 이를 SelftyZone 이라 칭했다. 이를 체크하기 위해서는 가로/세로/대각선방향을 모두 체크해야 하므로 다시 4개의 작은 모듈로 나누어졌다. 그중 대각선 체크의 경우 처음 비교를 시작할 위치를 측정하기 위한 모듈을 하나 더 추출하게 되었다.
해당 자리에 놓았을 경우. 다른 퀸을 공격할 수 있는 위치에 대해 알아보기 위한 부분에 대해 생각했다.
* Feelings - 느낀점: 시간이 넘 오래걸려서 한편으로는 쪽팔리긴 하다. -_-; 뭐.. 알고리즘 부분에 대해서 너무 시간을 오래 끌었다. 왜 그랬을까 생각하는데.. 아마 특정 알고리즘들이 먼저 머릿속에 떠올라서가 아닐까 한다. (이 부분에 대해서는 stack을 쓸까 recursive 로 대신할까 이리저리군시렁군시렁) 이런 부분에 대해서는 어떻게 test가능한 부분으로 접근해나갈수 있을까.
자신에게 항상 "What is the simplest thing that could possibly work?"라는 질문을 하면서 TestDrivenDevelopment를 했나요? 테스트/코드 사이클을 진행하면서 스텝을 작게 하려고 노력했나요? 중간에 진척이 별로 없는 경우, 어떤 액션을 취했나요? 그 때 테스트 사이클의 스텝을 더 작게하려고 했나요? 만약 다시 같은 문제를 새로 푼다면 어떤 순서로 테스트를 하고 싶나요? (직접 다시 한번 새로 시작하는 것도 강력 추천) 왜 다른 사람들에 비해 시간이 상대적으로 많이 걸렸을까요? 테스트 코드를 사용한 것이 그 시간만큼의 이득이 있었나요? TestDrivenDevelopment를 해내가면서 현재 패스하려고 하는 테스트 케이스에서 무엇을 배웠나요? 켄트벡이 말하는 것처럼 사고의 도구가 되어 주었나요? 참고로 저는 EightQueenProblem을 파이썬으로 약 30분 정도 시간에 50 라인 이내로(테스트 코드 제외) 풀었습니다. TestDrivenDevelopment로요. --김창준
직접 다시 새로 시작하는 것에 대해서는 비교계산을 내리기 힘들것 같네요. (더 좋은 디자인을 얻어내는 것과 훈련라는 점에서는 물론 저도 추천) 제가 잘못했다고 생각되는 부분은, 퀸을 배열하는 방법 알고리즘 부분에 대해 TestDrivenDevelopment 를 지키지 못했다는 점이죠. (머릿속에 먼저 재귀함수 호출 등의 특정 알고리즘들이 먼저 떠오른지라. )
알고리즘 궁리 부분에 대해서도 80/20 법칙이 통용되려나요. :) 3시간이 걸린 부분이 바로 다음 부분이였는데요.
if Level == 8:
if not Ret:
즉, 실제 Queen의 위치들을 정의하는 재귀호출 코드인데요. 이 부분에 대한 TestCase 는 최종적으로 얻어낸 판에 대해 올바른 Queen의 배열인지 확인하는 부분이 되어야 겠죠. 연습장에 계속 의사코드를 적어놓긴 했었는데, 적어놓고 맞을것이다라는 확신을 계속 못했죠. 확신을 위해서는 테스트코드로 뽑아낼 수 있어야 할텐데, 그때당시 이 부분에 대해서 테스트코드를 못만들었죠.
지금이라면 'Level 8일때 바로 판을 찍지 않고, 저 상황의 데이터구조체를 그대로 복사해서 결과만 넣어놓는 리스트를 하나 더 만들고, 그 결과들에 대해 올바른 배열을 했는지 테스트하는 코드를 뽑아낼 수 있겠다' 라는 아이디어가 떠오르긴 하네요. (그렇더라도 100라인은 넘어갈것 같긴 하네요. ^^;)
사고의 도구로써는 연습장과 TFP 둘 다 이용했지만, 순수하게 적용하지는 않았습니다. (위의 Queen을 놓는 부분에 대한 재귀호출부분에서는 적용못함) 테스트작성시간/코드작성시간 등에 대한 관리는 하지 않았습니다. (이 부분에 대해서는 반성을. ^^;) 흠.. 그리고 'The Simplest Thing'을 찾아나갔다기 보다도, 이미 해당 문제에 대해서 의사코드를 생각하고, 해당 코드에 대해 Top-Down 형태로 모듈을 나눈뒤에 모듈에 대해 테스트를 만들어갔다는 생각이 드네요. --석천
지금가지 모두 C++, Python, Java 등 OOPL을 이용했는데 그 중 OOP로 푼 사람은 아무도 없네요 -- class 키워드가 있다고 OOP라고 하긴 힘들겠죠. 사람은 시간이 급하다고 생각이 들수록 평소 익숙한 도구와 멘탈리티로 돌아가려고 하죠. 어쩌면 OOP가 편하고 수월하다고 느끼는 사람이 없다는 이야기가 될지도 모르겠네요. 물론 모든 문제를 푸는데 OOP가 좋다는 이야기를 하려는 것은 아닙니다만. --김창준
이런 암호같은 프로그램도 있다는..
t(a,b,c){int d=0,e=a&~b&~c,f=1;if(a)for(f=0;d=(e-=d)&-e;f+=t(a-d,(b+d)*2,(
* TFD로 시도하였는데. test와 code간 이동이 빠르지 못하였다. 즉, test부분이 충분히 작아지지 못한 것 같다.
[이승한]과 PairProgramming을 하며 문제를 풀었습니다. TDD를 하지 않고 30분을 작성했고 나머지 1시간30분을 TDD로 했습니다.
적당한 자료구조를 끝까지 찾지 못해 헤맸다는 느낌입니다. 처음 TDD를 접하는 파트너로서는 테스트를 빨리 이해할 수 없어서 한 동안 페어 사이에 공백이 느껴졌습니다. 속도를 늦추고 파트너에 맞추자, 파트너가 드라이브를 하는 의욕을 보였습니다. 완성하지 못해 다른 이의 코드와 비교하는 시간이 없어서 안타깝습니다.
- HowToStudyDataStructureAndAlgorithms . . . . 50 matches
처음접하는 것이라면 배열 -> 스택 -> 큐 -> 리스트 -> 트리 순서로 나가는 것이 좋을듯. 정렬과 해싱 이하 뒤의 꺼는 아마 이번달내로 나가기 힘들것 같은데. 트리나 그래프까지만 목표로 잡아도 성공이라고 생각함.
그리고, 자료구조 레포트 선배들이 한 것이 있으니까, 그 문제들 구현을 목표로 잡아도 좋고. (원한다면 보내줄께.) ex) 스택:스택 구현, postfix 의 구현, 계산기 구현. 큐:큐 구현. 리스트:다항식 덧,뺄셈 & 곱셈 구현 (polynomial) 트리:2진트리구현
자료구조는 일단 1. 각각의 자료구조들의 특징을 이해하고. 2. 실제의 구현법을 익히며 (뭐.요새는 collection library들을 제공하므로 직접구현할 일이 줄어들었긴 했지만. 그래도 여전히 기초가 됨) 3. 해당 문제상황에 적절한 자료구조를 선택할 수 있는 눈을 다듬어야 함. --석천
제가 생각컨데, 교육적인 목적에서는, 자료구조나 알고리즘을 처음 공부할 때는 우선은 특정 언어로 구현된 것을 보지 않는 것이 좋은 경우가 많습니다 -- 대신 pseudo-code 등으로 그 개념까지만 이해하는 것이죠. 그 아이디어를 Procedural(C, 어셈블리어)이나 Functional(LISP,Scheme,Haskel), OOP(Java,Smalltalk) 언어 등으로 직접 구현해 보는 겁니다. 이 다음에는 다른 사람(책)의 코드와 비교를 합니다. 이 경험을 애초에 박탈 당한 사람은 귀중한 배움과 깨달음의 기회를 잃은 셈입니다. 참고로 알고리즘 교재로는 10년에 한 번 나올까 말까한 CLR(''Introduction to Algorithms, Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest'')을 적극 추천합니다(이와 함께 혹은 이전에 Jon Bentley의 ''Programming Pearls''도 강력 추천합니다. 전세계의 짱짱한 프로그래머/전산학자들이 함께 꼽은 "위대한 책" 리스트에서 몇 손가락 안에 드는 책입니다. 아마 우리 학교 도서관에 있을 것인데, 아직 이 책을 본 적 없는 사람은 축하드립니다. 아마 몇 주 간은 감동 속에 하루하루를 보내게 될 겁니다.). 만약 함께 스터디를 한다면, 각자 동일한 아이디어를 (같은 언어로 혹은 다른 언어로) 어떻게 다르게 표현했는지를 서로 비교해 보면 또 배우는 것이 매우 많습니다. 우리가 자료구조나 알고리즘을 공부하는 이유는, 특정 "실세계의 문제"를 어떠한 "수학적 아이디어"로 매핑을 시켜서 해결하는 것이 가능하고 또 효율적이고, 또 이를 컴퓨터에 어떻게 구현하는 것이 가능하고 효율적인지를 따지기 위해서이며, 이 과정에 있어 수학적 개념을 프로그래밍 언어로 표현해 내는 것은 아주 중요한 능력이 됩니다. 개별 알고리즘의 카탈로그를 이해, 암기하며 익히는 것도 중요하지만 더 중요한 것은 알고리즘을 생각해 낼 수 있는 능력과 이 알고리즘의 효율을 비교할 수 있는 능력, 그리고 이를 표현할 수 있는 능력입니다.
첫번째가 제대로 훈련되지 못한 사람은 알고리즘 목록의 스테레오 타입에만 길들여져 있어서 모든 문제를 자신이 가진 알고리즘 목록에 끼워맞추려고 합니다. DesignPatterns를 잘 못 공부한 사람과 비슷합니다. 이 사람들은 마치 과거 수학 정석을 수십번을 공부해서 문제를 하나 던져주기만 하면, 생각해보지도 않고 자신이 풀었던 문제들의 패턴 중 가장 비슷한 것 하나를 기계적, 무의식적으로 풀어제끼는 "문제풀이기계"와 비슷합니다. 그들에게 도중에 물어보십시오. "너 지금 무슨 문제 풀고있는거니?" 열심히 연습장에 뭔가 풀어나가고는 있지만 그들은 자신이 뭘 풀고있는지도 잘 인식하지 못하는 경우가 많습니다. 머리가 푸는 게 아니고 손이 푸는 것이죠.
두번째가 제대로 훈련되지 못한 사람은 일일이 구현을 해보고 실험을 해봐야만 알고리즘간의 비교를 할 수 있습니다. 특히 자신이 가진 카탈로그를 벗어난 알고리즘을 만나면 이 문제가 생깁니다. 이건 상당한 댓가를 치루게 합니다.
세번째가 제대로 훈련되지 못한 사람은, 문제를 보면 "아, 이건 이렇게 이렇게 해결하면 됩니다"라는 말은 곧잘 할 수 있지만 막상 컴퓨터앞에 앉혀 놓으면 아무 것도 하지 못합니다. 심지어 자신이 생각해낸 그 구체적 알고리즘을 남에게 설명해 줄 수 있기까지 하지만, 그들은 그걸 "컴퓨터에게" 설명해 주는 데에는 실패합니다. 뭔가 생각해 낼 수 있다는 것과, 그걸 컴퓨터가 이해할 수 있게 설명할 수 있다는 것은 다른 차원의 능력을 필요로 합니다.
그리고 마지막으로, 자료구조/알고리즘 공부를 할 때에는 가능하면 실질적이고 구체적인 실세계의 문제를 함께 다루는 것이 큰 도움이 됩니다. 모든 학습에 있어 이는 똑같이 적용됩니다. 인류의 지성사를 봐도, 구상(concrete) 다음에 추상(abstract)가 오고, 인간 개체 하나의 성장을 봐도 그러합니다. be 동사 더하기 to 부정사가 예정으로 해석될 수 있다는 룰만 외우는 것보다, 그러한 다양한 예문을 실제 문맥 속에서 여러번 보는 것이 훨씬 나은 것은 자명합니다. 알고리즘/자료구조 공부를 할 때 여러 친구들과 함께 연습문제(특히 실세계의 대상들과 관련이 있는 것)를 풀어보기도 하고, ACM의 ICPC 등의 프로그래밍 경진 대회의 문제 중 해당 알고리즘/자료구조가 사용되는 문제를 -- 이게 가능하려면 "이 알고리즘이 쓰이는 문제는 이거다"라는 가이드를 해줄 사람이 있으면 좋겠죠 -- 같이 풀어보는 것도 아주 좋습니다.
우리는 알고리즘 카탈로그를 배운다. 이미 그러한 해법이 존재하고, 그것이 최고이며, 따라서 그것을 달달 외우고 이해해야 한다. 좀 똑똑한 친구들은 종종, "이야 이거 정말 기가막힌 해법이군!"하는 감탄을 외칠지도 모른다. 대부분의 나머지 학생들은 그 해법을 이해하려고 머리를 쥐어짜고 한참을 씨름한 후에야 어렴풋이 왜 이 해법이 그 문제를 해결하는지 납득하게 된다. 그리고는 그 "증명"은 책 속에 덮어두고 까맣게 사라져버린다. 앞으로는 그냥 "사용"하면 되는 것이다. 더 많은 대다수의 학생은 이 과정이 무의미하다는 것을 알기 때문에 왜 이 해법이 이 문제를 문제없이 해결하는지의 증명은 간단히 건너뛰기를 한다.
이런 학생들이 주어진 알고리즘을 사용하는 소위 "객관식" 혹은 "문제출제자"가 존재하는 시험장 상황 하에서는 뛰어난 성적을 보일것임은 자명하다. 하지만 스스로가 문제와 해답을 모두 만들어내야 하는 상황이라면, 알고리즘을 완전히 새로 고안해내야 하는, 또는 기존 알고리즘을 변형해야 하는 대다수의 상황이라면 어떨까?
교육은 물고기를 잡는 방법을 가르쳐주어야 한다. 어떤 알고리즘을 배운다면, 그 알고리즘을 고안해 낸 사람이 어떤 사고의 과정을 거쳐서 그 해법에 도달했는지를 구경할 수 있어야 하고, 학생은 각자 스스로만의 해법을 차근 차근 "구성"(construct)할 수 있어야 한다(이를 교육철학에서 구성주의라고 하는데, 레고의 아버지이고 마빈 민스키와 함께 MIT 미디어랩의 선구자인 세이머 페퍼트 박사가 주창했다). 전문가가 하는 것을 배우지 말고, 그들이 어떻게 전문가가 되었는가를 배우고 흉내내라.
결국은 소크라테스적인 대화법이다. 해답를 가르쳐 주지 않으면서도, 초등학교 학생이 자신이 가진 지식만으로 스스로 퀵소트를 유도해 낼 수 있도록 옆에서 도와줄 수 있는가? 이것이 우리 스스로와 교사들에게 물어야 할 질문이다.
왜 우리는 학교에서 "프로그래밍을 하는 과정"이나 "디자인 과정"을 배운 적이 없을까? 왜 해답에 이르는 과정을 가르쳐주는 사람이 없나? 우리가 보는 것은 모조리 종적 상태의 결과물로서의 프로그램 뿐이다. 교수가 어떤 알고리즘 문제의 해답을 가르칠 때, "교수님, 교수님께서는 어떤 사고의 과정을 거쳐, 그리고 어떤 디자인 과정과 프로그래밍 과정을 거쳐서 그 프로그램을 만드셨습니까?"라고 물어보자. 만약 여기에 어떤 체계적인 답변도 할 수 없는 사람이라면, 그 사람은 자신의 사고에 대해 사고해 본 적이 없거나, 문제 해결에 어떤 효율적 체계를 갖추지 못한 사람이며, 따라서 아직 남을 가르칠 준비가 되어있지 않은 사람이다. --김창준
알고리즘을 공부하면 큰 줄기들을 알아야 합니다. 개별 테크닉들도 중요하지만 "패러다임"이라고 할만한 것들을 알아야 합니다. 그래야 알고리즘을 상황에 맞게 마음대로 응용할 수 있습니다. 또, 자신만의 분류법을 만들어야 합니다. (see also HowToReadIt Build Your Own Taxonomy) 구체적인 문제들을 케이스 바이 케이스로 여럿 접하는 동안 그냥 지나쳐 버리면 개별자는 영원히 개별자로 남을 뿐입니다. 비슷한 문제들을 서로 묶어서 일반화를 해야 합니다. (see also DoItAgainToLearn)
이와 관련해서 Anany Levitin의 ''A NEW ROAD MAP OF ALGORITHM DESIGN TECHNIQUES''(DDJ, 2000 Apr)를 권합니다. 그는 알고리즘 디자인 테크닉을 다음 네가지로 크게 나눕니다:
자료구조와 알고리즘은 프로그램을 만드는 데 있어서 중요하다고 생각합니다. 남이 만든 자료구조와 알고리즘을 이용하는데 그치지 말고 스스로 생각하여 만드는 경지에 오르면 좋겠습니다. -[강희경]
DeleteMe) 1학기끝나가는 마당에 후회 막급임. 모든 것들을 한번씩 구현해보고 갔어야하는데... 새로 들으시는 분들 꼭 한번씩 구현해보세요. 지금 생각해보니 정작 중요한 것을 등한시한 느낌입니다 - [eternalbleu]
- VendingMachine/재니 . . . . 48 matches
= 프로그램 설계 =
* 먼저 자판기(VendingMachine)이 필요할 것이고,
* 자판기는 사용자 인터페이스를 구현하는데 사용하고, 사람이 주문할 음료(Drink)를 따로 분류하자..
이 두가지 조건에 만족할 때에는 주문한 상품을 내줄 수 있어야 하겠고, 이 때 상품의 수량을 갱신해야겠지!^^[[BR]]
if (selection < 1 || selection > num)
cout << "REMAINDERS : " << remainders << endl;
if (coin == 1) coin = 10;
else if (coin == 2) coin = 50;
else if (coin == 3) coin = 100;
else if (coin == 4) coin = 500;
else if (coin == 5) coin = 1000;
else coin = 0;
class VendingMachine{
<< detail[i].quantity << endl;
if (remainders >= detail[selection - 1].price && detail[selection - 1].quantity != 0){
else if (detail[selection - 1].price > remainders)
else if (detail[selection - 1].quantity == 0)
VendingMachine vending_machine;
vending_machine.showMenu();
if (selection == 1)
- 새싹교실/2011/무전취식/레벨10 . . . . 47 matches
김준석 : 5월이 막바지를 지냈어. 6월초에 프로젝트 발표가 4개 있어. 그래서 프로젝트에 치여삽니다. 하지만 잠도 잘자고 술도 잘먹어요. 그리고 구남영을 면회갔습니다. 소요산 근처 연천에 근무를 하는데 내가 옛날에 근무했던 지역에서 30분 정도 걸린지역이었다. 그래서 8시간이 걸렸음. 그래서 어제 힘들어죽는줄 알았다. 요즘 또 춤은 잘추고 있어요. 댄스스포츠 정말 잘 듣고있어요. 너희도 하고 싶으면 오세요. 프로젝트 한 기억밖에 없다.
이소라 : 수요일에요. 누가 숙제를 도와달라고 해서 원래 그날 창설모이는 날이었는데 1시에 끝나서 도와주고 창설 할려고했는데 다해서 축제도 보고 싶어서 오고있었는데 "끝났음"이라고 문자가왔음. 그리고 전날에 화요일에 6시에 오기로 했는데 새싹때문에 늦어서 문자 보냈더니 만난지 30분만에 "끝났음"이라고 문자옴. 이진영 : ㅋㅋㅋㅋ 그리고 못보고 목요일날 갔는데 퍼펙트 성공 이진영 : 이씨~~ ㅋㅋ 그리고 목요일에 축제라서 친구가옴. 6시에 왔는데 낮에 있던거 다 닫고 주점만 있어서 두바퀴오르락 내리락하다가 저기 블랙바니가서 또 꿀꿀꿀 퍼묵퍼묵 하는데 남자친구가 와서 학교 구경 시켜줄려고 올라왔는데 볼게 없어서 걔 아는 형이 저기 병원에 있다길래 만나서 노래방감. 그날 낮에 풍선 미끄럼틀가서 이진영: ㅋㅋㅋㅋ 애들이랑 다 탐. 근데 엄청 재밌게 탔는데 어떤애가 타다가 바지가 찢어짐 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ킨ㄹ이ㅓㅋㅋㅋㅋㅋ 그래서 진영이가 잘봤음. 그리고 금요일에 티셔츠 받으려했는데 줄이 너무길어서 그 전날 다른애한테 뺏은 L사이즈 내가 입음. 완전 하의실종임 ㅋㅋ 그리고 김장훈왔었는데 완전 좋았음.
이진영 : 화요일에 새싹 끝나고 선전부 회의를 가서 처음으로 자보를 썻음. 암튼 재밌었음. 그러고 화요일 수요일에 창설을 하느라 집에 계속 새벽 1시에 들어감. 근데 결과는 첫번째 할때 로봇 팔이 떨어져서 Fail 그리고 두번째는 퍼펙트를 했음. 그래서 돌만 없었으면 완전 퍼펙성공인데 짜증났었음. 그리고 화요일에 너무 배고팠는데 창설 4피에서 할때 홍병우 교수님에게 "교수님 배고파요"이랬더니 4피 사람들한테 다 쏨. 매우맛있었음. 애들이 절 찬양했음. 그리고 축제는 재밌었음. 아 그리고 목요일에 시청에 가서 거기 앞에서 군악대랑 사물놀이 연주하는 봤는데 되게 재밌었음.
서원태 : 수요일날 자다가 종하형한테 문자왔음 "경진대회 감독좀 맡아라" 그래서 갔는데 문제좀 봤는데 하나도 모르겠음. 그래서 인터넷 쓰는사람 계속 잡았는데 치완이네 조가 인터넷 쓰는건 몰랐는데 알아서 말해서 강퇴시킴. 그리고 끝나서 같이 밥먹고 집에감. 목요일에는 가족 저녘약속있어서 축제 구경못하고 집에 감. 금요일날 축제 구경할려고했는데 문예사 프로젝트 발표 준비때문에 구경 못함. 내년 축제는... 아 군대가있지. 군대갔다오면 3년정도 뒤에 볼수 있을듯.
정진경 : 작년 기출보고 갔는데 4문제 나왔는데 너무 어려움 . 삽질하다가 2문제 풀었는데 목요일날 결과 나왔는데 2등해서 넘 좋았음. 경진대회 전에 동양철학의 이해 수업이 있었는데 거기서 잠깐 졸았는데 귓속에 주문이 들어왔다 "양명학 주장학 " 그래서 깨고 보니까 머리가 아팠다. 10만원 현금으로 받고 부상있는데 기계식 키보드랑 무선 마우스. 1등부터 선택하는거임
김태진 : 저번주말에 부산에 내려갔습니다. 목요일 저녘에 갔기때문에 금요일 창설은 다해놓고 구경하러갔습니다. 그리고 금요일 저녘에 들은 소식은 Fail Fail~~~ ㅠㅠ. 축제도 못본건 아쉽긴 하지만 그래도 집에가서 이런저런거 먹고 잘 쉬다온건 행복했음. 프로그래밍 경진대회 나갔는데 한종이랑 송치완이랑 같이 나갔음. 분명 MSDN까지만 쓰기로 되있었는데 송모군이 MSDN하면서 www.google.co.kr를 통해 검색을 하다가. 야. 이거 문제 똑같애 하다가 들켜서 강퇴당함.
강원석 : 집에 강아지가 생겼음 종류는 말티즈 "콜" 네달됬는데 짱임. 남자임. 중성화 아직 안함. 해야한다던. 똥오줌 가려서 완전 신기함. 애가 첫날 왔는데 신문지 위에서 비비빅하더니 오줌거기서 싸고 똥도 거기서 사고 완전 신기함. 거실에서 따로 재움. 그럼 방문열고 들어옴. 이번주 창설 1등했음. 완전 좋음. 축제때 애들이랑 술만먹음. 구경은 안했음.
* 주석을 이용한 프로그램 설계 방법
//if(pel[i]==pel[count-i-1])
if(pel[i]!=pel[count-i-1])
if(i<=count*0.5) ;
else printf("pel");
if (num[i]>max){
if (num[i]<min){
if (i==selectMin || i==selectMax) continue;
if (newnum[i]>max){
if (newnum[i]<min){
if (max-min>=4) printf("KIN\n");
else{
강원석 : 앞으로 지각 안하겠습니다. 그리고 요즘에 C수업을 안들어서. 오늘 처음보는게 많았습니다. 어.. 그리고 오늘 숙제 짯는데 옆에서 쪼아줘서 참 고마워요. ㅎㅎㅎㅎ 정진경씨께 쪼아줘서 감사하단 말씀을 드리고싶습니다.
- 조현태/놀이/지뢰파인더 . . . . 47 matches
일단 눈, 머리, 손으로 나눠서 제작한다.
눈은 전체화면에서 지뢰찾기 프로그램의 이미지를 추출하는 방식을 생각했으나 그냥 핸들을 구해오는 편한 방법으로 바꿔서 만들었다.
머리는 여러가지 알고리즘을 바탕으로 구상중이다.
데블스 캠프에서 배운 로보코드를 활용할 생각..^^ 뭔가 객체같은 느낌이 들어서 클래스로 만들어 주기로 했다.^^
클래스명이 로보 만들어놓은 객체의 이름을 레인져로 지어주었다.^^;;;
뭔가 비정상적인 프로그래머..ㅎㅎㅎㅎ 이상한 녀석!!^^;; - [조현태]
한 클래스에서 다른 클래스를 붕어빵 찍듯이 찍어내고, 또 그 클래스가 여러개로 찍혀나가게 했는데..
디버깅 작업이 난관에 부딫혔다. 끄응.. 수정해나가면서 일단 완성하고 봐야겠다. 만들고나면 전체적으로 대대적인 수정작업을
킁..ㅠ.ㅜ 재앙이다..;;ㅁ;; 앞으로는 이렇게 짜지 말자는거 이외에는 뭐라 할말이 없다. 오랫동안 손대지 않았던 터라, 알고리즘이 잘 생각이 나질 않는다. 그래도 내가 짜서 그런지 금방 알고리즘을 생각해내는데는 성공했지만... 많은 부분을 수정했으나, 더 많은 재앙들이 초롱초롱한 눈빛으로 나를 반기고 있다. 이쁜 아가씨면 반겨주겠지만 이런 버그덩어리라니.. 도데체 어느 부분에서 잘못된 메모리를 엑세스 하는건지..흑흑 어빠햐가 잘못해떵..ㅠ.ㅜ 제발 정상적으로 작동해줘..ㅠ.ㅜ API의 특징인지...내가 못해서인지.. 테스트가 콘솔창보다 용의하지가 않다. 수없이 조각조각 나있는 할당된 메모리의 파편을 일일이 추적하자니.. 트리나 링크드리스트 형식의 문제점이라고나 할까..;;ㅁ;; 도데체 어디서 잘못된겨~!!! !@#$%^&*()...... 그래도 실행하면 지뢰 한 2-3개.. 숫자 한 2-3개는 찾고 뻗으니위안은 된다.(참고로 아직 지뢰를 건드린적은 없다!!) 수정해야할 부분 태산.. 만들어야 할 부분 태산.. 휴가가 극도로 짦은걸 보면 방학중에도 만들어야 할지도... 뭐 나름대로 앞으로 프로그램을 어떻게 짜야 할 지에대해서 조금은 도움이 되겠지뭐..ㅠ.ㅜ 흑.. - [조현태]
계획 전면 수정. 알고리즘 및 소스 재작성 돌입. 과거 단순 "로봇을 이용해서 마호로매틱 쵸비츠..는 아니고 어쨋든 멋지게 만들어 보자!" 에서 "로봇만 이용하는건 넘흐 어려벙~ 다른걸 섞어봐야겠어~!" 로 변경. 사용하기가 편하고 검색속도가 빠른 기존의 방법과 정확도가 높은 로봇을 밀가루와 팥이만나 붕어빵이 되듯.. 잘 섞어보기로 결정했다. 새로 모든소스를 작성하고 기존 소스의 심각한 문제점이었던, 어설픈 분할과 최악의 테스트 조건(윈도우 지뢰찾기는 실행해서 어떤 맵이 나올지 모른다. 또한 테스트 시간이 길고 준비가 필요하다)을 극복하기 위해서 수정을 가했다. 좀더 체계화된 분할로 좀더 보기편하고 소스에 간지가 흐르도록 하였으며, 테스트 주도개발의 내용에서 눈꼽의 반만큼을 이용, 편리한 테스트 환경을 만들었다. (나름대로 진보환 환경과 소스!) 가슴은 아팠지만 재앙보다야 나을거라고 생각한다. 그리고 로봇..그 부분은 아직 경험이 없어서(데블스 캠프에 만들어 본게 다..)그런지 조금 빡세다. 뭐 그래도 한번 실패도 했으니, 더 쉽게 만들어 질 것이라고 생각하고 만들기로 결정했다. - 2005.08.13
드디어 로봇 완성. 저번보다 더 간지나는( 구조화가 잘된) 알고리즘 표현과, 훨씬 편한 테스트 환경으로 저번에 비하면(어디까지나 비해서다. 아직 어려운 점이 많아 고생을 많이 했으며, 새로운 자료구조가 본인이 만든 탓인지 뭔가 복잡하다.ㅎ) 순풍에 돛을 단듯 아주 순조롭게 진행되었다. 그래서 로봇을 완성. 손과 눈을 api로 바꿔주고 지뢰찾기를 향에 발싸~!... 실패... 만능은 아니라서 시작한 지점에 2가 떡하니 나와준다면.. 얘도 찍어야 한다. (물런 찍어야 하는 상황에서 사람보다야 높은 적중률을 보이도록 설계했으나.. 이런 최악의 상황은 사람이나 프로그램이나.. 오히려 사람이 낮다.) 두번째.. 오옷..1초만에 성공... 세계신기록이야~ ~_~ 후후후.. 아~ 이날아갈듯한 기분..ㅎ (혼자 행복에 겨워서 뒹굴었다.ㅎ) 세번째.. 알수없는 오류가 깊은산속 옹달샘에서 발생.......OTL.ㅎ 그래도 어쩄꺼나!!! 성공시켰다. 후후후.. 이제 남은 디버그따위..ㅎ 사뿐히 해결해주짓..(역시 테스트 환경이 좋으니 작업이 잘 진행된다. 꼭 염두해두자.ㅎ) 어쨋든 오류가 떠도 지금은 행복하다.ㅎ ~_~ 일해야 되서 지금은 못해도.. 시간나는데로 해서 완성시켜주마~ >ㅁ<;;; - 2005.08.14
고급... 생각외로 풀기 어려웠잖아~'ㅇ')////
|| 2005.08.12 || 소스 백지화 후 로봇을 제외한 부분(메인, 테스트 환경, 손, 눈, 기본 탐색 알고리즘, 새로운 자료구조)완성 ||
|| 2005.08.13 || 로봇 완성. 디버깅 작업 시작!! ||
|| 2005.08.15 || 나름대로 노브레인(응?)한 1.0버전 완성.ㅎ ||
- 주의 : .NET 에서 만들어버린고로 실행할때는 반드시 넷프레임워크가 최신버전으로 업데이트가 되어야.. 이참에 윈도우 업데이트 하세용~ㅎ
ㅋㅋ 우리 자바 공부해서 뭔가 프로그램 만들어 보지 않을래? 겨울방학 때 ㅋㅋㅋ --아영
- SeminarHowToProgramIt/Pipe/VendingMachineParser.py . . . . 46 matches
#VendingMachineParser.py
from VendingMachine import *
# //verifyCoin
# //verifyButton
class VendingMachine:
def verifyCoin(self, anAmount):
def verifyButton(self, aStatus):
v=VendingMachine()
class VendingCmd:
if item[0] != 'cmd':
class PutCmd(VendingCmd):
class PushCmd(VendingCmd):
class VerifyMoneyCmd(VendingCmd):
print self.vm.verifyCoin(self.amount)
class VerifyButtonCmd(VendingCmd):
print self.vm.verifyButton(self.status)
if not tok:
self.err('Unexpected end of file')
if tok:
if num not in (10,50,100,500,1000):
- MFC/DynamicLinkLibrary . . . . 44 matches
기존의 C/C++ 프로그래에서는 라이브러리를 LIB라는 확장자를 가진 형태로 제공하여 코드를 컴파일한후 링커가 프로그램에 필요한 부분을 라이브러리 파일에서 추출해서 만들어진 프로그램에 붙여넣는 방식으로 만들어졌다. 이런 구조가 윈도우 프로그램으로 오면서, 바뀌어야했는데..
종전의 방식처럼 정적으로 링크를 하게되면 윈도우 프로그램의 특성상 굉장히 메모리를 많이 차지하는 프로그램이 동시에 실행이 되면서 쓸데없이 동일한 코드영역이 중복적으로 메모리 공간안에 차지하게 되는 현상이 발생하였다. 여기서 착안하여 생겨난 것이 DLL이다. 이는 실제 프로그램의 수행부분을 한개로 두고서 여러개의 프로그램에서 그 부분을 공유하여 사용하는 것이다.
확장자가 반드시 DLL이어야 하는 것은 아니지만, DLL 이 아닌경우에는 프로그래머가 이를 로드하는 부분을 따로 만들어야 한다. .vbx .ocx같은 것은 특정한 종류의 컨트롤들을 포함하는 DLL 들이다.
Upload:dependency_walker_kernel32_dll.JPG
Library.DLL을 3개의 프로그램 A,B,C가 동시에 공유한다고 하면 각각의 프로그램이 실행될때마다 각 프로그램에서는 DLL파일의 함수로의 링크가 일어난다. 이런 과정은 윈도우 운영체제에 의해서 자동으로 이루어지고, 한개의 프로그램이라도 실행이 종료되지 않으면 윈도우는 DLL을 메모리에서 제거하지 않고 남겨준다.
프로그램과 DLL이 메모리 안으로 로드되자마자 사용되는 함수들에 대한 링크가 성립된다.
프로그램이 먼저실행되데 DLL은 프로그램의 요청이 발생한 시점에서 메모리에 로드된다. 그때가 되서야 프로그램은 DLL로부터 함수의 어드레스를 얻고 그것을 사용해서 함수를 호출한다.
프로그램에서 필요한 메모리의 양을 최대한 줄이는 것이 가능하다.
runtime dynmaic linking 의 중요한 점은, 런타임 상에서 해당 모듈을 교체할 수 있다는 점이다. winamp 의 나 KMP 등와 같은 플러그인을 제공해주는 프로그램의 경우 대부분 이러한 runtime-dynamic linking 방법을 이용한다.
DLL 에 있는 요소들은 export 된 것들만을 접근 할 수 있다. export 는 함수, 클래스, 글로벌 정적 변수, 리소스들이 가능하다.
독립적 실행은 불가능하지만 main함수의 변형된 형태를 포함한다. 이 곳에서는 dll이 사용되기 전에 초기화되는 내용들이 포함되게 된다. DLL초기 로드시 운영체제가 호출한다.
== 정적으로 링크된 MFC DLL ==
== 동적으로 링크된 MFC DLL ==
DLL 에서 동적으로 메모리를 생성하는 경우, 해당 DLL 을 이용하는 프로세스의 힙에 해당 메모리 공간이 잡히게 된다. DLL 이 하나만 올라간다고 메모리가 공유되진 않는다.
만일 프로세스-global 한 메모리를 쓰고 싶다면, 메모리 맵을 이용하거나 DLL 공유 영역을 선언하는 방법 등을 써야 한다.
- Robbery/조현태 . . . . 44 matches
주어진 예제와 그 이외의 몇몇 사항을 바탕으로 테스트를 하였다.
경우의 수가 여러가지 나오는 경우를 어떻게 처리할까 고민했는데.. 못찾은 걸로 할까? 아니면 답으로 간주해서 출력할까? 하다가, 이 경우는 못찾은 걸로 처리하였다. ( "Nothing known." 으로 출력된다. )
'명확한 경우' 에 속하지 않기때문에..^^
이전의 경우 도둑이 특정시간에 존재할 수 없는경우 "The robber has escaped." 를 출력했으나, 지금은 모든 시간의 움직임을 고려해서 존재하지 않으면 "The robber has escaped."를 출력하도록 수정하였다. (사실 소스상에선 그다지 바뀐건 없다..^^)
if (CAN_MOVE_POINT == g_cityMap[i][j][k])
if (0 > nowPoint.x || (int)g_cityMap[nowTime].size() <= nowPoint.x)
if (0 > nowPoint.y || (int)g_cityMap[nowTime][nowPoint.x].size() <= nowPoint.y)
if (DONT_MOVE_POINT == g_cityMap[nowTime][nowPoint.x][nowPoint.y])
if (nowTime == targetTime)
if (nowPoint.x != targetPoint.x || nowPoint.y != targetPoint.y)
if (nowTime < g_saveMessageTime[i])
if (-1 == suchTime)
if (abs(movingTimeX) + abs(movingTimeY) > targetTime - nowTime)
else
if (0 < movingTimeX)
else if (0 > movingTimeX)
if (0 < movingTimeY)
else if (0 > movingTimeY)
if (abs(movingTimeX) + abs(movingTimeY) < targetTime - nowTime)
if (g_maxPoints[i][k].x != g_maxPoints[j][k].x || g_maxPoints[i][k].y != g_maxPoints[j][k].y)
- Star/조현태 . . . . 43 matches
빠르게 할 방법이 전혀 생각 안나는건 아니지만.. 오늘은 바쁜 일이 있어서 ^^ 나가봐야하는 관계로..
....... 일이있다는 핑계로 귀차니즘을 무마하는....켁;; (생각하기 귀차너~)
if (x == target.x && y == target.y && z < target.z)
if (x == target.x && y < target.y)
if (x < target.x)
if (12 == number)
if (FALSE == isCanPut)
else if (minimumNumber > sum)
if (isCanPut && minimumNumber < sum)
if (calculatePoint[bigNumber[number]][i] == lines[number][j])
if (bigNumber[number] <= points[lines[number][i]])
if (calculatePoint[j][k] == lines[number][i])
if (FALSE == isInSame)
if (isCanPut)
for (map<SavePoint, int>::iterator i = points.begin(); i != points.end(); ++i)
const int END_POINT_Y[4] = {6, 6, 7, 8};
if (0 == calculateNumber)
else if (1 == calculateNumber)
else if (2 == calculateNumber)
if (0 == calculateNumber)
- 새싹배움터05 . . . . 43 matches
ZeroPagers 로써 회원의식을 강화하고 프로젝트, 세미나 그리고 다른 ZeroPage활동에 쉽게 적응할 수 있는 적응력을 키우는 자리.
신입생은 선배로부터, 선배는 신입생으로부터 배우는 자리.
우리들이 진행자들을 부족한 부분을 질문등 부드러운 방법의 첨가와 보충으로 도와준다면,
여기 있는 사항들은 제가 초안으로 짜본것입니다. 이건 아니다 싶으시다면 바꿔주세요~ ^ ^
* 소규모의 그룹으로 진행되는 [작은새싹배움터05]는 기본적으로 담임의 재량에 맡기되 담임끼리 언제나 충분한 상의를 통하여 진행해 나간다.
|| 6_5/23 || 자료구조(DataStructure) || 자료구조 || 주로 1학년을 대상으로 함. 2학년이 들어도 좋을 듯. 프리젠테이션을 할 예정이니 노트북 준비바람. [[BR]] Upload:DataStructure.7z ||
* 이번에 세미나 및 프로젝트를 할때는 과거에 비슷한 주제로 했던 문서들을 적극 활용하였으면 좋겠습니다. 지금까지 보통 세미나,스터디를 하면 뭐든 새로 만들었는데 그것보다 과거에 했던 것중에서 좋은것들을 잘 모아 편집하고 추가로 필요한 내용들을 넣는것입니다. 그렇게 하여 한가지 주제에 대한 완성도 높고 양질의 문서들을 만들어 나가서, 세미나, 프로젝트가 그 순간에만 활용되고 끝나기 보다는 과거의 것을 정제 하고 과거 했던 비슷한것들을 할 시간에 더 양질의 내용을 채워 나가서 계속 활용하였으면 합니다. -[상협]
* 저도 동감합니다. 세미나 했던 자료는 자료실이나 위키 업로드를 통해 계속 축척해서 제로페이지의 자산으로 남겼으면 합니다. --재동
* 그리고 지금까지 프로젝트 진행 프로세스를 잘 살펴 보아서 어떤식의 진행이 파국(?)으로 치달았는지 분석해보면서 제로페이지식의 제대로된 스터디 프로세스, 프로젝트 프로세스를 만들어 나가보았으면 합니다. -[상협]
어떤식으로 진행할지 이야기 해봅시다.
우선 처음 세미나는 신입생 대상으로 위키 세미나가 다시 이루어져야 할 것 같습니다. 예전 위키 세미나에 신입생이 많이 참여하지 못했다고 들었습니다. 전에 위키 세미나 했던 사람이나 아니면 새로운 사람을 정해서 했으면 합니다. 그리고 첫 세미나는 다음주 월요일부터 시작하는 건가요? 그렇다면 급한 다음주 월요일 세미나 강사를 정하는 게 중요할 듯 합니다. --재동
지금 따로 메뉴얼을 제작하고 있습니다. 세미나 없이 메뉴얼만 있으면 쉽게 사용가능할 정도로 만들 예정이고요, 이번 [위키설명회2005]에서 다룬 내용도 담을 예정입니다. 그리고 첫 세미나(C프로그래밍)는 제가 할 의향이 있고 준비 중입니다. -[강희경]
[데블스캠프]같은 행사에서 하루 정도는 신입생이 재학생을 대상으로 세미나를 해보는것도 좋을것 같다. 준비의 주체는 신입생 모두이고 주제는 어떤 것이 되든 상관없다. 신입생들은 준비하는 과정에서 이것저것 얻게 되는 부분이 무언가 한가지는 반드시 있을 것이다. - [임인택]
7피의 프로젝터는 재학생이 이용할수 없습니다. 교수님만 이용할수 있다고 합니다. 피치못할경우 빌릴수는 있긴 합니다. - [톱아보다]
재동이 다음으로 제가 한번 해볼까 하는데... 무엇을 하는게 좋을까요? --[상규]
음 어떤게 좋을까요?? 많아 보였는데 실제로 하려고 생각하면 몇가지 없기도 하네요. 가능한 주제를 먼저 골라보면... [Python], [ExtremeProgramming] 이 대표적인데... - [톱아보다]
저는 포인터에 대해서 하기로 정해졌습니다. 그 다음으로 리눅스를 인택이형이 해주시면 되겠네요^^ --[상규]
확실하게 리눅스로 정해진 건가? 희경이 말고 새내기들 생각은 어떤지 궁금하구만. - [임인택]
상규와 재동의 세미나 날짜가 서로 바뀌였습니다. --재동
세미나 관련 후기를 남기면 좋을 듯 합니다. "좋았습니다" 같은 상투적인 것 말고 그 세미나의 장점과 단점을 남기는 겁니다. 그럼으로써 다른 사람이 세미나할 때 장점을 많이 따올수 있게 말입니다. --재동
- 영호의해킹공부페이지 . . . . 43 matches
6. Computers can change (your) life for the better.
80년대 윤리 강령. 90년대에 새로운 것에 기반한 것이 나왔다지만 나는 80년대 것을 선호한다. 자유롭기 때문에.
a shell equal to its current UID - thus if the daemon is run as root, like
removed. This is called LIFO - or last in first out. An element can be added
contents of the buffer, by overfilling it and pushing data out - this then
This is just a simplified version of what actually happens during a buffer
overflow - there is more to it, but the basics are essential to understand if
Is this a buffer overflow bug or is this something else we are mistaking for
address we can land somewhere in the middle of the NOPs, and then just execute
else's. And so, my choice in shellcode - int 20h - program termination. :)
namely 0x0063FDE4. Hopefully you're beginning to see the idea here. If you
Ammendment to FK8 by Wyzewun - Released 27th December, 1999
improper use of an ifstream. If you insist on using iostream.h (cin and
ifstream) then use get() and getline() instead of the '>>' system.
the one specified in the zine. :) Right, just a small update, but a necessary
(If CX is equal to 0 jumps to 0134)
(Ends the program)
end start
[ Some more additions from Wyzewun: And there you have it. If you're
Also, try and see if you can get hold of the SAMS MS-DOS Bible - it's what
- Chapter I - Sample Code . . . . 42 matches
모든 .c 파일에서 인클루드되는 헤더파일이다. 이 파일의 내용은 타겟프로세서마다 다르게 적용시켜야한다.
=== Compiler-Independent Data Types ===
프로세서마다 각각 가지고 있는 특성이 다르기 때문에 우리가 포팅하려는 타겟 CPU에 맞춰 여러가지 글로벌 변수를 선언해줘야 한다. (글로벌 변수라기보다는 키워드 재정의라고 말하는게 더 맞겠다) [[BR]]
각각의 프로세서마다 int 형 데이터의 크기 char 형 데이터의 크기.. 등등이 다르기 때문에 다음과 같은 식으로 재정의를 해준다.
OS 를 작성하다보면 전역변수가 필요한 경우가 있다. 전역변수는 어떻게 선언하는가? extern 키워드를 사용하면 된다. 하지만 uCOS-II 에서는 extern 키워드마저 #define 해서 다른 매크로로 사용한다.
#ifdef OS_GLOBALS
#else
#endif
위처럼 다음과 같이 매크로 정의를 해 놓고 다음과 같은 소스를 적용시킨다고 해 보자
만약 다음과 같이 OS_GLOBALS라는 매크로를 미리 적용시키면 형 정의가 되지 않은 상태이므로 (위의 #ifdef~#else 에서 #else 절에 걸리게 된다) 다음과 같은 코드가 된다.
OS에서 공유자원이나 특정코드가 수행되는 도중에 다른 프로세스에 의해 interrupt 되는것을 방지하기 위해 크리티컬 섹션을 사용하게 된다. 이는 윈도우즈 프로그래밍에서 스레드관련 처리를 해 줄 때에도 나오는 용어이다. uCOS-II에서는 단순히 매크로함수를 이용해 크리티컬섹션에 들어오기와 나오기를 한다. 매크로함수가 하는 일은 단순히 인터럽트를 무효화, 유효화 시키는것 뿐이다.
#if OS_CRITICAL_METHOD == 1 // OS_CRITICAL_METHOD 는 어디선가 이미 정의되어있다. 아마 CPU에 따라 다르게 값이 정해져 있을것이다.
#deifne OS_EXIT_CRITICAL() asm STI
#endif
#if OS_CRITICAL_METHOD == 2
// PUSHF는 CPU레지스터를 하나씩 일일이 스택에 넣는 작업을 간편하게 하기 위하여 호출 하는 ASM명령으로 정해진 순서에
// 의해 모든 레지스터의 내용을 스택에 PUSH하는 명령임. 반대는 POPF로 PUSHF의 역순으로 스택에서 꺼낸 데이터로 각각의 // 레지스터를 변경 시킴. 항상 이 두 명령은 한쌍이 되어 사용 되어야 한다.
#deifne OS_EXIT_CRITICAL() asm STI
#endif
디스플레이는 문자기반으로 한다. x, y값을 이용해서 아스키문자와 특수문자를 출력할 수 있다. 1글자 출력에 사용되는 바이트수는 2이다. 1바이트는 글자이고, 나머지 1바이트는 포그라운드/백그라운드 컬러이다. (상위 4비트가 백그라운드이고 하위 4비트가 백그라운드 컬러이다)
- CompleteTreeLabeling/조현태 . . . . 42 matches
일단 만들기는 했지만.. 조건을 만족시키지 못한다.
나름대로 줄이긴 했지만.. 애초에 문제가 나빳던 거얏!!ㅠ.ㅜ
두개를 곱해서 21이하라는 조건인데.. 최악의 경우는 각각 3개의 뿌리를 가질때 깊이가 7이되면..
3280개의 노드가 생긴다. 고로 이걸 3280!해서 나오는 경우의 수를 생각하면 10^10000이 사뿐히 넘어간다는... 애초에 계산이 될리가 없잖..
일단 임시로 만든 소스를 올렸다. 현재 연산에서는 문제가 없으나 3*2를 넘어가면 연산속도가 눈에띄게 저하된다.
물런 나름대로 머리를 굴려서 계산양을 줄인건데.. 조속한 시일내에 해결책을 구상해서 수정하도록 하겠다.^^*
21*1이라도 빠른 속도로 계산하지만.. 깊이가 깊어지는 경우에 대해선 아직 약하다..ㅠ.ㅜ
이제는 5*2라도 풀 수 있다. 저번 펙토리얼식 알고리즘을 조합식 알고리즘으로 수정하여 많은 속도의 향상을 가져왔다. 하지만 모든 결과를 내기에는 충분하지 않은속도..
if (1==degree)
if (input_deep!=input_all_deep)
if (block_number==max_nodes-1&&!((temp_block->head!=NULL&&temp_block->head->number>temp_block->number)||temp_block->number>temp_block->maximum))
else
if (!((temp_block->head!=NULL&&temp_block->head->number>temp_block->number)||temp_block->number>temp_block->maximum))
if (1==degree)
if (input_deep!=deep)
if (temp_block->deep==deep)
else
if (i<number_of_one)
else
if (!((temp_block->head!=NULL&&temp_block->head->number > temp_block->number)||temp_block->number > temp_block->maximum))
- 데블스캠프2004/세미나주제 . . . . 42 matches
* 프로그래밍을 위한 기술들
* 프로그램 설계
* 3D 프로그래밍
* 컴퓨터 네트워크 (TCP/IP +네트워킹 프로그래밍)
혹은 확률 통계가 우리 삶과 얼마나 관련이 깊으며 컴퓨터가 확률 통계적 도구로 우리 삶에 얼마나 많은 도움이 될 수 있나
* 자료구조 SeeAlso HowToStudyDataStructureAndAlgorithms, DataStructure StackAndQueue 뒤의 두 페이지들의 용어와 내용이 어울리지 않네요. 아, 일반 용어를 프로젝트로 시작한 페이지의 마지막 모습이군요. )
* Linux (또는 UNIX) 기초. 간단한 커맨드들과 쉘 프로그래밍
* SeeAlso [프로그래밍잔치]와 해당 페이지의 계획 파트와 후기들
* 세미나 하기로 결정하신 강사들은 여기에 적어주세요.
|| 수 || 로 || 재동 ☆ 상규 || 1.5h || 무손실 압축 ||
|| 목 || [STL] || 영동 || 2h || [STL/string]이나 [STL/vector] 등의 1학년도 쓰기 편리한 자료구조 위주로 ||
- [STL]의 경우 사용법을 세미나하는것도 좋지만 GenericProgramming 의 개념과 왜 그러한 패러다임이 나왔는지, 그 배경에 대한 설명도 있으면 좋을 것 같습니다 - [임인택]
정도로 계획을 짜 놓았는데 전부다하기에는 캠프의 첫날이 다 필요합니다. 월요일에 저렇게 예약된게 많으니, 3시간 정도만 해서 Wiki탐험과 ZeroPage역사+OT 정도만 진행할수 있으면 좋겠어요. 흐흐 벌써 [1002]를 섭외(?)해 놓았고, 다른 분들도좀 섭외를 해서 적절한 요일에 만나면 될것 같습니다. :) --NeoCoin
* RevolutionOS 별로 재미없습니다. 다 아는 내용이고, 당시의 장미빛 미래와 지금이 많이 달라진 상황이라, 슬픈 느낌마져 들었습니다. 시청하는데 의의가 있었죠. :) 제 생각은 ZeroPage 역사를 가지고 스냅샷으로 몇장 정도면 어떨까 합니다. 즉석 역할극도 재미있겠네요. 그런데 [1002] 시험은 언제 끝나요? --NeoCoin
* 시험은 수요일날 완료. RevolutionOS는 '예' 로 든것이고. 실제로 04중에는 알 사람도 얼마 없지 않을까 해서. 적당히 컴퓨터쪽 역사의 과거와 미래에의 모습에 대해 보여줄만한 영화, 그리고 재미있는 녀석이면 환영. --[1002]
* 예로서는 좋은데, 직접 보기에는 너무 단조롭더라. 설명 자체도 그리 친절하지 않고, 암튼 그런 좋은 영화 같은거 없나? --NeoCoin
* 정 다 필요하시다면 다 쓰셔도 됩니다. 하지만 저희 둘의 생각으로는 위 주제로 첫날 하루를 모두 하는 건 불필요한 것 같습니다. 이번 데블스 캠프의 대상은 아직 ZP 정회원이 되지 않은 이들입니다. 솔직히 (바라지는 않지만) 이들 중 많은 이들이 나갈텐데 그들을 상대로 ZP 역사나 OT에 많은 시간을 할애하는 건 소용이 없다고 봅니다. 그리고 자칫 시작 첫날부터 따분하게 되기 쉬워보입니다. --재동, 상규
* 지금 Accelerated C++을 보고 있는데 STL에 대해 흥미가 생기네요... 그래서 이거 세미나 계획하고 있습니다. 세미나 방향은 char배열을 대신해서 쓸 수 있는 string이나, 배열 대신 쓸 수 있는 vector식으로 기존의 자료구조보다 편히 쓸 수 있는 자료구조를 설명하려 합니다.-영동
- 영웅은 스스로 만들어지는것이 아니라 시대가 만드는것입니다. 시대의 요구가 있다면야 누군가는 반드시 나타나지 않을까요? -- 장창재
영웅인가요? :) 제가 기억하는 영웅들은 ZeroPage(페이지 하단 기재) 91,92,93 년도에 경진대회로 학교 PC실을 하나 새로 만든 분들 정도 아닐까요? --NeoCoin
- 새싹교실/2011/Pixar/4월 . . . . 42 matches
* 결석한 사람은 보충 받고 싶으면 따로 연락하세요~ 제가 먼저 연락하지는 않습니다 ㅋㅋ - [김수경]
* if else
if((score>=90) && (score<=100))
} else if((score>=80) && (score<90))
} else if((score>=70) && (score<80))
} else if((score>=60) && (score<70))
} else
if((100>=score) && (score>=90)){
else if((90>score) && (score>=80)){
else if((80>score) && (score>=70)){
else if((70>score) && (score>=0)){
else{grade='f';}
* ㅠㅠㅠ별찍기를 배웠습니다. 감자칩은 맛있었습니다. 하지만 별찍기는 어려웠습니다. ㅠㅠ 숙제도 있지만 해올 자신이 없습니다. 1, 2, 3 개 순서대로 찍는거, 5개 다찍는거는 그럭저럭 할만했는데 휴............ 너무어려웠어요. 승열이랑 둘이배워서 진짜 과외같이배웠어요. 사실 C를 빨리빨리 배우고싶어서 매일매일 새싹으로 1달만에 C를 자유자재로 다루고싶어요 누낰ㅋㅋㅋㅋㅋㅋ 진도따위버리고 엄청빨리배우고싶어요 사실 ㅎㅎㅎ 제가 머리가 좀 나빠서 많이 틀리고 늦게늦게 이해했는데 이해해주셔서 감사해요 누낰ㅋㅋㅋ 창설만아니면 더 오래해도 되니까 누나 오래하는거 누나만 안힘드시다면.........ㅋㅋㅋㅋㅋㅋㅋㅋ 빨리빨리배우고싶어요 ㅋㅋㅋ 승열이가 프링글스먹고싶대요 옆에서 저는 절대 아무말 안했습니다 B)
* 오늘은 목요일에 안해서 좀 많이했다! if제어문과 for 제어문에 대해서 배웠다. 별찍기도 배웠다 흑흑 너무어려워요 문제내시면 마추어보고 서로 고쳐보는등 실습위주로 재밌게 수업했다. 많은것을 배울수 있어서 좋았다..ㅋㅋㅋ.. 숙제도 있으니 복습하는겸 열심히 해야겠다. 누나 프링글스 먹구싶어요. ..
감히 창설따위로 새싹을 안오다니
* ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 말투로 추리해라 - [김수경]
1. 조건문, 반복문을 오늘로 마치려고 했는데… if else, for만 가르쳐줘서 한 주 더 해야겠어요~ while은 시간상 못 한 거지만 조건문 Switch case를 깜빡하다니ㅜㅜㅜㅜ
1. 별찍기를 처음엔 혼자 짜보게 했다가 짝으로 함께 짜보도록 했습니다. 코딩에 참여한 새내기들은 어떻게 생각할 지 모르겠는데 관찰하는 제가 보기엔 짝으로 구현하게 하니 혼자 짤 때보다 더 나은 점이 많아보였습니다. ''컴퓨터가 꺼지려고 해서 일단 저장해요ㅜㅜ''
* 와우 짝프로그래밍으로 새싹을 진행하다니 - [서지혜]
if else, swithch, while, for 등 몰라서 답답했던걸 알게되서 너무 좋았어요
- 오목/재니형준원 . . . . 42 matches
#if !defined(AFX_OMOKVIEW_H__95EACAA5_FAEA_4766_A6B3_6C6245050A8B__INCLUDED_)
#if _MSC_VER > 1000
#endif // _MSC_VER > 1000
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
#ifdef _DEBUG
#endif
#ifndef _DEBUG // debug version in OmokView.cpp
#endif
#endif // !defined(AFX_OMOKVIEW_H__95EACAA5_FAEA_4766_A6B3_6C6245050A8B__INCLUDED_)
#ifdef _DEBUG
#endif
END_MESSAGE_MAP()
// TODO: Modify the Window class or styles here by modifying
if(omokBoard[row][col]!=0)
if(omokBoard[row][col]%2==1)
else
void COmokView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
#ifdef _DEBUG
#endif //_DEBUG
if((row>=0 && row<19) && (col>=0 && col<19) && omokBoard[row][col] == 0)
- 1thPCinCAUCSE/null전략 . . . . 39 matches
null 팀의 경우 B 문제 하나를 풀었고 (1시간 5분 정도 소요. 패널티 없음), A 번 문제를 계속 시도하던중 시간초과.
["1002"]가 5분 지각을 했습니다.; 암튼, 35분에 시작을 했고, 일단 5분의 시간을 두고 ["neocoin"] 과 ["1002"] 는 문제들을 읽어나가기 시작했습니다. 한글 문서였기 때문에 3개의 문제를 훑는데에도 5분이면 충분하더군요. ["neocoin"] 은 B번을, ["1002"] 는 A번을 일단 읽고, C 번에 대해서는 같이 읽었습니다. 그리고 미리 문제출제자쪽에서 난이도를 C > A > B 임을 언급했습니다. 문제를 읽어나가면서도 일단 B의 경우가 바로 계산이 나올 것 같아서 B 를 먼저 해결하기로 선택했습니다. 그 다음에는 문제에 대한 이해도가 상대적으로 높았던 A번을 해결하기로 했습니다.
도구는 연습장과 인덱스 카드, assert 문을 이용한 테스트 케이스 등을 이용했습니다. 연습장과 인덱스 카드는 주로 개개인 수식과 중요 변수들을 적기 위해, 또는 그림을 그리기 위해 이용했고 (두 도구의 용도가 구분되어있진 않았음) 문제에 대해서 답이 나왔다하는 가정하에 (문제지에 Sample Input->Output 이 나와있었기에 가능했습니다.) Backward 로 문제가 해결된 상황을 가정하고, 그러기 위해 필요한 변수들을 찾아나가는 방법으로 진행했습니다. 프로그래밍 스타일은 Structured 스타일의 Stepwise Refinement & PBI & assert 를 이용한 TDD 를 사용했습니다.
한 20분정도 잘못진행했었는데, 첫번째는 ["1002"] 가 B 번문제를 제대로 이해하지 못했고 (앞부분만 읽고, 문제의 input-output 을 거꾸로 판단), 두번째는 input 이 100 일때의 output 예상치를 잘못계산한 상태에서 이를 근거로 Test Driven 을 시도해서 추후 발견뒤 테스트를 수정하는동안 시간을 낭비했습니다.
Sample 로 제공한 데이터들을 만족시키는 코드는 작성하였으나, 여전히 변수들이 다 뽑아져지지 않아서, 임의의 결과데이터 (100인 경우) 에 대해 예상되는 결과를 생각하고 코드를 작성한뒤, 코드와 결과들, 코드로부터 발견되는 변수들을 토대로 연습장에 기록을 했고, 그러던중 ["neocoin"] 이 일반화 공식을 찾아내었습니다.
A 번 진행중 아쉬웠던점은, 만일 이 문제를 바로 풀기전에 OO 패러다임으로 해결할 것인가 Structured 패러다임으로 해결할 것인가에 대해 먼저 생각하는 여유를 가졌더라면 문제 해결이 더 쉽지 않았을까 하는 점이였습니다.
문제에 대해 역시 B 번을 진행하던 스타일대로 Structured 로 진행했는데, 초반에 너무 코드위주로 각 변수들을 뽑아내려고 접근한 것이 문제가 되었던 것 같습니다. 여유를 두고 페이퍼 프로그래밍을 했어도. 바늘들에 대해서 OO 로 접근했으면 좀 더 쉽지 않았을까 생각.
지난번 IPSC 경험때는 맨땅에 해딩하는 느낌이였는데, 이번에는 비록 입상하지 못했지만, 각각의 과정들이 의식적으로 일어난 점에 대해서 개인적으로는 즐거웠고 명쾌했습니다. 급조되어 2주만에 만난 Pair 치고 손발이 잘 맞았습니다. (이건 방학 두달동안 ["ProjectPrometheus"] 때 하도 서로 싸워대어서. -_-;)
미리 예제문제로 제시된 5문제중 어려웠었던 뒤의 3문제들을 각자 풀어보고 훈련했었다면 실전에서도 더 여유있고 의식적인 작업을 할 수 있었으리라 생각하며. 그리고, 초반에 바로 TDD 로 나가는 것보다, 문제에 대한 여러 접근방법을 둔 뒤, 하나를 고르고 그에 대해 TDD 로 나가는 것이 더 좋았을 것이라고 생각. (TDD를 바로 문제 Approach 기법으로 적용하는것 보단, 해당 문제 접근방법에 대해 빨리 필요한 변수들을 발견해나가고, 명확하게 해주는데 더 효과가 크다는 생각이 들어서)
문제를 풀때 우스개로 이야기했던것이 '수학자의 접근이냐 공학자의 접근이냐'(페르마의 마지막정리 책에 나왔던 예. 즉, 연역/귀납). 이런문제인 경우 문제 풀기전 '어느쪽 접근이 더 유용할까' 궁리를.; 개인적으론 연역이 약해서 후자를..; --["1002"]
문제를 푸는 동안, 굉장히 여유롭다는 느낌이 들었습니다. 적당히 달려나간다고 할까요. 위에 언급된 2가지의 실수가 없었다면, A를 넘어 C번도 노려 봄직한 느낌이 듭니다. 이런 것들이 연습으로 체화되는 것이겠지요. 다음 ipsc를 즐겁게 기다려 봅니다.
시간 지연된 이유는, 성급한 방법론의 선택과 '''믿는 것을 가장 의심하라''' 라는 디버깅 원칙을 시간에 쫓겨서 생각을 하지 못한점으로 생각합니다.
마지막으로, 2주만에 만난 팀의 전략을 쓴다니, 약간 사기죠 ^^; --["neocoin"]
- VendingMachine/세연/재동 . . . . 39 matches
== 나름대로 고쳐본 소스 ==
class VendingMachine
VendingMachine();
VendingMachine::VendingMachine()
void VendingMachine::insertMoney()
if(isMoney(tempInsertMoney))
else
void VendingMachine::buyDrink()
if(isSelectableDrink(selectBuyDrink))
if(isBuyableDrink(selectBuyDrink))
else
void VendingMachine::takeBackMoney()
void VendingMachine::insertDrink()
if(isSelectableDrink(selectInsertDrink))
void VendingMachine::showMainMenu()
void VendingMachine::showDrinkMenu()
bool VendingMachine::isMoney(int arg)
if(arg == 10 || arg == 50 || arg == 100 || arg == 500 || arg == 1000)
else
bool VendingMachine::isBuyableDrink(int arg)
- 만년달력/강희경,Leonardong . . . . 39 matches
if ( !year || !month )
if ( year <= 0 || year >INT_MAX || month <=0 || month>12)
cout << "잘못 입력하셨습니다." << endl;
if (year%400 != 0)
//삽질(?) year%400 대신 year을 쓰면 에러...스택 오버플로우?
//400년주기로 달력이 같으므로 year%400로 해서 해결.
else
cout << "====================================================" << endl
<< "일\t월\t화\t수\t목\t금\t토" << endl;
if ( date > 6 ){ //토요일을 넘어가면
cout << endl; //다음줄로 가고
date=0; //요일을 일요일으로
cout << endl << "====================================================" << endl;
if ( month == 0 ){
else if ( year == 1 && month == 1)
이번달이 무슨 요일에서 시작하는지 알 수 있다. 예를 들어 1년 2월 같은 경우
1년 1월이 31일이고 월요일부터 시작하므로 (31 + 1) % 7 == 4 로
if ( year%4 == 0)
if ( year%400 == 0 )
if ( year%4000 == 0 )
- 보드카페 관리 프로그램/강석우 . . . . 39 matches
if (command == "exit")
if (command =="in")
else if(command =="play")
else if(command =="out")
else if(command =="buy")
else
cout << e.what() << endl;
if(tables[i] == bg.table)
if (vec[i].table == bg.table)
else
if (bg.person > 0 && bg.person < 5)
<<vec[i].minute << endl;
else
else if (i == 2 && tables[i] != bg.table)
if(vec[i].table == bg.table)
if (games[j] == bg.game)
if (vec[i-1].game == vec[i].game)
else
cout << vec[i].table << " " << bg.game << " " << "play" << endl;
else if (j == 2 && games[j] != bg.game)
- 지금그때2004/여섯색깔모자20040331 . . . . 39 matches
글로는 그때의 느낌을 남기기 어렵지만, 일단 기억을 회상할 수 있는 연결고리를 만든다는 의미에서 적어놓습니다. --[1002]
초록 : 새로운 아이디어.
- 검정 : 사회자의 비중이 크므로 중요하다 본다.
- 검정 : 시의성으로 볼때 중요한가. 사회자의 경우 그렇지 않아고 본다
하양 : 강의실 홍보 1회로 1학년 전체 대상 홍보 대비 5명
하양 : 총엠티 자봉단 참여로 몰려서 현재 사람들 참여 저조. 시간이 미루어지면 참여자가 늘어날 듯.
파랑 : 총 참여 인원으로 몇명을 원하는지에 대한 녹색의견 받음.
파랑 : 사람 수는 변하기 쉽다. 숫자 자체가 중요한건 아니라고 본다. 이를 좀 더 편하게 표현하려면.. 퍼센트로 표현해보자.
파랑 : 새내기를 50%로 보고 앞에서의 새내기를 20-30으로 봤을때, 비율로 보면 다음과 같겠다.
녹색 보충 : 위에서 99이하를 4명으로 말한것은 졸업선배의 수를 포함하며, 확실히 올 수 있는 사람 기준으로 4명이라 이야기했다. 실제로 오기 원하는 수치는 그 2배~3배이다.
녹색 & 검정 : 어디까지나 예상인원이므로, 그냥 이정도 선에서 이야기를 마쳐도 좋을것 같다. 홍보이후 재측정한뒤 상황을 보는것이 좋겠다.
하양 : 작년 기준으로 볼때 홍보 횟수대비 신청자는 linear(비례)하게 증가하였다.
하양 : 신청자 대비 실제로 오는 사람은 달랐다. 20명이 신청했다면 16명이 오는 식이다.
- 검정 & 하양 : 나의 경우 친구따라 왔다. 실제보다 더 늘어나는 경우도 있지 않은가?
- 검정 & 하양 : 나의 경우 신청하고 가지 않은 경우에 해당된다.
파랑 : 이에 대해서는 실제로 홍보 가능한 횟수를 생각하는것이 좋겠다.
앞으로의 홍보 기회에 대하여
목 7,8,9 : A - 세환,재선,휘동. B - 자겸,민수,수민 (이전에 했었던 반들 기준으로 바꿔서)
파랑 : 여기서 더 논의되어야 할 사항으로는?
파랑 : 가위바위보 승자로 하자. 혹은 지원자가 있다면 자동승리자가 된다.
- ACM_ICPC/2013년스터디 . . . . 38 matches
* 각자 문제를 풀어오고 설명, 설명들은 문제는 다음 시간까지 개인적으로 풀어올 것.(Dovelet 사용)
* graph, dfs - [http://211.228.163.31/30stair/danji/danji.php?pname=danji 단지 번호 붙이기], [http://211.228.163.31/30stair/orders/orders.php?pname=orders orders], [http://211.228.163.31/30stair/bugslife/bugslife.php?pname=bugslife 짝 짓기], [http://211.228.163.31/30stair/sprime/sprime.php?pname=sprime 슈퍼 소수], [http://211.228.163.31/30stair/snail_trails/snail_trails.php?pname=snail_trails 달팽이]
* 개강 이후에는 매주 수요일 6시에 스터디 시작하기로 결정, 격주로 토요일에도 만나기로 함.
* C번은 예상대로 쉽게 푸는 방법이 있었음
if abs(x) > abs(y):
if x > 0:
else:
else:
if y > 0:
else:
* Shortest Path : DAG(directed acyclic graphs)로 바꾼 후 Source에서부터 dist(v) = min{dist(v) + l(u,v)}사용
* Longest increasing subsequence : DAG로 바꾼다.(increasing하는 곳에만 edge생성됨) 이후 가장 많이 방문하도록 L(j) = 1+ max{L(i) : (i,j)}수행
* 최대 path의 길이를 구한 후에 뒤로 돌아가면서 숫자가 줄어드는 녀석들을 스택에 담으면 path도 구할 수 있다.
* 풀이 - 삼차원 테이블을 사용한 DP문제, d(bar,unit,width)는 bar번째의 bar를 사용하면서, unit의 위치에 그 bar의 폭이 width일 때의 경우이다. 따라서 가능한 모든 바코드의 수를 구하는 것은 d(bar,unit,0 ~ width)를 전부 더해주면 된다.
- 설명하면 1110110 이라는 것이 있을 때, 1110110이 오기 전에는 110으로 시작하는 모든 바코드가 있을 것이고, 그 이전에는 10으로 시작하는 모든 바코드가 있을 것이다. 그리고 1110110이라는 바코드가 오기 전에는 111000으로 시작하는 모든 바코드가 있을 것이고, 그 이전에는 11100으로 시작하는 모든 바코드가 있을 것이다. dp테이블에 해당 경우에 대한 경우의 수를 모두 저장해놨기 때문에, 앞에서 부터 차례대로 이전에 올 바코드의 수를 더해나가면 index를 구할 수 있다.
* 풀면서 주의할 점 : dp테이블의 범위에 벗어나는 경우(예를 들어서 음수 번지)가 나올 수 있으므로 이에 대한 처리를 해줘야 한다. 비쥬얼 스튜디오에서 코드를 작성할 때, 테이블 범위에 벗어나도 정답이 나오는 경우가 생겨서 이런 예외를 발견하기 힘들었음..
* [http://www.algospot.com/judge/problem/read/WEEKLYCALENDAR Weekly Calendar]
* 제2회 대학생프로그래밍 대회 동아리 연합 [http://algospot.com/judge/problem/list/?source=제%202회%20전국%20대학생%20프로그래밍%20대회%20동아리%20연합%20대회 링크]
if Ax1 < Bx1
if Bx1 > Ax2 && By1 > Ay2
- DPSCChapter3 . . . . 38 matches
를 하지 않고 추상적으로 어떤 상품의 집합(여러 종류의 자동차들)에서 상품(자동차)을 만든다고 하자.
http://zeropage.org/~comein2/design_pattern/31page.gif
패턴은 실제로 아주 간단하다. 문제 상황은 많은 부분들을 포함한다. Abstract Factory 패턴이 적용될 수 있는 예제를 보도록
우선 첫째로, 우리는 컴포넌트의 하위 부분들로 부터 단계별로 상품(자동차)을 만들 필요가 있는 응용 프로그램을 만들어보자.
그것은 몸체, 엔진, 변속장치, 그리고 승객 칸막을 포함하는 자동차를 만드는 것이다. 둘째로, 응용 프로그램은 같은 상품의
(결국, 각각이 CarEngine을 Base Class로 해서 상속을 통해 Ford Engine,Toyota Engine등등으로 확장될 수 있다는 말이다.)
따라서, 우리는 다른 집합의 부분들을 선택하지 않고, 하나의 집합(Family)으로부터 각각의 자동차 부분들을 쉽게 얻을 수
(정리 : Abstract Factory Pattern은 Factory Pattern을 추상화시킨 것이다.Factory Pattern의 목적이 Base Class로부터 상속
http://zeropage.org/~comein2/design_pattern/32page.gif
Vechile과 CarPart는 Object 클래스의 서브 클래스이다. 물론, 이 클래스 구조는 많은 단계에서 전체적으로 단순화된다.
그러므로 우리가 여기서 보여주는 것 보다 현실 세계는 좀더 높은 추상을 가지고 있을 것이다. 하지만, 우리의 패턴 묘사를
함수를 재 정의한다. 그래서 우리는 Object를 상속한 새로운 하위 구조를 추가한다.
http://zeropage.org/~comein2/design_pattern/33page.gif
자동차 부분(part) 생성 메쏘드를 구현하기 위해서, 우리는 추상 팩토리 클래스로 시작한다.
전체적으로, 우리의 팩토리들은 아래와 같이 보인다.
http://zeropage.org/~comein2/design_pattern/34page.gif
Abstract Factory로, 부분들을(part) 결합시키는 것은 팩토리의 클라이언트가 하는 일이다. 팩토리는 부분들의(part) 하나의 집합의 (family)로 부터 나온다는 것을 보장한다. 하지만, 팩토리는 단지 부분을(part) 반환하는 일만 할 뿐이다. 최종 상품은 팩토리가 조립하지 않는다. 그것은 클라이언트의 일이다. (우리는 Abstract Factory와 Builder 패턴 사이의 주요한 차이점을 나중에 볼 것이다.)
하지만, 두 경우에 자동차를 생성하기 위한 코드와 그것의 컴포넌트 하위 부분은 여전히 같다. 즉, 모든 CarPartFactory 클래스들은 동일한 메시지 프로토콜을(다형성)을 구현하기 때문에, 팩토리 클라이언트는 팩토리 타입이 무엇인지 상관하지 않고 호출을 할 수 있다. 그것은 단지 팩토리 프로토콜에 의해 제공되는 일반적인 메시지를 전송한다.
다형성의 힘 때문에, 클라이언트는 코드 구현을 한번만 하면된다. ABSTRACT FACTORY PATTERN을 사용하지 않을 경우, 자동차 생성 코드는 다음과 같이 보일 것이다.(아주 비효율적인 코드)
ifTrue: [FordCar new]
- OurMajorLangIsCAndCPlusPlus/XML/조현태 . . . . 38 matches
* 테스트의 편의를 위해서 파일입출력을 안썼습니다.^^ ... 이편이 더 불편하려나?? 파입입출력으로 바꿀까..말까..
* 가독성을 위해서.... 여러파일로 나누려다 말았습니다..T.T
* C와 C++의 주석 형식의 차이로 인해서... 주석이 많이 줄었습니다.^^
if (NULL == name)
else
if (NULL == contents)
else
if (NULL != head)
if ('<' == *readData)
if ('/' == *readData)
else if (NULL == myPoint)
const char* nameEndPoint = strchr(readData, '>');
char* textBuffur = (char*)malloc(sizeof(char) * (nameEndPoint - readData + 1));
strncpy(textBuffur, readData, nameEndPoint - readData);
textBuffur[nameEndPoint - readData] = 0;
if ('/' == myPoint->name[strlen(myPoint->name) - 1])
return nameEndPoint + 1;
readData = CreateTree(myPoint, nameEndPoint + 1);
else
else
- ZeroPageHistory . . . . 38 matches
||여름방학 ||Advanced C 및 Pascal 강좌, 공동 참여로 DataBase 등 다수의 Program 개발 ||
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
||여름방학 ||C++, HTML, Object Pascal 세미나 개최.(목적 불문 게시물: 비선점형/선점형 멀티태스킹, Win32의 프로세스와 스레드.)(긁어놓은 게시물: 타이머, 마우스) ||
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
||2학기 ||제로페이지 서버 조성 ( ZeroPageServer/set2001) ||
||1학기 ||회장 이창섭, 12기 회원 모집. ZeroWiki 시스템 도입. Devils 통합. Internet Problem Solving Contest 참여, 서강대 MentorOfArts 팀과 프로그래밍파티 개최 ||
||여름방학 ||데블스캠프, 청평 MT, 서버 세팅(RedHat -> Debian), 프로그래밍잔치 개최 ||
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
||겨울방학 ||ZeroPage 홈페이지 디자인 개편, 로고 및 마스코트 공모 ||
* 주요 스터디/프로젝트 항목
* 주요 스터디/프로젝트 항목
- Bigtable/DataModel . . . . 37 matches
1. 태블릿은 SSTABLE들의 집합으로 구성되어있으며 SSTABLE들의 리스트를 저장하고 있다.
1. SSTABLE은 block의 집합이며 block들의 주소와 오프셋으로 구성되어있다.
태블릿은 SSTABLE들의 집합으로 구성되어있으며 SSTABLE들의 리스트를 저장하고 있다.
1. 태블릿의 이름은 : 마지막 키 -> 카탈로그에 매핑필요
1. 마지막 키는 카탈로그에서 shorten id와 매핑되어있다.
1. 태블릿은 하나 이상의 row로 구성됨.
SSTABLE은 하나의 memtable과 block의 시작주소와 오프셋들로 이루어져있다.
1. 약 64KB마다 존재하는 row key를 블록의 인덱스로 한다.
1. 여러 태블릿이 하나의 SSTable을 참조해도 블럭들을 오프셋으로 참조하므로 같은 부분을 참조하는 일이 없다.
1. 각 태블릿의 majorCompaction시 태블릿별로 SSTable들이 나누어지므로 결국 SSTable은 하나의 태블릿에 피참조된다.
1. SSTABLE의 주소와 오프셋으로 블록들이 구분된다.
1. 명시적인 자료구조가 아니라 SSTable에서 row key들로 구분되어진 범위이다.
1. 블록 인덱스로 선택된 row key부터 다음 블록 인덱스로 선택된 row key가 나올 때 까지를 하나의 블록 단위로 한다.
1. '''데이터 블럭과''' '''인덱스 블럭으로''' 나누어짐
1. 할당된 메모리 크기가 다 차서 더이상 쓸 수 없을 때 SSTABLE로 저장한다.
== 로컬리티 그룹 ==
== 커밋로그 ==
1. 태블릿의 ID은 매핑테이블(카탈로그)에서 짧은 ID으로 대체됨.
1. 저장공간의 재사용 : 커밋로그는 원형 자료구조를 사용하여 자동으로 공간을 재사용하도록 한다.
1. 커밋로그의 가장 마지막 타임스탬프와 memtable의 가장 오래된 타임스탬프와 비교하여 memtable의 타임스탬프가 더 최신이라면 로그삭제가능
- STL/vector/CookBook . . . . 35 matches
= 벡터를 사용해보기 위한 기본 셋팅(앞으로 편의상 반말로 합니다.) =
* 몇 번 써본결과 vector를 가장 자주 쓰게 된다. vector만 배워 놓으면 list나 deque같은것은 똑같이 쓸수 있다. vector를 쓰기 위한 vector 헤더를 포함시켜줘야한다. STL을 쓸라면 #include <iostream.h> 이렇게 쓰면 귀찮다. 나중에 std::cout, std:vector 이런 삽질을 해줘야 한다. 이렇게 하기 싫으면 걍 쓰던대로 using namespace std 이거 써주자.
for(VIIT it = v.begin() ; it != v.end(); ++it) // 제대로 복사됐나 결과 보기
cout << *it << endl;
* typedef으로 시작하는 부분부터 보자. 일단 반복자라는 개념을 알아야 되는데, 사실은 나도 잘 모른다.--; 처음 배울땐 그냥 일종의 포인터라는 개념으로 보면 된다. vector<int>::iterator 하면 int형 vector에 저장되어 있는 값을 순회하기 위한 반복자이다. 비슷하게 vector<Object>>::iterator 하면 Object형 vector에 저장되어 있는 값을 순회하기 위한 반복자겠지 뭐--; 간단하게 줄여쓸라고 typedef해주는 것이다. 하기 싫으면 안해줘도 된다.--;
* 다음엔 vector<int> v~~ 이부분을 보자. vector<T> 에는 생성자가 여럿 있다. 그 중의 하나로, 배열을 복사하는 생성자를 써보자. 그냥 쓰는법만 보자. 단순히 배열 복사하는 거다. C++ 공부했다면 성안당 10장인가 11장에 복사 생성자라고 나올것이다. 그거다.--; 그냥 2번 원소에서 5번원소까지 복사하고 싶다. 하면 vector<int> v(&ar[2], &ar[6]) 이렇게 하면 되겠지?(어째 좀 거만해 보인다.--;) 마지막은 개구간이라는걸 명심하기 바란다.
* for 부분을 보면 앞에서 typedef 해준 VIIT 형으로 순회하고 있는것을 볼수 있다. vector<T>의 멤버에는 열라 많은 멤버함수가 있다. 그중에 begin() 은 맨 처음 위치를 가르키는 반복자를 리턴해준다. 당연히 end()는 맨 끝 위치를 가르키는 반복자를 리턴해주는 거라고 생각하겠지만 아니다.--; 정확하게는 '맨 끝위치를 가르키는 부분에서 한 칸 더간 반복자를 리턴'해주는 거다. 왜 그렇게 만들었는지는 나한테 묻지 말라. 아까 반복자는 포인터라고 생각하라 했다. 역시 그 포인터가 가르키는 값을 보려면 당연히 앞에 * 을 붙여야겠지.
= 벡터로 동적 배열 쓰기 =
* 예제로 숫자를 몇개 입력받나 갯수를 입력받은 만큼, 그만큼 루프를 돌려서 숫자를 입력받는 걸 보자.
cout << i+1 << "번ㅤㅉㅒㅤ" << endl;
* 자 어디가 틀렸을까? 공부 좀 했으면 누구나 알수 있는 삽질이지만, c++ 배운지 몇주밖에 안되었었던 나로서는 저게 왜 틀렸는지 알수가 없었다.
* 우리가 여태까지 배운 거만 써보면 이렇게 고칠수 있다. 그 유명-_-한 동적배열이다.--; 아.. delete [] 저거 보기 싫지 않은가? c와 c++의 고질적인 문제점이 바로 저거다. 메모리 관리를 프로그래머가 해줘야 한다는거.. 자바 같은건 지가 알아서 delete 해주지만.. c나 c++에서 delete 안해주면.. X되는 꼴을 볼수 있다. (본인이 한번 경험해 봤다.) 그래서 잘 디자인된 클래스는 클래스 내에서 알아서 없애줘야 한다. 바로 vector를 쓰면 저 짓을 안해줘도 된다. 또 고쳐보자.
* vector<int>... 부분을 보면 또 다른 생성자가 보인다. 인자로 숫자 하나를 받는다. 그 만큼 동적 할당 해준다는 뜻이다. delete? 그딴거 안해줘도 된다. 프로그램 끝나면서 int형 벡터 ar이 소멸되면서 알아서 없애준다.
* 또 하나 살펴볼게 있다. 아까 예제에서는 반복자로 벡터 내부를 순회했었다. 하지만 벡터는 임의접근을 허용한다. 배열처럼 ar[4] 이런식으로 쓸수 있단 말이다. 편한대로 써주자.
= 벡터로 2차원 동적 배열 쓰기 =
* vector로 간단히 해결이 가능하다. See also ["RandomWalk2/Vector로2차원동적배열만들기"]
* 여기서 잡담 하나. 객체를 parameter로 넘길때도 복사가 수행되지 않는 참조를 사용하자.
* 다음 예제는 pointer로 자료를 넣고, 지우는 예제이다.
<< c << endl;
for(VOIT it = v.begin() ; it != v.end() ; ++it)
- 데블스캠프2009/수요일후기 . . . . 35 matches
* '''서민관''' - kernal이나 어셈블러 언어 등 전까지 별로 접할 일이 없던 생소한 개념들이 많이 나와서 솔직히 쉽지는 않았습니다. 그래도 OS의 구조나 Ring system 같은 것들은 개념적으로라도 알아두면 괜찮을 것 같네요. 그리고 전날 혁준 선배가 설명해준 dll에 대해 잠깐 다시 복습할 수 있었던 것도 좋았고요. 아쉬웠던 점은 역시 수업이 너무 고수준이라서 대략적인 이해만 하고 넘어가야 했던 것입니다. 그리고 수업 이후에 개인적으로 VMware의 사용법을 가르쳐 주신 것은 정말 감사합니다. 선배가 제 구세주입니다.
* '''박준호''' - 처음으로 해킹과 관련된 내용을 보아서 정말 좋았습니다. 제가 해킹쪽에 관심이 있어서 언젠가 해보고 싶고 보고 싶었는데 오늘 처음으로 경험하게 되어서 좋았구요 저도 한번 공부해야겠다는 생각이 들었습니다.
* [송지원] - 사실 들으면서 이걸 컴구나 OS를 안들은 1,2학년 애들이 쉽게 받아들일까 생각했고 컴퓨터로 딴짓을 하며 놀고 있는 애들을 보며 살짝 걱정했는데 위의 1학년 애들 후기를 보니 그렇지도 않은거 같다=_=;; 다만 병윤이 수업 자체가 실습 없는 강의 수업이였는데 여기저기서 타자소리가 들리고 마우스클릭 소리가 들렸던건 아쉬웠다. 물론 위키페이지 고치느라 버벅댔던 나도 할말은 없다;;
* '''서민관''' - 계속 말이 많던 객체 지향 프로그래밍. 전날의 추상화 수업에서도 객체의 개념은 잠깐 나왔었고, 개인적으로도 객체에 대해서 조금 더 들을 기회가 있어서 그렇게까지 이해하기가 어렵지는 않았던 것 같습니다. 의사코드나 플로우 차트를 이용한 프로그래밍은 확실히 무작정 코드를 쓰고 보는 것 보다는 플로우 차트 -> 의사코드 -> 실제 코드 순으로 하는 것이 간단하면서도 정확한 프로그래밍을 할 수 있을 것 같아서 괜찮다고 생각합니다.
* '''박준호''' - 객체지향 프로그램 이라는 것에 대해 개념을 잡아놓은 시간 이였습니다. 진짜 제가 코드를 짜지는 않았지만 의사 코드라는 것을 이용하여 한번쯤 객체지향으로 코드를 짜본것도 좋은 경험이 되었습니다.
* [송지원] - 기대 이상의 세미나였다. 준석이가 데블스 전부터 자신의 세미나에 대해 엄청 자신없어했고 형진이가 Abstractionism을 하며 강의가 좀 확장되어 준석이가 가르칠 범위까지 해버리는 바람에 준석이가 할게없다고 걱정하던데, 오히려 형진이의 강의로 토스를 받아 붕어빵 예시로 스파이크를 날려준 느낌이다. 그래도 OOP란 개념 자체가 확 와닿기 쉽지 않은지라 마지막엔 내가 괜히 오지랖 부렸다..;;
* [김준석] - 강의 내내 속으로 피말렸다. 강의 도중에 이해하기 쉽게 설명할걸 몇몇 빼먹은게 자꾸 떠올라서 천천히라도 설명하려했으나 설명해놓고 보니 좀 엉뚱한데서 설명해버린 안타까운 현실. 현역 군인이라 OOP 강의에 대해서 그렇게 많은 준비는 못한것이 사실이라 강의할때 도움도 좀 받았고. 휴가 나오기전에 1~2시간씩 코딩없이 강의 할만한 내용을 찾다가 C++을 사용할 1,2학년에게 좀 중요한 내용을 잡게 됬는데.. 휴가 나오고 PPT를 작성하는데 3일동안 하루 3~4번은 고치고 내용추가를 고민하는등 긴장을 좀 많이 탓다. OOP를 이해시키고 학교생활중 설계의 중요성을 몰라 삽질을 반복했기 때문에 그 후에 코딩하기 전에 설계하는법에 좀더 중점을 둔 시간을 가지고 싶었다. 그냥 무작정 달려들어서 Run&Fix도 하기 쉽지 않은 중복많은 2~3백자리 코딩을 하기 보다는 전날 Abstractionism에서 형진이가 말했듯이 20줄 이내의 코딩, 잘 설계된 잘나뉜 코딩은 어딘가를 목표로 갈때 지도나 정보를 모아 쉽고 편한 길로 가는것과 같다. 돈도 절약되고. 안힘들고. 문제가 생겨도 모아온 정보로 해결할수 있는.. 문제를 풀어 결과를 도출해놓는것도 좋지만.. 주위에는 답을 똑같이 도출해놓을수 있는사람이 90%는 될것이다. 그렇다면 짧고 보기쉬운것이 좋겠지. 정말 아쉬운 점이라면 API나 로보코드때 이걸 설명하고 했더라면 들은 학우들에게 더 많은것을 이해할수 있었던 시간일것이라고 생각하는데.. 좀더 빨리 준비했었어야됬어.
* '''서민관''' - 수요일 수업에서 제일 마음에 들었던 부분입니다. 이클립스를 써 본 것도 좋았고, 무엇보다 JUnit test는 정말 마음에 드네요. 앞으로 갈수록 프로그램의 크기가 커질텐데 이클립스를 통한 svn 사용이나 JUnit test나 둘 다 팀 프로젝트용으로는 정말 좋은 기능이라고 생각합니다. 정말 뭐라고 더 칭찬을 해야 할 지 말이 안 나올 정도로 마음에 들었어요. 한 방에 제대로 프로그램을 못 짜는 저한테는 메인 함수 없이도 버그 수정이 가능하다는 건 정말 고마운 기능이죠.
* '''박준호''' - 처음으로 JAVA 에 대해 제대로 코딩도 해보고 접해본 시간 이였습니다. JUnit test 라는 것을 이용하여 팀플에서 얼마나 유용하게 쓰일지는.. 정말 무궁무진 할꺼 같습니다. 저도 빠른 시일내에 까먹지 않고 쓸 수 있게 되었으면 좋겠습니다.
* [송지원] - 사실 너무 아쉬웠다. JUnitTest를 위해 예로 제시한 계산기 클래스도 함수 하나 정도밖에 테스트 해볼 수 없는 이상한 설계의 클래스였다(너무 OOP 다음수업이라 캡슐화에만 신경을 썼던듯). 한 마디로 Java도, JUnit도 맛보기만 해준 꼴이 된것 같다. 하지만 '''JUnit은 확실히 강한 라이브러리다'''. 내가 몸소 느끼고 자발적으로 세미나한 이유도 그렇다. 내 세미나는 즈질이였지만 많은 1,2학년 학우들이 Java로 개발을 진행할 때 도움이 되었으면 한다.
- 일반적인사용패턴 . . . . 35 matches
위키위키를 처음 방문하시면 FrontPage에 들어오실겁니다. FrontPage는 말 그대로 대문이 되는 첫 페이지로, 현 이 위키공간 항해의 시작점이 됩니다. 처음 방문하실때에는 FrontPage부터 시작하셔서 각 페이지 링크를 클릭하셔서 항해하시면 됩니다.
그러다가 해당 페이지를 수정하고 싶으실때가 있으실 겁니다. 잘못된 정보를 바로잡고 싶을때, 내용을 덧붙이시고 싶을때, 토론중인 내용에 참여하시고 싶을때, 또는 토론중인 내용을 정리하여 하나의 문서로 만들고 싶을 때 등등.. 그럴때에는 거침없이 왼쪽 최하단의 'Edit Text'를 클릭하신뒤, 해당 페이지를 수정하시면 됩니다. 위키위키의 공간은 누구에게나 열려있으며, 누구나 수정할 수 있는 페이지입니다.
해당 주제에 대해 새로운 위키 페이지를 열어보세요. Edit Text 하신 뒤 [[ "열고싶은주제" ]] 식으로 입력하시면 새 페이지가 열 수 있도록 붉은색의 링크가 생깁니다. 해당 링크를 클릭하신 뒤, 새로 열린 페이지에 Create This Page를 클릭하시고 글을 입력하시면, 그 페이지는 그 다음부터 새로운 위키 페이지가 됩니다. 또 다른 방법으로는, 상단의 'Go' 에 새 페이지 이름을 적어주세요. 'Go' 는 기존에 열린 페이지 이름을 입력하면 바로 가게 되고요. 그렇지 않은 경우는 새 페이지가 열리게 된답니다.
어느정도 위키에 익숙하시다면 보통 최근 바뀐 글 또는 RecentChanges 를 링크로 걸어놓으십시오. 가장 최근에 수정된 페이지들을 바로 확인하실 수 있습니다.
위키의 특성상 한 페이지가 길어지는 경우가 많습니다. 스크롤을 위해 휠만 사용하는 것보다는 Page Up, Page Down을 적절하게 사용하시는 것이 편합니다. 한쪽손은 키보드, 한쪽손은 마우스.~
위키위키의 장점중 하나로 자유로운 링크에 있습니다. 기본적으로 auto link를 지원하므로 해당 위키 페이지 링크 뿐만 아니라 다른 웹 페이지의 링크도 자유롭습니다. (쓰다가 보면 가끔 위키 내에서 다른 페이지로 날라가기 허다해진다는. --;) 위키페이지 링크는 [[ "해당페이지이름" ]] 을 하시면 되고, 일반 웹 페이지는 URL을 그냥 입력해주시면 됩니다.
* 대문 - 가장 첫 페이지로 갑니다.
* 검색 - 제목으로 찾기와 내용중 단어로 찾기를 지원합니다.
* 제목색인 - 지금까지 열린 페이지들이 ABCD 순으로 배열됩니다.
* Go : 가고자 하는 페이지 이름을 알고 계시다면 Go에 직접 페이지이름을 입력하세요. 바로 해당 페이지 글로 Go~ 합니다. 기존에 없던 페이지이름이라면 새로운 페이지를 만듭니다.
* 페이지를 삭제하지 않은 경우 - 한쪽 창에서 상단 오른쪽의 파란아이와 짝짝이 안경(?)을 클릭하시면 해당 페이지의 히스토리와 페이지의 수정내용을 알 수 있습니다. 일단 파란아이를 눌러서 복구하고 싶은 버전을 View 하십시오. 그 다음, URL 입력창에서 action=recall 을 action=raw로 바꾼 후 해당 내용을 다시 복사하시면 됩니다. (이때는 Frame 안에서 작업하지마시고, 위키 페이지를 직접 전체화면으로 하여 해당 URL이 보이는 상태에서 작업하십시오.)
* 페이지를 삭제한 경우 - 짝짝이 안경(diff) 기능이 작동하지 않습니다. 파란아이를 이용하셔서 날린 내용을 얻은뒤 편집해주세요. (조금 번거롭습니다.)
기본적으로 이 위키(모인모인)에서는 페이지 이름 수정을 지원하지 않습니다. 페이지 이름 수정시에는 할 일이 많습니다. 다음과 같은 과정을 거치도록 하세요.
1. 새 이름을 사용할 새로운 페이지를 만든다.
* 기존 페이지로부터 글을 Copy & Paste 한다.
* 기존 페이지의 제목을 클릭, 기존 페이지를 링크 건 페이지들을 검색한다. 링크들을 수동으로 고쳐준다.
- TAOCP/InformationStructures . . . . 34 matches
F ← F + 1; Y ← X[F]; if F = R, then set F ← R ← 0''
''if R = M then R ← 1, otherwise R ← R + 1; X[R] ← Y.
if F = M then F ← 1, otherwise F ← F + 1; Y ← X[F].''
여태까지는 문제(더 넣을 공간이 없거나, 더 지울 것이 없는 경우)가 없다고 가정했다. 이 문제까지 고려한 과정이 다음과 같다.
(6a),(7a)에서는 초기 조건이 F = R = 1이다. 만약 F = 0이라면 오버플로우가 생기지 않기 때문이다.
오버플로우와 언더플로우가 일어났을 때 어떻게 해야 할까? 언더플로우는 하나의 의미있는 조건 - 에러 상황이 아니라 - 이다. 하지만 오버플로우는 더 들어갈 공간이 없는데 들어갈 정보가 남아있어서 에러이다. 따라서 오버플로우가 생기면 용량한계를 넘어서서 프로그램이 종료한다.
가능한 공간에 리스트가 두 개 있다면 (고정된)bottom을 같이 쓸 수 있다. (p.246 그림 참고) 이런 경우 두 리스트가 메모리를 모두 써버릴 때까지 오버플로우는 생기지 않는다. 이런 형태는 매우 자주 쓰인다.
LDA *,1 ;여기에 I를 더한 주소로 가서 그 값을 rA에 넣는다.''
n개의 스택이 있는 경우 i번째(1≤i≤n) 스택에 원소를 넣고 빼는 과정을 다음과 같이 적을 수 있다.
여기서 i번째 스택에서 오버플로우가 생기면 메모리 재배치(repack memory)를 할 수 있다. 몇가지 방법이 있는데 지금부터 자세히 알아보자.
''초기 조건 : p.247 (11) 참고
i번째 스택에서 오버플로우가 생겼을 때''
a) ''''위로 한칸씩 밀기(moving things up)'''
그리고 마지막으로 i보다 크고 k보다 크지 않은 모든 BASE와 TOP을 하나씩 위로 민다.
b) ''''아래로 한칸씩 밀기(moving things down)''' a)에 해당하는 k가 없을 경우
그리고 마지막으로 k보다 크고 i보다 크지 않은 모든 BASE와 TOP을 하나씩 아래로 민다.
c) '''진짜 오버플로우'''
(p.248에 (12)와 그림 4는 예제이다. 근데 어렵다. 3번을 해보았으나 제대로 나오질 않았다.)
초기값으로 효율적인 시작 위치를 주는 것이 가능하다. (p.248 (13), 평균적으로 BASE를 분포시킨다.)
- VonNeumannAirport . . . . 34 matches
* ["1002"] 의 개인적으로 생각되는 '미숙' 했다고 생각한 점을 든다면, 평소에 프로그래밍을 하는 리듬이 아니였다는 점. 이전 스타일이라면 일단 문제를 보고 문제를 나누면서 시나리오를 어느정도 만들어 놓은 뒤, 그걸 검증해나간다는 느낌으로 테스트코드를 작성했었는데, 이번의 경우 정말 Extreme 하게 작업한 것 같다. (중반에 CRC 라도 한번 하고 싶었는데, 형에게 물어보고 왠지 '아 내가 알던 방법이 틀린걸꺼야' 하며 그냥 Test 만 생각하게 되었다.) 작업하는 중간 뭔가 석연치 않은 느낌이 들었다면, 아마 대강 이런 느낌이였던 것 같다. 전반적 시각을 한번정도 중간에 정리를 할 필요가 있을건데, 그런 시간을 두지 못한것.
* 자료형 배경 지식의 미숙 (처음 STL미사용 접근, 중반부터 STL사용으로 자료형의 일관성문제)
* 중간에 창준이형이 "너희는 C++ 로 프로그래밍을 하면서 STL를 안사용하네?" 라고 했을때, 그냥 막연하게 Java 에서의 Collection Class 정도로만 STL을 생각하고, 사용을 잘 안했다. 그러다가 중반부로 들어서면서 Vector를 이용하게 되었는데, 처음 한두번 이용한 Vector 가 후반으로 가면서 전체의 디자인을 뒤집었다; (물론 거기에는 디미터 법칙을 지키지 않은 소스도 한몫했지만 -_-;) 그걸 떠나서라도 Vector를 써 나가면서 백터 비교 assert 문 등도 만들어 놓고 하는 식으로 점차 이용하다보니 상당히 편리했다. 그러다가 ["Refactoring"] Time 때 서로 다른 자료형 (앞에서 array 로 썼던 것들) 에 대해 vector 로 통일을 하다 보니 시간이 비교적 꽤 지연이 되었다.
* ["Refactoring"] Bad Smell 을 제대로 맡지 못함 - 간과하기 쉽지만 중요한 것중 하나로 naming이 있다. 주석을 다는 중간에 느낀점이 있다면, naming 에 대해서 소홀히 했다란 느낌이 들었다. 그리고 주석을 달아가면서 이미 구식이 되어버린 예전의 테스트들 (로직이 많이 바뀌면서 테스트들이 많이 깨져나갔다) 를 보면 디미터 법칙이라던가 일관된 자료형의 사용 (InformationHiding) 의 문제가 있었음을 느낀다.
아. 언제나 말만 많고 꿈보다 해몽만 좋다; 실천을 제대로 해야지;; --["1002"]
Requirement 수정 예상궁리 (일단은 떠오르는대로. Testability 를 고려하지 않은 상태로)
* load 를 발생시키는 예를 Passenger 뿐만 아니라 다른 여러가지를 둔다. ex) 여행객 가방, 컨테이너의 경우 traffic load 2, 4 를 발생시킨다.
-> 이 경우 PassengerSet 이 따로 빠져있지 않은 경우 고생하지 않을까. PassengerSet 이 빠져있다면, 가방, 컨테이너 부분들에 대해서 case 문이 복잡해질듯.
-> 이에 따라 Input 부분이 바뀌고, Input 부분이 클래스와 합쳐진 코드의 경우 더더욱 골치.
* PassengerSet Case가 여러개이고 Configuration 은 1개인 경우에 대해서. Configuration 1 : 여러 Case 에 대해 각각 출력하는 경우.
-> 역시 PassengerSet 이 따로 있어서 Configuration 과 같이 협동할 경우엔 쉽게 구현 가능. 그렇지 않은 경우 고생 예상.
* 지금 만든 모듈의 소스 수정없이 GUI 버전으로 재작성하기 - Input / Output 먼저 작성하는 사람들은 가장 고생.
* 출력 Output 의 Sorting 을 2가지로 둔다면?
-> Output 쪽이 따로 나누어진 경우 금방.
- 오목/곽세환,조재화 . . . . 34 matches
재미있다. ~~ 앞으로도 열심히
#if !defined(AFX_OHBOKVIEW_H__1263A16D_AC1C_11D7_8B87_00105A0D3B1A__INCLUDED_)
#if _MSC_VER > 1000
#endif // _MSC_VER > 1000
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
#ifdef _DEBUG
#endif
#ifndef _DEBUG // debug version in ohbokView.cpp
#endif
#endif // !defined(AFX_OHBOKVIEW_H__1263A16D_AC1C_11D7_8B87_00105A0D3B1A__INCLUDED_)
#ifdef _DEBUG
#endif
END_MESSAGE_MAP()
// TODO: Modify the Window class or styles here by modifying
if(array[i][j]==0)
if(array[i][j]==1)
//if()
void COhbokView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
#ifdef _DEBUG
#endif //_DEBUG
- ProgrammingContest . . . . 33 matches
프로그래밍 컨테스트. ACM의 ICPC가 유명.
나이나 학력 제한이 전혀 없습니다(Open경우). 팀은 세명까지 가능하고, 혼자서도 참가 가능합니다. 사용 가능 언어는 Java, C++, Pascal, Python 등 입니다. 제한 조건은 한 팀은 프로그램 개발을 위해서는 하나의 컴퓨터만 사용해야 한다는 것입니다. 이번 금요일(2002/5/10)에 한국 시간으로는 오후 9시부터 5시간 동안입니다. 온라인(이메일)으로 진행합니다. (see also .http://ipsc.ksp.sk/rules.php )
''ZeroPagers 중에 참가를 희망하는 사람들이 있는 걸로 아는데 왜 아무도 신청을 하지 않았죠? 하려면 빨리 하세요.''
''저기 학교 이름 못 바꾸나요? 지금 보니 Chung Ang 이라고 제대로 써진건 하나 던데여.. 나머지는 Chang Ang 또는 Choong Ang 이던데여.. 2~3개 팀이여.. --상협''
''Registeration 에서 Team Identifier String 받은거 입력하고 고치면 됨. --석천''
만약 자신이 K-In-A-Row를 한 시간 이상 걸려도 풀지 못했다면 왜 그랬을까 이유를 생각해 보고, 무엇을 바꾸어(보통 완전히 뒤집는 NoSmok:역발상 으로, 전혀 반대의 "極"을 시도) 다시 해보면 개선이 될지 생각해 보고, 다시 한번 "전혀 새로운 접근법"으로 풀어보세요. (see also DoItAgainToLearn) 여기서 새로운 접근법이란 단순히 "다른 알고리즘"을 의미하진 않습니다. 그냥 내키는 대로 프로그래밍을 했다면, 종이에 의사코드(pseudo-code)를 쓴 후에 프로그래밍을 해보고, 수작업 테스팅을 했다면 자동 테스팅을 해보고, TDD를 했다면 TDD 없이 해보시고(만약 하지 않았다면 TDD를 하면서 해보시고), 할 일을 계획하지 않았다면 할 일을 미리 써놓고 하나씩 빨간줄로 지워나가면서 프로그래밍 해보세요. 무엇을 배웠습니까? 당신이 이 작업을 30분 이내에 끝내려면 어떤 방법들을 취하고, 또 버려야 할까요?
만약 팀을 짠다면 두사람은 PairProgramming으로 코딩을 하고(이 때 Interactive Shell이 지원되는 인터프리터식 언어라면 엄청난 플러스가 될 것임), 나머지 하나는 다른 문제를 읽고 이해하고, (가능하면 단순한) 알고리즘을 생각하고 SpikeSolution을 종이 위에서 실험한 뒤에 현재 커플이 완료를 하면 그 중 한 명과 Pair Switch를 하고 기존에 코딩을 하던 친구 중 하나는 혼자 다른 문제를 읽고 실험을 하는 역할을 맡으면 효율적일 겁니다. 즉, 두 명의 코더와 한 명의 실험자로 이루어지되 지속적으로 짝 바꾸기를 하는 것이죠.
또, Easy Input Set은 직접 수작업으로 풀고 그걸 일종의 테스트 데이타로 이용해서, Difficult Input Set을 풀 프로그램을 TDD로 작성해 나가면 역시 유리할 것입니다. 이렇게 하면 Time Penalty는 거의 받을 일이 없겠죠.
특이한 점은 토너먼트 형식으로 제한된 시간내에 프로그래밍 대결을 벌인다는 거죠. 이긴자에게 상금을 줍니다만 미국외의 사람에겐 받을 자격이 없는 것 같기도 합니다. 스윙 애플릿을 다운로드 받아서 주어진 문제에 대해 자바, C++, C# 등으로 코딩할 수 있고 제대로 해결했는지 그 자리에서 바로 확인할 수 있습니다. -- 박지훈
http://ace.delos.com/usacogate 에서 트레이닝 받을 수 있지요. 중,고등학생 대상이라 그리 어렵지 않을겁니다. ["이덕준"]은 ProgrammingContest 준비 첫걸음으로 이 트레이닝을 추천합니다.
- ErdosNumbers/조현태 . . . . 32 matches
끙..;; 처음에 문제를 보고 C++로 자료구조를 만들어서 해보자는 생각으로 했지만..
이렇게 두개를 만들어서 나름대로는 연산이 쪼~~~끔 줄었다고 말하고 싶지만..
if (score!=0)
else if (-1!=score)
else
if (NULL!=names)
if (line_numbers!=NULL)
if (NULL!=line_numbers)
if (0==tuched)
if (0<=where && where<number_line)
if (NULL!=prv)
if (NULL!=next)
if (NULL!=prv)
if (NULL!=books)
if (NULL!=mans)
if (0==target_a[i])
if (target_a[i]!=target_b[i])
if (0==str_cmp(target_name,mans[i]->get_name()))
if (-1==temp_man_number)
else
- ProjectPrometheus/AT_RecommendationPrototype . . . . 32 matches
if self.bookViewList.has_key(aBook):
if self.lightReviewBookList.has_key(aBook):
if self.heavyReviewBookList.has_key(aBook):
self.bookList.append(aNewBook)
if book is not anEditBook:
if not aBook in self.bookList:
else:
self.bookList.append(aBook)
if self.bookViewList.has_key(aBook):
else:
if self.bookRelation.has_key(aBook):
else:
def getRecommendationBookList(self):
bookList.append((self.bookRelation[book], book))
returnList.append(bookdata[1])
def getRecommendationBookListLimitScore(self, aScore):
if self.bookRelation[book] >= aScore:
bookList.append((self.bookRelation[book], book))
returnList.append(bookdata[1])
class TestRecommendationSystem(unittest.TestCase):
- Yggdrasil/가속된씨플플/2장 . . . . 32 matches
* 블록: 중괄호로 감싸인 연속적인 구문들
* 루프불변식(loop invariant): while문이 그 조건식을 검사하는 매 경우에 대하여 참일 것이라고 가정하는 속성. 처음에 이걸 보고, 이런 개념도 있었냐고 생각했음. 루프불변식은 코드는 아니고 주석에 해당하며, while문이 진행되면서 while문의 제일 처음과 끝에서 루프의 내용이 의도한 대로 돌아간 건지를 정의한 문장이다.(말로 설명하기 애매한 듯...) 하여튼 이것을 쓰는 이유는 루프문을 제대로 설계하기 위해서. 아래의 코드는, 책에 있는 코드로, 불변식의 예이다.
//r을 0으로 세팅하면 불변식을 참으로 만든다
//한행을 출력하면 불변식이 거짓이 된다(바로 아랫줄)
std::cout<<std::endl;
//r을 증가시키면 불변식을 다시 참으로 만든다
* 단락평가(short-circuit): 그러니까 if(a==0||b==0){...}에서 왼쪽의 a==0이면 b==0인지는 보지도 않고 괄호 안을 실행한다는 뜻. 자바에선 ||기호와 |기호를 구분하던 것 같았다. 아마 전자는 전부 평가, 후자는 단락평가였던 것 같다.
* 반개범위: 루프의 범위를 설정할때, for(i=0;i<3;i++)처럼, 시작인 0은 포함하나 3은 포함하지 않고 2에서 끝난다. 이것을 [0,3)으로 표현하는데, 3은 루프 범위에 표현되지 않는 "끝을 벗어난 값"이다.
std::string::size_type//unsigned형의 멤버변수로, 담을 수 있는 최대 문자 갯수를 저장한다. 글자수에 알맞는 type으로 알아서 정의하는 듯.
* 프로그래밍을 처음 배울 때 "프로그래밍을 하려면 숫자를 셀 때 1부터가 아니라 0부터 세라"는 말을 들어왔을 때, 단지 컴퓨터의 숫자 체계가 그러니까 막연히 그렇게 하는 것인 줄 알았다.
* 비대칭적 범위(반개범위)를 사용하므로, [0,5)이면 루프가 5번 돈다는 것을 쉽게 알 수 있다. [1,5]면 5번 돈다는 것을 파악하기 힘들다.
* pad를 0으로 초기화하면 된다.
* pad를 가로, 세로에 각각 다른 변수로 분리시킨다. 혹은, rows, cols 초기화식을 변화시킨다.
using std::endl;
cout<<endl;
if(r==pad_rows+1&&c==pad_cols+1)
else
if(r==0||r==rows-1||c==0||c==cols-1)
else
cout<<endl;
- 8queen/문원명 . . . . 31 matches
int endFind = 0, count = 0;
if(firstFind == 1)
if (board[y3rd][x2nd] == board[y2nd][x2nd]) same = 1;
if (same == 0) //왼쪽위 대각선 검색
if(board[findY][findX] == 1) same = 1;
if (same == 0) //왼쪽아래 대각선 검색
if(board[findY][findX] == 1) same = 1;
if (same == 0) //오른쪽위 대각선 검색
if(board[findY][findX] == 1) same = 1;
if (same == 0) //오른쪽아래 대각선 검색
if(board[findY][findX] == 1) same = 1;
if (same == 1) //공격가능한 것이 있으면 초기화후 열바꾸기
if (setx == 8) setx = 0;
if (originX == setx ) impossible = 1; //모든열이 불가능하면 나오기
if (impossible == 1) break;
if (impossible == 1) break;
if (firstAnswer == 0) //처음 답과 같은지 조사
if( firstBoard[y7th][x7th] != board[y7th][x7th]) count++;
if (count == 0) endFind = 1; //종료조건
else count = 0;
- RSSAndAtomCompared . . . . 31 matches
The purpose of this page is to summarize, as clearly and simply as possible, the differences between the RSS 2.0 and Atom 1.0 syndication languages.
== Major/Qualitative Differences ==
=== Specifications ===
The RSS 2.0 specification is copyrighted by Harvard University and is frozen. No significant changes can be made and it is intended that future work be done under a different name; Atom is one example of such work.
The Atom 1.0 specification (in the course of becoming an
[http://www.ietf.org/iesg.html Internet Engineering Steering Group]. The specification is structured in such a way that the IETF could conceivably issue further versions or revisions of this specification without breaking existing deployments, although there is no commitment, nor currently expressed interest, in doing so.
See the Extensibility section below for how each can be extended without changing the specifications themselves.
Atom 1.0 requires that both feeds and entries include a title (which may be empty), a unique identifier, and a last-updated timestamp.
RSS 2.0 may contain either plain text or escaped HTML, with no way to indicate which of the two is provided. Escaped HTML is ugly (for example, the string AT&T would be expressed as “AT&T”) and has been a source of difficulty for implementors. RSS 2.0 cannot contain actual well-formed XML markup, which reduces the re-usability of content.
Atom has separate “summary” and “content” elements. The summary is encouraged for accessibility reasons if the content is non-textual (e.g. audio) or non-local (i.e. identified by pointer).
[http://diveintomark.org/archives/2002/06/02/important_change_to_the_link_tag autodiscovery] has been implemented several times in different ways and has never been standardized. This is a common source of difficulty for non-technical users.
using any network protocol, for example [http://ietfreport.isoc.org/idref/draft-saintandre-atompub-notify/ XMPP]. Atom also has support for aggregated
feeds, where entries from multiple different feeds are combined, with pointers
== Differences of Degree ==
Atom 1.0 is in [http://www.w3.org/2005/Atom an XML namespace] and may contain elements or attributes from other XML namespaces. There are specific guidelines on how to interpret extension elements. Additionally, there will be an IANA managed directory rel= values for <link>. Finally, Atom 1.0 provides recommended extension points and guidance on how to interpret simple extensions.
RSS 2.0 does not specify the handling of relative URI references, and in practice they cannot be used in RSS feeds.
Atom 1.0 specifies use of the XML's built-in [http://www.w3.org/TR/xmlbase/ xml:base] attribute for allowing the use of relative references.
For identification of the language used in feeds, RSS 2.0 has its own <language> element, while Atom uses XML's built-in
RSS 2.0 can be encrypted or signed like any other web content, if treated as a
RSS 2.0 provides the ability to specify email addresses for a feed’s “managingEditor” and “webMaster”, and for an item’s “author”. Some publishers prefer not to share email addresses, and use “dc:creator” from the dublin core extension instead.
- 상협/Diary/7월 . . . . 30 matches
* 초반에는 여러가지것들을 균형있게 하려고 한거 같다. 그러다가 중반 넘어가서는 거의 한가지일에만 메달린거 같다. 그리고 영어 공부가 많이 부족했다. 그리고 생활도 초반에는 좀 착실하게 하려고 한거 같은데 후반에 가면, 목적의식 같은게 없어진거 같다. 앞으로는 한달에 할것들의 목적을 세워야 겠다.
|| 독서 || 자유로부터의 도피 3장 || 100% || - ||
|| 독서 || 자유로부터의 도피 4장 || 0% || 독서는 뭔가 특별한걸로 느껴져서. ||
* 오늘은 뭔가 막 할라고 했는데.. 결국은.. 별로 못했다는 사실.. ㅡㅡ;
|| ["비행기게임"] || 미숙한것들 처리 || ㅠㅜ || 파일에서 적 경로 읽어오기 하다가 실패함 ||
* 오늘은 이것저것 계획만 잔뜩 잡고 여러가지 일들을 제대로 못했다.
* 너무 계획을 빡빡하게 잡은거 같다. 앞으로는 좀 널럴하게 잡아야 겠다.
* 오늘은 어제 계획만 세우고 제대로 안했으니깐. 하고 나서 적어야 겠다.
* 오늘은 별로 한게 없당... 오늘 기숙사에서 기분이 좀 나빠지는 일이 있었다. 그때는 막 화가 났는데, 조금만 다르게 생각하자 그렇게 나빴던 기분도 풀렸다. 역시 사람은 화를 내는것보다 웃는게 훨씬 나은거 같다.^^ 옛날에 어디서 그런 연구 결과를 본거 같다.(화를 내는 경우와 웃는 경우 신체적 호르몬 분비나 스트레스 해소나 축적 정도...) 화내는것은 자기만 손해이고 스트레스만 쌓이는거 같다. 차라리 상대편 사람에게 화난점을 말하거나 그러한 여건이 안되면, 그 사람의 입장을 이해해 보려고 노력해 보거나 그사람이 나한테 잘해줬던 일들이라도 생각해보던지 해야겠다. 그리고 사람이 한번 소심해지면 한없이 계속 소심해지는거 같다. 오늘 기숙사에서의 일도 여러가지 방향과, 여러 사람의 입장에서 다양하게 생각해보면 그렇게 기분 나쁠일은 아닌거 같다. 소심해 지지 말잣~
|| ["비행기게임"] || 파일에서 경로 읽기 || 오케바리~ || 캬캬 ||
* 오늘도 별로 한것도 없이.. 지나갔넹..
* 결국 별로 나간것도 없이... 끝났다. ㅡㅡ;
* 오늘은 하루종일 3D만 했다.(가끔 워크3도 하고..) 벽돌깨기를 만들어야겠다는 일념으로.. ㅡㅡ;
* 요새는 맨날 3D만 한다. 난 한번 뭐 만들라고 맘 먹으면 눈에 뵈는게 없는거 같다. 벽돌깨기가 너무나도 만들고 싶은거라서 이거 말고 딴거는 못하겠당.. ㅡㅡ;; 그래서 POSA 프로젝트도 유보를...
* 오늘 visual c++ 초보 모임 카페에서 만난 얘랑 대화 했는데.. 웃겨 죽는줄 알았다. 이렇게 재미난 얘가 있었다니.. ㅡㅡ;; 앞으로 심심할일은 없을거 같다. ㅡㅡ;;
* 오늘? 오늘 뭐했지... 별로 기억이 없당.. ㅡㅡ;;, 학생회 회의도 가고 과외도 가고 해서..오늘은 태양계를 한번 해볼라고 했는데 대충 뭐 돌아가고 하기는 하는데 각도 좀 휘게 해서 돌게 할라고 하는데, 수학적인 계산은 했는데 실제로는 안된다. ㅡㅡ;; 이제 되었다. - 로 해야할것을 +로 해서.. 지금까지 안되었던거 같다~
* 오늘은 제로페이지 정모다.. 와 밖에 나갈일 생겼다~, 오늘은 비행기게임 진도좀 팍팍 나가야 겠다. 인수랑 만나기로 했다~
* 오늘은 11시 반에 일어났다. ㅠㅜ 잠을 너무 많이 자니깐 머리가 아플라고 한다. 새벽에 잘때 기분이 안좋아서 많이 잔거 같기도 하다. 기숙사에 대한 환멸이기도 하고, 기숙사의 한 인간에 대한 실망과, 지금까지의 기숙사 생활로 나도 어느새 그런 인간이 되지는 않았을까 하는 두려움도 생겼다. 이미 기숙사 생활로 나도 상당히 학번이라는 권위에 호소하는 경향이 있는거 같다. 빨리 제정신 차려야 겠다. 그러나 기숙사를 나올수는 없는 상황.. -_-,
* 오늘은 너무 많이 놀아서... 두번째걸 거의 못했다. 그리고 오늘 석천이형의 조언을 받아서 앞으로 공부 방향을 좀더 확실하게 잡았다. 아자아자~~
* 오후에 학교에서 공짜로 해주는 영어 회화 한번 가구, C++ 우리팀 모이는데 한번 가고 그러다 보면 하루 다 가겠다. 지금과 같이 뭐 특별한거 없고, 그저 그런 상황에서 난 중딩때 미래를 생각했는데.. 지금 상황에서 무엇을 조금씩 한다면 그것은 미래에 아주 큰 도움이 된다는거... 음.. 어떤걸 해봐야 할까~~ 영어인가.. 아니면 다양한 분야의 책들? 프로그래밍 공부는 원래 하는거다고 치고... 아니면 뭐 음악적으로 기타같은거라도 배울까나?? 별 생각이 다든다. -_-;;
- DevelopmentinWindows . . . . 29 matches
윈도우즈 운영체제 기반의 프로그램 개발에 대해 소개하는 세미나 입니다. 02학번들에게 많은 도움 되었으면 좋겠습니다.
(앞으로 Windows 서브시스템 기반의 프로그래밍을 윈도우즈 프로그래밍이라고 하겠다.)
=== 윈도우즈 프로그래밍 ===
* 하드웨어 독립적 프로그래밍
* 프로그램이 순차적으로 실행되지 않고 메시지 발생에 따라 실행이 되는 방식
=== 하드웨어 독립적 프로그래밍 ===
* 하드웨어를 신경쓰지 않고 프로그래밍 할 수 있다.
* 윈도우즈 프로그래밍을 하기 위해 필요한 함수들을 제공
* 윈도우즈 API를 클래스로 포장하여 제공하는 클래스 라이브러리
* AppWizard, ClassWizard 등의 툴과의 통합으로 더욱 쉽게 사용할 수 있다.
* 아이콘, 커서, 메뉴, 다이얼로그 박스, 비트맵, 폰트, 엑셀레이터 테이블, 스트링 테이블, 버전 정보 등
* 코드를 여러 프로그램에서 공유하므로 메모리를 절약할 수 있다.
* 윈도우즈 프로그래밍에서는 대부분의 라이브러리가 DLL로 제공된다.[[BR]]
||LPCSTR||NULL 문자로 끝나는 문자열 상수 포인터||
||LPSTR||NULL 문자로 끝나는 문자열 포인터||
* 일반적으로 "동사 + 목적어" 또는 "동사 + 보어" 로 만들고 각 단어의 첫글자는 대문자로 나머지는 소문자로 쓴다.
* 윈도우를 만드는 함수는 CreateWindow, 메시지를 보내는 함수는 SendMessage
||c||카운터로 사용되는 변수||
||sz||NULL로 끝나는 문자열||
=== 윈도우즈 API를 이용한 예제 프로그램 ===
- Minesweeper/이도현 . . . . 29 matches
최대 입력의 크기가 100 x 100이므로 모두 조사해보는 방법도 매우 빠른시간안에 해결할 수 있다.
이번에는 처음으로 Presentation Error를 여러번 받았다. 이것은 프로그램이 도출하는 답은 맞으나 출력형식이 잘못된 경우 발생한다.
이 문제는 출력세트별로 반드시 빈 줄을 추가하라고 했다. 이것이 매우 애매한 해석으로 이루어져서 코딩에 어려움을 겪었다.
결과적으로 이야기하면 하나의 출력세트가 있을 경우엔 밑에 빈 줄이 없어야하고 하나 이상일 때만 빈 줄이 있어야한다.
밑에 코드에서 if문으로 outputNumber > 1 인 부분이 Presentation Error를 벗어나게 하는 해결방법이었다.
//ifstream fin("input.txt");
// 종료조건
if ((inputRow == 0) && (inputCol == 0))
// 배열 초기화 (경계값까지 '.'으로 초기화)
// 출력 (출력이 하나인 경우는 밑에 빈칸을 두지 않는다!!)
if (outputNumber > 1)
cout << endl;
cout << "Field #" << outputNumber++ << ":" << endl;
if (data[i][j] == '*')
else
if (data[i - 1][j - 1] == '*')
if (data[i - 1][j] == '*')
if (data[i - 1][j + 1] == '*')
if (data[i][j + 1] == '*')
if (data[i + 1][j + 1] == '*')
- 위키QnA . . . . 29 matches
A : 아. 한번 고쳐봤습니다; 위의 네비게이션 바에 tab index를 주었습니다. 맨 처음 focus 는 바로가기 GO 입력창에 커서가 오고요. 그 다음 Shift + Tab 을 누르면 TAB 이 최근바뀐글 -> 검색 -> 제목색인 순으로 움직입니다. (반발이 3명 이상 나오면 원상복귀 하겠습니다;;) --석천
=== IE 6.0 에서의 로그인 문제 ===
Q : IE 6.0 기본설정에서는 로그인이 안되네요.
A : "도구->인터넷옵션->개인정보->편집" 눌러서 zp.cse.cau.ac.kr 허용으로 해주면 됩니다. --구근 [[BR]]
Q : 그리고 글중 ''wiki : NoSmok : 페이지이름'' 식으로 링크를 했는데, 이건 무슨 기능인지 간단히 설명좀
A : InterWiki 라고 합니다. InterWiki 에 등록된 다른 위키의 페이지를 링크 걸때 사용합니다. 위키간 이름공간을 연결해주는 유용한 매크로. ^^; InterWiki 에 가보시면 현재 등록된 다른 위키페이지들을 알 수 있습니다.~
=== {{{~cpp }}}로 묶이는 단락의 폰트 사이즈가 작아요 ===
Q : {{{~cpp {{{~cpp }}} }}} 로 묶이는 녀석의 font를 1 더 크게 하면 어떻게 나오는지? 지금 좀 작아서 글자가 보기에 뭉개져 보입니다.
A : 묶인 녀석의 font가 1 더 커진 상태 (기존폰트는 10pt) 는 UserPreferences 에서 default.css를 default_2.css 로 바꿔서 보세요.
* Regular Project 인원 3명이상 - 3명 이상이라면 세미나-스터디의 형태이거나, 단체 프로그램 목표, 기타의 단체 목표 일것이다.
* 예외 경우
* Regular Project 2명이하라도 팀원들이 Regular Project 만큼 많은 접근성이나 말이 멋있다고(--;)요구하면, 자유로이 Regular Project에 올린다.
* 반대로 Semi Project의 Regular Project로의 선택은 막습니다. 이것이 허용되면 구분의 의미가 없겠죠?
Semi -> Regular 로의 선택의 의미는 뭐지? --석천
* Regular Project와 Semi Project를 나눈 원래의 취지는 개인이나 2명의 극히 소수가 진행하고 있는 작은 규모와 3명 이상의 단체가 진행하는 일이라고 생각했습니다. 하지만 받아 들이는 입장에서는 다른 의도로 받아 들이지 말아 주세요. 혹은 둘을 구분하는 다른 효과적인 기준을 제시해 주세요.
Semi Project에서 인원이 3명 이상이라면 자동으로 Regular Project가 되어야 합니다. 이렇게 한 이유는 Regular Project라면 대문에서 더 다수가 접근할 것이라고 생각되며 eye catch의 시간을 더 줄여야 한다고 생각하기 때문에 이렇게 둔것입니다. 둘의 차이는 인원의 차이 외에 현재 아무것도 없습니다. 그냥 2명 이하라고 하는것 보다 Semi라는 이름이 멋있어서 붙여놨것만 --;; --상민
FrontPage가 현재 하고 있는일이 (보여주고 있는 것) ZeroWiki 정의, 사용용도, Starting Point (여기에는 프로젝트 열거도 포함), 제안이야. 이중에서 사용용도와 제안은 새 페이지로 빼는 것이 좋을 것 같은데. 그리고 프로젝트 열거 밑에 Starting Point 밑에 두는 것도 생각. 그리고 또하나는 현재 이 프로젝트 관련 글을 Q&A가 아닌 제안페이지에 두는것이 더 좋겠다는 것. 현재 우선적인 직접접근성을 제공받아야 할 것은 project니까. 그에 대해서는 나도 별 이견 없음. --석천
A: {{{~cpp [[TableOfContents]] }}} 매크로를 사용해보시는 건 어떨까요? 소제목들에 대한 내부링크를 만들어줍니다. 링크의 기준은 === ===, == == 등으로 묶인 헤더태그들 기준입니다.
Q: Bioinformatics에 관한 프로젝트를 진행하려고 합니다. 소개와 내용의 재정리를 위해서는 많은 이미지 파일들을 위키에 올려야 될지도 모르겠는데, 위키에서의 이미지 사용은 그렇게 적절하지 않은 것 같습니다. 어떤 방식으로 이를 해결할 수 있을까요?
A: 임의의 웹사이트(예컨대 자신의 홈페이지, 혹은 제로페이지 FTP서버 등)에 화일을 올리고 위키에는 링크만 남기면 자동으로 이미지가 표시됩니다.[[BR]]
- 김희성/MTFREADER . . . . 28 matches
if(!GetLastError())
else
void MakeBinaryFile(char* filename); //MFT를 Binary 그대로 저장한다.
void MakeTextFile(char* filename, long flag); //MFT 속성을 text 파일로 저장.
if(!$MFT)
if( *((char*)$MFT+j*boot_block.BytesPerSector-2)==
point=*((unsigned short*)((unsigned char*)$MFT+20));//Offset으로 포인터 이동
if(*((unsigned char*)$MFT+point+8))
else
if(!MFT)
if(sub_mask&flag && *(long*)point==0x10*i)
if(*((unsigned char*)point+8))
if(*((unsigned __int64*)((unsigned char*)point+40)))
else
if(offset)
else
if(!offset)
if(!((*(long*)point)&0xFFFFFF00))
if(*((unsigned char*)point+8))
if(*(long*)((unsigned char*)point+4))
- 문자반대출력/허아영 . . . . 28 matches
한글문자열을 반대로 출력하는 알고리즘이 떠오르지 않는다.
원시적인 방법으로 했다.
choiceNum을 영어, 한글, 문자로 세분화 하려고 했으니 일단은 저렇게 코딩.
영어문자열만 실행되는 프로그램
/*파일에서 입력받은 문자열을 반대로 출력하는 프로그램*/
{{{~cpp /*파일에서 입력받은 문자열을 반대로 출력하는 프로그램 ver.2*/
if('A'<= ch[i] && ch[i] <='z')
}else
==== C++ 로 ====
한글로된 문자열을 입력 했을 때 다른 결과가 나온다. 예를들어 최경현 이란 문자를 입력하면 置麗零 이렇게 나와 .... 내가 만든거도 이렇게 나온다 마찬가지 ..ㅠ.ㅠ --[최경현]
좋은 발견입니다. 한글 한 글자는 알파벳(1바이트)과 달리 2바이트입니다. 따라서 위 코드와 같이 해주면 영어와 같은 알파벳은 거꾸로 출력되지만 한글은 아예 문자열이 바뀌게 됩니다. 한글같은 2바이트 확장문자도 반대로 출력되게 구현을 한번 해보세요. - 보창
비베에서는 한글이나 일본어처럼 2바이트를 사용하는 글자의 경우 알아서-_- 판단하고 한 글자 단위로 읽는 함수가 있긴 한데 씨에서는 알파벳과 같은 1바이트 문자인지 아니면 2바이트 문자인지를 어떻게 구분해야 할까요? -태훈 [zyint]
ascii code를 봐서 MSB ( most significant bit)가 1 이면 아마.. 2바이트문자일 겁니다.. - 임인택
한글로 해봤었는데, 이 프로그램은 영어만 되나, 하고 생각했었습니다. MSB를 이용하면 되겠군요. MSB에 대한 자세한 설명이 필요합니다. --아영
MSB는 비트로 표현된 값에서 가장 중요한 요인이 되는 값을 말합니다. 가령 10001000 이라는 값이 있을때 가장 왼쪽에 있는 1이 MSB입니다. 마찬가지로 가장 왼쪽에 있는 0을 LSB (Least Significant Bit)라고 합니다. 지금 설명드린 내용은 BigEndian Machine 의 경우, 즉, 비트를 왼쪽에서 오른쪽으로 읽는 아키텍처에서의 MSB, LSB를 설명드린 것이고, LittleEndian (비트를 오른쪽에서 왼쪽으로 읽는) 아키텍처에서는 LSB와 MSB가 바뀌어야겠죠. 현대의 거의 모든 아키텍처에서 영문은 ascii 코드로 표현합니다. ascii코드의 값은 0~127인데 이를 8비트 2의 보수를 사용해서 표현하면 MSB가 모두 0 이 됩니다. 이 경우에는 해당 문자가 1바이트의 문자란 것을 뜻하고, MSB가 1인 경우에는 뒤에 부가적인 정보가 더 온다 (죽, 이 문자는 2바이트 문자이다)라는 것을 말합니다.
- 송지원 . . . . 28 matches
* 성경 中 창세기전에서 아담의 아들인 카인의 아들로 나오는 인물. (= 아담의 손자)
* 어감이 좋아서 닉네임으로 정한것 뿐 성경 속 인물에 대한 개인적인 애착은 없다.
* 재수하라는 아버지의 권유를 뿌리치고 중앙대 컴공에 예비 2차, 06학번으로 들어왔다.
* 2008년 : 일본으로 도망갔다 일본어 기초만 배우고 옴 // '''이 해에 ZP 활동은 제일 열심히 했다.'''
* 2010년 : 상반기엔 방글라데시 봉사활동 준비 및 파견, 하반기엔 미국 캘리포니아 UCR로 교환학생
* 2011년 : IBM Campus Wizard 8기 활동, 2011-1학기 튜터링 프로그램에서 Tutor로 참여. ZeroPage 20주년 성년식 기획단 참여.
* 2017년 : ~~LG 탈출~~ eBay Korea로 이직. G마켓/옥션/G9하나 했는데 셋 다 아니고 물류 쪽을 하게 되었습니다. Fulfillment팀
== 프로젝트/세미나 ==
* [데블스캠프2011] - Staff로 참여, 월~금 All 참여
* [데블스캠프2011/첫째날/개발자는무엇으로사는가]
* 프로그래밍 - 개인 코드
* [데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/송지원]
월요일 스크래치([데블스캠프2009/월요일/Scratch])를 주제로 세미나 진행.
수요일 Simple Java & JUnit Test([데블스캠프2009/수요일/JUnit])를 주제로 세미나 진행.
* [2009새싹스터디] - 선생도 강사도 모두 여학우라 '아름이반'으로 활동.
php, mysql로 주소록 관리하고자 진행. 승한오빠와 진행함. 로그인을 제외하고 완성.
정현오빠, 대원오빠, 규현오빠, 지훈이 이렇게 넷이서 10월에 있을 공모전을 목표로 진행한 프로젝트.
나는 DB쪽을 맡았었는데 Java와 mysql을 연동하는 방법까지만 하고 프로젝트 자체가 흐지부지 됨.
그래도 이 mysql&Java 연동을 OOP 프로젝트에 잘 써먹었습니다.
* [PC실관리프로그램]
- FromDuskTillDawn/변형진 . . . . 27 matches
출제된 문제에 나온 열차 시간표가 2번째 케이스에서 도착할 수 없게 되어 있어서, 시간표를 임의로 수정해서 테스트해보니... 잘 된다. :)
list($from, $to, $start, $end) = explode(" ", trim($ln[$k+$i+1]));
if(($start<18&&$start>6)||($end<18&&$end>6)||($start<=6&&$start>=$end)||($end>=18&&$end<=$start)) continue;
$this->train[$from][] = array("to"=>$to, "start"=>($start+6)%24, "end"=>($end+6)%24);
if($this->days) echo "Vladimir needs $this->days litre(s) of blood.<br>";
else echo "There is no route Vladimir can take.<br>";
if($city[$from]) return 0;
if($city[$next]) continue;
if($this->train[$from][$i][start]>=$start)
if($next==$to)
if($this->days>$days||!$this->days) $this->days = $days;
$today[$next] = min(($today[$next])?$today[$next]:0, $this->train[$from][$i][end]-12);
else $tomorrow[$next] = min(($tomorrow[$next])?$tomorrow[$next]:0, $this->train[$from][$i][end]-12);
foreach($today as $next => $end) $this->track($next, $to, $end+12, $days, $city);
foreach($tomorrow as $next => $end)
if($next==$to)
if($this->days>$days+1||!$this->days) $this->days = $days+1;
if($today[$next]) continue;
$this->track($next, $to, $end+12, $days+1, $city);
- RandomWalk/성재 . . . . 27 matches
c = rand() % num; //end
if(data[i][j] == 0)
int q = rand() % 8; //end
if(q==0) {
if(b-1>=0 && c-1>=0)
else if(q==1) {
if(b>=0 && b<num && c-1>=0)
else if(q==2) {
if(b+1<num && c-1>=0)
else if(q==3) {
if(b+1< num && c>= 0 && c<num)
else if(q==4) {
if(b+1<num && c+1<num)
else if(q==5) {
if(c+1<num)
else if(q==6) {
if(b-1>=0 && c+1<num)
else if(q==7) {
if(b>=0)
cout << endl;
- 페이지이름 . . . . 27 matches
1. 위키위키에서 ["페이지이름"]은 너무나도 중요한 역할을 합니다. 제로위키에서 사용되어야할 페이지이름 규칙도 생각을 해보는게 좋을것 같습니다. NoSmok:페이지이름 페이지에 참고하기 좋은 내용들이 있습니다.
* 영문 제목의 경우 모두 빈칸을 붙여서 사용한다. (제목으로 표시될때 자동으로 단어의 대문자 단위로 빈칸을 띄어주므로)
* 한글 제목의 경우 붙여쓰기를 기본.
*. ZeroWiki 에서는 '''/''' 으로 페이지 간의 계층을 구분한다.
* 예를들어서, ["ProjectPrometheus"] 에서 활동하다가 만들어지는 '''Journey''' 페이지의 이름은 ["ProjectPrometheus/Journey"]로 지어지고 이 페이지는 ["ProjectPrometheus"]를 부모로 하는 하위 페이지이이다.
* 당연히, 부모인 ["ProjectPrometheus"] 에 Jouney 에 대한 링크를 찾아보면 있을 것이다. 그리고 ["ProjectPrometheus/Journey"] 의 가장 하단에, 밑줄({{{~cpp ----}}})로 자신의 부모를 링크를 걸어두어 보는 이가 항해하기 편하게 배려한다.
*. 부모가 없는 페이지들은 ["분류분류"] 들에 있는 분류중 하나로 속할수 있다. 만약 자신이 생각하는 분류가 없다면, 당신은 새로운 분류 꺼리를 ZeroWiki에 제공할 수 있다. 새로운 공식적인 분류페이지를 열수 있다는 것은 즐거운 일이다. 축하한다. 해당 분류를 만들어 달라.
* 최상위 링크인 ["분류분류"]의 예를 든다면 이 페이지 ["페이지이름"]은 부모는 없고, ["위키분류"] 로 분류되어 있다.
* 개인 페이지의 하위 페이지들 ( 여기에서 계층이 없는 것으로 분리 가능 )
* / 으로 계층을 표현한다. ["역링크"]를 건다.
* 부모 페이지가 없다면 부모페이지를 작성하거나, 개인페이지 내의 하위계층으로 이름을 바꾼다.
* 페이지 삭제 or 페이지를 연사람이 자신의 개인 페이지의 하위로 바꾼다.
* 일반화 주제로 이름과 내용을 바꾸고, 하위 페이지로 만든다.
추상적이라 생각되면 일종의 사랑방으로 이용하면 된다고 봅니다. 범용적인 만큼 스레드 성격의 글들을 더 잘 포용할 수 있지 않을까 생각합니다. 저는 '토론'(을 원한다면) 이나 '제안'(성격이라면) 임이 명시적으로 드러나는것이 좋지 않을까 생각한것 뿐, 특별한 다른 뜻은 없습니다. --["1002"]
사랑방과 같은 시스템에서의 문서구조조정은 그 노력이 많이 듭니다. 일관된 주제로 얘기하기가 힘들어지기 때문입니다. 따라서 되도록이면 피해야할 구조가 아닐까 생각합니다. 페이지 이름에 제안임이 명시적으로 드러나지 않아도 위키를 사용하는 사람들의 관심을 끌만큼 흥미로운 내용을 담고 있다면 괜찮다고 생각합니다. 조만간 이 부분은 ["페이지이름"] 페이지로 옮겨서 얘기해봐도 좋을듯 합니다. --["이덕준"]
- EnglishSpeaking/2011년스터디 . . . . 26 matches
1. 앞으로 스터디의 진행 방향
* 막연하게 Free Talking을 하면 아직 어색한 우리들, 어떠한 방법으로 이를 극복할 것인가?
* 이런저런 자유 주제로 이야기하다가 각자의 스마트폰에 대해 디스(?)하는 시간을 가짐
* There are four members in my family: my father, mother, and a younger brother. Well, actually there are five including our dog. My father was a military officer for twenty years. He recently retired from service and now works in a weaponry company. My mother is a typical housewife. She takes care of me and my brother and keeps our house running well. My brother is attending a university in the U.S.A. He just entered the university as a freshman and is adjusting to the environment. I miss the memory of fighting over things with him. The last member of my family is my dog named Joy. She is a Maltese terrier and my mother named her Joy to bring joy into our family. That's about it for the introduction of my family members.
* [송지원] - 말하기를 할 때마다 느끼지만 자신이 하고자 하는 말을 다른 언어로 표현하는게 참 쉽지가 않아요. 쉬운 말이라고 해도 안써버릇 하면 단어라던가 어휘가 생각이 나지 않고, 처음에 6피에서 영어로 입을 트자니 어찌나 부끄럽던지 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 아 해외경험도 있는 주제에 이렇게 허접한 영어 실력이라니 막막해지네요ㅠㅠ 그래도 열심히 해야겠다는 생각에 지금 심슨 영상도 뽑아내고 있고 그래요-_-; 앞으로 우리 울렁증을 극복해보아요 화이팅 ㅠㅠ
* [권순의] - 중학교땐 맨날 애들이 뭘 그렇게 영어로 중얼중얼 대냐고 했었는데 (레슬링 대사나 이런거였다는 -_-) 하도 안하다 보니까 말이 잘 안나오네요. 그리고 어쩔땐 머리로 문장이 잘 만들어지는데 그게 입 밖으로 잘 안나오는게 문제네요;;; 아흐음... 확실히 뭐라도 중얼중얼대야겠습니다. 예전처럼이라도 -_-;; 음.. 또 레슬링 봐야하나;;
* [김수경] - 아주 쉬운 말을 하고싶은데도 적절한 표현이 생각나지 않아 괴로웠습니다. 그냥 주제없이 이야기하는 것도 좋지만 질문에 대답하는 식으로 진행하니 오히려 말하기 더 편한것 같아 좋았어요.
* 참여자 수가 준비한 장면과 달라, Marge와 Homer의 대화 장면으로 대체.
* [김수경] - 오늘 처음으로 심슨 대사를 따라해봤습니다. 지원언니께서 네명이 같이 연습할만한 장면들을 미리 골라두셨는데 막상 오늘 온 사람이 두명이라 다른 장면을 연습했습니다. 40초도 채 안 되는 짧은 대화인데 참 어렵더라구요. 한 문장씩 듣고 따라하고, 받아쓰기도 하고, 외워서 해보는 등 한 장면을 가지고 여러번 연습한 것은 매우 좋았습니다. ''You tell me that all the time.''이나 ''Let me be honest with you.''가 어려운 문장은 아니지만 막상 말하려면 딱 생각이 안 났을 것 같은데 오늘 이후로는 좀 더 유려하게 말할 수 있을 것 같아요. 앞으로 매주 진행하면 이런 표현들이 늘어나겠죠 ㅋㅋㅋ
* 지원이 미국에서 있었던 일로 흘러가다가
* [김수경] - 이번주 영상은 문장이 단어 조금 바꾸면 여기저기 가져다 쓸만한 것이 많아 재미있었어요. 가위바위보로 역할을 분담했는데 ''Along with the ego and the superego, one of three components of the psyche.''라는 문장을 외워보고 싶어서 리사를 선택했습니다. 그런데 리사 분량이 제일 적어서 본의아니게(?) 가장 날로먹었네요 ㅋㅋ
* 지원이 아버지 회사에서 컴퓨터 고쳐주러 간 얘기로 시작해서..
* [권순의] - 어 이거 안 썻었네-_-; 우리 동네 이야기를 하다보니 참 노원구라는 동네는 있을건 정말이지 다 있는 거 같네요. 구에서 정말 복지 쪽에는 신경을 많이 쓰는 거 같긴 한데... 교통이 안 좋아 -_-;; (지도 보면 서울 변두리가 노원입니다. 어디 나가려면 한시간은 기본으로 잡고 나가죠;;) 뭐 아무튼,, 영어로 동네 소개 하면서 다시한번 우리 동네를 돌아보게 되어(?) 좋았습니다.
* [송지원] - 동네 얘기를 하는데 생각보다 동네의 장점에 대해 표현하기가 쉽지 않았습니다. 대중교통 좋다는 것 빼고 딱히 좋은거 없잖아!! 로 보였을 듯;; 강초파 주민을 싫어하는 모 씨도 있지만 서초구는 좋은 동네입니다. 차 막히는거 빼구요.. 심슨은 짧아서인지 제 비중이 적어서였는지 다른 때보다 표현들이 기억에 안남네요 흑흑..
* [권순의] - 조조에 관해서 영어로 이야기 하기가 너무 어렵네요 -_-;;; 좀 준비를 해 올껄이라는 아쉬움이 남기도 했습니다. 쩝; 이번 심슨 영상에서 제가 맡은 부분은 다 말이 빠르네요. 속사포 영어도 아니고 원..; 그래서 영상 보면서 따라할 때는 다 놓치고 -ㅅ- ㅋㅋㅋㅋ
* [송지원] - 지난번까지는 쉽지만 알아두면 좋은 표현이 많은(..은 훼이크고 역할분담하기 괜춘했던) 장면들을 선택했다고 하면 이번에는 좀 길고 빠른걸 선택했는데.. 영상속도를 따라하기가 많이 버거워서 몇 번 스크립트 외워서 하다가 급마무리 ㅋㅋㅋ 빠르게 말하는게 중요한건 아니지만 익숙해지려면 많이 따라해봐야겠어요. 롤모델로 이렇다하게 생각나는 유명인사가 많지 않아서 (그냥 이 사람의 이런 점, 저 사람의 이런 점을 본받아야겠다 뿐이었지 롤모델은 그닥..) 어머니에 대해 많이 얘기했는데 공교롭게도 순의가 그날 우리 어무이와 대면했드랬죠 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
- JavaStudy2003/두번째과제/곽세환 . . . . 26 matches
= ToyProblems 를 자바로 =
private int max_x; //판의 가로크기
private int max_y; //판의 세로크기
if (array[i][j] == 0)
if (x == -1 || x == max_x || y == -1 || y == max_y)
else
if (bo.IsPostionWall(x, y))
else
board_x = Integer.parseInt(JOptionPane.showInputDialog(null, "격자의 가로크기"));
board_y = Integer.parseInt(JOptionPane.showInputDialog(null, "격자의 세로크기"));
start_x = Integer.parseInt(JOptionPane.showInputDialog(null, "바퀴의 가로위치"));
start_y = Integer.parseInt(JOptionPane.showInputDialog(null, "바퀴의 세로위치"));
변수와 메소드를 하나의 소프트웨어 묶음으로 만든다.
모듈성은 각각의 객체를 위한 소스코드가 서로 무관하게 유지될 수 있다는 것이다.
정보은닉은 객체가 가지는 정보에 접근 권한을 주어 다른 객체로 부터의 접근을 제한할 수 있다.
특정 종류의 객체들에 대해 일반적으로 적용할 수 있는 변수와 메소드를 정의하고 있다.
클래스를 실제로 사용할 수 있도록 선언하는 것
여러개의 클래스가 같은 메시지에 대해서 각자의 방법으로 작용할 수 있는 능력이다.
friendly(생략):같은 클래스, 같은 패키지내에 있는 클래스에서 접근 가능
아직 상속을 읽고 있는 중이기 때문에 모르는 것이지요^^. private 과 protected 는 상속이 이루어지지 않으면 똑같이 사용이 됩니다. 하지만 상속이 이루어진다면 의미는 틀려지죠. 만약 '''자동차''' 라는 객체가 있다고 봅시다. 그런데 이것은 굉장히 추상적인 개념이지요. 이 '''자동차''' 의 하위 개념인 '''트럭''' 과 '''버스''' 와 '''승용차''' 를 '''자동차'''에서 상속받아 만들었다고 합시다. 그랬을 때 '''자동차''' 가 가지는 어떠한 상태는 '''트럭''' 과 '''버스''' 와 '''승용차'''도 역시 가지고 있을 수도 있습니다. 이런 경우 protected 로 선언해 주면 그 상태를 상속받을 수 있다는 것이지요. 하지만 외부에서 접근은 불가능하다는 사실은 변함이 없습니다. 하지만 public 은 외부에서 접근이 가능하게 되는 것이지요. 한번 직접 코드로 만들어보세요. 어떻게 다른지 채험하는게 가장 이해가 쉬울겁니다.
- 수학의정석/집합의연산/조현태 . . . . 26 matches
음.. 저번 것과 마찬가지로 입력받는 부분은 시간계산에 포함하지 않는다. (사용자의 입력시간이 결정하기 때문.)
또한 오버헤드를 줄인다는 명목하에 함수로 나누지도 않았따. (귀차니즘.ㅎ)
알고리즘은 1과 0으로 수를 저장, 한칸씩 옮겨가면서 모든 경우의 수를 찾는 것이다.
또한 예를 들어 7개일 경우는 1개일때, 2개일때, ... 7개일때 이런식으로 나누어서 연산을 한다.
이렇게 세팅후 1인 경우에 출력한다. 한차례연산후
그후 2개로 증가시켜서 계산...
이런식으로 연산을 하여 모든 경우의 수를 찾아낸다.^^
printf("CPU CLOCKS = %d\n", clock() - time_in); // 끝났을때 시간 - 초기 시작시간 = 프로그램 실행 시간
return 0; // 프로그램 종료.
if (i<temp_gaesu)
else
int end=gaesu-1;
if(1==temp_where[j])
int find_last=end;
if (1==temp_where[find_last])
if (find_last==end)
for (register int j=end; j>=0; --j)
if (0==temp_where[j])
else
if (0==find_zero)
- 송년회 . . . . 25 matches
돼지방앗간에서 107000원, 베를린 3층 술집에서 2차로 61000원 총 168000원사용.
제로페이지 자체회비 60000원 지원
송년회 회비로 10만 9000원 수입. 사용.
으음. 앞으로는 회계 페이지를 만들어서 따로 관리를 해보는것도 좋을듯. - [이승한]
학기 마무리행사로 학교전체가 들썩일텐데, 예약이 필요하지 않을까요?? - [이승한]
예약 당연히 필요하다. 올 만한 사람 수의 2/3 정도로 예약 하면 될 듯 하다. --재동
재동형님이 말씀해주신 2/3 으로라면 20명 정도 생각해보고 예약해야 할듯.
중앙대학교 컴퓨터공학부 제로페이지 입니다.
제로페이지에서 송년회를 준비하고 있습니다. 공지 메일 받으셧나요??
고맙습니다~ 꼭오시고요. 혹시 못 오시게 되면 이 번호로 연락주세요~
네. 혹시 시간되셔서 오실수 있게 되시면 이 번호로 연락 주세요~
안녕하세요. 제로페이지 회원님!
제로페이지 14기 (04학번) 이승한입니다. ^ ^
바쁘시더라도 꼭 참석해 주셔서 만남의 기쁨과 제로페이지의 앞날에 많은 조언을 부탁드립니다.
제로페이지 드림.
추신. 메일이나 문자메세지, 전화로 참석 여부를 알려주시면 고맙겠습니다.
발송결과 80개정도 발송되었는데 그중 20개 정도가 실패로 돌아왔습니다.
송년회야말로 OpenSpaceTechnology를 할 만한 좋은 기회가 아닐까 생각도 해봅니다. 친숙한 송년회는 아니겠지만요. --[Leonardong]
그날 뒤풀이로 가기 전에 잠깐 이런 것도 해보면 좋겠습니다. 아이디어는 템플스테이에서 했던 유서쓰기 시간을 차용한 것입니다. A4용지 한 장과 펜을 나누어주고 (펜은 지참하는 사람이 많겠습니다만) 한 해를 되돌아보는 글쓰기를 해 봅니다. 단 시간은 너무 길지 않게 5분정도로 하고요. 그리고 사람들에게 자신이 쓴 그대로를 읽어줍니다. 템플스테이에서는 불을 전부 끄고 각자 촛불을 하나씩 켜고 이야기했는데, 그런 준비가 안 된다면 그냥 해도 좋겠습니다. --[Leonardong]
[임인택]은 아르바이트 관계로 그날 관계자와 미팅을 갖게 될것 같습니다(관계자라고 해봐야.. 우리과 졸업생이지만.. 단기알바라서 이번주말에 만나야 합니다). 저녁시간대에 잡혀있어서 힘들것 같네요.
- CppStudy_2002_1/과제1/Yggdrasil . . . . 24 matches
//458page 프로그래밍 연습 1번
//458page 프로그래밍 연습 2번
//458page 프로그래밍 연습 3번
cout<<string.str<<endl;
cout<<str<<endl;
//458page 프로그래밍 연습 4번(미완성->입력받을 때 초기화가 안 되어
//함수는 전달인자로 전달된 값들을 사용하여
//golf 구조체를 제공된 이름과 핸디캡으로 설정한다
//함수는 handicap을 새 값으로 초기화한다
if(g.fullname=='\0')
else
cout<<"\nGolfer's Name: "<<g.fullname<<endl;
if(n==1){
//458page 프로그래밍 연습 5번
cout<<"제일 큰 수는 "<<maximum_double<<endl;
cout<<"제일 큰 수는 "<<maximum_int<<endl;
if(array5[i]>array5[j])
if(count==4){
//458page 프로그래밍 연습 6번
cout<<ret_int<<endl;
- CppStudy_2002_2 . . . . 24 matches
* C++의 문법도 익히고, 나아가서 사용법, OOP에 대해서 더 친숙 해지기, 다양한 과제를 통한 프로그래밍 경험 쌓기
* 앞으로 스터디 할 기간 : 총 6주, 6번의 모임
* 각자 '스스로'의 공부를 원칙으로 합니다
* 모르는 것에 대해서는 서로 의논하고 서로 배워가는 방식으로 할 예정입니다
|| 자판기 ||["VendingMachine/세연"]||["VendingMachine/세연/재동"]||["VendingMachine/세연/1002"]||
|| 자판기 ||["VendingMachine/재니"]||||
* 전에도 이야기 했지만 이번 주는 제가 사정이 있어서 수욜에 합니다. 그리고 시간은 세연이 누나의 의견을 받아 들여 3시로 합니다 난중에 딴 소리하면... 쿨럭쿨럭... 됩니다. 그럼 수욜 3시에 뵈요 ^^;;; --재동
* 그냥 이멜로 쓰거나 위키에 작업중인 걸 올려놓는 게 편할 것 같은데욤..^^* - 재니
* 소스 올리고 난 다음 코드 리뷰 해보는지? 사람들이 꽤 중복된 코드를 쓴다던지, UI 부분과 로직 클래스 부분이 너무 같이 붙어있다던지 하는 것 같은데.. 재동 당신의 능력을 보여줘; --["1002"]
* 예 알겠습니다. 제가 조금이라도 낳은 디자인으로 고쳐 보여볼께요. 여기에 부족한 부분이 있음 형도 제꺼에 지적 해주세요 (일명 '은근슬쩍 끌어들이기'...^^;;;) --재동
* 옷! 마침 코드속의 나쁜 냄세 읽고 있었는데...^^;;; 형 말대로 아주 많이 느끼게 됩니다 특히 세연이 누나꺼에서 '중복된 코드'와 '긴 메소드'가 눈에 띕니다 --재동
프로그래밍을 하는데 큰 도움이 되리라 믿고 하겠습니다 --재동
* 담주 8월 9일(금요일) 5시에 합니다 목요일이 제로페이지 정모이기도 하고 금요일에 ["CppStudy_2002_1"] 팀과 같이
STL 세미나(강사:강인수) 듣기로 했습니다 날짜 주의하세요!!
DeleteMe) 나 쥐뿔도 모른단 말야--; 강제로 강사로 넣어버리다니--;
* 이번주는 서로 시간이 딱 엇갈려서 할 수 없이 쉽니다. 숙제는 꼭 하시고 담 스터디 날짜는 이번주내에 공지 하겠습니다 --재동
* 이제 스터디가 모두 끝났군요. 전 여러모로 많은 걸 알고 배운 스터디라 생각합니다. 모두들 이 배운 걸 (지식과 경험 그리고 기타 등등) 잊지않고 더욱더 발전 하는 사람이 되었음 합니다. --재동
["프로젝트분류"]
- JollyJumpers/iruril . . . . 24 matches
int differenceValue;
boolean [] differenceArray;
public void checkDiffenceValue()
differenceValue = length-1;
// System.out.println(differenceValue);
// checkDifferArray[] 를 초기화한다
differenceArray = new boolean [length];
differenceArray = setFalse( differenceArray );
int tempDiffer;
for(int i = 0; i < differenceValue; i++)
tempDiffer = Math.abs( jumpersArray[i] - jumpersArray[i+1] );
// System.out.println(tempDiffer);
if( tempDiffer < length)
differenceArray[tempDiffer] = true;
for(int i = 1; i <= differenceValue; i++)
if ( differenceArray[i] == false )
if(jolly)
else
jj.checkDiffenceValue();
if(jj.jumpersArray[0] == 0)
- 데블스캠프2006/월요일/함수/문제풀이/이차형 . . . . 24 matches
if (member>guns)
else
if (boat*8<member)
else
if (member<=guns && boat*8>member)
else
int fifth();
if(brother==1)
else if(brother==2)
else if(brother==3)
else if(brother==4)
else if(brother==5)
fifth();
else if(brother==6)
else if(brother==7)
fifth();
int fifth()
cout << "fifth dwarfs\n";
- 프로그래밍십계명 . . . . 24 matches
도스시절 한글라이브러리인 한라 프로를 만드신 임인건님께서 쓰신 글입니다.
프로그래밍을 공부하시는 분들께 큰 도움이 되리라 생각합니다.
*오늘 필요 없는 정보는 내일 필요하리라. 가장 가치 있고도 저렴한 지식은 책 속에 있느니라. 서점과 동료의 책꽂이에 무엇이 꽂혀 있는지 때때로 살피어라. 무심코 흘렸던 종이 한 장이 너의 근심을 풀어 주었으리라. 설명서는 충분히, 꼼꼼히 읽을지어다. 모든 의문은 설명서를 안 보는 데서 생기니라. 그렇더라도 모두 다 읽을 필요는 없느니라.
*5분 후에 정전이 되고 내일 너의 하드가 맛이 가리라. 그러하니 너의 소중한 소스 코드는 정기적으로 여러 군데에 단계별로 백업해 두어라.
*정수가 절대로 그 한계를 넘지 않으리라 가정하는 것은 어리석음이라. 127, -128, 255, 32767, -32768, 65535, 이 숫자들을 너의 골수에 새기어라. 0.0은 0이 아니니 실수는 원래부터 결코 정밀하지 않느니라. 부호 없는 것과 있는 것을 어울리거나 정수끼리 나눌 때에는 늘 조심하여라.
*너의 컴퓨터는 1보다는 0을 좋아 하니라. 배열의 첨자가 그 범위를 넘지 않을지 손 댈 때마다 따져 보아라. 수식에 1을 더하거나 뺄 때에는 늘 긴장하라. 너의 프로그램은 단지 한 번 덜해서 틀리고 한 번 더해서 다운되느니라.
5. 항상 모든 경우의 수를 고려하고 섣불리 생략하지 말지어다.
*절대로 일어나지 않을 일은 반드시 일어나고, 가장 드물게 일어날 일이 가장 너를괴롭히리라. 그러하니 언제나 논리에 구멍이 없는지 꼼꼼히 따져 보고, if를 쓸 때에는 else부터 생각하라.
*지금 그 매개 변수가 결코 가질 수 없다는 값을 내일부터는 가지리라. 그러하니 매개 변수값이 올바름을 항상 검사할지어다. 그렇더라도 처리 속도가 문제가 되는 경우는 예외이니라.
7. 오류를 알려 주는 기능은 있는 대로 모두 활용할지어다.
8. 한 번의 수정과 재컴파일만으로 연관된 모든 것이 저절로, 강제로 바뀌도록 할지어다.
*어떠한 것을 수정했을 때에 연관된 것이 따라서 변하지 않는다면 그것이 곧 벌레이니라. 컴파일러로 하여금 매개 변수 리스트를 완전하게 검사하도록 하고, 언젠가 손대야 하거나 따라서 변해야 하는 수치는 전부 매크로로 치환하며, 형 정의를 적극 활용하여라.
*너의 프로그램은 항상 바보와 미친놈만이 쓰느니라. 사용 설명서를 쓸 때에는 결코 빠뜨리지 말아라. 빠뜨린 만큼 사용자는 너를 괴롭힐 것이니라.
*가장 완벽한 프로그램일수록 가장 완벽하게 숨은 벌레가 있느니라. 네가 이 세상 최고의 프로그래머라고 떠들며 자만할 때, 옆집 곳간에서는 훨씬 더 뛰어난 것을 묵묵히 만들고 있느니라. 아무렴 프로그래밍은 혼자 잘나서 할 게 아니니, 너로 인해 다른 사람들도 더불어 잘 되면 그얼마나 좋은 것이냐.
- CollectionParameter . . . . 23 matches
ComposedMethod의 단점중 하나는, 작은 메소드들 사이의 연관때문이다. 큰 메소드 하나에서 공유되었던 임시 변수들이, 이제는 작은 메소드들 사이에 공유된다. 가장 해결하기 쉬운 방법은 ComposedMethod를 없애고 다시 하나의 큰 메소드에 다 때려넣는 것이지만, 안좋다. 또 다른 해결책으로는 이 작은 메소드들 사이에서 공유되는 임시 변수를 멤버변수에 넣는 것이다. 이것은 객체의 생명기간 동안 유효한게 아니라, 저 메소드들이 실행될때에만 유효하다. 역시 안좋다.
for(vector<People>::iterator it = result.begin() ; it != result.end() ; ++it)
if(it->isMarried() and it->isMan())
for(vector<People>::iterator it = result.begin() ; it != result.end() ; ++it)
if(it->isUnmarried() and it->isWoman())
for(vector<People>::iterator it = result.begin() ; it != result.end() ; ++it)
if(it->isMarried() and it->isMan())
for(vector<People>::iterator it = result.begin() ; it != result.end() ; ++it)
if(it->isUnmarried() and it->isWoman())
for(vector<People>::iterator it = result.begin() ; it != result.end() ; ++it)
if(it->isMarried() and it->isMan())
for(vector<People>::iterator it = result.begin() ; it != result.end() ; ++it)
if(it->isUnmarried() and it->isWoman())
즉, 두 메소드의 결과를 모으는 경우인데, 그리 흔한 경우는 아니였던걸로 기억. 약간은 다르긴 하지만 나의 경우 CollectionParameter 의 성격으로 필요한 경우가 read/write 등 I/O 가 내부적으로 필요할때 또는 Serialization 등의 일이 필요할때. 그 경우 I/O 부분은 Stream 클래스로 만들고(C++ 의 Stream 을 쓰던지 또는 직접 Stream 클래스 만들어 쓰던지) parameter 로 넘겨주고 그 파라메터의 메소드를 사용하는 형태였음. --[1002]
- OurMajorLangIsCAndCPlusPlus/2006.2.06/김상섭 . . . . 23 matches
if(this->ch == ch)
if(this->ch == ns.ch)
if(strcmp(a.ch,b.ch) == 0)
else
cout << s << endl;
cout << s.length() << endl;
cout << s.length() << endl;
cout << s1 << s2 << endl;
cout << "input string : " << s << endl;
cout << s1 << " " << s2 << endl;
cout << s1 << " " << s2 << endl;
cout << s[2] << endl;
cout << s << endl;
cout << s << endl;
if(s == 10)
cout << "s는 10입니다" << endl;
else
cout << "s는 10아닙니다" << endl;
cout << s1+s2 << endl;
if(s1 == "123")
- 상협/감상 . . . . 23 matches
* 난 정말 기억력이 나쁘다. 방금 예전에 썼던 감상문을 다시 읽어보니 정말 새로웠다. ㅡㅡ; 앞으로는 책을 읽고나서 꼭 감상문을 써야 겠다. 안그러면 금방 까먹엇 읽은 효과가 없는거 같다. 또한 예전에 썼던 감상문을 다시 읽어 보면 예전의 그 생생한 감동이나 느낌이 다시 느껴진다. 이러한 느낌이 너무 좋은거 같다.
* 아래의 추천 정도는 극히 주관적인 것으로서 사람들 마다 느끼는게 다를거라고 생각함. 나의 의견은 그러한 다양한 의견중 하나라고 생각했으면 좋겠다.
|| ["로마인이아기"] || 시오노나나미 || 고등학교때 || 1 || ★★★★ ||
|| 아이를 사랑으로 꾸짖는 방법 || 아코 아키라 || 2002/5/8 || 1 || -_- ||
|| ["자유로부터의도피"] || 에리히 프롬 || 2002/8/6 || 1 || ★★★★★ ||
|| ["상협/학문의즐거움"] || 히로나카헤이스케 || 2002/8/26 || 1 || ★★★ ||
|| ["아는것으로부터의자유"] || 지두크리슈나무르티 || 군대 || 2 ~ 3 || ★★★★★ ||
|| ["설득의심리학"] || 로버트 치알디니 || 군대 || 1.5 || ★★★★★ ||
|| [PatternOrientedSoftwareArchitecture]|| || 1권(1) || - || 뭣도 모르고 보니깐 별로 감이 안온다 -_-; ||
|| [Refactoring] || 마틴파울러 || 1 || 굿 || 괜찮은 책이다. 아직 내가 이해와 적용을 제대로 못해서 아쉽다 ||
|| [OperatingSystem] || H.M.Deitel || 1 || 굿 || 운영체제공부를 처음으로 시작한다면 이책이 적당하다고 생각한다 ||
|| [프로그래밍언어론] || 원유헌 || 1 || 아주 굿 || 정말 쉽게 잘 나온 책!!, 정말 좋은책을 고르는게 중요하다는걸 알게해준책! ||
|| [TestDrivenDevelopmentByExample] || 켄트벡 || 1 || 굿 || 아직 제대로 이해와 적용은 못하겠다. 그래도 좋은책~ ||
= 읽고 싶은 책, 앞으로 읽을 책 =
* 난 원래 영화 잘 안보는 스타일 이지만, 마음도 심난하고 해서 컴퓨터로 이 영화를 보게 되었다. 처음 부분에서는 좀 황당한 재미가 있었고, 중간 부분으로 가면서 지루해져서 그만 볼까 하는 생각도 했지만, 좀 더 보다 보니깐 재밌어져서 결국 끝까지 봤다. 이 영화를 보고 느낀점은... 음.. 지금 내가 보고 있는 세계도 혹시 환상은 아닐까 하는. ㅡㅡ;; 메트릭스도 생각나고.. 그리고 영화속 주인공이 불쌍해 보였다. 뭐 비록 천재인거 같지만 그렇게 사는것은 별로 유쾌한 일은 아닐거다. 또한 천재적인 사람들은 사회에 잘 적응 못하는건 아닐까 하는 생각도 해본다. 한때 나도 머리가 천재적으로 좋았다면 좋겠다고 생각도 해보았지만, 그땐 이런 생각을 했었다. 머리가 너무 좋다면 노력해서 뭔가를 해내는 그런 쾌감을 얻을 기회가 적을 수도 있고, 주위로부터 한사람의 인격체로 인정되기 보다는 하나의 이용해 먹을 도구로 인식되지는 않을까 하는 생각도 해본다.(그사람 == 머리, 이런 이미지가 생기면 그 사람의 다른 모습은 전혀 관심밖의 일이 될테니..)
시간 나는 대로 올려야 겠다.
- 포커솔리테어평가 . . . . 23 matches
[컴공과프로그래밍경진대회] [4rdPCinCAUCSE]
입력은 한 줄 당 다섯 개의 카드씩 총 25개의 카드가 입력된다. 각 카드는 2개의 문자로 구성된다. 첫 번째 문자는 카드의 순서를 나타낸다. 카드 순서는 'A', '2', '3', '4', '5', '6', '7', '8', '9', 'X', 'J', 'Q', 'K'이다. 두번째 문자는 카드의 종류로서 'S', 'H', 'D', 'C'로 표시한다.
카드는 5x5 행렬에 나눠진다. 각 행과 열을 구성하는 5장의 카드에서 가장 높은 계급을 결정하는 것이다. 계급의 순서는 노 페어, 원 페어, 투 페어, 트리플, 스트레이트, 플러시, 풀 하우스, 포캉드, 스트레이트 플러시로 구성된다. 패는 가장 높은 계급으로 한 번만 사용된다. 예를 들어, 포카드는 투 페어나 트리플로 다시 사용되지 않는다.
다음 계급에 따라 순서대로 입력에의 열과 행에서 찾아진 계급별 개수를 출력한다. 가장 낮은 것부터 가장 높은 것으로의 계급 순서는 다음과 같다.
1. 노 페어 : 아래 계급에 아무것도 해당되지 않을 경우 (예: AC, 3H, QS, JD, 7D)
2. 원 페어 : 아래 계급 중 어떠한 것도 해당죄 않으며, 두장의 카드가 동일한 숫자로 구성될 때 (예 : 2C, 3H, 4H, KD)
3. 투 페어 : 아래 계급 중 어떠한 것도 해당되지 않으며, 다른 숫자의원 페어 2개로 이루어진 경우(예 : @C, 3H, 4H, 2H, 4D)
4. 트리플 : 아래 계급 중 어떠한 것도 해당되지 않으며, 동일한 숫자의 카드가 3장인 경우(예 : QS, KH, 2C, QD, QC)
5. 스트레이트 : 아래 계급 중 어떠한 것도 해당되지 않으며, 5장의 카드의 숫자가 순차적으로 구성되는 경우. A(에이스)는 14나 1로 사용될 수 있다. 예를 들어, AC, 2H, 4D, 3H, 5S도 스트레이트 이며, JH, XD, QC, KD, AS도 스트레이트 이다.
6. 플러시 : 아래 계급 중 어떠한 것도 해당되지 않으며, 5장의 카드가 모두 동일한 경우 (예:5D, AD, KD, 7D, QD)
7. 풀하우스 : 아래 계급 중 어떠한 것도 해당되지 않으며, 원 페어와 다른 카드들로 트리플을 이루는 경우(예 : 3C, QS, QP, 3H, 3S)
8. 포 카드 : 동일한 숫자 4개로 구성되는 카드(예: AS, AD, AH, 7C, AC)
9. 스트레이트 플러시 : 5장으로 스트레이트와 플러시 모두 포하되는 경우
- 2ndPCinCAUCSE/ProblemC . . . . 22 matches
유치원에 N명의 아이들이 있다. 오늘은 소풍을 가는 날이다. 선생님은 1번부터 N번까지 번호가 적혀있는 번호표를 아이들의 가슴에 붙여주었다. 선생님은 아이들을 효과적으로 보호하기 위해 목적지까지 번호순서대로 일렬로 서서 걸어가도록 하였다. 이동 도중에 보니 아이들의 번호순서가 바뀌었다. 그래서 선생님은 다시 번호 순서대로 줄을 세우기 위해서 아이들의 위치를 옮기려고 한다. 그리고 아이들이 혼란스러워하지 않도록 하기 위해 위치를 옮기는 아이들의 수를 최소로 하려고 한다.
예를 들어, 7명의 아이들이 다음과 같이 순서대로 줄을 서 있다고 하자.
아이들을 순서대로 줄을 세우기 위해, 먼저 4번 아이를 7번 아이의 뒤로 옮겨보자. 그러면 다음과 같은 순서가 된다.
이제, 7번 아이를 맨 뒤로 옮긴다.
다음, 1번 아이를 맨 앞으로 옮긴다.
마지막으로 2번 아이를 1번 아이의 뒤로 옮기면 번호 순서대로 배치된다.
위의 방법으로는 모두 네 명의 아이를 옮겨 번호 순서대로 줄을 세운다. 위의 예에서 세명의 아이만을 옮겨서는 순서대로 배치할 수 가 없다. 따라서 네 명을 옮기는 것이 가장 적은 수의 아이를 옮기는 것이다.
N명의 아이들이 임의의 순서로 줄을 서 있을 때, 번호 순서대로 배치하기 위해 옮겨지는 아이의 최소 수를 구하는 프로그램을 작성하시오.
입력은 표준 입력이다. 입력의 첫줄에 테스트 케이스의 개수를 나타내는 정수 T(10 이하)가 주어진다. 다음 줄 부터 T개의 테스트 케이스가 주어진다. 테스트케이스의 첫째 줄에는 아이들의 수 N이 주어진다. 둘째 줄에는 N명의 아이들의 순서를 나타내는, 1부터 N 사이의 정수로 이뤄진 순열이 주어진다. 순열에서 정수 사이에는 빈칸이 하나 들어 있다. N은 2이상 200이하의 정수이다.
출력은 표준 출력이다. 출력은 T줄로 이뤄진다. 각 테스트 케이스에 대해서 번호 순서대로 줄을 세우는데 옮겨지는 아이들의 최소 수를 출력한다. T개의 테스트 케이스를 모두 맞혀야 이 문제를 맞힌 것이다.
- JollyJumpers/황재선 . . . . 22 matches
== 모든 수를 수열로 생각 ==
public int[] getdifferenceValue() {
int [] differValue = new int[len];
differValue[i] = Math.abs(nums[i+1] - nums[i]);
nums = sort(differValue);
if (aNum[i] < aNum[j])
if (i != nums[i-1])
if (j.nums[0] == 0) {
j.getdifferenceValue();
if (j.isJolly()) v.add("Jolly");
else v.add("Not jolly");
if (set.size() != numOfSeries) {
if (num.intValue() != series) {
if (size > 3000) {
if (!isRightInput()) {
if (j.size == 0) {
if (j.isException())
if (j.isJolly(set))
else
public class TestJollyJumpers extends TestCase {
- PairSynchronization . . . . 22 matches
하나의 대상을 놓고 둘이서 서로 번갈아가며 그리는 방법. 이때 그림은 쉽게 변경할 수 있어야하므로 화이트보드를 쓰는것이 좋다. ''' ''적합한 페이지 이름 찾습니다.'' '''
NoSmok:PairDrawing 이 있긴 한데, 여기서는 개발자들끼리의 대화이므로 다른것을 써도 좋겠네요. PairModeling? --["1002"]
["sun"]이 PairProgramming을 하기에 앞서 CrcCard 섹션을 가지게 되었는데, 서로의 아이디어가 충분히 공유되지 않은 상태여서 CrcCard 섹션의 진도가 나가기 어려웠다. 이때 - 물론, CrcCard 섹션과는 별도로 행해져도 관계없다. - 화이트보드와 같은 도구를 이용해서 서로가 생각한 바를 만들어나가면서, 서로의 사상공유가 급속도로 진전됨을 경험하게 되었다.
1. 순서를 바꿔가며 하나의 개념을 화이트보드에 그리고, 각 개념은 선으로 그어 표시한다. See Also: MindMapConceptMap
* 다른 사람은 하나의 개념을 나타내거나, 이미 나타나 있는 개념에 선을 연결하고 설명함으로써 한 턴을 대신할 수 있다.
1. 추상적인 내용을 구체적으로 보고 이야기 할 수 있다.
1. 서로의 생각을 일치시키는데 도움이 된다.
=== 회사에서 프로젝트 진행시 ===
["sun"]은 기존 프로그램의 업그레이드 작업에 새로 한명의 파트너와 함께 둘이 작업하게 되었다. XP를 개발에 적용해보기로 하고, 프로그램 디자인에 CrcCard 섹션을 이용하고자 했다. 처음 CrcCard 섹션을 진행해서 그런지, 별다른 진척이 보이지 않아 우선 화이트보드를 이용해서 개념을 정리해보고자 다른 색의 마커를 들고 한 번에 하나씩 개념을 그리고 선을 이어 나가며 디자인을 했다.
* 자신의 생각과 일치하지 않는 개념이나 연관관계가 나올시, 바로 피드백을 하고 서로 토론을 한 후 화이트보드에 개념이나 관계를 추가해 나가게 되므로 생각 공유의 시간이 빨라졌다.
* 부가적인 장점: 회사원들에게만 적용되겠지만, Pair의 작업은 집중해서 이루어지게 되므로 금방 지치게 되는 경향이 있다. 이때 회의실에서 쉬더라도, 누가 들어왔을때 화이트보드에 가득한 디자인을 보면 열심히 일하는중이라 생각해준다. :)
상민이랑 ProjectPrometheus 를 하면서 CrcCard 세션을 했을때는 CrcCard 에서의 각 클래스들을 화이트보드에 붙였었죠. 그리고 화이트보드에 선을 그으면서 일종의 Collaboration Diagram 처럼 이용하기도 했었습니다. 서로 대화하기 편한 방법을 찾아내는 것이 좋으리라 생각.~ --["1002"]
- Yggdrasil/가속된씨플플/4장 . . . . 22 matches
* 장의 제목 그대로의 내용이다. 프로그램의 구조화(함수)와 데이터의 구조화(구조체) 등등을 설명하고 있다.
* 전달인자(여기서는 배열)를 값에 의한 전달/참조에 의한 전달을 적절히 사용해야 한다. 원래 값을 보호해야 하는 경우라면 값에 의해서, 원래 값을 바꿔야하는 경우라면 참조에 의해 전달한다.
* 참조에 의한 전달은 그 전달인자의 별명(?)을 넘겨준다. 즉 그 변수 자체를 넘겨주는 것이나 다름없다. 즉, 함수 내에서 그 전달인자로 전달된 변수가 바뀌면 원래의 값에도 변화가 온다. 그래서 적절히 const로 값이 바뀌지 않도록 제한해주는 것도 좋다. 복사를 안 하므로 오버헤드를 줄일 수 있음.
* 1학년 1학기 텀프로젝트를 할때, 성적정렬 프로그램에서 정렬로 순서가 전부 바뀌어버려서, 루프문의 끝에서 전부 다 초기화했던 기억이 난다. 이때 전달인자에 전달 방식을 제대로 이해하고 활용했다면 편했을 것을.
* 구조체 만드는 법은 다 알고 있으니 넘어가고, sort()에 전달인자로 구조체를 넘겨주게 되면, 어떤 기준으로 정렬할 것인지 알 수가 없다. 그래서 3번째 전달인자를 사용할 수 있다. 즉,
sort(students.begin(), students.end(), compare);
인데, compare는 함수인데 괄호는 쓰지 않는다. 괄호를 쓸 경우 그 인자까지 알아서 써줘야할 것 같은데, sort의 정확한 구조를 잘 모르는 나에겐 좀 벅찬 방법이다. 하여튼 괄호는 쓰지 않는다.
* 4.3장부터는 여러 헤더파일과 소스파일로 분리해놓고 있다.
* throw로 예외 상황이 발생되었다는 것을 알린다. 예외 클래스엔 여러개가 있으며, 생성자로 문자열을 집어 넣을 수 있고, 이건 일반적으로 출력이 안되지만, what()함수로 확인 가능.
* 사전순 정리: <와 >로 비교가 되는 거였다! 문자끼린 되는줄 알았지만 문자열도 할 수 있는 거구나...
* width(n) 메소드: 이전의 넓이를 리턴하며, n이 현재보다 클 경우 나머지 칸에 공백을 넣는다. n이 0이면 넓이 리셋.
- 정모/2013.9.4 . . . . 22 matches
* 제로페이지에서는 회원들의 학술활동 지원을 위해, 참가비가 있는 행사(컨퍼런스 등)에 대해 입장료를 지원하고 있습니다.
* 한종 -> 지원금 제한이 필요없다. 왜냐하면 1년에 많이가도 얼마 들지 않으므로 제한을 안걸어도 그렇게 많은 돈이 나가지 않는다.
* 본인 입으로 정확히 말하자면 :) 제한이 없어도 잘 안가는데, 제한이 생기면 더욱더 안 갈게 뻔하고, 지원금을 받는 대신 회원에게 공유할것을 전제로 주는 것이기 때문에, 한 사람이 집중적으로 많이 받아가도 별 반발이 없을거라 생각합니다. 받은만큼 토해(?)낼태니까요 :) 대신 세미나 같은 곳 다녀와서 건성으로 공유하지 않고 제대로 공유해줘야겠죠. 일단은 회장이 만족할정도면 된다고 생각합니다만. - [고한종]
* 덧붙여서, 지원금을 왜 주는지에 대해서 진지하게 생각했으면 좋겠어요. 저는 이게 학술 활동 지원이라 생각하는데, 지원 받는데 세세한 조건같은거 있으면 귀찮아서 학술활동을 포기해 버리겠죠?
* 하지만 비상식적으로 비싼 행사를 지양하려는 목적으로 최소한의 상한은 있는게 좋을듯.. 리눅스 포럼인가 10만원짜리 그런건 좀..-_-; -[김태진]
* 해천 -> 1명만 가는 경우 지원은 당연히 안되는 것이고, 영기말처럼 하는게 더 맞는것같다.
* 제가 할법한 잔소리는 이미 한종이가 위에서 했으니 제끼고 궁금한 게 있어서 이쪽에 붙습니다. 한명만 가는 경우 지원하지 말아야 할 당연한 이유가 있나요? 학술활동이 꼭 단체활동이어야 한다는 법도 없고.. 같이 갈 사람 못 구하면 지원도 못 받는 건 어쩐지 이상하게 느껴집니다. - [김수경]
* 개강파티가 있을 예정입니다. 일시는 공지로 알릴예정입니다.
* 소모임방식으로 진행이 될수도 있다.
* 외부 유입에서 문제가 생길수 있으므로 조심하는게 좋다.
* 또 하나 문제가 생길 수 있는게, 외부에서 zp가 거의 주최하는거에 대해서 클레임을 건다면 문제가 생길수 있어서 소모임방식으로 주최하는것에 조심해야한다.
* 대학생 프로그래밍 동아리에서 하는 제 2회 문제중 못푼문제 풀고 슬라이딩 윈도우 알고리즘을 공부했습니다.
* 클린 코드 : SRP(Single Responsibility Principle), DIP(Dependency Inversion Principle) 방식을 공부하였고 디자인패턴 중 템플릿 메소드에 대해서 공부하였습니다.그리고 스레드에 대해서 공부 하였습니다. trello와 github연동하는 방법이 있습니다.상당히 유용할 것같으므로 관심있으신분들은 조금만 찿아보시면 쉽게 하실수있습니다.
* 한.자.문 : 개강후 앞으로의 방향과 계획을 정하는 방식으로.
* 오랜만에 돌아왔는데, 회장이 이제 정모 진행하는데 불필요한 긴장감을 가지지는 않는것 같아 마음이 살짝 놓이네요. 하지만 여전히 뭔가 진행되는 느낌은 받지 못해 아쉬웠습니다. 휴학러니 앞으로 시간날때마다 짬짬히 들려서 지원해 드릴테니 힘내시길 : ) -[고한종]
- 2thPCinCAUCSE . . . . 21 matches
2회 중앙대학교 컴퓨터공학과 프로그래밍 경진 대회에 대한 자료.
* 문제 성격: 국내 대학생 프로그램 경진 대회의 문제 출제 경향을 따른다. 2002년도 문제 샘플( http://cs.kaist.ac.kr/~acmicpc/problem.html see also ["2002년도ACM문제샘플풀이"] 참조)
* 그 문제에 대해서 준비된 테스트 데이타( 보통 5-10개)에 대해서 모두 맞는 답을 내야 그 문제를 맞춘 것으로 한다.
* 프로그램의 실행시간이 일정시간(예: 10초)을 지나도 끝나지 않을 경우 틀린 문제가 됩니다.
* 컴파일 error, 실행 시간 error , 출력 포맷이 문제에서 정한 것과 다른 경우에도 틀림.
* 제출한 답안이 틀렸을 경우, 매번 일정한 penalty 점수 (10점)를 받게 된다.
* 맞춘 문제에 대해서는 경시 시작부터 문제를 제출한 시각까지 시간을 분으로 환산한 것이 점수로 주어진다. (따라서 점수가 적을수록 유리) 그리고 여기에 penalty 점수를 합산한 것이 그 문제의 최종 점수가 된다. 예를 들어, 어떤 한 문제에 대해서 다섯 번째 제출을 시작후 1시간 20분에 하여 맞추면, 지나간 시간이 80분이므로 80점, 네 번째까지는 틀렸으므로 4번*10점=40점이 penalty, 최종 점수는 120점이 된다.
* 프로그램 작성시 유의 사항:
1. 각 문제는 데이터를 외부에서 입력받아서 프로그램으로 답을 계산한 후 반드시 출력을 한다. 이때, 입출력은 표준입출력만 사용한다. 파일 입출력문을 쓰면 안됨.
cout << "I got " << n << endl; // 표준 출력 부분
2. 필요 없는 입출력을 하면 틀린 것으로 채점.
5. 채점 팀은 채점에 필요한 데이터를 파일로 만들어서 가지고 있다가 이를 학생의 수행파일에 파일 redirect를 통하여 수행파일에 입력시킨다.
6. 모든 문제는 숫자, 영어 문자들을 입력으로 받아서, 역시 숫자나 영어 문자를 출력하도록 되어 있다. 그래픽 출력은 없음.
* ["2thPCinCAUCSE/ProblemA"] - A번 문제 "성냥개비로 삼각형 만들기"
* ["2thPCinCAUCSE/ProblemC"] - C번 문제 "최소의 움직임으로 정리하기"
See Also ["컴공과프로그래밍경진대회"]
- CppStudy_2002_1/과제1/CherryBoy . . . . 21 matches
// 1번 프로그래밍 연습...
if(n==0)
cout << exam << endl;
else
cout << exam << endl;
0을 따로 계속 입력해야합니다..
// 2번 프로그래밍 연습...
cout << "캔디바의 이름\t:\t" << candy.name <<endl;
cout << "캔디바의 무게\t:\t" << candy.weight << endl;
cout << "캔디바의 칼로리\t:\t" << candy.cal << endl;
cout << string << endl;
cout << beany.str << endl;
//함수는 전달인자로 전달된 값들을 사용하여
//golf 구조체를 제곤된 이름과 핸디캡으로 설정한다
//함수는 handicap을 새값으로 초기화한다.
cout<<endl;
if(g.fullname==NULL)
else
cout << "Name \t:\t" << g.fullname << endl;
cout << "HandyCap\t:\t" << g.handicap << endl;
- Linux . . . . 21 matches
리눅스는 현재 컴퓨터의 커다란 흐름중의 하나이다. FSF에 의해서 지원을 받는 핵심적인 운영체제로 현재 기능적, 보안적 측면이 기존의 [Unix] 시스템에 버금갈 정도 발전하였고 [GNU]의 사상하에 만들어진 [GPL]을 따르기 때문에 무료로 사용이 가능하여 서버 운영체제로 많은 인기를 누리고 있다. 본디 리눅스라는 하는 것은 운영체제의 [Kernel] 명칭이며, 주로 접하게 되는 패키지 형태로 이루어진 배포판의 전체 구성을 리눅스라고 여기는 경우가 있으나 이는 리눅스의 광의적 정의라고 생각하면 될듯 싶다.
리눅스와 비슷한 운영체제로는 정통적인 유닉스 클론 이라고 평가받는 [:FreeBSD BSD]계열이 있다. BSD계열중 가장 잘알려진 [http://www.kr.freebsd.org FreeBSD]의 경우 실제로 과거부터 hotmail.com, yahoo.com, cdrom.com 을 운영해온 네트워킹에 대한 안정성이 입증된 운영체제이다. 실제로 2.6커널의 도입이전에는 BSD의 네트워킹이 더욱 뛰어나다는 평가를 받았지만 일반적인 의견이었으나, 많은 구조적 변경을 통해서 리눅스는 현재 이런 점을 극복하고 BSD와 리눅스를 선택하는 것은 운영자의 기호일 뿐이라는 이야기를 한다. 최근에는 리눅스를 데스크탑의 용도로 까지 확장하려는 노력의 덕분에 로케일 설정관련 부분이 대폭 강화되었으며, 사용자 편의성을 고려한 WindowManager인 [Gnome], [KDE] 등의 프로그램이 대폭 강화되면서 low-level 유저라도 약간의 관심만 기울인다면 충분히 서버로써 쓸 만한 운영체제로 변모하였다.
= 관련하여 진행된 프로젝트 =
[http://www.zeropage.org/pub/Linux/Microsoftware_Linux_Command.pdf 마이크로소프트웨어_고급_리눅스_명령와_중요_시스템_관리]
[http://www.kldp.org 리눅스 문서 한글화 프로젝트(KLDP)]
[http://j2k.naver.com/j2k_frame.php/korean/http://www.linux.or.jp/JF/ 리눅스 문서 일본어화 프로젝트(LJFP)]
[http://kltp.kldp.org 한국 리눅스 팁 프로젝트(KLTP)]
[BSD]도 상당히 유명한 편인데 이 커널의 제작자가 안알려진 것은 약간 특이한 일이라고 생각할 것이다. 이유인 즉은 BSD는 현재 메인테이너들에 의해서 커널이 관리되기 때문이다. 리눅스 커널은 커널 메인테이너 들을 의견의 제시를 하지만 실제로 방향을 결정하는 최종 결정권자는 리눅스 커널의 최초 개발자인 리누즈 토발즈이다. 그렇지만 BSD는 세계에 있는 BSD메인테이너(커미터)중에 몇명이 선발되어 커널의 개발을 주도하고 운영되기 때문에 사실 어떤 한사람의 이름이 특별히 나올 여지가 많지는 않다. 리누즈 토발즈는 좋은의미의 독재자라고 불리기도한다.
- 데블스캠프2003/다루어볼문제와관련세미나 . . . . 21 matches
* 회의 때 나왔던 주제들 입니다. OOP, Computer System, 다양한 프로그램 언어 체험, 네트워크
* STL을 알려주는건 어떨까요? 좀 더 강력한 프로그래밍을 하는 방법을 다룰 수도 있을듯 한데...-[상욱]
* 작년 프로그램 잔치때 했던 여러 언어 중 하나를 골라서 뭔가를 짜보는 것도 괜찮을듯.. 여러가지 패러다임을 익히는 게 중요하다는 것을 알아서리.. --인수
* 계획을 말씀드리겠습니다. 여러 문제를 푸는것 또한 중요하지만, 큰(?) 프로그램을 다루는것도 괜찮은 생각 같아서 OOP를 2틀째 넣고 마지막날까지 팀으로 연속해서 만들어 데모를 하는 방법도 생각을 했었습니다.(정모 때요..) -[상욱]
입장을 바꿔서 생각해보세요. 과연 1학년때 큰 프로그램을 짜라고 하면 짤 수 있을지... 선배들과 짠다고 하면 선배들이 대부분 짜버리는 부정적인 결과가 나올지도 모를것 같습니다. 페어를 통해 배우는게 많기는 하겠지만 이제 막 ToyProblems 에 재미를 붙일 사람들인데 너무 목표를 크게 잡고 있는 것은 아닌지요... 아마도 제가 큰프로그램에 대해 잘 몰라서 이런 말을 하는 것 같습니다. 큰 프로그램에 대한 명확한 설명을 바랍니다. --[창섭]
큰 프로그램이라고 말은 해 봤자 선배님들이 풀면 4~5시간이면 풀어버릴 문제가 될꺼 같습니다. 휴대폰 메뉴 만들기나 PDA기능 만들기 등 이런 조그만 프로그램을 묶어놓는 프로그램을 하면서 OOP를 조금이나마 느껴보라는 차원에서 하는 것입니다. 물론 같이 페어를 하는 선배님들은 정말 기초적인 것만 알려주는 식이고요 그 팀을 이끌어 가서는 안되겠죠? ^^; -[상욱]
* ToyProblems 와같은 식이면 좋을것 같은데요. 1학년 텀프로젝트가 있는데 그것 하나만 가지고도 SP, OOP 등의 프로그래밍철학과, STL 등을 다루기에 좋을것 같습니다. ([http://zeropage.org/pds/200361434244/2003C++TrmPrjSpec.ppt spec]) SP 와 OOP 는.. 누가할지.. 맡게되면 고생을할수도 있겠군요. 아래 JuNe 선배님의 CSP 나.. Tuple Space (전에 P2P 관련 문서에서 본것같은 기억이..-_-a ) 등과는 약간 맞지 않을수도 있겠지만요. (그것은 다른 도메인의 문제와 다루는게 좋을듯합니다) - [임인택]
* 지나가다 잠시 말씀 드릴까 합니다. 아직 oop개념이나 프로그램 모듈화에 대해서 개념이 없는 분들에게 STL같은 것을 가르친다는 것은 약간 문제가 있지 않을까요? oop개념을 가르쳐도 구현 같이 base적인 경험이 없이 단지 가져다 쓰는것을 먼저 배우면 좋지 않을 것 같습니다. 1학년 분들 숙제 하는 것을 보니 모듈화 같은것을 가르쳐도 좋을 것 같은데. 많은 것을 가르치려고 하시는 것은 좋으나 능력에 적절하게 가르치는 것도 맞는 것 같군요. STL 같은 걸 가르치는 건 그 다음이 되었으면 좋겠구요.. 내부사정을 잘 모르니 틀리다 싶은 말이면 걍 흘려보내세요. 지우셔도 상관 없구요. ^^ - 00 나현철
* 네. 현철이형 그래서 제가 생각한게 일단 동적 배열의 확실한 이해와, 링크드 리스트를 구현해보게 한다음에, 이들 지식의 선행으로 STL을 가르치려 하려구 그랬거든요. 위 두가지만 확실히 이해할 수 있다면 STL의 기본적인 (vector나 list같은) 것은 가르쳐도 무방하다고 생각합니다. --[인수]
* 저는 STL 같은 것은 그냥 할수 있을 만큼 사용할줄만 알면 되다고 생각합니다. Library 가 제공하는 것은 우리에게 좀더 고차원적인 사고에 전념할수 있는 것이 겠지요. 배열의 길이에 신경쓰지 않는 것만으로, C++에서 얼마나 무한한 사고가 가능할까요? 학교 교제는 C++을 가르치는 것이 아니라, C에다 어떻게 충돌을 일으키지 않고 문법을 추가시켜 C++이 되었는가를 가르치기 때문에 이런 기회는 필요 할것 같습니다. 아마 궁금한 사람은 STL의 소스를 보겠지요. 사족으로 STL은 OOP보다 Generic Programming의 관점에서 구현되 었습니다. --NeoCoin
* 도큐먼트나 튜토리얼을 이용하는 방법을 알려주는 것도 괜찮은 것 같습니다. 새내기들에게 MSDN 에서 검색을 하는 것을 알려줬더니 단지 영어라는 이유로 겁부터 먹고 사용을 못하더군요. 어떠한 주제를 던져주고 이러한 것들을 스스로 찾아서 사용하는 방법을 알려주는 것도 스스로 공부를 해 나가는데 있어서 좋은 경험이 되지 않을까 합니다. -- [상욱]
오늘 밤에 가능하나요? 중대로 가도록 하죠. 길게 할 건 아니고 딱 한시간만. --JuNe
- 전시회 . . . . 21 matches
넉넉히 1시 이후에 가는 것으로 생각하고 있습니다. --[Leonardong]
오늘 전기전자공학과학회의 전시회를 보았는데 재밌어보인다. 우리도 그런 거하면 괜찮을 듯. 돈은 별로 안들어보이는데.,우리가 화드웨어가 필요한 것도 아니고..--[강희경]
수준 높은 작품들이 많습니다. 특히 제로페이져인 김정욱형의 작품이 기대되네요. --[강희경]
* 음료수를 공짜로 나눠준다.
* 출석 프로그램의 경우 이름순 정렬이 되지 않는다.
* 세균전의 경우 더 이상 둘 곳이 없을 때 게임이 끝나지 않는다.
* 3D지형 프로그램의 경우 지형의 끝에 도달할 경우에도 계속 전진이 가능하다.(좌표의 증가)
* 이퀄라이져 프로그램의 경우 마이크를 끈 상태에도 이퀄라이져가 움직인다.
* 화상 채팅 프로그램의 접속 불가.
* 설명해주는 오퍼레이터가 프로그램을 잘 모른다. 프로그램 개발자가 직접 오면 좋지만, 그렇지 못한 경우 좀더 상세한 설명이 있으면 좋았을 듯 하다.
* 3D지형 프로그램의 효과를 볼 수 있게 비교했으면 좋았을텐데...
이름 자체가 fast인 만큼. 다른 프로그램보다 빠르다는 것을 비교해서 보여주면 좋겠죠 --[강희경]
프로그램의 성능을 볼수가 없었죠 3.9기가 씨피유에 지포스2 에서 그 정도 화면이 끊긴다면 그게 더 이상한 ~_~ --[김홍선]
=== 중앙대 컴퓨터공학과 프로그래밍 전시설명회 ===
* 학교가 너무 작았다. 기대와 다르게 별로 이쁜 여자가 없었다. - [이승한]
- 제로페이지는 . . . . 21 matches
'''제로페이지는 ... 이다.'''
* 제로페이지를 설명해보자. 제로페이지(ZeroPage)페이지에 기록된 소개글은 소수의 머리에서 나온것일 뿐이다. 공통의 합의를 도출해 보고 싶다. 도대체 제로페이지의 정체는 무엇인가.
* 제로페이지는.. 학회..를 가장한.. 친목모임?? 은 아닌것 같구요 혼자서 하면 의지가 무너질것 같은 일들을 같이 해줄수 있는곳... --선호
* ["제로페이지는"] 중앙대학교 컴퓨터공학과의 정학회가 되면 좋겠고, 학생들간 컴퓨터공학에 관련한 학술적 정보를 효율적인 동시에 자유롭게 교류할 수 있는 시스템이 되면 좋겠다. --류상민
* ''현재로써의 제로페이지는(개인적 바램을 제외하고 말한다면) 중앙대학교 컴퓨터공학과 내의 전공 관련 학술모임으로 과내 활동단체 중 하나이다.'' 맞을까요? ^^;; 제로페이지의 역할보다는 무엇인지라는 것에 입각했습니다.--창섭
* ["제로페이지는"] 우선 중대 컴공이라는 이름하에 지원을 받으며 지도 교수가 먼저 생겨야 한다. 좀 주제와는 떨어진 얘기 였지만 나로선 이게 우선시 되어야 할것 같다. 이름은 있되. 실체가 없는 듯 하다란 느낌이다. --["erunc0"]
* 제로페이지는 중대 컴공이라는 이름하에 지원을 받으며 지도 교수님(이찬근 교수님)이 함께 하고 계십니다. -[김태진]
* ["제로페이지는"] ["제로페이지의장점"] 때문에 제로페이지이다. 그 장점을 살려나가야 한다.
* ["제로페이지는"] 같이 공부하는 사람들의 모임이다. 서로 가르쳐주고 배우면서 학과 공부로 모자란 지식을 얻을 수 있는 문화가 전해 내려온다. --[Leonardong]
* [제로페이지는] 자신의 장점을 발산하고 타인의 장점을 흡수하는 유기적인 개체들의 집합이다. - [임인택]
["제로페이지분류"], ["토론분류"]
- HelpOnUserPreferences . . . . 20 matches
User``Preferences에서 설정하실 수 있는 것으로는 다음과 같은 것이 있습니다.:
* '''[[GetText(Name)]]''': 사용자의 실제 이름 혹은 별명. WikiName 형식으로 만들면 편리합니다.
* OpenID를 지원하는 경우는 OpenID를 쓰실 수 있습니다.
* 웹상의 비번은 쉽게 노출될 가능성이 많으므로 가능한 노출되어도 큰 문제가 되지 않을 비밀번호를 사용하시기 바랍니다.
* '''[[GetText(Password repeat)]]''': 초기 사용자 등록시에 나타납니다. 바로 위에서 입력했던 비밀번호를 확인하는 단계로, 조금 전에 넣어주었던 비밀번호를 그대로 집어넣어 주시면 됩니다.
* '''[[GetText(Email)]]''': 자주 쓸 이메일 주소. 이메일 주소를 넣어주면 원하는 위키페이지에 대하여 그 변경점을 구독신청하거나 취소하실 수 있습니다. 비밀번호를 잊으셨을 경우에도 이 이메일 주소를 사용해 새로운 비밀번호를 등록하실 수 있습니다.
* 이메일 주소는 반드시 고유해야 하며, ACL 설정에 따라서는 이메일 주소를 반드시 필요로 하는 경우도 있습니다.
* '''[[GetText(User CSS URL)]]''': 자신이 원하는 CSS로 변경하고 싶을 경우에 사용합니다.
* '''[[GetText(Your time is)]]''': 원하는 시간대를 설정하면 자신이 원하는 시간대로 시간이 표시됩니다.
* '''[[GetText(Preferred language)]]''': 기본 언어 바꾸기 ( <!> 모니위키에서 미지원) 기본 값은 브라우져 세팅에서 가져오며, 이 설정을 바꾸면 위키위키의 여러 메시지가 언어 설정에 맞게 보여집니다. 이 설정을 바꾸면 메일로 날아오는 알림 메일의 언어도 언어설정에 맞게끔 날아오게 됩니다.
* '''[[GetText(Subscribed wiki pages (one regex per line))]]''': 모든 페이지의 변경알림을 받아보고 싶은 경우에 '''`.*`''' 를 집어넣으시면 됩니다. (위키위키가 많은 변경이 있는 경우 권장하지 않습니다.) 각 페이지를 보고싶은 경우에는 각각의 페이지 이름을 줄 단위로 넣으시면 됩니다. 정규식에 익숙하신 사용자의 경우에 정규식을 사용하실 수도 있습니다. 설정에 따라서 상단의 아이콘 툴바에 [[Icon(email)]]이 나타날 수 있으며, 이메일 아이콘을 누르면 해당 페이지를 구독하는 폼이 뜨게 됩니다.
- Slurpys/김회영 . . . . 20 matches
if(result[j])
else
cout<<endl;
cout<<"END OF OUTPUT\n";
if(isSlimpy(string,nowPointer,arraySize))
if(isSlumpy(string,nowPointer,arraySize))
if((*nowPointer)+1==arraySize)
if(isNextCharacter(string,nowPointer,arraySize,'A'))
if(isNextCharacter(string,nowPointer,arraySize,'H'))
else if(isNextCharacter(string,nowPointer,arraySize,'B')
else if(isSlumpy(string,nowPointer,arraySize)
if(isNextCharacter(string,nowPointer,arraySize,'D')
if(isFollowF(string,nowPointer,arraySize))
if(isNextCharacter(string,nowPointer,arraySize,'G'))
if(isSlumpy(string,nowPointer,arraySize))
if((*nowPointer)+1>=arraySize)
if(count>0)
if((*nowPointer)+1>=arraySize)
if(string[(*nowPointer)+1]==checker)
- Slurpys/문보창 . . . . 20 matches
힘들게 버그를 잡고 통과. 재귀함수 사용시 여러가지 통로(?)를 잘 관리해 줘야한다.
if (isSlurpy(str, index))
else
cout << "END OF OUTPUTn";
if (!isSlimp(str, index))
if (!isSlump(str, index))
if (index != strlen(str))
if (str[index++] != 'A')
if (str[index] == 'H')
if (str[index] == 'B')
if (!isSlimp(str, index))
if (str[index] == 'C')
else return false;
if (!isSlump(str, index))
else if (str[index] == 'C')
if (!(str[index] == 'D' || str[index] == 'E'))
if (str[index] != 'F')
if (str[index] == 'G')
if (!isSlump(str, index))
else
- 루프는0부터? . . . . 20 matches
== 루프의 카운트의 초기값을 0으로 설정하는 이유 ==
대부분의 경험있는 C++프로그래머들은, 처음에는 이상하다고 생각할만한 프로그래밍 습관을 가지고 있습니다. 그것은 바로 번호를 매길 때에 언제나 1부터 시작하는 것이 아니라 0부터 시작한다는 것입니다.
첫번째 것은 0부터 번호를 매기고 !=를 사용하는데 반해, 두번째 것은 1부터 번호를 매기고 <=로 비교합니다. 반복횟수는 둘다 동일합니다. 두번째 것보다 첫 번재 것을 더 성호하는 이유가 있을까요?
보통 비대칭형 범위는 대칭형 범위보다 더 사용하기 쉽습니다. 왜냐하면 다음과 같은 중요한 속성이 있기 때문입니다. [m, n)과 같은 형식의 범위는 n-m개의 요소들을 가지며 [m,n]의 형식은 n-m+1의 요소들을 가집니다. 따라서 [0, rows)에서 요소들의 개수는 직관적인데 반해, [1, rows]에서 요소들의 개수는 덜 직관적 입니다. 이러한 속성차이는, 특히 빈 범위의 경우에 더 뚜렷합니다. 만약 비 대칭형 범위를 사용한다면, 빈 범위를 [m,n)으로 표현할수 있지만, 대칭형 범위에서는 [n, n-1]을 사용해야 합니다. 범위의 끝이 시작보다 더 작을수 있따는 가능성은 프로그램 설계시 끝이 정의되지 않아 버리는 문제를 야기 시킬수 있습니다.
지금까지 r개의 행을 출력했따고 표현할 수 있기 때문입니다. 만약 1부터 번호를 매긴다면? 이제막 r번째 행을 출력하려는 찰나라고 정의할 수도 있겠지만, 그러한 구문은 불변식으로 정당치 않습니다. 왜냐하면, while이 조건식을 마지막으로 검사할때, rows+1이 되기 때문입니다. 이때 우리가 원하는 것은 rows행만을 출력하는 것 입니다. 따라서 우리는 r번째 행을 막 출력 하려던 것이 아닌 셈이 됩니다. 지금까지 r-1개의 행들을 출력했다고 불변식을 정의할 수도 있을 것입니다. 하지만 불변식을 그런식으로 정의 햇다면, r을 0부터 시작시켜 단순화 시키는 것이 더 낫지 않을까요?
사소한 것일지 모르지만, 루프가 끝날 때 우리가 짐작 할 수 있게 되는 프로그램의 상태 정보에 영향을 줄 수 있습니다.
조건식이 r!=rows라면, 루프가 끝날 때 r==rows라는 사실을 알수 있습니다. 불변식은 r개의 행을 출력했따는 사실을 말해 주기 때문에, 정확히 rows개의 행을 출력했다는 것을 알 수 있습니다. 한편, 만약 조건식이 <=rows라면, 그로부터 알 수 있는 사실은 최소한 rows개의 행을 출력했다는 사실 뿐입니다. 따라서 그 이상을 출력했을 수도 있는 것입니다. 0부터 번호를 매기게 되면 정확히 rows번의 반복을 수행했는지 확실히 하고자 할 때, R!=rows를 조건식으로 사용할 수 있습니다. 또한, 반복횟수가 rows번 또는 그 이상이 되기만을 원한다면, r<rows를 사용할 수 있습니다. 만약 1부터 번호를 매기다면 최소 rows번의 반복만을 원할때 r<=rows를 사용할 수 있습니다. 하지만, rows가 정확한 숫자가 되도록 하려면 어떻게 해야 할까요? 그런 경우에는 좀더 복잡한 조건식인 r==rows+1과 같은 방법을 사용 할수 있습니다. 하지만 이렇게 복잡하게 해서 얻을수 있는 이득은 거의 없습니다.
- 문제풀이/1회 . . . . 20 matches
책에서 숫자를 가지고 장난 친경우는 없는것 같아서...
1. 입력 3가지수를 받아서 if문을 이용하여 최대값 최소값을 출력하는 프로그램을 작성하세요. DeleteMe)스펙이 if문의 언급은 잘못된것 아닌가요?
2. 1 을 활용하여 10개의 입력중에 가장 최대, 최소 값을을 출력하는 프로그램을 작성하세요.
Equivalent to eval(raw_input(prompt)). Warning: This function is not safe from user errors! It expects a valid Python expression as input; if the input is not syntactically valid, a SyntaxError will be raised. Other exceptions may be raised if there is an error during evaluation. (On the other hand, sometimes this is exactly what you need when writing a quick script for expert use.)
If the readline module was loaded, then input() will use it to provide elaborate line editing and history features.
if count != 0 :
if mx == None :
else :
else :
if mx == None:
else :
v.append(input())
1. 다음과 같은 공백으로 구분되는 임의의 숫자 입력이 주어질때 최대, 최소값을 출력하세요.[[BR]](데이터 양은 [Python]과 머신이 처리할수 있는 범위내로 한정)
news.append(int(i))
이런 경우를 개선하기 위해서 map 함수가 있는것입니다. 이를 Haskell에서 차용해와 문법에 내장시키고 있는 것이 List Comprehension 이고 차후 [http://www.python.org/peps/pep-0289.html Genrator Expression]으로 확장될 예정입니다. 그리고 print 와 ,혼용은 그리 추천하지 않습니다. print를 여러번 호출하는것과 동일한 효과라서, 좋은 컴퓨터에서도 눈에 뜨일만큼 처리 속도가 늦습니다. --NeoCoin
- 10학번 c++ 프로젝트 . . . . 19 matches
0. 프로젝트의 이름은 10학번 c++ 프로젝트라 하고, 이는 프로젝트의 정기모임에서 변경될 수 있다.
1. 프로젝트의 정기모임(이하 모임이라 칭함)은 매주 일요일 오후 3시에 시작한다.
* 수능시계같이 간단하게 생긴놈 (지마켓에서 천원짜리로 팜 ㅇㅇ)
* 상호야 ㅋㅋ 내가 하는건 C++ 프로젝트로 분류하기 좀 애매함 ㅋㅋ 객체지향 프로젝트라고 보는게 맞음 ㅋㅋ - [박성현]
* 수능시계같이 간단하게 생긴놈 (지마켓에서 천원짜리로 팜 ㅇㅇ)
* 프로젝트 이름은 "내 컴은 소중하니까" 임
* 해결 된 게 ....없음 앞으로 걍 다 해결해야할거뿐임
* 수능시계같이 간단하게 생긴놈 (지마켓에서 천원짜리로 팜 ㅇㅇ)
* 헤더문제는 #pragma once 사용으로 해결된 듯 함.
* 프로젝트 명 10c++ 로 바꿈.
* 3부분 전부 연결 성공했으나, 초시계를 클래스로 묶으면 에러가 발생.
= 프로젝트 완료 (10.08.28) =
* 수능시계같이 간단하게 생긴놈 (지마켓에서 천원짜리로 팜 ㅇㅇ)
* 완벽하게 수능시계를 구현하진 못했지만.... 모든 기능이 제대로 제 위치에서 잘 돌아감.
- DebuggingSeminar_2005/DebugCRT . . . . 19 matches
자기가 짠 프로그램으로 돌려보고 누수 여부를 판단하기에 좋을 것이다.
|| _CRTDBG_CHECK_ALWAYS_DF || _CrtCheckMemory() 함수를 모든 new, delete 함수에 대해서 자동 호출 되도록 지정한다.[[BR]] 이 함수는 할당된 공간의 유효성을 지속적으로 체크한다. 즉 domainerror나 기타 메모리 access에 관한 부분을 검사한다. 대신 오버헤드가 상당하다. 그러나 그만큼 디버깅의 효율성을 높여줄 수 있다. ||
|| _CRTDBG_CHECK_CRT_DF || 내부적으로 사용되는 메모리가 디버그작업을 하는 동안 추적된다. ||
|| _CRTDBG_LEAK_CHECK_DF || 프로그램이 종료되는 시점에서 _CrtDumpMemoryLeaks()를 호출. 메모리 해제에 실패한 경우 그 정보를 얻을 수 있다. ||
''_CRTDBG_ALLOC_MEM_DF 는 기본적으로 on, 기타 플래그는 디폴트 off이므로 bitwise 연산자를 이용해서 적절하게 플래그를 설정해야한다.''
MFC에서는 기본적으로 로드하지만 콘솔에서는 사용자가 직접 지정을 해줘야 로드한다.
''crtdbg.h는 ASSERT, ASSERTE라는 메크로 함수를 생성한다. 둘의 차이점은 ASSERTE는 assertion 표현을 보고하고, 다른 것은 하지 않는 다는 것이다.''
''다중 목적지 지정은 flag 설정과 마찬가지로 | 연산자를 통해서 가능하다.''
|| _CRTDBG_FILE_STDERR || 표준 에러 스트림으로 전달 ||
|| _CRTDBG_FILE_STDOUT || 표준 출력 스트림으로 전달 ||
대체로 클래스에서의 메모리 유출은 동적 멤버 변수들이 만들어졌을 때 해야하는 '삼의 법칙'을 지키지 않는데서 비롯되는 경우가 많다.
동적 멤버변수를 사용하는 경우에는 대입, 할당 생성자, 소멸자를 반드시 만들어야한다.
DCRT를 켜고 끄는 것에 따라서 프로그램의 수행속도의 차이가 상당하다. STL때문인지도 모르겠지만. - [eternalbleu]
- SharedSourceProgram . . . . 19 matches
소스공유 프로그램(Shared Source Program)을 통해 주요 MS 제품군의 소스에 접근할 수 잇는 권한을 획득한다. 특히 소스공유 프로그램은 현재 한국과 호주 양국 MVP에게만 부여된 권한이다.
국내에서 MVP가 되고 싶다면 본인이 한국MS MVP 웹사이트에서 신청서를 다운로드해 담당자에게 접수시키면 된다. 현재 국내에서는 1년에 세번 선발하며, 한국MS 내부 심사 1차례와 두 차례의 MS 본사 심사를 통과해야 최종적으로 MVP 인증을 받을 수 있다.
MVP만의 뉴스그룹에서 창업한 경우도
리눅스를 정부 프로그램으로 채택하는 국가들이 세계적으로 늘어나고 있는 가운데, 마이크로소프트(MS)가 오피스 소스코드 공개를 통해 오픈소스 진영에 적극 맞서고 있다.
MS는 3년 전부터 `소스공유 이니셔티브'(Shared Source Initiative)라는 프로그램을 통해 협력업체들과 정부에 윈도 소스코드를 공개해왔다. 특히 최근 몇 년간 각 국 정부가 오픈 소스 진영으로 전환하는 것을 막기 위해, 정부와 특정 회사가 소스코드를 볼 수 있는 프로그램을 확대해왔다.
공대차원 학회 지원 프로그램의 한가지 방법으로 Shared Source Program 이 준비되고 있다고 한다.
돈을내고 라이센스를 받아야 하는 프로그램이라 학교측에서도 그전에 컴공의 각 학회들에게 어떤 방식으로 SSP를 활용해 나갈지를 먼저 물어보고 실제로 진행을 할 예정인가보다.
빠른 시일안의 대답이 필요하므로 많은 학우들의 많은 이야기가 있기를 바랍니다.
이야기가 나온지 어느정도 지났는데, 어떻게 하기로 했나요?--[Leonardong]
- 새싹교실/2012/주먹밥/이소라때리기게임 . . . . 19 matches
= 프로그램 목적 =
//select에 정의된대로 정의된 함수들.
////////////////게임 프로세스 함수들.
int playerload(PLAYER *); //플레이어 로드
if(sora.skill.health <= 0 && player.skill.health <= 0){
else if(sora.skill.health <= 0){
else if(player.skill.health <= 0 ){
//select에 정의된대로 정의된 함수들.
printf("%s가 %s를 발로찹니다. 데미지 : %d 만큼 입혔습니다!\n",who->name,target->name,temp);
////////////////게임 프로세스 함수들.
if(select <= 0 || select > CLASSSIZE) select = -1;
printf("자힐 : 1 발로 차기 : 2 주먹 : 3 \n");
if(select > 0 || select <= SKILLSIZE){
if(select == menu[i].select){
if(select > 0 || select <= SKILLSIZE){
if(select == menu[i].select){
}//플레이어 로드
- AdventuresInMoving:PartIV . . . . 18 matches
워털루에서 대도시로 이사를 가려고 하는데, 이삿짐 트럭을 빌려서 갈까 생각 중이다. 그런데 요즘 기름 값이 하도 비싸서 가는데 기름 값이 얼마 정도 들지 미리 계산해보고자 한다.
이 트럭은 1킬로미터를 가는 데 1리터의 기름이 필요하다. 기름통은 200리터다. 워털루에서 트럭을 빌릴 때는 기름통이 절반만큼 차 있다. 나중에 대도시에서 차를 반납할 때도 기름은 절반 이상 채워 놓아야 한다. 그렇게 하지 않으면 렌탈 회사에 훨씬 비싼 비용을 지불해야 한다. 기름 값은 최대한 아끼고 싶지만, 그렇다고 해서 길 위에서 기름이 바닥나서 멈춰서는 일은 없도록 해야 한다.
첫 줄에는 테스트 케이스의 개수를 나타내는 양의 정수가 입력되며, 그 다음 줄은 빈 줄이다. 각 테스트 케이스는 정수만으로 구성된다. 첫번째 정수는 워털루에서 대도시까지의 거리를 킬로미터 단위로 표시한 것으로, 최대 10,000이다. 그 밑으로는 출발지로부터 거리가 가까운 것부터 먼 것 순서로, 주유소에 대한 정보가 입력되며, 최대 100개까지 입력될 수 있다. 각 주유소에 대해 워털루로부터의 거리(킬로미터 단위)와 휘발유 1리터당 가격(0.1센트 단위)이 입력된다. 리터당 휘발유 값은 최대 2,000(즉 200센트 = 2달러)이다. 서로 다른 테스트 케이스 사이에는 빈 줄이 입력된다.
각 테스트 케이스에 대해 워털루에서 대도시까지 가는 데 드는 연료비의 최소 값을 출력한다. 문제의 제약조건에 따를 때 워털루에서 대도시까지 갈 수 없으면 "Impossible"이라고 출력한다. 서로 다른 테스트 케이스에 대한 결과 사이에는 빈 줄을 출력한다.
음. 나중에 대도시에서 차를 반납할 때도 기름은 절반 이상 채워 놓아야 한다. 여기서 절반 이상이라는 조건에 주의를 하지 않으면 안됩니다. -- 보창
위의 테스트 케이스를 보면 처음에는 거리가 100인 주유소에 무조건 가야합니다. 그러면 기름은 0이 되고, 스터디때 말한 방법으로 하면 앞의 200까지를 살피고, 가장 작은 가격이 있는 곳인 (200, 777) 까지 갈 수 있는 기름 100을 넣고 출발합니다. 그러나 여기서 살펴보면 최적의 해는 여기서 50만큼의 기름만 넣고, 150의 지점에서 또 50의 기름을 넣어서 (200,777)에 가는 경우입니다. -- 보창
- KnightTour/재니 . . . . 18 matches
* 시작 지점을 (0, 0) 부터 (7, 7) 까지 64가지로 하여 순서대로 검색한다.
#if !defined(AFX_KNIGHT_H__B5234B12_3582_4CB8_8253_6ADFBE7B5E68__INCLUDED_)
#if _MSC_VER > 1000
#endif // _MSC_VER > 1000
#endif // !defined(AFX_KNIGHT_H__B5234B12_3582_4CB8_8253_6ADFBE7B5E68__INCLUDED_)
printf("\n\n경 로 :\n");
if (counter % 32 == 31)
if (direction > 7) { // BackStep
if (m_CurrentRow < 0 || m_CurrentRow > 7
* 와하하~ 페이지 이름 잘못 적어서 새로 만들다..ㅡ.ㅡ;;; -[재니]
나이트가 위치한 셀이 고립된 경우 BackStep 과정을 한 번 더 실행하면 루트를 찾는 시간이 훨씬 짧아짐.
* 셀이 고립되면 어차피 다른 경로로 접근할 수 없어서 BackStep 을 두번 한 건데...
몇몇 경우에서 broot-force 보다 더 검색을 많이 하는 경우도 발견됨.
- ZeroPageServer/set2002_815 . . . . 18 matches
* Terminal에서 Home키와 End키 먹도록 세팅
* 커널 컴파일시 필요없는 거의 모든 옵션을 뺐다. ISA지원이라던지, 구형 cd-rom, usb, ieee, agp 등 전부 제거 했다. 앞으로의 성능 차이가 기대된다.
* ZeroWiki - moinmoin 0.10 으로 돌리는중
* 개인 계정 100 MB (기본적으로 쿼터제한은 없으나 관리자가 관리)
* Server 프로그램을 자기 계정에서 고정 도메인 & IP 로 돌려볼 수 있다는 것도 큰 장점.
* 일정:2002년 8월 14일 오후 3시 부터 백업 시작 ~ 8월 15일 오후 대략 12시에 종료 시점으로 생각
* 남훈 ( 00,["zennith"] ) : 간다음에 php 곧바로 됨
* 이번 세팅의 목적은 '''좀더 편한 패키지 관리, 안정된 환경'''을 위해서이다. 그래서 상민이의 물망에 오른 것이 Zentoo Linux와 Debian, FreeBSD 정도 인데, 기본적으로 Linux를 택해서, FreeBSD와 Zentoo Linux와 Debian 비교에서 사용자 층과 편이성면에서 Debian이 더 우수하게 느껴져 선택하였다.
* 설치는 한달여 즈음 전에 릴리즈된 woody를 기본으로, 일본의 미러 소스 리스트를 이용해서 네트웍 설치를 하였다. Redhat측에서 시작부터 rpm에 대한 체계적 통합적 관리가 되었다면, 현재의 deb 패키지 처럼 완전 네트웍 설치를 할수 있었을텐데 안타까운 점이다.
* PC실 음식물 반입금지이고, 서버는 지켜야 겠고, 복도에서 짜장면 & 짬뽕을 pc실 의자와 책상 내놓고 차려 먹다가 다시 pc실로 들어가서 상차려 먹었다.
* 모듈 적재시 경로 설정
* 27일 새벽에 http.conf 파일에 권한을 주는 설정들로 시도. 불발
* redhat 계열에서는 apache 기본 유저가 nobody인데, www-data 로 바꾸었다.
* [[HTML( <STRIKE> jvm, jdk, mm.mysql, junit, servlet 설치, 경로 </STRIKE> )]] JDK 1.4.01
* [[HTML( <STRIKE> Moin 에서 Redirection 문제 </STRIKE> )]] : kernel upgrade로 해결 되었음 원인 불명확
* [[HTML( <STRIKE> ZeroPage 로그인 문구 </STRIKE> )]]
* [[HTML( <STRIKE> 사용자 기본 ls세팅 컬러로 </STRIKE> )]]
* hosts 에서 zp.zeropage 가 되어 있는 것이 문제 일듯. 서버 까지 왔다가 다른 곳으로?
- 데블스캠프2005/RUR-PLE/정수민 . . . . 18 matches
if next_to_a_beeper():
if not front_is_clear():
else:
else:
if front_is_clear():
if next_to_a_beeper():
else:
if next_to_a_beeper():
if not front_is_clear():
else:
if front_is_clear():
if front_is_clear():
if next_to_a_beeper():
먹기함수 제일밑에 ()는 수정중에 실수로 남아있던거 =0=;; 근데 저게있어두 실행이 돼긴돼는군;;;
그리고 여기서 재귀함수는 선을 그어서 그밑에있는건 무조건 실행해 더 낮은 줄에있어도 if이있으면 실행이 돼는 =0=;;
sort1이거 나만 있는 맵인가..;;ㅎㅎ 그러니까 이거 sort할곳 바로 옆에 벽이 있는 맵에서는 안된다우..ㅎㅎ
//추신: 러플이녀석 재귀호출이 이상한 방식으로 이루어 지는것 같다오. C를 써온 사람의 입장에서 볼때 불편하다는..
- 데블스캠프2009/금요일/SPECIALSeminar . . . . 18 matches
1. 프로그래밍 못하면 소프트웨어 개발 못하나?
* Tool을 효율적으로(편리하게) 사용할 수 있는 능력 - 성현
* 지원 : Satisficing (Satisfy + Sacrifice) - 여러가지 한도 안에서의 최적을 찾아낸다.
* 성현 : 남의 코드를 효율적으로 쓴다.
* 그 사람이 전문가인지 아닌지 객관적인 판단기준이 있는 직업. (프로그래머도 이에 속함)
* 그 분의 비결은? - 프로젝트가 끝나고 쉬는 기간 동안 단체로 진행했던 프로젝트를 홀로 재개발
* SI 업체의 경우 분석, 설계 후 Test가 다른 팀에 넘어가기도 하는 등 Feedback이 어렵다.
1. 결론 : 과제를 할 때 한번으로 끝내지 말고 실험 해보고 학습 목표를 갖는 자세를..
* 수동적이 아니라 능동적으로 신경써야(뇌가 활동해야) 학습이 잘 되기 때문. - myelin
* 화학, 물리학은 별로 중요하지 않다.
* 화면에 100000개의 랜덤한 원을 그리는 프로그램 - 어떻게 검증할 것인가?
* 반복문이 제대로 됐는지 체크 - 첫, 끝 index 출력, 에러 메세지 확인
* 주어진 정보로 error의 범위를 최대한 좁혀라!!
* 현재 학부생은 도서관에서 잡지나 논문을 공짜로 읽을 수 있다!
* 전문가에게 컨텍하라. - 특히, 외국의 경우, e-mail을 하면 80%는 답변을 해준다
- 새싹교실/2012/아우토반/앞반/5.10 . . . . 18 matches
* 포인터를 인자로 받는 함수
* Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
* 예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
위에 *p=&a에서 변수 p는 a의 주소 값을 가르키고 *p는 a의 주소안에 있는 값을 나타내므로
다섯번째 printf함수에서 변수 &p는 위에서 p가 a의 주소와 값을 받았으므로 a의 주소값이 나타남
따라서 결과로 4 4
printf("%d\n",p); --------->변수p에 있는 값을 출력하므로, 결과값은 1767348
printf("%d\n",*p); --------->*연산자는 포인터변수가 저장하는 변수의 주소에 저장된 값을 출력하므로 &a에 있는 값은 0이므로
ㄴ-----> *pA는 변수a에있는 값이므로 크기가 4, pA는 변수a의 주소값이므로 크기가 4
ㄴ-----> *pB는 변수 b에 있는 값이므로 크기가 4, pA는 변수b의 주소값이므로 크기가 4
ㄴ-----> *pC는 변수c에있는 값이므로 크기가 1 , pC는 변수c의 주소값이므로 크기가 4
ㄴ-----> *pd는 변수d에있는 값이므로 크기가 8 , pd는 변수d의 주소값이므로 크기가 4
- 정모/2011.7.18 . . . . 18 matches
== 프로젝트/스터디 ==
* 파일 비교 프로그램을 두주간 구현하는 것이 목표.
* 해결이 안 된 PIGS와 The lazy programmer를 다같이 풀기로 함.
* Free talking과 Theme talking으로 나누어 진행.
* 내일부터는 심슨의 한 장면을 따라해보는 시간도 가지기로 했음.
* 긍정적으로 행동하고 부정적으로 계획하는 능력이 필요합니다. '왜 일하는가'라는 책에서 읽었는데 아이디어나 목표를 정하고 추진하는 것은 긍정적인 사람에게(책에서는 가연성 인간이라고 표현했음) 계획과 평가는 부정적인 사람에게 맡기면 좋다고 했었습니다. 낙관적인 것도 현실적인 대안 없이는 그저 생각없는 사람일 뿐이라 생각합니다만 그렇다고 긍정의 자세를 버리는 것도 생각없는 사람인듯.. - [서지혜]
* ACM문제를 풀면서, 코드짜면서 생각하는게 더 빠른거 같아~ 라는건 헛소리라는걸 깨달았습니다. 코드를 짜기에 앞서 여러번 생각해보고 많은 예외상황을 고려한 후에 확신이 들때서야 코딩하는게 서너번씩 새로 짜지않고 바로 좋은 코드를 짤 수 있는 방법인거 같았습니다. -[김태진]
* 막상 떠오르는게 없어서 진짜 리빙포인트를 얘기해버렸는데... 근데 정말로 3근에 만 원 하는고기 콜라에 담가뒀다 먹으면 먹을만 하긴 해여모름지기 싼고기는 양념을 해먹어야 평타/ 다음엔 진지하게 생각해서올게요...-[고한종]
* '''문제를 인식했을 때 일단 멈춰서 생각하는 게 중요하다''' 매번 브레이크를 거냐라고 생각이 들겠지만 문제가 스스로 사라지는 일은 거의 없는데다 스스로 자라는 성질이 있어서.. 특히 팀플레이에서는 문제인식을 공유하는게 중요하다고 생각해요!! 나중에 피바람이 붑니다. - [서지혜]
* 후기는 작성한 순서대로 쓸 필요 없으니 새치기해도 괜찮아요~ OMS는 원래 거창한 세미나라기보단 관심사를 공유하는 코너라서 부담가질 필요 없답니다. 그리고 내용 전혀 빈약하지 않았어요!! - [김수경]
* 방학중 정모에서 제가 공부한 것을 공유하는 코너를 진행하겠다고 했는데 지난번엔 정모를 짧게 끝내느라, 이번주는 다른 공유들이 있어서 계속 안 하게 되네요 ㅋㅋ 사실 시간 떼우려고 생각해낸 코너라 못하게 되는 게 바람직한 것 같습니다(?) 이번 OMS는 리눅스 서버를 직접 돌려보는 것에 대한 내용이었는데 저는 1학년때 리눅스가 뭔지도 그냥 들은 정도로만 알고있었던 기억이 납니다. 그런데 새내기가 직접 서버 구축하고 그 내용을 정모에서 공유하는 걸 보니 부럽네요ㅠㅠ 저도 그런 경험을 해봤으면 좋았을텐데... - [김수경]
* 처음 OMS를 보면서 우리집 컴퓨터도 이제 6년차에 돌입했는데.. 저렇게 써야하나 라는 생각이 들다가 그냥 이상태로 쓰지 뭐 이런 생각이 든 -_-;;; 암튼.. 저도 1학년땐 리눅스를 사용하는 모습만 보고 직접 써 보지는 못했었는데 사용하는 모습을 보니 대단하다는 생각이 드네요. 리빙포인트를 하면서 학원에서 들었던 이야기랑 삼수때 겪었던 이야기가 믹스되어 말하게 되었네요. 원래는 그냥 학원 이야기만 하려고 했는데 -ㅅ-a Joseph Yoder 와의 만남 후기를 들으면서 스티브 맥코넬씨가 쓴 Code Complete라는 책에서 이야기 하는 내용과도 많이 겹치는구나 라는 생각을 했습니다. - [권순의]
* 한종이가 집에 남는 컴퓨터를 굴리는 방법을 OMS해 주었죠. 서버쪽은 아직 관심이 없어서 전혀 손대보지 않고 있었는데, 한종이는 진규한테 여러모로 들었다거나 혼자 여러가지를 연구해보아 많은 것을 알고 있는거 같았어요. (그러나 리눅스에 대한 관심이 일어나지는 (아직) 않았습니다..ㅠㅠ) 지원이누나가 해준 DB2에 대한 설명(과 IBM에 대한 설명)에서는 우리과에 관련된 스키마를 여러가지 얻을 수 있어 좋았던거 같았어요. 항상 ZP형누나들이 많은걸 알려주셔서 정말 즐겁네요. ㅎㅎㅎ-[김태진]
* 늦잠자서 늦게갔는데 마에땜에 중간에 나갔어요.. 흑흑 부외활동을 하면서 새삼 느꼈는데 지피 정모는 정말 좋은 활동입니다.진짜진짜로. 전공 관련 정보들도 얻을 수 있고 몰랐던 내용을 소개받을 수도 있고 남이 공부해서 떠먹여주기도 하고 외부 활동 정보도 얻을 수 있고 영어나 책읽기등 전공외 활동이야기도 들을 수 있고 이런 모임이 세상에 어디있나요ㅠㅠ 방학이라고 학교 오기 귀찮으신건 알겠지만 정말 유익한 자리입니다. 같이해요ㅠㅠ - [서지혜]
* 인원이 적었던게 아쉬웠습니다. 좋은 얘기는 그래도 여전히 많이 나오네요. OMS는 점점 익숙해져가는 단계인것 같아서 좋습니다. 갑자기 서버를 만들고 싶어지네요. 프로젝트를 발표하면 Addon을 만드는 결의를 다지고 갑니다. 다음주에도 좋은 정모가 되기를 - [김준석]
- CryptKicker . . . . 17 matches
텍스트를 암호화하는 방법 중에 보안상 취약하긴 하지만 흔하게 쓰이는 방법으로 알파벳 글자를 다른 글자로 돌리는 방법이 있다. 즉 알파벳의 각 글자를 다른 글자로 치환한다. 암호화된 것을 다시 원래대로 되돌릴 수 있으려면 두 개의 서로 다른 글자가 같은 글자로 치환되지 않아야 한다.
암호화된 텍스트가 한 줄 이상 입력되는데, 각 줄마다 서로 다른 치환 방법이 적용된다고 가정하자. 암호화 이전의 텍스트에 있는 단어는 모두 주어진 사전에 들어있는 단어라고 가정하고, 암호화된 텍스트를 해독하여 원래 텍스트를 알아내자.
입력은 한 개의 정수 n이 들어있는 행으로 시작되며 그 다음 줄부터는 한 줄에 하나씩 n개의 소문자로 쓰인 단어들이 알파벳 순으로 입력된다. 이 n개의 단어들은 복호화된 텍스트에 들어갈 수 있는 단어로 구성된 사전이다. 사전 뒤에는 몇 줄의 텍스트가 입력된다. 각 줄은 앞에서 설명했던 방법에 따라 암호화된다.
각 줄을 복호화하여 표준 출력으로 출력한다. 여러 문장으로 복호화될 수 있다면 그 중 아무 결과나 출력하면 된다. 가능한 풀이가 없다면 알파벳 모든 문자를 아스테리스크(*)로 바꾸면 된다.
영어는 26글자의 알파벳으로 이루어져있다. 단순히 짜맞추기엔 너무 많은 갯수이다. 하지만 그것들의 출현빈도는 각각다르다. z, q와 같은 글자는 1%미만의 출현비율이 나타나고,
e, i, o 와 같은 글자는 알파벳의 특성상 10퍼센트가 넘는 출현빈도가 나타난다. 기억나기론 E가 13퍼센트 정도였던것 같다. 이 규칙을 따르지 않는 문장과 단어가 있지 않나고 반박할지 모르지만 확률이다. 특수화된 경우의 문장과, 단어의 경우를 일반화 시키면 곤란하다. 이런 알파벳의 출현빈도는 몇줄의, 몇개의 단어에는 잘 맞지 않을테지만, 암호화된 문장과 문서가 많아질수록 그 출현빈도는 표중화된 확률에 거의 일치하게 된다.
- CxxTest . . . . 17 matches
C++ 의 경우는 언어차원에서의 리플랙션을 지원하지 않기 때문에 테스트를 추가하는 부분이 자바나 파이썬 등에 비해 상당히 귀찮다. 그에 대한 대안으로 [CUT] 등의 C UnitTestFramework 의 경우 외부에서 Perl 등으로 작성한 스크립트언어로 테스트실행과 관련한 Runner 를 코드제너레이팅하는 방법을 쓰고 있다.
CxxUnit은 [CUT]의 C++버전이라 봐도 약간 상통하리라 본다.(오래되기는 CxxUnit 이 더 오래되었던걸로 기억) Python 이나 Perl 의 코드제너레이터 스크립트를 이용, Runner화일을 만들어준다. 이를 컴파일하여 실행하면 테스트가 실행된다.
[1002]의 경우 요새 CxxUnit 을 사용중. 밑의 스크립트를 Visual Studio 의 Tools(일종의 External Tools)에 연결시켜놓고 쓴다. Tool 을 실행하여 코드제너레이팅 한뒤, 컴파일. (cxxtestgen.py 는 CxxTest 안에 있다.) 화일 이름이 Test 로 끝나는 화일들을 등록해준다.
if isfile(eachFile):
if fileName.endswith("Test"):
testFiles.append(eachFile)
if __name__=="__main__":
단점이 있다면 테스트 상속이 안된다는 점이다. 개인적으로 MockObject 만들어 인터페이스 테스트 만든뒤 RealObject 를 만들어 테스트하는 경우가 많은 만큼 귀찮다. (테스트의 중복으로 이어지므로) 어흑.
- GarbageCollection . . . . 17 matches
컴퓨터 환경에서 가비지 컬렉션은 자동화된 메모리 관리의 한가지 형태이다. 가비지 컬렉터는 애플리케이션이 다시는 접근하지 않는 객체가 사용한 메모르 공간을 회수하려고 한다. 가비지 컬렉션은 John McCarthy 가 1959년 Lisp 언어에서 수동적인 메모리 관리로 인한 문제를 해결하기 위해서 제안한 개념이다.
현재에는 기본적으로 Java, Dylan 과 같은 언어에서는 기본 명세로서 제공되는 기능이며, C++, C와 같이 수동적 메모리 할당으로 디자인되었지만 가비지 컬렉션 구현을 지원하는 언어들도 존재한다.
가비지 컬렉션의 주요 기술은 다음의 2가지로 구분할 수 있다.
1. 어떻게 앞으로 사용되지 않을 객체를 결정할 수 있는가?
2. 그 객체가 사용하는 객체의 저장공간을 어떤식으로 반환할 것인가?
2번째 경우에 대한 힌트를 학교 자료구조 교재인 Fundamentals of data structure in c 의 Linked List 파트에서 힌트를 얻을 수 있고, 1번째의 내용은 원칙적으로 완벽한 예측이 불가능하기 때문에 시스템에서 객체 참조를 저장하는 식으로 해서 참조가 없으면 다시는 쓰지 않는 다는 식으로 해서 처리하는 듯함. (C++ 참조 변수를 통한 객체 자동 소멸 관련 내용과 관련한 부분인 듯, 추측이긴 한데 이게 맞는거 같음;;; 아닐지도 ㅋㅋㅋ)
이거 말고도 문제가 상당하다고 하지만, 해석해야하는 관계로;;; 아래 링크에서 확인 바람.
2번째의 것의 경우에는 자료구조 시간에 들은 바로는 전체 메모리 영역을 2개의 영역으로 구분(used, unused). 메모리를 할당하는 개념이 아니라 unused 영역에서 빌려오고, 사용이 끝나면 다시 unused 영역으로 돌려주는 식으로 만든다고함. ㅡㅡ;; 내가 생각하기에는 이건 OS(or VM), 나 컴파일러 수준(혹은 allocation 관련 라이브러리 수준)에서 지원하지 않으면 안되는 것 같음. 정확하게 아시는 분은 덧붙임좀..;;;
- MFCStudy_2002_2 . . . . 17 matches
DeleteMe ) 우리도도 그러다가 결국 따분한 이름으로 끝났다는 --["상민"]
* [07/18] - 공지는 수시로 확인해 주세요. 부탁드립니다!
* [07/18] - 책 준비 제대로 못해서 죄송합니다.
* [08/08] - 8월 8일 모임 있었습니다. 참석율이 저조 해서 조금 실망이네요.. 숙제로 낸 부분까지 모두 완성해오세요 ^_^;
* 숙제는 제가 컴퓨터를 켜면 MSN으로 보내주세요 ㅡ.ㅡ/
* 목욜날 제로페이지 정모하는 날 아닌가? 정모시간이랑 우리 스터디 하는 시간이랑 겹치는거 아냐??
- 뭐 정모 있으면 다른날로 옮기면 되고 정모 방학때는 한달에 한번이라던데......
[[BR]]- 역시나..정모와 겹쳤군요... 그런데 어쩌죠.. 제가 여.름.성.경.학.교.교사로 걸리는 바람에 숙제를 하나도 못했거덩요..-_-;;-성재
* 책 샀어요... 근데 역시 생각했던데로 꽤 두껍더군요...ㅠ.ㅠ 으... 1407페이지라....ㅠ.ㅠ
책이 없어서 그런지 좀 정리가 안된 느낌이다. 책을 빨리 사야겠다..함수를 몇개 배운거 같긴 한데 기억이 잘 나질 않으니..기억나는 사람이 이 페이지에 내용을 올려놨음 좋겠다.그리고 앞으로 스터디 할 때 책을 중심으로 차근차근 진도를 나가면 좀 정리가 될것 같기두 한데..-은지 [[BR]]
''처음에는 책을 위주로 보는게 좋겠지만, vc를 이용해서 윈도우 프로그래밍을 할때에는 MSDN 을 참조하는 훈련을 하는것도 중요합니다. 책은 그리 중요하지 않지만. 문서가 중요하죠.~'' - 임인택
''덧붙임. 비단 윈도우 프로그래밍뿐만 아니라 다른 어떤 종류의 프로그래밍을 하더라도 레퍼런스(라고 해야하나.. 적당한 단어가 생각이 안나네요..;;)는 없어서는 안되죠'' - 임인택
열심히 해서 훌륭한 프로그램을~ ㅋㅋㅋ... -상욱["whiteblue"] [[BR]]
["프로젝트분류"]
- Randomwalk/조동영 . . . . 17 matches
//바퀴벌레를 8방향으로 이동하게 할 배열
cout << "직사각형의 가로크기를 입력해주세요(2 < X <= 40) :";
cout << "직사각형의 세로크기를 입력해주세요(2 <= Y < 20) :";
if (Xroom > 2 && Xroom < 41 && Yroom > 1 && Yroom < 21)
cout << "세로, 가로의 크기의 범위를 벗어났네요. 다시 입력하세요." << endl;
if (ibug >= 0 && ibug < Xroom && jbug >= 0 && jbug < Yroom)
cout << "바퀴벌레가 방의 범위를 벗어났네요. 다시 입력하세요." << endl;
if(room[i][j] == 0)
if (ibug + imove[random] <0 || ibug + imove[random] > Xroom-1 ||
else{
cout << endl;
cout << "\n총 이동한 횟수 :" << count << endl;
오랜만에 C++ 로 코딩해보는듯...ㅋ 재미있었당
2차원 동적 배열할때 벡터를 사용해도 좋음. [RandomWalk2/Vector로2차원동적배열만들기] 자료구조 숙제는 [STL]을 사용하면 더 편하게 할수 있는거 같다. - [상협]
편하기야 하겠지만 남발하는건 좋지 않음. 특히 자료구조 숙제같은 경우에는 :( - [임인택]
- TicTacToe/노수민 . . . . 17 matches
public class TicTacToe extends JFrame {
if (exit)
else {
if (100 <= e.getX()
if (!checkBoard(row, col)) {
if (turn == O)
else
if (checkWin()) {
if (turn == 1)
else
if (board[r][c] != 0)
else
if ((board[i][0] == O && board[i][1] == O && board[i][2] == O)
if ((board[0][0] == O && board[1][1] == O && board[2][2] == O)
if (board[i][j] == 1)
else if (board[i][j] == 2) {
- 덜덜덜/숙제제출페이지 . . . . 17 matches
* multiplication : 구구단 프로그램 *
{{{~cpp /*학생 다섯명의 세 과목 평균을 구하는 프로그램입니다.
* 프로그램 이에요^^ *
음... 이름을 알파벳 1글자 이상 입력하면 프로그램이 이상해져 버립니다 ㅋ (힌트 : 이중배열 or 구조체) - [조동영]
*5명의 성적을 입력받아 평균내는 프로그램!! *
말했잔니 ㅋ 5명의 국어, 영어, 수학 점수를 각각 받아서 A는 평균이 XX다 B는 평균이 XX다 이런식으로 5명 모두 출력하는거야
너가 지금 짠건 한명만 받고 한명의 평균만 낸거고 ㅋ 그렇게 5명의 이름을 모두 받기위해서 char name [5][10]; 이런식으로 2중배열로 메모리를 잡아주어서
/* 프로그램입니다. */
우오오 구조체로 처음한 사람이다아~~~ ㅋㅋ 베리베리굳!!! 내가 가르친건 아니지만 감개무량 ㅠㅠ 구조체 이해했다면 이번 숙제도 가능할거입니다 ㅋ- [조동영]
* 다섯명의 성적을 입력받아 평균을 내는 프로그램 *
'%c' 는 캐릭터 문자 하나(char)를 말합니다. '%s'로 바꾸면 문자열(string)을 받거나 표현할 수 있습니다. 즉, {{{~cpp scanf("%c", &n);}}}가 {{{~cpp scanf("%s", &n);}}}로. printf로 표현할때도 마찬가지입니다. --재동
이런식으로 각 학생의 점수를 넣을수 있습니다.
위에 이름까지 같이 함께 묶어서 넣고 싶으면 .. 이름은 타입이 다르기때문에 구조체라는것을 써서 같이 묶어서 넣을수 있습니다. 구조체는 나중에 배울겁니다. ^^ 그리고 주석을 사용안하고 변수명으로 의미를 알수 있게 해줄수 있다면 그게 더 좋습니다. 변수명이 조금 길어지더라도 주석 없어도 이해가도록 짜면 좋습니다.(리펙토링에 나오는 얘기..) 예를 들면 국어 성적 변수명은 KoreaScore 혹은 ScoreOfKorea 이런식으로 쓸수 있습니다. - [상협]
- 프로그래머가알아야할97가지/ActWithPrudence . . . . 17 matches
이터레이션 초반에 스케줄이 아무리 여유로워 보인다고 해도, 시간 압박을 다소 받는 건 어쩔 수 없다. “제대로 하기”와 “빨리 하기” 중 선택해야 할 경우, 나중에 다시 돌아와서 고칠 수 있다는 전제하에 “빨리 하기”를 선택하고 싶어지기도 한다. 스스로에게나 팀에게 또는 고객에게 이런 약속을 할 때에는 정말로 나중에 고치겠다는 뜻이다. 그러나 십중팔구 다음 이터레이션에서 새로운 문제가 나타나서 거기에 집중하게 되곤 한다. 이렇게 연기된 작업은 기술적 부채(Technical Debt)라고 알려져 있으며 이런 일에 익숙해져서는 안 된다. 특별히, 마틴 파울러(Martin Fowler)는 그의 기술적 부채 분류 체계에서 이를 의도하지 않은 기술적 부채와 헷갈려서는 안 되는 계획적인 기술적 부채라고 부른다.
기술적 부채는 대출과 마찬가지다. 그로 인해 단기적인 이익을 얻지만, 전액을 상환하기 전까지는 이자를 지불해야 한다. 이런 코드 내 지름길 때문에 기능을 추가하거나 코드를 구조조정하기 어려워진다. 이런 지름길은 결함과 안정적이지 못한 테스트 케이스가 자라는 밑거름이 된다. 이를 오래 방치하면 방치할수록 더 나빠진다. 수정을 하려고 할 때 즈음이면 코드를 구조조정하고 수정하기 훨씬 어렵게 만드는 그다지 좋지 않은 설계가 애초의 문제 위에 켜켜이 쌓여 있을 수 있다. 사실상, 다시 돌아가서 고쳐야 할 때는 일이 너무 심각해져서 반드시 고쳐야 할 때뿐이다. 그 때엔 일정이나 위험을 감당할 수 없어 고치기 어려운 경우가 다반사이다.
데드라인을 맞춘다거나 기능의 단편을 구현하려고 기술적 부채를 발생시켜야 할 때가 있다. 이런 입장이 되지 않도록 애써야 하지만, 이런 상황이 반드시 필요하다면 그렇게 하되, 다만 반드시 기술적 부채를 추적해서 재빨리 갚아서 급히 끌어내려야 한다. 그렇게 타협하기로 결정하자마자, 이슈 추적 시스템에 과업 카드나 로그를 작성해서 잊어버리지 않도록 해야 한다.
다음 이터레이션에서 그 부채의 상환을 계획한다면, 비용은 최소화 될 것이다. 부채를 상환하지 않고 놔두면 이자가 누적되며, 그 이자는 가시적인 비용으로 추적되어야 한다. 이렇게 하면 프로젝트의 기술적 부채가 사업적 가치에 미치는 영향을 강조하며 상환에 적절한 우선 순위를 줄 수 있게 된다. 이자를 어떻게 산정하고 추적할 것인가는 각각의 프로젝트에 달려있지만, 반드시 그것들을 추적해야 한다.
이 글은 [http://creativecommons.org/licenses/by/3.0/us/ Creative Commons Attribution 3] 라이센스로 작성되었습니다.
여지껏 과제를 하면서 "제대로 하기"와 "빨리 하기"중 "빨리 하기"를 선택한 적이 많았는데 요즘 그 선택들에 대해 후회하고 있습니다. 지금도 프로젝트를 진행하며 팀이 두 선택지 중 고민중인데 진행하다보면 "빨리 하기"가 더 매력적으로 느껴지는 것 같아 걱정됩니다. 이 페이지를 팀원들이 다같이 읽어보면 좋겠다는 생각이 드네요. - [김수경]
- C++Study_2003 . . . . 16 matches
* 여러가지 방법이 있겠지만... 이번엔 담임이 주로 가르치는 방법이 아닌 학생이 중심이 되어 공부하고 발표하는식은 어떨까요? 처음 몇번은 담임이 세미나를 하는 식으로 하고.. 다음부터는 학생이 주제별로 준비를 해서 발표하고.. 부족한 부분은 담임에 채워주는 방식.. --[상규]
* 나쁘지 않을 것같네. 나는 마음먹은 대로 프로그래밍을 짤 수 있도록, 후반부의 문법을 가르쳐 주었으면 좋겠다는 생각을 했는데. --[선호]
* 새로 담임으로 참가했습니다! 많이 부족할 거 같지만 열심히 하겠습니다... --영동["Yggdrasil"]
* 남은 친구들을 나눠야 하는데.. 어떤 방식으로 나눌까요?? --[선호]
* 개인적인 사정으로 회의를 참여 못해서 회의 결과를 모르겠습니다.
원래 회의때 스터디에 대한 이야기를 하려 했으나 스터디 희망자중 5명만 회의에 참석하여 이 5명으로 구성된 [5인용C++스터디]가 우선적으로 만들어진 것입니다. 나머지 분들도 스터디를 하시려면 두 그룹 정도로 나누어 스터디를 진행하시면 되겠습니다. 전부 한꺼번에 스터디를 하기에는 좀 인원이 많습니다. --[상규]
* 음.. -_-죄송합니다.. 영동이랑 연락을 하려다가 점점 늦어지네요.. 팀은 인수군과 협의한 대로 나눠볼께요 ^_^;;;
* 우리 팀은, 동일군의 의견으로 목요일 오후1시로 하겠습니다 ^_^. 정 안되겠다 싶으면 연락 주세요. --[선호]
[프로젝트분류]
- CubicSpline/1002/NaCurves.py . . . . 16 matches
controlPointListY.append(givenFunction(x))
if i == j:
else:
if (x >= self.controlPointListX[0]) and (x < self.controlPointListX[3]):
elif (x >= self.controlPointListX[3]) and (x < self.controlPointListX[6]):
elif (x >= self.controlPointListX[6]) and (x < self.controlPointListX[9]):
elif (x >= self.controlPointListX[9]) and (x <= self.controlPointListX[10]):
if ((self.pieceSize-1)*(i-1)+self.pieceSize) > self.getCountControlPoints():
return self.controlPointListX[self.getFirstPiecePoint(i) : self.getEndPiecePoint(i)]
def getEndPiecePoint(self, i):
if (x >= self.getXi(i)) and (x < self.getXi(i+1)):
if x >= self.getXi(len(self.controlPointListX)-2):
cplY.append (givenFunction(x))
if i>0:
matrixB.append([6 * ( self.deltaY(i)/self.deltaX(i) - self.deltaY(i-1)/self.deltaX(i-1) )])
tempY.append([0.0])
row.append(0.0)
matrix.append(row)
- JavaScript/2011년스터디/CanvasPaint . . . . 16 matches
if(ctx && flag){
if(drawmethod==1) drawLines();
else if(drawmethod==2) drawDotPoint();
if(lastImage1!=element.toDataURL()){
if(ctx && flag){
if(window.addEventListener){
if(!canvas){
//연필로 그리기
if(tool.started){
if(tool.started){
if(tool.started==false)
if(tool.started){
if(tool.started){
if(e.layerX || e.layerY == 0){
if(func){
- PyIde . . . . 16 matches
* 이름 : PyIde (PyIdea 로 하고 싶었으나.. 이미 sourceforge쪽에서 누군가가 같은 이름을 먹어버려서. -_-)
* 기간 : 새로 세울 생각. 단, 2-3개월 뒤에.
* Prototyping & 외부 공개소스 Review & Copy & Paste 하여 가능한한 빠른 시간내에 원하는 기능 구현법이나 라이브러리들을 연습하여 익힌뒤, Refactoring For Understanding 을 하고, 일부 부분에 대해 TDD 로 재작성.
* [Plex] - http://www.cosc.canterbury.ac.nz/~greg/python/Plex/ - 근데.. 몇몇 부분은 parser 모듈로만으로 충분할것도 같은데..
* [Eclipse] - [wxPython] 과 PDE 중 어느쪽이 더 효율적일까.. CVS 관련 기능들등 프로젝트 관리면에서는 Eclipse 의 Plugin 으로 개발하는 것이 훨씬 이득이긴 한데.. Eclipse Plugin 도 [Jython] 으로 프로그래밍이 가능할까?
''가능하다. Jython 스크립트를 Java Class 파일로 간단하게 바꿀 수 있다. 나는 IE 오토메이션을 이렇게 해서 자바 FIT에서 통합으로 관리하게 했었다. --JuNe''
아마 중간중간 학습할 코드들. 공부거리들. 하지만 중요한건 '지속가능한 속도로'
* http://www.exman.pe.kr/ExmanIDE/ - exman 님의 IDE. 마소 오픈디벨로퍼에서 개발기가 연재중.
* http://codespeak.net/pypy/ - 순수 파이썬으로 구현하는 python 이라고 한다. 관심이 가는중.
* 인터프리터에서 타이핑한 내용 화일로 저장하기 ( 이거 되는거 있나? python 사용법을 몰라서 )
[프로젝트분류]
- SwitchAndCaseAsBadSmell . . . . 16 matches
["가위바위보"] 구현 코드들을 보면 케이스 문을 많이 쓰거나 혹은 비슷한 구조의 if 문이 중복된 경우가 많습니다.
케이스문이 줄줄이 나오는 것이나 비슷한 구조가 반복되는 것이나 모두 "나쁜 냄새"(Moa:BadSmell )입니다. 조금이라도 나쁜 냄새가 나면 바로바로 냄새 제거를 해야 합니다. 예컨대, 반복되는 케이스문은 테이블 프로그래밍(Table/Data Driven Programming)으로 해결할 수 있습니다.
그리고, 사고의 도구들을 적극적으로 활용하기 바랍니다. 스테이트 다이어그램이나, 심지어는 x,y 좌표계를 사용하는 것, 혹은 서브루틴을 통해 문제를 소문제(subproblem)로 나누는 것도 아주 훌륭한 사고의 도구가 됩니다 -- 문제의 복잡도를 낮춰주기 때문이죠.
* 텍스트화일로부터 입력자료 읽고 해석하기
* 사람별로 이긴 횟수, 진 횟수 누적하기
if p1>=p2:
else:
사실은 이런 종적 상태로서의 프로그램이 중요한 것이 아니고, 어떻게 이런 프로그램에 도달할 수 있었는지, 그 사고와 프로그래밍의 과정이 중요합니다.
- VimSettingForPython . . . . 16 matches
set diffexpr=MyDiff()
function MyDiff()
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
silent execute '!C:Vimvim62diff -a ' . opt . v:fname_in . ' ' . v:fname_new . ' > ' . v:fname_out
endfunction
source $VIMRUNTIME/1002/EnhancedCommentify.vim
let g:EnhCommentifyUseAltKeys = "no"
let g:EnhCommentifyPretty = "yes"
- [Lovely]boy^_^/USACO/WhatTimeIsIt? . . . . 16 matches
ifstream fin("clock.in");
if(min >= 45)
if(hour != 12)
else
else if(min == 15)
else if(min%10)
if(min/10)
if(min/10 == 1)
else
else
else
fout << endl;
if(a[i] == ':')
string m(a.begin() + token + 1, a.end());
- 새싹교실/2012/햇반 . . . . 16 matches
하지만 학기초 공식적인 일정들이 많아서 따로 보강을 해야만 할 실정
민형이와 상영이가 총엠티 자봉단인 관계로 금요일 1시반으로 새싹반 변경
지금까지의 수업에서 했었던 내용을 집중적으로 복습
당시 6층 피씨실에서 없었던 관계로 VS를 이용하여 수업
1. 프로젝트 생성
2. 조건문
연습문제에서 했었던 간단한 별그리기를 기초로하여 좀더 어려운 별그리기 문제
저번시간에 했었던 순환문과 조건문 복습
민형이의 지각, 상영이에게 집중적으로 여러 예제를 스스로 구현하게함
민형:: 제가 C언어 시간때 공부를 열심히 하지 않아서 바로바로 진도를 따라가지 못하고 버벅댓지만, 앞으로 열심히 하겠습니다.
상영:: 전 아무것도 모르고 이 전공을 택했고 물론 c프로그래밍에 관해서도 아무것도 몰랐지만 별찍기나 구구단만들기 같은 것을 하다보니 C프로그래밍에 흥미가 붙었고 더 많은 것을 해보고 싶다는 생각이 들었습니다
- 압축알고리즘/희경&능규 . . . . 16 matches
ifstream fin("input.txt");
if(pass[i] != temp)
if(i!=0)
else
ifstream fin("input.txt");
if(i==0)
else
if(pass[i] < 48 )
ifstream fin("output.txt");
if(isalpha(pass[i]))
else
ifstream fin("output.txt");
if(i==0)
else
if(pass[i] == 45)
else
- ComputerNetworkClass/Exam2006_2 . . . . 15 matches
개별적인 기술의 상세 내용을 묻기보다는 전체 기술에 대한 비교과 차이점에 대한 이해를 중심으로 출제.
(한마디로 넓게 공부해야 결과 좋을듯함.)
인터넷 보안 관련된 문제에서 문제로 출제 될 만하다고 생각했던 부분인 Authencation Protocol (3-way-handshake, keberos, using RSA)에 대한 내용역시 미출제되었음. 덕분에 시험 난이도는 낮아졌지만, PEM 의 구조에 대한 설명이 들어갔기 때문에 따로 관심을 가지고 공부한 사람이 아니면 약간 어려웠을지도 모르겠음.
authenticate(fabrication -> 3-way handshake, keberos, using RSA)
integrigy(modification -> keyed MD5)
3. PEM 으로 이메일 보낼경우, 보내지는 내용들 구조와 함께 설명. 같이 보내지는 첨부 파일은 a.jpg
일반적인 메일 전송 프로토콜의 이해와 MIME 프로토콜에 대한 간단한 이해. 그리고 E(MD(5), PrivateKeyOfSnd) 의 해석 방법과 계층적 인증에 대한 이해를 묻는 문제였음.
문제의 내용에 메일의 헤더와 구조를 나타내라는 말이 있기 떄문에 책을 참조하거나 일반적으로 받는 이메일의 구조를 한번 본뒤 시험을 보면 좋음.
Integrated Service(flow-based), Differentiated Service(service-based) 에대한 전반적인 이해를 하는 문제. 해당 기법에 WFQ를 적용하는 방법에 대한 이해를 묻는 문제로 약간 응용해서 적으란 것으로 보임. 책에 DS에 대한 설명은 WRED, RIO에 대한 설명만 되어있었고, 이 방식은 Queuing 에 의한 WFQ의 사후 처리가 아닌 사전 체리에 관련된 내용이었음. 솔직히 WFQ 왜 냈는지 모르겠음. -_-;;
- MagicSquare/정훈 . . . . 15 matches
끝까지 2차원 배열을 안쓰겠다는 일념으로 짰습니다~~..[[BR]]
cout << "몇개의 칸으로 마방진을 할까??(9까지만 됨) ";
cout << soo << "*" << soo << "으로 한단말이지??\n";
if(x == soo-1 && y == 0)
else if(y == 0)
if(ma[x][y] != 0)
else if(x == soo-1)
if(ma[x][y] != 0)
else
if(ma[x][y] != 0)
else
cout << endl << endl;
- One/주승범 . . . . 15 matches
if (n==3 || n==4 || n==7 || n==9 )
if ( a==1 || a==2 || a==3 )
else
if ( a==1 )
else if ( a==2 )
else if ( a==3 )
else
if ( a==1 )
else if ( a==2 )
else if ( a==3 )
else
- SpikeSolution . . . . 15 matches
주어진 문제에 대한 실험적인 프로그래밍.
어떻게 보면 우리가 일반적으로 하고 있는 것이다. Visual C++로 해당 라이브러리를 이용한 프로그래밍을 할때 우리는 어떻게 할까? 아마도 Visual C++을 2개를 띄울 것이다. 그리고 한 창에서는 해당 라이브러리가 제대로 작동하는지, 대강 값들을 넣어보고 이리저리 제대로 원하는 일을 하게끔 여러 시도들을 하게 될 것이다. 그렇게 함으로서 미지인 부분에 대한 대강의 선을 잡아놓는다.
(ex) DB를 연결하기 위해 DB를 Install 하기, DB 작동이 어떻게 되는지 query 날려보기. 해당 라이브러리가 어떻게 작동하는지 간단한 예제 프로그래밍 등
이러한 실험들을 XP에서는 Spike Solution이라고 한다. 다른 점이라면, 우리는 보통 실험 코드를 만든 뒤 실전 코드에 바로 붙일 것이다. 하지만 Spike Solution 의 경우는 '실험은 실험에서 끝난다' 에서 다를 수 있다. 보통 Spike Solution 에서 실험한 코드들을 메인소스에 바로 적용시키지 않는다. Spike Solution은 처음 계획시 estimate의 선을 잡기 위한 것으로 메인소스에 그대로 적용될 코드는 아닌 것이다. 지우고 다시 만들어 내도록 한다. 그러함으로써 한편으로는 학습효과를 가져오고, 실전 소스의 질을 향상시킬 수 있다.
- zyint . . . . 15 matches
MSN : {{{zyint 앳 zyint닷컴}}} >> 앳을 @로 닷컴을 .com으로 공백을 지운후 이메일 주소를 재구성 하세요.
|| 다빈치코드(일러스트레이티드 버젼;;) || . || ★★★★ || 음.. 다빈치코드는 상하권으로 나뉜거랑 이책이랑 두번봤는데... 아무래도 사진을 직접 보면서 읽으니 [[BR]] 이해가 잘갔다-_-(사실 글로만 읽다보면 이해가 전혀 안되는 부분도 있었고;; [[BR]]최후의 만찬 그림을 책을 읽으면서 바로 바로 [[BR]] 보고싶었엇는데 사진이 포함된 이책은 좋았던거 같다.ㅋ [[BR]]음.. 전체적인 줄거리와 책 속에 있는 지식은 나름대로 만족스러웠다. ||
|| 웰컴투동막골 || ★★★★★ || 대박작품-_-; 제목이나 포스터에서 풍겨오는 찌질함은 영화를 보면 바로 사라진다. [[BR]]감독 특유의(이 영화에서 처음보는것인듯) 아웃포커싱 기술로-_-; 감독의 쏀쓰가 물씬 풍겼다! 정말 최고의 영화! ||
|| 로봇 || ★★★ || 가족끼리 보면 좋을거같다. 뭐 내용이야 뻔하지만 그래도 해피엔딩이라 그런지 재밌다.. [[BR]]으흐흐흐.. 로봇이 3D그래픽으로 만들어졌는데 흠 어색한점은 전혀 없었던거 같다.. ||
= 참가 프로젝트 =
검색로봇 차단방법 : [Robots Exclusioin]
엠티때 프로젝트 하나 할까하고 말했지? 음.. 그거 진짜 사람 모을까? 할래? -[조현태]
- 만년달력/방선희,장창재 . . . . 15 matches
if (m == 0 && start < 7)
if (m >= 1)
if (calen[m][n] <= def_max_month(year,month))
if (m == 0 && start < 7)
if (m >= 1)
cout << endl;
cout << endl;
case 2 : if (temp_year % 4 == 0)
if (temp_year % 100 == 0)
if (temp_year % 400 == 0)
if (temp_year % 4000 == 0)
else
else
else
else temp_month=28;
- 새회원을받으면 . . . . 15 matches
AnswerMe 5월 10일 위키설명회를 하면서 새회원을 받기로 하였는데...여러가지 생각이 떠오릅니다. ZeroPagers 여러분의 의견을 듣고 싶습니다.
SeeAlso [회원자격], [ZeroPage회칙], [정모/2003.3.5], [열린제로페이지]
* 그들은 제로페이지에서 무엇을 할 수 있을까?
* 제로페이지에서 새회원의 위치는 어디일까?
* 새회원/기존회원을 준회원/정회원 개념으로 볼 것인가?
* 제로페이지에서 활동하지 않았던 사람
* 앞으로 제로페이지에서 활동을 하려는 의사를 밝히는 사람
입니다.(둘은 and로 묶입니다.) ZeroPagers 여러분은 어떻게 생각하시나요? --[Leonardong]
* 04학번에게 이상한(?) 소문을 들었습니다. 그대로 적어봅니다. ' ''제로페이지는 들어가면 졸라 빡시다. 열심히 활동 안 하면 준회원되고, 제로페이지에서 짤린다.'' '라고 하더군요. --[Leonardong]
* 왜냐면, 열심히 하는 사람과 열심히 하지 않을 사람이 같이 섞여 있으면 서로 피곤하기 때문이지. 유유상종을 잊지 말게나! --[zennith]
- [http://netory.org 네토리]처럼 정기적(또는 비정기적)인 무언가가 있었으면 좋겠습니다. 굳이 그것이 모임의 형태가 아니더라도 ''새내기들이 자신이 제로페이지에 지원하였다는 사실을 잊어버리지 않게''해 주는게 필요하지 않을까요? 예를 들면, 숙제를 내준다던지, ProgrammingParty 같은 것들이요. - [임인택]
[제로페이지분류]
- 튜터링/2013/Assembly . . . . 15 matches
* 교수학습센터에서 진행하는 튜터링 프로그램에 참가해 튜터링 활동을 진행
* 이 과목에서 가장 주로 다루는 어셈블리 언어를 사용하는 이유와 현재 어떤 곳에 사용되는지, 특징은 무엇이며 장단점은 무엇인지 알아보자.
* 어셈블리 과목의 특성상 하드웨어와 소프트웨어의 이해가 동시에 필요한데, 이 부분에 관해 알아보기 위해 하드웨어가 어떤 식으로 명령을 처리하는지 알아보자.
* 어셈블리 언어란 무엇이며, 왜 쓰고 장단점은 무엇인지 써보자.(서술식으로 자신이 아는 내용/책에서 찾아본 내용을 써내려가보자.)
* 컴퓨터 구조가 어떤 식으로 되어있는지 써보고, CPU에는 어떤 것이 있으며 각각 무슨 일을 하는지 써보자.
* 재귀함수에 관해 써보고, n!을 재귀함수로 작성할 때 무엇을 고민해야하는지 써보자.
* 0과 1000 사이의 정수를 입력받아 모든 자릿수를 더하여 출력하는 프로그램을 짜보자.
* 소문자를 대문자로 바꾸는 프로그램을 작성해보자.
* Virtual, 2진수, 메모리 공간, ALU연산, Pipeline, Multitasking, 보호모드, Little-endian, RISC&CISC
1. 10진수값 223을 16진수 값으로 변환하세요.
1. 십진수 14에서 5를 빼는 과정과 결과를 2진수로 표현하여 쓰세요.
* 어셈블리언어의 기본문법을 보고, 어떤 프로그램이든 컴파일시키고 실행시켜보자.
1. 각 배열을 그림으로 표현하고, 다음의 실행결과가 나오도록 괄호를 채우시오.
4.다음 방식(indirect, indexed)로 코드를 작성하고, 설명하시오.
- 프로그래밍잔치/첫째날 . . . . 15 matches
프로그래밍 잔치 첫째날 계획.
I. '''ZeroWiki Name Space 설명, 토론 앞으로의 발전 방향 토론 (["페이지이름"]) '''
* '''Think Difference 낯선 언어와의 조우'''
* 다양한 언어 혹은 Frameworks로 문제 풀기
* 우리가 졸업을 하면서 접하는 언어의 수가 얼마나 되는가? 10손가락에 꼽을수 있지 않을까? 프로그래밍 경력이 짧은 사람이라면, 많은 경험을, 많은 사람이라면 색다른 경험을 접해 보자.
=== 시간 - 제로위키 또 다른 대화의 방법 ===
1 : 30 시작. 칼로!
* 규칙을 스스로 만들어 낼 수 있는 자세.
* 시연 MP3공유 프로그램 20
그룹별 진행자가 존재하고, 위키 좋은점, 나쁜점(불편한점) 으로 나누어 진행
=== 시간 - Think Different! 낯선언어와의 조우! ===
* Java 은 메소드(함수, 프로시저)의 길이가 7줄을 넘으면 안된다. ; 기준
* Python 은 메소드(함수, 프로시저)의 길이가 7줄을 넘으면 안된다. line 기준
후기 : ["프로그래밍잔치/첫째날후기"]
["프로그래밍잔치"]
- LUA_4 . . . . 14 matches
>>end
>a = foo -- a라는 이름으로 foo를 넘겨준다.
[ function 함수명() end ] 형태로 함수를 만들 수 있습니다.
>> end
>> for i = 1, #arg do sum = sum + arg[i] end
>> end
함수는 사용하기에 따라 변형할 수 있는게 많아서 천천히 다양한 방법을 설명하겠습니다. 대신 변수의 범위(scope)에 대해서 간단하게 예제로 살펴 보겠습니다.
>> end
같은 주제로 다른 예를 보겠습니다.
>> end
>> end
변수 범위는 이 밖에도 다양한 이슈를 만들 수 있습니다. 예를 들면 do ~ end 문에서도 local 로 범위를 한정할 수 있고 function 자체도 변수와 같이 범위(scope)를 한정하여 사용할 수 있습니다. 또한 local을 사용하지 않으면 전역 범위 내에서 변수나 함수 자체를 접근/변경할 수 있습니다.
- 데블스캠프2005/월요일/BlueDragon . . . . 14 matches
if self.place == '청룡탕' and not self.aDragon.die:
if self.place == '할매동산':
if not self.aTrasure.open:
if self.hasKey:
print '보물상자를 열쇠로 엽니다.'
else:
if room != self.place:
place = raw_input("어디로 갈까요?")
if self.place != '청룡탕':
if self.aDragon.hp <= 0:
else:
if self.aUser.hp <= 0:
if __name__ == '__main__':
print '어디로 갈까요?'
- AdventuresInMoving:PartIV/김상섭 . . . . 13 matches
=== 그리디로 ===
if(station[now].price > station[search].price)
if(station[search].length - station[now].length >= tank)
else
else
if(maxminprice > station[search].price)
if(now + 1 == search && station[now].length + go < station[search].length)
if(maxmin)
if(station[maxmin].length - station[now].length >= tank)
else
cout << cost << endl;
if (i != numCase - 1)
cout << endl;
- C++Seminar03 . . . . 13 matches
* 매주 월요일 오후6시부터 시작하여 10시를 maximum 으로 한다.
* CS 에 등장하는 기본적인 개념이나, 프로그래밍을 하는데 기반이 되는 지식에 대해 간단한 세미나를 하기도 한다.
1. 사회자 한명과 2인 1PC 또는 3인 1PC 로 PC 1대당 한조가 되어 PairProgramming 식으로 진행. 사회자는 간단한 개념을 설명하고 개념에 대한 실습(?) 또는 적용된 코드작성을 Pair 해본다. (이런식으로 진행할경우 장소에 문제가 될 수도 있을것 같네요. 실습실 하나를 제로페이지가 점령할수도 없는 일이고..-_- 강의실에서 간단한 설명 -> PC 실로 이동.. 정도가 대안이 될까요? ) --["임인택"]
* ZeroPage 홍보를 위한 수단중의 하나로 C++ Seminar 가 개최되었으면 합니다. 현재 회장님께서 생각하시는 바가 DevilsCamp 이전까지는 준회원체제로 운영되다가 DevilsCamp 이후로 정회원을 뽑는 방식이 좋다는 쪽인것 같은데 일단 입학실날의 강의실홍보 이후로 C++ Seminar 를 여는게 새내기들의 관심을 모으는데 좋을 것 같습니다. --["임인택"]
["프로젝트분류"]
- ClearType . . . . 13 matches
Microsoft 에서 주도한 폰트 보정 기법의 하나로 기존의 안티얼라이징 기법과 최근에 나오고 있는 LCD Display 의 표현적 특성을 조합하여 폰트 이미지의 외관을 가히 극대화하여 표현하는 방식.
LCD 디스플레이는 RGB의 색상체를 각 픽셀당 하나씩. 즉, 1개의 픽셀에 3개의 색상 표현 요소를 가지고 있다. 기존의 방식은 해당 픽셀을 하나의 요소로만 판단하여 폰트를 보정하여 출력해왔던 반면 ClearType 은 해당 픽셀의 3가지 요소를 개별적으로 컨트롤해서 표현하는 방식을 취한다.
Upload:beonit:Antialias-vrs-Cromapixel.gif
그림을 보면 잘 이해할 듯. 4번째의 경우가 클리어 타입이 사용하는 방식이다.
* [MicroSoft]에서 개발한 텍스트 벡터드로잉 방법.
* 텍스트 벡터 드로잉
* 컴퓨터 Display 에서 bitmap으로 표현되는 글자들의 가독률이 나빠, 종이에 인쇄되는 것과 같은 수준의 글자 가독률 얻기 위해서 만들어 졌다.
* 억지로 적용을 할수는 있지만 '를' 과 같은 글자는 '■' 처럼 보이기도 한다고 한다.
* 특허문제로 Adove, Linux, Apple 들이 각 다른 방식의 벡터 드로잉 방법을 가지고 있다고 한다.
* [http://www.microsoft.com/typography/cleartype/tuner/Step1.aspx ClearType Tuner]라는 프로그램으로 세부적인 클리어타입 셋팅을 할 수 있다.
- DermubaTriangle/하기웅 . . . . 13 matches
if(s==e)
if(eExp-sExp==0)
if((eNum-sNum)%2==0)
else
else
if(sNum%2==0)
else
if(eNum%2==0)
else
if(second>first)
cout << getDistance(first, second)<< endl;
else
cout << getDistance(second, first)<< endl;
- NumberBaseballGame/jeppy . . . . 13 matches
if (num[0] == num[1] || num[0] == num[2] || num[1] == num[2])
else strncpy(number_log[i], num, 3);
if (i<1) number[i] = num;
else
if (number[j]==num) i--;
else number[i] = num;
if (dest_num[i] == src_num[j])
if (i == j) strike++;
else ball++;
if (strike == 3) {
else
if (strike == 0 && ball == 0)
else printf("%dstrike %dball\n", strike, ball);
- STL/map . . . . 13 matches
for(map<int, int>::iterator i; i = m.begin() ; i != m.end() ; ++i) {
<< "value: " << (*i).second << endl;
=== 프로그램의 예 ===
cout << "전화 번호부의 내용은 " <<endl;
for ( ; i != directory.end();i++)
<< " 전화번호: " << (*i).second << endl;
cout << "입니다. "<<endl;
if ( name.compare("exit") ==0)break;
if (directory.find(name) != directory.end())
else
warning 의 이유는 STL에서 나오는 디버그의 정보가 VC++ 디버그 정보를 위해 할당하는 공간(255byte)보다 많기 때문입니다. 보통 디버그 모드로 디버깅을 하지 않으면, Project setting에서 C/C++ 텝에서 Debug info 를 최소한 line number only 로 해놓으면 warning 는 없어 집니다. 그래도 warning 가 난다면 C/C++ 텝에서 Generate browse info 를 비활성(기본값)화 시키세요.
- 데블스캠프2011/다섯째날/HowToWriteCodeWell/강소현,구자경 . . . . 13 matches
if(1<=floorMin && 1>=floorMax)
else
goTo(i);//있는 장소로 이동
if(currentFloor<= floorMax && currentFloor >= floorMin)
if(people == 0){
if(direction){
}else{
if(floor == currentFloor){
//el.goTo(el.getCurrentFloor());//현재 층으로 이동
//if(el.checkSameDir()){//만약에 같은 방향으로 이동하고, 처음에 누른 사람이 이동하고픈 위치보다 미달인 곳에 있으면
//el.goTo(el.getCurrentFloor());//두번째 사람이 있는 층으로 이동
el.goTo(el.getCurrentFloor());//현재 층으로 이동
- 마케팅천재가된맥스 . . . . 13 matches
* 이 책은 정현이의 추천으로 읽게 되었는데, 엄청 재밌고 유익하게 읽었다. 이젠에 네루의 세계사 이야기 책을 읽다가 너무 빡세서 힘들었는데 이책은 마케팅, 세일즈에 대해서 만화처럼 쉽게 알아먹기 좋게 잘 설명해 주었다. 공학도라면 꼭 읽어 봐야할 책이라고 생각한다. 솔직히 우리는 기술개발이 최고로 중요하고 나머지, 경영 마케팅은 기술만 좋으면 되는거 아닌가 하고 생각하는 경향이 있다고 본다. 그런데 현실은 우리가 기술개발에서 우리의 중요성을 인정받고 싶은 만큼 마케팅 쪽도 기술개발만큼, 때에따라 훨씬 더 중요할수도 있다고 생각한다. 그런 만큼 우리 공학도도 경영, 마케팅(세일즈) 등에 대해서 잘 알아야 한다고 생각한다.
* 이책에서는 고대 이집트에서 그때까지는 없었던 '바퀴'라는것을 새로 발명한 맥스가 그 '바퀴'를 이용하여 세계최고의 '바퀴회사'가 되어 가는 과정을 이야기한다. 처음에 맥스가 '바퀴'를 만들었을때, 우리 공학도들이 그러는것처럼 이 기술은 정말 최고의 기술이야, 가만히 앉아 있어도 서로들 이것을 사려고 하겠지 하는 생각을 했다. 그러나 결과는 지금 현실과 마찬가지로 기술 개발만 하고 그 후 마케팅, 판매를 못해서 거의망하기 직전까지 간다. 그렇다고 맥스가 아예 판매에 손을 땐것은 아니다. 부인과 함께 이집 저집을 방문하면서 판매 하려고 해도 실패를 한다. 그러다가 '세일즈캡틴', '빌더벤', '마법사토비' 를 차례대로 고용해서 판매를 하려고 했지만 번번히 실패한다. 그러다가 '클로저 카시우스'를 고용해서 판매에 성공한다. 현재 시장 상황에 따라서 필요한 세일즈 방식이 다르다는 것을 보여준다. 정말 중요한것은 시장 상황에 따라서 세일즈 방식이 다르다와 세일즈 방식이 다르기 때문에 고용하는 세일즈맨들도 성향이 달라야 한다는 것이다. 강추 책.
* 여기서 제품에는 우리가 만드는 프로그램도 포함된다.
* 탄생 부분만 주로 정리했다. 다른 부분 필요하신분은 책을 보시길..
* 클로저 (이때 필요하다)
* 프리젠테이션 후 곧바로 살것인지 물어본다.
* 다음과 같은 질문을 클로저, 마법사(기술자), 빌더(인간관계구축), 세일즈맨이 각각 필요할 시장 상황에서 생각해본다.
* 이 제품의 경쟁자는 누구인가? (신제품이라 할지라도 기존의 비슷한 용도로 사용하던것들)
- 상협/Diary/8월 . . . . 13 matches
* ["3DAlca"] 네트워크(MFC)로 구현 하기
* ["비행기게임"] 프로젝트 성황리에 마치기
* 이번주는 모든 프로젝트를 마무리 지어야 겠다
|| 3 || ["3DAlca"] 네트워크로 구현하기 || 0% || 목 요일 || 수, 목 ||
* ["자유로부터의도피"]
* 오늘이 수요일인지 목요일인지 순간적으로 헷갈렸다. -_-;;
* 오늘 과외 하나 더 들어 왔다. 아싸~ 근뎅 이번에는 정석으로 못 가르칠거 같당..-_-, 내 밥벌이인 정석으로..ㅠㅜ 또 고3이당. 쩝.. ㅡㅡ;;
* 정말 자주 느끼는 거지만, 난 사람보는 눈이 절대적으로 부족하다.
* 오늘 갑자기 아주 조금씩의 미학이 떠올랐다. 하루에 어떤것을 아주 조금씩 하는것은 그것을 아예 안하는것보다 낮다고나 할까.. 뭐 당연한 말인데 갑자기 퍼뜩 몸으로 느꼈다. 그런 의미해서 사놓은 책이랑 제본해놓은 책을 앞으로 하루에 조금씩 봐야 겠다.
* 오늘은 주로 비행기 겜 프로젝트를 손좀 봤다.
- 속죄 . . . . 13 matches
* 무더운 어느 여름날, 열세살의 브리오니 탈리스는 우연히 창 밖을 내다보다가 언니 세실리아가 옷을 벗어던지고 정원의 분수대에 뛰어드는 것을 목격한다. 자매의 어릴적 친구이자 케임브리지에서 얼마 전에 돌아온 의사 지망생 로비 터너가 그런 세실리아를 지켜보고 서 있다. 그날 하루가 끝날 무렵, 탈리스 저택의 영지에서는 또다른 한 소녀가 강간을 당하고, 이때부터 세 사람의 운명은 생각지도 못했던 엇갈림을 겪게 되는데...
* 참고로 역자 소개 ( 번역이 워낙 쓰레기이다 보니까 역자 소개도 들춰 보았음)
* 서강대학교 영문학과 한국외국어대학교를 통역번역대학원 한영과를 졸업했으며, 현재 한양대학교 국제어학원 조교수로 재직중이다. "잔의 첫사랑" "우울한 생활 극복하기" "이잔을 들겠느냐"외 다수의 책을 번역했다.
* 2차 세계대전 발발 직전. 공장을 경영하는 현대적 인물과 과거 군주주의 귀족풍습을 그대로 지니고 있는 사람이 공존하는 시간. 영국의 탈리스가라는 귀족집안이 배경이다.
* 공상하기 좋아하고 이야기 하기 좋아하는 여자아이, 세실리아라는 신식 여자, 하인 집안의 아들로 케임브리지를 우수한 성적으로 졸업하고 다시 케임브리지 의대에 합격한 로비. (위의 소개말과 다르지 않다.)
* 이 세명에게 같이 일어난 한가지 사건을 서로 다른 시각으로 한사람씩 차례로 돌아가며 의식의 흐름기법을 이용해 서술한다. 제길. 500페이지중 약 절반이상은 이렇게 의식의 흐름으로 때워버린다. 해가 어쨋네 땅이 어쨋네~ 뭐. 외국인이 자기네 말로 보면 재미있고 멋질지 모르지만, 기본적인 우리말 문법도 틀리는 이상한 번역작가의 글을 보면서 멋지다고 하긴 정말 너무 힘들고 짜증난다. 이부분 끝나는 곳까지 보는데 3달 걸렸다. 제길.
* 변태적인 내용의 편지를 실수로 보내게된 남자. 그리고 그걸보고 갑자기 사랑에 빠지는 여자. 제길. 분위기가 어쨋네 저쨋네 하면서 설득하려 하긴 하지만...아무리 봐도 설득력이 없다;; 무슨소리인지도 잘 모르겠따. 이것도 번역작가의 탓인듯.(여자의 의식부분에서 서술이 부족했던것 같다.)
- 캠이랑놀자 . . . . 13 matches
* 가급적이면 라이브러리나 특정 프레임워크 관련하여 어려운 부분은 [1002] support 하에 진행 (뼈대가 되는 코드를 미리 제공해주고, 알고리즘과 관련된 부분에 대해서 사람들이 구현하는 식으로)
|| 1 || 05.9.15 || [캠이랑놀자/050915] || New Media Art 들에 대한 데모 구경. 비전 기반으로 할 수 있는 것들 구경. 추후 시간 정하기. || (v) ||
|| 2 || 05.9.25 || [캠이랑놀자/050925] || DirectShow 개관. 뼈대 코드 구경. 간단한 캠영상 플레이 프로그램 만들기 || . ||
|| 6 || 05.10.29 || 기존 한 것 회상 모드 & 프로젝트 궁리 || . ||
|| 7 || 05.11.5 || 프로젝트 모임 || . ||
|| 8 || 05.12.28 || [캠이랑놀자/051228] || 배열로서 표현되는 이미지, 데이터 조작으로서 행해지는 이미지 프로세싱, PythonLanguage & PIL & GrayScale Image 에 대한 필터 실습 || (v) ||
|| 12 || 06.1.11 || [캠이랑놀자/060111] 1시 || Image Difference, Convolution Filter (Average, Sobel, ..~) || . ||
|| 15 || 06.1.19 || . || CAM App 2차 시도 - CAM Version Difference Filter || . ||
* C++ & Python - 현재 라이브러리들 관계상 C++ 로 구현된 것들이 많은 관계로. 중간에 [1002] 가 Python Wrapper Class 만들기를 시도할 것이긴 함.~ Python 의 경우 이미지 처리에 대해서 prototyping 을 위해 중간에 이용할 예정.
- 05학번만의C++Study/숙제제출/2 . . . . 12 matches
* 숙제1/허아영 <<- 글쓰기를 눌러서 이런 식으로 페이지를 만드시고 거기에 자신의 소스를 올리시면 됩니다.
* 평상시에는 문자열의 주소를 하나의 전달인자로 취하여, 그 문자열을 한 번 출력하는 함수를 작성하라. 그러다가 0이아닌 int형 값을 두 번째 전달인자로 제공하면, 그 시점에 도달할 때까지 그 함수가 호출되었던 횟수만큼 그 문자열을 반복해서 출력한다. (문자열이 출력되는 횟수는 두 번째 전달인자의 값이 아니라 그 함수가 호출되었던 횟수와 같다.)물론 이 함수는 거의 쓸모가 없다. 하지만 이것은 이 장에서 설명한 몇 가지 프로그래밍 기술을 사용할 것을 요구한다. 이들 함수를 사용하여 함수의 작동을 보여 주는 간단한 프로그램을 작성하라
* 여기서 질문!! 전달인자가 1개인 함수와 2개인 함수만들어 오버 로딩 하라는 것인가? 그게 아니라면... cin을 라인별로 입력 받아햐겠는데.. 어떤때는 변수를 하나만 받고 어떤때는 변수를 두개 받아야하니.. 라인별로 처리 해야할듯.. 하지만 라인별로 처리해도....;;;; 음... 생각이 떠오르지 않음..;;; 쳇..;;[[BR]] 어제 교수가 defalte 에 대해 설명했던거 같은데.. 전달인자를 취하지 않으면 이미 입력된 변수의 값으로 처리한다. 라고...;; 음..;;;이렇게 해야하나?
- 현태야, 책에 나와있는데로 하면 되지??? --아영
- 근데, 문자랑 숫자를 입력받은 후 출력받은담에 프로그램이 끝나게 만들어야 해? -아영
- AM/20040705두번째모임 . . . . 12 matches
* Spy++, goto definition 으로 실제 코드가 돌아가는 모습과 선언부분을 직접 보여줌 -> [1002] 개별상담, 선배에게 조언
* 과감한 프로젝터, PC실 컴퓨터 등 시설물을 적극적으로 활용하였다.
* [1002]가 중간에 설명함으로 인해 앞에서 설명한 사람의 흐름을 끊음.
* 연락을 하지 않고 온 사람들로 인해 기존 정한 룰이 깨짐. 룰에 의한 효과도 저하됨.
* 진도방식 책위주 아닌 목표 프로그램의 구현을 목표로 진행하는 것은 어떨까? 일종의 milestone (중간 기점)
식으로 진행하는 방향으로.
* 스터디 진행을 두 부분으로 나누는 방법. 앞부분에서는 이론적인 부분을 같이 정리하고, 뒷 부분에선 Pair로 실제 구현을 진행하기
* 스터디 끝나기 5분전 정리의 시간. 인덱스 카드를 나누어준뒤, 그날 배웠다 생각되는 것을 5분 내로 적기.
- EightQueenProblem/김준엽 . . . . 12 matches
1번문제를 제대로 이해 못해서 실수로 모든 경우를 구해버렸습니다. -0-;;;
if (i==x | j==y | (y-j)==(x-i) | (y-j)==-(x-i))
if (m_cells[i][j] == 1)
else if (m_cells[i][j] == -1)
else
std::cout << std::endl;
std::cout << std::endl;
if (y >= 8)
if ( cboard.isEmptyCell(x, y) )
- EightQueenProblem/이덕준소스 . . . . 12 matches
if (EightQueens(0,queens))
cout<<endl;
else
if (Promissing(level,queens))
if (level==7)
else
if (EightQueens(level+1,queens))
if (level==0)
if (!WellPutted(i,level,queens)) //if (!WellPutted(i,j,queens))
if (queens[level1]==queens[level2])
if (abs(queens[level1]-queens[level2])==abs(level2 - level1))
- EuclidProblem/조현태 . . . . 12 matches
최대공약수는 저번에 만들어 놓은 소스.. 복사~붙여넣기.. 이걸로 해결~
그러나 수학적 지식의 부재로 x,y는 어떻게 구해야 할지 모르겠다는 판단하에..
내가 수학시간에 주로 써먹었던.. 대입법! (이름만 거창하지 적당히 찍어서 넣어본다라는 이야기..)
if (0==input_a && 0==input_b)
if (number_a>number_b)
else
if (temp_plus>0 && number_a*(*x)+number_b*(*y)>gcm)
else if (temp_plus<0 && number_a*(*x)+number_b*(*y)<gcm)
if (*temp_small>0)
else
else
- LUA_2 . . . . 12 matches
이번에는 루아의 자료형에 대해서 글을 써 보겠습니다. 루아의 자료형은 많지 않습니다. 기본적인 자료형은 숫자, 문자열, nil(Null) , boolean 이 있습니다. 간단하게 예를 살펴보면 type 연산자로 자료형의 이름을 알 수 있습니다.
위와 같은 명령어로 자료형의 type을 알 수 있습니다.
그리고 추가적으로 table이라는 자료형이 있습니다. table은 배열로 볼 수도 있지만 루아에서는 좀 더 다른 의미를 갖습니다. table은 나중에 따로 설명하도록 하겠습니다. 우선 오늘은 맛보기로 table을 만들어만 보겠습니다.
루아는 특이하게 복수 대입을 사용할 수 있습니다. 예를 들면 첫번째 변수에는 '=' 이후 첫번째 값을 두번째 변수에는 두번째 값을 대입하는 방식으로 사용할 수 있습니다.
문자열 비교 연산자, 문자열도 알파벳 순으로 비교, 크고 작고를 알 수 있습니다.
마지막으로 루아의 자동 형 변환 기능을 보여드리겠습니다.
> print( -fake_two + 2 ) --- -fake_two는 앞에 '-'로 인해 음수가 되고 여기에 2를 더해서 0이 출력 됨
마지막으로 오늘 배운 것 이외에 추가로 주석처리 하는 방법을 살펴 보겠습니다. 앞서 예제에서 '--' 를 하고 코드를 설명했는데 '--' 가 주석을 시작하는 코드입니다. 한 줄 이상의 주석 처리는 "--[[" 와 "--]]"를 통해서 처리할 수 있습니다.
- NSIS/예제2 . . . . 12 matches
http://zeropage.org/~reset/zb/data/nsis_1.gif
; 인스톨러 프로그램 이름
; (만일 인스톨을 다시 할경우
; 예전의 레지스트리를 자동으로 overwrite 할 것임)
SectionEnd
SectionEnd
http://zeropage.org/~reset/zb/data/nsis_2.gif
; 인스톨러 프로그램 이름
http://zeropage.org/~reset/zb/data/nsis_3.gif
http://zeropage.org/~reset/zb/data/nsis_4.gif
http://zeropage.org/~reset/zb/data/nsis_5.gif
SectionEnd
; 인스톨러 프로그램 이름
; (만일 인스톨을 다시 할경우
; 예전의 레지스트리를 자동으로 overwrite 할 것임)
SectionEnd
SectionEnd
SectionEnd
SectionEnd
SectionEnd
- UglyNumbers/1002 . . . . 12 matches
처음 문제를 제대로 이해하지 않고 '그냥 2,3,5 외의 소수 제외한것 아닌가?' 로 접근하다가 14 는 아니라는 것을 간과. 다시 처음부터 접근.
연습장에 이것저것 써보다가 대략 두가지 접근법이 생각나다. 하나는 각 수들마다 'isUglyNumber' , 하나는 지수를 이용한 방법. 일단은 'isUglyNumber' 먼저 구현해보기로 해봄. (워낙 간단하므로)
if number == 1: return True
if number % 2 != 0 and number % 3 !=0 and number % 5 != 0: return False
if number % x == 0: number=number/x
if count == 1: return 1
if isDivideOnly235(idx):
if currentCount == count:
하지만, 결과값을 보면서 지수 스타일의 접근법이 원하는 접근법이라는 생각을 하게 되다. (10억이 넘는다 할때, isUglyNumber 식이라면 10억번이 실행된다.) 하지만, 그냥 지수로만 생각하면 uglynumber 의 순서 상 맞지 않을 것인지라 (1 : 2^0*3^0*5^0, 2 : 2^1*3^0*5^0, 3 : 2^0*3^1*5^0, 4 : 2^2*3^0*5^0 ... 0,0,0 , 1,0,0, 0,1,0 , 2,0,0 .. 도무지 숫자들 간의 연관성이 잡히지 않았다.
그러다가, '에이.. 걍 sort 해버리자.' 접근. 하지만, n 값에 따라 결과가 영향을 받을 것이라는 막연한 생각에 연습장에서 한참 고민. 그냥 실제 원하는 값 보다 여유분 값을 만들고 적당히 답을 내는 방식으로 접근. 하지만, 무언가 굉장히 찝찝함.
- html5/communicationAPI . . . . 12 matches
* 프로그램간에 비동식으로 메세지 전달 : 느슨한 결합(loosely coupled)
* 통신 수행의 주체 : 윈도우, 백그라운드 태스크, 서버에서 동작하는 프로그램
= 크로스 도큐먼트 메세징 =
* 메세지의 송수신을 통해 둘 이상의 웹 페이지가 서로 데이터 주고받음
* targetOrigin : 메세지를 수신하는 도메인(프로토콜+도메인+포트번호)
// origin 속성으로부터 송신처 확인
if(e.origin == "http://localhost"){
// data 속성으로 수신된 메세지 확인
* 포트는 값 복사로 전달됨
* 받은 포트는 PostMessgae()의 [ports]인자에 배열 형태로 전달가능
* 주의 : 배열안에 null이 포함될 때, 이전에 postMessage()의 인수로 전달된 적이 있는 포트가 포함될 때, 한 채널의 포트1과 포트2가 동시에 포함될 때
- ljh131 . . . . 12 matches
블로그
모든 프로그래머들이 copy & paste에 빠져있어 구글신께서 포맷으로 심판하려 할 때 홀로 노가다 코딩을 하던 아노아씨는 구글신의 특별한 계시로 포맷이 닥칠것을 미리 알게 된다. 그는 120번의 이터레이션에 걸쳐 방주(신개념 version control system)를 제작해, 8개의 대형 오픈 소스 프로젝트와 한 패키지씩의 여러 sf프로젝트를 커밋한다. 포맷이 닥치자 모든 오픈 소스 프로젝트가 실패하고 말았지만, 이 방주에 커밋된 프로젝트들은 살아 남았다고 한다.
Upload:윤희.gif
- 프로젝트 압박을 역설적으로 표현한 남박사(남사장??@,.@)
- 권영기/web crawler . . . . 12 matches
if pos is not -1 :
if line[c] is '"' :
=== 파일 다운로드하기 ===
if os.path.isdir(mdir) is False :
* os.path.isdir(path) - Return True if path is an existing directory.
* os.mkdir(path[, mode]) - Create a directory named path with numeric mode mode. If the directory already exists, OSError is raised.
if os.path.isdir(path) is False :
if os.path.isdir(path) is False :
자꾸 글자만 나오는 환경을 보니까 질리기 시작했다. 아직 완성은 멀었지만 GUI로 만들어보려고 함. 어차피 나중에 해야되니까...
* http://www.crummy.com/software/BeautifulSoup/ - 웹분석 라이브러리 BeautifulSoup 이용해보기
* 로그인이 가능한 페이지를 긁고 싶은데 방법을 모르겠다.
* 굳이 Python으로 GUI를 구현해야 할 필요성을 모르겠다.
- 정모/2011.7.11 . . . . 12 matches
* 7시부터 강남에서 진행되는 Design Pattern 세미나로 인해 정모는 6시까지 진행.
== 프로젝트/스터디 ==
* 이번주에는 제가 OMS를 하고, 회고는 시간이 없어서 하지 못했지요. OMS를 원래는 제 노트북을 연결해서 하려고 했으나.... 제대로 작동하지 않는다는 사실을 깨닫고 급 바꿔야만 했죠 -,.- 결국 keynote도 쓰지 못하고 ppt로 전환하는바람에 ppt효과도 사망.. 아무튼 한참동안 고민한 주제중에는 나름 잘 골랐던거 같아요. 오늘은 제 후기가 뭐 이런지...;; -[김태진]
* 태진이의 OMS로 첫 스타트를 했네요. 애플에 대해 이야기 하는 것이 주변 친구들을 생각나게 하더군요 -ㅅ-; 지금도 쓰고 있는 MDplayer를 팔고 IPod Classic을 살까 말까 고민중인데다 애플 제품은 잠깐씩만 만져봐서 잘 모르는 상황이었는데, 재미있었습니다. 그래도 고민은 되네요 -ㅅ-a 그러고 나서 뭔가 금방 끝난 것 같네요; - [권순의]
* DP 세미나 참여 때문에 일찍 끝나서 뭔가 약간 아쉬웠습니다. 데블스캠프도 마치고 새로운 스터디/프로젝트도 시작되어서 사실 공유할 수 있는 것들이 많았을텐데 (저 같은 경우 DB2 Certi Program에 대해 좀 공유하고 싶었고..) 다음주를 기약 해야겠어요. 태진이의 OMS는 MacBook의 디스플레이가 원활했다면 keynote로 더 좋은 presentation이 될 수 있었을텐데 아쉬웠을 것 같아요. 본의 아니게 (주제가 Apple이다 보니) 선배님들이 많이 (농담조로) 디스했는데 발표는 좋았답니다. 역시 태진이는 기대치를 높여주는 친구에요. - [지원]
* 태진이가 내가 필요하데서 나왔는데... 아 뭐야 영상통화였냐.. 그건 집에서도 되는거잖앜!! 게다가 맥북 연결이 안 되서 그나마도 안함. 방학중에도 정모는 계속된다는걸 알았음. 와우 애드온 얘기 재밌었어요. 나와서 후회되는거라곤 아 안나왔으면 OMS 안걸리는건데.. 뿐이고 OMS 끝낸 지금은 아무래도 상관없는일! ㅎㅎ! 재밌었음당 앞으로는 자주 참가할께요. - [고한종]
* DP 일정이 급하게 잡혀서 짧게 진행했네요. keynote로 진행되는 OMS를 보나 했더니 케이블때문에 못 봐서 아쉽습니다. Apple사 제품은 조금씩 만져만보고 직접 써본적이 거의 없어서 OMS 재미있게 들었습니다. - [김수경]
- 5인용C++스터디 . . . . 11 matches
* [5인용C++스터디/윈도우즈프로그래밍]
* [5인용C++스터디/API에서MFC로]
* [5인용C++스터디/다이얼로그박스] - 노수민
* [5인용C++스터디/소켓프로그래밍] - 나휘동
* [5인용C++스터디/마우스로그림그리기]
|| 이름 || 계획서 다운로드 || 프로그램 다운로드 ||
2003년 8월 27일로 공식적인 스터디가 종료되었습니다. 하지만 비공식적으로 최종 결과물이 만들어질때까지 계속 하는거 아시죠?^^ 강요하는건 아니지만 최종 결과물을 만들어서 목표를 달성해보면 많은 도움이 될 것입니다. 도움이 필요하면 언제는 연락주세요~ 그리고 다들 [5인용C++스터디/후기]에 스터디를 끝내고 난 후기를 적어주세요~ --[상규]
[프로젝트분류]
- C++ . . . . 11 matches
Bell Labs' Bjarne Stroustrup developed C++ (originally named "C with Classes") during the 1980s as an enhancement to the C programming language. Enhancements started with the addition of classes, followed by, among many features, virtual functions, operator overloading, multiple inheritance, templates, and exception handling. The C++ programming language standard was ratified in 1998 as ISO/IEC 14882:1998, the current version of which is the 2003 version, ISO/IEC 14882:2003. New version of the standard (known informally as C++0x) is being developed.
C++은 범용성을 가진 컴퓨터 언어이다. 이는 정적으로 분류된(?) 다중 패라다임을 지원하는 언어이다. ( [:절차적프로그래밍 절차적 프로그래밍], [:GenericProgramming 제네릭 프로그래밍]을 지원한다.) 1990년대에 C++은 가장 상업적으로 인기가 있는 언어중의 하나가 되었다.
벨 연구소의 [http://www.research.att.com/~bs/homepage.html Bjarne Stroustrup]은 1980년대에 당시의 [C]를 개선해 C++을 개발하였다. (본디 C with Classes라고 명명했다고 한다.) 개선된 부분은 클래스의 지원으로 시작된다. (수많은 특징들 중에서 [가상함수], [:연산자오버로딩 연산자 오버로딩], [:다중상속 다중 상속], [템플릿], [예외처리]의 개념을 지원하는) C++ 표준은 1998년에 ISO/IEC 14882:1998로 재정되었다. 그 표준안의 최신판은 현재 ISO/IEC 14882:2003로서 2003년도 버전이다. 새 버전의 표준안(비공식 명칭 [C++0x])이 현재 개발중이다. [C]와 C++에서 ++이라는 표현은 특정 변수에 1의 값을 증가시키는 것이다. (incrementing이라 함). C++이라는 명칭을 이와 동일한 의미를 갖는데, [C]라는 언어에 증가적인 발전이 있음을 암시하는 것이다.
- ClassifyByAnagram/재동 . . . . 11 matches
self.wordList.append(self.wordString[i])
if self.anagramList[i][0] == self.getSortWordString():
if self.isWordListInAnagramList() is True:
self.anagramList[self.index].append(self.wordString)
else:
self.anagramList.append([self.getSortWordString()])
self.anagramList[len(self.anagramList)-1].append(self.wordString)
if __name__ == '__main__':
* 우선은 빠르게 하는 거 생각하지 않고 그냥 생각나는 대로 짰습니다. 이제 이걸 토대로 '빠르게'를 생각해 보아야겠지요 --재동
["ClassifyByAnagram"]
- EightQueenProblem/강인수 . . . . 11 matches
* C++로 한거(심심해서 한거)
if(n <= 1)
if( abs(ar[i] - ar[j]) == abs(i - j) && i != j )
next_permutation(ar.begin(), ar.end());
if( isCorrectChecker(ar) )
cout << endl;
* 파이썬으로 한거(2003 데블스 캠프 대비용)
if self.board[i] == self.board[curRow] or\
if self.isValid(curRow):
if curRow == self.size-1:
if __name__ == '__main__':
- JTDStudy/첫번째과제/원희 . . . . 11 matches
if (comNum[i] == 10){
if (comNum[i] == userNum[j] && i == j)
else if(comNum[i] == userNum[j] && j != i && (comNum[j] != userNum[j]))
if(strikeCounter == 3){
if(outCounter == 3 && strikeCounter == 0){
자바가 완전 기초라서요, 숫자 세개 입력받을때 1 2 3 이렇게 입력받으면 배열에서 1,2,3 이렇게 들어가게 할려고 노력을 해봤지만 어렵네요......ㅠㅠ 생각의 한계로 결국은 따로따로 입력받기......
* 방법은 여러 방법이 있지. 만약 100자리라면, int 형이 정수값만 가지고 나머지는 버리는 특성을 이용해서 123%10 하면 3이 나오고, 12%10 하면 2 나오고 나머지는 1이고... 이런식으로 숫자른 나누어 줄 수도 있고, 입력시에 어짜피 String형으로 받아지기 때문에 문자 하나씩 끊어 읽게끔 해도 되지^^ 조금만 생각해보면 방법이 나올 수도 있어 - [상욱]
- MagicSquare/성재 . . . . 11 matches
혹시나 이거 밑바탕으로 될지 압니까??? ^-^;;
if(mab%2!=0)
cout<<endl;
cout<<endl;
if(mbang==0 && t+1<mab)
else
if(a-1<0)
if(mbang==0 && t+1<mab)
else
cout<<endl;
else
- ProjectVirush/Rule . . . . 11 matches
* 게임 속 시간은 단위 시간을 기준으로 흘러간다.
* 명령을 수행하는데는 현실 세계의 시간이 필요하다. 따라서 플레이어는 게임에 접속해서 명령이 수행될 시간을 예약한다. 그리고 예약한 시간에 자신의 명령이 수행되었는지를 다음 번에 확인하고 새로운 전략을 세운다.
* 기본적으로 일정한 방향성 없이 움직인다.
* 번식한다. 즉 새로운 숙주를 탄생시킨다.
* 숙주는 기본적으로 모든 바이러스를 잡을 수 있는 항체를 어느 정도 갖는다. (이를 '''기본 항체'''라고 한다.)
* 새로운 바이러스가 숙주에 침입했을 때 기본 항체가 바이러스를 잡는다.
* 기본 항체가 새로운 바이러스를 잡기에 모자라는 경우(바이러스 사살 속도<바이러스 증식 속도), 숙주는 새로운 바이러스임을 알아차리고 이에 특화된 항체를 생산한다. 특화된 항체는 기본 항체보다 바이러스 사살 속도가 빠르다.
* 한 번 특화된 항체를 생산한 경우 이를 '''습득 항체'''라고 하고, 특화된 항체를 생산하는 과정이 빨리 일어난다.
* 지령 - 외계인 본부에서 처음 시작하는 사람에게는 게임을 시작하는 방법을 알려주는 도움말으로써 지령을 내린다. 모든 플레이어어에게 지령을 내려서 경쟁을 시킬 수도 있다.
- R'sSource . . . . 11 matches
if oldlen is not newlen :
print """이 프로그램은 www.replays.co.kr의 스타크래프트 리플레이를
모아주는 프로그램 입니다."""
inputDir = raw_input("""저장 하고 싶은 경로를 지정하세요.(예>c:\\\\replay\\\\) : """)
if matching:
if matching:
if matching:
if os.path.exists(defaultDir + saveDirName)==0:
if __name__ == '__main__':
sys.argv.extend(['--packages', 'win32com'])
console=["rep.py"], # 도스창에서 실행할 파일을 생성할 경우
- Refactoring/ComposingMethods . . . . 11 matches
* 하나로 묶을 수 있는 작은 코드 조각들에 대해서, 그 목적을 잘 표현하는 이름을 가진 메소드에 넣자.
if ( (platform.toUpperCase().indexOf("MAC") > -1) &&
if ( isMaxOs && isIEBrowser && wasResized ) {
if (inputVal > 50) inputVal -= 2;
if (inputVal > 50) return -= 2;
''Turn the method into ints own object so that all the local variagles become fields on that object. You can then decompose the method into other methods on the same object.''
http://zeropage.org/~reset/zb/data/ReplaceMethodWithMethodObject.gif
if (people[i].equals ("Don")){
if (people[i].equals ("John")){
if (people[i].equals ("Kent")){
if (candidates.contains(people[i]))
- mantis . . . . 11 matches
* apm 설치후, 걍 www 폴더에 복사후 웹으로 해당 localhost/mantis 들어 가면 인스톨 나오고 DB 관련 한것을 넣어 주면 설치가 됩니다.
* administrator , 암호는 root 로 로그인 후에 계정관리에서 preference 부분에 가서 제일 하단 부에 있는 언어 선택을 한글로 해야 한글로 메뉴를 보고 한글을 사용할 수 있습니다.
테이블을 만들때 euc-kr 으로 만들었고 euc-kr 을 mantis 에서 사용하기 위해 아래와 같이 mantis 소스를 수정 하였습니다.
346 if ($this->_connectionID === false) return false;
348 if ($argDatabasename) return $this->SelectDB($argDatabasename);
359 if ($this->_connectionID === false) return false;
361 if ($this->autoRollback) $this->RollbackTrans();
* 에러 메시지 제거는? 에디트 플러스 Find in file 에서 htmlspecialchars 이 것을 다 찾아서 @htmlspecialchars 이것으로 바꿔 주면 됩니다.
- 나를만든책장/서지혜 . . . . 11 matches
* 똑바로 일해라(ReWork)
* 개발자를 ''남자친구''로 둔 사람들을 위한 글임. 여자가 개발자일 경우따위 고려 안함^^ 왜 읽었을까. 불쏘시개이다.
* 뉴욕의 프로그래머
* 마우스드라이버 크로니클
* 프로그래밍은 상상이다
* 사람들이 미쳤다고 말한 외로운 수학 천재 이야기
* 실용주의 프로그래머
* 로마의 기둥을 찾아라!
* 후기 : 기대에서 실망으로 실망에서 감동으로. 처음 한장을 읽고 내팽개쳐둔것이 실수였다. 시간가는 줄 모르고 눈물 줄줄 흘린 책. 번역 제목보다 역시 원서 제목이 책의 주제를 잘 말하는것 같다. 원서 제목은 If I stay.
- 데블스캠프2011/둘째날/Machine-Learning . . . . 11 matches
* 자동 분류할 데이터 다운로드 : http://office.buzzni.com/media/svm_data.tar.gz
* Naive Bayes classifier 개발 http://en.wikipedia.org/wiki/Naive_Bayes_classifier
* [데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/namsangboy]
* [데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/송지원]
* [데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/강성현]
* [데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/김수경]
* [데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/김동준]
* [데블스캠프2011/둘째날/Machine-Learning/NaiveBayesClassifier/변형진]
* svm classify : ./svm_multiclass_classify /home/newmoni/workspace/DevilsCamp/data/test2.svm_light economy_politics2.10.model
- 몸짱프로젝트/InfixToPostfix . . . . 11 matches
#ifndef __STACK__H__
if ( *top < MAX - 1 )
if ( *top < 0 )
#endif
if ( isOperand(aTerm[i]) )
else{
if ( income.op.precedence < stack[top].op.precedence )
if ( operators[i].token == aToken )
if ( operators[i].token == aToken )
[몸짱프로젝트]
- 송치완 . . . . 11 matches
* [새싹교실/2011/쉬운것같지만쉬운반]의 새싹으로 참여
* 4월 23일 논산훈련소로 입대
* 6월 1일 캠프잭슨으로 후반기교육
* 6월 21일 용산 미군기지로 자대배치
* 10월 1일 일병으로 진급
* 4월 1일 상병으로 진급
* 11월 1일 병장으로 진급
* 유로 트럭 시뮬레이터 2 자율주행 프로젝트인 ChosunTruck의 Founder
== 앞으로 하고 싶은 것 ==
* 내가 진짜로 하고 싶은게 뭔지를 찾고싶다.
- 정모/2013.9.11 . . . . 11 matches
* 다양한 주제로 진행했던 OMS를 이제 학술적인 내용으로 진행하려고 합니다.
* OMS 진행은 10분으로 제한합니다.
* 행사 참여비용이 인당 10만원이 넘는 경우, 그리고 단체 지원금액이 20만원이 넘는 경우, 회의를 통해서 지원 여부를 결정.
* 학술 행사 지원금을 받는 회원은, 학술 행사에 참여하여 배운 점이나 느낀 점을 정기모임 때 공유해야 합니다. (ppt 발표라든지, 미니 세미나 형식으로)
== 스터디/프로젝트 공유 방안 ==
* 몇 달 간격으로 경과 보고를 진행을 해보는 것은 좋지 않을까? - 정의정 학우
* 오픈 캠프 형식으로 스터디 결과를 보고하는 방법은 좋지 않을까? - 안혁준 학우
* "제로페이지 회원이 좀 더 GDG에 행사에 참여하는 모습을 봐서 GDG 개설을 고려하겠다."라는 답변을 받았습니다.
* 지금도 신청을 받고 있으므로 관심이 있으면 지원해보세요.
- 중위수구하기/남도연 . . . . 11 matches
cout<<"비교할 세 수를 입력하세요"<<endl;
if ((x>=y && x<=z) || (x<=y && x>=z)) {
else if ((y>=x && y<=z) || (y<=x && y>=z)) {
else {
if (x==-999||y==-999||z==-999){
cout<<"프로그램 종료"<<endl;
else {
cout<<"A="<<x<<" B="<<y<<" C="<<z<<endl;
cout<<"중위수는 "<<center<<"입니다."<<endl;
- 지금그때2003/토론20030310 . . . . 11 matches
* 어떻게 하면, 이러한 행사(또는 다른 생산적인 행사들)를 '관습'으로 남길 수 있을 것인가. '관습'으로 유지시켜주기 위해, 더 나아가 이러한 관습을 발전시켜주고 키워주기 위해선 어떠한 시스템이 필요할까.
* 사람들 간 지식을 서로 전수해주는 문화. 보다 생산적이고 발전적인 토론.(피시실이건 어디건)
* 꼭 '대학선배' 가 아닌 '인생선배'로서 이야기할 수 있는 자유로운 이야기들. 간단하면서 실용적인 질문들 등등 자유.
* ex) 프로그램 공부는 어떻게 하나요? , 요새 어떤 책을 보나요? , 영어공부는 어떻게 해야 하나요? , 사회에 나가면 어떤 일을 하나요? , 학교공부만 따라가면 충분한가요? , 학회에 속해야 하나요? 등등
* 토론방법으로서 제안된 방법
ex) 금요일 : 토요일 업무가 평일에 비해 상대적으로 가벼우므로 평일에 비해 부담이 적다.
* 기타 - 금요일인 경우 학교선배가 아닌 다른모임사람들을 같이 참석시킬 수 있다. ex) RenaissanceClub
ex) 토요일 : 학부생들 수업이 없어서 학교에 오지 않을 가능성 높으므로 참여도가 적다.
- 3N+1Problem/문보창 . . . . 10 matches
문제에 나와 있는 단순한 알고리즘을 제대로 구현만 해도 성공하는 쉬운 문제.
cout << a << " " << b << " " << maxCycle << endl;
if (a > b)
if (a == 1 && b == 1)
else if (a == 1)
if (temp % 2 == 0)
if (temp == 1)
else
if (maxCycle < nCycle)
- HelpOnInstallation/SetGid . . . . 10 matches
보안상의 이유로 웹서버는 php 스크립트를 `nobody, www, apache` 혹은 `httpd`같은 특별히 제한된 계정으로 실행하게 됩니다. 이러한 이유로 [모니위키] 스크립트가 생성하게 되는 여러 파일 혹은 디렉토리는 이러한 특별한 계정의 소유가 되며 진짜 사용자가 소유하지 못하게 되는 일이 발생하고 어떤 경우는 이렇게 만들어진 파일을 읽을수도 지울 수도 없게 됩니다.
이런 경우를 막기 위해서 `chmod 2777` 대신에 `chmod 777`을 하는 경우도 있으나, 이로서 문제가 모두 해결되지는 않습니다.
이러한 것을 방지하기 위해서 [모니위키]가 특별한 파일을 생성하게 되는 몇몇 디렉토리에 대하여 그룹 아이디로 퍼미션을 가지게 할 수 있습니다. 이렇게 Setgid를 사용하도록 그룹 퍼미션을 주게되면 wiki.php에 의해 새롭게 만들어지는 모든 파일은 진짜 사용자의 그룹아이디와 같게 되며, 그룹 아이디가 가지는 퍼미션을 진짜 사용자도 누릴 수 있게되어 읽거나 고치거나 지울 수 있게 됩니다.
그런 다음 monisetup.php를 웹상에서 실행시키면 monisetup.php는 필요한 여러 디렉토리를 만들게 되며 이 디렉토리들은 setgid에 적용을 받게 되고, 이렇게 최초 setgid 설정을 마친 후에는 최상위 디렉토리의 퍼미션을 원래의 퍼미션으로 되돌려야 합니다. (보통 `chmod 755`로)
- ModelingSimulationClass_Exam2006_1 . . . . 10 matches
운전 면허 시험을 본다. 운전 면허 시험은 총 2단계로 구분되어 치러진다.
(a) 해당 모델을 구성하고 필요할 경우 가정을 해도 좋다. (7 points)
y = a(x-30) ( 30 < x < 90) y = b(x-110) (90< x < 110) 형태의 그래프로 90 지점에서 교차하는 그래프임
(a) (5 points) Peak Value 구하기 - '''그래프의 가장 높은 지점의 높이를 구하라는 문제로 파악했음. pdf 전체의 넓이가 1이라는 사실을 이용하는 문제'''
1) 나의 경우 해당 문제를 간단한 확률 모델 + Single Queue, Multi Server 의 문제로 파악했다. 확률모델은 1차 합격자를 가리는데 쓰이고, SQMS모델은 실기 시험을 가리는데 사용하고, 가정으로 실기 시험은 7분을 최고 점으로갖는 Triangle Distribution 이라고 가정하고 풀이했음.
2) 부족한 시간, 랜덤함수를 사용할 수 없는 상황이라는 점을 말하고, TD 의 기대치를 구했다. 대충 구해보니 7.55 분가량이 소요된다는 사실을 알았다. (좌우 대칭형으로 가정했기 때문에... -_-) 따라서 한 패거리의 실기 시험합격자의 최대 인원은 40명 소요되는 시간은 총 5시간이지만 SQMS 모델이 큐잉에서 최대의 효율을 발휘 할 수 있으므로, 양쪽의 서버에 반씩을 나누어서 시험을 보면 2시간 반가량이 필요하다고 판단. 필기가 종료되는 시간은 10:00 + 2:30. 14:00 + 2:30 따라서 당일의 시험이 완전히 종료되는 17:00 분 안에 시험을 끝낼 수 있기 때문에 해당 모델은 안정하다고 적긴적었다. -_-;;
- NumberBaseballGame/재니 . . . . 10 matches
cout << a << b << c << endl;
if (input < 123 || input > 987)
if (a == x) strike++;
if (b == y) strike++;
if (c == z) strike++;
if (a == y || a == z) ball++;
if (b == x || b == z) ball++;
if (c == x || c == y) ball++;
if (strike == 0 && ball == 0)
else
- ProjectAR/CollisionCheck . . . . 10 matches
* 기본적으로는 비트맵을 읽어서 텍스쳐르 변환할것이므로, 기본적인 Object는 사각형이다.
* 그러자니 오브젝트마다 그림 크기에 맞는 2차원 배열을 가져야 한다. 어쩌면 비트맵을 읽어오면서, 그 비트맵이 메모리에 있을테니, 그걸 참조하는 방법도 있을듯 하다. 안된다 하더라도, 요즘 컴퓨터 메모리 남아도니까 별로 문제가 되지는 않을듯 싶다.
* 속도가 제대로 나올까?
일단 히트 판정이 날려면 주인공이 공격을 하게 됩니다. 그 때 발생하는 무기의 범위는 부채꼴이 되겠죠? 그렇게 때문에 오브젝트가 주인공의 위치와 무기의 거리사이에(각도는 제한된 상태) 들어온다면 히트 판정이 나게 되겠죠? 그러므로 정교한 히트 판정이 나기 위해서는 사각형 영역보다 부채꼴 형태가 더 적합하다고 생각합니다. 그리고 적의 충돌을 판정하기 위해서는 적은 최대한 둥근 모습으로 만든다면 해결이 어느정도 가능하다고 생각합니다. 둥그스름한 물체가 땅에 닿는 곳은 원형이 되겠죠? 그 원형을 판단하면 되지 않을까요? 어짜피 그려지는 곳의 머리가 주인공의 무기와 겹치는 동시에 친다면 더 부자연스러울꺼 같네요...
* 그런데 왜 부채꼴이야? 창이라면 푹 찌르니까 사각형 + 사각형이 될테고.. 검도 찌르면 사각형 + 사각형. 베면 사각형 + 부채꼴이 되겠구나. 생각외로 복잡하군.
* 완성. 일단 오브젝트 사각형 + 무기 리치 사각형 이런식으로 했음
타일식으로 간다면... -_- 적도 나도 모두가 타일위에 서 있는 꼴이 된다.
추가로 의견 바람. --선호
- Score/1002 . . . . 10 matches
See Also [프로그래밍/Score]
1줄로 표현할 방법을 이리저리 고민.
input 에 대해서 여러 방법으로 변형을 시도. 그 중 좋은 아이디어가 떠오름.
각 sub 단위의 "O" 의 갯수를 세고 이에 대해 각 부분별로 f(n) = f(n-1)+1 에 대한 총합 계산을 해주면 되겠다 생각.
f(n) 에 대해서 sum(f(n)) = n(n+1)/2 이므로, 이를 이용하면 되리라 생각이 듬. 결국 해결.
def ox(aList): return sum((len(e)*(len(e)+1))/2 for e in aList.split("X") if e!='')
위에서 원소가 없을 때 if e!=''로 처리하는데, 없으면 len(e)가 0이 되므로 그냥 일반화해도 될 것이다. 즉 "있다"와 "없다"를 일반화.
J언어로 해봤다.
- StringOfCPlusPlus/상협 . . . . 10 matches
#ifndef _STRING0_H_
void n_set() {n=0;}//n의 값을 0으로 초기화
void lenstr() {while(st[n]!='\0') n++;}//문자열의 길이를 n값으로 저장
void reverse();//문자열 거꾸로
int search(char se);//찾고자 하는 문자열의 갯수로 알려줌
friend ostream& operator<<(ostream &os, String &s);
#endif
if(st[i]==se)
if(st[i]==' ')
- SummationOfFourPrimes . . . . 10 matches
오일러는 솟수가 숫자 영역에서 무한하다는 가설을 자신의 고전이론으로 증명했다. 모든 수들이 4개의 양의 솟수 합으로 표현될 수 있을까? 답을 알 수는 없다. 답은 느린 386 컴퓨터에서도 돌아갈 수 있기를 원한다. 시간 제한은 펜티엄3 800 컴퓨터를 기준으로 한다. 이 문제에서 솟수의 정의는 "완전한 두 개의 다른 정수로만 나눠 떨어지는 양수"이다. 예를 들어,37은 정수 37과1로만 나눠지는 솟수이다.입력은 한 라인에 하나의 정수N만 포함한다. 여기서 N은 10000000이하의 수이다. 이 수는 4개의 솟수의 합으로 구성될 수 있는 수이다. 입력은 하나의 수만 받는다. 입력 라인에 맞춰, 주어진 조건에 맞는 4개의 솟수를 한 줄에 출력한다. 입력된 수가 솟수 4개의 합으로 표현될 수 없으면"Impossible."이라 출력한다. 답은 여러개가 있을수 있다. 모든 정답을 받아들인다.
[http://www.n2n.pe.kr/util/find_prime.php 소수판정기]로 답을 확인해볼 수 있겠네요. --[Leonardong]
[문보창]이 푼 게 200등이네... 내 순위 찾다가 발견함. 참고로 난 394등. 나도 분발해야겠다 --[곽세환]
- TheTrip/문보창 . . . . 10 matches
int main() // cent단위로 계산
if (n == 0)
if (cin.peek() == '.')
else
if (cost[i] > aver)
if (r > 0)
for (i=0; i<count; i++) // dollor단위로 출력
if (cent < 10)
else
cout << endl;
- stuck!! . . . . 10 matches
우리는 스스로 공부한다!!
출첵은 스스로 한다.
숙제는 담임선생님 메일 silverfishlee골뱅이hotmail.com으로 제출합니다.
email 제목에는 {stuck!!}을 접두어로 붙이고 이름과 찻수를 반드시 넣어서 제출해 주세요.
1차 : 입출력그리고 간단한 변수의 종류에 대해서 공부해보고, 이름과 학번 그리고 원하는 평점을 입력받고 그것을 그대로 출력하는 프로그램을 작성해 본다. 일요일 오후 3시까지 제출해 주세요. 미 제출시 가혹한 벌금이 있습니다ㅋㅋㅋ
2차 : 3개의 수를 배열로 입력받고. 그 수중 가장 큰수와 가장 작은 수를 골라내서 출력하라.
3차 : 자신의 프로필 페이지를 만들고 이곳에 링크를 단다. [구구단]을 만들고 담임 메일로 보낸다. 이름필수. 14일 오전 12시까지. 14일 12시에 4차 숙제 나옴.
숙제는 실제로 검사된 내용이 없는듯... 담임의 불 성실함이 원인...;;
- 데블스캠프2006/월요일/함수/문제풀이/윤성준 . . . . 10 matches
if (member >= 3 && gun >= 2 && boat >= 1) {
} else {
cout << "1" << endl;
cout << "2" << endl;
cout << "3" << endl;
cout << "4" << endl;
cout << "5" << endl;
cout << "6" << endl;
cout << "7" << endl;
cout << "공주" << endl;
- 코드레이스/2007.03.24상협지훈 . . . . 10 matches
if rest < 120:
else:
if rest < 120:
else:
if rest < 120:
else:
if check(sec) == "red":
if rest < 120:
else:
if check(sec) == "red":
- CPPStudy_2005_1/STL성적처리_2 . . . . 9 matches
ifstream fin("input.txt");
if (line[i] == ' ') {
} else ++quantity;
return accumulate(grades.begin(), grades.end(), 0.0);
iter != record.end();
grades != (iter->second).end();
cout<<endl;
* sorting 이 안되는 것이 map 의 단점이다. ㅡ,.ㅡ; 그야말로 검색할때만 좋은 것 같다.
* 다른 컨테이너와 기본적인 DS의 골격가 다르기 때문에 치환정도로는 DS의 변경이 안된다.
- Class . . . . 9 matches
지하수, 해수, 민물, 빗물 이라는 개념들은 모두 '물'이라는 하나의 개념으로 추상화할 수 있다.
음.. 나만의 생각일지는 모르겠는데... 물 시리즈로 모델링을 한다면 물 클래스를 상속받는 지하수 클래스, 해수 클래스 등등으로 보통 가지 않남?;
그래서 수정해보기로 했습니다!
- 바닷물 속에는 다양한 원소들이 '염분'이라는 단어로 추상화된다. ->클래스.
- 염분의 각 원소들은 원소의 형태보다는 화합물의 형태로 존재한다.
화합물들은 서로간에 더이상 영향을 주지 않는 상태로 안정화하기 때문에
각 화합물들은 서로간에 영향을 주지 않는다.-> 객체의 성질.
- HowManyFibs?/하기웅 . . . . 9 matches
char start[101], end[101];
int output(BigInteger startNum, BigInteger endNum)
if(fibNum[i]>=startNum && fibNum[i]<=endNum)
while(cin>>start>>end)
if(start[0] == '0' && end[0] =='0')
cout << output(convertBig(start), convertBig(end)) << endl;
- TCP/IP . . . . 9 matches
소켓 프로그래밍을 위한 TCP/IP 용어 정리
위에 나왔던 그림중 전송 계층부분에 해당하는 프로토콜들이다.
간단하게 설명해서 TCP 는 신뢰성있는 전송, UDP 는 '난 보냈으니 잘 가던지 말던지' 라고 하는 프로토콜이다.
* 인제 TCP/IP 소켓 프로그래밍에 들어가 볼까? 근데 사전지식이 많이 부족하겠군
위에있는 것만으로는 택도 없지.. 그렇다면? 알아서들.. 찾아보시길.. -_-; (사실 나도 잘 몰라...)
* Richard Stevens와 Douglas Comer의 저작들: 이 쪽에서는 바이블로 통함.
* Effective TCP/IP Programming: 44 Tips to Improve Your Network Programs : TCP/IP 프로그래밍 팁 모음
* Interactive Shell이 지원되는 언어(e.g. Python, Ruby, ...)를 사용하면 TCP/IP의 개념을 아주 빠른 시간 안에 배울 수 있음. (Python은 내부적으로 C 라이브러리를 그대로 사용) 또, 현재 개발된/개발중인 시스템을 테스트 하는 데에도 매우 편리함. 예컨대, 리코에서는 XMLRPC 서버 접속을 파이썬 쉘에서 하고(import xmlrpc 한 다음에...), 거기서 사용자 등록 등의 서비스를 직접 사용하게 한다.
- VisualStudio2005 . . . . 9 matches
이번 [VisualStudio2005]에서는 Express Edition이라는 버전을 다운로드할 수 있도록 제공하고 있다.
VB, C#, C++, J# 네가지로 나누어서 제공이 되며
1년간 무료로 사용할 수 있다.
C# 자동으로 클래스 다이어 그램 그려주네요. 테스트 케이스 작성은 아직 못 해봤음. -_-
* 소스의 수정된 부분은 노란색으로 표시합니다. 저장이 되면 초록색으로 바뀝니다. 아마도 합병(merge)에서 사용될 부분인듯.
* 소스관리는 DB를 이용해서 하는 듯 합니다. MS Access로도 가능한 듯 합니다.
* 솔루션에 프로젝트 스타트 업이라는 녀석으로... 무언가를 하는것 같은데... 무얼하는지는...-_-ㅋ
- ZeroPageServer/BlockingUninvitedGuests . . . . 9 matches
제로페이지 위키의 RecentChanges 를 보면 가끔 쓰레기 페이지가 생성이 되는 경우가 있는데, 매번 수작업으로 페이지를 삭제해야 하는 번거로움이 있다. 이를 서버 또는 위키위키 자체가 막아주는 방법에 대해서 토의해 보는 페이지.
=== 주로 생성되는 페이지 ===
* 스타워즈비행기 게임 다운로드
=== 주로 접근하는 아이피들 ===
- 만약 해당 페이지를 생성하는 주체가 로봇이 아닌 검색엔진의 결과를 클릭한 사용자라면 이 방법은 적절하지 않다.
- [임인택]의 [http://purepond.cafe24.com/ 개인위키]도 ZeroPage 에서와 같은 문제점을 (그것도 더 심하게) 겪었는데 아파치의 보안기능 (.htaccess 파일 이용)을 적용해봐도 결과는 마찬가지였다. 누군가의 장난이거나 검색엔진(+사용자)의 무지에서 오는 문제인것이 확실하였는데. 결국 NoSmoke:노스모크모인모인 의 '''등록한 사용자만 글을 쓸수 있게 하는''' 기능을 이용하여 이 문제를 해결하였다. 여담으로.. 쓰레기 페이지를 손수 지우느라 엄청 고생함...-_-;;
- 강희경/도서관 . . . . 9 matches
* 인체 드로잉 바이블
|| 1 || 뛰어난직원은분명따로있다 || 김경준 || 중도 || ||
|| 6 || 19단의비밀 || 이장규, 김준술 || 중도 || [책거꾸로읽기] ||
|| 9 || NoSmoke:학문의즐거움 || 히로나카 헤이스케 || [임인택] || [학문의즐거움] ||
|| 12 || 이제는 절대로 심리전에서 밀리지 않는다 || 이토 아키라, 나이토 요시히토 || [강희경] || ||
''어떤한 이유로든 다시 읽어볼 책''
|| 5 || 이제는 절대로 심리전에서 밀리지 않는다 || 이토 아키라, 나이토 요시히토 || [강희경] || ||
* 역사 : [로마인이야기](1권은 지루하지만 2권부터 재밌음), [http://zeropage.org/~namsangboy/wiki/wiki.php/%EB%8B%A8%EC%88%A8%EC%97%90%EC%9D%BD%EB%8A%94%EC%A1%B0%EC%84%A0%EC%99%95%EC%A1%B0%EC%98%A4%EB%B0%B1%EB%85%84 단숨에읽는조선왕조오백년], 학생부군과 백수건달
* 심리학 : [설득의심리학], 성의로부터의 자유
- 데블스캠프2006/월요일/함수/문제풀이/윤영준 . . . . 9 matches
if(power>100){
else{
if(a()==1){
if(a()==2){
if(a()==3){
if(a()==4){
if(a()==5){
if(a()==6){
if(a()==7){
- 데블스캠프2011/넷째날/루비/김준석 . . . . 9 matches
if a == b then
else if a> b then
else puts "쟤가 이김"
end
end
end
- 마이포지셔닝 . . . . 9 matches
* 이책은 글로벌CEO 특강에서 스파이렉스 사코사의 박인순 사장님이 아주 아주 강력하게 추천해서 정현이와 공동 구매 해서 샀다. 아직 도서관에는 안 들어 왔는데 지금 우선 신청은 해놓은 상태다. 우선 전체적인 느낌은 보통의 성공학, 자기계발서는 어찌 좀 뜬구름 잡는듯한 내용도 많았는데 이책은 아주 현실적으로 접근하고 있다. 처세서, 성공학 같은 책중에서 이책이 가장 솔직하고 정확하게 그 길을 제시해주는거 같다. 저런 책에 관심이 있다면 이 책을 꼭 읽어 보는게 좋다. 누군가와 협력하고, 누군가의 장점을 알아볼수 있고, 좋은 아이디어를 알아볼수 있는 능력이 정말 핵심인거 같다. 그리고 혼자 잘나서 다 할수 있다는 생각을 가지면 절대 안되고, 자신이 올라탈 말이 있어야 한다. 그리고 2막은 없다는 이야기가 있는데 1막에서 성공하였다고 해서, 그 똑같은 일을 그 회사 나와서 다시 다른 회사 차려서 해서 성공하는 경우는 거의 없다. 그것은 자기 자신이 시기를 잘 만나서 성공한게 아니라 자기가 잘나서 성공한거라는것을 대중에게 보여주고자 하는 자아 때문인데, 그런 자아를 가지고서 다시 성공할 수도 없다. '수로부여'라고 자신이 한번 잘되었던 일이 있으면 계속 그런식으로 일을 하는것을 말하는 특성이 있는데, 두번째로 할때도 첫번째것이 성공하였다고 그런식으로 똑같이 해서 어떤 경쟁력도 생길수 없다.
* 이책에서는 자기 혼자서는 아무것도 할수 없다고 한다. 그리고 우리가 보통 믿고 있는것과 같이 아주 죽으라고 공부하고 일만해서 성공할 확률은 1%정도밖에 안된다고 한다. 확실히 맞는말 같다. 우리는 무조건 공부만 열심히 하면 될꺼라는 생각을 주입받았지만 그렇게 해서 성공하는건 정말 1%도 안될 정도로 힘들다고 본다. 뭐 어느정도 안정된 생활은 가능할지도 모르겠다.
- 바람의딸걸어서지구3바퀴반 . . . . 9 matches
* 이책에서는 한비야의 세계여행을 재밌게 전해준다. 이책에서 인상깊은 구절은 킬리만자로 산을 올라갈때 천천히 자신의 속도로 꾸준히 올라간다면 누구나 올라갈 수 있다고 하는 구절이다. 인생도 마찬가지로 누가 어떤 속도로 가던지 자신의 속도를 알고 자신의 속도로 꾸준히 나간다면 못 이룰게 없다. 또 얻은 교훈은 세상은 사람이 만들어낸 각종 규칙, 규범들로 돌아가지만 말만 잘하면 얻고자 하는것을 얻을 수 있다. 결국 그런 규칙, 규범도 사람이 만든 것들이기에.. 그리고 반드시 환경이 편하고 몸도 편해야 행복한건 아니란것도 느꼈다. 오히려 더 행복을 방해하는 조건으로 작용할 수도 있다. 환경이 아주 불편하고 바빠도 사람은 아주 행복할 수 있고, 오히려 행복하기에 더 좋은 조건일 수 도 있다. 오지일 수록 더 행복해 보이는 이유도 이러한 이유 때문일지도 모르겠다. 행복은 내 안에 있다. 그리고 세계에는 지금의 나의 환경과는 비교할 수 없을 만큼 불편하고 좋지 못한 환경에서도 행복하게 사는 사람이 많다는걸 느끼고 지금의 생활에 감사하자는 생각을 했다. 그리고 한비야가 어떤 외국인과 만나서 같이 등산하는데 그 외국인 행동이 꼴볼견이고 싫어할 행동만 했다고 그런다. 그런데 알고보니 그 외국인은 마약에 중독되었다가 마약을 끊고 나서 지독한 우울증에 시달리고 있다고 한다. 그 말을 듣고 쉽게 다른 사람을 판단해서는 안되겠다는 생각이 들었다. 역시 사람 사는 일에는 원인이 있고 결과가 있다. 또 무슨일을 하던지 목표를 잡고 나서 세부적인 계획을 세워서 차근 차근 해 나간다면 아무리 큰 목표라도 이룰 수 있겠다는 생각도 들었다. 사람은 계획에 있어서는 치밀해야겠단 생각이 들었고, 꾸준한 계획들의 실천이 있어야만 원하는 성과를 이룰수 있다는걸 느꼈다.
- 음계연습하기 . . . . 9 matches
피터 드러커의 '''이노베이터의 조건''' 에서
세상에 음계(etude-연습곡)를 연습하는 것보다 더 지루한 일은 없다. 그러나 [[HTML(<FONT COLOR=BLUE>위대한 연주자일수록 하루도 빠짐없이 성실하게 음계를 연습한다.</FONT>)]] 마찬가지로 [[HTML(<FONT COLOR=BLUE>유능한 외과 의사일수록 한층 더 성실하게 봉합술을 연마한다.</FONT>)]]
피아니스트는 연주 능력 향상에 크게 도움이 될 것 같지 않은 음계를 여러 달 동안 계속 연습하기도 한다. 그러나 그 연습이 피아니스트로 하여금 원하는 음악적 성취를 이룰 수 있도록 해준다. 외과 의사는 능숙한 수술 실력 향상에 크게 도움이 될 것 같지 않은 작은 손놀림을 익히기 위해 여러달 동안 계속해서 봉합용 실과 씨름을 한다. 외과 의사는 그 꾸준한 연습 덕분에 수술을 빠르고 정확하게 하게 되고, 그 결과 소중한 인명을 구하기도 한다. [[HTML(<FONT COLOR=RED>무언가를 성취하는 것은 반복적인 연습에 의해서만 가능하다. </FONT>)]]
프로그래밍도 이러한 음계(etude-연습곡)연습을 꾸준히 해서 장인(Craftsman)으로 발전해 나가는 길이 있지 않을까?
피아노 배울 때는 '하농'과 '체르니' 연습이 음계연습이었습니다. 프로그래밍에 있어 음계연습이 어떤 것이 될 수 있을지 전혀 감이 안 잡힙니다. 누구 자신만의 음계연습 알려주실 분 없나요? :) --[창섭]
맞습니다. 제가 통기타 동아리에서 연습할 때도 선후배간에 내려오는 연습법이 바로 거울을 보며 연습하는 것과 녹음하는 것이었습니다. 이는 기타, 노래 모두에게 해당하는 것으로 자신을 객관적으로 살펴볼 수 있는 방법이었습니다. --[창섭]
- 장용운 . . . . 9 matches
=== 프로필 ===
* 제로페이지(ZeroPage)
* 제로페이지 UDK스터디
* 클러그 프로젝트팀 TeamBR
* 카스파로프(Kasparov, 회장)
블로그 : http://neostage.tistory.com/
*API랑 PHP 배우면 좋음? 프로그래밍하는데 둘러보니까 이거 두개 코드 무지 짧은데 뭔가 대단하던데 ;;;; - [고한종]
*ㄴ API는 코드 완전길어 번거로운 녀석이지 - [장용운]
* 롤에서 나와 학교로 돌아와다오.. -[김태진]
- 정모/2011.5.23 . . . . 9 matches
* 저는 불참자로 보는게 맞을거 같아서 제 이름 뺐습니다. - [윤종하]
* 참가비가 만원인데 오늘 내로 등록하면 오천원이예요.
1. 겨울방학때도 그렇고 지금도 [JavaScript/2011년스터디]를 하고있어서 이번 OMS를 더 재미있게 들었습니다. 아직 잘 아는 것은 아니지만 스터디를 하다보니 ScriptLanguage가 생각보다 매력적인 면이 많더라구요. 다른 ZeroPager들도 이번 OMS를 계기로 ScriptLanguage에 관심가질 수 있다면 좋겠어요.
* 먼저 자바스크립트 스터디에 관심이 생겼어요(진경이도 어제 뭐더라.. 어떤 언어가 알고리듬이 아주 달라서 배울만한 가치가 있다고 하더라구요. 같은 맥락이지 싶어요). 내일 몇시인지 알아낸 다음에 어떻게 진행되고 있는지 살펴보고, 적합하다 판단되면 저도 동참해야겠어요. 또 세미나를 보면서, 와.. 저런걸 여기서도 구현하는구나.. 라는 생각이 들었어요. TrustModel과 비슷한걸 만들고자 하는 사람들을 아는데, 저런식으로 아예 수치화 시키는게 역시 효율적인가.. 라는 생각도 들었구요, 후에 연구실(다른데인가?)에 들어간다면 저런걸 하는걸 보게/혹은 후에는 직접 하게될 수 있다는 사실에 나름 다시 감탄(?)했어요. ..아니면 빨리 이 길을 뜨는게 답인가요?ㅋㅋㅋㅋ 아, 또 성현이형이 동아리에서 프로젝트같은거 하신다고 하셨는데, 어떤걸 누구와 어떻게하였는지(그러니까 그 전반)도 한번 들어볼 기회가 있으면 좋겠어요. 여기서 잘 복붙해서 세미나 글에도 후기를 올려야겠네요...ㅎㅎ -[김태진]
* 지난 정모때 사람이 많았어서 상대적 박탈감(?)이 느껴지는 정모였습니다. 기말이 다가오니 바쁘신지 안오신 분들도 많았고ㅜㅜ 내 OMS가 있던 날인데.. 흙흙 그래도 매번 참석하는 11이 있어 기특합니다. 사람은 빈곤했지만 내용은 학술적인 내용으로 풍요로웠네요. 세미나도 하고. 연구실에서 무슨일을 하고있는지 알수 있는 좋은 기회였습니다. 연구실도 트렌드를 따르는군요ㅋㅋ 친구추천이랑 약간 비슷한거 같아요. 나의 OMS 잘 들으셨는지ㅠㅠ 아 스크립트 소개를 위한 스크립트도 썼는데 눈이 침침해서 잘 안보여서 횡설수설했네.. 자료실에 ppt랑 스크립트 같이 올려뒀어요 비교해 보세요.. 컴파일 언어가 전부인줄 알았다면 다른 종류의 언어도 익혀보세요! 전 루비와 얼랭을 해볼 생각입니다ㅋㅋ 구루가 되어보아요:> - [서지혜]
* 아아 일주일 뒤에 후기를 쓰는 군요. 요즘 이런것에 신경을 덜쓰는것 같아요. 홍기형의 세미나 잘 봤습니다. 스크립트에 관한 OMS도 잘 봤습니다. 스크립트언어는 java말고는 아무것도 몰랐는데.. 그래서 자바==스크립트 라고 생각한적도 있었는데 좋은 지식을 얻게 되어 기쁩니다. 커스 공연덕에 1시간으로 짧게 끝난 정모라 조금 아쉽습니다. 너무 서둘러서 끝난 기분이 드네요. - [고한종]
* 자바와 자바스크립트는 서로 다른 언어입니다. 자바는 스크립트 언어가 아니예요. - [김수경]
- CompilerTheory/ManBoyTest . . . . 8 matches
end;
if k <= 0 then A := x4 + x5 else B
end;
end;
Donald Knuth 가 Algol 60의 구현 정도를 판변하기위해서 만든 프로그램. 테스트의 목적은 올바르게 구현된 scoping rule, call-by-name의 구현 정도를 판별해서 boys(algol 60 구현물)들중에서 men (쓸만한 놈)을 가려내는 용도로 고안되었습니다.
- EcologicalBinPacking/황재선 . . . . 8 matches
if (sum > pow(2, 30))
cout << "병의 수 초과" << endl;
cout << "다시 입력" << endl;
if (i == colorIndex[allColorSet][index] || i == colorIndex[allColorSet][index+1]
else
if (allColorSet == 0)
if (isMinValue(sum, minValue))
cout << color[colorResult] << " " << min << endl;
- ProjectTriunity . . . . 8 matches
파일 구조 팀 프로젝트를 위한 페이지...
=== 프로그램 소스 및 문서 (첫번째) ===
|| 다운로드 || 수정한 사람 || 설명 ||
|| Upload:파일구조팀프로젝트.hwp || 이상규 || Document ||
=== 프로그램 소스 및 문서 (두번째) ===
|| 다운로드 || 수정한 사람 || 설명 ||
|| Upload:파일구조팀프로젝트2.hwp || 이상규 || Document ||
[프로젝트분류]
- StackAndQueue/손동일 . . . . 8 matches
DeleteMe - [StackAndQueue/손동일] 로 [페이지이름고치기] 했습니다 - [임인택]
if (choice==1)
else if (choice==2)
else if (choice==3)
cout << " 1 : 입력"<<"\t"<<" 2 : 빼기"<<"\t"<< " 3 : 보여주기"<<endl;
cout << "숫자를 입력하세요.. "<< endl;
- User Stories . . . . 8 matches
User stories also drive the creation of the acceptance tests. One or more automated acceptance tests must be created to verify the user story has been correctly implemented.
One of the biggest misunderstandings with user stories is how they differ from traditional requirements specifications. The biggest
difference is in the level of detail. User stories should only provide enough detail to make a reasonably low risk estimate of how long the story will take to implement. When the time comes to implement the story developers will go to the customer and receive a detailed description of the requirements face to face.
Developers estimate how long the stories might take to implement. Each story will get a 1, 2 or 3 week estimate in "ideal development time". This ideal development time is how long it would take to implement the story in code if there were no distractions, no other assignments, and you knew exactly what to do. Longer than 3 weeks means you need to break the story down further. Less than 1 week and you are at too detailed a level, combine some stories. About 80 user stories plus or minus 20 is a perfect number to create a release plan during release planning.
Another difference between stories and a requirements document is a focus on user needs. You should try to avoid details of specific technology, data base layout, and algorithms. You should try to keep stories focused on user needs and benefits as opposed to specifying GUI layouts.
- ZPHomePage/20041228 . . . . 8 matches
* 위키를 홈페이지 속으로
* 게시판과 위키 로그인 통합
* 제로페이지 소개 페이지 제작
* 캐릭터, 로고, 배너 제작 => 후에 뱃지 제작에도 이용
* 이달의 인물소개(집중적으로 질문 가능)
* RSS로 게시판내용 출력
* 다양한 것들을 경험해보는데 중점, 기본적으로 jsp 공부
* 포토샵으로 메인레이아웃 디자인
- ZeroWikiHotKey . . . . 8 matches
3. 단축키로 기능을 분류하지 않고. 기능으로 단축키를 분류하였습니다. 단축키로 기능을 분류한 페이지는 [woodpage/VisualC++HotKeyTip] 가 있습니다.
== Edit모드로 바로가기 ==
== User Preference 바로가기 ==
== 이동으로 바로가기 ==
- sakurats . . . . 8 matches
* OCU때문에 반 강제적으로 PHP에 손대고 있습니다.
* 진로를 막연하게 고민합니다.
* 뒤늦은 공부에 제로위키는 정말 많은 도움이 되고 있습니다. 언제쯤 저도 도움이 되는 사람이 되면 좋겠네요.
참고적으로 하드웨어 하는데는 부속을 사고 하드웨어를 조립하거나 테스트할
진로를 막연하게 고민하고 있습니다. -- 혜욘
음.. 나도 막연히 고민하는데.. 어느 길로 가든 충격이 크지 않게 준비를 해두면서 막연한 고민을 구체화시키는 게 현재 내가 할 수 있는 일 같아. ^^ --창섭
앗~ 혜연선배님두 제로페이지였구나...^^ 몰랐는데..^^; --상욱
wiki:NoSmok:노스모크 에서 여기 링크되어 있는 것을 보고, 네가 전에 제로페이지 회원이라고 했던 것이 기억나서 와봤는데, 역시 있구나. 반갑다. 공부는 잘 되니? -- wiki:NoSmok:이응준
- 넥슨입사문제 . . . . 8 matches
요새 카트라이더로 말이 많은 넥센이라는 회사가 있지요. 건너 건너 아는 사람이 이 회사에 입사를 하려고 이력서를 냈더니 서류는 통과했습니다. 한데 면접 보기 전에 이 3 문제를 주고 풀어서 메일로 제출하라고 했더랍니다. 이 중 3번 문제가 재미있었습니다. :) --재동
이걸... 프로그램으로 짜서 제출하는 문제인건가요? 아니면 답만?;; -정수민
당연히 프로그램. 프로그램을 보내면 회사에서 문제에 나오지 않은 테스트셋으로 프로그램이 맞는 지 확인하겠지. --재동
- 데블스캠프2009/수요일/JUnit/서민관 . . . . 8 matches
if (operator1 == '+')
else if (operator1 == '-')
else if (operator1 == '*')
else if (operator1 == '/')
Java로 만든 계산기에서 계산기 class 부분의 구현
- 땅콩이보육프로젝트2005 . . . . 8 matches
* 휘동: 주기적으로 작동하는 엔진
* word를 기준으로 next word를 찾는다. 필요하면 frequency도 이용한다.
[땅콩이보육프로젝트2005/개발일지]
[땅콩이보육프로젝트2005/유스케이스]
* [http://www.alicebot.org/ ALICE] 뢰브너 라는 인공지능 대화 로봇 대회에서 우승한 ALICE 라는 프로그램, 사이트 가면 실제로 대화해 볼수 있음
* [http://www.aawoo.com/ 와우닷컴] 국내 최초라고 하는 영어 채팅 로봇
- 몸짱프로젝트/InfixToPrefix . . . . 8 matches
if aToken in self.precedence:
if self.isOperator(aToken):
else:
self.list.append(aToken)
if self.isOperator(self.list[0]) and \
else:
if __name__ == '__main__':
[몸짱프로젝트]
- 지도분류 . . . . 8 matches
||["프로젝트지도"]||현재 프로젝트 상황 ||
||["2012년활동지도"] || 2012년에 이루어지는 스터디, 프로젝트 지도들 ||
=== 프로그래밍 언어 ===
||["Java"]|| Sun사에서 태어나고, 여러 업체들에 의하여 발전하는 프로그래밍 언어이자 플렛폼 ||
||["Scheme"]|| MIT에서 가르치는, 함수형 프로그래밍 언어이다 ||
|| ["CVS"] || Concurrent Versions System. 공동 프로젝트를 위한 소스 버전 관리 도구 ||
|| RegressionTesting || 회귀 테스팅으로 기존의 기능에 문제 없는가 테스트 ||
- 질문레스토랑 . . . . 8 matches
[질문의힘]에 나오는 ''질문 게임''을 좀더 게임과 같은 분위기로. [지금그때2005]를 준비하는 이들이 창안.
* 정말 질문하고 싶은 경우 개인당 1회로 질문권 발동
* 메뉴판에 없는 질문이 하고 싶은 경우 포스트 잇에 적음
* 새로운 질문이 등록된 경우 주사위를 굴리기 전 웨이터가 모두에게 질문을 알려줌
* 한 질문에 대해 7분이 넘는 대답을 하는 경우 매니저가 아이템으로 중지시킴
- 큐/Leonardong . . . . 8 matches
cout << "1 : Push \t 2 : Pop \t 3: Show" << endl;
default : cout << "눈 똑바로......" << endl;
if (order>=Asize)
cout << "입력 초과" << endl;
if (order<=0)
cout << "자료 없음" << endl;
cout << endl;
- 화이트헤드과정철학의이해 . . . . 8 matches
김용옥씨의 서문의 인상이 꽤 깊게 남는다. 일상적 경험으로부터 귀납적 관찰로 쌓아올리지 않고, 조급하게 하나를 통찰하는 연역의 원리를 먼저 찾으려는 모습에 대한 비판. 과연 나의 말은 나의 과정들, 경험들을 얼마나 담고 있는건가.
* '진정한 발견의 방법은 비행기의 비행과 유사하다. 그것은 개별적인 관찰의 지평에서 출발하여 상상적 일반화의 엷은 대기층을 비행한다. 그리고 다시 합리적 해석에 의해 날카로워진 새로운 관찰을 위해 착륙한다.' - 서문중 인용된 Whitehead 글.
비유의 아이디어로서 ["NumericalAnalysisClass"] 때 배운 Interpoliation 기법들이였다. 수치해석시간의 Interpolication 기법들은, 몇몇개의 Control Point들을 근거로 Control Point 를 지나가는 곡선의 방정식을 구하는 법이다. 처음 Control Point 들의 갯수가 적으면 그만큼 오차도 많지만, Control Point 들을 늘려가면서 점차 본래의 곡선의 모양새를 수렴해간다.
우리는 진리를 찾기 위해 오늘도 자신의 공식에 Control Point 를 하나더 추가하고 있는것일지도 모른다. (단, 라그랑주일경우엔 좀 더 정확해보이는 Cubic Spline 으로 페러다임 전환을 하자. ^^;)
- 1thPCinCAUCSE/ProblemA . . . . 7 matches
1회 중앙대학교 컴퓨터공학과 프로그래밍 경진 대회 A번 문제 : 시계
아날로그 시계는 12시간 단위로 동작하며 시침과 분침이 있다. 주어진 시간 동안 시침과 분침이 몇 번 겹치는가를 알고 싶다. 예를 들어, 시작 시각이 11시 1분이고 끝 시각이 3시 20분이면, 이 시간 동안 시침과 분침은 4번 정확하게 일치한다. 각자 자기 시계로 확인 해 보세요. 시작 시각이나 끝 시각에 시침과 분침이 일치하더라도 회수에 포함한다.
이렇게 시작 시각과 끝 시각이 주어질 때, 그 시간 구간 동안 시침과 분침이 몇 번 일치하는가를 계산하는 프로그램을 작성하시오. 시간 구간은 12 시간 미만이라 가정한다.
입력은 표준 입력이다. 입력의 첫줄에 테스트 케이스의 개수를 나타내는 정수 T (10 이하) 가 주어진다. 다음 T줄의 각 줄마다 테스트 케이스가 주어진다. 테스트 케이스는 정수 네개로 이뤄진다. 이들 정수 사이에는 빈칸이 있다. 앞 두개의 정수는 시작 시각의 시와 분을 나타내고 뒤 두 개의 정수는 끝 시각의 시와 분을 나타낸다. 시는 1 이상 12 이하의 정수이고, 분은 0 이상 59 이하의 정수이다.
출력은 표준 출력이다. 출력은 T줄로 이뤄진다. 각 테스트 케이스에 대해서 자기가 계산한 회수를 한 줄에 하나씩 출력한다. T개의 테스트 케이스를 모두 맞춰야 이 문제를 맞춘 것이다.
- Boost . . . . 7 matches
1997년, C++의 국제 표준화 작업의 마지막을 알리는 종이 울리던 그 때, 자신들의 표준으로 올리자고 주장했던 표준 라이브러리의 기능이 삭제된 것에 불만을 품은 몇 명의 엔지니어들이 있었습니다. 이들 중 몇 명은 표준화 위원회 내부 임원이었는데, 이들은 결국 2차 표준화 작업 중에 표준 라이브러리의 기능을 보완하고 추가하기 위한 기구를 만들기 시작합니다. 그 결과가 바로 Boost(부스트)로서, '''여러 사람들에 의해 검토되고 보완된 C++ 라이브러리를 무료'''로 제공하는 웹 사이트입니다. C++ 표준 라이브러리와 잘 조화되어 동작하며 이식이 가능한 라이브러리를 만드는 데에 중점을 두고 있는데, 이런 취지에는 다음과 같은 동기가 있었다고 합니다.
'''라이브러리를 확장한 결과는 그 자체가 현재의 기술이 되며, 언젠가는 차후의 표준으로 제안될 수 있을 것입니다. http://boost.org 를 통해 라이브러리를 공개하는 일은 그러한 방법 중에 하나입니다...'''
쉽게 말해서, Boost는 미래의 표준 C++ 라이브러리의 일부가 될 수 있는 구성 요소들의 옥석을 가려주는 역할을 한다고 볼 수 있네요. 참으로 가치 있는 서비스이고, 이러 일을 하는 분들이 있다는 데에 고개 숙여 감사해야겠습니다.
정헌이 이거가지고 프로그램 짰잖아. --["neocoin"]
- Downshifting . . . . 7 matches
''다운 시프트Downshift''
(1) 자발적으로 일을 부담이 덜 가게 전환함으로써 삶의 즐거움을 추구하다.
(2) 자동차의 기어를 저속으로 전환한다.
미친 듯이 일하면서 행복감을 못 느끼는 사람들에게 일을 좀 줄이고 행복감을 찾으라는 이야기를 한다. 일중독에 빠져 놓치기 쉬운 가족관계, 여가생활, 종교활동, 봉사활동을 하면서 새로 얻게 된 시간을 활용해 보라고 권유한다.
굳이 일과 행복에 한정해서 생각하지 않는다면 유용한 충고로 받아들일 수 있다. 정말 원치 않는데도 하고 있는 것을 줄이고 자기가 즐기는 것을 좀더 많이 하면 좀더 행복할 것이다.
또 하나 유용한 충고. 다운시프팅 같은 변화를 행동으로 옮길 때는 작은 부분부터 바꾸어나가라. 그리고 한 번 변화에 실패했다고 포기하지 말라! -- [Leonardong]
- HardcoreCppStudy/첫숙제/Overloading/변준원 . . . . 7 matches
C++의 새로운 특징 중 하나인 디폴트 전달인자를 살펴보자. 디폴트 전달인자는 함수의 호출에서 대응되는 실제 매개변수를 빠뜨렸을 때 자동적으로 사용되는 값이다.
전달인자 리스트를 가지고 함수를 사용할 때에는 디폴트 전달인자를 오른쪽에서 왼쪽의 순서로 첨가해야 한다. 즉, 어떤 전달인자의 값을 내정하려면 그 전달인자보다 오른쪽에 있는 모든 전달인자를 디폴트 전달인자로 해야 한다.
실제 전달인자는 왼쪽에서 오른쪽으로 가면서 해당 형식 전달인자에 대입된다. 전달인자를 건너뛸 수는 없다. 따라서 다음과 같은 것은 허용되지 않는다.
beep = harpo(3, ,8); //m을 4로 설정하지 않았으므로 틀림
- OperatingSystemClass/Exam2006_2 . . . . 7 matches
1, 2번 끔찍하게 어려웠다. 중간고사 스타일로 공부했던 모두를 낚았던-_-;
족보도 필요없을 정도로 완벽히 새로운 유형의 문제들이 출제되었다. 1,2번 동기화 문제는 평소에 풀어보는 훈련을 하지 않으면 시험 시간 내에 풀기 정말 힘들다.
그 외에.. raid문제. 01학번 김모군이 "이거 내면 짐승이다"라고 했는 정말로 나왔음-_-; 그 말에 덧붙여 01학번 강모군이 "모니터 내면 짐승이다"라고 했는데 역시 나왔음. 말이 씨가 된다더니 옛말 틀린거 하나도 없다.
1. Bounded Buffer문제를 세마포어로 푸시오.(코드 작성) 단 버퍼의 사이즈는 7개가 한계이다.
2. 유니크한 우선순위를 갖는 n개의 프로세스 p1, p2, ... pn이 있다. 프린터는 2대가 있다. 이 프로세서들이 각자의 우선순위에 맞게 프린트 작업을 할 수 있도록 프린터를 할당해주는 모니터를 작성하시오.
- Perforce . . . . 7 matches
상업용 RC 이며, 오픈 소스 프로젝트 진행에 한해서는 무료로 배포된다.
프로그램은 서버, 클라이언트 환경으로 관리되며, 서버는 소스의 모아서 관리한다. 서버 프로그램은 유닉스, 맥, MSWin 버전으로 제공된다. 클라이언트는 GUI, CMD 버전의 툴을 지원하며 다양한 OS 에서 이용가능하다. 또한 IDE 와 연동역시 지원한다. (IDE에는 3dmax, maya, photoshop, office 등을 포괄하는 방대한 시스템)
비슷한 소프트웨어로 Rational ClearCase, MS Team Foundation, Borland StarTeam 급을 들 수 있다.
- ProgrammingPearls/Column6 . . . . 7 matches
* 어떤 프로그램이 1년 걸렸었는데 단계별로 쪼개서 튜닝을 했더니 하루만에 되더라하는 내용이 씌어있다.
* 알고리즘과 자료구조의 교체 : Sequential 한것을 Binary Tree로 교체함으로써 O(n*n)이 O(n*lg n)으로 줄었다.
* 시스템 의존적인 코드 튜닝 : 크리티컬한 부분을 어셈블리로 다시 짰다.
* 많은 양의 스피드업을 원한다면 다단계를 고치자. 한군데를 고침으로써 다른 부분도 고칠것이 생긴다.
- ReverseAndAdd/1002 . . . . 7 matches
if n==rev: return cnt, n
* 옆의 형이 matlab 으로 풀고 나는 python 으로 풀기 시작. python 이 시간이 약간 덜 걸렸는데,
이유는 reverse 처리 부분을 matlab 으로 빨리 프로그래밍 하기 좋지가 않다는 점. 나머지 코드는 둘이 거의 거의 비슷하게 나옴.
* 예외처리 안하고 가능한 한 빨리 짧게 풀기로 고민. 실제 bot 으로 돌릴때는 다를지도 모르겠지만. (196 넣으면 에러 발생)
- SolidStateDisk . . . . 7 matches
반도체 메모리 칩(e.g. DRAM chips) 으로 이루어진 디스크 시스템.
백업 메카니즘으로서 배터리나 일반적인 자기디스크를 내장하곤 한다. SDD 는 일반적인 HDD I/O interface 로 연결된다. 이로 인해서 얻을 수 있는 잇점은 적은시간에 빈번한 I/O 작업이 일어날 경우에, seek time 이나 rotational latency 가 없는 메모리로서, 자기디스크에 비해 월등한 성능을 나타낼 수 있다. 그에 덧붙여 구동부가 없는 구조로서 좀더 내구성이 뛰어나다고도 할 수 있겠다. 단점은, 특성상 대용량화가 어려우며 커다란 데이터의 요구량이 커질때. 즉 access time 보다 transfer time 이 더 요구될때 효율성이 안좋다.
- ThinkRon . . . . 7 matches
당신은 어떤 문제에 직면했다. 좀처럼 일이 풀리질 않는다. 이 때 스스로에게 묻는다. 만약 RonJeffries(혹은 당신이 존경하는 전문가)가 이 자리에 있었다면 어떻게 했을까?
저는 이미 RonJeffries를 어느 정도 내재화(internalize)하고 있는 것은 아닌가 생각이 듭니다. 사실 RonJeffries나 KentBeck의 언변은 "누구나 생각할 수 있는 것"들이 많습니다. 상식적이죠. 하지만 그 말이 그들의 입에서 나온다는 점이 차이를 만들어 냅니다. 혹은, 그들과 평범한 프로그래머의 차이는 알기만 하는 것과 아는 걸 실행에 옮기는 것의 차이가 아닐까 합니다. KentBeck이 "''I'm not a great programmer; I'm just a good programmer with great habits.''"이라고 말한 것처럼 말이죠 -- 사실 훌륭한 습관을 갖는다는 것처럼 어려운 게 없죠. 저는 의식적으로 ThinkRon을 하면서, 일단 제가 가진 지식을 실제로 "써먹을 수" 있게 되었고, 동시에 아주 새로운 시각을 얻게 되었습니다.
전문가 비전문가 PairProgramming을 하다가 문제에 직면했습니까? 스스로에게 물어보십시오. 만약 KentBeck이나 WardCunningham, RonJeffries 같은 사람이 이 자리에 나 대신 있었다면 이 문제에 어떻게 대응했을런지. 그리고 거기서 얻은 해답을 꼭 실행에 옮겨 보세요. 자신은 물론 상대방도 놀라게 될 것입니다. 해답은 늘 안에 있습니다.
One morning Doherty, on his way to Stiglitz’s office, said to himself, "Now what do we really talk about? What’s the nature of our conversation?" And his next thought was, "Well Stiglitz never says anything; he just asks me questions. And I don’t know the answer to the problem or I wouldn’t be down there; and yet after fifteen minutes I know the answer. So instead of continuing to Stiglitz’s office, he went to the nearest men’s room and sat down for a while and asked himself, "What questions would Stiglitz ask me about this?" And lo and behold, after ten minutes he had the answer to the problem and went down to Stiglitz’s office and proudly announced that he knew how to solve it.
- WeightsAndMeasures/문보창 . . . . 7 matches
동적프로그래밍 문제. n! 번의 수행을 해야하는 문제가 동적프로그래밍을 이용하니 O(n^2)만에 풀 수 있다. 동적프로그래밍의 힘이 대단하다.
if (t[1].weight <= t[1].strength)
if (j != 0 && dynamic[(i-1)%2][j-1] + t[i].weight < dynamic[(i-1)%2][j] &&
if (dynamic[numT%2][i] < MAX_WEIGHT)
cout << result << endl;
- WindowsTemplateLibrary . . . . 7 matches
{{|The Windows Template Library (WTL) is an object-oriented Win32 encapsulation C++ library by Microsoft. The WTL supports an API for use by programmers. It was developed as a light-weight alternative to Microsoft Foundation Classes. WTL extends Microsoft's ATL, another lightweight API for using COM and for creating ActiveX controls. Though created by Microsoft, it is unsupported.
WTL은 객체지향적인, Win32 를 캡슐화하여 만들어진 C++라이브러리로 MS 에서 만들어졌다. WTL은 프로그래머에 의한 사용을 위해 API Programming Style을 지원한다. WTL MFC에 대한 경량화된 대안책으로서 개발되었다. WTL은 MS의 ATL를 확장한다. ATL 은 ActiveX COM 을 이용하거나 ActiveX 컨트롤들을 만들기 위한 또 다른 경량화된 API 이다. WTL은 MS 에 의해 만들어졌디면, MS 가 지원하진 않는다.
지원이 되지 않는 라이브러리이기 때문에 WTL에 관한 문서는 거의 없다. 그러나 대부분의 API는 표준 Win32 콜을 거의 직접적으로 반영하므로, WTL의 인터페이스는 대부분의 윈도우즈 프로그래머들에게 친숙하다.
- XMLStudy_2002/Encoding . . . . 7 matches
XML로 작성된 파일을 프로세서가 알수 있도록 변환하는 방법을 알아본다.
*단순한 텍스트 형태의 XML문서를 다양한 언어로 작성하기위해 각 언어에서 사용하는 인코딩 방식을 사용한다.
<?xml version="1.0" encoding="Shift_JIS"?>
*XML에서 유니코드를 사용하면 한 문서 내에서 어떤 부분은 한국어로 또 어떤 부분은 일본어로 작성하는게 가능하다.
*유니코드에 대해서 자세히 알고 싶거나 참조해야 하는 경우 : [http://www.unicode.org/]
- ZeroPage회칙토론 . . . . 7 matches
* 이제까지의 자유로운 제로페이지의 문제점
회칙을 정할 때 "'제2조 회원관리 제3항 회비'" 뭐 이런 식으로 하는 건가요? 그렇게 한다면 하드카피 문서로 만들어서 신입회원들에게도 줘야겠네요... ^^;; --["창섭"]
["neocoin"]:설마, 그렇게 까지는 필요 없겠지 회원 자격 상실 조건과, 정모 만 확실하게 정하면 더 이상 무슨 규칙이 있겠냐 --상민
각 항목에 몇조 몇항을 두는 이유는 index가 용이하라고 있는것이겠지만, 이 상황에 경우는 그리 필요없을것이라 생각함.--석천
회칙의 강제성만 부여된다면 기본적인 것들(위에 나온 것들)로도 충분하다고 생각함. --지환
- 권영기 . . . . 7 matches
* [권영기/채팅프로그램]
* NIPA-Purdue 캡스톤 프로그램
* 사실 개인 위키 페이지가 있었다는 사실을 까먹고 있었습니다. 이전에는 그래도 자주 보고 업데이트도 했었는데. 성적은 잘 받았고, 전공과 관련 없는 책도 많이 읽었네요. 작년에 몇 권 정도 책을 빌렸는지 보니까 전공 비전공 합쳐서 65권 빌렸네요. 그래도 39권 정도는 다 읽거나 어느정도 읽고 도움도 많이 받았어요. 읽은 것에 대한 내용 정리가 좀 더 되있었으면 좋았을텐데. 그래도 나름 나쁘지 않네요. 10권 정도는 빌려놓고 안봤고, 16권은 빌린책을 다시 빌려서(...) 그리고 영어 점수랑 한자 급수는 2015년으로 넘어갔습니다. - [권영기] 2015/01/05
* ㅎㅎㅎ 이게 이런식으로 댓글다는것도 생각보다 재밌어요. 나중에 다시 보기도 편하고. 많이 써봐요~ -[김태진]
* 이런 식으로 쓰면 되는군요. ㅎㅎ -[권영기]
* 학교 책은 원래 다섯권씩 풀로 빌리고 한권 읽고 나머지 손도 안 댄 체 연체하는 게 재미! - [김수경]
* 제가 그런식으로 하다가 연체료가 하루에 500원씩 늘어나는 상황을 보고 경악하고, 많은 연체료를 냈습죠 ㅠㅠ - [권영기]
- 새싹교실/2012/새싹교실강사교육 . . . . 7 matches
1. 학생과 소통이 잘되는반은(잘노는 반으로도 표현 가능하다) 새싹 이후에도 교류가 일어날 가능성이 높아진다.
1. 기본 커리큘럼으로 만들은 강의자료와 교육시간은 강사들에게 약간의 준비됬다는 자신감(자신이 뭘 가르쳐야될지에 대한 확신감으로 표현 가능)을 부여한다.
1. 일주일에 2시간강의를 진행할때 나누어서 자주 만나는것이 더 관계, 대화를 진척시켜 빠른 피드백에 의한 지식 전달에 도움이 된다(출석률이 좋을경우).
1. 학생이 적으면 당연히 좋다.(4명이서 하는 반을 2명씩으로 나누었을때)
1. 현재 이 프로세스는 현장의 학습에 도움이 되는것 보다는 장기적으로 계속 새싹교실이 진행하게 하는데 도움이 된다(학습에는 강사, 학생의 역량이 더 많은 영향을 미친다.)
- 새싹교실/2012/열반/120402 . . . . 7 matches
if(n<1){
}else{
* while의 중괄호도 제대로 쓰여있지 않습니다.
* main은 함수이므로 정의할 때 괄호가 필요합니다. main -> main()
* 의도한 대로라면, N은 항상 0인 상수이어야 하므로, 변수를 좀 더 생각해볼 필요가 있습니다.
* 자잘한 문법오류들을 보니 실습이 자주 필요하다는 생각이 듭니다. 다음주부터는 새로운 내용보다는 기존 내용을 확실히 하고, 중간고사 준비도 약간 해줘야겠습니다. -[정진경]
- 새싹교실/2013/책상운반 . . . . 7 matches
1. 기초프로그래밍 과제를 하시는 데에 막히는 일이 없도록 할 것입니다.
* 왜 함수들의 마지막은 return 0;로 끝나는 지, 또 어떻게 쓰는지
조건문 : if, else, else if, switch
- 소수구하기/상욱 . . . . 7 matches
time_t start, end;
cout << "2" << endl;
if ( i % primeNumber[j] == 0 ) {
if (isPrimeNumber) {
end = clock();
cout << (end - start)/CLK_TCK << endl;
- 소프트웨어장인정신 . . . . 7 matches
소프트웨어를 개발하는데 장인정신이라는 비유를 사용한다. 프로세스와 프로세스 산출물에 초점을 맞추는 소프트웨어 엔지니어링은 규모가 작은 프로젝트에는 좋은 선택이 아니다. 평범한 소프트웨어 개발자 여럿을 두고 이를 관리하기보다 장인 소프트웨어를 개발자 한 명을 고용하는 편이 속도나 품질 모두에서 낫다. 따라서 전통적인 수공업에서 나타나는 도제생활이 초보 프로그래머에게는 필요하다. 프로그래머는 도제를 거쳐 중간 장인으로, 결국에는 장인으로 성장하게 된다.
- 정모/2013.5.20 . . . . 7 matches
* 6월말 ~ 7월 초에 5일 연속으로 진행하는 커퍼런스
* 데블스캠프 연락을 돌렸습니다. 양식은 [정모/2012.5.21] 내용을 참고로 했습니다.
Facts, Feelings, Findings, Future Action Plan. 즉, 사실, 느낀 점, 깨달은 점, 앞으로의 계획.
예를 들어 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* TIP : Internet Explorer를 제외한 브라우저(FireFox라던가 Chrome이라던가)로 들어오면 각 항목 우측에 "편집"이라고 떠요. 좀 더 편하게 수정 할 수 있죠.
* 즉흥적으로 하기가 힘들지. - [김민재]
- 테트리스만들기2006/예제1 . . . . 7 matches
사각형만 내려오는 테트리스를 만든다. 계속 내려오기만 하면 되며 끝까지 쌓이면 프로그램이 종료된다.
가로와 세로의 크기는 임의로 정한다.
==== 발로짠 원하는 위치에 점찍는 소스 ====
if (ID_BLOCK == screenArray[i][j])
else
- 3 N+1 Problem/조동영 . . . . 6 matches
if(temp % 2 == 1)
else
if(count > maxCount)
cout << "2개의 값을 입력하시오 단 첫번째것이 더 작은 숫자이어야함" << endl;
cout << "MAX cycle-length값은 " << CheckCount(num1,num2) << "입니다." << endl;
흔히 생각하는 알고리즘은 다들 비슷해서 소스가 비슷한 경우가 많어. 그걸 더욱 더 향상 시키려는 노력이 필요하지. 요즘 다른 알고리즘을 생각하려고 노력 중인데 잘 안떠오르네 ㅋ --[강희경]
- AKnight'sJourney/강소현 . . . . 6 matches
if(isPromising(1,1, path,0)){
}else
if(p>=path.length || q>=path[0].length || p<1 || q<1 || path[p][q] == 1)
if(count == savePath.length-1){
}else{
if(isPromising(p+direct[i][0], q+direct[i][1], path, count+1)){
- ChocolateChipCookies/허준수 . . . . 6 matches
if(d <= 5.0) {
if(cookies[i].numCookies > max_num)
cout << max_num <<endl;
cout << endl;
if(cin.peek() == '\n')
else
- CompleteTreeLabeling . . . . 6 matches
k진 완전 트리의 깊이와 분기계수가 주어졌을 때 트리의 노드에 번호를 붙일 수 있는 모든 가능한 방법의 수를 결정해야 한다. 이때 각 노드의 레이블은 그 자손의 레이블보다 작아야 한다. 이진 힙 우선 순위 큐 자료 구조가 바로 이런 속성을 가진다(이진 트리이므로 k=2). N개의 노드가 있는 트리에 번호를 붙일 때, 1에서 N까지의 레이블을 붙일 수 있다고 가정하자.
입력 파일은 여러 줄로 구성된다. 각 줄에는 두 개의 정수 k와 d가 들어있다. k>0이며, 이 값은 k진 완전 트리의 분기계수를 나타낸다. d>0며, k진 완전 트리의 깊이를 나타낸다. k X d ≤21인 모든 k와 d에 대해 작동하는 프로그램을 만들어야 한다.
입력된 각 줄에 대해 한 줄의 결과를 출력한다. 그 줄에는 위에서 설명한 조건을 만족시키면서 k진 트리에 레이블을 붙이는 경우의 수를 출력한다.
- HowManyZerosAndDigits/김회영 . . . . 6 matches
cout<<"팩토리얼을 구할 수와 진수를 차례대로 입력해주세요";
cout<<"0의 갯수와 숫자의 갯수를 차례대로 출력합니다.\n";
cout<<endl;
if(n>1)
else
if(n%radix==0)
- LC-Display . . . . 6 matches
한 친구가 방금 새 컴퓨터를 샀다. 그 친구가 지금까지 샀던 가장 강력한 컴퓨터는 공학용 전자 계산기였다. 그런데 그 친구는 새 컴퓨터의 모니터보다 공학용 계산기에 있는 LCD 디스플레이가 더 좋다며 크게 실망하고 말았다. 그 친구를 만족시킬 수 있도록 숫자를 LCD 디스플레이 방식으로 출력하는 프로그램을 만들어보자.
입력 파일은 여러 줄로 구성되며 표시될 각각의 숫자마다 한 줄씩 입력된다. 각 줄에는 s와 n이라는 두 개의 정수가 들어있으며 n은 출력될 숫자(0<=n<=99,999,999), s는 숫자를 표시하는 크기(1<=s<=10)를 의미한다. 0이 두 개 입력된 줄이 있으면 입력이 종료되며 그 줄은 처리되지 않는다.
입력 파일에서 지정한 숫자를 수평 방향은 '-'기호를, 수직 방향은 '|'를 이용해서 LCD 디스플레이 형태로 출력한다. 각 숫자는 정확하게 s+2개의 열, 2s+3개의 행으로 구성된다. 마지막 숫자를 포함한 모든 숫자를 이루는 공백을 스페이스로 채워야 한다. 두 개의 숫자 사이에는 정확하게 한 열의 공백이 있어야 한다.
- PowerReading . . . . 6 matches
http://images.amazon.com/images/P/0960170618.01.MZZZZZZZ.gif [[BR]] ISBN:0960170618
읽기에 도움을 주는 4주간의 코스. 의외로 그 방법들이 복잡하지 않고 단순하고 간결하다.
영어가 쉬우므로 영어원서에 익숙하지 않는 사람들도 쉽게 읽을 수 있다. 앞부분만 읽어보긴 했는데, 추천할만 한 것 같습니다. '더 복잡한 룰'은 직접 필요할때 만들어서 이용하시면 될듯.
- 저도 읽어보고있는데 괜찮은것 같아요. self-testing ..(?) 을 안해서 그렇지..-_-; Do It Now! 를 마음속으로만 외치는군요.....- 임인택
- 휴가 나와서 글쓰기 귀찮음에도 불구하고, 아주 아주 많은 도움을 준 책이길래 이렇게 글을 씁니다. 뭐 이 한권 읽고 기억나는건 읽을때 손가락으로 가리키면서 읽는거 밖에 없지만, 이 조그마한 차이가 엄청난 변화를 가져왔죠. 예전보다 읽는 속도가 3~4배 정도는 빨라진거 같고(원래 무진장 천천히 읽긴 했죠 -_-;) 속도가 좀 빨라지다 보니깐 책 읽는 재미도 느끼게 되어서 더 많은 책을 읽게 되었죠. 결국 이책에서 익힌 기법으로 책을 많이 읽게 되었기에, 이 책은 저에게 가장 큰 영향을 준 책이 된 셈이네요. - 남상협
- PrimaryArithmetic/황재선 . . . . 6 matches
if each + int(b1) + int(b2) >= 10:
if self.carry == 0:
elif self.carry == 1:
else:
if __name__ == '__main__':
if n1 == '0' and n2 == '0':
- Ruby/2011년스터디/강성현 . . . . 6 matches
* 동문 네트워크 홈페이지를 새롭게 만들어보는 프로젝트
* 기존 사이트를 조금 더 사용자 친화적으로 만들고, 모바일 기기에서도 부담없이 볼 수 있도록 함.
* 동네 로그인, 즐겨찾기/동문게시판/나눔터/작은모임/회원검색 의 5개 페이지로 구성
* ftp://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/ 에서 다운로드
* 루비 설치폴더\bin 안에 http://www.winimage.com/zLibDll/zlib125dll.zip 에 있는 dllx64\zlibwapi.dll 파일을 복사하고 이름을 zlib.dll 로 바꿈
- TestDrivenDevelopmentBetweenTeams . . . . 6 matches
관련 문서 : http://groups.yahoo.com/group/testdrivendevelopment/files 에 Inter-team TDD.pdf
팀단위로 TDD를 한다고 한다면?
일단 각 팀들끼리 TDD 를 하면서 팀들간의 대화를 통해서 일종의 공통 interface 를 빼낼 수 있다. 일단은 일종의 MockObject 로 가짜값을 채워서 테스트를 통과시킨뒤, 실제 Object 가 구현되면, 천천히 하나씩 실제 Object 의 interface 를 끼워가면서 테스트를 통과하는지를 확인한다. 그리고 최종적으로 실제 Object 로 MockObject 를 대체시킨다.
Java 의 경우 inteface 키워드나 abstact class 를 이용하여 interface 를 정의할 수 있다. 팀의 구성원끼리 Pair를 교체한 뒤 interface를 정의하면 더욱 효과적이겠다.
["TestDrivenDevelopment"]
- VonNeumannAirport/Leonardong . . . . 6 matches
Traffic하고 Configuration을 각각 2차원 행렬로 표현했다. Traffic은 ( origin, destination )에 따른 traffic양이고, Configuration은 origin에서 destination 까지 떨어진 거리를 저장한 행렬이다. 전체 트래픽은 행렬에서 같은 위치에 있는 원소끼리 곱하도록 되어있다. 입출력 부분은 제외하고 전체 트래픽 구하는 기능까지만 구현했다.
매우 데이터에 의존적인 프로그램이라는 생각이 든다. 만약 석천이형 생각대로 요구사항이 바뀐다면 지금 프로그램은 감당해낼 수 있을까?
self.matrix.append([0]*numofGates)
if __name__ == "__main__":
- 가위바위보/성재 . . . . 6 matches
cout << "이선호의 이긴 수는 " << win <<"번이고," <<endl
<<"진 횟수는 "<< lose <<"번이고,"<< endl
<<"비긴횟수는 "<< moo <<"입니다."<<endl;
cout << "\n\n"<<"강인수의 이긴 수는 " << lose <<"번이고," <<endl
<<"진 횟수는 "<< win <<"번이고,"<< endl
<<"비긴횟수는 "<< moo <<"입니다."<<endl;
- 대학원준비에대한조언 . . . . 6 matches
여러명이 모여서 스터디를 한 지도 삼 주가 다 되어간다. 같이 준비하면서 때로는 너무 사소한 것에 매달리는 것이 아닌가 싶을 정도로 한 부분에서 넘어가지 못하는 경우가 있다. 한참을 이야기해서 결론을 내보니 이미 말하던 도중에 나왔던 이야기였거나 책을 보면 알 수 있는 내용인 경우도 있다. 하지만 그렇게 해서도 결론이 나지 않는 문제들이 있었고 [대학원준비06] 팀은 교수님께 찾아가서 질문을 했다.
질문에 대한 답도 얻었지만 [대학원준비에대한조언]을 얻은 것이 더 큰 성과였다고 생각한다. [열린질문]을 던지면서 스스로 고민하는 시간이 중요하다는 이야기를 많이 하셨다. [대학원준비06] 팀이 과목 요약을 하고 난 다음에는 고민하는 시간을 가졌으면 좋겠다.
그 밖에 연구실을 방문하라는 조언을 들었다. 포항공대에 [OpenLab]에 다녀온 경험을 생각해보면 매우 와닿는다. 심지어 아무것도 모르고 연구실을 찾아가고, 10분 남짓한 시간을 둘러보고 오더라도 연구실 사람들 직접 만날 수 있다는 사실 만으로도 얻을 것이 있다. 몇 년의 시간을 보낼 장소를 선택하는데 하루의 노력이 아까울까!
- 도덕경 . . . . 6 matches
... 공이 다 이루어지고 일이 다 되어도 백 가지 성의 사람들이 한결같이 일컬어 나 스스로 그러할 뿐이라고 하는도다!
... 내가 함이 없으니 백성이 스스로 질서를 찾고, 내가 고요하기를 좋아하니 백성이 스스로 바르게 되고, 내게 일이 없으니 백성들이 스스로 부유하게 된다. 나는 바램을 가지지 않는다. 그러니 백성들은 스스로 통나무가 될 뿐이다.
이부분 읽고 감상문 쓸 때 따로 옮겨놔야지..라고 생각했었는데[[BR]]
- 마방진/김아영 . . . . 6 matches
if(y==-1)
if(x==-1)
if(a[y][x]!=0)
if(y>4)
if(x>4)
cout<<endl;
- 숫자야구/방선희 . . . . 6 matches
if ( x1 == a )
if ( x2 == b )
if ( x3 == c )
if ( x1 == b || x1 == c)
if ( x2 == a || x2 == c)
if ( x3 == a || x3 == b)
- 정모/2007.3.27 . . . . 6 matches
- 현재 학회비가 제대로 들어오지 않고있따.(이유 : 타 학회의 인수인계 미숙, 과사의 실수)
- PC관리 비용이 나오지 않을 경우 우리 또한 PC실을 관리할 이유가 없다(학교에 맡겨버리자)
- 회의가 끝난뒤 우리는 학회이니까 자신이 부족한 과목, 급한 숙제, 궁금한점 등등에 관해서 주제를 만들고 활용하는 방식으로 했으면 한다.
- 각 회의마다 적당한 수의 ost주제가 나와야 하므로 홈페이지에 페이지를 만들어 주제를 미리 적어보는 방법도 고려해 보자.
* 프로젝트 or 스터디
=> 온라인과 오프라인을 병행해서 프로젝트를 진행할 예정입니다.
- 타도코코아CppStudy/0728 . . . . 6 matches
* 윈도우 프로그래밍의 기본
* API는 안합니다. 빠른 결과물 산출을 위해 MFC로 바로 갑니다.
* 없습니다. 대신 윈도우즈 프로그래밍의 기본을 공부해오세요. 자신이 이해갈때까지
* 개인프로젝트 시작. 매주 검사
* 게임 만드는데 필요한 간단한 프로그래밍적 지식
- 01학번모임 . . . . 5 matches
01 학번들의 협력을 통해 제로페이지 내에서 모범적인 고학번의 모델을 제시하기 위해 앞으로도 지난 2006년 3월 10일의 모임과 같은 자리를 꾸준히 가지면 좋을것 같다는 생각이 드는데...
어차피 사회에 나가면 서로 협력하며 살게될 우리 동기들 (아닌가..?ㅋ) 가끔씩 모여서 나쁠것 없지 않은가...?
그래 계모임 하나 만들자. ㅋㅋ 한, 두달에 한번씩 정기적으로 만나는것도 좋을듯~ - [(namsang)]
-_-그정도야 뭐.... 서로 이야기도 하고 좋지.. - 선호
- 2006신입생/방명록 . . . . 5 matches
- 06학번 김준석입니다~~ 제로페이지 가입신청해써요~
내위에 준영이 저주하겟다. 뼈 빠지게 10분동안 적을걸 단 10글자로 동시수정을 일으켜 날려버리다니 ㅠㅠ
- 오 차형아!! 다음에 제로페이지 선배님들께 첨삭 받으렴~ 쉽고 재밌단다! ㅎ - [허아영]
시선이 따가우므로..ㅎㅎ
-정리 한다고 제가 좀 정리를 했지만 그래도 지저분한 모양이..ㅡㅡ;; 그러고 임의로 제가 정리 한거 기분 나쁘신 분들 죄송합니다^^; - [송수생]
- AncientCipher/정진경 . . . . 5 matches
if (l1!=l2) { printf ("NO\n"); return 0; }
if (c1[i]==c2[j]) break;
if (j>=26) break;
if (i<26) printf ("NO\n");
else printf ("YES\n");
- BasicJava2005/3주차 . . . . 5 matches
* String은 Java에서 기본적으로 지원하는 String을 저장하는 자료형
* 기본 자료형과 거의 마찬가지로 사용할 수 있다.
* import [패키지 이름]; 으로 사용할 수 있다.
* java.lang.* 패키지는 기본으로 import되어있다.
* add/remove/get 함수등을 사용하여 배열에 마음대로 추가/삭제가 가능하다.
- DatabaseManagementSystem . . . . 5 matches
DBMS라는 것은 DB를 다루기위해서 만들어진 프로그램이다. 이것은 다수의 사용자가 요청한 정보를 처리합니다. 원래 대용량의 데이터를 다루기위해서 만들어진 컴퓨터때문에 만들어진 것으로 DBMS는 컴퓨터의 back-end 프로그램의 표준화된 일부로서 완전히 통합되었다.
- DebuggingSeminar_2005 . . . . 5 matches
''기록으로 남길분들 추가 바람. 제가 기억을 몬해서;;'' - [eternalbleu]
|| [http://www.dependencywalker.com/ DependencyWalker] || Dependency Walker (Included at VS6) ||
|| [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tools/tools/rebase.asp ReBase MSDN] || Rebase is a command-line tool that you can use to specify the base addresses for the DLLs that your application uses ||
- JTDStudy/두번째과제/장길 . . . . 5 matches
public class TestButtonMain extends Applet implements ActionListener{
public class TestFrame extends Frame implements WindowListener{
public void windowDeiconified(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
* 너무 오랫만에 숙제를 했네요....... windfencer.zerpage.org 여기에 들어가면 위 소스로 만든 애플릿을 확인하실수 있습니다. - 장길 -
- JavaStudy2002/상욱-2주차 . . . . 5 matches
if ( board.boardState(tempX, tempY) == true ) {
else
if ( board_[x][y] == true )
else
if ( boardCount[i][j] == 0 )
- JollyJumpers/강소현 . . . . 5 matches
if(isJolly(arr, size)){ //졸리점퍼 체크
}else{
if(Math.abs(arr[i+1]-arr[i]) >= size)//size 넘어가면 1~n-1을 넘어가니까.
else
if(jollyNum[i] == 0)//1~n-1 중 하나라도 포함 안하면 not jolly
- NumberBaseballGame . . . . 5 matches
1. 우선 컴퓨터가 렌덤으로 자리수가 3인 숫자를 만듭니다.[[BR]][[BR]]
사용자는 스트라이크와 볼수로 컴퓨터가 만든 수를 추리하여 찾는 것입니다.
만약 그렇다면, 다음의 경우에 스트라이크와 볼은 각각 얼마인가요? 혹은 어떤 에러 메시지를 출력하나요?
* 아래와 같은 예제 식으로 소스를 만든 페이지에 넣어 주세요.
반대로, 사용자가 숫자를 부르면 컴퓨터가 맞추게 하는 방법도 있습니다. 두 가지를 합하면 컴퓨터와의 대결이 됩니다. ^^ (그런데 거의 이기기가 불가능합니다.) 소스는 [http://my.netian.com/~sshiskom/file/python/baseball.py 여기]에.
- SeedBackers . . . . 5 matches
2005년 2월 졸업생들. 졸업 논문 심사를 통과하기 위해. 조금 더 양질의 논문을 산출해내기 위해 서로의 논문을 같이 준비하고 피드백(feed-back)을 넘어선 시드백(seed-back)을 주고받기 위한 프로젝트 페이지
|| [임인택] || OpenSource 프로젝트 산출물의 품질 향상을 위한 프로세스 개선 방안 || SE 연구실 ||
[프로젝트분류]
- TheKnightsOfTheRoundTable/하기웅 . . . . 5 matches
헤론의 공식을 이용해 세변으로 넓이는 구하면
헤론의 공식을 이용해서 구한 넓이 = (내심원의 반지름 x 세변의 합)/2 로 구할 수 있다.
if(halfSum==0)
cout << "The radius of the round table is: 0.000"<<endl;
cout << "The radius of the round table is: " << 1.0*sqrt(halfSum*(halfSum-a)*(halfSum-b)*(halfSum-c))/halfSum << endl;
- 가위바위보/재니 . . . . 5 matches
ifstream fin("gawi.txt");
if (choose[0] == choose[1])
else if(choose[0] == choose[1] + 1 || choose[0] == choose[1] - 2)
else result[2]++;
- 데블스캠프2006/월요일/연습문제/if-else/김대순 . . . . 5 matches
== 데블스캠프2006/월요일/연습문제/if-else/김대순 ==
if((i>=50)&&(i<=100))
if((j%3==0)||(j%5==0))
else
- 데블스캠프2006/화요일/pointer/문제4/이장길 . . . . 5 matches
cout <<reverse << endl;
if(reverse[i] == buf[i]){
else{
cout << "false" << endl;
cout << " true " <<endl;
- 레밍즈프로젝트/스펙분석 . . . . 5 matches
[레밍즈프로젝트]
Upload:레밍즈프로젝트_게임스펙분석.gif
Upload:레밍즈프로젝트_맵제작스펙.gif
- 벡터/임민수 . . . . 5 matches
sort(vector1.begin(), vector1.end(), comp_score);
cout << vector1[i].score << endl ;
sort(vector1.begin(), vector1.end(), comp_name);
for(vector<student>::iterator j=vector1.begin(); j<vector1.end(); j++)
cout << (*j).name << endl ;
- 새싹교실/2011/Pixar . . . . 5 matches
* FiveFs : Facts(사실), Feelings(느낌), Findings(알게된 점), Future Action Plan(앞으로의 계획), Feedback(피드백)
* 위에 후기를 쓰는 이유가 새싹 교실을 더 잘 진행하고, 어떤 것을 배웠는지 돌아보기 위해서라고 써있습니다. 그런데 그냥 막연히 좋았어요. 재미있네요. 라고 쓰면 다음 새싹 교실에도 별로 도움이 안 되고, 배운 내용도 돌아볼 수 없답니다. 그러니 처음에는 조금 어색하더라도 FiveFs를 넣어 후기를 작성해주세요.
* 지난주에 돈가스를 먹은 것에 대해 후기를 쓴다면 : "지난주에 강남에 가서 하나에 5만원하는 돈가스를 먹었다.(사실) 기대를 잔뜩 했는데 별로 맛이 없었다.(느낌) 강남은 땅값이 비싸서 값만 보고 엄청 맛있을거라 기대하면 안된다는 것을 알았다.(깨달은점) 다음에는 미리 인터넷에서 평을 찾아보고 별점이 높은 돈가스집을 찾아서 가봐야겠다.(앞으로의 계획)"
* 그리고 Feedback은 ''앞으로의 계획''을 지켰는지 체크하는 부분입니다. 이 부분은 일단 적지 마세요~ 새싹 교실에서 설명하겠습니다.
- 수업평가 . . . . 5 matches
*유용성 : 이 과목의 구체적 지식이 수강/졸업 이후 자신의 삶에서 '''실질적'''/'''직접적'''으로 얼마나 많은 도움이 되었나
||ArtificialIntelligenceClass || 0 || 1 || 2 || -2 || 1 || 1 ||1 ||
||진짜에어로빅(전선혜) || -1 || 1 || -1 || -1 || -2 || 1 ||-2 ||
||에어로빅(스포츠댄스) || 0 || 1 || 2 || 2 || 5 || 1 ||5 ||
||[글로벌CEO] || 4 || 4 || 4 || 4 || 16 || 2 ||8 ||
- 여름방학프로젝트 . . . . 5 matches
= 여름방학 프로젝트 =
|| [MFCStudy_2005_1] || [상협] [eternalbleu] || 참가자 없는 관계로 폐쇄 ||
|| [제로Wiki] - 종료 || [상협] || - ||
== 프로젝트 제안 ==
[프로젝트분류]
- 전철에서책읽기 . . . . 5 matches
서서 책을 오래 보다 보니 나중엔 등이 아픈것 같다. 자세를 똑바로 하고 봐야 한다. --[인수]
하루에 편도 한시간반정도 지하철을 타는데. 부족한 잠과 너무 푹신한 쿠션으로 인해 앉으면 바로잔다. -- [이승한]
작년 1월에 지하철을 타며 책읽기를 했는데 한 번쯤 이런 것도 좋을 듯. 나름대로 재미있는 경험. :) Moa:ChangeSituationReading0116 --재동
- 난 버스에서 읽는데 전철에 비해 상대적으로 사람들의 시선을 덜 받는다. - [임인택]
- 정모/2004.3.19 . . . . 5 matches
== 현재 프로젝트 진행상황 ==
* 제로페이지서버 문제로 인해 보류
== 프로젝트 & 스터디 ==
* 서버 문제로 보류
- 조재화 . . . . 5 matches
* 이메일 : dadaback엣hanmail닷net (DeleteMe 이메일주소를 그대로 적어두시면 로봇들이 긁어간답니다.. - [임인택] )
* 03. 한해동안 C++MFC와 PYTHON그리고 JAVA를 좀 잘 이해해서 컴퓨터 프로그램이나 겜을 많이 만들고 싶당.
* 앞으로 프로그래밍을 열심히 하쨩~!
- 주민등록번호확인하기/정수민 . . . . 5 matches
if (k==a[12]) printf("대한민국 국민이네요~ ^^ 안녕하세요!");
else if (k==10) {if (a[12]==0) printf("대한민국 국민이네요~ ^^ 안녕하세요!");}
else printf("혹시 간첩???? -_-;;");
- 지금그때2006/홍보 . . . . 5 matches
학번교차로 올린다.
[나휘동]이 독단으로 올리긴 했으나 미정이었다는 사실은 왜 아무도 몰랐는가?
Upload:NowThen2006ContactList.xls
-저는 정희록 선배님 빼고는 다 성공적으로 메일을 보냈습니다. --아영
연락 일정 금요일 이메일로 1차 연락.
선배님의 의미를 굳이 우리과로 제한하지 않으려 했어요. 목록을 만들다 보니 거의 우리과 출신이긴 하네요. 인택이형도 아는 분들께 많이 알려주세요~ -- [나휘동]
- 2010Python . . . . 4 matches
* 각자 원하는 매체로 공부해 온 뒤 5분 정도씩 자기가 공부한 내용을 발표하고 서로 토론.
* [박정근] - python의 특이한 배열? keyindex를 지정가능하고 순서대로 출력도 가능함. 그리고 python은 지정하는것이 특기인 듯
* Python을 도구로 CS를 공부하기 좋은 자료. 24시간 분량의 동영상 강의와 교재가 제공된다.
- 2학기파이선스터디/모듈 . . . . 4 matches
* 파이썬 프로그램 파일 혹은 C 확장 파일
* 프로그램(함수, 클래스... )과 데이터를 정의
* 모든것이 모듈단위로 분리되어 있다.
mymath.py 라는 파일로 저장한다..
- BusSimulation/영창 . . . . 4 matches
* 각 역마다 사람이 증가하는 값을 다르게 정해야함. (시시각각에 다르게 적용되어야 하기 때문에 적당한 범위 안에서 랜덤으로 처리해야한다.)
타야하는 버스는 마찬가지로 랜덤으로 할당해야한다.
왜 OOP적 접근법이 필요한지 약간 감이 잡힌다고 해야할까? 이런 현실의 내용을 simulation 하기에는 structured programming의 접근법으로는 참 다루기가 힘든점들이 많을 것 같다. - [eternalbleu]
- Factorial2 . . . . 4 matches
Factorial of Number A 란 A! 식으로 표현하며, A 의 계승이라는 표현을 씁니다.
A! = A * (A-1)! 식으로 정의되며, 1! = 1 입니다.
임의의 수 A 에 대한 Factorial 을 구하는 프로그램을 작성하시오. (A 는 20이상이 될 수 있습니다.)
Hint. 기본자료형으로는 택도 없습니다.
- Hartals . . . . 4 matches
방글라데시의 정당들은 자신의 세를 과시하기 위해 정기적인 동맹 휴업(파업)을 추진하는데, 이 동맹 휴업은 경제에 상당한 피해를 끼칠 수 있다. 이 문제에서는 각 당을 동맹 휴업 지수(hartal parameter)라고 부르는 h라는 양의 정수로 나타낼 수 있다고 하자. 이 동맹 휴업 지수는 한 동맹 휴업과 다음 동맹 휴업 사이의 기간을 날짜 수로 표시한 값이다.
이 결과를 보면 14일 동안 정확하게 다섯 번의 동맹 휴업(3, 4, 8, 9, 12일)이 있음을 알 수 있다. 6일은 금요일이기 때문에 동맹 휴업이 일어나지 않는다. 결국 2주 동안 근무 일수로 5일의 동맹 휴업이 실시된다.
몇 정당의 동맹 휴업 지수와, 어떤 정수 N이 주어졌을 때, N일 가운데 동맹 휴업으로 인해 일을 하지 않은 근무 일수를 계산하라.
- Hessian . . . . 4 matches
Resin 을 이용하는 경우라면 Hessian 이용해서 간단하게 RPC 를 구현할 수 있다.
public class RpcTest extends HessianServlet implements Basic {
그리고 class 화일을 Servlet 이 돌아가는 디렉토리에 복사한다. 이로서 RPC Publish 기본준비는 ok.
Java 의 경우는 다음과 같다. 위에서 정의한 interface 인 Basic 이 있어야 한다.
- JAVAStudy_2002/진행상황 . . . . 4 matches
이제 슬슬 네트워크로 들어가도 될것 같다.[[BR]]
*나름대로 채팅을 다짰음 ^^;; 열라 허접 ~~ --;
* 2월 7일 : Core Java 책 보다가 질려서 다른책으로 바꿔서 공부하는중 무지 삽질 한 결과 대기실 UI 만듬. 제 홈페이지랑 연결해가지고 보여주고 싶지만 연결을 어떻게 해야 할줄 몰라서..^^;;
* 2월 9일 : Java 네트워크 부분 보기 시작함.. 집에 컴퓨터가 구린 관계로 읽기만 해볼 예정..
- Map/임영동 . . . . 4 matches
for(it=decoder.begin();it!=decoder.end();++it)
{//이런 식으로도 된다. 하지만 반복자 쓰는 연습을 하기 위해 아래의 식으로.
for(string::iterator i=input.begin();i!=input.end();i++)
- RandomWalk2/서상현 . . . . 4 matches
파이썬으로 개발함. 7/1 밤 11시부터 1시까지 3시간. 중간에 ["RandomWalk2/질문"]. 7/2 다시 30분간 수정. 다시 질문. 답변을 받고 몇군데를 다시 고쳐서 업로드함.
판을 나타내는 방법의 선택 덕택에 3차원으로 확장하는 것도 그다지 어려울 것 같지는 않다. 해 봐야 알겠지만.
해스켈로 시도. [http://my.netian.com/~sshiskom/file/haskell/walk.hs 소스].
- RandomWalk2/질문 . . . . 4 matches
(1) 음식을 먹고 일시적으로 슈퍼바퀴가 된 정상바퀴가 5턴이 지나기 전에 다시 음식을 먹으면 어떻게 되나요? 예를 들어 슈퍼바퀴가 된 지 2턴만에 다시 음식을 먹었다면 그 뒤로 8턴동안 슈퍼바퀴인지, 아니면 다시 이때부터 세서 5턴간 슈퍼바퀴인가요?
(2) 한 턴에 둘 이상의 바퀴가 동시에 음식이 있는 칸에 도착했을 때, 바퀴의 수가 음식의 수보다 많다면 바퀴들은 어떠한 순서로 음식을 먹게 되나요?
''RandomWalk2 Requirement Modification 4 is now updated. Thank you for the questions.''
- Self-describingSequence . . . . 4 matches
솔로몬 골롱(Solomon Golomb)의 자기기술 수열 <f(1), f(2), f(3), ... >은 각 k에 대해 k라는 숫자가 정확하게 f(k)번 등장하는 속성을 가지는 양의 정수로 구성된 유일한 비감소수열이다. 이 수열의 앞 부분을 생각해보면 다음과 같은 식이라는 것을 알 수 있다.
[http://online-judge.uva.es/p/v100/10049img2.gif]
어떤 값 n이 주어졌을 때 f(n)의 값을 계산하는 프로그램을 만들어야 한다.
- UniversalsAndParticulars . . . . 4 matches
WardCunningham은 이런 말을 했다. 작지만 유용한 프로그램을 매일 만들어봐라. 복잡하고 큰 걸 만들다 보면 중요한 아이디어가 감추어져 버릴 수 있다.
자바 스윙에서 어떤 API를 통해 어떻게 그림을 그리는지를 가르치기 보다, Event Driven Programming을 가르치되, 스윙이라는 맥락을 방편으로 이용해 가르친다. 해당 프레임웍의 API가 복잡한 경우, 학습자들은 오히려 그 API를 외우고 공부하느라 더 중요한 것을 잊을 수 있다. 따라서 이런 경우 가르치는 사람이 미리 좀 더 추상적인 차원의 레이어를 만들어(이를 교육학에선 스캐폴딩이라 한다) 제공할 수 있다.
- ZeroPagers . . . . 4 matches
회원 : (정회원; [회원조건]에 맞는 회원)
학부생들은 자신의 개인페이지를 현재의 계획, 관심사를 적는 등의 용도로 사용해 주세요.[[BR]]
* [이선로]
["홈페이지분류"], ["제로페이지분류"], ["ZeroWikian"]
- erunc0/Mobile . . . . 4 matches
mobile. 왠지 거창하다. 내가 하는 일은 요즘 pda를 산다면 대부분이 사는 arm processor 를 장착한 wince 기반의 ipaq 기종에 미니 게임을 만든다는.. --; 아직 시장도 없거니와. sk 쪽에서 휴대폰에 이어 앞으로 펼쳐지게(?)될 pda 시장에 sk 이름에 걸맞게 휴대폰 장사에 이어 독점 비슷하다 싶이 하기위해 자그마치 500 억이라는 투자로 인해 매일 같이 삽질을 하고 있다.
* lan card - 돈있으면 구입해서 한다. compile 속도가 비약 적으로 상승. -_-;
* 속도차이는 별로 없지만, dc를 이용해 뿌리는 법은 엄연히 느린법..
- 김범준 . . . . 4 matches
duco ornamentum(라틴어로 계산기이지만 컴퓨터라고 하기로 함)
-> ducorna로 생략
-> 역순으로 배열해서 anrocud
- 데블스캠프2005/참가자 . . . . 4 matches
|| 송수생 || 누가 내이름 ㅅㅅㅅ로 올린겨 --+ ||
|| 임수연 || 개인경로 ||
현재 동문서버와 개인적인 경로로 참가자를 받고 있습니다.
- 데블스캠프2006/참가자 . . . . 4 matches
이번 프로젝트 진행 시작과 함께 SVN, SSH 계정을 발급할 예정입니다. 이때 사용알 계정 ID를 입력해주세요. - [eternalbleu]
* 알바 날짜가 어떻게 될지 모르는 관계로 참여 여부가 불확실합니다. 잠정적으로 빠지는 걸로 하겠습니다. 알바 날짜 잘 결정되면 다시 올리도록 하지요. --[인수]
- 삼총사CppStudy/Inheritance . . . . 4 matches
일단 완성이다. 기쁜마음으로 제출을 했다.
다음날 문제점이 발견되었다. 마린과 파이어뱃으로 부대를 구성하여 배열에 저장하려고 하였는데 두개의 클래스가 틀리기 때문에 한개의 배열로는 포함할 수가 없었다.
아.. 이 문제를 어떻게 하면 좋을까~? 이럴때 사용할 수 있는 스킬이 바로 '''상속(Inheritance)'''이다.
- 상협/너만의명작을그려라 . . . . 4 matches
* 이책의 목적은 한 인간이 삶을 훌륭하게 살아가려면 어떻게 해야 하는지에 대해서 지금까지 살와왔던 사람들중에서 훌륭한 삶을 살았다고 평가되는 사람들을 예로 들면서 그 방법을 제시해주고 있다. 이책은 이 저자혼자서 내용을 생각해서 쓴 책이라기보다 인류에게 훌륭한 인물로 평가받은 사람들이 한 말들과, 그 행적등을 밑 바탕으로 해서 쓰여진 책이다.
* 이책은 읽고나서 생각나는거 말해보라고 하면 별로 말할건 없지만, 이 책을 읽고 있을때는 많은걸 느끼고 생각하고, 내가 느껴왔던 삶과 이책에서 제시하는 삶을 비교해 보기도 하고 그랬다.
- 새싹교실/2013/라이히스아우토반 . . . . 4 matches
* 새싹을 통해 정말로 유용한 측면에서의 언어를 배우고 컴퓨터언어를 최대한 마스터 하는 쪽으로 노력하겠습니다.!!-[박경준]
* 너무 공부쪽으로 생각하지 말고 다른것도 물어봐도 됨.
중간고사 2주전이라 기출문제를 주고 풀어보는 시간을 가진걸로 끝(...) 미안
- 시간맞추기/조현태 . . . . 4 matches
..문제는 별로 어렵지 않았다. time이녀석이야 평소에도 쓰니까..
본인은 귀차니즘으로 그냥 1초.ㅎㅎ 8-9초사이에 눌러주기만 하면 된다.^^
if (second==ANSWER_TIME-1)
else
- 안전한장소패턴 . . . . 4 matches
...좋은 물리적 환경 (CommonGroundPattern, PublicLivingRoomPattern)은 어떤 스터디 그룹에서든 필수적이다. 이 패턴에서 설명하는 지성적 환경 역시 마찬가지로 필수적이다.
그러므로,
'''각자 서로를 돕고 모두가 질문하고 실수하는데 편안함을 느끼는 따뜻하고 관대하며 공손하고 집중된 환경을 만들어라.'''
실제로, 그룹 내에는 언제나 어느 정도의 개인적 충돌이나 불화가 있게 마련이다. 그런 이슈에 대해서 이야기 할 수 있도록 세션이 끝난 뒤에 사람들이 모이는 것(AfterHoursPattern)이 도움이 된다.
- 이민석 . . . . 4 matches
* 나도 모르게 제로페이지 회원이 되었다.
* 너도 모르게 ZP로 만들었다. -[김태진]
* 커먼 리스프로 게임 서버 제작
* ElanVital - 가사 시각화 프로그램
- 정규표현식/스터디/문자하나찾기/예제 . . . . 4 matches
1. t로 시작해서 .txt 로 끝나는 문자열
1. t.*\.txt : t로 시작 .* 0개 이상의 문자 문자 \.txt '.'을 이스케이프 시켜 보통 문자로 만듬 그리고 txt랑 붙어있음
- 정모/2005.9.5 . . . . 4 matches
* 개강총회 형식으로 간단한 뒷풀이가 있었습니다.
* 회원정리 - 다음주 까지 안나오는 사람들은 앞으로 문자를 안보내기로 선언;;
* 관리 피씨실이 7피로 바뀌었음.
- 조동영/이야기 . . . . 4 matches
- 마찬가지로 구조가 잘 잡혀있는 코드 (홍선)
- 어떤식으로 돌아갈지 생각후 코딩 시작 (홍선)
전체적으로 원활하게 돌아간것 같지만, 남이 알아보기에는 불편함이 많았다.
- 기존의 경험을 바탕으로 코딩 시작 (인택)
- 지금그때2004/전통과사유20040329 . . . . 4 matches
* 5:30 신피 모임, 칠판있는 곳으로 이동, 자료확인(4413)
* 느낀점은? 하나의 키워드로 요약하면?
* 현재 준비에서 문제점이 구체적으로 드러났다는 점.
* 첫번째 회의가 상대적으로 너무 시간낭비였다는 느낌.
- 창섭/삽질 . . . . 4 matches
* 같은 실수를 두번하지 않도록. 페이지를 만들어 가끔 둘러보다보면 무의식중에 실수를 방지할 수 있을 거란 생각에 만듦. 사람은 한 번 본것은 무의식에 저장을 하고 자신도 모르게 무의식이 의식으로 나온다 하지 않던가...
* 실수는 어이없게 생기는 경우가 허다하다. 황당하게 시간버리지 말자. =_=
* 이제 절대로 하지 않을 것 같은 삽질, 내가 생각하게에 제일 어이없는 삽질 순위 3까지만 보관한다. 나머진 큐처럼 지우기.
* 이상하게 함수가 작동을 안하거든 기본적으로 parameter 갯수와 reference 여부를 확인하자.
- 2002년MT . . . . 3 matches
1. 청량리역에서 버스타는곳 쪽으로 가서 버스를 타고 간다.
* 학번별로 분류해놔야 하나.. (고학번이 위로오게 수정해주세요~)
- APlusProject/CM . . . . 3 matches
예를 들어 개발 계획서는 끝났으므로 이전 버전 까지 해서 모두 압축해서 하나의 파일로 올리는 것입니다.
그리고 CM 개인적으로도 가지고 계셨으면 합니다. --재동
- Cocos2d . . . . 3 matches
* 서울어코드 멘토링에서 Code S 팀 중, [김민재]와 [백주협]이 "스마트 TV 게임 어플리케이션"을 제작하기로 함.
* 스마트 TV와 안드로이드 디바이스에서 Cocos2d를 활용하여 게임 진행현황을 보여주기로 함.
- ComputerNetworkClass/Report2006/BuildingProxyServer . . . . 3 matches
[http://www.web-caching.com/proxy-caches.html 현존하는 여러가지 프락시 서버 프로그램]
GUID 생성하기. 파일 이름으로 활용할 수 있다.
버퍼에 저장된 문자열을 formatted 화 된 스트링, 수로 읽을 수 있다.
- DebuggingSeminar_2005/UndName . . . . 3 matches
''디버깅 세미나에서는 이러한 함수의 이름이 컴파일 옵션으로 설정되는 map 파일안에 존재하는 것으로 이용하였다.'' - [eternalbleu]
{{{~cpp 'char * __cdecl MapDLLappyFunc(char *)'}}} 라는 알기 쉬운 형태로 변형되어 있음을 확인할 수 있습니다.
- DecomposingMessage . . . . 3 matches
메세지를 다루는 또 다른 방법은 여러 개의 조각으로 나누는 것이다. 리팩토링의 ExtractMethod이다. 스몰토크는 잘게 쪼개는 것을 좀 더 공격적으로 한다. 그래서 한 메소드의 길이가 3-4줄정도밖에 안된다고 한다. 이것이 가능한 이유는 스몰토크는 다른 언어에 비해 높은 수준의 추상화를 제공해주기 때문이다. self 에게로 메세지를 보내자.
- DirectVariableAccess . . . . 3 matches
와드 아저씨의 말로는, '클래스에 아주 적은 양의 메소드만 존재한다면, getter/setter를 추가하는 것만으로도 메소드의 수가 두배가 되어버린다. 이는 전혀 사용되지 않을 유연성을 위해 쓸데없이 갯수를 늘린 것이다.' 라고 한다.
하지만 이 클래스가 상속이 될 가능성이 있다면, setter/getter를 오버라이딩 해서 사용할수 있으므로, IndirectVariableAccess를 쓰는 것이 괜찮다.
- EcologicalBinPacking/임인택 . . . . 3 matches
if not (i== num[0] or \
results.append(sum)
if min>results[i]:
- HelpOnNavigation . . . . 3 matches
우측 상단 (혹은 다른 위치)에는 자주 쓰이는 기능을 아이콘 형태로 모아놓은 것이 있습니다:
* [[Icon(print)]] 인쇄 친화적인 형태로 보기
* [[Icon(diff)]] 페이지의 바뀐 부분 보기
- MoniWiki/HotKeys . . . . 3 matches
마우스 없이 거의 모든 기본적인 동작을 HotKeys로 쓸 수 있다.
||D||action=diff ||[[Icon(diff)]] 입체안경||
- MoniWikiProcessor . . . . 3 matches
MoinMoin 1.1 이하에서는 Processor와 Parser로 분리되어있었고, 1.3 이후에는 Processor Parser가 Parser로 통합되었다.
MoniWiki에서는 이미 Processor와 Parser개념을 통합및 간소화 하여 Processor라는 이름으로 쓰이고 있다.
- StudyingFundamentalsOfTcpIp . . . . 3 matches
TCP/IP 가 우리와 얼마나 가까 있는지 아시죠? 인터넷의 근간이 되는 프로토콜에 대해 스터디를 하고자 합니다. 관심있는 분의 많은 참여 부탁드립니다.
* 소켓 프로그래밍이 아닌 TCP/IP 에 대한 공동학습. 여럿이 해야 효과가 크겠죠.
* 일정 분량을 공부하고 멤버들끼리 질답을 갖는 시간을 정기적으로 갖을 것입니다.
- TemplateLibrary . . . . 3 matches
템플릿 프로그래밍에서 작성되는 코드는 크게 두 부분으로 나누어진다.
* template - 말 그대로, 틀이 되는 text 코드.
- TkinterProgramming . . . . 3 matches
만약 파이선으로 GUI 프로그래밍을 한다면 Tkinter 이것 만큼은 피하라!!!! -_-
지나치게 많은 버그와 지나치게 없는 컨트롤의 압박으로 배워도 어디에 써먹을까 걱정되는 놈이다. - [eternalbleu]
- WERTYU/문보창 . . . . 3 matches
if (str[i] == ' ')
if (str[i] == diction[j])
cout << str << endl;
- XsltVersion . . . . 3 matches
<xsl:value-of select="system-property('xsl:vendor')"/>
(<a href="{system-property('xsl:vendor-url')}"><xsl:value-of select="system-property('xsl:vendor-url')"/></a>)
- ZeroPageSeminar . . . . 3 matches
앞으로 계획되어 있는 세미나 입니다. 자세한 사항은 세미나별 페이지에서 확인하세요.
* J2SE가 5.0으로 가면서 바뀐 것들에 대해
[제로페이지분류]
- [Lovely]boy^_^/Cartoon . . . . 3 matches
|| 소마신화전기 || 로도스도전기-회색의마녀 || 김전일 || 상남이인조 ||
빌려줘 회사로 놀러오면, 밥먹여 줄께 ^^;; --NeoCoin
저기여.. 왜 답이 없으시네여.. 저 정말로 보고 싶어서 그러는데여..ㅜ.ㅜ
- [Lovely]boy^_^/Diary/2-2-11 . . . . 3 matches
* 선호랑 ["TheWarOfGenesis2R"]의 일환으로 타일 에디터를 만들었다. BMP 파일 약간 개조해서 뒤에다가 타일 데이터를 덧붙였다.
* 오늘로 일단 학기중의 XB가 종료되었다. 배운것이 아주 많았던 프로젝트였다.
- jQuery . . . . 3 matches
jQuery는 “자바스크립트 프로그래밍을 즐겁게 하자”는 목표로 설계된 자바스크립트 라이브러리입니다.
jQuery를 사용함으로써 일반적이고, 반복되며, 업무량을 증가시키는 불필요한 마크업들을 제거할 수 있고, 이를 통해 작고, 훌륭하며, 이해하기 쉬운 자바스크립트 코드를 작성할 수 있습니다.
- lostship/MinGW . . . . 3 matches
* /mingw/STLport-4.5.3/src 로 이동한다.
* .dll.4.5 파일들을 path 가 잡힌 디렉토리로 복사 한다.
* ../g++-v3 를 c++/3.2 로 바꾸도록한다.
- 고슴도치의 사진 마을처음화면 . . . . 3 matches
[몬테카를로법]
[몬테카를로 법을 이용한 pi 구하기 프로그램]
- 구구단/송지훈 . . . . 3 matches
조건처럼 2단 3단 4단 5단 과 같이 출력하진 않았고
일단 저런 식으로 구구단이 가능합니다.
조건처럼 출력하는 방법은 아직 생각중.....
- 김준호 . . . . 3 matches
# 3월 16일에는 앞으로 새싹교실이 어떻게 진행될것인지와 컴퓨터의 기본장치들을 배웠습니다 예를들어 CPU, Main Memory 등등 입니다.
# 3월 17일에는 Microsoft Visual Studio 2008 프로그램을 이용하여 기초적인 c언어를 배웠습니다.
* 3/16, 3/17 피드백은 빨랑 해당 페이지로 옮겨서 쓰지 말입니다. - [윤종하]
- 데블스캠프2011/다섯째날/HowToWriteCodeWell/김준석,서영주 . . . . 3 matches
if(i <= MAX_HEIGHT && i >= MIN_HEIGHT)
if(floor < i){
}else{
- 문자열검색 . . . . 3 matches
문제 : 문자열 x에서 y라는 문자열이 처음 나타난 위치를 검색하여 z에 저장하는 프로그램을 작성하여라.
=== 처리조건 ===
* 출력은 파일 (result.out)로 받는다.
- 송년회날짜정하기 . . . . 3 matches
가능한 날에 이름을 적고, 모아봅시다. 가장 많은 사람이 오는 날짜를 송년회 날로 합시다.
* 구근이형 그럼 못오시는건가봐요...쩝.. 전에 서강대에서 뵌 이후로 못뵌거 같은데... --창섭
* 26일에 있는 혜영이 누나랑 30일에 있는 분은 다른 분인가요? 성을 안 붙이고 붙이고 한걸로 보아 혹시 26일에 있는 분이 97선배인가 싶어서요...^^; --창섭
- 수 . . . . 3 matches
두번째모임(2005.4.11) - CampusC를 교재로 5명의 학생들이 한 단원씩 강의를 할 예정. ㅡ _-;;;
읽어와 주세요~ ZP에서 상의한대로, 누군가를 지목해서 해당되는 내용을 설명하게 하는 방식입니다~
└스스로 이해될때까지 약간씩 힌트만 주시는게 괜찮았어요^^ㅎㅎㅎ-[joosama]
- 신기훈 . . . . 3 matches
지금까지 로그인이 안된다고 생각했었는데
로그인할 때 profile만들기?
그거 하고 나서 로그인 하니 되네요...
- 위키메뉴얼 . . . . 3 matches
위키메뉴얼제작에 필요한 그래픽을 캡쳐하기 위해 임의로 만든 페이지
지금 제작중인 위키메뉴얼은 위키에 익숙하지 않은 사람을 위해 만드는 것이기 때문에 위키페이지로 제작하지 않습니다.
위키에 대한 설명이 아직 많이 부족합니다. 지금 쓰다만 저런 형태말고 부드럽게 구어체로 정리할려고 합니다.
- 위키설명회2006 . . . . 3 matches
= 제로페이지 홍보 및 위키설명회 2006 =
대상 : 새내기 or 제로페이지에 관심있는 사람.
유선, 수생은 화목 자료구조 때문에 7시에 참가하기로 함.
- 정렬/장창재 . . . . 3 matches
ifstream fin("input.txt");
if (array[j] < array[k])
fout << array[ar] << endl;
- 정모/2006.3.16 . . . . 3 matches
= 프로젝트 =
OST방식으로 진행
프로젝트: 공업수학,임베디드 리눅스 동영상 플레이어, 자자(자바와자료구조)
- 지금그때2005/회의20050308 . . . . 3 matches
패스하지 않을 질문으로 만들자. 패스를 하면 엄한 벌칙을 준다.
Y/N로 대답할수 있는 질문.
질문자가...뒤로가서...룰을 다듬어야...
- 큰수찾아저장하기/김영록 . . . . 3 matches
if (max < space[a][i]){
if (max < space[a][i]){
if (max < space[i][j]){
- 파스칼삼각형/문원명 . . . . 3 matches
cout << res << endl;
if(aCol == 1 || aCol == aRow)
else
- 허아영/MBTI . . . . 3 matches
: 진실과 사실에 주로 관심을 갖고 논리적이고 분석적이며 객관적으로 사실을 판단한다.
단지, T쪽으로 기울어져 있기 때문에 T의 성향이 좀 더 뚜렷하게 나타난다 일뿐?
- 7피관리 . . . . 2 matches
일반 PC : 76-119, 121 (120번은 네토리 서버로 사용되고 있음.)
[제로페이지분류]
- CxImage 사용 . . . . 2 matches
BOOL CCxDoc::OnOpenDocument(LPCTSTR lpszPathName)
if (!CDocument::OnOpenDocument(lpszPathName))
//if (!ProcessShellCommand(cmdInfo))
- DefaultValueMethod . . . . 2 matches
의사소통을 더 쉽게 해주고, 상속될때에 오버라이딩 할 수 있는 여지를 남겨준다.(상속관계마다 상수가 다른 경우를 말하는 것 같다.)
시놉시스가 없는 책의 시놉시스를 비어있는 스트링으로 표현해보자.
- DesignPatterns . . . . 2 matches
["디자인패턴"] 서적중에서 레퍼런스(Reference) 라 불러지는 책. OOP 를 막연하게 알고 있고 실질적으로 어떻게 설계해야 할까 하며 고민하는 사람들에게 감동으로 다가올 책. T_T
- EdsgerDijkstra . . . . 2 matches
위의 Stepwise Program Construction과 The Humble Programmer는 초강력 추천. 감동의 물결. 아마 그 글을 읽고 몇 주 동안은 여러가지 실험을 해보며 흥미진진하게 보내게 될 것이며, 몇 몇은 프로그래밍에 획기적인 전환점을 맞이할 수 있을 것이라 믿음. --김창준
[http://www.cs.utexas.edu/users/UTCS/notices/dijkstra/ewdobit.html 2002년 8월 6일 타계]. 위대하다고 불리는 인물들이 동시대에 같이 살아있었다는 것, 그리고 그 사람이 내가 살아있는 동안에 다른 세상으로 떠났다는 사실이란. 참 묘한 느낌이다. --["1002"]
- EmbedAudioFilesForFireFox . . . . 2 matches
웹 페이지에 Embed된 오디오 파일을 FireFox에서 수월하게 재생시키기 위해서는 아래와 같이 type 속성을 주고 플레이어의 크기를 명시적으로 적어줘야 한다.
* 최근에 embed태그에 관한 소송에 MS가 패소하여 앞으로는 embed태그에 관한 기능이 달라지게 된다는 소식을 들은 기억이 있네요. 동네 자게였나? - 이승한
- Hacking . . . . 2 matches
* tcpdump, windump, sniffit 과 같은 Tool이 있음.
* Sniffing 에 대한 대비책
- HanoiProblem/은지 . . . . 2 matches
if(n==1)
else
- HowManyZerosAndDigits/문보창 . . . . 2 matches
시간제한이 1분짜리 문제다. Digits의 개수를 세는 것은 로그를 이용하면 간단히 해결되나, Zeros의 개수를 세는 방법이 딱히 떠오르지 않는다.
cout << nZero << " " << int(nDigit) + 1 << endl;
- Java Script/2011년스터디/박정근 . . . . 2 matches
if (e==8)
else{
- JavaStudy2004/이용재 . . . . 2 matches
if (statue == 1)
if (statue == 2)
- Ones/송지원 . . . . 2 matches
if( division(&ns, n) == 0 ) break;
if( i <= LENBOUND ) printf("%d\n", i);
- ProjectPrometheus/Iteration3 . . . . 2 matches
||||||Story Name : Recommendation System(RS) Implementation, Login ||
|| Prototype -> Java 로 포팅 || 1.5 || ○ (3시간. Solo) ||
- PythonXmlRpc . . . . 2 matches
if __name__=='__main__':
신기하다. 이글루스에 바로 글쓰기가 되네. - 임인택
- RandomFunction . . . . 2 matches
b가 -일 경우에는 사용에 주의가 필요합니다
[프로그래밍분류]
- SharpZeroJavaProject . . . . 2 matches
[http://www.caucse.net/cgi-bin/moin/moin.cgi/_c0_da_b9_d9_c7_c1_b7_ce_c1_a7_c6_ae_2f_230_c6_c0_20_bf_c2_b6_f3_c0_ce_20_b0_d4_c0_d3 자바프로젝트 #0팀 온라인 게임]
["프로젝트분류"]
- SmithNumbers/김태진 . . . . 2 matches
if(l%j==0){
if(sum==ssum){
- aekae/* . . . . 2 matches
cout << endl;
재선아 굿샷. 근데 정말로 For 문이 넘 많네. - 장창재
- fm_jsung . . . . 2 matches
*제로페이지 뜻이 머에여? SeeAlso ZeroPage <-- 감사~~
* fm_jsung 뜻이 머에여? -0- free style mc jin sung 멋진 아뒤 찾는 도중에, 친구의 도움으로^^
- wiz네처음화면 . . . . 2 matches
* Collage Library: Book Number 0000507310 디자인 패턴, 0000494011 위대한 승리, 0000387354 설득의 심리학, 0000476065 유비처럼 경영하고 제갈량처럼 마케팅하라, 0000317364 로마인 이야기, 0000345061 커피 한잔에 담긴 성공신화...., 멘큐의 경제학..? 0000553812 사람을 움직여라 : MK택시 유봉식 회장의 성공철학!
* English music - singer : sweet box, toxic recommended by Ah young.
- ★강원길★ . . . . 2 matches
어제같은 경우엔 ... 책 보려다 잠들었다니깐 ㅎㅎ
일어나니 4시.. 그런 쉣한 경우가 ㅎㅎ 그냥 윤리며 C 며 깨끗하게 붙여넣어줬지 ^^
- 개인키,공개키/강희경,조동영 . . . . 2 matches
ifstream fin("input.txt");
ifstream fin1("output1.txt");
- 고한종/on-off를조절할수있는코드 . . . . 2 matches
//이 부분은 scanf_s("%c",&keyOnOff);로도 쓸 수 있지만 scanf_s와 scanf의 차이도 잘 모르고 scanf는 사실 매우 어려운 함수;
if(변수==n) break;
- 꿈 . . . . 2 matches
메일 : lucifer286@한멜닷넷
MSN : lucifer279@핫멜닷컴
- 단식자바 . . . . 2 matches
= [여름방학프로젝트]/단식자바 =
[프로젝트분류]
- 데블스캠프2006/월요일/연습문제/기타문제/임다찬 . . . . 2 matches
if(i==5) continue;
cout << i <<endl;
- 데블스캠프2006/화요일/pointer/문제1/김준석 . . . . 2 matches
cout << "a = " << a << " b = " <<b << endl;
cout << "a = " << a << " b = " <<b << endl;
- 데블스캠프2006/화요일/pointer/문제1/정승희 . . . . 2 matches
cout << a<<" "<< b<<endl;
cout <<a<<" "<<b<<endl;
- 데블스캠프2009/월요일 . . . . 2 matches
|| 송지원 || Scratch (스크래치) || 초등학생도 할 수 있는 프로그래밍을 통해, [[br]]프로그래밍에 대한 친근감과 흥미 유발 || ||
- 비밀키/김태훈 . . . . 2 matches
ifstream fin ("source.txt");
ifstream fin("source_enc.txt");
- 새싹교실/2012/아무거나/1회차 . . . . 2 matches
1. 한줄씩 디버깅 f10 을 이용하면 그 말 그대로 실행된다 한줄씩
4. f5 를 눌러 실행중인 디버깅을 나가려면 shift f5를 누르면 된다.
- 신혜지 . . . . 2 matches
E-Mail 을 직접 노출하면, 스팸 메일 로봇들이 퍼갈수 있습니다.
[홈페이지분류], ZeroPagers, ZeroWikian ( DeleteMe 복수개로 선택해 주세요. )
- 위대한게츠비 . . . . 2 matches
이책은 정말 빌려놓고.. 오래동안 조금씩 조금씩 읽다가 (주로
진정한 인간관계를 이룰수 없다는것을 다시 한번 실감했다. 돈이라는 동기로
- 이현정 . . . . 2 matches
처음으로 만든데다...
본격적으로 투입해보죠 ^^
- 정규표현식 . . . . 2 matches
* 스터디 모임요약본은 정규표현식/모임 안에 날짜별로 카테고리를 만들어 작성한다
* Wiki 문서 작성시 안의 내용은 자유이나 맨위에 정규표현식 내용 링크 리스트는 모두 나와야하며 스터디문서에서는 정규표현식 링크와 스터디 링크만 나와야 하며 반대로 모임문서에서는 정규표현식 링크와 모임 링크만 나와야한다.
- 정모/2005.3.21 . . . . 2 matches
*앞으로 많은 이야기가 필요함
* 신입회원 모집 홍보는 어떻게 하기로 되어있나요? 동문서버 안들어 가거나 있는 모르는 사람들도 많을텐데... 강의실 홍보나 대자보 홍보가 적어도 이번주 부터 이루어져야 좋을거 같습니다. 그리고 홍보할때 꼭 신입생 말고 복학생,전과,편입생들도 염두에 뒀으면 좋겠습니다.
- 정모/2012.1.6 . . . . 2 matches
* [http://valleyinside.com/2012-technology-trend/ 2012년 기술 트렌드]
* 차기 회장 추천/신청이 정모 이전까지는 저한테 밖에 없었다는게 (추천 2명 + 자진 1명)좀 충격(?)이었습니다. 형진이형이 해준 Play framework는 음.. 뭔가 쉬운거같기도하고 어려운거같기도했네요. 하지만 빠르게 제가 만들었던걸 바로 만들 수 있었다니 그 이유가 형이 아는걸 말해줬기 때문에 모르는걸 제가 삽질한거랑 시간차가 많이 나서인지, 프레임워크때문인지는 생각을 한번해봐야겠네요.(는 코드 길이 차이가 많이나는군.) - [김태진]
- 정모/2013.10.2 . . . . 2 matches
* 다음 주 수요일은 '한글날 휴일'인 관계로 화요일에 정모를 진행합니다.
* 이 날은 티타임 진행으로 별다른 안건 공유는 진행하지 않았습니다.
- 조현태 . . . . 2 matches
[조현태/블로그]
[조현태/프로젝트]
- 지금그때2006/질문레스토랑 . . . . 2 matches
* 이선호 - C프로그래밍, OP등등.. 만드는것이 재미있어서..
* 이선호 - 모든지 긍정적으로 생각하는게 좋다.
- 피보나치/Leonardong . . . . 2 matches
if ( x==0 )
if ( x==1 )
- 학회간교류/08 . . . . 2 matches
* 제로페이지, PCRC, JARAM, TGWING, 숭실대
* 자람에 연락은 제가 하고 TGWing에는 승한형이 하기로. 일단 연락에 대한 회답이 오길 기다림 2008.11.30 - [김홍기]
- 행사 . . . . 2 matches
* 3월달에 준비를 시작으로 보통 4~5월에 개최한다.
* 제로페이지 신입생 준회원은 데블스캠프를 통해서 정회원이 된다.
- 05학번만의C++Study/숙제제출1/조현태 . . . . 1 match
std::cout << "섭씨" << celsius << "도는 화씨로 " << fahrenheit(celsius) << "도입니다.\n";
- 2002년도ACM문제샘플풀이 . . . . 1 match
''부끄러워할 필요가 없다. 촉박한 시간에 쫓겼다고는 하나, 결국 정해진 시간 내에 모두 풀은 셈이니 오히려 자랑스러워 해야 할지도 모르겠다. 아마 네 후배들은 이런 배우려는 태도에서 더 많은 걸 느끼지 않을까 싶다. 이걸 리팩토링 해서 다시 올리는 것도 좋겠고, 내 생각엔 아예 새로 해서(DoItAgainToLearn) 올려보는 것도 좋겠다. 이번에는 테스트 코드를 만들고 리팩토링도 해가면서 처음 문제 풀었던 때보다 더 짧은 시간 내에 가능하게 해보면 어떨까? 이미 풀어본 문제이니 좀 더 편하게 할 수 있을 것 같지 않니? --JuNe''
- ALittleAiSeminar/Namsang . . . . 1 match
if maxValue < self.priority[posx][posy] :
- Class/2006Fall . . . . 1 match
=== [(zeropage)ArtificialIntelligenceClass] ===
- EightQueenProblemSecondTry . . . . 1 match
이번에는 소스코드를 모두 삭제하고, 맨땅에서 다시 시작을 합니다. EightQueenProblem을 만족하는(즉 하나의 해법만 얻는) 프로그램을 다시 한번 작성합니다. 자신이 처음 EightQueenProblem을 풀면서 얻었던 통찰(insight)만을 이용하고, 가능하면 더 깔끔한 해답을 얻으려고 노력하면서 말이죠.
- Expat . . . . 1 match
파이선의 기본 XML 파서로 채택되어 이용되고 있다. 정직 형님의 강력 추천에도 불구 MS 계열의 개발자는 좀 꺼리는 듯 하다. ㅡ.ㅡ;; (사람은 익숙해지면 못버린다. ㅋㅋ)
- Hacking/20040930첫번째모임 . . . . 1 match
- 리눅스 다운로드
- History지도 . . . . 1 match
* ["WikiProjectHistory"] - 위키에 열렸던 프로젝트에 대한 과거기록
- Ieee754Standard . . . . 1 match
전산/컴공과 학생이 NumericalAnalysisClass를 통틀어서 오로지 한가지만 배워야 한다면 나는 부동소수점 연산을 들고 싶다. --JuNe
- IsThisIntegration?/김상섭 . . . . 1 match
cout << temp*a << " " << temp*b << " " << temp*c << endl;
- KIV봉사활동/개인준비물 . . . . 1 match
* 집에서 마지막으로 짐을 꾸리면서 확인할 점검표 역할을 합니다.
- MacroMarket . . . . 1 match
moinmoin의 Macro 관련 페이지. {{{~cpp [[TableOfContents]], [[BR]] }}} 등등은 일종의 moinmoin 플러그인으로 파이썬을 이용, 향후 추가가 가능합니다.
- Map/박능규 . . . . 1 match
cout << endl;
- PreviousFrontPage . . . . 1 match
A WikiWikiWeb is a collaborative hypertext environment, with an emphasis on easy access to and modification of information. This wiki is also part of the InterWiki space.
MoinMoin is a Python WikiClone, based on PikiPiki. The name is a common German slang expression explained on the MoinMoin page. If you run a Wiki using MoinMoin, please add it to the MoinMoinWikis page.
/!\ Please see Wiki:WikiForumsCategorized for a list of wikis by topic.
- ProjectPrometheus/AcceptanceTest . . . . 1 match
* 테스트 프로그램 소스 열기 링크 추가.
- SoftwareEngineeringClass/Exam2002_1 . . . . 1 match
* Quality Assurance 와 V & V (verification & validation) 과의 관계에 대해 쓰시오.
- TopDown . . . . 1 match
하나의 문제에 대해서 작은 문제로 계속 쪼내나가는 형태를 지칭. Divide And Conquer 와 비슷하다.
- XperDotOrg . . . . 1 match
인터위키로는 '''{{{Xper:}}}''' 를 이용합니다.
- [Lovely]boy^_^/Diary/12Rest . . . . 1 match
* I modify above sentence.--; I test GetAsyncKeyState(), but it's speed is same with DInput.--; How do I do~~~?
- html5 . . . . 1 match
* [http://simon.html5.org/html5-elements w3g HTML5 레퍼런스들을 목차로 잘 정리해 놓았다.]
- lostship . . . . 1 match
== 프로그램 ==
- 고수를찾아서 . . . . 1 match
고수는 하루아침에 될 수 없다. 극단적으로 수련을 하든, 화두를 잡고 몇 년을 끙끙대든 결국 고수가 되는 데는 시간이 걸린다. 그리고 나면 자신만의 길을 개척할 수 있다. 처음부터 모든 것을 창조해내지는 못하는 법이다.
- 구구단/S.S.S . . . . 1 match
if __name__=='__main__':
- 구구단/윤성복 . . . . 1 match
if __name__ == '__main__':
- 데블스캠프2006/월요일/연습문제/for/김대순 . . . . 1 match
if(i<=10){
- 데블스캠프2006/월요일/연습문제/기타문제/윤영준 . . . . 1 match
if(i==5){
- 데블스캠프2006/월요일/연습문제/기타문제/주소영 . . . . 1 match
if(i==5){
- 데블스캠프2009/월요일/연습문제/HTML-CSS/서민관 . . . . 1 match
body {background-image:url('paper.gif');
- 데블스캠프2013/둘째날/API . . . . 1 match
if (!trim($_POST['name']) || !trim($_POST['text'])) {
- 마름모출력/조현태 . . . . 1 match
if __name__ == '__main__':
- 수/구구단출력 . . . . 1 match
변수명은 가능하면 a,b 나 i,j 같이 이름만 보고 무슨 의미인지 알기 힘들게 짓기 보다는 조금 더 길어지더라도 이름만 보고 이게 무슨 역할을 하는 변수명이구나 하고 알수 있게 짓는 버릇을 들이는게 좋다. 주석이 필요 없을 정도로 변수명 함수명만 보고 이게 무슨 일을 하는 변수, 함수 이다라고 알수 있게 하면 더 더욱 좋다. - [상협]
- 숙제1/최경현 . . . . 1 match
cout <<"섭씨 "<<celsius<<"도는 화씨로 "<<convert(celsius)<<"도 입니다.";
- 이승한 . . . . 1 match
* 제로페이지. 14기. 현재 삼성전자 무선사업부 재직 중.
- 정모/2011.4.4/CodeRace/서지혜 . . . . 1 match
* 난 셀룰러 오타마타로 짤꺼야!
- 조현태/놀이 . . . . 1 match
[조현태/놀이/네모로직풀기]
- 지금그때 . . . . 1 match
* 지금그때는 단지 고학년이 저학년에게 경험을 나누어주는 정도의 행사는 아니라고 생각합니다. 마치 개구리 올챙이적 시절 기억못하듯이, 그때 궁금해 했지만 지금은 왜 궁금했는지 조차 모르는 그런것, 지금과 다르게 생각했던 그시절 기억들. 그런것을 고학년도 경험을 할 수 있는 기회되지 않을까요?? 때로는 우리가 조언해 주고 있는 사람들이 가지고 있는 신선한 질문들은 자신을 자신의 일을 한번 더 돌아볼수 있게 만드는 기회를 주기도 하지 않나요?? - 이승한
- 지금그때2003/계획 . . . . 1 match
ost 진행시간이 30분 정도면 "지나치게" 짧다. market place에 질문 적기는 원래 ost가 진행되는 도중에 아무나 적을 수 있다. 안 1번을 하되 OST 진행 시간을 45분 이상으로 늘리는 것이 좋겠다. --JuNe
- 창섭 . . . . 1 match
[http://165.194.17.15/pds/200232993449/SSHWinClient-3.1.0-build235.exe ssh 접속프로그램][[BR]]
- 컴공과프로그래밍경진대회 . . . . 1 match
중앙대학교 컴퓨터공학과 내의 프로그래밍 경진 대회.
- 파스칼삼각형/김남훈 . . . . 1 match
(else (+ (pascal (- r 1) c)
- 피보나치/SSS . . . . 1 match
if (count == 0)
- 피보나치/정수민,남도연 . . . . 1 match
if ( n > m ) {
Found 442 matching pages out of 7555 total pages (540 pages are searched)
You can also click here to search title.