- MobileJavaStudy/SnakeBite/FinalSource . . . . 65 matches
class SplashCanvas extends Canvas {
} catch(IOException e) {
class SnakeBiteCanvas extends Canvas implements Runnable {
private final int canvasWidth;
private final int canvasHeight;
public SnakeBiteCanvas() {
canvasWidth = getWidth();
canvasHeight = getHeight();
boardWidth = canvasWidth - 6 - (canvasWidth - 6 - boardWallWidth * 2) % snakeCellWidth;
boardX = (canvasWidth - boardWidth) / 2;
boardY = (canvasHeight - boardHeight) /2;
g.fillRect(0, 0, canvasWidth, canvasHeight);
g.fillRect(0, 0, canvasWidth, boardY);
g.drawString("Level : " + level, canvasWidth / 2, 0, Graphics.HCENTER | Graphics.TOP);
g.drawString("Game Over!!", canvasWidth / 2, canvasHeight, Graphics.HCENTER | Graphics.BOTTOM);
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)
} catch(InterruptedException e) {
- DPSCChapter3 . . . . 34 matches
구조를 가지게 된다. 가령 CarEngine 하위 구조의 엔진들, CarBody 구조의 body 등등을 가지게 된다.
(결국, 각각이 CarEngine을 Base Class로 해서 상속을 통해 Ford Engine,Toyota Engine등등으로 확장될 수 있다는 말이다.)
Vechile과 CarPart는 Object 클래스의 서브 클래스이다. 물론, 이 클래스 구조는 많은 단계에서 전체적으로 단순화된다.
우리는 CarPartFactory라는 추상 팩토리 클래스 정의를 하면서 패턴 구현을 시작한다. 이것은 "구체적인 클래스들에 대한
클래스이다. 그것은 추상적인 상품 생성 함수들(makeCar,makeEngine,makeBody)을 정의한다. 그 때 우리는 상품 집합 당
CarPartFactory>>makeCar
CarPartFactory>>makeEngine
CarPartFactory>>makeBody
FordFactory>>makeCar
^FordCar new
ToyotaFactory>>makeCar
^ToyotaCar new
CarAssembler 객체가 팩토리 클라이언트라고 추정해보자. 그리고 CarPartFactory 객체를 참조하는 팩토리라고 이름지어진 인스턴스 변수를 갖자.
CarAssembler>>assembleCar
| car |
"Create the top-level part, the car object which starts out having no subcomponents, and add an engine, body, etc."
car := factory makeCar
car
^car
아직, 확실하지 않는 한 부분이 있다. CarAssembler는(factory 클라이언트) 어떻게 구체적인 CarPartFactory 하위 클래스의 인스턴스를 얻을 수 있을까? 그것은 특별한 하위 클래스 자체를 소비자의 선택에 기초해서 인스턴스화 할 수 있을 것이다. 혹은 외부 객체에 의해서 팩토리 인스턴스를 다룰수도 있을 것이다.
- 만년달력/인수 . . . . 31 matches
=== Calendar.java ===
public class Calendar {
public Calendar(int year, int month) {
public int[] getCalendar() {
=== CalendarTestCase.java ===
import junit.framework.TestCase;
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]);
- 데블스캠프2005/사진2 . . . . 18 matches
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_01.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_02.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_03.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_04.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_05.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_06.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_07.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_08.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_09.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_10.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_11.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_12.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_13.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_14.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_15.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_16.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_17.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_18.JPG width = 1024 height = 768>)]] ||
- Star/조현태 . . . . 10 matches
vector<SavePoint> calculatePoint[10];
bool isCanPut = FALSE;
int Calculate(int number);
bool IsItCan(int number = 0, int sum = 0)
if (FALSE == isCanPut)
isCanPut = TRUE;
if (isCanPut && minimumNumber < sum)
for (register int i = 0; i < (int)calculatePoint[bigNumber[number]].size(); ++i)
if (calculatePoint[bigNumber[number]][i] == lines[number][j])
IsItCan(number + 1, sum);
for (register int k = 0; k < (int)calculatePoint[j].size(); ++k)
if (calculatePoint[j][k] == lines[number][i])
calculatePoint[bigNumber[number]].push_back(lines[number][i]);
IsItCan(number + 1, sum + bigNumber[number]);
calculatePoint[bigNumber[number]].pop_back();
if (isCanPut)
void GetXYZ(int calculateNumber, int i, int j, int k, int& x, int& y, int& z, int& number)
if (0 == calculateNumber)
else if (1 == calculateNumber)
else if (2 == calculateNumber)
- PairSynchronization . . . . 9 matches
["sun"]이 PairProgramming을 하기에 앞서 CrcCard 섹션을 가지게 되었는데, 서로의 아이디어가 충분히 공유되지 않은 상태여서 CrcCard 섹션의 진도가 나가기 어려웠다. 이때 - 물론, CrcCard 섹션과는 별도로 행해져도 관계없다. - 화이트보드와 같은 도구를 이용해서 서로가 생각한 바를 만들어나가면서, 서로의 사상공유가 급속도로 진전됨을 경험하게 되었다.
1. PairSynchronization 이후, CrcCard 섹션이나 PairProgramming을 진행하게되면 속도가 빨리지는 듯 하다. (검증필요)
["sun"]은 기존 프로그램의 업그레이드 작업에 새로 한명의 파트너와 함께 둘이 작업하게 되었다. XP를 개발에 적용해보기로 하고, 프로그램 디자인에 CrcCard 섹션을 이용하고자 했다. 처음 CrcCard 섹션을 진행해서 그런지, 별다른 진척이 보이지 않아 우선 화이트보드를 이용해서 개념을 정리해보고자 다른 색의 마커를 들고 한 번에 하나씩 개념을 그리고 선을 이어 나가며 디자인을 했다.
* 이후 진행된 CrcCard 섹션의 진행이 빠르게 진전되었다.
상민이랑 ProjectPrometheus 를 하면서 CrcCard 세션을 했을때는 CrcCard 에서의 각 클래스들을 화이트보드에 붙였었죠. 그리고 화이트보드에 선을 그으면서 일종의 Collaboration Diagram 처럼 이용하기도 했었습니다. 서로 대화하기 편한 방법을 찾아내는 것이 좋으리라 생각.~ --["1002"]
- CppStudy_2002_1/과제1/Yggdrasil . . . . 8 matches
struct CandyBar{
int cal;
}candy;
CandyBar input(CandyBar &, char *company="Millenium Munch", double weight=2.85, int
calorie=350);
void show(CandyBar);
candy=input(candy);
show(candy);
candy=input(candy, temp1, temp2, temp3);
show(candy);
CandyBar input(CandyBar & anycandy, char *company, double weight, int calorie)
CandyBar answer;
answer.cal=calorie;
void show(CandyBar anycandy)
cout<<"\n상표: "<<anycandy.name;
cout<<"\n무게: "<<anycandy.wei;
cout<<"\n열량: "<<anycandy.cal;
int handicap;
//함수는 handicap을 새 값으로 초기화한다
void handicap(golf &g, int hc);
- 데블스캠프2005/사진 . . . . 8 matches
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_0.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_1.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_2.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_3.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_4.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_5.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_6.JPG width = 1024 height = 768>)]] ||
|| [[HTML(<img src = http://zeropage.org/pub/upload/DevilsCamp2005_7.JPG width = 1024 height = 768>)]] ||
- NSIS/예제4 . . . . 7 matches
SubCaption 0 ": 라이센스기록"
SubCaption 1 ": 인스톨 옵션"
SubCaption 2 ": 인스톨할 폴더 선택"
SubCaption 3 ": 인스톨중인 화일들"
SubCaption 4 ": 완료되었습니다"
SubCaption 0 ":라이센스기록"
SubCaption 1 ":인스톨 폴더"
- JavaScript/2011년스터디/CanvasPaint . . . . 6 matches
case 0:
case 1:
case 2:
case 3:
<canvas id="drawLine" width="300" height="300" onmousedown="hold();"
onmouseup="release();" onmouseout="release();" onmousemove="draw();"></canvas>
1. CanvasJs.html
<title>Javascript canvas Page</title>
<script language ="Javascript" src ="canvasJS.js"></script>
<canvas id="testCanvas" width="900" height="500" style="border: 1px solid black"></canvas>
2. canvasJs.js
var canvas, ctx, tool;
var canvas1, ctx1;
dataURL = canvas.toDataURL();
canvas = document.getElementById('testCanvas');
ctx = canvas.getContext('2d');
if(!canvas){
alert("Can't find Canvas Objective!");
// canvas1 = document.getElementById('testCanvas1');
// ctx1.canvas1.getContext('2d');
- 영호의해킹공부페이지 . . . . 6 matches
5. You can create art and beauty on a computer.
6. Computers can change (your) life for the better.
coded daemons - by overflowing the stack one can cause the software to execute
data type - an array. Arrays can be static and dynamic, static being allocated
at load time and dynamic being allocated dynamically at run time. We will be
removed. This is called LIFO - or last in first out. An element can be added
which are pushed when calling a function in code and popped when returning it.
dynamically at run time, and its growth will either be down the memory
offsets change around. Another type of pointer points to a fixed location
within a frame (FP). This can be used for referencing variables because their
it can handle. We use this to change the flow of execution of a program -
We can change the return address of a function by overwriting the entire
means that we can change the flow of the program. By filling the buffer up
overwriting the return address so that it points back into the buffer, we can
Time for a practical example. I did this some time ago on my Dad's Windoze box
trying to get it right so I can just paste it more or less unchanged here -
Because strcpy() has no bounds checking, there is an obvious buffer overflow
OVERFLOW caused an invalid page fault in module OVERFLOW.EXE at 015f:00402127.
Right, so buffer2's address is 0x0063FDE4 - and just in case that's a bit off
address we can land somewhere in the middle of the NOPs, and then just execute
- Refactoring/ComposingMethods . . . . 5 matches
* You have a code fragment that can be grouped together.[[BR]]''Turn the fragment into a method whose name explains the purpose of the method.''
* A method's body is just as clear as its name. [[BR]] ''Put the method's body into the body of its callers and remove the method.''
* You have a complicated expression. [[BR]] ''Put the result of the expression, or parts of the expression,in a temporary variagle with a name that explains the purpose.''
if ( (platform.toUpperCase().indexOf("MAC") > -1) &&
(browser.toUpperCase().indexOf("IE") > -1) &&
final boolean isMacOs = platform.toUpperCase().indexOf("MAX") > -1;
final boolean isIEBrowser = browser.toUpperCase().indexOf("IE") > -1);
* You have a long method that uses local variagles in such a way that you cannot apply ''Extract Method(110)''. [[BR]]
''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.''
ListCandidates = Arrays.asList(new String[] {"Don", John", "Kent"});
if (candidates.contains(people[i]))
- Robbery/조현태 . . . . 5 matches
이전의 경우 도둑이 특정시간에 존재할 수 없는경우 "The robber has escaped." 를 출력했으나, 지금은 모든 시간의 움직임을 고려해서 존재하지 않으면 "The robber has escaped."를 출력하도록 수정하였다. (사실 소스상에선 그다지 바뀐건 없다..^^)
#define CAN_MOVE_POINT 0
vector< vector<POINT> > g_canMovePoints;
g_canMovePoints.clear();
g_canMovePoints.resize(keepTime);
void SetCanMovePoints()
if (CAN_MOVE_POINT == g_cityMap[i][j][k])
POINT canMovePoint;
canMovePoint.x = j;
canMovePoint.y = k;
g_canMovePoints[i].push_back(canMovePoint);
for (register int i = 0; i < (int)g_canMovePoints[suchTime].size(); ++i)
MoveNextPoint(nowPoint, g_canMovePoints[suchTime][i], nowTime, suchTime, movedPoint);
for (int testCaseNumber = 1; ; ++testCaseNumber)
scanf("%d %d %d", &cityWidth, &cityHeight, &keepTime);
scanf("%d", &numberOfMessage);
scanf("%d %d %d %d %d", &receiveTime, &left, &top, &right, &bottom);
SetCanMovePoints();
bool isEscaped = FALSE;
if (0 == g_canMovePoints[i].size())
- AdventuresInMoving:PartIV/김상섭 . . . . 4 matches
int numCase;
cin >> numCase;
for (int i = 0; i < numCase; i++)
if (i != numCase - 1)
- ChocolateChipCookies/허준수 . . . . 4 matches
int testCase;
cin >> testCase;
while(testCase>0) {
testCase--;
- ContestScoreBoard/문보창 . . . . 4 matches
int numberCase;
cin >> numberCase;
for (i = 0; i < numberCase; i++)
if (i != numberCase - 1)
case 'C':
case 'I':
- GDG . . . . 4 matches
* [OpenCamp]같은 행사에 많은 외부인들의 참가 기대
* [OpenCamp]식 세미나가 마냥 좋은게 아닐 수도 있음
* OpenCamp가 별로 좋지 않다는 의견으로 보일 수 있어 부연합니다. ZeroPager가 원하는 활동이 있다면 그것을 하면 되지 굳이 OpenCamp와 같은 방식의 세미나를 고집할 필요는 없다는 의미입니다. - [김수경]
* GDG 명칭은 지역이나 학교만 가능 설립한다면 GDGCAU가 됩니다 - [조광희]
* 별개의 조직으로 만들고 제로페이지 임원진과 GDGCAU 임원진은 안겹치도록. 회원은 자유.
- RUR-PLE/Etc . . . . 4 matches
next_to_a_carrot=next_to_a_beeper
plant_carrot = put_beeper
pick_carrot = pick_beeper
def pick_TwoCarrot():
if next_to_a_carrot():
pick_carrot()
if not next_to_a_carrot():
plant_carrot()
def one_carrot_only():
if not next_to_a_carrot():
plant_carrot()
pick_TwoCarrot()
one_carrot_only()
one_carrot_only()
one_carrot_only()
one_carrot_only()
one_carrot_only()
one_carrot_only()
next_to_a_carrot=next_to_a_beeper
plant_carrot = put_beeper
- ReverseAndAdd/허아영 . . . . 4 matches
unsigned int addNum, length, i, turn = 0, testCaseNum;
cin >> testCaseNum;
while(testCaseNum >= 1)
testCaseNum--;
- TkinterProgramming/Calculator2 . . . . 4 matches
class Calculator(Frame):
self.calc = Evaluator()
self.buildCalculator()
result = self.calc.runpython(self.current)
def buildCalculator(self):
Calculator().mainloop()
- Vending Machine/dooly . . . . 4 matches
import junit.framework.TestCase;
public class PerchaseItemTest extends TestCase {
import junit.framework.TestCase;
public class RegistItemTest extends TestCase {
- 몸짱프로젝트/BinarySearchTree . . . . 4 matches
class BinartSearchTreeTestCase(unittest.TestCase):
class BinartSearchTreeTestCase(unittest.TestCase):
case 1:
case 2:
case 3:
- Celfin's ACM training . . . . 3 matches
|| 22 || 13 || 111305/10167 || Birthday Cake || 1hour 30 mins || [http://zeropage.org/zero/index.php?title=BirthdatCake%2FCelfin&url=zeropage BirthdayCake/Celfin] ||
|| 24 || 1 || 110105/10267 || Graphical Editor || many days || [Graphical Editor/Celfin] ||
- Slurpys/문보창 . . . . 3 matches
int nCase;
cin >> nCase;
for (i=0; i<nCase; i++)
- Steps/문보창 . . . . 3 matches
int nCase, x, y;
cin >> nCase;
for (int i = 0; i < nCase; i++)
- ZeroPageHistory . . . . 3 matches
||여름방학 ||Advanced C 및 Pascal 강좌, 공동 참여로 DataBase 등 다수의 Program 개발 ||
* Advanced C, Pascal, DataBase
||여름방학 ||Computer Architecture, Assembly, Pascal 등의 스터디/강좌. 현대 경진대회 준비반 개설(15일간 오전 9시-오후 5시까지 전산 커리를 모두 다룸, 기출문제 풀이 등) ||
* Computer Architecture, Assembly Language, Pascal
||여름방학 ||C++, HTML, Object Pascal 세미나 개최.(목적 불문 게시물: 비선점형/선점형 멀티태스킹, Win32의 프로세스와 스레드.)(긁어놓은 게시물: 타이머, 마우스) ||
||2학기 ||C++(긁어놓은 게시물: 데이터 베이스, Turbo Pascal) ||
* C++, HTML, Object Pascal
* C, C++, MFC, Java, Design Pattern, AI, Python, PHP, SQL, JSP, Algorithm, OS, Game, CAM
* C++, Ajax, DirectX 2D, MFC, 3D, CAM, Unit Test, 영상처리
* [wiki:데블스캠프2006 DevilsCamp]을 진행하였으나 이 때 정회원이 된 회원보다 물음표 회원이었던 회원들이 나중에 더 많이 남았다.
* DevilsCamp
* DevilsCamp
- 데블스캠프2004/세미나주제 . . . . 3 matches
|| 월 || [데블스캠프2004] OT, ZeroPage 이야기 [[BR]] ToyProblem1 [[BR]]CrcCard || 휘동,상민,석천 || 5h || [데블스캠프]의 시작 - 이계획 분화됩니다. ||
* [NeoCoin/Temp] CrcCard
환타 FunCamp 라던지, TTL에서 주최했던 모임, 바카스 국토 대장정, KTF Future List...
- 블로그2007 . . . . 3 matches
* PDT - PHP Development Tool PHP 스크립트 엔진을 개발하는 Zend 팀이 Eclipse 진영에 합류후에 PHP개발 툴을 만들기 시작했는데 아직 1.0 까지도 올라가지 않은 개발 중인 제품입니다. 좋기는 하지만, 적극적인 배포도 하지 않고 Ecilpse의 공식 배포 스케줄+환경인 Calisto에도 반영되려면 멀었습니다.
미래에는 PDT로 수렴되겠지만 아직은 정식 버전에 잘 결합이 되지 않을 만큼 불안합니다. 따라서 PHPEclipse를 추천하는데 Web개발을 위해서는 이뿐만이 아니라, HTML Coloring 지원 도구등 여러 도구들이 필요합니다. 귀찮은 작업입니다. Calisto가 나오기 전부터 Eclipse 도구를 분야별로 사용하기 쉽게 패키징 프로젝트가 등장했는데 [http://www.easyeclipse.org/ Easy Eclipse]가 가장 대표적인 곳입니다. 아직도 잘 유지보수되고 있고, Calisto가 수렴하지 못하는 Script 개발 환경 같은 것도 잘 패키징 되어 있습니다. [http://www.easyeclipse.org/site/distributions/index.html Easy Eclipse Distribution]에서 PHP개발 환경을 다운 받아서 쓰세요. more를 눌러서 무엇들이 같이 패키징 되었나 보세요.
- 수 . . . . 3 matches
두번째모임(2005.4.11) - CampusC를 교재로 5명의 학생들이 한 단원씩 강의를 할 예정. ㅡ _-;;;
Upload:CampusC.zip
Campus C입니다. 1번부터 보시면 C를 이해하는데 정말 좋겠지만, 1번이 어려우시다면 2번 부터 보시면 되요~.
scanf(" %c", &a); // 문자 하나를 입력 받을 때에는 꼭 " %c" 처럼 한칸을 띄우셔야 됩니다. :)
http://prof.cau.ac.kr/~sw_kim/include.htm
- C++Seminar03 . . . . 2 matches
* ZeroPage 홍보를 위한 수단중의 하나로 C++ Seminar 가 개최되었으면 합니다. 현재 회장님께서 생각하시는 바가 DevilsCamp 이전까지는 준회원체제로 운영되다가 DevilsCamp 이후로 정회원을 뽑는 방식이 좋다는 쪽인것 같은데 일단 입학실날의 강의실홍보 이후로 C++ Seminar 를 여는게 새내기들의 관심을 모으는데 좋을 것 같습니다. --["임인택"]
- CProgramming . . . . 2 matches
[http://www.cs.cf.ac.uk/Dave/C/ Cardiff University CourseWare]
만들어진지 오래되어 조금 구질 구질하기도 하지만 좋은 내용인 Upload:zeropage:CampusC.zip 공개강좌로 위의 것보단 짧다.
[PracticalC]를 정리하는 이런 페이지도 있네요. 모두 같이 정리해 보고 활용해 보았으면 좋겠습니다.
- CategorySoftwareTool . . . . 2 matches
If you click on the title of a category page, you'll get a list of pages belonging to that category
CategoryCategory
- ClassifyByAnagram/재동 . . . . 2 matches
class AnagramTestCase(unittest.TestCase):
- Gof/Facade . . . . 2 matches
= FACADE =
서브시스템의 인터페이스집합에 일관된 인터페이스를 제공한다. 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
== Applicabilty ==
이럴때 Facade Pattern을 사용하라.
* 복잡한 서브 시스템에 대해 단순한 인터페이스를 제공하기 원할때. 서브시스템은 종종 시스템들이 발전되어나가면서 더욱 복잡성을 띄게 된다. 대부분의 패턴들은 패턴이 적용된 결과로 많고 작은 클래스들이 되게 한다. 패턴의 적용은 서브시스템들이 더 재사용가능하고 커스터마이즈하기 쉽게 하지만, 커스터마이즈할 필요가 없는 클라이언트들이 사용하기 어렵게 만든다. Facade는 서브시스템에 대한 단순하고 기본적인 시각을 제공한다. 이러한 시각은 대부분의 클라이언트들에게 충분하다. 커스터마이즈가 필요한 클라이언트들에게만이 facade를 넘어서 볼 필요가 있는 것이다.
* 클라이언트들과 추상 클래스들의 구현 사이에는 많은 의존성이 있다. 클라이언트와 서브시스템 사이를 분리시키기 위해 facade를 도입하라. 그러함으로서 서브클래스의 독립성과 Portability를 증진시킨다.
* 서브시스템에 계층을 두고 싶을 때. 각 서브시스템 레벨의 entry point를 정의하기 위해 facade를 사용하라. 만일 각 서브시스템들이 서로 의존적이라면 서브시스템들간의 대화를 각 시스템간의 facade로 단일화 시킴으로서 그 의존성을 단순화시킬 수 있다.
http://zeropage.org/~reset/zb/data/facade.gif
Facade (Compiler)
subsystem classes (Scanner, Parser, ProgramNode, etc.)
- Facade 객체에 의해 정의된 작업을 처리한다.
- facade 에 대한 정보가 필요없다. facade object에 대한 reference를 가지고 있을 필요가 없다.
* 클라이언트는 Facade에게 요청을 보냄으로서 서브시스템과 대화한다. Facade 객체는 클라이언트의 요청을 적합한 서브시스템 객체에게 넘긴다. 비록 서브시스템 객체가 실제 작업을 수행하지만, facade 는 facade 의 인퍼페이스를 서브시스템의 인터페이스로 번역하기 위한 고유의 작업을 해야 할 것이다.
facade 를 사용하는 클라이언트는 직접 서브시스템 객체에 접근할 필요가 없다.
Facade Pattern은 다음과 같은 이익을 제공해준다.
- JollyJumpers/황재선 . . . . 2 matches
} catch (IOException e) {
} catch (IOException e) {
import junit.framework.TestCase;
public class TestJollyJumpers extends TestCase {
- MoniWikiBlogOptions . . . . 2 matches
{{{$blog_category='MyBlogCategories'}}}
set category index. Plese see BlogCategories
- PreviousFrontPage . . . . 2 matches
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.
/!\ Please see Wiki:WikiForumsCategorized for a list of wikis by topic.
You can edit any page by pressing the link at the bottom of the page. Capitalized words joined together form a WikiName, which hyperlinks to another page. The highlighted title searches for all pages that link to the current page. Pages which do not yet exist are linked with a question mark: just follow the link and you can add a definition.
Technical problems? Contact J?genHermann via email.
- ProjectPrometheus/AT_RecommendationPrototype . . . . 2 matches
class TestCustomer(unittest.TestCase):
class TestRecommendationSystem(unittest.TestCase):
- ProjectPrometheus/UserStory . . . . 2 matches
* Book Cart 기능 - 책 검색중 맘에 드는 책 (또는 도서관에 대여하려고 점찍어놓은 책)에 대하여 자신만의 Book Cart 에 넣어둘 수 있다. 점찍어놓은 책들을 보관하고 간단한 메모를 적을 수 있다.
- STL . . . . 2 matches
* ["STL/VectorCapacityAndReserve"] : Vector 의 Capacity 변화 추이
- TkinterProgramming . . . . 2 matches
02. [TkinterProgramming/SimpleCalculator]
03. [TkinterProgramming/Calculator2]
- VMWare/OSImplementationTest . . . . 2 matches
[http://neri.cafe24.com/menu/bbs/view.php?id=kb&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&keyword=x86&select_arrange=headnum&desc=asc&no=264 출처보기]
[ORG 0x7C00] ; The BIOS loads the boot sector into memory location
int 13h ; Call interrupt 13h
int 13h ; Call interrupt 13h
CALL enableA20
call enableA20o1
call enableA20o1
gdt_end: ; Used to calculate the size of the GDT
먼저 Win32 Console Application으로 간단히 프로젝트를 생성합니다.
- VonNeumannAirport . . . . 2 matches
-> 이 경우 PassengerSet 이 따로 빠져있지 않은 경우 고생하지 않을까. PassengerSet 이 빠져있다면, 가방, 컨테이너 부분들에 대해서 case 문이 복잡해질듯.
* PassengerSet Case가 여러개이고 Configuration 은 1개인 경우에 대해서. Configuration 1 : 여러 Case 에 대해 각각 출력하는 경우.
- ZeroPage . . . . 2 matches
* 2014 Naver D2 CAMPUS PARTNER 선정
* [OpenCamp/네번째] 공동주최(with CLUG)
* [OpenCamp/세번째] 주최
* Naver D2 CAMPUS PARTNER 선정
* 우수상(2등) : CAU Arena - [장용운],[이민석],[이민규]
* 장려상(4등) : 안드로이드 컨트롤러 Application - [이원희]
* team 'GoSoMi_critical' 본선 39위(학교순위 15위) : [김태진], [곽병학], [권영기]
* team 'GoSoMi_critical' 41등 : [김태진], [곽병학], [권영기]
* team 'CAU_Burger' 1문제 : [김윤환], [이성훈], [김민재]
* 우수상 - 3D Alca : 남상협
- stuck!! . . . . 2 matches
[http://165.194.17.15/pub/upload/CampusC.zip CampusC] // 오래된 내용이라 구질구질 하기도.
- 권영기 . . . . 2 matches
* [AngelsCamp/2015] - 대나무숲...
- 데블스캠프2011/둘째날/Machine-Learning . . . . 2 matches
* svm learning : ./svm_multiclass_learn -c 1 /home/newmoni/workspace/DevilsCamp/data/test.svm_light test.c1.model
* svm classify : ./svm_multiclass_classify /home/newmoni/workspace/DevilsCamp/data/test2.svm_light economy_politics2.10.model
- 몸짱프로젝트/CrossReference . . . . 2 matches
class CrossReferenceTestCase(unittest.TestCase):
void duplicatedWord(Node * ptr, string aWord, int aLineCount);
bool isDuplicated = false;
duplicatedWord(ptr, aWord, aLineCount);
isDuplicated = true;
if (!isDuplicated)
void duplicatedWord(Node * ptr, string aWord, int aLineCount)
- 몸짱프로젝트/InfixToPrefix . . . . 2 matches
class ExpressionConverterTestCase(unittest.TestCase):
- 새싹교실/2012/아우토반/앞반/5.10 . . . . 2 matches
* Call-by-value Problem
* Call-by-reference의 원리
- ACM_ICPC/2013년스터디 . . . . 1 match
* queue - [http://211.228.163.31/30stair/catch_cow/catch_cow.php?pname=catch_cow 도망 간 소를 잡아라]
* catch_cow
* Topological sort -
* [http://en.wikipedia.org/wiki/Topological_sorting]
* [http://www.algospot.com/judge/problem/read/WEEKLYCALENDAR Weekly Calendar]
* 2012 ICPC대전 문제 풀기 : [https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=554 링크]
* C - Critical 3-path
* 위상정렬, critical path에 대해 공부 및 코딩 - 코드 및 해설은 Fundamental of DataStructure를 참고하자.
- BlogArchivesMacro . . . . 1 match
CategoryMacro
- Class . . . . 1 match
- Ca : '칼슘'이라는 객체.
- Class/2006Fall . . . . 1 match
* [http://hilab.cau.ac.kr Home]
* [http://www.cau.ac.kr/station/club_club.html?clubid=28 Cau Club]
* [http://hsc.cse.cau.ac.kr/HSC/prod04.htm 강의계획서]
* [http://dblab.cse.cau.ac.kr/FS/index.html Home]
* [http://cslab.cse.cau.ac.kr/lecture_view.asp?num=6 Home]
* Using vocabulary in real situation.
* [http://cafe24.daum.net/causkier 스키 강의 카페]
- CppStudy_2002_1/과제1/CherryBoy . . . . 1 match
struct candybar
int cal;
}candy;
void print(candybar &, char * name="millenium Munch",double weight=2.85,int cal=350);
print(candy);
void print(candybar &candy,char * name,double weight,int cal)
candy.name[i]=name[i];
candy.weight=weight;
candy.cal=cal;
cout << "캔디바의 이름\t:\t" << candy.name <<endl;
cout << "캔디바의 무게\t:\t" << candy.weight << endl;
cout << "캔디바의 칼로리\t:\t" << candy.cal << endl;
int handicap;
//함수는 handicap을 새값으로 초기화한다.
void handicap(golf & g, int hc);
handicap(g2,77);
cout << "Handicap?\n";
cin >> g.handicap;
g.handicap=hc;
void handicap(golf & g, int hc)
- CubicSpline/1002/TriDiagonal.py . . . . 1 match
print "Calculated - Matrix Y"
- CxImage 사용 . . . . 1 match
4. Set->C/C++ ->Category 에서 Preprocessor 선택
- EightQueenProblemDiscussion . . . . 1 match
def testFindQueenInSameVertical (self):
self.assertEquals (self.bd.FindQueenInSameVertical (2), 1)
self.assertEquals (self.bd.FindQueenInSameVertical (3), 0)
즉, 실제 Queen의 위치들을 정의하는 재귀호출 코드인데요. 이 부분에 대한 TestCase 는 최종적으로 얻어낸 판에 대해 올바른 Queen의 배열인지 확인하는 부분이 되어야 겠죠. 연습장에 계속 의사코드를 적어놓긴 했었는데, 적어놓고 맞을것이다라는 확신을 계속 못했죠. 확신을 위해서는 테스트코드로 뽑아낼 수 있어야 할텐데, 그때당시 이 부분에 대해서 테스트코드를 못만들었죠.
c+d)/2));return f;}main(q){scanf("%d",&q);printf("%d\n",t(~(~0<<q),0,0));}
When the program is run, one has to give a number n (smaller than 32), and the program will return in how many ways n Queens can be put on a n by n board in such a way that they cannot beat each other.
Note that the d=(e-=d)&-e; statement can be compiled wrong on certain compilers. The inner assignment should be executed first. Otherwise replace it with e-=d,d=e&-e;.
- FromDuskTillDawn/변형진 . . . . 1 match
$ln = explode("\n", "2\n3\nUlm Muenchen 17 2\nUlm Muenchen 19 12\nUlm Muenchen 5 2\nUlm Muenchen\n11\nLugoj Sibiu 12 6\nLugoj Sibiu 18 6\nLugoj Sibiu 24 5\nLugoj Medias 22 8\nLugoj Medias 18 3\nLugoj Reghin 17 4\nSibiu Reghin 19 6\nSibiu Medias 20 3\nReghin Medias 20 4\nReghin Bacau 24 6\nMedias Bacau 4 6\nLugoj Bacau");
echo "Test Case ".($n+1).".<br>";
else echo "There is no route Vladimir can take.<br>";
- GarbageCollection . . . . 1 match
컴퓨터 환경에서 가비지 컬렉션은 자동화된 메모리 관리의 한가지 형태이다. 가비지 컬렉터는 애플리케이션이 다시는 접근하지 않는 객체가 사용한 메모르 공간을 회수하려고 한다. 가비지 컬렉션은 John McCarthy 가 1959년 Lisp 언어에서 수동적인 메모리 관리로 인한 문제를 해결하기 위해서 제안한 개념이다.
특정 주기를 가지고 가비지 컬렉션을 하기 때문에 그 시점에서 상당한 시간상 성능의 저하가 생긴다. 이건 일반적 애플리케이션에서는 문제가 되지 않지만, time critical 애플리케이션에서는 상당한 문제가 될 부분임. (Incremental garbage collection? 를 이용하면 이 문제를 어느정도 해결하지만 리얼타임 동작을 완전하게 보장하기는 어렵다고 함.)
2번째의 것의 경우에는 자료구조 시간에 들은 바로는 전체 메모리 영역을 2개의 영역으로 구분(used, unused). 메모리를 할당하는 개념이 아니라 unused 영역에서 빌려오고, 사용이 끝나면 다시 unused 영역으로 돌려주는 식으로 만든다고함. ㅡㅡ;; 내가 생각하기에는 이건 OS(or VM), 나 컴파일러 수준(혹은 allocation 관련 라이브러리 수준)에서 지원하지 않으면 안되는 것 같음. 정확하게 아시는 분은 덧붙임좀..;;;
- Hacking . . . . 1 match
== Packet Capture ==
* http://www.libpcap.org
* [http://www.insecure.org/nmap/] - port scan 외에도 OS의 정보를 알 수 있음.
- JTDStudy/첫번째과제/정현 . . . . 1 match
public class BaseBallTest extends TestCase{
assertFalse(baseBall.duplicated(number));
public void testDuplicated() {
assertTrue(baseBall.duplicated("101"));
assertTrue(baseBall.duplicated("122"));
assertFalse(baseBall.duplicated("123"));
Scanner input= new Scanner(System.in);
} catch(Exception e) {
return number.length()==3 && !duplicated(number);
public boolean duplicated(String number) {
- JythonTutorial . . . . 1 match
Caucse:JythonTutorial
- MFC/DynamicLinkLibrary . . . . 1 match
관련함수) LoadLibrary(), GetProcAddress(), FreeLibrary()
DLL은 함수에 대한 코드만을 저장는데 국한되는 것이 아니다. 비트맵, 폰트와 같은 리소스들을 DLL 안에 위치시킬 수도 있다. 예를 들자면 카드놀이에 사용되는 Cards.dll 에서 카드들에 대한 비트맵 이미지와 그 것들을 다루는데 필요한 함수들을 포함하고 있다.
- NamedPipe . . . . 1 match
A named pipe is a named, one-way or duplex pipe for communication between the pipe server and one or more pipe clients. All instances of a
named pipe share the same pipe name, but each instance has its own buffers and handles, and provides a separate conduit for client-server communication. The use of instances enables multiple pipe clients to use the same named pipe simultaneously.
Any process can access named pipes, subject to security checks, making named pipes an easy form of communication between related or unrelated processes. Named pipes can be used to provide communication between processes on the same computer or between processes on different computers across a network.
Any process can act as both a server and a client, making peer-to-peer communication possible. As used here, the term pipe server refers to a process that creates a named pipe, and the term pipe client refers to a process that connects to an instance of a named pipe.
// connects, a thread is created to handle communications
|| {{{~cpp CallNamedPipe}}} || 메세지 형식의 Named Pipe를 Connect할 때 쓰이는 함수 ||
- Perforce . . . . 1 match
비슷한 소프트웨어로 Rational ClearCase, MS Team Foundation, Borland StarTeam 급을 들 수 있다.
- ProgrammingPearls/Column6 . . . . 1 match
=== A Case Study ===
- RPC . . . . 1 match
= Remote Procedure Call (RPC) =
- RSSAndAtomCompared . . . . 1 match
People who generate syndication feeds have a choice of
most likely candidates will be [http://blogs.law.harvard.edu/tech/rss RSS 2.0] and [http://ietfreport.isoc.org/idref/draft-ietf-atompub-format/ Atom 1.0].
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.
=== 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.
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 a carefully-designed payload container. Content may be explicitly labeled as any one of:
* escaped HTML, like is commonly used with RSS 2.0
* some other XML vocabulary (There is no guarantee that the recipient will be able to do anything useful with such 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.
Atom [http://www.ietf.org/internet-drafts/draft-ietf-atompub-autodiscovery-01.txt standardizes autodiscovery]. Additionally, Atom feeds contain a “self” pointer, so a newsreader can auto-subscribe given only the contents of the feed, based on Web-standard dispatching techniques.
back to the feed they came from.
RSS 2.0 is not in an XML namespace but may contain elements from other XML namespaces. There is no central place where one can find out about many popular extensions, such as dc:creator and content:encoded.
RSS 2.0 does not specify the handling of relative URI references, and in practice they cannot be used in RSS feeds.
Both RSS 2.0 and Atom 1.0 feeds can be accessed via standard HTTP client libraries. Standard caching techniques work well and are encouraged. Template-driven creation of both formats is quite practical.
For identification of the language used in feeds, RSS 2.0 has its own <language> element, while Atom uses XML's built-in
- Temp/Commander . . . . 1 match
'Called on normal commands'
- VonNeumannAirport/Leonardong . . . . 1 match
class TestDistance(unittest.TestCase):
- woodpage/VisualC++HotKeyTip . . . . 1 match
* Commands 탭에 보면 Category 가 있다 거기 콤보박스를 보면 여러가지 카테고리가 있는데 단축키나 메뉴 안쓰고도 이거 붙여놓고
- 고슴도치의 사진 마을처음화면 . . . . 1 match
▷American Visa
▷Mother's Digital Camera
|| [OurMajorLangIsCAndCPlusPlus] ||
- 데블스캠프2009/수요일/JUnit/서민관 . . . . 1 match
public class Calculator {
public double calculate(char op, int num1, int num2)
multiplication();
public void multiplication()
- 데블스캠프2009/화요일 . . . . 1 match
|| 변형진 || The Abstractionism || 컴퓨터공학의 발전과 함께한 노가다의 지혜 || attachment:/DevilsCamp2009/Abstractionism.ppt ||
- 땅콩이보육프로젝트2005 . . . . 1 match
* 요구사항 정하기( [Cockburn'sUseCaseTemplate] )
- 몸짱프로젝트/DisplayPumutation . . . . 1 match
* Recursive Function Call 사용
- 새싹교실/2011/Pixar/4월 . . . . 1 match
* Type Casting
* ''switch case''
scanf("%d", &score) ;
scanf("%d", &score);
1. 조건문, 반복문을 오늘로 마치려고 했는데… if else, for만 가르쳐줘서 한 주 더 해야겠어요~ while은 시간상 못 한 거지만 조건문 Switch case를 깜빡하다니ㅜㅜㅜㅜ
* ''switch case''
오늘은 변수종류에대해서 배웠다 local,global,static등에 대해배웠고, 반복문을 사용하여달력도 만들어보았고, 함수에 대해서도 배웠다.
- 송지원 . . . . 1 match
* 전/우/주/최/강/밴/드 Curseware Vocal
* 2011년 : IBM Campus Wizard 8기 활동, 2011-1학기 튜터링 프로그램에서 Tutor로 참여. ZeroPage 20주년 성년식 기획단 참여.
- 알고리즘3주숙제 . . . . 1 match
The directory is sorted by alphabetical order of names. It contains n entries which are stored in 2 arrays:
== Integer Multiplication ==
from [http://pages.cpsc.ucalgary.ca/~jacobs/Courses/cpsc413/W05/ University of Calgary Dept.CS]
[http://pages.cpsc.ucalgary.ca/~jacobs/Courses/cpsc413/W05/labs/DivideConquer.pdf Divide and conquer lab exercises]
- 우리가나아갈방향 . . . . 1 match
CauGlobal을 다녀오고 느낀점이 많았습니다. 그 가운데 여태까지 제가 제로페이지 활동을 하면서 아쉬웠던 점이 많이 떠올랐고, 제로페이지가 나아갈 방향에 대해 느낀점도 있었습니다. 이를 여기에 적어봅니다.
- 정모/2005.3.21 . . . . 1 match
그 날 모집하는 회원은 [ZeroPagers]임. 그러나 [DevilsCamp]에는 참여 해야한다.(참고-[ZeroPage회칙])
- 타도코코아CppStudy/객체지향발표 . . . . 1 match
* Classification(분류) - 같은 자료구조와 행위를 가진 객체들은 동일한 클래스(class)로 분류된다.
* 캡슐화(encapsulation) : 객체의 내부적인 사항과 객체들간의 외부적인 사항들을 분리시킨다. 이렇게 캡슐화된 객체의 행위는 외부에서 볼 때는 구체적인 아닌 추상적인 것이 되므로 정보 은닉(information hiding) 개념이 존중된다. 주어진 클래스의 특정 연산 기능은 메소드(method)라고 한다. 캡슐화는 무슨 메소드로 구현되었는가에 구애받지 않고 추상적으로 정의된 연산 기능을 통해 객체가 사용되고 시스템의 상태(state)를 변화시키도록 해준다.
서브클래스가 수퍼클래스의 변수와 메소드들을 상속받을 때 필요에 따라 정의가 구체화(specification)되며, 상대적으로 상위층의 클래스 일수록 일반화(generalization) 된다고 말한다.
* 캡슐화(Capsulation) : 캡슐화는 객체의 속에 모든 함수와 그 함수에 의해 유통되는 데이타를 밖에서 유통시키지 않는것이다.
또한, 일반적인 구조적 프로그래밍 언어(structured programming language : C, Pascal 등)도 객체지향 개발에 활용될 수 있는가 하면 객체 지향 데이타베이스 관리시스템(OODBMS)이 개발의 도구로 이용될 수도 있다.
- 현재 위키에 어떤 습관이 생기고 있는걸까? . . . . 1 match
* 좀 이상한(...라기보다는 제로위키에서였다면 생소했을) 페이지(ex) [InterestingCartoon], [GoodMusic], [창섭이 환송회 사진])를 만들어봤다. --[인수]
Found 84 matching pages out of 7557 total pages (870 pages are searched)
You can also click here to search title.