1. JSON 파일로 저장

단원별 개념과 예제 코드를 JSON 데이터로 저장하려고 하니 조회할 때, 단원별로 조회하기 어려웠습니다.

{
    "contents": [
        {
            "chapter": "제1장 웹 프로그래밍 개요", 
            "contents": [
                            {
                                "subchapter": "1.1 웹 개요",
                                "page": 2,
                                "contents": []
                            }, ...
                        ]
        }, ...
    ]
}

2. 트리 구조 적용

리스트 안에 JSON 형식으로 저장 JSON 데이터: parentId 키로 부모 노드의 id 를 지정, nthChild 키로 형제 간 순서 정렬

[{"id":1,"parentId":0,"nthChild":0,"name":"제1장 웹 프로그래밍 개요","page":"1"},
{"id":2,"parentId":0,"nthChild":1,"name":"제2장. HTML5: 웹 문서 만들기","page":"23"},
{"id":3,"parentId":0,"nthChild":2,"name":"제3장. CSS3: 웹 문서 꾸미기","page":"99"},
{"id":4,"parentId":0,"nthChild":3,"name":"제4장. 자바스크립트 언어","page":"193"},
{"id":5,"parentId":0,"nthChild":4,"name":"제5장. 문서 객체 모델과 브라우저 객체 모델","page":"249"},
{"id":6,"parentId":0,"nthChild":5,"name":"제6장. 캔버스","page":"279"},
{"id":7,"parentId":0,"nthChild":6,"name":"제7장. HTML API","page":"323"},
{"id":9,"parentId":8,"nthChild":0,"name":"1.1 웹 개요","page":"2"},
{"id":10,"parentId":8,"nthChild":1,"name":"1.2 웹 페이지 구성","page":"5"},
{"id":11,"parentId":8,"nthChild":2,"name":"1.3 HTML","page":"6"},
{"id":12,"parentId":8,"nthChild":3,"name":"1.4 웹 프로그래밍 과정","page":"10"},
{"id":14,"parentId":13,"nthChild":0,"name":"2.1 텍스트 표현","page":"24"},
{"id":15,"parentId":13,"nthChild":1,"name":"2.2 리스트 표현","page":"36"},
{"id":16,"parentId":13,"nthChild":2,"name":"2.3 이미지 표현","page":"39"},
{"id":17,"parentId":13,"nthChild":3,"name":"2.4 하이퍼링크 표현","page":"41"},
{"id":18,"parentId":13,"nthChild":4,"name":"2.5 테이블 표현","page":"50"},
{"id":19,"parentId":13,"nthChild":5,"name":"2.6 미디어 표현","page":"56"},
...]