How to convert the following table to JSON Object

다음과 같이 하면 html table에 있는 리스트 형태의 데이터들을 JSON Object 형태로 만들어 사용할 수 있다.

var List = [];
var headers = $("table th");

$('table .tableRows').each(function (i, row) {
     List[i] = {};
     $(row).find('td').each(function (j, cell) {
         List[i][$(headers[j]).text()] = $(cell).find('input').val();
     });
 });

-유의사항-
이 코드는 최적화하여 만들어진 것은 아니고 단순히 Jquery 스크립트로만 위문제를 해결한 것이기 때문에, 더 좋은 최적화된 오픈 소스 혹은 라이브러리가 있다면 그것을 사용하는 것을 권장한다.

Open Source Software License 계열 분류

오픈소스 라이선스는 굉장히 많이 존재 하지만 분류를 해보면 크게 3가지 계열로 나눌 수 있다.

3가지 계열에 대한 라이선스 구분은 다음과 같다.

1. Permissive

오픈소스의 최소한의 성격만을 보장하는 라이선스로, 누구나 개작 할 수 있고, 수정한 것을 제한 없이 배포할 수 있다. 또한, 코드 공개의 의무가 없기 때문에 재배포를 한다고 하여서 프로그램 코드를 공개 할 필요가 없다. 이러한 이유 때문에 상용 소프트웨어를 만드는 회사에서 Permissive 계열의 라이선스를 많이 선택 한다. Permissive 계열 라이선스의 대표적인 예로는 BSD, MIT, Apache 2.0 등이 있다.

2. Weakly Protective

초기 Strongly Protective 계열의 라이선스 조항에 대한 불만으로 인해서 조금 완화한 라이선스이다. 오픈소를 가져다 사용할때, 수정하지 않고 동적 라이브러리 형태로 분리되어 동작한다면 프로그램 코드를 공개할 필요가 없다. Weakly Protective 계열 라이선스의 대표적인 예로는 LGPL과 MPL 등이 있다.

3. Strongly Protective(Network Protective)

자유 소프트웨어 재단(FSF)에서 만든 대표적인 라이선스 체계로 굉장히 강력한 오픈소스 정책이 담겨져있다. 오픈소스를 사용할때에 개작없이 있는 그대로 독립적으로 사용한다면 공개의 의무가 없지만, 조금 이라도 수정하거나 정적/동적으로 참조하여 사용하는 경우 모두 프로그램 코드를 공개해야 한다. 특히나, Network Protective 계열의 라이선스는 클라우드 SaaS 서비스의 특성에도 Stongly Protective를 적용하기 위해서 나온 것으로 배포되지 않고 SaaS 형태로 서비스를 하더라도 프로그램 코드를 공개해야하는 의무가 있다. Strongly Protective(Network Protective) 계열 라이선스의 대표적인 예로는 GPL2, GPL3와 AGPL 등이 있다.

라이선스 계열 분류는 전문에 나타난 내용들의 제약사항의 강도에 따라서 분류를 한 것다. 개발할 제품의 비즈니스 전략에 따라 대략적인 라이선스 정책 방향을 선택 할 수 있을 것이라고 생각한다.