<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>꼰대 개발자의 블로그</title>
    <link>https://webdevcenter.tistory.com/</link>
    <description>꼰대가 흐름을 따라가고 싶어서 기록하는 블로그</description>
    <language>ko</language>
    <pubDate>Mon, 20 Jul 2026 15:24:46 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Yo.</managingEditor>
    <image>
      <title>꼰대 개발자의 블로그</title>
      <url>https://t1.daumcdn.net/cfile/tistory/27425245580FFBD028</url>
      <link>https://webdevcenter.tistory.com</link>
    </image>
    <item>
      <title>[인텔 맥북] 가성비 하프쉘 찍먹으로 시작해, 2019 맥북 추가 영입까지의 기록</title>
      <link>https://webdevcenter.tistory.com/entry/%EC%9D%B8%ED%85%94-%EB%A7%A5%EB%B6%81-%EA%B0%80%EC%84%B1%EB%B9%84-%ED%95%98%ED%94%84%EC%89%98-%EC%B0%8D%EB%A8%B9%EC%9C%BC%EB%A1%9C-%EC%8B%9C%EC%9E%91%ED%95%B4-2019-%EB%A7%A5%EB%B6%81-%EC%B6%94%EA%B0%80-%EC%98%81%EC%9E%85%EA%B9%8C%EC%A7%80%EC%9D%98-%EA%B8%B0%EB%A1%9D</link>
      <description>&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;맥북무료이미지.jpg&quot; data-origin-width=&quot;4928&quot; data-origin-height=&quot;3264&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kISSh/dJMcaae177f/EnSIaPnijQ3ayxbBt2wZVk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kISSh/dJMcaae177f/EnSIaPnijQ3ayxbBt2wZVk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kISSh/dJMcaae177f/EnSIaPnijQ3ayxbBt2wZVk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkISSh%2FdJMcaae177f%2FEnSIaPnijQ3ayxbBt2wZVk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;4928&quot; height=&quot;3264&quot; data-filename=&quot;맥북무료이미지.jpg&quot; data-origin-width=&quot;4928&quot; data-origin-height=&quot;3264&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;개발자로서 쓸만한 맥북을 한 대 장만하려면 비용 부담이 꽤나 크다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;최신 애플 실리콘(M시리즈) 모델들을 알아보니 기본 백만 원 중후반에서 이삼백만 원은 우습게 깨지더라.&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;물론 성능이야 좋겠지만,&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;메인 데스크탑이 따로 있는 상태에서 서브나 테스트용 맥 환경을 구축하는데 그렇게 과도한 비용을 지출하고 싶진 않았다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;철저하게 가성비 위주로 맥 환경을 '찍먹'해볼 방법을 고민하기 시작했다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;6&quot; data-ke-size=&quot;size16&quot;&gt;그러다 당근 매물에서 걸린 것이 바로 상판 디스플레이가 없는 '물리적 하프쉘' 맥북 프로였다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;화면이 없다는 이유 하나만으로 가격이 상상 이상으로 저렴했다. &quot;이 가격이면 실패해도 손해가 없겠다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;그냥 가성비 좋은 미니 PC 본체 한 대 들인다 치고 가볍게 찍먹이나 해보자&quot;라는 마음으로 덥석 하프쉘 맥북을 영입했다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;그렇게 나의 독특한 맥 입문이 시작되었다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;8&quot; data-ke-size=&quot;size23&quot;&gt;1단계: 기대 이상의 성능과 트랙패드의 신세계&lt;/h3&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;저렴한 가격 맛에 들고 온 녀석이지만, 막상 내 개발 환경(커서 + 크롬 창 + DBeaver 쿼리 작업)에 물리고 터보 부스트를 끈 뒤 사용해 보니 충격의 연속이었다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;10&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,0,0&quot;&gt;독보적인 트랙패드 편의성:&lt;/b&gt; 마우스를 대체하고도 남는 애플 트랙패드 특유의 제스처와 편의성은 개발용 워크플로우를 극도로 쾌적하게 만들어주었다. 마우스가 없어도 되겠더라. 알트탭 보다 세손가락 터치가 더 좋더라.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,1,0&quot;&gt;구형의 반전 퍼포먼스:&lt;/b&gt; 비록 구형 인텔 맥이지만 내 작업 스펙트럼 안에서는 버벅임 없이 기대를 훨씬 뛰어넘는 빠릿한 퍼포먼스를 보여주었다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;저렴하게 찍먹만 해보려던 계획은 완전히 뒤집어졌고, 쓸수록 이 폼팩터와 맥 OS 환경에 대한 만족도가 수직 상승했다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;12&quot; data-ke-size=&quot;size23&quot;&gt;2단계: 최신 모델의 유혹, 그리고 맥북 에어를 패스한 이유&lt;/h3&gt;
&lt;p data-path-to-node=&quot;13&quot; data-ke-size=&quot;size16&quot;&gt;하프쉘이 주는 트랙패드의 맛과 빠릿한 성능에 제대로 매료되고 나니, 자연스럽게 다음 욕심이 생겼다. 집 책상 모니터 앞에 묶여있는 이 편리한 환경을 그대로 들고 밖으로 나가고 싶어진 것이다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;이 시점에서 당연히 최신 M시리즈 모델들까지 전부 가판대에 올려두고 치열하게 고민했다. 하지만 하프쉘로 이미 성능 테스트를 끝내지 않았던가. 내 작업 환경에서는 굳이 최신 칩셋을 위해 수백만 원의 추가 지출을 할 필요가 전혀 없다는 판단이 섰다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;15&quot; data-ke-size=&quot;size16&quot;&gt;중고 장터에서 비슷한 가격대의 구형 맥북 에어 시리즈도 잠깐 고민 선상에 올랐으나, &lt;b data-index-in-node=&quot;47&quot; data-path-to-node=&quot;15&quot;&gt;개발자 영역에서는 무조건 '프로' 라인업으로 가야만 하는 명확한 이유&lt;/b&gt;가 있었다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;16&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,0,0&quot;&gt;쿨링 팬(Fan)의 유무:&lt;/b&gt; 구형 에어 시리즈는 팬이 없거나(팬리스) 쿨링 구조가 빈약하다. 나처럼 크롬 창을 수십 개씩 띄우고 무거운 DB 쿼리를 상시 돌리는 개발 환경에서는 팬이 열을 뿜어내 주지 못하면 순식간에 기기가 버벅거린다(쓰로틀링). 반면 프로는 든든한 듀얼 팬 구조라 제어가 가능하다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,1,0&quot;&gt;포트 확장성과 디스플레이 연결:&lt;/b&gt; 에어 라인업은 썬더볼트 포트가 2개뿐이라 외부 모니터나 장비를 연결할 때 확장성이 턱없이 부족하다. 반면 고급형 프로 모델은 포트가 4개라 작업 편의성 자체가 다르다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-path-to-node=&quot;17&quot; data-ke-size=&quot;size16&quot;&gt;결국 내 선택은 외출과 데일리 포터블 작업을 책임져줄 '상판이 온전하게 달린' &lt;b data-index-in-node=&quot;44&quot; data-path-to-node=&quot;17&quot;&gt;맥북 프로 13인치 고급형(A1989)&lt;/b&gt; 모델이었다. 내가 세팅한 구체적인 기기 스펙은 다음과 같다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;18&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;항목&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;상세 스펙 (Specification)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,1,0,0&quot;&gt;모델명 / 식별자&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,1,1,0&quot;&gt;MacBook Pro (13-inch, Touch Bar) / &lt;b data-index-in-node=&quot;35&quot; data-path-to-node=&quot;18,1,1,0&quot;&gt;A1989&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,2,0,0&quot;&gt;프로세서 (CPU)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,2,1,0&quot;&gt;Intel Core &lt;b data-index-in-node=&quot;11&quot; data-path-to-node=&quot;18,2,1,0&quot;&gt;i5&lt;/b&gt; (쿼드코어 고급형 라인업)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,3,0,0&quot;&gt;메모리 (RAM)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,3,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,3,1,0&quot;&gt;8GB&lt;/b&gt; LPDDR3&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,4,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,4,0,0&quot;&gt;그래픽 (GPU)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,4,1,0&quot;&gt;Intel Iris Plus Graphics 655&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,5,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,5,0,0&quot;&gt;인터페이스&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,5,1,0&quot;&gt;Thunderbolt 3 (USB-C) 포트 4개 (고급형 특징)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,6,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,6,0,0&quot;&gt;기타&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;18,6,1,0&quot;&gt;트랙패드, 터치바(Touch Bar) 탑재&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-path-to-node=&quot;19&quot; data-ke-size=&quot;size23&quot;&gt;최종 장: 2019 모델도 여전히 현역인 이유, 그리고 투 트랙 체제&lt;/h3&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;실제로 세팅을 마치고 이 스펙의 맥북 프로를 써보니, 실무 개발용으로 사용하기에 전혀 큰 무리가 없다는 결론에 도달했다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;21&quot; data-ke-size=&quot;size16&quot;&gt;특히 인텔 맥북의 아킬레스건인 발열을 잡기 위해 '터보 부스트 오프(Turbo Boost Off)'와 '팬 속도 3000rpm 마지노선 제한'이라는 약간의 소프트웨어 튜닝만 곁들이니 반전이 일어났다. 제한을 걸기 전에는 55~57도를 웃돌던 온도가, 제한 이후에는 맥북이 스스로 전력 소모를 최적화하면서 &lt;b data-index-in-node=&quot;170&quot; data-path-to-node=&quot;21&quot;&gt;평소 50~52도 선의 수준&lt;/b&gt;으로 뚝 떨어졌다. 소음과 성능 모두 완벽한 황금 밸런스를 보여준다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;현재 내 개발 환경은 매우 만족스러운 투 트랙(Two-Track) 체제다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;23&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;23,0,0&quot;&gt;집(데스크톱 모드):&lt;/b&gt; 가성비 끝판왕으로 들여온 무소음 하프쉘이 든든하게 본체 역할을 한다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;23,1,0&quot;&gt;밖(포터블 모드):&lt;/b&gt; 새로 영입한 A1989 i5 8GB 모델이 바통을 이어받아 카페나 이동 중에도 끊김 없는 개발 흐름을 이어가 준다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;24&quot; data-ke-size=&quot;size16&quot;&gt;비싼 돈을 들여 무작정 최신 맥북을 사는 것만이 정답은 아니다. &lt;b&gt;물론 최신 맥북이 좋다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;다만 본인이 필요한 작업 수준을 명확히 파악하고, 가성비 좋은 구형 모델로 시작해 점진적으로 환경을 최적화해 나가는 것도 개발자로서 꽤나 현명하고 재미있는 빌드업 과정이다. 나와 같은 고민을 하는 개발자들에게 이 대리 경험이 작은 힌트가 되었으면 한다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;ps. 저소음 , 부스터 기능을 끈 상태의 맥북은 비행기 소리 없이 조용했다. 그러한 환경에서는 실제 5-6시간정도의 코딩 작업이 가능했다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;물론 도커 환경이라면 이야기가 달라진다. 그건 데탑으로 합시다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;아래는 사용중인 추가 설치한 내용과 툴바 모습.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1231&quot; data-origin-height=&quot;32&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PnNEO/dJMcadvq2gq/ZaoVoO9KKAYpiKgnv4yUR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PnNEO/dJMcadvq2gq/ZaoVoO9KKAYpiKgnv4yUR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PnNEO/dJMcadvq2gq/ZaoVoO9KKAYpiKgnv4yUR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPnNEO%2FdJMcadvq2gq%2FZaoVoO9KKAYpiKgnv4yUR1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1231&quot; height=&quot;32&quot; data-origin-width=&quot;1231&quot; data-origin-height=&quot;32&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>OS/mac</category>
      <category>a1989</category>
      <category>맥북</category>
      <category>맥북2019</category>
      <category>현역맞니</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/195</guid>
      <comments>https://webdevcenter.tistory.com/entry/%EC%9D%B8%ED%85%94-%EB%A7%A5%EB%B6%81-%EA%B0%80%EC%84%B1%EB%B9%84-%ED%95%98%ED%94%84%EC%89%98-%EC%B0%8D%EB%A8%B9%EC%9C%BC%EB%A1%9C-%EC%8B%9C%EC%9E%91%ED%95%B4-2019-%EB%A7%A5%EB%B6%81-%EC%B6%94%EA%B0%80-%EC%98%81%EC%9E%85%EA%B9%8C%EC%A7%80%EC%9D%98-%EA%B8%B0%EB%A1%9D#entry195comment</comments>
      <pubDate>Mon, 8 Jun 2026 06:03:14 +0900</pubDate>
    </item>
    <item>
      <title>[Git] 여러 기기(맥북 2대) 교차 작업 시 깃 히스토리/파일 권한 꼬임 해결 및 자동화 팁</title>
      <link>https://webdevcenter.tistory.com/entry/Git-%EC%97%AC%EB%9F%AC-%EA%B8%B0%EA%B8%B0%EB%A7%A5%EB%B6%81-2%EB%8C%80-%EA%B5%90%EC%B0%A8-%EC%9E%91%EC%97%85-%EC%8B%9C-%EA%B9%83-%ED%9E%88%EC%8A%A4%ED%86%A0%EB%A6%AC%ED%8C%8C%EC%9D%BC-%EA%B6%8C%ED%95%9C-%EA%BC%AC%EC%9E%84-%ED%95%B4%EA%B2%B0-%EB%B0%8F-%EC%9E%90%EB%8F%99%ED%99%94-%ED%8C%81</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;맥북무료이미지.jpg&quot; data-origin-width=&quot;4928&quot; data-origin-height=&quot;3264&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cxXRYp/dJMcaiqxyAZ/oMMH0AISHDr9A0V9A3cg50/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cxXRYp/dJMcaiqxyAZ/oMMH0AISHDr9A0V9A3cg50/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cxXRYp/dJMcaiqxyAZ/oMMH0AISHDr9A0V9A3cg50/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcxXRYp%2FdJMcaiqxyAZ%2FoMMH0AISHDr9A0V9A3cg50%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;4928&quot; height=&quot;3264&quot; data-filename=&quot;맥북무료이미지.jpg&quot; data-origin-width=&quot;4928&quot; data-origin-height=&quot;3264&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;집과 외부, 혹은 메인 기기(1맥)와 서브 기기(2맥)를 넘나들며 개발을 하다 보면 깃 그래프(Git Graph)상으로는 싱크가 맞는데 로컬에서 파일이 멋대로 수정되었다고 무더기로 잡히거나, 원격지 코드가 제대로 반영되지 않는 통곡의 벽을 만나곤 한다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;오늘 제대로 삽질하면서 완벽하게 정리한 원인과 해결 명령어, 그리고 터미널 단축키 자동화 방법까지 블로그에 기록해 둔다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size26&quot;&gt;1. 문제 상황 및 원인 파악&lt;/h2&gt;
&lt;h3 data-path-to-node=&quot;8&quot; data-ke-size=&quot;size23&quot;&gt;❓ 상황&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;1번 맥북에서는 로컬, 원격 서버(가비아), GitHub 모두 정상 싱크 확인.&lt;/li&gt;
&lt;li&gt;2번 맥북으로 오니 GitHub 커밋 그래프는 정상인데, git status를 치면 내가 수정하지도 않은 파일들이 무더기로 다르다고 잡히는 현상 발생.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size23&quot;&gt;  원인&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;11&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,0,0&quot;&gt;파일 권한(Permission) 불일치:&lt;/b&gt; 맥북 환경에 따라 파일의 보안 권한(읽기/쓰기/실행)이 미세하게 다르게 받아지면, 깃은 파일 내부 코드가 100% 똑같아도 &quot;파일이 변경되었다&quot;고 오해한다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,1,0&quot;&gt;줄바꿈 문자(Line Ending) 차이:&lt;/b&gt; 기기마다 LF / CRLF 줄바꿈 설정이 꼬이면 눈에 안 보이는 문자 때문에 다른 파일로 인식한다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,2,0&quot;&gt;핫스팟 통신 환경 문제:&lt;/b&gt; 외부에서 핸드폰 핫스팟(테더링)을 쓰면 IP가 수시로 바뀌는 유동 IP 특성 및 통신사 방화벽 때문에 서버(SFTP) 주소가 일시적으로 인식이 안 되거나 꼬여서 로컬 파편이 남을 수 있다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-path-to-node=&quot;13&quot; data-ke-size=&quot;size26&quot;&gt;2. 해결 프로세스&amp;nbsp;&lt;/h2&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;로컬의 지저분하게 꼬인 상태나 권한 문제를 다 무시하고, &lt;b data-index-in-node=&quot;32&quot; data-path-to-node=&quot;14&quot;&gt;GitHub에 올라가 있는 청정 원본을 기준으로 로컬을 100% 강제 동기화&lt;/b&gt;시키는 방법이 가장 확실하다.&lt;/p&gt;
&lt;div data-ved=&quot;0CAAQhtANahgKEwiYsYXByfSUAxUAAAAAHQAAAAAQ1AQ&quot; data-hveid=&quot;0&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;Bash&lt;/span&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;pre class=&quot;mipsasm&quot;&gt;&lt;code&gt;# 1. GitHub 원격 저장소의 최신 정보를 강제로 새로고침(갱신)한다.
git fetch origin

# 2. 내 로컬 상태를 GitHub 원격의 최신 브랜치(main) 상태로 강제 리셋해 버린다.
git reset --hard origin/main
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-path-to-node=&quot;16&quot; data-ke-size=&quot;size16&quot;&gt;(※ 만약 프로젝트 메인 브랜치명이 master라면 끝에만 origin/master로 변경)&lt;/p&gt;
&lt;p data-path-to-node=&quot;17&quot; data-ke-size=&quot;size16&quot;&gt;이 조합을 쓰고 나면 귀신같이 꼬여있던 무더기 파일 변경 건들이 싹 정리되고 GitHub 웹사이트와 완벽하게 싱크가 맞는다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;19&quot; data-ke-size=&quot;size26&quot;&gt;3. 매번 치기 귀찮으니 '단축 명령어(Alias)'로 자동화하기&lt;/h2&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;기기를 바꿀 때마다 매번 터미널을 열고 저 긴 명령어를 치는 건 개발자로서 용납할 수 없다. 딱 네 글자 sync만 치면 알아서 돌도록 터미널 엔진(zsh)에 매크로를 심어두자.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;21&quot; data-ke-size=&quot;size23&quot;&gt; ️ 단축키 등록 방법 (1맥, 2맥 공통 적용)&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;22&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;터미널을 열고 아래 명령어로 zsh 설정 파일을 연다.&lt;/li&gt;
&lt;li data-ved=&quot;0CAAQhtANahgKEwiYsYXByfSUAxUAAAAAHQAAAAAQ1QQ&quot; data-hveid=&quot;0&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;Bash&lt;/span&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;pre class=&quot;jboss-cli&quot;&gt;&lt;code&gt;nano ~/.zshrc
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;화살표 키를 이용해 화면 맨 밑바닥(최하단 빈 줄)까지 내려간다. &lt;i data-index-in-node=&quot;37&quot; data-path-to-node=&quot;22,1,0&quot;&gt;(기존에 설치된 개발 툴 설정들이 많아도 절대 지우지 말고 맨 밑에 얹어야 함!)&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;맨 밑에 아래 알맹이 문장을 그대로 복사해서 붙여넣는다.&lt;/li&gt;
&lt;li data-ved=&quot;0CAAQhtANahgKEwiYsYXByfSUAxUAAAAAHQAAAAAQ1gQ&quot; data-hveid=&quot;0&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;Bash&lt;/span&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;pre class=&quot;mipsasm&quot;&gt;&lt;code&gt;alias sync=&quot;git fetch origin &amp;amp;&amp;amp; git reset --hard origin/main&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;22,3,0&quot;&gt;저장 및 탈출:&lt;/b&gt; Ctrl + O 누르고 ➡️ Enter (저장 완료) ➡️ Ctrl + X (편집기 종료)&lt;/li&gt;
&lt;li&gt;변경된 설정을 현재 터미널에 즉시 반영한다.&lt;/li&gt;
&lt;li data-ved=&quot;0CAAQhtANahgKEwiYsYXByfSUAxUAAAAAHQAAAAAQ1wQ&quot; data-hveid=&quot;0&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;Bash&lt;/span&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;pre class=&quot;bash&quot;&gt;&lt;code&gt;source ~/.zshrc
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 data-path-to-node=&quot;24&quot; data-ke-size=&quot;size26&quot;&gt;4. 최종 요약 &amp;amp; 교차 작업 황금 루틴&lt;/h2&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;이제 환경 세팅 끝! 어느 기기에서든 터미널에 &lt;b data-index-in-node=&quot;26&quot; data-path-to-node=&quot;25&quot;&gt;sync&lt;/b&gt; 네 글자만 치면 1초 만에 GitHub 최신본으로 강제 동기화가 끝난다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;26&quot; data-ke-size=&quot;size16&quot;&gt;앞으로 다중 기기 작업 시 이 루틴만 지키자.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;27&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;27,0,0&quot;&gt;1맥에서 사용종료 할 때:&lt;/b&gt; 반드시 GitHub에 git push 해두기.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;27,1,0&quot;&gt;2맥에서 사용시작 할 때:&lt;/b&gt; 터미널 열고 &lt;b data-index-in-node=&quot;19&quot; data-path-to-node=&quot;27,1,0&quot;&gt;sync&lt;/b&gt; 쳐서 완벽한 원본으로 싱크 맞추고 코딩 시작하기.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-path-to-node=&quot;28&quot; data-ke-size=&quot;size16&quot;&gt;주의: 만약 터미널 켤 때 잠깐 zsh 떴다가 bash 엔진으로 강제 전환되는 현상이 있다면, ~/.zshrc 파일 안에 가독성 태그인 ```bash 같은 문자열이 실수로 같이 복사되어 들어갔는지 꼭 확인할 것! (그것 때문에 0.1초 만에 bash로 강제 전환되는 삽질을 겪었다  )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Progmming/git</category>
      <category>Git</category>
      <category>zshrc</category>
      <category>깃히스토리</category>
      <category>꼬임</category>
      <category>자동화</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/194</guid>
      <comments>https://webdevcenter.tistory.com/entry/Git-%EC%97%AC%EB%9F%AC-%EA%B8%B0%EA%B8%B0%EB%A7%A5%EB%B6%81-2%EB%8C%80-%EA%B5%90%EC%B0%A8-%EC%9E%91%EC%97%85-%EC%8B%9C-%EA%B9%83-%ED%9E%88%EC%8A%A4%ED%86%A0%EB%A6%AC%ED%8C%8C%EC%9D%BC-%EA%B6%8C%ED%95%9C-%EA%BC%AC%EC%9E%84-%ED%95%B4%EA%B2%B0-%EB%B0%8F-%EC%9E%90%EB%8F%99%ED%99%94-%ED%8C%81#entry194comment</comments>
      <pubDate>Sun, 7 Jun 2026 17:34:43 +0900</pubDate>
    </item>
    <item>
      <title>멀티도메인 호스팅에 대한 robots.txt 분리 설정</title>
      <link>https://webdevcenter.tistory.com/entry/%EB%A9%80%ED%8B%B0%EB%8F%84%EB%A9%94%EC%9D%B8-%ED%98%B8%EC%8A%A4%ED%8C%85%EC%97%90-%EB%8C%80%ED%95%9C-robotstxt-%EB%B6%84%EB%A6%AC-%EC%84%A4%EC%A0%95</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특정도메인에 대해서 robots.txt 설정이 되어야하는 경우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹은 도메인 별로 robots.txt 설정이 필요한 경우&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 .htaccess 상에 추가하면 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1709099884504&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;
    RewriteEngine On

    # abc.uhoon.co.kr 도메인에 대한 리디렉션
    RewriteCond %{HTTP_HOST} ^abc\.uhoons\.co.kr$ [NC]
    RewriteRule ^robots\.txt$ robots_uhoons.txt [L]

	# b2b.uhoon.co.kr 도메인에 대한 리디렉션
    RewriteCond %{HTTP_HOST} ^b2b\.uhoons\.co.kr$ [NC]
    RewriteRule ^robots\.txt$ robots_uhoons.txt [L]

    # 나머지 도메인에 대한 리디렉션
    RewriteCond %{HTTP_HOST} !^abc\.uhoon\.co.kr$ [NC]
    RewriteRule ^robots\.txt$ robots.txt [L]
&amp;lt;/IfModule&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본인의 경우는 codeigniter로 public_html 하위에 폴더로 멀티도메인 서비스를 하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;robots.txt 가 분리 설정이 필요하게 되어 적용함.&lt;/p&gt;</description>
      <category>Progmming/PHP</category>
      <category>.htaccess</category>
      <category>robots.txt</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/193</guid>
      <comments>https://webdevcenter.tistory.com/entry/%EB%A9%80%ED%8B%B0%EB%8F%84%EB%A9%94%EC%9D%B8-%ED%98%B8%EC%8A%A4%ED%8C%85%EC%97%90-%EB%8C%80%ED%95%9C-robotstxt-%EB%B6%84%EB%A6%AC-%EC%84%A4%EC%A0%95#entry193comment</comments>
      <pubDate>Wed, 28 Feb 2024 14:59:53 +0900</pubDate>
    </item>
    <item>
      <title>[AWS] EC2 아파치 로그를 S3 버킷으로 업로드 후 삭제 , 로그 관리 하는 방법</title>
      <link>https://webdevcenter.tistory.com/entry/AWS-EC2-%EC%95%84%ED%8C%8C%EC%B9%98-%EB%A1%9C%EA%B7%B8%EB%A5%BC-S3-%EB%B2%84%ED%82%B7%EC%9C%BC%EB%A1%9C-%EC%97%85%EB%A1%9C%EB%93%9C-%ED%9B%84-%EC%82%AD%EC%A0%9C-%EB%A1%9C%EA%B7%B8-%EA%B4%80%EB%A6%AC-%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;pre id=&quot;code_1707300381958&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#!/bin/bash

# AWS 자격 증명 설정
export AWS_ACCESS_KEY_ID=&quot;xxxxxxxxxxxxxx&quot;
export AWS_SECRET_ACCESS_KEY=&quot;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;
export AWS_DEFAULT_REGION=&quot;xxxxxxxxxxx&quot;

# 로그 파일 경로 및 S3 경로 설정
LOG_PATH=&quot;/var/log/httpd/&quot;
S3_BUCKET=&quot;버킷명&quot;
S3_PREFIX=&quot;logs/$(date -d 'yesterday' +'%Y/%m')/&quot;  

# 어제의 로그 파일을 S3로 이동
aws s3 cp &quot;${LOG_PATH}access_log-$(date -d 'yesterday' +'%Y%m%d')&quot; &quot;s3://${S3_BUCKET}/${S3_PREFIX}&quot;
aws s3 cp &quot;${LOG_PATH}error_log-$(date -d 'yesterday' +'%Y%m%d')&quot; &quot;s3://${S3_BUCKET}/${S3_PREFIX}&quot;
aws s3 cp &quot;${LOG_PATH}ssl_access_log-$(date -d 'yesterday' +'%Y%m%d')&quot; &quot;s3://${S3_BUCKET}/${S3_PREFIX}&quot;
aws s3 cp &quot;${LOG_PATH}ssl_error_log-$(date -d 'yesterday' +'%Y%m%d')&quot; &quot;s3://${S3_BUCKET}/${S3_PREFIX}&quot;
aws s3 cp &quot;${LOG_PATH}ssl_request_log-$(date -d 'yesterday' +'%Y%m%d')&quot; &quot;s3://${S3_BUCKET}/${S3_PREFIX}&quot;

# 로그 파일 삭제 (선택 사항)
rm &quot;${LOG_PATH}access_log-$(date -d 'yesterday' +'%Y%m%d')&quot;
rm &quot;${LOG_PATH}error_log-$(date -d 'yesterday' +'%Y%m%d')&quot;
rm &quot;${LOG_PATH}ssl_access_log-$(date -d 'yesterday' +'%Y%m%d')&quot;
rm &quot;${LOG_PATH}ssl_error_log-$(date -d 'yesterday' +'%Y%m%d')&quot;
rm &quot;${LOG_PATH}ssl_request_log-$(date -d 'yesterday' +'%Y%m%d')&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 스크립트를 cron 으로 적절히 스케쥴링 해주면 끝.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그 경로 및 로그파일 패턴에 대해서는 적절히 변경이 필요하며 삭제에 대해서는 선택사항임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스크립트는 글쓴이 상황에 맞게 작성된 것이며 검증 후 사용하시길 바랍니다.&lt;/p&gt;</description>
      <category>Cloud Server</category>
      <category>apache</category>
      <category>AWS</category>
      <category>log</category>
      <category>S3</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/192</guid>
      <comments>https://webdevcenter.tistory.com/entry/AWS-EC2-%EC%95%84%ED%8C%8C%EC%B9%98-%EB%A1%9C%EA%B7%B8%EB%A5%BC-S3-%EB%B2%84%ED%82%B7%EC%9C%BC%EB%A1%9C-%EC%97%85%EB%A1%9C%EB%93%9C-%ED%9B%84-%EC%82%AD%EC%A0%9C-%EB%A1%9C%EA%B7%B8-%EA%B4%80%EB%A6%AC-%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95#entry192comment</comments>
      <pubDate>Wed, 7 Feb 2024 19:05:25 +0900</pubDate>
    </item>
    <item>
      <title>C# , OpenFileDialog 확장자 지정하는 방법</title>
      <link>https://webdevcenter.tistory.com/entry/C-OpenFileDialog-%ED%99%95%EC%9E%A5%EC%9E%90-%EC%A7%80%EC%A0%95%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;아래는&amp;nbsp;OpenFileDialog를&amp;nbsp;사용하여&amp;nbsp;특정&amp;nbsp;확장자를&amp;nbsp;가진&amp;nbsp;파일만&amp;nbsp;선택할&amp;nbsp;수&amp;nbsp;있도록&amp;nbsp;필터를&amp;nbsp;지정하는&amp;nbsp;예시&amp;nbsp;코드입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CSV 파일과 TXT 파일을 선택하는 방법.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1682675333377&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;using System;
using System.Windows.Forms;

namespace OpenFileDialogExample
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            openFileDialog1.Filter = &quot;CSV 파일 (*.csv)|*.csv|텍스트 파일 (*.txt)|*.txt&quot;;
            openFileDialog1.ShowDialog();
        }
    }
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Progmming/.Net</category>
      <category>C#</category>
      <category>openfiledialog</category>
      <category>확장자</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/188</guid>
      <comments>https://webdevcenter.tistory.com/entry/C-OpenFileDialog-%ED%99%95%EC%9E%A5%EC%9E%90-%EC%A7%80%EC%A0%95%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95#entry188comment</comments>
      <pubDate>Fri, 28 Apr 2023 18:50:03 +0900</pubDate>
    </item>
    <item>
      <title>C#에서 특정 경로의 폴더를 Windows 탐색기에서 여는 예시 코드</title>
      <link>https://webdevcenter.tistory.com/entry/C%EC%97%90%EC%84%9C-%ED%8A%B9%EC%A0%95-%EA%B2%BD%EB%A1%9C%EC%9D%98-%ED%8F%B4%EB%8D%94%EB%A5%BC-Windows-%ED%83%90%EC%83%89%EA%B8%B0%EC%97%90%EC%84%9C-%EC%97%AC%EB%8A%94-%EC%98%88%EC%8B%9C-%EC%BD%94%EB%93%9C</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;C#에서 특정 경로의 폴더나 파일을 Windows 탐색기에서 열려면&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Process.Start&amp;nbsp;메서드를&amp;nbsp;사용합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이&amp;nbsp;때,&amp;nbsp;ProcessStartInfo&amp;nbsp;클래스를&amp;nbsp;이용하여&amp;nbsp;Process&amp;nbsp;객체를&amp;nbsp;생성하고,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ProcessStartInfo&amp;nbsp;객체의&amp;nbsp;Arguments&amp;nbsp;속성에&amp;nbsp;&quot;Explorer.exe&quot;와&amp;nbsp;함께&amp;nbsp;열고자&amp;nbsp;하는&amp;nbsp;경로를&amp;nbsp;전달합니다. &lt;br /&gt;&lt;br /&gt;아래는 C#에서 특정 경로의 폴더를 Windows 탐색기에서 여는 예시 코드입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1682675182291&quot; class=&quot;csharp&quot; data-ke-language=&quot;csharp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;using System.Diagnostics;

class Program
{
    static void Main(string[] args)
    {
        string path = @&quot;C:\MyFolder&quot;;
        Process.Start(new ProcessStartInfo()
        {
            FileName = &quot;Explorer.exe&quot;,
            Arguments = path
        });
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Progmming/.Net</category>
      <category>C#</category>
      <category>Process.Start</category>
      <category>탐색기 열기</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/187</guid>
      <comments>https://webdevcenter.tistory.com/entry/C%EC%97%90%EC%84%9C-%ED%8A%B9%EC%A0%95-%EA%B2%BD%EB%A1%9C%EC%9D%98-%ED%8F%B4%EB%8D%94%EB%A5%BC-Windows-%ED%83%90%EC%83%89%EA%B8%B0%EC%97%90%EC%84%9C-%EC%97%AC%EB%8A%94-%EC%98%88%EC%8B%9C-%EC%BD%94%EB%93%9C#entry187comment</comments>
      <pubDate>Fri, 28 Apr 2023 18:48:14 +0900</pubDate>
    </item>
    <item>
      <title>JSON 객체의 데이터를 filter 적용하기</title>
      <link>https://webdevcenter.tistory.com/entry/JSON-%EA%B0%9D%EC%B2%B4%EC%9D%98-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC-filter-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;json 데이터를 filter 적용하는 예제&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1679651285188&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const jsonData = [
  { &quot;숙소코드&quot;: 123, &quot;숙소명&quot;: &quot;호텔A&quot;, &quot;사용여부&quot;: &quot;Y&quot; },
  { &quot;숙소코드&quot;: 456, &quot;숙소명&quot;: &quot;모텔B&quot;, &quot;사용여부&quot;: &quot;N&quot; },
  { &quot;숙소코드&quot;: 789, &quot;숙소명&quot;: &quot;게스트하우스C&quot;, &quot;사용여부&quot;: &quot;Y&quot; }
];

const filteredData = jsonData.filter(data =&amp;gt; data[&quot;사용여부&quot;] === &quot;Y&quot;);

console.log(filteredData);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Progmming/Javascript</category>
      <category>filter</category>
      <category>json</category>
      <category>필터</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/186</guid>
      <comments>https://webdevcenter.tistory.com/entry/JSON-%EA%B0%9D%EC%B2%B4%EC%9D%98-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC-filter-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0#entry186comment</comments>
      <pubDate>Fri, 24 Mar 2023 18:49:49 +0900</pubDate>
    </item>
    <item>
      <title>웹 개발 언어별 장단점</title>
      <link>https://webdevcenter.tistory.com/entry/%EC%9B%B9-%EA%B0%9C%EB%B0%9C-%EC%96%B8%EC%96%B4%EB%B3%84-%EC%9E%A5%EB%8B%A8</link>
      <description>&lt;div class=&quot;markdown prose w-full break-words dark:prose-invert dark&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 개발 언어는 각각 장단점이 있습니다. 다음은 대표적인 웹 개발 언어들의 장단점입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;HTML / CSS&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;장점:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;웹 페이지의 구조와 스타일을 정의하는 데 필수적인 언어입니다.&lt;/li&gt;
&lt;li&gt;모든 웹 개발 프로젝트에서 사용됩니다.&lt;/li&gt;
&lt;li&gt;쉽게 배울 수 있고, 많은 자료와 템플릿이 제공됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단점:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;동적인 기능을 구현할 수 없습니다.&lt;/li&gt;
&lt;li&gt;웹 애플리케이션 개발에는 부족합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Javascript&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;장점:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;웹 페이지의 동적인 기능을 구현할 수 있습니다.&lt;/li&gt;
&lt;li&gt;Node.js를 사용하여 서버 측 개발도 가능합니다.&lt;/li&gt;
&lt;li&gt;다양한 라이브러리와 프레임워크가 있어 개발이 용이합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단점:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다른 언어보다 학습 곡선이 높습니다.&lt;/li&gt;
&lt;li&gt;브라우저 호환성 문제가 발생할 수 있습니다.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;PHP&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;장점:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;동적인 웹 페이지를 생성하고 데이터베이스와의 상호 작용을 가능하게 합니다.&lt;/li&gt;
&lt;li&gt;많은 웹 호스팅 업체에서 지원합니다.&lt;/li&gt;
&lt;li&gt;개발 생산성이 높습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단점:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;보안 문제가 발생할 수 있습니다.&lt;/li&gt;
&lt;li&gt;대규모 프로젝트에서 성능 이슈가 발생할 수 있습니다.&lt;/li&gt;
&lt;li&gt;다른 언어보다 문법이 복잡합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Python&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;장점:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;웹 애플리케이션 개발에 많이 사용됩니다.&lt;/li&gt;
&lt;li&gt;Django, Flask와 같은 프레임워크를 사용하면 개발을 더욱 효율적으로 할 수 있습니다.&lt;/li&gt;
&lt;li&gt;높은 생산성과 코드 가독성을 보장합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단점:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;대규모 프로젝트에서 성능 이슈가 발생할 수 있습니다.&lt;/li&gt;
&lt;li&gt;웹 호스팅 업체에서 지원되는 경우가 적습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Ruby&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;장점:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Ruby on Rails 프레임워크를 사용하여 웹 개발을 할 수 있습니다.&lt;/li&gt;
&lt;li&gt;생산성이 높고, 코드 가독성이 좋습니다.&lt;/li&gt;
&lt;li&gt;다양한 플러그인과 라이브러리가 있어 개발이 용이합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단점:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;성능 이슈가 발생할 수 있습니다.&lt;/li&gt;
&lt;li&gt;다른 언어보다 학습 곡선이 높습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 언어의 장단점을 고려하여, 자신이 개발하려는 프로젝트에 적합한 언어를 선택하는 것이 중요합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;React&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;장점:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;가상 DOM을 사용하여 성능을 최적화할 수 있습니다.&lt;/li&gt;
&lt;li&gt;컴포넌트 기반으로 구조화되어 있어 코드의 재사용성이 높습니다.&lt;/li&gt;
&lt;li&gt;다른 라이브러리와 프레임워크와의 호환성이 뛰어납니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단점:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;학습 곡선이 높습니다.&lt;/li&gt;
&lt;li&gt;개발을 위해 추가적인 라이브러리가 필요할 수 있습니다.&lt;/li&gt;
&lt;li&gt;SEO를 위해 서버 사이드 렌더링을 구현해야 할 경우에는 추가적인 구현이 필요합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;React는 대규모 애플리케이션에서도 활용할 수 있으며, 컴포넌트 기반으로 구조화되어 있어 재사용성이 높습니다. 또한, 가상 DOM을 사용하여 성능을 최적화할 수 있어 빠른 렌더링이 가능합니다. 그러나 React는 기존의 HTML/CSS와는 다른 개념과 문법을 가지고 있기 때문에 학습 곡선이 높은 편입니다. 또한, SEO를 위해 서버 사이드 렌더링을 구현해야 할 경우에는 추가적인 구현이 필요할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Java&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;장점:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;객체 지향 프로그래밍을 지원하며, 안정적이고 확장성이 높은 애플리케이션을 개발할 수 있습니다.&lt;/li&gt;
&lt;li&gt;다양한 라이브러리와 프레임워크가 있어 개발이 용이합니다.&lt;/li&gt;
&lt;li&gt;멀티 쓰레드 처리를 지원하여 대규모 애플리케이션 개발에 적합합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단점:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;개발 생산성이 낮은 편입니다.&lt;/li&gt;
&lt;li&gt;메모리 관리가 자동으로 이루어지지 않기 때문에 메모리 누수가 발생할 수 있습니다.&lt;/li&gt;
&lt;li&gt;코드 가독성이 다른 언어들에 비해 떨어질 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Java는 안정적이고 확장성이 높은 애플리케이션을 개발할 수 있는 언어입니다. 또한, 다양한 라이브러리와 프레임워크가 있어 개발이 용이합니다. 그러나 개발 생산성이 낮은 편이며, 메모리 관리가 자동으로 이루어지지 않기 때문에 메모리 누수가 발생할 수 있습니다. 또한, 코드 가독성이 다른 언어들에 비해 떨어질 수 있습니다. 대규모 애플리케이션을 개발할 때, 멀티 쓰레드 처리를 지원하여 성능을 향상시킬 수 있습니다.&lt;/p&gt;
&lt;/div&gt;</description>
      <category>이야기</category>
      <category>개발자</category>
      <category>진로고민</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/185</guid>
      <comments>https://webdevcenter.tistory.com/entry/%EC%9B%B9-%EA%B0%9C%EB%B0%9C-%EC%96%B8%EC%96%B4%EB%B3%84-%EC%9E%A5%EB%8B%A8#entry185comment</comments>
      <pubDate>Fri, 3 Mar 2023 18:32:33 +0900</pubDate>
    </item>
    <item>
      <title>개발자로 전향을 고민하신다면..</title>
      <link>https://webdevcenter.tistory.com/entry/%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A1%9C-%EC%A0%84%ED%96%A5%EC%9D%84-%EA%B3%A0%EB%AF%BC%ED%95%98%EC%8B%A0%EB%8B%A4%EB%A9%B4</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;개발자 진로를 선택하는 것은 매우 현명한 선택입니다. 하지만 이 일을 계속하기 위해선 다양한 고민과 노력이 필요합니다. 아래는 개발자 진로에 대한 고민과 해결책에 대한 몇 가지 팁입니다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;어떤 분야에서 개발자가 되고 싶은가? &lt;br /&gt;소프트웨어 개발에는 다양한 분야가 있습니다. 예를 들어 웹 개발, 애플리케이션 개발, 빅 데이터, 인공지능, 게임 개발 등이 있습니다. 각 분야마다 요구되는 기술과 지식이 다르기 때문에, 우선 자신이 어떤 분야에서 일하고 싶은지 생각해보는 것이 중요합니다. 그리고 해당 분야에서 요구되는 기술과 경험을 쌓는 것이 필요합니다.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;어떤 언어를 배워야 할까? &lt;br /&gt;개발자가 되기 위해서는 언어를 배워야 합니다. 하지만 어떤 언어를 배워야 할지 고민하는 경우가 많습니다. 이 경우, 자신이 선택한 분야에서 사용되는 언어를 찾아보는 것이 좋습니다. 예를 들어, 웹 개발 분야에서는 HTML, CSS, JavaScript, Python, Ruby 등이 자주 사용됩니다. 하지만 언어는 매우 다양하기 때문에, 언어를 배우는 것은 끝이 없습니다. 중요한 것은 기본적인 지식을 쌓는 것이며, 언어를 사용하는 방법과 원리를 이해하는 것입니다.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;어떻게 기술과 경험을 쌓을 수 있을까? &lt;br /&gt;개발자가 되기 위해서는 기술과 경험이 필요합니다. 이를 위해서는 자신의 프로젝트를 만들어보거나 오픈 소스 프로젝트에 참여하는 것이 좋습니다. 이외에도 학교나 커뮤니티에서 개최하는 해커톤, 코딩 대회 등에 참여하여 기술을 쌓을 수 있습니다. 또한, 이론적인 지식뿐만 아니라 실무적인 경험도 중요하기 때문에, 인턴십을 경험해보는 것도 좋은 방법입니다.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;어떤 회사에서 일을 해야 할까? &lt;br /&gt;개발자로 일하기 위해서는 어떤 회사에서 일하는가도 중요한 요소입니다. 이 경우, 자신이 일하고 싶은 분야에서 일하는 회사를 찾아보는 것이 좋습니다. 또한, 회사의 규모와 문화도 고려해야 합니다. 대기업에서는 안정적인 업무와 복지가 많이 제공되지만, 그만큼 느린 의사결정과 업무분담 등의 문제가 있을 수 있습니다. 반면에 스타트업은 빠른 의사결정과 다양한 경험을 쌓을 수 있는 기회가 많지만, 안정성이 떨어지고 직원의 업무량이 많을 수 있습니다. 이러한 것들을 고려하여 자신이 잘 맞을 수 있는 회사를 찾는 것이 중요합니다.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;어떤 자질이 필요할까? &lt;br /&gt;개발자가 되기 위해서는 기술적인 역량뿐만 아니라, 문제해결능력, 논리적인 사고력, 창의력, 협업능력 등의 다양한 자질이 필요합니다. 특히, 빠른 학습능력과 지속적인 자기계발이 필요하기 때문에, 호기심과 열정을 가지고 지속적으로 학습하며 발전하는 것이 중요합니다.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;어떤 고민이 있을까? &lt;br /&gt;개발자로 일하면서도 다양한 고민이 있을 수 있습니다. 예를 들어, 새로운 기술을 배워야 하는지, 진로를 변경해야 하는지, 업무에 대한 만족도 등이 그 예입니다. 이 경우, 주변의 개발자들이나 선배 개발자들과 이야기를 나누는 것이 좋습니다. 또한, 자신의 목표와 가치를 재확인하고, 그에 따라 방향을 잡는 것이 중요합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발자로서&amp;nbsp;성장하는&amp;nbsp;것은&amp;nbsp;지속적인&amp;nbsp;노력과&amp;nbsp;자기계발이&amp;nbsp;필요합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를&amp;nbsp;위해서는&amp;nbsp;자신이&amp;nbsp;선택한&amp;nbsp;분야에서&amp;nbsp;필요한&amp;nbsp;기술과&amp;nbsp;경험을&amp;nbsp;쌓는&amp;nbsp;것이&amp;nbsp;중요합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한,&amp;nbsp;회사와&amp;nbsp;문화,&amp;nbsp;자질,&amp;nbsp;고민&amp;nbsp;등&amp;nbsp;다양한&amp;nbsp;요소를&amp;nbsp;고려하여&amp;nbsp;자신에게&amp;nbsp;맞는&amp;nbsp;길을&amp;nbsp;찾아&amp;nbsp;나가는&amp;nbsp;것이&amp;nbsp;중요합니다.&lt;/p&gt;</description>
      <category>이야기</category>
      <category>개발자</category>
      <category>진로고민</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/184</guid>
      <comments>https://webdevcenter.tistory.com/entry/%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A1%9C-%EC%A0%84%ED%96%A5%EC%9D%84-%EA%B3%A0%EB%AF%BC%ED%95%98%EC%8B%A0%EB%8B%A4%EB%A9%B4#entry184comment</comments>
      <pubDate>Thu, 23 Feb 2023 17:55:54 +0900</pubDate>
    </item>
    <item>
      <title>PHP CI 로그 레벨별 파일 분리 하는 방법</title>
      <link>https://webdevcenter.tistory.com/entry/PHP-CI-%EB%A1%9C%EA%B7%B8-%EB%A0%88%EB%B2%A8%EB%B3%84-%ED%8C%8C%EC%9D%BC-%EB%B6%84%EB%A6%AC-%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #4e4e4e;&quot;&gt;libraries/Log.php&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1674094893305&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 아마도 상단에 이렇게 선언이 되어있을텐데..
protected $_levels = array('ERROR' =&amp;gt; '1', 'DEBUG' =&amp;gt; '2',  'INFO' =&amp;gt; '3', 'ALL' =&amp;gt; '4');

// $level 을 추가하면 기존 log연월일.php 가 ERROR-연월일.php로 바뀌게 됨. 에러 레벨별로 로그 분리
$filepath = $this-&amp;gt;_log_path.$level.'-'.date('Y-m-d').'.php';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://cikorea.net/bbs/view/lecture?idx=7113&quot;&gt;https://cikorea.net/bbs/view/lecture?idx=7113&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1674095015107&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[게임서버] 로그파일 분리하기&quot; data-og-description=&quot;CI 기본은 log-년-월-일.php와 같이 단일파일로 로그가 저장이 됩니다. 단일파일로 로그가 합쳐져 있을경우 분석시간이 많이 걸리기 때문에 분리를 하게 됩니다. (예 : 결제로그를 별도로 분리해서 &quot; data-og-host=&quot;cikorea.net&quot; data-og-source-url=&quot;https://cikorea.net/bbs/view/lecture?idx=7113&quot; data-og-url=&quot;http://cikorea.net/bbs/view/lecture?idx=7113&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://cikorea.net/bbs/view/lecture?idx=7113&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://cikorea.net/bbs/view/lecture?idx=7113&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[게임서버] 로그파일 분리하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;CI 기본은 log-년-월-일.php와 같이 단일파일로 로그가 저장이 됩니다. 단일파일로 로그가 합쳐져 있을경우 분석시간이 많이 걸리기 때문에 분리를 하게 됩니다. (예 : 결제로그를 별도로 분리해서&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;cikorea.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Progmming/PHP</category>
      <category>CI</category>
      <category>log</category>
      <category>php</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/183</guid>
      <comments>https://webdevcenter.tistory.com/entry/PHP-CI-%EB%A1%9C%EA%B7%B8-%EB%A0%88%EB%B2%A8%EB%B3%84-%ED%8C%8C%EC%9D%BC-%EB%B6%84%EB%A6%AC-%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95#entry183comment</comments>
      <pubDate>Thu, 19 Jan 2023 11:23:13 +0900</pubDate>
    </item>
    <item>
      <title>vscode 후행 공백 제거</title>
      <link>https://webdevcenter.tistory.com/entry/vscode-%ED%9B%84%ED%96%89-%EA%B3%B5%EB%B0%B1-%EC%A0%9C%EA%B1%B0</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;961&quot; data-origin-height=&quot;253&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/W6wll/btrWwHLeSLB/BtVVVzfbxNOhJj6khakXhk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/W6wll/btrWwHLeSLB/BtVVVzfbxNOhJj6khakXhk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/W6wll/btrWwHLeSLB/BtVVVzfbxNOhJj6khakXhk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FW6wll%2FbtrWwHLeSLB%2FBtVVVzfbxNOhJj6khakXhk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;961&quot; height=&quot;253&quot; data-origin-width=&quot;961&quot; data-origin-height=&quot;253&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Trim&amp;nbsp;Trailing&amp;nbsp;Whitespace&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일 저장 시 뒤 공백 제거&amp;nbsp;&lt;/p&gt;</description>
      <category>Tools/vs code</category>
      <category>vsCode</category>
      <category>공백제거</category>
      <category>후행공백</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/182</guid>
      <comments>https://webdevcenter.tistory.com/entry/vscode-%ED%9B%84%ED%96%89-%EA%B3%B5%EB%B0%B1-%EC%A0%9C%EA%B1%B0#entry182comment</comments>
      <pubDate>Wed, 18 Jan 2023 13:31:04 +0900</pubDate>
    </item>
    <item>
      <title>VSCode에서 Git Bash를 통합 터미널로 설정하는 방법</title>
      <link>https://webdevcenter.tistory.com/entry/VSCode%EC%97%90%EC%84%9C-Git-Bash%EB%A5%BC-%ED%86%B5%ED%95%A9-%ED%84%B0%EB%AF%B8%EB%84%90%EB%A1%9C-%EC%84%A4%EC%A0%95%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;터미널 설정 구성&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;722&quot; data-origin-height=&quot;102&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mt5GJ/btrUOLuuX1n/74RHEHynI0W4EyDqptgmDk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mt5GJ/btrUOLuuX1n/74RHEHynI0W4EyDqptgmDk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mt5GJ/btrUOLuuX1n/74RHEHynI0W4EyDqptgmDk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fmt5GJ%2FbtrUOLuuX1n%2F74RHEHynI0W4EyDqptgmDk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;722&quot; height=&quot;102&quot; data-origin-width=&quot;722&quot; data-origin-height=&quot;102&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;terminal.integrated.defaultprofile.windows 에서 Git Bash 선택&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1569&quot; data-origin-height=&quot;788&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVb9Tn/btrUVi5s4GQ/1RtJlkOZ11dSzKrSrz75WK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVb9Tn/btrUVi5s4GQ/1RtJlkOZ11dSzKrSrz75WK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVb9Tn/btrUVi5s4GQ/1RtJlkOZ11dSzKrSrz75WK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVb9Tn%2FbtrUVi5s4GQ%2F1RtJlkOZ11dSzKrSrz75WK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1569&quot; height=&quot;788&quot; data-origin-width=&quot;1569&quot; data-origin-height=&quot;788&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;만약 해당 옵션이 없다면 settings.json 파일을 열고 terminal.integrated.profiles.windows 항목을 찾고 없다면 추가 .&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;주의 : defaultProfile.windows 값은 한 단어여야 작동합니다. 붙여쓰세요.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1672280817061&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  &quot;terminal.integrated.profiles.windows&quot;: {
    &quot;GitBash&quot;: { 
        &quot;source&quot;: &quot;Git Bash&quot;,
        &quot;path&quot;: [&quot;C:\\Program Files\\Git\\bin\\bash.exe&quot;],
    },
  },  
  &quot;terminal.integrated.defaultProfile.windows&quot;: &quot;GitBash&quot;,&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Tools/vs code</category>
      <category>Git</category>
      <category>git bash</category>
      <category>vsCode</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/181</guid>
      <comments>https://webdevcenter.tistory.com/entry/VSCode%EC%97%90%EC%84%9C-Git-Bash%EB%A5%BC-%ED%86%B5%ED%95%A9-%ED%84%B0%EB%AF%B8%EB%84%90%EB%A1%9C-%EC%84%A4%EC%A0%95%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95#entry181comment</comments>
      <pubDate>Thu, 29 Dec 2022 11:27:54 +0900</pubDate>
    </item>
    <item>
      <title>MariaDB MaxScale 2022.10 웨비나</title>
      <link>https://webdevcenter.tistory.com/entry/MariaDB-MaxScale-202210-%EC%9B%A8%EB%B9%84%EB%82%98</link>
      <description>&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/p9Nd4/btrUupc7NTq/PO9St2q7naHjYzvlYQ30Zk/MariaDB%2B%EA%B8%B0%EB%B3%B8%2B%EC%86%8C%EA%B0%9C%2B20221007.pdf?attach=1&amp;amp;knm=tfile.pdf&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;MariaDB+기본+소개+20221007.pdf&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;2.52MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/b6CTWd/btrUs6MCqGz/eIyhse80C2z0zsXyEc9OAK/MariaDB%2BMaxScale%2B%EC%9B%A8%EB%B9%84%EB%82%98%2B202210.pdf?attach=1&amp;amp;knm=tfile.pdf&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;MariaDB+MaxScale+웨비나+202210.pdf&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;1.72MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=rhtL0mtIGP0&quot;&gt;https://www.youtube.com/watch?v=rhtL0mtIGP0&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=rhtL0mtIGP0&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/u6Lr2/hyQZFRcBaW/DlxXoF8EkKpPhtZiotG21k/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=102_124_150_176&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/rhtL0mtIGP0&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>DataBase/My-SQL</category>
      <category>MariaDB</category>
      <category>maxScale</category>
      <category>웨비나</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/180</guid>
      <comments>https://webdevcenter.tistory.com/entry/MariaDB-MaxScale-202210-%EC%9B%A8%EB%B9%84%EB%82%98#entry180comment</comments>
      <pubDate>Fri, 23 Dec 2022 18:54:03 +0900</pubDate>
    </item>
    <item>
      <title>.ppk 파일을 .pem 파일로 변환하는 방법</title>
      <link>https://webdevcenter.tistory.com/entry/ppk-%ED%8C%8C%EC%9D%BC%EC%9D%84-pem-%ED%8C%8C%EC%9D%BC%EB%A1%9C-%EB%B3%80%ED%99%98%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;aws ec2 접속을 위한 ppk 로 pem 생성하는 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;.ppk 파일을 .pem 파일로 변환&lt;/p&gt;
&lt;ol style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;PuTTYgen 다운로드 및 실행.&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;Actions에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;Load 메뉴&amp;nbsp; .ppk 파일 선택&lt;/li&gt;
&lt;li&gt;.ppk 파일 &lt;span&gt;&amp;nbsp;&lt;/span&gt;Open&lt;/li&gt;
&lt;li&gt;Key passphrase를 입력 (보안을 위해 입력하는것을 권장)&lt;/li&gt;
&lt;li&gt;PuTTYgen 메뉴에서&lt;span&gt;&amp;nbsp;&lt;/span&gt;Conversions - Export OpenSSH Key 선택&lt;br /&gt;( 암호를 입력하지 않았다면 경고가 표시되지만 Y 선택하면 진행 가능.)&lt;/li&gt;
&lt;li&gt;확장자를&lt;span&gt;&amp;nbsp;&lt;/span&gt;.pem로 입력&lt;/li&gt;
&lt;li&gt;Save&lt;/li&gt;
&lt;/ol&gt;</description>
      <category>Cloud Server</category>
      <category>PEM</category>
      <category>ppk</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/179</guid>
      <comments>https://webdevcenter.tistory.com/entry/ppk-%ED%8C%8C%EC%9D%BC%EC%9D%84-pem-%ED%8C%8C%EC%9D%BC%EB%A1%9C-%EB%B3%80%ED%99%98%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95#entry179comment</comments>
      <pubDate>Mon, 4 Jul 2022 18:42:18 +0900</pubDate>
    </item>
    <item>
      <title>SQL Formatter SQL 자동 정렬 해주는 웹 사이트</title>
      <link>https://webdevcenter.tistory.com/entry/SQL-Formatter-SQL-%EC%9E%90%EB%8F%99-%EC%A0%95%EB%A0%AC-%ED%95%B4%EC%A3%BC%EB%8A%94-%EC%9B%B9-%EC%82%AC%EC%9D%B4%ED%8A%B8</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;SQL Formatter&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.dpriver.com/pp/sqlformat.htm&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.dpriver.com/pp/sqlformat.htm&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1649755959044&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Instant SQL Formatter&quot; data-og-description=&quot;&quot; data-og-host=&quot;www.dpriver.com&quot; data-og-source-url=&quot;https://www.dpriver.com/pp/sqlformat.htm&quot; data-og-url=&quot;https://www.dpriver.com/pp/sqlformat.htm&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.dpriver.com/pp/sqlformat.htm&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.dpriver.com/pp/sqlformat.htm&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Instant SQL Formatter&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.dpriver.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;452&quot; data-origin-height=&quot;146&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lwBwv/btrzbG2ecZd/67cnHr7ZPpp4rwwyYJn03K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lwBwv/btrzbG2ecZd/67cnHr7ZPpp4rwwyYJn03K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lwBwv/btrzbG2ecZd/67cnHr7ZPpp4rwwyYJn03K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlwBwv%2FbtrzbG2ecZd%2F67cnHr7ZPpp4rwwyYJn03K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;452&quot; height=&quot;146&quot; data-origin-width=&quot;452&quot; data-origin-height=&quot;146&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;들어갈 때 마다 세팅 하는것이 번거로워서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 즐겨찾기 등록 후 수정을 통해서 Javascript&amp;nbsp; 로 설정값을 세팅하도록 했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;URL 칸에는 아래와 같이..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;javascript:document.all.dbvendor.value&amp;nbsp;=&amp;nbsp;'mysql';document.all.keywordcs.value&amp;nbsp;=&amp;nbsp;'Unchanged';document.all.tablenamecs.value&amp;nbsp;=&amp;nbsp;'Unchanged';document.all.columnnamecs.value&amp;nbsp;=&amp;nbsp;'Unchanged';document.all.functioncs.value&amp;nbsp;=&amp;nbsp;'Unchanged';document.all.datatypecs.value&amp;nbsp;=&amp;nbsp;'Unchanged';document.all.variablecs.value&amp;nbsp;=&amp;nbsp;'Unchanged';document.all.aliascs.value&amp;nbsp;=&amp;nbsp;'Unchanged';document.all.quotedidentifiercs.value&amp;nbsp;=&amp;nbsp;'Unchanged';document.all.identifiercs.value&amp;nbsp;=&amp;nbsp;'Unchanged';document.all.maxlenincm.value&amp;nbsp;=&amp;nbsp;8000;document.all.salign[1].checked&amp;nbsp;=&amp;nbsp;true;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종적으로는 아래와 같이 사이트 즐겨찾기와 세팅하기를 즐겨찾기해두고 사용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사이트 접속 후 세팅 클릭하면 자동으로 세팅값이 짠..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;208&quot; data-origin-height=&quot;141&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c9eADn/btry9eSgOj4/wQmZ24vvkABjq0Zo2VeUD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c9eADn/btry9eSgOj4/wQmZ24vvkABjq0Zo2VeUD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c9eADn/btry9eSgOj4/wQmZ24vvkABjq0Zo2VeUD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc9eADn%2Fbtry9eSgOj4%2FwQmZ24vvkABjq0Zo2VeUD0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;208&quot; height=&quot;141&quot; data-origin-width=&quot;208&quot; data-origin-height=&quot;141&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>추천 정보</category>
      <category>beautifier</category>
      <category>sql</category>
      <category>sql formatter</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/178</guid>
      <comments>https://webdevcenter.tistory.com/entry/SQL-Formatter-SQL-%EC%9E%90%EB%8F%99-%EC%A0%95%EB%A0%AC-%ED%95%B4%EC%A3%BC%EB%8A%94-%EC%9B%B9-%EC%82%AC%EC%9D%B4%ED%8A%B8#entry178comment</comments>
      <pubDate>Tue, 12 Apr 2022 18:36:53 +0900</pubDate>
    </item>
    <item>
      <title>기상청 지역별 날씨정보 API</title>
      <link>https://webdevcenter.tistory.com/entry/%EA%B8%B0%EC%83%81%EC%B2%AD-%EC%A7%80%EC%97%AD%EB%B3%84-%EB%82%A0%EC%94%A8%EC%A0%95%EB%B3%B4-API</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.kma.go.kr/wid/queryDFS.jsp?gridx=60&amp;amp;gridy=127&quot;&gt;https://www.kma.go.kr/wid/queryDFS.jsp?gridx=60&amp;amp;gridy=127&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;gridx , gridy 는 leaf 에서 확인.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.kma.go.kr/DFSROOT/POINT/DATA/top.json.txt&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://www.kma.go.kr/DFSROOT/POINT/DATA/top.json.txt&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;[ &lt;br /&gt;{&quot;code&quot;:&quot;11&quot;,&quot;value&quot;:&quot;서울특별시&quot;}, &lt;br /&gt;{&quot;code&quot;:&quot;26&quot;,&quot;value&quot;:&quot;부산광역시&quot;} &lt;br /&gt;... &lt;br /&gt;... &lt;br /&gt;] &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.kma.go.kr/DFSROOT/POINT/DATA/mdl.11.json.txt&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://www.kma.go.kr/DFSROOT/POINT/DATA/mdl.11.json.txt&lt;/a&gt;&amp;nbsp;&amp;nbsp;//&amp;nbsp;11&amp;nbsp;:&amp;nbsp;서울특별시 &lt;br /&gt;[ &lt;br /&gt;{&quot;code&quot;:&quot;11110&quot;,&quot;value&quot;:&quot;종로구&quot;}, &lt;br /&gt;{&quot;code&quot;:&quot;11140&quot;,&quot;value&quot;:&quot;중구&quot;} &lt;br /&gt;... &lt;br /&gt;... &lt;br /&gt;] &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.kma.go.kr/DFSROOT/POINT/DATA/leaf.11110.json.txt&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;http://www.kma.go.kr/DFSROOT/POINT/DATA/leaf.11110.json.txt&lt;/a&gt;&amp;nbsp;//&amp;nbsp;11110&amp;nbsp;:&amp;nbsp;종로구 &lt;br /&gt;[ &lt;br /&gt;{&quot;code&quot;:&quot;1111051000&quot;,&quot;value&quot;:&quot;청운동&quot;,&quot;x&quot;:&quot;60&quot;,&quot;y&quot;:&quot;127&quot;}, &lt;br /&gt;{&quot;code&quot;:&quot;1111052000&quot;,&quot;value&quot;:&quot;효자동&quot;,&quot;x&quot;:&quot;60&quot;,&quot;y&quot;:&quot;127&quot;} &lt;br /&gt;... &lt;br /&gt;... &lt;br /&gt;... &lt;br /&gt;]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/OJuvi/btsiNchLvGW/50u1UCghLmPmx3HMQOF4R0/timeseries_XML.pdf?attach=1&amp;amp;knm=tfile.pdf&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;timeseries_XML.pdf&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.11MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Open API/그 외</category>
      <category>API</category>
      <category>기상청</category>
      <category>날씨</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/177</guid>
      <comments>https://webdevcenter.tistory.com/entry/%EA%B8%B0%EC%83%81%EC%B2%AD-%EC%A7%80%EC%97%AD%EB%B3%84-%EB%82%A0%EC%94%A8%EC%A0%95%EB%B3%B4-API#entry177comment</comments>
      <pubDate>Thu, 27 Jan 2022 13:51:21 +0900</pubDate>
    </item>
    <item>
      <title>C# 소켓통신 서버 &amp;amp; 클라이언트 소스코드  , MSDN &amp;amp; 예제 샘플소스</title>
      <link>https://webdevcenter.tistory.com/entry/C-%EC%86%8C%EC%BC%93%ED%86%B5%EC%8B%A0-%EC%84%9C%EB%B2%84-%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8-%EC%86%8C%EC%8A%A4%EC%BD%94%EB%93%9C</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;소켓통신으로 데이터를 받아서 웹으로 토스해주기 위해 적합한 샘플을 찾던 중..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MSDN&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.microsoft.com/ko-kr/dotnet/framework/network-programming/socket-code-examples&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://docs.microsoft.com/ko-kr/dotnet/framework/network-programming/socket-code-examples&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1641462712494&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;소켓 코드 예제&quot; data-og-description=&quot;다음 예제를 통해 Socket 클래스를 사용하여 클라이언트에서 네트워크 서비스에 연결하는 방법 및 클라이언트의 연결을 수신 대기할 서버로 사용하는 방법을 알아봅니다.&quot; data-og-host=&quot;docs.microsoft.com&quot; data-og-source-url=&quot;https://docs.microsoft.com/ko-kr/dotnet/framework/network-programming/socket-code-examples&quot; data-og-url=&quot;https://docs.microsoft.com/ko-kr/dotnet/framework/network-programming/socket-code-examples&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bke4b4/hyMZJpJiYa/aFK2VfIeYQztTH1WAJ6uN0/img.png?width=456&amp;amp;height=456&amp;amp;face=0_0_456_456&quot;&gt;&lt;a href=&quot;https://docs.microsoft.com/ko-kr/dotnet/framework/network-programming/socket-code-examples&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.microsoft.com/ko-kr/dotnet/framework/network-programming/socket-code-examples&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bke4b4/hyMZJpJiYa/aFK2VfIeYQztTH1WAJ6uN0/img.png?width=456&amp;amp;height=456&amp;amp;face=0_0_456_456');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;소켓 코드 예제&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;다음 예제를 통해 Socket 클래스를 사용하여 클라이언트에서 네트워크 서비스에 연결하는 방법 및 클라이언트의 연결을 수신 대기할 서버로 사용하는 방법을 알아봅니다.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.microsoft.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;샘플코드&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://sheepone.tistory.com/57&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://sheepone.tistory.com/57&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1641462500114&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;C# 소켓통신 TcpClient (비동기, 재접속, TcpServer 예제포함)&quot; data-og-description=&quot;비동기 재접속이 가능한 TCPCLIENT using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Windows.Forms; namespace TCPClient01 { public partial class Form1 : Form {..&quot; data-og-host=&quot;sheepone.tistory.com&quot; data-og-source-url=&quot;https://sheepone.tistory.com/57&quot; data-og-url=&quot;https://sheepone.tistory.com/57&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/ctJtNn/hyMZJQPAkl/VEXhqtk7aIkP7vr25zyIak/img.png?width=800&amp;amp;height=612&amp;amp;face=0_0_800_612,https://scrap.kakaocdn.net/dn/m3gt0/hyMZPwJfVW/EzuIyFoktyevIV8LDk6UT0/img.png?width=800&amp;amp;height=612&amp;amp;face=0_0_800_612,https://scrap.kakaocdn.net/dn/r4cDj/hyMZUY7Wr2/hv1ZCDSWs0jxzwytYZs5K1/img.png?width=980&amp;amp;height=750&amp;amp;face=0_0_980_750&quot;&gt;&lt;a href=&quot;https://sheepone.tistory.com/57&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://sheepone.tistory.com/57&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/ctJtNn/hyMZJQPAkl/VEXhqtk7aIkP7vr25zyIak/img.png?width=800&amp;amp;height=612&amp;amp;face=0_0_800_612,https://scrap.kakaocdn.net/dn/m3gt0/hyMZPwJfVW/EzuIyFoktyevIV8LDk6UT0/img.png?width=800&amp;amp;height=612&amp;amp;face=0_0_800_612,https://scrap.kakaocdn.net/dn/r4cDj/hyMZUY7Wr2/hv1ZCDSWs0jxzwytYZs5K1/img.png?width=980&amp;amp;height=750&amp;amp;face=0_0_980_750');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;C# 소켓통신 TcpClient (비동기, 재접속, TcpServer 예제포함)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;비동기 재접속이 가능한 TCPCLIENT using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Windows.Forms; namespace TCPClient01 { public partial class Form1 : Form {..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;sheepone.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소켓통신 서버 테스트를 위한 테스트 툴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://blog.daum.net/pg365/276&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://blog.daum.net/pg365/276&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1645074260797&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;시리얼 포트, TCP/IP, UDP/IP 터미널 프로그램 (시리얼 통신 프로그램)&quot; data-og-description=&quot;이번에 소개 드리는 프로그램은 시리얼 포트(COM port)나 TCP/IP, UDP/IP 프로토콜로 데이터를 주고받을 수 있는 프로그램입니다. 시리얼이나 TCP, UDP 프로토콜로 통신하는 장비를&amp;nbsp;연결하는 프로그램&quot; data-og-host=&quot;blog.daum.net&quot; data-og-source-url=&quot;https://blog.daum.net/pg365/276&quot; data-og-url=&quot;https://blog.daum.net/pg365/276&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/O7Qbu/hyNrMFvt1I/1srk7SGQrARwuvrTGo5f4K/img.png?width=699&amp;amp;height=634&amp;amp;face=0_0_699_634,https://scrap.kakaocdn.net/dn/bonuud/hyNqzA1uAr/mywOfej6BEf0sO0RixOLXk/img.png?width=699&amp;amp;height=634&amp;amp;face=0_0_699_634&quot;&gt;&lt;a href=&quot;https://blog.daum.net/pg365/276&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://blog.daum.net/pg365/276&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/O7Qbu/hyNrMFvt1I/1srk7SGQrARwuvrTGo5f4K/img.png?width=699&amp;amp;height=634&amp;amp;face=0_0_699_634,https://scrap.kakaocdn.net/dn/bonuud/hyNqzA1uAr/mywOfej6BEf0sO0RixOLXk/img.png?width=699&amp;amp;height=634&amp;amp;face=0_0_699_634');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;시리얼 포트, TCP/IP, UDP/IP 터미널 프로그램 (시리얼 통신 프로그램)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;이번에 소개 드리는 프로그램은 시리얼 포트(COM port)나 TCP/IP, UDP/IP 프로토콜로 데이터를 주고받을 수 있는 프로그램입니다. 시리얼이나 TCP, UDP 프로토콜로 통신하는 장비를&amp;nbsp;연결하는 프로그램&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;blog.daum.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Progmming/.Net</category>
      <category>C#</category>
      <category>서버</category>
      <category>소켓통신</category>
      <category>클라이언트</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/176</guid>
      <comments>https://webdevcenter.tistory.com/entry/C-%EC%86%8C%EC%BC%93%ED%86%B5%EC%8B%A0-%EC%84%9C%EB%B2%84-%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8-%EC%86%8C%EC%8A%A4%EC%BD%94%EB%93%9C#entry176comment</comments>
      <pubDate>Thu, 6 Jan 2022 18:49:38 +0900</pubDate>
    </item>
    <item>
      <title>한글 포함 문자열 바이트로 자르기 substring</title>
      <link>https://webdevcenter.tistory.com/entry/%ED%95%9C%EA%B8%80-%ED%8F%AC%ED%95%A8-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%B0%94%EC%9D%B4%ED%8A%B8%EB%A1%9C-%EC%9E%90%EB%A5%B4%EA%B8%B0-substring</link>
      <description>&lt;pre id=&quot;code_1640226146129&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;       function getTextLength(str) {
           var len = 0;
           for (var i = 0; i &amp;lt; str.length; i++) {
               if (escape(str.charAt(i)).length == 6) {
                   len++;
               }

               len++;
           }

           return len;
       }

       function cutStr(str, start, size) {
           var i = 0;
           var lim = 0;
           var pos = 0;
           var beg = 0;
           var minus = 0;
           var len = getTextLength(str);

           for (var i = 0; pos &amp;lt; start; i++) {
               pos += (str.charCodeAt(i) &amp;gt; 128) ? 2 : 1;
           }

           beg = i;


           for (i = beg; i &amp;lt; len; i++) {
               lim += (str.charCodeAt(i) &amp;gt; 128) ? 2 : 1;

               if (lim &amp;gt; size) {
                   break;
               }
           }

           return str.substring(beg, i);
       }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Progmming/Javascript</category>
      <category>javascript</category>
      <category>SUBSTRING</category>
      <category>문자열자르기</category>
      <category>바이트</category>
      <category>한글포함</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/175</guid>
      <comments>https://webdevcenter.tistory.com/entry/%ED%95%9C%EA%B8%80-%ED%8F%AC%ED%95%A8-%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%B0%94%EC%9D%B4%ED%8A%B8%EB%A1%9C-%EC%9E%90%EB%A5%B4%EA%B8%B0-substring#entry175comment</comments>
      <pubDate>Thu, 23 Dec 2021 11:23:37 +0900</pubDate>
    </item>
    <item>
      <title>크롬 자동완성 막기</title>
      <link>https://webdevcenter.tistory.com/entry/%ED%81%AC%EB%A1%AC-%EC%9E%90%EB%8F%99%EC%99%84%EC%84%B1-%EB%A7%89%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;의도치 않은 input에 아이디가 자꾸 찍혀 있어서 찾아보다보니 고질병으로&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;autocomplete 속성으로 하는 방법이 있었으나 크롬 버전이 바뀌면서 사용 불가능.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1639977391022&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;input id=&quot;email&quot; readonly type=&quot;email&quot; onfocus=&quot;if (this.hasAttribute('readonly')) {
    this.removeAttribute('readonly');
    // fix for mobile safari to show virtual keyboard
    this.blur();    this.focus();  }&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/15738259/disabling-chrome-autofill&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://stackoverflow.com/questions/15738259/disabling-chrome-autofill&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1639977494112&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Disabling Chrome Autofill&quot; data-og-description=&quot;I have been running into issues with the chrome autofill behavior on several forms. The fields in the form all have very common and accurate names, such as &amp;quot;email&amp;quot;, &amp;quot;name&amp;quot;, or &amp;quot;password&amp;quot;, and the...&quot; data-og-host=&quot;stackoverflow.com&quot; data-og-source-url=&quot;https://stackoverflow.com/questions/15738259/disabling-chrome-autofill&quot; data-og-url=&quot;https://stackoverflow.com/questions/15738259/disabling-chrome-autofill&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/0rpgO/hyMKFuFZlI/Fn7d9rKNwDhapbWFupImi0/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/15738259/disabling-chrome-autofill&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://stackoverflow.com/questions/15738259/disabling-chrome-autofill&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/0rpgO/hyMKFuFZlI/Fn7d9rKNwDhapbWFupImi0/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Disabling Chrome Autofill&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;I have been running into issues with the chrome autofill behavior on several forms. The fields in the form all have very common and accurate names, such as &quot;email&quot;, &quot;name&quot;, or &quot;password&quot;, and the...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;stackoverflow.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Open API/Jquery</category>
      <category>Autofill</category>
      <category>disable</category>
      <category>자동완성</category>
      <category>크롬</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/174</guid>
      <comments>https://webdevcenter.tistory.com/entry/%ED%81%AC%EB%A1%AC-%EC%9E%90%EB%8F%99%EC%99%84%EC%84%B1-%EB%A7%89%EA%B8%B0#entry174comment</comments>
      <pubDate>Mon, 20 Dec 2021 14:18:30 +0900</pubDate>
    </item>
    <item>
      <title>HeidiSQL Ping Server 로그 숨기기</title>
      <link>https://webdevcenter.tistory.com/entry/HeidiSQL-Ping-Server-%EB%A1%9C%EA%B7%B8-%EC%88%A8%EA%B8%B0%EA%B8%B0</link>
      <description>&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;로그 파일에 대부분 용량을 차지하는 /* Ping server ... */&amp;nbsp; 메시지&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;숨기는 방법&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;환경설정 - 로그 기록 - 디버그 메시지 체크 해제&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;726&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/v3g92/btrl8mAGPyI/oOtKJGe8mGKpEOnTcW2Ck1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/v3g92/btrl8mAGPyI/oOtKJGe8mGKpEOnTcW2Ck1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/v3g92/btrl8mAGPyI/oOtKJGe8mGKpEOnTcW2Ck1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv3g92%2Fbtrl8mAGPyI%2FoOtKJGe8mGKpEOnTcW2Ck1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;740&quot; height=&quot;726&quot; data-origin-width=&quot;740&quot; data-origin-height=&quot;726&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>DataBase/My-SQL</category>
      <category>HeidiSQL</category>
      <category>ping server</category>
      <category>로그</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/173</guid>
      <comments>https://webdevcenter.tistory.com/entry/HeidiSQL-Ping-Server-%EB%A1%9C%EA%B7%B8-%EC%88%A8%EA%B8%B0%EA%B8%B0#entry173comment</comments>
      <pubDate>Thu, 25 Nov 2021 11:33:38 +0900</pubDate>
    </item>
    <item>
      <title>mysql - 특정 컬럼명 검색하기 , 포함하는 테이블 찾기</title>
      <link>https://webdevcenter.tistory.com/entry/mysql-%ED%8A%B9%EC%A0%95-%EC%BB%AC%EB%9F%BC%EB%AA%85-%EA%B2%80%EC%83%89%ED%95%98%EA%B8%B0-%ED%8F%AC%ED%95%A8%ED%95%98%EB%8A%94-%ED%85%8C%EC%9D%B4%EB%B8%94-%EC%B0%BE%EA%B8%B0</link>
      <description>&lt;pre id=&quot;code_1637641272418&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;	SELECT 	TABLE_SCHEMA
		,	TABLE_NAME
		,	COLUMN_NAME
		,	CHARACTER_MAXIMUM_LENGTH
		,	ORDINAL_POSITION
		,	COLUMN_DEFAULT
		,	DATA_TYPE
		,	COLUMN_TYPE
		,	COLUMN_KEY
		,	EXTRA
		,	COLUMN_COMMENT
	FROM 	INFORMATION_SCHEMA.COLUMNS
	WHERE 	TABLE_SCHEMA		= '디비명' 
		AND COLUMN_NAME			= '컬럼명';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class=&quot;revenue_unit_wrap&quot;&gt;
  &lt;div class=&quot;revenue_unit_item adsense&quot;&gt;
    &lt;div class=&quot;revenue_unit_info&quot;&gt;728x90&lt;/div&gt;
    &lt;script src=&quot;//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot; async=&quot;async&quot;&gt;&lt;/script&gt;
    &lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: inline-block; width: 728px; height: 90px;&quot; data-ad-host=&quot;ca-host-pub-9691043933427338&quot; data-ad-client=&quot;ca-pub-4169082997566429&quot;&gt;&lt;/ins&gt;
    &lt;script&gt;(adsbygoogle = window.adsbygoogle || []).push({});&lt;/script&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동일 컬럼이 여러개 인 경우 뒤져보기.&lt;/p&gt;</description>
      <category>DataBase/My-SQL</category>
      <category>mysql</category>
      <category>길이</category>
      <category>컬럼검색</category>
      <category>타입</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/172</guid>
      <comments>https://webdevcenter.tistory.com/entry/mysql-%ED%8A%B9%EC%A0%95-%EC%BB%AC%EB%9F%BC%EB%AA%85-%EA%B2%80%EC%83%89%ED%95%98%EA%B8%B0-%ED%8F%AC%ED%95%A8%ED%95%98%EB%8A%94-%ED%85%8C%EC%9D%B4%EB%B8%94-%EC%B0%BE%EA%B8%B0#entry172comment</comments>
      <pubDate>Tue, 23 Nov 2021 13:23:41 +0900</pubDate>
    </item>
    <item>
      <title>aws lambda 윈도우환경에서 배포 패키지 생성하는 방법</title>
      <link>https://webdevcenter.tistory.com/entry/aws-lambda-%EB%B0%B0%ED%8F%AC-%ED%8C%A8%ED%82%A4%EC%A7%80-%EC%83%9D%EC%84%B1</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/with-s3-tutorial.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/with-s3-tutorial.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1631870404060&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;자습서: Amazon S3 트리거를 사용하여 썸네일 이미지 생성 - AWS Lambda&quot; data-og-description=&quot;자습서: Amazon S3 트리거를 사용하여 썸네일 이미지 생성 이 자습서에서는 Lambda 함수를 생성하고 Amazon Simple Storage Service(Amazon S3)에 대한 트리거를 구성합니다. Amazon S3는 S3 버킷에 업로드된 각 이&quot; data-og-host=&quot;docs.aws.amazon.com&quot; data-og-source-url=&quot;https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/with-s3-tutorial.html&quot; data-og-url=&quot;https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/with-s3-tutorial.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/with-s3-tutorial.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/with-s3-tutorial.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;자습서: Amazon S3 트리거를 사용하여 썸네일 이미지 생성 - AWS Lambda&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;자습서: Amazon S3 트리거를 사용하여 썸네일 이미지 생성 이 자습서에서는 Lambda 함수를 생성하고 Amazon Simple Storage Service(Amazon S3)에 대한 트리거를 구성합니다. Amazon S3는 S3 버킷에 업로드된 각 이&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.aws.amazon.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Amazon S3 트리거를 사용하여 썸네일 이미지 생성을 만드는 중에...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리눅스를 몰라도 AWS 웹 인터페이스를 통해 대부분이 해결 가능했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 배포 패키지 생성에 막혀서 문제가 발생했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개념 자체가 없었기 때문에..&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;필자가 찾은 가장 간편한 방법은 git bash를 설치하는 방법인데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;팀원에게 얻은 팁으로 정보 공유를 위해 포스팅하려고 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 다운로드는&amp;nbsp;&lt;a href=&quot;https://git-scm.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://git-scm.com/&lt;/a&gt;&amp;nbsp; 여기에서 ...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 후 실행하면 아래와 같이 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;721&quot; data-origin-height=&quot;314&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/J19pH/btrfnwEyaeN/pJajcbQ7uFXuLK1wBnQX4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/J19pH/btrfnwEyaeN/pJajcbQ7uFXuLK1wBnQX4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/J19pH/btrfnwEyaeN/pJajcbQ7uFXuLK1wBnQX4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJ19pH%2FbtrfnwEyaeN%2FpJajcbQ7uFXuLK1wBnQX4K%2Fimg.png&quot; data-origin-width=&quot;721&quot; data-origin-height=&quot;314&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;pwd 는 현재 경로를 보는 명령어 입니다. 후에 배포 패키지를 zip으로 만들어야 하기 때문에&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 경로 확인이 필요합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;721&quot; data-origin-height=&quot;314&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGZxtj/btrfnmvkJ64/yVHgHt5UPCKNgmfkgr4c3K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGZxtj/btrfnmvkJ64/yVHgHt5UPCKNgmfkgr4c3K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGZxtj/btrfnmvkJ64/yVHgHt5UPCKNgmfkgr4c3K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGZxtj%2FbtrfnmvkJ64%2FyVHgHt5UPCKNgmfkgr4c3K%2Fimg.png&quot; data-origin-width=&quot;721&quot; data-origin-height=&quot;314&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C:\aws 폴더를 만들고 이동하겠습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;721&quot; data-origin-height=&quot;314&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yUA6C/btrfnVYezcw/a8VeRkpmvvH740RPRR8dz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yUA6C/btrfnVYezcw/a8VeRkpmvvH740RPRR8dz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yUA6C/btrfnVYezcw/a8VeRkpmvvH740RPRR8dz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyUA6C%2FbtrfnVYezcw%2Fa8VeRkpmvvH740RPRR8dz1%2Fimg.png&quot; data-origin-width=&quot;721&quot; data-origin-height=&quot;314&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자습서에 나오는 npm install sharp 명령어 실행을 해야하지만&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;git bash 에서 그대로 실행하면 윈도우 버전이 다운로드 되기 때문에&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;--arch 와 --platform 옵션을 추가해서&amp;nbsp; x64 , linux 로 설치했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;721&quot; data-origin-height=&quot;314&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qEUSm/btrfpCXz8mD/5970G7ZhBzgrjHfa29ZGQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qEUSm/btrfpCXz8mD/5970G7ZhBzgrjHfa29ZGQ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qEUSm/btrfpCXz8mD/5970G7ZhBzgrjHfa29ZGQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqEUSm%2FbtrfpCXz8mD%2F5970G7ZhBzgrjHfa29ZGQ0%2Fimg.png&quot; data-origin-width=&quot;721&quot; data-origin-height=&quot;314&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;c:\aws 폴더에 아래와 같이 모듈이 설치되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;145&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0rwBO/btrfn3u8rIU/JyBWnJVJE5kYlaknxlJ0r0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0rwBO/btrfn3u8rIU/JyBWnJVJE5kYlaknxlJ0r0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0rwBO/btrfn3u8rIU/JyBWnJVJE5kYlaknxlJ0r0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0rwBO%2Fbtrfn3u8rIU%2FJyBWnJVJE5kYlaknxlJ0r0%2Fimg.png&quot; data-origin-width=&quot;799&quot; data-origin-height=&quot;145&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기에 index.js 파일에 생성 소스를 넣고 zip으로 압축하면 배포 패키지 완성..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;배포나 실행 테스트도 git bash - cli 를 통해서 처리가 가능한데 그 부분에 대해서도...추후에..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저와 같이 어려워 하시는분들을 위해서 ㅠㅠ..&lt;/p&gt;</description>
      <category>OS/Microsoft</category>
      <category>AWS</category>
      <category>배포패키지</category>
      <category>윈도우환경</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/171</guid>
      <comments>https://webdevcenter.tistory.com/entry/aws-lambda-%EB%B0%B0%ED%8F%AC-%ED%8C%A8%ED%82%A4%EC%A7%80-%EC%83%9D%EC%84%B1#entry171comment</comments>
      <pubDate>Fri, 17 Sep 2021 18:36:45 +0900</pubDate>
    </item>
    <item>
      <title>윈도우 이벤트로그 일괄 삭제</title>
      <link>https://webdevcenter.tistory.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B0-%EC%9D%B4%EB%B2%A4%ED%8A%B8%EB%A1%9C%EA%B7%B8-%EC%9D%BC%EA%B4%84-%EC%82%AD%EC%A0%9C</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;FOR&amp;nbsp;&amp;nbsp;/F&amp;nbsp;&amp;nbsp;&quot;tokens=*&quot;&amp;nbsp;&amp;nbsp;%1&amp;nbsp;&amp;nbsp;IN&amp;nbsp;&amp;nbsp;('wevtutil&amp;nbsp;el')&amp;nbsp;&amp;nbsp;DO&amp;nbsp;&amp;nbsp;wevtutil&amp;nbsp;cl&amp;nbsp;&amp;nbsp;&quot;%1&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;관리자 계정으로 실행.&lt;/p&gt;</description>
      <category>OS/Microsoft</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/170</guid>
      <comments>https://webdevcenter.tistory.com/entry/%EC%9C%88%EB%8F%84%EC%9A%B0-%EC%9D%B4%EB%B2%A4%ED%8A%B8%EB%A1%9C%EA%B7%B8-%EC%9D%BC%EA%B4%84-%EC%82%AD%EC%A0%9C#entry170comment</comments>
      <pubDate>Thu, 16 Sep 2021 16:37:44 +0900</pubDate>
    </item>
    <item>
      <title>php empty() 함수 만약 변수의 값이 0 이라면?</title>
      <link>https://webdevcenter.tistory.com/entry/php-empty-%ED%95%A8%EC%88%98-%EB%A7%8C%EC%95%BD-%EB%B3%80%EC%88%98%EC%9D%98-%EA%B0%92%EC%9D%B4-0-%EC%9D%B4%EB%9D%BC%EB%A9%B4</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;php 로 개발언어를 바꾸니..생기는 여러가지 소소한 차이들&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;값이 존재하고 0이 아니어야 함.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제 값이 0일 경우에도 false 값이 Return 되기 때문에 주의가 필요함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 변수의 실제 값이 0 일 경우 return Type 이 boolean 이기 때문에 0이 리턴되면 False로 판단되어 문제가 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.php.net/manual/en/function.empty.php&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.php.net/manual/en/function.empty.php&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Progmming/PHP</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/169</guid>
      <comments>https://webdevcenter.tistory.com/entry/php-empty-%ED%95%A8%EC%88%98-%EB%A7%8C%EC%95%BD-%EB%B3%80%EC%88%98%EC%9D%98-%EA%B0%92%EC%9D%B4-0-%EC%9D%B4%EB%9D%BC%EB%A9%B4#entry169comment</comments>
      <pubDate>Wed, 15 Sep 2021 18:55:21 +0900</pubDate>
    </item>
    <item>
      <title>Throttle &amp;amp; Debounce 스로틀과 디바운스</title>
      <link>https://webdevcenter.tistory.com/entry/Throttle-Debounce-%EC%8A%A4%EB%A1%9C%ED%8B%80%EA%B3%BC-%EB%94%94%EB%B0%94%EC%9A%B4%EC%8A%A4</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이런 부분도 한번쯤 고려를 해봐야할것 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://webclub.tistory.com/607&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://webclub.tistory.com/607&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1630905899705&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;디바운스(Debounce)와 스로틀(Throttle ) 그리고 차이점&quot; data-og-description=&quot;Throttle,&amp;nbsp;Debounce &amp;amp; Difference 스로틀(Throttle) 과 디바운스(Debounce) 란 무엇일까? 이 두 가지 방법 모두 DOM 이벤트를 기반으로 실행하는 자바스크립트를 성능상의 이유로 JS의 양적인 측면, 즉 이벤트(ev.&quot; data-og-host=&quot;webclub.tistory.com&quot; data-og-source-url=&quot;https://webclub.tistory.com/607&quot; data-og-url=&quot;https://webclub.tistory.com/607&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/wetbj/hyLuU76oY9/GWF8ENp9wNFvpQHIyRSXzk/img.png?width=661&amp;amp;height=133&amp;amp;face=0_0_661_133,https://scrap.kakaocdn.net/dn/bx0NGS/hyLwghlFja/m9kN9NHbNXdVS74SuKC6xk/img.png?width=661&amp;amp;height=133&amp;amp;face=0_0_661_133,https://scrap.kakaocdn.net/dn/baC2l9/hyLu43UvD9/AKfIgacvaRcv3KHYbCLPBK/img.jpg?width=589&amp;amp;height=545&amp;amp;face=236_184_363_322&quot;&gt;&lt;a href=&quot;https://webclub.tistory.com/607&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://webclub.tistory.com/607&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/wetbj/hyLuU76oY9/GWF8ENp9wNFvpQHIyRSXzk/img.png?width=661&amp;amp;height=133&amp;amp;face=0_0_661_133,https://scrap.kakaocdn.net/dn/bx0NGS/hyLwghlFja/m9kN9NHbNXdVS74SuKC6xk/img.png?width=661&amp;amp;height=133&amp;amp;face=0_0_661_133,https://scrap.kakaocdn.net/dn/baC2l9/hyLu43UvD9/AKfIgacvaRcv3KHYbCLPBK/img.jpg?width=589&amp;amp;height=545&amp;amp;face=236_184_363_322');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;디바운스(Debounce)와 스로틀(Throttle ) 그리고 차이점&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Throttle,&amp;nbsp;Debounce &amp;amp; Difference 스로틀(Throttle) 과 디바운스(Debounce) 란 무엇일까? 이 두 가지 방법 모두 DOM 이벤트를 기반으로 실행하는 자바스크립트를 성능상의 이유로 JS의 양적인 측면, 즉 이벤트(ev.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;webclub.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://zetawiki.com/wiki/Jquery-throttle-debounce&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://zetawiki.com/wiki/Jquery-throttle-debounce&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1630905880790&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;jquery-throttle-debounce - 제타위키&quot; data-og-description=&quot;다음 문자열 포함...&quot; data-og-host=&quot;zetawiki.com&quot; data-og-source-url=&quot;https://zetawiki.com/wiki/Jquery-throttle-debounce&quot; data-og-url=&quot;https://zetawiki.com/wiki/Jquery-throttle-debounce&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://zetawiki.com/wiki/Jquery-throttle-debounce&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://zetawiki.com/wiki/Jquery-throttle-debounce&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;jquery-throttle-debounce - 제타위키&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;다음 문자열 포함...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;zetawiki.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Open API/그 외</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/168</guid>
      <comments>https://webdevcenter.tistory.com/entry/Throttle-Debounce-%EC%8A%A4%EB%A1%9C%ED%8B%80%EA%B3%BC-%EB%94%94%EB%B0%94%EC%9A%B4%EC%8A%A4#entry168comment</comments>
      <pubDate>Mon, 6 Sep 2021 14:27:45 +0900</pubDate>
    </item>
    <item>
      <title>크롬에서 코드 경량화(minify) 된 Javascript 재정렬 하는 방법</title>
      <link>https://webdevcenter.tistory.com/entry/%ED%81%AC%EB%A1%AC%EC%97%90%EC%84%9C-%EC%BD%94%EB%93%9C-%EA%B2%BD%EB%9F%89%ED%99%94minify-%EB%90%9C-Javascript-%EC%9E%AC%EC%A0%95%EB%A0%AC-%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;본 사이트에 들어간 Javascript 파일 중 하나 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드경량화가 되어 있어서 들여쓰기나 기타 공백 등이 없이 재정렬되어있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;알아보기가 힘들어서 디버깅도 힘든데 보기 좋게 정렬해주는 기능이있어서 공유합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전에는 상단에 버튼이 떴던거같은데 어느순간 사라져버려서...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1152&quot; data-origin-height=&quot;892&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQvbrr/btrdkO62vI3/FbZSSciBKgJpUHAM90KZn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQvbrr/btrdkO62vI3/FbZSSciBKgJpUHAM90KZn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQvbrr/btrdkO62vI3/FbZSSciBKgJpUHAM90KZn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQvbrr%2FbtrdkO62vI3%2FFbZSSciBKgJpUHAM90KZn0%2Fimg.png&quot; data-origin-width=&quot;1152&quot; data-origin-height=&quot;892&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하단에 보시면 {} 표시를 누르시면 보기 좋게 재정렬 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1152&quot; data-origin-height=&quot;892&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MKcsR/btrdfH2n9g5/Ikxgz5gknKaeKEwAqp8j2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MKcsR/btrdfH2n9g5/Ikxgz5gknKaeKEwAqp8j2k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MKcsR/btrdfH2n9g5/Ikxgz5gknKaeKEwAqp8j2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMKcsR%2FbtrdfH2n9g5%2FIkxgz5gknKaeKEwAqp8j2k%2Fimg.png&quot; data-origin-width=&quot;1152&quot; data-origin-height=&quot;892&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>추천 정보</category>
      <category>javascript</category>
      <category>jsbeautifier</category>
      <category>정렬</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/167</guid>
      <comments>https://webdevcenter.tistory.com/entry/%ED%81%AC%EB%A1%AC%EC%97%90%EC%84%9C-%EC%BD%94%EB%93%9C-%EA%B2%BD%EB%9F%89%ED%99%94minify-%EB%90%9C-Javascript-%EC%9E%AC%EC%A0%95%EB%A0%AC-%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95#entry167comment</comments>
      <pubDate>Thu, 26 Aug 2021 18:32:44 +0900</pubDate>
    </item>
    <item>
      <title>uncaught RangeError: Maximum call stack size exceeded</title>
      <link>https://webdevcenter.tistory.com/entry/uncaught-RangeError-Maximum-call-stack-size-exceeded</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;최대 호출 스택 크기 초과&quot; 실제로 재귀호출이나 무한 루프로 인한 오류가 원인일 수 있으나&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또 다른 원인으로 ajax 호출 시 parameter 에 object 의 value 값이 아닌 object 를 넘긴 경우에 발생할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왠 무한 루프지 하고 코드를 아무리 보아도 문제가 루프는 찾을 수 없었으나&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;parameter에 object 를 넘긴 것이 실수..아마도 object의 모든 속성(?)을 넘겨서 그런것이 아닐까 하는 추측.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;필자의 경우&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;var&amp;nbsp;a&amp;nbsp;=&amp;nbsp;$(this);&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;a 를 ajax Parameter로 넘겨서 발생함.&lt;/p&gt;</description>
      <category>에러노트</category>
      <category>ajax</category>
      <category>maximum call stack size exceeded</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/166</guid>
      <comments>https://webdevcenter.tistory.com/entry/uncaught-RangeError-Maximum-call-stack-size-exceeded#entry166comment</comments>
      <pubDate>Tue, 10 Aug 2021 11:58:34 +0900</pubDate>
    </item>
    <item>
      <title>javascript Table 로 Excel 파일 생성 다운받기</title>
      <link>https://webdevcenter.tistory.com/entry/javascript-Table-%EB%A1%9C-Excel-%ED%8C%8C%EC%9D%BC-%EC%83%9D%EC%84%B1-%EB%8B%A4%EC%9A%B4%EB%B0%9B%EA%B8%B0</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;table id 를 지정해서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 테이블을 엑셀 파일로 생성시켜주는 함수.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테이블 아이디 , 파일명 ,&amp;nbsp; 시트명을 변수처리함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1627541261417&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;    var makeToExcel = (function () { 
        var style = &quot;&amp;lt;style&amp;gt; td,th {width:100px;} &amp;lt;/style&amp;gt;&quot;;
        var uri = 'data:application/vnd.ms-excel;base64,'
            , template = '&amp;lt;html xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot; xmlns:x=&quot;urn:schemas-microsoft-com:office:excel&quot; xmlns=&quot;http://www.w3.org/TR/REC-html40&quot;&amp;gt;&amp;lt;head&amp;gt;&amp;lt;!--[if gte mso 9]&amp;gt;&amp;lt;xml&amp;gt;&amp;lt;x:ExcelWorkbook&amp;gt;&amp;lt;x:ExcelWorksheets&amp;gt;&amp;lt;x:ExcelWorksheet&amp;gt;&amp;lt;x:Name&amp;gt;{worksheet}&amp;lt;/x:Name&amp;gt;&amp;lt;x:WorksheetOptions&amp;gt;&amp;lt;x:DisplayGridlines/&amp;gt;&amp;lt;/x:WorksheetOptions&amp;gt;&amp;lt;/x:ExcelWorksheet&amp;gt;&amp;lt;/x:ExcelWorksheets&amp;gt;&amp;lt;/x:ExcelWorkbook&amp;gt;&amp;lt;/xml&amp;gt;&amp;lt;![endif]--&amp;gt;' + style + '&amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;application/vnd.ms-excel; charset=utf-8&quot;/&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;lt;table border=&quot;1&quot;&amp;gt;{table}&amp;lt;/table&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;'
            , base64 = function (s) {
                return window.btoa(unescape(encodeURIComponent(s)))
            }
            , format = function (s, c) {
                return s.replace(/{(\w+)}/g, function (m, p) { return c[p]; })
            }
        return function (table, fileName , sheetName) {
            if (!table.nodeType) table = document.getElementById(table)
            var ctx = { worksheet: sheetName || 'Worksheet', table: table.innerHTML }
			console.log(table.innerHTML); 
            let a = document.createElement('a');
        a.href = uri + base64(format(template, ctx));
        a.download = fileName+'.xls';
        a.click();
        }
    })()
	
	makeToExcel('테이블아이디', '파일명' ,'시트명');&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Progmming/Javascript</category>
      <category>Excel</category>
      <category>Table</category>
      <category>TableToExcel</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/165</guid>
      <comments>https://webdevcenter.tistory.com/entry/javascript-Table-%EB%A1%9C-Excel-%ED%8C%8C%EC%9D%BC-%EC%83%9D%EC%84%B1-%EB%8B%A4%EC%9A%B4%EB%B0%9B%EA%B8%B0#entry165comment</comments>
      <pubDate>Thu, 29 Jul 2021 15:49:23 +0900</pubDate>
    </item>
    <item>
      <title>유동적인 테이블 Td 셀 병합 rowspan 처리 Javascript 함수</title>
      <link>https://webdevcenter.tistory.com/entry/%EC%9C%A0%EB%8F%99%EC%A0%81%EC%9D%B8-%ED%85%8C%EC%9D%B4%EB%B8%94-Td-%EC%85%80-%EB%B3%91%ED%95%A9-rowspan-%EC%B2%98%EB%A6%AC-Javascript-%ED%95%A8%EC%88%98</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;지정 항목의 tr &amp;gt; td 값에 값이 동일 한 경우 rowspan 처리해주는 Javascript 함수입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주석 처리된 라인의 경우 contains 를 사용하여 포함된 조건이어서 일부 상황에서 정렬에 의해 해당&amp;nbsp; Row 사이에 다른 Row가 존재하는 경우&amp;nbsp;문제가 생길수 있는 상태인데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원작자의 글 댓글에 일치하는 조건으로 코드 개선해주신분이 계셔서 취합했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1626916732358&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$(document).ready(function(e){
    genRowspan(&quot;td 클래스명&quot;);
});
 
function genRowspan(className){
    $(&quot;.&quot; + className).each(function() {
        //var rows = $(&quot;.&quot; + className + &quot;:contains('&quot; + $(this).text() + &quot;')&quot;);
        var sText = $(this).text();
        var rows = $(&quot;.&quot; + className).filter(function() {
        	return $(this).text() == sText;
        });
        if (rows.length &amp;gt; 1) {
            rows.eq(0).attr(&quot;rowspan&quot;, rows.length);
            rows.not(&quot;:eq(0)&quot;).remove();
        }
    });
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://zero-gravity.tistory.com/311&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://zero-gravity.tistory.com/311&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1626916749943&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[jQuery] 유동적인 테이블 셀병합 - rowspan&quot; data-og-description=&quot;&amp;nbsp;위와 같이 소속에 같은 데이터가 있을 경우 하나의 셀로 병합해주는 코드다. $(document).ready(function(e){ genRowspan(&amp;quot;td 클래스명&amp;quot;); }); function genRowspan(className){ $(&amp;quot;.&amp;quot; + className).each(funct..&quot; data-og-host=&quot;zero-gravity.tistory.com&quot; data-og-source-url=&quot;https://zero-gravity.tistory.com/311&quot; data-og-url=&quot;https://zero-gravity.tistory.com/311&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/08rNi/hyKXTair6E/BDjrkF2vZBF8lj5hIQzvok/img.png?width=150&amp;amp;height=162&amp;amp;face=0_0_150_162,https://scrap.kakaocdn.net/dn/BYx8H/hyKXSoXTSZ/whk4MkxLzoRM9kTkslk0N0/img.png?width=150&amp;amp;height=162&amp;amp;face=0_0_150_162&quot;&gt;&lt;a href=&quot;https://zero-gravity.tistory.com/311&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://zero-gravity.tistory.com/311&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/08rNi/hyKXTair6E/BDjrkF2vZBF8lj5hIQzvok/img.png?width=150&amp;amp;height=162&amp;amp;face=0_0_150_162,https://scrap.kakaocdn.net/dn/BYx8H/hyKXSoXTSZ/whk4MkxLzoRM9kTkslk0N0/img.png?width=150&amp;amp;height=162&amp;amp;face=0_0_150_162');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[jQuery] 유동적인 테이블 셀병합 - rowspan&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;위와 같이 소속에 같은 데이터가 있을 경우 하나의 셀로 병합해주는 코드다. $(document).ready(function(e){ genRowspan(&quot;td 클래스명&quot;); }); function genRowspan(className){ $(&quot;.&quot; + className).each(funct..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;zero-gravity.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://api.jquery.com/contains-selector/&quot;&gt;https://api.jquery.com/contains-selector/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1626916752692&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;:contains() Selector | jQuery API Documentation&quot; data-og-description=&quot;Description: Select all elements that contain the specified text. The matching text can appear directly within the selected element, in any of that element's descendants, or a combination thereof. As with attribute value selectors, text inside the parenthe&quot; data-og-host=&quot;api.jquery.com&quot; data-og-source-url=&quot;https://api.jquery.com/contains-selector/&quot; data-og-url=&quot;https://api.jquery.com/contains-selector/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://api.jquery.com/contains-selector/&quot; data-source-url=&quot;https://api.jquery.com/contains-selector/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('&amp;quot;&amp;quot;');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;:contains() Selector | jQuery API Documentation&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Description: Select all elements that contain the specified text. The matching text can appear directly within the selected element, in any of that element's descendants, or a combination thereof. As with attribute value selectors, text inside the parenthe&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;api.jquery.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Open API/그 외</category>
      <category>javascript</category>
      <category>jQuery</category>
      <category>rowspan</category>
      <category>셀병합</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/164</guid>
      <comments>https://webdevcenter.tistory.com/entry/%EC%9C%A0%EB%8F%99%EC%A0%81%EC%9D%B8-%ED%85%8C%EC%9D%B4%EB%B8%94-Td-%EC%85%80-%EB%B3%91%ED%95%A9-rowspan-%EC%B2%98%EB%A6%AC-Javascript-%ED%95%A8%EC%88%98#entry164comment</comments>
      <pubDate>Thu, 22 Jul 2021 10:22:10 +0900</pubDate>
    </item>
    <item>
      <title>Visual Studio Code FTP 설치하기</title>
      <link>https://webdevcenter.tistory.com/entry/Visual-Studio-Code-FTP-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;622&quot; data-origin-height=&quot;323&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czQpr1/btq9jvEoOmi/wPCC4t7a1zFMgeQmtAKpR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czQpr1/btq9jvEoOmi/wPCC4t7a1zFMgeQmtAKpR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czQpr1/btq9jvEoOmi/wPCC4t7a1zFMgeQmtAKpR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczQpr1%2Fbtq9jvEoOmi%2FwPCC4t7a1zFMgeQmtAKpR1%2Fimg.png&quot; data-origin-width=&quot;622&quot; data-origin-height=&quot;323&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatLeft&quot; data-origin-width=&quot;43&quot; data-origin-height=&quot;48&quot; width=&quot;33&quot; height=&quot;37&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bu6uc1/btq9jwwxb1h/FEjMseMojP6QhRhVDniVfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bu6uc1/btq9jwwxb1h/FEjMseMojP6QhRhVDniVfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bu6uc1/btq9jwwxb1h/FEjMseMojP6QhRhVDniVfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbu6uc1%2Fbtq9jwwxb1h%2FFEjMseMojP6QhRhVDniVfK%2Fimg.png&quot; data-origin-width=&quot;43&quot; data-origin-height=&quot;48&quot; width=&quot;33&quot; height=&quot;37&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확장 탭에서 &quot;ftp-simple&quot;를 검색하고 설치합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 후 F1 을 눌러서 검색창을 열고 ftp 를 검색하면 아래와 같이 검색 됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;351&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQpshY/btq9kQPLTc6/oK6PboNHy6vQtQ99OOCOkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQpshY/btq9kQPLTc6/oK6PboNHy6vQtQ99OOCOkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQpshY/btq9kQPLTc6/oK6PboNHy6vQtQ99OOCOkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQpshY%2Fbtq9kQPLTc6%2FoK6PboNHy6vQtQ99OOCOkK%2Fimg.png&quot; data-origin-width=&quot;743&quot; data-origin-height=&quot;351&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 보이시면 ftp-simple : config - FTP connection setting 을 선택합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;914&quot; data-origin-height=&quot;354&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brxdZ5/btq9lTMg77f/MkC1xBROxX5tbbZtSdItVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brxdZ5/btq9lTMg77f/MkC1xBROxX5tbbZtSdItVk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brxdZ5/btq9lTMg77f/MkC1xBROxX5tbbZtSdItVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrxdZ5%2Fbtq9lTMg77f%2FMkC1xBROxX5tbbZtSdItVk%2Fimg.png&quot; data-origin-width=&quot;914&quot; data-origin-height=&quot;354&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아마도 보시면 아시겠지만 각 항목은 위와 같이 입력합니다.&lt;/p&gt;</description>
      <category>Progmming/PHP</category>
      <category>ftp</category>
      <category>visualstudiocode</category>
      <category>vsCode</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/163</guid>
      <comments>https://webdevcenter.tistory.com/entry/Visual-Studio-Code-FTP-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0#entry163comment</comments>
      <pubDate>Mon, 12 Jul 2021 13:36:36 +0900</pubDate>
    </item>
    <item>
      <title>Visual Studio Code 한국어 팩 설치 방법</title>
      <link>https://webdevcenter.tistory.com/entry/Visual-Studio-Code-%ED%95%9C%EA%B5%AD%EC%96%B4-%ED%8C%A9-%EC%84%A4%EC%B9%98-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;623&quot; data-origin-height=&quot;522&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpBCoF/btq9jFub2Zx/oZrRdMI9uiRbWkbVMKlhY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpBCoF/btq9jFub2Zx/oZrRdMI9uiRbWkbVMKlhY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpBCoF/btq9jFub2Zx/oZrRdMI9uiRbWkbVMKlhY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpBCoF%2Fbtq9jFub2Zx%2FoZrRdMI9uiRbWkbVMKlhY1%2Fimg.png&quot; data-origin-width=&quot;623&quot; data-origin-height=&quot;522&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock floatLeft&quot; data-origin-width=&quot;43&quot; data-origin-height=&quot;48&quot; width=&quot;29&quot; height=&quot;32&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1Fkju/btq9sCJdKJ6/1SgZAQoi5BR9AouhkmZYzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1Fkju/btq9sCJdKJ6/1SgZAQoi5BR9AouhkmZYzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1Fkju/btq9sCJdKJ6/1SgZAQoi5BR9AouhkmZYzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1Fkju%2Fbtq9sCJdKJ6%2F1SgZAQoi5BR9AouhkmZYzK%2Fimg.png&quot; data-origin-width=&quot;43&quot; data-origin-height=&quot;48&quot; width=&quot;29&quot; height=&quot;32&quot; data-ke-mobilestyle=&quot;widthOrigin&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확장 탭 에서 &quot;Korean&quot;을 검색하면 &quot;Korean Language Pack for Visual Studio Code&quot; 가 검색됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이미 설치했기 때문에&amp;nbsp; &amp;nbsp;&lt;span style=&quot;background-color: #006dd7; color: #ffffff;&quot;&gt;&lt;span style=&quot;background-color: #006dd7; color: #ffffff;&quot;&gt;&amp;nbsp;&lt;span style=&quot;background-color: #006dd7; color: #ffffff;&quot;&gt;설&lt;/span&gt;&lt;/span&gt;치&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 라고 나옵니다만&amp;nbsp;&lt;span style=&quot;background-color: #006dd7; color: #ffffff;&quot;&gt; Install&amp;nbsp;&lt;/span&gt; 이라고 보이실텐데 설치하시면 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;설치 후 VS Code를 재시작해주시면 한글팩이 설치되어 한글로 보이게 됩니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Progmming/PHP</category>
      <category>Visual Studio Code</category>
      <category>vsCode</category>
      <category>한글팩</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/162</guid>
      <comments>https://webdevcenter.tistory.com/entry/Visual-Studio-Code-%ED%95%9C%EA%B5%AD%EC%96%B4-%ED%8C%A9-%EC%84%A4%EC%B9%98-%EB%B0%A9%EB%B2%95#entry162comment</comments>
      <pubDate>Mon, 12 Jul 2021 13:29:25 +0900</pubDate>
    </item>
    <item>
      <title>WerFault.exe 웹서버 부하 해결 - 임시조치와 근본적인 해결 방법</title>
      <link>https://webdevcenter.tistory.com/entry/WerFaultexe-%EC%9B%B9%EC%84%9C%EB%B2%84-%EB%B6%80%ED%95%98-%ED%95%B4%EA%B2%B0-%EC%9E%84%EC%8B%9C%EC%A1%B0%EC%B9%98%EC%99%80-%EA%B7%BC%EB%B3%B8%EC%A0%81%EC%9D%B8-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;WerFault.exe 프로세스로 인해 웹서버 부하가 높아졌다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;호스팅 서버였기 때문에 임시 조치로 에러 리포팅 서비스를 중지시켜버렸다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;이렇게 에러 리포팅으로 인한 서버 부하는 해결이 되었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Windows Error Reporting Service&amp;nbsp; &amp;nbsp;WERSVC&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1619508795365&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Faulting application name: w3wp.exe 
Faulting module name: ntdll.dll&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HOyPC/btq3ArneGR4/fgvsS1I9UyZf9K2uZzljAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HOyPC/btq3ArneGR4/fgvsS1I9UyZf9K2uZzljAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HOyPC/btq3ArneGR4/fgvsS1I9UyZf9K2uZzljAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHOyPC%2Fbtq3ArneGR4%2FfgvsS1I9UyZf9K2uZzljAK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;하지만 근본적인 오류가 해결된 것은 아니기에..&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;근본적인 해결 방법은 오류 메시지가 발생하는 부분을 찾아 수정해야하는데&lt;/p&gt;
&lt;p&gt;이 에러 로그는 이벤트 뷰어에서 확인이 가능하다.&amp;nbsp;&lt;/p&gt;</description>
      <category>OS/Microsoft</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/161</guid>
      <comments>https://webdevcenter.tistory.com/entry/WerFaultexe-%EC%9B%B9%EC%84%9C%EB%B2%84-%EB%B6%80%ED%95%98-%ED%95%B4%EA%B2%B0-%EC%9E%84%EC%8B%9C%EC%A1%B0%EC%B9%98%EC%99%80-%EA%B7%BC%EB%B3%B8%EC%A0%81%EC%9D%B8-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95#entry161comment</comments>
      <pubDate>Tue, 27 Apr 2021 16:34:23 +0900</pubDate>
    </item>
    <item>
      <title>CSS 긴 텍스트 말줄임 처리하기</title>
      <link>https://webdevcenter.tistory.com/entry/%EA%B8%B4-%ED%85%8D%EC%8A%A4%ED%8A%B8-%EB%A7%90%EC%A4%84%EC%9E%84-%EC%B2%98%EB%A6%AC%ED%95%98%EA%B8%B0</link>
      <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;초과 되어 줄이 바뀌거나 UI가 깨지는 경우 &lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;... 말줄임 표로 처리하여 한줄에 노출 되도록 함.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1619500303915&quot; class=&quot;css&quot; data-ke-language=&quot;css&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;style type=&quot;text/css&quot;&amp;gt;
.target
{
  display: inline-block;
  max-width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
&amp;lt;/style&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lm18P/btq3xne9do5/EHyhS0awhM6Ns3cJT2X2x1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lm18P/btq3xne9do5/EHyhS0awhM6Ns3cJT2X2x1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lm18P/btq3xne9do5/EHyhS0awhM6Ns3cJT2X2x1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Flm18P%2Fbtq3xne9do5%2FEHyhS0awhM6Ns3cJT2X2x1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>CSS</category>
      <category>CSS</category>
      <category>말줄임</category>
      <category>줄바꿈</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/160</guid>
      <comments>https://webdevcenter.tistory.com/entry/%EA%B8%B4-%ED%85%8D%EC%8A%A4%ED%8A%B8-%EB%A7%90%EC%A4%84%EC%9E%84-%EC%B2%98%EB%A6%AC%ED%95%98%EA%B8%B0#entry160comment</comments>
      <pubDate>Tue, 27 Apr 2021 14:14:17 +0900</pubDate>
    </item>
    <item>
      <title>MS SQL 비트연산(&amp;amp;)</title>
      <link>https://webdevcenter.tistory.com/entry/MS-SQL-%EB%B9%84%ED%8A%B8%EC%97%B0%EC%82%B0</link>
      <description>&lt;p&gt;사용 배경은 계속적으로 추가되는 Flag 컬럼에 대해 고민 중 하나의 공용 컬럼에 값을 다 넣어버리기로 함.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;DECLARE @i INT &lt;br /&gt;SET&amp;nbsp;@i&amp;nbsp;=&amp;nbsp;6 &lt;br /&gt;SELECT @i &amp;amp; 1&amp;nbsp; , 결과 =&amp;gt; 0&lt;br /&gt;SELECT @i &amp;amp; 2&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; , 결과&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;=&amp;gt; 2&lt;/span&gt;&amp;nbsp; &lt;br /&gt;SELECT @i &amp;amp; 4&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; , 결과&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;=&amp;gt; 4&lt;/span&gt;&lt;br /&gt;SELECT @i &amp;amp; 6&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; , 결과&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;=&amp;gt; 6&lt;/span&gt;&lt;br /&gt;SELECT @i &amp;amp; 8&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; , 결과&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;=&amp;gt; 0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;INT 타입의 컬럼에 정수형 데이터를 넣고 2진법으로 보아 계산을 하는 방법.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2번째 조회인 @i &amp;amp; 2 의 내용을 보면.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;6 &amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;0110&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2 &amp;gt; 0010&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;======&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; 0010&amp;nbsp; &amp;gt; 2&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;결과 값이 2가 나온다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;일반적으로 사용할 경우에는&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;SELECT * &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;FROM 테이블 &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;WHERE 컬럼 &amp;amp; 2 &amp;gt; 0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;위와 같이 0보다 크거나(True) 작은 경우(False)로 구분하여 사용된다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;ex)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;취미 체크하기&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;ㅁ 축구(1) &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;ㅁ농구(2) &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;ㅁ독서(4)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;위와 같이 체크박스가 있는 경우 취미가 축구와 독서일 경우&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;저장값은 두 값의 합을 넣는다.&amp;nbsp; &amp;nbsp;&amp;gt;&amp;gt; 5&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt; &lt;br /&gt;DECLARE&amp;nbsp;@i&amp;nbsp;INT &lt;br /&gt;SET&amp;nbsp;@i&amp;nbsp;=&amp;nbsp;5 &lt;br /&gt;SELECT @i &amp;amp; 1&amp;nbsp; , 결과 =&amp;gt; 1&lt;br /&gt;SELECT @i &amp;amp; 2&amp;nbsp; , 결과 =&amp;gt; 0&lt;br /&gt;SELECT @i &amp;amp; 4&amp;nbsp; , 결과 =&amp;gt; 4&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;축구가 포함된 경우를 찾으려면&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;SELECT *&lt;br /&gt;FROM TABLE&lt;/p&gt;
&lt;p&gt;WHERE 취미 &amp;amp; 1 &amp;gt; 0&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;위와 같이 찾는다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>DataBase/MS-SQL</category>
      <category>bit</category>
      <category>MSSQL</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/159</guid>
      <comments>https://webdevcenter.tistory.com/entry/MS-SQL-%EB%B9%84%ED%8A%B8%EC%97%B0%EC%82%B0#entry159comment</comments>
      <pubDate>Tue, 22 Dec 2020 10:42:04 +0900</pubDate>
    </item>
    <item>
      <title>SSMS 완료시간 : 안 보여지도록 옵션 수정</title>
      <link>https://webdevcenter.tistory.com/entry/SSMS-%EC%99%84%EB%A3%8C%EC%8B%9C%EA%B0%84-%EC%95%88-%EB%B3%B4%EC%97%AC%EC%A7%80%EB%8F%84%EB%A1%9D-%EC%98%B5%EC%85%98-%EC%88%98%EC%A0%95</link>
      <description>&lt;p style=&quot;text-align: center;&quot;&gt;SSMS(SQL Server Management Studio)&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;도구 - 옵션에 아래 옵션을 체크 해제 하면 됩니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;u&gt;쿼리실행 - SQL Server - 고급 - 완료 시간 표시 체크 해제&lt;/u&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drTu5P/btqQpt5bDLF/341WbcEaZzzOPsrlQcaAqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drTu5P/btqQpt5bDLF/341WbcEaZzzOPsrlQcaAqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drTu5P/btqQpt5bDLF/341WbcEaZzzOPsrlQcaAqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdrTu5P%2FbtqQpt5bDLF%2F341WbcEaZzzOPsrlQcaAqk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>DataBase/MS-SQL</category>
      <category>SSMS</category>
      <category>완료시간</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/158</guid>
      <comments>https://webdevcenter.tistory.com/entry/SSMS-%EC%99%84%EB%A3%8C%EC%8B%9C%EA%B0%84-%EC%95%88-%EB%B3%B4%EC%97%AC%EC%A7%80%EB%8F%84%EB%A1%9D-%EC%98%B5%EC%85%98-%EC%88%98%EC%A0%95#entry158comment</comments>
      <pubDate>Wed, 16 Dec 2020 09:32:54 +0900</pubDate>
    </item>
    <item>
      <title>System.Security.SecurityException: 요청한 레지스트리에 액세스할 수 없습니다.</title>
      <link>https://webdevcenter.tistory.com/entry/SystemSecuritySecurityException-%EC%9A%94%EC%B2%AD%ED%95%9C-%EB%A0%88%EC%A7%80%EC%8A%A4%ED%8A%B8%EB%A6%AC%EC%97%90-%EC%95%A1%EC%84%B8%EC%8A%A4%ED%95%A0-%EC%88%98-%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4</link>
      <description>&lt;p&gt;오류 메시지&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;System.Security.SecurityException: 요청한 레지스트리에 액세스할 수 없습니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;해결 방법&lt;/p&gt;
&lt;p&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;EnableLUA 값 데이터를 0으로 설정.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEYJd3/btqP4kJnmlp/UgKRtyKw4IqnfnfOIgHRa1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEYJd3/btqP4kJnmlp/UgKRtyKw4IqnfnfOIgHRa1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEYJd3/btqP4kJnmlp/UgKRtyKw4IqnfnfOIgHRa1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEYJd3%2FbtqP4kJnmlp%2FUgKRtyKw4IqnfnfOIgHRa1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Progmming/.Net</category>
      <category>EnableLUA</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/157</guid>
      <comments>https://webdevcenter.tistory.com/entry/SystemSecuritySecurityException-%EC%9A%94%EC%B2%AD%ED%95%9C-%EB%A0%88%EC%A7%80%EC%8A%A4%ED%8A%B8%EB%A6%AC%EC%97%90-%EC%95%A1%EC%84%B8%EC%8A%A4%ED%95%A0-%EC%88%98-%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4#entry157comment</comments>
      <pubDate>Tue, 15 Dec 2020 10:34:40 +0900</pubDate>
    </item>
    <item>
      <title>Facebook 연동 오류 , Invalid Scope: Array (Please check lower letter case or delimiter)</title>
      <link>https://webdevcenter.tistory.com/entry/Facebook-%EC%97%B0%EB%8F%99-%EC%98%A4%EB%A5%98-Invalid-Scope-Array-Please-check-lower-letter-case-or-delimiter</link>
      <description>&lt;p&gt;오류 메시지 : Invalid&amp;nbsp;Scope:&amp;nbsp;Array&amp;nbsp;(Please&amp;nbsp;check&amp;nbsp;lower&amp;nbsp;letter&amp;nbsp;case&amp;nbsp;or&amp;nbsp;delimiter)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;해결 방법 :&amp;nbsp; &lt;span style=&quot;color: #333333;&quot;&gt;Scope에 대한 정의가 바뀐 것 같음.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&quot;scope&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;gt; ['public_profile', 'email']&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;배열로 되어있던 기존 상태에서&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;콤마 혹은 공백으로 구분하여 아래와 같이 수정.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&quot;scope&quot;&amp;nbsp;&amp;nbsp;&amp;nbsp;=&amp;gt; 'public_profile,email'&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;참고 자료&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/63620672/hybridauth-facebook-invalid-scope-array-please-check-lower-letter-case-or-deli&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;stackoverflow.com/questions/63620672/hybridauth-facebook-invalid-scope-array-please-check-lower-letter-case-or-deli&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1605535293429&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;HybridAuth Facebook Invalid Scope: Array (Please check lower letter case or delimiter)&quot; data-og-description=&quot;Facebook started returning this error a few days ago: &amp;quot;Invalid Scope: Array (Please check lower letter case or delimiter)&amp;quot; I haven't made a changes to the login functionality, or facebook...&quot; data-og-host=&quot;stackoverflow.com&quot; data-og-source-url=&quot;https://stackoverflow.com/questions/63620672/hybridauth-facebook-invalid-scope-array-please-check-lower-letter-case-or-deli&quot; data-og-url=&quot;https://stackoverflow.com/questions/63620672/hybridauth-facebook-invalid-scope-array-please-check-lower-letter-case-or-deli&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bLZ4O1/hyIgUV5aOv/6CuxhstH3w1lER8pjEEwQK/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/63620672/hybridauth-facebook-invalid-scope-array-please-check-lower-letter-case-or-deli&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://stackoverflow.com/questions/63620672/hybridauth-facebook-invalid-scope-array-please-check-lower-letter-case-or-deli&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bLZ4O1/hyIgUV5aOv/6CuxhstH3w1lER8pjEEwQK/img.png?width=316&amp;amp;height=316&amp;amp;face=0_0_316_316');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;HybridAuth Facebook Invalid Scope: Array (Please check lower letter case or delimiter)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Facebook started returning this error a few days ago: &quot;Invalid Scope: Array (Please check lower letter case or delimiter)&quot; I haven't made a changes to the login functionality, or facebook...&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;stackoverflow.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://sir.kr/g5_tip/14440&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;sir.kr/g5_tip/14440&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1605535307450&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;페이스북 소셜로그인 에러가 발생될 때 &amp;gt; SIR&quot; data-og-description=&quot;페이스북 소셜로그인에서 아래와 같은 에러가 발생될 때 극복 방법입니다. &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;Invalid Scope: Array (Please check lower letter case or delimiter) &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;&amp;nbsp; &amp;lt;br/&amp;gt; &amp;lt;br/&amp;gt;plugin/social/includes/functions.php 파일 325줄 &quot; data-og-host=&quot;sir.kr&quot; data-og-source-url=&quot;https://sir.kr/g5_tip/14440&quot; data-og-url=&quot;https://sir.kr/g5_tip/14440&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://sir.kr/g5_tip/14440&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://sir.kr/g5_tip/14440&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;페이스북 소셜로그인 에러가 발생될 때 &amp;gt; SIR&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;페이스북 소셜로그인에서 아래와 같은 에러가 발생될 때 극복 방법입니다. &lt;br /&gt;&lt;br /&gt;Invalid Scope: Array (Please check lower letter case or delimiter) &lt;br /&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;plugin/social/includes/functions.php 파일 325줄&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;sir.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>에러노트</category>
      <category>API</category>
      <category>DELIMITER</category>
      <category>error</category>
      <category>facebook</category>
      <category>Invalid Scope</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/156</guid>
      <comments>https://webdevcenter.tistory.com/entry/Facebook-%EC%97%B0%EB%8F%99-%EC%98%A4%EB%A5%98-Invalid-Scope-Array-Please-check-lower-letter-case-or-delimiter#entry156comment</comments>
      <pubDate>Mon, 16 Nov 2020 23:02:51 +0900</pubDate>
    </item>
    <item>
      <title>디비 백업 프로시저 및 리포트 메일 발송 기능</title>
      <link>https://webdevcenter.tistory.com/entry/%EB%94%94%EB%B9%84-%EB%B0%B1%EC%97%85-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80-%EB%B0%8F-%EB%A6%AC%ED%8F%AC%ED%8A%B8-%EB%A9%94%EC%9D%BC-%EB%B0%9C%EC%86%A1-%EA%B8%B0%EB%8A%A5-%EC%8B%A4%EC%82%AC%EC%9A%A9-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;전문가 분들은 광고 클릭후 닫아주시면 감사하겠습니다. :)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저와 같이 운영관리에 익숙치 않은 분들을 위한 실 사용 사례입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. master DB에 백업 기록을 위한 테이블을 생성했습니다.&lt;/p&gt;
&lt;pre id=&quot;code_1601902949842&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;USE [master]
GO
-- 시작안되는 경우도 발생하기 때문에 startDt 기본값을 넣지 않음.  
CREATE TABLE [dbo].[tblBackupDB](
	[dbName] [varchar](50) NULL,
	[startDt] [datetime] NULL,
	[endDt] [datetime] NULL,
	[msg] [ntext] NULL,
	[mdfSize] [int] NULL,
	[ldfSize] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 백업을 위한 프로시저 생성, DATEPART를 이용해 특정 요일마다 풀백업과 차등백업을 반복하도록 설정.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;샘플을 위해 특정 요일에 풀백업 그 외 차등백업으로 규정하였으나&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적절한 풀백업과 차등백업을 번갈아가며 환경에 맞는 주기를 설정합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1601903252283&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;USE [master]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_DataBaseBackup]
AS
BEGIN
	
	DECLARE @dbName varchar(4000), @SQL varchar(4000) 
	DECLARE @yoil int , @mdfSize int , @ldfSize int 
	
	SELECT @yoil = DATEPART(WEEKDAY,GETDATE())
	 
	-- 백업대상 기록 , 시스템 디비는 제외
	INSERT INTO master.dbo.tblBackupDB(dbName) 
		SELECT name 
			FROM sys.databases 
			WHERE UPPER(name) NOT IN ('MASTER','MODEL','MSDB','TEMPDB')

	-- 서버 아이피 체크
	declare @ip_v4 varchar(16) 
	SELECT DISTINCT @ip_v4 = local_net_address
	FROM sys.dm_exec_connections
	WHERE local_net_address IS NOT NULL and local_net_address &amp;lt;&amp;gt; '127.0.0.1' 

	DECLARE bk_cursor CURSOR FOR 
		SELECT name 
			FROM sys.databases 
			WHERE UPPER(name) NOT IN ('MASTER','MODEL','MSDB','TEMPDB')
	OPEN bk_cursor

	FETCH NEXT FROM bk_cursor 
	INTO @dbName 

	WHILE @@FETCH_STATUS = 0
	BEGIN
		BEGIN TRY
			-- mdf 파일 사이즈
			SELECT @mdfSize = SUM(size)*8/1024	--MB
			FROM sys.databases   
			JOIN sys.master_files  
			ON sys.databases.database_id=sys.master_files.database_id  
			WHERE sys.databases.name = @dbName and type='0'
			 
			-- ldf 파일 사이즈
			SELECT @ldfSize = SUM(size)*8/1024	--MB
			FROM sys.databases   
			JOIN sys.master_files  
			ON sys.databases.database_id=sys.master_files.database_id  
			WHERE sys.databases.name = @dbName and type='1'

			-- 백업시작 기록/용량 기록 
			UPDATE master.dbo.tblBackupDB 
				SET startDt = GETDATE() , mdfSize = @mdfSize, ldfSize = @ldfSize
				WHERE dbname = @dbName 
					AND startDt is null

			IF @yoil = 7 -- 토요일은 풀백업 
				BEGIN
					--풀백업	
					SET @SQL = 'BACKUP DATABASE ['+@dbName+'] TO DISK = N''D:\Backup\'+convert(varchar(30), getdate(),112)+'_'+@dbName+'.bak'' WITH COMPRESSION, INIT, NAME = '''+@dbName+' - Backup'', SKIP, NOREWIND, NOUNLOAD, STATS = 10;'
				END 
			ELSE	 -- 주간은 차등백업
				BEGIN
					--차등백업			
					SET @SQL = 'BACKUP DATABASE ['+@dbName+'] TO  DISK = N''D:\Backup\'+convert(varchar(30), getdate(),112)+'_'+@dbName+'.bak'' WITH  DIFFERENTIAL , NOFORMAT, NOINIT,  NAME = N'''+@dbName+' - Backup'', SKIP, NOREWIND, NOUNLOAD,  STATS = 10;'
				END 
			--print @SQL
			EXEC (@SQL)
		
			-- 백업종료 기록 
			UPDATE master.dbo.tblBackupDB 
				SET endDt = GETDATE()
				WHERE dbname = @dbName 
					AND CONVERT(CHAR(10),startDt,23) = CONVERT(CHAR(10),GETDATE(),23)  
					AND endDt IS NULL  

		END TRY
		BEGIN CATCH
				-- 에러 기록 
				UPDATE master.dbo.tblBackupDB 
					SET msg = 'ERROR_NUMBER : ' + CAST(ERROR_NUMBER() AS VARCHAR) + '
						 ERROR_MESSAGE: ' + ERROR_MESSAGE()
					WHERE dbname = @dbName 
						AND CONVERT(CHAR(10),startDt,23) = CONVERT(CHAR(10),GETDATE(),23)  
						AND endDt IS NULL  
		END CATCH

		FETCH NEXT FROM bk_cursor 
		INTO @dbName 
	END 
	CLOSE bk_cursor;
	DEALLOCATE bk_cursor;

	-- FREEPROCCACHE 는 메모리 상에 전체 캐시를 비우기 
	-- https://bit.ly/3icmJ85
	DBCC FREEPROCCACHE; 
END&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;
&lt;script src=&quot;https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js&quot;&gt;&lt;/script&gt;
&lt;/p&gt;
&lt;!-- dev.uhoon.co.kr_중간 반응형 --&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 백업 후 남겨진 기록과 msdb.dbo.backupset 테이블 데이터를 참조하여 리포팅 메일 발송.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메일 발송을 위해 데이터베이스 메일 구성이 되어있어야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;html 코딩은 개인 취향대로.. msdb.dbo.backupset 에는 생각보다 많은 정보가 들어있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://bit.ly/2Gxce24&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;bit.ly/2Gxce24&lt;/a&gt; 참고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1601903778204&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;USE [master]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 
ALTER PROCEDURE [dbo].[spSendBackupReport]
AS
BEGIN 
	SET NOCOUNT ON; 

	DECLARE @dbName varchar(100),@sDt datetime , @eDt datetime , @result nvarchar(50)
	DECLARE @html varchar(max) , @ip_v4 varchar(16) , @subject varchar(200)
	DECLARE @idx int , @mdfSize int , @ldfSize int  , @backupSize int ,@totalBackupSize bigint , @BackupType nvarchar(20)

	SET @idx = 1

	SELECT DISTINCT @ip_v4 = local_net_address
	FROM sys.dm_exec_connections
	WHERE local_net_address IS NOT NULL and local_net_address &amp;lt;&amp;gt; '127.0.0.1' 

	SET @subject =  'DB Server Backup Report - '+ @ip_v4
	SET @totalBackupSize = 0

	SET @html = ' 
		&amp;lt;div&amp;gt;&amp;lt;h2&amp;gt;시스템에서 자동 발송되는 DB 백업 결과 메일입니다.&amp;lt;/h2&amp;gt;&amp;lt;/div&amp;gt;
		&amp;lt;div&amp;gt;&amp;lt;h3&amp;gt; IP : '+@ip_v4+'&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;
		&amp;lt;div&amp;gt;&amp;lt;h3&amp;gt; DATE : '+ CONVERT(VARCHAR(10) , GETDATE(),121) +'&amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;
		&amp;lt;div&amp;gt;&amp;lt;h3&amp;gt; Total Backup Size : #TOTALBACKUPSIZE#   ( ※ 단순참고용, 연산에 의한 오차발생 ) &amp;lt;/h3&amp;gt;&amp;lt;/div&amp;gt;
		&amp;lt;table style=&quot;border-collapse: collapse;font-size: small;&quot;&amp;gt;
			&amp;lt;tr&amp;gt;
				&amp;lt;td colspan=&quot;6&quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/td&amp;gt;
			&amp;lt;/tr&amp;gt;
			&amp;lt;tr &quot;class=&quot;tr&quot;&amp;gt;
				&amp;lt;td style=&quot;width:20px;border: 1px solid black;text-align:center;padding: 5px;&quot;&amp;gt;#&amp;lt;/td&amp;gt;
				&amp;lt;td style=&quot;width:150px;border: 1px solid black;text-align:center;padding: 5px;&quot;&amp;gt;DB&amp;lt;/td&amp;gt;
				&amp;lt;td style=&quot;width:150px;border: 1px solid black;text-align:center;padding: 5px;&quot;&amp;gt;DB Size&amp;lt;/td&amp;gt;
				&amp;lt;td style=&quot;width:180px;border: 1px solid black;text-align:center;padding: 5px;&quot;&amp;gt;Backup Size&amp;lt;br/&amp;gt;/ Type&amp;lt;/td&amp;gt;
				&amp;lt;td style=&quot;width:100px;border: 1px solid black;text-align:center;padding: 5px;&quot;&amp;gt;Start&amp;lt;br/&amp;gt;/ End&amp;lt;/td&amp;gt;
				&amp;lt;td style=&quot;width:100px;border: 1px solid black;text-align:center;padding: 5px;&quot;&amp;gt;Processing Time (Min.)&amp;lt;/td&amp;gt;
				&amp;lt;td style=&quot;width:70px;border: 1px solid black;text-align:center;padding: 5px;&quot;&amp;gt;Result&amp;lt;/td&amp;gt;
			&amp;lt;/tr&amp;gt;
	'

	-- https://bit.ly/2Gxce24 // msdb.dbo.backupset 백업셋 데이터 테이블 참조 

	DECLARE vendor_cursor
	CURSOR FOR
		SELECT D.name ,B.startDt , B.endDt 
		, case when B.endDt is null then '&amp;lt;span style=&quot;color:red;font-weight:bold;&quot;&amp;gt;실패&amp;lt;/span&amp;gt;' else '성공' end as result
		, B.mdfSize ,  B.ldfSize
		, BS.compressed_backup_size 
		, case Type when  'I' then N'차등백업' when 'D' then N'풀백업' end as BackupType
		FROM sys.databases D 
			LEFT OUTER JOIN tblbackupDB B 
				ON D.name = DBNAME  AND CONVERT(CHAR(10),endDt,23) = CONVERT(CHAR(10),GETDATE(),23)
			LEFT OUTER JOIN msdb..backupset BS 
				ON D.name = BS.database_name AND  CONVERT(CHAR(10),BS.backup_start_date,23) = CONVERT(CHAR(10),GETDATE(),23)
		WHERE UPPER(D.name) NOT IN ('MASTER','MODEL','MSDB','TEMPDB')
	OPEN vendor_cursor
	FETCH NEXT FROM vendor_cursor
	INTO @dbName ,@sDt , @eDt, @result , @mdfSize , @ldfSize , @backupSize , @BackupType

	WHILE @@FETCH_STATUS = 0
		BEGIN
		SET @html +='
		&amp;lt;tr&amp;gt;
			&amp;lt;td style=&quot;border: 1px solid black;text-align:center;padding: 5px;&quot;&amp;gt;'+ cast(@idx as varchar) +'&amp;lt;/td&amp;gt;
			&amp;lt;td style=&quot;border: 1px solid black;text-align:center;padding: 5px;&quot;&amp;gt;'+@dbName+'&amp;lt;/td&amp;gt;
			&amp;lt;td style=&quot;border: 1px solid black;text-align:center;padding: 5px;&quot;&amp;gt;DATA : '+ CAST(FORMAT(isnull(@mdfSize,0)/1024, N'#,0') AS VARCHAR)+' GB &amp;lt;br/&amp;gt;Log : '+ CAST(FORMAT(isnull(@ldfSize,0), N'#,0') AS VARCHAR)+' MB&amp;lt;/td&amp;gt;
			&amp;lt;td style=&quot;border: 1px solid black;text-align:center;padding: 5px;&quot;&amp;gt;'+ CAST(FORMAT(isnull(@backupSize,0)/1024/1024, N'#,0') AS VARCHAR)+' MB&amp;lt;br/&amp;gt;'+ @BackupType+'&amp;lt;/td&amp;gt; 
			&amp;lt;td style=&quot;border: 1px solid black;text-align:center;padding: 5px;&quot;&amp;gt;'+ltrim(rtrim(isnull(CONVERT(CHAR(8), @sDt, 8),'-')))+'&amp;lt;br/&amp;gt;'+ltrim(rtrim(isnull(CONVERT(CHAR(8), @eDt, 8),'-')))+'&amp;lt;/td&amp;gt; 
			&amp;lt;td style=&quot;border: 1px solid black;text-align:center;padding: 5px;&quot;&amp;gt;'+case when ltrim(rtrim(isnull(DATEDIFF(MINUTE,@sDt,@eDt),'-'))) = '0' then N'1 미만' else ltrim(rtrim(isnull(DATEDIFF(MINUTE,@sDt,@eDt),'-')))  end +'&amp;lt;/td&amp;gt;
			&amp;lt;td style=&quot;border: 1px solid black;text-align:center;padding: 5px;&quot;&amp;gt;'+@result+'&amp;lt;/td&amp;gt;
		&amp;lt;/tr&amp;gt;
		'

		SET @totalBackupSize += @backupSize
		SET @idx = @idx + 1
		FETCH NEXT FROM vendor_cursor
		INTO @dbName ,@sDt , @eDt, @result, @mdfSize , @ldfSize  , @backupSize , @BackupType
	END
	CLOSE vendor_cursor;
	DEALLOCATE vendor_cursor;

	SET @html += '&amp;lt;/table&amp;gt;'

	SET @html = replace(@html,'#TOTALBACKUPSIZE#',CAST(FORMAT(isnull(@totalBackupSize,0)/1024/1024, N'#,0') AS VARCHAR)+' MB')
	  
	EXEC msdb. dbo.sp_send_dbmail	-- sp_send_dbmail 상세 &amp;gt;&amp;gt; https://bit.ly/30zkdTj 
		@profile_name='메일프로필',
		@body_format = 'HTML' , -- 바디타입
		@recipients= '받을사람',
		@blind_copy_recipients= '숨김참조',
		@subject = @subject,
		@body =@html
END&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 결과적으로 시스템에서 발송해서 수신된 메일은 아래와 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;957&quot; data-origin-height=&quot;825&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cYFI1W/btqJ8fNO642/LTU3niI9e60YgdTSeaVVN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cYFI1W/btqJ8fNO642/LTU3niI9e60YgdTSeaVVN0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cYFI1W/btqJ8fNO642/LTU3niI9e60YgdTSeaVVN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcYFI1W%2FbtqJ8fNO642%2FLTU3niI9e60YgdTSeaVVN0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;957&quot; height=&quot;825&quot; data-origin-width=&quot;957&quot; data-origin-height=&quot;825&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적당히 내용을 수정하여 입맛에 맛도록 수정 사용하시기 바랍니다.&lt;/p&gt;</description>
      <category>DataBase/MS-SQL</category>
      <category>MSSQL</category>
      <category>메일발송</category>
      <category>백업리포트</category>
      <category>차등백업</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/155</guid>
      <comments>https://webdevcenter.tistory.com/entry/%EB%94%94%EB%B9%84-%EB%B0%B1%EC%97%85-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80-%EB%B0%8F-%EB%A6%AC%ED%8F%AC%ED%8A%B8-%EB%A9%94%EC%9D%BC-%EB%B0%9C%EC%86%A1-%EA%B8%B0%EB%8A%A5-%EC%8B%A4%EC%82%AC%EC%9A%A9-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80#entry155comment</comments>
      <pubDate>Mon, 5 Oct 2020 22:30:11 +0900</pubDate>
    </item>
    <item>
      <title>저장하지 않은 쿼리 확인 하는 방법 , 강제 종료 시 쿼리 복구</title>
      <link>https://webdevcenter.tistory.com/entry/%EC%A0%80%EC%9E%A5%ED%95%98%EC%A7%80-%EC%95%8A%EC%9D%80-%EC%BF%BC%EB%A6%AC-%ED%99%95%EC%9D%B8-%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95-%EA%B0%95%EC%A0%9C-%EC%A2%85%EB%A3%8C-%EC%8B%9C-%EC%BF%BC%EB%A6%AC-%EB%B3%B5%EA%B5%AC</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;때때로 ssms가 강제 종료 된다거나 저장하지 않고 닫았을 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SQL 쿼리를 복구 해야하는 경우 아래의 쿼리에서 일정 시간동안 쿼리 확인이 가능합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1601389950611&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Use &amp;lt;database&amp;gt;
SELECT execquery.last_execution_time AS [Date Time], execsql.text AS [Script] FROM sys.dm_exec_query_stats AS execquery
CROSS APPLY sys.dm_exec_sql_text(execquery.sql_handle) AS execsql
ORDER BY execquery.last_execution_time DESC&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참조 Url : &lt;a href=&quot;https://qastack.kr/programming/15034832/recover-unsaved-sql-query-scripts&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;qastack.kr/programming/15034832/recover-unsaved-sql-query-scripts&lt;/a&gt;&lt;/p&gt;</description>
      <category>DataBase/MS-SQL</category>
      <category>MSSQL</category>
      <category>sql</category>
      <category>쿼리복구</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/154</guid>
      <comments>https://webdevcenter.tistory.com/entry/%EC%A0%80%EC%9E%A5%ED%95%98%EC%A7%80-%EC%95%8A%EC%9D%80-%EC%BF%BC%EB%A6%AC-%ED%99%95%EC%9D%B8-%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95-%EA%B0%95%EC%A0%9C-%EC%A2%85%EB%A3%8C-%EC%8B%9C-%EC%BF%BC%EB%A6%AC-%EB%B3%B5%EA%B5%AC#entry154comment</comments>
      <pubDate>Tue, 29 Sep 2020 23:34:32 +0900</pubDate>
    </item>
    <item>
      <title>SQL Server 에이전트에 등록된 작업 목록 조회</title>
      <link>https://webdevcenter.tistory.com/entry/SQL-Server-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8%EC%97%90-%EB%93%B1%EB%A1%9D%EB%90%9C-%EC%9E%91%EC%97%85-%EB%AA%A9%EB%A1%9D-%EC%A1%B0%ED%9A%8C</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;SQL Server 에이전트에 등록된 작업 목록을 조회 하는 SQL 입니다.&lt;/p&gt;
&lt;pre id=&quot;code_1596532650722&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT
	A.name,
	case description when '설명이 없습니다.' then '' else description end as description,   
  CASE convert(
    nvarchar(3), 
    [freq_type], 
    3
  ) WHEN 4 THEN N' 매일' WHEN 8 THEN N' 매주 ' + CASE WHEN [freq_interval] &amp;amp; 1 = 1 THEN N'일' ELSE '' END 
	+ CASE WHEN [freq_interval] &amp;amp; 2 = 2 THEN ' 월' ELSE '' END + CASE WHEN [freq_interval] &amp;amp; 4 = 4 THEN ' 화' ELSE '' END + CASE WHEN [freq_interval] &amp;amp; 8 = 8 THEN ' 수' ELSE '' END + CASE WHEN [freq_interval] &amp;amp; 16 = 16 THEN N' 목' ELSE '' END + CASE WHEN [freq_interval] &amp;amp; 32 = 32 THEN N' 금' ELSE '' END + CASE WHEN [freq_interval] &amp;amp; 64 = 64 THEN N' 토' ELSE '' END WHEN 16 THEN N'하루 한번 ' 
	+ CAST(
    [freq_interval] AS VARCHAR(3)
  ) + N' 매달 ' + CAST(
    [freq_recurrence_factor] AS VARCHAR(3)
  ) + N' 매달' WHEN 32 THEN N'발생 ' + CASE [freq_relative_interval] WHEN 1 THEN N'첫째' WHEN 2 THEN N'둘째' WHEN 4 THEN N'셋째' WHEN 8 THEN N'넷째' WHEN 16 THEN N'마지막' END + ' ' + CASE [freq_interval] WHEN 1 THEN N'일' WHEN 2 THEN N'월' WHEN 3 THEN N'화' WHEN 4 THEN N'수' WHEN 5 THEN N'목' WHEN 6 THEN N'금' WHEN 7 THEN N'토' WHEN 8 THEN N'일' WHEN 9 THEN N'평일' WHEN 10 THEN N'주말' END + N' 모든 ' + CAST(
    [freq_recurrence_factor] AS VARCHAR(3)
  ) + N' 매달' END AS [Recurrence], 
  CASE convert(
    nvarchar(3), 
    [freq_subday_type], 
    3
  ) WHEN 1 THEN  STUFF(
    STUFF(
      RIGHT(
        '000000' + CAST(
          [active_start_time] AS VARCHAR(6)
        ), 
        6
      ), 
      3, 
      0, 
      ':'
    ), 
    6, 
    0, 
    ':'
  ) WHEN 2 THEN N'주기적 발생 ' + CAST(
    [freq_subday_interval] AS VARCHAR(3)
  ) + N' 초(s) 간격 ' + STUFF(
    STUFF(
      RIGHT(
        '000000' + CAST(
          [active_start_time] AS VARCHAR(6)
        ), 
        6
      ), 
      3, 
      0, 
      ':'
    ), 
    6, 
    0, 
    ':'
  ) + ' &amp;amp; ' + STUFF(
    STUFF(
      RIGHT(
        '000000' + CAST(
          [active_end_time] AS VARCHAR(6)
        ), 
        6
      ), 
      3, 
      0, 
      ':'
    ), 
    6, 
    0, 
    ':'
  ) WHEN 4 THEN N'주기적 발생 ' + CAST(
    [freq_subday_interval] AS VARCHAR(3)
  ) + N' 분(s) 간격 ' + STUFF(
    STUFF(
      RIGHT(
        '000000' + CAST(
          [active_start_time] AS VARCHAR(6)
        ), 
        6
      ), 
      3, 
      0, 
      ':'
    ), 
    6, 
    0, 
    ':'
  ) + ' &amp;amp; ' + STUFF(
    STUFF(
      RIGHT(
        '000000' + CAST(
          [active_end_time] AS VARCHAR(6)
        ), 
        6
      ), 
      3, 
      0, 
      ':'
    ), 
    6, 
    0, 
    ':'
  ) WHEN 8 THEN N'주기적 발생 ' + CAST(
    [freq_subday_interval] AS VARCHAR(3)
  ) + N' 시간(s) 간격 ' + STUFF(
    STUFF(
      RIGHT(
        '000000' + CAST(
          [active_start_time] AS VARCHAR(6)
        ), 
        6
      ), 
      3, 
      0, 
      ':'
    ), 
    6, 
    0, 
    ':'
  ) + ' &amp;amp; ' + STUFF(
    STUFF(
      RIGHT(
        '000000' + CAST(
          [active_end_time] AS VARCHAR(6)
        ), 
        6
      ), 
      3, 
      0, 
      ':'
    ), 
    6, 
    0, 
    ':'
  ) END [Frequency],  D.step_id, D.step_name, D.command 
FROM msdb.dbo.sysjobs A 
	INNER JOIN msdb.dbo.sysjobschedules B ON A.job_id = B.job_id 
	INNER JOIN msdb.dbo.sysschedules C ON B.schedule_id = C.schedule_id 
	INNER JOIN msdb.dbo.sysjobsteps D ON A.job_id = D.job_id  
ORDER BY A.name&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행 결과는 대략 아래와 같이 조회가 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;1322&quot; data-origin-height=&quot;462&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/neney/btqGfswb4kQ/w3VP0YTp1lIkVokuC1Ekdk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/neney/btqGfswb4kQ/w3VP0YTp1lIkVokuC1Ekdk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/neney/btqGfswb4kQ/w3VP0YTp1lIkVokuC1Ekdk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fneney%2FbtqGfswb4kQ%2Fw3VP0YTp1lIkVokuC1Ekdk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1322&quot; height=&quot;462&quot; data-origin-width=&quot;1322&quot; data-origin-height=&quot;462&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>DataBase/MS-SQL</category>
      <category>Server 에이전트</category>
      <category>sql</category>
      <category>작업 목록</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/153</guid>
      <comments>https://webdevcenter.tistory.com/entry/SQL-Server-%EC%97%90%EC%9D%B4%EC%A0%84%ED%8A%B8%EC%97%90-%EB%93%B1%EB%A1%9D%EB%90%9C-%EC%9E%91%EC%97%85-%EB%AA%A9%EB%A1%9D-%EC%A1%B0%ED%9A%8C#entry153comment</comments>
      <pubDate>Wed, 5 Aug 2020 17:10:42 +0900</pubDate>
    </item>
    <item>
      <title>백업 혹은 복구중인 데이터베이스 진행률 확인</title>
      <link>https://webdevcenter.tistory.com/entry/%EB%B0%B1%EC%97%85-%ED%98%B9%EC%9D%80-%EB%B3%B5%EA%B5%AC%EC%A4%91%EC%9D%B8-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%A7%84%ED%96%89%EB%A5%A0-%ED%99%95%EC%9D%B8</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;백업 혹은 복구 중인 데이터 베이스의 진행 상태나 진행률을 확인하는 SQL 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경과된 시간 , 남은 시간 , 예상 소요 시간등을 확인 할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1596531930593&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT r.session_id,r.command
,cast(CONVERT(NUMERIC(6,2),r.percent_complete)  as varchar) + ' %' AS [Percent Complete]
,CONVERT(VARCHAR(20),DATEADD(ms,r.estimated_completion_time,GetDate()),20) AS [ETA Completion Time]
,CONVERT(NUMERIC(10,2),r.total_elapsed_time/1000.0/60.0) AS [Elapsed Min]
,CONVERT(NUMERIC(10,2),r.estimated_completion_time/1000.0/60.0) AS [ETA Min]
,CONVERT(NUMERIC(10,2),r.estimated_completion_time/1000.0/60.0/60.0) AS [ETA Hours]
,CONVERT(VARCHAR(1000),(SELECT text FROM sys.dm_exec_sql_text(sql_handle))) AS [SQL] 
FROM sys.dm_exec_requests r WHERE command IN ('RESTORE DATABASE','BACKUP DATABASE')&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>DataBase/MS-SQL</category>
      <category>sql</category>
      <category>백업</category>
      <category>복구</category>
      <category>진행률</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/152</guid>
      <comments>https://webdevcenter.tistory.com/entry/%EB%B0%B1%EC%97%85-%ED%98%B9%EC%9D%80-%EB%B3%B5%EA%B5%AC%EC%A4%91%EC%9D%B8-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%A7%84%ED%96%89%EB%A5%A0-%ED%99%95%EC%9D%B8#entry152comment</comments>
      <pubDate>Wed, 5 Aug 2020 10:03:38 +0900</pubDate>
    </item>
    <item>
      <title>프로시저(sp)에서 사용하는 테이블 목록 , 특정 테이블을 참조하는 프로시저 목록</title>
      <link>https://webdevcenter.tistory.com/entry/%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80sp%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%ED%85%8C%EC%9D%B4%EB%B8%94-%EB%AA%A9%EB%A1%9D-%ED%8A%B9%EC%A0%95-%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%84-%EC%B0%B8%EC%A1%B0%ED%95%98%EB%8A%94-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80-%EB%AA%A9%EB%A1%9D</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;테이블의 속성이 변경되었을 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹은 컬럼 속성이 변경되었을 때&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아니면 테이블의 용도나 정체(?)를 알 수 없을 때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;관련된 sp를 확인하기 위해서 개인적으로 자주 사용하는 SQL 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특정 프로시저에서 사용하는 테이블 목록을 조회하는 SQL 문입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1596531493197&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;-- 프로시저에서 사용하는 테이블 목록
;WITH stored_procedures AS 
(   

    SELECT oo.name AS table_name,   o.name,
		ROW_NUMBER() OVER(partition by o.name,oo.name ORDER BY o.name,oo.name) AS row   
    FROM sysdepends d   
	    INNER JOIN sysobjects o ON o.id=d.id   
	    INNER JOIN sysobjects oo ON oo.id=d.depid   
    WHERE o.xtype = 'P' AND o.name LIKE '%프로시저명%' 
)  

SELECT name,Table_name FROM stored_procedures  
WHERE row = 1&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반대로 특정 테이블을 참조하는 프로시저 목록을 조회하는 SQL문 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1596531679376&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;-- 특정 테이블을 참조하는 프로시저 목록
;WITH stored_procedures AS 
(   

    SELECT oo.name AS table_name,   o.name,
		ROW_NUMBER() OVER(partition by o.name,oo.name ORDER BY o.name,oo.name) AS row   
    FROM sysdepends d   
	    INNER JOIN sysobjects o ON o.id=d.id   
	    INNER JOIN sysobjects oo ON oo.id=d.depid   
    WHERE o.xtype = 'P' AND oo.name = '테이블명' 
)  

SELECT name,Table_name FROM stored_procedures  
WHERE row = 1&lt;/code&gt;&lt;/pre&gt;</description>
      <category>DataBase/MS-SQL</category>
      <category>sql</category>
      <category>특정 테이블을 참조하는 프로시저</category>
      <category>특정 프로시저에서 참조하는 테이블목록</category>
      <category>프로시저</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/151</guid>
      <comments>https://webdevcenter.tistory.com/entry/%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80sp%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%ED%85%8C%EC%9D%B4%EB%B8%94-%EB%AA%A9%EB%A1%9D-%ED%8A%B9%EC%A0%95-%ED%85%8C%EC%9D%B4%EB%B8%94%EC%9D%84-%EC%B0%B8%EC%A1%B0%ED%95%98%EB%8A%94-%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80-%EB%AA%A9%EB%A1%9D#entry151comment</comments>
      <pubDate>Tue, 4 Aug 2020 18:05:13 +0900</pubDate>
    </item>
    <item>
      <title>그누보드5 완전히 회원삭제 하는 소스</title>
      <link>https://webdevcenter.tistory.com/entry/%EA%B7%B8%EB%88%84%EB%B3%B4%EB%93%9C5-%EC%99%84%EC%A0%84%ED%9E%88-%ED%9A%8C%EC%9B%90%EC%82%AD%EC%A0%9C-%ED%95%98%EB%8A%94-%EC%86%8C%EC%8A%A4</link>
      <description>&lt;p&gt;/board( 설치경로)/lib/common.lib.php 에서 member_delete 를 찾아서&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;혹시 기존에 삭제처리해서 Flag 처리된 회원을 삭제해야하는 경우 아래 내용 주석처리 필요.&lt;/p&gt;
&lt;pre id=&quot;code_1594537431430&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 이미 삭제된 회원은 제외
    if(preg_match('#^[0-9]{8}.*삭제함#', $mb['mb_memo']))
        return;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;함수내 가장 하단에 추가&lt;/p&gt;
&lt;pre id=&quot;code_1594537396462&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sql_query(&quot; delete from {$g5['member_table']} where mb_id = '$mb_id' &quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;전체 함수&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1594537334227&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 회원 삭제
function member_delete($mb_id)
{
    global $config;
    global $g5;

    $sql = &quot; select mb_name, mb_nick, mb_ip, mb_recommend, mb_memo, mb_level from {$g5['member_table']} where mb_id= '&quot;.$mb_id.&quot;' &quot;;
    $mb = sql_fetch($sql);

	// 주석처리 
    // 이미 삭제된 회원은 제외
    //if(preg_match('#^[0-9]{8}.*삭제함#', $mb['mb_memo']))
    //    return;

    if ($mb['mb_recommend']) {
        $row = sql_fetch(&quot; select count(*) as cnt from {$g5['member_table']} where mb_id = '&quot;.addslashes($mb['mb_recommend']).&quot;' &quot;);
        if ($row['cnt'])
            insert_point($mb['mb_recommend'], $config['cf_recommend_point'] * (-1), $mb_id.'님의 회원자료 삭제로 인한 추천인 포인트 반환', &quot;@member&quot;, $mb['mb_recommend'], $mb_id.' 추천인 삭제');
    }

    // 회원자료는 정보만 없앤 후 아이디는 보관하여 다른 사람이 사용하지 못하도록 함 : 061025
    $sql = &quot; update {$g5['member_table']} set mb_password = '', mb_level = 1, mb_email = '', mb_homepage = '', mb_tel = '', mb_hp = '', mb_zip1 = '', mb_zip2 = '', mb_addr1 = '', mb_addr2 = '', mb_birth = '', mb_sex = '', mb_signature = '', mb_memo = '&quot;.date('Ymd', G5_SERVER_TIME).&quot; 삭제함\n{$mb['mb_memo']}' where mb_id = '{$mb_id}' &quot;;
    sql_query($sql);

    // 포인트 테이블에서 삭제
    sql_query(&quot; delete from {$g5['point_table']} where mb_id = '$mb_id' &quot;);

    // 그룹접근가능 삭제
    sql_query(&quot; delete from {$g5['group_member_table']} where mb_id = '$mb_id' &quot;);

    // 쪽지 삭제
    sql_query(&quot; delete from {$g5['memo_table']} where me_recv_mb_id = '$mb_id' or me_send_mb_id = '$mb_id' &quot;);

    // 스크랩 삭제
    sql_query(&quot; delete from {$g5['scrap_table']} where mb_id = '$mb_id' &quot;);

    // 관리권한 삭제
    sql_query(&quot; delete from {$g5['auth_table']} where mb_id = '$mb_id' &quot;);

    // 그룹관리자인 경우 그룹관리자를 공백으로
    sql_query(&quot; update {$g5['group_table']} set gr_admin = '' where gr_admin = '$mb_id' &quot;);

    // 게시판관리자인 경우 게시판관리자를 공백으로
    sql_query(&quot; update {$g5['board_table']} set bo_admin = '' where bo_admin = '$mb_id' &quot;);

    //소셜로그인에서 삭제 또는 해제
    if(function_exists('social_member_link_delete')){
        social_member_link_delete($mb_id);
    }

    // 아이콘 삭제
    @unlink(G5_DATA_PATH.'/member/'.substr($mb_id,0,2).'/'.$mb_id.'.gif');

    // 프로필 이미지 삭제
    @unlink(G5_DATA_PATH.'/member_image/'.substr($mb_id,0,2).'/'.$mb_id.'.gif');

    // 추가한 소스. 완전삭제.
    sql_query(&quot; delete from {$g5['member_table']} where mb_id = '$mb_id' &quot;);
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Progmming/PHP</category>
      <category>gnuboard</category>
      <category>member_delete</category>
      <category>그누보드</category>
      <category>완전삭제</category>
      <category>회원삭제</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/150</guid>
      <comments>https://webdevcenter.tistory.com/entry/%EA%B7%B8%EB%88%84%EB%B3%B4%EB%93%9C5-%EC%99%84%EC%A0%84%ED%9E%88-%ED%9A%8C%EC%9B%90%EC%82%AD%EC%A0%9C-%ED%95%98%EB%8A%94-%EC%86%8C%EC%8A%A4#entry150comment</comments>
      <pubDate>Sun, 12 Jul 2020 16:04:46 +0900</pubDate>
    </item>
    <item>
      <title>IIS 확장자가 없는 파일 MIME 형식 등록</title>
      <link>https://webdevcenter.tistory.com/entry/IIS-%ED%99%95%EC%9E%A5%EC%9E%90%EA%B0%80-%EC%97%86%EB%8A%94-%ED%8C%8C%EC%9D%BC-MIME-%ED%98%95%EC%8B%9D-%EB%93%B1%EB%A1%9D</link>
      <description>&lt;p style=&quot;text-align: center;&quot;&gt;확장자가 없는 파일의 경우 .* 로 등록하면 처리가 안됨..&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;그냥 . 만 입력해서 추가하면 됩니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;원하는 mime 형식이 있다면 입력하면 되겠고 아래와 같이 text/plain 하면 텍스트 형태로 처리됨.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;보통은 확장자가 있기마련이지만 SSL 인증 할때 파일 업로드해서 인증 받는 경우 필요했음.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;!-- 1 --&gt;
&lt;div align=&quot;center&quot;&gt;
&lt;ins class=&quot;adsbygoogle&quot; style=&quot;display: inline-block; width: 336px; height: 280px;&quot; data-ad-client=&quot;ca-pub-4169082997566429&quot; data-ad-slot=&quot;8265896008&quot;&gt;&lt;/ins&gt;
&lt;script&gt;
(adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/div&gt;
&lt;p style=&quot;text-align: center; clear: none; float: none;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dmHcpz/btqDBz4WCwv/3Can806vBFPEeJKdIt1kyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dmHcpz/btqDBz4WCwv/3Can806vBFPEeJKdIt1kyK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dmHcpz/btqDBz4WCwv/3Can806vBFPEeJKdIt1kyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdmHcpz%2FbtqDBz4WCwv%2F3Can806vBFPEeJKdIt1kyK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>OS/Microsoft</category>
      <category>iis</category>
      <category>mime</category>
      <category>없는 파일</category>
      <category>확장자</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/149</guid>
      <comments>https://webdevcenter.tistory.com/entry/IIS-%ED%99%95%EC%9E%A5%EC%9E%90%EA%B0%80-%EC%97%86%EB%8A%94-%ED%8C%8C%EC%9D%BC-MIME-%ED%98%95%EC%8B%9D-%EB%93%B1%EB%A1%9D#entry149comment</comments>
      <pubDate>Tue, 21 Apr 2020 16:18:11 +0900</pubDate>
    </item>
    <item>
      <title>MSSQL 차등백업 방법 및 SQL</title>
      <link>https://webdevcenter.tistory.com/entry/MSSQL-%EC%B0%A8%EB%93%B1%EB%B0%B1%EC%97%85-%EB%B0%A9%EB%B2%95-%EB%B0%8F-SQL</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;차등 백업은 전체 백업 마지막 시점을 기준으로 이후에 수정된 내용을 백업는 방법입니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;기본적인 내용과 SQL문을 공유합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-- 전체 백업&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;BACKUP DATABASE [test] TO  DISK = N'D:\Backup\test_full.bak' WITH NOFORMAT, NOINIT,  NAME = N'test-전체 데이터베이스 백업', SKIP, NOREWIND, NOUNLOAD,  STATS = 10

GO&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;142&quot; data-origin-height=&quot;136&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wiqL4/btqDoUBChLK/CeJ8MpZoCnOFmYungfE5ik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wiqL4/btqDoUBChLK/CeJ8MpZoCnOFmYungfE5ik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wiqL4/btqDoUBChLK/CeJ8MpZoCnOFmYungfE5ik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwiqL4%2FbtqDoUBChLK%2FCeJ8MpZoCnOFmYungfE5ik%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;142&quot; height=&quot;136&quot; data-origin-width=&quot;142&quot; data-origin-height=&quot;136&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-- 차등백업 1&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;BACKUP DATABASE [test] TO  DISK = N'D:\Backup\test_1.bak' WITH  DIFFERENTIAL , NOFORMAT, NOINIT,  NAME = N'test-전체 데이터베이스 백업', SKIP, NOREWIND, NOUNLOAD,  STATS = 10

GO&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;155&quot; data-origin-height=&quot;179&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btOMqO/btqDqjtV6AO/C9jHCppyhxqhUKWjlkwiFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btOMqO/btqDqjtV6AO/C9jHCppyhxqhUKWjlkwiFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btOMqO/btqDqjtV6AO/C9jHCppyhxqhUKWjlkwiFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbtOMqO%2FbtqDqjtV6AO%2FC9jHCppyhxqhUKWjlkwiFk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;155&quot; height=&quot;179&quot; data-origin-width=&quot;155&quot; data-origin-height=&quot;179&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-- 차등백업 2&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;BACKUP DATABASE [test] TO  DISK = N'D:\Backup\test_2.bak' WITH  DIFFERENTIAL , NOFORMAT, NOINIT,  NAME = N'test-전체 데이터베이스 백업', SKIP, NOREWIND, NOUNLOAD,  STATS = 10

GO&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;138&quot; data-origin-height=&quot;218&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6hR52/btqDlM56Qp6/UrRscbns9YGdn1QXsMqB3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6hR52/btqDlM56Qp6/UrRscbns9YGdn1QXsMqB3k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6hR52/btqDlM56Qp6/UrRscbns9YGdn1QXsMqB3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6hR52%2FbtqDlM56Qp6%2FUrRscbns9YGdn1QXsMqB3k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;138&quot; height=&quot;218&quot; data-origin-width=&quot;138&quot; data-origin-height=&quot;218&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;-- 기본 전체 백업 + 차등 복구&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;문법&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;RESTORE DATABASE [디비명] FROM DISK = N'풀백업위치'

               WITH MOVE '논리적 DB명' TO 'mdf 복구위치'

                            ,MOVE '논리적 LOG명' TO 'ldf 복구위치',  NORECOVERY,  NOUNLOAD,  STATS = 5;

RESTORE DATABASE [tes디비명] FROM  DISK = N'차등백업위치' WITH  FILE = 1,  NOUNLOAD,  STATS = 5&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;RESTORE DATABASE [test3] FROM DISK = N'D:\Backup\test_full.bak'

               WITH MOVE 'test' TO 'C:\DATABASE\MSSQL15.MSSQLSERVER\MSSQL\DATA\test3.mdf'

                            ,MOVE 'test_log' TO 'C:\DATABASE\MSSQL15.MSSQLSERVER\MSSQL\DATA\test3.ldf',  NORECOVERY,  NOUNLOAD,  STATS = 5;

RESTORE DATABASE [test3] FROM  DISK = N'D:\Backup\test_2.bak' WITH  FILE = 1,  NOUNLOAD,  STATS = 5&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;백업 및 복구 시점별 데이터 체크&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;test : 풀백업&amp;nbsp; ,&amp;nbsp; test1 : 풀백업+차등1st ,&amp;nbsp; test2 : 풀백업+차등2nd&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthContent&quot; data-origin-width=&quot;448&quot; data-origin-height=&quot;772&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ofbh0/btqDqi2RCmk/WJzQjKaw7iVbMV3Wlk0mv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ofbh0/btqDqi2RCmk/WJzQjKaw7iVbMV3Wlk0mv1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ofbh0/btqDqi2RCmk/WJzQjKaw7iVbMV3Wlk0mv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fofbh0%2FbtqDqi2RCmk%2FWJzQjKaw7iVbMV3Wlk0mv1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;448&quot; height=&quot;772&quot; data-origin-width=&quot;448&quot; data-origin-height=&quot;772&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;개인적인 생각에서&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;u&gt;&lt;b&gt;장점&lt;/b&gt;&lt;/u&gt;은 백업 용량이 데이터 변화에 비례하기 때문에 수정이 적다면 용량도 적어집니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;수정된 데이터와 용량은 비례하게 됩니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;&lt;u&gt;단점&lt;/u&gt;&lt;/b&gt;은 전체 백업이 소실되면 복구가 불가능함. 전체 백업본이 있어야 차등백업본이 의미가 있기 때문에&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;무슨일이 있어도 전체 백업은 잘 보관해야합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;적당주기별 전체 백업과 차등백업을 처리한다면...스토리지가 좋아합니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>DataBase/MS-SQL</category>
      <category>MSSQL</category>
      <category>sql</category>
      <category>백업</category>
      <category>차등백업</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/148</guid>
      <comments>https://webdevcenter.tistory.com/entry/MSSQL-%EC%B0%A8%EB%93%B1%EB%B0%B1%EC%97%85-%EB%B0%A9%EB%B2%95-%EB%B0%8F-SQL#entry148comment</comments>
      <pubDate>Mon, 13 Apr 2020 17:01:24 +0900</pubDate>
    </item>
    <item>
      <title>GROUP_CONCAT 최대 결과 길이 변경하는 방법</title>
      <link>https://webdevcenter.tistory.com/entry/GROUPCONCAT-%EC%B5%9C%EB%8C%80-%EA%B2%B0%EA%B3%BC-%EA%B8%B8%EC%9D%B4-%EB%B3%80%EA%B2%BD%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;p&gt;mysql 최대 결과 길이 변경하기&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;세팅 값에 따라 부하가 걸릴수도 있으니 고민 고민 후 변경.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1583224039921&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#PHP
#해당 세션에만 적용됨.
SET SESSION group_concat_max_len = @@max_allowed_packet;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1583224142005&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#my.ini
#/etc/mysql/my.cnf
# 변경하고자 하는 최대 값 // [mysqld] 하단에 추가 
# GROUP_CONCAT()함수 에 허용되는 최대 결과 길이 (바이트)/기본값은 1024
group_concat_max_len=4M &lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;적용 후 서비스 재시작 해야 적용 됨.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;만약 적용 후 서비스 재시작에 문제가 있다면 아래 글 참고.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://dev.uhoon.co.kr/entry/MySQL80-%EC%84%9C%EB%B9%84%EC%8A%A4%EA%B0%80-%EB%A1%9C%EC%BB%AC-%EC%BB%B4%ED%93%A8%ED%84%B0%EC%97%90%EC%84%9C-%EC%8B%9C%EC%9E%91%ED%96%88%EB%8B%A4%EA%B0%80-%EC%A4%91%EC%A7%80%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4-%EC%9D%BC%EB%B6%80-%EC%84%9C%EB%B9%84%EC%8A%A4%EB%8A%94-%EB%8B%A4%EB%A5%B8-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%98%90%EB%8A%94-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%EB%90%98%EC%A7%80-%EC%95%8A%EC%9C%BC%EB%A9%B4-%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C-%EC%A4%91%EC%A7%80%EB%90%A9%EB%8B%88%EB%8B%A4&quot;&gt;MySQL80 서비스가 로컬 컴퓨터에서 시작했다가 중지되었습니다. 일부 서비스는 다른 서비스 또는 프로그램에서 사용되지 않으면 자동으로 중지됩니다.&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1583224422736&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;MySQL80 서비스가 로컬 컴퓨터에서 시작했다가 중지되었습니다. 일부 서비스는 다른 서비스 또는 프로그램에서 사용되지 않으면 자동으로 중지됩니다.&quot; data-og-description=&quot;MySQL80 서비스가 로컬 컴퓨터에서 시작했다가 중지되었습니다. 일부 서비스는 다른 서비스 또는 프로그램에서 사용되지 않으면 자동으로 중지됩니다. MYSQL 설정 파일인 my.ini 파일을 메모장으로 수정 후 서비..&quot; data-og-host=&quot;dev.uhoon.co.kr&quot; data-og-source-url=&quot;https://dev.uhoon.co.kr/entry/MySQL80-%EC%84%9C%EB%B9%84%EC%8A%A4%EA%B0%80-%EB%A1%9C%EC%BB%AC-%EC%BB%B4%ED%93%A8%ED%84%B0%EC%97%90%EC%84%9C-%EC%8B%9C%EC%9E%91%ED%96%88%EB%8B%A4%EA%B0%80-%EC%A4%91%EC%A7%80%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4-%EC%9D%BC%EB%B6%80-%EC%84%9C%EB%B9%84%EC%8A%A4%EB%8A%94-%EB%8B%A4%EB%A5%B8-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%98%90%EB%8A%94-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%EB%90%98%EC%A7%80-%EC%95%8A%EC%9C%BC%EB%A9%B4-%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C-%EC%A4%91%EC%A7%80%EB%90%A9%EB%8B%88%EB%8B%A4&quot; data-og-url=&quot;https://dev.uhoon.co.kr/entry/MySQL80-%EC%84%9C%EB%B9%84%EC%8A%A4%EA%B0%80-%EB%A1%9C%EC%BB%AC-%EC%BB%B4%ED%93%A8%ED%84%B0%EC%97%90%EC%84%9C-%EC%8B%9C%EC%9E%91%ED%96%88%EB%8B%A4%EA%B0%80-%EC%A4%91%EC%A7%80%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4-%EC%9D%BC%EB%B6%80-%EC%84%9C%EB%B9%84%EC%8A%A4%EB%8A%94-%EB%8B%A4%EB%A5%B8-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%98%90%EB%8A%94-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%EB%90%98%EC%A7%80-%EC%95%8A%EC%9C%BC%EB%A9%B4-%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C-%EC%A4%91%EC%A7%80%EB%90%A9%EB%8B%88%EB%8B%A4&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/JENo8/hyE9guNjBf/aKHgLjz4v4wKdzteh8ilBK/img.png?width=503&amp;amp;height=146&amp;amp;face=0_0_503_146,https://scrap.kakaocdn.net/dn/cI0sGq/hyE9kRt8az/oYYKeEPV3w7bDKSpfbtJK0/img.png?width=503&amp;amp;height=146&amp;amp;face=0_0_503_146&quot;&gt;&lt;a href=&quot;https://dev.uhoon.co.kr/entry/MySQL80-%EC%84%9C%EB%B9%84%EC%8A%A4%EA%B0%80-%EB%A1%9C%EC%BB%AC-%EC%BB%B4%ED%93%A8%ED%84%B0%EC%97%90%EC%84%9C-%EC%8B%9C%EC%9E%91%ED%96%88%EB%8B%A4%EA%B0%80-%EC%A4%91%EC%A7%80%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4-%EC%9D%BC%EB%B6%80-%EC%84%9C%EB%B9%84%EC%8A%A4%EB%8A%94-%EB%8B%A4%EB%A5%B8-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%98%90%EB%8A%94-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%EB%90%98%EC%A7%80-%EC%95%8A%EC%9C%BC%EB%A9%B4-%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C-%EC%A4%91%EC%A7%80%EB%90%A9%EB%8B%88%EB%8B%A4&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dev.uhoon.co.kr/entry/MySQL80-%EC%84%9C%EB%B9%84%EC%8A%A4%EA%B0%80-%EB%A1%9C%EC%BB%AC-%EC%BB%B4%ED%93%A8%ED%84%B0%EC%97%90%EC%84%9C-%EC%8B%9C%EC%9E%91%ED%96%88%EB%8B%A4%EA%B0%80-%EC%A4%91%EC%A7%80%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4-%EC%9D%BC%EB%B6%80-%EC%84%9C%EB%B9%84%EC%8A%A4%EB%8A%94-%EB%8B%A4%EB%A5%B8-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%98%90%EB%8A%94-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%EB%90%98%EC%A7%80-%EC%95%8A%EC%9C%BC%EB%A9%B4-%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C-%EC%A4%91%EC%A7%80%EB%90%A9%EB%8B%88%EB%8B%A4&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/JENo8/hyE9guNjBf/aKHgLjz4v4wKdzteh8ilBK/img.png?width=503&amp;amp;height=146&amp;amp;face=0_0_503_146,https://scrap.kakaocdn.net/dn/cI0sGq/hyE9kRt8az/oYYKeEPV3w7bDKSpfbtJK0/img.png?width=503&amp;amp;height=146&amp;amp;face=0_0_503_146');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;MySQL80 서비스가 로컬 컴퓨터에서 시작했다가 중지되었습니다. 일부 서비스는 다른 서비스 또는 프로그램에서 사용되지 않으면 자동으로 중지됩니다.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;MySQL80 서비스가 로컬 컴퓨터에서 시작했다가 중지되었습니다. 일부 서비스는 다른 서비스 또는 프로그램에서 사용되지 않으면 자동으로 중지됩니다. MYSQL 설정 파일인 my.ini 파일을 메모장으로 수정 후 서비..&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;dev.uhoon.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_group_concat_max_len&quot;&gt;https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_group_concat_max_len&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1583224400713&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;MySQL :: MySQL 5.7 Reference Manual :: 5.1.7 Server System Variables&quot; data-og-description=&quot;&quot; data-og-host=&quot;dev.mysql.com&quot; data-og-source-url=&quot;https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_group_concat_max_len&quot; data-og-url=&quot;https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_group_concat_max_len&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_group_concat_max_len&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_group_concat_max_len&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;MySQL :: MySQL 5.7 Reference Manual :: 5.1.7 Server System Variables&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;dev.mysql.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>DataBase/My-SQL</category>
      <category>group_concat</category>
      <category>group_concat_max_len</category>
      <category>mysql</category>
      <category>최대결과길이</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/147</guid>
      <comments>https://webdevcenter.tistory.com/entry/GROUPCONCAT-%EC%B5%9C%EB%8C%80-%EA%B2%B0%EA%B3%BC-%EA%B8%B8%EC%9D%B4-%EB%B3%80%EA%B2%BD%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95#entry147comment</comments>
      <pubDate>Tue, 3 Mar 2020 17:34:49 +0900</pubDate>
    </item>
    <item>
      <title>MySQL80 서비스가 로컬 컴퓨터에서 시작했다가 중지되었습니다. 일부 서비스는 다른 서비스 또는 프로그램에서 사용되지 않으면 자동으로 중지됩니다.</title>
      <link>https://webdevcenter.tistory.com/entry/MySQL80-%EC%84%9C%EB%B9%84%EC%8A%A4%EA%B0%80-%EB%A1%9C%EC%BB%AC-%EC%BB%B4%ED%93%A8%ED%84%B0%EC%97%90%EC%84%9C-%EC%8B%9C%EC%9E%91%ED%96%88%EB%8B%A4%EA%B0%80-%EC%A4%91%EC%A7%80%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4-%EC%9D%BC%EB%B6%80-%EC%84%9C%EB%B9%84%EC%8A%A4%EB%8A%94-%EB%8B%A4%EB%A5%B8-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%98%90%EB%8A%94-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%EB%90%98%EC%A7%80-%EC%95%8A%EC%9C%BC%EB%A9%B4-%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C-%EC%A4%91%EC%A7%80%EB%90%A9%EB%8B%88%EB%8B%A4</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;이미지 29.png&quot; data-origin-width=&quot;503&quot; data-origin-height=&quot;146&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Asbi5/btqCoRz369X/gmhmVPIX4ALHiYHICcdbuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Asbi5/btqCoRz369X/gmhmVPIX4ALHiYHICcdbuk/img.png&quot; data-alt=&quot;서비스 시작 시 에러 메시지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Asbi5/btqCoRz369X/gmhmVPIX4ALHiYHICcdbuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAsbi5%2FbtqCoRz369X%2FgmhmVPIX4ALHiYHICcdbuk%2Fimg.png&quot; data-filename=&quot;이미지 29.png&quot; data-origin-width=&quot;503&quot; data-origin-height=&quot;146&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;서비스 시작 시 에러 메시지&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;MySQL80&amp;nbsp;서비스가&amp;nbsp;로컬&amp;nbsp;컴퓨터에서&amp;nbsp;시작했다가&amp;nbsp;중지되었습니다.&amp;nbsp;일부&amp;nbsp;서비스는&amp;nbsp;다른&amp;nbsp;서비스&amp;nbsp;또는&amp;nbsp;프로그램에서&amp;nbsp;사용되지&amp;nbsp;않으면&amp;nbsp;자동으로&amp;nbsp;중지됩니다.&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;MYSQL 설정 파일인 my.ini 파일을 메모장으로 수정 후 서비스 재시작 시 발생한 에러입니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;원인 : my.ini 파일 인코딩 문제&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;my.ini 파일 초기 인코딩은 ANSI&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;확인해보시면 아마도 UTF-8로 변경되어있을텐데&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;다시 ANSI로 변경 저장 후 서비스 시작하시면 정상 작동 될 것입니다.&lt;/p&gt;</description>
      <category>DataBase/My-SQL</category>
      <category>mysql</category>
      <category>mysql80</category>
      <category>서비스재시작</category>
      <category>에러</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/146</guid>
      <comments>https://webdevcenter.tistory.com/entry/MySQL80-%EC%84%9C%EB%B9%84%EC%8A%A4%EA%B0%80-%EB%A1%9C%EC%BB%AC-%EC%BB%B4%ED%93%A8%ED%84%B0%EC%97%90%EC%84%9C-%EC%8B%9C%EC%9E%91%ED%96%88%EB%8B%A4%EA%B0%80-%EC%A4%91%EC%A7%80%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4-%EC%9D%BC%EB%B6%80-%EC%84%9C%EB%B9%84%EC%8A%A4%EB%8A%94-%EB%8B%A4%EB%A5%B8-%EC%84%9C%EB%B9%84%EC%8A%A4-%EB%98%90%EB%8A%94-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%EB%90%98%EC%A7%80-%EC%95%8A%EC%9C%BC%EB%A9%B4-%EC%9E%90%EB%8F%99%EC%9C%BC%EB%A1%9C-%EC%A4%91%EC%A7%80%EB%90%A9%EB%8B%88%EB%8B%A4#entry146comment</comments>
      <pubDate>Tue, 3 Mar 2020 17:23:23 +0900</pubDate>
    </item>
    <item>
      <title>Windows Server 2019 &amp;quot;암호가 암호 정책 요구 사항에 맞지 않습니다.&amp;quot;</title>
      <link>https://webdevcenter.tistory.com/entry/Windows-Server-2019-%EC%95%94%ED%98%B8%EA%B0%80-%EC%95%94%ED%98%B8-%EC%A0%95%EC%B1%85-%EC%9A%94%EA%B5%AC-%EC%82%AC%ED%95%AD%EC%97%90-%EB%A7%9E%EC%A7%80-%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4</link>
      <description>&lt;p style=&quot;text-align: center;&quot;&gt;윈도우 서버 관리 계정 암호 설정 시 에러 메시지&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;text-align: center;&quot; data-ke-style=&quot;style3&quot;&gt;---------------------------&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;로컬&amp;nbsp;사용자&amp;nbsp;및&amp;nbsp;그룹&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;---------------------------&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;Administrator&amp;nbsp;사용자에&amp;nbsp;대한&amp;nbsp;암호를&amp;nbsp;설정하는&amp;nbsp;동안&amp;nbsp;다음&amp;nbsp;오류가&amp;nbsp;발생했습니다:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;암호가&amp;nbsp;암호&amp;nbsp;정책&amp;nbsp;요구&amp;nbsp;사항에&amp;nbsp;맞지&amp;nbsp;않습니다.&amp;nbsp;최소&amp;nbsp;암호&amp;nbsp;길이,&amp;nbsp;암호&amp;nbsp;복잡도&amp;nbsp;및&amp;nbsp;암호&amp;nbsp;기록&amp;nbsp;요구&amp;nbsp;사항을&amp;nbsp;확인하십시오.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;---------------------------&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;확인&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;---------------------------&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;460&quot; data-origin-height=&quot;302&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNQmZ9/btqB1bTIpWB/yQhtKhc28c2WpXjI8xmx8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cNQmZ9/btqB1bTIpWB/yQhtKhc28c2WpXjI8xmx8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cNQmZ9/btqB1bTIpWB/yQhtKhc28c2WpXjI8xmx8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNQmZ9%2FbtqB1bTIpWB%2FyQhtKhc28c2WpXjI8xmx8K%2Fimg.png&quot; data-filename=&quot;1.png&quot; data-origin-width=&quot;460&quot; data-origin-height=&quot;302&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;윈도우 로컬 보안정책&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;계정설정&amp;nbsp; &amp;gt; 암호정책 &amp;gt; &quot;암호는 복잡성을 만족해야 함&quot;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;580&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Bzu6N/btqB2H4YBTf/rKk4WjBvFNt90KM8t6Ugg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Bzu6N/btqB2H4YBTf/rKk4WjBvFNt90KM8t6Ugg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Bzu6N/btqB2H4YBTf/rKk4WjBvFNt90KM8t6Ugg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBzu6N%2FbtqB2H4YBTf%2FrKk4WjBvFNt90KM8t6Ugg0%2Fimg.png&quot; data-filename=&quot;2.png&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;580&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;사용안함&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;587&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOEKNW/btqB1djGjKe/mkASztxE0BHoBjNo5clBsK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOEKNW/btqB1djGjKe/mkASztxE0BHoBjNo5clBsK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOEKNW/btqB1djGjKe/mkASztxE0BHoBjNo5clBsK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOEKNW%2FbtqB1djGjKe%2FmkASztxE0BHoBjNo5clBsK%2Fimg.png&quot; data-filename=&quot;3.png&quot; data-origin-width=&quot;493&quot; data-origin-height=&quot;587&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;정책 변경 후에는 재부팅을 하거나 수동으로 정책을 업데이트 시켜줘야 합니다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;cmd :&amp;nbsp; gpupdate /force&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;994&quot; data-origin-height=&quot;527&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BV15d/btqB1ZLN1bR/fAw0WbysV67ZKaSPcI4yY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BV15d/btqB1ZLN1bR/fAw0WbysV67ZKaSPcI4yY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BV15d/btqB1ZLN1bR/fAw0WbysV67ZKaSPcI4yY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBV15d%2FbtqB1ZLN1bR%2FfAw0WbysV67ZKaSPcI4yY0%2Fimg.png&quot; data-filename=&quot;4.png&quot; data-origin-width=&quot;994&quot; data-origin-height=&quot;527&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>OS/Microsoft</category>
      <category>암호 정책</category>
      <category>윈도우</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/145</guid>
      <comments>https://webdevcenter.tistory.com/entry/Windows-Server-2019-%EC%95%94%ED%98%B8%EA%B0%80-%EC%95%94%ED%98%B8-%EC%A0%95%EC%B1%85-%EC%9A%94%EA%B5%AC-%EC%82%AC%ED%95%AD%EC%97%90-%EB%A7%9E%EC%A7%80-%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4#entry145comment</comments>
      <pubDate>Mon, 17 Feb 2020 16:49:41 +0900</pubDate>
    </item>
    <item>
      <title>설치된 닷넷프레임워크 버전 확인 방법</title>
      <link>https://webdevcenter.tistory.com/entry/%EC%84%A4%EC%B9%98%EB%90%9C-%EB%8B%B7%EB%84%B7%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC-%EB%B2%84%EC%A0%84-%ED%99%95%EC%9D%B8-%EB%B0%A9%EB%B2%95</link>
      <description>&lt;p&gt;윈도우 서버에서 .Net Framework 설치 확인하는 방법입니다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Powershell 실행 후&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Install-Module -Name DotNetVersionLister -Scope CurrentUser #-Force&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Get-STDotNetVersion&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d2OM9K/btqBS5Mon1W/YBD5tHhKITQQBtEWcPwfNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d2OM9K/btqBS5Mon1W/YBD5tHhKITQQBtEWcPwfNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d2OM9K/btqBS5Mon1W/YBD5tHhKITQQBtEWcPwfNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd2OM9K%2FbtqBS5Mon1W%2FYBD5tHhKITQQBtEWcPwfNk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>OS/Microsoft</category>
      <category>.net framework</category>
      <category>버전확인</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/144</guid>
      <comments>https://webdevcenter.tistory.com/entry/%EC%84%A4%EC%B9%98%EB%90%9C-%EB%8B%B7%EB%84%B7%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC-%EB%B2%84%EC%A0%84-%ED%99%95%EC%9D%B8-%EB%B0%A9%EB%B2%95#entry144comment</comments>
      <pubDate>Tue, 11 Feb 2020 16:53:22 +0900</pubDate>
    </item>
    <item>
      <title>특정 컬럼명에 대한 테이블 및 속성 검색하는 쿼리 SQL</title>
      <link>https://webdevcenter.tistory.com/entry/%ED%8A%B9%EC%A0%95-%EC%BB%AC%EB%9F%BC%EB%AA%85%EC%97%90-%EB%8C%80%ED%95%9C-%ED%85%8C%EC%9D%B4%EB%B8%94-%EB%B0%8F-%EC%86%8D%EC%84%B1-%EA%B2%80%EC%83%89%ED%95%98%EB%8A%94-%EC%BF%BC%EB%A6%AC-SQL</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;특정 컬럼명에 대한 테이블 및 속성 검색하는 쿼리 SQL&lt;/p&gt;
&lt;pre class=&quot;sql&quot; data-ke-language=&quot;sql&quot;&gt;&lt;code&gt;
select table_name ,column_name ,column_default, data_type
	, character_maximum_length ,character_octet_length 
From information_schema .columns 
where column_name='cityCd' 
order by character_maximum_length desc&lt;/code&gt;&lt;/pre&gt;</description>
      <category>DataBase/MS-SQL</category>
      <category>column_name</category>
      <category>information_schema .columns</category>
      <category>sql</category>
      <category>컬럼명</category>
      <author>Yo.</author>
      <guid isPermaLink="true">https://webdevcenter.tistory.com/143</guid>
      <comments>https://webdevcenter.tistory.com/entry/%ED%8A%B9%EC%A0%95-%EC%BB%AC%EB%9F%BC%EB%AA%85%EC%97%90-%EB%8C%80%ED%95%9C-%ED%85%8C%EC%9D%B4%EB%B8%94-%EB%B0%8F-%EC%86%8D%EC%84%B1-%EA%B2%80%EC%83%89%ED%95%98%EB%8A%94-%EC%BF%BC%EB%A6%AC-SQL#entry143comment</comments>
      <pubDate>Thu, 6 Feb 2020 17:05:45 +0900</pubDate>
    </item>
  </channel>
</rss>