2019년 12월 18일 수요일

부동산정책과 출산율

현 정부의 부동산 대책은 그냥 대책없음 밑빠진 독에 물붓기 정도

과감한 정책으로 출산율을 높여야 한다는 생각이 든다.

1. 203040 젊은세대에게 2인 1주택 제공

남녀가 결혼이나 동거시 양자 명의로 매도, 양도가 법적으로 금지된 주택을 LH공사를 통해서 제공하고 관리한다.

수도권과 각 도지역  (충청, 전라북남,경상북남,강원) 크게 5 지역의 LH공사에 위임하여 관리하도록 한다.

현재 부동산 가격 폭락을 가져올 위험한 발상이다(?)

이렇게 안해도 어차피 부동산가격은 언제꺼져도 이상하지 않은 말도안되는 가격이다.
생각해보라 어떤 머리에 총맞은 사람이 3~5억 하는 수도권 10년넘은 아파트를 제값주고 사겠는가?


부동산 시세는 어차피 따로놀것이고 결자해지 라는 말이있다

결국 그들이 싸질러놓은똥 그들이 알아서 처리해야한다

왜 그들이 신나게 놀던 잔치판에 젊은세대의 피땀눈물을 지불해야하는가?

요즘은 수도권을 벗어나 직접 주택을 설계 시공하는 젊은 사람들이 늘어나고 있다.


2019년 출산율이0.9명에서 0.7명으로 추락하는것은 시간문제다

언제까지 외노자 끌여들여서 돌려막기 할것인가? 외노자들이 국민연금으로 앞으로의 노인들을 부양할것이라 생각하는가?




2019년 10월 31일 목요일

너어무 ! 오오래 가안만 이네

회사 입사하고 한 5개월만인가 ? 그전에도 썼나 모르겠다.

어쨋든 지금 아 11.1 이구나

글쎄 php 언어 자체만으론  스스로 평가를 따져봤을때? 평가해봤을때



database 에서 가져오는 부분 query builder를 사용하면 정말 자유롭게 가져오고 넣을수있게된느낌이다 정말 뿌리고싶은대로 뿌리고 (json) 넣고싶은대로 넣고

정안되면 쌩쿼리를 DB:raw ? 이런구문으로 넣을수 있게 된 그런느낌이다.

그동안 php는 그냥 잠깐 3~4개월 혼자 비컴어스라는 회사에 다니면서 진짜 혼자책사고 동강보고 끙끙거리면서 맨땅해딩 스타일로 잠깐 배웠던거고 그동안 자바스크립트 react 스스로 공부해보고 javascript로 프론트쪽 기술 배우려고 안간힘쓰면서

쿠팡 / 노가다 / 밑바닥 인생의 끝을 달려봤는데
회사다니면서 개발하면서 내 개발실력의 끝 그러니까 바닥까지 밀려오는 실망감을 느끼면서 정말 여기 다녀도될까 라는생각도들고 5개월밖에 안됐는데 얄팍한 자존심에 스스로 영혼을 갉아먹는느낌까지 들면서 그만두고싶다는 생각까지 들었다.


그런데 개발하면서 드는생각이 계속 물어보고 검색해보고 될때까지 막 어떻게든 없는거 있는거 다 짜내면서 동작하는거 그거 결과가 로그로 눈앞에 펼쳐지는순간

그냥 모든게 허물어지듯이 힘든생각이 풀어진다. 그냥 아침일찍 가서 안되도 왜안될까
노트끄적이면서 하나하나

'쪼개면서' 문제발생영역을 로그를 찍어가다보면 이게 자동으로 풀린다.
나중엔 어디서 문제가 발생했는지 잊을정도로 에러추적이 즐거워진다.


아직 배우는중이라서 그런가.. 즐겁다.



힘들땐 정말 토할거같고 내가 이짓을해가면서 왜 이럴까 차라리 그만두고 노가다를 뛸까 생각하지만 노가다 현장을 가보면 절대 그런생각을 못할거다

아! 갑자기 생각난건데.. 노가다 현장에서도 도망친적이 있다.

내 방만큼의 평수인데 그 평수의 바닥을 톱밥 한 마대자루를 뿌리고 빗자루로 쓸어야했다.

방 2개 쓸고 못하겠다고 말하고 나왔다.


만약에 빗자루질에 좀더 익숙해졌더라면 지금처럼 고민은 안햇겠지...


아마 지금도 노가다를 전전하면서 살고있을거 같다.




도망칠수 있을때 도망치는것도 능력이다. 그러니까  마음의 소리에 절대 귀를 닫지마라

무책임? 웃기지마 내인생부터 책임져야되

2019년 10월 12일 토요일

Illuminate\Database\QueryException : SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost'

   Illuminate\Database\QueryException  : SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost' (SQL: select * from information_schema.tables where table_schema = forum and table_name = migrations and table_type = 'BASE TABLE')

  at /home/scar/code/forum/vendor/laravel/framework/src/Illuminate/Database/Connection.php:665
    661|         // If an exception occurs when attempting to run a query, we'll format the error
    662|         // message to include the bindings with SQL, which will make this exception a
    663|         // lot more helpful to the developer instead of just the database's errors.
    664|         catch (Exception $e) {
  > 665|             throw new QueryException(
    666|                 $query, $this->prepareBindings($bindings), $e
    667|             );
    668|         }
    669|

  Exception trace:

  1   PDOException::("SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost'")
      /home/scar/code/forum/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70

  2   PDO::__construct("mysql:host=127.0.0.1;port=3306;dbname=forum", "root", "", [])
      /home/scar/code/forum/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70

  Please use the argument -v to see more details.
scar@scar-W65-67SF:~/code/forum$ sudo mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 8.0.17-0ubuntu2 (Ubuntu)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update user set plugin='' where User='root';
Query OK, 1 row affected (0.02 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)

mysql> \q
Bye



ubuntu같은 일부 리눅스 시스템에서 mysql을 설치하고 
$ mysql -u root -p 으로 로그인 시도를하면 
'ERROR 1698 (28000): Access denied for user 'root'@'localhost'이라는 에러를 발생할때가 있다.

이는 기본적으로 초기설정되어있는 mysql의 root 계정의 패스워드 타입때문인데 
이 타입을 변경해주면된다.

아래처럼 확인해본다.

-----
$ sudo mysql -u root # sudo를 사용하여 root계정으로 mysql에 접속한다. 

mysql> USE mysql;
mysql> SELECT User, Host, plugin FROM mysql.user;

+------------------+-----------------------+
| User             | plugin                |
+------------------+-----------------------+
| root             | auth_socket           |
| mysql.sys        | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+

위처럼 root의 plugin이 auth_socket으로 설정되어있는것을 확인할 수 있다.
이 값을 mysql_native_password로 변경해주면 일반적인 로그인이 가능하다.


mysql> update user set plugin='mysql_native_password' where user='root';
mysql> flush privileges;
mysql> select user, host, plugin from user;
+------------------+-----------------------+
| User             | plugin                |
+------------------+-----------------------+
| root             | mysql_native_password || mysql.sys        | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+
mysql> exit;




출처 :https://bscnote.tistory.com/77

2019년 7월 26일 금요일

지향점

우연히 유튜브를 보다가 정말 잊으면 안되겠다. 라고 생각하는 말이 있어서 옮겨서 적을게요.


내가 만든 도구를 다른 사람들이 쓰고 그 사람들의 삶이 가치 있어지는 일을 하는 것.




출처 :






어리지만 많은것을 깨닳은 선지자 라고 생각합니다.

존경스럽네요 .

2019년 7월 23일 화요일

코딩 절대 배우지 말라 라는 글을 대충 보고나서..

글쎄 처음 제목을 보고 이건 뭔말이지 ? 싶었다.
대충 읽어보니 스웩? 워즈니악은 도구를 잘만드는 사람 람  애플의 돌아가신 그분 이름이 뭐였더라 사실 지하철에서 물건 잘파는 그런사람 이름 잘기억하나? 아 맞다 잡스.

사실 맥OS 는 뛰어나다고 생각한다.. 하지만 저 제목의  워즈니악과 잡스의 비교를 보고 나도 한번 저렇게 말도안되는 비유를 해보고 싶었다 미안하다 ㅎㅎ

프로그래밍을 배우지 말라 흠 내생각엔 저 글을 쓴 글쓴이가 정말 강조하고 싶었던것은 맹목적인 코딩교육에 목메지 말라 라고 이해하고 싶다


내생각엔 코딩/프로그래밍은 숏컷을 만드는 사람들이다.살다보면 우연찮게 일을 효율적이고 빠르고 정확하게 하는 사람들을 주변에서 발견하게 된다 그런사람들이 요즘은 프로그래머가 되는거같다

같은일을 효율적이면서 정확하고 빠르게 하는 방법을 미리 컴퓨터가 이해하는 명령어로 작성하고 다른사람에게 조건없이 사용할수 있도록 오픈하는곳을 요즘은 오픈소스라고 하고 거기에 기여하도록 장려하는 세상이다
프로그래밍이라는게 결국은 어떤업무나 특정 이슈를 해결하기 위한 도구를 만드는 작업이다 거창할거 없다 빨리 이동하기 위해 말을 타고 다녔고 빠르고 편하기 위해 마차 기차 비행기가 나왔다. 그 모든 발명가들을 프로그래머라고 부르지는 않지만 개발가 개발자라고 부른다.

프로그래밍 ? 부디 포기하지 않길 바란다.  취미로라도 배울가치는 충분하다

2019년 6월 28일 금요일

악인전을 뒤늦게 보고나서


시청후감


악인전

우선 떠오르는 단점부터 지목해보면

개연성에 의문이 생긴다.

조폭두목이 칼을 맞았다 → 쪽팔린다 → 복수를 결심해서 경찰과 손을 잡는다.

글쎄? 그 사람들이  실질적인 현재 수입 공급과는 직접적인 관련이 없는 부분 때문에 껄끄러워하던 경찰과 손을 잡는다고?

아귀 대사가 떠오른다

‘아귀 : 복수 같은 그런 순수한 인간적인 감정으로다가 접근하면 안되지’

현실적이라면 조폭두목은 복수의 순간을 기다리거나 위축되는 현재 사업에 실질적인 위협에 대응 하지. 복수에 매달리기 위해 경찰과 손을잡는 자살골은 넣지 않을거라 생각한다.




조폭과 경찰의 협조 과정을 보자

경찰병력 3인 그외 다수 조폭들…


사람 규모만 봐도 협조가 아니고 오히려 조폭이 경찰을 이용하는 모습으로 찍었다면 납득하기 쉬웠을것같다.

이미 경찰쪽 윗선이 매수되어있는 상태이며  다른부서에서 가져간 사건을 ??

경찰인 주인공의 성격을 볼때 주인공이 이미 살인에 연루 되었다면 자수하고 절차를 밟아 나가는게 맞다고 생각한다.그리고나서 경찰해직된 상태에서 시나리오를 풀어갔다면?어땠을까? 

범인을 잡고싶다고 그런선택을 하는건 글쎄 너무 극단적으로간게 아닐까?



일본 조폭과 한국의 조폭은 다르다 라고알고있다.

어차피 폭력을 사용하는 불법적인 직업이지만 일본쪽은 약간  경제인 연합 이런 성격이 강한것같다.
한국은 많이 죽여놨다고는 하나 여전히 기승이긴하다. 요즘은 조폭 사업보다는 인터넷 도박사업이 더 규모가 큰것같지만..


일본영화와 한국영화의 차이점을 갑작스럽지만 이야기해보자면

일본영화는 감정의 파동이 퍼져나가는걸 중요시하지만

한국영화의 특징이라고 느끼는것은 아무래도 시나리오의 흐름 그걸 어떻게

Sound로 그리고 시나리오로 풀어가는가 거기에 몰입하는 경향이 보인다고

생각한다.



지극히 주관적입니다.


2019년 6월 23일 일요일

phpunit을 활용하여 테스트를 해보자


우선 프로젝트를 만들고

phpunit.xml 에서

<php>태그 안에

<server name="DB_CONNECTION" value="mysql" />
나는 mysql쓸꺼니까

<server name="DB_DATABASE" value="짓고싶은 데이터베이스명"/>

그리고

alias= 'clear && vendor/bin/phpunit --filter'  이런식으로 하고



테스트 할 메서드 위에 /** @test */ 이런식으로 이 메서드가 테스트임을 표시한다.

그리고 터미널에서 pf '함수명' 해주면 테스트가 동작하고

$this->withoutExceptionHandling() ; 해주면

테스트중에 좀더 상세한 에러결과를 볼수있다. 안해주면

뭐가 문제인지 무당처럼 짐작하는 테스터가 될것이다.

db설정할때  .env파일에

DB_Connection = mysql
DB_HOST = 192.168.10.11
DB_PORT = 3306

database ~password 여기서 설정하면 잘연결된다. 

2019년 6월 14일 금요일

laravel 홈스테드 구성중 만난 에러

usr/lib/virtualbox/VirtualBox: relocation error: /usr/lib/x86_64-linux-gnu/libcurl.so.4: symbol SSL_CTX_set_post_handshake_auth version OPENSSL_1_1_1 not defined in file libssl.so.1.1 with link time reference



virtualbox 를 설치후 vagrant를 실행하면서 이런 에러를만났다.

https://askubuntu.com/questions/1041588/virtualbox-not-launching-on-ubuntu-18-04-qt-lib-problem

약간 읽어보니 나와 상황이 비슷하여 따라해보니 잘 해결이 되더라.


which virtualbox << 로 버추얼박스 위치를 찾고

$ ldd /usr/bin/virtualbox
not a dynamic excutable


$ strace /usr/bin/virtualbox
에러내용이 마지막에 나온다.

에디터로 /etc/ld.so.conf.d/libc.conf 를 열어
/usr/local/lib 를 주석처리하면 된다.

$ sudo ldconfig     라이브러리 캐쉬를 업데이트

$ virtualbox

정상구동!!!



2019년 5월 22일 수요일

솔러디티 - NFT 마켓플레이스 댑 만들기



책에있는 내용 그대로 쭈욱 따라서 해았다.


아직 다 완료한건아니고 마이그레이션 하는데 왜 안되지? 싶었는데

가나슈 안켜놨다 ;;;; 가나슈를 켜고

마이그레이션 하니 잘된다. 다음 고고


---

책이 굉장히 명료하면서도 따라하기 쉽다. 다른 책들은 대체 뭔지 이해도 힘들고 따라가기도 힘든데

이책은 예제도 좋고 따라하기도 좋다.

그런데 내용은 넘나 어렵다는것... 이게 대체 무슨말이지 ㅋ

2019년 5월 21일 화요일

배팅댑 만들기 실습을 한번 해보았다.

잘된다... 초보라 그런지 시간이 오래걸렸을뿐..

검색중에

카지노 tutorial도 있더라는 이건 10개 숫자를 선택하는 거같다.
https://github.com/kyriediculous/dapp-tutorial

2019년 5월 20일 월요일

영화이이야기 [스포유]


영화 미성년을 보았다.

유튭같은 매체를 통해 이미 영화 줄거리를 이미 아는 상태에서 보았기 때문에 대략적인 이야기는 아는 상태였다.

영화 아저씨 의 김희원님이  조연으로 나왔다.

감독이자 아빠로 등장한 김윤석님


딸들





어머니들


영화를 보면서 하고 싶은 말들이 여러가지 있었지만

마지막장면 중에

놀이공원에서 어린아이 유골을 딸기/초코 우유에 타 마시는걸 보면서

약간 어이가 없었다.

5~6년전에


이 영화를 보았었는데 

이 영화는 그냥 아무 생각 없이 맥주한잔 + 샌드위치  준비해서 보았다. 정말 재밌었다. 

우측에 잭 가리피아나키스?발음도 힘든 저 배우가 영화 내에서 아버지의 유골을 넣을 곳이 없어

캔으로된 원통형 케이스에 보관하다가 다른사람이 커피인줄 알고 유골을 뜨거운물에  커피처럼 대접한 그런 씬이 있었는데 


이건  코미디 영화인걸 감안해도 어이가 없었는데...

미성년 이 영화에서는 딸기/ 초코우유를 준비할때 '설마.. 설마 아닐 꺼야 그냥 우유에 타서 나무에 주거나 할 거야 했는데

배우 둘이 ...너무나도 자연스럽게

꿀꺽꿀꺽.....


마지막 장면은 충격적이었다.  

아무 감정 없이 우유를 마시듯이..죽은 동생을 마셔버렸어... 

이 장면은 너무 충격적이더라는...

처음으로 컨트랙트 만드는걸 따라해봤다.


[vm]

from:0xca3...a733c

to:Betting.(constructor)
value:0 wei
data:0x606...00014
logs:0
hash:0x43a...10cea
Debug


status 0x1 Transaction mined and execution succeed
transaction hash 0x43a81afb94687edccea0672cf8303e07d9b6fdbf2776ed33c1000f2332210cea
contract address 0xb87213121fb89cbd8b877cb1bb3ff84dd2869cfa
from 0xca35b7d915458ef540ade6068dfe2f44e8fa733c
to Betting.(constructor) (Contract Creation - Step 0)
gas 3000000 gas
transaction cost 368168 gas
execution cost 243808 gas
hash 0x43a81afb94687edccea0672cf8303e07d9b6fdbf2776ed33c1000f2332210cea
input 0x606...00014
decoded input { "uint256 _minBet": "100000", "uint256 _winRate": "20" }
decoded output -
logs []
value 0 wei

vue를 이용해서 150페이지까지 진행했는데

CORS 정책 관련 에러가 발생한다.



Access to XMLHttpRequest at 'http://192.168.0.4:8080/sockjs-node/info?t=1558368509847' from origin 'http://localhost:8080' has been blocked by CORS policy: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.


https://stackoverflow.com/questions/54520226/set-withcredentials-globally-with-axios-on-vuejs

https://developer.mozilla.org/ko/docs/Web/HTTP/CORS/Errors/CORSNotSupportingCredentials

참고하여 해결하려 하였으나 잘 안된다.

위에 발생하는 에러를 무시하고 실습이 진행이된다;;
error Error: invalid address     at inputAddressFormatter
이 에러는 메타마스크에 로그인이 되어있지만
window.ethereum.enable();
현재 브라우저의 콘솔창에 실행을 해야 드디어 연결이 된다.
위 한줄때문에 하루가 홀랑 날아가버렸다.


2019년 5월 19일 일요일

no value passed for parameter clazz

이게 대체 뭔 소릴까 ??


내가 class 를 clazz로 썼나?

코틀린 에서 realm을 사용하면서

no value passed  for parameter clazz 이런게 나오는데

todo() 에 마우스 커서를 갖다 대면 해결방법이 뜬다;; 알트+엔터 눌러보면

where구문이 옆으로 누으면서 에러가 사라진다

대체 뭐지??

val maxId = realm.where<Todo>().max("id") 

2019년 3월 13일 수요일

과연 10년뒤에도 행복할수 있을까?



짤막한 영상을 통해 로봇간 토론을 볼수 있었다.

10~20년 안에 인간이 하는 일 대부분을 로봇이 대체할 수 있을 것이라고 한다.

대다수의 인간은 놀 수 있게 될것이고 노동/ 근로는 로봇이 하는거라는 인식이 자리잡게 될거다.

그건 틀림없지만 인간이 세상에  특이점이 도달하기 전까지 과연 안전할 수 있을까?

누군가는 큰 돈을 위해 영화/게임 바이오하자드 처럼 엄브렐라 사와 같은 회사를 만들수도 있고

3차 세계대전이 일어날수도 있다.



앞으로 10년 ~15년 세상은  초 단위로 발전하는데 이런 세상에서 나 자신을 지킬 수 있을까?

2019년 3월 7일 목요일

시간을 낭비하지 않기위한 노력

뽀모도르 앱을 사용해서
하고자하는 행동을 1단위로 바꾼다.

독서 (1뽀모도르 25분)

강의 따라하기 (2뽀모도르)



운동의 단위처럼 운동도 1pushup/ 1chinup 이렇게 달력에 표시한다.

오늘 저녁 5시쯤 교통사고를 목격했다.

도서관에서 나와서 작은 횡단보도를 걷는데

내앞 을 걷던 60대 아저씨가 프라이드(?) 차에 치였다.

순간 놀라서 아무것도 못하고 보기만 했는데 아저씨는 사고난 직후 바닥에 누워서 움직이지 못하는 상태였고 운전자 + 동승자 모두 차밖으로 나와서 사고를 수습했다.

보고도 놀란게 횡단보도에서 할아버지는 정면을 응시하고 가고있었고 맞은편 구청에서 좌회전 하던 차량은 우측을 보면서 좌회전을 했던게 사고원인 같았다.

횡단보도에 사람이 건너면 차량은 일단 정지한 상태에서 가려는 방향에 아무도 없는걸 확인하고 출발해야하는데  운전자 대부분 성격이 급해  빨리 출발하지 않으면 큰일이라도 날것처럼 바로 악셀부터 밟는다.

보행자 신호가 파란불일때 우회전하는 차량도 서행 해서 통과 하는게 아니고 일단 정지 해야 하는게 맞다.

보행자 신호 파란불이 점멸 상태일때 서행해서 통과하는것도 나는 불만스럽다.

보행자 신호가 빨간불이 되야 그제서 움직이는게 맞지않나? 그 운전습관만 바꿔도 한해 교통사고로 발생되는 사회적 비용이 훨씬 줄어들거같은데

한국은 아직도 생명보다는 돈이 우선인 사회인거같다.

내가 국토교통부 장관이 되면

1. 불법주차는 평일 주말 할것없이 무조건 신고제로 신고 당한 차량은 무조건 30회누적시 out
+ 면허정지

2. 음주운전자는 1차적발시 무조건 면허정지 추후 10년간 면허응시 불가
 -면허 합격해도 번호판 빨간색으로 강제  (음주운전 사고시 최소 징역 15년)

3. 신호위반,불법개조 일반인 동영상촬영 제보로 적발되면
벌금 25만원 제보자에게 30% 수당으로 지급

이렇게 바꿔야지

2019년 3월 6일 수요일

vue-cli를 사용하면서 만난 에러

gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/home/scar/workspace/vueex/vuex/node_modules/node-sass/build'
gyp ERR! System Linux 4.18.0-15-generic
gyp ERR! command "/usr/local/bin/node" "/home/scar/workspace/vueex/vuex/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /home/scar/workspace/vueex/vuex/node_modules/node-sass
gyp ERR! node -v v11.10.1
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok
Build failed with error code: 1

vuex/vuex/node_modules/node-sass/build 에 파일을 쓰려고 했는데 권한이 없나보다.

여러가지 해결방법을 찾아보았다.

이상한건 전엔 sudo 를 붙이지 않아도 잘 동작하던 vue-cli 왜? 권한에 대해 계속 이런 에러를뿜는걸까

어쨋든

sudo vue init webpack-simple 에서 css전처리기인 sass는 설치하지않으면 된다.

강좌에서도 N라고설정;;

하 이렇게 또 시간만 가버림 ㅋ


vue-router를 배우면서 보게된 에러

Unknown custom element: <router-link> - did you register the component correctly? For recursive components, make sure to provide the "name" option.


router-link 라는 커스텀 엘리먼트를 알수없다. 너혹시 제대로 컴포넌트 등록한거 맞니?
라고 물어본다.


분명히 router/router.js에
import Vue from 'vue'
import VueRouter from 'vue-router' 라고 임포트했고

main.js에서 이 라우터를 임포트했는데?

어라?

main.js에서

import router from './router.js' 라고 되어있네? 이것도 바꾸고

src/components에 one, two,three vue파일이 없다.

이것도 대충 만들어서 넣어놓고

하니까

잘된다.

라우터파일에서 뷰와 뷰라우터를 임포트하고
라우터 파일에서 라우팅 하고자 하는 vue파일들을 임포트하고
Vue.use(VueRouter) 하고
라우트들을 path,component 지정해주고
VueRouter를 export default로 외부에서 참조할수 있게
해주면 라우터.js에서 해야할일은 다했다.

이제 main.js에서 App.vue 에서 쓸수있게 router.js를 올바르게 임포트 해주고

App.vue 에서
<router-view></roueter-vue> 라고 컴포넌트들이 보여질 자리에 배치해해 주면 끝
!! 아

끝이아니다
사용할 navi.vue에서
각 컴포넌트로 이동할 버튼에
<router-link to='/comp_one'><button>1</button></router-link>를 씌어줘야된다.

중요한건 상대적위치이다.
router.js에서 컴포넌트 밑에있는 vue파일들을 접근하려면
router폴더에서 벗어나기위해 ../ 폴더한칸 위로 올라가서 컴포넌트 폴더쪽으로 접근을 해야한다.

워낙 대충대충인 성격이라 이거 때문에 3시간은 에러메시지 보면서 골치아팠다.

방금 뭔가를 해결했다.

visual studio code

vs code를 사용하면서

처음으로 고구마 천만개를 먹고 물을 안먹은느낌

바로 tab 키가 내가 원하는대로 움직이지 않아서 정말 답답했다.

콘솔에서도 탭을누르면 원래 기존에 node_modules/.bin

여기서 node_까지만 치고 탭을치면 자동완성되는 그런기능이나

에디터에서 4칸? 8칸? 정도 간격을 띄우는 역할을 해줘야되는데

tab을 누르니까 마우스를 쓰지않고

키보드만을 쓰기위한 기능 (다른탭 가선택)기능?뭐이런게 되버려서

이걸어쩌나 싶어 구글링을 해봤더니

나같은사람이 많더라는...

해결방법은 컨트롤 + M을 누르면

바뀐다

하 하루종일 유튜브보고 딴짓하다가

에헴 공부좀해볼까 해서 실상 공부는커녕 이런 작은 불편함 해결해서

뿌듯해하는 모습보면 하 진짜 밥과 공기가 아깝다 ㅠ

2019년 3월 5일 화요일

웹팩

/.node-modules/.bin/webpack-dev-server --open

짜잔

크롬에 걍열려버린다

설정에서 entry가 여러개일때 이런 에러를 뱉는다.

ERROR in chunk m1 [entry]
bundle.js
Conflict: Multiple chunks emit assets to the same filename bundle.js (chunks 0 and 1)

ERROR in chunk m2 [entry]
bundle.js
Conflict: Multiple chunks emit assets to the same filename bundle.js (chunks 0 and 2)


웹펙에서 css파일을 추가하고 webpack.config.js 에서 로더를 설정하다가 만난 에러







ERROR in ./src/css.css (./node_modules/css-loader!./node_modules/style-loader!./node_modules/css-loader!./src/css.css)
Module build failed (from ./node_modules/css-loader/index.js):
Unknown word (5:1)

  3 | // load the styles
  4 | var content = require("!!../node_modules/css-loader/index.js!./css.css");
> 5 | if(typeof content === 'string') content = [[module.id, content, '']];
    | ^
  6 | // Prepare cssTransformation
  7 | var transform;
  8 |

 @ ./src/css.css (./node_modules/style-loader!./node_modules/css-loader!./src/css.css) 4:14-146

before

const path = require('path')
module.exports = {
entry:'./src/entry.js',
output:{
path:path.resolve(__dirname,'dist'),
// path:__dirname+'/dist',
filename:'bundle.js'
},
module:{
rules:[
{
test:/\.css$/,
use:[{loader:"style-loader"},{loader:"css-loader"}]
}
]
}
}


after

const path = require('path')
module.exports = {
entry:'./src/entry.js',
output:{
path:path.resolve(__dirname,'dist'),
// path:__dirname+'/dist',
filename:'bundle.js'
},
module:{
rules:[
{ test: /.scss$/, use: [ "style-loader" , "css-loader" ] }
]
}
}

2019년 3월 1일 금요일

vue 연습

  <body>  
   <div id="app">  
     <p>{{togglehiding}}</p>  
     <p v-if="togglehiding==1"> v if New p tag</p>  
     <p v-else-if="togglehiding==2"> v-else-if -2 New p tag</p>  
     <p v-else-if="togglehiding==3"> v-else-if -3 New p tag</p>  
     <p v-else-if="togglehiding==4"> v-else-if -4 New p tag</p>  
     <p v-else-if="togglehiding==5"> v-else-if -5 New p tag</p>  
     <p>  
     <button @click="togglehiding=!togglehiding">clickme</button>  
     <button @click="plus">plus ++</button>  
     </p>  
   </div>    
   <script type='text/javascript'>  
   var vm = new Vue({  
     el:'#app',  
     data:{  
       message:true,  
       togglehiding:1  
     },  
     methods:{  
       sayhi:function(v){   
         alert(v)  
       },  
       plus:function(){  
         this.togglehiding++  
       }        
     }  
   })  
   </script> 
 
 


커스텀 이벤트

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        h1,h2,h3,h4,h5,h6,div,p,span{font-size:36px; font-family: helvetica; padding:0; margin:0;}
        .comp_root{background:red; color:white;}
        #app{background:orange; padding:25px; color:blue}
    </style>
    <script type="text/javascript" src='../vue.js'>
    export default {
        
    }
    </script>
</head>
<body>
    <div id="app">

      <h1>Parent DIV</h1>     
      <comp v-on:relay='allocate'> </comp>
      <hr>
      <p>{{content1}}</p>
      <hr>
      <p>{{content2}}</p>     

    </div>  

    <template id="temp">
      <div class="comp_root">
        <h2>Component</h2>
        <input v-model='message1'>
        <input v-model='message2'>
        <button v-on:click='send'>Send data</button>
      </div>
    </template>  

</body>    
<script type='text/javascript'>

    var vm = Vue.component('comp', {
      template:'#temp',
      data:function(){
        return{
          message1:'저장된 �"시지1',
          message2:'저장된 �"시지2'
        }
      },
      props:[],
      methods:{
        send:function(){
          this.$emit('relay', this.message1, this.message2)
        },
        allocate:function(v1,v2){
            this.content1 =v1,
            this.content2 =v2
        }
      },
    })

    var vm = new Vue({
      el:'#app',
      data:{
        content1:'컨텐트1',
        content2:'컨텐트2'

      }
    })   
</script>
    

</html>