분류 전체보기 (392) 썸네일형 리스트형 [Java] 05.04 - break & continue 들어가며 break와 continue는 실행 흐름의 조절을 목적으로 반복문 내에 삽입되는 키워드이다. 따라서 이 둘을 적절히 활용하면 다양한 흐름을 보이는 반복문을 구성할 수 있다. break문 break문은 앞서 switch문을 빠져나가는 용도로 소개한 바 있는데, 마찬가지로 반복문을 빠져나가는 용도로 사용된다. 보통은 if문ㅇ과 함께 사용되어 특정 조건이 만족 될 때, 이를 감싸는 반복문을 빠져 나가도록 구성이 된다. 이와 관련하여 다음 예제를 보자. public class temp { public static void main(String[] args){ int num = 1; boolean search = false; while (num < 100){ if (((num % 5) == 0) && (.. [Java] 05.03 - for, while 그리고 do ~ while 들어가며 앞서 소개한 컨트롤 문장들은 조건에 따른 코드의 '선택적 실행'을 위한 것들이다. 그러나 지금부터 소개하는 컨트롤 문장들은 조건에 따른 코드의 '반복 적 실행'을 위한 것들이다. 반복문 - while while문의 동작 방식을 이해하는 것은 if문을 이해하는 것만큼이나 쉽다. 따라서 간단한 예제와 그 실행 결과를 통해서 관찰할 수 있는 기회를 먼저 제공하겠다. public class temp { public static void main(String[] args){ int num = 0; while (num < 5){ System.out.print(num + " "); num++; } } } /* 실행 결과 0 1 2 3 4 */ 실행 결과를 관찰해보면 while문 안에 위치한 두 문장이 총 5.. [Java] 05.02 - switch와 break 들어가며 이어서 소개하는 switch문도 조건에 따라 실행할 문장을 구분한다는 측면에서 if ~ else if ~ else 문과 유사하다. 실제로 이 문장을 대체하는 용도로 사용이 된다. 특히 중간에 else if가 많이 들어가는 상황에서는 switch문이 더 좋은 선택이 될 수 있다. switch문의 기본 구성 다음 그림은 switch문의 기본 구성을 보여준다. 이렇듯 switch문은 switch, case 그리고 default로 이뤄진다. 위 그림에 존재하는 키워드 case와 default를 가리켜 '레이블(Label)'이라 한다. 레이블이라고 하면 생소하게 느낄 수 있다. 그러나 다음과 같이 말하면 친근하게 느껴진다. '라벨(Label)' 다음 그림은 문구점에서 구입이 가능한 라벨(레이블)이다. 흔.. [Java] 05.01 - if 그리고 else 들어가며 특정 조건이 만족될 때에만 실행하고픈 문장이 있다면 if 키워드를 사용하면 된다. 그리고 2개의 문장 중 조건에 따라 하나만 실행하고 싶다면 거기에 else를 더 추가하면 된다. if 문과 if ~ else 문 if 문과 if ~ else 문이 제공하는 기능을 스스로 파악할 수 있도록 예제를 하나 제시하겠다. public class temp { public static void main(String[] args){ int n1 = 5; int n2 = 7; // if 문 if (n1 < n2){ System.out.println("n1 < n2 is true"); } // if ~ else 문 if (n1 == n2){ System.out.println("n1 == n2 is true"); } .. [Java] 04.03 - 비트를 대상으로 하는 연산자들 들어가며 비트를 대상으로 하는 연산이라고 하면 언뜻 하드웨어 컨트롤을 떠올리기 쉽다. 그러나 일반 응용 프로그램의 개발에서도 비트를 대상으로 하는 연산이 많이 쓰인다. 비트 연산자의 이해 비트 연산자는 각각의 비트를 대상으로 연산을 진행하는 연산자이며, 피연산자는 반드시 정수이어야 한다. 실수를 대상으로 하는 비트 연산은 의미가 없기 때문에 자바는 이를 지원하지 않는다. 위의 표에 있는 연산자들을 이해하기에 앞서 비트 단위 연산이 의미하는 바를 이해할 필요가 있다. 이에 다음 예제를 통해서 비트 단위 연산의 의미를 설명하고자 한다. public class temp { public static void main(String[] args){ byte n1 = 13; byte n2 = 7; byte n3 = .. [Java] 04.02 - 자바에서 제공하는 단항 연산자들 들어가며 단항 연산자는 피연산자가 하나인 연산자로, 이항 연산자에 비해 그 수가 적다. 그러나 이항 연산자와 마찬가지로 유용하게 사용되는 연산자들이다. 부호 연산자 '+'와 '-'는 이항 연산자로 덧셈과 뺄셈에 사용된다. 그런데 이 둘은 단항 연산자로도 의미를 갖는다. 물론 그 의미는 수학적 의미와 동일하며, 연산자의 경우 다음과 같이 사용할 수 있다. double e1 = 3.5; double e2 = -e1; // e2에 저장되는 값은 -3.5 이와 유사한 방법으로 '+' 연산자도 사용할 수 있다. 그러나 이는 큰 의미를 두지 않는 연산자이다. 그럼 두 연산자와 관련하여 다음 예제를 보자. public class temp { public static void main(String[] args){ sh.. [Java] 04.01 - 자바에서 제공하는 이항 연산자들 들어가며 피연산자가 둘인 연산자를 가리켜 '이항 연산자(binary operator)' 라고 한다. 따라서 '+'나 '='도 이항 연산자에 속한다. 자바의 연산자들 자바에서 제공하는 모든 연산자를 하나의 표로 정리하면 다음과 같다. 위의 표에서 연산자별 '결합 방향'과 '우선순위'를 볼 수 있는데, 이들은 하나의 식 안에 둘 이상의 연산자가 존재하는 경우의 연산 진행 순서를 결정하는 요소들이다. 이와 관련하여 다음 수식의 연산과정은 다음과 같다. 이렇듯 곱셈을 먼저 한 이유는 다음 수학적 배경을 기초로 한다. 덧셈과 뺄셈보다 곱셈과 나눗셈을 먼저 계산해야 한다. 그리고 이러한 내용을 반영한 것이 연산자의 '우선순위'이다. 그럼 곱셈 이후의 남은 연산을 보자. 뺄셈 연산만 둘이 있는 위의 경우에는 다음 수.. [Java] 03.02 - 형 변환 들어가며 우리의 관점에서 1.0과 1은 동일한 값이다. 그러나 자바의 관점에서는 1.0과 1은 전혀 다른 값이다. 이 두값을 표현하고 저장하는 방식이 전혀 다르기 때문이다. 자료형의 변환이 의미하는 것은? int형 정수의 덧셈 방법과 double형 실수의 덧셈 방법은 다르다. 데이터의 표현 방법에 따라서 덧셈 방법도 달라지기 때문이다. 때문에 다음과 같은 문장이 있다면, 컴파일러는 두 변수 num1과 num2의 자료형이 동일할 것을 기대한다. 자료형이 다른 두 값을 대상으로는 덧셈을 진행할 수 없다. System.out.println(num1 + num2); 그런데 예상과 달리 다음과 같이 선언되어 있다면, 이대로는 덧셈을 할 수 없어서 두 변수의 자료형을 하나로 일치시키는 과정을 거쳐야 한다. int .. [Java] 03.01 - 상수 들어가며 상수는 '값이 변하지 않는 수'를 의미한다. 하지만 자바에서는 한번 그 값이 정해지면 이후로는 변경이 불가능한 변수도 상수라고 한다. 자바의 일반적인 상수 변수를 선언할 때, 그 앞에 'final'이라는 선언을 추가하면 그 변수는 '상수'가 된다. 그리고 다음 두 가지 특징을 지니게 된다. 값을 딱 한 번만 할당할 수 있다. 한 번 할당된 값은 변경이 불가능하다. 그럼 다음 예제를 통해서 상수가 갖는 위의 2가지 특징을 확인하겠다. public class temp { public static void main(String[] args){ final int MAX_SIZE = 100; final char CONST_CHAR = '상'; final int CONST_ASSIGNED; CONST_AS.. [4. 인지요소 명세 - 4] 인지요소 명세의 형식 인지요소 명세의 형식 인지요소의 명세는 시스템 기획서 작성 중 가장 양이 많은 부분이며, 내용이 무미건조하기 때문에 가독성이 높아지도록 작성되어야 한다. 작문 실력이 가독성에 큰 영향을 미치지만 작문 능력은 이 책이 다룰 범주가 아니니, 다루지 않겠다. 대신에 인지요소를 명세할 때 깔끔하게 문서와 인지요소를 정리할 수 있는 형식을 소개하고자 한다. 각 개발 조직에 따라 미리 정해진 명세 형식이 있으면 이 내용은 참고 자료로 활용하면 된다. 구조와 내용이 단순한 인지요소들만 있다면 형식에 대한 특별한 고려 없이 명세해도 크게 상관 없다. 하지만 시스템이 중요할수록 그 구성 인지요소들이 복잡한데, 이에 대해 글만 사용해 명세하는 것은 쉽지 않다. 그리고 글로 명세된 복잡한 구조는 이해하기도 힘들다. 기획서는.. [4. 인지요소 명세 - 3] 인지요소 상세 명세 - 데이터 인지요소의 데이터 인지요소의 데이터는 인지요소를 조정하기 위한 인터페이스로 기획된다. 예를 들어, '지능'이라는 캐릭터 스탯은 캐릭터가 생성되었을 때 어떤 값을 가지게 되며, 게임이 동작하면서 값이 동적으로 바뀌게 된다. UI의 체력(HP)바의 눈금 단위도 특정 값이 있어야 한다. 100 단위로 눈금을 그을 수도 있고, 최대 수치의 % 단위로 눈금을 그을 수도 있다. 이런 것들이 올바르게 게임에 동작하기 위해서는 값을 설정하고 확인하는 것이 필요한데, 주로 데이터를 통해 이루어진다. 이렇게 인지요소에 대해 조정하거나, 확인하고 싶은 내용을 정리하는 것이 '데이터 설명'이며, 개발자가 데이터 적용을 구현할 때 추가로 요청하고 싶거나 알려주고 싶은 내용도 포함한다. 한편, 개발이 끝난 뒤 조정할 필요가 없는.. [4. 인지요소 명세 - 2] 인지요소 상세 명세 - 개념과 동작원리 인지요소 상세 명세 인지요소 열거가 끝나면 각각의 인지요소들을 상세 명세한다. 인지요소 명세는 개념과 동작원리, 데이터에 대한 설명으로 구성된다. 이 중 개념과 동작원리는 인지요소 명세에 필수적으로 표함되어야 하는 내용이다. 반면 데이터는 시스템이나 인지요소의 성격에 따라 명세가 필요하지 않을 수도 있다. 콘텐츠 제작을 위한 시스템과 같은 경우는 오히려 데이터 설명이 매우 중요하다는 점을 알아두자. 인지요소 하나를 상세 명세하는 것은 작업량이 많지 않지만, 시스템을 구성하는 인지요소의 양이 상당하기 때문에, 인지요소 명세의 전체 작업량은 굉장히 많다. 개발자가 상세 명세를 보고 구현을 하기 때문에, 꼼꼼하게 작성해야 하고, 또한 개발자가 봤을 때 필요한 내용을 담는 것도 필요하다. 양이 많은데, 내용 마.. 이전 1 ··· 21 22 23 24 25 26 27 ··· 33 다음