<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>deblog</title>
    <link>https://deseul.tistory.com/</link>
    <description>개발 공부하는 식물광인</description>
    <language>ko</language>
    <pubDate>Thu, 20 Aug 2026 06:14:39 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor> 스콘_</managingEditor>
    <item>
      <title>[어피티 북클럽 후기] 결제부터 어피티 밋업 까지</title>
      <link>https://deseul.tistory.com/entry/%EC%96%B4%ED%94%BC%ED%8B%B0-%EB%B6%81%ED%81%B4%EB%9F%BD-%ED%9B%84%EA%B8%B0-%EA%B2%B0%EC%A0%9C%EB%B6%80%ED%84%B0-%EC%96%B4%ED%94%BC%ED%8B%B0-%EB%B0%8B%EC%97%85-%EA%B9%8C%EC%A7%80</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;어피티의&amp;nbsp;머니레터를&amp;nbsp;구독중인&amp;nbsp;독자인데,&amp;nbsp;7월에&amp;nbsp;북클럽을&amp;nbsp;모집한다는&amp;nbsp;소식이&amp;nbsp;올라왔다. &lt;br /&gt;매일매일 회사를 그만 두고 싶은 충동을 억누르며, 출근을 하고 있는데...&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;7월, 이달의 도서&lt;br /&gt;&amp;lt;왜&amp;nbsp;일하는가&amp;gt; &lt;br /&gt;&lt;br /&gt;직장인은&amp;nbsp;하루&amp;nbsp;최소&amp;nbsp;8시간을&amp;nbsp;일에&amp;nbsp;투자합니다.&amp;nbsp;&amp;lsquo;왜&amp;nbsp;일하는가&amp;rsquo;에&amp;nbsp;대한&amp;nbsp;나만의&amp;nbsp;답이&amp;nbsp;없다면,&amp;nbsp;불만스러운&amp;nbsp;하루가&amp;nbsp;반복될&amp;nbsp;수밖에&amp;nbsp;없어요.&amp;nbsp;그렇다면&amp;nbsp;나만의&amp;nbsp;답은&amp;nbsp;어떻게&amp;nbsp;찾아야&amp;nbsp;할까요? &lt;br /&gt;&lt;br /&gt;어피티&amp;nbsp;북클럽&amp;nbsp;7월&amp;nbsp;도서인&amp;nbsp;이나모리&amp;nbsp;가즈오의&amp;nbsp;&amp;lt;왜&amp;nbsp;일하는가&amp;gt;에서&amp;nbsp;그&amp;nbsp;답을&amp;nbsp;발견해&amp;nbsp;보세요.&amp;nbsp;일에&amp;nbsp;대한&amp;nbsp;근본적인&amp;nbsp;조언을&amp;nbsp;담고&amp;nbsp;있는&amp;nbsp;이&amp;nbsp;책을&amp;nbsp;통해&amp;nbsp;나를&amp;nbsp;돌아보고,&amp;nbsp;미래를&amp;nbsp;준비할&amp;nbsp;수&amp;nbsp;있을&amp;nbsp;거예요.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style7&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;제목을&amp;nbsp;보자마자,&amp;nbsp;난&amp;nbsp;도대체&amp;nbsp;왜&amp;nbsp;일하고&amp;nbsp;있는거지?&amp;nbsp;란&amp;nbsp;생각이&amp;nbsp;들면서&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이번&amp;nbsp;북클럽!&amp;nbsp;한번&amp;nbsp;참여해보자라는&amp;nbsp;생각이&amp;nbsp;들어서&amp;nbsp;바로&amp;nbsp;결제! &lt;br /&gt;&lt;br /&gt;결제 링크는 아래에 있다.&lt;br /&gt;&lt;a href=&quot;https://smartstore.naver.com/uppity_store/products/8745460990&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://smartstore.naver.com/uppity_store/products/8745460990&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;북클럽 설명에 맞게, 7월에 문자가 왔다.이것 저것 잘 잊는 편인 나에게는 안성맞춤..&lt;br /&gt;설명이 자세하고 깔끔해서 보기 딱 좋아. 역시 글을 쓰시는 분들이라 그런지 잘 읽힌다.&lt;br /&gt;(나랑&amp;nbsp;달리&amp;nbsp;ㅋ) &lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SpNJ3/btsmO47b081/oDQ46VMNOrukEYk5MasAr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SpNJ3/btsmO47b081/oDQ46VMNOrukEYk5MasAr0/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;649&quot; data-filename=&quot;edited_KakaoTalk_20230706_173426374.png&quot; data-widthpercent=&quot;50&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SpNJ3/btsmO47b081/oDQ46VMNOrukEYk5MasAr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSpNJ3%2FbtsmO47b081%2FoDQ46VMNOrukEYk5MasAr0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;649&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Lm2qe/btsmNVjzwWw/qYUL5bbCunGhkGd1KF2rtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Lm2qe/btsmNVjzwWw/qYUL5bbCunGhkGd1KF2rtK/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;649&quot; data-filename=&quot;edited_KakaoTalk_20230706_173426213.png&quot; data-widthpercent=&quot;50&quot; style=&quot;width: 49.4186%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Lm2qe/btsmNVjzwWw/qYUL5bbCunGhkGd1KF2rtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLm2qe%2FbtsmNVjzwWw%2FqYUL5bbCunGhkGd1KF2rtK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;649&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;대충 링크는 가림&lt;br /&gt;이제&amp;nbsp;북클럽에대한&amp;nbsp;정보나&amp;nbsp;공지는&amp;nbsp;슬랙으로&amp;nbsp;보내지는데,&amp;nbsp;내게&amp;nbsp;익숙한&amp;nbsp;매체라&amp;nbsp;다행이다. &lt;br /&gt;&lt;br /&gt;오프닝 밋업은 줌으로 진행되었는데, 내가 그때 일정이 있어서 미처 참석하지 못했지만 다음날 바로 유투브에 영상이 올라와서 저녁에 편하게 감상!&lt;br /&gt;&lt;br /&gt;밋업 영상을 통해 알게된 정보. 자그마치 250명가량이 7월 북클럽 신청자라는것..!&amp;nbsp;&lt;br /&gt;생각보다 규모가 커서 놀램.. 귀여운 빙고와 함께 작은 이벤트가 있었는데, 빙고판에 2개만 빙고를 해도 상품이 기다린다.&lt;br /&gt;물론&amp;nbsp;북클럽을&amp;nbsp;상품때문에&amp;nbsp;하는건&amp;nbsp;아니지만,&amp;nbsp;콩고물이&amp;nbsp;있으면&amp;nbsp;또&amp;nbsp;감사히&amp;nbsp;받아야지... &lt;br /&gt;&lt;br /&gt;​ &lt;br /&gt;&lt;br /&gt;책을 읽어야 한다고 생각은 하지만, 실천하지 못했던 사람들을 위한 북클럽 ~ !&lt;br /&gt;여러 갓생러들에게 자극받으며 알찬 주말을 챙길 수 있을 것 같다.&lt;br /&gt;오프라인 북클럽도 너무나 기대가 된다.^^!&amp;nbsp;&lt;br /&gt;새로운&amp;nbsp;사람들을&amp;nbsp;만나는&amp;nbsp;기회&amp;nbsp;너무&amp;nbsp;잼남 &lt;br /&gt;&lt;br /&gt;​ &lt;br /&gt;&lt;br /&gt;우선은 책을 읽으러 가야겠다..&lt;br /&gt;책이&amp;nbsp;다행히도&amp;nbsp;밀리의&amp;nbsp;서재에&amp;nbsp;있어서&amp;nbsp;밀리&amp;nbsp;구독중인&amp;nbsp;나는&amp;nbsp;아이패드로&amp;nbsp;읽는중&amp;nbsp;.. &lt;br /&gt;&lt;br /&gt;다음은&amp;nbsp;오프라인&amp;nbsp;북클럽&amp;nbsp;후기로&amp;nbsp;돌아올&amp;nbsp;예정.!&lt;/p&gt;</description>
      <category>기록/후기</category>
      <category>북클럼</category>
      <category>북클럽</category>
      <category>어피티</category>
      <category>어피티 7월 북클럽</category>
      <category>어피티 독자</category>
      <category>어피티 북클럽</category>
      <category>어피티 북클럽 추천</category>
      <category>어피티 북클럽 후기</category>
      <category>오프라인 소모임</category>
      <category>책읽기</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/44</guid>
      <comments>https://deseul.tistory.com/entry/%EC%96%B4%ED%94%BC%ED%8B%B0-%EB%B6%81%ED%81%B4%EB%9F%BD-%ED%9B%84%EA%B8%B0-%EA%B2%B0%EC%A0%9C%EB%B6%80%ED%84%B0-%EC%96%B4%ED%94%BC%ED%8B%B0-%EB%B0%8B%EC%97%85-%EA%B9%8C%EC%A7%80#entry44comment</comments>
      <pubDate>Fri, 7 Jul 2023 17:00:22 +0900</pubDate>
    </item>
    <item>
      <title>[WEB API] web API란?</title>
      <link>https://deseul.tistory.com/entry/WEB-API-web-API%EB%9E%80</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;GOAL&amp;nbsp;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;웹 API 정의 및 웹 API의 기능&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;웹 API란?&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;API라는 용어는 컴퓨터 시스템 간의 인터페이스 또는 기존 시스템의 다른 프로그램 간의 인터페이스를 뜻했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;시스템은 비슷했지만, &lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;서버 또는 클라이언트를 &lt;/span&gt;특정하지 않았습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;예를 들어 메일 서버는 데이터베이스를 사용하여 정보를 제공하지만 시스템은 본질적으로 함께 설계되었으며 둘은 분리 되어있지 않습니다.&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;그러한 API는 최근에 웹을 포함하도록 용어가 확장되었고, &lt;/span&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;웹 브라우저에서 모바일등의 &lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;클라이언트가 있는 시스템과&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;웹 서버를 설치하고 해당 서버의 데이터에 대해 작동하는 응용프로그램으로 분리 되었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;웹 API의 개념을 이해하려면 프로토콜, 즉 &lt;/span&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;시스템이 서로 대화하는 방식을 이해해야 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;스위치보드 전화 시스템으로 예를 들어 보겠습니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;오래전에, 전화기는 스위치보드에 연결하고 소음을 내는 기능만 있었습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;상대방한테 전화하고 싶으면 수화기를 들고 소음(벨소리)를 내 교환원이 대답하면 상대방에게 &lt;/span&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;나의 전화번호로 상대방의 전화기에 소리를 내도록 만들었습니다. &lt;/span&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;그리고 나서 교환원은 당신과 상대방의 두 전화선을 연결했습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;이 경우에는 &lt;/span&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;스위치보드(현재&amp;nbsp; &quot;서버&quot;로 동작) 및 특정 식별자를 &lt;/span&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;전화 교환원이 당신의 전화로 연결한 것입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;이에 대한 프로토콜은 잘 되어 있어&lt;/span&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt; 전화 사용자들은 전화가 자동&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;으로 가능하기 전까지 &lt;/span&gt;서로 교류할 수 있었습니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;385&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1QyFA/btrsH9wnF06/FhBzZg4mnPx1EOAcbxrfpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1QyFA/btrsH9wnF06/FhBzZg4mnPx1EOAcbxrfpk/img.png&quot; data-alt=&quot;프론트 클라이언트 및 백엔드 서버 API가 상호 작용하는 방식을 보여줍니다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1QyFA/btrsH9wnF06/FhBzZg4mnPx1EOAcbxrfpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1QyFA%2FbtrsH9wnF06%2FFhBzZg4mnPx1EOAcbxrfpk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;610&quot; height=&quot;336&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;385&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;프론트 클라이언트 및 백엔드 서버 API가 상호 작용하는 방식을 보여줍니다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;마찬가지로 HTTP는 브라우저가 생성하는 웹 트래픽을 구동하는 데 사용되는 잘 알려진 프로토콜입니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;웹 API는 클라이언트가 정의된 인터페이스를 사용하여 &lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;HTTP 프로토콜을 통한 서버와 &lt;/span&gt;상호 작용하는 시스템입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt; 주소를 입력할 때 브라우저의 컨텍스트에서 이 기능이 작동하는 방식을 이해하려면 &lt;/span&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;브라우저의 주소 표시줄에서 다음과 같은 고유한 리소스를 검색하도록 요청하는 경우 &lt;/span&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;전화 번호에 도달합니다. 브라우저가 서버에 연결된 정보를 요청합니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;그러면 브라우저에서 볼 수 있도록 반환되고 형식이 지정됩니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;Web API 클라이언트는 시스템에 읽고 쓰기 위해 유사한 호출을 하지만, 응답은 &lt;/span&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;브라우저 대신 처리할 프로그램에 맞게 포맷됩니다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;477&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZYkIr/btrsOhGXnXh/6LMQm9iz2thUiOjity94fk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZYkIr/btrsOhGXnXh/6LMQm9iz2thUiOjity94fk/img.png&quot; data-alt=&quot;프로토콜을 사용하기 위한 형식을 아이스티로 설명&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZYkIr/btrsOhGXnXh/6LMQm9iz2thUiOjity94fk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZYkIr%2FbtrsOhGXnXh%2F6LMQm9iz2thUiOjity94fk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;651&quot; height=&quot;444&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;477&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;프로토콜을 사용하기 위한 형식을 아이스티로 설명&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;프로토콜을 사용 할때 데이터를 위해 잘 설명된 메세지 형식을 갖는 것이 중요합니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;왜냐하면 해당 프로토콜을 통해 전송되는 메시지이므로 형식이 정확해야 내&lt;/span&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;용을 이해할수 있기 때문입니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;컴퓨터 시스템&lt;/span&gt;의 요청를 위해 &lt;/span&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;RESTful 웹 API는 생성, 읽기, 업데이트 및 &lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;삭제&lt;/span&gt;를 지원해야 합니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;481&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhtQZS/btrsJLbBZiF/kfHWWvCZUzIET1TQkBXbWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhtQZS/btrsJLbBZiF/kfHWWvCZUzIET1TQkBXbWk/img.png&quot; data-alt=&quot;카페에서의 구매자와 직원의 상호작용&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhtQZS/btrsJLbBZiF/kfHWWvCZUzIET1TQkBXbWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhtQZS%2FbtrsJLbBZiF%2FkfHWWvCZUzIET1TQkBXbWk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;706&quot; height=&quot;485&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;481&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;카페에서의 구매자와 직원의 상호작용&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;[출처: Irresistible_APIs]&lt;/span&gt;&lt;/p&gt;</description>
      <category>IT</category>
      <category>API</category>
      <category>API란</category>
      <category>api란 무엇인가</category>
      <category>Web</category>
      <category>Web API</category>
      <category>web api란</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/43</guid>
      <comments>https://deseul.tistory.com/entry/WEB-API-web-API%EB%9E%80#entry43comment</comments>
      <pubDate>Tue, 8 Feb 2022 15:41:15 +0900</pubDate>
    </item>
    <item>
      <title>[애플워치 SE 나이키 에디션] 내 품으로</title>
      <link>https://deseul.tistory.com/entry/%EC%95%A0%ED%94%8C%EC%9B%8C%EC%B9%98-SE-%EB%82%98%EC%9D%B4%ED%82%A4-%EC%97%90%EB%94%94%EC%85%98-%EB%82%B4-%ED%92%88%EC%9C%BC%EB%A1%9C-1</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;원래는 갤럭시를 더 편하게 사용 중이었지만,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아이패드를 사게 됨으로 시작된 나비효과로 인해.... 맥북.. 아이폰.. 그리고 이렇게 애플워치까지 구매하게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설날 기념으로 구매하게 되었는데, 나에게 주는 선물이다. 사실 아직 맥북과 아이폰 할부도 남아있는데... . ..&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 이렇게 드래곤볼이 거의 다 완성 되었다.&lt;span style=&quot;color: #dddddd;&quot;&gt;&lt;s&gt; (에어팟 빼고, 그런데 아직은 버즈가 더 좋다)&lt;/s&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;시리즈 7과 SE를 살지 고민을 백번 만번은 하였는데, 결국은 SE를 선택하게 된 이유는..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 20만원가량 차이나는 가격과 별반 다를게 없는 기능이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AOD가 제일 탐나긴 했는데, 그래도 그것 때문에 20만원을 더 내기에는 너무 큰 사치라고 여겨졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 SE로 결정한 후 나이키 에디션으로 구매 후 기다림.. 월요일에 시켰는데 수요일에 왔다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇게 사고 싶지는 않은 구매였음에도 불구하고 포장을 뜯는 것은 항상 즐겁다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;216&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Stxmc/btrrdmJqXDM/kCDYF5OTn0uyd61UoVHw3K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Stxmc/btrrdmJqXDM/kCDYF5OTn0uyd61UoVHw3K/img.png&quot; data-alt=&quot;애플은 포장하나는 기깔참.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Stxmc/btrrdmJqXDM/kCDYF5OTn0uyd61UoVHw3K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FStxmc%2FbtrrdmJqXDM%2FkCDYF5OTn0uyd61UoVHw3K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;580&quot; height=&quot;216&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;216&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;애플은 포장하나는 기깔참.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;441&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6ehVz/btrq7TIYYcd/XEtulpSjvu6WA9r5N0WK4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6ehVz/btrq7TIYYcd/XEtulpSjvu6WA9r5N0WK4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6ehVz/btrq7TIYYcd/XEtulpSjvu6WA9r5N0WK4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6ehVz%2Fbtrq7TIYYcd%2FXEtulpSjvu6WA9r5N0WK4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;640&quot; height=&quot;441&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;441&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;멋있는 검정색 상자.. 시계라고 간결하게 써있는 것 까지 멋있을건 없잖아..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;열어보니 이렇게 나에게 주는 선물 같이 시계와 시계밴드가 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SETag/btrq7HIi6fB/Be4mUOcPmyo3rj5xNhlps1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SETag/btrq7HIi6fB/Be4mUOcPmyo3rj5xNhlps1/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot; data-filename=&quot;KakaoTalk_20220119_230805379_02.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SETag/btrq7HIi6fB/Be4mUOcPmyo3rj5xNhlps1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSETag%2Fbtrq7HIi6fB%2FBe4mUOcPmyo3rj5xNhlps1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cdLj04/btrq9WSN7rG/rCXBoZNzRn7UUm853gaiy1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cdLj04/btrq9WSN7rG/rCXBoZNzRn7UUm853gaiy1/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot; data-filename=&quot;KakaoTalk_20220119_230805379_04.jpg&quot; style=&quot;width: 32.5581%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cdLj04/btrq9WSN7rG/rCXBoZNzRn7UUm853gaiy1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcdLj04%2Fbtrq9WSN7rG%2FrCXBoZNzRn7UUm853gaiy1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cKDHzm/btrq9XYrLCy/BSn1QqTEg4hyFCqKX9frlK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cKDHzm/btrq9XYrLCy/BSn1QqTEg4hyFCqKX9frlK/img.jpg&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;1440&quot; data-filename=&quot;KakaoTalk_20220119_230805379_03.jpg&quot; style=&quot;width: 32.5581%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cKDHzm/btrq9XYrLCy/BSn1QqTEg4hyFCqKX9frlK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcKDHzm%2Fbtrq9XYrLCy%2FBSn1QqTEg4hyFCqKX9frlK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1080&quot; height=&quot;1440&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;영차영차 포장을 풀어서 내 손목에 장착했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;생각보다 이뻐서 마음이 풀린..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘도 애플워치 사용영상과 추천 앱을 보고 자야겠다&lt;/p&gt;</description>
      <category>기록</category>
      <category>apple</category>
      <category>Apple Watch</category>
      <category>애플</category>
      <category>애플워치</category>
      <category>애플워치 구매</category>
      <category>애플워치 나이키 에디션</category>
      <category>애플워치SE</category>
      <category>애플워치후기</category>
      <category>앱등이</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/42</guid>
      <comments>https://deseul.tistory.com/entry/%EC%95%A0%ED%94%8C%EC%9B%8C%EC%B9%98-SE-%EB%82%98%EC%9D%B4%ED%82%A4-%EC%97%90%EB%94%94%EC%85%98-%EB%82%B4-%ED%92%88%EC%9C%BC%EB%A1%9C-1#entry42comment</comments>
      <pubDate>Wed, 19 Jan 2022 23:13:48 +0900</pubDate>
    </item>
    <item>
      <title>[Spring] 웹소켓(webSocket) 구현</title>
      <link>https://deseul.tistory.com/entry/Spring-%EC%9B%B9%EC%86%8C%EC%BC%93webSocket-%EA%B5%AC%ED%98%84</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;웹소켓이란&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Transport protocol의 일종으로 서버와 클라이언트 간의 효율적인 양방향 통신을 실현하기 위한 구조입니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;채팅 핸들러 구현&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;의존성 추가&lt;/p&gt;
&lt;pre id=&quot;code_1641614052645&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import org.springframework.stereotype.Component;
import org.springframework.web.socket.CloseStatus;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;&lt;/code&gt;&lt;/pre&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;client와 url pattern 방식으로 접속, 메시지 전송, &lt;br /&gt;메시지&amp;nbsp;받기,&amp;nbsp;접속&amp;nbsp;종료,&amp;nbsp;예외&amp;nbsp;처리를&amp;nbsp;해주는&amp;nbsp;모듈.. &lt;br /&gt;컨테이너에 chatHandler ==&amp;gt; / controller mapping: chatting.do..&lt;/li&gt;
&lt;li&gt;TextWebSocketHandler를 기본 클래스로 상속
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;nbsp;overriding 해야할 메서드 정의 &lt;br /&gt;(client의&amp;nbsp;처리&amp;nbsp;함수와&amp;nbsp;연동&amp;nbsp;처리) &lt;br /&gt;-&amp;nbsp;접속시&amp;nbsp;처리할&amp;nbsp;내용 &lt;br /&gt;-&amp;nbsp;채팅시&amp;nbsp;처리할&amp;nbsp;내용 &lt;br /&gt;-&amp;nbsp;접속후&amp;nbsp;처리할&amp;nbsp;내용 &lt;br /&gt;- 예외가 발생시 처리할 내용&lt;/li&gt;
&lt;li&gt;화면에서 해당 js기능메서드와 핸들러 클래스의 메서드와 연동되어 처리된다.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;pre id=&quot;code_1641614225337&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Component(&quot;chatHandler&quot;)
public class ChattingHandler extends TextWebSocketHandler{
	// 접속한 사용자들에 대한 정보를 저장하는 전역변수
	private Map&amp;lt;String, WebSocketSession&amp;gt; 
		users = new ConcurrentHashMap&amp;lt;String, WebSocketSession&amp;gt;();
	
	// 접속시
	@Override
	public void afterConnectionEstablished(WebSocketSession session) throws Exception {
		// TODO Auto-generated method stub
		super.afterConnectionEstablished(session);
		// 접속한
		users.put(session.getId(), session);
	}&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;메시지를 보낼때 : 접속한 사용자 중에서 메시지를 보낼 때.
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;접속한 사용자 중에서 메시지를 보낼 때(메시지 수신)&lt;/li&gt;
&lt;li&gt;접속한 사용자들에게 메시지를 전송(메시지 발송) : 접속할 때, &lt;br /&gt;접속한 사용자를 전역변수로 선언하여 할당처리..&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1641614297416&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Override
	protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception {
		// TODO Auto-generated method stub
		super.handleTextMessage(session, message);
		
		System.out.println(session.getId()+&quot;가 보낸 메시지:&quot;+message.getPayload());
		// 각 접속자에게 메시지를 전송(모두에게 전송)
		// 특정한 사용자(임의로 발급된 아이디)에게 전송시 조건문 처리
		for(WebSocketSession ws:users.values()) {
			ws.sendMessage(message);
			System.out.println(ws.getId()+&quot;에게 메시지 전달!!&quot;);
		}
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;접속을 끝낼때 처리할 메서드&lt;/p&gt;
&lt;pre id=&quot;code_1641614331514&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Override
	public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
		// TODO Auto-generated method stub
		super.afterConnectionClosed(session, status);
		System.out.println(session.getId()+&quot;접속을 종료합니다.&quot;);
		users.remove(session.getId()); // 접속한 사용자에게 제외 처리.
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예외가 발생했을때 처리&lt;/p&gt;
&lt;pre id=&quot;code_1641614345536&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Override
	public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
		// TODO Auto-generated method stub
		super.handleTransportError(session, exception);
		System.out.println(session.getId()+&quot;사용자 에러발생&quot;+exception.getMessage());		
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시간 표시 로그 처리&lt;/p&gt;
&lt;pre id=&quot;code_1641614355970&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;private void log(String msg) {
		System.out.println(new Date()+&quot;:&quot;+msg);
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT</category>
      <category>web socket</category>
      <category>websocket</category>
      <category>스프링</category>
      <category>스프링 웹소켓</category>
      <category>스프링 웹소켓 구현</category>
      <category>스프링 웹소켓 구현하기</category>
      <category>웹소켓</category>
      <category>웹소켓 구현</category>
      <category>웹소켓 구현하기</category>
      <category>웹소켓이란</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/40</guid>
      <comments>https://deseul.tistory.com/entry/Spring-%EC%9B%B9%EC%86%8C%EC%BC%93webSocket-%EA%B5%AC%ED%98%84#entry40comment</comments>
      <pubDate>Sat, 8 Jan 2022 14:02:52 +0900</pubDate>
    </item>
    <item>
      <title>[OS] 태스크 스케줄링(Task Scheduling)이란?</title>
      <link>https://deseul.tistory.com/entry/OS-%ED%83%9C%EC%8A%A4%ED%81%AC-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81Task-Scheduling%EC%9D%B4%EB%9E%80</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;태스크 스케줄링은 다중 프로그래밍을 가능하게 하는 운영체제의 동작 기법이나, 엔터프라이즈 애플리케이션의 일반적인 기능입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;태스크 스케줄링의 구성 요소&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 태스크&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특정시간에 또는 정기적으로 실행해야 하는 비즈니스 로직입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;ex) 이메일 알림을 고객에게 보내는 작업, 마감 업무를 수행하는 작업, 데이터 정리 작업, 데이터를 일괄적으로 갱신하는 작업 등)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 트리거(스케줄 정의)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;태스크를 실행하는 특정 조건을 지정하는 역할을 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;ex) 일정한 시간 간격에 맞추거나, 특정 스케줄에 정기적으로 실행하도록(매일 밤8시, 월요일부터 금요일까지 수행하는 작업 등)&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;트리거 실행 방법&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;애플리케이션 배포 환경 내에 존재하는 별도의 스케줄링 시스템을 통해 외부에서 트리거 하는 것&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;ex) Control-M, CAAutoSys와 같은 상용시스템&lt;/li&gt;
&lt;li&gt;리눅스/유닉스 -&amp;gt; 크론탭(crontab)스케줄러 사용&lt;/li&gt;
&lt;li&gt;Restful-WS 요청을 스프링 애플리케이션으로 전달해 스프링의 MVC 컨트롤러가 태스크를 트리거 하는것&lt;/li&gt;
&lt;li&gt;&lt;b&gt;스프링이 제공하는 태스크 스케줄링을 사용하는 것&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JDK 타이머 지원: 스프링은 태스크 스케줄링을 하는데 JDK Timer 객체 사용 지원&lt;/li&gt;
&lt;li&gt;쿼츠(Quartz) 연동: 쿼츠 스케줄러는 인기 있는 오픈 소스 스케줄링 라이브러리입니다.&lt;/li&gt;
&lt;li&gt;스프링 자체의 TaskSceduler 추상화: 스프링3에서 도입된 TaskScheduler 추상화는 스케줄링하는 간단한 방법을 제공하며 태스크 스케줄링에 필요한 일반적인 요구사항을 대부분 지원합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. 스케줄러(태스크 실행)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트리거의 정보를 기반으로 태스크를 실행합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT</category>
      <category>scheduler</category>
      <category>task</category>
      <category>task scheduler</category>
      <category>스케줄러</category>
      <category>스프링 태스크</category>
      <category>스프링 태스크 스케줄러</category>
      <category>태스크</category>
      <category>태스크 스케줄러</category>
      <category>태스크 스케쥴러</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/38</guid>
      <comments>https://deseul.tistory.com/entry/OS-%ED%83%9C%EC%8A%A4%ED%81%AC-%EC%8A%A4%EC%BC%80%EC%A4%84%EB%A7%81Task-Scheduling%EC%9D%B4%EB%9E%80#entry38comment</comments>
      <pubDate>Sun, 26 Dec 2021 14:11:32 +0900</pubDate>
    </item>
    <item>
      <title>[DB] 트랜잭션(Transaction)이란?</title>
      <link>https://deseul.tistory.com/entry/DB-%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98Transaction%EC%9D%B4%EB%9E%80</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;트랜잭션이란 쪼갤 수 없는 업무 처리의 최소 단위를 말합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;거래내역이라고도 합니다.&amp;nbsp; 1초당 처리할 수 있는 트랜잭션의 개수를 TPS라고 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;트랜잭션은 신뢰할 수 있는 엔터프라이즈 애플리케이션을 구축하는 데 가장 중요한 부분 중 하나입니다. 가장 일반적인 트랜잭션 타입은 데이터베이스 작업입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적인 데이터 베이스 수정 작업을 살펴보면 먼저 데이터베이스 트랜잭션을 시작하고 데이터를 수정한 후 데이터베이스 수정 성공 여부에 따라 트랜잭션을 커밋하거나 롤백합니다. 하지만 트랜잭션이 애플리케이션의 요구사항과 애플리케이션이 접근해야 하는 백엔드 리소스(예를 들어 RDBMS, 메시지 기반 미들웨어, ERP 시스템 등)에 따라 트랜잭션 관리가 훨씬 더 복잡해지는 경우도 많습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;트랜잭션 타입&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 로컬 트랜잭션&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;관리하기 쉽고, 애플리케이션의 모든 처리가 하나의 트랜잭션의 자원만 사용해 이루어진다면 로컬 트랜잭션으로 충분&lt;/li&gt;
&lt;li&gt;많은 트랜잭션이 되면 관리 코드를 작성해야 하며, 향후에 다중 트랜잭션 리소스에 걸치도록 확장해야 한다면 로컬 트랜잭션 관리 코드를 제거하고 글로벌 트랜잭션을 사용하도록 다시 개발 해야함.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 글로벌 트랜잭션&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;보통 사용하는 방법, 자바에서는 JTA로 글로벌 트랜잭션 구현&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;433&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8gMcf/btrob7bS493/Y7fSMzH7CoxWtjZevCO5g1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8gMcf/btrob7bS493/Y7fSMzH7CoxWtjZevCO5g1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8gMcf/btrob7bS493/Y7fSMzH7CoxWtjZevCO5g1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8gMcf%2Fbtrob7bS493%2FY7fSMzH7CoxWtjZevCO5g1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;850&quot; height=&quot;433&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;433&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;JTA 호환 트랜잭션 매니저로 각 분산 자원에 설치된 리소스 매니저를 이용해 다중 트랜잭션 리소스에 접근.&lt;/li&gt;
&lt;li&gt;각 리소스 매니저와 통신은 XA 프로토콜(분산 트랜잭션을 정의하는 개방형 표준)을 사용합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;백엔드 리소스&lt;/li&gt;
&lt;li&gt;리소스 매니저
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;백엔드 리소스 공급 업체가 제공하며 백엔드 리소스를 접근하는 데 사용됩니다&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&amp;nbsp;JTA (Java Transaction API) 트랜잭션 매니저
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;트랜잭션에 참여하는 모든 리소스 매니저의 트랜잭션 상태를 관리, 조정, 동기화를 담당합니다.&lt;/li&gt;
&lt;li&gt;분산 트랜잭션 처리에 널리 사용되는 공개 표준인 XA 프로토콜이 사용됩니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;&amp;nbsp;애플리케이션
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;애플리케이션이 실행되는 기본 컨테이너 또는 애플리케이션이 실행되는 스프링 프레임워크가 트랜잭션을 관리합니다.&lt;/li&gt;
&lt;li&gt;JEE에서 정의한 다양한 표준으로 기본 백엔드 리소스에 접근합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;트랜잭션 프로퍼티&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ACID 프로퍼티 (원자성(atomicity), 일관성(consistency), 격리(isolation), 내구성(durability))를 갖고 있으며, 트랜잭션 리소스는 이러한 관점으로 트랜잭션을 관리해야합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자는 프로퍼티를 제어할 수 없습니다. 하지만 사용자는 트랜잭션 전파(propagation)와 시간 초과(timeout)를 제어할 수 있을 뿐 아니라, 트랜잭션을 읽기 전용(read-only)으로 구성하고 격리수준을 지정할 수도 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 스프링 : TransactionDefinition 인터페이스&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;트랜잭션 관리 시 고려사항&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;선언적 방식을 권장하며 가능한 코드 내에서 트랜잭션 관리 로직을 구현하지 말아야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;애플리케이션에서 트랜잭션 제어 로직을 코딩할 생긴다면 거의 대부분은 설계를 잘못한 것이므로 관리가 가능하게 로직을 리펙토링하고 트랜잭션 요구사항을 선언적으로 정의해야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;[출처:전문가를 위한 스프링 5]&lt;/span&gt;&lt;/p&gt;</description>
      <category>IT/DB</category>
      <category>db</category>
      <category>DB Transaction</category>
      <category>DB 트랜잭션</category>
      <category>transaction</category>
      <category>디비 트랜잭션</category>
      <category>트랜잭션</category>
      <category>트랜잭션 이란</category>
      <category>트랜잭션 이란?</category>
      <category>트랜잭션이란</category>
      <category>트랜잭션이란?</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/37</guid>
      <comments>https://deseul.tistory.com/entry/DB-%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98Transaction%EC%9D%B4%EB%9E%80#entry37comment</comments>
      <pubDate>Sat, 18 Dec 2021 15:05:58 +0900</pubDate>
    </item>
    <item>
      <title>[Spring] JDK 프록시와 CGLIB 기반 프록시(proxy)</title>
      <link>https://deseul.tistory.com/entry/Spring-JDK-%ED%94%84%EB%A1%9D%EC%8B%9C%EC%99%80-CGLIB-%EA%B8%B0%EB%B0%98-%ED%94%84%EB%A1%9D%EC%8B%9Cproxy</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;&lt;u&gt;프록시란?&lt;/u&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;proxy라는 단어의 뜻은 대리, 위임의 뜻입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Spring에서의 프록시는 메서드 호출을 인터셉트하고 필요한 경우 특정 메서드에 적용되는 어드바이스 체인을 실행하는 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #c0d1e7;&quot;&gt;스프링에서 프록시의 기능&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어드바이스의 관리와 호출은 대부분 프록시와 독립적이며 스프링 AOP 프레임 워크가 관리합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 프록시는 모든 메서드 호출을 인터셉트하고 필요에 따라 어드바이스를 적용할 수 있도록 AOP 프레임 워크에 전달해야 할 책임이 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프록시는 추상 클래스인 &lt;b&gt;AopContext&lt;/b&gt;클래스로 자신을 외부로 노출하도록 구성해 프록시를 가져오고 대상 객체의 프록시를 사용해 어드바이스가 적용된 메서드를 호출 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프록시는 &lt;b&gt;ProxyFactory.setExposeProxy()&lt;/b&gt;를 통해 이 옵션을 활성화하면 프록시 클래스가 적절하게 노출되게 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 프록시 클래스는 기본적으로 Advised 인터페이스를 구현합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 인터페이스를 사용하면 프록시가 생성된 후 어드바이스 체인을 변경할 수 있습니다. 또한 프록시는 프록시가 적용된 대상을 반환하는 모든 메서드가 실제로 대상이 아닌 프록시를 반환해야 합니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #456771;&quot;&gt;JDK 프록시&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스프링에서 사용할수 있는 가장 기본적인 프록시 타입.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특정 메서드 호출을 처리하는 방식에 대한 모든 결정이 런타임에 메서드가 호출 될때마다 이뤄집니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클래스가 아닌 인터페이스 프록시만을 생성 가능. 프록시를 적용하는 모든 객체는 적어도 하나의 인터페이스를 구현해야 하고, 결과로 생성되는 프록시는 그 인터페이스를 구현하는 객체가 됩니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img.png&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;464&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bykiwD/btrl56E0Iw1/8czwNe4jKgnl80E7eQpP91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bykiwD/btrl56E0Iw1/8czwNe4jKgnl80E7eQpP91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bykiwD/btrl56E0Iw1/8czwNe4jKgnl80E7eQpP91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbykiwD%2Fbtrl56E0Iw1%2F8czwNe4jKgnl80E7eQpP91%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;580&quot; height=&quot;464&quot; data-filename=&quot;img.png&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;464&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JDK 프록시를 사용하면 JVM이 모든 메서드 호출을 인터셉트해 프로기의 invoke() 메서드를 라우트합니다. 그런 다음에 invoke() 메서드는 호출된 어드바이스가 적용된 메서드인지(포인트컷에서 정의한 규칙에 따라) 결정하고 어드바이스 적용대상이라면 어드바이스 체인을 호출한 후에 리플렉션을 사용해 메서드 자체를 호출합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 외에도 invoke() 메서드는 이전 절에서 설명한 모든 로직을 수행합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 프로기사 리플렉션을 통해 어드바이스가 적용되지 않은 메서드를 호출하는 것 이외의 추가 처리를 하지 않지만, 메서드가 호출될 때마다 런타임 성능에 오버헤드를 발생시킵니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ProxyFactory가 JDK 프록시를 사용하게 하려면 ProxyFactory 클래스가 간접적으로 상속하는 AdvisedSupport 클래스에서 setInterfaces()를 사용해 프록시 인터페이스 목롤을 지정하면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #456771;&quot;&gt;CGLIB 프록시&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;각 프록시에 대해 동적으로 새 클래스에 대한 바이트코드를 생성하고 이미 생성된 클래스를 사용할 수 있으면 재사용 합니다. 이때 생성되는 프록시 타입은 대상 객체 클래스의 하위 클래스가 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;561&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXaBXK/btrl6K9y5yq/fevzIJxj0LyQaN0f2rJyrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXaBXK/btrl6K9y5yq/fevzIJxj0LyQaN0f2rJyrk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXaBXK/btrl6K9y5yq/fevzIJxj0LyQaN0f2rJyrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXaBXK%2Fbtrl6K9y5yq%2FfevzIJxj0LyQaN0f2rJyrk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;580&quot; height=&quot;561&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;561&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CGLIB 프록시는 실제 바이트코드를 생성하기 때문에 메서드를 더 유연하게 처리할 수 있습니다. 예를 들어 CGLIB 프록시는 어드바이스가 적용되지 않은 메서드를 직접 호출하여 적절한 바이트코드를 생성해 프록시로 인한 성능 오버헤드를 줄입니다. 또한 CGLIB 프록시는 메서드가 this를 반환할 수 있는지 판단합니다. this를 반환할 수 없을 때에는 메서드를 직접 호출할 수 있게 하여 런타임 성능 오버헤드를 줄입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CGLIB 프록시는 고정 어드바이스 체인도 처리합니다. 고정 어드바이스 체인은 프록시가 생성된 후 변경되지 않는 것을 보장하는 체인입니다. 기본적으로 프록시를 생성한 후에도 어드바이저와 어드바이스를 변경할 수 있습니다. 물론 이기능을 거의 필요하지 않은 기능이기는 합니다. CGLIB 프록시는 고정 어드바이스 체인을 특정 방식으로 처리해 어드바이스 체인을 실행하는 런타임 성능 오버헤드를 줄입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;[출처 : 전문가를 위한 스프링5]&lt;/span&gt;&lt;/p&gt;</description>
      <category>IT/JAVA</category>
      <category>CGLIB 프록시</category>
      <category>JDK 프록시</category>
      <category>proxy</category>
      <category>ProxyClass</category>
      <category>Proxy란</category>
      <category>Spring</category>
      <category>Spring proxy</category>
      <category>스프링 프록시</category>
      <category>프록시</category>
      <category>프록시란</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/36</guid>
      <comments>https://deseul.tistory.com/entry/Spring-JDK-%ED%94%84%EB%A1%9D%EC%8B%9C%EC%99%80-CGLIB-%EA%B8%B0%EB%B0%98-%ED%94%84%EB%A1%9D%EC%8B%9Cproxy#entry36comment</comments>
      <pubDate>Thu, 25 Nov 2021 09:56:23 +0900</pubDate>
    </item>
    <item>
      <title>[Spring] AspectJ란?</title>
      <link>https://deseul.tistory.com/entry/Spring-AspectJ%EB%9E%80</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;AspectJ&lt;/b&gt;는 PARC에서 개발한 자바 프로그래밍 언어용 관점 지향 프로그래밍 (AOP) 확장 기능입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;u&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;&lt;b&gt;AspectJ&lt;/b&gt;이 생기게 된 이유&lt;/span&gt;&lt;/u&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt; 전통적인 프로그래밍 방법론으로는 잘 포착되지 않는 문제나 우려가 있다는 것을 깨달았기 때문입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt; 응용 프로그램에서 보안 문제가 있었습니다. 본질적으로, 보안은 애플리케이션의 모듈화의 많은 단위들에 영향을 끼치고 있습니다. 또한 보안은 애플리케이션이 진화함에 따라 모든 추가에 균일하게 적용되어야 합니다. 그리고 적용되는 보안이 바뀌거나 발전할 수 있습니다. 보안 정책과 같은 우려를 규율화된 방식으로 포착하는 것은 전통적인 프로그래밍 언어에서는 어렵고 오류가 발생하기 쉽습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;보안과 같은 우려는 모듈화의 자연스러운 단위를 가로막습니다. 객체 지향 프로그래밍 언어에서 모듈화의 자연스러운 단위는 클래스입니다. 그러나 객체 지향 프로그래밍 언어에서 횡단 관심사는 클래스로 쉽게 전환되지 않습니다. 왜냐하면 클래스는 클래스로 나누어지기 때문입니다. 재사용할 수도 없고, 정제하거나 상속할 수도 없고, 원칙이 없는 방식으로 프로그램 전체에 퍼져 있습니다. 간단히 말해서, 함께 작업하기 어렵습니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;관점 지향 프로그래밍은 객체 지향 프로그래밍이 공통 관심사를 모듈화하는 방법인 것처럼 크로스 컷팅 관심사를 모듈화하는 방법이다. AspectJ는 자바를 위한 관점 지향 프로그래밍의 구현체입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;Pointcuts&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;AspectJ에서 포인트 컷은 프로그램 흐름의 특정 지점을 선택합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1637717521543&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;call(void Point.setX(int))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;void Point.setX(int)를 갖는 메서드, 즉 단일 int 매개 변수를 갖는 Point의 void setX 메서드를 호출하는 각 join point를선택합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1637717538695&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;call(void Point.setX(int)) ||
call(void Point.setY(int))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;setX에 대한 호출 또는 setY에 대한 호출인 각 조인 포인트를 선택합니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;Pointcuts은 다양한 유형의 결합점을 식별할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1637717962865&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;call(void FigureElement.setXY(int,int)) ||
call(void Point.setX(int))              ||
call(void Point.setY(int))              ||
call(void Line.setP1(Point))            ||
call(void Line.setP2(Point));&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;다섯 가지 방법 중 하나에 대한 호출인 각 조인 포인트를 선택합니다(그 중 첫 번째 방법은 인터페이스 방법입니다.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;아래 예제에서 이 &lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;Pointcuts&lt;/span&gt;은 요소가 이동할 때 모든 결합지점을 잡을 수 있습니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;이 방법은 이러한 횡단 관심사를 지정하는 데 유용한 방법이지만, 너무 접근하기 쉽습니다 .&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt; 그래서 AspectJ는 프로그래머들이 &lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;Pointcuts&lt;/span&gt; 형태로 자신의 명명된 &lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;Pointcuts&lt;/span&gt;을 정의할 수 있게 해줍니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;다음은 새로운 명명된 포인트컷을 선언합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1637717562858&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pointcut move():
    call(void FigureElement.setXY(int,int)) ||
    call(void Point.setX(int))              ||
    call(void Point.setY(int))              ||
    call(void Line.setP1(Point))            ||
    call(void Line.setP2(Point));&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;이 정의가 보일 때마다 프로그래머는 이 복잡한 &lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;Pointcuts&lt;/span&gt;을 잡기 위해 move()를 사용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;gauss&quot;&gt;&lt;code&gt;call(void Figure.make*(..))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;메서드의 매개변수에 관계없이 이름이 &quot;make&quot;로 시작하는 그림에서 정의된 공백 메서드에 대한 호출인 각 조인 포인트를 선택합니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;factory 메소드 makePoint와 makeLine에 대한 호출을 선택합니다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1637717588993&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;call(public * Figure.* (..))&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Figure의 public 메서드에 대한 각 호출을 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;위 방법이 AspectJ가 지원하는 유일한 속성은 아닙니다. 또 다른 포인트 컷인 cflow는 결합점이 다른 결합점의 동적 컨텍스트에서 발생하는지 여부에 따라 결합점을 식별합니다.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1637717603717&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cflow(move())&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;위에서 정의한 명명된 포인트 컷을 이동으로 선택한 조인 포인트의 동적 컨텍스트에서 발생하는 각 조인 포인트를 선택합니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;따라서 이동 메서드가 호출되는 시점과 반환되는 시점 사이에 발생하는 각 조인 지점을 선택합니다(일반적으로 또는 예외를 발생).&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #9d9d9d;&quot;&gt;[출처 : &lt;a style=&quot;color: #9d9d9d;&quot; href=&quot;https://web.archive.org/web/20170810042238/http://www.eclipse.org/aspectj/doc/released/progguide/starting-aspectj.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://web.archive.org/web/20170810042238/http://www.eclipse.org/aspectj/doc/released/progguide/starting-aspectj.html&lt;/a&gt;]&lt;/span&gt;&lt;/p&gt;</description>
      <category>IT/JAVA</category>
      <category>@AspectJ</category>
      <category>AOP</category>
      <category>Aspect</category>
      <category>aspectj</category>
      <category>Spring</category>
      <category>관점 지향형 프로그래밍</category>
      <category>관점지향프로그래밍</category>
      <category>관점지향형</category>
      <category>관점지향형 언어</category>
      <category>스프링</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/35</guid>
      <comments>https://deseul.tistory.com/entry/Spring-AspectJ%EB%9E%80#entry35comment</comments>
      <pubDate>Wed, 24 Nov 2021 10:59:58 +0900</pubDate>
    </item>
    <item>
      <title>[Spring] 스프링 IoC(Inversion of Control)에 대해</title>
      <link>https://deseul.tistory.com/entry/Spring-%EC%8A%A4%ED%94%84%EB%A7%81-IoCInversion-of-Control%EC%97%90-%EB%8C%80%ED%95%B4</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;1.1 스프링 IoC container 및 Bean 소개&lt;/span&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;&lt;b&gt;Inversion of Control(IoC)&lt;/b&gt;의 스프링 프레임워크 구현에 대해 설명합니다. IoC는 의존성 주입(DI)이라고도 합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;이것은 객체가 생성자 인수, 팩토리 메소드에 대한 인수, 팩토리 메소드에서 생성되거나 반환된 후에 객체 인스턴스에 설정된 속성을 통해서만 종속성을 정의하는 프로세스입니다. &lt;/span&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;그런 다음 &lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;container&lt;/span&gt;는 Bean을 생성할 때 이러한 의존성을 주입합니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;이 과정은 근본적으로 클래스 또는 서비스 로케이터 패턴과 같은 메커니즘을 사용하여 종속성의 인스턴스화 또는 위치를 제어하는 &lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;Bean&lt;/span&gt;자체의 역(즉, 제어의 역)이다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;org.springframework.bean과 org.springframework.context 패키지는 Spring Framework의 IoC 컨테이너의 기본입니다. BeanFactory 인터페이스는 모든 유형의 개체를 관리할 수 있는 고급 구성 메커니즘을 제공합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&lt;b&gt;ApplicationContext&lt;/b&gt;는 BeanFactory의 하위 인터페이스입니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;Spring의 AOP 기능과의 손쉬운 통합&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;메시지 리소스 처리(국제화에 사용)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #7e98b1;&quot;&gt;이벤트 게시&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;웹 응용 프로그램에서 사용하기 위한 WebApplicationContext와 같은 응용 프로그램 계층별 컨텍스트입니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;즉, BeanFactory는 구성 프레임워크와 기본 기능을 제공하며, ApplicationContext는 기업별 기능을 더 추가합니다. ApplicationContext는 BeanFactory의 완전한 상위 집합이며 이 장에서는 Spring의 IoC 컨테이너에 대한 설명에만 사용됩니다. ApplicationContext 대신 BeanFactory를 사용하는 방법에 대한 자세한 내용은 BeanFactory를 참조하십시오.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;Spring에 애플리케이션의 뼈대를 형성하고 스프링 IoC 컨테이너에 의해 관리되는 개체를 &lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;Bean&lt;/span&gt;이라고 합니다. &lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;Bean&lt;/span&gt;은 스프링 IoC 컨테이너에 의해 인스턴스화, 조립 및 관리되는 객체입니다. 그렇지 않으면, &lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;Bean&lt;/span&gt;은 어플리케이션에 있는 많은 객체들 중 하나일 뿐입니다. &lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;Bean&lt;/span&gt;과 &lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;Bean&lt;/span&gt; 사이의 의존성은 컨테이너에 의해 사용되는 구성 메타데이터에 반영됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1.2 &lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;컨테이너 개요&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;org.springframework.context.&lt;/span&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;ApplicationContext 인터페이스는 Spring IoC 컨테이너를 나타내며 &lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;Bean&lt;/span&gt;의 인스턴스화, 구성 및 조립을 담당합니다. 컨테이너는 구성 메타데이터를 읽음으로써 인스턴스화, 구성 및 조립할 개체에 대한 지침을 가져옵니다. 구성 메타데이터는 XML, Java 주석 또는 Java 코드로 표시됩니다. 애플리케이션을 구성하는 개체와 이러한 개체 간의 풍부한 상호 종속성을 표현할 수 있습니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;ApplicationContext&lt;/span&gt;&amp;nbsp;인터페이스의 여러 구현체가 스프링과 함께 제공됩니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;독립 실행형 응용 프로그램에서는 ClassPathXmlApplicationContext 또는 FileSystemXmlApplicationContext의 인스턴스를 만드는 것이 일반적입니다. XML은 구성 메타데이터를 정의하는 기존 형식이었지만, 추가 메타데이터 형식을 선언적으로 지원하기 위해 소량의 XML 구성을 제공하여 Java 주석이나 코드를 메타데이터 형식으로 사용하도록 컨테이너에 지시할 수 있습니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;대부분의 애플리케이션 시나리오에서 하나 이상의 Spring IoC 컨테이너 인스턴스를 인스턴스화하는 데 명시적 사용자 코드가 필요하지 않습니다. 예를 들어 웹 애플리케이션 시나리오에서 애플리케이션의 web.xml 파일에 있는 상용어 웹 설명자 XML의 간단한 8줄이면 충분합니다. Spring Tools for Eclipse(이클립스 지원 개발 환경)를 사용할 경우 마우스 클릭 몇 번 또는 키 입력만으로 이 상용구 구성을 쉽게 만들 수 있습니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #fdfdfd; color: #000000;&quot;&gt;다음 다이어그램은 스프링 작동 방식을 개괄적으로 보여줍니다. 응용 프로그램 클래스는 구성 메타데이터와 결합되므로 ApplicationContext가 생성되고 초기화되면 완전히 구성되고 실행 가능한 시스템 또는 응용 프로그램을 갖게 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;container-magic.png&quot; data-origin-width=&quot;498&quot; data-origin-height=&quot;296&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sqNjW/btrlxgPmI32/gvbpFBtrai1pikllE44Eq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sqNjW/btrlxgPmI32/gvbpFBtrai1pikllE44Eq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sqNjW/btrlxgPmI32/gvbpFBtrai1pikllE44Eq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsqNjW%2FbtrlxgPmI32%2FgvbpFBtrai1pikllE44Eq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;498&quot; height=&quot;296&quot; data-filename=&quot;container-magic.png&quot; data-origin-width=&quot;498&quot; data-origin-height=&quot;296&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT</category>
      <category>application context</category>
      <category>inversion of control</category>
      <category>ioc</category>
      <category>IoC 컨테이너</category>
      <category>Spring</category>
      <category>spring ioc</category>
      <category>스프링</category>
      <category>스프링 IoC</category>
      <category>아이오씨</category>
      <category>제어의 역전</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/34</guid>
      <comments>https://deseul.tistory.com/entry/Spring-%EC%8A%A4%ED%94%84%EB%A7%81-IoCInversion-of-Control%EC%97%90-%EB%8C%80%ED%95%B4#entry34comment</comments>
      <pubDate>Thu, 18 Nov 2021 21:05:05 +0900</pubDate>
    </item>
    <item>
      <title>[JS] Array.from()이란? 쪼개서 배열로 만들고 싶을 때 !  </title>
      <link>https://deseul.tistory.com/entry/JS-Arrayfrom%EC%9D%B4%EB%9E%80-%EC%AA%BC%EA%B0%9C%EC%84%9C-%EB%B0%B0%EC%97%B4%EB%A1%9C-%EB%A7%8C%EB%93%A4%EA%B3%A0-%EC%8B%B6%EC%9D%84-%EB%95%8C-%F0%9F%91%8C</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Array.from()&lt;/b&gt; 메서드는 유사 배열 객체(arrat-like object)나 반복 가능한 객체(literable object)를 얕게 복사해 새로운 Array 객체를 만듭니다.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동물원이라는 String객체를 쪼갤 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터를 조작하다보면 기존 객체를 이용해 새로운 배열을 만들어야 할 때가 있는데요. 그러할 때 유용한 메서드 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1.&lt;b&gt; String&lt;/b&gt;에서 배열 만들기.&lt;/h4&gt;
&lt;pre id=&quot;code_1635380312699&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Array.from('동물원');
// [&quot;동&quot;, &quot;물&quot;, &quot;원&quot;]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. &lt;b&gt;Set&lt;/b&gt;에서 배열 만들기&lt;/h4&gt;
&lt;pre id=&quot;code_1635380331500&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const s = new Set(['foo', window]);
Array.from(s);
// [&quot;foo&quot;, window]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. &lt;b&gt;Map&lt;/b&gt;에서 배열 만들기&lt;/h4&gt;
&lt;pre id=&quot;code_1635380478467&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const m = new Map([[1, 2], [2, 4], [4, 8]]);
Array.from(m);
// [[1, 2], [2, 4], [4, 8]]

const mapper = new Map([['1', 'a'], ['2', 'b']]);
Array.from(mapper.values());
// ['a', 'b'];

Array.from(mapper.keys());
// ['1', '2'];&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4. Array.from과 &lt;b&gt;화살표 함수&lt;/b&gt; 사용하기&lt;/h4&gt;
&lt;pre id=&quot;code_1635380591341&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// Using an arrow function as the map function to
// manipulate the elements
Array.from([1, 2, 3], x =&amp;gt; x + x);
// [2, 4, 6]

// Generate a sequence of numbers
// Since the array is initialized with `undefined` on each position,
// the value of `v` below will be `undefined`
Array.from({length: 5}, (v, i) =&amp;gt; i);
// [0, 1, 2, 3, 4]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;거의 모든 웹브라우저와 호환이 되지만, IE는 되지 않습니다.&lt;/p&gt;</description>
      <category>IT/JavaScript</category>
      <category>array</category>
      <category>Array.from()</category>
      <category>from</category>
      <category>from()</category>
      <category>js</category>
      <category>js 배열</category>
      <category>배열 쪼개기</category>
      <category>베열</category>
      <category>새로운 배열 만들기</category>
      <category>어레이</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/33</guid>
      <comments>https://deseul.tistory.com/entry/JS-Arrayfrom%EC%9D%B4%EB%9E%80-%EC%AA%BC%EA%B0%9C%EC%84%9C-%EB%B0%B0%EC%97%B4%EB%A1%9C-%EB%A7%8C%EB%93%A4%EA%B3%A0-%EC%8B%B6%EC%9D%84-%EB%95%8C-%F0%9F%91%8C#entry33comment</comments>
      <pubDate>Thu, 28 Oct 2021 09:24:58 +0900</pubDate>
    </item>
    <item>
      <title>싱고니움 잔치 ❤ (당근 마켓 후기)</title>
      <link>https://deseul.tistory.com/entry/%EC%83%88%EB%A1%9C%EC%9A%B4-%EC%8B%9D%EB%AC%BC-%EA%B3%B5%EA%B0%84</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;마지막 식물 쇼핑이란 말이 무색하게도...&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;엄청난 충동을 이기지 못하고&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;귀여운 식물들을 더 들였다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이번에 당근을 하면서 귀여운 식물들을 들였는데,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;엄청나게 싸다고는 못하겠지만 많은 서비스와 귀여운 유묘들을 얻을 수 있는 당근 마켓은&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;식물 집사들에게는 천국인 것 같다..&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그래서 이번 당근 마켓 수익은 귀여운 싱고니움 6종이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;브론즈 마리아, 네온, 스트로베리, 밀크 컨페티, 바틱, 크리스마스 트라이 컬러의 유묘들을 얻었다.^_^&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;무늬랑 핑크, 핑크 스팟 싱고니움을 가진 나에게 새로운 싱고니움들이 잔뜩 생겼다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;1004&quot; data-filename=&quot;blob&quot; width=&quot;285&quot; height=&quot;298&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3JbPO/btrher2IURy/gEn36bTrcwIOOhyrNzoePk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3JbPO/btrher2IURy/gEn36bTrcwIOOhyrNzoePk/img.png&quot; data-alt=&quot;호다닥 가지고 집가는중&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3JbPO/btrher2IURy/gEn36bTrcwIOOhyrNzoePk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3JbPO%2Fbtrher2IURy%2FgEn36bTrcwIOOhyrNzoePk%2Fimg.png&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;1004&quot; data-filename=&quot;blob&quot; width=&quot;285&quot; height=&quot;298&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;호다닥 가지고 집가는중&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;아마 시간은 1~2년은 잡아야 풍성해질 것 같긴하지만...&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;일단 싸게(만이천원) 얻은 것 만으로도 만족스럽다.. 귀여워... 그리고 서비스로 레드스팟 싱고니움 유묘와&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;커다란 동그란 잎의 스킨 답서스를 얻었다.&amp;nbsp; ㅎㅎ&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;잘&amp;nbsp; ~ 키워봐야겠다. 스킨답서스는 본가에 두고 다른 싱고니움 친구들을 데려왔다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;레드스팟, 브론즈, 네온, 스트로베리 게또 ~!&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oh1j6/btrhn1Vu1zg/AdAnSXikZG0kYJtcoybrfK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oh1j6/btrhn1Vu1zg/AdAnSXikZG0kYJtcoybrfK/img.jpg&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;1280&quot; data-filename=&quot;KakaoTalk_20211010_192522645_01.jpg&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oh1j6/btrhn1Vu1zg/AdAnSXikZG0kYJtcoybrfK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Foh1j6%2Fbtrhn1Vu1zg%2FAdAnSXikZG0kYJtcoybrfK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;960&quot; height=&quot;1280&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TlusP/btrhgltXA7U/mewDJHSFYrSfMrmyhUuKpk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TlusP/btrhgltXA7U/mewDJHSFYrSfMrmyhUuKpk/img.jpg&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;1280&quot; data-filename=&quot;KakaoTalk_20211010_192522645.jpg&quot; style=&quot;width: 49.4186%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TlusP/btrhgltXA7U/mewDJHSFYrSfMrmyhUuKpk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTlusP%2FbtrhgltXA7U%2FmewDJHSFYrSfMrmyhUuKpk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;960&quot; height=&quot;1280&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;무럭무럭 자라렴 싱고니움 6종 &amp;gt; &amp;lt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;내일은.. 필로덴드론 글로리오숨을 데려오기로 했다..&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;다음 당근 후기로 오겠따..&lt;/p&gt;</description>
      <category>기록/식물</category>
      <category>네온 싱고니움</category>
      <category>당근 마켓 후기</category>
      <category>당근마켓</category>
      <category>밀크컨페티</category>
      <category>브론즈 싱고니움</category>
      <category>스트로베리 싱고니움</category>
      <category>식물 중독</category>
      <category>식물은 당근마켓</category>
      <category>싱고니움</category>
      <category>싱고니움 잔치</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/32</guid>
      <comments>https://deseul.tistory.com/entry/%EC%83%88%EB%A1%9C%EC%9A%B4-%EC%8B%9D%EB%AC%BC-%EA%B3%B5%EA%B0%84#entry32comment</comments>
      <pubDate>Sun, 10 Oct 2021 19:29:50 +0900</pubDate>
    </item>
    <item>
      <title>[정보처리기사] 애플리케이션 테스트</title>
      <link>https://deseul.tistory.com/entry/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%ED%85%8C%EC%8A%A4%ED%8A%B8-1</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 개발 단계에 따른 애플리케이션 테스트&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;소프트웨어의 개발 단계에 따라 단위 테스트, 통합 테스트, 스스템 테스트, 인수 테스트로 분류된다. 이렇게 분류도힌 것을 테스트 레벨이라고 한다.&lt;/li&gt;
&lt;li&gt;애플리케이션 테스트와 스프트웨어 개발 단계를 연결하여 표현한 것을 V-모델이라고 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소프트웨어 개발 단계&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 25px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style4&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 25px;&quot;&gt;
&lt;td style=&quot;width: 14.2857%; text-align: center; height: 25px;&quot;&gt;요구사항 (Requirement)&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%; text-align: center; height: 25px;&quot;&gt;분석 (Specification)&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%; text-align: center; height: 25px;&quot;&gt;설계 (Design)&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%; text-align: center; height: 25px;&quot;&gt;구현 (Code)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트 단계&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 10px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 10px;&quot;&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 10px;&quot;&gt;단위 테스트&lt;br /&gt;(Unit Testing)&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 10px;&quot;&gt;통합 테스트&lt;br /&gt;(Integration Testing)&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 10px;&quot;&gt;시스템 테스트&lt;br /&gt;(System Testing)&lt;/td&gt;
&lt;td style=&quot;width: 25%; text-align: center; height: 10px;&quot;&gt;인수 테스트&lt;br /&gt;(AcceptanceTesting)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 단위 테스트&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단위 테스트는 코딩 직후 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춰 테스트하는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인터페이스, 외부적 I/O, 자료 구조, 독립적 기초 경로, 오류 처리 경로, 경계 조건 등을 검사한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>기록/공부</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/31</guid>
      <comments>https://deseul.tistory.com/entry/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%ED%85%8C%EC%8A%A4%ED%8A%B8-1#entry31comment</comments>
      <pubDate>Sat, 2 Oct 2021 12:50:27 +0900</pubDate>
    </item>
    <item>
      <title>무늬 보스턴 고사리 (이하 무보고)</title>
      <link>https://deseul.tistory.com/entry/%EB%AC%B4%EB%8A%AC-%EB%B3%B4%EC%8A%A4%ED%84%B4-%EA%B3%A0%EC%82%AC%EB%A6%AC-%EC%9D%B4%ED%95%98-%EB%AC%B4%EB%B3%B4%EA%B3%A0</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;예전 식물에 대해서 아무것도 몰랐던 시절 보스턴 고사리가 너무 이뻐서 샀는데,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;뉴 보스턴 고사리를 사서 얇은 고사리였는데, 내가 못키워서 안 커지는줄 알았다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그 정도로 식물을 몰랐었는데..&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;하지만 지금은 식물광인.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그래서 보스턴 고사리를 들이기 위해 고민 중에 줄리 보타닉에서 &lt;b&gt;&quot;무늬&quot; 보스턴 고사리&lt;/b&gt;를 팔고 있다는 정보를 입수.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;SO, 바로 가격을 물어보고 바로 입금해서 질러버렸다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;무늬라고? 이건 못참지&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그리고 사진을 봤다. 무늬.. 너무 아름답잖아..&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;995&quot; data-filename=&quot;blob&quot; width=&quot;365&quot; height=&quot;771&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBN226/btrgC6jhfRU/3rt2IFb4K7A3fR0tuTYqak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBN226/btrgC6jhfRU/3rt2IFb4K7A3fR0tuTYqak/img.png&quot; data-alt=&quot;줄리보타닉의 인스타그램&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBN226/btrgC6jhfRU/3rt2IFb4K7A3fR0tuTYqak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBN226%2FbtrgC6jhfRU%2F3rt2IFb4K7A3fR0tuTYqak%2Fimg.png&quot; data-origin-width=&quot;606&quot; data-origin-height=&quot;995&quot; data-filename=&quot;blob&quot; width=&quot;365&quot; height=&quot;771&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;줄리보타닉의 인스타그램&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;카드 슬래쉬 ! 바로 결제해버렸다. 가격도 나름 합리적이야. 너어무 예뻐 !&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그리고 보스턴 고사리니까 잘 키울수 있을 것이라고 생각하며 택배를 기다리는데...&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이틀만에 배송이 왔다. 토요일에도 배송하는 우체국 택배 사랑해요.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;실물을 영접하였는데..&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bk6Lva/btrgA65TreQ/ArmS11W0HtevtLExdPNnkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bk6Lva/btrgA65TreQ/ArmS11W0HtevtLExdPNnkK/img.png&quot; data-origin-width=&quot;320&quot; data-origin-height=&quot;461&quot; data-filename=&quot;blob&quot; style=&quot;width: 30.9005%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bk6Lva/btrgA65TreQ/ArmS11W0HtevtLExdPNnkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbk6Lva%2FbtrgA65TreQ%2FArmS11W0HtevtLExdPNnkK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;320&quot; height=&quot;461&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5aNIA/btrgFTwXIJw/Xkfi1ASffpm2XUgJ3c2zVk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5aNIA/btrgFTwXIJw/Xkfi1ASffpm2XUgJ3c2zVk/img.jpg&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;1280&quot; data-filename=&quot;KakaoTalk_20211002_102544629_06.jpg&quot; style=&quot;width: 33.387%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5aNIA/btrgFTwXIJw/Xkfi1ASffpm2XUgJ3c2zVk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5aNIA%2FbtrgFTwXIJw%2FXkfi1ASffpm2XUgJ3c2zVk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;960&quot; height=&quot;1280&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KbDFS/btrgB5d5iEg/CnDrH6hhub4NHQPaKhTPGK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KbDFS/btrgB5d5iEg/CnDrH6hhub4NHQPaKhTPGK/img.jpg&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;1280&quot; data-filename=&quot;KakaoTalk_20211002_102544629_05.jpg&quot; style=&quot;width: 33.387%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KbDFS/btrgB5d5iEg/CnDrH6hhub4NHQPaKhTPGK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKbDFS%2FbtrgB5d5iEg%2FCnDrH6hhub4NHQPaKhTPGK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;960&quot; height=&quot;1280&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;택배상자 뜯는건 항상 즐거워&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;Bring Happiness Home.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;정말 행복을 나에게 가져온 너..&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;아름다워 무늬 보스턴 고사리&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;1280&quot; data-filename=&quot;KakaoTalk_20211002_102544629_03.jpg&quot; width=&quot;350&quot; height=&quot;467&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ylokv/btrgFTcEUtR/KUJboKyeVM1ot622Ee8b5K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ylokv/btrgFTcEUtR/KUJboKyeVM1ot622Ee8b5K/img.jpg&quot; data-alt=&quot;벌써 보이는걸? 가릴수 없어&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ylokv/btrgFTcEUtR/KUJboKyeVM1ot622Ee8b5K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYlokv%2FbtrgFTcEUtR%2FKUJboKyeVM1ot622Ee8b5K%2Fimg.jpg&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;1280&quot; data-filename=&quot;KakaoTalk_20211002_102544629_03.jpg&quot; width=&quot;350&quot; height=&quot;467&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;벌써 보이는걸? 가릴수 없어&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;포장도 잘 되어있어서 식물이 정말 안전하게 왔다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;하지만 그렇게 과하다는 생각없이 딱 선물 받는 느낌으로 배송이 와서 만족 ❤&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c0oqUW/btrgB4lXcDw/YFaPlIptQCKkqrh3hPdaBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c0oqUW/btrgB4lXcDw/YFaPlIptQCKkqrh3hPdaBk/img.png&quot; data-origin-width=&quot;771&quot; data-origin-height=&quot;792&quot; data-filename=&quot;blob&quot; width=&quot;526&quot; height=&quot;540&quot; style=&quot;width: 48.7546%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c0oqUW/btrgB4lXcDw/YFaPlIptQCKkqrh3hPdaBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc0oqUW%2FbtrgB4lXcDw%2FYFaPlIptQCKkqrh3hPdaBk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;771&quot; height=&quot;792&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7C174/btrgA56XaRI/9JCUgqLjxCSnbzkuF4UKtk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7C174/btrgA56XaRI/9JCUgqLjxCSnbzkuF4UKtk/img.png&quot; data-origin-width=&quot;956&quot; data-origin-height=&quot;956&quot; data-filename=&quot;blob&quot; style=&quot;width: 50.0826%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7C174/btrgA56XaRI/9JCUgqLjxCSnbzkuF4UKtk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7C174%2FbtrgA56XaRI%2F9JCUgqLjxCSnbzkuF4UKtk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;956&quot; height=&quot;956&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;헉.. 헉.. 무늬 뭐야? 너무 예뻐 수형도 아름답고 생각보다 너어무 건강한&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;유묘급이긴한데 너무 아름다워서 감탄이 끊이질 않는다,.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;지금도 옆에서 계속 보고 있는데 나의 식멍 생활에 더더욱 활기를 줄것 같은 친구이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;952&quot; data-origin-height=&quot;1012&quot; data-filename=&quot;blob&quot; width=&quot;618&quot; height=&quot;824&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkPJN5/btrgABFkDWd/dYtyzY1qfngC7PedoHZhA1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkPJN5/btrgABFkDWd/dYtyzY1qfngC7PedoHZhA1/img.png&quot; data-alt=&quot;무늬 보스턴 고사리&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkPJN5/btrgABFkDWd/dYtyzY1qfngC7PedoHZhA1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkPJN5%2FbtrgABFkDWd%2FdYtyzY1qfngC7PedoHZhA1%2Fimg.png&quot; data-origin-width=&quot;952&quot; data-origin-height=&quot;1012&quot; data-filename=&quot;blob&quot; width=&quot;618&quot; height=&quot;824&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;무늬 보스턴 고사리&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;무늬 아주 자기 주장 확실하고&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;아름다운 무늬를 보며 언넝 대품을 만들어야 겠다고 생각했다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;고사리니까 플라스틱 화분에서 키워야겠다.&amp;nbsp; 아니면 유약분을 구해야지&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이렇게 대빵 설레는 마음을 아직도 가지며 이만 글을 줄인다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;너무 예뻐 근데..&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;분갈이 글도 적어야지 ~ !&lt;/p&gt;</description>
      <category>기록/식물</category>
      <category>고사리</category>
      <category>고사리 키우기</category>
      <category>무늬 보스턴 고사리</category>
      <category>무늬보스턴고사리</category>
      <category>무보고</category>
      <category>보스턴 고사리</category>
      <category>보스턴고사리</category>
      <category>식물</category>
      <category>식물 키우기</category>
      <category>희귀식물</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/30</guid>
      <comments>https://deseul.tistory.com/entry/%EB%AC%B4%EB%8A%AC-%EB%B3%B4%EC%8A%A4%ED%84%B4-%EA%B3%A0%EC%82%AC%EB%A6%AC-%EC%9D%B4%ED%95%98-%EB%AC%B4%EB%B3%B4%EA%B3%A0#entry30comment</comments>
      <pubDate>Sat, 2 Oct 2021 10:48:46 +0900</pubDate>
    </item>
    <item>
      <title>[정보처리기사] 애플리케이션 테스트</title>
      <link>https://deseul.tistory.com/entry/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%ED%85%8C%EC%8A%A4%ED%8A%B8</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 화이트 박스 테스트(White Box Test)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;화이트박스 검사(White Box Test) 기법은 소프트웨어 내부 소스 코드를 테스트하는 기법이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내부 소스코드의 동작을 개발자가 추적 할 수 있기 때문에, 동작의 유효성 뿐만아니라 실행 되는 과정을 살펴봄으로써, 코드가 어떤경로로 실행되며, 불필요한 코드 혹은 테스트 되지 못한 부분을 살펴볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;화이트박스 테스트를 하는 부분은 대개 코드의 실행 경로를 확인해야 하기때문에 시중에 나와 있는 커버리지 분석도구를 많이 활용한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 화이트박스 테스트의 종류&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 100px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 23.8371%; height: 40px;&quot;&gt;기초 경로 검사&amp;nbsp;&lt;br /&gt;(Base Path Testing)&lt;/td&gt;
&lt;td style=&quot;width: 76.1629%; height: 40px;&quot;&gt;- 테스트 케이스 설계자가 절차적 설계의 논리적 복잡성을 츨정할 수 있게 해주는 테스트 기법&lt;br /&gt;- 대표적인 화이트 박스 테스트 기법&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 23.8371%; height: 20px;&quot;&gt;제어 구조 검사&lt;br /&gt;(Control Structure Testing)&lt;/td&gt;
&lt;td style=&quot;width: 76.1629%; height: 20px;&quot;&gt;- 조건 검사(Condition Testing) : 프로그램 모듈 내에 있는 논리적 조건을 테스트하는 테스트 케이스 설계기법&lt;br /&gt;- 루프검사(Loop Testing) : 프로그램의 반복(Loop) 구조에 초점을 맞춰 실시하는 테스트 케이스 설계 기법&lt;br /&gt;- 데이터 흐름 검사(Data Flow Testing) : 프로그램에서 변수의 정의와 변수 사용의 위치에&amp;nbsp; 초점을 맞춰 실시하는 테스트 케이스 설계 기법&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. 화이트박스 테스트의 검증 기준&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style4&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 21.8605%;&quot;&gt;문장 검증 기준&lt;br /&gt;(Statement Coverage)&lt;/td&gt;
&lt;td style=&quot;width: 78.1395%;&quot;&gt;소스 코드의 모든 구문이 한 번 이상 수행되도록 테스트 케이스를 설계함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 21.8605%;&quot;&gt;분기 검증 기준&lt;br /&gt;(Branch Coverage)&lt;/td&gt;
&lt;td style=&quot;width: 78.1395%;&quot;&gt;소스 코드의 모든 조건문이 한 번 이상 수행되도록 테스트 케이스를 설계함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 21.8605%;&quot;&gt;조건 검증 기준&lt;br /&gt;(Condition Coverage)&lt;/td&gt;
&lt;td style=&quot;width: 78.1395%;&quot;&gt;소스 코드의 모든 조건문에 대해 조건이 True인 경우와 False인 경우가 한 번 이상 수행되도록 테스트 케이스를 설계함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 21.8605%;&quot;&gt;분기/조건 기준&lt;br /&gt;(Branch/Condition&amp;nbsp;&lt;br /&gt;Coverage)&lt;/td&gt;
&lt;td style=&quot;width: 78.1395%;&quot;&gt;소스 코드의 모든 조건문과 각 조건문에 포함된 개별 조건식의 결과가 True인 겨우와 False인 경우가 한 번 이상 수행되도록 테스트 케이스를 설계함&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 블랙박스 테스트&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;블랙박스 테스트는 소프트웨어가 수행할 특정 기능을 알기 위해서 각 기능이 완정히 작동되는 것을 입증하는 테스트로, 기능테스트라고도 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자의 요구사항 명세를 보면서 테스트한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주로 구현된 기능을 테스트 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소프트웨어 인터페이스를 통해 실시된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 블랙박스 테스트의 종류&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 140px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 60px;&quot;&gt;
&lt;td style=&quot;width: 22.7907%; height: 60px;&quot;&gt;동치 분할 검사&lt;br /&gt;(Equivalence Partitioning Testing, 동치 클래스 분해)&lt;/td&gt;
&lt;td style=&quot;width: 77.2093%; height: 60px;&quot;&gt;- 프로그램의 입력 조건에 타당한 입력 자료와 타당하지않은 입력 자료의 개수를 균등하게 하여 테스트 케이스를 정하고, 해당 입력 자료에 맞는 결과가 출력되는지 확인하는 기법&lt;br /&gt;- 동등 분할 기법이라고도 함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 22.7907%; height: 20px;&quot;&gt;경계값 분석(Boundary &lt;br /&gt;Value Analysis)&lt;/td&gt;
&lt;td style=&quot;width: 77.2093%; height: 20px;&quot;&gt;입력 조건의 중간값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용하여 입력 조건의 경계값을 테스트 케이스로 선정하여 검사하는 기법&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 22.7907%; height: 20px;&quot;&gt;원인-효과 그래프 검사&lt;br /&gt;(Cause-Effect Graphing Testing)&lt;/td&gt;
&lt;td style=&quot;width: 77.2093%; height: 20px;&quot;&gt;입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 22.7907%; height: 20px;&quot;&gt;오류 예측 검사&lt;br /&gt;(Error Guessing)&lt;/td&gt;
&lt;td style=&quot;width: 77.2093%; height: 20px;&quot;&gt;과거의 경험이나 확인자의 감각으로 테스트하는 기법&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 22.7907%; height: 20px;&quot;&gt;비교 검사&lt;br /&gt;(Comparsion Testing)&lt;/td&gt;
&lt;td style=&quot;width: 77.2093%; height: 20px;&quot;&gt;여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과과 출력되는지 테스트하는 기법&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #dddddd;&quot;&gt;[출처 : 시나공 정보처리기사 실기]&lt;/span&gt;&lt;/p&gt;</description>
      <category>기록/공부</category>
      <category>개발 공부</category>
      <category>정보처리기사</category>
      <category>정보처리기사 공부</category>
      <category>정보처리기사 실기</category>
      <category>정보처리기사 자격증 공부</category>
      <category>정보처리기사 합격</category>
      <category>정처기</category>
      <category>정처기 공부</category>
      <category>정처기 실기</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/29</guid>
      <comments>https://deseul.tistory.com/entry/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC-%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98-%ED%85%8C%EC%8A%A4%ED%8A%B8#entry29comment</comments>
      <pubDate>Wed, 29 Sep 2021 21:25:18 +0900</pubDate>
    </item>
    <item>
      <title>[정보처리기사] 공동모듈</title>
      <link>https://deseul.tistory.com/entry/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC-%EA%B3%B5%EB%8F%99%EB%AA%A8%EB%93%88</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;공동모듈&lt;/b&gt;이란 여러 프로그램에서 공통으로 사용할 수 있는 모듈이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자주 사용되는 계산식이나 매번 필요한 사용자 인증과 같은 기능들이 공통 모듈로 구성될수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공통 모듈을 구현할 때에는 해당 기능을 명확히 이해할 수 있도록 명세 기법을 준수해야 한다.&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;공동 모듈 명세 기법&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 120px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;명세 기법&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 20px;&quot;&gt;내용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;정확성(Correctness)&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 20px;&quot;&gt;시스템 구현 시 해당 기능이 필요하다는 것을 알 수 있도록 정확히 작성함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;명확성(Clarity)&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 20px;&quot;&gt;해당 기능을 이해할 때 중의적으로 해석되지 않도록 명확하게 작성함.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;완전성(Comleteness)&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 20px;&quot;&gt;시스템 구현을 위해 필요한 모든 것을 기술함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;일관성(Consistency)&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 20px;&quot;&gt;공통 기능들 간 상호 충돌이 발생하지 않도록 작성함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20%; height: 20px;&quot;&gt;추적성(Traceablity)&lt;/td&gt;
&lt;td style=&quot;width: 80%; height: 20px;&quot;&gt;기능에 대한 요구사항의 출처, 관련 시스템 등의 관계를 파악할 수 있도록 작성함&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;재사용(Reuse)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;재사용은 이미 개발된 기능등을 새로운 시스템이나 기능개발에 사용하기 적합하도록 최적화하는 작업이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;새로 개발하는데 필요한 비용과 시간을 절약할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;누구나 이해할 수 있고 사용이 가능하도록 사용법을 공개해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style8&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 22.5581%;&quot;&gt;재사용 규모에 따른 분류&lt;/td&gt;
&lt;td style=&quot;width: 77.4419%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 22.5581%;&quot;&gt;함수와 객체&lt;/td&gt;
&lt;td style=&quot;width: 77.4419%;&quot;&gt;클래스나 메소드 단위의 소스코드를 재사용함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 22.5581%;&quot;&gt;컴포넌트&lt;/td&gt;
&lt;td style=&quot;width: 77.4419%;&quot;&gt;컴포넌트 자체에 대한 수정 없이 인터페이스를 통해 통신하는 방식으로 재사용함&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 22.5581%;&quot;&gt;애플리케이션&lt;/td&gt;
&lt;td style=&quot;width: 77.4419%;&quot;&gt;공통된 기능들을 제공하는 애플리케이션을 공유하는 방식으로 재사용함&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;효과적인 모듈 설계 방안&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;결합도는 줄이고 응집도는 높여서 모듈의 독립성과 재사용성을 높인다.&lt;/li&gt;
&lt;li&gt;복잡도와 중복성을 줄이고 일관성을 유지시킨다.&lt;/li&gt;
&lt;li&gt;모듈의 기능은 예측이 가능해야 하며 지나치게 제한적이어서는 안된다.&lt;/li&gt;
&lt;li&gt;모듈 크기는 시스템의 전반적인 기능과 구조를 이해하기 쉬운 크기로 분해한다.&lt;/li&gt;
&lt;li&gt;효과적인 제어를 위해 모듈 간의 계층적 관계를 정의하는 자료과 제시되어야 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;현업에서도 쓰이고 있는 것이라 공부하면서도 정리되는 기분이었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;전공생들은 매일매일이 이런 순간의 연속이겠구나 하는 생각이 들며 더 열심히 공부해야겠다는 자극 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #dddddd;&quot;&gt;[출처 : 시나공 정보처리기사 실기]&lt;/span&gt;&lt;/p&gt;</description>
      <category>기록/공부</category>
      <category>개발 공부</category>
      <category>비전공 개발</category>
      <category>시나공</category>
      <category>자격증</category>
      <category>정보처리기사</category>
      <category>정보처리기사 공부</category>
      <category>정보처리기사 합격</category>
      <category>정처기</category>
      <category>정처기 공부</category>
      <category>정처기 꼭따자</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/28</guid>
      <comments>https://deseul.tistory.com/entry/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC-%EA%B3%B5%EB%8F%99%EB%AA%A8%EB%93%88#entry28comment</comments>
      <pubDate>Wed, 29 Sep 2021 20:59:01 +0900</pubDate>
    </item>
    <item>
      <title>[정보처리기사] 모듈(Module)이란?</title>
      <link>https://deseul.tistory.com/entry/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC-%EB%AA%A8%EB%93%88Module%EC%9D%B4%EB%9E%80</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;역사적으로&amp;nbsp;&lt;a href=&quot;https://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D&quot;&gt;프로그래밍&lt;/a&gt;이라는 관점에서는 기본적으로 본체에 대한 독립된 하위 단위라는 필연적인 개념의 큰 틀을 따르고 있지만 본체와 모듈 간에 가지고 있었던 문제들을 해결해 나가는 과정에서 발전하였다. 모듈에 가장 큰 영향을 미쳤던&amp;nbsp;&lt;a href=&quot;https://ko.wikipedia.org/wiki/%ED%81%B4%EB%9E%98%EC%8A%A4_(%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99)&quot;&gt;클래스&lt;/a&gt;&amp;nbsp;그리고&amp;nbsp;&lt;a href=&quot;https://ko.wikipedia.org/wiki/%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC_(%EC%BB%B4%ED%93%A8%ED%8C%85)&quot;&gt;라이브러리&lt;/a&gt;가 향상됨에 따라 점차 발전하였다. 이러한 지속 가능성은 이것의 가장 큰 장점 중 하나이다. 초기에는 분리된 독립성의 모듈로 도입되었으나 점차로&amp;nbsp;&lt;a href=&quot;https://ko.wikipedia.org/wiki/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D&quot;&gt;객체화&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://ko.wikipedia.org/wiki/%EC%BA%A1%EC%8A%90%ED%99%94&quot;&gt;캡슐화&lt;/a&gt;, 모듈화 프로그래밍 기법 등 여러 기능들이 추가되면서 점차적으로 영역이 나뉘어가고 있다.&amp;nbsp;그러나 이로 인하여&amp;nbsp;&lt;a href=&quot;https://ko.wikipedia.org/wiki/%EB%AA%A8%EB%93%88%EC%84%B1_(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D)&quot;&gt;모듈성&lt;/a&gt;을 제대로 반영하지 못하고 있다는 비난을 받을 수도 있다. 한편 이러한 비난은 모듈 시스템, 모듈 프로그래밍이 갖는 현재의 한계를 인식하고 보다 안정적으로 발전하기 위해 효율적인 방향을 추구하는데 기여할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;모듈&lt;/b&gt;(module)은 모듈화를 통해 분리된 시스템의 각 기능으로, 서브루틴, 서브시스템, 소프트웨어 내의 프로그램, 작업 단위등을 의미한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 모듈의 기능적 독립성은 소프트웨어를 구성하는 각&amp;nbsp; 모듈의 기능이 서로 독립됨을 의미한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 모듈의 독립성은 결합도(Coupling)와 응집도(Cohesion)에 의해 측정된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 모듈화란 소프트웨어의 성능을 향상시키거나 시스템의 수정 및 재사용, 유지 관리 등을 위해 시스템의 기능들을 모듈 단위로 분해하는 것을 의미합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 결합도&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결합도는 모듈 간에 상호 의존하는 정도 또는 두 모듈사이의 연관 관계이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결합도가 약할수록 품질이 높고, 강할수록 품질이 낮다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 20px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignCenter&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 20px;&quot;&gt;내용 결합도&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 20px;&quot;&gt;공통 결합도&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 20px;&quot;&gt;외부 결합도&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 20px;&quot;&gt;제어 결합도&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 20px;&quot;&gt;소탬프 결합도&lt;/td&gt;
&lt;td style=&quot;width: 16.6667%; text-align: center; height: 20px;&quot;&gt;자료 결합도&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왼쪽에서 오른쪽으로 갈수록 결합도가 약해진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 180px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style9&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 29.6511%; height: 20px; text-align: center;&quot;&gt;종류&lt;/td&gt;
&lt;td style=&quot;width: 70.3489%; height: 20px; text-align: center;&quot;&gt;내용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 29.6511%; height: 40px;&quot;&gt;내용 결합도(Content Coupling)&lt;/td&gt;
&lt;td style=&quot;width: 70.3489%; height: 40px;&quot;&gt;한 모듈이 다른 모듈의 내부 기능 및 그 내부 자료를 직접 참조하거나 &lt;br /&gt;수정할 때의 결합도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 29.6511%; height: 40px;&quot;&gt;공통(공유) 결합도 &lt;br /&gt;(Common Coupling)&lt;/td&gt;
&lt;td style=&quot;width: 70.3489%; height: 40px;&quot;&gt;공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 29.6511%; height: 20px;&quot;&gt;외부 결합도(External Coupling)&lt;/td&gt;
&lt;td style=&quot;width: 70.3489%; height: 20px;&quot;&gt;어떤 모듈에서 선언한 데이터(변수)를 외부의 다른 모듈에서 참조할 때의 결합도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 29.6511%; height: 20px;&quot;&gt;제어 결합도&lt;br /&gt;(Control Coulpling)&lt;/td&gt;
&lt;td style=&quot;width: 70.3489%; height: 20px;&quot;&gt;&amp;nbsp;- 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해 제어 신호나 제어 요&amp;nbsp; 소를전달하는 결합도&lt;br /&gt;- 하위 모듈에서 상위 모듈로 제어 신호가 이동하여 하위 모듈이 상위 모듈에게 처리 명령을 내리는 권리 전도 현상이 발생하게 됨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 29.6511%; height: 20px;&quot;&gt;스탬프(검인) 결합도&lt;br /&gt;(Stamp Coupling)&lt;/td&gt;
&lt;td style=&quot;width: 70.3489%; height: 20px;&quot;&gt;모듈 간의 인터페이스로 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 29.6511%; height: 20px;&quot;&gt;자료 결합도(Data Coupling)&lt;/td&gt;
&lt;td style=&quot;width: 70.3489%; height: 20px;&quot;&gt;모듈 간의 인터페이스가 자료요소로만 구성될 떄의 결합도&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 응집도&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;응집도는 모듈의 내부 요소들이 서로 관련되어 있는 정도이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;응집도가 강할수록 품질이 높고, 약할수록 품질이 낮다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;기능적 응집도&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;순차적 응집도&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;교환적 응집도&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;절차적 응집도&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;시간적 응집도&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;논리적 응집도&lt;/td&gt;
&lt;td style=&quot;width: 14.2857%;&quot;&gt;우연적 응집도&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왼쪽으로 갈수록 응집도가 약해집니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 250px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style9&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 24.6512%; text-align: center;&quot;&gt;종류&lt;/td&gt;
&lt;td style=&quot;width: 75.3488%; text-align: center;&quot;&gt;내용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 24.6512%; height: 40px;&quot;&gt;기능적 응집도&lt;br /&gt;(Functional Cohesion)&lt;/td&gt;
&lt;td style=&quot;width: 75.3488%; height: 40px;&quot;&gt;모듈 내부의 모든 기능 요소들이 단일 문제와 연관되어 수행될 경우의 응집도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 24.6512%; height: 40px;&quot;&gt;순차적 응집도&lt;br /&gt;(Sequential Cohesion)&lt;/td&gt;
&lt;td style=&quot;width: 75.3488%; height: 40px;&quot;&gt;모듈 내 하나의 활동으로부터 나온 출력 데이터를 &lt;br /&gt;그 다음 활동의 입력 데이터로 사용할 경우의 응집도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 24.6512%; height: 40px;&quot;&gt;교환(통신)적 응집도&lt;br /&gt;(Communication Cohesion)&lt;/td&gt;
&lt;td style=&quot;width: 75.3488%; height: 40px;&quot;&gt;동일한 입력과 출력을 사용하여 서로 다른 기능을 수행하는&lt;br /&gt;구성 요소들이 모였을 경우의 응집도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 24.6512%; height: 40px;&quot;&gt;절차적 응집도&lt;br /&gt;(Procedural Cohesion)&lt;/td&gt;
&lt;td style=&quot;width: 75.3488%; height: 40px;&quot;&gt;모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이&amp;nbsp;&lt;br /&gt;그 기능을 순차적으로 수행할 경우의 응집도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 40px;&quot;&gt;
&lt;td style=&quot;width: 24.6512%; height: 40px;&quot;&gt;시간적 응집도&lt;br /&gt;(Temporal Cohesion)&lt;/td&gt;
&lt;td style=&quot;width: 75.3488%; height: 40px;&quot;&gt;특정 시간에 처리되는 몇 개의 기능을 모아&lt;br /&gt;하나의 모듈로 작성할 경우의 응집도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 24.6512%; height: 20px;&quot;&gt;논리적 응집도&lt;br /&gt;(Logical Cohesion)&lt;/td&gt;
&lt;td style=&quot;width: 75.3488%; height: 20px;&quot;&gt;유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로&lt;br /&gt;하나의 모듈이 형성되는 경우의 응집도&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 10px;&quot;&gt;
&lt;td style=&quot;width: 24.6512%; height: 10px;&quot;&gt;우연적 응집도&lt;br /&gt;(Coincidental Cohesion)&lt;/td&gt;
&lt;td style=&quot;width: 75.3488%; height: 10px;&quot;&gt;모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만&lt;br /&gt;구성된 경우의 응집도&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3. 팬인(Fan-In) / 펜아웃(Fan-Out)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;팬인 : 어떤 모듈을 제어하는 모듈의 수이다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;팬인이 높다는 것은 재사용 측면에서 설계가 잘 되어있다고 볼 수 있다.&lt;/li&gt;
&lt;li&gt;팬인이 높은 경우 단일 장애점이 발생할 수 있으므로 중점적인 관리 및 테스트가 중요하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;팬아웃 : 어떤 모듈에 의해 재어되는 모듈의 수를 의미한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4. N-S 차트(Nassi-Scheneiderman Chart)&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;N-S차트는 논리의 기술에 중점을 두고 도형을 이용해 표현하는 방법이다.&lt;/li&gt;
&lt;li&gt;박스 다이어그램, Chapin Chart라고도 한다.&lt;/li&gt;
&lt;li&gt;GOTO나 화살표를 사용하지 않는다.&lt;/li&gt;
&lt;li&gt;연속, 선택 및 다중 선택, 반복의 3가지 제어 논리 구조로 표현한다.&lt;/li&gt;
&lt;li&gt;조건이 복합되어 있는 곳의 처리를 시각적으로 명확히 식별하는 데 적합하다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #dddddd;&quot;&gt;[출처 : 시나공 실기]&lt;/span&gt;&lt;/p&gt;</description>
      <category>기록/공부</category>
      <category>모듈</category>
      <category>모듈이란</category>
      <category>시나공</category>
      <category>정보처리기사</category>
      <category>정보처리기사 공부</category>
      <category>정보처리기사 실기</category>
      <category>정처기</category>
      <category>정처기 공부</category>
      <category>정처기 실기</category>
      <category>합격</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/27</guid>
      <comments>https://deseul.tistory.com/entry/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC-%EB%AA%A8%EB%93%88Module%EC%9D%B4%EB%9E%80#entry27comment</comments>
      <pubDate>Tue, 28 Sep 2021 18:00:42 +0900</pubDate>
    </item>
    <item>
      <title>수경 재배 첫 도전</title>
      <link>https://deseul.tistory.com/entry/%EC%88%98%EA%B2%BD-%EC%9E%AC%EB%B0%B0-%EC%B2%AB-%EB%8F%84%EC%A0%84</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;다들 뿌리가 녹으면 수경재배를 하라고 해서 오늘 식멍을 하다 보니&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;달개비가 아래부분이 썩어있는것이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜일까? 몰라 너무 짚이는게 많아서 ! !!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 보자마자 흙을 다 털어보았다. 그랬더니 뿌리가 다 녹아 사라져있고 줄기 부분이 녹아있어서 고민을 하다가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘라버렸다. 마음이 찢어지는군..&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;927&quot; data-filename=&quot;blob&quot; width=&quot;127&quot; height=&quot;293&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLjvL9/btrf1i7lwMC/KaRnBjvBp2io7VHKZAt5Pk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLjvL9/btrf1i7lwMC/KaRnBjvBp2io7VHKZAt5Pk/img.png&quot; data-alt=&quot;뿌리가 거의 없어..&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLjvL9/btrf1i7lwMC/KaRnBjvBp2io7VHKZAt5Pk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLjvL9%2Fbtrf1i7lwMC%2FKaRnBjvBp2io7VHKZAt5Pk%2Fimg.png&quot; data-origin-width=&quot;402&quot; data-origin-height=&quot;927&quot; data-filename=&quot;blob&quot; width=&quot;127&quot; height=&quot;293&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;뿌리가 거의 없어..&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;391&quot; data-origin-height=&quot;659&quot; data-filename=&quot;blob&quot; width=&quot;298&quot; height=&quot;502&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/X7Dwx/btrgdGLB5jw/zAcJ4LIGmcc11Kx7QYQwSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/X7Dwx/btrgdGLB5jw/zAcJ4LIGmcc11Kx7QYQwSk/img.png&quot; data-alt=&quot;그나마 뿌리 있는놈&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/X7Dwx/btrgdGLB5jw/zAcJ4LIGmcc11Kx7QYQwSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FX7Dwx%2FbtrgdGLB5jw%2FzAcJ4LIGmcc11Kx7QYQwSk%2Fimg.png&quot; data-origin-width=&quot;391&quot; data-origin-height=&quot;659&quot; data-filename=&quot;blob&quot; width=&quot;298&quot; height=&quot;502&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;그나마 뿌리 있는놈&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그나마 다른 개체는 조금 뿌리가 있어서 이친구도 물러있긴 했는데 뿌리를 빡빡 닦았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;1280&quot; data-filename=&quot;KakaoTalk_20210927_191834659_02.jpg&quot; width=&quot;476&quot; height=&quot;635&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsttbL/btrgbmtyIjY/wYkKZpXRuLrbkh5wUw4HGk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsttbL/btrgbmtyIjY/wYkKZpXRuLrbkh5wUw4HGk/img.jpg&quot; data-alt=&quot;다이소에서 산 수경재배용 투명 볼,,&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsttbL/btrgbmtyIjY/wYkKZpXRuLrbkh5wUw4HGk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsttbL%2FbtrgbmtyIjY%2FwYkKZpXRuLrbkh5wUw4HGk%2Fimg.jpg&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;1280&quot; data-filename=&quot;KakaoTalk_20210927_191834659_02.jpg&quot; width=&quot;476&quot; height=&quot;635&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;다이소에서 산 수경재배용 투명 볼,,&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다이소에서 산 수경재배 볼을 쓰게 되었다.. 이 뿌리 없어서 다 자른 친구는 과연 살아날수 있을것인가....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지켜봐야겠다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;852&quot; data-origin-height=&quot;804&quot; data-filename=&quot;blob&quot; width=&quot;489&quot; height=&quot;462&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgCNN2/btrf7rIYYp8/DYZeQ2vJKzugABWZ9DnmuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgCNN2/btrf7rIYYp8/DYZeQ2vJKzugABWZ9DnmuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgCNN2/btrf7rIYYp8/DYZeQ2vJKzugABWZ9DnmuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgCNN2%2Fbtrf7rIYYp8%2FDYZeQ2vJKzugABWZ9DnmuK%2Fimg.png&quot; data-origin-width=&quot;852&quot; data-origin-height=&quot;804&quot; data-filename=&quot;blob&quot; width=&quot;489&quot; height=&quot;462&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;색이 넘 이쁜데,, 흑흑 살균제를 너무 과다하게 뿌렸나보다... 아니면 원래 이랬나? ㅠ..&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;받자마다 화분을 엎어봐야 아는건데.. 아니면 분무를 너무 많이 해줬나 흑흑흑&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;충격에 사진을 별로 못찍었다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제발 잘 살아주라 ㅠㅠ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>기록/식물</category>
      <category>달개비</category>
      <category>무름</category>
      <category>보라 달개비</category>
      <category>뿌리녹음</category>
      <category>삼색 달개비</category>
      <category>삼색달개비</category>
      <category>수경 재배</category>
      <category>수경재배</category>
      <category>식물 키우기</category>
      <category>식물재배</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/26</guid>
      <comments>https://deseul.tistory.com/entry/%EC%88%98%EA%B2%BD-%EC%9E%AC%EB%B0%B0-%EC%B2%AB-%EB%8F%84%EC%A0%84#entry26comment</comments>
      <pubDate>Tue, 28 Sep 2021 08:30:30 +0900</pubDate>
    </item>
    <item>
      <title>한성 무접점 블루투스 키보드 티코</title>
      <link>https://deseul.tistory.com/entry/%ED%95%9C%EC%84%B1-%EB%AC%B4%EC%A0%91%EC%A0%90-%EB%B8%94%EB%A3%A8%ED%88%AC%EC%8A%A4-%ED%82%A4%EB%B3%B4%EB%93%9C-%ED%8B%B0%EC%BD%94</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;[한성컴퓨터 GK868B TICO 무접점 화이트 (35g)]를 구매하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1년간 벼르고 벼르던 구매. 저번엔 블루투스 4.0이라 망설였는데, 블루투스 5.0으로 업그레이드 되고도 한참을 지나서야 구매하게 되었다. 그래도 그렇게 기다린 나날이 있어서 일까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더 달콤한 구매였던 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;노뿌 50g(콕스 엔데버)은 이미 써보아서 35g을 사보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1188&quot; data-origin-height=&quot;829&quot; data-filename=&quot;blob&quot; width=&quot;685&quot; height=&quot;478&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BoIer/btrfWKooD77/QfBTTTKWJZ1oGLOvaYrliK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BoIer/btrfWKooD77/QfBTTTKWJZ1oGLOvaYrliK/img.png&quot; data-alt=&quot;한성 컴퓨터라 써져있는 블랙 박스에 왔다. 화이트 컬러를 시켜도 블랙박스에 ~&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BoIer/btrfWKooD77/QfBTTTKWJZ1oGLOvaYrliK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBoIer%2FbtrfWKooD77%2FQfBTTTKWJZ1oGLOvaYrliK%2Fimg.png&quot; data-origin-width=&quot;1188&quot; data-origin-height=&quot;829&quot; data-filename=&quot;blob&quot; width=&quot;685&quot; height=&quot;478&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;한성 컴퓨터라 써져있는 블랙 박스에 왔다. 화이트 컬러를 시켜도 블랙박스에 ~&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;960&quot; data-filename=&quot;blob&quot; width=&quot;687&quot; height=&quot;515&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cu0HHW/btrfWNlHqoQ/oJ4iw2KBf4bcFit5oAyb70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cu0HHW/btrfWNlHqoQ/oJ4iw2KBf4bcFit5oAyb70/img.png&quot; data-alt=&quot;요렇게 포장 되어있었다.&amp;amp;amp;nbsp;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cu0HHW/btrfWNlHqoQ/oJ4iw2KBf4bcFit5oAyb70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcu0HHW%2FbtrfWNlHqoQ%2FoJ4iw2KBf4bcFit5oAyb70%2Fimg.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;960&quot; data-filename=&quot;blob&quot; width=&quot;687&quot; height=&quot;515&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;요렇게 포장 되어있었다.&amp;nbsp;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한번 얇은 비닐에 쌓여져 있고 그 다음에 폼폼이로 둘러 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사진은 내가 원래 쓰던 블루투스 키보드인데, 한성 키보드를 빼고 넣어줬다 ㅎㅎ.. 티코는 이미 쓰고 있으니까 ~&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;확실히 중국브랜드보다는 블루투스가 끊김없이 연결이 잘된다. 사실 저건 사놓고 블루투스로 못쓰고 항상 선을 연결 해놓고 썼다. 중간중간 끊기는게 너무 신경 쓰였기 때문이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;티코는&amp;nbsp; ㅎ ㅎ 역시 한국꺼라그런지 잘된다. 아직 이틀밖에 써보지 않았지만 마치 선으로 연결해놓은걸 쓰는 듯한 반응 속도! 게임을 한번 해보면 더 확실하게 느껴질 것 같다. 일단 업무적으로 쓸때에는 아주 좋다 타자칠때 느낌도 너무 좋고 ... 보글보글 조용조용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회사에서 쓰기에도 좋겠지만, 일단은 집에서 쓰기로 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;난 저적말고 다른 축은 별로인 것같다. 갈축에서 매력을 느끼지 못하고 창고로 들어갈 것이다.. 그리고 아마 곧 당근에 팔리지 않을까 생각된다 얼마에 샀는지 기억이 안나기는 하는데 일단 만원에 팔면 팔리지 않을까 생각 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;960&quot; data-filename=&quot;blob&quot; width=&quot;695&quot; height=&quot;521&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IERYv/btrfXG7aJUL/iq6zpdAkDhAg0xWUpWN8L1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IERYv/btrfXG7aJUL/iq6zpdAkDhAg0xWUpWN8L1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IERYv/btrfXG7aJUL/iq6zpdAkDhAg0xWUpWN8L1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIERYv%2FbtrfXG7aJUL%2Fiq6zpdAkDhAg0xWUpWN8L1%2Fimg.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;960&quot; data-filename=&quot;blob&quot; width=&quot;695&quot; height=&quot;521&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 티코로 돌아가자면 기본 구성품에 키보드 터는 붓과 연결단자 충전 겸용, 그리고 키캡 리무버가 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #dddddd;&quot;&gt;저 키캡 리무버 별로 잘 안뽑히고 손상이 있어서 잘 안쓰긴 하는데, 없는 것 보다는 낫다고 생각은 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 세팅해준 모습 &lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;674&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCwjSK/btrf0qJITvw/GFWjhchOL8FFQUEkHzgzE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCwjSK/btrf0qJITvw/GFWjhchOL8FFQUEkHzgzE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCwjSK/btrf0qJITvw/GFWjhchOL8FFQUEkHzgzE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCwjSK%2Fbtrf0qJITvw%2FGFWjhchOL8FFQUEkHzgzE0%2Fimg.png&quot; data-origin-width=&quot;1280&quot; data-origin-height=&quot;674&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아름다워,, 좁은 내 책상에 어울리는 아담한 친구이다. Fn키가 오른쪽에 있고 왼쪽에 Ins, Del, PaUp칸이 하나 더 있어서 백스페이스 쓸때 인서트 누르는 실수가 있어 불편한 점이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;맘에 드는 점은&amp;nbsp; 물결 쓰기가 편하다는 점. 나이가 드니 물결없이 말하기가 조금 힘들어진 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1164&quot; data-origin-height=&quot;692&quot; data-filename=&quot;blob&quot; width=&quot;545&quot; height=&quot;324&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u2MyF/btrfXxCZgau/DkMzjkYsNdIK9wG4QPVTD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u2MyF/btrfXxCZgau/DkMzjkYsNdIK9wG4QPVTD1/img.png&quot; data-alt=&quot;이단조절 가능 ~&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u2MyF/btrfXxCZgau/DkMzjkYsNdIK9wG4QPVTD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu2MyF%2FbtrfXxCZgau%2FDkMzjkYsNdIK9wG4QPVTD1%2Fimg.png&quot; data-origin-width=&quot;1164&quot; data-origin-height=&quot;692&quot; data-filename=&quot;blob&quot; width=&quot;545&quot; height=&quot;324&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이단조절 가능 ~&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;키보드 높이는 이단 조절이 가능하다 낮은 상태와 높은 상태~아무래도 낮은 것보다는 높은 것이 쓰기 편해서 그렇게 쓰고 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 점은 다 좋아 키캡 상태도 좋고 마감도 거의 완벽하다. 흠 잡을 곳 없군요. 가격이 조금 비싸긴 한데.. 그래도 이정도면 납득가능한 정도 이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 좋은 키보드는 새 키보드 ~&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;새거쓰니까 너무 기분 좋구요 ~&amp;nbsp;&lt;/p&gt;</description>
      <category>IT/장비</category>
      <category>노뿌</category>
      <category>무접점</category>
      <category>무접점 35g</category>
      <category>무접점 키보드</category>
      <category>티코 35g</category>
      <category>한성</category>
      <category>한성 무접점</category>
      <category>한성 무접점 키보드</category>
      <category>한성 무접점 티코</category>
      <category>한성 키보드</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/25</guid>
      <comments>https://deseul.tistory.com/entry/%ED%95%9C%EC%84%B1-%EB%AC%B4%EC%A0%91%EC%A0%90-%EB%B8%94%EB%A3%A8%ED%88%AC%EC%8A%A4-%ED%82%A4%EB%B3%B4%EB%93%9C-%ED%8B%B0%EC%BD%94#entry25comment</comments>
      <pubDate>Mon, 27 Sep 2021 19:09:49 +0900</pubDate>
    </item>
    <item>
      <title>진짜 마지막 식물 쇼핑..</title>
      <link>https://deseul.tistory.com/entry/%EC%A7%84%EC%A7%9C-%EB%A7%88%EC%A7%80%EB%A7%89-%EC%8B%9D%EB%AC%BC-%EC%87%BC%ED%95%91</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;저번에 마지막이라고 해놓고 또 사버리고 말았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번엔 1층 베란다 정원이라는 조그만 네이버 스토어에서 샀는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;핑크스팟이 만원에 팔길래 눈 돌아가서 바로 사버리고 말았다. (지인이 알려줌  )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 단독판매는 안되어서 평소 약간 관심이 있었던 삼색 달개비와 함께 구매 하였다.(12000원)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시키고 거의 바로 배송시작을해서 이틀만에 왔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요즘 싱고니움에 빠져서 밀크컨페티를 사려다가 핑크스팟도 너무 비슷해서 둘이 무슨 차이점이 있는지 궁금해서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;핑크스팟을 사게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;배송이 오자마자 뜯어보았다. 포장이 꼼꼼히 되어있었다. 일단 물을 주고 키친타올로 한번 감싸있고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그위를 노란 종이 테이프로 감싸놓아서 흙이 최대한 떨어지지 않게 해두셨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아니 이렇게나 풍성하단 말이야 ? 상자에 있었기때문에 옆으로 숙인거 빼면 정말 풍성하고 무늬도 이쁘고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;건강해서 너어무 마음에 들었다. 게다가 15cm 슬릿분에 담겨있는 핑크스팟&amp;nbsp; ~ (그래서 분갈이 안해줄 예정)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;949&quot; data-origin-height=&quot;1022&quot; data-filename=&quot;blob&quot; width=&quot;672&quot; height=&quot;724&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bL79lM/btrfV8JNvHc/ZHKkwosQjS1aYP7uKIfmX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bL79lM/btrfV8JNvHc/ZHKkwosQjS1aYP7uKIfmX0/img.png&quot; data-alt=&quot;안녕? 너어무 이쁘구나 계속해서 아름다움에 감탄함&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bL79lM/btrfV8JNvHc/ZHKkwosQjS1aYP7uKIfmX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbL79lM%2FbtrfV8JNvHc%2FZHKkwosQjS1aYP7uKIfmX0%2Fimg.png&quot; data-origin-width=&quot;949&quot; data-origin-height=&quot;1022&quot; data-filename=&quot;blob&quot; width=&quot;672&quot; height=&quot;724&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;안녕? 너어무 이쁘구나 계속해서 아름다움에 감탄함&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;791&quot; data-origin-height=&quot;866&quot; data-filename=&quot;blob&quot; width=&quot;448&quot; height=&quot;490&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nqaBF/btrfWbNRYSz/E3CM5zj01n03Sofxd4qF11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nqaBF/btrfWbNRYSz/E3CM5zj01n03Sofxd4qF11/img.png&quot; data-alt=&quot;뒷모습도 예뻐요&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nqaBF/btrfWbNRYSz/E3CM5zj01n03Sofxd4qF11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnqaBF%2FbtrfWbNRYSz%2FE3CM5zj01n03Sofxd4qF11%2Fimg.png&quot; data-origin-width=&quot;791&quot; data-origin-height=&quot;866&quot; data-filename=&quot;blob&quot; width=&quot;448&quot; height=&quot;490&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;뒷모습도 예뻐요&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;680&quot; data-origin-height=&quot;760&quot; data-filename=&quot;blob&quot; width=&quot;455&quot; height=&quot;509&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ym8iJ/btrf1iLYOar/UyqAsI9D05MWWxQW8QcEmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ym8iJ/btrf1iLYOar/UyqAsI9D05MWWxQW8QcEmk/img.png&quot; data-alt=&quot;아직은 숙이고 있지만 하도 싱싱해서 하루만에 올라올 거란 믿음이 돋는다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ym8iJ/btrf1iLYOar/UyqAsI9D05MWWxQW8QcEmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYm8iJ%2Fbtrf1iLYOar%2FUyqAsI9D05MWWxQW8QcEmk%2Fimg.png&quot; data-origin-width=&quot;680&quot; data-origin-height=&quot;760&quot; data-filename=&quot;blob&quot; width=&quot;455&quot; height=&quot;509&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;아직은 숙이고 있지만 하도 싱싱해서 하루만에 올라올 거란 믿음이 돋는다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;달개비는,, 흠 예상보다는 작고 잎이 이뻤다. 잎이 빛나던데 사실 아직 그렇게 많이 찾아보지 않아서 일단&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떻게 키우는지 찾아보아야 겠다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;752&quot; data-origin-height=&quot;827&quot; data-filename=&quot;blob&quot; width=&quot;385&quot; height=&quot;424&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dfiSX7/btrfV9aRt1J/UXERcVhbwiLH3dr6vwLWY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dfiSX7/btrfV9aRt1J/UXERcVhbwiLH3dr6vwLWY0/img.png&quot; data-alt=&quot;달개비 너는 조금 작네, 하지만 색이 곱구나&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dfiSX7/btrfV9aRt1J/UXERcVhbwiLH3dr6vwLWY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdfiSX7%2FbtrfV9aRt1J%2FUXERcVhbwiLH3dr6vwLWY0%2Fimg.png&quot; data-origin-width=&quot;752&quot; data-origin-height=&quot;827&quot; data-filename=&quot;blob&quot; width=&quot;385&quot; height=&quot;424&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;달개비 너는 조금 작네, 하지만 색이 곱구나&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 바로 식물공간에 들여놓았다. 원래 검역을 거쳐야 하는데, 귀찮기도 했고 사막이리응애를 시킨참이라 응애가 있으면 그 친구들이 먹겠지 하는 자신감으로.. (무슨 자신감이지?)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 미래의 나에 대한 약간의 죄책감으로 살충제를 뿌려두었다 깔깔&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 지금의 핑크 스팟&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;너어무 예쁘죠 ~? 식물이 발랄할수 있다면 그것이 바로 싱고니움&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여름 해 아래 점박이 소녀 같은 느낌이군요 초록잎도 너무 진한 초록이 아닌 연한 초록이고 위에 나는 잎에 핑크 점박이 가 콕콕 박혀서 이쁜 토끼잎을 가지고 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;신엽도 마구마구 돌돌 말려있고 아주 좋아 아주 건강해 싱고니움은 신엽을 퐁퐁내서 보는 재미가 있다.. 식멍하는 재미가 있어,...&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;830&quot; data-origin-height=&quot;749&quot; data-filename=&quot;blob&quot; width=&quot;691&quot; height=&quot;624&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0JrOQ/btrfXxXbHl2/Jo2pJesfHSNXVUYOKvhEFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0JrOQ/btrfXxXbHl2/Jo2pJesfHSNXVUYOKvhEFK/img.png&quot; data-alt=&quot;싱그러워진 싱고니움 싱싱해서 싱고니움인가? ㅎ&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0JrOQ/btrfXxXbHl2/Jo2pJesfHSNXVUYOKvhEFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0JrOQ%2FbtrfXxXbHl2%2FJo2pJesfHSNXVUYOKvhEFK%2Fimg.png&quot; data-origin-width=&quot;830&quot; data-origin-height=&quot;749&quot; data-filename=&quot;blob&quot; width=&quot;691&quot; height=&quot;624&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;싱그러워진 싱고니움 싱싱해서 싱고니움인가? ㅎ&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 또 더그린가든센터에서 시킨 밀크컨페티가 아직 배송이 안되었는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;밀크컨페티와 핑크스팟의 차이점을 구분하여 블로그글을 적을 예정이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도대체가 둘이 무슨 차이점이 있는것인지 내가 볼땐 비슷한데, 잎이 다른가? 일단 배송을 받아보고 관찰해보면 알수 있을 듯 하다.&lt;/p&gt;</description>
      <category>기록/식물</category>
      <category>1층베란다정원</category>
      <category>달개비</category>
      <category>삼색달개비</category>
      <category>식물</category>
      <category>식물키우기</category>
      <category>싱고니움</category>
      <category>싱고니움 핑크스팟</category>
      <category>핑크 스팟</category>
      <category>핑크 스팟 싱고니움</category>
      <category>핑크스팟</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/24</guid>
      <comments>https://deseul.tistory.com/entry/%EC%A7%84%EC%A7%9C-%EB%A7%88%EC%A7%80%EB%A7%89-%EC%8B%9D%EB%AC%BC-%EC%87%BC%ED%95%91#entry24comment</comments>
      <pubDate>Mon, 27 Sep 2021 12:59:52 +0900</pubDate>
    </item>
    <item>
      <title>올해 마지막 식물쇼핑</title>
      <link>https://deseul.tistory.com/entry/%EC%98%AC%ED%95%B4-%EB%A7%88%EC%A7%80%EB%A7%89-%EC%8B%9D%EB%AC%BC%EC%87%BC%ED%95%91</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;식물의 길에 들어온지 어연 5개월 .. 반년이 되어가니 가을이 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;겨울에는 몇개 정도 빈 화분이 된다고 하니 극악의 난이도인 계절일 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;찌는 듯한 여름도 힘들었지만 잎 몇개 타는것 빼고는 다들 아주 잘자라서 기분 좋은 계절이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 배송식물의 상태는 메롱이었는데.. 그래서 몇개 사고는 안샀다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시간은 가고, 가을이 되니 식쇼(식물 쇼핑이라는 뜻)를 마지막으로 해야겠다는 다짐을 하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;남사 하훼단지를 갔다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㅠ 넘나 천국. 하지만 마오리 소포리를 꼭 사고 싶었으나 상태가 좋지 않아, 사지못하고&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;식물은 핑크 싱고니움과 더피 고사리 두개만 샀다. 무늬 싱고니움과 칼라디움도 이쁜게 있으면 사려 했는데 종류도 몇가지 없고 해서 많이 사지 못했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 펄라이트와 훈탄과 슬릿분을 샀다. ㅎㅎ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사진을 찍는 버릇이 안들어서 사진이 몇장 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;364&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lKdAV/btrfdY8WGsZ/YvBepO6XhNtvuipMXchppk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lKdAV/btrfdY8WGsZ/YvBepO6XhNtvuipMXchppk/img.png&quot; data-alt=&quot;분갈이 하기전 집에 갓 온 핑싱, 너무 예쁘고요?&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lKdAV/btrfdY8WGsZ/YvBepO6XhNtvuipMXchppk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlKdAV%2FbtrfdY8WGsZ%2FYvBepO6XhNtvuipMXchppk%2Fimg.png&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;364&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;분갈이 하기전 집에 갓 온 핑싱, 너무 예쁘고요?&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;색이 우아하다.. 가격은 싼데 미모는 탑급이니 갓성비의 핑크싱고니움(이하 핑싱).. 너무 아름답고요? 가슴이 찡하다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;식멍할때도 흐뭇하게 쳐다보게 되는 핑싱 ㅠ 핑크스팟,, 레드,,, 등등 다 사고싶다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첨에는 다 비슷한데 한개만 사면 되지.. 이랬는데 자세히 보니 다 달라. 다 예뻐.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분갈이 전 더피, 이미 찜꽁해둔 화분에 올려놓았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 만 해도 정말 이뻤는데, 잎이 하나도 안타고 ㅎㅎ 지금은 몸살중이다. 아무래도 습도가 낮다보니&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잎이 다 타들어가는 중인데, 견뎌라! 지금은 삭발까지는 아니고 투블럭 정도로 탄 잎을 다 잘라냈다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;427&quot; data-origin-height=&quot;320&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/clbtWa/btrfbQKGrlK/LKW9Jqw4VhwbmjkOnP6Fg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/clbtWa/btrfbQKGrlK/LKW9Jqw4VhwbmjkOnP6Fg0/img.png&quot; data-alt=&quot;이때만해도 정말 이뻤는데.. 하 고사리 애증&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/clbtWa/btrfbQKGrlK/LKW9Jqw4VhwbmjkOnP6Fg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FclbtWa%2FbtrfbQKGrlK%2FLKW9Jqw4VhwbmjkOnP6Fg0%2Fimg.png&quot; data-origin-width=&quot;427&quot; data-origin-height=&quot;320&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이때만해도 정말 이뻤는데.. 하 고사리 애증&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;420&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4t9x0/btrfhepQ5Nu/NMEiQdzhraGTwq9WXcJfI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4t9x0/btrfhepQ5Nu/NMEiQdzhraGTwq9WXcJfI0/img.png&quot; data-alt=&quot;토분에 분갈이 해준 귀여운 핑크 싱고니움 ^ ^&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4t9x0/btrfhepQ5Nu/NMEiQdzhraGTwq9WXcJfI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4t9x0%2FbtrfhepQ5Nu%2FNMEiQdzhraGTwq9WXcJfI0%2Fimg.png&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;420&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;토분에 분갈이 해준 귀여운 핑크 싱고니움 ^ ^&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분갈이 해주고 나니 미모가 더 업그레이드 되었다. 말도 안되는 아름다움.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;376&quot; data-origin-height=&quot;525&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Yr1y3/btrfhcZXCzL/k9lmiXj2HnVUYUbNrBKFd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Yr1y3/btrfhcZXCzL/k9lmiXj2HnVUYUbNrBKFd1/img.png&quot; data-alt=&quot;분갈이한 더피, 뒤에는 보스턴고사리 옆에는 블루스타 펀 고사리 삼총사.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Yr1y3/btrfhcZXCzL/k9lmiXj2HnVUYUbNrBKFd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYr1y3%2FbtrfhcZXCzL%2Fk9lmiXj2HnVUYUbNrBKFd1%2Fimg.png&quot; data-origin-width=&quot;376&quot; data-origin-height=&quot;525&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;분갈이한 더피, 뒤에는 보스턴고사리 옆에는 블루스타 펀 고사리 삼총사.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더피 분갈이 해주니 너무 이쁘고요? 화분이 이뻐서 샀는데, 토분인줄 알았는데 뭔가 시멘트같은 질감이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 색이 이쁘니까 하고 분갈이해줬는데 설마 지금 잎이 우수수 타는게 화분 탓은 아니겠지? ..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자, 이렇게 화훼단지에서 산거는 끝이고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더그린가든센터에서 세개를 더 질렀다. 무늬 싱고니움 너무 이쁘고요?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;694&quot; data-origin-height=&quot;631&quot; data-filename=&quot;blob&quot; width=&quot;615&quot; height=&quot;559&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/B8JWI/btrfcZf2dSK/HLkjZOLzuPPvJ8k3kKMkd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/B8JWI/btrfcZf2dSK/HLkjZOLzuPPvJ8k3kKMkd1/img.png&quot; data-alt=&quot;처음 배송왔을때,, 싱고니움 둘이 아주 축 쳐져있었다..&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/B8JWI/btrfcZf2dSK/HLkjZOLzuPPvJ8k3kKMkd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FB8JWI%2FbtrfcZf2dSK%2FHLkjZOLzuPPvJ8k3kKMkd1%2Fimg.png&quot; data-origin-width=&quot;694&quot; data-origin-height=&quot;631&quot; data-filename=&quot;blob&quot; width=&quot;615&quot; height=&quot;559&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;처음 배송왔을때,, 싱고니움 둘이 아주 축 쳐져있었다..&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에 배송왓을때 무늬에 감탄하긴 했지만 상태가 좋지 않아서 슬펐는데..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;곧 허리를 세우고 멀쩡해졌길래, 슬릿분으로 호다닥&amp;nbsp; 분갈이 해줬다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;749&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNZdbr/btrfdWQ3wLd/LmmLCxQpPJBzwPHEuUm621/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cNZdbr/btrfdWQ3wLd/LmmLCxQpPJBzwPHEuUm621/img.png&quot; data-alt=&quot;분갈이 후 크리스마스 웅앵웅 싱고니움&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cNZdbr/btrfdWQ3wLd/LmmLCxQpPJBzwPHEuUm621/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNZdbr%2FbtrfdWQ3wLd%2FLmmLCxQpPJBzwPHEuUm621%2Fimg.png&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;749&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;분갈이 후 크리스마스 웅앵웅 싱고니움&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잎이 작고 오밀조밀한데 잎 마다 무늬가 다른것이 너무 매력적인 식물이어서 시켜봤는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 랜덤, 정해 지지않은 크리스마스의 매력.. 아름답다. 날 놀라게 해.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;932&quot; data-origin-height=&quot;837&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tlUIc/btrfib63le6/amdF7nkKzVJNIEP9yrIlpK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tlUIc/btrfib63le6/amdF7nkKzVJNIEP9yrIlpK/img.png&quot; data-alt=&quot;아름다운 립살리스 카스타&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tlUIc/btrfib63le6/amdF7nkKzVJNIEP9yrIlpK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtlUIc%2Fbtrfib63le6%2FamdF7nkKzVJNIEP9yrIlpK%2Fimg.png&quot; data-origin-width=&quot;932&quot; data-origin-height=&quot;837&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;아름다운 립살리스 카스타&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;와 생각외로 립살리스의 미모가 내 가슴을 울렸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇게 기대하지 않고, 행잉 플랜트로 해놓으려고 산건데 풍성함에 마음이 쏙 ~&amp;nbsp; 그리고 이 친구는 물을 적게 먹어서 그런지 오자마자 싱싱했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;915&quot; data-filename=&quot;blob&quot; width=&quot;603&quot; height=&quot;788&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buPRgj/btrfdZmyQl1/rW0QjSZsneuqNxATRW5s2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buPRgj/btrfdZmyQl1/rW0QjSZsneuqNxATRW5s2K/img.png&quot; data-alt=&quot;분갈이 해준 무늬 싱고니움 아름다워요.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buPRgj/btrfdZmyQl1/rW0QjSZsneuqNxATRW5s2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuPRgj%2FbtrfdZmyQl1%2FrW0QjSZsneuqNxATRW5s2K%2Fimg.png&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;915&quot; data-filename=&quot;blob&quot; width=&quot;603&quot; height=&quot;788&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;분갈이 해준 무늬 싱고니움 아름다워요.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 3일 지난 싱고니움은 아주 싱싱해졌다. 너무 이뻐요 새순도 나오고 있어서 만족 스럽다.. 더 잘키워봐야지..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;얘들 분갈이 해주는 김에 같이해준 무늬 몬스테라 유묘. 원래 한달은 안해주려고 했는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;애가 너무 덜렁거려서 못참고 슬릿분에 해줬다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;645&quot; data-origin-height=&quot;765&quot; data-filename=&quot;blob&quot; width=&quot;387&quot; height=&quot;459&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RPAxi/btrfiF08W2O/gl0WwTeekw7CemOSXWE5Sk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RPAxi/btrfiF08W2O/gl0WwTeekw7CemOSXWE5Sk/img.png&quot; data-alt=&quot;예쁘긴 한데.. 신엽 언제 낼꺼니?&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RPAxi/btrfiF08W2O/gl0WwTeekw7CemOSXWE5Sk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRPAxi%2FbtrfiF08W2O%2Fgl0WwTeekw7CemOSXWE5Sk%2Fimg.png&quot; data-origin-width=&quot;645&quot; data-origin-height=&quot;765&quot; data-filename=&quot;blob&quot; width=&quot;387&quot; height=&quot;459&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;예쁘긴 한데.. 신엽 언제 낼꺼니?&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;새순 언넝 났으면 좋겠는데?.. 그래도 무늬는 이쁘니까 기대할게 몬스테라야.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 이번 식물 쇼핑을 하면서 식물등도 두개나 샀다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;필립스와 보급형 식물등을 샀는데 필립스는 6만럭스가 나와서 우리 이쁜 무늬있는 친구들한테 쐬주고있고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보급형인 길다란 막대같은 식물등은 3천럭스가 나와서 고사리에 쏴주고 있다. 둘 다 아주 만족 스러워.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;하지만 필립스를 지탱하기 위한 이케아 독서등이 너무 약해서 (필립스 식물등이 정말 크긴하다)..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;계속 고개를 숙인다. 스탠드를 바꾸 어야 겠어.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 식물등까지 있으니까 완벽한 식물집사가 된 기분이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;완벽해진 기분...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>기록/식물</category>
      <category>립살리스</category>
      <category>무늬 몬스테라</category>
      <category>무늬 싱고니움</category>
      <category>무늬싱고니움</category>
      <category>식물등</category>
      <category>싱고니움</category>
      <category>카스타</category>
      <category>크리스마스 싱고니움</category>
      <category>크리스마스 트라이 컬러</category>
      <category>핑크 싱고니움</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/23</guid>
      <comments>https://deseul.tistory.com/entry/%EC%98%AC%ED%95%B4-%EB%A7%88%EC%A7%80%EB%A7%89-%EC%8B%9D%EB%AC%BC%EC%87%BC%ED%95%91#entry23comment</comments>
      <pubDate>Fri, 17 Sep 2021 15:45:14 +0900</pubDate>
    </item>
    <item>
      <title>정보처리기사 실기 공부 앱 추천</title>
      <link>https://deseul.tistory.com/entry/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC-%EC%8B%A4%EA%B8%B0-%EA%B3%B5%EB%B6%80-%EC%95%B1-%EC%B6%94%EC%B2%9C</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;9월 신청을 완료 하였다. 이번엔 꼭 붙어야지..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;벌써 재수. 꼭 이번년에 따기 !!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회사 다니면서 공부하기는 조금 어려울 것 같긴 하지만 못 할 정도는 아니니까!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;꼭 할수 있을것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정보처리기사 실기 시나공 2021과 실기 기출문제를 풀면서 나자신을 다잡아야지.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정보처리가사 앱이 있는데, 공부하기 편하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;알짜배기로 단답형, 코딩문제등을 보여준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;2388&quot; data-origin-height=&quot;1668&quot; data-filename=&quot;KakaoTalk_20210916_180543037.jpg&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bC506v/btrfcv7CxmD/XzP8hlnB2gBawyExgj2Th1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bC506v/btrfcv7CxmD/XzP8hlnB2gBawyExgj2Th1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bC506v/btrfcv7CxmD/XzP8hlnB2gBawyExgj2Th1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbC506v%2Fbtrfcv7CxmD%2FXzP8hlnB2gBawyExgj2Th1%2Fimg.jpg&quot; data-origin-width=&quot;2388&quot; data-origin-height=&quot;1668&quot; data-filename=&quot;KakaoTalk_20210916_180543037.jpg&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;2388&quot; data-origin-height=&quot;1668&quot; data-filename=&quot;KakaoTalk_20210916_180739611.jpg&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/O5u3i/btrfibMRB20/mSnD18gCEOEsef7mI9Kir1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/O5u3i/btrfibMRB20/mSnD18gCEOEsef7mI9Kir1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/O5u3i/btrfibMRB20/mSnD18gCEOEsef7mI9Kir1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FO5u3i%2FbtrfibMRB20%2FmSnD18gCEOEsef7mI9Kir1%2Fimg.jpg&quot; data-origin-width=&quot;2388&quot; data-origin-height=&quot;1668&quot; data-filename=&quot;KakaoTalk_20210916_180739611.jpg&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앱스토어에 정보처리기사 검색하면 정보처리기사 : Quiz이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이걸로만 공부하기 보다는 이걸 서브로 공부하면 좋은 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아무래도 앱은 이동할때 보기 편하니까!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;꼭 정처기 실기 합격하자 ~&amp;nbsp; !&lt;/p&gt;</description>
      <category>기록/공부</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/22</guid>
      <comments>https://deseul.tistory.com/entry/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC-%EC%8B%A4%EA%B8%B0-%EA%B3%B5%EB%B6%80-%EC%95%B1-%EC%B6%94%EC%B2%9C#entry22comment</comments>
      <pubDate>Fri, 17 Sep 2021 15:44:59 +0900</pubDate>
    </item>
    <item>
      <title>[JS] map() 메서드</title>
      <link>https://deseul.tistory.com/entry/JS-map-%EB%A9%94%EC%84%9C%EB%93%9C</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;프론트 작업을 하다보면 map, set등 여러가지 메서드를 쓰게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;백단에서 가져온 데이터를 앞단에서 가공해서 뿌려줘야 하기 때문입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1b1b1b;&quot;&gt;배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다.&lt;/span&gt;&lt;span style=&quot;color: #1b1b1b;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1b1b1b;&quot;&gt;저는 보통 배열에 다른것을 덧 붙여주거나 배열을 바꿔줄때 사용합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;arr.map(callback(currentValue[, index[, array]])[, thisArg])&lt;/b&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;매개변수&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;callback&lt;/b&gt;새로운 배열 요소를 생성하는 함수. 다음 세 가지 인수를 가집니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;currentValue : 처리할 현재 요소.&lt;/li&gt;
&lt;li&gt;index : Optional처리할 현재 요소의 인덱스.&lt;/li&gt;
&lt;li&gt;array : Optionalmap()을 호출한 배열.&lt;/li&gt;
&lt;li&gt;this : Arg Optionalcallback을 실행할 때&amp;nbsp;this로 사용되는 값.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1630372547951&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var testArray = [{ name: nabi, age:10 },{ name: gang, age: 8}];
testArray.map(function (row) {
    array.push(testArray[row]);
});&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT/JavaScript</category>
      <category>js</category>
      <category>map</category>
      <category>맵</category>
      <category>메서드</category>
      <category>자바스크립트</category>
      <category>자주쓰는메서드</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/21</guid>
      <comments>https://deseul.tistory.com/entry/JS-map-%EB%A9%94%EC%84%9C%EB%93%9C#entry21comment</comments>
      <pubDate>Thu, 16 Sep 2021 16:53:54 +0900</pubDate>
    </item>
    <item>
      <title>아보카도 키우기 (2)</title>
      <link>https://deseul.tistory.com/entry/%EC%95%84%EB%B3%B4%EC%B9%B4%EB%8F%84-%ED%82%A4%EC%9A%B0%EA%B8%B0-2</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;아보카도 키우기(1)을 작성한지도 벌써 한달이 지났다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한달여간 아보카도 성장기를 작성해보려고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1)이 씨앗에서 새싹(?)까지의 과정이라면&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에는 새싹에서 나무가 되기 중간까지의 과정이라고 할까..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;401&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rbZ5T/btrdxoG3wzZ/nscZmOMHoIj8si4PEx8tkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rbZ5T/btrdxoG3wzZ/nscZmOMHoIj8si4PEx8tkK/img.png&quot; data-alt=&quot;위에서 바라본 아보카도, 아직 분갈이 전&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rbZ5T/btrdxoG3wzZ/nscZmOMHoIj8si4PEx8tkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrbZ5T%2FbtrdxoG3wzZ%2FnscZmOMHoIj8si4PEx8tkK%2Fimg.png&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;401&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;위에서 바라본 아보카도, 아직 분갈이 전&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;7월 28일&lt;/b&gt;의 위에서 바라본 아보카도 이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아직 분갈이 전이라 플라스틱 화분인데, 아직 새싹이라 생각해서 반양지에서 키우다가 이제는 새싹까지는 아닌것 같아서 양지로 꺼내줬다. 이제 점점 잎이 커지고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분갈이를 해줘야하는데 생각만 계속 했다..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;428&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mg88a/btrdqRKgfUo/5aaJ84fs5VLBWwM6fthH9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mg88a/btrdqRKgfUo/5aaJ84fs5VLBWwM6fthH9k/img.png&quot; data-alt=&quot;잎이 조금 말린것 같은 아보카도, 분갈이가 시급!!&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mg88a/btrdqRKgfUo/5aaJ84fs5VLBWwM6fthH9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fmg88a%2FbtrdqRKgfUo%2F5aaJ84fs5VLBWwM6fthH9k%2Fimg.png&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;428&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;잎이 조금 말린것 같은 아보카도, 분갈이가 시급!!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;7월 30일&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;점점 커져가는 잎. 그런데 잎이 조금 말렸다... !&amp;nbsp; 분갈이 !! 위험위험&amp;nbsp; !! 바로 토분 시켰다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;447&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/riTcr/btrdqK5XVK7/KY94Yjk8zf2BPgqGLGIkk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/riTcr/btrdqK5XVK7/KY94Yjk8zf2BPgqGLGIkk1/img.png&quot; data-alt=&quot;플라스틱에서도 잘 커가는 아보카도..&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/riTcr/btrdqK5XVK7/KY94Yjk8zf2BPgqGLGIkk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FriTcr%2FbtrdqK5XVK7%2FKY94Yjk8zf2BPgqGLGIkk1%2Fimg.png&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;447&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;플라스틱에서도 잘 커가는 아보카도..&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;432&quot; data-origin-height=&quot;317&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFnHSB/btrdpCUmg9K/XALwDflaSND4Hia0u0Da8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFnHSB/btrdpCUmg9K/XALwDflaSND4Hia0u0Da8K/img.png&quot; data-alt=&quot;바짝 말린 옆모습&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFnHSB/btrdpCUmg9K/XALwDflaSND4Hia0u0Da8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFnHSB%2FbtrdpCUmg9K%2FXALwDflaSND4Hia0u0Da8K%2Fimg.png&quot; data-origin-width=&quot;432&quot; data-origin-height=&quot;317&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;바짝 말린 옆모습&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;8월 3일&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아직 시킨 토분이 오지 않아서 .. 말려가는 아보카도를 가슴아프게 쳐다만 보고 있었다.. 하지만 그동안에도 새잎이 더 나고 있다 ㅎㅎ 생명력 강한 녀석..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;427&quot; data-origin-height=&quot;499&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9lcCk/btrdyk5KCQC/koTSDL4kF4wMKkq3gaKgi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9lcCk/btrdyk5KCQC/koTSDL4kF4wMKkq3gaKgi1/img.png&quot; data-alt=&quot;처음으로 해를 직접 받은 아보카도. 조금 걱정했지만 어깨를 활짝펴고 있구나 !&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9lcCk/btrdyk5KCQC/koTSDL4kF4wMKkq3gaKgi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9lcCk%2Fbtrdyk5KCQC%2FkoTSDL4kF4wMKkq3gaKgi1%2Fimg.png&quot; data-origin-width=&quot;427&quot; data-origin-height=&quot;499&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;처음으로 해를 직접 받은 아보카도. 조금 걱정했지만 어깨를 활짝펴고 있구나 !&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;8월 14일&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원래 분갈이는 11일날 해줬는데, 분갈이 급하게 하느라 사진을 못찍었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쨌든 토분으로 멋있게 분갈이하고 식물대에 놓여진 이쁜 아보카도 옆은 몬스테라와 플로리다 크라운이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;너무 이쁘고요. 분갈이를 해주는데 흙이 아주 ,, 영양분이 다 빠진듯 퍽퍽하고 축축했다(배수구멍이 없었기 때문) 그런 열악한 화분에 있다가 토분이랑 지렁이 분변토로 갈아주니 잎이 아주 쫙 퍼졌다! 그리고 이 때는 잎색도 좀 연해졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;577&quot; data-filename=&quot;KakaoTalk_20210829_195526605_05-removebg-preview.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cCFJTx/btrdpMiQUUX/dk0iDAU5ZILLojdj67yuqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cCFJTx/btrdpMiQUUX/dk0iDAU5ZILLojdj67yuqK/img.png&quot; data-alt=&quot;아보카도 얼빡샥, 한동안 새싹 안나오다가 조그만 새잎이 올라오길래 찍어보았다. 아주 잎이 커졌쥬?&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cCFJTx/btrdpMiQUUX/dk0iDAU5ZILLojdj67yuqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcCFJTx%2FbtrdpMiQUUX%2Fdk0iDAU5ZILLojdj67yuqK%2Fimg.png&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;577&quot; data-filename=&quot;KakaoTalk_20210829_195526605_05-removebg-preview.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;아보카도 얼빡샥, 한동안 새싹 안나오다가 조그만 새잎이 올라오길래 찍어보았다. 아주 잎이 커졌쥬?&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;8월 18일&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잎이 이제 나름 커지고, 곧게 서서 지지대를 해줄까 했는데, 알아서 목질화 될 것 같다. 내 아보카도는 강하게 키운다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;알아서 나무가 되어라 아보카도 ! 토분(15cm)안에서 아주 잘 자라고 있다. 토분을 사준 보람이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기 베란다가 해가 아주 쎄서 걱정했는데 잎은 타지않고 오히려 잘 자라고 있다. 너무 강한 해라면 실내로 들여주긴 했다. 역시 열대에서 자라는 친구&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;401&quot; data-origin-height=&quot;622&quot; data-filename=&quot;KakaoTalk_20210829_195526605_06-removebg-preview (2).png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/24N8c/btrdwTm09NS/uyie1lVCOIUFozQl2mm8Q0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/24N8c/btrdwTm09NS/uyie1lVCOIUFozQl2mm8Q0/img.png&quot; data-alt=&quot;얼굴만 둥둥 떠있는 아보카도, 누끼가 잘 안따졌네.. ㅎ ㅎ&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/24N8c/btrdwTm09NS/uyie1lVCOIUFozQl2mm8Q0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F24N8c%2FbtrdwTm09NS%2Fuyie1lVCOIUFozQl2mm8Q0%2Fimg.png&quot; data-origin-width=&quot;401&quot; data-origin-height=&quot;622&quot; data-filename=&quot;KakaoTalk_20210829_195526605_06-removebg-preview (2).png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;얼굴만 둥둥 떠있는 아보카도, 누끼가 잘 안따졌네.. ㅎ ㅎ&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;8월 22일&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아보카도의 잎이 축 처져있다. 비가 계속 와서 그런지. 잎이 쳐지질 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보기 싫어서 안본지 일주일된것 같다.(사실 매일 봄) 그 뒤로 사진을 안찍어서 이게 마지막인데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘크긴했지만 잎으로 자기의 마음을 아주 잘 표현한다. 무언가 속상한 일이 있었나보다. 무슨일이 있었을꼬....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;영양제를 하나 줘서 기분을 풀어줘야 겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아보카도 키우기 (2) 끗 !&lt;/p&gt;</description>
      <category>기록/식물</category>
      <category>나무</category>
      <category>새싹</category>
      <category>식물</category>
      <category>식물 키우기</category>
      <category>식물키우기</category>
      <category>씨앗에서새싹</category>
      <category>아보카도</category>
      <category>아보카도 키우기</category>
      <category>아보카도나무</category>
      <category>아보카도키우기</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/20</guid>
      <comments>https://deseul.tistory.com/entry/%EC%95%84%EB%B3%B4%EC%B9%B4%EB%8F%84-%ED%82%A4%EC%9A%B0%EA%B8%B0-2#entry20comment</comments>
      <pubDate>Sun, 29 Aug 2021 20:23:24 +0900</pubDate>
    </item>
    <item>
      <title>칼라디움 플로리다 크라운</title>
      <link>https://deseul.tistory.com/entry/%EC%B9%BC%EB%9D%BC%EB%94%94%EC%9B%80-%ED%94%8C%EB%A1%9C%EB%A6%AC%EB%8B%A4-%ED%81%AC%EB%9D%BC%EC%9A%B4</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;너무 이쁜 칼라디움 플로리다 크라운...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그린 몬스테라와 보스턴 고사리같은 쉬운 입문템만 기르다가 플크를 보게 되었는데..(플로리다 크라운 이하 플크)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;너무 이뻐서 안사고 배길수가 없었다. 말도 안돼 마치.. 그림같은 플크&lt;/p&gt;
&lt;figure contenteditable=&quot;false&quot; data-ke-type=&quot;emoticon&quot; data-ke-align=&quot;alignCenter&quot; data-emoticon-type=&quot;friends1&quot; data-emoticon-name=&quot;017&quot; data-emoticon-isanimation=&quot;false&quot; data-emoticon-src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/017.gif&quot;&gt;&lt;img src=&quot;https://t1.daumcdn.net/keditor/emoticon/friends1/large/017.gif&quot; width=&quot;150&quot; /&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;577&quot; data-filename=&quot;KakaoTalk_20210827_011155292-removebg-preview.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6mdB3/btrdkaW6jl1/MEUdHjDAEtzaHvbR8wwRa0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6mdB3/btrdkaW6jl1/MEUdHjDAEtzaHvbR8wwRa0/img.png&quot; data-alt=&quot;갓 배송온 어여쁜 자태의 플로리다 크라운&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6mdB3/btrdkaW6jl1/MEUdHjDAEtzaHvbR8wwRa0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6mdB3%2FbtrdkaW6jl1%2FMEUdHjDAEtzaHvbR8wwRa0%2Fimg.png&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;577&quot; data-filename=&quot;KakaoTalk_20210827_011155292-removebg-preview.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;갓 배송온 어여쁜 자태의 플로리다 크라운&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보자마자 너무 이뻐서 아니 이런 무늬가 자연에 존재한단 말이야? 하고 감탄을 연발했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 사자마자 베란다로 바로 직행. 토분을 사고 분갈이 해줘야지 하고 살짝 방치해놓은 탓에 사진이 얼마 없다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;몬스테라 공중뿌리 찍은 사진에 빼꼼 등장한 칼라디움.,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;살짝 등장한 너의 모습에도 아름다움이 잔뜩 있는걸? 내 마음에 쏙들어 정말&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;577&quot; data-filename=&quot;KakaoTalk_20210827_011244133-removebg-preview.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oqFcW/btrdlxqJAVF/wCqoyzxL7XP0MVq4TSJqvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oqFcW/btrdlxqJAVF/wCqoyzxL7XP0MVq4TSJqvK/img.png&quot; data-alt=&quot;사진의 주인공은 몬스테라같지만 사실 플크&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oqFcW/btrdlxqJAVF/wCqoyzxL7XP0MVq4TSJqvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoqFcW%2FbtrdlxqJAVF%2FwCqoyzxL7XP0MVq4TSJqvK%2Fimg.png&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;577&quot; data-filename=&quot;KakaoTalk_20210827_011244133-removebg-preview.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;사진의 주인공은 몬스테라같지만 사실 플크&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 드디어 시킨 토분이 와서 분갈이를 시켜주었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;생각보다 칼라디움이 자잘한게 많아서 큰 화분을 샀다. 15cm.. 나름 크다고 생각중&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두개로 갈라줄까 했지만 함께있는게 이뻐서 하나로&amp;nbsp; ^^ 절대 귀찮아서는 아님.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;1280&quot; data-filename=&quot;KakaoTalk_20210827_011313303_01.jpg&quot; width=&quot;438&quot; height=&quot;584&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qxA7A/btrdlAOrog5/Ci3Kk7SCSHbDPHyFQFO47K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qxA7A/btrdlAOrog5/Ci3Kk7SCSHbDPHyFQFO47K/img.jpg&quot; data-alt=&quot;모카색 토분에 들어간 아리따운 플크 내맘속에 찜꽁&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qxA7A/btrdlAOrog5/Ci3Kk7SCSHbDPHyFQFO47K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqxA7A%2FbtrdlAOrog5%2FCi3Kk7SCSHbDPHyFQFO47K%2Fimg.jpg&quot; data-origin-width=&quot;960&quot; data-origin-height=&quot;1280&quot; data-filename=&quot;KakaoTalk_20210827_011313303_01.jpg&quot; width=&quot;438&quot; height=&quot;584&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;모카색 토분에 들어간 아리따운 플크 내맘속에 찜꽁&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;토분에 분갈이 해주고나니 잎이 더 돋보인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아름답다. 이 맛에 돈번다. 너 때문에 돈번다 칼라디움.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보정한 플크&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내 눈엔 이것보다 이쁜데, 사진이 못 담는다 아름다움을...&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;775&quot; data-origin-height=&quot;1033&quot; data-filename=&quot;blob&quot; width=&quot;360&quot; height=&quot;480&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WZSG6/btrdkaiw0Fc/sp2XYSTMARoFWIpDESz7d1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WZSG6/btrdkaiw0Fc/sp2XYSTMARoFWIpDESz7d1/img.png&quot; data-alt=&quot;예뻐 그냥 예뻐&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WZSG6/btrdkaiw0Fc/sp2XYSTMARoFWIpDESz7d1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWZSG6%2Fbtrdkaiw0Fc%2Fsp2XYSTMARoFWIpDESz7d1%2Fimg.png&quot; data-origin-width=&quot;775&quot; data-origin-height=&quot;1033&quot; data-filename=&quot;blob&quot; width=&quot;360&quot; height=&quot;480&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;예뻐 그냥 예뻐&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;칼라디움을 하나 들였으니, 다음도 칼라디움일듯 ..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;무늬가 예술이다.. 스트로베리 스타랑 문라이트. 이름도 어쩜 그렇게 이쁜지.. 다음에는 네녀석들이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;칼라디움 잘 키워야지 너무 예뻐&lt;/p&gt;</description>
      <category>기록/식물</category>
      <category>식물</category>
      <category>식물키우기</category>
      <category>칼라디움</category>
      <category>칼라디움 크라운</category>
      <category>칼라디움 플로리다 크라운</category>
      <category>크라운</category>
      <category>플로리다 크라운</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/19</guid>
      <comments>https://deseul.tistory.com/entry/%EC%B9%BC%EB%9D%BC%EB%94%94%EC%9B%80-%ED%94%8C%EB%A1%9C%EB%A6%AC%EB%8B%A4-%ED%81%AC%EB%9D%BC%EC%9A%B4#entry19comment</comments>
      <pubDate>Fri, 27 Aug 2021 01:26:23 +0900</pubDate>
    </item>
    <item>
      <title>[JAVA] Collection (1)</title>
      <link>https://deseul.tistory.com/entry/JAVA-Collection-1</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;회사를 들어오면서 data를 쪼개고 붙이고 보내고 받고 하는일을 가장 많이 하는데, 그 때 제일 중요한 개념이다. 자바에서만 쓰이는것은 아니고, 여러 언어에서 비슷한 개념이 많기 때문에 자바 콜렉션에 대해 정리 하기로 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Java에서 컬렉션(Collection)이란 데이터의 집합, 그룹을 의미하며&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JCF(Java Collection FrameWork)란, 데이터군을 저장하는 클래스들을 표준화한 설계를 뜻한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컬렉션 프레임웍은 컬렉션, 다수의 데이터를 다루는 데 필요한 다양하고 풍부한 클래스들을 제공한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 인터페이스&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컬렉션 프레임웍에서는 컬렉션데이터 그룹을 크게 3가지 타입이 존재한다고 인식하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스를 정의하였다. 그리고 인터페이스 List와 Set의 공통된 부분을 다시 뽑아서 새로운 인터페이스인 Collection을 추가로 정의하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 140px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style9&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 12.4418%; height: 20px; text-align: center;&quot;&gt;인터페이스&lt;/td&gt;
&lt;td style=&quot;width: 87.5582%; height: 20px; text-align: center;&quot;&gt;특 징&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 12.4418%; height: 40px; text-align: center;&quot; rowspan=&quot;2&quot;&gt;List&lt;/td&gt;
&lt;td style=&quot;width: 87.5582%; height: 20px;&quot;&gt;순서가 있는 데이터의 집합, 데이터의 중복을 허용한다.&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 87.5582%; height: 20px;&quot;&gt;구현클래스 : ArrayList, LinkedList, Stack, Vector 등&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 12.4418%; height: 40px; text-align: center;&quot; rowspan=&quot;2&quot;&gt;Set&lt;/td&gt;
&lt;td style=&quot;width: 87.5582%; height: 20px;&quot;&gt;순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않는다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 87.5582%; height: 20px;&quot;&gt;구현클래스 : HashSet, TreeSet 등&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 12.4418%; height: 40px; text-align: center;&quot; rowspan=&quot;2&quot;&gt;Map&lt;/td&gt;
&lt;td style=&quot;width: 87.5582%; height: 20px;&quot;&gt;키(key)와 값(value)의 쌍(pair)으로 이루어진 데이터의 집합.&lt;br /&gt;순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값을 중복을 허용한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 87.5582%; height: 20px;&quot;&gt;구현클래스 : HashMap, TreeMap, Hashtable, Properties 등&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;현재 프론트개발을 주로 하고있는데, Map형식의 데이터는 정말 많이 본다. JS로 개발을 하는데도, 한 언어를 알아두면 다른 언어를 배우기 쉽다고 느낄때는 같은 개념을 공유하고 있을 때 이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Collection 인터페이스는 컬렉션 클래스에 저장된 데이터를 읽고, 추가하고 삭제하는 등 컬렉션을 다루는데 가장 기본적인 메서드들을 정의하고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;1) List 인터페이스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;nbsp; 중복을 허용하면서 저장순서가 유지되는 컬렉션을 구현하는데 사용된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;187&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FQFjy/btrdeXraNEk/yO05ke2BFxDtzyEUlWzxPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FQFjy/btrdeXraNEk/yO05ke2BFxDtzyEUlWzxPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FQFjy/btrdeXraNEk/yO05ke2BFxDtzyEUlWzxPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFQFjy%2FbtrdeXraNEk%2FyO05ke2BFxDtzyEUlWzxPK%2Fimg.png&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;187&quot; data-filename=&quot;blob&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;2) Set 인터페이스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Set인터페이스는 중복을 허용하지 않고 저장순서가 유지되지 않는 컬렉션 클래스를 구현하는데 사용된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Set인터페이스를 구현한 클래스로는 HashSet, TreeSet 등이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;3) Map 인터페이스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Map인터페이스는 키(key)와 값(value)을 하나의 쌍으로 묶어서 저장하는 컬렉션 클래스를 구현하는 데 사용된다. 키는 중복될 수 없지만 값은 중복을 허용한다. 기존에 저장된 데이터와 중복된 키와 값을 저장하면 기존의 값은 없어지고 마지막에 저장된 값이 남게 된다. Map인터페이스를 구현한 클래스로는 Hashtable, HashMap, LinkedHashMap, SortedMap, TreeMap등이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;4) Map.Entry 인터페이스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Map.Entry인터페이스는 Map인터페이스의 내부 인터페이스이다. 내부 클래스와 같이 인터페이스도 인터페이스 안에 인터페이스를 정의하는 내부 인터페이스(Inner interface)를 정의하는 것이 가능하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;Map에 저장되는 key-value쌍을 다루기 위해 내부적으로 Entry인터페이스를 정의해 놓았다. 이것은 보다 객체지향적으로 설계하도록 유도하기 위한 것으로 Map인터페이스를 구현하는 클래스에서는 Map.Entry인터페이스도 함께 구현해야한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1.2 ArrayList&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컬렉션 프레임웍에서 가장 많이 사용되는 컬렉션 클래스일 것이다. 이 ArrayList는 List인터페이스를 구현하기 때문에 데이터의 저장순서가 유지되고 중복을 허용한다는 특징을 갖는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ArrayList는 Object배열을 이용해서 데이터를 순차적으로 저장한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1.3 LinkedList&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;배열은 가장 기본적인 형태의 자료구조로 구조가 간단하며 사용하기 쉽고 데이터를 읽어 오는데 걸리는 시간이 가장 빠르다는 장점이 있다. 단점은&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 크기를 변경할 수 없다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 크기를 변경할 수 없으므로 새로운 배열을 생성해서 데이터를 복사해야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 실행속도를 향상시키기 위해서는 충분히 큰 크기의 배열을 생성해야 하므로 메모리가 낭비된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 비순차적인 데이터의 추가 또는 삭제에 시간이 많이 걸린다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 차례대로 데이터를 추가하고 마지막에서부터 데이터를 삭제하는 것은 빠르지만,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 배열의 중간에 데이터를 추가하려면, 빈자리를 만들기 위해 다른 데이터들을 복사 해서 이동해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 배열의 단점을 보완하기 위해서 링크드 리스트라는 자료구조가 고안되었다. 배열은 모든 데이터가 연속적으로 존재하지만 링크드 리스트는 불연속적으로 존재하는 데이터를 서로 연결(link)한 형태로 구성되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;링크드 리스트에서의 데이터 삭제는 간단하다. 삭제하고자 하는 요소의 이전요소가 삭제하고자 하는 요소의 다음요소를 참조하도록 변경하기만 하면 된다. 단 하느이 참조만 변경하면 삭제가 이루어지는 것이다. 배열처럼 데이터를 이동하기 위해 복사하는 과정이 없기 때문에 처리속도가 매우 빠르다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;새로운 데이터를 추가할 때는 새로운 요소를 생성한 다음 추가하고자 하는 위치의 이전 요소의 참조를 새로운 요소에 대한 참조로 변경해주고, 새로운 요소가 그 다음 요소를 참조하도록 변경하기만 하면 되므로 처리속도가 매우 빠르다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;링크드 리스트는 이동방향이 단방향이기 떄문에 다음 요소에 대한 접근은 쉽지만 이전요소에 대한 접근은 어렵다. 이 점을 보완한 것이 더블 링크드 리스트(이중 연결리스트, doubly linked list)이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더블 링크드 리스트는 단순히 링크드 리스트에 참조변수를 하나 더 추가하여 다음 요소에 대한 참조뿐 아니라 이전 요소에 대한 참조가 가능하도록 했을 뿐, 그 외에는 링크드 리스트와 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더블 링크드 리스트는 링크드 리스트보다 각 요소에 대한 접근과 이동이 쉽기 때문에 링크드 리스트보다 더 많이 사용된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #dddddd;&quot;&gt;&amp;nbsp;출처-자바의정석&lt;/span&gt;&lt;/p&gt;</description>
      <category>IT/JAVA</category>
      <category>arraylist</category>
      <category>Collection</category>
      <category>java</category>
      <category>LinkedList</category>
      <category>list</category>
      <category>리스트</category>
      <category>자료구조</category>
      <category>자바</category>
      <category>콜렉션</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/18</guid>
      <comments>https://deseul.tistory.com/entry/JAVA-Collection-1#entry18comment</comments>
      <pubDate>Fri, 27 Aug 2021 00:58:52 +0900</pubDate>
    </item>
    <item>
      <title>프로시저(PROCEDURE)란?</title>
      <link>https://deseul.tistory.com/entry/%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80PROCEDURE%EB%9E%80</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;저장 프로시저 또는 스토어드 프로시저(stored procedure)는 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터베이스에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템에 저장한(지속성)것으로, 영구저장모듈(Persistent Storage Module)이라고 불립니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터베이스 언어 표준&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://ko.wikipedia.org/wiki/SQL&quot;&gt;SQL&lt;/a&gt;에서는 SQL / PSM 기준으로 책정되어 있다. 벤더(제조사) 각사 모두 정적, 동적 SQL에 커서 처리 및 제어 구문, 예외 처리 등을 포함한 사양의 확장 언어로 절차를 설명할 수 있는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://ko.wikipedia.org/wiki/DBMS&quot;&gt;DBMS&lt;/a&gt;를 제공하는 경우가 많다. 또한&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://ko.wikipedia.org/wiki/C_%EC%96%B8%EC%96%B4&quot;&gt;C 언어&lt;/a&gt;로 작성된&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://ko.wikipedia.org/wiki/%EC%BB%B4%ED%8C%8C%EC%9D%BC&quot;&gt;컴파일&lt;/a&gt;한 외부 모듈(공유 라이브러리) 및 Java 클래스 라이브러리에서 함수나&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://ko.wikipedia.org/wiki/%ED%81%B4%EB%9E%98%EC%8A%A4_%EB%A9%94%EC%86%8C%EB%93%9C&quot;&gt;클래스 메소드&lt;/a&gt;를 호출하는 것으로 실현하는 &amp;lsquo;외부 프로시저&amp;rsquo; 기능을 구현하는 것도 있다. 저장프로시저를 사용하여 다음과 같은 장점이 있다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;하나의 요청으로 여러 SQL문을 실행 할 수 있다. (네트워크에 대한 부하를 줄일 수 있다.)&lt;/li&gt;
&lt;li&gt;미리 구문 분석 및 내부 중간 코드로 변환을 끝내야 하므로 처리 시간이 줄어든다.&lt;/li&gt;
&lt;li&gt;데이터베이스&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://ko.wikipedia.org/wiki/%ED%8A%B8%EB%A6%AC%EA%B1%B0&quot;&gt;트리거&lt;/a&gt;와 결합하여 복잡한 규칙에 의한 데이터의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://ko.wikipedia.org/wiki/%EC%B0%B8%EC%A1%B0%EB%AC%B4%EA%B2%B0%EC%84%B1&quot;&gt;참조무결성&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;유지가 가능하게 된다. 간단히 말하면 응용 프로그램 측 로직을 가지지 않고도 데이터베이스의 데이터 앞뒤가 맞게 될 수 있다.&lt;/li&gt;
&lt;li&gt;JAVA 등의 호스트 언어와 SQL 문장이 확실하게 분리된 소스 코드의 전망이 좋아지는 것, 또한 웹사이트 등 운용 중에도 저장프로시저의 교체에 의한 수정이 가능하기 때문에 보수성이 뛰어나다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저장프로시저를 많이 사용하면 다음과 같은 단점이 있다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터베이스 제품에 대해 설명하는 구문 규칙이 SQL / PSM 표준과의 호환성이 낮기 때문에 코드 자산으로의 재사용성이 나쁘다.&lt;/li&gt;
&lt;li&gt;비즈니스 로직의 일부로 사용하는 경우 업무의 사양 변경 시 외부 응용 프로그램과 함께 저장프로시저의 정의를 변경할 필요가 있다. 이때 불필요한 수고와 변경 실수에 의한 장애를 발생시킬 가능성이 있다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;백과 구분되어 프로시저의 쿼리를 바꿔도 백엔드 파일에는 영향이 가지 않기 때문에 유지보수가 유리합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT/DB</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/17</guid>
      <comments>https://deseul.tistory.com/entry/%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80PROCEDURE%EB%9E%80#entry17comment</comments>
      <pubDate>Tue, 24 Aug 2021 22:16:06 +0900</pubDate>
    </item>
    <item>
      <title>취업성공패키지 후기</title>
      <link>https://deseul.tistory.com/entry/%EC%B7%A8%EC%97%85%EC%84%B1%EA%B3%B5%ED%8C%A8%ED%82%A4%EC%A7%80-%ED%9B%84%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;웹 퍼블리셔로 1년 일하던 중 퍼블리싱의 미래가 너무 불투명 해서 다니는 중에도 몇년하고 그만둬야지 했는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우연찮게 기회(?)가 되어서 갑작스럽게 그만두었다. 다들 코로나라 다시 취업 못할수도 있다고 말렸지만 내 인생이니까.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;20년 9월초 계획에 없이 갑작스럽게 백수 상태가 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 바로 학원을 알아보았다. 세부 계획은 없었지만 개발자로 전향해야겠다는 대략적 그림은 있었기 때문.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발자 양성 국비지원 학원은 정말 많았다. 하지만 강사와 학생의 질이 중요하다는 생각 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경기도는 거르고 서울에 제일 유명한 세 학원만 알아보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비트, 쌍용교육센타 그리고 지금은 기억안나는 상담사가 엄청나게 집착했던 한 학원( 꽤 규모가 있어서 학원 면접까지 보고 합격 했지만 강사와 수업 시간이 맘에들지 않아 캔슬했다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 개발 학원이 그러는지는 모르겠지만 쌍용교육센터는 학원 면접을 보았다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 돈주고 다니는 학원인데 무슨 면접?( 국가가 내주는 거긴 하지만) 했지만 그래도 그나마 괜찮다는 곳에 다녀야 할것 같아서 면접을 보러갔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나 포함 3명과 면접관이 다대일로 면접을 봤는데, 개발자 초봉이 2700이라는 둥 (2020년 10월이었는데) 무조건 SI들어가서 실력을 쌓아야 한다는 둥 정말 맘에 안들었지만, 편성된 강의의 강사님이 좋아서 견디고 등록했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;학원을 알아보는 동시에 취업성공패키지를 사이버로 신청해서 필요한 서류도 보냈다. 여러서류를 뽑으러 주민센터도 가고, 또 서류 사진찍어 보내고....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;생각보다는 일찍 신청이 마무리 되어서(2주정도) 상담사를 배정받았다. 상담사도 선택할수 있다고 하던데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이미 학원을 정한 상태라서 자동 배정으로 첫 상담을 갔다. 그때가 9월말? 쯤었던 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1차 상담을 하러 상담하는 곳에 가서 이미 학원도 정했고 취업하려는 분야도 확실하다고 하니&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;학원 개강시기를 물어 보셨고, 학원개강이 10월 말이었다. 상담기간이 촉박하지만 상담자 분이 이미 취업목표가 확실하고 하니 상담시기를 줄여서 학원 등록을 도와준다고 하셨다. 상담은 세네번(정확히 기억이 안난다) 나갔던 것 같다. 형식적인 성격 검사와 취업에 관한 상담을 하였다. 사실상 상담사분이 나보다 개발에 대한건 모르기 때문에 그냥 2차인 학원을 위해 상담을 다녔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바야흐로 10월 29일 개강일. 하루가 밀려서 29일에 개강했는데 너무 떨렸다. 학원을 가니 그닥 크지 않은 강의실에 30명 가량이 따닥따닥 붙어 있었다. 코로난데 괜찮을까? 생각했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;역시다 2단계가 되어서 일주일 그렇게 다니고 바로 재택수업을 진행했다. 일주일에 3번 학원을 나가고 2번을 줌을 통한 재택수업을 하였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안그래도 어려운 개발수업인데, 재택으로 될까?란 생각을 했다. 결국 취업을 했으니 충분한거 겠지?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그렇게 JAVA기초강의를 시작했다. 자바 끝내고 프론트 HTML, CSS, JS 그리고 VUE.JS조금&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막 한달은 포트폴리오에 쓸 그룹 프로젝트 였다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2021년 4월 30일 5개월 학원 수업이 끝이 났다. 길다면 길고 짧다면 짧은 기간이었는데, 피상적인 것 만 배우고 취업이라니 내가 할수 있을까에대한 엄청난 스트레스가 있었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 학원이 끝나자마자. 5월 3일 개강 토익학원을 등록했다. 한달 과정이었는데, 매일 학원을 나가는 것이었다. 9시에 나가는 것이라 개발학원을 끝나도 쉬지않고 학원을 나가야 했다. 헤이해지지 않고 바로 취업하려는 몸부림 이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;취업 지원을 했던 곳에서 연락이 많이 와서 일주일에 세번을 면접을 갔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코로나라는 벽이 나에게는 이점으로 작용한 것이 확실하다. 웹이나 개발 쪽에서는 채용을 늘렸기 때문이다. 비전공인 내가 발에 불나게 면접을 다녔으니....!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금은 3개월째 다니고 있는중인데 역시 개발자는 엉덩이다. 배우자. 견디자. 할수있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;재능도 재능이지만 보고 배우고 견디고 해내는 것에 대한 성취감이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 비전공 개발자분들도 화이팅.&lt;/p&gt;</description>
      <category>기록/공부</category>
      <category>it학원</category>
      <category>개발자</category>
      <category>개발취업</category>
      <category>개발학원</category>
      <category>국비지원학원</category>
      <category>비전공개발자</category>
      <category>취업</category>
      <category>취업성공</category>
      <category>취업성공패키지</category>
      <category>학원출신개발</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/16</guid>
      <comments>https://deseul.tistory.com/entry/%EC%B7%A8%EC%97%85%EC%84%B1%EA%B3%B5%ED%8C%A8%ED%82%A4%EC%A7%80-%ED%9B%84%EA%B8%B0#entry16comment</comments>
      <pubDate>Tue, 24 Aug 2021 22:12:12 +0900</pubDate>
    </item>
    <item>
      <title>아보카도 키우기 (1)</title>
      <link>https://deseul.tistory.com/entry/%EC%95%84%EB%B3%B4%EC%B9%B4%EB%8F%84-%ED%82%A4%EC%9A%B0%EA%B8%B0</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;아보카도를 키우기 시작한지는 꽤 되었지만, 이제야 글을 써본다&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;577&quot; data-filename=&quot;20210527_200742-removebg-preview.png&quot; width=&quot;394&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cTb5gL/btraBd9XUev/ZcKJ9ESVybkhn9LjcFfzk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cTb5gL/btraBd9XUev/ZcKJ9ESVybkhn9LjcFfzk0/img.png&quot; data-alt=&quot;21.05.28 흙에심은 아보카도와 소주잔에 담긴 아보카도.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cTb5gL/btraBd9XUev/ZcKJ9ESVybkhn9LjcFfzk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTb5gL%2FbtraBd9XUev%2FZcKJ9ESVybkhn9LjcFfzk0%2Fimg.png&quot; data-origin-width=&quot;433&quot; data-origin-height=&quot;577&quot; data-filename=&quot;20210527_200742-removebg-preview.png&quot; width=&quot;394&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;21.05.28 흙에심은 아보카도와 소주잔에 담긴 아보카도.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;원래는 레몬을 키우고 싶었으나, 레몬보다 아보카도를 더 자주 먹게 되어서 아보카도를 심기로 했다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5월 28일&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;물보다는 흙이 더 잘자란다고 하길래,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;영양제가 들었던 플라스틱통에 영양제를 옮기고 아보카도를 심어줬다. 흙은 분갈이 할때쓰는 상토이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;아보카도 앞에는 귀여운 나의 보스턴 고사리이다. 지금은 더 많이 컸다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;저렇게 놔뒀는데, 시간이 지나고 지나도 깨지질 않아서 포기 하고있었는데&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;물에 있던 녀석이 깨져서 사진 찍을 틈도 없이 흙에 있는 녀석은 버리고 흙으로 옮겨줬다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;491&quot; data-origin-height=&quot;521&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dUmEZN/btrav6RjRXp/bC0Ap0d36WTDcp5yMBhdK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dUmEZN/btrav6RjRXp/bC0Ap0d36WTDcp5yMBhdK0/img.png&quot; data-alt=&quot;바크로 소중히 덮어서 보이지 않는 아보카도.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dUmEZN/btrav6RjRXp/bC0Ap0d36WTDcp5yMBhdK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdUmEZN%2Fbtrav6RjRXp%2FbC0Ap0d36WTDcp5yMBhdK0%2Fimg.png&quot; data-origin-width=&quot;491&quot; data-origin-height=&quot;521&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;바크로 소중히 덮어서 보이지 않는 아보카도.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;사실 글 쓸 생각이 없었기 때문에 중간중간 사진이 없는데,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;5월 28일이 수경 재배 시작한 날이고,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;6월 19일&lt;/b&gt;이 씨앗이 두쪽으로 깨져서 흙으로 옮겨심은 날이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이제 또 기다림의 시간이다.. 흙으로 옮겨심었으니 새싹이 나겠지..&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;플라스틱 통이라 물은 적당히 넣어두고 물이 마르지 않게 바크로 덮어 놨다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1290&quot; data-origin-height=&quot;953&quot; width=&quot;360&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8EIq5/btraqSsOwMz/hqPkWImchEtQk0hLU8RmW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8EIq5/btraqSsOwMz/hqPkWImchEtQk0hLU8RmW1/img.png&quot; data-alt=&quot;빼꼼 나온 새싹.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8EIq5/btraqSsOwMz/hqPkWImchEtQk0hLU8RmW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8EIq5%2FbtraqSsOwMz%2FhqPkWImchEtQk0hLU8RmW1%2Fimg.png&quot; data-origin-width=&quot;1290&quot; data-origin-height=&quot;953&quot; width=&quot;360&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;빼꼼 나온 새싹.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;7월 7일&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;드디어 새싹이 빼꼼 나왔다. 너무나 기다렸어.. 거의 3주만에 새싹이 나왔다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;728&quot; data-origin-height=&quot;696&quot; width=&quot;342&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YCM86/btrasVa2asC/q5HLnC4iBHd9U84KsePkCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YCM86/btrasVa2asC/q5HLnC4iBHd9U84KsePkCk/img.png&quot; data-alt=&quot;하루만에 더 자란 아보카도&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YCM86/btrasVa2asC/q5HLnC4iBHd9U84KsePkCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYCM86%2FbtrasVa2asC%2Fq5HLnC4iBHd9U84KsePkCk%2Fimg.png&quot; data-origin-width=&quot;728&quot; data-origin-height=&quot;696&quot; width=&quot;342&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;하루만에 더 자란 아보카도&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;7월 8일&lt;/b&gt; .&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그동안 기다림을 만회하듯이 하루만에 불쑥 튀어나온 아보카도.!&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이 뒤로는 하루가 무섭게 컸다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;447&quot; data-filename=&quot;image-removebg-preview.png&quot; width=&quot;394&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2b33c/btrasukPI8W/RGEuFXtBfBzwJkO2QK6ni1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2b33c/btrasukPI8W/RGEuFXtBfBzwJkO2QK6ni1/img.png&quot; data-alt=&quot;이제는 씨앗이 아니예요.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2b33c/btrasukPI8W/RGEuFXtBfBzwJkO2QK6ni1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2b33c%2FbtrasukPI8W%2FRGEuFXtBfBzwJkO2QK6ni1%2Fimg.png&quot; data-origin-width=&quot;558&quot; data-origin-height=&quot;447&quot; data-filename=&quot;image-removebg-preview.png&quot; width=&quot;394&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이제는 씨앗이 아니예요.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;7월 12일&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;벌써 쑤욱 자라서 완연한 새싹의 모습이 되었다. 붉은색, 푸른색이 섞여있어서 너무 예뻤다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1112&quot; data-origin-height=&quot;793&quot; width=&quot;755&quot; height=&quot;539&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9bqzb/btraqstshQ3/j2VgJgRhKhQ3qV9K81inT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9bqzb/btraqstshQ3/j2VgJgRhKhQ3qV9K81inT1/img.png&quot; data-alt=&quot;다른 식물 친구들과 찰칵.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9bqzb/btraqstshQ3/j2VgJgRhKhQ3qV9K81inT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9bqzb%2FbtraqstshQ3%2Fj2VgJgRhKhQ3qV9K81inT1%2Fimg.png&quot; data-origin-width=&quot;1112&quot; data-origin-height=&quot;793&quot; width=&quot;755&quot; height=&quot;539&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;다른 식물 친구들과 찰칵.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;7월 18일&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그냥 플라스틱 통에 배수구멍도 뚫지않고 키운 아보카도 인데도 다른 칭구들보다 키는 더 컸다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;아보카도가 자라는 사이 보스턴 고사리도 많이 컸다 ^^.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;그동안 물은 흙이 마르지 않을정도로만 줬다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;너무 줬다 싶으면 다시 빼주기도.. 나뭇가락도 과습방지에 좋다길래&amp;nbsp;꽂아준것. 약간의 무관심은 식물에게 아주 좋다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;725&quot; data-origin-height=&quot;789&quot; width=&quot;523&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cMWZao/btraBeVkRM2/2a9AZOqpSClltKp3t1i9j1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cMWZao/btraBeVkRM2/2a9AZOqpSClltKp3t1i9j1/img.png&quot; data-alt=&quot;어머 너무 위로만 자라는거 아니니?&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cMWZao/btraBeVkRM2/2a9AZOqpSClltKp3t1i9j1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcMWZao%2FbtraBeVkRM2%2F2a9AZOqpSClltKp3t1i9j1%2Fimg.png&quot; data-origin-width=&quot;725&quot; data-origin-height=&quot;789&quot; width=&quot;523&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;어머 너무 위로만 자라는거 아니니?&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;7월 23일&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;너무 위로만 웃자란듯 하다. 나무젓가락과 비슷하면 아보카도의 포풍성장이 느껴진다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;596&quot; data-origin-height=&quot;709&quot; width=&quot;433&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nYcbj/btraCSjWOPx/Y6b1rtSKOLN08kesyp38dk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nYcbj/btraCSjWOPx/Y6b1rtSKOLN08kesyp38dk/img.png&quot; data-alt=&quot;빼꼼,&amp;amp;amp;nbsp;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nYcbj/btraCSjWOPx/Y6b1rtSKOLN08kesyp38dk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnYcbj%2FbtraCSjWOPx%2FY6b1rtSKOLN08kesyp38dk%2Fimg.png&quot; data-origin-width=&quot;596&quot; data-origin-height=&quot;709&quot; width=&quot;433&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;빼꼼,&amp;nbsp;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;7월 24일&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;바로 다음날 잎이 펴졌다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이 속도대로라면 곧 1M가 될것 같다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;나보다 더 크렴 아보카도야.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;이로써 두달간 아보카도 생장기. 끗.&amp;nbsp;&lt;/p&gt;</description>
      <category>기록/식물</category>
      <category>수경재배</category>
      <category>식물</category>
      <category>식물키우기</category>
      <category>씨앗</category>
      <category>아보카도</category>
      <category>아보카도 새싹</category>
      <category>아보카도 수경재배</category>
      <category>아보카도 키우기</category>
      <category>아보카도키우기</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/15</guid>
      <comments>https://deseul.tistory.com/entry/%EC%95%84%EB%B3%B4%EC%B9%B4%EB%8F%84-%ED%82%A4%EC%9A%B0%EA%B8%B0#entry15comment</comments>
      <pubDate>Mon, 26 Jul 2021 22:31:18 +0900</pubDate>
    </item>
    <item>
      <title>[JavaScript] flag변수란?</title>
      <link>https://deseul.tistory.com/entry/JavaScript-flag%EB%B3%80%EC%88%98%EB%9E%80</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;flag변수란 무엇일까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플래그(flag)란 깃발이라는 뜻인데, 컴퓨터에서 무언가를 기억하거나 또는 다른 프로그램에게 약속된 신호를 남기기 위한 용도로 프로그램에 사용되는 미리 정의된 비트이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;예를 들어, 두 프로그램 사이에서 교환되고 있는 하나의&lt;span&gt;&amp;nbsp;메시지&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;내에, 세 비트로 구성된 플래그 필드가 있다고 할 때, 이 플래그의 비트 구성은 다음과 같이 설정될 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span&gt;001 (&quot;나는 별도의 메시지임&quot;라는 의미로)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;011 (&quot;나는 이 메시지 내에 있는 여러 개의 데이터 중 하나임&quot;라는 의미로)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;111 (&quot;나는 이 메시지의 마지막 데이터임&quot;라는 의미로)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;플래그들은&lt;span&gt;&amp;nbsp;컴퓨터&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;프로그래밍에서 매우 자주 사용된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에는 굉장히 낯설었는데, 알고보니 boolean값 true, false값을 가진 변수였습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;1369869204.jpg&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;1200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buc4cb/btrawBchfOB/lInHY3rK6u5EvWWlwLaYKK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buc4cb/btrawBchfOB/lInHY3rK6u5EvWWlwLaYKK/img.jpg&quot; data-alt=&quot;flag변수를 사용하는 로직&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buc4cb/btrawBchfOB/lInHY3rK6u5EvWWlwLaYKK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbuc4cb%2FbtrawBchfOB%2FlInHY3rK6u5EvWWlwLaYKK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;600&quot; height=&quot;1200&quot; data-filename=&quot;1369869204.jpg&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;1200&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;flag변수를 사용하는 로직&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 그림처럼 처음에 flag변수는 true나 false값을 가질수 있다. 위 같이 다소 복잡해 보이는 제어구조를 flag변수를 이용해 처리할수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더러운 코드를 flag코드를 이용해 바꾸어 봅시다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원래 코드&lt;/p&gt;
&lt;pre id=&quot;code_1627301829348&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; if (RowData.length === 0) {
 	 alert(&quot;저장할 데이터가 없습니다.&quot;); 
     
     } else {
     
     RowData.forEach(function (value) {
       if (value.StartDtm === null || value.EndDtm === null) {
          alert(&quot;날짜를 입력하세요.&quot;); 
         } else {
          if (value.StartDtm &amp;gt; value.EndDtm) {
              alert(&quot;마감일은 시작일 이후로 입력하세요.&quot;); 
         } else {
         // values 전송
    	 }
     }
 }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;if를 이용해 계속해서 안으로 파고 드니 가독성도 좋지않고, alert가 겹쳐 404에러가 발생했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #dddddd;&quot;&gt; &lt;s&gt;그야말로 어거지로 코딩하기. 이것도 힘들게 한게 유머&lt;/s&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수정된 코드&lt;/p&gt;
&lt;pre id=&quot;code_1627302221652&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; let checkDtm = true; // flag변수
 let noneDtm = true; // flag변수
 
 if (RowData.length === 0) {
 	 alert(&quot;저장할 데이터가 없습니다.&quot;); 
     
     } else {
     RowData.forEach(function (value) {
     
        if (value.startDtm &amp;gt; value.endDtm) {
        	checkDtm = false; // false로 변경
            return; //  다시 처음으로 돌아감.
        }
        
        if (!value.startDtm || !value.endDtm){
        	noneDtm = false;
            return;
        }
     }
     
     if (!checkDtm) {
     	alert(&quot;마감일은 시작일 이후로 입력하세요.&quot;);
     }
     
     if (!noneDtm) {
     	alert(&quot;날짜를 입력하세요.&quot;);
     }
 }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쨘 ! 가독성있게 변했다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;flag변수를 이용해서 value validation(유효성 검사)를 해보았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #dddddd;&quot;&gt;다음에 할때는 꼭 생각 나겠지.&lt;/span&gt;&lt;/p&gt;</description>
      <category>IT/JavaScript</category>
      <category>flag</category>
      <category>flag변수</category>
      <category>javascript</category>
      <category>js</category>
      <category>validation</category>
      <category>value</category>
      <category>유효성</category>
      <category>유효성검사</category>
      <category>플래그</category>
      <category>플래그변수</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/14</guid>
      <comments>https://deseul.tistory.com/entry/JavaScript-flag%EB%B3%80%EC%88%98%EB%9E%80#entry14comment</comments>
      <pubDate>Mon, 26 Jul 2021 21:43:26 +0900</pubDate>
    </item>
    <item>
      <title>[정보처리기사] 비트연산자 계산방법</title>
      <link>https://deseul.tistory.com/entry/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC-%EB%B9%84%ED%8A%B8%EC%97%B0%EC%82%B0%EC%9E%90</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 비트연산자란 비트(bit)단위로 논리 연산을 할 때 사용하는 연산자입니다. &lt;span style=&quot;color: #dddddd;&quot;&gt;byte아님.&amp;nbsp; byte는 8bit&lt;/span&gt;&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 141px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 16.6279%; text-align: center; height: 20px;&quot;&gt;비트 연산자&lt;/td&gt;
&lt;td style=&quot;width: 83.3721%; text-align: center; height: 20px;&quot;&gt;설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 16.6279%; text-align: center; height: 20px;&quot;&gt;&amp;amp;&lt;/td&gt;
&lt;td style=&quot;width: 83.3721%; height: 20px;&quot;&gt;대응되는 비트가 모두 1이면 1을 반환함. (비트 AND 연산)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 16.6279%; text-align: center; height: 20px;&quot;&gt;|&lt;/td&gt;
&lt;td style=&quot;width: 83.3721%; height: 20px;&quot;&gt;대응되는 비트 중에서 하나라도 1이면 1을 반환함. (비트 OR 연산)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 16.6279%; text-align: center; height: 20px;&quot;&gt;^&lt;/td&gt;
&lt;td style=&quot;width: 83.3721%; height: 20px;&quot;&gt;대응되는 비트가 서로 다르면 1을 반환함. (비트 XOR 연산)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 16.6279%; text-align: center; height: 20px;&quot;&gt;~&lt;/td&gt;
&lt;td style=&quot;width: 83.3721%; height: 20px;&quot;&gt;비트를 1이면 0으로, 0이면 1로 반전시킴. (비트 NOT 연산)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 21px;&quot;&gt;
&lt;td style=&quot;width: 16.6279%; text-align: center; height: 21px;&quot;&gt;&amp;lt;&amp;lt;&lt;/td&gt;
&lt;td style=&quot;width: 83.3721%; height: 21px;&quot;&gt;지정한 수만큼 비트들을 전부 왼쪽으로 이동시킴. (left shift&amp;nbsp; 연산)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 16.6279%; text-align: center; height: 20px;&quot;&gt;&amp;gt;&amp;gt;&lt;/td&gt;
&lt;td style=&quot;width: 83.3721%; height: 20px;&quot;&gt;부호를 유지하면서 지정한 수만큼 비트를 전부 오른쪽으로 이동시킴. (right shift 연산)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;AND연산자 &lt;b&gt;&amp;amp;&amp;nbsp;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대응되는 비트가 모두 1이면 1을 반환하고, 아니면 0을 반환합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;448&quot; data-origin-height=&quot;288&quot; data-filename=&quot;img_php_bitwise_and.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dvWlCR/btq9GmtKWDT/GRBn3z9lLll9GnZhh6Ce90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dvWlCR/btq9GmtKWDT/GRBn3z9lLll9GnZhh6Ce90/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dvWlCR/btq9GmtKWDT/GRBn3z9lLll9GnZhh6Ce90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdvWlCR%2Fbtq9GmtKWDT%2FGRBn3z9lLll9GnZhh6Ce90%2Fimg.png&quot; data-origin-width=&quot;448&quot; data-origin-height=&quot;288&quot; data-filename=&quot;img_php_bitwise_and.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;OR연산자&lt;b&gt; |&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대응되는 두 비트 중 하나라도 1이면 1을 반환하고, 모두 0일때만 0을 반환합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;452&quot; data-origin-height=&quot;288&quot; data-filename=&quot;img_php_bitwise_or.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5SHbw/btq9EgBgDEW/g120o75sBkqhkb3T1okgG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5SHbw/btq9EgBgDEW/g120o75sBkqhkb3T1okgG1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5SHbw/btq9EgBgDEW/g120o75sBkqhkb3T1okgG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5SHbw%2Fbtq9EgBgDEW%2Fg120o75sBkqhkb3T1okgG1%2Fimg.png&quot; data-origin-width=&quot;452&quot; data-origin-height=&quot;288&quot; data-filename=&quot;img_php_bitwise_or.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;XOR연산자 &lt;b&gt;^&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대응되는 두 비트가 서로 다르면 1을 반환하고 서로 같으면 0을 반환합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;442&quot; data-origin-height=&quot;290&quot; data-filename=&quot;img_php_bitwise_xor.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/APwS5/btq9Eg2jtvf/AWbS6GIHuS8Jy0esodskKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/APwS5/btq9Eg2jtvf/AWbS6GIHuS8Jy0esodskKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/APwS5/btq9Eg2jtvf/AWbS6GIHuS8Jy0esodskKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAPwS5%2Fbtq9Eg2jtvf%2FAWbS6GIHuS8Jy0esodskKK%2Fimg.png&quot; data-origin-width=&quot;442&quot; data-origin-height=&quot;290&quot; data-filename=&quot;img_php_bitwise_xor.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;NOT연산자 &lt;b&gt;~&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비트가 0이면 1, 1이면 0을 반환합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;256&quot; data-filename=&quot;img_php_bitwise_not.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cE2Onb/btq9Lqonjqq/dUc6Ai1kNsqI6CD6dwVEcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cE2Onb/btq9Lqonjqq/dUc6Ai1kNsqI6CD6dwVEcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cE2Onb/btq9Lqonjqq/dUc6Ai1kNsqI6CD6dwVEcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcE2Onb%2Fbtq9Lqonjqq%2FdUc6Ai1kNsqI6CD6dwVEcK%2Fimg.png&quot; data-origin-width=&quot;450&quot; data-origin-height=&quot;256&quot; data-filename=&quot;img_php_bitwise_not.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 실습&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자바 코드를 사용하여 비트연산자를 사용해 보았습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1626401440539&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class MyClass {
    public static void main(String args[]) {
        byte a = 19, b = 15;
        
        System.out.printf(&quot;%d\n&quot;,~a); // -20
        System.out.printf(&quot;%d\n&quot;,a^b); // 28
        System.out.printf(&quot;%d\n&quot;,a&amp;amp;b); // 3
        System.out.printf(&quot;%d\n&quot;,a|b); //31
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 a는 10진수로 19입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;394&quot; data-origin-height=&quot;495&quot; data-filename=&quot;10_2진수변환.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cSOAtO/btq9HLHj9xc/DO9r9Hu0HUdcQt2kPcVTg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cSOAtO/btq9HLHj9xc/DO9r9Hu0HUdcQt2kPcVTg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cSOAtO/btq9HLHj9xc/DO9r9Hu0HUdcQt2kPcVTg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcSOAtO%2Fbtq9HLHj9xc%2FDO9r9Hu0HUdcQt2kPcVTg0%2Fimg.png&quot; data-origin-width=&quot;394&quot; data-origin-height=&quot;495&quot; data-filename=&quot;10_2진수변환.png&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;19을 2진수로 바꾸기 위한 방법입니다. 2로 나누어 나온 나머지를 이용해 2진수를 만듭니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2로 나눌수 없을때까지 나눕니다. 1이나 0이 나오면 끝입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 10진수 19는 2진수 10011이 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;b는 15이므로 1111이 됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;헷갈린다면 윈도우 계산기의 프로그래머 계산기를 이용하여 계산해보면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;465&quot; data-origin-height=&quot;612&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/RLgBj/btq9I40Fdnt/nbAxLQOYK3wKbV03NhJ9l1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/RLgBj/btq9I40Fdnt/nbAxLQOYK3wKbV03NhJ9l1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/RLgBj/btq9I40Fdnt/nbAxLQOYK3wKbV03NhJ9l1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRLgBj%2Fbtq9I40Fdnt%2FnbAxLQOYK3wKbV03NhJ9l1%2Fimg.png&quot; data-origin-width=&quot;465&quot; data-origin-height=&quot;612&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;이런식으로 계산하면 됩니다!&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 실기시험장을 가서 풀때는 다 계산해서 풀어야 하기때문에 비트연산자를 제대로 숙지하고 가야 문제를 풀수있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시프트 연산자는 오른편의 수만큼 전체 비트를 이동시키는것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;10진수를 2진수로 바꾸는 방법과 2진수를 10진수로 바꾸는 방법을 숙지한다면 풀리는 부분이기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실습예제는 하지 않도록 하겠습니다.&lt;/p&gt;</description>
      <category>기록/공부</category>
      <category>cs기초</category>
      <category>개발공부</category>
      <category>비트</category>
      <category>비트연산자</category>
      <category>시프트연산자</category>
      <category>정보처리기사</category>
      <category>정보처리기사실기</category>
      <category>정처기</category>
      <category>정처기실기</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/13</guid>
      <comments>https://deseul.tistory.com/entry/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC-%EB%B9%84%ED%8A%B8%EC%97%B0%EC%82%B0%EC%9E%90#entry13comment</comments>
      <pubDate>Fri, 16 Jul 2021 11:29:43 +0900</pubDate>
    </item>
    <item>
      <title>백준 단계별 알고리즘 문제.</title>
      <link>https://deseul.tistory.com/entry/%EB%B0%B1%EC%A4%80-%EB%8B%A8%EA%B3%84%EB%B3%84-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C</link>
      <description>&lt;p&gt;첫번째 문제는 Hello world!를 출력하는 문제였다.&lt;/p&gt;
&lt;p&gt;아 이정도는 너무 쉽지 !&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1619621138979&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class HelloWorld{
	public static void main(String[] args){
    	System.out.println(&quot;Hello World!&quot;);
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이렇게 적어서 10번은 냈는데 컴파일 에러가 자꾸 나서 도대체 뭘까 뭘까 구글링을 한 결과..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxiFjF/btq3FnTpDIf/e7AD4ht7Pe22l4vfhNze31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxiFjF/btq3FnTpDIf/e7AD4ht7Pe22l4vfhNze31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxiFjF/btq3FnTpDIf/e7AD4ht7Pe22l4vfhNze31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxiFjF%2Fbtq3FnTpDIf%2Fe7AD4ht7Pe22l4vfhNze31%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;내 제출에 있는 컴파일 에러를 클릭하니까 원인을 알려줬다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GwRia/btq3JenvlqW/PuBp2W8j1nvIuHKbt5iEK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GwRia/btq3JenvlqW/PuBp2W8j1nvIuHKbt5iEK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GwRia/btq3JenvlqW/PuBp2W8j1nvIuHKbt5iEK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGwRia%2Fbtq3JenvlqW%2FPuBp2W8j1nvIuHKbt5iEK0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;class명을 Main으로 해야 하는 것이었다...!&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;p&gt;&lt;b&gt;이걸 모르고 계속 제출했더니..&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s7Cq2/btq3I5Efv8O/hzvosgAwO29eptdJq8Owd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s7Cq2/btq3I5Efv8O/hzvosgAwO29eptdJq8Owd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s7Cq2/btq3I5Efv8O/hzvosgAwO29eptdJq8Owd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs7Cq2%2Fbtq3I5Efv8O%2FhzvosgAwO29eptdJq8Owd1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;헬로우 월드를 10번 넘게 틀린 사람이 되어버린..^^..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjTrCo/btq3IhymUJu/hj6wYxzh1rYjD2203y0oQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjTrCo/btq3IhymUJu/hj6wYxzh1rYjD2203y0oQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjTrCo/btq3IhymUJu/hj6wYxzh1rYjD2203y0oQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjTrCo%2Fbtq3IhymUJu%2Fhj6wYxzh1rYjD2203y0oQ1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그래도 class명을 Main으로 하니 맞았습니다!! 해주는 백준. 고맙다...&lt;/p&gt;</description>
      <category>IT/알고리즘</category>
      <category>단계별 알고리즘</category>
      <category>백준</category>
      <category>백준 알고리즘</category>
      <category>백준단계별</category>
      <category>백준단계별 알고리즘</category>
      <category>알고리즘</category>
      <category>자바</category>
      <category>자바공부</category>
      <category>컴파일 에러</category>
      <category>컴파일에러</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/12</guid>
      <comments>https://deseul.tistory.com/entry/%EB%B0%B1%EC%A4%80-%EB%8B%A8%EA%B3%84%EB%B3%84-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%A0%9C#entry12comment</comments>
      <pubDate>Wed, 28 Apr 2021 23:50:17 +0900</pubDate>
    </item>
    <item>
      <title>heap과 stack의 차이점은?</title>
      <link>https://deseul.tistory.com/entry/heap%EA%B3%BC-stack%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%80</link>
      <description>&lt;p&gt;일단 두 가지 모두 자바의 핵심 메모리 공간입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;프로그램이 운영체제로 할당받는 대표적인 메모리 공간은&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1. 코드(code)영역&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2. 데이터(data)영역&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3. 스택(stack) 영역&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;4. 힙(heap)영역&amp;nbsp;&lt;/b&gt;이 있습니다. 이것을 설명하기 위해서는 타입설명이 필요합니다&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본형 타입은(Primitive type) 총 8가지 타입이 있습니다.&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;정수형&amp;nbsp;&lt;/b&gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; 1) byte(1) &lt;br /&gt;&amp;nbsp; &amp;nbsp; 2) short(2) &lt;br /&gt;&amp;nbsp; &amp;nbsp; 3) int(4) - default &lt;br /&gt;&amp;nbsp; &amp;nbsp; 4) long(8)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;실수형&lt;/b&gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; 1)float(4) &lt;br /&gt;&amp;nbsp; &amp;nbsp; 2) double(8) - default&lt;/li&gt;
&lt;li&gt;&lt;b&gt;논리형&lt;/b&gt; &lt;br /&gt;&amp;nbsp; &amp;nbsp; boolean(1) - true, false로 데이터 표현&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;기본형타입(Primitive type)이 아닌 모든 타입이 참조형 타입(Reference type)입니다.&lt;/p&gt;
&lt;p&gt;참조형 타입은 빈 객체를 의미하는 Null이 존재하고,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;값이 저장되어 있는 곳이 주소값을 저장하는 공간으로 Heap메모리에 저장됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- Stack : &amp;nbsp;primitive 데이터 유형 즉 기본형 타입 객체의 heap영역 주소 할당&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 기본데이터유형, 객체의 참조변수(heap영역의 주소값)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- heap : 생성된 객체를 할당, 실제 객체가 들어가는 메모리 영역&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1619620542782&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	//기본데이터할당
		int num01 = 25;
		System.out.println(&quot;데이터의 할당 확인(stack):&quot;+num01);
        	//객체는
		//stack 영역에 직접적으로 객체를 할당하는 것이 아니라
		//heap 영역의 주소값으로 할당하고 있다. 
		//			a01_basic.Person@19e1023e
		//			패키지명.객체명@16진수의 주소값 
		Person p = new Person();
		System.out.println(&quot;데이터의 할당 확인(heap의 주소):&quot;+p);
		//객체의 구성요소(필드, 생성자, 메서드)는 참조명을 통해서 접근이 가능하다.
		System.out.println(&quot;객체의 필드값 확인:&quot;+p.num01);
		int num02 = 30;
		int num03 = 3;
		
		System.out.println(num02+&quot;+&quot;+num03+&quot;=&quot;+(num02+num03));
		System.out.println(num02+&quot;-&quot;+num03+&quot;=&quot;+(num02-num03));
		System.out.println(num02+&quot;*&quot;+num03+&quot;=&quot;+(num02*num03));
		System.out.println(num02+&quot;/&quot;+num03+&quot;=&quot;+(num02/num03));
		Product pd = new Product();
		System.out.println(pd);
		System.out.println(&quot;물건명&quot;+pd.name);
		System.out.println(&quot;가격:&quot;+pd.price);
		System.out.println(&quot;갯수:&quot;+pd.cnt);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;String 값과 메모리할당 &lt;br /&gt;&amp;nbsp;1. boolean연산자 == 는 stack 영역의 데이터를 비교해준다 &lt;br /&gt;&amp;nbsp;2.&amp;nbsp;기본데이터&amp;nbsp;유형은&amp;nbsp;동일한&amp;nbsp;값을&amp;nbsp;할당하면&amp;nbsp;true로&amp;nbsp;처리되지만, &lt;br /&gt;&amp;nbsp; 객체의&amp;nbsp;경우&amp;nbsp;동일한&amp;nbsp;값을&amp;nbsp;할당하더라도&amp;nbsp;주소값이&amp;nbsp;다르기때문에&amp;nbsp;false가&amp;nbsp;처리되는&amp;nbsp;경우가 &lt;br /&gt;&amp;nbsp; 많다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1619620567796&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int num04 = 50;
int num05 = 50;
System.out.println(&quot;두개의 기본 유형 비교 : &quot; + (num04==num05));
Product p02 = new Product();
Product p03 = new Product();
System.out.println(p02.name+ &quot;:&quot; +p03.name);
System.out.println(p02.price+ &quot;:&quot; +p03.price);
System.out.println(p02.cnt+ &quot;:&quot; +p03.cnt);
//두 객체의 참조값을 비교
System.out.println(&quot;참조값의 비교 &quot; + (p02==p03));
//heap영역의 주소값이 다르기 때문에 stack영역의 주소값이 다르다
System.out.println(p02);
System.out.println(p03);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;3. String은 객체입니다.&lt;br /&gt;&amp;nbsp;4. 데이터는 heap영역에 할당됩니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;5. 문자열을 동일한 문자열의 비교는 ==를 활용하면, 예외사항때문에 문제가 발생합니다&lt;br /&gt;&amp;nbsp;6. 문자열의 동등 비교는 문자열이 객체이므로 사용되는 .equals() 메소드 사용합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1619619782895&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;String name1 = &quot;홍길동&quot;; // &quot;홍길동&quot;으로 된 모든 문자열은 heap영역에 같은 주소를 쓴다.
String name2 = &quot;홍길동&quot;; // name1 = name2 는 true값이 나온다
String name3 = new String(&quot;홍길동&quot;);
String name4 = new String(&quot;홍길동&quot;);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;new String()은 다른 heap영역에 주소값에 객체가 생성이 되기에 name3 == name4는 false값으로 처리됩니다.&lt;/p&gt;
&lt;p&gt;문자열을 비교할 때는 문자열1.equals(문자열2)을 통해서 비교하여야만 합니다. 문자열이 같은것이지 두 객체가 같은 주소를 가지고 있지 않기 때문입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;name1.equals(name2), name1.equals(name3), name3.&lt;span style=&quot;color: #333333;&quot;&gt;equals(name4)는 모두 문자열 자체에 대한 비교이므로 true로 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;처리됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT/JAVA</category>
      <category>Heap</category>
      <category>heap과 stack차이</category>
      <category>Stack</category>
      <category>메모리</category>
      <category>메모리할당</category>
      <category>스택</category>
      <category>자바메모리</category>
      <category>힙</category>
      <category>힙과스택차이</category>
      <category>힙영역</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/11</guid>
      <comments>https://deseul.tistory.com/entry/heap%EA%B3%BC-stack%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%80#entry11comment</comments>
      <pubDate>Wed, 28 Apr 2021 23:23:23 +0900</pubDate>
    </item>
    <item>
      <title>오버라이딩과 오버로딩의 차이</title>
      <link>https://deseul.tistory.com/entry/%EC%98%A4%EB%B2%84%EB%9D%BC%EC%9D%B4%EB%94%A9%EA%B3%BC-%EC%98%A4%EB%B2%84%EB%A1%9C%EB%94%A9%EC%9D%98-%EC%B0%A8%EC%9D%B4</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;오버라이딩(Overriding)&lt;/h3&gt;
&lt;p&gt;&amp;nbsp;오버라이딩이란 상위클래스의 선언된 메서드를 하위 클래스에 기능에 따라서 메서드를 재정의하여 사용 하는 것이라고 할 수 있습니다.&lt;/p&gt;
&lt;p&gt;자바에서 자식 클래스는 부모 클래스의 private 멤버를 제외한 모든 메서드를 상속받습니다.&lt;/p&gt;
&lt;p&gt;이렇게 상속받은 메서드는 그대로 사용해도 되고, 필요한 동작을 위해 재정의하여 사용할 수도 있습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;오버라이딩의 조건&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&amp;nbsp;오버라이딩이란 메서드의 동작만을 재정의 하는 것이므로, 메서드의 선언부의 기존 메서드와 완전히 같아야 합니다.&amp;nbsp;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;하지만 메서드의 반환 타입은 상위클래스의 반환 타입으로 타입 변환할 수 있는 타입이라면 변경할 수 있습니다.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;상위 클래스의 메서드보다 접근제어자를 더 좁은 범위로 변경 할 수 없습니다.&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;상위 클래스의 메서드보다 더 큰 범위의 예외를 선언할 수 없습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;오버라이딩 예시&lt;/h4&gt;
&lt;pre id=&quot;code_1619585986925&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;abstract class Duck{
   String kind=&quot;오리&quot;;
   abstract void fly();
   // body가 없는 메서드는 하나라도 있으면
   // class에서는 반드시 클래스명 앞에 abstract를 붙여야 한다.
   //
   //실제메서드
   void swim() {
      System.out.println(kind+&quot;가 수영을 한다!!&quot;);
   }
}
class NormalDuck extends Duck{
   // 상위에 있는 추상메서드는 하위에서 반드시 선언하여야 한다.   
   @Override
   void fly() {
      System.out.println(&quot;보통 오리는 날지 못한다&quot;);
   }
}
// 상위 인터페이스, 하위 실제 클래스
interface Flyway{
   void fly();
   default void method2() {
      System.out.println(&quot;default 실제 메서드&quot;);
   }
}
// 인터페이스 implements로 상속 받는다
class Wing01 implements Flyway{
   @Override
   public void fly() {
      System.out.println(&quot;날개1호로 하늘을 날다!&quot;);
   }
}&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;오버로딩(Overloading)&lt;/h3&gt;
&lt;p&gt;메서드 오버로딩이란 같은 이름의 메서드를 중복하여 정의하는 것을 말합니다.&lt;/p&gt;
&lt;p&gt;자바에서는 원래 한 클래스의 같은 이름의 메서드를 둘 이상 가질 수 없습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;하지만 매개변수의 개수나 타입을 다르게 하면, 하나의 이름으로 메서드를 작성할 수 있습니다.&lt;/p&gt;
&lt;p&gt;즉, 메서드 오버로딩은 서로 다른 시그니처를 갖는 여러 메서드를 같은 이름으로 정의하는 것이라고 할 수 있습니다,&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이러한 메서드 오버로딩을 사용함으로써 메서드에 사용되는 이름을 절약할 수 있습니다.&lt;/p&gt;
&lt;p&gt;또한, 메서드를 호출할 때 전달해야 할 매개변수의 타입이나 개수에 대해 크게 신경을 쓰지 않고 호출할 수 있게 됩니다.&lt;/p&gt;
&lt;p&gt;메서드 오버로딩은 객체 지향 프로그래밍의 특징 중 하나인 다형성(polymorphism)을 구현하는 방법 중 하나입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT/JAVA</category>
      <category>overloading</category>
      <category>override</category>
      <category>overriding</category>
      <category>오버라이딩</category>
      <category>오버라이딩오버로딩차이</category>
      <category>오버로딩</category>
      <category>오버로딩오버라이딩차이</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/10</guid>
      <comments>https://deseul.tistory.com/entry/%EC%98%A4%EB%B2%84%EB%9D%BC%EC%9D%B4%EB%94%A9%EA%B3%BC-%EC%98%A4%EB%B2%84%EB%A1%9C%EB%94%A9%EC%9D%98-%EC%B0%A8%EC%9D%B4#entry10comment</comments>
      <pubDate>Wed, 28 Apr 2021 14:22:00 +0900</pubDate>
    </item>
    <item>
      <title>AOP(Aspect Oriented Programming) 실습(3)</title>
      <link>https://deseul.tistory.com/entry/AOPAspect-Oriented-Programming-%EC%8B%A4%EC%8A%B53</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://deseul.tistory.com/8&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2021.04.17 - [분류 전체보기] - AOP(Aspect Oriented Programming) 구현(2)&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1618648245421&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;AOP(Aspect Oriented Programming) 구현(2)&quot; data-og-description=&quot;2021.04.17 - [IT/Spring] - AOP(Aspect Oriented Programming)란?(1) AOP(Aspect Oriented Programming)란?(1) AOP(관점 지향적인 프로그래밍) 문제를 바라보는 관점을 기준으로 프로그래밍하는 기법을 말한다...&quot; data-og-host=&quot;deseul.tistory.com&quot; data-og-source-url=&quot;https://deseul.tistory.com/8&quot; data-og-url=&quot;https://deseul.tistory.com/8&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/JqAeo/hyJU2d2yHg/gc45Nhk3hJMJ2KhCX9ls2k/img.png?width=602&amp;amp;height=277&amp;amp;face=0_0_602_277,https://scrap.kakaocdn.net/dn/cpYqyD/hyJTFSji5d/KHR8YokiXGu2FG2lFWndf0/img.png?width=602&amp;amp;height=277&amp;amp;face=0_0_602_277,https://scrap.kakaocdn.net/dn/hrFiR/hyJTCBgKVv/mWEjYjRi4WKzm8InyJgUZ1/img.png?width=602&amp;amp;height=277&amp;amp;face=0_0_602_277&quot;&gt;&lt;a href=&quot;https://deseul.tistory.com/8&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://deseul.tistory.com/8&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/JqAeo/hyJU2d2yHg/gc45Nhk3hJMJ2KhCX9ls2k/img.png?width=602&amp;amp;height=277&amp;amp;face=0_0_602_277,https://scrap.kakaocdn.net/dn/cpYqyD/hyJTFSji5d/KHR8YokiXGu2FG2lFWndf0/img.png?width=602&amp;amp;height=277&amp;amp;face=0_0_602_277,https://scrap.kakaocdn.net/dn/hrFiR/hyJTCBgKVv/mWEjYjRi4WKzm8InyJgUZ1/img.png?width=602&amp;amp;height=277&amp;amp;face=0_0_602_277');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;AOP(Aspect Oriented Programming) 구현(2)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;2021.04.17 - [IT/Spring] - AOP(Aspect Oriented Programming)란?(1) AOP(Aspect Oriented Programming)란?(1) AOP(관점 지향적인 프로그래밍) 문제를 바라보는 관점을 기준으로 프로그래밍하는 기법을 말한다...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;deseul.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 이클립스로 실습해보겠습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;환경구축(proxy 有)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;src에 testpackage를 만든후 AOP_main java파일&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(vo에 들어간 target클래스의 메서드와 연결할 xml를 표시.)&lt;/p&gt;
&lt;pre id=&quot;code_1618648461875&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package springaop;

import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;

import springaop.z01_vo.Message;
import springdi.z01_vo.Person;

public class AOP_Main1 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		AbstractApplicationContext ctx 
		= new GenericXmlApplicationContext(
				&quot;springaop\\container1.xml&quot;);
		Message msg = ctx.getBean(&quot;proxy&quot;,Message.class);
		msg.helloApp(); 
		// 프락시안에 있는 대상객체 Message의 helloApp() 수행될 때,
		// AOP안에

		ctx.close();
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적용할 coniainer1.xml을 만듭니다.(설명에서 acQuickStart.xml)&lt;/p&gt;
&lt;pre id=&quot;code_1618648548100&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
    xmlns:aop=&quot;http://www.springframework.org/schema/aop&quot; 
   xmlns:context=&quot;http://www.springframework.org/schema/context&quot;
   xmlns:mvc=&quot;http://www.springframework.org/schema/mvc&quot;
   xmlns:p=&quot;http://www.springframework.org/schema/p&quot;
   xmlns:c=&quot;http://www.springframework.org/schema/p&quot;
   xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
    xmlns:util=&quot;http://www.springframework.org/schema/util&quot;
    xmlns:websocket=&quot;http://www.springframework.org/schema/websocket&quot;
   xsi:schemaLocation=&quot;http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
      http://www.springframework.org/schema/mvc/spring-mvc.xsd     
        http://www.springframework.org/schema/util
       http://www.springframework.org/schema/util/spring-util.xsd
         http://www.springframework.org/schema/websocket
      http://www.springframework.org/schema/websocket/spring-websocket.xsd&quot; &amp;gt;

    &amp;lt;!-- 
    # AOP프로그램 처리
    1. 대상이 되는 target 클래스 선언..
    2. 관심모듈(AOP) 클래스 선언
    3. Advisor(pointcut + advice) 처리..
    4. Proxy 클래스 선언.
	 --&amp;gt;
	 &amp;lt;!-- 1. 대상클래스 --&amp;gt;
	&amp;lt;bean id=&quot;messgeImpl&quot; class=&quot;springaop.z01_vo.Message&quot;&amp;gt;
      &amp;lt;property name=&quot;name&quot;&amp;gt;
          &amp;lt;value&amp;gt;홍길동&amp;lt;/value&amp;gt;
      &amp;lt;/property&amp;gt;
	&amp;lt;/bean&amp;gt;

	&amp;lt;!-- 2. 관심모듈(AOP)클래스선언: 해당 대상객체가 수행될 때, 처리할 내용 --&amp;gt;
	&amp;lt;bean id=&quot;logging&quot; class=&quot;springaop.z01_vo.Logging&quot;/&amp;gt;

	&amp;lt;!-- 3. Advisor = pointcut(시점) + advice(처리할 내용) --&amp;gt;
	&amp;lt;bean id=&quot;advisor&quot;
	class=&quot;org.springframework.aop.support.DefaultPointcutAdvisor&quot;&amp;gt;
		&amp;lt;!-- 1) 시점을 지정 --&amp;gt;
		&amp;lt;property name=&quot;pointcut&quot;&amp;gt;
			&amp;lt;bean class=&quot;org.springframework.aop.support.JdkRegexpMethodPointcut&quot;&amp;gt;
				&amp;lt;property name=&quot;pattern&quot;&amp;gt;
					&amp;lt;value&amp;gt;.*.helloApp&amp;lt;/value&amp;gt; 
					&amp;lt;!-- helloApp 메서드가 수행될때..! --&amp;gt;
				&amp;lt;/property&amp;gt;
			&amp;lt;/bean&amp;gt;
		&amp;lt;/property&amp;gt;
		&amp;lt;!-- 2) 해당 시점이 수행될 때, 처리할 내용. --&amp;gt;
		&amp;lt;property name=&quot;advice&quot; ref=&quot;logging&quot;/&amp;gt; &amp;lt;!--  로그파일 실행. --&amp;gt;
	&amp;lt;/bean&amp;gt;

	&amp;lt;!-- 3.Proxy 클래스선언 --&amp;gt;
	&amp;lt;bean id=&quot;proxy&quot;
	class=&quot;org.springframework.aop.framework.ProxyFactoryBean&quot;&amp;gt;
	&amp;lt;!-- 대상지정 --&amp;gt;
	&amp;lt;property name=&quot;target&quot;&amp;gt;
		&amp;lt;ref bean=&quot;messgeImpl&quot;/&amp;gt;
	&amp;lt;/property&amp;gt;
	&amp;lt;!-- advisor선언 --&amp;gt;
	&amp;lt;property name=&quot;interceptorNames&quot;&amp;gt;
		&amp;lt;list&amp;gt;
			&amp;lt;value&amp;gt;advisor&amp;lt;/value&amp;gt;
		&amp;lt;/list&amp;gt;
	&amp;lt;/property&amp;gt;
	&amp;lt;/bean&amp;gt;
&amp;lt;/beans&amp;gt;  &lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Message.java&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;대상 클래스 (targetClass)&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1618648819242&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package springaop.z01_vo;

// 대상클래스 지정(targetClass)
public class Message {
	private String name;
	public void setName(String name) {
		this.name = name;
	}
	// 처리할 내용
	public void helloApp() {
		// 5초후 수행
		try {
			Thread.sleep(5000);
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		System.out.println(name+&quot;님 안녕하세요.&quot;);
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vo안에 있는 Logging.java&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;message에 있는 helloApp메소드가 처리될때 수행할 클래스(설명에서 Profile.java)&lt;/p&gt;
&lt;pre id=&quot;code_1618648655807&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package springaop.z01_vo;

import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.springframework.util.StopWatch;

// springAOP.z01_vo.Logging
// aop 처리할 메서드 선언.
public class Logging implements MethodInterceptor{

	@Override
	public Object invoke(MethodInvocation invoke) throws Throwable {
		// TODO Auto-generated method stub
		// MethodInvocation : 대상 객체에 대한 정보를 가지고 올 수 있음.
		// 1. getMethod.getName() : 대상 객체의 메서드 이름
		// 2. proceed() : 수행되는 대상 객체
		// 처리할 내용 : 해당 기능 객체의 메서드가 수행하는 시간을 처리..
		// 1. 시간 측정을 위한 StopWatch 클래스 선언..
		//		.start() : 스탑워치의 시작시간 설정.
		// 		.stop()N : 스탑워치의 마지막 시간 설정
		// 		.getTotalTimeMillis() : 위에 수행한 시작메서드와 마지막메서드
		// 		 를 통해 수행한 시간을 1/1000초 단위로 가져온다.

		String methodName = invoke.getMethod().getName(); // 어떤 메서드가 수행되는지
		System.out.println(&quot;대상객체의 수행메서드(시작)&quot;+methodName);
		StopWatch sw = new StopWatch();
		// 시작시간 check
		sw.start();


		Object obj = invoke.proceed(); // 대상 객체의 수행 처리 process
		// 수행후 시작 check
		sw.stop();

		System.out.println(&quot;대상객체의 수행메서드(종료):&quot;+methodName);
		System.out.println(&quot;대상객체의 수행시간:&quot;
						+(sw.getTotalTimeMillis()/1000.0)+&quot;초&quot;);

		return obj;
	}

}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;AOP_main1 실행결과&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;354&quot; data-origin-height=&quot;89&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wPcnd/btq2OOQsYV3/2LeGlTafAO2Z51rqz0rEtk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wPcnd/btq2OOQsYV3/2LeGlTafAO2Z51rqz0rEtk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wPcnd/btq2OOQsYV3/2LeGlTafAO2Z51rqz0rEtk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwPcnd%2Fbtq2OOQsYV3%2F2LeGlTafAO2Z51rqz0rEtk%2Fimg.png&quot; data-origin-width=&quot;354&quot; data-origin-height=&quot;89&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;환경구축(proxy 無)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;src에 testpackage를 만든후 AOP_main java파일&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(vo에 들어간 target클래스의 메서드와 연결할 xml를 표시.)&lt;/p&gt;
&lt;pre id=&quot;code_1618649221152&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package springaop;

import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;

import springaop.z01_vo.Message;
import springdi.z01_vo.Person;

public class AOP_Main2 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		AbstractApplicationContext ctx 
		= new GenericXmlApplicationContext(
				&quot;springaop\\container2.xml&quot;);
		Message msg = ctx.getBean(&quot;target&quot;,Message.class);
		msg.helloApp();
		ctx.close();
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;container2.xml&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;targetClass선언 aspectClass도선언&lt;/p&gt;
&lt;pre id=&quot;code_1618649324269&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
    xmlns:aop=&quot;http://www.springframework.org/schema/aop&quot; 
   xmlns:context=&quot;http://www.springframework.org/schema/context&quot;
   xmlns:mvc=&quot;http://www.springframework.org/schema/mvc&quot;
   xmlns:p=&quot;http://www.springframework.org/schema/p&quot;
   xmlns:c=&quot;http://www.springframework.org/schema/p&quot;
   xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
    xmlns:util=&quot;http://www.springframework.org/schema/util&quot;
    xmlns:websocket=&quot;http://www.springframework.org/schema/websocket&quot;
   xsi:schemaLocation=&quot;http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
      http://www.springframework.org/schema/mvc/spring-mvc.xsd     
        http://www.springframework.org/schema/util
       http://www.springframework.org/schema/util/spring-util.xsd
         http://www.springframework.org/schema/websocket
      http://www.springframework.org/schema/websocket/spring-websocket.xsd&quot; &amp;gt;

	&amp;lt;!-- Proxy없이 바로처리 
	
	1. 대상객체 선언.
	2. advise 선언
	3. adviser 선언 : adivise와 pointcut 선언
	
	--&amp;gt;
	&amp;lt;bean id=&quot;target&quot; class=&quot;springaop.z01_vo.Message&quot; p:name=&quot;★송강★&quot;/&amp;gt;
	&amp;lt;!--  target이 시행될때 aspect도 같이 수행되는 로직 --&amp;gt;
	&amp;lt;bean id=&quot;aspect&quot; class=&quot;springaop.z01_vo.Logging2&quot;&amp;gt;&amp;lt;/bean&amp;gt;
	&amp;lt;aop:config&amp;gt; &amp;lt;!-- aop:config에서 proxy없이 선언이 가능 --&amp;gt;
		&amp;lt;!-- aspect 선언 --&amp;gt;
		&amp;lt;aop:aspect id=&quot;aspectClass&quot; ref=&quot;aspect&quot;&amp;gt;

		&amp;lt;!-- pointcut 시점 --&amp;gt;
		&amp;lt;aop:pointcut expression=&quot;execution(public * *())&quot; id=&quot;point&quot;/&amp;gt;

		&amp;lt;!-- advise의 종류(이전, 이후, 실행중간..) --&amp;gt;
		&amp;lt;aop:around method=&quot;logAround&quot; pointcut-ref=&quot;point&quot;/&amp;gt; 
		&amp;lt;!--  수행하는 중간(Logging2클래스에 선언해놨던 logAround )--&amp;gt;

		&amp;lt;/aop:aspect&amp;gt;
	&amp;lt;/aop:config&amp;gt;
&amp;lt;/beans&amp;gt;  &lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vo안에 있는 Logging.java&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;message에 있는 helloApp메소드가 처리될때 수행할 클래스(설명에서 Profile.java)&lt;/p&gt;
&lt;pre id=&quot;code_1618649359837&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package springaop.z01_vo;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

// springaop.z01_vo.Logging2
// proxy없이 aop

// aop 처리할 메서드 선언.
public class Logging2{

	// 로그 처리 기능 클래스 선언
	private static final  Logger logger=LoggerFactory.getLogger(Logging2.class);
	// 1. 이전 시점
	public void logBefore(JoinPoint joinPoint) {
		logger.debug(&quot;logBefore()&quot;);
	}
	// 2. 이후 시점
	public void logAfter(JoinPoint joinPoint) {
		logger.debug(&quot;logAfter()&quot;);
	}
	// 3. 수행하는 중간에 처리
	public Object logAround(ProceedingJoinPoint jointPoint) throws Throwable {
		// 1) jointPoint 객체 리턴(대상)
		Object thisObj = jointPoint.getTarget();

		// 2) 대상객체의 이름, 메서드명, 매개변수..
		String className = thisObj.getClass().getName(); // 대상객체의 이름
		String methodName = jointPoint.getSignature().getName(); // 메서드명
		Object[] args = jointPoint.getArgs(); // 매개변수

		//3) 시간 측정
		long currentTime = System.currentTimeMillis();
		logger.debug(&quot;#############&quot;);
		logger.debug(&quot;###시 작#####&quot;);
		logger.debug(&quot;[class명]:&quot;+className);
		logger.debug(&quot;[methodName]:&quot;+ methodName+&quot;()&quot;);

		Object returnObj = jointPoint.proceed();
		// 수행처리. 예외처리는 throws Throwable

		logger.debug(&quot;#######수행 이후########&quot;);
		logger.debug(&quot;[class명]:&quot;+className);
		logger.debug(&quot;[methodName]:&quot;+ methodName+&quot;()&quot;);
		logger.debug(&quot;소요시간:&quot;+
					(System.currentTimeMillis()-currentTime)+&quot;ms&quot;);

		logger.debug(&quot;#######종료########&quot;);

		return returnObj;
	}
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대상클래스 (message클래스)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AOP_main2. 실행결과&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;899&quot; data-origin-height=&quot;225&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dk3GEu/btq2Rj3Glmd/Wr1khZAnkbhnUsjq5i9hHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dk3GEu/btq2Rj3Glmd/Wr1khZAnkbhnUsjq5i9hHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dk3GEu/btq2Rj3Glmd/Wr1khZAnkbhnUsjq5i9hHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdk3GEu%2Fbtq2Rj3Glmd%2FWr1khZAnkbhnUsjq5i9hHk%2Fimg.png&quot; data-origin-width=&quot;899&quot; data-origin-height=&quot;225&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>IT/JAVA</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/9</guid>
      <comments>https://deseul.tistory.com/entry/AOPAspect-Oriented-Programming-%EC%8B%A4%EC%8A%B53#entry9comment</comments>
      <pubDate>Sat, 17 Apr 2021 17:53:19 +0900</pubDate>
    </item>
    <item>
      <title>AOP(Aspect Oriented Programming) 구현(2)</title>
      <link>https://deseul.tistory.com/entry/AOPAspect-Oriented-Programming-%EA%B5%AC%ED%98%842</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://deseul.tistory.com/7&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;2021.04.17 - [IT/Spring] - AOP(Aspect Oriented Programming)란?(1)&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1618647665744&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;AOP(Aspect Oriented Programming)란?(1)&quot; data-og-description=&quot;AOP(관점 지향적인 프로그래밍) 문제를 바라보는 관점을 기준으로 프로그래밍하는 기법을 말한다. 아래와 같은 부가 기능을 처리할 때, 활용된다. AOP의 역할 AOP는 문제를 해결하기 위한 핵심 관&quot; data-og-host=&quot;deseul.tistory.com&quot; data-og-source-url=&quot;https://deseul.tistory.com/7&quot; data-og-url=&quot;https://deseul.tistory.com/7&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/lRcjC/hyJUWx7tv7/V1njHyFrFKqjL6MGNqkl50/img.png?width=800&amp;amp;height=399&amp;amp;face=0_0_800_399,https://scrap.kakaocdn.net/dn/dMNZCb/hyJUYCGGit/2YKlX25hmrT9GpfRFuxsr1/img.png?width=800&amp;amp;height=399&amp;amp;face=0_0_800_399,https://scrap.kakaocdn.net/dn/DSxmJ/hyJTHo24Fh/9MVza7jvJziOeDO4OP76ik/img.png?width=921&amp;amp;height=460&amp;amp;face=0_0_921_460&quot;&gt;&lt;a href=&quot;https://deseul.tistory.com/7&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://deseul.tistory.com/7&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/lRcjC/hyJUWx7tv7/V1njHyFrFKqjL6MGNqkl50/img.png?width=800&amp;amp;height=399&amp;amp;face=0_0_800_399,https://scrap.kakaocdn.net/dn/dMNZCb/hyJUYCGGit/2YKlX25hmrT9GpfRFuxsr1/img.png?width=800&amp;amp;height=399&amp;amp;face=0_0_800_399,https://scrap.kakaocdn.net/dn/DSxmJ/hyJTHo24Fh/9MVza7jvJziOeDO4OP76ik/img.png?width=921&amp;amp;height=460&amp;amp;face=0_0_921_460');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;AOP(Aspect Oriented Programming)란?(1)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;AOP(관점 지향적인 프로그래밍) 문제를 바라보는 관점을 기준으로 프로그래밍하는 기법을 말한다. 아래와 같은 부가 기능을 처리할 때, 활용된다. AOP의 역할 AOP는 문제를 해결하기 위한 핵심 관&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;deseul.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전 글에 이어진 내용입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에는 스프링 AOP구현에 대해 적어보겠습니다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;구현과정&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;스프링 스프링 AOP를 사용하기 위한 의존을 추가한다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;공통 기능을 제공할 클래스를 구현한다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;XML 설정 파일에 &amp;lt;aop:config&amp;gt;를 이용해서 Aspect를 설정한다. Advice를 어떤 Pointcut에 적용할지를 지정하게 된다.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;602&quot; data-origin-height=&quot;277&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TSTL9/btq2NdKnIte/gKrqqXL7kMgQ1E1HWLGgJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TSTL9/btq2NdKnIte/gKrqqXL7kMgQ1E1HWLGgJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TSTL9/btq2NdKnIte/gKrqqXL7kMgQ1E1HWLGgJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTSTL9%2Fbtq2NdKnIte%2FgKrqqXL7kMgQ1E1HWLGgJk%2Fimg.png&quot; data-origin-width=&quot;602&quot; data-origin-height=&quot;277&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;XML 스키마 기반의 POJO클래스 AOP구현&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;Profile.java&lt;/u&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1618647985447&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public Object trace(ProceedingJoinPoint joinPoint)throws Throwable{
	Object result = jointPoint.proceed();
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;acQuickStart.xml&lt;/u&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1618648036959&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;bean id=&quot;profiler&quot; class=&quot;net.madvirus.aop.Profiler&quot; /&amp;gt;
&amp;lt;aop:config&amp;gt; 
  &amp;lt;aop:aspect id=&quot;traceAspect&quot; ref=&quot;profiler&quot;&amp;gt; 
  &amp;lt;aop:pointcut id=&quot;publicMethod&quot;
  	expression=&quot;execution(public * net.spring4.chap06..*(..))&quot; /&amp;gt; 
  &amp;lt;aop:around pointcut-ref=&quot;publicMethod&quot; method=&quot;trace&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;@Aspect&amp;nbsp;애노테이션&amp;nbsp;기반&amp;nbsp;AOP퀵&amp;nbsp;스타트&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ProfilingAspect.java&lt;/p&gt;
&lt;pre id=&quot;code_1618648107270&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Aspect
@Pointcut(&quot;execution(public * net.madvirus.board..*(..))&quot;)
private void profileTarget()
@Around(&quot;profileTarget()&quot;)
public Object trace(ProceedingJoinPoint joinPoint) throws Throwable{
  joinPoint.getSignature().toShortString();
  Object result = joinPoint.proceed();&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;acQuickStart.xml&lt;/p&gt;
&lt;pre id=&quot;code_1618648128549&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;aop:aspectj-autoproxy /&amp;gt;
&amp;lt;bean id=&quot;performanceTraceAspect&quot;
  class=&quot;net.madvirus.spring4.chap06.aop.ProfilingAspect&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT/JAVA</category>
      <category>AOP</category>
      <category>Spring</category>
      <category>springAOP</category>
      <category>스프링</category>
      <category>스프링AOP</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/8</guid>
      <comments>https://deseul.tistory.com/entry/AOPAspect-Oriented-Programming-%EA%B5%AC%ED%98%842#entry8comment</comments>
      <pubDate>Sat, 17 Apr 2021 17:29:52 +0900</pubDate>
    </item>
    <item>
      <title>AOP(Aspect Oriented Programming)란?(1)</title>
      <link>https://deseul.tistory.com/entry/AOPAspect-Oriented-Programming%EB%9E%801</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;AOP(관점 지향적인 프로그래밍)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제를 바라보는 관점을 기준으로 프로그래밍하는 기법을 말한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같은 부가 기능을 처리할 때, 활용된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;921&quot; data-origin-height=&quot;460&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d7MzlB/btq2MlI6nN7/P9WS7r0XN7mlskxC4mGnWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d7MzlB/btq2MlI6nN7/P9WS7r0XN7mlskxC4mGnWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d7MzlB/btq2MlI6nN7/P9WS7r0XN7mlskxC4mGnWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd7MzlB%2Fbtq2MlI6nN7%2FP9WS7r0XN7mlskxC4mGnWK%2Fimg.png&quot; data-origin-width=&quot;921&quot; data-origin-height=&quot;460&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;AOP의 역할&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AOP는 문제를 해결하기 위한 핵심 관심 사항과 전체에 적용되는 공통 모듈사항을 기준으로 프로그래밍 함으로써&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공통모듈을 여러 코드에 쉽게 적용할 수 있도록 도와주는 역할을 합니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;317&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/N2u8R/btq2QVaHsJ1/dSLA7ItF764WuShKEC6kok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/N2u8R/btq2QVaHsJ1/dSLA7ItF764WuShKEC6kok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/N2u8R/btq2QVaHsJ1/dSLA7ItF764WuShKEC6kok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FN2u8R%2Fbtq2QVaHsJ1%2FdSLA7ItF764WuShKEC6kok%2Fimg.png&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;317&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;AOP 주요용어&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1. Aspect&lt;/b&gt; : 여러객체에 공통으로 적용되는 기능&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2. JoinPoint&lt;/b&gt; : Advice를 적용 가능한 지점을 의미. 메서드 호출, 필드 값 변경&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;3. Advice&lt;/b&gt; : 언제 공통 관심 기능을 핵심로직에 적용할 지를 정의&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;4. Pointcut&lt;/b&gt; : JoinPoint의 부분집합&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;5. Weaving&lt;/b&gt; : Advice를 핵심 로직 코드에 적용&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;477&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bepsum/btq2OPoikbA/joF44ss9sF3XfBWfU7QZEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bepsum/btq2OPoikbA/joF44ss9sF3XfBWfU7QZEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bepsum/btq2OPoikbA/joF44ss9sF3XfBWfU7QZEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbepsum%2Fbtq2OPoikbA%2FjoF44ss9sF3XfBWfU7QZEK%2Fimg.png&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;477&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Adivce의 종류&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Before&lt;/b&gt; : 주 업무 이전에 처리할 필요가 있는 부가 작업처리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;- 적용 예시 : &amp;lt;aop:before&amp;gt; @Before&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;After Returning&lt;/b&gt; : 주 업무 이전에 처리해야할 필요가 있는 부가 작업 처리&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;- 적용 예시 : &amp;lt;aop:after-returning&amp;gt; @AfterReturning&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;After Throwing&lt;/b&gt; : 예외가 발생한 경우, 그 예외를 어떻게 처리해야 하는지에 대한 공통처리 모듈 작성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;- 적용 예시 : &amp;lt;aop:after-throwing&amp;gt; @AfterThrowing&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;Around&lt;/b&gt; : 주 업무 시작과 마지막 부분에 처리해야할 필요가 있는 부가 작업을 처리&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #006dd7;&quot;&gt;- 적용 예시 : &amp;lt;aop:around&amp;gt; @Around&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;610&quot; data-origin-height=&quot;439&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zu7ZJ/btq2OOJGAMt/IKVcgy0jJ4NKVopyTki1h1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zu7ZJ/btq2OOJGAMt/IKVcgy0jJ4NKVopyTki1h1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zu7ZJ/btq2OOJGAMt/IKVcgy0jJ4NKVopyTki1h1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fzu7ZJ%2Fbtq2OOJGAMt%2FIKVcgy0jJ4NKVopyTki1h1%2Fimg.png&quot; data-origin-width=&quot;610&quot; data-origin-height=&quot;439&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Aspect의 Poincut 표현식&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #99cefa;&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;execution 명시자&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;&lt;b&gt;execution(수식패턴?리턴타입패턴 클래스이름 패턴? 메서드이름 패턴(파라미터 패턴))&lt;/b&gt;&lt;b&gt;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;exection(public void set*(..)) : 리턴타입이 void이고, 이름이 set으로 시작하고,&amp;nbsp; 파라미터가 0개 이상인 메서드 호출&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;execution(* void set*(..)) :&amp;nbsp;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;메서드 set으로 시작, 파라미터가 0개이상&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;execution(* net..*.get*(*,*)) : &lt;/b&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;net 하위 패키지에 있는 get으로 시작하는 2개의 파라미터 메서드 호출&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;within 명시자&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;특정 타입에 속하는 메서드를 piontcut으로 설정&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- withon(net.pri.Service)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- within(.vo..*) : 패키지명이 vo가 들어가고 하위에 있는 모든 클래스&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;bean 명시자&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명시자 스프링에서 추가적으로 제공하는 명시자 bean(*Service)&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;JdkRegexpMethodPointcut&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;pattern&amp;nbsp;/&amp;nbsp;patterns&amp;nbsp;프로퍼티를&amp;nbsp;통해&amp;nbsp;Pointcut&amp;nbsp;메서드&amp;nbsp;패턴을&amp;nbsp;정규표현식으로&amp;nbsp;설정 &lt;br /&gt;&amp;nbsp; - &amp;lt;property name=&quot;pattern&quot; value=&quot;.*someWord.*&quot;/&amp;gt; : someWord메서드 포함된 호출&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;pointcut의&amp;nbsp;조합&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;표현식1&amp;amp;&amp;amp;표현식2,&amp;nbsp;표현식1||표현식2&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;@Order(적용순서)&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;프락시 서버 호출&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;376&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ebvBez/btq2Muy5mUf/Q1Jk2Hki2CXRSklvb5jhfk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ebvBez/btq2Muy5mUf/Q1Jk2Hki2CXRSklvb5jhfk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ebvBez/btq2Muy5mUf/Q1Jk2Hki2CXRSklvb5jhfk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FebvBez%2Fbtq2Muy5mUf%2FQ1Jk2Hki2CXRSklvb5jhfk%2Fimg.png&quot; data-origin-width=&quot;654&quot; data-origin-height=&quot;376&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT/JAVA</category>
      <category>AOP</category>
      <category>Spring</category>
      <category>springAOP</category>
      <category>스프링</category>
      <category>스프링AOP</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/7</guid>
      <comments>https://deseul.tistory.com/entry/AOPAspect-Oriented-Programming%EB%9E%801#entry7comment</comments>
      <pubDate>Sat, 17 Apr 2021 17:20:35 +0900</pubDate>
    </item>
    <item>
      <title>리얼포스 후기 ★ +  토프레 키</title>
      <link>https://deseul.tistory.com/entry/%EB%A6%AC%EC%96%BC%ED%8F%AC%EC%8A%A4-%ED%9B%84%EA%B8%B0-%E2%98%85-%ED%86%A0%ED%94%84%EB%A0%88-%ED%82%A4</link>
      <description>&lt;p&gt;Realforce R2 TLSA 그레이/블루 저소음 APC 30g 균등 한글를 샀다&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bP1Hzs/btq1K3uzphs/EGdAJSUgkWf4ydKF2oy3Gk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bP1Hzs/btq1K3uzphs/EGdAJSUgkWf4ydKF2oy3Gk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bP1Hzs/btq1K3uzphs/EGdAJSUgkWf4ydKF2oy3Gk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbP1Hzs%2Fbtq1K3uzphs%2FEGdAJSUgkWf4ydKF2oy3Gk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;화이트와 고민했지만 역시 간지는 그레이 블랙.&lt;/p&gt;
&lt;p&gt;재고 들어왔길래 바로 결제 하고 기다렸다&lt;/p&gt;
&lt;p&gt;하루만에 도착했다. 레오폴드 홈페이지에서 할까 했지만 빠른게 최고니까..!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;오자마자 다 뜯어버리고 쓰다가 후기 쓸 생각을 하지 못해서&lt;/p&gt;
&lt;p&gt;오늘 후기쓸 생각을 하며 사진을 찍었다. 지금 다른 키보드를 쓰는중이라 이 후기를 쓰기 위해 리얼포스를&amp;nbsp;&lt;/p&gt;
&lt;p&gt;창고에서 꺼냈다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;KakaoTalk_20210403_173416751_01.jpg&quot; width=&quot;364&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/q6fwb/btq1ISBh29J/wkhcAqT7BLm4Mw9258fbLK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/q6fwb/btq1ISBh29J/wkhcAqT7BLm4Mw9258fbLK/img.jpg&quot; data-alt=&quot;안녕..&amp;amp;amp;nbsp;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/q6fwb/btq1ISBh29J/wkhcAqT7BLm4Mw9258fbLK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq6fwb%2Fbtq1ISBh29J%2FwkhcAqT7BLm4Mw9258fbLK%2Fimg.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot; data-filename=&quot;KakaoTalk_20210403_173416751_01.jpg&quot; width=&quot;364&quot; height=&quot;NaN&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;안녕..&amp;nbsp;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;꺼내기전에 쓰던 우리 귀여운 BW-KB1을 박스에 다시 고이 넣고..&lt;/p&gt;
&lt;p&gt;키보드 또 사고싶다..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;796&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/doI2r7/btq1K32p6TN/ZGAQK9Dq5QfVEdkEZB8IR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/doI2r7/btq1K32p6TN/ZGAQK9Dq5QfVEdkEZB8IR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/doI2r7/btq1K32p6TN/ZGAQK9Dq5QfVEdkEZB8IR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdoI2r7%2Fbtq1K32p6TN%2FZGAQK9Dq5QfVEdkEZB8IR1%2Fimg.png&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;796&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;사진 상으로는 그렇게 커보이지 않지만 실제로 보면 키보드 박스가 너무 커서 속에 든 부속품이 많은가? 싶어서&amp;nbsp;&lt;/p&gt;
&lt;p&gt;처음에는 아주 기대가 되었다.&lt;/p&gt;
&lt;p&gt;그래서 크기 비교를 위해 g304박스를 옆에 두어보았다. 저렇게 세로로 세워둔 g304박스보다 높다.&lt;/p&gt;
&lt;p&gt;이게 두께가 진짜 두꺼운데 그걸 못찍었네&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;KakaoTalk_20210403_173416751_02.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VLdfn/btq1MqiLEGE/eRMcsaxARRn8oTxul0uSHk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VLdfn/btq1MqiLEGE/eRMcsaxARRn8oTxul0uSHk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VLdfn/btq1MqiLEGE/eRMcsaxARRn8oTxul0uSHk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVLdfn%2Fbtq1MqiLEGE%2FeRMcsaxARRn8oTxul0uSHk%2Fimg.jpg&quot; data-filename=&quot;KakaoTalk_20210403_173416751_02.jpg&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;열면 이렇게 옆에 스펀지로 충격흡수를 해주고 있고 습음제? 같은게 들어있다.&lt;/p&gt;
&lt;p&gt;그리고 캡스락과 ctrl을 바꾸려는 자를 위한 여분의 키캡과 비닐로 아주 잘 쌓여있는 키캡 리무버가 들어있다.&lt;/p&gt;
&lt;p&gt;더 없네.,, 스펀지가 부피를 다 메꾸었다..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;734&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvMBmx/btq1K4AfdNT/sjNwJ1ehbTkSX4SwSUiuV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvMBmx/btq1K4AfdNT/sjNwJ1ehbTkSX4SwSUiuV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvMBmx/btq1K4AfdNT/sjNwJ1ehbTkSX4SwSUiuV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvMBmx%2Fbtq1K4AfdNT%2FsjNwJ1ehbTkSX4SwSUiuV1%2Fimg.png&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;734&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;키캡놀이를 하고 다시 넣은뒤라 키가 다르긴 한데 그래도 이쁘니까 한컷&lt;/p&gt;
&lt;p&gt;원래 키들은 바꿔낀 키캡 박스에 고이 들어있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FZAEb/btq1IHz006p/D3MQTkcYKnztuF7navQtU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FZAEb/btq1IHz006p/D3MQTkcYKnztuF7navQtU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FZAEb/btq1IHz006p/D3MQTkcYKnztuF7navQtU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFZAEb%2Fbtq1IHz006p%2FD3MQTkcYKnztuF7navQtU0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;원래 리얼포스 키는 이렇게 그레이랑 블랙인데 이 자체도 이쁘다. &lt;s&gt;그러나 사람의 욕심은 끝이없고..&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;토프레 키캡을 열심히 찾아보았는데 정말 없더라. 토프레 자체가 비싸기도 하고 수요가 없어서 그런거 같기는 한데&lt;/p&gt;
&lt;p&gt;그렇다기에는 찾는 이들의 글은 많아 보이던데..&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그래서 더 열심히 찾다 무&lt;span style=&quot;color: #333333;&quot;&gt;각키캡을 살때 토프레 키캡까지 발견해서 사버렸다..&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이 키캡은 가격이 좀 있었는데..&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Z3YoL/btq1K4tttXJ/1pKRUkhUwk4J3P8E0qz6xK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Z3YoL/btq1K4tttXJ/1pKRUkhUwk4J3P8E0qz6xK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Z3YoL/btq1K4tttXJ/1pKRUkhUwk4J3P8E0qz6xK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZ3YoL%2Fbtq1K4tttXJ%2F1pKRUkhUwk4J3P8E0qz6xK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;무려 육만 오천원 가량!&lt;/p&gt;
&lt;p&gt;심지어 리얼포스 키배열과도 다른 ! 사실 사면서도 아 맞으려나? 같은 토프레니까 맞긴 하겠는데..하며 고민을 하였으나 뭐 해피해킹도 언젠가 살꺼니까 라는 행복 회로를 돌리며 무각키캡과 같이 시켰다. 고민이 길수록 배송은 늦다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1439&quot; data-origin-height=&quot;658&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mgaV4/btq1MqC4Jry/4kcDnhTt94mt6zUQmGdip1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mgaV4/btq1MqC4Jry/4kcDnhTt94mt6zUQmGdip1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mgaV4/btq1MqC4Jry/4kcDnhTt94mt6zUQmGdip1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmgaV4%2Fbtq1MqC4Jry%2F4kcDnhTt94mt6zUQmGdip1%2Fimg.png&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1439&quot; data-origin-height=&quot;658&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;나름 가격이 있는 녀석이라 그런지 박스 배송으로 왔다.&lt;s&gt; DOMIKEYㅋㅋㅋㅋ 귀엽네&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;무각키캡은 비닐에 쌓여져 왔는데.. 가격이 무려 3배차이니까 박스로 왔군 !&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvYf0K/btq1KcFzWDq/5TELi4DKhJFtA9VO1OE980/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvYf0K/btq1KcFzWDq/5TELi4DKhJFtA9VO1OE980/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvYf0K/btq1KcFzWDq/5TELi4DKhJFtA9VO1OE980/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvYf0K%2Fbtq1KcFzWDq%2F5TELi4DKhJFtA9VO1OE980%2Fimg.png&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1440&quot; data-origin-height=&quot;1080&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이렇게 두개로 왔는데 원래는 사진 속 키캡이 들어있었지만&lt;/p&gt;
&lt;p&gt;이미 키캡제거를 끝내고 원래 리얼포스의 키캡이 들어있다.. 해피해킹에만 맞는 키들이라 끼워놓지 못하고 그대로 있다..&lt;/p&gt;
&lt;p&gt;글자와 숫자키만 바꿨지만 그래도 만족!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;저렇게 견고히 포장이 되어있어서 지금 리얼포스의 키캡은 창고에 편안히 있다..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;다시 돌아와서 바꿔낀 리얼포스의 자태 ~&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1439&quot; data-origin-height=&quot;570&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cdHUjT/btq1NukVU3h/WfRNTtqKMM4JET3CKnXr70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cdHUjT/btq1NukVU3h/WfRNTtqKMM4JET3CKnXr70/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cdHUjT/btq1NukVU3h/WfRNTtqKMM4JET3CKnXr70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcdHUjT%2Fbtq1NukVU3h%2FWfRNTtqKMM4JET3CKnXr70%2Fimg.png&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1439&quot; data-origin-height=&quot;570&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;너무 이쁘다 키캡을 바꿔서 살짝 키감이 달라졌긴한데&lt;/p&gt;
&lt;p&gt;그래도 이쁘니까 너무 만족스럽다.. 값이 비싸긴 하지만 토프레 키캡이 많이 없으니 추천!&lt;/p&gt;
&lt;p&gt;사실 후기라기보다는 자랑글입니다&amp;nbsp; 너무 이쁘다 이쁘다 이쁘다 책상 볼때마다 뿌듯하고 키칠때마다 감탄하고..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;갈축쓰다가 무접점쓰니까 가볍고 너무 좋네요 역시 축은 하나씩 다 있어줘야 합니다.&lt;/p&gt;
&lt;p&gt;다음 구매를 위해 열심히 공부하고 일해야죠.&amp;nbsp; ^^&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>IT/장비</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/6</guid>
      <comments>https://deseul.tistory.com/entry/%EB%A6%AC%EC%96%BC%ED%8F%AC%EC%8A%A4-%ED%9B%84%EA%B8%B0-%E2%98%85-%ED%86%A0%ED%94%84%EB%A0%88-%ED%82%A4#entry6comment</comments>
      <pubDate>Sat, 3 Apr 2021 18:15:32 +0900</pubDate>
    </item>
    <item>
      <title>무각 키보드 키캡</title>
      <link>https://deseul.tistory.com/entry/%EB%AC%B4%EA%B0%81-%ED%82%A4%EB%B3%B4%EB%93%9C-%ED%82%A4%EC%BA%A1</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FL6a6/btq1yZe9f3G/e2oZkeMUUVikUFPePVuRKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FL6a6/btq1yZe9f3G/e2oZkeMUUVikUFPePVuRKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FL6a6/btq1yZe9f3G/e2oZkeMUUVikUFPePVuRKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFL6a6%2Fbtq1yZe9f3G%2Fe2oZkeMUUVikUFPePVuRKK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;별 기대없이 알리익스프레스를 구경하다가 괜찮은데? 싶은 무각 키보드 키캡을 발견했다.&lt;/p&gt;
&lt;p&gt;가격도 나쁘지않고 한국에서 샀으면 삼사만원은 주고 샀어야 하는 퀄리티로 보이길래 오래 걸릴걸 감안하고 주문했다&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그런데 기대치 않게 일주일만에 와버린 예쁜 키보드 키캡&amp;nbsp;&lt;/p&gt;
&lt;p&gt;포장상태도 나쁘지 않았는데 바로 뜯어 버려서 사진이 남아있지 않다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;사실상 키캡놀이를 하기 위해 산 저가형 게이트론 블루투스 키보드에 갈아끼웠다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m3IqE/btq1ztAkfXn/LvjsLIn1dQIvIls3Q2n1qk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m3IqE/btq1ztAkfXn/LvjsLIn1dQIvIls3Q2n1qk/img.png&quot; data-alt=&quot;이역시 중국제 키보드 게이트론 갈축 블루투스 키보드이다.변태적 배열에 반해서 샀다.&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m3IqE/btq1ztAkfXn/LvjsLIn1dQIvIls3Q2n1qk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm3IqE%2Fbtq1ztAkfXn%2FLvjsLIn1dQIvIls3Q2n1qk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이역시 중국제 키보드 게이트론 갈축 블루투스 키보드이다.변태적 배열에 반해서 샀다.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;BiltzWolf의 BW-KB1 키보드.. 지금 아주 잘쓰고 있는중이다.&amp;nbsp;&lt;s&gt; 하지만 역시 무접점이 최고..&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;/? 키의 위치가 좀 불편하지만 익숙해지면 그것도 나름 괜찮다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;블루투스 키보드 임에도 선을 연결해서 쓰고 있는 이유는 문서나 코딩같이 정적인 작업을 할 때는 몰랐는데&lt;/p&gt;
&lt;p&gt;게임할때 반응이 느려 자꾸 챔피언이 죽어서 선을 껴놓고 쓰고 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZxxnE/btq1vimgdH3/uBInqCkZsMbPbsfo4HBmH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZxxnE/btq1vimgdH3/uBInqCkZsMbPbsfo4HBmH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZxxnE/btq1vimgdH3/uBInqCkZsMbPbsfo4HBmH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZxxnE%2Fbtq1vimgdH3%2FuBInqCkZsMbPbsfo4HBmH1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;갈아 끼운 상태 갈아끼우니 키감도 더 좋아졌다(기분탓인가?)&lt;/p&gt;
&lt;p&gt;원래 키보드의 키캡은 매끈하고 문자부분이 투명하게 되있어 빛이 투과되었는데 이 무각 키캡은 빛 투과가 되지않고&amp;nbsp;&lt;/p&gt;
&lt;p&gt;키캡의 느낌도 약간 오돌토돌하다. 나쁜 느낌은 아니였다 매끈하지는 않지만 어딘가에서 많이 만져본 느낌인데?&lt;/p&gt;
&lt;p&gt;정확히 말을 할수가없네 장난감느낌 !&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;하지만 역시 싼거라 마감상태가 그리 좋지는 않았다. 아무것도 써있지 않은 탓에 어디가 위인지 아래인지 알수가 없어 키캡을 끼울때도 약간 애 먹었다. 싼맛에 이쁜 키캡 쓰는 느낌&lt;/p&gt;
&lt;p&gt;그래도 많은 키들이 있어서 키들의 크기가 제각각 이었음에도 틈없이 다 맞아 역시 중국제끼리 맞는건가?라는 무논리 생각을 하게 만들었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;무각 간지가 내 맘을 강타했다. 다음에도 또사야지.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #c0d1e7;&quot;&gt;BiltzWolf의 BW-KB1 키보드도 사용기도 작성해야지&lt;/span&gt;&lt;/p&gt;</description>
      <category>IT/장비</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/5</guid>
      <comments>https://deseul.tistory.com/entry/%EB%AC%B4%EA%B0%81-%ED%82%A4%EB%B3%B4%EB%93%9C-%ED%82%A4%EC%BA%A1#entry5comment</comments>
      <pubDate>Wed, 31 Mar 2021 22:18:07 +0900</pubDate>
    </item>
    <item>
      <title>정보처리 기사 실기(계획)</title>
      <link>https://deseul.tistory.com/entry/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC-%EA%B8%B0%EC%82%AC-%EC%8B%A4%EA%B8%B0%EA%B3%84%ED%9A%8D</link>
      <description>&lt;p&gt;개발자라면 제일 기본이라는 정보처리기사! 20년에 개정된 후 좀 어려워졌지만..&lt;/p&gt;
&lt;p&gt;이번 필기는 합격률 80%라 실기가 어려울 것이라 예상된다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;드디어 오늘 실기를 신청했다. 항상 그렇듯 신청날 Q넷의 서버는..&lt;/p&gt;
&lt;p&gt;하지만&amp;nbsp;30분만에 성공하고 몇시간을 기다려 접수완료 카톡을 받았다&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/erlZcu/btq1uwcTILV/xnmD1hI2PFi9C30URBKrH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/erlZcu/btq1uwcTILV/xnmD1hI2PFi9C30URBKrH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/erlZcu/btq1uwcTILV/xnmD1hI2PFi9C30URBKrH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FerlZcu%2Fbtq1uwcTILV%2FxnmD1hI2PFi9C30URBKrH1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;딱 25일 남았다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;지금까지는 자기전에만&lt;/p&gt;
&lt;p&gt;필기때 들었던 경기도 지식(GSEEK) 홈페이지 인강을 들었지만..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p&gt;공짜에다가 필기인강 선생님은 듣기 좋게 설명해주신다.&lt;/p&gt;
&lt;p&gt;물론 책으로 공부는 해야겠지만 기본기를 잡으며 자기전 asmr까지.. (추천,,,b)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.gseek.kr/learn/learn.list?SC_SC1_CODE=5db1d93168a6d&amp;amp;SC_SC2_CODE=5db1db6f09634&amp;amp;SC_SC3_CODE=T222&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;www.gseek.kr/learn/learn.list?SC_SC1_CODE=5db1d93168a6d&amp;amp;SC_SC2_CODE=5db1db6f09634&amp;amp;SC_SC3_CODE=T222&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1617166171901&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;GSEEK - 경기도 온라인 평생학습 서비스&quot; data-og-description=&quot;경기도 무료 온라인 평생학습서비스, 외국어, 자격취득, 생활/취미, 부모교육, 청소년 등 제공&quot; data-og-host=&quot;www.gseek.kr&quot; data-og-source-url=&quot;https://www.gseek.kr/learn/learn.list?SC_SC1_CODE=5db1d93168a6d&amp;amp;SC_SC2_CODE=5db1db6f09634&amp;amp;SC_SC3_CODE=T222&quot; data-og-url=&quot;https://www.gseek.kr&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/byCAsR/hyJIf7fmLj/gQDKvIWRgHMUQDJz8Sxnsk/img.jpg?width=1024&amp;amp;height=576&amp;amp;face=0_0_1024_576,https://scrap.kakaocdn.net/dn/cUVoJm/hyJJUtCsr2/V3vBJueAwyZ9yUHKyW4LfK/img.jpg?width=200&amp;amp;height=45&amp;amp;face=0_0_200_45&quot;&gt;&lt;a href=&quot;https://www.gseek.kr/learn/learn.list?SC_SC1_CODE=5db1d93168a6d&amp;amp;SC_SC2_CODE=5db1db6f09634&amp;amp;SC_SC3_CODE=T222&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.gseek.kr/learn/learn.list?SC_SC1_CODE=5db1d93168a6d&amp;amp;SC_SC2_CODE=5db1db6f09634&amp;amp;SC_SC3_CODE=T222&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/byCAsR/hyJIf7fmLj/gQDKvIWRgHMUQDJz8Sxnsk/img.jpg?width=1024&amp;amp;height=576&amp;amp;face=0_0_1024_576,https://scrap.kakaocdn.net/dn/cUVoJm/hyJJUtCsr2/V3vBJueAwyZ9yUHKyW4LfK/img.jpg?width=200&amp;amp;height=45&amp;amp;face=0_0_200_45');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;GSEEK - 경기도 온라인 평생학습 서비스&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;경기도 무료 온라인 평생학습서비스, 외국어, 자격취득, 생활/취미, 부모교육, 청소년 등 제공&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.gseek.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjcsgq/btq1qNGTrj4/pIlCyhzXftJPW2MkDp7vSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjcsgq/btq1qNGTrj4/pIlCyhzXftJPW2MkDp7vSk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjcsgq/btq1qNGTrj4/pIlCyhzXftJPW2MkDp7vSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbjcsgq%2Fbtq1qNGTrj4%2FpIlCyhzXftJPW2MkDp7vSk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;공부방법&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;u&gt;&lt;b&gt;시나공 실기 교재&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시나공, 수제비 등이 있지만 수제는 작년에 출제율이 낮았다는 소문이 있어(하지만 역시 케바케)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시나공으로 교재로 준비했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;필기도 시나공으로 준비했는데, 두께 자체는 필기보다는 얇다. 그래도 두껍지만..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 프로그래밍 언어와 SQL을 확실히 준비해야한다. 기출문제를 풀어보니 C언어와 자바 파이썬등 여러가지가 나온다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;s&gt;전공자였으면 얼마나 좋을까라는 생각이 매 순간 스쳐지나가지만 ㅠㅠ&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하루 한시간 씩 꾸준히 문제풀이와 해설읽기. 그리고 토막강의 ! =&amp;gt; 중요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주관식 문제를 풀다보니 필기의 객관식이 너무나도 그리워졌다. 주관식이 되니 굉장히 어려워졌지만 이게 개발공부중&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 기본 ! 쉬운 것&amp;nbsp; !이라는 생각으로 계속해서 읽고 있다. 그래도 가끔 반가운 친구들이 있어서 공부하며 위안이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;꼭 합격 후기를 쓰기를 !&lt;/b&gt;&lt;/p&gt;</description>
      <category>기록/공부</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/4</guid>
      <comments>https://deseul.tistory.com/entry/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC-%EA%B8%B0%EC%82%AC-%EC%8B%A4%EA%B8%B0%EA%B3%84%ED%9A%8D#entry4comment</comments>
      <pubDate>Wed, 31 Mar 2021 13:46:24 +0900</pubDate>
    </item>
    <item>
      <title>full-calendar라이브러리에 DB연동</title>
      <link>https://deseul.tistory.com/entry/full-calendar%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC%EC%97%90-DB%EC%97%B0%EB%8F%99</link>
      <description>&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;사용한 개발도구 및 언어 : spring, java, js, ajax, oracle&lt;/i&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: right;&quot; data-ke-size=&quot;size14&quot;&gt;&lt;i&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이글은 기본 스프링과 자바 jsp, orecle환경세팅이 되어있는것을 기본으로 한다.&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://fullcalendar.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;fullcalendar.io/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1231&quot; data-origin-height=&quot;561&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bINVbY/btq1nJjUK92/IKKTjxnChgl7STyiCGiFE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bINVbY/btq1nJjUK92/IKKTjxnChgl7STyiCGiFE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bINVbY/btq1nJjUK92/IKKTjxnChgl7STyiCGiFE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbINVbY%2Fbtq1nJjUK92%2FIKKTjxnChgl7STyiCGiFE1%2Fimg.png&quot; data-origin-width=&quot;1231&quot; data-origin-height=&quot;561&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인터넷에는 다양한 무료 라이브러리들이 많은데 백엔드 개발을 갓 배운 나에게는 그림의 떡이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기껏해야 swiper를 이용해 슬라이드만 만들었는데, 데이터베이스를 연동하려니&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;피상적으로 데이터를 뿌려줘야지..&amp;nbsp; 생각은 들지만 정확한 로직이 그려지질 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. 라이브러리 파일 다운 받기&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 fullcalendar홈페이지에 최근 버전을 다운받는다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;깃허브에서 v5.6.0을 다운 받았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일을 보면 예제파일과 lib폴더가 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;608&quot; data-origin-height=&quot;104&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGcb4G/btq1nJjWmrE/GPoxUpc00LlvpyvtJTrYf0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGcb4G/btq1nJjWmrE/GPoxUpc00LlvpyvtJTrYf0/img.png&quot; data-alt=&quot;파일구조&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGcb4G/btq1nJjWmrE/GPoxUpc00LlvpyvtJTrYf0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGcb4G%2Fbtq1nJjWmrE%2FGPoxUpc00LlvpyvtJTrYf0%2Fimg.png&quot; data-origin-width=&quot;608&quot; data-origin-height=&quot;104&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;파일구조&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 메서드나 이벤트핸들러를 숙지하는것보다 예제파일을 보고 필요한 기능페이지를 뽑아서 쓰기로 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한 파일을 jsp로 세팅한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 나는 fullcalendar-5.6.0/examples/selectable.html을 사용했다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2.&amp;nbsp; jsp 및 기본 js세팅&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;java와 spring사용을 위해 jsp페이지로 세팅하여야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번 글에서는 그렇게 중요한 부분은 아니기 때문에 pass하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본 html코드는 이렇게 세팅해준다.&lt;/p&gt;
&lt;pre id=&quot;code_1617096935265&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;div id='calendar'&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 라이브러리 기본 js 세팅&lt;/p&gt;
&lt;pre id=&quot;code_1617096957104&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;document.addEventListener('DOMContentLoaded', function() {
    var calendarEl = document.getElementById('calendar');
	// new FullCalendar.Calendar(대상 DOM객체, {속성:속성값, 속성2:속성값2..})
	
    var calendar = new FullCalendar.Calendar(calendarEl, {
      headerToolbar: {
        left: 'prev,next today',
        center: 'title',
        right: 'dayGridMonth,timeGridWeek,timeGridDay'
      },
      initialDate: '2021-04-12', // 초기 로딩 날짜.
      navLinks: true, // can click day/week names to navigate views
      selectable: true,
      selectMirror: true,
      // 이벤트명 : function(){} : 각 날짜에 대한 이벤트를 통해 처리할 내용..
      select: function(arg) {
    	  console.log(arg);

        var title = prompt('입력할 일정:');
    // title 값이 있을때, 화면에 calendar.addEvent() json형식으로 일정을 추가
        if (title) {
          calendar.addEvent({
            title: title,
            start: arg.start,
            end: arg.end,
            allDay: arg.allDay,
            backgroundColor:&quot;yellow&quot;,
            textColor:&quot;blue&quot;
          })
        }
        calendar.unselect()
      },
      eventClick: function(arg) {
    	  // 있는 일정 클릭시,
    	  console.log(&quot;#등록된 일정 클릭#&quot;);
    	  console.log(arg.event);
    	  
        if (confirm('Are you sure you want to delete this event?')) {
          arg.event.remove()
        }
      },
      editable: true,
      dayMaxEvents: true, // allow &quot;more&quot; link when too many events
      events: 
      //================ ajax데이터 불러올 부분 =====================//
  });

    calendar.render();
  });&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;code&gt;&lt;/code&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;div안에 calendar를 세팅해주는 코드이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번글에서 db와 연동시킬 곳은&lt;/p&gt;
&lt;pre id=&quot;code_1617093560825&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;events : /*json데이터*/&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뒤이다. (캘린더에 생성된 일정)&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. 테이블 생성&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오라클에서 이벤트에 넣을 table을 생성해준다.&lt;/p&gt;
&lt;pre id=&quot;code_1617094144820&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;create table calendar(
	id number primary key,
	groupId NUMBER,
	title varchar2(50),
	writer varchar2(50),
	content varchar2(1000),
	start1 date,
	end1 date,
	allDay number(1),
	textColor varchar(50),
	backgroundColor varchar2(50),
	borderColor varchar2(50)
);&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1617094832626&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;create sequence cal_seq
	start with 1
	increment by 1
	minvalue 1
	maxvalue 99999;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이벤트의 id와 제목등을 설정해준다.( 잘들어갔나 확인을 위해 색도 넣어보았다)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 일정의 id를 위한 sequence테이블이다.&lt;/p&gt;
&lt;pre id=&quot;code_1617094972890&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;INSERT INTO calendar values(cal_seq.nextval,'','할일title','test',
'내용-content',to_date('2021/05/01','YYYY/MM/DD'),
to_date('2021/05/03','YYYY/MM/DD'),1,'yellow','navy','navy');&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;test하기 위해 데이터를 임의로 입력했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 view단과 기본 데이터는 세팅됐다 !&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. Model 단&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1) vo&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;db와 연동하기위해 Calendar.java를 만들었다.&lt;/p&gt;
&lt;pre id=&quot;code_1617095445520&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class Calendar {
	private int id;
	private String groupId;
	private String title;
	private String writer;
	private String content;
	private String start;
	private String end;
    private boolean allday;
	private String textColor;
	private String backgroundColor;
	private String borderColor;
    /*set/get메서드*/
    }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2) dao&lt;/h4&gt;
&lt;pre id=&quot;code_1617095641988&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Repository
public interface CalenDao {
	public ArrayList&amp;lt;Calendar&amp;gt; calenList();
}&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3) Mapper세팅&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sql을 불러올 CalenMapper.xml을 만든다.&lt;/p&gt;
&lt;pre id=&quot;code_1617095598265&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;mapper namespace=&quot;CalenDao&quot;&amp;gt;
	&amp;lt;resultMap type=&quot;calen&quot; id=&quot;calMap&quot;&amp;gt;
		&amp;lt;result property=&quot;start&quot; column=&quot;start1&quot;/&amp;gt;
		&amp;lt;result property=&quot;end&quot; column=&quot;end1&quot;/&amp;gt;
	&amp;lt;/resultMap&amp;gt;
	&amp;lt;select id=&quot;calenList&quot; resultMap=&quot;calMap&quot;&amp;gt;
		SELECT id, title,
		TO_char(start1, 'YYYY-MM-DD&quot;T&quot;HH24:MI:SS') start1,
		TO_char(end1, 'YYYY-MM-DD&quot;T&quot;HH24:MI:SS') end1,
		ALLDAY,
		TEXTCOLOR,
		BACKGROUNDCOLOR,
		BORDERCOLOR 
		FROM CALENDAR
	&amp;lt;/select&amp;gt;
&amp;lt;/mapper&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;4) mybatis.xml세팅&lt;/h4&gt;
&lt;pre id=&quot;code_1617095727820&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  &amp;lt;typeAliases&amp;gt;
      &amp;lt;typeAlias alias=&quot;calen&quot; type=&quot;vo.Calendar&quot;/&amp;gt;
   &amp;lt;/typeAliases&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1617095535763&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;   &amp;lt;mappers&amp;gt;
       &amp;lt;mapper resource=&quot;resource/CalenMapper.xml&quot;/&amp;gt;
   &amp;lt;/mappers&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;5. Controller 단&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1) service&lt;/h4&gt;
&lt;pre id=&quot;code_1617095984087&quot; class=&quot;java&quot; style=&quot;display: block; overflow: auto; padding: 15px; color: #383a42; background: #f6f7f8; font-size: 14px; border-radius: 3px; font-family: Menlo, Consolas, Monaco, monospace; border: 1px solid #dddddd; margin: 20px auto 0px; cursor: default; z-index: 1; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Service
public class CalenService {
	@Autowired(required = false)
	private A04_CalenDao dao;
	
	public ArrayList&amp;lt;Calendar&amp;gt; calenList(){
		return dao.calenList();
	}
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2) Controller&lt;/h4&gt;
&lt;pre id=&quot;code_1617095951857&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Controller
@RequestMapping(&quot;calendar.do&quot;)
public class CalendarController {
	@Autowired(required = false)
	private CalenService service;

	@GetMapping(params=&quot;method=list&quot;)
	public String list() {
		return &quot;fullcalendar.jsp&quot;;
	}
 }&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1617096204716&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	@GetMapping(params = &quot;method=data&quot;)
	public String data(Model d) {
		d.addAttribute(&quot;list&quot;, service.calenList());
		return &quot;pageJsonReport&quot;;
	}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아까 만들어뒀던 db와 연동된 data이다. json형태로 만들어진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1617096285129&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{&quot;list&quot;:[{
  &quot;id&quot;:1,
  &quot;groupId&quot;:null,
  &quot;title&quot;:&quot;할일title&quot;,
  &quot;writer&quot;:null,
  &quot;content&quot;:null,
  &quot;start&quot;:&quot;2021-05-01T00:00:00&quot;,
  &quot;end&quot;:&quot;2021-05-03T00:00:00&quot;,
  &quot;allday&quot;:true,&quot;textColor&quot;:&quot;yellow&quot;,
  &quot;backgroundColor&quot;:&quot;navy&quot;,
  &quot;borderColor&quot;:&quot;navy&quot;
 }]}&lt;/code&gt;&lt;/pre&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;6. view단&lt;/b&gt;&lt;/h3&gt;
&lt;pre id=&quot;code_1617096469491&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;   events: function(info, successCallback, failureCallback){
    	  // ajax 처리로 데이터를 로딩 시킨다.
    	  $.ajax({
    		 type:&quot;get&quot;,
    		 url:&quot;${path}/calendar.do?method=data&quot;,
    		dataType:&quot;json&quot;  
    	  });
      }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;jsp파일에 events뒤 jsondata들어갈 곳에 ajax 로 데이터를 로딩시킨다.&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;7. 완성&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1205&quot; data-origin-height=&quot;656&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KiRFK/btq1ovsm4hS/LjjGjzYoXqidmdbsJPFv5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KiRFK/btq1ovsm4hS/LjjGjzYoXqidmdbsJPFv5K/img.png&quot; data-alt=&quot;이렇게 데이터가 보여진다 !! ^ ^완성 !&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KiRFK/btq1ovsm4hS/LjjGjzYoXqidmdbsJPFv5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKiRFK%2Fbtq1ovsm4hS%2FLjjGjzYoXqidmdbsJPFv5K%2Fimg.png&quot; data-origin-width=&quot;1205&quot; data-origin-height=&quot;656&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이렇게 데이터가 보여진다 !! ^ ^완성 !&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>IT/JAVA</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/3</guid>
      <comments>https://deseul.tistory.com/entry/full-calendar%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC%EC%97%90-DB%EC%97%B0%EB%8F%99#entry3comment</comments>
      <pubDate>Tue, 30 Mar 2021 18:29:58 +0900</pubDate>
    </item>
    <item>
      <title>첫 글</title>
      <link>https://deseul.tistory.com/entry/%EC%B2%AB-%EA%B8%80</link>
      <description>&lt;p&gt;블로그를 시작해야지 생각한지가 오래인데 이제야 첫글을 씁니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;개발공부를 제대로 시작 하게 되었습니다. 얼마되지 않았지만..&lt;/p&gt;
&lt;p&gt;개발자 과정을 배우면서 기록의 중요성을 한층 더 느끼게 되어 블로그를 개설하게 되었습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;많은 기록앱들과 프로그램들이 있지만 블로그를 선택하게 된 이유는 제가 조금씩 쓰는 글들을&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;보다 많은 사람들과 공유하고 싶은 맘이 있기 때문입니다&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;항상 같은 오류에 직면하고 없어진 기억에 다시 똑같은 행동을 답보하는 상황을 없애려고 합니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;제가 겪고 아마도 많은 개발공부를 하고있는 분들도 겪는 오류들과&lt;/p&gt;
&lt;p&gt;개발 정보들을 정리하는 디블로그가 되길 바랍니다.&lt;/p&gt;</description>
      <category>기록</category>
      <author>스콘_</author>
      <guid isPermaLink="true">https://deseul.tistory.com/2</guid>
      <comments>https://deseul.tistory.com/entry/%EC%B2%AB-%EA%B8%80#entry2comment</comments>
      <pubDate>Tue, 30 Mar 2021 11:51:30 +0900</pubDate>
    </item>
  </channel>
</rss>