2018년 6월 22일 금요일

PHP diagram 툴

http://dasunhegoda.com/class-diagram-from-php-code-using-phuml/867/

2018년 6월 21일 목요일

JQUERY 필요없어요.

http://blog.jeonghwan.net/2018/01/25/before-jquery.html

javascript test tool - jasmine + karma + vscode + chrome debugging

일단 이곳을 참고한다.

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

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

구글의 자바스크립트 스타일가이드

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

웹사이트가 어떤 기술과 프레임워크 쓰는지 파악해주는 툴..와우

Wappalyzer — 웹 사이트에서 사용되는 기술을 보는 데 유용하다. 웹 사이트가 어떤 종류의 프레임워크를 사용하고 있는지, 어떤 서비스를 사용하고 있는지 궁금하다면 이 도구만한게 없다.

크롬 확장프로그램

함수형 setState가 reactjs 의 미래래요

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 숨은 기능들

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’))

2018년 6월 11일 월요일

fibonnacci

/**
 * 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일 토요일

개발자 커뮤니티 c#자료등

http://www.sky.ph/

레거시 PHP에서 모던 PHP로 – 뷰 분리하기

https://www.haruair.com/blog/3748

C# 자료있는곳

http://csharp.net-informations.com/