IT Info/신기술 용어
2011. 5. 31. 00:53
소셜 네트워크 게임 (Social Network Game) 또는 소셜 게임 (Social Game)은 페이스북,
마이스페이스, 믹시, 싸이월드 등의 소셜 네트워크 서비스 플랫폼을 기반으로,
사용자의 온라인 인맥과 유대관계를 증진하기 위해 사용자참여 및 관계맺기를 극대화한
새로운 형태의 사회적 인맥 기반의 게임이다. 게임 자체가 목적인 일반 온라인 게임과는 달리,
손쉬운 인터페이스를 통해 모든 연령층의 사용자를 대상으로 해당 SNS네트워크 내 사용자 간
친밀감과 동질성을 증대시키는 것이 특징이다 - 출처 위키백과
보통 게임은 렙업이나 아이템을 얼마나 좋은 것을 차고있나, 누가 누굴 이기고 등등
개인적이었던 반면 SNG는 그런 개인적인 것보다 네트워크 내의 사용자와 친밀감과 동질성을
증대하고 인맥관리를 목적으로 한다. 그러기에 꼭 동시에 접속해야만 유대 관계를 유지하는
보통 게임들과 다르게 각기 다른 시간대에 접속하여도 흔적남기는 식으로 인맥을 유지, 추가
할 수 있다. 소셜 네트워크를 기반으로 제작되어 모든 연령이 손쉽게 플레이 할 수 있는데에
초점을 맞추어 남녀노소 누구나 할 수 있도록 쉬운 인터페이스, 아기자기한 UI, 그래픽 등의
특징을 가지고 있다. 스타도 접었는데 이거나 할까 나도..
마이스페이스, 믹시, 싸이월드 등의 소셜 네트워크 서비스 플랫폼을 기반으로,
사용자의 온라인 인맥과 유대관계를 증진하기 위해 사용자참여 및 관계맺기를 극대화한
새로운 형태의 사회적 인맥 기반의 게임이다. 게임 자체가 목적인 일반 온라인 게임과는 달리,
손쉬운 인터페이스를 통해 모든 연령층의 사용자를 대상으로 해당 SNS네트워크 내 사용자 간
친밀감과 동질성을 증대시키는 것이 특징이다 - 출처 위키백과
보통 게임은 렙업이나 아이템을 얼마나 좋은 것을 차고있나, 누가 누굴 이기고 등등
개인적이었던 반면 SNG는 그런 개인적인 것보다 네트워크 내의 사용자와 친밀감과 동질성을
증대하고 인맥관리를 목적으로 한다. 그러기에 꼭 동시에 접속해야만 유대 관계를 유지하는
보통 게임들과 다르게 각기 다른 시간대에 접속하여도 흔적남기는 식으로 인맥을 유지, 추가
할 수 있다. 소셜 네트워크를 기반으로 제작되어 모든 연령이 손쉽게 플레이 할 수 있는데에
초점을 맞추어 남녀노소 누구나 할 수 있도록 쉬운 인터페이스, 아기자기한 UI, 그래픽 등의
특징을 가지고 있다. 스타도 접었는데 이거나 할까 나도..
'IT Info > 신기술 용어' 카테고리의 다른 글
신기술용어] N - Screen (2) | 2011.06.23 |
---|---|
신기술용어] SNS (Social Networking Service) (0) | 2011.06.23 |
신기술용어] 4G (fourth-generation wireless) : 4세대 무선 서비스 (0) | 2011.06.07 |
신기술용어] RSS (Really Simple Syndication) (0) | 2011.05.26 |
신기술용어] NFC (Near Field Communication) (0) | 2011.05.25 |
JAVA
2011. 5. 31. 00:34
컴퓨터가 기계보다 우수한 이유는 조건에 따라 일을 다르게 할 수 있기 때문이다.
자바에서는 if 문과 switch문으로 조건문을 만들 수 있다.
if 조건문
if 문은 두가지 형식으로 만들 수 있는데 블록이 있냐 없냐이다.
if ( 조건식)
위와 같이 if 다음으로 조건을 주어서 계속 값을 확인하고 그중에 하나라도 맞으면
안의 연산을 수행하고 빠져버린다. 값이 나왔다면 다음 연산을 수행하지 않는다.
switch
if문과 같이 식이 참일 때 수행을 하지만 문어다리처럼 여러가지 조건을 만들수 있다.
switch(식){
자바에서는 if 문과 switch문으로 조건문을 만들 수 있다.
if 조건문
if 문은 두가지 형식으로 만들 수 있는데 블록이 있냐 없냐이다.
if ( 조건식)
명령문
예) if(num1 > num2)
System.out.println("num1이 더 큽니다");
과 같이 블록이 없는 것과
if ( 조건식 ){
명령문
}
예) if(num1 > num2){
예) if(num1 > num2)
System.out.println("num1이 더 큽니다");
과 같이 블록이 없는 것과
if ( 조건식 ){
명령문
}
예) if(num1 > num2){
System.out.println("num1이 더 큽니다");
}
과 같이 블록이 있는 것이다.
if문은 조건식이 참일 때 아래를 수행한다.
조건문을 만족하지 않을 때에도 일을 수 행하게 하려면 else를 쓰면된다
if(조건식){
참일 때 명령문
}else{
거짓일 때 명령문
}
과 같이 사용하면 참 과 거짓일 때를 구분하여 두가지 일을 수행할 수 있다.
if문에 if문을 또 한번 쓸 수있다.
dangling else
if문안에 if문사용은 가능하지만 거기다 else까지 넣으면 식이 복잡해진다.
과 같이 블록이 있는 것이다.
if문은 조건식이 참일 때 아래를 수행한다.
조건문을 만족하지 않을 때에도 일을 수 행하게 하려면 else를 쓰면된다
if(조건식){
참일 때 명령문
}else{
거짓일 때 명령문
}
과 같이 사용하면 참 과 거짓일 때를 구분하여 두가지 일을 수행할 수 있다.
if문에 if문을 또 한번 쓸 수있다.
class ifTest {
public static void main(String args[]){
int num1 = 52;
int num2 = 24;
int num3 = 32;
if(num1 > num2) --> 1번
if(num1 > num3) --> 2번
System.out.println("num1이 제일 큽니다");
System.out.println("Done.");
}
}
위와 같이 쓰면 1번이 참이라면 안으로들어가 2번도 검사를 하고 2번도 참이라면 결과값이 출력된다.dangling else
if문안에 if문사용은 가능하지만 거기다 else까지 넣으면 식이 복잡해진다.
if(num1 > num2)--> 1번
if(num1 > num3)--> 2번
System.out.println("num1이 제일 큽니다");
else
System.out.println("Done.");
식이 위와 같다면 과연 else가 1번과 짝을 이루는 else인지 2번과 짝을이루는 else인지
판단하기가 쉽지않은데 이런 else를 dangling else 라고 하는데 danging은
대롱대롱 매달리다라는 의미이다. 자바에선 이 dangling else을 가장 가까운 if문과
짝을 이루라는 규칙이 있기때문에 위에 예제의 2번 if문과 짝을 이루는 else이다.
식이 위와 같다면 과연 else가 1번과 짝을 이루는 else인지 2번과 짝을이루는 else인지
판단하기가 쉽지않은데 이런 else를 dangling else 라고 하는데 danging은
대롱대롱 매달리다라는 의미이다. 자바에선 이 dangling else을 가장 가까운 if문과
짝을 이루라는 규칙이 있기때문에 위에 예제의 2번 if문과 짝을 이루는 else이다.
class dangingelse {
public static void main(String args[]){
int num1 = 152;
int num2 = 173;
if(num1 > num2) --> 1
if(num1 > 100) -->2
System.out.println("num1 = " + num1 );
else -->3
if(num2 > 100) -->4
System.out.println("num2 = " + num2 );
System.out.println("Done.");
}
}
위 예제는 dangling else를 모르는 사람이 짠
num1과 num2중에 큰 수가 100보다 클 때만 그 값을 출력하는 프로그램이다.
위 예제 에서보면 1을 거친 후 거짓이기 때문에 3번의 else로 빠지겠지 라고 생각하면
dangling else를 모르는거다, dangling else는 가장 가까운 if와 짝을 이루는 것이기 때문에
실질적으론 2번과 짝을 이루는 else이다 , 결과적으로 1번의 if문이 거짓으로 되면
그 안으로 타고들어가지 않고 바로 빠지게되는데 2번의 if문에 접근을 못하니 3번의
else도 당연히 접근을 못한다. 그러므로 1번이 거짓이 되면서 아래 나머지 연산은
모두 수행하지 않고 "Done" 만 찍힌다. 꼭 기억하자 꼭.
else if 라는 것도 있는데 이는 if문 다음에 와서 다른 조건을 계속 나열하는 것이다 .
num1과 num2중에 큰 수가 100보다 클 때만 그 값을 출력하는 프로그램이다.
위 예제 에서보면 1을 거친 후 거짓이기 때문에 3번의 else로 빠지겠지 라고 생각하면
dangling else를 모르는거다, dangling else는 가장 가까운 if와 짝을 이루는 것이기 때문에
실질적으론 2번과 짝을 이루는 else이다 , 결과적으로 1번의 if문이 거짓으로 되면
그 안으로 타고들어가지 않고 바로 빠지게되는데 2번의 if문에 접근을 못하니 3번의
else도 당연히 접근을 못한다. 그러므로 1번이 거짓이 되면서 아래 나머지 연산은
모두 수행하지 않고 "Done" 만 찍힌다. 꼭 기억하자 꼭.
else if 라는 것도 있는데 이는 if문 다음에 와서 다른 조건을 계속 나열하는 것이다 .
class elseif {
public static void main(String args[]){
int num1 = 74;
if(num1 < 10)
System.out.println("num1 = 10미만" );
else if(num1 < 100)
System.out.println("num1 = 10이상 100미만" );
else if(num1 < 1000)
System.out.println("num1 = 100이상 1000미만" );
else
System.out.println("num1 = 100이상" );
System.out.println("Done.");
}
}
위와 같이 if 다음으로 조건을 주어서 계속 값을 확인하고 그중에 하나라도 맞으면
안의 연산을 수행하고 빠져버린다. 값이 나왔다면 다음 연산을 수행하지 않는다.
switch
if문과 같이 식이 참일 때 수행을 하지만 문어다리처럼 여러가지 조건을 만들수 있다.
switch(식){
case 값1:
명령문
break;
명령문
break;
case 값2:
명령문
break;
case 값3:
명령문
break;
default:
명령문
break;
명령문
break;
case 값3:
명령문
break;
default:
명령문
break;
}
()안의 식을 계산하고 나서 그에 맞는 값에 따라 case를 통과하고 break;를 만나서
빠져나온다. 식의 결과가 case문 중에 일치하는 문장이 없다면 default에 있는 명령문이
수행된다.
break;문을 안써도 실행은 되는데 만약 3번 case문에 값을 안썼다면 식의 결과값이
값 3일 때 3번 case문의 명령문을 수행한후 break;가 없기 때문에 아래의 default의
명령문도 수행되어 버린다, 꼭 나쁜것만은 아니지만 깔끔하지 못하다.
()안의 식을 계산하고 나서 그에 맞는 값에 따라 case를 통과하고 break;를 만나서
빠져나온다. 식의 결과가 case문 중에 일치하는 문장이 없다면 default에 있는 명령문이
수행된다.
break;문을 안써도 실행은 되는데 만약 3번 case문에 값을 안썼다면 식의 결과값이
값 3일 때 3번 case문의 명령문을 수행한후 break;가 없기 때문에 아래의 default의
명령문도 수행되어 버린다, 꼭 나쁜것만은 아니지만 깔끔하지 못하다.
'JAVA' 카테고리의 다른 글
JAVA] 11. 매소드 호출문 (0) | 2011.06.02 |
---|---|
JAVA] 10. 반복문 (0) | 2011.05.31 |
JAVA] 8. 배열의 선언, 생성, 이용 (0) | 2011.05.28 |
JAVA] 7. 여러가지 대입문 (1) | 2011.05.26 |
JAVA] 6. 로컬 변수의 선언과 이용 (0) | 2011.05.25 |
JAVA
2011. 5. 28. 00:13
배열이란 열개의 변수가 필요한데 그 변수들이 타입, 목적 등이 비슷하다면 열개의 데이터를
한 곳에 몰아넣고 변수로 각각 꺼내어 쓸 수 있다. 그 때 쓰는 것이 배열이다.
배열중 가장 단순한 구조가 1차원 배열인데 1차원 배열의 선언은 다음과 같다.
타입 식별자[];(int arr[];) 또는 타입[] 식별자;(int[] arr;) 이다.
하지만 이렇게 선언만 한다고 되는건 아니고 다음과같이 배열을 생성해서 변수에 대입해야한다.
new 타입[크기];(arr = new int[10];) 이렇게 사용해야 한다. 열개의 공간을 만들겠다는 의미이다.
이제 이렇게 만든 배열변수에 값을 넣으려면 그 배열에 몇 번째 인지를 알려주는 인덱스(Index)
값을 넣어주어야 한다. 배열이름[인덱스]; 이렇게 만들고 arr[0] = 12; 이렇게 사용한다.
예제를 보자
한 곳에 몰아넣고 변수로 각각 꺼내어 쓸 수 있다. 그 때 쓰는 것이 배열이다.
배열중 가장 단순한 구조가 1차원 배열인데 1차원 배열의 선언은 다음과 같다.
타입 식별자[];(int arr[];) 또는 타입[] 식별자;(int[] arr;) 이다.
하지만 이렇게 선언만 한다고 되는건 아니고 다음과같이 배열을 생성해서 변수에 대입해야한다.
new 타입[크기];(arr = new int[10];) 이렇게 사용해야 한다. 열개의 공간을 만들겠다는 의미이다.
이제 이렇게 만든 배열변수에 값을 넣으려면 그 배열에 몇 번째 인지를 알려주는 인덱스(Index)
값을 넣어주어야 한다. 배열이름[인덱스]; 이렇게 만들고 arr[0] = 12; 이렇게 사용한다.
예제를 보자
class ArrayExample {
public static void main(String args[]){
int arr[];
arr = new int[10]; // 이렇게 열개의 배열을 생성 했다
arr[0] = 10; // 0번엔 10을
arr[1] = 20; // 1번엔 20을
arr[2] = arr[0] + arr[1]; 2번엔 0번과 1번배열 더한 것을 값으로 대입하였다.
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
}
결과는
10
20
30 으로 나온다.
알아 두고 갈것이 있는데, 왜 로컬변수처럼 선언하지않고 새로 생성을 다시 해줘야하는 이유는
변수를 하나 생성하면 그 변수에 관한 메모리 공간이 만들어지게 되는데
int arr[]; 만 만들면 그야말로 그냥 한 공간 뿐이 만들어지지 않는다. 그렇기 때문에 배열의
메모리를 만드는 작업을 따로 해줘야하는데 그것이 배열 생성식이다 .
new int[5]; 이렇게 쓰면 다섯개의 공간이 만들어진다. 그럼 위의 배열변수를 선언할 때의
메모리는 어디다쓰냐하면 바로 배열 생성식으로 만든 다섯개의 공간을 참조하려면
참조값이 있어야하는데 이 참조값(reference value)을 담는데에 그 메모리공간을 사용한다.
쉽게말해 arr[0] 의 공간에 12라는 값을 대입했다면 얘를 쓰려할 때 이 12라는 값을 가리키는
값이 들어가있다. 말이 어려운데 계란 한 판을 가져다 놓았다고 치고, 두번째줄에
첫번째 계란을 가져와라 라고 한다면 이 '두번째줄에 첫번째 계란을 가져와라' 라는 것이
참조값이고, 이 참조값을 담아두는곳이 아까 int arr[]; 여기서 만들어진 메모리이다.
확실히말하면. 참조값이 정확히 얘를 가리키는 주소를 말하는 것은아니다.
다만 우린 그렇게 알고 있으면 되고 나머지는 자바 가상기계가 해준다.
다차원배열도 비슷하다.
타입 식별자[][];(int arr[][];) 또는 타입[][] 식별자;(int[][] arr;) 로 선언한다.
int[] arr[]; 이것도 되긴된단다. 혼란스러워서 안쓰지만
2차원 배열의 생성식도 비슷하다.
new 타입[크기1][크기2]; (arr = new int[10][10]); 이런식이다.
역시 같은
10
20
30 의 결과가 찍힌다. 이런방식으로, 3차원, 4차원 배열이 모두 가능하다.
* 배열의 초기화와 선언을 한꺼번에 하는 방법.
int arr[] = {10, 20, 30, 40, 50}; 이런식으로 한꺼번에 한다.
배열, 편하다, 잘쓰고있다 고마워
출판사 : 한빛미디어 , 저자 : 김윤명 님의 뇌를 자극하는 Java프로그래밍에서 공부한 내용입니다.
결과는
10
20
30 으로 나온다.
알아 두고 갈것이 있는데, 왜 로컬변수처럼 선언하지않고 새로 생성을 다시 해줘야하는 이유는
변수를 하나 생성하면 그 변수에 관한 메모리 공간이 만들어지게 되는데
int arr[]; 만 만들면 그야말로 그냥 한 공간 뿐이 만들어지지 않는다. 그렇기 때문에 배열의
메모리를 만드는 작업을 따로 해줘야하는데 그것이 배열 생성식이다 .
new int[5]; 이렇게 쓰면 다섯개의 공간이 만들어진다. 그럼 위의 배열변수를 선언할 때의
메모리는 어디다쓰냐하면 바로 배열 생성식으로 만든 다섯개의 공간을 참조하려면
참조값이 있어야하는데 이 참조값(reference value)을 담는데에 그 메모리공간을 사용한다.
쉽게말해 arr[0] 의 공간에 12라는 값을 대입했다면 얘를 쓰려할 때 이 12라는 값을 가리키는
값이 들어가있다. 말이 어려운데 계란 한 판을 가져다 놓았다고 치고, 두번째줄에
첫번째 계란을 가져와라 라고 한다면 이 '두번째줄에 첫번째 계란을 가져와라' 라는 것이
참조값이고, 이 참조값을 담아두는곳이 아까 int arr[]; 여기서 만들어진 메모리이다.
확실히말하면. 참조값이 정확히 얘를 가리키는 주소를 말하는 것은아니다.
다만 우린 그렇게 알고 있으면 되고 나머지는 자바 가상기계가 해준다.
다차원배열도 비슷하다.
타입 식별자[][];(int arr[][];) 또는 타입[][] 식별자;(int[][] arr;) 로 선언한다.
int[] arr[]; 이것도 되긴된단다. 혼란스러워서 안쓰지만
2차원 배열의 생성식도 비슷하다.
new 타입[크기1][크기2]; (arr = new int[10][10]); 이런식이다.
class ArrayExample2 {
public static void main(String args[]){
int arr[][] = new int[10][10];
arr[0][0] = 10;
arr[1][1] = 20;
arr[2][2] = arr[0][0] + arr[1][1];
System.out.println(arr[0][0]);
System.out.println(arr[1][1]);
System.out.println(arr[2][2]);
}
}
역시 같은
10
20
30 의 결과가 찍힌다. 이런방식으로, 3차원, 4차원 배열이 모두 가능하다.
* 배열의 초기화와 선언을 한꺼번에 하는 방법.
int arr[] = {10, 20, 30, 40, 50}; 이런식으로 한꺼번에 한다.
class Array1 {
public static void main(String args[]){
int arr[] = {10, 20, 30, 40, 50};
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);
System.out.println(arr[4]);
}
}
돌리면 10,20,30,40,50 쭉 찍힌다.
다차원도 마찬가지이다.
int arr[][] = { {1,2,3}, {4,5,6}, {7,8,9}}; 이런식으로 중괄호로 구분을 지으면 된다 .
마지막으로 배열의 길이를 알아보는 방법인데, 배열이 위 예제처럼 열가지정도면 크기를
알기쉽지만, 복잡하고 긴 로직에선 알기 쉽지않다 그럴땐 배열이름 뒤에 .length를 붙여준다.
다차원도 마찬가지이다.
int arr[][] = { {1,2,3}, {4,5,6}, {7,8,9}}; 이런식으로 중괄호로 구분을 지으면 된다 .
마지막으로 배열의 길이를 알아보는 방법인데, 배열이 위 예제처럼 열가지정도면 크기를
알기쉽지만, 복잡하고 긴 로직에선 알기 쉽지않다 그럴땐 배열이름 뒤에 .length를 붙여준다.
class arrayexam {
public static void main(String args[]){
int arr[] = {10, 20, 30, 40, 50};
System.out.println(arr.length);
}
}
이렇게 써주면 5 라고 찍힌다, 위에 배열 갯수를 세어보면 다섯개가 맞다.
이렇게 써주면 5 라고 찍힌다, 위에 배열 갯수를 세어보면 다섯개가 맞다.
출판사 : 한빛미디어 , 저자 : 김윤명 님의 뇌를 자극하는 Java프로그래밍에서 공부한 내용입니다.
'JAVA' 카테고리의 다른 글
JAVA] 10. 반복문 (0) | 2011.05.31 |
---|---|
JAVA] 9. 조건문 (0) | 2011.05.31 |
JAVA] 7. 여러가지 대입문 (1) | 2011.05.26 |
JAVA] 6. 로컬 변수의 선언과 이용 (0) | 2011.05.25 |
JAVA] 5. 간단한 조건문과 반복문 (0) | 2011.05.25 |