<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>telebox</title>
    <link>https://telebox.tistory.com/</link>
    <description>각종 프로그래밍 정보를 다루는 블로그입니다.</description>
    <language>ko</language>
    <pubDate>Fri, 12 Jun 2026 13:03:16 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>telebox</managingEditor>
    <item>
      <title>워드 프레스에서 CORS 사용</title>
      <link>https://telebox.tistory.com/720</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;워드 프레스에서 CORS 사용&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;워드프레스에서 CORS를 활성화하려고 하는데 이 코드 라인을 제 코드에 넣었습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;header.php&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;2&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파일&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;code&gt;header(&quot;Access-Control-Allow-Origin: *&quot;);&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;그런 다음 이 페이지 http://client.cors-api.appspot.com/client 를 통해 작동하는지 테스트했습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;대답은 다음과 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Fired XHR event: loadstart
Fired XHR event: readystatechange
Fired XHR event: error

XHR status: 0
XHR status text: 
Fired XHR event: loadend
&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;다음 행을 포함하여 Apache에서 CORS를 직접 활성화할 수도 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;Header set Access-Control-Allow-Origin &quot;*&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&gt;&lt;code&gt;&amp;lt;Directory&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;code&gt;&amp;lt;Location&amp;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;&amp;lt;Files&amp;gt;&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;&amp;lt;VirtualHost&amp;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;서버 구성의 섹션(일반적으로 httpd.conf 또는 apache.conf와 같은 *.conf 파일에 위치) 또는 .htaccess 파일 내에 있습니다.&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;https://enable-cors.org/server_apache.html 에서 오류 확인 및/또는 Apache 재부팅 방법을 비롯한 추가 정보&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;URL : https://stackoverflow.com/questions/17134414/enable-cors-in-wordpress&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <category>Wordpress</category>
      <author>telebox</author>
      <guid isPermaLink="true">https://telebox.tistory.com/720</guid>
      <comments>https://telebox.tistory.com/720#entry720comment</comments>
      <pubDate>Sun, 29 Oct 2023 19:13:24 +0900</pubDate>
    </item>
    <item>
      <title>잭슨이 역직렬화를 위해 노-아르그 컨스트럭터를 필요로 하는 시기는?</title>
      <link>https://telebox.tistory.com/719</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;strong papago-id=&quot;1-1&quot;&gt;그런지&lt;/strong&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;@Setter
@Getter
@AllArgsConstructor
public class UserDto {

    private String username;

    private String email;

    private String password;

    private String name;

    private String surname;

    private UserStatus status;

    private byte[] avatar;

    private ZonedDateTime created_at;
}
&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;TagDto:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@Setter
@Getter
@AllArgsConstructor
public class TagDto {

    private String tag;
}
&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;blockquote&gt; 
 &lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;com.fasterxml.jackson.databind.exc.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;MismatchInputException: TagDto 인스턴스를 구성할 수 없음(Creator가 하나 이상 존재함): Object 값에서 deserialize할 수 없음(Delegate- 또는 Property-based Creator 없음)&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;이 문제에 대한 해결책은 TagDto 클래스에 zero-arg constructor를 추가하는 것이었습니다.&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;왜 잭슨은 UserDto로 잘 작동하면서 TagDto에서 deserialization을 위해 no-arg constructor를 요구합니까?&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;pre&gt;&lt;code&gt;@Entity
@Setter
@Getter
@NoArgsConstructor
&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;그리고 모든 arg compactor를 갖습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;@Entity
@Setter
@Getter
@NoArgsConstructor
public class User extends AbstractModel {

    private String username;

    private String password;

    private String email;

    private String name;

    private String surname;

    private UserStatus status;

    @Lob
    private byte[] avatar;

    @Setter(AccessLevel.NONE)
    private ZonedDateTime created_at;

    public User(final String username, final String password, final String email, final String name, final String surname) {
        this.username = username;
        this.password = password;
        this.email = email;
        this.name = name;
        this.surname = surname;
        this.created_at = ZonedDateTime.now();
    }
}

@Entity
@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
public class Tag extends AbstractModel {

    private String tag;
}

@MappedSuperclass
@Getter
public abstract class AbstractModel {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;
}
&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;    @PostMapping(path = &quot;/add&quot;)
    public ResponseEntity&amp;lt;String&amp;gt; add(@Valid @RequestBody final D dto) {
        this.abstractModelService.add(dto);
        return new ResponseEntity&amp;lt;&amp;gt;(&quot;Success&quot;, HttpStatus.CREATED);
    }
    
    public void add(final D dto) {
    //CRUD repository save method
        this.modelRepositoryInterface.save(this.getModelFromDto(dto));
    }

    @Override
    protected Tag getModelFromDto(final TagDto tagDto) {
        return new Tag(tagDto.getTag());
    }

    @Override
    protected User getModelFromDto(final UserDto userDto) {
        return new User(userDto.getUsername(), userDto.getPassword(), userDto.getEmail(), userDto.getName(), userDto.getSurname());
    }

&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;JSON 구문 분석 시 오류 발생&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;{&quot;tag&quot;:&quot;example&quot;}
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;우체부 localhost를 통해 발송됨:8081/태그/추가, 반품&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;{
    &quot;timestamp&quot;: &quot;2020-09-26T18:50:39.974+00:00&quot;,
    &quot;status&quot;: 400,
    &quot;error&quot;: &quot;Bad Request&quot;,
    &quot;message&quot;: &quot;&quot;,
    &quot;path&quot;: &quot;/tag/add&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;저는 롬복 v1.18.12와 스프링부트 2.3.3을 사용하고 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;잭슨 v2.11.2와 함께 릴리즈.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;em papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;TL;DR: 해결책은 끝에 있습니다.&lt;/font&gt;&lt;/em&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;Jackson은 POJO를 만드는 여러 가지 방법을 지원합니다.&lt;/font&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;17&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;no-arg constructor를 사용하여 인스턴스를 만든 다음 setter 메서드를 호출하여 속성 값을 할당합니다.&lt;/font&gt;&lt;/p&gt; &lt;pre class=&quot;lang-java prettyprint-override&quot;&gt;&lt;code&gt;public class Foo {
    private int id;

    public int getId() { return this.id; }

    @JsonProperty
    public void setId(int id) { this.id = id; }
}
&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;/li&gt; 
 &lt;li&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 class=&quot;lang-java prettyprint-override&quot;&gt;&lt;code&gt;public class Foo {
    private int id;

    @JsonCreator
    public Foo(@JsonProperty(&quot;id&quot;) int id) {
        this.id = id;
    }

    public int getId() {
        return this.id;
    }
}
&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;@JsonProperty&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;-parameters&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;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;setter 메서드를 사용하여 옵션 속성을 설정할 수 있습니다.&lt;/font&gt;&lt;/p&gt; &lt;/li&gt; 
 &lt;li&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 class=&quot;lang-java prettyprint-override&quot;&gt;&lt;code&gt;public class Foo {
    private int id;

    @JsonCreator
    public static Foo create(@JsonProperty(&quot;id&quot;) int id) {
        return new Foo(id);
    }

    private Foo(int id) {
        this.id = id;
    }

    public int getId() {
        return this.id;
    }
}
&lt;/code&gt;&lt;/pre&gt; &lt;/li&gt; 
 &lt;li&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;다음을 사용하여 텍스트 값에서 인스턴스(instance(인스턴스)&lt;/font&gt;&lt;/font&gt;&lt;code&gt;String&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 class=&quot;lang-java prettyprint-override&quot;&gt;&lt;code&gt;public class Foo {
    private int id;

    @JsonCreator
    public Foo(String str) {
        this.id = Integer.parseInt(id);
    }

    public int getId() {
        return this.id;
    }

    @JsonValue
    public String asJsonValue() {
        return Integer.toString(this.id);
    }
}
&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;이것은 POJO가 단순한 텍스트 표현을 가질 때 유용합니다. 예를 들어,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;LocalDate&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;6&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;는 3가지 속성을 가진 POJO입니다(&lt;/font&gt;&lt;/font&gt;&lt;code&gt;year&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;month&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;dayOfMonth&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;yyyy-MM-dd&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://fasterxml.github.io/jackson-annotations/javadoc/2.8/com/fasterxml/jackson/annotation/JsonValue.html&quot; papago-id=&quot;32-1&quot; rel=&quot;noreferrer&quot;&gt;&lt;code papago-id=&quot;32-1-0&quot;&gt;@JsonValue&lt;/code&gt;&lt;/a&gt; 직렬화 시 사용할 방법을 식별하고,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@JsonCreator&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;역직렬화 시 사용할 시공자/공장-method을 식별합니다.&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;em papago-id=&quot;34-0&quot;&gt;참고:&lt;/em&gt; 다음 이외의 JSON 값을 사용한 단일 값 구성에도 사용할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;String&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, 하지만 그것은 매우 드뭅니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;/li&gt; 
&lt;/ol&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;네, 그게 배경 정보였어요.&lt;/font&gt;&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;UserDto&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;@JsonCreator&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;@JsonProperty&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&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;TagDto&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;em papago-id=&quot;41-1&quot;&gt;논항&lt;/em&gt; 생성자만 존재하므로 잭슨은 해당 생성자를 유형 #2가 아닌 유형 #4(위의 제 목록에서)로 분류합니다.&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;즉, POJO가 값 클래스가 될 것으로 예상되며, 여기서 엔클로저 객체의 JSON이 될 것입니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;{ ..., &quot;tag&quot;: &quot;value&quot;, ... }&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;,것은 아니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;{ ..., &quot;tag&quot;: {&quot;tag&quot;: &quot;example&quot;}, ... }&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font 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;이 문제를 해결하려면 Jackson에게 다음을 지정하여 생성자가 값 유형 생성자(#4)가 아닌 속성 초기화 생성자(#2)임을 알려주어야 합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;@JsonProperty&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;p papago-id=&quot;47&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;즉, Lombok에서 생성자를 생성하도록 할 수 없습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre class=&quot;lang-java prettyprint-override&quot;&gt;&lt;code&gt;@Setter
@Getter
public class TagDto {

    private String tag;

    public TagDto(@JsonProperty(&quot;tag&quot;) String tag) {
        this.tag = tag;
    }
}
&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;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/64080983/when-does-jackson-require-no-arg-constructor-for-deserialization&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <category>spring-boot</category>
      <author>telebox</author>
      <guid isPermaLink="true">https://telebox.tistory.com/719</guid>
      <comments>https://telebox.tistory.com/719#entry719comment</comments>
      <pubDate>Sun, 29 Oct 2023 19:13:18 +0900</pubDate>
    </item>
    <item>
      <title>Oracle에서 &amp;quot;Create Directory&amp;quot; 권한 부여</title>
      <link>https://telebox.tistory.com/718</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Oracle에서 &quot;Create Directory&quot; 권한 부여&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;나는 a를 운영하고 싶습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;CREATE DIRECTORY&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 10에서 쿼리를 수행하지만 권한 오류가 충분하지 않습니다.&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;http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_5007.htm#i2061958&quot; rel=&quot;noreferrer&quot; title=&quot;디렉토리 생성&quot; papago-id=&quot;4-1&quot; papago-attr-id=&quot;2&quot;&gt;Oracle 10gR2 설명서&lt;/a&gt;의 내용:&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;디렉토리를 만들려면 CREATEANY DIRECTORY 시스템 권한이 있어야 합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&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;SQL&amp;gt; GRANT CREATE ANY DIRECTORY TO vnz;

Grant succeeded
&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;ANY&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, 그들을 누구에게 허락할지 조심해야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이는 실제로 DBA에게 가장 적합한 강력한 특권입니다.&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;Oracle 문서에서:&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;&quot;디렉토리를 만들려면 모든 디렉터리 시스템 생성 권한이 있어야 합니다.&quot;&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;11&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그렇게,&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;userOfInterest에 디렉토리 생성을 허가합니다.&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;URL : https://stackoverflow.com/questions/1058756/granting-create-directory-privileges-in-oracle&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <category>Oracle</category>
      <author>telebox</author>
      <guid isPermaLink="true">https://telebox.tistory.com/718</guid>
      <comments>https://telebox.tistory.com/718#entry718comment</comments>
      <pubDate>Sun, 29 Oct 2023 19:13:08 +0900</pubDate>
    </item>
    <item>
      <title>버튼으로 div 표시/숨기기?</title>
      <link>https://telebox.tistory.com/717</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;버튼으로 div 표시/숨기기?&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;div&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;&amp;lt;div id=&quot;newpost&quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;순수 자바스크립트:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;var button = document.getElementById('button'); // Assumes element with id='button'

button.onclick = function() {
    var div = document.getElementById('newpost');
    if (div.style.display !== 'none') {
        div.style.display = 'none';
    }
    else {
        div.style.display = 'block';
    }
};
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;a href=&quot;http://jsfiddle.net/andrewwhitaker/hefGK/&quot; rel=&quot;noreferrer&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a href=&quot;http://jsfiddle.net/andrewwhitaker/hefGK/&quot; rel=&quot;noreferrer&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;/h3&gt;
&lt;p&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;strong papago-id=&quot;5-0&quot;&gt;jQuery&lt;/strong&gt;:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;$(&quot;#button&quot;).click(function() { 
    // assumes element with id='button'
    $(&quot;#newpost&quot;).toggle();
});
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;a href=&quot;http://jsfiddle.net/andrewwhitaker/KpFRb/&quot; rel=&quot;noreferrer&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a href=&quot;http://jsfiddle.net/andrewwhitaker/KpFRb/&quot; rel=&quot;noreferrer&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;/h3&gt;
&lt;p&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;a href=&quot;http://api.jquery.com/toggle/&quot; rel=&quot;noreferrer&quot; papago-id=&quot;7-1&quot;&gt;jQuery 토글&lt;/a&gt; 보기&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;8&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='content'&amp;gt;Hello World&amp;lt;/div&amp;gt;
&amp;lt;input type='button' id='hideshow' value='hide/show'&amp;gt;
&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;jQuery:&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;jQuery(document).ready(function(){
    jQuery('#hideshow').live('click', function(event) {        
         jQuery('#content').toggle('show');
    });
});
&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;jQuery 1.7 이상 버전의 경우&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;jQuery(document).ready(function(){
    jQuery('#hideshow').on('click', function(event) {        
        jQuery('#content').toggle('show');
    });
});
&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://jsfiddle.net/vVsAn/1/&quot; rel=&quot;noreferrer&quot; papago-id=&quot;11-1&quot;&gt;&lt;strong papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;데모&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;를 확인해 주시기 바랍니다.&lt;/font&gt;&lt;/p&gt;&lt;p&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;style&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-js prettyprint-override&quot;&gt;&lt;code&gt;myElement.style.display = someBoolState ? &quot;block&quot; : &quot;none&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;정말 나쁜 생각입니다. JS, jQuery, HTML, CSS의 몇 가지 예를 들어보겠습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;h1 papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;JavaScript &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/API/Element/classList&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;15-1&quot;&gt;.classList.toggle()&lt;/a&gt;&lt;/font&gt;&lt;/h1&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;const elToggle  = document.querySelector(&quot;#toggle&quot;);
const elContent = document.querySelector(&quot;#content&quot;);

elToggle.addEventListener(&quot;click&quot;, function() {
  elContent.classList.toggle(&quot;is-hidden&quot;);
});&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-css lang-css prettyprint-override&quot;&gt;&lt;code&gt;.is-hidden {
  display: none;
}&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-html lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;button id=&quot;toggle&quot;&amp;gt;TOGGLE&amp;lt;/button&amp;gt;
&amp;lt;div id=&quot;content&quot; class=&quot;is-hidden&quot;&amp;gt;Some content...&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&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;.is-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&gt;&lt;/font&gt;&lt;code&gt;block&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;table&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;flex&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, 아니면 뭐든.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;h1 papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;jQuery.toggle()&lt;/font&gt;&lt;/h1&gt; 
&lt;p&gt;&lt;a href=&quot;http://api.jquery.com/toggle/&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;code&gt;.toggle()&lt;/code&gt;&lt;sup&gt;&lt;em papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문서&lt;/font&gt;&lt;/em&gt;&lt;/sup&gt;&lt;/a&gt;&lt;br&gt; &lt;a href=&quot;http://api.jquery.com/fadetoggle/&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;code&gt;.fadeToggle()&lt;/code&gt;&lt;sup&gt;&lt;em papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문서&lt;/font&gt;&lt;/em&gt;&lt;/sup&gt;&lt;/a&gt;&lt;br&gt; &lt;a href=&quot;http://api.jquery.com/slidetoggle/&quot; rel=&quot;nofollow noreferrer&quot;&gt;&lt;code&gt;.slideToggle()&lt;/code&gt;&lt;sup&gt;&lt;em papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문서&lt;/font&gt;&lt;/em&gt;&lt;/sup&gt;&lt;/a&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;$(&quot;#toggle&quot;).on(&quot;click&quot;, function(){
  $(&quot;#content&quot;).toggle();                 // .fadeToggle() // .slideToggle()
});&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-css lang-css prettyprint-override&quot;&gt;&lt;code&gt;#content{
  display:none;
}&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;button id=&quot;toggle&quot;&amp;gt;TOGGLE&amp;lt;/button&amp;gt;
&amp;lt;div id=&quot;content&quot;&amp;gt;Some content...&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;h1 papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;jQuery - 토글&lt;/font&gt;&lt;/h1&gt; 
&lt;p&gt;&lt;code&gt;.toggle()&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;display&lt;/code&gt; &lt;code&gt;&quot;block&quot;/&quot;none&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;가치&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; 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;$(&quot;#toggle&quot;).on(&quot;click&quot;, function(){
  $(&quot;#content&quot;).toggleClass(&quot;show&quot;);
});&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-css lang-css prettyprint-override&quot;&gt;&lt;code&gt;#content{
  display:none;
}
#content.show{
  display:block; /* P.S: Use `!important` if missing `#content` (selector specificity). */
}&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;button id=&quot;toggle&quot;&amp;gt;TOGGLE&amp;lt;/button&amp;gt;
&amp;lt;div id=&quot;content&quot;&amp;gt;Some content...&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;h1&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;28&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;HTML5 - 다음을 사용하여 토글&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;summary&amp;gt;&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;&amp;lt;details&amp;gt;&lt;/code&gt;&lt;/h1&gt; 
&lt;p papago-id=&quot;30&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(IE 및 Opera Mini에서 지원되지 않음)&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-html lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;details&amp;gt;
  &amp;lt;summary&amp;gt;TOGGLE&amp;lt;/summary&amp;gt;
  &amp;lt;p&amp;gt;Some content...&amp;lt;/p&amp;gt;
&amp;lt;/details&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;h1&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;31&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;HTML - 다음을 사용하여 토글&lt;/font&gt;&lt;/font&gt;&lt;code&gt;checkbox&lt;/code&gt;&lt;/h1&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-css lang-css prettyprint-override&quot;&gt;&lt;code&gt;[id^=toggle],
[id^=toggle] + *{
  display:none;
}
[id^=toggle]:checked + *{
  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;label for=&quot;toggle-1&quot;&amp;gt;TOGGLE&amp;lt;/label&amp;gt;

&amp;lt;input id=&quot;toggle-1&quot; type=&quot;checkbox&quot;&amp;gt;
&amp;lt;div&amp;gt;Some content...&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;h1&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;32&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;HTML - 다음을 사용하여 전환&lt;/font&gt;&lt;/font&gt;&lt;code&gt;radio&lt;/code&gt;&lt;/h1&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-css lang-css prettyprint-override&quot;&gt;&lt;code&gt;[id^=switch],
[id^=switch] + *{
  display:none;
}
[id^=switch]:checked + *{
  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;label for=&quot;switch-1&quot;&amp;gt;SHOW 1&amp;lt;/label&amp;gt;
&amp;lt;label for=&quot;switch-2&quot;&amp;gt;SHOW 2&amp;lt;/label&amp;gt;

&amp;lt;input id=&quot;switch-1&quot; type=&quot;radio&quot; name=&quot;tog&quot;&amp;gt;
&amp;lt;div&amp;gt;1 Merol Muspi...&amp;lt;/div&amp;gt;

&amp;lt;input id=&quot;switch-2&quot; type=&quot;radio&quot; name=&quot;tog&quot;&amp;gt;
&amp;lt;div&amp;gt;2 Lorem Ipsum...&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;h1&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;33&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;CSS - 스위치 사용&lt;/font&gt;&lt;/font&gt;&lt;code&gt;:target&lt;/code&gt;&lt;/h1&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;/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-css lang-css prettyprint-override&quot;&gt;&lt;code&gt;[id^=switch] + *{
  display:none;
}
[id^=switch]:target + *{
  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;a href=&quot;#switch1&quot;&amp;gt;SHOW 1&amp;lt;/a&amp;gt;
&amp;lt;a href=&quot;#switch2&quot;&amp;gt;SHOW 2&amp;lt;/a&amp;gt;

&amp;lt;i id=&quot;switch1&quot;&amp;gt;&amp;lt;/i&amp;gt;
&amp;lt;div&amp;gt;1 Merol Muspi ...&amp;lt;/div&amp;gt;

&amp;lt;i id=&quot;switch2&quot;&amp;gt;&amp;lt;/i&amp;gt;
&amp;lt;div&amp;gt;2 Lorem Ipsum...&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/pre&gt; 
 &lt;/div&gt; 
&lt;/div&gt; 
&lt;p&gt;&lt;/p&gt; 
&lt;hr&gt; 
&lt;h2 papago-id=&quot;35&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;클래스 전환 애니메이션&lt;/font&gt;&lt;/h2&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;36&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;JS / jQuery 중 하나를 선택하면 실제로 A를 전환할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;className&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;37&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;, 요소에 애니메이션 전환을 언제든지 추가할 수 있으며, 기본적인 예는 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;/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;const elToggle  = document.querySelector(&quot;#toggle&quot;);
const elContent = document.querySelector(&quot;#content&quot;);

elToggle.addEventListener(&quot;click&quot;, () =&amp;gt; {
  elContent.classList.toggle(&quot;is-hidden&quot;);
});&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-css lang-css prettyprint-override&quot;&gt;&lt;code&gt;#content {
  display: inline-flex; /* or whatever */
  transition: 0.6s;
}

.is-hidden {
  position: relative;
  visibility: hidden;
  opacity: 0;
  transform: scale(0);
}&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-html lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;button id=&quot;toggle&quot;&amp;gt;TOGGLE&amp;lt;/button&amp;gt;
&amp;lt;div id=&quot;content&quot; class=&quot;is-hidden&quot;&amp;gt;Some Togglable content...&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;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;&amp;lt;script&amp;gt;
  var toggle = function() {
  var mydiv = document.getElementById('newpost');
  if (mydiv.style.display === 'block' || mydiv.style.display === '')
    mydiv.style.display = 'none';
  else
    mydiv.style.display = 'block'
  }
&amp;lt;/script&amp;gt;

&amp;lt;div id=&quot;newpost&quot;&amp;gt;asdf&amp;lt;/div&amp;gt;
&amp;lt;input type=&quot;button&quot; value=&quot;btn&quot; onclick=&quot;toggle();&quot;&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;p papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;불투명하게 시도하기&lt;/font&gt;&lt;/p&gt; 
&lt;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-css lang-css prettyprint-override&quot;&gt;&lt;code&gt;div { transition: all 0.4s ease }
.hide { opacity: 0; }&lt;/code&gt;&lt;/pre&gt; 
  &lt;pre class=&quot;snippet-code-html lang-html prettyprint-override&quot;&gt;&lt;code&gt;&amp;lt;input onclick=&quot;newpost.classList.toggle('hide')&quot; type=&quot;button&quot; value=&quot;toggle&quot;&amp;gt;

&amp;lt;div id=&quot;newpost&quot;&amp;gt;Hello&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;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;클래스를 nothing으로 변경하면 디스플레이가 블록으로 변경되고 클래스를 'a'로 변경하면 디스플레이가 nothing으로 표시됩니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;style&amp;gt;
body  {
  background-color:#777777;
  }
block1{
  display:block; background-color:black; color:white; padding:20px; margin:20px;
  }
block1.a{
  display:none; background-color:black; color:white; padding:20px; margin:20px;
  }
&amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;button onclick=&quot;document.getElementById('ID').setAttribute('class', '');&quot;&amp;gt;Open&amp;lt;/button&amp;gt;
&amp;lt;button onclick=&quot;document.getElementById('ID').setAttribute('class', 'a');&quot;&amp;gt;Close&amp;lt;/button&amp;gt;
&amp;lt;block1 id=&quot;ID&quot; class=&quot;a&quot;&amp;gt;
&amp;lt;p&amp;gt;Testing&amp;lt;/p&amp;gt;
&amp;lt;/block1&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;script src=&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;script&amp;gt;
$(document).ready(function(){
$('#hideshow').click(function(){
    $('#content').toggle('show');
  });
});
&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;41&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그리고 html은&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;div id='content'&amp;gt;Hello World&amp;lt;/div&amp;gt;
&amp;lt;input type='button' id='hideshow' value='hide/show'&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;code&gt;mydiv.style.display === 'block' = (mydiv.style.display === 'block' ? 'none' : 'block');&lt;/code&gt;&lt;/p&gt;&lt;p papago-id=&quot;43&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/4528085/toggle-show-hide-div-with-button&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <category>jQuery</category>
      <author>telebox</author>
      <guid isPermaLink="true">https://telebox.tistory.com/717</guid>
      <comments>https://telebox.tistory.com/717#entry717comment</comments>
      <pubDate>Sun, 29 Oct 2023 19:13:02 +0900</pubDate>
    </item>
    <item>
      <title>업데이트 실행 중 SQL 업데이트가 하위 쿼리에 영향을 줍니까?</title>
      <link>https://telebox.tistory.com/716</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;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;update table join
    (select y, min(x) as MinX 
     from table
     group by y) as t1
    using (y)
set x = x - MinX
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;0&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;그 말은 그 변수가&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;x&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;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;x&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;strong papago-id=&quot;4-1&quot;&gt;이미 실행 중인 update 명령으로 수정&lt;/strong&gt;할 수 있지 &lt;strong papago-id=&quot;4-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;font class=&quot;papago-parent&quot;&gt;&lt;strong papago-id=&quot;4-3&quot;&gt;하지만&lt;/strong&gt; SQL &lt;strong papago-id=&quot;4-3&quot;&gt;데이터베이스는 어떻게 이것&lt;/strong&gt;을 할 것인가요&lt;strong papago-id=&quot;4-3&quot;&gt;?&lt;/strong&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;font class=&quot;papago-parent&quot;&gt;이 경우 정의된 동작이 무엇인지 알려줄 문서 또는 sql 표준의 스니펫을 가지고 싶습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;MySQL을 사용하고 있지만, 다른 PostgresQL, Oracle 등에서도 유효한 답변과 특히 &lt;strong papago-id=&quot;5-1&quot;&gt;SQL 표준에 대해서는 전반적&lt;/strong&gt;으로 감사드립니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;감사합니다!&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;6&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;** &lt;strong papago-id=&quot;6-1&quot;&gt;편집&lt;/strong&gt;됨 **&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;7&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;8&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://dev.mysql.com/doc/refman/5.0/en/from-clause-subqueries.html&quot; papago-id=&quot;8-1&quot; rel=&quot;noreferrer&quot;&gt;13.2.9.8부터.&lt;/a&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://dev.mysql.com/doc/refman/5.0/en/from-clause-subqueries.html&quot; papago-id=&quot;8-1&quot; rel=&quot;noreferrer&quot;&gt; FROM 조항의 하위 쿼리&lt;/a&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;FROM 절의 하위 쿼리는 스칼라, 열, 행 또는 테이블을 반환할 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;JOIN 작업의 ON 절에서 사용하지 않는 한 FROM 절의 하위 쿼리는 상관된 하위 쿼리가 될 수 없습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p papago-id=&quot;10&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예, 위의 쿼리를 수행할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;11&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;12&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;여기에는 정말 두 가지 문제가 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;동시성이 있습니다. 즉, 아무도 우리의 발밑에서 데이터를 변경하지 않도록 보장하는 것입니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;이것은 잠금으로 처리됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;새 값과 이전 값의 실제 수정에 대한 내용은 파생된 표를 사용하여 처리합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;잠금&lt;/font&gt;&lt;/strong&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;위의 쿼리의 경우 InnoDB에서 MySQL이 먼저 SELECT를 수행하고 테이블의 각 행에 대한 읽기(공유) 잠금을 개별적으로 획득합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;SELECT 문에 WHERE 절이 있는 경우 선택한 레코드만 잠기게 되며, 범위를 지정하면 공백도 잠기게 됩니다.&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;a href=&quot;http://dev.mysql.com/doc/refman/5.0/en/internal-locking.html&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;그런 다음 MySQL은 테이블의 각 레코드에 대한 쓰기(전용) 잠금을 개별적으로 획득합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;UPDATE 문에 WHERE 절이 있으면 특정 레코드만 기록 잠금이 되고, WHERE 절이 범위를 선택하면 범위가 잠깁니다.&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;이전 SELECT에서 읽기 잠금이 설정된 레코드는 자동으로 쓰기 잠금으로 확대됩니다.&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;a href=&quot;http://dev.mysql.com/doc/refman/5.0/en/internal-locking.html&quot; rel=&quot;noreferrer&quot; papago-id=&quot;18-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;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;a href=&quot;http://www.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;source=web&amp;amp;cd=1&amp;amp;ved=0CDgQFjAA&amp;amp;url=http://code.google.com/p/innotop/&amp;amp;ei=Lp-ET9a9N4_6ggfUypDfBw&amp;amp;usg=AFQjCNFokDHQXNb8OTM_d62fCB5N0UmkWQ&amp;amp;sig2=O6-gRmP-64PyEZkgiqNN2w&quot; rel=&quot;noreferrer&quot; papago-id=&quot;3-1&quot;&gt;Innotop&lt;/a&gt;을 사용하여 잠금 모드로 실행하고 트랜잭션을 시작하고 쿼리를 실행하면 Innotop에 잠금이 표시됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;또한 Innotop을 사용하지 않고도 자세한 내용을 볼 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;SHOW ENGINE INNODB STATUS&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;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;데드락&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;22&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;두 인스턴스가 동시에 실행된 경우 쿼리는 교착 상태에 취약합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;쿼리 A에 읽기 잠금이 있는 경우 쿼리 B에 읽기 잠금이 있는 경우 쿼리 A는 쓰기 잠금을 획득하기 전에 쿼리 B의 읽기 잠금이 해제될 때까지 기다려야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 쿼리 B는 완료될 때까지 읽기 잠금을 해제하지 않으며 쓰기 잠금을 획득할 수 없는 한 완료되지 않습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;쿼리 A와 쿼리 B는 교착 상태에 있으며 따라서 교착 상태에 빠집니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 메모리를 사용하고 성능에 영향을 미치는 방대한 양의 레코드 잠금을 방지하고 교착 상태를 방지하기 위해 명시적 테이블 잠금을 수행할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;24&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;내부 SELECT에서 SELECT ... FOR UPDATE를 사용하는 방법도 있습니다.&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;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;내부 SELECT의 경우 MySQL은 &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.0/en/from-clause-subqueries.html&quot; rel=&quot;noreferrer&quot; papago-id=&quot;26-1&quot;&gt;파생된 임시 테이블&lt;/a&gt;을 만듭니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;파생 테이블은 MySQL에서 자동으로 생성되는 임시 테이블에 있는 데이터의 실제 인덱스가 아닌 복사본입니다(사용자가 명시적으로 생성하고 인덱스를 추가할 수 있는 임시 테이블과는 반대).&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;MySQL은 파생 테이블을 사용하므로 질문에서 언급하는 임시 이전 값입니다.&lt;/font&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;/p&gt; 
&lt;p papago-id=&quot;28&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;도출된 테이블은 UPDATE 문(MySQL 5.6+에서 지원)에 대한 EXPRESON을 수행하여 볼 수 있습니다.&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;적절한 RDBMS는 다음을 사용합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;statement level read consistency&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;, 그러면 문장이 문장이 시작할 때의 데이터를 그대로(selects) 볼 수 있습니다.&lt;/font&gt;&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;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;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;8&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;롭.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Oracle은 11.2 &lt;a href=&quot;http://docs.oracle.com/cd/E11882_01/server.112/e25789/consist.htm#BABHFAIJ&quot; rel=&quot;nofollow&quot; papago-id=&quot;33-1&quot;&gt;설명서&lt;/a&gt;에 이 내용이 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&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;UPDATE 문의 WHERE 절에 포함된 쿼리와 같은 암시적 쿼리는 일관된 결과 집합을 보장합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그러나 암시적 쿼리의 각 문은 DML 문 자체에 의해 변경된 것을 보지 않고 변경되기 전의 데이터를 그대로 봅니다.&lt;/font&gt;&lt;/p&gt; 
&lt;/blockquote&gt;&lt;p papago-id=&quot;35&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;update Table1, 
       (select T2.y, MIN( T2.x ) as MinX from Table1 T2 group by T2.y ) PreQuery
  set Table1.x = Table1.x - PreQuery.MinX
  where Table1.y = PreQuery.y
&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;JOIN 대 쉼표 목록 버전을 사용하여 구문이 다른 경로로 이동하는지는 모르겠지만, 완료된 사전 쿼리에 의해 결과가 완료된 ONCE를 위해 먼저 적용되어야 하고, 실제로 업데이트를 수행하기 위해 (WHERE를 통해) 가입되어야 합니다.&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;37&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/10091788/will-sql-update-affect-its-subquery-during-the-update-run&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <category>Oracle</category>
      <author>telebox</author>
      <guid isPermaLink="true">https://telebox.tistory.com/716</guid>
      <comments>https://telebox.tistory.com/716#entry716comment</comments>
      <pubDate>Sun, 29 Oct 2023 19:12:53 +0900</pubDate>
    </item>
    <item>
      <title>파이썬 형식(f-string) 문자열에서 !r은 무엇을 의미합니까?</title>
      <link>https://telebox.tistory.com/715</link>
      <description>&lt;h2 papago-id=&quot;0&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;파이썬 형식(f-string) 문자열에서 !r은 무엇을 의미합니까?&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/38418070/what-does-r-do-in-str-and-repr&quot; dir=&quot;ltr&quot; papago-id=&quot;2&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;!r은 str()과 repr()에서 무엇을 합니까?&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;(2개 답변)&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;2017-06-28 11:17:15Z&quot; papago-attr-id=&quot;1&quot;&gt;6년 전&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;파이썬 3.6의 새로운 f 스트링들이 무엇을 하는지 이해하지만, 아래 코드 스니프에서 발견된 엔딩 !r은 어떻습니까?&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;def __repr__(self):
    return (f'Pizza({self.radius!r}, 'f'{self.ingredients!r})')
&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;repr&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;일반적으로 f-string을 사용하면 사용이 가능하기 때문에 f-string을 사용할 때마침 f-string을 사용할 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;repr(self.radius)&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;!r&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;repr&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;!s&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;str&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;!a&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;ascii&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;str.format&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;16&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;또는 f-strings와 함께 사용할 필요가 없습니다.&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;URL : https://stackoverflow.com/questions/44800801/in-python-format-f-string-strings-what-does-r-mean&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <category>Python</category>
      <author>telebox</author>
      <guid isPermaLink="true">https://telebox.tistory.com/715</guid>
      <comments>https://telebox.tistory.com/715#entry715comment</comments>
      <pubDate>Sun, 29 Oct 2023 19:12:46 +0900</pubDate>
    </item>
    <item>
      <title>기존 시퀀스가 아닌 시퀀스를 삭제하여 기존 사용자를 생성할 수 있습니다.</title>
      <link>https://telebox.tistory.com/714</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;시퀀스, 사용자 및 기타 객체를 생성/드롭하는 많은 sql 스크립트를 가지고 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;liquibebase를 통해 이 스크립트들을 실행하고 있지만 기존 시퀀스를 삭제하거나 기존 사용자를 생성하려고 하면 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;오류가 발생하는 것을 방지하기 위한 오라클 방법이 있습니까?&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;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 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;/blockquote&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;ul&gt; 
 &lt;li papago-id=&quot;7&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;plsql 스크립트 작성&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;/li&gt; 
 &lt;li papago-id=&quot;9&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;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;Liquibase에는 failOnError 특성이 있습니다. 실패 가능성이 있는 호출이 포함된 changeSets에서 false로 설정할 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;changeSet failOnError=&quot;false&quot;&amp;gt;
   &amp;lt;createSequence sequenceName=&quot;new_sequence&quot;/&amp;gt;
&amp;lt;/changeSet&amp;gt;
&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;이를 통해 간단한 create user, create sequence, drop user, drop sequence changeSets를 사용할 수 있으며 사용자/시퀀스가 존재/존재하지 않기 때문에 문에서 오류가 발생하면 run으로 표시되고 업데이트가 계속됩니다.&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;이 접근 방식의 단점은 이 접근 방식이 실행된 것으로 표시하고 다른 이유(잘못된 권한, 연결 실패, 잘못된 SQL 등)로 오류가 발생할 경우에도 계속 유지된다는 것입니다.&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;changeSet&amp;gt;
   &amp;lt;preconditions onFail=&quot;MARK_RAN&quot;&amp;gt;&amp;lt;not&amp;gt;&amp;lt;sequenceExists/&amp;gt;&amp;lt;/not&amp;gt;&amp;lt;/preconditions&amp;gt;
   &amp;lt;createSequence name=&quot;new_sequence&quot;/&amp;gt;
&amp;lt;/changeSet&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;현재 userExists 전제조건은 없지만 사용자 지정 전제조건을 만들거나 전제조건으로 되돌릴 수 있습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;문서는 http://www.liquibase.org/documentation/preconditions.html 참조&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;이와 유사한 함수 do_ddl을 작성하고 잡고 싶은 모든 예외를 잡습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;DECLARE
   allready_null EXCEPTION;
   PRAGMA EXCEPTION_INIT(allready_null, -1451);
BEGIN
   execute immediate 'ALTER TABLE TAB MODIFY(COL  NULL)';
EXCEPTION
   WHEN allready_null THEN
      null; -- handle the error
END;
/
&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;그냥 PL/SQL 익명 블록을 사용하고 싶습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;begin
   for x in (select sequence_name
             from   user_sequences
              where sequence_name in ('SEQ1','SEQ2' ... 'SEQn'))
   loop
      execute immediate 'drop sequence '||x.sequence_name;
   end loop;
end;
/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;17&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;액상 베이스 전제 조건이 기존 시퀀스를 확인하지 않았습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그래서 몇 번의 시도 끝에 간단하게 시도해 보았습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;lt;changeSet id=&quot;test-id&quot;&amp;gt;&amp;lt;sql&amp;gt; DROP SEQUENCE IF EXISTS &quot;TABLENAME_ID_seq&quot;; &amp;lt;/sql&amp;gt;&amp;lt;/changeSet&amp;gt;&lt;/code&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;제 경험으로는 Liquibase 3.5.1 동작을 기반으로 failOnError=&quot;false&quot;를 사용할 때 작업이 실패하면 changeSet이 'RAN'으로 기록되지 않습니다.&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;19&quot; papago-translate=&quot;translated&quot;&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;/blockquote&gt; 
&lt;p papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;예: 실행된 것으로 표시되지 않습니다!&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/1625567/prevent-error-when-dropping-not-existing-sequences-creating-existing-users&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <category>Oracle</category>
      <author>telebox</author>
      <guid isPermaLink="true">https://telebox.tistory.com/714</guid>
      <comments>https://telebox.tistory.com/714#entry714comment</comments>
      <pubDate>Sun, 29 Oct 2023 19:12:40 +0900</pubDate>
    </item>
    <item>
      <title>다른 페이지의 앵커 태그에 대한 앵커 링크가 작동하지 않음</title>
      <link>https://telebox.tistory.com/713</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&gt;&lt;br&gt; &lt;font papago-translate=&quot;splited&quot;&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;/font&gt;&lt;br&gt; &lt;font papago-translate=&quot;splited&quot;&gt;&lt;em papago-id=&quot;3&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;Uniserver를 사용하는 로컬 호스트에서 테스트하는 것은 물론 FTP가 아닌 회사 로컬 서버에서 호스팅되는 테스트 사이트 및 사전 프로덕션 사이트에서 테스트하는 것입니다.&lt;/font&gt;&lt;/em&gt;&lt;/font&gt;&lt;br&gt; &lt;font papago-translate=&quot;splited&quot;&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;/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;/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;/ul&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;&amp;lt;a id=&quot;anchorlink1&quot;&amp;gt;&amp;lt;/a&amp;gt;
&amp;lt;a href=&quot;http://fullurlhere/nbs-test-panel-of-diseases-2#anchorlink1&quot;&amp;gt;link text&amp;lt;/a&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;&amp;lt;a name=&quot;anchorlink1&quot;&amp;gt;&amp;lt;/a&amp;gt;
&amp;lt;a href=&quot;http://fullurlhere/nbs-test-panel-of-diseases-2#anchorlink1&quot;&amp;gt;link text&amp;lt;/a&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;그리고:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;a name=&quot;anchorlink1&quot;&amp;gt;&amp;lt;/a&amp;gt;
&amp;lt;a href=&quot;/nbs-test-panel-of-diseases-2#anchorlink1&quot;&amp;gt;link text&amp;lt;/a&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;a name=&quot;anchorlink1&quot;&amp;gt;&amp;lt;/a&amp;gt;
&amp;lt;a href=&quot;http://fullurlhere/nbs-test-panel-of-diseases-2/#anchorlink1&quot;&amp;gt;link text&amp;lt;/a&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;strong papago-id=&quot;11-0&quot;&gt;결과:&lt;/strong&gt; 사용자가 다른 페이지에 있는 앵커 링크를 클릭하면 주소 표시줄에 앵커 링크와 함께 전체 URL이 잠시 표시되고 앵커 링크는 제거되고 해당 페이지의 루트 URL만 표시됩니다.&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;1초 동안 표시:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;http://fullurlhere/nbs-test-panel-of-diseases-2#anchorlink1
&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;http://fullurlhere/nbs-test-panel-of-diseases-2
&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;ul&gt; 
 &lt;li papago-id=&quot;15&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;.httaccess 파일에서 이 코드를 주석으로 달았습니다: &lt;strong papago-id=&quot;15-1&quot;&gt;RewriteBase &lt;/strong&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;strong papago-id=&quot;16-1&quot;&gt;/&lt;/strong&gt;를 제거하기 위해 Settings/Permal링크를 업데이트했습니다.&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;Anchor Tags를 삽입하는 TinyMCE Plugin을 설치하여 정확하게 추가하고 있는지 확인합니다.&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;이름 대신 시도한 ID&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;앵커 태그를 H4 태그의 안쪽에서 바깥쪽, 문단 전후 및 앞과 바깥쪽으로 이동하여 효과가 있는지 확인하였습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;(그렇지 않음)&lt;/font&gt;&lt;/li&gt; 
 &lt;li papago-id=&quot;20&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;페이지가 아닌 페이지 내부에서 링크를 시도했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&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;전체 URL을 복사하여 주소 표시줄에 붙여 넣습니다.&lt;/font&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;font class=&quot;papago-parent&quot;&gt;앞에 #가 있는 것은 URL에서 간단히 제거되는 것 같습니다.&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;WordPress 테마를 기본 테마로 변경하여 문제가 발생하지 않았습니다.&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;이 문제는 다른 페이지에서 앵커 태그에 링크하는 경우에만 발생하는 것으로 보입니다.&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;strong papago-id=&quot;25-0&quot;&gt;이슈&lt;/strong&gt;를 jquery&lt;strong papago-id=&quot;25-0&quot;&gt;.jstree.js&lt;/strong&gt; 파일로 &lt;strong papago-id=&quot;25-0&quot;&gt;압축&lt;/strong&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 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;/p&gt; 
&lt;pre&gt;&lt;code&gt;&amp;lt;a name=&quot;anchorlink1&quot;&amp;gt;&amp;lt;/a&amp;gt;
&amp;lt;a id=&quot;anchorlink1&quot; href=&quot;http://fullurlhere/nbs-test-panel-of-diseases-2#anchorlink1&quot;&amp;gt;link text&amp;lt;/a&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;질문에서 얻은 답변&lt;/font&gt;&lt;/p&gt; 
&lt;blockquote&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;JHP 11/7/13&lt;/font&gt;&lt;/font&gt;&lt;br&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;31&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문제가 js 파일의 특정 코드인 것을 발견했습니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그 안에 6개의 인스턴스가 들어있었는데 일단 제거하고 나면 모든 것이 정상적으로 작동했습니다.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
 &lt;pre&gt;&lt;code&gt;.replace(/^#/,&quot;&quot;)
&lt;/code&gt;&lt;/pre&gt; 
&lt;/blockquote&gt;&lt;p papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;언급&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/19660632/anchor-link-to-an-anchor-tag-on-another-page-does-not-work&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <category>Wordpress</category>
      <author>telebox</author>
      <guid isPermaLink="true">https://telebox.tistory.com/713</guid>
      <comments>https://telebox.tistory.com/713#entry713comment</comments>
      <pubDate>Sun, 29 Oct 2023 19:12:33 +0900</pubDate>
    </item>
    <item>
      <title>표에서 두 번째로 큰 항목 또는 세 번째로 큰 항목을 가져오는 방법</title>
      <link>https://telebox.tistory.com/712</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;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/2491063/how-to-find-the-employee-with-the-second-highest-salary&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;(5개 답변)&lt;/font&gt;&lt;/span&gt; 
   &lt;/div&gt; 
   &lt;div class=&quot;flex--item mb0 mt8&quot; papago-id=&quot;4&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;
&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;닫힘&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;span class=&quot;relativetime&quot; papago-id=&quot;4-1&quot; title=&quot;2021-01-10 11:36:37Z&quot; papago-attr-id=&quot;1&quot;&gt;2년 전&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;strong papago-id=&quot;5-1&quot;&gt;테이블에서 N번째&lt;/strong&gt;로 큰 &lt;strong papago-id=&quot;5-1&quot;&gt;항목&lt;/strong&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;em papago-id=&quot;6-0&quot;&gt;최대와 마찬가지&lt;/em&gt;로 MAX(colum&lt;em papago-id=&quot;6-0&quot;&gt;n_n&lt;/em&gt;ame)를 &lt;em papago-id=&quot;6-0&quot;&gt;사용&lt;/em&gt;할 수 &lt;em papago-id=&quot;6-0&quot;&gt;있습니다&lt;/em&gt;. &lt;em papago-id=&quot;6-2&quot;&gt;n번째&lt;/em&gt;로 큰 &lt;em papago-id=&quot;6-2&quot;&gt;것을 찾을&lt;/em&gt; 수 &lt;em papago-id=&quot;6-2&quot;&gt;있는 효율적인 방법이 있습니까&lt;/em&gt;?&lt;/font&gt;&lt;/p&gt;&lt;pre 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;FROM (&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;SELECT some_column,&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;row_num은 row_num으로 ()(your_sort_column desc순)됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;FROM_table&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;) t&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;WHERE 행_num = 3&lt;/font&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;br&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;your_sort_column&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 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;FROM (&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;SELECT some_column,&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;()을 행_랭크로 순위 매김(your_sort_column desc순)&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;FROM_table&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;) t&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;WHERE 행_순위 = 3&lt;/font&gt;&lt;/pre&gt;This migh return more than one row..
&lt;p&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;다음 쿼리를 사용하여 열의 N번째로 큰 값을 찾을 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT * 
FROM TableName a 
WHERE n = (
           SELECT count( DISTINCT (b.ColumnName) )
           FROM TableName b 
           WHERE a.ColumnName &amp;lt;= b.ColumnName 
          );
&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;는 NOT IN으로 두 번째로 높은 기록을 찾는 데 도움이 될 것 같습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT MAX( userId )
FROM table 
WHERE userId NOT IN ( 
                      SELECT MAX( userId )
                      FROM table
                    ); 
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;13&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;단순하고 유용한...&lt;/font&gt;&lt;/p&gt;&lt;p papago-id=&quot;14&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;두 번째로 많은 급여를 받으려면 다음을 사용합니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;select salary from 
  (select s2.salary,rownum rm from
     (select distinct salary from employees order by salary desc)
  s2 where rownum&amp;lt;=2)
where rm &amp;gt;= 2
&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;$query = &quot;SELECT * FROM `table_name` ORDER BY field_name` DESC LIMIT 1 , 1 &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;ORDER BY column name&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;LIMIT 1,1&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;strong papago-id=&quot;19&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;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;이런, 오라클 태그 못 봤어요, 죄송해요.&lt;/font&gt;&lt;/font&gt;&lt;br&gt; &lt;code&gt;ORDER BY column name WHERE ROWNUM = 2&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;SELECT DISTINCT (a.sal) FROM EMP A WHERE &amp;amp;N = (
  SELECT COUNT (DISTINCT (b.sal)) FROM EMP B WHERE a.sal&amp;lt;=b.sal
);
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;22&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;교체하다&lt;/font&gt;&lt;/font&gt;&lt;code&gt;&amp;amp;N&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 class=&quot;papago-parent&quot;&gt;예를들면,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;2&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 papago-id=&quot;25&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;PL/SQL을 사용하는 경우 문을 실행하기만 하면 됩니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;그것은 N을 요구할 것입니다.&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;pre class=&quot;lang-sql prettyprint-override&quot;&gt;&lt;code&gt;SELECT DISTINCT TOP 3 id,[Password] 
FROM Users_changepassword 
WHERE [UserId] = 3
ORDER BY id DESC
&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;SELECT Sal FROM Tab ORDER BY Sal DESC LIMIT 2,1
&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;오라클 sql의 Row_number() 함수가 사용되는 이 sql을 사용해 볼 수 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;select column_name from (
 select column_name ,  
row_number() over (order by column_name  desc) as  row_num  
from table_Name ) tablex
where row_num =3
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;SELECT MAX(Salary) FROM Employee
WHERE Salary NOT IN (SELECT MAX(Salary) FROM Employee)
&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;CONNECT BY PRIOR&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;30&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;기준:&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;CREATE TABLE t(i INT, sal INT);
INSERT INTO t(i, sal)
SELECT 1,100 FROM dual UNION
SELECT 2,100 FROM dual UNION
SELECT 3,200 FROM dual UNION
SELECT 4,500 FROM dual UNION
SELECT 5,1000 FROM dual;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p papago-id=&quot;31&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;쿼리:&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;SELECT level, MAX(sal) AS sal
FROM t
--WHERE level = 2 -- set position here
CONNECT BY prior sal &amp;gt; sal
GROUP BY level
ORDER BY level;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://dbfiddle.uk/?rdbms=oracle_11.2&amp;amp;fiddle=c03c8df808409fb31ed83bf33c46c82d&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;32&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;DBFiddle 데모&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://dbfiddle.uk/?rdbms=oracle_11.2&amp;amp;fiddle=2b74027e596ac06f43461c1d79193c7c&quot; rel=&quot;nofollow noreferrer&quot; papago-id=&quot;33&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;DBFiddle 데모2&lt;/font&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; 
&lt;hr&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;편집:&lt;/font&gt;&lt;/strong&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&gt;&lt;/font&gt;&lt;code&gt;NTH_VALUE&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;pre&gt;&lt;code&gt;SELECT DISTINCT NTH_VALUE(sal, 2) OVER(ORDER BY sal DESC
       ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
FROM t;
&lt;/code&gt;&lt;/pre&gt; 
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://dbfiddle.uk/?rdbms=oracle_11.2&amp;amp;fiddle=3c2ec7d9b4996e040dde4301a15ca85d&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;DBFiddle 데모3&lt;/font&gt;&lt;/a&gt;&lt;/strong&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;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/4483222/how-to-get-second-largest-or-third-largest-entry-from-a-table&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <category>Oracle</category>
      <author>telebox</author>
      <guid isPermaLink="true">https://telebox.tistory.com/712</guid>
      <comments>https://telebox.tistory.com/712#entry712comment</comments>
      <pubDate>Sun, 29 Oct 2023 19:12:27 +0900</pubDate>
    </item>
    <item>
      <title>자바스크립트에서 배열 길이를 제한할 수 있습니까?</title>
      <link>https://telebox.tistory.com/711</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;제품 브라우징 이력을 표시하고 싶어서 브라우저 쿠키에 제품 ID를 저장하고 있습니다.&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;히스토리 목록이 5개로 한정되어 있기 때문에 쿠키 값을 배열로 변환한 후 길이를 확인하고 중복을 자릅니다.&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;5개만 저장할 수 있도록 배열 길이를 제한하는 방법을 묻고 싶습니다.&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;배열 인덱스 4 다음에 아이템을 자를려면 어떻게 해야 합니까?&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;var id = product_id;
var browseHistory = $.cookie('history');
if (browseHistory != null) {
  var old_cookie = $.cookie('history');
  var new_cookie = '';

  if (old_cookie.indexOf(',') != -1) {
    var arr = old_cookie.split(',');
    if (arr.length &amp;gt;= 5) {
      arr.splice(4, 1)
    }
  }

  new_cookie = id + ',' + old_cookie;
  $.cookie('history', new_cookie, { expires: 7, path: '/' });
} else {
  $.cookie('history', id, { expires: 7, path: '/' });
}
&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;arr.splice(4, 1)
&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;이것은 인덱스 4에서 1개의 아이템을 제거합니다. &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice&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;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice&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;arr.slice(0,5)
&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;이는 요소를 0~4 위치로 되돌립니다.&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;12&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;가장 &lt;a href=&quot;https://jsperf.com/array-splice-vs-array-length-0/2&quot; papago-id=&quot;12-1&quot; rel=&quot;noreferrer&quot;&gt;빠르고&lt;/a&gt; 간단한 방법은&lt;/font&gt;&lt;/font&gt;&lt;code&gt;.length&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;arr.length = 4;
&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;arr.length = 0;
&lt;/code&gt;&lt;/pre&gt; 
&lt;hr&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;15&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;주의 &lt;strong papago-id=&quot;15-0&quot;&gt;사항:&lt;/strong&gt; 이 속성을 설정하면 배열의 길이가 2인 경우 실행 중인 것보다 길 수도 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;arr.length = 4&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;3&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;2개를 더합니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;undefined&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;pre&gt;&lt;code&gt;if (arr.length &amp;gt; 4) arr.length = 4;
&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;arr.length = Math.min(arr.length, 4);
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;arr.length = Math.min(arr.length, 5)
&lt;/code&gt;&lt;/pre&gt;&lt;pre&gt;&lt;code&gt;var  arrLength = arr.length;
if(arrLength &amp;gt; maxNumber){
    arr.splice( 0, arrLength - maxNumber);
}
&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;p5js&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;21&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문제는.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;arr.slice(0,5)
&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;/p&gt; 
&lt;p papago-id=&quot;23&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;문제는.&lt;/font&gt;&lt;/p&gt; 
&lt;pre&gt;&lt;code&gt;if (arr.length &amp;gt; 4) arr.length = 4;
&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;push()&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;26&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-js prettyprint-override&quot;&gt;&lt;code&gt;let array = [];
array.length = 2;
Object.defineProperty(array, 'length', {writable:false});


array[0] = 1 // [1, undefined]

array[1] = 2 // [1, 2]

array[2] = 3 // [1, 2] -&amp;gt; doesn't add anything and fails silently

array.push(&quot;something&quot;); //but this throws an Uncaught TypeError
&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;arr.splice(5);
&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;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice#parameters&quot; papago-id=&quot;28-1&quot; rel=&quot;noreferrer&quot;&gt;매개변수 정의&lt;/a&gt;에 따르면, 만약&lt;/font&gt;&lt;/font&gt;&lt;code&gt;start&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;deleteCount&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;start&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;13&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;따라서 배열을 일부로 제한하려면&lt;/font&gt;&lt;/font&gt;&lt;code&gt;MAX_SIZE&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;14&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;(새 인스턴스를 생성하는 대신 기존 배열을 modifying) 쉬운 단축키는 다음과 같습니다.&lt;/font&gt;&lt;/font&gt;&lt;code&gt;arr.splice(MAX_SIZE)&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;35&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;36&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;참고: &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice#browser_compatibility&quot; papago-id=&quot;36-1&quot; rel=&quot;noreferrer&quot;&gt;IE 5.5-8의 호환성 노트&lt;/a&gt;에 따르면,&lt;/font&gt;&lt;/font&gt;&lt;code&gt;deleteCount&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;38&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;단축 배열은 항목을 제거한 후 실제로 사용해야 합니다.&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;단축 배열을 무시하고 있습니다.&lt;/font&gt;&lt;/p&gt; 
&lt;p papago-id=&quot;39&quot; papago-translate=&quot;translated&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;쿠키를 배열로 변환합니다.&lt;/font&gt;&lt;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;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;.join(&quot;,&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 class=&quot;papago-parent&quot;&gt;사용하는 대신 새 쿠키에 사용합니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;old_cookie&lt;/code&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;20&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;/font&gt;&lt;/font&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;단축되지 않는.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt; 
&lt;p&gt;&lt;font papago-translate=&quot;translated&quot; papago-id=&quot;21&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;사용하지 않을 수도 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;.splice()&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 class=&quot;papago-parent&quot;&gt;&lt;font class=&quot;papago-parent&quot;&gt;당신은 정확한 기능에 대해 읽을 수 있습니다.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;code&gt;.splice()&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;a href=&quot;https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/splice&quot; papago-id=&quot;45-0&quot; rel=&quot;nofollow&quot;&gt;여기에&lt;/a&gt;&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 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;pre class=&quot;lang-js prettyprint-override&quot;&gt;&lt;code&gt;const list = [&quot;a&quot;,&quot;b&quot;,&quot;c&quot;,&quot;d&quot;,&quot;e&quot;,&quot;f&quot;,&quot;g&quot;,&quot;h&quot;,&quot;i&quot;];
const listWithOnly3Items = list.filter((element,index) =&amp;gt; index &amp;lt; 3);
&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;font class=&quot;papago-parent&quot;&gt;URL : https://stackoverflow.com/questions/14236515/can-i-limit-the-length-of-an-array-in-javascript&lt;/font&gt;&lt;/p&gt;</description>
      <category>programing</category>
      <category>jQuery</category>
      <author>telebox</author>
      <guid isPermaLink="true">https://telebox.tistory.com/711</guid>
      <comments>https://telebox.tistory.com/711#entry711comment</comments>
      <pubDate>Sun, 29 Oct 2023 19:12:20 +0900</pubDate>
    </item>
  </channel>
</rss>