2016-05-20: 진법과 자료형

imageimage

image

image

image

image

연산자에 들어가고 있다. 진법 변환과 자료형에 대해서 너무나 좋은 강의를 들었다. 미래에 관해서는 잘 모르겠지만… 학습 품질에 관해서는 선택을 잘 한 것 같다. 재미있게 배우는 중. 물론 과제나 시험에선 좀 괴롭겠지만… 지금은 일단 즐기고 있다.

2016-05-20: 일주일째

image

어제 저녁… 사람만나고 벼락치기 공부하고. 오늘 처음으로 쪽지 시험(일본어)을 봤다. 1, 2장이 그렇게 어려운 내용은 아닌데도… 학습서에 있는 내용을 그대로 외우고 적는다는 것은 쉽지 않았다. 그래도 벼락치기로 공부해서 100점을 받아서 다행이라는 생각이 들었다. 다음 주 월요일에도 시험이 계속된다. 주말에도 공부해야 한다니 조금 슬퍼진다.

2016-05-19: 첫 시험준비

합정역에서 미팅(?)을 다녀온 후 허겁지겁 일본어 교재를 다시 쳐다보고 있다. 내일 처음으로 쪽지 시험을 치게 된다. 과연 한 방에 붙을 수 있을까? 첫 내용이라서 그렇게 어렵진 않다. 기초적인 한문을 외우는 것에 집중하면 의외로 쉽게 대비할 수 있을 것 같다.

IMG_20160519_182512

어서 공부하자! ㅋㅋ…. 옛날에 맞춤법 시험을 보는 기분이네. 초등학교 시절엔 받아쓰기도 여러 번 했었지…

2015-05-19: 변수와 상수

변수: 값을 저장할 수 있는 메모리 상의 공간(기억공간)

variable 미국식 [|veriəbl;|vӕriəbl] 영국식 [|veəriəbl]
[형용사] 변동이 심한; 가변적인 참고 invariable
variable temperatures(가변적인 기온)
출처: http://endic.naver.com/enkrEntry.nhn?sLn=kr&entryId=205d8e9c40c7439da55eebd7e85c3507&query=variable

java_20160519

사용법

자료형 변수명; // 변수 선언
int num;
String name;
num=50; // 자료 저장(초기화)
name=”Hong”; // 문자열은 “”로 묶어준다.
num=30; // num이 30이 된다. ‘변수’ 값이 바뀜.

변수 선언과 초기화를 분리하는 것이 보기에 좋다.(취향의 문제)

자료형 종류는 8가지.

  • 실무에서 사용하는 것은 4~5가지 정도임
    • boolean, int, double, String 등

변수명은 마음대로. 선언은 한 번만!

int num = 50;
int num = 30; // 오류!

변수 선언 및 출력

자바의 정석 21쪽

class VarEx1 {
	public static void main(String[] args) {
		int year = 0, age = 14;

		System.out.println("Year:" + year);
		System.out.println("Age: " + age);
		
		year = age + 2000;	// age + 2000 = year
		age = age + 1;		// age + 1
		
		System.out.println("\nYear:" + year);
		System.out.println("Age: " + age);
	}
}

실제로 수학에서는 age + 2000 = year 이지만 컴퓨터에서는 year = age + 2000 식으로 사용

  • 내부에서 ADD 명령 처리하는 과정

clip_image001

변수를 선언하여 값을 저장하고 출력.

누적 연산

age += 1; // age = age+1; 또는 age++; 과 동일

참고

= (대입 연산자)는 어떤 식보다도 늦게 수행된다.

임시 변수

입력/출력을 하지 않고 임시로 사용되는 것

보통 일반적인 경우 tmp, temp 라는 이름으로 사용됨

예: a, b의 값을 서로 교환할 때
temp = a;
b = a;
b = temp;

변수의 명명규칙

  • 숫자 시작(x)
  • 특수문자는 _와 $만 허용

권장하는 규칙

  • 상수의 이름은 모두 대문자로.

final int MAX=100; // C언어에서 const와 같이 JAVA에서는 final을 사용해 변수를 상수화 시킴. 값을 잠가 다른 값으로 변경할 수 없게 만듦. MAX 처럼 모두 대문자를 사용. 여러 단어로 이루어진 경우 _을 붙여준다.(MAX_NUMBER)

  • 변수명이 길어지더라도 그 변수가 어떤 역할을 하는지 유추할 수 있게 하면 좋다.

변수의 타입

  • 기본형(Primitive Type)

    논리

    문자

    정수

    실수

    boolean: 1

    char: 2

    byte: 1

    short: 2

    int: 4

    long: 8

    float: 4
    double: 8

  • 참조형(Reference Type)
    • 주소를 값으로 갖는다. 주소가 저장됨. 참조변수.

참고

printf

  • C언어의 printf처럼 JAVA에서도 실수의 소수점을 원하는 대로 표시 가능.(잘 사용하지는 않는다)

System.out.printf(“점수: %d \n”, score); // %d: score를 정수 형태로 찍어라, \n: 줄바꿈
System.out.printf(“a: %d, pi: %f \n”, a, pi); // 여러 개를 표시 가능.

  • printf(“%4.2f”, pi); // 아래와 같이 저장됨. 4칸을 가지고, 소수점도 칸을 차지.

    3

    .

    1

    4

만약 큰 값이 오면 정수부는 최대한 살리고 소수점이 영향을 받음.

입력 받기 – Scanner

Scanner는 java.lang (기본)에는 없고, java.util 패키지에 있음. 같은 일을 하는 패키지를 모음.

C언어에서 Header File을 Include 하듯, JAVA에서는 Import 하면 된다.

  1. package: 문서의 맨 위에 작성.
  2. import: Scanner를 사용하려면 import를 사용.
  3. class:

자바의 정석 p.41 입력 받고 출력하기

import java.util.Scanner;

class ScannerEx {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		System.out.print("input one number ");
		String input = sc.nextLine();
		int num = Integer.parseInt(input);
		
		System.out.println("value: " + input);
		System.out.printf("num = %d%n", num);
	}
}

clip_image002

실행 결과

import java.util.Scanner; // java.util.* 을 전부 임포트 하면 좀 그렇겠지??

Scanner scanner = new Scanner(System.in)

  • Scanner: 클래스
  • scanner: 변수
  • new: 명령어
    • 클래스를 로딩시키는 것

String input = sc.nextLine();
nextLine(); // 스페이스바 포함해 키보드로 입력받음(문자열)
next(); // 스페이스 바 이전의 단어만 인식(문자열). 거의 사용하지 않음.
sc.nextLine(); // 결과가 문자열로 나옴

int num = integer.parseInt(input);

  • integer 클래스 속의 parseInt() 함수
  • parseInt(); // 정수 형태의 문자열을 정수로 바꿔줌.

실습1 이름과 나이 입력받아 출력하기

import java.util.Scanner;

class TestScanner1 {
	public static void main(String[] args) {
		String name, tmp; // init name, tmp
		int age; // init age
		
		Scanner sc = new Scanner(System.in);
		
		System.out.print("input your name ");
		name = sc.nextLine(); // input name 
		
		System.out.print("input your age ");
		tmp = sc.nextLine(); // input age
		
		age = Integer.parseInt(tmp); // age (String to Integer)
		
		System.out.print("\nName: [" + name + "] and... "); // results
		System.out.printf("Age : [%d] ^_^", age);
	}
}

clip_image003

실행결과

실습2 두 개의 숫자를 입력 받아 출력

import java.util.Scanner;

class TestScanner2 {
	public static void main(String[] args) {
		int num1, num2, total; // init numbers, total variable
		String tmp; // init temp
		
		Scanner sc = new Scanner(System.in);
		
		System.out.print("input number one ");
		tmp = sc.nextLine(); // input num1
		num1 = Integer.parseInt(tmp); // num1 to Integer)
		
		System.out.print("input number two ");
		tmp = sc.nextLine(); // input num2
		num2 = Integer.parseInt(tmp); // num1 to Integer)
		
		total = num1 + num2; // 1+2
		
		System.out.println("one + two = " + total); // result
	}
}

clip_image004

실행결과

2015-05-18: 세번째 날

 

 

아침, 저녁으로 걸었다.

빨래도 돌리고+제습기 틀어 놓고… 새벽 5시 반에 일어났나?? 빨래가 2시간동안 돌아가니 금방 일어나야 했다. 그래서 그런지 어제보다 훨!~~~~씬 피곤하고(오늘도 꿀잠을 잘 것 같다) 민나노 일본어 교재를 펼칠 힘이 나지 않는다…ㅋㅋ 내일 일찍 일어나서 문제를 풀지, 아니면 지금 해 놓고 내일 아침 푹 쉴지 고민중이다.

wp-1463572585648.jpg

아침에 일어나서 (조식으로는 아주 무거운) 크!림! 파스타를 해 먹었다.(중간중간 빨래도 돌리고, 너느라 바빴다.)

wp-1463572352273(1024x768)

프로그래밍 시간에는 변수를, 일본어 시간에는 시간에 대해서 배웠다. 간간이 쓴소리도 듣지만 일본 정보나 생활 경험을 알려주는 부분에는 고개가 끄덕여지고 여전히 ‘우물 안 개구리’임이 느껴진다. 계속 자극을 받으며 화이팅할 수 있는 힘이 되면 좋겠다.(오늘은 어제보다는 덜하지만 그래도 좀 시끄럽게 떠들었던 것 같다. 내일은 정말 수업 시간에는 조용히 하고 있어야지…)

wp-1463572585646.jpg

자바 프로그래밍을 메인으로 가르쳐준 다는 말에 올해 초 정말 사고 싶었던 책이 스르르 내 손에 들어왔다. 학원에서 좋은 교재로 공부를 시키는 것 같아 기분이 좋다. 그동안 다른 사람의 책을 빌려 쓰고 있었던 일본어 교재(민나노 일본어)도 내 것을 받았다. 학원 책상과 의자가 좀 불편하지만 최대한 힘내 볼 생각이다. 아 졸려…10시까지 문제를 풀어보고 6시 반이나 7시쯤 일어날 계획. 아마 또 일어나기 되게 싫겠지만…ㅋ

덧…

살이 금방 빠지지는 않지만 근육이 생겨서 살이 잘 빠지는 체질을 만들어주긴 해요…… 한달만에 몇킬로가 빠진다 이런 건 없구요 육개월정도 하시면 원래 체질하고 다른 체질로 변하실거예요….. 장기적으로 볼때는 가장 효과적인 방법이죠….. 걷기 운동 하루 한시간씩 한다 하시고 그냥 평생 한다 이렇게 생각하시면 살 잘 안쪄요매번 다이어트 하고 다시 살빼고 이러는 거 보다는 훨씬 효과적이죠.

출처: <http://www.82cook.com/entiz/read.php?num=1866832>

무릎 연골 나갔다니 뭐니 말이 많지만, 한 방에 10km가 아니라 오전/오후 나누어 5km씩 6개월을 꾸준히 다니면 충분히 살이 빠질 것 같다. 이전 직장에서도 이 방법으로 감량 효과를 봤는데, 댓글들과 마찬가지로 먹는 양을 조절해야 하는 것은 맞는 것 같다. 살을 빼기 위해 아침을 든든히 먹자. 방금 전에도 편의점 도시락을 흡입하고 팥만쥬를 6개 후루룩 마셨(?)다. 조심해야겠다.

2016-05-18 일본어 키보드 관련(첫 시도)

일본어 문자 표시(커맨드 프롬프트)

clip_image001

일본어 로케일셋 오류

clip_image002

커맨드 프롬프트의 기본 캐릭터셋이 932(ANSI/OEM – 日本語 Shift-JIS)라서 깨져 보이는 것.

clip_image003

텍스트파일 저장 시 해당 Character Set으로 지정해준다.

일본어 입력 방법

http://blog.daum.net/missk1008/8498338 를 참고하였습니다.

clip_image004

日本語(Microsoft IME)를 추가해준다.

clip_image005

영어를 입력해 일본어로 바꾸는 식으로 입력하려면? 우측의 KANA 단추를 누르거나 Ctrl+Shift+CapsLock을 누르면 된다. 일본어 상태에서 영어를 입력하려면 Alt+` 누르면 됨.

clip_image006

윗주 달기(후리가나 붙여줌)

clip_image007

윗주 달기: 루비 텍스트라고 되어 있네? 앞으로 일본어 키보드에 대해 좀 더 조사해 볼 예정.

2016-05-18: 주석과 자료형

컴파일 관련 기초적인 실수

시행착오

clip_image001

  • 컴파일: javac filename.java
  • 실행: java filename.class
  • 오류: 오류 : 메인 클래스 JavaEx01.class를 찾을 수 없거나 로드할 수 없습니다(エラー: メイン・クラスJavaEx01.classが見つからなかったかロードできませんでした)

clip_image002

환경 변수 확인

clip_image003

덧: 혹시나 환경 변수 때문에 실행이 제대로 되지 않나 했지만… 큰 관련은 없는 것 같다.

clip_image004

자바 실습

어제에 이어…

class JavaEx01 {
	public static void main(String[] args){
		System.out.println("Java!");
		System.out.print("Programming");
		System.out.print(" print");
	}
}

System.out.print : 줄바꿈 없음

주석

comment가 아주 중요. 자바의 주석은 두 가지. // or /**/

/*
작성자: AAA
일자: 2016-05-18
용도: 테스트
소속사: 00회사
*/

class JavaEx01 { //한 줄 주석
	public static void main(String[] args){
		/* 여러 범위 주석
		System.out.println("Java!");
		System.out.print("Programming");
		System.out.print(" print"); */
		
		System.out.println("Age: " + 10);
		// System.out.println("Height: " + 170);
		// 잠깐 실행에서 제외하고 싶을 때 주석을 사용하면 편리하다.
	}
}

변수(Variable)

메모리에 확보한 공간에 붙이는 별칭(Alias)

  1. 변수의 선언

자료형 변수명;

  1. 종류

     

    자료형

    크기(Byte)

    문자

    char

    2

    숫자(정수)

    byte

    1

     

    short

    2

     

    int

    4

     

    long

    8

    숫자(실수)

    float

    4

     

    long

    8

    불린

    Boolean

    1

  2. 사용법
    int score;
    char ch;
  3. 값 대입(초기화)
    변수명 = 상수;

변수: 무엇인가를 기억시키고, 사용할 수 있다는 것.

  • 이러한 방식을 개발함: 폰 노이만

예제

int a=10
int b;
b = a; // a는 상수화되어 b에 저장됨.(등호의 오른쪽에 넣는 순간…)

Address(번지)

  • 0x100 과 같이 표시.
    • 0x로 시작하면 16진수임
    • 이진수로 쓰면 길어지니까.
  • JVM이 변수가 저장될 메모리의 번지를 관리해준다.
    • 변수: 그 번지에 별명을 붙여서 사용

변수명

  • 소문자로 시작
    • 두 단어 이상으로 이뤄졌으면 두 번째 단어를 대문자로

‘Camel 표기법에 의거’ 변수명을 지어보자.

2의 배수

1024

512

256

128

64

32

16

8

4

2

10

9

8

7

6

5

4

3

2

1

 비트/바이트

Bit

Byte

Kilo Byte

Mega Byte

Giga Byte

Tera Byte

Peta Byte

0 or 1

8Bit

1024Byte

1024KB

1024MB

1024GB

1024TB

영문자 1

  • 참고: 숫자 자료형 처리 시 Byte나 Short를 사용한다고 처리 속도가 빠르진 않지만(오히려 int가 빠르게 처리된다고 함) 구식 컴퓨터를 위해 낮은 단위들이 남아 있는 것이라고 한다.
    byte 와 short 는 거의 예비용으로 남겨져 있다.

자료의 저장

  • 1Byte = 8Bit (0~127 저장 가능)
    Byte a;
    a=127;

 

 

 

 

 

 

 

 

MSB(Most Significant Bit, 부호비트)

  • 0이면 양수, 1이면 음수

최상위 비트 (most significant bit, msb)는 최고값을 갖는 비트 위치이다. msb는 가장 큰 숫자를 왼쪽에 기록하는 자리 표기법의 규정 때문에 가끔 “left-most bit”를 뜻하기도 한다.

출처: <https://ko.wikipedia.org/wiki/%EC%B5%9C%EC%83%81%EC%9C%84_%EB%B9%84%ED%8A%B8>

문자(CHAR형)

char -> 2Byte (자바에서는 2바이트임. UNICODE를 지원하기 때문)

ASCII

  • 미국에선 처음 PC를 설계할 때 ASCII를 사용했다.(7비트; 128자)
    • 한글, 한자는 턱없이 부족
    • 영문 윈도우 -> 3달 이후 한글 윈도우

모든 코드를 2바이트로 만들자… 유니코드

유니코드

  • 표현: \u 로 시작하면 유니코드임.(2Byte 기억 공간을 차지, 16비트)
  • 0~65535 표현 가능

A: 65, a: 97일 때 차이는 32.

  • A+32=a
  • a-32=A
  • A+1=B

숫자(int)

별다른 표시가 없는 경우

100 -> int

3.14 -> double

3.14f -> float

  • float 형은 거의 쓸 일이 없음… float형은 오차도 있음…

더 큰 자료들은 별도 클래스로 제공합니다.

지수표기법.

Boolean

Boolean: 1Byte.

참/거짓을 판별하는 용도로 사용.

예제

  • boolean isPower;
  • isPower = true;

문자(String, Char)

String: 문자열 저장. 기본 자료형은 아니지만, 사용의 편의를 위해 만든 클래스라고 함.

String name;

name=”홍길동”;

String name=””; // 백지상태로 clear

전화번호

String tel = “010-0000-0000”; // 전화번호를 String으로 저장

System.out.println(tel); // 출력

참고: C언어에서는 문자열을 배열로 만들어서 번거로움

Char: 한 글자 표기

char ch;

ch = ‘A’; // 작은 따옴표로

char name=’ ‘; // char을 clear하는 경우 한 칸 띄움.(스페이스바를 저장하는 건가?)

실습1

개인 정보를 변수에 저장해 출력하기

class JavaEx02 {
	public static void main(String[] args){
		String name, tel, address, email;
		int age;
		
		name="Gil-Dong Hong";
		tel="010-9999-9999";
		address="Seoul, South Korea";
		email="aaaa@bbb.com";
		age=31;
		
		System.out.println("----- " + name + "'s Profile -----");
		System.out.println("Age: " + age);
		System.out.println("Tel: " + tel);
		System.out.println("Address: " + address);
		System.out.println("Email: " + email);
	}
}

clip_image012

실행결과.

Syntax Error(문법 오류)는 찾기 쉬움. 논리적 오류는 구조적인 문제이므로 발견하기 어렵다.

실습2

직급, 기본급 출력

class JavaEx03 {
	public static void main(String[] args){
		String name, position;
		int basePay;
		
		name="Gildong Hong";
		position="manager";
		basePay=300000000;
		
		System.out.println("----- " + name + "'s Profile -----");
		System.out.println("Position: " + position);
		System.out.println("Base Pay: " + basePay);
	}
}

clip_image013

실행결과

2016-05-18: 민나노 일본어 3,4강 예복습

민나노 일본어

3강

단어

  • ここ
  • そこ
  • あそこ
  • どこ
  • こちら
  • そちら
  • あちら
  • どちら
  • 居室(きょうしつ)
  • 食堂(しょくどう)
  • 事務所(じむしょ)
  • 会議室(かいぎしつ)
  • 受付(うけつけ)
  • ロビー
  • 部屋(へや)
  • トイレ(おてあらい)(お手洗い)
  • 階段(かいだん)
  • エレベーター
  • お国(おくに)
  • 会社(会社)
  • うち
  • 電話(でんわ)
  • 靴(くつ)
  • ネクタイ
  • ワイン
  • たばこ
  • 売り場(うりば)
  • 地下(ちか)
  • ~階(~かい)(~がい)
  • ~円(~えん)
  • いくら
  • 百(ひゃく)
  • 千(せん)
  • 万(まん)

회화

  • すみません。
  • ~で ごじゃいます。
  • ~を 見せてください。
  • じゃ
  • ~を ください。

기타

  • 新大阪(しんおおさか)
  • イタリア
  • スイス

4강

단어

  • 起きます(おきます)
  • 寝ます(ねます)
  • 働きます(はたらきます)
  • 休みます(やすみます)
  • 勉強します(べんきょうします)
  • 終わります(おわります)
  • デパート
  • 銀行(ぎんこう)
  • 郵便局(ゆうびんきょく)
  • 図書館(としょかん)
  • 美術館(びじゅつかん)
  • 今(いま)
  • ~時(~じ)
  • ~分(~ぶん)
  • 半(はん)
  • 何時(なんじ)
  • 何分(なんぶん)
  • 午前(ごぜん)
  • 午後(ごご)
  • 朝(あさ)
  • 昼(ひる)
  • 夜(よる)
  • おととい
  • きのう
  • きゅう
  • あした
  • あさつて
  • けさ
  • こんばん
  • 休み(やすみ)
  • 昼休み(ひるやすみ)
  • 毎朝(まいあさ)
  • 毎晩(まいばん)
  • 毎日(まいにち)
  • 月曜日(げつようび)
  • 火曜日(かようび)
  • 水曜日(すいようび)
  • 木曜日(もくようび)
  • 金曜日(きんようび)
  • 土曜日(どようび)
  • 日曜日(にちようび)
  • 何曜日(なにようび)
  • 番号(ばんごう)
  • 何番(なんばん)
  • ~から
  • ~まで
  • ~と~
  • そちら
  • 大変ですね。(たいへんですね。)
  • えーと

회화

  • お願いします。(おねがいします)
  • かしこまりました。
  • お問い合わせの 番号(おといあわせの ばんごう)
  • どうも ありがとう ございました。

그 외

  • ニューヨーク
  • ペキン
  • ロンドン
  • バンコク
  • ロサンゼルス
  • やまと美術館(やまとみじゅつかん)
  • 大阪デパート(おおさかデパート)
  • みどり図書館(みどりとしょかん)
  • アツプル銀行(アツプルぎんこう)