http://dasunhegoda.com/class-diagram-from-php-code-using-phuml/867/
2018년 6월 22일 금요일
2018년 6월 21일 목요일
JQUERY 필요없어요.
By schoolhompy at 6월 21, 2018
No comments
http://blog.jeonghwan.net/2018/01/25/before-jquery.html
javascript test tool - jasmine + karma + vscode + chrome debugging
By schoolhompy at 6월 21, 2018
No comments
일단 이곳을 참고한다.
http://blog.mlewandowski.com/Debugging-Karma-tests-with-VSCode.html
보기어렵다...
요약한다.
0.node설치한다.
1. VSCODE를 설치한다.
2.debugger-for-chrome extension 를 설치한다. 당근 비쥬얼코드에서..Extension 으로..
3.노드 글로벌 모듈로 요맨,카르마 생성기? 설치한다.0에서 노드가 설치되어있으므로 엔피엠 명령어가 가능.
npm install -g yo generator-karma
4.아무폴더나 만든다. (sipal)
5.sipal 폴더로 가서,
yo karma --browsers "Chrome" --app-files "src/**/*.js" --test-files "test/**/*.js" --base-path ".."
실행한다. 그러면 sipal/test/karma.conf.js 파일이 생긴다. 카르마 제네레이터를 설치했으니 가능한 명령이다.
6.visual studio code 에서 열기위해
sipal 폴더에서
code . test/karma.conf.js
실행한다.
7.이것저것 써있는 설정값들이 보이는데, 아무데나
customLaunchers: {
ChromeDebugging: {
base: 'Chrome',
flags: [ '--remote-debugging-port=9333' ]
}
},
를 추가하고나서 browsers라고 되어있는 설정값부분을 아래처럼 바꿔준다.
browsers: [
'ChromeDebugging'
],
8. 그리고 vscode에서 F1을 눌러서 코딱지만한 창에
Debug: Open launch.json
을 입력하면, 그냥 .vscode/launch.json 가 생성되는 경우가있고.
때때로, Chrome, Node,....등 환경을 선택하라고 한다. 아무거나 상관없다.
어차피 다른 내용으로 덮어씌울꺼니까.
자동으로 .vscode/launch.json 파일이 에디터에서 열린다.
그내용을 모두 지우고,
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "attach",
"name": "Attach Karma Chrome",
"address": "localhost",
"port": 9333,
"pathMapping": {
"/": "${workspaceRoot}",
"/base/": "${workspaceRoot}/"
}
}
]
}
로 덮어씌우고 저장한다.
9.테스트팅을 위해서
sipal/src/myFunction.js
파일을 만들고
window.myFunction = function( e ) {
if ( e >= 10 ) {
return true;
} else {
return false;
}
}
내용으로 저장한다.
또.
sipal/test/example.js
만들고
describe( "A suite is just a function", function() {
it( "and so is a spec", function() {
let res = myFunction( 15 );
expect( res ).toBe( true );
} );
} );
내용으로 저장한다.
10.npm test 를 실행한다.
나의 경우는
C:\jasmin\sipal>npm test
11. 디버깅하자.
vscode 에서 해충방지 모양의 버튼을 누르면
▶Attach Karma Chrome
를 실행한다.
그리고 여기저기 브레이크 포인트를 걸고, 크롬에서 새로고침 해보면 된다.
--------------------------
참 더럽게 복잡하네...ㅆㅂ
http://blog.mlewandowski.com/Debugging-Karma-tests-with-VSCode.html
보기어렵다...
요약한다.
0.node설치한다.
1. VSCODE를 설치한다.
2.debugger-for-chrome extension 를 설치한다. 당근 비쥬얼코드에서..Extension 으로..
3.노드 글로벌 모듈로 요맨,카르마 생성기? 설치한다.0에서 노드가 설치되어있으므로 엔피엠 명령어가 가능.
npm install -g yo generator-karma
4.아무폴더나 만든다. (sipal)
5.sipal 폴더로 가서,
yo karma --browsers "Chrome" --app-files "src/**/*.js" --test-files "test/**/*.js" --base-path ".."
실행한다. 그러면 sipal/test/karma.conf.js 파일이 생긴다. 카르마 제네레이터를 설치했으니 가능한 명령이다.
6.visual studio code 에서 열기위해
sipal 폴더에서
code . test/karma.conf.js
실행한다.
7.이것저것 써있는 설정값들이 보이는데, 아무데나
customLaunchers: {
ChromeDebugging: {
base: 'Chrome',
flags: [ '--remote-debugging-port=9333' ]
}
},
를 추가하고나서 browsers라고 되어있는 설정값부분을 아래처럼 바꿔준다.
browsers: [
'ChromeDebugging'
],
8. 그리고 vscode에서 F1을 눌러서 코딱지만한 창에
Debug: Open launch.json
을 입력하면, 그냥 .vscode/launch.json 가 생성되는 경우가있고.
때때로, Chrome, Node,....등 환경을 선택하라고 한다. 아무거나 상관없다.
어차피 다른 내용으로 덮어씌울꺼니까.
자동으로 .vscode/launch.json 파일이 에디터에서 열린다.
그내용을 모두 지우고,
{
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "attach",
"name": "Attach Karma Chrome",
"address": "localhost",
"port": 9333,
"pathMapping": {
"/": "${workspaceRoot}",
"/base/": "${workspaceRoot}/"
}
}
]
}
로 덮어씌우고 저장한다.
9.테스트팅을 위해서
sipal/src/myFunction.js
파일을 만들고
window.myFunction = function( e ) {
if ( e >= 10 ) {
return true;
} else {
return false;
}
}
내용으로 저장한다.
또.
sipal/test/example.js
만들고
describe( "A suite is just a function", function() {
it( "and so is a spec", function() {
let res = myFunction( 15 );
expect( res ).toBe( true );
} );
} );
내용으로 저장한다.
10.npm test 를 실행한다.
나의 경우는
C:\jasmin\sipal>npm test
11. 디버깅하자.
vscode 에서 해충방지 모양의 버튼을 누르면
▶Attach Karma Chrome
를 실행한다.
그리고 여기저기 브레이크 포인트를 걸고, 크롬에서 새로고침 해보면 된다.
--------------------------
참 더럽게 복잡하네...ㅆㅂ
2018년 6월 15일 금요일
Reactjs UI 라이브러리10
By schoolhompy at 6월 15, 2018
No comments
https://www.vobour.com/%EB%B2%A0%EC%8A%A4%ED%8A%B8-10-%EB%A6%AC%EC%95%A1%ED%8A%B8-ui-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-10-best-react-ui-lib
구글의 자바스크립트 스타일가이드
By schoolhompy at 6월 15, 2018
No comments
https://www.vobour.com/%EA%B5%AC%EA%B8%80%EC%9D%80-%EC%9E%90%EB%B0%94-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%8A%A4%ED%83%80%EC%9D%BC-%EA%B0%80%EC%9D%B4%EB%93%9C%EB%A5%BC-%EB%B0%9C%ED%96%89-%ED%95%A9%EB%8B%88%EB%8B%A4-%EB%8B%A4%EC%9D%8C%EC%9D%80-%EB%AA%87-%EA%B0%80%EC%A7%80-%ED%95%B5%EC%8B%AC
웹사이트가 어떤 기술과 프레임워크 쓰는지 파악해주는 툴..와우
By schoolhompy at 6월 15, 2018
No comments
Wappalyzer — 웹 사이트에서 사용되는 기술을 보는 데 유용하다. 웹 사이트가 어떤 종류의 프레임워크를 사용하고 있는지, 어떤 서비스를 사용하고 있는지 궁금하다면 이 도구만한게 없다.
크롬 확장프로그램
크롬 확장프로그램
함수형 setState가 reactjs 의 미래래요
By schoolhompy at 6월 15, 2018
No comments
https://www.vobour.com/%ED%95%A8%EC%88%98%ED%98%95-setstate%EA%B0%80-%EB%A6%AC%EC%95%A1%ED%8A%B8-react-%EC%9D%98-%EB%AF%B8%EB%9E%98%EC%9D%B4%EB%8B%A4-functiona
chrome inspector 숨은 기능들
By schoolhompy at 6월 15, 2018
No comments
https://www.vobour.com/%EB%8B%B9%EC%8B%A0%EC%9D%B4-%EB%AA%A8%EB%A5%BC-%EC%88%98%EB%8F%84-%EC%9E%88%EB%8A%94-%ED%81%AC%EB%A1%AC-%EA%B0%9C%EB%B0%9C%EC%9E%90-%EC%BD%98%EC%86%94-%EA%B8%B0%EB%8A%A5%EB%93%A4-things-you-p
1.
$$(‘tagName’) 또는 $$(‘.class’) 를 사용 할 수도 있는데, 이것은 셀렉터에서 매치되는 모든 DOM 엘리먼트들을 선택한다. 달러싸인이 두개인것을 눈여겨보자. 이렇게 선택된 배열에서 특정 포지션에 있는 엘리먼트를 선택 할수도 있다.
2.
document.body.contentEditable=true 하면 브라우져 에서 그냥 수정되어
3.
getEventListeners($(‘firstName’)).click[0].listener 걸린 이벤트 찾기
4.
이벤트모니터
monitorEvents(window, 'click');
monitorEvents(window, 'message');
5.
코드 블록 실행 시간 확인
console.time('myLabel');
console.timeEnd('myLabel');
6.
밸류를 테이블로 이쁘게
console.table(variableName)
7.
검사기 명령어
$0, $1, $2,
8.
해당 아이디,또는 클래스,이름이 있는 모든목록표기
dir($(‘selector’))
inspect($(‘selector’))
1.
$$(‘tagName’) 또는 $$(‘.class’) 를 사용 할 수도 있는데, 이것은 셀렉터에서 매치되는 모든 DOM 엘리먼트들을 선택한다. 달러싸인이 두개인것을 눈여겨보자. 이렇게 선택된 배열에서 특정 포지션에 있는 엘리먼트를 선택 할수도 있다.
2.
document.body.contentEditable=true 하면 브라우져 에서 그냥 수정되어
3.
getEventListeners($(‘firstName’)).click[0].listener 걸린 이벤트 찾기
4.
이벤트모니터
monitorEvents(window, 'click');
monitorEvents(window, 'message');
5.
코드 블록 실행 시간 확인
console.time('myLabel');
console.timeEnd('myLabel');
6.
밸류를 테이블로 이쁘게
console.table(variableName)
7.
검사기 명령어
$0, $1, $2,
8.
해당 아이디,또는 클래스,이름이 있는 모든목록표기
dir($(‘selector’))
inspect($(‘selector’))
2018년 6월 11일 월요일
fibonnacci
By schoolhompy at 6월 11, 2018
No comments
/**
* Fibonacci Sequence
* <pre>
* <b>History:</b>
* 2018.06.11, 0.1, KIM TAE HO
* </pre>
*
* @author KIM TAE HO
* @version 0.1, 2018.06.11
* @see None
*/
import java.util.HashMap;
import java.util.Map;
import java.math.BigInteger;
public class Fibonacci {
private static Map<Integer, BigInteger> cacheOfSum = new HashMap<>();
public static void main(String[] args)
{
int needNumber = 8181;
cacheOfSum.put(0, BigInteger.ZERO);
cacheOfSum.put(1, BigInteger.ONE);
System.out.println(getFibonacci(needNumber));
}
/**
* (Fibonacci Logic)
* @param sequenceNumber Atom of fibonacci more then 0
* @return Sum Number with preview Number
*/
private static BigInteger getFibonacci(int sequenceNumber)
{
if (cacheOfSum.containsKey(sequenceNumber))
{
return cacheOfSum.get(sequenceNumber);
}
return recursiveCachedSum(sequenceNumber);
}
/**
* Cached Value Of specipied serquence Number that fibonacci
* @param sequenceNumber of using memoization
* @return Sum Number with preview Number
*/
private static BigInteger recursiveCachedSum(int sequenceNumber)
{
BigInteger calcSum = getFibonacci(sequenceNumber - 2).add(getFibonacci(sequenceNumber - 1));
cacheOfSum.put(sequenceNumber, calcSum);
return calcSum;
}
}
* Fibonacci Sequence
* <pre>
* <b>History:</b>
* 2018.06.11, 0.1, KIM TAE HO
* </pre>
*
* @author KIM TAE HO
* @version 0.1, 2018.06.11
* @see None
*/
import java.util.HashMap;
import java.util.Map;
import java.math.BigInteger;
public class Fibonacci {
private static Map<Integer, BigInteger> cacheOfSum = new HashMap<>();
public static void main(String[] args)
{
int needNumber = 8181;
cacheOfSum.put(0, BigInteger.ZERO);
cacheOfSum.put(1, BigInteger.ONE);
System.out.println(getFibonacci(needNumber));
}
/**
* (Fibonacci Logic)
* @param sequenceNumber Atom of fibonacci more then 0
* @return Sum Number with preview Number
*/
private static BigInteger getFibonacci(int sequenceNumber)
{
if (cacheOfSum.containsKey(sequenceNumber))
{
return cacheOfSum.get(sequenceNumber);
}
return recursiveCachedSum(sequenceNumber);
}
/**
* Cached Value Of specipied serquence Number that fibonacci
* @param sequenceNumber of using memoization
* @return Sum Number with preview Number
*/
private static BigInteger recursiveCachedSum(int sequenceNumber)
{
BigInteger calcSum = getFibonacci(sequenceNumber - 2).add(getFibonacci(sequenceNumber - 1));
cacheOfSum.put(sequenceNumber, calcSum);
return calcSum;
}
}
2018년 6월 9일 토요일
레거시 PHP에서 모던 PHP로 – 뷰 분리하기
By schoolhompy at 6월 09, 2018
No comments
https://www.haruair.com/blog/3748