2017년 6월 29일 목요일

음 갑자기 생각난 속담 ( 한국에서 일을하기 어려운 여러가지 이유)

한번 엎지른 물은 주워담을수 없듯이 한번 내뱉은 말도 주워담을수 없다

물도 처치 곤란하지만 페인트는 정말 답도없다

눈치가 없어서 욕을 안먹으면 헤벌레 빠져갖고 일한다는 말을 소장님한테 들었는데 난 평소대로 했는데 내가 평소에 일하는 모습이 마음에 들지 않았나보다.
(이날 정오 부터 오후 9시까지 도색작업을 했는데 날이 정말뜨겁고 아스팔트위에서 작업하느라( 29-30도 날씨) 정말힘들었다 작업이 늦춰진건 누구도 의도치 않았고 작업전 작업 예상결과와 절차에 대해서는 한마디도 듣지 못했는데 눈치가 없다라니.. )

굳이 일도 힘들고 사람도 힘든곳에서 고생할 이유가 있을까 내가 원하는 일도 아닌데?

이 일을 계속 해야할지 곰곰히 생각해봐야겠다



덧.

명확하지 않은 업무지시는 차라리 안하느니만 못하다

결국은 내가 눈치가 없어서 그런것이다로 결론이 나는것..

눈치로 배울수있는것 보다는 업무지시를 명확하게 천천히 하는것이 더 바람직한 결과를 불러올것이다.


이전 직장에서도 비슷한 케이스는 있었다.

그냥 자기가 하는거 보란다. 그리고 말로 설명하는데 듣는나는 전혀 못알아 듣겠다.

그래놓고 똑같은말 빠른스피드로 2번 반복하더니 '이래도 모르겠어요?'  , '네' , ' 하지마세요 그냥가 내가 혼자할께여 어휴~'




배우는사람은 처음이다. 직접해보면 어느정도 숙달되고 다시 한번하면 전체적인 흐름을 알수있다.

이런 모습들은 기능직에서 흔하게 나타난다.
이유는 ? 단순하다 자기가 힘들게 배웠으니 너도 욕먹으며, 눈치봐가며 배워라.
(내가 왜 힘들게 가르쳐야되? 교육수당이라도 나오나? )



일을 알려줄때 실패하면
잘못 가르치는것에 원인을 찾기 보다는
상대방이 배울때 어떤자세인가?를 더 우선해서 보려는 경향이 있는것같다.(노오오오력!)


하지만 사실은 이렇다.

이걸, 이렇게 해,  왜냐하면 목적은(원하는 결과가) 이거니까, (더좋은 방법을 고안한다면 그렇게 해도 좋아 위험하지 않다면.)

이거 3가지만 천천히알려줘도 대부분의 일은 할수 있다.



사람들이 기능직을 기피하는 이유가 더럽고 힘들고 어려워서도 있지만

일을 가르치는사람의  업무 지시능력이 낮다거나, 매뉴얼의 부재가 한국의 고용악화를 만드는 이유가 아닐까?

개와 사람은 다르지만 강형욱 조련사의 모습을 보면 내가 하는말이 무슨말인지 어느정도 이해가 쉬울것이다. 이것은 육아에도,  업무지시에도 똑같이 적용된다.

강형욱 조련사는 지금까지 한국의 보통 개조련사와는 생각의 관점이 전혀다르다.
보통의 조련사 :내가 인간이고 옳은방법을 알고있으니 스트레스를 통해 너를 바꾸겠다.
강형욱 조련사 : '개의 시선에서 개가 어떤 반응을하는지 이해하고 서로가 좋은 상태를 유지하면서 내가 원하는 개의 행동을 유도한다'

어느쪽이 더 적은 스트레스와 큰변화를 가져오는가?


2018.3.2
덧 청년실업이 개인에게 문제가 있다고 (생각하는 or 했던) 기존의 낡은 생각을 갖고있는 정책수립자들은 제발 하루빨리 그위치에서 물러나줬으면 좋겠습니다. 
그들이  1년만 최저임금생활을 버텨낼수 있다면 모르지만..

2017년 6월 27일 화요일

angular 폼에서 필드를 증감할땐

angular with typescript development
좋은책이다


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@Component({
selector: 'app',
template :`
     <form [formGroup]="formModel" (ngSubmit)="onSubmit()">
        <label>Emails</label>
        <button type="button" (click)="addEmail()">Add Email</button>
        
        이번달 :<input type="date" formControlName="calendar">
        머리카락이 남아있는 양 : <input type="range" formControlName="slider_talmo">
        <ul formArrayName="emails">
            <li *ngFor="let e of formModel.get('emails').controls; let i=index">
                <input [formControlName]="i">   
            </li>
        </ul>
        <button type="submit">Submit</button>
    </form>
    <hr>
    <label>Form Value : </label>
    <pre>{{value}}</pre>
 
    `
})
 
class AppComponent{ 
formModel : FormGroup = new FormGroup({
calendar : new FormControl(),
slider_talmo : new FormControl(),
emails : new FormArray([
new FormControl() , 
])
});
cs

2017년 6월 26일 월요일

angular form 개념

template :`
<form [formGroup]="formModel" (ngSubmit)="onSubmit()">
<label>Emails</label>
<button type="button" (click)="addEmail()">Add Email</button>
<ul formArrayName="emails">
<li *ngFor="let e of formModel.get('emails').controls; let i=index;">
<input [formControlName]="i">
</li>
</ul>
<button type="submit">Submit</button>
</form>
<hr>
<label>Form Value : </label>
<pre>{{value}}</pre>


`
})


class AppComponent{
formModel : FormGroup = new FormGroup({
emails : new FormArray([
new FormControl()
])
})


get value(){
return JSON.stringify(this.formModel.value, null,4);
}


addEmail(){
const emails = this.formModel.get('emails') as FormArray;
emails.push(new FormControl());
}


onSubmit(){
console.log(this.formModel.value);
}
}



formControl 은 폼의 입력필드나 멤버? 머이런것의 최소단위같다.
formGroup은 컴포넌트클래스내에 선언 특정 변수로 선언해서
폼태그의 전체 스코프를 변수로 사용할수 있는것같고
formArray는 말그대로 가변적인 입력필드를 묶을때 사용하는듯하다.

한번 읽을때 도대체 무슨소린지 졸면서 읽었는데 다시읽으니까 어느정도
윤곽이 잡힌다 한번더읽으면 좀더 이해할수 있을것같다.

아둔함을 느끼게된다 ;;


출처 : Angular with typescript Development

오늘은 순대곰탕 먹었다.

정말 습도가 높아서 10분만 밖에서 걸어도 땀이 비오듯 쏟아지고 쏟아진 땀으로 인해 티셔츠가 등에 붙어 짜증이 나는 하루다.

뭘 먹어야할지 몰라 도서관 근처를 한바퀴 돌았다. 돌다보니 자연히 익숙한 골목에 닿았다.

토부리 병천순대국밥집에 갔다. 7천원 순대국밥, 김치, 공기밥, 깍두기

예전에는 고추/마늘도 줬었던거 같은데 소심해서 요구하지 못하고 그냥 먹었다.

깍두기는 가위로 잘라서 김치와 같이 놓고 깍두기 국물만 순대곰탕에 전부 부어서 먹었다.

정말 맛있었다. 며칠전 먹었던 순대국밥과 비교해보면

롤티어로 말하자면 브론즈와 다이아 그정도의 차이다.

브론즈는 딜교타이밍을 몰라 무조건 들이대다가 2~3번 솔킬따이면 걍 라인포기하고 다른라인에 민폐를 끼친다.

다이아정도 되면 상대 스킬 쿨타이밍을 본능적으로 계산해서 언제 딜교환을 걸어야 하는지 아는 그런 차이라고 생각된다.

헛소리같지만 그정도 차이다.

요즘처럼 푹푹찌는 습한 여름 얼큰하고 담백한 순대곰탕으로 기운을 얻는건 어떨까..?

평점  8.8/10

1.2는 고추와 마늘/ 쌈장을 안줘서

2017년 6월 25일 일요일

angular Can't bind to 'ngModel' since it isn't a known property of error

Unhandled Promise rejection: Template parse errors: Can't bind to 'ngModel' since it isn't a known property of 'textarea


내경우엔 [(ngModel)]을 텍스트 에어리어에 넣어서 양방향 바인딩을 하려는데

이런 에러가 발생했다

이유는  app.module.ts 에서

formModule을  '@angular/forms' 임포트하고

import { ReactiveFormsModule,FormsModule } from '@angular/forms';

@NgModule import

@NgModule({
imports : [BrowserModule, ReactiveFormsModule,FormsModule, RouterModule.forRoot([


여기서 FormModule을 안넣어줘서 나왔던 에러였다.

간단한 에러이다.

2017년 6월 24일 토요일

오늘 점심은 몸에 좋은 장어탕!



원래는 싱싱장어세상 ?  이곳에서 점심특선 장어탕 8천원을 먹으러 찾아갔으나

금일 휴업이다.

그래서 가까운곳을 찾다가 영XX 참XX 민물XX 라는 식당에 도착했다.


백반 5천원, 생선구이 7천원, 장어탕 8천원

상동도서관이 보이는 자리에 앉았다.

고민없이 장어탕을 주문했다. 시설은 에어컨이 켜져있어 시원했고

상위에 작은 선풍기가 더 시원하게 해줬다.

장어탕이 나왔다.  약 6~7가지 반찬

오뎅볶음, 오이김치, 김치, 나물 3종, 그리고 장어탕 +  공기밥

장어탕에 장어는 없다.  부추가 많이 들어가고 뭔가 갈아서 걸죽한 탕이다.

맛은?

담백함 3할 뜨거움 4할 시큼함 3할 !?

시큼함? 장어탕이 원래 시큼한 맛이 있었나?

첫 숟가락에는 못느꼈던 두~세 숟가락 입에서 시큼함이 느껴진다.

'상했나?' 


다시한번 먹어봤는데 약간의 시큼함이 가시질 않는다. 이미 밥을 말아버려서 어느정도 중화되긴 했으나 계속해서 먹어보니 먹을수록 입안 깊이 신맛이 느껴진다. 

아직 7월이 안되었는데도 계속되는 폭염에 음식이 상한걸까 
주인 아주머니를 불러서 실랑이를 하는것도 좀 그렇다. 원래 소심해서 이런걸로 말을 잘 안한다 
아예 안먹었으면 모르겠지만...

약간 상한 음식은 소화가 더잘된다고 생각하며 먹으면서 왜이렇게 기분이 찜찜한지...

하필 일요일이라 구청에 연락하기도 어렵고 음식상태 그대로 가져가서 증명하기도 힘들다.

이런것도 헬조선이라 그런건가 




결국 한숟가락도 안남기고 전부 먹었다.  8천원 짜리 시큼한 장어탕을 먹었다. 

차라리 레몬향이라도 났더라면....


주관적 평점  4.5 /10  

4점은 시원해서 0.5점은 오이김치는 맛있더라.



추가 15:48

식사를 12:23분에 마쳤는데 속이 좋지 않다.. 약간 메슥거린다.  소화가 잘되지는 않는다.
3시간 20분정도가 흘렀는데도 트름이 자꾸 나온다...  

2017년 6월 23일 금요일

한번쯤 머릿속에 떠오르는 그런말

해보지도 않고 안된다고 말하지마라
해보고 나서 되게하려고 노오오오오력 해야지!


맞는말이다 끝까지 하려고 했던걸 눈짐작으로 안될거니까 안하는게 낫지 보다는

실패하더라도 해보고나서 다시 점검하는 자세가 필요하다.

observable 실습

Observable weather


Current temperature is 25.33 ℃,humidity : 57%






네트워크 탭에 보면 다 작성되지 않은 도시명의 요청이 cancle되고 있다. 

promise는 이미보낸 요청이 도중에 취소될수 없지만 옵저버블을 사용하면 도중에 취소가 가능하다.

switchMap() 함수를 사용해서 이전 요청을 취소하고 새로운 HTTP요청을 보낸다.

this.searchInput.valueChanges
.debounceTime(200)
.switchMap(city => this.getWeather(city))
.subscribe(
res => {
this.temperature =
`Current temperature is ${res['list'][0]['main'].temp} ℃,`+
`humidity : ${res['list'][0]['main'].humidity }%`;
},



오늘 점심은 국수를 먹었다.

만수잔치 라는 곳인데 검색해보면 바로 위치가 나온다.

여기 잔치집 국수가 2천원이다.

콩국수 4천원 / 검은콩국수 5천원이다.

모르는분들도 계시는것같은데 여긴 선불이다. 그리고 소면을 다먹으면 더달라고 부탁하면 더주신다.

누나와 같이갔는데 누나는 2천원 (잔치국수) 난 4천원(콩국수) 이렇게 6천원으로 맛있는 점심을 먹었다.

아쉬운점은 나름 시원하게 나오지만 얼음은 들어가지 않았다. 하지만 정말 착한가격과 준수한맛에  괜찮은 점수를 줄수 있을것같다.

김치도 테이블에 미리 마련되어있다. 원하는 만큼만 덜어서 먹을수 있어 간편하다.

10점만점에 8.2점 드리고싶다.

가게 내부가 넓고 이 가게를 찾는 분들은 노령층이 많다.

부개역에서 약 걸어서 10분거리이다.

추천할만한 곳이다.

2017년 6월 21일 수요일

오늘 점심 순대국밥을 먹었다.

위치는 부개 도서관 인근인데

내가 잘아는 순대국밥 맛집은 약간더 걸어야해서 한번 여기는 어떤맛인가 하고

할매 XXXX집에 들어가 보았다. (위치는 파리바게트 인근)

우선 자리가 한산하여 TV 맞은편 7~8인석에 앉았는데

주인인듯한 분이 나오라더라 거긴 예약석이라 혼자계신분이 앉으면 안된다고...

뻘쭘해서 다른자리로 가면서도 기분이 썩 유쾌하지는 않았다.

이틀전에 부개 남부역 너머 일신동쪽에 순대국밥집을 갔을땐

내가 앉은자리가 또 공교롭게 단체석이라 앉자마자 양보한적이 있는데 이때는

 내가 앉고 5초만에 단체분들이 오시고 또 주인분이 '미안한데 다른자리로 옮겨주셨으면 좋겠다고' 말씀하셔서 흔쾌히 양보해 드렸지만 오늘은 양보하면서도 기분이 좋지 않았다.

우선 단체 예약석이라는 표시도  되어있지 않았고 내가 밥을 천천히 먹는편이라 약 30분이 지나 계산을 했는데도 그 '단체 예약손님' 같은것은 오지 않았다.


중요한 순대국밥의 맛은?

지극히 주관적이지만 정확히 나는 배가 고픈 상태여서 정말 못만들지 않으면 맛있다는 점수를 줄수있던 상황인데도 불구하고 10점만점에 5.7 점 정도 줄수 있을것 같다.

밑반찬으로 고추가 안나온다. 간장에 절인 양파와 절인 고추(너무 작아서 나는 실인줄알았다)

1cm가 안되보이는 너비로 자른 김치에 깍두기 6~7조각

고기를 뭔가에 찍어먹으려고 소스같은걸 요구했는데 뼈다귀 해장국 소스 밖에 없다고한다.

그거라도 달라고해서 찍어먹어봤는데 맛이없더라..

순대국밥집에 쌈장이 없는건가... 다른테이블 보니 쌈장이 보인다....

정말 가격은 저렴하지만 두번다시 이 음식점은 안갈거같다.

만약에라도 일행이 여기 오자고하면  200~300미터 거리에 병천순대국밥집 (kt 건물 끼고 부평방면으로 200미터만 걸으면 나오는) 그집을 추천하겠다.

기분좋은 휴일을 6천원짜리 순대국밥집이 망쳐놓은 그런기분이다.


추가 수정사항.
정확한 위치와 상호명은 X처리 하였습니다.  그리고 이 글은 지극히 주관적인 견해입니다
맛을 느끼는건 상대적인것이라는걸 강조하고싶습니다.

2017년 6월 20일 화요일

angular routing 배우기

이건 무슨에러냐 ㅠ

Error: (SystemJS) Unexpected token <
SyntaxError: Unexpected token <
   at eval (<anonymous>)
   at ZoneDelegate.invoke (http://127.0.0.1:8080/node_modules/zone.js/dist/zone.js:365:26)
   at Zone.run (http://127.0.0.1:8080/node_modules/zone.js/dist/zone.js:125:43)
   at http://127.0.0.1:8080/node_modules/zone.js/dist/zone.js:760:57
   at ZoneDelegate.invokeTask (http://127.0.0.1:8080/node_modules/zone.js/dist/zone.js:398:31)
Evaluating http://127.0.0.1:8080/node_modules/@angular/router
Error loading http://127.0.0.1:8080/app/main.ts
   at eval (<anonymous>)
   at ZoneDelegate.invoke (http://127.0.0.1:8080/node_modules/zone.js/dist/zone.js:365:26)
   at Zone.run (http://127.0.0.1:8080/node_modules/zone.js/dist/zone.js:125:43)
   at http://127.0.0.1:8080/node_modules/zone.js/dist/zone.js:760:57
   at ZoneDelegate.invokeTask (http://127.0.0.1:8080/node_modules/zone.js/dist/zone.js:398:31)
Evaluating http://127.0.0.1:8080/node_modules/@angular/router
Error loading http://127.0.0.1:8080/app/main.ts

흠 왜 이런걸 나에게 보여주는거냐

터미널을보면 경고 문구들을 볼수있다.

GET /Users/hansl/Sources/angular/dist/packages-dist/compiler/bundles/compiler.umd.min.js.map 404 2.457 ms - 100
GET /Users/hansl/Sources/angular/dist/packages-dist/compiler/bundles/compiler.umd.min.js.map 404 2.243 ms - 100
GET /Users/hansl/Sources/angular/dist/packages-dist/compiler/bundles/compiler.umd.min.js.map 404 0.604 ms - 100

404 = 없단얘기고 compiler.umd.min.js.map을 찾을수없다. 

겟으로 계속 요청해봤지만 없단얘기다

systemjs.config.js 내용을 살펴봤었지만 알고보니 다른폴더의 systemjs.config.js 내용을 수정했던것...  (부들부들)

packages 항목에 router에대한  '@angular/router'가 있는지 확인하자. 

역시 저자의 세심함이 돋보인다.



Unhandled Promise rejection: The selector "app" did not match any elements ; Zone: <root> ; Task: Promise.then ; Value: Error: The selector "app" did not match any elements

app이라는 셀렉터와 매칭하는 어떤 엘리먼트도 찾을수 없다고한다.

-index.html 내부에 <app-auction>loading...</app-auction>을

<app>loading...</app> 으로 고쳐주면 된다.

Visual Studio code IDE 사용중 experimentalDecorator warning이 나올때






타입스크립트 관련 이유없이 빨간줄이간다. 설정과 관련이 있는데 tsconfig.json이나
systemjs.config.js 에서

experimentalDecorators: true 설정을넣어줘도 안없어진다.

비쥬얼 스튜디오 코드 설정으로가서


"typescript.tsdk": "/usr/lib/node_modules/typescript/lib"



다시 경고 메시지가 발생한다.

이유를 모르겠지만 나중에 다시 해결방법을 찾아보는게 좋겠다.

https://ihatetomatoes.net/how-to-remove-experimentaldecorators-warning-in-vscode/

여기에 해결방법이 있다.

프로젝트의 root 디렉토리에서 tsconfig.json를 만들고


{
"compilerOptions": {
"experimentalDecorators": true,
"allowJs": true
}
}

이내용을 넣으면 경고가 사라진다.

만세!


이틀뒤에 다시 이런 에러가 발생하는데.. 위의 설정으로도 해결이 안된다.
해결방법을 시간이있을때 다시 찾아보는게 좋을것같다.

2017년 6월 19일 월요일

Cartoon - C U Again feat. Mikk Mäe

Cartoon - C U Again feat. Mikk Mäe

Different Heaven - Safe And Sound [NCS Release]

현상황을 정리해보자

경기 침체의 계속이다.

이런상황에서 시급 1만원을 요구하며 농성을 한다.

나는 농성을 하는사람을 응원한다.

그이유는 세상은 변화한다. 하루가 다르게 물가는 올라간다. 그 이유는 가뭄이다, oil가격이 올랐다.

여기저기 살기 힘들다한다. 가치는 올라가는데 노동의 댓가는 올라가지 않을 이유가 있는가?

youtube의 외국인들이 말한다 '한국은 살기 좋은 곳이라고' 그런데 그들이 의무에 대해서는 생각하는가?

살상무기를 사용할줄알아야하며 시급 100원도 안되는곳에서 2년생활을 해야하는 그런의무 말이다. (심지어 거부하면 감옥에 가야하는데?)

그들은 외국어+ 한국어를 할줄아는 상황에서 말하는 살기 좋은 곳을 말하는것이고

당연히 한국인이 영어할줄안다면 영어학원 강사를 해도 되고 그만큼 기회는 넓어지는것이다.

시급 1만원이 되면 우선 하나둘씩 어려운 소규모 소상공인들은 문을 닫거나 자신의 목표를위해

다시뛰거나 할것이다. 거기서 부실한 자영업은 정리가 될것이다.

노동자들은 그간 굽혔던 허리를 펼수있는 기회가 될것이고 날이갈수록 축소되던 내수경제도 약간은 활성화 될수있을것이다.

그만큼 물가는 다시또 오르게될것이다. 중요한건 그동안은 숨쉴수있는 시간이 주어지는것이다.

그간 이명박근혜 정책은 젊은청년들 현 80-90 세대들에게 희생만을 강요해왔다.

이제와서 청년수당이니 월 20~30 코묻은돈을 지원한다고? 노가다 3일만해도 30만원은 벌거든?

그동안 잃은 시간 기회를 월 20만원 *3으로 갚는다는건가?

시급 1만원 인상은 빨리 해결해버리고 뒤이어 올 부작용은 빨리 해결을 강구하는게 낫지

이렇게 질질 끌다가는 결국 많은사람이 해외도피로 눈돌려버릴거라고 예상된다.

2017년 6월 18일 일요일

angular2 Directive is not defined 에러

 angular with typescript development 책을 구입하여 따라가는데

folder를 만들고 index.html, main.ts 를 만들고

디렉티브 를 실습하다가


zone.js@0.8.5:571 Error: Uncaught (in promise): Error: (SystemJS) Directive is not defined
ReferenceError: Directive is not defined
   at execute (http://127.0.0.1:8080/main.ts!transpiled:48:17)
   at ZoneDelegate.invoke (https://unpkg.com/zone.js@0.8.5:365:26)
   at Zone.run (https://unpkg.com/zone.js@0.8.5:125:43)
   at https://unpkg.com/zone.js@0.8.5:760:57
   at ZoneDelegate.invokeTask (https://unpkg.com/zone.js@0.8.5:398:31)
   at Zone.runTask (https://unpkg.com/zone.js@0.8.5:165:47)
   at drainMicroTaskQueue (https://unpkg.com/zone.js@0.8.5:593:35)
   at XMLHttpRequest.ZoneTask.invoke (https://unpkg.com/zone.js@0.8.5:464:25)
Error loading http://127.0.0.1:8080/main.ts
(SystemJS) Directive is not defined
ReferenceError: Directive is not defined
   at execute (http://127.0.0.1:8080/main.ts!transpiled:48:17)
   at ZoneDelegate.invoke (https://unpkg.com/zone.js@0.8.5:365:26)
   at Zone.run (https://unpkg.com/zone.js@0.8.5:125:43)
   at https://unpkg.com/zone.js@0.8.5:760:57
   at ZoneDelegate.invokeTask (https://unpkg.com/zone.js@0.8.5:398:31)
   at Zone.runTask (https://unpkg.com/zone.js@0.8.5:165:47)
   at drainMicroTaskQueue (https://unpkg.com/zone.js@0.8.5:593:35)
   at XMLHttpRequest.ZoneTask.invoke (https://unpkg.com/zone.js@0.8.5:464:25)
Error loading http://127.0.0.1:8080/main.ts
   at execute (http://127.0.0.1:8080/main.ts!transpiled:48:17)
   at ZoneDelegate.invoke (https://unpkg.com/zone.js@0.8.5:365:26)
   at Zone.run (https://unpkg.com/zone.js@0.8.5:125:43)
   at https://unpkg.com/zone.js@0.8.5:760:57
   at ZoneDelegate.invokeTask (https://unpkg.com/zone.js@0.8.5:398:31)
   at Zone.runTask (https://unpkg.com/zone.js@0.8.5:165:47)
   at drainMicroTaskQueue (https://unpkg.com/zone.js@0.8.5:593:35)
   at XMLHttpRequest.ZoneTask.invoke (https://unpkg.com/zone.js@0.8.5:464:25)
Error loading http://127.0.0.1:8080/main.ts
(SystemJS) Directive is not defined
ReferenceError: Directive is not defined
   at execute (http://127.0.0.1:8080/main.ts!transpiled:48:17)
   at ZoneDelegate.invoke (https://unpkg.com/zone.js@0.8.5:365:26)
   at Zone.run (https://unpkg.com/zone.js@0.8.5:125:43)
   at https://unpkg.com/zone.js@0.8.5:760:57
   at ZoneDelegate.invokeTask (https://unpkg.com/zone.js@0.8.5:398:31)
   at Zone.runTask (https://unpkg.com/zone.js@0.8.5:165:47)
   at drainMicroTaskQueue (https://unpkg.com/zone.js@0.8.5:593:35)
   at XMLHttpRequest.ZoneTask.invoke (https://unpkg.com/zone.js@0.8.5:464:25)
Error loading http://127.0.0.1:8080/main.ts
    at resolvePromise (https://unpkg.com/zone.js@0.8.5:712:31) [<root>]
    at resolvePromise (https://unpkg.com/zone.js@0.8.5:683:17) [<root>]
    at https://unpkg.com/zone.js@0.8.5:760:17 [<root>]
    at Zone.runTask (https://unpkg.com/zone.js@0.8.5:165:47) [<root> => <root>]
    at drainMicroTaskQueue (https://unpkg.com/zone.js@0.8.5:593:35) [<root>]
    at XMLHttpRequest.ZoneTask.invoke (https://unpkg.com/zone.js@0.8.5:464:25) [<root>]
consoleError @ zone.js@0.8.5:571
handleUnhandledRejection @ zone.js@0.8.5:574
_loop_1 @ zone.js@0.8.5:609
drainMicroTaskQueue @ zone.js@0.8.5:613
ZoneTask.invoke @ zone.js@0.8.5:464

이런 애러를 만났다.

zone.js는 angular에서 변화를 감지하는데 사용한다던데 왜 directive를 저기서 찾지?;

angular-cli를 사용해서 프로젝트를 만들면 다 알아서 로드하고 알아서 설치해주는데
이렇게 시작해보면 왜안되는지 모르겠다 ㅎㅎ

2017년 6월 15일 목요일

이분때문에 일본어 다시 시작하게 될거같습니다.

목적이 생겨버렸어요

 

사진으로만 봤을땐 몰랐는데 광고를 보자마자 아 이렇게 이뻐도되는건가요 라는 말이 저절로 나옵니다.

광고는 그냥 옆에서 술마시며 말동무해주는 여자친구 컨셉인데

갑자기 술이 땡기면서 경월소주 맛까지 궁금해집니다.

그리고 포기했던 일본어까지 다시 해야하는지 고민이 됩니다.

광고를 봤을뿐인데 포기했던 어학까지 다시 시작하게 만드는 애교.


2017년 6월 12일 월요일

문대통령 시정연설 j노믹스에대한 내 짧은생각

일자리가 (44)번 언급되었다고 한다.

청년실업에 대해 정확히 알고있으며 시급한 문제라고 인식하고 있는점은 정말 이번 19대 대통령은 제대로 뽑은것같아 좋다(나는 현대통령에게 투표하지 않았지만...)

해법은 딱 하나 좋은 일자리를 늘리는것

그렇다면 어떤 일자리가 좋은 일자리이고 그 일자리를 유지하기위해선 어떤 노력이 필요할까?

좋은일자리 = 굉장히 막연하다 누구에게 좋아야할까? 고용주? 노동자?

둘을 만족시키려면 우선 급여에 대해 이야기해봐야할것같다.  급여는 최저임금을 빼고 논할수는 없는데 주관적으로 생각하는 한국의 현재 노동의 가치는 굉장히 저평가 되어있다.

흔히 말하는 3D업종 의 급여 수준을 찾아보면 시간당 급여가 1만원 수준도 채 되지 않는곳이 굉장히 많다.

고강도 노동과 비위생적이고 건강을 위협하는 일에 노출되는 노동자에게 월 250도 안되는 수준의 급여를 지급하는 업체 또한 많다.

정치인들이 현 문제를 실제로 체감하기 위해서는 위험하고 비위생적이며 고강도 노동력이 필요한 직장에서 적어도 보름이상 근로를 하고 해당 급여를 받아봐야 실제로 체감할것같다

그래야 많은게 변화할수 있을거라 생각한다. 말로, 문서에 쓰여져 있는 숫자로 현재 처해있는
일자리문제를 해결해야한다고 떠들어봐야 아무것도 해결되지 않는다.

좋은일자리? 우선 고용자와 노동자 둘다에게 좋은 일자리를 만들어야하고 기준을 정해야한다.

그리고 이명박, 박근혜 대통령시절 까지 이어온 외국인 근로자 수를 줄이고 3D업종
건설업, 생산직, 기타 근로자가 기피하는 직종에 대한 처우를 상향해야한다.
예를들면

7년이상 근로한 생산직 근로자의 자녀 대학교육까지 무료 혜택을 고용한 회사에서 책임져준다.

1년단위 고용계약직을 철폐하고 현재 만연해있는 파견회사들을 통합하여 정부 차원에서 관리한다. (고용노동부 산하 기관)
이렇게하면 공공일자리도 늘리고 좀더 투명한 파견 문화가 만들어 지지 않을까?

무기력한 나 자신에게 남기는 그냥 한마디

조급히 생각하지 말고 자신의 속도대로 가는거다.

내적만족감을 주는 동기를 회복하는것

즐거움이 있을때


정말 의미가 있는것은 내 삶이다.

다른이의 삶은 그냥 지나가는 풍경일뿐 풍경이 좋든 싫든

목적지가 나쁜것은 아니니까

2017년 6월 11일 일요일

쉽고 재밌게 배우는 angular cli



지금 보고있는데 재밌을것같아요



따라하는 중에 ERROR Error: No provider for  http provider  이런식으로 에러가 발생했었는데

search.component.ts 에서

import  {HttpModule, Http} from  '@angular/http'

이렇게  임포트해주고

컴포넌트에서
providers [GithubService,HttpModule] 이런식으로  지정해줘도

ERROR Error: No provider for ConnectionBackend!

이런식으로 에러가 났엇는데

app.module.ts 에서  


import { HttpModule } from '@angular/http';


imports : [
    HttpModule 을 추가해주면 된다.
]

라그나로크 페이욘 BGM




가끔 사극드라마를 보면서 굉장히 잘어울릴거같은

페이욘 BGM  걍 노래 듣고있으면 마음이 편함





이건 프론테라 게임의 전반적인 분위기를 잘 살려준다.

일반적인 디자인의 함정

로직을 잘못된 장소에두기

가장 일반적인 문제는 논리가 잘못된 구성 요소에 넣어 MVC를 손상시킬 수 있다는 것입니다. 관심의 분리. 이 문제의 세 가지 가장 일반적인 종류는 다음과 같습니다. • 비즈니스 로직을 구성 요소가 아닌 템플릿에 배치 • 도메인 논리를 모델이 아닌 구성 요소에 배치 • RESTful 서비스를 사용할 때 클라이언트 모델에 데이터 저장소 로직 배치
이것들은 까다로운 문제입니다. 왜냐하면 문제가되는 데 시간이 걸리기 때문입니다.

응용 프로그램은 계속 실행되지만 시간이 지남에 따라 향상되고 유지 관리하는 것이 어려워집니다. 세 번째의 경우,
문제는 데이터 저장소가 변경 될 때만 나타납니다 (프로젝트가 시작될 때까지 거의 발생하지 않음).

2017년 6월 10일 토요일

angularjs - 패턴 신봉자가 되지말고 ...

패턴신봉자가 되지말고 약간의 연구를 통해 실제 적용 및 전달을 통해 패턴의 유연한 적용이 어떻게 좋은 결과를 만들어 낼 수 있는지 보여주십시오.


Patterns are flexible tools and not fixed rules, but not all developers understand the difference,


약간의 연구를 통해 ... 유연한 적용이 좋은결과를 만들어내는지 보여줘라 ;

음...

음.. 앵귤러의 목표?

Angular의 목표는 서버 측 개발에만 사용할 수있는 도구와 기능을 웹 클라이언트에 제공하는 것이며이를 통해 풍부하고 복잡한 웹 응용 프로그램을보다 쉽게 ​​개발, 테스트 및 유지 관리 할 수 ​​있습니다.

스펠링 틀려서 고생한다

  var paths ={
        "rxjs/*" : "node_modules/rxjs/bundles/Rx.min.js",
        "@angular/*" :  "node_modules/@angular/*"
      }
      var packages  = {"app":{} };
      var angularModules = ["common","compiler", "core", "forms", "platform-borwser", "platform-browser-dynamic"];
      angularModules.forEach(function(pkg){
        packages["@angular/"+pkg] = {
          main: "/bundles/" + pkg + ".umd.min.js"
        };
      });




여기서 

 /node_modules/@angular/platform-browser/ 404  , platform-browser 모듈 못찾는다고
404에러 나와서 뭐가문제인지 몰라서 어리둥절하고있는데
index.html 을보면 앵귤러 모듈스에 배열 안에 모듈중에 borwser 가 보인다 ㅋㅋ

2017년 6월 9일 금요일

pro angular2 챕터2


sudo npm run typings -- install dt~core-js --save --global
sudo npm run typings -- install dt~node --save --global


이 명령어를 터미널에 입력해도 자꾸 ERROR만 뜨고 알수가 없었는데
stackoverflow 검색해보면  .typingsrc 파일에 설정하는 방법으로 해결한다고 한다.

어떤문제인지 모르겠지만.. 위 명령을 입력하면 typings.json 파일이 생성되고
책에서 처럼 2개의 글로벌 디펜던시가 입력된다.



error로그 : Attempted to compile "core-js" as an external module, but it looks like a global module. You'll need to enable the global option to continue.


Attempted to compile "node" as an external module, but it looks like a global module. You'll need to enable the global option to continue.


둘다 똑같은 내용같다.  책에선 -global 이라고 써져있는데 옵션사용시 -- 하이픈 하나 가 아닌 두개다.  ;;;머이런 경우가 다있지 

angularjs 잘 아시는분 질문좀 할게요?

npm run typings -- install dt ~core-js --save –global
npm run typings -- install dt ~node --save --global

이거 왜 실행 안됩니까?


typings ERR! message Unable to parse: registry:/core-js

typings ERR! cwd /home/scar/workspace/pro_angular/todo
typings ERR! system Linux 4.10.0-22-generic
typings ERR! command "/usr/bin/nodejs" "/home/scar/workspace/pro_angular/todo/node_modules/.bin/typings" "install" "dt" "~core-js" "--save" "–global"
typings ERR! node -v v6.10.3
typings ERR! typings -v 1.4.0

typings ERR! If you need help, you may report this error at:
typings ERR!   <https://github.com/typings/typings/issues>

npm ERR! Linux 4.10.0-22-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "run" "typings" "--" "install" "dt" "~core-js" "--save" "–global"
npm ERR! node v6.10.3
npm ERR! npm  v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! @ typings: `typings "install" "dt" "~core-js" "--save" "–global"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the @ typings script 'typings "install" "dt" "~core-js" "--save" "–global"'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the  package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     typings "install" "dt" "~core-js" "--save" "–global"
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /home/scar/workspace/pro_angular/todo/npm-debug.log


이런 애러가 나오는데;;이거 왜이럼?

진심 3번불렀지~ 여름엔 이노래~

맥주처럼 새하얀 거품의 파도 모아논 어느 작은 섬

우리는 돛을 내려 투명한 아침 햇살은

삼페인처럼 터지고 더 이상 행복할수는 없을 것 같아

지금 우리 밤이면 후 라디오에선 먼 메아리처럼

사랑의 노래 너의 입속에 내 가슴에도

부푼 그 말은 사랑해 너를 언제까지나

oh Happy summer summer 너의 눈속에 쏟아진 별처럼

영원의 시간까지 너의 작은 어깨 기대면

텐트 속 어둠은 바다가 되지 나의 summer summer 하늘

마저도 질투가 날만큼 너만을 사랑해

천국은 가까이 사랑하는 내 안에 있어

둘만의 천국에서 투명한 유리잔에 퍼 울리면

황금빛와인이 되는 가슴에 담으면

모든것이 행복이 되는 천국처럼

common babe love me babe

사랑해 사랑해 나는 너를 사랑해

무박 이일 둘 만의 기차여행에

어느새 들뜬 우리는 새처럼 자유롭지

가벼운 농담만으로 유리알처럼 뒹구는 해맑은 웃음

소리에 행복이 벌써 가득한걸

밤이면 후 라디오에선 먼 메아리처럼 사랑의 노래

너의 입속에 내 가슴에도 부푼 그 말은 사랑해

너를 언제까지나 oh happy summer summer

너의 눈속에 쏟아진 별처럼 영원의 시간까지

너의 작은 어깨 기대면 텐트 속 어둠은 바다가 되지

나의 summer summer 하늘마저도

질투가 날만큼 너만을 사랑해

천국은 가까이 사랑하는 내안에 있어(둘만의천국에서)

2017년 6월 7일 수요일

angular2 에서 엔드투 엔드 테스팅 방법

출처 : https://www.youtube.com/watch?v=bR7JbyjT8ZM



ng-cli로 프로젝트를 만들면
e2e 라는 폴더가 생기는데 그안에보면
app.e2e-spec.ts 파일이 있다.

자스민 테스팅 파일과 구조가 똑같다.

describe('테스팅에 한 짧은 제목', ()=>{
    it('이건 이렇게 돌아가야해', ()=>{

     expect().toEqual();
    }
})


터미널에서

ng e2e 엔터 치면 테스트가 실행된다.

지금 되돌아보면 정말 어리석은 선택이었다. [국비지원 비추하는 이유]

국비지원 프론트엔드 과정을 선택한건 정말 잘못된 선택이었다.

해당과정에서 배운건
html , javascript, css, php  프로젝트들...

추가적으로 angularjs , spa 이런 문구들이 들어있는데 말그대로 맛보기였다.

제대로 알아보고 커리큘럼을 꼼꼼히 따져보고 내가 무엇을 배우기를 원하는지 진정으로 냉정하게 검토하지 않았던게 2~3년의 시간을 그냥 무의미하게 보내버린것같다.

실제로 내가배우고자 했던것은 해당과정에서는 하루나 이틀정도의 커리큘럼이었다. 다른 나머지는 뭐 php를 배웠다는점? 협업이 어렵다는점 정도(?)

차라리 혼자 독학해서 진정으로 배우길 원하는것을 짜임새있는 일정을 계획하고 공부했다면
훨씬 많은것을 배우지 않았을까 하는 아쉬움이 생긴다.

지나간건 지나간일이고 이제부터라도 제대로된 방향을 잡고 힘들더라도 꾸준히 방향대로
움직이도록 노력해야할것같다.

typescript(angular4) 를 중점적으로 공부해나갈 생각이다.


만약 angular나 react를 배우고자 한다면 국내의 학원이라든가 교육센터보다는

udemy / https://www.pluralsight.com/ 이런 동영상 강좌를 적극 이용하는게 시간과 비용측면에서 많은 이득을 볼수 있을것이다.


2017년 6월 4일 일요일

angular 연습 2

그냥 별모양을 클릭하면 검정색으로 채워진 별로 토글시키는 아주 간단한
컴포넌트를 만들어 보았다.



@Component({
    selector: 'my-app',
    template: `<h1>{{ title }} </h1>         <h2><i ngClass="{{(isStarOn()) ? 'glyphicon glyphicon-star' : 'glyphicon glyphicon-star-empty' }}" (click)="toggleStar()"></i></h2>            `,
    directives: [CoursesComponent, AuthorsComponent]
})

export class AppComponent {
    title = "Angular App";
    star = false;
    toggleStar(){

        this.star = !this.star;
    }
    isStarOn(){
        return this.star;
    }
}


짧지만 재미있다.


강의에서는 

<i 
    class="glyphicon" 
    [class.glyphicon-star-empty]="!isFavorite"
    [class.glyphicon-star]="isFavorite"
    (click)="onClick()">
</i>

export class FavoriteComponent{
   isFavorite = false;

   onClick(){
      this.isFavorite = !this.isFavorite;
   }
}

이런식으로 처리한다.

angular2 한글 비정상 출력

import {Component} from 'angular2/core';
import {CoursesComponent} from  './courses.component'import {AuthorsComponent} from './authors.component'
@Component({
    selector: 'my-app',
    template: `<h1>{{ title }} </h1>     <input type="text" [value]="title" (input)="title =$event.target.value" />        <input type="button" (click)="title = ''" value="Clear" />        Preview:{{ title }}    `,
    directives: [CoursesComponent, AuthorsComponent]
})
export class AppComponent {
    title = "Angular App";

}





ㅎㅏㄴㄱㅡㄹ?

  Preview:ㅎㅏㄴㄱㅡㄹ?

이런식으로 결과가 나온다;







좀더 검색해보니 자소분리현상이라고하는데 운영체제단에서 나타나는 문제같다.

우선 넘어가고 차후에 해결방법을 찾아보겠다.




<input type="text" [(ngModel)]="title"/>

이걸쓰면 그나마 자소분리현상은 없어지는데 문자가 중복입력되는 현상이 나타난다.





import {Component} from 'angular2/core';
import {CoursesComponent} from  './courses.component'import {AuthorsComponent} from './authors.component'
@Component({
    selector: 'my-app',
    template: `<h1>{{ title }} </h1>         <input type="text" [value]="title" (input)="title = $event.target.value" />

<input type="text" [(ngModel)]="title"/>

<input type="text" bindon-ngModel="title"/>

<input type="button" (click)="title = ''" value="Clear" /> Preview:{{ title }} `, directives: [CoursesComponent, AuthorsComponent] }) export class AppComponent { title = "Angular App"; }

2개 인풋 태그는 적어도 자소분리현상은 일어나지 않는다.

앵귤러 공부

import {Component} from 'angular2/core';
import {CoursesComponent} from  './courses.component'
import {AuthorsComponent} from './authors.component'

@Component({
    selector: 'my-app',
    template: `<br />
<h1>
{{ title }} </h1>
<div click="" ondivclick="">
<button click="" event="" onclick="">Submit</button>      
    </div>
`,
    directives: [CoursesComponent, AuthorsComponent]
})
export class AppComponent {
    title = "Angular App";
    onClick($event){
        $event.stopPropagation();
        console.log('clicked',$event);
    }
    onDivClick(){

        console.log("Handled by Div");
    }
}



템플릿에 div로 감싼 버튼이 있는데 이 버튼을 클릭하면 디브에 걸어둔 클릭이벤트가 자동으로 실행된다.
이벤트 버블링이라고 하는데 이 버블링을 멈추기 위해서는  버튼에 걸어둔 onClick 메서드에
$event.stopPropagation();을 넣어주면  onDivClick() 메서드는 실행되지 않고 onClick() 메서드만 호출된다.