예시로 바로 들어가자





1. aggregation


'part - whole' 관계다

life time이 independent 하다


즉, passenger는 car의 일부분이지만 car가 없어진다고 passenger가 없어지지는 않는다



2. composition


composition은 aggregation보다 dependency가 좀더 강한 관계다

life time이 dependent 한 관계다


즉, engine은 car의 일부분이여서 car가 없어지면 engine도 없어진다





두 개념의 차이는 conceptual(개념적)하며 실전에서 두 개념을 명확히 구분할 방법은 없다고 쓰여있다. 

두개를 구분하는것은 'part of' relation 이 강한가, 약한가 이다




출처<Objective-Oriented Software Development Using Java>

Posted by jeff제프
,



이전 포스트에서는 어떻게 특정 컬럼들을 출력하는지 알아봤다.

데이터가 작아서 우리가 인지하지 못했지만 데이터가 커지면

엄청 길죽한 데이터가 출력이 될 것이다.

컬럼 전체(세로줄 전체)를 출력해주기 때문이다.


where


그러면 이제 좀더 세부적인 결과만 출력되도록 해보자.

where문을 사용한다.



select* from student where studentid >= 21000;


코드를 짜고 보니 이상하다.ㅠㅠ 예시가 적절치 못했다. 학번보다는 가격이나 연봉 같은 수치가 더 적합하겠다.


예시가 적절치 않지만 감은 왔으리라고 생각한다.


char 타입도 가능하다

select* from student where dongari = 'IVF';


여기서 중요한 점은!

sql 명령어는 대소문자를 구분하지 않지만 char에서는 대소문자를 완벽히 구분하므로

조회할 때 대소문자를 정확히 구분해줘야 한다.


AND, OR, NOT


테이블을 좀더 세부적으로 걸러내고 싶다면 식을 상세하게 적으면 된다. 그러기 위해서는 연산자가 필요하다.


select* from student WHERE studentid >21000 AND studentid < 20090;





ps. 같지 않다 표현은 <>, !=, ^=  세가지 중 아무거나 써도 된다.

'기타' 카테고리의 다른 글

[oracle] 1. query 기초  (0) 2014.03.26
vi editor 처음 시작  (0) 2014.03.19
Posted by jeff제프
,

[oracle] 1. query 기초

기타 2014. 3. 26. 14:36

테이블 생성 후,

일단 데이터를 넣어줘야 한다.


테이블 이름이 student이면


insert into student values(21000, 'jeff', 'Pixar');


이렇게 하면 한 줄이 추가가 되어있을 것이다.


이제 테이블 내용을 모두 확인 하려면


select * from student;


또, 이렇게도 확인할 수 있다.


desc student;


desc는 describe의 줄임말이다.


지금은 내용이 별로 없어서 괜찮지만 실 사용하다가 보면

필요한 칼럼만 확인해야할 때가 있다.

그럴 때는 일부 칼럼만 지정해서 출력할 수가 있다.



select name, dongari from student;


이렇게 하면 student 테이블에서 이름 칼럼과 동아리 칼럼만 뽑아서 출력해준다.

자, 이제 데이터 베이스에 등록된 사람들 중 동아리가 몇개인지  알고 싶어졌다.

동아리만 셀렉트 해서 출력을 해보겠다.


select dongari from student;


이렇게 했을 때 중복되는 값들이 몇개 출력될 경우가 있다.

나는 동아리가 몇 종류가 있는지 알고 싶을 뿐이다ㅠㅠ

그러면 중복을 제거해야 한다.

여기서는 distinct를 사용하도록 한다.

select distinct dongari from student;










'기타' 카테고리의 다른 글

[oracle] 2. where문으로 조건부 출력하기  (0) 2014.03.26
vi editor 처음 시작  (0) 2014.03.19
Posted by jeff제프
,

vi editor 처음 시작

기타 2014. 3. 19. 10:31

vi hello.c   <- hello.c를 생성함과 동시에 편집을 시작.


그 안에서는 세가지 모드가 있다.------------------------


i(insert) : 입력 모드

a(append): 위치 이동 모드 

이때 이동키는 h j k l 다.

esc: 명령모드

:wq(write and quit)

:q!( quit without save)


------------------------------------------------------

빠져나온 후 컴파일을 해야 한다.


gcc hello.c -o hello.exe   (생성되었다)

./hello.exe  (잘 작성됐는지 런해서 확인한다)


수정하고 싶으면

vi hello.c


'기타' 카테고리의 다른 글

[oracle] 2. where문으로 조건부 출력하기  (0) 2014.03.26
[oracle] 1. query 기초  (0) 2014.03.26
Posted by jeff제프
,

http://blog.naver.com/ntzkimy?Redirect=Log&logNo=50189247881


http://narsisse.com/201



Posted by jeff제프
,

thread를 구현하는 방법은 두가지다. 



첫번째는 Runnable() 인터페이스를 상속받아서 쓰는 것이고


두번째는 Thread 클래스를 상속받아서 직접 구현하는 것이다



첫번째 사용방법의 예)






public class myThread implements Runnable(){


public void run(){


//쓰레드 돌아갈 때 수행할 내용


}


public static void main(String args[])

{

myThread myObj = new myThread();

Thread TrdObj = new Thread(myObj);

TrdObj.start();



}


//////////////////////////////


두번째, 상속받아서 쓰는 방법 : thread를 쓸 일이 많을 때 더 유용하다.


class DerivedClass extends Thread{


public void run(){

 //내용

}


}


public class mainClass{


public static void main(String[] args){


DerivedClass threadObj = new DerivedClass();

threadObj.start();


}



}




Posted by jeff제프
,

이것때문에 여러날을 고생했는데,

어떤 분이 도움을 주셔서 해결했다.

 

 

첫번째 문제점.

 

일단 타일맵 기반이면 줌인 줌아웃, 맵 이동도 되어야하는데

터치를 거기에다가만 쓰면 건물짓기와 같은 다른 수행을 할 수가 없다.

그래서 줌인줌아웃클래스를 따로 만들어서 그것을 상속받고,

터치를 다음 처럼 이중으로 써야한다

 

ccTouchBegan(CCTouch* pTouch, CCEvent* pEvent ){

 

 

//@brief : 받은 인자를 고대로 물려준다. 사용하기전에 헤더를 인클루드 해주는 것은 잊지말자

 

줌인클래스::ccTouchBegan(pTouch, pEvent);

 

//내가 하고 싶은 다른 수행 입력

 

}

 

 

 

두번째 문제점.

 

터치의 좌표가 일치하지 않는다.

convert 라는 내용이 들어간 함수를 써야할 것 같다는 느낌은 오는데 어떻게 사용해야하는지 몰라서 헤맸다.

상황에 따라 다르겠지만, 우리는 layer위에 타일맵을 addchild하고, 해당 layer에서 터치를 받아와서 쓰려고했는데 좌표가 전혀 엉뚱한 곳을 가리켰다.

그래서 이런식으로 해결했다.

 

ccTouchBegan(생략){

 

 

CCTMXTileMap* map = CCTMXTileMap::create("맵파일이름.tmx"); 

CCPoint touchLocation  = map->convertTouchToNodeSpace(pTouch);

CCLog("좌표확인 : (%f, %f)"touchLocation.x, touchLocation.y);

}

 

 

//pTouch가 갑자기 등장했는데 pTouch를 가져오는게 정확히 생각이 안난다 ㅋㅋㅋㅋㅋ 생각나면 적어드릴게요

 

'개발일지 > cocos2d-x' 카테고리의 다른 글

CCTileMapAtlas 의 정체는...  (0) 2014.02.19
table scroll 참고 사이트  (0) 2014.02.17
나중에 살펴볼 함수들  (0) 2014.02.13
동적으로 파일 가져오기  (0) 2014.02.10
오브젝트 가져오기와 애니메이션 적용  (0) 2014.02.03
Posted by jeff제프
,

touch 정리

카테고리 없음 2014. 2. 19. 16:08

CCPoint touchPoint = touch->getLocation();

    CCPoint _touchGL = CCDirector::sharedDirector()->convertToGL(touch->getLocation());

    CCPoint _touchWorldSpace = this->convertToNodeSpace(_touchGL);



2,3번 좌표는 같다. 


1번과 2,3의 차이는 y좌표가 거꾸로임

Posted by jeff제프
,

tilemap에 대하여 찾아보다보면 


CCTileMapAtlas로 선언하는 코드를 볼 수가 있었다. 궁금했었는데, 설명을 보니까 정체는


CCTileMap의 구버전? 같은건가보다.

 

정확히는 모르겠지만

 

CCTileMap은 완성된 타일맵을 통째로 가져오는 반면

 

Atlas는 한개의 타일을 지정해주면 렌더링을 해서 쭉 깔아주는 것 같다.

 

이제부턴 Atlas 대신 CCTileMap 클래스를 쓰라고 적혀있다. 




p.s) Altas = '지도'


'개발일지 > cocos2d-x' 카테고리의 다른 글

tilemap 기반 게임의 터치  (0) 2014.02.21
table scroll 참고 사이트  (0) 2014.02.17
나중에 살펴볼 함수들  (0) 2014.02.13
동적으로 파일 가져오기  (0) 2014.02.10
오브젝트 가져오기와 애니메이션 적용  (0) 2014.02.03
Posted by jeff제프
,

시간이 있다면,


지금까지 알게된 내용 정리도 하고,


동영상도 올리고 싶다.


늘 생각만 한다..면

Posted by jeff제프
,