2016년 7월 31일 일요일
2016년 7월 28일 목요일
7day / SE / Array
http://way2java.com |
배열 : 다수의 데이터들을 관리하기 위한 객체
- primitive data 를 요소로 저장하는 배열
>
배열 선언
int ages []; or int [] ages;
배열 생성
ages = new int[3]; 3은 배열의 길이
배열에 요소를 할당
ages[0] = 22;
배열 요소 값을 반환받아 출력
System.out.println(ages[0]);
배열의 길이를 반환
int size = ages.length;
|
- reference data 를 요소로 저장하는 배열
배열 선언
Person p[]; 또는 Person [] p;
배열 생성
p = new Person[3];
배열요소에 정보를 할당
p[0] = new Person("아이유",24);
배열요소의 정보를 반환받아 출력
System.out.println(p[0].getName());
|
2016년 7월 27일 수요일
6day / SE / Variable scope
http://www.whatprogramming.com/ |
- 자바 변수 ( Variable scope )
- instance variable or object member variable local variable
- java 의 메모리 구조
method area , stack , heap 영역으로 구성된다
method area : class 의 메타 정보 ( method 정보 , static 정보 등)
stack : 지역변수(local variable)의 데이터가 저장
heap : 객체 데이터(instance variable에 저장된 정보)가 저장
- local variable (지역변수)
: 메서드 또는 생성자 단위에서 선언된 변수를 말한다
stack(선입후출) 영역에 저장 ,
임시로 사용하기 위한 용도이다.
사용하기 위해서는 명시적 초기화가 필요하다.
ex) int i; --> int i=0; 선언 및 초기화가 필요
제어문 내에서 선언될 경우 선언된 자신의 { } 영역내에서만
사용가능.
지역변수(local variable)은 선언된 자신의 실행영역이
수행을 마치면 stack 메모리에서 해제된다
- instance variable ( or object member variable)
: 객체의 속성 정보를 저장하는 변수
heap 메모리 영역에 저장된다
선언만 할 경우 기본 초기화가 된다
(ex) 정수형일 경우 0 , reference data type일 경우 null
boolean 일 경우 false
- 객체 초기화 단계
1. 인스턴스 변수의 기본(디폴트) 초기화ex) 0 or null or false .. int age; 선언될 경우
2. 인스턴스 변수의 명시적 초기화
ex) int age=1; 3. 생성자에 의한 초기화
- use a relationship
use a relationship : 사람이 렌트카를 사용하다TestUseA --- Person --- RentCar tour()
{ RentCar 객체생성 }
- UML (Unified Modeling Language)
: 객체 지향 분석 설계시 사용하는 모델링 언어 (표기법)
ex) class diagram , usecase diagram , sequence diagram 등
- class diagram의 주요 관계
- association : 연관관계
- use a aggregation : 집합관계
- has a composition : 긴밀한 집합관계 consist of
사람이 스마트폰을 보유하다 TestHasA Person SmartPhone
- has a relationship
2016년 7월 26일 화요일
5day / SE / 조건문, 반복문
http://www.javatpoint.com |
조건문
if , else if , else
if(boolean_expression){
//실행문;
}else if(boolean_expression){
//실행문;
}else{
//실행문;
}
|
switch
ex)
int grade = 1;
switch(grade){
case 1: 실행구문;
break;
case 2: 실행구문;
default: 실행구문;
}
|
반복문
for : 일정조건동안 반복수행
초기화 ; 조건검사; 증감++
for(int i = 0; i < 5; i++){
실행구문;
}
|
while & do while
public class TestWhile {
public static void main(String[] args) {
int count = 0;
while (count < 10) {
System.out.println(count++);
}
System.out.println("*************");
// do while : 반드시 한번은 실행한다
int point = 0;
do {
System.out.println("do while:" + point);
} while (point > 0);
}
}
|
2016년 7월 25일 월요일
4day / SE / Constructor
http://www.javatpoint.com |
this keyword : 현재 자기 자신의 객체를 가르키는 자바 키워드(예약어)
this.변수명 --> 현 객체의 변수를 가르킨다
ex)
ex)
private String name;// 인스턴스 변수 또는 객체의 멤버변수
public void setName(String name){ // name 매개변수 or 지역변수
//name=name; // 둘 다 매개변수를 가르킨다
this.name = name;
//this.name은 객체의 변수이므로
//매개변수 name에 저장된 정보를 객체의 변수 영역에
//할당한다
}
|
Constructor ( 생성자 ) : 객체 생성시 사용되는 클래스의 구성요소
ex)
new Person(); ----> class Person{
Person(){}
}
|
객체 생성 : new 객체생성시 사용되는 자바키워드
Person() 생성자 호출
Person(){}
Person(){}
생성자 : 객체 생성시 호출된다 특징) 1.생성자명은 클래스명과 동일하다 2.생성자는 리턴타입이 없다
Person() 생성자 호출
클래스 내에서 생성자를 명시하지 않으면
컴파일시에 자동으로 컴파일러가
기본 생성자(default constructor)를 삽입한다
생성자를 명시하는 이유?
객체 생성 직전에 실행해야 하는 일을 정의
ex) object value setting
객체 생성시 특정 조건을 부여 할 수 있다
-> 신용카드 객체에 전달된
개인 정보에서 신용불량등급이 나올 경우
Exception 발생시켜 신용카드 객체 생성을
막을 수 있다
클래스 내에서 생성자를 명시하지 않으면
컴파일시에 자동으로 컴파일러가
기본 생성자(default constructor)를 삽입한다
생성자를 명시하는 이유?
객체 생성 직전에 실행해야 하는 일을 정의
ex) object value setting
객체 생성시 특정 조건을 부여 할 수 있다
-> 신용카드 객체에 전달된
개인 정보에서 신용불량등급이 나올 경우
Exception 발생시켜 신용카드 객체 생성을
막을 수 있다
import : 다른 팩키지의 자원( 클래스 .. ) 을 사용하기 위해 선언하는 자바 예약어
ex) import step6.vo.MemberVO;
//위 코드는 step6 팩키지 하위의
//vo 팩키지 하위의 MemberVO 클래스를
//사용하겠다는 의미
eclipse 단축키 : ctrl + shift + o
//위 코드는 step6 팩키지 하위의
//vo 팩키지 하위의 MemberVO 클래스를
//사용하겠다는 의미
eclipse 단축키 : ctrl + shift + o
java class의 주요 구성요소
package step10; // 팩키지 - 디렉토리별 분류
import step9.Car;// import - 외부 자원 사용
import step8.Animal;
public class MemberVO{// class 정의
private String name;// instance variable 선언
public MemberVO(String name){//Constructor 생성자
this.name= name;
}
//method
public String getName(){
return name;
}
}
|
자바의 데이터 타입
1) primitive data type
byte | 1 | 2 | 4 | 8 |
---|---|---|---|---|
정수형 | byte | short | int | long |
실수형 | float | double | ||
문자형 | char | |||
논리형 | boolean |
정수형의 기본형은 int, 실수형의 기본형은 double
2) reference data type
참조형 데이터 타입은 자바 기본형 데이터 타입을 제외한 모든 타입을 의미한다
참조형 데이터 타입은 일반적으로 클래스명과 동일한다
참조 변수에 저장되는 값은 heap 메모리 영역에서 생성된 객체의 주소값을 의미한다
ex) new Person(); --> 객체 생성 후 주소값 반환
생성한 객체를 이후 코드에서 사용하기 위해서는
변수에 주소값을 할당해야 한다
Person p = new Person();
Person : DataType ( 참조형 데이터 타입)
p : 변수 (참조 변수 or reference variable)
참조형 데이터 타입은 자바 기본형 데이터 타입을 제외한 모든 타입을 의미한다
참조형 데이터 타입은 일반적으로 클래스명과 동일한다
참조 변수에 저장되는 값은 heap 메모리 영역에서 생성된 객체의 주소값을 의미한다
ex) new Person(); --> 객체 생성 후 주소값 반환
생성한 객체를 이후 코드에서 사용하기 위해서는
변수에 주소값을 할당해야 한다
Person p = new Person();
Person : DataType ( 참조형 데이터 타입)
p : 변수 (참조 변수 or reference variable)
2016년 7월 22일 금요일
3day / SE / method
http://www.9lessons.info |
[접근제어자] 리턴타입 메서드명([매개변수]){
기능구현부
[return value]
}
기능구현부
[return value]
}
ex)
public void eat(){ <--리턴값이 없을때 void를 명시한다
System.out.println("먹다"); <--기능 구현부
}
|
method : passing argument (데이터를 전달)
rv.메서드(data) ---------> 메서드(매개변수){ 처리 }
return value (결과값을 호출한 측으로 반환)
rv.메서드() -------call------> 메서드(){ return value}
<-----return-----
메서드 실행 후
특정 value를 반환하기 위해서는 특정 value의 data type을
void 대신 명시해야 한다
<-----return-----
메서드 실행 후
특정 value를 반환하기 위해서는 특정 value의 data type을
void 대신 명시해야 한다
Encapsulation 정의
"public interface, private implementation"
객체(or 컴포넌트)를 인터페이스와 구현부로 분리하고
인터페이스는 공개하고 구현부는 감춘다
- 효과
1. 인터페이스와 구현부가 분리됨으로 정보 은닉 및 정보 보호가 된다
외부에서 접근시에는 반드시 인터페이스를 거쳐서 구현부와 통신해야만 한다
2. 구현부가 업데이트되어도 사용하는 측에서는 영향이 없다
-> 결합도가 낮아진다
-> 시스템의 유지보수성이 향상된다
3. 사용하는 측에서는 구현부를 몰라도 인터페이스만 파악해 사용할 수 있다
-> 생산성 향상에 기여 - 객체 단위에서의 Encapsulation 적용은
외부와 소통할 속성과 기능에는 public 접근 제어자로 명시하고
내부에서 구현 역할을 하는 속성과 기능에는 private 접근 제어자로 명시한다.
자바의 접근 제어자(access modifier)
public > protected > [default] > private
public : 어디서나 접근 가능
protected : 같은 패키지에서만 접근 가능하나, 상속관계시에는 다른 패키지에서도 접근 가능
[default] : 같은 패키지에서만 접근 가능
private : 오로지 자신의 클래스 내에서만 접근 가능 외부 접근 차단
protected : 같은 패키지에서만 접근 가능하나, 상속관계시에는 다른 패키지에서도 접근 가능
[default] : 같은 패키지에서만 접근 가능
private : 오로지 자신의 클래스 내에서만 접근 가능 외부 접근 차단
setter / getter method
private 으로 선언된 변수에 대응하는
setter 와 getter method는 외부에서 정보를 할당받는 setter 계열 메서드와
외부로 정보를 반환하는 getter 계열 메서드로 구성된다.
ex)
private 으로 선언된 변수에 대응하는
setter 와 getter method는 외부에서 정보를 할당받는 setter 계열 메서드와
외부로 정보를 반환하는 getter 계열 메서드로 구성된다.
ex)
public class Person{
//setter
public void setId(String i){
id = i;
}
//getter
public String getId(){
return id;
}
}
|
2016년 7월 21일 목요일
2day / SE / Object-Orientd
https://en.wikibooks.org |
소프트웨어 개발 과정
(개발 방법론 중 waterfall 폭포수 모델에 기반)
요구수집 ->분석 -> 설계 -> 구현 -> 테스트
요구수집 ->분석 -> 설계 -> 구현 -> 테스트
객체지향 (Object-Oriented)
- 객체(Object)
시스템의 기본 단위이며 속성과 기능으로 구성된다
시스템 요구사항 범주내의 주요한 사물이나 개념이 대상으로 선정된다
참고) 컴포넌트 : 객체와 객체들이 관계를 이루어 하나의 독립된 기능단위를 이루는 것을 말한다
ex) 뇌세포-객체 ,뇌-컴포넌트
ex) 쇼핑몰 시스템
: 고객 , 상품 , 공급자 , 장바구니 , 구매
축구 게임
: 축구공 , 선수 , 심판 , 관중 , 축구장
시스템 요구사항 범주내의 주요한 사물이나 개념이 대상으로 선정된다
참고) 컴포넌트 : 객체와 객체들이 관계를 이루어 하나의 독립된 기능단위를 이루는 것을 말한다
ex) 뇌세포-객체 ,뇌-컴포넌트
ex) 쇼핑몰 시스템
: 고객 , 상품 , 공급자 , 장바구니 , 구매
축구 게임
: 축구공 , 선수 , 심판 , 관중 , 축구장
- 클래스
객체를 생성하기 위한 틀 or 설계도
- 클래스와 객체의 관계
클래스는 객체의 설계도이다
클래스는 붕어빵틀 , 객체는 붕어빵이다
클래스는 붕어빵틀 , 객체는 붕어빵이다
- 클래스는 속성과 기능으로 구성된다
속성 : variable , attribute
기능 : method , operation
기능 : method , operation
자바 기본 문법
- class : 객체 생성을 위한 틀 (설계도)
접근제어자 class 클래스명{ }
클래스명은 대문자로 시작
합성어 첫글자는 대문자, 나머지는 소문자
클래스명은 대문자로 시작
합성어 첫글자는 대문자, 나머지는 소문자
- variable ( or attribute 변수)
: 객체의 속성(or 데이터)를 저장하기 위한 공간
데이터타입 변수명;
변수명은 소문자로 구성되고 합성어의 첫글자는 대문자
데이터타입 변수명;
변수명은 소문자로 구성되고 합성어의 첫글자는 대문자
- method : 객체의 기능을 정의
접근제어자 리턴타입 메서드명(){
기능구현부;
기능구현부;
}
미친 집중력
목 차
미친 집중력 STEP 1
공부가 즐거워지는 환경을 만들어라
공부가 즐거워지는 환경을 만들어라
01 ‘비포 앤 애프터 테스트’로 지속적인 공부효과를 확인한다.
02 15분마다 좋아하는 것을 먹으면서 공부의욕을 유지한다
03 당신은‘정리 정돈파’인가? ‘카오스파’인가?.
04 꾸준하게 공부할 수 있는‘나만의 룰’을 만든다
05 많은 양을 한 번에 기억하려면 ‘게임카드’를 활용하라
06 ‘오늘의 성과 카드’를 작성해 그날의 노력을 시각화한다
07 능률이 떨어질 때는 몸을 움직이면서 공부한다
08 라이벌은 ‘남’이 아닌 ‘어제의 나’다
09 ‘초집중 → 격한 휴식’을 반복하면 스트레스가 해소된다
10 집중 시간을 하루 5분씩만 늘린다
02 15분마다 좋아하는 것을 먹으면서 공부의욕을 유지한다
03 당신은‘정리 정돈파’인가? ‘카오스파’인가?.
04 꾸준하게 공부할 수 있는‘나만의 룰’을 만든다
05 많은 양을 한 번에 기억하려면 ‘게임카드’를 활용하라
06 ‘오늘의 성과 카드’를 작성해 그날의 노력을 시각화한다
07 능률이 떨어질 때는 몸을 움직이면서 공부한다
08 라이벌은 ‘남’이 아닌 ‘어제의 나’다
09 ‘초집중 → 격한 휴식’을 반복하면 스트레스가 해소된다
10 집중 시간을 하루 5분씩만 늘린다
미친 집중력 STEP 2
확실한 동기부여로 공부강도를 높여라
확실한 동기부여로 공부강도를 높여라
11 목적과 실행계획을 직접 써서 벽에 붙인다
12 공부가 잘 안 될수록 ‘잘했다!’고 외친다
13 ‘퀴즈 서바이벌 게임’으로 동기부여 강도를 높인다
14 하루 한 개, ‘반성 표어’ 만들어 약점을 극복한다
15 매일 아침 5분,‘뇌 깨우기 트레이닝’
16 나를 위한 ‘최고의 휴식 레시피’를 만들어라
17 ‘챌린지 데이’로 지루한 일상에 자극을 준다
18 성공했을 때는 100%, 실패했을 때도 70%만큼 칭찬한다
19 ‘일상 탈출’로 슬럼프를 극복한다
20 열정 가득한 선생님, 만화 등을 통해 열혈 정신을 흡수한다
12 공부가 잘 안 될수록 ‘잘했다!’고 외친다
13 ‘퀴즈 서바이벌 게임’으로 동기부여 강도를 높인다
14 하루 한 개, ‘반성 표어’ 만들어 약점을 극복한다
15 매일 아침 5분,‘뇌 깨우기 트레이닝’
16 나를 위한 ‘최고의 휴식 레시피’를 만들어라
17 ‘챌린지 데이’로 지루한 일상에 자극을 준다
18 성공했을 때는 100%, 실패했을 때도 70%만큼 칭찬한다
19 ‘일상 탈출’로 슬럼프를 극복한다
20 열정 가득한 선생님, 만화 등을 통해 열혈 정신을 흡수한다
미친 집중력 STEP 3
남다른 시간관리법으로 한발 앞서라
남다른 시간관리법으로 한발 앞서라
21 10분 공부할 때마다 스스로를 칭찬한다
22 뒤로 미뤄둔 것 세 가지를 지금 당장 실천한다
23 시야를 유혹하는 물건이 집중력을 헤친다
24 게임을 끊을 수 없을 때는 강제로 게임하는 날을 만든다
25 지금 공부하지 않으면 비참해질 앞날을 상상해본다
26 능률이 떨어질 때는 경쟁자가 열공하는 모습을 떠올린다
27 ‘타임어택(Time attack)’의 엄청난 효과
28 하루 5분, 한계에 도전하는 시간을 갖는다
29 하루 딱 5분 운동하는 습관을 들이자
30 ‘최고의 낮잠’을 즐기자
22 뒤로 미뤄둔 것 세 가지를 지금 당장 실천한다
23 시야를 유혹하는 물건이 집중력을 헤친다
24 게임을 끊을 수 없을 때는 강제로 게임하는 날을 만든다
25 지금 공부하지 않으면 비참해질 앞날을 상상해본다
26 능률이 떨어질 때는 경쟁자가 열공하는 모습을 떠올린다
27 ‘타임어택(Time attack)’의 엄청난 효과
28 하루 5분, 한계에 도전하는 시간을 갖는다
29 하루 딱 5분 운동하는 습관을 들이자
30 ‘최고의 낮잠’을 즐기자
미친 집중력 STEP 4
특급 공부법으로 상위 1%에 도전하라
특급 공부법으로 상위 1%에 도전하라
31 아무리 컨디션이 나빠도 하루 최저 공부시간을 지킨다
32 공부 잘하는 친구의 공부법을 20%만 따라 해본다
33 자기만의 테마를 붙인‘결전의 달’을 만들어 긴장감을 준다
34 ‘스피드 퀴즈’로 사고력을 단련한다
35 전문서적 10페이지 읽고, ‘근자감(근거 없는 자신감)’을 갖는다
36 가끔은 서서 공부한다
37 ‘딱 5초만 해보자’는 마음으로 슬럼프를 이긴다
38 좋아하는 게임을 활용해 영어를 즐긴다
39 ‘오늘 하지 말하야 할 것’을 정하면 공부 능률이 오른다
40 과목마다 테마 곡을 선정, 들으면서 공부한다
32 공부 잘하는 친구의 공부법을 20%만 따라 해본다
33 자기만의 테마를 붙인‘결전의 달’을 만들어 긴장감을 준다
34 ‘스피드 퀴즈’로 사고력을 단련한다
35 전문서적 10페이지 읽고, ‘근자감(근거 없는 자신감)’을 갖는다
36 가끔은 서서 공부한다
37 ‘딱 5초만 해보자’는 마음으로 슬럼프를 이긴다
38 좋아하는 게임을 활용해 영어를 즐긴다
39 ‘오늘 하지 말하야 할 것’을 정하면 공부 능률이 오른다
40 과목마다 테마 곡을 선정, 들으면서 공부한다
목차 출처 : 예스24
총 평
공부가 너무 안될때 읽으려고 구매한 책이다. 저자는 일본인이지만 번역은 문제가 없으며
내용은 대학 합격률이 20%도 안되는 최하위 등급 판정을 받고 충격을 먹어
독학으로 공부를 한 후에 1년만에 명문의대에 합격했다고한다.
이를 토대로 어떻게 공부했는지 저자가 실제 공부한 비법
집중력을 위한 실천 항목 40가지가 있으며 실천에 대한 설명 + 실천 방법 + 그림
으로 전체적인 구조가 재미있게 흘러간다. 책 페이지는 겨우 150페이지정도이지만
나름 두고두고 볼만한 것 같다. 괜찮은 책이다.
하지만 돈주고 사기는 아깝고 중고책이나 대여하는게 바람직할 것 같다.
이 책의 저자는 “미친 암기력” 이라는 책도 있는 데 대부분 평이 별차이가 없다는 의견이 다수이다.
마음에 드시는 분들은 굳이 세트 구매 하지마시고 목차보고 본인에게 필요한 걸 고르시는 게
좋을 듯 싶다.
2016년 7월 20일 수요일
1day / SE / start
- 탐색기 확장자 보이게 하기 , 숨김파일 표시
- 설정파일들을 모두 보기 위하여
- pc 계정명이 한글일 경우 영문으로 변경 또는 포맷해야한다
- DB 설치시 문제가 생길 수 있다
- jdk 설치 ( www.oracle.com 또는 java.sun.com )
- java 의 특징
- 객체 지향 - 2일차 수업예정 (예습)
- 플랫폼 독립적 - jvm ( 통역자 )
-> write once, run anywhere
- 초간단 어플리케이션 구현하기
HelloWorld.java 를 정의
jdk를 이용해 명령어 입력하여 컴파일한다
컴파일된 결과는 HelloWorld.class이다
개발자가 실행 명령어를 입력하면
jvm 은 HelloWorld.class를 번역해 실행한다
HelloWorld.java -> 컴파일 -> HelloWorld.class -> 실행 -> 실행결과
2016년 7월 14일 목요일
비전공자를 위한 자바 프로그래밍
비전공자를 위한 자바 프로그래밍
목 차
chapter 1 자바 프로그래밍을 시작하면서
1.1 컴퓨터의 기초
1.2 자바란
1.3 자바 프로그램의 작동 원리
1.3.1 컴파일과 실행
1.3.2 자바 가상 머신
1.4 자바 개발환경 구축하기
1.4.1 JDK 설치
1.4.2 이클립스 설치
1.4.3 Welcome to Java World!
1.1 컴퓨터의 기초
1.2 자바란
1.3 자바 프로그램의 작동 원리
1.3.1 컴파일과 실행
1.3.2 자바 가상 머신
1.4 자바 개발환경 구축하기
1.4.1 JDK 설치
1.4.2 이클립스 설치
1.4.3 Welcome to Java World!
chapter 2 기초 문법
2.1 기초 문법
2.1.1 데이터 타입
2.1.2 변수
2.2 여러 가지 연산자
2.2.1 산술 연산자
2.2.2 비교 연산자
2.2.3 논리 연산자
2.2.4 데이터 타입의 변환
2.2.5 연산자의 우선순위
2.3 여러 가지 배열
2.3.1 배열
2.3.2 다차원 배열
2.4 반복문
2.4.1 for문
2.4.2 while문
2.5 조건문
2.5.1 if문
2.5.2 switch문
2.1 기초 문법
2.1.1 데이터 타입
2.1.2 변수
2.2 여러 가지 연산자
2.2.1 산술 연산자
2.2.2 비교 연산자
2.2.3 논리 연산자
2.2.4 데이터 타입의 변환
2.2.5 연산자의 우선순위
2.3 여러 가지 배열
2.3.1 배열
2.3.2 다차원 배열
2.4 반복문
2.4.1 for문
2.4.2 while문
2.5 조건문
2.5.1 if문
2.5.2 switch문
chapter 3 클래스와 객체
3.1 클래스와 객체의 개념
3.2 클래스 선언하기
3.3 객체의 생성과 사용
3.4 메서드
3.5 생성자
3.1 클래스와 객체의 개념
3.2 클래스 선언하기
3.3 객체의 생성과 사용
3.4 메서드
3.5 생성자
chapter 4 클래스의 상속
4.1 상속의 정의
4.2 오버라이딩
4.3 여러 가지 수식자
4.3.1 final
4.3.2 static
4.4 추상 클래스
4.5 인터페이스
4.6 다형성
4.1 상속의 정의
4.2 오버라이딩
4.3 여러 가지 수식자
4.3.1 final
4.3.2 static
4.4 추상 클래스
4.5 인터페이스
4.6 다형성
chapter 5 패키지와 접근제어
5.1 패키지
5.2 접근제어
5.1 패키지
5.2 접근제어
chapter 6 입출력
6.1 입출력이란
6.2 스트림
6.3 파일 쓰고 읽기
6.3.1 파일 쓰기
6.3.2 파일 읽기
6.4 키보드로 입력하기
6.1 입출력이란
6.2 스트림
6.3 파일 쓰고 읽기
6.3.1 파일 쓰기
6.3.2 파일 읽기
6.4 키보드로 입력하기
chapter 7 객체의 직렬화
7.1 직렬화와 역직렬화
7.2 직렬화 클래스 만들기
7.3 객체를 직렬화/역직렬화하는 방법
7.1 직렬화와 역직렬화
7.2 직렬화 클래스 만들기
7.3 객체를 직렬화/역직렬화하는 방법
chapter 8 멀티스레드
8.1 멀티스레드란
8.2 멀티스레드 작성 방법
8.3 스레드 간의 통신
8.1 멀티스레드란
8.2 멀티스레드 작성 방법
8.3 스레드 간의 통신
chapter 9 네트워크
9.1 네트워크의 기초
9.1.1 IP 주소와 포트 번호
9.1.2 DNS
9.1.3 클라이언트와 서버
9.2 네트워크 통신 프로그래밍
9.2.1 인터넷을 통해 데이터를 주고받을 때 필요한 것들
9.2.2 TCP/IP 프로그래밍
9.2.3 스레드를 이용한 채팅 프로그램
9.1 네트워크의 기초
9.1.1 IP 주소와 포트 번호
9.1.2 DNS
9.1.3 클라이언트와 서버
9.2 네트워크 통신 프로그래밍
9.2.1 인터넷을 통해 데이터를 주고받을 때 필요한 것들
9.2.2 TCP/IP 프로그래밍
9.2.3 스레드를 이용한 채팅 프로그램
chapter 10 편리한 함수들
10.1 수학 관련 함수
10.2 문자 관련 함수
10.3 시간 관련 함수
10.1 수학 관련 함수
10.2 문자 관련 함수
10.3 시간 관련 함수
마무리하며
부록 연습문제와 답
부록 연습문제와 답
총 평
나는 자바책만해도 4~5권을 보유하고 있다.
왜냐하면 이해력이나 사고력이 바닥이기때문에 도저히 책이 술술 넘어가지 않았고
좀 더 쉬운 책이 없을까? 하고 쉬운 책부터 찾다보니 이 책을 선택하게 되었다.
처음에는 200페이지가 조금 넘는 얇은 책인데 가격은 16,000원이니 뭔가 내키지 않았고
결국 직접가서 책을 보고 구매하게 되었다. 참고로 저자도 비전공자 출신이기도 하다.
어떻게든 독자를 이해하기 위한 노력의 흔적들이 곳곳에 보인다. |
다양한 이미지와 상세한 코드 설명 그리고 얇은 책이지만 예제도 많이 있는 편이다. |
거기다가 출간일도 굉장히 최근이기때문에 나에게는 딱일수밖에 없었다.
단점으로는 출간한지 얼마 안된게 문제인지 오탈자가 조금 있었고
책 자체가 얇고 분량이 적은지라 자바의 모든 것을 다 넣을수는 없다.
이 책만으로 자바를 습득하고자 하는 분들은 꼭 이 다음 책이나 강의로 학습할 것을 권유한다.
대신 얇은 두께로 두고두고 버스에서 읽기 좋을 것 같다.
생활코딩에 egoing님의 강의를 볼때마다 느끼는 것은
어떻게든 이해를 시키고자 노력을 한다는 것이다.
이 책에서도 같은 느낌을 받았다.
2016년 7월 3일 일요일
생활코딩 오프라인 수업 by egoing
생활코딩 이고잉입니다.
오랜만에 강의 소식을 전하게 되었죠? 그 동안 오픈튜토리얼스라는 비영리 단체를 설립하기 위해서 즐겁고, 바쁜 시간을 보냈거든요. 오픈튜토리얼스는 생활코딩의 홈페이지로 시작해서, 지금은 생활코딩 같은 활동들이 만들어지고 있는 https://opentutorials.org를 운영하기 위해서 만들어진 비영리 단체입니다. (좀 복잡하죠? ^^;)
수업소식을 전하기에 앞서 먼저 양해를 부탁 드리고 싶은 것이 있습니다. 이번 수업은 제가 속해 있는 비영리 단체인 오픈튜토리얼스의 후원자 분들에게 고마움을 표현하기 위한 성격의 수업이면서, 후원자를 유치하기 위한 목적도 가지고 있는 수업이랍니다. 그래서 죄송스럽게도 후원회원을 참가자로 모시게 되었습니다.
생활코딩은 지금까지 무료수업이라는 원칙을 지켜왔고, 앞으로도 그런 원칙은 바뀌지 않을것입니다. 이번 수업은 생활코딩의 공식적인 수업이라기 보다는 생활코딩을 하고 있는 제가(egoing) 비영리 단체 오픈튜토리얼스의 재정적인 기반을 마련하기 위해서 만든 수업으로 생활코딩 외적인 활동으로 이해해주시면 좋겠습니다. 곧 후원여부와는 상관없이 누구나 참여할 수 있는 무료 수업을 개최할 것을 약속 드리겠습니다. 동시에, 단체를 제대로 세워서 제2, 제3의 생활코딩이 다양한 분야에 걸쳐서 나타날 수 있도록 노력하겠습니다.
오픈튜토리얼스의 후원자가 되어주실 분은 아래 링크를 통해서 후원회원으로 참여하실 수 있습니다. 후원금액의 크고 작음과는 상관없이 후원회원이 되실 수 있습니다.https://opentutorials.org/module/1588/12591
이번 수업에서는 신청자가 후원회원임을 검증하는 불편한 절차는 없습니다. 후원회원이 되셨거나, 후원회원이 되려는 의사가 있는 분은 참가 신청을 하시면 됩니다. 선착순으로 모시겠습니다. 순번에 들지 못한 분들께 미리 양해 부탁드립니다. 한편, 오픈튜토리얼스의 후원회원이 이후에 진행하는 생활코딩 수업의 참가 자격을 우선 얻는 것이 아니라는 점도 미리 말씀드려요~
=== 수업소개 ===
내용 :
웹에플리케이션을 만드는 전체과정을 함께 해봅니다.
이 수업은 아래 링크에 있는 온라인 수업의 오프라인 버전입니다.
난이도 :
프로그래밍이 처음인 분들도 따라할 수 있도록 쉽게 진행됩니다.
준비물 :
노트북이 필요합니다.
수업시간 :
1회차 - 2016년 7월 3일 오전 9시 30분부터 6시까지 (8시간)
2회차 - 2016년 7월 10일 오전 9시 30분부터 6시까지 (8시간)
(1회차와 2회차는 별도의 강의가 아니고 연결되는 하나의 강의입니다. 총 16시간 분량입니다.)
주차장은 제공되지 않습니다.
식사는 준비를 못했습니다. 대신 맛집을 알려드릴께요. 도시락도 좋아요.
이번 수업의 후원기관 :
디캠프의 디커뮤니티 프로그램에서 이번 행사의 강의공간을 제공해주셨습니다. 디캠프는 창업생태계 활성화와 청년 일자리 창출을 위해서 전국은행연합회에서 만든 비영리 재단입니다. 강의실을 제공해주신 디캠프와 디커뮤니티에게 깊이 감사드립니다.
여기까지 모임소개
내가 가장 존경하는 사람들 중 한분인 생활코딩의 이고잉님을 만날 수 있는 기회!
이 모임 역시나 정말 경쟁이 치열했다. 광클로 승리하였다!
나름 후원 회원인지라 메일로 빠르게 이 소식을 알았던 점이 유리하게 작용한 듯 싶어
너무나 뿌듯하였다 ㅠㅠ
생활코딩이 후원을 받기 시작한지도 얼마안되었다. |
나름 많이 들은 것 같은데 실력은 왜 영 아닐까?ㅠㅠ |
장소는 선릉의 디캠프! |
하지만 진도는 다 채우지 못하였고....
주로 QnA와 HTML / CSS / JS 기초 맛보기
그리고 Bitnami를 이용하여 local 서버를 이용한 웹서버 띄우기 정도 였다
아마도 40~50대분들도 꽤나 많이 오셨는 데 정말 최고의 바닥수준으로
교육을 하겠다는 이고잉님의 강한 의지와 상세한 설명위주라 그런 듯 싶다
(ps. 그래서 그런지 이고잉님의 강의는 누군가를 꼭 이해하겠다는 노력이 보인다.)
아마도 40~50대분들도 꽤나 많이 오셨는 데 정말 최고의 바닥수준으로
교육을 하겠다는 이고잉님의 강한 의지와 상세한 설명위주라 그런 듯 싶다
(ps. 그래서 그런지 이고잉님의 강의는 누군가를 꼭 이해하겠다는 노력이 보인다.)
하지만 이고잉님께서 중간 중간해주는 프로그래밍의 역사와
WWW (월드 와이드 웹)의 흐름 및 탄생과정 등 직접 경험하고 배운 점을
전달해주고 전파해준 것으로 나는 크게 만족한다.
이고잉님은 자신의 모습을 담지 말아달라고 극구 부탁하셨다. |
디캠프에서 바라본 선정릉 |
8시간 가량 이틀을 들었는 데 쓸 내용이 이렇게 없다니....
중간중간 꽤 졸아서 그런가보다... 앞으로 전국일주를 할 예정이며
이제 후원을 받은만큼 더 더욱! 왕성하게 활발할 예정이라고 하시니 기대해도 좋을 듯 싶다!