<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Hello World</title>
    <link>https://enterkey.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Wed, 27 May 2026 19:15:52 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>EnterKey</managingEditor>
    <image>
      <title>Hello World</title>
      <url>https://t1.daumcdn.net/cfile/tistory/1676774B4F3B446106</url>
      <link>https://enterkey.tistory.com</link>
    </image>
    <item>
      <title>Temp</title>
      <link>https://enterkey.tistory.com/427</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;임시 글&lt;/p&gt;</description>
      <author>EnterKey</author>
      <guid isPermaLink="true">https://enterkey.tistory.com/427</guid>
      <comments>https://enterkey.tistory.com/427#entry427comment</comments>
      <pubDate>Tue, 21 Jun 2022 23:58:51 +0900</pubDate>
    </item>
    <item>
      <title>스프링 관련 번역글 모음</title>
      <link>https://enterkey.tistory.com/426</link>
      <description>&lt;p&gt;사우가 올린 공식 개발 레퍼런스인데 퀄리티가 괜찮아서 링크 공유합니다.&lt;br /&gt;&lt;a href=&quot;https://godekdls.github.io/Spring%20Batch/contents/&quot;&gt;스프링 배치 4.2 레퍼런스&lt;/a&gt;&lt;br /&gt;원문 : &lt;a href=&quot;https://docs.spring.io/spring-batch/docs/4.2.x/reference/html/index-single.html&quot;&gt;https://docs.spring.io/spring-batch/docs/4.2.x/reference/html/index-single.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://godekdls.github.io/Reactive%20Spring/contents/&quot;&gt;스프링 웹 리액티브 스택 5.2.6.RELEASE 레퍼런스&lt;/a&gt;&lt;br /&gt;원문 : &lt;a href=&quot;https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html&quot;&gt;https://docs.spring.io/spring/docs/current/spring-framework-reference/web-reactive.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://godekdls.github.io/Reactor%20Core/contents/&quot;&gt;리액터 코어 3.3.7.RELEASE 레퍼런스&lt;/a&gt;&lt;br /&gt;원문 : &lt;a href=&quot;https://projectreactor.io/docs/core/release/reference/&quot;&gt;https://projectreactor.io/docs/core/release/reference/&lt;/a&gt;&lt;/p&gt;</description>
      <category>Java/추천 사이트</category>
      <category>reactive</category>
      <category>reactor</category>
      <category>reactor core</category>
      <category>Spring Batch</category>
      <category>Spring Framework</category>
      <category>spring reactive</category>
      <author>EnterKey</author>
      <guid isPermaLink="true">https://enterkey.tistory.com/426</guid>
      <comments>https://enterkey.tistory.com/426#entry426comment</comments>
      <pubDate>Sun, 16 Aug 2020 21:50:33 +0900</pubDate>
    </item>
    <item>
      <title>객체 검증의 종결자 @Valid</title>
      <link>https://enterkey.tistory.com/423</link>
      <description>&lt;p&gt;&lt;span style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;스프링 MVC에서 지원하는 @Valid를 통한 데이터 검증은 정말 놀랍다. 특히 브라우저에서 클라이언트가 입력자료를 넘겨줄 때 이 자료를 검증할 수 있는 모델을 매우 손쉽게 만들 수 있다는 점이다. @Valid는 스프링이 만든 기술은 아니며 최근 JSR-303이란 이름으로 채택된 서블릿 2.3 표준스펙 중 하나인데 매번 그렇듯 스프링은 이 새로운 표준을 확장하고 쉽게 사용할 수 있도록 스프링만의 방식으로 재편성해주었다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;@Valid가 간소화 될 수 있었던 배경을 이해하고 응용할 수 있게끔 학습하는게 중요하겠지만 먼저 @Valid가 얼마나 대단한지 보여주기 위해 맛보기로 간단한 @Valid 예제를 살펴보고자 한다. 먼저 자바빈 객체를 하나 만들어보자.&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote style=&quot;margin: 1em 40px; background: url(&amp;quot;http://md.egloos.net/skn/tpl/post_blockquote/2/border_png.png&amp;quot;) repeat;&quot;&gt;&lt;div&gt;public class User {&lt;br /&gt;&lt;br /&gt;@Size(min=5, max=50) private String id;&lt;/div&gt;&lt;div&gt;@Size(min=5, max=50) private String password;&lt;/div&gt;&lt;div&gt;@Pattern(regexp=&quot;^[_0-9a-zA-Z-]+@[0-9a-zA-Z]+(.[_0-9a-zA-Z-]+)*$&quot;)&lt;/div&gt;&lt;div&gt;private String email;&lt;br /&gt;&lt;br /&gt;… get/set 생략&amp;nbsp;…&lt;br /&gt;}&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;그리고 이 JSP파일을 처리할 수 있는 컨트롤러를 하나 만들어 보자. 최초에 문서를 불러들이는 Get과 송신을 위해 필요한 Post, 2가지가 필요하다. 그리고 세션으로 상태유지를 할 수 있게끔 해당 요소를&amp;nbsp;@SessionAttributes로 공유해주는 것까지 해주도록 하자.&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;image_mid&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://thumbnail.egloos.net/600x0/http://pds21.egloos.com/pds/201202/27/49/d0144949_4f4a9260f0aee.jpg&quot; width=&quot;600&quot; height=&quot;374.503311258&quot; style=&quot;border: 0px; vertical-align: middle; margin: 15px 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;이 몇줄의 코드를 설명시키기 위해 토비의 스프링에서 무려 200쪽이 넘는 공간을 할애하여 설명하고 있으므로 여기서는 가급적 자세한 설명을 생략하도록 하겠다. (생략의 가장 중대한 이유는 필자도 잘 모른다는 사실이지만 그것은 중요치 않다.... :D) 먼저 @ModelAttribute User user와 같은 형태로 클라이언트의 요청을 커맨트 패턴으로 받는다. 그리고 이 모델에 검증을 하기 위해 위의 예제와 같이 @valid라는 검증 어노테이션을 붙인다. 그리고.... 더 해야 할 일은...... 없다.&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;짜잔! 이것은 기본적인 검증 모델 설계가 끝난 셈이다. 믿지 않겠지만 진짜다. 스프링 MVC는 이와같은 간단한 어노테이션만으로도 검증모델을 유지하며 검증 결과를 BindingResult 객체로 전달해주는 역할을 담당한다. 먼저 자바빈 객체를 살펴보며 @Valid가 무엇인지 부터 알아보자.&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;@Valid는 그동안 논란이 되왔던, 검증모델이 프리젠테이션 계층에 위치해야 되는지, 서비스 계층에 위치해야 하는지에 대한 논란을 어느 정도 통일시켜주는 표준기술이다. 그러나 역설적으로 @Valid는 그동안의 논란을 뒤집고 검증모델을 프리젠테이션 계층도, 서비스 계층도 아닌 도메인 계층에 삽입할 수 있게 하였다. 즉 @Valid는 아예 원천적으로 등록 오류를 피하기 위해 객체 자체에 검증모델 주입하는 방식을 채택하고 있다.&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;@Valid에는 기본적으로 14개의 검증 어노테이션을 제공한다.&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&lt;blockquote style=&quot;margin: 1em 40px; background: url(&amp;quot;http://md.egloos.net/skn/tpl/post_blockquote/2/border_png.png&amp;quot;) repeat;&quot;&gt;&lt;b&gt;@AssertFalse :&lt;/b&gt;&amp;nbsp;false 값만 통과 가능&lt;br /&gt;&lt;b&gt;@AssertTrue :&lt;/b&gt;&amp;nbsp;true 값만 통과 가능&lt;br /&gt;&lt;b&gt;@DecimalMax(value=) :&amp;nbsp;&lt;/b&gt;지정된 값 이하의 실수만 통과 가능&lt;br /&gt;&lt;b&gt;@DecimalMin(value=) :&amp;nbsp;&lt;/b&gt;지정된 값 이상의 실수만 통과 가능&lt;br /&gt;&lt;b&gt;@Digits(integer=,fraction=) :&amp;nbsp;&lt;/b&gt;대상 수가 지정된 정수와 소수 자리수보다 적을 경우 통과 가능&lt;br /&gt;&lt;b&gt;@Future :&amp;nbsp;&lt;/b&gt;대상 날짜가 현재보다 미래일 경우만 통과 가능&lt;br /&gt;&lt;b&gt;@Past :&lt;/b&gt;&amp;nbsp;대상 날짜가 현재보다 과거일 경우만 통과 가능&lt;br /&gt;&lt;b&gt;@Max(value) :&lt;/b&gt;&amp;nbsp;지정된 값보다 아래일 경우만 통과 가능&lt;br /&gt;&lt;b&gt;@Min(value) :&amp;nbsp;&lt;/b&gt;지정된 값보다 이상일 경우만 통과 가능&lt;br /&gt;&lt;b&gt;@NotNull :&amp;nbsp;&lt;/b&gt;null 값이 아닐 경우만 통과 가능&lt;br /&gt;&lt;b&gt;@Null :&amp;nbsp;&lt;/b&gt;null일 겨우만 통과 가능&lt;br /&gt;&lt;b&gt;@Pattern(regex=, flag=) :&amp;nbsp;&lt;/b&gt;해당 정규식을 만족할 경우만 통과 가능&lt;br /&gt;&lt;b&gt;@Size(min=, max=) :&lt;/b&gt;&amp;nbsp;문자열 또는 배열이 지정된 값 사이일 경우 통과 가능&lt;br /&gt;&lt;b&gt;@Valid :&lt;/b&gt;&amp;nbsp;대상 객체의 확인 조건을 만족할 경우 통과 가능&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;기본 객체는 대부분의 경우 위의 14가지 어노테이션으로도 통과가 가능하겠지만 생성객체나 좀 더 엄격한 규칙을 위해서는 직접 검증 어노테이션을 구현할 수도 있다. 직접 어노테이션을 구현하는 부분은 다음에 다뤄보기로 하고 지금은 위의 예제가 어떤 방식으로 동작하는 지에 좀 더 집중하도록 하겠다.&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;이제 위와 같은 어노테이션을 도메인 모델에 적용시켰다면 마지막으로 스프링은 @Valid를 컨트롤러에 적용시킴으로써 깜찍한 마법을 부려준다. 위의 예제에서 @ModelAttributes&amp;nbsp;&lt;b&gt;@Valid User user&lt;/b&gt;는 위의 어노테이션 설명에서도 보았듯이 대상 객체에 정의 되있는 확인 조건을 만족시키는 역할을 담당한다. 스프링 MVC는 이런 조건을 만족시키지 못할 경우 내부 컨트롤러에 의해 자동적으로 bindingResult 객체에 담겨저 컨트롤러로 돌아오게 된다.&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;즉 위의 예제는 /join URL을 Post방식으로 호출할 경우 자연스럽게 @ModelAttribute가 해당 파라미터들을 User객체로 캡슐화 시킴과 동시에 내부에 규약되있는 객체 검을을 @Valid가 발동되면서 오류가 있을 경우 오류 정보를 함께 전송한다. 그리고 마지막으로 스프링 컨테이너에 의해 오류정보는 bindingResult 객체로 분류되면서 끝이 난다.&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&lt;blockquote style=&quot;margin: 1em 40px; background: url(&amp;quot;http://md.egloos.net/skn/tpl/post_blockquote/2/border_png.png&amp;quot;) repeat;&quot;&gt;&amp;lt;%@ taglib prefix=&quot;form&quot; uri=&quot;http://www.springframework.org/tags/form&quot; %&amp;gt;&lt;br /&gt;&amp;lt;form:form modelAttribute=&quot;user&quot; autocomplete=&quot;off&quot;&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;h4&amp;gt;&amp;lt;strong&amp;gt;회원가입&amp;lt;/strong&amp;gt;&amp;lt;/h4&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;div class=&quot;clearfix&quot;&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;lt;div class=&quot;left&quot;&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;&amp;lt;form:label path=&quot;id&quot;&amp;gt;아이디&amp;lt;/form:label&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;lt;div class=&quot;left&quot;&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;&amp;lt;form:input path=&quot;id&quot;/&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;&amp;lt;form:errors path=&quot;id&quot; /&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;div class=&quot;clearfix&quot;&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;lt;div class=&quot;left&quot;&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;&amp;lt;form:label path=&quot;password&quot;&amp;gt;비밀번호&amp;lt;/form:label&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;lt;div class=&quot;left&quot;&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;&amp;lt;form:input path=&quot;password&quot;/&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;&amp;lt;form:errors path=&quot;password&quot; /&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;/div&amp;gt;&amp;nbsp;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;div class=&quot;clearfix&quot;&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;lt;div class=&quot;left&quot;&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;&amp;lt;form:label path=&quot;email&quot;&amp;gt;이메일&amp;lt;/form:label&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;lt;div class=&quot;left&quot;&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;&amp;lt;form:input path=&quot;email&quot;/&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;&amp;lt;form:errors path=&quot;email&quot; /&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;div class=&quot;clearfix&quot;&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;lt;div class=&quot;left&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;lt;div class=&quot;left&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;input type=&quot;submit&quot; value=&quot;업로드&quot; /&amp;gt;&lt;br /&gt;&amp;lt;/form:form&amp;gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;아래는 위의 JSP코드와 컨트롤러를 이용하여 만든 예제 회원가입 폼이다.&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;img class=&quot;image_mid&quot; border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://pds19.egloos.com/pds/201202/27/49/d0144949_4f4aa58b1cb64.jpg&quot; width=&quot;519&quot; height=&quot;149&quot; style=&quot;border: 0px; vertical-align: middle; margin: 15px 0px;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;위의 코드를 적용시키기 위해서는 Spring에서 제공하는 form 태그를 이해해야 하는데 스프링 폼은 나중에 깊게 다루기로 하고 일단 기본적으로 이 스프링 폼을 통해 에러객체와 폼객체를 완벽하게 분리시켰다는 사실만 기억하자.&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&amp;lt;form:errors&amp;gt;는 컨트롤러에서 전달받은 에러 객체를 컨트롤하는 역할을 담당하는데 현재 별도의 에러 메시지 설정이 없으므로 기본 에러가 표시된다. 만약 에러메시지를 바꾸고 싶다면 도메인 객체에 삽입한 검증 모델에 message라는 값을 더해주면 된다.&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&lt;blockquote style=&quot;margin: 1em 40px; background: url(&amp;quot;http://md.egloos.net/skn/tpl/post_blockquote/2/border_png.png&amp;quot;) repeat;&quot;&gt;@Size(min=5, max=50, message=&quot;5자에서 50자 사이의 값만 가능합니다&quot;) private String id;&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;또 하나의 방법은 messages.properties를 이용하여 이런 에러메시지를 관리하는 방법인데 이 방법은 좀 더 스프링 검증 모델을 완벽히 습득한 뒤에 작성하도록 하겠다. 생각같아선 가급적 @Valid에 대해 완벽하게 다루고 싶었지만 생각보다 복잡한 방식으로 이루어지고 있는데다 확장포인트를 잡기가 어려워 여기서 대략적인 설명만 달아놓을 수 밖에 없었다.&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(63, 62, 63); font-family: 나눔고딕, &amp;quot;맑은 고딕&amp;quot;; background-color: rgb(230, 227, 220);&quot;&gt;이 문서는 기본적인 설명만을 다루고 있으므로 예제나 방식을 실제 서비스에 적용할 때는 좀 더 많은 관련 문서를 참고해 보고 자신만의 설계 모델을 구축해야 할 것이다.&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;출처:&amp;nbsp;http://springmvc.egloos.com/509029&lt;/p&gt;</description>
      <category>Spring/3.x</category>
      <author>EnterKey</author>
      <guid isPermaLink="true">https://enterkey.tistory.com/423</guid>
      <comments>https://enterkey.tistory.com/423#entry423comment</comments>
      <pubDate>Fri, 10 Feb 2017 17:55:21 +0900</pubDate>
    </item>
    <item>
      <title>쿠키와 세션에 대해 알아보자</title>
      <link>https://enterkey.tistory.com/419</link>
      <description>&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;많이 들어봤고 실제로 업무를 하면서도 많이 사용하는데 그에 비해 이해도는 많이 떨어지는 것중 하나가 세션, 쿠키 인것같다. (적어도 나에게는..) 실제로 이번에 회사에서 발생한 이슈의 원인이 세션 데이터가 지워저서 발생한 이슈 였는데, 이 원인을 다른사람들과 얘기하다보니, 이해도가 부족하여 제대로된 원인분석이 되지 않는것 같았다.&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;그래서 이번기회에 세션과 쿠키에 대해 정리를 한번 해보려고 한다.&lt;/p&gt;&lt;h2 style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 3.2rem; margin: 2em 0px 1em; outline: 0px; padding: 0px; vertical-align: baseline; clear: both; line-height: 1.25; color: rgb(51, 51, 51);&quot;&gt;세션과 쿠키&lt;/h2&gt;&lt;h3 style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 2.7rem; margin: 2.3704em 0px 1.1852em; outline: 0px; padding: 0px; vertical-align: baseline; clear: both; line-height: 1.1852; color: rgb(51, 51, 51);&quot;&gt;필요성&lt;/h3&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;세션과 쿠키에 대해 이야기 하기 전에 HTTP의 특성을 몇가지 살펴보자.&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;HTTP는 요청과 응답을 주고받을때 지속적으로 연결되어 있지 않고, 요청과 응답을 주고받는 순간에만 잠깐 연결되고 끊어진다. 이로인해서 서버와 클라이언트는&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; font-weight: 700; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;현재의 Request에서만&lt;/span&gt;&amp;nbsp;서로를 인지할 수 있다. 이런 HTTP의 특성으로 클라이언트와 서버는 서로 다른 요청간에 정보를 공유할 수 없게된다.&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;이런 HTTP의 특성을 Connectionless와 Sateless 라고 한다. (참고 :&amp;nbsp;&lt;a href=&quot;https://www.tutorialspoint.com/http/http_overview.htm&quot; rel=&quot;nofollow&quot; style=&quot;box-sizing: inherit; border-top: 0px; border-right: 0px; border-left: 0px; border-bottom-style: solid; border-bottom-color: rgb(51, 51, 51); border-image: initial; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;https://www.tutorialspoint.com/http/http_overview.htm&lt;/a&gt;)&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;하지만 우리는 로그인상태, 장바구니정보 등 서버에서는 클라이언트의 상태를 저장하고 있을 필요가 있으며, 서버는 이런 상태를 쿠키와 세션을 이용해 저장한다.&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;이제 쿠키와 세션이 왜 필요한지 알았으니, 이게 뭔지 알아보자.&lt;/p&gt;&lt;h3 style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 2.7rem; margin: 2.3704em 0px 1.1852em; outline: 0px; padding: 0px; vertical-align: baseline; clear: both; line-height: 1.1852; color: rgb(51, 51, 51);&quot;&gt;쿠키&lt;/h3&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;앞서 말했듯 쿠키와 세션은 서버에서 클라이언트의 상태를 저장하는 수단이다. (지금부터는 상태와 데이터 라는 말을 같이 쓰겠다.) 세션과 다른점은 쿠키는 항상 클라이언트에 데이터를 저장한다는 점이다. 그런데, 서버에서 클라이언트의 상태를 저장하기 위한 수단이라면서 클라이언트에 저장하면, 서버에서는 그 데이터를 어떻게 확인한다는 걸까? 이 부분은 쿠키의 동작을 보면 이해할 수 있다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 2.2rem; margin: 2.9091em 0px 1.4545em; outline: 0px; padding: 0px; vertical-align: baseline; clear: both; line-height: 1.4545; color: rgb(51, 51, 51);&quot;&gt;쿠키의 동작&lt;/h4&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;&lt;img data-attachment-id=&quot;36&quot; data-permalink=&quot;https://cinabrosite.wordpress.com/2017/01/24/cookie_session/session-53a21/&quot; data-orig-file=&quot;https://cinabrosite.files.wordpress.com/2017/01/session-53a21.png?w=660&quot; data-orig-size=&quot;777,373&quot; data-comments-opened=&quot;1&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}&quot; data-image-title=&quot;session-53a21&quot; data-image-description=&quot;&quot; data-medium-file=&quot;https://cinabrosite.files.wordpress.com/2017/01/session-53a21.png?w=660?w=300&quot; data-large-file=&quot;https://cinabrosite.files.wordpress.com/2017/01/session-53a21.png?w=660?w=660&quot; class=&quot;alignnone size-full wp-image-36&quot; src=&quot;https://cinabrosite.files.wordpress.com/2017/01/session-53a21.png?w=660&quot; alt=&quot;session-53a21&quot; srcset=&quot;https://cinabrosite.files.wordpress.com/2017/01/session-53a21.png?w=660 660w, https://cinabrosite.files.wordpress.com/2017/01/session-53a21.png?w=150 150w, https://cinabrosite.files.wordpress.com/2017/01/session-53a21.png?w=300 300w, https://cinabrosite.files.wordpress.com/2017/01/session-53a21.png?w=768 768w, https://cinabrosite.files.wordpress.com/2017/01/session-53a21.png 777w&quot; sizes=&quot;(max-width: 660px) 100vw, 660px&quot; style=&quot;box-sizing: inherit; border: 0px; height: auto; max-width: 100%; vertical-align: middle;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;위 그림은 서버(&lt;span class=&quot;skimlinks-unlinked&quot; style=&quot;box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;www.test.com&lt;/span&gt;)와 클라이언트의 HTTP Request, Response를 헤더와 함께 간단히 표현한 그림이다.&lt;/p&gt;&lt;ol style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin: 0px 0px 1.6842em; outline: 0px; padding: 0px; vertical-align: baseline; list-style-position: initial; list-style-image: initial; color: rgb(51, 51, 51);&quot;&gt;&lt;li style=&quot;box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Request #1 을 보면, 헤더에는 쿠키에 관련된 값이 없다.&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;서버에서는 응답을 보내기 전, 쿠키에 ‘id’ 라는 키로 ‘mingook’ 이라는 값을 설정했다.&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Response #1 에는 Set-Cookie 라는 헤더에 설정한 쿠키값이 담겨서 클라이언트로 내려간다. 이때 ‘domain’이라는 값이 생겼다. (config로 설정하기도, 직접 입력하기도 한다.)&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;클라이언트에서는 Set-Cookie 헤더의 값을 표와 같이 저장한다.&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;다시 요청을 보낼때, 클라이언트는 쿠키의 domain을 확인하고 해당 domain으로 요청을 보낼경우 cookie 헤더에 값을 설정하여 요청을 보낸다.&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;위와 같은 과정을 통해서, 서버가 클라이언트에 저장한 쿠키는 다시 서버로 돌아와서 제 역할을 할 수 있게 된다.&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;하지만 쿠키는 클라이언트에 저장되기 때문에 보안에 취약하다는 단점이 있다. 지금 당장 크롬의 개발자도구만 실행시켜도 쿠키에 저장된 값을 확인할 수 있다. 이런 단점을 보완해 주는게 세션이다.&lt;/p&gt;&lt;h3 style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 2.7rem; margin: 2.3704em 0px 1.1852em; outline: 0px; padding: 0px; vertical-align: baseline; clear: both; line-height: 1.1852; color: rgb(51, 51, 51);&quot;&gt;세션&lt;/h3&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;많은 사람들이 쿠키와 세션의 차이점으로 쿠키는 클라이언트에 세션은 서버에 저장되고 이로인해서 보안적인 측면에서 세션이 유리하다고 알고 있을것이다. 나도 이번에 다시 세션과 쿠키를 공부하기전까지는, ‘쿠키는 클라이언트에, 세션은 서버에 저장되는 값’ 정도로 이해하고 있었다.&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;하지만 세션은 쿠키에 저장되기도 한다. 즉, 클라이언트에 저장되기도 한다는 말이다. PHP 프레임워크 중 하나인 코드이그나이터가 디폴트로 세션을 쿠키에 저장하는데, 이런점으로 보아 ‘세션은 클라이언트의 상태를 서버에 저장하는 것’ 이라는 말은 100% 맞다고 할 순 없을 것 같다. 저장한다기 보다&amp;nbsp;&lt;span style=&quot;box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; font-weight: 700; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;서버에서 클라이언트의 상태를 유지하는 수단&lt;/span&gt;&amp;nbsp;이라는 말이 좀 더 맞을 것 같다. 추가로, 세션을 쿠키에 저장하게 되면 앞서 말한데로 보안적 이슈가 있기때문에, 반드시 암호화를 해줘야 한다. (암호화를 하더라도.. 서버에 있는게 더 안전하니까, 왠만하면 서버에 저장하는게 좋을 것 같다.)&lt;/p&gt;&lt;h4 style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 2.2rem; margin: 2.9091em 0px 1.4545em; outline: 0px; padding: 0px; vertical-align: baseline; clear: both; line-height: 1.4545; color: rgb(51, 51, 51);&quot;&gt;세션을 저장하는 방법&lt;/h4&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;세션을 저장하는 방법은 여러가지가 있는데 대충 다음과 같은 방법이 있는 것 같다.&lt;/p&gt;&lt;ul style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin: 0px 0px 1.6842em; outline: 0px; padding: 0px; vertical-align: baseline; list-style-position: initial; list-style-image: initial; color: rgb(51, 51, 51);&quot;&gt;&lt;li style=&quot;box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;메모리&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;파일&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;데이터베이스&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;쿠키&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;메모리, 파일, 데이터베이스는 서버에, 쿠키는 클라이언트에 세션을 저장하는 방법이다.&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;만약, 부하분산을 위해 한 도메인에 여러대의 서버를 운영하고 있다면, 데이터베이스나 쿠키를 이용해야 한다. 메모리나 파일은 물리적으로 서버간에 나누어저 있기 때문에, 세션이 유지될 수 없다. 단, 쿠키는 위에 말했듯 보안상 좋지 않으니 DB를 이용하는게 좋겠다.&lt;/p&gt;&lt;h4 style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 2.2rem; margin: 2.9091em 0px 1.4545em; outline: 0px; padding: 0px; vertical-align: baseline; clear: both; line-height: 1.4545; color: rgb(51, 51, 51);&quot;&gt;세션의 동작&lt;/h4&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;&lt;img data-attachment-id=&quot;25&quot; data-permalink=&quot;https://cinabrosite.wordpress.com/2017/01/24/cookie_session/session-71f08/&quot; data-orig-file=&quot;https://cinabrosite.files.wordpress.com/2017/01/session-71f08.png?w=660&quot; data-orig-size=&quot;847,646&quot; data-comments-opened=&quot;1&quot; data-image-meta=&quot;{&amp;quot;aperture&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;credit&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;camera&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;caption&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;created_timestamp&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;copyright&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;focal_length&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;iso&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;shutter_speed&amp;quot;:&amp;quot;0&amp;quot;,&amp;quot;title&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;orientation&amp;quot;:&amp;quot;0&amp;quot;}&quot; data-image-title=&quot;session-71f08&quot; data-image-description=&quot;&quot; data-medium-file=&quot;https://cinabrosite.files.wordpress.com/2017/01/session-71f08.png?w=660?w=300&quot; data-large-file=&quot;https://cinabrosite.files.wordpress.com/2017/01/session-71f08.png?w=660?w=660&quot; class=&quot;alignnone size-full wp-image-25&quot; src=&quot;https://cinabrosite.files.wordpress.com/2017/01/session-71f08.png?w=660&quot; alt=&quot;session-71f08&quot; srcset=&quot;https://cinabrosite.files.wordpress.com/2017/01/session-71f08.png?w=660 660w, https://cinabrosite.files.wordpress.com/2017/01/session-71f08.png?w=150 150w, https://cinabrosite.files.wordpress.com/2017/01/session-71f08.png?w=300 300w, https://cinabrosite.files.wordpress.com/2017/01/session-71f08.png?w=768 768w, https://cinabrosite.files.wordpress.com/2017/01/session-71f08.png 847w&quot; sizes=&quot;(max-width: 660px) 100vw, 660px&quot; style=&quot;box-sizing: inherit; border: 0px; height: auto; max-width: 100%; vertical-align: middle;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;이제 마지막이다~! 세션의 동작원리를 살펴보자.&lt;br style=&quot;box-sizing: inherit;&quot;&gt;1. Request #1 요청이 들어왔다.&lt;br style=&quot;box-sizing: inherit;&quot;&gt;2. 서버에서는 세션을 시작하고, 세션에 ‘id’ = ‘mingook’ 이라는 값을 설정했다.&lt;br style=&quot;box-sizing: inherit;&quot;&gt;3. Response #1 에서의 Set-Cookie헤더를 잘 보자. 쿠키때와는 다르게 이번에는 session_id가 내려간다. (세션아이디의 key는 컨테이너마다 다를 수 있다.)&lt;br style=&quot;box-sizing: inherit;&quot;&gt;4. 이제 클라이언트에서는 .&lt;span class=&quot;skimlinks-unlinked&quot; style=&quot;box-sizing: inherit; border: 0px; font-family: inherit; font-style: inherit; font-weight: inherit; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;test.com&lt;/span&gt;&amp;nbsp;도메인으로의 요청에는 session_id를 쿠키에 담아 전송한다.&lt;br style=&quot;box-sizing: inherit;&quot;&gt;5. 서버에서는 session_id를 가지고 해당 클라이언트의 세션을 찾아서 필요한 값을 조회한다. 즉, session_id는 서버가 클라이언트를 구분할 수 있게 해주는 key가 된다.&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;위의 예시는 세션을 서버에 저장할 경우이고, 쿠키에 세션을 저장하는 경우는 약간다르다. 서버에 저장되어있는 ‘id’=’mingook’ 이라는 값이 모두 세션쿠키에 저장될 것이다. (이부분은 궁금하면 직접 구현해보자.)&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;끝!&amp;nbsp;&lt;img draggable=&quot;false&quot; class=&quot;emoji&quot; alt=&quot; &quot; src=&quot;https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/svg/1f642.svg&quot; style=&quot;box-sizing: inherit; border: none !important; height: 1em !important; max-width: 100%; vertical-align: -0.1em !important; display: inline !important; box-shadow: none !important; width: 1em !important; margin: 0px 0.07em !important; background: none !important; padding: 0px !important;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; border: 0px; font-family: &amp;quot;Noto Serif&amp;quot;, serif; font-size: 19px; margin-right: 0px; margin-bottom: 1.6842em; margin-left: 0px; outline: 0px; padding: 0px; vertical-align: baseline; color: rgb(51, 51, 51);&quot;&gt;출처:&amp;nbsp;https://cinabrosite.wordpress.com/2017/01/24/cookie_session/&lt;/p&gt;</description>
      <category>Back-End/좋은글</category>
      <author>EnterKey</author>
      <guid isPermaLink="true">https://enterkey.tistory.com/419</guid>
      <comments>https://enterkey.tistory.com/419#entry419comment</comments>
      <pubDate>Tue, 24 Jan 2017 11:07:45 +0900</pubDate>
    </item>
    <item>
      <title>Cross Domain API</title>
      <link>https://enterkey.tistory.com/418</link>
      <description>&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;최근 개발하고 있는 서비스는 API 서버들은 특정 기능만을 제공하고 화면에서의 기능은 대부분 React를 이용하여 Client Side에서 처리하고 있습니다. 이런 구성을 마이크로서비스 아키텍처라고 부를 수도 있을텐데 이번 글의 주제는 마이크로 서비스 아키텍처에 대한 이야기는 아니고 이런 구성시에 API 서버쪽 설정과 관련한 몇가지 삽질한 것에 대한 내용입니다. 웹이나 API 서버 개발을 계속 해오신 분들은 잘 아는 내용이겠지만 저처럼 간만에 하시는 분들을 위한 글입니다.&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;&lt;/p&gt;&lt;div id=&quot;attachment_11037&quot; class=&quot;wp-caption alignnone&quot; style=&quot;margin: 0px 0px 15px; padding: 0px; max-width: 100%; text-align: center; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; width: 610px;&quot;&gt;&lt;img class=&quot;wp-image-11037 size-medium&quot; src=&quot;http://www.popit.kr/wp-content/uploads/2017/01/api_server_architecture-600x326.png&quot; alt=&quot;api_server_architecture&quot; width=&quot;600&quot; height=&quot;326&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; max-width: 100%; height: auto; box-sizing: border-box;&quot;&gt;&lt;p class=&quot;wp-caption-text&quot; style=&quot;margin: 6px 0px; padding: 0px; font-style: italic; font-size: 0.95em; line-height: 1.2em;&quot;&gt;[그림] 시스템 기본 구성&lt;/p&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;위 그림의 시스템 구성에 대해서는 나중에 다른 글로 소개하도록 하겠습니다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;&lt;/p&gt;&lt;h2 style=&quot;margin: 1.25em 0px 0.6em; padding: 0px; line-height: 1.4em; font-weight: normal; word-wrap: normal; font-size: 2em; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;CORS 이슈&lt;/h2&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;위와 같은 시스템 구성에서 첫번째 만나는 문제는 HTTP를 이용하여 API 서버로 GET, POST와 같은 요청을 보낼때 그 페이지를 받은 도메인(여기서는 web.popit.kr)과 API를 서비스하는 서버의 도메인(member.popit.kr 또는 shop.popit.kr)이 다르기 때문에 다음과 같은 에러가 발생한다는 것입니다.&lt;/p&gt;&lt;div id=&quot;crayon-5886aabbddfe1263099902&quot; class=&quot;crayon-syntax crayon-theme-obsidian crayon-font-monaco crayon-os-pc print-yes notranslate&quot; data-settings=&quot; touchscreen minimize scroll-mouseover&quot; style=&quot;margin: 12px 0px; padding: 0px; box-sizing: border-box; text-size-adjust: none; width: 890px; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace; color: rgb(255, 255, 255); height: auto; overflow: hidden !important; position: relative !important; direction: ltr !important; text-shadow: none !important; background: rgb(40, 48, 51) !important; border-style: solid !important; border-width: 1px !important; border-color: rgb(40, 48, 51) !important; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-toolbar&quot; data-settings=&quot; show&quot; style=&quot;margin: 0px; padding: 0px; border-top: 0px; border-right: 0px; border-left: 0px; border-image: initial; width: 888px; position: relative; overflow: hidden; z-index: 4; background: rgb(60, 63, 65) !important; border-bottom: 1px solid rgb(89, 89, 89) !important; height: 18px !important; line-height: 18px !important;&quot;&gt;&lt;span class=&quot;crayon-title&quot; style=&quot;margin: 0px; padding: 0px 4px !important; font-family: inherit; color: rgb(187, 187, 187) !important; float: left; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/span&gt;&lt;div class=&quot;crayon-tools&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background: 0px center; border: 0px; position: absolute; right: 0px; height: 18px !important; line-height: 18px !important; font-weight: inherit !important; float: right !important;&quot;&gt;&lt;div class=&quot;crayon-button crayon-nums-button crayon-pressed&quot; title=&quot;줄 번호 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: -24px 0px; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; color: rgb(204, 204, 204); background-color: rgb(80, 80, 80) !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) -24px -32px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-plain-button&quot; title=&quot;일반 코드 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px -48px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-wrap-button&quot; title=&quot;줄 바꿈 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px -112px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-popup-button&quot; title=&quot;새 창에서 보기&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px 0px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-plain-wrap&quot; style=&quot;background: 0px center; border: 0px; margin: 0px !important; padding: 0px !important; height: auto !important;&quot;&gt;&lt;textarea wrap=&quot;soft&quot; class=&quot;crayon-plain print-no&quot; data-settings=&quot;dblclick&quot; style=&quot;background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 5px; padding-left: 5px; border-radius: 0px; -webkit-appearance: none; width: 888px; overflow: auto; margin: 0px; height: 64px; position: absolute; opacity: 0; box-shadow: none; white-space: pre; word-wrap: normal; resize: none; color: rgb(0, 0, 0); tab-size: 2; z-index: 0; font-size: 12px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; line-height: 15px !important;&quot;&gt;&lt;/textarea&gt;&lt;/div&gt;&lt;div class=&quot;crayon-main&quot; style=&quot;margin: 0px; padding: 0px; background: 0px center; border: 0px; width: 888px; overflow: auto; position: relative; z-index: 1;&quot;&gt;&lt;table class=&quot;crayon-table&quot; style=&quot;margin-left: 0px; font-size: 12px; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; padding: 0px !important; border: none !important; background: none !important; width: auto !important; border-spacing: 0px !important; border-collapse: collapse !important; table-layout: auto !important;&quot;&gt;&lt;tbody style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;tr class=&quot;crayon-row&quot; style=&quot;background: 0px center; margin: 0px !important; padding: 0px !important; border: none !important; vertical-align: top !important;&quot;&gt;&lt;td class=&quot;crayon-nums &quot; data-settings=&quot;show&quot; style=&quot;margin: 0px !important; padding: 0px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; vertical-align: top !important; border-bottom: 0px; background: rgb(63, 75, 78) !important; border-top: 0px; border-right: 1px dotted rgb(128, 128, 128) !important; border-left: 0px; border-image: initial; color: rgb(129, 150, 154) !important;&quot;&gt;&lt;div class=&quot;crayon-nums-content&quot; style=&quot;margin: 0px; padding: 0px; background: 0px center; border: 0px; white-space: nowrap; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddfe1263099902-1&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddfe1263099902-2&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddfe1263099902-3&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;3&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;crayon-code&quot; style=&quot;margin: 0px !important; padding: 0px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; vertical-align: top !important; border: 0px; background: 0px center; width: 869px;&quot;&gt;&lt;div class=&quot;crayon-pre&quot; style=&quot;margin: 0px; padding: 0px; white-space: pre; overflow: visible; tab-size: 2; background: none !important; border: none !important; color: rgb(255, 255, 255) !important; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddfe1263099902-1&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;XMLHttpRequest &lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;cannot &lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;load &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-c&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(102, 116, 123) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;//membership.popit.kr/api/v1/login. &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddfe1263099902-2&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-i&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(217, 85, 193) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;No&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'Access-Control-Allow-Origin'&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;header &lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;is&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;present &lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;on &lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;the &lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;requested &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;resource&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddfe1263099902-3&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-i&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(217, 85, 193) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;Origin&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'http://web.popit.kr'&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;is&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;therefore &lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;not&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;allowed &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;access&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;이 에러 메시지의 의미는 페이지 내에서 Ajax 호출 시 다른 도메인의 URL을 호출했다는 의미입니다. 다음 문서에 보면 브라우저에서 다른 도메인으로 요청을 보낼때에 대한 규약이 잘 설명되어 있습니다.&lt;/p&gt;&lt;ul style=&quot;margin: 1em 0px 1.4em 1.5em; padding: 0px; line-height: 1.4em; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;&lt;li style=&quot;margin: 0px 0px 0.5em; padding: 0px;&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/HTTP/Access_control_CORS&quot; style=&quot;margin: 0px; padding: 0px; outline: none; color: rgb(193, 107, 5);&quot;&gt;https://developer.mozilla.org/ko/docs/Web/HTTP/Access_control_CORS&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;요약하자면 CORS(Cross-Origin Resource Sharing)라고 하여 도메인이 다른 서버에 대한 호출에 대한 정의 입니다. 브라우저는 다른 도메인으로 Ajax 등의 호출을 보내기 전에 다음과 같은 순서로 동작합니다.&lt;/p&gt;&lt;ol style=&quot;margin: 1em 0px 1.4em 1.5em; padding: 0px; line-height: 1.4em; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;&lt;li style=&quot;margin: 0px 0px 0.5em; padding: 0px;&quot;&gt;“preflight” 확인 요청을 OPTIONS method로 전송&lt;ul style=&quot;margin: 1em 0px 1.4em 1.5em; padding: 0px; line-height: 1.4em;&quot;&gt;&lt;li style=&quot;margin: 0px 0px 0.5em; padding: 0px;&quot;&gt;요청 시 Http Header의 속성으로 “Origin”에 자신의 도메인을 전송&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 0.5em; padding: 0px;&quot;&gt;이 요청을 받은 서버는 정상적인 요청인지 확인하여, 정상적인 요청이면 Response에 허용 가능한 도메인(Access-Control-Allow-Origin), Method(Access-Control-Allow-Methods), Header 속성(Access-Control-Allow-Headers)&amp;nbsp; 등을 설정하여 응답&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 0.5em; padding: 0px;&quot;&gt;OPTIONS 요청에 대해 수신을 받은 브라우저는 Header의 “Access-Control-Allow-*” 정보를 이용하여 요청을 보낼 수 있는지 판단하여 권한이 없는 경우 위와 같은 에러 처리를 하고 요청을 보낼 수 있으면 요청 전송&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px 0px 0px 30px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;&lt;img class=&quot;alignnone&quot; src=&quot;https://www.html5rocks.com/static/images/cors_flow.png&quot; width=&quot;494&quot; height=&quot;365&quot; style=&quot;margin: 0px 0px 15px; padding: 0px; border: 0px; max-width: 100%; height: auto; box-sizing: border-box;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;위와 같은 흐름에서 브라우저가 1, 3번은 처리를 자동으로 하기 때문에 개발자나 시스템 운영자는 2번에 대한 설정을 해야만 합니다. 2번을 해결하기 위해서는 서버측에서는 다음 두가지 설정을 해야 합니다.&lt;/p&gt;&lt;ol style=&quot;margin: 1em 0px 1.4em 1.5em; padding: 0px; line-height: 1.4em; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;&lt;li style=&quot;margin: 0px 0px 0.5em; padding: 0px;&quot;&gt;API로 공개되는 모든 URL에 대해 OPTIONS Routes 설정 및 Http Response 설정&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 0.5em; padding: 0px;&quot;&gt;API URL에 대한 Http Response 설정&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;이를 위해 Spring을 사용하는 경우라면 Controller나 Method에 “@CrossOrigin” 어노테이션 추가만 하면 됩니다. 필자의 환경은 주로 Rails 인데 “rack-cors” gem을 사용할 수도 있지만 다음과 같이 자체 해결하였습니다.&lt;/p&gt;&lt;ul style=&quot;margin: 1em 0px 1.4em 1.5em; padding: 0px; line-height: 1.4em; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;&lt;li style=&quot;margin: 0px 0px 0.5em; padding: 0px;&quot;&gt;OPTIONS Routes 설정&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;모든 API 요청에 대해 OPTIONS Route 설정을 위해서 routes.rb&amp;nbsp; 파일에 match 를 이용하여 모든 URL에 대해 base_controller의 cors_preflight_check acrtion을 사용&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;div id=&quot;crayon-5886aabbddfeb940912537&quot; class=&quot;crayon-syntax crayon-theme-obsidian crayon-font-monaco crayon-os-pc print-yes notranslate&quot; data-settings=&quot; touchscreen minimize scroll-mouseover&quot; style=&quot;margin: 12px 0px; padding: 0px; box-sizing: border-box; text-size-adjust: none; width: 866px; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace; color: rgb(255, 255, 255); height: auto; overflow: hidden !important; position: relative !important; direction: ltr !important; text-shadow: none !important; background: rgb(40, 48, 51) !important; border-style: solid !important; border-width: 1px !important; border-color: rgb(40, 48, 51) !important; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-toolbar&quot; data-settings=&quot; show&quot; style=&quot;margin: 0px; padding: 0px; border-top: 0px; border-right: 0px; border-left: 0px; border-image: initial; width: 864px; position: relative; overflow: hidden; z-index: 4; background: rgb(60, 63, 65) !important; border-bottom: 1px solid rgb(89, 89, 89) !important; height: 18px !important; line-height: 18px !important;&quot;&gt;&lt;span class=&quot;crayon-title&quot; style=&quot;margin: 0px; padding: 0px 4px !important; font-family: inherit; color: rgb(187, 187, 187) !important; float: left; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;routes.rb&lt;/span&gt;&lt;div class=&quot;crayon-tools&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background: 0px center; border: 0px; position: absolute; right: 0px; height: 18px !important; line-height: 18px !important; font-weight: inherit !important; float: right !important;&quot;&gt;&lt;div class=&quot;crayon-button crayon-nums-button crayon-pressed&quot; title=&quot;줄 번호 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: -24px 0px; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; color: rgb(204, 204, 204); background-color: rgb(80, 80, 80) !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) -24px -32px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-plain-button&quot; title=&quot;일반 코드 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px -48px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-wrap-button&quot; title=&quot;줄 바꿈 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px -112px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-popup-button&quot; title=&quot;새 창에서 보기&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px 0px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class=&quot;crayon-language&quot; style=&quot;margin: 0px; padding: 0px 8px 0px 4px !important; font-family: inherit; color: rgb(187, 187, 187) !important; float: left; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;Ruby&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-plain-wrap&quot; style=&quot;background: 0px center; border: 0px; margin: 0px !important; padding: 0px !important; height: auto !important;&quot;&gt;&lt;textarea wrap=&quot;soft&quot; class=&quot;crayon-plain print-no&quot; data-settings=&quot;dblclick&quot; style=&quot;background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 5px; padding-left: 5px; border-radius: 0px; -webkit-appearance: none; width: 864px; overflow: auto; margin: 0px; height: 139px; position: absolute; opacity: 0; box-shadow: none; white-space: pre; word-wrap: normal; resize: none; color: rgb(0, 0, 0); tab-size: 2; z-index: 0; font-size: 12px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; line-height: 15px !important;&quot;&gt;&lt;/textarea&gt;&lt;/div&gt;&lt;div class=&quot;crayon-main&quot; style=&quot;margin: 0px; padding: 0px; background: 0px center; border: 0px; width: 864px; overflow: auto; position: relative; z-index: 1;&quot;&gt;&lt;table class=&quot;crayon-table&quot; style=&quot;margin-left: 0px; font-size: 12px; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; padding: 0px !important; border: none !important; background: none !important; width: auto !important; border-spacing: 0px !important; border-collapse: collapse !important; table-layout: auto !important;&quot;&gt;&lt;tbody style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;tr class=&quot;crayon-row&quot; style=&quot;background: 0px center; margin: 0px !important; padding: 0px !important; border: none !important; vertical-align: top !important;&quot;&gt;&lt;td class=&quot;crayon-nums &quot; data-settings=&quot;show&quot; style=&quot;margin: 0px !important; padding: 0px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; vertical-align: top !important; border-bottom: 0px; background: rgb(63, 75, 78) !important; border-top: 0px; border-right: 1px dotted rgb(128, 128, 128) !important; border-left: 0px; border-image: initial; color: rgb(129, 150, 154) !important;&quot;&gt;&lt;div class=&quot;crayon-nums-content&quot; style=&quot;margin: 0px; padding: 0px; background: 0px center; border: 0px; white-space: nowrap; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddfeb940912537-1&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddfeb940912537-2&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddfeb940912537-3&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddfeb940912537-4&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddfeb940912537-5&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddfeb940912537-6&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddfeb940912537-7&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddfeb940912537-8&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;8&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;crayon-code&quot; style=&quot;margin: 0px !important; padding: 0px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; vertical-align: top !important; border: 0px; background: 0px center; width: 845px;&quot;&gt;&lt;div class=&quot;crayon-pre&quot; style=&quot;margin: 0px; padding: 0px; white-space: pre; overflow: visible; tab-size: 2; background: none !important; border: none !important; color: rgb(255, 255, 255) !important; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddfeb940912537-1&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;namespace&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;api&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;defaults&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-k &quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;format&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'json'&lt;/span&gt;&lt;span class=&quot;crayon-k &quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;do&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddfeb940912537-2&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;namespace&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-i&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(217, 85, 193) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;v1&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;do&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddfeb940912537-3&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-i&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(217, 85, 193) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;post&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&quot;members/signup&quot;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&quot;members#signup&quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddfeb940912537-4&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-i&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(217, 85, 193) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&quot;members/signin&quot;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&quot;members#signin&quot;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddfeb940912537-5&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddfeb940912537-6&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddfeb940912537-7&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-i&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(217, 85, 193) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;match&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&quot;*all&quot;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&quot;base#cors_preflight_check&quot;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;via&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;options&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;]&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddfeb940912537-8&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;div id=&quot;crayon-5886aabbddfef522942093&quot; class=&quot;crayon-syntax crayon-theme-obsidian crayon-font-monaco crayon-os-pc print-yes notranslate&quot; data-settings=&quot; touchscreen minimize scroll-mouseover&quot; style=&quot;margin: 12px 0px; padding: 0px; box-sizing: border-box; text-size-adjust: none; width: 866px; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace; color: rgb(255, 255, 255); height: auto; overflow: hidden !important; position: relative !important; direction: ltr !important; text-shadow: none !important; background: rgb(40, 48, 51) !important; border-style: solid !important; border-width: 1px !important; border-color: rgb(40, 48, 51) !important; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-toolbar&quot; data-settings=&quot; show&quot; style=&quot;margin: 0px; padding: 0px; border-top: 0px; border-right: 0px; border-left: 0px; border-image: initial; width: 864px; position: relative; overflow: hidden; z-index: 4; background: rgb(60, 63, 65) !important; border-bottom: 1px solid rgb(89, 89, 89) !important; height: 18px !important; line-height: 18px !important;&quot;&gt;&lt;span class=&quot;crayon-title&quot; style=&quot;margin: 0px; padding: 0px 4px !important; font-family: inherit; color: rgb(187, 187, 187) !important; float: left; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;controllers/api/base_controller.rb&lt;/span&gt;&lt;div class=&quot;crayon-tools&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background: 0px center; border: 0px; position: absolute; right: 0px; height: 18px !important; line-height: 18px !important; font-weight: inherit !important; float: right !important;&quot;&gt;&lt;div class=&quot;crayon-button crayon-nums-button crayon-pressed&quot; title=&quot;줄 번호 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: -24px 0px; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; color: rgb(204, 204, 204); background-color: rgb(80, 80, 80) !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) -24px -32px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-plain-button&quot; title=&quot;일반 코드 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px -48px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-wrap-button&quot; title=&quot;줄 바꿈 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px -112px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-popup-button&quot; title=&quot;새 창에서 보기&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px 0px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class=&quot;crayon-language&quot; style=&quot;margin: 0px; padding: 0px 8px 0px 4px !important; font-family: inherit; color: rgb(187, 187, 187) !important; float: left; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;Ruby&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-plain-wrap&quot; style=&quot;background: 0px center; border: 0px; margin: 0px !important; padding: 0px !important; height: auto !important;&quot;&gt;&lt;textarea wrap=&quot;soft&quot; class=&quot;crayon-plain print-no&quot; data-settings=&quot;dblclick&quot; style=&quot;background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 5px; padding-left: 5px; border-radius: 0px; -webkit-appearance: none; width: 864px; overflow: auto; margin: 0px; height: 259px; position: absolute; opacity: 0; box-shadow: none; white-space: pre; word-wrap: normal; resize: none; color: rgb(0, 0, 0); tab-size: 2; z-index: 0; font-size: 12px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; line-height: 15px !important;&quot;&gt;&lt;/textarea&gt;&lt;/div&gt;&lt;div class=&quot;crayon-main&quot; style=&quot;margin: 0px; padding: 0px; background: 0px center; border: 0px; width: 864px; overflow: auto; position: relative; z-index: 1;&quot;&gt;&lt;table class=&quot;crayon-table&quot; style=&quot;margin-left: 0px; font-size: 12px; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; padding: 0px !important; border: none !important; background: none !important; width: auto !important; border-spacing: 0px !important; border-collapse: collapse !important; table-layout: auto !important;&quot;&gt;&lt;tbody style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;tr class=&quot;crayon-row&quot; style=&quot;background: 0px center; margin: 0px !important; padding: 0px !important; border: none !important; vertical-align: top !important;&quot;&gt;&lt;td class=&quot;crayon-nums &quot; data-settings=&quot;show&quot; style=&quot;margin: 0px !important; padding: 0px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; vertical-align: top !important; border-bottom: 0px; background: rgb(63, 75, 78) !important; border-top: 0px; border-right: 1px dotted rgb(128, 128, 128) !important; border-left: 0px; border-image: initial; color: rgb(129, 150, 154) !important;&quot;&gt;&lt;div class=&quot;crayon-nums-content&quot; style=&quot;margin: 0px; padding: 0px; background: 0px center; border: 0px; white-space: nowrap; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddfef522942093-1&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddfef522942093-2&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddfef522942093-3&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddfef522942093-4&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddfef522942093-5&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddfef522942093-6&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddfef522942093-7&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddfef522942093-8&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;8&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddfef522942093-9&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;9&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddfef522942093-10&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;10&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddfef522942093-11&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;11&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddfef522942093-12&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;12&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddfef522942093-13&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;13&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddfef522942093-14&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;14&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddfef522942093-15&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;15&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddfef522942093-16&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;16&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;crayon-code&quot; style=&quot;margin: 0px !important; padding: 0px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; vertical-align: top !important; border: 0px; background: 0px center; width: 838px;&quot;&gt;&lt;div class=&quot;crayon-pre&quot; style=&quot;margin: 0px; padding: 0px; white-space: pre; overflow: visible; tab-size: 2; background: none !important; border: none !important; color: rgb(255, 255, 255) !important; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddfef522942093-1&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-r&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;module&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(217, 85, 193) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;Api&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddfef522942093-2&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-r&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;BaseController&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(217, 85, 193) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;ApplicationController&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddfef522942093-3&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;before_action&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;cors_preflight&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;_&lt;/span&gt;check&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddfef522942093-4&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;after_action&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;cors_set_access_control&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;_&lt;/span&gt;headers&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddfef522942093-5&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddfef522942093-6&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-r&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;def&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;cors_preflight&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;_&lt;/span&gt;check&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddfef522942093-7&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-t&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;method&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-i&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(217, 85, 193) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;options&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddfef522942093-8&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'Access-Control-Allow-Origin'&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'Origin'&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;||&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'*'&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddfef522942093-9&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'Access-Control-Allow-Methods'&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'POST, PUT, GET, OPTIONS'&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddfef522942093-10&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'Access-Control-Allow-Headers'&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'*'&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddfef522942093-11&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'Access-Control-Max-Age'&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'1728000'&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddfef522942093-12&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-i&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(217, 85, 193) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;ok&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddfef522942093-13&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddfef522942093-14&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddfef522942093-15&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddfef522942093-16&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 0.5em; padding: 0px;&quot;&gt;API 요청 처리에 대한 Http Response 처리&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;클라이언트와 약속된 Http Header의 Attribute에 대한 허용 옵션 등을 추가&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;div id=&quot;crayon-5886aabbddff1688517400&quot; class=&quot;crayon-syntax crayon-theme-obsidian crayon-font-monaco crayon-os-pc print-yes notranslate&quot; data-settings=&quot; touchscreen minimize scroll-mouseover&quot; style=&quot;margin: 12px 0px; padding: 0px; box-sizing: border-box; text-size-adjust: none; width: 866px; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace; color: rgb(255, 255, 255); height: auto; overflow: hidden !important; position: relative !important; direction: ltr !important; text-shadow: none !important; background: rgb(40, 48, 51) !important; border-style: solid !important; border-width: 1px !important; border-color: rgb(40, 48, 51) !important; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-toolbar&quot; data-settings=&quot; show&quot; style=&quot;margin: 0px; padding: 0px; border-top: 0px; border-right: 0px; border-left: 0px; border-image: initial; width: 864px; position: relative; overflow: hidden; z-index: 4; background: rgb(60, 63, 65) !important; border-bottom: 1px solid rgb(89, 89, 89) !important; height: 18px !important; line-height: 18px !important;&quot;&gt;&lt;span class=&quot;crayon-title&quot; style=&quot;margin: 0px; padding: 0px 4px !important; font-family: inherit; color: rgb(187, 187, 187) !important; float: left; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;controllers/api/base_contorller.rb&lt;/span&gt;&lt;div class=&quot;crayon-tools&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background: 0px center; border: 0px; position: absolute; right: 0px; height: 18px !important; line-height: 18px !important; font-weight: inherit !important; float: right !important;&quot;&gt;&lt;div class=&quot;crayon-button crayon-nums-button crayon-pressed&quot; title=&quot;줄 번호 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: -24px 0px; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; color: rgb(204, 204, 204); background-color: rgb(80, 80, 80) !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) -24px -32px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-plain-button&quot; title=&quot;일반 코드 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px -48px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-wrap-button&quot; title=&quot;줄 바꿈 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px -112px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-expand-button&quot; title=&quot;코드를 펼쳐서 보기&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px -96px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-popup-button&quot; title=&quot;새 창에서 보기&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px 0px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-plain-wrap&quot; style=&quot;background: 0px center; border: 0px; margin: 0px !important; padding: 0px !important; height: auto !important;&quot;&gt;&lt;textarea wrap=&quot;soft&quot; class=&quot;crayon-plain print-no&quot; data-settings=&quot;dblclick&quot; style=&quot;background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 5px; padding-left: 5px; border-radius: 0px; -webkit-appearance: none; width: 864px; overflow: auto; margin: 0px; height: 370px; position: absolute; opacity: 0; box-shadow: none; white-space: pre; word-wrap: normal; resize: none; color: rgb(0, 0, 0); tab-size: 2; z-index: 0; font-size: 12px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; line-height: 15px !important;&quot;&gt;&lt;/textarea&gt;&lt;/div&gt;&lt;div class=&quot;crayon-main&quot; style=&quot;margin: 0px; padding: 0px; background: 0px center; border: 0px; width: 864px; overflow: auto; position: relative; z-index: 1;&quot;&gt;&lt;table class=&quot;crayon-table&quot; style=&quot;margin-left: 0px; font-size: 12px; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; padding: 0px !important; border: none !important; background: none !important; width: auto !important; border-spacing: 0px !important; border-collapse: collapse !important; table-layout: auto !important;&quot;&gt;&lt;tbody style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;tr class=&quot;crayon-row&quot; style=&quot;background: 0px center; margin: 0px !important; padding: 0px !important; border: none !important; vertical-align: top !important;&quot;&gt;&lt;td class=&quot;crayon-nums &quot; data-settings=&quot;show&quot; style=&quot;margin: 0px !important; padding: 0px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; vertical-align: top !important; border-bottom: 0px; background: rgb(63, 75, 78) !important; border-top: 0px; border-right: 1px dotted rgb(128, 128, 128) !important; border-left: 0px; border-image: initial; color: rgb(129, 150, 154) !important;&quot;&gt;&lt;div class=&quot;crayon-nums-content&quot; style=&quot;margin: 0px; padding: 0px; background: 0px center; border: 0px; white-space: nowrap; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-1&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-2&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-3&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-4&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-5&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-6&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-7&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-8&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;8&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-9&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;9&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-10&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;10&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-11&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;11&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-12&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;12&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-13&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;13&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-14&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;14&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-15&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;15&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-16&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;16&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-17&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;17&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-18&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;18&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-19&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;19&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-20&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;20&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-21&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;21&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-22&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;22&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff1688517400-23&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;23&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;crayon-code&quot; style=&quot;margin: 0px !important; padding: 0px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; vertical-align: top !important; border: 0px; background: 0px center; width: 918px;&quot;&gt;&lt;div class=&quot;crayon-pre&quot; style=&quot;margin: 0px; padding: 0px; white-space: pre; overflow: visible; tab-size: 2; background: none !important; border: none !important; color: rgb(255, 255, 255) !important; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff1688517400-1&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;module &lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;Api&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff1688517400-2&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-t&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;BaseController&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;ApplicationController&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff1688517400-3&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;before_action&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;cors_preflight_check&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff1688517400-4&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;after_action&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;cors_set_access_control_headers&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff1688517400-5&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff1688517400-6&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;def &lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;cors_preflight_check&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff1688517400-7&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;method&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;options&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff1688517400-8&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'Access-Control-Allow-Origin'&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'Origin'&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;||&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'*'&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff1688517400-9&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'Access-Control-Allow-Methods'&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'POST, PUT, GET, OPTIONS'&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff1688517400-10&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'Access-Control-Allow-Headers'&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'*'&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff1688517400-11&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'Access-Control-Max-Age'&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'1728000'&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff1688517400-12&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;ok&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff1688517400-13&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff1688517400-14&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff1688517400-15&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff1688517400-16&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;def &lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;cors_set_access_control_headers&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff1688517400-17&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'Access-Control-Allow-Origin'&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'*'&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff1688517400-18&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'Access-Control-Allow-Methods'&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'POST, PUT, DELETE, GET, PATCH, OPTIONS'&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff1688517400-19&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'Access-Control-Request-Method'&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'*'&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff1688517400-20&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'Access-Control-Allow-Headers'&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'Origin, X-Requested-With, Content-Type, Accept, Authorization, Secrete_Token'&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff1688517400-21&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff1688517400-22&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff1688517400-23&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;Spring의 “@CrossOrigin”이나 Rails의 rack-cors gem을 이용하면 간단하게 해결되겠지만, 이런것을 사용할 수 없는 상황에서는 동작하는 기본 원리와 무엇을 처리해야 하는지 알고 있어야 문제를 해결할 수 있을 것 같아서 자체 설정으로 해결해 보았습니다.&lt;/p&gt;&lt;h2 style=&quot;margin: 1.25em 0px 0.6em; padding: 0px; line-height: 1.4em; font-weight: normal; word-wrap: normal; font-size: 2em; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;422 Unprocessable Entity 에러&lt;/h2&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;여기까지 해결하고 잘 동작할 것이라 생각했는데 또 문제가 되는&amp;nbsp; 것이 하나 있습니다. 원래는 CORS 문제 발생 전에 이 문제부터 먼저 겪게 됩니다. Rails로 서버를 실행하고 다른 도메인에 의해 가져온 html에서 Rails 서버로 API를 호출하게 되면 브라우저에서 다음과 같은 에러 메시지가 나타납니다.&lt;/p&gt;&lt;div id=&quot;crayon-5886aabbddff3651202837&quot; class=&quot;crayon-syntax crayon-theme-obsidian crayon-font-monaco crayon-os-pc print-yes notranslate&quot; data-settings=&quot; touchscreen minimize scroll-mouseover&quot; style=&quot;margin: 12px 0px; padding: 0px; box-sizing: border-box; text-size-adjust: none; width: 890px; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace; color: rgb(255, 255, 255); height: auto; overflow: hidden !important; position: relative !important; direction: ltr !important; text-shadow: none !important; background: rgb(40, 48, 51) !important; border-style: solid !important; border-width: 1px !important; border-color: rgb(40, 48, 51) !important; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-toolbar&quot; data-settings=&quot; show&quot; style=&quot;margin: 0px; padding: 0px; border-top: 0px; border-right: 0px; border-left: 0px; border-image: initial; width: 888px; position: relative; overflow: hidden; z-index: 4; background: rgb(60, 63, 65) !important; border-bottom: 1px solid rgb(89, 89, 89) !important; height: 18px !important; line-height: 18px !important;&quot;&gt;&lt;span class=&quot;crayon-title&quot; style=&quot;margin: 0px; padding: 0px 4px !important; font-family: inherit; color: rgb(187, 187, 187) !important; float: left; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/span&gt;&lt;div class=&quot;crayon-tools&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background: 0px center; border: 0px; position: absolute; right: 0px; height: 18px !important; line-height: 18px !important; font-weight: inherit !important; float: right !important;&quot;&gt;&lt;div class=&quot;crayon-button crayon-nums-button crayon-pressed&quot; title=&quot;줄 번호 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: -24px 0px; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; color: rgb(204, 204, 204); background-color: rgb(80, 80, 80) !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) -24px -32px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-plain-button&quot; title=&quot;일반 코드 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px -48px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-wrap-button&quot; title=&quot;줄 바꿈 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px -112px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-popup-button&quot; title=&quot;새 창에서 보기&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px 0px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-plain-wrap&quot; style=&quot;background: 0px center; border: 0px; margin: 0px !important; padding: 0px !important; height: auto !important;&quot;&gt;&lt;textarea wrap=&quot;soft&quot; class=&quot;crayon-plain print-no&quot; data-settings=&quot;dblclick&quot; style=&quot;background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 5px; padding-left: 5px; border-radius: 0px; -webkit-appearance: none; width: 888px; overflow: auto; margin: 0px; height: 94px; position: absolute; opacity: 0; box-shadow: none; white-space: pre; word-wrap: normal; resize: none; color: rgb(0, 0, 0); tab-size: 2; z-index: 0; font-size: 12px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; line-height: 15px !important;&quot;&gt;&lt;/textarea&gt;&lt;/div&gt;&lt;div class=&quot;crayon-main&quot; style=&quot;margin: 0px; padding: 0px; background: 0px center; border: 0px; width: 888px; overflow: auto; position: relative; z-index: 1;&quot;&gt;&lt;table class=&quot;crayon-table&quot; style=&quot;margin-left: 0px; font-size: 12px; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; padding: 0px !important; border: none !important; background: none !important; width: auto !important; border-spacing: 0px !important; border-collapse: collapse !important; table-layout: auto !important;&quot;&gt;&lt;tbody style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;tr class=&quot;crayon-row&quot; style=&quot;background: 0px center; margin: 0px !important; padding: 0px !important; border: none !important; vertical-align: top !important;&quot;&gt;&lt;td class=&quot;crayon-nums &quot; data-settings=&quot;show&quot; style=&quot;margin: 0px !important; padding: 0px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; vertical-align: top !important; border-bottom: 0px; background: rgb(63, 75, 78) !important; border-top: 0px; border-right: 1px dotted rgb(128, 128, 128) !important; border-left: 0px; border-image: initial; color: rgb(129, 150, 154) !important;&quot;&gt;&lt;div class=&quot;crayon-nums-content&quot; style=&quot;margin: 0px; padding: 0px; background: 0px center; border: 0px; white-space: nowrap; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff3651202837-1&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff3651202837-2&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff3651202837-3&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff3651202837-4&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff3651202837-5&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;5&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;crayon-code&quot; style=&quot;margin: 0px !important; padding: 0px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; vertical-align: top !important; border: 0px; background: 0px center; width: 869px;&quot;&gt;&lt;div class=&quot;crayon-pre&quot; style=&quot;margin: 0px; padding: 0px; white-space: pre; overflow: visible; tab-size: 2; background: none !important; border: none !important; color: rgb(255, 255, 255) !important; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff3651202837-1&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;OPTIONS &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-c&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(102, 116, 123) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;//membership.popit.kr/api/v1/login 422 (Unprocessable Entity)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff3651202837-2&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;XMLHttpRequest &lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;cannot &lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;load &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-c&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(102, 116, 123) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;//membership.popit.kr/api/v1/login. &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff3651202837-3&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;Response &lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;to&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;preflight &lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;request &lt;/span&gt;&lt;span class=&quot;crayon-i&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(217, 85, 193) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;doesn&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'t pass access control check: &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff3651202837-4&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;No '&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;Access&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;Control&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;Allow&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;crayon-i&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(217, 85, 193) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;Origin&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;' header is present on the requested resource. &lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff3651202837-5&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;Origin '&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;http&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-c&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(102, 116, 123) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;//web.popit.kr' is therefore not allowed access. The response had HTTP status code 422.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;OPTIONS 가 전송되는 것은 앞에서 설명드린 CORS 관련 이슈이고, “422 Unprocessable Entity 메시지는 또 다른 이유때문에 발생하는 에러 입니다. Rails 서버 측에는 다음과 같은 에러 로그가 나타납니다.&lt;/p&gt;&lt;div id=&quot;crayon-5886aabbddff5612831662&quot; class=&quot;crayon-syntax crayon-theme-obsidian crayon-font-monaco crayon-os-pc print-yes notranslate&quot; data-settings=&quot; touchscreen minimize scroll-mouseover&quot; style=&quot;margin: 12px 0px; padding: 0px; box-sizing: border-box; text-size-adjust: none; width: 890px; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace; color: rgb(255, 255, 255); height: auto; overflow: hidden !important; position: relative !important; direction: ltr !important; text-shadow: none !important; background: rgb(40, 48, 51) !important; border-style: solid !important; border-width: 1px !important; border-color: rgb(40, 48, 51) !important; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-toolbar&quot; data-settings=&quot; show&quot; style=&quot;margin: 0px; padding: 0px; border-top: 0px; border-right: 0px; border-left: 0px; border-image: initial; width: 888px; position: relative; overflow: hidden; z-index: 4; background: rgb(60, 63, 65) !important; border-bottom: 1px solid rgb(89, 89, 89) !important; height: 18px !important; line-height: 18px !important;&quot;&gt;&lt;span class=&quot;crayon-title&quot; style=&quot;margin: 0px; padding: 0px 4px !important; font-family: inherit; color: rgb(187, 187, 187) !important; float: left; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/span&gt;&lt;div class=&quot;crayon-tools&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background: 0px center; border: 0px; position: absolute; right: 0px; height: 18px !important; line-height: 18px !important; font-weight: inherit !important; float: right !important;&quot;&gt;&lt;div class=&quot;crayon-button crayon-nums-button crayon-pressed&quot; title=&quot;줄 번호 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: -24px 0px; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; color: rgb(204, 204, 204); background-color: rgb(80, 80, 80) !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) -24px -32px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-plain-button&quot; title=&quot;일반 코드 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px -48px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-wrap-button&quot; title=&quot;줄 바꿈 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px -112px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-popup-button&quot; title=&quot;새 창에서 보기&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px 0px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-plain-wrap&quot; style=&quot;background: 0px center; border: 0px; margin: 0px !important; padding: 0px !important; height: auto !important;&quot;&gt;&lt;textarea wrap=&quot;soft&quot; class=&quot;crayon-plain print-no&quot; data-settings=&quot;dblclick&quot; style=&quot;background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 5px; padding-left: 5px; border-radius: 0px; -webkit-appearance: none; width: 888px; overflow: auto; margin: 0px; height: 214px; position: absolute; opacity: 0; box-shadow: none; white-space: pre; word-wrap: normal; resize: none; color: rgb(0, 0, 0); tab-size: 2; z-index: 0; font-size: 12px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; line-height: 15px !important;&quot;&gt;&lt;/textarea&gt;&lt;/div&gt;&lt;div class=&quot;crayon-main&quot; style=&quot;margin: 0px; padding: 0px; background: 0px center; border: 0px; width: 888px; overflow: auto; position: relative; z-index: 1;&quot;&gt;&lt;table class=&quot;crayon-table&quot; style=&quot;margin-left: 0px; font-size: 12px; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; padding: 0px !important; border: none !important; background: none !important; width: auto !important; border-spacing: 0px !important; border-collapse: collapse !important; table-layout: auto !important;&quot;&gt;&lt;tbody style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;tr class=&quot;crayon-row&quot; style=&quot;background: 0px center; margin: 0px !important; padding: 0px !important; border: none !important; vertical-align: top !important;&quot;&gt;&lt;td class=&quot;crayon-nums &quot; data-settings=&quot;show&quot; style=&quot;margin: 0px !important; padding: 0px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; vertical-align: top !important; border-bottom: 0px; background: rgb(63, 75, 78) !important; border-top: 0px; border-right: 1px dotted rgb(128, 128, 128) !important; border-left: 0px; border-image: initial; color: rgb(129, 150, 154) !important;&quot;&gt;&lt;div class=&quot;crayon-nums-content&quot; style=&quot;margin: 0px; padding: 0px; background: 0px center; border: 0px; white-space: nowrap; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff5612831662-1&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff5612831662-2&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff5612831662-3&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff5612831662-4&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff5612831662-5&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff5612831662-6&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff5612831662-7&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff5612831662-8&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;8&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff5612831662-9&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;9&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff5612831662-10&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;10&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff5612831662-11&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;11&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff5612831662-12&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;12&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff5612831662-13&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;13&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;crayon-code&quot; style=&quot;margin: 0px !important; padding: 0px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; vertical-align: top !important; border: 0px; background: 0px center; width: 862px;&quot;&gt;&lt;div class=&quot;crayon-pre&quot; style=&quot;margin: 0px; padding: 0px; white-space: pre; overflow: visible; tab-size: 2; background: none !important; border: none !important; color: rgb(255, 255, 255) !important; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff5612831662-1&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;Started &lt;/span&gt;&lt;span class=&quot;crayon-i&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(217, 85, 193) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;OPTIONS&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&quot;/api/v1/members/login&quot;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(255, 205, 34) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(217, 85, 193) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;at&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-cn&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(255, 205, 34) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;2017&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(255, 205, 34) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;01&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(255, 205, 34) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-cn&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(255, 205, 34) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(255, 205, 34) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(255, 205, 34) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;07&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(255, 205, 34) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;0800&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff5612831662-2&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;Processing &lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;by &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;Api&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;BaseController&lt;/span&gt;&lt;span class=&quot;crayon-p&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(161, 155, 162) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;#cors_preflight_check as JSON&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff5612831662-3&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-i&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(217, 85, 193) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;Can&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'t verify CSRF token authenticity.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff5612831662-4&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;Completed 422 Unprocessable Entity in 1ms (ActiveRecord: 0.0ms)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff5612831662-5&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff5612831662-6&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff5612831662-7&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff5612831662-8&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;actionpack (5.0.1) lib/action_controller/metal/request_forgery_protection.rb:195:in `handle_unverified_request'&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff5612831662-9&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;actionpack&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(255, 205, 34) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;5.0.1&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;lib&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;action_controller&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;metal&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;request_forgery_protection&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;rb&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(255, 205, 34) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;223&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;handle_unverified&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;_&lt;/span&gt;request&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff5612831662-10&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;actionpack (5.0.1) lib/action_controller/metal/request_forgery_protection.rb:218:in `verify_authenticity_token'&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff5612831662-11&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;activesupport&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(255, 205, 34) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;5.0.1&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;lib&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;active_support&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;callbacks&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;rb&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(255, 205, 34) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;382&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;block &lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;make&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;_&lt;/span&gt;lambda&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff5612831662-12&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;activesupport (5.0.1) lib/active_support/callbacks.rb:169:in `block (2 levels) in halting'&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff5612831662-13&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;actionpack&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(255, 205, 34) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;5.0.1&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;lib&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;abstract_controller&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;callbacks&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;rb&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(255, 205, 34) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;block&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-cn&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(255, 205, 34) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;levels&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;module&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;Callbacks&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;gt;&lt;/span&gt;'&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;Rails 서버는 CSRF(Cross Site Request Forgery)에 대한 처리를 위해 모든 Request에 대해 서버에서 Token을 발급하고 그 Token을 세션에 저장한 다음 Client로 부터 오는 GET method가 아닌 요청에 대해 해당 Token을 비교하여 다른 경우 위와 같이 CSRF 오류를 발생시킵니다. Rails 서버에서 Render된 HTML이라면 다음과 같은 코드를 삽입하고 Ajax 호출 시 Header에 해당 메타 정보에 있는 값을 추가해주면 되지만 도메인이 다른 경우라면 이렇게 사용할 수 없습니다.&lt;/p&gt;&lt;blockquote style=&quot;margin: 0px; padding: 8px 30px 15px; font-style: italic; font-stretch: normal; font-size: 1.1em; line-height: 1.3em; font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, Times, serif; color: rgb(102, 102, 102);&quot;&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px;&quot;&gt;&amp;lt;%= csrf_meta_tags %&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;CSRF에 대한 자세한 내용은 아래 링크를 참고하세요.&lt;/p&gt;&lt;ul style=&quot;margin: 1em 0px 1.4em 1.5em; padding: 0px; line-height: 1.4em; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;&lt;li style=&quot;margin: 0px 0px 0.5em; padding: 0px;&quot;&gt;&lt;a href=&quot;http://guides.rubyonrails.org/security.html#cross-site-request-forgery-csrf&quot; style=&quot;margin: 0px; padding: 0px; outline: none; color: rgb(193, 107, 5);&quot;&gt;http://guides.rubyonrails.org/security.html#cross-site-request-forgery-csrf&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;도메인이 다른 경우에는 이렇게 Token을 비교해서 에러 처리하는 부분을 skip 하도록 구성해야 하는데 ‘controllers/api/base_controller.rb’에 다음과 같이 설정하여 CSRF 문제를 해결할 수 있습니다.&lt;/p&gt;&lt;div id=&quot;crayon-5886aabbddff7355045701&quot; class=&quot;crayon-syntax crayon-theme-obsidian crayon-font-monaco crayon-os-pc print-yes notranslate&quot; data-settings=&quot; touchscreen minimize scroll-mouseover&quot; style=&quot;margin: 12px 0px; padding: 0px; box-sizing: border-box; text-size-adjust: none; width: 890px; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace; color: rgb(255, 255, 255); height: auto; overflow: hidden !important; position: relative !important; direction: ltr !important; text-shadow: none !important; background: rgb(40, 48, 51) !important; border-style: solid !important; border-width: 1px !important; border-color: rgb(40, 48, 51) !important; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-toolbar&quot; data-settings=&quot; show&quot; style=&quot;margin: 0px; padding: 0px; border-top: 0px; border-right: 0px; border-left: 0px; border-image: initial; width: 888px; position: relative; overflow: hidden; z-index: 4; background: rgb(60, 63, 65) !important; border-bottom: 1px solid rgb(89, 89, 89) !important; height: 18px !important; line-height: 18px !important;&quot;&gt;&lt;span class=&quot;crayon-title&quot; style=&quot;margin: 0px; padding: 0px 4px !important; font-family: inherit; color: rgb(187, 187, 187) !important; float: left; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/span&gt;&lt;div class=&quot;crayon-tools&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background: 0px center; border: 0px; position: absolute; right: 0px; height: 18px !important; line-height: 18px !important; font-weight: inherit !important; float: right !important;&quot;&gt;&lt;div class=&quot;crayon-button crayon-nums-button crayon-pressed&quot; title=&quot;줄 번호 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: -24px 0px; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; color: rgb(204, 204, 204); background-color: rgb(80, 80, 80) !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) -24px -32px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-plain-button&quot; title=&quot;일반 코드 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px -48px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-wrap-button&quot; title=&quot;줄 바꿈 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px -112px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-popup-button&quot; title=&quot;새 창에서 보기&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px 0px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-plain-wrap&quot; style=&quot;background: 0px center; border: 0px; margin: 0px !important; padding: 0px !important; height: auto !important;&quot;&gt;&lt;textarea wrap=&quot;soft&quot; class=&quot;crayon-plain print-no&quot; data-settings=&quot;dblclick&quot; style=&quot;background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 5px; padding-left: 5px; border-radius: 0px; -webkit-appearance: none; width: 888px; overflow: auto; margin: 0px; height: 124px; position: absolute; opacity: 0; box-shadow: none; white-space: pre; word-wrap: normal; resize: none; color: rgb(0, 0, 0); tab-size: 2; z-index: 0; font-size: 12px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; line-height: 15px !important;&quot;&gt;&lt;/textarea&gt;&lt;/div&gt;&lt;div class=&quot;crayon-main&quot; style=&quot;margin: 0px; padding: 0px; background: 0px center; border: 0px; width: 888px; overflow: auto; position: relative; z-index: 1;&quot;&gt;&lt;table class=&quot;crayon-table&quot; style=&quot;margin-left: 0px; font-size: 12px; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; padding: 0px !important; border: none !important; background: none !important; width: auto !important; border-spacing: 0px !important; border-collapse: collapse !important; table-layout: auto !important;&quot;&gt;&lt;tbody style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;tr class=&quot;crayon-row&quot; style=&quot;background: 0px center; margin: 0px !important; padding: 0px !important; border: none !important; vertical-align: top !important;&quot;&gt;&lt;td class=&quot;crayon-nums &quot; data-settings=&quot;show&quot; style=&quot;margin: 0px !important; padding: 0px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; vertical-align: top !important; border-bottom: 0px; background: rgb(63, 75, 78) !important; border-top: 0px; border-right: 1px dotted rgb(128, 128, 128) !important; border-left: 0px; border-image: initial; color: rgb(129, 150, 154) !important;&quot;&gt;&lt;div class=&quot;crayon-nums-content&quot; style=&quot;margin: 0px; padding: 0px; background: 0px center; border: 0px; white-space: nowrap; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff7355045701-1&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff7355045701-2&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff7355045701-3&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff7355045701-4&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff7355045701-5&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddff7355045701-6&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddff7355045701-7&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;7&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;crayon-code&quot; style=&quot;margin: 0px !important; padding: 0px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; vertical-align: top !important; border: 0px; background: 0px center; width: 869px;&quot;&gt;&lt;div class=&quot;crayon-pre&quot; style=&quot;margin: 0px; padding: 0px; white-space: pre; overflow: visible; tab-size: 2; background: none !important; border: none !important; color: rgb(255, 255, 255) !important; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff7355045701-1&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;module &lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;Api&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff7355045701-2&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-t&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;BaseController&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;ApplicationController&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff7355045701-3&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-p&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(161, 155, 162) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;# skip_before_action :verify_authenticity_token&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff7355045701-4&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;protect_from_forgery &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;_&lt;/span&gt;session&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff7355045701-5&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddff7355045701-6&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddff7355045701-7&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-st&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(147, 199, 99) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;end&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;인터넷에서 검색해보면 주석처리된 “verify_authenticity_token”을 skip 하라는 대답도 있는데 이것은 모든 경우에 대해 skip 하는 것이고 “protect_from_forgery” 옵션으로 주어진 상황(여기서는 null_session)에 대해서 CSRF 보호 처리를 하라는 것이기 때문에 이것이 더 안전하다고 생각되어 이것으로 적용하였습니다.&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;이것은 문제의 완벽한 해결이라기 보다 회피라고 할 수 있는데 이렇게 회피하는 경우라 할지라도 서비스 운영 시에는 Cross Domain API 호출에 대한 CSRF 문제 해결 방법을 찾아내서 적용해야 할 것입니다. 저도 아직 해결은 못했고 고민 중에 있습니다. 해결 방법을 아시는 분은 알려주시면 감사하겠습니다.&lt;/p&gt;&lt;h2 style=&quot;margin: 1.25em 0px 0.6em; padding: 0px; line-height: 1.4em; font-weight: normal; word-wrap: normal; font-size: 2em; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;HTTP Request Header에서 사용자 정의 Attribute 가져오기(Rails)&lt;/h2&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;이렇게 웹 페이지에서 서로 다른 서버로 호출하는 경우 인증을 위해서는 HTTP Request Header에 인증을 위한 Token을 추가해서 요청을 보내는 경우가 많습니다. 이 경우 사용자 정의된 Key를 사용하게 되는데 흔히 다음과 같이 사용합니다.&lt;/p&gt;&lt;div id=&quot;crayon-5886aabbddffb299028861&quot; class=&quot;crayon-syntax crayon-theme-obsidian crayon-font-monaco crayon-os-pc print-yes notranslate&quot; data-settings=&quot; touchscreen minimize scroll-mouseover&quot; style=&quot;margin: 12px 0px; padding: 0px; box-sizing: border-box; text-size-adjust: none; width: 890px; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace; color: rgb(255, 255, 255); height: auto; overflow: hidden !important; position: relative !important; direction: ltr !important; text-shadow: none !important; background: rgb(40, 48, 51) !important; border-style: solid !important; border-width: 1px !important; border-color: rgb(40, 48, 51) !important; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-toolbar&quot; data-settings=&quot; show&quot; style=&quot;margin: 0px; padding: 0px; border-top: 0px; border-right: 0px; border-left: 0px; border-image: initial; width: 888px; position: relative; overflow: hidden; z-index: 4; background: rgb(60, 63, 65) !important; border-bottom: 1px solid rgb(89, 89, 89) !important; height: 18px !important; line-height: 18px !important;&quot;&gt;&lt;span class=&quot;crayon-title&quot; style=&quot;margin: 0px; padding: 0px 4px !important; font-family: inherit; color: rgb(187, 187, 187) !important; float: left; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/span&gt;&lt;div class=&quot;crayon-tools&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background: 0px center; border: 0px; position: absolute; right: 0px; height: 18px !important; line-height: 18px !important; font-weight: inherit !important; float: right !important;&quot;&gt;&lt;div class=&quot;crayon-button crayon-nums-button crayon-pressed&quot; title=&quot;줄 번호 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: -24px 0px; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; color: rgb(204, 204, 204); background-color: rgb(80, 80, 80) !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) -24px -32px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-plain-button&quot; title=&quot;일반 코드 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px -48px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-wrap-button&quot; title=&quot;줄 바꿈 토글&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px -112px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-button crayon-popup-button&quot; title=&quot;새 창에서 보기&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; background-image: initial; background-position: 0px center; background-size: initial; background-repeat: no-repeat; background-attachment: initial; background-origin: initial; background-clip: initial; border: 0px; height: inherit; line-height: 15px; display: inline; position: relative; width: 24px; background-color: transparent !important; font-size: inherit !important; font-weight: inherit !important; float: left !important;&quot;&gt;&lt;div class=&quot;crayon-button-icon&quot; style=&quot;margin: -8px 0px 0px; padding: 0px; font-family: inherit; background: url(&amp;quot;../images/toolbar/buttons.png&amp;quot;) 0px 0px; border: 0px; width: 24px; position: absolute; left: 0px; top: 9px; height: 16px !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class=&quot;crayon-language&quot; style=&quot;margin: 0px; padding: 0px 8px 0px 4px !important; font-family: inherit; color: rgb(187, 187, 187) !important; float: left; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;JavaScript&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;crayon-plain-wrap&quot; style=&quot;background: 0px center; border: 0px; margin: 0px !important; padding: 0px !important; height: auto !important;&quot;&gt;&lt;textarea wrap=&quot;soft&quot; class=&quot;crayon-plain print-no&quot; data-settings=&quot;dblclick&quot; style=&quot;background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; border-width: 0px; border-style: initial; border-color: initial; padding-top: 0px; padding-right: 5px; padding-left: 5px; border-radius: 0px; -webkit-appearance: none; width: 888px; overflow: auto; margin: 0px; height: 109px; position: absolute; opacity: 0; box-shadow: none; white-space: pre; word-wrap: normal; resize: none; color: rgb(0, 0, 0); tab-size: 2; z-index: 0; font-size: 12px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; line-height: 15px !important;&quot;&gt;&lt;/textarea&gt;&lt;/div&gt;&lt;div class=&quot;crayon-main&quot; style=&quot;margin: 0px; padding: 0px; background: 0px center; border: 0px; width: 888px; overflow: auto; position: relative; z-index: 1;&quot;&gt;&lt;table class=&quot;crayon-table&quot; style=&quot;margin-left: 0px; font-size: 12px; margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; padding: 0px !important; border: none !important; background: none !important; width: auto !important; border-spacing: 0px !important; border-collapse: collapse !important; table-layout: auto !important;&quot;&gt;&lt;tbody style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;tr class=&quot;crayon-row&quot; style=&quot;background: 0px center; margin: 0px !important; padding: 0px !important; border: none !important; vertical-align: top !important;&quot;&gt;&lt;td class=&quot;crayon-nums &quot; data-settings=&quot;show&quot; style=&quot;margin: 0px !important; padding: 0px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; vertical-align: top !important; border-bottom: 0px; background: rgb(63, 75, 78) !important; border-top: 0px; border-right: 1px dotted rgb(128, 128, 128) !important; border-left: 0px; border-image: initial; color: rgb(129, 150, 154) !important;&quot;&gt;&lt;div class=&quot;crayon-nums-content&quot; style=&quot;margin: 0px; padding: 0px; background: 0px center; border: 0px; white-space: nowrap; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddffb299028861-1&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddffb299028861-2&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddffb299028861-3&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddffb299028861-4&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;crayon-num&quot; data-line=&quot;crayon-5886aabbddffb299028861-5&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; text-align: center; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;crayon-num crayon-striped-num&quot; data-line=&quot;crayon-5886aabbddffb299028861-6&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; text-align: center; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(204, 204, 204) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;6&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;crayon-code&quot; style=&quot;margin: 0px !important; padding: 0px !important; font-family: Monaco, MonacoRegular, &amp;quot;Courier New&amp;quot;, monospace !important; vertical-align: top !important; border: 0px; background: 0px center; width: 869px;&quot;&gt;&lt;div class=&quot;crayon-pre&quot; style=&quot;margin: 0px; padding: 0px; white-space: pre; overflow: visible; tab-size: 2; background: none !important; border: none !important; color: rgb(255, 255, 255) !important; font-size: 12px !important; line-height: 15px !important;&quot;&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddffb299028861-1&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;ajax&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddffb299028861-2&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;headers&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddffb299028861-3&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;'security-token'&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;localStorage&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;crayon-e&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(103, 140, 177) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;getItem&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;crayon-s&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(236, 118, 0) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&quot;security-token&quot;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddffb299028861-4&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line&quot; id=&quot;crayon-5886aabbddffb299028861-5&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; background: 0px center; border: 0px; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;crayon-v&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;crayon-o&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;crayon-h&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(172, 153, 171) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;crayon-i&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; color: rgb(217, 85, 193) !important; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;myUrl&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;crayon-line crayon-striped-line&quot; id=&quot;crayon-5886aabbddffb299028861-6&quot; style=&quot;margin: 0px; padding: 0px 5px; font-family: inherit; border-style: initial; border-image: initial; height: inherit; background-image: initial !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 1px !important; border-color: rgb(23, 23, 23) !important; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;crayon-sy&quot; style=&quot;margin: 0px; padding: 0px; font-family: inherit; height: inherit; font-size: inherit !important; line-height: inherit !important; font-weight: inherit !important;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;물론 위와 같이 인증을 위한 속성인 경우 ‘Authorization’ 와 같이 이미 정의된 key를 사용할 수 있지만 기존 많은 화면이 위와 같이 사용자 정의 key를사용하고 있어 어쩔수 없이 사용자 정의 속성을 이용해야 했습니다. 이런 상태에서 한참을 삽질했는데 내용은 다음과 같습니다.&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;Client에서 전송된 HTTP Request의 Header에 있는 속성 값을 읽기 위해서는 일반적으로 다음과 같이 합니다.&lt;/p&gt;&lt;blockquote style=&quot;margin: 0px; padding: 8px 30px 15px; font-style: italic; font-stretch: normal; font-size: 1.1em; line-height: 1.3em; font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, Times, serif; color: rgb(102, 102, 102);&quot;&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px;&quot;&gt;token = request.headers[‘security-token’]&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;이런 구현에서는 무조건 nil 이 반환됩니다. 반면 다음과 같은 속성은 잘 가져 옵니다.&lt;/p&gt;&lt;blockquote style=&quot;margin: 0px; padding: 8px 30px 15px; font-style: italic; font-stretch: normal; font-size: 1.1em; line-height: 1.3em; font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, Times, serif; color: rgb(102, 102, 102);&quot;&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px;&quot;&gt;referer = request.headers[‘Referer’]&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;한참을 검색한 결과 다음 Link로 가는 문서를 찾았는데 2004년 만들어진 CGI(Common Gateway Interface) 에 대한 표준 스펙입니다.&lt;/p&gt;&lt;ul style=&quot;margin: 1em 0px 1.4em 1.5em; padding: 0px; line-height: 1.4em; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;&lt;li style=&quot;margin: 0px 0px 0.5em; padding: 0px;&quot;&gt;&lt;a href=&quot;https://tools.ietf.org/html/rfc3875#section-4.1.18&quot; style=&quot;margin: 0px; padding: 0px; outline: none; color: rgb(193, 107, 5);&quot;&gt;https://tools.ietf.org/html/rfc3875#section-4.1.18&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;여기 보면&lt;/p&gt;&lt;blockquote style=&quot;margin: 0px; padding: 8px 30px 15px; font-style: italic; font-stretch: normal; font-size: 1.1em; line-height: 1.3em; font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, Times, serif; color: rgb(102, 102, 102);&quot;&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px;&quot;&gt;사용자 정의 Meta Variable은 반드시 대문자를 사용해야 하고, “HTTP_”로 시작하도록 처리되어야 하면 “-” 는 “_”로 변환되어야 한다.&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;라고 나와 있습니다.&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;즉 ‘security-token’과 같은 경우라면 ‘HTTP_SECURITY_TOKEN’으로 처리되어야 한다는 것입니다. Rails는 이 조건을 무조건 따르고 있기 때문에 서버 측에서 HTTP Request Header의 사용자 정의 속성의 키는 HTTP_&amp;lt;upper_case(user_defined_attribute_key)&amp;gt; 형태로 변환하여 Controller로 보내게됩니다. 즉 위와 같은 상황에서는 다음과 같이 처리해야 합니다.&lt;/p&gt;&lt;blockquote style=&quot;margin: 0px; padding: 8px 30px 15px; font-style: italic; font-stretch: normal; font-size: 1.1em; line-height: 1.3em; font-family: Georgia, &amp;quot;Times New Roman&amp;quot;, Times, serif; color: rgb(102, 102, 102);&quot;&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px;&quot;&gt;token = request.headers[‘HTTP_SECURITY_TOKEN’]&lt;/p&gt;&lt;/blockquote&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;‘Referer’의 속성은 정상적으로 잘 가져오는 이유도 여기에 있습니다.&lt;/p&gt;&lt;h2 style=&quot;margin: 1.25em 0px 0.6em; padding: 0px; line-height: 1.4em; font-weight: normal; word-wrap: normal; font-size: 2em; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;마치며&lt;/h2&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;아키텍처가 진화하고 보안에 대한 위협 다양한 위협이 존재하는 상황에서 Cross Domain에 대한 처리는 더 많아지고 있습니다. 이런 환경에서의 시스템도 그에 맞게 적절한 보안 구성이 필요하게 되었습니다. Cross Domain에서 정상적인 요청과 비정상적인 요청에 대한 판별 방법에 대해서 더 많이 고민해봐야 겠습니다.&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; padding: 0px; color: rgb(102, 102, 102); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px;&quot;&gt;출처:&amp;nbsp;http://www.popit.kr/corss-domain-api-%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%84%B1/&lt;/p&gt;</description>
      <category>Back-End/좋은글</category>
      <author>EnterKey</author>
      <guid isPermaLink="true">https://enterkey.tistory.com/418</guid>
      <comments>https://enterkey.tistory.com/418#entry418comment</comments>
      <pubDate>Tue, 24 Jan 2017 10:59:39 +0900</pubDate>
    </item>
    <item>
      <title>MySQL 중복 키 관리 방법 (INSERT 시 중복 키 관리 방법 (INSERT IGNORE, REPLACE INTO, ON DUPLICATE UPDATE)</title>
      <link>https://enterkey.tistory.com/417</link>
      <description>&lt;h2 id=&quot;section&quot; style=&quot;margin: 1.6em 0px 0.6em; padding: 0px; font-family: &amp;quot;Open Sans&amp;quot;, sans-serif; font-weight: 400; color: rgb(28, 28, 28); line-height: 1.2em; text-align: justify;&quot;&gt;안내&lt;/h2&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;본 문서는 블로그의 운영자인 본인이 Stackoverflow에 올린 답변을 정리한 글입니다. Stackoverflow에 올린 답변 중 한국에 있는 다른 개발자들에게도 도움이 될만한 Q&amp;amp;A를 보기 쉽게 정리했습니다. 가능한 경우는 SQLFiddle에 샘플 데이터도 같이 올려서 실습도 해 볼 수 있도록 하였습니다. 또한 전체 Q&amp;amp;A를 묶어서 PDF 파일로도 배포하고 있습니다. 방문해 주시는 많은 분들에게 도움이 되었으면 좋겠습니다.&lt;/p&gt;&lt;h2 id=&quot;stackoverflow-url&quot; style=&quot;margin: 1.6em 0px 0.6em; padding: 0px; font-family: &amp;quot;Open Sans&amp;quot;, sans-serif; font-weight: 400; color: rgb(28, 28, 28); line-height: 1.2em; text-align: justify;&quot;&gt;Stackoverflow URL&lt;/h2&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;http://stackoverflow.com/questions/20342518/on-duplicate-key-update-value-inserting-same-values-twice/20342598&lt;/p&gt;&lt;h2 id=&quot;section-1&quot; style=&quot;margin: 1.6em 0px 0.6em; padding: 0px; font-family: &amp;quot;Open Sans&amp;quot;, sans-serif; font-weight: 400; color: rgb(28, 28, 28); line-height: 1.2em; text-align: justify;&quot;&gt;질문&lt;/h2&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;다음과 같이 INSERT 구문을 사용 중이다.&lt;/p&gt;&lt;div class=&quot;language-sql highlighter-rouge&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;&lt;pre class=&quot;highlight&quot; style=&quot;margin-top: 20px; margin-bottom: 20px; padding: 1px 1px 1px 2px; background-color: rgb(234, 234, 234); border: 1px solid rgb(221, 221, 221); box-shadow: rgba(0, 0, 0, 0.0980392) 1px 1px; overflow-x: auto; line-height: 17.92px; font-size: 12.8px;&quot;&gt;&lt;code style=&quot;margin: 0px; padding: 0px 0.2em; font-family: &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Courier, monospace;&quot;&gt;&lt;span class=&quot;k&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(133, 153, 0);&quot;&gt;INSERT&lt;/span&gt; &lt;span class=&quot;k&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(133, 153, 0);&quot;&gt;INTO&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;person&lt;/span&gt; &lt;span class=&quot;k&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(133, 153, 0);&quot;&gt;VALUES&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(133, 153, 0);&quot;&gt;NULL&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(42, 161, 152);&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(42, 161, 152);&quot;&gt;'James'&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(42, 161, 152);&quot;&gt;'Barkely'&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(133, 153, 0);&quot;&gt;ON&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;DUPLICATE&lt;/span&gt; &lt;span class=&quot;k&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(133, 153, 0);&quot;&gt;KEY&lt;/span&gt; &lt;span class=&quot;k&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(133, 153, 0);&quot;&gt;UPDATE&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;academy_id&lt;/span&gt; &lt;span class=&quot;o&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(133, 153, 0);&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;k&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(133, 153, 0);&quot;&gt;VALUES&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;academy_id&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;중복된 값을 여러 번 INSERT한 뒤에 SELECT를 해 보면 중복된 값이 저장되어 있다.&lt;/p&gt;&lt;div class=&quot;highlighter-rouge&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;&lt;pre class=&quot;highlight&quot; style=&quot;margin-top: 20px; margin-bottom: 20px; padding: 1px 1px 1px 2px; background-color: rgb(234, 234, 234); border: 1px solid rgb(221, 221, 221); box-shadow: rgba(0, 0, 0, 0.0980392) 1px 1px; overflow-x: auto; line-height: 17.92px; font-size: 12.8px;&quot;&gt;&lt;code style=&quot;margin: 0px; padding: 0px 0.2em; font-family: &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Courier, monospace;&quot;&gt;mysql&amp;gt; SELECT * FROM person;
+----+------------+------------+-----------+
| id | academy_id | first_name | last_name |
+----+------------+------------+-----------+
|  1 |         15 | James      | Barkely   |
|  2 |         15 | Cynthia    | Smith     |
|  3 |         15 | James      | Barkely   |
|  4 |         15 | Cynthia    | Smith     |
|  5 |         15 | James      | Barkely   |
+----+------------+------------+-----------+
5 rows in set (0.00 sec)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;무엇이 잘못된 것인가?&lt;/p&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;&lt;ins class=&quot;adsbygoogle&quot; data-ad-client=&quot;ca-pub-7500017475798377&quot; data-ad-slot=&quot;4703989831&quot; data-adsbygoogle-status=&quot;done&quot; style=&quot;margin: 0px; padding: 0px; display: inline-block; width: 728px; height: 90px;&quot;&gt;&lt;ins id=&quot;aswift_1_expand&quot; style=&quot;margin: 0px; padding: 0px; display: inline-table; border: none; height: 90px; position: relative; visibility: visible; width: 728px; background-color: transparent;&quot;&gt;&lt;ins id=&quot;aswift_1_anchor&quot; style=&quot;margin: 0px; padding: 0px; display: block; border: none; height: 90px; position: relative; visibility: visible; width: 728px; background-color: transparent;&quot;&gt;&lt;iframe width=&quot;728&quot; height=&quot;90&quot; frameborder=&quot;0&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; vspace=&quot;0&quot; hspace=&quot;0&quot; allowtransparency=&quot;true&quot; scrolling=&quot;no&quot; allowfullscreen=&quot;true&quot; id=&quot;aswift_1&quot; name=&quot;aswift_1&quot; style=&quot;margin: 0px; padding: 0px; left: 0px; position: absolute; top: 0px;&quot;&gt;&lt;/iframe&gt;&lt;/ins&gt;&lt;/ins&gt;&lt;/ins&gt;&lt;/p&gt;&lt;h2 id=&quot;section-2&quot; style=&quot;margin: 1.6em 0px 0.6em; padding: 0px; font-family: &amp;quot;Open Sans&amp;quot;, sans-serif; font-weight: 400; color: rgb(28, 28, 28); line-height: 1.2em; text-align: justify;&quot;&gt;답변&lt;/h2&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;중복 키 관리를 위해서는 중복 방지를 할 컬럼이&amp;nbsp;&lt;code class=&quot;highlighter-rouge&quot; style=&quot;margin: 0px; padding: 0px 0.2em; font-family: &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Courier, monospace; background-color: rgb(234, 234, 234);&quot;&gt;PRIMARY KEY&lt;/code&gt;이거나&amp;nbsp;&lt;code class=&quot;highlighter-rouge&quot; style=&quot;margin: 0px; padding: 0px 0.2em; font-family: &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Courier, monospace; background-color: rgb(234, 234, 234);&quot;&gt;UNIQUE INDEX&lt;/code&gt;이어야 한다. 질문자의 경우 first_name과 last_name의 조합을 이용하여 중복 관리를 하려는 것 같다. 따라서다음과 같이 last_name, last_name을 PRIMARY KEY로 설정하거나,&lt;/p&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;ALTER TABLE person ADD PRIMARY KEY (first_name, last_name) UNIQUE INDEX를 추가해야 한다.&lt;/p&gt;&lt;div class=&quot;highlighter-rouge&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;&lt;pre class=&quot;highlight&quot; style=&quot;margin-top: 20px; margin-bottom: 20px; padding: 1px 1px 1px 2px; background-color: rgb(234, 234, 234); border: 1px solid rgb(221, 221, 221); box-shadow: rgba(0, 0, 0, 0.0980392) 1px 1px; overflow-x: auto; line-height: 17.92px; font-size: 12.8px;&quot;&gt;&lt;code style=&quot;margin: 0px; padding: 0px 0.2em; font-family: &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Courier, monospace;&quot;&gt;ALTER TABLE person ADD UNIQUE INDEX (first_name, last_name)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;INSERT 시 중복 키 관리를 위한 방법에는 다음과 같이 3가지가 있다.&lt;/p&gt;&lt;ol style=&quot;margin: 0px 0px 0px 1.35em; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;&lt;li style=&quot;margin: 0px; padding: 0px;&quot;&gt;INSERT IGNORE&lt;/li&gt;&lt;li style=&quot;margin: 0px; padding: 0px;&quot;&gt;REPLACE INTO …&lt;/li&gt;&lt;li style=&quot;margin: 0px; padding: 0px;&quot;&gt;INSERT INTO … ON DUPLICATE UPDATE&lt;/li&gt;&lt;/ol&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;중복 키 관리는 본 책의 앞 부분에서 잠시 언급되었는데 각각의 특징을 좀 더 자세히 알아보도록 하자.&lt;/p&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;앞의 person 테이블을 다음과 같이 생성한 뒤에 테스트를 진행하였다.&lt;/p&gt;&lt;div class=&quot;highlighter-rouge&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;&lt;pre class=&quot;highlight&quot; style=&quot;margin-top: 20px; margin-bottom: 20px; padding: 1px 1px 1px 2px; background-color: rgb(234, 234, 234); border: 1px solid rgb(221, 221, 221); box-shadow: rgba(0, 0, 0, 0.0980392) 1px 1px; overflow-x: auto; line-height: 17.92px; font-size: 12.8px;&quot;&gt;&lt;code style=&quot;margin: 0px; padding: 0px 0.2em; font-family: &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Courier, monospace;&quot;&gt;CREATE TABLE person
(
  id INT NOT NULL AUTO_INCREMENT,
  academy_id INT,
  first_name VARCHAR(20),
  last_name VARCHAR(20),
  PRIMARY KEY (id),
  UNIQUE INDEX (first_name, last_name)
);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&quot;insert-ignore&quot; style=&quot;margin: 1.6em 0px 0.6em; padding: 0px; font-family: &amp;quot;Open Sans&amp;quot;, sans-serif; font-weight: 400; color: rgb(28, 28, 28); line-height: 1.2em; text-align: justify;&quot;&gt;INSERT IGNORE&lt;/h3&gt;&lt;div class=&quot;highlighter-rouge&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;&lt;pre class=&quot;highlight&quot; style=&quot;margin-top: 20px; margin-bottom: 20px; padding: 1px 1px 1px 2px; background-color: rgb(234, 234, 234); border: 1px solid rgb(221, 221, 221); box-shadow: rgba(0, 0, 0, 0.0980392) 1px 1px; overflow-x: auto; line-height: 17.92px; font-size: 12.8px;&quot;&gt;&lt;code style=&quot;margin: 0px; padding: 0px 0.2em; font-family: &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Courier, monospace;&quot;&gt;`INSERT IGNORE`는 중복 키 에러가 발생했을 때 신규로 입력되는 레코드를 무시하는 단순한 방법이다. 다음의 예를 보면 중복 키 에러가 발생했을 때 INSERT 구문 자체는 오류가 발생하지 않고, 대신'0 row affected'가 출력된 것을 볼 수 있다.

mysql&amp;gt; INSERT IGNORE INTO person VALUES (NULL, 15, 'James', 'Barkely');
Query OK, 1 row affected (0.00 sec)
 
mysql&amp;gt; INSERT IGNORE INTO person VALUES (NULL, 15, 'Cynthia', 'Smith');
Query OK, 1 row affected (0.00 sec)
 
mysql&amp;gt; INSERT IGNORE INTO person VALUES (NULL, 15, 'James', 'Barkely');
Query OK, 0 rows affected (0.00 sec)
 
mysql&amp;gt; INSERT IGNORE INTO person VALUES (NULL, 15, 'Cynthia', 'Smith');
Query OK, 0 rows affected (0.00 sec)
 
mysql&amp;gt; INSERT IGNORE INTO person VALUES (NULL, 15, 'James', 'Barkely');
Query OK, 0 rows affected (0.00 sec)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;당연히 SELECT의 결과는 2건만 존재한다.&lt;/p&gt;&lt;div class=&quot;highlighter-rouge&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;&lt;pre class=&quot;highlight&quot; style=&quot;margin-top: 20px; margin-bottom: 20px; padding: 1px 1px 1px 2px; background-color: rgb(234, 234, 234); border: 1px solid rgb(221, 221, 221); box-shadow: rgba(0, 0, 0, 0.0980392) 1px 1px; overflow-x: auto; line-height: 17.92px; font-size: 12.8px;&quot;&gt;&lt;code style=&quot;margin: 0px; padding: 0px 0.2em; font-family: &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Courier, monospace;&quot;&gt;mysql&amp;gt; SELECT * FROM person;
+----+------------+------------+-----------+
| id | academy_id | first_name | last_name |
+----+------------+------------+-----------+
|  1 |         15 | James      | Barkely   |
|  2 |         15 | Cynthia    | Smith     |
+----+------------+------------+-----------+
2 rows in set (0.00 sec)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;AUTO_INCREMENT 컬럼의 값이 1, 2인 것에 주목하라&lt;/p&gt;&lt;h3 id=&quot;replace-into&quot; style=&quot;margin: 1.6em 0px 0.6em; padding: 0px; font-family: &amp;quot;Open Sans&amp;quot;, sans-serif; font-weight: 400; color: rgb(28, 28, 28); line-height: 1.2em; text-align: justify;&quot;&gt;REPLACE INTO&lt;/h3&gt;&lt;div class=&quot;highlighter-rouge&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;&lt;pre class=&quot;highlight&quot; style=&quot;margin-top: 20px; margin-bottom: 20px; padding: 1px 1px 1px 2px; background-color: rgb(234, 234, 234); border: 1px solid rgb(221, 221, 221); box-shadow: rgba(0, 0, 0, 0.0980392) 1px 1px; overflow-x: auto; line-height: 17.92px; font-size: 12.8px;&quot;&gt;&lt;code style=&quot;margin: 0px; padding: 0px 0.2em; font-family: &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Courier, monospace;&quot;&gt;&quot;REPLACE INTO&quot;는 &quot;INSERT INTO&quot; 구문에서 INSERT를 REPLACE로 바꾼 구문이다. 사용 방법은 &quot;INSERT INTO&quot;와 완벽히 동일하다.

mysql&amp;gt; REPLACE INTO person VALUES (NULL, 15, 'James', 'Barkely');
Query OK, 1 row affected (0.00 sec)
 
mysql&amp;gt; REPLACE INTO person VALUES (NULL, 15, 'Cynthia', 'Smith');
Query OK, 1 row affected (0.00 sec)
 
mysql&amp;gt; REPLACE INTO person VALUES (NULL, 15, 'James', 'Barkely');
Query OK, 2 rows affected (0.00 sec)
 
mysql&amp;gt; REPLACE INTO person VALUES (NULL, 15, 'Cynthia', 'Smith');
Query OK, 2 rows affected (0.00 sec)
 
mysql&amp;gt; REPLACE INTO person VALUES (NULL, 15, 'James', 'Barkely');
Query OK, 2 rows affected (0.00 sec)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot; style=&quot;margin: 0px; padding: 0px 0.2em; font-family: &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Courier, monospace; background-color: rgb(234, 234, 234);&quot;&gt;REPLACE INTO&lt;/code&gt;의 결과는&amp;nbsp;&lt;code class=&quot;highlighter-rouge&quot; style=&quot;margin: 0px; padding: 0px 0.2em; font-family: &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Courier, monospace; background-color: rgb(234, 234, 234);&quot;&gt;INSERT IGNORE&lt;/code&gt;와 다르게 중복 키 오류 발생 시 ‘2 rows affected’가 출력되었다. SELECT 결과는 다음과 같다.&lt;/p&gt;&lt;div class=&quot;highlighter-rouge&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;&lt;pre class=&quot;highlight&quot; style=&quot;margin-top: 20px; margin-bottom: 20px; padding: 1px 1px 1px 2px; background-color: rgb(234, 234, 234); border: 1px solid rgb(221, 221, 221); box-shadow: rgba(0, 0, 0, 0.0980392) 1px 1px; overflow-x: auto; line-height: 17.92px; font-size: 12.8px;&quot;&gt;&lt;code style=&quot;margin: 0px; padding: 0px 0.2em; font-family: &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Courier, monospace;&quot;&gt;mysql&amp;gt; SELECT * FROM person;
+----+------------+------------+-----------+
| id | academy_id | first_name | last_name |
+----+------------+------------+-----------+
|  4 |         15 | Cynthia    | Smith     |
|  5 |         15 | James      | Barkely   |
+----+------------+------------+-----------+
2 rows in set (0.00 sec)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;id가 4, 5로 변하였다. 이를 ‘2 rows affected’와 함께 종합적으로 판단한다면 “REPLACE INTO”는 중복 키 오류 발생 시 기존 레코드를 삭제하고 새로운 레코드를 입력한 것이다. 그래서 ‘2 rows affected’가 출력되었다. 1건은 DELETE, 1건은 INSERT로 보면 되고, 새로운 레코드가 입력되면서 AUTO_INCREMENT 컬럼의 값이 매번 새롭게 발급되었다.&lt;/p&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;AUTO_INCREMENT는 흔히 레코드를 식별할 수 있는 id로 사용되는데 이 값이 변경될 수 있으므로 “REPLACE INTO”는 그다지 좋은 방법이 아니다.&lt;/p&gt;&lt;h3 id=&quot;on-duplicate-update&quot; style=&quot;margin: 1.6em 0px 0.6em; padding: 0px; font-family: &amp;quot;Open Sans&amp;quot;, sans-serif; font-weight: 400; color: rgb(28, 28, 28); line-height: 1.2em; text-align: justify;&quot;&gt;ON DUPLICATE UPDATE&lt;/h3&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;&lt;code class=&quot;highlighter-rouge&quot; style=&quot;margin: 0px; padding: 0px 0.2em; font-family: &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Courier, monospace; background-color: rgb(234, 234, 234);&quot;&gt;ON DUPLICATE UPDATE&lt;/code&gt;는 중복 키 오류 발생 시 사용자가 원하는 값을 직접 설정할 수 있다는 장점이 있다. 우선 기본적인 사용 방법을 보자.&lt;/p&gt;&lt;div class=&quot;highlighter-rouge&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;&lt;pre class=&quot;highlight&quot; style=&quot;margin-top: 20px; margin-bottom: 20px; padding: 1px 1px 1px 2px; background-color: rgb(234, 234, 234); border: 1px solid rgb(221, 221, 221); box-shadow: rgba(0, 0, 0, 0.0980392) 1px 1px; overflow-x: auto; line-height: 17.92px; font-size: 12.8px;&quot;&gt;&lt;code style=&quot;margin: 0px; padding: 0px 0.2em; font-family: &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Courier, monospace;&quot;&gt;mysql&amp;gt; INSERT INTO person VALUES (NULL, 15, 'James', 'Barkely')
    -&amp;gt;     ON DUPLICATE KEY UPDATE academy_id = VALUES(academy_id);
Query OK, 1 row affected (0.00 sec)
 
mysql&amp;gt;
mysql&amp;gt; INSERT INTO person VALUES (NULL, 15, 'Cynthia', 'Smith')
    -&amp;gt;     ON DUPLICATE KEY UPDATE academy_id = VALUES(academy_id);
Query OK, 1 row affected (0.00 sec)
 
mysql&amp;gt;
mysql&amp;gt; INSERT INTO person VALUES (NULL, 15, 'James', 'Barkely')
    -&amp;gt;     ON DUPLICATE KEY UPDATE academy_id = VALUES(academy_id);
Query OK, 0 rows affected (0.00 sec)
 
mysql&amp;gt;
mysql&amp;gt; INSERT INTO person VALUES (NULL, 15, 'Cynthia', 'Smith')
    -&amp;gt;     ON DUPLICATE KEY UPDATE academy_id = VALUES(academy_id);
Query OK, 0 rows affected (0.00 sec)
 
mysql&amp;gt;
mysql&amp;gt; INSERT INTO person VALUES (NULL, 15, 'James', 'Barkely')
    -&amp;gt;     ON DUPLICATE KEY UPDATE academy_id = VALUES(academy_id);
Query OK, 0 rows affected (0.00 sec)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;INSERT 결과만 보면 “INSERT IGNORE”와 동일하다.&lt;/p&gt;&lt;div class=&quot;highlighter-rouge&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;&lt;pre class=&quot;highlight&quot; style=&quot;margin-top: 20px; margin-bottom: 20px; padding: 1px 1px 1px 2px; background-color: rgb(234, 234, 234); border: 1px solid rgb(221, 221, 221); box-shadow: rgba(0, 0, 0, 0.0980392) 1px 1px; overflow-x: auto; line-height: 17.92px; font-size: 12.8px;&quot;&gt;&lt;code style=&quot;margin: 0px; padding: 0px 0.2em; font-family: &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Courier, monospace;&quot;&gt;mysql&amp;gt; SELECT * FROM person;
+----+------------+------------+-----------+
| id | academy_id | first_name | last_name |
+----+------------+------------+-----------+
|  1 |         15 | James      | Barkely   |
|  2 |         15 | Cynthia    | Smith     |
+----+------------+------------+-----------+
2 rows in set (0.00 sec)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;SELECT 결과를 보니, 중복 키 오류 발생 시 기존 레코드는 그대로 남아 있는 것 같다. 즉, id 값이 변경되지 않았다. 그렇다면 “ON DUPLICATE UPDATE”는 “INSERT IGNORE” 대비 장점은 없을까?아니다. 복잡하고 어려운 대신에 중복 키 오류 발생 시 사용자가 원하는 행동을 지정할 수 있다는 장점이 있다. 예를 위해 person 테이블 구조를 다음과 같이 변경했다.&lt;/p&gt;&lt;div class=&quot;highlighter-rouge&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;&lt;pre class=&quot;highlight&quot; style=&quot;margin-top: 20px; margin-bottom: 20px; padding: 1px 1px 1px 2px; background-color: rgb(234, 234, 234); border: 1px solid rgb(221, 221, 221); box-shadow: rgba(0, 0, 0, 0.0980392) 1px 1px; overflow-x: auto; line-height: 17.92px; font-size: 12.8px;&quot;&gt;&lt;code style=&quot;margin: 0px; padding: 0px 0.2em; font-family: &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Courier, monospace;&quot;&gt;CREATE TABLE person
(
  id INT NOT NULL AUTO_INCREMENT,
  academy_id INT,
  first_name VARCHAR(20),
  last_name VARCHAR(20),
  insert_cnt INT,
  PRIMARY KEY (id),
  UNIQUE INDEX (first_name, last_name)
);
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;그런 뒤 다음과 같은 INSERT 구문을 실행하였다.&lt;/p&gt;&lt;div class=&quot;highlighter-rouge&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;&lt;pre class=&quot;highlight&quot; style=&quot;margin-top: 20px; margin-bottom: 20px; padding: 1px 1px 1px 2px; background-color: rgb(234, 234, 234); border: 1px solid rgb(221, 221, 221); box-shadow: rgba(0, 0, 0, 0.0980392) 1px 1px; overflow-x: auto; line-height: 17.92px; font-size: 12.8px;&quot;&gt;&lt;code style=&quot;margin: 0px; padding: 0px 0.2em; font-family: &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Courier, monospace;&quot;&gt;mysql&amp;gt; INSERT INTO person VALUES (NULL, 15, 'James', 'Barkely', 1)
    -&amp;gt;     ON DUPLICATE KEY UPDATE insert_cnt = insert_cnt + 1;
Query OK, 1 row affected (0.00 sec)
 
mysql&amp;gt;
mysql&amp;gt; INSERT INTO person VALUES (NULL, 15, 'Cynthia', 'Smith', 1)
    -&amp;gt;     ON DUPLICATE KEY UPDATE insert_cnt = insert_cnt + 1;
Query OK, 1 row affected (0.00 sec)
 
mysql&amp;gt;
mysql&amp;gt; INSERT INTO person VALUES (NULL, 15, 'James', 'Barkely', 1)
    -&amp;gt;     ON DUPLICATE KEY UPDATE insert_cnt = insert_cnt + 1;
Query OK, 2 rows affected (0.00 sec)
 
mysql&amp;gt;
mysql&amp;gt; INSERT INTO person VALUES (NULL, 15, 'Cynthia', 'Smith', 1)
    -&amp;gt;     ON DUPLICATE KEY UPDATE insert_cnt = insert_cnt + 1;
Query OK, 2 rows affected (0.00 sec)
 
mysql&amp;gt;
mysql&amp;gt; INSERT INTO person VALUES (NULL, 15, 'James', 'Barkely', 1)
    -&amp;gt;     ON DUPLICATE KEY UPDATE insert_cnt = insert_cnt + 1;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;Query OK, 2 rows affected (0.00 sec) SELECT를 해 보면 insert_cnt에는 해당 중복 값이 몇 번 INSERT 시도가 되었는지 기록되어 있을 것이다.&lt;/p&gt;&lt;div class=&quot;highlighter-rouge&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;&lt;pre class=&quot;highlight&quot; style=&quot;margin-top: 20px; margin-bottom: 20px; padding: 1px 1px 1px 2px; background-color: rgb(234, 234, 234); border: 1px solid rgb(221, 221, 221); box-shadow: rgba(0, 0, 0, 0.0980392) 1px 1px; overflow-x: auto; line-height: 17.92px; font-size: 12.8px;&quot;&gt;&lt;code style=&quot;margin: 0px; padding: 0px 0.2em; font-family: &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Courier, monospace;&quot;&gt;mysql&amp;gt; SELECT * FROM person;
+----+------------+------------+-----------+------------+
| id | academy_id | first_name | last_name | insert_cnt |
+----+------------+------------+-----------+------------+
|  1 |         15 | James      | Barkely   |          3 |
|  2 |         15 | Cynthia    | Smith     |          2 |
+----+------------+------------+-----------+------------+
2 rows in set (0.00 sec)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;이 외에도 다양한 용도로 활용될 수 있다.&lt;/p&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;주의해야 할 점은 INSERT 구문에 주어진 값으로 UPDATE하고자 할 때는 항상 “VALUES(column)”과 같이 VALUES()로 감싸야 한다는 점이다. 만약 다음과 같이 VALUES() 없이 사용한다면 기존에존재하는 레코드의 컬럼 값을 의미하게 된다.&lt;/p&gt;&lt;div class=&quot;language-sql highlighter-rouge&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;&lt;pre class=&quot;highlight&quot; style=&quot;margin-top: 20px; margin-bottom: 20px; padding: 1px 1px 1px 2px; background-color: rgb(234, 234, 234); border: 1px solid rgb(221, 221, 221); box-shadow: rgba(0, 0, 0, 0.0980392) 1px 1px; overflow-x: auto; line-height: 17.92px; font-size: 12.8px;&quot;&gt;&lt;code style=&quot;margin: 0px; padding: 0px 0.2em; font-family: &amp;quot;Bitstream Vera Sans Mono&amp;quot;, Courier, monospace;&quot;&gt;&lt;span class=&quot;k&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(133, 153, 0);&quot;&gt;INSERT&lt;/span&gt; &lt;span class=&quot;k&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(133, 153, 0);&quot;&gt;INTO&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;person&lt;/span&gt; &lt;span class=&quot;k&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(133, 153, 0);&quot;&gt;VALUES&lt;/span&gt; &lt;span class=&quot;p&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;k&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(133, 153, 0);&quot;&gt;NULL&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;mi&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(42, 161, 152);&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(42, 161, 152);&quot;&gt;'James'&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;s1&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(42, 161, 152);&quot;&gt;'Barkely'&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;)&lt;/span&gt;
    &lt;span class=&quot;k&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(133, 153, 0);&quot;&gt;ON&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;DUPLICATE&lt;/span&gt; &lt;span class=&quot;k&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(133, 153, 0);&quot;&gt;KEY&lt;/span&gt; &lt;span class=&quot;k&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(133, 153, 0);&quot;&gt;UPDATE&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;academy_id&lt;/span&gt; &lt;span class=&quot;o&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(133, 153, 0);&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;academy_id&lt;/span&gt;&lt;span class=&quot;p&quot; style=&quot;margin: 0px; padding: 0px; color: rgb(147, 161, 161);&quot;&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p style=&quot;margin: 1em 0px; padding: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;앞과 같이 사용했을 때, 기존 person 테이블에 존재하는 ‘James Barkely’의 academy_id가 13이었다면, INSERT 후에도 academy_id는 여전히 13이다.&lt;/p&gt;&lt;h3 id=&quot;section-3&quot; style=&quot;margin: 1.6em 0px 0.6em; padding: 0px; font-family: &amp;quot;Open Sans&amp;quot;, sans-serif; font-weight: 400; color: rgb(28, 28, 28); line-height: 1.2em; text-align: justify;&quot;&gt;요약&lt;/h3&gt;&lt;ul style=&quot;margin: 0px 0px 0px 1.35em; padding: 0px 0px 0px 1.5em; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; font-size: 16px; text-align: justify;&quot;&gt;&lt;li style=&quot;margin: 0px; padding: 0px;&quot;&gt;INSERT IGNORE&lt;/li&gt;&lt;li style=&quot;margin: 0px; padding: 0px;&quot;&gt;REPLACE INTO …&lt;/li&gt;&lt;li style=&quot;margin: 0px; padding: 0px;&quot;&gt;INSERT INTO … ON DUPLICATE UPDATE&lt;/li&gt;&lt;/ul&gt;&lt;table style=&quot;margin: 0px; padding: 0px; font-size: 16px; border-collapse: collapse; border-spacing: 0px; color: rgb(84, 84, 84); font-family: &amp;quot;Titillium Web&amp;quot;, Helvetica, Arial, sans-serif; text-align: justify;&quot;&gt;&lt;thead style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;tr style=&quot;margin: 0px; padding: 0px; border-top: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;th style=&quot;margin: 0px; padding: 6px 13px; border: 1px solid rgb(204, 204, 204);&quot;&gt;분류&lt;/th&gt;&lt;th style=&quot;margin: 0px; padding: 6px 13px; border: 1px solid rgb(204, 204, 204);&quot;&gt;특징&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody style=&quot;margin: 0px; padding: 0px;&quot;&gt;&lt;tr style=&quot;margin: 0px; padding: 0px; border-top: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;td style=&quot;margin: 0px; padding: 6px 13px; border: 1px solid rgb(204, 204, 204);&quot;&gt;INSERT IGNORE&lt;/td&gt;&lt;td style=&quot;margin: 0px; padding: 6px 13px; border: 1px solid rgb(204, 204, 204);&quot;&gt;기존 레코드가 남아 있음&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;기존 레코드의 AUTO_INCREMENT 값은 변하지 않음&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;margin: 0px; padding: 0px; background-color: rgb(248, 248, 248); border-top: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;td style=&quot;margin: 0px; padding: 6px 13px; border: 1px solid rgb(204, 204, 204);&quot;&gt;REPLACE INTO&lt;/td&gt;&lt;td style=&quot;margin: 0px; padding: 6px 13px; border: 1px solid rgb(204, 204, 204);&quot;&gt;기존 레코드가 삭제되고, 신규 레코드가 INSERT됨&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;따라서 AUTO_INCREMENT의 값이 변경됨&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;margin: 0px; padding: 0px; border-top: 1px solid rgb(204, 204, 204);&quot;&gt;&lt;td style=&quot;margin: 0px; padding: 6px 13px; border: 1px solid rgb(204, 204, 204);&quot;&gt;ON DUPLICATE UPDATE&lt;/td&gt;&lt;td style=&quot;margin: 0px; padding: 6px 13px; border: 1px solid rgb(204, 204, 204);&quot;&gt;INSERT IGNORE의 장점 포함함&lt;br style=&quot;margin: 0px; padding: 0px;&quot;&gt;중복 키 오류 발생 시, 사용자가 UPDATE될 값을 지정할 수 있음&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;출처:&amp;nbsp;http://jason-heo.github.io/mysql/2014/03/05/manage-dup-key2.html&lt;/p&gt;</description>
      <category>DB/MySQL</category>
      <author>EnterKey</author>
      <guid isPermaLink="true">https://enterkey.tistory.com/417</guid>
      <comments>https://enterkey.tistory.com/417#entry417comment</comments>
      <pubDate>Mon, 23 Jan 2017 19:05:40 +0900</pubDate>
    </item>
    <item>
      <title>MySQL 트랜잭션 Isolation Level로 인한 장애 사전 예방 법</title>
      <link>https://enterkey.tistory.com/416</link>
      <description>&lt;h1 id=&quot;MySQLIsolationLevel에따른SQL사용주의사항-Overview&quot; style=&quot;margin-top: 1.71429rem; margin-right: 0px; margin-bottom: 1.71429rem; padding: 0px; border: 0px; font-size: 1.5rem; vertical-align: baseline; clear: both; line-height: 1.5; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;Overview&lt;/h1&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;MySQL에서 전체 데이터를 Scan 하는 쿼리를 질의하여 서비스에 큰 영향이 발생할 수 있습니다.&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;InnoDB 스토리지 엔진의 기본 Isolation Level이&amp;nbsp;REPEATABLE-READ이기 때문에 발생하는 현상인데, 이것은 세션 변수 일부를 변경하여 문제를 사전에 해결할 수 있습니다.&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;얼마 전 이와 비슷한 장애가 발생하여 원인 분석 및 해결 방안을 포스팅합니다.&lt;/p&gt;&lt;h2 id=&quot;MySQLIsolationLevel에따른SQL사용주의사항-Symptoms&quot; style=&quot;margin: 1.71429rem 0px; padding: 0px; border: 0px; font-size: 1.28571rem; vertical-align: baseline; clear: both; line-height: 1.6; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;Symptoms&lt;/h2&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;Transaction Isolation Level이&amp;nbsp;REPEATABLE-READ(MySQL Default) 상태에서&amp;nbsp;Insert into Select 혹은&amp;nbsp;Create Table As Select 로 전체 테이블 참조 쿼리 실행 시 참조 테이블에 데이터 변경 작업이 “대기” 상태에 빠지는 현상이 있습니다.&lt;/p&gt;&lt;pre escaped=&quot;true&quot; style=&quot;margin-top: 1.71429rem; margin-bottom: 1.71429rem; padding: 1.71429rem; border: 1px solid rgb(237, 237, 237); font-size: 0.857143rem; vertical-align: baseline; color: rgb(102, 102, 102); font-family: Consolas, Monaco, &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 1.71429; overflow: auto; background-color: rgb(255, 255, 255);&quot;&gt;mysql&amp;gt; show variables like 'tx_isolation';
+---------------+-----------------+
| Variable_name | Value&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |
+---------------+-----------------+
| tx_isolation&amp;nbsp; | REPEATABLE-READ |
+---------------+-----------------+
1 row in set (0.00 sec)&lt;/pre&gt;&lt;h3 id=&quot;MySQLIsolationLevel에따른SQL사용주의사항-InsertIntoSelect&quot; style=&quot;margin: 1.71429rem 0px; padding: 0px; border: 0px; font-size: 1.14286rem; vertical-align: baseline; clear: both; line-height: 1.84615; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;Insert Into Select&lt;/h3&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;&quot;&gt;세션1&lt;/strong&gt;&lt;/p&gt;&lt;pre escaped=&quot;true&quot; style=&quot;margin-top: 1.71429rem; margin-bottom: 1.71429rem; padding: 1.71429rem; border: 1px solid rgb(237, 237, 237); font-size: 0.857143rem; vertical-align: baseline; color: rgb(102, 102, 102); font-family: Consolas, Monaco, &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 1.71429; overflow: auto; background-color: rgb(255, 255, 255);&quot;&gt;mysql&amp;gt; insert into activity_test_stat2
    -&amp;gt; select
    -&amp;gt;     act_type,
    -&amp;gt;     to_uid,
    -&amp;gt;     act_time,
    -&amp;gt;     to_user_name,
    -&amp;gt;     before_user_name,
    -&amp;gt;     count(*) cnt
    -&amp;gt; from activity_test
    -&amp;gt; group by act_type, to_uid, act_time,
    -&amp;gt;     to_user_name, before_user_name;&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;&quot;&gt;세션2&lt;/strong&gt;&amp;nbsp;– 테이블에 데이터 변경&lt;/p&gt;&lt;pre escaped=&quot;true&quot; style=&quot;margin-top: 1.71429rem; margin-bottom: 1.71429rem; padding: 1.71429rem; border: 1px solid rgb(237, 237, 237); font-size: 0.857143rem; vertical-align: baseline; color: rgb(102, 102, 102); font-family: Consolas, Monaco, &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 1.71429; overflow: auto; background-color: rgb(255, 255, 255);&quot;&gt;mysql&amp;gt; update activity_test set ACT_TYPE = 105 limit 10;&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;&quot;&gt;세션3&amp;nbsp;&lt;/strong&gt;- update SQL는 “Updating” 상태&lt;/p&gt;&lt;pre escaped=&quot;true&quot; style=&quot;margin-top: 1.71429rem; margin-bottom: 1.71429rem; padding: 1.71429rem; border: 1px solid rgb(237, 237, 237); font-size: 0.857143rem; vertical-align: baseline; color: rgb(102, 102, 102); font-family: Consolas, Monaco, &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 1.71429; overflow: auto; background-color: rgb(255, 255, 255);&quot;&gt;mysql&amp;gt; show processlist\G
************************* 1. row *************************
     Id: 255867
   User: root
   Host: localhost
     db: snsfeed
Command: Query
   Time: 1
  State: Updating
   Info: update activity_test set ACT_TYPE = 105 limit 10
************************* 2. row *************************
     Id: 255962
   User: root
   Host: localhost
     db: snsfeed
Command: Query
   Time: 2
  State: Copying to tmp table
   Info: insert into activity_test_stat2 select act_type,&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;Delete 작업 시 Update와 같이 대기 현상 또는 Dead Lock 오류 발생합니다.&lt;/p&gt;&lt;pre escaped=&quot;true&quot; style=&quot;margin-top: 1.71429rem; margin-bottom: 1.71429rem; padding: 1.71429rem; border: 1px solid rgb(237, 237, 237); font-size: 0.857143rem; vertical-align: baseline; color: rgb(102, 102, 102); font-family: Consolas, Monaco, &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 1.71429; overflow: auto; background-color: rgb(255, 255, 255);&quot;&gt;mysql&amp;gt; delete from activity_test limit 10;
ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction&lt;/pre&gt;&lt;h3 id=&quot;MySQLIsolationLevel에따른SQL사용주의사항-CreateTableAsSelect&quot; style=&quot;margin: 1.71429rem 0px; padding: 0px; border: 0px; font-size: 1.14286rem; vertical-align: baseline; clear: both; line-height: 1.84615; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;Create Table As Select&lt;/h3&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;&quot;&gt;세션1&lt;/strong&gt;&lt;/p&gt;&lt;pre escaped=&quot;true&quot; style=&quot;margin-top: 1.71429rem; margin-bottom: 1.71429rem; padding: 1.71429rem; border: 1px solid rgb(237, 237, 237); font-size: 0.857143rem; vertical-align: baseline; color: rgb(102, 102, 102); font-family: Consolas, Monaco, &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 1.71429; overflow: auto; background-color: rgb(255, 255, 255);&quot;&gt;mysql&amp;gt; create table activity_test_stat as
    -&amp;gt; select
    -&amp;gt;     act_type,
    -&amp;gt;     to_uid,
    -&amp;gt;     act_time,
    -&amp;gt;     to_user_name,
    -&amp;gt;     before_user_name,
    -&amp;gt;     count(*) cnt
    -&amp;gt; from activity_test
    -&amp;gt; group by act_type, to_uid, act_time,
    -&amp;gt;     to_user_name, before_user_name;&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;&quot;&gt;세션2&lt;/strong&gt;&amp;nbsp;– 테이블에 데이터 변경&lt;/p&gt;&lt;pre escaped=&quot;true&quot; style=&quot;margin-top: 1.71429rem; margin-bottom: 1.71429rem; padding: 1.71429rem; border: 1px solid rgb(237, 237, 237); font-size: 0.857143rem; vertical-align: baseline; color: rgb(102, 102, 102); font-family: Consolas, Monaco, &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 1.71429; overflow: auto; background-color: rgb(255, 255, 255);&quot;&gt;mysql&amp;gt; update activity_test set ACT_TYPE = 105 limit 10;&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;&quot;&gt;세션3&amp;nbsp;&lt;/strong&gt;- update SQL는 “Updating” 상태&lt;/p&gt;&lt;pre escaped=&quot;true&quot; style=&quot;margin-top: 1.71429rem; margin-bottom: 1.71429rem; padding: 1.71429rem; border: 1px solid rgb(237, 237, 237); font-size: 0.857143rem; vertical-align: baseline; color: rgb(102, 102, 102); font-family: Consolas, Monaco, &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 1.71429; overflow: auto; background-color: rgb(255, 255, 255);&quot;&gt;mysql&amp;gt; show processlist\G
************************* 1. row *************************
     Id: 255867
   User: root
   Host: localhost
     db: snsfeed
Command: Query
   Time: 2
  State: Updating
   Info: update activity_test set ACT_TYPE = 105 limit 10
************************* 2. row *************************
     Id: 255962
   User: root
   Host: localhost
     db: snsfeed
Command: Query
   Time: 4
  State: Copying to tmp table
   Info: create table activity_test_stat as select act_type,&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;Delete 작업 시 Update와 같이 대기 현상 또는 Dead Lock 오류 발생합니다.&lt;/p&gt;&lt;pre escaped=&quot;true&quot; style=&quot;margin-top: 1.71429rem; margin-bottom: 1.71429rem; padding: 1.71429rem; border: 1px solid rgb(237, 237, 237); font-size: 0.857143rem; vertical-align: baseline; color: rgb(102, 102, 102); font-family: Consolas, Monaco, &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 1.71429; overflow: auto; background-color: rgb(255, 255, 255);&quot;&gt;mysql&amp;gt; delete from activity_test limit 10;
ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction&lt;/pre&gt;&lt;h1 id=&quot;MySQLIsolationLevel에따른SQL사용주의사항-Cause&quot; style=&quot;margin: 1.71429rem 0px; padding: 0px; border: 0px; font-size: 1.5rem; vertical-align: baseline; clear: both; line-height: 1.5; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;Cause&lt;/h1&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;MySQL InnoDB 스토리지 엔진의 기본 Isolation Level이&amp;nbsp;REPEATABLE-READ로 설정되어 있기 때문에 발생합니다.&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;REPEATABLE-READ에서는 현재 Select 버전을 보장하기 위해 Snapshot을 이용하는데, 이 경우 해당 데이터에 관해서 암묵적으로 Lock과 비슷한 효과가 나타납니다.&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;즉, Select 작업이 종료될 때까지 해당 데이터 변경 작업이 불가합니다.&lt;/p&gt;&lt;h3 style=&quot;margin: 1.71429rem 0px; padding: 0px; border: 0px; font-size: 1.14286rem; vertical-align: baseline; clear: both; line-height: 1.84615; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;Transaction Isolation Level&lt;/h3&gt;&lt;ul style=&quot;margin: 0px 0px 1.71429rem; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; list-style-position: outside; list-style-image: initial; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;&lt;li style=&quot;margin: 0px 0px 0px 2.57143rem; padding: 0px; border: 0px; vertical-align: baseline;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;&quot;&gt;READ UNCOMMITTED&lt;/strong&gt;&lt;br /&gt;다른 트랜잭션이 Commit 전 상태를 볼 수 있음&lt;br /&gt;Binary Log가 자동으로 Row Based로 기록됨 (Statement설정 불가, Mixed 설정 시 자동 변환)&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 0px 2.57143rem; padding: 0px; border: 0px; vertical-align: baseline;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;&quot;&gt;READ-COMMITTED&lt;/strong&gt;&lt;br /&gt;Commit된 내역을 읽을 수 있는 상태로, 트랜잭션이 다르더라도 특정 타 트랜잭션이 Commit을 수행하면 해당 데이터를 Read할 수 있음&lt;br /&gt;Binary Log가 자동으로 Row Based로 기록됨 (Statement설정 불가, Mixed 설정 시 자동 변환)&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 0px 2.57143rem; padding: 0px; border: 0px; vertical-align: baseline;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;&quot;&gt;REPEATABLE READ&lt;/strong&gt;&lt;br /&gt;MySQL InnoDB 스토리지 엔진의 Default Isolation Level&lt;br /&gt;Select 시 현재 데이터 버전의 Snapshot을 만들고, 그 Snapshot으로부터 데이터를 조회&lt;br /&gt;동일 트랜잭션 내에서 데이터 일관성을 보장하고 데이터를 다시 읽기 위해서는 트랜잭션을 다시 시작해야 함&lt;/li&gt;&lt;li style=&quot;margin: 0px 0px 0px 2.57143rem; padding: 0px; border: 0px; vertical-align: baseline;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;&quot;&gt;SERIALIZABLE&lt;/strong&gt;&lt;br /&gt;가장 높은 Isolation Level로 트랜잭션이 완료될 때까지 SELECT 문장이 사용하는 모든 데이터에 Shared Lock이 걸림&lt;br /&gt;다른 트랜잭션에서는 해당 영역에 관한 데이터 변경 뿐만 아니라 입력도 불가&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;Isolation Level에 관한 자세한 정보는 하단 MySQL 매뉴얼을 참조하세요.&lt;br /&gt;&lt;a href=&quot;http://dev.mysql.com/doc/refman/5.5/en/set-transaction.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow&quot; style=&quot;margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; outline: none; color: rgb(159, 159, 159);&quot;&gt;http://dev.mysql.com/doc/refman/5.5/en/set-transaction.html&lt;/a&gt;&lt;/p&gt;&lt;h2 id=&quot;MySQLIsolationLevel에따른SQL사용주의사항-Solution&quot; style=&quot;margin: 1.71429rem 0px; padding: 0px; border: 0px; font-size: 1.28571rem; vertical-align: baseline; clear: both; line-height: 1.6; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;Solution&lt;/h2&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;Insert into Select 경우 Isolation Level을 READ-COMMITED나 READ-UNCOMMITED로 변경하여 해결할 수 있습니다.&lt;br /&gt;다음과 같이 세션 설정을 변경 후 Create Table As Select, Insert into Select를 수행하면 문제가 없습니다.&lt;/p&gt;&lt;pre escaped=&quot;true&quot; style=&quot;margin-top: 1.71429rem; margin-bottom: 1.71429rem; padding: 1.71429rem; border: 1px solid rgb(237, 237, 237); font-size: 0.857143rem; vertical-align: baseline; color: rgb(102, 102, 102); font-family: Consolas, Monaco, &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 1.71429; overflow: auto; background-color: rgb(255, 255, 255);&quot;&gt;mysql&amp;gt; set tx_isolation = 'READ-COMMITTED';&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;설정 파일에 영구적으로 transaction isolation 변경 적용하고자 한다면 다음과 같이 설정 후 DB를 재시작 합니다.&lt;/p&gt;&lt;pre escaped=&quot;true&quot; style=&quot;margin-top: 1.71429rem; margin-bottom: 1.71429rem; padding: 1.71429rem; border: 1px solid rgb(237, 237, 237); font-size: 0.857143rem; vertical-align: baseline; color: rgb(102, 102, 102); font-family: Consolas, Monaco, &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 1.71429; overflow: auto; background-color: rgb(255, 255, 255);&quot;&gt;$ vi /etc/my.cnf
## [mysqld] 설정에 추가
transaction-isolation           = READ-COMMITTED&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;비슷한 설정으로 다음과 같이 Isolation을 변경할 수 있습니다.&lt;/p&gt;&lt;pre escaped=&quot;true&quot; style=&quot;margin-top: 1.71429rem; margin-bottom: 1.71429rem; padding: 1.71429rem; border: 1px solid rgb(237, 237, 237); font-size: 0.857143rem; vertical-align: baseline; color: rgb(102, 102, 102); font-family: Consolas, Monaco, &amp;quot;Lucida Console&amp;quot;, monospace; line-height: 1.71429; overflow: auto; background-color: rgb(255, 255, 255);&quot;&gt;mysql&amp;gt; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;&lt;/pre&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;모든 것은&amp;nbsp;&lt;span style=&quot;margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; text-decoration: underline;&quot;&gt;&lt;strong style=&quot;margin: 0px; padding: 0px; border: 0px; vertical-align: baseline;&quot;&gt;Isolation Level이 REPEATABLE READ 이상인 경우 발생&lt;/strong&gt;&lt;/span&gt;하오니, 주의하여 사용하시기 바랍니다.&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;(설정 자체가 READ COMMITTED에서는 발생하지 않음)&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;※ 주의사항 ※&lt;br /&gt;커넥션 풀을 사용하는 경우 변경된 세션 값은 해당 커넥션이 재 시작되기 전까지 유지되므로, 반드시 사용 후 원래 설정 값으로 돌려놓아야 합니다.&lt;/p&gt;&lt;h1 style=&quot;margin: 1.71429rem 0px; padding: 0px; border: 0px; font-size: 1.5rem; vertical-align: baseline; clear: both; line-height: 1.5; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;Conclusion&lt;/h1&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;조금은 어려운 주제일 수 있습니다. 그러나 유독 MySQL에만 국한되는 내용이 아닌, 트랜잭션을 지원하는 DB 사용 시 반드시 알아야할 사항이라고 생각됩니다.&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;그러나 MySQL 에만 국한되는 내용이 아닐 뿐더러, 대용량 분석 시스템을 구상 중이라면 반드시 알아야할 사항이라고 생각합니다.^^&lt;/p&gt;&lt;p style=&quot;margin-right: 0px; margin-bottom: 1.71429rem; margin-left: 0px; padding: 0px; border: 0px; font-size: 14px; vertical-align: baseline; line-height: 1.71429; color: rgb(68, 68, 68); font-family: &amp;quot;Open Sans&amp;quot;, Helvetica, Arial, sans-serif;&quot;&gt;출처:&amp;nbsp;http://gywn.net/2012/05/mysql-transaction-isolation-level/&lt;/p&gt;</description>
      <category>DB/MySQL</category>
      <author>EnterKey</author>
      <guid isPermaLink="true">https://enterkey.tistory.com/416</guid>
      <comments>https://enterkey.tistory.com/416#entry416comment</comments>
      <pubDate>Fri, 11 Nov 2016 11:17:55 +0900</pubDate>
    </item>
    <item>
      <title>OSI 7 Layer</title>
      <link>https://enterkey.tistory.com/415</link>
      <description>&lt;div class=&quot;row&quot; style=&quot;box-sizing: inherit; margin: 0px -0.9375rem; padding: 0px; max-width: 1100px; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;&lt;div class=&quot;small-12 columns&quot; style=&quot;box-sizing: inherit; margin: 0px; padding: 0px 0.9375rem; width: 1100px; float: left;&quot;&gt;&lt;h2 class=&quot;head&quot; style=&quot;box-sizing: inherit; margin: 0px 0px 0.5rem; padding: 0px; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Roboto, Arial, sans-serif; font-weight: normal; text-rendering: optimizeLegibility; line-height: 1.4; font-size: 2.5rem;&quot;&gt;&lt;a href=&quot;http://www.joinc.co.kr/w/Site/TCP_IP/OSI7Layer#toc&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;1.&lt;/a&gt;&amp;nbsp;OSI 7 Layer&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;OSI(Open System Interconnection Reference Model)은 국제표준화기구 - ISO -에서 개발한 모델로 컴퓨터 네트워크 소프트웨어의 개발을 돕기 위해서 7계층으로 나누어 정의한 명세서다. 보통&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: inherit; font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Courier, monospace; font-size: 16px; color: rgb(221, 17, 68); background-color: rgb(247, 247, 249); border: 1px solid rgb(225, 225, 232); padding: 1px;&quot;&gt;OSI 7 계층&lt;/code&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;이라고 부른다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;컴퓨터 네트워크는 아래로는 물리/전자기 적인 알고리즘과 이들을 이용해서 통신을 하기 위한 물리적인 장비들 그리고 위로는, 컴퓨터 운영체제와 수많은 네트워크 소프트웨어들이 놓이는 전지구적 규모의 광대하고 복잡한 시스템이다. 인터넷 초창기인&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.joinc.co.kr/w/man/12/ARPNET&quot; style=&quot;box-sizing: inherit; background-color: rgb(254, 254, 254); color: rgb(43, 166, 203); line-height: inherit; cursor: pointer; font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px;&quot;&gt;ARPNET&lt;/a&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;시절이라면 전체 네트워크 시스템을 이해하는 사람이 있었을 테지만, 지금은 전체 시스템을 이해하고 응용 소프트웨어를 개발할 수 있는 사람은 없다고 장담할 수 있다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;이런 복잡 거대한 시스템을 유지하기 위해서 네트워크 시스템을 7계층으로 나누기로 했다. 이를테면 추상화 한건데, 각 단계의 개발자는 자기가 맡은 단계만 이해하면 되기 때문에 응용 소프트웨어 개발이 매우 쉬워진다. (이론적으로 그렇다는 얘기가, 실제 개발 단계에서는 자기가 맡은 단계 외의 다른 단계에 대해서도 기본적인 이해는 가지고 있어야 한다.)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;다음은 OSI의 계층 구조를 보여준다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;img src=&quot;https://docs.google.com/drawings/pub?id=12bauy8g8mk-pVmj-iLUALInHU2zxCJwRnB-fy0ZWx90&amp;amp;w=245&amp;amp;h=355&quot; style=&quot;box-sizing: inherit; border: 0px; max-width: 100%; height: auto; display: inline-block; vertical-align: middle; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;흔히 줄여서 L1, L2 ... L7 이라고 부른다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;div class=&quot;row&quot; style=&quot;box-sizing: inherit; margin: 0px -0.9375rem; padding: 0px; max-width: 1100px; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;&lt;div class=&quot;small-12 columns&quot; style=&quot;box-sizing: inherit; margin: 0px; padding: 0px 0.9375rem; width: 1100px; float: left;&quot;&gt;&lt;h3 class=&quot;head&quot; style=&quot;box-sizing: inherit; margin: 0px 0px 0.5rem; padding: 0px; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Roboto, Arial, sans-serif; font-weight: normal; text-rendering: optimizeLegibility; line-height: 1.4; font-size: 1.9375rem;&quot;&gt;&lt;a id=&quot;s-1.1.&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.joinc.co.kr/w/Site/TCP_IP/OSI7Layer#toc&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;1.1.&lt;/a&gt;&amp;nbsp;물리 계층&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;나는 물리 계층에는 관심이 없기 때문에, 다룰 내용이 없다. wikipedia의 내용으로 대신한다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;물리 계층은 실제 장치들을 연결하기 위해 필요한 전기적, 물리적 세부 사항들을 정의한다. 예를 들어, 핀들의 배치나 전압, 전선의 명세 등이 이 계층에 포함된다. 허브나 리피터가 물리 계층의 장치이다. 기계적 구조와 전기적 특성을 규정한다. 물리 계층에서 수행되는 중요한 일들은 다음과 같다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;물리적인 정보 전달 매개체에 대한 연결의 성립 및 종료. 여러 사용자들 간의 통신 자원을 효율적으로 분배하는 데 관여. 예를 들어, 경쟁 상태의 해소나 흐름 제어 등. 통신 채널을 통해 전송되는 사용자 장치의 디지털 데이터를 이에 상응하는 신호들로 변환, 변조. 이 신호들은 구리선이나 광섬유 선을 통해 전달되는 신호들로, 예를 들어, SCSI가 여기에 속한다 네트워크상에서 데이터 비트를 전송하는 계층으로, 데이터 링크 개체간의 비트 전송을 위한 물리적 연결을 설정, 유지, 해제하기 위한 수단을 제공하며, 물리계층에서 데이터를 교환하는 방식은 회선교환, 메시지 교환, 패킷교환 방식이 있다. 전송 매체는 신호 보내는 방법을 정의한다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;d&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;row&quot; style=&quot;box-sizing: inherit; margin: 0px -0.9375rem; padding: 0px; max-width: 1100px; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;&lt;div class=&quot;small-12 columns&quot; style=&quot;box-sizing: inherit; margin: 0px; padding: 0px 0.9375rem; width: 1100px; float: left;&quot;&gt;&lt;h3 class=&quot;head&quot; style=&quot;box-sizing: inherit; margin: 0px 0px 0.5rem; padding: 0px; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Roboto, Arial, sans-serif; font-weight: normal; text-rendering: optimizeLegibility; line-height: 1.4; font-size: 1.9375rem;&quot;&gt;&lt;a id=&quot;s-1.2.&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.joinc.co.kr/w/Site/TCP_IP/OSI7Layer#toc&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;1.2.&lt;/a&gt;&amp;nbsp;데이터 링크 계층&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;데이터 링크 계층은 물리적인 네트워크 장비를 일대일(Point to Point)로 신뢰성 있는 통신을 보장하기 위한 명세를 정의 한다. 네트워크 장비(NIC카드)들이 일대일로 통신을 하기 위해서는 서로의 물리적 이름을 알고 있어야 한다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;NIC는 출시때 MAC Address를 할당하는데, 이 MAC Address를 이용해서 원하는 NIC으로 데이터를 전송할 수 있다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;MAC Address는 단일 계층 주소 체계다. 따라서 L2 계층에서는 모든 NIC을 하나의 네트워크로 묶어야 한다. 하나의 네트워크는 데이터가&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: inherit; font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Courier, monospace; font-size: 16px; color: rgb(221, 17, 68); background-color: rgb(247, 247, 249); border: 1px solid rgb(225, 225, 232); padding: 1px;&quot;&gt;브로드캐스팅&lt;/code&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;되는 영역을 의미한다. 예를 주변 네트워크 상황을 확인하기 위해서&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.joinc.co.kr/w/man/12/ARP&quot; style=&quot;box-sizing: inherit; background-color: rgb(254, 254, 254); color: rgb(43, 166, 203); line-height: inherit; cursor: pointer; font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px;&quot;&gt;ARP&lt;/a&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;브로드캐스팅을 하면, 모든 NIC로 패킷이 전송되는 걸 의미한다. L2에서는 NIC의 개수가 늘어나면 네트워크 전체의 성능이 떨어질 수 있다.&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: inherit; font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Courier, monospace; font-size: 16px; color: rgb(221, 17, 68); background-color: rgb(247, 247, 249); border: 1px solid rgb(225, 225, 232); padding: 1px;&quot;&gt;확장에 한계가 있다&lt;/code&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;L2가 물리적이로 하나의 계층을 가지는 문제를 극복하기 위해서,&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.joinc.co.kr/w/man/12/VLAN&quot; style=&quot;box-sizing: inherit; background-color: rgb(254, 254, 254); color: rgb(43, 166, 203); line-height: inherit; cursor: pointer; font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px;&quot;&gt;VLAN&lt;/a&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;기술을 사용해서 논리적으로 네트워크를 나누는 방법이 있다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;관련글&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot;item_list&quot; style=&quot;box-sizing: inherit; margin: 0px 0px 1rem 1.25rem; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; line-height: 1.6; list-style-position: outside; font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0px; padding: 0px; font-size: inherit;&quot;&gt;&lt;a href=&quot;http://www.joinc.co.kr/w/Site/System_management/GNS3Layer2&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;GNS3로 알아보는 L2 네트워크&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0px; padding: 0px; font-size: inherit;&quot;&gt;&lt;a href=&quot;http://www.joinc.co.kr/w/Site/System_management/Tool/WhoMyNetWork&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;네트워크 정보 확인하기&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class=&quot;row&quot; style=&quot;box-sizing: inherit; margin: 0px -0.9375rem; padding: 0px; max-width: 1100px; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;&lt;div class=&quot;small-12 columns&quot; style=&quot;box-sizing: inherit; margin: 0px; padding: 0px 0.9375rem; width: 1100px; float: left;&quot;&gt;&lt;h3 class=&quot;head&quot; style=&quot;box-sizing: inherit; margin: 0px 0px 0.5rem; padding: 0px; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Roboto, Arial, sans-serif; font-weight: normal; text-rendering: optimizeLegibility; line-height: 1.4; font-size: 1.9375rem;&quot;&gt;&lt;a id=&quot;s-1.3.&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.joinc.co.kr/w/Site/TCP_IP/OSI7Layer#toc&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;1.3.&lt;/a&gt;&amp;nbsp;네트워크 계층&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;노드와 노드를 연결해서 네트워크를 구성하기 위한 프로토콜이 정의되어 있는 계층이다. 망(네트워크)를 구성하기 위해서는 전체 네트워크에서 노드가 유일해야 한다. 네트워크에서 노드를 식별하기 위해서 사용하는 대표적인 프로토콜이&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.joinc.co.kr/w/man/12/IP&quot; style=&quot;box-sizing: inherit; background-color: rgb(254, 254, 254); color: rgb(43, 166, 203); line-height: inherit; cursor: pointer; font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px;&quot;&gt;IP(Internet Protocol)&lt;/a&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;이다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;네트워크 상에서 노드는 유일한 IP 주소를 부여 받고, 이를 통해서 식별할 수 있다. L3에서 제공하는 프로토콜을 이용해서 네트워크 상의 노드는 다른 노드에 데이터를 전송할 수 있다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;MAC Address와 달리 IP Address는 계층 구조를 가진다. 따라서 대규모의 네트워크를 조직적으로 관리할 수 있다.&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;row&quot; style=&quot;box-sizing: inherit; margin: 0px -0.9375rem; padding: 0px; max-width: 1100px; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;&lt;div class=&quot;small-12 columns&quot; style=&quot;box-sizing: inherit; margin: 0px; padding: 0px 0.9375rem; width: 1100px; float: left;&quot;&gt;&lt;h3 class=&quot;head&quot; style=&quot;box-sizing: inherit; margin: 0px 0px 0.5rem; padding: 0px; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Roboto, Arial, sans-serif; font-weight: normal; text-rendering: optimizeLegibility; line-height: 1.4; font-size: 1.9375rem;&quot;&gt;&lt;a id=&quot;s-1.4.&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.joinc.co.kr/w/Site/TCP_IP/OSI7Layer#toc&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;1.4.&lt;/a&gt;&amp;nbsp;전송 계층&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;L3 계층은 노드와 노드사이에 데이터를 전송하는 것만 신경쓴다. 노드와 어떤 방식의&amp;nbsp;&lt;/span&gt;&lt;code style=&quot;box-sizing: inherit; font-family: Consolas, &amp;quot;Liberation Mono&amp;quot;, Courier, monospace; font-size: 16px; color: rgb(221, 17, 68); background-color: rgb(247, 247, 249); border: 1px solid rgb(225, 225, 232); padding: 1px;&quot;&gt;연결&lt;/code&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;을 만들 건지에 대해서는 관여하지 않는다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;인터넷은 패킷 스위칭 방식으로 데이터를 전송하며, 경로가 달라질 수 있다. 따라서 패킷은 처음 순서와 다른 순서로 목적지에 도달할 수 있다. 또한 경로를 따라가면서 데이터에 잡음이 생길 수도 있다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;이 경우 연결 방식을 조정해서 패킷의 순서를 재 조합하거나, 잡음이 생겼는지 확인하고, 잡음이 생긴 패킷에 대한 재 전송 요청등의 일을 할 수 있어야 한다. 대표적인 프로토콜이&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.joinc.co.kr/w/man/12/UDP&quot; style=&quot;box-sizing: inherit; background-color: rgb(254, 254, 254); color: rgb(43, 166, 203); line-height: inherit; cursor: pointer; font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px;&quot;&gt;UDP&lt;/a&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;와&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.joinc.co.kr/w/man/12/TCP&quot; style=&quot;box-sizing: inherit; background-color: rgb(254, 254, 254); color: rgb(43, 166, 203); line-height: inherit; cursor: pointer; font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px;&quot;&gt;TCP&lt;/a&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;이다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;OSI는 TP0에서 TP4까지 5가지 class의 연결단계를 제공한다.&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot;item_list&quot; style=&quot;box-sizing: inherit; margin: 0px 0px 1rem 1.25rem; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; line-height: 1.6; list-style-position: outside; font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0px; padding: 0px; font-size: inherit;&quot;&gt;TP0 : Simple Class, 에러 복구와 같은 어떠한 기능도 제공하지 않는다.&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0px; padding: 0px; font-size: inherit;&quot;&gt;TP1 : Basic error recovery class&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0px; padding: 0px; font-size: inherit;&quot;&gt;TP2 : Multiplexing class&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0px; padding: 0px; font-size: inherit;&quot;&gt;TP3 : Error recovery and multiplexing class&lt;/li&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0px; padding: 0px; font-size: inherit;&quot;&gt;TP4 : error detection and recovery class&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;Connecection oriented network인 TCP는 위의 모든 클래스를 만족하는 프로토콜이다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;div class=&quot;row&quot; style=&quot;box-sizing: inherit; margin: 0px -0.9375rem; padding: 0px; max-width: 1100px; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;&lt;div class=&quot;small-12 columns&quot; style=&quot;box-sizing: inherit; margin: 0px; padding: 0px 0.9375rem; width: 1100px; float: left;&quot;&gt;&lt;h3 class=&quot;head&quot; style=&quot;box-sizing: inherit; margin: 0px 0px 0.5rem; padding: 0px; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Roboto, Arial, sans-serif; font-weight: normal; text-rendering: optimizeLegibility; line-height: 1.4; font-size: 1.9375rem;&quot;&gt;&lt;a id=&quot;s-1.5.&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.joinc.co.kr/w/Site/TCP_IP/OSI7Layer#toc&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;1.5.&lt;/a&gt;&amp;nbsp;세션 계층&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;세션 계층은 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다. 동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(Full Duplex)의 통신과 함께, 체크 포인팅과 유휴, 종료, 다시 시작 과정 등을 수행한다. 이 계층은 TCP/IP 세션을 만들고 없애는 책임을 진다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;통신하는 사용자들을 동기화하고 오류복구 명령들을 일괄적으로 다룬다. L4의 TCP의 세션관리 부분과 겹치는데, 보통 소프트웨어 개발자는 세션 계층을 신경쓰지 않는다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;div class=&quot;row&quot; style=&quot;box-sizing: inherit; margin: 0px -0.9375rem; padding: 0px; max-width: 1100px; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;&lt;div class=&quot;small-12 columns&quot; style=&quot;box-sizing: inherit; margin: 0px; padding: 0px 0.9375rem; width: 1100px; float: left;&quot;&gt;&lt;h3 class=&quot;head&quot; style=&quot;box-sizing: inherit; margin: 0px 0px 0.5rem; padding: 0px; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Roboto, Arial, sans-serif; font-weight: normal; text-rendering: optimizeLegibility; line-height: 1.4; font-size: 1.9375rem;&quot;&gt;&lt;a id=&quot;s-1.6.&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.joinc.co.kr/w/Site/TCP_IP/OSI7Layer#toc&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;1.6.&lt;/a&gt;&amp;nbsp;표현 계층&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;유저영역에서 처리해야할 데이터의 형식상의 차이를 대신 처리해준다. MIME 인코딩이나 암호화등에 관련된 동작이 이루어진다. EBCDIC로 인코딩 된 데이터를 ASCII로 바꿔주는 등의 일을 한다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;div class=&quot;row&quot; style=&quot;box-sizing: inherit; margin: 0px -0.9375rem; padding: 0px; max-width: 1100px; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;&lt;div class=&quot;small-12 columns&quot; style=&quot;box-sizing: inherit; margin: 0px; padding: 0px 0.9375rem; width: 1100px; float: left;&quot;&gt;&lt;h3 class=&quot;head&quot; style=&quot;box-sizing: inherit; margin: 0px 0px 0.5rem; padding: 0px; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Roboto, Arial, sans-serif; font-weight: normal; text-rendering: optimizeLegibility; line-height: 1.4; font-size: 1.9375rem;&quot;&gt;&lt;a id=&quot;s-1.7.&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.joinc.co.kr/w/Site/TCP_IP/OSI7Layer#toc&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;1.7.&lt;/a&gt;&amp;nbsp;응용 계층&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&quot;color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;일반적인 응용 소프트웨어들이 사용하는 계층으로, 인터넷 소프트웨어 개발자로서는 가장 많이 신경쓰는 계층이다. 이 계층에는 HTTP, FTP, TELNET, SSH 등의 표준 애플리케이션 프로토콜과 함께, 직접 개발한 프로토콜들이 위치하는 계층이다.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: inherit; margin-right: 0px; margin-bottom: 1rem; margin-left: 0px; padding: 0px; font-size: 16px; line-height: 1.6; text-rendering: optimizeLegibility; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; background-color: rgb(254, 254, 254);&quot;&gt;&lt;/p&gt;&lt;div class=&quot;row&quot; style=&quot;box-sizing: inherit; margin: 0px -0.9375rem; padding: 0px; max-width: 1100px; color: rgb(34, 34, 34); font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;&lt;div class=&quot;small-12 columns&quot; style=&quot;box-sizing: inherit; margin: 0px; padding: 0px 0.9375rem; width: 1100px; float: left;&quot;&gt;&lt;h2 class=&quot;head&quot; style=&quot;box-sizing: inherit; margin: 0px 0px 0.5rem; padding: 0px; font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Roboto, Arial, sans-serif; font-weight: normal; text-rendering: optimizeLegibility; line-height: 1.4; font-size: 2.5rem;&quot;&gt;&lt;a id=&quot;s-2.&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.joinc.co.kr/w/Site/TCP_IP/OSI7Layer#toc&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;2.&lt;/a&gt;&amp;nbsp;관련문서&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;ul class=&quot;item_list&quot; style=&quot;box-sizing: inherit; margin: 0px 0px 1rem 1.25rem; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; line-height: 1.6; list-style-position: outside; font-family: &amp;quot;Nanum Gothic&amp;quot;, serif; font-size: 16px; background-color: rgb(254, 254, 254);&quot;&gt;&lt;li style=&quot;box-sizing: inherit; margin: 0px; padding: 0px; font-size: inherit;&quot;&gt;&lt;a href=&quot;http://www.joinc.co.kr/w/Site/Network_Programing/Documents/SocketAPI&quot; style=&quot;box-sizing: inherit; background-color: transparent; color: rgb(43, 166, 203); line-height: inherit; cursor: pointer;&quot;&gt;Socket API&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;출처:&amp;nbsp;http://www.joinc.co.kr/w/Site/TCP_IP/OSI7Layer&lt;/p&gt;</description>
      <category>Back-End/좋은글</category>
      <author>EnterKey</author>
      <guid isPermaLink="true">https://enterkey.tistory.com/415</guid>
      <comments>https://enterkey.tistory.com/415#entry415comment</comments>
      <pubDate>Mon, 7 Nov 2016 17:59:16 +0900</pubDate>
    </item>
    <item>
      <title>Java Deep Copy, Shallow Copy</title>
      <link>https://enterkey.tistory.com/412</link>
      <description>&lt;p style=&quot;box-sizing: border-box; word-break: break-word; font-family: NanumBarunGothic; font-size: 14px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;b style=&quot;box-sizing: border-box;&quot;&gt;1. Deep copy (깊은 복사)&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; word-break: break-word; font-family: NanumBarunGothic; font-size: 14px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;- 같은 내용의 새로운 객체를 생성, 원본의 변화에 복사본이 영향을 받지 않는다.&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; word-break: break-word; font-family: NanumBarunGothic; font-size: 14px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; word-break: break-word; font-family: NanumBarunGothic; font-size: 14px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;b style=&quot;box-sizing: border-box;&quot;&gt;2. Shallow copy(얕은 복사)&lt;/b&gt;&lt;/p&gt;&lt;p style=&quot;box-sizing: border-box; word-break: break-word; font-family: NanumBarunGothic; font-size: 14px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;- 참조변수만 복사, 원본의 변화에 복사본이 영향을 받는다.&lt;/p&gt;&lt;div style=&quot;box-sizing: border-box; word-break: break-word; font-family: NanumBarunGothic; font-size: 14px;&quot;&gt;&lt;div id=&quot;highlighter_860482&quot; class=&quot;syntaxhighlighter  java&quot; style=&quot;box-sizing: border-box; word-break: break-word; width: 972px; margin: 1em 0px !important; position: relative !important; overflow: auto !important; font-size: 1em !important; background-color: rgb(15, 25, 42) !important;&quot;&gt;&lt;div class=&quot;toolbar&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background: rgb(67, 90, 95) !important; border: none !important; bottom: auto !important; float: none !important; height: 11px !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: absolute !important; right: 1px !important; top: 1px !important; vertical-align: baseline !important; width: 11px !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 10px !important; min-height: auto !important; z-index: 10 !important; color: rgb(209, 237, 255) !important;&quot;&gt;&lt;span style=&quot;box-sizing: border-box; max-width: 100%;&quot;&gt;&lt;a href=&quot;http://gangzzang.tistory.com/entry/Java-Deep-Copy-Shallow-Copy#&quot; class=&quot;toolbar_item command_help help&quot; style=&quot;box-sizing: content-box !important; background: none !important; color: rgb(209, 237, 255) !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 1px 0px 0px !important; position: static !important; right: auto !important; text-align: center !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; display: block !important;&quot;&gt;?&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;border-collapse: collapse; border-spacing: 0px; width: 955px; box-sizing: content-box !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&lt;tbody style=&quot;box-sizing: content-box !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&lt;tr style=&quot;box-sizing: content-box !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&lt;td class=&quot;gutter&quot; style=&quot;box-sizing: content-box !important; padding: 0px !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important; color: rgb(175, 175, 175) !important;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;1&lt;/div&gt;&lt;div class=&quot;line number2 index1 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;2&lt;/div&gt;&lt;div class=&quot;line number3 index2 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;3&lt;/div&gt;&lt;div class=&quot;line number4 index3 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;4&lt;/div&gt;&lt;div class=&quot;line number5 index4 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;5&lt;/div&gt;&lt;div class=&quot;line number6 index5 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;6&lt;/div&gt;&lt;div class=&quot;line number7 index6 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;7&lt;/div&gt;&lt;div class=&quot;line number8 index7 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;8&lt;/div&gt;&lt;div class=&quot;line number9 index8 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;9&lt;/div&gt;&lt;div class=&quot;line number10 index9 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;10&lt;/div&gt;&lt;div class=&quot;line number11 index10 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;11&lt;/div&gt;&lt;div class=&quot;line number12 index11 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;12&lt;/div&gt;&lt;div class=&quot;line number13 index12 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;13&lt;/div&gt;&lt;div class=&quot;line number14 index13 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;14&lt;/div&gt;&lt;div class=&quot;line number15 index14 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;15&lt;/div&gt;&lt;div class=&quot;line number16 index15 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;16&lt;/div&gt;&lt;div class=&quot;line number17 index16 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;17&lt;/div&gt;&lt;div class=&quot;line number18 index17 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;18&lt;/div&gt;&lt;div class=&quot;line number19 index18 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;19&lt;/div&gt;&lt;div class=&quot;line number20 index19 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;20&lt;/div&gt;&lt;div class=&quot;line number21 index20 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;21&lt;/div&gt;&lt;div class=&quot;line number22 index21 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;22&lt;/div&gt;&lt;div class=&quot;line number23 index22 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;23&lt;/div&gt;&lt;div class=&quot;line number24 index23 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;24&lt;/div&gt;&lt;div class=&quot;line number25 index24 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;25&lt;/div&gt;&lt;div class=&quot;line number26 index25 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;26&lt;/div&gt;&lt;div class=&quot;line number27 index26 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;27&lt;/div&gt;&lt;div class=&quot;line number28 index27 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;28&lt;/div&gt;&lt;div class=&quot;line number29 index28 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;29&lt;/div&gt;&lt;div class=&quot;line number30 index29 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;30&lt;/div&gt;&lt;div class=&quot;line number31 index30 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;31&lt;/div&gt;&lt;div class=&quot;line number32 index31 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;32&lt;/div&gt;&lt;div class=&quot;line number33 index32 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;33&lt;/div&gt;&lt;div class=&quot;line number34 index33 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;34&lt;/div&gt;&lt;div class=&quot;line number35 index34 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;35&lt;/div&gt;&lt;div class=&quot;line number36 index35 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;36&lt;/div&gt;&lt;div class=&quot;line number37 index36 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;37&lt;/div&gt;&lt;div class=&quot;line number38 index37 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;38&lt;/div&gt;&lt;div class=&quot;line number39 index38 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;39&lt;/div&gt;&lt;div class=&quot;line number40 index39 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;40&lt;/div&gt;&lt;div class=&quot;line number41 index40 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;41&lt;/div&gt;&lt;div class=&quot;line number42 index41 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;42&lt;/div&gt;&lt;div class=&quot;line number43 index42 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;43&lt;/div&gt;&lt;div class=&quot;line number44 index43 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;44&lt;/div&gt;&lt;div class=&quot;line number45 index44 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;45&lt;/div&gt;&lt;div class=&quot;line number46 index45 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;46&lt;/div&gt;&lt;div class=&quot;line number47 index46 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;47&lt;/div&gt;&lt;div class=&quot;line number48 index47 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border-width: 0px 3px 0px 0px !important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(67, 90, 95) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; right: auto !important; text-align: right !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;48&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;code&quot; style=&quot;width: 915px; box-sizing: content-box !important; padding: 0px !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; margin: 0px !important; padding: 0px !important; width: auto !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; outline: 0px !important; overflow: visible !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; font-size: 1em !important; min-height: auto !important;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;import&lt;/code&gt; &lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;java.util.Arrays;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number2 index1 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;line number3 index2 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;class&lt;/code&gt; &lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;CopyTest {&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number4 index3 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;static&lt;/code&gt; &lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;void&lt;/code&gt; &lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;main(String[] args) {&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number5 index4 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;int&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;[] data = { &lt;/code&gt;&lt;code class=&quot;java value&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(247, 231, 65) !important;&quot;&gt;0&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;java value&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(247, 231, 65) !important;&quot;&gt;1&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;java value&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(247, 231, 65) !important;&quot;&gt;2&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;java value&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(247, 231, 65) !important;&quot;&gt;3&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;java value&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(247, 231, 65) !important;&quot;&gt;4&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;java value&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(247, 231, 65) !important;&quot;&gt;5&lt;/code&gt; &lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;};&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number6 index5 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;int&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;[] sCopy = &lt;/code&gt;&lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;null&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number7 index6 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;int&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;[] dCopy = &lt;/code&gt;&lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;null&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number8 index7 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;line number9 index8 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;sCopy = shallowCopy(data);&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number10 index9 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;dCopy = deepCopy(data);&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number11 index10 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;line number12 index11 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;System.out.println(&lt;/code&gt;&lt;code class=&quot;java string&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(29, 193, 22) !important;&quot;&gt;&quot;Original : &quot;&lt;/code&gt; &lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;+ Arrays.toString(data));&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number13 index12 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;System.out.println(&lt;/code&gt;&lt;code class=&quot;java string&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(29, 193, 22) !important;&quot;&gt;&quot;Shallow : &quot;&lt;/code&gt; &lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;+ Arrays.toString(sCopy));&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number14 index13 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;System.out.println(&lt;/code&gt;&lt;code class=&quot;java string&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(29, 193, 22) !important;&quot;&gt;&quot;Deep : &quot;&lt;/code&gt; &lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;+ Arrays.toString(dCopy));&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number15 index14 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;System.out.println();&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number16 index15 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;line number17 index16 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;data[&lt;/code&gt;&lt;code class=&quot;java value&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(247, 231, 65) !important;&quot;&gt;0&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;] = &lt;/code&gt;&lt;code class=&quot;java value&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(247, 231, 65) !important;&quot;&gt;5&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number18 index17 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;System.out.println(&lt;/code&gt;&lt;code class=&quot;java string&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(29, 193, 22) !important;&quot;&gt;&quot;Original : &quot;&lt;/code&gt; &lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;+ Arrays.toString(data));&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number19 index18 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;System.out.println(&lt;/code&gt;&lt;code class=&quot;java string&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(29, 193, 22) !important;&quot;&gt;&quot;Shallow : &quot;&lt;/code&gt; &lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;+ Arrays.toString(sCopy));&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number20 index19 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;System.out.println(&lt;/code&gt;&lt;code class=&quot;java string&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(29, 193, 22) !important;&quot;&gt;&quot;Deep : &quot;&lt;/code&gt; &lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;+ Arrays.toString(dCopy));&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number21 index20 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;System.out.println();&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number22 index21 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;} &lt;/code&gt;&lt;code class=&quot;java comments&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(66, 139, 221) !important;&quot;&gt;// main&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number23 index22 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;line number24 index23 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;static&lt;/code&gt; &lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;int&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;[] shallowCopy(&lt;/code&gt;&lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;int&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;[] arr) {&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number25 index24 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;return&lt;/code&gt; &lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;arr;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number26 index25 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;} &lt;/code&gt;&lt;code class=&quot;java comments&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(66, 139, 221) !important;&quot;&gt;// shallowCopy&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number27 index26 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;line number28 index27 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;public&lt;/code&gt; &lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;static&lt;/code&gt; &lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;int&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;[] deepCopy(&lt;/code&gt;&lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;int&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;[] arr) {&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number29 index28 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;if&lt;/code&gt; &lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;(arr == &lt;/code&gt;&lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;null&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;)&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number30 index29 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;return&lt;/code&gt; &lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;null&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number31 index30 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;int&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;[] result = &lt;/code&gt;&lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;new&lt;/code&gt; &lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;int&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;[arr.length];&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number32 index31 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;System.arraycopy(arr, &lt;/code&gt;&lt;code class=&quot;java value&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(247, 231, 65) !important;&quot;&gt;0&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;, result, &lt;/code&gt;&lt;code class=&quot;java value&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(247, 231, 65) !important;&quot;&gt;0&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;, arr.length);&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number33 index32 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java keyword&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(180, 61, 61) !important;&quot;&gt;return&lt;/code&gt; &lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;result;&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number34 index33 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;} &lt;/code&gt;&lt;code class=&quot;java comments&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(66, 139, 221) !important;&quot;&gt;// deepCopy&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number35 index34 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;line number36 index35 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java plain&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(209, 237, 255) !important;&quot;&gt;} &lt;/code&gt;&lt;code class=&quot;java comments&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(66, 139, 221) !important;&quot;&gt;// CopyTest&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number37 index36 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;line number38 index37 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java comments&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(66, 139, 221) !important;&quot;&gt;/*&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number39 index38 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java comments&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(66, 139, 221) !important;&quot;&gt;* 결과 &lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number40 index39 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java comments&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(66, 139, 221) !important;&quot;&gt;* &lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number41 index40 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java comments&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(66, 139, 221) !important;&quot;&gt;* Original : [0, 1, 2, 3, 4, 5]&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number42 index41 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java comments&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(66, 139, 221) !important;&quot;&gt;* Shallow : [0, 1, 2, 3, 4, 5]&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number43 index42 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java comments&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(66, 139, 221) !important;&quot;&gt;* Deep : [0, 1, 2, 3, 4, 5]&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number44 index43 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java comments&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(66, 139, 221) !important;&quot;&gt;* &lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number45 index44 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java comments&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(66, 139, 221) !important;&quot;&gt;* Original : [5, 1, 2, 3, 4, 5]&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number46 index45 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java comments&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(66, 139, 221) !important;&quot;&gt;* Shallow : [5, 1, 2, 3, 4, 5]&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number47 index46 alt2&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java comments&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(66, 139, 221) !important;&quot;&gt;* Deep : [0, 1, 2, 3, 4, 5]&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number48 index47 alt1&quot; style=&quot;word-break: break-word; box-sizing: content-box !important; border-radius: 0px !important; background-image: none !important; background-position: initial !important; background-size: initial !important; background-repeat: initial !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; font-size: 1em !important; min-height: auto !important; white-space: pre !important;&quot;&gt;&lt;code class=&quot;java spaces&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important;&quot;&gt;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;java comments&quot; style=&quot;box-sizing: content-box !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; border-radius: 0px !important; background: none !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; line-height: 1.1em !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; color: rgb(66, 139, 221) !important;&quot;&gt;*/&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style=&quot;box-sizing: border-box; word-break: break-word; font-family: NanumBarunGothic; font-size: 14px; padding-top: 0px !important; padding-bottom: 0px !important;&quot;&gt;&lt;br style=&quot;box-sizing: border-box;&quot;&gt;&lt;span id=&quot;callbacknestgangzzangtistorycom73647&quot; style=&quot;box-sizing: border-box; max-width: 100%; width: 1px; height: 1px; float: right;&quot;&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;출처:&amp;nbsp;http://gangzzang.tistory.com/entry/Java-Deep-Copy-Shallow-Copy&lt;/p&gt;</description>
      <category>Java/Core</category>
      <author>EnterKey</author>
      <guid isPermaLink="true">https://enterkey.tistory.com/412</guid>
      <comments>https://enterkey.tistory.com/412#entry412comment</comments>
      <pubDate>Thu, 3 Nov 2016 11:55:44 +0900</pubDate>
    </item>
    <item>
      <title>Java에서 객체의 초기화 순서</title>
      <link>https://enterkey.tistory.com/411</link>
      <description>&lt;div&gt;자바는 Static block -&amp;gt; Instance block -&amp;gt; 생성자 순으로 초기화가 된다.&lt;br /&gt;&lt;br /&gt;먼저 아래와 같은 코드를 실행해 보자.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(219, 232, 251); background-color: rgb(219, 232, 251); padding: 10px;&quot;&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px;&quot;&gt;&lt;/p&gt;&lt;div&gt;public class TestClass {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public static void main (String[] args) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&quot;---------------------------&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Parent father = new Parent(&quot;father&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&quot;---------------------------&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;class Parent {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public String myName = &quot;Parent&quot;;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; static {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println (&quot;This is first message of Parent class!&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public Parent() {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println (myName + &quot;: This is third message! I'm a default constructor of Parent class!&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public Parent(String name) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myName = name;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println (myName + &quot;: This is third message! I'm a constructor of Parent class!&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println (myName + &quot;: This is second message!&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;그럼 하기와 같은 결과를 얻을 수 있다.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px;&quot;&gt;&lt;/p&gt;&lt;div&gt;---------------------------&lt;/div&gt;&lt;div&gt;This is first message of Parent class!&lt;/div&gt;&lt;div&gt;Parent: This is second message!&lt;/div&gt;&lt;div&gt;father: This is third message! I'm a constructor of Parent class!&lt;/div&gt;&lt;div&gt;---------------------------&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span id=&quot;callbacknestchobochotistorycom24610623571&quot; style=&quot;width: 1px; height: 1px; float: right;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(219, 232, 251); background-color: rgb(219, 232, 251); padding: 10px;&quot;&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px;&quot;&gt;&amp;nbsp;public class TestClass {&lt;/p&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public static void main (String[] args) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&quot;---------------------------&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Parent father = new Parent(&quot;father&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#193da9&quot;&gt;Parent mother = new Parent(&quot;mother&quot;);&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&quot;---------------------------&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;class Parent {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public String myName = &quot;Parent&quot;;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#193da9&quot;&gt;&amp;nbsp; &amp;nbsp; static {&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#193da9&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println (&quot;This is first message of Parent class!&quot;);&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#193da9&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public Parent() {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println (myName + &quot;: This is third message! I'm a default constructor of Parent class!&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public Parent(String name) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myName = name;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println (myName + &quot;: This is third message! I'm a constructor of Parent class!&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println (myName + &quot;: This is second message!&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&amp;nbsp;위 와 같이 한 줄을 추가하여 실행하면 아래와 같은 결과를 얻을 수 있다.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px;&quot;&gt;&lt;/p&gt;&lt;div&gt;---------------------------&lt;/div&gt;&lt;div&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#193da9&quot;&gt;&lt;b&gt;This is first message of Parent class!&lt;/b&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;Parent: This is second message!&lt;/div&gt;&lt;div&gt;father: This is third message! I'm a constructor of Parent class!&lt;/div&gt;&lt;div&gt;Parent: This is second message!&lt;/div&gt;&lt;div&gt;mother: This is third message! I'm a constructor of Parent class!&lt;/div&gt;&lt;div&gt;---------------------------&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;여기서 보면 static { } &amp;nbsp;으로 둘러 싸인 구문은 객체 생성시 최초 1회만 수행이 되고, 그 뒤에는 수행이 되지 않는 걸 알 수 있다. 그러나 { } 로 둘러싸인 instance block은 객체가 생성 될 때마다 실행 되며 생성자 보다 먼저 생성되는 걸 알 수 있다.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(219, 232, 251); background-color: rgb(219, 232, 251); padding: 10px;&quot;&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px;&quot;&gt;&lt;/p&gt;&lt;div&gt;class Child extends Parent {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public String myName = &quot;Child&quot;;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; static {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println (&quot;This is first message of Child class!&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public Child(String name) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myName = name;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println (myName + &quot;: This is third message! I'm a constructor of Child class!&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; System.out.println (this.myName + &quot;: This is second message of Child class!&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;위 와 같이 Parent class를 상속받는 Child 클래스를 만들고, 아래와 같이 객체를 생성해 보자&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(219, 232, 251); background-color: rgb(219, 232, 251); padding: 10px;&quot;&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px;&quot;&gt;&lt;/p&gt;&lt;div&gt;public class TestClass {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public static void main (String[] args) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&quot;---------------------------&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Child son &amp;nbsp; &amp;nbsp; = new Child(&quot;son&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&quot;---------------------------&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;}&amp;nbsp;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;그럼 하기와 같은 결과가 나온다.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px;&quot;&gt;&lt;/p&gt;&lt;div&gt;---------------------------&lt;/div&gt;&lt;div&gt;This is first message of Parent class!&lt;/div&gt;&lt;div&gt;This is first message of Child class!&lt;/div&gt;&lt;div&gt;Parent: This is second message!&lt;/div&gt;&lt;div&gt;Parent: This is third message! I'm a default constructor of Parent class!&lt;/div&gt;&lt;div&gt;Child: This is second message of Child class!&lt;/div&gt;&lt;div&gt;son: This is third message! I'm a constructor of Child class!&lt;/div&gt;&lt;div&gt;---------------------------&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br style=&quot;color: rgb(102, 102, 102); font-family: dotum; font-size: 12px;&quot;&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: dotum; font-size: 12px;&quot;&gt;위 결과를 보면 알 수 있듯이,&lt;/span&gt;&lt;br style=&quot;color: rgb(102, 102, 102); font-family: dotum; font-size: 12px;&quot;&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: dotum; font-size: 12px;&quot;&gt;부모 클래스의 static block -&amp;gt; 자식 클래스의 static block -&amp;gt; 부모 클래스의 instance block&amp;nbsp;&lt;/span&gt;&lt;br style=&quot;color: rgb(102, 102, 102); font-family: dotum; font-size: 12px;&quot;&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: dotum; font-size: 12px;&quot;&gt;-&amp;gt; 부모 클래스의 생성자 -&amp;gt; 자식 클래스의 instance block -&amp;gt; 자식클래스의 생성자 순으로 실행 되는 것을 알 수 있다.&lt;/span&gt;&lt;br style=&quot;color: rgb(102, 102, 102); font-family: dotum; font-size: 12px;&quot;&gt;&lt;br style=&quot;color: rgb(102, 102, 102); font-family: dotum; font-size: 12px;&quot;&gt;&lt;span style=&quot;color: rgb(102, 102, 102); font-family: dotum; font-size: 12px;&quot;&gt;마지막으로 아래와 같이 실행을 하면,&lt;/span&gt;&lt;br style=&quot;color: rgb(102, 102, 102); font-family: dotum; font-size: 12px;&quot;&gt;&lt;br style=&quot;color: rgb(102, 102, 102); font-family: dotum; font-size: 12px;&quot;&gt;&lt;div style=&quot;color: rgb(102, 102, 102); font-family: dotum; font-size: 12px;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;color: rgb(102, 102, 102); font-family: dotum; font-size: 12px; border-style: solid; border-width: 1px; border-color: rgb(219, 232, 251); background-color: rgb(219, 232, 251); padding: 10px;&quot;&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px;&quot;&gt;&lt;/p&gt;&lt;div&gt;public class TestClass {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public static void main (String[] args) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&quot;---------------------------&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#193da9&quot;&gt;&amp;nbsp;&amp;nbsp;Parent father = new Parent(&quot;father&quot;);&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;font class=&quot;Apple-style-span&quot; color=&quot;#193da9&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; Parent mother = new Parent(&quot;mother&quot;);&lt;/font&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Child son &amp;nbsp; &amp;nbsp; = new Child(&quot;son&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;System.out.println(&quot;---------------------------&quot;);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div style=&quot;color: rgb(102, 102, 102); font-family: dotum; font-size: 12px;&quot;&gt;&lt;br /&gt;&lt;br /&gt;하기와 같이 실행 된다. 천천히 살펴보면 앞에서 설명한 내용에서 벗어나지 않는다.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div class=&quot;txc-textbox&quot; style=&quot;border-style: solid; border-width: 1px; border-color: rgb(238, 238, 238); background-color: rgb(238, 238, 238); padding: 10px;&quot;&gt;&lt;p style=&quot;margin-right: 0px; margin-left: 0px;&quot;&gt;&lt;/p&gt;&lt;div&gt;---------------------------&lt;/div&gt;&lt;div&gt;This is first message of Parent class!&lt;/div&gt;&lt;div&gt;Parent: This is second message!&lt;/div&gt;&lt;div&gt;father: This is third message! I'm a constructor of Parent class!&lt;/div&gt;&lt;div&gt;Parent: This is second message!&lt;/div&gt;&lt;div&gt;mother: This is third message! I'm a constructor of Parent class!&lt;/div&gt;&lt;div&gt;This is first message of Child class!&lt;/div&gt;&lt;div&gt;Parent: This is second message!&lt;/div&gt;&lt;div&gt;Parent: This is third message! I'm a default constructor of Parent class!&lt;/div&gt;&lt;div&gt;Child: This is second message of Child class!&lt;/div&gt;&lt;div&gt;son: This is third message! I'm a constructor of Child class!&lt;/div&gt;&lt;div&gt;---------------------------&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;출처: http://chobocho.tistory.com/2461062&lt;/p&gt;</description>
      <category>Java/Core</category>
      <author>EnterKey</author>
      <guid isPermaLink="true">https://enterkey.tistory.com/411</guid>
      <comments>https://enterkey.tistory.com/411#entry411comment</comments>
      <pubDate>Thu, 3 Nov 2016 11:53:57 +0900</pubDate>
    </item>
  </channel>
</rss>