<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>firstcheck</title>
    <link>https://firstcheck.tistory.com/</link>
    <description>각종 프로그래밍 정보를 다루는 블로그입니다.</description>
    <language>ko</language>
    <pubDate>Sat, 11 Apr 2026 06:28:12 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>firstcheck</managingEditor>
    <item>
      <title>[가족 주말나들이 추천] 서울 사라진 성곽길을 따라 걷기 [2024년 9월 기준]</title>
      <link>https://firstcheck.tistory.com/683</link>
      <description>&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/11/1945811_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;br/&gt;&lt;ul style='list-style-type: disc;'&gt;&lt;li&gt;&lt;b style='color:#007bb5;font-size:19px'&gt;사라진 성곽길을 따라 걷기&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;코스총거리 : &lt;/b&gt;2.89km&lt;/li&gt;&lt;li&gt;&lt;b&gt;코스일정 : &lt;/b&gt;기타&lt;/li&gt;&lt;li&gt;&lt;b&gt;코스총소요시간 : &lt;/b&gt;3시간&lt;/li&gt;&lt;li&gt;&lt;b&gt;코스테마 : &lt;/b&gt;----지자체-----&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;&lt;br/&gt;&lt;div&gt;출처) 공공데이터포털 한국관광공사 제공&lt;/div&gt;</description>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/683</guid>
      <comments>https://firstcheck.tistory.com/683#entry683comment</comments>
      <pubDate>Thu, 26 Sep 2024 21:46:01 +0900</pubDate>
    </item>
    <item>
      <title>[가족 주말나들이 추천] 부산 아이리 [2024년 9월 기준]</title>
      <link>https://firstcheck.tistory.com/682</link>
      <description>&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/65/2015765_image2_1.JPG' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;br/&gt;&lt;ul style='list-style-type: disc;'&gt;&lt;li&gt;&lt;b style='color:#007bb5;font-size:19px'&gt;아이리&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;주소 : &lt;/b&gt;부산광역시 금정구 북문로 73 &lt;/li&gt;&lt;li&gt;&lt;b&gt;수용인원 : &lt;/b&gt;500여명 수용가능&lt;/li&gt;&lt;li&gt;&lt;b&gt;유모차대여정보 : &lt;/b&gt;아니오&lt;/li&gt;&lt;li&gt;&lt;b&gt;신용카드가능정보 : &lt;/b&gt;아니오&lt;/li&gt;&lt;li&gt;&lt;b&gt;애완동물동반가능정보 : &lt;/b&gt;아니오&lt;/li&gt;&lt;li&gt;&lt;b&gt;체험가능연령 : &lt;/b&gt;전연령&lt;/li&gt;&lt;li&gt;&lt;b&gt;세계문화유산유무 : &lt;/b&gt;0&lt;/li&gt;&lt;li&gt;&lt;b&gt;세계자연유산유무 : &lt;/b&gt;0&lt;/li&gt;&lt;li&gt;&lt;b&gt;세계기록유산유무 : &lt;/b&gt;0&lt;/li&gt;&lt;li&gt;&lt;b&gt;문의및안내 : &lt;/b&gt;051-515-0130&lt;/li&gt;&lt;li&gt;&lt;b&gt;개장일 : &lt;/b&gt;2006년 06년 01일&lt;/li&gt;&lt;li&gt;&lt;b&gt;이용시간 : &lt;/b&gt;- 평일 10:00 ~ 18:30 &lt;br&gt;- 주말/공휴일 10:00 ~ 19:30&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;신용카드가능정보 : &lt;/b&gt;아니오&lt;/li&gt;&lt;br/&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/62/2015762_image2_1.JPG' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/63/2015763_image2_1.JPG' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/64/2015764_image2_1.JPG' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/66/2015766_image2_1.JPG' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;br/&gt;&lt;div&gt;출처) 공공데이터포털 한국관광공사 제공&lt;/div&gt;</description>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/682</guid>
      <comments>https://firstcheck.tistory.com/682#entry682comment</comments>
      <pubDate>Thu, 26 Sep 2024 21:43:43 +0900</pubDate>
    </item>
    <item>
      <title>[가족 주말나들이 추천] 충청북도 풍류문화관 [2024년 9월 기준]</title>
      <link>https://firstcheck.tistory.com/681</link>
      <description>&lt;ul style='list-style-type: disc;'&gt;&lt;li&gt;&lt;b style='color:#007bb5;font-size:19px'&gt;풍류문화관&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;주소 : &lt;/b&gt;충청북도 충주시 중앙탑면 탑정안길 10 &lt;/li&gt;&lt;li&gt;&lt;b&gt;유모차대여정보 : &lt;/b&gt;아니오&lt;/li&gt;&lt;li&gt;&lt;b&gt;신용카드가능정보 : &lt;/b&gt;아니오&lt;/li&gt;&lt;li&gt;&lt;b&gt;애완동물동반가능정보 : &lt;/b&gt;아니오&lt;/li&gt;&lt;li&gt;&lt;b&gt;세계문화유산유무 : &lt;/b&gt;0&lt;/li&gt;&lt;li&gt;&lt;b&gt;세계자연유산유무 : &lt;/b&gt;0&lt;/li&gt;&lt;li&gt;&lt;b&gt;세계기록유산유무 : &lt;/b&gt;0&lt;/li&gt;&lt;li&gt;&lt;b&gt;문의및안내 : &lt;/b&gt;043-857-9012&lt;/li&gt;&lt;li&gt;&lt;b&gt;개장일 : &lt;/b&gt;2015-년 -5월&lt;/li&gt;&lt;li&gt;&lt;b&gt;주차시설 : &lt;/b&gt;주차가능&lt;/li&gt;&lt;li&gt;&lt;b&gt;쉬는날 : &lt;/b&gt;매주 월요일 (월요일이 공휴일인 경우 익일 휴관), 신정, 설·추석 연휴 (전화문의)&lt;/li&gt;&lt;li&gt;&lt;b&gt;이용시간 : &lt;/b&gt;10:00 ~ 20:00 (전화문의)&lt;/li&gt;&lt;li&gt;&lt;b&gt;신용카드가능정보 : &lt;/b&gt;아니오&lt;/li&gt;&lt;br/&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/58/2036258_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/59/2036259_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/61/2036261_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/63/2036263_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/64/2036264_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;br/&gt;&lt;div&gt;출처) 공공데이터포털 한국관광공사 제공&lt;/div&gt;</description>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/681</guid>
      <comments>https://firstcheck.tistory.com/681#entry681comment</comments>
      <pubDate>Thu, 26 Sep 2024 21:42:54 +0900</pubDate>
    </item>
    <item>
      <title>[가족 주말나들이 추천] 부산 2023영호남전통시장박람회 [2024년 9월 기준]</title>
      <link>https://firstcheck.tistory.com/680</link>
      <description>&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/48/3045148_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;br/&gt;&lt;ul style='list-style-type: disc;'&gt;&lt;li&gt;&lt;b style='color:#007bb5;font-size:19px'&gt;2023영호남전통시장박람회&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;주소 : &lt;/b&gt;부산광역시 해운대구 수영강변대로 120 (우동) &lt;/li&gt;&lt;li&gt;&lt;b&gt;연락처 : &lt;/b&gt;051-635-5331&lt;/li&gt;&lt;li&gt;&lt;b&gt;행사시작일 : &lt;/b&gt;2023-11-17&lt;/li&gt;&lt;li&gt;&lt;b&gt;행사종료일 : &lt;/b&gt;2023-11-19&lt;/li&gt;&lt;li&gt;&lt;b&gt;행사장소 : &lt;/b&gt;영화의전당&lt;/li&gt;&lt;li&gt;&lt;b&gt;공연시간 : &lt;/b&gt;11:00~18:00&lt;/li&gt;&lt;li&gt;&lt;b&gt;관람소요시간 : &lt;/b&gt;11:00~18:00&lt;/li&gt;&lt;li&gt;&lt;b&gt;주최자정보 : &lt;/b&gt;아니오&lt;/li&gt;&lt;li&gt;&lt;b&gt;주최자연락처 : &lt;/b&gt;051-635-5331&lt;/li&gt;&lt;li&gt;&lt;b&gt;주관사정보 : &lt;/b&gt;아니오&lt;/li&gt;&lt;li&gt;&lt;b&gt;주관사연락처 : &lt;/b&gt;051-635-5331&lt;/li&gt;&lt;li&gt;&lt;b&gt;이용요금 : &lt;/b&gt;무료&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;&lt;br/&gt;&lt;div&gt;출처) 공공데이터포털 한국관광공사 제공&lt;/div&gt;</description>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/680</guid>
      <comments>https://firstcheck.tistory.com/680#entry680comment</comments>
      <pubDate>Thu, 26 Sep 2024 21:40:37 +0900</pubDate>
    </item>
    <item>
      <title>[가족 주말나들이 추천] 인천 빛의 정원, 송도 [2024년 9월 기준]</title>
      <link>https://firstcheck.tistory.com/679</link>
      <description>&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/98/3012698_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;br/&gt;&lt;ul style='list-style-type: disc;'&gt;&lt;li&gt;&lt;b style='color:#007bb5;font-size:19px'&gt;빛의 정원, 송도&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;주소 : &lt;/b&gt;인천광역시 연수구 컨벤시아대로 160 (송도동) 송도 센트럴파크&lt;/li&gt;&lt;li&gt;&lt;b&gt;연락처 : &lt;/b&gt;032-899-7429&lt;/li&gt;&lt;li&gt;&lt;b&gt;행사시작일 : &lt;/b&gt;2023-10-07&lt;/li&gt;&lt;li&gt;&lt;b&gt;행사종료일 : &lt;/b&gt;2023-10-29&lt;/li&gt;&lt;li&gt;&lt;b&gt;행사장소 : &lt;/b&gt;송도 센트럴파크&lt;/li&gt;&lt;li&gt;&lt;b&gt;공연시간 : &lt;/b&gt;18:00 ~ 22:00&lt;/li&gt;&lt;li&gt;&lt;b&gt;주최자정보 : &lt;/b&gt;아니오&lt;/li&gt;&lt;li&gt;&lt;b&gt;주최자연락처 : &lt;/b&gt;032-899-7429&lt;/li&gt;&lt;li&gt;&lt;b&gt;주관사정보 : &lt;/b&gt;아니오&lt;/li&gt;&lt;li&gt;&lt;b&gt;이용요금 : &lt;/b&gt;무료&lt;/li&gt;&lt;br/&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/96/3012696_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/97/3012697_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/99/3012699_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/00/3012700_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/01/3012701_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/02/3012702_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/03/3012703_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/04/3012704_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;br/&gt;&lt;div&gt;출처) 공공데이터포털 한국관광공사 제공&lt;/div&gt;</description>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/679</guid>
      <comments>https://firstcheck.tistory.com/679#entry679comment</comments>
      <pubDate>Thu, 26 Sep 2024 21:39:22 +0900</pubDate>
    </item>
    <item>
      <title>[가족 주말나들이 추천] 서울 도시의 고풍스러운 정취를 즐기다 [2024년 9월 기준]</title>
      <link>https://firstcheck.tistory.com/678</link>
      <description>&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/76/1569276_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;br/&gt;&lt;ul style='list-style-type: disc;'&gt;&lt;li&gt;&lt;b style='color:#007bb5;font-size:19px'&gt;도시의 고풍스러운 정취를 즐기다&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;코스총거리 : &lt;/b&gt;54.13km&lt;/li&gt;&lt;li&gt;&lt;b&gt;코스일정 : &lt;/b&gt;기타&lt;/li&gt;&lt;li&gt;&lt;b&gt;코스총소요시간 : &lt;/b&gt;1일&lt;/li&gt;&lt;li&gt;&lt;b&gt;코스테마 : &lt;/b&gt;----지자체-----&lt;/li&gt;&lt;/ul&gt;&lt;br/&gt;&lt;br/&gt;&lt;div&gt;출처) 공공데이터포털 한국관광공사 제공&lt;/div&gt;</description>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/678</guid>
      <comments>https://firstcheck.tistory.com/678#entry678comment</comments>
      <pubDate>Thu, 26 Sep 2024 21:38:18 +0900</pubDate>
    </item>
    <item>
      <title>[가족 주말나들이 추천] 경기도 아기농부 [2024년 9월 기준]</title>
      <link>https://firstcheck.tistory.com/677</link>
      <description>&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/53/2760053_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;br/&gt;&lt;ul style='list-style-type: disc;'&gt;&lt;li&gt;&lt;b style='color:#007bb5;font-size:19px'&gt;아기농부&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;주소 : &lt;/b&gt;경기도 화성시 양감면 독줄길 33-17 &lt;/li&gt;&lt;li&gt;&lt;b&gt;유모차대여정보 : &lt;/b&gt;아니오&lt;/li&gt;&lt;li&gt;&lt;b&gt;신용카드가능정보 : &lt;/b&gt;아니오&lt;/li&gt;&lt;li&gt;&lt;b&gt;애완동물동반가능정보 : &lt;/b&gt;아니오&lt;/li&gt;&lt;li&gt;&lt;b&gt;체험안내 : &lt;/b&gt;고구마 땅콩 캐기 / 자연관찰 / 농작물수확 / 동물먹이 주기 등&lt;br&gt;※ 체험 프로그램은 변동될 수 있으므로 네이버 예약 페이지 참조 또는 전화 문의 요망&lt;/li&gt;&lt;li&gt;&lt;b&gt;세계문화유산유무 : &lt;/b&gt;0&lt;/li&gt;&lt;li&gt;&lt;b&gt;세계자연유산유무 : &lt;/b&gt;0&lt;/li&gt;&lt;li&gt;&lt;b&gt;세계기록유산유무 : &lt;/b&gt;0&lt;/li&gt;&lt;li&gt;&lt;b&gt;문의및안내 : &lt;/b&gt;010-7628-0189&lt;/li&gt;&lt;li&gt;&lt;b&gt;주차시설 : &lt;/b&gt;주차가능&lt;/li&gt;&lt;li&gt;&lt;b&gt;쉬는날 : &lt;/b&gt;명절&lt;/li&gt;&lt;li&gt;&lt;b&gt;이용시간 : &lt;/b&gt;10:00~17:00&lt;/li&gt;&lt;li&gt;&lt;b&gt;신용카드가능정보 : &lt;/b&gt;아니오&lt;/li&gt;&lt;br/&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/45/2760045_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/48/2760048_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/50/2760050_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/52/2760052_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;br/&gt;&lt;div&gt;출처) 공공데이터포털 한국관광공사 제공&lt;/div&gt;</description>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/677</guid>
      <comments>https://firstcheck.tistory.com/677#entry677comment</comments>
      <pubDate>Thu, 26 Sep 2024 21:37:38 +0900</pubDate>
    </item>
    <item>
      <title>[가족 주말나들이 추천] 세종특별자치시 세종낙화축제 [2024년 9월 기준]</title>
      <link>https://firstcheck.tistory.com/676</link>
      <description>&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/63/3300063_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;br/&gt;&lt;ul style='list-style-type: disc;'&gt;&lt;li&gt;&lt;b style='color:#007bb5;font-size:19px'&gt;세종낙화축제&lt;/b&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;주소 : &lt;/b&gt;세종특별자치시 중앙공원로 60 (세종동) 세종중앙공원 잔디마당&lt;/li&gt;&lt;li&gt;&lt;b&gt;연락처 : &lt;/b&gt;044-850-0593&lt;/li&gt;&lt;li&gt;&lt;b&gt;행사시작일 : &lt;/b&gt;2024-05-12&lt;/li&gt;&lt;li&gt;&lt;b&gt;행사종료일 : &lt;/b&gt;2024-05-12&lt;/li&gt;&lt;li&gt;&lt;b&gt;행사장소 : &lt;/b&gt;세종중앙공원 잔디마당&lt;/li&gt;&lt;li&gt;&lt;b&gt;공연시간 : &lt;/b&gt;19:30~22:30&lt;/li&gt;&lt;li&gt;&lt;b&gt;주최자정보 : &lt;/b&gt;아니오&lt;/li&gt;&lt;li&gt;&lt;b&gt;주최자연락처 : &lt;/b&gt;044-850-0593&lt;/li&gt;&lt;li&gt;&lt;b&gt;주관사정보 : &lt;/b&gt;아니오&lt;/li&gt;&lt;li&gt;&lt;b&gt;이용요금 : &lt;/b&gt;무료&lt;/li&gt;&lt;br/&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/62/3300062_image2_1.JPG' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/64/3300064_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/65/3300065_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;center&gt;&lt;img src='http://tong.visitkorea.or.kr/cms/resource/66/3300066_image2_1.jpg' style='width:100%;max-width:600px'&gt;&lt;/center&gt;&lt;br/&gt;&lt;/ul&gt;&lt;br/&gt;&lt;br/&gt;&lt;div&gt;출처) 공공데이터포털 한국관광공사 제공&lt;/div&gt;</description>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/676</guid>
      <comments>https://firstcheck.tistory.com/676#entry676comment</comments>
      <pubDate>Thu, 26 Sep 2024 21:36:37 +0900</pubDate>
    </item>
    <item>
      <title>전라남도 장흥군 회진초등학교병설유치원 정보  [2024년 8월 기준]</title>
      <link>https://firstcheck.tistory.com/675</link>
      <description>&lt;p&gt;&lt;b&gt;■ 일반 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;회진초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교육청명&lt;/td&gt;&lt;td&gt;전라남도교육청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육지원청명&lt;/td&gt;&lt;td&gt;장흥교육지원청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원코드&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원명&lt;/td&gt;&lt;td&gt;회진초등학교병설유치원&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립유형&lt;/td&gt;&lt;td&gt;공립(병설)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대표자명&lt;/td&gt;&lt;td&gt;황송애&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원장명&lt;/td&gt;&lt;td&gt;황송애&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립일&lt;/td&gt;&lt;td&gt;19810310&lt;/td&gt;&lt;tr&gt;&lt;td&gt;개원일&lt;/td&gt;&lt;td&gt;19810310&lt;/td&gt;&lt;tr&gt;&lt;td&gt;주소&lt;/td&gt;&lt;td&gt;전라남도 장흥군 회진남구길 7&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전화번호&lt;/td&gt;&lt;td&gt;061-867-7833&lt;/td&gt;&lt;tr&gt;&lt;td&gt;홈페이지&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;09시00분~17시00분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;인가총정원수&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;tr&gt;&lt;td&gt;3세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합모집정원수&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합유아수&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공시차수&lt;/td&gt;&lt;td&gt;20241&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 건물 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;회진초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;건축년도&lt;/td&gt;&lt;td&gt;2010년&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물층수&lt;/td&gt;&lt;td&gt;지상1층/ 지하0층&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물전용면적&lt;/td&gt;&lt;td&gt;143㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대지총면적&lt;/td&gt;&lt;td&gt;17530㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 교실면적 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;회진초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교실수&lt;/td&gt;&lt;td&gt;1개&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교실면적&lt;/td&gt;&lt;td&gt;143㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;체육장&lt;/td&gt;&lt;td&gt;㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건/위생공간&lt;/td&gt;&lt;td&gt;0㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리실/급식공간&lt;/td&gt;&lt;td&gt;0㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기타공간&lt;/td&gt;&lt;td&gt;0㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 직위·자격별 교직원 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;회진초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;원장수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원감수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보직교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;일반교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;강사수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;사무직원수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사1급자격수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사2급자격수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;준교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 수업일수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;회진초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합연령수업일수&lt;/td&gt;&lt;td&gt;191&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;방과후 과정수업일수&lt;/td&gt;&lt;td&gt;242&lt;/td&gt;&lt;tr&gt;&lt;td&gt;법정일수이하여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신설유치원여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 급식 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;회진초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;급식운영방식구분&lt;/td&gt;&lt;td&gt;직영(학교급식)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;위탁업체명&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전체유아수 &lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;급식유아수&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사배치여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;단독배치영양교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공동배치영양교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리사수   &lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리인력수   &lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;tr&gt;&lt;td&gt;집단급식소신고여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 통학차량 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;회진초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;차량운영여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운행차량수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신고차량수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;9인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;12인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;15인승신고차량수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 근속연수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;회진초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1년미만교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;1년이상2년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;2년이상4년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4년이상6년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;6년이상교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 환경위생관리 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;회진초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검일자&lt;/td&gt;&lt;td&gt;20231018&lt;/td&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 의무대상시설여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검일자&lt;/td&gt;&lt;td&gt;20240228&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검결과&lt;/td&gt;&lt;td&gt;실시&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(먹는샘물(생수))&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(정수기)&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(상수도)&lt;/td&gt;&lt;td&gt;O&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(지하수)&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 수질 검사여부&lt;/td&gt;&lt;td&gt;N&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사일자&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사 결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사일자&lt;/td&gt;&lt;td&gt;20240401&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사일자&lt;/td&gt;&lt;td&gt;20240401&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 안전점검ㆍ교육 실시 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;회진초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련일자&lt;/td&gt;&lt;td&gt;20231019&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검여부&lt;/td&gt;&lt;td&gt;NA&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검일자&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검일자&lt;/td&gt;&lt;td&gt;20240325&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검일자&lt;/td&gt;&lt;td&gt;20240401&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검일자&lt;/td&gt;&lt;td&gt;20240401&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 설치여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 총 설치수&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 안 설치수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 밖 설치수&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 공제회 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;회진초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 가입여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 가입여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 보험별 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;회진초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;가입 보험명&lt;/td&gt;&lt;td&gt;영유아생명신체피해(상해보험)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가입여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명1&lt;/td&gt;&lt;td&gt;20231018&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명2&lt;/td&gt;&lt;td&gt;20240228&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명3&lt;/td&gt;&lt;td&gt;20240401&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 방과후 과정 편성 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;회진초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;독립편성학급수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;09시00분~17시00분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;독립편성참여원아수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성참여원아수&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정규교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전담사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align:right;font-size:9pt&quot;&gt;&lt;i&gt;이 데이터는 2024-08-25 기준으로 작성하였습니다.&lt;/i&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;출처) 공공데이터 유치원알리미</description>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/675</guid>
      <comments>https://firstcheck.tistory.com/675#entry675comment</comments>
      <pubDate>Sun, 25 Aug 2024 11:28:03 +0900</pubDate>
    </item>
    <item>
      <title>전북특별자치도 임실군 갈담초등학교병설유치원 정보  [2024년 8월 기준]</title>
      <link>https://firstcheck.tistory.com/674</link>
      <description>&lt;p&gt;&lt;b&gt;■ 일반 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;갈담초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교육청명&lt;/td&gt;&lt;td&gt;전북특별자치도교육청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육지원청명&lt;/td&gt;&lt;td&gt;임실교육지원청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원코드&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원명&lt;/td&gt;&lt;td&gt;갈담초등학교병설유치원&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립유형&lt;/td&gt;&lt;td&gt;공립(병설)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대표자명&lt;/td&gt;&lt;td&gt;유혜영&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원장명&lt;/td&gt;&lt;td&gt;유혜영&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립일&lt;/td&gt;&lt;td&gt;19810303&lt;/td&gt;&lt;tr&gt;&lt;td&gt;개원일&lt;/td&gt;&lt;td&gt;19810304&lt;/td&gt;&lt;tr&gt;&lt;td&gt;주소&lt;/td&gt;&lt;td&gt;전북특별자치도 임실군 호국로 65&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전화번호&lt;/td&gt;&lt;td&gt;063-643-7784&lt;/td&gt;&lt;tr&gt;&lt;td&gt;홈페이지&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;08시30분~16시30분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;인가총정원수&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;tr&gt;&lt;td&gt;3세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합모집정원수&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합유아수&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공시차수&lt;/td&gt;&lt;td&gt;20241&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 건물 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;갈담초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;건축년도&lt;/td&gt;&lt;td&gt;2000년&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물층수&lt;/td&gt;&lt;td&gt;지상2층/ 지하0층&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물전용면적&lt;/td&gt;&lt;td&gt;336㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대지총면적&lt;/td&gt;&lt;td&gt;336㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 교실면적 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;갈담초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교실수&lt;/td&gt;&lt;td&gt;3개&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교실면적&lt;/td&gt;&lt;td&gt;336㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;체육장&lt;/td&gt;&lt;td&gt;0㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건/위생공간&lt;/td&gt;&lt;td&gt;0㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리실/급식공간&lt;/td&gt;&lt;td&gt;0㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기타공간&lt;/td&gt;&lt;td&gt;0㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 직위·자격별 교직원 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;갈담초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;원장수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원감수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보직교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;일반교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;강사수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;사무직원수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사1급자격수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사2급자격수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;준교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 수업일수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;갈담초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합연령수업일수&lt;/td&gt;&lt;td&gt;181&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;방과후 과정수업일수&lt;/td&gt;&lt;td&gt;230&lt;/td&gt;&lt;tr&gt;&lt;td&gt;법정일수이하여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신설유치원여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 급식 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;갈담초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;급식운영방식구분&lt;/td&gt;&lt;td&gt;직영(학교급식)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;위탁업체명&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전체유아수 &lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;급식유아수&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사배치여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;단독배치영양교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공동배치영양교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리사수   &lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리인력수   &lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;집단급식소신고여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 통학차량 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;갈담초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;차량운영여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운행차량수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신고차량수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;9인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;12인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;15인승신고차량수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 근속연수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;갈담초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;1년이상2년미만교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;2년이상4년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4년이상6년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;6년이상교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 환경위생관리 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;갈담초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검일자&lt;/td&gt;&lt;td&gt;20230914&lt;/td&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 의무대상시설여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검일자&lt;/td&gt;&lt;td&gt;20240222&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검결과&lt;/td&gt;&lt;td&gt;실시&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(먹는샘물(생수))&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(정수기)&lt;/td&gt;&lt;td&gt;O&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(상수도)&lt;/td&gt;&lt;td&gt;O&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(지하수)&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 수질 검사여부&lt;/td&gt;&lt;td&gt;N&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사일자&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사 결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사일자&lt;/td&gt;&lt;td&gt;20230914&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사일자&lt;/td&gt;&lt;td&gt;20230914&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 안전점검ㆍ교육 실시 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;갈담초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련일자&lt;/td&gt;&lt;td&gt;20230821&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검여부&lt;/td&gt;&lt;td&gt;NA&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검일자&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검일자&lt;/td&gt;&lt;td&gt;20240304&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검일자&lt;/td&gt;&lt;td&gt;20240311&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검일자&lt;/td&gt;&lt;td&gt;20240118&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 설치여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 총 설치수&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 안 설치수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 밖 설치수&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 공제회 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;갈담초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 가입여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 가입여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 보험별 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;갈담초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;가입 보험명&lt;/td&gt;&lt;td&gt;가스배상책임보험&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가입여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명1&lt;/td&gt;&lt;td&gt;현대해상&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명2&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명3&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 방과후 과정 편성 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;갈담초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;독립편성학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성학급수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;08시30분~16시30분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;독립편성참여원아수&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성참여원아수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정규교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전담사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align:right;font-size:9pt&quot;&gt;&lt;i&gt;이 데이터는 2024-08-25 기준으로 작성하였습니다.&lt;/i&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;출처) 공공데이터 유치원알리미</description>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/674</guid>
      <comments>https://firstcheck.tistory.com/674#entry674comment</comments>
      <pubDate>Sun, 25 Aug 2024 11:23:43 +0900</pubDate>
    </item>
    <item>
      <title>전라남도 강진군 강진동초등학교병설유치원 정보  [2024년 8월 기준]</title>
      <link>https://firstcheck.tistory.com/673</link>
      <description>&lt;p&gt;&lt;b&gt;■ 일반 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;강진동초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교육청명&lt;/td&gt;&lt;td&gt;전라남도교육청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육지원청명&lt;/td&gt;&lt;td&gt;강진교육지원청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원코드&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원명&lt;/td&gt;&lt;td&gt;강진동초등학교병설유치원&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립유형&lt;/td&gt;&lt;td&gt;공립(병설)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대표자명&lt;/td&gt;&lt;td&gt;신일섭&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원장명&lt;/td&gt;&lt;td&gt;신일섭&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립일&lt;/td&gt;&lt;td&gt;19880228&lt;/td&gt;&lt;tr&gt;&lt;td&gt;개원일&lt;/td&gt;&lt;td&gt;19880301&lt;/td&gt;&lt;tr&gt;&lt;td&gt;주소&lt;/td&gt;&lt;td&gt;전라남도 강진군 중앙로 180&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전화번호&lt;/td&gt;&lt;td&gt;061-434-4354&lt;/td&gt;&lt;tr&gt;&lt;td&gt;홈페이지&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;08시00분~17시00분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;인가총정원수&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;tr&gt;&lt;td&gt;3세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합모집정원수&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합유아수&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공시차수&lt;/td&gt;&lt;td&gt;20241&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 건물 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;강진동초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;건축년도&lt;/td&gt;&lt;td&gt;2002년&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물층수&lt;/td&gt;&lt;td&gt;지상2층/ 지하0층&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물전용면적&lt;/td&gt;&lt;td&gt;485㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대지총면적&lt;/td&gt;&lt;td&gt;1143㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 교실면적 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;강진동초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교실수&lt;/td&gt;&lt;td&gt;4개&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교실면적&lt;/td&gt;&lt;td&gt;253㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;체육장&lt;/td&gt;&lt;td&gt;0㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건/위생공간&lt;/td&gt;&lt;td&gt;108㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리실/급식공간&lt;/td&gt;&lt;td&gt;9㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기타공간&lt;/td&gt;&lt;td&gt;115㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 직위·자격별 교직원 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;강진동초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;원장수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원감수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보직교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;일반교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;강사수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;사무직원수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사1급자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사2급자격수&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;tr&gt;&lt;td&gt;준교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 수업일수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;강진동초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합연령수업일수&lt;/td&gt;&lt;td&gt;185&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;방과후 과정수업일수&lt;/td&gt;&lt;td&gt;238&lt;/td&gt;&lt;tr&gt;&lt;td&gt;법정일수이하여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신설유치원여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 급식 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;강진동초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;급식운영방식구분&lt;/td&gt;&lt;td&gt;직영(학교급식)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;위탁업체명&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전체유아수 &lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;급식유아수&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사배치여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;단독배치영양교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공동배치영양교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리사수   &lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리인력수   &lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;집단급식소신고여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 통학차량 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;강진동초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;차량운영여부&lt;/td&gt;&lt;td&gt;N&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운행차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;9인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;12인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;15인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 근속연수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;강진동초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1년미만교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;1년이상2년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;2년이상4년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4년이상6년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;6년이상교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 환경위생관리 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;강진동초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검일자&lt;/td&gt;&lt;td&gt;20240320&lt;/td&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 의무대상시설여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검일자&lt;/td&gt;&lt;td&gt;20240214&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검결과&lt;/td&gt;&lt;td&gt;실시&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(먹는샘물(생수))&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(정수기)&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(상수도)&lt;/td&gt;&lt;td&gt;O&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(지하수)&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 수질 검사여부&lt;/td&gt;&lt;td&gt;N&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사일자&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사 결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사일자&lt;/td&gt;&lt;td&gt;20240304&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사일자&lt;/td&gt;&lt;td&gt;20240304&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 안전점검ㆍ교육 실시 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;강진동초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련일자&lt;/td&gt;&lt;td&gt;20231026&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검일자&lt;/td&gt;&lt;td&gt;20240229&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검일자&lt;/td&gt;&lt;td&gt;20240307&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검일자&lt;/td&gt;&lt;td&gt;20240307&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검일자&lt;/td&gt;&lt;td&gt;20240318&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 설치여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 총 설치수&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 안 설치수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 밖 설치수&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 공제회 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;강진동초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 가입여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 가입여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 보험별 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;강진동초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;가입 보험명&lt;/td&gt;&lt;td&gt;통학버스 책임보험&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대상여부&lt;/td&gt;&lt;td&gt;N&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가입여부&lt;/td&gt;&lt;td&gt;N&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명1&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명2&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명3&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 방과후 과정 편성 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;강진동초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;독립편성학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성학급수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;08시00분~17시00분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;독립편성참여원아수&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성참여원아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정규교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전담사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align:right;font-size:9pt&quot;&gt;&lt;i&gt;이 데이터는 2024-08-25 기준으로 작성하였습니다.&lt;/i&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;출처) 공공데이터 유치원알리미</description>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/673</guid>
      <comments>https://firstcheck.tistory.com/673#entry673comment</comments>
      <pubDate>Sun, 25 Aug 2024 11:20:51 +0900</pubDate>
    </item>
    <item>
      <title>경기도 오산시 동탄우리유치원 정보  [2024년 8월 기준]</title>
      <link>https://firstcheck.tistory.com/672</link>
      <description>&lt;p&gt;&lt;b&gt;■ 일반 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;동탄우리유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교육청명&lt;/td&gt;&lt;td&gt;경기도교육청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육지원청명&lt;/td&gt;&lt;td&gt;화성오산교육지원청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원코드&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원명&lt;/td&gt;&lt;td&gt;동탄우리유치원&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립유형&lt;/td&gt;&lt;td&gt;사립(사인)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대표자명&lt;/td&gt;&lt;td&gt;윤강로&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원장명&lt;/td&gt;&lt;td&gt;변미라&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립일&lt;/td&gt;&lt;td&gt;20100322&lt;/td&gt;&lt;tr&gt;&lt;td&gt;개원일&lt;/td&gt;&lt;td&gt;20100322&lt;/td&gt;&lt;tr&gt;&lt;td&gt;주소&lt;/td&gt;&lt;td&gt;경기도 오산시 외삼미로 135&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전화번호&lt;/td&gt;&lt;td&gt;031-372-0345&lt;/td&gt;&lt;tr&gt;&lt;td&gt;홈페이지&lt;/td&gt;&lt;td&gt;https://cafe.naver.com/lovewr0318&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;09시00분~18시00분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세학급수&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합학급수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;인가총정원수&lt;/td&gt;&lt;td&gt;301&lt;/td&gt;&lt;tr&gt;&lt;td&gt;3세모집정원수&lt;/td&gt;&lt;td&gt;96&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세모집정원수&lt;/td&gt;&lt;td&gt;88&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세모집정원수&lt;/td&gt;&lt;td&gt;88&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합모집정원수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세유아수&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세유아수&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세유아수&lt;/td&gt;&lt;td&gt;35&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합유아수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공시차수&lt;/td&gt;&lt;td&gt;20241&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 건물 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;동탄우리유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;건축년도&lt;/td&gt;&lt;td&gt;2010년&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물층수&lt;/td&gt;&lt;td&gt;지상3층/ 지하1층&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물전용면적&lt;/td&gt;&lt;td&gt;1800㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대지총면적&lt;/td&gt;&lt;td&gt;1309㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 교실면적 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;동탄우리유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교실수&lt;/td&gt;&lt;td&gt;14개&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교실면적&lt;/td&gt;&lt;td&gt;685㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;체육장&lt;/td&gt;&lt;td&gt;238㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건/위생공간&lt;/td&gt;&lt;td&gt;86㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리실/급식공간&lt;/td&gt;&lt;td&gt;27㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기타공간&lt;/td&gt;&lt;td&gt;764㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 직위·자격별 교직원 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;동탄우리유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;원장수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원감수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보직교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;일반교사수&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;강사수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;사무직원수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사1급자격수&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사2급자격수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;준교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 수업일수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;동탄우리유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3세 수업일수&lt;/td&gt;&lt;td&gt;227&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세 수업일수&lt;/td&gt;&lt;td&gt;227&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세 수업일수&lt;/td&gt;&lt;td&gt;227&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합연령수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;방과후 과정수업일수&lt;/td&gt;&lt;td&gt;227&lt;/td&gt;&lt;tr&gt;&lt;td&gt;법정일수이하여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신설유치원여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 급식 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;동탄우리유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;급식운영방식구분&lt;/td&gt;&lt;td&gt;직영&lt;/td&gt;&lt;tr&gt;&lt;td&gt;위탁업체명&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전체유아수 &lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;급식유아수&lt;/td&gt;&lt;td&gt;62&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사배치여부&lt;/td&gt;&lt;td&gt;N&lt;/td&gt;&lt;tr&gt;&lt;td&gt;단독배치영양교사수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공동배치영양교사수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리사수   &lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리인력수   &lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;집단급식소신고여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 통학차량 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;동탄우리유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;차량운영여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운행차량수&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신고차량수&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;tr&gt;&lt;td&gt;9인승신고차량수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;12인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;15인승신고차량수&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 근속연수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;동탄우리유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;1년이상2년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;2년이상4년미만교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4년이상6년미만교사수&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;tr&gt;&lt;td&gt;6년이상교사수&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 환경위생관리 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;동탄우리유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검일자&lt;/td&gt;&lt;td&gt;20240325&lt;/td&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 의무대상시설여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검일자&lt;/td&gt;&lt;td&gt;20240327&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검결과&lt;/td&gt;&lt;td&gt;실시&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(먹는샘물(생수))&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(정수기)&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(상수도)&lt;/td&gt;&lt;td&gt;O&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(지하수)&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 수질 검사여부&lt;/td&gt;&lt;td&gt;N&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사일자&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사 결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사일자&lt;/td&gt;&lt;td&gt;20240325&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사일자&lt;/td&gt;&lt;td&gt;20240325&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 안전점검ㆍ교육 실시 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;동탄우리유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련일자&lt;/td&gt;&lt;td&gt;20240401&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검일자&lt;/td&gt;&lt;td&gt;20240216&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검일자&lt;/td&gt;&lt;td&gt;20240322&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검일자&lt;/td&gt;&lt;td&gt;20240308&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검일자&lt;/td&gt;&lt;td&gt;20220509&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 설치여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 총 설치수&lt;/td&gt;&lt;td&gt;39&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 안 설치수&lt;/td&gt;&lt;td&gt;29&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 밖 설치수&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 공제회 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;동탄우리유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 가입여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 가입여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 보험별 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;동탄우리유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;가입 보험명&lt;/td&gt;&lt;td&gt;놀이시설 안전보험&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가입여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명1&lt;/td&gt;&lt;td&gt;현대해상화재보험&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명2&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명3&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 방과후 과정 편성 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;동탄우리유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;독립편성학급수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성학급수&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;09시00분~18시00분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;독립편성참여원아수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성참여원아수&lt;/td&gt;&lt;td&gt;62&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정규교사수&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전담사수&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align:right;font-size:9pt&quot;&gt;&lt;i&gt;이 데이터는 2024-08-25 기준으로 작성하였습니다.&lt;/i&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;출처) 공공데이터 유치원알리미</description>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/672</guid>
      <comments>https://firstcheck.tistory.com/672#entry672comment</comments>
      <pubDate>Sun, 25 Aug 2024 11:18:44 +0900</pubDate>
    </item>
    <item>
      <title>경상북도 포항시 남구 효성유치원 정보  [2024년 8월 기준]</title>
      <link>https://firstcheck.tistory.com/671</link>
      <description>&lt;p&gt;&lt;b&gt;■ 일반 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;효성유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교육청명&lt;/td&gt;&lt;td&gt;경상북도교육청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육지원청명&lt;/td&gt;&lt;td&gt;포항교육지원청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원코드&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원명&lt;/td&gt;&lt;td&gt;효성유치원&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립유형&lt;/td&gt;&lt;td&gt;사립(사인)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대표자명&lt;/td&gt;&lt;td&gt;류명성&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원장명&lt;/td&gt;&lt;td&gt;류세은&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립일&lt;/td&gt;&lt;td&gt;20050222&lt;/td&gt;&lt;tr&gt;&lt;td&gt;개원일&lt;/td&gt;&lt;td&gt;20050301&lt;/td&gt;&lt;tr&gt;&lt;td&gt;주소&lt;/td&gt;&lt;td&gt;경상북도 포항시 남구 일월로 239&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전화번호&lt;/td&gt;&lt;td&gt;054-284-6565&lt;/td&gt;&lt;tr&gt;&lt;td&gt;홈페이지&lt;/td&gt;&lt;td&gt;https://hyosung2005.kidsnote.ac&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;09시00분~19시00분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합학급수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;인가총정원수&lt;/td&gt;&lt;td&gt;125&lt;/td&gt;&lt;tr&gt;&lt;td&gt;3세모집정원수&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세모집정원수&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세모집정원수&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합모집정원수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세유아수&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세유아수&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세유아수&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합유아수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공시차수&lt;/td&gt;&lt;td&gt;20241&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 건물 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;효성유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;건축년도&lt;/td&gt;&lt;td&gt;2005년&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물층수&lt;/td&gt;&lt;td&gt;지상2층/ 지하0층&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물전용면적&lt;/td&gt;&lt;td&gt;598㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대지총면적&lt;/td&gt;&lt;td&gt;1740㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 교실면적 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;효성유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교실수&lt;/td&gt;&lt;td&gt;6개&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교실면적&lt;/td&gt;&lt;td&gt;313㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;체육장&lt;/td&gt;&lt;td&gt;㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건/위생공간&lt;/td&gt;&lt;td&gt;33㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리실/급식공간&lt;/td&gt;&lt;td&gt;16㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기타공간&lt;/td&gt;&lt;td&gt;236㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 직위·자격별 교직원 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;효성유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;원장수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원감수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보직교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;일반교사수&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;강사수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;사무직원수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사1급자격수&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사2급자격수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;준교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 수업일수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;효성유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3세 수업일수&lt;/td&gt;&lt;td&gt;221&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세 수업일수&lt;/td&gt;&lt;td&gt;221&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세 수업일수&lt;/td&gt;&lt;td&gt;221&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합연령수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;방과후 과정수업일수&lt;/td&gt;&lt;td&gt;221&lt;/td&gt;&lt;tr&gt;&lt;td&gt;법정일수이하여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신설유치원여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 급식 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;효성유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;급식운영방식구분&lt;/td&gt;&lt;td&gt;직영&lt;/td&gt;&lt;tr&gt;&lt;td&gt;위탁업체명&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전체유아수 &lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;급식유아수&lt;/td&gt;&lt;td&gt;26&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사배치여부&lt;/td&gt;&lt;td&gt;N&lt;/td&gt;&lt;tr&gt;&lt;td&gt;단독배치영양교사수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공동배치영양교사수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리사수   &lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리인력수   &lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;집단급식소신고여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 통학차량 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;효성유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;차량운영여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운행차량수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신고차량수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;9인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;12인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;15인승신고차량수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 근속연수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;효성유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1년미만교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;1년이상2년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;2년이상4년미만교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4년이상6년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;6년이상교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 환경위생관리 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;효성유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검일자&lt;/td&gt;&lt;td&gt;20230608&lt;/td&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 의무대상시설여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검일자&lt;/td&gt;&lt;td&gt;20240318&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검결과&lt;/td&gt;&lt;td&gt;실시&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(먹는샘물(생수))&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(정수기)&lt;/td&gt;&lt;td&gt;O&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(상수도)&lt;/td&gt;&lt;td&gt;O&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(지하수)&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 수질 검사여부&lt;/td&gt;&lt;td&gt;N&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사일자&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사 결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사일자&lt;/td&gt;&lt;td&gt;20230608&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사일자&lt;/td&gt;&lt;td&gt;20230608&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 안전점검ㆍ교육 실시 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;효성유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련일자&lt;/td&gt;&lt;td&gt;20240315&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검일자&lt;/td&gt;&lt;td&gt;20231123&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검일자&lt;/td&gt;&lt;td&gt;20240129&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검여부&lt;/td&gt;&lt;td&gt;N&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검일자&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검일자&lt;/td&gt;&lt;td&gt;20221110&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 설치여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 총 설치수&lt;/td&gt;&lt;td&gt;11&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 안 설치수&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 밖 설치수&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 공제회 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;효성유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 가입여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 가입여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 보험별 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;효성유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;가입 보험명&lt;/td&gt;&lt;td&gt;가스배상책임보험&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가입여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명1&lt;/td&gt;&lt;td&gt;메르츠화재&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명2&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명3&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 방과후 과정 편성 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;효성유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;독립편성학급수&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성학급수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;09시00분~19시00분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;독립편성참여원아수&lt;/td&gt;&lt;td&gt;26&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성참여원아수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정규교사수&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전담사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align:right;font-size:9pt&quot;&gt;&lt;i&gt;이 데이터는 2024-08-25 기준으로 작성하였습니다.&lt;/i&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;출처) 공공데이터 유치원알리미</description>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/671</guid>
      <comments>https://firstcheck.tistory.com/671#entry671comment</comments>
      <pubDate>Sun, 25 Aug 2024 11:16:48 +0900</pubDate>
    </item>
    <item>
      <title>충청북도 단양군 가곡초등학교병설유치원 정보  [2024년 8월 기준]</title>
      <link>https://firstcheck.tistory.com/670</link>
      <description>&lt;p&gt;&lt;b&gt;■ 일반 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;가곡초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교육청명&lt;/td&gt;&lt;td&gt;충청북도교육청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육지원청명&lt;/td&gt;&lt;td&gt;단양교육지원청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원코드&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원명&lt;/td&gt;&lt;td&gt;가곡초등학교병설유치원&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립유형&lt;/td&gt;&lt;td&gt;공립(병설)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대표자명&lt;/td&gt;&lt;td&gt;조은성&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원장명&lt;/td&gt;&lt;td&gt;조은성&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립일&lt;/td&gt;&lt;td&gt;19820310&lt;/td&gt;&lt;tr&gt;&lt;td&gt;개원일&lt;/td&gt;&lt;td&gt;19820310&lt;/td&gt;&lt;tr&gt;&lt;td&gt;주소&lt;/td&gt;&lt;td&gt;충청북도 단양군 남한강로 548&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전화번호&lt;/td&gt;&lt;td&gt;043-422-8057&lt;/td&gt;&lt;tr&gt;&lt;td&gt;홈페이지&lt;/td&gt;&lt;td&gt;http://gagok.ms.kr&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;08시40분~16시40분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;인가총정원수&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;tr&gt;&lt;td&gt;3세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합모집정원수&lt;/td&gt;&lt;td&gt;17&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합유아수&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공시차수&lt;/td&gt;&lt;td&gt;20241&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 건물 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;가곡초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;건축년도&lt;/td&gt;&lt;td&gt;2009년&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물층수&lt;/td&gt;&lt;td&gt;지상2층/ 지하1층&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물전용면적&lt;/td&gt;&lt;td&gt;280㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대지총면적&lt;/td&gt;&lt;td&gt;17242㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 교실면적 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;가곡초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교실수&lt;/td&gt;&lt;td&gt;1개&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교실면적&lt;/td&gt;&lt;td&gt;62㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;체육장&lt;/td&gt;&lt;td&gt;㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건/위생공간&lt;/td&gt;&lt;td&gt;15㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리실/급식공간&lt;/td&gt;&lt;td&gt;198㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기타공간&lt;/td&gt;&lt;td&gt;5㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 직위·자격별 교직원 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;가곡초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;원장수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원감수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보직교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;일반교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;강사수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;사무직원수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사1급자격수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사2급자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;준교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 수업일수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;가곡초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합연령수업일수&lt;/td&gt;&lt;td&gt;190&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;방과후 과정수업일수&lt;/td&gt;&lt;td&gt;242&lt;/td&gt;&lt;tr&gt;&lt;td&gt;법정일수이하여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신설유치원여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 급식 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;가곡초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;급식운영방식구분&lt;/td&gt;&lt;td&gt;직영(학교급식)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;위탁업체명&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전체유아수 &lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;급식유아수&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사배치여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;단독배치영양교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공동배치영양교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리사수   &lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리인력수   &lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;집단급식소신고여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 통학차량 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;가곡초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;차량운영여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운행차량수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신고차량수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;9인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;12인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;15인승신고차량수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 근속연수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;가곡초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;1년이상2년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;2년이상4년미만교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4년이상6년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;6년이상교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 환경위생관리 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;가곡초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검일자&lt;/td&gt;&lt;td&gt;20230901&lt;/td&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 의무대상시설여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검일자&lt;/td&gt;&lt;td&gt;20240325&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검결과&lt;/td&gt;&lt;td&gt;실시&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(먹는샘물(생수))&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(정수기)&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(상수도)&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(지하수)&lt;/td&gt;&lt;td&gt;O&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 수질 검사여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사일자&lt;/td&gt;&lt;td&gt;20170314&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사 결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사일자&lt;/td&gt;&lt;td&gt;20230905&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사일자&lt;/td&gt;&lt;td&gt;20230905&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 안전점검ㆍ교육 실시 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;가곡초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련일자&lt;/td&gt;&lt;td&gt;20231123&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검일자&lt;/td&gt;&lt;td&gt;20230816&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검일자&lt;/td&gt;&lt;td&gt;20240401&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검일자&lt;/td&gt;&lt;td&gt;20240321&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검일자&lt;/td&gt;&lt;td&gt;20231114&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 설치여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 총 설치수&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 안 설치수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 밖 설치수&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 공제회 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;가곡초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 가입여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 가입여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 보험별 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;가곡초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;가입 보험명&lt;/td&gt;&lt;td&gt;통학버스 책임보험&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가입여부&lt;/td&gt;&lt;td&gt;N&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명1&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명2&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명3&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 방과후 과정 편성 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;가곡초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;독립편성학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성학급수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;08시40분~16시40분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;독립편성참여원아수&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성참여원아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정규교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전담사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align:right;font-size:9pt&quot;&gt;&lt;i&gt;이 데이터는 2024-08-25 기준으로 작성하였습니다.&lt;/i&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;출처) 공공데이터 유치원알리미</description>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/670</guid>
      <comments>https://firstcheck.tistory.com/670#entry670comment</comments>
      <pubDate>Sun, 25 Aug 2024 11:15:58 +0900</pubDate>
    </item>
    <item>
      <title>경기도 수원시 영통구 이의초등학교병설유치원 정보  [2024년 8월 기준]</title>
      <link>https://firstcheck.tistory.com/669</link>
      <description>&lt;p&gt;&lt;b&gt;■ 일반 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;이의초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교육청명&lt;/td&gt;&lt;td&gt;경기도교육청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육지원청명&lt;/td&gt;&lt;td&gt;수원교육지원청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원코드&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원명&lt;/td&gt;&lt;td&gt;이의초등학교병설유치원&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립유형&lt;/td&gt;&lt;td&gt;공립(병설)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대표자명&lt;/td&gt;&lt;td&gt;이옥경&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원장명&lt;/td&gt;&lt;td&gt;이옥경&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립일&lt;/td&gt;&lt;td&gt;20111001&lt;/td&gt;&lt;tr&gt;&lt;td&gt;개원일&lt;/td&gt;&lt;td&gt;20111001&lt;/td&gt;&lt;tr&gt;&lt;td&gt;주소&lt;/td&gt;&lt;td&gt;경기도 수원시 영통구 법조로150번길 47&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전화번호&lt;/td&gt;&lt;td&gt;031-8006-1875&lt;/td&gt;&lt;tr&gt;&lt;td&gt;홈페이지&lt;/td&gt;&lt;td&gt;https://eui-e.goesw.kr/&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;09시00분~17시30분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;인가총정원수&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;tr&gt;&lt;td&gt;3세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합모집정원수&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합유아수&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공시차수&lt;/td&gt;&lt;td&gt;20241&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 건물 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;이의초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;건축년도&lt;/td&gt;&lt;td&gt;2011년&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물층수&lt;/td&gt;&lt;td&gt;지상1층/ 지하0층&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물전용면적&lt;/td&gt;&lt;td&gt;961㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대지총면적&lt;/td&gt;&lt;td&gt;13698㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 교실면적 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;이의초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교실수&lt;/td&gt;&lt;td&gt;2개&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교실면적&lt;/td&gt;&lt;td&gt;316㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;체육장&lt;/td&gt;&lt;td&gt;126㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건/위생공간&lt;/td&gt;&lt;td&gt;68㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리실/급식공간&lt;/td&gt;&lt;td&gt;238㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기타공간&lt;/td&gt;&lt;td&gt;213㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 직위·자격별 교직원 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;이의초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;원장수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원감수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보직교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;일반교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;강사수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;사무직원수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사1급자격수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사2급자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;준교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 수업일수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;이의초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합연령수업일수&lt;/td&gt;&lt;td&gt;181&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;방과후 과정수업일수&lt;/td&gt;&lt;td&gt;227&lt;/td&gt;&lt;tr&gt;&lt;td&gt;법정일수이하여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신설유치원여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 급식 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;이의초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;급식운영방식구분&lt;/td&gt;&lt;td&gt;직영(학교급식)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;위탁업체명&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전체유아수 &lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;급식유아수&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사배치여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;단독배치영양교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공동배치영양교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리사수   &lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리인력수   &lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;tr&gt;&lt;td&gt;집단급식소신고여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 통학차량 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;이의초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;차량운영여부&lt;/td&gt;&lt;td&gt;N&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운행차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;9인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;12인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;15인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 근속연수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;이의초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1년미만교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;1년이상2년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;2년이상4년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4년이상6년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;6년이상교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 환경위생관리 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;이의초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검일자&lt;/td&gt;&lt;td&gt;20231030&lt;/td&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 의무대상시설여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검일자&lt;/td&gt;&lt;td&gt;20240224&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검결과&lt;/td&gt;&lt;td&gt;실시&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(먹는샘물(생수))&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(정수기)&lt;/td&gt;&lt;td&gt;O&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(상수도)&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(지하수)&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 수질 검사여부&lt;/td&gt;&lt;td&gt;N&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사일자&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사 결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사일자&lt;/td&gt;&lt;td&gt;20231030&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사일자&lt;/td&gt;&lt;td&gt;20231030&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 안전점검ㆍ교육 실시 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;이의초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련일자&lt;/td&gt;&lt;td&gt;20231102&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검일자&lt;/td&gt;&lt;td&gt;20230818&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검일자&lt;/td&gt;&lt;td&gt;20240215&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검일자&lt;/td&gt;&lt;td&gt;20240227&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검일자&lt;/td&gt;&lt;td&gt;20240221&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 설치여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 총 설치수&lt;/td&gt;&lt;td&gt;22&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 안 설치수&lt;/td&gt;&lt;td&gt;12&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 밖 설치수&lt;/td&gt;&lt;td&gt;10&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 공제회 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;이의초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 가입여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 가입여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 보험별 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;이의초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;가입 보험명&lt;/td&gt;&lt;td&gt;가스배상책임보험&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가입여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명1&lt;/td&gt;&lt;td&gt;삼성화재&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명2&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명3&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 방과후 과정 편성 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;이의초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;독립편성학급수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;09시00분~17시30분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;독립편성참여원아수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성참여원아수&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정규교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전담사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align:right;font-size:9pt&quot;&gt;&lt;i&gt;이 데이터는 2024-08-25 기준으로 작성하였습니다.&lt;/i&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;출처) 공공데이터 유치원알리미</description>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/669</guid>
      <comments>https://firstcheck.tistory.com/669#entry669comment</comments>
      <pubDate>Sun, 25 Aug 2024 11:14:25 +0900</pubDate>
    </item>
    <item>
      <title>경상북도 봉화군 소천초등학교병설유치원 정보  [2024년 8월 기준]</title>
      <link>https://firstcheck.tistory.com/668</link>
      <description>&lt;p&gt;&lt;b&gt;■ 일반 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;소천초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교육청명&lt;/td&gt;&lt;td&gt;경상북도교육청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육지원청명&lt;/td&gt;&lt;td&gt;봉화교육지원청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원코드&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원명&lt;/td&gt;&lt;td&gt;소천초등학교병설유치원&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립유형&lt;/td&gt;&lt;td&gt;공립(병설)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대표자명&lt;/td&gt;&lt;td&gt;김성욱&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원장명&lt;/td&gt;&lt;td&gt;김성욱&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립일&lt;/td&gt;&lt;td&gt;19810307&lt;/td&gt;&lt;tr&gt;&lt;td&gt;개원일&lt;/td&gt;&lt;td&gt;19810307&lt;/td&gt;&lt;tr&gt;&lt;td&gt;주소&lt;/td&gt;&lt;td&gt;경상북도 봉화군 소천로 1284&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전화번호&lt;/td&gt;&lt;td&gt;054-673-1761&lt;/td&gt;&lt;tr&gt;&lt;td&gt;홈페이지&lt;/td&gt;&lt;td&gt;http://socheon.school.gyo6.net&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;08시40분~16시40분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;인가총정원수&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;tr&gt;&lt;td&gt;3세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합모집정원수&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합유아수&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공시차수&lt;/td&gt;&lt;td&gt;20232&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 건물 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;소천초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;건축년도&lt;/td&gt;&lt;td&gt;1951년&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물층수&lt;/td&gt;&lt;td&gt;지상2층/ 지하0층&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물전용면적&lt;/td&gt;&lt;td&gt;204㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대지총면적&lt;/td&gt;&lt;td&gt;3150㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 교실면적 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;소천초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교실수&lt;/td&gt;&lt;td&gt;1개&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교실면적&lt;/td&gt;&lt;td&gt;204㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;체육장&lt;/td&gt;&lt;td&gt;㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건/위생공간&lt;/td&gt;&lt;td&gt;0㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리실/급식공간&lt;/td&gt;&lt;td&gt;0㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기타공간&lt;/td&gt;&lt;td&gt;0㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 직위·자격별 교직원 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;소천초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;원장수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원감수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보직교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;일반교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;강사수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;사무직원수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사1급자격수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사2급자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;준교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 수업일수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;소천초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합연령수업일수&lt;/td&gt;&lt;td&gt;190&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;방과후 과정수업일수&lt;/td&gt;&lt;td&gt;215&lt;/td&gt;&lt;tr&gt;&lt;td&gt;법정일수이하여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신설유치원여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 급식 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;소천초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;급식운영방식구분&lt;/td&gt;&lt;td&gt;직영(학교급식)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;위탁업체명&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전체유아수 &lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;급식유아수&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사배치여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;단독배치영양교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공동배치영양교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리사수   &lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리인력수   &lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;집단급식소신고여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 통학차량 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;소천초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;차량운영여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운행차량수&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신고차량수&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;tr&gt;&lt;td&gt;9인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;12인승신고차량수&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;tr&gt;&lt;td&gt;15인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 근속연수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;소천초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1년미만교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;1년이상2년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;2년이상4년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4년이상6년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;6년이상교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 환경위생관리 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;소천초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검일자&lt;/td&gt;&lt;td&gt;20230406&lt;/td&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 의무대상시설여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검일자&lt;/td&gt;&lt;td&gt;20230324&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검결과&lt;/td&gt;&lt;td&gt;실시&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(먹는샘물(생수))&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(정수기)&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(상수도)&lt;/td&gt;&lt;td&gt;O&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(지하수)&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 수질 검사여부&lt;/td&gt;&lt;td&gt;N&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사일자&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사 결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사일자&lt;/td&gt;&lt;td&gt;20230317&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사일자&lt;/td&gt;&lt;td&gt;20230406&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 안전점검ㆍ교육 실시 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;소천초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련일자&lt;/td&gt;&lt;td&gt;20230829&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검일자&lt;/td&gt;&lt;td&gt;20230306&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검일자&lt;/td&gt;&lt;td&gt;20230306&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검일자&lt;/td&gt;&lt;td&gt;20230306&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검일자&lt;/td&gt;&lt;td&gt;20230316&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 설치여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 총 설치수&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 안 설치수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 밖 설치수&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 공제회 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;소천초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 가입여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 가입여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 보험별 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;소천초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;가입 보험명&lt;/td&gt;&lt;td&gt;놀이시설 안전보험&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가입여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명1&lt;/td&gt;&lt;td&gt;한국교육시설안전원&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명2&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명3&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 방과후 과정 편성 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;소천초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;독립편성학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성학급수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;08시40분~16시40분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;독립편성참여원아수&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성참여원아수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정규교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전담사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align:right;font-size:9pt&quot;&gt;&lt;i&gt;이 데이터는 2024-08-25 기준으로 작성하였습니다.&lt;/i&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;출처) 공공데이터 유치원알리미</description>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/668</guid>
      <comments>https://firstcheck.tistory.com/668#entry668comment</comments>
      <pubDate>Sun, 25 Aug 2024 11:13:43 +0900</pubDate>
    </item>
    <item>
      <title>경상북도 봉화군 내성초등학교병설유치원 정보  [2024년 8월 기준]</title>
      <link>https://firstcheck.tistory.com/667</link>
      <description>&lt;p&gt;&lt;b&gt;■ 일반 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;내성초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교육청명&lt;/td&gt;&lt;td&gt;경상북도교육청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육지원청명&lt;/td&gt;&lt;td&gt;봉화교육지원청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원코드&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원명&lt;/td&gt;&lt;td&gt;내성초등학교병설유치원&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립유형&lt;/td&gt;&lt;td&gt;공립(병설)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대표자명&lt;/td&gt;&lt;td&gt;박임식&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원장명&lt;/td&gt;&lt;td&gt;박임식&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립일&lt;/td&gt;&lt;td&gt;19850301&lt;/td&gt;&lt;tr&gt;&lt;td&gt;개원일&lt;/td&gt;&lt;td&gt;19850301&lt;/td&gt;&lt;tr&gt;&lt;td&gt;주소&lt;/td&gt;&lt;td&gt;경상북도 봉화군 교촌1길 37&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전화번호&lt;/td&gt;&lt;td&gt;054-673-7190&lt;/td&gt;&lt;tr&gt;&lt;td&gt;홈페이지&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;08시30분~17시30분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;인가총정원수&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;tr&gt;&lt;td&gt;3세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합모집정원수&lt;/td&gt;&lt;td&gt;20&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합유아수&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공시차수&lt;/td&gt;&lt;td&gt;20241&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 건물 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;내성초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;건축년도&lt;/td&gt;&lt;td&gt;1974년&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물층수&lt;/td&gt;&lt;td&gt;지상1층/ 지하0층&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물전용면적&lt;/td&gt;&lt;td&gt;765㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대지총면적&lt;/td&gt;&lt;td&gt;18672㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 교실면적 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;내성초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교실수&lt;/td&gt;&lt;td&gt;2개&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교실면적&lt;/td&gt;&lt;td&gt;152㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;체육장&lt;/td&gt;&lt;td&gt;0㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건/위생공간&lt;/td&gt;&lt;td&gt;132㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리실/급식공간&lt;/td&gt;&lt;td&gt;481㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기타공간&lt;/td&gt;&lt;td&gt;0㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 직위·자격별 교직원 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;내성초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;원장수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원감수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보직교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;일반교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;강사수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;사무직원수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사1급자격수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사2급자격수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;준교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 수업일수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;내성초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합연령수업일수&lt;/td&gt;&lt;td&gt;193&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;방과후 과정수업일수&lt;/td&gt;&lt;td&gt;193&lt;/td&gt;&lt;tr&gt;&lt;td&gt;법정일수이하여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신설유치원여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 급식 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;내성초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;급식운영방식구분&lt;/td&gt;&lt;td&gt;직영(학교급식)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;위탁업체명&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전체유아수 &lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;급식유아수&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사배치여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;단독배치영양교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공동배치영양교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리사수   &lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리인력수   &lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;집단급식소신고여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 통학차량 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;내성초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;차량운영여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운행차량수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신고차량수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;9인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;12인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;15인승신고차량수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 근속연수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;내성초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;1년이상2년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;2년이상4년미만교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4년이상6년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;6년이상교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 환경위생관리 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;내성초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검일자&lt;/td&gt;&lt;td&gt;20231129&lt;/td&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 의무대상시설여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검일자&lt;/td&gt;&lt;td&gt;20240220&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검결과&lt;/td&gt;&lt;td&gt;실시&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(먹는샘물(생수))&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(정수기)&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(상수도)&lt;/td&gt;&lt;td&gt;O&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(지하수)&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 수질 검사여부&lt;/td&gt;&lt;td&gt;N&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사일자&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사 결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사일자&lt;/td&gt;&lt;td&gt;20231129&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사일자&lt;/td&gt;&lt;td&gt;20231129&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 안전점검ㆍ교육 실시 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;내성초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련일자&lt;/td&gt;&lt;td&gt;20231101&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검일자&lt;/td&gt;&lt;td&gt;20240229&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검일자&lt;/td&gt;&lt;td&gt;20240201&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검일자&lt;/td&gt;&lt;td&gt;20240226&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검일자&lt;/td&gt;&lt;td&gt;20230905&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 설치여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 총 설치수&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 안 설치수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 밖 설치수&lt;/td&gt;&lt;td&gt;21&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 공제회 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;내성초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 가입여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 가입여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 보험별 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;내성초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;가입 보험명&lt;/td&gt;&lt;td&gt;가스배상책임보험&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가입여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명1&lt;/td&gt;&lt;td&gt;현대해상&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명2&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명3&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 방과후 과정 편성 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;내성초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;독립편성학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성학급수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;08시30분~17시30분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;독립편성참여원아수&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성참여원아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정규교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전담사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align:right;font-size:9pt&quot;&gt;&lt;i&gt;이 데이터는 2024-08-25 기준으로 작성하였습니다.&lt;/i&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;출처) 공공데이터 유치원알리미</description>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/667</guid>
      <comments>https://firstcheck.tistory.com/667#entry667comment</comments>
      <pubDate>Sun, 25 Aug 2024 11:12:42 +0900</pubDate>
    </item>
    <item>
      <title>경기도 화성시 안녕초등학교병설유치원 정보  [2024년 8월 기준]</title>
      <link>https://firstcheck.tistory.com/666</link>
      <description>&lt;p&gt;&lt;b&gt;■ 일반 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;안녕초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교육청명&lt;/td&gt;&lt;td&gt;경기도교육청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육지원청명&lt;/td&gt;&lt;td&gt;화성오산교육지원청&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원코드&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;유치원명&lt;/td&gt;&lt;td&gt;안녕초등학교병설유치원&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립유형&lt;/td&gt;&lt;td&gt;공립(병설)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대표자명&lt;/td&gt;&lt;td&gt;장기석&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원장명&lt;/td&gt;&lt;td&gt;장기석&lt;/td&gt;&lt;tr&gt;&lt;td&gt;설립일&lt;/td&gt;&lt;td&gt;20070301&lt;/td&gt;&lt;tr&gt;&lt;td&gt;개원일&lt;/td&gt;&lt;td&gt;20070301&lt;/td&gt;&lt;tr&gt;&lt;td&gt;주소&lt;/td&gt;&lt;td&gt;경기도 화성시 화산로 2&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전화번호&lt;/td&gt;&lt;td&gt;031-231-1782&lt;/td&gt;&lt;tr&gt;&lt;td&gt;홈페이지&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;09시00분~19시00분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세학급수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;인가총정원수&lt;/td&gt;&lt;td&gt;42&lt;/td&gt;&lt;tr&gt;&lt;td&gt;3세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세모집정원수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합모집정원수&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급모집정원수&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만3세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만4세유아수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;만5세유아수&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합유아수&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수유아수&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공시차수&lt;/td&gt;&lt;td&gt;20241&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 건물 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;안녕초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;건축년도&lt;/td&gt;&lt;td&gt;2006년&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물층수&lt;/td&gt;&lt;td&gt;지상1층/ 지하0층&lt;/td&gt;&lt;tr&gt;&lt;td&gt;건물전용면적&lt;/td&gt;&lt;td&gt;893㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대지총면적&lt;/td&gt;&lt;td&gt;14437㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 교실면적 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;안녕초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;교실수&lt;/td&gt;&lt;td&gt;3개&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교실면적&lt;/td&gt;&lt;td&gt;292㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;체육장&lt;/td&gt;&lt;td&gt;㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건/위생공간&lt;/td&gt;&lt;td&gt;66㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리실/급식공간&lt;/td&gt;&lt;td&gt;535㎡&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기타공간&lt;/td&gt;&lt;td&gt;0㎡&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 직위·자격별 교직원 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;안녕초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;원장수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;원감수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보직교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;일반교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;보건교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;강사수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;사무직원수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;수석교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사1급자격수&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정교사2급자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;준교사자격수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 수업일수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;안녕초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;3세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4세 수업일수&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;5세 수업일수&lt;/td&gt;&lt;td&gt;180&lt;/td&gt;&lt;tr&gt;&lt;td&gt;혼합연령수업일수&lt;/td&gt;&lt;td&gt;180&lt;/td&gt;&lt;tr&gt;&lt;td&gt;특수학급수업일수&lt;/td&gt;&lt;td&gt;180&lt;/td&gt;&lt;tr&gt;&lt;td&gt;방과후 과정수업일수&lt;/td&gt;&lt;td&gt;230&lt;/td&gt;&lt;tr&gt;&lt;td&gt;법정일수이하여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신설유치원여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 급식 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;안녕초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;급식운영방식구분&lt;/td&gt;&lt;td&gt;직영(학교급식)&lt;/td&gt;&lt;tr&gt;&lt;td&gt;위탁업체명&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전체유아수 &lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;급식유아수&lt;/td&gt;&lt;td&gt;14&lt;/td&gt;&lt;tr&gt;&lt;td&gt;영양교사배치여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;단독배치영양교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;공동배치영양교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리사수   &lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조리인력수   &lt;/td&gt;&lt;td&gt;6&lt;/td&gt;&lt;tr&gt;&lt;td&gt;집단급식소신고여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 통학차량 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;안녕초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;차량운영여부&lt;/td&gt;&lt;td&gt;N&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운행차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;9인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;12인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;15인승신고차량수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 근속연수 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;안녕초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;1년미만교사수&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;tr&gt;&lt;td&gt;1년이상2년미만교사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;2년이상4년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;4년이상6년미만교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;6년이상교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 환경위생관리 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;안녕초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검일자&lt;/td&gt;&lt;td&gt;20230919&lt;/td&gt;&lt;tr&gt;&lt;td&gt;실내공기질 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 의무대상시설여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검일자&lt;/td&gt;&lt;td&gt;20231215&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정기소독 점검결과&lt;/td&gt;&lt;td&gt;실시&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(먹는샘물(생수))&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(정수기)&lt;/td&gt;&lt;td&gt;O&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(상수도)&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;음용수종류(지하수)&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 수질 검사여부&lt;/td&gt;&lt;td&gt;N&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사일자&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;지하수사용시 검사 결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사일자&lt;/td&gt;&lt;td&gt;20230919&lt;/td&gt;&lt;tr&gt;&lt;td&gt;미세먼지 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사일자&lt;/td&gt;&lt;td&gt;20230919&lt;/td&gt;&lt;tr&gt;&lt;td&gt;조도관리 검사결과&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 안전점검ㆍ교육 실시 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style10'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;안녕초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방대피훈련일자&lt;/td&gt;&lt;td&gt;20230905&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가스점검일자&lt;/td&gt;&lt;td&gt;20231211&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;소방안전점검일자&lt;/td&gt;&lt;td&gt;20240321&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전기설비점검일자&lt;/td&gt;&lt;td&gt;20240329&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검일자&lt;/td&gt;&lt;td&gt;20240320&lt;/td&gt;&lt;tr&gt;&lt;td&gt;놀이시설 안전검사 점검결과&lt;/td&gt;&lt;td&gt;적합&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 설치여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 총 설치수&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 안 설치수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;CCTV 건물 밖 설치수&lt;/td&gt;&lt;td&gt;18&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 공제회 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style9'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;안녕초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;학교안전공제회 가입여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;교육시설재난공제회 가입여부&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 보험별 가입 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style8'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;안녕초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;가입 보험명&lt;/td&gt;&lt;td&gt;가스배상책임보험&lt;/td&gt;&lt;tr&gt;&lt;td&gt;대상여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;가입여부&lt;/td&gt;&lt;td&gt;Y&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명1&lt;/td&gt;&lt;td&gt;학교배상책임공제&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명2&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;tr&gt;&lt;td&gt;업체명3&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;b&gt;■ 방과후 과정 편성 운영 현황&lt;/b&gt;&lt;/p&gt;&lt;table style='border-collapse: collapse; width: 100%;' border='1' data-ke-style='style11'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style='width: 20%; text-align: center;'&gt;구분&lt;/td&gt;&lt;td style='width: 80%; text-align: center;'&gt;&lt;span&gt;안녕초등학교병설유치원&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;독립편성학급수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성학급수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;tr&gt;&lt;td&gt;운영시간&lt;/td&gt;&lt;td&gt;09시00분~19시00분&lt;/td&gt;&lt;tr&gt;&lt;td&gt;독립편성참여원아수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;오후재편성참여원아수&lt;/td&gt;&lt;td&gt;13&lt;/td&gt;&lt;tr&gt;&lt;td&gt;정규교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;기간제교사수&lt;/td&gt;&lt;td&gt;0&lt;/td&gt;&lt;tr&gt;&lt;td&gt;전담사수&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;text-align:right;font-size:9pt&quot;&gt;&lt;i&gt;이 데이터는 2024-08-25 기준으로 작성하였습니다.&lt;/i&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;출처) 공공데이터 유치원알리미</description>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/666</guid>
      <comments>https://firstcheck.tistory.com/666#entry666comment</comments>
      <pubDate>Sun, 25 Aug 2024 11:11:40 +0900</pubDate>
    </item>
    <item>
      <title>파이썬에서는 언제 메소드 대신 함수를 사용해야 합니까?</title>
      <link>https://firstcheck.tistory.com/665</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파이썬에서는 언제 메소드 대신 함수를 사용해야 합니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Python의 Zen은 작업을 수행하는 데 한 가지 방법만 있어야 한다고 말하지만, 함수를 사용할 때와 방법을 사용할 때를 결정하는 문제에 자주 부딪힙니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어 ChessBoard 객체를 살펴보겠습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;킹의 모든 합법적인 움직임을 보드에서 이용할 수 있는 방법이 필요하다고 가정해 보겠습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;ChessBoard.get_king_moves()를 쓸까요, 아니면 get_king_moves(chess_board)를 쓸까요?&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음은 제가 살펴본 몇 가지 관련 질문입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://stackoverflow.com/q/2657627/577199&quot; papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;왜 파이썬은 '마법적인 방법'을 사용합니까?&lt;/font&gt;&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://stackoverflow.com/q/237128/577199&quot; papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파이썬 문자열에 문자열 길이 방법이 없는 이유가 있습니까?&lt;/font&gt;&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 받은 대답은 대체로 결론이 나지 않았습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;h3 papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;왜 파이썬은 일부 기능(예: list.index())에는 메소드를 사용하지만 다른 기능(예: len(list)에는 메소드를 사용합니까?&lt;/font&gt;&lt;/h3&gt; 
 &lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;주된 이유는 역사입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;함수는 유형 그룹에 대해 일반적이고 메서드가 전혀 없는 개체(예: 튜플)에서도 작동하도록 의도된 작업에 사용되었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 Python(map(), apply() 등의 기능을 사용할 때 무정형 객체 컬렉션에 쉽게 적용할 수 있는 기능이 있으면 편리합니다.&lt;/font&gt;&lt;/p&gt; 
 &lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;실제로 len(), max(), min()을 내장 함수로 구현하는 것은 실제로 각 유형의 메소드로 구현하는 것보다 코드가 적습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;사람들은 개별 사례에 대해 불평할 수 있지만, 그것은 Python의 일부이며, 지금 그러한 근본적인 변화를 하기에는 너무 늦었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;대규모 코드 손상을 방지하기 위해 기능을 유지해야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;흥미롭지만, 위의 내용은 어떤 전략을 채택해야 하는지에 대해 별로 언급하지 않습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것이 바로 사용자 지정 메서드를 사용하면 개발자가 getLength(), length(), getlength() 등 다른 메서드 이름을 자유롭게 선택할 수 있는 이유 중 하나입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;Python은 일반 함수 len()을 사용할 수 있도록 엄격한 명명을 적용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;조금 더 흥미롭습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;제 생각에는 어떤 의미에서 기능은 인터페이스의 파이썬 버전이라는 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://mail.python.org/pipermail/python-3000/2006-November/004643.html&quot; rel=&quot;noreferrer&quot; papago-id=&quot;13-1&quot;&gt;마지막으로 Guido&lt;/a&gt; 자신으로부터:&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;blockquote&gt; 
  &lt;p&gt;&lt;em&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;능력/인터페이스에 대해 이야기하면서 &quot;불량한&quot; 특수 메소드 이름에 대해 생각하게 되었습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Language Reference에서는 &quot;클래스는 특별한 이름으로 메서드를 정의하여 특수 구문(예: 산술 연산 또는 첨자 및 슬라이싱)에 의해 호출되는 특정 연산을 구현할 수 있습니다.&quot;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;라고 말합니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 이런 특별한 이름을 가진 모든 방법들이 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;__len__&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;__unicode__&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이는 구문 지원보다는 내장 기능의 이점을 위해 제공되는 것으로 보입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아마도 인터페이스 기반 파이썬에서, 이러한 메소드들은 ABC에서 규칙적으로 명명된 메소드들로 바뀔 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;__len__&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다가 될 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt; 
  &lt;pre&gt;&lt;code&gt;class container:
  ...
  def len(self):
    raise NotImplemented
&lt;/code&gt;&lt;/pre&gt; 
  &lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;18-0&quot;&gt;하지만, 좀 &lt;/em&gt;더 &lt;em papago-id=&quot;18-0&quot;&gt;생각해보면&lt;/em&gt;&lt;em papago-id=&quot;18-2&quot;&gt;,&lt;/em&gt; 왜 모든 &lt;em papago-id=&quot;18-2&quot;&gt;구문 연산이 특정 &lt;/em&gt;ABC에서 &lt;em papago-id=&quot;18-2&quot;&gt;적절한 일반적인 이름의 방법을 호출&lt;/em&gt;하지 않는지 &lt;em papago-id=&quot;18-2&quot;&gt;모르겠습니다&lt;/em&gt;&lt;em papago-id=&quot;18-0&quot;&gt;.&lt;/em&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;18-2&quot;&gt; 예를&lt;code papago-id=&quot;18-2-1&quot;&gt;&amp;lt;&lt;/code&gt; 들어, 는 아마도 &quot;(또는 &quot;)&lt;code papago-id=&quot;18-2-5&quot;&gt;comparable.lessthan&lt;/code&gt;를 &lt;code papago-id=&quot;18-2-3&quot;&gt;object.lessthan&lt;/code&gt;호출할 것입니다.&lt;/em&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;18-2&quot;&gt; 그래서&lt;/em&gt; 또 &lt;em papago-id=&quot;18-2&quot;&gt;다른 이점은 파이썬이 이러한&lt;/em&gt; 망가진 &lt;em papago-id=&quot;18-2&quot;&gt;이름의 &lt;/em&gt;이상함에서 &lt;em papago-id=&quot;18-2&quot;&gt;벗어날&lt;/em&gt; 수 &lt;em papago-id=&quot;18-2&quot;&gt;있다는 것&lt;/em&gt;입니다. &lt;em papago-id=&quot;18-2&quot;&gt;이는 HCI 개선을 의미&lt;/em&gt;하는 것으로 &lt;em papago-id=&quot;18-2&quot;&gt;보입니다&lt;/em&gt;.&lt;/font&gt;&lt;/p&gt; 
 &lt;/blockquote&gt; 
 &lt;p papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;흠. 저는 동의할 수 없습니다(그림 :-).&lt;/font&gt;&lt;/p&gt; 
 &lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 먼저 설명하고 싶은 두 가지 &quot;파이썬 이론적 근거&quot;가 있습니다.&lt;/font&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 저는 이유로 x이 아닌 len)을 했습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;def __len__()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;훨씬 나중에).&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 두 실제로두가지두가모이입얽있다. 지두니 HCI다니습혀.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떤 연산에서는 접두사 표기법이 접두사 표기법보다 더 잘 읽힙니다. 접두사(그리고 접두사) 연산은 수학자가 문제에 대해 생각하는 데 시각적으로 도움이 되는 표기법을 좋아하는 수학의 오랜 전통을 가지고 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 공식을 다시 작성하는 쉬운 방법과 비교해 보십시오.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;x*(a+b)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;안으로&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;x*a + x*b&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;미가공 OO 표기법을 사용하여 동일한 작업을 수행하는 것이 서투릅니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내가 코드를 읽을 때는&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;len(x)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;27&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;나는 그것이 어떤 것의 길이를 요구하는 것이라는 &lt;em papago-id=&quot;27-1&quot;&gt;것&lt;/em&gt;을 알고 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 제게 두 가지를 알려줍니다. 결과는 정수이고, 인수는 일종의 용기입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;반대로, 내가 읽을 때.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;x.len()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 그것을 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;x&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;를 상속받는 컨테이너입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;len()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;매핑을 구현하지 않는 클래스에 다음이 있을 때 때때로 발생하는 혼란을 목격합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;get()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;keys()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 다른은 메드소, 또파이아것닌있이습다니일는▁a▁method,가 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;write()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;방법.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
 &lt;p papago-id=&quot;34&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;같은 말을 다른 뜻으로 하면, 저는 'len'을 &lt;em papago-id=&quot;34-1&quot;&gt;붙박이&lt;/em&gt; 동작으로 봅니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 그것을 잃고 싶지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;진심인지 아닌지는 확실히 말할 수 없지만, '방어된(자신): ...'은 확실히 평범한 방법으로 격하시키고 싶은 것처럼 들립니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 그것에 대해 강력하게 -1입니다.&lt;/font&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;한 두 는 제가 입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;__special__&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 만뿐아라니가 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;special&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;재정의하고자 ,  표준 저클래가재자예고작하업예, 어떤표준들어를많은는하스의정는)을 예상했습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;__add__&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;__getitem__&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;표준이 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;__reduce__&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오랫동안 C 코드를 전혀 지원하지 않았습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이러한 특별한 작업이 일반적인 메서드 이름을 사용하는 것을 원하지 않았습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 모든 특별한 메서드에 대한 백과사전 메모리가 없는 사용자에 의해 작성된 클래스는 구현하려고 의도하지 않은 작업을 실수로 정의할 수 있고, 결과적으로 재앙을 초래할 수 있기 때문입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Ivan Krstich는 제가 이 모든 것을 쓴 후에 도착한 그의 메시지에서 이것을 더 간결하게 설명했습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
 &lt;p papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;--Guido van Rossum (홈페이지: http://www.&lt;a href=&quot;http://www.python.org/~guido/&quot; papago-id=&quot;41-1&quot; rel=&quot;noreferrer&quot;&gt;python&lt;/a&gt;.org/ ~&lt;a href=&quot;http://www.python.org/~guido/&quot; papago-id=&quot;41-1&quot; rel=&quot;noreferrer&quot;&gt;httpo/)&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것에 대한 제 이해는 어떤 경우에는 접두사 표기법이 더 의미가 있다는 것입니다(즉, 덕).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;quack은 언어학적 관점에서 quack(Duck)보다 더 의미가 있습니다.) 그리고 함수는 &quot;인터페이스&quot;를 허용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 경우, 제 추측으로는 get_king_moves를 Guido의 첫 번째 포인트만을 기반으로 구현하는 것 같습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 이는 유사한 푸시 및 팝업 방법으로 스택 및 큐 클래스를 구현하는 것과 관련하여 여전히 많은 미해결 질문을 남깁니다. 기능 또는 방법이어야 합니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;(여기서 저는 기능을 추측할 것입니다. 왜냐하면 저는 정말 푸시팝 인터페이스를 신호로 보내고 싶기 때문입니다.)&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;44&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;TLDR: 기능을 사용할 시기와 방법을 결정하는 전략이 무엇인지 설명할 수 있는 사람이 있습니까?&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;45&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일반적인 규칙은 다음과 같습니다. &lt;em papago-id=&quot;45-1&quot;&gt;작업이 개체에 대해 수행됩니까? 아니면 개체에 의해&lt;/em&gt; 수행됩니까?&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;46&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;개체에 의해 수행되는 경우 구성원 작업이어야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;만약 그것이 다른 것에도 적용될 수 있거나 다른 것에 의해 물체에 행해진다면 그것은 기능(또는 아마도 다른 것의 구성원)이어야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;47&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;프로그래밍을 도입할 때 객체를 자동차와 같은 실제 객체로 설명하는 것은 전통적인 방식입니다(비록 구현이 부정확하지만).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;오리를 말씀하시는군요, 그렇게 하죠.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;class duck: 
    def __init__(self):pass
    def eat(self, o): pass 
    def crap(self) : pass
    def die(self)
    ....
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;48&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&quot;객체는 실제 사물&quot; 비유의 맥락에서, 그 물체가 할 수 있는 모든 것에 대한 클래스 방법을 추가하는 것은 &quot;정확한&quot; 것입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서 오리를 죽이고 싶다고 하면 오리에 .kill()을 추가합니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;아뇨... 제가 알기론 동물들은 자살하지 않습니다&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러므로 내가 오리를 죽이고 싶다면 이렇게 해야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;def kill(o):
    if isinstance(o, duck):
        o.die()
    elif isinstance(o, dog):
        print &quot;WHY????&quot;
        o.die()
    elif isinstance(o, nyancat):
        raise Exception(&quot;NYAN &quot;*9001)
    else:
       print &quot;can't kill it.&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;49&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 비유에서 벗어나 왜 우리는 방법과 수업을 사용합니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;왜냐하면 우리는 데이터를 저장하고 미래에 재사용 가능하고 확장 가능한 방식으로 코드를 구성하기를 원하기 때문입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이를 통해 OOO 설계에 매우 중요한 캡슐화 개념을 이해할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;50&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;캡슐화 원리는 결국 설계자로서 구현 및 클래스 내부에 대한 모든 것을 숨겨야 하며, 사용자나 다른 개발자가 액세스할 필요는 없습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;클래스 인스턴스를 처리하기 때문에 &quot;&lt;strong papago-id=&quot;50-1&quot;&gt;이 인스턴스에서 중요&lt;/strong&gt;한 작업&quot;으로 줄어듭니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;작업이 인스턴스별로 지정되지 않은 경우 구성원 함수가 아니어야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;51&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;51-0&quot;&gt;TL;DR&lt;/strong&gt;: @Bryan이 말한 것.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;인스턴스에서 작동하고 클래스 인스턴스 내부의 데이터에 액세스해야 하는 경우 멤버 함수여야 합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;52&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음을 수행할 때 클래스 사용:&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;53&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Abstraction_%28computer_science%29&quot; rel=&quot;noreferrer&quot; papago-id=&quot;53-1&quot;&gt;추상화&lt;/a&gt; 및 &lt;a href=&quot;http://en.wikipedia.org/wiki/Encapsulation_%28object-oriented_programming%29&quot; rel=&quot;noreferrer&quot; papago-id=&quot;53-3&quot;&gt;캡슐화&lt;/a&gt;를 활용하여 호출 코드를 구현 세부 정보에서 분리합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;54&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여러분이 다른 물체를 대체하고 싶을 때 -- &lt;a href=&quot;http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming&quot; rel=&quot;noreferrer&quot; papago-id=&quot;54-1&quot;&gt;다형성&lt;/a&gt;의 이점을 이용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;55&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;유사한 개체에 대해 코드를 재사용하려는 경우 - &lt;a href=&quot;http://en.wikipedia.org/wiki/Inheritance&quot; rel=&quot;noreferrer&quot; papago-id=&quot;55-1&quot;&gt;상속&lt;/a&gt;의 이점을 활용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;56&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여러 개체 유형에 걸쳐 적합한 호출에 함수를 사용합니다. 예를 들어, 기본 &lt;em papago-id=&quot;56-1&quot;&gt;&lt;a href=&quot;http://docs.python.org/library/functions.html#len&quot; rel=&quot;noreferrer&quot; papago-id=&quot;56-1-0&quot;&gt;제공&lt;/a&gt;&lt;/em&gt; len 및 &lt;em papago-id=&quot;56-3&quot;&gt;&lt;a href=&quot;http://docs.python.org/library/functions.html#repr&quot; rel=&quot;noreferrer&quot; papago-id=&quot;56-3-0&quot;&gt;repr&lt;/a&gt;&lt;/em&gt; 함수는 여러 개체에 적용됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇긴 하지만, 선택은 때때로 취향의 문제로 귀결됩니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일반적인 통화에 가장 편리하고 읽을 수 있는 것이 무엇인지 생각해 보십시오.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어, 어떤 것이 더 나을까요?&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;(x.sin()**2 + y.cos()**2).sqrt()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;sqrt(sin(x)**2 + cos(y)**2)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;?&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;60&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 보통 사람처럼 사물을 생각합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;61&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;61-0&quot;&gt;속성&lt;/strong&gt;은 사용자의 이름, 키, 신발 크기 등입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;62&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;62-0&quot;&gt;방법&lt;/strong&gt; 및 &lt;strong papago-id=&quot;62-2&quot;&gt;기능&lt;/strong&gt;은 사용자가 수행할 수 있는 작업입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;63&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;만약 수술이 이 한 명의 특정인에게 고유한 어떤 것도 요구하지 않고 (그리고 이 한 명의 특정인에 대한 어떤 것도 바꾸지 않고) 어떤 노인에 의해서만 수행될 수 있다면, 그것은 &lt;strong papago-id=&quot;63-1&quot;&gt;기능&lt;/strong&gt;이고 그렇게 쓰여져야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;64&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;수술이 &lt;em papago-id=&quot;64-1&quot;&gt;사람에게 영향&lt;/em&gt;을 &lt;em papago-id=&quot;64-3&quot;&gt;미치거나&lt;/em&gt;(예: 먹기, 걷기, ...) 이 사람 특유의 &lt;em papago-id=&quot;64-3&quot;&gt;무언가가 개입&lt;/em&gt;해야 하는 경우(예: 춤추기, 책 쓰기 등), &lt;strong papago-id=&quot;64-5&quot;&gt;방법&lt;/strong&gt;이어야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;65&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;물론, 이것을 당신이 작업하고 있는 특정 대상으로 번역하는 것이 항상 사소한 것은 아니지만, 저는 그것이 그것을 생각하는 좋은 방법이라고 생각합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;66&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;간단한 경험칙은 다음과 같습니다. 코드가 개체의 단일 인스턴스에 작용하는 경우 메소드를 사용합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;더 좋은 것은, 함수로 쓸 특별한 이유가 없는 한 방법을 사용하는 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;67&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;특정 예제에서는 다음과 같이 표시합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;chessboard = Chessboard()
...
chessboard.get_king_moves()
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;68&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;너무 생각하지 마세요.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&quot;이것을 하나의 방법으로 만드는 것이 말이 안 된다&quot;고 스스로에게 말할 때까지 항상 방법을 사용하십시오. 이 경우 함수를 만들 수 있습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;69&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일반적으로 저는 어떤 것에 대한 &lt;strong papago-id=&quot;69-1&quot;&gt;논리적&lt;/strong&gt; 기능을 구현하기 위해 수업을 사용합니다. 그러면 프로그램의 나머지 부분에서 구현을 구성하는 모든 작은 문제에 대해 걱정할 필요 없이 그 &lt;strong papago-id=&quot;69-3&quot;&gt;문제&lt;/strong&gt;에 대해 추론할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;70&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&quot;&lt;strong papago-id=&quot;70-1&quot;&gt;무엇&lt;/strong&gt;으로 무엇을 할 수 있는가&quot;라는 핵심 추상화의 일부가 되는 모든 것은 보통 방법이 되어야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;내부 데이터 상태는 일반적으로 &quot;어떤 것으로 &lt;strong papago-id=&quot;70-5&quot;&gt;무엇&lt;/strong&gt;을 할 수 있는지&quot;에 대한 논리적 아이디어의 일부가 아닌 개인 데이터로 간주되기 때문에 일반적으로 &lt;strong papago-id=&quot;70-3&quot;&gt;어떤&lt;/strong&gt; 것을 변경할 수 있는 모든 것을 포함합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;71&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신이 더 높은 수준의 작업을 할 때, 특히 그것들이 &lt;strong papago-id=&quot;71-1&quot;&gt;여러&lt;/strong&gt; 가지를 포함하는 경우, 만약 그것들이 내부에 대한 특별한 접근 없이 어떤 &lt;strong papago-id=&quot;71-3&quot;&gt;것&lt;/strong&gt;에 대한 공개 추상화로 구축될 수 있다면, 그것들은 보통 가장 자연스럽게 함수로 표현된다는 것을 알게 됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 (&lt;strong papago-id=&quot;71-5&quot;&gt;인터페이스&lt;/strong&gt;를 변경하지 않고) 내 사물이 어떻게 작동하는지에 대한 내부를 완전히 다시 쓰기로 결정할 때, 나는 단지 작은 핵심적인 방법 세트만 가지고 있고, 그 방법들의 관점에서 쓰여진 모든 외부 함수들은 그냥 작동할 것이라는 큰 이점을 가지고 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;클래스 X와 관련된 모든 작업이 클래스 X의 메서드라고 주장하면 클래스가 너무 복잡해집니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;72&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 제가 쓰는 코드에 따라 다릅니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;일부 프로그램의 경우 상호 작용으로 프로그램의 동작이 발생하는 개체의 집합으로 모델링합니다. 여기서 가장 중요한 기능성은 단일 개체와 밀접하게 결합되므로 유틸리티 함수의 분산과 함께 방법으로 구현됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다른 프로그램에서 가장 중요한 것은 데이터를 조작하는 함수의 집합이며, 클래스는 함수에 의해 조작되는 자연스러운 &quot;오리 유형&quot;을 구현하기 위해 사용됩니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;73&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;@thriveth의 대답에 대한 @endolith의 논평에서 더 나아가:&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;74&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;74-0&quot;&gt;키(사람)&lt;/em&gt; &lt;em papago-id=&quot;74-2&quot;&gt;대 &lt;/em&gt;사람&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;키는 사과와 치즈를 비교하는 것이라고 &lt;em papago-id=&quot;74-2&quot;&gt;생각&lt;/em&gt;합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;75&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이는 명명 규칙과 함수 및 구성원의 올바른 명명으로 요약됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;75-1&quot;&gt;&lt;strong papago-id=&quot;75-1-0&quot;&gt;인칭의&lt;/strong&gt;&lt;/em&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;키는 아마&lt;em papago-id=&quot;75-3&quot;&gt;&lt;strong papago-id=&quot;75-3-0&quot;&gt; 사람&lt;/strong&gt;&lt;/em&gt;이어야 할 &lt;em papago-id=&quot;75-1&quot;&gt;&lt;strong papago-id=&quot;75-1-0&quot;&gt;것&lt;/strong&gt;&lt;/em&gt;입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;75-3&quot;&gt;&lt;strong papago-id=&quot;75-3-0&quot;&gt;hight_in_hight&lt;/strong&gt;&lt;/em&gt;(또는 그와 같은)와 hight&lt;em papago-id=&quot;75-5&quot;&gt;&lt;strong papago-id=&quot;75-5-0&quot;&gt;(사람)&lt;/strong&gt;&lt;/em&gt;는 (&lt;em papago-id=&quot;75-7&quot;&gt;&lt;strong papago-id=&quot;75-7-0&quot;&gt;사람)의_hight&lt;/strong&gt;&lt;/em&gt;(높이) 또는 &lt;em papago-id=&quot;75-9&quot;&gt;&lt;strong papago-id=&quot;75-9-0&quot;&gt;what_is_hight(높이&lt;/strong&gt;&lt;/em&gt;&lt;em papago-id=&quot;75-11&quot;&gt;&lt;strong papago-id=&quot;75-11-0&quot;&gt;) 또는 measure_hight(&lt;/strong&gt;&lt;/em&gt;높이)가 될 수 있으며 (사람)의 키는 (사람)의_hight(높이)가 되어야 합니다. 그런 다음 '높이'가 사라집니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;76&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기능은 무엇인가를 하고 있습니다(단, 돌아오는 사람이라도).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;키가 가장 안 좋은 경우)인 반면에 사람.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;키는 사람의 어떤 속성입니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;77&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/8108688/&lt;a href=&quot;https://stackoverflow.com/questions/8108688/in-python-when-should-i-use-a-function-instead-of-a-method&quot; target=&quot;_blank&quot; papago-id=&quot;77-1&quot;&gt;in-python-when-should-i-use-a-function-instead-of-a-method&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/665</guid>
      <comments>https://firstcheck.tistory.com/665#entry665comment</comments>
      <pubDate>Mon, 21 Aug 2023 23:55:37 +0900</pubDate>
    </item>
    <item>
      <title>TypeScript에서 각 루프를 끊는 방법</title>
      <link>https://firstcheck.tistory.com/664</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;TypeScript에서 각 루프를 끊는 방법&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 아래 코드를 가지고 있는데, 특정 조건에서는 루프를 해제할 수 없습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;function isVoteTally(): boolean {
  let count = false;
  this.tab.committee.ratings.forEach((element) =&amp;gt; {
    const _fo = this.isEmptyOrNull(element.ratings.finalOutcome.finaloutlook);
    const _foreign = this.isEmptyOrNull(element.ratings.finalOutcome.foreign);
    const _local = this.isEmptyOrNull(element.ratings.finalOutcome.local);
    const _tally =
      element.ratings.finalOutcome.voteTally.maj +
      element.ratings.finalOutcome.voteTally.dis;

    if (_fo == false &amp;amp;&amp;amp; _foreign == false &amp;amp;&amp;amp; _local == false) {
      if (_tally &amp;gt; 0) {
        return (count = false); // ⭐
      }
    } else {
      if (_tally &amp;lt; 0) {
        return (count = false); // ⭐
      }
    }
  });
  return count;
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;별이 표시된 영역에서는 코드를 끊고 부울 값을 반환하고 싶지만 &lt;em papago-id=&quot;2-1&quot;&gt;그럴&lt;/em&gt; 수 없습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떻게 할 수 있습니까?&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;this.tab.committee.ratings.forEach&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;연산자가 아닙니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;타이프스크립트를 사용하면 훨씬 더 읽기 쉬운 코드를 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용&lt;/font&gt;&lt;/font&gt;&lt;code&gt;for&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 스타일의 루프:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;for (let a of this.tab.committee.ratings) {
   if (something_wrong) break;
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;p.s. Angular에서 &quot;jQuery와 동일한 코딩&quot;을 잊어버립니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것은 단지 작동하지 않습니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에서 벗어날 수 없습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;forEach()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;보통.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는 Array&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every&quot; papago-id=&quot;10-1&quot; rel=&quot;noreferrer&quot;&gt;.every()&lt;/a&gt;를 &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every&quot; papago-id=&quot;10-1&quot; rel=&quot;noreferrer&quot;&gt;사용&lt;/a&gt;할 수 있습니다. 반환을 원하기 때문입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;false&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;고리를 끊는 동안.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;true를 반환하려면 Array&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some&quot; papago-id=&quot;12-1&quot; rel=&quot;noreferrer&quot;&gt;.some()&lt;/a&gt;을 &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some&quot; papago-id=&quot;12-1&quot; rel=&quot;noreferrer&quot;&gt;사용&lt;/a&gt;하면 됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;this.tab.committee.ratings.every(element =&amp;gt; {

  const _fo = this.isEmptyOrNull(element.ratings.finalOutcome.finaloutlook);
  const _foreign = this.isEmptyOrNull(element.ratings.finalOutcome.foreign);
  const _local = this.isEmptyOrNull(element.ratings.finalOutcome.local);
  const _tally = element.ratings.finalOutcome.voteTally.maj + element.ratings.finalOutcome.voteTally.dis;

  if (_fo == false &amp;amp;&amp;amp; _foreign == false &amp;amp;&amp;amp; _local == false) {
    if (_tally &amp;gt; 0) {
      **return count = false;**
    }
  } else {
    if (_tally &amp;lt; 0) {
      **return count = false;**
    }
  }
});
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;중단 명령어가 기술적으로 루프에 있지 않기 때문에 '중단'할 수도 없고 실행되지도 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;해결책?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;루프는 보통을 사용합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;아무도 당신을 비웃지 않을 것입니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 더 나은 해결책은 사용하는 것이라고 생각합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;With for는 값이 발견되면 반환하고 루프를 해제할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;훨씬 더 깨끗한 솔루션입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;for (element of this.tab.committee.ratings) {
// and here you use your element, when you return a values it stops the cycle

if (element === something){
 return element;
 }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;snippet&quot; data-lang=&quot;js&quot; data-hide=&quot;false&quot; data-console=&quot;true&quot; data-babel=&quot;false&quot;&gt; 
 &lt;div class=&quot;snippet-code&quot;&gt; 
  &lt;pre class=&quot;snippet-code-js lang-js prettyprint-override&quot;&gt;&lt;code&gt;const blocks = document.querySelectorAll('.block');
var breakMe = false;

blocks.forEach((block, i) =&amp;gt; {
    if(breakMe == false) {
        /*code that you want*/ 
        if(i &amp;lt; 2) {
            block.style.background = 'red';
        } else if(i != 4) {
            block.style.background = 'blue';
        } else if(i == 4) {
            breakMe = true;
            /*change breackMe to true if you want to breack forEach*/
        }
    }

})&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-html lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
  &amp;lt;html lang=&quot;en&quot;&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;div id=&quot;container&quot;&amp;gt;
      &amp;lt;div class=&quot;block&quot; style=&quot;width: 200px; height: 200px; background: purple; margin: 50px&quot;&amp;gt;&amp;lt;/div&amp;gt;      
      &amp;lt;div class=&quot;block&quot; style=&quot;width: 200px; height: 200px; background: purple; margin: 50px&quot;&amp;gt;&amp;lt;/div&amp;gt;
      &amp;lt;div class=&quot;block&quot; style=&quot;width: 200px; height: 200px; background: purple; margin: 50px&quot;&amp;gt;&amp;lt;/div&amp;gt;
      &amp;lt;div class=&quot;block&quot; style=&quot;width: 200px; height: 200px; background: purple; margin: 50px&quot;&amp;gt;&amp;lt;/div&amp;gt;
      &amp;lt;div class=&quot;block&quot; style=&quot;width: 200px; height: 200px; background: purple; margin: 50px&quot;&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/body&amp;gt;
  &amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt;&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;try-catch 문을 사용하여 각 루프에 대해 브레이크할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;try {
  arr.forEach((item:any) =&amp;gt; {
    if(item === '2') {
      throw &quot;break&quot;;
    }
    console.log('Item ID: ', item);
  });  
} catch(e) {
  console.log('Warn Error',e);
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;간단하게&lt;/font&gt;&lt;/font&gt;&lt;code&gt;return false;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;깨질 거예요.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/51747397/&lt;a href=&quot;https://stackoverflow.com/questions/51747397/how-to-break-foreach-loop-in-typescript&quot; target=&quot;_blank&quot; papago-id=&quot;18-1&quot;&gt;how-to-break-foreach-loop-in-typescript&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/664</guid>
      <comments>https://firstcheck.tistory.com/664#entry664comment</comments>
      <pubDate>Mon, 21 Aug 2023 23:34:35 +0900</pubDate>
    </item>
    <item>
      <title>요소 너비를 만드는 방법: 100% - 패딩?</title>
      <link>https://firstcheck.tistory.com/663</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;요소 너비를 만드는 방법: 100% - 패딩?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 html 입력이 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;입력이 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;padding: 5px 10px;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 그것이 부모 div의 폭(유체)의 100%가 되기를 원합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 그나사중용을 사용하는 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;width: 100%;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;입력을 다음과 같이 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;100% + 20px&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떻게 하면 이것을 피할 수 있을까요?&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://jsfiddle.net/7FNgt/&quot; rel=&quot;noreferrer&quot; papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/en/CSS/box-sizing&quot; rel=&quot;noreferrer&quot; papago-id=&quot;8-0&quot;&gt;&lt;code papago-id=&quot;8-0-0&quot;&gt;box-sizing: border-box&lt;/code&gt;&lt;/a&gt; 빠르고 쉽게 해결할 수 있는 방법:&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://caniuse.com/box-sizing&quot; papago-id=&quot;9-1&quot; rel=&quot;noreferrer&quot;&gt;이것&lt;/a&gt;은 모든 &lt;a href=&quot;http://caniuse.com/box-sizing&quot; papago-id=&quot;9-1&quot; rel=&quot;noreferrer&quot;&gt;최신&lt;/a&gt; 브라우저와 IE8+에서&lt;a href=&quot;http://caniuse.com/box-sizing&quot; papago-id=&quot;9-1&quot; rel=&quot;noreferrer&quot;&gt; 작동&lt;/a&gt;할 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://jsfiddle.net/thirtydot/QkmSk/301/&quot; papago-id=&quot;10-1&quot; rel=&quot;noreferrer&quot;&gt;여기&lt;/a&gt; 데모가 있습니다.&lt;a href=&quot;http://jsfiddle.net/thirtydot/QkmSk/301/&quot; papago-id=&quot;10-1&quot; rel=&quot;noreferrer&quot;&gt; &lt;/a&gt;http://jsfiddle.net/thirtydot/QkmSk/301/&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-css prettyprint-override&quot;&gt;&lt;code&gt;.content {
    width: 100%;
    box-sizing: border-box;
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;브라우저 접두사 버전(&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;-webkit-box-sizing&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;등)은 최신 브라우저에서 필요하지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것이 우리가 CSS에 있는 이유입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예제를 편집했는데 이제 Safari, Chrome, Firefox 및 Opera에서 작동합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;확인해 보세요:&lt;a href=&quot;http://jsfiddle.net/mathias/Bupr3/&quot; papago-id=&quot;14-1&quot; rel=&quot;noreferrer&quot;&gt; &lt;/a&gt;http://&lt;a href=&quot;http://jsfiddle.net/mathias/Bupr3/&quot; papago-id=&quot;14-1&quot; rel=&quot;noreferrer&quot;&gt;jsfiddle&lt;/a&gt;.net/mathias/Bupr3/ 제가 추가한 것은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-css prettyprint-override&quot;&gt;&lt;code&gt;input {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;안타깝게도 IE7과 같은 이전 브라우저는 이 기능을 지원하지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;기존 IE에서 작동하는 솔루션을 찾고 있다면 다른 답변을 확인하십시오.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;패딩도 백분율로 사용하고 너비에서 제거:&lt;/font&gt;&lt;/p&gt; 
&lt;pre papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;패딩: 5%;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;폭: 90%;&lt;/font&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용하지 않고도 할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;box-sizing&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;19-1&quot;&gt;그리고&lt;/em&gt; 같은 명확한 해결책이 &lt;em papago-id=&quot;19-1&quot;&gt;아닙니다&lt;/em&gt;.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;width~=99%&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://jsfiddle.net/matmuchrapna/VSMmH/4/&quot; papago-id=&quot;21-0&quot; rel=&quot;noreferrer&quot;&gt;&lt;strong papago-id=&quot;21-0-0&quot;&gt;jsFidle&lt;/strong&gt;&lt;/a&gt; 데모:&lt;/font&gt;&lt;/font&gt;&lt;br&gt; &lt;img src=&quot;https://i.stack.imgur.com/Q2ydW.png&quot; alt=&quot;enter image description here&quot;&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;유지하기&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;padding&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;border&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의 수평을 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;margin&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;=&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;border-width&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;+&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;horizontal padding&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;padding&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;margin&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;HTML 마크업:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div class=&quot;input_wrap&quot;&amp;gt;
    &amp;lt;input type=&quot;text&quot; /&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;CSS:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;div {
    padding: 6px 10px; /* equal to negative input's margin for mimic normal `div` box-sizing */
}

input {
    width: 100%; /* force to expand to container's width */ 
    padding: 5px 10px;
    border: none;
    margin: 0 -10px; /* negative margin = border-width + horizontal padding */ 
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;css calc() 사용&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아주 단순하고 멋진.&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-css prettyprint-override&quot;&gt;&lt;code&gt;input {
    width: -moz-calc(100% - 15px);
    width: -webkit-calc(100% - 15px);
    width: calc(100% - 15px);
}​
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;34&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기에 표시된 &lt;a href=&quot;https://stackoverflow.com/questions/651317/div-width-100-minus-fixed-amount-of-pixels&quot; papago-id=&quot;34-1&quot;&gt;것&lt;/a&gt;처럼: &lt;a href=&quot;https://stackoverflow.com/questions/651317/div-width-100-minus-fixed-amount-of-pixels&quot; papago-id=&quot;34-1&quot;&gt;Div 너비&lt;/a&gt; 100&lt;a href=&quot;https://stackoverflow.com/questions/651317/div-width-100-minus-fixed-amount-of-pixels&quot; papago-id=&quot;34-1&quot;&gt;%에서 고정 픽셀 양&lt;/a&gt;을 뺀 값&lt;/font&gt;&lt;/font&gt; &lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;35&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/users/713523/webvitaly&quot; papago-id=&quot;35-1&quot;&gt;웹&lt;/a&gt; 활력별(https://stackoverflow.com/users/713523/webvitaly)&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;36&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;원본 출처:&lt;a href=&quot;http://web-profile.com.ua/css/dev/css-width-100prc-minus-100px/&quot; papago-id=&quot;36-1&quot; rel=&quot;noreferrer&quot;&gt; &lt;/a&gt;http://web-profile.com.ua/css/dev/&lt;a href=&quot;http://web-profile.com.ua/css/dev/css-width-100prc-minus-100px/&quot; papago-id=&quot;36-1&quot; rel=&quot;noreferrer&quot;&gt;css-width-100prc-minus-100px&lt;/a&gt;/&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기에 복사한 것입니다. 왜냐하면 다른 스레드에서 거의 놓칠 뻔했기 때문입니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내가 15px 패딩이 있는 컨테이너에 있다고 가정하면, 내가 항상 내부 부분에 사용하는 것은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;width:auto;
right:15px;
left:15px;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러면 안쪽 부분이 어느 쪽이든 15px보다 작아야 할 폭으로 늘어나게 됩니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음은&lt;a href=&quot;http://codeontrack.com/problem-width-100-padding/&quot; rel=&quot;noreferrer&quot; papago-id=&quot;40-1&quot;&gt; codeontrack&lt;/a&gt;.com 의 권장 사항으로, 솔루션 사례가 우수합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;를 100div 너 비 100% 로 하 의 auto 설 다 고 확 니 합 인 다 을 음 하 정 대 신 는 를 로 정 설 로 니 다 합 , , ▁sure 확 ▁instead 인 ▁the ▁it ▁be ▁set ▁and ▁of ▁the ▁width ▁auto&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;과 같이&quot;: &quot;(으)로 표시됨:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;).&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 몇 가지 위치 맞추기 묘기를 시도해 볼 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같이 입력을 디비에 넣을 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;position: relative&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 고정된 높이, 그리고 입력에서.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;position: absolute; left: 0; right: 0;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;27&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 좋아하는 패딩.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;h2&gt;&lt;a href=&quot;http://jsfiddle.net/wW4mY/2/&quot; rel=&quot;noreferrer&quot; papago-id=&quot;47&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;실시간 예제&lt;/font&gt;&lt;/a&gt;&lt;/h2&gt;&lt;p papago-id=&quot;48&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;입력 상자의 패딩을 래퍼 요소로 이동합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;style&amp;gt;
div.outer{ background: red; padding: 10px; }
div.inner { border: 1px solid #888; padding: 5px 10px; background: white; }
input { width: 100%; border: none }
&amp;lt;/style&amp;gt;

&amp;lt;div class=&quot;outer&quot;&amp;gt;
    &amp;lt;div class=&quot;inner&quot;&amp;gt;
       &amp;lt;input/&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;49&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://jsfiddle.net/L7wYD/1/&quot; papago-id=&quot;49-1&quot; rel=&quot;noreferrer&quot;&gt;여기&lt;/a&gt; 예를 참조하십시오.&lt;a href=&quot;http://jsfiddle.net/L7wYD/1/&quot; papago-id=&quot;49-1&quot; rel=&quot;noreferrer&quot;&gt; &lt;/a&gt;http://jsfiddle.net/L7wYD/1/&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;50&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 질문에 마지막으로 대답한 이후로 브라우저가 변경되었을 수도 있지만, 이 문제를 해결하기 위해 안정적으로 작동한 것은 이것뿐입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;    width: auto;
    left: 0;
    right: 0;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;51&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 여백/패딩을 원하는 대로 만들 수 있으며 요소가 사용 가능한 너비를 초과하여 확장되지 않습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 @andology의 답과 유사하지만 만약 당신이 왼쪽/오른쪽을 모두 0으로 만든다면 당신은 만들 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;margin&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;29&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;및/또는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;padding&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;30&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신이 원하는 것은 무엇이든지.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서 이것은 항상 나의 기본값입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;div&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;31&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;56&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;너비:auto;와 너비:100%, 너비:auto;윌(AUTO)의 차이를 이해하면 패딩을 포함한 래핑 디브의 정확한 크기에 맞게 너비가 계산됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;너비 100%는 너비를 확장하고 패딩을 추가합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;57&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것을 용기에 포장하는 것은 어떻습니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;컨테이너에는 다음과 같은 스타일이 있어야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;{
    width:100%;
    border: 10px solid transparent;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;58&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용해 보십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;width: 100%;
box-sizing: border-box;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;32&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;나는, 사용하기&lt;/font&gt;&lt;/font&gt;&lt;code&gt;margin:15px;padding:10px 0 15px 23px;width:100%&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;33&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;결과는 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/7RVie.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/7RVie.png&quot; alt=&quot;enter image description here&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;34&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저를 위한 해결책은&lt;/font&gt;&lt;/font&gt;&lt;code&gt;width:auto&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;35&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대신에&lt;/font&gt;&lt;/font&gt;&lt;code&gt;width:100%&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;36&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제 새 코드는 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;margin:15px;padding:10px 0 15px 23px;width:auto&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;37&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 요소가 올바르게 정렬됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/9d6fW.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/9d6fW.png&quot; alt=&quot;enter image description here&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;p papago-id=&quot;65&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음을 수행할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;width: auto;
padding: 20px;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;66&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/5219175/&lt;a href=&quot;https://stackoverflow.com/questions/5219175/how-to-make-an-element-width-100-minus-padding&quot; target=&quot;_blank&quot; papago-id=&quot;66-1&quot;&gt;how-to-make-an-element-width-100-minus-padding&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/663</guid>
      <comments>https://firstcheck.tistory.com/663#entry663comment</comments>
      <pubDate>Mon, 21 Aug 2023 23:32:31 +0900</pubDate>
    </item>
    <item>
      <title>파이썬처럼 자바스크립트로 된 사전이 있습니까?</title>
      <link>https://firstcheck.tistory.com/662</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파이썬처럼 자바스크립트로 된 사전이 있습니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이런 자바스크립트로 사전을 만들어야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;정확한 표기법은 기억나지 않지만, 다음과 같은 것이었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;states_dictionary={ CT=[alex,harry], AK=[liza,alex], TX=[fred, harry] ........ }
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;자바스크립트에 그런 것이 있습니까?&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 오래된 게시물이지만, 저는 어쨌든 삽화가 들어간 답변을 제공해야 한다고 생각했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Javascript의 객체 표기법을 사용합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이와 같은 경우:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;states_dictionary={ 
     &quot;CT&quot;:[&quot;alex&quot;,&quot;harry&quot;], 
     &quot;AK&quot;:[&quot;liza&quot;,&quot;alex&quot;], 
     &quot;TX&quot;:[&quot;fred&quot;, &quot;harry&quot;]
};
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;값에 액세스하려면 다음을 수행합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;states_dictionary.AK[0] //which is liza
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는 javascript 리터럴 객체 표기법을 사용하여 키가 따옴표로 묶일 필요가 없습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;states_dictionary={ 
     CT:[&quot;alex&quot;,&quot;harry&quot;], 
     AK:[&quot;liza&quot;,&quot;alex&quot;], 
     TX:[&quot;fred&quot;, &quot;harry&quot;]
};
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;2015년까지는 Javascript에 실제 연상 배열이 없었습니다(ECMAScript 6 릴리스).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그 이후로 지도 개체를 로보캣 상태로 사용할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map&quot; papago-id=&quot;8-1&quot; rel=&quot;noreferrer&quot;&gt;MDN에서 세부&lt;/a&gt; 정보를 &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map&quot; papago-id=&quot;8-1&quot; rel=&quot;noreferrer&quot;&gt;찾습니다&lt;/a&gt;. 예:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;let map = new Map();
map.set('key', {'value1', 'value2'});
let values = map.get('key');
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ES6를 지원하지 않으면 다음과 같은 개체를 사용해 볼 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;var x = new Object();
x[&quot;Key&quot;] = &quot;Value&quot;;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 개체에서는 일반적인 배열 속성이나 array.length와 같은 메서드를 사용할 수 없습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;적어도 for-in-loop에서 &quot;객체 배열&quot;에 액세스할 수 있습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ECMA스크립트 6에서는 사전 구현인 공식 객체가 도입되었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;let dict = new Map();
dict.set(&quot;foo&quot;, &quot;bar&quot;);

//returns &quot;bar&quot;
dict.get(&quot;foo&quot;);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;자바스크립트의 일반적인 객체와는 달리, ID 비교를 사용하여 임의의 객체를 키로 허용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;let foo = {};
let bar = {};
let dict = new Map();
dict.set(foo, &quot;Foo&quot;);
dict.set(bar, &quot;Bar&quot;);

//returns &quot;Bar&quot;
dict.get(bar);

//returns &quot;Foo&quot;
dict.get(foo);

//returns undefined, as {} !== foo and {} !== bar
dict.get({});
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용자 정의 키 비교기를 사용할 방법이 없으므로 ID 비교를 원하지 않는 경우에도 일반 개체처럼 숫자 또는 문자열 키만 사용해야 합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기에서 JS로 간단한 사전을 만들었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;function JSdict() {
    this.Keys = [];
    this.Values = [];
}

// Check if dictionary extensions aren't implemented yet.
// Returns value of a key
if (!JSdict.prototype.getVal) {
    JSdict.prototype.getVal = function (key) {
        if (key == null) {
            return &quot;Key cannot be null&quot;;
        }
        for (var i = 0; i &amp;lt; this.Keys.length; i++) {
            if (this.Keys[i] == key) {
                return this.Values[i];
            }
        }
        return &quot;Key not found!&quot;;
    }
}


// Check if dictionary extensions aren't implemented yet.
// Updates value of a key
if (!JSdict.prototype.update) {
    JSdict.prototype.update = function (key, val) {
        if (key == null || val == null) {
            return &quot;Key or Value cannot be null&quot;;
        }
        // Verify dict integrity before each operation
        if (keysLength != valsLength) {
            return &quot;Dictionary inconsistent. Keys length don't match values!&quot;;
        }
        var keysLength = this.Keys.length;
        var valsLength = this.Values.length;
        var flag = false;
        for (var i = 0; i &amp;lt; keysLength; i++) {
            if (this.Keys[i] == key) {
                this.Values[i] = val;
                flag = true;
                break;
            }
        }
        if (!flag) {
            return &quot;Key does not exist&quot;;
        }
    }
}



// Check if dictionary extensions aren't implemented yet.
// Adds a unique key value pair
if (!JSdict.prototype.add) {
    JSdict.prototype.add = function (key, val) {
        // Allow only strings or numbers as keys
        if (typeof (key) == &quot;number&quot; || typeof (key) == &quot;string&quot;) {
            if (key == null || val == null) {
                return &quot;Key or Value cannot be null&quot;;
            }
            if (keysLength != valsLength) {
                return &quot;Dictionary inconsistent. Keys length don't match values!&quot;;
            }
            var keysLength = this.Keys.length;
            var valsLength = this.Values.length;
            for (var i = 0; i &amp;lt; keysLength; i++) {
                if (this.Keys[i] == key) {
                    return &quot;Duplicate keys not allowed!&quot;;
                }
            }
            this.Keys.push(key);
            this.Values.push(val);
        }
        else {
            return &quot;Only number or string can be key!&quot;;
        }
    }
}

// Check if dictionary extensions aren't implemented yet.
// Removes a key value pair
if (!JSdict.prototype.remove) {
    JSdict.prototype.remove = function (key) {
        if (key == null) {
            return &quot;Key cannot be null&quot;;
        }
        if (keysLength != valsLength) {
            return &quot;Dictionary inconsistent. Keys length don't match values!&quot;;
        }
        var keysLength = this.Keys.length;
        var valsLength = this.Values.length;
        var flag = false;
        for (var i = 0; i &amp;lt; keysLength; i++) {
            if (this.Keys[i] == key) {
                this.Keys.shift(key);
                this.Values.shift(this.Values[i]);
                flag = true;
                break;
            }
        }
        if (!flag) {
            return &quot;Key does not exist&quot;;
        }
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2 papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이제 위의 구현을 사용하여 사전을 시뮬레이션할 수 있습니다.&lt;/font&gt;&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;var dict = new JSdict();

dict.add(1, &quot;one&quot;)

dict.add(1, &quot;one more&quot;)
&quot;Duplicate keys not allowed!&quot;

dict.getVal(1)
&quot;one&quot;

dict.update(1, &quot;onne&quot;)

dict.getVal(1)
&quot;onne&quot;

dict.remove(1)

dict.getVal(1)
&quot;Key not found!&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 단지 기본적인 시뮬레이션입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;적어도 O(nlogn) 시간 복잡도 이하에서 작동하도록 더 나은 실행 시간 알고리즘을 구현하여 더욱 최적화할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;배열에서 병합/빠른 정렬을 한 다음 검색을 B로 검색하는 것과 같습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 JS에서 해시함수를 매핑하는 것에 대해 시도하거나 검색하지 않았습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 JSdict obj의 Key 및 Value를 개인 변수로 변환하여 몰래 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것이 도움이 되길 바랍니다!&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;EDIT &amp;gt;&amp;gt; 위를 구현한 후, 저는 개인적으로 JS 객체를 즉시 사용할 수 있는 연관 배열로 사용했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;20-0&quot;&gt;그러나&lt;/em&gt; 편리한 해시 테이블 경험을 만드는 데 실제로 도움이 되는 두 가지 방법에 대해 특별히 언급하고 싶습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;21-1&quot;&gt;Viz:&lt;/strong&gt; dict.&lt;strong papago-id=&quot;21-1&quot;&gt;hasOwnProperty(키)&lt;/strong&gt; &lt;strong papago-id=&quot;21-5&quot;&gt;및 delete&lt;/strong&gt; dict&lt;strong papago-id=&quot;21-5&quot;&gt;[키]&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 게시물을 이 구현/사용에 대한 좋은 리소스로 읽으십시오.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/351495/dynamically-creating-keys-in-javascript-associative-array&quot; papago-id=&quot;22-1&quot;&gt;JavaScript 연관 배열에서 동적으로 키 만들기&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;감사합니다!&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;JavaScript 개체를 사용합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;사전의 키처럼 속성에 액세스할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것이 JSON의 기반입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;구문은 Python 사전과 유사합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;참조:&lt;a href=&quot;http://JSON.org&quot; rel=&quot;noreferrer&quot; papago-id=&quot;24-1&quot;&gt; JSON&lt;/a&gt;.org&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오래된 질문이지만 최근에 AS3&amp;gt;JS 포트를 해야 했고, 속도를 위해 JS를 위한 간단한 AS3 스타일 사전 객체를 작성했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://jsfiddle.net/MickMalone1983/VEpFf/2/&quot; rel=&quot;nofollow&quot; papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;http://jsfiddle.net/MickMalone1983/VEpFf/2/&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;몰랐다면 AS3 사전을 통해 문자열이 아닌 모든 개체를 키로 사용할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용법을 찾으면 매우 유용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것은 본래의 물체만큼 빠르지는 않지만, 저는 그런 점에서 어떤 중요한 문제도 발견하지 못했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;API:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;//Constructor
var dict = new Dict(overwrite:Boolean);

//If overwrite, allows over-writing of duplicate keys,
//otherwise, will not add duplicate keys to dictionary.

dict.put(key, value);//Add a pair
dict.get(key);//Get value from key
dict.remove(key);//Remove pair by key
dict.clearAll(value);//Remove all pairs with this value
dict.iterate(function(key, value){//Send all pairs as arguments to this function:
    console.log(key+' is key for '+value);
});


dict.get(key);//Get value from key
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Firefox 13+는 다음의 실험적인 구현을 제공합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;map&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;와 유사한 객체&lt;/font&gt;&lt;/font&gt;&lt;code&gt;dict&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;32&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파이썬의 개체입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map?redirectlocale=en-US&amp;amp;redirectslug=JavaScript%2FReference%2FGlobal_Objects%2FMap&quot; papago-id=&quot;32-1&quot; rel=&quot;nofollow&quot;&gt;사양&lt;/a&gt;은 여기에 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파이어폭스에서만 사용할 수 있지만 의 속성을 사용하는 것보다 더 좋아 보입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;new Object()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문서의 인용문:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오브젝트에는 프로토타입이 있으므로 맵에 기본 키가 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 이는 다음을 사용하여 우회할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;map = Object.create(null)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의 열쇠들.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Object&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이다&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Strings&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그들이 어떤 가치가 될 수 있는 곳.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Map&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 a의 사이즈를 얻을 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Map&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;수동으로 크기를 추적해야 하는 동안 쉽게&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Object&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/blockquote&gt;&lt;p papago-id=&quot;44&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/3559070/&lt;a href=&quot;https://stackoverflow.com/questions/3559070/are-there-dictionaries-in-javascript-like-python&quot; target=&quot;_blank&quot; papago-id=&quot;44-1&quot;&gt;are-there-dictionaries-in-javascript-like-python&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/662</guid>
      <comments>https://firstcheck.tistory.com/662#entry662comment</comments>
      <pubDate>Mon, 21 Aug 2023 23:30:55 +0900</pubDate>
    </item>
    <item>
      <title>AV Player 대리자가 없습니까?노래가 재생되면 추적하는 방법은 무엇입니까?목표 아이폰 개발</title>
      <link>https://firstcheck.tistory.com/661</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;AV Player 대리자가 없습니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;노래가 재생되면 추적하는 방법은 무엇입니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;목표 아이폰 개발&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;주위를 둘러보았지만 대리인 프로토콜을 찾을 수 없습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;AVPlayer class&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.왜 그러고 있어?&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하위 클래스를 사용하고 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;AVQueuePlayer&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일련의 곡을 연주하다&lt;/font&gt;&lt;/font&gt;&lt;code&gt;AVPlayerItems&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;각각 URL에서 로드됩니다. 노래 재생이 끝나면 메소드를 호출할 수 있는 방법이 있습니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;특히 줄 끝에?&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 그것이 불가능하다면, 버퍼링 후에 노래가 재생되기 시작할 때 메소드를 부를 수 있는 방법이 있을까요?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;로드 아이콘을 가져오려고 하는데 음악이 시작되기 전에 아이콘이 꺼집니다. 음악이 시작된 후에도 마찬가지입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;[audioPlayer play]&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;액션.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예, AVPlayer 클래스에는 AVAudioPlayer와 같은 위임 프로토콜이 없습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;AVPlayerItem에 대한 알림을 구독해야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇지 않으면 전달할 URL과 동일한 URL을 사용하여 AVPlayerItem을 생성할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;-initWithURL:&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;AVPlayer에서.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;-(void)startPlaybackForItemWithURL:(NSURL*)url {

    // First create an AVPlayerItem
    AVPlayerItem* playerItem = [AVPlayerItem playerItemWithURL:url];

    // Subscribe to the AVPlayerItem's DidPlayToEndTime notification.
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(itemDidFinishPlaying:) name:AVPlayerItemDidPlayToEndTimeNotification object:playerItem];

    // Pass the AVPlayerItem to a new player
    AVPlayer* player = [[[AVPlayer alloc] initWithPlayerItem:playerItem] autorelease];

    // Begin playback
    [player play]

} 

-(void)itemDidFinishPlaying:(NSNotification *) notification {
    // Will be called when AVPlayer finishes playing playerItem
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예. 플레이어의 상태 또는 속도에 KBO 관찰자를 추가합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;- (IBAction)go {
   self.player = .....
   self.player.actionAtItemEnd = AVPlayerActionStop;
   [self.player addObserver:self forKeyPath:@&quot;rate&quot; options:0 context:0]; 
}

- (void)stopped {
    ...
    [self.player removeObserver:self]; //assumes we are the only observer
}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
    if (context == 0) {
        if(player.rate==0.0) //stopped
            [self stopped];
    }
    else
        [super observeVal...];
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기본적으로 그게 다입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;고지 사항:&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 그것을 여기에 써서 코드가 좋은지 확인하지 않았습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 저는 전에 AVPlayer를 사용해 본 적이 없지만 거의 맞을 것입니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;9-0&quot;&gt;스위프트&lt;/strong&gt; 3 - 관찰자를 &lt;strong papago-id=&quot;9-0&quot;&gt;추가&lt;/strong&gt;합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;AVPlayerItem&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;플레이어에 비디오를 추가할 때마다:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;func playVideo(url: URL) {
  let playerItem = AVPlayerItem(asset: AVURLAsset(url: someVideoUrl))
  NotificationCenter.default.addObserver(self, selector: #selector(playerItemDidPlayToEndTime), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: playerItem)
  self.player.replaceCurrentItem(with: playerItem)
  self.player.play()
}

func playerItemDidPlayToEndTime() {
  // load next video or something
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Apple 문서 AV &lt;a href=&quot;http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/02_Playback.html#//apple_ref/doc/uid/TP40010188-CH3-SW8&quot; papago-id=&quot;15-1&quot; rel=&quot;nofollow&quot;&gt;Foundation&lt;/a&gt; Programming &lt;a href=&quot;http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/02_Playback.html#//apple_ref/doc/uid/TP40010188-CH3-SW8&quot; papago-id=&quot;15-1&quot; rel=&quot;nofollow&quot;&gt;Guide&lt;/a&gt;(AVFoundation &lt;a href=&quot;http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/02_Playback.html#//apple_ref/doc/uid/TP40010188-CH3-SW8&quot; papago-id=&quot;15-1&quot; rel=&quot;nofollow&quot;&gt;프로그래밍&lt;/a&gt; 가이드)에는 많은 정보가 있습니다(재생 모니터링 섹션 참조).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;주로 KBO를 통해 제공되는 것으로 보이므로 익숙하지 않은 경우 이를 복습하기를 원할 수 있습니다(&lt;a href=&quot;http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html#//apple_ref/doc/uid/10000177i&quot; papago-id=&quot;15-3&quot; rel=&quot;nofollow&quot;&gt;Key Value&lt;/a&gt; Observing &lt;a href=&quot;http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html#//apple_ref/doc/uid/10000177i&quot; papago-id=&quot;15-3&quot; rel=&quot;nofollow&quot;&gt;Programming&lt;/a&gt; Guide에 &lt;a href=&quot;http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html#//apple_ref/doc/uid/10000177i&quot; papago-id=&quot;15-3&quot; rel=&quot;nofollow&quot;&gt;대한&lt;/a&gt; 가이드가 있습니다).&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이것을 사용하고 있고, 그것은 작동합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;_player = [[AVPlayer alloc]initWithURL:[NSURL URLWithString:_playingAudio.url]];
CMTime endTime = CMTimeMakeWithSeconds(_playingAudio.duration, 1);
timeObserver = [_player addBoundaryTimeObserverForTimes:[NSArray arrayWithObject:[NSValue valueWithCMTime:endTime]] queue:NULL usingBlock:^(void) {
    [_player removeTimeObserver:timeObserver];
    timeObserver = nil;
    //TODO play next sound
}];
[self play];
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어디에&lt;/font&gt;&lt;/font&gt;&lt;code&gt;_playingAudio&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;몇 가지 속성을 가진 내 사용자 정의 클래스입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;timeObserver&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이라&lt;/font&gt;&lt;/font&gt;&lt;code&gt;id&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아이바의&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/6837002/&lt;a href=&quot;https://stackoverflow.com/questions/6837002/no-avplayer-delegate-how-to-track-when-song-finished-playing-objective-c-iphon&quot; target=&quot;_blank&quot; papago-id=&quot;21-1&quot;&gt;no-avplayer-delegate-how-to-track-when-song-finished-playing-objective-c-iphon&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/661</guid>
      <comments>https://firstcheck.tistory.com/661#entry661comment</comments>
      <pubDate>Tue, 1 Aug 2023 21:51:25 +0900</pubDate>
    </item>
    <item>
      <title>@Transactional은 어디에 두나요?인터페이스 사양 또는 구현 시?</title>
      <link>https://firstcheck.tistory.com/660</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;@Transactional은 어디에 두나요?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;인터페이스 사양 또는 구현 시?&lt;/font&gt;&lt;/h2&gt;
&lt;div&gt; 
 &lt;aside class=&quot;s-notice s-notice__info post-notice js-post-notice mb16&quot; role=&quot;status&quot;&gt; 
  &lt;div class=&quot;d-flex fd-column fw-nowrap&quot;&gt; 
   &lt;div class=&quot;d-flex fw-nowrap&quot;&gt; 
    &lt;div class=&quot;flex--item wmn0 fl1 lh-lg&quot;&gt; 
     &lt;div class=&quot;flex--item fl1 lh-lg&quot;&gt; 
      &lt;div papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;
&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;b papago-id=&quot;1-1&quot;&gt;이 질문에는 이미 다음&lt;/b&gt;과 같은 답이 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;      &lt;/font&gt;&lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;flex--item mb0 mt4&quot;&gt; 
    &lt;a href=&quot;/questions/3120143/where-should-i-put-transactional-annotation-at-an-interface-definition-or-at-a&quot; dir=&quot;ltr&quot; papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;@Transactional 주석은 인터페이스 정의 또는 구현 클래스의 어디에 두어야 합니까?&lt;/font&gt;&lt;/a&gt; 
    &lt;span class=&quot;question-originals-answer-count&quot; papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(5개 답변)&lt;/font&gt;&lt;/span&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;flex--item mb0 mt8&quot; papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;
&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;마감됨&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;span class=&quot;relativetime&quot; papago-id=&quot;4-1&quot; title=&quot;2019-04-03 09:21:51Z&quot; papago-attr-id=&quot;1&quot;&gt;4년 전&lt;/span&gt;에.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;   &lt;/font&gt;&lt;/div&gt; 
  &lt;/div&gt; 
 &lt;/aside&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음을 배치할 때 가장 좋은 방법은 무엇입니까?&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@Transactional&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;주석?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;인터페이스 방법 또는 구현에 주석을 달아야 합니까?&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 모든 것은 애플리케이션 아키텍처에 달려 있다고 생각합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;클래스를 프록시하는 방법에 따라 다릅니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;앱이 다음으로 설정된 경우&lt;/font&gt;&lt;/font&gt;&lt;code&gt;proxy-target-class='true'&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(응용프로그램 컨텍스트에서는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@Transactional&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;인터페이스에 주석을 달면 정보가 수집되지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/transaction.html&quot; papago-id=&quot;10-1&quot; rel=&quot;noreferrer&quot;&gt;자세한 내용은 &lt;/a&gt;Spring Docs -- &quot;&lt;a href=&quot;http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/transaction.html&quot; papago-id=&quot;10-1&quot; rel=&quot;noreferrer&quot;&gt;Tips&quot;&lt;/a&gt;를 확인하십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;인터페이스에 주석을 다는 것이 아니라 @Transactional 주석을 사용하여 구체적인 클래스(및 구체적인 클래스의 메서드)에만 주석을 다는 것이 좋습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;인터페이스(또는 인터페이스 메서드)에 @Transactional 주석을 배치할 수 있지만, 이는 인터페이스 기반 프록시를 사용하는 경우에만 사용자가 예상하는 대로 작동합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;자바 주석이 인터페이스에서 상속되지 않는다는 것은 클래스 기반 프록시(module-target-class=&quot;true&quot;) 또는 위빙 기반 측면(mode=&quot;dllj&quot;)을 사용하는 경우 프록시 및 위빙 인프라에서 트랜잭션 설정을 인식하지 못하고 객체가 트랜잭션 프록시로 감싸지지 않는다는 것을 의미합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것은 분명히 좋지 않을 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt;&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;좋은 질문입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 항상 그것을 구현에 넣었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;아마도 추상화라기보다는 구현 세부사항이기 때문일 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여러 구현에서 서로 다른 트랜잭션 동작을 사용하기를 원할 수도 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;El Guapo는 그 외에도 프록시 전략과 관련하여 인터페이스를 착용함으로써 발생할 수 있는 문제가 더 많다고 언급했습니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;트랜잭션 관리는 대부분의 경우 구현 세부사항이지만 인터페이스 세부사항이기도 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어, 애플리케이션의 서비스 인터페이스를 정의할 때 다음을 고려할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@Transactional&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;인터페이스 정의에 추가하여 사용 중인 전파 전략을 구체적으로 설명합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;시스템에서 인터페이스를 사용하지 않습니다. 아직까지는 이 인터페이스를 통해 무엇이든 구현할 수 있을지 알 수 없기 때문입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서 저는 구현에 주석을 달았고 저는 봄이 저에게 모든 것을 올바르게 해줄 것이라고 믿습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 모든 수업에 인터페이스가 있어야 한다고 생각하지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 많은 패턴을 가진 많은 건축물들을 보았고 그들은 모두 인터페이스를 좋아합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 질문이 있습니다. Spring 주석을 인터페이스에 삽입하고 어떤 이유로 이 인터페이스를 통해 수행되는 구현 클래스의 트랜잭션에 대한 다른 접근 방식을 원한다면 그렇게 할 수 없습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;아니면 제가 틀렸나요?&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;건배.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/5551541/&lt;a href=&quot;https://stackoverflow.com/questions/5551541/where-to-put-transactional-in-interface-specification-or-implementation&quot; target=&quot;_blank&quot; papago-id=&quot;20-1&quot;&gt;where-to-put-transactional-in-interface-specification-or-implementation&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/660</guid>
      <comments>https://firstcheck.tistory.com/660#entry660comment</comments>
      <pubDate>Tue, 1 Aug 2023 21:37:04 +0900</pubDate>
    </item>
    <item>
      <title>봄의 카프카 소비자 청취자 한 명이 여러 주제를 들을 수 있습니까?</title>
      <link>https://firstcheck.tistory.com/659</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;봄의 카프카 소비자 청취자 한 명이 여러 주제를 들을 수 있습니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;한 명의 청취자가 아래와 같은 여러 주제를 들을 수 있는지 아는 사람?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&quot;topic1&quot;만 작동하는 것으로 알고 있습니다. 추가 항목을 추가하려면 어떻게 해야 합니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;아래 두 가지 모두에 대한 예를 보여주시겠습니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;도와주셔서 감사합니다!&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@KafkaListener(topics = &quot;topic1,topic2&quot;)
public void listen(ConsumerRecord&amp;lt;?, ?&amp;gt; record, Acknowledgment ack) {
    System.out.println(record);
} 
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;ContainerProperties containerProps = new ContainerProperties(new TopicPartitionInitialOffset(&quot;topic1, topic2&quot;, 0));
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예, 그냥 따라오세요.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@KafkaListener&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Java 문서:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;/**
 * The topics for this listener.
 * The entries can be 'topic name', 'property-placeholder keys' or 'expressions'.
 * Expression must be resolved to the topic name.
 * Mutually exclusive with {@link #topicPattern()} and {@link #topicPartitions()}.
 * @return the topic names or expressions (SpEL) to listen to.
 */
String[] topics() default {};

/**
 * The topic pattern for this listener.
 * The entries can be 'topic name', 'property-placeholder keys' or 'expressions'.
 * Expression must be resolved to the topic pattern.
 * Mutually exclusive with {@link #topics()} and {@link #topicPartitions()}.
 * @return the topic pattern or expression (SpEL).
 */
String topicPattern() default &quot;&quot;;

/**
 * The topicPartitions for this listener.
 * Mutually exclusive with {@link #topicPattern()} and {@link #topics()}.
 * @return the topic names or expressions (SpEL) to listen to.
 */
TopicPartition[] topicPartitions() default {};
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용 사례는 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@KafkaListener(topics = {&quot;topic1&quot; , &quot;topic2&quot;})
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;application.properties 파일에서 여러 항목을 가져와야 하는 경우:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@KafkaListener(topics = { &quot;${spring.kafka.topic1}&quot;, &quot;${spring.kafka.topic2}&quot; })
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/41861207/&lt;a href=&quot;https://stackoverflow.com/questions/41861207/can-a-single-springs-kafkaconsumer-listener-listens-to-multiple-topic&quot; target=&quot;_blank&quot; papago-id=&quot;7-1&quot;&gt;can-a-single-springs-kafkaconsumer-listener-listens-to-multiple-topic&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/659</guid>
      <comments>https://firstcheck.tistory.com/659#entry659comment</comments>
      <pubDate>Tue, 1 Aug 2023 21:32:51 +0900</pubDate>
    </item>
    <item>
      <title>'instance로 보낸 인식되지 않는 선택기' 오류를 디버깅하려면 어떻게 해야 합니까?</title>
      <link>https://firstcheck.tistory.com/658</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;'instance로 보낸 인식되지 않는 선택기' 오류를 디버깅하려면 어떻게 해야 합니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내 표 보기에 대한 사용자 정의 표 셀 보기를 작성하는 중입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;커스텀 셀(스토리보드 내) 이미지 뷰를 내 코드에 빠르게 연결하면 다음과 같은 오류가 발생합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;[UITableViewCellContentView image]: unrecognized selector sent to instance 0x7fb4fad7fd20'
*** First throw call stack:
(
    0   CoreFoundation                      0x000000010ccbb3f5 __exceptionPreprocess + 165
    1   libobjc.A.dylib                     0x000000010e7e9bb7 objc_exception_throw + 45
    2   CoreFoundation                      0x000000010ccc250d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
    3   CoreFoundation                      0x000000010cc1a7fc ___forwarding___ + 988
    4   CoreFoundation                      0x000000010cc1a398 _CF_forwarding_prep_0 + 120
    5   UIKit                               0x000000010d7d8881 -[UITableViewCell _marginWidth] + 151
    6   UIKit                               0x000000010d7ca23d -[UITableViewCell _separatorFrame] + 70
    7   UIKit                               0x000000010d7ca6fa -[UITableViewCell _updateSeparatorContent] + 360
    8   UIKit                               0x000000010d7d4e85 -[UITableViewCell _setSectionLocation:animated:forceBackgroundSetup:] + 1174
    9   UIKit                               0x000000010d634ea8 __53-[UITableView _configureCellForDisplay:forIndexPath:]_block_invoke + 1822
    10  UIKit                               0x000000010d5b5eae +[UIView(Animation) performWithoutAnimation:] + 65
    11  UIKit                               0x000000010d63477b -[UITableView _configureCellForDisplay:forIndexPath:] + 312
    12  UIKit                               0x000000010d63bcec -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 533
    13  UIKit                               0x000000010d61b7f1 -[UITableView _updateVisibleCellsNow:isRecursive:] + 2846
    14  UIKit                               0x000000010d63165c -[UITableView layoutSubviews] + 213
    15  UIKit                               0x000000010d5be199 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 521
    16  QuartzCore                          0x00000001114b6f98 -[CALayer layoutSublayers] + 150
    17  QuartzCore                          0x00000001114abbbe _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 380
    18  QuartzCore                          0x00000001114aba2e _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24
    19  QuartzCore                          0x0000000111419ade _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 242
    20  QuartzCore                          0x000000011141abea _ZN2CA11Transaction6commitEv + 390
    21  QuartzCore                          0x000000011141b255 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 89
    22  CoreFoundation                      0x000000010cbf0347 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
    23  CoreFoundation                      0x000000010cbf02a0 __CFRunLoopDoObservers + 368
    24  CoreFoundation                      0x000000010cbe60d3 __CFRunLoopRun + 1123
    25  CoreFoundation                      0x000000010cbe5a06 CFRunLoopRunSpecific + 470
    26  GraphicsServices                    0x0000000110daa9f0 GSEventRunModal + 161
    27  UIKit                               0x000000010d545550 UIApplicationMain + 1282
    28  TestWork                          0x000000010caa432e top_level_code + 78
    29  TestWork                          0x000000010caa436a main + 42
    30  libdyld.dylib                       0x000000010efc3145 start + 1
    31  ???                                 0x0000000000000001 0x0 + 1
)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 오류를 해결하는 방법을 알려주시겠습니까?&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;감사해요.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;프로젝트에 예외 중단점을 추가합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것이 끊기는 선입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;  override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -&amp;gt; UITableViewCell {
        let cell = self.tableView.dequeueReusableCellWithIdentifier(kCellIdentifier) as ItemTableViewCell  &amp;lt;---------------
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 저는 제 코드에서 '이미지'를 사용하지 않습니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기호 중단점을 설정해 보십시오.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;-[NSObject(NSObject) doesNotRecognizeSelector:]&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;클릭만 하면 됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;[+]&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;중단점 네비게이터의 왼쪽 하단 모서리에서 중단점을 추가합니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;'Symbolic Breakpoint'는 'Symbolic Breakpoint'입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;지금 충돌을 재현하면 코드에서 문제가 발생하는 위치를 더 잘 파악할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://i.stack.imgur.com/1jHfR.png&quot; alt=&quot;enter image description here&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음을 사용하여 이러한 충돌을 쉽게 추적할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Exception Breakpoints&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Breakpoint Navigator&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 가합다니를 추가합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/x4hE0.png&quot; rel=&quot;noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/x4hE0.png&quot; alt=&quot;enter image description here&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Breakpoint를 , &quot;&quot; &quot; &quot; &quot; &quot; &quot; &quot; 를 할 수 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Exception&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/aCk8n.png&quot; rel=&quot;noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/aCk8n.png&quot; alt=&quot;enter image description here&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;를 선택합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Objective-C&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;코드를 실행하고 응용 프로그램을 중단하면 중단점이 코드가 충돌하는 지점까지 당신을 막을 것입니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;중요한 첫 번째 단계는 오류 메시지를 분석하는 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;[UITableViewCellContentView image]: unrecognized selector sent to instance
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;은 &quot; &quot;메시지&quot;가 &quot;메시지&quot;라는 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;image&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;UITableViewCellContentView&lt;/font&gt;입니다&lt;font class=&quot;papago-parent&quot;&gt;즉, &lt;/font&gt;메소드를 &lt;font class=&quot;papago-parent&quot;&gt;호출&lt;/font&gt;하려는 &lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;가 &lt;font class=&quot;papago-parent&quot;&gt;있었습니다&lt;/font&gt;.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;image&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;UITableViewCellContentView를 참조하십시오.)&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;첫 번째 질문은 &quot;이게 말이 됩니까?&quot;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;명명된 클래스에 다음이 있을 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Image&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;방법, 그러나 방법은 아닙니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;image&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;메서드가 호출에 잘못된 메서드 이름이 사용되었습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는 명명된 방법이 다음과 같을 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;someMethod:someParm:&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;은 그나수업실니다행됩은러lements를 실행합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;someMethod:someParm:anotherParm:&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;호출에서 매개 변수가 누락되었음을 의미합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 대부분의 경우 명명된 클래스는 명명된 메서드와 모호하게 유사한 메서드를 가지고 있지 않습니다. 즉, 실패한 호출에서 잘못된 개체에 대한 포인터가 사용되었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어, 다음과 같은 작업을 수행할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;NSArray* myArray = [myDictionary objectForKey:@&quot;values&quot;];
NSString* myString = [myArray objectAtIndex:5];
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 오류가 표시됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;[__NSDictionaryI objectAtIndex:] unrecognized selector sent to instance
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 왜하면객체검때색문다기니입에서 입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;myDictionary&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사실 NSD 사전이지 예상했던 NSRray가 아니었습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;불행하게도, 가장 혼란스러운 것은 이러한 종류의 오류가 사용자 자신의 코드가 아닌 UI 시스템 코드 깊숙이 발생할 때입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 문제는 잘못된 개체를 시스템 인터페이스에 전달하거나 인터페이스 빌더 또는 다른 곳에서 잘못된 클래스를 구성한 경우에 발생할 수 있습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;34&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또 다른 가능한 이유는 원래 개체가 삭제된 다음 다른 개체가 동일한 메모리 주소에 할당되었기 때문입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러면 코드는 이전 개체에 대한 포인터가 아직 있다고 생각하여 메시지를 보내고, 목표-C는 새 개체가 해당 메시지를 이해하지 못하기 때문에 예외를 던집니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;35&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 문제를 진단하려면 '좀비' 탐지와 함께 프로파일러를 실행합니다.&lt;/font&gt;&lt;/p&gt;&lt;h2 papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스위프트 5.0&lt;/font&gt;&lt;/h2&gt; 
&lt;p papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;37-1&quot;&gt;Introspection&lt;/strong&gt;을 사용하여 개체가 특정 선택기에 응답하는지 여부를 확인할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;let canWork = yourObject.respondsToSelector(Selector(&quot;image&quot;))   // true
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;코드가 작동한다는 것이 사실일 경우에만..&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇지 않으면 그것은 확실히 추락할 것입니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이러한 시나리오에서 저는 두 가지를 살펴보는 것이 도움이 된다는 것을 알았습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;콜 스택&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;각 스택 프레임의 로컬 변수(및 해당 유형)&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 오류가 발생한 것은 대개 유형 B를 예상할 때 유형 A의 인스턴스에 메시지를 보냈기 때문입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 특정 시나리오에서는 상위 클래스의 요구 사항을 충족하지 못할 수 있습니다(ItemTableViewCell 인스턴스가 상속될 가능성이 가장 높음).&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;44&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ItemTableViewCell 클래스의 코드를 보여주시겠습니까?&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;45&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음 코드를 사용하여 변수를 선언할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;let noteListTableViewCellobject = &quot;NoteListTableViewCell&quot;;` `// Note listTablecell create custom cell`

func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -&amp;gt; UITableViewCell! {

    var cell:NoteListTableViewCell? = tableView.dequeueReusableCellWithIdentifier(noteListTableViewCellobject) as? NoteListTableViewCell

    if (cell == nil) {
        let nib:Array = NSBundle.mainBundle().loadNibNamed(&quot;NoteListTableViewCell&quot;, owner: self, options: nil)
        cell = nib[0] as? NoteListTableViewCell
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;46&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저도 같은 문제를 겪었고, 이것은 저에게 효과가 있었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;47&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;SKScene에서 isEqual을 재정의합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;- (BOOL)isEqual:(id)other {

    if (![other isMemberOfClass:[SKScene class]]) {
        return false;
    }
    return [super isEqual:other];
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;합격해야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;indexPath&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;테이블 뷰 셀의 개체를 선언합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -&amp;gt; UITableViewCell {

    let cell = tableView.dequeueReusableCellWithIdentifier(&quot;cell&quot;, forIndexPath: indexPath)

    return cell
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;50&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/25853947/&lt;a href=&quot;https://stackoverflow.com/questions/25853947/how-can-i-debug-unrecognized-selector-sent-to-instance-error&quot; target=&quot;_blank&quot; papago-id=&quot;50-1&quot;&gt;how-can-i-debug-unrecognized-selector-sent-to-instance-error&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/658</guid>
      <comments>https://firstcheck.tistory.com/658#entry658comment</comments>
      <pubDate>Tue, 1 Aug 2023 21:27:48 +0900</pubDate>
    </item>
    <item>
      <title>ts1206 데코레이터는 여기서 사용할 수 없습니다. Angular 2</title>
      <link>https://firstcheck.tistory.com/657</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ts1206 데코레이터는 여기서 사용할 수 없습니다. Angular 2&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Angular 2를 프로그래밍하기 시작했는데 오류가 발생했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ts1206 데코레이터는 여기서 사용할 수 없습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;pre&gt;&lt;code&gt;@Component({   //  ts1206 decorators are not valid here
  selector: 'my-app',
  moduleId: module.id,
  templateUrl: 'app.component.html',
  styleUrls: ['app.component.css']
})
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;업데이트:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;My tsconfig.json:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt; {
  &quot;compilerOptions&quot;: {
    &quot;target&quot;: &quot;es5&quot;,
    &quot;module&quot;: &quot;commonjs&quot;,
    &quot;moduleResolution&quot;: &quot;node&quot;,
    &quot;sourceMap&quot;: true,
    &quot;emitDecoratorMetadata&quot;: true,
    &quot;experimentalDecorators&quot;: true,
    &quot;removeComments&quot;: false,
    &quot;noImplicitAny&quot;: true,
    &quot;suppressImplicitAnyIndexErrors&quot;: true
  }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것으로 무엇을 할 수 있습니까?&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;장식자는 내보낸 클래스 바로 앞에 와야 합니다. 예:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@Component({
    ...
})
export class someComponent{}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 에도 마찬가지입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@Pipe&lt;/code&gt; &lt;code&gt;@Directive&lt;/code&gt; &lt;code&gt;@Injectable&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@NgModule&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 오류는 각도 라우팅을 사용하고 이후 경로를 정의할 때 발생했습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@NgModule&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;장식가&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;우리는 그 전에 경로나 다른 장식가를 정의해야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@NgModule&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;장식가&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;const appRoutes: Routes = [    // define this before @NgModule 
 { path: '',
   redirectTo: '/home',
   pathMatch: 'full'
 },
 { path: 'home', component: HomeComponent },
];


@NgModule({            // This Decorator should be just before an exported class 
declarations: [
 AppComponent,
 HeaderComponent,
 HomeComponent
],
imports: [
 BrowserModule,
 RouterModule.forRoot(
   appRoutes,
   { enableTracing: true } // &amp;lt;-- debugging purposes only
 )
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위에 인터페이스 또는 기타 선언 추가&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@component&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이렇게 하면 오류가 해결됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/38357384/&lt;a href=&quot;https://stackoverflow.com/questions/38357384/ts1206-decorators-are-not-valid-here-angular-2&quot; target=&quot;_blank&quot; papago-id=&quot;15-1&quot;&gt;ts1206-decorators-are-not-valid-here-angular-2&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/657</guid>
      <comments>https://firstcheck.tistory.com/657#entry657comment</comments>
      <pubDate>Tue, 1 Aug 2023 21:25:59 +0900</pubDate>
    </item>
    <item>
      <title>문자열을 QString으로 변경하는 방법은 무엇입니까?</title>
      <link>https://firstcheck.tistory.com/656</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문자열을 QString으로 변경하는 방법은 무엇입니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것을 하는 가장 기본적인 방법은 무엇입니까?&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; STL은&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;QString&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;변환하는 &lt;a href=&quot;http://doc.qt.io/qt-5/qstring.html#fromStdString&quot; papago-id=&quot;3-1&quot; rel=&quot;noreferrer&quot;&gt;정적&lt;/a&gt; 방법이 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;std::string&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;QString&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;std::string str = &quot;abc&quot;;
QString qstr = QString::fromStdString(str);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;만약 당신이 끈을 의미한다면.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;std::string&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음 방법으로 수행할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://doc.qt.io/qt-4.8/qstring.html#fromStdString&quot; rel=&quot;noreferrer&quot; papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;QString QString::fromStdString(constststd::string &amp;amp; str)&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;std::string str = &quot;Hello world&quot;;
QString qstr = QString::fromStdString(str);
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;된 아스키를 에는 아스키를 사용합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;const char *&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 다음 방법을 사용할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://doc.qt.io/qt-4.8/qstring.html#fromAscii&quot; rel=&quot;noreferrer&quot; papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;QString QString::ASCII에서(const char * str, int size = -1)&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;const char* str = &quot;Hello world&quot;;
QString qstr = QString::fromAscii(str);
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가지고 계신다면,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;const char *&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://doc.qt.io/qt-4.8/qtextcodec.html#codecForLocale&quot; papago-id=&quot;13-1&quot; rel=&quot;noreferrer&quot;&gt;QTextCodec::codecForLocale()&lt;/a&gt;로 읽을 수 있는 시스템 인코딩으로 인코딩된 다음 다음 방법을 사용해야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://doc.qt.io/qt-4.8/qstring.html#fromLocal8Bit&quot; rel=&quot;noreferrer&quot; papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;QString QString::Local8Bit(constchar * str, int size = -1)로부터&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;const char* str = &quot;zażółć gęślą jaźń&quot;;      // latin2 source file and system encoding
QString qstr = QString::fromLocal8Bit(str);
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가지고 계신다면,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;const char *&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;UTF8로 인코딩된 경우 다음 방법을 사용해야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://doc.qt.io/qt-4.8/qstring.html#fromUtf8&quot; rel=&quot;noreferrer&quot; papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;QString QString::FromUtf8(constchar * str, int size = -1)&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;const char* str = read_raw(&quot;hello.txt&quot;); // assuming hello.txt is UTF8 encoded, and read_raw() reads bytes from file into memory and returns pointer to the first byte as const char*
QString qstr = QString::fromUtf8(str);
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음을 위한 방법도 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;const ushort *&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;UTF16 인코딩 문자열 포함:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://doc.qt.io/qt-4.8/qstring.html#fromUtf16&quot; rel=&quot;noreferrer&quot; papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;QString QString::FromUtf16(연속 단축 * 유니코드, int size = -1)&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;const ushort* str = read_raw(&quot;hello.txt&quot;); // assuming hello.txt is UTF16 encoded, and read_raw() reads bytes from file into memory and returns pointer to the first byte as const ushort*
QString qstr = QString::fromUtf16(str);
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다른 방법:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;std::string s = &quot;This is an STL string&quot;;
QString qs = QString::fromAscii(s.data(), s.size());
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;은 이은사용않있장다습니점이는을 하지 않는 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;.c_str()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것이 원인이 될 수도 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;std::string&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 없는 경우 복사하기&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;'\0'&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;std::string s = &quot;Sambuca&quot;;
QString q = s.c_str();
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;26-0&quot;&gt;경고:&lt;/strong&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 만약 그것이 작동하지 않을 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;std::string&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;를 포함합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;\0&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;s의&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;답을 따라가다 문제가 생겨서 이 질문을 하게 되었습니다. 그래서 여기에 해결책을 올립니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위의 예는 모두 ASCII 값만 포함하는 문자열이 있는 샘플을 보여주며, 이 경우 모든 것이 정상적으로 작동합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 독일어 umlaut와 같은 다른 문자도 포함할 수 있는 Windows의 문자열을 처리할 때 이러한 솔루션이 작동하지 않습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이러한 경우에 정확한 결과를 제공하는 유일한 코드는 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;std::string s = &quot;Übernahme&quot;;
QString q = QString::fromLocal8Bit(s.c_str());
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;만약 당신이 그러한 조건들을 다룰 필요가 없다면, 위의 대답들은 잘 작동할 것입니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 C 문자열을 의미합니까?&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;char*&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; C++ 문자 또는 C++&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;std::string&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;목적어?&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어느 쪽이든 QT 참조에 설명된 것처럼 동일한 생성자를 사용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;http://doc.qt.io/qt-4.8/qstring.html&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Qt QString 참조&lt;/font&gt;&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일반 C 문자열의 경우 주 생성자를 사용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;char name[] = &quot;Stack Overflow&quot;;
QString qname(name);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당분간&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;std::string&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 그것을 얻습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;char*&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;버퍼에 전달하고 그것을 버퍼에 전달합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;QString&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;27&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;생성자:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;std::string name2(&quot;Stack Overflow&quot;);
QString qname2(name2.c_str());
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 원하는 것을 변환하려면 QVariant 클래스를 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;44&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;std::string str(&quot;hello !&quot;);
qDebug() &amp;lt;&amp;lt; QVariant(str.c_str()).toString();
int test = 10;
double titi = 5.42;
qDebug() &amp;lt;&amp;lt; QVariant(test).toString();
qDebug() &amp;lt;&amp;lt; QVariant(titi).toString();
qDebug() &amp;lt;&amp;lt; QVariant(titi).toInt();
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;45&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;산출량&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&quot;hello !&quot;
&quot;10&quot;
&quot;5.42&quot;
5
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;46&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/1814189/&lt;a href=&quot;https://stackoverflow.com/questions/1814189/how-to-change-string-into-qstring&quot; target=&quot;_blank&quot; papago-id=&quot;46-1&quot;&gt;how-to-change-string-into-qstring&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/656</guid>
      <comments>https://firstcheck.tistory.com/656#entry656comment</comments>
      <pubDate>Tue, 1 Aug 2023 21:12:52 +0900</pubDate>
    </item>
    <item>
      <title>Android 8.1로 업그레이드한 후 startForground 실패</title>
      <link>https://firstcheck.tistory.com/655</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Android 8.1로 업그레이드한 후 startForground 실패&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;전화기를 8.1 Developer Preview(개발자 미리 보기)로 업그레이드한 후 백그라운드 서비스가 더 이상 제대로 시작되지 않습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;장기적으로 운영되는 서비스에서 저는 다음을 구현했습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;startForeground&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;생성 시 호출되는 진행 중인 알림을 시작하는 메서드입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@TargetApi(Build.VERSION_CODES.O)
private fun startForeground() {
    // Safe call, handled by compat lib.
    val notificationBuilder = NotificationCompat.Builder(this, DEFAULT_CHANNEL_ID)

    val notification = notificationBuilder.setOngoing(true)
            .setSmallIcon(R.drawable.ic_launcher_foreground)
            .build()
    startForeground(101, notification)
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오류 메시지:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;11-28 11:47:53.349 24704-24704/$PACKAGE_NAMEE/AndroidRuntime: FATAL EXCEPTION: main
    Process: $PACKAGE_NAME, PID: 24704
    android.app.RemoteServiceException: Bad notification for startForeground: java.lang.RuntimeException: invalid channel for service notification: Notification(channel=My channel pri=0 contentView=null vibrate=null sound=null defaults=0x0 flags=0x42 color=0x00000000 vis=PRIVATE)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1768)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;code&gt;invalid channel for service notification&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내인 분나예전채널의명히▁the널채▁apparently▁my▁old전예.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;DEFAULT_CHANNEL_ID&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더 이상 API 27에 적합하지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;적절한 채널은 무엇입니까?&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;한동안 다른 솔루션을 사용한 후 안드로이드 8.1 이상에서 알림 채널을 만들어야 한다는 것을 알게 되었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;private fun startForeground() {
    val channelId =
            if (Build.VERSION.SDK_INT &amp;gt;= Build.VERSION_CODES.O) {
                createNotificationChannel(&quot;my_service&quot;, &quot;My Background Service&quot;)
            } else {
                // If earlier version channel ID is not used
                // https://developer.android.com/reference/android/support/v4/app/NotificationCompat.Builder.html#NotificationCompat.Builder(android.content.Context)
                &quot;&quot;
            }

    val notificationBuilder = NotificationCompat.Builder(this, channelId )
    val notification = notificationBuilder.setOngoing(true)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setPriority(PRIORITY_MIN)
            .setCategory(Notification.CATEGORY_SERVICE)
            .build()
    startForeground(101, notification)
}

@RequiresApi(Build.VERSION_CODES.O)
private fun createNotificationChannel(channelId: String, channelName: String): String{
    val chan = NotificationChannel(channelId,
            channelName, NotificationManager.IMPORTANCE_NONE)
    chan.lightColor = Color.BLUE
    chan.lockscreenVisibility = Notification.VISIBILITY_PRIVATE
    val service = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
    service.createNotificationChannel(chan)
    return channelId
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 알기로는 백그라운드 서비스는 이제 일반 알림으로 표시됩니다. 그러면 사용자는 알림 채널을 선택 취소하여 표시하지 않도록 선택할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;9-0&quot;&gt;업데이트&lt;/strong&gt;: 또한 필요에 따라 전경 권한을 Android P:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;uses-permission android:name=&quot;android.permission.FOREGROUND_SERVICE&quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Java 솔루션(Android 9.0, API 28)&lt;/font&gt;&lt;/h3&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의 신의에서.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Service&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;클래스, 추가할 항목:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@Override
public void onCreate(){
    super.onCreate();
    if (Build.VERSION.SDK_INT &amp;gt;= Build.VERSION_CODES.O)
        startMyOwnForeground();
    else
        startForeground(1, new Notification());
}

private void startMyOwnForeground(){
    String NOTIFICATION_CHANNEL_ID = &quot;com.example.simpleapp&quot;;
    String channelName = &quot;My Background Service&quot;;
    NotificationChannel chan = new NotificationChannel(NOTIFICATION_CHANNEL_ID, channelName, NotificationManager.IMPORTANCE_NONE);
    chan.setLightColor(Color.BLUE);
    chan.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
    NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    assert manager != null;
    manager.createNotificationChannel(chan);

    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);
    Notification notification = notificationBuilder.setOngoing(true)
            .setSmallIcon(R.drawable.icon_1)
            .setContentTitle(&quot;App is running in background&quot;)
            .setPriority(NotificationManager.IMPORTANCE_MIN)
            .setCategory(Notification.CATEGORY_SERVICE)
            .build();
    startForeground(2, notification);
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;업데이트: 안드로이드 9.0 PIE(API 28)&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;을 이권을에다니합에 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;AndroidManifest.xml&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파일 이름:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;uses-permission android:name=&quot;android.permission.FOREGROUND_SERVICE&quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;첫 번째 대답은 코틀린을 아는 사람들에게만 좋고, 여기서 여전히 자바를 사용하는 사람들에게는 제가 첫 번째 대답을 번역합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt; public Notification getNotification() {
        String channel;
        if (Build.VERSION.SDK_INT &amp;gt;= Build.VERSION_CODES.O)
            channel = createChannel();
        else {
            channel = &quot;&quot;;
        }
        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this, channel).setSmallIcon(android.R.drawable.ic_menu_mylocation).setContentTitle(&quot;snap map fake location&quot;);
        Notification notification = mBuilder
                .setPriority(PRIORITY_LOW)
                .setCategory(Notification.CATEGORY_SERVICE)
                .build();


        return notification;
    }

    @NonNull
    @TargetApi(26)
    private synchronized String createChannel() {
        NotificationManager mNotificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);

        String name = &quot;snap map fake location &quot;;
        int importance = NotificationManager.IMPORTANCE_LOW;

        NotificationChannel mChannel = new NotificationChannel(&quot;snap map channel&quot;, name, importance);

        mChannel.enableLights(true);
        mChannel.setLightColor(Color.BLUE);
        if (mNotificationManager != null) {
            mNotificationManager.createNotificationChannel(mChannel);
        } else {
            stopSelf();
        }
        return &quot;snap map channel&quot;;
    } 
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Android의 경우 P는 이 권한을 포함하는 것을 잊지 마십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;uses-permission android:name=&quot;android.permission.FOREGROUND_SERVICE&quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Andorid 8.1에서 올바르게 작동합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;업데이트된 샘플(사용되지 않는 코드 없음):&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;public NotificationBattery(Context context) {
    this.mCtx = context;

    mBuilder = new NotificationCompat.Builder(context, CHANNEL_ID)
            .setContentTitle(context.getString(R.string.notification_title_battery))
            .setSmallIcon(R.drawable.ic_launcher)
            .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
            .setChannelId(CHANNEL_ID)
            .setOnlyAlertOnce(true)
            .setPriority(NotificationCompat.PRIORITY_MAX)
            .setWhen(System.currentTimeMillis() + 500)
            .setGroup(GROUP)
            .setOngoing(true);

    mRemoteViews = new RemoteViews(context.getPackageName(), R.layout.notification_view_battery);

    initBatteryNotificationIntent();

    mBuilder.setContent(mRemoteViews);

    mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

    if (AesPrefs.getBooleanRes(R.string.SHOW_BATTERY_NOTIFICATION, true)) {
        if (Build.VERSION.SDK_INT &amp;gt;= Build.VERSION_CODES.O) {
            NotificationChannel channel = new NotificationChannel(CHANNEL_ID, context.getString(R.string.notification_title_battery),
                    NotificationManager.IMPORTANCE_DEFAULT);
            channel.setShowBadge(false);
            channel.setSound(null, null);
            mNotificationManager.createNotificationChannel(channel);
        }
    } else {
        mNotificationManager.cancel(Const.NOTIFICATION_CLIPBOARD);
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이전 캡처됨(위 코드와 관련이 &lt;strong papago-id=&quot;20-1&quot;&gt;없는&lt;/strong&gt; 다른 앱임):&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@Override
public int onStartCommand(Intent intent, int flags, final int startId) {
    Log.d(TAG, &quot;onStartCommand&quot;);

    String CHANNEL_ONE_ID = &quot;com.kjtech.app.N1&quot;;
    String CHANNEL_ONE_NAME = &quot;Channel One&quot;;
    NotificationChannel notificationChannel = null;
    if (android.os.Build.VERSION.SDK_INT &amp;gt;= android.os.Build.VERSION_CODES.O) {
        notificationChannel = new NotificationChannel(CHANNEL_ONE_ID,
                CHANNEL_ONE_NAME, IMPORTANCE_HIGH);
        notificationChannel.enableLights(true);
        notificationChannel.setLightColor(Color.RED);
        notificationChannel.setShowBadge(true);
        notificationChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
        NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        manager.createNotificationChannel(notificationChannel);
    }

    Bitmap icon = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
    Notification notification = new Notification.Builder(getApplicationContext())
            .setChannelId(CHANNEL_ONE_ID)
            .setContentTitle(getString(R.string.obd_service_notification_title))
            .setContentText(getString(R.string.service_notification_content))
            .setSmallIcon(R.mipmap.ic_launcher)
            .setLargeIcon(icon)
            .build();

    Intent notificationIntent = new Intent(getApplicationContext(), MainActivity.class);
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    notification.contentIntent = PendingIntent.getActivity(getApplicationContext(), 0, notificationIntent, 0);

    startForeground(START_FOREGROUND_ID, notification);

    return START_STICKY;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제 경우에는, 우리가 다음 사항을 명시하지 않고 알림을 게시하려고 했기 때문입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;NotificationChannel&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;public static final String NOTIFICATION_CHANNEL_ID_SERVICE = &quot;com.mypackage.service&quot;;
public static final String NOTIFICATION_CHANNEL_ID_TASK = &quot;com.mypackage.download_info&quot;;

public void initChannel(){
    if (Build.VERSION.SDK_INT &amp;gt;= Build.VERSION_CODES.O) {
        NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        nm.createNotificationChannel(new NotificationChannel(NOTIFICATION_CHANNEL_ID_SERVICE, &quot;App Service&quot;, NotificationManager.IMPORTANCE_DEFAULT));
        nm.createNotificationChannel(new NotificationChannel(NOTIFICATION_CHANNEL_ID_INFO, &quot;Download Info&quot;, NotificationManager.IMPORTANCE_DEFAULT));
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;를 붙이기에 은 위놓가위좋는치장은기에에 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;onCreate()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의법에 있는 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Application&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;클래스, 그래서 우리는 모두를 위해 한 번만 선언하면 됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        initChannel();
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;와 함께 알림을 사용할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;channelId&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;우리가 방금 지정한 것&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Intent i = new Intent(this, MainActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pi = PendingIntent.getActivity(this, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID_INFO);
            .setContentIntent(pi)
            .setWhen(System.currentTimeMillis())
            .setContentTitle(&quot;VirtualBox.exe&quot;)
            .setContentText(&quot;Download completed&quot;)
            .setSmallIcon(R.mipmap.ic_launcher);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 알림을 게시하는 데 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;int notifId = 45;
NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
nm.notify(notifId, builder.build());
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;포그라운드 서비스의 알림으로 사용하려는 경우:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;startForeground(notifId, builder.build());
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;@CopsOnRoad 덕분에 그의 솔루션은 큰 도움이 되었지만 SDK 26 이상에서만 작동합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;내 앱은 24 이상을 목표로 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Android Studio가 불만을 제기하지 않도록 하려면 알림에 직접 조건부가 필요합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;코드가 VERSION_CODE.O에 조건부인 메서드에 있다는 것을 아는 것은 현명하지 않습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@Override
public void onCreate(){
    super.onCreate();
    if (Build.VERSION.SDK_INT &amp;gt;= Build.VERSION_CODES.O)
        startMyOwnForeground();
    else
        startForeground(1, new Notification());
}

private void startMyOwnForeground(){

    if (Build.VERSION.SDK_INT &amp;gt;= Build.VERSION_CODES.O){

        String NOTIFICATION_CHANNEL_ID = &quot;com.example.simpleapp&quot;;
        String channelName = &quot;My Background Service&quot;;
        NotificationChannel chan = new NotificationChannel(NOTIFICATION_CHANNEL_ID, channelName, NotificationManager.IMPORTANCE_NONE);
        chan.setLightColor(Color.BLUE);
        chan.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
        NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
        assert manager != null;
        manager.createNotificationChannel(chan);

        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this, NOTIFICATION_CHANNEL_ID);
        Notification notification = notificationBuilder.setOngoing(true)
                .setSmallIcon(AppSpecific.SMALL_ICON)
                .setContentTitle(&quot;App is running in background&quot;)
                .setPriority(NotificationManager.IMPORTANCE_MIN)
                .setCategory(Notification.CATEGORY_SERVICE)
                .build();
        startForeground(2, notification);
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 저에게 효과가 있었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;서비스 클래스에서 안드로이드 8.1용 알림 채널을 아래와 같이 만들었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;public class Service extends Service {

    public static final String NOTIFICATION_CHANNEL_ID_SERVICE = &quot;com.package.MyService&quot;;
    public static final String NOTIFICATION_CHANNEL_ID_INFO = &quot;com.package.download_info&quot;;

    @Override
    public void onCreate() {

        super.onCreate();
        if (Build.VERSION.SDK_INT &amp;gt;= Build.VERSION_CODES.O) {
            NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
            nm.createNotificationChannel(new NotificationChannel(NOTIFICATION_CHANNEL_ID_SERVICE, &quot;App Service&quot;, NotificationManager.IMPORTANCE_DEFAULT));
            nm.createNotificationChannel(new NotificationChannel(NOTIFICATION_CHANNEL_ID_INFO, &quot;Download Info&quot;, NotificationManager.IMPORTANCE_DEFAULT));
        } else {
            Notification notification = new Notification();
            startForeground(1, notification);
        }
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;참고: 알림을 만들 채널을 만듭니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Build.VERSION.SDK_INT &amp;gt;= Build.VERSION_CODES.O&lt;/code&gt; &lt;/p&gt;&lt;p papago-id=&quot;34&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대안적인 답변: 화웨이 기기이고 Oreo 8 Android에 필요한 요구 사항을 구현했으며 유일한 기기 문제보다 여전히 화웨이 기기에만 문제가 있는 경우 https://&lt;a href=&quot;https://dontkillmyapp.com/huawei&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;34-1&quot;&gt;dontkillmyapp&lt;/a&gt;.com/huawei 을 읽을 수 있습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;35&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저도 같은 문제가 있었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;두 앱에 동일한 채널 ID와 알림 ID를 사용했을 때 문제가 발생했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 고유한 알림 ID와 채널 ID를 사용해 보십시오.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 오래되었을 수도 있지만, 누군가가 나와 같은 상황을 겪었을 경우에 대비합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떤 이유에서인지, 안드로이드 11 OnePlus Nord에서.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Notification.Builder().Build()
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;충돌,&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;NotificationCompat.Builder().Build()
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;잘 작동합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;Androidx.core.app으로 마이그레이션하는 것을 고려해 보십시오.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;NotificationCompat.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;VPN 라이브러리로 작업하는 경우 이 코드가 도움이 될 것입니다. 이 코드를 내부에 배치했습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;onCreate(savedInstanceState: Bundle?)&lt;/code&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt; NotificationChannelManager.createNotificationChannelIfNeeded(
            activity,
            channelName = &quot;Chanel Name&quot;,
            channelDescription = &quot;Channel description&quot;
        )
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것이 나의 해결책입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;private static final int NOTIFICATION_ID = 200;
private static final String CHANNEL_ID = &quot;myChannel&quot;;
private static final String CHANNEL_NAME = &quot;myChannelName&quot;;

private void startForeground() {

    final NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
            getApplicationContext(), CHANNEL_ID);

    Notification notification;



        notification = mBuilder.setTicker(getString(R.string.app_name)).setWhen(0)
                .setOngoing(true)
                .setContentTitle(getString(R.string.app_name))
                .setContentText(&quot;Send SMS gateway is running background&quot;)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setShowWhen(true)
                .build();

        NotificationManager notificationManager = (NotificationManager) getApplication().getSystemService(Context.NOTIFICATION_SERVICE);

        //All notifications should go through NotificationChannel on Android 26 &amp;amp; above
        if (Build.VERSION.SDK_INT &amp;gt;= Build.VERSION_CODES.O) {
            NotificationChannel channel = new NotificationChannel(CHANNEL_ID,
                    CHANNEL_NAME,
                    NotificationManager.IMPORTANCE_DEFAULT);
            notificationManager.createNotificationChannel(channel);

        }
        notificationManager.notify(NOTIFICATION_ID, notification);

    }
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;도움이 되길 바랍니다 :)&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/47531742/&lt;a href=&quot;https://stackoverflow.com/questions/47531742/startforeground-fail-after-upgrade-to-android-8-1&quot; target=&quot;_blank&quot; papago-id=&quot;42-1&quot;&gt;startforeground-fail-after-upgrade-to-android-8-1&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/655</guid>
      <comments>https://firstcheck.tistory.com/655#entry655comment</comments>
      <pubDate>Tue, 1 Aug 2023 21:11:53 +0900</pubDate>
    </item>
    <item>
      <title>루트 문서 아래 디렉터리에 없는 문서에 스핑크스를 연결할 수 있습니까?</title>
      <link>https://firstcheck.tistory.com/654</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;루트 문서 아래 디렉터리에 없는 문서에 스핑크스를 연결할 수 있습니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 비 파이썬 프로젝트를 문서화하기 위해 스핑크스를 사용하고 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;는 배하고싶다니를 하고 싶습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;./doc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;모듈에  폴더로, &quot; &quot; &quot; 를 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;submodule_name.rst&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;해당 모듈을 문서화하는 파일입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 이러한 파일을 마스터 계층 구조로 빨아들여 전체 설계에 대한 사양을 만들고자 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Project
  docs
    spec
      project_spec.rst
      conf.py
  modules
    module1
      docs
        module1.rst
      src
    module2
      docs
        module2.rst
      src
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 마에파일포했고습다니에 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;project_spec.rst&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; to 과 같이 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;.. toctree::
   :numbered:
   :maxdepth: 2

   Module 1 &amp;lt;../../modules/module1/docs/module1&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 이 오류 메시지는 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;경고: tctree에 존재하지 않는 문서 u'modules/module1/docs/module1'에 대한 참조가 포함되어 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용할 수 없습니까?&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;../&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떻게든 문서 경로에서?&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;업데이트: conf.py 위치가 추가되었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;업데이트: 아래 포함 트릭을 제외하고는 여전히 (2019년) 불가능합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;계속 &lt;a href=&quot;https://github.com/sphinx-doc/sphinx/issues/701&quot; rel=&quot;noreferrer&quot; papago-id=&quot;12-1&quot;&gt;추진&lt;/a&gt;되는 미해결 문제가 있습니다. https://github.com/sphinx-doc/sphinx/issues/701&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;네, 할 수 있어요!&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 링크하지 않음)에, &quot;&quot; (Windows에서는 사용할 수 없음) &quot;&quot; (Windows에서는 사용할 수 없음) &quot;&quot; .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;.. include::&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;direction.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;소스 트리의 맨 위에 있는 README 파일에 연결하는 중에 이 문제가 발생했습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;나는 다음과 같은 파일을 넣었습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;readme_link.rst&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;.. include:: ../README
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 그럼인에서.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;index.rst&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;토트리를 다음과 같이 만들었습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Contents:

.. toctree::
   :maxdepth: 2

   readme_link
   other_stuff
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이제 인덱스 페이지에 릴리스 노트에 대한 링크가 표시됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://reinout.vanrees.org/weblog/2010/12/08/include-external-in-sphinx.html&quot; papago-id=&quot;21-1&quot;&gt;제안해주신 &lt;/a&gt;http://reinout.vanrees.org/weblog/2010/12/08/include-external-in-sphinx.html 에 감사드립니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&quot;아니오&quot;가 정답인 것 같습니다. toc-tree에 나열된 문서는 &lt;a href=&quot;http://sphinx.pocoo.org/glossary.html#term-source-directory&quot; papago-id=&quot;22-1&quot; rel=&quot;noreferrer&quot;&gt;원본&lt;/a&gt; 디렉토리, 즉 &lt;a href=&quot;http://sphinx.pocoo.org/glossary.html#term-master-document&quot; papago-id=&quot;22-3&quot; rel=&quot;noreferrer&quot;&gt;마스터&lt;/a&gt; 문서가 들어 있는 디렉토리에 있어야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;conf.py&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(및 모든 하위 디렉터리).&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://comments.gmane.org/gmane.comp.python.sphinx.devel/4237&quot; rel=&quot;noreferrer&quot; papago-id=&quot;24-1&quot;&gt;spinx-dev 메일링&lt;/a&gt; 목록에서 다음을 수행합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;STScI에서는 스핑크스의 개별 프로젝트에 대한 문서를 작성한 다음, (토트리를 사용하여) 다수의 다른 프로젝트별 문서를 포함하는 &quot;마스터 문서&quot;를 작성합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이를 위해 마스터 문서의 문서 원본 디렉터리에 프로젝트의 문서 원본 디렉터리에 대한 심볼 링크를 만듭니다. toctree는 문서 원본 트리 외부에 있는 파일을 포함하지 않는 것 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 파일을 복사하는 대신&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;shutil&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;은 당신의 볼 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Project/docs/spec&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;디렉토리입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Project/modules&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러면 toc-tree에서 이 파일들을 단순히 다음과 같이 참조할 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;modules/module1/docs/module1&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기타.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;conf.py 에서 sys.path 및 os.path를 사용하여 시스템에 대한 상대 경로를 추가합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;import os
import sys

sys.path.insert(0, os.path.abspath('..'))
sys.path.insert(0, os.path.abspath('../../Directory1'))
sys.path.insert(0, os.path.abspath('../../Directory2'))
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 동일한 디렉토리에 있는 rst 파일을 참조하여 index.rst를 평소와 같이 사용합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;로컬 스핑크스 폴더의 index.rst에 다음과 같이 저장합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Contents:

.. toctree::
   :maxdepth: 4

   Package1 &amp;lt;package1.rst&amp;gt;
   Package2 &amp;lt;package2.rst&amp;gt;
   Package3 &amp;lt;package3.rst&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;34&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 package1.rst에서 상대 패키지를 정상적으로 참조할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Package1 package
=====================

Submodules
----------

Submodule1 module
----------------------------------

.. automodule:: file_within_directory_1
    :members:
    :undoc-members:
    :show-inheritance:

Submodule1 module
----------------------------------

.. automodule:: file_within_directory_2
    :members:
    :undoc-members:
    :show-inheritance:
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;35&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 외장 주피터 노트북을 포함하고 싶었던 차이로 꽤 비슷한 문제를 해결했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;나는 nbspinx를 설치했지만 작동하지 않았습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;35-1&quot;&gt;작동하지 않는 것:&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;p papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;경로에 루트를 포함할 디렉터리가 있습니다.&lt;/font&gt;&lt;/p&gt; &lt;p papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;conf.py :&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;code&gt;import os import sys sys.path.insert(...&lt;/code&gt;&lt;/p&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용&lt;/font&gt;&lt;/font&gt;&lt;code&gt;.. include:: directive&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파일이 설명서에 포함되었지만 그대로입니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;마지막으로 문제를 해결한 &lt;strong papago-id=&quot;40-1&quot;&gt;것&lt;/strong&gt;은 패키지 &lt;a href=&quot;https://github.com/vidartf/nbsphinx-link&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;40-3&quot;&gt;nbspinx-link&lt;/a&gt;를 설치하는 것이었습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제 대답은 본질적으로 @Dan Menes입니다. 하지만 재구조화 대신 Myst parser를 위한 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;나는 이것이 거기에 속해 있기 때문에 @Dan Menes 답변에 댓글로 추가하고 싶지만, 댓글은 내가 포맷을 하는 것을 허용하지 않고, Myst 구문은 새 줄에 민감하고 댓글은 문자가 제한되어 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서 기존 답변과 관련된 경우에도 별도의 답변으로 게시합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Myst에 포함시키려면 형식을 약간 다르게 지정해야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;```{include} ../main/post_installation_windows.md
```
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;44&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 reStructured 마크업을 수행하기 위해 자체적으로 래핑할 수 있습니다(그 후 포함된 파일은 구조화된 상태로 처리됩니다).&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;```{eval-rst}
.. include:: snippets/include-rst.rst
```
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;45&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 기본 Myst 구문을 사용하는 것이 더 쉽습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어, 파일을 포함하는 것만으로는 포함된 파일 내의 참조가 올바르게 해결되지 않지만 include-literal은 다음과 같은 더 나은 기능을 제공합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;```{include-literal} ../../example.md
:language: md
```
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;단순한 문서를 포함하는 것은 괜찮지만, 많은 참조가 있는 복잡한 문서를 포함하는 것은 더 골치 아픈 일이 될 것이기 때문에 실험을 추천합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;include-literal&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(버전 0.12.7부터)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;48&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://myst-parser.readthedocs.io/en/latest/using/howto.html&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;48-1&quot;&gt;참조:&lt;/a&gt; https://myst-parser.readthedocs.io/en/latest/using/howto.html&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;49&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;루트에 index.rst 파일만 있고 Project/docs에 있는 다른 모든 스핑크스 항목을 포함하도록 스핑크스를 구성할 수도 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;50&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;윈도우의 경우 모든 스핑크스 파일과 dir(index.rst 제외)를 docs/로 이동하고 다음을 변경했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;docs/make.bat&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS%  .
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;52&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;로.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS%  -c . ..
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;code&gt;docs/conf.py&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;sys.path.insert(0, os.path.abspath('..'))
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스텁 파일을 생성할 필요가 없는 대체 기술은 &lt;a href=&quot;https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html?highlight=toctree#directive-toctree&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;26-1&quot;&gt;절대 참조&lt;/a&gt;를 사용하는 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;27&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;) 루트 할 때 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;sphinx-build&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;디렉토리 레이아웃 예:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;/path/to/common/ancestor
├── a
│&amp;nbsp;&amp;nbsp; └── foo.rst
├── b
│&amp;nbsp;&amp;nbsp; ├── bar.rst
│&amp;nbsp;&amp;nbsp; ├── x
│&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; └── index.rst
│&amp;nbsp;&amp;nbsp; └── y
│&amp;nbsp;&amp;nbsp;     └── boz.rst
└── c
    └── baz.rst


&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;29&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;b/x/index.rst&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;30&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;.. toctree::
   /a/foo
   /b/bar
   /b/y/boz
   /c/baz
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;31&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 당신의&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;sphinx-build&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;32&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;명령은 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;sphinx-build -c &amp;lt;confdir&amp;gt; -b html -D masterdoc=b/x/index /path/to/common/ancestor &amp;lt;outdir&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;33&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이것을 스핑크스로 테스트했습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;3.0.2&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;34&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;35&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의 해결책, 정말로 하는 것이하다면, ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;../&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;36&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;은▁use있▁that▁i▁is▁could는을 사용할 수 있다는 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;shutil&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;37&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;을 파을의 폴트복다의 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;conf.py&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;38&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 꼭 필요한 경우를 제외하고는 사본을 여러 개 갖고 싶지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;67&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/10199233/&lt;a href=&quot;https://stackoverflow.com/questions/10199233/can-sphinx-link-to-documents-that-are-not-located-in-directories-below-the-root&quot; target=&quot;_blank&quot; papago-id=&quot;67-1&quot;&gt;can-sphinx-link-to-documents-that-are-not-located-in-directories-below-the-root&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/654</guid>
      <comments>https://firstcheck.tistory.com/654#entry654comment</comments>
      <pubDate>Tue, 1 Aug 2023 21:10:35 +0900</pubDate>
    </item>
    <item>
      <title>scss/css에서 파일 이름 &amp;quot;_&amp;quot; 또는 &amp;quot;_&amp;quot; 앞에 붙이는 이유는 무엇입니까?</title>
      <link>https://firstcheck.tistory.com/653</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;scss/css에서 파일 이름 &quot;_&quot; 또는 &quot;_&quot; 앞에 붙이는 이유는 무엇입니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;왜 넣어요?&lt;/font&gt;&lt;/font&gt;&lt;code&gt;_&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;scss의 파일 이름 앞에?&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;_filename.scss&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;필요한 이유&lt;/font&gt;&lt;/font&gt;&lt;code&gt;_&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;?&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;_(밑줄)은 scss의 일부입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;즉, 스타일시트를 주 스타일시트(예: styles.scss)로 가져올 것입니다(@import).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;partials를 사용할 때의 장점은 코드를 구성하는 데 많은 파일을 사용할 수 있고 모든 것이 하나의 파일로 컴파일된다는 것입니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파일 이름 앞에 &quot;_&quot;를 포함할 때 부분적이지 않은 다른 sas 파일로 가져오지 않는 한 CSS로 생성되지 않습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신의 폴더 구조가 이와 같다고 가정합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;/scss
 style.scss
 _list.scss
/css
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;명령을 실행하는 경우&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;sass --watch scss:css
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;style.css와 style.css.map 파일만 생성되고 sass 컴파일러는 내용을 CSS 파일로 변환하지 않고 _list.scss를 생략합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;/scss
 style.scss
 _list.scss
/css
 style.css
 style.css.map
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;partials를 사용할 수 있는 유일한 방법은 다른 .scss 파일로 가져오는 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@import 'list.scss';
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;_list.scss 앞의 '_'를 제거하면 명령어의 결과는 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;/scss
 style.scss
 list.scss
/css
 style.css
 style.css.map
 list.css
 list.css.map
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부분적인 부분을 사용하는 주요 목적은 CSS 코드를 유지 관리하기 쉬운 여러 부분으로 분해하는 것입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이게 도움이 되길 바랍니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;감사해요.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;밑줄로 시작하는 SAS 파일은 부분적입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 여러분의 스타일을 논리적인 섹션으로 구분하는 좋은 방법입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 파일들은 당신이 사용할 때 컴파일할 때 모두 병합됩니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@import&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Sass 언어 안내서:&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다른 Sass 파일에 포함할 수 있는 CSS의 작은 스니펫을 포함하는 부분 Sass 파일을 만들 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 CSS를 모듈화하고 유지 관리를 쉽게 하는 데 도움이 되는 좋은 방법입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;부분은 단순히 선행 밑줄이 있는 Sas 파일입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;_partial.scss와 같은 이름을 붙일 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;Sass는 밑줄을 사용하여 파일이 부분 파일일 뿐이며 CSS 파일로 생성되지 않아야 함을 알 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;SAS 부분은 @import 지시문과 함께 사용됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;a href=&quot;http://sass-lang.com/guide&quot; rel=&quot;noreferrer&quot; papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;http://sass-lang.com/guide&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;_(밑줄)이 있는 파일은 컴파일러에 의해 무시됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 이러한 모든 파일은 실제로 컴파일되는 파일인 단일 메인 SCSS 파일(예: styles.scss)로 가져옵니다(이름에 _(밑줄)이 없습니다).&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;최종 목표는 하나의 SCSS 파일만 컴파일하고 그 결과 하나의 CSS 파일만 보유하는 것으로 다양한 장점이 있습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;_는 부분을 나타내는 데 사용됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이러한 부분은 전처리 단계에서 필요한 변수와 내부 함수를 포함하고 있으며, CSS로 컴파일할 필요는 없습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;_ 부분 템플릿에는 css를 css로 컴파일하는 데 필요한 utils, scss 로컬 변수 및 함수가 포함되어 있습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://sass-lang.com/documentation/at-rules/use#partials&quot; papago-id=&quot;21-0&quot; rel=&quot;nofollow noreferrer&quot;&gt;설명서&lt;/a&gt;의 내용은 &lt;a href=&quot;https://sass-lang.com/documentation/at-rules/use#partials&quot; papago-id=&quot;21-0&quot; rel=&quot;nofollow noreferrer&quot;&gt;다음&lt;/a&gt;과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;22-1&quot;&gt;관례적으로, 자체적으로 컴파일되지 않고 [가져올&lt;/strong&gt; 모듈&lt;strong papago-id=&quot;22-1&quot;&gt;]로만 로드되도록 의도된 Sass 파일&lt;/strong&gt;은 _&lt;strong papago-id=&quot;22-1&quot;&gt;(_code.scss에서처럼)&lt;/strong&gt;로&lt;strong papago-id=&quot;22-1&quot;&gt; 시작&lt;/strong&gt;합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것들은 부분적인 것이라고 불리는데, 그들은 Sass 도구들에게 그 파일들을 스스로 컴파일하려고 하지 말라고 말합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;부분을 가져올 때 _를 생략할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 Sass &lt;a href=&quot;https://sass-lang.com/documentation/at-rules/import&quot; papago-id=&quot;23-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;부분은 @import와 &lt;/a&gt;함께 &lt;a href=&quot;https://sass-lang.com/documentation/at-rules/import&quot; papago-id=&quot;23-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;사용하지 말고&lt;/a&gt; @&lt;a href=&quot;https://sass-lang.com/documentation/at-rules/import&quot; papago-id=&quot;23-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;use와 &lt;/a&gt;함께 사용해야 &lt;a href=&quot;https://sass-lang.com/documentation/at-rules/import&quot; papago-id=&quot;23-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;합니다&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Sass 팀은 @import 규칙을 계속 사용하지 않도록 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;Sass는 앞으로 몇 년 동안 단계적으로 그것을 제거할 것이고, 결국 언어에서 그것을 완전히 제거할 것입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;대신 @사용 규칙을 선호합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;(현재 Dart Sass만 @use를 지원합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다른 구현의 사용자는 대신 @import 규칙을 사용해야 합니다.)&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이는 원래 질문의 범위를 벗어나지만, 궁금하다면 다음과 같은 이유가 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;@가져오기 규칙에는 여러 가지 심각한 문제가 있습니다.&lt;/font&gt;&lt;/p&gt; 
 &lt;ul&gt; 
  &lt;li papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;@import를 사용하면 모든 변수, 믹스인 및 함수에 전역적으로 액세스할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이로 인해 사람(또는 도구)이 정의된 위치를 파악하기가 매우 어렵습니다.&lt;/font&gt;&lt;/li&gt; 
  &lt;li papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;모든 항목이 글로벌하기 때문에 라이브러리는 이름 충돌을 방지하기 위해 모든 구성원에게 접두사를 붙여야 합니다.&lt;/font&gt;&lt;/li&gt; 
  &lt;li papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;@임시 규칙도 글로벌하므로 어떤 스타일 규칙이 확장될 것인지 예측하기 어렵습니다.&lt;/font&gt;&lt;/li&gt; 
  &lt;li papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;각 스타일시트는 @import될 때마다 실행되고 CSS가 방출되어 컴파일 시간이 증가하고 더부룩한 출력이 생성됩니다.&lt;/font&gt;&lt;/li&gt; 
  &lt;li papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다운스트림 스타일시트에 액세스할 수 없는 개인 구성원 또는 자리 표시자 선택기를 정의할 수 있는 방법이 없습니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/blockquote&gt;&lt;p papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 노드 환경에서 노드 패치 감시기를 사용하면 밑줄 접두사가 없는 경우 오류 메시지가 표시됩니다. https://github.com/sass/&lt;a href=&quot;https://github.com/sass/node-sass/issues/2762&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;32-1&quot;&gt;node-sass&lt;/a&gt;/issues/2762 을 참조하십시오.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/34889962/&lt;a href=&quot;https://stackoverflow.com/questions/34889962/why-put-in-front-of-the-file-name-or-in-scss-css&quot; target=&quot;_blank&quot; papago-id=&quot;33-1&quot;&gt;why-put-in-front-of-the-file-name-or-in-scss-css&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/653</guid>
      <comments>https://firstcheck.tistory.com/653#entry653comment</comments>
      <pubDate>Tue, 1 Aug 2023 21:08:41 +0900</pubDate>
    </item>
    <item>
      <title>사용자가 C# + As에서 Active Directory 그룹에 속해 있는지 확인합니다.그물</title>
      <link>https://firstcheck.tistory.com/652</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용자가 C# + As에서 Active Directory 그룹에 속해 있는지 확인합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그물&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용자가 의 활성 디렉토리 그룹에 속해 있는지 확인할 수 있는 방법이 필요합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;Net 3.5 asp.net c# 응용 프로그램.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;msdn에서 표준 LDAP 인증 예제를 사용하고 있지만 그룹에 대해 확인하는 방법을 잘 모르겠습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;3.5 및&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.aspx&quot; papago-id=&quot;3-1&quot; rel=&quot;noreferrer&quot;&gt; 시스템&lt;/a&gt; 포함.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.aspx&quot; papago-id=&quot;3-1&quot; rel=&quot;noreferrer&quot;&gt;디렉터리 서비스.&lt;/a&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.directoryservices.accountmanagement.aspx&quot; papago-id=&quot;3-1&quot; rel=&quot;noreferrer&quot;&gt;계정&lt;/a&gt; 관리 이것은 조금 더 깨끗합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;public List&amp;lt;string&amp;gt; GetGroupNames(string userName)
{
  var pc = new PrincipalContext(ContextType.Domain);
  var src = UserPrincipal.FindByIdentity(pc, userName).GetGroups(pc);
  var result = new List&amp;lt;string&amp;gt;();
  src.ToList().ForEach(sr =&amp;gt; result.Add(sr.SamAccountName));
  return result;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;닉 크레이버의 해결책은 제게 도움이 되지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;NET 4.0.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;언로드된 AppDomain에 대한 오류가 발생했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 그것을 사용하는 대신 이것을 사용했습니다(우리는 도메인이 하나뿐입니다).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이렇게 하면 그룹 그룹과 직접 그룹 구성원 자격이 확인됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;using System.DirectoryServices.AccountManagement;
using System.Linq;

...

using (var ctx = new PrincipalContext(ContextType.Domain, yourDomain)) {
    using (var grp = GroupPrincipal.FindByIdentity(ctx, IdentityType.Name, yourGroup)) {
        bool isInRole = grp != null &amp;amp;&amp;amp; 
            grp
            .GetMembers(true)
            .Any(m =&amp;gt; m.SamAccountName == me.Identity.Name.Replace(yourDomain + &quot;\\&quot;, &quot;&quot;));
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아래 코드는 .net 4.0에서 작동합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;private static string[] GetGroupNames(string userName)
{
    List&amp;lt;string&amp;gt; result = new List&amp;lt;string&amp;gt;();

    using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, &quot;YOURDOMAIN&quot;))
    {
        using (PrincipalSearchResult&amp;lt;Principal&amp;gt; src = UserPrincipal.FindByIdentity(pc, userName).GetGroups(pc))
        {
            src.ToList().ForEach(sr =&amp;gt; result.Add(sr.SamAccountName));
        }
    }

    return result.ToArray();
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가장 간단한 해결책&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;PrincipalContext pc = new PrincipalContext((Environment.UserDomainName == Environment.MachineName ? ContextType.Machine : ContextType.Domain), Environment.UserDomainName);

GroupPrincipal gp = GroupPrincipal.FindByIdentity(pc, &quot;{GroupName}&quot;);
UserPrincipal up = UserPrincipal.FindByIdentity(pc, Environment.UserName);
up.IsMemberOf(gp);
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 방법은 Windows 인증 현재 사용자가 특정 역할에 속해 있는지 확인하려는 경우 유용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;public static bool CurrentUserIsInRole(string role)
{
    try
    {
        return System.Web.HttpContext.Current.Request
                    .LogonUserIdentity
                    .Groups
                    .Any(x =&amp;gt; x.Translate(typeof(NTAccount)).ToString() == role);
        }
        catch (Exception) { return false; }
    }
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용자가 AD 그룹에 속해 있는지 여부는 사용자가 의미하는 바에 따라 달라집니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;AD에서 그룹은 Security Group 또는 Distribution Group일 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;보안 그룹의 경우에도 &quot;도메인 사용자&quot; 또는 &quot;사용자&quot;와 같은 그룹이 구성원 자격 검사에 포함되어야 하는지 여부에 따라 다릅니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;IsUserInSecurityGroup은 Security Group만 확인하고 배포 그룹이 아닌 &quot;도메인 사용자&quot; 및 &quot;사용자&quot;와 같은 기본 그룹 종류의 그룹에 대해 작동합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 중첩된 그룹의 문제도 해결합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;IsUserInAllGroup도 배포 그룹을 확인하지만 권한 문제가 발생할지 모르겠습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용하는 경우 WAAG에 있는 서비스 계정을 &lt;a href=&quot;http://support.microsoft.com/kb/331951&quot; rel=&quot;noreferrer&quot; papago-id=&quot;9-1&quot;&gt;사용합니다(MSDN&lt;/a&gt; 참조).&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;UserPrincipal을 사용하지 않는 이유입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;GetAuthorizedGroups()는 호출 계정이 WAG에 있어야 하고 SidHistory에 항목이 없어야 하는 등 많은 문제가 있기 때문입니다(&lt;a href=&quot;http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/9dd81553-3539-4281-addd-3eb75e6e4d5d&quot; papago-id=&quot;10-1&quot; rel=&quot;noreferrer&quot;&gt;David &lt;/a&gt;Thomas의 &lt;a href=&quot;http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/9dd81553-3539-4281-addd-3eb75e6e4d5d&quot; papago-id=&quot;10-1&quot; rel=&quot;noreferrer&quot;&gt;의견 참조&lt;/a&gt;).&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;public bool IsUserInSecurityGroup(string user, string group)
    {
        return IsUserInGroup(user, group, &quot;tokenGroups&quot;);
    }
    public bool IsUserInAllGroup(string user, string group)
    {
        return IsUserInGroup(user, group, &quot;tokenGroupsGlobalAndUniversal&quot;);
    }

    private bool IsUserInGroup(string user, string group, string groupType)
    {
        var userGroups = GetUserGroupIds(user, groupType);
        var groupTokens = ParseDomainQualifiedName(group, &quot;group&quot;);
        using (var groupContext = new PrincipalContext(ContextType.Domain, groupTokens[0]))
        {
            using (var identity = GroupPrincipal.FindByIdentity(groupContext, IdentityType.SamAccountName, groupTokens[1]))
            {
                if (identity == null)
                    return false;

                return userGroups.Contains(identity.Sid);
            }
        }
    }
    private List&amp;lt;SecurityIdentifier&amp;gt; GetUserGroupIds(string user, string groupType)
    {
        var userTokens = ParseDomainQualifiedName(user, &quot;user&quot;);
        using (var userContext = new PrincipalContext(ContextType.Domain, userTokens[0]))
        {
            using (var identity = UserPrincipal.FindByIdentity(userContext, IdentityType.SamAccountName, userTokens[1]))
            {
                if (identity == null)
                    return new List&amp;lt;SecurityIdentifier&amp;gt;();

                var userEntry = identity.GetUnderlyingObject() as DirectoryEntry;
                userEntry.RefreshCache(new[] { groupType });
                return (from byte[] sid in userEntry.Properties[groupType]
                        select new SecurityIdentifier(sid, 0)).ToList();
            }
        }
    }
    private static string[] ParseDomainQualifiedName(string name, string parameterName)
    {
        var groupTokens = name.Split(new[] {&quot;\\&quot;}, StringSplitOptions.RemoveEmptyEntries);
        if (groupTokens.Length &amp;lt; 2)
            throw new ArgumentException(Resources.Exception_NameNotDomainQualified + name, parameterName);
        return groupTokens;
    }
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기 제 2센트입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;    static void CheckUserGroup(string userName, string userGroup)
    {
        var wi = new WindowsIdentity(userName);
        var wp = new WindowsPrincipal(wi);

        bool inRole = wp.IsInRole(userGroup);

        Console.WriteLine(&quot;User {0} {1} member of {2} AD group&quot;, userName, inRole ? &quot;is&quot; : &quot;is not&quot;, userGroup);
    }
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 방법은 훨씬 단순해 보입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;public bool IsInRole(string groupname)
{
    var myIdentity = WindowsIdentity.GetCurrent();
    if (myIdentity == null) return false;

    var myPrincipal = new WindowsPrincipal(myIdentity);
    var result = myPrincipal.IsInRole(groupname);

    return result;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 어떻습니까?&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://stackoverflow.com/questions/1032351/how-to-write-ldap-query-to-test-if-user-is-member-of-a-group&quot; papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용자가 그룹의 구성원인지 테스트하기 위해 LDAP 쿼리를 작성하는 방법은 무엇입니까?&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음 코드를 시도할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;public bool Check_If_Member_Of_AD_Group(string username, string grouptoCheck, string domain, string ADlogin, string ADpassword)
{
&amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp;  try {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string EntryString = null;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; EntryString = &quot;LDAP://&quot; + domain;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DirectoryEntry myDE = default(DirectoryEntry);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; grouptoCheck = grouptoCheck.ToLower();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myDE = new DirectoryEntry(EntryString, ADlogin, ADpassword);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DirectorySearcher myDirectorySearcher = new DirectorySearcher(myDE);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myDirectorySearcher.Filter = &quot;sAMAccountName=&quot; + username;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myDirectorySearcher.PropertiesToLoad.Add(&quot;MemberOf&quot;);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SearchResult myresult = myDirectorySearcher.FindOne();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; int NumberOfGroups = 0;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NumberOfGroups = myresult.Properties[&quot;memberOf&quot;].Count - 1;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string tempString = null;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while ((NumberOfGroups &amp;gt;= 0)) {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tempString = myresult.Properties[&quot;MemberOf&quot;].Item[NumberOfGroups];
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tempString = tempString.Substring(0, tempString.IndexOf(&quot;,&quot;, 0));
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tempString = tempString.Replace(&quot;CN=&quot;, &quot;&quot;);
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tempString = tempString.ToLower();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tempString = tempString.Trim();
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if ((grouptoCheck == tempString)) {
&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return true;
&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; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NumberOfGroups = NumberOfGroups - 1;
&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; return false;
&amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; catch (Exception ex) {
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.Diagnostics.Debugger.Break();
&amp;nbsp; &amp;nbsp; }
&amp;nbsp; &amp;nbsp; //HttpContext.Current.Response.Write(&quot;Error: &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot; &amp;amp; ex.ToString)
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Brandon Johnson씨, 저는 당신이 가지고 있는 것을 사용했지만, 다음과 같은 변경을 했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;private static string[] GetGroupNames(string domainName, string userName)
{
    List&amp;lt;string&amp;gt; result = new List&amp;lt;string&amp;gt;();

    using (PrincipalContext principalContext = new PrincipalContext(ContextType.Domain, domainName))
    {
        using (PrincipalSearchResult&amp;lt;Principal&amp;gt; src = UserPrincipal.FindByIdentity(principalContext, userName).GetGroups(principalContext))
        {
            src.ToList().ForEach(sr =&amp;gt; result.Add(sr.SamAccountName));
        }
    }

    return result.ToArray();
}
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;var context = new PrincipalContext(ContextType.Domain, {ADDomain}, {ADContainer});
var group = GroupPrincipal.FindByIdentity(context, IdentityType.Name, {AD_GROUP_NAME});
var user = UserPrincipal.FindByIdentity(context, {login});
bool result = user.IsMemberOf(group);
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용자 상위 그룹에 간접적으로 연결된 중첩 그룹을 포함한 사용자 그룹 구성원 자격을 확인하려면 다음과 같이 &quot;tokenGroups&quot; 속성을 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;시스템 사용.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;디렉터리 서비스&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;
&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;public static bool IsMemberOfGroupsToCheck(문자열 도메인 서버, 문자열 로그인)&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;ID, 문자열 로그인 암호)&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;{&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;string UserDN = &quot;CN=John.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;Doe-A,OU=관리 계정,&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;OU= 사용자 디렉토리,&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;DC=CJB,&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;DC=com&quot;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;문자열 ADGroupsDNTToCheck = &quot;CN=ADGroup&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;확인하려면,&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;OU=관리 그룹,&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;OU=그룹 디렉터리,&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;DC=CJB,&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;DC=com&quot;;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;
&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;바이트[] sid, 상위&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;SID;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;bool check = false;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;디렉터리 항목 상위 항목;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;디렉터리 항목 기본 하위 항목;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;현악 옥텟&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;SID;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;
&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;basechildEntry = 새 디렉터리 항목(&quot;LDAP://&quot; + 도메인 서버 + &quot;/&quot; + 사용자DN, 로그인&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;ID, 로그인 비밀번호);&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;basechildEntry.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;캐시 새로 고침(새 문자열[] {&quot;tokenGroups&quot;});&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;
&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;parentEntry = new DirectoryEntry(&quot;LDAP://&quot; + 도메인 서버 + &quot;/&quot; + AD GroupsDNT to Check, Login&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;ID, 로그인 비밀번호);&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;부모&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;SID = (byte[]) parentEntry.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;속성[&quot;개체&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;SID&quot;).값;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;옥텟&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;SID = ConvertToOctetString(상위 문자열)&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;SID, 거짓, 거짓);&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;
&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;각(기본 자식 항목의 ObjectGroupSid).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;속성[&quot;tokenGroups&quot;])&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;{&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;sid = (바이트[])&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;GroupSid;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;if (ConvertToOctetString(sid, false, false) == 옥텟&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;SID)&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;{&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;확인 = 참;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;브레이크;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;}&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;}&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;
&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;basechildEntry.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;폐기();&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;parentEntry.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;폐기();&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;
&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;반품수표;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;}&lt;/font&gt;&lt;/pre&gt;&lt;h3 papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용자가 AD 멤버 및 특정 AD 그룹 멤버에 있는지 확인하는 방법&lt;/font&gt;&lt;/h3&gt; 
&lt;pre&gt;&lt;code&gt;//This Reference and DLL must be attach in your project         
//using System.DirectoryServices.AccountManagement;        


         public bool IsAuthenticated(string username, string pwd)
        {

            using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, &quot;xxx.com&quot;))   // Your Domain Name
            {
                if (pc.ValidateCredentials(username, password))  //User and Password is OK for Active Directory 
                {
                    UserPrincipal user = UserPrincipal.FindByIdentity(pc, username);  //Get User Active Directory Information Details
                    if (user != null)
                    {

                        var groups = user.GetAuthorizationGroups();   // Get User Authorized Active Directory Groups
                        foreach (GroupPrincipal group in groups)
                        {
                            if (group.Name.Equals(&quot;SpecificActiveDirectoryGroupName&quot;))  //Check if user specific group members
                            { 
                                return true;
                            }

                        }
                    }
                }
            }
            return false;
        }
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에서 사용할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;NET 3.5+&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;// using System.DirectoryServices.AccountManagement;
public static bool IsUserMemberOfGroup(string username, string group)
{
    using (var ctx = new PrincipalContext(ContextType.Domain))
    using (var usr = UserPrincipal.FindByIdentity(ctx, username))
        return usr.IsMemberOf(ctx, IdentityType.Name, group);
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이는 많은 답변과 유사하지만 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용자만 찾은 다음 이름만 사용하여 사용자가 그룹의 구성원인지 확인합니다(사용자/그룹에 대한 그룹 또는 반복을 찾을 필요 없음).&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;Dispose&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 체사(으)로 사용)&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;using&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 을&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;p papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/2188954/&lt;a href=&quot;https://stackoverflow.com/questions/2188954/see-if-user-is-part-of-active-directory-group-in-c-sharp-asp-net&quot; target=&quot;_blank&quot; papago-id=&quot;25-1&quot;&gt;see-if-user-is-part-of-active-directory-group-in-c-sharp-asp-net&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/652</guid>
      <comments>https://firstcheck.tistory.com/652#entry652comment</comments>
      <pubDate>Tue, 1 Aug 2023 21:06:44 +0900</pubDate>
    </item>
    <item>
      <title>각각 고유한 @Controller가 있는 여러 DispatcherServlet을 사용하는 스프링 부팅</title>
      <link>https://firstcheck.tistory.com/651</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;각각 고유한 @Controller가 있는 여러 DispatcherServlet을 사용하는 스프링 부팅&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기본적으로 저는 제 지원서를 두 부분으로 나누고 싶습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;각 부품에는 자체 보안 기능이 있으며,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@Controller&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@Services&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;두 부분에서 모두 액세스할 수 있어야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서 저는 2개를 받아야겠다고 생각했습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;DispatcherServlet&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;원 리스닝 투 리스닝&lt;/font&gt;&lt;/font&gt;&lt;code&gt;/admin/*&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 다른 모든 것을 듣는 두 번째 (&lt;/font&gt;&lt;/font&gt;&lt;code&gt;/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;. 그것들은 각각 그들만의 것을 가질 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;AnnotationConfigWebApplicationContext&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서 나는 그것을 위해 별도의 구성 요소 스캔을 할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@Controller&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;s.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 스프링 부츠는 하나를 제공하기 때문입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;DispatcherServlet&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에 귀 기울이는.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;처음부터 두 번째를 추가할 수 있다고 생각했습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@Configuration
public class MyConfig {
    @Bean(name=&quot;myDS&quot;)
    public DispatcherServlet myDS(ApplicationContext applicationContext) {
        AnnotationConfigWebApplicationContext webContext = new AnnotationConfigWebApplicationContext();
        webContext.setParent(applicationContext);
        webContext.register(MyConfig2.class);
        // webContext.refresh();
        return new DispatcherServlet(webContext);
    }

    @Bean
    public ServletRegistrationBean mySRB(@Qualifier(&quot;myDS&quot;) DispatcherServlet dispatcherServlet) {
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(dispatcherServlet);
        servletRegistrationBean.addUrlMappings(&quot;/admin/*&quot;);
        servletRegistrationBean.setName(&quot;adminServlet&quot;);
        return servletRegistrationBean;
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그&lt;/font&gt;&lt;/font&gt;&lt;code&gt;MyConfig2&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;클래스, 오직 has만 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@Configuration&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@ComponentScan&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;동일한 패키지 내에는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@Controller&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;애플리케이션을 시작할 때, 나는 두 번째 서블릿 매핑이 등록되는 것을 볼 수 있지만,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@Controller&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아닙니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 이제 모든 데이터에 &lt;strong papago-id=&quot;19-1&quot;&gt;액세스할&lt;/strong&gt; 수 있습니다.&lt;/font&gt;&lt;/font&gt; &lt;code&gt;@Controllers&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부터&lt;/font&gt;&lt;/font&gt;&lt;code&gt;/&lt;/code&gt; &lt;font papago-translate=&quot;splited&quot;&gt;&lt;strong papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt; &lt;code&gt;/admin&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떻게 하면 이 일을 해낼 수 있을까요?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떻게든 작동이 됐어요!&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음은 내 패키지 레이아웃:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;test.foo.
         FooConfig.java
         FooController.java
test.bar.
         BarConfig.java
         BarController.java
test.app.
         Application.java
         MyService.java
src/main/resources/application.properties
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어플.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;java:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@SpringBootApplication(exclude=DispatcherServletAutoConfiguration.class)
public class Application {
    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }
    @Bean
    public ServletRegistrationBean foo() {
        DispatcherServlet dispatcherServlet = new DispatcherServlet();   
        AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext();
        applicationContext.register(FooConfig.class);
        dispatcherServlet.setApplicationContext(applicationContext);
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(dispatcherServlet, &quot;/foo/*&quot;);
        servletRegistrationBean.setName(&quot;foo&quot;);
        return servletRegistrationBean;
    }
    @Bean
    public ServletRegistrationBean bar() {
        DispatcherServlet dispatcherServlet = new DispatcherServlet();
        AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext();
        applicationContext.register(BarConfig.class);
        dispatcherServlet.setApplicationContext(applicationContext);
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(dispatcherServlet, &quot;/bar/*&quot;);
        servletRegistrationBean.setName(&quot;bar&quot;);
        return servletRegistrationBean;
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그&lt;/font&gt;&lt;/font&gt;&lt;code&gt;exclude&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Spring Boot가 자체적으로 생성하는 것을 방지합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;DispatcherServlet&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;와 함께&lt;/font&gt;&lt;/font&gt;&lt;code&gt;/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;지도 제작&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;매핑을 원하거나 고유한 매핑을 정의할 경우 해당 선을 제거할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;추가할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;servletRegistrationBean.setLoadOnStartup(1)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;27&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;응용프로그램을 시작할 때 서블릿을 초기화하려는 경우.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇지 않으면 해당 서블릿에 대한 첫 번째 요청을 기다립니다.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;설정하는 것이 중요합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;servletRegistrationBean.setName(...)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;29&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇지 않으면 서블릿이 서로를 무시할 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;35&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;FooConfig.java 및 BarConfig.java:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@Configuration @ComponentScan @EnableWebMvc
public class FooConfig { }
&lt;/code&gt;&lt;/pre&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;@EnableWebMvc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;30&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;구성 요소 검색을 활성화합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것 없이는, 그것은 찾을 수 없습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@Controller&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;31&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;학급.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;38&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;38-0&quot;&gt;컨트롤러&lt;/strong&gt; 및 &lt;strong papago-id=&quot;38-0&quot;&gt;서비스&lt;/strong&gt; 코드는 중요하지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 알아야 해요, 만약 당신이 만약에&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@RequestMapping(&quot;/foo&quot;)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;33&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;안에서.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;FooController&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;34&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;요청은 다음과 같아야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;GET /foo/foo&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;35&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;왜냐하면 서블릿의 URL 매핑은&lt;/font&gt;&lt;/font&gt;&lt;code&gt;/foo/*&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;36&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL을 호출할 수 없습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;GET /foo&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;37&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;왜냐하면 서블릿 URL 매핑은 필요하기 때문입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;38&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그 경로의 끝에 (다른 뜻으로는:&lt;/font&gt;&lt;/font&gt;&lt;code&gt;GET /foo&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;39&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의 서블릿을 찾습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;40&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;매핑!), 하지만.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@RequestMapping(&quot;&quot;)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;41&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;를 통해 호출해야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;GET /foo/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;42&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 물론 사용할 수 없었습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;/foo&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;43&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;/foo*&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;44&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;서블릿 매핑으로(또는 그것에 대한 올바른 설정을 찾지 못했습니다)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;51&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;범위&lt;strong papago-id=&quot;51-0&quot;&gt;:&lt;/strong&gt; 컨트롤러가 서로를 볼 수 &lt;strong papago-id=&quot;51-4&quot;&gt;없지만&lt;/strong&gt; 서로를 볼 수는 &lt;strong papago-id=&quot;51-0&quot;&gt;없습니다&lt;/strong&gt;.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@Autowired&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;46&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그들은 서로에게 있어요.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 서비스는 할 수 없습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@Autowired&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;53&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;임의의 컨트롤러.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;53-1&quot;&gt;하지만&lt;/strong&gt; 컨트롤러는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@Autowired&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;48&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;군 복무&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;55&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;고전적인 부모 자식 컨텍스트 계층이지만,&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;49&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;유일한 &quot;나쁜&quot; 것은 우리가 필요로 하는 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@EnableMvcConfig&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;50&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;컨텍스트 내에서 Spring boot에서 자동으로 구성된 설탕을 가져오지 마십시오.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;상위 컨텍스트가 자동 구성됩니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;는 나는데이를다니넣습었개몇에 를 몇 개.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;application.properties&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;51&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 안에서 질문을 했습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;MyService&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;52&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;은 의불진려해로 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;FooController&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;53&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 완벽하게 작동했습니다!&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;:)&lt;/code&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;61&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것이 몇몇 사람들에게 도움이 되기를 바랍니다!&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;62&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/30670327/&lt;a href=&quot;https://stackoverflow.com/questions/30670327/spring-boot-with-multiple-dispatcherservlet-each-having-their-own-controllers&quot; target=&quot;_blank&quot; papago-id=&quot;62-1&quot;&gt;spring-boot-with-multiple-dispatcherservlet-each-having-their-own-controllers&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/651</guid>
      <comments>https://firstcheck.tistory.com/651#entry651comment</comments>
      <pubDate>Thu, 22 Jun 2023 23:59:35 +0900</pubDate>
    </item>
    <item>
      <title>컨테이너 보기를 프로그래밍 방식으로 추가하는 방법</title>
      <link>https://firstcheck.tistory.com/650</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;컨테이너 보기를 프로그래밍 방식으로 추가하는 방법&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;컨테이너 보기는 인터페이스 편집기를 통해 스토리보드에 쉽게 추가할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;추가할 경우, 컨테이너 뷰는 자리 표시자 뷰, 포함 세그먼트 및 (하위) 뷰 컨트롤러에 대한 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 Container View를 프로그래밍 방식으로 추가하는 방법을 찾을 수 없습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;사실, 나는 심지어 이름이 붙은 수업을 찾을 수 없습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;UIContainerView&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그 정도.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Container View 클래스의 이름은 확실히 좋은 시작입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;segue를 포함한 완전한 가이드를 해주시면 감사하겠습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;sub papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;View 컨트롤러 프로그래밍 가이드는 알고 있지만 인터페이스 작성기가 Container Viewer에 대해 수행하는 방식과 동일하다고 생각하지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어, 제약 조건이 적절하게 설정되면 (하위) 보기는 컨테이너 보기의 크기 변경에 따라 조정됩니다.&lt;/font&gt;&lt;/sub&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스토리보드 &quot;컨테이너 뷰&quot;는 표준일 뿐입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;UIView&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;물건.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;특별한 &quot;컨테이너 뷰&quot; 유형은 없습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;실제로 보기 계층을 보면 &quot;컨테이너 보기&quot;가 표준임을 알 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;UIView&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/Sejof.png&quot; rel=&quot;noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/Sejof.png&quot; alt=&quot;container view&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;프로그래밍 방식으로 이를 달성하려면 &quot;view controller containment&quot;를 사용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;호출하여 하위 보기 컨트롤러 인스턴스화&lt;/font&gt;&lt;/font&gt;&lt;code&gt;instantiateViewController(withIdentifier:)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스토리보드 객체에 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;불러&lt;/font&gt;&lt;/font&gt;&lt;code&gt;addChild&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;상위 보기 컨트롤러에 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;보기 컨트롤러 추가&lt;/font&gt;&lt;/font&gt;&lt;code&gt;view&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용자의 보기 계층으로&lt;/font&gt;&lt;/font&gt;&lt;code&gt;addSubview&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(및 설정)&lt;/font&gt;&lt;/font&gt;&lt;code&gt;frame&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는 해당되는 제약 조건).&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;콜 더&lt;/font&gt;&lt;/font&gt;&lt;code&gt;didMove(toParent:)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;참조를 상위 뷰 컨트롤러로 전달하는 하위 뷰 컨트롤러의 메서드입니다.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;20-3&quot;&gt;View 컨트롤러 프로그래밍&lt;/em&gt; 가이드의 &lt;a href=&quot;https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/ImplementingaContainerViewController.html#//apple_ref/doc/uid/TP40007457-CH11-SW1&quot; papago-id=&quot;20-1&quot; rel=&quot;noreferrer&quot;&gt;컨테이너&lt;/a&gt; 뷰 &lt;a href=&quot;https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/ImplementingaContainerViewController.html#//apple_ref/doc/uid/TP40007457-CH11-SW1&quot; papago-id=&quot;20-1&quot; rel=&quot;noreferrer&quot;&gt;컨트롤러 구현&lt;/a&gt; 및 &lt;em papago-id=&quot;20-5&quot;&gt;&lt;a href=&quot;https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIViewController_Class&quot; rel=&quot;noreferrer&quot; papago-id=&quot;20-5-0&quot;&gt;UIView 컨트롤러 클래스&lt;/a&gt; &lt;/em&gt;참조의 &quot;컨테이너 뷰 컨트롤러 구현&quot; 섹션을 &lt;a href=&quot;https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/ImplementingaContainerViewController.html#//apple_ref/doc/uid/TP40007457-CH11-SW1&quot; papago-id=&quot;20-1&quot; rel=&quot;noreferrer&quot;&gt;참조&lt;/a&gt;하십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어 Swift 4.2에서는 다음과 같이 보일 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;override func viewDidLoad() {
    super.viewDidLoad()

    let controller = storyboard!.instantiateViewController(withIdentifier: &quot;Second&quot;)
    addChild(controller)
    controller.view.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(controller.view)

    NSLayoutConstraint.activate([
        controller.view.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 10),
        controller.view.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -10),
        controller.view.topAnchor.constraint(equalTo: view.topAnchor, constant: 10),
        controller.view.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -10)
    ])

    controller.didMove(toParent: self)
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위에서는 실제로 &quot;컨테이너 보기&quot;를 계층에 추가하지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 작업을 수행하려면 다음과 같은 작업을 수행합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;override func viewDidLoad() {
    super.viewDidLoad()

    // add container

    let containerView = UIView()
    containerView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(containerView)
    NSLayoutConstraint.activate([
        containerView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 10),
        containerView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -10),
        containerView.topAnchor.constraint(equalTo: view.topAnchor, constant: 10),
        containerView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -10),
    ])

    // add child view controller view to container

    let controller = storyboard!.instantiateViewController(withIdentifier: &quot;Second&quot;)
    addChild(controller)
    controller.view.translatesAutoresizingMaskIntoConstraints = false
    containerView.addSubview(controller.view)

    NSLayoutConstraint.activate([
        controller.view.leadingAnchor.constraint(equalTo: containerView.leadingAnchor),
        controller.view.trailingAnchor.constraint(equalTo: containerView.trailingAnchor),
        controller.view.topAnchor.constraint(equalTo: containerView.topAnchor),
        controller.view.bottomAnchor.constraint(equalTo: containerView.bottomAnchor)
    ])

    controller.didMove(toParent: self)
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 후자의 패턴은 서로 다른 하위 뷰 컨트롤러 간에 전환될 때마다 한 하위 뷰가 동일한 위치에 있고 이전 하위 뷰(즉, 배치에 대한 모든 고유 제약 조건이 컨테이너 뷰에 의해 지정됨)를 확인하려는 경우 매우 유용합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이러한 제약 조건을 매번 재구축할 필요가 없습니다.).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 단순 뷰 제한을 수행하는 경우에는 별도의 컨테이너 뷰가 필요하지 않습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에서 저는 위의예에서, 설정니다합나는다니설합을 설정하고 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;translatesAutosizingMaskIntoConstraints&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;false&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스스로 제약 조건을 정의합니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 분명히 떠날 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;translatesAutosizingMaskIntoConstraints&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;~하듯이&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;true&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;둘 다 설정합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;frame&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;원하는 경우 추가할 뷰의 경우 를 참조하십시오.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;p papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/revisions/37370856/9&quot; papago-id=&quot;30-1&quot;&gt;Swift&lt;/a&gt; 3 및&lt;a href=&quot;https://stackoverflow.com/revisions/37370856/7&quot; papago-id=&quot;30-3&quot;&gt; Swift&lt;/a&gt; 2 &lt;a href=&quot;https://stackoverflow.com/revisions/37370856/9&quot; papago-id=&quot;30-1&quot;&gt;버전&lt;/a&gt;은 이 답변의 이전 개정판을 참조하십시오.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;@Rob의 Swift 3에서의 대답:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;    // add container

    let containerView = UIView()
    containerView.translatesAutoresizingMaskIntoConstraints = false
    view.addSubview(containerView)
    NSLayoutConstraint.activate([
        containerView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 10),
        containerView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -10),
        containerView.topAnchor.constraint(equalTo: view.topAnchor, constant: 10),
        containerView.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -10),
        ])

    // add child view controller view to container

    let controller = storyboard!.instantiateViewController(withIdentifier: &quot;Second&quot;)
    addChildViewController(controller)
    controller.view.translatesAutoresizingMaskIntoConstraints = false
    containerView.addSubview(controller.view)

    NSLayoutConstraint.activate([
        controller.view.leadingAnchor.constraint(equalTo: containerView.leadingAnchor),
        controller.view.trailingAnchor.constraint(equalTo: containerView.trailingAnchor),
        controller.view.topAnchor.constraint(equalTo: containerView.topAnchor),
        controller.view.bottomAnchor.constraint(equalTo: containerView.bottomAnchor)
        ])

    controller.didMove(toParentViewController: self)
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기 swift 5의 제 코드가 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;class ViewEmbedder {

class func embed(
    parent:UIViewController,
    container:UIView,
    child:UIViewController,
    previous:UIViewController?){

    if let previous = previous {
        removeFromParent(vc: previous)
    }
    child.willMove(toParent: parent)
    parent.addChild(child)
    container.addSubview(child.view)
    child.didMove(toParent: parent)
    let w = container.frame.size.width;
    let h = container.frame.size.height;
    child.view.frame = CGRect(x: 0, y: 0, width: w, height: h)
}

class func removeFromParent(vc:UIViewController){
    vc.willMove(toParent: nil)
    vc.view.removeFromSuperview()
    vc.removeFromParent()
}

class func embed(withIdentifier id:String, parent:UIViewController, container:UIView, completion:((UIViewController)-&amp;gt;Void)? = nil){
    let vc = parent.storyboard!.instantiateViewController(withIdentifier: id)
    embed(
        parent: parent,
        container: container,
        child: vc,
        previous: parent.children.first
    )
    completion?(vc)
}

}
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2 id=&quot;usage&quot; papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용.&lt;/font&gt;&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;@IBOutlet weak var container:UIView!

ViewEmbedder.embed(
    withIdentifier: &quot;MyVC&quot;, // Storyboard ID
    parent: self,
    container: self.container){ vc in
    // do things when embed complete
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;34&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다른 임베디드 함수는 비스토리보드 뷰 컨트롤러와 함께 사용합니다.&lt;/font&gt;&lt;/p&gt;&lt;h2 papago-id=&quot;35&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;세부 사항&lt;/font&gt;&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Xcode 10.2(10E125), Swift 5&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2 papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;해결책&lt;/font&gt;&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;import UIKit

class WeakObject {
    weak var object: AnyObject?
    init(object: AnyObject) { self.object = object}
}

class EmbedController {

    private weak var rootViewController: UIViewController?
    private var controllers = [WeakObject]()
    init (rootViewController: UIViewController) { self.rootViewController = rootViewController }

    func append(viewController: UIViewController) {
        guard let rootViewController = rootViewController else { return }
        controllers.append(WeakObject(object: viewController))
        rootViewController.addChild(viewController)
        rootViewController.view.addSubview(viewController.view)
    }

    deinit {
        if rootViewController == nil || controllers.isEmpty { return }
        for controller in controllers {
            if let controller = controller.object {
                controller.view.removeFromSuperview()
                controller.removeFromParent()
            }
        }
        controllers.removeAll()
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2 papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용.&lt;/font&gt;&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;class SampleViewController: UIViewController {
    private var embedController: EmbedController?

    override func viewDidLoad() {
        super.viewDidLoad()
        embedController = EmbedController(rootViewController: self)

        let newViewController = ViewControllerWithButton()
        newViewController.view.frame = CGRect(origin: CGPoint(x: 50, y: 150), size: CGSize(width: 200, height: 80))
        newViewController.view.backgroundColor = .lightGray
        embedController?.append(viewController: newViewController)
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2 papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;전체샘플&lt;/font&gt;&lt;/h2&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;뷰 컨트롤러&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;pre&gt;&lt;code&gt;import UIKit

class ViewController: UIViewController {

    private var embedController: EmbedController?
    private var button: UIButton?
    private let addEmbedButtonTitle = &quot;Add embed&quot;

    override func viewDidLoad() {
        super.viewDidLoad()

        button = UIButton(frame: CGRect(x: 50, y: 50, width: 150, height: 20))
        button?.setTitle(addEmbedButtonTitle, for: .normal)
        button?.setTitleColor(.black, for: .normal)
        button?.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
        view.addSubview(button!)

        print(&quot;viewDidLoad&quot;)
        printChildViewControllesInfo()
    }

    func addChildViewControllers() {

        var newViewController = ViewControllerWithButton()
        newViewController.view.frame = CGRect(origin: CGPoint(x: 50, y: 150), size: CGSize(width: 200, height: 80))
        newViewController.view.backgroundColor = .lightGray
        embedController?.append(viewController: newViewController)

        newViewController = ViewControllerWithButton()
        newViewController.view.frame = CGRect(origin: CGPoint(x: 50, y: 250), size: CGSize(width: 200, height: 80))
        newViewController.view.backgroundColor = .blue
        embedController?.append(viewController: newViewController)

        print(&quot;\nChildViewControllers added&quot;)
        printChildViewControllesInfo()
    }

    @objc func buttonTapped() {

        if embedController == nil {
            embedController = EmbedController(rootViewController: self)
            button?.setTitle(&quot;Remove embed&quot;, for: .normal)
            addChildViewControllers()
        } else {
            embedController = nil
            print(&quot;\nChildViewControllers removed&quot;)
            printChildViewControllesInfo()
            button?.setTitle(addEmbedButtonTitle, for: .normal)
        }
    }

    func printChildViewControllesInfo() {
        print(&quot;view.subviews.count: \(view.subviews.count)&quot;)
        print(&quot;childViewControllers.count: \(childViewControllers.count)&quot;)
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;버튼이 있는 컨트롤러 보기&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;pre&gt;&lt;code&gt;import UIKit

class ViewControllerWithButton:UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    private func addButon() {
        let buttonWidth: CGFloat = 150
        let buttonHeight: CGFloat = 20
        let frame = CGRect(x: (view.frame.width-buttonWidth)/2, y: (view.frame.height-buttonHeight)/2, width: buttonWidth, height: buttonHeight)
        let button = UIButton(frame: frame)
        button.setTitle(&quot;Button&quot;, for: .normal)
        button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
        view.addSubview(button)
    }

    override func viewWillLayoutSubviews() {
        addButon()
    }

    @objc func buttonTapped() {
        print(&quot;Button tapped in \(self)&quot;)
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2 papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;결과.&lt;/font&gt;&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/iaM95.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/iaM95.png&quot; alt=&quot;enter image description here&quot;&gt;&lt;/a&gt; &lt;a href=&quot;https://i.stack.imgur.com/m6Kah.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/m6Kah.png&quot; alt=&quot;enter image description here&quot;&gt;&lt;/a&gt; &lt;a href=&quot;https://i.stack.imgur.com/5KDdY.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/5KDdY.png&quot; alt=&quot;enter image description here&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;p papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/37370801/&lt;a href=&quot;https://stackoverflow.com/questions/37370801/how-to-add-a-container-view-programmatically&quot; target=&quot;_blank&quot; papago-id=&quot;43-1&quot;&gt;how-to-add-a-container-view-programmatically&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/650</guid>
      <comments>https://firstcheck.tistory.com/650#entry650comment</comments>
      <pubDate>Thu, 22 Jun 2023 23:57:09 +0900</pubDate>
    </item>
    <item>
      <title>스프링 부트 상태 비저장 필터가 두 번 호출되는 이유는 무엇입니까?</title>
      <link>https://firstcheck.tistory.com/649</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스프링 부트 상태 비저장 필터가 두 번 호출되는 이유는 무엇입니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Spring Boot을 이용하여 개발한 rest api에 stateless 토큰 기반 인증을 구현하려고 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 개념은 클라이언트가 모든 요청이 포함된 JWT 토큰을 포함하고 필터가 요청에서 이를 추출하여 토큰의 내용을 기반으로 관련 인증 개체와 함께 SecurityContext를 설정한다는 것입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 요청은 정상적으로 라우팅되고 매핑된 메서드에서 @PreAuthorize를 사용하여 보안됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내 보안 구성은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-java prettyprint-override&quot;&gt;&lt;code&gt;@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired
private JWTTokenAuthenticationService authenticationService;

@Override
protected void configure(HttpSecurity http) throws Exception
{
    http
        .csrf().disable()
        .headers().addHeaderWriter(new XFrameOptionsHeaderWriter(XFrameOptionsMode.SAMEORIGIN))
        .and()
        .authorizeRequests()
            .antMatchers(&quot;/auth/**&quot;).permitAll()
            .antMatchers(&quot;/api/**&quot;).authenticated()
            .and()
        .addFilterBefore(new StatelessAuthenticationFilter(authenticationService), UsernamePasswordAuthenticationFilter.class);
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;GenericFilterBean을 확장하는 상태 비저장 필터를 사용하여 다음과 같이 정의합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-java prettyprint-override&quot;&gt;&lt;code&gt;public class StatelessAuthenticationFilter extends GenericFilterBean {

    private static Logger logger = Logger.getLogger(StatelessAuthenticationFilter.class);

    private JWTTokenAuthenticationService authenticationservice;

    public StatelessAuthenticationFilter(JWTTokenAuthenticationService authenticationService)
    {
        this.authenticationservice = authenticationService;
    }

    @Override
    public void doFilter(   ServletRequest request,
                            ServletResponse response,
                            FilterChain chain) throws IOException, ServletException {

        HttpServletRequest httpRequest = (HttpServletRequest) request;
        Authentication authentication = authenticationservice.getAuthentication(httpRequest);
        SecurityContextHolder.getContext().setAuthentication(authentication);

        logger.info(&quot;===== Security Context before request =====&quot;);
        logger.info(&quot;Request for: &quot; + httpRequest.getRequestURI());
        logger.info(SecurityContextHolder.getContext().getAuthentication());
        logger.info(&quot;===========================================&quot;);

        chain.doFilter(request, response);

        SecurityContextHolder.getContext().setAuthentication(null);
        logger.info(&quot;===== Security Context after request =====&quot;);
        logger.info(&quot;Request for: &quot; + httpRequest.getRequestURI());
         logger.info(SecurityContextHolder.getContext().getAuthentication());
        logger.info(&quot;===========================================&quot;);
    }

}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;엔드포인트는 다음과 같이 정의됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-java prettyprint-override&quot;&gt;&lt;code&gt;@PreAuthorize(&quot;hasAuthority('user')&quot;)
@RequestMapping (   value=&quot;/api/attachments/{attachmentId}/{fileName:.+}&quot;,
                    method = RequestMethod.GET)
public ResponseEntity&amp;lt;byte[]&amp;gt; getAttachedDocumentEndpoint(@PathVariable String attachmentId, @PathVariable String fileName)
{
    logger.info(&quot;GET called for /attachments/&quot; + attachmentId + &quot;/&quot; + fileName);

    // do something to get the file, and return ResponseEntity&amp;lt;byte[]&amp;gt; object
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;토큰을 포함하여 /api/attachments/some attachments/some filename에서 GET을 실행하면 필터가 토큰과 함께 한 번, 없는 한 번 두 번 호출되는 것을 알 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 요청에 매핑된 나머지 컨트롤러는 한 번만 호출됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;[INFO] [06-04-2015 12:26:44,465] [JWTTokenAuthenticationService] getAuthentication - Getting authentication based on token supplied in HTTP Header
[INFO] [06-04-2015 12:26:44,473] [StatelessAuthenticationFilter] doFilter - ===== Security Context before request =====
[INFO] [06-04-2015 12:26:44,473] [StatelessAuthenticationFilter] doFilter - Request for: /api/attachments/1674b08b6bbd54a6efaff4a780001a9e/jpg.png
[INFO] [06-04-2015 12:26:44,474] [StatelessAuthenticationFilter] doFilter - Name:iser, Principal:user, isAuthenticated:true, grantedAuthorites:[user]
[INFO] [06-04-2015 12:26:44,474] [StatelessAuthenticationFilter] doFilter - ===========================================
[INFO] [06-04-2015 12:26:44,476] [AttachmentRESTController] getAttachedDocumentEndpoint - GET called for /api/attachments/1674b08b6bbd54a6efaff4a780001a9e/jpg.png
[INFO] [06-04-2015 12:26:44,477] [AttachmentDBController] getAttachment - getAttachment method called with attachmentId:1674b08b6bbd54a6efaff4a780001a9e , and fileName:jpg.png
[INFO] [06-04-2015 12:26:44,483] [StatelessAuthenticationFilter] doFilter - ===== Security Context after request =====
[INFO] [06-04-2015 12:26:44,484] [StatelessAuthenticationFilter] doFilter - Request for: /api/attachments/1674b08b6bbd54a6efaff4a780001a9e/jpg.png
[INFO] [06-04-2015 12:26:44,484] [StatelessAuthenticationFilter] doFilter - 
[INFO] [06-04-2015 12:26:44,484] [StatelessAuthenticationFilter] doFilter - ===========================================
[INFO] [06-04-2015 12:26:44,507] [JWTTokenAuthenticationService] getAuthentication - No token supplied in HTTP Header
[INFO] [06-04-2015 12:26:44,507] [StatelessAuthenticationFilter] doFilter - ===== Security Context before request =====
[INFO] [06-04-2015 12:26:44,507] [StatelessAuthenticationFilter] doFilter - Request for: /api/attachments/1674b08b6bbd54a6efaff4a780001a9e/jpg.png
[INFO] [06-04-2015 12:26:44,507] [StatelessAuthenticationFilter] doFilter - 
[INFO] [06-04-2015 12:26:44,508] [StatelessAuthenticationFilter] doFilter - ===========================================
[INFO] [06-04-2015 12:26:44,508] [StatelessAuthenticationFilter] doFilter - ===== Security Context after request =====
[INFO] [06-04-2015 12:26:44,508] [StatelessAuthenticationFilter] doFilter - Request for: /api/attachments/1674b08b6bbd54a6efaff4a780001a9e/jpg.png
[INFO] [06-04-2015 12:26:44,508] [StatelessAuthenticationFilter] doFilter - 
[INFO] [06-04-2015 12:26:44,508] [StatelessAuthenticationFilter] doFilter - ===========================================
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이게 무슨 일입니까?&lt;/font&gt;&lt;/p&gt; 
&lt;h2 papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;편집:&lt;/font&gt;&lt;/h2&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;처음에 생각했던 것보다 훨씬 더 이상합니다. 단순한 메시지만 반환하는 단순한 엔드포인트를 구현하면 예상되는 동작이 표시됩니다. 위와 같이 데이터를 ResponseEntity로 반환하려고 할 때만 이러한 문제가 발생하는 것 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;끝점:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@PreAuthorize(&quot;hasAuthority('user')&quot;)
@RequestMapping(&quot;/api/userHelloWorld&quot;)
public String userHelloWorld()
{
    return &quot;Hello Secure User World&quot;;
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;필터링할 단일 호출을 표시하는 출력(추가 디버그 사용):&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;[INFO] [06-04-2015 19:43:25,831] [JWTTokenAuthenticationService] getAuthentication - Getting authentication based on token supplied in HTTP Header
[INFO] [06-04-2015 19:43:25,844] [StatelessAuthenticationFilter] doFilterInternal - ===== Security Context before request =====
[INFO] [06-04-2015 19:43:25,844] [StatelessAuthenticationFilter] doFilterInternal - Request for: /api/userHelloWorld
[INFO] [06-04-2015 19:43:25,844] [StatelessAuthenticationFilter] doFilterInternal - Response = null 200
[INFO] [06-04-2015 19:43:25,844] [StatelessAuthenticationFilter] doFilterInternal - Name:user, Principal:user, isAuthenticated:true, grantedAuthorites:[user]
[INFO] [06-04-2015 19:43:25,845] [StatelessAuthenticationFilter] doFilterInternal - ===========================================
[DEBUG] [06-04-2015 19:43:25,845] [DispatcherServlet] doService - DispatcherServlet with name 'dispatcherServlet' processing GET request for [/api/userHelloWorld]
[DEBUG] [06-04-2015 19:43:25,847] [AbstractHandlerMethodMapping] getHandlerInternal - Looking up handler method for path /api/userHelloWorld
[DEBUG] [06-04-2015 19:43:25,848] [AbstractHandlerMethodMapping] getHandlerInternal - Returning handler method [public java.lang.String RESTController.userHelloWorld()]
[DEBUG] [06-04-2015 19:43:25,849] [DispatcherServlet] doDispatch - Last-Modified value for [/api/userHelloWorld] is: -1
[DEBUG] [06-04-2015 19:43:25,851] [AbstractMessageConverterMethodProcessor] writeWithMessageConverters - Written [Hello Secure User World] as &quot;text/plain;charset=UTF-8&quot; using [org.springframework.http.converter.StringHttpMessageConverter@3eaf6fe7]
[DEBUG] [06-04-2015 19:43:25,852] [DispatcherServlet] processDispatchResult - Null ModelAndView returned to DispatcherServlet with name 'dispatcherServlet': assuming HandlerAdapter completed request handling
[DEBUG] [06-04-2015 19:43:25,852] [FrameworkServlet] processRequest - Successfully completed request
[INFO] [06-04-2015 19:43:25,852] [StatelessAuthenticationFilter] doFilterInternal - ===== Security Context after request =====
[INFO] [06-04-2015 19:43:25,853] [StatelessAuthenticationFilter] doFilterInternal - Request for: /api/userHelloWorld
[INFO] [06-04-2015 19:43:25,853] [StatelessAuthenticationFilter] doFilterInternal - Response = text/plain;charset=UTF-8 200
[INFO] [06-04-2015 19:43:25,853] [StatelessAuthenticationFilter] doFilterInternal - 
[INFO] [06-04-2015 19:43:25,853] [StatelessAuthenticationFilter] doFilterInternal - ===========================================
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;필터의 일부로 저에게는 여전히 블랙 매직이 있습니다(*). 하지만 저는 이것이 일반적인 문제라는 것을 알고 있으며, 스프링에는 다음과 같은 하위 클래스가 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;GenericFilterBean&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;특히 그것을 다루기 위해: 그냥 사용.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;OncePerRequestFilter&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기본 클래스 및 필터는 한 번만 호출해야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(*) 요청 발송자를 통해 요청이 여러 번 발송되어 발생할 수 있다고 읽었습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;좋아요 - 그래서 이것은 꽤 우스꽝스럽지만, 제가 요청을 호출하는 방식에 문제가 있는 것 같습니다(포스트맨 크롬 확장을 통해).&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;우체부가 2개의 요청을 발포한 것 같습니다 하나는 헤더가 있고 하나는 없습니다&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://github.com/a85/POSTMan-Chrome-Extension/issues/615&lt;a href=&quot;https://github.com/a85/POSTMan-Chrome-Extension/issues/615&quot; rel=&quot;noreferrer&quot; papago-id=&quot;16-1&quot;&gt; &lt;/a&gt;에서 이를 설명하는 공개 버그 보고서가 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;요청이 curl을 사용하여 호출된 경우 또는 브라우저에서 직접 호출된 경우에는 동작이 표시되지 않습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/30643064/&lt;a href=&quot;https://stackoverflow.com/questions/30643064/why-is-my-spring-boot-stateless-filter-being-called-twice&quot; target=&quot;_blank&quot; papago-id=&quot;18-1&quot;&gt;why-is-my-spring-boot-stateless-filter-being-called-twice&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/649</guid>
      <comments>https://firstcheck.tistory.com/649#entry649comment</comments>
      <pubDate>Thu, 22 Jun 2023 23:55:34 +0900</pubDate>
    </item>
    <item>
      <title>DisplayAttribute를 표시하려면 어떻게 해야 합니다.설명 특성 값?</title>
      <link>https://firstcheck.tistory.com/648</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;DisplayAttribute를 표시하려면 어떻게 해야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;설명 특성 값?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 속성을 가진 모델 클래스가 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;[Display(Name = &quot;Phone&quot;, Description=&quot;Hello World!&quot;)]
public string Phone1 { get; set; }
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;레이블을 표시하고 내 보기에 입력할 텍스트 상자를 렌더링하는 것은 매우 쉽습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@Html.LabelFor(model =&amp;gt; model.Organization.Phone1)
@Html.EditorFor(model =&amp;gt; model.Organization.Phone1)
@Html.ValidationMessageFor(model =&amp;gt; model.Organization.Phone1)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 설명 주석 속성(즉, &quot;Hello World!&quot;)의 값을 렌더링하려면 어떻게 해야 합니까?&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 결국 이런 도우미를 만나게 되었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;using System;
using System.Linq.Expressions;
using System.Web.Mvc;

public static class MvcHtmlHelpers
{
    public static MvcHtmlString DescriptionFor&amp;lt;TModel, TValue&amp;gt;(this HtmlHelper&amp;lt;TModel&amp;gt; self, Expression&amp;lt;Func&amp;lt;TModel, TValue&amp;gt;&amp;gt; expression)
    {
        var metadata = ModelMetadata.FromLambdaExpression(expression, self.ViewData);
        var description = metadata.Description;

        return MvcHtmlString.Create(string.Format(@&quot;&amp;lt;span&amp;gt;{0}&amp;lt;/span&amp;gt;&quot;, description));
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저를 올바른 방향으로 이끌어주신 분들께 감사드립니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;:)&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://weblogs.asp.net/raduenuca/archive/2011/05/01/asp-net-mvc-display-visual-hints-for-the-fields-in-your-form.aspx&quot; rel=&quot;noreferrer&quot; papago-id=&quot;6-1&quot;&gt;양식의 필드에 대한 시각적 힌트를 표시하는 방법&lt;/a&gt;에 대한 이 문서의 기술을 사용하여 다음을 통해 값에 액세스할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-cs prettyprint-override&quot;&gt;&lt;code&gt;@Html.TextBoxFor( 
        model =&amp;gt; model.Email , 
        new { title = ModelMetadata.FromLambdaExpression&amp;lt;RegisterModel , string&amp;gt;( 
            model =&amp;gt; model.Email , ViewData ).Description } )  
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ASP.NET MVC Core에서 새로운 태그 도우미를 사용할 수 있습니다. 그러면 HTML이...&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;HTML :)&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같이:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div class=&quot;form-group row&quot;&amp;gt;
    &amp;lt;label asp-for=&quot;Name&quot; class=&quot;col-md-2 form-control-label&quot;&amp;gt;&amp;lt;/label&amp;gt;
    &amp;lt;div class=&quot;col-md-10&quot;&amp;gt;
        &amp;lt;input asp-for=&quot;Name&quot; class=&quot;form-control&quot; aria-describedby=&quot;Name-description&quot; /&amp;gt;
        &amp;lt;span asp-description-for=&quot;Name&quot; class=&quot;form-text text-muted&quot; /&amp;gt;
        &amp;lt;span asp-validation-for=&quot;Name&quot; class=&quot;text-danger&quot; /&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;참고 1: 다음을 사용할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;aria-describedby&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;입력 요소에서 해당 ID의 속성은 스팬 요소에서 자동으로 생성됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;asp-description-for&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기여하다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 2:4에서 는 2: 부트에랩 4서는클입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;form-text&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;text-muted&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;help-block&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;블록 수준 도움말 텍스트에 대한 클래스입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 마법을 사용하려면 새 태그 도우미를 만들기만 하면 됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
using Microsoft.AspNetCore.Razor.TagHelpers;

/// &amp;lt;summary&amp;gt;
/// &amp;lt;see cref=&quot;ITagHelper&quot;/&amp;gt; implementation targeting &amp;amp;lt;span&amp;amp;gt; elements with an &amp;lt;c&amp;gt;asp-description-for&amp;lt;/c&amp;gt; attribute.
/// Adds an &amp;lt;c&amp;gt;id&amp;lt;/c&amp;gt; attribute and sets the content of the &amp;amp;lt;span&amp;amp;gt; with the Description property from the model data annotation DisplayAttribute.
/// &amp;lt;/summary&amp;gt;
[HtmlTargetElement(&quot;span&quot;, Attributes = DescriptionForAttributeName)]
public class SpanDescriptionTagHelper : TagHelper
{
    private const string DescriptionForAttributeName = &quot;asp-description-for&quot;;

    /// &amp;lt;summary&amp;gt;
    /// Creates a new &amp;lt;see cref=&quot;SpanDescriptionTagHelper&quot;/&amp;gt;.
    /// &amp;lt;/summary&amp;gt;
    /// &amp;lt;param name=&quot;generator&quot;&amp;gt;The &amp;lt;see cref=&quot;IHtmlGenerator&quot;/&amp;gt;.&amp;lt;/param&amp;gt;
    public SpanDescriptionTagHelper(IHtmlGenerator generator)
    {
        Generator = generator;
    }

    /// &amp;lt;inheritdoc /&amp;gt;
    public override int Order
    {
        get
        {
            return -1000;
        }
    }

    [HtmlAttributeNotBound]
    [ViewContext]
    public ViewContext ViewContext { get; set; }

    protected IHtmlGenerator Generator { get; }

    /// &amp;lt;summary&amp;gt;
    /// An expression to be evaluated against the current model.
    /// &amp;lt;/summary&amp;gt;
    [HtmlAttributeName(DescriptionForAttributeName)]
    public ModelExpression DescriptionFor { get; set; }

    /// &amp;lt;inheritdoc /&amp;gt;
    /// &amp;lt;remarks&amp;gt;Does nothing if &amp;lt;see cref=&quot;DescriptionFor&quot;/&amp;gt; is &amp;lt;c&amp;gt;null&amp;lt;/c&amp;gt;.&amp;lt;/remarks&amp;gt;
    public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
    {
        if (context == null)
        {
            throw new ArgumentNullException(nameof(context));
        }

        if (output == null)
        {
            throw new ArgumentNullException(nameof(output));
        }

        var metadata = DescriptionFor.Metadata;

        if (metadata == null)
        {
            throw new InvalidOperationException(string.Format(&quot;No provided metadata ({0})&quot;, DescriptionForAttributeName));
        }

        output.Attributes.SetAttribute(&quot;id&quot;, metadata.PropertyName + &quot;-description&quot;);

        if( !string.IsNullOrWhiteSpace( metadata.Description))
        {
            output.Content.SetContent(metadata.Description);
            output.TagMode = TagMode.StartTagAndEndTag;
        }
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 모든 레이저 뷰에서 태그 도우미를 사용할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;를 addTagHelper 명령어에 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Views/_ViewImports.cshtml&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파일 이름:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@addTagHelper &quot;*, YourAssemblyName&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 1: 1: 교체&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;YourAssemblyName&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;프로젝트의 어셈블리 이름을 사용합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;참고 2: 모든 태그 도우미를 위해 이 작업을 한 번만 수행하면 됩니다!&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;태그 도우미에 대한 자세한 내용은 &lt;a href=&quot;https://docs.asp.net/en/latest/mvc/views/tag-helpers/intro.html&quot; rel=&quot;noreferrer&quot; papago-id=&quot;22-1&quot;&gt;여기&lt;/a&gt;에서 확인하십시오. https://docs.asp.net/en/latest/mvc/views/tag-helpers/intro.html&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다 됐다! 더 이상 어쩔 수 없다!&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;새로운 태그 도우미와 함께 즐거운 시간 보내세요!&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/a/6578828/1300910&quot; papago-id=&quot;24-1&quot;&gt;수락&lt;/a&gt;된 답변을 사용하려고 했지만 ASP.NET Core 1/2(MVC 6)에 대해 작동하지 않았습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ModelMetadata.FromLambdaExpression&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 더이존재이않습니다었으로 되었습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ExpressionMetadataProvider&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(사용법도 약간 변경되었습니다.)&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ASP&lt;strong papago-id=&quot;27-1&quot;&gt;.NET Core&lt;/strong&gt; 1&lt;strong papago-id=&quot;27-1&quot;&gt;.1 &lt;/strong&gt;및 &lt;strong papago-id=&quot;27-1&quot;&gt;2&lt;/strong&gt;에서 사용할 수 있는 업데이트된 확장 방법입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;using System;
using System.Linq.Expressions;
using Microsoft.AspNetCore.Html;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Mvc.ViewFeatures.Internal;

public static class HtmlExtensions
{
    public static IHtmlContent DescriptionFor&amp;lt;TModel, TValue&amp;gt;(this IHtmlHelper&amp;lt;TModel&amp;gt; html, Expression&amp;lt;Func&amp;lt;TModel, TValue&amp;gt;&amp;gt; expression)
    {
        if (html == null) throw new ArgumentNullException(nameof(html));
        if (expression == null) throw new ArgumentNullException(nameof(expression));

        var modelExplorer = ExpressionMetadataProvider.FromLambdaExpression(expression, html.ViewData, html.MetadataProvider);
        if (modelExplorer == null) throw new InvalidOperationException($&quot;Failed to get model explorer for {ExpressionHelper.GetExpressionText(expression)}&quot;);

        return new HtmlString(modelExplorer.Metadata.Description);
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ASP.NET 코어 1&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;1의 작동하지만 네임스페이스 ASP.NET Core 1이 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;usings&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;using System;
using System.Linq.Expressions;
using Microsoft.AspNet.Html.Abstractions;
using Microsoft.AspNet.Mvc.ViewFeatures;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@Html.DescriptionFor(model =&amp;gt; model.Phone1)
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/a/6578828/1594274&quot; papago-id=&quot;32-1&quot;&gt;승인&lt;/a&gt;된 답변을 사용하는 방법을 궁금해하는 사람이 있을 경우&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;의 솔루션&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&amp;gt; 새&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt; &amp;gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;이름 &lt;font class=&quot;papago-parent&quot;&gt;지정&quot;&lt;/font&gt;1 -&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;탐에서색기추가미우도새지더폴정이름어&lt;/font&gt;들 &lt;font class=&quot;papago-parent&quot;&gt;&amp;gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;예를솔션루helpers&lt;font class=&quot;papago-parent&quot;&gt;&quot;&lt;/font&gt; &quot;Helperers&quot; &lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;를 들어, &quot;Helpers&quot;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;클래스를 합니다. 를 들어, &quot;을 지정합니다. 2 - &quot; 새클를추가다니합스래다추▁2니가▁-합새,를래▁2&quot;▁for▁examplecustom스클&quot;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 예를 들어 &quot;CustomHtmlHelpers&quot;로 이름 지정합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;3 - 코드를 붙여넣습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;public static class MvcHtmlHelpers
{
    public static string DescriptionFor&amp;lt;TModel, TValue&amp;gt;(this HtmlHelper&amp;lt;TModel&amp;gt; self, Expression&amp;lt;Func&amp;lt;TModel, TValue&amp;gt;&amp;gt; expression)
    {
        var metadata = ModelMetadata.FromLambdaExpression(expression, self.ViewData);
        var description = metadata.Description;

        return string.IsNullOrWhiteSpace(description) ? &quot;&quot; : description;
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 뷰 4- 모델또 모사용는경우하을델뷰는::&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;[Display(Name = &quot;User Name&quot;, Description = &quot;Enter your User Name&quot;)]
public string FullName { get; set; }
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;5 - 레이저 보기에서 @ 모델 뒤에 이 라인을 입력합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@using YOUR_PROJECT.Helpers 
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;같이 합니다. 6 - 설명은 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@Html.DescriptionFor(m =&amp;gt; m.FullName) 
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;7- 설명을 사용하여 입력 자리 표시자에 텍스트를 표시할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@Html.DisplayNameFor(m =&amp;gt; m.FullName)
@Html.TextBoxFor(m =&amp;gt; m.FullName, new { @class = &quot;form-control&quot;, placeholder = Html.DescriptionFor(m =&amp;gt; m.FullName) })
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;감사해요.&lt;/font&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;var attrib = (DisplayAttribute)Attribute.GetCustomAttribute(
             member, typeof(DisplayAttribute));
var desc = attrib == null ? &quot;&quot; : attrib.GetDescription()
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음은 ASP.NET Core 3.1 및 5의 업데이트된 버전입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;public static class HtmlExtensions
{
    public static IHtmlContent DescriptionFor&amp;lt;TModel, TValue&amp;gt;(this IHtmlHelper&amp;lt;TModel&amp;gt; html, Expression&amp;lt;Func&amp;lt;TModel, TValue&amp;gt;&amp;gt; expression)
    {
        if (html == null) throw new ArgumentNullException(nameof(html));
        if (expression == null) throw new ArgumentNullException(nameof(expression));

        var expressionProvider = html.ViewContext?.HttpContext?.RequestServices?.GetService&amp;lt;ModelExpressionProvider&amp;gt;()
            ?? new ModelExpressionProvider(html.MetadataProvider);
        var modelExpression = expressionProvider.CreateModelExpression(html.ViewData, expression);

        return new HtmlString(modelExpression.Metadata.Description);
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;우리는 경유해야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ModelExpressionProvider&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이제는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ExpressionMetadataProvider&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내부로 표시됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;ModelExpressionProvider.CreateModelExpression()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;호출들&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ExpressionMetadataProvider.FromLambdaExpression()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어쨌든 내부적으로는:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://github.com/aspnet/Mvc/blob/04ce6cae44fb0cb11470c21769d41e3f8088e8aa/src/Microsoft.AspNetCore.Mvc.ViewFeatures/ModelExpressionProvider.cs#L42&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;47&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://github.com/aspnet/Mvc/blob/04ce6cae44fb0cb11470c21769d41e3f8088e8aa/src/Microsoft.AspNetCore.Mvc.ViewFeatures/ModelExpressionProvider.cs#L42&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;@ViewData.ModelMetadata.Properties
   .Where(m =&amp;gt; m.PropertyName == &quot;Phone1&quot;).FirstOrDefault().Description
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;48&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서, 만약 당신이 부트스트랩을 사용한다면, 다음과 같은 것.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div class=&quot;form-group col-sm-6&quot;&amp;gt;
   @Html.LabelFor(m =&amp;gt; m.Organization.Phone1)
   @Html.EditorFor(m =&amp;gt; m.Organization.Phone1)
   &amp;lt;p class=&quot;help-block&quot;&amp;gt;
      @ViewData.ModelMetadata.Properties
         .Where(m =&amp;gt; m.PropertyName == &quot;DayCount&quot;).FirstOrDefault().Description
   &amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;49&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;모델에 반영되는 사용자 지정 도우미를 작성하여 Description 특성 값을 제공해야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;50&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;...양식 레이블에 도구 설명으로 설명을 추가하려면 다음과 같은 태그 도우미를 추가합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;using System;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
using Microsoft.AspNetCore.Razor.TagHelpers;

/// &amp;lt;summary&amp;gt;
/// &amp;lt;see cref=&quot;ITagHelper&quot;/&amp;gt; implementation targeting &amp;amp;lt;label&amp;amp;gt; elements with an &amp;lt;c&amp;gt;asp-for&amp;lt;/c&amp;gt; attribute.
/// Adds a &amp;lt;c&amp;gt;title&amp;lt;/c&amp;gt; attribute to the &amp;amp;lt;label&amp;amp;gt; with the Description property from the model data annotation DisplayAttribute.
/// &amp;lt;/summary&amp;gt;
[HtmlTargetElement(&quot;label&quot;, Attributes = ForAttributeName)]
public class LabelTitleTagHelper : TagHelper
{
    private const string ForAttributeName = &quot;asp-for&quot;;

    /// &amp;lt;summary&amp;gt;
    /// Creates a new &amp;lt;see cref=&quot;LabelTitleTagHelper&quot;/&amp;gt;.
    /// &amp;lt;/summary&amp;gt;
    /// &amp;lt;param name=&quot;generator&quot;&amp;gt;The &amp;lt;see cref=&quot;IHtmlGenerator&quot;/&amp;gt;.&amp;lt;/param&amp;gt;
    public LabelTitleTagHelper(IHtmlGenerator generator)
    {
        Generator = generator;
    }

    /// &amp;lt;inheritdoc /&amp;gt;
    public override int Order
    {
        get
        {
            return -1000;
        }
    }

    [HtmlAttributeNotBound]
    [ViewContext]
    public ViewContext ViewContext { get; set; }

    protected IHtmlGenerator Generator { get; }

    /// &amp;lt;summary&amp;gt;
    /// An expression to be evaluated against the current model.
    /// &amp;lt;/summary&amp;gt;
    [HtmlAttributeName(ForAttributeName)]
    public ModelExpression TitleFor { get; set; }

    /// &amp;lt;inheritdoc /&amp;gt;
    /// &amp;lt;remarks&amp;gt;Does nothing if &amp;lt;see cref=&quot;TitleFor&quot;/&amp;gt; is &amp;lt;c&amp;gt;null&amp;lt;/c&amp;gt;.&amp;lt;/remarks&amp;gt;
    public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
    {
        if (context == null)
        {
            throw new ArgumentNullException(nameof(context));
        }

        if (output == null)
        {
            throw new ArgumentNullException(nameof(output));
        }

        var metadata = TitleFor.Metadata;

        if (metadata == null)
        {
            throw new InvalidOperationException(string.Format(&quot;No provided metadata ({0})&quot;, ForAttributeName));
        }

        if (!string.IsNullOrWhiteSpace(metadata.Description))
            output.Attributes.SetAttribute(&quot;title&quot;, metadata.Description);
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;27&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러면 새로운 데이터가 생성됩니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;title&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의 속성&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Description&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;29&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;모델의 데이터 주석 속성&lt;/font&gt;&lt;/font&gt;&lt;code&gt;DisplayAttribute&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;30&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;31&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아름다운 부분은 생성된 비계 뷰를 터치할 필요가 없다는 것입니다!&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 태그 도우미는 다음을 대상으로 하기 때문입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;asp-for&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;32&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의 속성&lt;/font&gt;&lt;/font&gt;&lt;code&gt;label&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;33&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이미 존재하는 요소!&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;58&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Jakob Gade' 이외에도 훌륭한 답변이 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;34&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;지원이 필요한 경우&lt;/font&gt;&lt;/font&gt;&lt;code&gt;DescriptionAttribute&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;35&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대신에&lt;/font&gt;&lt;/font&gt;&lt;code&gt;DisplayAttribute&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;61&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;MetadataProvider를 오버라이드해도 &lt;a href=&quot;https://stackoverflow.com/a/6578828/2441442&quot; papago-id=&quot;61-1&quot;&gt;그의 훌륭한&lt;/a&gt; 솔루션은 여전히 &lt;a href=&quot;https://stackoverflow.com/a/6578828/2441442&quot; papago-id=&quot;61-1&quot;&gt;작동&lt;/a&gt;합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;public class ExtendedModelMetadataProvider : DataAnnotationsModelMetadataProvider
{
    protected override ModelMetadata CreateMetadata(IEnumerable&amp;lt;System.Attribute&amp;gt; attributes, Type containerType, Func&amp;lt;object&amp;gt; modelAccessor, Type modelType, string propertyName)
    {
        //Possible Multiple Enumerations on IEnumerable fix
        var attributeList = attributes as IList&amp;lt;System.Attribute&amp;gt; ?? attributes.ToList();

        //Default behavior
        var data = base.CreateMetadata(attributeList, containerType, modelAccessor, modelType, propertyName);

        //Bind DescriptionAttribute
        var description = attributeList.SingleOrDefault(a =&amp;gt; typeof(DescriptionAttribute) == a.GetType());
        if (description != null)
        {
            data.Description = ((DescriptionAttribute)description).Description;
        }

        return data;
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;37&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 에 등록해야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Application_Start&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;38&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;메소드 인&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Global.asax.cs&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;39&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;ModelMetadataProviders.Current = new ExtendedModelMetadataProvider();
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;65&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ASP.NET Core 2.0용으로 업데이트된 HANDL의 답변&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;using System;
using System.Linq.Expressions;
using Microsoft.AspNetCore.Html;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.AspNetCore.Mvc.ViewFeatures.Internal;

public static class HtmlExtensions
{
    public static IHtmlContent DescriptionFor&amp;lt;TModel, TValue&amp;gt;(this IHtmlHelper&amp;lt;TModel&amp;gt; html, Expression&amp;lt;Func&amp;lt;TModel, TValue&amp;gt;&amp;gt; expression)
    {
        if (html == null) throw new ArgumentNullException(nameof(html));
        if (expression == null) throw new ArgumentNullException(nameof(expression));

        var modelExplorer = ExpressionMetadataProvider.FromLambdaExpression(expression, html.ViewData, html.MetadataProvider);
        if (modelExplorer == null) throw new InvalidOperationException($&quot;Failed to get model explorer for {ExpressionHelper.GetExpressionText(expression)}&quot;);

        return new HtmlString(modelExplorer.Metadata.Description);
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;66&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;항상 다음과 같은 사용자 정의 확장을 생성할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;    public static MvcHtmlString ToolTipLabel (string resourceKey, string text, bool isRequired, string labelFor = &quot;&quot;, string labelId = &quot;&quot;,string className=&quot;&quot;)
    {
        string tooltip = string.Empty;

        StringBuilder sb = new StringBuilder();

        if (!string.IsNullOrEmpty(resourceKey))
        {
            var resources = GetAllResourceValues();

            if (resources.ContainsKey(resourceKey))
            {
                tooltip = resources[resourceKey].Value;
            }
        }

        sb.Append(&quot;&amp;lt;label&quot;);

        if (!string.IsNullOrEmpty(labelFor))
        {
            sb.AppendFormat(&quot; for=\&quot;{0}\&quot;&quot;, labelFor);
        }

        if (!string.IsNullOrEmpty(labelId))
        {
            sb.AppendFormat(&quot; Id=\&quot;{0}\&quot;&quot;, labelId);
        }

        if (!string.IsNullOrEmpty(className))
        {
            sb.AppendFormat(&quot; class=\&quot;{0}\&quot;&quot;, className);
        }

        if (!string.IsNullOrEmpty(tooltip))
        {

            sb.AppendFormat(&quot; data-toggle='tooltip' data-placement='auto left' title=\&quot;{0}\&quot;&quot;,tooltip);

        }
        if (isRequired)
        {
            sb.AppendFormat(&quot;&amp;gt;&amp;lt;em class='required'&amp;gt;*&amp;lt;/em&amp;gt; {0} &amp;lt;/label&amp;gt;&amp;lt;/br&amp;gt;&quot;, text);
        }
        else
        {
            sb.AppendFormat(&quot;&amp;gt;{0}&amp;lt;/label&amp;gt;&amp;lt;/br&amp;gt;&quot;, text);
        }
        return MvcHtmlString.Create(sb.ToString());
    }
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;67&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같이 표시할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;pre&gt;&lt;code&gt;@HtmlExtension.ToolTipLabel(&quot; &quot;,&quot; &quot;,true,&quot; &quot;,&quot; &quot;,&quot; &quot;)
&lt;/code&gt;&lt;/pre&gt; 
&lt;/blockquote&gt;&lt;p papago-id=&quot;68&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/6578495/&lt;a href=&quot;https://stackoverflow.com/questions/6578495/how-do-i-display-the-displayattribute-description-attribute-value&quot; target=&quot;_blank&quot; papago-id=&quot;68-1&quot;&gt;how-do-i-display-the-displayattribute-description-attribute-value&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/648</guid>
      <comments>https://firstcheck.tistory.com/648#entry648comment</comments>
      <pubDate>Thu, 22 Jun 2023 23:52:14 +0900</pubDate>
    </item>
    <item>
      <title>간격을 분으로 변환</title>
      <link>https://firstcheck.tistory.com/647</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;간격을 분으로 변환&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;두 개의 간격이 있다고 가정합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;INTERVAL '0 00:30:00' DAY TO SECOND
INTERVAL '0 04:00:00' DAY TO SECOND
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;각 간격마다 분을 얻는 가장 우아한 방법은 무엇입니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;code&gt;30&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;240&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;네, 할 수 있다는 것을 압니다&lt;/font&gt;&lt;/font&gt;&lt;code&gt;EXTRACT(HOUR FROM interval) * 60 + EXTRACT(MINUTE FROM interval)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 이건 끔찍해 보여요&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더 좋은 해결책은 없습니까?&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신이 보기에 끔찍해 보이는 것은, 제가 보기에 완벽하게 받아들일 수 있는 것처럼 보입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;INTERVAL에 대해 수행할 수 있는 산술의 설명서를 보면 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/sql_elements001.htm#sthref175&quot; rel=&quot;noreferrer&quot; papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/sql_elements001.htm#sthref175&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러면 당신은 그것들을 숫자로 곱할 수 있다는 것을 알 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서 여러분이 여러분의 간격을 24와 60으로 곱하면, 여러분은 일의 수를 추출함으로써 분의 수를 얻을 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;좀 더 콤팩트하지만, 당신이 보기에 더 우아한지는 의문입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SQL&amp;gt; create table t (my_interval interval day to second)
  2  /

Table created.

SQL&amp;gt; insert into t
  2  select numtodsinterval(30,'minute') from dual union all
  3  select numtodsinterval(4,'hour') from dual
  4  /

2 rows created.

SQL&amp;gt; select my_interval
  2       , 60 * extract(hour from my_interval)
  3         + extract(minute from my_interval) minutes_terrible_way
  4       , extract(day from 24*60*my_interval) minutes_other_way
  5    from t
  6  /

MY_INTERVAL                    MINUTES_TERRIBLE_WAY MINUTES_OTHER_WAY
------------------------------ -------------------- -----------------
+00 00:30:00.000000                              30                30
+00 04:00:00.000000                             240               240

2 rows selected.
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;안부 전해요,&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;롭&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;(extract(day from my_interval) * 24 * 60 + extract(hour from my_interval)) * 60 + extract(minute from my_interval) my_way
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;며칠을 잊지 마세요.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위의 롭의 예를 다시 사용하면,&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-sql prettyprint-override&quot;&gt;&lt;code&gt;select (sysdate-(sysdate-to_dsinterval(my_interval)))*24*60 from t;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/5063214/&lt;a href=&quot;https://stackoverflow.com/questions/5063214/convert-interval-to-minutes&quot; target=&quot;_blank&quot; papago-id=&quot;15-1&quot;&gt;convert-interval-to-minutes&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/647</guid>
      <comments>https://firstcheck.tistory.com/647#entry647comment</comments>
      <pubDate>Thu, 22 Jun 2023 23:50:58 +0900</pubDate>
    </item>
    <item>
      <title>MongoDB의 기존 필드 끝에 문자열 추가</title>
      <link>https://firstcheck.tistory.com/646</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;MongoDB의 기존 필드 끝에 문자열 추가&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;필드에 매우 긴 문자열이 있는 문서가 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;필드에 이미 포함된 문자열의 끝에 다른 문자열을 연결해야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 지금 하는 방법은 자바에서 문서를 가져와서 필드에서 문자열을 추출하고 문자열을 끝까지 추가한 다음 마지막으로 새로운 문자열로 문서를 업데이트하는 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문제:&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;필드에 포함된 문자열이 매우 길기 때문에 Java에서 이 문자열을 검색하고 작업하는 데 시간과 리소스가 필요합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;게다가, 이것은 초당 여러 번 수행되는 작업입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;0-0&quot;&gt;내&lt;/strong&gt; 질문:&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;가져올 필요 없이 문자열을 기존 필드에 연결할 수 있는 방법이 있습니까?&lt;/font&gt;&lt;/font&gt;&lt;code&gt;db.&amp;lt;doc&amp;gt;.find()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;) 먼저 필드의 내용을 입력하시겠습니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;현실에서 내가 원하는 것은 (&lt;/font&gt;&lt;/font&gt;&lt;code&gt;field.contents += new_string&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;).&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;나는 이미 자바스크립트를 이용하여 이 작품을 만들었고,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;eval&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 제가 알게 된 것처럼 MongoDB는 Javascript를 실행할 때 데이터베이스를 잠급니다. 이것은 전체 애플리케이션을 더 느리게 만듭니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;시작하는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Mongo 4.2&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;집계&lt;a href=&quot;https://www.mongodb.com/docs/upcoming/reference/method/db.collection.updateMany/&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;6-1&quot;&gt;&lt;code papago-id=&quot;6-1-0&quot;&gt;db.collection.updateMany()&lt;/code&gt;&lt;/a&gt; 파이프라인을 수락하여 현재 값을 기준으로 필드를 업데이트할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;// { a: &quot;Hello&quot; }
db.collection.updateMany(
  {},
  [{ $set: { a: { $concat: [ &quot;$a&quot;, &quot;World&quot; ] } } }]
)
// { a: &quot;HelloWorld&quot; }
&lt;/code&gt;&lt;/pre&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;첫 번째 파트&lt;/font&gt;&lt;/font&gt;&lt;code&gt;{}&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;업데이트할 문서(이 경우 모든 문서)를 필터링하는 일치 쿼리입니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제2부&lt;/font&gt;&lt;/font&gt;&lt;code&gt;[{ $set: { a: { $concat: [ &quot;$a&quot;, &quot;World&quot; ] } } }]&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;업데이트 집계 파이프라인입니다(집계 파이프라인 사용을 나타내는 대괄호 참조).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://docs.mongodb.com/master/reference/operator/aggregation/set/#pipe._S_set&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;10-1&quot;&gt;&lt;code papago-id=&quot;10-1-0&quot;&gt;$set&lt;/code&gt;&lt;/a&gt; (대신)&lt;/font&gt;&lt;/font&gt;&lt;code&gt;$addFields&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;)는 이 경우 필드 값을 대체하는 새로운 집계 연산자입니다(연결을 통해).&lt;/font&gt;&lt;/font&gt;&lt;code&gt;a&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;접미사가 붙은 그 자체&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&quot;World&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;. 방법을 참고합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;a&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;자체 값을 기준으로 직접 수정됩니다(&lt;/font&gt;&lt;/font&gt;&lt;code&gt;$a&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;).&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt;&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어, 다음과 같습니다(같은 이야기가 시작에 추가됩니다).&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;전에&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&quot;_id&quot; : ObjectId(&quot;56993251e843bb7e0447829d&quot;), &quot;name&quot; : &quot;London City&quot;, &quot;City&quot; : &quot;London&quot; }&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;pre&gt;&lt;code&gt;db.airports
   .find( { $text: { $search: &quot;City&quot; } })
   .forEach(
       function(e, i){ 
           e.name='Big ' + e.name; 
           db.airports.save(e);
       }
    )
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이후:&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&quot;_id&quot; : ObjectId(&quot;56993251e843bb7e0447829d&quot;), &quot;이름&quot; : &quot;빅 런던 시티&quot;, &quot;시티&quot; : &quot;런던&quot; }&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt;&lt;p papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오래된 주제지만 저도 같은 문제가 있었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;mongo 2.4부터 집계 프레임워크에서 $&lt;a href=&quot;https://docs.mongodb.com/manual/reference/operator/aggregation/concat/&quot; rel=&quot;noreferrer&quot; papago-id=&quot;25-1&quot;&gt;concat를 &lt;/a&gt;사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예&lt;/font&gt;&lt;/strong&gt; &lt;/p&gt; 
&lt;p papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음 문서를 고려합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;{
    &quot;_id&quot; : ObjectId(&quot;5941003d5e785b5c0b2ac78d&quot;),
    &quot;title&quot; : &quot;cov&quot;
}

{
    &quot;_id&quot; : ObjectId(&quot;594109b45e785b5c0b2ac97d&quot;),
    &quot;title&quot; : &quot;fefe&quot;
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;추가&lt;/font&gt;&lt;/font&gt;&lt;code&gt;fefe&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;29&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;로.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;title&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;30&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;필드:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;db.getCollection('test_append_string').aggregate(
    [
        { $project: { title: { $concat: [ &quot;$title&quot;, &quot;fefe&quot;] } } }
    ]
)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;집계 결과는 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;{
    &quot;_id&quot; : ObjectId(&quot;5941003d5e785b5c0b2ac78d&quot;),
    &quot;title&quot; : &quot;covfefe&quot;
}

{
    &quot;_id&quot; : ObjectId(&quot;594109b45e785b5c0b2ac97d&quot;),
    &quot;title&quot; : &quot;fefefefe&quot;
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 결과를 대량으로 저장할 수 있습니다. 이 &lt;a href=&quot;https://stackoverflow.com/a/33745359/2857834&quot; papago-id=&quot;32-1&quot;&gt;답변을 참조&lt;/a&gt;하십시오.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 제가 가지고 있는 하나의 문서의 샘플입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;{
    &quot;_id&quot; : 1,
    &quot;s&quot; : 1,
    &quot;ser&quot; : 2,
    &quot;p&quot; : &quot;9919871172&quot;,
    &quot;d&quot; : ISODate(&quot;2018-05-30T05:00:38.057Z&quot;),
    &quot;per&quot; : &quot;10&quot;
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;34&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;필드에 문자열을 추가하려면 모든 문서에 대해 각 루프를 실행한 다음 원하는 필드를 업데이트할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;db.getCollection('jafar').find({}).forEach(function(el){
    db.getCollection('jafar').update(
        {p:el.p},
        {$set:{p:'98'+el.p}})    
    })
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;35&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 불가능합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;한 가지 최적화 방법은 업데이트 배치를 만드는 것입니다. 즉, 10K 문서를 가져오고 각 키에 관련 문자열을 추가한 다음 단일 배치로 저장합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;대부분의 mongodb 드라이버는 배치 작업을 지원합니다.&lt;/font&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;db.getCollection('&amp;lt;collection&amp;gt;').update(
    // query 
    {},

    // update 
    {
        $set: {&amp;lt;field&amp;gt;:this.&amp;lt;field&amp;gt;+&quot;&amp;lt;new string&amp;gt;&quot;}
    },

    // options 
    {
        &quot;multi&quot; : true,  // update only one document 
        &quot;upsert&quot; : false  // insert a new document, if no existing document match the query 
    });
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/23868963/&lt;a href=&quot;https://stackoverflow.com/questions/23868963/append-a-string-to-the-end-of-an-existing-field-in-mongodb&quot; target=&quot;_blank&quot; papago-id=&quot;36-1&quot;&gt;append-a-string-to-the-end-of-an-existing-field-in-mongodb&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/646</guid>
      <comments>https://firstcheck.tistory.com/646#entry646comment</comments>
      <pubDate>Thu, 22 Jun 2023 23:48:29 +0900</pubDate>
    </item>
    <item>
      <title>유형 스크립트 - 인터페이스의 모든 구현을 가져옵니다.</title>
      <link>https://firstcheck.tistory.com/645</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;유형 스크립트 - 인터페이스의 모든 구현을 가져옵니다.&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Typescript에서 특정 인터페이스를 구현하는 모든 클래스의 목록을 가져올 방법을 찾고 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어 .Net에서는 반사를 사용하여 이 작업을 수행할 수 있지만 유형 스크립트에서는 동일한 작업을 수행하는 데 대한 정보를 찾을 수 없습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;수행할 작업의 코드 예:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;interface IControlPanel { }
class BasicControlPanel implements IControlPanel { }
class AdvancedControlPanel implements IControlPanel { }
window.onload = () =&amp;gt;
{
    var controlPanels = IControlPanel.GetImplementations();
    for (var x = 0; x &amp;lt; controlPanels.length; x++)
    {
        document.write(controlPanels[x] + &quot;, &quot;); //outputs: BasicControlPanel, AdvancedControlPanel,
    }
};
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;물론 수업이 인스턴스화하기 쉽다면 훨씬 더 좋을 것입니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 댓글에서 언급했듯이, 타입스크립트(non-goal #5 참조)가 타입 시스템에 의존하는 자바스크립트를 내보내는 것은 명시된 &lt;a href=&quot;https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals&quot; rel=&quot;noreferrer&quot; papago-id=&quot;5-1&quot;&gt;비목표&lt;/a&gt;이므로, 런타임에 원하는 것을 하기 위해 자동으로 사용할 수 있는 것은 없을 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;물론 TypeScript를 사용하여 원하는 대로 거의 정확하게 사용할 수 있는 유형 레지스트리를 유지 관리할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 다음과 같은 &lt;a href=&quot;https://www.typescriptlang.org/docs/handbook/decorators.html#class-decorators&quot; papago-id=&quot;6-1&quot; rel=&quot;noreferrer&quot;&gt;클래스&lt;/a&gt; 장식가를 &lt;a href=&quot;https://www.typescriptlang.org/docs/handbook/decorators.html#class-decorators&quot; papago-id=&quot;6-1&quot; rel=&quot;noreferrer&quot;&gt;사용&lt;/a&gt;할 것을 제안합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;interface IControlPanel {
  // add some methods or something to distinguish from {}
  doAThing(): void;
}

// add a registry of the type you expect
namespace IControlPanel {
  type Constructor&amp;lt;T&amp;gt; = {
    new(...args: any[]): T;
    readonly prototype: T;
  }
  const implementations: Constructor&amp;lt;IControlPanel&amp;gt;[] = [];
  export function GetImplementations(): Constructor&amp;lt;IControlPanel&amp;gt;[] {
    return implementations;
  }
  export function register&amp;lt;T extends Constructor&amp;lt;IControlPanel&amp;gt;&amp;gt;(ctor: T) {
    implementations.push(ctor);
    return ctor;
  }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;자, 이제 수업을 시작하는 대신에&lt;/font&gt;&lt;/font&gt;&lt;code&gt;implements IControlPanel&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신이 사용하는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@IControlPanel.register&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@IControlPanel.register
class BasicControlPanel {
  doAThing() { }
}

@IControlPanel.register
class AdvancedControlPanel {
  doAThing() { }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;구현되지 않은 클래스를 등록하려고 하는 경우&lt;/font&gt;&lt;/font&gt;&lt;code&gt;IControlPanel&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오류가 발생합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;// error, doAThing is missing from BadControlPanel
@IControlPanel.register
class BadControlPanel {
  doNothing() { }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이제 레지스트리를 원하는 방식으로 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;window.onload = () =&amp;gt; {
  var controlPanels = IControlPanel.GetImplementations();
  for (var x = 0; x &amp;lt; controlPanels.length; x++) {
    document.write(controlPanels[x].name + &quot;, &quot;);
    const panel = new controlPanels[x]();
    panel.doAThing();
  }
};
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 &quot;대부분&quot;이라고 말하는 이유는 당신이 그것들을 인스턴스화하는 방법을 원했기 때문이지, 문자열이 아닌 생성자를 저장했기 때문입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음 정보를 얻을 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;name&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문자열에 대한 생성자의 속성입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 클래스가 모두 동일한 생성자 인수 유형을 사용한다고 가정하여 인스턴스화할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;도움이 되길 바랍니다; 행운을 빕니다!&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://stackblitz.com/edit/krhey5?file=index.ts&quot; rel=&quot;noreferrer&quot; papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스택블리츠 예제&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/47082026/&lt;a href=&quot;https://stackoverflow.com/questions/47082026/typescript-get-all-implementations-of-interface&quot; target=&quot;_blank&quot; papago-id=&quot;17-1&quot;&gt;typescript-get-all-implementations-of-interface&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/645</guid>
      <comments>https://firstcheck.tistory.com/645#entry645comment</comments>
      <pubDate>Thu, 22 Jun 2023 23:46:59 +0900</pubDate>
    </item>
    <item>
      <title>TS 오류:'string' 형식이 배열 형식이나 문자열 형식이 아닙니다.어떻게 끈이 끈이 아닌가요?</title>
      <link>https://firstcheck.tistory.com/644</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;TS 오류:&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;'string' 형식이 배열 형식이나 문자열 형식이 아닙니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떻게 끈이 끈이 아닌가요?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;TS에서 이상한 오류 발생:&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오류: (125, 18) TS2569: 'string' 형식이 배열 형식이나 문자열 형식이 아닙니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;컴파일러 옵션 '--downlevelIteration'을 사용하여 반복기를 반복할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;왜 끈은 끈이 아닌가요?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;TS가 문자열에 대한 스프레드 연산자를 어떻게 컴파일할지 알고 싶습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;브라우저 콘솔의 내 코드.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;문자열은 다음 문자로 분할됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-js prettyprint-override&quot;&gt;&lt;code&gt;&amp;gt; s = 'abcdef';
&amp;gt; r = [...s];
&amp;lt; (6) [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;d&quot;, &quot;e&quot;, &quot;f&quot;]
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;TS의 내 코드:&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-js prettyprint-override&quot;&gt;&lt;code&gt;const s: string = 'abcdef';
const res = [...s]; // &amp;lt;= Error: Type 'string' is not an array type or a string type
console.log(res);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;왜요?&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;TS 버전:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;  &quot;dependencies&quot;: {
    &quot;typescript&quot;: &quot;^3.5.3&quot;
  }
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;업데이트:&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;@V to Colleone A 스크린샷&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;업데이트:&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;나의&lt;/font&gt;&lt;/font&gt;&lt;code&gt;tsconfig.json&lt;/code&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;{
  &quot;compilerOptions&quot;: {
    &quot;target&quot;: &quot;es5&quot;,
    &quot;lib&quot;: [
      &quot;dom&quot;,
      &quot;dom.iterable&quot;,
      &quot;esnext&quot;
    ],
    &quot;downlevelIteration&quot;: false,
    &quot;allowJs&quot;: true,
    &quot;skipLibCheck&quot;: false,
    &quot;esModuleInterop&quot;: true,
    &quot;allowSyntheticDefaultImports&quot;: true,
    &quot;alwaysStrict&quot;: true,
    &quot;strict&quot;: true,
    &quot;forceConsistentCasingInFileNames&quot;: true,
    &quot;module&quot;: &quot;esnext&quot;,
    &quot;moduleResolution&quot;: &quot;node&quot;,
    &quot;resolveJsonModule&quot;: true,
    &quot;isolatedModules&quot;: false,
    &quot;noEmit&quot;: false,
    &quot;sourceMap&quot;: true,
    &quot;baseUrl&quot;: &quot;./&quot;,
    &quot;jsx&quot;: &quot;preserve&quot;
  },
  &quot;compileOnSave&quot;: true,
  &quot;files&quot;: [
    &quot;sample.ts&quot;
  ],
  &quot;exclude&quot;: [
    &quot;node_modules&quot;,
    &quot;**/*.spec.ts&quot;
  ]
}

&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Heretic Monkey의 코멘트를 확대하기 위해:&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대상 변경&lt;/font&gt;&lt;/font&gt;&lt;code&gt;es5&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;로.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;es2015&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;es6&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문제를 해결합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기 내 배가 불러요.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;tsconfig.json&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;명확성을 위해:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;{
  &quot;compilerOptions&quot;: {
    &quot;target&quot;: &quot;es2015&quot;,
    &quot;lib&quot;: [
      &quot;dom&quot;,
      &quot;dom.iterable&quot;,
      &quot;esnext&quot;
    ],
    &quot;allowJs&quot;: true,
    &quot;skipLibCheck&quot;: true,
    &quot;strict&quot;: true,
    &quot;forceConsistentCasingInFileNames&quot;: true,
    &quot;noEmit&quot;: true,
    &quot;esModuleInterop&quot;: true,
    &quot;module&quot;: &quot;esnext&quot;,
    &quot;moduleResolution&quot;: &quot;node&quot;,
    &quot;resolveJsonModule&quot;: true,
    &quot;isolatedModules&quot;: true,
    &quot;jsx&quot;: &quot;preserve&quot;,
  },
  &quot;exclude&quot;: [
    &quot;node_modules&quot;
  ],
  &quot;include&quot;: [
    &quot;next-env.d.ts&quot;,
    &quot;**/*.ts&quot;,
    &quot;**/*.tsx&quot;
  ]
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;a href=&quot;https://www.typescriptlang.org/play/index.html?downlevelIteration=true&amp;amp;target=2#code/MYewdgzgLgBBBccoCcCWYDmMC8MDkAhgEbAAmApgGZ4DcAUKJLMuRDjANoB0PEAujRgB6ITAA8uACoBPAA7l80NJjwxUbMCFgEwMAsmQFpMKHIUhkMOiJikQrGJtgALAgDcFBfBwDK0gLZEIAA2XKhQ5IZQFnwAFACUqv7kUM4gpCauzCkArsiQerrhkQTRyFwM4BAh5FzBIBixLBDxNEA&quot; rel=&quot;noreferrer&quot; papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;작업 예제&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;참고 사항:&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&quot;downlevelIteration&quot;: true&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 그것을 고쳤지만, 그것은 나에게 올바른 해결책인 것 같지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Angular-CLI(8)가 있습니다. - 이 경우 수정.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;tsconfig.json&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;본조로&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&quot;target&quot;: &quot;es2015&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(또는 es2018) 전혀 도움이 되지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;추가만&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&quot;downlevelIteration&quot;: true&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;도움이 됩니다. 여기 제 모든 파일이 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;snippet&quot; data-lang=&quot;js&quot; data-hide=&quot;true&quot; data-console=&quot;false&quot; data-babel=&quot;false&quot;&gt; 
 &lt;div class=&quot;snippet-code snippet-currently-hidden&quot;&gt; 
  &lt;pre class=&quot;snippet-code-js lang-js prettyprint-override&quot;&gt;&lt;code&gt;{
  &quot;compileOnSave&quot;: false,
  &quot;compilerOptions&quot;: {
    &quot;baseUrl&quot;: &quot;./&quot;,
    &quot;outDir&quot;: &quot;./dist/out-tsc&quot;,
    &quot;sourceMap&quot;: true,
    &quot;declaration&quot;: false,
    &quot;module&quot;: &quot;esnext&quot;,
    &quot;moduleResolution&quot;: &quot;node&quot;,
    &quot;emitDecoratorMetadata&quot;: true,
    &quot;experimentalDecorators&quot;: true,
    &quot;importHelpers&quot;: true,
    &quot;downlevelIteration&quot;: true,
    &quot;target&quot;: &quot;es2015&quot;,
    &quot;typeRoots&quot;: [
      &quot;node_modules/@types&quot;
    ],
    &quot;lib&quot;: [
      &quot;es2018&quot;,
      &quot;dom&quot;
    ]
  }
}&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt;&lt;p papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/56990364/&lt;a href=&quot;https://stackoverflow.com/questions/56990364/ts-error-type-string-is-not-an-array-type-or-a-string-type-how-a-string-is-n&quot; target=&quot;_blank&quot; papago-id=&quot;26-1&quot;&gt;ts-error-type-string-is-not-an-array-type-or-a-string-type-how-a-string-is-n&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/644</guid>
      <comments>https://firstcheck.tistory.com/644#entry644comment</comments>
      <pubDate>Thu, 22 Jun 2023 23:46:08 +0900</pubDate>
    </item>
    <item>
      <title>BIT 열의 MAX 값 가져오기</title>
      <link>https://firstcheck.tistory.com/643</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;BIT 열의 MAX 값 가져오기&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;조인된 테이블에 'inner join'이 있는 SELECT 요청이 있습니다. 이 열은 비트 타입입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;조인된 테이블의 값이 1인 경우 1을 선택하고 싶습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇지 않으면 값은 0이 됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서 내가 가지고 있다면,&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;PERSID | NAME
1      |  Toto
2      |  Titi
3      |  Tata
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 두번째 테이블은&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;PERSID | BOOL
1      |  0
1      |  0
2      |  0
2      |  1
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 결과를 얻기를 원합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Toto -&amp;gt; 0
Titi -&amp;gt; 1
Tata -&amp;gt; 0
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;시도해 봅니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT 
     sur.*
    ,MAX(bo.BOOL)    

    FROM SURNAME sur              
    INNER JOIN BOOL bo
    ON bo.IDPERS = sur.IDPERS
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 BIT 열에서는 MAX를 사용할 수 없습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떻게 하면 좋을까요?&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;감사해요.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 그것을 a에게 던질 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;INT&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 심지어 그것을 다시 a로 던집니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;BIT&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;필요하다면&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT 
     sur.*
    ,CAST(MAX(CAST(bo.BOOL as INT)) AS BIT)
    FROM SURNAME sur              
    INNER JOIN BOOL bo
    ON bo.IDPERS = sur.IDPERS
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;시도:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;max(cast(bo.BOOL as int))
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;암시적인 캐스팅을 강요함으로써 지저분하게 보이는 더블 캐스팅을 피할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT 
     sur.*
    ,CAST(MAX(1 * bo.BOOL) AS BIT)
    FROM SURNAME sur              
    INNER JOIN BOOL bo
    ON bo.IDPERS = sur.IDPERS
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;편도&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT 
     sur.*
    ,MAX(convert(tinyint,bo.BOOL))    

    FROM SURNAME sur              
    INNER JOIN BOOL bo
    ON bo.IDPERS = sur.IDPERS
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;설정된 비트가 &lt;em papago-id=&quot;15-1&quot;&gt;정확히&lt;/em&gt; 하나인 사용자만 원하는 경우:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;declare @Surname as Table ( PersId Int, Name VarChar(10) )
insert into @Surname ( PersId, Name ) values
  ( 1, 'Toto' ), ( 2, 'Titi' ), ( 3, 'Tata' ), ( 4, 'Tutu' )

declare @Bool as Table ( PersId Int, Bool Bit )
insert into @Bool ( PersId, Bool ) values
  ( 1, 0 ), ( 1, 0 ),
  ( 2, 0 ), ( 2, 1 ),
  ( 4, 1 ), ( 4, 0 ), ( 4, 1 )

select Sur.PersId, Sur.Name, Sum( Cast( Bo.Bool as Int ) ) as [Sum],
  case Sum( Cast( Bo.Bool as Int ) )
    when 1 then 1
    else 0
    end as [Only One]
  from @Surname as Sur left outer join
    @Bool as Bo on Bo.PersId = Sur.PersId
  group by Sur.PersId, Sur.Name
  order by Sur.Name
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/10803968/&lt;a href=&quot;https://stackoverflow.com/questions/10803968/get-max-value-of-a-bit-column&quot; target=&quot;_blank&quot; papago-id=&quot;16-1&quot;&gt;get-max-value-of-a-bit-column&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/643</guid>
      <comments>https://firstcheck.tistory.com/643#entry643comment</comments>
      <pubDate>Thu, 22 Jun 2023 23:45:09 +0900</pubDate>
    </item>
    <item>
      <title>스프링 부트 기본 메모리 설정은 무엇입니까?</title>
      <link>https://firstcheck.tistory.com/642</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스프링 부트 기본 메모리 설정은 무엇입니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어 정의 없이 IDE에서 단순 봄 부팅 앱을 실행/디버깅하는 경우 초기 힙 크기, 최대 힙 크기 및 스택 크기(-Xms, -Xmx, -Xss)가 설정됩니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기본적으로 Spring Boot 앱은 JVM 기본 메모리 설정을 사용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기본 힙 크기&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;물리적 메모리 크기가 최대 192MB인 경우 기본 최대 힙 크기는 물리적 메모리의 절반입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;물리적 메모리 크기가 192MB 이상인 경우 기본 최대 힙 크기는 물리적 메모리의 4분의 1입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어 시스템에 128MB의 물리적 메모리가 있는 경우 최대 힙 크기는 64MB이며 물리적 메모리가 1GB 이상이면 최대 힙 크기는 256MB가 됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;프로그램에서 필요한 만큼의 개체를 만들지 않는 한 JVM에서 최대 힙 크기를 실제로 사용하지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;JVM 초기화 중에는 초기 힙 크기라고 하는 훨씬 적은 양이 할당됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 양은 최소 8MB이며 물리적 메모리의 64분의 1이며 최대 1GB의 물리적 메모리 크기입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;젊은 세대에 할당된 최대 공간은 전체 힙 크기의 3분의 1입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음 명령을 사용하여 시스템별 기본값을 확인할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Linux:&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;java -XX:+PrintFlags최종 버전 | grep 힙 크기&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Windows:&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;java -XX:+PrintFlagsFinal -version | findstr 힙 크기&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/parallel.html#default_heap_size&quot; rel=&quot;noreferrer&quot; papago-id=&quot;14-1&quot;&gt;참조:&lt;/a&gt; https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/parallel.html#default_heap_size&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기본 스레드 스택 크기&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기본 스레드 스택 크기는 JVM, OS 및 환경 변수에 따라 달라집니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;플랫폼의 기본 스레드 스택 크기를 확인하려면 다음을 사용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Linux의 경우:&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;java -XX:+PrintFlags최종 버전 | grep ThreadStackSize&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Windows의 경우:&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;java -XX:+PrintFlagsFinal -version | findstr ThreadStackSize&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt;&lt;p papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Java 시작 중에 &quot;Xmx&quot; 옵션이 제공되지 않는 경우 일반적으로 전체 물리적 메모리의 25%입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;유닉스/리눅스 시스템에서 다음을 수행할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;java -XX:+PrintFlagsFinal -version | grep HeapSize
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Windows에서 다음 명령을 사용하여 기본값을 확인합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;java -XX:+PrintFlagsFinal -version | findstr HeapSize
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;MaxHeapSize(-Xmx의 경우) 및 InitialHeapSize(-Xms의 경우) 옵션을 찾습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;결과 출력은 바이트 단위입니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/38564648/&lt;a href=&quot;https://stackoverflow.com/questions/38564648/what-is-the-spring-boot-default-memory-settings&quot; target=&quot;_blank&quot; papago-id=&quot;27-1&quot;&gt;what-is-the-spring-boot-default-memory-settings&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/642</guid>
      <comments>https://firstcheck.tistory.com/642#entry642comment</comments>
      <pubDate>Thu, 22 Jun 2023 23:44:07 +0900</pubDate>
    </item>
    <item>
      <title>Cloud Firestore와 Firebase 실시간 데이터베이스의 차이점은 무엇입니까?</title>
      <link>https://firstcheck.tistory.com/641</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Cloud Firestore와 Firebase 실시간 데이터베이스의 차이점은 무엇입니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Google은 앱을 위한 새로운 문서 데이터베이스인 Cloud Firestore를 출시했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;설명서를 읽어보았지만 Firestore와 Firebase DB 간에 큰 차이가 없습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;핵심은 JSON 기반의 전통적인 noSQL 데이터베이스인 Firebase와 비교하여 Firestore가 쉽게 쿼리를 사용할 수 있는 문서 및 컬렉션을 사용한다는 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;차이점이나 용도, Firestore가 Firebase DB를 대체하기 위해 온 것인지 여부에 대해 좀 더 알고 싶습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이 질문에 대한 &lt;a href=&quot;https://firebase.googleblog.com/2017/10/cloud-firestore-for-rtdb-developers.html&quot; rel=&quot;noreferrer&quot; papago-id=&quot;5-1&quot;&gt;전체 블로그&lt;/a&gt; 게시물을 작성했으며, 더 완전한 답변을 위해 (또는 &lt;a href=&quot;https://firebase.google.com/docs/firestore/rtdb-vs-firestore&quot; rel=&quot;noreferrer&quot; papago-id=&quot;5-3&quot;&gt;공식 문서&lt;/a&gt;를) 확인하는 것을 추천합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 빠른(-ish) 요약을 원한다면 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;7-0&quot;&gt;더&lt;/strong&gt; 나은 &lt;strong papago-id=&quot;7-0&quot;&gt;쿼리&lt;/strong&gt; 및 &lt;strong papago-id=&quot;7-0&quot;&gt;더&lt;/strong&gt; 체계적인 데이터 -- Realtime Database는 거대한 JSON 트리에 불과하지만 Cloud Firestore는 조금 더 체계적입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;모든 데이터는 문서(기본적으로 키 값 저장소)와 문서 모음(문서 모음)으로 구성됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 문서는 종종 다른 문서를 포함하는 하위 집합을 가리키며, 하위 집합 자체는 다른 문서를 포함할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 구조화된 데이터는 두 가지 방법으로 도움이 됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;첫째, &lt;em papago-id=&quot;8-1&quot;&gt;모든 쿼리&lt;/em&gt;는 얕기 때문에 모든 데이터를 가져오지 않고 문서를 요청할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 데이터베이스를 얕게 유지할 필요 없이 데이터를 계층적으로 저장할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;둘째, 더 강력한 쿼리가 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어, 이제 데이터베이스의 다른 부분에서 데이터를 결합(및 정규화 해제)하는 &quot;콤보&quot; 필드를 작성하지 않고도 여러 필드에 걸쳐 쿼리할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;Cloud Firestore가 이러한 쿼리를 직접 실행하는 경우도 있고, 자동으로 인덱스를 생성하고 유지 관리하는 경우도 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;9-0&quot;&gt;확장&lt;/strong&gt;할 수 있도록 &lt;strong papago-id=&quot;9-0&quot;&gt;설계&lt;/strong&gt; - Cloud Firestore는 실시간 데이터베이스보다 더 잘 확장할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;쿼리는 데이터 집합이 아닌 결과 집합의 크기로 확장됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 데이터 세트의 크기에 관계없이 검색 속도가 빨라집니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;10-0&quot;&gt;더 쉬운 수동 데이터 가져오기&lt;/strong&gt; - 실시간 데이터베이스와 마찬가지로 Cloud Firestore에서 실시간으로 변경사항을 스트리밍하도록 수신기를 설정할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 이러한 동작을 원하지 않고 &quot;내 데이터 가져오기&quot; 통화만 원하는 경우 Cloud Firestore에도 이러한 기능이 있으며 기본 사용 사례로 내장되어 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;(그들은 그들보다 훨씬 낫습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;once&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;실시간 데이터베이스 랜드의 통화)&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;12-0&quot;&gt;다중 영역&lt;/strong&gt; 지원 -- 이는 기본적으로 데이터가 여러 데이터 센터에서 동시에 공유되므로 안정성이 향상된다는 것을 의미합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 일관성이 뛰어나기 때문에 언제든지 쿼리를 수행할 수 있으며 최신 버전의 데이터를 얻을 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;13-0&quot;&gt;다른 가격&lt;/strong&gt; 모델 -- Realtime Database는 주로 스토리지 또는 네트워크 대역폭을 기준으로 과금하는 반면, Cloud Firestore는 주로 &lt;em papago-id=&quot;13-2&quot;&gt;수행하는 작업&lt;/em&gt; 수를 기준으로 &lt;strong papago-id=&quot;13-0&quot;&gt;과금&lt;/strong&gt;합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이게 더 좋을까요, 더 나쁠까요?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신의 앱에 따라 다릅니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;뉴스 앱, 턴 기반 멀티플레이어 게임 또는 자체 버전의 Stack Overflow와 유사한 기능을 제공하는 경우 클라우드 Firestore는 가격 면에서 상당히 유리하게 보일 것입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;여러 업데이트를 여러 사람에게 초당 전송하는 실시간 그룹 그리기 앱과 같은 경우에는 아마도 실시간 데이터베이스보다 더 비쌀 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;15-0&quot;&gt;실시간&lt;/strong&gt; 데이터베이스를 &lt;strong papago-id=&quot;15-0&quot;&gt;사용해야 하는 이유&lt;/strong&gt;는 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 이전에 언급한 &quot;자주 업데이트하는 앱의 경우 아마도 더 저렴할 것입니다.&quot;&lt;/font&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것은 오랫동안 존재해 왔고 수천 개의 앱에 의해 전투 테스트를 받았습니다.&lt;/font&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대기 시간이 향상되고 실시간 느낌을 위해 안정적으로 대기 시간이 짧은 것이 필요할 때 Realtime Database가 더 잘 작동할 수 있습니다.&lt;/font&gt;&lt;/p&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;p papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대부분의 새 앱의 경우 Cloud Firestore를 확인하는 것이 좋습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 이미 실시간 데이터베이스에 있는 앱이 있다면, 특별한 이유가 없는 한 전환을 위해서만 전환하는 것을 권장하지 않습니다.&lt;/font&gt;&lt;/p&gt;&lt;h4 papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;실시간 데이터베이스 대신 클라우드 Firestore를 선택하는 이유&lt;/font&gt;&lt;/h4&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;개선된 버전입니다.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Firebase 데이터베이스는 기본 애플리케이션에 충분했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 복잡한 요구사항을 처리할 수 있을 만큼 강력하지는 않았습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것이 클라우드 파이어스토어가 도입된 이유입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;몇 가지 주요 변경 사항이 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기본 파일 구조가 개선되었습니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;웹 클라이언트에 대한 오프라인 지원.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;고급 쿼리를 지원합니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;쓰기 및 트랜잭션 작업은 원자적입니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;신뢰성 및 성능 향상&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스케일링이 자동으로 실행됩니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;보안이 강화됩니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가격 책정&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Cloud Firestore에서는 대역폭 및 스토리지와 함께 데이터베이스에서 수행되는 작업에 주로 요금을 부과함에도 불구하고 요금이 인하되었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;일일 지출 한도도 설정할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://firebase.google.com/docs/firestore/pricing&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;31-1&quot;&gt;여기&lt;/a&gt; 청구에 대한 전체 세부 정보가 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;구글의 미래 계획&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;실시간 데이터베이스의 결함을 발견했을 때, 그들은 이전 제품을 개선하는 대신 다른 제품을 만들었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;실시간 데이터베이스에 현재 순위를 나타내는 신뢰할 수 있는 세부 정보가 없지만, 이제는 포기될 가능성이 높다고 생각하기 시작할 때입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;br&gt; 
&lt;br&gt;&lt;p papago-id=&quot;34&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;구글에서도 링크 제안: &lt;a href=&quot;https://firebase.google.com/docs/database/rtdb-vs-firestore&quot; papago-id=&quot;34-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;Firebase Real-time&lt;/a&gt; Database &lt;a href=&quot;https://firebase.google.com/docs/database/rtdb-vs-firestore&quot; papago-id=&quot;34-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;vs&lt;/a&gt; FireStore&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;35&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;구글 문서에서 발췌한 소규모 요약은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;36-0&quot;&gt;FireBase Real Time&lt;/strong&gt; DB는 JSON 기반 NO SQL DB로 모바일 애플리케이션, 지역별, 일반적으로 사용자/기기 간에 실시간/매우 짧은 대기 시간에 데이터를 저장하고 동기화하는 데 사용됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;37-0&quot;&gt;FireStore&lt;/strong&gt;는 자산 추적, 실시간 분석, 소매 제품 카탈로그 구축, 소셜 사용자 프로필, 게임 리더 보드, 채팅 기반 애플리케이션 등과 같은 일반적인 사용 사례를 가진 모든 클라이언트(모바일 애플리케이션뿐만 아니라)를 위해 설계된 높은 동시성, 글로벌, 손쉬운 자동 확장 지속성을 위한 JSON 'like' NOSQL DB입니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/JihHu.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/JihHu.png&quot; alt=&quot;enter image description here&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;애플리케이션 요구 사항에 따라 Firebase Realtime 데이터베이스와 Cloud Firestore를 선택하려면 여기에서 공식 &lt;a href=&quot;https://firebase.google.com/docs/database/rtdb-vs-firestore#key_considerations&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;38-1&quot;&gt;설명서&lt;/a&gt;를 읽어보십시오.&lt;/font&gt;&lt;/p&gt;&lt;ul&gt; 
 &lt;li papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;클라우드 파이어스토어는 파이어베이스의 모바일 앱 개발 데이터베이스입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;보다 직관적인 새로운 데이터 모델을 사용하여 실시간 데이터베이스의 성공을 기반으로 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 Cloud Firestore는 실시간 데이터베이스보다 더 풍부하고 빠른 쿼리 및 확장 기능을 제공합니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;실시간 데이터베이스는 Firebase의 원래 데이터베이스입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 솔루션은 클라이언트 간에 실시간으로 동기화된 상태를 필요로 하는 모바일 앱을 위한 효율적이고 짧은 대기 시간의 솔루션입니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;p papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/46549766/&lt;a href=&quot;https://stackoverflow.com/questions/46549766/whats-the-difference-between-cloud-firestore-and-the-firebase-realtime-database&quot; target=&quot;_blank&quot; papago-id=&quot;41-1&quot;&gt;whats-the-difference-between-cloud-firestore-and-the-firebase-realtime-database&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/641</guid>
      <comments>https://firstcheck.tistory.com/641#entry641comment</comments>
      <pubDate>Thu, 22 Jun 2023 23:43:29 +0900</pubDate>
    </item>
    <item>
      <title>루비: 보석을 어떻게 쓰나요?</title>
      <link>https://firstcheck.tistory.com/640</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;루비: 보석을 어떻게 쓰나요?&lt;/font&gt;&lt;/h2&gt;
&lt;div&gt; 
 &lt;aside class=&quot;s-notice s-notice__info post-notice js-post-notice mb16&quot; role=&quot;status&quot;&gt; 
  &lt;div class=&quot;d-flex fd-column fw-nowrap&quot;&gt; 
   &lt;div class=&quot;d-flex fw-nowrap&quot;&gt; 
    &lt;div class=&quot;flex--item wmn0 fl1 lh-lg&quot;&gt; 
     &lt;div class=&quot;flex--item fl1 lh-lg&quot;&gt; 
      &lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;b papago-id=&quot;1-1&quot;&gt;닫힘.&lt;/b&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 질문은 책, 도구, 소프트웨어 라이브러리 등에 대한 권장 사항을 찾는 것입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;/help/closed-questions&quot; papago-id=&quot;1-3&quot;&gt;스택&lt;/a&gt; 오버플로 &lt;a href=&quot;/help/closed-questions&quot; papago-id=&quot;1-3&quot;&gt;지침을 충족&lt;/a&gt;하지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;현재 답변을 수락하고 있지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/p&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;hr class=&quot;my12 outline-none baw0 bb bc-powder-400&quot;&gt; 
  &lt;div class=&quot;fw-nowrap fc-black-600&quot;&gt; 
   &lt;div class=&quot;d-flex fd-column lh-md&quot;&gt; 
    &lt;div class=&quot;mb0 d-flex&quot;&gt; 
     &lt;div class=&quot;flex--item mr8&quot;&gt; 
      &lt;svg aria-hidden=&quot;true&quot; class=&quot;svg-icon iconLightbulb&quot; width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 18 18&quot;&gt;
       &lt;path d=&quot;M15 6.38A6.48 6.48 0 0 0 7.78.04h-.02A6.49 6.49 0 0 0 2.05 5.6a6.31 6.31 0 0 0 2.39 5.75c.49.39.76.93.76 1.5v.24c0 1.07.89 1.9 1.92 1.9h2.75c1.04 0 1.92-.83 1.92-1.9v-.2c0-.6.26-1.15.7-1.48A6.32 6.32 0 0 0 15 6.37ZM4.03 5.85A4.49 4.49 0 0 1 8 2.02a4.48 4.48 0 0 1 5 4.36 4.3 4.3 0 0 1-1.72 3.44c-.98.74-1.5 1.9-1.5 3.08v.1H7.2v-.14c0-1.23-.6-2.34-1.53-3.07a4.32 4.32 0 0 1-1.64-3.94ZM10 18a1 1 0 0 0 0-2H7a1 1 0 1 0 0 2h3Z&quot;&gt;&lt;/path&gt;
      &lt;/svg&gt; 
     &lt;/div&gt; 
     &lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;책, 도구, 소프트웨어 라이브러리 등에 대한 추천을 구하는 질문은 허용되지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;질문에 사실과 인용문으로 답변할 수 있도록 질문을 편집할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
    &lt;/div&gt; 
    &lt;div class=&quot;mb0 mt6 d-flex&quot;&gt; 
     &lt;p class=&quot;ml24 pl2&quot; papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;span class=&quot;relativetime&quot; papago-id=&quot;3-1&quot; title=&quot;2015-03-140 02:31:49Z&quot; papago-attr-id=&quot;1&quot;&gt;8년&lt;/span&gt; 전에 &lt;span class=&quot;relativetime&quot; papago-id=&quot;3-1&quot; title=&quot;2015-03-140 02:31:49Z&quot; papago-attr-id=&quot;2&quot;&gt;문&lt;/span&gt;을 닫았습니다.&lt;/font&gt;&lt;/p&gt; 
    &lt;/div&gt; 
    &lt;div class=&quot;ml24 pl2&quot;&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;mt24 d-flex gsx gs8&quot;&gt; 
   &lt;a class=&quot;s-btn s-btn__outlined flex--item js-post-notice-edit-post&quot; href=&quot;/posts/2194547/edit&quot; papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 질문을 개선합니다.&lt;/font&gt;&lt;/a&gt; 
  &lt;/div&gt; 
 &lt;/aside&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;루비를 위한 패키지를 작성해서 보석으로 제공하고 싶습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;입니까?&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 된 튜토리얼, 요? 그것을하방배데된도얼튜좋까토리움, 있캐스등습니이트스크린?&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Rubygems.org&lt;a href=&quot;http://guides.rubygems.org/&quot; rel=&quot;noreferrer&quot; papago-id=&quot;8-0&quot;&gt; 의 가이드&lt;/a&gt;는 보석을 직접 작성할 수 있는 최고의 자료 중 하나입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;앱에서 &lt;a href=&quot;http://gembundler.com/&quot; rel=&quot;noreferrer&quot; papago-id=&quot;9-1&quot;&gt;Bundler&lt;/a&gt;를 사용하는 경우 Bundler를 &lt;a href=&quot;https://github.com/radar/guides/blob/master/gem-development.md&quot; papago-id=&quot;9-3&quot; rel=&quot;noreferrer&quot;&gt;사용&lt;/a&gt;한 Ryan Bigg의 &lt;a href=&quot;https://github.com/radar/guides/blob/master/gem-development.md&quot; papago-id=&quot;9-3&quot; rel=&quot;noreferrer&quot;&gt;RubyGem 개발&lt;/a&gt; 가이드와 &lt;a href=&quot;http://railscasts.com/episodes/245-new-gem-with-bundler&quot; rel=&quot;noreferrer&quot; papago-id=&quot;9-5&quot;&gt;Bundler로 보석을 만드는 Railscast&lt;/a&gt;를 참조할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;보석을 작성하는 데 도움이 되는 도구에 관심이 있다면 다음을 수행합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://github.com/technicalpickles/jeweler&quot; rel=&quot;noreferrer&quot; papago-id=&quot;11-0&quot;&gt;Jeweler&lt;/a&gt; - Rubygem 프로젝트를 만들고 관리하기 위한 의견을 제시하는 도구입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://railscasts.com/episodes/183-gemcutter-jeweler&quot; papago-id=&quot;11-2&quot; rel=&quot;noreferrer&quot;&gt;젬커터와 쥬얼러&lt;/a&gt; 레일 &lt;a href=&quot;http://railscasts.com/episodes/183-gemcutter-jeweler&quot; papago-id=&quot;11-2&quot; rel=&quot;noreferrer&quot;&gt;캐스트&lt;/a&gt;도 있습니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://github.com/seattlerb/hoe&quot; rel=&quot;noreferrer&quot; papago-id=&quot;12-0&quot;&gt;Hoe&lt;/a&gt; - 좌석에 있는 사람들로부터.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://github.com/lazyatom/gem-this&quot; rel=&quot;noreferrer&quot; papago-id=&quot;13-0&quot;&gt;gem-이것&lt;/a&gt;은 많은 유용한 레이크 작업을 추가합니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일부 자습서/가이드:&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;http://rubysource.com/creating-your-first-gem/&quot; rel=&quot;noreferrer&quot; papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;첫 번째 보석 만들기&lt;/font&gt;&lt;/a&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://rails-bestpractices.com/blog/posts/8-using-bundler-and-rvm-to-build-a-rubygem&quot; papago-id=&quot;16-0&quot; rel=&quot;noreferrer&quot;&gt;번들러&lt;/a&gt; 및 &lt;a href=&quot;http://rails-bestpractices.com/blog/posts/8-using-bundler-and-rvm-to-build-a-rubygem&quot; papago-id=&quot;16-0&quot; rel=&quot;noreferrer&quot;&gt;rvm을 사용하여 루비젬 구축&lt;/a&gt; - 번들러 및 rvm을 사용하여 보석 생성&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;http://weblog.rubyonrails.org/2009/9/1/gem-packaging-best-practices&quot; rel=&quot;noreferrer&quot; papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;보석 포장:&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;모범 사례&lt;/font&gt;&lt;/a&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://royw.wordpress.com/2010/06/07/ruby-gem-recipe/&quot; rel=&quot;noreferrer&quot; papago-id=&quot;18-0&quot;&gt;Ruby&lt;/a&gt; Gem Recipe - 번들러와 보석상을 사용하여 보석을 만드는 방법 소개&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://buzaz.com/index.php/2010/01/03/how-to-build-a-ruby-gem/&quot; papago-id=&quot;19-0&quot; rel=&quot;noreferrer&quot;&gt;루비 보석을 만들고 보석&lt;/a&gt; 절단기에서 &lt;a href=&quot;http://buzaz.com/index.php/2010/01/03/how-to-build-a-ruby-gem/&quot; papago-id=&quot;19-0&quot; rel=&quot;noreferrer&quot;&gt;호스트하는 방법&lt;/a&gt; - 에코와 보석 절단기를 사용한 튜토리얼&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://blog.101ideas.cz/post/353002256/the-truth-about-gemspecs&quot; rel=&quot;noreferrer&quot; papago-id=&quot;20-0&quot;&gt;젬스펙에 대한 진실&lt;/a&gt; - 젬스펙과 이를 다루는 팁을 살펴봅니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://www.owengriffin.com/?p=63&quot; rel=&quot;noreferrer&quot; papago-id=&quot;21-0&quot;&gt;RubyGems&lt;/a&gt;로 포장 - Jeweler를 위한 빠른 시작 가이드&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://effectif.com/ruby/manor/gem-this&quot; papago-id=&quot;22-0&quot; rel=&quot;noreferrer&quot;&gt;James&lt;/a&gt; Adam - 보석을 만드는 데 도움이 되는 도구를 검토하는 &lt;a href=&quot;http://effectif.com/ruby/manor/gem-this&quot; papago-id=&quot;22-0&quot; rel=&quot;noreferrer&quot;&gt;보석(&lt;/a&gt;호, 새 보석, 에코, 보석 허브, 보석 세공, 보석 세공)&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;http://tagaholic.me/2010/02/03/using-gemcutters-api-from-the-commandline.html&quot; rel=&quot;noreferrer&quot; papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;명령줄에서 Gemcuter의 API 사용&lt;/font&gt;&lt;/a&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://pablocantero.com/blog/2011/01/02/new-gem-with-bundler-sample-rakefile/&quot; papago-id=&quot;24-0&quot; rel=&quot;noreferrer&quot;&gt;번들러가 포함된 새로운 Gem&lt;/a&gt; – &lt;a href=&quot;http://pablocantero.com/blog/2011/01/02/new-gem-with-bundler-sample-rakefile/&quot; papago-id=&quot;24-0&quot; rel=&quot;noreferrer&quot;&gt;샘플 레이크&lt;/a&gt; 파일 - 보석을 배포하고 게시하는 데 유용한 레이크 파일&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;http://rakeroutes.com/blog/lets-write-a-gem-part-one/&quot; rel=&quot;noreferrer&quot; papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;보석을 써요&lt;/font&gt;&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;http://coding.smashingmagazine.com/2014/04/08/how-to-build-ruby-gem-with-bundler-travis-ci-coveralls/&quot; rel=&quot;noreferrer&quot; papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;번들러로 루비 보석을 만드는 방법, 테스트 주도 개발, 트래비스 CI 및 커버올, 오 마이!&lt;/font&gt;&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;p papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 보통 Gems를 만들고 출시하는 방법은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://&lt;a href=&quot;https://github.com&quot; papago-id=&quot;28-1&quot;&gt;github&lt;/a&gt;.com 에 가입합니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://&lt;a href=&quot;https://rubygems.org&quot; papago-id=&quot;29-1&quot;&gt;rubygems&lt;/a&gt;.org 에 가입합니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;$ gem install ore rubygems-tasks rdoc rspec&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;$ mine awesome_gem&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;cd awesome_gem/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;편집합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;README.rdoc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;awesome_gem.gemspec&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;코드 쓰기&lt;/font&gt;&lt;/font&gt;&lt;code&gt;lib/awesome_gem/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;RSpec 테스트 추가&lt;/font&gt;&lt;/font&gt;&lt;code&gt;specs/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;릴리스할 준비가 되면 업데이트합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ChangeLog.rdoc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파일, 실행&lt;/font&gt;&lt;/font&gt;&lt;code&gt;rake spec&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;rake rerdoc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;,열어 보세요.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;html/index.html&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오타가 있는지 다시 한 번 확인합니다&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;rake release&lt;/code&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(선택사항) 새로운 멋진 보석에 대한 링크와 설명을 http://&lt;a href=&quot;http://rubyflow.com&quot; papago-id=&quot;40-1&quot;&gt;rubyflow&lt;/a&gt;.com 에 제출합니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;앉아서 첫 번째 젬의 영광을 만끽하세요 :)&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;보석을 작성하기 시작할 필요가 없고, 코드를 작성하고, 테스트를 작성하고, 원하는 대로 사용할 수 있으며, 만족스러운 경우 &lt;a href=&quot;http://github.com/lazyatom/gem-this&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;42-1&quot;&gt;보석을 사용&lt;/a&gt;하여 관련 Rake 파일을 생성할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다른 보석들이 취하는 접근 방식(lib 디렉토리를 가지고, 다른 보석들과 충돌할 수 있는 방식으로 파일 이름을 지정하는 것을 피하고, 가능하면 테스트를 작성하고, 읽기를 수행)을 고수한다면 도움이 되지만, 그럴 필요는 없습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;44&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여러분이 공유하고 싶은 것이 &lt;a href=&quot;http://github.com&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;44-1&quot;&gt;있으면&lt;/a&gt;, 그것을 github 위에 놓고 그것을 &lt;a href=&quot;http://gemcutter.org&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;44-3&quot;&gt;보석&lt;/a&gt; 절단기에 밀어 넣으세요.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;45&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;너무 생각하지 말고, 호미나 다른 과잉 살상 도구를 사용하지 말고, 재미있게 놀고, 내가 하지 않을 일은 하지 마.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;46&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/2194547/&lt;a href=&quot;https://stackoverflow.com/questions/2194547/ruby-how-to-write-a-gem&quot; target=&quot;_blank&quot; papago-id=&quot;46-1&quot;&gt;ruby-how-to-write-a-gem&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/640</guid>
      <comments>https://firstcheck.tistory.com/640#entry640comment</comments>
      <pubDate>Thu, 22 Jun 2023 23:40:49 +0900</pubDate>
    </item>
    <item>
      <title>matplotlib를 사용하여 범례 프레임의 테두리 제거 또는 조정</title>
      <link>https://firstcheck.tistory.com/639</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;matplotlib를 사용하여 범례 프레임의 테두리 제거 또는 조정&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;matplotlib을 사용하여 그림을 그리는 경우:&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;범례의 상자를 제거하는 방법은 무엇입니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;범례 상자의 테두리 색을 변경하는 방법은 무엇입니까?&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;범례의 상자 테두리만 제거하는 방법은 무엇입니까?&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt;&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;matplotlib을 사용하여 그림을 그리는 경우:&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;범례의 상자를 제거하는 방법은 무엇입니까?&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;plt.legend(frameon=False)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;범례 상자의 테두리 색을 변경하는 방법은 무엇입니까?&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;leg = plt.legend()
leg.get_frame().set_edgecolor('b')
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;범례의 상자 테두리만 제거하는 방법은 무엇입니까?&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;leg = plt.legend()
leg.get_frame().set_linewidth(0.0)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;를 위해&lt;/font&gt;&lt;/font&gt;&lt;code&gt;matplotlib&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;객체 지향 접근 방식:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;axes.legend(frameon=False)

leg = axes.legend()
leg.get_frame().set_edgecolor('b')
leg.get_frame().set_linewidth(0.0)
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;답을 찾는 데 오랜 시간이 걸렸기 때문에 한 가지 더 관련된 질문이 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;범례 배경을 공백으로 만드는 방법&lt;em papago-id=&quot;12-1&quot;&gt;(예&lt;/em&gt;: 흰색이 아닌 투명):&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;legend = plt.legend()
legend.get_frame().set_facecolor('none')
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;경고, 당신이 원하는 것.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;'none'&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(문자열).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;code&gt;None&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대신 기본 색상을 의미합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/25540259/&lt;a href=&quot;https://stackoverflow.com/questions/25540259/remove-or-adapt-border-of-frame-of-legend-using-matplotlib&quot; target=&quot;_blank&quot; papago-id=&quot;16-1&quot;&gt;remove-or-adapt-border-of-frame-of-legend-using-matplotlib&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/639</guid>
      <comments>https://firstcheck.tistory.com/639#entry639comment</comments>
      <pubDate>Thu, 22 Jun 2023 23:37:43 +0900</pubDate>
    </item>
    <item>
      <title>봄에 application.properties에서 상대 경로 지정</title>
      <link>https://firstcheck.tistory.com/638</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;봄에 application.properties에서 상대 경로 지정&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아래 지정된 대로 Spring boot application의 application.properties 파일에서 상대 경로를 사용하여 파일 리소스를 조회할 수 있는 방법이 있습니까?&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;spring.datasource.url=jdbc:hsqldb:file:${project.basedir}/db/init
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Spring boot을 사용하여 업로드 샘플을 빌드하고 있는데 동일한 문제가 발생하면 프로젝트 루트 경로만 가져오려고 합니다. (예: /sring-boot-upload)&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아래 코드가 작동한다는 것을 알게 되었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;upload.dir.location=${user.dir}\\uploadFolder
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;@membersound 답변은 하드코드된 경로를 두 부분으로 나누는 것일 뿐 속성을 동적으로 해결하는 것은 아닙니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신이 원하는 것을 달성하는 방법을 알려줄 수 있지만, 당신은 &lt;strong papago-id=&quot;0-1&quot;&gt;이해&lt;/strong&gt;해야 합니다.&lt;/font&gt;&lt;/font&gt; &lt;code&gt;project.basedir&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;응용프로그램을 병 또는 전쟁으로 실행할 때.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;로컬 작업 영역 외부에 소스 코드 구조가 없습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;만약 당신이 여전히 테스트를 위해 이것을 하고 싶다면, 그것은 실현 가능하며 당신이 필요로 하는 것은 조작하는 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;PropertySource&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가장 간단한 옵션은 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;정의&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ApplicationContextInitializer&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 거기에 재산을 설정합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 것이 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;    public class MyApplicationContextInitializer implements ApplicationContextInitializer&amp;lt;ConfigurableApplicationContext&amp;gt; {
    @Override
    public void initialize(ConfigurableApplicationContext appCtx) {
        try {
            // should be /&amp;lt;path-to-projectBasedir&amp;gt;/build/classes/main/
            File pwd = new File(getClass().getResource(&quot;/&quot;).toURI());
            String projectDir = pwd.getParentFile().getParentFile().getParent();
            String conf = new File(projectDir, &quot;db/init&quot;).getAbsolutePath();
            Map&amp;lt;String, Object&amp;gt; props = new HashMap&amp;lt;&amp;gt;();
            props.put(&quot;spring.datasource.url&quot;, conf);
            MapPropertySource mapPropertySource = new MapPropertySource(&quot;db-props&quot;, props);
            appCtx.getEnvironment().getPropertySources().addFirst(mapPropertySource);
        } catch (URISyntaxException e) {
            throw new RuntimeException(e);
        }
    }}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부팅을 사용 중인 것 같으니 그냥 선언하면 됩니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;context.initializer.classes=com.example.MyApplicationContextInitializer&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신의&lt;/font&gt;&lt;/font&gt;&lt;code&gt;application.properties&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부팅은 시작할 때 이 클래스를 실행합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;13-0&quot;&gt;다시&lt;/strong&gt; 한 번 &lt;strong papago-id=&quot;13-0&quot;&gt;주의&lt;/strong&gt;할 사항:&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;소스 코드 구조에 따라 다르므로 로컬 작업 공간 외부에서는 작동하지 않습니다.&lt;/font&gt;&lt;/p&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 여기서 Gradle 프로젝트 구조를 가정했습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;/build/classes/main&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;필요한 경우 빌드 도구에 따라 조정합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;한다면&lt;/font&gt;&lt;/font&gt;&lt;code&gt;MyApplicationContextInitializer&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;src/test/java&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;pwd&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;될 것이다&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;projectBasedir&amp;gt;/build/classes/test/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;,것은 아니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;projectBasedir&amp;gt;/build/classes/main/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/li&gt; 
&lt;/ol&gt;&lt;pre&gt;&lt;code&gt;your.basedir=${project.basedir}/db/init
spring.datasource.url=jdbc:hsqldb:file:${your.basedir}

@Value(&quot;${your.basedir}&quot;)
private String file;

new ClassPathResource(file).getURI().toString()
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/36940458/&lt;a href=&quot;https://stackoverflow.com/questions/36940458/specifying-relative-path-in-application-properties-in-spring&quot; target=&quot;_blank&quot; papago-id=&quot;23-1&quot;&gt;specifying-relative-path-in-application-properties-in-spring&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/638</guid>
      <comments>https://firstcheck.tistory.com/638#entry638comment</comments>
      <pubDate>Thu, 22 Jun 2023 23:27:12 +0900</pubDate>
    </item>
    <item>
      <title>Spring Application Builder는 언제 사용합니까?</title>
      <link>https://firstcheck.tistory.com/637</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Spring Application Builder는 언제 사용합니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Spring Microservices 튜토리얼을 보고 있는데 다음과 같은 내용이 포함되어 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;new SpringApplicationBuilder(ZuulApplication.class).web(true).run(args);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대부분의 경우 Spring Boot 응용 프로그램을 시작할 때 표시됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SpringApplication.run(Application.class, args);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Spring Application Builder를 본 것은 이번이 처음입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;우리가 이것을 일반적으로 언제 사용해야 합니까?&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여러 데이터베이스 또는 구조를 사용하여 작업해야 하고 각 데이터베이스가 서로 격리되어야 하는 문제를 해결해야 한다고 가정해 보겠습니다. 이 경우에는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;SpringApplicationBuilder&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부모 및 자식 컨텍스트 생성을 통해 모든 도메인을 격리할 수 있고 서로 다른 도메인 문제를 혼합할 필요가 없기 때문에, 예를 들어 각각의 도메인, 컨트롤러, 애플리케이션, 애플리케이션, 애플리케이션, 애플리케이션, 애플리케이션, 애플리케이션, 애플리케이션, 애플리케이션을 구성할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저장소를 포함하지만 이러한 복잡성을 모두 혼합하고 싶지는 않습니다. 대신 두 개의 서로 다른 구성을 생성하여&lt;/font&gt;&lt;/font&gt;&lt;code&gt;SpringApplicationBuilder&lt;/code&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt; SpringApplicationBuilder appBuilder = new SpringApplicationBuilder()
        .sources(Parent.class);

 appBuilder.child(Application1.class).run(args);
 appBuilder.child(Application2.class).run(args);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;몇 가지 추가 정보:&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/36312255/springapplicationbuilder-parent-child-hierarchy&quot; papago-id=&quot;6-1&quot;&gt;SpringApplicationBuilder&lt;/a&gt; &lt;a href=&quot;https://docs.spring.io/spring-boot/docs/1.5.6.RELEASE/api/org/springframework/boot/builder/SpringApplicationBuilder.html&quot; papago-id=&quot;6-3&quot; rel=&quot;noreferrer&quot;&gt;예제&lt;/a&gt;, &lt;a href=&quot;https://docs.spring.io/spring-boot/docs/1.5.6.RELEASE/api/org/springframework/boot/builder/SpringApplicationBuilder.html&quot; papago-id=&quot;6-3&quot; rel=&quot;noreferrer&quot;&gt;SpringBuilder의 Java 문서&lt;/a&gt; 및 SpringApplicationBuilder &lt;a href=&quot;https://stackoverflow.com/questions/32097421/create-a-spring-boot-application-with-multiple-child-contexts#36510570&quot; papago-id=&quot;6-5&quot;&gt;사용 방법&lt;/a&gt;에 대한 &lt;a href=&quot;https://stackoverflow.com/questions/32097421/create-a-spring-boot-application-with-multiple-child-contexts#36510570&quot; papago-id=&quot;6-5&quot;&gt;기타 예제와 함께&lt;/a&gt; &lt;a href=&quot;https://stackoverflow.com/questions/36312255/springapplicationbuilder-parent-child-hierarchy&quot; papago-id=&quot;6-1&quot;&gt;게시&lt;/a&gt;합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;한 가지 일반적인 사용 사례는 Weblogic 등에 기존 배포 전쟁 파일을 배포하려는 경우입니다. - &lt;a href=&quot;https://docs.spring.io/spring-boot/docs/current/reference/html/howto-traditional-deployment.html#howto-traditional-deployment&quot; rel=&quot;noreferrer&quot; papago-id=&quot;7-1&quot;&gt;기존 배포&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;와 함께&lt;/font&gt;&lt;/font&gt;&lt;code&gt;SpringApplication&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대부분의 응용 프로그램 설정에는 프로필 및 사용할 속성 파일 등과 같은 하드 코딩된 기본값이 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 그것을 이해하기 위해 이 수업의 코드를 볼 필요가 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;와 함께&lt;/font&gt;&lt;/font&gt;&lt;code&gt;SpringApplicationBuilder&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;응용 프로그램이 시작되기 전에 이러한 응용 프로그램 기본 설정 중 일부를 변경할 수 있지만 대부분의 설정에는 적절한 기본값이 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 몇 줄의 코드를 사용하면 실제 기본 비즈니스 로직은 그대로 유지하면서 서로 다른 목적(내장형 배포, 외부 배포, 테스트 등)을 위해 서로 다른 설정을 사용하여 서로 다른 애플리케이션을 구축할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;응용 프로그램에서 사용한 내용&lt;/font&gt;&lt;/font&gt;&lt;code&gt;SpringApplicationBuilder&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에서&lt;/font&gt;&lt;/font&gt;&lt;code&gt;starter&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어플.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;code&gt;starter&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;실제 응용 프로그램 인스턴스를 프로그래밍 방식으로 시작하는 간단한 응용 프로그램입니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;시작할 프로세스 수와 프로세스 유형 웹/독립 실행형이 다음에 대한 인수로 전달됩니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;starter&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;응용 프로그램, 인수를 기반으로 응용 프로그램 인스턴스가 시작됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용한 적이 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;-w&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;상태 관리를 위한 웹 응용 프로그램으로 시작합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;boolean isWeb = // options parser, parse -w
new SpringApplicationBuilder(SpringBootAngularApp.class).web(isWeb).run(args);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;동일한 작업을 수행하는 다른 방법이 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SpringApplication sp = new SpringApplication(SpringApplicationBuilder.class);       
sp.setWebEnvironment(false);
sp.run(args);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 배너와 로거를 &lt;strong papago-id=&quot;13-1&quot;&gt;사용자&lt;/strong&gt; 지정할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;SpringApplicationBuilder&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더 많은 사용법을 위해 문서를 읽습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/45911357/&lt;a href=&quot;https://stackoverflow.com/questions/45911357/when-do-we-use-a-springapplicationbuilder&quot; target=&quot;_blank&quot; papago-id=&quot;23-1&quot;&gt;when-do-we-use-a-springapplicationbuilder&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/637</guid>
      <comments>https://firstcheck.tistory.com/637#entry637comment</comments>
      <pubDate>Thu, 22 Jun 2023 23:24:13 +0900</pubDate>
    </item>
    <item>
      <title>.NET에서 소수점, 부동소수점 및 이중점의 차이는 무엇입니까?</title>
      <link>https://firstcheck.tistory.com/636</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.NET에서 소수점, 부동소수점 및 이중점의 차이는 무엇입니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사이의 차이점은 무엇입니까?&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;decimal&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;float&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;double&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;NET 서?&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;누가 이걸 언제 쓰겠어요?&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;float&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;: (&quot;C# 칭별의:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;System.Single&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;및 ) 및&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;double&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;: (&quot;C# 칭별의:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;System.Double&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;)는 &lt;a href=&quot;http://csharpindepth.com/Articles/General/FloatingPoint.aspx&quot; papago-id=&quot;9-1&quot; rel=&quot;noreferrer&quot;&gt;&lt;em papago-id=&quot;9-1-1&quot;&gt;부동&lt;/em&gt;&lt;/a&gt; &lt;a href=&quot;http://csharpindepth.com/Articles/General/FloatingPoint.aspx&quot; papago-id=&quot;9-1&quot; rel=&quot;noreferrer&quot;&gt;이진&lt;/a&gt; 점 &lt;a href=&quot;http://csharpindepth.com/Articles/General/FloatingPoint.aspx&quot; papago-id=&quot;9-1&quot; rel=&quot;noreferrer&quot;&gt;유형&lt;/a&gt;입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;code&gt;float&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;32비트입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;double&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;64비트입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;말로 은 다음과 : 다, 음과같숫나타냅다니를자.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;10001.10010110011
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이진 숫자와 이진 포인트의 위치는 모두 값 내에서 인코딩됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;decimal&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;: (&quot;C# 칭별의:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;System.Decimal&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;)은 &lt;a href=&quot;http://csharpindepth.com/Articles/General/Decimal.aspx&quot; papago-id=&quot;14-1&quot; rel=&quot;noreferrer&quot;&gt;&lt;em papago-id=&quot;14-1-1&quot;&gt;부동&lt;/em&gt;&lt;/a&gt; &lt;a href=&quot;http://csharpindepth.com/Articles/General/Decimal.aspx&quot; papago-id=&quot;14-1&quot; rel=&quot;noreferrer&quot;&gt;소수점&lt;/a&gt; 유형입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;즉, 다음과 같은 숫자를 나타냅니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;12345.65789
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다시 말하지만, &lt;em papago-id=&quot;15-1&quot;&gt;소수점&lt;/em&gt;의 숫자와 위치는 모두 값 내에서 인코딩됩니다. 이것이 바로&lt;/font&gt;&lt;/font&gt;&lt;code&gt;decimal&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;고정점 유형 대신 부동 소수점 유형입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;중요한 점은 인간이 정수가 아닌 숫자를 십진수 형식으로 표현하는 데 익숙하고 십진수 표현으로 정확한 결과를 기대한다는 것입니다. 모든 십진수가 이진 부동 소수점(예: 0.1)으로 정확하게 표현되는 것은 아닙니다. 따라서 이진 부동 소수점 값을 사용하면 실제로 0.1에 가까운 값을 얻을 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;부동 소수점을 사용할 때도 근사치를 얻을 수 있습니다. 예를 들어, 1을 3으로 나눈 결과는 정확하게 표현할 수 없습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 경우 사용할 항목:&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;정확한 은 &quot; 연스럽정확소수한게좋다&quot;를 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;decimal&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 보통 인간이 발명한 모든 개념에 적합합니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 재정적 가치가 가장 명백한 예이지만 다른 것들도 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어, 다이빙 선수나 아이스 스케이트 선수에게 주어지는 점수를 생각해 보세요.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어쨌든 정확하게 &lt;em papago-id=&quot;21-1&quot;&gt;측정&lt;/em&gt;할 수 없는 자연의 더 많은 인공물인 가치들에 대하여,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;float&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;double&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더 적합합니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어, 과학적 데이터는 일반적으로 이 형식으로 표시됩니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기서 원래 값은 시작하기에 &quot;소수 정확도&quot;가 아니기 때문에 예상 결과가 &quot;소수 정확도&quot;를 유지하는 것은 중요하지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부동 이진 점 유형은 소수점보다 작업 속도가 훨씬 빠릅니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt;&lt;p papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;정밀도가 가장 큰 차이점입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/dotnet/api/system.single&quot; rel=&quot;noreferrer&quot; papago-id=&quot;25-0&quot;&gt;플로트&lt;/a&gt; - 7자리(32비트)&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/dotnet/api/system.double&quot; rel=&quot;noreferrer&quot; papago-id=&quot;26-0&quot;&gt;이중-15-16자리&lt;/a&gt;(64비트)&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://learn.microsoft.com/en-us/dotnet/api/system.decimal&quot; rel=&quot;noreferrer&quot; papago-id=&quot;27-0&quot;&gt;10진수&lt;/a&gt; -28-29개의 유효 숫자(128비트)&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;소수점 이하는 훨씬 더 높은 정밀도를 가지며 일반적으로 높은 정확도를 요구하는 재무 응용 프로그램에서 사용됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;소수점 이하는 이중/부트보다 훨씬 느립니다(일부 테스트에서는 최대 20배).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;소수점과 부동소수점/더블은 깁스 없이 비교할 수 없는 반면 부동소수점과 더블은 비교할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;소수점 이하에서는 인코딩 또는 후행 0도 허용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;float flt = 1F/3;
double dbl = 1D/3;
decimal dcm = 1M/3;
Console.WriteLine(&quot;float: {0} double: {1} decimal: {2}&quot;, flt, dbl, dcm);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;결과:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;float: 0.3333333  
double: 0.333333333333333  
decimal: 0.3333333333333333333333333333
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;+---------+----------------+---------+----------+---------------------------------------------------------+
| C#      | .Net Framework | Signed? | Bytes    | Possible Values                                         |
| Type    | (System) type  |         | Occupied |                                                         |
+---------+----------------+---------+----------+---------------------------------------------------------+
| sbyte   | System.Sbyte   | Yes     | 1        | -128 to 127                                             |
| short   | System.Int16   | Yes     | 2        | -32,768 to 32,767                                       |
| int     | System.Int32   | Yes     | 4        | -2,147,483,648 to 2,147,483,647                         |
| long    | System.Int64   | Yes     | 8        | -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 |
| byte    | System.Byte    | No      | 1        | 0 to 255                                                |
| ushort  | System.Uint16  | No      | 2        | 0 to 65,535                                             |
| uint    | System.UInt32  | No      | 4        | 0 to 4,294,967,295                                      |
| ulong   | System.Uint64  | No      | 8        | 0 to 18,446,744,073,709,551,615                         |
| float   | System.Single  | Yes     | 4        | Approximately ±1.5e-45 to ±3.4e38                       |
|         |                |         |          |  with ~6-9 significant figures                          |
| double  | System.Double  | Yes     | 8        | Approximately ±5.0e-324 to ±1.7e308                     |
|         |                |         |          |  with ~15-17 significant figures                        |
| decimal | System.Decimal | Yes     | 16       | Approximately ±1.0e-28 to ±7.9e28                       |
|         |                |         |          |  with 28-29 significant figures                         |
| char    | System.Char    | N/A     | 2        | Any Unicode character (16 bit)                          |
| bool    | System.Boolean | N/A     | 1 / 2    | true or false                                           |
+---------+----------------+---------+----------+---------------------------------------------------------+
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://social.msdn.microsoft.com/Forums/vstudio/en-US/921a8ffc-9829-4145-bdc9-a96c1ec174a5/decimal-vs-double-difference?forum=csharpgeneral&quot; rel=&quot;noreferrer&quot; papago-id=&quot;31-0&quot;&gt;자세한 내용은 여기를 참조&lt;/a&gt;하십시오.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;소수점 구조는 정확성을 요구하는 재무 계산에 엄격하게 맞춰져 있으며, 이는 반올림을 상대적으로 용납할 수 없습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;소수는 다음과 같은 이유로 과학적 응용에 적합하지 않습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;측정 중인 물리적 문제 또는 인공물의 실제 한계 때문에 많은 과학적 계산에서 특정 정밀도 손실은 허용됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;정밀도의 손실은 금융에서 허용되지 않습니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;34&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;소수점 연산은 기본 10에서 수행되는 반면, 소수점 연산은 기본 10에서 수행되기 때문에 소수점 연산은 부동 소수점 연산보다 훨씬 느리고 대부분의 연산에서 두 배입니다(즉, 소수점 연산은 MMX/SSE와 같은 FPU 하드웨어에서 처리되는 반면 소수점 연산은 소프트웨어에서 계산됨).&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;35&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;소수점은 더 많은 정밀도 자릿수를 지원하지만 허용할 수 없을 정도로 작은 값 범위를 가집니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 소수는 많은 과학적 가치를 나타내는 데 사용될 수 없습니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;p papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다른 답변과 댓글에서 이미 답변한 수많은 좋은(그리고 일부 나쁜) 정보를 반복하지는 않겠지만, 후속 질문에 팁으로 답하겠습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;em papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;누가 이걸 언제 쓰겠어요?&lt;/font&gt;&lt;/em&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;카운트된 &lt;strong papago-id=&quot;38-1&quot;&gt;값&lt;/strong&gt;에 십진수 사용&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;측정값에 &lt;strong papago-id=&quot;39-1&quot;&gt;부동&lt;/strong&gt;/이중 사용&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;몇 가지 예:&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;p papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;돈 (우리는 돈을 세거나 돈을 재나요?)&lt;/font&gt;&lt;/p&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;p papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;distance(거리를 세는 것입니까, 거리를 측정하는 것입니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;*)&lt;/font&gt;&lt;/p&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;p papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;점수(점수를 세거나 점수를 측정합니까?)&lt;/font&gt;&lt;/p&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p papago-id=&quot;44&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;우리는 항상 돈을 세고 절대 돈을 재서는 안 됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;우리는 보통 거리를 측정합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;우리는 종종 점수를 셉니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;45&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떤 경우에는, 제가 &lt;em papago-id=&quot;45-1&quot;&gt;공칭&lt;/em&gt; 거리라고 &lt;em papago-id=&quot;45-1&quot;&gt;부르는&lt;/em&gt; 것이 실제로 거리를 '계산'하고 싶을 수도 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어, 우리는 도시까지의 거리를 보여주는 국가 표지판을 다루고 있으며, 이러한 거리는 소수점 이하의 숫자(xxx.xkm)를 넘지 않는다는 것을 알고 있습니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;float&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 【例자 7】&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;double&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;는 약 를 가지고 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;decimal&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;는 약  있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;49&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더 나은 정확도가 필요한 경우 플로트 대신 더블을 사용합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;최신 CPU에서는 두 데이터 유형의 성능이 거의 동일합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;플로트를 사용하는 유일한 이점은 공간을 덜 차지한다는 것입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것들을 많이 가지고 있는 경우에만 실질적으로 중요합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;50&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이것이 흥미롭다는 것을 알았습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://download.oracle.com/docs/cd/E19957-01/806-3568/ncg_goldberg.html&quot; rel=&quot;noreferrer&quot; papago-id=&quot;50-1&quot;&gt;부동소수점 산술에 대해 모든 컴퓨터 과학자들이 알아야 할 것&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;51&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아무도 그것을 언급하지 않았습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;52&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기본 설정에서는 부동(시스템)합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;싱글) 및 더블(시스템).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;Double)은 소수점(System)일 때 오버플로 검사를 사용하지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;10진수)는 항상 오버플로 검사를 사용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;53&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제 말은.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;decimal myNumber = decimal.MaxValue;
myNumber += 1;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;54&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오버플로를 &lt;strong papago-id=&quot;54-1&quot;&gt;발생&lt;/strong&gt;시킵니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;54-1&quot;&gt;예외&lt;/strong&gt;.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;55&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 다음과 같은 이점은 없습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;float myNumber = float.MaxValue;
myNumber += 1;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;56&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&amp;amp;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;double myNumber = double.MaxValue;
myNumber += 1;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;앞서 언급했듯이 정수는 정수입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; . ., .42, .007 ▁.▁▁point▁like▁they,'▁can다▁storet7없▁.니습수,00▁.저00▁.를포.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;정수가 아닌 숫자를 저장해야 하는 경우에는 다른 유형의 변수가 필요합니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더블 타입 또는 플로트 타입을 사용할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이러한 유형의 변수는 단어를 사용하는 대신 정확히 같은 방식으로 설정할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;int&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신이 타이핑한&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;double&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;float&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같이:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;float myFloat;
double myDouble;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;float&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;27&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;는 &quot;할 뿐입니다 &quot;점&quot;이라는 뜻의 &quot;점&quot;입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;둘 사이의 차이는 그들이 보유할 수 있는 숫자의 크기에 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위해서&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;float&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;29&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;숫자는 최대 7자리까지 입력할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위해서&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;double&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;30&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;할 수 , &quot;16자리와 &quot;16자리&quot;를 사용할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;정확하게 인 크기는 과 같습니다: 정확히말하면크, 공적인다같다습니음과기는더식▁to다같:니습다▁here▁size음.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;float:  1.5 × 10^-45  to 3.4 × 10^38  
double: 5.0 × 10^-324 to 1.7 × 10^308
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;code&gt;float&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;31&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이고, 는32트숫며이자비,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;double&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;32&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;64비트 숫자입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;68&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;새 단추를 두 번 클릭하여 코드를 확인합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;단추 코드에 다음 세 줄을 추가합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;double myDouble;
myDouble = 0.007;
MessageBox.Show(myDouble.ToString());
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;69&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;프로그램을 중지하고 코딩 창으로 돌아갑니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 줄 변경:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;myDouble = 0.007;
myDouble = 12345678.1234567;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;70&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;프로그램을 실행하고 더블 버튼을 클릭합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;메시지 상자에 번호가 올바르게 표시됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 끝에 다른 숫자를 추가하면 C#이 다시 올림 또는 내림됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;정확성을 원한다면 반올림을 조심해야 한다는 교훈이 있습니다!&lt;/font&gt;&lt;/p&gt;&lt;ol&gt; 
 &lt;li papago-id=&quot;71&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더블과 플로트는 컴파일과 실행 시간 모두에서 예외 없이 정수 0으로 나눌 수 있습니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;72&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;10진수는 정수 0으로 나눌 수 없습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이렇게 하면 컴파일이 항상 실패합니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt;&lt;ul&gt; 
 &lt;li papago-id=&quot;73&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;플로트: ±1.5 x 10^-45 ~ ±3.4 x 10^38 (~7개의 유의한 수치)&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;74&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이중: ±5.0 x 10^-324 ~ ±1.7 x 10^308(15-16개 유의한 수치)&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;75&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;소수: ±1.0 x 10^-28 ~ ±7.9 x 10^28 (28-29개의 유의한 숫자)&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;33&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 저에게 흥미로운 실마리였습니다. 오늘, 우리는 끔찍한 작은 벌레를 가지고 있었습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;decimal&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;34&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다보정낮은가도보다 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;float&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;35&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;36&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;C# 코드에서는 Excel 스프레드시트에서 숫자 값을 읽고 이를 다음과 같이 변환합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;decimal&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;37&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 이것을 보냅니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;decimal&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;38&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;38-1&quot;&gt;서비스로 돌아가서&lt;/em&gt; SQL Server 데이터베이스에 저장합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Microsoft.Office.Interop.Excel.Range cell = …
object cellValue = cell.Value2;
if (cellValue != null)
{
    decimal value = 0;
    Decimal.TryParse(cellValue.ToString(), out value);
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;82&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;거의 &lt;em papago-id=&quot;82-1&quot;&gt;모든&lt;/em&gt; Excel &lt;em papago-id=&quot;82-1&quot;&gt;값&lt;/em&gt;에서 이 작업은 훌륭하게 수행되었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 일부 매우 작은 Excel 값의 경우 사용하면 값이 완전히 손실됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러한 예 중 하나는&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;p papago-id=&quot;83&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;셀 값 = &lt;strong papago-id=&quot;83-1&quot;&gt;0.00006317592&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;p papago-id=&quot;84&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;84-0&quot;&gt;십진법.&lt;/em&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;84-0&quot;&gt;구문 분석(셀 값)을 사용합니다.&lt;/em&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;84-0&quot;&gt;ToString(), out&lt;/em&gt; 값&lt;em papago-id=&quot;84-0&quot;&gt;);&lt;/em&gt; // 0을 &lt;strong papago-id=&quot;84-2&quot;&gt;반환&lt;/strong&gt;합니다.&lt;/font&gt;&lt;/p&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;39&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이상하게도, 그 해결책은 엑셀 값을 다음과 같이 변환하는 것이었습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;double&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;40&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;처음에, 그리고 나서 a로.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;decimal&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;41&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Microsoft.Office.Interop.Excel.Range cell = …
object cellValue = cell.Value2;
if (cellValue != null)
{
    double valueDouble = 0;
    double.TryParse(cellValue.ToString(), out valueDouble);
    decimal value = (decimal) valueDouble;
    …
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;42&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그럼에도 불구하고.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;double&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;43&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;a보다 정밀도가 낮습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;decimal&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;44&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 실제로 소수가 여전히 인식될 수 있도록 보장했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떤 이유에서인지, 실제로는 그렇게 작은 숫자들을 검색할 수 있었지만, 그 숫자들을 0으로 설정할 수 있었습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;91&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이상해요, 아주 이상해요&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;92&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;소수, 이중 및 부동 변수 유형은 값을 저장하는 방식이 다릅니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;정밀도는 부동 소수점 데이터 유형이 단일 정밀도(32비트) 부동 소수점 데이터 유형이고 이중 정밀도(64비트) 부동 소수점 데이터 유형이 128비트 부동 소수점 데이터 유형인 주요 차이점입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;93&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;플로트 - 32비트(7자리)&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;94&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이중 - 64비트(15-16자리)&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;95&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;10진수 - 128비트(28-29자리의 유효한 숫자)&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;96&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;추가 정보...&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://net-informations.com/q/faq/float.html&quot; rel=&quot;noreferrer&quot; papago-id=&quot;96-1&quot;&gt;소수점, 부동 소수점 및 이중점의 차이&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;97&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;메모리와 성능이 모두 중요한 게임 및 임베디드 시스템과 같은 응용 프로그램의 경우 일반적으로 float가 더 빠르고 2배 크기의 절반이기 때문에 선택할 수 있는 숫자 유형입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;정수가 선택의 무기였지만, 현대의 프로세서에서는 부동소수점 성능이 정수를 추월했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;십진법이 나왔습니다!&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;98&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 모든 유형의 문제는 특정한 부정확성이 존재한다는 것이고 이 문제는 다음 예제와 같이 작은 소수로 발생할 수 있다는 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Dim fMean as Double = 1.18
Dim fDelta as Double = 0.08
Dim fLimit as Double = 1.1

If fMean - fDelta &amp;lt; fLimit Then
    bLower = True
Else
    bLower = False
End If
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;99&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;질문:.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;bLower 변수에 포함되는 값은 무엇입니까?&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;100&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;답변: 32비트 기계에서 Blower는 TRUE를 포함합니다!!!&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;101&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Double을 Decimal로 대체하면 bLower에 FALSE가 포함되어 있어 좋은 답변입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;102&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이중으로, 문제는 fMean-fDelta = 1.0999999이고 1.1보다 낮다는 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;103&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;주의:&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;소수점은 더 높은 정밀도를 가진 2배에 불과하고 정밀도는 항상 한계가 있기 때문에 다른 숫자에도 동일한 문제가 분명히 존재할 수 있다고 생각합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;104&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사실, 더블, 플로트, 그리고 십진법은 코볼에서 이진법 십진법에 해당합니다!&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;105&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;COBOL에 구현된 다른 숫자 유형은 에 존재하지 않는 것이 유감입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;넷. COBOL을 모르는 사람들을 위해 COBOL에는 다음과 같은 숫자 유형이 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;BINARY or COMP like float or double or decimal
PACKED-DECIMAL or COMP-3 (2 digit in 1 byte)
ZONED-DECIMAL (1 digit in 1 byte) 
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;106&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;간단히 말하면,&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li papago-id=&quot;107&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;소수, 이중 및 부동 변수 유형은 값을 저장하는 방식이 다릅니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;108&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;정밀도는 &lt;strong papago-id=&quot;108-1&quot;&gt;&lt;em papago-id=&quot;108-1-0&quot;&gt;단일&lt;/em&gt;&lt;/strong&gt; 정밀도(32비트) 부동 소수점 데이터 유형, &lt;strong papago-id=&quot;108-5&quot;&gt;이중&lt;/strong&gt; 정밀도(64비트) 부동 소수점 데이터 유형, &lt;strong papago-id=&quot;108-7&quot;&gt;소수점&lt;/strong&gt; 데이터 유형이 128비트 부동 소수점 데이터 유형인 &lt;strong papago-id=&quot;108-3&quot;&gt;주요&lt;/strong&gt; &lt;strong papago-id=&quot;108-1&quot;&gt;&lt;em papago-id=&quot;108-1-0&quot;&gt;차이&lt;/em&gt;&lt;/strong&gt;(단일 차이가 아님)입니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;109&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;요약 표:&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/==========================================================================================
    Type       Bits    Have up to                   Approximate Range 
/==========================================================================================
    float      32      7 digits                     -3.4 × 10 ^ (38)   to +3.4 × 10 ^ (38)
    double     64      15-16 digits                 ±5.0 × 10 ^ (-324) to ±1.7 × 10 ^ (308)
    decimal    128     28-29 significant digits     ±7.9 x 10 ^ (28) or (1 to 10 ^ (28)
/==========================================================================================
&lt;/code&gt;&lt;/pre&gt; You can read more 
&lt;a href=&quot;http://net-informations.com/q/faq/float.html&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;110&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기서&lt;/font&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/float&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;111&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;흘러가다&lt;/font&gt;&lt;/a&gt;, 
&lt;a href=&quot;https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/double&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;112&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더블&lt;/font&gt;&lt;/a&gt;, and 
&lt;a href=&quot;https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/decimal&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;113&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;십진법&lt;/font&gt;&lt;/a&gt;.
&lt;p&gt;&lt;/p&gt;&lt;p papago-id=&quot;114&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이들 각각의 주요 차이점은 정밀도입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;float&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;45&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 숫자 입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;double&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;46&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 숫자 입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;decimal&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;47&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 숫자 입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;p&gt;&lt;strong papago-id=&quot;118&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;플로트:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;48&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부동 이진 점 유형 변수입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;즉, 이진 형식으로 숫자를 나타냅니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;48-1&quot;&gt;플로트&lt;/strong&gt;는 단일 정밀도입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;32 bits(6-9 significant figures)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;49&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;가 매우 높기 &lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;에 그래픽 &lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;되며, &lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;가 그다지 중요하지&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;에서도 사용됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;처리 능력에 대한 요구가 매우 높기 때문에 그래픽 라이브러리에서 주로 사용되며 반올림 오차가 그다지 중요하지 않은 조건에서도 사용됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;121&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;두 배:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;50&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 두 배의 정밀도를 갖는 부동 이진 점 유형 변수입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;64 bits size(15-17 significant figures)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;51&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이중은 재무 애플리케이션과 높은 정확도가 필요한 장소를 제외하고 실제 가치에 가장 일반적으로 사용되는 데이터 유형입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;124&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;십진수:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;52&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부동 소수점 유형 변수입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;,  즉, 십를사여숫나자타를니다냅용하수진▁▁decimal▁▁number,다ents를 사용하여 숫자를 나타낸다는 뜻입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;(0-9)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;53&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것은 사용합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;128 bits(28-29 significant figures)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;54&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;데이터를 저장하고 표현하는 데 사용됩니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 플로트 및 더블보다 정밀도가 높습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;정밀도가 높고 반올림 오류를 피하기 쉽기 때문에 주로 재무 애플리케이션에 사용됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;128&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;using System;
  
public class GFG {
  
    static public void Main()
    {
  
        double d = 0.42e2;    //double data type
        Console.WriteLine(d); // output 42
  
        float f = 134.45E-2f;  //float data type
        Console.WriteLine(f); // output: 1.3445
  
        decimal m = 1.5E6m;   //decimal data type
        Console.WriteLine(m); // output: 1500000
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2 papago-id=&quot;129&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음을 기준으로 부동 소수점, 이중 소수점 및 소수점 비교:&lt;/font&gt;&lt;/h2&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;130&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용된 비트 수:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;131&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Float은 32비트를 사용하여 데이터를 나타냅니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;132&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Double은 64비트를 사용하여 데이터를 나타냅니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;133&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;십진수는 128비트를 사용하여 데이터를 나타냅니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;134&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;값 범위:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;p papago-id=&quot;135&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;플로트 값의 범위는 약 ±1.5e-45 ~ ±3.4e38입니다.&lt;/font&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;p papago-id=&quot;136&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이중 값의 범위는 약 ±5.0e-324 ~ ±1.7e308입니다.&lt;/font&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;p papago-id=&quot;137&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;10진수 값의 범위는 약 ±1.0e-28 ~ ±7.9e28입니다.&lt;/font&gt;&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;138&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;정밀도:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;139&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부동 소수점은 단일 정밀도로 데이터를 나타냅니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;140&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;데이터를 두 배의 정밀도로 나타냅니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;141&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;소수점이 부동 소수점과 이중점보다 정밀도가 높습니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;142&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;정확도:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;143&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부동 소수점과 이중 소수점보다 정확도가 낮습니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;144&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이중은 부동 소수점보다 정확하지만 소수점보다 정확하지 않습니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;145&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;소수점이 부동 소수점과 이중점보다 정확합니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;h2 papago-id=&quot;146&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;소수점, 부동 소수점 및 이중점을 정의하려면 에서&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;망(c#)&lt;/font&gt;&lt;/h2&gt; 
&lt;p papago-id=&quot;147&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;값을 다음과 같이 언급해야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Decimal dec = 12M/6;
Double dbl = 11D/6;
float fl = 15F/6;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;148&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;결과를 확인합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;h2 papago-id=&quot;149&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;각 사용자가 차지하는 바이트 수는&lt;/font&gt;&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;Float - 4
Double - 8
Decimal - 12
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;150&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/618535/&lt;a href=&quot;https://stackoverflow.com/questions/618535/difference-between-decimal-float-and-double-in-net&quot; target=&quot;_blank&quot; papago-id=&quot;150-1&quot;&gt;difference-between-decimal-float-and-double-in-net&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/636</guid>
      <comments>https://firstcheck.tistory.com/636#entry636comment</comments>
      <pubDate>Fri, 2 Jun 2023 23:00:53 +0900</pubDate>
    </item>
    <item>
      <title>Ruby를 사용하여 문자열이 기본적으로 따옴표의 정수인지 테스트하는 방법</title>
      <link>https://firstcheck.tistory.com/635</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Ruby를 사용하여 문자열이 기본적으로 따옴표의 정수인지 테스트하는 방법&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 필요해요, ㅠㅠㅠㅠㅠㅠㅠ&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;is_an_integer&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, 디에어&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;&quot;12&quot;.is_an_integer?&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;truetrue를 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;&quot;blah&quot;.is_an_integer?&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;false를 반환합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;루비에서 어떻게 해야 하나요?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;regex를 작성하고 싶지만 제가 모르는 도우미가 있을 것 같습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;자, 여기 쉬운 방법이 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;class String
  def is_integer?
    self.to_i.to_s == self
  end
end

&amp;gt;&amp;gt; &quot;12&quot;.is_integer?
=&amp;gt; true
&amp;gt;&amp;gt; &quot;blah&quot;.is_integer?
=&amp;gt; false
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 문자열을 변환하는 예외를 유발하는 해결책에 동의하지 않습니다. 예외는 제어 흐름이 아니며, 올바른 방법으로 수행하는 것이 좋습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇긴 하지만, 위의 제 솔루션은 기본이 아닌 10 정수를 다루지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음은 예외 없이 사용할 수 있는 방법입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;  class String
    def integer? 
      [                          # In descending order of likeliness:
        /^[-+]?[1-9]([0-9]*)?$/, # decimal
        /^0[0-7]+$/,             # octal
        /^0x[0-9A-Fa-f]+$/,      # hexadecimal
        /^0b[01]+$/              # binary
      ].each do |match_pattern|
        return true if self =~ match_pattern
      end
      return false
    end
  end
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;정규식을 사용할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기 @janm의 제안이 있는 기능이 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;class String
    def is_i?
       !!(self =~ /\A[-+]?[0-9]+\z/)
    end
end
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;@wich의 의견에 따라 편집된 버전:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;class String
    def is_i?
       /\A[-+]?\d+\z/ === self
    end
end
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;양수만 확인하면 되는 경우&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;  if !/\A\d+\z/.match(string_to_check)
      #Is not a positive number
  else
      #Is all good ..continue
  end  
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Integer(str)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;상승하는지 확인합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;def is_num?(str)
  !!Integer(str)
rescue ArgumentError, TypeError
  false
end
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이는 다음과 같은 경우에 사실로 돌아온다는 점을 지적해야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&quot;01&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에 적합하지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&quot;09&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 문에때 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;09&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;올바른 정수 리터럴이 아닙니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;원하는 행동이 아니라면 추가할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;10&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 주서로으장의 두 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Integer&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서 그 숫자는 항상 기본 10으로 해석됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Ruby 2.6.0은 &lt;a href=&quot;https://rubyreferences.github.io/rubychanges/2.6.html#numeric-methods-have-exception-argument&quot; papago-id=&quot;19-1&quot; rel=&quot;noreferrer&quot;&gt;예외를 발생시키지 않고 정수로 캐스팅&lt;/a&gt;할 수 &lt;a href=&quot;https://rubyreferences.github.io/rubychanges/2.6.html#numeric-methods-have-exception-argument&quot; papago-id=&quot;19-1&quot; rel=&quot;noreferrer&quot;&gt;있으며&lt;/a&gt; 반환됩니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;nil&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;캐스팅이 실패하면,&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 그 이후로&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;nil&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대부분은 다음과 같이 행동합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;false&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Ruby에서는 다음과 같은 정수를 쉽게 확인할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;if Integer(my_var, exception: false)
  # do something if my_var can be cast to an integer
end
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&quot;12&quot;.match(/^(\d)+$/)      # true
&quot;1.2&quot;.match(/^(\d)+$/)     # false
&quot;dfs2&quot;.match(/^(\d)+$/)    # false
&quot;13422&quot;.match(/^(\d)+$/)   # true
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;라이너 하나를 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;str = ...
int = Integer(str) rescue nil

if int
  int.times {|i| p i}
end
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아니 심지어는&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;int = Integer(str) rescue false
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;수행하려는 작업에 따라 rescue 절이 있는 시작 엔드 블록을 직접 사용할 수도 마찬가지입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;begin
  str = ...
  i = Integer(str)

  i.times do |j|
    puts j
  end
rescue ArgumentError
  puts &quot;Not an int, doing something else&quot;
end
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;class String
  def integer?
    Integer(self)
    return true
  rescue ArgumentError
    return false
  end
end
&lt;/code&gt;&lt;/pre&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 접두사는 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;is_&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;나는 물음표 방식에 바보 같은 것을 발견했다, 나는 좋아합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&quot;04&quot;.integer?&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다 훨씬 더 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&quot;foo&quot;.is_integer?&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것은 sepp2k에 의한 합리적인 해결책을 사용합니다, 그것은 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&quot;01&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;등등.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;물체 지향적이야, 야.&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;은 가장좋간단방다같습다니음과법은한고▁is다를 사용하는 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Float&lt;/code&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;val = Float &quot;234&quot; rescue nil

Float &quot;234&quot; rescue nil #=&amp;gt; 234.0

Float &quot;abc&quot; rescue nil #=&amp;gt; nil

Float &quot;234abc&quot; rescue nil #=&amp;gt; nil

Float nil rescue nil #=&amp;gt; nil

Float &quot;&quot; rescue nil #=&amp;gt; nil
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;code&gt;Integer&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 좋지만 돌아올 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;0&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위해서&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Integer nil&lt;/code&gt;&lt;/p&gt;&lt;p papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;선호하는 항목:&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;config/initializers/string.message&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;class String
  def number?
    Integer(self).is_a?(Integer)
  rescue ArgumentError, TypeError
    false
  end
end
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 경우:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;[218] pry(main)&amp;gt; &quot;123123123&quot;.number?
=&amp;gt; true
[220] pry(main)&amp;gt; &quot;123 123 123&quot;.gsub(/ /, '').number?
=&amp;gt; true
[222] pry(main)&amp;gt; &quot;123 123 123&quot;.number?
=&amp;gt; false
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는 전화 번호를 확인합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&quot;+34 123 456 789 2&quot;.gsub(/ /, '').number?
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;훨씬 더 간단한 방법은&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;/(\D+)/.match('1221').nil? #=&amp;gt; true
/(\D+)/.match('1a221').nil? #=&amp;gt; false
/(\D+)/.match('01221').nil? #=&amp;gt; true
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;개인적으로 저는 조금 더 간결하게 만들겠지만 예외적인 접근 방식을 좋아합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;class String
  def integer?(str)
    !!Integer(str) rescue false
  end
end
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 다른 사람들이 이미 말했듯이, 이것은 Octal 문자열에서는 작동하지 않습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이는 단순히 다음을 사용하는 모든 경우에 적합하지 않을 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&quot;12&quot;.to_i   =&amp;gt; 12
&quot;blah&quot;.to_i =&amp;gt; 0
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;44&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떤 사람들에게도 도움이 될 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;45&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;숫자가 0이 아닌 경우 숫자를 반환합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;0을 반환하면 문자열이거나 0입니다.&lt;/font&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;  def isint(str)
    return !!(str =~ /^[-+]?[1-9]([0-9]*)?$/)
  end
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;46&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제 솔루션은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;# /initializers/string.rb
class String
  IntegerRegex = /^(\d)+$/

  def integer?
    !!self.match(IntegerRegex)
  end
end

# any_model_or_controller.rb
'12345'.integer? # true
'asd34'.integer? # false
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;47&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;작동 방식은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;/^(\d)+$/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;모든 문자열에서 숫자를 찾기 위한 &lt;em papago-id=&quot;25-1&quot;&gt;정규식&lt;/em&gt;입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;정규식 및 결과는&lt;a href=&quot;http://rubular.com/&quot; papago-id=&quot;25-3&quot; rel=&quot;nofollow noreferrer&quot;&gt; &lt;/a&gt;http://&lt;a href=&quot;http://rubular.com/&quot; papago-id=&quot;25-3&quot; rel=&quot;nofollow noreferrer&quot;&gt;rubular&lt;/a&gt;.com/ 에서 테스트할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;우리는 그것을 일정하게 저장합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;IntegerRegex&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;27&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;방법에 사용할 때마다 불필요한 메모리 할당을 방지합니다.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;integer?&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;반환해야 하는 질문적 방법입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;true&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;29&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;false&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;30&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;match&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;31&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;인수에서 주어진 정규식에 따라 발생과 일치하고 일치된 값을 반환하는 문자열에 대한 메서드입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;nil&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;32&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;!!&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;33&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의 결과를 변환합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;match&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;34&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;메서드를 동등한 부울로 변환합니다.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;35&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 기존의 메서드를 선언합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;String&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;36&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;클래스는 원숭이 패치로, 기존 문자열 기능에서 아무것도 변경하지 않고 이름이 붙은 다른 메서드만 추가합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;integer?&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;37&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;모든 String 개체에 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;38&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;루비 2.4에는 다음이 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;?&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;39&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;def integer?(str)
  /\A[+-]?\d+\z/.match? str
end
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;63&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이전 버전의 Ruby의 경우, 가 있습니다. 그리고 일반적으로 대소문자 구분 연산자를 직접 사용하는 것은 피해야 하지만 여기서는 매우 깨끗해 보입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;def integer?(str)
  /\A[+-]?\d+\z/ === str
end

integer? &quot;123&quot;    # true
integer? &quot;-123&quot;   # true
integer? &quot;+123&quot;   # true

integer? &quot;a123&quot;   # false
integer? &quot;123b&quot;   # false
integer? &quot;1\n2&quot;   # false
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;64&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위에서 @rado의 답변을 확장하면 3차 진술을 사용하여 이중 앞머리를 사용하지 않고 참 또는 거짓 불리언을 강제로 반환할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;물론 이중 논리적 부정 버전은 더 간결하지만 (나와 같은) 새로 온 사람들에게는 읽기가 더 어려울 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;class String
  def is_i?
     self =~ /\A[-+]?[0-9]+\z/ ? true : false
  end
end
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;65&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더 일반화된 경우(소수점이 있는 숫자 포함)에는 다음 방법을 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;def number?(obj)
  obj = obj.to_s unless obj.is_a? String
  /\A[+-]?\d+(\.[\d]+)?\z/.match(obj)
end
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;66&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;irb 세션에서 이 방법을 테스트할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;(irb)
&amp;gt;&amp;gt; number?(7)
=&amp;gt; #&amp;lt;MatchData &quot;7&quot; 1:nil&amp;gt;
&amp;gt;&amp;gt; !!number?(7)
=&amp;gt; true
&amp;gt;&amp;gt; number?(-Math::PI)
=&amp;gt; #&amp;lt;MatchData &quot;-3.141592653589793&quot; 1:&quot;.141592653589793&quot;&amp;gt;
&amp;gt;&amp;gt; !!number?(-Math::PI)
=&amp;gt; true
&amp;gt;&amp;gt; number?('hello world')
=&amp;gt; nil
&amp;gt;&amp;gt; !!number?('hello world')
=&amp;gt; false
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;67&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기에 관련된 정규식에 대한 자세한 설명은 이 &lt;a href=&quot;https://medium.com/@Taiga/number-validation-with-regex-ruby-393954e46797#.5m579y9t2&quot; papago-id=&quot;67-1&quot; rel=&quot;nofollow&quot;&gt;블로그&lt;/a&gt; 기사를 &lt;a href=&quot;https://medium.com/@Taiga/number-validation-with-regex-ruby-393954e46797#.5m579y9t2&quot; papago-id=&quot;67-1&quot; rel=&quot;nofollow&quot;&gt;참조&lt;/a&gt;하십시오:)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;40&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;라이너 1개&lt;/font&gt;&lt;/font&gt;&lt;code&gt;string.rb&lt;/code&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;def is_integer?; true if Integer(self) rescue false end
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;69&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이 질문이 이 질문에 대한 것이었는지는 잘 모르겠지만, 이 게시물을 건너는 사람들에게 가장 간단한 방법은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;var = &quot;12&quot;
var.is_a?(Integer) # returns false
var.is_a?(String) # returns true

var = 12
var.is_a?(Integer) # returns true
var.is_a?(String) # returns false
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;code&gt;.is_a?&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;41&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;모든 개체와 함께 작동합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;71&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/1235863/&lt;a href=&quot;https://stackoverflow.com/questions/1235863/how-to-test-if-a-string-is-basically-an-integer-in-quotes-using-ruby&quot; target=&quot;_blank&quot; papago-id=&quot;71-1&quot;&gt;how-to-test-if-a-string-is-basically-an-integer-in-quotes-using-ruby&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/635</guid>
      <comments>https://firstcheck.tistory.com/635#entry635comment</comments>
      <pubDate>Fri, 2 Jun 2023 22:48:25 +0900</pubDate>
    </item>
    <item>
      <title>문자열에서 하위 문자열 제거</title>
      <link>https://firstcheck.tistory.com/634</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문자열에서 하위 문자열 제거&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다른 문자열에서 문자열을 제거하는 방법이 있는지 궁금합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이와 같은 것:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;class String
  def remove(s)
    self[s.length, self.length - s.length]
  end
end
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;슬라이스 방법을 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;a = &quot;foobar&quot;
a.slice! &quot;foo&quot;
=&amp;gt; &quot;foo&quot;
a
=&amp;gt; &quot;bar&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;'!' 버전이 아닌 버전도 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다른 버전에 대한 자세한 내용은 설명서에서도 확인할 수 있습니다. http://www.ruby-doc.org/core/classes/String.html#&lt;a href=&quot;http://www.ruby-doc.org/core/classes/String.html#method-i-slice-21&quot; rel=&quot;noreferrer&quot; papago-id=&quot;3-1&quot;&gt;method-i-slice-21&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어때.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;str.gsub(&quot;subString&quot;, &quot;&quot;)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://www.ruby-doc.org/core/classes/String.html&quot; rel=&quot;noreferrer&quot; papago-id=&quot;1-1&quot;&gt;Ruby&lt;/a&gt; Doc 확인하기&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문자열의 끝인 경우 다음을 사용할 수도 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&quot;hello&quot;.chomp(&quot;llo&quot;)     #=&amp;gt; &quot;he&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;h3 papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;루비 2.5+&lt;/font&gt;&lt;/h3&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하위 문자열이 문자열의 끝에 있는 경우, Ruby 2.5는 이를 위한 방법을 도입했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://ruby-doc.org/core-2.5.1/String.html#method-i-delete_prefix&quot; rel=&quot;noreferrer&quot; papago-id=&quot;9-0&quot;&gt;delete_substring&lt;/a&gt;을 문자열의 시작 부분에서 제거하기 위해 사용합니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://ruby-doc.org/core-2.5.1/String.html#method-i-delete_suffix&quot; rel=&quot;noreferrer&quot; papago-id=&quot;10-0&quot;&gt;delete_substring&lt;/a&gt;을 문자열 끝에서 제거하기 위한 명령어&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대상 문자열이 하나만 있는 경우 다음을 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;str[target] = ''
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;str.sub(target, '')
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대상이 여러 번 발생하는 경우 다음을(를 수행합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;str.gsub(target, '')
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;asdf = 'foo bar'
asdf['bar'] = ''
asdf #=&amp;gt; &quot;foo &quot;

asdf = 'foo bar'
asdf.sub('bar', '') #=&amp;gt; &quot;foo &quot;
asdf = asdf + asdf #=&amp;gt; &quot;foo barfoo bar&quot;
asdf.gsub('bar', '') #=&amp;gt; &quot;foo foo &quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;인플레이스 대체를 수행해야 하는 경우&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&quot;!&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의 버전.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;gsub!&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;sub!&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Rails를 사용하는 경우에도 마찬가지입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&quot;Testmessage&quot;.remove(&quot;message&quot;)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;수확량&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&quot;Test&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;경고: 이 메서드는 모든 항목을 &lt;em papago-id=&quot;23-1&quot;&gt;제거&lt;/em&gt;합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;레일을 사용하거나 지원이 덜 활성화된 경우 String#remove 및 String#remove! 메서드를 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;def remove!(*patterns)
  patterns.each do |pattern|
    gsub! pattern, &quot;&quot;
  end

  self
end
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://api.rubyonrails.org/classes/String.html#method-i-remove&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;25-1&quot;&gt;출처:&lt;/a&gt; http://api.rubyonrails.org/classes/String.html#method-i-remove&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;만약 제가 올바르게 해석하고 있다면, 이 질문은 문자열 사이의 마이너스(-) 연산, 즉 내장된 플러스(+) 연산(연결)과 반대되는 연산을 요구하는 것 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이전 답변과 달리 속성을 준수해야 하는 작업을 정의하려고 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;em papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;if c = a + b 다음 c - a = b BAND c - b = a ▁a a&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이를 위해 다음과 같은 세 가지 기본 제공 Ruby 방법만 필요합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;'abracadabra'.partition('abra').values_at(0,2).join == 'cadabra'&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;30&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;한 번에 한 가지 방법을 실행하면 쉽게 이해할 수 있기 때문에 어떻게 작동하는지 설명하지 않겠습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;개념 증명 코드는 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-ruby prettyprint-override&quot;&gt;&lt;code&gt;# minus_string.rb
class String
  def -(str)
    partition(str).values_at(0,2).join
  end
end

# Add the following code and issue 'ruby minus_string.rb' in the console to test
require 'minitest/autorun'

class MinusString_Test &amp;lt; MiniTest::Test

  A,B,C='abra','cadabra','abracadabra'

  def test_C_eq_A_plus_B
    assert C == A + B
  end

  def test_C_minus_A_eq_B
    assert C - A == B
  end

  def test_C_minus_B_eq_A
    assert C - B == A
  end

end
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;최신 Ruby 버전(&amp;gt;= 2.0)을 사용하는 경우 마지막으로 조언할 말이 있습니다. 이전 예와 같이 원숭이가 지정한 String 대신 Refinitions를 &lt;a href=&quot;http://yehudakatz.com/2010/11/30/ruby-2-0-refinements-in-practice/&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;33-1&quot;&gt;&lt;strong papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;34&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이는 다음과 같이 쉽습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;module MinusString
  refine String do
    def -(str)
      partition(str).values_at(0,2).join
    end
  end
end
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;35&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;추가&lt;/font&gt;&lt;/font&gt;&lt;code&gt;using MinusString&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;36&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신이 필요로 하는 블록 앞에서.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 할 일은 이렇습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;2.2.1 :015 &amp;gt; class String; def remove!(start_index, end_index) (end_index - start_index + 1).times{ self.slice! start_index }; self end; end;
2.2.1 :016 &amp;gt;   &quot;idliketodeleteHEREallthewaytoHEREplease&quot;.remove! 14, 32
 =&amp;gt; &quot;idliketodeleteplease&quot; 
2.2.1 :017 &amp;gt; &quot;:)&quot;.remove! 1,1
 =&amp;gt; &quot;:&quot; 
2.2.1 :018 &amp;gt; &quot;ohnoe!&quot;.remove! 2,4
 =&amp;gt; &quot;oh!&quot; 
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여러 줄로 포맷됨:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;class String
    def remove!(start_index, end_index)
        (end_index - start_index + 1).times{ self.slice! start_index }
        self
    end 
end
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/5367164/&lt;a href=&quot;https://stackoverflow.com/questions/5367164/remove-substring-from-the-string&quot; target=&quot;_blank&quot; papago-id=&quot;39-1&quot;&gt;remove-substring-from-the-string&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>firstcheck</author>
      <guid isPermaLink="true">https://firstcheck.tistory.com/634</guid>
      <comments>https://firstcheck.tistory.com/634#entry634comment</comments>
      <pubDate>Fri, 2 Jun 2023 22:45:47 +0900</pubDate>
    </item>
  </channel>
</rss>