<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>kingscode</title>
    <link>https://kingscode.tistory.com/</link>
    <description>각종 프로그래밍 정보를 다루는 블로그입니다.</description>
    <language>ko</language>
    <pubDate>Sun, 14 Jun 2026 14:22:47 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>kingscode</managingEditor>
    <item>
      <title>인증된 것과 완전히 인증된 것의 차이</title>
      <link>https://kingscode.tistory.com/600</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;인증된 것과 완전히 인증된 것의 차이&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;spring security를 배우려고 하는데 질문이 있습니다. spring security에서 authenticated와 fully authenticated의 차이점은 무엇입니까?&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스프링 보안 설명서에서:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;isAuthenticated()       Returns true if the user is not anonymous
isFullyAuthenticated()  Returns true if the user is not an anonymous or a remember-me user
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사실 Authenticated &lt;a href=&quot;http://docs.spring.io/spring-security/site/docs/2.0.7.RELEASE/apidocs/org/springframework/security/vote/AuthenticatedVoter.html&quot; rel=&quot;noreferrer&quot; papago-id=&quot;3-1&quot;&gt;&lt;strong papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;보터&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt; 설명서에서 더 잘 설명하고 있다고 생각합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;시류&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Authentication&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;주체가 특정 인증 수준을 가지고 있는지 여부를 확인하기 위해 검사됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
 &lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&quot;완전&quot; 인증 옵션은 사용자가 완전히 인증되었음을 의미합니다(&lt;a href=&quot;http://docs.spring.io/spring-security/site/docs/2.0.7.RELEASE/apidocs/org/springframework/security/AuthenticationTrustResolver.html#isAnonymous(org.springframework.security.Authentication)&quot; papago-id=&quot;6-1&quot; rel=&quot;noreferrer&quot;&gt;즉&lt;/a&gt;, 인증).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://docs.spring.io/spring-security/site/docs/2.0.7.RELEASE/apidocs/org/springframework/security/AuthenticationTrustResolver.html#isAnonymous(org.springframework.security.Authentication)&quot; papago-id=&quot;6-1&quot; rel=&quot;noreferrer&quot;&gt;TrustResolver.&lt;strong papago-id=&quot;6-1-1&quot;&gt;isAnonym&lt;/strong&gt;(Authentication)&lt;/a&gt;은 false이고 &lt;a href=&quot;http://docs.spring.io/spring-security/site/docs/2.0.7.RELEASE/apidocs/org/springframework/security/AuthenticationTrustResolver.html#isRememberMe(org.springframework.security.Authentication)&quot; papago-id=&quot;6-5&quot; rel=&quot;noreferrer&quot;&gt;Authentication&lt;/a&gt;입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://docs.spring.io/spring-security/site/docs/2.0.7.RELEASE/apidocs/org/springframework/security/AuthenticationTrustResolver.html#isRememberMe(org.springframework.security.Authentication)&quot; papago-id=&quot;6-5&quot; rel=&quot;noreferrer&quot;&gt;TrustResolver.&lt;strong papago-id=&quot;6-5-1&quot;&gt;isRememberMe&lt;/strong&gt;(인증)&lt;/a&gt;이 거짓입니다.&lt;/font&gt;&lt;/p&gt; 
 &lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용자가 remember-me를 통해 인증되었거나 완전히 인증된 경우 &quot;REMEMED&quot;는 액세스 권한을 부여합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용자가 remember-me를 통해 인증되었거나 익명으로 인증되었거나 전체 인증을 통해 인증된 경우 &quot;익명&quot;은 액세스 권한을 부여합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://docs.spring.io/spring-security/site/docs/3.0.x/reference/el-access.html#el-common-built-in&quot; rel=&quot;noreferrer&quot; papago-id=&quot;8-1&quot;&gt;이 문서 표&lt;/a&gt;에는 다음과 같은 내용이 나와 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;code&gt;isAuthenticated()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;- 사용자가 &lt;strong papago-id=&quot;2-3&quot;&gt;익명이 아닌&lt;/strong&gt; 경우 true를 &lt;strong papago-id=&quot;2-1&quot;&gt;반환&lt;/strong&gt;합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;code&gt;isFullyAuthenticated()&lt;/code&gt; &lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;- 사용자가 &lt;strong papago-id=&quot;3-3&quot;&gt;익명&lt;/strong&gt;&lt;em papago-id=&quot;3-4&quot;&gt;&lt;/em&gt; 또는 &lt;strong papago-id=&quot;3-6&quot;&gt;remember-me&lt;/strong&gt; 사용자가 &lt;strong papago-id=&quot;3-3&quot;&gt;아닌&lt;/strong&gt; 경우 true를 &lt;strong papago-id=&quot;3-1&quot;&gt;반환&lt;/strong&gt;합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt;&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/30953241/difference-between-isauthenticated-and-isfullyauthenticated&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/600</guid>
      <comments>https://kingscode.tistory.com/600#entry600comment</comments>
      <pubDate>Mon, 18 Sep 2023 23:29:47 +0900</pubDate>
    </item>
    <item>
      <title>PHP에서 MySQL 쿼리의 실행 시간을 얻는 방법은?</title>
      <link>https://kingscode.tistory.com/599</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;PHP에서 MySQL 쿼리의 실행 시간을 얻는 방법은?&lt;/font&gt;&lt;/h2&gt;
&lt;div&gt; 
 &lt;aside class=&quot;s-notice s-notice__info post-notice js-post-notice mb16&quot; role=&quot;status&quot;&gt; 
  &lt;div class=&quot;d-flex fd-column fw-nowrap&quot;&gt; 
   &lt;div class=&quot;d-flex fw-nowrap&quot;&gt; 
    &lt;div class=&quot;flex--item wmn0 fl1 lh-lg&quot;&gt; 
     &lt;div class=&quot;flex--item fl1 lh-lg&quot;&gt; 
      &lt;div papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;
&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;b papago-id=&quot;1-1&quot;&gt;이 질문에는 이미&lt;/b&gt; 다음과 같은 &lt;b papago-id=&quot;1-1&quot;&gt;답변이 있습니다&lt;/b&gt;.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;      &lt;/font&gt;&lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;flex--item mb0 mt4&quot;&gt; 
    &lt;a href=&quot;/questions/1631316/mysql-execution-time&quot; dir=&quot;ltr&quot; papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;mysql 실행 시간&lt;/font&gt;&lt;/a&gt; 
    &lt;span class=&quot;question-originals-answer-count&quot; papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(3개 답변)&lt;/font&gt;&lt;/span&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;flex--item mb0 mt8&quot; papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;
&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;닫힘&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;span class=&quot;relativetime&quot; papago-id=&quot;4-1&quot; title=&quot;2013-04-13 06:11:14Z&quot; papago-attr-id=&quot;1&quot;&gt;10년 전&lt;/span&gt;에.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;   &lt;/font&gt;&lt;/div&gt; 
  &lt;/div&gt; 
 &lt;/aside&gt; 
&lt;/div&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 PHP에서 MySQL 쿼리를 실행하는데 시간이 얼마나 걸리는지 알고 싶습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;PHP에서 MySQL 쿼리의 실행 시간을 얻을 수 있는 방법이 있습니까?&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;웹 서버의 로딩량에 따라 실행 시간이 달라지는지도 궁금합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;서버가 다른 쿼리로 바쁘면 쿼리를 실행하는 데 더 많은 시간이 걸릴 것으로 예상됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;반면에 서버가 사용 중인 경우 쿼리는 차례만 기다린 후(병행으로 실행되는 쿼리 없이) 실행되고 대기 시간은 실행 시간에 포함되지 않는다고 상상할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇다면 (두 가지 중) 어떤 시나리오가 맞을까요?&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;MySQL을 통해 이를 수행할 수 있는 방법이 있을 것입니다. 하지만 쉽고 신뢰할 수 있는 방법은 PHP의 것을 사용하는 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;microtime&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;function - 현재 시간을 밀리초로 반환합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;9-0&quot;&gt;microtime()&lt;/strong&gt;은 현재 Unix 타임스탬프를 microseconds로 반환합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 기능은 &amp;gt; 시스템 호출 수신 시간을 지원하는 운영 체제에서만 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
 &lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;10-0&quot;&gt;getasfloat&lt;/em&gt; - 선택적 인수 없이 호출하면 이 함수는 문자열 &quot;msec sec&quot;을 반환합니다. 여기서 sec는 유닉스 에포크(1970년 1월 1일 0:00:00 GMT) 이후 초 단위로 측정된 현재 시간이고 msec는 마이크로초 부분입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;문자열의 두 부분 모두 초 단위로 반환됩니다.&lt;/font&gt;&lt;/p&gt; 
 &lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;옵션인 get_as_float을 TRUE로 설정하면 플로트(초 단위)가 반환됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;몇 가지 예시 코드:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$sql = '...';
$msc = microtime(true);
mysql_query($sql);
$msc = microtime(true)-$msc;
echo $msc . ' s'; // in seconds
echo ($msc * 1000) . ' ms'; // in millseconds
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;microtime()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;실행하는 데 시간이 걸립니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;만약 mysql에서 데이터를 얻길 원한다면, 이렇게...&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;mysql_query(&quot;SET profiling = 1;&quot;);
if (mysql_errno()) { die( &quot;ERROR &quot;.mysql_errno($link) . &quot;: &quot; . mysql_error($link) ); }

$query=&quot;SELECT some_field_name FROM some_table_name&quot;;
$result = mysql_query($query);
if (mysql_errno()) { die( &quot;ERROR &quot;.mysql_errno($link) . &quot;: &quot; . mysql_error($link) ); }

$exec_time_result=mysql_query(&quot;SELECT query_id, SUM(duration) FROM information_schema.profiling GROUP BY query_id ORDER BY query_id DESC LIMIT 1;&quot;);
if (mysql_errno()) { die( &quot;ERROR &quot;.mysql_errno($link) . &quot;: &quot; . mysql_error($link) ); }
$exec_time_row = mysql_fetch_array($exec_time_result);

echo &quot;&amp;lt;p&amp;gt;Query executed in &quot;.$exec_time_row[1].' seconds';
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;MySQL에서 바로 꺼내려면 일반 로그를 사용하면 됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아직 켜져 있지 않으면 전원을 켭니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SET GLOBAL general_log = 'ON'; 
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;쿼리를 실행한 후 데이터를 보려면 다음을(를)&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT * FROM mysql.general_log;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;무엇보다도, 당신은 아마 phpmyadmin에서 본 것처럼 쿼리 실행 시간을 얻게 될 것입니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/4501876/how-to-get-the-execution-time-of-a-mysql-query-from-php&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/599</guid>
      <comments>https://kingscode.tistory.com/599#entry599comment</comments>
      <pubDate>Mon, 18 Sep 2023 23:23:50 +0900</pubDate>
    </item>
    <item>
      <title>지시어 @Inputs에서 대괄호 [ ]를 사용할 때와 사용하지 않을 때는?</title>
      <link>https://kingscode.tistory.com/598</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;지시어 @Inputs에서 대괄호 [ ]를 사용할 때와 사용하지 않을 때는?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;좀 헷갈리네요.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 간단한 설명을 참조하십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt; @Directive({
      selector: '[myDirective]'
    })
    export class MyDirective {

      private text: string;
      private enabled: boolean;

      @Input() myDirective:string;

      @Input('myText')
      set myText(val: string) {
        this.text = val;
      }

      @Input('myEnabled')
      set myEnabled(val: boolean) {
        this.enabled = val;
      }

      ngOnInit() {

        console.log(&quot;myDirective string: &quot; + this.myDirective);
        console.log(&quot;myText string: &quot; + this.text); 
        console.log(&quot;myEnabled boolean: &quot; + this.enabled);
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내 html이 다음과 같이 보인다면:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div [myDirective]=&quot;myDefaultText&quot; [myEnabled]=&quot;true&quot;  [myText]=&quot;abc&quot;&amp;gt;&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;출력은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;myDirective string: myDefaultText real value  // good
myEnabled boolean: true                       // good
myText string: undefined                      // Why?
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;[]을(를) 제거하는 경우&lt;/font&gt;&lt;/font&gt;&lt;code&gt;myText&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div [myDirective]=&quot;myDefaultText&quot; [myEnabled]=&quot;true&quot;  myText=&quot;abc&quot;&amp;gt;&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;출력은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;myDirective string: myDefaultText real value  // good
myEnabled boolean: true                       // good
myText string: abc                            // GOOD
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제거할 수도 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;[]&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부터&lt;/font&gt;&lt;/font&gt;&lt;code&gt;myEnabled&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것도 잘 될 겁니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;자, 여기 저의 혼란이 있습니다 - 대괄호를 사용해야 할 때.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;[]&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용할 사용자를 원하지만 그렇지 않을 경우&lt;/font&gt;&lt;/font&gt;&lt;code&gt;myDirective&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내 생각에 대괄호는 그들이 그들의 집에서&lt;/font&gt;&lt;/font&gt;&lt;code&gt;[]&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;항상 그곳에 있어야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇지 않습니까?&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용할때&lt;/font&gt;&lt;/font&gt;&lt;code&gt;[]&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에 묶다&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@Input()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, 기본적으로 템플릿의 표현입니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;동일한 방법으로 표시&lt;/font&gt;&lt;/font&gt;&lt;code&gt;{{abc}}&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아무 것도 표시하지 않습니다(실제로라는 변수가 있지 않은 한).)&lt;/font&gt;&lt;/font&gt;&lt;code&gt;abc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;).&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문자열이 있는 경우&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@Input()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, 그리고 일정한 문자열에 묶고 싶다면, 다음과 같이 묶을 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;[myText]=&quot; 'some text' &quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, 또는 간단히 말해서, 일반 HTML 속성처럼:&lt;/font&gt;&lt;/font&gt;&lt;code&gt;myText=&quot;some text&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이유&lt;/font&gt;&lt;/font&gt;&lt;code&gt;[myEnabled]=&quot;true&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일했다는 것은&lt;/font&gt;&lt;/font&gt;&lt;code&gt;true&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;는 유효한 템플릿 식이며 물론 부울로 평가됩니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;true&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;글을쓰면&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;img [src]=&quot;heroImageUrl&quot;&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그 말은 오른쪽이&lt;/font&gt;&lt;/font&gt;&lt;code&gt;heroImageUrl&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;템플릿 표현식입니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사이의 단순한 차이점은&lt;/font&gt;&lt;/font&gt;&lt;code&gt;[myText]=&quot;abc&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;myText=&quot;abc&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;27&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이전의 경우 템플릿 식을 사용하여 대상 PROPITY myText를 설정하기 위해 각도를 요청하는 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;abc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, 후자의 경우 'abc' 문자열을 사용하여 myText라는 대상 속성을 설정합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;35&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;HTML에 대해 조금 더 알아보겠습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;HTML에서는 이와 같은 요소를 정의할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;input type=&quot;text&quot; value=&quot;Bob&quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;29&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;입력은 다음의 요소입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;attributes&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;30&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;유형과 가치입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;브라우저가 이 요소를 구문 분석하면 이 요소에 대한 DOM 항목(개체)이 만들어집니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;DOM 항목에는 다음과 같은 항목이 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;properties&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;39&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;align, baseURI, child Node, children 등이 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;HTML 속성과 DOM &lt;a href=&quot;https://angular.io/guide/template-syntax#html-attribute-vs-dom-property&quot; papago-id=&quot;39-1&quot; rel=&quot;noreferrer&quot;&gt;속성&lt;/a&gt;의 차이 &lt;a href=&quot;https://angular.io/guide/template-syntax#html-attribute-vs-dom-property&quot; papago-id=&quot;39-1&quot; rel=&quot;noreferrer&quot;&gt;참조&lt;/a&gt;.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;때때로 속성과 속성의 이름이 같아서 혼동을 일으킵니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;위 입력 태그의 경우 속성을 갖습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;value&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;32&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;= 밥은 재산도 가지고 있고요.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;value&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;33&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;텍스트 상자에 입력하는 값을 가질 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;요약하면 속성은 태그에 대해 정의하는 것이고 속성은 DOM 트리에서 생성되는 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Angular 세계에서 속성의 유일한 역할은 요소와 가능하면 지시 상태를 초기화하는 것입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;데이터 바인딩을 쓸 때는 대상 개체의 속성과 이벤트만 다루고 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;HTML 속성이 효과적으로 사라집니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;34&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에서.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;div [myDirective]=&quot;myDefaultText&quot; [myEnabled]=&quot;true&quot; [myText]=&quot;abc&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;35&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 본질적으로 다음과 같이 말하고 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;36&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 을 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;myDirective&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;37&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;나의 디브 요소로.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;38&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 을 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;myEnabled&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;39&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;◦ &lt;font class=&quot;papago-parent&quot;&gt;표현&lt;/font&gt;으로&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;표정&lt;/font&gt;이 표현에 &lt;font class=&quot;papago-parent&quot;&gt;오른쪽&lt;/font&gt;이 나옵니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;true&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;40&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; ,  Enabled 이 입니다  의 입니다 이    의     &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;41&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 을 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;myText&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;42&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;◦ &lt;font class=&quot;papago-parent&quot;&gt;표현&lt;/font&gt;으로&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;표정&lt;/font&gt;이 표현에 &lt;font class=&quot;papago-parent&quot;&gt;오른쪽&lt;/font&gt;이 나옵니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;abc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;43&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;정의된?&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 정의된 abc가 있습니까?&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아니요, 그래서 식이 정의되지 않은 것으로 평가되었습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt;&lt;p papago-id=&quot;53&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대괄호는 Angular가 템플릿 식을 평가하도록 지시합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;대괄호를 생략하면 Angular는 문자열을 상수로 취급하고 해당 문자열로 대상 속성을 초기화합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;문자열을 평가하지 않습니다!&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;54&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 실수를 하지 마십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;    &amp;lt;!-- ERROR: HeroDetailComponent.hero expects a
         Hero object, not the string &quot;currentHero&quot; --&amp;gt;
    &amp;lt;hero-detail hero=&quot;currentHero&quot;&amp;gt;&amp;lt;/hero-detail&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;55&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://angular.io/docs/ts/latest/guide/template-syntax.html#!#property-binding&quot; rel=&quot;noreferrer&quot; papago-id=&quot;55-1&quot;&gt;확인:&lt;/a&gt; https://angular.io/docs/ts/latest/guide/template-syntax.html#!#property-binding&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;44&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;구속력이 있는&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;[]&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;45&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;개체의 경우 값은 문자열입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;종류에 주의하세요.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;58&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;코드에&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div [myDirective]=&quot;myDefaultText&quot; [myEnabled]=&quot;true&quot;  [myText]=&quot;abc&quot;&amp;gt;&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;46&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;수 은 를  를 할   은 의  은 의    를  할 를     &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;undefined&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;47&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;. . . 을 하면 가       가   하면 을           &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;string&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;48&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;속성에 할당된 값입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;62&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://angular.io/guide/property-binding&quot; papago-id=&quot;62-1&quot; rel=&quot;noreferrer&quot;&gt;속성&lt;/a&gt; 바인딩에 &lt;a href=&quot;https://angular.io/guide/property-binding&quot; papago-id=&quot;62-1&quot; rel=&quot;noreferrer&quot;&gt;대한 Angular 가이드&lt;/a&gt;에서:&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;63&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대괄호인 []는 Angular가 할당의 오른쪽을 동적 표현식으로 평가하게 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;대괄호가 없으면 Angular는 오른쪽을 문자열 리터럴로 처리하고 속성을 해당 정적 값으로 설정합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt;&lt;p&gt;&lt;strong papago-id=&quot;64&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Angular 13의 최신 업데이트입니다.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;65&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어...&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;49&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 입력 변수가 있다고 가정합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;carImage&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;50&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;값, 즉 에는 로부터  된 URL 됩니다 에는 됩니다  이         로부터 된    .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@Input() carImage = '';
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;68&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;68-2&quot;&gt;시나리오&lt;/em&gt; 1 - &lt;em papago-id=&quot;68-2&quot;&gt;대괄호 사용&lt;/em&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;img [src]=&quot;carImage&quot;&amp;gt;&amp;lt;/img&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;51&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이   이든 에  에  이든   가 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;carImage&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;52&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;수는에다됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;src&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;53&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의의 속성&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;img&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;54&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;는 . 가 입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;property binding&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;55&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;할 수 있습니다 즉,  을 으로 할     할 을  으로        .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;74&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;74-2&quot;&gt;시나리오&lt;/em&gt; 2 - &lt;em papago-id=&quot;74-2&quot;&gt;대괄호 미포함&lt;/em&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;img src=&quot;carImage&quot;&amp;gt;&amp;lt;/img&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;56&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이   은 은 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;carImage&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;57&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;될입니다에 됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;src&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;58&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;attribute,않은 할 수 .attribute,서 Angular가된 URL를다수할로는다수e할,를된etteeeern가lyo&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;78&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;78-0&quot;&gt;작동&lt;/strong&gt;하려면 아래와 같이 유효한 URL을 지정해야 &lt;strong papago-id=&quot;78-0&quot;&gt;합니다&lt;/strong&gt;.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;img src=&quot;http://demo/carImage.jpg&quot;&amp;gt;&amp;lt;/img&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;79&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/43633452/when-to-use-square-brackets-in-directives-inputs-and-when-not&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/598</guid>
      <comments>https://kingscode.tistory.com/598#entry598comment</comments>
      <pubDate>Mon, 18 Sep 2023 23:21:23 +0900</pubDate>
    </item>
    <item>
      <title>Twitter 부트스트랩 모달의 크기를 콘텐츠에 따라 동적으로 조정하는 방법</title>
      <link>https://kingscode.tistory.com/597</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Twitter 부트스트랩 모달의 크기를 콘텐츠에 따라 동적으로 조정하는 방법&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;유튜브 영상, 비메오 영상, 텍스트, 임구르 사진 등 다양한 종류의 데이터가 있는 데이터베이스 콘텐츠가 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것들은 모두 높이와 폭이 다릅니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;인터넷 검색을 하면서 찾은 것은 크기를 하나의 파라미터로 변경하는 것뿐입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;팝업 내용과 동일해야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 나의 HTML 코드입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 콘텐츠를 호출할 때도 Ajax를 사용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div id=&quot;modal&quot; class=&quot;modal hide fade&quot; tabindex=&quot;-1&quot; role=&quot;dialog&quot; aria-labelledby=&quot;myModalLabel&quot; aria-hidden=&quot;true&quot;&amp;gt;
    &amp;lt;div class=&quot;modal-header&quot;&amp;gt;
        &amp;lt;button type=&quot;button&quot; class=&quot;close&quot; data-dismiss=&quot;modal&quot; aria-hidden=&quot;true&quot;&amp;gt;×&amp;lt;/button&amp;gt;
        &amp;lt;h3 id=&quot;ModalLabel&quot;&amp;gt;&amp;lt;/h3&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&quot;modal-body&quot;&amp;gt;

    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 나에게 효과가 있었고, 위의 것들 중 아무 것도 효과가 없었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;.modal-dialog{
    position: relative;
    display: table; /* This is important */ 
    overflow-y: auto;    
    overflow-x: auto;
    width: auto;
    min-width: 300px;   
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;컨텐츠가 동적이어야 하므로 모드의 CSS 속성을 동적으로 설정할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;show&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;모달의 기본 사양을 재정의하여 모달의 크기를 조정하는 모달의 이벤트.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;부트스트랩인 이유는 다음과 같이 CSS 규칙을 사용하여 최대 높이를 모달 바디에 적용합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;.modal-body {
    position: relative;
    overflow-y: auto;
    max-height: 400px;
    padding: 15px;
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;jquery를 사용하여 인라인 스타일을 동적으로 추가할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;css&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;방법:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;최신 버전의 부트스트랩의 경우&lt;/font&gt;&lt;/font&gt;&lt;code&gt;show.bs.modal&lt;/code&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$('#modal').on('show.bs.modal', function () {
       $(this).find('.modal-body').css({
              width:'auto', //probably not needed
              height:'auto', //probably not needed 
              'max-height':'100%'
       });
});
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이전 버전의 부트스트랩 사용&lt;/font&gt;&lt;/font&gt;&lt;code&gt;show&lt;/code&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$('#modal').on('show', function () {
       $(this).find('.modal-body').css({
              width:'auto', //probably not needed
              height:'auto', //probably not needed 
              'max-height':'100%'
       });
});
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는 CSS 규칙을 사용하여 다음을 재정의합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;.autoModal.modal .modal-body{
    max-height: 100%;
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 이 클래스를 추가합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;autoModal&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;목표 모델에 적용할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Fiddle에서 내용을 동적으로 변경하면 그에 따라 modal 크기가 조정되는 것을 볼 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;최신 버전의 부트스트랩은 를 참조하십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;15-0&quot;&gt;show.bs&lt;/strong&gt; &lt;strong papago-id=&quot;15-0&quot;&gt;.jp&lt;/strong&gt; 이 이벤트는 show instance 메서드가 호출되면 즉시 실행됩니다&lt;strong papago-id=&quot;15-0&quot;&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;클릭으로 인해 발생한 경우 클릭된 요소를 이벤트의 관련 Target 속성으로 사용할 수 있습니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;16-0&quot;&gt;shown.bs&lt;/strong&gt; &lt;strong papago-id=&quot;16-0&quot;&gt;.http&lt;/strong&gt;:// 이 이벤트는 모드가 사용자에게 표시되면 실행됩니다&lt;strong papago-id=&quot;16-0&quot;&gt;(CSS&lt;/strong&gt; 전환이 완료될 때까지 기다립니다).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;클릭으로 인해 발생한 경우 클릭된 요소를 이벤트의 관련 Target 속성으로 사용할 수 있습니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;17-0&quot;&gt;hide.bs&lt;/strong&gt; &lt;strong papago-id=&quot;17-0&quot;&gt;.hide&lt;/strong&gt; 인스턴스 메서드가 호출되면 이 이벤트가 즉시 실행됩니다&lt;strong papago-id=&quot;17-0&quot;&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;18-0&quot;&gt;hidden.bs&lt;/strong&gt; &lt;strong papago-id=&quot;18-0&quot;&gt;.http&lt;/strong&gt;:// 이 이벤트는 모드가 사용자로부터 숨겨지는 것을 완료하면 &lt;strong papago-id=&quot;18-0&quot;&gt;실행됩니다(&lt;/strong&gt;CSS 전환이 완료될 때까지 기다립니다).&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;19-0&quot;&gt;loaded.bs&lt;/strong&gt; &lt;strong papago-id=&quot;19-0&quot;&gt;.http://&lt;/strong&gt; 이 이벤트는 모드가 원격 옵션을 사용하여 컨텐츠를 로드한 경우 실행됩니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;지원되는 부트스트랩의 이전 버전입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;표시 - show instance 메서드를 호출하면 이 이벤트가 즉시 &lt;strong papago-id=&quot;21-0&quot;&gt;실행&lt;/strong&gt;됩니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;22-0&quot;&gt;표시&lt;/strong&gt;된 - 이 이벤트는 모드가 사용자에게 보일 때 발생합니다(CSS 전환이 완료될 때까지 기다립니다).&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;hide - hide instance 메서드가 호출되면 이 이벤트가 즉시 &lt;strong papago-id=&quot;23-0&quot;&gt;실행&lt;/strong&gt;됩니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;hidden - 이 이벤트는 모드가 사용자로부터 숨기기를 완료하면 &lt;strong papago-id=&quot;24-0&quot;&gt;실행&lt;/strong&gt;됩니다(CSS 전환이 완료될 때까지 기다립니다).&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;수  PSL로  있는 를 psl로 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;style=&quot;display: table;&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;큰이 그것을 .&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 모달 내용 자체가 그것이 얼마나 큰 것을 원하며 모달이 그것을 수용하고 있는지를 말해줍니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;CSS를 작성하고 싶다면 다음을 추가하는 여러 방법이 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;.modal-dialog{
  display: table
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;인라인을 추가하고 싶은 경우&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div class=&quot;modal-dialog&quot; style=&quot;display:table;&quot;&amp;gt;
//enter code here
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;추가하지 않음&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;display:table;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;모드 콘텐츠 클래스로 이동합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것은 당신의 일을 해냈지만 당신의 모달을 큰 사이즈로 배치하는 것은 다음 스크린샷을 참조하세요.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;첫 번째 이미지는 모달 콘텐츠에 스타일을 추가하는 경우 모달 콘텐츠에 스타일을 추가하는 경우입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;성향이 있어 보입니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부트스트랩 3은 다음과 같이 사용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$('#myModal').on('hidden.bs.modal', function () {
// do something…
})
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;간단한 CSS는 나를 위해 작동합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;.modal-dialog { 
max-width : 100% ;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 단순히 css를 무시합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;.modal-dialog {
    max-width: 1000px;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;③을 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;width:fit-content&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;모달 디브에서&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;gijgo.com 의 jquery dialog plugin을 사용하고 너비를 auto로 설정하면 그렇게 할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;snippet&quot; data-lang=&quot;js&quot; data-hide=&quot;false&quot; data-console=&quot;true&quot; data-babel=&quot;false&quot;&gt; 
 &lt;div class=&quot;snippet-code&quot;&gt; 
  &lt;pre class=&quot;snippet-code-js lang-js prettyprint-override&quot;&gt;&lt;code&gt;$(&quot;#dialog&quot;).dialog({
  uiLibrary: 'bootstrap',
  width: 'auto'
});&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-html lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;script src=&quot;https://code.jquery.com/jquery-2.1.4.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
  &amp;lt;link href=&quot;http://code.gijgo.com/1.0.0/css/gijgo.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;&amp;gt;
  &amp;lt;script src=&quot;http://code.gijgo.com/1.0.0/js/gijgo.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;link href=&quot;https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
 &amp;lt;div id=&quot;dialog&quot; title=&quot;Wikipedia&quot;&amp;gt;
   &amp;lt;img src=&quot;https://upload.wikimedia.org/wikipedia/en/thumb/8/80/Wikipedia-logo-v2.svg/1122px-Wikipedia-logo-v2.svg.png&quot; width=&quot;320&quot;/&amp;gt;
 &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;크기 조정을 true로 설정한 경우에도 사용자가 크기를 조정할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이에 대한 데모는 http://gijgo.com/Dialog/Demos/bootstrap-modal-resizable 에서 확인할 수 있습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;모드의 중심을 수직과 수평으로 맞추는 간단한 CSS 솔루션:&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-css prettyprint-override&quot;&gt;&lt;code&gt;.modal.show {
  display: flex !important;
  justify-content: center;
}

.modal-dialog {
  align-self: center;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부트스트랩 2 모델 높이를 동적으로 자동 조정&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;  //Auto adjust modal height on open 
  $('#modal').on('shown',function(){
     var offset = 0;
     $(this).find('.modal-body').attr('style','max-height:'+($(window).height()-offset)+'px !important;');
  });
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 부트스트랩 3과 모달바디디브의 높이가 442px 이상이 되기를 원하지 않는 것에 대해서도 마찬가지로 문제가 있었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것이 제 경우를 고치는 데 필요한 CSS의 전부였습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;.modal-body {
    overflow-y: auto;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Mine Solution은 아래 스타일을 추가하는 것이었습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;div class=&quot;modal-body&quot; style=&quot;clear: both;overflow: hidden;&quot;&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;p papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부트스트랩 4의 스타일은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@media (min-width: 576px)
.modal-dialog {
    max-width: 500px;
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;43-1&quot;&gt;따라서&lt;/strong&gt; 만약 당신이 모달 폭을 어느 정도 더 큰 폭으로 크기를 조정하고자 한다면, 나는 당신의 CSS에 이것을 사용하는 것을 제안합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;.modal-dialog { max-width: 87vw; }
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 설정을 &lt;strong papago-id=&quot;15-0&quot;&gt;참고&lt;/strong&gt;합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;width: 87vw;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;을다하지를(를) 재정의하지 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;max-width: 500px;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;47&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 검색한 결과 여기까지 오게 되었으니 2센트짜리 아이디어를 추가하는 것도 좋을 것 같습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://github.com/nakupanda/bootstrap3-dialog&quot; papago-id=&quot;47-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;Monkey friendly Twitter Bootstrap&lt;/a&gt; modal을 &lt;a href=&quot;https://github.com/nakupanda/bootstrap3-dialog&quot; papago-id=&quot;47-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;사용&lt;/a&gt;하는 경우 다음과 같은 작업을 수행할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;    var dialog = new BootstrapDialog({
        id: 'myDialog',
        title: 'Title',
        closable: false,
        // whatever you like configuration here...
    });

    dialog.realize();
    if (isContentAYoutubeVideo()) {
        dialog.getModalDialog().css('width', '80%'); // set the width to whatever you like
    }
    dialog.open();
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;48&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;도움이 되길 바랍니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;49&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;컨텐츠가 오버플로될 때 모달 상자의 크기만 조정하려면 원래 크기를 그대로 유지합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;50&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용하다&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div class=&quot;modal-dialog&quot; style=&quot;display:grid;&quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;51&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대신에&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div class=&quot;modal-dialog&quot; style=&quot;display:table;&quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/srJ8M.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/srJ8M.png&quot; alt=&quot;display:table;&quot;&gt;&lt;/a&gt; &lt;a href=&quot;https://i.stack.imgur.com/ep1Go.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/ep1Go.png&quot; alt=&quot;display:grid;&quot;&gt;&lt;/a&gt; &lt;a href=&quot;https://i.stack.imgur.com/CHNYx.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/CHNYx.png&quot; alt=&quot;enter image description here&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;p papago-id=&quot;52&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/16152275/how-to-resize-twitter-bootstrap-modal-dynamically-based-on-the-content&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/597</guid>
      <comments>https://kingscode.tistory.com/597#entry597comment</comments>
      <pubDate>Mon, 18 Sep 2023 23:20:15 +0900</pubDate>
    </item>
    <item>
      <title>파워셸에 선택 문자열이 있는 검색 패턴 제외</title>
      <link>https://kingscode.tistory.com/596</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파워셸에 선택 문자열이 있는 검색 패턴 제외&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;선택 문자열을 사용하여 파일에 오류가 있는지 검색하고 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;grep과 같이 검색 패턴을 제외할 수 있습니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;예:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;grep ERR* | grep -v &quot;ERR-10&quot;

select-string -path logerror.txt -pattern &quot;ERR&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;log error.txt&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;OK
ERR-10
OK
OK
ERR-20
OK
OK
ERR-10
ERR-00
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ERR-00 및 ERR-10이 아닌 모든 ERR 라인을 받고 싶습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 경우 &quot;-NotMatch&quot; 매개 변수를 사용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;PS C:\&amp;gt;Get-Content .\some.txt
1
2
3
4
5
PS C:\&amp;gt;Get-Content .\some.txt | Select-String -Pattern &quot;3&quot; -NotMatch    
1
2
4
5
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신의 경우 답은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Get-Content .\logerror.txt | Select-String -Pattern &quot;ERR*&quot; | Select-String -Pattern &quot;ERR-[01]0&quot; -NotMatch
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신이 사용할 수 있을 것 같아요.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Where-Object&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기서.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Write-Output @&quot;
OK
ERR-10
OK
OK
ERR-20
OK
OK
ERR-10
ERR-00
&quot;@ &amp;gt; &quot;C:\temp\log.txt&quot;

# Option 1.
Get-Content &quot;C:\temp\log.txt&quot; | Where-Object { $_ -Match &quot;ERR*&quot;} | Where-Object { $_ -NotMatch &quot;ERR-[01]0&quot;}

# Option 2.
Get-Content &quot;C:\temp\log.txt&quot; | Where-Object { $_ -Match &quot;ERR*&quot; -and $_ -NotMatch &quot;ERR-[01]0&quot;}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/39126832/exclude-search-pattern-with-select-string-in-powershell&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/596</guid>
      <comments>https://kingscode.tistory.com/596#entry596comment</comments>
      <pubDate>Mon, 18 Sep 2023 23:19:00 +0900</pubDate>
    </item>
    <item>
      <title>팬더는 행별 최소값을 두 개 이상의 열로 얻습니다.</title>
      <link>https://kingscode.tistory.com/595</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;팬더는 행별 최소값을 두 개 이상의 열로 얻습니다.&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;팬더 데이터 프레임 방정식의 일부로 두 데이터 프레임의 최소값을 어떻게 참조할 수 있습니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 파이썬을 사용해 보았습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;min()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기능이 작동하지 않았습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이 일에 관련된 것을 찾고 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-py prettyprint-override&quot;&gt;&lt;code&gt;data['eff'] = pd.DataFrame([data['flow_h'], data['flow_c']]).min() *Cp* (data[' Thi'] - data[' Tci'])
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;팬더도 이용해 보았습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;min()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;function, 역시 작동하지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-py prettyprint-override&quot;&gt;&lt;code&gt;min_flow = pd.DataFrame([data['flow_h'], data['flow_c']]).min()
&lt;/code&gt;&lt;/pre&gt; 
&lt;pre class=&quot;lang-none prettyprint-override&quot;&gt;&lt;code&gt;InvalidIndexError: Reindexing only valid with uniquely valued Index objects
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이 오류 때문에 혼란스러웠습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;데이터 열은 숫자와 이름일 뿐입니다. 인덱스가 어디서 작동하는지 잘 몰랐습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-py prettyprint-override&quot;&gt;&lt;code&gt;import pandas as pd
import numpy as np

np.random.seed(365)
rows = 10
flow = {'flow_c': [np.random.randint(100) for _ in range(rows)],
        'flow_d': [np.random.randint(100) for _ in range(rows)],
        'flow_h': [np.random.randint(100) for _ in range(rows)]}
data = pd.DataFrame(flow)

# display(data)
   flow_c  flow_d  flow_h
0      82      36      43
1      52      48      12
2      33      28      77
3      91      99      11
4      44      95      27
5       5      94      64
6      98       3      88
7      73      39      92
8      26      39      62
9      56      74      50
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;행 단위를 구하려는 경우&lt;/font&gt;&lt;/font&gt;&lt;code&gt;mininum&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;두 개 이상의 열 중에서 를 사용합니다. 기본적으로&lt;/font&gt;&lt;/font&gt;&lt;code&gt;axis=0&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;; 지정하기&lt;/font&gt;&lt;/font&gt;&lt;code&gt;axis=1&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;필요합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-py prettyprint-override&quot;&gt;&lt;code&gt;data['min_c_h'] = data[['flow_h','flow_c']].min(axis=1)

# display(data)
   flow_c  flow_d  flow_h  min_c_h
0      82      36      43       43
1      52      48      12       12
2      33      28      77       33
3      91      99      11       11
4      44      95      27       27
5       5      94      64        5
6      98       3      88       88
7      73      39      92       73
8      26      39      62       26
9      56      74      50       50
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여러 열의 최소값을 단일 값으로 구하려면 다음과 같이 하십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;data[['flow_h','flow_c']].min().min()
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;첫 번째 &quot;min()&quot;는 열당 최소값을 계산하고 팬더 시리즈를 반환합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;두 번째 &quot;min&quot;은 열당 최소값을 반환합니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;바꿔 부르기도 합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;min()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-py prettyprint-override&quot;&gt;&lt;code&gt;data['min_flow'] = data[['flow_h','flow_c']].T.min()
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아니면 콜&lt;/font&gt;&lt;/font&gt;&lt;code&gt;min(axis=1)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기본적인 누피 배열에 있어요.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-py prettyprint-override&quot;&gt;&lt;code&gt;data['min_flow'] = data[['flow_h','flow_c']].values.min(axis=1)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;축이 지나가지 않으면,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ndarray.min&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;전체 배열에서 평가되므로 여러 열의 단일 최소값(즉, 최소값)에 대해 기본 numpy 배열에 액세스하는 것도 유용할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-py prettyprint-override&quot;&gt;&lt;code&gt;minimum = data[['flow_h','flow_c']].values.min()
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;numpy를 사용하여 다른 열에서 두 개 이상의 열에 대한 행 단위 최소값을 참조하거나 얻을 수도 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;지정하는 것이 중요합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;axis=1&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;import numpy as np
...
data['min_c_h']= np.min(data[['flow_h','flow_c']],axis=1)
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/33975128/pandas-get-the-row-wise-minimum-value-of-two-or-more-columns&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/595</guid>
      <comments>https://kingscode.tistory.com/595#entry595comment</comments>
      <pubDate>Mon, 18 Sep 2023 23:11:52 +0900</pubDate>
    </item>
    <item>
      <title>mysql에 빅데이터를 저장하는 방법은?</title>
      <link>https://kingscode.tistory.com/594</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;mysql에 빅데이터를 저장하는 방법은?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;데이터베이스에 저장하고 싶은 대용량 텍스트 파일이 많습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;적은 양의 데이터를 안전하게 보호할 수 있는 셸 스크립트를 작성했지만 일부 큰 파일로 시도하면 다음 오류가 발생합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;mysql: Argument list too long
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;열 내용에 긴 텍스트 형식이 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;test.txt에는 60개의 단어가 들어있고 내용물을 안전하게 보호합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;오스텐엠마도 마찬가지로 해보면요.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;txt (158167개의 단어가 있음) 설명된 오류가 발생합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;#!/bin/sh

content=`cat /srv/data/english_gutenberg_corpus/test.txt`

db_value=`mysql -u admin -padmin --database=bp12 -e &quot;INSERT INTO db_connector_text (author, date, genre, content, title, language, source, wordlength) VALUES ('lel', '1970-01-16', 'NULL', '$content', 'Lyrische elemente', 'German', 'kp', 20)&quot;`
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 문제에 대한 해결책이 있습니까?&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;/bin/sh&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;명령어 크기에 제한이 있습니다. 아마 5KB 정도일 것입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;데이터를 처리하는 다른 방법으로 전환합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;최종적으로 어떤 데이터베이스 접근 방식을 취하든 작업을 수행하려면 프로그래밍 언어(Perl, Java, VB 등)를 배워야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 함께 할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;sh&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용할 경우&lt;/font&gt;&lt;/font&gt;&lt;code&gt;LOAD_FILE&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;MySQL에서 작동하지만 사소한 것에는 사용하지 않는 것이 좋습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;방대한 양의 텍스트 파일&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파일을 어떻게 하실 겁니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;웹 페이지에 표시하시겠습니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떤 프로그램으로 그들을 조종한다고요?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;하이퍼링크를 제공하시겠습니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;단어 구조를 분석해보시죠?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다른 거?&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;데이터베이스에 안전하게 보관하고 싶습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&quot;안전&quot;을 정의해 주십시오.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;구경꾼들로부터 보호되는 것처럼 &quot;보안&quot;?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&quot;크래시 세이프(crash-safe)&quot;, 당신의 서버가 죽은 후에도 여전히 거기에 있습니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;파일 권한과 마찬가지로 &quot;변경으로부터 보호&quot;?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다른 거?&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;관계형 데이터베이스를 사용하여 크기가 큰 파일을 저장하는 것은 권장하지 않습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Google의 Firebase 등과 같은 NoSQL 데이터베이스를 사용하는 것이 가장 좋습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://firebase.google.com&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://firebase.google.com&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/54618083/how-to-save-big-data-in-mysql&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/594</guid>
      <comments>https://kingscode.tistory.com/594#entry594comment</comments>
      <pubDate>Mon, 18 Sep 2023 23:09:19 +0900</pubDate>
    </item>
    <item>
      <title>Github - 사이드밴드 패킷을 읽는 동안 예기치 않은 연결 끊김</title>
      <link>https://kingscode.tistory.com/593</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Github - 사이드밴드 패킷을 읽는 동안 예기치 않은 연결 끊김&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 꽤 흥미로운 문제가 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;몇몇 프로젝트를 bash to repo로 보내려고 했는데 최근에 보내는데 문제가 생겼습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Enumerating objects: 27, done.
Counting objects: 100% (27/27), done.
Delta compression using up to 16 threads
Compressing objects: 100% (24/24), done.
Writing objects: 100% (25/25), 187.79 KiB | 9.39 MiB/s, done.
Total 25 (delta 1), reused 0 (delta 0), pack-reused 0
send-pack: unexpected disconnect while reading sideband packet
fatal: the remote end hung up unexpectedly
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;재미있는 부분은 10분 전에 아무 문제없이 보낼 수 있다는 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;새로운 레포를 얻고, 새로운 파일을 만들고, 깃을 다시 설치하고,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;git config --global http.postBuffer 524288000&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;◦ https.postBuffer 등등.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;데스크톱 버전도 동일한 이슈가 들어오는 것으로 설치합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대부분 리액트 앱에 문제가 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;해결책 아는 사람?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;무엇이 잘못될 수 있습니까?&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;우선 네트워크 연결 안정성을 확인합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;네트워크 연결에 문제가 없으면 다른 솔루션을 사용해 보십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;h2 papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;리눅스에서&lt;/font&gt;&lt;/h2&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Git 명령을 실행하기 전에 명령줄에서 다음을 실행합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-sh prettyprint-override&quot;&gt;&lt;code&gt;export GIT_TRACE_PACKET=1
export GIT_TRACE=1
export GIT_CURL_VERBOSE=1
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2 papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Windows에서&lt;/font&gt;&lt;/h2&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Git 명령을 실행하기 전에 명령줄에서 다음을 실행합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;set GIT_TRACE_PACKET=1
set GIT_TRACE=1
set GIT_CURL_VERBOSE=1
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그 외:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;git config --global core.compression 0
git clone --depth 1 &amp;lt;repo_URI&amp;gt;
# cd to your newly created directory
git fetch --unshallow 
git pull --all
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2 papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;PowerShell 사용자의 경우:&lt;/font&gt;&lt;/h2&gt; 
&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/users/139793&quot; papago-id=&quot;15-1&quot;&gt;애스코디브라운&lt;/a&gt;은 &lt;a href=&quot;https://stackoverflow.com/posts/comments/124439738&quot; papago-id=&quot;15-3&quot;&gt;댓글&lt;/a&gt;에서 이렇게 &lt;a href=&quot;https://stackoverflow.com/posts/comments/124439738&quot; papago-id=&quot;15-3&quot;&gt;말했습니다&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$env:GIT_TRACE_PACKET=1
$env:GIT_TRACE=1
$env:GIT_CURL_VERBOSE=1
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;네트워크 문제일 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;네트워크 속도가 너무 느리면 예기치 않게 연결이 끊어질 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;인터넷 상태가 양호하고 이 메시지가 계속 수신되는 경우 포스트 버퍼에 문제가 있을 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어 150 MiB로 늘리려면 다음 명령을 사용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;git config --global http.postBuffer 157286400
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;http&lt;a href=&quot;https://git-scm.com/docs/git-config#Documentation/git-config.txt-httppostBuffer&quot; rel=&quot;noreferrer&quot; title=&quot;Git - git-config 설명서&quot; papago-id=&quot;18-1&quot; papago-attr-id=&quot;2&quot;&gt;.postBuffer에 대한 git-config Documentation&lt;/a&gt;에 따르면:&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;원격 시스템에 데이터를 게시할 때 스마트 HTTP에서 사용하는 버퍼의 최대 크기(바이트)입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 버퍼 크기보다 큰 요청의 경우 HTTP/1.1 및 Transfer-Encoding: chunked를 사용하여 대용량 팩 파일을 로컬로 만들지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;기본값은 1 MiB로 대부분의 요청에 충분합니다.&lt;/font&gt;&lt;/p&gt; 
 &lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 제한을 높이는 것은 청크 전송 인코딩을 비활성화하는 경우에만 효과적이므로 원격 서버 또는 프록시가 HTTP/1.0만 지원하거나 HTTP 표준과 호환되지 않는 경우에만 사용해야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이를 높이는 것은 일반적으로 대부분의 푸시 문제에 효과적인 해결책은 아니지만, 작은 푸시에도 전체 버퍼가 할당되기 때문에 메모리 소비를 크게 증가시킬 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 이는 서버에 문제가 발생하는 경우를 완화하는 것에 불과합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이렇게 하면 GitHub이나 GitLab.com 에 푸시 문제가 해결되지 않을 가능성이 높습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저도 같은 문제가 있었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 20000개의 파일이 있는 레포를 가지고 있고, 전체 레포의 크기는 약 5GB이며, 일부 파일은 10MB입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;문제없이 Repo를 수행할 수 있었고 문제없이 복제할 수 있었습니다(시간이 좀 걸렸지만).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 매번 이 레포를 내 기계로 끌어당길 때마다&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;remote: Enumerating objects: 1359, done.
remote: Counting objects: 100% (1359/1359), done.
remote: Compressing objects: 100% (691/691), done.
remote: Total 1221 (delta 530), reused 1221 (delta 530), pack-reused 0
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;마침내 도움이 된 것은 이 &lt;a href=&quot;https://stackoverflow.com/questions/21277806/fatal-early-eof-fatal-index-pack-failed/22317479#22317479&quot; papago-id=&quot;23-1&quot;&gt;팁&lt;/a&gt;이었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용자 디렉토리로 이동하여 편집&lt;/font&gt;&lt;/font&gt;&lt;code&gt;.git/config&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;추가:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;[core] 
    packedGitLimit = 512m 
    packedGitWindowSize = 512m 
[pack] 
    deltaCacheSize = 2047m 
    packSizeLimit = 2047m 
    windowMemory = 2047m
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Voila. 더 이상의 오류는 없습니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위의 것들 중 어느 것도 나에게 통하지 않았습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;git config --global pack.window 1&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;git config --global http.version HTTP/1.1&lt;/code&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문제를 해결해 줬습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이전에 여러 개의 다른 github 저장소에서 대규모 커밋을 푸시할 수 없었습니다.&lt;/font&gt;&lt;/p&gt;&lt;h2 papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;연결, VPN, 안티바이러스, 방화벽&lt;/font&gt;&lt;/h2&gt; 
&lt;p papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가장 그럴듯한 이유.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;특히 깃이 최신 상태라면 업데이트할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가장 먼저 시도하는 것은 연결 &lt;strong papago-id=&quot;31-1&quot;&gt;상태를 확인&lt;/strong&gt;하고 &lt;strong papago-id=&quot;31-3&quot;&gt;안정적&lt;/strong&gt;인지 &lt;strong papago-id=&quot;31-1&quot;&gt;확인&lt;/strong&gt;하는 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저의 연결 &lt;strong papago-id=&quot;32-1&quot;&gt;상태&lt;/strong&gt;는 훌륭합니다 ===&amp;gt; &lt;strong papago-id=&quot;32-3&quot;&gt;잠시&lt;/strong&gt;만요 VPN을 &lt;strong papago-id=&quot;32-5&quot;&gt;사용&lt;/strong&gt;하고 계신가요?&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;=&amp;gt; &lt;strong papago-id=&quot;33-1&quot;&gt;비활성화&lt;/strong&gt;합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;33-3&quot;&gt;노력해보세요&lt;/strong&gt;. (VPN은 그런 문제의 큰 원인입니다.)&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;34&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아직도 안 되나요?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;==&amp;gt; 바이러스 &lt;strong papago-id=&quot;34-3&quot;&gt;백신&lt;/strong&gt;과 방화벽을 &lt;strong papago-id=&quot;34-1&quot;&gt;확인&lt;/strong&gt;합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;ul&gt; 
  &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;인터넷 마구간.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;/li&gt; 
  &lt;li papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;VPN VPN =&amp;gt; 대범&lt;/font&gt;&lt;/li&gt; 
  &lt;li papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;방화벽 및 바이러스 백신&lt;/font&gt;&lt;/li&gt; 
  &lt;li papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;최신식으로 익히다&lt;/font&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;작동하지 않는 경우 아래를 참조하십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;h2 papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;깃 캐시, 버퍼 및 메모리&lt;/font&gt;&lt;/h2&gt; 
&lt;p&gt;&lt;a href=&quot;https://stackoverflow.com/a/29355320/7668448&quot; papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://stackoverflow.com/a/29355320/7668448&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;git 글로벌 구성 열기:&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-bash prettyprint-override&quot;&gt;&lt;code&gt;git config --global -e
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음 항목을 추가합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;[core] 
packedGitLimit = 512m 
packedGitWindowSize = 512m 
[pack] 
deltaCacheSize = 2047m 
packSizeLimit = 2047m 
windowMemory = 2047m
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;44&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;복제를 다시 시도합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;45&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그게 안되면! =&amp;gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;46&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부분 페치(partial fetch) 방법을 시도하고 압축을 비활성화할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://stackoverflow.com/a/22317479/7668448&quot; papago-id=&quot;47&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://stackoverflow.com/a/22317479/7668448&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;48&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;한 번에 하나의 명령어&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-bash prettyprint-override&quot;&gt;&lt;code&gt;git config --global core.compression 0
git clone --depth 1 &amp;lt;repo_URI&amp;gt;
git fetch --unshallow 
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;49&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;자세한 내용은 링크에 나와 있습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;50&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;믿고 싶지 않았지만 3번의 클론 실패 후 와이파이 연결(Mac)에서 유선 연결(Linux)로 전환하여 처음으로 작동했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;왜 그런지 모르겠어요!&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://serverfault.com/questions/1056419/git-wsl2-ssh-unexpected-disconnect-while-reading-sideband-packet/1060187#1060187&quot; papago-id=&quot;51&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://serverfault.com/questions/1056419/git-wsl2-ssh-unexpected-disconnect-while-reading-sideband-packet/1060187#1060187&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p papago-id=&quot;52&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제 경우에는 초기 커밋을 추진할 때 크기가 100MB가 넘는 파일이 몇 개 있었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;GitHub에서는 이를 허용하지 않기 때문에 &quot;측면대역 패킷을 읽는 동안 예기치 않은 연결 끊김: 원격 끝이 예기치 않게 끊어졌습니다&quot;라는 오류가 나타납니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;53&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;gitm 사용으로는 부족해서 git in, git add, git commit, git push로 처음부터 다시 시작해야 문제가 해결할 수 있었습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;54&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;SSH URL을 사용하는 경우 다음을 시도할 수 있습니다. 두 번의 동일한 문제가 발생했을 때 효과가 있었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; URL로  HTTPS  URL:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;git remote set-url origin https://github.com/&amp;lt;your_repo&amp;gt;&lt;/code&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;56&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;밀어주세요.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;지금 실패하면 안 됩니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;SSH: SSH로 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;git remote set-url origin git@github.com:&amp;lt;your_repo&amp;gt;&lt;/code&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p papago-id=&quot;58&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그 문제의 원인이 무엇인지 아직 잘 모르겠습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 단지 해결책일 뿐입니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;59&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제 경우에는 새로운 레포에 대한 첫 번째 커밋에서 이 오류가 발생했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;60&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;나는 .git 폴더를 삭제한 다음 한 번에 몇 개의 파일을 추가하여 각각의 추가를 수행했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;61&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 같은 오류를 겪지 않고 모든 것을 다시 추가할 수 있었습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;62&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;윈도우용&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;set GIT_TRACE_PACKET=1
set GIT_TRACE=1
set GIT_CURL_VERBOSE=1

git init
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;63&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 필요한 프로젝트를 복제합니다. 나한테 효과가 있었습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;64&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위의 제안들을 시도해 보았지만 성공하지 못했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;65&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제 문제가 경로 길이였던 것으로 드러났습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;중첩된 디렉토리의 수(풍부한)인지 전체 경로 길이(경로 + 파일)인지 알 수 없습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;66&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;드라이브의 루트에서 복제했는데 작동했습니다(예, Windows 10).&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;67&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;업데이트: 분명히 하기 위해, 승인된 답변을 사용하여 드라이브의 루트에 복제해야 했습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;68&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위의 어떤 것도 작동하지 않았지만 OpenSSH에서 pink로 전환하는 것은 작동하지 않았습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;$env:GIT_SSH=&quot;C:\ProgramData\chocolatey\bin\PLINK.EXE&quot;&lt;/code&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;69&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내 설정은:&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;70&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;C:\windows\&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;시스템32\열림&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;SSH\ssh.exe(8.1.0.1)&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;71&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;C:\Program Files\Git\cmd\git.exe (2.37.3.1)&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;72&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Microsoft Windows [버전 10.0.19044.2604]&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;p papago-id=&quot;73&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;윈도우 11에서는 내장 오픈을 업그레이드하여 이 문제를 해결했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;C에 있는 SSH:&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;\Windows\&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;시스템32\OpenSSH 폴더.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;74&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;최신 바이너리를 다운로드 받을 &lt;a href=&quot;https://github.com/PowerShell/Win32-OpenSSH/releases&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;74-1&quot;&gt;수&lt;/a&gt; 있습니다: https://github.com/PowerShell/Win32-OpenSSH/releases&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;75&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문제를 해결하는 릴리스 노트에서 #2012를 참조하십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;v9.2.2.0p1-Beta Latest
This is a beta-release (non-production ready)

This release includes:

Security Fixes:

Upgrade to LibreSSL 3.7.2. Please refer to https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-3.7.2-relnotes.txt
MSI: change inbound firewall rule that opens port 22 to apply to Private networks only
Non-Security Fixes:

Add U2F/Fido2 keys to the agent from other clients: #1961 - thanks @ddrown!
Fix output codepage after executing scp/sftp/ssh/ssh-keygen command: #2027 - thanks @kemaruya!
Fix early EOF termination when running git fetch over ssh: #2012 - thanks @cwgreene!
Revert mark-of-the-web for SCP/SFTP file downloads: #2029
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;76&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;프로젝트를 ssh가 아닌 https로 보내주시는 것 같습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용해 봅니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;ssh://git@host:port/path/name.git
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;77&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.gitgonfig에서 SSL 검증이 켜져 있는지 확인합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;sslVerify = true
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;78&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;SSH 키가 없는 경우 생성하여 원격에 추가합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;비트버킷의 예는 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;ol&gt; 
  &lt;li&gt;&lt;a href=&quot;https://confluence.atlassian.com/bitbucketserver076/creating-ssh-keys-1026534841.html&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;79&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://confluence.atlassian.com/bitbucketserver076/creating-ssh-keys-1026534841.html&lt;/font&gt;&lt;/a&gt;&lt;/li&gt; 
  &lt;li&gt;&lt;a href=&quot;https://confluence.atlassian.com/bitbucketserver076/ssh-user-keys-for-personal-use-1026534846.html&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;80&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://confluence.atlassian.com/bitbucketserver076/ssh-user-keys-for-personal-use-1026534846.html&lt;/font&gt;&lt;/a&gt;&lt;/li&gt; 
 &lt;/ol&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;81&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;연결 중 키 수락&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 할     도 하지   에서 하지    도           에서   할      &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;git fetch --unshallow&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;를 수정하기  실행했습니다.  하기  를 로   는   로   는   를    하기      &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;git gui&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;UI 버전을 Windows에서 불러옵니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그다음에 선택했습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 오류 없이 완성되었고, 그리고 나서 나는 그것을 할 수 있었습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;git fetch --unshallow&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;압박을 가하든지 하지 않든지&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;87&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위의 모든 것을 시도해 보았지만 아무 것도 되지 않았습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;88&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서 윈도우 11에서 Github Desktop(관리자로 열림)을 사용하여 새로운 저장소를 만들었고, 정상적인 파일 탐색기 작업을 통해 결함이 있는 저장소의 모든 파일을 새 저장소로 복사했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 여전히 Github 데스크톱 앱을 사용하여 Github(원격)에 새로운 변경 사항을 적용했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 VScode에서 로컬 레포를 열었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 지금 새로운 레포를 사용하고 있고 모든 것이 괜찮습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;편집 후 성공적으로 푸시할 수 있게 되었습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;89&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https 프로토콜을 통해 비트를 전송하는 문제입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;대신 ssh를 사용하도록 git를 구성할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;먼저 워크스테이션에 ssh-key를 만든 다음, 암호 없이 컴퓨터를 인증하기 위해 Github에 해당 키를 복사합니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 사용하도록 깃을 구성합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ssh&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;https&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;h5 papago-id=&quot;93&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ssh키 생성&lt;/font&gt;&lt;/h5&gt; 
&lt;p papago-id=&quot;94&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기서 Github의 훌륭한 &lt;a href=&quot;https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;94-1&quot;&gt;지침&lt;/a&gt;을 반복할 필요가 없습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;h5 papago-id=&quot;95&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;심플한 방법&lt;/font&gt;&lt;/h5&gt; 
&lt;p papago-id=&quot;96&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;clone 명령에 git 프로토콜 사용:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;git clone git@github.com:repo-name
&lt;/code&gt;&lt;/pre&gt; 
&lt;h5 papago-id=&quot;97&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일반 방법: https 대신 ssh(git) 프로토콜을 사용하도록 git 구성&lt;/font&gt;&lt;/h5&gt; 
&lt;p papago-id=&quot;98&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 옵션은 GitHub Desktop을 사용하고 있고 클론 URL을 직접 제어하지 않는 경우에 좋습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;git config --global url.&quot;git@github.com:&quot;.insteadOf &quot;https://github.com/&quot;   
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;99&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Github 엔터프라이즈의 경우 퍼블릭 Github보다는 귀하의 인스턴스를 위한 현지 번역을 만드십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;100&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 후에는 이 오류 없이 복제할 수 있어야 합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;101&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;알 수 없는 이유로 인해 이전에 홈브루 설치 시도가 실패했습니다...&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이제 다음 명령을 사용하여 제거해야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;102&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;/bin/fsl -c &quot;$(fsl https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh) )&quot;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;103&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 다음을 사용하여 다시 설치합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;104&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;/bin/fsl -c &quot;$(fsl https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh) )&quot;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;105&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오늘 갑자기 이런 문제가 생겼어요. 그 전날에도 똑같은 레포가 문제없이 작동했어요.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account&quot; papago-id=&quot;105-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;Github&lt;/a&gt; 문서에 나와 &lt;a href=&quot;https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account&quot; papago-id=&quot;105-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;있는&lt;/a&gt; 것처럼 Github 구성 패널에서 SSH 키를 삭제하고 다시 추가하여 해결했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;SSH 키를 새로 만들 필요가 없었습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;106&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Vscode의 git GUI에서 푸시해 보십시오.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것은 나에게 효과가 있었다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;107&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 라우터를 빨리 재부팅하면 문제가 해결되었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다른 구성 변경은 필요하지 않았지만 상황은 다를 수 있습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;108&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 비슷한 문제에 직면하여 리모트 url을 SSH url로 설정하여 해결하였습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;git remote set-url origin &amp;lt;SSH URL&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;109&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제 레포는 처음에 SSH로 복제되었다가 HTTPS로 변경되어 문제가 생겼습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서 리모트 오리진을 SSH로 다시 설정했고 정상적으로 작동하기 시작합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;110&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/a/69891948&quot; papago-id=&quot;110-1&quot;&gt;이전&lt;/a&gt; 솔루션에 &lt;a href=&quot;https://stackoverflow.com/a/69891948&quot; papago-id=&quot;110-1&quot;&gt;추가&lt;/a&gt;하여 이 문제를 해결한 것은 언급된 구성 값 외에 네트워크에서 점보 프레임을 비활성화하는 것이었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;111&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문제가 내 ISP인지 로컬(또는 심지어 Github)인지는 모르겠지만, 이 글을 읽는 사람에게 시도하는 것은 나쁘지 않습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;112&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Windows(윈도우) 환경에서 자격 증명 관리자 경로가 결과를 가져오지 않은 경우 저장소의 로컬 복사본에 문제가 있을 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;113&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일부 유지관리를 실행해야 할 수도 있습니다. &lt;strong papago-id=&quot;113-1&quot;&gt;다음 명령어 집합도 내용을 제거하고 되돌릴&lt;/strong&gt; 수 &lt;strong papago-id=&quot;113-1&quot;&gt;없도록 주의&lt;/strong&gt;해야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-bash prettyprint-override&quot;&gt;&lt;code&gt;git fetch --prune   // align local state
git branch -vv | grep -i 'gone' | awk '{print $1}' | xargs git branch -D // Delete branches marked as gone by the remote server
git fsck --full // verifies the connectivity and validity of the objects in the database
git reflog expire --expire=now --all // manage reflog information
git repack -a -d -l // pack unpacked objects in the repository
git gc --prune=now --aggressive // cleanup unnecessary files and optimize the local repository
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;114&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;댓글은 의도적으로 복사 붙여넣기 방식으로 사용자가 읽고 계속할지 결정할 수 있는 시간을 제공합니다.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;115&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이렇게 하면 원격 복사, dangling commit 및 기타 죽은 것에 의해 삭제된 것으로 표시된 로컬 분기가 모두가 제거됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;116&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;로컬 복사본을 정리한 후 이전에 실패한 작업을 다시 시도할 수 있습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;117&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위의 모든 옵션들이 저에게 그 문제를 해결해 주지 못했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;몇몇 사람들이 도움을 주고 초기 한계를 넘겼지만, 여전히 중간에 멈춰 있는 것을 발견했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;118&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문제는 커밋 기록에서 100mb 표시를 초과한 일부 대용량 파일로 인해 저장소를 가져올 수/클론/풀할 수 없다는 것이었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 느린 인터넷으로 인해 문제를 온라인으로 푸시하기 전에 로컬에서 문제를 해결하기 위해 커밋한 기록이 남아 있는 나쁜 저장소를 가져올 수 없었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;119&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문제가 네트워크/인터넷 문제라고 지적한 일부 의견을 토대로 SSH 구성에 초점을 맞추고 문제 해결에 도움이 되는지 성능을 개선하기로 했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;119-1&quot;&gt;그리고 비올라!!!&lt;/strong&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;119-1&quot;&gt; 문제&lt;/strong&gt; 해결.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;나는 여전히 이전 제안의 일부 구성, 특히 .git/config 캐시 설정과 관련된 구성을 유지했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;[core] 
  packedGitLimit = 512m 
  packedGitWindowSize = 512m 
[pack] 
  deltaCacheSize = 2047m 
  packSizeLimit = 2047m 
  windowMemory = 2047m
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;120&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;SSH confiation &lt;em papago-id=&quot;120-1&quot;&gt;.ssh/config&lt;/em&gt;로 업데이트한 방법은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;121&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Git 다운로드 속도를 향상시키기 위해 SSH 클라이언트 구성을 수정하여 SSH 연결을 최적화할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음은 고려할 수 있는 몇 가지 구성 옵션입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;122&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더 빠른 SSH 알고리즘 사용: 기본적으로 OpenSSH는 SSH 연결에 대해 ssh-rsa 알고리즘의 우선 순위를 지정합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 일반적으로 ecdsa-sha2-nistp256 알고리즘이 더 빠릅니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;~/.ssh/config 파일에 다음 행을 추가하여 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Host *
  HostKeyAlgorithms ecdsa-sha2-nistp256,ssh-rsa
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;123&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;연결 다중화 사용: SSH 연결 다중화를 사용하면 기존 SSH 연결을 재사용할 수 있으므로 새로운 연결을 설정하는 데 드는 오버헤드를 크게 줄일 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;연결 다중화를 사용하려면 ~/.ssh/config 파일에 다음 행을 추가합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;
Host *
  ControlMaster auto
  ControlPath ~/.ssh/control:%h:%p:%r
  ControlPersist yes

&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;124&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;SSH 연결 시간 초과 증가:&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;네트워크 속도가 느리거나 불안정한 경우 SSH 연결 시간 초과를 늘리면 조기 연결 종료를 방지할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;~/.ssh/config 파일에 다음 행을 추가하여 시간 초과를 60초로 늘립니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Host *
  ServerAliveInterval 60
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;125&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더 빠른 암호 사용:&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;보다 빠른 암호 알고리즘을 사용하여 SSH 성능을 향상시킬 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 선택한 암호를 지원하려면 원격 SSH 서버가 필요할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어 aes128-gcm@openssh.com 암호를 사용하려면 ~/.cyclus/config 파일에 다음 행을 추가합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Host *
  Ciphers aes128-gcm@openssh.com
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;126&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;SSH 클라이언트 구성을 변경한 후 파일을 저장하고 Git을 다시 사용하여 다운로드 속도가 향상되었는지 확인합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;127&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;모든 것을 평가한 후 이를 조합하여 .ssh/config 파일 끝에 입력했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Host *
  HostKeyAlgorithms ecdsa-sha2-nistp256,ssh-rsa
  ControlMaster auto
  ControlPath ~/.ssh/control:%h:%p:%r
  ControlPersist yes
  ServerAliveInterval 60
  Ciphers aes128-gcm@openssh.com
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;128&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;SSH 구성 옵션을 수정할 때는 주의를 기울이고 보안에 유의해야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;일부 옵션의 경우 원격 SSH 서버 및 해당 구성과 호환성이 필요할 수 있습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;129&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위의 많은 제안들을 시도해 보았지만, 아무 것도 효과가 없었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;드디어 git 클라이언트를 2.37에서 2.41로 업그레이드해서 문제가 사라졌습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;130&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;참고로, &quot;연결이 중단되었습니다&quot;라는 무작위 메시지가 계속 나와서 PC에 문제가 있는 것 같은데, 이는 또 다른 이야기입니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;131&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/66366582/github-unexpected-disconnect-while-reading-sideband-packet&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/593</guid>
      <comments>https://kingscode.tistory.com/593#entry593comment</comments>
      <pubDate>Mon, 18 Sep 2023 23:08:46 +0900</pubDate>
    </item>
    <item>
      <title>목록 항목 총알이 부동 요소와 겹치는 이유</title>
      <link>https://kingscode.tistory.com/592</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;목록 항목 총알이 부동 요소와 겹치는 이유&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일반 텍스트 단락과 함께 이미지를 띄우는 (XHTML Strict) 페이지가 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;단락 대신 목록을 사용하는 경우를 제외하고는 모든 것이 잘 진행됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;목록의 총알이 플로팅된 이미지와 겹칩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;목록 또는 목록 항목의 여백을 변경해도 도움이 되지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;여백은 페이지의 왼쪽에서 계산되지만 플로트는 목록 항목을 안쪽의 &lt;em papago-id=&quot;2-1&quot;&gt;오른쪽&lt;/em&gt;으로 밀어냅니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;li&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;◦ &lt;font class=&quot;papago-parent&quot;&gt;자체.&lt;/font&gt; 그래서 &lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;더 &lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서 여백은 이미지보다 더 넓게 만들어야 도움이 됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이미지 옆에 목록을 띄우는 것도 효과가 있지만 언제 목록이 띄우기 옆에 있는지는 모릅니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이것을 고치기 위해 제 컨텐츠의 모든 목록을 띄우고 싶지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 왼쪽으로 이동하면 이미지가 목록의 왼쪽이 아닌 &lt;em papago-id=&quot;4-1&quot;&gt;오른쪽으로 이동&lt;/em&gt;하면 레이아웃이 엉망이 됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;설정 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;li { list-style-position: inside }&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;는 내용물과 함께 탄환을 이동시키지만, 위의 선에 정렬하는 대신 탄환에 정렬되는 줄이 시작되도록 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문제는 분명히 총알이 상자 밖에서 렌더링되고, 플로트가 상자의 내용물을 오른쪽으로 밀어 넣으면서 발생합니다(상자 자체가 아니라).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;IE와 FF는 이렇게 상황을 처리하며, 제가 알기로는 스펙상 틀린 것은 아닙니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;문제는 어떻게 하면 예방할 수 있을까 하는 것입니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이 문제에 대한 해결책을 찾았습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하기를 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ul { overflow: hidden; }&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ul&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;는 상자의 내용물 대신 상자 자체가 플로트에 의해 옆으로 밀려나도록 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; IE6 합니다가 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ul { zoom: 1; }&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;우리의 조건부 의견들에서 그것을 확실히 하기 위해.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ul&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;레이아웃이 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/a/2344795/901048&quot; papago-id=&quot;14-1&quot;&gt;Glen &lt;/a&gt;E에 &lt;a href=&quot;https://stackoverflow.com/a/2344795/901048&quot; papago-id=&quot;14-1&quot;&gt;개선&lt;/a&gt; 사항 추가.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/a/2344795/901048&quot; papago-id=&quot;14-1&quot;&gt; Ivey의 해결책&lt;/a&gt;:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;ul {
    list-style: outside disc;
    margin-left: 1em;
}
ul li {
    position: relative;
    left: 1em;
    padding-right: 1em;    
}​
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;a href=&quot;http://jsfiddle.net/mblase75/TJELt/&quot; rel=&quot;noreferrer&quot; papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;http://jsfiddle.net/mblase75/TJELt/&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이 기술을 선호합니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 왜냐하면 목록이 플로팅 이미지를 중심으로 흘러야 할 때 작동하는 반면,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;overflow: hidden&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기술은 안 됩니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;나,한,가도 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;padding-right: 1em&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;li&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그들의 용기가 넘쳐나는 것을 막기 위해서입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기서 &quot;디스플레이&quot; 속성이 고유하게 나타납니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;아래 CSS를 설정하여 목록이 플로팅된 내용과 함께 작동하도록 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;display: table; floated content와 함께 작동하지만(틈새를 막음) 그 뒤에 내용을 숨기지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;테이블이 하는 것처럼 :-)&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;snippet&quot; data-lang=&quot;js&quot; data-hide=&quot;false&quot; data-console=&quot;true&quot; data-babel=&quot;false&quot;&gt; 
 &lt;div class=&quot;snippet-code&quot;&gt; 
  &lt;pre class=&quot;snippet-code-css lang-css prettyprint-override&quot;&gt;&lt;code&gt;.img {
  float: left;
}

.table {
  display: table;
}&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-html lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;img class=&quot;img&quot; src=&quot;https://via.placeholder.com/350x350&quot; alt=&quot;&quot;&amp;gt;
&amp;lt;ul&amp;gt;
  &amp;lt;li&amp;gt;Test content&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Test content&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Test content&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;
&amp;lt;ul class=&quot;table&quot;&amp;gt;
  &amp;lt;li&amp;gt;Test content&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Test content&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;Test content&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;편집: &quot;ul.in -content&quot; 또는 일반적으로 &quot;contentul&quot;과 같은 목록을 분리할 클래스를 추가해야 합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;목록 &lt;a href=&quot;http://www.w3schools.com/CSS/pr_list-style-position.asp&quot; papago-id=&quot;23-1&quot; rel=&quot;noreferrer&quot;&gt;스타일&lt;/a&gt;의 위치: inside를 시도하여 총알의 레이아웃을 &lt;a href=&quot;http://www.w3schools.com/CSS/pr_list-style-position.asp&quot; papago-id=&quot;23-1&quot; rel=&quot;noreferrer&quot;&gt;변경&lt;/a&gt;합니다.&lt;/font&gt;&lt;/p&gt;&lt;h1&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;overflow: hidden&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;작동하다&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/h1&gt; 
&lt;p papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;솔루션은 다음과 같이 간단합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;ul {overflow: hidden;}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;    블록박스.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;overflow:&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;visible&lt;/code&gt; &lt;font papago-translate=&quot;translated&quot; papago-id=&quot;29&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내용에 대한 &lt;strong papago-id=&quot;29-0&quot;&gt;새로운&lt;/strong&gt; 블록 &lt;strong papago-id=&quot;29-0&quot;&gt;형식&lt;/strong&gt; 지정 &lt;strong papago-id=&quot;29-0&quot;&gt;컨텍스트&lt;/strong&gt;를 설정합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;W3C 권장 사항: http://www.w3.org/TR/CSS2/visuren.html#block-formatting&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;h2 papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예&lt;/font&gt;&lt;/h2&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;31&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://hamwaves.com/solar.wind/en/index.html&quot; papago-id=&quot;31-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;내&lt;/a&gt; 웹사이트에 &lt;a href=&quot;https://hamwaves.com/solar.wind/en/index.html&quot; papago-id=&quot;31-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;있는&lt;/a&gt; 버튼들은&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;32&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;변장을 하면 이렇게 만들어집니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;브라우저의 뷰포트(창)를 작게 만들어 &lt;a href=&quot;https://hamwaves.com/solar.wind/en/index.html&quot; papago-id=&quot;32-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;들여쓰기를 실행 중&lt;/a&gt;으로 볼 수 &lt;a href=&quot;https://hamwaves.com/solar.wind/en/index.html&quot; papago-id=&quot;32-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;있습니다&lt;/a&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;img src=&quot;https://i.stack.imgur.com/UpqPa.png&quot; alt=&quot;My website as an example&quot;&gt;&lt;/p&gt; 
&lt;h2 papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;관련답변&lt;/font&gt;&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://stackoverflow.com/a/710264/2192488&quot; papago-id=&quot;34&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://stackoverflow.com/a/710264/2192488&lt;/font&gt;&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://stackoverflow.com/a/16041390/2192488&quot; papago-id=&quot;35&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://stackoverflow.com/a/16041390/2192488&lt;/font&gt;&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2 papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예문이 있는 기사&lt;/font&gt;&lt;/h2&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;http://www.stubbornella.org/content/2009/07/23/overflow-a-secret-benefit/&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오버플로 – 은밀한 이점&lt;/font&gt;&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;p papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;http://archivist.incutio.com/viewlist/css-discuss/106382&lt;a href=&quot;http://archivist.incutio.com/viewlist/css-discuss/106382&quot; rel=&quot;noreferrer&quot; papago-id=&quot;38-1&quot;&gt; &lt;/a&gt;에서 저는 'li' 요소를 다음과 같이 스타일화해야 한다는 저에게 효과적인 제안을 발견했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;position: relative;
left: 1em;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;플로트가 없을 경우 목록 항목이 가질 수 있는 왼쪽 패딩/마진의 폭으로 &quot;1em&quot;을 대체할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 심지어 목록의 중앙에서 플로트 바닥이 발생하는 경우에도 적용할 수 있습니다. 총알이 (지역) 왼쪽 여백으로 다시 이동하는 경우도 처리할 수 있습니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;를 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;overflow: auto;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에게에&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ul&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;적어도 저한테는 통합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;갱신하다&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;44&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;무슨 일이 일어나고 있는지 시각화하기 위해 &lt;a href=&quot;http://jsfiddle.net/1jgfkh6c/&quot; papago-id=&quot;44-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;jspiddle을 업데이트&lt;/a&gt;했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;가지고 있을 때.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ul&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;e &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;img&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, 의   의 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ul&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;27&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;플로트에 의해 밀리지만 실제 컨테이너는 밀리지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;를 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;overflow: auto&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;으로 전체&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ul&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;29&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;-박스는 내용물만이 아닌 플로트에 의해 푸시됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;30&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 할당할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;position: relative; left: 10px;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;31&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;li&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;32&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(으로 a를 할 수 . (으로 은 을       은  을    으로  )&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;margin-right: 10px;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;33&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 수    이           )&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;34&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아니면, 사용하고 싶은 경우&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;float&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;35&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;을 위하여&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ul&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;36&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;처럼 -- 는 --한럼이을은도는을다의을 UL수을을다수-sgtefypd-yegnlumyts을는을른 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;clear: left&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;37&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;UL 뒤에 오는 요소에.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;h3 papago-id=&quot;58&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부인&lt;/font&gt;&lt;/h3&gt; 
&lt;p papago-id=&quot;59&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;플로팅된 요소 옆의 목록은 문제를 야기합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이러한 부동의 문제를 방지하는 가장 좋은 방법은 콘텐츠와 교차하는 부동의 이미지를 피하는 것이라고 생각합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;반응형 디자인을 지원해야 할 때도 도움이 됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;38&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;단락 사이에 중심 이미지를 갖는 단순한 디자인은 매우 매력적으로 보이고 너무 화려해지려고 하는 것보다 훨씬 지원하기 쉬울 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것은 또한 한 발짝 떨어져 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;figure&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;39&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;h2 papago-id=&quot;62&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 저는 정말 떠있는 이미지를 원해요!&lt;/font&gt;&lt;/h2&gt; 
&lt;p papago-id=&quot;63&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;좋아요, 당신이 이 길을 계속 갈 만큼 &lt;s papago-id=&quot;63-1&quot;&gt;정신없이&lt;/s&gt; 고집을 부린다면, 몇 가지 기술을 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;40&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가장 간단한 것은 목록을 사용하는 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;overflow: hidden&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;41&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아니면&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;overflow: scroll&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;42&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;목록을 기본적으로 축소 래핑하여 패딩을 유용한 위치로 되돌리도록 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;snippet&quot; data-lang=&quot;js&quot; data-hide=&quot;false&quot;&gt; 
 &lt;div class=&quot;snippet-code&quot;&gt; 
  &lt;pre class=&quot;snippet-code-css lang-css prettyprint-override&quot;&gt;&lt;code&gt;img {
  float: left;
}
.wrapping-list {
  overflow: hidden;
  padding-left: 40px;
}&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-html lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;img src=&quot;http://placehold.it/100x100&quot;/&amp;gt;
&amp;lt;ul class=&quot;wrapping-list&quot;&amp;gt;
  &amp;lt;li&amp;gt;lorem&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;ipsum&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;dolor&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;sit&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;amet&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;43&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 이 기술은 몇 가지 문제점이 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에 Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ ΔΔ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ, Δ &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;float&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;44&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이미지상으로&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;snippet&quot; data-lang=&quot;js&quot; data-hide=&quot;false&quot;&gt; 
 &lt;div class=&quot;snippet-code&quot;&gt; 
  &lt;pre class=&quot;snippet-code-css lang-css prettyprint-override&quot;&gt;&lt;code&gt;img {
  float: left;
}
.wrapping-list {
  overflow: hidden;
  padding-left: 40px;
}&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-html lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;img src=&quot;http://placehold.it/100x100&quot;/&amp;gt;
&amp;lt;ul class=&quot;wrapping-list&quot;&amp;gt;
  &amp;lt;li&amp;gt;lorem&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;ipsum&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;dolor&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;sit&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;amet&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;lorem&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;ipsum&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;dolor&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;sit&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;amet&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;lorem&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;ipsum&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;dolor&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;sit&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;amet&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;h2 papago-id=&quot;69&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 나는 포장 목록이 너무 갖고 싶어요!&lt;/font&gt;&lt;/h2&gt; 
&lt;p papago-id=&quot;70&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;좋아요, 만약 당신이 &lt;s papago-id=&quot;70-1&quot;&gt;더욱&lt;/s&gt; 더 정신이 이상해서 이 길을 계속 가야 &lt;strong papago-id=&quot;70-3&quot;&gt;한다면&lt;/strong&gt; 목록 항목을 포장하고 총알을 유지하는 데 사용할 수 있는 다른 기술이 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;45&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;을 에 에를 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;46&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 총알로 멋지게 행동하게 하려고 노력하고 있습니다. (절대 하고 싶지 않은 것처럼 보입니다.) 그 총알들을 가져갑니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;47&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 그들을 그들에게 줍니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;48&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하고, s. 은, &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;49&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그들을 제대로 다룰 만큼 책임감이 부족할 뿐이죠&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;snippet&quot; data-lang=&quot;js&quot; data-hide=&quot;false&quot;&gt; 
 &lt;div class=&quot;snippet-code&quot;&gt; 
  &lt;pre class=&quot;snippet-code-css lang-css prettyprint-override&quot;&gt;&lt;code&gt;img {
  float: left;
}
.wrapping-list {
  padding: 0;
  list-style-position: inside;
}
.wrapping-list li {
  overflow: hidden;
  padding-left: 25px;
}&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-html lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;img src=&quot;http://placehold.it/100x100&quot;/&amp;gt;
&amp;lt;ul class=&quot;wrapping-list&quot;&amp;gt;
  &amp;lt;li&amp;gt;lorem&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;ipsum&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;dolor&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;sit&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;amet&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;lorem&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;ipsum&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;dolor&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;sit&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;amet&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;lorem&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;ipsum&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;dolor&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;sit&amp;lt;/li&amp;gt;
  &amp;lt;li&amp;gt;amet&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;76&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이러한 래핑 동작은 복잡한 내용에 이상한 영향을 줄 수 있으므로 기본적으로 추가하는 것은 권장하지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;무시해야 하는 것보다는 선택할 수 있는 것으로 설정하는 것이 훨씬 쉽습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;77&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이 문제를 해결하기 위해 이것을 사용하고 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;ul {
   display: table;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;50&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;UL 태그에 다음을 시도해 보십시오.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이렇게 하면 이미지에 겹쳐지는 총알을 처리할 수 있고 다음으로 인해 발생하는 왼쪽 정렬을 엉망으로 만들 필요가 없습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;list-position: inside&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;51&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;overflow: hidden; 
padding-left: 2em; 
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;80&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;나도 이 일 때문에 고생했어요.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;최선의 방법은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-css prettyprint-override&quot;&gt;&lt;code&gt;ul {
    list-style-position: inside;
    padding-left: 1em;
    text-indent: -1em;
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;81&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;글은 실제로 들여놓은 것이 아니라 총알이 보여요.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;82&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여러 프로젝트에서 이 흥미로운 문제를 해결하고, 왜 이런 일이 일어나는지 조사한 결과, &lt;strong papago-id=&quot;82-1&quot;&gt;효과적인 &lt;/strong&gt;해결책과 &lt;strong papago-id=&quot;82-1&quot;&gt;'반응형&lt;/strong&gt;' 해결책을 모두 찾았다고 생각합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;83&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음은 마술입니다. &lt;a href=&quot;http://jsfiddle.net/superKalo/phabbtnx/&quot; papago-id=&quot;83-1&quot; rel=&quot;nofollow&quot;&gt;라이브&lt;/a&gt; 예시&lt;a href=&quot;http://jsfiddle.net/superKalo/phabbtnx/&quot; papago-id=&quot;83-1&quot; rel=&quot;nofollow&quot;&gt;:&lt;/a&gt; http://jsfiddle.net/superKalo/phabbtnx/&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;ul {
    list-style: none;
    position: relative;
    padding-left: 0; /* remove any left padding */
    margin-left: 0; /* remove any left margin */
    left: 35px;
}
li {
    padding-left: 0; /* remove any left padding */
    margin-left: 0; /* remove any left margin */
    text-indent: -19px; /* adjust as much as needed */
}
li:before {
    content: '•\00a0\00a0\00a0';
    color: #000; /* bonus: you can customize the bullet color */
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;84&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;OP의 코멘트를 바탕으로 업데이트하도록 편집됨&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;85&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;좋아요, 그럼 그냥 2개의 디브로 나누면 돼요&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;ul  {background: blue; position:static;}
.therest {position:relative; width:100%}
.indent {float:left; }

&amp;lt;div class=&quot;therest&quot;&amp;gt;
&amp;lt;p&amp;gt;
Est tincidunt doming iis nobis nibh. Ullamcorper eorum elit lius me delenit. 
&amp;lt;/p&amp;gt;
&amp;lt;hr /&amp;gt;
&amp;lt;h3&amp;gt;Lorem&amp;lt;/h3&amp;gt;
&amp;lt;div class=&quot;indent&quot;&amp;gt;
&amp;lt;ul&amp;gt;
&amp;lt;li&amp;gt;list element&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;list element&amp;lt;/li&amp;gt;
&amp;lt;li&amp;gt;list element&amp;lt;/li&amp;gt;
&amp;lt;/ul&amp;gt; 
&amp;lt;div&amp;gt;
the rest now under the UL
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;86&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;을 바꿔 보다&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;87&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ul {lot:left; 배경: 파란색; }&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;52&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문서 책임자에 대한 접근 없이 LMS 내부에서 작업을 수행함으로써 작업을 보다 쉽게 수행할 수 있음을 발견했습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;margin-right: 20px&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;53&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이미지의 인라인 스타일로.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://www.velocityreviews.com/forums/t164786-bullets-overlapping-image-aligned-to-left.html&quot; rel=&quot;nofollow&quot; papago-id=&quot;53-1&quot;&gt;내&lt;/a&gt;가 이 사이트에 빚진 거지&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;90&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;시도해 보십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;li{
    margin-left:5px;
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;91&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;왼쪽으로 이동하려면 -##px 값만 입력하면 됩니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;92&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아니면 당신이 할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt; #content ul {
        background:none repeat scroll 0 0 #AACCDD;
        float:left;
        margin-right:10px;
        padding:10px;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;93&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;리에서 모든 스타일링을 제거합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;94&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이건 어때?&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;ul{float:left; clear:right}
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;width: 300px;
height: 30px;
margin-left: auto;
right: 10px;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;95&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;margin-left: auto는 요소 자체를 오른쪽 정렬 상태로 만듭니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;원하는 요소의 높이와 너비 설정 - 내 안에 디브 안에 배경 이미지가 있습니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;54&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 또한 물을 띄우는 것을 시도할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ul&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;55&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;으로,고한을다n을고한o로,ed&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;width&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;56&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이미지 옆에 뜰 수 있게 해줍니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;99&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 &lt;a href=&quot;http://jsfiddle.net/CEWsT/2/&quot; rel=&quot;nofollow&quot; papago-id=&quot;99-1&quot;&gt;jsfiddle같은거&lt;/a&gt;?&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;100&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;로 고쳤습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;div.class-name ul {
  clear: both;
}
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;width: auto; overflow: hidden;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;57&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더하다&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;display:table;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;58&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ul&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;59&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;ul{display:table;}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;104&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/710158/why-do-my-list-item-bullets-overlap-floating-elements&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/592</guid>
      <comments>https://kingscode.tistory.com/592#entry592comment</comments>
      <pubDate>Mon, 18 Sep 2023 23:07:43 +0900</pubDate>
    </item>
    <item>
      <title>pdo가 와일드카드로 준비한 문</title>
      <link>https://kingscode.tistory.com/591</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;pdo가 와일드카드로 준비한 문&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 mysql 쿼리를 실행하고자 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT * FROM `gc_users` WHERE `name` LIKE '%anyname%'
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;나는 이것을 시도했지만 성공하지 못했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$stmt = $dbh-&amp;gt;prepare(&quot;SELECT * FROM `gc_users` WHERE `name` LIKE :name&quot;);
$stmt-&amp;gt;bindParam(':name', &quot;%&quot; . $name . &quot;%&quot;);
$stmt-&amp;gt;execute();

$stmt = $dbh-&amp;gt;prepare(&quot;SELECT * FROM `gc_users` WHERE `name` LIKE '%:name%'&quot;);
$stmt-&amp;gt;bindParam(':name', $name);
$stmt-&amp;gt;execute();
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서 준비된 문장과 함께 % 와일드카드 사용이 가능한지 문의드립니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;/편집&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;감사해요.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;와 통합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;bindValue&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$stmt = $dbh-&amp;gt;prepare(&quot;SELECT * FROM `gc_users` WHERE `name` LIKE :name&quot;);
$stmt-&amp;gt;bindValue(':name', '%' . $name . '%');
$stmt-&amp;gt;execute();
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;bind param에서도 다음과 같은 방식으로 작동할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$name = &quot;%$name%&quot;;
$query = $dbh-&amp;gt;prepare(&quot;SELECT * FROM `gc_users` WHERE `name` like :name&quot;);
$query-&amp;gt;bindParam(':name', $name);
$query-&amp;gt;execute();
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것이 대안이 될 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$className = '%' . $this-&amp;gt;className . '%';
$query-&amp;gt;bind_param('s', $className);
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/16255657/pdo-prepared-statements-with-wildcards&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/591</guid>
      <comments>https://kingscode.tistory.com/591#entry591comment</comments>
      <pubDate>Mon, 18 Sep 2023 23:03:32 +0900</pubDate>
    </item>
    <item>
      <title>AJAX를 통해 비디오를 읽은 후 blob을</title>
      <link>https://kingscode.tistory.com/590</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;AJAX를 통해 비디오를 읽은 후 blob을&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;IndexedDB에서 Chrome unsupport blobs에 대한 해결책을 작성하는 동안 AJAX를 통해 어레이 버퍼로 이미지를 읽고 IndexedDB에 저장하여 추출한 후 blob으로 변환한 후 다음 코드를 사용하여 요소에 표시할 수 있음을 발견했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;var xhr = new XMLHttpRequest(),newphoto;
xhr.open(&quot;GET&quot;, &quot;photo1.jpg&quot;, true);    
xhr.responseType = &quot;arraybuffer&quot;;
xhr.addEventListener(&quot;load&quot;, function () {
    if (xhr.status === 200) {
        newphoto = xhr.response;
        /* store &quot;newphoto&quot; in IndexedDB */
        ...
    }
}

document.getElementById(&quot;show_image&quot;).onclick=function() {
    var store = db.transaction(&quot;files&quot;, &quot;readonly&quot;).objectStore(&quot;files&quot;).get(&quot;image1&quot;);
    store.onsuccess = function() {
        var URL = window.URL || window.webkitURL;
        var oMyBlob = new Blob([store.result.image], { &quot;type&quot; : &quot;image\/jpg&quot; });
        var docURL = URL.createObjectURL(oMyBlob);
        var elImage = document.getElementById(&quot;photo&quot;);
        elImage.setAttribute(&quot;src&quot;, docURL);
        URL.revokeObjectURL(docURL);
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 코드는 잘 작동합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 같은 프로세스를 시도했지만 이번에는 비디오(.mp4)를 로드하면 표시할 수 없습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;...    
var oMyBlob = new Blob([store.result.image], { &quot;type&quot; : &quot;video\/mp4&quot; });
var docURL = URL.createObjectURL(oMyBlob);
var elVideo = document.getElementById(&quot;showvideo&quot;);
elVideo.setAttribute(&quot;src&quot;, docURL);
...
&amp;lt;video id=&quot;showvideo&quot; controls &amp;gt;&amp;lt;/video&amp;gt;
...
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;xhr.responseType = &quot;blob&quot;을 사용하고 IndexedDB에 blob을 저장하지 않고 로딩 후 바로 보여주려 해도 여전히 작동하지 않습니다!&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;xhr.responseType = &quot;blob&quot;;
xhr.addEventListener(&quot;load&quot;, function () {
    if (xhr.status === 200) {
        newvideo = xhr.response;
        var docURL = URL.createObjectURL(newvideo);
        var elVideo = document.getElementById(&quot;showvideo&quot;);
        elVideo.setAttribute(&quot;src&quot;, docURL);
        URL.revokeObjectURL(docURL);
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그 다음 단계는 PDF 파일에 대해서도 동일한 작업을 시도하는 것이었지만 비디오 파일이 막힙니다!&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;em papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이는 질문이 &quot;답변되지 않은&quot; 질문에 계속 표시되는 것을 방지하기 위한 보충 답변입니다(의견에서 확인된 OP를 통해 해결됨).&lt;/font&gt;&lt;/em&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://stackoverflow.com/questions/17012313/show-video-blob-after-reading-it-through-ajax#comment24589118_17012313&quot; papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;작성자로부터:&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;네, recreafeObject를 실행하기 전에 비디오/이미지가 로드될 때까지 기다리는 이벤트를 추가하여 문제를 해결했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL 메서드:&lt;/font&gt;&lt;/p&gt; 
 &lt;pre&gt;&lt;code&gt;var elImage = document.getElementById(&quot;photo&quot;);
elImage.addEventListener(&quot;load&quot;, function (evt) { URL.revokeObjectURL(docURL); } 
elImage.setAttribute(&quot;src&quot;, docURL);
&lt;/code&gt;&lt;/pre&gt; 
 &lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;recreafeObject라고 가정합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;동영상이 완전히 로드되기 전에 URL 메서드가 실행되고 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt;&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/17012313/show-video-blob-after-reading-it-through-ajax&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/590</guid>
      <comments>https://kingscode.tistory.com/590#entry590comment</comments>
      <pubDate>Mon, 18 Sep 2023 22:59:37 +0900</pubDate>
    </item>
    <item>
      <title>재작성이 있는 동일한 슬러그를 사용하는 사용자 지정 게시물 유형 및 분류법</title>
      <link>https://kingscode.tistory.com/589</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;재작성이 있는 동일한 슬러그를 사용하는 사용자 지정 게시물 유형 및 분류법&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;WordPress rewrite 규칙으로 작업하는 것은 이번이 처음이니 참고해 주시기 바랍니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;문제는 제가 포트폴리오에 추가하는 모든 항목이 여러 개의 카테고리를 가지고 있다는 것입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;포트폴리오 게시물을 표시할 때 url에서 카테고리를 삭제하고 싶습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;site.com/portfolio&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;-&amp;gt; 작품&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;site.com/portfolio/category/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;-&amp;gt; 작품&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;site.com/portfolio/category/post-added-to-portfolio/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;-&amp;gt; 효과는 있지만 저는 원하지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;site.com/portfolio/post-added-to-portfolio/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;-&amp;gt; 작동하지 않지만 작동해야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;/* Post Type: Portfolio */
$labels = array(
    &quot;name&quot; =&amp;gt; __( &quot;Portfolio&quot;, &quot;&quot; ),
    &quot;singular_name&quot; =&amp;gt; __( &quot;Portfolio&quot;, &quot;&quot; ),
);
$args = array(
    &quot;label&quot; =&amp;gt; __( &quot;Portfolio&quot;, &quot;&quot; ),
    &quot;labels&quot; =&amp;gt; $labels,
    &quot;description&quot; =&amp;gt; &quot;&quot;,
    &quot;public&quot; =&amp;gt; true,
    &quot;publicly_queryable&quot; =&amp;gt; true,
    &quot;show_ui&quot; =&amp;gt; true,
    &quot;show_in_rest&quot; =&amp;gt; false,
    &quot;rest_base&quot; =&amp;gt; &quot;&quot;,
    &quot;has_archive&quot; =&amp;gt; &quot;portfolio&quot;,
    &quot;show_in_menu&quot; =&amp;gt; true,
    &quot;exclude_from_search&quot; =&amp;gt; false,
    &quot;capability_type&quot; =&amp;gt; &quot;post&quot;,
    &quot;map_meta_cap&quot; =&amp;gt; true,
    &quot;hierarchical&quot; =&amp;gt; true,
    &quot;rewrite&quot; =&amp;gt; array( &quot;slug&quot; =&amp;gt; &quot;portfolio&quot;, &quot;with_front&quot; =&amp;gt; true ),
    &quot;query_var&quot; =&amp;gt; true,
    &quot;supports&quot; =&amp;gt; array( &quot;title&quot;, &quot;editor&quot; ),
    &quot;taxonomies&quot; =&amp;gt; array( &quot;services&quot; ),
);
register_post_type( &quot;portfolio&quot;, $args );   

/* Taxonomy: Services */
$labels = array(
    &quot;name&quot; =&amp;gt; __( &quot;Services&quot;, &quot;&quot; ),
    &quot;singular_name&quot; =&amp;gt; __( &quot;Service&quot;, &quot;&quot; ),
);
$args = array(
    &quot;label&quot; =&amp;gt; __( &quot;Services&quot;, &quot;&quot; ),
    &quot;labels&quot; =&amp;gt; $labels,
    &quot;public&quot; =&amp;gt; true,
    &quot;hierarchical&quot; =&amp;gt; true,
    &quot;label&quot; =&amp;gt; &quot;Services&quot;,
    &quot;show_ui&quot; =&amp;gt; true,
    &quot;show_in_menu&quot; =&amp;gt; true,
    &quot;show_in_nav_menus&quot; =&amp;gt; true,
    &quot;query_var&quot; =&amp;gt; true,
    &quot;rewrite&quot; =&amp;gt; array( 'slug' =&amp;gt; 'portfolio', 'with_front' =&amp;gt; true, ),
    &quot;show_admin_column&quot; =&amp;gt; false,
    &quot;show_in_rest&quot; =&amp;gt; false,
    &quot;rest_base&quot; =&amp;gt; &quot;&quot;,
    &quot;show_in_quick_edit&quot; =&amp;gt; false,
);
register_taxonomy( &quot;services&quot;, array( &quot;portfolio&quot; ), $args );

// handle redirects for taxonomy
add_action('generate_rewrite_rules', 'generate_taxonomy_rewrite_rules');
function generate_taxonomy_rewrite_rules( $wp_rewrite ) {
  $rules = array();
  $post_types = get_post_types( array( 'name' =&amp;gt; 'portfolio', 'public' =&amp;gt; true, '_builtin' =&amp;gt; false ), 'objects' );
  $taxonomies = get_taxonomies( array( 'name' =&amp;gt; 'services', 'public' =&amp;gt; true, '_builtin' =&amp;gt; false ), 'objects' );
  foreach ( $post_types as $post_type ) {
    $post_type_name = $post_type-&amp;gt;name;
    $post_type_slug = $post_type-&amp;gt;rewrite['slug'];
    foreach ( $taxonomies as $taxonomy ) {
      if ( $taxonomy-&amp;gt;object_type[0] == $post_type_name ) {
        $terms = get_categories( array( 'type' =&amp;gt; $post_type_name, 'taxonomy' =&amp;gt; $taxonomy-&amp;gt;name, 'hide_empty' =&amp;gt; 0 ) );
        foreach ( $terms as $term ) {
          $rules[$post_type_slug . '/' . $term-&amp;gt;slug . '/?$'] = 'index.php?' . $term-&amp;gt;taxonomy . '=' . $term-&amp;gt;slug;
          $rules[$post_type_slug . '/' . $term-&amp;gt;slug . '/page/?([0-9]{1,})/?$'] = 'index.php?' . $term-&amp;gt;taxonomy . '=' . $term-&amp;gt;slug . '&amp;amp;paged=' . $wp_rewrite-&amp;gt;preg_index( 1 );
        }
      }
    }
  }
  $wp_rewrite-&amp;gt;rules = $rules + $wp_rewrite-&amp;gt;rules;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 일주일 동안 이 문제를 해결했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 포스트 타입을 그대로 유지했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;교체했습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;generate_rewrite_rules&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 기능을 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;add_filter('request', 'setTermRequest', 1, 1 );
function setTermRequest($query){
    $tax_name = 'services';
    if( $query['attachment'] ) :
        $include_children = true;
        $name = $query['attachment'];
    else:
        $include_children = false;
        $name = $query['name'];
    endif;
    $term = get_term_by('slug', $name, $tax_name); // get the current term to make sure it exists
    if (isset($name) &amp;amp;&amp;amp; $term &amp;amp;&amp;amp; !is_wp_error($term)): // check it here
        if( $include_children ) {
            unset($query['attachment']);
            $parent = $term-&amp;gt;parent;
            while( $parent ) {
                $parent_term = get_term( $parent, $tax_name);
                $name = $parent_term-&amp;gt;slug . '/' . $name;
                $parent = $parent_term-&amp;gt;parent;
            }
        } else { unset($query['name']); }
        switch( $tax_name ):
            case 'category':{
                $query['category_name'] = $name; // for categories
                break;
            }
            case 'post_tag':{
                $query['tag'] = $name; // for post tags
                break;
            }
            default:{
                $query[$tax_name] = $name; // for another taxonomies
                break;
            }
        endswitch;
    endif;
    return $query;
}
add_filter( 'term_link', 'writeTermPerm', 10, 3 );
function writeTermPerm( $url, $term, $taxonomy ){
    $taxonomy_name = 'services';
    $taxonomy_slug = 'services';
    if ( strpos($url, $taxonomy_slug) === FALSE || $taxonomy != $taxonomy_name ) return $url;
    $url = str_replace('/'.$taxonomy_slug, '/portfolio', $url);
    return $url;
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그 후 url 구조를 수정한 후 나는 분류 체계 서비스에 다음 코드를 추가했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;시스템 전체를 하나의 파일로 제어하기 위해 php 문서.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;locate_template( 'archive-portfolio.php', true );
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/49807692/custom-post-type-and-taxonomy-using-same-slug-with-rewrite&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/589</guid>
      <comments>https://kingscode.tistory.com/589#entry589comment</comments>
      <pubDate>Mon, 18 Sep 2023 22:54:12 +0900</pubDate>
    </item>
    <item>
      <title>C의 동적 배열 &amp;mdash; malloc과 realoc에 대한 제 이해가 맞습니까?</title>
      <link>https://kingscode.tistory.com/588</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;C의 동적 배열 — malloc과 realoc에 대한 제 이해가 맞습니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;C에서 동적 1D 배열을 만드는 방법을 배우고 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;아래 코드는 다음을 수행하려고 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;malloc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, 길이의 동적 배열을 만듭니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;10&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, 유형의 가치를 가지고 있는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;double&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;배열의 각 항목을 다음으로 설정합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;j/100&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위해서&lt;/font&gt;&lt;/font&gt;&lt;code&gt;j = 0, 1,..., 9&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;. 그럼 출력해주세요.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음을 사용하여 배열 끝에 빈 항목 추가&lt;/font&gt;&lt;/font&gt;&lt;code&gt;realloc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;새 항목을 다음으로 설정합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;j/100&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;각 항목을 다시 인쇄합니다.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;테스트:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt; double* data = (double*)malloc(10*sizeof(double));

 for (j=0;j&amp;lt;10;j++)
 {
      data[j]= ((double)j)/100;
      printf(&quot;%g, &quot;,data[j]);
 }

 printf(&quot;\n&quot;);

 data = (double*)realloc(data,11*sizeof(double));

 for (j=0;j&amp;lt;11;j++)
 {
     if (j == 10){ data[j]= ((double)j)/100; }
     printf(&quot;%g, &quot;,data[j]);
 }

 free((void*) data);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문의사항&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이거 제가 코딩하는 거 맞나요?&lt;/font&gt;&lt;/p&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용한 자습서&lt;/font&gt;&lt;/font&gt;&lt;code&gt;malloc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;을 넣지 않고&lt;/font&gt;&lt;/font&gt;&lt;code&gt;(double*)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;맨 앞에&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;예.,&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;int *slot;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;포인터 = malloc(2*size of (int));&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Visual Studio 2010, Windows 7에서는 컴파일이 되지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;오류 메시지는&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;유형 void의 값을 유형 엔터티에 할당할 수 없습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;int&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;왜 저한테는 안되고 그런 튜토리얼에는 안되나요?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그들이 사용하고 있는 컴파일러들이 자동적으로 파일을 채우기 때문이라고 추측하는 것이 맞습니까?&lt;/font&gt;&lt;/font&gt;&lt;code&gt;(int*)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어 그들을 위해?&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가까워졌습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;C(적어도 1989년 버전의 표준 이후)에서, 이전의 캐스트.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;malloc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;realloc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;C는 유형의 값을 변환할 수 있으므로 불필요합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;void *&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;로.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;int *&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;31&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;깁스를 하지 않고&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 C++의 &lt;em papago-id=&quot;31-1&quot;&gt;경우&lt;/em&gt;에는 해당되지 않으므로 오류를 기준으로 이 코드를 C가 아닌 C++로 컴파일하는 것처럼 들립니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;코드를 C로 컴파일하는 방법을 결정하려면 VS2010의 설명서를 확인합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음은 제가 a를 쓸때 선호하는 스타일입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;malloc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;호출:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;double *data = malloc(10 * sizeof *data);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;27&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;식의 종류 이후로&lt;/font&gt;&lt;/font&gt;&lt;code&gt;*data&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가&lt;/font&gt;&lt;/font&gt;&lt;code&gt;double&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;29&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;sizeof *data&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;30&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;와 동치입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;sizeof (double)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;31&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;. 이것은 또한 당신이 조정할 필요가 없다는 것을 의미합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;malloc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;32&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;호출 유형:&lt;/font&gt;&lt;/font&gt;&lt;code&gt;data&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;33&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;변화들.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;34&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에 관해서는.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;realloc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;35&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;호출, 결과를 임시 포인터 값에 할당하는 것이 더 안전합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;realloc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;36&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;버퍼를 확장할 수 없으면 NULL을 반환하므로 쓰기가 더 안전합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;double *tmp;
...
tmp = realloc(data, 11 * sizeof *data);
if (!tmp)
{
  // could not resize data; handle as appropriate
}
else
{
  data = tmp;
  // process extended buffer
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;44&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;마이크로소프트의 C 지원은 1989년 버전의 C 언어로 끝납니다. 그 이후로 두 번의 C 언어 표준 개정이 있었지만, 몇 가지 새로운 기능을 도입하고 오래된 기능은 사용하지 않게 되었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 일부 C 컴파일러는 혼합 선언 및 코드, 가변 길이 배열 등과 같은 C99 기능을 지원하지만 VS2010은 지원하지 않습니다.&lt;/font&gt;&lt;/p&gt;&lt;blockquote&gt; 
 &lt;p papago-id=&quot;45&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;1) 이거 제가 코딩하는 거 맞나요?&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;37&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;주로. 그런데.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;data = (double*)realloc(data,11*sizeof(double));&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;38&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음 경우 할당된 메모리에 대한 참조가 손실됩니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;realloc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;39&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;실패합니다. 반환 값을 유지하려면 임시 포인터를 사용해야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;realloc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;40&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 확인해 보세요.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;NULL&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;41&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;( 한품을야다다해야 )의 반환 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;malloc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;42&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;).&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;52&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;2) 제가 찾은 튜토리얼은 앞에 (더블*)을 넣지 않고 malloc을 사용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;43&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;주식회사,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;malloc&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;44&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; a를 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;void*&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;45&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;암시적으로 다른 포인터 유형으로 변환할 수 있으므로 캐스트가 필요하지 않습니다(오류를 숨길 수 있는 캐스트 때문에 광범위하게 사용할 수 없음).&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;비주얼 스튜디오는 캐스트가 필요한 곳에 코드를 C++로 컴파일한 것으로 보입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;46&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ ΔΔ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;malloc()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;47&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;48&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, 에서 하는 은   입니다 을  입니다            에서       은 을 하는 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;malloc()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;49&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;◦&lt;/font&gt; &lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;이 더 &lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것이 더 나은 방법입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;double* data = malloc(10 * sizeof *data);
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;60&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/12675919/dynamic-array-in-c-is-my-understanding-of-malloc-and-realloc-correct&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/588</guid>
      <comments>https://kingscode.tistory.com/588#entry588comment</comments>
      <pubDate>Mon, 18 Sep 2023 22:53:39 +0900</pubDate>
    </item>
    <item>
      <title>약한 자아는 어디로 가는 거지?</title>
      <link>https://kingscode.tistory.com/587</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;약한 자아는 어디로 가는 거지?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 자주 하는 일인데요.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;let when = DispatchTime.now() + 2.0
DispatchQueue.main.asyncAfter(deadline: when) {
   beep()
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 한 앱에서 우리는 종종 이것을 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;tickle.fresh(){
    msg in
    paint()
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;3-1&quot;&gt;이렇게&lt;/em&gt; 하면.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;let when = DispatchTime.now() + 2.0
DispatchQueue.main.asyncAfter(deadline: when) {
   tickle.fresh(){
      msg in
      paint()
   }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;물론 당신은 이것을 &lt;em papago-id=&quot;4-1&quot;&gt;해야&lt;/em&gt; 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;let when = DispatchTime.now() + 2.0
DispatchQueue.main.asyncAfter(deadline: when) { [weak self] _ in
   tickle.fresh(){
      msg in
      self?.paint()
   }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아니면, 어쩌면 &lt;em papago-id=&quot;5-1&quot;&gt;이것&lt;/em&gt;.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;let when = DispatchTime.now() + 2.0
DispatchQueue.main.asyncAfter(deadline: when) {
   tickle.fresh(){
      [weak self] msg in
      self?.paint()
   }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;em papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아니면 이거.&lt;/font&gt;&lt;/em&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;let when = DispatchTime.now() + 2.0
DispatchQueue.main.asyncAfter(deadline: when) { [weak self] _ in
   tickle.fresh(){
      [weak self] msg in
      self?.paint()
   }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;h1 papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떻게 할까요?&lt;/font&gt;&lt;/h1&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;세 가지 &lt;em papago-id=&quot;8-1&quot;&gt;제안&lt;/em&gt; 모두 완벽하게 들어맞는 것 같습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기서 의미의 깊이는 어느 정도입니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 어느 쪽이 해야 할까요?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;강한 참조는 약한 참조, 약한 참조 또는 강한 참조입니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;될 것인가 말 것인가?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것이 문제입니다!&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, 으로  를 하는 에   할 가 과    가  할                   으로 에 과 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;DispatchQueue.main.asyncAfter&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, 폐쇄가 어느 &lt;em papago-id=&quot;10-1&quot;&gt;시점&lt;/em&gt;에서 실행될 것이기 때문입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러므로 당신이 약하게 잡든 말든&lt;/font&gt;&lt;/font&gt;&lt;code&gt;self&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;인 유지 사이클, 인  을 는  입니다   입니다     인       는  을   ,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;tickle.fresh&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(또한 그렇지 않습니다.).&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 A   를         이  를   &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;[weak self]&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;쪽처록록처n&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;asyncAfter&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;폐쇄는 전적으로 당신이 원하는지 아닌지에 달려있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;self&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;폐쇄가 호출될 때까지 유지됩니다(설정한 시간 이후).&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;self&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;[weak self]&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;만약 그렇다면, 넣지 마세요.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 A   를         이  를   &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;[weak self]&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내부의 폐쇄(에게 전달된 것)에&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;tickle.fresh&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;는 이미  달라집니다.)  했는지 에       에   했는지      &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;self&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;바깥쪽 폐쇄에&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;만약 그렇지 않다면, 당신은 그 때릴 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;[weak self]&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내부 폐쇄가 유지되는 것을 방지하기 위해.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가 이미  포착된 부가게우된미우f된&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;self&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, 그러면 내부 폐쇄는 이미 다음에 대한 약한 참조를 가질 &lt;em papago-id=&quot;24-1&quot;&gt;것&lt;/em&gt;입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;self&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, 이렇게 덧붙여서&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;[weak self]&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내부 폐쇄는 영향을 주지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;요약하자면 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;pre&gt;&lt;code&gt;DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
   tickle.fresh { msg in
      self.paint()
   }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;code&gt;self&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;외부 및 내부 클로저에 의해 유지됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;pre&gt;&lt;code&gt;DispatchQueue.main.asyncAfter(deadline: .now() + 2) { [weak self] in
   tickle.fresh { msg in
      self?.paint()
   }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;code&gt;self&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어느 쪽의 폐쇄도 유지되지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;pre&gt;&lt;code&gt;DispatchQueue.main.asyncAfter(deadline: .now() + 2) { [weak self] in
   tickle.fresh { [weak self] msg in
      self?.paint()
   }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;인 와 하게 인 인 하게  &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;[weak self]&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내부 폐쇄가 영향을 미치지 않기 때문에, 다음과 같이&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;self&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;외부 폐쇄에 의해 이미 약하게 포착된 상태입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;pre&gt;&lt;code&gt;DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
   tickle.fresh { [weak self] msg in
      self?.paint()
   }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;code&gt;self&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;외부 클로저는 유지되지만 내부 클로저는 유지되지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, 이, , 를 원하지 않을 도 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;self&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;35&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;외부 폐쇄에 의해 유지되지만 내부 폐쇄에 의해 유지되기를 &lt;em papago-id=&quot;35-1&quot;&gt;원합니다&lt;/em&gt;.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 경우 외부 폐쇄에서 로컬 변수를 선언하여 다음을 강력하게 참조할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;self&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 클로저에서 할 수  ,  에서 할          에서 할     &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;DispatchQueue.main.asyncAfter(deadline: .now() + 2) { [weak self] in
   guard let strongSelf = self else { return }
   tickle.fresh { msg in
      strongSelf.paint()
   }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;27&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;지금이다,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;self&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;외부 폐쇄에 의해 생명을 유지할 수는 없겠지만, 일단 이름이 지어지면,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;self&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;29&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여전히 존재합니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 폐쇄가 해제될 때까지 내부 폐쇄에 의해 유지됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;p papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대응:&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;강한 참조는 약한 참조, 약한 참조 또는 강한 참조입니까?&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;42&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;약한 참조는 값 유형인 옵션으로 구현됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 하나에 대한 강력한 참조를 직접적으로 가질 수는 &lt;em papago-id=&quot;42-1&quot;&gt;없습니다&lt;/em&gt;. 대신 먼저 하나의 랩을 풀고 기본 인스턴스에 대한 강력한 참조를 수행해야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 경우에는 단순히 강력한 참조(위의 예와 정확히 일치함)를 다루고 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;strongSelf&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;31&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;).&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;44&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 약한 참조가 &lt;em papago-id=&quot;44-1&quot;&gt;박스화&lt;/em&gt;된 경우(닫힘 캡처에서 이런 현상이 발생 – 값 유형이 힙 할당 상자에 포함됨), 실제로 해당 박스에 대한 강력한 참조를 가질 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 결과는 원래 인스턴스에 대한 약한 참조에 해당합니다. 보이지 않는 추가 방향이 있을 뿐입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;45&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사실, &lt;em papago-id=&quot;45-1&quot;&gt;이것&lt;/em&gt;은 바로 외부 폐쇄가 약하게 포착되는 예제에서 일어나는 일입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;self&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;33&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 내부의 폐쇄는 약한 참조를 포착합니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;으로 두  모두 Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;self&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;34&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;48&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/41991467/where-does-the-weak-self-go&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/587</guid>
      <comments>https://kingscode.tistory.com/587#entry587comment</comments>
      <pubDate>Mon, 18 Sep 2023 22:51:41 +0900</pubDate>
    </item>
    <item>
      <title>Oracle SQL: 열 이름이 지정된 테이블 이름을 어떻게 찾습니까?</title>
      <link>https://kingscode.tistory.com/586</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Oracle SQL: 열 이름이 지정된 테이블 이름을 어떻게 찾습니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;표의 모든 열의 이름을 알고 있지만 표의 이름을 알고 있지 않다면 필요한 표의 이름을 어떻게 찾을 수 있습니까?&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;@Roobie의 솔루션을 기반으로 아래 코드는 테이블이 자신의 스키마에 없는 경우 접근할 수 있는 모든 스키마에서 검색합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;대소문자를 구분하지 않는 일치도 추가되었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT owner, table_name
  FROM all_tab_columns
  WHERE UPPER(column_name) = UPPER('MYCOL');
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음을 사용해 보십시오(알려진 열 하나).&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;CREATE TABLE mytab(mycol VARCHAR2(30 CHAR));&lt;/code&gt;&lt;br&gt;&lt;br&gt;&lt;code&gt;SELECT table_name FROM user_tab_columns WHERE column_name='MYCOL';&lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;메모&lt;/font&gt;&lt;/font&gt;&lt;code&gt;MYCOL&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;상위 케이스에 &lt;em papago-id=&quot;1-1&quot;&gt;있습니다&lt;/em&gt;.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;column_name='MYCOL'&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;건배!&lt;/font&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;select * from all_updatable_columns where column_name like 'reqd col name';
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/24287546/oracle-sql-how-do-i-find-the-table-name-given-the-column-names&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/586</guid>
      <comments>https://kingscode.tistory.com/586#entry586comment</comments>
      <pubDate>Mon, 18 Sep 2023 22:50:29 +0900</pubDate>
    </item>
    <item>
      <title>중첩된 클래스의 범위?</title>
      <link>https://kingscode.tistory.com/585</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;중첩된 클래스의 범위?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파이썬에서 중첩된 클래스의 범위를 이해하려고 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음은 예제 코드입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;class OuterClass:
    outer_var = 1
    class InnerClass:
        inner_var = outer_var
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;클래스 생성이 완료되지 않고 다음 오류가 발생합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-none prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;type 'exceptions.NameError'&amp;gt;: name 'outer_var' is not defined
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;괴로운&lt;/font&gt;&lt;/font&gt;&lt;code&gt;inner_var = Outerclass.outer_var&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;작동하지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이해합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-none prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;type 'exceptions.NameError'&amp;gt;: name 'OuterClass' is not defined
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;정적에 액세스하려고 합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;outer_var&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부터&lt;/font&gt;&lt;/font&gt;&lt;code&gt;InnerClass&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것을 할 수 있는 방법이 있습니까?&lt;/font&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;class Outer(object):
    outer_var = 1

    class Inner(object):
        @property
        def inner_var(self):
            return Outer.outer_var
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이는 다른 언어에서 작동하는 유사한 것과 완전히 같지 않으며 액세스 범위를 지정하는 대신 글로벌 룩업을 사용합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;outer_var&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(이름을 변경하는 경우&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Outer&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에 바인딩된 다음 이 코드는 다음 번에 실행될 때 해당 개체를 사용합니다.)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;만약 당신이 모든 것을 원한다면,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Inner&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;참조할 대상&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Outer&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;왜냐면&lt;/font&gt;&lt;/font&gt;&lt;code&gt;outer_var&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;실제 인스턴스 속성입니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;class Outer(object):
    def __init__(self):
        self.outer_var = 1

    def get_inner(self):
        return self.Inner(self)
        # &quot;self.Inner&quot; is because Inner is a class attribute of this class
        # &quot;Outer.Inner&quot; would also work, or move Inner to global scope
        # and then just use &quot;Inner&quot;

    class Inner(object):
        def __init__(self, outer):
            self.outer = outer

        @property
        def inner_var(self):
            return self.outer.outer_var
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;클래스 중첩은 Python에서 다소 드물며 클래스 간의 특별한 관계를 자동으로 의미하지는 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;중첩하지 않는 것이 좋습니다. (클래스 속성을 설정할 수 있습니다.)&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Outer&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;로.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Inner&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;원한다면요.)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같이 간단하게 할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;class OuterClass:
    outer_var = 1

    class InnerClass:
        pass
    InnerClass.inner_var = outer_var
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;발생한 문제는 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;블록은 단위로 실행되는 Python 프로그램 텍스트의 일부입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;블록은 모듈, 함수 본문 및 클래스 정의입니다.&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(...)&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;범위는 블록 내에서 이름의 가시성을 정의합니다.&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(...)&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;클래스 블록에 정의된 이름의 범위는 클래스 블록으로 제한됩니다. 메서드의 코드 블록으로 확장되지 않습니다. 함수 범위를 사용하여 구현되므로 생성기 식을 포함합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이는 다음이 실패함을 의미합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
 &lt;pre&gt;&lt;code&gt;   class A:  

       a = 42  

       b = list(a + i for i in range(10))
&lt;/code&gt;&lt;/pre&gt; 
 &lt;p&gt;&lt;a href=&quot;http://docs.python.org/reference/executionmodel.html#naming-and-binding&quot; rel=&quot;noreferrer&quot; papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;http://docs.python.org/reference/executionmodel.html#naming-and-binding&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위의 의미는 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;함수 본문은 코드 블록이고 메서드는 함수입니다. 클래스 정의에 있는 함수 본문에서 정의된 이름은 함수 본문으로 확장되지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이를 귀하의 사례에 대해 다르게 설명합니다.&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;클래스 정의는 코드 블록이며, 외부 클래스 정의에 있는 내부 클래스 정의에서 정의된 이름은 내부 클래스 정의로 확장되지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;중첩 클래스를 사용하지 않는 것이 더 나을 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;둥지를 틀어야 하는 경우 다음을 시도합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;x = 1
class OuterClass:
    outer_var = x
    class InnerClass:
        inner_var = x
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는 중첩하기 전에 두 클래스를 선언합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;class OuterClass:
    outer_var = 1

class InnerClass:
    inner_var = OuterClass.outer_var

OuterClass.InnerClass = InnerClass
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(이 작업 후에는 다음 작업을 수행할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;del InnerClass&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;필요하다면요.)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;35&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가장 쉬운 솔루션:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;class OuterClass:
    outer_var = 1
    class InnerClass:
        def __init__(self):
            self.inner_var = OuterClass.outer_var
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것은 당신이 명시적으로 해야 하지만, 많은 노력이 필요하지 않습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Python에서 가변 객체는 참조로 전달되므로 외부 클래스의 참조를 내부 클래스에 전달할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;class OuterClass:
    def __init__(self):
        self.outer_var = 1
        self.inner_class = OuterClass.InnerClass(self)
        print('Inner variable in OuterClass = %d' % self.inner_class.inner_var)

    class InnerClass:
        def __init__(self, outer_class):
            self.outer_class = outer_class
            self.inner_var = 2
            print('Outer variable in InnerClass = %d' % self.outer_class.outer_var)
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;모든 설명은 Python &lt;em papago-id=&quot;38-1&quot;&gt;Documentation The Python&lt;/em&gt; Tutorial에서 &lt;em papago-id=&quot;38-1&quot;&gt;찾을&lt;/em&gt; 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 번째 오류에  당신의첫실수에대해째번▁for대해▁your에당▁first수.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;type 'exceptions.NameError'&amp;gt;: name 'outer_var' is not defined&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;27&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;설명은 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;메소드 내에서 데이터 속성(또는 다른 메소드!)을 참조하는 간단한 방법은 없습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이것이 실제로 방법의 가독성을 높인다는 것을 발견했습니다. 방법을 훑어볼 때 로컬 변수와 인스턴스 변수를 혼동할 가능성이 없습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;42-1&quot;&gt;Python Tutorial &lt;/em&gt;9.4에서 &lt;em papago-id=&quot;42-1&quot;&gt;인용&lt;/em&gt;.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 오류에  당신의두실수에대해째번▁for대해▁your에당▁error.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;type 'exceptions.NameError'&amp;gt;: name 'OuterClass' is not defined&lt;/code&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;44&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;클래스 정의가 종료를 통해 정상적으로 유지되면 클래스 개체가 생성됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;45&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;45-1&quot;&gt;파이썬 튜토리얼&lt;/em&gt; 9&lt;em papago-id=&quot;45-1&quot;&gt;.3.1에서 인용&lt;/em&gt;.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;29&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서 당신이 노력할 때&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;inner_var = Outerclass.outer_var&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;30&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Quterclass&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;31&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;. 아직생않았니다습지성되다않니▁hasn았습▁yet▁that'▁createds.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 그것이 이유입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;name 'OuterClass' is not defined&lt;/code&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;49&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;첫 번째 오류에 대한 자세한 설명은 다음과 같은 지루한 설명:&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;50&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;클래스가 포함 함수의 범위에 액세스할 수 있지만 클래스 내에 중첩된 코드에 대한 포함 범위 역할을 하지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;Python은 참조된 이름을 찾기 위해 포함 함수를 검색하지만 포함 클래스는 검색하지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;즉, 클래스는 로컬 범위이며 포함된 로컬 범위에 액세스할 수 있지만 추가 중첩 코드에 대한 포함 로컬 범위 역할을 하지 않습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;51&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;51-1&quot;&gt;학문에서 &lt;/em&gt;인용한.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;51-1&quot;&gt;파이썬(5위).&lt;/em&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;51-1&quot;&gt;마크 루츠&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;class c_outer:
    def __init__(self, name:str='default_name'):
        self._name = name
        self._instance_lst = list()
        self._x = self.c_inner()

    def get_name(self):
        return(self._name)

    def add_inner_instance(self,name:str='default'):
        self._instance_lst.append(self.c_inner(name))

    def get_instance_name(self,index:int):
        return(self._instance_lst[index].get_name())


    class c_inner:
        def __init__(self, name:str='default_name'):
            self._name = name
        def get_name(self):
            return(self._name)


outer = c_outer(&quot;name_outer&quot;)

outer.add_inner_instance(&quot;test1&quot;)
outer.add_inner_instance(&quot;test2&quot;)
outer.add_inner_instance(&quot;test3&quot;)
inner_1 = outer.c_inner(&quot;name_inner1&quot;)
inner_2 = outer.c_inner(&quot;name_inner2&quot;)
inner_3 = outer.c_inner(&quot;name_inner3&quot;)

print(outer.get_instance_name(index=0))
print(outer.get_instance_name(1))
print(outer._instance_lst[2]._name
print(outer.get_name())
print(inner_1.get_name())
print(inner_2.get_name())
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;52&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;test1 test2 test3 name_test1 name_test2 name_test3&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;53&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/1765677/&lt;a href=&quot;https://stackoverflow.com/questions/1765677/nested-classes-scope&quot; target=&quot;_blank&quot; papago-id=&quot;53-1&quot;&gt;nested-classes-scope&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/585</guid>
      <comments>https://kingscode.tistory.com/585#entry585comment</comments>
      <pubDate>Tue, 29 Aug 2023 21:44:32 +0900</pubDate>
    </item>
    <item>
      <title>셀의 텍스트 부분에 대한 글꼴 색 변경</title>
      <link>https://kingscode.tistory.com/584</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;셀의 텍스트 부분에 대한 글꼴 색 변경&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음 값을 포함하는 셀이 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&quot;Image not allowed|png&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;2-1&quot;&gt;저&lt;/strong&gt;는 |png 단독으로 또는&lt;strong papago-id=&quot;2-3&quot;&gt; &lt;/strong&gt;&quot;|&quot; 뒤에 오는 것을 바꾸고 싶습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;지금 아래 코드를 사용하여 글꼴 색을 변경하려고 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Cells(4,2).Font.Color = RGB(255, 50, 25)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;전체 셀 글꼴 색이 변경됩니다. 선택한 텍스트 색만 변경할 수 있습니까?&lt;/font&gt;&lt;/font&gt;&lt;code&gt;|png&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;) VBA를 사용하시겠습니까?&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Characters&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 셀 속성:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Cells(1,1).Characters(Start:=2, Length:=3).Font.Color = RGB(255, 0, 0)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 좋은 시작이 될 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Sub vignesh()
Dim StartChar As Integer, _
    LenColor As Integer

For i = 1 To 5
    With Sheets(&quot;Sheet1&quot;).Cells(i, 1)
        StartChar = InStr(1, .Value, &quot;|&quot;)
        If StartChar &amp;lt;&amp;gt; 0 Then
            LenColor = Len(.Value) - StartChar + 1
            .Characters(Start:=StartChar, Length:=LenColor).Font.Color = RGB(255, 0, 0)
        End If
    End With
Next i

End Sub
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;네, 가능합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;Excel 개체 모델을 탐색하는 좋은 방법은 매크로 레코더를 사용하여 원하는 조작을 수동으로 수행하는 매크로를 기록하는 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 경우 다음을 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Cell.Characters(Start:=1, Length:=5).Font
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;셀에서 부분 문자열의 글꼴 속성을 설정합니다.&lt;/font&gt;&lt;/p&gt;&lt;blockquote&gt; 
 &lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;선택한 텍스트 색상만 변경할 수 있습니까?&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;간단하죠.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Option Explicit
Sub Test()
    With Selection.Font
        .ColorIndex = 3 
    End With
End Sub
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/30567552/&lt;a href=&quot;https://stackoverflow.com/questions/30567552/change-font-color-for-a-part-of-text-in-cell&quot; target=&quot;_blank&quot; papago-id=&quot;14-1&quot;&gt;change-font-color-for-a-part-of-text-in-cell&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/584</guid>
      <comments>https://kingscode.tistory.com/584#entry584comment</comments>
      <pubDate>Tue, 29 Aug 2023 21:42:38 +0900</pubDate>
    </item>
    <item>
      <title>코드를 다른 사용자로 커밋하려면 어떻게 해야 합니까?</title>
      <link>https://kingscode.tistory.com/583</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;코드를 다른 사용자로 커밋하려면 어떻게 해야 합니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이것을 대본으로 할 수 있기를 원합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 기본적으로 Git에서 일부 코드의 전체 버전 기록을 다시 만들고 있습니다. 현재는 다른 버전 제어 시스템을 사용하고 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;커밋의 원본 작성자(및 날짜)를 보존하면서 Git에 커밋을 추가할 수 있는 스크립트가 필요합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;커밋 작성자와 변경된 날짜/시간을 알고 있다고 가정하면 이 작업을 수행할 수 있는 Git 명령이 있습니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;Git-p4도 비슷한 일을 하기 때문에 그런 것 같습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 그저 그것을 할 수 있는 최선의 방법을 요청하는 것입니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음을 확인하십시오.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;--author&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에 대한 선택권.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;git commit&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://git-scm.com/docs/git-commit#Documentation/git-commit.txt---authorltauthorgt&quot; rel=&quot;noreferrer&quot; papago-id=&quot;6-1&quot;&gt;맨&lt;/a&gt; 페이지에서:&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;code&gt;--author=&amp;lt;author&amp;gt;&lt;/code&gt;&lt;/p&gt; 
 &lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;커밋 작성자를 재정의합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;표준을 사용하여 명시적인 작성자 지정&lt;/font&gt;&lt;/font&gt;&lt;code&gt;A U Thor &amp;lt;author@example.com&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;서식을 정하다&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇지않으면&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;author&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;는 패턴으로 가정되며 해당 작성자(즉, 해당 작성자)의 기존 커밋을 검색하는 데 사용됩니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;rev-list --all -i --author=&amp;lt;author&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 커밋 작성자가 처음 발견된 커밋에서 복사됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기에 덧붙이자면: The&lt;/font&gt;&lt;/font&gt;&lt;code&gt;--author&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;승인된 답변에 언급된 옵션은 &lt;em papago-id=&quot;12-1&quot;&gt;작성자&lt;/em&gt;를 재정의할 뿐 커밋의 &lt;em papago-id=&quot;12-3&quot;&gt;커밋&lt;/em&gt; 정보는 무시됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대부분의 경우 올바른 동작이지만 어떤 이유로 인해 수동으로 &lt;strong papago-id=&quot;13-1&quot;&gt;커미터 정보&lt;/strong&gt;를 재정의해야 하는 경우에는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;GIT_COMMITTER_NAME&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;GIT_COMMITTER_EMAIL&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;환경 변수(가 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;GIT_COMMITTER_DATE&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://git-scm.com/book/en/v2/Git-Internals-Environment-Variables&quot; papago-id=&quot;16-1&quot;&gt;Git-내부-환경-변수&lt;/a&gt; 참조&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$ GIT_COMMITTER_NAME=&quot;New Name&quot; GIT_COMMITTER_EMAIL=&quot;name@email.com&quot; git commit --author=&quot;New Name &amp;lt;name@email.com&amp;gt;&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이렇게 하면 커밋이 지정된 사용자에 의해 &lt;strong papago-id=&quot;17-1&quot;&gt;작성&lt;/strong&gt;되고 커밋된 것처럼 보입니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이전 구성을 재정의하려면 git-commit과 함께 -c 옵션을 사용합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;글로벌/프로젝트 구성에는 영향을 주지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어 이름과 전자 메일을 재정의하려면 다음과 같이 하십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;git -c user.name='My Name' -c user.email='my@email.com' commit -m &quot;Custom message&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 추가 설정으로 유지할 생각이라면 별칭을 사용하는 것이 좋습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;편집하기&lt;/font&gt;&lt;/font&gt;&lt;code&gt;~/.gitconfig&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기본값이 아닌 각 사용자 및 전자 메일에 대한 새 별칭을 추가합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;[user]
  name = My Name
  email = default@email.com

[alias]
  commit-x = -c user.name='My X Name' -c user.email='mr_x@email.com' commit
  commit-y = -c user.name='My Y Name' -c user.email='mr_y@email.com' commit
  commit-z = -c user.name='My Z Name' -c user.email='mr_z@email.com' commit
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;별칭이 전체적으로 적용됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;시험해 보세요.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;git commit -m &quot;Custom message with committer and author My Name &amp;lt;default@email.com&amp;gt;&quot;
git commit-x -m &quot;Custom message with committer and author My X Name &amp;lt;mr_x@email.com&amp;gt;&quot;
git commit-y -m &quot;Custom message with committer and author My Y Name &amp;lt;mr_y@email.com&amp;gt;&quot;
git commit-z -m &quot;Custom message with committer and author My Z Name &amp;lt;mr_z@email.com&amp;gt;&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/3696938/&lt;a href=&quot;https://stackoverflow.com/questions/3696938/how-do-you-commit-code-as-a-different-user&quot; target=&quot;_blank&quot; papago-id=&quot;22-1&quot;&gt;how-do-you-commit-code-as-a-different-user&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/583</guid>
      <comments>https://kingscode.tistory.com/583#entry583comment</comments>
      <pubDate>Tue, 29 Aug 2023 21:40:51 +0900</pubDate>
    </item>
    <item>
      <title>Oracle SQL에 SUM 함수가 있는 것과 같은 PRODUCT 함수가 있습니까?</title>
      <link>https://kingscode.tistory.com/582</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Oracle SQL에 SUM 함수가 있는 것과 같은 PRODUCT 함수가 있습니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이것을 찾는 동료가 있는데, 저는 그런 것을 만난 적이 없었던 것으로 기억합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것을 시뮬레이션할 수 있는 합리적인 기술이 있습니까?&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT PRODUCT(X)
FROM
(
    SELECT 3 X FROM DUAL
    UNION ALL 
    SELECT 5 X FROM DUAL
    UNION ALL
    SELECT 2 X FROM DUAL
)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;30을 산출할 것입니다.&lt;/font&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;select exp(sum(ln(col)))
  from table;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;편집:&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;if col always &amp;gt; 0&lt;/font&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;DECLARE @a int
SET @a = 1
-- re-assign @a for each row in the result
-- as what @a was before * the value in the row
SELECT @a = @a * amount
FROM theTable
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;비슷한 문자열 콘캣을 수행하는 방법이 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;DECLARE @b varchar(max)
SET @b = &quot;&quot;

SELECT @b = @b + CustomerName
FROM Customers
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기 다른 방법이 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 확실히 더 긴 방법이지만 재미있는 프로젝트의 일부였습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이번 건은 학교로 다시 연락해야 해요, 하하.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기서 기억해야 할 핵심은 LOG가 지수의 역수라는 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;LOG10(X*Y) = LOG10(X) + LOG10(Y)&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ln(X*Y) = ln(X) + ln(Y) (표준 = 자연 로그 또는 간단히 로그 기저 10)&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;X=5 및 Y=6인 경우&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;X * Y = 30&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ln(5) + ln(6) = 3.4&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ln(30) = 3.4&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;e^3.4 = 30, 5 x 6도 마찬가지입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;EXP(3.4) = 30&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서 위에서, 만약 5와 6이 각각 표에서 한 줄을 차지했다면, 우리는 각 값의 자연 로그를 가져와서, 그 행들을 합한 다음, 그 합의 지수를 30으로 구합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아래는 SQL Server에 대한 SQL 문의 코드입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;Oracle에서 실행하려면 약간의 편집이 필요할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;큰 차이가 없기를 바라지만 적어도 Oracle에 대한 CASE 진술이 같지는 않다고 생각합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;줄의 부호가 음수인지 테스트하기 위해 추가적인 것들이 있을 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;CREATE TABLE DUAL (VAL INT NOT NULL)
INSERT DUAL VALUES (3)
INSERT DUAL VALUES (5)
INSERT DUAL VALUES (2)

    SELECT 
           CASE SUM(CASE WHEN SIGN(VAL) = -1 THEN 1 ELSE 0 END) % 2 
               WHEN 1 THEN -1 
               ELSE 1 
           END
         * CASE 
                WHEN SUM(VAL) = 0           THEN 0 
                WHEN SUM(VAL) IS NOT NULL   THEN EXP(SUM(LOG(ABS(CASE WHEN SIGN(VAL) &amp;lt;&amp;gt; 0 THEN VAL END)))) 
                ELSE NULL 
           END
         * CASE MIN(ABS(VAL)) WHEN 0 THEN 0 ELSE 1 END
        AS PRODUCT 
      FROM DUAL
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/a/404761/521799&quot; papago-id=&quot;21-1&quot;&gt;튜턴스틸&lt;/a&gt;에 의해 &lt;a href=&quot;https://stackoverflow.com/a/404761/521799&quot; papago-id=&quot;21-1&quot;&gt;받아들여진 답&lt;/a&gt;은 물론 정확합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;select exp(sum(ln(col)))
  from table;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 만약에&lt;/font&gt;&lt;/font&gt;&lt;code&gt;col&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;유형의&lt;/font&gt;&lt;/font&gt;&lt;code&gt;NUMBER&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;를 사용하면 &lt;em papago-id=&quot;24-1&quot;&gt;성능&lt;/em&gt;이 크게 향상됩니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;BINARY_DOUBLE&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대신.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이상적으로, 당신은 그것을 가질 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;BINARY_DOUBLE&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신의 테이블에 있는 열, 하지만 그것이 불가능하다면, 당신은 여전히 캐스팅할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;col&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;로.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;BINARY_DOUBLE&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://blog.jooq.org/2019/09/11/oracles-binary_double-can-be-much-faster-than-number/&quot; papago-id=&quot;28-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;여기에 기록한 간단한 테스트에서 100배 향상&lt;/a&gt;되었습니다. 이 캐스트의 경우:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;select exp(sum(ln(cast(col as binary_double))))
  from table;
&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt; 
 &lt;p papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것을 시뮬레이션할 수 있는 합리적인 기술이 있습니까?&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;한 가지 기술은 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;LISTAGG&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;product_product_retion 문자열을 생성합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;XMLTABLE&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;+&lt;/font&gt;&lt;/font&gt;&lt;code&gt;GETXMLTYPE&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;평가하기:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;WITH cte AS (
  SELECT grp, LISTAGG(l, '*') AS product_expression
  FROM t
  GROUP BY grp
)
SELECT c.*, s.val AS product_value
FROM cte c
CROSS APPLY(
    SELECT *
    FROM XMLTABLE('/ROWSET/ROW/*' 
         PASSING dbms_xmlgen.getXMLType('SELECT ' || c.product_expression || ' FROM dual')
         COLUMNS val NUMBER PATH '.')
) s;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://dbfiddle.uk/?rdbms=oracle_18&amp;amp;fiddle=fa22a22ea196d02ca3d7d8a0f3896d2b&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;34&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;db&amp;lt;&amp;gt;디플 데모&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;35&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;출력:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;+------+---------------------+---------------+
| GRP  | PRODUCT_EXPRESSION  | PRODUCT_VALUE |
+------+---------------------+---------------+
| b    | 2*6                 |            12 |
| a    | 3*5*7               |           105 |
+------+---------------------+---------------+
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr&gt; 
&lt;p papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그룹에서 단일 NULL 값을 처리하는 강력한 버전:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;WITH cte AS (
  SELECT grp, LISTAGG(l, '*') AS product_expression
  FROM t
  GROUP BY grp
)
SELECT c.*, s.val AS product_value
FROM cte c
OUTER APPLY(
   SELECT *
   FROM XMLTABLE('/ROWSET/ROW/*' 
        passing dbms_xmlgen.getXMLType('SELECT ' || c.product_expression || ' FROM dual')
        COLUMNS val NUMBER PATH '.')
   WHERE c.product_expression IS NOT NULL
) s;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://dbfiddle.uk/?rdbms=oracle_18&amp;amp;fiddle=883963d0637e37e3263a6a78cdf8b8c4&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;db&amp;lt;&amp;gt;디플 데모&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;*&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;CROSS/OUTER APPLY(Oracle 12c)는 편의를 위해 사용되며 중첩된 하위 쿼리로 대체할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 접근 방식은 다양한 집계 함수를 생성하는 데 사용될 수 있습니다.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&quot;SQL&quot;에는 여러 가지 의미가 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&quot;Des SQL have&quot;는 특정 ANSI 버전의 SQL 또는 벤더별 구현을 의미합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;David B의 대답은 제가 테스트한 몇 가지 다른 환경에서 작동하는 것이지만, 당신의 환경에 따라 당신이 요청하는 것과 정확히 같은 기능을 작성하거나 찾을 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;Microsoft SQL Server 2005를 사용하고 있었다고 가정하면, 가능한 해결책은 원래 쿼리가 작성한 대로 작동할 수 있도록 제품이라는 사용자 지정 애그리게이터를 .net 코드로 작성하는 것입니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;c#에서 다음 작업을 수행해야 할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT EXP(SUM(LOG([col]))) 
  FROM table;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/403924/&lt;a href=&quot;https://stackoverflow.com/questions/403924/is-there-a-product-function-like-there-is-a-sum-function-in-oracle-sql&quot; target=&quot;_blank&quot; papago-id=&quot;42-1&quot;&gt;is-there-a-product-function-like-there-is-a-sum-function-in-oracle-sql&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/582</guid>
      <comments>https://kingscode.tistory.com/582#entry582comment</comments>
      <pubDate>Tue, 29 Aug 2023 21:40:02 +0900</pubDate>
    </item>
    <item>
      <title>장치 너비 및 높이를 가져오는 방법</title>
      <link>https://kingscode.tistory.com/581</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;장치 너비 및 높이를 가져오는 방법&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;목표-C에서는 다음 코드를 사용하여 장치 폭과 높이를 얻을 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;CGRect sizeRect = [UIScreen mainScreen].applicationFrame
float width = sizeRect.size.width
float height = sizeRect.size.height
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스위프트와 어떻게 이런 일을 할 수 있습니까?&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;시도해 본 적은 없지만 그래야 할 것 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;var bounds = UIScreen.main.bounds
var width = bounds.size.width
var height = bounds.size.height
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스위프트 4.2&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;let screenBounds = UIScreen.main.bounds
let width = screenBounds.width
let height = screenBounds.height
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신의 코드에서 사용하고 싶다면요.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기 있어요.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;func iPhoneScreenSizes() {
    let bounds = UIScreen.main.bounds
    let height = bounds.size.height

    switch height {
    case 480.0:
        print(&quot;iPhone 3,4&quot;)
    case 568.0:
        print(&quot;iPhone 5&quot;)
    case 667.0:
        print(&quot;iPhone 6&quot;)
    case 736.0:
        print(&quot;iPhone 6+&quot;)
    case 812.0:
        print(&quot;iPhone X&quot;)
        print(&quot;iPhone XS&quot;)
        break
    case 896.0:
        print(&quot;iPhone XR&quot;)
        print(&quot;iPhone XS Max&quot;)
        break
    default:
        print(&quot;not an iPhone&quot;)

    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;@Houssni의 대답은 맞지만 Swift에 대해 이야기하고 있고 이 사용 사례가 자주 나올 것이기 때문에 연장을 고려할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;CGRect&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 유사합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;extension CGRect {
    var wh: (w: CGFloat, h: CGFloat) {
        return (size.width, size.height)
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 다음과 같이 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;let (width, height) = UIScreen.mainScreen().applicationFrame.wh
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;만세! :)&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(Swift 3) 대부분의 너비 및 높이 값은 장치의 현재 방향을 기준으로 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;회전을 기반으로 하지 않고 세로 방향 회전에 있는 것처럼 결과를 제공하는 일관된 값을 원한다면 고정 &lt;em papago-id=&quot;10-1&quot;&gt;좌표&lt;/em&gt; 공간을 사용해 보십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;let screenSize = UIScreen.main.fixedCoordinateSpace.bounds
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;var sizeRect = UIScreen.mainScreen().applicationFrame
var width    = sizeRect.size.width
var height   = sizeRect.size.height
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;바로 이와 같이, 그것도 테스트했습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;장치 화면 크기를 찾고 있으므로 가장 간단한 방법은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;let screenSize = UIScreen.mainScreen().bounds.size
let width = screenSize.width
let height = screenSize.height
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;13-1&quot;&gt;Xcode 12&lt;/strong&gt;에 적합합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;func iPhoneScreenSizes() {
        let height = UIScreen.main.bounds.size.height
        switch height {
        case 480.0:
            print(&quot;iPhone 3,4&quot;)
        case 568.0:
            print(&quot;iPhone 5 | iPod touch(7th gen)&quot;)
        case 667.0:
            print(&quot;iPhone 6 | iPhone SE(2nd gen) | iPhone 8&quot;)
        case 736.0:
            print(&quot;iPhone 6+ | iPhone 8+&quot;)
        case 812.0:
            print(&quot;iPhone X | iPhone XS | iPhone 11 Pro&quot;)
        case 896.0:
            print(&quot;iPhone XR | iPhone XS Max | iPhone 11 | iPhone 11 Pro Max&quot;)
        default:
            print(&quot;not an iPhone&quot;)
        }
    }
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;UIS 화면 개체는 하드웨어 기반 디스플레이와 관련된 속성을 정의합니다. iOS 장치에는 기본 화면과 0개 이상의 연결된 화면이 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;각 화면 개체는 관련 디스플레이 및 기타 관심 있는 속성에 대한 경계 사각형을 정의합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Apple Doc URL:&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;a href=&quot;https://developer.apple.com/reference/uikit/uiwindow/1621597-screen&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://developer.apple.com/reference/uikit/uiwindow/1621597-screen&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;빠른 3.0으로 사용자 장치의 높이/폭을 얻으려면&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;let screenHeight = UIScreen.main.bounds.height
let screenWidth = UIScreen.main.bounds.width
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음은 사용 가능한 기능 내의 크기에 대한 업데이트된 목록입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;func iScreenSizes() {
            let height = UIScreen.main.bounds.size.height
            print(&quot;Device height: \(height)&quot;)
            switch height {
            case 480.0:
                print(&quot;iPhone 3 | iPhone 4 | iPhone 4S&quot;)
            case 568.0:
                print(&quot;iPhone 5 | iPhone 5S | iPhone 5C | iPhone SE&quot;)
            case 667.0:
                print(&quot;iPhone 6 | iPhone 7 | iPhone 8 | iPhone SE(2nd gen)&quot;)
            case 736.0:
                print(&quot;iPhone 6+ | iPhone 7+ | iPhone 8+&quot;)
            case 780.0:
                print(&quot;iPhone 12 Mini&quot;)
            case 812.0:
                print(&quot;iPhone X | iPhone XS | iPhone 11 Pro&quot;)
            case 844.0:
                print(&quot;iPhone 12 | iPhone 12 Pro&quot;)
            case 896.0:
                print(&quot;iPhone XR | iPhone XS Max | iPhone 11 | iPhone 11 Pro Max&quot;)
            case 926.0:
                print(&quot;iPhone 12 Pro Max&quot;)
            case 1024.0:
                print(&quot;iPad 1st gen | iPad 2 | iPad 3rd gen | iPad mini | iPad 4th gen | iPad Air | iPad mini 2 | iPad mini 3 | iPad Air 2 | iPad mini 4 | iPad 5th gen | iPad 6th gen | iPad  mini 5&quot;)
            case 1112.0:
                print(&quot;iPad Pro 2nd gen 10.5'' | iPad Air 3&quot;)
            case 1194.0:
                print(&quot;iPad Pro 3rd gen 11.0'' | iPad Pro 4th gen 11.0''&quot;)
            case 1366.0:
                print(&quot;iPad Pro 1st gen 12.9'' | iPad 2nd gen 12.9'' | iPad 3rd gen 12.9'' | iPad Pro 4th gen 12.9''&quot;)
            default:
                print(&quot;not listed in function&quot;)
            }
        }
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;@Adam Smaka의 대답은 가까웠지만 Swift 3에서는 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;let screenBounds = UIScreen.main.bounds
let width = screenBounds.width
let height = screenBounds.height
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt; static func getDeviceType() -&amp;gt; String
    {
        var strDeviceType = &quot;&quot;
        if UIDevice().userInterfaceIdiom == .phone {
            switch UIScreen.main.nativeBounds.height {
            case 1136:
                strDeviceType = &quot;iPhone 5 or 5S or 5C&quot;
            case 1334:
                strDeviceType = &quot;iPhone 6/6S/7/8&quot;
            case 1920, 2208:
                strDeviceType = &quot;iPhone 6+/6S+/7+/8+&quot;
            case 2436:
                strDeviceType = &quot;iPhone X&quot;
            case 2688:
                strDeviceType = &quot;iPhone Xs Max&quot;
            case 1792:
                strDeviceType = &quot;iPhone Xr&quot;
            default:
                strDeviceType = &quot;unknown&quot;
            }
        }
        return strDeviceType
    }
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;let bounds = UIScreen.main.bounds&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Swift 4에서는 NSScreen.main?을 사용해야 했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;장치설명&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;pre&gt;&lt;code&gt;let deviceDescription = NSScreen.main?.deviceDescription          
let screenSize = deviceDescription![.size]
let screenHeight = (screenSize as! NSSize).height
&lt;/code&gt;&lt;/pre&gt; 
&lt;/blockquote&gt;&lt;p&gt;&lt;code&gt;UIScreen.main.bounds&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;iOS의 미래 버전에서는 더 이상 사용되지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;view.window.windowScene.screen&lt;/code&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt; let height = view.window?.windowScene?.screen.bounds.height ?? 0
 let width = view.window?.windowScene?.screen.bounds.width ?? 0
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/24084941/&lt;a href=&quot;https://stackoverflow.com/questions/24084941/how-to-get-device-width-and-height&quot; target=&quot;_blank&quot; papago-id=&quot;23-1&quot;&gt;how-to-get-device-width-and-height&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/581</guid>
      <comments>https://kingscode.tistory.com/581#entry581comment</comments>
      <pubDate>Tue, 29 Aug 2023 21:39:30 +0900</pubDate>
    </item>
    <item>
      <title>SVG 경로 요소를 배경 이미지로 채웁니다.</title>
      <link>https://kingscode.tistory.com/580</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;SVG 경로 요소를 배경 이미지로 채웁니다.&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;설정이 가능합니까?&lt;/font&gt;&lt;/font&gt;&lt;code&gt;background-image&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;SVG의 경우&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;path&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;요소?&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어, 내가 요소를 설정하면,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;class=&quot;wall&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;CSS식&lt;/font&gt;&lt;/font&gt;&lt;code&gt;.wall {fill: red;}&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;작동하지만,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;.wall{background-image: url(wall.jpg)}&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;.wall {background-color: red;}&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;배경을 &lt;a href=&quot;http://www.w3.org/TR/SVG/pservers.html#Patterns&quot; rel=&quot;noreferrer&quot; papago-id=&quot;9-1&quot;&gt;패턴&lt;/a&gt;으로 만들어 이 작업을 수행할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;defs&amp;gt;
  &amp;lt;pattern id=&quot;img1&quot; patternUnits=&quot;userSpaceOnUse&quot; width=&quot;100&quot; height=&quot;100&quot;&amp;gt;
    &amp;lt;image href=&quot;wall.jpg&quot; x=&quot;0&quot; y=&quot;0&quot; width=&quot;100&quot; height=&quot;100&quot; /&amp;gt;
  &amp;lt;/pattern&amp;gt;
&amp;lt;/defs&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이미지에 따라 너비와 높이를 조정한 후 다음과 같이 경로에서 참조합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;path d=&quot;M5,50
         l0,100 l100,0 l0,-100 l-100,0
         M215,100
         a50,50 0 1 1 -100,0 50,50 0 1 1 100,0
         M265,50
         l50,100 l-100,0 l50,-100
         z&quot;
  fill=&quot;url(#img1)&quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;a href=&quot;http://www.boogdesign.com/examples/svg/path-pattern-fill.svg&quot; rel=&quot;noreferrer&quot; papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;작업 예제&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/3796025/&lt;a href=&quot;https://stackoverflow.com/questions/3796025/fill-svg-path-element-with-a-background-image&quot; target=&quot;_blank&quot; papago-id=&quot;12-1&quot;&gt;fill-svg-path-element-with-a-background-image&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/580</guid>
      <comments>https://kingscode.tistory.com/580#entry580comment</comments>
      <pubDate>Tue, 29 Aug 2023 21:35:46 +0900</pubDate>
    </item>
    <item>
      <title>오류: org.springframework.web.지원되지 않는 HttpMediaType예외:내용 유형 '텍스트/문자열; 문자 집합=UTF-8'은 지원되지 않습니다.</title>
      <link>https://kingscode.tistory.com/579</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오류: org.springframework.web.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;지원되지 않는 HttpMediaType&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;예외:&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;내용 유형 '텍스트/문자열; 문자 집합=&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;UTF-8'은 지원되지 않습니다.&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 Spring Data 신입사원입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;계속 오류가 발생합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'text/plain;charset=UTF-8' not supported&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 내부 소비를 바꾸려고 노력했습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@RequestMapping&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에 대한 주석.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;text/plain&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 불행히도 도움이 되지 않았습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아이디어 있어요?&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;감사해요.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내 코드는 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;package com.budget.processing.application;


import com.budget.business.service.Budget;
import com.budget.business.service.BudgetItem;
import com.budget.business.service.BudgetService;
import com.budget.processing.dto.BudgetDTO;
import com.budget.processing.dto.BudgetPerConsumerDTO;
import com.utils.Constants;
import com.common.utils.config.exception.GeneralException;
import org.apache.log4j.Logger;
import org.joda.time.YearMonth;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;

import javax.ws.rs.core.MediaType;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;


@Controller(&quot;budgetManager&quot;)
@RequestMapping(value = &quot;budget&quot;, produces  = Constants.RESPONSE_APP_JSON)
@Transactional(propagation = Propagation.REQUIRED)
public class BudgetManager {

private static final Logger logger = Logger.getLogger(BudgetManager.class);


@Autowired
private BudgetService budgetService;


@RequestMapping(method = RequestMethod.GET)
public
@ResponseBody
Collection&amp;lt;BudgetDTO&amp;gt; getBudgetMonthlyAllConsumers() throws GeneralException {

    List&amp;lt;Budget&amp;gt; budgetList = budgetService.getBudgetForAllConsumers();
    List&amp;lt;BudgetDTO&amp;gt; bugetDtos = new ArrayList&amp;lt;&amp;gt;();
    for (Budget budget : budgetList) {
        BudgetDTO budgetDTO = generateBudgetDto(budget);
        bugetDtos.add(budgetDTO);
    }
    return bugetDtos;
}


@RequestMapping(method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON)
public
@ResponseBody
Collection&amp;lt;BudgetDTO&amp;gt; updateConsumerBudget(@RequestParam(value = &quot;budgetPerDate&quot;, required = false)

                          ArrayList&amp;lt;BudgetPerConsumerDTO&amp;gt; budgetPerDate) throws GeneralException, ParseException {

    List&amp;lt;BudgetItem&amp;gt; budgetItemList = new ArrayList&amp;lt;&amp;gt;();
    List&amp;lt;Budget&amp;gt; budgets = new ArrayList&amp;lt;&amp;gt;();
    if (budgetPerDate != null) {
        for (BudgetPerConsumerDTO budgetPerConsumerDTO : budgetPerDate) {
            budgetItemList.add(budgetService.createBudgetItemForConsumer(budgetPerConsumerDTO.getId(), new YearMonth(budgetPerConsumerDTO.getDate()), budgetPerConsumerDTO.getBudget()));
        }
    }

    budgets = budgetService.getBudgetForAllConsumers();
    List&amp;lt;BudgetDTO&amp;gt; budgetDTOList = new ArrayList&amp;lt;&amp;gt;();
    for (Budget budget : budgets) {
        BudgetDTO budgetDto = generateBudgetDto(budget);
        budgetDTOList.add(budgetDto);
    }
    return budgetDTOList;

}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;}&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예외는 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;ERROR 2014-07-26 18:05:10.737 (GlobalExceptionHandler.eITFMSException: 86) Error executing Web Service org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'text/plain;charset=UTF-8' not supported
at org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMapping.handleNoMatch(RequestMappingInfoHandlerMapping.java:215)
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lookupHandlerMethod(AbstractHandlerMethodMapping.java:289)
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:229)
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:56)
at org.springframework.web.servlet.handler.AbstractHandlerMapping.getHandler(AbstractHandlerMapping.java:298)
at org.springframework.web.servlet.DispatcherServlet.getHandler(DispatcherServlet.java:1091)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;요청은 그렇게 보입니다: 저는 Simple Rest Template Google Extension을 사용하고 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;요청은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;localhost:8080/rest
1 requests ❘ 140 B transferred
HeadersPreviewResponseCookiesTiming
Remote Address:localhost:8080
Request URL: localhost:8080/rest/budget
Request Method:PUT
Status Code:500 Internal Server Error
Request Headersview source
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,he;q=0.6
Connection:keep-alive
Content-Length:331
Content-Type:text/plain;charset=UTF-8
Cookie:JSESSIONID=AE87EEB7A73B9F9E81956231C1735814
Host:10.23.204.204:8080
Origin:chrome-extension://fhjcajmcbmldlhcimfajhfbgofnpcjmb
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
Request Payloadview parsed
{
&quot;budgetPerDate&quot;:
[

         {
            &quot;id&quot;:942,
            &quot;date&quot;:[
               2014,
               1,
               1
            ],
    &quot;budget&quot;: 100
         },
         {
            &quot;id&quot;:942,
            &quot;date&quot;:[
               2014,
               2,
               1
            ],
    &quot;budget&quot;: 150
         }
 ]
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의견에 언급된 내용을 바탕으로 가장 간단한 해결책은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@RequestMapping(method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public Collection&amp;lt;BudgetDTO&amp;gt; updateConsumerBudget(@RequestBody SomeDto someDto) throws GeneralException, ParseException {

    //whatever

}

class SomeDto {

   private List&amp;lt;WhateverBudgerPerDateDTO&amp;gt; budgetPerDate;


  //getters setters
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;솔루션은 당신이 만들고 있는 HTTP 요청이 실제로 가지고 있다고 가정합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;Content-Type:application/json&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대신에&lt;/font&gt;&lt;/font&gt;&lt;code&gt;text/plain&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음을 통해 게시 요청을 하는 경우&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Postman&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 이 두 가지 옵션을 선택했는지 확인합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;16-2&quot;&gt;JSON(애플리케이션/json)&lt;/strong&gt;을 선택해야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;17-0&quot;&gt;내용&lt;/strong&gt; 유형 - 응용 프로그램/json&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/LRorI.png&quot; rel=&quot;noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/LRorI.png&quot; alt=&quot;enter image description here&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 알고보니 제가 가지고 있었습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@JsonManagedReferece&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;없는 하나의 실체로&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@JsonBackReference&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다른 참조 엔티티에 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 마셜러가 실수를 하게 만들었습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;효과가 있습니다!&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;포스트맨을 통해 포스트 요청을 하는 경우, 다음 두 가지 옵션을 선택했는지 확인합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://arabicprogrammer.com/article/74621056167/&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://arabicprogrammer.com/article/74621056167/&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/uNn2a.jpg&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/uNn2a.jpg&quot; alt=&quot;enter image description here&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;알겠습니다. 문제의 원인은 직렬화/직렬화였습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;보내고 받는 객체는 코드가 제출되고 코드와 마스킹된 Phone Number가 반환되는 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@ApiObject(description = &quot;What the object is for.&quot;)
@JsonIgnoreProperties(ignoreUnknown = true)
public class CodeVerification {

    @ApiObjectField(description = &quot;The code which is to be verified.&quot;)
    @NotBlank(message = &quot;mandatory&quot;)
    private final String code;

    @ApiObjectField(description = &quot;The masked mobile phone number to which the code was verfied against.&quot;)
    private final String maskedMobileNumber;

    public codeVerification(@JsonProperty(&quot;code&quot;) String code, String maskedMobileNumber) {
        this.code = code;
        this.maskedMobileNumber = maskedMobileNumber;
    }

    public String getcode() {
        return code;
    }

    public String getMaskedMobileNumber() {
        return maskedMobileNumber;
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문제는 생성자에서 마스킹된 모바일 번호에 대해 정의된 Json Property가 없다는 것입니다. 즉, 생성자는&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;public codeVerification(@JsonProperty(&quot;code&quot;) String code, @JsonProperty(&quot;maskedMobileNumber&quot;) String maskedMobileNumber) {
    this.code = code;
    this.maskedMobileNumber = maskedMobileNumber;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제거하여 해결했습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@JsonManagedReference&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 계속&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@JsonBackReference&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;27&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;무한 루프를 피하기 위해.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/24972437/&lt;a href=&quot;https://stackoverflow.com/questions/24972437/error-org-springframework-web-httpmediatypenotsupportedexception-content-type&quot; target=&quot;_blank&quot; papago-id=&quot;28-1&quot;&gt;error-org-springframework-web-httpmediatypenotsupportedexception-content-type&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/579</guid>
      <comments>https://kingscode.tistory.com/579#entry579comment</comments>
      <pubDate>Tue, 29 Aug 2023 21:33:53 +0900</pubDate>
    </item>
    <item>
      <title>MariaDBC++ 커넥터 컴파일</title>
      <link>https://kingscode.tistory.com/578</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;MariaDBC++ 커넥터 컴파일&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;mariadbc++ 커넥터를 사용해야 하는 간단한 c++ 파일을 컴파일하려고 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떤 이유에서인지 저는 그것 때문에 많은 문제에 부딪혔습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이상한 오류 메시지가 표시됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 그들을 이해하지도 못하고, 어떻게 고쳐야 할지도 모릅니다.&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 많은 조사를 했지만 아무도 이런 문제에 부딪히지 않았거나 찾을 수 없었습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음 패키지를 설치했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;mariadb-client
mariadb-client-5.5
mariadb-server
libmariadbclient18
libmysqlclient18
libmysqlcppconn7
libmysqlcppconn-dev
libmariadbclient-dev
libmariadb-dev
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 x64 Ubuntu 14.04 시스템(글쎄요, Pinguy OS, 하지만 그건 중요하지 않아요.)&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 다음과 같은 프로그램을 구축하려고 했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;#include &amp;lt;my_global.h&amp;gt;
#include &amp;lt;mysql.h&amp;gt;
#include &quot;mysql_driver.h&quot; 

int main(int argc, char **argv)
{  
  sql::mysql::MySQL_Driver *driver;
  sql::Connection *con;
  sql::Statement *stmt;
  driver = sql::mysql::MySQL_Driver::get_mysql_driver_instance();
  con = driver-&amp;gt;connect(&quot;tcp://localhost:3306&quot;,&quot;root&quot;, &quot;herein&quot;);
  if (!con-&amp;gt;isValid()) exit(1);

  stmt = con-&amp;gt;createStatement();
  stmt-&amp;gt;execute(&quot;use testtb&quot;);

  stmt-&amp;gt;execute(&quot;INSERT INTO Testtable(id, label) VALUES (1, 1)&quot;);
  delete stmt;
  delete con;
  return 1;
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 저는 다음 명령을 시도했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;g++ -lmysqlcppconn -g src/test_mariadb.cpp -o bin/test_mariadb $(mysql_config --cflags) $(mysql_config --libs)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기서 src/mysource 파일은 및 bin/mysinary 파일입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;마지막으로 컴파일 오류가 표시됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;In file included from /usr/include/c++/4.8/bits/char_traits.h:39:0,
                 from /usr/include/c++/4.8/ios:40,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from /usr/include/boost/assert.hpp:82,
                 from /usr/include/boost/smart_ptr/scoped_ptr.hpp:15,
                 from /usr/include/boost/scoped_ptr.hpp:14,
                 from /usr/include/mysql_driver.h:30,
                 from src/test_mariadb.cpp:3:
/usr/include/c++/4.8/bits/stl_algobase.h:239:56: error: macro &quot;min&quot; passed 3 arguments, but takes just 2
     min(const _Tp&amp;amp; __a, const _Tp&amp;amp; __b, _Compare __comp)
                                                        ^
/usr/include/c++/4.8/bits/stl_algobase.h:260:56: error: macro &quot;max&quot; passed 3 arguments, but takes just 2
     max(const _Tp&amp;amp; __a, const _Tp&amp;amp; __b, _Compare __comp)
                                                        ^
In file included from /usr/include/boost/mpl/aux_/begin_end_impl.hpp:21:0,
                 from /usr/include/boost/mpl/begin_end.hpp:18,
                 from /usr/include/boost/mpl/iter_fold.hpp:18,
                 from /usr/include/boost/variant/detail/initializer.hpp:28,
                 from /usr/include/boost/variant/variant.hpp:31,
                 from /usr/include/boost/variant.hpp:17,
                 from /usr/include/cppconn/connection.h:31,
                 from /usr/include/cppconn/driver.h:30,
                 from /usr/include/mysql_driver.h:32,
                 from src/test_mariadb.cpp:3:
/usr/include/boost/mpl/aux_/has_begin.hpp:20:57: error: macro &quot;test&quot; passed 2 arguments, but takes just 1
 BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_begin, begin, true)
                                                         ^
In file included from /usr/include/boost/mpl/sequence_tag.hpp:18:0,
                 from /usr/include/boost/mpl/begin_end.hpp:19,
                 from /usr/include/boost/mpl/iter_fold.hpp:18,
                 from /usr/include/boost/variant/detail/initializer.hpp:28,
                 from /usr/include/boost/variant/variant.hpp:31,
                 from /usr/include/boost/variant.hpp:17,
                 from /usr/include/cppconn/connection.h:31,
                 from /usr/include/cppconn/driver.h:30,
                 from /usr/include/mysql_driver.h:32,
                 from src/test_mariadb.cpp:3:
/usr/include/boost/mpl/aux_/has_tag.hpp:20:54: error: macro &quot;test&quot; passed 2 arguments, but takes just 1
 BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_tag, tag, false)
                                                      ^
In file included from /usr/include/boost/mpl/aux_/O1_size_impl.hpp:20:0,
                 from /usr/include/boost/mpl/O1_size.hpp:19,
                 from /usr/include/boost/mpl/iter_fold.hpp:19,
                 from /usr/include/boost/variant/detail/initializer.hpp:28,
                 from /usr/include/boost/variant/variant.hpp:31,
                 from /usr/include/boost/variant.hpp:17,
                 from /usr/include/cppconn/connection.h:31,
                 from /usr/include/cppconn/driver.h:30,
                 from /usr/include/mysql_driver.h:32,
                 from src/test_mariadb.cpp:3:
/usr/include/boost/mpl/aux_/has_size.hpp:20:1: error: macro &quot;test&quot; passed 2 arguments, but takes just 1
 BOOST_MPL_HAS_XXX_TRAIT_DEF(size)
 ^
In file included from /usr/include/boost/mpl/apply_wrap.hpp:23:0,
                 from /usr/include/boost/mpl/bind.hpp:27,
                 from /usr/include/boost/mpl/lambda.hpp:18,
                 from /usr/include/boost/mpl/iter_fold.hpp:20,
                 from /usr/include/boost/variant/detail/initializer.hpp:28,
                 from /usr/include/boost/variant/variant.hpp:31,
                 from /usr/include/boost/variant.hpp:17,
                 from /usr/include/cppconn/connection.h:31,
                 from /usr/include/cppconn/driver.h:30,
                 from /usr/include/mysql_driver.h:32,
                 from src/test_mariadb.cpp:3:
/usr/include/boost/mpl/aux_/has_apply.hpp:22:58: error: macro &quot;test&quot; passed 2 arguments, but takes just 1
 BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_apply, apply, false)
                                                          ^
In file included from /usr/include/boost/mpl/quote.hpp:23:0,
                 from /usr/include/boost/mpl/aux_/full_lambda.hpp:25,
                 from /usr/include/boost/mpl/lambda.hpp:22,
                 from /usr/include/boost/mpl/iter_fold.hpp:20,
                 from /usr/include/boost/variant/detail/initializer.hpp:28,
                 from /usr/include/boost/variant/variant.hpp:31,
                 from /usr/include/boost/variant.hpp:17,
                 from /usr/include/cppconn/connection.h:31,
                 from /usr/include/cppconn/driver.h:30,
                 from /usr/include/mysql_driver.h:32,
                 from src/test_mariadb.cpp:3:
/usr/include/boost/mpl/aux_/has_type.hpp:20:55: error: macro &quot;test&quot; passed 2 arguments, but takes just 1
 BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(has_type, type, true)
                                                       ^
In file included from src/test_mariadb.cpp:1:0:
/usr/include/c++/4.8/bits/stl_algobase.h:193:5: error: expected unqualified-id before ‘const’
     min(const _Tp&amp;amp; __a, const _Tp&amp;amp; __b)
     ^
/usr/include/c++/4.8/bits/stl_algobase.h:193:5: error: expected ‘)’ before ‘const’
/usr/include/c++/4.8/bits/stl_algobase.h:193:5: error: expected ‘)’ before ‘const’
/usr/include/c++/4.8/bits/stl_algobase.h:193:5: error: expected initializer before ‘const’
/usr/include/c++/4.8/bits/stl_algobase.h:216:5: error: expected unqualified-id before ‘const’
     max(const _Tp&amp;amp; __a, const _Tp&amp;amp; __b)
     ^
/usr/include/c++/4.8/bits/stl_algobase.h:216:5: error: expected ‘)’ before ‘const’
/usr/include/c++/4.8/bits/stl_algobase.h:216:5: error: expected ‘)’ before ‘const’
/usr/include/c++/4.8/bits/stl_algobase.h:216:5: error: expected initializer before ‘const’
In file included from /usr/include/c++/4.8/bits/char_traits.h:39:0,
                 from /usr/include/c++/4.8/ios:40,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from /usr/include/boost/assert.hpp:82,
                 from /usr/include/boost/smart_ptr/scoped_ptr.hpp:15,
                 from /usr/include/boost/scoped_ptr.hpp:14,
                 from /usr/include/mysql_driver.h:30,
                 from src/test_mariadb.cpp:3:
/usr/include/c++/4.8/bits/stl_algobase.h:239:5: error: ‘std::min’ declared as an ‘inline’ variable
     min(const _Tp&amp;amp; __a, const _Tp&amp;amp; __b, _Compare __comp)
     ^
/usr/include/c++/4.8/bits/stl_algobase.h:239:5: error: template declaration of ‘const _Tp&amp;amp; std::min’
/usr/include/c++/4.8/bits/stl_algobase.h:242:7: error: expected primary-expression before ‘if’
       if (__comp(__b, __a))
       ^
/usr/include/c++/4.8/bits/stl_algobase.h:242:7: error: expected ‘}’ before ‘if’
/usr/include/c++/4.8/bits/stl_algobase.h:244:7: error: expected unqualified-id before ‘return’
       return __a;
       ^
/usr/include/c++/4.8/bits/stl_algobase.h:260:5: error: ‘max’ declared as an ‘inline’ variable
     max(const _Tp&amp;amp; __a, const _Tp&amp;amp; __b, _Compare __comp)
     ^
/usr/include/c++/4.8/bits/stl_algobase.h:260:5: error: template declaration of ‘const _Tp&amp;amp; max’
/usr/include/c++/4.8/bits/stl_algobase.h:263:7: error: expected primary-expression before ‘if’
       if (__comp(__a, __b))
       ^
/usr/include/c++/4.8/bits/stl_algobase.h:263:7: error: expected ‘}’ before ‘if’
/usr/include/c++/4.8/bits/stl_algobase.h:265:7: error: expected unqualified-id before ‘return’
       return __a;
       ^
/usr/include/c++/4.8/bits/stl_algobase.h:266:5: error: expected declaration before ‘}’ token
     }
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;포함한 헤더에는 이름이 정의된 전처리기 매크로가 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;min&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;max&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;test&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 포함된 다른 헤더 파일에 사용된 식별자(예: 메서드 이름)와 충돌합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이러한 매크로가 다음 헤더 중 하나에 정의되었다고 가정합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;#include &amp;lt;my_global.h&amp;gt;
#include &amp;lt;mysql.h&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;추가할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;#undef&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;포함하기 전의 s&lt;/font&gt;&lt;/font&gt;&lt;code&gt;mysql_driver.h&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;#include &amp;lt;my_global.h&amp;gt;
#include &amp;lt;mysql.h&amp;gt;
#undef min
#undef max
#undef test
#include &quot;mysql_driver.h&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 파일을 포함하는 순서를 다시 정렬하거나, 파일을 정의하는 헤더를 조사하여 이러한 매크로의 정의를 사용하지 않도록 설정할 수 있는지 여부를 확인할 수도 있습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/29239364/&lt;a href=&quot;https://stackoverflow.com/questions/29239364/mariadb-c-connector-compile&quot; target=&quot;_blank&quot; papago-id=&quot;18-1&quot;&gt;mariadb-c-connector-compile&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/578</guid>
      <comments>https://kingscode.tistory.com/578#entry578comment</comments>
      <pubDate>Tue, 29 Aug 2023 21:33:06 +0900</pubDate>
    </item>
    <item>
      <title>MySQL - LIKE를 사용하여 정확한 단어 일치를 검색하는 방법?</title>
      <link>https://kingscode.tistory.com/577</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;MySQL - LIKE를 사용하여 정확한 단어 일치를 검색하는 방법?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 쿼리를 사용하여 데이터를 선택합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;mysql_query(&quot;SELECT * FROM products WHERE product_name LIKE '%&quot;.$search.&quot;%'&quot;);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;유일한 문제는 가끔 제가 원하는 것보다 더 많은 것을 선택한다는 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어, &quot;BLA&quot; 제품을 선택하고 싶은데, 제 쿼리는 &quot;BLALA&quot; 제품도 선택합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;확실히 말하자면, 제가 &quot;제품 1&quot;을 선택하고 싶다면, 저는 &quot;제품 11&quot;을 선택하는 쿼리를 원하지 않습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그걸 어떻게 관리하는지 아는 사람?&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;감사해요.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;단어 경계만 검색하시겠습니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇다면 조잡한 버전은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT * FROM products WHERE product_name LIKE &quot;% foo %&quot;;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아니면 당신은 조금 더 똑똑해지고 다음과 같은 단어의 경계를 찾을 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;REGEXP&lt;/code&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT * FROM products WHERE product_name RLIKE &quot;[[:&amp;lt;:]]foo[[:&amp;gt;:]]&quot;;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;구글에서 이 질문을 발견했습니다. 그래서 저는 몇몇 사람들이 여전히 이것을 발견할 수도 있다고 생각합니다. 그래서 여기 제 꽤 무례한 시도가 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT * FROM products
WHERE product_name LIKE 'BLA %' #First word proceeded by more words
OR WHERE product_name LIKE '% BLA' #Last word preceded by other words
OR WHERE product_name LIKE '% BLA %' #Word in between other words
OR WHERE product_name = 'BLA'; #Just the word itself
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;효율성에 대해 확신할 수 없거나 모든 경우에 적용되는지 여부를 판단할 수 없으므로, 정말 비효율적이거나 너무 비우호적인 경우에는 언제든지 반대표를 던지십시오.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;정규식을 사용해 보십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT 
    *
FROM
    `products`
WHERE
    product_name regexp '(^|[[:space:]])BLA([[:space:]]|$)';
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;SELECT  *
FROM    products
WHERE   product_name = 'BLA'
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;정확하게 선택합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;BLA&lt;/code&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT  *
FROM    products
WHERE   product_name LIKE 'BLA%'
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;을 선택합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;BLADDER&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;BLACKBERRY&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 아닙니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;REBLAND&lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;선택하기&lt;/font&gt;&lt;/font&gt;&lt;code&gt;BLA&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문자열의 첫 번째 단어로 다음을 사용합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT  *
FROM    products
WHERE   product_name RLIKE '^Bla[[:&amp;gt;::]]'
        AND product_name LIKE 'Bla%'
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;두 번째 조건은 인덱스가 있는 경우 쿼리 성능을 향상시킬 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;product_name&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제거한다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;LIKE&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;키워드 및 사용&lt;/font&gt;&lt;/font&gt;&lt;code&gt;=&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;정확히 일치하는&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;편집&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://php.net/manual/en/function.mysql-real-escape-string.php&quot; rel=&quot;nofollow&quot; papago-id=&quot;23-1&quot;&gt;&lt;strong papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;mysql_real_message_string&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;을 사용하여 사용자 입력을 피하는 것을 잊지 마십시오. 그렇지 않으면 누군가 입력 상자 안에 따옴표를 입력하면 쿼리가 실패합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$search=mysql_real_escape_string($search);
mysql_query(&quot;SELECT * FROM products WHERE product_name='&quot;.$search.&quot;'&quot;);
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그럼 LIKE를 사용하지 말고 평등을 검색해보세요.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;mysql_query(&quot;SELECT * FROM products WHERE product_name = '&quot;.$search.&quot;'&quot;);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;참고로 $search를 쿼리에 사용하기 전에 sanitize/escape 해주시기 바랍니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 가능한 모든 옵션을 커버할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT 
    * 
FROM 
    `products` 
WHERE
    `product_name` like 'BLA' -- Column cointains just that word
    OR `product_name` like 'BLA %' -- The word appears at the beginning
    OR `product_name` like '% BLA' -- The word appears at the end
    OR `product_name` like '% BLA %'; -- The word appears in the middle
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;등호(=)를 사용하시겠습니까?&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;mysql_query(&quot;SELECT * FROM products WHERE product_name = '&quot;.$search.&quot;'&quot;); 
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;정확한 단어를 일치시키려면 사용하지 마십시오.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;LIKE&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;편집: 그러면 상황이 좀 정리됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;검색어 뒤에 공백을 추가하면 됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는 항상 검색어에 하이픈(-)을 추가할 수도 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;mysql_query(&quot;SELECT * FROM products WHERE product_name LIKE '&quot;.$search.&quot; -%'&quot;); 
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;쿼리에서 정규식 사용 시도&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;mysql_query(&quot;SELECT * FROM products WHERE product_name regexp '&quot;.$search.&quot;'&quot;);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음을 사용하여 MySql에서 정확한 단어 일치를 검색하려면&lt;/font&gt;&lt;/font&gt;&lt;code&gt;LIKE&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 다음을 사용합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-sql prettyprint-override&quot;&gt;&lt;code&gt;SELECT * FROM tableName WHERE columnName LIKE 'your_query' ; 
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;35&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;라라벨 웅변술에서는 다음과 같이 할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Category::where('name', 'RLIKE ', &quot;[[:&amp;lt;:]]&quot;$words&quot;[[:&amp;gt;:]]&quot;);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;원시 쿼리에서는 다음과 같이 검색할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT * FROM categories WHERE name RLIKE &quot;[[:&amp;lt;:]]categoryNameHere[[:&amp;gt;:]]&quot;;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 이렇게 선택 쿼리를 사용할 수 있습니다. 저는 &lt;strong papago-id=&quot;37-1&quot;&gt;케이크&lt;/strong&gt;에도 사용합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;PHP와 그것은 도움이 &lt;strong papago-id=&quot;37-1&quot;&gt;됩니다&lt;/strong&gt;.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Select * from `users` where username COLLATE latin1_general_cs LIKE '%$email%'
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/5743177/&lt;a href=&quot;https://stackoverflow.com/questions/5743177/mysql-how-to-search-for-exact-word-match-using-like&quot; target=&quot;_blank&quot; papago-id=&quot;38-1&quot;&gt;mysql-how-to-search-for-exact-word-match-using-like&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/577</guid>
      <comments>https://kingscode.tistory.com/577#entry577comment</comments>
      <pubDate>Tue, 29 Aug 2023 21:32:03 +0900</pubDate>
    </item>
    <item>
      <title>부울 모드에서 마리아DB 전체 텍스트 검색에서 사용할 수 있는 문자는 무엇입니까?</title>
      <link>https://kingscode.tistory.com/576</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부울 모드에서 마리아DB 전체 텍스트 검색에서 사용할 수 있는 문자는 무엇입니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;검색을 위해 MariaDB 10.1.37 InnoDB 테이블의 SQL 쿼리에 PHP를 통해 사용자 입력을 전달하고 싶습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;잘못된 SQL 쿼리를 생성하지 않도록 보호합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;현재 다음과 같은 알려진 연산자 문자를 제거하고 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;preg_replace('/[\+\-\&amp;lt;\&amp;gt;\(\)\~\*\&quot;]/', ' ', $user_input)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 나는 a를 추가합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;*&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;각 단어에 대한 문자&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 사용자 입력이&lt;/font&gt;&lt;/font&gt;&lt;code&gt;foo bar&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;쿼리는 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT columnname, MATCH(columnname) AGAINST('foo* bar*' IN BOOLEAN MODE) AS score
FROM tablename;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;안타깝게도 사용자가 입력할 수 있는 다른 문자가 있어 쿼리를 위반할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어, 사용자가 입력하는 경우&lt;/font&gt;&lt;/font&gt;&lt;code&gt;%&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;질문은 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;AGAINST('%*' IN BOOLEAN MODE)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 오류가 나타납니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;syntax error, unexpected $end, expecting FTS_TERM or FTS_NUMB or '*'&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문제를 일으키는 문자(블랙리스트)를 필터링하거나 문제가 없는 문자를 화이트리스트에 추가할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문서에서 허용되거나 허용되지 않는 문자를 정의하는 내용을 찾을 수 없습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;허용되거나 허용되지 않는 알려진 문자 집합이 있습니까?&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;반대의 접근 방식을 택하시겠습니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;허용할 문자를 결정합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$x = preg_replace(&quot;/[^-'a-zA-Z0-9]/&quot;, ' ', $user_input);
$x = trim($x, '-');
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;보관:&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하이픈으로 연결된 단어 대시&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;축약에 대한 아포스트로피&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문제를 일으킬 수 있는 것은 잘라냅니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제거:&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더하기 및 별표 - FT 구문으로 인해&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;슬래시 및 이중 따옴표 - PHP 구문&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 아포스트로피가 아닌 이중 따옴표를 사용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;AGAINST(&quot;foo* bar*&quot; IN BOOLEAN MODE) 
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(아래의 설명도 참조하십시오.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/56261756/&lt;a href=&quot;https://stackoverflow.com/questions/56261756/what-characters-are-allowed-in-mariadb-full-text-search-in-boolean-mode&quot; target=&quot;_blank&quot; papago-id=&quot;22-1&quot;&gt;what-characters-are-allowed-in-mariadb-full-text-search-in-boolean-mode&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/576</guid>
      <comments>https://kingscode.tistory.com/576#entry576comment</comments>
      <pubDate>Tue, 29 Aug 2023 21:31:33 +0900</pubDate>
    </item>
    <item>
      <title>확장 및 축소 방법확장 및 축소 방법Javascript를 사용하시겠습니까?</title>
      <link>https://kingscode.tistory.com/575</link>
      <description>&lt;h2&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;확장 및 축소 방법&lt;/font&gt;&lt;/font&gt;&lt;div papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Javascript를 사용하시겠습니까?&lt;/font&gt;&lt;/div&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 제 사이트에 목록을 만들었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 목록은 내 데이터베이스의 정보로 작성되는 각 루프에 대해 작성됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;각 품목은 섹션이 다른 컨테이너이므로 1, 2, 3 등과 같은 목록이 아닙니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 정보와 함께 반복되는 부분을 나열하고 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;각 섹션에는 하위 섹션이 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;일반적인 빌드는 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div&amp;gt;
    &amp;lt;fieldset class=&quot;majorpoints&quot; onclick=&quot;majorpointsexpand($(this).find('legend').innerHTML)&quot;&amp;gt;
    &amp;lt;legend class=&quot;majorpointslegend&quot;&amp;gt;Expand&amp;lt;/legend&amp;gt;
    &amp;lt;div style=&quot;display:none&quot; &amp;gt;
        &amp;lt;ul&amp;gt;
            &amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서, 저는 onclick=&quot;주요 포인트 확장&quot;(이것)으로 함수를 부르려고 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;을 찾아내다).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;내부 HTML)&quot;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 조작하려는 div는 기본적으로 style=&quot;display:display&quot;이며, 클릭 시 javascript를 사용하여 표시하고 싶습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&quot;$(이것).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;을 찾아내다).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;innerHTML&quot;은 함수의 인수로 &quot;Expand&quot;를 전달하려고 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;자바스크립트는 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;function majorpointsexpand(expand)
    {
        if (expand == &quot;Expand&quot;)
            {
                document.write.$(this).find('div').style = &quot;display:inherit&quot;;
                document.write.$(this).find('legend').innerHTML = &quot;Collapse&quot;;
            }
        else
            {
                document.write.$(this).find('div').style = &quot;display:none&quot;;
                document.write.$(this).find('legend').innerHTML = &quot;Expand&quot;;
            }
    }
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 제 문제가 구문이라고 거의 100% 확신하며 자바스크립트가 어떻게 작동하는지 잘 알지 못합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음 문서에 연결된 jQuery가 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;script src=&quot;http://code.jquery.com/jquery-1.9.1.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에서&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부분.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;좋아요, 여기 두 가지 옵션이 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;jQuery UI의 아코디언을 사용합니다. 멋지고 쉽고 빠릅니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;자세한 &lt;a href=&quot;http://jqueryui.com/accordion/&quot; rel=&quot;noreferrer&quot; papago-id=&quot;12-1&quot;&gt;내용&lt;/a&gt;은 여기에서 확인&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아니면, 여전히 혼자서 이 일을 하고 싶다면, 당신은 그것을 제거할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;fieldset&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(어쨌든 이것에 사용하는 것은 의미론적으로 옳지 않습니다) 그리고 스스로 구조를 만듭니다.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇게 하는 방법은 이렇습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 HTML 구조를 만듭니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div class=&quot;container&quot;&amp;gt;
    &amp;lt;div class=&quot;header&quot;&amp;gt;&amp;lt;span&amp;gt;Expand&amp;lt;/span&amp;gt;

    &amp;lt;/div&amp;gt;
    &amp;lt;div class=&quot;content&quot;&amp;gt;
        &amp;lt;ul&amp;gt;
            &amp;lt;li&amp;gt;This is just some random content.&amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;This is just some random content.&amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;This is just some random content.&amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;This is just some random content.&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 CSS와 함께: (이것은 다음을 숨기기 위한 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;.content&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;페이지가 로드될 때 내용을 입력합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;.container .content {
    display: none;
    padding : 5px;
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음, jQuery를 사용하여 a를 작성합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;click&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;헤더에 대한 이벤트입니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$(&quot;.header&quot;).click(function () {

    $header = $(this);
    //getting the next element
    $content = $header.next();
    //open up the content needed - toggle the slide- if visible, slide up, if not slidedown.
    $content.slideToggle(500, function () {
        //execute this after slideToggle is done
        //change text of header based on visibility of content div
        $header.text(function () {
            //change text based on condition
            return $content.is(&quot;:visible&quot;) ? &quot;Collapse&quot; : &quot;Expand&quot;;
        });
    });

});
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://jsfiddle.net/hungerpain/eK8X5/7/&quot; papago-id=&quot;20-1&quot; rel=&quot;noreferrer&quot;&gt;다음&lt;/a&gt;은 데모입니다.&lt;a href=&quot;http://jsfiddle.net/hungerpain/eK8X5/7/&quot; papago-id=&quot;20-1&quot; rel=&quot;noreferrer&quot;&gt; &lt;/a&gt;http://jsfiddle.net/hungerpain/eK8X5/7/&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어때요?&lt;/font&gt;&lt;/p&gt; 
&lt;h3 papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;jQuery:&lt;/font&gt;&lt;/h3&gt; 
&lt;pre&gt;&lt;code&gt;$('.majorpoints').click(function(){
    $(this).find('.hider').toggle();
});
&lt;/code&gt;&lt;/pre&gt; 
&lt;h3 papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;HTML&lt;/font&gt;&lt;/h3&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div&amp;gt;
  &amp;lt;fieldset class=&quot;majorpoints&quot;&amp;gt;
    &amp;lt;legend class=&quot;majorpointslegend&quot;&amp;gt;Expand&amp;lt;/legend&amp;gt;
    &amp;lt;div class=&quot;hider&quot; style=&quot;display:none&quot; &amp;gt;
        &amp;lt;ul&amp;gt;
            &amp;lt;li&amp;gt;cccc&amp;lt;/li&amp;gt;
            &amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;
        &amp;lt;/ul&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;h2&gt;&lt;a href=&quot;http://jsfiddle.net/KqFRu/7/&quot; rel=&quot;noreferrer&quot; papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;피들&lt;/font&gt;&lt;/a&gt;&lt;/h2&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 방법으로 클릭 이벤트를 에 바인딩할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;.majorpoints&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;클래스 an 당신은 그것을 매번 HTML에 쓸 필요가 없습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;패널/div를 확장 또는 축소하기 위해 링크를 클릭할 때 호출되는 이 간단한 Javascript 방법을 살펴보실 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;script language=&quot;javascript&quot;&amp;gt; 
function toggle(elementId) {
    var ele = document.getElementById(elementId);
    if(ele.style.display == &quot;block&quot;) {
            ele.style.display = &quot;none&quot;;
    }
    else {
        ele.style.display = &quot;block&quot;;
    }
} 
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;분할 ID를 전달하면 '없음' 또는 '차단' 표시가 전환됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;29-1&quot;&gt;snip2code&lt;/strong&gt;의 원본 &lt;a href=&quot;http://www.snip2code.com/Snippet/18734/&quot; papago-id=&quot;29-3&quot; rel=&quot;noreferrer&quot;&gt;소스&lt;/a&gt; - &lt;a href=&quot;http://www.snip2code.com/Snippet/18734/&quot; papago-id=&quot;29-3&quot; rel=&quot;noreferrer&quot;&gt;html에서 div를 축소하는 방법&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;먼저, 당신의 자바스크립트는 jQuery를 사용하지도 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;몇 가지 방법이 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;예:&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;첫 번째 방법, jQuery를 사용합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;toggle&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;방법:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div class=&quot;expandContent&quot;&amp;gt;
        &amp;lt;a href=&quot;#&quot;&amp;gt;Click Here to Display More Content&amp;lt;/a&amp;gt;
 &amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;showMe&quot; style=&quot;display:none&quot;&amp;gt;
        This content was hidden, but now shows up
&amp;lt;/div&amp;gt;

&amp;lt;script&amp;gt;  
    $('.expandContent').click(function(){
        $('.showMe').toggle();
    });
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;jsFiddle:&lt;a href=&quot;http://jsfiddle.net/pM3DF/&quot; papago-id=&quot;33-1&quot;&gt; &lt;/a&gt;http://&lt;a href=&quot;http://jsfiddle.net/pM3DF/&quot; papago-id=&quot;33-1&quot;&gt;jsfiddle&lt;/a&gt;.net/pM3DF/&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다른 방법은 단순히 jQuery를 사용하는 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;show&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;방법:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div class=&quot;expandContent&quot;&amp;gt;
        &amp;lt;a href=&quot;#&quot;&amp;gt;Click Here to Display More Content&amp;lt;/a&amp;gt;
 &amp;lt;/div&amp;gt;
&amp;lt;div class=&quot;showMe&quot; style=&quot;display:none&quot;&amp;gt;
        This content was hidden, but now shows up
&amp;lt;/div&amp;gt;

&amp;lt;script&amp;gt;
    $('.expandContent').click(function(){
        $('.showMe').show();
    });
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;jsFiddle:&lt;a href=&quot;http://jsfiddle.net/Q2wfM/&quot; papago-id=&quot;36-1&quot;&gt; &lt;/a&gt;http://&lt;a href=&quot;http://jsfiddle.net/Q2wfM/&quot; papago-id=&quot;36-1&quot;&gt;jsfiddle&lt;/a&gt;.net/Q2wfM/&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 세 번째 방법은 다음을 사용하는 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;slideToggle&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일부 효과를 허용하는 jQuery의 방법입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;를 들어, 를들어와 같은.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;$('#showMe').slideToggle('slow');&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;숨겨진 디브를 천천히 보여줄 겁니다&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기에 많은 문제가 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 당신에게 맞는 바이올린을 준비했습니다:&lt;a href=&quot;http://jsfiddle.net/w9kSU/&quot; papago-id=&quot;41-1&quot; rel=&quot;nofollow noreferrer&quot;&gt; &lt;/a&gt;http://&lt;a href=&quot;http://jsfiddle.net/w9kSU/&quot; papago-id=&quot;41-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;jsfiddle&lt;/a&gt;.net/w9kSU/&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$('.majorpointslegend').click(function(){
    if($(this).text()=='Expand'){
        $('#mylist').show();
        $(this).text('Colapse');
    }else{
        $('#mylist').hide();
        $(this).text('Expand');
    }
});
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;재쿼리를 시도해 보세요.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;  &amp;lt;div&amp;gt;
        &amp;lt;a href=&quot;#&quot; class=&quot;majorpoints&quot; onclick=&quot;majorpointsexpand(&quot; + $('.majorpointslegend').html() + &quot;)&quot;/&amp;gt;
        &amp;lt;legend class=&quot;majorpointslegend&quot;&amp;gt;Expand&amp;lt;/legend&amp;gt;
        &amp;lt;div id=&quot;data&quot; style=&quot;display:none&quot; &amp;gt;
            &amp;lt;ul&amp;gt;
                &amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;
                &amp;lt;li&amp;gt;&amp;lt;/li&amp;gt;
            &amp;lt;/ul&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;


function majorpointsexpand(expand)
    {
        if (expand == &quot;Expand&quot;)
            {
                $('#data').css(&quot;display&quot;,&quot;inherit&quot;);
                $(&quot;.majorpointslegend&quot;).html(&quot;Collapse&quot;);
            }
        else
            {
                $('#data').css(&quot;display&quot;,&quot;none&quot;);
                $(&quot;.majorpointslegend&quot;).html(&quot;Expand&quot;);
            }
    }
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&quot;http://jsfiddle.net/Intacto/dgpKU/5/&quot; rel=&quot;nofollow&quot; papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음은 애니메이션에 대한 설명을 확장한 직원 목록의 예입니다.&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;html&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;style&amp;gt;
      .staff {            margin:10px 0;}
      .staff-block{       float: left; width:48%; padding-left: 10px; padding-bottom: 10px;}
      .staff-title{       font-family: Verdana, Tahoma, Arial, Serif; background-color: #1162c5; color: white; padding:4px; border: solid 1px #2e3d7a; border-top-left-radius:3px; border-top-right-radius: 6px; font-weight: bold;}
      .staff-name {       font-family: Myriad Web Pro; font-size: 11pt; line-height:30px; padding: 0 10px;}
      .staff-name:hover { background-color: silver !important; cursor: pointer;}
      .staff-section {    display:inline-block; padding-left: 10px;}
      .staff-desc {       font-family: Myriad Web Pro; height: 0px; padding: 3px; overflow:hidden; background-color:#def; display: block; border: solid 1px silver;}
      .staff-desc p {     text-align: justify; margin-top: 5px;}
      .staff-desc img {   margin: 5px 10px 5px 5px; float:left; height: 185px; }
    &amp;lt;/style&amp;gt;
  &amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;!-- START STAFF SECTION --&amp;gt;
&amp;lt;div class=&quot;staff&quot;&amp;gt;
  &amp;lt;div class=&quot;staff-block&quot;&amp;gt;
    &amp;lt;div  class=&quot;staff-title&quot;&amp;gt;Staff&amp;lt;/div&amp;gt;
    &amp;lt;div class=&quot;staff-section&quot;&amp;gt;
        &amp;lt;div class=&quot;staff-name&quot;&amp;gt;Maria Beavis&amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;staff-desc&quot;&amp;gt;
          &amp;lt;p&amp;gt;&amp;lt;img src=&quot;http://www.craigmarlatt.com/canada/images/security&amp;amp;defence/coulombe.jpg&quot; /&amp;gt;Maria earned a Bachelor of Commerce degree from McGill University in 2006 with concentrations in Finance and International Business. She has completed her wealth Management Essentials course with the Canadian Securities Institute and has worked in the industry since 2007.&amp;lt;/p&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;staff-name&quot;&amp;gt;Diana Smitt&amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;staff-desc&quot;&amp;gt;
          &amp;lt;p&amp;gt;&amp;lt;img src=&quot;http://www.craigmarlatt.com/canada/images/security&amp;amp;defence/coulombe.jpg&quot; /&amp;gt;Diana joined the Diana Smitt Group to help contribute to its ongoing commitment to provide superior investement advice and exceptional service. She has a Bachelor of Commerce degree from the John Molson School of Business with a major in Finance and has been continuing her education by completing courses.&amp;lt;/p&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;staff-name&quot;&amp;gt;Mike Ford&amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;staff-desc&quot;&amp;gt;
          &amp;lt;p&amp;gt;&amp;lt;img src=&quot;http://www.craigmarlatt.com/canada/images/security&amp;amp;defence/coulombe.jpg&quot; /&amp;gt;Mike: A graduate of École des hautes études commerciales (HEC Montreal), Guillaume holds the Chartered Investment Management designation (CIM). After having been active in the financial services industry for 4 years at a leading competitor he joined the Mike Ford Group.&amp;lt;/p&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;

  &amp;lt;div class=&quot;staff-block&quot;&amp;gt;
    &amp;lt;div  class=&quot;staff-title&quot;&amp;gt;Technical Advisors&amp;lt;/div&amp;gt;
    &amp;lt;div class=&quot;staff-section&quot;&amp;gt;
        &amp;lt;div class=&quot;staff-name&quot;&amp;gt;TA Elvira Bett&amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;staff-desc&quot;&amp;gt;
          &amp;lt;p&amp;gt;&amp;lt;img src=&quot;http://www.craigmarlatt.com/canada/images/security&amp;amp;defence/coulombe.jpg&quot; /&amp;gt;Elvira has completed her wealth Management Essentials course with the Canadian Securities Institute and has worked in the industry since 2007. Laura works directly with Caroline Hild, aiding in revising client portfolios, maintaining investment objectives, and executing client trades.&amp;lt;/p&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;staff-name&quot;&amp;gt;TA Sonya Rosman&amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;staff-desc&quot;&amp;gt;
          &amp;lt;p&amp;gt;&amp;lt;img src=&quot;http://www.craigmarlatt.com/canada/images/security&amp;amp;defence/coulombe.jpg&quot; /&amp;gt;Sonya has a Bachelor of Commerce degree from the John Molson School of Business with a major in Finance and has been continuing her education by completing courses through the Canadian Securities Institute. She recently completed her Wealth Management Essentials course and became an Investment Associate.&amp;lt;/p&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;staff-name&quot;&amp;gt;TA Tim Herson&amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;staff-desc&quot;&amp;gt;
          &amp;lt;p&amp;gt;&amp;lt;img src=&quot;http://www.craigmarlatt.com/canada/images/security&amp;amp;defence/coulombe.jpg&quot; /&amp;gt;Tim joined his father&amp;amp;#8217;s group in order to continue advising affluent families in Quebec. He is currently President of the Mike Ford Professionals Association and a member of various other organisations.&amp;lt;/p&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;!-- STOP STAFF SECTION --&amp;gt;

&amp;lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt; 

&amp;lt;script language=&quot;javascript&quot;&amp;gt;&amp;lt;!--
//&amp;lt;![CDATA[
$('.staff-name').hover(function() {
    $(this).toggleClass('hover');
});
var lastItem;
    $('.staff-name').click(function(currentItem) {
        var currentItem = $(this);
      if ($(this).next().height() == 0) {
          $(lastItem).css({'font-weight':'normal'});
          $(lastItem).next().animate({height: '0px'},400,'swing');
          $(this).css({'font-weight':'bold'});
          $(this).next().animate({height: '300px',opacity: 1},400,'swing');
      } else {
          $(this).css({'font-weight':'normal'});
          $(this).next().animate({height: '0px',opacity: 1},400,'swing');
      }
      lastItem = $(this);
    });
//]]&amp;gt;
--&amp;gt;&amp;lt;/script&amp;gt;

&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://jsfiddle.net/Intacto/dgpKU/5/&quot; rel=&quot;nofollow&quot; papago-id=&quot;44&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;피들&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;toggle()&lt;/code&gt; &lt;font papago-translate=&quot;translated&quot; papago-id=&quot;46&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;46-0&quot;&gt;jQuery&lt;/strong&gt; 함수:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://api.jquery.com/toggle/&quot; rel=&quot;nofollow&quot; papago-id=&quot;47&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;http://api.jquery.com/toggle/&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;innerHTML&lt;/code&gt; &lt;font papago-translate=&quot;translated&quot; papago-id=&quot;49&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;49-0&quot;&gt;jQuery&lt;/strong&gt; 함수는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;.html()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; jQuery를 할 수 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;onclick&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 및 속성&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;majorpointsexpand&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt; 맨 &lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;합니다&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음 스크립트를 페이지 맨 아래 또는 가급적이면 외부 .js 파일에 추가합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$(function(){

  $('.majorpointslegend').click(function(){
    $(this).next().toggle().text( $(this).is(':visible')?'Collapse':'Expand' );
  });

});
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 솔루션은 HTML과 그대로 작동해야 하지만 그다지 강력한 답변은 아닙니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;변경할 경우&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;fieldset&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;27&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;레이아웃이 깨질 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 당신이 그것을 제안합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;class&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;div의 , 를 들어 그숨겨디속성의브마, 치진치.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;class=&quot;majorpointsdetail&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;29&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대신 이 코드를 사용합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$(function(){

  $('.majorpoints').on('click', '.majorpointslegend', function(event){
    $(event.currentTarget).find('.majorpointsdetail').toggle();
    $(this).text( $(this).is(':visible')?'Collapse':'Expand' );
  });

});
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;30&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Obs: 마감이 없습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;/fieldset&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;31&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;질문에 태그를 지정하면 숨겨진 디바가 필드 세트 안에 있다고 가정합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;60&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어 데이터 역할 접기식을 사용한 경우.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;    &amp;lt;div id=&quot;selector&quot; data-role=&quot;collapsible&quot; data-collapsed=&quot;true&quot;&amp;gt;
    html......
    &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;61&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러면 확장된 디브를 닫을 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;    $(&quot;#selector&quot;).collapsible().collapsible(&quot;collapse&quot;);   
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;62&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;한 번에 하나의 확장된 div만 허용하는 순수 javascript입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다중 레벨 하위 확장자를 허용합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;HTML에는 확장자 내용만 필요합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;javascript는 제목이 내용 데이터 속성과 svg 화살표를 구성하는 확장자 헤더를 만듭니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;style&amp;gt;
    /* expanders headers divs */
    .expanderHead {
        color: white;
        background-color: #1E9D8B;
        border: 2px solid #1E9D8B;
        margin-top: 9px;
        border-radius: 6px;
        padding: 3px;
        padding-left: 9px;
        cursor: default;
        font-family: Verdana;
        font-size: 14px;
    }

    .expanderHead:first-child {
        margin-top: 0 !important;
    }

    .expanderBody:last-child {
        margin-bottom: 0 !important;
    }

    /* expanders svg arrows */
    .expanderHead svg &amp;gt; g &amp;gt; path {
        fill: none;
        stroke: white;
        stroke-width: 2;
        stroke-miterlimit: 5;
        pointer-events: stroke;
    }

    /* expanders contents divs */
    .expanderBody {
        border: 2px solid #1E9D8B;
        border-top: 0;
        background-color: white;
        border-top-left-radius: 0;
        border-top-right-radius: 0;
        border-bottom-left-radius: 6px;
        border-bottom-right-radius: 6px;
        padding: 6px;
        font-family: Verdana;
        font-size: 12px;
    }

    /* widget window */
    .widget {
        width: 400px;
        background-color: white;
        padding: 9px;
        border: 2px solid #1E9D8B;
        border-top-left-radius: 6px;
        border-top-right-radius: 6px;
        border-bottom-left-radius: 6px;
        border-bottom-right-radius: 6px;
    }

&amp;lt;/style&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div class=&quot;widget&quot;&amp;gt;

    &amp;lt;div data-title=&quot;expander 1&quot; class=&quot;expanderBody&quot;&amp;gt;
        expander 1 content
    &amp;lt;/div&amp;gt;

    &amp;lt;div data-title=&quot;expander 2&quot; class=&quot;expanderBody&quot;&amp;gt;
        expander 2 content
    &amp;lt;/div&amp;gt;

    &amp;lt;div data-title=&quot;expander 3&quot; class=&quot;expanderBody&quot;&amp;gt;

        &amp;lt;div&amp;gt;
            expander 3 content
        &amp;lt;/div&amp;gt;

        &amp;lt;div data-title=&quot;expander 3.1&quot; class=&quot;expanderBody&quot;&amp;gt;
            expander 3.1 content
        &amp;lt;/div&amp;gt;

        &amp;lt;div data-title=&quot;expander 3.2&quot; class=&quot;expanderBody&quot;&amp;gt;
            expander 3.2 content
        &amp;lt;/div&amp;gt;

        &amp;lt;div data-title=&quot;expander 3.3&quot; class=&quot;expanderBody&quot;&amp;gt;
            expander 3.3 content
        &amp;lt;/div&amp;gt;

    &amp;lt;/div&amp;gt;

&amp;lt;/div&amp;gt;



&amp;lt;script&amp;gt;
    document.querySelectorAll(&quot;.expanderBody&quot;).forEach(item =&amp;gt; {
        if (item.dataset.title) {
            // create expander header
            let divHeader = document.createElement(&quot;div&quot;);
            divHeader.className = &quot;expanderHead&quot;;
            divHeader.innerHTML = &quot;&amp;lt;svg width='14px' height='8px' viewBox='0 0 12 6'&amp;gt;&amp;lt;g&amp;gt;&amp;lt;path d='M 5 5 L 10 1'/&amp;gt;&amp;lt;path d='M 1 1 L 5 5'/&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;/svg&amp;gt;&amp;amp;nbsp;&amp;lt;span&amp;gt;&quot; + item.dataset.title + &quot;&amp;lt;/span&amp;gt;&quot;;
            // expander click event
            divHeader.addEventListener(&quot;click&quot;, function () {
                // open / close expander
                for (let i = 0; i &amp;lt; this.parentNode.children.length; i++) {
                    let expander = this.parentNode.children[i];
                    // check if it's expander header
                    if (expander.className == &quot;expanderHead&quot;) {
                        if (expander == this &amp;amp;&amp;amp; expander.nextElementSibling.style.display == &quot;none&quot;) {
                            // open expander body
                            expander.nextElementSibling.style.display = &quot;&quot;;
                            expander.innerHTML = &quot;&amp;lt;svg width='14px' height='8px' viewBox='0 0 12 6'&amp;gt;&amp;lt;g&amp;gt;&amp;lt;path d='M 1 5 L 5 1'/&amp;gt;&amp;lt;path d='M 5 1 L 10 5'/&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;/svg&amp;gt;&amp;amp;nbsp;&amp;lt;span&amp;gt;&quot; + expander.nextElementSibling.dataset.title + &quot;&amp;lt;/span&amp;gt;&quot;;
                            expander.style.borderBottomLeftRadius = &quot;0&quot;;
                            expander.style.borderBottomRightRadius = &quot;0&quot;;
                        }
                        else {
                            // close expander body
                            expander.nextElementSibling.style.display = &quot;none&quot;;
                            expander.innerHTML = &quot;&amp;lt;svg width='14px' height='8px' viewBox='0 0 12 6'&amp;gt;&amp;lt;g&amp;gt;&amp;lt;path d='M 5 5 L 10 1'/&amp;gt;&amp;lt;path d='M 1 1 L 5 5'/&amp;gt;&amp;lt;/g&amp;gt;&amp;lt;/svg&amp;gt;&amp;amp;nbsp;&amp;lt;span&amp;gt;&quot; + expander.nextElementSibling.dataset.title + &quot;&amp;lt;/span&amp;gt;&quot;;
                            expander.style.borderBottomLeftRadius = &quot;6px&quot;;
                            expander.style.borderBottomRightRadius = &quot;6px&quot;;
                        }
                    }
                }
            }, true);
            item.parentNode.insertBefore(divHeader, item);
            item.style.display = &quot;none&quot;;
        }
    });
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;63&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Jed &lt;a href=&quot;http://jedfoster.com/Readmore.js/&quot; papago-id=&quot;63-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;Foster&lt;/a&gt;의 Readmore&lt;a href=&quot;http://jedfoster.com/Readmore.js/&quot; papago-id=&quot;63-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;.js&lt;/a&gt; 라이브러리를 확인하십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;64&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용 방법은 다음과 같이 간단합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;snippet&quot; data-lang=&quot;js&quot; data-hide=&quot;false&quot; data-console=&quot;true&quot; data-babel=&quot;false&quot;&gt; 
 &lt;div class=&quot;snippet-code&quot;&gt; 
  &lt;pre class=&quot;snippet-code-js lang-js prettyprint-override&quot;&gt;&lt;code&gt;$(document).ready(function() {
  $('article').readmore({collapsedHeight: 100});
});&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-html lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script src=&quot;https://fastcdn.org/Readmore.js/2.1.0/readmore.min.js&quot; type=&quot;text/javascript&quot;&amp;gt;&amp;lt;/script&amp;gt;

&amp;lt;article&amp;gt;
  &amp;lt;p&amp;gt;From this distant vantage point, the Earth might not seem of any particular interest. But for us, it's different. Consider again that dot. That's here. That's home. That's us. On it everyone you love, everyone you know, everyone you ever heard of, every human being who ever was, lived out their lives. The aggregate of our joy and suffering, thousands of confident religions, ideologies, and economic doctrines, every hunter and forager, every hero and coward, every creator and destroyer of civilization, every king and peasant, every young couple in love, every mother and father, hopeful child, inventor and explorer, every teacher of morals, every corrupt politician, every &quot;superstar,&quot; every &quot;supreme leader,&quot; every saint and sinner in the history of our species lived there – on a mote of dust suspended in a sunbeam.&amp;lt;/p&amp;gt;

  &amp;lt;p&amp;gt;Space, the final frontier. These are the voyages of the starship Enterprise. Its five year mission: to explore strange new worlds, to seek out new life and new civilizations, to boldly go where no man has gone before!&amp;lt;/p&amp;gt;

  &amp;lt;p&amp;gt;Here's how it is: Earth got used up, so we terraformed a whole new galaxy of Earths, some rich and flush with the new technologies, some not so much. Central Planets, them was formed the Alliance, waged war to bring everyone under their rule; a few idiots tried to fight it, among them myself. I'm Malcolm Reynolds, captain of Serenity. Got a good crew: fighters, pilot, mechanic. We even picked up a preacher, and a bona fide companion. There's a doctor, too, took his genius sister out of some Alliance camp, so they're keeping a low profile. You got a job, we can do it, don't much care what it is.&amp;lt;/p&amp;gt;

  &amp;lt;p&amp;gt;Space, the final frontier. These are the voyages of the starship Enterprise. Its five year mission: to explore strange new worlds, to seek out new life and new civilizations, to boldly go where no man has gone before!&amp;lt;/p&amp;gt;
&amp;lt;/article&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;65&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위젯을 구성하는 데 사용할 수 있는 옵션은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;snippet&quot; data-lang=&quot;js&quot; data-hide=&quot;false&quot; data-console=&quot;true&quot; data-babel=&quot;false&quot;&gt; 
 &lt;div class=&quot;snippet-code&quot;&gt; 
  &lt;pre class=&quot;snippet-code-js lang-js prettyprint-override&quot;&gt;&lt;code&gt;{
  speed: 100,
  collapsedHeight: 200,
  heightMargin: 16,
  moreLink: '&amp;lt;a href=&quot;#&quot;&amp;gt;Read More&amp;lt;/a&amp;gt;',
  lessLink: '&amp;lt;a href=&quot;#&quot;&amp;gt;Close&amp;lt;/a&amp;gt;',
  embedCSS: true,
  blockCSS: 'display: block; width: 100%;',
  startOpen: false,

  // callbacks
  blockProcessed: function() {},
  beforeToggle: function() {},
  afterToggle: function() {}
},&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;66&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같이 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;snippet&quot; data-lang=&quot;js&quot; data-hide=&quot;false&quot; data-console=&quot;true&quot; data-babel=&quot;false&quot;&gt; 
 &lt;div class=&quot;snippet-code&quot;&gt; 
  &lt;pre class=&quot;snippet-code-js lang-js prettyprint-override&quot;&gt;&lt;code&gt;$('article').readmore({
  collapsedHeight: 100,
  moreLink: '&amp;lt;a href=&quot;#&quot; class=&quot;you-can-also-add-classes-here&quot;&amp;gt;Continue reading...&amp;lt;/a&amp;gt;',
});&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;67&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;도움이 되길 바랍니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;68&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Pure Javascript 사용&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;snippet&quot; data-lang=&quot;js&quot; data-hide=&quot;false&quot; data-console=&quot;true&quot; data-babel=&quot;false&quot;&gt; 
 &lt;div class=&quot;snippet-code&quot;&gt; 
  &lt;pre class=&quot;snippet-code-js lang-js prettyprint-override&quot;&gt;&lt;code&gt;const collapsableBtn = document.querySelectorAll('.collapsable-toggle');

for (let index = 0; index &amp;lt; collapsableBtn.length; index++) {
    collapsableBtn[index].addEventListener('click', function(e) {
        // e.preventDefault();
        e.stopImmediatePropagation();

        iterateElement = this;

        getCollapsableParent = iterateElement.parentElement;

        if(getCollapsableParent.classList.contains('show')) {
            getCollapsableParent.classList.remove('show')
            iterateElement.innerText = iterateElement.getAttribute('data-onCloseText');

        } else {
            getCollapsableParent.classList.add('show');
            iterateElement.innerText = iterateElement.getAttribute('data-onOpenText');
        }
    })
}&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-css lang-css prettyprint-override&quot;&gt;&lt;code&gt;.collapsable-container #expand {
   display:none;
}
.collapsable-container.show #expand {
    display:block;
}&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-html lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;div class=&quot;collapsable-container&quot;&amp;gt;
    &amp;lt;a href=&quot;javascript:void(0);&quot; class=&quot;collapsable-toggle&quot; data-onOpenText=&quot;Hide First Content&quot; data-onCloseText=&quot;Show First Content&quot;&amp;gt;Show First Content&amp;lt;/a&amp;gt;
    &amp;lt;div id=&quot;expand&quot;&amp;gt;
        This is some Content
    &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;
 
 
 &amp;lt;div class=&quot;collapsable-container&quot;&amp;gt;
    &amp;lt;a href=&quot;javascript:void(0);&quot; class=&quot;collapsable-toggle&quot; data-onOpenText=&quot;Hide Second Content&quot; data-onCloseText=&quot;Show Second Content&quot;&amp;gt;Show Second Content&amp;lt;/a&amp;gt;
    &amp;lt;div id=&quot;expand&quot;&amp;gt;
        This is some Content
    &amp;lt;/div&amp;gt;
 &amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt;&lt;p papago-id=&quot;69&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/17460116/&lt;a href=&quot;https://stackoverflow.com/questions/17460116/how-can-i-expand-and-collapse-a-div-using-javascript&quot; target=&quot;_blank&quot; papago-id=&quot;69-1&quot;&gt;how-can-i-expand-and-collapse-a-div-using-javascript&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/575</guid>
      <comments>https://kingscode.tistory.com/575#entry575comment</comments>
      <pubDate>Tue, 29 Aug 2023 21:30:23 +0900</pubDate>
    </item>
    <item>
      <title>윈도우즈 배치 파일 내에서 PowerShell 스크립트를 실행하는 방법</title>
      <link>https://kingscode.tistory.com/572</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;윈도우즈 배치 파일 내에서 PowerShell 스크립트를 실행하는 방법&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Windows 배치 스크립트와 동일한 파일에 PowerShell 스크립트가 내장되어 있는 방법은 무엇입니까?&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 다른 시나리오에서도 이러한 일이 가능하다는 것을 알고 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다을사용여배포스에치함트 SQL을  내장&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;sqlcmd&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; goto와 했습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;첫를 들어 *nix 환경트의첫립줄있에스가는이경실다, 를들설니합명같이다과예와 같이 됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;#!/usr/local/bin/python&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이를 수행할 방법이 없을 수도 있습니다. 이 경우 시작 스크립트와 별도의 PowerShell 스크립트를 호출해야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 생각한 한 가지 가능한 해결책은 PowerShell 스크립트를 에코아웃한 다음 실행하는 것입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이렇게 하지 &lt;em papago-id=&quot;8-1&quot;&gt;않는&lt;/em&gt; 좋은 이유는 이러한 시도를 하는 이유의 일부는 &lt;a href=&quot;http://blogs.msdn.com/oldnewthing/archive/2009/10/29/9914426.aspx&quot; papago-id=&quot;8-3&quot; rel=&quot;noreferrer&quot;&gt;예&lt;/a&gt;를 들어 &lt;a href=&quot;http://blogs.msdn.com/oldnewthing/archive/2009/10/29/9914426.aspx&quot; papago-id=&quot;8-3&quot; rel=&quot;noreferrer&quot;&gt;이스케이프&lt;/a&gt; 문자의 고통 없이 PowerShell 환경의 이점을 사용하기 위한 것이기 때문입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 몇 가지 특이한 제약이 있어서 우아한 해결책을 찾고 싶습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이 질문이 다양한 사람들의 반응을 미끼로 하는 것일 수도 있다고 생각합니다: &quot;대신 이 다른 문제를 해결하려고 노력하는 것이 어때요?&quot;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것들이 저의 제약이라고만 하면 됩니다, 죄송합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아이디어 있어요?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이를 달성할 수 있는 현명한 의견과 탈출 캐릭터의 적절한 조합이 있습니까?&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이를 달성하는 방법에 대한 몇 가지 생각:&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 럿캐.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;^&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Visual Basic ▁an▁in▁like▁의 밑줄과 같은 연속이 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; Visual Basic의 밑줄과 같은 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;▁an.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;amp;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;을 구분할 때 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;echo Hello &amp;amp; echo World&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;으로 두 개의 에 발생합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;%0은 현재 실행 중인 스크립트를 제공합니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서 (제가 그것을 작동시킬 수 있다면) 다음과 같은 것이 좋을 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-none prettyprint-override&quot;&gt;&lt;code&gt;# &amp;amp; call powershell -psconsolefile %0
# &amp;amp; goto :EOF
/* From here on in we're running nice juicy powershell code */
Write-Output &quot;Hello World&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제외하고는...&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;효과가 없어요...&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;왜냐면&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가 PowerShell의 PowerShell의 경우에는 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Windows PowerShell console file &quot;insideout.bat&quot; extension is not psc1. Windows PowerShell console file extension must be psc1.&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 . CMD에 가 있기는  말입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 하지만 우연히 발견되기는 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;'#', it is not recognized as an internal or external command, operable program or batch file.&lt;/code&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 제품은 PowerShell에 올바른 라인만 전달합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;dosps2.cmd&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@findstr/v &quot;^@f.*&amp;amp;&quot; &quot;%~f0&quot;|powershell -&amp;amp;goto:eof
Write-Output &quot;Hello World&quot; 
Write-Output &quot;Hello some@com &amp;amp; again&quot; 
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Regular_expression&quot; papago-id=&quot;25-1&quot; rel=&quot;noreferrer&quot;&gt;정규식&lt;/a&gt;은 다음으로 시작하는 행을 제외합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@f&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 그고포함서해리▁an서▁including를 포함합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;amp;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다른 모든 것을 PowerShell에 전달합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;C:\tmp&amp;gt;dosps2
Hello World
Hello some@com &amp;amp; again
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;때때로 &quot;다중 언어 스크립트&quot;라고 불리는 것을 찾는 것처럼 들립니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;CMD -&amp;gt; PowerShell의 경우&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@@:: This prolog allows a PowerShell script to be embedded in a .CMD file.
@@:: Any non-PowerShell content must be preceeded by &quot;@@&quot;
@@setlocal
@@set POWERSHELL_BAT_ARGS=%*
@@if defined POWERSHELL_BAT_ARGS set POWERSHELL_BAT_ARGS=%POWERSHELL_BAT_ARGS:&quot;=\&quot;%
@@PowerShell -Command Invoke-Expression $('$args=@(^&amp;amp;{$args} %POWERSHELL_BAT_ARGS%);'+[String]::Join([char]10,$((Get-Content '%~f0') -notmatch '^^@@'))) &amp;amp; goto :EOF
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;인용된 인수를 지원할 필요가 없는 경우에는 한 줄로 묶을 수도 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@PowerShell -Command Invoke-Expression $('$args=@(^&amp;amp;{$args} %*);'+[String]::Join([char]10,(Get-Content '%~f0') -notmatch '^^@PowerShell.*EOF$')) &amp;amp; goto :EOF
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;http://blogs.msdn.com/jaybaz_ms/archive/2007/04/26/powershell-polyglot.aspx&lt;a href=&quot;http://blogs.msdn.com/jaybaz_ms/archive/2007/04/26/powershell-polyglot.aspx&quot; rel=&quot;noreferrer&quot; papago-id=&quot;30-1&quot;&gt; &lt;/a&gt;에서 가져온 것입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것이 PowerShell v1입니다. v2에서는 더 간단할 수 있지만, 저는 찾아보지 않았습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://www.dostips.com/forum/viewtopic.php?f=3&amp;amp;t=5526&amp;amp;start=15&quot; rel=&quot;noreferrer&quot; papago-id=&quot;31-0&quot;&gt;여기&lt;/a&gt;에서는 이 주제에 대해 논의했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;주요 목표는 느린 I/O 작업을 줄이고 중복 출력 없이 스크립트를 실행하기 위해 임시 파일을 사용하지 않는 것이었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 저에 따르면 최고의 해결책은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;# :
@echo off
setlocal
set &quot;POWERSHELL_BAT_ARGS=%*&quot;
if defined POWERSHELL_BAT_ARGS set &quot;POWERSHELL_BAT_ARGS=%POWERSHELL_BAT_ARGS:&quot;=\&quot;%&quot;
endlocal &amp;amp; powershell -NoLogo -NoProfile -Command &quot;$input | &amp;amp;{ [ScriptBlock]::Create( ( Get-Content \&quot;%~f0\&quot; ) -join [char]10 ).Invoke( @( &amp;amp;{ $args } %POWERSHELL_BAT_ARGS% ) ) }&quot;
goto :EOF
#&amp;gt;

param(
    [string]$str
);

$VAR = &quot;Hello, world!&quot;;

function F1() {
    $str;
    $script:VAR;
}

F1;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;훨씬 더 나은 방법(&lt;a href=&quot;https://stackoverflow.com/a/41195176/388389&quot; papago-id=&quot;33-1&quot;&gt;여기&lt;/a&gt; 참조):&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;# : batch portion (begins PowerShell multi-line comment block)


@echo off &amp;amp; setlocal
set &quot;POWERSHELL_BAT_ARGS=%*&quot;

echo ---- FROM BATCH
powershell -noprofile -NoLogo &quot;iex (${%~f0} | out-string)&quot;
exit /b %errorlevel%

: end batch / begin PowerShell chimera #&amp;gt;

$VAR = &quot;---- FROM POWERSHELL&quot;;
$VAR;
$POWERSHELL_BAT_ARGS=$env:POWERSHELL_BAT_ARGS
$POWERSHELL_BAT_ARGS
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;POWERSHELL_BAT_ARGS&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;명령행 인수는 배치 부분에서 변수로 처음 설정됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;우선 . - 이 줄은 &quot;&quot; &quot;&quot; &quot; &quot; &quot; &quot; &quot; &quot; 입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;# :&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 석될것다니입처다것처럼 구문 됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;:&amp;lt;#&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;리디렉션이 다른 명령보다 우선 순위가 높기 때문입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 하만시작대로 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;:&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;배치 파일은 레이블로 사용됩니다. 즉, 실행되지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여전히 PowerShell에 대한 설명은 유효합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 제대로 할 수  것만 남았습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;%~f0&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 경로는 cmd.exe에 의해 실행되는 스크립트의 전체 경로입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;처음에 PowerShell에서 한 가지 오류가 발생하는 것을 개의치 않는다면 이 방법이 효과적인 것 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;dosps.cmd&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@powershell -&amp;lt;%~f0&amp;amp;goto:eof
Write-Output &quot;Hello World&quot; 
Write-Output &quot;Hello World again&quot; 
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;45&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 장 &lt;a href=&quot;https://stackoverflow.com/a/50418433/6007097&quot; papago-id=&quot;45-1&quot;&gt;프랑수아 라부아르의 솔루션&lt;/a&gt;을 매우 좋아하는데, 특히 그가 Arguments를 처리하고 powershell-script에 과감하게 전달했기 때문입니다(+1 추가).&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;46&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 한 가지 결점이 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 언급할 명성이 없기 때문에, 저는 새로운 해결책으로 수정 사항을 게시합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;된 경우 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;$&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파일 내용을 로드하기 전에 평가할 문자입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가장 간단한 해결책은 큰따옴표를 바꾸는 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;PowerShell -c ^&quot;Invoke-Expression ('^&amp;amp; {' + [io.file]::ReadAllText('%~f0') + '} %ARGS%')&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;27&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;개인적으로, 저는 오히려 사용하는 것을 선호합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;get-content&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;-raw&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;51&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;나에게 &lt;em papago-id=&quot;51-1&quot;&gt;있어&lt;/em&gt; 이것은 더 강력한 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;PowerShell -c ^&quot;Invoke-Expression ('^&amp;amp; {' + (get-content -raw '%~f0') + '} %ARGS%')&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;30&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 그건 물론 제 개인적인 생각입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ReadAllText works&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;31&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아주 완벽하게&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;54&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;완전성을 위해 수정된 스크립트:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;# :# PowerShell comment protecting the Batch section
@echo off
:# Disabling argument expansion avoids issues with ! in arguments.
setlocal EnableExtensions DisableDelayedExpansion

:# Prepare the batch arguments, so that PowerShell parses them correctly
set ARGS=%*
if defined ARGS set ARGS=%ARGS:&quot;=\&quot;%
if defined ARGS set ARGS=%ARGS:'=''%

:# The ^ before the first &quot; ensures that the Batch parser does not enter quoted mode
:# there, but that it enters and exits quoted mode for every subsequent pair of &quot;.
:# This in turn protects the possible special chars &amp;amp; | &amp;lt; &amp;gt; within quoted arguments.
:# Then the \ before each pair of &quot; ensures that PowerShell's C command line parser 
:# considers these pairs as part of the first and only argument following -c.
:# Cherry on the cake, it's possible to pass a &quot; to PS by entering two &quot;&quot; in the bat args.
echo In Batch
PowerShell -c ^&quot;Invoke-Expression ('^&amp;amp; {' + (get-content -raw '%~f0') + '} %ARGS%')&quot;
echo Back in Batch. PowerShell exit code = %ERRORLEVEL%
exit /b

###############################################################################
End of the PS comment around the Batch section; Begin the PowerShell section #&amp;gt;

echo &quot;In PowerShell&quot;
$Args | % { &quot;PowerShell Args[{0}] = '$_'&quot; -f $i++ }
exit 0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;sup papago-id=&quot;55&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 &lt;strong papago-id=&quot;55-3&quot;&gt;내장된 PowerShell 및/또는&lt;/strong&gt; VBScript&lt;strong papago-id=&quot;55-3&quot;&gt;/JScript 코드를 지원&lt;/strong&gt;하는&lt;a href=&quot;https://gist.github.com/mklement0/738f5291fdb252bdc80e13b47c0cdef5&quot; papago-id=&quot;55-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;strong papago-id=&quot;55-1-1&quot;&gt; &lt;/strong&gt;&lt;/a&gt;이 &quot;&lt;a href=&quot;https://gist.github.com/mklement0/738f5291fdb252bdc80e13b47c0cdef5&quot; papago-id=&quot;55-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;strong papago-id=&quot;55-1-1&quot;&gt;polyglot&quot; 래퍼&lt;/strong&gt;&lt;/a&gt; 스크립트를 &lt;a href=&quot;https://gist.github.com/mklement0/738f5291fdb252bdc80e13b47c0cdef5&quot; papago-id=&quot;55-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;고려&lt;/a&gt;해 보십시오. 이 스크립트는 2013년에 작성자 &lt;a href=&quot;https://stackoverflow.com/users/14845/flabdablet&quot; papago-id=&quot;55-7&quot;&gt;자신&lt;/a&gt;인 flabdablet가 게시한 &lt;a href=&quot;http://flabdablet.nfshost.com/windows-scripts/glue.cmd&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;55-5&quot;&gt;독창적인 원본&lt;/a&gt;에서 수정되었지만 링크 전용 답변이었기 때문에 2015년에 삭제되었습니다.&lt;/font&gt;&lt;/sup&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;56&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Kyle의&lt;a href=&quot;https://stackoverflow.com/a/17066466/45375&quot; papago-id=&quot;56-1&quot;&gt; 훌륭한&lt;/a&gt; 답변을 &lt;a href=&quot;https://stackoverflow.com/a/17066466/45375&quot; papago-id=&quot;56-1&quot;&gt;개선&lt;/a&gt;하는 솔루션:&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;32&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 파일 배파을만예다니듭일치)을합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;sample.cmd&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;33&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;)는과 같은내용을  있습니다&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;# ::
@echo off &amp;amp; setlocal
copy /y &quot;%~f0&quot; &quot;%TEMP%\%~n0.ps1&quot; &amp;gt;NUL &amp;amp;&amp;amp; powershell -NoProfile -ExecutionPolicy Bypass -File &quot;%TEMP%\%~n0.ps1&quot; %*
set ec=%ERRORLEVEL% &amp;amp; del &quot;%TEMP%\%~n0.ps1&quot;
exit /b %ec%
#&amp;gt;

# Paste arbitrary PowerShell code here.
# In this example, all arguments are echoed.
'Args:'
$Args | % { 'arg #{0}: [{1}]' -f ++$i, $_ }
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;59&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;참고:&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;34&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;될 때 로 사용되는 파일입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;*.ps1&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;35&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;은 파이생정경에 됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;%TEMP%&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;36&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;폴더; 그렇게 함으로써 단순히 사용함으로써 (합리적으로) 강력하게 인수를 전달하는 것을 크게 단순화합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;%*&lt;/code&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;37&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위의 &lt;em papago-id=&quot;37-1&quot;&gt;명령&lt;/em&gt;은 Windows &lt;em papago-id=&quot;37-1&quot;&gt;PowerShell&lt;/em&gt;을 호출합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;크로스 플랫폼 PowerShell(Core) v7+ 에디션을 호출하려면 다음과 같이 대체합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;powershell&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;38&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;와 함께&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;pwsh&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;39&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위의 암호로&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p papago-id=&quot;66&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;66-0&quot;&gt;기술 설명&lt;/strong&gt;:&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;40&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 선&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;# ::&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;41&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;블록의 이지만 PowerShell의 경우는 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;cmd.exe&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;42&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;무시, &lt;a href=&quot;https://stackoverflow.com/a/33065387/45375&quot; papago-id=&quot;42-1&quot;&gt;npocmaka의 대답&lt;/a&gt;에서 차용한 기술입니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;43&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 시어음작으로 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;44&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; PowerShell에서는되지만 PowerShell에서는 됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;cmd.exe&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;45&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 회전이 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;46&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;- 접미사가 없는 행은 다음으로 끝납니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;exit /b&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;47&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;거기서 종료하는, 바로 파종료을하고일배치서거기▁which▁right,고▁the하.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;cmd.exe&lt;/code&gt; &lt;font papago-translate=&quot;translated&quot; papago-id=&quot;48&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;는 나머지 파일을 무시하므로 배치되지 않은 파일 코드, 즉 PowerShell 코드를 자유롭게 포함할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;49&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 그&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;#&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;50&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;코드를 합니다. line은 PowerShell 주석 블록을 포함합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;51&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파일이기  형식의 PowerShell 파일입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;findstr&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;52&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;코드를 은 파일  확장자가 입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 그러나 PowerShell은 파일 이름 확장자가 있는 스크립트만 실행하기 때문입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;.ps1&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;53&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;배치 파일의 (&lt;em papago-id=&quot;53-1&quot;&gt;임의&lt;/em&gt;의) 사본을 작성해야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;%TEMP%\%~n0.ps1&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;54&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;을 임시복생다에 만듭니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;%TEMP%&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;55&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;배치 파일에 대해 이름이 지정된 폴더(&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;%~n0&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;56&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;),  확장자가  경우), 이 파일은 삭제됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;.ps1&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;57&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;작업이 완료되면 임시 파일이 자동으로 제거됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;58&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음의 3개의 &lt;em papago-id=&quot;58-1&quot;&gt;개별&lt;/em&gt; 라인에 주의하십시오.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;cmd.exe&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;59&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;명령문은 PowerShell 명령의 종료 코드를 전달하는 데 필요합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;60&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(사用)&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;setlocal enabledelayedexpansion&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;61&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가정적으로 &lt;em papago-id=&quot;61-1&quot;&gt;그것&lt;/em&gt;을 한 줄로 하는 것을 허용하지만, 그것은 원치 않는 해석을 초래할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;!&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;62&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;chars.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 인수에서.)&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;hr&gt; 
&lt;p papago-id=&quot;90&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;90-1&quot;&gt;인수 전달&lt;/strong&gt;의 견고성을 &lt;strong papago-id=&quot;90-1&quot;&gt;입증하기 위해&lt;/strong&gt;:&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;63&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가 의위코다음같과이저로 저장되었다고 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;sample.cmd&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;64&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;호출:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;sample.cmd &quot;val. w/ spaces &amp;amp; special chars. (\|&amp;lt;&amp;gt;'), on %OS%&quot; 666 &quot;Lisa \&quot;Left Eye\&quot; Lopez&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;93&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 결과를 제공합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-none prettyprint-override&quot;&gt;&lt;code&gt;Args:
arg #1: [val. w/ spaces &amp;amp; special chars. (\|&amp;lt;&amp;gt;'), on Windows_NT]
arg #2: [666]
arg #3: [Lisa &quot;Left Eye&quot; Lopez]
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;65&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;65-1&quot;&gt;포함된 문자&lt;/strong&gt;가 로 &lt;strong papago-id=&quot;65-1&quot;&gt;전달된 방식&lt;/strong&gt;을 기록합니다.&lt;/font&gt;&lt;/font&gt;&lt;br&gt; &lt;font papago-translate=&quot;translated&quot; papago-id=&quot;66&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;66-0&quot;&gt;그러나 포함&lt;/strong&gt;된 문자와 &lt;strong papago-id=&quot;66-0&quot;&gt;관련&lt;/strong&gt;된 &lt;strong papago-id=&quot;66-0&quot;&gt;&lt;em papago-id=&quot;66-0-1&quot;&gt;에지&lt;/em&gt;&lt;/strong&gt; &lt;strong papago-id=&quot;66-0&quot;&gt;사례&lt;/strong&gt;가 &lt;strong papago-id=&quot;66-0&quot;&gt;&lt;em papago-id=&quot;66-0-1&quot;&gt;있습니다&lt;/em&gt;.:&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;:: # BREAKS, due to the `&amp;amp;` inside \&quot;...\&quot;
sample.cmd &quot;A \&quot;rock &amp;amp; roll\&quot; life style&quot;

:: # Doesn't break, but DOESN'T PRESERVE ARGUMENT BOUNDARIES.
sample.cmd &quot;A \&quot;&quot;rock &amp;amp; roll\&quot;&quot; life style&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;96&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이러한 &lt;strong papago-id=&quot;96-0&quot;&gt;어려움&lt;/strong&gt;은 의 &lt;strong papago-id=&quot;96-0&quot;&gt;결함&lt;/strong&gt; 있는 &lt;strong papago-id=&quot;96-0&quot;&gt;주장&lt;/strong&gt; 구문 분석에&lt;strong papago-id=&quot;96-0&quot;&gt; 기인&lt;/strong&gt;하며, 궁극적으로 &lt;a href=&quot;https://stackoverflow.com/a/49122891/45375&quot; papago-id=&quot;96-4&quot;&gt;flabdablet가 그의 훌륭한 답변에서 지적&lt;/a&gt;한 것처럼 이러한 &lt;strong papago-id=&quot;96-0&quot;&gt;결함&lt;/strong&gt;을 &lt;em papago-id=&quot;96-2&quot;&gt;시도&lt;/em&gt;하는 것은 무의미합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;97&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그가 설명했듯이, &lt;strong papago-id=&quot;97-1&quot;&gt;시퀀스&lt;/strong&gt; 안에 (&lt;strong papago-id=&quot;97-1&quot;&gt;sic)&lt;/strong&gt;이 있는 다음 &lt;strong papago-id=&quot;97-1&quot;&gt;메타 문자를 이스케이프하면 문제가 해결&lt;/strong&gt;됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;amp; | &amp;lt; &amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;98&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위의 예를 사용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;:: # OK: cmd.exe metachars. inside \&quot;...\&quot; are ^^^-escaped.
sample.cmd &quot;A \&quot;rock ^^^&amp;amp; roll\&quot; life style&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;67&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;한 솔루션과 를 지원하며  줄 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;param&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;68&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제이가 올린 해결책처럼.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;유일한 단점은 이 솔루션이 임시 파일을 만든다는 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저의 사용 사례에 적합합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@@echo off
@@findstr/v &quot;^@@.*&quot; &quot;%~f0&quot; &amp;gt; &quot;%~f0.ps1&quot; &amp;amp; powershell -ExecutionPolicy ByPass &quot;%~f0.ps1&quot; %* &amp;amp; del &quot;%~f0.ps1&quot; &amp;amp; goto:eof
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;101&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 작업에 대한 현재 선호도는 &lt;a href=&quot;https://stackoverflow.com/a/49063524/14845&quot; papago-id=&quot;101-1&quot;&gt;mklement0의 첫 번째&lt;/a&gt; 솔루션과 거의 동일한 방식으로 작동하는 폴리글롯 헤더입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;#  :cmd header for PowerShell script
@   set dir=%~dp0
@   set ps1=&quot;%TMP%\%~n0-%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.ps1&quot;
@   copy /b /y &quot;%~f0&quot; %ps1% &amp;gt;nul
@   powershell -NoProfile -ExecutionPolicy Bypass -File %ps1% %*
@   del /f %ps1%
@   goto :eof
#&amp;gt;

# Paste arbitrary PowerShell code here.
# In this example, all arguments are echoed.
$Args | % { 'arg #{0}: [{1}]' -f ++$i, $_ }
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;69&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여러 가지 이유로 cmd 헤더를 각각 하나의 명령어로 여러 줄로 배치하는 것을 선호합니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;먼저, 무슨 일이 일어나고 있는지를 보는 것이 더 쉽다고 생각합니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 명령줄은 편집 창 오른쪽에서 떨어지지 않을 정도로 짧습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 왼쪽에 있는 구두점 열은 첫 번째 줄에 있는 끔찍하게 남용된 레이블이 말하는 머리글 블록으로 시각적으로 표시합니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 째둘,,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;del&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;70&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;goto&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;71&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;명령은 고유한 줄에 있으므로, 정말 펑키한 것이 스크립트 인수로 전달되더라도 계속 실행됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;72&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;임시적인 솔루션을 선호하게 되었습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;.ps1&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;73&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;존하는사람대다줄을게에에 을 제출합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Invoke-Expression&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;74&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;PowerShell의 이해할 수 없는 오류 메시지에는 최소한 의미 있는 라인 번호가 포함되기 때문입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;75&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 데 까지 완전히 의 PowerShell은 PowerShell과 128비트를 사용합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;%RANDOM%&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;76&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;임시 파일 이름에 포함되어 있기 때문에 여러 개의 동시 스크립트가 서로의 임시 파일을 중지하지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;은 원래  스크립트가가 손실될 수 입니다. 는 cmd 파일 접근 방식에 입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 이는 다음과 같은 이유입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;dir&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;77&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;환경 변수가 두 번째 줄에 생성되었습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;111&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;PowerShell이 스크립트 파일에서 허용할 파일 이름 확장자에 대해 그렇게 신경 쓰지 않는 것은 훨씬 덜 성가실 것입니다. 하지만 당신은 당신이 갖고 싶은 셸이 아니라 당신이 가지고 있는 셸과 전쟁을 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;112&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;말이 나온 김에: mklement0이 관찰하듯이,&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;# BREAKS, due to the `&amp;amp;` inside \&quot;...\&quot;
sample.cmd &quot;A \&quot;rock &amp;amp; roll\&quot; life style&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;78&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;은 실은제깨다집면니, 왜하냐로 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;cmd.exe&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;79&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;전혀 가치 없는 인수 구문 분석입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 일반적으로 cmd의 많은 제한 사항을 &lt;em papago-id=&quot;79-1&quot;&gt;숨기려고&lt;/em&gt; 노력하는 작업이 적을수록 예상치 못한 버그가 줄어든다는 것을 발견했습니다(예를 들어, mkemle0의 흠잡을 데 없는 앰퍼와 논리 탈출을 깨는 괄호가 포함된 인수를 생각해 낼 수 있을 것이라고 확신합니다).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 보기에, 총알을 깨물고 비슷한 것을 사용하는 것이 덜 고통스럽습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;sample.cmd &quot;A \&quot;rock ^^^&amp;amp; roll\&quot; life style&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;80&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;와 세 번째 첫와째세째번번.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;^&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;81&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 분석될 때, 두은 이스케이프를 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;amp;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;82&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;으로 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;powershell.exe&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;83&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 못생겼어요.&quot;, 이못겼요어생네거요▁yes어못겼생.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;네, 그렇게 행동하는 것이 더 어렵습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;cmd.exe&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;84&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대본에서 가장 먼저 시작하는 것이 아닙니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;걱정 말아요.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;중요한 경우 문서화합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;85&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의 실제 대분의실이션서에케애는&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;amp;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;86&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어쨌든 이슈는 미결입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이와 같은 스크립트에 대한 인수로 전달될 대부분은 드래그 앤 드롭을 통해 도착하는 경로 이름이 될 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Windows에서는 공간과 앰퍼샌드를 보호하기에 충분한 따옴표를 따옴표 이외의 값을 따옴표로 묶습니다. 이 값은 Windows 경로 이름에서는 사용할 수 없습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;87&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;도 못 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Vinyl LP's, 12&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;88&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;CSV 파일에 표시됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;124&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다른 샘플 배치+검정력&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;셸 스크립트...&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 솔루션은 다른 제안 솔루션보다 간단하며 다음과 같은 특징을 가지고 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;125&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;임시 파일 생성 없음 =&amp;gt; 성능이 향상되고 덮어쓸 위험이 없습니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;126&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;배치 코드의 특별한 접두사는 없습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 그냥 일반적인 배치입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;PowerShell 코드도 마찬가지입니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;127&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;! % &amp;lt; &amp;gt; ' $와 같은 까다로운 문자가 있는 따옴표로 묶인 문자열을 포함하여 모든 배치 인수를 PowerShell에 올바르게 전달합니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;128&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;큰따옴표는 큰따옴표를 두 배로 하여 전달할 수 있습니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;129&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;표준 입력은 PowerShell에서 사용할 수 있습니다. (Batch 자체를 PowerShell로 파이프로 연결하는 모든 버전과는 대조적입니다.)&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p papago-id=&quot;130&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 샘플은 언어 전환을 표시하고 PowerShell 측은 배치 측에서 받은 인수 목록을 표시합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;# :# PowerShell comment protecting the Batch section
@echo off
:# Disabling argument expansion avoids issues with ! in arguments.
setlocal EnableExtensions DisableDelayedExpansion

:# Prepare the batch arguments, so that PowerShell parses them correctly
set ARGS=%*
if defined ARGS set ARGS=%ARGS:&quot;=\&quot;%
if defined ARGS set ARGS=%ARGS:'=''%

:# The ^ before the first &quot; ensures that the Batch parser does not enter quoted mode
:# there, but that it enters and exits quoted mode for every subsequent pair of &quot;.
:# This in turn protects the possible special chars &amp;amp; | &amp;lt; &amp;gt; within quoted arguments.
:# Then the \ before each pair of &quot; ensures that PowerShell's C command line parser 
:# considers these pairs as part of the first and only argument following -c.
:# Cherry on the cake, it's possible to pass a &quot; to PS by entering two &quot;&quot; in the bat args.
echo In Batch
PowerShell -c ^&quot;Invoke-Expression ('^&amp;amp; {' + [io.file]::ReadAllText(\&quot;%~f0\&quot;) + '} %ARGS%')&quot;
echo Back in Batch. PowerShell exit code = %ERRORLEVEL%
exit /b

###############################################################################
End of the PS comment around the Batch section; Begin the PowerShell section #&amp;gt;

echo &quot;In PowerShell&quot;
$Args | % { &quot;PowerShell Args[{0}] = '$_'&quot; -f $i++ }
exit 0
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;131&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다른 대부분의 사람들이 실제로 PowerShell 주석처럼 보이듯이 배치 주석에는 :: 대신 :#을 사용합니다. (또는 다른 대부분의 스크립트 언어 주석처럼 보입니다.)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;89&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용하다&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Invoke-Command&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;90&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;icm&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;91&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;한 cmd로 만들 수 있습니다: &quot; 여서줄&quot;, &quot;다음 4헤를 ps1파일여유한효하배추다가치있니로습만들수줄에더1▁for줄),▁we다▁cmd▁4▁prep▁can니다▁line▁to▁batch배있한음습),줄:▁header▁short,치▁make▁it수.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;# : batch portion
@powershell -noprofile &quot;&amp;amp; {icm -ScriptBlock ([Scriptblock]::Create((cat -Raw '%~f0'))) -NoNewScope -ArgumentList $args}&quot; %*
@exit /b %errorlevel%
: end batch / begin powershell #&amp;gt;

&quot;Result:&quot;
$args | %{ &quot;`$args[{0}]: $_&quot; -f $i++ }
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;92&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가 스크립트 [0]를 변경합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;%*&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;93&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&quot;'%~f0'&quot; %*&lt;/code&gt;&lt;/p&gt;&lt;p papago-id=&quot;137&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신의 질문을 완전히 이해하지 못한다면, 제 제안은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@echo off
set MYSCRIPT=&quot;some cool powershell code&quot;
powershell -c %MYSCRIPT%
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;138&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아니면 더 나은.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@echo off
set MYSCRIPTPATH=c:\work\bin\powershellscript.ps1
powershell %MYSCRIPTPATH%
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;139&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Powershell 스크립트 앞에 세 줄을 추가하고, 블록 주석만 사용한 다음 배치 파일로 저장할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 Powershell 스크립트를 실행할 배치 파일을 가질 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;예:&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;psscript.bat&lt;/code&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@echo off
@powershell -command &quot;(Get-Content -Encoding UTF8 '%0' | select-string -pattern '^[^@]')&quot; | @powershell -NoProfile -ExecutionPolicy ByPass
@goto:eof
&amp;lt;# Must use block comment; Powershell script starts below #&amp;gt;
while($True) {
    Write-Host &quot;wait for 3s&quot;
    Start-Sleep -Seconds 3
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;140&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;몇 가지 아이디어를 모으기&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;# :
@powershell -&amp;lt;%~f0&amp;amp;goto:eof
#&amp;gt;

Write-Output &quot;Hello World&quot; 
Write-Output &quot;Hello World again&quot; 
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;@powershell -noninteractive &quot;&amp;amp; ([Scriptblock]::Create((gc '%~df0' | select -Skip 1 | Out-String))) %*&quot; &amp;amp; goto :eof
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;141&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 드리는 제물은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;142&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;142-1&quot;&gt;확실한 &lt;/strong&gt;것을 사용합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;exe 입력 파일을 해시하여 임시로 파일 이름을 &lt;strong papago-id=&quot;142-1&quot;&gt;형성&lt;/strong&gt;합니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;143&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;more&lt;strong papago-id=&quot;143-1&quot;&gt;.exe를 사용&lt;/strong&gt;하여 헤더를 제거하고 임시로 파일을 만듭니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;144&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;all -arg xxx 스타일 인수를 powershell에 전달합니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;145&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에서는 ps1 파일을 볼 수 있도록 임시로 보관합니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h2 papago-id=&quot;146&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;용법의 예&lt;/font&gt;&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;
.\runner.bat
.\runner.bat -scope town
.\runner.bat -scope &quot;whole universe&quot;

&lt;/code&gt;&lt;/pre&gt; 
&lt;h2 papago-id=&quot;147&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;주자.배트&lt;/font&gt;&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;@echo off &amp;amp; (For /F Delims^= %%a In ('CertUtil -HashFile %0 SHA1^|FindStr /VRC:&quot;[^a-f 0-9]&quot;') Do Set &quot;PS1=%TEMP%\%%a.ps1&quot; )
(if not exist %PS1% more +3 %0 &amp;gt; %PS1%) &amp;amp; (PowerShell.exe -ExecutionPolicy bypass -file %PS1% %* &amp;amp; goto :EOF)
@@@@@@[ PowerShell Starts Here ]@@@@@@

Param(
    [String]$scope = &quot;world&quot;
)
write-host &quot;hello $scope&quot;


&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;148&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/a/76202587/3626361&quot; papago-id=&quot;148-2&quot;&gt;레드 라이딩 &lt;/a&gt;&lt;strong papago-id=&quot;148-4&quot;&gt;후드의 &lt;/strong&gt;답변을 &lt;a href=&quot;https://stackoverflow.com/a/76202587/3626361&quot; papago-id=&quot;148-2&quot;&gt;수정&lt;/a&gt;한 &lt;strong papago-id=&quot;148-0&quot;&gt;스타일&lt;/strong&gt;입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;[ &lt;em papago-id=&quot;148-6&quot;&gt;스택 오버플로 편집 대기열이 가득&lt;/em&gt; 찼기 &lt;em papago-id=&quot;148-6&quot;&gt;때문&lt;/em&gt;에 :&lt;em papago-id=&quot;148-6&quot;&gt;D&lt;/em&gt; ]&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;149&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;완성도를 위해:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;150&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;누락된 유용한 PowerShell 인수가 추가되었습니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;151&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오류 처리를 개선하기 위해 오류 수준을 반환합니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;152&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;단일 및 이중 따옴표로 묶인 인수 지원&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;153&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 &lt;a href=&quot;https://stackoverflow.com/questions/2609985/how-to-run-a-powershell-script-within-a-windows-batch-file/33065387#comment132901791_75179855&quot; papago-id=&quot;153-1&quot;&gt;불쾌한&lt;/a&gt; 버그를 &lt;a href=&quot;https://stackoverflow.com/questions/2609985/how-to-run-a-powershell-script-within-a-windows-batch-file/33065387#comment132901791_75179855&quot; papago-id=&quot;153-1&quot;&gt;제거&lt;/a&gt;합니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;154&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Batch 및 PowerShell 구문 강조 표시와의 호환성을 보장하여 구문 오류를 방지합니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;155&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;코드 조각:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;# :
@PowerShell -ExecutionPolicy Bypass -NoLogo -NoProfile &quot;&amp;amp; ([Scriptblock]::Create((Get-Content '%~df0' | Select-Object -Skip 4 | Out-String))) %*&quot; &amp;amp; goto :eof
exit /b %errorlevel%
#&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;156&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;전체 데모 스크립트:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;# :
@PowerShell -ExecutionPolicy Bypass -NoLogo -NoProfile &quot;&amp;amp; ([Scriptblock]::Create((Get-Content '%~df0' | Select-Object -Skip 4 | Out-String))) %*&quot; &amp;amp; goto :eof
exit /b %errorlevel%
#&amp;gt;
Write-Output $PSVersionTable
Write-Output $args
$host.ui.RawUI.WindowTitle = &quot;PowerShell Chimera&quot;
[System.Security.Principal.WindowsIdentity]::GetCurrent().Name
Start-Sleep -Seconds 5
Exit 0x539
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;157&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용 예:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;# demo.bat var1=&quot;1&quot; var2='2' &amp;amp; echo %errorlevel%
# demo.bat &quot;var1=1&quot; 'var2=2' &amp;amp; echo %errorlevel%
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;158&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;출력:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Name                           Value
----                           -----
PSVersion                      5.1.19041.868
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.19041.868
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
var1=1
var2=2
WINDOWS-PC\User
1337
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;94&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;94-0&quot;&gt;참고 사항:&lt;/strong&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;만약 당신이 그것에 대해 확신하지 못한다면.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;-NonInteractive&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;95&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/a/76202587/3626361&quot; papago-id=&quot;95-1&quot;&gt;레드 라이딩 &lt;/a&gt;후드의 &lt;a href=&quot;https://stackoverflow.com/a/76202587/3626361&quot; papago-id=&quot;95-1&quot;&gt;원래&lt;/a&gt; 답변에 &lt;a href=&quot;https://stackoverflow.com/a/76202587/3626361&quot; papago-id=&quot;95-1&quot;&gt;사용&lt;/a&gt;된 주장, 아래 설명을 인용했습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;96&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신이 사용하는 것을 오해하고 있는 것 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;-NonInteractive&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;97&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스위치; 당신은 여전히 powershell-non-interactive를 실행할 수 있고 대화형 프롬프트를 받을 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;NonInteractive&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;98&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스위치는 자동화된 스크립팅 시나리오를 위해 고안되었으며, 파워셸이 사용자에게 프롬프트를 보내고 응답을 기다리지 않도록 할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;들어 이 아닌 에서 PowerShell을 하는 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Get-Credential&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;99&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;매개 변수가 없으면 사용자 이름과 암호를 묻는 대신 즉시 실패합니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;비대화형은 보안 메커니즘으로 작동하지 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더 나은 방법은 사용자가 액세스하는 데 사용할 수 있는 도구가 아니라 보호하려는 내용을 보호하는 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;165&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;165-0&quot;&gt;출처:&lt;/strong&gt; &quot;&lt;em papago-id=&quot;165-4&quot;&gt;PowerShell이 대화형 명령&lt;/em&gt; 창을 &lt;em papago-id=&quot;165-4&quot;&gt;허용하지 않도록 강제하는 방법&lt;/em&gt;&quot; 질문에 &lt;a href=&quot;https://serverfault.com/a/642848/359918&quot; papago-id=&quot;165-2&quot;&gt;대한&lt;/a&gt; jbsmith의&lt;a href=&quot;https://serverfault.com/a/642848/359918&quot; papago-id=&quot;165-2&quot;&gt; 답변&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;p papago-id=&quot;166&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;166-0&quot;&gt;PS:&lt;/strong&gt; PowerShell 해킹대회로 변신한 주제 :D&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;167&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/a/2611394/2111778&quot; papago-id=&quot;167-1&quot;&gt;1위&lt;/a&gt;를 차지하는 답변에는 당사 솔루션의 다음과 같은 기능이 없습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;Read-Host&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;100&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;pause&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;101&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이제 작동합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;170&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;인수 패스스루(따옴표로 묶은 인수 포함)&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;171&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;반환 코드 패스스루&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;# :
  @set batch_args=%*
  @powershell &quot;iex ('$args = @(iex \&quot;^&amp;amp; {`$args} $env:batch_args\&quot;);' + (cat -Raw '%~f0'))&quot;
  @exit /b %ERRORLEVEL%
#&amp;gt;

Write-Host Your PowerShell code goes here. First arg: $args[0] -fore Green
Read-Host Waiting for user to press Enter
Exit 42
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;102&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;인수가 필요하지 않으면 다음과 같이 하면 됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@powershell &quot;iex (cat -Raw '%~f0')&quot;&lt;/code&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;p papago-id=&quot;173&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;설명:&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;code&gt;&amp;lt;# ... #&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;104&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.  PowerShell은 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;# :&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;105&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;배치에서 null 리디렉션으로 해석되므로 주석은 배치 코드로만 실행됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;ul&gt; 
   &lt;li&gt;&lt;code&gt;exit /b %ERRORLEVEL%&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;103&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 종료 코드 PowerShell 종료반록도합니다하를 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;108&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;은 PowerShell 가 있는 만 실행합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;.ps1&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;109&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;을 직접 실행하는  &quot;PowerShell&quot;, &quot;PowerShell&quot;이라고 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Invoke-Expression&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;110&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;iex&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;111&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대신 그것을 실행하기 위해.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;ul&gt; 
   &lt;li&gt;&lt;code&gt;%~f0&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;106&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;는 Batch의  코드 입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;code&gt;$args&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;107&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;인수를 이지만, 하여 수동으로합니다. PowerShell은 이 변수를 PowerShell과 동일하게 설정합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;@&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;112&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;code&gt;%*&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;118&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일괄 처리에서 스크립트에 전달된 모든 인수를 참조합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt; &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;ul&gt; 
   &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;113&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 그&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;amp; {$args} %*&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;114&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일부 볼 수  인수를 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
   &lt;li papago-id=&quot;186&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/a/6714242/2111778&quot; papago-id=&quot;186-3&quot;&gt;PowerShell이 의심&lt;/a&gt;되므로 인용된 &lt;strong papago-id=&quot;186-1&quot;&gt;인수&lt;/strong&gt;가 해당 스니펫에서 작동하지 &lt;strong papago-id=&quot;186-1&quot;&gt;않습니다&lt;/strong&gt;.&lt;/font&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;115&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내가 하면,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;$args = (echo %*)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;116&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; echo는 가 전달되지  경우 의 상호 작용을  echo echo 는수달인전을않지되우다경상기 :/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
   &lt;li papago-id=&quot;189&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 env 변수를 &lt;a href=&quot;https://stackoverflow.com/a/39915742/2111778&quot; papago-id=&quot;189-1&quot;&gt;설정하고 Invoke-Expression&lt;/a&gt;으로 두 번 &lt;a href=&quot;https://stackoverflow.com/a/39915742/2111778&quot; papago-id=&quot;189-1&quot;&gt;구문&lt;/a&gt; 분석하는 나의 초특급 해결 방법은 잘못된 인용 문제를 해결하고 인수 없음 문제를 방지합니다!&lt;/font&gt;&lt;/li&gt; 
   &lt;li&gt;&lt;code&gt;@&lt;/code&gt; &lt;font papago-translate=&quot;translated&quot; papago-id=&quot;117&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;0개의 인수가 있더라도 &lt;a href=&quot;https://stackoverflow.com/q/71274065/2111778&quot; papago-id=&quot;117-0&quot;&gt;항상 배열을 얻을&lt;/a&gt; 수 &lt;a href=&quot;https://stackoverflow.com/q/71274065/2111778&quot; papago-id=&quot;117-0&quot;&gt;있습니다&lt;/a&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;119&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 그&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ScriptBlock&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;120&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기반 답변은 다음과 같은 문제를 가지고 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Write-Host&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;121&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;은 &quot;문&quot;과 함께 됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Write-Output&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;122&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;/&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;echo&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;123&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;- 기반 답변은 블록이 완료될 때만 표시되며, 이는 내 사용 사례에 치명적입니다(사용).&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Read-Host&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;124&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;할 경우  둡니다).&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;198&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/2609985/&lt;a href=&quot;https://stackoverflow.com/questions/2609985/how-to-run-a-powershell-script-within-a-windows-batch-file&quot; target=&quot;_blank&quot; papago-id=&quot;198-1&quot;&gt;how-to-run-a-powershell-script-within-a-windows-batch-file&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/572</guid>
      <comments>https://kingscode.tistory.com/572#entry572comment</comments>
      <pubDate>Tue, 29 Aug 2023 21:27:08 +0900</pubDate>
    </item>
    <item>
      <title>콘다가 차지하는 디스크 공간을 어떻게 확보합니까?</title>
      <link>https://kingscode.tistory.com/571</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;콘다가 차지하는 디스크 공간을 어떻게 확보합니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 콘다 패키지 매니저를 많이 사용하고 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;지금은 SSD에 많은 공간을 차지하는 환경과 다운로드된 패키지가 많이 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이러한 공간을 확보하는 확실한 방법은 다음 명령을 사용하는 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;conda env export &amp;gt; environment.yml
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://conda.io/docs/user-guide/tasks/manage-environments.html#exporting-the-environment-file&lt;a href=&quot;https://conda.io/docs/user-guide/tasks/manage-environments.html#exporting-the-environment-file&quot; papago-id=&quot;2-1&quot; rel=&quot;noreferrer&quot;&gt; &lt;/a&gt;에서 이전의 비활성 프로젝트에서 사용하는 패키지(d)를 내보낸 다음 이러한 환경을 삭제합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 이해하는 한, 이것은 공간의 일부를 자유롭게 할 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;anaconda2/envs/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 이 아닌&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;anaconda2/pkgs/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 소포들을 어떻게 없애나요?&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한, 환경이 연결되어 있지 않은 패키지가 아직도 많이 남아 있을 수도 있다고 생각합니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 그럴 수 있을까요?&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;질문:&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일반적으로:&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;콘도가 차지하는 공간을 줄이는 가장 좋은 방법은 무엇입니까?&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더 이상 사용하지 않는 환경에서 패키지를 제거하려면 어떻게 해야 합니까?&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;패키지를 제거하려면 어떻게 해야 합니까?&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 다음과 같은 것을 찾고 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;sudo apt-get autoremove&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Ubuntu/Debian이 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt;&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음을 사용하여 일부 공간을 확보할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;conda clean --all
&lt;/code&gt;&lt;/pre&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;code&gt;clean&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용하지 않는 패키지 및 캐시를 제거합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Conda는 패키지에 대해 가능할 때 이미 심볼 링크를 사용합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서, 제 생각에는, 여기서 개선할 것이 별로 없습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;네, 감사합니다. 하지만 &quot;특정 환경을 위한 것이 아니라 일반적으로&quot; 모든 환경을 위한 것인지 알고 싶습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 몇 줄의 Python으로 모든 환경의 모든 패키지를 나열할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;import os
import subprocess
for env in os.listdir('/Users/me/miniconda3/envs'):
    subprocess.call(['conda', 'list', '-n', env])
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;마침내 저는 이 문제를 처리할 수 있게 되었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;결국 며칠 동안의 작업이었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;모든 파이썬 프로젝트에 대해 PyCharm을 사용하고 어떤 프로젝트가 어떤 환경을 사용하는지 확인했습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;는 모든 에서 모든환사습다니용했서를 했습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;conda env export &amp;gt; environment.yml&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#exporting-the-environment-file&lt;a href=&quot;https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#exporting-the-environment-file&quot; papago-id=&quot;16-1&quot; rel=&quot;noreferrer&quot;&gt; &lt;/a&gt;에서 환경 설정을 저장합니다.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내 프로젝트가 environment.yml에서 생성된 새 환경에서 여전히 작동하는지 확인합니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용하다&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;anaconda-clean&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://docs.anaconda.com/anaconda/install/&lt;a href=&quot;https://docs.anaconda.com/anaconda/install/uninstall&quot; papago-id=&quot;19-1&quot; rel=&quot;noreferrer&quot;&gt;uninstall &lt;/a&gt;의 옵션 B에서 생성된 백업을 저장 위치에 저장합니다.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 이전이바기꾸의 을 바꿉니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;anaconda2&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에서 디리토렉으로 이동합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;anaconda2_backup&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;을 설치합니다 - 콘환설경치새 -&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;miniconda3&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;나의 경우에는&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;: 현재프 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;environment.yml&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이전 아나콘다 백업을 삭제합니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;마지막으로&lt;a href=&quot;https://blog.shadypixel.com/how-to-shrink-an-lvm-volume-safely/&quot; papago-id=&quot;28-1&quot; rel=&quot;noreferrer&quot;&gt; &lt;/a&gt;https://blog.shadypixel.com/&lt;a href=&quot;https://blog.shadypixel.com/how-to-shrink-an-lvm-volume-safely/&quot; papago-id=&quot;28-1&quot; rel=&quot;noreferrer&quot;&gt;how-to-shrink-an-lvm-volume-safely&lt;/a&gt;/ 을 사용하여 논리 볼륨도 줄였지만 이는 LVM을 사용하는 Linux 사용자 전용입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이렇게 하면 20~30GB의 공간을 확보할 수 있었습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/48706548/&lt;a href=&quot;https://stackoverflow.com/questions/48706548/how-to-free-disk-space-taken-up-by-anaconda&quot; target=&quot;_blank&quot; papago-id=&quot;30-1&quot;&gt;how-to-free-disk-space-taken-up-by-anaconda&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/571</guid>
      <comments>https://kingscode.tistory.com/571#entry571comment</comments>
      <pubDate>Tue, 29 Aug 2023 21:26:08 +0900</pubDate>
    </item>
    <item>
      <title>node.js 스트림을 사용한 오류 처리</title>
      <link>https://kingscode.tistory.com/570</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;node.js 스트림을 사용한 오류 처리&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스트림의 오류를 처리하는 올바른 방법은 무엇입니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;여러분이 들을 수 있는 '오류' 이벤트가 있다는 것은 이미 알고 있지만, 저는 임의로 복잡한 상황에 대해 좀 더 자세히 알고 싶습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;우선 간단한 파이프 체인을 수행하려면 어떻게 해야 합니까?&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;input.pipe(transformA).pipe(transformB).pipe(transformC)...&lt;/code&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 오류가 올바르게 처리되도록 이러한 변환 중 하나를 올바르게 생성하는 방법은 무엇입니까?&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더 많은 관련 질문:&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오류가 발생하면 '종료' 이벤트는 어떻게 됩니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;절대 발사되지 않나요?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;가끔 불이 나요?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;변환/스트림에 따라 달라집니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기는 기준이 무엇입니까?&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파이프를 통해 오류를 전파하는 메커니즘이 있습니까?&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;도메인은 이 문제를 효과적으로 해결합니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들면 좋을 것 같습니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;'오류' 이벤트에서 발생하는 오류에 스택 추적이 있습니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;가끔은?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;한 번도?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그들에게서 하나를 얻을 수 있는 방법이 있습니까?&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;p&gt;&lt;strong papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;변형시키다&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;변환 스트림은 읽기와 쓰기가 모두 가능하므로 '중간' 스트림이 매우 좋습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이러한 이유로, 그들은 때때로 다음과 같이 언급됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;through&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;하는 것이 &lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;할 수 있는 &lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;데이터를 전송하는 것이 아니라 데이터를 조작할 수 있는 훌륭한 인터페이스를 제공한다는 점을 제외하면 이러한 점에서 이중 스트림과 유사합니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;변환 스트림의 목적은 데이터가 스트림을 통과할 때 데이터를 조작하는 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어 비동기 호출을 수행하거나 두 개의 필드를 도출하거나 일부 항목을 다시 매핑하는 등의 작업을 수행할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;p&gt;&lt;img src=&quot;https://i.stack.imgur.com/CATkx.png&quot; alt=&quot;Where you might put a transform stream&quot;&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;변환 스트림을 만드는 방법은 &lt;a href=&quot;https://nodejs.org/api/stream.html#stream_api_for_stream_implementers&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;12-3&quot;&gt;여기&lt;/a&gt; 및 여기를 &lt;a href=&quot;https://nodejs.org/api/stream.html#stream_duplex_and_transform_streams&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;12-1&quot;&gt;참조&lt;/a&gt;하십시오.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신이 해야 할 일은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스트림 모듈 포함&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;변환 클래스를 인스턴스화(또는 상속)합니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;을합니다를 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;_transform&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;을 취하는 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;(chunk, encoding, callback)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;청크가 데이터입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대부분의 경우 작업 중인 경우 인코딩에 대해 걱정할 필요가 없습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;objectMode = true&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;청크 처리가 완료되면 콜백이 호출됩니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 이 청크는 다음 스트림으로 푸시됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스트림을 정말 쉽게 통과할 수 있는 멋진 도우미 모듈을 원한다면 2를 통해 &lt;a href=&quot;https://github.com/rvagg/through2&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;20-1&quot;&gt;제안&lt;/a&gt;합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오류 처리에 대해서는 계속 읽으십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;피리를&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파이프 체인에서 오류를 처리하는 것은 실제로 간단하지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://grokbase.com/t/gg/nodejs/12bwd4zm4x/should-stream-pipe-forward-errors&quot; papago-id=&quot;23-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;이&lt;/a&gt; 스레드에 &lt;a href=&quot;http://grokbase.com/t/gg/nodejs/12bwd4zm4x/should-stream-pipe-forward-errors&quot; papago-id=&quot;23-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;따르면&lt;/a&gt; .pipe()는 오류를 전달하도록 빌드되지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러니까...&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;var a = createStream();
a.pipe(b).pipe(c).on('error', function(e){handleError(e)});
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;c&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에서 에러 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;a&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것은 전해지지 않을 것이고, 사실, 던질 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 작업을 올바르게 수행하는 방법:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;var a = createStream();
a.on('error', function(e){handleError(e)})
.pipe(b)
.on('error', function(e){handleError(e)})
.pipe(c)
.on('error', function(e){handleError(e)});
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;두 번째 방법은 더 장황하지만 적어도 오류가 발생하는 상황은 유지할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 보통 좋은 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 목적지의 오류만 캡처하고 발생한 위치에 대해 크게 신경 쓰지 않는 경우에 도움이 되는 라이브러리가 &lt;a href=&quot;https://github.com/dominictarr/event-stream&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;28-1&quot;&gt;하나&lt;/a&gt; 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;끝.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오류 이벤트가 발생하면 종료 이벤트가 발생하지 않습니다(명시적으로).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;오류 이벤트가 발생하면 스트림이 종료됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;도메인&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제 경험상 도메인은 대부분의 시간 동안 정말 잘 작동합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;처리되지 않은 오류 이벤트(즉, 수신기가 없는 스트림에서 오류 발생)가 있는 경우 서버가 충돌할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이제 위의 기사에서 지적한 것처럼 모든 오류를 제대로 감지할 수 있는 도메인으로 스트림을 래핑할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;var d = domain.create();
 d.on('error', handleAllErrors);
 d.run(function() {
     fs.createReadStream(tarball)
       .pipe(gzip.Gunzip())
       .pipe(tar.Extract({ path: targetPath }))
       .on('close', cb);
 });
&lt;/code&gt;&lt;/pre&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위의 코드 샘플은 이 &lt;a href=&quot;http://grokbase.com/t/gg/nodejs/12bwd4zm4x/should-stream-pipe-forward-errors#20121129e2ve6sah3cwqgbsc2noefyrsba&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;33-1&quot;&gt;게시물&lt;/a&gt;에서 온 것입니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p papago-id=&quot;34&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;도메인의 장점은 스택 추적을 보존한다는 것입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이벤트 스트림도 이 작업을 잘 수행합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;35&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;자세한 내용은 &lt;a href=&quot;https://web.archive.org/web/20220825174324/https://github.com/substack/stream-handbook&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;35-1&quot;&gt;스트림&lt;/a&gt;&lt;sup papago-id=&quot;35-2&quot;&gt;1&lt;/sup&gt; 핸드북을 참조하십시오.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;깊이는 있지만 매우 유용하고 많은 유용한 모듈에 대한 훌륭한 링크를 제공합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;sup papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;1: &lt;em papago-id=&quot;36-1&quot;&gt;참고: &lt;/em&gt;이&lt;em papago-id=&quot;36-1&quot;&gt; 링크는 원래 GitHub repo가 2022년 8월경에 삭제되었기 때문에 archive&lt;/em&gt;.org 을 &lt;em papago-id=&quot;36-1&quot;&gt;가리킵니다&lt;/em&gt;.&lt;/font&gt;&lt;/sup&gt;&lt;/p&gt;&lt;p papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;node &amp;gt;= v10.0.0을 사용하는 경우 stream&lt;a href=&quot;https://nodejs.org/api/stream.html#stream_stream_pipeline_streams_callback&quot; papago-id=&quot;37-1&quot; rel=&quot;noreferrer&quot;&gt;.sys&lt;/a&gt; 및&lt;a href=&quot;https://nodejs.org/api/stream.html#stream_stream_finished_stream_options_callback&quot; papago-id=&quot;37-3&quot; rel=&quot;noreferrer&quot;&gt; stream&lt;/a&gt;을 &lt;a href=&quot;https://nodejs.org/api/stream.html#stream_stream_pipeline_streams_callback&quot; papago-id=&quot;37-1&quot; rel=&quot;noreferrer&quot;&gt;사용&lt;/a&gt;할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://nodejs.org/api/stream.html#stream_stream_finished_stream_options_callback&quot; papago-id=&quot;37-3&quot; rel=&quot;noreferrer&quot;&gt;완성된&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;const { pipeline, finished } = require('stream');

pipeline(
  input, 
  transformA, 
  transformB, 
  transformC, 
  (err) =&amp;gt; {
    if (err) {
      console.error('Pipeline failed', err);
    } else {
      console.log('Pipeline succeeded');
    }
});


finished(input, (err) =&amp;gt; {
  if (err) {
    console.error('Stream failed', err);
  } else {
    console.log('Stream is done reading');
  }
});
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;자세한 내용은 이 &lt;a href=&quot;https://github.com/nodejs/node/pull/19828&quot; rel=&quot;noreferrer&quot; papago-id=&quot;39-1&quot;&gt;Github&lt;/a&gt; PR을 참조하십시오.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;도메인이 더 이상 사용되지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 그것들이 필요하지 않습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 질문에서는 변환 또는 쓰기 가능 여부를 구분하는 것이 그다지 중요하지 않습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;mshell_http의 답변은 좋지만, 오류가 발생할 수 있다고 생각되는 각 스트림의 오류 이벤트를 명시적으로 청취하고 원하는 경우 핸들러 기능을 다시 사용할 수도 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;var a = createReadableStream()
var b = anotherTypeOfStream()
var c = createWriteStream()

a.on('error', handler)
b.on('error', handler)
c.on('error', handler)

a.pipe(b).pipe(c)

function handler (err) { console.log(err) }
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇게 함으로써 스트림 중 하나가 오류 이벤트를 발생시킬 경우 악명 높은 잡히지 않은 예외를 방지합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;44&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;전체 체인의 오류는 간단한 함수를 사용하여 맨 오른쪽 스트림으로 전파될 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;function safePipe (readable, transforms) {
    while (transforms.length &amp;gt; 0) {
        var new_readable = transforms.shift();
        readable.on(&quot;error&quot;, function(e) { new_readable.emit(&quot;error&quot;, e); });
        readable.pipe(new_readable);
        readable = new_readable;
    }
    return readable;
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;45&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같이 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;safePipe(readable, [ transform1, transform2, ... ]);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;code&gt;.on(&quot;error&quot;, handler)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스트림 오류만 처리하지만 사용자 지정 변환 스트림을 사용하는 경우&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;.on(&quot;error&quot;, handler)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내부에서 발생하는 오류를 감지하지 마십시오.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;_transform&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기능.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;애플리케이션 흐름을 제어하기 위해 다음과 같은 작업을 수행할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;this&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의 키워드.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;_transform&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;함수는 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Stream&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그 자체, 즉&lt;/font&gt;&lt;/font&gt;&lt;code&gt;EventEmitter&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;try catch&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오류를 발견하고 나중에 사용자 지정 이벤트 처리기에 전달하려면 아래와 같이 하십시오.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;// CustomTransform.js
CustomTransformStream.prototype._transform = function (data, enc, done) {
  var stream = this
  try {
    // Do your transform code
  } catch (e) {
    // Now based on the error type, with an if or switch statement
    stream.emit(&quot;CTError1&quot;, e)
    stream.emit(&quot;CTError2&quot;, e)
  }
  done()
}

// StreamImplementation.js
someReadStream
  .pipe(CustomTransformStream)
  .on(&quot;CTError1&quot;, function (e) { console.log(e) })
  .on(&quot;CTError2&quot;, function (e) { /*Lets do something else*/ })
  .pipe(someWriteStream)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;54&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이렇게 하면 논리 및 오류 처리기를 별도로 유지할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 일부 오류만 처리하고 다른 오류는 무시하도록 선택할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;splited&quot;&gt;&lt;strong papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;갱신하다&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대안: RXJS 관찰 가능&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;57&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://www.npmjs.com/package/multipipe&quot; rel=&quot;noreferrer&quot; papago-id=&quot;57-1&quot;&gt;다중&lt;/a&gt; 파이프 패키지를 사용하여 여러 스트림을 하나의 이중 스트림으로 결합합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;한 곳에서 오류를 처리할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;const pipe = require('multipipe')

// pipe streams
const stream = pipe(streamA, streamB, streamC) 


// centralized error handling
stream.on('error', fn)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Transform stream mechanics를 생성하고 콜백을 호출하여 Node.js 패턴 사용&lt;/font&gt;&lt;/font&gt;&lt;code&gt;done&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오류를 전파하기 위한 인수 포함:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;var transformStream1 = new stream.Transform(/*{objectMode: true}*/);

transformStream1.prototype._transform = function (chunk, encoding, done) {
  //var stream = this;

  try {
    // Do your transform code
    /* ... */
  } catch (error) {
    // nodejs style for propagating an error
    return done(error);
  }

  // Here, everything went well
  done();
}

// Let's use the transform stream, assuming `someReadStream`
// and `someWriteStream` have been defined before
someReadStream
  .pipe(transformStream1)
  .on('error', function (error) {
    console.error('Error in transformStream1:');
    console.error(error);
    process.exit(-1);
   })
  .pipe(someWriteStream)
  .on('close', function () {
    console.log('OK.');
    process.exit();
  })
  .on('error', function (error) {
    console.error(error);
    process.exit(-1);
   });
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;const http = require('http');
const fs = require('fs');
const server = http.createServer();

server.on('request',(req,res)=&amp;gt;{
    const readableStream = fs.createReadStream(__dirname+'/README.md');
    const writeableStream = fs.createWriteStream(__dirname+'/assets/test.txt');
    readableStream
    .on('error',()=&amp;gt;{
        res.end(&quot;File not found&quot;)
    })
    .pipe(writeableStream)
    .on('error',(error)=&amp;gt;{
        console.log(error)
        res.end(&quot;Something went to wrong!&quot;)
    })
    .on('finish',()=&amp;gt;{
        res.end(&quot;Done!&quot;)
    })
})

server.listen(8000,()=&amp;gt;{
    console.log(&quot;Server is running in 8000 port&quot;)
})
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;60&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;호출 코드가 이미 종료된 후에 발생하기 때문에 스트림에서 발생한 오류는 캡처되지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음 문서를 참조할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://nodejs.org/dist/latest-v10.x/docs/api/errors.html&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;61&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://nodejs.org/dist/latest-v10.x/docs/api/errors.html&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p papago-id=&quot;62&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/21771220/&lt;a href=&quot;https://stackoverflow.com/questions/21771220/error-handling-with-node-js-streams&quot; target=&quot;_blank&quot; papago-id=&quot;62-1&quot;&gt;error-handling-with-node-js-streams&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/570</guid>
      <comments>https://kingscode.tistory.com/570#entry570comment</comments>
      <pubDate>Wed, 9 Aug 2023 22:20:35 +0900</pubDate>
    </item>
    <item>
      <title>c 코드를 c++ 코드에 연결할 때 g++ 연결 순서 종속성</title>
      <link>https://kingscode.tistory.com/569</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;c 코드를 c++ 코드에 연결할 때 g++ 연결 순서 종속성&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오늘 이전에 저는 항상 객체와 라이브러리가 링크 단계에서 g++로 전달되는 순서가 중요하지 않다고 생각했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 오늘은 c++ 코드에서 c코드로 링크를 시도했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;외부 &quot;C&quot; 블록에 모든 C 헤더를 감쌌지만 링커는 여전히 C 객체 아카이브에 있는 기호를 찾는 데 어려움을 겪었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당황한 저는 링크 오류를 분리하기 위해 비교적 간단한 예제를 만들었지만 놀랍게도 문제 없이 링크된 간단한 예제입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;약간의 시행착오 끝에, 저는 간단한 예시에 사용된 링크 패턴을 에뮬레이트함으로써 메인 코드를 링크 OK로 가져올 수 있다는 것을 알게 되었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;패턴은 먼저 객체 코드, 두 번째 객체 아카이브(예:&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;g++ -o serverCpp serverCpp.o algoC.o libcrypto.a&lt;/code&gt; &lt;/p&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;누가 이것이 왜 그런지 좀 밝혀줄 수 있습니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 일반적인 c++ 코드를 연동할 때 이런 문제를 본 적이 없습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신이 매력적인 삶을 살기 전에 이것에 물리지 않았다면, 당신이 객체 파일과 라이브러리를 지정하는 순서는 GCC에서 매우 중요합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;링커는 표시된 순서대로 기호를 검색하므로 라이브러리 함수에 대한 호출이 포함된 원본 파일을 라이브러리 앞에 놓아야 합니다. 그렇지 않으면 링커가 이를 해결해야 한다는 사실을 알지 못합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;라이브러리의 복잡한 사용은 라이브러리를 한 번 이상 지정해야 한다는 것을 의미할 수 있으며, 이는 올바르게 적용하기 위한 왕실의 고통입니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;gcc/g++로 전달되는 라이브러리 순서는 실제로 중요합니다. 만약&lt;/font&gt;&lt;/font&gt;&lt;code&gt;A&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에 의존하는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;B&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;A이(가) 먼저 나열되어야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그 이유는 참조되지 않은 기호를 최적화하기 때문에 라이브러리를 볼 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;B&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;첫째, 그리고 그 시점에서 아무도 그것을 언급하지 않았고 그러면 그것은 그것으로부터 아무것도 연결되지 않을 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;정적 라이브러리는 아카이브로 그룹화된 개체 파일의 모음입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;링크를 연결할 때 링커는 현재 정의되지 않은 기호를 확인하는 데 필요한 개체만 선택합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;개체는 명령줄에 지정된 순서대로 연결되므로 라이브러리에 종속된 모든 개체 뒤에 오는 경우에만 라이브러리의 개체가 포함됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 링크 순서는 매우 중요합니다. 정적 라이브러리를 사용하려면 라이브러리 간에 순환 종속성을 도입하지 않고 종속성을 추적하도록 주의해야 합니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;--start-group archives --end-group&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아카이브 &lt;em papago-id=&quot;13-1&quot;&gt;대신&lt;/em&gt; 종속 라이브러리 2개를 작성합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;gcc main.o -L. -Wl,--start-group -lobj_A -lobj_b -Wl,--end-group
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/3363398/&lt;a href=&quot;https://stackoverflow.com/questions/3363398/g-linking-order-dependency-when-linking-c-code-to-c-code&quot; target=&quot;_blank&quot; papago-id=&quot;14-1&quot;&gt;g-linking-order-dependency-when-linking-c-code-to-c-code&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/569</guid>
      <comments>https://kingscode.tistory.com/569#entry569comment</comments>
      <pubDate>Wed, 9 Aug 2023 22:19:50 +0900</pubDate>
    </item>
    <item>
      <title>부트스트랩 글리피콘을 ASP 안에 넣으려면 어떻게 해야 합니까?ASP의 버튼입니다.그물?</title>
      <link>https://kingscode.tistory.com/568</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부트스트랩 글리피콘을 ASP 안에 넣으려면 어떻게 해야 합니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;ASP의 버튼입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그물?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 제 프로젝트에서 부트스트랩 3을 사용하고 있는데, ASP.net 버튼에 부트스트랩 글리피콘을 사용하고 싶습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기 제가 사용한 코드가 있는데, 잘 되지 않았습니다(트위터 부트스트랩을 사용하는 샘플을 받았습니다).&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;태그 대신&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;i&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;태그):&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;asp:Button ID=&quot;btnRandom&quot;
    runat=&quot;server&quot;
    Text=&quot;&amp;lt;span aria-hidden='true'
        class='glyphicon glyphicon-refresh'&amp;gt;
        &amp;lt;/span&amp;gt;&quot;
    onclick=&quot;btnRandom_Click&quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;뭔가 추가적인 조치를 취해야 할 것 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떻게 하면 작동할 수 있을까요?&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;7-1&quot;&gt;ASP&lt;/strong&gt;를 사용해야 합니다&lt;strong papago-id=&quot;7-1&quot;&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;7-5&quot;&gt;asp &lt;/strong&gt;&lt;em papago-id=&quot;7-3&quot;&gt;대신 LinkButton&lt;/em&gt;:&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;버튼, ASP에서 &lt;a href=&quot;http://getbootstrap.com/&quot; papago-id=&quot;7-7&quot; rel=&quot;noreferrer&quot;&gt;부트스트랩&lt;/a&gt; 3을 &lt;a href=&quot;http://getbootstrap.com/&quot; papago-id=&quot;7-7&quot; rel=&quot;noreferrer&quot;&gt;사용&lt;/a&gt;하는 방법은 다음과 &lt;strong papago-id=&quot;7-5&quot;&gt;같습니다&lt;/strong&gt;.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;NET 웹 애플리케이션:&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;코드를 사용하여 다음 작업을 수행할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;asp:LinkButton ID=&quot;btnRandom&quot; 
            runat=&quot;server&quot; 
            CssClass=&quot;btn btn-primary&quot;    
            OnClick=&quot;btnRandom_Click&quot;&amp;gt;
    &amp;lt;span aria-hidden=&quot;true&quot; class=&quot;glyphicon glyphicon-refresh&quot;&amp;gt;&amp;lt;/span&amp;gt;
&amp;lt;/asp:LinkButton&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음은 &quot;제출&quot; 텍스트가 있는 &lt;strong papago-id=&quot;9-1&quot;&gt;제출&lt;/strong&gt; 단추에 사용하는 내용의 예입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;asp:LinkButton ID=&quot;SubmitBtn&quot; 
                runat=&quot;server&quot; 
                CssClass=&quot;btn btn-primary&quot;    
                OnClick=&quot;SubmitBtn_Click&quot;&amp;gt;
    &amp;lt;span aria-hidden=&quot;true&quot; class=&quot;glyphicon glyphicon-ok&quot;&amp;gt;&amp;lt;/span&amp;gt;Submit
&amp;lt;/asp:LinkButton&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의 진짜 용도는 무엇입니까?&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ASP Server&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제어할 수 있는 시간&lt;/font&gt;&lt;/font&gt;&lt;code&gt;HTML&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;서버 제어:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;runat=&quot;server&quot; 특성을 설정하여 HTML 요소를 서버 컨트롤로 변환할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;button runat=&quot;server&quot; &amp;gt;
&amp;lt;span aria-hidden=&quot;true&quot; class=&quot;glyphicon glyphicon-refresh&quot;&amp;gt;&amp;lt;/span&amp;gt;Refresh
&amp;lt;/button&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것을 먹어보세요.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;button id=&quot;btnSubSearch&quot; runat=&quot;server&quot; type=&quot;submit&quot; class=&quot;btn btn-default&quot; onserverclick=&quot;btnSubSearch_Click&quot;&amp;gt;
&amp;lt;span aria-hidden=&quot;true&quot; class=&quot;glyphicon glyphicon-search&quot;&amp;gt;
&amp;lt;/span&amp;gt;
&amp;lt;/button&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;단추 또는 asp 대신 linkButton을 사용할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이와 같은 버튼;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;linkbutton runat=&quot;server&quot;&amp;gt;&amp;lt;a class=&quot;btn btn-info btn-md&quot;&amp;gt; &amp;lt;span 
 class=&quot;glyphicon glyphicon-plus&quot; style=&quot;font-size: x-large; font-weight: 
 bolder&quot;&amp;gt;&amp;lt;/span&amp;gt; &amp;lt;/a&amp;gt;&amp;lt;/linkbutton&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;As에 &lt;strong papago-id=&quot;16-1&quot;&gt;대한 작업&lt;/strong&gt;:&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;16-1&quot;&gt;단추&lt;/strong&gt; 글리피콘 스타일:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div class=&quot;btn btn-primary glyphicon glyphicon-search&quot;&amp;gt;
    &amp;lt;asp:Button ID=&quot;Button1&quot; runat=&quot;server&quot; Text=&quot;Search&quot; BackColor=&quot;Transparent&quot; BorderWidth=&quot;0&quot; OnClick=&quot;Button1_Click&quot; /&amp;gt;
                    &amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/24285570/&lt;a href=&quot;https://stackoverflow.com/questions/24285570/how-do-i-put-a-bootstrap-glyphicon-inside-an-aspbutton-in-asp-net&quot; target=&quot;_blank&quot; papago-id=&quot;17-1&quot;&gt;how-do-i-put-a-bootstrap-glyphicon-inside-an-aspbutton-in-asp-net&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/568</guid>
      <comments>https://kingscode.tistory.com/568#entry568comment</comments>
      <pubDate>Wed, 9 Aug 2023 22:18:41 +0900</pubDate>
    </item>
    <item>
      <title>Oracle에서 시퀀스가 있는 여러 행 삽입</title>
      <link>https://kingscode.tistory.com/567</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Oracle에서 시퀀스가 있는 여러 행 삽입&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Oracle 데이터베이스에 여러 행을 삽입하기 위해 사용한 쿼리입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 그 안에서 시퀀스를 사용하면 ORA-00001: 고유 제약 조건으로 오류가 발생합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;하는 방법.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;INSERT ALL
  INTO POSTAL_CODE( postal_code,desc)
    VALUES(postal_code.NEXTVAL,'Coimbatore')
  INTO POSTAL_CODE (postal_code,desc)
    VALUES(postal_code.NEXTVAL,'Mumbai') SELECT * FROM DUAL;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://docs.oracle.com/cloud/latest/db112/SQLRF/statements_9014.htm#SQLRF55094&quot; papago-id=&quot;2-1&quot;&gt;다중 가능&lt;/a&gt;한 삽입물에 대한 &lt;a href=&quot;https://docs.oracle.com/cloud/latest/db112/SQLRF/statements_9014.htm#SQLRF55094&quot; papago-id=&quot;2-1&quot;&gt;제한&lt;/a&gt;은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;ul&gt; 
  &lt;li papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다중 삽입 문의 어떤 부분에서도 시퀀스를 지정할 수 없습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다중 삽입은 단일 SQL 문으로 간주됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 NEXTVAL에 대한 첫 번째 참조는 다음 번호를 생성하고 문의 모든 후속 참조는 동일한 번호를 반환합니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;/ul&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇지 않습니다. 시퀀스를 사용하면 항상 동일한 값을 얻을 수 있으므로 동일한 시퀀스를 참조하여 한 번에 부모 및 자식 레코드를 만드는 것이 유용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;계속 사용하려면&lt;/font&gt;&lt;/font&gt;&lt;code&gt;insert all&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;1-1&quot;&gt;시퀀스&lt;/em&gt; 값을 가져오는 비결정론적 함수를 사용하여 이 문제를 해결할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;CREATE FUNCTION get_seq RETURN NUMBER IS
BEGIN
  RETURN postal_code_seq.nextval;
END;
/

INSERT ALL
  INTO POSTAL_CODE( postal_code,description)
    VALUES(get_seq,'Coimbatore')
  INTO POSTAL_CODE (postal_code,description)
    VALUES(get_seq,'Mumbai') SELECT * FROM DUAL;

2 rows inserted.

SELECT * FROM postal_code;

                            POSTAL_CODE DESCRIPTION        
--------------------------------------- --------------------
                                      1 Coimbatore          
                                      2 Mumbai              
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런데 좀 어색하네요.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;개별 삽입문을 사용하는 것이 더 나을 수도 있습니다. 단일 테이블에 다중 삽입을 사용하는 것은 실제로 별로 도움이 되지 않습니다. 또는 시퀀스에서 고유한 열을 설정하는 트리거를 사용하거나 삽입할 값을 생성하는 CTE/인라인 뷰를 사용하는 것이 좋습니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;데이터베이스 개체를 수정하는 대신 다중 테이블을 간단히 다시 작성할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;INSERT ALL&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;단판에&lt;/font&gt;&lt;/font&gt;&lt;code&gt;INSERT&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여러 행이 연결된 상태에서&lt;/font&gt;&lt;/font&gt;&lt;code&gt;UNION ALL&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;INSERT INTO postal_code
SELECT postal_code_seq.NEXTVAL, description
FROM
(
    SELECT 'Coimbatore' description FROM dual UNION ALL
    SELECT 'Mumbai'     description FROM dual
);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;시퀀스는 외부 쿼리에서 호출되어야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;내부 쿼리에서 시퀀스를 사용하면 코드를 단순화할 수 있지만 &quot;ORA-02287: 시퀀스 번호가 여기서 허용되지 않음&quot; 오류가 발생합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 방법 대신 삽입 전 트리거를 사용하여 키 열을 채울 것입니다(삽입에서 값이 제공되지 않은 경우).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;시퀀스는 다중 테이블 삽입에서 잘 작동하지 않습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;POSTAL_CODE(postal_code, desc) 값(postal_code)에 모두 삽입합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;NEXTVAL,&amp;amp;desc) POSTAL_CODE(postal_code,desc) 값(postal_code)에 입력합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;NEXTVAL, &amp;amp;desc) 선택*(듀얼에서)&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Oracle 데이터베이스에 이 다중 행을 삽입하려고 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;INTO POSTAL_CODE (postal_code,desc)
VALUES(&amp;amp;postal_code,&amp;amp;desc) SELECT * FROM DUAL;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/31968093/&lt;a href=&quot;https://stackoverflow.com/questions/31968093/inserting-multiple-rows-with-sequence-in-oracle&quot; target=&quot;_blank&quot; papago-id=&quot;16-1&quot;&gt;inserting-multiple-rows-with-sequence-in-oracle&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/567</guid>
      <comments>https://kingscode.tistory.com/567#entry567comment</comments>
      <pubDate>Wed, 9 Aug 2023 22:17:59 +0900</pubDate>
    </item>
    <item>
      <title>파생된 모든 테이블에 별칭이 있습니다!'오류 1248: 파생된 모든 테이블에는 고유한 별칭이 있어야 합니다'라는 메시지가 표시되는 이유는 무엇입니까?</title>
      <link>https://kingscode.tistory.com/566</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파생된 모든 테이블에 별칭이 있습니다!&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;'오류 1248: 파생된 모든 테이블에는 고유한 별칭이 있어야 합니다'라는 메시지가 표시되는 이유는 무엇입니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 쿼리를 실행할 때마다 다음 메시지가 표시됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오류 1248(42000):&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;파생된 모든 테이블에는 고유한 별칭이 있어야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;보다시피 하위 쿼리에 의해 생성된 파생 테이블에 대해 조인을 남긴 상위 쿼리가 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 하위 쿼리는 두 번째 파생 테이블에서 선택하고 내부는 세 번째 파생 테이블에 결합합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;세 개의 파생된 테이블 모두 적절한 별칭을 가집니다(&lt;/font&gt;&lt;/font&gt;&lt;code&gt;n1&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;n2&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;subquery&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하위 쿼리는 독립적으로 실행할 때 예상대로 실행됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 문제는 상위 쿼리에 래핑할 때만 발생합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;쿼리:&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-sql prettyprint-override&quot;&gt;&lt;code&gt;SELECT DATE_FORMAT(p.date_admitted, '%Y-%m') as month_admitted,
  diagnosis as diagnosis,
  education as education,
  COUNT(*) as total 
FROM patient_discharge_form d 
INNER JOIN survey_data sd ON sd.id = d.id 
LEFT JOIN submission s ON s.id = sd.submission_id 
LEFT JOIN patient p ON p.id = s.patient_id 
LEFT JOIN (
  SELECT n1.id,n1.diagnosis,n2.education
  FROM (
          SELECT id,'Gest Hyp' as diagnosis FROM patient_discharge_form WHERE gestational_hypertension=1
          UNION ALL
          SELECT id,'Pre w/ Sev' FROM patient_discharge_form WHERE preeclampsia_non_severe=1
        ) n1 
  INNER JOIN (
          SELECT id,'Written' as education FROM patient_discharge_form WHERE education LIKE '%written%'
          UNION ALL
          SELECT id,'Verbal' FROM patient_discharge_form WHERE education LIKE '%verbal%'
        ) n2 ON n1.id=n2.id
) subquery ON d.id = subquery.id 
WHERE (s.status = 'complete') 
GROUP BY month_admitted, diagnosis, education
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;음... 쿼리에서 &lt;em papago-id=&quot;11-1&quot;&gt;테이블&lt;/em&gt; 별칭에 문제가 없습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 &lt;em papago-id=&quot;11-3&quot;&gt;이것&lt;/em&gt;이 당신이 실행하고 있는 쿼리인지 궁금합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 열 별칭에 문제가 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;education&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의 란&lt;/font&gt;&lt;/font&gt;&lt;code&gt;select&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(그리고 아마도.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;diagnosis&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;역시) 애매합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;둘 중 하나에서 올 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;d&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;subquery&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 아마도 다른 테이블들도 마찬가지일 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일반적으로 문제를 방지하려면 쿼리의 모든 열 이름을 &lt;em papago-id=&quot;18-1&quot;&gt;한정&lt;/em&gt;해야 합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/68965163/&lt;a href=&quot;https://stackoverflow.com/questions/68965163/all-my-derived-tables-have-aliases-why-am-i-getting-error-1248-every-derived&quot; target=&quot;_blank&quot; papago-id=&quot;19-1&quot;&gt;all-my-derived-tables-have-aliases-why-am-i-getting-error-1248-every-derived&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/566</guid>
      <comments>https://kingscode.tistory.com/566#entry566comment</comments>
      <pubDate>Wed, 9 Aug 2023 22:17:16 +0900</pubDate>
    </item>
    <item>
      <title>PHP를 사용하는 MariaDB: SQLSTATE[HY000] [2002] 연결이 거부되었습니다.</title>
      <link>https://kingscode.tistory.com/565</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;PHP를 사용하는 MariaDB: SQLSTATE[&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;HY000] [2002] 연결이 거부되었습니다.&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이 문제에 대해 많은 책을 읽었지만 답을 찾지 못했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 mariadb 10.5에서 php7.4까지 PDO에 연결되어 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내 문제:&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;브라우저에서 직접 URL로 이동하면 연결이 됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;file_get_contents 또는 cUrl을 통해 다른 php 파일에서 액세스하려고 하면 오류가 발생합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$this-&amp;gt;conn = new PDO(&quot;mysql:host=&quot;.$this-&amp;gt;host.&quot;;dbname=&quot;.$dbname, $this-&amp;gt;username, $this-&amp;gt;password);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;IP 주소, localhost, 127.0.0.1을 호스트로 사용하려고 했지만 실패했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 또한 다른 곳에서 조언한 것처럼 포트=8889를 설정하여 mariadb를 0.0.0 또는 IP로 바인딩해 보았습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;6-0&quot;&gt;반복:&lt;/strong&gt; 다른 php 스크립트를 통해 호출되거나 내 동반 안드로이드 앱이 php 페이지를 누를 때만 문제가 발생합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;(Volley error) 브라우저로 로드해도 발생하지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;소리 지르고 싶어요.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;네, CentOS 8, Openlitespeed, Pph 7.4, MariaDb 10.5&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내가 읽은 시험들 중 일부는...&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/29395452/php-connection-failed-sqlstatehy000-2002-connection-refused&quot; papago-id=&quot;8-1&quot;&gt;PHP 연결 실패: SQLSTATE[&lt;/a&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/29395452/php-connection-failed-sqlstatehy000-2002-connection-refused&quot; papago-id=&quot;8-1&quot;&gt;HY000] [2002] 연결이 거부되었습니다.&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 데이터베이스를 버리고 다시 가져와서 문제를 성공적으로 해결했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;아마도 제가 phpMyadmin을 통해 데이터베이스를 내보내거나 가져오면서 '뭔가'가 발생한 것 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;SSH를 사용하여 다음 작업을 수행했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;mysqldump -u root database &amp;gt; database.sql;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 mysql에 로그인합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;mysql -u root; drop database..; create database...; \q; 
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 덤프를 복원합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;mysqldump -u root database &amp;lt; database.sql;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Voila! 오류가 사라졌습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것이 무엇이든 간에, 그것은 저를 일주일 내내 vps를 다시 설치하고, 서버를 구성하고, 제 코드를 확인하느라 바빴습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/68703559/&lt;a href=&quot;https://stackoverflow.com/questions/68703559/mariadb-with-php-sqlstatehy000-2002-connection-refused&quot; target=&quot;_blank&quot; papago-id=&quot;14-1&quot;&gt;mariadb-with-php-sqlstatehy000-2002-connection-refused&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/565</guid>
      <comments>https://kingscode.tistory.com/565#entry565comment</comments>
      <pubDate>Wed, 9 Aug 2023 22:16:28 +0900</pubDate>
    </item>
    <item>
      <title>안드로이드에서 방향 변경을 비활성화하려면 어떻게 해야 합니까?</title>
      <link>https://kingscode.tistory.com/564</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;안드로이드에서 방향 변경을 비활성화하려면 어떻게 해야 합니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;세로 모드에서 사용하고 싶은 응용 프로그램이 있으므로 매니페스트 XML에서 Android:screenOrientation=&quot;세로&quot;를 정의했습니다. &lt;a href=&quot;https://en.wikipedia.org/wiki/HTC_Magic&quot; rel=&quot;noreferrer&quot; papago-id=&quot;1-1&quot;&gt;이는 HTC&lt;/a&gt; Magic 전화기에서 정상적으로 작동하며 다른 전화기에서도 방향 변경을 방지합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 하드웨어 &lt;a href=&quot;https://en.wikipedia.org/wiki/QWERTY&quot; rel=&quot;noreferrer&quot; papago-id=&quot;2-3&quot;&gt;QWERTY&lt;/a&gt; 키보드(가상 키보드가 아님)를 열 때 &lt;a href=&quot;https://en.wikipedia.org/wiki/HTC_Dream&quot; rel=&quot;noreferrer&quot; papago-id=&quot;2-1&quot;&gt;HTC G1&lt;/a&gt; 전화기에 문제가 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;활동이 세로 모드로 유지되지만 다시 시작되고 모든 상태가 손실되는 것 같습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/HTC_Hero&quot; rel=&quot;noreferrer&quot; papago-id=&quot;2-5&quot;&gt;HTC&lt;/a&gt; Hero 버전에서는 이러한 현상이 발생하지 않습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내 응용 프로그램은 상당히 크기 때문에 키보드를 열었을 때 다시 시작되어 모든 상태가 손실되는 것을 원하지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떻게 하면 막을 수 있을까요?&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;strong papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;2013년 4월 업데이트:&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이러지마세요.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 처음 질문에 답했을 때인 2009년에는 좋은 생각이 아니었고 지금은 정말 좋은 생각이 아닙니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 이유로 hackbod의 답변을 봅니다.&lt;/font&gt;&lt;/strong&gt; &lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://stackoverflow.com/questions/5335665/avoid-reloading-activity-with-asynctask-on-orientation-change-in-android/5336057#5336057&quot; papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Android에서 방향 변경 시 비동기 작업으로 활동 다시 로드 방지&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더하다&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;android:configChanges=&quot;keyboardHidden|orientation&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;AndroidManifest.xml 파일입니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 메시지는 시스템에 사용자가 직접 처리할 구성 변경사항을 알려줍니다(이 경우에는 아무것도 하지 않음).&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;activity android:name=&quot;MainActivity&quot;
     android:screenOrientation=&quot;portrait&quot;
     android:configChanges=&quot;keyboardHidden|orientation&quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;자세한 내용은 개발자 참조 &lt;a href=&quot;http://developer.android.com/reference/android/R.attr.html#configChanges&quot; rel=&quot;noreferrer&quot; papago-id=&quot;8-1&quot;&gt;구성&lt;/a&gt; 변경을 참조하십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 전화 통화 등으로 언제든지 프로그램이 중단될 수 있으므로 프로그램이 일시 중지될 때 프로그램의 상태를 저장하기 위해 코드를 추가해야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;10-0&quot;&gt;업데이트:&lt;/strong&gt; Android 3.2부터는 &quot;screenSize&quot;도 추가해야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;activity
    android:name=&quot;MainActivity&quot;
    android:screenOrientation=&quot;portrait&quot;
    android:configChanges=&quot;keyboardHidden|orientation|screenSize&quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;개발자 &lt;a href=&quot;http://developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange&quot; papago-id=&quot;11-1&quot; rel=&quot;noreferrer&quot;&gt;가이드&lt;/a&gt;에서 직접 &lt;a href=&quot;http://developer.android.com/guide/topics/resources/runtime-changes.html#HandlingTheChange&quot; papago-id=&quot;11-1&quot; rel=&quot;noreferrer&quot;&gt;구성 변경 처리&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt; &lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt; 3&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt; 13&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;방향과 &lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;할 때 &lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt; 크기&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Android 3.2(API 레벨 13)부터는 장치가 세로 방향과 가로 방향으로 전환될 때 &quot;화면 크기&quot;도 변경됩니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 API 레벨 13 이상(minSdkVersion 및 targetSdkVersion 특성에 의해 선언됨)을 개발할 때 방향 변경으로 인한 런타임 재시작을 방지하려면 &quot;방향&quot; 값 외에 &quot;screenSize&quot; 값을 포함해야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 즉, 다을선야합니를 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;android:configChanges=&quot;orientation|screenSize&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 응용 프로그램이 API 수준 12 이하를 대상으로 하는 경우 활동은 항상 이 구성 변경 자체를 처리합니다(이 구성 변경은 Android 3.2 이상의 장치에서 실행되는 경우에도 활동을 다시 시작하지 않습니다).&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt;&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Complexations(이전의 Ashton)에서 언급한 대로 AndroidManifest.xml을 수정하고 작업이 원하는 대로 onConfigurationChanged 이벤트를 처리하는지 확인해야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같이 표시해야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;난 항상 당신이 둘 다 필요하다는 걸 알았어요.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;android:screenOrientation=&quot;nosensor&quot; android:configChanges=&quot;keyboardHidden|orientation&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;말씀하신 대로 세트&lt;/font&gt;&lt;/font&gt;&lt;code&gt;android:configChanges&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(매니페스트 파일에 있는) 당신의 활동에 대한.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;keyboardHidden|orientation&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 경우:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;재정의&lt;/font&gt;&lt;/font&gt;&lt;code&gt;onConfigurationChanged()&lt;/code&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    //here you can handle orientation change
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;활동에 이 줄 추가&lt;/font&gt;&lt;/font&gt;&lt;code&gt;onCreate()&lt;/code&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에 같은 라인을 추가하는 것보다 낫습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;onConfigurationChanged&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;앱이 세로 모드로 전환되었다가 가로로 다시 전환되기 때문입니다(한 번만 발생하지만 귀찮습니다).&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 설정할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;android:screenOrientation=&quot;nosensor&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신의 활동을 위하여.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;12-1&quot;&gt;그러나&lt;/strong&gt; 이러한 방식을 사용하면 방향 변경을 전혀 처리할 수 없습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;    android:screenOrientation=&quot;portrait&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;OnCreate 활동 방법에서 다음 코드를 사용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이제 방향이 세로로 설정되고 변경되지 않습니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;AndroidManifest.xml 파일에서 잠글 각 활동에 대해 마지막 항목을 추가합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;screenOrientation&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;29&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;선:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;android:label=&quot;@string/app_name&quot;
android:name=&quot;.Login&quot;
android:screenOrientation=&quot;portrait&quot; &amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는 Android&lt;strong papago-id=&quot;30-1&quot;&gt;:screen &lt;/strong&gt;Orientation=&quot;&lt;strong papago-id=&quot;30-1&quot;&gt;경관&quot;&lt;/strong&gt;입니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;31-1&quot;&gt;Androidmanifest.xml&lt;/strong&gt; 파일에서 다음을 수행합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;   &amp;lt;activity android:name=&quot;MainActivity&quot; android:configChanges=&quot;keyboardHidden|orientation&quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;코드로 화면을 잠그려면 화면의 실제 회전(0, 90, 180, 270)을 사용하여 화면의 자연스러운 위치를 알아야 합니다. 스마트폰에서는 자연스러운 위치가 세로가 되고 태블릿에서는 풍경이 됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;34&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음은 코드(잠금 및 잠금 해제 방법)입니다. 일부 장치(스마트폰 및 태블릿)에서 테스트를 거쳤으며 작동이 좋습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;public static void lockScreenOrientation(Activity activity)
{   
    WindowManager windowManager =  (WindowManager) activity.getSystemService(Context.WINDOW_SERVICE);   
    Configuration configuration = activity.getResources().getConfiguration();   
    int rotation = windowManager.getDefaultDisplay().getRotation(); 

    // Search for the natural position of the device    
    if(configuration.orientation == Configuration.ORIENTATION_LANDSCAPE &amp;amp;&amp;amp;  
       (rotation == Surface.ROTATION_0 || rotation == Surface.ROTATION_180) ||  
       configuration.orientation == Configuration.ORIENTATION_PORTRAIT &amp;amp;&amp;amp;   
       (rotation == Surface.ROTATION_90 || rotation == Surface.ROTATION_270))   
    {   
        // Natural position is Landscape    
        switch (rotation)   
        {   
            case Surface.ROTATION_0:    
                activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);    
                break;      
            case Surface.ROTATION_90:   
                activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT); 
            break;      
            case Surface.ROTATION_180: 
                activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE); 
                break;          
            case Surface.ROTATION_270: 
                activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
                break;
        }
    }
    else
    {
        // Natural position is Portrait
        switch (rotation) 
        {
            case Surface.ROTATION_0: 
                activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
            break;   
            case Surface.ROTATION_90: 
                activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
            break;   
            case Surface.ROTATION_180: 
                activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT); 
                break;          
            case Surface.ROTATION_270: 
                activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE); 
                break;
        }
    }
}

public static void unlockScreenOrientation(Activity activity)
{
    activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;35&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더하다&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;android:configChanges=&quot;keyboardHidden|orientation|screenSize&quot; 
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신의 매니페스토까지.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Visual Studio Xamarin에서:&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;추가:&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;code&gt;using Android.Content.PM;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;39&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;작업 네임스페이스 목록에 추가합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;ol start=&quot;2&quot;&gt; 
 &lt;li papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;추가:&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;code&gt;[Activity(ScreenOrientation = Android.Content.PM.ScreenOrientation.Portrait)]&lt;/code&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;클래스의 속성으로 다음과 같이 표시됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;[Activity(ScreenOrientation = ScreenOrientation.Portrait)]
public class MainActivity : Activity
{...}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;앱의 모든 활동에 대해 PRIOTRACT 모드만 사용하려면 응용 프로그램 클래스에서 아래와 같이 간단히 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;class YourApplicationName : Application() {

override fun onCreate() {
    super.onCreate()

    registerActivityLifecycleCallbacks(object : ActivityLifecycleCallbacks {

        override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {
            activity.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
        }

        override fun onActivityStarted(activity: Activity) {

        }

        override fun onActivityResumed(activity: Activity) {

        }

        override fun onActivityPaused(activity: Activity) {

        }

        override fun onActivityStopped(activity: Activity) {

        }

        override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {

        }

        override fun onActivityDestroyed(activity: Activity) {

        }

    })

}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;}&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;44&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;지금은 어떤 방법도 효과가 없는 것 같습니다!&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Android_Studio&quot; papago-id=&quot;16-1&quot; rel=&quot;nofollow&quot;&gt;Android&lt;/a&gt; Studio &lt;a href=&quot;https://en.wikipedia.org/wiki/Android_Studio&quot; papago-id=&quot;16-1&quot; rel=&quot;nofollow&quot;&gt;1&lt;/a&gt;에서 한 가지 간단한 방법은 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;android:screenOrientation=&quot;nosensor&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;46&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;47&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이렇게 하면 화면 방향이 효과적으로 잠깁니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;48&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이전 솔루션:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@SuppressLint(&quot;SourceLockedOrientationActivity&quot;)
fun Activity?.lockScreenOrientation() {
    this ?: return

    val display: Display = if (Build.VERSION.SDK_INT &amp;gt;= Build.VERSION_CODES.R) {
        display
    } else {
        @Suppress(&quot;DEPRECATION&quot;)
        windowManager.defaultDisplay
    } ?: return

    val width: Int = if (Build.VERSION.SDK_INT &amp;gt;= Build.VERSION_CODES.R) {
        window.windowManager.currentWindowMetrics.bounds.width()
    } else {
        @Suppress(&quot;DEPRECATION&quot;)
        display.width
    }
    val height: Int = if (Build.VERSION.SDK_INT &amp;gt;= Build.VERSION_CODES.R) {
        window.windowManager.currentWindowMetrics.bounds.height()
    } else {
        @Suppress(&quot;DEPRECATION&quot;)
        display.height
    }

    when (display.rotation) {
        // 0
        Surface.ROTATION_0 -&amp;gt; {
            requestedOrientation = if (height &amp;gt; width) {
                ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
            } else {
                ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
            }
        }
        // 1
        Surface.ROTATION_90 -&amp;gt; {
            requestedOrientation = if (width &amp;gt; height) {
                ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
            } else {
                ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT
            }
        }
        // 2
        Surface.ROTATION_180 -&amp;gt; {
            requestedOrientation = if (height &amp;gt; width) {
                ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT
            } else {
                ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
            }
        }
        // 3
        Surface.ROTATION_270 -&amp;gt; {
            requestedOrientation = if (width &amp;gt; height) {
                ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE
            } else {
                ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
            }
        }
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;49&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;새로운 솔루션:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;fun Activity?.lockScreenOrientation() {
    this ?: return
    requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LOCKED
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;50&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;솔루션 잠금 해제:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;fun Activity?.unlockScreenOrientation() {
    this ?: return
    requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;51&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/1512045/&lt;a href=&quot;https://stackoverflow.com/questions/1512045/how-do-i-disable-orientation-change-on-android&quot; target=&quot;_blank&quot; papago-id=&quot;51-1&quot;&gt;how-do-i-disable-orientation-change-on-android&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/564</guid>
      <comments>https://kingscode.tistory.com/564#entry564comment</comments>
      <pubDate>Wed, 9 Aug 2023 22:15:04 +0900</pubDate>
    </item>
    <item>
      <title>numpy.numelta64 값에서 일 수 추출</title>
      <link>https://kingscode.tistory.com/563</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;numpy.numelta64 값에서 일 수 추출&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 팬더/피톤을 사용하고 있으며 날짜/시간을 포함하는 df 필드에서 'to_datetime' 함수를 사용하여 생성된 두 개의 날짜 시계열 s1과 s2를 가지고 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;s2에서 s1을 뺄 때&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;s3 = s2 - s1&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;전 s3 타입의 시리즈를 받았습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;time delta64[ns]&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;pre&gt;&lt;code&gt;0    385 days, 04:10:36
1     57 days, 22:54:00
2    642 days, 21:15:23
3    615 days, 00:55:44
4    160 days, 22:13:35
5    196 days, 23:06:49
6     23 days, 22:57:17
7      2 days, 22:17:31
8    622 days, 01:29:25
9     79 days, 20:15:14
10    23 days, 22:46:51
11   268 days, 19:23:04
12                  NaT
13                  NaT
14   583 days, 03:40:39
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;시리즈의 1가지 요소에 대해 어떻게 생각합니까?&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;s3[10]&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 다음과 같은 것을 얻습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;numpy.nbelta64(2069211000000000, 'ns')&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;s3에서 일을 추출하고 정수로 유지하려면 어떻게 해야 합니까(시간/분 등에는 그다지 관심이 없습니다)?&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;날짜 정밀도로 시간 델타로 변환할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;일의 정수 값을 추출하려면 1일의 시간 델타로 나눕니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; x = np.timedelta64(2069211000000000, 'ns')
&amp;gt;&amp;gt;&amp;gt; days = x.astype('timedelta64[D]')
&amp;gt;&amp;gt;&amp;gt; days / np.timedelta64(1, 'D')
23
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는 @PhillipCloud가 제안한 대로&lt;/font&gt;&lt;/font&gt;&lt;code&gt;days.astype(int)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이래로&lt;/font&gt;&lt;/font&gt;&lt;code&gt;timedelta&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;는 전달한 두 번째 매개 변수에 따라 다양한 방식으로 해석되는 64비트 정수일 뿐입니다(&lt;/font&gt;&lt;/font&gt;&lt;code&gt;'D'&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;'ns'&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, ...).&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 여기에서 더 &lt;a href=&quot;http://docs.scipy.org/doc/numpy-dev/reference/arrays.datetime.html&quot; papago-id=&quot;17-1&quot;&gt;많은&lt;/a&gt; 것을 찾을 수 있습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일 속성을 정수로 가져옵니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;In [14]: s = pd.Series(pd.timedelta_range(start='1 days', end='12 days', freq='3000T'))

In [15]: s
Out[15]: 
0    1 days 00:00:00
1    3 days 02:00:00
2    5 days 04:00:00
3    7 days 06:00:00
4    9 days 08:00:00
5   11 days 10:00:00
dtype: timedelta64[ns]

In [16]: s.dt.days
Out[16]: 
0     1
1     3
2     5
3     7
4     9
5    11
dtype: int64
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일반적으로 - 속성을 사용하여 축소된 형식의&lt;/font&gt;&lt;/font&gt;&lt;code&gt;timedelta&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;In [17]: s.dt.components
Out[17]: 
   days  hours  minutes  seconds  milliseconds  microseconds  nanoseconds
0     1      0        0        0             0             0            0
1     3      2        0        0             0             0            0
2     5      4        0        0             0             0            0
3     7      6        0        0             0             0            0
4     9      8        0        0             0             0            0
5    11     10        0        0             0             0            0
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이제 다음을 확인합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;hours&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;속성:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;In [23]: s.dt.components.hours
Out[23]: 
0     0
1     2
2     4
3     6
4     8
5    10
Name: hours, dtype: int64
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;시간 델타 계열이 있다고 가정합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;import pandas as pd
from datetime import datetime
z = pd.DataFrame({'a':[datetime.strptime('20150101', '%Y%m%d')],'b':[datetime.strptime('20140601', '%Y%m%d')]})

td_series = (z['a'] - z['b'])
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 시간 델타 열 또는 열을 변환하는 한 가지 방법은 시간 델타 개체(pandas 0.15.0+)에 캐스팅한 다음 개체에서 날짜를 추출하는 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;td_series.astype(pd.Timedelta).apply(lambda l: l.days)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또 다른 방법은 시리즈를 일 단위의 시간 델타 64로 캐스팅한 다음 int로 캐스팅하는 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;td_series.astype('timedelta64[D]').astype(int)
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;먼저 다음을 사용하여 판다 날짜 시간 열을 변환합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;## Convert time in pandas date time
df['Start'] = pd.to_datetime(df['Start'], errors='coerce')
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 작업이 완료되면 다음 명령을 사용하여 두 날짜를 뺍니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;df[&quot;Duration_after subtraction&quot;] = (df['End_Time'] - df['Start_Time']   / np.timedelta64(1, 'm')
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;시간으로 변환하려면 'm' 대신 'h'를 사용합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/18215317/&lt;a href=&quot;https://stackoverflow.com/questions/18215317/extracting-days-from-a-numpy-timedelta64-value&quot; target=&quot;_blank&quot; papago-id=&quot;30-1&quot;&gt;extracting-days-from-a-numpy-timedelta64-value&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/563</guid>
      <comments>https://kingscode.tistory.com/563#entry563comment</comments>
      <pubDate>Wed, 9 Aug 2023 22:12:40 +0900</pubDate>
    </item>
    <item>
      <title>Excel에서 Google 스프레드쉬트 쿼리() 재생성</title>
      <link>https://kingscode.tistory.com/562</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Excel에서 Google 스프레드쉬트 쿼리() 재생성&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 제품 제목과 설명을 추적하는 데 사용하는 방대한 Excel 워크북을 가지고 있으며, eBay와 제 웹 사이트로 해당 제품을 가져오는 데 사용할 .csv 파일을 생성하려고 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 99%의 위치에 있지만 Google 스프레드시트의 쿼리() 기능에 해당하는 Excel을 찾을 수 없는 것 같고 사용해야 하는 지점이 두 개 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;첫째, 사이트에 기재되지 않은 SheetA의 제품 ID로 SheetB의 열을 채워야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;Google 스프레드쉬트에서 이 작업을 수행할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;=query('SheetA'A:B,&quot;select A where isblank(B)&quot;)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 엑셀에서 그에 상응하는 것을 아무리 찾아도 알 수가 없습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;두 번째, 4장의 백지가 아닌 모든 행을 한 장으로 정리해야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;분명히 뭔가 빠진 게 있을 텐데 그걸 놓치고 있어요.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;도와주세요, 마법의 인터넷 사용자 여러분, 당신이 제 유일한 희망입니다!&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;나쁜 소식은 엑셀이 동등한 것을 가지고 있지 않다는 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;QUERY()&lt;/code&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리 나쁜 소식은 당신이 스스로 굴릴 수 있다는 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가능한 몇 가지 방법:&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;데이터를 데이터베이스로 이동합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;데이터베이스에서 전체 작업을 수행하거나 Excel을 프런트 엔드로 사용할 수 있습니다(예: 사용).&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Get External Data&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;db를 쿼리하거나 모두 VBA로 빌드)&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용하다&lt;/font&gt;&lt;/font&gt;&lt;code&gt;AutoFilter&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;s는 데이터를 쿼리합니다(SQL 쿼리가 아닙니다...).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 기술의 SO에 대한 많은 예가 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용하다&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Get External Data&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(이름에 관계없이 자체 참조일 수 있음) 데이터를 쿼리합니다(&lt;em papago-id=&quot;8-1&quot;&gt;SQL&lt;/em&gt; 쿼리임). 시작하기 &lt;a href=&quot;https://stackoverflow.com/a/8766541/445425&quot; papago-id=&quot;8-3&quot;&gt;전&lt;/a&gt;에 이 답변을 &lt;a href=&quot;https://stackoverflow.com/a/8766541/445425&quot; papago-id=&quot;8-3&quot;&gt;참조&lt;/a&gt;하십시오.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt;&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Excel의 타사 쿼리() 기능에 대한 이 &lt;a href=&quot;https://www.youtube.com/watch?v=DHXoBk54Xqw&quot; rel=&quot;noreferrer&quot; papago-id=&quot;15-1&quot;&gt;짧은 비디오&lt;/a&gt;를 보십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기 5s &quot;hello world&quot; gif도 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/srNr6.gif&quot; rel=&quot;noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/srNr6.gif&quot; alt=&quot;Query function &amp;quot;hello world&amp;quot; example&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;설치하려면 4MB의 무료 설치 프로그램인 &lt;a href=&quot;https://www.querystorm.com/downloads/&quot; rel=&quot;noreferrer&quot; papago-id=&quot;17-1&quot;&gt;QueryStorm&lt;/a&gt; 런타임이 필요합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;마치 엑셀의 패키지 매니저 같습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;설치한 후 리본의 QueryStorm 탭으로 이동하여 Extensions를 클릭하고 &quot;Windy&quot;를 설치합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;쿼리&quot; 패키지(비디오에 표시됨).&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;[Disclaimer] 제3자(QueryStorm 작성자)입니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;INSERT&amp;gt;를 사용하여 동일한 작업이 필요했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;Excel의 TABLE은 트릭을 수행합니다. 테이블에서 피벗 테이블을 만들고 열 및/또는 행을 추가할 때 피벗 테이블을 만듭니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 게시물이 8년 된 것은 알지만, 다른 누군가가 해결책을 찾고 있다면, 당신은 C2 셀에서 다음 공식을 시도할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;=INDEX('SheetA'$A$2:$A$10, SMALL(IF($D$2=&quot;&quot;, ROW($A$2:$A$10)-ROW($A$2)+1), ROW(1:1)))
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러면 시트 AA 열에서 빈 셀이 검색되고 C2 셀에 하나의 값이 표시됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;B 열에서 값을 추출하려면 동일한 공식을 반복하되 '시트 A'는 대체합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;$A$2:$A$10('시트 A' 포함)&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;$B$2:$B$10.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;22-0&quot;&gt;단점:&lt;/strong&gt; 1. 이 공식을 오른쪽으로 복사하고 공식의 첫 번째 비트를 수동으로 교체해야 합니다. 2. 시트 A에 있는 값만큼의 행으로 공식을 복사하여 값이 누락되지 않도록 해야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;마지막으로&lt;strong papago-id=&quot;23-0&quot;&gt;:&lt;/strong&gt; 수식을 입력한 후 CTRL SHIFT-ENTER를 눌러 배열 수식으로 &lt;strong papago-id=&quot;23-0&quot;&gt;변환&lt;/strong&gt;합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/16256388/&lt;a href=&quot;https://stackoverflow.com/questions/16256388/recreating-a-google-spreadsheets-query-in-excel&quot; target=&quot;_blank&quot; papago-id=&quot;24-1&quot;&gt;recreating-a-google-spreadsheets-query-in-excel&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/562</guid>
      <comments>https://kingscode.tistory.com/562#entry562comment</comments>
      <pubDate>Wed, 9 Aug 2023 22:11:46 +0900</pubDate>
    </item>
    <item>
      <title>대체를 사용할 때 자바스크립트가 첫 번째 인스턴스만 대체하는 이유는 무엇입니까?</title>
      <link>https://kingscode.tistory.com/561</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대체를 사용할 때 자바스크립트가 첫 번째 인스턴스만 대체하는 이유는 무엇입니까?&lt;/font&gt;&lt;/h2&gt;
&lt;div&gt; 
 &lt;aside class=&quot;s-notice s-notice__info post-notice js-post-notice mb16&quot; role=&quot;status&quot;&gt; 
  &lt;div class=&quot;d-flex fd-column fw-nowrap&quot;&gt; 
   &lt;div class=&quot;d-flex fw-nowrap&quot;&gt; 
    &lt;div class=&quot;flex--item wmn0 fl1 lh-lg&quot;&gt; 
     &lt;div class=&quot;flex--item fl1 lh-lg&quot;&gt; 
      &lt;div papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;
&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;b papago-id=&quot;1-1&quot;&gt;이 질문에는 이미 다음&lt;/b&gt;과 같은 답이 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;      &lt;/font&gt;&lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;flex--item mb0 mt4&quot;&gt; 
    &lt;a href=&quot;/questions/1144783/how-do-i-replace-all-occurrences-of-a-string-in-javascript&quot; dir=&quot;ltr&quot; papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;자바스크립트에서 발생하는 문자열을 모두 바꾸려면 어떻게 해야 합니까?&lt;/font&gt;&lt;/a&gt; 
    &lt;span class=&quot;question-originals-answer-count&quot; papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(78개 답변)&lt;/font&gt;&lt;/span&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;flex--item mb0 mt8&quot; papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;
&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;마감됨&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;span class=&quot;relativetime&quot; papago-id=&quot;4-1&quot; title=&quot;2019-12-23 11:19:17Z&quot; papago-attr-id=&quot;1&quot;&gt;3년 전&lt;/span&gt;에.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;   &lt;/font&gt;&lt;/div&gt; 
  &lt;/div&gt; 
 &lt;/aside&gt; 
&lt;/div&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;나는 이것을 가지고 있다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt; var date = $('#Date').val();
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 텍스트 상자에서 이렇게 보이는 값을 가져옵니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;12/31/2009&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이제 내가 이걸 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;var id = 'c_' + date.replace(&quot;/&quot;, '');
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 그 결과는&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;c_1231/2009&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;마지막 '/'가 그립습니다. 왜 그런지는 모르겠지만요.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/RegExp#Parameters&quot; rel=&quot;noreferrer&quot; papago-id=&quot;12-1&quot;&gt;글로벌하게&lt;/a&gt; 바꿀 g 플래그를 설정해야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;date.replace(new RegExp(&quot;/&quot;, &quot;g&quot;), '')
// or
date.replace(/\//g, '')
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇지 않으면 첫 번째 항목만 바뀝니다.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;C#/과는 다릅니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;NET 클래스 라이브러리(그리고 대부분의 다른 합리적인 언어), 당신이 합격할 때.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;String&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의 string-to-match 인수로서&lt;/font&gt;&lt;/font&gt;&lt;code&gt;string.replace&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;메소드, 그것은 문자열 교체를 하지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;문자열을 다음으로 변환합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;RegExp&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;정규식 대체를 수행합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;검보가 설명하듯이, 정규식 대체는 다음을 필요로 합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;g&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기본적으로 설정되어 있지 않은 글로벌 플래그로, 한 번에 모든 일치 항목을 바꿉니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어 match-string이 동적이고 regexen에 특별한 의미가 있는 문자를 포함할 수 있기 때문에 실제 문자열 기반 바꾸기를 원하는 경우 자바스크립트 관용구는 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;var id= 'c_'+date.split('/').join('');
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용할 수 있는 항목:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;String.prototype.replaceAll = function(search, replace) {
if (replace === undefined) {
    return this.toString();
}
return this.split(search).join(replace);
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/1967119/&lt;a href=&quot;https://stackoverflow.com/questions/1967119/why-does-javascript-replace-only-first-instance-when-using-replace&quot; target=&quot;_blank&quot; papago-id=&quot;21-1&quot;&gt;why-does-javascript-replace-only-first-instance-when-using-replace&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/561</guid>
      <comments>https://kingscode.tistory.com/561#entry561comment</comments>
      <pubDate>Wed, 9 Aug 2023 22:11:07 +0900</pubDate>
    </item>
    <item>
      <title>점 표시기가 있는 Android View 호출기를 만드는 방법은 무엇입니까?</title>
      <link>https://kingscode.tistory.com/560</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;점 표시기가 있는 Android View 호출기를 만드는 방법은 무엇입니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아마 여러분 중 많은 분들이 (저로서) 생성에 문제가 있을 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ViewPager&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 하단 점이 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떻게 그런 안드로이드 뷰 페이지를 만들 수 있습니까?&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;필요한 것은 &lt;a href=&quot;https://developer.android.com/reference/androidx/viewpager/widget/ViewPager?hl=en&quot; rel=&quot;noreferrer&quot; papago-id=&quot;4-1&quot;&gt;ViewPager&lt;/a&gt;, &lt;a href=&quot;https://developer.android.com/reference/com/google/android/material/tabs/TabLayout?hl=en&quot; rel=&quot;noreferrer&quot; papago-id=&quot;4-3&quot;&gt;TabLayout&lt;/a&gt; 및 선택한 점과 기본 점에 대한 2개의 그리기 가능한 것입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;먼저, 우리는 추가해야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;TabLayout&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;화면 레이아웃에 연결합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ViewPager&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;두 가지 방법으로 이를 수행할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;h2&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;중첩됨&lt;/font&gt;&lt;/font&gt;&lt;code&gt;TabLayout&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ViewPager&lt;/code&gt;&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;androidx.viewpager.widget.ViewPager
    android:id=&quot;@+id/photos_viewpager&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;&amp;gt;

    &amp;lt;com.google.android.material.tabs.TabLayout
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;/&amp;gt;
&amp;lt;/androidx.viewpager.widget.ViewPager&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 경우&lt;/font&gt;&lt;/font&gt;&lt;code&gt;TabLayout&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에 자동으로 연결됩니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ViewPager&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;,그렇지만&lt;/font&gt;&lt;/font&gt;&lt;code&gt;TabLayout&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음이 될 것입니다&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ViewPager&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그 이상은 아닙니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;hr&gt; 
&lt;h2&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;분리된&lt;/font&gt;&lt;/font&gt;&lt;code&gt;TabLayout&lt;/code&gt;&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;androidx.viewpager.widget.ViewPager
    android:id=&quot;@+id/photos_viewpager&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;/&amp;gt;

&amp;lt;com.google.android.material.tabs.TabLayout
    android:id=&quot;@+id/tab_layout&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;wrap_content&quot;/&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 경우, 우리는 다음과 같이 할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;TabLayout&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어디든, 하지만 우리는 연결해야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;TabLayout&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;와 함께&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ViewPager&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;계획적으로&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;pre&gt;&lt;code&gt;ViewPager pager = (ViewPager) view.findViewById(R.id.photos_viewpager);
PagerAdapter adapter = new PhotosAdapter(getChildFragmentManager(), photosUrl);
pager.setAdapter(adapter);

TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tab_layout);
tabLayout.setupWithViewPager(pager, true);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일단 레이아웃을 만든 후에는 점을 준비해야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;세 개의 파일을 만듭니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;selected_dot.xml&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;default_dot.xml&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;tab_selector.xml&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;h2 papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;selected_dot.xml&lt;/font&gt;&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;layer-list xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
    &amp;lt;item&amp;gt;
        &amp;lt;shape
            android:innerRadius=&quot;0dp&quot;
            android:shape=&quot;ring&quot;
            android:thickness=&quot;8dp&quot;
            android:useLevel=&quot;false&quot;&amp;gt;
            &amp;lt;solid android:color=&quot;@color/colorAccent&quot;/&amp;gt;
        &amp;lt;/shape&amp;gt;    
    &amp;lt;/item&amp;gt;
&amp;lt;/layer-list&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr&gt; 
&lt;h2 papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;default_dot.xml&lt;/font&gt;&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;layer-list xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
    &amp;lt;item&amp;gt;
        &amp;lt;shape
            android:innerRadius=&quot;0dp&quot;
            android:shape=&quot;ring&quot;
            android:thickness=&quot;8dp&quot;
            android:useLevel=&quot;false&quot;&amp;gt;
            &amp;lt;solid android:color=&quot;@android:color/darker_gray&quot;/&amp;gt;
        &amp;lt;/shape&amp;gt;    
    &amp;lt;/item&amp;gt;
&amp;lt;/layer-list&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr&gt; 
&lt;h2 papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;tab_tab.xml&lt;/font&gt;&lt;/h2&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;

    &amp;lt;item android:drawable=&quot;@drawable/selected_dot&quot;
          android:state_selected=&quot;true&quot;/&amp;gt;

    &amp;lt;item android:drawable=&quot;@drawable/default_dot&quot;/&amp;gt;
&amp;lt;/selector&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;27&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이제 코드 3줄만 추가하면 됩니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;TabLayout&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;XML 레이아웃에 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;app:tabBackground=&quot;@drawable/tab_selector&quot;
app:tabGravity=&quot;center&quot;
app:tabIndicatorHeight=&quot;0dp&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;먼저 View 호출기 위에 표시되는 점에 대한 하나의 선형 레이아웃을 제공하는 레이아웃을 만듭니다.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;RelativeLayout
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;wrap_content&quot;&amp;gt;

    &amp;lt;android.support.v4.view.ViewPager
        android:id=&quot;@+id/view_pager&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;/&amp;gt;


    &amp;lt;LinearLayout
        android:id=&quot;@+id/pager_dots&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_alignParentBottom=&quot;true&quot;
        android:layout_marginBottom=&quot;10dp&quot;
        android:background=&quot;@android:color/transparent&quot;
        android:gravity=&quot;center_horizontal&quot;
        android:orientation=&quot;horizontal&quot;&amp;gt;
    &amp;lt;/LinearLayout&amp;gt;

&amp;lt;/RelativeLayout&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 2개의 그림을 만듭니다.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;선택되지 않은 그리기 가능&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;shape android:shape=&quot;oval&quot; xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
    &amp;lt;solid android:color=&quot;@android:color/transparent&quot;/&amp;gt;
    &amp;lt;size android:width=&quot;12dp&quot; android:height=&quot;12dp&quot;/&amp;gt;

    &amp;lt;stroke android:width=&quot;1dp&quot; android:color=&quot;#ffffff&quot;/&amp;gt;
&amp;lt;/shape&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;선택한 그리기 가능&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;shape android:shape=&quot;oval&quot; xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
    &amp;lt;solid android:color=&quot;@android:color/transparent&quot;/&amp;gt;
    &amp;lt;size android:width=&quot;12dp&quot; android:height=&quot;12dp&quot;/&amp;gt;

    &amp;lt;stroke android:width=&quot;1dp&quot; android:color=&quot;#000000&quot;/&amp;gt;
&amp;lt;/shape&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그 세트 어댑터 이후&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;private LinearLayout llPagerDots;
private ViewPager viewPager;
private ArrayList&amp;lt;String&amp;gt; eventImagesUrl;
private HomeViewPagerAdapter homeViewPagerAdapter;
private ImageView[] ivArrayDotsPager;

public void setUpViewPager() {
    viewPager = (ViewPager) findViewById(R.id.view_pager);
    llPagerDots = (LinearLayout) findViewById(R.id.pager_dots);

    homeViewPagerAdapter = new HomeViewPagerAdapter(mContext, eventImagesUrl);

    viewPager.setAdapter(homeViewPagerAdapter);

    setupPagerIndidcatorDots();

    ivArrayDotsPager[0].setImageResource(R.drawable.page_indicator_selected);

    viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            for (int i = 0; i &amp;lt; ivArrayDotsPager.length; i++) {
                ivArrayDotsPager[i].setImageResource(R.drawable.page_indicator_unselected);
            }
            ivArrayDotsPager[position].setImageResource(R.drawable.page_indicator_selected);
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;34&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;메서드 setupPageIndicatorDots()를 만듭니다.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;private void setupPagerIndidcatorDots() {
    ivArrayDotsPager = new ImageView[eventImagesUrl.size()];
    for (int i = 0; i &amp;lt; ivArrayDotsPager.length; i++) {
        ivArrayDotsPager[i] = new ImageView(getActivity());
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        params.setMargins(5, 0, 5, 0);
        ivArrayDotsPager[i].setLayoutParams(params);
        ivArrayDotsPager[i].setImageResource(R.drawable.page_indicator_unselected);
        //ivArrayDotsPager[i].setAlpha(0.4f);
        ivArrayDotsPager[i].setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                view.setAlpha(1);
            }
        });
        llPagerDots.addView(ivArrayDotsPager[i]);
        llPagerDots.bringToFront();
    }
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;35&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 당신의 요청을 처리하기 위해 제 도서관을 체크아웃할 수 있습니다: https://github.com/tommybuonomo/&lt;a href=&quot;https://github.com/tommybuonomo/dotsindicator&quot; rel=&quot;noreferrer&quot; papago-id=&quot;35-1&quot;&gt;dotsindicator&lt;/a&gt; .&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;XML 레이아웃에서&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;  &amp;lt;com.tbuonomo.viewpagerdotsindicator.DotsIndicator
      android:id=&quot;@+id/dots_indicator&quot;
      android:layout_width=&quot;wrap_content&quot;
      android:layout_height=&quot;wrap_content&quot;
      android:layout_centerHorizontal=&quot;true&quot;
      app:dotsColor=&quot;@color/colorPrimary&quot;
      app:dotsSize=&quot;16dp&quot;
      app:dotsWidthFactor=&quot;3&quot;
      /&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Java 코드에서&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;dotsIndicator = (DotsIndicator) findViewById(R.id.dots_indicator);
viewPager = (ViewPager) findViewById(R.id.view_pager);
adapter = new ViewPagerAdapter();
viewPager.setAdapter(adapter);
dotsIndicator.setViewPager(viewPager);
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;최신 &lt;strong papago-id=&quot;38-1&quot;&gt;ViewPager2&lt;/strong&gt; &lt;strong papago-id=&quot;38-3&quot;&gt;및&lt;/strong&gt; Kotlin에서 이와 유사한 것을 원할 때&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;설명할 필요 없이 모든 것이 자명합니다!&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/O4N1y.png&quot; rel=&quot;noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/O4N1y.png&quot; alt=&quot;enter image description here&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용자의 활동&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;val imageList = listOf(
        ImageModel(R.drawable.offer1),
        ImageModel(R.drawable.splash),
        ImageModel(R.drawable.offer1),
        ImageModel(R.drawable.splash2)
    )

    val adapter = HomeOffersAdapter()
    adapter.setItem(imageList)
    photos_viewpager.adapter = adapter

    TabLayoutMediator(tab_layout, photos_viewpager) { tab, position -&amp;gt;
    }.attach()
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;레이아웃&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;RelativeLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
xmlns:app=&quot;http://schemas.android.com/apk/res-auto&quot;
android:layout_width=&quot;match_parent&quot;
android:layout_height=&quot;@dimen/dp_200&quot;&amp;gt;

&amp;lt;androidx.viewpager2.widget.ViewPager2
    android:id=&quot;@+id/photos_viewpager&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;@dimen/dp_200&quot; /&amp;gt;

&amp;lt;com.google.android.material.tabs.TabLayout
    android:id=&quot;@+id/tab_layout&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;wrap_content&quot;
    android:layout_alignParentBottom=&quot;true&quot;
    android:layout_gravity=&quot;bottom|center&quot;
    app:tabBackground=&quot;@drawable/tab_selector&quot;
    app:tabGravity=&quot;center&quot;
    app:tabIndicatorHeight=&quot;0dp&quot;
    app:tabSelectedTextColor=&quot;@android:color/transparent&quot;
    app:tabTextColor=&quot;@android:color/transparent&quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리기 가능: tab_selector.xml&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
&amp;lt;item android:drawable=&quot;@drawable/dot_selected&quot; android:state_selected=&quot;true&quot; /&amp;gt;
&amp;lt;item android:drawable=&quot;@drawable/dot_default&quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리기 가능: dot_selected.xml&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;shape xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
android:innerRadius=&quot;0dp&quot;
android:shape=&quot;ring&quot;
android:thickness=&quot;@dimen/dp_8&quot;
android:useLevel=&quot;false&quot;&amp;gt;

&amp;lt;solid android:color=&quot;@color/colorPrimary&quot; /&amp;gt;

&amp;lt;stroke
    android:width=&quot;@dimen/dp_1&quot;
    android:color=&quot;@android:color/white&quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;44&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리기 가능: dot_default.xml&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;shape xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
android:innerRadius=&quot;0dp&quot;
android:shape=&quot;ring&quot;
android:thickness=&quot;@dimen/dp_8&quot;
android:useLevel=&quot;false&quot;&amp;gt;

&amp;lt;solid android:color=&quot;@android:color/transparent&quot; /&amp;gt;

&amp;lt;stroke
    android:width=&quot;@dimen/dp_1&quot;
    android:color=&quot;@android:color/white&quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;45&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어댑터&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;class HomeOffersAdapter : RecyclerView.Adapter&amp;lt;HomeOffersAdapter.HomeOffersViewHolder&amp;gt;() {

private var list: List&amp;lt;ImageModel&amp;gt; = listOf()


override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): HomeOffersViewHolder {
    return HomeOffersViewHolder(parent)
}


override fun onBindViewHolder(holder: HomeOffersViewHolder, position: Int) {
    holder.bind(list[position])
}

fun setItem(list: List&amp;lt;ImageModel&amp;gt;) {
    this.list = list
    notifyDataSetChanged()
}

override fun getItemCount(): Int = list.size

class HomeOffersViewHolder constructor(itemView: View) : RecyclerView.ViewHolder(itemView) {

    constructor(parent: ViewGroup) : this(
        LayoutInflater.from(parent.context).inflate(
            R.layout.pager_item,
            parent, false
        )
    )

    fun bind(imageModel: ImageModel) {
        itemView.offerImage.setImageResource(imageModel.image)
    }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;46&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;}&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;47&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;레이아웃: pager_item.xml&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
xmlns:tools=&quot;http://schemas.android.com/tools&quot;
android:layout_width=&quot;match_parent&quot;
android:layout_height=&quot;match_parent&quot;
android:fitsSystemWindows=&quot;true&quot;
android:orientation=&quot;vertical&quot;&amp;gt;

&amp;lt;androidx.appcompat.widget.AppCompatImageView
    android:id=&quot;@+id/offerImage&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;@dimen/dp_200&quot;
    android:adjustViewBounds=&quot;true&quot;
    android:scaleType=&quot;fitXY&quot;
    tools:src=&quot;@drawable/offer1&quot; /&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;/p&gt;&lt;h2 papago-id=&quot;48&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;2021, 실제로 하는 방법.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;View Pager 2만.&lt;/font&gt;&lt;/h2&gt; 
&lt;p papago-id=&quot;49&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 몇 가지 문제가 있는 이 훌륭한 짧은 기사를 참조하십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://medium.com/@adrian.kuta93/android-viewpager-with-dots-indicator-a34c91e59e3a&quot; rel=&quot;noreferrer&quot; papago-id=&quot;50&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://medium.com/ @http.kuta93/cisco-view pager-with-continue-with-continue-a34c91e59e3a&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;51&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;2021년 현재 일반 Android Studio 기본 프로젝트로 시작하여, 상당히 새로운 최소(현재 24개)로...&lt;/font&gt;&lt;/p&gt; 
&lt;h2 papago-id=&quot;52&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일반 개념:&lt;/font&gt;&lt;/h2&gt; 
&lt;p papago-id=&quot;53&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;표준 탭 레이아웃을 만들되, 각 &quot;탭 단위&quot;를 일반 텍스트가 아닌 &quot;약간의 점&quot;으로 바꿉니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;54&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;TabLayout에서 &quot;탭 배경&quot;을 사용하여 각 &quot;탭 단위&quot;를 바꿀 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;        app:tabBackground=&quot;@drawable/tab_selector&quot;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;55&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ViewPager2가 있는 화면의 XML에 다음을 추가합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;    &amp;lt;com.google.android.material.tabs.TabLayout
        android:id=&quot;@+id/tab_layout&quot;
        android:layout_width=&quot;wrap_content&quot;
        android:layout_height=&quot;wrap_content&quot;
        android:layout_gravity=&quot;bottom|center&quot;
        android:background=&quot;#00FFFFFF&quot;
        app:tabBackground=&quot;@drawable/tab_selector&quot;
        app:tabIndicatorGravity=&quot;center&quot;
        app:tabIndicatorHeight=&quot;0dp&quot;/&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;56&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;탭 레이아웃의 &lt;em papago-id=&quot;56-1&quot;&gt;모든&lt;/em&gt; &quot;탭 단위&quot;를 자체 &lt;strong papago-id=&quot;56-3&quot;&gt;&quot;tab_selector&quot;&lt;/strong&gt;로 &lt;em papago-id=&quot;56-1&quot;&gt;교체&lt;/em&gt;합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;57&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;완전히 명확하게 말하자면, &quot;탭 배경&quot;은 전체 탭 바 시스템이 &lt;strong papago-id=&quot;57-3&quot;&gt;아니라&lt;/strong&gt; &lt;strong papago-id=&quot;57-1&quot;&gt;개별적&lt;/strong&gt;인 작은 &quot;탭 단위&quot;를 &lt;strong papago-id=&quot;57-1&quot;&gt;의미&lt;/strong&gt;합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;58&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(또한 두 가지 트릭은 인디케이터 중력 및 탭 인디케이터 탭에 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;높이는 일반적인 &quot;탭 단위&quot;인 &quot;박스&quot;를 실제로 제거할 것입니다.)&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;59&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 다음 &lt;strong papago-id=&quot;59-1&quot;&gt;tab_selector&lt;/strong&gt;와 두 개의 서로 다른 점을 사용하여 세 개의 그리기 가능한 그림을 클릭합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 페이지의 위 기사 또는 100개의 예제를 참조하십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;h2 papago-id=&quot;60&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;마법 코드:&lt;/font&gt;&lt;/h2&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의 신의에서.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;onCreate&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예상 코드가 있습니다...&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;viewPager = findViewById(R.id.simple_slide_pager);
tab_layout = findViewById(R.id.tab_layout);
viewPager.setAdapter(new ScreenSlidePagerAdapter(this));
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;63&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 마침내 여기에 작동하는 마법 코드 조각이 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;위의 내용을 따릅니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;64&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;2021년 최신 정보:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;TabLayoutMediator tabLayoutMediator =
  new TabLayoutMediator(tab_layout, viewPager, true,
    new TabLayoutMediator.TabConfigurationStrategy() {
      @Override public void onConfigureTab(
        @NonNull TabLayout.Tab tab, int position) { }
    }
);
tabLayoutMediator.attach();
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;65&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;끝났어요.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(내部)&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;onConfigureTab&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;음향 효과나 필요한 것은 무엇이든 할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;더 짧은 구문에 대해서는 위의 @F1iX의 키 주석을 참조하십시오.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;androidx.appcompat.widget.LinearLayoutCompat xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    xmlns:app=&quot;http://schemas.android.com/apk/res-auto&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;match_parent&quot;
    android:orientation=&quot;vertical&quot;&amp;gt;

    &amp;lt;androidx.viewpager.widget.ViewPager
        android:id=&quot;@+id/vpImage&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;@dimen/_150sdp&quot; /&amp;gt;

    &amp;lt;com.google.android.material.tabs.TabLayout
        android:id=&quot;@+id/tlImage&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;wrap_content&quot;
        app:tabBackground=&quot;@drawable/selector_product_image&quot;
        app:tabGravity=&quot;center&quot;
        app:tabIndicatorHeight=&quot;0dp&quot;
        app:tabMaxWidth=&quot;12dp&quot;
        app:tabRippleColor=&quot;@null&quot; /&amp;gt;

&amp;lt;/androidx.appcompat.widget.LinearLayoutCompat&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr&gt; 
&lt;pre&gt;&lt;code&gt;ImageAdapter imageAdapter = new ImageAdapter(getActivity(), arrayListSlider);
binding.vpImage.setOffscreenPageLimit(1);
binding.vpImage.setAdapter(imageAdapter);
binding.tlImage.setupWithViewPager(binding.vpImage);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;68&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;selector_product_image.xml&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;selector xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;

    &amp;lt;item android:drawable=&quot;@drawable/image_selected&quot; android:state_selected=&quot;true&quot; /&amp;gt;
    &amp;lt;item android:drawable=&quot;@drawable/image_unselected&quot; /&amp;gt;

&amp;lt;/selector&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;69&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;image_selected.xml&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;layer-list xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
    &amp;lt;item&amp;gt;
        &amp;lt;shape
            android:innerRadius=&quot;0dp&quot;
            android:shape=&quot;ring&quot;
            android:thickness=&quot;4dp&quot;
            android:useLevel=&quot;false&quot;&amp;gt;
            &amp;lt;solid android:color=&quot;@color/colorAccent&quot; /&amp;gt;
        &amp;lt;/shape&amp;gt;
    &amp;lt;/item&amp;gt;
&amp;lt;/layer-list&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;70&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;image_unselected.xml&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;layer-list xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
    &amp;lt;item&amp;gt;
        &amp;lt;shape
            android:innerRadius=&quot;0dp&quot;
            android:shape=&quot;ring&quot;
            android:thickness=&quot;4dp&quot;
            android:useLevel=&quot;false&quot;&amp;gt;
            &amp;lt;solid android:color=&quot;@color/colorPrimary&quot; /&amp;gt;
        &amp;lt;/shape&amp;gt;
    &amp;lt;/item&amp;gt;
&amp;lt;/layer-list&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;71&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ImageAdapter.java&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;class ImageAdapter extends PagerAdapter {

  private Context context;
  private ArrayList&amp;lt;ImageModel&amp;gt; arrayList;
  private LayoutInflater layoutInflater;

  public ImageAdapter(Context context, ArrayList&amp;lt;ImageModel&amp;gt; arrayList) {
      this.context = context;
      this.arrayList = arrayList;
      this.layoutInflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  }

  @Override
  public int getCount() {
      return arrayList.size();
  }

  @Override
  public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
      return view == ((View) o);
  }

  @Override
  public Object instantiateItem(ViewGroup container, int position) {
      View view = layoutInflater.inflate(R.layout.row_slider_image, container, false);

      AppCompatImageView ivProductImage = view.findViewById(R.id.ivProductImage);

      if (!TextUtils.isEmpty(arrayList.get(position).getImage())) {
          Glide.with(context)
                  .load(arrayList.get(position).getImage())
                  .apply(new RequestOptions().placeholder(R.drawable.no_image).error(R.drawable.no_image))
                  .into(ivProductImage);
      }

      container.addView(view);
      return view;
  }

  @Override
  public void destroyItem(ViewGroup container, int position, Object object) {
      container.removeView((View) object);
  }
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;72&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;row_interval_image.xml&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;androidx.appcompat.widget.LinearLayoutCompat xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
    android:layout_width=&quot;match_parent&quot;
    android:layout_height=&quot;wrap_content&quot;
    android:orientation=&quot;vertical&quot;&amp;gt;

    &amp;lt;androidx.appcompat.widget.AppCompatImageView
        android:id=&quot;@+id/ivProductImage&quot;
        android:layout_width=&quot;match_parent&quot;
        android:layout_height=&quot;match_parent&quot;
        android:adjustViewBounds=&quot;true&quot;
        android:scaleType=&quot;fitXY&quot;
        android:src=&quot;@drawable/no_image&quot; /&amp;gt;

&amp;lt;/androidx.appcompat.widget.LinearLayoutCompat&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;73&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Viewpage2의 경우, @RediOne1에서 제안한 것과 동일한 단계를 수행하고 활동 또는 조각에서 아래 코드를 사용하여 vipage2로 표 레이아웃을 첨부합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt; val tabLayoutMediator  = TabLayoutMediator(binding.tabLayout,binding.offersVp) { _, _ -&amp;gt; }
 tabLayoutMediator.attach()
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;74&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신의 xml&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;  &amp;lt;RelativeLayout
                android:id=&quot;@+id/rl_speed&quot;
                android:layout_width=&quot;match_parent&quot;
                android:layout_height=&quot;wrap_content&quot;
                android:layout_above=&quot;@+id/ll_dashboard_buttons&quot;
                android:layout_below=&quot;@+id/ib_menu&quot;&amp;gt;

                &amp;lt;com.smart.gps.speedometer.app.utils.SmartViewPager
                    android:id=&quot;@+id/view_pager&quot;
                    android:layout_width=&quot;match_parent&quot;
                    android:layout_height=&quot;match_parent&quot; 
                   app:layout_behavior=&quot;@string/appbar_scrolling_view_behavior&quot;&amp;gt;
                   &amp;lt;/com.smart.gps.speedometer.app.utils.SmartViewPager&amp;gt;

                   &amp;lt;android.support.design.widget.TabLayout
                    android:id=&quot;@+id/sliding_tabs&quot;
                    android:layout_alignParentBottom=&quot;true&quot;
                    android:layout_width=&quot;match_parent&quot;
                    android:layout_height=&quot;wrap_content&quot;
                    app:tabBackground=&quot;@drawable/tab_selector&quot;
                    app:tabIndicatorHeight=&quot;0dp&quot;
                    app:tabGravity=&quot;center&quot;
                    /&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;75&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그림을 그리다&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리기 가능한 파일을 마우스 오른쪽 버튼으로 클릭 -&amp;gt; 새로 만들기 -&amp;gt; 그리기 가능한 파일 리소스 이름 해당 파일&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;76&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;tab_tab.xml&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt; &lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;item android:drawable=&quot;@drawable/selected_tab&quot;
    android:state_selected=&quot;true&quot;/&amp;gt;

&amp;lt;item android:drawable=&quot;@drawable/unselected_tab&quot;/&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;77&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이제 두 개의 xml 파일이 더 있습니다. 존경받는 이름으로 두 개의 xml 파일을 더 만드십시오.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;선택 표시기와 선택되지 않은 표시기입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;78&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;selected_tab.xml&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;layer-list xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
    &amp;lt;item&amp;gt;
        &amp;lt;shape
            android:innerRadius=&quot;0dp&quot;
            android:shape=&quot;ring&quot;
            android:thickness=&quot;4dp&quot;
            android:useLevel=&quot;false&quot;&amp;gt;
            &amp;lt;solid android:color=&quot;@color/highspeed&quot;/&amp;gt;
        &amp;lt;/shape&amp;gt;
    &amp;lt;/item&amp;gt;
&amp;lt;/layer-list&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;79&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;선택 취소_tab.xml&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;
&amp;lt;layer-list xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;&amp;gt;
    &amp;lt;item&amp;gt;
        &amp;lt;shape
            android:innerRadius=&quot;0dp&quot;
            android:shape=&quot;ring&quot;
            android:thickness=&quot;2dp&quot;
            android:useLevel=&quot;false&quot;&amp;gt;
            &amp;lt;solid android:color=&quot;@android:color/darker_gray&quot;/&amp;gt;
        &amp;lt;/shape&amp;gt;
    &amp;lt;/item&amp;gt;
&amp;lt;/layer-list&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;80&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ViewFlipper와 viewFlipper_linear_dot_lay(선형 레이아웃)를 동일한 기준선에 배치하고 다음 중 하나를 따릅니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;viewFlipper_linear_dot_lay= (LinearLayout) findViewById(R.id.dots_lay);
setupDotsOnViewPager(images_viewFlipper);
    for (int i = 0; i &amp;lt; images_viewFlipper.size(); i++) {
    //Add Images to ViewFlipper 
    }



private void setupDotsOnViewPager(ArrayList images_viewFlipper) {
                    images_linear = new ImageView[images_viewFlipper.size()];
                    for (int i = 0; i &amp;lt; images_linear.length; i++) {
                        images_linear[i] = new ImageView(this);
                        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
                        params.setMargins(5, 0, 5, 0);
                        params.gravity = Gravity.BOTTOM | Gravity.CENTER;
                        images_linear[i].setLayoutParams(params);
                        images_linear[i].setImageResource(R.drawable.unselected);
                        viewFlipper_linear_dot_lay.addView(images_linear[i]);
                        viewFlipper_linear_dot_lay.bringToFront();
                    }
                }
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;81&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 OnRight &amp;amp; OnLeft는 아래의 코드를 배치합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;for (int i = 0; i &amp;lt; images_linear.length; i++) {
 images_linear[i].setImageResource(R.drawable.unselected);
 }
images_linear[viewFlipper.getDisplayedChild()].setImageResource(R.drawable.selected);
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;82&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;종속성 추가 &amp;gt; Gradle 동기화&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;implementation 'com.tbuonomo.andrui:viewpagerdotsindicator:4.1.2'
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;83&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Java 코드에서&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt; dotsIndicator = (DotsIndicator) findViewById(R.id.dots_indicator3);


myViewPagerAdapter = new MyViewPagerAdapter();
        viewPager.setAdapter(myViewPagerAdapter);
        viewPager.addOnPageChangeListener(viewPagerPageChangeListener);
        dotsIndicator.setViewPager(viewPager);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;84&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;레이아웃에서&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;com.tbuonomo.viewpagerdotsindicator.SpringDotsIndicator
android:id=&quot;@+id/spring_dots_indicator&quot;
android:layout_width=&quot;wrap_content&quot;
android:layout_height=&quot;wrap_content&quot;
app:dampingRatio=&quot;0.5&quot;
app:dotsColor=&quot;@color/material_white&quot;
app:dotsStrokeColor=&quot;@color/material_yellow&quot;
app:dotsCornerRadius=&quot;2dp&quot;
app:dotsSize=&quot;16dp&quot;
app:dotsSpacing=&quot;6dp&quot;
app:dotsStrokeWidth=&quot;2dp&quot;
app:stiffness=&quot;300&quot;
/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;85&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/38459309/&lt;a href=&quot;https://stackoverflow.com/questions/38459309/how-do-you-create-an-android-view-pager-with-a-dots-indicator&quot; target=&quot;_blank&quot; papago-id=&quot;85-1&quot;&gt;how-do-you-create-an-android-view-pager-with-a-dots-indicator&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/560</guid>
      <comments>https://kingscode.tistory.com/560#entry560comment</comments>
      <pubDate>Wed, 9 Aug 2023 22:10:20 +0900</pubDate>
    </item>
    <item>
      <title>도커 파일 복사 보관 하위 디렉터리 구조</title>
      <link>https://kingscode.tistory.com/559</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;도커 파일 복사 보관 하위 디렉터리 구조&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;로컬 호스트에서 도커 이미지 빌드에 여러 파일과 폴더를 복사하려고 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파일은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;folder1/
    file1
    file2
folder2/
    file1
    file2
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 다음과 같이 복사본을 만들려고 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;COPY files/* /files/
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만, 모든 파일은&lt;/font&gt;&lt;/font&gt;&lt;code&gt;folder1/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;folder2/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에 배치됩니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;/files/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;폴더 없이 직접:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;files/
    file1
    file2
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Docker에서 하위 디렉터리 구조를 유지하고 파일을 해당 디렉터리에 복사할 수 있는 방법이 있습니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같이:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;files/
    folder1/
        file1
        file2
    folder2/
        file1
        file2
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음 도커 파일을 사용하여 복사에서 별을 제거합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;FROM ubuntu
COPY files/ /files/
RUN ls -la /files/*
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;구조는 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-sh prettyprint-override&quot;&gt;&lt;code&gt;$ docker build .
Sending build context to Docker daemon 5.632 kB
Sending build context to Docker daemon 
Step 0 : FROM ubuntu
 ---&amp;gt; d0955f21bf24
Step 1 : COPY files/ /files/
 ---&amp;gt; 5cc4ae8708a6
Removing intermediate container c6f7f7ec8ccf
Step 2 : RUN ls -la /files/*
 ---&amp;gt; Running in 08ab9a1e042f
/files/folder1:
total 8
drwxr-xr-x 2 root root 4096 May 13 16:04 .
drwxr-xr-x 4 root root 4096 May 13 16:05 ..
-rw-r--r-- 1 root root    0 May 13 16:04 file1
-rw-r--r-- 1 root root    0 May 13 16:04 file2

/files/folder2:
total 8
drwxr-xr-x 2 root root 4096 May 13 16:04 .
drwxr-xr-x 4 root root 4096 May 13 16:05 ..
-rw-r--r-- 1 root root    0 May 13 16:04 file1
-rw-r--r-- 1 root root    0 May 13 16:04 file2
 ---&amp;gt; 03ff0a5d0e4b
Removing intermediate container 08ab9a1e042f
Successfully built 03ff0a5d0e4b
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는 * 대신 &quot;.&quot;를 사용하면 다음 폴더와 하위 폴더를 포함하여 작업 디렉토리의 모든 파일이 사용됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;FROM ubuntu
COPY . /
RUN ls -la /
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;로컬 디렉토리를 이미지 내의 디렉토리로 &lt;strong papago-id=&quot;12-1&quot;&gt;병합&lt;/strong&gt;하려면 다음 작업을 수행합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이미지에 이미 있는 파일은 삭제되지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;동일한 이름의 파일이 이미 있는 경우 로컬에 있는 파일만 추가하고 이미지의 파일을 덮어씁니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;COPY ./local-path/. /image-path/
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 저를 위해 일할 수 있는 어떤 대답도 얻을 수 없었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;작업 도커 파일이 다음과 같이 보이도록 현재 디렉터리에 점을 추가해야 했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;FROM ubuntu 
WORKDIR /usr/local
COPY files/ ./files/
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 사용&lt;/font&gt;&lt;/font&gt;&lt;code&gt;RUN ls&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;나에게 효과가 없었고 그것을 작동시키는 것이 정말로 관여된 것처럼 보이는 것을 확인하는 것, 도커 파일에 있는 것을 확인하는 훨씬 쉬운 방법은 대화형 셸을 실행하고 그 안에 있는 것을 확인하는 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;docker run -it &amp;lt;tagname&amp;gt; sh&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;동일한 디렉토리 구조로 원본 디렉토리를 완전히 복사하려면 별표(*)를 사용하지 마십시오.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;아래와 같이 도커 파일에 COPY 명령어를 작성합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;COPY . destinatio-directory/ 
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/30215830/&lt;a href=&quot;https://stackoverflow.com/questions/30215830/dockerfile-copy-keep-subdirectory-structure&quot; target=&quot;_blank&quot; papago-id=&quot;18-1&quot;&gt;dockerfile-copy-keep-subdirectory-structure&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/559</guid>
      <comments>https://kingscode.tistory.com/559#entry559comment</comments>
      <pubDate>Wed, 9 Aug 2023 22:08:21 +0900</pubDate>
    </item>
    <item>
      <title>*.ipa 파일을 빌드하는 데 사용된 프로필을 확인하는 방법은 무엇입니까?</title>
      <link>https://kingscode.tistory.com/558</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;*.ipa 파일을 빌드하는 데 사용된 프로필을 확인하는 방법은 무엇입니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기존 *.ipa 파일에서 프로필에 대한 정보를 얻는 방법과 가능합니까?&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;실제로 도움이 될지는 모르겠지만 이에 대한 방향을 제시할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의 확장을 변경합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;*.ipa&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;로 철하다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;*.zip&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 zip 파일을 보관 해제합니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 폴더에는 다음이 포함됩니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;*.app&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파일. 패키지 내용을 마우스 오른쪽 단추로 클릭하여 엽니다.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;안에, 당신은 발견할 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;embedded.mobileprovision&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파일.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;11-0&quot;&gt;편집&lt;/strong&gt; - Xcode 6에는 프로비저닝 프로파일이 표시되지 않으므로 세부 정보를 확인할 수 있도록 답변을 확장합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ol start=&quot;5&quot;&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의 확장을 변경합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;embedded.mobileprovision&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;로.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;embedded.txt&lt;/code&gt; &lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는 원하는 텍스트 편집기로 열기만 하면 &lt;strong papago-id=&quot;9-0&quot;&gt;됩니다&lt;/strong&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내부에는 다음과 같은 프로필의 세부 정보가 포함된 이진 데이터와 해시가 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Entitlements&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;CreationDate&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ExpirationDate&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Name&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;결정적으로 사용자를 생성하는 데 사용된 프로비저닝 프로필로 이끌기에 충분합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;.ipa&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;도움이 되길 바랍니다!&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://nomad-cli.com&quot; papago-id=&quot;22-1&quot;&gt;노마드&lt;/a&gt;를 사용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$ ipa info /path/to/app.ipa

+-----------------------------+----------------------------------------------------------+
| ApplicationIdentifierPrefix | DJ73OPSO53                                               |
| CreationDate                | 2014-03-26T02:53:00+00:00                                |
| Entitlements                | application-identifier: DJ73OPSO53.com.nomad.shenzhen    |
|                             | aps-environment: production                              |
|                             | get-task-allow: false                                    |
|                             | keychain-access-groups: [&quot;DJ73OPSO53.*&quot;]                 |
| CreationDate                | 2017-03-26T02:53:00+00:00                                |
| Name                        | Shenzhen                                                 |
| TeamIdentifier              | S6ZYP4L6TY                                               |
| TimeToLive                  | 172                                                      |
| UUID                        | P7602NR3-4D34-441N-B6C9-R79395PN1OO3                     |
| Version                     | 1                                                        |
+-----------------------------+----------------------------------------------------------+
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 방법으로 프로비저닝 프로파일의 xml 버전을 덤프합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;unzip -p &amp;lt;ipafile&amp;gt;.ipa Payload/&amp;lt;myapp&amp;gt;.app/embedded.mobileprovision | security cms -D
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;교체하다&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;ipafile&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;myapp&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;만약 당신이 그것을 모른다면.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;myapp&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;27&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음을 시도해야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;unzip -l &amp;lt;ipafile&amp;gt;.ipa | grep mobileprovision
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음은 IPA 파일에서 프로필 세부 정보를 가져오는 단계입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;29&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의 확장자 변경&lt;/font&gt;&lt;/font&gt;&lt;code&gt;IPA&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;30&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;로.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ZIP&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러면 .&lt;em papago-id=&quot;22-1&quot;&gt;ipa를 유지할지 use.&lt;/em&gt;zip을 유지할지 &lt;em papago-id=&quot;22-1&quot;&gt;여부를 묻는&lt;/em&gt; 메시지가 표시됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;함께하기&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Use .zip&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;32&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;선택&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/187MK.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/187MK.png&quot; alt=&quot;Screenshot 1&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/h7L68.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/h7L68.png&quot; alt=&quot;Screenshot 1.5&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;ol start=&quot;2&quot;&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;33&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;변환됩니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;IPA&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;34&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;로.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;ZIP&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;35&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파일&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/2qhw2.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/2qhw2.png&quot; alt=&quot;Screenshot 2&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;ol start=&quot;3&quot;&gt; 
 &lt;li papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;36-0&quot;&gt;ZIP&lt;/em&gt; 파일을 두 번 클릭하여 &lt;em papago-id=&quot;36-0&quot;&gt;압축을 풉니다&lt;/em&gt;.&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/o1VfG.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/o1VfG.png&quot; alt=&quot;Screenshot 3&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;ol start=&quot;4&quot;&gt; 
 &lt;li papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Payload,&lt;em papago-id=&quot;37-1&quot;&gt; SwiftSupport 및&lt;/em&gt; Symbolics 내용이 &lt;em papago-id=&quot;37-1&quot;&gt;포함&lt;/em&gt;된 폴더가 생성됩니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/ny64h.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/ny64h.png&quot; alt=&quot;Screenshot 4&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;ol start=&quot;5&quot;&gt; 
 &lt;li papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;페이로드로 &lt;em papago-id=&quot;38-1&quot;&gt;이동&lt;/em&gt; -&amp;gt; 앱&lt;em papago-id=&quot;38-3&quot;&gt; 파일&lt;/em&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/okvCi.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/okvCi.png&quot; alt=&quot;Screenshot 5&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;ol start=&quot;6&quot;&gt; 
 &lt;li papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;마우스 오른쪽 버튼을 클릭하고 앱 파일의 '&lt;em papago-id=&quot;39-1&quot;&gt;패키지&lt;/em&gt; 내용 &lt;em papago-id=&quot;39-1&quot;&gt;표시&lt;/em&gt;'&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/EYPLS.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/EYPLS.png&quot; alt=&quot;Screenshot 6&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;ol start=&quot;7&quot;&gt; 
 &lt;li papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러면 앱 파일의 &lt;em papago-id=&quot;40-1&quot;&gt;codeSign, 현지화&lt;/em&gt;된 파일,&lt;em papago-id=&quot;40-1&quot;&gt; 프레임워크, 프로비저닝&lt;/em&gt; 파일 등과 같은 자세한 내용이 표시됩니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/jMAiv.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/jMAiv.png&quot; alt=&quot;Screenshot 7&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;ol start=&quot;8&quot;&gt; 
 &lt;li papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;프로비저닝 프로파일 세부 정보는&lt;strong papago-id=&quot;41-1&quot;&gt; inbedded.mobile&lt;/strong&gt; provision에서 확인할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 &lt;em papago-id=&quot;41-3&quot;&gt;파일은 txt 파일 형식으로만 읽을&lt;/em&gt; 수 &lt;em papago-id=&quot;41-3&quot;&gt;있습니다&lt;/em&gt;.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;41-5&quot;&gt;그래서&lt;/em&gt; 파일에&lt;em papago-id=&quot;41-5&quot;&gt; 확장자&lt;/em&gt; .txt를 &lt;em papago-id=&quot;41-5&quot;&gt;추가&lt;/em&gt;합니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/T0frV.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/T0frV.png&quot; alt=&quot;Screenshot 8&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;ol start=&quot;9&quot;&gt; 
 &lt;li papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;42-1&quot;&gt;이제&lt;/em&gt; textEdit를 사용하여 이 파일을 엽니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이제 이 &lt;strong papago-id=&quot;42-3&quot;&gt;파일&lt;/strong&gt;을 자세히 살펴 보면 &lt;strong papago-id=&quot;42-3&quot;&gt;IPA에 대한 프로비저닝 프로필&lt;/strong&gt;을 볼 수&lt;strong papago-id=&quot;42-3&quot;&gt; 있습니다&lt;/strong&gt;.&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/DbD25.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/DbD25.png&quot; alt=&quot;Screenshot 9&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;p papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Xcode Organizer로 이동하여 아카이브를 클릭합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;작성한 보관 파일 목록을 볼 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;클릭하면 작성 날짜, 식별자 등의 세부 정보가 표시됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 식별자와 일치하여 이에 대해 작성한 프로필을 찾을 수 있습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;44&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/10222946/&lt;a href=&quot;https://stackoverflow.com/questions/10222946/how-to-find-out-what-profile-was-used-for-building-ipa-file&quot; target=&quot;_blank&quot; papago-id=&quot;44-1&quot;&gt;how-to-find-out-what-profile-was-used-for-building-ipa-file&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/558</guid>
      <comments>https://kingscode.tistory.com/558#entry558comment</comments>
      <pubDate>Wed, 9 Aug 2023 22:04:28 +0900</pubDate>
    </item>
    <item>
      <title>하위 요소를 변경하지 않고 요소의 텍스트를 변경하려면 어떻게 해야 합니까?</title>
      <link>https://kingscode.tistory.com/557</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하위 요소를 변경하지 않고 요소의 텍스트를 변경하려면 어떻게 해야 합니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;요소의 텍스트를 동적으로 업데이트합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;div&amp;gt;
   **text to change**
   &amp;lt;someChild&amp;gt;
       text that should not change
   &amp;lt;/someChild&amp;gt;
   &amp;lt;someChild&amp;gt;
       text that should not change
   &amp;lt;/someChild&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 jQuery가 처음이라 이 일은 저에게 꽤 어려운 일인 것 같습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;누가 사용할 기능/선택기를 알려주시겠습니까?&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가능하다면 변경해야 할 텍스트의 컨테이너를 새로 추가하지 않고 진행하고 싶습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;https://stackoverflow.com/questions/4106809/in-jquery-how-can-i-change-an-elements-text-without-changing-its-child-elements/4106957#4106957&quot; papago-id=&quot;4-0&quot;&gt;Mark는 jQuery&lt;/a&gt;를 사용하여 더 &lt;a href=&quot;https://stackoverflow.com/questions/4106809/in-jquery-how-can-i-change-an-elements-text-without-changing-its-child-elements/4106957#4106957&quot; papago-id=&quot;4-0&quot;&gt;나은 솔루션을 제공&lt;/a&gt;하지만 일반 JavaScript에서도 이를 수행할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에서,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;childNodes&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;속성은 텍스트 노드를 포함하여 요소의 모든 하위 노드를 제공합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 변경하고자 하는 텍스트가 항상 요소의 첫 번째 항목이 될 것이라는 것을 알고 있다면, 예를 들어 다음 HTML이 주어집니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div id=&quot;your_div&quot;&amp;gt;
   **text to change**
   &amp;lt;p&amp;gt;
       text that should not change
   &amp;lt;/p&amp;gt;
   &amp;lt;p&amp;gt;
       text that should not change
   &amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같이 할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;var your_div = document.getElementById('your_div');

var text_to_change = your_div.childNodes[0];

text_to_change.nodeValue = 'new text';
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하여 물론, 당를히 jQuery다사용여하있수니습택선할여를 할 수도 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 애에즉초즉▁(에,,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;var your_div = $('your_div').get(0);&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;).&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;strong papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;2018년 업데이트&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것이 꽤 인기 있는 답변이기 때문에 저는 텍스트 노드 선택기를 jQuery에 플러그인으로 추가하여 약간 업데이트하고 미화하기로 결정했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아래의 스니펫에서 당신은 내가 모든 (그리고 오직) textNodes를 얻는 새로운 jQuery 함수를 정의하는 것을 볼 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어 이 함수를 연결할 수도 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;first()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;例능.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;공백, 탭, 새 줄 등도 텍스트 노드로 인식되기 때문에 텍스트 노드에서 트림을 하고 트림 후 비어 있지 않은지 확인합니다.&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이러한 노드도 필요한 경우 jQuery 함수의 if 문에서 해당 노드를 제거하기만 하면 됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;첫 번째 텍스트 노드를 교체하는 방법과 모든 텍스트 노드를 교체하는 방법에 대한 예제를 추가했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 방법을 사용하면 코드를 더 쉽게 읽을 수 있고 여러 번 다른 목적으로 코드를 더 쉽게 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;원하는 경우에도 &lt;em papago-id=&quot;18-1&quot;&gt;업데이트&lt;/em&gt; 2017&lt;em papago-id=&quot;18-1&quot;&gt;(접근)&lt;/em&gt;이 작동합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;As jQuery 확장자&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;snippet&quot; data-lang=&quot;js&quot; data-hide=&quot;true&quot; data-console=&quot;true&quot; data-babel=&quot;false&quot;&gt; 
 &lt;div class=&quot;snippet-code snippet-currently-hidden&quot;&gt; 
  &lt;pre class=&quot;snippet-code-js lang-js prettyprint-override&quot;&gt;&lt;code&gt;//Add a jQuery extension so it can be used on any jQuery object
jQuery.fn.textNodes = function() {
  return this.contents().filter(function() {
    return (this.nodeType === Node.TEXT_NODE &amp;amp;&amp;amp; this.nodeValue.trim() !== &quot;&quot;);
  });
}

//Use the jQuery extension
$(document).ready(function(){
  $('#replaceAll').on('click', () =&amp;gt; {
    $('#testSubject').textNodes().replaceWith('Replaced');
  });

  $('#replaceFirst').on('click', () =&amp;gt; {
    $('#testSubject').textNodes().first().replaceWith('Replaced First');
  });
});&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-css lang-css prettyprint-override&quot;&gt;&lt;code&gt;p {
  margin: 0px;
}&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-html lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;div id=&quot;testSubject&quot;&amp;gt;
   **text to change**
   &amp;lt;p&amp;gt;text that should not change&amp;lt;/p&amp;gt;
   &amp;lt;p&amp;gt;text that should not change&amp;lt;/p&amp;gt;
   **also text to change**
   &amp;lt;p&amp;gt;text that should not change&amp;lt;/p&amp;gt;
   &amp;lt;p&amp;gt;text that should not change&amp;lt;/p&amp;gt;
   **last text to change**
&amp;lt;/div&amp;gt;
&amp;lt;button id=&quot;replaceFirst&quot;&amp;gt;Replace First&amp;lt;/button&amp;gt;
&amp;lt;button id=&quot;replaceAll&quot;&amp;gt;Replace All&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Javascript(ES) 등가&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;snippet&quot; data-lang=&quot;js&quot; data-hide=&quot;true&quot; data-console=&quot;true&quot; data-babel=&quot;false&quot;&gt; 
 &lt;div class=&quot;snippet-code snippet-currently-hidden&quot;&gt; 
  &lt;pre class=&quot;snippet-code-js lang-js prettyprint-override&quot;&gt;&lt;code&gt;//Add a new function to the HTMLElement object so it can be used on any HTMLElement
HTMLElement.prototype.textNodes = function() {
  return [...this.childNodes].filter((node) =&amp;gt; {
    return (node.nodeType === Node.TEXT_NODE &amp;amp;&amp;amp; node.nodeValue.trim() !== &quot;&quot;);
  });
}

//Use the new HTMLElement function
document.addEventListener('DOMContentLoaded', () =&amp;gt; {
  document.querySelector('#replaceAll').addEventListener('click', () =&amp;gt; {
    document.querySelector('#testSubject').textNodes().forEach((node) =&amp;gt; {
      node.textContent = 'Replaced';
    });
  });

  document.querySelector('#replaceFirst').addEventListener('click', function() {
    document.querySelector('#testSubject').textNodes()[0].textContent = 'Replaced First';
  });
});&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-css lang-css prettyprint-override&quot;&gt;&lt;code&gt;p {
  margin: 0px;
}&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-html lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;div id=&quot;testSubject&quot;&amp;gt;
  **text to change**
  &amp;lt;p&amp;gt;text that should not change&amp;lt;/p&amp;gt;
  &amp;lt;p&amp;gt;text that should not change&amp;lt;/p&amp;gt;
  **also text to change**
  &amp;lt;p&amp;gt;text that should not change&amp;lt;/p&amp;gt;
  &amp;lt;p&amp;gt;text that should not change&amp;lt;/p&amp;gt;
  **last text to change**
&amp;lt;/div&amp;gt;
&amp;lt;button id=&quot;replaceFirst&quot;&amp;gt;Replace First&amp;lt;/button&amp;gt;
&amp;lt;button id=&quot;replaceAll&quot;&amp;gt;Replace All&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;2017년 업데이트(접근):&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것이 게시된 이후로 몇 가지가 바뀐 것 같습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음은 업데이트된 버전입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$(&quot;div&quot;).contents().filter(function(){ return this.nodeType == 3; }).first().replaceWith(&quot;change text&quot;);
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;원본 답변(현재 버전에서는 작동하지 않음)&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$(&quot;div&quot;).contents().filter(function(){ return this.nodeType == 3; })
.filter(':first').text(&quot;change text&quot;);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://api.jquery.com/contents/&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;24-1&quot;&gt;출처: &lt;/a&gt;http://api.jquery.com/contents/&lt;/font&gt;&lt;/p&gt;&lt;h2&gt;&lt;a href=&quot;http://jsfiddle.net/6ssayru2/&quot; rel=&quot;noreferrer&quot; papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용 중 보기&lt;/font&gt;&lt;/a&gt;&lt;/h2&gt; 
&lt;p papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;마크업:&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;snippet&quot; data-lang=&quot;js&quot; data-hide=&quot;false&quot; data-console=&quot;false&quot; data-babel=&quot;false&quot;&gt; 
 &lt;div class=&quot;snippet-code&quot;&gt; 
  &lt;pre class=&quot;snippet-code-js lang-js prettyprint-override&quot;&gt;&lt;code&gt;$(function() {
  $('input[type=button]').one('click', function() {
    var cache = $('#parent').children();
    $('#parent').text('Altered Text').append(cache);
  });
});&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-html lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;div id=&quot;parent&quot;&amp;gt;Some text
  &amp;lt;div&amp;gt;Child1&amp;lt;/div&amp;gt;
  &amp;lt;div&amp;gt;Child2&amp;lt;/div&amp;gt;
  &amp;lt;div&amp;gt;Child3&amp;lt;/div&amp;gt;
  &amp;lt;div&amp;gt;Child4&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;input type=&quot;button&quot; value=&quot;alter text&quot; /&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt;&lt;p papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;변경할 텍스트를 선택할 클래스와 함께 범위로 묶기만 하면 됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 알기로는 질문에 반드시 답하지는 않지만, 아마도 더 나은 코딩 관행일 것입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;모든 것을 깨끗하고 단순하게 유지&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div id=&quot;header&quot;&amp;gt;
   &amp;lt;span class=&quot;my-text&quot;&amp;gt;**text to change**&amp;lt;/span&amp;gt;
   &amp;lt;div&amp;gt;
       text that should not change
   &amp;lt;/div&amp;gt;
   &amp;lt;div&amp;gt;
       text that should not change
   &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Voila!&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$('#header .mytext').text('New text here')
&lt;/code&gt;&lt;/pre&gt;&lt;pre class=&quot;lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;div id=&quot;divtochange&quot;&amp;gt;
    **text to change**
    &amp;lt;div&amp;gt;text that should not change&amp;lt;/div&amp;gt;
    &amp;lt;div&amp;gt;text that should not change&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;pre class=&quot;lang-javascript prettyprint-override&quot;&gt;&lt;code&gt;$(document).ready(function() {
    $(&quot;#divtochange&quot;).contents().filter(function() {
            return this.nodeType == 3;
        })
        .replaceWith(&quot;changed text&quot;);
});
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;첫 번째 텍스트 노드만 변경됩니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;말씀하신 특정한 경우:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div id=&quot;foo&quot;&amp;gt;
   **text to change**
   &amp;lt;someChild&amp;gt;
       text that should not change
   &amp;lt;/someChild&amp;gt;
   &amp;lt;someChild&amp;gt;
       text that should not change
   &amp;lt;/someChild&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 매우 쉽습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;var div = document.getElementById(&quot;foo&quot;);
div.firstChild.data = &quot;New text&quot;;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 이것을 어떻게 일반화하고 싶은지 말하지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어, 다음과 같은 경우에 첫 번째 텍스트 노드의 텍스트를 변경하려면&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 다음과 같은 것을 할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;var child = div.firstChild;
while (child) {
    if (child.nodeType == 3) {
        child.data = &quot;New text&quot;;
        break;
    }
    child = child.nextSibling;
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;snippet&quot; data-lang=&quot;js&quot; data-hide=&quot;false&quot; data-console=&quot;true&quot;&gt; 
 &lt;div class=&quot;snippet-code&quot;&gt; 
  &lt;pre class=&quot;snippet-code-js lang-js prettyprint-override&quot;&gt;&lt;code&gt;$.fn.textPreserveChildren = function(text) {
  return this.each(function() {
    return $(this).contents().filter(function() {
      return this.nodeType == 3;
    }).first().replaceWith(text);
  })
}

setTimeout(function() {
  $('.target').textPreserveChildren('Modified');
}, 2000);&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-css lang-css prettyprint-override&quot;&gt;&lt;code&gt;.blue {
  background: #77f;
}
.green {
  background: #7f7;
}&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-html lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;

&amp;lt;div class=&quot;target blue&quot;&amp;gt;Outer text
  &amp;lt;div&amp;gt;Nested element&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;

&amp;lt;div class=&quot;target green&quot;&amp;gt;Another outer text
  &amp;lt;div&amp;gt;Another nested element&amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt;&lt;p papago-id=&quot;35&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;간단한 대답:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$(&quot;div&quot;).contents().filter(function(){ 
  return this.nodeType == 3; 
})[0].nodeValue = &quot;The text you want to replace with&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://jsfiddle.net/qYUBp/7/&quot; papago-id=&quot;36-3&quot; rel=&quot;nofollow&quot;&gt;또&lt;/a&gt; &lt;em papago-id=&quot;36-1&quot;&gt;다른&lt;/em&gt; 방법은&lt;a href=&quot;http://jsfiddle.net/qYUBp/7/&quot; papago-id=&quot;36-3&quot; rel=&quot;nofollow&quot;&gt; &lt;/a&gt;http://jsfiddle.net/qYUBp/7/ 입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;HTML&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div id=&quot;header&quot;&amp;gt;
   **text to change**
   &amp;lt;div&amp;gt;
       text that should not change
   &amp;lt;/div&amp;gt;
   &amp;lt;div&amp;gt;
       text that should not change
   &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;JQUERY&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;var tmp=$(&quot;#header&amp;gt;div&quot;).html();
$(&quot;#header&quot;).text(&quot;its thursday&quot;).append(tmp);
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Mark의 대답의 문제는 빈 텍스트 노드도 있다는 것입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;jQuery 플러그인 솔루션:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$.fn.textnodes = function () {
    return this.contents().filter(function (i,n) {
        return n.nodeType == 3 &amp;amp;&amp;amp; n.textContent.trim() !== &quot;&quot;;
    });
};

$(&quot;div&quot;).textnodes()[0] = &quot;changed text&quot;;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기에는 많은 훌륭한 답변들이 있지만 그들은 아이들이 있는 하나의 텍스트 노드만 처리합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;나의 경우 모든 텍스트 노드에서 작동하고 HTML 자식은 무시하지만 순서는 유지해야 했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;만약 이런 경우가 있다면,&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;div id=&quot;parent&quot;&amp;gt; Some text
    &amp;lt;div&amp;gt;Child1&amp;lt;/div&amp;gt;
    &amp;lt;div&amp;gt;Child2&amp;lt;/div&amp;gt;
    and some other text
    &amp;lt;div&amp;gt;Child3&amp;lt;/div&amp;gt;
    &amp;lt;div&amp;gt;Child4&amp;lt;/div&amp;gt;
    and here we are again
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음 코드를 사용하여 텍스트만 수정하고 주문을 보존할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;/p&gt;
&lt;div class=&quot;snippet&quot; data-lang=&quot;js&quot; data-hide=&quot;false&quot; data-console=&quot;true&quot; data-babel=&quot;false&quot;&gt; 
 &lt;div class=&quot;snippet-code&quot;&gt; 
  &lt;pre class=&quot;snippet-code-js lang-js prettyprint-override&quot;&gt;&lt;code&gt;    $('#parent').contents().filter(function() {
        return this.nodeType == Node.TEXT_NODE &amp;amp;&amp;amp; this.nodeValue.trim() != '';
    }).each(function() {
    		//You can ignore the span class info I added for my particular application.
        $(this).replaceWith(this.nodeValue.replace(/(\w+)/g,&quot;&amp;lt;span class='IIIclassIII$1' onclick='_mc(this)' onmouseover='_mr(this);' onmouseout='_mt(this);'&amp;gt;$1X&amp;lt;/span&amp;gt;&quot;));
	});&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-html lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;script src=&quot;https://code.jquery.com/jquery-3.0.0.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;div id=&quot;parent&quot;&amp;gt; Some text
    &amp;lt;div&amp;gt;Child1&amp;lt;/div&amp;gt;
    &amp;lt;div&amp;gt;Child2&amp;lt;/div&amp;gt;
    and some other text
    &amp;lt;div&amp;gt;Child3&amp;lt;/div&amp;gt;
    &amp;lt;div&amp;gt;Child4&amp;lt;/div&amp;gt;
    and here we are again
&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기 작동하는 &lt;a href=&quot;https://jsfiddle.net/doug99collins/bvdeyuyy/&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;43-1&quot;&gt;jsfidle&lt;/a&gt;입니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;44&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.prependTo()를 찾으시는 것 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;http://api.jquery.com/prependTo/&quot; rel=&quot;nofollow&quot; papago-id=&quot;45&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;http://api.jquery.com/prependTo/&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;46&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;페이지에서 요소를 선택하여 다른 요소에 삽입할 수도 있습니다.&lt;/font&gt;&lt;/p&gt; 
 &lt;p papago-id=&quot;47&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;$('h2').&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;prependTo($(.container');&lt;/font&gt;&lt;/p&gt; 
 &lt;p papago-id=&quot;48&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 방법으로 선택한 요소를 다른 곳에 삽입하면 해당 요소가 대상(복제되지 않음)으로 이동합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div class=&quot;container&quot;&amp;gt;  
  &amp;lt;h2&amp;gt;Greetings&amp;lt;/h2&amp;gt;
  &amp;lt;div class=&quot;inner&quot;&amp;gt;Hello&amp;lt;/div&amp;gt;
  &amp;lt;div class=&quot;inner&quot;&amp;gt;Goodbye&amp;lt;/div&amp;gt; 
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;49&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 대상 요소가 둘 이상인 경우 삽입된 요소의 복제된 복사본이 첫 번째 이후 각 대상에 대해 만들어집니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt;&lt;p papago-id=&quot;50&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 오래된 질문이지만 당신은 당신의 삶을 더 쉽게 만들기 위해 다음과 같은 간단한 기능을 만들 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$.fn.toText = function(str) {
    var cache = this.children();
    this.text(str).append(cache);
}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;51&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div id=&quot;my-div&quot;&amp;gt;
   **text to change**
   &amp;lt;p&amp;gt;
       text that should not change
   &amp;lt;/p&amp;gt;
   &amp;lt;p&amp;gt;
       text that should not change
   &amp;lt;/p&amp;gt;
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;52&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;용도:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$(&quot;#my-div&quot;).toText(&quot;helloworld&quot;);
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong papago-id=&quot;53&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;2019 version - Short &amp;amp; Simple&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;document.querySelector('#your-div-id').childNodes[0].nodeValue = 'new text';
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;&lt;em papago-id=&quot;54&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;설명.&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;document.querySelector('#your-div-id')&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;부모(변경하려는 텍스트 요소)를 선택하는 데 사용됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;.childNodes[0]&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;텍스트 노드를 선택합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;.nodeValue = 'new text'&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;텍스트 노드 값을 &quot;새 텍스트&quot;로 설정합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;p&gt;&lt;em papago-id=&quot;58&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 대답은 아마도 딘 마틴의 논평에서 영감을 받았을 것입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;몇 년 동안 이 솔루션을 사용했기 때문에 확실하게 말할 수 없습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떤 사람들은 이것이 최고의 해결책이라는 사실보다 더 신경을 쓰기 때문에 이 확률을 여기에 올려야 한다고 생각했습니다.&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&lt;p papago-id=&quot;59&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Javascript 접근법. 부모 div를 선택하면 첫 번째 Child.textContent를 사용할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;let myDiv = document.getElementById(&quot;parentDiv&quot;);
myDiv.firstChild.textContent = &quot;** New Text **&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;60&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;재귀적인 방법은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;function changeInnerText(elm,text,newText) {
    if (elm == null) {
        return;
    }
    changeInnerTextHelper(elm.firstChild, text, newText);
}
function changeInnerTextHelper(elm, text, newText) {
    if (elm == null) {
        return;
    }
    if (elm.nodeType == 3 &amp;amp;&amp;amp; elm.data == text) {
        elm.data = newText;
        return;
    }
    changeInnerTextHelper(elm.firstChild, text, newText);
    changeInnerTextHelper(elm.nextSibling, text, newText);
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;61&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/4106809/&lt;a href=&quot;https://stackoverflow.com/questions/4106809/how-can-i-change-an-elements-text-without-changing-its-child-elements&quot; target=&quot;_blank&quot; papago-id=&quot;61-1&quot;&gt;how-can-i-change-an-elements-text-without-changing-its-child-elements&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/557</guid>
      <comments>https://kingscode.tistory.com/557#entry557comment</comments>
      <pubDate>Wed, 9 Aug 2023 22:03:11 +0900</pubDate>
    </item>
    <item>
      <title>path.vmdk와 path.vmdk 이름이 __인 path.vmdk</title>
      <link>https://kingscode.tistory.com/556</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;path.vmdk와 path.vmdk 이름이 __인 path.vmdk&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;둘 다 &lt;em papago-id=&quot;1-1&quot;&gt;사용&lt;/em&gt;할 때 차이가 있습니까?&lt;/font&gt;&lt;/font&gt; &lt;code&gt;path.join&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;path.resolve&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;와 함께&lt;/font&gt;&lt;/font&gt;&lt;code&gt;__dirname&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Node.js의 절대 경로를 해결하기 위해?&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이와 같이 사용할 때 이 중 하나를 선호해야 합니까(절대 경로 해상도는 사용 사례의 90%)?&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;const absolutePath = path.join(__dirname, some, dir);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;const absolutePath = path.resolve(__dirname, some, dir);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;두 가지 방법 모두 경로를 정규화합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예, 기능 간에 차이가 있지만 이 경우 사용하는 방법은 동일한 결과를 초래합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;path.join&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;두 경로를 병합하여 정규화된 경로를 반환합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;절대 경로를 반환할 수 있지만 반드시 항상 그렇지는 않습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;path.join('app/libs/oauth', '/../ssl')
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하기로 결정됨&lt;/font&gt;&lt;/font&gt;&lt;code&gt;app/libs/ssl&lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;path.resolve&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;반대로 절대 경로로 해결됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어, 다음을 실행할 때:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;path.resolve('bar', '/foo');
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;반환되는 경로는 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;/foo&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것이 구성될 수 있는 첫 번째 절대 경로이기 때문입니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 실행하는 경우:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;path.resolve('/bar/bae', '/foo', 'test');
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;반환되는 경로는 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;/foo/test&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오른쪽에서 왼쪽으로 형성될 수 있는 첫 번째 절대 경로이기 때문입니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;루트 디렉터리를 지정하는 경로를 제공하지 않는 경우 다음 경로에 지정됩니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;resolve&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;함수가 현재 작업 디렉터리에 추가됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서 만약 당신의 작업 디렉토리가&lt;/font&gt;&lt;/font&gt;&lt;code&gt;/home/mark/project/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;path.resolve('test', 'directory', '../back');
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하기로 결정됨&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;/home/mark/project/test/back&lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;__dirname&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;원본 파일이 들어 있는 디렉터리의 절대 경로입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용할 때&lt;/font&gt;&lt;/font&gt;&lt;code&gt;path.resolve&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;path.join&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 경로를 지정하면 동일한 결과가 반환됩니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;__dirname&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런 경우에는 정말로 선호도의 문제일 뿐입니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;const absolutePath = path.join(__dirname, some, dir);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;const absolutePath = path.resolve(__dirname, some, dir);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;code&gt;path.join&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;연결됩니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;__dirname&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;값과 연결된 현재 파일의 디렉토리 이름입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;some&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;dir&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;플랫폼별 구분 기호를 사용합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;34&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;반면에.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;path.resolve&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;윌프로세스&lt;/font&gt;&lt;/font&gt;&lt;code&gt;__dirname&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;some&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;dir&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;즉, 처리하여 오른쪽에서 왼쪽으로 추가합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;27&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;의 값 중 하나라도&lt;/font&gt;&lt;/font&gt;&lt;code&gt;some&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;dir&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;29&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;루트 경로에 해당하면 이전 경로가 생략되고 루트로 간주하여 처리 중지됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;개념을 더 잘 이해하기 위해 다음과 같이 두 가지를 조금 더 자세히 설명하겠습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;30&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그&lt;/font&gt;&lt;/font&gt;&lt;code&gt;path.join&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;31&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;path.resolve&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;32&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;nodejs에서 제공하는 경로 모듈의 두 가지 다른 메서드 또는 함수입니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;46&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기서 두 경로 모두 경로 목록을 수락하지만 결과, 즉 이러한 경로를 처리하는 방법에 차이가 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;path.join&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;33&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;플랫폼별 구분 기호를 사용하여 지정된 모든 경로 세그먼트를 함께 연결한 다음 결과 경로를 정규화합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그 동안에&lt;/font&gt;&lt;/font&gt;&lt;code&gt;path.resolve()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;34&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;절대 경로가 생성될 때까지 각 후속 경로를 접두사로 붙여 오른쪽에서 왼쪽으로 경로 순서를 처리합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;49&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;인수가 제공되지 않은 경우&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;50&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음 예제는 두 개념을 명확하게 이해하는 데 도움이 됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;35&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 이름은 제파이름은입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;index.js&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;36&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;는 그고현작디는리토렉입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;E:\MyFolder\Pjtz\node&lt;/code&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;const path = require('path');

console.log(&quot;path.join() : &quot;, path.join());
// outputs .
console.log(&quot;path.resolve() : &quot;, path.resolve());
// outputs current directory or equivalent to __dirname
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;53&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;결과&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;λ node index.js
path.join() :  .
path.resolve() :  E:\MyFolder\Pjtz\node
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;em&gt;&lt;code&gt;path.resolve()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;37&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;방법은 절대 경로를 출력하는 반면,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;path.join()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;38&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;되지 않을  현재  .를합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;56&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일부 루트 경로가 인수로 전달되는 경우&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;const path=require('path');

console.log(&quot;path.join() : &quot; ,path.join('abc','/bcd'));
console.log(&quot;path.resolve() : &quot;,path.resolve('abc','/bcd'));
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;57&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;결과 i&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;λ node index.js
path.join() :  abc\bcd
path.resolve() :  E:\bcd
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;em&gt;&lt;code&gt;path.join()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;39&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, &quot; &quot; &quot; 은 플랫폼별 구분자로 연결합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;path.resolve()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;40&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;절대 경로가 생성될 때까지 각 후속 경로를 접두사로 붙여 오른쪽에서 왼쪽으로 경로 순서를 처리합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;41&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에서의 문서에서.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;path.resolve&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;42&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;62&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;경로가 루트 디렉터리로 확인되지 않으면 결과 경로가 정규화되고 후행 슬래시가 제거됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;43&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇지만&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;path.join&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;44&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;해서 슬래시 뒤를 따라갑니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;65&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇게&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;__dirname = '/';
path.resolve(__dirname, 'foo/'); // '/foo'
path.join(__dirname, 'foo/'); // '/foo/'
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong papago-id=&quot;66&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가장 단순한 용어:&lt;/font&gt;&lt;/strong&gt; &lt;br&gt;&lt;br&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;45&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;를 할 때&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;path.resolve()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;46&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;과 같은 일을 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;from left to right-&lt;/code&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;47&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가장 에 있는 를 가장오른있매변연결수다니합를개는으로 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;48&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;루트 경로와 직접 연결하여 절대 경로를 만듭니다(예문 확인).&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;49&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 나서 어떤 것이든 연결합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;50&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p papago-id=&quot;73&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를들면&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;path.resolve('/a', 'b', 'c');     returns    C:\a\b\c
path.resolve('/a', '/b', 'c');    returns    C:\b\c
path.resolve('/a', '/b', '/c');   returns    C:\c
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr&gt; 
&lt;p&gt;&lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;51&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;을 사용하는 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;join()&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;52&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 모든  변수를 합니다. 이  변수에는 &quot;&quot; &quot; &quot; &quot; &quot; &quot; 가 있는지 를 나타냅니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;/&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;53&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇지 않으면.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;path.join(&quot;/a&quot;, &quot;b&quot;, &quot;/c&quot;, &quot;d&quot;)   simply returns   &quot;\a\b\c\d&quot;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;77&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/39110801/&lt;a href=&quot;https://stackoverflow.com/questions/39110801/path-join-vs-path-resolve-with-dirname&quot; target=&quot;_blank&quot; papago-id=&quot;77-1&quot;&gt;path-join-vs-path-resolve-with-dirname&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/556</guid>
      <comments>https://kingscode.tistory.com/556#entry556comment</comments>
      <pubDate>Wed, 9 Aug 2023 22:02:39 +0900</pubDate>
    </item>
    <item>
      <title>@EnableFeignClients 및 @FeignClients가 'FeignContext' 자동 배선 시 실패함 No SuchBeanException</title>
      <link>https://kingscode.tistory.com/555</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;@EnableFeignClients 및 @FeignClients가 'FeignContext' 자동 배선 시 실패함 No SuchBeanException&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 쓰고 있는 마이크로 서비스는 우리 플랫폼의 다른 마이크로 서비스와 통신해야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이러한 시도에서 당사에 이상적인 솔루션은 &lt;strong papago-id=&quot;1-1&quot;&gt;Spring Cloud&lt;/strong&gt; Netflix &lt;strong papago-id=&quot;1-1&quot;&gt;Feign&lt;/strong&gt;을 구현하는 &lt;strong papago-id=&quot;1-1&quot;&gt;것&lt;/strong&gt;입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만, 아래의 예외 사항에 직면해 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@Autowired ReviewProvider&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예외(원인)&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.cloud.netflix.feign.FeignContext' available
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:353)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:351)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:340)
    at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1093)
    at org.springframework.cloud.netflix.feign.FeignClientFactoryBean.getObject(FeignClientFactoryBean.java:155)
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168)
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ReviewProvider.java&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@FeignClient(&quot;http://metadata-reviews&quot;)
public interface ReviewProvider {

    @RequestMapping(path = &quot;sessions&quot;, method = POST)
    ReviewSessionDTO createSession();

}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;ReviewProvider.java&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@RunWith(SpringRunner.class)
@ActiveProfiles(INTEGRATION)
@ContextConfiguration(classes = AppEntry.class)
@AutoConfigureTestDatabase(replace = Replace.NONE)
@DataJpaTest
public class ReviewProviderTest {

    @Autowired
    private ReviewProvider provider;
    private Class&amp;lt;? extends ReviewProvider&amp;gt; providerClass;

    @Before
    public void setup() {
        providerClass = provider.getClass();
    }

    @Test
    public void classAnnotations() {
        assertTrue(providerClass.isAnnotationPresent(FeignClient.class));
        assertEquals(&quot;http://metadata-reviews&quot;, providerClass.getAnnotation(FeignClient.class).value());
    }

    @Test
    public void createSession() throws Exception {
        final Method method = providerClass.getDeclaredMethod(&quot;createSession&quot;);
        assertTrue(method.isAnnotationPresent(RequestMapping.class));

        final RequestMapping mapping = method.getAnnotation(RequestMapping.class);
        assertEquals(&quot;sessions&quot;, mapping.path());
        assertEquals(0, method.getParameters().toString());
    }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아직 해결책이 없는 것 같은데요&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 문제를 해결하기 위해 제가 한 일은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 주석을 테스트 클래스에 추가합니다.&lt;/font&gt;&lt;/p&gt; &lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;@자동 구성 가져오기({Ribbon)&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;AutoConfiguration.class, FeignRibbonClientAutoConfiguration.class, FeignAutoConfiguration.class}&lt;/font&gt;&lt;/p&gt; &lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;시도해 보세요, 만약 그것이 작동하지 않는다면, 당신은 아마도 필요할 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@EnableFeignClients&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;주 프로그램 구성에 대한 주석&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;권장되는 접근 방식은 &lt;strong papago-id=&quot;4-1&quot;&gt;애플리케이션 구성&lt;/strong&gt;을 슬라이스하는 &lt;strong papago-id=&quot;4-1&quot;&gt;것&lt;/strong&gt;이며, 이는 제거해야 함을 의미합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@EnableFeignClients&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;em papago-id=&quot;5-1&quot;&gt;SpringBootApplication&lt;/em&gt;에서.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;전용 구성 클래스를 추가합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@Configuration
@EnableFeignClients
public class CloudConfiguration {

}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;@WebMvcTest와 같은 모든 슬라이스 주석에는 &lt;em papago-id=&quot;16-1&quot;&gt;SpringBootApplication&lt;/em&gt;의 기본 구성이 포함되어 있기 때문에 이 작업이 필요합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;참조:&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;a href=&quot;https://github.com/spring-projects/spring-boot/issues/7270&quot; rel=&quot;noreferrer&quot; papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://github.com/spring-projects/spring-boot/issues/7270&lt;/font&gt;&lt;/a&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;a href=&quot;https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#test-auto-configuration&quot; rel=&quot;noreferrer&quot; papago-id=&quot;19&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/ #test-auto-configuration&lt;/font&gt;&lt;/a&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이 문제를 단지 하나로 해결했습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@EnableAutoConfiguration&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;나의 수업에 대한 주석&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;해야 할 일은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;빌드 파일에 그라들(gradle)과 같은 유사한 종속성을 추가합니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;'compile.springframework.cloud:spring-cloud-spring-feign'&lt;/font&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;인터페이스에 @FeignClient 추가&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;@EnableFeignClients를 주석 @SpringBootApplication이 있는 클래스 또는 구성에 추가합니다.&lt;/font&gt;&lt;/li&gt; 
&lt;/ul&gt;&lt;p papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 또한 이 문제에 직면했습니다. 저는 MariuszS의 답변을 따랐습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 몇 가지를 알아내야 했기 때문에 여기에...&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;우리는 @SpringBoot에게 말해야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같이 구성을 선택할 위치에서 테스트합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@SpringBootTest
@ContextConfiguration(classes = { YourClientConfig.class })
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기본 패키지 및 구성을 추가해야 했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@Configuration
@EnableFeignClients( basePackages = [&quot;com.yourcompany.yourproject&quot;])
internal open class FeignConfiguration
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/43093968/&lt;a href=&quot;https://stackoverflow.com/questions/43093968/enablefeignclients-and-feignclient-fail-on-autowiring-feigncontext-nosuchbea&quot; target=&quot;_blank&quot; papago-id=&quot;29-1&quot;&gt;enablefeignclients-and-feignclient-fail-on-autowiring-feigncontext-nosuchbea&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/555</guid>
      <comments>https://kingscode.tistory.com/555#entry555comment</comments>
      <pubDate>Thu, 20 Jul 2023 23:07:51 +0900</pubDate>
    </item>
    <item>
      <title>Oracle의 TimeStamp 열에서 시간 부분 추출</title>
      <link>https://kingscode.tistory.com/554</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Oracle의 TimeStamp 열에서 시간 부분 추출&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;현재 사용 중입니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;MyTimeStampField-TRUNC(MyTimeStampField)&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Oracle의 타임스탬프 열에서 시간 부분을 추출합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT CURRENT_TIMESTAMP-TRUNC(CURRENT_TIMESTAMP) FROM DUAL
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;반환됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;+00 13:12:07.100729&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;타임스탬프 필드에서 시간 부분을 추출하는 것은 괜찮지만, 이를 위한 더 나은 방법(오라클의 내장 기능을 사용하는 것일 수도 있음)이 있는지 궁금합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;EXTRACT&lt;a href=&quot;http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions050.htm&quot; papago-id=&quot;6-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;()&lt;/a&gt; 기능은 &lt;a href=&quot;http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions050.htm&quot; papago-id=&quot;6-1&quot; rel=&quot;nofollow noreferrer&quot;&gt;어떻습니까&lt;/a&gt;?&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;항상 다음과 같은 작업을 수행할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;select TO_DATE(TO_CHAR(SYSDATE,'hh24:mi:ss'),'hh24:mi:ss') from dual
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 이것이 타임스탬프에도 작동할 것이라고 믿습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 그냥 데이트를 하고 사용하기를 원합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;to_char(cast(SYSDATE as date),'DD-MM-YYYY')
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 만약 당신이 단지 시간을 원한다면 사용하세요.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;to_char(cast(SYSDATE as date),'hh24:mi:ss')
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;매개 변수가 모든 변경 사항을 만들고 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;'DD-MM-YYYY'
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;'hh24:mi:ss'
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 기능은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Select EXTRACT(HOUR FROM (SYSDATE - trunc(sysdate)) DAY TO SECOND ) From dual;
&lt;/code&gt;&lt;/pre&gt;&lt;pre class=&quot;lang-sql prettyprint-override&quot;&gt;&lt;code&gt;select TO_DATE(TO_CHAR(SYSDATE,'hh24:mi:ss'),'hh24:mi:ss') from dual
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 실제보다 1시간 적은 시간 동안 타임스탬프를 제공합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇게 우아하진 않겠지만, 저한테는 효과가 있어요.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT TRUNC(CURRENT_TIMESTAMP) + (CURRENT_TIMESTAMP - TRUNC(CURRENT_TIMESTAMP)) - TRUNC(CURRENT_TIMESTAMP) FROM dual
-----------------
0,851863425925926
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 마지막 뺄셈 없이 TIMESTAMP를 시간을 사용하여 DATE로 변환합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT TRUNC(CURRENT_TIMESTAMP) + (CURRENT_TIMESTAMP - TRUNC(CURRENT_TIMESTAMP)) FROM dual
-----------------
20.04.2023 20:31:02
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;select hour(CURRENT_TIMESTAMP)
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/2951858/&lt;a href=&quot;https://stackoverflow.com/questions/2951858/extract-time-part-from-timestamp-column-in-oracle&quot; target=&quot;_blank&quot; papago-id=&quot;17-1&quot;&gt;extract-time-part-from-timestamp-column-in-oracle&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/554</guid>
      <comments>https://kingscode.tistory.com/554#entry554comment</comments>
      <pubDate>Thu, 20 Jul 2023 23:00:53 +0900</pubDate>
    </item>
    <item>
      <title>스프링 부트의 유닛 테스트 또는 통합 테스트</title>
      <link>https://kingscode.tistory.com/553</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스프링 부트의 유닛 테스트 또는 통합 테스트&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Spring Boot&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 시험이 언급된 방식에 혼란을 겪었습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;를 사용하는  테스트에  언급합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@WebMvcTest&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;서의주석으로 주석을 .&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Unit Test&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;4&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;반면에 어떤 사람들은 그것을 라고 부릅니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Integration Test&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;5&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떤 것이 정확한지 잘 모르겠습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;됩니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@DataJpaTest&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;7&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음 두 가지 테스트가 애플리케이션에 작성되어 있습니다. 하나는 컨트롤러용이고 다른 하나는 저장소용입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 두 가지 모두에 대해 몇 가지 질문이 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;안내 부탁드립니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용자 컨트롤러Test.java&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@RunWith(SpringRunner.class)
@WebMvcTest(UserController.class)
public class UserControllerTest {

    @Autowired
    private MockMvc mockMvc;
    @MockBean
    private UserRepository userRepository;

    @Test
    public void signUp() throws Exception {
        this.mockMvc.perform(get(&quot;/signup&quot;)).andExpect(status().isOk());
    }

}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용자 리포지토리 Test.java&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@RunWith(SpringRunner.class)
@DataJpaTest
public class UserRepositoryTest {

    @Autowired
    private TestEntityManager entityManager;
    @Autowired
    private UserRepository userRepository;

    @Test
    public void whenFindByName_thenReturnEmployee() {
        // given
        User u = new User();
        u.setName(&quot;ab&quot;);
        u.setEmail(&quot;ab@cd.com&quot;);
        entityManager.persistAndFlush(u);
        // when
        Optional&amp;lt;User&amp;gt; user = userRepository.findById(1L);
        // then
        assertTrue(user.isPresent());
    }

}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;제 질문은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;주석을 실행합니까?&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@WebMvcTest, @DataJpaTest&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@SpringBootTest&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;시험의합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Unit&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;Integration&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; )의 입니까?&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@MockBean&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것을 결정하는 테스트 내에서?&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;라고 가정하면,&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;UserControllerTest.java&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 것은  테스트입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;userRepository&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;와의 관계.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@MockBean private UserRepository userRepository&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;에 면에반에서는&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;UserRepositoryTest.java&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;우리는 그것을 자동 배선하고 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@Autowired private UserRepository userRepository&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt; 왜요? 왜요?&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt;&lt;p papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;유닛 테스트를 하는데 스프링이 왜 필요합니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;스프링 컨텍스트를 시작할 필요 없이 Mockito만 사용할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이에 대한 자세한&lt;a href=&quot;https://reflectoring.io/unit-testing-spring-boot/&quot; papago-id=&quot;26-1&quot; rel=&quot;noreferrer&quot;&gt; &lt;/a&gt;내용은 https://reflectoring.io/&lt;a href=&quot;https://reflectoring.io/unit-testing-spring-boot/&quot; papago-id=&quot;26-1&quot; rel=&quot;noreferrer&quot;&gt;unit-testing-spring-boot&lt;/a&gt;/ 을 참조하십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 @Mock Bean을 사용하는 것에 관해서는 저에게 매우 혼란스럽습니다!&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것은 유닛으로 간주됩니까, 아니면 통합 테스트로 간주됩니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;제 생각에는, 우리도 조롱당한 콩을 사용하고 있지만, 우리는 여전히 스프링 컨텍스트 내에서 실행하고 있으며, 저에게 이것은 통합 테스트입니다(단위 테스트는 실행에 스프링 컨텍스트가 필요하지 않기 때문에).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;브랜든이 언급한 사이트와 동일한 사이트는 @MockBean을 통합 &lt;a href=&quot;https://www.baeldung.com/java-spring-mockito-mock-mockbean&quot; rel=&quot;noreferrer&quot; papago-id=&quot;27-1&quot;&gt;테스트 &lt;/a&gt;https://www.baeldung.com/java-spring-mockito-mock-mockbean 로 간주합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/73ZWm.png&quot; rel=&quot;noreferrer&quot; papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;위 사이트의 이미지&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;29&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Brandon 응답: &quot;통합 테스트에는 조롱이 포함되어서는 안 되며 두 가지 유형의 테스트를 별도로 실행해야 합니다.&quot;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;컨트롤러에서 DB에 이르기까지 api를 테스트하고 다른 시스템(예: 카프카 또는 외부 마이크로서비스)을 제외하려면 어떻게 해야 합니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떻게 이를 달성하시겠습니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 @Mock Bean이 꼭 필요합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 콩을 조롱했지만 통합 테스트입니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;요약하자면(내 경험에 근거하여 그리고 며칠 동안 많은 모순되는 정보를 검색하고 읽은 후).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;제 의견은 이렇습니다.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;유닛 테스트에 스프링을 사용하는 것은 가급적 피하고 Mockito 또는 스프링 컨텍스트가 필요 없는 다른 프레임워크를 사용하십시오.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어 일부 계산 로직을 테스트하기 위해 서비스 클래스에 대한 테스트를 작성할 때 스프링 컨텍스트가 필요하지 않으며 이는 PURE 단위 테스트입니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;우리는 여전히 컨트롤러 클래스에 대한 PURE 단위 테스트를 작성할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;컨트롤러의 메소드를 호출한 다음 이러한 메소드가 예상대로 수행되었다고 주장하면 됩니다(예: 올바른 매개 변수로 올바른 기본 메소드 호출 등).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;기본적으로 서비스 클래스에 대한 단위 테스트를 작성할 때와 동일합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;(다음 유형의 테스트에서 이미 다루어진 경우에는 이러한 테스트가 필요하지 않을 수도 있습니다.)&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;34&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;우리는 여전히 아피스에 대한 순수 단위 테스트를 스프링 컨텍스트 없이 작성할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기에 &lt;a href=&quot;https://medium.com/@phoenixrising_93140/unit-testing-spring-rest-controllers-via-mock-mvc-eb74490ee7f0&quot; rel=&quot;noreferrer&quot; papago-id=&quot;34-1&quot;&gt;설명&lt;/a&gt;되어 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 노력했고 그것은 저에게 효과가 있었습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 게시물 끝에 코드를 붙여 놓겠습니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;35&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스프링 컨텍스트에서 테스트를 실행할 때는 @MockBean을 사용하는 경우에도 통합 테스트로 간주됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어 컨트롤러에서 DB까지 API를 테스트하고 다른 시스템(예: 카프카, 이메일 또는 기타 외부 마이크로서비스)은 제외합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;어떻게 이를 달성할 수 있을까요?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;우리는 @Mock Bean이 꼭 필요합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 일부 조롱당한 콩을 사용하더라도 통합 테스트입니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;p papago-id=&quot;36&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;36-2&quot;&gt;제&lt;/strong&gt;가 &lt;em papago-id=&quot;36-0&quot;&gt;생각하기&lt;/em&gt;에 가장 &lt;em papago-id=&quot;36-0&quot;&gt;혼란스러운 부분&lt;/em&gt;은 &lt;strong papago-id=&quot;36-2&quot;&gt;질문의 UserControllerTest처럼 스프링만을 사용&lt;/strong&gt;하여 &lt;em papago-id=&quot;36-0&quot;&gt;api 레이어를 테스트할 때입니다(&lt;/em&gt;즉, api를 호출하여 올바른 상태 코드와 응답 형식을 반환하도록 하는 것입니다).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것은 유닛 테스트로 간주됩니까, 아니면 통합 테스트로 간주됩니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;단위 테스트를 실행하는 데 스프링 컨텍스트가 필요하지 않기 때문에 단위가 아닙니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;실제로는 단위 테스트와 통합 테스트 사이에 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 소스는 이 개념을 매우 잘 설명합니다.&lt;a href=&quot;https://blog.marcnuri.com/mockmvc-spring-mvc-framework/&quot; papago-id=&quot;36-4&quot; rel=&quot;noreferrer&quot;&gt; &lt;/a&gt;https://blog.marcnuri.com/&lt;a href=&quot;https://blog.marcnuri.com/mockmvc-spring-mvc-framework/&quot; papago-id=&quot;36-4&quot; rel=&quot;noreferrer&quot;&gt;mockmvc-spring-mvc-framework&lt;/a&gt;/ (더 구체적으로 MockMvc 독립 실행형 설정) 그래서, 제 생각에, 이 테스트들을 어디에 둘지는 (유닛 테스트 폴더, 통합 테스트 폴더, 별도의 폴더) 팀으로 거슬러 올라갑니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 동일한 클래스에 대한 순수 단위 테스트 또는 순수 통합 테스트와 혼동을 피하기 위해 좋은 명명 규칙을 사용해야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;제가 본 바로는 대부분의 팀들이 유닛 테스트를 고려하지만, 그게 최선의 방법인지는 잘 모르겠습니다!&lt;/font&gt;&lt;/p&gt; &lt;pre&gt;&lt;code&gt;//unit test to call an api using MockMvc and mockito only
@RunWith(MockitoJUnitRunner.class)
public class UserControllerTest {

private MockMvc mockMvc;
@Mock
UserService userService;
@InjectMocks
UserController controllerUnderTest;

@Before
public void setup() {
    MockitoAnnotations.initMocks(this);
    mockMvc = MockMvcBuilders.standaloneSetup(controllerUnderTest).build();
}

@Test
public void testGetUser() throws Exception {

    //given:
    when(userService.getUser(.......)).thenReturn(....);

    //when:
    String url = &quot;http://localhost:8081/api/ ....your url&quot;;

    //then:
    this.mockMvc.perform(get(url)).andDo(print()).andExpect(status().isOk());
}
&lt;/code&gt;&lt;/pre&gt; &lt;p papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;}&lt;/font&gt;&lt;/p&gt;&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그게 도움이 되길 바라며, 제가 그것 때문에 많이 힘들었기 때문에 더 좋은 의견이 있으면 알려주세요 :)&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;em papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;유닛 테스트는 실행이 시작되기 전에 통합 테스트가 Spring 웹 컨텍스트 부트스트랩을 테스트하는 동안 독립적으로 실행됩니다.&lt;/font&gt;&lt;/em&gt; &lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;40&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;유닛 테스트&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;독립적으로 실행하려면 테스트 중인 클래스를 기준으로 종속성을 조롱해야 하는 경우가 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이를 통해 서비스 또는 도메인 계층의 오버헤드에 대해 걱정할 필요 없이 매우 구체적인 테스트 사례를 엔드 투 엔드로 테스트할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 Mockito 또는 보다 구체적으로, Mockito.mock() 메서드를 사용하여 객체 클래스를 모킹하고 @MockBean과 같은 웹 컨텍스트의 객체를 대체하지 않습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;42&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;통합 테스트&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;반면, 통합 테스트는 데이터베이스와 같은 애플리케이션의 여러 계층을 통합하는 데 중점을 둡니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;데이터베이스와 관련하여 대부분의 사람들은 도메인 계층/저장소를 테스트하기 위해 H2와 같은 메모리 내 데이터베이스를 사용합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;통합 테스트에는 조롱이 포함되지 않아야 하며 두 가지 유형의 테스트를 별도로 실행해야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 통합 테스트에 조롱이 포함될 수 없다는 뜻은 아니지만, 조롱된 종속성을 포함하는 응용 프로그램의 다양한 계층을 테스트하는 분리된 단위 테스트가 이미 있기 때문에 일반적이지 않습니다!&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;44&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;E2E 테스트&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;45&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;애플리케이션을 엔드 투 엔드로 테스트하는 경우 적절한 정리를 통해 데이터 이외의 다른 데이터를 조롱하지 않는 것이 좋습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;오이와 같은 테스트 프레임워크는 엔드 투 엔드 테스트에 매우 적합합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이미 그런 유형의 테스트에 대한 단위 테스트가 있는데 왜 다른 계층을 조롱합니까!&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;46&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;리소스: https://www.baeldung.com/&lt;a href=&quot;https://www.baeldung.com/java-spring-mockito-mock-mockbean&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;46-3&quot;&gt;spring-boot-testing&lt;/a&gt; 및 https://www.baeldung.com/java-spring-mockito-mock-mockbean&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;47&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/54658563/&lt;a href=&quot;https://stackoverflow.com/questions/54658563/unit-test-or-integration-test-in-spring-boot&quot; target=&quot;_blank&quot; papago-id=&quot;47-1&quot;&gt;unit-test-or-integration-test-in-spring-boot&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/553</guid>
      <comments>https://kingscode.tistory.com/553#entry553comment</comments>
      <pubDate>Thu, 20 Jul 2023 22:59:22 +0900</pubDate>
    </item>
    <item>
      <title>SQL로 크리스마스 트리를 인쇄하려면 어떻게 해야 합니까?</title>
      <link>https://kingscode.tistory.com/552</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;SQL로 크리스마스 트리를 인쇄하려면 어떻게 해야 합니까?&lt;/font&gt;&lt;/h2&gt;
&lt;div&gt; 
 &lt;aside class=&quot;s-notice s-notice__info post-notice js-post-notice mb16&quot; role=&quot;status&quot;&gt; 
  &lt;div class=&quot;d-flex fd-column fw-nowrap&quot;&gt; 
   &lt;div class=&quot;d-flex fw-nowrap&quot;&gt; 
    &lt;div class=&quot;flex--item wmn0 fl1 lh-lg&quot;&gt; 
     &lt;div class=&quot;flex--item fl1 lh-lg&quot;&gt; 
      &lt;div papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;
&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;b papago-id=&quot;1-1&quot;&gt;닫힘.&lt;/b&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 질문은&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;/help/closed-questions&quot; papago-id=&quot;1-3&quot;&gt;재현&lt;/a&gt;할 수 &lt;a href=&quot;/help/closed-questions&quot; papago-id=&quot;1-3&quot;&gt;없거나 오타로 인해 발생&lt;/a&gt;했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;현재 답변을 수락하고 있지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;      &lt;/font&gt;&lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;hr class=&quot;my12 outline-none baw0 bb bc-powder-400&quot;&gt; 
  &lt;div class=&quot;fw-nowrap fc-black-600&quot;&gt; 
   &lt;div class=&quot;d-flex fd-column lh-md&quot;&gt; 
    &lt;div class=&quot;mb0 d-flex&quot;&gt; 
     &lt;div class=&quot;flex--item mr8&quot;&gt; 
      &lt;svg aria-hidden=&quot;true&quot; class=&quot;svg-icon iconLightbulb&quot; width=&quot;18&quot; height=&quot;18&quot; viewBox=&quot;0 0 18 18&quot;&gt;
       &lt;path d=&quot;M15 6.38A6.48 6.48 0 0 0 7.78.04h-.02A6.49 6.49 0 0 0 2.05 5.6a6.31 6.31 0 0 0 2.39 5.75c.49.39.76.93.76 1.5v.24c0 1.07.89 1.9 1.92 1.9h2.75c1.04 0 1.92-.83 1.92-1.9v-.2c0-.6.26-1.15.7-1.48A6.32 6.32 0 0 0 15 6.37ZM4.03 5.85A4.49 4.49 0 0 1 8 2.02a4.48 4.48 0 0 1 5 4.36 4.3 4.3 0 0 1-1.72 3.44c-.98.74-1.5 1.9-1.5 3.08v.1H7.2v-.14c0-1.23-.6-2.34-1.53-3.07a4.32 4.32 0 0 1-1.64-3.94ZM10 18a1 1 0 0 0 0-2H7a1 1 0 1 0 0 2h3Z&quot;&gt;&lt;/path&gt;
      &lt;/svg&gt; 
     &lt;/div&gt; 
     &lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 질문은 오타 또는 더 이상 재현할 수 없는 문제로 인해 발생했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;비슷한 질문들이 &lt;a href=&quot;/help/on-topic&quot; papago-id=&quot;2-1&quot;&gt;여기&lt;/a&gt;서 주제가 될 수 있지만, 이 질문은 미래의 독자들에게 도움이 될 가능성이 낮은 방식으로 해결되었습니다.&lt;/font&gt;&lt;/p&gt; 
    &lt;/div&gt; 
    &lt;div class=&quot;mb0 mt6 d-flex&quot;&gt; 
     &lt;p class=&quot;ml24 pl2&quot; papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;span class=&quot;relativetime&quot; papago-id=&quot;3-1&quot; title=&quot;2020-12-240 08:38:11Z&quot; papago-attr-id=&quot;1&quot;&gt;2년&lt;/span&gt; 전에 &lt;span class=&quot;relativetime&quot; papago-id=&quot;3-1&quot; title=&quot;2020-12-240 08:38:11Z&quot; papago-attr-id=&quot;2&quot;&gt;문&lt;/span&gt;을 닫았습니다.&lt;/font&gt;&lt;/p&gt; 
    &lt;/div&gt; 
    &lt;div class=&quot;ml24 pl2&quot;&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
  &lt;div class=&quot;mt24 d-flex gsx gs8&quot;&gt; 
   &lt;a class=&quot;s-btn s-btn__outlined flex--item js-post-notice-edit-post&quot; href=&quot;/posts/65434426/edit&quot; papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 질문을 개선합니다.&lt;/font&gt;&lt;/a&gt; 
  &lt;/div&gt; 
 &lt;/aside&gt; 
&lt;/div&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;글쎄요, 이것은 심각한 문제가 아닙니다. 하지만 2020년 이후 우리 대부분은 약간의 여유가 필요했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;즐기세요...&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 xterm 또는 Windows 10 명령 창을 실행하면 트리가 인쇄되고 조명이 무작위로 분산되며 물론 사랑스러운 전체 색상으로 표시됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;행복한 설날 보내요, 모두들!&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;set lines 350 pagesize 0
clear screen
select replace(replace(replace(r,'X',chr(27)||'[42m'||chr(27)||'[1;'||to_char(32)||'m'||'X'||chr(27)||'[0m'),
    'T',chr(27)||'[43m'||chr(27)||'[1;'||to_char(33)||'m'||'T'||chr(27)||'[0m'),
    '@',chr(27)||'[33m'||chr(27)||'[1;'||to_char(31)||'m'||'@'||chr(27)||'[0m')
from ( select lpad(' ',20-e-i)|| case when dbms_random.value &amp;lt; 0.3 then substr(s,1,e*2-3+i*2) 
       else substr(substr(s,1,dbms_random.value(1,e*2-3+i*2-1))||'@'||s,1,e*2-3+i*2) end r
from ( select rpad('X',40,'X') s,rpad('T',40,'T') t from dual ) , 
( select level i, level+2 hop from dual connect by level &amp;lt;= 4 ) , lateral
( select level e from dual connect by level &amp;lt;= hop ) union all select lpad(' ',17)||substr(t,1,3)
from ( select rpad('X',40,'X') s,rpad('T',40,'T') t from dual ) connect by level &amp;lt;= 5 );
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/0DcuX.png&quot; rel=&quot;noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/0DcuX.png&quot; alt=&quot;enter image description here&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기 MSSQL로 크리스마스 트리를 그리는 코드가 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;DECLARE @g TABLE (g GEOMETRY, ID INT IDENTITY(1,1));



-- Adjust Color

INSERT INTO @g(g) SELECT TOP 29 CAST('POLYGON((0 0, 0 0.0000001, 0.0000001 0.0000001, 0 0))' as geometry) FROM sys.messages;

-- Build Christmas Tree

INSERT INTO @g(g) VALUES (CAST('POLYGON((0 0,900 0,450 400, 0 0 ))' as geometry).STUnion(CAST('POLYGON((80 330,820 330,450 640,80 330 ))' as geometry)).STUnion(CAST('POLYGON((210 590,690 590,450 800, 210 590 ))' as geometry)));

-- Adjust Color

INSERT INTO @g(g) SELECT TOP 294 CAST('POLYGON((0 0, 0 0.0000001, 0.0000001 0.0000001, 0 0))' as geometry) FROM sys.messages;

-- Build a Star

INSERT INTO @g(g) VALUES (CAST('POLYGON ((450 910, 465.716 861.631, 516.574 861.631, 475.429 831.738, 491.145 783.369, 450 813.262, 408.855 783.369, 424.571 831.738, 383.426 861.631, 434.284 861.631, 450 910))' as geometry));

-- Build Colored Balls

INSERT INTO @g(g) SELECT TOP 2 CAST('POLYGON((0 0, 0 0.0000001, 0.0000001 0.0000001, 0 0))' as geometry) FROM sys.messages;

INSERT INTO @g(g) VALUES (CAST('CURVEPOLYGON (CIRCULARSTRING (80 290, 110 320, 140 290, 110 260, 80 290))' as geometry));

INSERT INTO @g(g) SELECT TOP 2 CAST('POLYGON((0 0, 0 0.0000001, 0.0000001 0.0000001, 0 0))' as geometry) FROM sys.messages;

INSERT INTO @g(g) VALUES (CAST('CURVEPOLYGON (CIRCULARSTRING (760 290, 790 320, 820 290, 790 260, 760 290))' as geometry));

INSERT INTO @g(g) SELECT TOP 3 CAST('POLYGON((0 0, 0 0.0000001, 0.0000001 0.0000001, 0 0))' as geometry) FROM sys.messages;

INSERT INTO @g(g) VALUES (CAST('CURVEPOLYGON (CIRCULARSTRING (210 550, 240 580, 270 550, 240 520, 210 550))' as geometry));

INSERT INTO @g(g) SELECT TOP 46 CAST('POLYGON((0 0, 0 0.0000001, 0.0000001 0.0000001, 0 0))' as geometry) FROM sys.messages;

INSERT INTO @g(g) VALUES (CAST('CURVEPOLYGON (CIRCULARSTRING (630 550, 660 580, 690 550, 660 520, 630 550))' as geometry));



SELECT g FROM @g ORDER BY ID;

GO
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;공간 결과 출력&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href=&quot;https://i.stack.imgur.com/7Z40H.png&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;img src=&quot;https://i.stack.imgur.com/7Z40H.png&quot; alt=&quot;enter image description here&quot;&gt;&lt;/a&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 연습에서는 다음 공간 데이터와 방법을 사용했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;POLYGON - 2-Dimensional&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;표면적(&quot;트리&quot;, &quot;별&quot; 및 &quot;색상 조정&quot; 영역)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;CIRCULARSTRING&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;원형 호 세그먼트 모음(볼 원)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;CURVEPOLYGON&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;링(&quot;컬러 볼&quot;)으로 정의된 2차원 표면적.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;STUnion - 두 지오메트리 인스턴스를 결합하는 방법입니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;도면은 다음 단계에 따라 작성되었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;트리의 색상을 조정했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 SSMS 팔레트에서 30번째 색상을 얻기 위해 29개의 더미 삼각형을 그립니다. 이것은 일종의 녹색입니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;빌드 3&lt;/font&gt;&lt;/font&gt;&lt;code&gt;POLYGON&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;삼각형을 조합합니다.&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;18&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;별의 금색을 얻기 위해 다른 색 조정을 했습니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;빌드됨&lt;/font&gt;&lt;/font&gt;&lt;code&gt;POLYGON&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;별 모양으로&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;각각 앞에 색상 조정이 있는 네 개의 색상 원을 작성합니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;스크립트를 실행합니다.&lt;/font&gt;&lt;/li&gt; 
 &lt;li&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;전환&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&quot;Spatial Result&quot;&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;SSMS의 탭&lt;/font&gt;&lt;/font&gt;&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;행복한 설날 보내요, 모두들!&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p papago-id=&quot;26&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/65434426/&lt;a href=&quot;https://stackoverflow.com/questions/65434426/how-do-i-print-out-a-christmas-tree-with-sql&quot; target=&quot;_blank&quot; papago-id=&quot;26-1&quot;&gt;how-do-i-print-out-a-christmas-tree-with-sql&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/552</guid>
      <comments>https://kingscode.tistory.com/552#entry552comment</comments>
      <pubDate>Thu, 20 Jul 2023 22:54:56 +0900</pubDate>
    </item>
    <item>
      <title>명령 프롬프트에서 SELECT 쿼리의 출력을 어떻게 확인합니까?</title>
      <link>https://kingscode.tistory.com/551</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;명령 프롬프트에서 SELECT 쿼리의 출력을 어떻게 확인합니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;1&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;나는 간단한 것을 실행했습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;select&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;명령 프롬프트에서 쿼리하지만 출력 행이 한 줄로 오지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;아래 참조:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SQL&amp;gt; set pagesize 2000
SQL&amp;gt; select * from xtern_empl_rpt ;

EMP LAST_NAME
--- --------------------------------------------------
FIRST_NAME                                         SSN
-------------------------------------------------- ---------
EMAIL_ADDR
--------------------------------------------------------------------------------

YEARS_OF_SERVICE
----------------
001 Hutt
Jabba                                              896743856
jabba@thecompany.com
              18

002 Simpson
Homer                                              382947382
homer@thecompany.com
              20

003 Kent
Clark                                              082736194
superman@thecompany.com
               5

004 Kid
Billy                                              928743627
billythkid@thecompany.com
               9

005 Stranger
Perfect                                            389209831
nobody@thecompany.com
              23

006 Zoidberg
Dr                                                 094510283
crustacean@thecompany.com
               1


6 rows selected.

SQL&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;각 행을 한 줄로 만드는 것을 도와주시겠습니까?&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;em&gt;&lt;strong papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;편집&lt;/font&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;아래를 시도해 보았지만, 아직도 예쁘게 나오지 않았습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SQL&amp;gt; SET LINESIZE 4000
SQL&amp;gt; select * from xtern_empl_rpt ;

EMP LAST_NAME                                          FIRST_NAME
                          SSN       EMAIL_ADDR
                                                         YEARS_OF_SERVICE
--- -------------------------------------------------- -------------------------
------------------------- --------- --------------------------------------------
-------------------------------------------------------- ----------------
001 Hutt                                               Jabba
                          896743856 jabba@thecompany.com
                                                                       18
002 Simpson                                            Homer
                          382947382 homer@thecompany.com
                                                                       20
003 Kent                                               Clark
                          082736194 superman@thecompany.com
                                                                        5
004 Kid                                                Billy
                          928743627 billythkid@thecompany.com
                                                                        9
005 Stranger                                           Perfect
                          389209831 nobody@thecompany.com
                                                                       23
006 Zoidberg                                           Dr
                          094510283 crustacean@thecompany.com
                                                                        1

6 rows selected.

SQL&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;열 너비를 화면에 맞게 설정&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;column EMAIL_ADDR format a30 
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기서 a는 열 너비입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;WRA를 사용하여 열을 감쌀 수 있습니다(예:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;column EMAIL_ADDR format a30 WRA
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;9&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;TRU&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;10&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;자르기,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;WOR&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;11&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;단어의 경계를 깨다&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SQL&amp;gt; select * from emp;

        ID FIRST_NAME
---------- ------------------------------
LAST_NAME
------------------------------
EMAIL_ADDR
--------------------------------------------------
         1 Dazza
Smith
d_dazzal@dazzal.com
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 email_addr이 300자로 패딩되었기 때문에 출력을 읽기가 조금 까다롭습니다(제 표에서는 sql*plus가 출력을 포맷하는 데 사용하는 varchar2(300)로 정의되었습니다).&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;먼저 적절한 라인 크기를 설정합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;   SQL&amp;gt; set linesize 100 
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이제 한 줄에 맞도록 열을 설정합니다(라인 크기는 총 열 너비보다 커야 함).&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;   SQL&amp;gt; column email_addr format a30 
   SQL&amp;gt; column last_name format a20 
   SQL&amp;gt; column first_name format a20 
   SQL&amp;gt; select * from emp;

            ID FIRST_NAME           LAST_NAME            EMAIL_ADDR
    ---------- -------------------- -------------------- ------------------------------
             1 Dazza                Smith                d_dazzal@dazzal.com
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서 이제 기둥들은 적당한 크기의 단자에 쉽게 들어맞습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신의 경우에는&lt;/font&gt;&lt;/font&gt;&lt;code&gt;first_name&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;18&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;last_name&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;19&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;varchar2(50)이지만 그 안에 있는 데이터는 훨씬 더 작기 때문에 저는 먼저 시작하겠습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;column first_name format a15&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(last_name도 동일).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이메일로, 당신의 컬럼은 varchar2(100)이지만 최대 크기 출력은 25자였습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;column email format a25&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;우선 첫째로&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 경우 다음과 같은 출력이 표시됩니다(라인 크기가 충분히 큰 경우).&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SQL&amp;gt; select * from xtern_empl_rpt ;

EMP LAST_NAME       FIRST_NAME     SSN       EMAIL_ADDR                YEARS_OF_SERVICE
--- --------------- -------------- --------- ------------------------- ----------------
001 Hutt            Jabba          896743856 jabba@thecompany.com      18
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;23&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;요망대로&lt;/font&gt;&lt;/font&gt;&lt;code&gt;WRA&lt;/code&gt; &lt;code&gt;TRU&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;24&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;WOR&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;25&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;WRA&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;26&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기본값이므로 사용할 필요는 없지만 다음과 같이 설정합니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SQL&amp;gt; select * from test;

A
--------------------------------------
THIS IS A SIMPLE WRAPPING TEST
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;27&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 나는 이것을 10자 너비로 포맷하고 싶었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;S&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;QL&amp;gt; col a format a10 WRA
SQL&amp;gt; select * from test;

A
----------
THIS IS A
SIMPLE WRA
PPING TEST
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그&lt;/font&gt;&lt;/font&gt;&lt;code&gt;WRA&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;29&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;즉, 단어 중간에 있든 없든 상관없이 문자열을 10자로 자릅니다. 단어 끝 부분만 끊으려면(가능하면 단어 &amp;gt; 10자는 끊어야 함):&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SQL&amp;gt; col a format a10 WOR
SQL&amp;gt; select * from test;

A
----------
THIS IS A
SIMPLE
WRAPPING
TEST
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이제 출력은 단어 경계에서 깨지고 반드시 10자로 깨지는 것은 아닙니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;31&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;만약 우리가 처음 10자만 원했고 줄바꿈은 하지 않았으면, 우리는 사용할 수 있었습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;TRU&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;32&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SQL&amp;gt; col a format a10 TRU
SQL&amp;gt; select * from test;

A
----------
THIS IS A
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이렇게 하면 문제가 해결됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;set wrap off 
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;34&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;다음과 같은 방법을 사용해 보십시오.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SET LINESIZE 120
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;35&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(조정)&lt;/font&gt;&lt;/font&gt;&lt;code&gt;120&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;36&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;필요한 최대 너비까지.)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;선택 쿼리를 실행하기 전에 다음 쿼리를 실행하여 선택 쿼리의 출력을 CSV 형식으로 가져옵니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러면 출력이 CSV 형식으로 표시됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;마크업 csv를 설정합니다;&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt;&lt;p papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/14547501/&lt;a href=&quot;https://stackoverflow.com/questions/14547501/how-to-prettify-the-output-coming-from-the-select-query-in-command-prompt&quot; target=&quot;_blank&quot; papago-id=&quot;39-1&quot;&gt;how-to-prettify-the-output-coming-from-the-select-query-in-command-prompt&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/551</guid>
      <comments>https://kingscode.tistory.com/551#entry551comment</comments>
      <pubDate>Thu, 20 Jul 2023 22:53:46 +0900</pubDate>
    </item>
    <item>
      <title>Oracle이 WITH 절에 alias_name이 동일한 하위 쿼리를 여러 개 허용하는 이유는 무엇입니까?</title>
      <link>https://kingscode.tistory.com/550</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Oracle이 WITH 절에 alias_name이 동일한 하위 쿼리를 여러 개 허용하는 이유는 무엇입니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;약간 웃기게 보이지만 Oracle 11g는 실제로 그러한 쿼리를 실행할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;with
    a as (select 1 from dual),
    a as (select 2 from dual)
select  *
from    a;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;첫 번째 하위 쿼리(예: 1)의 결과를 반환합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;저는 그런 기능이 유용할 수 있는 상황을 상상할 수 없습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 경우 하위 쿼리를 복사/붙여넣은 후 이름을 바꾸는 것을 잊어버리고 전체 쿼리가 잘못된/예상치 못한 결과를 반환하는 경우 문제가 발생했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다행히 쿼리는 매우 간단했고 그 이유는 즉시 감지되었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;어쨌든, 저는 Oracle이 이러한 경우에는 예외를 둘 것으로 예상합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서, 제 질문은 그러한 행동이 특징인지 아니면 버그인지입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;기능이 있다면 어디에서 유용할 수 있습니까?&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;감사해요.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;em papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그런데 SQLite에서는 유사한 쿼리를 실행할 수 없으며 '테이블 이름이 있는 복제' 예외를 발생시킵니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;다른 DB 엔진은 아직 시도하지 않았습니다.&lt;/font&gt;&lt;/em&gt; &lt;/p&gt;&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;WITH 절은 함수와 함께 사용할 수도 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것이 11g과 함께 사용할 수 있었는지는 모르겠지만 12c와 함께 사용할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 이 &quot;&lt;strong papago-id=&quot;8-1&quot;&gt;버그&lt;/strong&gt;&quot;는 과부하 기능에 필요할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예를 들어, 이 절차에서는 동일한 입력/출력 데이터 유형으로 동일한 기능을 두 번 사용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;WITH 
   FUNCTION get_date(pid IN VARCHAR2) RETURN VARCHAR2 IS
BEGIN
RETURN 'date is '|| pid;
END;
  FUNCTION get_date(pid IN VARCHAR2) RETURN VARCHAR2 IS
BEGIN
RETURN 'date is '|| pid;
END;
SELECT get_date(cast(sysdate as varchar2(20)))
FROM   dual  
;
/
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예상대로 다음 오류가 반환됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;ORA-06553: PLS-305: previous use of 'GET_DATE' (at line 1) conflicts with this use
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 함수를 오버로드하여 이름은 같지만 매개 변수 유형이 다를 경우 작동합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이 절차는 오류 없이 실행되며 변수 데이터 유형에 따라 올바른 기능이 사용됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;WITH 
   FUNCTION get_date(pid IN VARCHAR2) RETURN VARCHAR2 IS
BEGIN
RETURN 'date is '|| pid;
END;
  FUNCTION get_date(pid IN DATE) RETURN VARCHAR2 IS
BEGIN
RETURN pid+1;
END;
SELECT 
get_date(cast(sysdate as varchar2(20))) /*example1*/
--get_date(sysdate)                    /*example2*/
FROM   dual  
;
/
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예 1 출력:&lt;/font&gt;&lt;/font&gt;&lt;code&gt;date is 16-MAR-17&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예 2 출력:&lt;/font&gt;&lt;/font&gt;&lt;code&gt;17-MAR-17&lt;/code&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 동일한 이름의 하위 쿼리를 사용할 수 있다는 것은 오버로드된 함수를 허용하는 것과 관련이 있을 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;아직 버그가 있는 것 같고 문서를 찾을 수가 없습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;유용하지는 않지만 오라클이 중복 열 이름을 처리하는 방식과 일치합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;16&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/39525004/&lt;a href=&quot;https://stackoverflow.com/questions/39525004/why-does-oracle-allow-having-several-subqueries-with-the-same-alias-name-in-a-wi&quot; target=&quot;_blank&quot; papago-id=&quot;16-1&quot;&gt;why-does-oracle-allow-having-several-subqueries-with-the-same-alias-name-in-a-wi&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/550</guid>
      <comments>https://kingscode.tistory.com/550#entry550comment</comments>
      <pubDate>Thu, 20 Jul 2023 22:52:56 +0900</pubDate>
    </item>
    <item>
      <title>오라클의 클라이언트와 cx_Oracle을 설치하지 않고 오라클 db에 액세스하려면 어떻게 해야 합니까?</title>
      <link>https://kingscode.tistory.com/549</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;오라클의 클라이언트와 cx_Oracle을 설치하지 않고 오라클 db에 액세스하려면 어떻게 해야 합니까?&lt;/font&gt;&lt;/h2&gt;
&lt;p papago-id=&quot;1&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Python 2.4와 2.6을 개별적으로 실행하는 두 개의 RHEL 서버가 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;액세스해야 하는 다른 서버에 Oracle 데이터베이스가 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;RHEL 서버에 cx_oracle을 설치하려고 했는데 Oracle 클라이언트를 먼저 설치해야 한다는 것을 알게 되었습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문제는 두 RHEL 서버 모두에 Oracle 클라이언트를 설치할 수 있는 권한이 없다는 것입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;동일한 서버에서 Perl 프로그램은 다음을 사용하여 Oracle db에 연결할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;DBI-&amp;gt;connect(&quot;dbi:Oracle:host=myhost.prod.com;sid=prddb&quot;,'username','password')
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;cx_oracle 및 Oracle 클라이언트를 설치하지 않고도 Python이 동일한 작업을 수행할 수 있습니까?&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;아니면 동일한 작업을 수행하기 위해 모듈을 직접 작성하는 방법에 대한 제안이 있습니까?&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;5&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;잘 부탁드립니다!&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;https://forum.omz-software.com/topic/184/oracle-database&lt;a href=&quot;https://forum.omz-software.com/topic/184/oracle-database&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;6-1&quot;&gt; &lt;/a&gt;에서 발췌:&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Oracle을 위한 순수한 python 클라이언트는 없으며 앞으로도 없을 것입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;SQL Alchemy와 같은 훌륭한 타사 툴셋도 Oracle 데이터베이스 서버와의 실제 통신을 위해 cx_Oracle을 사용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;--또한 Google이 결정한 바에 따르면, 현재로서는 순수한 Python Oracle 클라이언트가 존재하지 않는 것 같습니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;9&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;일반적으로 필요한 것은 도서관뿐이며, 도서관에는 반드시 sudo 권한이 필요하지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;소프트웨어가 읽을 수 있는 위치에 추출하고 그에 따라 다음 환경 변수를 설정합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;ORACLE_HOME=path/to/where/you/extracted/libs
TNS_ADMIN=path/to/tnsnames.ora
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;tns 이름을 건너뛰고 연결에서 호스트, 포트 등을 지정하는 것만으로도 다행이지만 cx_oracle에 필요할 가능성이 높습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;몇 년 전에 언제 사용했는지 기억이 안 나요.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;11-1&quot;&gt;cx_Oracle&lt;/strong&gt;을 사용하지 않으려면 expect 스크립팅을 사용해야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;(python pexpect의 경우).&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;하지만 모든 기대를 처리하기 위해서는 신중해야 합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/19142677/&lt;a href=&quot;https://stackoverflow.com/questions/19142677/how-do-i-access-an-oracle-db-without-installing-oracles-client-and-cx-oracle&quot; target=&quot;_blank&quot; papago-id=&quot;12-1&quot;&gt;how-do-i-access-an-oracle-db-without-installing-oracles-client-and-cx-oracle&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <author>kingscode</author>
      <guid isPermaLink="true">https://kingscode.tistory.com/549</guid>
      <comments>https://kingscode.tistory.com/549#entry549comment</comments>
      <pubDate>Thu, 20 Jul 2023 22:51:47 +0900</pubDate>
    </item>
  </channel>
</rss>