jQuery-11.ajax

이현주·2023년 10월 1일

web-frontend

목록 보기
25/26

xml 요청

  <script>
    $('#btn1').click(function(){
      $.ajax({
        /* 요청 */
        type: 'get',          // RequestMethod : get 또는 post
        url: 'product1.xml',  // 요청 URL (서버 경로 작성)
        async: true,          // 비동기 통신(디폴트, 생략 가능)
        /* 응답 */
        dataType: 'xml',             // 응답 데이터의 타입(text, xml, json 등)
        success: function(resData){  // 매개변수 resData로 응답 데이터가 전달됨 (resData = xhr.responseXML 또는 resData = xhr.responseText)
          // 기존 목록 제거하기
          $('#box1').find('ul').remove();
          // resData에서 <product> 태그만 가져오기
          var product = $(resData).find('product');  // JavaScript는 var product = resData.getElementsByTagName('product');
          $.each(product, function(i, elem){
            // <ul> 태그를 jQuery 객체로 생성
            var ul = $('<ul>');
            // <ul> 태그에 <li> 태그 만들어 넣기
            ul.append($('<li>').text($(elem).find('model').text()));
            ul.append($('<li>').text($(elem).find('maker').text()));
            ul.append($('<li>').text($(elem).find('price').text()));
            // <div id="box1">에 <ul> 태그 넣기
            $('#box1').append(ul);
          })
        },
        error: function(jqXHR){  // jqXHR 객체 : 에러에 관한 정보를 담고 있는 객체
          // <div id="box1"> 태그를 jQuery 객체로 가져옴
          var box1 = $('#box1');
          box1.append($('<div>').text('응답코드 ' + jqXHR.status));
          box1.append($('<div>').text('응답코드 텍스트 ' + jqXHR.statusText));
          box1.append($('<div>').text('응답 텍스트 ' + jqXHR.responseText));
        }
      })
    })
  </script>

json요청

  <script>
    $('#btn3').click(function(){
      $.ajax({
        /* 요청 */
        type: 'get',
        url: 'product1.json',
        async: true,
        /* 응답 */
        dataType: 'json',
        success: function(resData){         // resData = JSON.parse(xhr.responseText)
          $('#box3').find('div').remove();  // 기존 목록 제거하기
          myFunc1(resData);                 // myFunc1 함수 호출
        },
        error: function(jqXHR){
          alert(jqXHR.status + '(' + jqXHR.statusText + ')');
        }
      })
    })
    // myFunc1 함수 정의
    function myFunc1(resData){
      var productList = $('<div>').addClass('product_list');
      $.each(resData, function(i, elem){
        var ul = $('<ul>').addClass('product');
        ul.append($('<li>').text(elem.maker));
        ul.append($('<li>').text(elem.model));
        ul.append($('<li>').text(elem.price));
        productList.append(ul);
      })
      $('#box3').append(productList);
    }
  </script>

[11_ajax.html]

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="../../assets/js/lib/jquery-3.7.1.min.js"></script>
</head>
<body>
  

  <div id="box1">
    <button id="btn1">XML요청1</button>
  </div>
  <script>
    $('#btn1').click(function(){
      $.ajax({
        /* 요청 */
        type: 'get',          // RequestMethod : get 또는 post
        url: 'product1.xml',  // 요청 URL (서버 경로 작성)
        async: true,          // 비동기 통신(디폴트, 생략 가능)
        /* 응답 */
        dataType: 'xml',             // 응답 데이터의 타입(text, xml, json 등)
        success: function(resData){  // 매개변수 resData로 응답 데이터가 전달됨 (resData = xhr.responseXML 또는 resData = xhr.responseText)
          // 기존 목록 제거하기
          $('#box1').find('ul').remove();
          // resData에서 <product> 태그만 가져오기
          var product = $(resData).find('product');  // JavaScript는 var product = resData.getElementsByTagName('product');
          $.each(product, function(i, elem){
            // <ul> 태그를 jQuery 객체로 생성
            var ul = $('<ul>');
            // <ul> 태그에 <li> 태그 만들어 넣기
            ul.append($('<li>').text($(elem).find('model').text()));
            ul.append($('<li>').text($(elem).find('maker').text()));
            ul.append($('<li>').text($(elem).find('price').text()));
            // <div id="box1">에 <ul> 태그 넣기
            $('#box1').append(ul);
          })
        },
        error: function(jqXHR){  // jqXHR 객체 : 에러에 관한 정보를 담고 있는 객체
          // <div id="box1"> 태그를 jQuery 객체로 가져옴
          var box1 = $('#box1');
          box1.append($('<div>').text('응답코드 ' + jqXHR.status));
          box1.append($('<div>').text('응답코드 텍스트 ' + jqXHR.statusText));
          box1.append($('<div>').text('응답 텍스트 ' + jqXHR.responseText));
        }
      })
    })
  </script>


  <hr>


  <div id="box2">
    <button id="btn2">XML요청2</button>
  </div>
  <script>
    $('#btn2').click(function(){
      $.ajax({
        /* 요청 */
        type: 'get',
        url: 'product2.xml',
        async: true,
        /* 응답 */
        dataType: 'xml',
        success: function(resData){
          // 기존 목록 제거하기
          $('#box2').find('div').remove();
          // <div class="product_list"> 태그를 jQuery 객체로 만들기
          var productList = $('<div>').addClass('product_list');
          // resData에서 <product> 태그를 가져온 뒤 순회하기
          $.each($(resData).find('product'), function(i, elem){
            // <div class="product"> 태그를 jQuery 객체로 만들기
            var div = $('<div>').addClass('product');
            // <div class="product"> 태그에 model, maker, price 속성(attribute)값 넣기
            div.append($('<strong>').text($(elem).attr('model')));
            div.append($('<em>').text($(elem).attr('maker')));
            div.append($('<mark>').text($(elem).attr('price')));
            // <div class="product_list"> 태그에 <div class="product"> 태그 넣기
            productList.append(div);
            // <div id="box2"> 태그에 <div class="product_list"> 태그 넣기
            $('#box2').append(productList);
          })
        },
        error: function(jqXHR){
          alert(jqXHR.status + '(' + jqXHR.statusText + ')');
        }
      })
    })
  </script>
  <style>
    #box2 div {
      box-sizing: border-box;
      border: 1px solid gray;
    }
    #box2 .product_list {
      width: 400px;
      display: flex;
      justify-content: space-between;
    }
    #box2 .product {
      width: 100px;
      padding: 20px 10px;
      text-align: center;
    }
    #box2 .product * {
      display: block;
    }
  </style>


  <hr>


  <div id="box3">
    <button id="btn3">JSON요청1</button>
  </div>
  <script>
    $('#btn3').click(function(){
      $.ajax({
        /* 요청 */
        type: 'get',
        url: 'product1.json',
        async: true,
        /* 응답 */
        dataType: 'json',
        success: function(resData){         // resData = JSON.parse(xhr.responseText)
          $('#box3').find('div').remove();  // 기존 목록 제거하기
          myFunc1(resData);                 // myFunc1 함수 호출
        },
        error: function(jqXHR){
          alert(jqXHR.status + '(' + jqXHR.statusText + ')');
        }
      })
    })
    // myFunc1 함수 정의
    function myFunc1(resData){
      var productList = $('<div>').addClass('product_list');
      $.each(resData, function(i, elem){
        var ul = $('<ul>').addClass('product');
        ul.append($('<li>').text(elem.maker));
        ul.append($('<li>').text(elem.model));
        ul.append($('<li>').text(elem.price));
        productList.append(ul);
      })
      $('#box3').append(productList);
    }
  </script>
  <style>
    #box3 * {
      box-sizing: border-box;
      padding: 0;
      margin: 0;
    }
    #box3 .product_list {
      width: 400px;
      display: flex;
      justify-content: space-around;
      border: 1px solid crimson;
    }
    #box3 .product {
      list-style-type: none;
      width: 100px;
      padding: 20px 10px;
      text-align: center;
      border: 1px solid gray;
    }
  </style>


  <hr>


  <div id="box4">
    <button id="btn4">JSON요청2</button>
  </div>
  <script>
    $('#btn4').click(function(){
      $.ajax({
        /* 요청 */
        type: 'get',
        url: 'product2.json',
        async: true,
        /* 응답 */
        dataType: 'json',
        success: function(resData){           // resData = JSON.parse(xhr.responseText)
          $('#box4').find('table').remove();  // 기존 테이블 제거하기
          myFunc2(resData);                   // myFunc2 함수 호출
        },
        error: function(jqXHR){
          alert(jqXHR.status + '(' + jqXHR.statusText + ')');
        }
      })
    })
    // myFunc2 함수 정의
    function myFunc2(resData){
      var table = $('<table border="1"><thead><tr><td>순번</td><td>제조사</td><td>상품</td><td>가격</td></tr></thead><tbody>');
      $.each(resData.products, function(i, elem){
        var tr = $('<tr>');
        tr.append($('<td>').text(i + 1));
        tr.append($('<td>').text(elem.maker));
        tr.append($('<td>').text(elem.model));
        tr.append($('<td>').text(elem.price));
        table.append(tr);
      })
      $('#box4').append(table);
    }
  </script>


  <hr>


  <!-- 제목(title), 이미지(image + link), 저자(author), 판매가(discount), 출판사(publisher), 출판일(pubdate), ISBN(isbn), 설명(description) -->
  <!-- 이미지를 클릭하면 링크가 열리도록 표시하기 -->
  <!-- 설명은 최대 100글자만 표시하기 -->

  <!--
    ----------------------              <div class="book">
    |          | 제목    |                <div class="image">
    |          | 저자    |                  <a href="값"><img src="값"></a>
    |          | 판매가  |                </div>
    |  이미지  | 출판사  |   X  10        <div class="content">
    |          | 출판일  |                  <ul>
    |          | ISBN    |                    <li>제목: 값</li>
    |          | 설명    |                    ...
    ----------------------                  </ul>
                                          </div>
                                        </div>
  -->

  <div id="box5">
    <button id="btn5">book.xml 가져오기</button>
  </div>
  <script>

    // getBookXML 함수 정의
    function getBookXML(){
      $('#btn5').click(function(){
        $.ajax({
          type: 'get',
          url: 'book.xml',
          async: true,
          dataType: 'xml',
          success: function(resData){
            $('#box5 div').remove();
            $.each($(resData).find('item'), function(i, elem){
              var image = $('<div>').addClass('image');
              image.append($('<a>').attr('href', $(elem).find('link').text()).append($('<img>').attr('src', $(elem).find('image').text())));
              var content = $('<div>').addClass('content');
              var ul = $('<ul>');
              ul.append($('<li>').text('제목:' + $(elem).find('title').text()));
              ul.append($('<li>').text('저자:' + $(elem).find('author').text()));
              ul.append($('<li>').text('판매가:' + $(elem).find('discount').text()));
              ul.append($('<li>').text('출판사:' + $(elem).find('publisher').text()));
              ul.append($('<li>').text('출판일:' + $(elem).find('pubdate').text()));
              ul.append($('<li>').text('ISBN:' + $(elem).find('isbn').text()));
              var description = $(elem).find('description').text();
              ul.append($('<li>').text('설명:' + (description.length >= 100 ? description.substring(0, 100) + ' ...' : description)));
              content.append(ul);
              var book = $('<div>').addClass('book');
              book.append(image);
              book.append(content);
              $('#box5').append(book);
            })
          },
          error: function(jqXHR){
            Error(jqXHR.status + '(' + jqXHR.statusText + ')');
          }
        })
      })
    }

    // getBookXML 함수 호출
    getBookXML();

  </script>
  <style>
    #box5 div {
      box-sizing: border-box;
    }
    #box5 .book {
      width: 800px;
      border: 1px solid gray;
      display: flex;
    }
    #box5 .image {
      width: 150px;
    }
    #box5 .image a img {
      width: 150px;
    }
  </style>


  <hr>


  <div id="box6">
    <button id="btn6">book.json 가져오기</button>
  </div>
  <script>

    // getBookJSON 함수 정의
    function getBookJSON(){
      $('#btn6').click(function(){
        $.ajax({
          type: 'get',
          url: 'book.json',
          async: true,
          dataType: 'json',
          success: function(resData){
            $('#box6 div').remove();
            $.each(resData.items, function(i, elem){
              var image = $('<div>').addClass('image');
              image.append($('<a>').attr('href', elem.link).append($('<img>').attr('src', elem.image)));
              var content = $('<div>').addClass('content');
              var ul = $('<ul>');
              ul.append($('<li>').text('제목:' + elem.title));
              ul.append($('<li>').text('저자:' + elem.author));
              ul.append($('<li>').text('판매가:' + elem.discount));
              ul.append($('<li>').text('출판사:' + elem.publisher));
              ul.append($('<li>').text('출판일:' + elem.pubdate));
              ul.append($('<li>').text('ISBN:' + elem.isbn));
              var description = elem.description;
              ul.append($('<li>').text('설명:' + (description.length >= 100 ? description.substring(0, 100) + ' ...' : description)));
              content.append(ul);
              var book = $('<div>').addClass('book');
              book.append(image);
              book.append(content);
              $('#box6').append(book);
            })
          },
          error: function(jqXHR){
            Error(jqXHR.status + '(' + jqXHR.statusText + ')');
          }
        })
      })
    }

    // getBookJSON 함수 호출
    getBookJSON();

  </script>
  <style>
    #box6 div {
      box-sizing: border-box;
    }
    #box6 .book {
      width: 800px;
      border: 1px solid gray;
      display: flex;
    }
    #box6 .image {
      width: 150px;
    }
    #box6 .image a img {
      width: 150px;
    }
  </style>


</body>
</html>

[book.json]

{
	"total":534,
	"start":1,
	"display":10,
	"items":[
		{
			"title":"이것이 자바다 (교육 현장에서 가장 많이 쓰이는 JAVA 프로그래밍의 기본서)",
			"link":"https:\/\/search.shopping.naver.com\/book\/catalog\/34238594620",
			"image":"https:\/\/shopping-phinf.pstatic.net\/main_3423859\/34238594620.20230620094626.jpg",
			"author":"신용권^임경균",
			"discount":"32400",
			"publisher":"한빛미디어",
			"pubdate":"20220905",
			"isbn":"9791169210027",
			"description":"JAVA 17 버전으로 업그레이드해서 돌아왔다! \n7년 동안 꾸준히 사랑받은 자바 베스트셀러 1위, 『이것이 자바다』 개정판!\n\n『이것이 자바다』는 기본 개념에 충실한 설명으로 2015년 초판이 출간된 이후부터 지금까지 프로그래밍 언어를 배우려는 사람들에게 큰 사랑을 받아왔다. 특히 교육 기관에서 가장 많이 사용하는 자바 대표 입문서로서의 역할을 톡톡히 하면서 명실상부한 자바의 교과서로 이름을 알렸다. \n이번 개정판은 기존 Java 8 버전에 최신 Java 17 LTS 버전까지 아우르는 내용으로 업그레이드하였으며, 더욱 풍부해진 708개의 실전 예제를 통해 이론으로 학습한 모든 내용을 직접 코드를 실행하며 따라 할 수 있도록 구성했다. 입문자뿐만 아니라 현직 개발자들도 항상 가까이에 두는 기본서로 꼽을 만큼 내실 있는 내용으로 꽉 채운 이번 개정판은 다시 한 번 독자들을 자바 정복의 길로 안내할 것이다."
		},
		{
			"title":"이펙티브 자바 (프로그래밍인사이트)",
			"link":"https:\/\/search.shopping.naver.com\/book\/catalog\/32436239326",
			"image":"https:\/\/shopping-phinf.pstatic.net\/main_3243623\/32436239326.20230808085747.jpg",
			"author":"조슈아 블로크",
			"discount":"32400",
			"publisher":"인사이트",
			"pubdate":"20181101",
			"isbn":"9788966262281",
			"description":"자바 플랫폼 모범 사례 완벽 가이드 - Java 7, 8, 9 대응\n\n자바 6 출시 직후 출간된 『이펙티브 자바 2판』 이후로 자바는 커다란 변화를 겪었다. 그래서 졸트상에 빛나는 이 책도 자바 언어와 라이브러리의 최신 기능을 십분 활용하도록 내용 전반을 철저히 다시 썼다. 모던 자바가 여러 패러다임을 지원하기 시작하면서 자바 개발자들에게는 구체적인 모범 사례가 더욱 절실해졌고, 관련 조언을 이 책에 담아낸 것이다.\n \n3판에는 자바 7, 8, 9에서 자바 언어와 라이브러리에 추가된 특성들을 녹여냈다. 특히 그동안 객체 지향에 치중하던 자바에 새로 도입된 함수형 프로그래밍 요소도 자세히 알아본다. 람다(lambda)와 스트림(stream)만을 다룬 장을 포함하여 새로운 아이템도 많이 추가되었다.\n \n새롭게 다루는 주제들\n-\t함수형 인터페이스, 람다식, 메서드 참조, 스트림\n-\t인터페이스의 디폴트 메서드와 정적 메서드\n-\t제네릭 타입에서의 다이아몬드 연산자를 포함한 타입 추론\n-\t@SafeVarargs 애너테이션\n-\ttry-with-resources 문\n-\tOptional T 인터페이스, java.time, 컬렉션의 편의 팩터리 메서드 등의 새로운 라이브러리 기능"
		},
		{
			"title":"명품 자바 에센셜 (자바 프로그래밍에 빠져들게 하는 재미있고 쉬운 해설서)",
			"link":"https:\/\/search.shopping.naver.com\/book\/catalog\/32454185535",
			"image":"https:\/\/shopping-phinf.pstatic.net\/main_3245418\/32454185535.20230207163019.jpg",
			"author":"황기태",
			"discount":"26600",
			"publisher":"생능출판",
			"pubdate":"20180810",
			"isbn":"9788970509563",
			"description":"자바 프로그래밍에 빠져들게 하는 재미있고 쉬운 해설서\n\n명품 자바 에센셜은 한 학기에 자바의 기초를 습득할 수 있도록 작성된 책이다. 자바 언어에 대한 쉬운 설명과 의미 있는 예제를 도입하여 이론이 프로그래밍으로 이어지게 하고, 이해도 높은 삽화와 그림으로 본문에 쉽게 몰입할 수 있도록 하였다. 그러므로 이 책은 소프트웨어 전공 학생 뿐 아니라, 공학의 비전공 학생들이나, 짧은 시간에 자바 프로그래밍의 핵심을 쉽게 이해하고 프로그래밍 기초를 확립하고자 하는 다양한 부류의 학습자들에게 적합하다."
		},
		{
			"title":"자바 (Seventh Edition)",
			"link":"https:\/\/search.shopping.naver.com\/book\/catalog\/32467024674",
			"image":"https:\/\/shopping-phinf.pstatic.net\/main_3246702\/32467024674.20221019150629.jpg",
			"author":"Horstmann, Cay S.",
			"discount":"31500",
			"publisher":"한티미디어",
			"pubdate":"20140303",
			"isbn":"9788964211830",
			"description":"▶ 이 책은 자바를 다룬 이론서입니다. 자바의 기초적이고 전반적인 내용을 학습할 수 있도록 구성했습니다."
		},
		{
			"title":"쉽게 배우는 자바 프로그래밍",
			"link":"https:\/\/search.shopping.naver.com\/book\/catalog\/32445392073",
			"image":"https:\/\/shopping-phinf.pstatic.net\/main_3244539\/32445392073.20230906071247.jpg",
			"author":"우종정",
			"discount":"27550",
			"publisher":"한빛아카데미",
			"pubdate":"20201122",
			"isbn":"9791156645146",
			"description":"새로운 기능도 함께 익히는 자바 객체 지향 프로그래밍\n\n이 책은 객체 지향의 핵심을 다루면서도 자바 8 이후 도입된 새로운 기능을 상세히 설명합니다. 군더더기 없는 핵심 코드를 읽고 따라 하면서 ‘개념 이해와 실제 구현’을 할 수 있고, 실생활에 적용할 수 있는 프로젝트 문제를 풀면서 프로그래밍 실력도 끌어올릴 수 있습니다.\n\n※ 본 도서는 대학 강의용 교재로 개발되었으므로 연습문제 해답은 제공하지 않습니다."
		},
		{
			"title":"난생처음 자바 프로그래밍 (실생활 예제부터 OpenCV까지 이해하기 쉬운 JAVA 입문서)",
			"link":"https:\/\/search.shopping.naver.com\/book\/catalog\/40871281660",
			"image":"https:\/\/shopping-phinf.pstatic.net\/main_4087128\/40871281660.20230906071510.jpg",
			"author":"우재남",
			"discount":"26100",
			"publisher":"한빛아카데미",
			"pubdate":"20230630",
			"isbn":"9791156646624",
			"description":"코딩의 기초부터 차근차근 알려주는 비전공자를 위한 자바 입문서\n\n이 책은 초보자에게 어려운 자바 개념을 다양한 삽화와 도식을 통해 시각적으로 설명하여 비전공자도 쉽게 이해할 수 있도록 구성하였습니다. 또한 각 장마다 수록된 실생활 예제 [LAB]과 [실전 예제]를 통해 자바 실력은 물론 문제 해결 능력까지 기를 수 있습니다. OpenCV 라이브러리를 활용한 완성도 높은 이미지 처리 프로젝트를 경험하며 실전 감각을 익힐 수 있습니다. \n\n※ 본 도서는 대학 강의용 교재로 개발되었으므로 연습문제 해답은 제공하지 않습니다."
		},
		{
			"title":"자바스크립트 프로그래밍 입문",
			"link":"https:\/\/search.shopping.naver.com\/book\/catalog\/32491444713",
			"image":"https:\/\/shopping-phinf.pstatic.net\/main_3249144\/32491444713.20230905101353.jpg",
			"author":"윤인성",
			"discount":"25650",
			"publisher":"한빛아카데미",
			"pubdate":"20220103",
			"isbn":"9791156645887",
			"description":"컴팩트한 웹 프로그래밍 입문 교과서\n\n이 책은 자바스크립트의 기본 단계와 응용 단계로 나누어 다룹니다. 기본 단계에서 자바스크립트의 특징과 문법을 익히고, 응용 단계에서 여러 라이브러리를 이용해 프로그램을 완성해 볼 수 있습니다. 서버 프레임워크인 express를 이용해 RESTful API를 만들고, 클라이언트 라이브러리인 jQuery를 이용해 프로젝트를 완성할 수 있습니다. 서버 및 클라이언트 애플리케이션을 만들고, 최종적으로 서버-클라이언트 구조를 갖는 애플리케이션을 완성할 수 있습니다. 총 3개의 프로젝트를 진행해보면서 자바스크립트 웹 프로그래밍을 배울 수 있습니다.\n\n※ 본 도서는 대학 강의용 교재로 개발되었으므로 연습문제 해답은 제공하지 않습니다."
		},
		{
			"title":"자바 정복 (개정판)",
			"link":"https:\/\/search.shopping.naver.com\/book\/catalog\/32489552157",
			"image":"https:\/\/shopping-phinf.pstatic.net\/main_3248955\/32489552157.20221019104531.jpg",
			"author":"김상형",
			"discount":"23400",
			"publisher":"시대인",
			"pubdate":"20220506",
			"isbn":"9791138323666",
			"description":"[도서 특징]\n\n500개의 예제로 배우는 자바 문법의 모든 것!\nJava 17 버전을 기준으로 자바 문법을 총정리한 도서이다. 자바 문법을 체계적으로 안내하고 있으며 텍스트 블록, 패턴 매칭, 레코드 등을 최신 문법을 포함하였다. 자바 문법의 핵심을 파악할 수 있는 500여 개의 예제를 수록하여 자바 입문자도 혼자서 학습할 수 있다. 예제를 통해 핵심 문법과 응용을 실습한 후 클래스의 개념과 객체지향 등 이해하기 쉽지 않은 개념들을 알기 쉽게 설명한다. \n또한, 실무에서 바로 활용할 수 있는 주요 클래스를 체계적으로 정리하고, 컬렉션과 고급 문법에 대한 레퍼런스를 제공하여 자바 개발자라면 항상 옆에 두고 참고할 만하다."
		},
		{
			"title":"자바시장",
			"link":"https:\/\/search.shopping.naver.com\/book\/catalog\/33435744838",
			"image":"https:\/\/shopping-phinf.pstatic.net\/main_3343574\/33435744838.20221019152940.jpg",
			"author":"박계상",
			"discount":"11700",
			"publisher":"푸른사상",
			"pubdate":"20090930",
			"isbn":"9788956407159",
			"description":"한국인들의 미국의류시장 개척기, 자바시장. 조국을 떠난다는 것. 그곳에서 살아간다는 것. 흔한 듯 흔하지 않은 이민세대들의 이야기. ‘자바시장’은 그 이야기를 하고 있다. 이민자이기 때문에 느낄 수밖에 없는 향수, 한국인이기 때문에 당할 수밖에 없었던 차별. 그러한 고난의 시간 속에서 LA에 한인 타운을 구축한 한국인들. 나아가 미국의 의류산업에까지 영향을 미칠 수 있는 자바시장을 이룩해낸 한국인들의 자랑스러운 모습을 작가는 가슴 뭉클하게 그려내고 있다. \n\n\n\n조국을 떠나 새로운 삶의 터전을 맨몸으로 일구어내야 했던 이민자들. 힘겨운 시간을 이겨내고 힘껏 뿌리박은 한인들의 모습을 생동감 있고 또 사실감 있게 그릴 수 있었던 것은 작가가 그들의 곁에서 그들과 함께 호흡하고 생활한 결과물이다. 멀리 떨어져 있는 것으로만 여겼던, 그래서 다르다고만 생각했던 아득한 그들의 이야기를 우리 눈앞에 생생하게 보여주는 것. 그것이 '자바시장'이다."
		},
		{
			"title":"알기 쉽게 해설한 자바 프로그래밍 (10판)",
			"link":"https:\/\/search.shopping.naver.com\/book\/catalog\/37933392620",
			"image":"https:\/\/shopping-phinf.pstatic.net\/main_3793339\/37933392620.20230906071440.jpg",
			"author":"김충석",
			"discount":"27000",
			"publisher":"한빛아카데미",
			"pubdate":"20230212",
			"isbn":"9791156646488",
			"description":"탄탄한 이론과 예제를 바탕으로 쉽게 설명한 자바 프로그래밍 기본서!\n\n이 책은 자바로 프로그래밍을 시작하는 입문자에게 적합합니다. 프로그래밍 언어의 기본 지식과 객체 지향의 주요 개념을 학습할 수 있으며, 또한 자바의 응용 부분까지 충실하게 설명하고 있습니다. 특히 현업에서 자바로 프로그래밍을 하기 위한 핵심 내용을 반영하였으며, 최종적으로 자바 응용 프로젝트를 수행할 수 있도록 구성하였습니다.\n\n※ 본 도서는 대학 강의용 교재로 개발되었으므로 연습문제 해답은 제공하지 않습니다."
		}
	]
}

[book.xml]

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Naver Open API - book ::&apos;자바&apos;</title>
<link>https://search.naver.com</link>
<description>Naver Search Result</description>
<total>534</total>
<start>1</start>
<display>10</display>
<item>
<title>이것이 자바다 (교육 현장에서 가장 많이 쓰이는 JAVA 프로그래밍의 기본서)</title>
<link>https://search.shopping.naver.com/book/catalog/34238594620</link>
<image>https://shopping-phinf.pstatic.net/main_3423859/34238594620.20230620094626.jpg</image>
<author>신용권^임경균</author>
<discount>32400</discount>
<publisher>한빛미디어</publisher>
<pubdate>20220905</pubdate>
<isbn>9791169210027</isbn>
<description>JAVA 17 버전으로 업그레이드해서 돌아왔다! 
7년 동안 꾸준히 사랑받은 자바 베스트셀러 1위, 『이것이 자바다』 개정판!

『이것이 자바다』는 기본 개념에 충실한 설명으로 2015년 초판이 출간된 이후부터 지금까지 프로그래밍 언어를 배우려는 사람들에게 큰 사랑을 받아왔다. 특히 교육 기관에서 가장 많이 사용하는 자바 대표 입문서로서의 역할을 톡톡히 하면서 명실상부한 자바의 교과서로 이름을 알렸다. 
이번 개정판은 기존 Java 8 버전에 최신 Java 17 LTS 버전까지 아우르는 내용으로 업그레이드하였으며, 더욱 풍부해진 708개의 실전 예제를 통해 이론으로 학습한 모든 내용을 직접 코드를 실행하며 따라 할 수 있도록 구성했다. 입문자뿐만 아니라 현직 개발자들도 항상 가까이에 두는 기본서로 꼽을 만큼 내실 있는 내용으로 꽉 채운 이번 개정판은 다시 한 번 독자들을 자바 정복의 길로 안내할 것이다.</description>
</item>
<item>
<title>이펙티브 자바 (프로그래밍인사이트)</title>
<link>https://search.shopping.naver.com/book/catalog/32436239326</link>
<image>https://shopping-phinf.pstatic.net/main_3243623/32436239326.20230808085747.jpg</image>
<author>조슈아 블로크</author>
<discount>32400</discount>
<publisher>인사이트</publisher>
<pubdate>20181101</pubdate>
<isbn>9788966262281</isbn>
<description>자바 플랫폼 모범 사례 완벽 가이드 - Java 7, 8, 9 대응

자바 6 출시 직후 출간된 『이펙티브 자바 2판』 이후로 자바는 커다란 변화를 겪었다. 그래서 졸트상에 빛나는 이 책도 자바 언어와 라이브러리의 최신 기능을 십분 활용하도록 내용 전반을 철저히 다시 썼다. 모던 자바가 여러 패러다임을 지원하기 시작하면서 자바 개발자들에게는 구체적인 모범 사례가 더욱 절실해졌고, 관련 조언을 이 책에 담아낸 것이다.
 
3판에는 자바 7, 8, 9에서 자바 언어와 라이브러리에 추가된 특성들을 녹여냈다. 특히 그동안 객체 지향에 치중하던 자바에 새로 도입된 함수형 프로그래밍 요소도 자세히 알아본다. 람다(lambda)와 스트림(stream)만을 다룬 장을 포함하여 새로운 아이템도 많이 추가되었다.
 
새롭게 다루는 주제들
-	함수형 인터페이스, 람다식, 메서드 참조, 스트림
-	인터페이스의 디폴트 메서드와 정적 메서드
-	제네릭 타입에서의 다이아몬드 연산자를 포함한 타입 추론
-	@SafeVarargs 애너테이션
-	try-with-resources 문
-	Optional T 인터페이스, java.time, 컬렉션의 편의 팩터리 메서드 등의 새로운 라이브러리 기능</description>
</item>
<item>
<title>명품 자바 에센셜 (자바 프로그래밍에 빠져들게 하는 재미있고 쉬운 해설서)</title>
<link>https://search.shopping.naver.com/book/catalog/32454185535</link>
<image>https://shopping-phinf.pstatic.net/main_3245418/32454185535.20230207163019.jpg</image>
<author>황기태</author>
<discount>26600</discount>
<publisher>생능출판</publisher>
<pubdate>20180810</pubdate>
<isbn>9788970509563</isbn>
<description>자바 프로그래밍에 빠져들게 하는 재미있고 쉬운 해설서

명품 자바 에센셜은 한 학기에 자바의 기초를 습득할 수 있도록 작성된 책이다. 자바 언어에 대한 쉬운 설명과 의미 있는 예제를 도입하여 이론이 프로그래밍으로 이어지게 하고, 이해도 높은 삽화와 그림으로 본문에 쉽게 몰입할 수 있도록 하였다. 그러므로 이 책은 소프트웨어 전공 학생 뿐 아니라, 공학의 비전공 학생들이나, 짧은 시간에 자바 프로그래밍의 핵심을 쉽게 이해하고 프로그래밍 기초를 확립하고자 하는 다양한 부류의 학습자들에게 적합하다.</description>
</item>
<item>
<title>자바 (Seventh Edition)</title>
<link>https://search.shopping.naver.com/book/catalog/32467024674</link>
<image>https://shopping-phinf.pstatic.net/main_3246702/32467024674.20221019150629.jpg</image>
<author>Horstmann, Cay S.</author>
<discount>31500</discount>
<publisher>한티미디어</publisher>
<pubdate>20140303</pubdate>
<isbn>9788964211830</isbn>
<description>▶ 이 책은 자바를 다룬 이론서입니다. 자바의 기초적이고 전반적인 내용을 학습할 수 있도록 구성했습니다.</description>
</item>
<item>
<title>쉽게 배우는 자바 프로그래밍</title>
<link>https://search.shopping.naver.com/book/catalog/32445392073</link>
<image>https://shopping-phinf.pstatic.net/main_3244539/32445392073.20230906071247.jpg</image>
<author>우종정</author>
<discount>27550</discount>
<publisher>한빛아카데미</publisher>
<pubdate>20201122</pubdate>
<isbn>9791156645146</isbn>
<description>새로운 기능도 함께 익히는 자바 객체 지향 프로그래밍

이 책은 객체 지향의 핵심을 다루면서도 자바 8 이후 도입된 새로운 기능을 상세히 설명합니다. 군더더기 없는 핵심 코드를 읽고 따라 하면서 ‘개념 이해와 실제 구현’을 할 수 있고, 실생활에 적용할 수 있는 프로젝트 문제를 풀면서 프로그래밍 실력도 끌어올릴 수 있습니다.

※ 본 도서는 대학 강의용 교재로 개발되었으므로 연습문제 해답은 제공하지 않습니다.</description>
</item>
<item>
<title>난생처음 자바 프로그래밍 (실생활 예제부터 OpenCV까지 이해하기 쉬운 JAVA 입문서)</title>
<link>https://search.shopping.naver.com/book/catalog/40871281660</link>
<image>https://shopping-phinf.pstatic.net/main_4087128/40871281660.20230906071510.jpg</image>
<author>우재남</author>
<discount>26100</discount>
<publisher>한빛아카데미</publisher>
<pubdate>20230630</pubdate>
<isbn>9791156646624</isbn>
<description>코딩의 기초부터 차근차근 알려주는 비전공자를 위한 자바 입문서

이 책은 초보자에게 어려운 자바 개념을 다양한 삽화와 도식을 통해 시각적으로 설명하여 비전공자도 쉽게 이해할 수 있도록 구성하였습니다. 또한 각 장마다 수록된 실생활 예제 [LAB]과 [실전 예제]를 통해 자바 실력은 물론 문제 해결 능력까지 기를 수 있습니다. OpenCV 라이브러리를 활용한 완성도 높은 이미지 처리 프로젝트를 경험하며 실전 감각을 익힐 수 있습니다. 

※ 본 도서는 대학 강의용 교재로 개발되었으므로 연습문제 해답은 제공하지 않습니다.</description>
</item>
<item>
<title>자바스크립트 프로그래밍 입문</title>
<link>https://search.shopping.naver.com/book/catalog/32491444713</link>
<image>https://shopping-phinf.pstatic.net/main_3249144/32491444713.20230905101353.jpg</image>
<author>윤인성</author>
<discount>25650</discount>
<publisher>한빛아카데미</publisher>
<pubdate>20220103</pubdate>
<isbn>9791156645887</isbn>
<description>컴팩트한 웹 프로그래밍 입문 교과서

이 책은 자바스크립트의 기본 단계와 응용 단계로 나누어 다룹니다. 기본 단계에서 자바스크립트의 특징과 문법을 익히고, 응용 단계에서 여러 라이브러리를 이용해 프로그램을 완성해 볼 수 있습니다. 서버 프레임워크인 express를 이용해 RESTful API를 만들고, 클라이언트 라이브러리인 jQuery를 이용해 프로젝트를 완성할 수 있습니다. 서버 및 클라이언트 애플리케이션을 만들고, 최종적으로 서버-클라이언트 구조를 갖는 애플리케이션을 완성할 수 있습니다. 총 3개의 프로젝트를 진행해보면서 자바스크립트 웹 프로그래밍을 배울 수 있습니다.

※ 본 도서는 대학 강의용 교재로 개발되었으므로 연습문제 해답은 제공하지 않습니다.</description>
</item>
<item>
<title>자바 정복 (개정판)</title>
<link>https://search.shopping.naver.com/book/catalog/32489552157</link>
<image>https://shopping-phinf.pstatic.net/main_3248955/32489552157.20221019104531.jpg</image>
<author>김상형</author>
<discount>23400</discount>
<publisher>시대인</publisher>
<pubdate>20220506</pubdate>
<isbn>9791138323666</isbn>
<description>[도서 특징]

500개의 예제로 배우는 자바 문법의 모든 것!
Java 17 버전을 기준으로 자바 문법을 총정리한 도서이다. 자바 문법을 체계적으로 안내하고 있으며 텍스트 블록, 패턴 매칭, 레코드 등을 최신 문법을 포함하였다. 자바 문법의 핵심을 파악할 수 있는 500여 개의 예제를 수록하여 자바 입문자도 혼자서 학습할 수 있다. 예제를 통해 핵심 문법과 응용을 실습한 후 클래스의 개념과 객체지향 등 이해하기 쉽지 않은 개념들을 알기 쉽게 설명한다. 
또한, 실무에서 바로 활용할 수 있는 주요 클래스를 체계적으로 정리하고, 컬렉션과 고급 문법에 대한 레퍼런스를 제공하여 자바 개발자라면 항상 옆에 두고 참고할 만하다.</description>
</item>
<item>
<title>자바시장</title>
<link>https://search.shopping.naver.com/book/catalog/33435744838</link>
<image>https://shopping-phinf.pstatic.net/main_3343574/33435744838.20221019152940.jpg</image>
<author>박계상</author>
<discount>11700</discount>
<publisher>푸른사상</publisher>
<pubdate>20090930</pubdate>
<isbn>9788956407159</isbn>
<description>한국인들의 미국의류시장 개척기, 자바시장. 조국을 떠난다는 것. 그곳에서 살아간다는 것. 흔한 듯 흔하지 않은 이민세대들의 이야기. ‘자바시장’은 그 이야기를 하고 있다. 이민자이기 때문에 느낄 수밖에 없는 향수, 한국인이기 때문에 당할 수밖에 없었던 차별. 그러한 고난의 시간 속에서 LA에 한인 타운을 구축한 한국인들. 나아가 미국의 의류산업에까지 영향을 미칠 수 있는 자바시장을 이룩해낸 한국인들의 자랑스러운 모습을 작가는 가슴 뭉클하게 그려내고 있다. 



조국을 떠나 새로운 삶의 터전을 맨몸으로 일구어내야 했던 이민자들. 힘겨운 시간을 이겨내고 힘껏 뿌리박은 한인들의 모습을 생동감 있고 또 사실감 있게 그릴 수 있었던 것은 작가가 그들의 곁에서 그들과 함께 호흡하고 생활한 결과물이다. 멀리 떨어져 있는 것으로만 여겼던, 그래서 다르다고만 생각했던 아득한 그들의 이야기를 우리 눈앞에 생생하게 보여주는 것. 그것이 &apos;자바시장&apos;이다.</description>
</item>
<item>
<title>알기 쉽게 해설한 자바 프로그래밍 (10판)</title>
<link>https://search.shopping.naver.com/book/catalog/37933392620</link>
<image>https://shopping-phinf.pstatic.net/main_3793339/37933392620.20230906071440.jpg</image>
<author>김충석</author>
<discount>27000</discount>
<publisher>한빛아카데미</publisher>
<pubdate>20230212</pubdate>
<isbn>9791156646488</isbn>
<description>탄탄한 이론과 예제를 바탕으로 쉽게 설명한 자바 프로그래밍 기본서!

이 책은 자바로 프로그래밍을 시작하는 입문자에게 적합합니다. 프로그래밍 언어의 기본 지식과 객체 지향의 주요 개념을 학습할 수 있으며, 또한 자바의 응용 부분까지 충실하게 설명하고 있습니다. 특히 현업에서 자바로 프로그래밍을 하기 위한 핵심 내용을 반영하였으며, 최종적으로 자바 응용 프로젝트를 수행할 수 있도록 구성하였습니다.

※ 본 도서는 대학 강의용 교재로 개발되었으므로 연습문제 해답은 제공하지 않습니다.</description>
</item>
</channel>
</rss>

[product1.json]

[
  {
    "maker":"삼성", 
    "price":100,
    "model":"세탁기"
  },
  {
    "maker":"LG",
    "price":200,
    "model":"냉장고"
  },
  {
    "maker":"삼성",
    "price":300,
    "model":"TV"
  }
]

[product1.xml]

<?xml version="1.0" encoding="UTF-8"?>
<products>
    <product>
        <model>세탁기</model>
        <maker>삼성</maker>
        <price>100</price>
    </product>
    <product>
        <model>냉장고</model>
        <maker>LG</maker>
        <price>200</price>
    </product>
    <product>
        <model>TV</model>
        <maker>삼성</maker>
        <price>300</price>
    </product>
</products>

[product2.json]

{
  "products": [
    {
      "maker":"삼성",
      "price":100,
      "model":"세탁기"
    },
    {
      "maker":"LG",
      "price":200,
      "model":"냉장고"
    },
    {
      "maker":"삼성",
      "price":300,
      "model":"TV"
    }
  ]
}

[product2.xml]

<?xml version="1.0" encoding="UTF-8"?>
<products>
    <product model="세탁기" maker="삼성" price="100" />
    <product model="냉장고" maker="LG" price="200" />
    <product model="TV" maker="삼성" price="300" />
</products>

profile
졸려요

0개의 댓글