암시적 잠금 사용


자바에서 암시적 잠금은 synchronized를 사용하면된다. 하지만 사용하는 방식에따라 다른 방법으로 공유자원을 접근 읽기쓰기를 수행할 수 있습니다. synchronized 키워드는 다양한 암시적 잠금을 제공하게됩니다.


*1.) 객체 인스턴스를 둘러싸는 암시적 잠금으로 작동하는 메서드 레벨

 synchronized void writeVal(){

     sharedVal++;

}

객체의 인스턴스 메서드가 여러스레드에서 호출될때, 동기화문제를 해결합니다.


*2.)객체 인스턴스를 둘러싸는 암시적 잠금으로 작동하는 블록 레벨

  void writeVal(){

    synchronized(this){

       sharedVal++;

   }

}

1.)과 거의 비슷하나 강점이 있습니다.

위의 코드의 장점은, 임계영역에 포함된 코드의 정확한 블록을 제어할 수 있고, 실제로 보호될 상태와 관련된 코드만 줄여서 다룰 수 있게 됩니다. 일표이상으로 원자영역(atomic) 을 크게 만들지 않습니다. 


*3.)다른객체의 암시적 잠금을 가지는 블록 레벨

private final Object myLockKey= new Object(); 

 void writeVal(){

  synchronized(myLockKey){

     sharedVal++;

  }

}

클래스내에서 여러개의 잠금을 사용할 수 있게 됩니다. 


*4.)클래스 인스턴스를 둘러싸는 암시적 잠금으로 작동하는 메서드 레벨

 synchronized static void writeVal(){

     sharedVal++;

}


*5.)클래스 인스턴스를 둘러싸는 암시적 잠금으로 작동하는 블록레벨

 static void writeVal(){

   synchronized(MyClass.class){  //static 변수.

      sharedVal++;

   }

}





예제:소비자와 생산자


스레드끼리 공동으로 작업할때, 순서를 의도적으로 조율해야할 경우가 있습니다. 보통 이러한 패턴을 소비자 생성자 패턴이라 부릅니다.



다음클래스는, 생산부분과, 소비부분이 있습니다. 리스트에 변수를 추가하고 삭제를하는 시나리오를 생각해보겠습니다.

생산메서드는, 리스트의 변수를 늘리고, 소비리스트는 변수를 줄일겁니다. 생산메서드는 용량이 꽉차면 소비가 이뤄질때까지 소유권을 포기하고(열쇠를 포기) 대기해야되며, 소비메서드는 용량이 0이면 소비를멈추고 자바 모니터 소유권을 포기하고(열쇠를 포기하고) 대기해야할 것입니다.


public class ConAndPro{

  private LinkedList<String> mList = new LinkedList<Steing>();

  private Object lock = new Object();


 //생산

  public void produce(){

     while(true){

    synchronized(lock){

      while(mList.size() == 10){

          lock.wait();  //자바모니터에서 소유권을 포기하고 넘겨줍니다.(notify가올때까지 여기서 대기됨)

       }

      list.add("supply");

      lock .notify();

    }


     }

  


 //소비

  public void consume(){

    while(true){

    synchronized(lock){

      while(mList.size() == 0){

          lock.wait();  //자바모니터에서 소유권을 포기하고 넘겨줍니다.(notify가올때까지 여기서 대기됨)

       }

      list.removeFirst();

      lock .notify();

    }


     }

  


.


lock 에 대해 동기화가 되었습니다. lock.wait은, lock에 의해 동기화된부분에서 열쇠,자바모니터를 포기한다는 의미입니다. 소유권을 내어놓게됩니다.

lock.notify는 lock임계영역에서 열쇠를 포기해서 대기중인 스레드에게 다시 소유권을 주어 lock 임계영역에서 스레드 활동을 할수있도록 해줍니다.


물론 sychonized(lock) 이부분은 어떤 스레드가 동기화변수 "lock"을가지고있는지 확인하고 없으면 자신이 들어가고, 있으면 밖에서 대기를 하다가 synchronized안에 들어가게 됩니다. 


들어가게 되어도, 생산 소비할때 조건이 안된다면 wait을 만나서 잠시 lock을 내어놓고, 다른 lock의 임계영역에 들어간 스레드가 notify 해줄때까지 기다리게 됩니다. notify를 받으면 다시 lock임계영역에소 소유권을 가지게되어 다시 스레드가 synchronized(lock) 에서 멈췄던 부분에서부터 시작되게 됩니다.



아래 코드는 생산과 소비동작을 실행하는 두개의 Thread 예시입니다.


 final ConAndPro cp = new ConAndPro();


new Thread(new Runnable(){

 @Override

 public voice run(){

     cp.produce();

  

  }

}.start();


new Thread(new Runnable(){

 @Override

 public voice run(){

     cp.consume();

  

  }

}.start();







스레드 안전 Intro

여러 Thread에서 객체에 접근할때, 객체가 항상 정확한 상태를 유지해야 스레드안전이 보장됩니다. 동기화는 하나의 Thread에 의해 변경되는 도중에 다른 스레드의 접근이 가능한 모든 변수를 읽거나 쓰는 코드에 적용되어야 합니다. 이러한 코드 영역을 임계여역이라고 하며, 임계영역은 원자적으로 실행되어야합니다. 결론적으로 말하자면, 한번에 하나의 스레드만 접근을 허용하도록 실행되어야 합니다.



암시적 잠금과 JAVA Monitor

 synchronized 키워드는 모든 자바 객체에서 사용하는 암시적 잠금으로 동작하게 됩니다.  임계영역에서 스레드의 실행이 한스레드에 독점적임을 의미하게됩니다. 

 하나의 스레드가 임계영역을 점유하는 동안 다른 스레드의 접근은 차단되고, 잠금이 해제될때까지 실행할수 없게됩니다. 


Java monitor에는 3가지 상태가 있습니다.


차단된 스레드, 실행중인 스레드, 대기스레드가 있습니다.


JAVA Monitor 3가지 모델링


1. 차단된 스레드

다른스레드에 의해 해제될 모니터를 기다리는 동안, 일시 중단된 스레드입니다.


2. 실행 중 스레드

모니터를 소유하고 현재 임계영역에서 코드를 실행중인 스레드입니다.


3. 대기 스레드

임계영역의 끝에 도달하기 전에 자발적으로 모니터의 소유권을 포기한 스레드입니다. 이 스레드는 사기 소유권을 얻을 때까지 스레드의 신호를 기다립니다.


스레드에 접근(1) -> 차단된스레드(2) -> 실행중인스레드(3) -> 대기스레드(4)   -> 다시 실행중인 스레드(5), (상황에 따라서)

위의 그림에있는 상태설명.


1. 모니터에 진입

스레드가 암시적 잠금에 의해 보호된 영역에 접근을 시도합니다. 이 스레드는 모니터에 들어가게됩니다. 만약 다른 스레드가, 이미 잠금을 차지하고 있으면 스레드의 잠금 획득이 연기되게 됩니다.


2. 잠금 획득

모니터를 소유하고 있는 다른 스레드가 없는경우, 차단된 스레드는 소유권을 획득하고 임계영역에서 실행되게 됩니다. 


3. 잠금 해제 및 대기

스레드는, 계속 실행하기 전에 충족해야할 조건을 기다려야 하는 경우도있습니다. (생산자 소비자문제처럼, 다른 스레들간의 순서를 조율하거나, 조건등에따라 스레드 실행순서를 제어하고자할때).

그럴때는 Object.wait()를 통해서 스레드 자신의 실행을 일시 중단합니다.


Object.wait()을 하게되면 Object (주로, synchronized에 쓰이는 열쇠? 동기화 구분의 변수명가 되겠습니다.) 를 synchronized하며, 실행중인 스레드영역에있던 스레드는, 열쇠를 내어놓고, 대기 스레드에 들어가서 notify가 다른 스레드에서 호출되기전까지 대기하게 됩니다. 

다른 실행중인 스레드에서 notify가 호출되면 대기스레드에있던 스레드는 다시 열쇠를획득하고 실행중인 스레드(4.과정)으로 들어가게됩니다.



4. 신호 후 잠금 획득

대기 스레드가 Object.notify(), Object.notifyAll()을 통해, 다른스레드로부터(실행중이었던 스레드) 신호를 받고, 스케줄러에 의해 선택되면, 다시 모니터의 소유권을 가지게됩니다. 하지만, 대기스레드가, 모니터를 소유할 가능성은, 잠재적으로 차단된 스레드보다는 앞설수 없다고합니다.



5. 잠금 해제 및 모니터 종료

임계영역의 끝에서 스레드는 모니터를 종료하고, 다른 스레드가 모니터를 소유할 수 있도록 자리를 떠나게 됩니다.



위의 다섯가지 순서는 아래의 코드와도 같습니다.

synchronized(this) { //(1) 

   // 코드 실행 (2)

   wait(); (3)

   // 코드 실행 (4)

}(5)




다음 포스팅에서는, 암시적 잠금사용의 예제와 소비자와 생산자 코드를 살펴보도록 하겠습니다.


다음 포스팅으로 가기 <= 클릭





4. 기타
(1) have 목적어 p.p. = get 목적어 p.p. 두 가지
Mary had her roof repaired yesterday. = Mary arranged for someone else to repair it.
had(시키다)
Mary had all her money stolen yesterday. ( = All her money was stolen.)
당하다
S have O p.p  //목적어의 관계에 따라 시키다, 당하다 뜻 둘다 가능하다.
get 은 informal, spoken English 에 쓰이며, have와 뜻의 차이는 없다. 
p.p 대신 부정사를 쓰면 have와 get의 경우가 다르다.
Mary had him repair her roof yseterday. 그가 고치는 것. 
=Mary got him to repair her roof yesterday. 
(2) 형태는 능동태인데, 관용적으로 수동의 의미로 쓰이는 경우가 있다. 보통 부사를 동반하는 경우가 많다.
Thie book reads well.
This book translates well.
This camera handles easily.
Paper tears easily.
TV stars' autobiographies sell poorly.
cf.) The store sells TV stars' autobiographies.
(3) be supposed to R 의 두 가지
ex) ~로 생각되어진다.
The minister is supposed to be forced to resigh.
=It is supposed to be forced to resign.
=People suppose that the minister is forced.
Micheal Jordan is supposed to have been (더과거) the greatest basketball plater.
=It is supposed that M.J was the greatest ~
=People(=they)
ex2) 
The train was supposed to arrive at 11:30.  (Plan. Arrangement, expectation) ~plan, arrangement, expectation
그렇게 하기로 되어있었는데 하지못했다.(과거로쓰일때)
You are supposed to know how to drive.  ===>(duty, shoud)
You are not supposed to park your car here. (should not, must not)




3. Stative or Eventive //상태 또는 동작 수동
(1) 수동태에는 두가지 관점에서 볼 수 있다.
1.동작의 수동적 실행에 초점을 맞추고 있는 경우
2.동작 실행의 결과 나타난 상태에 초점을 맞추고 있는 경우.
이떄 1.을 동작수동이라 부르며 보통 ~된다로 번역한다.
2.를 상태수동이라고 부르며, ~되어있다로 번역한다.
이때 2.의 경우 그 동작의 실행 시점은 수동태의 시점보도 하나 더 과거이다.(상태수동의 경우)
The door was locked 라는 문장을 보자. 다음의 두가지 관점에서 볼 수 있다.
1.Someone locked the door.
2.The door was in the locked state = Presumably, someone had locked it. 동작은 더 과거에 이루어짐(문을 잠근행위가)
이떄 2 의 경우 locked 는 '닫혀 있는' 이라는 의미의 특수한 형용사로고도 볼 수 있다.
따라서 어떤 경우에는 상태수동이 존재하지 않는 경우도 있다. 다음의 예를 보라.
The door was opend five minutes ago.
=Someone opend the door five minutes ago.
=Now the door is open. (open a.열려 있는) //이자체가 상태를 나타내므로 상태수동을 쓸필요가 없다.
다음의 수동태 문장을 능동태로 바꾸어라.
1.The door is closed by them at seven every evening.
-> They close the door.
2.The door is closed(now)
-> Someone has closed the door.
3.The door was closed then.
-> Someone had closed the door.

(2) 상태수동으로 많이 쓰이는 표현들(보통 by를 쓰지 않는다.)
//상태 수동 ~로 되어있다 라고 번역하는 경우가 많은것.
to -접근, 근접 
be engaged to //약혼상 상태다.
be married to, be aasccustomed to, be connected to, be related to 
be dedicated to, be devoted to, be limited to
be exposed to
with 관련, 제공, 도구
be equipped with, be provided with, be filled with, be cluttered with
be covered with, be crowded with, be acquainted with, be associated with
be coordinated with, be pleased with, be annoyed with
from 원인의 from, 분리 from 
be exhausted from,be tired from
be separated from, be divorced from
주제
be concerned about, be worried about
be excited about
be frightened of, be scared of
관련된
be dressed in, be interested in, be involved in
be qualified for
be known for
be known to 

(3) 상태 수동의 특징을 정리해 보자.
1. p.p가 동작이 이루어진 결과(상태)를 표현하는 일종의 형용사이다.
2.동작의 실행시점은 하나 더 과거이다.
3.by-phrase 를 사용하지 않으며, 필요한 경우에는 다른 전치사구를 사용한다.
(4) be p.p. 로 표현된 수동태는 상태수동의느낌이 강하다. 이때 동작수동을
분명히 표현하기 위해서 be 대신 get을 써서 get+p.p 형태의 수동태를 쓰는
경우가 많다. 이런 사례는 구어체에서 흔하게 발생하며 formal writing 에서는 피하는것이 좋다.
be accustomed to 
get accustomed to
grow accustomed to
다음 문장의 차이를 비교하라.
The man gets drunk every day. 지금 술에 취해있는진 모른다. 습관반복적, 동작수동
The man got drunk. 동작수동. 지금 술에 취해있는지 몰라.
The man is drunk. 상태수동. 지금상태
He gets married. 습관반복?
He got married (to her) three years ago. 기혼인지 미혼상태인지 몰라(동작수동)
He is married. 상태수동. 기혼상태. 지금상태
(5) be getting p.p 의 형태로 '변화 중' 혹은 '미래 일정'을 표현하기도 한다.
보통은 be being p.p, is being p.p 인데, 진행수동태
잠깐복습) be ~ing + be P.P 가 합쳐진거임.
She is getting worried about her son. 걱정이 서서히, 즉 현재진행으로 걱정
gets worried : 항상걱정
is worried: 이미 걱정충만(현재상태니깐)
They are getting married next month. (미래일정)
정해진 미래, 일정 = be -ing
경우에 따라선 get 대신 become, grow 등을 쓰는 경우도 있다.
become know, grow accustomed to


'영어 > 문법' 카테고리의 다른 글

태 Voice, 영어 수동태 기타 표현 들  (0) 2017.07.28
태 Voice - Passive voice(수동태)의 필요성과 위험성  (0) 2017.07.28
태 Voice - Passive voice(수동태) 만들기  (0) 2017.07.28
명사 NOUNS  (0) 2017.07.28
Negation 부정  (0) 2017.07.28
2.Passive voice의 필요성과 위험성
1)수동태가 선호되는 경우
(1) 동작의 주체가 불분명하거나 중요하지 않는 경우 - by 이하 없음
His passport was stolen while he was in Italy. //누군가 훔쳐갔으니.
도난 당했다는 사실을 강조하기 위하여 수동태 문장이 좋다.
Our house was built in 1980.
누가 지웠다는거에는 관심이 없다.(중요하지 않다)
(2) 동작의 주체가 너무 분명하거나 일반인일때.
Gerge W. Bush was elected the 43rd president of the ISA in 2000 and was reelected in 2004
미국 시민이 뽑았지
Rice is grown in India.
(3) 동작의 주체보다 동작의 대상(object, 목적어) 을 부각시키고자 할때
This rug was made by my aunt. That rug was made by my mother
(4) 주어의 일관성을 유지하여 문장의 주어가 바뀌는것을 피하기 위해서 -대등접속사가 있는
문장에서 주로발생함.
The cat came into the house, but was soon driven out of it.
주어의 일관성
2) 수동태 문장의 위험성
- 말하거나 글을 쓰는사람이, 동작의 주체를 감추거나 주체의 책임을 회피하는 것에 
수동태 문장을 이용할 수 있다.
Something has been said that should not have been said (who said it?)
무언가가 해선안되어지는 말이 말해졌다.(누군가에 의해서, 주체를 감추었다.)
만약 글을 잘 못 썼을때 진정으로 사과하고싶다면
I'm sorry that the paper was poorly written. 외부의 힘에 의해 잘못쓰여진것처럼 보인다.(책임회피)
I'm sorry I wrote a bad paper.
라고 말하는 것이 책임 있는 자세이다.
정치에서도 많이 나옴.
그렇다고 수동태문이 나쁜건아아니다.과학적 사실과 원리 및 과정이 중요시 되는 기술관련 지문에서는 유난히 많은
수동태 문장을 보게 된다.


'영어 > 문법' 카테고리의 다른 글

태 Voice, 영어 수동태 기타 표현 들  (0) 2017.07.28
태 Voice - Stative or Eventive (상태 또는 동작 수동)  (0) 2017.07.28
태 Voice - Passive voice(수동태) 만들기  (0) 2017.07.28
명사 NOUNS  (0) 2017.07.28
Negation 부정  (0) 2017.07.28



2 태 Voice
S + V  + O -> O + be P.P. ( + by S = agent)
수동태는 목적어가 주오로 변하는 것이므로, 목적어를 가지는 동사, 즉 타동사만 수동태가 가능
자동사는 수동태가 불가능하다.
대표적인 자동사들
1.상태유지: stand, sit, lie, stay
2.상태변화: get, grow, become, turn(come, go, fall, run)
3.외관: seem, appear, look
4.존재: live, thrive, last, consist of
5.등장, 소멸: happen, occur, take place, appear, disappear, emerge
1.Passive voice 만들기
(1) 조동사 be + p.p 로 구성된 수동태는 동사의 확장결합에서 맨 뒤에 위치한다.
-조동사 + 수동태 = will be done
-완료+수동태 = have been done
-진행+수동태= be being done
-조동사+완료+수동태=should have been done
-완료+진행+수동태는 잘 사용하지 않는다….
능동태 -> 수동태 변환연습
Somebody has cleaned the rooms.
-> The rooms have been cleaned (by somebody)
Susan will have completed the work by this Friday.
-> The work will have been completed by this Friday. ( by susan)
(2)목적어가 두개인 동사는 원칙적으로 수동태가 두 개가 가능하다.
give, ask, offer, pay, show, teach, tell 등
Someone gave him(간접목적어) the award(직접목적어).
-> He was given the award.(일반적)
->The award was given him(영국식)
->The award was given to him (미국식)  //to him(부사구로 취급)
하지만, 앞에 있는 간접목적어가 주어로 되는 수동태가 일반적이다.
Fred was paid three hundred dollars in consulting fees.

(3) 목적어+목적보어 가 있는 능동태 문장은 수동태가 한 가지이다. 절대로 목적보어가 수동태의 주어가
될 수 없다. 특히 'to 없는 부정사' 는 수동태과 되면 'to 있는 부정사'로 바뀐다.
People consider him the best Korean athleate ever.
->He is considered the best Korean~
She saw her boy do(원형부정사, 동사원형) the dishes  //원형부정사가 목적격보어로 옴
-> Her boy was seen to do the dishes. // 주격보어가 되어서 to가 살아남.

목적보어가 명사일 때 조심해라. 목적 보어를 주어로 돌린뒤 수동태로 바꿀수 없다

(4) 의문문의 수동태 
의문사(wh- words)가 없는 의문문의 수동태는 조동사가 맨 앞에 있다. 
의문사가 있는 의문문은 의문사가 주어라면 의문사 + 동사 형태가되며
의문사가 주어가 아니라면 의문사+조덩사+주어 형태가 된다.
Did Tome make this model plane?
->Was this model plane made by Tom?
Who(주어) found(동사) this island(목적어)?
->By whom was this island found?
주어는 -> by+목적격전환
What(목적어) have you(주어) done for freedom these days?
-> What(주어) has been done for freedom these days?

What(주어) makes you(목적어) so angry?
->By what(=why) are you(주어) made so angry? 
->Why are you made so angry?
Where(주어아님) does(조동사) she come(본동사) from?
의문사(가주어이면)+동사
의문사(주어가아니면) + 조동사 + 주어  //의문사가 목적어이거나 부사일 때


(5) 구동사의 수동태 // 구동사 = 2단어 이상이 한동사 처럼 움직이는 것.
1.자동사+전치사 = 하나의 타동사로 취급해서 수동태로 만든다.
자동사 + 부사 + 전치사
Employees couldn't put up with the insult from the boss.
->The insult from the boss couldn't be put up with by employees.
All his classmates speak well of hom.
->He is spoken well of by all his classmates.
구동사가 아닌데도 수동태가 되는 경우도 있다.
Someone has slept in this bes -> This bed has been slept in.
구동사가 아니지만 구동사처럼 간주해서 수동태를 만든다.
구동사 // 타동사취급
자동사+전치사 : look at  me
자동사+부사+전치사+O   look up to 
타동사+목적어(명사)+전치사 : pay attention to


2. 타동사 + 목적어 + 전치사( = catch sight of, make a fool of, make a point of, make nothing of,
make head or tail of 등) - 1.형과 동일하게 취급한다.
타동사+목적어+전치사를 하나의 동사로 본다.
The detectives lost sight of the suspect in the crowd.
-> Sight was lost of the suspect ~~(X)
-> The suspect was lost sight of in the crowd(by the detectives)

.


3.타동사 +목적어(영향력이 강하고, 명사의 뜻이 강하고 도드라져있다)+ 전치사
(=put stress on(강조하다), take an interest in(관심을 갖다), take pride in(자랑스러워하다),
pay attention to, keep an eye on(눈을 떼지 않다) 
->중간에 있는 목적어를 수동태의 주어로한다. 형용사를 동반하기도 하고, 동반하지 않을 수 있다.
Americans pay little attention to genetically modified foods.
-> Little ateention is paid to GM foods. ( by Americans)
People laid an emphasis on the limitation of the scope of the study.
->An emphasis was laid on ~~
4. 타동사 + 목적어 + 전치사(make much of(대단하게 여기다), make mention of, make use of
take advantage of, take care of, take notice of, make a mess of, make a room for 등
2.형과 3.형 모두가 가능하다~!!!!!!!
The press make too much fuss of that teen-age idol.   Make fuss of (야단 법석 피우다, 난리부르스치다)
-> That teen-age idol is made too much fuss of by the press.
-> Too much fuss is made of that teen-age idol by the press.


(6) 목적어가 명사절(that절)인 경우에는 수동태가 두개이다. 하나는 that절이 유지되고, 다른하나는
that절이 해체되어 to 부정사로 바뀐다.
People believe that 13 is unlucky
-> It is believed (by people) that 13 is unlucky.  //가주어와 진주어로 바뀜..
-> 13 is belived to be unlucky
They reported that he had been rescued by the police.
->It was reported (by them) that he had been rescued by the police   (by them <-이걸 맨뒤에 쓰면안된다!!! 뜻이 이상해짐)     
->He was reported to have been rescued by the police
by+목적격 -> 일반인(people)일땐 생략가능.
특정인 일때는 써야되고, 문장뜻에 맞게 위치를 잘보고 써야한다.
우리는 항상 맨 뒤에 쓰는 습관이 있어서 안된다.


'영어 > 문법' 카테고리의 다른 글

태 Voice - Stative or Eventive (상태 또는 동작 수동)  (0) 2017.07.28
태 Voice - Passive voice(수동태)의 필요성과 위험성  (0) 2017.07.28
명사 NOUNS  (0) 2017.07.28
Negation 부정  (0) 2017.07.28
Tense 시제  (0) 2017.07.27

 

1. 명사의 특성
 1)명사는 명사구의 중심어로서, 문장의 주어나 목적어 등으로 쓰인다.
The boarders are not allowed to remove any property from the dining room.
주어, 목적어, 명사+명사로 쓰임
2) 명사구의 일반적 형식
그냥 명사 air / flowers
한정사 + 명사 the(your, this) boy / some food
(부사) + 형용사 + 명사 (very) cynical girls
한정사 + (부사) + 형용사 + 명사 those (quite) drastic changes
-> 위 모든 경우에 '후치 수식어'가 붙을 수 있다.
a mission impossible
all the residents in the building
the pretty girl that I stayed with
3)대표적인 명사형의 어미
->구체적인 사람, 주체, 사물을 표현
-ant, -ent  : ~하는사함, ~하는 사물
servant = 누군가 다른사람들에게 서비스를 제공하는
disinfectant = substance for killing germs
-er, or, -ar : ~하는 사람, ~하는 사물, ~를 만드는 사람, ~에 사는 사람
screw driver, hatter(모자만드는사람), villager(마을사람)
-ee: ~되는(당하는) 사람, ~하는 사람
trainer - trainee, donor(기증자) - donee, examiner - examinee, niminator(후보자들을 선발시키는사람) - nominee(후보에 선발된사람)
escapee, absentee, refugee, returee(은퇴한사람)
-ist : 종교, 사상, 연구, 생산의 주체
Buddhist(불교신자), natinalist, psychiatrist, violinist, cartoonist(만화가)
- ery, -ry : 집합개념( 제조, 판매) 장소
machinery, refinery(생산소, 정재소), brewery(맥주정재소)
-ing : 물건, 제품
bedding, painting
기타 -an(-ian)재주나 공부, -crat, -eer(사람), -ess(여자), -ette, -ie(-v), -ite(추종자), -let, -ling, -ster, -ware

->행위, 상태, 결과 혹은 추상적인 것을 표현
-age : 행위, 결과, 요금, 지위
drainage(배수), postage(요금,우편), hostage(지위)
-al: 행위
 refusal(거절), betrayal(배신)
-tion, -action, -sion, -ion : 행위, 상태, 결과
completion, preservation, expansion
-dom : 상태, 지위, 통치구역
freedom, martyrdom(순교자가 된상태), kingdom
-ery, -ry: 행위, 상태
slavery(노예상태), bravery(영웅적행동)
-ing : 행위, 과정
swimming, parking
-ism : 주의, 해위, 상태, 질병
realism(사실주의), criticism(비판), heroism(영웅주의), alcoholism(질병)
-ity: 성질, 사례
responsibility(책임성), stupidity(멍청성)
-ment : 행위, 수단, 결과, 상태
arrangement(정돈된 상태), embarrassment(쪽팔린상태)
-ness : 상태, 성질, 정도
unsfulness, sadness
-ship : 지위, 지속시간, 기술, 전제 집단
dictatorship(독재집단, 독재정부,국가), friendship(우정), scholarship(학자), readrship(독자군)
2.셀 수 있는(Countable) 명사. 셀 수 없는(Uncountable) 명사
1) 구체적인 대상을 가리키는 명사는 주로 셀 수 있으며, 단수형과 복수형이 있다. 단수형일 때는 반드시 앞에 한정사가 있어야 한다.
2) 형태가 없고 지각할 수 없는것, 혹은 구별되지 않는 덩어리 등은 셀수 없는명사이다.
U는 복수형이없으며, 단수로 간주된다.
GROUPluggage, baggage, clothing, equipment, hardware, jewelry, machinery
MATTERSOLIDice, bread, butter, cheese, meat, gold, iron
FLUIDwater, coffee, tea, milk, soup
GASsteam, air, oxygen, smoke
PARTICLEchalk, corn, rice, dust
ABSTRACTIONadvice, information, news, evidence
NATURAL PHENOMENONdew, fog, hail, heat, humidity, lighting, thunder, rain, sleet, snow, wind
EtcLanguage(언어, KOREAN), Field of study(한 과목을 지칭할떄), Recreation, gerund(동명사)

3. 명사의 전용
1) 고유명사 -> 보통명사
A Mr. Smith(스미스란 사람이, 난 잘모른다(수많은 사람들(스미스중에)) came to see you in your absence.
You are a bit of a Kang hodong yourself. 
2) the + C => U(추상적 의미)
The pen is mighter than the sword.
U분필                             U 무력
3)U->C
다양한 종류, 성질을 표현할 때(복수)
I don't like sparking wines all that much
wine 은 원래 U, 하지만 거품있는 와인을 표현,성질을 표현함으로써 -s가 붙음.
They might be in financial difficulties(각종 어려움!).
구체적인 특정 대상을 가리킬 때
 I threw a stone at the neighborhood dog.
 I'd like two coffees, please     //원래는 a cup of coffee, two cups of coffee
 This is  a wonderful wanlnut cake.
 She was once a beauty. =>미인
 He did me many kindness (친절한 행동)
 There is a hair(머리카락) in my corn soup.
4) 뜻에 따라 C도 되었다 U도 되었다 하는 명사
School begins at eight-forty.  //수업이란 뜻
There are four schools in this district.  //학교
Have you got enough light(빛)  to read by?
The lights(전등) went down and the performance began.
~~~~ the air.(공기 U)
~~~ an air(분위기, 기분)
Paper (종이)
Papers(신문, C)
Papers(서류,C)
glass(유리)
glasse(잔, C)
Glasses(안경, 항상복수)

.

4. 독특한 복수형
1) 라틴어나 그리스어에서 유래한 단어들은 특별한 어미를 가지고 있고, 복수형이 될 떄 그 어미가 특수한 형태로 바뀐다.
-us -> -i
-a => -ae
-um -> -a
-is->-es
-ex->-ices, -exes
-on->-a


-eau->eaux


 

부정 Negation
1.부정의의 종류
종류가 엄청 다양하다
대표적인거 몇 개만 보자
(1)  never (adv)
 1. 한적없다, 어떤경우도 아니다, 과거나 미래에 일어나지 않는다.
I've never seen such a pathetic scene.
2. 전혀아니다, 어떤식으로 아니다.
What is morally wrong can never be politically right.
(2) no
1. (한정사) no any; not one
 There's no chance of us getting there by eight.
2. (부사) 전혀아니다, 전혀 동의할 수 없다(주로 비교급이랑 쓰일떄 사용)
He was no heavier than a child.
(3) none
1.대명사 No one, not one; not any , 누구도 아닌
None of the packages was for me.
None of my classmates passed the test.
any 는 부정문의 주어로 못쓰인다.
2.부사   전혀 아니다, 방법이 없다.
He seemd none too pleased with his dinner.
The jeans looked none the better for having been washed.
(4) little
1.한정사, 대명사, 부사  거의~하지 않다, 거의 아니다
We gave it little thought. (한정사)
(대명사) Little is known about how babies perceive and process words and sounds.
He works long hours and sleeps little. (부사)
2. 전혀 ~ 않다 (부사일떄 종종)
They little expected such a generous gift.
Little did I know that she was married. ( know, think, realize)

2. 어구부정. 부분부정. 이중부정
1) 술어 동사에 not, never 등을 붙여 문장 전체의 내용을 부정하는 것과, 특정한 단어, 구, 절의 
내용만을 부정하는 '어구부정'을 구별해야 한다.
어구부정의 예
They visit me not infrequently. 
Not surprisingly, he was late again
She didn’t go to the party because she wanted to see him.
I sa Mary not long ago.
2) 해당되는 대상의 일부에게만 부정이 적용되는 것을 부분부정이라 부른다.
완전히, 전적으로: absolutely, completely, quite
항상: always, generally, exactly
모두: all, both, entire
Not all the pupils belived his story. = 부분 부정 50%
No pupils belived his story. 전체부정
I haven't read both of the reports. = 1권은 읽었다., 2개를 다 보지는 않았다.
Children don't always obey their parents. 아이들은 항상 그들의 부모 복종을 하지는 않는다. (부분부정, 할때도 있고 안할때도 있고)
Children never obey their parents. 전체부정
3) 하나의 문장안에 부정어가 두개 있을떄, 이중부정이라고 한다. 이중부정은 결국 강한 긍정의 의미로 귀결된다.
There was no one who did not pass the qualifying test.
Nobody has nothing to eat.  먹으려하지 않는 사람은 없다
하지만 이중부정문의 느낌이 꼭 증정문과 같다고 할 수 는 없다.

완전 동의한다 완전 그렇다는 의미는 아님.

.


3. 부정의 관용표현
-부정어구가 없는 부정표현
 수사의문문
 How much longer must our people endure this injustice?
 How many times do I have to tell you to stop playing starcraft?
Who knows what future will bring?
free from = without
Because it is a charitable organization, It is free from tax worldwide.
beyond, above = cannot
Her beauty is beyond description. //그만큼 아름답다. 형언할수 없을만큼
fail to = cannot; do not
I fail to see why you can't work on Saturday. //see = understand
remain to : have not yet p.p.
A great many things remain to be done.//훌륭한 많은 것들이 아직 많이 남아있다.
be(have) yet to = have not p.p //아직 안했다
A new type of computer has yet to be produced.
A new type of computer has not been produced.


 




Tense 시제 
현재형과 과거형이 존재.
현재시제 = 습관반복적
The football game starts at 2:00
This food tastes good.
Will 와 Would 의 차이점은? => 기준시점의 차이
She Thinks he will pass the exam.현재 미래일을 생각.형태는 현재
She thought he would pass the exam.과거에 미래일을 생각.형태는 과거
1.조동사와 동사의 결함
Perfective  have
 주된 용법: 기준 시점 '이전' 에 이루어진 시상을 표현한다.
 형식 : Have + -ed Participle Form(소위 과거분사)
시상이란 절대적인 시점을 말하는 것이 아니라, 시간과 관련된 사건 혹은 동작의 발생양상을 말한다. (진행의 양상이나, 완료의 양상이냐)
영어세어는 완료와 진행의 두가지 시상이 있다. Aspect 는 Tense 를 항상 포함하는 반면, Tense 는 Aspect 없이도 발생하 수 있다.
Aspect가 없는 Tense 를 단순 시제라고 부른다.
2.Types of Verbs (동사의 유형, 형태)
1)be -ing
2)be -ing 가 불가능한 동사들도 있음.(상태동사)
3)뜻에따라 be -ing 형이 가능 or 불가능한 극소수의 동사들도 존재함.
be -ing 의 특수용법
1)be being + 형용사 : uncharacteristic, untypical
I can't understand why he's being so selfish. He isn't usally like that.
->그는 평소와다르게 지금 이기적임.
2)be always -ing: Annoyance. Anger. Complaint   왕짜증, 불평을 표현하는 것
Suze is always leaving her dirty socks on the floor for me to pick up!. -> 개짱나는 X!

I've lost my key again. I'm always losing things


  
 
3. Progressive vs. Simple
현재진행은 Now 이전에 시작하였다. 
과거진행은 과거 이전에 시작하였다.(과거 보다 먼저 시작)
미래진행은 미래 이전에 시작하였다.
과거진행-과거의 관계 심층분석
단순과거는 과거진행 중간에 발생한다.
과거진행은 과거와 충돌한다. 
-> 과거와 과거진행은 만난다. 과거진행이 시작되고 과거와 만나게됨.
과거진행->과거 시점과 만남
I slipped on the ice while I was crossing the street in front of the dormitory. 
//과거진행이 먼저 시작되고, 그다음 과거와 만나게 된다. -> 길을 건너는중에 자빠짐
만약 was slipping , crossed 가 오면 정말 웃긴게 되어버린다. 자빠지면서 건너는거임 ㅡㅡㅋㅋ
They were arguing about something serious when I walked into the room.
그녀가 뭐라 말했는지 들었니?
->No, I was not listening. I was thinking about something else.
동시에 일어난 일이라서 같은 시점으로 얘기함. (동작동사로 -ing 사용)
함께 쓰인 단순과거는 동시동작이 아니라 순차적 동작을 말한다.
ex) When he arrived, we were having dinner. -> 우리는 이미 저녁을 시작했었음.
When he arrived, we had dinner. 그가 도착하고 나서, 밥을 먹음(순차적)
I was walking downtown when I saw ben. So I saw ben. So I stopped and we talked for a while.
워킹을 과거이전에 하다가 벤을 과거에 만남. 그리고 멈춘다음에 얘기를 순차적으로 나눔
4.Future Time
영어에서는 미래시제가 없으므로, 미래시간을 표현할 때는 modal 인 will, semi-modal 인 be going to 와의 결합 등 다양한 동사 결합 형태를 사용한다.
Chanie will walk his dog tomorrow.
Chanie is going to walk his dog tomorrow.
1) will 과 be going to 의 큰 차이가 없는 경우 : Prediction (예측, ~할 것이다, ~ 할 것 같다.)
Do u think Laura will=(is going to) get the job?
I think the wheather will=(is going to) be nice later.
단 구별 될 떄도 있다. 
1)객관적 정황이 있을때는 be going to 만을 써야 한다.
Look at those black clouds! It is going to rain.
가스통이 비었어. 리필장소는 멀어!. She is going to run out of gas.
2)다음의 표현 뒤에는 will을 쓴다.
Probably I'll be a little late this morning.
I'm sure you'll like her.
I bet Carol will get the job.
I think we'll ~~. Do you think we'll pass the ~?
I suppose/ I guess / I doubt / I wonder
2) will / Be going to / Be -ing 의 구별
willbe going tobe -ing
의지사전계획 = 의도준비(fix성, 확정된일정)
말하는 시점에서 결정이미 할려고 결정, 하기로 이미결정이미 할려고 결정, 하기로 이미결정
1)will
I won’t tell anyone what happened. I promise.
The phone's ringing. I'll get it. (전화벨이 올릴때)
2)be going to
-창문이 더러워. - 알고있어. I'm going to wash them later.
너 점심에 계획 있니?  Yes, I'm going to watch TV.
cf) No, I don't. Let me think, I'll watch TV(지금 결정한것임)
3)be -ing
I'm leaving tomorrow. I have my plane ticket (FIX성)
Ted is getting married next month. (FIX성)
3) 단순 현재형이 미래의 의미를 가지는 경우
- Timetables, Schedules
- open, close, begin, end, start, finish, arrive, leave, come, return (시작 종결 동사)
be -ing단순현재형
특정개인의 약속모든 집단, 장소에 적용되는 스케쥴
What time are you leaving tomorrow? - What time does the plane leave tomorrow?
I'm going to the movies tonight. - The movie starts at 9:00 tonight.
4) 독특한 Future Time
1 be going to 의 과거형 : was(were) going to : Unfulfiiled Intention = 완수하거나 이루지 못한 과거일.  = were supposed to
We were going to take the train, but we decided to go by car.
탐이 시험을 치렀니?
No, he was going to take it, but then he changed his mind.
2) will be -ing  // 미래진행형이지만 뜻은 단순미래와 유사하다.
I'll be seeing Mary at the party this evening.
3) Shall : 제안 or 제의
Shall I open the door?

5) 미래 시점을 가리키지만, will, be going to 를 쓰면 안되는 경우
- 시간과 조건의 부사절(=명사절(주어,목적어, 보어역할)도 아니고 형용사절(앞명사꾸미거나)도 아니고)
시간: when, after, till, while, as soon as, whenever, by the time
조건: if, if only, on condition, providing, suppose, unless, so long as
When I graduate, I'm going to return home.
When students graduate, they receive diplomas.
다음 문장의 정오를 판정해봐라.
The time will surely come when your words will come true.  When 이 the time 일꾸미는 형용사적 용법이라서 맞다. 시간의 부사절이 아님.
I don't know when he will come again. 명사절이다(목적어역할)
It is difficult to find out if she will attend the meeting. ~인지 아닌지 명사절이므로 미래시제 올 수 있다.
5. Perfective Aspect
기준 시점 이전에 이루어진 사건 혹은 동작의 시상을 말한다. 완료 시상은 기준 시점 이전에 이루어진 사건 혹은 동작이
기준시점에 영향을 미치거나 관계를 맺고 있다는 것을 의미한다.
현재완료 - 현재시점에서 이미 끝나있는일(서양 실용주의에 따르면 가장 많이 쓰이는 용법에 따라서 이름을 딴다.)
그래서 현재완료의 용법이 여러가지 가 있는것이고 보통 대게 많이 쓰는것은 현재시점에서 이미끝나있는 일을
가르키는 용도로 쓰이는 것일 뿐이다.
즉, 꼭 현재시제에 완료된거를 나타내는 것만으 아니다. 다양한 용법이 있다(서양의 이름붙이는 방법에 의해서 채택된것임)
Have(has) p.p 는 지금 이전에 이루어진 동작, 지금에 영향을미침
Had p.p. 는 특정 과거 이전에 이루어진 동작. 과거 시점에 영향을 미침
Will have p.p. 는 특정 미래 이전에 이루어진 동작. 미래 시점에 영향을 미친다.
문장의 차이 음미
He has lost his watch. (지금도 없어~!)
He lost his watch in the station yesterday. - 어제 잃어 버렸어
He will have finished the project by Friday. - 금요일 까지는 끝내놀을거야
He will finsh the project on Friday. - 금요일에 끝내려고 해.
1용법 - 지금 이전에 일어난 일 (특정되지 않은, 막연한, 불확실한)
현재완료는 정확한 시점에는 관심이 없고 현재의 결과가 중요하다는 것이다.
I have been to Mexico in the last year. (지난 365일 사이에 )   지난해 ---> Now (365 일 사이에)
즉 현재완료와 쓰일 수 없는 부사
yesterday, one year ago, then, last week, at that moment
현재완료와 함께 쓰일 수 있는 부사
ever, never, once, many times, several times, before, so far, just, already, yet 등
1)  경험 - 현재 까지 체험한 것
Have you ever eaten lobster? ->과거의 그런경험이 현재까지 남아있는가?
2)  변화 - 현재에 그 변화의 결과가 나타남
You have grown since the last time I saw you.
// 언제자란거에는 관심이 없고, 막연한 과거에서부터(현재 이전에 동작이 일어나서) 현재 결과에 관심이 있는것
3) 성과 - 인류나 개인이 현재까지 이룬 업적
Man has walked on the moon.
Scientists have split the atom.  과거에 남긴 업적이 지금까지도 남아있다.
4) 이루지 못한 일 - 현재도 기다리고 있음.
James has not finished his homework yet.
5) 반복 - 현재까지 불연속적 반복
I have had four quizzes and five tests so far this semester.
2용법  - 지금까지 계속되고 있는 일
 과거부터 지금까지 지속되고 있는 일을 표현할 때 쓰인다. 여기서 중요한것은 그 기간이 지금까지 지속되어야 한다는 것이다.
과거의 기간이라고 해도 이미 끄난 기간, 현재에 영향을 미치지 못하는 기간은 단순 과거로 표현한다.
Mr. A has been in power for four years.
과거부터 지금까지의 지속을 표현하는 방법은 두가지가 있다. 
be -ing 를 쓸 수 없는 동사들에 대해서는 have p.p 를 사용한다.
be -ing 를 쓸 수 있는 동사들은 have been -ing 를 사요한다.
I have known about it for a long time.
Mary has loved chocolate since she was a little girl.
We have been waiting for her for an hour.

.

6. Perfective Progressive Aspect
1) Have been - ing 용법을 심층적으로 분석해보면 두 가지로 나눌 수 있다.
1. 기간에 대한 구체적 언급이 없을 때 = 최근까지 지속된 일
2. 기간에 대한 구체적 언급이 있을 때 = 지금까지 지속되고 있는 일
(1) 최근까지 지속된 동작으로서 말하는 시점에서는 종결되어 있으나, 지금의 상태와 밀접한 연관이 있다. (최근까지의 결과가 현재에 영향을 주기 때문에 현재완료와 관계있다.)
My back hurts, so I have been sleeping on the floor lately. (시점이 구체적 언급 안되어있다, 지금까지 자고있다는게 아니라 최근까지 그렇게 자고있어 왔다 의미)
You're out of breath. Have you been running?
(2) 말하는 지금까지 지속되고 있는 동작. 보통 for, since, how long, all day 등을 동반한다.
The telephone has been ringing for almost a minute.
How long has it been raining?
2) 이 (2) 의 경우 have been - ing 는 be -ing 와 구별하기 어렵다. 어떻게 다른가?
Don't bother me now. I'm working (지금시점에 관심)
I've been working hard, so now I'm going to take a break. 지금까지 일했다!!!
He's sleeping now.(지금 뭐하고있는거에 관심). He's been sleeping more than an hour. (기간정보에 관심, 얼마나 지금까지 해왔는가)
7. Past Perfective (Progressive) Aspect
(1) had p.p , had been -ing  가 have p.p., have been - ing 와 다른 점은 단 하나 뿐이다. 오직 기준시점만이 다르다.
과거완료(진행)은 과거를 기준으로 해서 그 이전에 일어난 일, 그때까지 일어난 일을 말한다.
now라는 기준시점을 Past로 이동시키면 그 외의 모든 것은 동일하다.
영어에서는 now 보다 앞선 시제는 두 개, 즉 단순과거와 현재완료(진행)이지만, Past 보다 앞선 시제는 과거완료(진행) 하나뿐인 점이 매우 편하다.
I had been in bed for two hours when my wife came home.
When I got home, I found that someone had broken into my apartment and had stolen my fur coat.
(2) 과거 완료는 절대적으로먼 과거가 아니라, 어떤 과거 사건에 대해 상대적으로 더 과거인 시상이다.
We met each other 30 years ago.
I met her 5 years ago. I had met her husband 5 years before than. (5년 + 5년)
(3) 과거를 기준으로 해서 그 이전에 일어난 일은 과거완료, 그 이후에 일어난 일은 단순과거로 표현한다.(단순과거의 연속은 순차적 동작)
Was Bill at the reception when you got there?
No, he had already gone home.
Yes, but he went home soon afterward.
(4) had been - ing 의 용법도 have been -ing 와 기준시점을 제외하면 동일하다.
We'd been playing soccer for an hour when it stated to snow.
(5)after, before 등 전후관계가 분명한 접속사가 있다면 과거완료= 단순과거를 혼용한다. As sonn as 는 과거완료를 쓰지 않고 (관용적으로)과거만을 쓴다.
The bus had started(=started) before I reached the bus stop.
After the guests had left(=left), I went to bed.
As soon as Robert saw me, he ran away.
(6)역사적 사실은 had p.p 를 쓰지 않는다
He said that Columbus disvored America.
had p.p 의 특수용법 1 : ~하자마자 구문
과거,과거As soon as we arrived, it began to rain.
과거완료, 과거No sonner
Hardly
Scarcely
Barely
          Had we arrived than(when, before) it began to rain
부정어 이므로 조동사 도치 발생
부정어 도치 = 부정어인부사(구,절) + 조동사(had) +주어 + 동사
On ~ , 과거On + 명사(-ing),  S+V   ex) on our arriving, on our arrival
had p.p 의 특수용법 2: 이루지 못한 소망, 기대
(소망기대동사 - hope, expect, want, intend 등)
had p.p + to 원형 = had p.p + that S would 원형
단순과거 + to have p.p
나는 그 시합에 이기길 희망했는데 이기지 못했다
I hoped to win the game, but I couldn’t.
I had hoped to win the game
I had hoped that I would win the game.
I hoped to have won the game.
8. Future Perfective(Progressive) Aspect
(1) 기준시점이 미래로 이동할 뿐, 모든 점이 다른 완료시상과 같다.
I will graduate in June. I will see you in July. By the time I see you, I will have gaduated. (제 1용법, 이미완료됨, 미래(기준시점) 이전에 일어난 일)
I will go to bed at ten pm. Bill will get home at midnight. I will have been sleeping for two hours by the time Bill gets home.
(by the time ~할 때 쯤이면)


1. 꾸준히
매일 꾸준히 하는 것이 중요하다.
경력이 많은 프로그래머들도 몇달만 코딩을 안해도 감이 많이 떨어지는 것을 느낀다.

2. 반복
책의 내용을 잘 이해했다고 해서 하루아침에 프로그래밍을 잘할수 있는 것은 아니다.
이해한 내용을 바탕으로 수많은 반복연습을 통해서만 지식을 진정한 자신의 것으로 만들 수 있다.
처음 2~3번은 자세히 보고, 그 다음 부터는 하루에 10분간 10페이지를 훑어보는 식으로 반복하자.

3. 좋은코드를 많이 보고 따라한다.
이미 수많은 무림의 고수들이 여러문제들에 대한 코딩을 다 작성해 놓았다. 
새로운 방법으로 문제를 풀겠다고 도전하는 것은 헛수고일 확률이 크다.
"이럴때는 이렇게 하는 구나..."라는 것을 배우고 유사한 상황에서 활용하면 되는 것이다. 
여러분들이 해야할일은 이러한 경험들을 많이 쌓아 나가는 일이지, 기존과는 다른 새로운

코딩방식을 만들어 내는 것이 아니다.

좋은 코드는 보기에도 좋다. 잘정리되어 있고, 별로 특별한 것이 없다. 
프로그래밍의 각요소들을 잘이해하고, 각 요소들을 적재적소에 바르게 사용하면 되는 것이다. 
단지 소스의 라인수를 줄인다고해서 좋은 코딩이 아닌것이다. 
로직이 소스코드에 잘드러날수있게 쉽고 평범하게 작성하는 것이 좋은 코드인 것이다.


4. 기본에 충실
처음에 기본을 잘배워놓지 않으면, 그 이후에는 기회가 잘 없다. 
실무에서는 매일 개발하기 바쁘고, 새로운 기술 배우기 바쁘고...

배울것이 많다고 생각할지 모르나, 실제로 원리는 모두 같다고 해도 과언이 아니다.
하나를 깊이있게 파고들면 나머지는 다 여러분 손에 있을 것이다. 


5. 코드를 작성하기전에 순서도를 그린다.  
프로그래밍 = 로직설계 + 코딩"이다. 

새로운 기술이나
프로그램을 공부하는 것도 중요하지만, 어떤 과제가 주어졌을때 이를 잘 분석하고 설계하는
능력을 장기적으로 키워나가도록 노력해야할 것이다.


6. 주석을 가능한한 많이 적는다.

주석은 매우 유용하고도 중요한 요소이다. 
그럼에도 불구하고 많은 사람들이 이를 소홀히 한다.
자신이 작성한 코드도 몇일만 지나면 이해가 안되는 경우가 많다. 
적어도 이해하는데 시간이 걸린다. 
주석은 이러한 시간들을 절약해줄것이며, 보다 에러가 적은 코드를 작성하는데 도움을
줄 것이다. 특히 여러사람이 공동작업을 하는 경우에는 더욱 더 중요하다. 서로를 위해서...
작업과 관련된 가능한한 많은 정보를 주석에 담도록 하자. 


7. 작업일지를 작성한다.
오늘은 이렇게저렇게 해봤는데 잘안되었다... xxx.java의 코드를 이렇게 바꾸었다. 
몇시몇분에 xx로 백업받아놓았다... 라는 식으로 가능한한 자세히 적도록 한다.
 이렇게 함으로써 여러분들의 경험을 기록으로 쉽게 보관할수 있으며, 문제해결에 많은 도움이 된다.
GIT등의 형상관리툴을 이용하면 이런 작업일지를 작성하는데 편리할것이라 생각이 든다.


8. 자신의 소스를 가꾼다.
보통 코딩을 마치고 나면, 모든 것을 덮어두곤 한다. 원하는 결과를 얻었다고 거기서 그치지말고
이제 로직과 코드를 보다 효율적으로 개선할 방법이 없는지 고민해보자. 글을 써놓고 좋은 글로
만들기 위해 읽고 또 읽고 다듬듯이 코드를 다듬어보자. 여러분들의 코드를 구사하는 능력이 보다
향상되어가는 것을 느낄 수 있을 것이다.

여러분들을 위한 제안은 작은 프로그램을 만들어서 오랜기간동안 점차 발전시켜 나가는 것이다.
새로운 기능들을 하나씩 추가해가고, 기능을 발전시켜나가보자. 이과정을 통해서 여러분들의 실력
은 몰라보게 향상될 것이다.

9. 생각하라.
항상 머릿속에 한 가지 문제를 준비하라. 지하철을 기다리거나, 화장실에서 볼일 볼때 문제를 풀어
보자. 


10. 좋은 책을 선택한다.
공부를 시작할때 제일 먼저 하는 일은 아마도 책을 고르는 일일 것이다. 보통 책하나에 수십시간을
학습하게 되는데, 책을 잘못선택한 경우 수십시간과 노력을 허비하는 셈이다.
바른 책을 고르는 일은 쉬운일이 아니지만, 최소한 몇시간을 투자해서 최선의 선택을 하도록 노력
해야 수십시간을 허비하는 일이 없을 것이다.

책을 고르는 법은 여러가지가 있겠으나, 가장 중요한 것은 본인이다. 서점에서 같은 종류의 몇가지
책을 놓고 서로 비교해보면, 시간을 들인 만큼 보다 나은 선택을 할 가능성이 높아진다.

많은 컴퓨터 서적이 독자들의 선택을 어렵게 하고, 컴퓨터 업계 특성상 좋은책을 만들기 보다
빨리찍어서 파는 것이 더 중요해진 요즘. 독자들의 바른 선택이 보다 나은 책이 출판되는 것을
가능하게 한다는 것을 알았으면 한다.


'IT 최신 트렌드' 카테고리의 다른 글

당신을 위한 쿠팡 기획전  (0) 2020.03.14
웹 캐싱 서비스 with 프록시 서버  (0) 2017.07.09

+ Recent posts